@mohasinac/appkit 3.2.19 → 3.3.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 (202) hide show
  1. package/dist/_internal/server/features/checkout/actions.d.ts +2 -0
  2. package/dist/_internal/server/features/checkout/actions.js +239 -190
  3. package/dist/_internal/server/functions/scheduled.d.ts +2 -1
  4. package/dist/_internal/server/functions/scheduled.js +9 -1
  5. package/dist/_internal/server/jobs/core/autoPayoutEligibility.js +8 -11
  6. package/dist/_internal/server/jobs/core/emiInstallmentReminder.d.ts +8 -0
  7. package/dist/_internal/server/jobs/core/emiInstallmentReminder.js +78 -0
  8. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.d.ts +2 -2
  9. package/dist/_internal/server/jobs/core/weeklyPayoutEligibility.js +15 -10
  10. package/dist/_internal/server/jobs/handlers/emiInstallmentReminder.d.ts +2 -0
  11. package/dist/_internal/server/jobs/handlers/emiInstallmentReminder.js +2 -0
  12. package/dist/_internal/server/jobs/handlers/index.d.ts +1 -0
  13. package/dist/_internal/server/jobs/handlers/index.js +2 -0
  14. package/dist/_internal/server/providers/index.d.ts +4 -4
  15. package/dist/_internal/server/providers/index.js +4 -4
  16. package/dist/_internal/server/providers/payment/razorpay-mock.d.ts +3 -2
  17. package/dist/_internal/server/providers/payment/razorpay-mock.js +3 -1
  18. package/dist/_internal/server/providers/resolve.d.ts +10 -13
  19. package/dist/_internal/server/providers/resolve.js +9 -15
  20. package/dist/_internal/shared/actions/action-registry.js +28 -0
  21. package/dist/_internal/shared/checkout/rules/_defaults.js +1 -0
  22. package/dist/_internal/shared/checkout/rules/_registry.js +4 -0
  23. package/dist/_internal/shared/checkout/rules/art.rule.d.ts +9 -0
  24. package/dist/_internal/shared/checkout/rules/art.rule.js +5 -0
  25. package/dist/_internal/shared/checkout/rules/auction.rule.js +1 -0
  26. package/dist/_internal/shared/checkout/rules/classified.rule.js +1 -0
  27. package/dist/_internal/shared/checkout/rules/index.d.ts +2 -0
  28. package/dist/_internal/shared/checkout/rules/index.js +2 -0
  29. package/dist/_internal/shared/checkout/rules/stickers.rule.d.ts +9 -0
  30. package/dist/_internal/shared/checkout/rules/stickers.rule.js +5 -0
  31. package/dist/_internal/shared/checkout/rules/types.d.ts +6 -0
  32. package/dist/_internal/shared/features/checkout/config.d.ts +16 -1
  33. package/dist/_internal/shared/features/checkout/config.js +16 -1
  34. package/dist/_internal/shared/features/emi/schedule.d.ts +63 -0
  35. package/dist/_internal/shared/features/emi/schedule.js +62 -0
  36. package/dist/_internal/shared/fees/calculator.d.ts +53 -0
  37. package/dist/_internal/shared/fees/calculator.js +40 -0
  38. package/dist/_internal/shared/listing-types/_registry.d.ts +22 -66
  39. package/dist/_internal/shared/listing-types/_registry.js +19 -2
  40. package/dist/_internal/shared/listing-types/art/config.d.ts +15 -0
  41. package/dist/_internal/shared/listing-types/art/config.js +14 -0
  42. package/dist/_internal/shared/listing-types/art/ctas.d.ts +1 -0
  43. package/dist/_internal/shared/listing-types/art/ctas.js +3 -0
  44. package/dist/_internal/shared/listing-types/art/og.d.ts +1 -0
  45. package/dist/_internal/shared/listing-types/art/og.js +1 -0
  46. package/dist/_internal/shared/listing-types/art/schema.d.ts +2 -0
  47. package/dist/_internal/shared/listing-types/art/schema.js +3 -0
  48. package/dist/_internal/shared/listing-types/art/seed-factory.d.ts +1 -0
  49. package/dist/_internal/shared/listing-types/art/seed-factory.js +1 -0
  50. package/dist/_internal/shared/listing-types/auction/config.d.ts +8 -0
  51. package/dist/_internal/shared/listing-types/auction/config.js +6 -0
  52. package/dist/_internal/shared/listing-types/capabilities.js +17 -0
  53. package/dist/_internal/shared/listing-types/classified/config.d.ts +8 -0
  54. package/dist/_internal/shared/listing-types/classified/config.js +6 -0
  55. package/dist/_internal/shared/listing-types/digital-code/config.d.ts +8 -0
  56. package/dist/_internal/shared/listing-types/digital-code/config.js +6 -0
  57. package/dist/_internal/shared/listing-types/live/config.d.ts +8 -0
  58. package/dist/_internal/shared/listing-types/live/config.js +6 -0
  59. package/dist/_internal/shared/listing-types/pre-order/config.d.ts +8 -0
  60. package/dist/_internal/shared/listing-types/pre-order/config.js +6 -0
  61. package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +8 -0
  62. package/dist/_internal/shared/listing-types/prize-draw/config.js +6 -0
  63. package/dist/_internal/shared/listing-types/standard/config.d.ts +8 -0
  64. package/dist/_internal/shared/listing-types/standard/config.js +6 -0
  65. package/dist/_internal/shared/listing-types/stickers/config.d.ts +15 -0
  66. package/dist/_internal/shared/listing-types/stickers/config.js +14 -0
  67. package/dist/_internal/shared/listing-types/stickers/ctas.d.ts +1 -0
  68. package/dist/_internal/shared/listing-types/stickers/ctas.js +3 -0
  69. package/dist/_internal/shared/listing-types/stickers/og.d.ts +1 -0
  70. package/dist/_internal/shared/listing-types/stickers/og.js +1 -0
  71. package/dist/_internal/shared/listing-types/stickers/schema.d.ts +2 -0
  72. package/dist/_internal/shared/listing-types/stickers/schema.js +3 -0
  73. package/dist/_internal/shared/listing-types/stickers/seed-factory.d.ts +1 -0
  74. package/dist/_internal/shared/listing-types/stickers/seed-factory.js +1 -0
  75. package/dist/client.d.ts +7 -2
  76. package/dist/client.js +4 -2
  77. package/dist/constants/field-names.d.ts +2 -6
  78. package/dist/constants/field-names.js +2 -6
  79. package/dist/contracts/index.d.ts +4 -2
  80. package/dist/contracts/index.js +6 -0
  81. package/dist/contracts/payment.d.ts +14 -9
  82. package/dist/contracts/payment.js +11 -1
  83. package/dist/contracts/shipping.d.ts +14 -9
  84. package/dist/contracts/shipping.js +11 -1
  85. package/dist/features/about/components/PublicProfileView.js +3 -6
  86. package/dist/features/account/components/UserOffersPanel.js +0 -1
  87. package/dist/features/admin/components/AdminAddressBookView.d.ts +11 -0
  88. package/dist/features/admin/components/AdminAddressBookView.js +30 -0
  89. package/dist/features/admin/components/AdminArtView.d.ts +3 -0
  90. package/dist/features/admin/components/AdminArtView.js +45 -0
  91. package/dist/features/admin/components/AdminCarouselEditorView.js +2 -3
  92. package/dist/features/admin/components/AdminFulfillmentView.js +0 -1
  93. package/dist/features/admin/components/AdminSiteConfigGuideView.js +1 -1
  94. package/dist/features/admin/components/AdminSiteSettingsView.js +14 -9
  95. package/dist/features/admin/components/AdminStickersView.d.ts +3 -0
  96. package/dist/features/admin/components/AdminStickersView.js +45 -0
  97. package/dist/features/admin/components/index.d.ts +6 -0
  98. package/dist/features/admin/components/index.js +4 -0
  99. package/dist/features/admin/hooks/useChat.js +0 -1
  100. package/dist/features/admin/schemas/firestore.d.ts +19 -11
  101. package/dist/features/admin/schemas/firestore.js +12 -2
  102. package/dist/features/auctions/components/MarketplaceAuctionCard.d.ts +3 -2
  103. package/dist/features/auth/hooks/useAuth.js +35 -10
  104. package/dist/features/auth/schemas/firestore.d.ts +2 -6
  105. package/dist/features/cart/schemas/firestore.d.ts +3 -2
  106. package/dist/features/consultation/schemas/index.d.ts +2 -2
  107. package/dist/features/history/hooks/useHistory.js +0 -1
  108. package/dist/features/loyalty/schemas/index.d.ts +6 -6
  109. package/dist/features/messages/hooks/useConversation.js +0 -1
  110. package/dist/features/messages/hooks/useConversations.js +0 -1
  111. package/dist/features/orders/repository/orders.repository.d.ts +20 -2
  112. package/dist/features/orders/repository/orders.repository.js +34 -5
  113. package/dist/features/orders/schemas/firestore.d.ts +33 -7
  114. package/dist/features/orders/schemas/firestore.js +1 -1
  115. package/dist/features/orders/schemas/index.d.ts +176 -31
  116. package/dist/features/orders/schemas/index.js +20 -6
  117. package/dist/features/orders/types/index.d.ts +3 -3
  118. package/dist/features/payments/repository/payout.repository.js +2 -2
  119. package/dist/features/payments/schemas/firestore.d.ts +3 -3
  120. package/dist/features/payments/schemas/firestore.js +2 -2
  121. package/dist/features/payments/schemas/index.d.ts +5 -5
  122. package/dist/features/payments/schemas/index.js +2 -2
  123. package/dist/features/products/api/[id]/route.js +4 -1
  124. package/dist/features/products/api/route.js +4 -1
  125. package/dist/features/products/components/CompareOverlay.js +7 -9
  126. package/dist/features/products/components/ProductDetailPageView.d.ts +3 -1
  127. package/dist/features/products/components/ProductDetailPageView.js +2 -2
  128. package/dist/features/products/components/ProductForm.js +18 -7
  129. package/dist/features/products/components/ProductGrid.js +7 -12
  130. package/dist/features/products/components/ShowGroupSection.js +3 -5
  131. package/dist/features/products/components/SublistingCarouselSection.js +3 -6
  132. package/dist/features/products/constants/listing-tabs.d.ts +32 -0
  133. package/dist/features/products/constants/listing-tabs.js +8 -0
  134. package/dist/features/products/index.d.ts +1 -1
  135. package/dist/features/products/index.js +3 -1
  136. package/dist/features/products/schemas/firestore.d.ts +20 -1
  137. package/dist/features/products/schemas/firestore.js +2 -0
  138. package/dist/features/products/schemas/index.d.ts +48 -0
  139. package/dist/features/products/schemas/index.js +9 -0
  140. package/dist/features/products/schemas/product-features.d.ts +1 -1
  141. package/dist/features/products/types/index.d.ts +5 -3
  142. package/dist/features/products/utils/listing-type.d.ts +6 -0
  143. package/dist/features/products/utils/listing-type.js +3 -0
  144. package/dist/features/reviews/api/[id]/route.js +5 -4
  145. package/dist/features/seller/actions/seller-actions.d.ts +29 -14
  146. package/dist/features/seller/actions/seller-actions.js +101 -27
  147. package/dist/features/seller/components/FulfillmentView.js +0 -1
  148. package/dist/features/seller/components/SellerAddressesView.js +0 -1
  149. package/dist/features/seller/components/SellerArtView.d.ts +7 -0
  150. package/dist/features/seller/components/SellerArtView.js +114 -0
  151. package/dist/features/seller/components/SellerOffersPanel.js +0 -1
  152. package/dist/features/seller/components/SellerOrdersView.js +38 -1
  153. package/dist/features/seller/components/SellerProductShell.d.ts +5 -1
  154. package/dist/features/seller/components/SellerProductShell.js +69 -59
  155. package/dist/features/seller/components/SellerReviewsView.js +0 -1
  156. package/dist/features/seller/components/SellerShippingView.js +6 -25
  157. package/dist/features/seller/components/SellerStickersView.d.ts +7 -0
  158. package/dist/features/seller/components/SellerStickersView.js +114 -0
  159. package/dist/features/seller/components/index.d.ts +4 -0
  160. package/dist/features/seller/components/index.js +2 -0
  161. package/dist/features/seller/messages/en.json +1 -1
  162. package/dist/features/seller/schemas/index.d.ts +7 -7
  163. package/dist/features/seller/schemas/index.js +1 -1
  164. package/dist/features/seller/types/index.d.ts +1 -1
  165. package/dist/features/stores/components/StoreDetailLayoutView.js +18 -2
  166. package/dist/features/stores/schemas/firestore.d.ts +7 -1
  167. package/dist/features/stores/schemas/index.d.ts +19 -16
  168. package/dist/features/stores/schemas/index.js +1 -1
  169. package/dist/index.d.ts +21 -36
  170. package/dist/index.js +27 -39
  171. package/dist/next/routing/route-map.d.ts +22 -0
  172. package/dist/next/routing/route-map.js +10 -0
  173. package/dist/providers/payment-manual/index.d.ts +40 -0
  174. package/dist/providers/payment-manual/index.js +91 -0
  175. package/dist/providers/payment-razorpay/index.d.ts +4 -2
  176. package/dist/providers/payment-razorpay/index.js +4 -1
  177. package/dist/providers/shipping-manual/index.d.ts +22 -0
  178. package/dist/providers/shipping-manual/index.js +47 -0
  179. package/dist/providers.d.ts +2 -2
  180. package/dist/providers.js +5 -3
  181. package/dist/schemas/registry.d.ts +129 -70
  182. package/dist/schemas/registry.js +0 -4
  183. package/dist/security/pii-encrypt.js +0 -7
  184. package/dist/security/pii-redact.js +0 -1
  185. package/dist/seed/conversations-seed-data.js +2 -2
  186. package/dist/seed/faq-seed-data.js +7 -7
  187. package/dist/seed/grouped-listings-seed-data.d.ts +2 -0
  188. package/dist/seed/index.d.ts +2 -0
  189. package/dist/seed/index.js +2 -0
  190. package/dist/seed/manifest.js +20 -16
  191. package/dist/seed/payouts-seed-data.js +5 -5
  192. package/dist/seed/products-art-seed-data.d.ts +11 -0
  193. package/dist/seed/products-art-seed-data.js +125 -0
  194. package/dist/seed/products-preorders-seed-data.d.ts +2 -0
  195. package/dist/seed/products-stickers-seed-data.d.ts +11 -0
  196. package/dist/seed/products-stickers-seed-data.js +125 -0
  197. package/dist/seed/site-settings-seed-data.js +13 -4
  198. package/dist/seed/stores-seed-data.js +11 -11
  199. package/dist/server.d.ts +7 -15
  200. package/dist/server.js +17 -42
  201. package/dist/ui/rich-text/RichText.js +1 -1
  202. package/package.json +1 -1
