@mohasinac/appkit 4.59.0 → 4.60.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 (531) hide show
  1. package/dist/.build-stamp.json +3 -3
  2. package/dist/_internal/client/features/layout/DashboardLayoutClient.js +62 -5
  3. package/dist/_internal/client/features/maintenance/views/MaintenanceDashboardView.js +2 -2
  4. package/dist/_internal/server/features/brands/actions.js +78 -4
  5. package/dist/_internal/server/features/checkout/actions.d.ts +36 -13
  6. package/dist/_internal/server/features/checkout/actions.js +668 -183
  7. package/dist/_internal/server/features/checkout/supplier-identity.js +18 -1
  8. package/dist/_internal/server/features/gateway-events/index.d.ts +10 -0
  9. package/dist/_internal/server/features/gateway-events/index.js +10 -0
  10. package/dist/_internal/server/features/gateway-events/ingest.d.ts +127 -0
  11. package/dist/_internal/server/features/gateway-events/ingest.js +188 -0
  12. package/dist/_internal/server/features/gateway-events/redact.d.ts +66 -0
  13. package/dist/_internal/server/features/gateway-events/redact.js +151 -0
  14. package/dist/_internal/server/features/grievance/actions.d.ts +63 -0
  15. package/dist/_internal/server/features/grievance/actions.js +173 -0
  16. package/dist/_internal/server/features/grievance/index.d.ts +8 -0
  17. package/dist/_internal/server/features/grievance/index.js +8 -0
  18. package/dist/_internal/server/features/grouped/data.js +28 -3
  19. package/dist/_internal/server/features/lottery/actions.js +99 -4
  20. package/dist/_internal/server/features/order-completion/actions.d.ts +92 -0
  21. package/dist/_internal/server/features/order-completion/actions.js +336 -0
  22. package/dist/_internal/server/features/order-completion/index.d.ts +7 -0
  23. package/dist/_internal/server/features/order-completion/index.js +7 -0
  24. package/dist/_internal/server/features/orders/actions.d.ts +13 -0
  25. package/dist/_internal/server/features/orders/actions.js +56 -2
  26. package/dist/_internal/server/features/orders/adapters.js +26 -0
  27. package/dist/_internal/server/features/orders/cancellation-refund.d.ts +116 -0
  28. package/dist/_internal/server/features/orders/cancellation-refund.js +466 -0
  29. package/dist/_internal/server/features/orders/index.d.ts +2 -1
  30. package/dist/_internal/server/features/orders/index.js +1 -1
  31. package/dist/_internal/server/features/orders/service.d.ts +60 -0
  32. package/dist/_internal/server/features/orders/service.js +74 -0
  33. package/dist/_internal/server/features/payment-cases/disputes.d.ts +76 -0
  34. package/dist/_internal/server/features/payment-cases/disputes.js +241 -0
  35. package/dist/_internal/server/features/payment-cases/index.d.ts +9 -0
  36. package/dist/_internal/server/features/payment-cases/index.js +9 -0
  37. package/dist/_internal/server/features/payouts/actions.d.ts +28 -3
  38. package/dist/_internal/server/features/payouts/actions.js +84 -10
  39. package/dist/_internal/server/features/points/adjust.d.ts +61 -0
  40. package/dist/_internal/server/features/points/adjust.js +121 -0
  41. package/dist/_internal/server/features/points/award.d.ts +65 -0
  42. package/dist/_internal/server/features/points/award.js +145 -0
  43. package/dist/_internal/server/features/price-index/market.d.ts +33 -0
  44. package/dist/_internal/server/features/price-index/market.js +54 -1
  45. package/dist/_internal/server/features/products/data.js +40 -22
  46. package/dist/_internal/server/features/protection-claims/actions.d.ts +72 -0
  47. package/dist/_internal/server/features/protection-claims/actions.js +228 -0
  48. package/dist/_internal/server/features/protection-claims/index.d.ts +8 -0
  49. package/dist/_internal/server/features/protection-claims/index.js +8 -0
  50. package/dist/_internal/server/features/refunds/actions.d.ts +20 -0
  51. package/dist/_internal/server/features/refunds/actions.js +259 -17
  52. package/dist/_internal/server/features/refunds/capacity.d.ts +29 -0
  53. package/dist/_internal/server/features/refunds/capacity.js +37 -0
  54. package/dist/_internal/server/features/reviews/actions.js +3 -2
  55. package/dist/_internal/server/features/search/index-build/sources.js +20 -1
  56. package/dist/_internal/server/features/shipping/reconcile.d.ts +10 -1
  57. package/dist/_internal/server/features/shipping/reconcile.js +34 -3
  58. package/dist/_internal/server/features/shipping/reimbursement.d.ts +117 -0
  59. package/dist/_internal/server/features/shipping/reimbursement.js +223 -0
  60. package/dist/_internal/server/features/stores/tabs.d.ts +19 -4
  61. package/dist/_internal/server/features/stores/tabs.js +24 -4
  62. package/dist/_internal/server/functions/https.d.ts +31 -1
  63. package/dist/_internal/server/functions/https.js +52 -1
  64. package/dist/_internal/server/functions/scheduled.d.ts +72 -1
  65. package/dist/_internal/server/functions/scheduled.js +124 -1
  66. package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +62 -16
  67. package/dist/_internal/server/jobs/core/boxRollupReconcile.d.ts +46 -0
  68. package/dist/_internal/server/jobs/core/boxRollupReconcile.js +142 -0
  69. package/dist/_internal/server/jobs/core/dailyDataCleanup.js +149 -1
  70. package/dist/_internal/server/jobs/core/dailyStatusDigest.d.ts +14 -0
  71. package/dist/_internal/server/jobs/core/dailyStatusDigest.js +79 -1
  72. package/dist/_internal/server/jobs/core/index.d.ts +2 -0
  73. package/dist/_internal/server/jobs/core/index.js +2 -0
  74. package/dist/_internal/server/jobs/core/marketPriceRollup.d.ts +64 -0
  75. package/dist/_internal/server/jobs/core/marketPriceRollup.js +153 -0
  76. package/dist/_internal/server/jobs/core/obligationSweep.d.ts +36 -0
  77. package/dist/_internal/server/jobs/core/obligationSweep.js +503 -0
  78. package/dist/_internal/server/jobs/core/paymentReconcile.d.ts +79 -0
  79. package/dist/_internal/server/jobs/core/paymentReconcile.js +614 -0
  80. package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +34 -0
  81. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +35 -4
  82. package/dist/_internal/server/jobs/handlers/boxRollupReconcile.d.ts +2 -0
  83. package/dist/_internal/server/jobs/handlers/boxRollupReconcile.js +15 -0
  84. package/dist/_internal/server/jobs/handlers/countersReconcileNow.d.ts +65 -0
  85. package/dist/_internal/server/jobs/handlers/countersReconcileNow.js +89 -0
  86. package/dist/_internal/server/jobs/handlers/index.d.ts +5 -0
  87. package/dist/_internal/server/jobs/handlers/index.js +5 -0
  88. package/dist/_internal/server/jobs/handlers/marketPriceRollup.d.ts +2 -0
  89. package/dist/_internal/server/jobs/handlers/marketPriceRollup.js +2 -0
  90. package/dist/_internal/server/jobs/handlers/obligationSweep.d.ts +2 -0
  91. package/dist/_internal/server/jobs/handlers/obligationSweep.js +15 -0
  92. package/dist/_internal/server/jobs/handlers/onShipmentAllocationSync.js +30 -1
  93. package/dist/_internal/server/jobs/handlers/paymentReconcile.d.ts +2 -0
  94. package/dist/_internal/server/jobs/handlers/paymentReconcile.js +6 -0
  95. package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
  96. package/dist/_internal/shared/actions/action-registry.js +71 -0
  97. package/dist/_internal/shared/checkout/coupon-discount.d.ts +73 -0
  98. package/dist/_internal/shared/checkout/coupon-discount.js +103 -0
  99. package/dist/_internal/shared/checkout/lanes.d.ts +42 -0
  100. package/dist/_internal/shared/checkout/lanes.js +46 -0
  101. package/dist/_internal/shared/checkout/order-math.d.ts +149 -1
  102. package/dist/_internal/shared/checkout/order-math.js +251 -3
  103. package/dist/_internal/shared/checkout/refundable-base.d.ts +116 -0
  104. package/dist/_internal/shared/checkout/refundable-base.js +122 -0
  105. package/dist/_internal/shared/features/auctions/config.d.ts +14 -1
  106. package/dist/_internal/shared/features/auctions/config.js +30 -1
  107. package/dist/_internal/shared/features/brands/schema.d.ts +42 -0
  108. package/dist/_internal/shared/features/brands/schema.js +18 -0
  109. package/dist/_internal/shared/features/orders/refund-copy.d.ts +22 -0
  110. package/dist/_internal/shared/features/orders/refund-copy.js +34 -0
  111. package/dist/_internal/shared/features/print/label-profiles.d.ts +198 -0
  112. package/dist/_internal/shared/features/print/label-profiles.js +350 -0
  113. package/dist/_internal/shared/features/products/to-product-item.js +33 -5
  114. package/dist/_internal/shared/fees/calculator.d.ts +31 -2
  115. package/dist/_internal/shared/fees/calculator.js +103 -5
  116. package/dist/_internal/shared/fees/india-states.d.ts +195 -0
  117. package/dist/_internal/shared/fees/india-states.js +190 -0
  118. package/dist/_internal/shared/fees/payout-hold.d.ts +80 -0
  119. package/dist/_internal/shared/fees/payout-hold.js +74 -0
  120. package/dist/_internal/shared/obligations/deadlines.d.ts +94 -0
  121. package/dist/_internal/shared/obligations/deadlines.js +155 -0
  122. package/dist/_internal/shared/shipping/quote.d.ts +96 -0
  123. package/dist/_internal/shared/shipping/quote.js +67 -0
  124. package/dist/_internal/shared/time/business-days.d.ts +91 -0
  125. package/dist/_internal/shared/time/business-days.js +185 -0
  126. package/dist/cli/index.js +0 -2
  127. package/dist/client.d.ts +9 -4
  128. package/dist/client.js +26 -3
  129. package/dist/configs/tailwind.d.ts +0 -12
  130. package/dist/configs/tailwind.js +28 -15
  131. package/dist/constants/api-endpoints.d.ts +51 -9
  132. package/dist/constants/api-endpoints.js +23 -7
  133. package/dist/constants/index.d.ts +1 -1
  134. package/dist/constants/index.js +1 -1
  135. package/dist/contracts/index.d.ts +1 -1
  136. package/dist/contracts/payment.d.ts +131 -0
  137. package/dist/features/about/components/AboutView.js +1 -1
  138. package/dist/features/about/components/DeveloperView.js +5 -2
  139. package/dist/features/about/components/FAQPageView.js +2 -1
  140. package/dist/features/about/components/FeesView.js +2 -1
  141. package/dist/features/about/components/HelpPageView.js +2 -1
  142. package/dist/features/about/components/HowAuctionsWorkView.js +2 -1
  143. package/dist/features/about/components/HowCheckoutWorksView.js +2 -1
  144. package/dist/features/about/components/HowEmiWorksView.js +2 -1
  145. package/dist/features/about/components/HowOffersWorkView.js +2 -1
  146. package/dist/features/about/components/HowOrdersWorkView.js +2 -1
  147. package/dist/features/about/components/HowPayoutsWorkView.js +2 -1
  148. package/dist/features/about/components/HowPreOrdersWorkView.js +2 -1
  149. package/dist/features/about/components/HowReviewsWorkView.js +2 -1
  150. package/dist/features/about/components/PolicyPageView.js +2 -1
  151. package/dist/features/about/components/ProseHero.d.ts +73 -0
  152. package/dist/features/about/components/ProseHero.js +18 -0
  153. package/dist/features/about/components/SecurityPrivacyView.js +2 -1
  154. package/dist/features/about/components/ShippingPolicyView.js +2 -1
  155. package/dist/features/about/components/TrackOrderView.js +2 -1
  156. package/dist/features/about/components/UnauthorizedView.js +1 -1
  157. package/dist/features/about/index.d.ts +2 -0
  158. package/dist/features/about/index.js +5 -0
  159. package/dist/features/account/actions/address-actions.d.ts +26 -2
  160. package/dist/features/account/actions/address-actions.js +25 -1
  161. package/dist/features/account/components/BuyerShoppingGuideView.js +1 -1
  162. package/dist/features/account/components/NotificationPreferencesPanel.js +1 -1
  163. package/dist/features/account/components/UserOrdersView.js +17 -0
  164. package/dist/features/account/components/UserSidebar.js +1 -1
  165. package/dist/features/account/hooks/useNotifications.js +29 -0
  166. package/dist/features/admin/actions/admin-coupon-actions.js +36 -0
  167. package/dist/features/admin/components/AdminBeysView.js +2 -2
  168. package/dist/features/admin/components/AdminBlogEditorView.js +2 -2
  169. package/dist/features/admin/components/AdminBrandEditorView.js +32 -2
  170. package/dist/features/admin/components/AdminBundleEditorView.js +1 -1
  171. package/dist/features/admin/components/AdminCarouselEditorView.js +1 -1
  172. package/dist/features/admin/components/AdminCategoriesView.js +1 -1
  173. package/dist/features/admin/components/AdminCategoryEditorView.js +73 -17
  174. package/dist/features/admin/components/AdminContactEditorView.js +1 -1
  175. package/dist/features/admin/components/AdminCouponEditorView.js +26 -1
  176. package/dist/features/admin/components/AdminFaqEditorView.js +1 -1
  177. package/dist/features/admin/components/AdminFaqsView.js +2 -2
  178. package/dist/features/admin/components/AdminGatewayEventsView.d.ts +54 -0
  179. package/dist/features/admin/components/AdminGatewayEventsView.js +209 -0
  180. package/dist/features/admin/components/AdminGuideHubView.js +1 -1
  181. package/dist/features/admin/components/AdminMoneyCasesView.d.ts +60 -0
  182. package/dist/features/admin/components/AdminMoneyCasesView.js +287 -0
  183. package/dist/features/admin/components/AdminPartsView.js +2 -2
  184. package/dist/features/admin/components/AdminProductsView.js +75 -4
  185. package/dist/features/admin/components/AdminSidebar.js +2 -2
  186. package/dist/features/admin/components/AdminSiteSettingsView.js +65 -7
  187. package/dist/features/admin/components/AdminSublistingCategoriesView.js +2 -0
  188. package/dist/features/admin/components/AdminSupportTicketDetailView.js +1 -1
  189. package/dist/features/admin/components/AdminSupportTicketsView.js +2 -2
  190. package/dist/features/admin/components/AdminTesterChecklistView.js +2 -2
  191. package/dist/features/admin/components/AdminUsersView.js +72 -1
  192. package/dist/features/admin/components/AdminViewCards.d.ts +3 -1
  193. package/dist/features/admin/components/AdminViewCards.js +4 -4
  194. package/dist/features/admin/components/DataListingView.d.ts +28 -0
  195. package/dist/features/admin/components/DataListingView.js +175 -14
  196. package/dist/features/admin/components/DataTable.d.ts +12 -1
  197. package/dist/features/admin/components/DataTable.js +3 -3
  198. package/dist/features/admin/components/OwnerQuickActions.d.ts +1 -1
  199. package/dist/features/admin/components/OwnerQuickActions.js +60 -2
  200. package/dist/features/admin/components/RecordOwnerQuickActions.d.ts +1 -1
  201. package/dist/features/admin/components/RecordOwnerQuickActions.js +61 -14
  202. package/dist/features/admin/components/analytics/AdminStatCard.d.ts +35 -1
  203. package/dist/features/admin/components/analytics/AdminStatCard.js +77 -2
  204. package/dist/features/admin/components/index.d.ts +4 -0
  205. package/dist/features/admin/components/index.js +6 -0
  206. package/dist/features/admin/constants/filter-tabs.d.ts +156 -0
  207. package/dist/features/admin/constants/filter-tabs.js +106 -0
  208. package/dist/features/admin/repository/site-settings.repository.d.ts +22 -0
  209. package/dist/features/admin/repository/site-settings.repository.js +82 -1
  210. package/dist/features/admin/schemas/admin-editor-forms.d.ts +21 -0
  211. package/dist/features/admin/schemas/admin-editor-forms.js +44 -0
  212. package/dist/features/admin/schemas/firestore.js +5 -1
  213. package/dist/features/admin/schemas/site-settings-form.js +30 -1
  214. package/dist/features/auctions/actions/bid-actions.js +13 -1
  215. package/dist/features/auctions/components/AuctionBottomActions.js +2 -2
  216. package/dist/features/auctions/components/AuctionDetailPageView.js +3 -1
  217. package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +11 -0
  218. package/dist/features/auctions/components/MarketplaceAuctionCard.js +5 -3
  219. package/dist/features/auctions/components/PlaceBidFormClient.d.ts +8 -1
  220. package/dist/features/auctions/components/PlaceBidFormClient.js +2 -2
  221. package/dist/features/audit-log/schemas/firestore.d.ts +28 -0
  222. package/dist/features/audit-log/schemas/firestore.js +14 -0
  223. package/dist/features/auth/permissions/constants.d.ts +17 -1
  224. package/dist/features/auth/permissions/constants.js +18 -0
  225. package/dist/features/blog/components/BlogPostView.js +1 -1
  226. package/dist/features/catalogue/components/AdminCatalogueApprovalsView.js +1 -1
  227. package/dist/features/categories/api/[id]/description-template/route.js +107 -1
  228. package/dist/features/categories/components/BrandDetailPageView.js +2 -2
  229. package/dist/features/categories/components/BreadcrumbTrail.js +7 -1
  230. package/dist/features/categories/components/BundleDetailView.js +1 -1
  231. package/dist/features/categories/components/CategoryDetailPageView.js +2 -2
  232. package/dist/features/categories/components/CategoryForm.js +12 -1
  233. package/dist/features/categories/components/CategoryTemplatePicker.js +38 -5
  234. package/dist/features/categories/repository/market-price-index.repository.d.ts +123 -0
  235. package/dist/features/categories/repository/market-price-index.repository.js +105 -0
  236. package/dist/features/categories/repository/price-observation.repository.d.ts +166 -0
  237. package/dist/features/categories/repository/price-observation.repository.js +132 -0
  238. package/dist/features/events/components/EventSaleBanner.js +1 -1
  239. package/dist/features/events/components/EventStatusBadge.js +1 -1
  240. package/dist/features/faq/components/FAQAccordion.js +2 -1
  241. package/dist/features/faq/components/FAQCategorySidebar.js +2 -2
  242. package/dist/features/faq/components/FAQHelpfulButtons.js +4 -4
  243. package/dist/features/faq/components/RelatedFAQs.js +1 -1
  244. package/dist/features/filters/FilterFacetSection.js +1 -1
  245. package/dist/features/filters/SwitchFilter.js +1 -1
  246. package/dist/features/gateway-events/repository/gateway-events.repository.d.ts +117 -0
  247. package/dist/features/gateway-events/repository/gateway-events.repository.js +274 -0
  248. package/dist/features/gateway-events/schemas/firestore.d.ts +217 -0
  249. package/dist/features/gateway-events/schemas/firestore.js +125 -0
  250. package/dist/features/gateway-events/schemas/index.d.ts +81 -0
  251. package/dist/features/gateway-events/schemas/index.js +79 -0
  252. package/dist/features/grouped/components/GroupedListingDetailView.js +1 -1
  253. package/dist/features/homepage/components/AnnouncementBar.js +37 -1
  254. package/dist/features/homepage/components/AnnouncementBar.style.css +30 -0
  255. package/dist/features/homepage/components/BrandsSection.js +1 -1
  256. package/dist/features/homepage/components/CTABannerSection.js +1 -1
  257. package/dist/features/homepage/components/FeaturedBundlesSection.js +14 -24
  258. package/dist/features/homepage/components/HeroCarousel.js +2 -2
  259. package/dist/features/homepage/components/SocialPostCard.js +1 -1
  260. package/dist/features/inventory/components/AdminMoveLedgerView.d.ts +7 -0
  261. package/dist/features/inventory/components/AdminMoveLedgerView.js +157 -0
  262. package/dist/features/inventory/components/AdminStorageBoxesView.d.ts +11 -0
  263. package/dist/features/inventory/components/AdminStorageBoxesView.js +168 -0
  264. package/dist/features/inventory/components/ReceiveStationView.d.ts +39 -0
  265. package/dist/features/inventory/components/ReceiveStationView.js +413 -0
  266. package/dist/features/inventory/components/operator-message.d.ts +29 -0
  267. package/dist/features/inventory/components/operator-message.js +41 -0
  268. package/dist/features/inventory/index.d.ts +13 -0
  269. package/dist/features/inventory/index.js +28 -0
  270. package/dist/features/inventory/repository/inventory-movements.repository.d.ts +97 -0
  271. package/dist/features/inventory/repository/inventory-movements.repository.js +186 -0
  272. package/dist/features/inventory/repository/inventory-placements.repository.d.ts +179 -0
  273. package/dist/features/inventory/repository/inventory-placements.repository.js +345 -0
  274. package/dist/features/inventory/repository/storage-boxes.repository.d.ts +83 -0
  275. package/dist/features/inventory/repository/storage-boxes.repository.js +127 -0
  276. package/dist/features/inventory/schemas/firestore.d.ts +197 -0
  277. package/dist/features/inventory/schemas/firestore.js +159 -0
  278. package/dist/features/layout/AppLayoutShell.d.ts +12 -1
  279. package/dist/features/layout/AppLayoutShell.js +25 -12
  280. package/dist/features/layout/AutoBreadcrumbs.js +162 -3
  281. package/dist/features/layout/AutoBreadcrumbs.style.css +45 -0
  282. package/dist/features/layout/BottomNavbar.d.ts +1 -1
  283. package/dist/features/layout/BottomNavbar.js +2 -2
  284. package/dist/features/media/MediaAvatar.js +1 -1
  285. package/dist/features/media/MediaImage.d.ts +24 -4
  286. package/dist/features/media/MediaImage.js +44 -4
  287. package/dist/features/media/MediaLightbox.js +1 -1
  288. package/dist/features/media/modals/ImageCropModal.js +1 -1
  289. package/dist/features/media/modals/ImageEditor.js +1 -1
  290. package/dist/features/media/upload/MediaUploadField.js +91 -3
  291. package/dist/features/obligations/constants/policies.d.ts +92 -0
  292. package/dist/features/obligations/constants/policies.js +378 -0
  293. package/dist/features/obligations/repository/obligations.repository.d.ts +68 -0
  294. package/dist/features/obligations/repository/obligations.repository.js +158 -0
  295. package/dist/features/obligations/schemas/firestore.d.ts +160 -0
  296. package/dist/features/obligations/schemas/firestore.js +87 -0
  297. package/dist/features/orders/actions/order-actions.d.ts +43 -4
  298. package/dist/features/orders/actions/order-actions.js +60 -3
  299. package/dist/features/orders/actions/refund-actions.js +70 -10
  300. package/dist/features/orders/components/OrderCompletionPanel.d.ts +27 -0
  301. package/dist/features/orders/components/OrderCompletionPanel.js +192 -0
  302. package/dist/features/orders/components/OrdersList.js +2 -2
  303. package/dist/features/orders/components/RefundHistoryTable.js +3 -1
  304. package/dist/features/orders/components/index.d.ts +2 -0
  305. package/dist/features/orders/components/index.js +6 -0
  306. package/dist/features/orders/constants/transitions.d.ts +59 -0
  307. package/dist/features/orders/constants/transitions.js +104 -0
  308. package/dist/features/orders/repository/orders.repository.d.ts +109 -6
  309. package/dist/features/orders/repository/orders.repository.js +464 -21
  310. package/dist/features/orders/schemas/firestore.d.ts +270 -0
  311. package/dist/features/orders/schemas/firestore.js +24 -0
  312. package/dist/features/orders/schemas/index.d.ts +61 -0
  313. package/dist/features/orders/schemas/index.js +22 -0
  314. package/dist/features/orders/types/index.d.ts +79 -0
  315. package/dist/features/parts/components/PartsIndexPageView.js +8 -1
  316. package/dist/features/payment-cases/repository/payment-cases.repository.d.ts +170 -0
  317. package/dist/features/payment-cases/repository/payment-cases.repository.js +342 -0
  318. package/dist/features/payment-cases/schemas/firestore.d.ts +229 -0
  319. package/dist/features/payment-cases/schemas/firestore.js +105 -0
  320. package/dist/features/payment-cases/schemas/resolve-form.d.ts +97 -0
  321. package/dist/features/payment-cases/schemas/resolve-form.js +114 -0
  322. package/dist/features/payments/repository/payout.repository.d.ts +0 -1
  323. package/dist/features/payments/repository/payout.repository.js +0 -1
  324. package/dist/features/points/repository/points.repository.d.ts +122 -0
  325. package/dist/features/points/repository/points.repository.js +304 -1
  326. package/dist/features/points/schemas/adjust-form.d.ts +58 -0
  327. package/dist/features/points/schemas/adjust-form.js +63 -0
  328. package/dist/features/points/schemas/firestore.d.ts +108 -1
  329. package/dist/features/points/schemas/firestore.js +84 -0
  330. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +3 -3
  331. package/dist/features/pre-orders/components/PreOrderBadge.js +1 -1
  332. package/dist/features/pre-orders/components/PreOrderDetailPageView.js +1 -1
  333. package/dist/features/price-index/components/PriceIndexToolView.d.ts +23 -4
  334. package/dist/features/price-index/components/PriceIndexToolView.js +71 -6
  335. package/dist/features/price-index/market-stats.d.ts +82 -0
  336. package/dist/features/price-index/market-stats.js +230 -0
  337. package/dist/features/print/components/BoxLabelPrintView.d.ts +25 -0
  338. package/dist/features/print/components/BoxLabelPrintView.js +66 -0
  339. package/dist/features/print/components/LabelProfilePicker.d.ts +13 -0
  340. package/dist/features/print/components/LabelProfilePicker.js +38 -0
  341. package/dist/features/print/components/labels.d.ts +117 -0
  342. package/dist/features/print/components/labels.js +258 -0
  343. package/dist/features/print/components/labels.style.css +46 -0
  344. package/dist/features/print/index.d.ts +6 -0
  345. package/dist/features/print/index.js +16 -0
  346. package/dist/features/products/columns/productTableColumns.js +5 -4
  347. package/dist/features/products/components/MarketplaceBundleCard.js +2 -2
  348. package/dist/features/products/components/MarketplacePrizeDrawCard.js +6 -6
  349. package/dist/features/products/components/PrizeDrawCollage.js +1 -1
  350. package/dist/features/products/components/PrizeDrawItemsEditor.js +1 -1
  351. package/dist/features/products/components/PrizeRevealModal.js +2 -2
  352. package/dist/features/products/components/ProductDetailPageView.js +18 -4
  353. package/dist/features/products/components/ProductForm.js +34 -23
  354. package/dist/features/products/components/ProductGrid.js +86 -62
  355. package/dist/features/products/constants/card-badges.d.ts +97 -0
  356. package/dist/features/products/constants/card-badges.js +100 -0
  357. package/dist/features/products/repository/products.repository.js +34 -1
  358. package/dist/features/products/schemas/firestore.d.ts +46 -3
  359. package/dist/features/products/schemas/firestore.js +21 -0
  360. package/dist/features/promotions/components/PromotionsView.js +1 -1
  361. package/dist/features/promotions/repository/claimed-coupons.repository.d.ts +32 -0
  362. package/dist/features/promotions/repository/claimed-coupons.repository.js +58 -0
  363. package/dist/features/promotions/schemas/firestore.js +30 -3
  364. package/dist/features/promotions/schemas/index.d.ts +6 -6
  365. package/dist/features/protection-claims/repository/protection-claims.repository.d.ts +54 -0
  366. package/dist/features/protection-claims/repository/protection-claims.repository.js +174 -0
  367. package/dist/features/protection-claims/schemas/firestore.d.ts +168 -0
  368. package/dist/features/protection-claims/schemas/firestore.js +130 -0
  369. package/dist/features/reviews/actions/review-actions.js +3 -2
  370. package/dist/features/reviews/components/ReviewModal.js +1 -1
  371. package/dist/features/reviews/components/ReviewsList.js +1 -1
  372. package/dist/features/reviews/schemas/firestore.d.ts +20 -1
  373. package/dist/features/scams/constants/scam-types.d.ts +2 -0
  374. package/dist/features/scams/constants/scam-types.js +18 -0
  375. package/dist/features/scams/schemas/report-form.d.ts +3 -3
  376. package/dist/features/scams/schemas/report-form.js +26 -1
  377. package/dist/features/search/components/Search.js +9 -9
  378. package/dist/features/search/components/SearchResultsClient.js +18 -3
  379. package/dist/features/search/components/SearchResultsPageView.d.ts +1 -6
  380. package/dist/features/search/components/SearchResultsPageView.js +2 -2
  381. package/dist/features/seller/actions/offer-actions.js +16 -1
  382. package/dist/features/seller/actions/seller-actions.js +14 -3
  383. package/dist/features/seller/components/CategoryInlineSelect.js +75 -11
  384. package/dist/features/seller/components/PrintCenterView.d.ts +5 -0
  385. package/dist/features/seller/components/PrintCenterView.js +41 -30
  386. package/dist/features/seller/components/SellerOrdersView.js +1 -1
  387. package/dist/features/seller/components/SellerPayoutRequestView.js +16 -5
  388. package/dist/features/seller/components/SellerPayoutSettingsView.js +1 -1
  389. package/dist/features/seller/components/SellerProductShell.d.ts +16 -0
  390. package/dist/features/seller/components/SellerProductShell.js +123 -13
  391. package/dist/features/seller/components/SellerReviewsView.js +4 -2
  392. package/dist/features/seller/components/SellerSidebar.js +1 -1
  393. package/dist/features/seller/schemas/coupon-form.d.ts +26 -0
  394. package/dist/features/seller/schemas/coupon-form.js +27 -0
  395. package/dist/features/seller/schemas/product-form.d.ts +3 -0
  396. package/dist/features/seller/schemas/product-form.js +5 -0
  397. package/dist/features/shell/FormShell.js +2 -2
  398. package/dist/features/shell/QuickFormDrawer.js +14 -0
  399. package/dist/features/shell/SectionForm.d.ts +19 -0
  400. package/dist/features/shell/SectionForm.js +133 -9
  401. package/dist/features/shell/SectionForm.style.css +54 -0
  402. package/dist/features/shipments/components/AdminShipmentsView.js +16 -1
  403. package/dist/features/shipments/repository/shipment-items.repository.d.ts +9 -0
  404. package/dist/features/shipments/repository/shipment-items.repository.js +14 -0
  405. package/dist/features/site-settings/components/ActionPermissionsManager.js +1 -1
  406. package/dist/features/sticker-trace/components/StickerCommitPanel.js +1 -1
  407. package/dist/features/store-extensions/schemas/report-review-form.d.ts +8 -8
  408. package/dist/features/stores/components/StoreGuideHubView.js +1 -1
  409. package/dist/features/stores/components/StoreHeader.js +1 -1
  410. package/dist/features/support/schemas/firestore.d.ts +73 -2
  411. package/dist/features/support/schemas/firestore.js +59 -0
  412. package/dist/index.d.ts +16 -24
  413. package/dist/index.js +38 -47
  414. package/dist/next/ErrorBoundary.js +1 -1
  415. package/dist/next/routing/route-map.d.ts +24 -0
  416. package/dist/next/routing/route-map.js +40 -0
  417. package/dist/providers/payment-manual/index.d.ts +15 -1
  418. package/dist/providers/payment-manual/index.js +37 -0
  419. package/dist/providers/payment-phonepe/index.d.ts +14 -1
  420. package/dist/providers/payment-phonepe/index.js +36 -0
  421. package/dist/providers/payment-razorpay/index.d.ts +44 -1
  422. package/dist/providers/payment-razorpay/index.js +99 -0
  423. package/dist/providers/shipping-shiprocket/index.d.ts +18 -0
  424. package/dist/providers/shipping-shiprocket/index.js +18 -0
  425. package/dist/schemas/registry.d.ts +44 -11
  426. package/dist/server-entry.d.ts +2 -0
  427. package/dist/server-entry.js +27 -0
  428. package/dist/server.d.ts +42 -0
  429. package/dist/server.js +93 -0
  430. package/dist/styles.css +418 -149
  431. package/dist/tailwind-utilities.css +1 -1
  432. package/dist/tokens/themes/default-dark.js +15 -12
  433. package/dist/tokens/themes/default-light.js +14 -11
  434. package/dist/tokens/tokens.css +106 -23
  435. package/dist/ui/DataTable.style.css +4 -4
  436. package/dist/ui/columns/cell-renderers.d.ts +20 -0
  437. package/dist/ui/columns/cell-renderers.js +26 -1
  438. package/dist/ui/columns/index.d.ts +1 -1
  439. package/dist/ui/columns/index.js +4 -1
  440. package/dist/ui/components/Badge.style.css +1 -1
  441. package/dist/ui/components/Breadcrumb.js +19 -1
  442. package/dist/ui/components/BulkActionBar.style.css +4 -4
  443. package/dist/ui/components/Button.style.css +1 -1
  444. package/dist/ui/components/Checkbox.style.css +1 -1
  445. package/dist/ui/components/FallbackShell.js +1 -1
  446. package/dist/ui/components/Form.d.ts +14 -1
  447. package/dist/ui/components/Form.js +2 -2
  448. package/dist/ui/components/FormField.js +18 -4
  449. package/dist/ui/components/FormField.style.css +43 -3
  450. package/dist/ui/components/GatedPrice.style.css +1 -1
  451. package/dist/ui/components/IconButton.style.css +1 -1
  452. package/dist/ui/components/Input.js +22 -1
  453. package/dist/ui/components/Input.style.css +38 -22
  454. package/dist/ui/components/ListingFilterDrawer.js +1 -1
  455. package/dist/ui/components/ListingToolbar.js +1 -1
  456. package/dist/ui/components/PaginatedSelect.js +0 -0
  457. package/dist/ui/components/Radio.style.css +1 -1
  458. package/dist/ui/components/Repeater.d.ts +53 -0
  459. package/dist/ui/components/Repeater.js +7 -0
  460. package/dist/ui/components/RichTextEditor.d.ts +20 -1
  461. package/dist/ui/components/RichTextEditor.js +23 -2
  462. package/dist/ui/components/Select.style.css +7 -21
  463. package/dist/ui/components/Semantic.js +27 -3
  464. package/dist/ui/components/TagInput.style.css +4 -9
  465. package/dist/ui/components/Textarea.style.css +4 -18
  466. package/dist/ui/components/Toggle.style.css +1 -1
  467. package/dist/ui/components/Typography.d.ts +3 -3
  468. package/dist/ui/components/Typography.js +15 -15
  469. package/dist/ui/components/ViewToggle.style.css +4 -4
  470. package/dist/ui/forms/AddAnotherToggle.d.ts +16 -0
  471. package/dist/ui/forms/AddAnotherToggle.js +56 -0
  472. package/dist/ui/forms/ColorPickerField.js +15 -2
  473. package/dist/ui/forms/FieldCheckbox.js +15 -2
  474. package/dist/ui/forms/FieldInput.d.ts +22 -1
  475. package/dist/ui/forms/FieldInput.js +19 -5
  476. package/dist/ui/forms/FieldLabel.d.ts +35 -0
  477. package/dist/ui/forms/FieldLabel.js +70 -0
  478. package/dist/ui/forms/FieldSelect.d.ts +4 -1
  479. package/dist/ui/forms/FieldSelect.js +27 -5
  480. package/dist/ui/forms/FieldTextarea.d.ts +4 -1
  481. package/dist/ui/forms/FieldTextarea.js +22 -5
  482. package/dist/ui/forms/FormShell.d.ts +17 -1
  483. package/dist/ui/forms/FormShell.js +36 -2
  484. package/dist/ui/forms/FormShell.style.css +41 -33
  485. package/dist/ui/forms/index.d.ts +5 -1
  486. package/dist/ui/forms/index.js +2 -0
  487. package/dist/ui/icons/icon-registry.d.ts +1 -0
  488. package/dist/ui/icons/icon-registry.js +17 -1
  489. package/dist/utils/id-generators.d.ts +80 -0
  490. package/dist/utils/id-generators.js +93 -0
  491. package/dist/utils/search-txt-builders.d.ts +12 -0
  492. package/dist/utils/search-txt-builders.js +17 -0
  493. package/package.json +1 -1
  494. package/scripts/seed-cli.mjs +106 -5
  495. package/dist/features/loyalty/api/admin/loyalty/grant/route.d.ts +0 -12
  496. package/dist/features/loyalty/api/admin/loyalty/grant/route.js +0 -38
  497. package/dist/features/loyalty/api/balance/route.d.ts +0 -12
  498. package/dist/features/loyalty/api/balance/route.js +0 -41
  499. package/dist/features/loyalty/api/earn/route.d.ts +0 -12
  500. package/dist/features/loyalty/api/earn/route.js +0 -38
  501. package/dist/features/loyalty/api/history/route.d.ts +0 -12
  502. package/dist/features/loyalty/api/history/route.js +0 -58
  503. package/dist/features/loyalty/api/redeem/route.d.ts +0 -12
  504. package/dist/features/loyalty/api/redeem/route.js +0 -38
  505. package/dist/features/loyalty/columns/index.d.ts +0 -17
  506. package/dist/features/loyalty/columns/index.js +0 -40
  507. package/dist/features/loyalty/components/CoinsDisplay.d.ts +0 -12
  508. package/dist/features/loyalty/components/CoinsDisplay.js +0 -10
  509. package/dist/features/loyalty/components/index.d.ts +0 -1
  510. package/dist/features/loyalty/components/index.js +0 -1
  511. package/dist/features/loyalty/hooks/useLoyaltyBalance.d.ts +0 -4
  512. package/dist/features/loyalty/hooks/useLoyaltyBalance.js +0 -25
  513. package/dist/features/loyalty/index.d.ts +0 -6
  514. package/dist/features/loyalty/index.js +0 -6
  515. package/dist/features/loyalty/manifest.d.ts +0 -2
  516. package/dist/features/loyalty/manifest.js +0 -16
  517. package/dist/features/loyalty/messages/en.json +0 -19
  518. package/dist/features/loyalty/repository/loyalty.repository.d.ts +0 -8
  519. package/dist/features/loyalty/repository/loyalty.repository.js +0 -22
  520. package/dist/features/loyalty/schemas/index.d.ts +0 -85
  521. package/dist/features/loyalty/schemas/index.js +0 -40
  522. package/dist/features/loyalty/server.d.ts +0 -6
  523. package/dist/features/loyalty/server.js +0 -6
  524. package/dist/features/loyalty/types/index.d.ts +0 -31
  525. package/dist/features/loyalty/types/index.js +0 -1
  526. package/dist/features/loyalty/types/loyalty-config.d.ts +0 -7
  527. package/dist/features/loyalty/types/loyalty-config.js +0 -1
  528. package/dist/features/loyalty/types/loyalty-math.d.ts +0 -9
  529. package/dist/features/loyalty/types/loyalty-math.js +0 -27
  530. package/dist/features/products/components/ProductOwnerQuickActions.d.ts +0 -11
  531. package/dist/features/products/components/ProductOwnerQuickActions.js +0 -120
