@mohasinac/appkit 3.8.2 → 3.9.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 (479) hide show
  1. package/dist/_internal/client/features/live/LiveItemDetailView.js +2 -2
  2. package/dist/_internal/client/features/lottery/LotteryAdminEditView.d.ts +4 -4
  3. package/dist/_internal/client/features/lottery/LotteryAdminEditView.js +8 -8
  4. package/dist/_internal/client/features/lottery/LotteryAdminSlotView.d.ts +1 -1
  5. package/dist/_internal/client/features/lottery/LotteryAdminSlotView.js +2 -2
  6. package/dist/_internal/server/features/bundles/actions.js +2 -2
  7. package/dist/_internal/server/features/bundles/og.d.ts +1 -1
  8. package/dist/_internal/server/features/bundles/og.js +4 -5
  9. package/dist/_internal/server/features/checkout/actions.js +57 -21
  10. package/dist/_internal/server/features/checkout/stock-restore.d.ts +19 -0
  11. package/dist/_internal/server/features/checkout/stock-restore.js +80 -0
  12. package/dist/_internal/server/features/checkout/upi-resolution.d.ts +11 -0
  13. package/dist/_internal/server/features/checkout/upi-resolution.js +28 -0
  14. package/dist/_internal/server/features/classified/og.js +1 -1
  15. package/dist/_internal/server/features/digital-code/og.js +1 -1
  16. package/dist/_internal/server/features/item-requests/og.d.ts +2 -2
  17. package/dist/_internal/server/features/item-requests/og.js +4 -5
  18. package/dist/_internal/server/features/live/og.js +1 -1
  19. package/dist/_internal/server/features/lottery/adapters.d.ts +2 -2
  20. package/dist/_internal/server/features/lottery/adapters.js +1 -1
  21. package/dist/_internal/server/features/orders/actions.d.ts +28 -0
  22. package/dist/_internal/server/features/orders/actions.js +239 -4
  23. package/dist/_internal/server/features/orders/adapters.js +3 -0
  24. package/dist/_internal/server/features/payments/data.js +3 -2
  25. package/dist/_internal/server/features/payouts/actions.d.ts +2 -2
  26. package/dist/_internal/server/features/payouts/actions.js +4 -3
  27. package/dist/_internal/server/features/pre-orders/service.d.ts +1 -1
  28. package/dist/_internal/server/features/pre-orders/service.js +3 -2
  29. package/dist/_internal/server/features/prize-draws/og.js +5 -5
  30. package/dist/_internal/server/features/products/og.js +1 -1
  31. package/dist/_internal/server/features/promotions/service.js +3 -1
  32. package/dist/_internal/server/features/refunds/actions.d.ts +2 -2
  33. package/dist/_internal/server/features/refunds/actions.js +7 -6
  34. package/dist/_internal/server/functions/firestore.js +1 -1
  35. package/dist/_internal/server/functions/scheduled.d.ts +4 -1
  36. package/dist/_internal/server/functions/scheduled.js +26 -2
  37. package/dist/_internal/server/jobs/core/emiInstallmentReminder.js +1 -1
  38. package/dist/_internal/server/jobs/core/hardBanCascade.d.ts +4 -0
  39. package/dist/_internal/server/jobs/core/hardBanCascade.js +15 -4
  40. package/dist/_internal/server/jobs/core/hardBanReinstatement.d.ts +16 -0
  41. package/dist/_internal/server/jobs/core/hardBanReinstatement.js +63 -0
  42. package/dist/_internal/server/jobs/core/jobRunners.js +3 -1
  43. package/dist/_internal/server/jobs/core/onScamReportCreate.js +1 -1
  44. package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.d.ts +10 -0
  45. package/dist/_internal/server/jobs/core/paymentReviewAutoApprove.js +60 -0
  46. package/dist/_internal/server/jobs/core/paymentWindowTimeout.d.ts +15 -0
  47. package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +59 -0
  48. package/dist/_internal/server/jobs/core/pendingOrderTimeout.d.ts +7 -0
  49. package/dist/_internal/server/jobs/core/pendingOrderTimeout.js +32 -6
  50. package/dist/_internal/server/jobs/handlers/hardBanReinstatement.d.ts +2 -0
  51. package/dist/_internal/server/jobs/handlers/hardBanReinstatement.js +2 -0
  52. package/dist/_internal/server/jobs/handlers/index.d.ts +3 -0
  53. package/dist/_internal/server/jobs/handlers/index.js +3 -0
  54. package/dist/_internal/server/jobs/handlers/messages.d.ts +4 -0
  55. package/dist/_internal/server/jobs/handlers/messages.js +4 -0
  56. package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.d.ts +3 -3
  57. package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.js +12 -12
  58. package/dist/_internal/server/jobs/handlers/onShipmentItemWrite.d.ts +1 -1
  59. package/dist/_internal/server/jobs/handlers/onShipmentItemWrite.js +5 -5
  60. package/dist/_internal/server/jobs/handlers/paymentReviewAutoApprove.d.ts +2 -0
  61. package/dist/_internal/server/jobs/handlers/paymentReviewAutoApprove.js +2 -0
  62. package/dist/_internal/server/jobs/handlers/paymentWindowTimeout.d.ts +2 -0
  63. package/dist/_internal/server/jobs/handlers/paymentWindowTimeout.js +2 -0
  64. package/dist/_internal/shared/actions/action-registry.js +27 -0
  65. package/dist/_internal/shared/checkout/order-math.js +3 -2
  66. package/dist/_internal/shared/checkout/rules/_defaults.js +1 -0
  67. package/dist/_internal/shared/checkout/rules/preorder.rule.js +7 -0
  68. package/dist/_internal/shared/checkout/rules/prize-draw.rule.js +7 -0
  69. package/dist/_internal/shared/checkout/rules/types.d.ts +11 -0
  70. package/dist/_internal/shared/features/auctions/errors.js +1 -1
  71. package/dist/_internal/shared/features/categories/bundle-copy.d.ts +0 -1
  72. package/dist/_internal/shared/features/categories/bundle-copy.js +0 -1
  73. package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +6 -6
  74. package/dist/_internal/shared/features/categories/bundle-schemas.js +2 -2
  75. package/dist/_internal/shared/features/checkout/config.d.ts +3 -3
  76. package/dist/_internal/shared/features/checkout/config.js +3 -3
  77. package/dist/_internal/shared/features/emi/schedule.d.ts +6 -6
  78. package/dist/_internal/shared/features/emi/schedule.js +10 -9
  79. package/dist/_internal/shared/features/promotions/errors.js +1 -1
  80. package/dist/_internal/shared/fees/calculator.d.ts +5 -5
  81. package/dist/_internal/shared/fees/calculator.js +19 -19
  82. package/dist/client.d.ts +1 -1
  83. package/dist/client.js +1 -1
  84. package/dist/constants/api-endpoints.d.ts +9 -0
  85. package/dist/constants/api-endpoints.js +3 -0
  86. package/dist/constants/field-names.d.ts +4 -0
  87. package/dist/constants/field-names.js +4 -0
  88. package/dist/features/admin/components/AdminArtView.js +2 -2
  89. package/dist/features/admin/components/AdminBidsView.js +2 -2
  90. package/dist/features/admin/components/AdminBundleEditorView.d.ts +1 -1
  91. package/dist/features/admin/components/AdminBundleEditorView.js +8 -8
  92. package/dist/features/admin/components/AdminBundlesView.js +6 -6
  93. package/dist/features/admin/components/AdminClassifiedView.js +2 -2
  94. package/dist/features/admin/components/AdminDigitalCodesView.js +2 -2
  95. package/dist/features/admin/components/AdminLiveView.js +2 -2
  96. package/dist/features/admin/components/AdminOrderEditorView.d.ts +6 -1
  97. package/dist/features/admin/components/AdminOrderEditorView.js +45 -5
  98. package/dist/features/admin/components/AdminOrdersView.js +8 -3
  99. package/dist/features/admin/components/AdminPayoutsView.js +2 -2
  100. package/dist/features/admin/components/AdminPrizeDrawsView.js +2 -2
  101. package/dist/features/admin/components/AdminReturnRequestsView.js +2 -2
  102. package/dist/features/admin/components/AdminSiteSettingsView.js +11 -11
  103. package/dist/features/admin/components/AdminStickersView.js +2 -2
  104. package/dist/features/admin/components/AdminSupportTicketDetailView.js +1 -1
  105. package/dist/features/admin/hooks/useAdminListingData.d.ts +1 -1
  106. package/dist/features/admin/hooks/useAdminListingData.js +3 -2
  107. package/dist/features/admin/schemas/firestore.d.ts +9 -7
  108. package/dist/features/admin/schemas/firestore.js +4 -3
  109. package/dist/features/auctions/components/AuctionBidsTable.js +3 -3
  110. package/dist/features/auth/checkout-value-otp.d.ts +46 -0
  111. package/dist/features/auth/checkout-value-otp.js +73 -0
  112. package/dist/features/auth/repository/user.repository.d.ts +6 -0
  113. package/dist/features/auth/repository/user.repository.js +19 -0
  114. package/dist/features/auth/schemas/firestore.d.ts +10 -0
  115. package/dist/features/auth/schemas/firestore.js +2 -0
  116. package/dist/features/cart/actions/cart-actions.d.ts +1 -1
  117. package/dist/features/cart/actions/cart-actions.js +4 -4
  118. package/dist/features/cart/components/CartView.d.ts +2 -2
  119. package/dist/features/cart/components/ShippingPicker.d.ts +4 -4
  120. package/dist/features/cart/components/ShippingPicker.js +11 -11
  121. package/dist/features/cart/repository/cart.repository.d.ts +1 -1
  122. package/dist/features/cart/repository/cart.repository.js +2 -2
  123. package/dist/features/cart/schemas/firestore.d.ts +2 -2
  124. package/dist/features/catalogue/components/CatalogueItemEditorView.js +3 -3
  125. package/dist/features/catalogue/components/PublicCatalogueView.js +2 -2
  126. package/dist/features/catalogue/schemas/validation.js +1 -1
  127. package/dist/features/categories/components/BundleCollage.js +2 -2
  128. package/dist/features/categories/components/BundleDetailView.js +2 -2
  129. package/dist/features/categories/components/BundleItemsPicker.d.ts +1 -1
  130. package/dist/features/categories/components/BundleItemsPicker.js +2 -2
  131. package/dist/features/categories/components/CategoryBundlesListing.js +2 -2
  132. package/dist/features/categories/schemas/firestore.d.ts +1 -1
  133. package/dist/features/categories/schemas/index.d.ts +3 -3
  134. package/dist/features/categories/schemas/index.js +2 -2
  135. package/dist/features/checkout/actions/checkout-value-otp-actions.d.ts +16 -0
  136. package/dist/features/checkout/actions/checkout-value-otp-actions.js +83 -0
  137. package/dist/features/checkout/actions/index.d.ts +1 -0
  138. package/dist/features/checkout/actions/index.js +1 -0
  139. package/dist/features/checkout/schemas/firestore.d.ts +1 -1
  140. package/dist/features/classified/components/index.d.ts +0 -4
  141. package/dist/features/classified/components/index.js +0 -2
  142. package/dist/features/digital-codes/components/index.d.ts +0 -4
  143. package/dist/features/digital-codes/components/index.js +0 -2
  144. package/dist/features/events/schemas/index.d.ts +1 -1
  145. package/dist/features/events/schemas/index.js +1 -1
  146. package/dist/features/homepage/components/FeaturedBundlesSection.js +2 -2
  147. package/dist/features/live/components/index.d.ts +0 -4
  148. package/dist/features/live/components/index.js +0 -2
  149. package/dist/features/lottery/types/index.d.ts +3 -3
  150. package/dist/features/lottery/types/index.js +5 -5
  151. package/dist/features/orders/components/OrderPaymentSummary.js +2 -2
  152. package/dist/features/orders/components/OrderSiblingPayments.js +1 -1
  153. package/dist/features/orders/components/RefundHistoryTable.js +1 -1
  154. package/dist/features/orders/components/RefundRequestView.js +1 -1
  155. package/dist/features/orders/constants/payment-window.d.ts +10 -0
  156. package/dist/features/orders/constants/payment-window.js +10 -0
  157. package/dist/features/orders/repository/orders.repository.d.ts +25 -0
  158. package/dist/features/orders/repository/orders.repository.js +50 -1
  159. package/dist/features/orders/schemas/firestore.d.ts +50 -2
  160. package/dist/features/orders/schemas/index.d.ts +24 -24
  161. package/dist/features/orders/schemas/index.js +20 -20
  162. package/dist/features/orders/types/index.d.ts +4 -0
  163. package/dist/features/orders/utils/bundle-grouping.d.ts +1 -1
  164. package/dist/features/orders/utils/bundle-grouping.js +1 -1
  165. package/dist/features/payments/schemas/index.d.ts +10 -10
  166. package/dist/features/payments/schemas/index.js +9 -9
  167. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +2 -2
  168. package/dist/features/products/components/ArtStickersListView.d.ts +7 -0
  169. package/dist/features/products/components/ArtStickersListView.js +57 -0
  170. package/dist/features/products/components/GroupSettingsPanel.js +1 -1
  171. package/dist/features/products/components/MakeOfferButton.js +3 -3
  172. package/dist/features/products/components/MarketplaceBundleCard.d.ts +1 -1
  173. package/dist/features/products/components/MarketplaceBundleCard.js +2 -2
  174. package/dist/features/products/components/PrizeDrawCollage.js +2 -2
  175. package/dist/features/products/components/PrizeDrawItemsEditor.js +2 -2
  176. package/dist/features/products/components/PrizeRevealModal.js +1 -1
  177. package/dist/features/products/components/ProductDetailPageView.js +2 -9
  178. package/dist/features/products/components/ProductForm.js +2 -2
  179. package/dist/features/products/components/ProductGrid.js +2 -2
  180. package/dist/features/products/components/ProductsIndexListing.d.ts +13 -1
  181. package/dist/features/products/components/ProductsIndexListing.js +7 -5
  182. package/dist/features/products/components/ProductsIndexPageView.js +6 -1
  183. package/dist/features/products/constants/listing-tabs.d.ts +42 -17
  184. package/dist/features/products/constants/listing-tabs.js +25 -6
  185. package/dist/features/products/schemas/catalog-product.d.ts +5 -5
  186. package/dist/features/products/schemas/catalog-product.js +1 -1
  187. package/dist/features/products/schemas/firestore.d.ts +5 -5
  188. package/dist/features/products/schemas/firestore.js +2 -2
  189. package/dist/features/products/types/index.d.ts +5 -2
  190. package/dist/features/promotions/components/CouponCard.js +2 -2
  191. package/dist/features/promotions/schemas/firestore.d.ts +2 -0
  192. package/dist/features/promotions/schemas/firestore.js +1 -0
  193. package/dist/features/promotions/schemas/index.d.ts +14 -14
  194. package/dist/features/promotions/schemas/index.js +6 -6
  195. package/dist/features/scams/components/ScamProfileView.js +3 -7
  196. package/dist/features/scams/components/ScamRegistryView.js +2 -6
  197. package/dist/features/scams/schemas/firestore.d.ts +1 -1
  198. package/dist/features/search/components/Search.d.ts +1 -1
  199. package/dist/features/seller/actions/offer-actions.js +1 -1
  200. package/dist/features/seller/components/PrintCenterView.js +2 -2
  201. package/dist/features/seller/components/QuickProductForm.js +5 -5
  202. package/dist/features/seller/components/SellerArtView.js +2 -2
  203. package/dist/features/seller/components/SellerAuctionsView.js +2 -2
  204. package/dist/features/seller/components/SellerBidsView.js +2 -2
  205. package/dist/features/seller/components/SellerBundlesView.js +6 -6
  206. package/dist/features/seller/components/SellerClassifiedView.js +2 -2
  207. package/dist/features/seller/components/SellerDigitalCodesView.js +2 -2
  208. package/dist/features/seller/components/SellerLiveView.js +2 -2
  209. package/dist/features/seller/components/SellerOffersView.js +2 -2
  210. package/dist/features/seller/components/SellerOrdersView.js +3 -3
  211. package/dist/features/seller/components/SellerPayoutRequestView.js +2 -2
  212. package/dist/features/seller/components/SellerPayoutSettingsView.js +2 -2
  213. package/dist/features/seller/components/SellerPayoutsView.js +2 -2
  214. package/dist/features/seller/components/SellerPreOrdersView.js +2 -2
  215. package/dist/features/seller/components/SellerPrizeDrawsView.js +2 -2
  216. package/dist/features/seller/components/SellerProductShell.js +8 -8
  217. package/dist/features/seller/components/SellerProductsView.js +1 -1
  218. package/dist/features/seller/components/SellerShippingView.js +6 -6
  219. package/dist/features/seller/components/SellerStickersView.js +2 -2
  220. package/dist/features/seller/hooks/useSellerListingData.d.ts +1 -1
  221. package/dist/features/seller/hooks/useSellerListingData.js +3 -2
  222. package/dist/features/shipments/components/AdminShipmentEditorView.js +10 -10
  223. package/dist/features/shipments/components/AdminShipmentLotItemsView.js +4 -4
  224. package/dist/features/shipments/components/AdminShipmentProjectionsView.js +5 -5
  225. package/dist/features/shipments/components/AdminShipmentsView.js +4 -4
  226. package/dist/features/shipments/repository/shipment-lots.repository.d.ts +2 -2
  227. package/dist/features/shipments/repository/shipment-lots.repository.js +8 -8
  228. package/dist/features/shipments/schemas/firestore.d.ts +21 -21
  229. package/dist/features/shipments/schemas/firestore.js +9 -9
  230. package/dist/features/shipments/schemas/validation.d.ts +30 -30
  231. package/dist/features/shipments/schemas/validation.js +6 -6
  232. package/dist/features/shipments/utils/cost-allocation.d.ts +5 -5
  233. package/dist/features/shipments/utils/cost-allocation.js +39 -38
  234. package/dist/features/store-extensions/schemas/firestore.d.ts +5 -5
  235. package/dist/features/stores/components/StoreDetailLayoutView.js +9 -13
  236. package/dist/features/stores/schemas/firestore.d.ts +7 -7
  237. package/dist/features/stores/schemas/index.d.ts +84 -84
  238. package/dist/features/stores/schemas/index.js +5 -5
  239. package/dist/features/tester/seed-data/categories-tester-seed-data.js +1 -1
  240. package/dist/features/tester/seed-data/products-tester-seed-data.js +6 -6
  241. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +9 -2
  242. package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +8 -1
  243. package/dist/features/whatsapp-bot/helpers/whatsapp.js +13 -2
  244. package/dist/features/whatsapp-bot/types/index.d.ts +9 -1
  245. package/dist/index.d.ts +3 -7
  246. package/dist/index.js +7 -5
  247. package/dist/next/routing/route-map.d.ts +2 -0
  248. package/dist/next/routing/route-map.js +6 -0
  249. package/dist/schemas/firestore-helpers.d.ts +2 -2
  250. package/dist/schemas/firestore-helpers.js +2 -2
  251. package/dist/schemas/registry.d.ts +73 -73
  252. package/dist/seed/bids-seed-data.js +6 -6
  253. package/dist/seed/blog-posts-seed-data.js +1 -0
  254. package/dist/seed/cart-seed-data.js +13 -13
  255. package/dist/seed/catalogue-seed-data.js +6 -6
  256. package/dist/seed/categories-seed-data.js +5 -5
  257. package/dist/seed/claimed-coupons-seed-data.js +3 -3
  258. package/dist/seed/coupons-seed-data.js +20 -20
  259. package/dist/seed/events-seed-data.js +27 -27
  260. package/dist/seed/factories/bid.factory.js +1 -1
  261. package/dist/seed/faq-seed-data.js +20 -1
  262. package/dist/seed/grouped-listings-seed-data.d.ts +2 -2
  263. package/dist/seed/grouped-listings-seed-data.js +3 -3
  264. package/dist/seed/offers-seed-data.js +19 -19
  265. package/dist/seed/orders-seed-data.js +29 -29
  266. package/dist/seed/payouts-seed-data.js +7 -7
  267. package/dist/seed/products-auctions-seed-data.js +6 -6
  268. package/dist/seed/products-preorders-seed-data.d.ts +2 -2
  269. package/dist/seed/products-preorders-seed-data.js +1 -1
  270. package/dist/seed/products-standard-seed-data.js +8 -8
  271. package/dist/seed/scammers-seed-data.js +2 -2
  272. package/dist/seed/shipments-seed-data.js +29 -29
  273. package/dist/seed/site-settings-seed-data.js +3 -2
  274. package/dist/seed/store-extensions-seed-data.js +8 -8
  275. package/dist/seed/stores-seed-data.js +37 -8
  276. package/dist/seed/users-seed-data.js +38 -1
  277. package/dist/server-entry.d.ts +1 -3
  278. package/dist/server-entry.js +1 -3
  279. package/dist/server.d.ts +2 -1
  280. package/dist/server.js +3 -1
  281. package/dist/ui/components/PriceDisplay.js +3 -12
  282. package/dist/utils/number.formatter.d.ts +2 -7
  283. package/dist/utils/number.formatter.js +3 -8
  284. package/package.json +1 -1
  285. package/scripts/seed-cli.mjs +8 -3
  286. package/dist/_internal/client/scaffolds/DashboardScaffold.d.ts +0 -34
  287. package/dist/_internal/client/scaffolds/DashboardScaffold.js +0 -26
  288. package/dist/_internal/client/theme/__tests__/ThemeProvider.test.d.ts +0 -1
  289. package/dist/_internal/client/theme/__tests__/ThemeProvider.test.js +0 -109
  290. package/dist/_internal/server/features/auctions/__tests__/service.test.d.ts +0 -1
  291. package/dist/_internal/server/features/auctions/__tests__/service.test.js +0 -140
  292. package/dist/_internal/server/features/checkout/__tests__/actions.test.d.ts +0 -1
  293. package/dist/_internal/server/features/checkout/__tests__/actions.test.js +0 -600
  294. package/dist/_internal/server/features/refunds/__tests__/actions.test.d.ts +0 -1
  295. package/dist/_internal/server/features/refunds/__tests__/actions.test.js +0 -263
  296. package/dist/_internal/server/jobs/core/__tests__/auctionSettlement.test.d.ts +0 -1
  297. package/dist/_internal/server/jobs/core/__tests__/auctionSettlement.test.js +0 -249
  298. package/dist/_internal/server/jobs/core/__tests__/couponExpiry.test.d.ts +0 -1
  299. package/dist/_internal/server/jobs/core/__tests__/couponExpiry.test.js +0 -65
  300. package/dist/_internal/server/jobs/core/__tests__/listingProcessor.test.d.ts +0 -1
  301. package/dist/_internal/server/jobs/core/__tests__/listingProcessor.test.js +0 -163
  302. package/dist/_internal/server/jobs/core/__tests__/mediaTmpCleanup.test.d.ts +0 -1
  303. package/dist/_internal/server/jobs/core/__tests__/mediaTmpCleanup.test.js +0 -115
  304. package/dist/_internal/server/jobs/core/__tests__/onBidPlaced.test.d.ts +0 -1
  305. package/dist/_internal/server/jobs/core/__tests__/onBidPlaced.test.js +0 -201
  306. package/dist/_internal/server/jobs/core/__tests__/onOrderCreate.test.d.ts +0 -1
  307. package/dist/_internal/server/jobs/core/__tests__/onOrderCreate.test.js +0 -169
  308. package/dist/_internal/server/jobs/core/__tests__/onOrderStatusChange.test.d.ts +0 -1
  309. package/dist/_internal/server/jobs/core/__tests__/onOrderStatusChange.test.js +0 -148
  310. package/dist/_internal/server/jobs/core/__tests__/onProductStockChange.test.d.ts +0 -1
  311. package/dist/_internal/server/jobs/core/__tests__/onProductStockChange.test.js +0 -210
  312. package/dist/_internal/server/jobs/core/__tests__/onReviewWrite.test.d.ts +0 -1
  313. package/dist/_internal/server/jobs/core/__tests__/onReviewWrite.test.js +0 -190
  314. package/dist/_internal/server/jobs/core/__tests__/onUserBanChange.test.d.ts +0 -1
  315. package/dist/_internal/server/jobs/core/__tests__/onUserBanChange.test.js +0 -161
  316. package/dist/_internal/server/jobs/core/__tests__/payoutBatch.test.d.ts +0 -1
  317. package/dist/_internal/server/jobs/core/__tests__/payoutBatch.test.js +0 -302
  318. package/dist/_internal/server/jobs/core/__tests__/pendingOrderTimeout.test.d.ts +0 -1
  319. package/dist/_internal/server/jobs/core/__tests__/pendingOrderTimeout.test.js +0 -96
  320. package/dist/_internal/server/jobs/core/__tests__/triggerEventRaffle.test.d.ts +0 -1
  321. package/dist/_internal/server/jobs/core/__tests__/triggerEventRaffle.test.js +0 -252
  322. package/dist/_internal/server/jobs/core/__tests__/wrapJobHandler.test.d.ts +0 -1
  323. package/dist/_internal/server/jobs/core/__tests__/wrapJobHandler.test.js +0 -129
  324. package/dist/_internal/server/jobs/core/onCatalogueSubmittedForApproval.d.ts +0 -15
  325. package/dist/_internal/server/jobs/core/onCatalogueSubmittedForApproval.js +0 -38
  326. package/dist/_internal/server/providers/index.d.ts +0 -11
  327. package/dist/_internal/server/providers/index.js +0 -11
  328. package/dist/_internal/server/providers/payment/razorpay-mock.d.ts +0 -52
  329. package/dist/_internal/server/providers/payment/razorpay-mock.js +0 -118
  330. package/dist/_internal/server/providers/resolve.d.ts +0 -36
  331. package/dist/_internal/server/providers/resolve.js +0 -31
  332. package/dist/_internal/server/providers/shipping/shiprocket-mock.d.ts +0 -29
  333. package/dist/_internal/server/providers/shipping/shiprocket-mock.js +0 -152
  334. package/dist/_internal/shared/types/__tests__/action-result.test.d.ts +0 -1
  335. package/dist/_internal/shared/types/__tests__/action-result.test.js +0 -65
  336. package/dist/errors/__tests__/error-mapping.test.d.ts +0 -1
  337. package/dist/errors/__tests__/error-mapping.test.js +0 -122
  338. package/dist/errors/__tests__/safe-read.test.d.ts +0 -1
  339. package/dist/errors/__tests__/safe-read.test.js +0 -39
  340. package/dist/features/addresses/repository/__tests__/addresses.repository.test.d.ts +0 -1
  341. package/dist/features/addresses/repository/__tests__/addresses.repository.test.js +0 -386
  342. package/dist/features/admin/components/AdminListingScaffold.d.ts +0 -41
  343. package/dist/features/admin/components/AdminListingScaffold.js +0 -68
  344. package/dist/features/admin/components/QuickActionsPanel.d.ts +0 -15
  345. package/dist/features/admin/components/QuickActionsPanel.js +0 -5
  346. package/dist/features/admin/repository/__tests__/notification.repository.test.d.ts +0 -1
  347. package/dist/features/admin/repository/__tests__/notification.repository.test.js +0 -356
  348. package/dist/features/admin/repository/__tests__/site-settings.repository.test.d.ts +0 -1
  349. package/dist/features/admin/repository/__tests__/site-settings.repository.test.js +0 -298
  350. package/dist/features/auctions/repository/__tests__/bid.repository.test.d.ts +0 -1
  351. package/dist/features/auctions/repository/__tests__/bid.repository.test.js +0 -290
  352. package/dist/features/auctions/repository/auctions.repository.d.ts +0 -12
  353. package/dist/features/auctions/repository/auctions.repository.js +0 -42
  354. package/dist/features/auth/repository/__tests__/session.repository.test.d.ts +0 -1
  355. package/dist/features/auth/repository/__tests__/session.repository.test.js +0 -310
  356. package/dist/features/auth/repository/__tests__/session.test.d.ts +0 -1
  357. package/dist/features/auth/repository/__tests__/session.test.js +0 -146
  358. package/dist/features/auth/repository/__tests__/sms-counter.repository.test.d.ts +0 -1
  359. package/dist/features/auth/repository/__tests__/sms-counter.repository.test.js +0 -171
  360. package/dist/features/auth/repository/__tests__/sms-counter.test.d.ts +0 -1
  361. package/dist/features/auth/repository/__tests__/sms-counter.test.js +0 -88
  362. package/dist/features/auth/repository/__tests__/token.repository.test.d.ts +0 -1
  363. package/dist/features/auth/repository/__tests__/token.repository.test.js +0 -260
  364. package/dist/features/auth/repository/__tests__/token.test.d.ts +0 -1
  365. package/dist/features/auth/repository/__tests__/token.test.js +0 -140
  366. package/dist/features/auth/repository/__tests__/user.repository.test.d.ts +0 -1
  367. package/dist/features/auth/repository/__tests__/user.repository.test.js +0 -352
  368. package/dist/features/auth/repository/__tests__/user.test.d.ts +0 -1
  369. package/dist/features/auth/repository/__tests__/user.test.js +0 -226
  370. package/dist/features/before-after/repository/before-after.repository.d.ts +0 -13
  371. package/dist/features/before-after/repository/before-after.repository.js +0 -36
  372. package/dist/features/before-after/server.d.ts +0 -6
  373. package/dist/features/before-after/server.js +0 -6
  374. package/dist/features/cart/repository/__tests__/cart.repository.test.d.ts +0 -1
  375. package/dist/features/cart/repository/__tests__/cart.repository.test.js +0 -371
  376. package/dist/features/categories/repository/__tests__/categories.repository.test.d.ts +0 -1
  377. package/dist/features/categories/repository/__tests__/categories.repository.test.js +0 -813
  378. package/dist/features/collections/repository/collections.repository.d.ts +0 -8
  379. package/dist/features/collections/repository/collections.repository.js +0 -16
  380. package/dist/features/collections/server.d.ts +0 -6
  381. package/dist/features/collections/server.js +0 -6
  382. package/dist/features/events/repository/__tests__/event.repository.test.d.ts +0 -1
  383. package/dist/features/events/repository/__tests__/event.repository.test.js +0 -299
  384. package/dist/features/faq/repository/__tests__/faqs.repository.test.d.ts +0 -1
  385. package/dist/features/faq/repository/__tests__/faqs.repository.test.js +0 -311
  386. package/dist/features/forms/Form.d.ts +0 -25
  387. package/dist/features/forms/Form.js +0 -37
  388. package/dist/features/history/repository/__tests__/user-history.repository.test.d.ts +0 -1
  389. package/dist/features/history/repository/__tests__/user-history.repository.test.js +0 -180
  390. package/dist/features/homepage/repository/__tests__/carousel.repository.test.d.ts +0 -1
  391. package/dist/features/homepage/repository/__tests__/carousel.repository.test.js +0 -182
  392. package/dist/features/homepage/repository/__tests__/homepage-sections.repository.test.d.ts +0 -1
  393. package/dist/features/homepage/repository/__tests__/homepage-sections.repository.test.js +0 -185
  394. package/dist/features/layout/ListingLayout.d.ts +0 -34
  395. package/dist/features/layout/ListingLayout.js +0 -103
  396. package/dist/features/messages/repository/__tests__/conversations.repository.test.d.ts +0 -1
  397. package/dist/features/messages/repository/__tests__/conversations.repository.test.js +0 -257
  398. package/dist/features/orders/repository/__tests__/orders.repository.test.d.ts +0 -1
  399. package/dist/features/orders/repository/__tests__/orders.repository.test.js +0 -211
  400. package/dist/features/payments/repository/__tests__/payout.repository.test.d.ts +0 -1
  401. package/dist/features/payments/repository/__tests__/payout.repository.test.js +0 -292
  402. package/dist/features/pre-orders/repository/preorders.repository.d.ts +0 -8
  403. package/dist/features/pre-orders/repository/preorders.repository.js +0 -25
  404. package/dist/features/products/repository/__tests__/product-features.repository.test.d.ts +0 -1
  405. package/dist/features/products/repository/__tests__/product-features.repository.test.js +0 -329
  406. package/dist/features/products/repository/__tests__/products.repository.test.d.ts +0 -1
  407. package/dist/features/products/repository/__tests__/products.repository.test.js +0 -607
  408. package/dist/features/promotions/repository/__tests__/claimed-coupons.repository.test.d.ts +0 -1
  409. package/dist/features/promotions/repository/__tests__/claimed-coupons.repository.test.js +0 -219
  410. package/dist/features/promotions/repository/__tests__/coupons.repository.test.d.ts +0 -1
  411. package/dist/features/promotions/repository/__tests__/coupons.repository.test.js +0 -480
  412. package/dist/features/promotions/repository/promotions.repository.d.ts +0 -14
  413. package/dist/features/promotions/repository/promotions.repository.js +0 -43
  414. package/dist/features/reviews/repository/__tests__/reviews.repository.test.d.ts +0 -1
  415. package/dist/features/reviews/repository/__tests__/reviews.repository.test.js +0 -327
  416. package/dist/features/scams/repository/__tests__/scammer.repository.test.d.ts +0 -1
  417. package/dist/features/scams/repository/__tests__/scammer.repository.test.js +0 -385
  418. package/dist/features/search/repository/__tests__/search.repository.test.d.ts +0 -1
  419. package/dist/features/search/repository/__tests__/search.repository.test.js +0 -369
  420. package/dist/features/seller/components/SellerStatCard.d.ts +0 -14
  421. package/dist/features/seller/components/SellerStatCard.js +0 -6
  422. package/dist/features/seller/components/seller-products-styles.d.ts +0 -7
  423. package/dist/features/seller/components/seller-products-styles.js +0 -14
  424. package/dist/features/seller/repository/__tests__/offer.repository.test.d.ts +0 -1
  425. package/dist/features/seller/repository/__tests__/offer.repository.test.js +0 -458
  426. package/dist/features/seller/repository/seller.repository.d.ts +0 -22
  427. package/dist/features/seller/repository/seller.repository.js +0 -72
  428. package/dist/features/site-settings/components/__tests__/ThemeManagerView.test.d.ts +0 -1
  429. package/dist/features/site-settings/components/__tests__/ThemeManagerView.test.js +0 -37
  430. package/dist/features/stores/repository/__tests__/store.repository.test.d.ts +0 -1
  431. package/dist/features/stores/repository/__tests__/store.repository.test.js +0 -261
  432. package/dist/features/stores/repository/stores.repository.d.ts +0 -11
  433. package/dist/features/stores/repository/stores.repository.js +0 -37
  434. package/dist/features/support/repository/__tests__/support.repository.test.d.ts +0 -1
  435. package/dist/features/support/repository/__tests__/support.repository.test.js +0 -312
  436. package/dist/features/wishlist/repository/__tests__/user-wishlist.repository.test.d.ts +0 -1
  437. package/dist/features/wishlist/repository/__tests__/user-wishlist.repository.test.js +0 -139
  438. package/dist/features/wishlist/repository/wishlist.repository.d.ts +0 -13
  439. package/dist/features/wishlist/repository/wishlist.repository.js +0 -31
  440. package/dist/providers/db-firebase/__tests__/filter-aliases.test.d.ts +0 -1
  441. package/dist/providers/db-firebase/__tests__/filter-aliases.test.js +0 -93
  442. package/dist/providers/shipping-shiprocket/index.d.ts +0 -297
  443. package/dist/providers/shipping-shiprocket/index.js +0 -194
  444. package/dist/providers/shipping-shiprocket/shiprocket-provider.d.ts +0 -45
  445. package/dist/providers/shipping-shiprocket/shiprocket-provider.js +0 -168
  446. package/dist/react/contexts/ThemeContext.d.ts +0 -13
  447. package/dist/react/contexts/ThemeContext.js +0 -64
  448. package/dist/schemas/webhooks/shiprocket.d.ts +0 -30
  449. package/dist/schemas/webhooks/shiprocket.js +0 -22
  450. package/dist/seed/actions/demo-seed-actions.d.ts +0 -42
  451. package/dist/seed/actions/demo-seed-actions.js +0 -36
  452. package/dist/seed/actions/index.d.ts +0 -1
  453. package/dist/seed/actions/index.js +0 -1
  454. package/dist/seed/sub-listings-seed-data.d.ts +0 -123
  455. package/dist/seed/sub-listings-seed-data.js +0 -447
  456. package/dist/seed/tester-checklist-seed-data.d.ts +0 -2
  457. package/dist/seed/tester-checklist-seed-data.js +0 -248
  458. package/dist/ui/components/DashboardStatsCard.d.ts +0 -15
  459. package/dist/ui/components/DashboardStatsCard.js +0 -27
  460. package/dist/ui/components/DashboardStatsCard.style.css +0 -68
  461. package/dist/ui/components/DynamicSelect.d.ts +0 -23
  462. package/dist/ui/components/DynamicSelect.js +0 -77
  463. package/dist/ui/components/DynamicSelect.style.css +0 -101
  464. package/dist/ui/components/InlineCreateSelect.d.ts +0 -48
  465. package/dist/ui/components/InlineCreateSelect.js +0 -75
  466. package/dist/ui/components/ListingViewShell.d.ts +0 -37
  467. package/dist/ui/components/ListingViewShell.js +0 -9
  468. package/dist/ui/components/PaginatedMultiSelect.d.ts +0 -28
  469. package/dist/ui/components/PaginatedMultiSelect.js +0 -141
  470. package/dist/ui/components/PaginatedMultiSelect.style.css +0 -272
  471. package/dist/ui/components/SectionTabs.d.ts +0 -19
  472. package/dist/ui/components/SectionTabs.js +0 -66
  473. package/dist/ui/components/SectionTabs.style.css +0 -164
  474. package/dist/ui/components/__tests__/BulkActionBar.test.d.ts +0 -1
  475. package/dist/ui/components/__tests__/BulkActionBar.test.js +0 -96
  476. package/dist/ui/components/__tests__/ListingToolbar.test.d.ts +0 -1
  477. package/dist/ui/components/__tests__/ListingToolbar.test.js +0 -125
  478. package/dist/ui/components/__tests__/new-primitives.test.d.ts +0 -1
  479. package/dist/ui/components/__tests__/new-primitives.test.js +0 -187
