@mohasinac/appkit 4.44.0 → 4.46.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 (1998) 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/live-counts.d.ts +41 -0
  66. package/dist/_internal/server/features/categories/live-counts.js +72 -0
  67. package/dist/_internal/server/features/categories/og.js +1 -1
  68. package/dist/_internal/server/features/checkout/actions.d.ts +50 -0
  69. package/dist/_internal/server/features/checkout/actions.js +186 -52
  70. package/dist/_internal/server/features/checkout/bundle-expansion.js +3 -3
  71. package/dist/_internal/server/features/checkout/expand-order-items.js +23 -2
  72. package/dist/_internal/server/features/checkout/index.js +3 -3
  73. package/dist/_internal/server/features/checkout/locked-lines.js +14 -14
  74. package/dist/_internal/server/features/checkout/prize-bundle-gates.js +2 -2
  75. package/dist/_internal/server/features/checkout/source-context.js +4 -4
  76. package/dist/_internal/server/features/checkout/stock-restore.js +4 -4
  77. package/dist/_internal/server/features/checkout/upi-resolution.js +2 -2
  78. package/dist/_internal/server/features/classified/adapters.js +1 -1
  79. package/dist/_internal/server/features/classified/data.js +1 -1
  80. package/dist/_internal/server/features/classified/index.js +4 -4
  81. package/dist/_internal/server/features/classified/og.js +2 -2
  82. package/dist/_internal/server/features/digital-code/adapters.js +1 -1
  83. package/dist/_internal/server/features/digital-code/data.js +1 -1
  84. package/dist/_internal/server/features/digital-code/download.js +5 -5
  85. package/dist/_internal/server/features/digital-code/index.js +4 -4
  86. package/dist/_internal/server/features/digital-code/og.js +2 -2
  87. package/dist/_internal/server/features/digital-code/pool.js +7 -7
  88. package/dist/_internal/server/features/digital-code/upload.js +6 -6
  89. package/dist/_internal/server/features/events/actions.js +8 -8
  90. package/dist/_internal/server/features/events/adapters.js +1 -1
  91. package/dist/_internal/server/features/events/data.js +1 -1
  92. package/dist/_internal/server/features/events/index.js +5 -5
  93. package/dist/_internal/server/features/events/og.js +2 -2
  94. package/dist/_internal/server/features/events/service.js +2 -2
  95. package/dist/_internal/server/features/faqs/index.js +1 -1
  96. package/dist/_internal/server/features/faqs/og.js +1 -1
  97. package/dist/_internal/server/features/grouped/data.js +8 -8
  98. package/dist/_internal/server/features/grouped/index.js +4 -4
  99. package/dist/_internal/server/features/grouped/og.js +2 -2
  100. package/dist/_internal/server/features/history/actions.js +2 -2
  101. package/dist/_internal/server/features/history/data.js +1 -1
  102. package/dist/_internal/server/features/history/index.js +3 -3
  103. package/dist/_internal/server/features/homepage/index.js +1 -1
  104. package/dist/_internal/server/features/item-requests/data.js +1 -1
  105. package/dist/_internal/server/features/item-requests/index.js +2 -2
  106. package/dist/_internal/server/features/item-requests/og.js +1 -1
  107. package/dist/_internal/server/features/live/adapters.js +1 -1
  108. package/dist/_internal/server/features/live/data.js +1 -1
  109. package/dist/_internal/server/features/live/index.js +4 -4
  110. package/dist/_internal/server/features/live/og.js +2 -2
  111. package/dist/_internal/server/features/lottery/actions.js +8 -8
  112. package/dist/_internal/server/features/lottery/data.js +3 -3
  113. package/dist/_internal/server/features/maintenance/analyze.js +3 -3
  114. package/dist/_internal/server/features/maintenance/cloud-logs-data.js +1 -1
  115. package/dist/_internal/server/features/maintenance/data.js +2 -2
  116. package/dist/_internal/server/features/media/contextGuards.js +3 -3
  117. package/dist/_internal/server/features/offers/adapters.js +1 -1
  118. package/dist/_internal/server/features/offers/index.js +1 -1
  119. package/dist/_internal/server/features/orders/actions.js +17 -17
  120. package/dist/_internal/server/features/orders/adapters.js +31 -0
  121. package/dist/_internal/server/features/orders/data.js +2 -2
  122. package/dist/_internal/server/features/orders/index.js +5 -5
  123. package/dist/_internal/server/features/orders/service.js +3 -3
  124. package/dist/_internal/server/features/parts/assembly.d.ts +126 -0
  125. package/dist/_internal/server/features/parts/assembly.js +246 -0
  126. package/dist/_internal/server/features/parts/data.d.ts +65 -0
  127. package/dist/_internal/server/features/parts/data.js +170 -0
  128. package/dist/_internal/server/features/parts/og.d.ts +34 -0
  129. package/dist/_internal/server/features/parts/og.js +66 -0
  130. package/dist/_internal/server/features/payouts/actions.js +3 -3
  131. package/dist/_internal/server/features/pre-orders/actions.js +5 -5
  132. package/dist/_internal/server/features/pre-orders/data.js +1 -1
  133. package/dist/_internal/server/features/pre-orders/index.js +5 -5
  134. package/dist/_internal/server/features/pre-orders/og.js +2 -2
  135. package/dist/_internal/server/features/pre-orders/service.js +4 -4
  136. package/dist/_internal/server/features/price-index/search.d.ts +119 -0
  137. package/dist/_internal/server/features/price-index/search.js +188 -0
  138. package/dist/_internal/server/features/prize-draws/actions.js +3 -3
  139. package/dist/_internal/server/features/prize-draws/data.js +1 -1
  140. package/dist/_internal/server/features/prize-draws/index.js +4 -4
  141. package/dist/_internal/server/features/prize-draws/og.js +2 -2
  142. package/dist/_internal/server/features/prize-draws/service.js +1 -1
  143. package/dist/_internal/server/features/products/actions.js +8 -8
  144. package/dist/_internal/server/features/products/data.js +15 -15
  145. package/dist/_internal/server/features/products/group-members.js +1 -1
  146. package/dist/_internal/server/features/products/index.js +6 -6
  147. package/dist/_internal/server/features/products/list-public.js +11 -11
  148. package/dist/_internal/server/features/products/listing-tab-counts.js +3 -3
  149. package/dist/_internal/server/features/products/og.js +2 -2
  150. package/dist/_internal/server/features/products/service.js +4 -4
  151. package/dist/_internal/server/features/profile/index.js +1 -1
  152. package/dist/_internal/server/features/promotions/actions.js +6 -6
  153. package/dist/_internal/server/features/promotions/data.js +1 -1
  154. package/dist/_internal/server/features/promotions/index.js +4 -4
  155. package/dist/_internal/server/features/promotions/service.js +3 -3
  156. package/dist/_internal/server/features/raffle/actions.js +3 -3
  157. package/dist/_internal/server/features/refunds/actions.js +12 -12
  158. package/dist/_internal/server/features/reviews/actions.js +6 -6
  159. package/dist/_internal/server/features/reviews/data.js +3 -3
  160. package/dist/_internal/server/features/reviews/index.js +5 -5
  161. package/dist/_internal/server/features/reviews/og-data.js +1 -1
  162. package/dist/_internal/server/features/reviews/og.js +1 -1
  163. package/dist/_internal/server/features/reviews/service.js +2 -2
  164. package/dist/_internal/server/features/scams/data.js +1 -1
  165. package/dist/_internal/server/features/scams/index.js +2 -2
  166. package/dist/_internal/server/features/search/actions.js +1 -1
  167. package/dist/_internal/server/features/search/data.js +1 -1
  168. package/dist/_internal/server/features/search/index.js +2 -2
  169. package/dist/_internal/server/features/search/search-everything.d.ts +75 -0
  170. package/dist/_internal/server/features/search/search-everything.js +120 -0
  171. package/dist/_internal/server/features/search/search-sources.d.ts +17 -0
  172. package/dist/_internal/server/features/search/search-sources.js +138 -0
  173. package/dist/_internal/server/features/seo/index.js +4 -4
  174. package/dist/_internal/server/features/seo/manifest.js +2 -2
  175. package/dist/_internal/server/features/seo/og.js +2 -2
  176. package/dist/_internal/server/features/seo/sitemap.js +13 -13
  177. package/dist/_internal/server/features/shared/listing-data-factory.js +4 -4
  178. package/dist/_internal/server/features/site-settings/actions.js +1 -1
  179. package/dist/_internal/server/features/site-settings/index.js +1 -1
  180. package/dist/_internal/server/features/site-settings/safe-settings.js +3 -3
  181. package/dist/_internal/server/features/stores/adapters.d.ts +2 -2
  182. package/dist/_internal/server/features/stores/adapters.js +44 -0
  183. package/dist/_internal/server/features/stores/data.js +5 -5
  184. package/dist/_internal/server/features/stores/denormalize.js +2 -2
  185. package/dist/_internal/server/features/stores/index.js +5 -5
  186. package/dist/_internal/server/features/stores/og.js +2 -2
  187. package/dist/_internal/server/features/sublisting-categories/data.js +1 -1
  188. package/dist/_internal/server/features/sublisting-categories/index.js +2 -2
  189. package/dist/_internal/server/features/sublisting-categories/og.js +2 -2
  190. package/dist/_internal/server/features/tester/visibility.js +1 -1
  191. package/dist/_internal/server/features/wishlist/actions.js +5 -5
  192. package/dist/_internal/server/features/wishlist/data.js +1 -1
  193. package/dist/_internal/server/features/wishlist/index.js +4 -4
  194. package/dist/_internal/server/functions/bind-all.d.ts +25 -0
  195. package/dist/_internal/server/functions/bind-all.js +41 -6
  196. package/dist/_internal/server/functions/firestore.js +2 -2
  197. package/dist/_internal/server/functions/https.js +2 -2
  198. package/dist/_internal/server/functions/index.js +4 -4
  199. package/dist/_internal/server/functions/manifest.js +3 -3
  200. package/dist/_internal/server/functions/scheduled.js +2 -2
  201. package/dist/_internal/server/jobs/core/adminAnalytics.js +3 -3
  202. package/dist/_internal/server/jobs/core/analyticsAlertEvaluate.js +6 -6
  203. package/dist/_internal/server/jobs/core/assignSpinPrize.js +2 -2
  204. package/dist/_internal/server/jobs/core/auctionSettlement.js +7 -7
  205. package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +5 -5
  206. package/dist/_internal/server/jobs/core/bundleStockSync.js +1 -1
  207. package/dist/_internal/server/jobs/core/cartPrune.js +3 -3
  208. package/dist/_internal/server/jobs/core/catalogueImageStalenessReminder.js +4 -4
  209. package/dist/_internal/server/jobs/core/categoryTaxonomyBackfill.d.ts +70 -0
  210. package/dist/_internal/server/jobs/core/categoryTaxonomyBackfill.js +302 -0
  211. package/dist/_internal/server/jobs/core/cleanupRtdbEvents.js +5 -5
  212. package/dist/_internal/server/jobs/core/countersReconcile.js +135 -26
  213. package/dist/_internal/server/jobs/core/couponExpiry.js +1 -1
  214. package/dist/_internal/server/jobs/core/dailyDataCleanup.js +2 -2
  215. package/dist/_internal/server/jobs/core/dailyStatusDigest.js +14 -14
  216. package/dist/_internal/server/jobs/core/draftPrune.js +2 -2
  217. package/dist/_internal/server/jobs/core/emiInstallmentReminder.js +3 -3
  218. package/dist/_internal/server/jobs/core/hardBanCascade.js +7 -7
  219. package/dist/_internal/server/jobs/core/hardBanReinstatement.js +4 -4
  220. package/dist/_internal/server/jobs/core/index.js +37 -37
  221. package/dist/_internal/server/jobs/core/jobRunners.js +19 -7
  222. package/dist/_internal/server/jobs/core/listingProcessor.js +2 -2
  223. package/dist/_internal/server/jobs/core/mediaTmpCleanup.js +2 -2
  224. package/dist/_internal/server/jobs/core/newsletterExport.js +3 -3
  225. package/dist/_internal/server/jobs/core/notificationPrune.js +3 -3
  226. package/dist/_internal/server/jobs/core/offerExpiry.js +4 -4
  227. package/dist/_internal/server/jobs/core/onCategoryWrite.js +76 -6
  228. package/dist/_internal/server/jobs/core/onJobCreated.js +5 -5
  229. package/dist/_internal/server/jobs/core/onOrderCreate.js +6 -6
  230. package/dist/_internal/server/jobs/core/onOrderStatusChange.js +3 -3
  231. package/dist/_internal/server/jobs/core/onPrizeDrawPaymentConfirmed.js +2 -2
  232. package/dist/_internal/server/jobs/core/onProductStockChange.js +2 -2
  233. package/dist/_internal/server/jobs/core/onProductWrite.js +99 -49
  234. package/dist/_internal/server/jobs/core/onReviewWrite.js +4 -4
  235. package/dist/_internal/server/jobs/core/onScamReportCreate.js +4 -4
  236. package/dist/_internal/server/jobs/core/onScamReportRejected.js +3 -3
  237. package/dist/_internal/server/jobs/core/onScamReportVerified.js +3 -3
  238. package/dist/_internal/server/jobs/core/onStoreWrite.js +1 -1
  239. package/dist/_internal/server/jobs/core/onSupportTicketCreate.js +2 -2
  240. package/dist/_internal/server/jobs/core/onSupportTicketUpdate.js +2 -2
  241. package/dist/_internal/server/jobs/core/onUserBanChange.js +1 -1
  242. package/dist/_internal/server/jobs/core/pageViewPrune.js +2 -2
  243. package/dist/_internal/server/jobs/core/pageViewRollup.js +2 -2
  244. package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.js +4 -4
  245. package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +7 -7
  246. package/dist/_internal/server/jobs/core/pendingOrderTimeout.js +6 -6
  247. package/dist/_internal/server/jobs/core/positionsReconcile.js +1 -1
  248. package/dist/_internal/server/jobs/core/priceIndexRollup.js +74 -4
  249. package/dist/_internal/server/jobs/core/prizeDrawAssignWinner.js +2 -2
  250. package/dist/_internal/server/jobs/core/prizeDrawExpiryReveal.js +3 -3
  251. package/dist/_internal/server/jobs/core/prizeDrawSoldOutReveal.js +3 -3
  252. package/dist/_internal/server/jobs/core/productStatsSync.js +1 -1
  253. package/dist/_internal/server/jobs/core/productViewWindows.d.ts +2 -0
  254. package/dist/_internal/server/jobs/core/productViewWindows.js +173 -0
  255. package/dist/_internal/server/jobs/core/promotions.js +2 -2
  256. package/dist/_internal/server/jobs/core/resetOtpVerification.js +3 -3
  257. package/dist/_internal/server/jobs/core/revalidateNotify.js +1 -1
  258. package/dist/_internal/server/jobs/core/revenueRollup.js +2 -2
  259. package/dist/_internal/server/jobs/core/storeAnalytics.js +3 -3
  260. package/dist/_internal/server/jobs/core/storeNameBackfill.js +3 -3
  261. package/dist/_internal/server/jobs/core/testDataCleanup.d.ts +1 -1
  262. package/dist/_internal/server/jobs/core/testDataCleanup.js +29 -3
  263. package/dist/_internal/server/jobs/core/triggerEventRaffle.js +1 -1
  264. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +5 -5
  265. package/dist/_internal/server/jobs/core/whatsappCatalogImport.js +3 -3
  266. package/dist/_internal/server/jobs/core/whatsappNotify.js +5 -5
  267. package/dist/_internal/server/jobs/core/wrapJobHandler.js +3 -3
  268. package/dist/_internal/server/jobs/handlers/_helpers.js +3 -3
  269. package/dist/_internal/server/jobs/handlers/adminAnalytics.js +1 -1
  270. package/dist/_internal/server/jobs/handlers/analyticsAlertEvaluate.js +1 -1
  271. package/dist/_internal/server/jobs/handlers/assignSpinPrize.js +1 -1
  272. package/dist/_internal/server/jobs/handlers/auctionSettlement.js +1 -1
  273. package/dist/_internal/server/jobs/handlers/autoPayoutEligibility.js +1 -1
  274. package/dist/_internal/server/jobs/handlers/bundleStockSync.js +1 -1
  275. package/dist/_internal/server/jobs/handlers/cartPrune.js +1 -1
  276. package/dist/_internal/server/jobs/handlers/catalogueImageStalenessReminder.js +1 -1
  277. package/dist/_internal/server/jobs/handlers/cleanupRtdbEvents.js +1 -1
  278. package/dist/_internal/server/jobs/handlers/countersReconcile.js +1 -1
  279. package/dist/_internal/server/jobs/handlers/couponExpiry.js +1 -1
  280. package/dist/_internal/server/jobs/handlers/dailyDataCleanup.js +1 -1
  281. package/dist/_internal/server/jobs/handlers/dailyStatusDigest.js +1 -1
  282. package/dist/_internal/server/jobs/handlers/draftPrune.js +1 -1
  283. package/dist/_internal/server/jobs/handlers/emiInstallmentReminder.js +1 -1
  284. package/dist/_internal/server/jobs/handlers/hardBanReinstatement.js +1 -1
  285. package/dist/_internal/server/jobs/handlers/index.js +54 -54
  286. package/dist/_internal/server/jobs/handlers/listingProcessor.js +1 -1
  287. package/dist/_internal/server/jobs/handlers/mediaTmpCleanup.js +1 -1
  288. package/dist/_internal/server/jobs/handlers/messages.js +1 -1
  289. package/dist/_internal/server/jobs/handlers/notificationPrune.js +1 -1
  290. package/dist/_internal/server/jobs/handlers/offerExpiry.js +1 -1
  291. package/dist/_internal/server/jobs/handlers/onCatalogueSubmittedForApproval.js +1 -1
  292. package/dist/_internal/server/jobs/handlers/onCategoryWrite.js +1 -1
  293. package/dist/_internal/server/jobs/handlers/onJobCreated.js +1 -1
  294. package/dist/_internal/server/jobs/handlers/onOrderCreate.js +1 -1
  295. package/dist/_internal/server/jobs/handlers/onOrderStatusChange.js +1 -1
  296. package/dist/_internal/server/jobs/handlers/onPrizeDrawPaymentConfirmed.js +1 -1
  297. package/dist/_internal/server/jobs/handlers/onProductStockChange.js +1 -1
  298. package/dist/_internal/server/jobs/handlers/onProductWrite.js +1 -1
  299. package/dist/_internal/server/jobs/handlers/onReviewWrite.js +1 -1
  300. package/dist/_internal/server/jobs/handlers/onScamReportCreate.js +1 -1
  301. package/dist/_internal/server/jobs/handlers/onScamReportUpdate.js +2 -2
  302. package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.js +1 -1
  303. package/dist/_internal/server/jobs/handlers/onStoreWrite.js +1 -1
  304. package/dist/_internal/server/jobs/handlers/onSupportTicketCreate.js +1 -1
  305. package/dist/_internal/server/jobs/handlers/onSupportTicketUpdate.js +1 -1
  306. package/dist/_internal/server/jobs/handlers/onUserBanChange.js +1 -1
  307. package/dist/_internal/server/jobs/handlers/pageViewPrune.js +1 -1
  308. package/dist/_internal/server/jobs/handlers/pageViewRollup.d.ts +20 -0
  309. package/dist/_internal/server/jobs/handlers/pageViewRollup.js +26 -2
  310. package/dist/_internal/server/jobs/handlers/paymentReviewAutoApprove.js +1 -1
  311. package/dist/_internal/server/jobs/handlers/paymentWindowTimeout.js +1 -1
  312. package/dist/_internal/server/jobs/handlers/pendingOrderTimeout.js +1 -1
  313. package/dist/_internal/server/jobs/handlers/positionsReconcile.js +1 -1
  314. package/dist/_internal/server/jobs/handlers/priceIndexRollup.js +1 -1
  315. package/dist/_internal/server/jobs/handlers/prizeDrawExpiryReveal.js +1 -1
  316. package/dist/_internal/server/jobs/handlers/prizeDrawSoldOutReveal.js +1 -1
  317. package/dist/_internal/server/jobs/handlers/productStatsSync.js +1 -1
  318. package/dist/_internal/server/jobs/handlers/promotions.js +1 -1
  319. package/dist/_internal/server/jobs/handlers/revenueRollup.js +1 -1
  320. package/dist/_internal/server/jobs/handlers/storeAnalytics.js +1 -1
  321. package/dist/_internal/server/jobs/handlers/testDataCleanup.js +1 -1
  322. package/dist/_internal/server/jobs/handlers/triggerEventRaffle.js +1 -1
  323. package/dist/_internal/server/jobs/handlers/weeklyPayoutEligibility.js +1 -1
  324. package/dist/_internal/server/jobs/index.js +4 -4
  325. package/dist/_internal/server/jobs/runtime/adapters/firebase.js +3 -3
  326. package/dist/_internal/server/notifications/channel-health.js +3 -3
  327. package/dist/_internal/server/notifications/send-guard.js +5 -5
  328. package/dist/_internal/server/notifications/send-recorder.js +5 -5
  329. package/dist/_internal/shared/actions/action-registry.js +45 -0
  330. package/dist/_internal/shared/checkout/lanes.js +1 -1
  331. package/dist/_internal/shared/checkout/order-math.js +2 -2
  332. package/dist/_internal/shared/checkout/rules/_defaults.js +1 -1
  333. package/dist/_internal/shared/checkout/rules/_limits.js +1 -1
  334. package/dist/_internal/shared/checkout/rules/_registry.js +12 -12
  335. package/dist/_internal/shared/checkout/rules/art.rule.js +1 -1
  336. package/dist/_internal/shared/checkout/rules/auction.rule.js +1 -1
  337. package/dist/_internal/shared/checkout/rules/classified.rule.js +1 -1
  338. package/dist/_internal/shared/checkout/rules/digital-code.rule.js +1 -1
  339. package/dist/_internal/shared/checkout/rules/index.js +13 -13
  340. package/dist/_internal/shared/checkout/rules/live.rule.js +1 -1
  341. package/dist/_internal/shared/checkout/rules/offer.rule.js +1 -1
  342. package/dist/_internal/shared/checkout/rules/preorder.rule.js +2 -2
  343. package/dist/_internal/shared/checkout/rules/prize-draw.rule.js +3 -3
  344. package/dist/_internal/shared/checkout/rules/standard.rule.js +1 -1
  345. package/dist/_internal/shared/checkout/rules/stickers.rule.js +1 -1
  346. package/dist/_internal/shared/features/auctions/errors.js +1 -1
  347. package/dist/_internal/shared/features/blog/errors.js +1 -1
  348. package/dist/_internal/shared/features/blog/schema.js +2 -2
  349. package/dist/_internal/shared/features/brands/errors.js +1 -1
  350. package/dist/_internal/shared/features/brands/schema.js +2 -2
  351. package/dist/_internal/shared/features/cart/config.js +1 -1
  352. package/dist/_internal/shared/features/cart/errors.js +1 -1
  353. package/dist/_internal/shared/features/categories/bundle-schemas.js +2 -2
  354. package/dist/_internal/shared/features/categories/price-guidance.js +1 -1
  355. package/dist/_internal/shared/features/checkout/config.d.ts +3 -0
  356. package/dist/_internal/shared/features/checkout/config.js +4 -1
  357. package/dist/_internal/shared/features/emi/schedule.js +1 -1
  358. package/dist/_internal/shared/features/events/errors.js +1 -1
  359. package/dist/_internal/shared/features/events/schema.js +2 -2
  360. package/dist/_internal/shared/features/layout/index.js +1 -1
  361. package/dist/_internal/shared/features/notifications/action-url.js +1 -1
  362. package/dist/_internal/shared/features/offers/config.js +1 -1
  363. package/dist/_internal/shared/features/orders/errors.js +1 -1
  364. package/dist/_internal/shared/features/orders/schema.js +3 -3
  365. package/dist/_internal/shared/features/pre-orders/errors.js +1 -1
  366. package/dist/_internal/shared/features/products/errors.js +1 -1
  367. package/dist/_internal/shared/features/products/schema.js +3 -3
  368. package/dist/_internal/shared/features/promotions/errors.js +1 -1
  369. package/dist/_internal/shared/features/promotions/schema.d.ts +6 -6
  370. package/dist/_internal/shared/features/promotions/schema.js +1 -1
  371. package/dist/_internal/shared/features/returns/custody.d.ts +99 -0
  372. package/dist/_internal/shared/features/returns/custody.js +172 -0
  373. package/dist/_internal/shared/features/returns/destination.d.ts +172 -0
  374. package/dist/_internal/shared/features/returns/destination.js +158 -0
  375. package/dist/_internal/shared/features/reviews/errors.js +1 -1
  376. package/dist/_internal/shared/features/reviews/schema.js +2 -2
  377. package/dist/_internal/shared/features/shipping/courier-rating.d.ts +145 -0
  378. package/dist/_internal/shared/features/shipping/courier-rating.js +114 -0
  379. package/dist/_internal/shared/features/shipping/mode.d.ts +112 -0
  380. package/dist/_internal/shared/features/shipping/mode.js +108 -0
  381. package/dist/_internal/shared/features/shipping/parcel.d.ts +115 -0
  382. package/dist/_internal/shared/features/shipping/parcel.js +120 -0
  383. package/dist/_internal/shared/features/shipping/protections.d.ts +313 -0
  384. package/dist/_internal/shared/features/shipping/protections.js +340 -0
  385. package/dist/_internal/shared/features/site-settings/fees.d.ts +3 -0
  386. package/dist/_internal/shared/features/site-settings/fees.js +3 -0
  387. package/dist/_internal/shared/features/wishlist/errors.js +1 -1
  388. package/dist/_internal/shared/fees/calculator.d.ts +24 -0
  389. package/dist/_internal/shared/fees/calculator.js +12 -1
  390. package/dist/_internal/shared/history/history.js +2 -2
  391. package/dist/_internal/shared/history/index.js +2 -2
  392. package/dist/_internal/shared/index.js +2 -2
  393. package/dist/_internal/shared/listing-types/_registry.js +12 -12
  394. package/dist/_internal/shared/listing-types/action-tracker.js +1 -1
  395. package/dist/_internal/shared/listing-types/art/config.js +4 -4
  396. package/dist/_internal/shared/listing-types/auction/config.js +6 -6
  397. package/dist/_internal/shared/listing-types/availability.js +1 -1
  398. package/dist/_internal/shared/listing-types/cart-shipping.js +1 -1
  399. package/dist/_internal/shared/listing-types/classified/config.js +5 -5
  400. package/dist/_internal/shared/listing-types/digital-code/config.js +6 -6
  401. package/dist/_internal/shared/listing-types/live/config.js +5 -5
  402. package/dist/_internal/shared/listing-types/pre-order/config.js +6 -6
  403. package/dist/_internal/shared/listing-types/prize-draw/config.js +5 -5
  404. package/dist/_internal/shared/listing-types/standard/config.js +4 -4
  405. package/dist/_internal/shared/listing-types/stickers/config.js +4 -4
  406. package/dist/_internal/shared/search/alias-variants.d.ts +58 -0
  407. package/dist/_internal/shared/search/alias-variants.js +141 -0
  408. package/dist/_internal/shared/search/part-aliases.d.ts +44 -0
  409. package/dist/_internal/shared/search/part-aliases.js +104 -0
  410. package/dist/_internal/shared/tokens/index.js +2 -2
  411. package/dist/_internal/shared/types/action-error-reporter.js +1 -1
  412. package/dist/_internal/shared/types/action-result.js +4 -4
  413. package/dist/_internal/shared/types/base-document.d.ts +19 -0
  414. package/dist/cli/index.js +1 -1
  415. package/dist/client/api/surface-error.js +7 -7
  416. package/dist/client/api/useApiMutation.js +2 -2
  417. package/dist/client/api/useApiQuery.js +4 -4
  418. package/dist/client/observability/installClientErrorReporter.js +1 -1
  419. package/dist/client/observability/reportClientError.js +2 -2
  420. package/dist/client-entry.js +5 -5
  421. package/dist/client.d.ts +4 -0
  422. package/dist/client.js +336 -332
  423. package/dist/constants/api-endpoints.d.ts +34 -12
  424. package/dist/constants/api-endpoints.js +23 -8
  425. package/dist/constants/cache-invalidation.js +1 -1
  426. package/dist/constants/field-names.d.ts +2 -2
  427. package/dist/constants/field-names.js +10 -2
  428. package/dist/constants/index.d.ts +1 -1
  429. package/dist/constants/index.js +10 -10
  430. package/dist/constants/notification-types.js +1 -1
  431. package/dist/contracts/index.js +12 -12
  432. package/dist/contracts/realtime-session.js +2 -2
  433. package/dist/core/EventBus.js +2 -2
  434. package/dist/core/Logger.js +2 -2
  435. package/dist/core/Queue.js +1 -1
  436. package/dist/core/StorageManager.js +2 -2
  437. package/dist/core/browser.js +9 -9
  438. package/dist/core/components/SyncManagerMount.js +2 -2
  439. package/dist/core/contact-submissions.repository.js +1 -1
  440. package/dist/core/hooks/useSiteSettings.js +2 -2
  441. package/dist/core/hooks/useSyncManager.js +3 -3
  442. package/dist/core/index.d.ts +0 -3
  443. package/dist/core/index.js +15 -17
  444. package/dist/core/integration-keys.js +2 -2
  445. package/dist/core/mutation-events.js +1 -1
  446. package/dist/core/newsletter-actions.js +2 -2
  447. package/dist/core/newsletter.repository.js +2 -2
  448. package/dist/core/server-action.js +5 -5
  449. package/dist/core/site-config.js +1 -1
  450. package/dist/core/unit-of-work.js +20 -20
  451. package/dist/errors/api-error.js +1 -1
  452. package/dist/errors/authentication-error.js +1 -1
  453. package/dist/errors/authorization-error.js +1 -1
  454. package/dist/errors/conflict-error.js +1 -1
  455. package/dist/errors/database-error.js +2 -2
  456. package/dist/errors/describe-cause.js +1 -1
  457. package/dist/errors/error-display-map.js +3 -3
  458. package/dist/errors/error-envelope.js +1 -1
  459. package/dist/errors/error-handler.js +3 -3
  460. package/dist/errors/error-mapping.js +7 -7
  461. package/dist/errors/index.js +18 -18
  462. package/dist/errors/messages.d.ts +0 -7
  463. package/dist/errors/messages.js +0 -8
  464. package/dist/errors/normalize.js +2 -2
  465. package/dist/errors/not-found-error.js +1 -1
  466. package/dist/errors/payment-provider-unreachable.js +1 -1
  467. package/dist/errors/safe-read.js +2 -2
  468. package/dist/errors/validation-error.js +1 -1
  469. package/dist/features/about/components/AboutView.js +2 -2
  470. package/dist/features/about/components/DeveloperView.js +6 -6
  471. package/dist/features/about/components/FAQPageView.js +5 -5
  472. package/dist/features/about/components/FeesView.js +4 -4
  473. package/dist/features/about/components/HelpPageView.js +5 -5
  474. package/dist/features/about/components/HowAuctionsWorkView.js +4 -4
  475. package/dist/features/about/components/HowCheckoutWorksView.js +4 -4
  476. package/dist/features/about/components/HowEmiWorksView.js +5 -5
  477. package/dist/features/about/components/HowOffersWorkView.js +4 -4
  478. package/dist/features/about/components/HowOrdersWorkView.js +4 -4
  479. package/dist/features/about/components/HowPayoutsWorkView.js +4 -4
  480. package/dist/features/about/components/HowPreOrdersWorkView.js +4 -4
  481. package/dist/features/about/components/HowReviewsWorkView.js +4 -4
  482. package/dist/features/about/components/PolicyPageView.js +7 -7
  483. package/dist/features/about/components/PublicProfileView.js +15 -15
  484. package/dist/features/about/components/SecurityPrivacyView.js +4 -4
  485. package/dist/features/about/components/ShippingPolicyView.js +4 -4
  486. package/dist/features/about/components/TrackOrderView.js +5 -5
  487. package/dist/features/about/components/UnauthorizedView.js +4 -4
  488. package/dist/features/about/index.js +19 -19
  489. package/dist/features/about/schemas/index.js +1 -1
  490. package/dist/features/account/actions/address-actions.js +2 -2
  491. package/dist/features/account/actions/index.js +1 -1
  492. package/dist/features/account/api/[userId]/addresses/route.js +2 -2
  493. package/dist/features/account/api/[userId]/route.js +2 -2
  494. package/dist/features/account/columns/index.js +1 -1
  495. package/dist/features/account/components/AddressBook.js +1 -1
  496. package/dist/features/account/components/AddressFilters.js +3 -3
  497. package/dist/features/account/components/AddressForm.js +9 -9
  498. package/dist/features/account/components/AddressInlineSelect.js +4 -4
  499. package/dist/features/account/components/AddressSelectorCreate.js +2 -2
  500. package/dist/features/account/components/AddressesIndexListing.js +6 -6
  501. package/dist/features/account/components/BecomeSellerView.js +1 -1
  502. package/dist/features/account/components/BuyerAccountGuideView.js +3 -3
  503. package/dist/features/account/components/BuyerAuctionsGuideView.js +2 -2
  504. package/dist/features/account/components/BuyerOrdersGuideView.js +2 -2
  505. package/dist/features/account/components/BuyerShoppingGuideView.js +2 -2
  506. package/dist/features/account/components/LinkedAccountsSection.js +1 -1
  507. package/dist/features/account/components/NotificationBell.js +6 -6
  508. package/dist/features/account/components/NotificationPreferencesPanel.js +4 -4
  509. package/dist/features/account/components/OrderDetailView.js +1 -1
  510. package/dist/features/account/components/ProfileView.js +1 -1
  511. package/dist/features/account/components/UserAccountHubView.js +1 -1
  512. package/dist/features/account/components/UserAddressesView.js +1 -1
  513. package/dist/features/account/components/UserBidsView.js +8 -8
  514. package/dist/features/account/components/UserNotificationsView.js +1 -1
  515. package/dist/features/account/components/UserOffersPanel.js +5 -5
  516. package/dist/features/account/components/UserOrderTrackView.js +1 -1
  517. package/dist/features/account/components/UserOrdersView.js +10 -10
  518. package/dist/features/account/components/UserReturnsView.js +7 -7
  519. package/dist/features/account/components/UserSettingsView.js +1 -1
  520. package/dist/features/account/components/UserSidebar.js +9 -9
  521. package/dist/features/account/components/UserSupportView.js +11 -11
  522. package/dist/features/account/components/index.js +20 -20
  523. package/dist/features/account/hooks/useAccount.js +2 -2
  524. package/dist/features/account/hooks/useAddressSelector.js +2 -2
  525. package/dist/features/account/hooks/useAddresses.js +2 -2
  526. package/dist/features/account/hooks/useCollapsedSections.js +2 -2
  527. package/dist/features/account/hooks/useDataViewMode.js +1 -1
  528. package/dist/features/account/hooks/useNotifications.js +2 -2
  529. package/dist/features/account/hooks/useProfile.js +3 -3
  530. package/dist/features/account/hooks/useProfileStats.js +2 -2
  531. package/dist/features/account/hooks/usePublicProfile.d.ts +1 -1
  532. package/dist/features/account/hooks/usePublicProfile.js +3 -3
  533. package/dist/features/account/index.js +13 -13
  534. package/dist/features/account/schemas/firestore.js +1 -1
  535. package/dist/features/account/schemas/index.js +2 -2
  536. package/dist/features/account/server.js +3 -3
  537. package/dist/features/addresses/components/AddressLocationFields.js +5 -5
  538. package/dist/features/addresses/hooks/usePostalLookup.js +2 -2
  539. package/dist/features/addresses/index.js +2 -2
  540. package/dist/features/addresses/repository/addresses.repository.js +6 -6
  541. package/dist/features/addresses/schemas/address-form.js +2 -2
  542. package/dist/features/addresses/schemas/index.js +3 -3
  543. package/dist/features/addresses/server.js +2 -2
  544. package/dist/features/admin/actions/admin-actions.d.ts +1 -1
  545. package/dist/features/admin/actions/admin-actions.js +17 -17
  546. package/dist/features/admin/actions/admin-coupon-actions.js +5 -5
  547. package/dist/features/admin/actions/admin-read-actions.d.ts +4 -4
  548. package/dist/features/admin/actions/admin-read-actions.js +12 -12
  549. package/dist/features/admin/actions/index.js +5 -5
  550. package/dist/features/admin/actions/notification-actions.js +13 -13
  551. package/dist/features/admin/actions/site-settings-actions.js +2 -2
  552. package/dist/features/admin/api/bids/route.js +2 -2
  553. package/dist/features/admin/api/coupons/route.js +2 -2
  554. package/dist/features/admin/api/products/route.js +2 -2
  555. package/dist/features/admin/api/reviews/route.js +2 -2
  556. package/dist/features/admin/components/AdminActionIndexView.js +4 -4
  557. package/dist/features/admin/components/AdminAdEditorView.js +9 -9
  558. package/dist/features/admin/components/AdminAddressBookView.js +4 -4
  559. package/dist/features/admin/components/AdminAddressClustersView.js +3 -3
  560. package/dist/features/admin/components/AdminAddressEditorView.js +13 -13
  561. package/dist/features/admin/components/AdminAddressesView.js +9 -9
  562. package/dist/features/admin/components/AdminAdsView.js +8 -8
  563. package/dist/features/admin/components/AdminAllEventEntriesView.js +7 -7
  564. package/dist/features/admin/components/AdminAnalyticsGuideView.js +2 -2
  565. package/dist/features/admin/components/AdminAnalyticsView.js +7 -7
  566. package/dist/features/admin/components/AdminArtView.js +4 -4
  567. package/dist/features/admin/components/AdminAuditLogView.js +6 -6
  568. package/dist/features/admin/components/AdminBidsView.js +12 -12
  569. package/dist/features/admin/components/AdminBlogEditorView.js +8 -8
  570. package/dist/features/admin/components/AdminBlogView.js +7 -7
  571. package/dist/features/admin/components/AdminBrandEditorView.js +11 -11
  572. package/dist/features/admin/components/AdminBrandsView.js +7 -7
  573. package/dist/features/admin/components/AdminBundleEditorView.js +13 -13
  574. package/dist/features/admin/components/AdminBundlesView.js +8 -8
  575. package/dist/features/admin/components/AdminCarouselEditorView.js +8 -8
  576. package/dist/features/admin/components/AdminCarouselGroupEditorView.js +6 -6
  577. package/dist/features/admin/components/AdminCarouselView.js +11 -11
  578. package/dist/features/admin/components/AdminCartsView.js +5 -5
  579. package/dist/features/admin/components/AdminCatalogGuideView.js +2 -2
  580. package/dist/features/admin/components/AdminCategoriesView.js +6 -6
  581. package/dist/features/admin/components/AdminCategoryEditorView.js +7 -7
  582. package/dist/features/admin/components/AdminClassifiedView.js +4 -4
  583. package/dist/features/admin/components/AdminContactEditorView.js +3 -3
  584. package/dist/features/admin/components/AdminContactView.js +10 -10
  585. package/dist/features/admin/components/AdminContentGuideView.js +2 -2
  586. package/dist/features/admin/components/AdminCouponEditorView.js +12 -12
  587. package/dist/features/admin/components/AdminCouponsView.js +10 -10
  588. package/dist/features/admin/components/AdminDashboardView.js +5 -5
  589. package/dist/features/admin/components/AdminDigitalCodesView.js +4 -4
  590. package/dist/features/admin/components/AdminEmployeeEditorView.js +10 -10
  591. package/dist/features/admin/components/AdminFaqEditorView.js +6 -6
  592. package/dist/features/admin/components/AdminFaqsView.js +6 -6
  593. package/dist/features/admin/components/AdminFeatureEditorView.js +9 -9
  594. package/dist/features/admin/components/AdminFeaturesView.js +8 -8
  595. package/dist/features/admin/components/AdminFulfillmentView.js +9 -9
  596. package/dist/features/admin/components/AdminGroupedListingsView.js +9 -9
  597. package/dist/features/admin/components/AdminGuideHubView.js +2 -2
  598. package/dist/features/admin/components/AdminHistoryView.js +6 -6
  599. package/dist/features/admin/components/AdminLiveView.js +4 -4
  600. package/dist/features/admin/components/AdminMediaView.js +5 -5
  601. package/dist/features/admin/components/AdminNavEditorView.js +7 -7
  602. package/dist/features/admin/components/AdminNavigationView.js +5 -5
  603. package/dist/features/admin/components/AdminNewsletterView.js +9 -9
  604. package/dist/features/admin/components/AdminNotificationsView.js +10 -10
  605. package/dist/features/admin/components/AdminOffersView.js +13 -13
  606. package/dist/features/admin/components/AdminOrderEditorView.js +15 -15
  607. package/dist/features/admin/components/AdminOrdersGuideView.js +2 -2
  608. package/dist/features/admin/components/AdminOrdersView.js +13 -13
  609. package/dist/features/admin/components/AdminPaymentClustersView.js +3 -3
  610. package/dist/features/admin/components/AdminPaymentMethodsView.js +8 -8
  611. package/dist/features/admin/components/AdminPaymentsGuideView.js +2 -2
  612. package/dist/features/admin/components/AdminPayoutMarkPaidModal.js +7 -7
  613. package/dist/features/admin/components/AdminPayoutsView.js +12 -12
  614. package/dist/features/admin/components/AdminPrizeDrawsView.js +9 -9
  615. package/dist/features/admin/components/AdminProductEditorView.js +13 -13
  616. package/dist/features/admin/components/AdminProductsView.js +15 -15
  617. package/dist/features/admin/components/AdminReturnRequestsView.js +7 -7
  618. package/dist/features/admin/components/AdminReviewsView.js +9 -9
  619. package/dist/features/admin/components/AdminScammerEditorView.js +6 -6
  620. package/dist/features/admin/components/AdminScammersView.js +10 -10
  621. package/dist/features/admin/components/AdminSectionsView.js +98 -47
  622. package/dist/features/admin/components/AdminSessionsManager.js +1 -1
  623. package/dist/features/admin/components/AdminSessionsView.js +6 -6
  624. package/dist/features/admin/components/AdminSidebar.js +8 -8
  625. package/dist/features/admin/components/AdminSiteConfigGuideView.js +2 -2
  626. package/dist/features/admin/components/AdminSiteSettingsView.js +23 -19
  627. package/dist/features/admin/components/AdminStickersView.js +4 -4
  628. package/dist/features/admin/components/AdminStoreAddressesView.js +4 -4
  629. package/dist/features/admin/components/AdminStoreEditorView.js +7 -7
  630. package/dist/features/admin/components/AdminStoresGuideView.js +2 -2
  631. package/dist/features/admin/components/AdminStoresView.js +11 -11
  632. package/dist/features/admin/components/AdminSublistingCategoriesView.js +6 -6
  633. package/dist/features/admin/components/AdminSublistingCategoryEditorView.js +7 -7
  634. package/dist/features/admin/components/AdminSupportTicketDetailView.js +9 -9
  635. package/dist/features/admin/components/AdminSupportTicketsView.js +9 -9
  636. package/dist/features/admin/components/AdminTaxCodeEditorView.js +8 -8
  637. package/dist/features/admin/components/AdminTaxCodesView.js +5 -5
  638. package/dist/features/admin/components/AdminTeamGuideView.js +1 -1
  639. package/dist/features/admin/components/AdminTeamView.js +8 -8
  640. package/dist/features/admin/components/AdminTesterChecklistItemEditorView.js +10 -10
  641. package/dist/features/admin/components/AdminTesterChecklistView.js +9 -9
  642. package/dist/features/admin/components/AdminTopBar.js +1 -1
  643. package/dist/features/admin/components/AdminTrustGuideView.js +2 -2
  644. package/dist/features/admin/components/AdminUserEditorView.js +8 -8
  645. package/dist/features/admin/components/AdminUsersGuideView.js +2 -2
  646. package/dist/features/admin/components/AdminUsersView.js +15 -15
  647. package/dist/features/admin/components/AdminViewCards.js +3 -3
  648. package/dist/features/admin/components/AdminWhatsAppGuideView.js +2 -2
  649. package/dist/features/admin/components/AdminWishlistsView.js +6 -6
  650. package/dist/features/admin/components/BrandQuickCreateForm.js +8 -8
  651. package/dist/features/admin/components/CategoryQuickCreateForm.js +8 -8
  652. package/dist/features/admin/components/DashboardStats.js +4 -4
  653. package/dist/features/admin/components/DataListingView.js +7 -7
  654. package/dist/features/admin/components/DataTable.js +5 -5
  655. package/dist/features/admin/components/DemoSeedView.js +1 -1
  656. package/dist/features/admin/components/DrawerFormFooter.js +1 -1
  657. package/dist/features/admin/components/QuickEditMenu.js +4 -4
  658. package/dist/features/admin/components/ViewAuditLogEntryModal.js +1 -1
  659. package/dist/features/admin/components/ViewNotificationModal.js +2 -2
  660. package/dist/features/admin/components/analytics/AdminAnalyticsCharts.js +2 -2
  661. package/dist/features/admin/components/analytics/AdminPageViewsReportView.js +4 -4
  662. package/dist/features/admin/components/analytics/AdminStatCard.js +2 -2
  663. package/dist/features/admin/components/analytics/AdminTopProductsTable.js +1 -1
  664. package/dist/features/admin/components/analytics/index.js +3 -3
  665. package/dist/features/admin/components/index.js +94 -94
  666. package/dist/features/admin/components/sections/adminSectionsBuildParse.js +1 -1
  667. package/dist/features/admin/components/sections/adminSectionsTypes.d.ts +50 -1
  668. package/dist/features/admin/components/sections/adminSectionsTypes.js +30 -11
  669. package/dist/features/admin/components/sections/sectionTemplates.d.ts +117 -0
  670. package/dist/features/admin/components/sections/sectionTemplates.js +213 -0
  671. package/dist/features/admin/hooks/useAdmin.js +2 -2
  672. package/dist/features/admin/hooks/useAdminListing.js +5 -5
  673. package/dist/features/admin/hooks/useAdminListingData.js +2 -2
  674. package/dist/features/admin/hooks/useAdminSectionsListing.js +2 -2
  675. package/dist/features/admin/index.js +7 -7
  676. package/dist/features/admin/repository/analytics-rollup.repository.js +1 -1
  677. package/dist/features/admin/repository/notification.repository.js +5 -5
  678. package/dist/features/admin/repository/site-settings.repository.js +7 -7
  679. package/dist/features/admin/schemas/admin-editor-forms.js +3 -3
  680. package/dist/features/admin/schemas/admin-ops-forms.js +3 -3
  681. package/dist/features/admin/schemas/admin-user-form.d.ts +4 -4
  682. package/dist/features/admin/schemas/admin-user-form.js +1 -1
  683. package/dist/features/admin/schemas/firestore.d.ts +44 -0
  684. package/dist/features/admin/schemas/firestore.js +8 -2
  685. package/dist/features/admin/schemas/homepage-section-form.js +2 -2
  686. package/dist/features/admin/schemas/index.js +1 -1
  687. package/dist/features/admin/schemas/nav-item-form.js +1 -1
  688. package/dist/features/admin/schemas/small-forms.js +1 -1
  689. package/dist/features/admin/server.js +8 -8
  690. package/dist/features/admin/types/index.d.ts +0 -1
  691. package/dist/features/admin/types/index.js +1 -1
  692. package/dist/features/admin/utils/checkActionAllowed.js +4 -4
  693. package/dist/features/admin/utils/getDisabledRoutes.js +1 -1
  694. package/dist/features/admin/utils/getSiteSettingsGlobal.js +1 -1
  695. package/dist/features/analytics/components/PageViewTracker.js +3 -3
  696. package/dist/features/analytics/repository/page-views.repository.js +3 -3
  697. package/dist/features/auctions/actions/bid-actions.js +23 -23
  698. package/dist/features/auctions/actions/index.js +1 -1
  699. package/dist/features/auctions/api/route.js +2 -2
  700. package/dist/features/auctions/columns/index.js +1 -1
  701. package/dist/features/auctions/components/AuctionBidsTable.js +4 -4
  702. package/dist/features/auctions/components/AuctionBottomActions.js +9 -9
  703. package/dist/features/auctions/components/AuctionDetailPageView.js +35 -35
  704. package/dist/features/auctions/components/AuctionFilters.js +4 -4
  705. package/dist/features/auctions/components/AuctionLiveStatusBadge.js +2 -2
  706. package/dist/features/auctions/components/AuctionsListView.js +4 -4
  707. package/dist/features/auctions/components/CollapsibleBidHistory.js +4 -4
  708. package/dist/features/auctions/components/LiveBidPrice.js +3 -3
  709. package/dist/features/auctions/components/LiveMinIncrement.js +5 -5
  710. package/dist/features/auctions/components/MarketplaceAuctionCard.js +13 -13
  711. package/dist/features/auctions/components/MarketplaceAuctionGrid.js +2 -2
  712. package/dist/features/auctions/components/PlaceBidFormClient.js +17 -17
  713. package/dist/features/auctions/components/index.js +5 -5
  714. package/dist/features/auctions/hooks/useAuctions.js +3 -3
  715. package/dist/features/auctions/hooks/useBids.js +2 -2
  716. package/dist/features/auctions/hooks/useLiveAuctionBid.js +1 -1
  717. package/dist/features/auctions/hooks/usePlaceBid.js +2 -2
  718. package/dist/features/auctions/hooks/useRealtimeBids.js +3 -3
  719. package/dist/features/auctions/index.js +8 -8
  720. package/dist/features/auctions/repository/bid.repository.js +7 -7
  721. package/dist/features/auctions/schemas/firestore.js +1 -1
  722. package/dist/features/auctions/schemas/index.js +2 -2
  723. package/dist/features/auctions/server.js +3 -3
  724. package/dist/features/audit-log/repository/audit-log.repository.js +2 -2
  725. package/dist/features/auth/actions/index.js +1 -1
  726. package/dist/features/auth/actions/profile-actions.js +8 -8
  727. package/dist/features/auth/actions/user-slug.js +4 -4
  728. package/dist/features/auth/api/route.js +2 -2
  729. package/dist/features/auth/auth-helpers.js +2 -2
  730. package/dist/features/auth/checkout-value-otp.js +3 -3
  731. package/dist/features/auth/components/AuthStatusPanel.js +2 -2
  732. package/dist/features/auth/components/ForgotPasswordView.js +7 -7
  733. package/dist/features/auth/components/Guards.js +2 -2
  734. package/dist/features/auth/components/LoginForm.js +8 -8
  735. package/dist/features/auth/components/OAuthLoadingView.js +1 -1
  736. package/dist/features/auth/components/RegisterForm.js +9 -9
  737. package/dist/features/auth/components/ResetPasswordView.js +6 -6
  738. package/dist/features/auth/components/SocialAuthButtons.js +1 -1
  739. package/dist/features/auth/components/VerifyEmailView.js +2 -2
  740. package/dist/features/auth/components/index.js +9 -9
  741. package/dist/features/auth/hooks/useAuth.js +7 -7
  742. package/dist/features/auth/hooks/useAuthEvent.js +2 -2
  743. package/dist/features/auth/hooks/useLogout.js +2 -2
  744. package/dist/features/auth/hooks/useRBAC.js +3 -3
  745. package/dist/features/auth/index.js +11 -11
  746. package/dist/features/auth/permissions/constants.d.ts +1 -1
  747. package/dist/features/auth/permissions/constants.js +0 -2
  748. package/dist/features/auth/repository/index.js +4 -4
  749. package/dist/features/auth/repository/session.repository.js +7 -7
  750. package/dist/features/auth/repository/sms-counter.repository.js +2 -2
  751. package/dist/features/auth/repository/token.repository.js +6 -6
  752. package/dist/features/auth/repository/user.repository.js +5 -5
  753. package/dist/features/auth/schemas/index.js +3 -3
  754. package/dist/features/auth/server/checkSoftBan.js +1 -1
  755. package/dist/features/auth/server.js +5 -5
  756. package/dist/features/auth/token-store.js +3 -3
  757. package/dist/features/before-after/api/[id]/route.js +2 -2
  758. package/dist/features/before-after/api/route.js +2 -2
  759. package/dist/features/before-after/columns/index.js +1 -1
  760. package/dist/features/before-after/components/BeforeAfterGallery.js +2 -2
  761. package/dist/features/before-after/components/BeforeAfterSlider.js +1 -1
  762. package/dist/features/before-after/components/index.js +2 -2
  763. package/dist/features/before-after/hooks/useBeforeAfter.js +2 -2
  764. package/dist/features/before-after/index.js +6 -6
  765. package/dist/features/blog/actions/blog-actions.js +6 -6
  766. package/dist/features/blog/actions/index.js +1 -1
  767. package/dist/features/blog/api/[slug]/route.js +3 -3
  768. package/dist/features/blog/api/route.js +3 -3
  769. package/dist/features/blog/columns/index.js +1 -1
  770. package/dist/features/blog/components/BlogFeaturedCard.js +6 -6
  771. package/dist/features/blog/components/BlogFilters.js +7 -7
  772. package/dist/features/blog/components/BlogIndexListing.js +9 -9
  773. package/dist/features/blog/components/BlogIndexPageView.js +6 -6
  774. package/dist/features/blog/components/BlogListView.js +6 -6
  775. package/dist/features/blog/components/BlogPostForm.js +6 -6
  776. package/dist/features/blog/components/BlogPostView.js +10 -10
  777. package/dist/features/blog/components/index.js +6 -6
  778. package/dist/features/blog/hooks/useBlog.js +2 -2
  779. package/dist/features/blog/index.js +6 -6
  780. package/dist/features/blog/repository/blog.repository.js +8 -8
  781. package/dist/features/blog/schemas/blog-form.js +2 -2
  782. package/dist/features/blog/schemas/firestore.js +1 -1
  783. package/dist/features/blog/schemas/index.js +4 -4
  784. package/dist/features/blog/server.js +4 -4
  785. package/dist/features/cart/actions/cart-actions.js +16 -16
  786. package/dist/features/cart/actions/index.js +1 -1
  787. package/dist/features/cart/api/[id]/route.js +2 -2
  788. package/dist/features/cart/api/route.js +2 -2
  789. package/dist/features/cart/columns/index.js +2 -2
  790. package/dist/features/cart/components/CartDrawer.js +6 -6
  791. package/dist/features/cart/components/CartGroupLineRow.js +5 -5
  792. package/dist/features/cart/components/CartPriceBreakdown.d.ts +6 -0
  793. package/dist/features/cart/components/CartPriceBreakdown.js +3 -3
  794. package/dist/features/cart/components/CartSummary.js +1 -1
  795. package/dist/features/cart/components/CartView.js +2 -2
  796. package/dist/features/cart/components/CheckoutAddressStep.js +1 -1
  797. package/dist/features/cart/components/CheckoutSuccessView.js +1 -1
  798. package/dist/features/cart/components/CheckoutView.js +2 -2
  799. package/dist/features/cart/components/ShippingPicker.js +3 -3
  800. package/dist/features/cart/components/StoreAddonsPicker.d.ts +35 -1
  801. package/dist/features/cart/components/StoreAddonsPicker.js +39 -11
  802. package/dist/features/cart/components/index.js +10 -10
  803. package/dist/features/cart/hooks/useAddToCart.js +8 -8
  804. package/dist/features/cart/hooks/useCart.js +3 -3
  805. package/dist/features/cart/hooks/useCartCount.js +4 -4
  806. package/dist/features/cart/hooks/useCartQuery.js +1 -1
  807. package/dist/features/cart/hooks/useCheckoutReadQueries.js +1 -1
  808. package/dist/features/cart/hooks/useGuestCart.js +1 -1
  809. package/dist/features/cart/hooks/useGuestCartMerge.js +4 -4
  810. package/dist/features/cart/hooks/useOrder.js +2 -2
  811. package/dist/features/cart/index.js +15 -15
  812. package/dist/features/cart/repository/cart.repository.js +7 -6
  813. package/dist/features/cart/schemas/firestore.d.ts +10 -0
  814. package/dist/features/cart/schemas/index.d.ts +2 -2
  815. package/dist/features/cart/schemas/index.js +2 -2
  816. package/dist/features/cart/server.js +2 -2
  817. package/dist/features/cart/utils/guest-cart.js +2 -2
  818. package/dist/features/cart/utils/line-total.js +1 -1
  819. package/dist/features/cart/utils/pending-ops.js +1 -1
  820. package/dist/features/catalogue/actions/approve-catalogue-listing.js +5 -5
  821. package/dist/features/catalogue/actions/list-from-catalogue.js +6 -6
  822. package/dist/features/catalogue/actions/submit-for-approval.js +4 -4
  823. package/dist/features/catalogue/components/AdminCatalogueApprovalsView.js +7 -7
  824. package/dist/features/catalogue/components/CatalogueItemEditorView.js +12 -12
  825. package/dist/features/catalogue/components/PublicCatalogueItemDetailView.js +7 -7
  826. package/dist/features/catalogue/components/PublicCatalogueView.js +6 -6
  827. package/dist/features/catalogue/components/UserCatalogueView.js +5 -5
  828. package/dist/features/catalogue/index.js +10 -10
  829. package/dist/features/catalogue/repository/catalogue.repository.js +4 -4
  830. package/dist/features/catalogue/schemas/firestore.js +1 -1
  831. package/dist/features/catalogue/schemas/index.js +2 -2
  832. package/dist/features/catalogue/schemas/validation.js +1 -1
  833. package/dist/features/catalogue/utils/freshness.js +2 -2
  834. package/dist/features/catalogue/utils/product-from-item.js +1 -1
  835. package/dist/features/categories/actions/category-actions.js +3 -3
  836. package/dist/features/categories/actions/index.js +1 -1
  837. package/dist/features/categories/api/[id]/description-template/route.js +44 -5
  838. package/dist/features/categories/api/[id]/route.js +4 -4
  839. package/dist/features/categories/api/route.js +8 -8
  840. package/dist/features/categories/columns/index.js +1 -1
  841. package/dist/features/categories/components/BrandDetailPageView.js +71 -18
  842. package/dist/features/categories/components/BrandDetailTabs.js +9 -9
  843. package/dist/features/categories/components/BreadcrumbTrail.js +2 -2
  844. package/dist/features/categories/components/BundleBuyNowCta.js +7 -7
  845. package/dist/features/categories/components/BundleCollage.js +7 -7
  846. package/dist/features/categories/components/BundleDetailView.js +10 -10
  847. package/dist/features/categories/components/BundleDynamicRuleEditor.js +5 -5
  848. package/dist/features/categories/components/BundleItemsPicker.js +4 -4
  849. package/dist/features/categories/components/BundlesListView.js +6 -6
  850. package/dist/features/categories/components/CategoriesIndexListing.js +9 -9
  851. package/dist/features/categories/components/CategoriesIndexPageView.js +3 -3
  852. package/dist/features/categories/components/CategoryBundlesListing.js +6 -6
  853. package/dist/features/categories/components/CategoryDetailPageView.js +193 -18
  854. package/dist/features/categories/components/CategoryDetailTabs.js +10 -10
  855. package/dist/features/categories/components/CategoryFilters.js +4 -4
  856. package/dist/features/categories/components/CategoryForm.js +6 -6
  857. package/dist/features/categories/components/CategoryGrid.js +4 -4
  858. package/dist/features/categories/components/CategoryHighlightsAndFaqSection.js +2 -2
  859. package/dist/features/categories/components/CategoryProductsListing.js +17 -17
  860. package/dist/features/categories/components/CategoryProductsView.js +3 -3
  861. package/dist/features/categories/components/CategorySelectorCreate.js +7 -7
  862. package/dist/features/categories/components/CategorySortSelect.js +2 -2
  863. package/dist/features/categories/components/CategoryStoresListing.js +3 -3
  864. package/dist/features/categories/components/CategoryTableColumns.js +3 -3
  865. package/dist/features/categories/components/CategoryTemplatePicker.js +14 -6
  866. package/dist/features/categories/components/CategoryTree.js +1 -1
  867. package/dist/features/categories/components/ConcernCard.js +2 -2
  868. package/dist/features/categories/components/ConcernGrid.js +2 -2
  869. package/dist/features/categories/components/index.js +20 -20
  870. package/dist/features/categories/hooks/useCategories.js +3 -3
  871. package/dist/features/categories/hooks/useCategorySelector.js +2 -2
  872. package/dist/features/categories/hooks/useCategoryTree.js +3 -3
  873. package/dist/features/categories/index.js +7 -7
  874. package/dist/features/categories/repository/categories.repository.d.ts +65 -0
  875. package/dist/features/categories/repository/categories.repository.js +176 -30
  876. package/dist/features/categories/repository/category-counts.d.ts +143 -0
  877. package/dist/features/categories/repository/category-counts.js +224 -0
  878. package/dist/features/categories/repository/price-index.repository.d.ts +69 -0
  879. package/dist/features/categories/repository/price-index.repository.js +31 -1
  880. package/dist/features/categories/schemas/bundle-form.js +3 -3
  881. package/dist/features/categories/schemas/category-counts.d.ts +155 -0
  882. package/dist/features/categories/schemas/category-counts.js +116 -0
  883. package/dist/features/categories/schemas/firestore.d.ts +0 -2
  884. package/dist/features/categories/schemas/firestore.js +2 -3
  885. package/dist/features/categories/schemas/index.d.ts +60 -60
  886. package/dist/features/categories/schemas/index.js +2 -2
  887. package/dist/features/categories/server.js +5 -5
  888. package/dist/features/categories/utils/breadcrumb-chain.d.ts +194 -0
  889. package/dist/features/categories/utils/breadcrumb-chain.js +202 -0
  890. package/dist/features/checkout/actions/checkout-value-otp-actions.js +13 -13
  891. package/dist/features/checkout/actions/index.js +1 -1
  892. package/dist/features/checkout/components/CheckoutStepper.js +1 -1
  893. package/dist/features/checkout/components/index.js +1 -1
  894. package/dist/features/checkout/index.js +4 -4
  895. package/dist/features/checkout/repository/failed-checkout.repository.js +2 -2
  896. package/dist/features/checkout/schemas/index.js +1 -1
  897. package/dist/features/checkout/server.js +2 -2
  898. package/dist/features/classified/components/ClassifiedDetailPageView.js +22 -22
  899. package/dist/features/classified/components/ClassifiedFilters.js +4 -4
  900. package/dist/features/classified/components/index.js +1 -1
  901. package/dist/features/collections/api/[slug]/route.js +2 -2
  902. package/dist/features/collections/api/route.js +2 -2
  903. package/dist/features/collections/columns/index.js +1 -1
  904. package/dist/features/collections/components/CollectionCard.js +3 -3
  905. package/dist/features/collections/components/index.js +1 -1
  906. package/dist/features/collections/hooks/useCollections.js +2 -2
  907. package/dist/features/collections/index.js +6 -6
  908. package/dist/features/consultation/api/[id]/route.js +2 -2
  909. package/dist/features/consultation/api/route.js +2 -2
  910. package/dist/features/consultation/columns/index.js +1 -1
  911. package/dist/features/consultation/components/ConsultationForm.js +6 -6
  912. package/dist/features/consultation/components/index.js +1 -1
  913. package/dist/features/consultation/hooks/useBookConsultation.js +2 -2
  914. package/dist/features/consultation/index.js +6 -6
  915. package/dist/features/consultation/schemas/index.d.ts +2 -2
  916. package/dist/features/consultation/schemas/index.js +1 -1
  917. package/dist/features/consultation/server.js +1 -1
  918. package/dist/features/contact/components/ContactForm.js +4 -4
  919. package/dist/features/contact/components/ContactInfoSidebar.js +1 -1
  920. package/dist/features/contact/components/ContactPageView.js +6 -6
  921. package/dist/features/contact/components/index.js +3 -3
  922. package/dist/features/contact/email.js +9 -9
  923. package/dist/features/contact/index.js +2 -2
  924. package/dist/features/contact/schemas/inquiry-forms.js +1 -1
  925. package/dist/features/contact/server.js +1 -1
  926. package/dist/features/corporate/api/[id]/route.js +2 -2
  927. package/dist/features/corporate/api/route.js +2 -2
  928. package/dist/features/corporate/columns/index.js +1 -1
  929. package/dist/features/corporate/components/CorporateInquiryForm.js +7 -7
  930. package/dist/features/corporate/components/index.js +1 -1
  931. package/dist/features/corporate/hooks/useSubmitCorporateInquiry.js +2 -2
  932. package/dist/features/corporate/index.js +6 -6
  933. package/dist/features/corporate/schemas/index.d.ts +4 -4
  934. package/dist/features/corporate/schemas/index.js +1 -1
  935. package/dist/features/corporate/server.js +1 -1
  936. package/dist/features/cron/index.js +4 -4
  937. package/dist/features/cron/jobs/auction-expiry.job.js +3 -3
  938. package/dist/features/cron/jobs/preorder-reminder.job.js +3 -3
  939. package/dist/features/digital-codes/components/DigitalCodeDetailPageView.js +20 -20
  940. package/dist/features/digital-codes/components/DigitalCodeFilters.js +4 -4
  941. package/dist/features/digital-codes/components/index.js +1 -1
  942. package/dist/features/email/index.js +1 -1
  943. package/dist/features/email/notification-templates.js +1 -1
  944. package/dist/features/events/actions/event-actions.js +10 -10
  945. package/dist/features/events/actions/index.js +1 -1
  946. package/dist/features/events/api/[id]/route.js +4 -4
  947. package/dist/features/events/columns/index.js +1 -1
  948. package/dist/features/events/components/AdminEventEditorView.js +10 -10
  949. package/dist/features/events/components/AdminEventEntriesView.js +9 -9
  950. package/dist/features/events/components/AdminEventsView.js +8 -8
  951. package/dist/features/events/components/EventBanner.js +4 -4
  952. package/dist/features/events/components/EventCard.js +8 -8
  953. package/dist/features/events/components/EventDetailView.js +1 -1
  954. package/dist/features/events/components/EventFilters.js +8 -8
  955. package/dist/features/events/components/EventFormDrawer.js +1 -1
  956. package/dist/features/events/components/EventLeaderboard.js +1 -1
  957. package/dist/features/events/components/EventOfferCard.js +5 -5
  958. package/dist/features/events/components/EventParticipateView.js +2 -2
  959. package/dist/features/events/components/EventPollWidget.js +5 -5
  960. package/dist/features/events/components/EventRaffleEntryForm.js +7 -7
  961. package/dist/features/events/components/EventRaffleWinnerView.js +1 -1
  962. package/dist/features/events/components/EventRafflesSection.js +8 -8
  963. package/dist/features/events/components/EventSaleBanner.js +4 -4
  964. package/dist/features/events/components/EventStatusBadge.js +1 -1
  965. package/dist/features/events/components/EventsIndexListing.js +9 -9
  966. package/dist/features/events/components/EventsListPageView.js +9 -9
  967. package/dist/features/events/components/EventsListView.js +2 -2
  968. package/dist/features/events/components/RelatedEventsCarousel.js +6 -6
  969. package/dist/features/events/components/SpinWheelView.js +4 -4
  970. package/dist/features/events/components/index.js +21 -21
  971. package/dist/features/events/hooks/useBulkEvent.js +1 -1
  972. package/dist/features/events/hooks/useEvent.js +2 -2
  973. package/dist/features/events/hooks/useEvents.js +2 -2
  974. package/dist/features/events/index.js +8 -8
  975. package/dist/features/events/repository/event-entry.repository.js +6 -6
  976. package/dist/features/events/repository/events.repository.js +10 -10
  977. package/dist/features/events/schemas/event-form.js +1 -1
  978. package/dist/features/events/schemas/index.js +3 -3
  979. package/dist/features/events/server.js +4 -4
  980. package/dist/features/faq/actions/faq-actions.js +3 -3
  981. package/dist/features/faq/actions/index.js +1 -1
  982. package/dist/features/faq/columns/index.js +1 -1
  983. package/dist/features/faq/components/ContactCTA.js +1 -1
  984. package/dist/features/faq/components/FAQAccordion.js +1 -1
  985. package/dist/features/faq/components/FAQCategorySidebar.js +2 -2
  986. package/dist/features/faq/components/FAQHelpfulButtons.js +2 -2
  987. package/dist/features/faq/components/FAQPageContent.js +7 -7
  988. package/dist/features/faq/components/FAQSearchableList.js +2 -2
  989. package/dist/features/faq/components/FAQSortDropdown.js +1 -1
  990. package/dist/features/faq/components/RelatedFAQs.js +1 -1
  991. package/dist/features/faq/components/index.js +7 -7
  992. package/dist/features/faq/hooks/useFaqList.js +2 -2
  993. package/dist/features/faq/hooks/useFaqVote.js +2 -2
  994. package/dist/features/faq/index.js +7 -7
  995. package/dist/features/faq/repository/faqs.repository.js +6 -6
  996. package/dist/features/faq/schemas/firestore.js +3 -2
  997. package/dist/features/faq/schemas/index.js +2 -2
  998. package/dist/features/faq/server.js +2 -2
  999. package/dist/features/faq/types/index.d.ts +9 -1
  1000. package/dist/features/faq/utils/getHomepageFaqsCached.js +1 -1
  1001. package/dist/features/filters/AsyncFacetSection.js +2 -2
  1002. package/dist/features/filters/FilterFacetSection.js +2 -2
  1003. package/dist/features/filters/FilterPanel.js +5 -5
  1004. package/dist/features/filters/RangeFilter.js +2 -2
  1005. package/dist/features/filters/SwitchFilter.js +2 -2
  1006. package/dist/features/filters/index.js +8 -8
  1007. package/dist/features/forms/Checkbox.js +3 -3
  1008. package/dist/features/forms/Input.js +3 -3
  1009. package/dist/features/forms/Radio.js +2 -2
  1010. package/dist/features/forms/Select.js +3 -3
  1011. package/dist/features/forms/Slider.js +3 -3
  1012. package/dist/features/forms/Textarea.js +3 -3
  1013. package/dist/features/forms/Toggle.js +2 -2
  1014. package/dist/features/forms/index.js +8 -8
  1015. package/dist/features/grouped/components/GroupedListingDetailView.js +3 -3
  1016. package/dist/features/grouped/components/GroupedListingEditorView.js +12 -12
  1017. package/dist/features/grouped/components/GroupedListingsCarousel.js +7 -7
  1018. package/dist/features/grouped/repository/grouped-listings.repository.js +3 -3
  1019. package/dist/features/grouped/schemas/grouped-listing-form.js +1 -1
  1020. package/dist/features/grouped/schemas/index.d.ts +2 -2
  1021. package/dist/features/grouped/schemas/index.js +2 -2
  1022. package/dist/features/history/actions/history-actions.js +2 -2
  1023. package/dist/features/history/actions/index.js +1 -1
  1024. package/dist/features/history/components/HistoryTracker.js +2 -2
  1025. package/dist/features/history/hooks/useHistory.js +4 -4
  1026. package/dist/features/history/hooks/useHistoryMergeOnLogin.js +2 -2
  1027. package/dist/features/history/index.js +4 -4
  1028. package/dist/features/history/repository/user-history.repository.js +3 -3
  1029. package/dist/features/history/server.js +2 -2
  1030. package/dist/features/history/utils/guest-history.js +2 -2
  1031. package/dist/features/homepage/actions/carousel-actions.js +3 -3
  1032. package/dist/features/homepage/actions/homepage-section-actions.js +5 -5
  1033. package/dist/features/homepage/actions/index.js +2 -2
  1034. package/dist/features/homepage/api/[id]/route.js +3 -3
  1035. package/dist/features/homepage/api/carousel/[id]/route.js +4 -4
  1036. package/dist/features/homepage/api/carousel/route.js +4 -4
  1037. package/dist/features/homepage/api/route.js +4 -4
  1038. package/dist/features/homepage/api/sections/[id]/route.js +2 -2
  1039. package/dist/features/homepage/api/sections/route.js +2 -2
  1040. package/dist/features/homepage/components/AdSlot.js +5 -5
  1041. package/dist/features/homepage/components/AdvertisementBanner.js +4 -4
  1042. package/dist/features/homepage/components/AnnouncementBar.js +3 -3
  1043. package/dist/features/homepage/components/BeforeAfterCard.js +3 -3
  1044. package/dist/features/homepage/components/BlogArticlesSection.js +6 -6
  1045. package/dist/features/homepage/components/BrandsSection.js +8 -8
  1046. package/dist/features/homepage/components/CTABannerSection.js +5 -5
  1047. package/dist/features/homepage/components/CharacterHotspot.js +7 -7
  1048. package/dist/features/homepage/components/CharacterHotspotForm.js +7 -7
  1049. package/dist/features/homepage/components/CollectionCardsSection.js +2 -2
  1050. package/dist/features/homepage/components/CustomCardsSection.js +5 -5
  1051. package/dist/features/homepage/components/CustomerReviewsSection.js +4 -4
  1052. package/dist/features/homepage/components/EventsSection.js +4 -4
  1053. package/dist/features/homepage/components/FAQSection.js +3 -3
  1054. package/dist/features/homepage/components/FeaturedAuctionsSection.js +5 -5
  1055. package/dist/features/homepage/components/FeaturedBundlesSection.js +9 -9
  1056. package/dist/features/homepage/components/FeaturedPreOrdersSection.js +5 -5
  1057. package/dist/features/homepage/components/FeaturedProductsSection.js +6 -6
  1058. package/dist/features/homepage/components/FeaturedResultsSection.js +3 -3
  1059. package/dist/features/homepage/components/FeaturedStoresSection.js +5 -5
  1060. package/dist/features/homepage/components/GoogleReviewsSection.js +6 -6
  1061. package/dist/features/homepage/components/HeroBanner.js +4 -4
  1062. package/dist/features/homepage/components/HeroCarousel.js +7 -7
  1063. package/dist/features/homepage/components/HeroSection.js +1 -1
  1064. package/dist/features/homepage/components/HomepageCustomerReviewsSection.js +4 -4
  1065. package/dist/features/homepage/components/HomepageSectionBoundary.js +1 -1
  1066. package/dist/features/homepage/components/HomepageSkeleton.js +3 -3
  1067. package/dist/features/homepage/components/HomepageView.js +1 -1
  1068. package/dist/features/homepage/components/HowItWorksInfoView.js +3 -3
  1069. package/dist/features/homepage/components/HowItWorksSection.js +2 -2
  1070. package/dist/features/homepage/components/MarketplaceHomepageView.js +17 -17
  1071. package/dist/features/homepage/components/NewsletterBanner.js +7 -7
  1072. package/dist/features/homepage/components/NewsletterSection.js +1 -1
  1073. package/dist/features/homepage/components/PromoGrid.js +4 -4
  1074. package/dist/features/homepage/components/SectionCarousel.js +6 -6
  1075. package/dist/features/homepage/components/SecurityHighlightsSection.js +2 -2
  1076. package/dist/features/homepage/components/ShopByCategorySection.js +8 -8
  1077. package/dist/features/homepage/components/SiteFeaturesSection.js +2 -2
  1078. package/dist/features/homepage/components/SocialFeedSection.js +6 -6
  1079. package/dist/features/homepage/components/SocialPostCard.js +2 -2
  1080. package/dist/features/homepage/components/StatsCounterSection.js +1 -1
  1081. package/dist/features/homepage/components/TestimonialsCarousel.js +1 -1
  1082. package/dist/features/homepage/components/TrustBadges.js +1 -1
  1083. package/dist/features/homepage/components/TrustFeaturesSection.js +1 -1
  1084. package/dist/features/homepage/components/TrustIndicatorsSection.js +2 -2
  1085. package/dist/features/homepage/components/WelcomeSection.js +2 -2
  1086. package/dist/features/homepage/components/WhatsAppCommunitySection.js +3 -3
  1087. package/dist/features/homepage/components/index.js +39 -39
  1088. package/dist/features/homepage/constants/faq-category-labels.d.ts +0 -14
  1089. package/dist/features/homepage/constants/faq-category-labels.js +22 -14
  1090. package/dist/features/homepage/hooks/homepage-query.js +1 -1
  1091. package/dist/features/homepage/hooks/useActiveAd.js +2 -2
  1092. package/dist/features/homepage/hooks/useBlogArticles.js +2 -2
  1093. package/dist/features/homepage/hooks/useFeaturedAuctions.js +5 -5
  1094. package/dist/features/homepage/hooks/useFeaturedPreOrders.js +5 -5
  1095. package/dist/features/homepage/hooks/useFeaturedProducts.js +5 -5
  1096. package/dist/features/homepage/hooks/useFeaturedStores.js +2 -2
  1097. package/dist/features/homepage/hooks/useHeroCarousel.js +2 -2
  1098. package/dist/features/homepage/hooks/useHomepage.js +2 -2
  1099. package/dist/features/homepage/hooks/useHomepageEvents.js +2 -2
  1100. package/dist/features/homepage/hooks/useHomepageReviews.d.ts +1 -1
  1101. package/dist/features/homepage/hooks/useHomepageReviews.js +2 -2
  1102. package/dist/features/homepage/hooks/useHomepageSections.js +2 -2
  1103. package/dist/features/homepage/hooks/useNewsletter.js +2 -2
  1104. package/dist/features/homepage/hooks/useTopBrands.js +2 -2
  1105. package/dist/features/homepage/hooks/useTopCategories.js +2 -2
  1106. package/dist/features/homepage/index.js +17 -17
  1107. package/dist/features/homepage/lib/live-stats.js +5 -5
  1108. package/dist/features/homepage/lib/section-helpers.js +1 -1
  1109. package/dist/features/homepage/lib/section-renderer.js +32 -32
  1110. package/dist/features/homepage/repository/carousel.repository.js +6 -6
  1111. package/dist/features/homepage/repository/carousels.repository.js +6 -6
  1112. package/dist/features/homepage/repository/homepage-sections.repository.js +5 -5
  1113. package/dist/features/homepage/schemas/firestore.d.ts +26 -1
  1114. package/dist/features/homepage/schemas/firestore.js +1 -1
  1115. package/dist/features/homepage/schemas/index.js +2 -2
  1116. package/dist/features/homepage/server.js +9 -9
  1117. package/dist/features/jobs/actions/enqueue-job.js +6 -6
  1118. package/dist/features/jobs/repository/jobs.repository.js +2 -2
  1119. package/dist/features/layout/AppLayoutShell.js +18 -18
  1120. package/dist/features/layout/AutoBreadcrumbs.js +3 -3
  1121. package/dist/features/layout/BackToTop.js +4 -4
  1122. package/dist/features/layout/BottomActions.js +3 -3
  1123. package/dist/features/layout/BottomChrome.js +2 -2
  1124. package/dist/features/layout/BottomNavItem.js +1 -1
  1125. package/dist/features/layout/BottomNavLayout.js +2 -2
  1126. package/dist/features/layout/BottomNavbar.js +6 -6
  1127. package/dist/features/layout/BottomSheet.js +1 -1
  1128. package/dist/features/layout/Breadcrumbs.js +2 -2
  1129. package/dist/features/layout/FooterLayout.js +2 -2
  1130. package/dist/features/layout/LocaleSwitcher.js +1 -1
  1131. package/dist/features/layout/MainNavbar.d.ts +6 -0
  1132. package/dist/features/layout/MainNavbar.js +3 -2
  1133. package/dist/features/layout/NavItem.js +2 -2
  1134. package/dist/features/layout/NavbarLayout.d.ts +19 -0
  1135. package/dist/features/layout/NavbarLayout.js +24 -5
  1136. package/dist/features/layout/NavbarWithSettings.js +3 -3
  1137. package/dist/features/layout/PageTabs.js +2 -2
  1138. package/dist/features/layout/SidebarLayout.js +2 -2
  1139. package/dist/features/layout/TitleBar.js +6 -6
  1140. package/dist/features/layout/TitleBarLayout.js +2 -2
  1141. package/dist/features/layout/hooks/useBottomActions.js +1 -1
  1142. package/dist/features/layout/hooks/useFormBottomActions.js +4 -4
  1143. package/dist/features/layout/index.js +23 -23
  1144. package/dist/features/live/components/LiveItemDetailPageView.js +20 -20
  1145. package/dist/features/live/components/LiveItemFilters.js +4 -4
  1146. package/dist/features/live/components/index.js +1 -1
  1147. package/dist/features/lottery/repository/lottery-entry.repository.js +6 -6
  1148. package/dist/features/lottery/schemas/config-write.js +1 -1
  1149. package/dist/features/lottery/schemas/zod.d.ts +8 -8
  1150. package/dist/features/loyalty/api/admin/loyalty/grant/route.js +2 -2
  1151. package/dist/features/loyalty/api/balance/route.js +2 -2
  1152. package/dist/features/loyalty/api/earn/route.js +2 -2
  1153. package/dist/features/loyalty/api/history/route.js +2 -2
  1154. package/dist/features/loyalty/api/redeem/route.js +2 -2
  1155. package/dist/features/loyalty/columns/index.js +1 -1
  1156. package/dist/features/loyalty/components/CoinsDisplay.js +1 -1
  1157. package/dist/features/loyalty/components/index.js +1 -1
  1158. package/dist/features/loyalty/hooks/useLoyaltyBalance.js +3 -3
  1159. package/dist/features/loyalty/index.js +6 -6
  1160. package/dist/features/loyalty/server.js +1 -1
  1161. package/dist/features/loyalty/types/index.js +1 -1
  1162. package/dist/features/media/AvatarUpload.js +6 -6
  1163. package/dist/features/media/MediaAudio.js +2 -2
  1164. package/dist/features/media/MediaAvatar.js +2 -2
  1165. package/dist/features/media/MediaImage.js +4 -4
  1166. package/dist/features/media/MediaLightbox.js +2 -2
  1167. package/dist/features/media/MediaPickerModal.js +7 -7
  1168. package/dist/features/media/MediaVideo.js +3 -3
  1169. package/dist/features/media/finalize.js +3 -3
  1170. package/dist/features/media/hooks/useMedia.js +3 -3
  1171. package/dist/features/media/index.js +17 -17
  1172. package/dist/features/media/modals/ImageCropModal.js +2 -2
  1173. package/dist/features/media/modals/ImageEditor.d.ts +0 -1
  1174. package/dist/features/media/modals/ImageEditor.js +18 -3
  1175. package/dist/features/media/modals/VideoThumbnailSelector.js +3 -3
  1176. package/dist/features/media/modals/VideoTrimModal.js +5 -5
  1177. package/dist/features/media/repository/media-assets.repository.js +1 -1
  1178. package/dist/features/media/server.js +1 -1
  1179. package/dist/features/media/types/index.js +1 -1
  1180. package/dist/features/media/upload/CameraCapture.js +2 -2
  1181. package/dist/features/media/upload/ImageUpload.js +9 -9
  1182. package/dist/features/media/upload/MediaUploadField.js +11 -11
  1183. package/dist/features/media/upload/MediaUploadList.js +6 -6
  1184. package/dist/features/media/upload/video-poster.js +1 -1
  1185. package/dist/features/messaging/repository/message-budget.repository.js +2 -2
  1186. package/dist/features/orders/actions/index.js +2 -2
  1187. package/dist/features/orders/actions/order-actions.js +5 -5
  1188. package/dist/features/orders/actions/refund-actions.js +6 -6
  1189. package/dist/features/orders/api/track/[trackingId]/route.js +2 -2
  1190. package/dist/features/orders/columns/index.js +1 -1
  1191. package/dist/features/orders/components/MarketplaceOrderCard.js +4 -4
  1192. package/dist/features/orders/components/OrderAddonBadges.d.ts +4 -2
  1193. package/dist/features/orders/components/OrderAddonBadges.js +5 -4
  1194. package/dist/features/orders/components/OrderFilters.js +6 -6
  1195. package/dist/features/orders/components/OrderPaymentSummary.js +2 -2
  1196. package/dist/features/orders/components/OrderScopeTabs.js +4 -4
  1197. package/dist/features/orders/components/OrderSiblingPayments.js +5 -5
  1198. package/dist/features/orders/components/OrderStatusTimeline.js +2 -2
  1199. package/dist/features/orders/components/OrdersList.js +5 -5
  1200. package/dist/features/orders/components/RefundHistoryTable.js +3 -3
  1201. package/dist/features/orders/components/RefundRequestView.js +8 -8
  1202. package/dist/features/orders/components/index.js +9 -9
  1203. package/dist/features/orders/constants/order-scope.js +1 -1
  1204. package/dist/features/orders/hooks/useOrders.js +2 -2
  1205. package/dist/features/orders/index.js +9 -9
  1206. package/dist/features/orders/repository/orders.repository.d.ts +8 -0
  1207. package/dist/features/orders/repository/orders.repository.js +13 -11
  1208. package/dist/features/orders/schemas/buyer-forms.js +1 -1
  1209. package/dist/features/orders/schemas/firestore.d.ts +108 -1
  1210. package/dist/features/orders/schemas/firestore.js +1 -1
  1211. package/dist/features/orders/schemas/index.d.ts +6 -6
  1212. package/dist/features/orders/schemas/index.js +2 -2
  1213. package/dist/features/orders/server.js +3 -3
  1214. package/dist/features/orders/types/index.d.ts +33 -0
  1215. package/dist/features/orders/utils/order-splitter.js +2 -2
  1216. package/dist/features/parts/components/AssemblyDrawer.d.ts +107 -0
  1217. package/dist/features/parts/components/AssemblyDrawer.js +250 -0
  1218. package/dist/features/parts/components/ModelCompositionPanel.d.ts +37 -0
  1219. package/dist/features/parts/components/ModelCompositionPanel.js +34 -0
  1220. package/dist/features/parts/components/PartDetailPageView.d.ts +48 -0
  1221. package/dist/features/parts/components/PartDetailPageView.js +20 -0
  1222. package/dist/features/parts/components/PartsIndexPageView.d.ts +33 -0
  1223. package/dist/features/parts/components/PartsIndexPageView.js +17 -0
  1224. package/dist/features/parts/schemas/firestore.d.ts +257 -0
  1225. package/dist/features/parts/schemas/firestore.js +181 -0
  1226. package/dist/features/parts/utils/colourway-match.d.ts +62 -0
  1227. package/dist/features/parts/utils/colourway-match.js +98 -0
  1228. package/dist/features/parts/utils/part-breakdown.d.ts +53 -0
  1229. package/dist/features/parts/utils/part-breakdown.js +77 -0
  1230. package/dist/features/payments/columns/index.js +1 -1
  1231. package/dist/features/payments/hooks/usePaymentEvent.js +2 -2
  1232. package/dist/features/payments/hooks/usePayments.js +2 -2
  1233. package/dist/features/payments/index.js +6 -6
  1234. package/dist/features/payments/repository/payout.repository.js +4 -4
  1235. package/dist/features/payments/repository/saved-payment-methods.repository.js +6 -6
  1236. package/dist/features/payments/schemas/firestore.js +1 -1
  1237. package/dist/features/payments/schemas/index.d.ts +6 -6
  1238. package/dist/features/payments/schemas/index.js +3 -3
  1239. package/dist/features/payments/server.js +4 -4
  1240. package/dist/features/pre-orders/api/[id]/route.js +2 -2
  1241. package/dist/features/pre-orders/api/[slug]/route.js +2 -2
  1242. package/dist/features/pre-orders/api/admin/[id]/route.js +2 -2
  1243. package/dist/features/pre-orders/api/admin/route.js +2 -2
  1244. package/dist/features/pre-orders/api/route.js +3 -3
  1245. package/dist/features/pre-orders/columns/index.js +1 -1
  1246. package/dist/features/pre-orders/components/MarketplacePreorderCard.d.ts +1 -1
  1247. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +14 -14
  1248. package/dist/features/pre-orders/components/PreOrderActionsClient.js +4 -4
  1249. package/dist/features/pre-orders/components/PreOrderBadge.js +1 -1
  1250. package/dist/features/pre-orders/components/PreOrderBottomActions.js +1 -1
  1251. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +26 -26
  1252. package/dist/features/pre-orders/components/PreOrderFilters.js +4 -4
  1253. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +23 -23
  1254. package/dist/features/pre-orders/components/PreOrdersListView.js +4 -4
  1255. package/dist/features/pre-orders/components/PreorderCard.js +2 -2
  1256. package/dist/features/pre-orders/components/index.js +6 -6
  1257. package/dist/features/pre-orders/hooks/usePreOrders.js +2 -2
  1258. package/dist/features/pre-orders/index.js +6 -6
  1259. package/dist/features/pre-orders/schemas/index.js +1 -1
  1260. package/dist/features/pre-orders/server.js +1 -1
  1261. package/dist/features/price-index/components/PriceIndexToolView.d.ts +87 -0
  1262. package/dist/features/price-index/components/PriceIndexToolView.js +140 -0
  1263. package/dist/features/products/actions/index.js +1 -1
  1264. package/dist/features/products/actions/product-actions.js +6 -6
  1265. package/dist/features/products/api/[id]/route.js +8 -8
  1266. package/dist/features/products/api/route.js +7 -7
  1267. package/dist/features/products/columns/index.js +2 -2
  1268. package/dist/features/products/columns/productTableColumns.js +3 -3
  1269. package/dist/features/products/components/ArtStickersListView.js +7 -7
  1270. package/dist/features/products/components/AuctionDetailView.js +1 -1
  1271. package/dist/features/products/components/AuctionsIndexListing.js +20 -20
  1272. package/dist/features/products/components/AvailabilityTabs.js +5 -5
  1273. package/dist/features/products/components/BidHistory.js +3 -3
  1274. package/dist/features/products/components/CardStoreLine.js +2 -2
  1275. package/dist/features/products/components/CompareOverlay.js +9 -9
  1276. package/dist/features/products/components/CustomFieldsEditor.js +2 -2
  1277. package/dist/features/products/components/CustomSectionTabContent.js +2 -2
  1278. package/dist/features/products/components/CustomSectionsEditor.js +3 -3
  1279. package/dist/features/products/components/FeatureBadge.js +2 -2
  1280. package/dist/features/products/components/GroupMemberPicker.js +9 -9
  1281. package/dist/features/products/components/GroupSettingsPanel.js +12 -12
  1282. package/dist/features/products/components/InteractiveProductCard.js +2 -2
  1283. package/dist/features/products/components/ListingBottomActions.js +4 -4
  1284. package/dist/features/products/components/MakeOfferButton.js +13 -13
  1285. package/dist/features/products/components/MarketplaceBundleCard.js +9 -9
  1286. package/dist/features/products/components/MarketplacePrizeDrawCard.js +9 -9
  1287. package/dist/features/products/components/NonRefundableConsentModal.js +1 -1
  1288. package/dist/features/products/components/PreOrderDetailView.js +1 -1
  1289. package/dist/features/products/components/PrizeDrawBottomActions.js +1 -1
  1290. package/dist/features/products/components/PrizeDrawCollage.js +4 -4
  1291. package/dist/features/products/components/PrizeDrawDetailPageView.js +18 -18
  1292. package/dist/features/products/components/PrizeDrawEntryActions.js +8 -8
  1293. package/dist/features/products/components/PrizeDrawItemsEditor.js +2 -2
  1294. package/dist/features/products/components/PrizeDrawWinnerMappingView.js +3 -3
  1295. package/dist/features/products/components/PrizeDrawsIndexListing.js +14 -14
  1296. package/dist/features/products/components/PrizeDrawsListingView.js +6 -6
  1297. package/dist/features/products/components/PrizeDrawsSection.js +6 -6
  1298. package/dist/features/products/components/PrizeRevealModal.js +3 -3
  1299. package/dist/features/products/components/ProductCardMetadataSection.js +1 -1
  1300. package/dist/features/products/components/ProductDetailActions.js +14 -14
  1301. package/dist/features/products/components/ProductDetailPageView.d.ts +14 -1
  1302. package/dist/features/products/components/ProductDetailPageView.js +50 -31
  1303. package/dist/features/products/components/ProductDetailView.js +1 -1
  1304. package/dist/features/products/components/ProductFeatureBadges.js +1 -1
  1305. package/dist/features/products/components/ProductFeaturesSelector.js +5 -5
  1306. package/dist/features/products/components/ProductFilters.js +8 -8
  1307. package/dist/features/products/components/ProductForm.js +15 -15
  1308. package/dist/features/products/components/ProductGalleryClient.js +3 -3
  1309. package/dist/features/products/components/ProductGradingTab.js +3 -3
  1310. package/dist/features/products/components/ProductGrid.js +16 -16
  1311. package/dist/features/products/components/ProductTabs.js +1 -1
  1312. package/dist/features/products/components/ProductTabsShell.d.ts +3 -1
  1313. package/dist/features/products/components/ProductTabsShell.js +6 -3
  1314. package/dist/features/products/components/ProductsIndexListing.js +33 -33
  1315. package/dist/features/products/components/ProductsIndexPageView.js +12 -12
  1316. package/dist/features/products/components/ProductsView.js +1 -1
  1317. package/dist/features/products/components/RelatedItemsSection.js +2 -2
  1318. package/dist/features/products/components/RelatedProducts.js +1 -1
  1319. package/dist/features/products/components/RelatedProductsCarousel.js +4 -4
  1320. package/dist/features/products/components/ShareButton.js +2 -2
  1321. package/dist/features/products/components/ShowGroupSection.js +8 -8
  1322. package/dist/features/products/components/SublistingCarouselSection.js +8 -8
  1323. package/dist/features/products/components/SublistingCategorySelect.js +2 -2
  1324. package/dist/features/products/components/index.js +42 -42
  1325. package/dist/features/products/config/listing-type-listing-config.js +7 -7
  1326. package/dist/features/products/constants/action-defs.js +1 -1
  1327. package/dist/features/products/constants/listing-tabs.js +2 -2
  1328. package/dist/features/products/constants/sieve.js +2 -2
  1329. package/dist/features/products/hooks/useAvailabilityScope.js +4 -4
  1330. package/dist/features/products/hooks/useBrands.d.ts +1 -1
  1331. package/dist/features/products/hooks/useBrands.js +2 -2
  1332. package/dist/features/products/hooks/useProductDetail.js +2 -2
  1333. package/dist/features/products/hooks/useProducts.js +5 -5
  1334. package/dist/features/products/hooks/useRelatedProducts.js +4 -4
  1335. package/dist/features/products/index.js +14 -14
  1336. package/dist/features/products/repository/category-assignment.d.ts +132 -0
  1337. package/dist/features/products/repository/category-assignment.js +304 -0
  1338. package/dist/features/products/repository/loadProductFeatures.js +2 -2
  1339. package/dist/features/products/repository/product-features.repository.js +7 -7
  1340. package/dist/features/products/repository/product-templates.repository.js +3 -3
  1341. package/dist/features/products/repository/products.repository.d.ts +120 -38
  1342. package/dist/features/products/repository/products.repository.js +448 -109
  1343. package/dist/features/products/schemas/firestore.d.ts +172 -6
  1344. package/dist/features/products/schemas/firestore.js +67 -1
  1345. package/dist/features/products/schemas/index.d.ts +2 -2
  1346. package/dist/features/products/schemas/index.js +3 -3
  1347. package/dist/features/products/schemas/product-features.validators.js +1 -1
  1348. package/dist/features/products/server.js +4 -4
  1349. package/dist/features/products/utils/listing-badge-variant.js +1 -1
  1350. package/dist/features/products/utils/listing-type.js +1 -1
  1351. package/dist/features/promotions/actions/coupon-actions.js +2 -2
  1352. package/dist/features/promotions/actions/index.js +4 -4
  1353. package/dist/features/promotions/actions/promotions-actions.js +3 -3
  1354. package/dist/features/promotions/actions/seller-coupon-actions.js +5 -5
  1355. package/dist/features/promotions/api/route.js +2 -2
  1356. package/dist/features/promotions/columns/index.js +1 -1
  1357. package/dist/features/promotions/components/CouponCard.js +4 -4
  1358. package/dist/features/promotions/components/CouponHelpDetails.js +2 -2
  1359. package/dist/features/promotions/components/CouponsIndexListing.js +8 -8
  1360. package/dist/features/promotions/components/PromotionsView.js +1 -1
  1361. package/dist/features/promotions/components/index.js +4 -4
  1362. package/dist/features/promotions/hooks/useCouponValidate.js +2 -2
  1363. package/dist/features/promotions/hooks/usePromotions.js +2 -2
  1364. package/dist/features/promotions/index.js +7 -7
  1365. package/dist/features/promotions/repository/claimed-coupons.repository.js +5 -5
  1366. package/dist/features/promotions/repository/coupons.repository.js +9 -9
  1367. package/dist/features/promotions/schemas/firestore.js +1 -1
  1368. package/dist/features/promotions/schemas/index.d.ts +24 -24
  1369. package/dist/features/promotions/schemas/index.js +2 -2
  1370. package/dist/features/promotions/server.js +3 -3
  1371. package/dist/features/reviews/actions/index.js +1 -1
  1372. package/dist/features/reviews/actions/review-actions.js +9 -9
  1373. package/dist/features/reviews/api/[id]/route.js +5 -5
  1374. package/dist/features/reviews/columns/index.js +1 -1
  1375. package/dist/features/reviews/components/ReviewDetailPageView.js +7 -7
  1376. package/dist/features/reviews/components/ReviewDetailShell.js +11 -11
  1377. package/dist/features/reviews/components/ReviewFilters.js +7 -7
  1378. package/dist/features/reviews/components/ReviewModal.js +7 -7
  1379. package/dist/features/reviews/components/ReviewSummary.js +3 -3
  1380. package/dist/features/reviews/components/ReviewsIndexListing.js +1 -1
  1381. package/dist/features/reviews/components/ReviewsIndexPageView.js +5 -5
  1382. package/dist/features/reviews/components/ReviewsList.js +9 -9
  1383. package/dist/features/reviews/components/ReviewsListingPanel.js +10 -10
  1384. package/dist/features/reviews/components/index.js +6 -6
  1385. package/dist/features/reviews/hooks/useCreateReview.js +3 -3
  1386. package/dist/features/reviews/hooks/useReviews.js +2 -2
  1387. package/dist/features/reviews/index.js +7 -7
  1388. package/dist/features/reviews/repository/reviews.repository.js +7 -7
  1389. package/dist/features/reviews/schemas/firestore.js +1 -1
  1390. package/dist/features/reviews/schemas/index.js +2 -2
  1391. package/dist/features/reviews/server.js +3 -3
  1392. package/dist/features/scams/actions/scam-actions.js +5 -5
  1393. package/dist/features/scams/components/ScamAwarenessModal.js +5 -5
  1394. package/dist/features/scams/components/ScamProfileView.js +8 -8
  1395. package/dist/features/scams/components/ScamRegistryView.js +7 -7
  1396. package/dist/features/scams/components/SellerTrustBadge.js +3 -3
  1397. package/dist/features/scams/components/index.js +4 -4
  1398. package/dist/features/scams/constants/scammer-status-display.js +1 -1
  1399. package/dist/features/scams/repository/scammer.repository.js +10 -10
  1400. package/dist/features/scams/schemas/index.d.ts +10 -10
  1401. package/dist/features/scams/schemas/index.js +2 -2
  1402. package/dist/features/scams/schemas/report-form.js +1 -1
  1403. package/dist/features/search/action-index/repository.js +2 -2
  1404. package/dist/features/search/actions/index.js +1 -1
  1405. package/dist/features/search/actions/search-actions.js +2 -2
  1406. package/dist/features/search/api/route.js +5 -5
  1407. package/dist/features/search/columns/index.js +1 -1
  1408. package/dist/features/search/components/Search.js +2 -2
  1409. package/dist/features/search/components/SearchFiltersRow.js +1 -1
  1410. package/dist/features/search/components/SearchResultsPageView.d.ts +33 -0
  1411. package/dist/features/search/components/SearchResultsPageView.js +21 -0
  1412. package/dist/features/search/components/SearchResultsSection.js +1 -1
  1413. package/dist/features/search/components/SearchView.js +1 -1
  1414. package/dist/features/search/components/index.js +4 -4
  1415. package/dist/features/search/hooks/useNavSuggestions.js +2 -2
  1416. package/dist/features/search/hooks/useSearch.js +2 -2
  1417. package/dist/features/search/index.js +7 -7
  1418. package/dist/features/search/repository/search.repository.js +2 -2
  1419. package/dist/features/search/server.js +4 -4
  1420. package/dist/features/seller/actions/index.js +2 -2
  1421. package/dist/features/seller/actions/offer-actions.js +14 -14
  1422. package/dist/features/seller/actions/seller-actions.js +22 -22
  1423. package/dist/features/seller/api/coupons/route.js +2 -2
  1424. package/dist/features/seller/api/products/route.js +3 -3
  1425. package/dist/features/seller/api/store/route.js +2 -2
  1426. package/dist/features/seller/columns/index.js +1 -1
  1427. package/dist/features/seller/components/BarcodeField.js +3 -3
  1428. package/dist/features/seller/components/BrandInlineSelect.js +4 -4
  1429. package/dist/features/seller/components/BulkStockModal.d.ts +16 -0
  1430. package/dist/features/seller/components/BulkStockModal.js +46 -0
  1431. package/dist/features/seller/components/CategoryChipPicker.js +2 -2
  1432. package/dist/features/seller/components/CategoryInlineSelect.js +4 -4
  1433. package/dist/features/seller/components/CouponInlineSelect.js +3 -3
  1434. package/dist/features/seller/components/FulfillmentView.js +9 -9
  1435. package/dist/features/seller/components/GroupInlineSelect.js +4 -4
  1436. package/dist/features/seller/components/OfferPhaseTimeline.js +1 -1
  1437. package/dist/features/seller/components/PhysicalLocationModal.js +22 -7
  1438. package/dist/features/seller/components/PrintCenterView.js +6 -6
  1439. package/dist/features/seller/components/ProductInlineSelect.js +3 -3
  1440. package/dist/features/seller/components/QuickProductForm.js +2 -2
  1441. package/dist/features/seller/components/SellerAddressesView.js +9 -9
  1442. package/dist/features/seller/components/SellerAnalyticsAlertsView.js +11 -11
  1443. package/dist/features/seller/components/SellerAnalyticsView.js +1 -1
  1444. package/dist/features/seller/components/SellerArtView.js +1 -1
  1445. package/dist/features/seller/components/SellerBidsView.js +14 -14
  1446. package/dist/features/seller/components/SellerBundlesView.js +7 -7
  1447. package/dist/features/seller/components/SellerClassifiedView.js +1 -1
  1448. package/dist/features/seller/components/SellerCouponEditorView.js +10 -10
  1449. package/dist/features/seller/components/SellerCouponsView.js +7 -7
  1450. package/dist/features/seller/components/SellerCreateProductView.js +1 -1
  1451. package/dist/features/seller/components/SellerDashboardView.js +1 -1
  1452. package/dist/features/seller/components/SellerDigitalCodesView.js +1 -1
  1453. package/dist/features/seller/components/SellerEditProductView.js +1 -1
  1454. package/dist/features/seller/components/SellerFeaturesView.js +8 -8
  1455. package/dist/features/seller/components/SellerGoogleReviewsView.js +8 -8
  1456. package/dist/features/seller/components/SellerGroupedListingsView.js +6 -6
  1457. package/dist/features/seller/components/SellerGuideView.js +1 -1
  1458. package/dist/features/seller/components/SellerListingTypeView.js +13 -13
  1459. package/dist/features/seller/components/SellerLiveView.js +1 -1
  1460. package/dist/features/seller/components/SellerOffersView.js +9 -9
  1461. package/dist/features/seller/components/SellerOrdersView.js +23 -23
  1462. package/dist/features/seller/components/SellerPayoutHistoryTable.js +1 -1
  1463. package/dist/features/seller/components/SellerPayoutMethodsView.js +7 -7
  1464. package/dist/features/seller/components/SellerPayoutRequestView.js +3 -3
  1465. package/dist/features/seller/components/SellerPayoutSettingsView.js +30 -8
  1466. package/dist/features/seller/components/SellerPayoutStats.js +1 -1
  1467. package/dist/features/seller/components/SellerPayoutsView.js +11 -11
  1468. package/dist/features/seller/components/SellerProductShell.js +14 -14
  1469. package/dist/features/seller/components/SellerProductsCards.js +5 -5
  1470. package/dist/features/seller/components/SellerProductsFilterDrawer.js +4 -4
  1471. package/dist/features/seller/components/SellerProductsView.js +234 -34
  1472. package/dist/features/seller/components/SellerReviewsView.js +12 -12
  1473. package/dist/features/seller/components/SellerShippingConfigsView.js +9 -9
  1474. package/dist/features/seller/components/SellerShippingView.js +7 -7
  1475. package/dist/features/seller/components/SellerSidebar.js +9 -9
  1476. package/dist/features/seller/components/SellerStickersView.js +1 -1
  1477. package/dist/features/seller/components/SellerStoreCategoriesView.js +10 -10
  1478. package/dist/features/seller/components/SellerStoreSetupView.js +1 -1
  1479. package/dist/features/seller/components/SellerStoreView.js +1 -1
  1480. package/dist/features/seller/components/SellerStorefrontView.js +5 -5
  1481. package/dist/features/seller/components/SellerSupportView.js +6 -6
  1482. package/dist/features/seller/components/SellersListView.js +1 -1
  1483. package/dist/features/seller/components/SublistingInlineSelect.js +3 -3
  1484. package/dist/features/seller/components/analytics/SellerAnalyticsStats.js +2 -2
  1485. package/dist/features/seller/components/analytics/SellerRevenueChart.js +2 -2
  1486. package/dist/features/seller/components/analytics/SellerTopProducts.js +1 -1
  1487. package/dist/features/seller/components/analytics/index.js +3 -3
  1488. package/dist/features/seller/components/index.js +67 -67
  1489. package/dist/features/seller/hooks/useBecomeSeller.js +3 -3
  1490. package/dist/features/seller/hooks/useSellerListingData.js +1 -1
  1491. package/dist/features/seller/hooks/useSellerPayouts.js +2 -2
  1492. package/dist/features/seller/hooks/useSellerStore.js +2 -2
  1493. package/dist/features/seller/hooks/useSellerStorefront.js +2 -2
  1494. package/dist/features/seller/index.js +11 -11
  1495. package/dist/features/seller/repository/offer.repository.js +6 -6
  1496. package/dist/features/seller/schemas/coupon-form.d.ts +20 -20
  1497. package/dist/features/seller/schemas/coupon-form.js +1 -1
  1498. package/dist/features/seller/schemas/firestore.js +1 -1
  1499. package/dist/features/seller/schemas/index.js +1 -1
  1500. package/dist/features/seller/schemas/order-forms.js +2 -2
  1501. package/dist/features/seller/schemas/product-form.js +1 -1
  1502. package/dist/features/seller/schemas/review-forms.js +1 -1
  1503. package/dist/features/seller/server.js +5 -5
  1504. package/dist/features/server-errors/repository/server-errors.repository.js +4 -4
  1505. package/dist/features/server-errors/schemas/index.js +1 -1
  1506. package/dist/features/shell/CommandPalette.js +2 -2
  1507. package/dist/features/shell/FormShell.js +5 -5
  1508. package/dist/features/shell/QuickFormDrawer.js +7 -7
  1509. package/dist/features/shell/SectionForm.js +9 -9
  1510. package/dist/features/shell/build-sections.js +11 -11
  1511. package/dist/features/shell/field-groups/ImageFieldGroup.js +1 -1
  1512. package/dist/features/shell/field-groups/SeoFieldGroup.js +3 -3
  1513. package/dist/features/shell/field-groups/StatusFieldGroup.js +2 -2
  1514. package/dist/features/shell/field-groups/TitleDescriptionGroup.js +3 -3
  1515. package/dist/features/shell/field-groups/index.js +4 -4
  1516. package/dist/features/shell/index.js +8 -8
  1517. package/dist/features/shipments/components/AdminShipmentEditorView.js +13 -13
  1518. package/dist/features/shipments/components/AdminShipmentLotItemsView.js +12 -12
  1519. package/dist/features/shipments/components/AdminShipmentProjectionsView.js +5 -5
  1520. package/dist/features/shipments/components/AdminShipmentsView.js +7 -7
  1521. package/dist/features/shipments/components/ShipmentItemLinkModal.js +4 -4
  1522. package/dist/features/shipments/hooks/useShipments.js +2 -2
  1523. package/dist/features/shipments/index.js +7 -7
  1524. package/dist/features/shipments/repository/shipment-items.repository.js +4 -4
  1525. package/dist/features/shipments/repository/shipment-lots.repository.js +2 -2
  1526. package/dist/features/shipments/repository/shipments.repository.js +4 -4
  1527. package/dist/features/shipments/schemas/firestore.js +1 -1
  1528. package/dist/features/shipments/schemas/index.js +2 -2
  1529. package/dist/features/shipments/schemas/validation.d.ts +4 -4
  1530. package/dist/features/shipments/schemas/validation.js +3 -3
  1531. package/dist/features/shipments/utils/cost-allocation.js +1 -1
  1532. package/dist/features/site-settings/components/ActionPermissionsManager.js +4 -4
  1533. package/dist/features/site-settings/components/NavPermissionsManager.js +3 -3
  1534. package/dist/features/site-settings/components/ThemeManagerView.js +2 -2
  1535. package/dist/features/status-history/components/RecordStatusTimeline.js +1 -1
  1536. package/dist/features/status-history/components/StatusTimeline.js +1 -1
  1537. package/dist/features/status-history/index.js +2 -2
  1538. package/dist/features/store-extensions/components/ReviewDecisionModal.js +10 -10
  1539. package/dist/features/store-extensions/index.js +16 -16
  1540. package/dist/features/store-extensions/repository/rbac.repositories.js +2 -2
  1541. package/dist/features/store-extensions/repository/store-extensions.repositories.js +3 -3
  1542. package/dist/features/store-extensions/schemas/admin-notification-form.js +1 -1
  1543. package/dist/features/store-extensions/schemas/analytics-forms.js +2 -2
  1544. package/dist/features/store-extensions/schemas/custom-role-form.js +2 -2
  1545. package/dist/features/store-extensions/schemas/google-config-form.d.ts +6 -6
  1546. package/dist/features/store-extensions/schemas/google-config-form.js +1 -1
  1547. package/dist/features/store-extensions/schemas/item-request-create-form.js +1 -1
  1548. package/dist/features/store-extensions/schemas/listing-template-form.js +3 -3
  1549. package/dist/features/store-extensions/schemas/moderation-review-form.js +1 -1
  1550. package/dist/features/store-extensions/schemas/payout-method-form.js +1 -1
  1551. package/dist/features/store-extensions/schemas/report-create-form.js +2 -2
  1552. package/dist/features/store-extensions/schemas/report-review-form.js +1 -1
  1553. package/dist/features/store-extensions/schemas/shipping-config-form.d.ts +10 -10
  1554. package/dist/features/store-extensions/schemas/shipping-config-form.js +1 -1
  1555. package/dist/features/store-extensions/schemas/store-category-form.js +1 -1
  1556. package/dist/features/store-extensions/schemas/sublisting-category-form.js +1 -1
  1557. package/dist/features/stores/actions/index.js +2 -2
  1558. package/dist/features/stores/actions/store-address-actions.js +4 -4
  1559. package/dist/features/stores/actions/store-query-actions.js +9 -9
  1560. package/dist/features/stores/api/[storeSlug]/auctions/route.js +5 -5
  1561. package/dist/features/stores/api/[storeSlug]/products/route.js +5 -5
  1562. package/dist/features/stores/api/[storeSlug]/reviews/route.js +4 -4
  1563. package/dist/features/stores/api/[storeSlug]/route.js +3 -3
  1564. package/dist/features/stores/columns/index.js +1 -1
  1565. package/dist/features/stores/components/InteractiveStoreCard.js +5 -5
  1566. package/dist/features/stores/components/StoreAboutView.js +3 -3
  1567. package/dist/features/stores/components/StoreAddressSelectorCreate.js +2 -2
  1568. package/dist/features/stores/components/StoreArtStickersPageView.js +6 -6
  1569. package/dist/features/stores/components/StoreAuctionsListing.js +15 -15
  1570. package/dist/features/stores/components/StoreAuctionsPageView.js +5 -5
  1571. package/dist/features/stores/components/StoreAuctionsView.js +1 -1
  1572. package/dist/features/stores/components/StoreBundlesPageView.js +5 -5
  1573. package/dist/features/stores/components/StoreCapabilitiesGuideView.js +2 -2
  1574. package/dist/features/stores/components/StoreClassifiedsListing.js +12 -12
  1575. package/dist/features/stores/components/StoreClassifiedsPageView.js +5 -5
  1576. package/dist/features/stores/components/StoreDetailLayoutView.js +12 -12
  1577. package/dist/features/stores/components/StoreDigitalCodesListing.js +12 -12
  1578. package/dist/features/stores/components/StoreDigitalCodesPageView.js +5 -5
  1579. package/dist/features/stores/components/StoreFilters.js +4 -4
  1580. package/dist/features/stores/components/StoreFinanceGuideView.js +2 -2
  1581. package/dist/features/stores/components/StoreGuideHubView.js +2 -2
  1582. package/dist/features/stores/components/StoreHeader.js +6 -6
  1583. package/dist/features/stores/components/StoreListingsGuideView.js +2 -2
  1584. package/dist/features/stores/components/StoreLiveItemsListing.js +12 -12
  1585. package/dist/features/stores/components/StoreLiveItemsPageView.js +5 -5
  1586. package/dist/features/stores/components/StoreNavTabs.js +2 -2
  1587. package/dist/features/stores/components/StoreOrdersGuideView.js +2 -2
  1588. package/dist/features/stores/components/StorePreOrdersListing.js +11 -11
  1589. package/dist/features/stores/components/StorePreOrdersPageView.js +5 -5
  1590. package/dist/features/stores/components/StorePrizeDrawsPageView.js +5 -5
  1591. package/dist/features/stores/components/StoreProductsListing.js +15 -15
  1592. package/dist/features/stores/components/StoreProductsPageView.js +5 -5
  1593. package/dist/features/stores/components/StoreProductsView.js +1 -1
  1594. package/dist/features/stores/components/StoreReviewsListing.js +1 -1
  1595. package/dist/features/stores/components/StoreReviewsPageView.js +1 -1
  1596. package/dist/features/stores/components/StoreReviewsView.js +1 -1
  1597. package/dist/features/stores/components/StoreScopedSearch.js +3 -3
  1598. package/dist/features/stores/components/StoreSettingsGuideView.js +2 -2
  1599. package/dist/features/stores/components/StoreWhatsAppGuideView.js +2 -2
  1600. package/dist/features/stores/components/StoresIndexListing.js +12 -12
  1601. package/dist/features/stores/components/StoresIndexPageView.js +7 -7
  1602. package/dist/features/stores/components/index.js +23 -23
  1603. package/dist/features/stores/hooks/useStoreAddressSelector.js +2 -2
  1604. package/dist/features/stores/hooks/useStores.js +2 -2
  1605. package/dist/features/stores/index.js +7 -7
  1606. package/dist/features/stores/repository/store.repository.js +9 -9
  1607. package/dist/features/stores/schemas/firestore.d.ts +86 -0
  1608. package/dist/features/stores/schemas/firestore.js +2 -2
  1609. package/dist/features/stores/schemas/index.d.ts +30 -30
  1610. package/dist/features/stores/schemas/index.js +3 -3
  1611. package/dist/features/stores/server.js +6 -6
  1612. package/dist/features/stores/types/index.d.ts +10 -0
  1613. package/dist/features/support/repository/support.repository.js +11 -11
  1614. package/dist/features/support/schemas/index.d.ts +2 -2
  1615. package/dist/features/support/schemas/index.js +2 -2
  1616. package/dist/features/support/schemas/ticket-create-form.js +2 -2
  1617. package/dist/features/tax-codes/repository/tax-codes.repository.js +4 -4
  1618. package/dist/features/tax-codes/schemas/tax-code-form.js +2 -2
  1619. package/dist/features/tax-codes/schemas/tax-codes.validators.js +1 -1
  1620. package/dist/features/tester/actions/checklist-item-actions.d.ts +8 -8
  1621. package/dist/features/tester/actions/checklist-item-actions.js +2 -2
  1622. package/dist/features/tester/actions/index.js +1 -1
  1623. package/dist/features/tester/components/AdminTesterFeedbackIssuesView.js +6 -6
  1624. package/dist/features/tester/components/AdminTesterFeedbackListView.js +10 -10
  1625. package/dist/features/tester/components/AdminTesterFeedbackReportView.js +4 -4
  1626. package/dist/features/tester/components/AdminTesterFeedbackView.js +8 -8
  1627. package/dist/features/tester/components/TesterChecklistStepRow.js +4 -4
  1628. package/dist/features/tester/components/TesterFeedbackChart.js +2 -2
  1629. package/dist/features/tester/components/index.js +6 -6
  1630. package/dist/features/tester/index.js +2 -2
  1631. package/dist/features/tester/repository/index.js +2 -2
  1632. package/dist/features/tester/repository/tester-checklist-item.repository.js +4 -4
  1633. package/dist/features/tester/repository/tester-checklist-response.repository.js +3 -3
  1634. package/dist/features/tester/schemas/checklist-item-form.d.ts +4 -4
  1635. package/dist/features/tester/schemas/checklist-item-form.js +1 -1
  1636. package/dist/features/tester/schemas/firestore.js +1 -1
  1637. package/dist/features/tester/schemas/index.js +1 -1
  1638. package/dist/features/tester/seed-data/authored/admin__site-system.js +0 -15
  1639. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.d.ts +2 -0
  1640. package/dist/features/tester/seed-data/authored/content-discovery__parts-database.js +166 -0
  1641. package/dist/features/tester/seed-data/authored/index.js +120 -118
  1642. package/dist/features/tester/seed-data/authored/selling__product-upload-details.js +1 -1
  1643. package/dist/features/tester/seed-data/index.js +2 -2
  1644. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +32 -5
  1645. package/dist/features/tester/server.js +3 -3
  1646. package/dist/features/whatsapp-bot/api/send-status/route.js +2 -2
  1647. package/dist/features/whatsapp-bot/api/webhook/route.js +2 -2
  1648. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +12 -12
  1649. package/dist/features/whatsapp-bot/components/WhatsAppChatButton.js +1 -1
  1650. package/dist/features/whatsapp-bot/components/index.js +2 -2
  1651. package/dist/features/whatsapp-bot/helpers/whatsapp.js +3 -3
  1652. package/dist/features/whatsapp-bot/index.js +3 -3
  1653. package/dist/features/whatsapp-bot/server.js +2 -2
  1654. package/dist/features/wishlist/actions/index.js +1 -1
  1655. package/dist/features/wishlist/actions/wishlist-actions.js +4 -4
  1656. package/dist/features/wishlist/columns/index.js +1 -1
  1657. package/dist/features/wishlist/components/WishlistCapWatcher.js +2 -2
  1658. package/dist/features/wishlist/components/WishlistHeartButton.js +2 -2
  1659. package/dist/features/wishlist/components/WishlistPage.js +3 -3
  1660. package/dist/features/wishlist/components/WishlistView.js +3 -3
  1661. package/dist/features/wishlist/components/index.js +4 -4
  1662. package/dist/features/wishlist/hooks/useGuestWishlist.js +1 -1
  1663. package/dist/features/wishlist/hooks/useUserWishlist.js +2 -2
  1664. package/dist/features/wishlist/hooks/useWishlist.js +2 -2
  1665. package/dist/features/wishlist/hooks/useWishlistCount.js +8 -8
  1666. package/dist/features/wishlist/hooks/useWishlistToggle.js +3 -3
  1667. package/dist/features/wishlist/hooks/useWishlistWithGuest.js +2 -2
  1668. package/dist/features/wishlist/index.js +12 -12
  1669. package/dist/features/wishlist/repository/user-wishlist.repository.js +4 -4
  1670. package/dist/features/wishlist/server.js +2 -2
  1671. package/dist/features/wishlist/utils/guest-wishlist.js +1 -1
  1672. package/dist/hand-mode/index.js +1 -1
  1673. package/dist/http/api-handler.js +8 -8
  1674. package/dist/http/index.js +2 -2
  1675. package/dist/http/retry.js +1 -1
  1676. package/dist/index.d.ts +31 -19
  1677. package/dist/index.js +2023 -1978
  1678. package/dist/monitoring/browser.js +5 -5
  1679. package/dist/monitoring/cache-metrics.js +1 -1
  1680. package/dist/monitoring/client-logger.js +3 -3
  1681. package/dist/monitoring/index.js +6 -6
  1682. package/dist/monitoring/runtime.js +1 -1
  1683. package/dist/monitoring/server-logger.js +3 -3
  1684. package/dist/next/ErrorBoundary.js +3 -3
  1685. package/dist/next/api/api-response.js +2 -2
  1686. package/dist/next/api/apiHandler.js +3 -3
  1687. package/dist/next/api/parseJsonBody.js +1 -1
  1688. package/dist/next/api/routeHandler.js +9 -9
  1689. package/dist/next/cache-middleware.js +1 -1
  1690. package/dist/next/components/ErrorView.js +3 -3
  1691. package/dist/next/components/GlobalError.js +23 -2
  1692. package/dist/next/components/NotFoundView.js +4 -4
  1693. package/dist/next/components/UnauthorizedView.js +4 -4
  1694. package/dist/next/index.js +21 -21
  1695. package/dist/next/middleware/chain.js +3 -3
  1696. package/dist/next/middleware/index.js +2 -2
  1697. package/dist/next/middleware/pii-scrubber.js +3 -3
  1698. package/dist/next/request-helpers.js +1 -1
  1699. package/dist/next/routing/route-map.d.ts +10 -2
  1700. package/dist/next/routing/route-map.js +23 -1
  1701. package/dist/providers/auth-firebase/helpers.js +5 -5
  1702. package/dist/providers/auth-firebase/index.js +3 -3
  1703. package/dist/providers/auth-firebase/provider.js +2 -2
  1704. package/dist/providers/auth-firebase/session.js +2 -2
  1705. package/dist/providers/db-firebase/admin-app-lite.js +1 -1
  1706. package/dist/providers/db-firebase/admin-auth-lite.js +1 -1
  1707. package/dist/providers/db-firebase/admin-storage-lite.js +1 -1
  1708. package/dist/providers/db-firebase/admin.js +2 -2
  1709. package/dist/providers/db-firebase/base.js +2 -2
  1710. package/dist/providers/db-firebase/base.repository.d.ts +85 -0
  1711. package/dist/providers/db-firebase/base.repository.js +150 -7
  1712. package/dist/providers/db-firebase/browser-stub.js +2 -2
  1713. package/dist/providers/db-firebase/index.js +12 -12
  1714. package/dist/providers/db-firebase/sieve.js +4 -4
  1715. package/dist/providers/email-resend/index.js +1 -1
  1716. package/dist/providers/firebase-client/index.js +2 -2
  1717. package/dist/providers/firebase-client/realtime.js +1 -1
  1718. package/dist/providers/payment-manual/index.js +1 -1
  1719. package/dist/providers/payment-phonepe/index.js +3 -3
  1720. package/dist/providers/shipping-manual/index.js +1 -1
  1721. package/dist/providers/storage-firebase/client.js +2 -2
  1722. package/dist/providers/storage-firebase/index.js +1 -1
  1723. package/dist/providers/storage-firebase/provider.js +4 -4
  1724. package/dist/providers.js +12 -12
  1725. package/dist/react/ErrorBoundary.js +3 -3
  1726. package/dist/react/contexts/SessionContext.js +6 -6
  1727. package/dist/react/contexts/index.js +1 -1
  1728. package/dist/react/hooks/use-action-dispatch.js +5 -5
  1729. package/dist/react/hooks/use-panel-url-sync.js +1 -1
  1730. package/dist/react/hooks/useAuthGate.js +3 -3
  1731. package/dist/react/hooks/useBreakpoint.js +1 -1
  1732. package/dist/react/hooks/useBulkAction.js +1 -1
  1733. package/dist/react/hooks/useCamera.js +1 -1
  1734. package/dist/react/hooks/useCanSeePrices.js +1 -1
  1735. package/dist/react/hooks/useEntityDelete.js +2 -2
  1736. package/dist/react/hooks/useFormStatePreservation.js +1 -1
  1737. package/dist/react/hooks/useInlineRowEdit.js +1 -1
  1738. package/dist/react/hooks/useListingTypeFlags.js +2 -2
  1739. package/dist/react/hooks/useMessage.js +1 -1
  1740. package/dist/react/hooks/usePendingFilters.js +1 -1
  1741. package/dist/react/hooks/usePendingTable.js +2 -2
  1742. package/dist/react/hooks/useRealtimeEvent.js +4 -4
  1743. package/dist/react/hooks/useTabParam.js +2 -2
  1744. package/dist/react/hooks/useUnsavedChanges.js +1 -1
  1745. package/dist/react/hooks/useUrlTable.js +2 -2
  1746. package/dist/react/index.js +28 -28
  1747. package/dist/repositories/index.d.ts +2 -3
  1748. package/dist/repositories/index.js +54 -51
  1749. package/dist/schemas/index.js +1 -1
  1750. package/dist/schemas/registry.d.ts +102 -102
  1751. package/dist/schemas/registry.js +44 -44
  1752. package/dist/security/authorization.js +3 -3
  1753. package/dist/security/browser.js +4 -4
  1754. package/dist/security/index.js +8 -8
  1755. package/dist/security/pii-encrypt.js +3 -3
  1756. package/dist/security/pii-redact.js +1 -1
  1757. package/dist/security/rate-limit.js +1 -1
  1758. package/dist/security/settings-encryption.js +1 -1
  1759. package/dist/seed/_helpers/brand-rows.js +2 -2
  1760. package/dist/seed/_helpers/category-content.d.ts +29 -0
  1761. package/dist/seed/_helpers/category-content.js +98 -1
  1762. package/dist/seed/_helpers/category-forest.js +106 -26
  1763. package/dist/seed/_helpers/category-parts.d.ts +9 -0
  1764. package/dist/seed/_helpers/category-parts.js +4594 -0
  1765. package/dist/seed/_helpers/media.js +1 -1
  1766. package/dist/seed/_helpers/product-search-txt.js +1 -1
  1767. package/dist/seed/_helpers/search-txt-wrappers.js +1 -1
  1768. package/dist/seed/blog-posts-seed-data.js +2 -2
  1769. package/dist/seed/carousel-slides-seed-data.js +83 -10
  1770. package/dist/seed/cart-seed-data.js +2 -2
  1771. package/dist/seed/categories-seed-data.js +53 -15
  1772. package/dist/seed/claimed-coupons-seed-data.js +1 -1
  1773. package/dist/seed/coupons-seed-data.js +2 -2
  1774. package/dist/seed/defaults/categories.js +1 -1
  1775. package/dist/seed/defaults/faqs.js +2 -2
  1776. package/dist/seed/defaults/homepage-sections.js +2 -2
  1777. package/dist/seed/events-seed-data.js +3 -3
  1778. package/dist/seed/factories/address.factory.js +1 -1
  1779. package/dist/seed/factories/carousel.factory.js +1 -1
  1780. package/dist/seed/factories/order.factory.js +1 -1
  1781. package/dist/seed/factories/product.factory.js +2 -2
  1782. package/dist/seed/factories/store.factory.js +1 -1
  1783. package/dist/seed/factories/user.factory.js +2 -2
  1784. package/dist/seed/faq-seed-data.js +532 -3
  1785. package/dist/seed/grouped-listings-seed-data.js +1 -1
  1786. package/dist/seed/homepage-sections-seed-data.js +172 -11
  1787. package/dist/seed/index.d.ts +3 -0
  1788. package/dist/seed/index.js +88 -68
  1789. package/dist/seed/manifest.js +43 -43
  1790. package/dist/seed/model-composition-seed-data.d.ts +15 -0
  1791. package/dist/seed/model-composition-seed-data.js +8918 -0
  1792. package/dist/seed/notifications-seed-data.js +3 -3
  1793. package/dist/seed/offers-seed-data.js +2 -2
  1794. package/dist/seed/orders-seed-data.js +2 -2
  1795. package/dist/seed/part-glossary-seed-data.d.ts +15 -0
  1796. package/dist/seed/part-glossary-seed-data.js +10729 -0
  1797. package/dist/seed/payouts-seed-data.js +2 -2
  1798. package/dist/seed/product-features-seed-data.js +2 -2
  1799. package/dist/seed/products-art-seed-data.js +4 -4
  1800. package/dist/seed/products-auctions-seed-data.js +4 -4
  1801. package/dist/seed/products-classifieds-seed-data.js +5 -5
  1802. package/dist/seed/products-digital-codes-seed-data.js +5 -5
  1803. package/dist/seed/products-live-items-seed-data.js +5 -5
  1804. package/dist/seed/products-preorders-seed-data.js +4 -4
  1805. package/dist/seed/products-prize-draws-seed-data.js +5 -5
  1806. package/dist/seed/products-standard-seed-data.js +56 -4
  1807. package/dist/seed/products-stickers-seed-data.js +4 -4
  1808. package/dist/seed/reviews-seed-data.js +2 -2
  1809. package/dist/seed/runner.js +2 -2
  1810. package/dist/seed/scammers-seed-data.js +3 -3
  1811. package/dist/seed/seed-market-config.js +2 -2
  1812. package/dist/seed/seed-purpose.d.ts +299 -0
  1813. package/dist/seed/seed-purpose.js +416 -0
  1814. package/dist/seed/sessions-seed-data.js +2 -2
  1815. package/dist/seed/shipments-seed-data.js +1 -1
  1816. package/dist/seed/site-settings-seed-data.js +9 -3
  1817. package/dist/seed/store-addresses-seed-data.js +1 -1
  1818. package/dist/seed/store-extensions-seed-data.js +1 -1
  1819. package/dist/seed/stores-seed-data.js +3 -3
  1820. package/dist/seed/support-tickets-seed-data.js +2 -2
  1821. package/dist/seed/test-utils.js +8 -8
  1822. package/dist/seed/users-seed-data.js +4 -4
  1823. package/dist/seo/index.js +2 -2
  1824. package/dist/seo/json-ld.d.ts +72 -1
  1825. package/dist/seo/json-ld.js +87 -3
  1826. package/dist/seo/metadata.js +1 -1
  1827. package/dist/server-entry.js +78 -78
  1828. package/dist/server.d.ts +19 -2
  1829. package/dist/server.js +571 -544
  1830. package/dist/styles.css +767 -1
  1831. package/dist/tailwind-utilities.css +1 -1
  1832. package/dist/theme/index.js +2 -2
  1833. package/dist/tokens/index.js +1 -1
  1834. package/dist/tokens/themes/cobalt-night.js +1 -1
  1835. package/dist/tokens/themes/index.js +5 -5
  1836. package/dist/tokens/themes/sunset.js +1 -1
  1837. package/dist/ui/DataTable.js +12 -12
  1838. package/dist/ui/columns/cell-renderers.js +7 -7
  1839. package/dist/ui/columns/column-renderers.js +2 -2
  1840. package/dist/ui/columns/index.js +3 -3
  1841. package/dist/ui/components/Accordion.js +4 -4
  1842. package/dist/ui/components/ActionRow.js +1 -1
  1843. package/dist/ui/components/ActiveFilterChips.js +2 -2
  1844. package/dist/ui/components/Alert.js +2 -2
  1845. package/dist/ui/components/Anchor.js +1 -1
  1846. package/dist/ui/components/Avatar.js +1 -1
  1847. package/dist/ui/components/AvatarDisplay.js +1 -1
  1848. package/dist/ui/components/Badge.js +1 -1
  1849. package/dist/ui/components/BaseListingCard.js +2 -2
  1850. package/dist/ui/components/Breadcrumb.js +3 -3
  1851. package/dist/ui/components/BulkActionBar.js +2 -2
  1852. package/dist/ui/components/Button.js +4 -4
  1853. package/dist/ui/components/Card.js +2 -2
  1854. package/dist/ui/components/Checkbox.js +1 -1
  1855. package/dist/ui/components/ClaimCouponButton.js +6 -6
  1856. package/dist/ui/components/CollapsibleSection.js +5 -5
  1857. package/dist/ui/components/ConfirmDeleteModal.js +3 -3
  1858. package/dist/ui/components/CountdownDisplay.js +2 -2
  1859. package/dist/ui/components/DateInput.js +1 -1
  1860. package/dist/ui/components/DetailPageGallery.js +2 -2
  1861. package/dist/ui/components/DetailPageHero.js +3 -3
  1862. package/dist/ui/components/DetailPageTabs.js +2 -2
  1863. package/dist/ui/components/DetailViewShell.js +2 -2
  1864. package/dist/ui/components/Details.js +1 -1
  1865. package/dist/ui/components/Div.js +1 -1
  1866. package/dist/ui/components/Divider.js +1 -1
  1867. package/dist/ui/components/Drawer.js +4 -4
  1868. package/dist/ui/components/EmptyState.js +4 -4
  1869. package/dist/ui/components/FilePickerButton.js +1 -1
  1870. package/dist/ui/components/FilterChipGroup.js +2 -2
  1871. package/dist/ui/components/FilterDrawer.js +4 -4
  1872. package/dist/ui/components/FlowDiagram.js +2 -2
  1873. package/dist/ui/components/Form.js +4 -4
  1874. package/dist/ui/components/FormActionBar.js +3 -3
  1875. package/dist/ui/components/FormField.js +24 -6
  1876. package/dist/ui/components/GatedPrice.js +6 -6
  1877. package/dist/ui/components/HandModeRow.js +2 -2
  1878. package/dist/ui/components/Icon.js +1 -1
  1879. package/dist/ui/components/IconButton.js +1 -1
  1880. package/dist/ui/components/ImageGallery.js +6 -6
  1881. package/dist/ui/components/ImageLightbox.js +5 -5
  1882. package/dist/ui/components/Input.js +2 -2
  1883. package/dist/ui/components/ItemRow.js +3 -3
  1884. package/dist/ui/components/Layout.js +1 -1
  1885. package/dist/ui/components/ListingFilterDrawer.js +4 -4
  1886. package/dist/ui/components/ListingLayout.js +9 -9
  1887. package/dist/ui/components/ListingToolbar.js +5 -5
  1888. package/dist/ui/components/LoginRequiredModal.js +5 -5
  1889. package/dist/ui/components/Menu.js +1 -1
  1890. package/dist/ui/components/Modal.js +6 -6
  1891. package/dist/ui/components/Motion.js +1 -1
  1892. package/dist/ui/components/NavigationLoader.js +3 -3
  1893. package/dist/ui/components/OtpInput.js +1 -1
  1894. package/dist/ui/components/PageLoader.js +4 -4
  1895. package/dist/ui/components/PaginatedSelect.js +0 -0
  1896. package/dist/ui/components/Pagination.js +2 -2
  1897. package/dist/ui/components/PasswordStrengthIndicator.js +3 -3
  1898. package/dist/ui/components/PriceDisplay.js +1 -1
  1899. package/dist/ui/components/Progress.js +1 -1
  1900. package/dist/ui/components/QuantityStepper.js +3 -3
  1901. package/dist/ui/components/QuickCreateModal.js +5 -5
  1902. package/dist/ui/components/Radio.js +1 -1
  1903. package/dist/ui/components/RatingDisplay.js +2 -2
  1904. package/dist/ui/components/RecordDetailModal.js +2 -2
  1905. package/dist/ui/components/RoleBadge.js +1 -1
  1906. package/dist/ui/components/RowActionMenu.js +3 -3
  1907. package/dist/ui/components/Select.js +2 -2
  1908. package/dist/ui/components/Semantic.js +1 -1
  1909. package/dist/ui/components/SettingsSection.js +2 -2
  1910. package/dist/ui/components/SideDrawer.js +9 -9
  1911. package/dist/ui/components/SideModal.js +4 -4
  1912. package/dist/ui/components/SiteLogo.js +1 -1
  1913. package/dist/ui/components/SiteMark.js +1 -1
  1914. package/dist/ui/components/SkipToMain.js +1 -1
  1915. package/dist/ui/components/Slider.js +1 -1
  1916. package/dist/ui/components/SlottedListingView.js +2 -2
  1917. package/dist/ui/components/SortDropdown.js +3 -3
  1918. package/dist/ui/components/StackedViewShell.js +2 -2
  1919. package/dist/ui/components/StarRating.js +1 -1
  1920. package/dist/ui/components/StatsGrid.js +3 -3
  1921. package/dist/ui/components/StatusBadge.js +1 -1
  1922. package/dist/ui/components/StepperNav.js +3 -3
  1923. package/dist/ui/components/StickyToolbar.js +1 -1
  1924. package/dist/ui/components/SummaryCard.js +4 -4
  1925. package/dist/ui/components/TabBarShell.js +3 -3
  1926. package/dist/ui/components/TablePagination.js +4 -4
  1927. package/dist/ui/components/Tabs.js +1 -1
  1928. package/dist/ui/components/TagInput.js +1 -1
  1929. package/dist/ui/components/TextLink.js +2 -2
  1930. package/dist/ui/components/Textarea.js +1 -1
  1931. package/dist/ui/components/Toast.js +3 -3
  1932. package/dist/ui/components/Toggle.js +1 -1
  1933. package/dist/ui/components/Typography.js +2 -2
  1934. package/dist/ui/components/UnsavedChangesModal.js +5 -5
  1935. package/dist/ui/components/VacationBanner.js +3 -3
  1936. package/dist/ui/components/ViewToggle.js +2 -2
  1937. package/dist/ui/components/index.style.css +4 -0
  1938. package/dist/ui/components/surface-tokens.js +1 -1
  1939. package/dist/ui/components/toolbar-collapse.js +1 -1
  1940. package/dist/ui/forms/ColorPickerField.js +2 -2
  1941. package/dist/ui/forms/FieldCheckbox.js +3 -3
  1942. package/dist/ui/forms/FieldInput.js +3 -3
  1943. package/dist/ui/forms/FieldSelect.js +3 -3
  1944. package/dist/ui/forms/FieldTextarea.js +3 -3
  1945. package/dist/ui/forms/FormErrorList.js +2 -2
  1946. package/dist/ui/forms/FormErrorSummary.js +2 -2
  1947. package/dist/ui/forms/FormShell.js +1 -1
  1948. package/dist/ui/forms/index.js +9 -9
  1949. package/dist/ui/index.d.ts +0 -2
  1950. package/dist/ui/index.js +147 -127
  1951. package/dist/ui/rich-text/RichText.js +2 -2
  1952. package/dist/ui/rich-text/index.js +1 -1
  1953. package/dist/utils/action-response.js +2 -2
  1954. package/dist/utils/action-result.js +1 -1
  1955. package/dist/utils/auth-error.js +1 -1
  1956. package/dist/utils/client.js +1 -1
  1957. package/dist/utils/date.formatter.js +1 -1
  1958. package/dist/utils/id-generators.d.ts +30 -0
  1959. package/dist/utils/id-generators.js +33 -3
  1960. package/dist/utils/index.js +19 -19
  1961. package/dist/utils/media-field.js +1 -1
  1962. package/dist/utils/media-url.js +2 -2
  1963. package/dist/utils/number.formatter.js +1 -1
  1964. package/dist/utils/physical-location.d.ts +68 -0
  1965. package/dist/utils/physical-location.js +82 -0
  1966. package/dist/utils/safe-fire-forget.js +2 -2
  1967. package/dist/utils/search-txt-builders.js +83 -1
  1968. package/dist/utils/search-txt-query.d.ts +54 -6
  1969. package/dist/utils/search-txt-query.js +79 -11
  1970. package/dist/utils/search-txt.d.ts +22 -0
  1971. package/dist/utils/search-txt.js +17 -0
  1972. package/dist/utils/sieve-builder.js +1 -1
  1973. package/dist/utils/string.formatter.js +1 -1
  1974. package/dist/validation/ZodSetup.js +1 -1
  1975. package/dist/validation/index.js +8 -8
  1976. package/dist/validation/phone.validator.js +1 -1
  1977. package/dist/validation/schemas.d.ts +12 -12
  1978. package/dist/validation/schemas.js +1 -1
  1979. package/dist/validation/url.validator.js +1 -1
  1980. package/dist/values/index.js +1 -1
  1981. package/dist/values/success-messages.d.ts +0 -4
  1982. package/dist/values/success-messages.js +0 -5
  1983. package/dist/vendor/react-advanced-cropper.css +406 -0
  1984. package/package.json +80 -4
  1985. package/scripts/copy-assets.mjs +53 -1
  1986. package/scripts/seed-cli.mjs +452 -15
  1987. package/dist/core/copilot-log.repository.d.ts +0 -44
  1988. package/dist/core/copilot-log.repository.js +0 -61
  1989. package/dist/features/copilot/components/AdminCopilotView.d.ts +0 -21
  1990. package/dist/features/copilot/components/AdminCopilotView.js +0 -51
  1991. package/dist/features/copilot/components/index.d.ts +0 -2
  1992. package/dist/features/copilot/components/index.js +0 -1
  1993. package/dist/features/copilot/hooks/useCopilotChat.d.ts +0 -25
  1994. package/dist/features/copilot/hooks/useCopilotChat.js +0 -65
  1995. package/dist/features/copilot/hooks/useCopilotFeedback.d.ts +0 -15
  1996. package/dist/features/copilot/hooks/useCopilotFeedback.js +0 -15
  1997. package/dist/features/copilot/index.d.ts +0 -3
  1998. package/dist/features/copilot/index.js +0 -3