package/dist/index.d.ts CHANGED
@@ -932,6 +932,10 @@ export { AdminPageHeader } from "./features/admin/index";
932
932
  export { AdminPayoutsView } from "./features/admin/index";
933
933
  export { AdminAuditLogView } from "./features/admin/index";
934
934
  export type { AdminAuditLogViewProps } from "./features/admin/index";
935
+ export { AdminMoneyCasesView } from "./features/admin/index";
936
+ export type { AdminMoneyCasesViewProps } from "./features/admin/index";
937
+ export { AdminGatewayEventsView } from "./features/admin/index";
938
+ export type { AdminGatewayEventsViewProps } from "./features/admin/index";
935
939
  export { ViewAuditLogEntryModal } from "./features/admin/index";
936
940
  export type { AuditLogEntryDetail, ViewAuditLogEntryModalProps } from "./features/admin/index";
937
941
  export { AdminPrizeDrawsView } from "./features/admin/index";
@@ -1889,27 +1893,6 @@ export type { TitleBarLayoutProps } from "./features/layout/index";
1889
1893
  export type { TitleBarProps } from "./features/layout/index";
1890
1894
  export type { TitleBarUser } from "./features/layout/index";
1891
1895
  export type { UseBottomActionsOptions } from "./features/layout/index";