@@ -50,7 +50,7 @@ export declare const productsPreordersSeedData: {
50
50
  auctionExtensionMinutes?: number | undefined;
51
51
  auctionOriginalEndDate?: Date | undefined;
52
52
  auctionShippingPaidBy?: "seller" | "winner" | undefined;
53
- buyItNowPriceInPaise?: number | undefined;
53
+ buyItNowPrice?: number | undefined;
54
54
  bidsHaveStarted?: boolean | undefined;
55
55
  grading?: import("../features/products").ProductGrading | undefined;
56
56
  card?: import("../features/products").ProductCardMetadata | undefined;
@@ -120,7 +120,7 @@ export declare const productsPreordersSeedData: {
120
120
  allowedProviderIds?: string[];
121
121
  overrides?: Array<{
122
122
  providerId: string;
123
- feeInPaise?: number;
123
+ fee?: number;
124
124
  etaDaysMin?: number;
125
125
  etaDaysMax?: number;
126
126
  }>;
@@ -24,7 +24,7 @@ const _rawPreordersSeedData = [
24
24
  title: "Beyblade X BX-08 Booster — Next Wave",
25
25
  slug: "preorder-beyblade-x-bx-08-wave",
26
26
  description: "Reserve the next Beyblade X booster wave (BX-08) ahead of its India release. Includes randomized top + Xtreme Gear accessory.",
27
- price: 79900, // ₹799
27
+ price: 799,
28
28
  currency: "INR",
29
29
  condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
30
30
  status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
@@ -37,7 +37,7 @@ const _rawProductsStandardSeedData = [
37
37
  categoryNames: ["Beyblade Original", "Spinning Tops"],
38
38
  brandSlug: "brand-beyblade",
39
39
  brand: "Beyblade",
40
- price: 149900,
40
+ price: 1499,
41
41
  currency: "INR",
42
42
  stockQuantity: 4,
43
43
  availableQuantity: 4,
@@ -62,7 +62,7 @@ const _rawProductsStandardSeedData = [
62
62
  categoryNames: ["Beyblade Original", "Spinning Tops"],
63
63
  brandSlug: "brand-beyblade",
64
64
  brand: "Beyblade",
65
- price: 179900,
65
+ price: 1799,
66
66
  currency: "INR",
67
67
  stockQuantity: 2,
68
68
  availableQuantity: 2,
@@ -87,7 +87,7 @@ const _rawProductsStandardSeedData = [
87
87
  categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
88
88
  brandSlug: "brand-takara-tomy",
89
89
  brand: "Takara-Tomy",
90
- price: 129900,
90
+ price: 1299,
91
91
  currency: "INR",
92
92
  stockQuantity: 6,
93
93
  availableQuantity: 6,
@@ -112,7 +112,7 @@ const _rawProductsStandardSeedData = [
112
112
  categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
113
113
  brandSlug: "brand-takara-tomy",
114
114
  brand: "Takara-Tomy",
115
- price: 119900,
115
+ price: 1199,
116
116
  currency: "INR",
117
117
  stockQuantity: 3,
118
118
  availableQuantity: 3,
@@ -137,7 +137,7 @@ const _rawProductsStandardSeedData = [
137
137
  categoryNames: ["Beyblade Burst", "Spinning Tops"],
138
138
  brandSlug: "brand-beyblade",
139
139
  brand: "Beyblade",
140
- price: 99900,
140
+ price: 999,
141
141
  currency: "INR",
142
142
  stockQuantity: 10,
143
143
  availableQuantity: 10,
@@ -162,7 +162,7 @@ const _rawProductsStandardSeedData = [
162
162
  categoryNames: ["Beyblade Burst", "Spinning Tops"],
163
163
  brandSlug: "brand-beyblade",
164
164
  brand: "Beyblade",
165
- price: 139900,
165
+ price: 1399,
166
166
  currency: "INR",
167
167
  stockQuantity: 5,
168
168
  availableQuantity: 5,
@@ -187,7 +187,7 @@ const _rawProductsStandardSeedData = [
187
187
  categoryNames: ["Beyblade X", "Spinning Tops"],
188
188
  brandSlug: "brand-takara-tomy",
189
189
  brand: "Takara-Tomy",
190
- price: 89900,
190
+ price: 899,
191
191
  currency: "INR",
192
192
  stockQuantity: 12,
193
193
  availableQuantity: 12,
@@ -212,7 +212,7 @@ const _rawProductsStandardSeedData = [
212
212
  categoryNames: ["Beyblade X", "Spinning Tops"],
213
213
  brandSlug: "brand-takara-tomy",
214
214
  brand: "Takara-Tomy",
215
- price: 94900,
215
+ price: 949,
216
216
  currency: "INR",
217
217
  stockQuantity: 7,
218
218
  availableQuantity: 7,
@@ -32,7 +32,7 @@ export const scammersSeedData = [
32
32
  scamType: "advance_payment_ghost",
33
33
  scamPlatform: "whatsapp",
34
34
  description: "Seller listed a Blue-Eyes White Dragon LOB 1st Edition PSA 9 on a Facebook group for ₹25,000 — significantly below market. When I messaged, he asked for ₹5,000 advance to 'hold' the card before shipping. After I paid via UPI (9876543210@paytm), he went silent. The account name on UPI matched 'YGO King'. Later found 2 more people in the same group who had the same experience with the same UPI ID.",
35
- amountLost: 500000,
35
+ amountLost: 5000,
36
36
  itemInvolved: "Blue-Eyes White Dragon LOB 1st Edition PSA 9 (Yu-Gi-Oh!)",
37
37
  evidence: [seedExtMedia("https://picsum.photos/seed/scammer-evidence-ygoking-chat-screenshot-20260402/800/600")],
38
38
  reportedBy: "user-yugi-muto",
@@ -67,7 +67,7 @@ export const scammersSeedData = [
67
67
  scamType: "fake_preorder_listing",
68
68
  scamPlatform: "instagram",
69
69
  description: "Account posed as an authorized pre-order agent for the upcoming Konami 25th Anniversary Ultimate Collection booster box. Collected ₹4,500 from me for a 'guaranteed allocation slot' via UPI. Instagram profile had ~4,000 followers (likely bought) and fake order screenshots. After payment, the account blocked me. Similar reports found on Reddit r/YuGiOhIndia.",
70
- amountLost: 450000,
70
+ amountLost: 4500,
71
71
  itemInvolved: "Konami 25th Anniversary Ultimate Collection (fake pre-order)",
72
72
  evidence: [],
73
73
  reportedBy: "user-seto-kaiba",
@@ -19,7 +19,7 @@ import { allocateShipmentCosts } from "../features/shipments/utils/cost-allocati
19
19
  const NOW = new Date();
20
20
  const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
21
21
  const daysFromNow = (n) => new Date(NOW.getTime() + n * 86400000);
22
- const SEED_LABOR_RATE_PAISE_PER_HOUR = 20000; // ₹200/hr
22
+ const SEED_LABOR_RATE_PER_HOUR = 200; // ₹200/hr
23
23
  const SEED_MAX_HOURS_PER_DAY = 4;
24
24
  const rawShipments = [
25
25
  {
@@ -30,8 +30,8 @@ const rawShipments = [
30
30
  status: "planning",
31
31
  etaDate: daysFromNow(21),
32
32
  notes: "Base Set booster boxes + a graded Charizard for the owner's personal collection.",
33
- customsTotalPaise: 4500000,
34
- shippingTotalPaise: 1800000,
33
+ customsTotal: 45000,
34
+ shippingTotal: 18000,
35
35
  laborHoursSpent: 0,
36
36
  },
37
37
  {
@@ -43,8 +43,8 @@ const rawShipments = [
43
43
  trackingNumber: "1Z999AA10123456784",
44
44
  carrier: "UPS",
45
45
  etaDate: daysFromNow(9),
46
- customsTotalPaise: 3000000,
47
- shippingTotalPaise: 2200000,
46
+ customsTotal: 30000,
47
+ shippingTotal: 22000,
48
48
  laborHoursSpent: 0,
49
49
  },
50
50
  {
@@ -57,8 +57,8 @@ const rawShipments = [
57
57
  carrier: "SF Express",
58
58
  etaDate: daysAgo(3),
59
59
  receivedDate: daysAgo(3),
60
- customsTotalPaise: 1500000,
61
- shippingTotalPaise: 900000,
60
+ customsTotal: 15000,
61
+ shippingTotal: 9000,
62
62
  laborHoursSpent: 6,
63
63
  },
64
64
  {
@@ -71,20 +71,20 @@ const rawShipments = [
71
71
  carrier: "China Post",
72
72
  etaDate: daysAgo(30),
73
73
  receivedDate: daysAgo(28),
74
- customsTotalPaise: 800000,
75
- shippingTotalPaise: 600000,
74
+ customsTotal: 8000,
75
+ shippingTotal: 6000,
76
76
  laborHoursSpent: 5,
77
77
  },
78
78
  ];
79
79
  const rawLots = [
80
- { id: "lot-tokyo-01", shipmentId: rawShipments[0].id, lotName: "Base Set Booster Boxes", supplierOrderRef: "TTC-88213", weightGrams: 6000, purchaseCostPaise: 45000000 },
81
- { id: "lot-tokyo-02", shipmentId: rawShipments[0].id, lotName: "Charizard PSA 9 — personal", supplierOrderRef: "TTC-88214", weightGrams: 400, purchaseCostPaise: 22000000 },
82
- { id: "lot-vault-01", shipmentId: rawShipments[1].id, lotName: "Redline Hot Wheels lot", supplierOrderRef: "VV-4471", weightGrams: 3200, purchaseCostPaise: 18000000 },
83
- { id: "lot-vault-02", shipmentId: rawShipments[1].id, lotName: "Diecast Trucks lot", supplierOrderRef: "VV-4472", weightGrams: 5400, purchaseCostPaise: 9500000, remainderItemCount: 120, remainderEstimatedValuePaise: 36000000 },
84
- { id: "lot-gundam-01", shipmentId: rawShipments[2].id, lotName: "MG Gunpla lot", supplierOrderRef: "GG-9021", weightGrams: 8000, purchaseCostPaise: 12000000 },
85
- { id: "lot-gundam-02", shipmentId: rawShipments[2].id, lotName: "HG Gunpla assorted", supplierOrderRef: "GG-9022", weightGrams: 3000, purchaseCostPaise: 4000000 },
86
- { id: "lot-beyblade-01", shipmentId: rawShipments[3].id, lotName: "Burst Series lot", supplierOrderRef: "BA-3301", weightGrams: 4500, purchaseCostPaise: 6000000 },
87
- { id: "lot-beyblade-02", shipmentId: rawShipments[3].id, lotName: "Launchers + stadiums", supplierOrderRef: "BA-3302", weightGrams: 2200, purchaseCostPaise: 2500000 },
80
+ { id: "lot-tokyo-01", shipmentId: rawShipments[0].id, lotName: "Base Set Booster Boxes", supplierOrderRef: "TTC-88213", weightGrams: 6000, purchaseCost: 450000 },
81
+ { id: "lot-tokyo-02", shipmentId: rawShipments[0].id, lotName: "Charizard PSA 9 — personal", supplierOrderRef: "TTC-88214", weightGrams: 400, purchaseCost: 220000 },
82
+ { id: "lot-vault-01", shipmentId: rawShipments[1].id, lotName: "Redline Hot Wheels lot", supplierOrderRef: "VV-4471", weightGrams: 3200, purchaseCost: 180000 },
83
+ { id: "lot-vault-02", shipmentId: rawShipments[1].id, lotName: "Diecast Trucks lot", supplierOrderRef: "VV-4472", weightGrams: 5400, purchaseCost: 95000, remainderItemCount: 120, remainderEstimatedValue: 360000 },
84
+ { id: "lot-gundam-01", shipmentId: rawShipments[2].id, lotName: "MG Gunpla lot", supplierOrderRef: "GG-9021", weightGrams: 8000, purchaseCost: 120000 },
85
+ { id: "lot-gundam-02", shipmentId: rawShipments[2].id, lotName: "HG Gunpla assorted", supplierOrderRef: "GG-9022", weightGrams: 3000, purchaseCost: 40000 },
86
+ { id: "lot-beyblade-01", shipmentId: rawShipments[3].id, lotName: "Burst Series lot", supplierOrderRef: "BA-3301", weightGrams: 4500, purchaseCost: 60000 },
87
+ { id: "lot-beyblade-02", shipmentId: rawShipments[3].id, lotName: "Launchers + stadiums", supplierOrderRef: "BA-3302", weightGrams: 2200, purchaseCost: 25000 },
88
88
  ];
89
89
  const rawItems = [
90
90
  { id: "item-tokyo-01a", lotId: "lot-tokyo-01", shipmentId: rawShipments[0].id, title: "Base Set Booster Box (Japanese)", quantity: 6, isForSelfUse: false, price: 9500000 },
@@ -114,18 +114,18 @@ for (const shipment of rawShipments) {
114
114
  const lotsForShipment = rawLots.filter((lot) => lot.shipmentId === shipment.id);
115
115
  const allocationInputs = lotsForShipment.map((lot) => ({
116
116
  id: lot.id,
117
- purchaseCostPaise: lot.purchaseCostPaise,
117
+ purchaseCost: lot.purchaseCost,
118
118
  weightGrams: lot.weightGrams,
119
- mainItemsProjectedRevenuePaise: mainItemsRevenue(lot.id),
120
- remainderEstimatedValuePaise: lot.remainderEstimatedValuePaise,
119
+ mainItemsProjectedRevenue: mainItemsRevenue(lot.id),
120
+ remainderEstimatedValue: lot.remainderEstimatedValue,
121
121
  itemCount: rawItems.filter((item) => item.lotId === lot.id).length,
122
122
  }));
123
123
  const { perLot, totals } = allocateShipmentCosts({
124
124
  lots: allocationInputs,
125
- customsTotalPaise: shipment.customsTotalPaise,
126
- shippingTotalPaise: shipment.shippingTotalPaise,
125
+ customsTotal: shipment.customsTotal,
126
+ shippingTotal: shipment.shippingTotal,
127
127
  laborHoursSpent: shipment.laborHoursSpent,
128
- laborRatePaisePerHour: SEED_LABOR_RATE_PAISE_PER_HOUR,
128
+ laborRatePerHour: SEED_LABOR_RATE_PER_HOUR,
129
129
  maxHoursPerDay: SEED_MAX_HOURS_PER_DAY,
130
130
  });
131
131
  for (const lot of lotsForShipment) {
@@ -137,12 +137,12 @@ for (const shipment of rawShipments) {
137
137
  lotName: lot.lotName,
138
138
  supplierOrderRef: lot.supplierOrderRef,
139
139
  weightGrams: lot.weightGrams,
140
- purchaseCostPaise: lot.purchaseCostPaise,
140
+ purchaseCost: lot.purchaseCost,
141
141
  images: [],
142
142
  remainderItemCount: lot.remainderItemCount,
143
- remainderEstimatedValuePaise: lot.remainderEstimatedValuePaise,
143
+ remainderEstimatedValue: lot.remainderEstimatedValue,
144
144
  itemCount: rawItems.filter((item) => item.lotId === lot.id).length,
145
- mainItemsProjectedRevenuePaise: mainItemsRevenue(lot.id),
145
+ mainItemsProjectedRevenue: mainItemsRevenue(lot.id),
146
146
  ...computed,
147
147
  });
148
148
  }
@@ -157,10 +157,10 @@ for (const shipment of rawShipments) {
157
157
  etaDate: shipment.etaDate,
158
158
  receivedDate: shipment.receivedDate,
159
159
  notes: shipment.notes,
160
- customsTotalPaise: shipment.customsTotalPaise,
161
- shippingTotalPaise: shipment.shippingTotalPaise,
160
+ customsTotal: shipment.customsTotal,
161
+ shippingTotal: shipment.shippingTotal,
162
162
  laborHoursSpent: shipment.laborHoursSpent,
163
- laborRatePaisePerHour: SEED_LABOR_RATE_PAISE_PER_HOUR,
163
+ laborRatePerHour: SEED_LABOR_RATE_PER_HOUR,
164
164
  totals,
165
165
  totalsComputedAt: daysAgo(1),
166
166
  createdBy: "user-admin-mohsin-c",
@@ -96,10 +96,11 @@ export const siteSettingsSeedData = {
96
96
  razorpayEnabled: false,
97
97
  upiManualEnabled: true,
98
98
  codEnabled: true,
99
+ otpCheckoutThreshold: 5000,
99
100
  },
100
101
  emi: {
101
102
  enabled: true,
102
- minOrderValueInPaise: 1000000,
103
+ minOrderValue: 10000,
103
104
  tenureOptions: [2, 3, 4, 5, 6],
104
105
  tokenPercent: 10,
105
106
  billingDay: 5,
@@ -366,7 +367,7 @@ export const siteSettingsSeedData = {
366
367
  minimumTransactionFee: 0,
367
368
  gatewayFeePercent: 2,
368
369
  codDepositPercent: 10,
369
- codHandlingFeeMinInPaise: 20000,
370
+ codHandlingFeeMin: 200,
370
371
  codHandlingFeePercent: 10,
371
372
  sellerShippingFixed: 0,
372
373
  platformShippingPercent: 0,
@@ -74,7 +74,7 @@ export const shippingConfigsSeedData = [
74
74
  storeId: "store-kaiba-corp-cards",
75
75
  label: "Free over ₹999",
76
76
  method: "free",
77
- freeAbovePaise: 99900,
77
+ freeAbove: 999,
78
78
  estimatedDays: 5,
79
79
  isDefault: true,
80
80
  isActive: true,
@@ -84,8 +84,8 @@ export const shippingConfigsSeedData = [
84
84
  storeId: "store-kaiba-corp-cards",
85
85
  label: "Express (2 days)",
86
86
  method: "express",
87
- flatRateInPaise: 19900,
88
- expressSurchargeInPaise: 9900,
87
+ flatRate: 199,
88
+ expressSurcharge: 99,
89
89
  estimatedDays: 2,
90
90
  isDefault: false,
91
91
  isActive: true,
@@ -95,7 +95,7 @@ export const shippingConfigsSeedData = [
95
95
  storeId: "store-letitrip-official",
96
96
  label: "Free over ₹999",
97
97
  method: "free",
98
- freeAbovePaise: 99900,
98
+ freeAbove: 999,
99
99
  estimatedDays: 5,
100
100
  isDefault: true,
101
101
  isActive: true,
@@ -105,7 +105,7 @@ export const shippingConfigsSeedData = [
105
105
  storeId: "store-letitrip-official",
106
106
  label: "Flat ₹99",
107
107
  method: "flat",
108
- flatRateInPaise: 9900,
108
+ flatRate: 99,
109
109
  estimatedDays: 4,
110
110
  isDefault: false,
111
111
  isActive: true,
@@ -212,7 +212,7 @@ export const itemRequestsSeedData = [
212
212
  description: "Hunting a LOB 1st Edition Blue-Eyes, grade 8 or above. Budget ₹2,50,000.",
213
213
  category: "trading-cards",
214
214
  brand: "konami",
215
- maxBudgetInPaise: 25000000,
215
+ maxBudget: 250000,
216
216
  imageUrls: [seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/89631139.jpg")],
217
217
  status: "open",
218
218
  replyCount: 2,
@@ -228,7 +228,7 @@ export const itemRequestsSeedData = [
228
228
  description: "Need all 5 pieces in NM+ condition. Willing to pay premium for matching set.",
229
229
  category: "trading-cards",
230
230
  brand: "konami",
231
- maxBudgetInPaise: 15000000,
231
+ maxBudget: 150000,
232
232
  imageUrls: [seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg")],
233
233
  status: "open",
234
234
  replyCount: 0,
@@ -244,7 +244,7 @@ export const itemRequestsSeedData = [
244
244
  description: "Sealed only. 1st Ed or Unlimited OK. For platform demo.",
245
245
  category: "trading-cards",
246
246
  brand: "konami",
247
- maxBudgetInPaise: 1500000,
247
+ maxBudget: 15000,
248
248
  imageUrls: [seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/46986414.jpg")],
249
249
  status: "fulfilled",
250
250
  replyCount: 4,
@@ -1,11 +1,12 @@
1
1
  /*
2
2
  * WHY: Provides a minimal set of seed stores for the Beyblade-focused demo catalog.
3
- * WHAT: Exports 2 StoreDocument partials — letitrip-official (platform's first-party store,
4
- * kept for admin/catalogue flows that assume one exists) and beyblade-arena (the
5
- * Beyblade specialist storefront that owns the seeded product catalog).
3
+ * WHAT: Exports 3 StoreDocument partials — letitrip-official (platform's first-party store,
4
+ * kept for admin/catalogue flows that assume one exists), beyblade-arena (the
5
+ * Beyblade specialist storefront that owns the seeded product catalog), and
6
+ * tester-qa-seller (the dedicated isTester account's own seller store).
6
7
  *
7
8
  * EXPORTS:
8
- * storesSeedData — array of 2 Partial<StoreDocument> for the seed runner
9
+ * storesSeedData — array of 3 Partial<StoreDocument> for the seed runner
9
10
  *
10
11
  * @tag domain:stores
11
12
  * @tag layer:seed
@@ -47,7 +48,7 @@ export const storesSeedData = [
47
48
  providerId: "provider-letitrip-standard",
48
49
  label: "Standard Shipping",
49
50
  type: "custom",
50
- fee: { flatInPaise: 4900, freeAboveInPaise: 99900 },
51
+ fee: { flat: 49, freeAbove: 999 },
51
52
  etaDaysMin: 3,
52
53
  etaDaysMax: 5,
53
54
  requiresAwbUpload: true,
@@ -56,7 +57,7 @@ export const storesSeedData = [
56
57
  providerId: "provider-letitrip-express",
57
58
  label: "Express Shipping",
58
59
  type: "custom",
59
- fee: { flatInPaise: 9900 },
60
+ fee: { flat: 99 },
60
61
  etaDaysMin: 1,
61
62
  etaDaysMax: 2,
62
63
  requiresAwbUpload: true,
@@ -65,7 +66,7 @@ export const storesSeedData = [
65
66
  providerId: "provider-letitrip-pickup",
66
67
  label: "Store Pickup (Mumbai HQ)",
67
68
  type: "store-pickup",
68
- fee: { flatInPaise: 0 },
69
+ fee: { flat: 0 },
69
70
  etaDaysMin: 0,
70
71
  etaDaysMax: 1,
71
72
  },
@@ -116,7 +117,7 @@ export const storesSeedData = [
116
117
  shippingConfig: {
117
118
  defaultProviderId: "provider-beyblade-standard",
118
119
  providers: [
119
- { providerId: "provider-beyblade-standard", label: "Standard", type: "custom", fee: { flatInPaise: 4500, freeAboveInPaise: 59900 }, etaDaysMin: 3, etaDaysMax: 6, requiresAwbUpload: true },
120
+ { providerId: "provider-beyblade-standard", label: "Standard", type: "custom", fee: { flat: 45, freeAbove: 599 }, etaDaysMin: 3, etaDaysMax: 6, requiresAwbUpload: true },
120
121
  ],
121
122
  },
122
123
  isPublic: true,
@@ -126,4 +127,32 @@ export const storesSeedData = [
126
127
  createdAt: daysAgo(150),
127
128
  updatedAt: daysAgo(4),
128
129
  },
130
+ // ── Store 3: Tester QA Seller Store (owned by the dedicated isTester account) ──
131
+ {
132
+ id: "store-tester-qa-seller",
133
+ storeSlug: "store-tester-qa-seller",
134
+ ownerId: "user-tester-qa",
135
+ storeName: "Tester QA Seller Store",
136
+ storeDescription: "Personal seller store for the dedicated QA tester account — used to exercise seller-side flows (listing, orders, payouts) from the Tester Hub checklist.",
137
+ storeCategory: "category-spinning-tops",
138
+ storeLogoURL: seedExtMedia("https://picsum.photos/seed/store-logo-tester-qa-seller-20260101/400/400"),
139
+ storeBannerURL: seedExtMedia("https://picsum.photos/seed/store-banner-tester-qa-seller-20260101/1600/400"),
140
+ status: STORE_FIELDS.STATUS_VALUES.ACTIVE,
141
+ bio: "QA tester's own seller store — auto-approved via the isTester flag.",
142
+ location: "Bengaluru, Karnataka, India",
143
+ returnPolicy: "N/A — QA test store.",
144
+ shippingPolicy: "N/A — QA test store.",
145
+ shippingConfig: {
146
+ defaultProviderId: "provider-tester-standard",
147
+ providers: [
148
+ { providerId: "provider-tester-standard", label: "Standard", type: "custom", fee: { flat: 49, freeAbove: 999 }, etaDaysMin: 3, etaDaysMax: 5, requiresAwbUpload: true },
149
+ ],
150
+ },
151
+ isPublic: true,
152
+ isVacationMode: false,
153
+ stats: { totalProducts: 0, itemsSold: 0, totalReviews: 0, averageRating: 0 },
154
+ capabilities: ["host_preorders", "verified_seller", "create_coupons"],
155
+ createdAt: daysAgo(1),
156
+ updatedAt: daysAgo(1),
157
+ },
129
158
  ];
@@ -1,6 +1,7 @@
1
1
  /*
2
2
  * WHY: Provides 18 seed user accounts covering all marketplace roles and demographics.
3
- * WHAT: Exports 18 UserDocument partials — 1 admin, 7 sellers (store owners), 10 buyers.
3
+ * WHAT: Exports 18 UserDocument partials — 1 admin, 7 sellers (store owners, one of which
4
+ * is also the dedicated isTester QA account), 10 buyers.
4
5
  * All passwords are TempPass123! in the Firebase Auth emulator. UIDs match slugs.
5
6
  *
6
7
  * EXPORTS:
@@ -509,4 +510,40 @@ export const usersSeedData = [
509
510
  createdAt: daysAgo(110),
510
511
  updatedAt: daysAgo(3),
511
512
  },
513
+ // ── Tester QA account (role stays "seller" — isTester unlocks Tester Hub + auto-approved store) ──
514
+ {
515
+ uid: "user-tester-qa",
516
+ email: "tester@letitrip.in",
517
+ phoneNumber: `${_ph}9999900018`,
518
+ phoneVerified: true,
519
+ displayName: "QA Tester",
520
+ photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-qa-tester-20260101/400/400"),
521
+ role: USER_FIELDS.ROLE_VALUES.SELLER,
522
+ isTester: true,
523
+ emailVerified: true,
524
+ disabled: false,
525
+ storeId: "store-tester-qa-seller",
526
+ storeSlug: "store-tester-qa-seller",
527
+ storeStatus: "approved",
528
+ payoutDetails: {
529
+ method: "upi",
530
+ upiId: "tester-qa@upi",
531
+ isConfigured: true,
532
+ },
533
+ publicProfile: {
534
+ isPublic: true,
535
+ showEmail: false,
536
+ showPhone: false,
537
+ showOrders: false,
538
+ showWishlist: false,
539
+ bio: "Dedicated QA tester account for the Tester QA Program — runs through the checklist against the shared test sandbox.",
540
+ location: "Bengaluru, Karnataka",
541
+ storeName: "Tester QA Seller Store",
542
+ storeCategory: "trading-cards",
543
+ },
544
+ stats: { totalOrders: 0, auctionsWon: 0, itemsSold: 0, reviewsCount: 0 },
545
+ metadata: { lastSignInTime: daysAgo(1), creationTime: daysAgo(1).toISOString(), loginCount: 5 },
546
+ createdAt: daysAgo(1),
547
+ updatedAt: daysAgo(1),
548
+ },
512
549
  ];
@@ -24,13 +24,11 @@ export { PreOrderDetailPageView } from "./features/pre-orders/index";
24
24
  export { AuctionDetailPageView } from "./features/auctions/index";
25
25
  export { AuctionsListView } from "./features/auctions/components/AuctionsListView";
26
26
  export { BundlesListView } from "./features/categories/components/BundlesListView";
27
- export { ClassifiedListView } from "./features/classified/components/ClassifiedListView";
28
- export { DigitalCodesListView } from "./features/digital-codes/components/DigitalCodesListView";
29
- export { LiveItemsListView } from "./features/live/components/LiveItemsListView";
30
27
  export { PrizeDrawsListingView } from "./features/products/components/PrizeDrawsListingView";
31
28
  export { PrizeDrawDetailPageView } from "./features/products/components/PrizeDrawDetailPageView";
32
29
  export { ProductDetailPageView } from "./features/products/components/ProductDetailPageView";
33
30
  export { ProductsIndexPageView } from "./features/products/components/ProductsIndexPageView";
31
+ export { ArtStickersListView } from "./features/products/components/ArtStickersListView";
34
32
  export { ReviewsIndexPageView } from "./features/reviews/components/ReviewsIndexPageView";
35
33
  export { ReviewDetailPageView } from "./features/reviews/components/ReviewDetailPageView";
36
34
  export { StoresIndexPageView } from "./features/stores/components/StoresIndexPageView";
@@ -29,13 +29,11 @@ export { PreOrderDetailPageView } from "./features/pre-orders/index";
29
29
  export { AuctionDetailPageView } from "./features/auctions/index";
30
30
  export { AuctionsListView } from "./features/auctions/components/AuctionsListView";
31
31
  export { BundlesListView } from "./features/categories/components/BundlesListView";
32
- export { ClassifiedListView } from "./features/classified/components/ClassifiedListView";
33
- export { DigitalCodesListView } from "./features/digital-codes/components/DigitalCodesListView";
34
- export { LiveItemsListView } from "./features/live/components/LiveItemsListView";
35
32
  export { PrizeDrawsListingView } from "./features/products/components/PrizeDrawsListingView";
36
33
  export { PrizeDrawDetailPageView } from "./features/products/components/PrizeDrawDetailPageView";
37
34
  export { ProductDetailPageView } from "./features/products/components/ProductDetailPageView";
38
35
  export { ProductsIndexPageView } from "./features/products/components/ProductsIndexPageView";
36
+ export { ArtStickersListView } from "./features/products/components/ArtStickersListView";
39
37
  export { ReviewsIndexPageView } from "./features/reviews/components/ReviewsIndexPageView";
40
38
  export { ReviewDetailPageView } from "./features/reviews/components/ReviewDetailPageView";
41
39
  export { StoresIndexPageView } from "./features/stores/components/StoresIndexPageView";
package/dist/server.d.ts CHANGED
@@ -6,7 +6,7 @@ export { SERVER_ERRORS_COLLECTION, SERVER_ERROR_FIELDS, SERVER_ERROR_STACK_MAX_B
6
6
  export type { ServerErrorDocument, ServerErrorSource, } from "./features/server-errors/schemas/firestore";
7
7
  export { wrapAction, isOk, unwrap, } from "./_internal/shared/types/action-result";
8
8
  export type { ActionResult } from "./_internal/shared/types/action-result";
9
- export { attachPaymentProofAction, adminVerifyPaymentAction, } from "./_internal/server/features/orders/actions";
9
+ export { attachPaymentProofAction, adminVerifyPaymentAction, adminRequestProofReuploadAction, adminRejectPaymentAsFraudAction, raiseOrderDisputeAction, } from "./_internal/server/features/orders/actions";
10
10
  export { wrapJobHandler, wrapScheduleHandler, wrapTriggerHandler, wrapCallableHandler, } from "./_internal/server/jobs/core/wrapJobHandler";
11
11
  export { analyzeLogs } from "./_internal/server/features/maintenance/analyze";
12
12
  export type { AnalyzeOptions, AnalyzeReport, } from "./_internal/server/features/maintenance/analyze";
@@ -262,6 +262,7 @@ export { grantCheckoutConsentViaSms } from "./features/checkout/server";
262
262
  export { sendCheckoutConsentOtp } from "./features/checkout/server";
263
263
  export { verifyCheckoutConsentOtp } from "./features/checkout/server";
264
264
  export { grantAdminCheckoutBypass } from "./features/checkout/server";
265
+ export { sendCheckoutValueOtp, verifyCheckoutValueOtp, isCheckoutValueOtpVerified, } from "./features/checkout/server";
265
266
  export { EmailButton, EmailColumn, EmailContainer, EmailDivider, EmailDoc, EmailFooter, EmailHeader, EmailImage, EmailLink, EmailRow, } from "./features/email";
266
267
  export type { EmailButtonProps, EmailColumnProps, EmailContainerProps, EmailDividerProps, EmailDocProps, EmailFooterProps, EmailHeaderProps, EmailImageProps, EmailLinkProps, EmailRowProps, EmailTone, } from "./features/email";
267
268
  export { sendContactEmail } from "./features/contact/server";
package/dist/server.js CHANGED
@@ -12,7 +12,7 @@ export { SERVER_ERRORS_COLLECTION, SERVER_ERROR_FIELDS, SERVER_ERROR_STACK_MAX_B
12
12
  // Mirrors the routeHandler envelope so client wrappers consume both surfaces uniformly.
13
13
  export { wrapAction, isOk, unwrap, } from "./_internal/shared/types/action-result";
14
14
  // [SERVER-ONLY] P-1 manual payment proof server actions.
15
- export { attachPaymentProofAction, adminVerifyPaymentAction, } from "./_internal/server/features/orders/actions";
15
+ export { attachPaymentProofAction, adminVerifyPaymentAction, adminRequestProofReuploadAction, adminRejectPaymentAsFraudAction, raiseOrderDisputeAction, } from "./_internal/server/features/orders/actions";
16
16
  // [SERVER-ONLY] Cloud Function handler wrappers — persist exceptions to
17
17
  // serverErrors (source: "function") before re-throwing so retry semantics
18
18
  // are preserved. Apply at the consumer's runtime adapter boundary.
@@ -762,6 +762,8 @@ export { sendCheckoutConsentOtp } from "./features/checkout/server";
762
762
  export { verifyCheckoutConsentOtp } from "./features/checkout/server";
763
763
  // grantAdminCheckoutBypass - Admin bypass that skips OTP + payment for admin-placed orders.
764
764
  export { grantAdminCheckoutBypass } from "./features/checkout/server";
765
+ // [SERVER-ONLY] Tier PP — high-value checkout OTP gate (distinct from the shipping-consent OTP above).
766
+ export { sendCheckoutValueOtp, verifyCheckoutValueOtp, isCheckoutValueOtpVerified, } from "./features/checkout/server";
765
767
  // [SERVER-ONLY] Email primitives — table-based, inline-styled components
766
768
  // that render email-client-compatible HTML via renderToStaticMarkup. Use
767
769
  // these instead of authoring raw <table>/<tr>/<td> in email templates.
@@ -1,17 +1,8 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
2
  import { Span } from "./Typography";
3
3
  import { Row } from "./Layout";
4
- import { getDefaultCurrency, getDefaultLocale, } from "../../core/baseline-resolver";
5
- function formatCurrency(amount, currency) {
6
- return new Intl.NumberFormat(getDefaultLocale(), {
7
- style: "currency",
8
- currency,
9
- maximumFractionDigits: 2,
10
- }).format(amount);
11
- }
12
- function formatPercent(value) {
13
- return `${Math.round(value * 100)}%`;
14
- }
4
+ import { getDefaultCurrency } from "../../core/baseline-resolver";
5
+ import { formatCurrency, formatPercentage } from "../../utils/number.formatter";
15
6
  export function PriceDisplay({ amount, currency = getDefaultCurrency(), originalAmount, variant = "compact", className, }) {
16
7
  const hasDiscount = originalAmount !== undefined && originalAmount > amount;
17
8
  const discountPct = hasDiscount
@@ -23,5 +14,5 @@ export function PriceDisplay({ amount, currency = getDefaultCurrency(), original
23
14
  const originalClass = variant === "detail"
24
15
  ? "appkit-price-display__original appkit-price-display__original--detail"
25
16
  : "appkit-price-display__original appkit-price-display__original--compact";
26
- return (_jsxs(Row, { wrap: true, align: "baseline", gap: "xs", className: `appkit-price-display ${className ?? ""}`.trim(), children: [_jsx(Span, { className: priceClass, children: formatCurrency(amount, currency) }), hasDiscount && (_jsxs(_Fragment, { children: [_jsx(Span, { className: originalClass, children: formatCurrency(originalAmount, currency) }), _jsxs(Span, { className: "appkit-price-display__discount", children: ["-", formatPercent(discountPct)] })] }))] }));
17
+ return (_jsxs(Row, { wrap: true, align: "baseline", gap: "xs", className: `appkit-price-display ${className ?? ""}`.trim(), children: [_jsx(Span, { className: priceClass, children: formatCurrency(amount, currency) }), hasDiscount && (_jsxs(_Fragment, { children: [_jsx(Span, { className: originalClass, children: formatCurrency(originalAmount, currency) }), _jsxs(Span, { className: "appkit-price-display__discount", children: ["-", formatPercentage(discountPct, 0)] })] }))] }));
27
18
  }
@@ -5,13 +5,8 @@ export declare function formatCurrency(amount: number, currency?: string, locale
5
5
  export declare function formatNumber(num: number, locale?: string, options?: {
6
6
  decimals?: number;
7
7
  }): string;
8
- /**
9
- * Formats an integer paise amount as a currency string, e.g. 349900 -> "₹3,499".
10
- * Canonical helper for every paise-denominated amount across the codebase —
11
- * see CLAUDE.md's Recurrent Root Cause Patterns for why this was previously
12
- * duplicated as a local `formatPaise`/`toRupees` in 5+ admin/seller views.
13
- */
14
- export declare function formatPaise(paise: number, currency?: string, locale?: string): string;
8
+ /** Rounds to 2 decimal places for rupee-denominated money math (avoids float drift). */
9
+ export declare function roundRupees(amount: number): number;
15
10
  export declare function formatPercentage(num: number, decimals?: number): string;
16
11
  export declare function formatFileSize(bytes: number): string;
17
12
  export declare function formatCompactNumber(num: number): string;
@@ -17,14 +17,9 @@ export function formatNumber(num, locale, options) {
17
17
  maximumFractionDigits: options?.decimals,
18
18
  }).format(num);
19
19
  }
20
- /**
21
- * Formats an integer paise amount as a currency string, e.g. 349900 -> "₹3,499".
22
- * Canonical helper for every paise-denominated amount across the codebase
23
- * see CLAUDE.md's Recurrent Root Cause Patterns for why this was previously
24
- * duplicated as a local `formatPaise`/`toRupees` in 5+ admin/seller views.
25
- */
26
- export function formatPaise(paise, currency, locale) {
27
- return formatCurrency(paise / 100, currency, locale);
20
+ /** Rounds to 2 decimal places for rupee-denominated money math (avoids float drift). */
21
+ export function roundRupees(amount) {
22
+ return Math.round(amount * 100) / 100;
28
23
  }
29
24
  export function formatPercentage(num, decimals = 0) {
30
25
  return `${(num * 100).toFixed(decimals)}%`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mohasinac/appkit",
3
- "version": "3.8.2",
3
+ "version": "3.9.0",
4
4
  "license": "MIT",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -161,6 +161,12 @@ console.log(`✓ Connected to project: ${process.env.FIREBASE_ADMIN_PROJECT_ID |
161
161
  // Pull seed data + helpers from @mohasinac/appkit
162
162
  // ---------------------------------------------------------------------------
163
163
  const appkit = await import("@mohasinac/appkit");
164
+ // PII crypto functions moved server-only in appkit 3.8.1 (they touch
165
+ // firebase-admin's crypto chain) — no longer exported from the main
166
+ // client-safe barrel, only from "@mohasinac/appkit/server". The *_PII_FIELDS
167
+ // / *_PII_INDEX_MAP constants are plain data and stay in the main barrel.
168
+ const appkitServer = await import("@mohasinac/appkit/server");
169
+ const { encryptPiiFields, addPiiIndices, encryptPayoutDetails, encryptPayoutBankAccount, encryptShippingConfig } = appkitServer;
164
170
 
165
171
  const {
166
172
  // seed data
@@ -191,9 +197,8 @@ const {
191
197
  GROUPED_LISTINGS_COLLECTION, SCAMMER_COLLECTION,
192
198
  WISHLIST_COLLECTION, HISTORY_COLLECTION, PRODUCT_FEATURES_COLLECTION,
193
199
  TESTER_CHECKLIST_ITEM_COLLECTION,
194
- // PII helpers
195
- encryptPiiFields, addPiiIndices,
196
- encryptPayoutDetails, encryptPayoutBankAccount, encryptShippingConfig,
200
+ // PII field/index constants (plain data, still in the main barrel — the
201
+ // crypto functions themselves come from appkitServer above)
197
202
  USER_PII_FIELDS, USER_PII_INDEX_MAP,
198
203
  ADDRESS_PII_FIELDS, ORDER_PII_FIELDS, BID_PII_FIELDS, PAYOUT_PII_FIELDS,
199
204
  REVIEW_PII_FIELDS, OFFER_PII_FIELDS, EVENT_ENTRY_PII_FIELDS, CHAT_PII_FIELDS,