@mohasinac/appkit 4.62.0 → 4.63.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.
- package/dist/.build-stamp.json +3 -3
- package/dist/_internal/client/features/layout/DashboardLayoutClient.js +8 -29
- package/dist/_internal/client/features/layout/filterNavItems.d.ts +28 -0
- package/dist/_internal/client/features/layout/filterNavItems.js +35 -0
- package/dist/_internal/server/features/ads/booking.d.ts +118 -0
- package/dist/_internal/server/features/ads/booking.js +326 -0
- package/dist/_internal/server/features/checkout/actions.d.ts +129 -9
- package/dist/_internal/server/features/checkout/actions.js +850 -79
- package/dist/_internal/server/features/checkout/expand-order-items.d.ts +1 -2
- package/dist/_internal/server/features/checkout/expand-order-items.js +32 -0
- package/dist/_internal/server/features/checkout/freeze-parts.d.ts +50 -0
- package/dist/_internal/server/features/checkout/freeze-parts.js +94 -0
- package/dist/_internal/server/features/checkout/value-otp-gate.d.ts +55 -0
- package/dist/_internal/server/features/checkout/value-otp-gate.js +60 -0
- package/dist/_internal/server/features/dashboard/attention.d.ts +128 -0
- package/dist/_internal/server/features/dashboard/attention.js +183 -0
- package/dist/_internal/server/features/dashboard/data.d.ts +47 -0
- package/dist/_internal/server/features/dashboard/data.js +82 -0
- package/dist/_internal/server/features/inventory/reservations.d.ts +99 -0
- package/dist/_internal/server/features/inventory/reservations.js +273 -0
- package/dist/_internal/server/features/invoicing/allocate.d.ts +63 -0
- package/dist/_internal/server/features/invoicing/allocate.js +162 -0
- package/dist/_internal/server/features/invoicing/credit-note.d.ts +57 -0
- package/dist/_internal/server/features/invoicing/credit-note.js +126 -0
- package/dist/_internal/server/features/invoicing/gstr1.d.ts +74 -0
- package/dist/_internal/server/features/invoicing/gstr1.js +251 -0
- package/dist/_internal/server/features/invoicing/issue.d.ts +96 -0
- package/dist/_internal/server/features/invoicing/issue.js +202 -0
- package/dist/_internal/server/features/offers/destinations.d.ts +40 -0
- package/dist/_internal/server/features/offers/destinations.js +65 -0
- package/dist/_internal/server/features/orders/actions.d.ts +8 -1
- package/dist/_internal/server/features/orders/actions.js +81 -8
- package/dist/_internal/server/features/orders/adapters.js +54 -0
- package/dist/_internal/server/features/orders/amend-delivery.d.ts +56 -0
- package/dist/_internal/server/features/orders/amend-delivery.js +124 -0
- package/dist/_internal/server/features/orders/balance.d.ts +89 -0
- package/dist/_internal/server/features/orders/balance.js +256 -0
- package/dist/_internal/server/features/orders/cancellation-refund.d.ts +15 -9
- package/dist/_internal/server/features/orders/cancellation-refund.js +15 -9
- package/dist/_internal/server/features/points/award.js +46 -4
- package/dist/_internal/server/features/pricing/actions.d.ts +58 -0
- package/dist/_internal/server/features/pricing/actions.js +144 -0
- package/dist/_internal/server/features/refunds/actions.js +26 -0
- package/dist/_internal/server/features/shipping/book-split.d.ts +86 -0
- package/dist/_internal/server/features/shipping/book-split.js +130 -0
- package/dist/_internal/server/features/shipping/book.d.ts +61 -0
- package/dist/_internal/server/features/shipping/book.js +176 -0
- package/dist/_internal/server/features/shipping/courier-block.d.ts +69 -0
- package/dist/_internal/server/features/shipping/courier-block.js +264 -0
- package/dist/_internal/server/features/site-settings/adapters.d.ts +2 -2
- package/dist/_internal/server/features/site-settings/adapters.js +29 -0
- package/dist/_internal/server/features/stores/adapters.d.ts +2 -2
- package/dist/_internal/server/features/stores/adapters.js +65 -0
- package/dist/_internal/server/functions/scheduled.d.ts +2 -1
- package/dist/_internal/server/functions/scheduled.js +95 -2
- package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +11 -2
- package/dist/_internal/server/jobs/core/dailyStatusDigest.d.ts +4 -0
- package/dist/_internal/server/jobs/core/dailyStatusDigest.js +19 -2
- package/dist/_internal/server/jobs/core/index.d.ts +2 -1
- package/dist/_internal/server/jobs/core/index.js +2 -1
- package/dist/_internal/server/jobs/core/jobRunners.js +45 -0
- package/dist/_internal/server/jobs/core/onJobCreated.d.ts +30 -7
- package/dist/_internal/server/jobs/core/onJobCreated.js +78 -45
- package/dist/_internal/server/jobs/core/onOrderStatusChange.d.ts +7 -0
- package/dist/_internal/server/jobs/core/onOrderStatusChange.js +65 -0
- package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +33 -0
- package/dist/_internal/server/jobs/core/reservationExpiry.d.ts +17 -0
- package/dist/_internal/server/jobs/core/reservationExpiry.js +40 -0
- package/dist/_internal/server/jobs/core/runJobOnce.d.ts +48 -0
- package/dist/_internal/server/jobs/core/runJobOnce.js +195 -0
- package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +25 -2
- package/dist/_internal/server/jobs/handlers/index.d.ts +1 -0
- package/dist/_internal/server/jobs/handlers/index.js +1 -0
- package/dist/_internal/server/jobs/handlers/onOrderStatusChange.js +17 -0
- package/dist/_internal/server/jobs/handlers/reservationExpiry.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/reservationExpiry.js +2 -0
- package/dist/_internal/server/notifications/channel-health.d.ts +26 -3
- package/dist/_internal/shared/actions/action-registry.d.ts +1 -1
- package/dist/_internal/shared/actions/action-registry.js +296 -0
- package/dist/_internal/shared/checkout/coupon-discount.d.ts +43 -1
- package/dist/_internal/shared/checkout/coupon-discount.js +26 -1
- package/dist/_internal/shared/checkout/order-math.d.ts +174 -0
- package/dist/_internal/shared/checkout/order-math.js +159 -0
- package/dist/_internal/shared/checkout/refundable-base.d.ts +25 -0
- package/dist/_internal/shared/checkout/refundable-base.js +13 -1
- package/dist/_internal/shared/checkout/rules/index.d.ts +1 -1
- package/dist/_internal/shared/checkout/rules/index.js +1 -1
- package/dist/_internal/shared/checkout/rules/payment-gate.d.ts +18 -0
- package/dist/_internal/shared/checkout/rules/payment-gate.js +25 -0
- package/dist/_internal/shared/checkout/split.d.ts +75 -0
- package/dist/_internal/shared/checkout/split.js +120 -0
- package/dist/_internal/shared/content/disclaimers.d.ts +88 -0
- package/dist/_internal/shared/content/disclaimers.js +217 -0
- package/dist/_internal/shared/content/published-values.d.ts +93 -0
- package/dist/_internal/shared/content/published-values.js +206 -0
- package/dist/_internal/shared/features/admin/integrations.d.ts +139 -0
- package/dist/_internal/shared/features/admin/integrations.js +263 -0
- package/dist/_internal/shared/features/dashboard/hub-sections.d.ts +72 -0
- package/dist/_internal/shared/features/dashboard/hub-sections.js +75 -0
- package/dist/_internal/shared/features/emi/choice.d.ts +98 -0
- package/dist/_internal/shared/features/emi/choice.js +69 -0
- package/dist/_internal/shared/features/emi/group.d.ts +84 -0
- package/dist/_internal/shared/features/emi/group.js +126 -0
- package/dist/_internal/shared/features/ledger/posting.d.ts +107 -0
- package/dist/_internal/shared/features/ledger/posting.js +165 -0
- package/dist/_internal/shared/features/ledger/reports.d.ts +76 -0
- package/dist/_internal/shared/features/ledger/reports.js +127 -0
- package/dist/_internal/shared/features/ledger/rules.d.ts +170 -0
- package/dist/_internal/shared/features/ledger/rules.js +221 -0
- package/dist/_internal/shared/features/offers/coordination.d.ts +122 -0
- package/dist/_internal/shared/features/offers/coordination.js +80 -0
- package/dist/_internal/shared/features/orders/delivery-snapshot.d.ts +114 -0
- package/dist/_internal/shared/features/orders/delivery-snapshot.js +116 -0
- package/dist/_internal/shared/features/orders/dispute-reasons.d.ts +113 -0
- package/dist/_internal/shared/features/orders/dispute-reasons.js +181 -0
- package/dist/_internal/shared/features/orders/refund-copy.d.ts +1 -1
- package/dist/_internal/shared/features/orders/refund-copy.js +18 -1
- package/dist/_internal/shared/features/payouts/pay-period.d.ts +91 -0
- package/dist/_internal/shared/features/payouts/pay-period.js +104 -0
- package/dist/_internal/shared/features/points/accepts.d.ts +29 -0
- package/dist/_internal/shared/features/points/accepts.js +49 -0
- package/dist/_internal/shared/features/pricing/rate-registry.d.ts +150 -0
- package/dist/_internal/shared/features/pricing/rate-registry.js +246 -0
- package/dist/_internal/shared/features/shipping/parcel.d.ts +123 -0
- package/dist/_internal/shared/features/shipping/parcel.js +139 -0
- package/dist/_internal/shared/features/shipping/shared-purchase.d.ts +91 -0
- package/dist/_internal/shared/features/shipping/shared-purchase.js +108 -0
- package/dist/_internal/shared/features/site-settings/fees.d.ts +16 -8
- package/dist/_internal/shared/features/site-settings/fees.js +12 -8
- package/dist/_internal/shared/features/site-settings/types.d.ts +11 -0
- package/dist/_internal/shared/fees/calculator.d.ts +33 -1
- package/dist/_internal/shared/fees/calculator.js +32 -2
- package/dist/_internal/shared/fees/explain.d.ts +81 -0
- package/dist/_internal/shared/fees/explain.js +101 -0
- package/dist/_internal/shared/history/index.d.ts +1 -1
- package/dist/_internal/shared/history/index.js +1 -1
- package/dist/_internal/shared/history/types.d.ts +7 -1
- package/dist/_internal/shared/history/types.js +25 -0
- package/dist/client.d.ts +21 -0
- package/dist/client.js +43 -0
- package/dist/constants/api-endpoints.d.ts +114 -0
- package/dist/constants/api-endpoints.js +55 -0
- package/dist/constants/field-names.d.ts +42 -0
- package/dist/constants/field-names.js +52 -0
- package/dist/contracts/index.d.ts +1 -1
- package/dist/contracts/shipping.d.ts +45 -0
- package/dist/contracts/shipping.js +15 -0
- package/dist/features/about/components/AboutView.js +1 -1
- package/dist/features/account/components/BuyerAuctionsGuideView.js +4 -1
- package/dist/features/account/components/UserOrdersView.js +47 -35
- package/dist/features/admin/components/AdminCouponEditorView.js +17 -0
- package/dist/features/admin/components/AdminIntegrationsView.d.ts +55 -0
- package/dist/features/admin/components/AdminIntegrationsView.js +74 -0
- package/dist/features/admin/components/AdminInvoicingView.d.ts +2 -0
- package/dist/features/admin/components/AdminInvoicingView.js +65 -0
- package/dist/features/admin/components/AdminOrderEditorView.d.ts +33 -1
- package/dist/features/admin/components/AdminOrderEditorView.js +81 -3
- package/dist/features/admin/components/AdminOrdersGuideView.js +23 -2
- package/dist/features/admin/components/AdminOrdersView.js +86 -5
- package/dist/features/admin/components/OwnerQuickActions.js +24 -2
- package/dist/features/admin/constants/filter-tabs.d.ts +6 -0
- package/dist/features/admin/constants/filter-tabs.js +6 -0
- package/dist/features/admin/constants/site-settings-tabs.d.ts +1 -1
- package/dist/features/admin/hooks/useAdminListingData.js +16 -0
- package/dist/features/admin/schemas/admin-user-form.d.ts +2 -2
- package/dist/features/admin/schemas/firestore.d.ts +62 -0
- package/dist/features/admin/schemas/firestore.js +5 -0
- package/dist/features/ads/schemas/booking-write.d.ts +120 -0
- package/dist/features/ads/schemas/booking-write.js +75 -0
- package/dist/features/ads/schemas/creative-form.d.ts +18 -0
- package/dist/features/ads/schemas/creative-form.js +51 -0
- package/dist/features/ads/schemas/firestore.d.ts +140 -0
- package/dist/features/ads/schemas/firestore.js +109 -0
- package/dist/features/auctions/repository/bid.repository.js +3 -1
- package/dist/features/audit-log/schemas/firestore.d.ts +140 -0
- package/dist/features/audit-log/schemas/firestore.js +89 -0
- package/dist/features/auth/actions/profile-actions.d.ts +69 -1
- package/dist/features/auth/actions/profile-actions.js +62 -1
- package/dist/features/auth/permissions/constants.js +13 -0
- package/dist/features/auth/schemas/firestore.d.ts +16 -2
- package/dist/features/auth/schemas/firestore.js +2 -1
- package/dist/features/blog/actions/blog-actions.d.ts +6 -0
- package/dist/features/blog/actions/blog-actions.js +17 -2
- package/dist/features/blog/api/route.js +4 -1
- package/dist/features/blog/columns/index.js +5 -0
- package/dist/features/blog/components/BlogIndexPageView.js +2 -1
- package/dist/features/blog/repository/blog.repository.d.ts +4 -0
- package/dist/features/blog/repository/blog.repository.js +5 -0
- package/dist/features/blog/schemas/blog-form.d.ts +3 -0
- package/dist/features/blog/schemas/blog-form.js +1 -0
- package/dist/features/blog/schemas/firestore.d.ts +38 -1
- package/dist/features/blog/schemas/firestore.js +23 -0
- package/dist/features/blog/schemas/index.d.ts +6 -0
- package/dist/features/blog/schemas/index.js +2 -0
- package/dist/features/blog/types/index.d.ts +2 -0
- package/dist/features/cart/components/CartPriceBreakdown.d.ts +25 -1
- package/dist/features/cart/components/CartPriceBreakdown.js +29 -6
- package/dist/features/cart/components/PointsTenderPicker.d.ts +61 -0
- package/dist/features/cart/components/PointsTenderPicker.js +15 -0
- package/dist/features/cart/components/StoreAddonsPicker.js +2 -1
- package/dist/features/cart/components/index.d.ts +2 -0
- package/dist/features/cart/components/index.js +1 -0
- package/dist/features/cart/repository/cart.repository.d.ts +33 -0
- package/dist/features/cart/repository/cart.repository.js +47 -0
- package/dist/features/cart/schemas/firestore.d.ts +116 -0
- package/dist/features/contact/email.d.ts +27 -10
- package/dist/features/contact/email.js +20 -3
- package/dist/features/dashboard/components/DashboardHubView.d.ts +83 -0
- package/dist/features/dashboard/components/DashboardHubView.js +56 -0
- package/dist/features/dashboard/components/DashboardSectionsClient.d.ts +23 -0
- package/dist/features/dashboard/components/DashboardSectionsClient.js +66 -0
- package/dist/features/dispute-reasons/components/AdminDisputeReasonsView.d.ts +55 -0
- package/dist/features/dispute-reasons/components/AdminDisputeReasonsView.js +175 -0
- package/dist/features/dispute-reasons/repository/dispute-reasons.repository.d.ts +62 -0
- package/dist/features/dispute-reasons/repository/dispute-reasons.repository.js +108 -0
- package/dist/features/dispute-reasons/schemas/firestore.d.ts +62 -0
- package/dist/features/dispute-reasons/schemas/firestore.js +40 -0
- package/dist/features/events/components/EventSaleBanner.js +1 -1
- package/dist/features/faq/components/FAQAccordion.d.ts +13 -1
- package/dist/features/faq/components/FAQAccordion.js +29 -4
- package/dist/features/faq/components/FAQPageContent.js +2 -2
- package/dist/features/gateway-events/schemas/index.d.ts +2 -2
- package/dist/features/homepage/schemas/index.d.ts +8 -8
- package/dist/features/inventory/schemas/stock-reservation.d.ts +114 -0
- package/dist/features/inventory/schemas/stock-reservation.js +103 -0
- package/dist/features/invoicing/schemas/firestore.d.ts +112 -0
- package/dist/features/invoicing/schemas/firestore.js +45 -0
- package/dist/features/invoicing/utils/financial-year.d.ts +43 -0
- package/dist/features/invoicing/utils/financial-year.js +53 -0
- package/dist/features/jobs/actions/enqueue-job.js +18 -1
- package/dist/features/jobs/repository/jobs.repository.d.ts +62 -1
- package/dist/features/jobs/repository/jobs.repository.js +84 -1
- package/dist/features/jobs/schemas/firestore.d.ts +80 -0
- package/dist/features/jobs/schemas/firestore.js +37 -0
- package/dist/features/layout/AppLayoutShell.d.ts +9 -1
- package/dist/features/layout/AppLayoutShell.js +12 -4
- package/dist/features/layout/BottomActions.js +2 -1
- package/dist/features/layout/BottomNavbar.d.ts +10 -2
- package/dist/features/layout/SideActionDock.js +52 -2
- package/dist/features/layout/TitleBarLayout.js +13 -4
- package/dist/features/layout/TitleBarLayout.style.css +59 -0
- package/dist/features/layout/useCtaReveal.d.ts +16 -1
- package/dist/features/layout/useCtaReveal.js +17 -26
- package/dist/features/ledger/repository/journal.repository.d.ts +110 -0
- package/dist/features/ledger/repository/journal.repository.js +312 -0
- package/dist/features/ledger/schemas/expenses.d.ts +87 -0
- package/dist/features/ledger/schemas/expenses.js +27 -0
- package/dist/features/ledger/schemas/firestore.d.ts +183 -0
- package/dist/features/ledger/schemas/firestore.js +69 -0
- package/dist/features/lottery/schemas/zod.d.ts +6 -6
- package/dist/features/media/MediaImage.js +22 -1
- package/dist/features/media/upload/ImageUpload.js +1 -1
- package/dist/features/obligations/constants/policies.js +24 -1
- package/dist/features/orders/components/BalancePaymentPanel.d.ts +12 -0
- package/dist/features/orders/components/BalancePaymentPanel.js +94 -0
- package/dist/features/orders/components/OrderPaymentSummary.js +10 -1
- package/dist/features/orders/components/OrderProvenanceCard.d.ts +8 -0
- package/dist/features/orders/components/OrderProvenanceCard.js +185 -0
- package/dist/features/orders/components/RaiseDisputeForm.d.ts +14 -0
- package/dist/features/orders/components/RaiseDisputeForm.js +119 -0
- package/dist/features/orders/components/RefundRequestView.js +19 -1
- package/dist/features/orders/components/index.d.ts +4 -0
- package/dist/features/orders/components/index.js +2 -0
- package/dist/features/orders/constants/order-lane-tabs.d.ts +69 -0
- package/dist/features/orders/constants/order-lane-tabs.js +88 -0
- package/dist/features/orders/repository/orders.repository.d.ts +85 -1
- package/dist/features/orders/repository/orders.repository.js +205 -6
- package/dist/features/orders/schemas/balance.d.ts +40 -0
- package/dist/features/orders/schemas/balance.js +47 -0
- package/dist/features/orders/schemas/firestore.d.ts +398 -1
- package/dist/features/orders/schemas/firestore.js +43 -0
- package/dist/features/orders/schemas/index.d.ts +56 -8
- package/dist/features/orders/schemas/index.js +12 -0
- package/dist/features/orders/types/index.d.ts +47 -0
- package/dist/features/orders/utils/courier-block.d.ts +25 -0
- package/dist/features/orders/utils/courier-block.js +23 -0
- package/dist/features/payment-cases/schemas/firestore.d.ts +26 -1
- package/dist/features/payment-cases/schemas/firestore.js +1 -0
- package/dist/features/payments/repository/payout.repository.js +3 -2
- package/dist/features/payments/schemas/firestore.d.ts +92 -1
- package/dist/features/payments/schemas/firestore.js +23 -0
- package/dist/features/pricing/components/AdminPricingView.d.ts +13 -0
- package/dist/features/pricing/components/AdminPricingView.js +157 -0
- package/dist/features/products/components/PrizeDrawDetailPageView.js +2 -2
- package/dist/features/products/components/ProductDetailPageView.d.ts +17 -1
- package/dist/features/products/components/ProductDetailPageView.js +2 -2
- package/dist/features/products/schemas/firestore.d.ts +26 -1
- package/dist/features/products/schemas/firestore.js +2 -0
- package/dist/features/products/schemas/index.d.ts +2 -2
- package/dist/features/products/schemas/product-features.validators.d.ts +10 -10
- package/dist/features/promotions/actions/coupon-stacking.d.ts +30 -3
- package/dist/features/promotions/actions/coupon-stacking.js +21 -2
- package/dist/features/promotions/components/CouponCard.js +13 -0
- package/dist/features/promotions/constants/coupon-help.d.ts +2 -2
- package/dist/features/promotions/constants/coupon-help.js +9 -1
- package/dist/features/promotions/schemas/firestore.d.ts +24 -0
- package/dist/features/promotions/schemas/firestore.js +4 -0
- package/dist/features/promotions/types/index.d.ts +19 -1
- package/dist/features/reviews/repository/reviews.repository.d.ts +14 -0
- package/dist/features/reviews/repository/reviews.repository.js +16 -0
- package/dist/features/scams/components/ScamProfileView.js +2 -2
- package/dist/features/scams/components/ScamRegistryView.js +2 -2
- package/dist/features/scams/repository/scammer.repository.js +2 -1
- package/dist/features/scams/schemas/firestore.d.ts +2 -1
- package/dist/features/scams/schemas/firestore.js +2 -1
- package/dist/features/search/action-index/tab-entries.js +1 -1
- package/dist/features/seller/actions/offer-actions.js +56 -0
- package/dist/features/seller/actions/seller-actions.d.ts +1 -1
- package/dist/features/seller/actions/seller-actions.js +37 -3
- package/dist/features/seller/components/DispatchForm.d.ts +11 -0
- package/dist/features/seller/components/DispatchForm.js +190 -0
- package/dist/features/seller/components/SellerOrdersView.js +221 -27
- package/dist/features/seller/components/index.d.ts +1 -0
- package/dist/features/seller/components/index.js +1 -0
- package/dist/features/seller/hooks/useSellerListingData.js +25 -0
- package/dist/features/seller/repository/offer.repository.js +4 -3
- package/dist/features/seller/schemas/firestore.d.ts +23 -2
- package/dist/features/seller/schemas/firestore.js +3 -2
- package/dist/features/seller/schemas/index.d.ts +4 -4
- package/dist/features/seller/schemas/order-forms.d.ts +61 -4
- package/dist/features/seller/schemas/order-forms.js +41 -8
- package/dist/features/shipments/schemas/firestore.d.ts +25 -0
- package/dist/features/shipments/schemas/validation.d.ts +4 -4
- package/dist/features/shipping-boxes/repository/shipping-boxes.repository.d.ts +82 -0
- package/dist/features/shipping-boxes/repository/shipping-boxes.repository.js +145 -0
- package/dist/features/shipping-boxes/schemas/firestore.d.ts +80 -0
- package/dist/features/shipping-boxes/schemas/firestore.js +53 -0
- package/dist/features/store-extensions/schemas/report-create-form.d.ts +2 -2
- package/dist/features/store-extensions/schemas/shipping-config-form.d.ts +2 -2
- package/dist/features/stores/components/StoreOrdersGuideView.js +6 -1
- package/dist/features/stores/repository/store.repository.d.ts +18 -0
- package/dist/features/stores/repository/store.repository.js +27 -1
- package/dist/features/stores/schemas/firestore.d.ts +112 -0
- package/dist/features/stores/schemas/firestore.js +20 -0
- package/dist/features/stores/schemas/index.d.ts +6 -6
- package/dist/features/stores/types/index.d.ts +19 -0
- package/dist/features/support/repository/support.repository.js +72 -6
- package/dist/features/support/schemas/firestore.d.ts +17 -0
- package/dist/features/support/schemas/index.d.ts +8 -8
- package/dist/features/wishlist/hooks/useWishlistWithGuest.d.ts +1 -1
- package/dist/index.d.ts +11 -1
- package/dist/index.js +33 -1
- package/dist/next/routing/route-map.d.ts +112 -0
- package/dist/next/routing/route-map.js +63 -0
- package/dist/providers/shipping-shiprocket/index.d.ts +27 -1
- package/dist/providers/shipping-shiprocket/index.js +84 -1
- package/dist/react/contexts/SessionContext.d.ts +17 -1
- package/dist/schemas/registry.d.ts +69 -34
- package/dist/schemas/sieve.d.ts +2 -2
- package/dist/security/pii-schemas.d.ts +1 -1
- package/dist/security/pii-schemas.js +45 -0
- package/dist/server-entry.d.ts +2 -2
- package/dist/server-entry.js +8 -1
- package/dist/server.d.ts +36 -1
- package/dist/server.js +183 -1
- package/dist/styles.css +412 -80
- package/dist/tailwind-utilities.css +1 -1
- package/dist/tokens/themes/default-dark.js +1 -0
- package/dist/tokens/themes/default-light.js +1 -0
- package/dist/tokens/themes/required.d.ts +1 -1
- package/dist/tokens/themes/required.js +1 -0
- package/dist/tokens/tokens.css +15 -0
- package/dist/ui/components/Button.d.ts +10 -1
- package/dist/ui/components/Button.js +25 -3
- package/dist/ui/components/Chart.d.ts +63 -0
- package/dist/ui/components/Chart.js +169 -0
- package/dist/ui/components/Chart.style.css +214 -0
- package/dist/ui/components/Disclaimer.d.ts +19 -0
- package/dist/ui/components/Disclaimer.js +83 -0
- package/dist/ui/components/OverflowRow.js +54 -2
- package/dist/ui/components/OverflowRow.style.css +38 -0
- package/dist/ui/components/RichTextEditor.js +99 -8
- package/dist/ui/components/chart-spec.d.ts +68 -0
- package/dist/ui/components/chart-spec.js +140 -0
- package/dist/ui/components/index.style.css +1 -0
- package/dist/ui/components/surface-tokens.d.ts +1 -1
- package/dist/ui/components/surface-tokens.js +9 -0
- package/dist/ui/components/tabs-overflow.js +64 -11
- package/dist/ui/components/toolbar-collapse.d.ts +13 -0
- package/dist/ui/components/toolbar-collapse.js +10 -1
- package/dist/ui/index.d.ts +8 -0
- package/dist/ui/index.js +9 -0
- package/dist/ui/rich-text/RichText.d.ts +10 -1
- package/dist/ui/rich-text/RichText.js +33 -2
- package/dist/ui/rich-text/RichText.style.css +83 -79
- package/dist/ui/rich-text/RichTextRenderer.d.ts +30 -1
- package/dist/ui/rich-text/RichTextRenderer.js +34 -2
- package/dist/ui/rich-text/chart-blocks.d.ts +62 -0
- package/dist/ui/rich-text/chart-blocks.js +87 -0
- package/package.json +1 -1
- package/scripts/seed-cli.mjs +1834 -1822
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plain-language derivations for every fee line a buyer is shown.
|
|
3
|
+
*
|
|
4
|
+
* 🛑 The problem this solves is not presentation. The Order Summary listed
|
|
5
|
+
* `EMI surcharge ₹2,133.00`, `Platform fee ₹10.00` and `GST on platform fee
|
|
6
|
+
* ₹1.80` beside a `₹39,500.00` subtotal, and **none of the three could be
|
|
7
|
+
* checked by the person paying them.** ₹2,133 on ₹39,500 is 5.4% — a buyer has
|
|
8
|
+
* no way to tell whether that is a rate, a tenure, a rounding error or a bug,
|
|
9
|
+
* and the only honest response to an unexplained charge is to distrust it.
|
|
10
|
+
*
|
|
11
|
+
* ── Why the STRINGS live here and not in the component ────────────────────
|
|
12
|
+
*
|
|
13
|
+
* Each sentence is a claim about how a number was computed, and the number is
|
|
14
|
+
* computed in `calculator.ts` / `emi/schedule.ts`. Putting the sentence beside
|
|
15
|
+
* a `<Line>` would make it a second, prose implementation of the same rule —
|
|
16
|
+
* free to drift the moment a cap moves (Root Cause #75: a rule reachable by
|
|
17
|
+
* copy-paste gets copied, and the copy never learns about the branch added
|
|
18
|
+
* later). These functions read the SAME rate fields the calculators read.
|
|
19
|
+
*
|
|
20
|
+
* ── Why they take the CHARGED amount as an argument ───────────────────────
|
|
21
|
+
*
|
|
22
|
+
* They explain the figure actually on screen; they do not recompute it. If a
|
|
23
|
+
* derivation and the rendered amount ever disagree, the explanation must say
|
|
24
|
+
* so rather than quietly print a second, prettier number — so each function
|
|
25
|
+
* ends at the charged value and describes the route to it.
|
|
26
|
+
*
|
|
27
|
+
* 🛑 NOTHING HERE MAY NAME A SELLER-SIDE RATE. `surchargeSellerSharePercent`
|
|
28
|
+
* (the platform/seller split of the EMI surcharge), `gatewayFeePercent`,
|
|
29
|
+
* `payoutHoldDays` and `minPayoutAmount` are `PRIVATE_*_FIELDS`
|
|
30
|
+
* (Root Cause #70). The EMI functions below are typed against
|
|
31
|
+
* `BuyerEmiSettings`, which excludes the split structurally — so the omission
|
|
32
|
+
* is enforced by `tsc`, not by this paragraph.
|
|
33
|
+
*/
|
|
34
|
+
import type { BuyerEmiSettings, BuyerFacingFees } from "../features/site-settings/fees";
|
|
35
|
+
import type { BuyerEmiQuote } from "../features/emi/schedule";
|
|
36
|
+
/** One rendered explanation: a short claim plus the steps behind it. */
|
|
37
|
+
export interface FeeDerivation {
|
|
38
|
+
/** One sentence answering "why am I paying this". */
|
|
39
|
+
summary: string;
|
|
40
|
+
/** The arithmetic, one step per line, in the order it is applied. */
|
|
41
|
+
steps: string[];
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* The platform commission.
|
|
45
|
+
*
|
|
46
|
+
* The cap is the interesting half and the reason this needed explaining at
|
|
47
|
+
* all: on a ₹39,500 order the uncapped commission is large and the charge is
|
|
48
|
+
* ₹10, so the number on screen bears no visible relation to the subtotal.
|
|
49
|
+
*/
|
|
50
|
+
export declare function explainPlatformFee(subtotal: number, charged: number, fees: BuyerFacingFees | null, currency?: string): FeeDerivation | null;
|
|
51
|
+
/**
|
|
52
|
+
* GST on the commission.
|
|
53
|
+
*
|
|
54
|
+
* 🛑 Levied on the commission ACTUALLY CHARGED, never on the uncapped figure —
|
|
55
|
+
* which is the one thing a buyer checking ₹1.80 against a ₹39,500 subtotal
|
|
56
|
+
* would get wrong.
|
|
57
|
+
*/
|
|
58
|
+
export declare function explainGstOnPlatformFee(platformFee: number, charged: number, fees: BuyerFacingFees | null, currency?: string): FeeDerivation | null;
|
|
59
|
+
/**
|
|
60
|
+
* The EMI surcharge — the cost of credit, stated as a cost of credit.
|
|
61
|
+
*
|
|
62
|
+
* 🛑 Takes a `BuyerEmiQuote`, which is `computeBuyerEmiQuote`'s return type and
|
|
63
|
+
* carries no surcharge split. `computeEmiSchedule`'s richer result is
|
|
64
|
+
* assignable to it, so the type does not stop a server caller passing the
|
|
65
|
+
* wrong one — but nothing here reads a field that only exists on the wider
|
|
66
|
+
* shape, so no split can be printed either.
|
|
67
|
+
*/
|
|
68
|
+
export declare function explainEmiSurcharge(sellerSubtotal: number, tenureMonths: number, quote: BuyerEmiQuote, emi: BuyerEmiSettings | null, currency?: string): FeeDerivation | null;
|
|
69
|
+
/** COD handling — a cap that bites on most carts, same shape as the commission. */
|
|
70
|
+
export declare function explainCodHandlingFee(subtotal: number, charged: number, fees: BuyerFacingFees | null, currency?: string): FeeDerivation | null;
|
|
71
|
+
/**
|
|
72
|
+
* Every derivation a price breakdown can render, keyed by the line it belongs
|
|
73
|
+
* to. A key with no entry simply renders no disclosure — a line we cannot
|
|
74
|
+
* explain says nothing rather than guessing.
|
|
75
|
+
*/
|
|
76
|
+
export interface FeeDerivations {
|
|
77
|
+
platformFee?: FeeDerivation | null;
|
|
78
|
+
gstOnFee?: FeeDerivation | null;
|
|
79
|
+
emiSurcharge?: FeeDerivation | null;
|
|
80
|
+
codHandlingFee?: FeeDerivation | null;
|
|
81
|
+
}
|
|
@@ -0,0 +1,101 @@
|
|
|
1
|
+
import { formatCurrency } from "../../../utils/number.formatter.js";
|
|
2
|
+
/** `2` → `"2%"`, `2.5` → `"2.5%"` — no trailing `.0`. */
|
|
3
|
+
function pct(value) {
|
|
4
|
+
return `${Number(value.toFixed(2))}%`;
|
|
5
|
+
}
|
|
6
|
+
/**
|
|
7
|
+
* The platform commission.
|
|
8
|
+
*
|
|
9
|
+
* The cap is the interesting half and the reason this needed explaining at
|
|
10
|
+
* all: on a ₹39,500 order the uncapped commission is large and the charge is
|
|
11
|
+
* ₹10, so the number on screen bears no visible relation to the subtotal.
|
|
12
|
+
*/
|
|
13
|
+
export function explainPlatformFee(subtotal, charged, fees, currency = "INR") {
|
|
14
|
+
if (!fees || fees.platformFeePercent === undefined)
|
|
15
|
+
return null;
|
|
16
|
+
const money = (v) => formatCurrency(v, currency);
|
|
17
|
+
const uncapped = (subtotal * fees.platformFeePercent) / 100;
|
|
18
|
+
const steps = [
|
|
19
|
+
`${pct(fees.platformFeePercent)} of ${money(subtotal)} = ${money(uncapped)}`,
|
|
20
|
+
];
|
|
21
|
+
if (fees.platformFeeMax !== undefined && uncapped > fees.platformFeeMax) {
|
|
22
|
+
steps.push(`Capped at ${money(fees.platformFeeMax)} — you pay the cap, not the percentage`);
|
|
23
|
+
}
|
|
24
|
+
/*
|
|
25
|
+
* The floor is defined on `platformFee + gstOnFee` COMBINED and is applied
|
|
26
|
+
* once, inside `allocateCheckoutFees`, as extra platform fee with no GST of
|
|
27
|
+
* its own. So it is mentioned here and never on the GST line — see the D41
|
|
28
|
+
* note in `calculator.ts`.
|
|
29
|
+
*/
|
|
30
|
+
if (fees.minimumTransactionFee !== undefined && charged > Math.min(uncapped, fees.platformFeeMax ?? uncapped)) {
|
|
31
|
+
steps.push(`Raised to meet the ${money(fees.minimumTransactionFee)} minimum transaction fee, which covers the commission and its GST together`);
|
|
32
|
+
}
|
|
33
|
+
steps.push(`You pay ${money(charged)}`);
|
|
34
|
+
return {
|
|
35
|
+
summary: fees.platformFeeMax !== undefined && uncapped > fees.platformFeeMax
|
|
36
|
+
? `Our commission is ${pct(fees.platformFeePercent)}, capped at ${money(fees.platformFeeMax)} per order.`
|
|
37
|
+
: `Our commission is ${pct(fees.platformFeePercent)} of the order.`,
|
|
38
|
+
steps,
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
/**
|
|
42
|
+
* GST on the commission.
|
|
43
|
+
*
|
|
44
|
+
* 🛑 Levied on the commission ACTUALLY CHARGED, never on the uncapped figure —
|
|
45
|
+
* which is the one thing a buyer checking ₹1.80 against a ₹39,500 subtotal
|
|
46
|
+
* would get wrong.
|
|
47
|
+
*/
|
|
48
|
+
export function explainGstOnPlatformFee(platformFee, charged, fees, currency = "INR") {
|
|
49
|
+
if (!fees || fees.gstPercent === undefined)
|
|
50
|
+
return null;
|
|
51
|
+
const money = (v) => formatCurrency(v, currency);
|
|
52
|
+
return {
|
|
53
|
+
summary: `GST at ${pct(fees.gstPercent)}, charged on our commission — not on the price of the items.`,
|
|
54
|
+
steps: [
|
|
55
|
+
`${pct(fees.gstPercent)} of the ${money(platformFee)} commission = ${money(charged)}`,
|
|
56
|
+
"Item prices already include their own GST, shown below the total",
|
|
57
|
+
],
|
|
58
|
+
};
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* The EMI surcharge — the cost of credit, stated as a cost of credit.
|
|
62
|
+
*
|
|
63
|
+
* 🛑 Takes a `BuyerEmiQuote`, which is `computeBuyerEmiQuote`'s return type and
|
|
64
|
+
* carries no surcharge split. `computeEmiSchedule`'s richer result is
|
|
65
|
+
* assignable to it, so the type does not stop a server caller passing the
|
|
66
|
+
* wrong one — but nothing here reads a field that only exists on the wider
|
|
67
|
+
* shape, so no split can be printed either.
|
|
68
|
+
*/
|
|
69
|
+
export function explainEmiSurcharge(sellerSubtotal, tenureMonths, quote, emi, currency = "INR") {
|
|
70
|
+
if (!emi)
|
|
71
|
+
return null;
|
|
72
|
+
const money = (v) => formatCurrency(v, currency);
|
|
73
|
+
const principal = sellerSubtotal - quote.tokenAmount;
|
|
74
|
+
const perMonth = quote.installments[0]?.amount ?? 0;
|
|
75
|
+
return {
|
|
76
|
+
summary: `Spreading ${money(sellerSubtotal)} over ${tenureMonths} months costs ${money(quote.surchargeAmount)} — that is the total cost of credit.`,
|
|
77
|
+
steps: [
|
|
78
|
+
`Token paid today: ${pct(emi.tokenPercent)} of ${money(sellerSubtotal)} = ${money(quote.tokenAmount)}`,
|
|
79
|
+
`Financed amount: ${money(sellerSubtotal)} − ${money(quote.tokenAmount)} = ${money(principal)}`,
|
|
80
|
+
`Surcharge: ${pct(emi.surchargePercentPerMonth)} of ${money(principal)} per month × ${tenureMonths} months = ${money(quote.surchargeAmount)}`,
|
|
81
|
+
`Repaid over ${tenureMonths} instalments of about ${money(perMonth)}, due on day ${emi.billingDay} of each month`,
|
|
82
|
+
`Total you will pay: ${money(quote.tokenAmount)} + ${money(quote.remainingBalance)} = ${money(quote.tokenAmount + quote.remainingBalance)}`,
|
|
83
|
+
],
|
|
84
|
+
};
|
|
85
|
+
}
|
|
86
|
+
/** COD handling — a cap that bites on most carts, same shape as the commission. */
|
|
87
|
+
export function explainCodHandlingFee(subtotal, charged, fees, currency = "INR") {
|
|
88
|
+
if (!fees || fees.codHandlingFeePercent === undefined)
|
|
89
|
+
return null;
|
|
90
|
+
const money = (v) => formatCurrency(v, currency);
|
|
91
|
+
const uncapped = (subtotal * fees.codHandlingFeePercent) / 100;
|
|
92
|
+
const steps = [`${pct(fees.codHandlingFeePercent)} of ${money(subtotal)} = ${money(uncapped)}`];
|
|
93
|
+
if (fees.codHandlingFeeCap !== undefined && uncapped > fees.codHandlingFeeCap) {
|
|
94
|
+
steps.push(`Capped at ${money(fees.codHandlingFeeCap)}`);
|
|
95
|
+
}
|
|
96
|
+
steps.push(`You pay ${money(charged)}`);
|
|
97
|
+
return {
|
|
98
|
+
summary: "What it costs us to collect cash at your door and bank it.",
|
|
99
|
+
steps,
|
|
100
|
+
};
|
|
101
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export type { HistoryActorRole, HistoryActor, FieldChange, StatusChangeEntry, AppendHistoryResult, SerialisedStatusChangeEntry, } from "./types";
|
|
2
|
-
export { STATUS_HISTORY_MAX } from "./types";
|
|
2
|
+
export { STATUS_HISTORY_MAX, HISTORY_ACTOR_ROLE } from "./types";
|
|
3
3
|
export type { BuildHistoryEntryInput } from "./history";
|
|
4
4
|
export { diffTrackedFields, buildHistoryEntry, appendHistoryEntry, withHistory, } from "./history";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { STATUS_HISTORY_MAX } from "./types.js";
|
|
1
|
+
export { STATUS_HISTORY_MAX, HISTORY_ACTOR_ROLE } from "./types.js";
|
|
2
2
|
export { diffTrackedFields, buildHistoryEntry, appendHistoryEntry, withHistory, } from "./history.js";
|
|
@@ -9,7 +9,13 @@ import type { FirestoreValue } from "../../../schemas/types";
|
|
|
9
9
|
* entities had any history at all — `ads`, built inline in a route handler
|
|
10
10
|
* with no type and no reuse.
|
|
11
11
|
*/
|
|
12
|
-
export
|
|
12
|
+
export declare const HISTORY_ACTOR_ROLE: {
|
|
13
|
+
readonly BUYER: "buyer";
|
|
14
|
+
readonly SELLER: "seller";
|
|
15
|
+
readonly ADMIN: "admin";
|
|
16
|
+
readonly SYSTEM: "system";
|
|
17
|
+
};
|
|
18
|
+
export type HistoryActorRole = (typeof HISTORY_ACTOR_ROLE)[keyof typeof HISTORY_ACTOR_ROLE];
|
|
13
19
|
export interface HistoryActor {
|
|
14
20
|
/** Firebase Auth uid. Absent for `system` (cron jobs, Firestore triggers). */
|
|
15
21
|
uid?: string;
|
|
@@ -1,3 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generic entity status history — the shape shared by every entity that
|
|
3
|
+
* records how it got to its current state.
|
|
4
|
+
*
|
|
5
|
+
* Built for orders first (W2) and adopted by stores, payouts, offers, bids,
|
|
6
|
+
* support tickets, scammer profiles, catalogue approvals, shipments and
|
|
7
|
+
* returns in W15. Before this existed, exactly ONE of ~40 status-bearing
|
|
8
|
+
* entities had any history at all — `ads`, built inline in a route handler
|
|
9
|
+
* with no type and no reuse.
|
|
10
|
+
*/
|
|
11
|
+
/*
|
|
12
|
+
* 🛑 This is an ACTOR KIND, not a `UserDocument.role`. No user has the role
|
|
13
|
+
* "buyer" — a buyer's stored role is "user" — so the two namespaces must never
|
|
14
|
+
* be compared, and `audit-phantom-buyer-role` exists to catch exactly that
|
|
15
|
+
* mistake in a runtime auth gate.
|
|
16
|
+
*
|
|
17
|
+
* The constant below is what a gate should compare against: it names the
|
|
18
|
+
* namespace at the call site, where a bare `"buyer"` literal cannot.
|
|
19
|
+
*/
|
|
20
|
+
export const HISTORY_ACTOR_ROLE = {
|
|
21
|
+
BUYER: "buyer",
|
|
22
|
+
SELLER: "seller",
|
|
23
|
+
ADMIN: "admin",
|
|
24
|
+
SYSTEM: "system",
|
|
25
|
+
};
|
|
1
26
|
/**
|
|
2
27
|
* Cap for any history array. Matches `HISTORY_MAX`'s reasoning: an unbounded
|
|
3
28
|
* array on a hot document inflates every read of that document (Rule #6), and
|
package/dist/client.d.ts
CHANGED
|
@@ -283,6 +283,8 @@ export { useLogout, useLogin, useGoogleLogin, useLinkGoogleAccount, useRegister,
|
|
|
283
283
|
export type { LoginCredentials, RegisterData, ForgotPasswordData, ResetPasswordData, VerifyEmailData, ChangeEmailData } from "./features/auth/index";
|
|
284
284
|
export { CartView, CartItemRow, CartGroupLineRow, CartSummary, CartPriceBreakdown, CartDrawer, CheckoutView, CheckoutSuccessView, CheckoutAddressStep, useGuestCart, useCartCount, useAddToCart, useCart, useGuestCartMerge, useCartQuery } from "./features/cart/index";
|
|
285
285
|
export { StoreAddonsPicker, hasAnyStoreAddon } from "./features/cart/index";
|
|
286
|
+
export { PointsTenderPicker } from "./features/cart/index";
|
|
287
|
+
export type { PointsTenderPickerProps } from "./features/cart/index";
|
|
286
288
|
export { clientLineTotal } from "./features/cart/utils/line-total";
|
|
287
289
|
export type { PricedCartLine } from "./features/cart/utils/line-total";
|
|
288
290
|
export type { CartPriceBreakdownData, CartPriceBreakdownStore, StoreAddonsValue, StoreAddonsRates } from "./features/cart/index";
|
|
@@ -389,12 +391,20 @@ export type { UserAccountHubViewProps, UserAccountHubViewLabels, UserOrdersViewP
|
|
|
389
391
|
export { useOrders, useOrder, OrdersList } from "./features/orders/index";
|
|
390
392
|
export { OrderStatusTimeline } from "./features/orders/components/OrderStatusTimeline";
|
|
391
393
|
export type { OrderStatusTimelineProps } from "./features/orders/components/OrderStatusTimeline";
|
|
394
|
+
export { OrderProvenanceCard } from "./features/orders/components/OrderProvenanceCard";
|
|
395
|
+
export type { OrderProvenanceCardProps } from "./features/orders/components/OrderProvenanceCard";
|
|
396
|
+
export { RaiseDisputeForm } from "./features/orders/components/RaiseDisputeForm";
|
|
397
|
+
export type { RaiseDisputeFormProps } from "./features/orders/components/RaiseDisputeForm";
|
|
398
|
+
export type { OrderSourceContext } from "./features/orders/schemas/firestore";
|
|
392
399
|
export { PROTECTION_CLAIM_REASON_LABEL } from "./features/protection-claims/schemas/firestore";
|
|
393
400
|
export type { ProtectionClaimReason } from "./features/protection-claims/schemas/firestore";
|
|
394
401
|
export { OrderCompletionPanel } from "./features/orders/components/OrderCompletionPanel";
|
|
395
402
|
export type { OrderCompletionPanelProps, RateableLine } from "./features/orders/components/OrderCompletionPanel";
|
|
396
403
|
export { EmiInstallmentsPanel } from "./features/orders/components/EmiInstallmentsPanel";
|
|
397
404
|
export type { EmiInstallmentsPanelProps } from "./features/orders/components/EmiInstallmentsPanel";
|
|
405
|
+
export { BalancePaymentPanel } from "./features/orders/components/BalancePaymentPanel";
|
|
406
|
+
export type { BalancePaymentPanelProps } from "./features/orders/components/BalancePaymentPanel";
|
|
407
|
+
export { balanceProofSchema, balanceReviewSchema, type BalanceProofInput, type BalanceReviewInput, } from "./features/orders/schemas/balance";
|
|
398
408
|
export { CountdownDisplay } from "./ui/components/CountdownDisplay";
|
|
399
409
|
export type { CountdownDisplayProps } from "./ui/components/CountdownDisplay";
|
|
400
410
|
export { OrderAddonBadges } from "./features/orders/components/OrderAddonBadges";
|
|
@@ -506,6 +516,7 @@ export { CommandPalette, useCommandPaletteHotkey } from "./features/shell/index"
|
|
|
506
516
|
export type { CommandPaletteGroup } from "./features/shell/index";
|
|
507
517
|
export { AdminBlogEditorView, AdminBundleEditorView, AdminCarouselEditorView, AdminCategoryEditorView, AdminCouponEditorView, AdminFaqEditorView, AdminFeatureEditorView, AdminOrderEditorView, AdminPayoutMarkPaidModal, AdminAuditLogView, AdminMoneyCasesView, AdminGatewayEventsView, ViewAuditLogEntryModal, AdminProductEditorView, AdminScammerEditorView, AdminEmployeeEditorView, AdminNavEditorView, AdminUserEditorView, AdminStoreEditorView, AdminSublistingCategoryEditorView, AdminSupportTicketDetailView, } from "./features/admin/index";
|
|
508
518
|
export type { AdminStoreEditorViewProps, AdminPayoutMarkPaidModalProps, AdminAuditLogViewProps, AdminMoneyCasesViewProps, AuditLogEntryDetail, ViewAuditLogEntryModalProps } from "./features/admin/index";
|
|
519
|
+
export type { AdminOrderEditorViewProps } from "./features/admin/components/AdminOrderEditorView";
|
|
509
520
|
export type { NavItemData } from "./features/admin/index";
|
|
510
521
|
export { PageLoader } from "./ui/index";
|
|
511
522
|
export { ADMIN_CHECKOUT_BYPASS_FLAG_KEY } from "./features/admin/schemas/firestore";
|
|
@@ -527,6 +538,10 @@ export { BUNDLE_COPY } from "./_internal/shared/features/categories/bundle-copy"
|
|
|
527
538
|
export { useSiteSettings } from "./core/index";
|
|
528
539
|
export { checkEmiEligibility, computeEmiSchedule, computeBuyerEmiQuote, } from "./_internal/shared/features/emi/schedule";
|
|
529
540
|
export type { EmiSettings, BuyerEmiQuote } from "./_internal/shared/features/emi/schedule";
|
|
541
|
+
export { emiTenderBlockReason, isTenderCompatibleWithEmi } from "./_internal/shared/features/emi/choice";
|
|
542
|
+
export type { EmiTender } from "./_internal/shared/features/emi/choice";
|
|
543
|
+
export { explainCodHandlingFee, explainEmiSurcharge, explainGstOnPlatformFee, explainPlatformFee, } from "./_internal/shared/fees/explain";
|
|
544
|
+
export type { FeeDerivation, FeeDerivations } from "./_internal/shared/fees/explain";
|
|
530
545
|
export type { BuyerFacingFees, BuyerEmiSettings, } from "./_internal/shared/features/site-settings/fees";
|
|
531
546
|
export type { PublicSiteSettings } from "./_internal/shared/features/site-settings/types";
|
|
532
547
|
export { computeCodHandlingFee } from "./_internal/shared/fees/calculator";
|
|
@@ -551,6 +566,8 @@ export { raffleEntrySchema } from "./features/contact/schemas/inquiry-forms";
|
|
|
551
566
|
export { orderCancelSchema, paymentProofSchema, } from "./features/orders/schemas/buyer-forms";
|
|
552
567
|
export { scamReportFormSchema } from "./features/scams/schemas/report-form";
|
|
553
568
|
export { sublistingCategoryFormSchema } from "./features/store-extensions/schemas/sublisting-category-form";
|
|
569
|
+
export { adCreativeFormSchema } from "./features/ads/schemas/creative-form";
|
|
570
|
+
export type { AdCreativeFormValues } from "./features/ads/schemas/creative-form";
|
|
554
571
|
export { adminStoreUpdateSchema, announcementBarSchema, } from "./features/admin/schemas/admin-editor-forms";
|
|
555
572
|
export { adminOrderUpdateSchema, employeeInviteSchema, hardBanReasonSchema, featureFlagsUpdateSchema, adminAdFormSchema, } from "./features/admin/schemas/admin-ops-forms";
|
|
556
573
|
export { changeEmailSchema } from "./features/account/schemas/index";
|
|
@@ -586,6 +603,10 @@ export type { SellerSupportViewProps } from "./features/seller/components/Seller
|
|
|
586
603
|
export { REFUND_COPY } from "./_internal/shared/features/orders/refund-copy";
|
|
587
604
|
export { RETURN_REASON, FINAL_SALE_EXEMPT_REASONS, RETURN_REASON_LABEL, RETURN_REASON_GROUP_LABEL, isFinalSaleExempt, isReturnReason, selectableReturnReasons, } from "./_internal/shared/features/orders/return-reasons";
|
|
588
605
|
export type { ReturnReason } from "./_internal/shared/features/orders/return-reasons";
|
|
606
|
+
export { DISPUTE_KIND, DISPUTE_KIND_LABEL, DISPUTE_GATE, DISPUTE_TRANSIT_WINDOW_DAYS, DISPUTE_NOT_REACHED_GRACE_DAYS, isDisputeKind, checkDisputeGate, resolveDisputeEtd, disputeNotReachedFilableFrom, } from "./_internal/shared/features/orders/dispute-reasons";
|
|
607
|
+
export type { DisputeKind, DisputeGateOrder, DisputeGateResult, } from "./_internal/shared/features/orders/dispute-reasons";
|
|
608
|
+
export { INTEGRATIONS, INTEGRATION_ORDER, readIntegrationStates, integrationPatch, allIntegrationsPatch, } from "./_internal/shared/features/admin/integrations";
|
|
609
|
+
export type { IntegrationId, IntegrationDescriptor, IntegrationPatch, IntegrationState, } from "./_internal/shared/features/admin/integrations";
|
|
589
610
|
export { RefundRequestView } from "./features/orders/components/RefundRequestView";
|
|
590
611
|
export type { RefundRequestViewProps, RefundRequestSubmission, } from "./features/orders/components/RefundRequestView";
|
|
591
612
|
export { ORDER_RETURN_WINDOW_DAYS, ORDER_RETURN_WINDOW_MS, ORDER_CANCELLABLE_STATUSES, } from "./_internal/shared/features/orders/config";
|
package/dist/client.js
CHANGED
|
@@ -335,6 +335,10 @@ export { ProtectedRoute, ForgotPasswordView, LoginForm, RegisterForm, ResetPassw
|
|
|
335
335
|
export { useLogout, useLogin, useGoogleLogin, useLinkGoogleAccount, useRegister, useForgotPassword, useResetPassword, useVerifyEmail, useChangeEmail } from "./features/auth/index.js";
|
|
336
336
|
export { CartView, CartItemRow, CartGroupLineRow, CartSummary, CartPriceBreakdown, CartDrawer, CheckoutView, CheckoutSuccessView, CheckoutAddressStep, useGuestCart, useCartCount, useAddToCart, useCart, useGuestCartMerge, useCartQuery } from "./features/cart/index.js";
|
|
337
337
|
export { StoreAddonsPicker, hasAnyStoreAddon } from "./features/cart/index.js";
|
|
338
|
+
// D46/D47 — the cart's single "pay with my points" control. One per CART, not
|
|
339
|
+
// per store, unlike the add-ons picker above it: points are the buyer's balance
|
|
340
|
+
// rather than something bought from a seller.
|
|
341
|
+
export { PointsTenderPicker } from "./features/cart/index.js";
|
|
338
342
|
export { clientLineTotal } from "./features/cart/utils/line-total.js";
|
|
339
343
|
// `clearCartOps` / `removeCartOpsFor` are exported because the cart page has to
|
|
340
344
|
// drain the queue after a removal succeeds server-side — without them a cleared
|
|
@@ -416,6 +420,9 @@ export { couponDraftToPayload } from "./features/seller/schemas/coupon-form.js";
|
|
|
416
420
|
export { UserAccountHubView, UserOrdersView, UserBidsView, OrderDetailView, UserReturnsView, useNotifications } from "./features/account/index.js";
|
|
417
421
|
export { useOrders, useOrder, OrdersList } from "./features/orders/index.js";
|
|
418
422
|
export { OrderStatusTimeline } from "./features/orders/components/OrderStatusTimeline.js";
|
|
423
|
+
export { OrderProvenanceCard } from "./features/orders/components/OrderProvenanceCard.js";
|
|
424
|
+
// The buyer's dispute form: pick a kind, pick a reason, say what happened.
|
|
425
|
+
export { RaiseDisputeForm } from "./features/orders/components/RaiseDisputeForm.js";
|
|
419
426
|
/*
|
|
420
427
|
* The buyer's completion surface. Client entry only — it fetches and posts.
|
|
421
428
|
*/
|
|
@@ -433,6 +440,9 @@ export { PROTECTION_CLAIM_REASON_LABEL } from "./features/protection-claims/sche
|
|
|
433
440
|
export { OrderCompletionPanel } from "./features/orders/components/OrderCompletionPanel.js";
|
|
434
441
|
// Buyer-facing EMI schedule with a pay-any-instalment action.
|
|
435
442
|
export { EmiInstallmentsPanel } from "./features/orders/components/EmiInstallmentsPanel.js";
|
|
443
|
+
// D55 — the pre-order balance collector's buyer panel and its write shapes.
|
|
444
|
+
export { BalancePaymentPanel } from "./features/orders/components/BalancePaymentPanel.js";
|
|
445
|
+
export { balanceProofSchema, balanceReviewSchema, } from "./features/orders/schemas/balance.js";
|
|
436
446
|
export { CountdownDisplay } from "./ui/components/CountdownDisplay.js";
|
|
437
447
|
export { OrderAddonBadges } from "./features/orders/components/OrderAddonBadges.js";
|
|
438
448
|
// Manual-payment (cash / UPI / EMI) shared constants — pure data + predicates,
|
|
@@ -560,6 +570,15 @@ export { useProduct } from "./features/products/index.js";
|
|
|
560
570
|
export { BUNDLE_COPY } from "./_internal/shared/features/categories/bundle-copy.js";
|
|
561
571
|
export { useSiteSettings } from "./core/index.js";
|
|
562
572
|
export { checkEmiEligibility, computeEmiSchedule, computeBuyerEmiQuote, } from "./_internal/shared/features/emi/schedule.js";
|
|
573
|
+
/*
|
|
574
|
+
* 0f — the checkout client needs to know which tenders can carry instalments
|
|
575
|
+
* so it can DISABLE an incompatible one with a reason rather than let the
|
|
576
|
+
* buyer pick it and be refused at submit. Same map the server refuses from, so
|
|
577
|
+
* the affordance and the rule cannot disagree.
|
|
578
|
+
*/
|
|
579
|
+
export { emiTenderBlockReason, isTenderCompatibleWithEmi } from "./_internal/shared/features/emi/choice.js";
|
|
580
|
+
/* The derivation strings for the fee breakdown — pure, no I/O. */
|
|
581
|
+
export { explainCodHandlingFee, explainEmiSurcharge, explainGstOnPlatformFee, explainPlatformFee, } from "./_internal/shared/fees/explain.js";
|
|
563
582
|
export { computeCodHandlingFee } from "./_internal/shared/fees/calculator.js"; // reexport-from-internal-ok: pure fee-calc utility consumed directly by public checkout UI (CheckoutRouteClient.tsx), same category as the sibling computeEmiSchedule/checkEmiEligibility re-export two lines above
|
|
564
583
|
export { FAQPageContent } from "./features/faq/index.js";
|
|
565
584
|
export { CategoryInlineSelect } from "./features/seller/components/CategoryInlineSelect.js";
|
|
@@ -596,6 +615,7 @@ export { raffleEntrySchema } from "./features/contact/schemas/inquiry-forms.js";
|
|
|
596
615
|
export { orderCancelSchema, paymentProofSchema, } from "./features/orders/schemas/buyer-forms.js";
|
|
597
616
|
export { scamReportFormSchema } from "./features/scams/schemas/report-form.js";
|
|
598
617
|
export { sublistingCategoryFormSchema } from "./features/store-extensions/schemas/sublisting-category-form.js";
|
|
618
|
+
export { adCreativeFormSchema } from "./features/ads/schemas/creative-form.js";
|
|
599
619
|
export { adminStoreUpdateSchema, announcementBarSchema, } from "./features/admin/schemas/admin-editor-forms.js";
|
|
600
620
|
export { adminOrderUpdateSchema, employeeInviteSchema, hardBanReasonSchema, featureFlagsUpdateSchema, adminAdFormSchema, } from "./features/admin/schemas/admin-ops-forms.js";
|
|
601
621
|
export { changeEmailSchema } from "./features/account/schemas/index.js";
|
|
@@ -634,6 +654,29 @@ export { REFUND_COPY } from "./_internal/shared/features/orders/refund-copy.js";
|
|
|
634
654
|
// See the module docstring for why the exempt set is "seller or carrier fault"
|
|
635
655
|
// rather than "serious reasons".
|
|
636
656
|
export { RETURN_REASON, FINAL_SALE_EXEMPT_REASONS, RETURN_REASON_LABEL, RETURN_REASON_GROUP_LABEL, isFinalSaleExempt, isReturnReason, selectableReturnReasons, } from "./_internal/shared/features/orders/return-reasons.js";
|
|
657
|
+
// Dispute KINDS and their gates. Exported for the same reason the return
|
|
658
|
+
// reasons above are: the buyer's form renders the labels and needs to show the
|
|
659
|
+
// date a `not_reached` dispute becomes filable from, and
|
|
660
|
+
// `@mohasinac/appkit/_internal/*` is NOT a subpath export — `_internal` is
|
|
661
|
+
// reachable only through a barrel.
|
|
662
|
+
export { DISPUTE_KIND, DISPUTE_KIND_LABEL, DISPUTE_GATE, DISPUTE_TRANSIT_WINDOW_DAYS, DISPUTE_NOT_REACHED_GRACE_DAYS, isDisputeKind, checkDisputeGate, resolveDisputeEtd, disputeNotReachedFilableFrom, } from "./_internal/shared/features/orders/dispute-reasons.js";
|
|
663
|
+
/*
|
|
664
|
+
* The integration switches. Exported from the CLIENT entry because the admin
|
|
665
|
+
* integrations page is a "use client" surface — it renders each row's label and
|
|
666
|
+
* `offConsequence` and needs `readIntegrationStates` to show the current
|
|
667
|
+
* position.
|
|
668
|
+
*
|
|
669
|
+
* 🛑 The SAME module is re-exported from `server.ts`, deliberately, because the
|
|
670
|
+
* route guards resolve their answer through `readIntegrationStates` too. One
|
|
671
|
+
* expression, two entries — which is the point: a hand-written copy of "is this
|
|
672
|
+
* integration on" in a guard is how the page and the enforcement drift apart,
|
|
673
|
+
* and that had already happened once inside the module itself (the payments OR
|
|
674
|
+
* across both gateways).
|
|
675
|
+
*
|
|
676
|
+
* Safe in a client bundle: the file's only import is `import type`, so its
|
|
677
|
+
* runtime graph is empty and it cannot reach firebase-admin.
|
|
678
|
+
*/
|
|
679
|
+
export { INTEGRATIONS, INTEGRATION_ORDER, readIntegrationStates, integrationPatch, allIntegrationsPatch, } from "./_internal/shared/features/admin/integrations.js";
|
|
637
680
|
// Buyer-facing return/refund request form and the window it is gated on.
|
|
638
681
|
// Exported from the CLIENT entry because the page that renders it is a
|
|
639
682
|
// "use client" route — importing it from the main entry there would drag the
|
|
@@ -98,6 +98,10 @@ export declare const ADMIN_ENDPOINTS: {
|
|
|
98
98
|
/** The action-index control plane (W7 / D7) — GET the whole index, PATCH one override. */
|
|
99
99
|
readonly ACTION_INDEX: "/api/admin/action-index";
|
|
100
100
|
readonly AD_BY_ID: (id: string) => string;
|
|
101
|
+
/** D56 — the self-serve creative moderation queue. */
|
|
102
|
+
readonly AD_BOOKINGS: "/api/admin/ads/bookings";
|
|
103
|
+
/** D56 — approve or reject one creative. A rejection REQUIRES a note. */
|
|
104
|
+
readonly AD_BOOKING_MODERATE: (id: string) => string;
|
|
101
105
|
readonly PAYMENTS_SETTINGS: "/api/admin/payments/settings";
|
|
102
106
|
readonly PRODUCTS: "/api/admin/products";
|
|
103
107
|
readonly PRODUCT_BY_ID: (id: string) => string;
|
|
@@ -110,6 +114,7 @@ export declare const ADMIN_ENDPOINTS: {
|
|
|
110
114
|
readonly ORDER_PAYMENT_VERIFY: (id: string) => string;
|
|
111
115
|
readonly ORDER_PAYMENT_REUPLOAD: (id: string) => string;
|
|
112
116
|
readonly ORDER_PAYMENT_REJECT_FRAUD: (id: string) => string;
|
|
117
|
+
readonly ORDER_BALANCE_REVIEW: (id: string) => string;
|
|
113
118
|
readonly USERS: "/api/admin/users";
|
|
114
119
|
readonly USERS_BULK: "/api/admin/users/bulk";
|
|
115
120
|
readonly USER_BY_ID: (uid: string) => string;
|
|
@@ -150,6 +155,14 @@ export declare const ADMIN_ENDPOINTS: {
|
|
|
150
155
|
readonly PAYOUTS_EXPORT: "/api/admin/payouts/export";
|
|
151
156
|
readonly AUDIT_LOG: "/api/admin/audit-log";
|
|
152
157
|
readonly AUDIT_LOG_BY_ID: (id: string) => string;
|
|
158
|
+
/**
|
|
159
|
+
* Phase 7 — the GSTR-1 DRAFT export. Takes `?from=&to=` as YYYY-MM-DD and
|
|
160
|
+
* returns a CSV.
|
|
161
|
+
*
|
|
162
|
+
* 🛑 "draft" is in the filename for a reason: nothing in this codebase talks
|
|
163
|
+
* to the GST portal, and the file is the input to a human filing.
|
|
164
|
+
*/
|
|
165
|
+
readonly INVOICING_GSTR1: "/api/admin/invoicing/gstr1";
|
|
153
166
|
readonly PAYMENT_CASES: "/api/admin/payment-cases";
|
|
154
167
|
readonly PAYMENT_CASE_BY_ID: (id: string) => string;
|
|
155
168
|
readonly PROTECTION_CLAIMS: "/api/admin/protection-claims";
|
|
@@ -272,6 +285,19 @@ export declare const CART_ENDPOINTS: {
|
|
|
272
285
|
readonly SELECTION: "/api/cart/selection";
|
|
273
286
|
/** Per-store paid add-on selections — the source of truth for what's charged. */
|
|
274
287
|
readonly ADDONS: "/api/cart/addons";
|
|
288
|
+
/**
|
|
289
|
+
* Pay with points, on or off (D46/D47). A boolean and nothing else — the
|
|
290
|
+
* AMOUNT is derived server-side from the live balance and the 50% cap, which
|
|
291
|
+
* is why there is no `/api/cart/points/amount`.
|
|
292
|
+
*/
|
|
293
|
+
readonly POINTS: "/api/cart/points";
|
|
294
|
+
/**
|
|
295
|
+
* The instalment plan — a TENURE and nothing else. It lives on the cart,
|
|
296
|
+
* not in a checkout body, because the online path needs the same answer in
|
|
297
|
+
* two requests (`/api/payment/create-order` captures, `/api/payment/verify`
|
|
298
|
+
* writes the order). Same reasoning as `POINTS` and `ADDONS` above.
|
|
299
|
+
*/
|
|
300
|
+
readonly EMI: "/api/cart/emi";
|
|
275
301
|
readonly COUPON: "/api/cart/coupon";
|
|
276
302
|
/**
|
|
277
303
|
* Add a buyer-assembled group selection as ONE line. Separate from `GET`'s
|
|
@@ -447,6 +473,7 @@ export declare const ORDER_ENDPOINTS: {
|
|
|
447
473
|
readonly BY_ID: (id: string) => string;
|
|
448
474
|
readonly TRACK: (trackingId: string) => string;
|
|
449
475
|
readonly PAYMENT_PROOF: (id: string) => string;
|
|
476
|
+
readonly BALANCE_PROOF: (id: string) => string;
|
|
450
477
|
readonly DISPUTE: (id: string) => string;
|
|
451
478
|
};
|
|
452
479
|
export declare const PREORDER_ENDPOINTS: {
|
|
@@ -488,6 +515,17 @@ export declare const SELLER_ENDPOINTS: {
|
|
|
488
515
|
readonly PRODUCTS: "/api/store/products";
|
|
489
516
|
readonly ORDERS: "/api/store/orders";
|
|
490
517
|
readonly ORDERS_BY_ID: (orderId: string) => string;
|
|
518
|
+
/**
|
|
519
|
+
* Dispatch — BOTH branches of `shipOrderSchema`'s discriminated union.
|
|
520
|
+
*
|
|
521
|
+
* `method: "custom"` records a carrier the seller posted themselves;
|
|
522
|
+
* `method: "platform"` enqueues a booking through our own account. One
|
|
523
|
+
* route, because they are one decision — a second endpoint for the
|
|
524
|
+
* platform branch would be the same handler behind two ceilings, which is
|
|
525
|
+
* Root Cause #85.
|
|
526
|
+
*/
|
|
527
|
+
readonly ORDER_SHIP: (orderId: string) => string;
|
|
528
|
+
readonly ORDER_OPEN_BALANCE: (orderId: string) => string;
|
|
491
529
|
readonly AUCTIONS: "/api/store/products";
|
|
492
530
|
readonly COUPONS: "/api/store/coupons";
|
|
493
531
|
readonly COUPON_BY_ID: (id: string) => string;
|
|
@@ -681,6 +719,10 @@ export declare const API_ENDPOINTS: {
|
|
|
681
719
|
/** The action-index control plane (W7 / D7) — GET the whole index, PATCH one override. */
|
|
682
720
|
readonly ACTION_INDEX: "/api/admin/action-index";
|
|
683
721
|
readonly AD_BY_ID: (id: string) => string;
|
|
722
|
+
/** D56 — the self-serve creative moderation queue. */
|
|
723
|
+
readonly AD_BOOKINGS: "/api/admin/ads/bookings";
|
|
724
|
+
/** D56 — approve or reject one creative. A rejection REQUIRES a note. */
|
|
725
|
+
readonly AD_BOOKING_MODERATE: (id: string) => string;
|
|
684
726
|
readonly PAYMENTS_SETTINGS: "/api/admin/payments/settings";
|
|
685
727
|
readonly PRODUCTS: "/api/admin/products";
|
|
686
728
|
readonly PRODUCT_BY_ID: (id: string) => string;
|
|
@@ -693,6 +735,7 @@ export declare const API_ENDPOINTS: {
|
|
|
693
735
|
readonly ORDER_PAYMENT_VERIFY: (id: string) => string;
|
|
694
736
|
readonly ORDER_PAYMENT_REUPLOAD: (id: string) => string;
|
|
695
737
|
readonly ORDER_PAYMENT_REJECT_FRAUD: (id: string) => string;
|
|
738
|
+
readonly ORDER_BALANCE_REVIEW: (id: string) => string;
|
|
696
739
|
readonly USERS: "/api/admin/users";
|
|
697
740
|
readonly USERS_BULK: "/api/admin/users/bulk";
|
|
698
741
|
readonly USER_BY_ID: (uid: string) => string;
|
|
@@ -733,6 +776,14 @@ export declare const API_ENDPOINTS: {
|
|
|
733
776
|
readonly PAYOUTS_EXPORT: "/api/admin/payouts/export";
|
|
734
777
|
readonly AUDIT_LOG: "/api/admin/audit-log";
|
|
735
778
|
readonly AUDIT_LOG_BY_ID: (id: string) => string;
|
|
779
|
+
/**
|
|
780
|
+
* Phase 7 — the GSTR-1 DRAFT export. Takes `?from=&to=` as YYYY-MM-DD and
|
|
781
|
+
* returns a CSV.
|
|
782
|
+
*
|
|
783
|
+
* 🛑 "draft" is in the filename for a reason: nothing in this codebase talks
|
|
784
|
+
* to the GST portal, and the file is the input to a human filing.
|
|
785
|
+
*/
|
|
786
|
+
readonly INVOICING_GSTR1: "/api/admin/invoicing/gstr1";
|
|
736
787
|
readonly PAYMENT_CASES: "/api/admin/payment-cases";
|
|
737
788
|
readonly PAYMENT_CASE_BY_ID: (id: string) => string;
|
|
738
789
|
readonly PROTECTION_CLAIMS: "/api/admin/protection-claims";
|
|
@@ -855,6 +906,19 @@ export declare const API_ENDPOINTS: {
|
|
|
855
906
|
readonly SELECTION: "/api/cart/selection";
|
|
856
907
|
/** Per-store paid add-on selections — the source of truth for what's charged. */
|
|
857
908
|
readonly ADDONS: "/api/cart/addons";
|
|
909
|
+
/**
|
|
910
|
+
* Pay with points, on or off (D46/D47). A boolean and nothing else — the
|
|
911
|
+
* AMOUNT is derived server-side from the live balance and the 50% cap, which
|
|
912
|
+
* is why there is no `/api/cart/points/amount`.
|
|
913
|
+
*/
|
|
914
|
+
readonly POINTS: "/api/cart/points";
|
|
915
|
+
/**
|
|
916
|
+
* The instalment plan — a TENURE and nothing else. It lives on the cart,
|
|
917
|
+
* not in a checkout body, because the online path needs the same answer in
|
|
918
|
+
* two requests (`/api/payment/create-order` captures, `/api/payment/verify`
|
|
919
|
+
* writes the order). Same reasoning as `POINTS` and `ADDONS` above.
|
|
920
|
+
*/
|
|
921
|
+
readonly EMI: "/api/cart/emi";
|
|
858
922
|
readonly COUPON: "/api/cart/coupon";
|
|
859
923
|
/**
|
|
860
924
|
* Add a buyer-assembled group selection as ONE line. Separate from `GET`'s
|
|
@@ -977,6 +1041,7 @@ export declare const API_ENDPOINTS: {
|
|
|
977
1041
|
readonly BY_ID: (id: string) => string;
|
|
978
1042
|
readonly TRACK: (trackingId: string) => string;
|
|
979
1043
|
readonly PAYMENT_PROOF: (id: string) => string;
|
|
1044
|
+
readonly BALANCE_PROOF: (id: string) => string;
|
|
980
1045
|
readonly DISPUTE: (id: string) => string;
|
|
981
1046
|
};
|
|
982
1047
|
readonly PREORDERS: {
|
|
@@ -1015,6 +1080,17 @@ export declare const API_ENDPOINTS: {
|
|
|
1015
1080
|
readonly PRODUCTS: "/api/store/products";
|
|
1016
1081
|
readonly ORDERS: "/api/store/orders";
|
|
1017
1082
|
readonly ORDERS_BY_ID: (orderId: string) => string;
|
|
1083
|
+
/**
|
|
1084
|
+
* Dispatch — BOTH branches of `shipOrderSchema`'s discriminated union.
|
|
1085
|
+
*
|
|
1086
|
+
* `method: "custom"` records a carrier the seller posted themselves;
|
|
1087
|
+
* `method: "platform"` enqueues a booking through our own account. One
|
|
1088
|
+
* route, because they are one decision — a second endpoint for the
|
|
1089
|
+
* platform branch would be the same handler behind two ceilings, which is
|
|
1090
|
+
* Root Cause #85.
|
|
1091
|
+
*/
|
|
1092
|
+
readonly ORDER_SHIP: (orderId: string) => string;
|
|
1093
|
+
readonly ORDER_OPEN_BALANCE: (orderId: string) => string;
|
|
1018
1094
|
readonly AUCTIONS: "/api/store/products";
|
|
1019
1095
|
readonly COUPONS: "/api/store/coupons";
|
|
1020
1096
|
readonly COUPON_BY_ID: (id: string) => string;
|
|
@@ -1229,6 +1305,10 @@ export declare const API_ROUTES: {
|
|
|
1229
1305
|
/** The action-index control plane (W7 / D7) — GET the whole index, PATCH one override. */
|
|
1230
1306
|
readonly ACTION_INDEX: "/api/admin/action-index";
|
|
1231
1307
|
readonly AD_BY_ID: (id: string) => string;
|
|
1308
|
+
/** D56 — the self-serve creative moderation queue. */
|
|
1309
|
+
readonly AD_BOOKINGS: "/api/admin/ads/bookings";
|
|
1310
|
+
/** D56 — approve or reject one creative. A rejection REQUIRES a note. */
|
|
1311
|
+
readonly AD_BOOKING_MODERATE: (id: string) => string;
|
|
1232
1312
|
readonly PAYMENTS_SETTINGS: "/api/admin/payments/settings";
|
|
1233
1313
|
readonly PRODUCTS: "/api/admin/products";
|
|
1234
1314
|
readonly PRODUCT_BY_ID: (id: string) => string;
|
|
@@ -1241,6 +1321,7 @@ export declare const API_ROUTES: {
|
|
|
1241
1321
|
readonly ORDER_PAYMENT_VERIFY: (id: string) => string;
|
|
1242
1322
|
readonly ORDER_PAYMENT_REUPLOAD: (id: string) => string;
|
|
1243
1323
|
readonly ORDER_PAYMENT_REJECT_FRAUD: (id: string) => string;
|
|
1324
|
+
readonly ORDER_BALANCE_REVIEW: (id: string) => string;
|
|
1244
1325
|
readonly USERS: "/api/admin/users";
|
|
1245
1326
|
readonly USERS_BULK: "/api/admin/users/bulk";
|
|
1246
1327
|
readonly USER_BY_ID: (uid: string) => string;
|
|
@@ -1281,6 +1362,14 @@ export declare const API_ROUTES: {
|
|
|
1281
1362
|
readonly PAYOUTS_EXPORT: "/api/admin/payouts/export";
|
|
1282
1363
|
readonly AUDIT_LOG: "/api/admin/audit-log";
|
|
1283
1364
|
readonly AUDIT_LOG_BY_ID: (id: string) => string;
|
|
1365
|
+
/**
|
|
1366
|
+
* Phase 7 — the GSTR-1 DRAFT export. Takes `?from=&to=` as YYYY-MM-DD and
|
|
1367
|
+
* returns a CSV.
|
|
1368
|
+
*
|
|
1369
|
+
* 🛑 "draft" is in the filename for a reason: nothing in this codebase talks
|
|
1370
|
+
* to the GST portal, and the file is the input to a human filing.
|
|
1371
|
+
*/
|
|
1372
|
+
readonly INVOICING_GSTR1: "/api/admin/invoicing/gstr1";
|
|
1284
1373
|
readonly PAYMENT_CASES: "/api/admin/payment-cases";
|
|
1285
1374
|
readonly PAYMENT_CASE_BY_ID: (id: string) => string;
|
|
1286
1375
|
readonly PROTECTION_CLAIMS: "/api/admin/protection-claims";
|
|
@@ -1403,6 +1492,19 @@ export declare const API_ROUTES: {
|
|
|
1403
1492
|
readonly SELECTION: "/api/cart/selection";
|
|
1404
1493
|
/** Per-store paid add-on selections — the source of truth for what's charged. */
|
|
1405
1494
|
readonly ADDONS: "/api/cart/addons";
|
|
1495
|
+
/**
|
|
1496
|
+
* Pay with points, on or off (D46/D47). A boolean and nothing else — the
|
|
1497
|
+
* AMOUNT is derived server-side from the live balance and the 50% cap, which
|
|
1498
|
+
* is why there is no `/api/cart/points/amount`.
|
|
1499
|
+
*/
|
|
1500
|
+
readonly POINTS: "/api/cart/points";
|
|
1501
|
+
/**
|
|
1502
|
+
* The instalment plan — a TENURE and nothing else. It lives on the cart,
|
|
1503
|
+
* not in a checkout body, because the online path needs the same answer in
|
|
1504
|
+
* two requests (`/api/payment/create-order` captures, `/api/payment/verify`
|
|
1505
|
+
* writes the order). Same reasoning as `POINTS` and `ADDONS` above.
|
|
1506
|
+
*/
|
|
1507
|
+
readonly EMI: "/api/cart/emi";
|
|
1406
1508
|
readonly COUPON: "/api/cart/coupon";
|
|
1407
1509
|
/**
|
|
1408
1510
|
* Add a buyer-assembled group selection as ONE line. Separate from `GET`'s
|
|
@@ -1525,6 +1627,7 @@ export declare const API_ROUTES: {
|
|
|
1525
1627
|
readonly BY_ID: (id: string) => string;
|
|
1526
1628
|
readonly TRACK: (trackingId: string) => string;
|
|
1527
1629
|
readonly PAYMENT_PROOF: (id: string) => string;
|
|
1630
|
+
readonly BALANCE_PROOF: (id: string) => string;
|
|
1528
1631
|
readonly DISPUTE: (id: string) => string;
|
|
1529
1632
|
};
|
|
1530
1633
|
readonly PREORDERS: {
|
|
@@ -1563,6 +1666,17 @@ export declare const API_ROUTES: {
|
|
|
1563
1666
|
readonly PRODUCTS: "/api/store/products";
|
|
1564
1667
|
readonly ORDERS: "/api/store/orders";
|
|
1565
1668
|
readonly ORDERS_BY_ID: (orderId: string) => string;
|
|
1669
|
+
/**
|
|
1670
|
+
* Dispatch — BOTH branches of `shipOrderSchema`'s discriminated union.
|
|
1671
|
+
*
|
|
1672
|
+
* `method: "custom"` records a carrier the seller posted themselves;
|
|
1673
|
+
* `method: "platform"` enqueues a booking through our own account. One
|
|
1674
|
+
* route, because they are one decision — a second endpoint for the
|
|
1675
|
+
* platform branch would be the same handler behind two ceilings, which is
|
|
1676
|
+
* Root Cause #85.
|
|
1677
|
+
*/
|
|
1678
|
+
readonly ORDER_SHIP: (orderId: string) => string;
|
|
1679
|
+
readonly ORDER_OPEN_BALANCE: (orderId: string) => string;
|
|
1566
1680
|
readonly AUCTIONS: "/api/store/products";
|
|
1567
1681
|
readonly COUPONS: "/api/store/coupons";
|
|
1568
1682
|
readonly COUPON_BY_ID: (id: string) => string;
|