@@ -19,13 +19,15 @@
19
19
  * ```
20
20
  */
21
21
  import type { JsonValue } from "@mohasinac/appkit";
22
- import type { IPaymentProvider, PaymentOrder, PaymentCapture, Refund } from "../../contracts";
22
+ import { IPaymentProvider } from "../../contracts";
23
+ import type { PaymentOrder, PaymentCapture, Refund } from "../../contracts";
23
24
  export interface RazorpayConfig {
24
25
  keyId: string;
25
26
  keySecret: string;
26
27
  webhookSecret?: string;
27
28
  }
28
- export declare class RazorpayProvider implements IPaymentProvider {
29
+ export declare class RazorpayProvider extends IPaymentProvider {
30
+ readonly name = "razorpay";
29
31
  private readonly razorpay;
30
32
  private readonly webhookSecret?;
31
33
  constructor(config: RazorpayConfig);
@@ -20,10 +20,13 @@
20
20
  */
21
21
  import Razorpay from "razorpay";
22
22
  import { createHmac, timingSafeEqual } from "crypto";
23
+ import { IPaymentProvider } from "../../contracts";
23
24
  import { getDefaultCurrency } from "../../core/baseline-resolver";
24
25
  // --- IPaymentProvider implementation ------------------------------------------
25
- export class RazorpayProvider {
26
+ export class RazorpayProvider extends IPaymentProvider {
26
27
  constructor(config) {
28
+ super();
29
+ this.name = "razorpay";
27
30
  this.razorpay = new Razorpay({
28
31
  key_id: config.keyId,
29
32
  key_secret: config.keySecret,
@@ -0,0 +1,22 @@
1
+ /**
2
+ * @mohasinac/shipping-manual — the default IShippingProvider implementation.
3
+ *
4
+ * There is no carrier API here: the seller enters a carrier name and
5
+ * tracking number/URL directly (see `customShipOrder` in
6
+ * `features/seller/actions/seller-actions.ts`, the actual write path used by
7
+ * the seller ship flow). This class exists so `getProviders().shipping` is
8
+ * always populated with a real implementation of the contract — a future
9
+ * carrier integration (e.g. Shiprocket, Delhivery) is a sibling package that
10
+ * `extends IShippingProvider` the same way this one does, and
11
+ * `providers.config.ts` swaps which one gets registered.
12
+ */
13
+ import { IShippingProvider } from "../../contracts";
14
+ import type { CreateShipmentInput, Shipment, TrackingInfo, ServiceabilityResult } from "../../contracts";
15
+ export declare class ManualShippingProvider extends IShippingProvider {
16
+ readonly name = "manual";
17
+ createShipment(data: CreateShipmentInput): Promise<Shipment>;
18
+ trackShipment(trackingId: string): Promise<TrackingInfo>;
19
+ cancelShipment(_shipmentId: string): Promise<void>;
20
+ checkServiceability(_pincode: string, _weight: number): Promise<ServiceabilityResult>;
21
+ generateLabel(_shipmentId: string): Promise<ArrayBuffer>;
22
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @mohasinac/shipping-manual — the default IShippingProvider implementation.
3
+ *
4
+ * There is no carrier API here: the seller enters a carrier name and
5
+ * tracking number/URL directly (see `customShipOrder` in
6
+ * `features/seller/actions/seller-actions.ts`, the actual write path used by
7
+ * the seller ship flow). This class exists so `getProviders().shipping` is
8
+ * always populated with a real implementation of the contract — a future
9
+ * carrier integration (e.g. Shiprocket, Delhivery) is a sibling package that
10
+ * `extends IShippingProvider` the same way this one does, and
11
+ * `providers.config.ts` swaps which one gets registered.
12
+ */
13
+ import { IShippingProvider } from "../../contracts";
14
+ export class ManualShippingProvider extends IShippingProvider {
15
+ constructor() {
16
+ super(...arguments);
17
+ this.name = "manual";
18
+ }
19
+ async createShipment(data) {
20
+ return {
21
+ id: `manual_${data.orderId}`,
22
+ trackingId: data.orderId,
23
+ orderId: data.orderId,
24
+ status: "created",
25
+ createdAt: new Date().toISOString(),
26
+ };
27
+ }
28
+ async trackShipment(trackingId) {
29
+ // Manual shipments carry their tracking state on the order document
30
+ // itself (status, trackingNumber, trackingUrl) — there is no carrier
31
+ // API to poll. Callers that need current state should read the order,
32
+ // not this method.
33
+ return { trackingId, currentStatus: "unknown", events: [] };
34
+ }
35
+ async cancelShipment(_shipmentId) {
36
+ // No-op — cancelling a manual shipment is an order-status update
37
+ // (orderRepository.cancelOrder), not a carrier API call.
38
+ }
39
+ async checkServiceability(_pincode, _weight) {
40
+ // Manual shipping has no carrier-imposed serviceability restriction —
41
+ // the seller decides whether they can fulfil an address.
42
+ return { isServiceable: true, couriers: [] };
43
+ }
44
+ async generateLabel(_shipmentId) {
45
+ throw new Error("Manual shipping does not support automatic label generation — the seller prints their own carrier's label.");
46
+ }
47
+ }
@@ -19,7 +19,7 @@ export { createResendProvider } from "./providers/email-resend/index";
19
19
  export type { ResendProviderOptions } from "./providers/email-resend/index";
20
20
  export { RazorpayProvider, rupeesToPaise, paiseToRupees, verifyPaymentSignature, createRazorpayOrder, fetchRazorpayOrder, verifyPaymentSignatureWithKeys, verifyWebhookSignature, createRazorpayRefund, } from "./providers/payment-razorpay/index";
21
21
  export type { RazorpayConfig, RazorpayPaymentResult, RazorpayOrderOptions, RazorpayOrder, RazorpayRefundResult, } from "./providers/payment-razorpay/index";
22
- export { ShiprocketProvider } from "./providers/shipping-shiprocket/index";
23
- export type { ShiprocketProviderConfig } from "./providers/shipping-shiprocket/index";
22
+ export { ManualPaymentProvider } from "./providers/payment-manual/index";
23
+ export { ManualShippingProvider } from "./providers/shipping-manual/index";
24
24
  export { tailwindAdapter } from "./style/tailwind/index";
25
25
  export { serverLogger } from "./monitoring/index";
package/dist/providers.js CHANGED
@@ -20,10 +20,12 @@ export { firebaseDbProvider, getAdminApp, getAdminAuth, getAdminDb, getAdminStor
20
20
  export { firebaseStorageProvider } from "./providers/storage-firebase/index";
21
21
  // Email (Resend)
22
22
  export { createResendProvider } from "./providers/email-resend/index";
23
- // Payment (Razorpay)
23
+ // Payment (Razorpay) — disabled by default; siteSettings.payment.razorpayEnabled turns it on
24
24
  export { RazorpayProvider, rupeesToPaise, paiseToRupees, verifyPaymentSignature, createRazorpayOrder, fetchRazorpayOrder, verifyPaymentSignatureWithKeys, verifyWebhookSignature, createRazorpayRefund, } from "./providers/payment-razorpay/index";
25
- // Shipping (Shiprocket)
26
- export { ShiprocketProvider } from "./providers/shipping-shiprocket/index";
25
+ // Payment (manual) — the default provider
26
+ export { ManualPaymentProvider } from "./providers/payment-manual/index";
27
+ // Shipping (manual) — the default (and only) provider
28
+ export { ManualShippingProvider } from "./providers/shipping-manual/index";
27
29
  // Style adapter
28
30
  export { tailwindAdapter } from "./style/tailwind/index";
29
31
  // Monitoring
@@ -2369,21 +2369,75 @@ export declare const SCHEMAS: {
2369
2369
  platformFee: import("zod").ZodOptional<import("zod").ZodNumber>;
2370
2370
  depositAmount: import("zod").ZodOptional<import("zod").ZodNumber>;
2371
2371
  codRemainingAmount: import("zod").ZodOptional<import("zod").ZodNumber>;
2372
+ codHandlingFee: import("zod").ZodOptional<import("zod").ZodNumber>;
2373
+ emiEnabled: import("zod").ZodOptional<import("zod").ZodBoolean>;
2374
+ emiTenureMonths: import("zod").ZodOptional<import("zod").ZodNumber>;
2375
+ emiTokenAmount: import("zod").ZodOptional<import("zod").ZodNumber>;
2376
+ emiSurchargeAmount: import("zod").ZodOptional<import("zod").ZodNumber>;
2377
+ emiInstallments: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodObject<{
2378
+ index: import("zod").ZodNumber;
2379
+ dueDate: import("zod").ZodUnion<[import("zod").ZodDate, import("zod").ZodString, import("zod").ZodObject<{
2380
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2381
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
2382
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2383
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
2384
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2385
+ }, import("zod").ZodTypeAny, "passthrough">>]>;
2386
+ amount: import("zod").ZodNumber;
2387
+ status: import("zod").ZodEnum<["pending", "paid", "overdue"]>;
2388
+ paidAt: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodDate, import("zod").ZodString, import("zod").ZodObject<{
2389
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2390
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
2391
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2392
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
2393
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2394
+ }, import("zod").ZodTypeAny, "passthrough">>]>>;
2395
+ transactionId: import("zod").ZodOptional<import("zod").ZodString>;
2396
+ proofUrl: import("zod").ZodOptional<import("zod").ZodString>;
2397
+ reminderSentAt: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodDate, import("zod").ZodString, import("zod").ZodObject<{
2398
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2399
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
2400
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2401
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
2402
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2403
+ }, import("zod").ZodTypeAny, "passthrough">>]>>;
2404
+ }, "strip", import("zod").ZodTypeAny, {
2405
+ status: "pending" | "paid" | "overdue";
2406
+ amount: number;
2407
+ index: number;
2408
+ dueDate: string | Date | import("zod").objectOutputType<{
2409
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2410
+ }, import("zod").ZodTypeAny, "passthrough">;
2411
+ transactionId?: string | undefined;
2412
+ paidAt?: string | Date | import("zod").objectOutputType<{
2413
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2414
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2415
+ proofUrl?: string | undefined;
2416
+ reminderSentAt?: string | Date | import("zod").objectOutputType<{
2417
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2418
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2419
+ }, {
2420
+ status: "pending" | "paid" | "overdue";
2421
+ amount: number;
2422
+ index: number;
2423
+ dueDate: string | Date | import("zod").objectInputType<{
2424
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2425
+ }, import("zod").ZodTypeAny, "passthrough">;
2426
+ transactionId?: string | undefined;
2427
+ paidAt?: string | Date | import("zod").objectInputType<{
2428
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2429
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2430
+ proofUrl?: string | undefined;
2431
+ reminderSentAt?: string | Date | import("zod").objectInputType<{
2432
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2433
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2434
+ }>, "many">>;
2435
+ emiRemainingBalance: import("zod").ZodOptional<import("zod").ZodNumber>;
2436
+ emiComplete: import("zod").ZodOptional<import("zod").ZodBoolean>;
2372
2437
  shippingFee: import("zod").ZodOptional<import("zod").ZodNumber>;
2373
- shippingMethod: import("zod").ZodOptional<import("zod").ZodEnum<["custom", "shiprocket"]>>;
2438
+ shippingMethod: import("zod").ZodOptional<import("zod").ZodEnum<["custom"]>>;
2374
2439
  shippingCarrier: import("zod").ZodOptional<import("zod").ZodString>;
2375
2440
  trackingUrl: import("zod").ZodOptional<import("zod").ZodString>;
2376
- shiprocketOrderId: import("zod").ZodOptional<import("zod").ZodNumber>;
2377
- shiprocketShipmentId: import("zod").ZodOptional<import("zod").ZodNumber>;
2378
- shiprocketAWB: import("zod").ZodOptional<import("zod").ZodString>;
2379
- shiprocketStatus: import("zod").ZodOptional<import("zod").ZodString>;
2380
- shiprocketUpdatedAt: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodDate, import("zod").ZodString, import("zod").ZodObject<{
2381
- toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2382
- }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
2383
- toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2384
- }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
2385
- toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2386
- }, import("zod").ZodTypeAny, "passthrough">>]>>;
2387
2441
  payoutStatus: import("zod").ZodOptional<import("zod").ZodEnum<["eligible", "requested", "paid"]>>;
2388
2442
  payoutId: import("zod").ZodOptional<import("zod").ZodString>;
2389
2443
  offerId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -2545,7 +2599,7 @@ export declare const SCHEMAS: {
2545
2599
  }[] | undefined;
2546
2600
  payoutStatus?: "paid" | "eligible" | "requested" | undefined;
2547
2601
  couponCode?: string | undefined;
2548
- shippingMethod?: "custom" | "shiprocket" | undefined;
2602
+ shippingMethod?: "custom" | undefined;
2549
2603
  orderType?: string | undefined;
2550
2604
  imageUrls?: string[] | undefined;
2551
2605
  paymentId?: string | undefined;
@@ -2562,7 +2616,7 @@ export declare const SCHEMAS: {
2562
2616
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2563
2617
  cancellationReason?: string | undefined;
2564
2618
  refundAmount?: number | undefined;
2565
- refundStatus?: "pending" | "processing" | "completed" | "rejected" | undefined;
2619
+ refundStatus?: "pending" | "processing" | "rejected" | "completed" | undefined;
2566
2620
  refundFeeDeducted?: number | undefined;
2567
2621
  refundNetAmount?: number | undefined;
2568
2622
  refundNote?: string | undefined;
@@ -2577,16 +2631,32 @@ export declare const SCHEMAS: {
2577
2631
  }[] | undefined;
2578
2632
  depositAmount?: number | undefined;
2579
2633
  codRemainingAmount?: number | undefined;
2634
+ codHandlingFee?: number | undefined;
2635
+ emiEnabled?: boolean | undefined;
2636
+ emiTenureMonths?: number | undefined;
2637
+ emiTokenAmount?: number | undefined;
2638
+ emiSurchargeAmount?: number | undefined;
2639
+ emiInstallments?: {
2640
+ status: "pending" | "paid" | "overdue";
2641
+ amount: number;
2642
+ index: number;
2643
+ dueDate: string | Date | import("zod").objectOutputType<{
2644
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2645
+ }, import("zod").ZodTypeAny, "passthrough">;
2646
+ transactionId?: string | undefined;
2647
+ paidAt?: string | Date | import("zod").objectOutputType<{
2648
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2649
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2650
+ proofUrl?: string | undefined;
2651
+ reminderSentAt?: string | Date | import("zod").objectOutputType<{
2652
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2653
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2654
+ }[] | undefined;
2655
+ emiRemainingBalance?: number | undefined;
2656
+ emiComplete?: boolean | undefined;
2580
2657
  shippingFee?: number | undefined;
2581
2658
  shippingCarrier?: string | undefined;
2582
2659
  trackingUrl?: string | undefined;
2583
- shiprocketOrderId?: number | undefined;
2584
- shiprocketShipmentId?: number | undefined;
2585
- shiprocketAWB?: string | undefined;
2586
- shiprocketStatus?: string | undefined;
2587
- shiprocketUpdatedAt?: string | Date | import("zod").objectOutputType<{
2588
- toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2589
- }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2590
2660
  payoutId?: string | undefined;
2591
2661
  offerId?: string | undefined;
2592
2662
  prizeWon?: {
@@ -2674,7 +2744,7 @@ export declare const SCHEMAS: {
2674
2744
  }[] | undefined;
2675
2745
  payoutStatus?: "paid" | "eligible" | "requested" | undefined;
2676
2746
  couponCode?: string | undefined;
2677
- shippingMethod?: "custom" | "shiprocket" | undefined;
2747
+ shippingMethod?: "custom" | undefined;
2678
2748
  orderType?: string | undefined;
2679
2749
  imageUrls?: string[] | undefined;
2680
2750
  paymentId?: string | undefined;
@@ -2691,7 +2761,7 @@ export declare const SCHEMAS: {
2691
2761
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2692
2762
  cancellationReason?: string | undefined;
2693
2763
  refundAmount?: number | undefined;
2694
- refundStatus?: "pending" | "processing" | "completed" | "rejected" | undefined;
2764
+ refundStatus?: "pending" | "processing" | "rejected" | "completed" | undefined;
2695
2765
  refundFeeDeducted?: number | undefined;
2696
2766
  refundNetAmount?: number | undefined;
2697
2767
  refundNote?: string | undefined;
@@ -2706,16 +2776,32 @@ export declare const SCHEMAS: {
2706
2776
  }[] | undefined;
2707
2777
  depositAmount?: number | undefined;
2708
2778
  codRemainingAmount?: number | undefined;
2779
+ codHandlingFee?: number | undefined;
2780
+ emiEnabled?: boolean | undefined;
2781
+ emiTenureMonths?: number | undefined;
2782
+ emiTokenAmount?: number | undefined;
2783
+ emiSurchargeAmount?: number | undefined;
2784
+ emiInstallments?: {
2785
+ status: "pending" | "paid" | "overdue";
2786
+ amount: number;
2787
+ index: number;
2788
+ dueDate: string | Date | import("zod").objectInputType<{
2789
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2790
+ }, import("zod").ZodTypeAny, "passthrough">;
2791
+ transactionId?: string | undefined;
2792
+ paidAt?: string | Date | import("zod").objectInputType<{
2793
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2794
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2795
+ proofUrl?: string | undefined;
2796
+ reminderSentAt?: string | Date | import("zod").objectInputType<{
2797
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2798
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2799
+ }[] | undefined;
2800
+ emiRemainingBalance?: number | undefined;
2801
+ emiComplete?: boolean | undefined;
2709
2802
  shippingFee?: number | undefined;
2710
2803
  shippingCarrier?: string | undefined;
2711
2804
  trackingUrl?: string | undefined;
2712
- shiprocketOrderId?: number | undefined;
2713
- shiprocketShipmentId?: number | undefined;
2714
- shiprocketAWB?: string | undefined;
2715
- shiprocketStatus?: string | undefined;
2716
- shiprocketUpdatedAt?: string | Date | import("zod").objectInputType<{
2717
- toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2718
- }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2719
2805
  payoutId?: string | undefined;
2720
2806
  offerId?: string | undefined;
2721
2807
  prizeWon?: {
@@ -2783,7 +2869,7 @@ export declare const SCHEMAS: {
2783
2869
  platformFee: import("zod").ZodNumber;
2784
2870
  platformFeeRate: import("zod").ZodNumber;
2785
2871
  currency: import("zod").ZodString;
2786
- status: import("zod").ZodEnum<["pending", "processing", "completed", "failed"]>;
2872
+ status: import("zod").ZodEnum<["pending", "processing", "paid", "failed"]>;
2787
2873
  paymentMethod: import("zod").ZodEnum<["bank_transfer", "upi"]>;
2788
2874
  bankAccount: import("zod").ZodOptional<import("zod").ZodObject<{
2789
2875
  accountHolderName: import("zod").ZodString;
@@ -2858,7 +2944,7 @@ export declare const SCHEMAS: {
2858
2944
  toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2859
2945
  }, import("zod").ZodTypeAny, "passthrough">>]>>;
2860
2946
  }, "strip", import("zod").ZodTypeAny, {
2861
- status: "pending" | "failed" | "processing" | "completed";
2947
+ status: "pending" | "paid" | "failed" | "processing";
2862
2948
  currency: string;
2863
2949
  storeId: string;
2864
2950
  createdAt: string | Date | import("zod").objectOutputType<{
@@ -2908,7 +2994,7 @@ export declare const SCHEMAS: {
2908
2994
  toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
2909
2995
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
2910
2996
  }, {
2911
- status: "pending" | "failed" | "processing" | "completed";
2997
+ status: "pending" | "paid" | "failed" | "processing";
2912
2998
  currency: string;
2913
2999
  storeId: string;
2914
3000
  createdAt: string | Date | import("zod").objectInputType<{
@@ -3623,7 +3709,7 @@ export declare const SCHEMAS: {
3623
3709
  providers: import("zod").ZodArray<import("zod").ZodObject<{
3624
3710
  providerId: import("zod").ZodString;
3625
3711
  label: import("zod").ZodString;
3626
- type: import("zod").ZodEnum<["shiprocket", "self-courier", "store-pickup", "custom"]>;
3712
+ type: import("zod").ZodEnum<["self-courier", "store-pickup", "custom"]>;
3627
3713
  fee: import("zod").ZodObject<{
3628
3714
  flatInPaise: import("zod").ZodOptional<import("zod").ZodNumber>;
3629
3715
  perKgInPaise: import("zod").ZodOptional<import("zod").ZodNumber>;
@@ -3648,7 +3734,7 @@ export declare const SCHEMAS: {
3648
3734
  regions: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
3649
3735
  requiresAwbUpload: import("zod").ZodOptional<import("zod").ZodBoolean>;
3650
3736
  }, "strip", import("zod").ZodTypeAny, {
3651
- type: "custom" | "shiprocket" | "self-courier" | "store-pickup";
3737
+ type: "custom" | "self-courier" | "store-pickup";
3652
3738
  label: string;
3653
3739
  providerId: string;
3654
3740
  fee: {
@@ -3663,7 +3749,7 @@ export declare const SCHEMAS: {
3663
3749
  regions?: string[] | undefined;
3664
3750
  requiresAwbUpload?: boolean | undefined;
3665
3751
  }, {
3666
- type: "custom" | "shiprocket" | "self-courier" | "store-pickup";
3752
+ type: "custom" | "self-courier" | "store-pickup";
3667
3753
  label: string;
3668
3754
  providerId: string;
3669
3755
  fee: {
@@ -3681,7 +3767,7 @@ export declare const SCHEMAS: {
3681
3767
  defaultProviderId: import("zod").ZodString;
3682
3768
  }, "strip", import("zod").ZodTypeAny, {
3683
3769
  providers: {
3684
- type: "custom" | "shiprocket" | "self-courier" | "store-pickup";
3770
+ type: "custom" | "self-courier" | "store-pickup";
3685
3771
  label: string;
3686
3772
  providerId: string;
3687
3773
  fee: {
@@ -3699,7 +3785,7 @@ export declare const SCHEMAS: {
3699
3785
  defaultProviderId: string;
3700
3786
  }, {
3701
3787
  providers: {
3702
- type: "custom" | "shiprocket" | "self-courier" | "store-pickup";
3788
+ type: "custom" | "self-courier" | "store-pickup";
3703
3789
  label: string;
3704
3790
  providerId: string;
3705
3791
  fee: {
@@ -3716,6 +3802,7 @@ export declare const SCHEMAS: {
3716
3802
  }[];
3717
3803
  defaultProviderId: string;
3718
3804
  }>>;
3805
+ emiEnabled: import("zod").ZodOptional<import("zod").ZodBoolean>;
3719
3806
  whatsappConfig: import("zod").ZodOptional<import("zod").ZodObject<{
3720
3807
  phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
3721
3808
  wabaId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -3792,10 +3879,11 @@ export declare const SCHEMAS: {
3792
3879
  averageRating?: number | undefined;
3793
3880
  } | undefined;
3794
3881
  isFeatured?: boolean | undefined;
3882
+ emiEnabled?: boolean | undefined;
3795
3883
  website?: string | undefined;
3796
3884
  shippingConfig?: {
3797
3885
  providers: {
3798
- type: "custom" | "shiprocket" | "self-courier" | "store-pickup";
3886
+ type: "custom" | "self-courier" | "store-pickup";
3799
3887
  label: string;
3800
3888
  providerId: string;
3801
3889
  fee: {
@@ -3876,10 +3964,11 @@ export declare const SCHEMAS: {
3876
3964
  averageRating?: number | undefined;
3877
3965
  } | undefined;
3878
3966
  isFeatured?: boolean | undefined;
3967
+ emiEnabled?: boolean | undefined;
3879
3968
  website?: string | undefined;
3880
3969
  shippingConfig?: {
3881
3970
  providers: {
3882
- type: "custom" | "shiprocket" | "self-courier" | "store-pickup";
3971
+ type: "custom" | "self-courier" | "store-pickup";
3883
3972
  label: string;
3884
3973
  providerId: string;
3885
3974
  fee: {
@@ -6591,36 +6680,6 @@ export declare const SCHEMAS: {
6591
6680
  contains?: string[] | undefined;
6592
6681
  }>]>;
6593
6682
  };
6594
- readonly shiprocket: {
6595
- readonly trackingUpdate: import("zod").ZodObject<{
6596
- awb: import("zod").ZodString;
6597
- order_id: import("zod").ZodString;
6598
- shipment_id: import("zod").ZodString;
6599
- current_status: import("zod").ZodString;
6600
- current_status_id: import("zod").ZodNumber;
6601
- courier_agent_assigned: import("zod").ZodOptional<import("zod").ZodBoolean>;
6602
- etd: import("zod").ZodOptional<import("zod").ZodString>;
6603
- pickup_generated: import("zod").ZodOptional<import("zod").ZodBoolean>;
6604
- }, "strip", import("zod").ZodTypeAny, {
6605
- order_id: string;
6606
- awb: string;
6607
- shipment_id: string;
6608
- current_status: string;
6609
- current_status_id: number;
6610
- courier_agent_assigned?: boolean | undefined;
6611
- etd?: string | undefined;
6612
- pickup_generated?: boolean | undefined;
6613
- }, {
6614
- order_id: string;
6615
- awb: string;
6616
- shipment_id: string;
6617
- current_status: string;
6618
- current_status_id: number;
6619
- courier_agent_assigned?: boolean | undefined;
6620
- etd?: string | undefined;
6621
- pickup_generated?: boolean | undefined;
6622
- }>;
6623
- };
6624
6683
  readonly googleOauth: {
6625
6684
  readonly signInWithIdp: import("zod").ZodObject<{
6626
6685
  federatedId: import("zod").ZodOptional<import("zod").ZodString>;
@@ -113,15 +113,11 @@ const sieve = {
113
113
  // keyed on the `event` discriminator.
114
114
  // ---------------------------------------------------------------------------
115
115
  import { razorpayWebhookEnvelopeSchema } from "./webhooks/razorpay";
116
- import { shiprocketTrackingUpdateSchema } from "./webhooks/shiprocket";
117
116
  import { googleSignInWithIdpResponseSchema, googleTokenInfoSchema, } from "./webhooks/google-oauth";
118
117
  const webhook = {
119
118
  razorpay: {
120
119
  envelope: razorpayWebhookEnvelopeSchema,
121
120
  },
122
- shiprocket: {
123
- trackingUpdate: shiprocketTrackingUpdateSchema,
124
- },
125
121
  googleOauth: {
126
122
  signInWithIdp: googleSignInWithIdpResponseSchema,
127
123
  tokenInfo: googleTokenInfoSchema,
@@ -233,10 +233,6 @@ export function encryptShippingConfig(config) {
233
233
  if (!config)
234
234
  return config;
235
235
  const result = { ...config };
236
- // shiprocketEmail is PII
237
- if (typeof result.shiprocketEmail === "string" && result.shiprocketEmail) {
238
- result.shiprocketEmail = encryptPii(result.shiprocketEmail);
239
- }
240
236
  const addr = result.pickupAddress;
241
237
  if (addr && typeof addr === "object" && !Array.isArray(addr) && !(addr instanceof Date)) {
242
238
  result.pickupAddress = encryptPiiFields({ ...addr }, ["phone", "email", "address", "address2"]);
@@ -250,9 +246,6 @@ export function decryptShippingConfig(config) {
250
246
  if (!config)
251
247
  return config;
252
248
  const result = { ...config };
253
- if (typeof result.shiprocketEmail === "string" && result.shiprocketEmail) {
254
- result.shiprocketEmail = decryptPii(result.shiprocketEmail);
255
- }
256
249
  const addr = result.pickupAddress;
257
250
  if (addr && typeof addr === "object" && !Array.isArray(addr) && !(addr instanceof Date)) {
258
251
  result.pickupAddress = decryptPiiFields({ ...addr }, ["phone", "email", "address", "address2"]);
@@ -45,7 +45,6 @@ const EMAIL_KEYS = new Set([
45
45
  "email",
46
46
  "userEmail",
47
47
  "sellerEmail",
48
- "shiprocketEmail",
49
48
  ]);
50
49
  /** Keys whose string values get phone masking */
51
50
  const PHONE_KEYS = new Set(["phone", "phoneNumber", "mobileNumber"]);
@@ -252,7 +252,7 @@ export const conversationsSeedData = [
252
252
  id: "msg-006-1",
253
253
  senderId: "user-admin-letitrip",
254
254
  senderRole: "buyer",
255
- body: "Hi! My order for CED IOC shipped 2 days ago — tracking shows it left your city but has not updated since. Can you check with Shiprocket?",
255
+ body: "Hi! My order for CED IOC shipped 2 days ago — the courier's tracking page shows it left your city but has not updated since. Can you check with the courier?",
256
256
  isRead: true,
257
257
  sentAt: daysAgo(6),
258
258
  },
@@ -260,7 +260,7 @@ export const conversationsSeedData = [
260
260
  id: "msg-006-2",
261
261
  senderId: "user-seto-kaiba",
262
262
  senderRole: "seller",
263
- body: "Hi! Yes, I raised a ticket with Shiprocket about that. They confirmed it is in transit at the sorting facility — tracking updates can lag by 24-48 hours. Should arrive tomorrow or day after.",
263
+ body: "Hi! Yes, I raised a ticket with the courier about that. They confirmed it is in transit at the sorting facility — tracking updates can lag by 24-48 hours. Should arrive tomorrow or day after.",
264
264
  isRead: true,
265
265
  sentAt: daysAgo(6),
266
266
  },
@@ -292,14 +292,14 @@ export const faqSeedData = [
292
292
  {
293
293
  id: "faq-track-my-order",
294
294
  question: "How do I track my order?",
295
- answer: html(`<p>Once your seller ships the order, you'll receive a tracking number via email and in-app notification. Go to Account → My Orders → click the order to see real-time tracking. Most sellers use Shiprocket for automated tracking updates.</p>`),
295
+ answer: html(`<p>Once your seller ships the order, you'll receive a carrier name and tracking number via email and in-app notification. Go to Account → My Orders → click the order to see it. Paste the tracking number into the carrier's own website (India Post, DTDC, BlueDart, Delhivery, etc.) for real-time updates sellers ship manually, so tracking is via the carrier's site, not an in-app live map.</p>`),
296
296
  category: "shipping_delivery",