1892
- export { CoinsBadge } from "./features/loyalty/index";
1893
- export { CoinsDisplay } from "./features/loyalty/index";
1894
- export { applyCoinsToOrder } from "./features/loyalty/index";
1895
- export { buildLoyaltyColumns } from "./features/loyalty/index";
1896
- export { calculateCoinsEarned } from "./features/loyalty/index";
1897
- export { calculateMaxRedeemable } from "./features/loyalty/index";
1898
- export { coinHistoryEntrySchema } from "./features/loyalty/index";
1899
- export { coinReasonSchema } from "./features/loyalty/index";
1900
- export { coinsToRupees } from "./features/loyalty/index";
1901
- export { loyaltyAdminColumns } from "./features/loyalty/index";
1902
- export { loyaltyBalanceSchema } from "./features/loyalty/index";
1903
- export { loyaltyConfigSchema } from "./features/loyalty/index";
1904
- export { useLoyaltyBalance } from "./features/loyalty/index";
1905
- export type { CoinHistoryEntry } from "./features/loyalty/index";
1906
- export type { CoinReason } from "./features/loyalty/index";
1907
- export type { EarnCoinsInput } from "./features/loyalty/index";
1908
- export type { LoyaltyBalance } from "./features/loyalty/index";
1909
- export type { LoyaltyConfig } from "./features/loyalty/index";
1910
- export type { RedeemCoinsInput } from "./features/loyalty/index";
1911
- export type { RedeemCoinsResult } from "./features/loyalty/index";
1912
- export { LoyaltyRepository } from "./features/loyalty/server";
1913
1896
  export { AvatarUpload } from "./features/media/index";
