@mohasinac/appkit 4.43.0 → 4.45.0

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