297
297
  showOnHomepage: false,
298
298
  showInFooter: false,
299
299
  isPinned: false,
300
300
  order: 15,
301
301
  priority: 8,
302
- tags: ["tracking", "orders", "shiprocket"],
302
+ tags: ["tracking", "orders"],
303
303
  relatedFAQs: ["faq-how-long-does-shipping-take"],
304
304
  stats: makeStats(4500, 225),
305
305
  seo: { slug: "faq-track-my-order", metaTitle: "Track Your Order", metaDescription: "How to track your collectibles order on LetItRip." },
@@ -328,19 +328,19 @@ export const faqSeedData = [
328
328
  updatedAt: daysAgo(10),
329
329
  },
330
330
  {
331
- id: "faq-shiprocket-auto-tracking",
332
- question: "What is Shiprocket and how does auto-tracking work?",
333
- answer: html(`<p>Shiprocket is our integrated courier partner. When a seller marks your order as shipped with Shiprocket, tracking is automatically created you'll get real-time SMS and email updates at every milestone (picked up, in transit, out for delivery, delivered). No manual tracking number entry needed.</p>`),
331
+ id: "faq-how-sellers-ship",
332
+ question: "How do sellers ship orders on LetItRip?",
333
+ answer: html(`<p>Sellers ship manually they pack your order, hand it to their courier of choice, and enter the carrier name plus tracking number into their dashboard. That's what appears on your order page. There's no single integrated courier, so delivery speed and tracking detail can vary by seller.</p>`),
334
334
  category: "shipping_delivery",
335
335
  showOnHomepage: false,
336
336
  showInFooter: false,
337
337
  isPinned: false,
338
338
  order: 17,
339
339
  priority: 6,
340
- tags: ["shiprocket", "tracking", "automation"],
340
+ tags: ["shipping", "tracking", "sellers"],
341
341
  relatedFAQs: ["faq-track-my-order"],
342
342
  stats: makeStats(1500, 75),
343
- seo: { slug: "faq-shiprocket-auto-tracking", metaTitle: "Shiprocket Auto-Tracking", metaDescription: "How Shiprocket auto-tracking works for your LetItRip orders." },
343
+ seo: { slug: "faq-how-sellers-ship", metaTitle: "How Sellers Ship Orders", metaDescription: "How sellers ship and track orders on LetItRip." },
344
344
  isActive: true,
345
345
  createdBy: "user-admin-letitrip",
346
346
  createdAt: daysAgo(40),
@@ -66,6 +66,8 @@ export declare const groupedListingsSeedData: {
66
66
  isPromoted?: boolean | undefined;
67
67
  isOnSale?: boolean | undefined;
68
68
  isSold?: boolean | undefined;
69
+ allowShipBeforeEmiComplete?: boolean | undefined;
70
+ printMeta?: import("../features/products").ProductPrintMeta | undefined;
69
71
  promotionEndDate?: Date | undefined;
70
72
  pickupAddressId?: string | undefined;
71
73
  viewCount?: number | undefined;
@@ -52,6 +52,8 @@ export { productsPrizeDrawsSeedData } from "./products-prize-draws-seed-data";
52
52
  export { productsClassifiedsSeedData } from "./products-classifieds-seed-data";
53
53
  export { productsDigitalCodesSeedData } from "./products-digital-codes-seed-data";
54
54
  export { productsLiveItemsSeedData } from "./products-live-items-seed-data";
55
+ export { productsArtSeedData } from "./products-art-seed-data";
56
+ export { productsStickersSeedData } from "./products-stickers-seed-data";
55
57
  export { ordersSeedData } from "./orders-seed-data";
56
58
  export { reviewsSeedData } from "./reviews-seed-data";
57
59
  export { cartsSeedData } from "./cart-seed-data";
@@ -40,6 +40,8 @@ export { productsPrizeDrawsSeedData } from "./products-prize-draws-seed-data";
40
40
  export { productsClassifiedsSeedData } from "./products-classifieds-seed-data";
41
41
  export { productsDigitalCodesSeedData } from "./products-digital-codes-seed-data";
42
42
  export { productsLiveItemsSeedData } from "./products-live-items-seed-data";
43
+ export { productsArtSeedData } from "./products-art-seed-data";
44
+ export { productsStickersSeedData } from "./products-stickers-seed-data";
43
45
  export { ordersSeedData } from "./orders-seed-data";
44
46
  export { reviewsSeedData } from "./reviews-seed-data";
45
47
  export { cartsSeedData } from "./cart-seed-data";