1914
1897
  export { CameraCapture } from "./features/media/index";
1915
1898
  export { ImageCropModal } from "./features/media/index";
@@ -1975,11 +1958,13 @@ export type { OrderSiblingPaymentsProps } from "./features/orders/index";
1975
1958
  export { OrderPaymentSummary } from "./features/orders/index";
1976
1959
  export type { OrderPaymentSummaryProps } from "./features/orders/index";
1977
1960
  export { OrderStatusTimeline } from "./features/orders/index";
1961
+ export { OrderCompletionPanel } from "./features/orders/index";
1978
1962
  export { StatusTimeline, stepsFromEntries } from "./features/status-history/index";
1979
1963
  export type { StatusTimelineProps, TimelineEntry, TimelineStep } from "./features/status-history/index";
1980
1964
  export { OfferPhaseTimeline } from "./features/seller/components/OfferPhaseTimeline";
1981
1965
  export type { OfferPhaseTimelineProps, OfferChainRound } from "./features/seller/components/OfferPhaseTimeline";
1982
1966
  export type { OrderStatusTimelineProps } from "./features/orders/index";
1967
+ export type { OrderCompletionPanelProps, RateableLine } from "./features/orders/index";
1983
1968
  export type { OrderPaymentRecord, OrderPaymentRecordMethod, OrderPaymentVerificationMethod, } from "./features/orders/index";
1984
1969
  export { RefundHistoryTable } from "./features/orders/index";
1985
1970
  export type { RefundHistoryTableProps } from "./features/orders/index";
@@ -2014,6 +1999,13 @@ export type { OrderDocument } from "./features/orders/index";
2014
1999
  export type { OrderRefundEvent, RefundType } from "./features/orders/schemas/firestore";
2015
2000
  export { MANUAL_PAYMENT_METHODS, isManualPaymentMethod, PAYMENT_REVIEW_QUEUE_MODES, isPaymentReviewQueueMode, PAYMENT_REVIEW_QUEUE_SCAN_LIMIT, } from "./features/orders/constants/payment-window";
2016
2001
  export type { PaymentReviewQueueMode } from "./features/orders/constants/payment-window";
2002
+ export { ORDER_STATUS_TRANSITIONS, ORDER_TERMINAL_STATUSES, isLegalOrderTransition, describeIllegalTransition, } from "./features/orders/constants/transitions";
2003
+ export { OBLIGATION_POLICIES, durationToMinutes, } from "./features/obligations/constants/policies";
2004
+ export type { ObligationPolicy, Duration, DurationUnit, } from "./features/obligations/constants/policies";
2005
+ export { OBLIGATIONS_COLLECTION, OBLIGATION_FIELDS, ALL_OBLIGATION_KINDS, createObligationId, } from "./features/obligations/schemas/firestore";
2006
+ export type { ObligationDocument, ObligationKind, ObligationState, ObligationDueAction, } from "./features/obligations/schemas/firestore";
2007
+ export { deadlinesFor, resolveDueAt, reconcileObligations, } from "./_internal/shared/obligations/deadlines";
2008
+ export type { ResolvedDeadline } from "./_internal/shared/obligations/deadlines";
2017
2009
  export { ORDER_SCOPE_VALUES, ORDER_SCOPE_TABS, isOrderScope, statusesForScope, mergeOrderScopeFilter, } from "./features/orders/constants/order-scope";