@@ -0,0 +1,313 @@
1
+ /**
2
+ * The two buyer protections — C5e.
3
+ *
4
+ * ## 🛑 What was wrong, and why the fix is a claim path rather than a deletion
5
+ *
6
+ * `computeShipmentProtectionFee` is real: `max(₹30, 2%)`, opt-in per store,
7
+ * written to the order as `shipmentProtectionAddon` / `shipmentProtectionFee`,
8
+ * rendered as a "Protected" chip. And `OrderAddonBadges.tsx` claims the flag
9
+ * *"changes how a loss claim is handled"* — while **no refund, dispute or RMA
10
+ * code reads it anywhere**. A buyer paid 2% for a promise the system could not
11
+ * keep.
12
+ *
13
+ * An earlier revision of the plan concluded "delete it". That was wrong. The
14
+ * diagnosis was right — the fee was real and the claim path did not exist —
15
+ * but the missing half is the claim, and **escrow is the pot it pays from**.
16
+ * Holding the buyer's funds until delivery is what turns the badge from a
17
+ * promise into a mechanism.
18
+ *
19
+ * ## TWO protections, because they fail independently
20
+ *
21
+ * SHIPPING loss or damage IN TRANSIT. We are the carrier's counterparty
22
+ * under escrow, so the carrier claim is ours to pursue and the
23
+ * buyer never argues with a courier.
24
+ * SALE the item itself — not as described, wrong item, item issues.
25
+ * Branches the return flow, skipping the seller-fault
26
+ * determination.
27
+ *
28
+ * A parcel that arrives intact containing the wrong bey is a SALE problem, not
29
+ * a shipping one. A single blended "protection" would charge once and have to
30
+ * answer both — and, worse, would have to be wholly offered or wholly withheld
31
+ * on a final-sale item, where the right answers differ (see below).
32
+ */
33
+ /** Which protection. Deliberately not a boolean pair in the signatures. */
34
+ export type ProtectionKind = "shipping" | "sale";
35
+ export declare const PROTECTION_KINDS: readonly ProtectionKind[];
36
+ /** Why a protection is not on offer. Rendered to the buyer, so it is copy. */
37
+ export type ProtectionUnavailableReason = "platform-disabled" | "seller-not-supported" | "final-sale" | "above-value-cap" | "excluded-category";
38
+ export type ProtectionAvailability = {
39
+ available: true;
40
+ } | {
41
+ available: false;
42
+ reason: ProtectionUnavailableReason;
43
+ };
44
+ /**
45
+ * C5e — the VALUE CAP on sale protection, and the categories excluded outright.
46
+ *
47
+ * The plan's standing rule was that no badge appears on a real listing until
48
+ * these exist, because *"a no-questions-asked guarantee on a Rs 40,000 graded
49
+ * slab is a different product from one on a Rs 149 spin track"*. Directed to
50
+ * "use standard from net" rather than invent them, so both the SHAPE and the
51
+ * exclusion list follow the two marketplaces that publish theirs, and the
52
+ * NUMBER follows our own measured price bands.
53
+ *
54
+ * ── Where the shape comes from ─────────────────────────────────────────────
55
+ *
56
+ * - **Amazon A-to-z** caps a claim at **$2,500 including shipping**, with a
57
+ * 90-day filing window. So a cap is normal practice, it is inclusive of
58
+ * shipping, and it is generous relative to a typical basket.
59
+ * - **eBay Money Back Guarantee** excludes whole CATEGORIES rather than
60
+ * discounting them — vehicles, real estate, services, **digitally delivered
61
+ * content**, travel vouchers, NFTs — and applies a different regime above a
62
+ * value threshold (authentication at $200 for trading cards, $500 for coins),
63
+ * after which an inspected item is **final sale** on the
64
+ * "doesn't match the listing" basis. It also SHORTENS the window for
65
+ * bullion from 30 days to 3.
66
+ *
67
+ * ── 🛑 Why the NUMBER is ours and not a converted dollar figure ────────────
68
+ *
69
+ * $2,500 is ~Rs 2.2 lakh, which is above the most expensive thing in the entire
70
+ * crawled corpus. A cap nothing can reach is not a cap. So it is set from this
71
+ * catalogue's own measured distribution instead: every band's median and p75
72
+ * sits under Rs 15,000 and the maxima are Rs 74,999 (Hot Wheels), Rs 75,000
73
+ * (TCG collection box) and Rs 1,59,102 (otakuisland's range top).
74
+ *
75
+ * **Rs 25,000 covers every median and every p75 measured**, and excludes only
76
+ * the grail tail — graded slabs, booster boxes, premium statues — which is
77
+ * exactly the tier eBay routes to authentication rather than to a blanket
78
+ * guarantee.
79
+ */
80
+ export declare const SALE_PROTECTION_MAX_VALUE = 25000;
81
+ /**
82
+ * 🛑 INCLUSIVE of shipping, following Amazon, and compared against the ITEM
83
+ * LINE's total rather than the order's.
84
+ *
85
+ * Per line, because a Rs 40,000 slab in a basket with two Rs 200 tips must not
86
+ * drag the tips out of cover, and the two Rs 200 tips must not carry the slab
87
+ * into it. The cover is a promise about an ITEM.
88
+ */
89
+ export declare const SALE_PROTECTION_VALUE_BASIS: "line-total-including-shipping";
90
+ /**
91
+ * Listing types sale protection is never offered on, and why each one.
92
+ *
93
+ * 🛑 Every entry is a case where the claim is UNADJUDICABLE, not merely
94
+ * expensive — which is the distinction that keeps this list honest and short.
95
+ * A value cap handles "expensive"; this handles "we could not tell".
96
+ */
97
+ export declare const SALE_PROTECTION_EXCLUDED_LISTING_TYPES: readonly string[];
98
+ /**
99
+ * Whether a GRADED slab is excluded.
100
+ *
101
+ * 🛑 Following eBay's own rule rather than our preference: an item inspected
102
+ * under its Authenticity Guarantee is **final sale** on the "doesn't match the
103
+ * listing" basis. A third party has already certified the grade, so a
104
+ * no-questions-asked refund would let a buyer overturn that certification by
105
+ * changing their mind — and `ProductGrading.certNumber` deep-links to the
106
+ * grader, so the buyer can verify before paying.
107
+ */
108
+ export declare const SALE_PROTECTION_EXCLUDES_GRADED = true;
109
+ /**
110
+ * Claim windows, in hours from DELIVERY.
111
+ *
112
+ * Two windows because the two covers fail on different clocks, which is the
113
+ * same argument that made them two add-ons:
114
+ *
115
+ * - **shipping** 48h — already this platform's stated damage window, in the
116
+ * seeded FAQ and in C0c's copy. Transit damage is visible on unboxing, and a
117
+ * longer window makes "damaged in transit" indistinguishable from
118
+ * "damaged afterwards".
119
+ * - **sale** 7 days — long enough to actually inspect a collectible against
120
+ * its listing (weigh a bey, check a mould, compare a photo), short enough
121
+ * that condition can still be attributed. eBay runs 30 days generally and
122
+ * **3** for bullion; Amazon runs 90. 7 sits deliberately at the strict end,
123
+ * because unlike either of them we are also underwriting the refund.
124
+ */
125
+ export declare const PROTECTION_CLAIM_WINDOW_HOURS: Record<ProtectionKind, number>;
126
+ export interface ProtectionTierInput {
127
+ /** TIER 1 — admin, platform-wide. `commissions.*FeeEnabled`. Default TRUE. */
128
+ platformEnabled: boolean;
129
+ /**
130
+ * TIER 2 — the seller, for their own orders. Default FALSE.
131
+ *
132
+ * 🛑 The two defaults are opposite ON PURPOSE and it is not an
133
+ * inconsistency. The admin flag answers "do we offer this product at all" —
134
+ * we built it, so `true`. The seller flag answers "has this seller agreed to
135
+ * be held to it" — they have not been asked, so `false`. Defaulting the
136
+ * seller flag to `true` would enrol every existing seller in a liability
137
+ * they never accepted, which is a worse failure than a day-one page full of
138
+ * risk notices.
139
+ */
140
+ sellerSupports: boolean;
141
+ /**
142
+ * TIER 3 — the item. `finalSale` from the ORDER ITEM's snapshot at claim
143
+ * time, or the product at purchase time.
144
+ */
145
+ finalSale: boolean;
146
+ /**
147
+ * TIER 3 — the line's total INCLUDING shipping, for the value cap. Absent
148
+ * skips the cap check rather than failing it: a missing figure is our gap,
149
+ * and refusing cover over it would charge a fee and then decline the claim.
150
+ */
151
+ lineTotal?: number;
152
+ /** TIER 3 — the listing type, for the exclusion list. */
153
+ listingType?: string;
154
+ /** TIER 3 — whether the item carries a third-party grade. */
155
+ isGraded?: boolean;
156
+ }
157
+ /**
158
+ * Is this protection on offer, and if not, why.
159
+ *
160
+ * 🛑 `finalSale` is checked for SALE protection only, and the asymmetry is the
161
+ * strongest argument for keeping the two separate:
162
+ *
163
+ * final sale + sale protection INELIGIBLE. "No returns" and
164
+ * "no-questions-asked refund" are a plain
165
+ * contradiction, and `finalSale` exists
166
+ * precisely so a seller cannot be made to
167
+ * take an item back.
168
+ * final sale + shipping protection UNAFFECTED. A parcel lost in transit was
169
+ * never delivered, so there is nothing for
170
+ * "final" to be final about — the buyer
171
+ * did not receive the item they accepted
172
+ * as non-returnable.
173
+ *
174
+ * Order of checks is the order of ownership: platform, then seller, then item.
175
+ * That matters because the REASON is rendered, and "we do not offer this" is a
176
+ * different sentence from "this seller does not offer this".
177
+ */
178
+ export declare function protectionAvailability(kind: ProtectionKind, input: ProtectionTierInput): ProtectionAvailability;
179
+ /**
180
+ * Whether to show the buyer a pre-purchase RISK NOTICE.
181
+ *
182
+ * 🛑 Absence must read as "not supported", never as "unknown". A tri-state
183
+ * where `undefined` renders neither a badge nor a notice is the worst of the
184
+ * three outcomes: the buyer gets no signal at all and cannot tell a seller who
185
+ * declined from one who has not been asked.
186
+ *
187
+ * `platform-disabled` is the one reason that shows NOTHING — if we do not
188
+ * offer the product, there is nothing to disclose about this seller, and a
189
+ * notice would be us advertising a gap we created.
190
+ */
191
+ export declare function showsRiskNotice(a: ProtectionAvailability): boolean;
192
+ /**
193
+ * Whether to show the seller's safety BADGE.
194
+ *
195
+ * 🛑 Gated on the claim path existing, not merely on the flag. A badge for a
196
+ * promise the platform cannot keep is the dead `OrderAddonBadges` tooltip one
197
+ * level up — a seller opting into something we do not honour.
198
+ */
199
+ export declare function showsSafetyBadge(a: ProtectionAvailability): boolean;
200
+ /**
201
+ * 🛑 The two badges must never appear together on one card.
202
+ *
203
+ * "Final sale" beside "Sale protected" is incoherent to a buyer and they are
204
+ * right. A final-sale listing shows the final-sale badge and, when the seller
205
+ * supports it, the SHIPPING-protection badge only.
206
+ */
207
+ export declare function badgesFor(input: ProtectionTierInput): {
208
+ finalSale: boolean;
209
+ shippingProtected: boolean;
210
+ saleProtected: boolean;
211
+ };
212
+ /**
213
+ * Both protection fees for one order group, with all three tiers applied.
214
+ *
215
+ * 🛑 This exists because there are THREE money sites that must agree — the
216
+ * pricing preview (what the buyer is shown), `createOrderForGroup` (what the
217
+ * order records) and `POST /api/payment/create-order` (what the gateway
218
+ * captures) — and a fee charged at one and refused at another is an overcharge
219
+ * with no record. Root Cause #75's shape: a rule reachable by copy-paste will
220
+ * be copied, and the copy made before a branch was added never learns about
221
+ * it. Exporting the whole computed pair rather than the predicate is what
222
+ * stops a caller re-deriving the `&&`.
223
+ *
224
+ * 🛑 The caller still supplies `finalSale` from the right source for its own
225
+ * moment: the live product at PREVIEW (no order exists yet), the order item's
226
+ * snapshot at CREATION and at CLAIM. That is deliberately not hidden in here —
227
+ * which source is correct depends on when you are asking, and a helper that
228
+ * guessed would get the claim-time case wrong, which is the one that matters.
229
+ */
230
+ export declare function computeProtectionFees(input: {
231
+ /** Order-group goods value the percentage applies to. */
232
+ subtotal: number;
233
+ selected: {
234
+ shipping: boolean;
235
+ sale: boolean;
236
+ };
237
+ tiers: {
238
+ platformShipping: boolean;
239
+ platformSale: boolean;
240
+ sellerShipping: boolean;
241
+ sellerSale: boolean;
242
+ finalSale: boolean;
243
+ };
244
+ /** `(subtotal, selected, rates)` — pass the matching `compute*Fee`. */
245
+ shippingFee: (subtotal: number, selected: boolean) => number;
246
+ saleFee: (subtotal: number, selected: boolean) => number;
247
+ }): {
248
+ shippingProtectionFee: number;
249
+ saleProtectionFee: number;
250
+ };
251
+ export type ClaimFinding = "genuine" | "change-of-mind";
252
+ export interface ClaimOutcome {
253
+ /** Is the buyer refunded? */
254
+ refundBuyer: boolean;
255
+ /** Who absorbs the cost. */
256
+ costBorneBy: "seller" | "platform" | "buyer";
257
+ /** Whether a scam-registry signal should be raised for review. */
258
+ raisesReport: boolean;
259
+ }
260
+ /**
261
+ * 🛑 INSPECTION DECIDES WHO PAYS — NEVER WHETHER A PROTECTED BUYER IS
262
+ * REFUNDED.
263
+ *
264
+ * This is the part that must not be got wrong, because it is where the promise
265
+ * lives. Sale protection says *no questions asked*. If inspection could block
266
+ * a protected refund then "no questions asked" is false, and we would be
267
+ * rebuilding the dead-tooltip problem with extra steps.
268
+ *
269
+ * protected + genuine refunded · charged back to the SELLER
270
+ * protected + change-of-mind refunded · absorbed by the PLATFORM —
271
+ * this is what the fee prices
272
+ * unprotected + genuine refunded · the SELLER's fault, seller pays
273
+ * unprotected + change-of-mind per the return policy — the BUYER pays
274
+ *
275
+ * What inspection gates is the chargeback, and that is also what makes the
276
+ * seller-level opt-in meaningful: a seller supporting the cover accepts that
277
+ * genuine claims land on them, and the fee covers the rest.
278
+ *
279
+ * `raisesReport` is a SIGNAL, not a verdict. A threshold opens a
280
+ * `ReportDocument` for a human; an automatic exclusion on a count would punish
281
+ * an unlucky buyer who received two genuinely bad items, and the scam
282
+ * registry's entries are written as patterns to recognise rather than rules to
283
+ * fire.
284
+ */
285
+ export declare function adjudicateClaim(protectedSale: boolean, finding: ClaimFinding): ClaimOutcome;
286
+ /**
287
+ * Where a RETURN ships to — C5g, stated here because it branches on the
288
+ * add-on and nothing else should re-derive that.
289
+ *
290
+ * 🛑 Warehouse routing applies ONLY to a sale-protection claim, not to returns
291
+ * in general. We take custody only where we are the ones underwriting the
292
+ * refund, which is also the only case where we need to know whether to charge
293
+ * the seller back. An ordinary return on an unprotected order stays between
294
+ * the buyer and the seller exactly as it does today.
295
+ *
296
+ * The admin trust flag sends even a protected claim to the seller.
297
+ */
298
+ export declare function returnDestination(input: {
299
+ saleProtectedClaim: boolean;
300
+ /** `StoreDocument.returnsDirectToSeller` — ADMIN-granted, never seller-set. */
301
+ sellerTrustedByAdmin: boolean;
302
+ }): "warehouse" | "seller";
303
+ /**
304
+ * Where an RTO lands — C5h. Same rule, different trigger.
305
+ *
306
+ * An RTO is not buyer-initiated: the carrier is sending a parcel back because
307
+ * it could not be delivered. Nobody asked for it, so no claim exists — but the
308
+ * destination still follows who underwrote the order, because that is who has
309
+ * to inspect and account for it.
310
+ */
311
+ export declare function rtoDestination(input: {
312
+ saleProtectedOrder: boolean;
313
+ }): "warehouse" | "seller";
@@ -0,0 +1,340 @@
1
+ /**
2
+ * The two buyer protections — C5e.
3
+ *
4
+ * ## 🛑 What was wrong, and why the fix is a claim path rather than a deletion
5
+ *
6
+ * `computeShipmentProtectionFee` is real: `max(₹30, 2%)`, opt-in per store,
7
+ * written to the order as `shipmentProtectionAddon` / `shipmentProtectionFee`,
8
+ * rendered as a "Protected" chip. And `OrderAddonBadges.tsx` claims the flag
9
+ * *"changes how a loss claim is handled"* — while **no refund, dispute or RMA
10
+ * code reads it anywhere**. A buyer paid 2% for a promise the system could not
11
+ * keep.
12
+ *
13
+ * An earlier revision of the plan concluded "delete it". That was wrong. The
14
+ * diagnosis was right — the fee was real and the claim path did not exist —
15
+ * but the missing half is the claim, and **escrow is the pot it pays from**.
16
+ * Holding the buyer's funds until delivery is what turns the badge from a
17
+ * promise into a mechanism.
18
+ *
19
+ * ## TWO protections, because they fail independently
20
+ *
21
+ * SHIPPING loss or damage IN TRANSIT. We are the carrier's counterparty
22
+ * under escrow, so the carrier claim is ours to pursue and the
23
+ * buyer never argues with a courier.
24
+ * SALE the item itself — not as described, wrong item, item issues.
25
+ * Branches the return flow, skipping the seller-fault
26
+ * determination.
27
+ *
28
+ * A parcel that arrives intact containing the wrong bey is a SALE problem, not
29
+ * a shipping one. A single blended "protection" would charge once and have to
30
+ * answer both — and, worse, would have to be wholly offered or wholly withheld
31
+ * on a final-sale item, where the right answers differ (see below).
32
+ */
33
+ export const PROTECTION_KINDS = ["shipping", "sale"];
34
+ /**
35
+ * C5e — the VALUE CAP on sale protection, and the categories excluded outright.
36
+ *
37
+ * The plan's standing rule was that no badge appears on a real listing until
38
+ * these exist, because *"a no-questions-asked guarantee on a Rs 40,000 graded
39
+ * slab is a different product from one on a Rs 149 spin track"*. Directed to
40
+ * "use standard from net" rather than invent them, so both the SHAPE and the
41
+ * exclusion list follow the two marketplaces that publish theirs, and the
42
+ * NUMBER follows our own measured price bands.
43
+ *
44
+ * ── Where the shape comes from ─────────────────────────────────────────────
45
+ *
46
+ * - **Amazon A-to-z** caps a claim at **$2,500 including shipping**, with a
47
+ * 90-day filing window. So a cap is normal practice, it is inclusive of
48
+ * shipping, and it is generous relative to a typical basket.
49
+ * - **eBay Money Back Guarantee** excludes whole CATEGORIES rather than
50
+ * discounting them — vehicles, real estate, services, **digitally delivered
51
+ * content**, travel vouchers, NFTs — and applies a different regime above a
52
+ * value threshold (authentication at $200 for trading cards, $500 for coins),
53
+ * after which an inspected item is **final sale** on the
54
+ * "doesn't match the listing" basis. It also SHORTENS the window for
55
+ * bullion from 30 days to 3.
56
+ *
57
+ * ── 🛑 Why the NUMBER is ours and not a converted dollar figure ────────────
58
+ *
59
+ * $2,500 is ~Rs 2.2 lakh, which is above the most expensive thing in the entire
60
+ * crawled corpus. A cap nothing can reach is not a cap. So it is set from this
61
+ * catalogue's own measured distribution instead: every band's median and p75
62
+ * sits under Rs 15,000 and the maxima are Rs 74,999 (Hot Wheels), Rs 75,000
63
+ * (TCG collection box) and Rs 1,59,102 (otakuisland's range top).
64
+ *
65
+ * **Rs 25,000 covers every median and every p75 measured**, and excludes only
66
+ * the grail tail — graded slabs, booster boxes, premium statues — which is
67
+ * exactly the tier eBay routes to authentication rather than to a blanket
68
+ * guarantee.
69
+ */
70
+ export const SALE_PROTECTION_MAX_VALUE = 25000;
71
+ /**
72
+ * 🛑 INCLUSIVE of shipping, following Amazon, and compared against the ITEM
73
+ * LINE's total rather than the order's.
74
+ *
75
+ * Per line, because a Rs 40,000 slab in a basket with two Rs 200 tips must not
76
+ * drag the tips out of cover, and the two Rs 200 tips must not carry the slab
77
+ * into it. The cover is a promise about an ITEM.
78
+ */
79
+ export const SALE_PROTECTION_VALUE_BASIS = "line-total-including-shipping";
80
+ /**
81
+ * Listing types sale protection is never offered on, and why each one.
82
+ *
83
+ * 🛑 Every entry is a case where the claim is UNADJUDICABLE, not merely
84
+ * expensive — which is the distinction that keeps this list honest and short.
85
+ * A value cap handles "expensive"; this handles "we could not tell".
86
+ */
87
+ export const SALE_PROTECTION_EXCLUDED_LISTING_TYPES = [
88
+ /*
89
+ * A live animal or plant's condition on arrival cannot be adjudicated from
90
+ * photographs after the fact, and it changes by the hour. eBay excludes the
91
+ * adjacent categories outright for the same reason.
92
+ */
93
+ "live",
94
+ /*
95
+ * eBay excludes "digitally delivered content" by name. Once a code is
96
+ * revealed it cannot be returned, and whether it was already redeemed is not
97
+ * something we can establish — which is why the reveal is logged rather than
98
+ * reversible.
99
+ */
100
+ "digital-code",
101
+ /*
102
+ * A meetup sale with no shipment and no platform custody. There is nothing
103
+ * to inspect, nothing to route to a warehouse, and the buyer handled the
104
+ * item before paying — the inspection step the cover depends on has already
105
+ * happened, in person.
106
+ */
107
+ "classified",
108
+ ];
109
+ /**
110
+ * Whether a GRADED slab is excluded.
111
+ *
112
+ * 🛑 Following eBay's own rule rather than our preference: an item inspected
113
+ * under its Authenticity Guarantee is **final sale** on the "doesn't match the
114
+ * listing" basis. A third party has already certified the grade, so a
115
+ * no-questions-asked refund would let a buyer overturn that certification by
116
+ * changing their mind — and `ProductGrading.certNumber` deep-links to the
117
+ * grader, so the buyer can verify before paying.
118
+ */
119
+ export const SALE_PROTECTION_EXCLUDES_GRADED = true;
120
+ /**
121
+ * Claim windows, in hours from DELIVERY.
122
+ *
123
+ * Two windows because the two covers fail on different clocks, which is the
124
+ * same argument that made them two add-ons:
125
+ *
126
+ * - **shipping** 48h — already this platform's stated damage window, in the
127
+ * seeded FAQ and in C0c's copy. Transit damage is visible on unboxing, and a
128
+ * longer window makes "damaged in transit" indistinguishable from
129
+ * "damaged afterwards".
130
+ * - **sale** 7 days — long enough to actually inspect a collectible against
131
+ * its listing (weigh a bey, check a mould, compare a photo), short enough
132
+ * that condition can still be attributed. eBay runs 30 days generally and
133
+ * **3** for bullion; Amazon runs 90. 7 sits deliberately at the strict end,
134
+ * because unlike either of them we are also underwriting the refund.
135
+ */
136
+ export const PROTECTION_CLAIM_WINDOW_HOURS = {
137
+ shipping: 48,
138
+ sale: 24 * 7,
139
+ };
140
+ /**
141
+ * Is this protection on offer, and if not, why.
142
+ *
143
+ * 🛑 `finalSale` is checked for SALE protection only, and the asymmetry is the
144
+ * strongest argument for keeping the two separate:
145
+ *
146
+ * final sale + sale protection INELIGIBLE. "No returns" and
147
+ * "no-questions-asked refund" are a plain
148
+ * contradiction, and `finalSale` exists
149
+ * precisely so a seller cannot be made to
150
+ * take an item back.
151
+ * final sale + shipping protection UNAFFECTED. A parcel lost in transit was
152
+ * never delivered, so there is nothing for
153
+ * "final" to be final about — the buyer
154
+ * did not receive the item they accepted
155
+ * as non-returnable.
156
+ *
157
+ * Order of checks is the order of ownership: platform, then seller, then item.
158
+ * That matters because the REASON is rendered, and "we do not offer this" is a
159
+ * different sentence from "this seller does not offer this".
160
+ */
161
+ export function protectionAvailability(kind, input) {
162
+ if (!input.platformEnabled) {
163
+ return { available: false, reason: "platform-disabled" };
164
+ }
165
+ if (!input.sellerSupports) {
166
+ return { available: false, reason: "seller-not-supported" };
167
+ }
168
+ if (kind === "sale" && input.finalSale) {
169
+ return { available: false, reason: "final-sale" };
170
+ }
171
+ /*
172
+ * C5e's value and category gates, SALE only.
173
+ *
174
+ * 🛑 Shipping protection is deliberately exempt from both. A parcel lost in
175
+ * transit was never delivered, so neither the item's value nor whether it is
176
+ * a digital code or a graded slab changes what happened — and we are the
177
+ * carrier's counterparty under escrow, so it is our claim to pursue either
178
+ * way. Applying the cap here would be withdrawing cover for the one failure
179
+ * the buyer has no part in.
180
+ */
181
+ if (kind === "sale") {
182
+ if (input.listingType && SALE_PROTECTION_EXCLUDED_LISTING_TYPES.includes(input.listingType)) {
183
+ return { available: false, reason: "excluded-category" };
184
+ }
185
+ if (SALE_PROTECTION_EXCLUDES_GRADED && input.isGraded) {
186
+ return { available: false, reason: "excluded-category" };
187
+ }
188
+ if (typeof input.lineTotal === "number" && input.lineTotal > SALE_PROTECTION_MAX_VALUE) {
189
+ return { available: false, reason: "above-value-cap" };
190
+ }
191
+ }
192
+ return { available: true };
193
+ }
194
+ /**
195
+ * Whether to show the buyer a pre-purchase RISK NOTICE.
196
+ *
197
+ * 🛑 Absence must read as "not supported", never as "unknown". A tri-state
198
+ * where `undefined` renders neither a badge nor a notice is the worst of the
199
+ * three outcomes: the buyer gets no signal at all and cannot tell a seller who
200
+ * declined from one who has not been asked.
201
+ *
202
+ * `platform-disabled` is the one reason that shows NOTHING — if we do not
203
+ * offer the product, there is nothing to disclose about this seller, and a
204
+ * notice would be us advertising a gap we created.
205
+ */
206
+ export function showsRiskNotice(a) {
207
+ return !a.available && a.reason === "seller-not-supported";
208
+ }
209
+ /**
210
+ * Whether to show the seller's safety BADGE.
211
+ *
212
+ * 🛑 Gated on the claim path existing, not merely on the flag. A badge for a
213
+ * promise the platform cannot keep is the dead `OrderAddonBadges` tooltip one
214
+ * level up — a seller opting into something we do not honour.
215
+ */
216
+ export function showsSafetyBadge(a) {
217
+ return a.available;
218
+ }
219
+ /**
220
+ * 🛑 The two badges must never appear together on one card.
221
+ *
222
+ * "Final sale" beside "Sale protected" is incoherent to a buyer and they are
223
+ * right. A final-sale listing shows the final-sale badge and, when the seller
224
+ * supports it, the SHIPPING-protection badge only.
225
+ */
226
+ export function badgesFor(input) {
227
+ const shipping = protectionAvailability("shipping", input);
228
+ const sale = protectionAvailability("sale", input);
229
+ return {
230
+ finalSale: input.finalSale,
231
+ shippingProtected: showsSafetyBadge(shipping),
232
+ saleProtected: showsSafetyBadge(sale),
233
+ };
234
+ }
235
+ // ── What to charge ──────────────────────────────────────────────────────────
236
+ /**
237
+ * Both protection fees for one order group, with all three tiers applied.
238
+ *
239
+ * 🛑 This exists because there are THREE money sites that must agree — the
240
+ * pricing preview (what the buyer is shown), `createOrderForGroup` (what the
241
+ * order records) and `POST /api/payment/create-order` (what the gateway
242
+ * captures) — and a fee charged at one and refused at another is an overcharge
243
+ * with no record. Root Cause #75's shape: a rule reachable by copy-paste will
244
+ * be copied, and the copy made before a branch was added never learns about
245
+ * it. Exporting the whole computed pair rather than the predicate is what
246
+ * stops a caller re-deriving the `&&`.
247
+ *
248
+ * 🛑 The caller still supplies `finalSale` from the right source for its own
249
+ * moment: the live product at PREVIEW (no order exists yet), the order item's
250
+ * snapshot at CREATION and at CLAIM. That is deliberately not hidden in here —
251
+ * which source is correct depends on when you are asking, and a helper that
252
+ * guessed would get the claim-time case wrong, which is the one that matters.
253
+ */
254
+ export function computeProtectionFees(input) {
255
+ const { subtotal, selected, tiers } = input;
256
+ const shippingOk = protectionAvailability("shipping", {
257
+ platformEnabled: tiers.platformShipping,
258
+ sellerSupports: tiers.sellerShipping,
259
+ finalSale: tiers.finalSale,
260
+ }).available;
261
+ const saleOk = protectionAvailability("sale", {
262
+ platformEnabled: tiers.platformSale,
263
+ sellerSupports: tiers.sellerSale,
264
+ finalSale: tiers.finalSale,
265
+ }).available;
266
+ return {
267
+ shippingProtectionFee: input.shippingFee(subtotal, selected.shipping && shippingOk),
268
+ saleProtectionFee: input.saleFee(subtotal, selected.sale && saleOk),
269
+ };
270
+ }
271
+ /**
272
+ * 🛑 INSPECTION DECIDES WHO PAYS — NEVER WHETHER A PROTECTED BUYER IS
273
+ * REFUNDED.
274
+ *
275
+ * This is the part that must not be got wrong, because it is where the promise
276
+ * lives. Sale protection says *no questions asked*. If inspection could block
277
+ * a protected refund then "no questions asked" is false, and we would be
278
+ * rebuilding the dead-tooltip problem with extra steps.
279
+ *
280
+ * protected + genuine refunded · charged back to the SELLER
281
+ * protected + change-of-mind refunded · absorbed by the PLATFORM —
282
+ * this is what the fee prices
283
+ * unprotected + genuine refunded · the SELLER's fault, seller pays
284
+ * unprotected + change-of-mind per the return policy — the BUYER pays
285
+ *
286
+ * What inspection gates is the chargeback, and that is also what makes the
287
+ * seller-level opt-in meaningful: a seller supporting the cover accepts that
288
+ * genuine claims land on them, and the fee covers the rest.
289
+ *
290
+ * `raisesReport` is a SIGNAL, not a verdict. A threshold opens a
291
+ * `ReportDocument` for a human; an automatic exclusion on a count would punish
292
+ * an unlucky buyer who received two genuinely bad items, and the scam
293
+ * registry's entries are written as patterns to recognise rather than rules to
294
+ * fire.
295
+ */
296
+ export function adjudicateClaim(protectedSale, finding) {
297
+ if (protectedSale) {
298
+ return finding === "genuine"
299
+ ? { refundBuyer: true, costBorneBy: "seller", raisesReport: false }
300
+ : /*
301
+ * Refunded anyway — the promise is unconditional. The report is
302
+ * raised because repeated change-of-mind claims on a
303
+ * no-questions-asked cover is exactly the `chargeback_fraud` pattern
304
+ * the registry already documents, and the only honest enforcement is
305
+ * withdrawing FUTURE eligibility, never denying this claim.
306
+ */
307
+ { refundBuyer: true, costBorneBy: "platform", raisesReport: true };
308
+ }
309
+ return finding === "genuine"
310
+ ? { refundBuyer: true, costBorneBy: "seller", raisesReport: false }
311
+ : { refundBuyer: false, costBorneBy: "buyer", raisesReport: false };
312
+ }
313
+ /**
314
+ * Where a RETURN ships to — C5g, stated here because it branches on the
315
+ * add-on and nothing else should re-derive that.
316
+ *
317
+ * 🛑 Warehouse routing applies ONLY to a sale-protection claim, not to returns
318
+ * in general. We take custody only where we are the ones underwriting the
319
+ * refund, which is also the only case where we need to know whether to charge
320
+ * the seller back. An ordinary return on an unprotected order stays between
321
+ * the buyer and the seller exactly as it does today.
322
+ *
323
+ * The admin trust flag sends even a protected claim to the seller.
324
+ */
325
+ export function returnDestination(input) {
326
+ if (!input.saleProtectedClaim)
327
+ return "seller";
328
+ return input.sellerTrustedByAdmin ? "seller" : "warehouse";
329
+ }
330
+ /**
331
+ * Where an RTO lands — C5h. Same rule, different trigger.
332
+ *
333
+ * An RTO is not buyer-initiated: the carrier is sending a parcel back because
334
+ * it could not be delivered. Nobody asked for it, so no claim exists — but the
335
+ * destination still follows who underwrote the order, because that is who has
336
+ * to inspect and account for it.
337
+ */
338
+ export function rtoDestination(input) {
339
+ return input.saleProtectedOrder ? "warehouse" : "seller";
340
+ }
@@ -34,6 +34,9 @@ export interface BuyerFacingFees {
34
34
  shipmentProtectionFeeEnabled?: boolean;
35
35
  shipmentProtectionFeePercent?: number;
36
36
  shipmentProtectionFeeMin?: number;
37
+ saleProtectionFeeEnabled?: boolean;
38
+ saleProtectionFeePercent?: number;
39
+ saleProtectionFeeMin?: number;
37
40
  codHandlingFeeMin?: number;
38
41
  codHandlingFeePercent?: number;
39
42
  codDepositPercent?: number;
@@ -20,6 +20,9 @@ export function toBuyerFacingFees(commissions) {
20
20
  shipmentProtectionFeeEnabled: commissions.shipmentProtectionFeeEnabled,
21
21
  shipmentProtectionFeePercent: commissions.shipmentProtectionFeePercent,
22
22
  shipmentProtectionFeeMin: commissions.shipmentProtectionFeeMin,
23
+ saleProtectionFeeEnabled: commissions.saleProtectionFeeEnabled,
24
+ saleProtectionFeePercent: commissions.saleProtectionFeePercent,
25
+ saleProtectionFeeMin: commissions.saleProtectionFeeMin,
23
26
  codHandlingFeeMin: commissions.codHandlingFeeMin,
24
27
  codHandlingFeePercent: commissions.codHandlingFeePercent,
25
28
  codDepositPercent: commissions.codDepositPercent,
@@ -1,4 +1,4 @@
1
- import { CapacityError } from "../../errors/index";
1
+ import { CapacityError } from "../../errors/index.js";
2
2
  export class WishlistCapError extends CapacityError {
3
3
  constructor(current, max) {
4
4
  super(`Wishlist is full (${current}/${max})`);