2018
2010
  export type { OrderScope } from "./features/orders/constants/order-scope";
2019
2011
  export type { OrderDocumentItem } from "./features/orders/index";
@@ -2790,7 +2782,7 @@ export { Ol } from "./ui/index";
2790
2782
  export { LoginRequiredModal } from "./ui/components/LoginRequiredModal";
2791
2783
  export type { LoginRequiredModalProps } from "./ui/components/LoginRequiredModal";
2792
2784
  export { isAuthError } from "./utils/auth-error";
2793
- export { API_ENDPOINTS, API_ROUTES, LOGS_ENDPOINTS, AUTH_ENDPOINTS, ACCOUNT_ENDPOINTS, NOTIFICATIONS_ENDPOINTS, ADMIN_ENDPOINTS, AUCTION_ENDPOINTS, BID_ENDPOINTS, CART_ENDPOINTS, CATEGORY_ENDPOINTS, CHECKOUT_ENDPOINTS, FAQ_ENDPOINTS, HOMEPAGE_ENDPOINTS, LOYALTY_ENDPOINTS, ANALYTICS_ENDPOINTS, MEDIA_ENDPOINTS, ORDER_ENDPOINTS, PREORDER_ENDPOINTS, PRODUCT_ENDPOINTS, REVIEW_ENDPOINTS, SEARCH_ENDPOINTS, SELLER_ENDPOINTS, BLOG_ENDPOINTS, WISHLIST_ENDPOINTS, COLLECTION_CACHE_PATHS, resolveEndpoint, resolveEndpointFn, ROUTES, PUBLIC_ROUTES, PROTECTED_ROUTES, AUTH_ROUTES, WISHLIST_MAX, HISTORY_MAX, CART_MAX_ITEMS, WISHLIST_DOC_ID, HISTORY_DOC_ID, WISHLIST_COLLECTION, HISTORY_COLLECTION, } from "./constants/index";
2785
+ export { API_ENDPOINTS, API_ROUTES, LOGS_ENDPOINTS, AUTH_ENDPOINTS, ACCOUNT_ENDPOINTS, NOTIFICATIONS_ENDPOINTS, ADMIN_ENDPOINTS, AUCTION_ENDPOINTS, BID_ENDPOINTS, CART_ENDPOINTS, CATEGORY_ENDPOINTS, CHECKOUT_ENDPOINTS, FAQ_ENDPOINTS, HOMEPAGE_ENDPOINTS, ANALYTICS_ENDPOINTS, MEDIA_ENDPOINTS, ORDER_ENDPOINTS, PREORDER_ENDPOINTS, PRODUCT_ENDPOINTS, REVIEW_ENDPOINTS, SEARCH_ENDPOINTS, SELLER_ENDPOINTS, BLOG_ENDPOINTS, WISHLIST_ENDPOINTS, COLLECTION_CACHE_PATHS, resolveEndpoint, resolveEndpointFn, ROUTES, PUBLIC_ROUTES, PROTECTED_ROUTES, AUTH_ROUTES, WISHLIST_MAX, HISTORY_MAX, CART_MAX_ITEMS, WISHLIST_DOC_ID, HISTORY_DOC_ID, WISHLIST_COLLECTION, HISTORY_COLLECTION, } from "./constants/index";
2794
2786
  export { WishlistFullError } from "./features/wishlist/server";
2795
2787
  export { useHistory, useHistoryMergeOnLogin, getGuestHistory, trackGuestHistory, removeGuestHistoryItem, clearGuestHistory, getGuestHistoryCount, type GuestHistoryItem, type GuestHistoryType, type UserHistoryItem, type HistoryProductType, type HistoryItemSnapshot, type TrackArgs as TrackHistoryArgs, } from "./features/history";
2796
2788
  export { historyRepository, UserHistoryRepository, trackHistoryView, getHistoryForUser, removeHistoryItem, clearHistory, mergeGuestHistory, } from "./features/history/server";
@@ -2874,7 +2866,7 @@ export type { AssemblyDrawerProps, AssemblyPartOption, AssemblyRow, AssemblyOutc
2874
2866
  export type { PartListingRow } from "./features/parts/components/PartDetailPageView";
2875
2867
  export { SCAMMER_COLLECTION, SCAMMER_ID_PREFIX, SCAMMER_MATCH_FIELDS, SCAMMER_INDEXED_FIELDS, SCAMMER_FIELDS, SCAMMER_INCIDENTS_SUBCOLLECTION, SCAMMER_COMMENTS_SUBCOLLECTION, SCAMMER_CONTESTS_SUBCOLLECTION, MAX_COMMENT_BODY_LENGTH, MAX_PENDING_SCAMMER_REPORTS_PER_USER, ScammerStatusValues, ScamPlatformValues, SocialPlatformValues, ContestTypeValues, ContestStatusValues, SCAM_PLATFORM_LABELS, SOCIAL_PLATFORM_LABELS, SCAMMER_STATUS_LABELS, CONTEST_TYPE_LABELS, CONTEST_STATUS_LABELS, DEFAULT_SCAMMER_DATA, DEFAULT_SCAMMER_INCIDENT_DATA, DEFAULT_SCAMMER_COMMENT_DATA, DEFAULT_SCAMMER_CONTEST_DATA, } from "./features/scams/schemas/firestore";
2876
2868
  export type { ScammerStatus, ScamPlatform, SocialPlatform, ContestType, ContestStatus, ScammerMatchField, ScammerMatchStrength, ScammerSocialMedia, ScammerDocument, ScammerIncidentDocument, ScammerCommentDocument, ScammerContestDocument, ScammerSuggestion, ScammerCreateInput, ScammerAdminUpdateInput, ScammerIncidentCreateInput, ScammerCommentCreateInput, ScammerContestCreateInput, } from "./features/scams/schemas/firestore";
2877
- export { SCAM_TYPES, SCAM_CATEGORIES, SCAM_TYPE_LABELS, SCAM_CATEGORY_LABELS, getScamType, getScamTypesByCategory, getCategoryForScamType, } from "./features/scams/constants/scam-types";
2869
+ export { SCAM_TYPES, SCAM_CATEGORIES, SCAM_TYPE_LABELS, SCAM_CATEGORY_LABELS, getScamType, getScamTypesByCategory, getCategoryForScamType, isScamType, } from "./features/scams/constants/scam-types";
2878
2870
  export type { ScamType, ScamCategory, ScamTypeDefinition, ScamCategoryDefinition, } from "./features/scams/constants/scam-types";
2879
2871
  export { ScamRegistryView } from "./features/scams/components/ScamRegistryView";
2880
2872
  export type { ScamRegistryViewProps } from "./features/scams/components/ScamRegistryView";
@@ -2999,7 +2991,7 @@ export { safeFireAndForget } from "./utils/safe-fire-forget";
2999
2991
  export { withRetry } from "./http/retry";
3000
2992
  export { normalizeError, getErrorMessage, isApiNormalized, isAppNormalized, isFirebaseAuthNormalized, isFirebaseFirestoreNormalized, isFirebaseStorageNormalized, isNativeNormalized, isNetworkNormalized, isUnknownNormalized, isZodNormalized, } from "./errors/normalize";
3001
2993
  export type { NormalizedError, NormalizedApiError, NormalizedAppError, NormalizedFirebaseAuthError, NormalizedFirebaseFirestoreError, NormalizedFirebaseStorageError, NormalizedNativeError, NormalizedNetworkError, NormalizedUnknownThrownValue, NormalizedZodError, } from "./errors/normalize";
3002
- export { CART_LANE, CART_LANE_PRIORITY, CART_LANE_LABELS, laneOf, activeLane, laneItems, laneCounts, isLaneCheckoutable, laneBlockReason, isLockedLane, canAddNewItems, type CartLane, type LaneAssignable, } from "./_internal/shared/checkout/lanes";
2994
+ export { CART_LANE, CART_LANE_PRIORITY, CART_LANE_LABELS, laneOf, activeLane, laneItems, laneCounts, isLaneCheckoutable, laneBlockReason, isLockedLane, canAddNewItems, defaultCheckoutItems, resolveCheckoutItems, type CartLane, type LaneAssignable, } from "./_internal/shared/checkout/lanes";
3003
2995
  export { roundShippingUp, toQuoteOptions, reconcileShipping, SHIPPING_ROUND_UP_TO, type ShippingQuoteOption, type SelectedShippingQuote, type ActualShipmentCost, type ShippingReconciliation, } from "./_internal/shared/shipping/quote";
3004
2996
  export { newsletterSubscribeSchema, quickCreateTaxonomySchema, payoutMarkPaidSchema, } from "./features/admin/schemas/small-forms";
3005
2997
  export { raffleEntrySchema } from "./features/contact/schemas/inquiry-forms";
package/dist/index.js CHANGED
@@ -1865,6 +1865,10 @@ export { AdminPayoutsView } from "./features/admin/index.js";
1865
1865
  // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
1866
1866
  // AdminAuditLogView - Read-only admin action audit trail list view.
1867
1867
  export { AdminAuditLogView } from "./features/admin/index.js";
1868
+ // AdminMoneyCasesView - The payment-case operator queue (chargebacks, refunds owed, claims).
1869
+ export { AdminMoneyCasesView } from "./features/admin/index.js";
1870
+ // AdminGatewayEventsView - The webhook inbox, with reopen-for-redelivery.
1871
+ export { AdminGatewayEventsView } from "./features/admin/index.js";
1868
1872
  // ViewAuditLogEntryModal - Detail modal for one audit-log entry.
1869
1873
  export { ViewAuditLogEntryModal } from "./features/admin/index.js";
1870
1874
  // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
@@ -3567,50 +3571,6 @@ export { useBottomActionsContext } from "./features/layout/index.js";
3567
3571
  // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3568
3572
  // useDashboardNav - React hook for use dashboard nav.
3569
3573
  export { useDashboardNav } from "./features/layout/index.js";
3570
- // ./features/loyalty/index
3571
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3572
- // CoinsBadge - Component for coins badge.
3573
- export { CoinsBadge } from "./features/loyalty/index.js";
3574
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3575
- // CoinsDisplay - Shared export for coins display.
3576
- export { CoinsDisplay } from "./features/loyalty/index.js";
3577
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3578
- // applyCoinsToOrder - Helper for apply coins to order.
3579
- export { applyCoinsToOrder } from "./features/loyalty/index.js";
3580
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3581
- // buildLoyaltyColumns - Helper for build loyalty columns.
3582
- export { buildLoyaltyColumns } from "./features/loyalty/index.js";
3583
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3584
- // calculateCoinsEarned - Helper for calculate coins earned.
3585
- export { calculateCoinsEarned } from "./features/loyalty/index.js";
3586
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3587
- // calculateMaxRedeemable - Helper for calculate max redeemable.
3588
- export { calculateMaxRedeemable } from "./features/loyalty/index.js";
3589
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3590
- // coinHistoryEntrySchema - Model for coin history entry schema.
3591
- export { coinHistoryEntrySchema } from "./features/loyalty/index.js";
3592
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3593
- // coinReasonSchema - Model for coin reason schema.
3594
- export { coinReasonSchema } from "./features/loyalty/index.js";
3595
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3596
- // coinsToRupees - Shared export for coins to rupees.
3597
- export { coinsToRupees } from "./features/loyalty/index.js";
3598
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3599
- // loyaltyAdminColumns - Shared export for loyalty admin columns.
3600
- export { loyaltyAdminColumns } from "./features/loyalty/index.js";
3601
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3602
- // loyaltyBalanceSchema - Model for loyalty balance schema.
3603
- export { loyaltyBalanceSchema } from "./features/loyalty/index.js";
3604
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3605
- // loyaltyConfigSchema - Model for loyalty config schema.
3606
- export { loyaltyConfigSchema } from "./features/loyalty/index.js";
3607
- // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3608
- // useLoyaltyBalance - React hook for use loyalty balance.
3609
- export { useLoyaltyBalance } from "./features/loyalty/index.js";
3610
- // ./features/loyalty/server
3611
- // [DB]-Database layer â€" uses firebase-admin or another server-side DB SDK; can only run in a trusted server environment.
3612
- // LoyaltyRepository - Shared export for loyalty repository.
3613
- export { LoyaltyRepository } from "./features/loyalty/server.js";
3614
3574
  // ./features/media/index
3615
3575
  // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
3616
3576
  // AvatarUpload - Shared export for avatar upload.
@@ -3729,6 +3689,8 @@ export { OrdersList } from "./features/orders/index.js";
3729
3689
  export { OrderSiblingPayments } from "./features/orders/index.js";
3730
3690
  export { OrderPaymentSummary } from "./features/orders/index.js";
3731
3691
  export { OrderStatusTimeline } from "./features/orders/index.js";
3692
+ // OrderCompletionPanel - Per-line ratings + Mark complete, the buyer's fast path.
3693
+ export { OrderCompletionPanel } from "./features/orders/index.js";
3732
3694
  // [CLIENT] StatusTimeline — the ONE rail both orders and offers render.
3733
3695
  // Each feature supplies only its phase vocabulary; the never-fabricate-a-
3734
3696
  // timestamp rule and the dot/connector rail live in one place.
@@ -3797,6 +3759,27 @@ export { useTrackOrder } from "./features/orders/index.js";
3797
3759
  // queue discriminator. Pure data + predicates — no firebase-admin in the
3798
3760
  // import chain, so safe on the main barrel (see "appkit Export Rules").
3799
3761
  export { MANUAL_PAYMENT_METHODS, isManualPaymentMethod, PAYMENT_REVIEW_QUEUE_MODES, isPaymentReviewQueueMode, PAYMENT_REVIEW_QUEUE_SCAN_LIMIT, } from "./features/orders/constants/payment-window.js";
3762
+ /*
3763
+ * The order status machine. Safe in the MAIN barrel — `constants/transitions.ts`
3764
+ * imports only a type from `../types/index`, so its chain never reaches
3765
+ * `providers/db-firebase` and therefore never reaches `firebase-admin`
3766
+ * (Root Cause #6/#24). The guard that consumes it lives in the repository,
3767
+ * which stays server-only; these are the pure predicates a client surface can
3768
+ * legitimately use to decide which status buttons to render.
3769
+ */
3770
+ export { ORDER_STATUS_TRANSITIONS, ORDER_TERMINAL_STATUSES, isLegalOrderTransition, describeIllegalTransition, } from "./features/orders/constants/transitions.js";
3771
+ /*
3772
+ * Obligations — the PURE half only.
3773
+ *
3774
+ * `deadlinesFor(order)` is a pure function over the policy registry with no
3775
+ * reads and no writes, which is the entire reason deadlines are derived rather
3776
+ * than stored: a buyer or seller page renders "Dispatch by Thu 3 Nov" from an
3777
+ * order it already has. Safe in the main barrel because nothing here reaches
3778
+ * `providers/db-firebase` — the repository does, and stays in `server.ts`.
3779
+ */
3780
+ export { OBLIGATION_POLICIES, durationToMinutes, } from "./features/obligations/constants/policies.js";
3781
+ export { OBLIGATIONS_COLLECTION, OBLIGATION_FIELDS, ALL_OBLIGATION_KINDS, createObligationId, } from "./features/obligations/schemas/firestore.js";
3782
+ export { deadlinesFor, resolveDueAt, reconcileObligations, } from "./_internal/shared/obligations/deadlines.js";
3800
3783
  export { ORDER_SCOPE_VALUES, ORDER_SCOPE_TABS, isOrderScope, statusesForScope, mergeOrderScopeFilter, } from "./features/orders/constants/order-scope.js";
3801
3784
  // ./features/orders/server
3802
3785
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
@@ -5047,7 +5030,7 @@ export { Ol } from "./ui/index.js";
5047
5030
  export { LoginRequiredModal } from "./ui/components/LoginRequiredModal.js";
5048
5031
  export { isAuthError } from "./utils/auth-error.js";
5049
5032
  // -- Missing constants ----------------------------------------------------------
5050
- export { API_ENDPOINTS, API_ROUTES, LOGS_ENDPOINTS, AUTH_ENDPOINTS, ACCOUNT_ENDPOINTS, NOTIFICATIONS_ENDPOINTS, ADMIN_ENDPOINTS, AUCTION_ENDPOINTS, BID_ENDPOINTS, CART_ENDPOINTS, CATEGORY_ENDPOINTS, CHECKOUT_ENDPOINTS, FAQ_ENDPOINTS, HOMEPAGE_ENDPOINTS, LOYALTY_ENDPOINTS, ANALYTICS_ENDPOINTS, MEDIA_ENDPOINTS, ORDER_ENDPOINTS, PREORDER_ENDPOINTS, PRODUCT_ENDPOINTS, REVIEW_ENDPOINTS, SEARCH_ENDPOINTS, SELLER_ENDPOINTS, BLOG_ENDPOINTS, WISHLIST_ENDPOINTS, COLLECTION_CACHE_PATHS, resolveEndpoint, resolveEndpointFn, ROUTES, PUBLIC_ROUTES, PROTECTED_ROUTES, AUTH_ROUTES, WISHLIST_MAX, HISTORY_MAX, CART_MAX_ITEMS, WISHLIST_DOC_ID, HISTORY_DOC_ID, WISHLIST_COLLECTION, HISTORY_COLLECTION, } from "./constants/index.js";
5033
+ export { API_ENDPOINTS, API_ROUTES, LOGS_ENDPOINTS, AUTH_ENDPOINTS, ACCOUNT_ENDPOINTS, NOTIFICATIONS_ENDPOINTS, ADMIN_ENDPOINTS, AUCTION_ENDPOINTS, BID_ENDPOINTS, CART_ENDPOINTS, CATEGORY_ENDPOINTS, CHECKOUT_ENDPOINTS, FAQ_ENDPOINTS, HOMEPAGE_ENDPOINTS, ANALYTICS_ENDPOINTS, MEDIA_ENDPOINTS, ORDER_ENDPOINTS, PREORDER_ENDPOINTS, PRODUCT_ENDPOINTS, REVIEW_ENDPOINTS, SEARCH_ENDPOINTS, SELLER_ENDPOINTS, BLOG_ENDPOINTS, WISHLIST_ENDPOINTS, COLLECTION_CACHE_PATHS, resolveEndpoint, resolveEndpointFn, ROUTES, PUBLIC_ROUTES, PROTECTED_ROUTES, AUTH_ROUTES, WISHLIST_MAX, HISTORY_MAX, CART_MAX_ITEMS, WISHLIST_DOC_ID, HISTORY_DOC_ID, WISHLIST_COLLECTION, HISTORY_COLLECTION, } from "./constants/index.js";
5051
5034
  // Wishlist server errors (server-only via tree-shake â€" class only, no firebase-admin at module scope)
5052
5035
  export { WishlistFullError } from "./features/wishlist/server.js";
5053
5036
  // History â€" client hook + guest util are safe in main barrel; repository is server-only
@@ -5180,7 +5163,7 @@ export { AssemblyDrawer } from "./features/parts/components/AssemblyDrawer.js";
5180
5163
  // Scam registry â€" schema types and constants
5181
5164
  export { SCAMMER_COLLECTION, SCAMMER_ID_PREFIX, SCAMMER_MATCH_FIELDS, SCAMMER_INDEXED_FIELDS, SCAMMER_FIELDS, SCAMMER_INCIDENTS_SUBCOLLECTION, SCAMMER_COMMENTS_SUBCOLLECTION, SCAMMER_CONTESTS_SUBCOLLECTION, MAX_COMMENT_BODY_LENGTH, MAX_PENDING_SCAMMER_REPORTS_PER_USER, ScammerStatusValues, ScamPlatformValues, SocialPlatformValues, ContestTypeValues, ContestStatusValues, SCAM_PLATFORM_LABELS, SOCIAL_PLATFORM_LABELS, SCAMMER_STATUS_LABELS, CONTEST_TYPE_LABELS, CONTEST_STATUS_LABELS, DEFAULT_SCAMMER_DATA, DEFAULT_SCAMMER_INCIDENT_DATA, DEFAULT_SCAMMER_COMMENT_DATA, DEFAULT_SCAMMER_CONTEST_DATA, } from "./features/scams/schemas/firestore.js";
5182
5165
  // Scam registry â€" scam type definitions
5183
- export { SCAM_TYPES, SCAM_CATEGORIES, SCAM_TYPE_LABELS, SCAM_CATEGORY_LABELS, getScamType, getScamTypesByCategory, getCategoryForScamType, } from "./features/scams/constants/scam-types.js";
5166
+ export { SCAM_TYPES, SCAM_CATEGORIES, SCAM_TYPE_LABELS, SCAM_CATEGORY_LABELS, getScamType, getScamTypesByCategory, getCategoryForScamType, isScamType, } from "./features/scams/constants/scam-types.js";
5184
5167
  // Scam Registry view components (SCAM3â€"SCAM4)
5185
5168
  export { ScamRegistryView } from "./features/scams/components/ScamRegistryView.js";
5186
5169
  export { ScamProfileView } from "./features/scams/components/ScamProfileView.js";
@@ -5327,7 +5310,15 @@ export { withRetry } from "./http/retry.js";
5327
5310
  export { normalizeError, getErrorMessage, isApiNormalized, isAppNormalized, isFirebaseAuthNormalized, isFirebaseFirestoreNormalized, isFirebaseStorageNormalized, isNativeNormalized, isNetworkNormalized, isUnknownNormalized, isZodNormalized, } from "./errors/normalize.js";
5328
5311
  // Checkout lanes — the derived auction > offer > standard partition of the
5329
5312
  // cart, and the priority rule that decides which one may be checked out.
5330
- export { CART_LANE, CART_LANE_PRIORITY, CART_LANE_LABELS, laneOf, activeLane, laneItems, laneCounts, isLaneCheckoutable, laneBlockReason, isLockedLane, canAddNewItems, } from "./_internal/shared/checkout/lanes.js";
5313
+ export { CART_LANE, CART_LANE_PRIORITY, CART_LANE_LABELS, laneOf, activeLane, laneItems, laneCounts, isLaneCheckoutable, laneBlockReason, isLockedLane, canAddNewItems,
5314
+ /*
5315
+ * 🛑 `resolveCheckoutItems` is THE definition of "what this checkout charges
5316
+ * for and settles", and it is exported because the CONSUMER owns the capture
5317
+ * route (`/api/payment/create-order`) — which was one of the two sites that
5318
+ * disagreed. Exporting it is what makes the agreement structural instead of
5319
+ * a convention two files have to keep independently (D40, Root Cause #75).
5320
+ */
5321
+ defaultCheckoutItems, resolveCheckoutItems, } from "./_internal/shared/checkout/lanes.js";
5331
5322
  /*
5332
5323
  * Shipping quote model. Public because the CONSUMER owns the route that asks
5333
5324
  * the carrier for rates (`/api/shipping/quote`) and the checkout UI that
@@ -5,7 +5,7 @@ import { Button } from "../ui/components/Button.js";
5
5
  import { Stack } from "../ui/components/Layout.js";
6
6
  import { Heading, Text } from "../ui/components/Typography.js";
7
7
  function DefaultFallback({ error, onReset, }) {
8
- return (_jsxs(Stack, { centered: true, gap: "md", surface: "default", padding: "lg", rounded: "xl", border: "default", className: "min-h-[40vh] text-center", "data-section": "errorboundary-div-445", children: [_jsx(Heading, { level: 2, children: "Something went wrong" }), _jsx(Text, { variant: "secondary", children: "An unexpected error occurred. Please try again." }), process.env.NODE_ENV === "development" && error ? (_jsx("pre", { className: "max-w-full overflow-auto rounded-md bg-[var(--appkit-color-surface)] p-3 text-left text-xs bg-[var(--appkit-color-surface-elevated)]", children: error.message })) : null, _jsx(Button, { type: "button", onClick: onReset, children: "Try again" })] }));
8
+ return (_jsxs(Stack, { centered: true, gap: "md", surface: "default", padding: "lg", rounded: "xl", border: "default", className: "min-h-[40vh] text-center", "data-section": "errorboundary-div-445", children: [_jsx(Heading, { level: 2, children: "Something went wrong" }), _jsx(Text, { variant: "secondary", children: "An unexpected error occurred. Please try again." }), process.env.NODE_ENV === "development" && error ? (_jsx("pre", { className: "max-w-full overflow-auto rounded-md p-3 text-left text-xs bg-[var(--appkit-color-surface-elevated)]", children: error.message })) : null, _jsx(Button, { type: "button", onClick: onReset, children: "Try again" })] }));
9
9
  }
10
10
  export class ErrorBoundary extends Component {
11
11
  constructor(props) {
@@ -174,6 +174,7 @@ export declare const DEFAULT_ROUTE_MAP: {
174
174
  readonly ORDER_CANCEL: (id: string) => string;
175
175
  readonly ORDER_TRACK: (id: string) => string;
176
176
  readonly ORDER_RETURN: (id: string) => string;
177
+ readonly ORDER_CLAIM: (id: string) => string;
177
178
  readonly ORDER_INVOICE: (id: string) => string;
178
179
  readonly ORDER_PAYMENT: (id: string) => string;
179
180
  readonly NOTIFICATIONS: "/user/notifications";
@@ -298,6 +299,12 @@ export declare const DEFAULT_ROUTE_MAP: {
298
299
  readonly ADMIN: {
299
300
  readonly DASHBOARD: "/admin/dashboard";
300
301
  readonly SHIPMENTS: "/admin/shipments";
302
+ readonly INVENTORY: "/admin/inventory";
303
+ readonly INVENTORY_BOXES: "/admin/inventory/boxes";
304
+ readonly INVENTORY_BOX_DETAIL: (id: string) => string;
305
+ readonly INVENTORY_BOX_LABELS: "/admin/inventory/boxes/labels";
306
+ readonly INVENTORY_MOVEMENTS: "/admin/inventory/movements";
307
+ readonly SHIPMENT_RECEIVE: (id: string) => string;
301
308
  readonly SHIPMENTS_NEW: "/admin/shipments/new";
302
309
  readonly SHIPMENTS_EDIT: (id: string) => string;
303
310
  readonly SHIPMENT_LOT_ITEMS: (id: string, lotId: string) => string;
@@ -367,6 +374,11 @@ export declare const DEFAULT_ROUTE_MAP: {
367
374
  readonly PAYOUTS: "/admin/payouts";
368
375
  readonly PAYOUT_DETAIL: (id: string) => string;
369
376
  readonly AUDIT_LOG: "/admin/audit-log";
377
+ readonly MONEY_CASES: "/admin/money-cases";
378
+ readonly MONEY_CASE_DETAIL: (id: string) => string;
379
+ readonly PROTECTION_CLAIMS: "/admin/protection-claims";
380
+ readonly MAINTENANCE_GATEWAY_EVENTS: "/admin/maintenance/gateway-events";
381
+ readonly MAINTENANCE_OBLIGATIONS: "/admin/maintenance/obligations";
370
382
  readonly EVENTS: "/admin/events";
371
383
  readonly EVENTS_NEW: "/admin/events/new";
372
384
  readonly EVENTS_EDIT: (id: string) => string;
@@ -615,6 +627,7 @@ export declare const ROUTES: {
615
627
  readonly ORDER_CANCEL: (id: string) => string;
616
628
  readonly ORDER_TRACK: (id: string) => string;
617
629
  readonly ORDER_RETURN: (id: string) => string;
630
+ readonly ORDER_CLAIM: (id: string) => string;
618
631
  readonly ORDER_INVOICE: (id: string) => string;
619
632
  readonly ORDER_PAYMENT: (id: string) => string;
620
633
  readonly NOTIFICATIONS: "/user/notifications";
@@ -739,6 +752,12 @@ export declare const ROUTES: {
739
752
  readonly ADMIN: {
740
753
  readonly DASHBOARD: "/admin/dashboard";
741
754
  readonly SHIPMENTS: "/admin/shipments";
755
+ readonly INVENTORY: "/admin/inventory";
756
+ readonly INVENTORY_BOXES: "/admin/inventory/boxes";
757
+ readonly INVENTORY_BOX_DETAIL: (id: string) => string;
758
+ readonly INVENTORY_BOX_LABELS: "/admin/inventory/boxes/labels";
759
+ readonly INVENTORY_MOVEMENTS: "/admin/inventory/movements";
760
+ readonly SHIPMENT_RECEIVE: (id: string) => string;
742
761
  readonly SHIPMENTS_NEW: "/admin/shipments/new";
743
762
  readonly SHIPMENTS_EDIT: (id: string) => string;
744
763
  readonly SHIPMENT_LOT_ITEMS: (id: string, lotId: string) => string;
@@ -808,6 +827,11 @@ export declare const ROUTES: {
808
827
  readonly PAYOUTS: "/admin/payouts";
809
828
  readonly PAYOUT_DETAIL: (id: string) => string;
810
829
  readonly AUDIT_LOG: "/admin/audit-log";
830
+ readonly MONEY_CASES: "/admin/money-cases";
831
+ readonly MONEY_CASE_DETAIL: (id: string) => string;
832
+ readonly PROTECTION_CLAIMS: "/admin/protection-claims";
833
+ readonly MAINTENANCE_GATEWAY_EVENTS: "/admin/maintenance/gateway-events";
834
+ readonly MAINTENANCE_OBLIGATIONS: "/admin/maintenance/obligations";
811
835
  readonly EVENTS: "/admin/events";
812
836
  readonly EVENTS_NEW: "/admin/events/new";
813
837
  readonly EVENTS_EDIT: (id: string) => string;
@@ -289,6 +289,12 @@ export const DEFAULT_ROUTE_MAP = {
289
289
  ORDER_CANCEL: (id) => `/user/orders/${id}/cancel`,
290
290
  ORDER_TRACK: (id) => `/user/orders/${id}/track`,
291
291
  ORDER_RETURN: (id) => `/user/orders/${id}/return`,
292
+ /*
293
+ * The buyer's protection claim. Its own route rather than a tab on the
294
+ * order page: the form is a decision with a required account of what
295
+ * happened, and the order page is already the densest surface in the app.
296
+ */
297
+ ORDER_CLAIM: (id) => `/user/orders/${id}/claim`,
292
298
  ORDER_INVOICE: (id) => `/user/orders/${id}/invoice`,
293
299
  ORDER_PAYMENT: (id) => `/user/orders/${id}/payment`,
294
300
  NOTIFICATIONS: "/user/notifications",
@@ -427,6 +433,22 @@ export const DEFAULT_ROUTE_MAP = {
427
433
  ADMIN: {
428
434
  DASHBOARD: "/admin/dashboard",
429
435
  SHIPMENTS: "/admin/shipments",
436
+ INVENTORY: "/admin/inventory",
437
+ INVENTORY_BOXES: "/admin/inventory/boxes",
438
+ INVENTORY_BOX_DETAIL: (id) => `/admin/inventory/boxes/${id}`,
439
+ /*
440
+ * 🛑 Must sit BEFORE nothing and resolve independently of
441
+ * `INVENTORY_BOX_DETAIL` — `/admin/inventory/boxes/labels` and
442
+ * `/admin/inventory/boxes/{id}` share a segment, so Next's static-beats-
443
+ * dynamic precedence is what keeps `labels` from being read as a box id.
444
+ * That precedence is the framework's, not ours, but it means a box may
445
+ * never be registered with the code `labels`: its id would be
446
+ * `storagebox-labels`, so there is no collision in practice, and this note
447
+ * exists so nobody "fixes" the route by renaming it.
448
+ */
449
+ INVENTORY_BOX_LABELS: "/admin/inventory/boxes/labels",
450
+ INVENTORY_MOVEMENTS: "/admin/inventory/movements",
451
+ SHIPMENT_RECEIVE: (id) => `/admin/shipments/${id}/receive`,
430
452
  SHIPMENTS_NEW: "/admin/shipments/new",
431
453
  SHIPMENTS_EDIT: (id) => `/admin/shipments/${id}/edit`,
432
454
  SHIPMENT_LOT_ITEMS: (id, lotId) => `/admin/shipments/${id}/lots/${lotId}/items`,
@@ -524,6 +546,24 @@ export const DEFAULT_ROUTE_MAP = {
524
546
  PAYOUTS: "/admin/payouts",
525
547
  PAYOUT_DETAIL: (id) => `/admin/payouts/${id}/view`,
526
548
  AUDIT_LOG: "/admin/audit-log",
549
+ /*
550
+ * 🛑 MONEY_CASES is deliberately NOT under `/admin/maintenance/`.
551
+ *
552
+ * Maintenance means "something broke, look when you can" and is granted to
553
+ * `maintenance_employee`. A payment case can carry a gateway's own
554
+ * `respond_by`: miss it and the chargeback is lost by default whoever was
555
+ * right. Burying that beside Cloud Logs is how a deadline is missed, so it
556
+ * gets its own section and an admin-only permission.
557
+ *
558
+ * Gateway events and obligations DO belong under maintenance — they are
559
+ * diagnostics with no external clock, and the cases they produce are what
560
+ * carries urgency.
561
+ */
562
+ MONEY_CASES: "/admin/money-cases",
563
+ MONEY_CASE_DETAIL: (id) => `/admin/money-cases/${id}`,
564
+ PROTECTION_CLAIMS: "/admin/protection-claims",
565
+ MAINTENANCE_GATEWAY_EVENTS: "/admin/maintenance/gateway-events",
566
+ MAINTENANCE_OBLIGATIONS: "/admin/maintenance/obligations",
527
567
  EVENTS: "/admin/events",
528
568
  EVENTS_NEW: "/admin/events/new",
529
569
  EVENTS_EDIT: (id) => `/admin/events/${id}/edit`,
@@ -16,7 +16,7 @@
16
16
  * `IPaymentProvider` generically rather than the order repository directly.
17
17
  */
18
18
  import { IPaymentProvider } from "../../contracts";
19
- import type { PaymentOrder, PaymentCapture, Refund } from "../../contracts";
19
+ import type { PaymentOrder, PaymentCapture, Refund, Dispute, GatewayPaymentRecord } from "../../contracts";
20
20
  import type { JsonValue } from "../../schemas/types";
21
21
  export declare class ManualPaymentProvider extends IPaymentProvider {
22
22
  readonly name = "manual";
@@ -37,4 +37,18 @@ export declare class ManualPaymentProvider extends IPaymentProvider {
37
37
  */
38
38
  refund(paymentId: string, amount?: number): Promise<Refund>;
39
39
  getOrder(orderId: string): Promise<PaymentOrder>;
40
+ /**
41
+ * 🛑 `[]` here means "THIS PROVIDER CANNOT ANSWER", not "there are no
42
+ * payments" — and the difference decides whether a reconciler may conclude
43
+ * anything. A manual payment exists only as a row we wrote plus a proof the
44
+ * buyer uploaded; there is no external ledger to compare against, so the
45
+ * gateway-vs-us check is structurally inapplicable rather than clean.
46
+ *
47
+ * The caller is required to treat an empty list as no information (see the
48
+ * contract), which is why this is honest rather than a silent degrade.
49
+ */
50
+ listPayments(): Promise<GatewayPaymentRecord[]>;
51
+ getDispute(disputeId: string): Promise<Dispute>;
52
+ listDisputes(): Promise<Dispute[]>;
53
+ acceptDispute(disputeId: string, _confirmIrrevocable: true): Promise<Dispute>;
40
54
  }
@@ -88,4 +88,41 @@ export class ManualPaymentProvider extends IPaymentProvider {
88
88
  }
89
89
  return order;
90
90
  }
91
+ /*
92
+ * ── DISPUTES: THERE IS NO SUCH THING HERE ─────────────────────────────────
93
+ *
94
+ * A manual payment is a bank transfer or cash the buyer made outside the
95
+ * system, reconciled by an admin against an uploaded proof. There is no
96
+ * card network and no acquirer, so there is no chargeback mechanism to
97
+ * query — a buyer's complaint arrives as a support ticket or a grievance,
98
+ * which is a different (and human) path.
99
+ *
100
+ * 🛑 `listDisputes()` returning `[]` is therefore a FACT, not a silent
101
+ * degrade: "this provider cannot have chargebacks" is true. The single-
102
+ * dispute getters throw, because being ASKED for a specific dispute id on a
103
+ * provider that has none means the caller is confused, and answering a
104
+ * confident wrong thing is how a reconciler reports clean.
105
+ */
106
+ /**
107
+ * 🛑 `[]` here means "THIS PROVIDER CANNOT ANSWER", not "there are no
108
+ * payments" — and the difference decides whether a reconciler may conclude
109
+ * anything. A manual payment exists only as a row we wrote plus a proof the
110
+ * buyer uploaded; there is no external ledger to compare against, so the
111
+ * gateway-vs-us check is structurally inapplicable rather than clean.
112
+ *
113
+ * The caller is required to treat an empty list as no information (see the
114
+ * contract), which is why this is honest rather than a silent degrade.
115
+ */
116
+ async listPayments() {
117
+ return [];
118
+ }
119
+ async getDispute(disputeId) {
120
+ throw Object.assign(new Error(`Manual payments have no dispute mechanism — nothing can be fetched for ${disputeId}`), { httpStatus: 400 });
121
+ }
122
+ async listDisputes() {
123
+ return [];
124
+ }
125
+ async acceptDispute(disputeId, _confirmIrrevocable) {
126
+ throw Object.assign(new Error(`Manual payments have no dispute to accept (${disputeId})`), { httpStatus: 400 });
127
+ }
91
128
  }
@@ -38,7 +38,7 @@
38
38
  */
39
39
  import type { JsonValue } from "@mohasinac/appkit";
40
40
  import { IPaymentProvider } from "../../contracts";
41
- import type { PaymentOrder, PaymentCapture, Refund } from "../../contracts";
41
+ import type { PaymentOrder, PaymentCapture, Refund, Dispute, GatewayPaymentRecord } from "../../contracts";
42
42
  /**
43
43
  * PhonePe's `metaInfo` (udf1-udf5, ≤256 chars each) is the only channel that
44
44
  * survives from `createOrder()` through to BOTH the Order Status API AND the
@@ -114,4 +114,17 @@ export declare class PhonePeProvider extends IPaymentProvider {
114
114
  * than `capturePayment()` when confirming a payment.
115
115
  */
116
116
  getOrder(orderId: string): Promise<PaymentOrder>;
117
+ /**
118
+ * 🛑 `[]` because PhonePe's PG Checkout API is ORDER-keyed and exposes no
119
+ * "list my payments in a window" endpoint — not because there are none.
120
+ * Distinct from the manual provider's reason: there IS an external ledger
121
+ * here, we simply cannot read it in bulk. A reconciler must therefore not
122
+ * treat PhonePe as reconciled; it is unreconcilable with this API, which is
123
+ * a documented limitation rather than a gap being worked (PhonePe is dormant
124
+ * — Razorpay wins the provider tie-break).
125
+ */
126
+ listPayments(): Promise<GatewayPaymentRecord[]>;
127
+ getDispute(disputeId: string): Promise<Dispute>;
128
+ listDisputes(): Promise<Dispute[]>;
129
+ acceptDispute(disputeId: string, _confirmIrrevocable: true): Promise<Dispute>;
117
130
  }
@@ -218,4 +218,40 @@ export class PhonePeProvider extends IPaymentProvider {
218
218
  metadata: intent,
219
219
  };
220
220
  }
221
+ /*
222
+ * ── DISPUTES: NOT EXPOSED BY THIS GATEWAY'S API ───────────────────────────
223
+ *
224
+ * Distinct from the manual provider's reason, and the distinction matters.
225
+ * PhonePe transactions CAN be disputed — UPI has a chargeback process — but
226
+ * the PG Checkout API this adapter wraps exposes no dispute resource, so we
227
+ * have no way to read one. A PhonePe chargeback reaches us as an email or a
228
+ * dashboard notification, not as data.
229
+ *
230
+ * So `[]` here means "we cannot see them", not "they cannot exist", and that
231
+ * is worth saying out loud: a reconciler that treats an empty list as "no
232
+ * disputes outstanding" would be drawing a false conclusion on this gateway.
233
+ * PhonePe is currently dormant (Razorpay wins the provider tie-break), which
234
+ * is why this is a documented limitation rather than a gap being worked.
235
+ */
236
+ /**
237
+ * 🛑 `[]` because PhonePe's PG Checkout API is ORDER-keyed and exposes no
238
+ * "list my payments in a window" endpoint — not because there are none.
239
+ * Distinct from the manual provider's reason: there IS an external ledger
240
+ * here, we simply cannot read it in bulk. A reconciler must therefore not
241
+ * treat PhonePe as reconciled; it is unreconcilable with this API, which is
242
+ * a documented limitation rather than a gap being worked (PhonePe is dormant
243
+ * — Razorpay wins the provider tie-break).
244
+ */
245
+ async listPayments() {
246
+ return [];
247
+ }
248
+ async getDispute(disputeId) {
249
+ throw Object.assign(new Error(`PhonePe exposes no dispute API — cannot fetch ${disputeId}`), { httpStatus: 501 });
250
+ }
251
+ async listDisputes() {
252
+ return [];
253
+ }
254
+ async acceptDispute(disputeId, _confirmIrrevocable) {
255
+ throw Object.assign(new Error(`PhonePe exposes no dispute API — ${disputeId} must be handled in PhonePe's own dashboard`), { httpStatus: 501 });
256
+ }
221
257
  }
@@ -52,7 +52,7 @@
52
52
  */
53
53
  import type { JsonValue } from "@mohasinac/appkit";
54
54
  import { IPaymentProvider } from "../../contracts";
55
- import type { PaymentOrder, PaymentCapture, Refund } from "../../contracts";
55
+ import type { PaymentOrder, PaymentCapture, Refund, Dispute, GatewayPaymentRecord } from "../../contracts";
56
56
  export { verifyPaymentSignature, verifyWebhookSignature, type RazorpayPaymentResult, } from "./signature";
57
57
  export interface RazorpayConfig {
58
58
  /** Publishable key (`rzp_test_…` / `rzp_live_…`). Safe to expose to the browser. */
@@ -122,4 +122,47 @@ export declare class RazorpayProvider extends IPaymentProvider {
122
122
  * (see point 1 of the class comment).
123
123
  */
124
124
  getOrder(orderId: string): Promise<PaymentOrder>;
125
+ /**
126
+ * Typed STRUCTURALLY rather than against the SDK's `Disputes.RazorpayDispute`
127
+ * namespace type.
128
+ *
129
+ * Two reasons: the namespace is declared inside `types/disputes.d.ts` and is
130
+ * not part of the package's documented export surface, so importing it couples
131
+ * us to an internal; and naming only the fields we read makes the mapping
132
+ * auditable against the SDK by eye. Every field below was checked against the
133
+ * installed 2.9.8 declaration — `id`, `payment_id`, `amount`, `currency`,
134
+ * `amount_deducted`, `reason_code`, `respond_by`, `status`, `phase`,
135
+ * `created_at` — rather than recalled.
136
+ *
137
+ * `status` and `phase` are `string` in the SDK too, so nothing is lost by not
138
+ * importing it.
139
+ */
140
+ private toDispute;
141
+ /**
142
+ * Payments in a window, for reconciliation.
143
+ *
144
+ * 🛑 `from`/`to` are Unix timestamps in **SECONDS** and `count` is capped at
145
+ * **100 by the API** (verified in `RazorpayPaginationOptions`). The cap is
146
+ * NOT raised by asking: a caller wanting more must page with `skip`, and this
147
+ * method deliberately does not, because an unbounded page loop inside a 540 s
148
+ * function is how a reconciler turns into a timeout. At this project's volume
149
+ * one page is several days of payments; the count is logged so the day that
150
+ * stops being true is visible rather than silently truncating.
151
+ */
152
+ listPayments(opts: {
153
+ from: Date;
154
+ to: Date;
155
+ limit?: number;
156
+ }): Promise<GatewayPaymentRecord[]>;
157
+ getDispute(disputeId: string): Promise<Dispute>;
158
+ listDisputes(): Promise<Dispute[]>;
159
+ /**
160
+ * Accept liability — irreversible.
161
+ *
162
+ * `confirmIrrevocable` is required by the contract and is not read here, and
163
+ * that is the point: its job is to make the CALLER state intent at the call
164
+ * site. A runtime check would be theatre, since the type already makes
165
+ * `false` uncompilable.
166
+ */
167
+ acceptDispute(disputeId: string, _confirmIrrevocable: true): Promise<Dispute>;
125
168
  }