@mohasinac/appkit 4.63.4 → 4.63.5

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 (136) hide show
  1. package/dist/.build-stamp.json +3 -3
  2. package/dist/_internal/server/features/checkout/actions.d.ts +2 -0
  3. package/dist/_internal/server/features/checkout/actions.js +22 -5
  4. package/dist/_internal/server/features/orders/adapters.js +3 -1
  5. package/dist/_internal/server/features/site-settings/adapters.js +20 -2
  6. package/dist/_internal/server/features/stores/adapters.d.ts +1 -1
  7. package/dist/_internal/server/features/stores/adapters.js +1 -0
  8. package/dist/_internal/server/jobs/core/analyticsAlertEvaluate.js +5 -2
  9. package/dist/_internal/server/jobs/core/jobRunners.js +5 -0
  10. package/dist/_internal/server/jobs/core/onOrderCreate.js +104 -10
  11. package/dist/_internal/server/jobs/core/onOrderStatusChange.d.ts +2 -0
  12. package/dist/_internal/server/jobs/core/onOrderStatusChange.js +1 -0
  13. package/dist/_internal/server/jobs/core/onScamReportCreate.js +1 -0
  14. package/dist/_internal/server/jobs/core/onScamReportRejected.js +1 -0
  15. package/dist/_internal/server/jobs/core/onScamReportVerified.js +1 -0
  16. package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +1 -0
  17. package/dist/_internal/server/jobs/core/pendingOrderTimeout.js +1 -0
  18. package/dist/_internal/server/jobs/core/whatsappNotify.d.ts +35 -0
  19. package/dist/_internal/server/jobs/core/whatsappNotify.js +140 -0
  20. package/dist/_internal/server/notifications/channel-health.d.ts +8 -6
  21. package/dist/_internal/server/notifications/channel-health.js +2 -2
  22. package/dist/_internal/server/notifications/send-guard.d.ts +1 -1
  23. package/dist/_internal/server/notifications/send-guard.js +4 -2
  24. package/dist/_internal/shared/actions/action-registry.js +28 -0
  25. package/dist/_internal/shared/checkout/order-math.d.ts +1 -1
  26. package/dist/_internal/shared/checkout/order-math.js +1 -1
  27. package/dist/_internal/shared/features/checkout/config.d.ts +2 -0
  28. package/dist/_internal/shared/features/checkout/config.js +2 -0
  29. package/dist/_internal/shared/features/messaging/config.d.ts +5 -7
  30. package/dist/_internal/shared/features/messaging/config.js +4 -1
  31. package/dist/_internal/shared/features/site-settings/fees.d.ts +2 -0
  32. package/dist/_internal/shared/features/site-settings/fees.js +2 -0
  33. package/dist/_internal/shared/features/site-settings/types.d.ts +27 -2
  34. package/dist/_internal/shared/fees/calculator.d.ts +8 -0
  35. package/dist/_internal/shared/fees/calculator.js +7 -0
  36. package/dist/cli/index.js +2 -0
  37. package/dist/client.d.ts +2 -2
  38. package/dist/client.js +1 -1
  39. package/dist/constants/api-endpoints.d.ts +15 -0
  40. package/dist/constants/api-endpoints.js +8 -0
  41. package/dist/constants/notification-types.d.ts +1 -1
  42. package/dist/constants/notification-types.js +1 -1
  43. package/dist/core/integration-keys.d.ts +5 -0
  44. package/dist/core/integration-keys.js +10 -0
  45. package/dist/features/about/components/FeesView.js +6 -0
  46. package/dist/features/account/components/BuyerShoppingGuideView.js +1 -1
  47. package/dist/features/account/components/NotificationPreferencesPanel.js +4 -3
  48. package/dist/features/account/types/index.d.ts +2 -0
  49. package/dist/features/admin/actions/notification-actions.d.ts +17 -2
  50. package/dist/features/admin/actions/notification-actions.js +154 -9
  51. package/dist/features/admin/components/AdminOrderEditorView.d.ts +1 -1
  52. package/dist/features/admin/components/AdminOrdersView.js +2 -0
  53. package/dist/features/admin/components/AdminSiteSettingsView.js +66 -6
  54. package/dist/features/admin/components/AdminStoreEditorView.js +1 -0
  55. package/dist/features/admin/constants/site-settings-tabs.d.ts +12 -7
  56. package/dist/features/admin/constants/site-settings-tabs.js +12 -6
  57. package/dist/features/admin/repository/site-settings.repository.js +1 -1
  58. package/dist/features/admin/schemas/admin-user-form.d.ts +61 -0
  59. package/dist/features/admin/schemas/admin-user-form.js +44 -3
  60. package/dist/features/admin/schemas/firestore.d.ts +73 -0
  61. package/dist/features/admin/schemas/firestore.js +8 -3
  62. package/dist/features/auth/checkout-value-otp.d.ts +1 -1
  63. package/dist/features/auth/checkout-value-otp.js +1 -1
  64. package/dist/features/auth/permissions/constants.d.ts +2 -2
  65. package/dist/features/auth/permissions/constants.js +2 -1
  66. package/dist/features/cart/components/CartPriceBreakdown.d.ts +2 -0
  67. package/dist/features/cart/components/CartPriceBreakdown.js +1 -1
  68. package/dist/features/cart/components/StoreAddonsPicker.d.ts +5 -2
  69. package/dist/features/cart/components/StoreAddonsPicker.js +5 -4
  70. package/dist/features/cart/repository/cart.repository.js +2 -1
  71. package/dist/features/cart/schemas/firestore.d.ts +2 -1
  72. package/dist/features/checkout/actions/checkout-value-otp-actions.d.ts +5 -10
  73. package/dist/features/checkout/actions/checkout-value-otp-actions.js +88 -2
  74. package/dist/features/homepage/lib/section-renderer.js +1 -1
  75. package/dist/features/orders/actions/refund-actions.js +1 -0
  76. package/dist/features/orders/components/OrderAddonBadges.d.ts +3 -1
  77. package/dist/features/orders/components/OrderAddonBadges.js +4 -3
  78. package/dist/features/orders/repository/orders.repository.d.ts +8 -0
  79. package/dist/features/orders/repository/orders.repository.js +2 -0
  80. package/dist/features/orders/schemas/firestore.d.ts +4 -0
  81. package/dist/features/orders/types/index.d.ts +5 -2
  82. package/dist/features/search/action-index/settings-entries.js +9 -0
  83. package/dist/features/store-extensions/repository/store-extensions.repositories.d.ts +6 -1
  84. package/dist/features/store-extensions/repository/store-extensions.repositories.js +10 -1
  85. package/dist/features/store-extensions/schemas/firestore.d.ts +17 -1
  86. package/dist/features/store-extensions/schemas/firestore.js +10 -0
  87. package/dist/features/stores/components/StoreCapabilitiesGuideView.js +1 -0
  88. package/dist/features/stores/components/StoreGuideHubView.js +1 -1
  89. package/dist/features/stores/components/StoreSettingsGuideView.js +6 -2
  90. package/dist/features/stores/repository/store.repository.d.ts +23 -1
  91. package/dist/features/stores/repository/store.repository.js +29 -1
  92. package/dist/features/stores/schemas/firestore.d.ts +16 -6
  93. package/dist/features/stores/schemas/firestore.js +3 -6
  94. package/dist/features/stores/schemas/index.d.ts +86 -0
  95. package/dist/features/stores/schemas/index.js +14 -0
  96. package/dist/features/whatsapp-bot/api/send-status/route.d.ts +12 -0
  97. package/dist/features/whatsapp-bot/api/send-status/route.js +38 -0
  98. package/dist/features/whatsapp-bot/api/webhook/route.d.ts +12 -0
  99. package/dist/features/whatsapp-bot/api/webhook/route.js +43 -0
  100. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.d.ts +57 -0
  101. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +76 -0
  102. package/dist/features/whatsapp-bot/components/WhatsAppChatButton.d.ts +9 -0
  103. package/dist/features/whatsapp-bot/components/WhatsAppChatButton.js +7 -0
  104. package/dist/features/whatsapp-bot/components/index.d.ts +3 -0
  105. package/dist/features/whatsapp-bot/components/index.js +2 -0
  106. package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +52 -0
  107. package/dist/features/whatsapp-bot/helpers/whatsapp.js +288 -0
  108. package/dist/features/whatsapp-bot/index.d.ts +3 -0
  109. package/dist/features/whatsapp-bot/index.js +3 -0
  110. package/dist/features/whatsapp-bot/manifest.d.ts +2 -0
  111. package/dist/features/whatsapp-bot/manifest.js +13 -0
  112. package/dist/features/whatsapp-bot/messages/en.json +7 -0
  113. package/dist/features/whatsapp-bot/server.d.ts +7 -0
  114. package/dist/features/whatsapp-bot/server.js +7 -0
  115. package/dist/features/whatsapp-bot/types/index.d.ts +126 -0
  116. package/dist/features/whatsapp-bot/types/index.js +1 -0
  117. package/dist/index.d.ts +23 -6
  118. package/dist/index.js +38 -12
  119. package/dist/next/routing/route-map.d.ts +3 -0
  120. package/dist/next/routing/route-map.js +1 -0
  121. package/dist/providers/db-firebase/base.repository.d.ts +1 -1
  122. package/dist/providers/db-firebase/base.repository.js +1 -1
  123. package/dist/repositories/index.d.ts +1 -1
  124. package/dist/repositories/index.js +1 -1
  125. package/dist/schemas/registry.d.ts +105 -0
  126. package/dist/schemas/registry.js +2 -1
  127. package/dist/security/pii-encrypt.js +1 -1
  128. package/dist/server.d.ts +10 -2
  129. package/dist/server.js +22 -2
  130. package/dist/styles.css +1 -1
  131. package/dist/tailwind-utilities.css +1 -1
  132. package/dist/ui/components/NavigationLoader.d.ts +14 -1
  133. package/dist/ui/components/NavigationLoader.js +79 -30
  134. package/package.json +1 -1
  135. package/dist/features/orders/utils/order-announcement-message.d.ts +0 -18
  136. package/dist/features/orders/utils/order-announcement-message.js +0 -16
package/dist/index.d.ts CHANGED
@@ -479,7 +479,7 @@ export type { RateLimitConfig } from "./security/index";
479
479
  export type { RateLimitResult } from "./security/index";
480
480
  export type { UserRole } from "./security/index";
481
481
  export { AddressesRepository } from "./repositories/index";
482
- export { type PayoutMethodType, type PayoutMethodDocument, PAYOUT_METHODS_COLLECTION, PAYOUT_METHOD_INDEXED_FIELDS, DEFAULT_PAYOUT_METHOD_DATA, type ShippingMethod as ShippingConfigMethod, type ShippingConfigDocument, SHIPPING_CONFIGS_COLLECTION, SHIPPING_CONFIG_INDEXED_FIELDS, DEFAULT_SHIPPING_CONFIG_DATA, type AnalyticsScope, type AnalyticsCardType, type AnalyticsCardDocument, ANALYTICS_CARDS_COLLECTION, ANALYTICS_CARD_INDEXED_FIELDS, DEFAULT_ANALYTICS_CARD_DATA, type AlertOperator, type AnalyticsAlertDocument, ANALYTICS_ALERTS_COLLECTION, ANALYTICS_ALERT_INDEXED_FIELDS, DEFAULT_ANALYTICS_ALERT_DATA, type StoreCategoryDocument, storeCategoryFormSchema, storeCategoryCreateSchema, storeCategoryUpdateSchema, type StoreCategoryFormValues, listingTemplateFormSchema, listingTemplateCreateSchema, listingTemplateUpdateSchema, type ListingTemplateFormValues, LISTING_TEMPLATE_TYPES, LISTING_TEMPLATE_TYPE_OPTIONS, payoutMethodFormSchema, payoutMethodCreateSchema, payoutMethodUpdateSchema, type PayoutMethodFormValues, shippingConfigFormSchema, SHIPPING_METHOD_OPTIONS, shippingConfigCreateSchema, shippingConfigUpdateSchema, type ShippingConfigFormValues, customRoleFormSchema, customRoleCreateSchema, customRoleUpdateSchema, isKnownPermission, type CustomRoleFormValues, moderationReviewFormSchema, moderationReviewUpdateSchema, MODERATION_REVIEWER_STATUSES, type ModerationReviewFormValues, reportReviewFormSchema, reportReviewUpdateSchema, REPORT_REVIEWER_STATUSES, REPORT_TERMINAL_STATUSES, type ReportReviewFormValues, reportCreateSchema, type ReportCreateValues, itemRequestCreateSchema, type ItemRequestCreateValues, REPORT_ENTITY_TYPES, REPORT_REASONS, analyticsAlertCreateSchema, type AnalyticsAlertCreateValues, analyticsCardCreateSchema, type AnalyticsCardCreateValues, ANALYTICS_ALERT_OPERATORS, ANALYTICS_CARD_TYPES, storeGoogleConfigUpdateSchema, type StoreGoogleConfigFormValues, toSellerGoogleConfig, type SellerGoogleConfig, adminNotificationCreateSchema, type AdminNotificationCreateValues, ADMIN_NOTIFICATION_CATEGORIES, ADMIN_NOTIFICATION_SEVERITIES, STORE_CATEGORIES_COLLECTION, STORE_CATEGORY_INDEXED_FIELDS, DEFAULT_STORE_CATEGORY_DATA, type ListingTemplateType, type ListingTemplateDocument, LISTING_TEMPLATES_COLLECTION, LISTING_TEMPLATE_INDEXED_FIELDS, DEFAULT_LISTING_TEMPLATE_DATA, type ModerationStatus, type ModerationMediaType, type ModerationQueueDocument, MODERATION_QUEUE_COLLECTION, MODERATION_QUEUE_INDEXED_FIELDS, DEFAULT_MODERATION_QUEUE_DATA, type ReportEntityType, type ReportStatus, type ReportReason, type ReportDocument, REPORTS_COLLECTION, REPORT_INDEXED_FIELDS, DEFAULT_REPORT_DATA, type AdminNotificationCategory, type AdminNotificationDocument, ADMIN_NOTIFICATIONS_COLLECTION, ADMIN_NOTIFICATION_INDEXED_FIELDS, DEFAULT_ADMIN_NOTIFICATION_DATA, type ItemRequestStatus, type ItemRequestReply, type ItemRequestDocument, ITEM_REQUESTS_COLLECTION, ITEM_REQUEST_INDEXED_FIELDS, DEFAULT_ITEM_REQUEST_DATA, type StoreGoogleConfigDocument, STORE_GOOGLE_CONFIG_COLLECTION, STORE_GOOGLE_CONFIG_INDEXED_FIELDS, DEFAULT_STORE_GOOGLE_CONFIG_DATA, type CustomRoleDocument, CUSTOM_ROLES_COLLECTION, CUSTOM_ROLE_INDEXED_FIELDS, DEFAULT_CUSTOM_ROLE_DATA, type RoleOverrideDocument, ROLE_OVERRIDES_COLLECTION, ROLE_OVERRIDE_INDEXED_FIELDS, DEFAULT_ROLE_OVERRIDE_DATA, PayoutMethodsRepository, ShippingConfigsRepository, AnalyticsCardsRepository, AnalyticsAlertsRepository, StoreCategoriesRepository, ListingTemplatesRepository, ModerationQueueRepository, ReportsRepository, AdminNotificationsRepository, ItemRequestsRepository, StoreGoogleConfigRepository, CustomRolesRepository, RoleOverridesRepository, payoutMethodsRepository, shippingConfigsRepository, analyticsCardsRepository, analyticsAlertsRepository, storeCategoriesRepository, listingTemplatesRepository, moderationQueueRepository, reportsRepository, adminNotificationsRepository, itemRequestsRepository, storeGoogleConfigRepository, customRolesRepository, roleOverridesRepository, } from "./features/store-extensions/index";
482
+ export { type PayoutMethodType, type PayoutMethodDocument, PAYOUT_METHODS_COLLECTION, PAYOUT_METHOD_INDEXED_FIELDS, DEFAULT_PAYOUT_METHOD_DATA, type ShippingMethod as ShippingConfigMethod, type ShippingConfigDocument, SHIPPING_CONFIGS_COLLECTION, SHIPPING_CONFIG_INDEXED_FIELDS, DEFAULT_SHIPPING_CONFIG_DATA, type AnalyticsScope, type AnalyticsCardType, type AnalyticsCardDocument, ANALYTICS_CARDS_COLLECTION, ANALYTICS_CARD_INDEXED_FIELDS, DEFAULT_ANALYTICS_CARD_DATA, type AlertOperator, type AnalyticsAlertDocument, ANALYTICS_ALERTS_COLLECTION, ANALYTICS_ALERT_INDEXED_FIELDS, DEFAULT_ANALYTICS_ALERT_DATA, type StoreCategoryDocument, storeCategoryFormSchema, storeCategoryCreateSchema, storeCategoryUpdateSchema, type StoreCategoryFormValues, listingTemplateFormSchema, listingTemplateCreateSchema, listingTemplateUpdateSchema, type ListingTemplateFormValues, LISTING_TEMPLATE_TYPES, LISTING_TEMPLATE_TYPE_OPTIONS, payoutMethodFormSchema, payoutMethodCreateSchema, payoutMethodUpdateSchema, type PayoutMethodFormValues, shippingConfigFormSchema, SHIPPING_METHOD_OPTIONS, shippingConfigCreateSchema, shippingConfigUpdateSchema, type ShippingConfigFormValues, customRoleFormSchema, customRoleCreateSchema, customRoleUpdateSchema, isKnownPermission, type CustomRoleFormValues, moderationReviewFormSchema, moderationReviewUpdateSchema, MODERATION_REVIEWER_STATUSES, type ModerationReviewFormValues, reportReviewFormSchema, reportReviewUpdateSchema, REPORT_REVIEWER_STATUSES, REPORT_TERMINAL_STATUSES, type ReportReviewFormValues, reportCreateSchema, type ReportCreateValues, itemRequestCreateSchema, type ItemRequestCreateValues, REPORT_ENTITY_TYPES, REPORT_REASONS, analyticsAlertCreateSchema, type AnalyticsAlertCreateValues, analyticsCardCreateSchema, type AnalyticsCardCreateValues, ANALYTICS_ALERT_OPERATORS, ANALYTICS_CARD_TYPES, storeGoogleConfigUpdateSchema, type StoreGoogleConfigFormValues, toSellerGoogleConfig, type SellerGoogleConfig, adminNotificationCreateSchema, type AdminNotificationCreateValues, ADMIN_NOTIFICATION_CATEGORIES, ADMIN_NOTIFICATION_SEVERITIES, STORE_CATEGORIES_COLLECTION, STORE_CATEGORY_INDEXED_FIELDS, DEFAULT_STORE_CATEGORY_DATA, type ListingTemplateType, type ListingTemplateDocument, LISTING_TEMPLATES_COLLECTION, LISTING_TEMPLATE_INDEXED_FIELDS, DEFAULT_LISTING_TEMPLATE_DATA, type ModerationStatus, type ModerationMediaType, type ModerationQueueDocument, MODERATION_QUEUE_COLLECTION, MODERATION_QUEUE_INDEXED_FIELDS, DEFAULT_MODERATION_QUEUE_DATA, type ReportEntityType, type ReportStatus, type ReportReason, type ReportDocument, REPORTS_COLLECTION, REPORT_INDEXED_FIELDS, DEFAULT_REPORT_DATA, type AdminNotificationCategory, type AdminNotificationDocument, ADMIN_NOTIFICATIONS_COLLECTION, ADMIN_NOTIFICATION_INDEXED_FIELDS, DEFAULT_ADMIN_NOTIFICATION_DATA, type ItemRequestStatus, type ItemRequestReply, type ItemRequestDocument, ITEM_REQUESTS_COLLECTION, ITEM_REQUEST_INDEXED_FIELDS, DEFAULT_ITEM_REQUEST_DATA, type StoreGoogleConfigDocument, STORE_GOOGLE_CONFIG_COLLECTION, STORE_GOOGLE_CONFIG_INDEXED_FIELDS, DEFAULT_STORE_GOOGLE_CONFIG_DATA, type StoreWhatsAppConfigDocument, STORE_WHATSAPP_CONFIG_COLLECTION, STORE_WHATSAPP_CONFIG_INDEXED_FIELDS, DEFAULT_STORE_WHATSAPP_CONFIG_DATA, type CustomRoleDocument, CUSTOM_ROLES_COLLECTION, CUSTOM_ROLE_INDEXED_FIELDS, DEFAULT_CUSTOM_ROLE_DATA, type RoleOverrideDocument, ROLE_OVERRIDES_COLLECTION, ROLE_OVERRIDE_INDEXED_FIELDS, DEFAULT_ROLE_OVERRIDE_DATA, PayoutMethodsRepository, ShippingConfigsRepository, AnalyticsCardsRepository, AnalyticsAlertsRepository, StoreCategoriesRepository, ListingTemplatesRepository, ModerationQueueRepository, ReportsRepository, AdminNotificationsRepository, ItemRequestsRepository, StoreGoogleConfigRepository, StoreWhatsAppConfigRepository, CustomRolesRepository, RoleOverridesRepository, payoutMethodsRepository, shippingConfigsRepository, analyticsCardsRepository, analyticsAlertsRepository, storeCategoriesRepository, listingTemplatesRepository, moderationQueueRepository, reportsRepository, adminNotificationsRepository, itemRequestsRepository, storeGoogleConfigRepository, storeWhatsAppConfigRepository, customRolesRepository, roleOverridesRepository, } from "./features/store-extensions/index";
483
483
  export { BaseRepository } from "./repositories/index";
484
484
  export { BlogRepository } from "./repositories/index";
485
485
  export { CartRepository } from "./repositories/index";
@@ -2195,12 +2195,12 @@ export { actionTracker, setActionTrackerSink, resetActionTrackerSink, type Actio
2195
2195
  export { cartRequiresShipping, cartIsDigitalOnly, cartIsChatOnly, } from "./_internal/shared/listing-types/cart-shipping";
2196
2196
  export { ACTIONS, action, act, canPerformAction, actionsForListingType, actionLabel, type ActionDef, type ActionKind, type ActionResource, type ActionTree, type ActionConfirmation, } from "./_internal/shared/actions/action-registry";
2197
2197
  export { buildBulkAction } from "./_internal/shared/actions/bulk-helpers";
2198
- export { computeCheckoutFees, allocateCheckoutFees, computePayoutDeduction, computeCodHandlingFee, computeGiftWrapFee, computeShipmentProtectionFee, computeSaleProtectionFee, calculateGst, } from "./_internal/shared/fees/calculator";
2198
+ export { computeCheckoutFees, allocateCheckoutFees, computePayoutDeduction, computeCodHandlingFee, computeWhatsAppNotifyFee, computeGiftWrapFee, computeShipmentProtectionFee, computeSaleProtectionFee, calculateGst, } from "./_internal/shared/fees/calculator";
2199
2199
  export { searchPriceIndex, PRICE_INDEX_SEARCH_LIMIT, PRICE_INDEX_MIN_QUERY_LENGTH } from "./_internal/server/features/price-index/search";
2200
2200
  export type { PriceIndexSearchResponse, PriceIndexSearchResult, PriceIndexSearchResultBand, } from "./_internal/server/features/price-index/search";
2201
2201
  export { protectionAvailability, computeProtectionFees, adjudicateClaim, badgesFor, showsRiskNotice, showsSafetyBadge, returnDestination, rtoDestination, PROTECTION_KINDS, } from "./_internal/shared/features/shipping/protections";
2202
2202
  export type { ProtectionKind, ProtectionAvailability, ProtectionTierInput, ProtectionUnavailableReason, ClaimFinding, ClaimOutcome, } from "./_internal/shared/features/shipping/protections";
2203
- export type { FeeCommissionRates, CheckoutFees, PayoutDeduction, CodHandlingFeeRates, GiftWrapFeeRates, ShipmentProtectionFeeRates, SaleProtectionFeeRates, GstBreakdown, } from "./_internal/shared/fees/calculator";
2203
+ export type { FeeCommissionRates, CheckoutFees, PayoutDeduction, CodHandlingFeeRates, WhatsAppNotifyFeeRates, GiftWrapFeeRates, ShipmentProtectionFeeRates, SaleProtectionFeeRates, GstBreakdown, } from "./_internal/shared/fees/calculator";
2204
2204
  export { checkEmiEligibility, computeEmiSchedule, computeBuyerEmiQuote } from "./_internal/shared/features/emi/schedule";
2205
2205
  export type { BuyerEmiQuote } from "./_internal/shared/features/emi/schedule";
2206
2206
  export { amountDueNow, groupEmiGate, groupEmiQuote, groupEmiSchedule, emiOrderFields } from "./_internal/shared/features/emi/group";
@@ -2700,8 +2700,25 @@ export { updateStoreAddressForSeller } from "./features/stores/server";
2700
2700
  export type { StoreContentParams } from "./features/stores/server";
2701
2701
  export type { StoreQueryListParams } from "./features/stores/server";
2702
2702
  export type { StoreReviewsResult } from "./features/stores/server";
2703
- export { buildPaymentProofReviewMessage } from "./features/orders/utils/payment-proof-message";
2704
- export type { PaymentProofReviewMessageInput } from "./features/orders/utils/payment-proof-message";
2703
+ export { WhatsAppChatButton } from "./features/whatsapp-bot/index";
2704
+ export { SellerWhatsAppSettingsView } from "./features/whatsapp-bot/index";
2705
+ export type { SellerWhatsAppSettingsViewProps } from "./features/whatsapp-bot/index";
2706
+ export type { CheckoutMessageInput } from "./features/whatsapp-bot/index";
2707
+ export type { IncomingWebhookPayload } from "./features/whatsapp-bot/index";
2708
+ export type { OrderStatusKey } from "./features/whatsapp-bot/index";
2709
+ export type { SendWhatsAppInput } from "./features/whatsapp-bot/index";
2710
+ export type { StatusMessageInput } from "./features/whatsapp-bot/index";
2711
+ export type { StatusNotificationInput } from "./features/whatsapp-bot/index";
2712
+ export type { WebhookVerifyInput } from "./features/whatsapp-bot/index";
2713
+ export { buildCheckoutMessageURL } from "./features/whatsapp-bot/server";
2714
+ export { buildStatusMessage } from "./features/whatsapp-bot/server";
2715
+ export { buildStatusNotificationURL } from "./features/whatsapp-bot/server";
2716
+ export { buildPaymentProofReviewMessage } from "./features/whatsapp-bot/server";
2717
+ export { isAdminNumber } from "./features/whatsapp-bot/server";
2718
+ export { parseIncomingWebhookPayload } from "./features/whatsapp-bot/server";
2719
+ export { sendWhatsAppMessage } from "./features/whatsapp-bot/server";
2720
+ export { sendWhatsAppBusinessMessage, syncProductsToCatalog, buildPurchaseAnnouncementMessage, buildGroupShareLink } from "./features/whatsapp-bot/server";
2721
+ export type { WaBusinessSendInput, CatalogSyncProduct, CatalogSyncInput, CatalogSyncResult, PurchaseAnnouncementInput } from "./features/whatsapp-bot/index";
2705
2722
  export { WishlistCard } from "./features/wishlist/index";
2706
2723
  export { WishlistPage } from "./features/wishlist/index";
2707
2724
  export { WishlistHeartButton } from "./features/wishlist/index";
@@ -3015,7 +3032,7 @@ export { sublistingCategoryFormSchema } from "./features/store-extensions/schema
3015
3032
  export { adminStoreUpdateSchema, announcementBarSchema, } from "./features/admin/schemas/admin-editor-forms";
3016
3033
  export { adminOrderUpdateSchema, employeeInviteSchema, hardBanReasonSchema, featureFlagsUpdateSchema, adminAdFormSchema, } from "./features/admin/schemas/admin-ops-forms";
3017
3034
  export { changeEmailSchema } from "./features/account/schemas/index";
3018
- export { adminUserUpdateSchema, lotteryPullSchema, } from "./features/admin/schemas/admin-user-form";
3035
+ export { adminUserUpdateSchema, whatsappSettingsSchema, lotteryPullSchema, } from "./features/admin/schemas/admin-user-form";
3019
3036
  export { siteSettingsFormSchema } from "./features/admin/schemas/site-settings-form";
3020
3037
  export { createReviewSchema as reviewSubmitSchema } from "./_internal/shared/features/reviews/schema";
3021
3038
  export { wishlistAddSchema } from "./schemas/api-routes";
package/dist/index.js CHANGED
@@ -903,11 +903,11 @@ export { requireRole } from "./security/index.js";
903
903
  // AddressesRepository - unified top-level addresses collection (SB-UNI-A 2026-05-13).
904
904
  export { AddressesRepository } from "./repositories/index.js";
905
905
  // S-STORE foundation — 14 schemas + 14 repositories + RBAC.
906
- export { PAYOUT_METHODS_COLLECTION, PAYOUT_METHOD_INDEXED_FIELDS, DEFAULT_PAYOUT_METHOD_DATA, SHIPPING_CONFIGS_COLLECTION, SHIPPING_CONFIG_INDEXED_FIELDS, DEFAULT_SHIPPING_CONFIG_DATA, ANALYTICS_CARDS_COLLECTION, ANALYTICS_CARD_INDEXED_FIELDS, DEFAULT_ANALYTICS_CARD_DATA, ANALYTICS_ALERTS_COLLECTION, ANALYTICS_ALERT_INDEXED_FIELDS, DEFAULT_ANALYTICS_ALERT_DATA, storeCategoryFormSchema, storeCategoryCreateSchema, storeCategoryUpdateSchema, listingTemplateFormSchema, listingTemplateCreateSchema, listingTemplateUpdateSchema, LISTING_TEMPLATE_TYPES, LISTING_TEMPLATE_TYPE_OPTIONS, payoutMethodFormSchema, payoutMethodCreateSchema, payoutMethodUpdateSchema, shippingConfigFormSchema, SHIPPING_METHOD_OPTIONS, shippingConfigCreateSchema, shippingConfigUpdateSchema, customRoleFormSchema, customRoleCreateSchema, customRoleUpdateSchema, isKnownPermission, moderationReviewFormSchema, moderationReviewUpdateSchema, MODERATION_REVIEWER_STATUSES, reportReviewFormSchema, reportReviewUpdateSchema, REPORT_REVIEWER_STATUSES, REPORT_TERMINAL_STATUSES, reportCreateSchema, itemRequestCreateSchema, REPORT_ENTITY_TYPES, REPORT_REASONS, analyticsAlertCreateSchema, analyticsCardCreateSchema, ANALYTICS_ALERT_OPERATORS, ANALYTICS_CARD_TYPES, storeGoogleConfigUpdateSchema, toSellerGoogleConfig, adminNotificationCreateSchema, ADMIN_NOTIFICATION_CATEGORIES, ADMIN_NOTIFICATION_SEVERITIES, STORE_CATEGORIES_COLLECTION, STORE_CATEGORY_INDEXED_FIELDS, DEFAULT_STORE_CATEGORY_DATA, LISTING_TEMPLATES_COLLECTION, LISTING_TEMPLATE_INDEXED_FIELDS, DEFAULT_LISTING_TEMPLATE_DATA, MODERATION_QUEUE_COLLECTION, MODERATION_QUEUE_INDEXED_FIELDS, DEFAULT_MODERATION_QUEUE_DATA, REPORTS_COLLECTION, REPORT_INDEXED_FIELDS, DEFAULT_REPORT_DATA, ADMIN_NOTIFICATIONS_COLLECTION, ADMIN_NOTIFICATION_INDEXED_FIELDS, DEFAULT_ADMIN_NOTIFICATION_DATA, ITEM_REQUESTS_COLLECTION, ITEM_REQUEST_INDEXED_FIELDS, DEFAULT_ITEM_REQUEST_DATA, STORE_GOOGLE_CONFIG_COLLECTION, STORE_GOOGLE_CONFIG_INDEXED_FIELDS, DEFAULT_STORE_GOOGLE_CONFIG_DATA, CUSTOM_ROLES_COLLECTION, CUSTOM_ROLE_INDEXED_FIELDS, DEFAULT_CUSTOM_ROLE_DATA, ROLE_OVERRIDES_COLLECTION, ROLE_OVERRIDE_INDEXED_FIELDS, DEFAULT_ROLE_OVERRIDE_DATA,
906
+ export { PAYOUT_METHODS_COLLECTION, PAYOUT_METHOD_INDEXED_FIELDS, DEFAULT_PAYOUT_METHOD_DATA, SHIPPING_CONFIGS_COLLECTION, SHIPPING_CONFIG_INDEXED_FIELDS, DEFAULT_SHIPPING_CONFIG_DATA, ANALYTICS_CARDS_COLLECTION, ANALYTICS_CARD_INDEXED_FIELDS, DEFAULT_ANALYTICS_CARD_DATA, ANALYTICS_ALERTS_COLLECTION, ANALYTICS_ALERT_INDEXED_FIELDS, DEFAULT_ANALYTICS_ALERT_DATA, storeCategoryFormSchema, storeCategoryCreateSchema, storeCategoryUpdateSchema, listingTemplateFormSchema, listingTemplateCreateSchema, listingTemplateUpdateSchema, LISTING_TEMPLATE_TYPES, LISTING_TEMPLATE_TYPE_OPTIONS, payoutMethodFormSchema, payoutMethodCreateSchema, payoutMethodUpdateSchema, shippingConfigFormSchema, SHIPPING_METHOD_OPTIONS, shippingConfigCreateSchema, shippingConfigUpdateSchema, customRoleFormSchema, customRoleCreateSchema, customRoleUpdateSchema, isKnownPermission, moderationReviewFormSchema, moderationReviewUpdateSchema, MODERATION_REVIEWER_STATUSES, reportReviewFormSchema, reportReviewUpdateSchema, REPORT_REVIEWER_STATUSES, REPORT_TERMINAL_STATUSES, reportCreateSchema, itemRequestCreateSchema, REPORT_ENTITY_TYPES, REPORT_REASONS, analyticsAlertCreateSchema, analyticsCardCreateSchema, ANALYTICS_ALERT_OPERATORS, ANALYTICS_CARD_TYPES, storeGoogleConfigUpdateSchema, toSellerGoogleConfig, adminNotificationCreateSchema, ADMIN_NOTIFICATION_CATEGORIES, ADMIN_NOTIFICATION_SEVERITIES, STORE_CATEGORIES_COLLECTION, STORE_CATEGORY_INDEXED_FIELDS, DEFAULT_STORE_CATEGORY_DATA, LISTING_TEMPLATES_COLLECTION, LISTING_TEMPLATE_INDEXED_FIELDS, DEFAULT_LISTING_TEMPLATE_DATA, MODERATION_QUEUE_COLLECTION, MODERATION_QUEUE_INDEXED_FIELDS, DEFAULT_MODERATION_QUEUE_DATA, REPORTS_COLLECTION, REPORT_INDEXED_FIELDS, DEFAULT_REPORT_DATA, ADMIN_NOTIFICATIONS_COLLECTION, ADMIN_NOTIFICATION_INDEXED_FIELDS, DEFAULT_ADMIN_NOTIFICATION_DATA, ITEM_REQUESTS_COLLECTION, ITEM_REQUEST_INDEXED_FIELDS, DEFAULT_ITEM_REQUEST_DATA, STORE_GOOGLE_CONFIG_COLLECTION, STORE_GOOGLE_CONFIG_INDEXED_FIELDS, DEFAULT_STORE_GOOGLE_CONFIG_DATA, STORE_WHATSAPP_CONFIG_COLLECTION, STORE_WHATSAPP_CONFIG_INDEXED_FIELDS, DEFAULT_STORE_WHATSAPP_CONFIG_DATA, CUSTOM_ROLES_COLLECTION, CUSTOM_ROLE_INDEXED_FIELDS, DEFAULT_CUSTOM_ROLE_DATA, ROLE_OVERRIDES_COLLECTION, ROLE_OVERRIDE_INDEXED_FIELDS, DEFAULT_ROLE_OVERRIDE_DATA,
907
907
  // Repositories — classes
908
- PayoutMethodsRepository, ShippingConfigsRepository, AnalyticsCardsRepository, AnalyticsAlertsRepository, StoreCategoriesRepository, ListingTemplatesRepository, ModerationQueueRepository, ReportsRepository, AdminNotificationsRepository, ItemRequestsRepository, StoreGoogleConfigRepository, CustomRolesRepository, RoleOverridesRepository,
908
+ PayoutMethodsRepository, ShippingConfigsRepository, AnalyticsCardsRepository, AnalyticsAlertsRepository, StoreCategoriesRepository, ListingTemplatesRepository, ModerationQueueRepository, ReportsRepository, AdminNotificationsRepository, ItemRequestsRepository, StoreGoogleConfigRepository, StoreWhatsAppConfigRepository, CustomRolesRepository, RoleOverridesRepository,
909
909
  // Repositories — singletons
910
- payoutMethodsRepository, shippingConfigsRepository, analyticsCardsRepository, analyticsAlertsRepository, storeCategoriesRepository, listingTemplatesRepository, moderationQueueRepository, reportsRepository, adminNotificationsRepository, itemRequestsRepository, storeGoogleConfigRepository, customRolesRepository, roleOverridesRepository, } from "./features/store-extensions/index.js";
910
+ payoutMethodsRepository, shippingConfigsRepository, analyticsCardsRepository, analyticsAlertsRepository, storeCategoriesRepository, listingTemplatesRepository, moderationQueueRepository, reportsRepository, adminNotificationsRepository, itemRequestsRepository, storeGoogleConfigRepository, storeWhatsAppConfigRepository, customRolesRepository, roleOverridesRepository, } from "./features/store-extensions/index.js";
911
911
  // [DB]-Database layer â€" uses firebase-admin or another server-side DB SDK; can only run in a trusted server environment.
912
912
  // BaseRepository - Shared export for base repository.
913
913
  export { BaseRepository } from "./repositories/index.js";
@@ -2173,7 +2173,7 @@ export { markAllNotificationsRead } from "./features/admin/server.js";
2173
2173
  // markNotificationRead - Shared export for mark notification read.
2174
2174
  export { markNotificationRead } from "./features/admin/server.js";
2175
2175
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
2176
- // sendNotification - Multi-channel notification dispatcher (in-app + optional email).
2176
+ // sendNotification - Multi-channel notification dispatcher (in-app + optional email/WhatsApp).
2177
2177
  export { sendNotification } from "./features/admin/server.js";
2178
2178
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
2179
2179
  // revokeSession - Shared export for revoke session.
@@ -4086,7 +4086,7 @@ export { cartRequiresShipping, cartIsDigitalOnly, cartIsChatOnly, } from "./_int
4086
4086
  // SB-UNI-W-1 2026-05-13 â€" CTA action registry shell.
4087
4087
  export { ACTIONS, action, act, canPerformAction, actionsForListingType, actionLabel, } from "./_internal/shared/actions/action-registry.js";
4088
4088
  export { buildBulkAction } from "./_internal/shared/actions/bulk-helpers.js";
4089
- // Shared fee calculator — platform/gateway/GST/COD handling/addon fee math (pure, client-safe).
4089
+ // Shared fee calculator — platform/gateway/GST/COD handling/WhatsApp-addon fee math (pure, client-safe).
4090
4090
  export { computeCheckoutFees,
4091
4091
  // The per-group split of the ONE capped commission. Exported for the capture
4092
4092
  // route's points tender: the tender is applied per order group against the
@@ -4094,7 +4094,7 @@ export { computeCheckoutFees,
4094
4094
  // it the route would have to re-derive the apportionment — and the allocator
4095
4095
  // also carries the `minimumTransactionFee` floor (D41), which already spent
4096
4096
  // a release being re-implemented by hand in that very file.
4097
- allocateCheckoutFees, computePayoutDeduction, computeCodHandlingFee, computeGiftWrapFee, computeShipmentProtectionFee, computeSaleProtectionFee, calculateGst, } from "./_internal/shared/fees/calculator.js";
4097
+ allocateCheckoutFees, computePayoutDeduction, computeCodHandlingFee, computeWhatsAppNotifyFee, computeGiftWrapFee, computeShipmentProtectionFee, computeSaleProtectionFee, calculateGst, } from "./_internal/shared/fees/calculator.js";
4098
4098
  // C5e buyer protections — the pure three-tier gate plus the one fee pair
4099
4099
  // every money path must agree on. Public API because the capture route
4100
4100
  // (/api/payment/create-order) is one of the three sites that must agree.
@@ -4835,6 +4835,7 @@ export { AdminTeamGuideView } from "./features/admin/components/AdminTeamGuideVi
4835
4835
  export { AdminAnalyticsGuideView } from "./features/admin/components/AdminAnalyticsGuideView.js";
4836
4836
  // [CLIENT-SSR]-Admin trust & safety guide — static view, no firebase-admin.
4837
4837
  export { AdminTrustGuideView } from "./features/admin/components/AdminTrustGuideView.js";
4838
+ // [CLIENT-SSR]-Admin WhatsApp integration guide — static view, no firebase-admin.
4838
4839
  // [CLIENT-SSR]-Admin payments (Razorpay) guide — static view, no firebase-admin.
4839
4840
  export { AdminPaymentsGuideView } from "./features/admin/components/AdminPaymentsGuideView.js";
4840
4841
  // [CLIENT-SSR]-Buyer shopping guide — static view, no firebase-admin.
@@ -4857,6 +4858,7 @@ export { StoreFinanceGuideView } from "./features/stores/components/StoreFinance
4857
4858
  export { StoreCapabilitiesGuideView } from "./features/stores/components/StoreCapabilitiesGuideView.js";
4858
4859
  // [CLIENT-SSR]-Store settings guide — static view, no firebase-admin.
4859
4860
  export { StoreSettingsGuideView } from "./features/stores/components/StoreSettingsGuideView.js";
4861
+ // [CLIENT-SSR]-Store WhatsApp catalog sync guide — static view, no firebase-admin.
4860
4862
  export { StorePreOrdersListing } from "./features/stores/components/StorePreOrdersListing.js";
4861
4863
  // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
4862
4864
  // buildStoreColumns - Helper for build store columns.
@@ -4932,11 +4934,35 @@ export { storeSlugGET } from "./features/stores/server.js";
4932
4934
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
4933
4935
  // updateStoreAddressForSeller - Helper for update store address for seller.
4934
4936
  export { updateStoreAddressForSeller } from "./features/stores/server.js";
4935
- // ./features/orders/utils/payment-proof-message
4936
- // [CLIENT-SAFE] Pure wa.me share-link message builder — no crypto, no network.
4937
- // The WhatsApp Cloud API integration was removed 2026-10-20; this survived
4938
- // because a wa.me deep link needs no token, number or Meta billing account.
4939
- export { buildPaymentProofReviewMessage } from "./features/orders/utils/payment-proof-message.js";
4937
+ // ./features/whatsapp-bot/index
4938
+ // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
4939
+ // WhatsAppChatButton - Component for whats app chat button.
4940
+ export { WhatsAppChatButton } from "./features/whatsapp-bot/index.js";
4941
+ export { SellerWhatsAppSettingsView } from "./features/whatsapp-bot/index.js";
4942
+ // ./features/whatsapp-bot/server
4943
+ // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
4944
+ // buildCheckoutMessageURL - Helper for build checkout message url.
4945
+ export { buildCheckoutMessageURL } from "./features/whatsapp-bot/server.js";
4946
+ // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
4947
+ // buildStatusMessage - Helper for build status message.
4948
+ export { buildStatusMessage } from "./features/whatsapp-bot/server.js";
4949
+ // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
4950
+ // buildStatusNotificationURL - Helper for build status notification url.
4951
+ export { buildStatusNotificationURL } from "./features/whatsapp-bot/server.js";
4952
+ // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
4953
+ // buildPaymentProofReviewMessage - Helper for build payment proof review message (Tier PP).
4954
+ export { buildPaymentProofReviewMessage } from "./features/whatsapp-bot/server.js";
4955
+ // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
4956
+ // isAdminNumber - Shared export for is admin number.
4957
+ export { isAdminNumber } from "./features/whatsapp-bot/server.js";
4958
+ // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
4959
+ // parseIncomingWebhookPayload - Helper for parse incoming webhook payload.
4960
+ export { parseIncomingWebhookPayload } from "./features/whatsapp-bot/server.js";
4961
+ // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
4962
+ // sendWhatsAppMessage - Shared export for send whats app message.
4963
+ export { sendWhatsAppMessage } from "./features/whatsapp-bot/server.js";
4964
+ // [SERVER-ONLY] Meta WhatsApp Business Cloud API helpers (WA1-WA8 integration)
4965
+ export { sendWhatsAppBusinessMessage, syncProductsToCatalog, buildPurchaseAnnouncementMessage, buildGroupShareLink } from "./features/whatsapp-bot/server.js";
4940
4966
  // ./features/wishlist/index
4941
4967
  // [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
4942
4968
  // WishlistCard - Component for wishlist card.
@@ -5369,7 +5395,7 @@ export { sublistingCategoryFormSchema } from "./features/store-extensions/schema
5369
5395
  export { adminStoreUpdateSchema, announcementBarSchema, } from "./features/admin/schemas/admin-editor-forms.js";
5370
5396
  export { adminOrderUpdateSchema, employeeInviteSchema, hardBanReasonSchema, featureFlagsUpdateSchema, adminAdFormSchema, } from "./features/admin/schemas/admin-ops-forms.js";
5371
5397
  export { changeEmailSchema } from "./features/account/schemas/index.js";
5372
- export { adminUserUpdateSchema, lotteryPullSchema, } from "./features/admin/schemas/admin-user-form.js";
5398
+ export { adminUserUpdateSchema, whatsappSettingsSchema, lotteryPullSchema, } from "./features/admin/schemas/admin-user-form.js";
5373
5399
  export { siteSettingsFormSchema } from "./features/admin/schemas/site-settings-form.js";
5374
5400
  /*
5375
5401
  * Two schemas that existed and whose own routes did not use them.
@@ -261,6 +261,7 @@ export declare const DEFAULT_ROUTE_MAP: {
261
261
  readonly ADDRESSES_NEW: "/store/addresses/new";
262
262
  readonly ADDRESSES_EDIT: (id: string) => string;
263
263
  readonly OFFERS: "/store/offers";
264
+ readonly WHATSAPP: "/store/whatsapp";
264
265
  readonly REVIEWS: "/store/reviews";
265
266
  readonly BIDS: "/store/bids";
266
267
  readonly BID_DETAIL: (id: string) => string;
@@ -770,6 +771,7 @@ export declare const ROUTES: {
770
771
  readonly ADDRESSES_NEW: "/store/addresses/new";
771
772
  readonly ADDRESSES_EDIT: (id: string) => string;
772
773
  readonly OFFERS: "/store/offers";
774
+ readonly WHATSAPP: "/store/whatsapp";
773
775
  readonly REVIEWS: "/store/reviews";
774
776
  readonly BIDS: "/store/bids";
775
777
  readonly BID_DETAIL: (id: string) => string;
@@ -1056,6 +1058,7 @@ export declare const SELLER_ROUTES: {
1056
1058
  readonly ADDRESSES_NEW: "/store/addresses/new";
1057
1059
  readonly ADDRESSES_EDIT: (id: string) => string;
1058
1060
  readonly OFFERS: "/store/offers";
1061
+ readonly WHATSAPP: "/store/whatsapp";
1059
1062
  readonly REVIEWS: "/store/reviews";
1060
1063
  readonly BIDS: "/store/bids";
1061
1064
  readonly BID_DETAIL: (id: string) => string;
@@ -396,6 +396,7 @@ export const DEFAULT_ROUTE_MAP = {
396
396
  ADDRESSES_NEW: "/store/addresses/new",
397
397
  ADDRESSES_EDIT: (id) => `/store/addresses/${id}/edit`,
398
398
  OFFERS: "/store/offers",
399
+ WHATSAPP: "/store/whatsapp",
399
400
  REVIEWS: "/store/reviews",
400
401
  BIDS: "/store/bids",
401
402
  BID_DETAIL: (id) => `/store/bids/${id}/view`,
@@ -19,7 +19,7 @@ export declare abstract class BaseRepository<T extends DocumentData> {
19
19
  *
20
20
  * It is a SEPARATE hook because a list is not a detail read. A repository
21
21
  * whose `mapDoc` decrypts a secret must not hand that secret to a list —
22
- * A subclass overrides this when a list row must drop a field, since
22
+ * `StoreRepository` overrides this to drop the WhatsApp token, since
23
23
  * `listStores(activeOnly)` backs the PUBLIC /stores page.
24
24
  */
25
25
  protected mapDocForList<D = T>(snap: DocumentSnapshot): D;
@@ -56,7 +56,7 @@ export class BaseRepository {
56
56
  *
57
57
  * It is a SEPARATE hook because a list is not a detail read. A repository
58
58
  * whose `mapDoc` decrypts a secret must not hand that secret to a list —
59
- * A subclass overrides this when a list row must drop a field, since
59
+ * `StoreRepository` overrides this to drop the WhatsApp token, since
60
60
  * `listStores(activeOnly)` backs the PUBLIC /stores page.
61
61
  */
62
62
  mapDocForList(snap) {
@@ -40,7 +40,7 @@ export { shipmentItemsRepository } from "../features/shipments/repository/shipme
40
40
  export { catalogueRepository } from "../features/catalogue/repository/catalogue.repository";
41
41
  export { SavedPaymentMethodsRepository, savedPaymentMethodsRepository, } from "../features/payments/repository/saved-payment-methods.repository";
42
42
  export { GroupedListingsRepository, groupedListingsRepository, } from "../features/grouped/repository/grouped-listings.repository";
43
- export { payoutMethodsRepository, shippingConfigsRepository, analyticsCardsRepository, analyticsAlertsRepository, storeCategoriesRepository, listingTemplatesRepository, moderationQueueRepository, reportsRepository, itemRequestsRepository, storeGoogleConfigRepository, PayoutMethodsRepository, ShippingConfigsRepository, AnalyticsCardsRepository, AnalyticsAlertsRepository, StoreCategoriesRepository, ListingTemplatesRepository, ModerationQueueRepository, ReportsRepository, ItemRequestsRepository, StoreGoogleConfigRepository, } from "../features/store-extensions/repository/store-extensions.repositories";
43
+ export { payoutMethodsRepository, shippingConfigsRepository, analyticsCardsRepository, analyticsAlertsRepository, storeCategoriesRepository, listingTemplatesRepository, moderationQueueRepository, reportsRepository, itemRequestsRepository, storeWhatsAppConfigRepository, storeGoogleConfigRepository, PayoutMethodsRepository, ShippingConfigsRepository, AnalyticsCardsRepository, AnalyticsAlertsRepository, StoreCategoriesRepository, ListingTemplatesRepository, ModerationQueueRepository, ReportsRepository, ItemRequestsRepository, StoreWhatsAppConfigRepository, StoreGoogleConfigRepository, } from "../features/store-extensions/repository/store-extensions.repositories";
44
44
  export { roleOverridesRepository, customRolesRepository, adminNotificationsRepository, RoleOverridesRepository, CustomRolesRepository, AdminNotificationsRepository, } from "../features/store-extensions/repository/rbac.repositories";
45
45
  export { OfferRepository, offerRepository, } from "../features/seller/repository/offer.repository";
46
46
  export { wishlistRepository, type UserWishlistItem as WishlistItem, WishlistFullError, } from "../features/wishlist/repository/user-wishlist.repository";
@@ -56,7 +56,7 @@ export { SavedPaymentMethodsRepository, savedPaymentMethodsRepository, } from ".
56
56
  // Grouped listings repository
57
57
  export { GroupedListingsRepository, groupedListingsRepository, } from "../features/grouped/repository/grouped-listings.repository.js";
58
58
  // S-STORE-CROSS — 11 new collection repositories
59
- export { payoutMethodsRepository, shippingConfigsRepository, analyticsCardsRepository, analyticsAlertsRepository, storeCategoriesRepository, listingTemplatesRepository, moderationQueueRepository, reportsRepository, itemRequestsRepository, storeGoogleConfigRepository, PayoutMethodsRepository, ShippingConfigsRepository, AnalyticsCardsRepository, AnalyticsAlertsRepository, StoreCategoriesRepository, ListingTemplatesRepository, ModerationQueueRepository, ReportsRepository, ItemRequestsRepository, StoreGoogleConfigRepository, } from "../features/store-extensions/repository/store-extensions.repositories.js";
59
+ export { payoutMethodsRepository, shippingConfigsRepository, analyticsCardsRepository, analyticsAlertsRepository, storeCategoriesRepository, listingTemplatesRepository, moderationQueueRepository, reportsRepository, itemRequestsRepository, storeWhatsAppConfigRepository, storeGoogleConfigRepository, PayoutMethodsRepository, ShippingConfigsRepository, AnalyticsCardsRepository, AnalyticsAlertsRepository, StoreCategoriesRepository, ListingTemplatesRepository, ModerationQueueRepository, ReportsRepository, ItemRequestsRepository, StoreWhatsAppConfigRepository, StoreGoogleConfigRepository, } from "../features/store-extensions/repository/store-extensions.repositories.js";
60
60
  // S-STORE RBAC + admin notifications
61
61
  export { roleOverridesRepository, customRolesRepository, adminNotificationsRepository, RoleOverridesRepository, CustomRolesRepository, AdminNotificationsRepository, } from "../features/store-extensions/repository/rbac.repositories.js";
62
62
  export { OfferRepository, offerRepository, } from "../features/seller/repository/offer.repository.js";
@@ -4286,6 +4286,60 @@ export declare const SCHEMAS: {
4286
4286
  defaultProviderId: string;
4287
4287
  }>>;
4288
4288
  emiEnabled: import("zod").ZodOptional<import("zod").ZodBoolean>;
4289
+ whatsappConfig: import("zod").ZodOptional<import("zod").ZodObject<{
4290
+ phoneNumber: import("zod").ZodOptional<import("zod").ZodString>;
4291
+ wabaId: import("zod").ZodOptional<import("zod").ZodString>;
4292
+ catalogId: import("zod").ZodOptional<import("zod").ZodString>;
4293
+ accessToken: import("zod").ZodOptional<import("zod").ZodString>;
4294
+ catalogSyncEnabled: import("zod").ZodBoolean;
4295
+ lastCatalogSyncAt: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodDate, import("zod").ZodString, import("zod").ZodObject<{
4296
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4297
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
4298
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4299
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
4300
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4301
+ }, import("zod").ZodTypeAny, "passthrough">>]>>;
4302
+ lastSyncCount: import("zod").ZodOptional<import("zod").ZodNumber>;
4303
+ lastSyncStatus: import("zod").ZodOptional<import("zod").ZodEnum<["success", "partial", "failed"]>>;
4304
+ connected: import("zod").ZodBoolean;
4305
+ connectedAt: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodDate, import("zod").ZodString, import("zod").ZodObject<{
4306
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4307
+ }, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
4308
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4309
+ }, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
4310
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4311
+ }, import("zod").ZodTypeAny, "passthrough">>]>>;
4312
+ }, "strip", import("zod").ZodTypeAny, {
4313
+ catalogSyncEnabled: boolean;
4314
+ connected: boolean;
4315
+ phoneNumber?: string | undefined;
4316
+ accessToken?: string | undefined;
4317
+ wabaId?: string | undefined;
4318
+ catalogId?: string | undefined;
4319
+ lastCatalogSyncAt?: string | Date | import("zod").objectOutputType<{
4320
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4321
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
4322
+ lastSyncCount?: number | undefined;
4323
+ lastSyncStatus?: "success" | "failed" | "partial" | undefined;
4324
+ connectedAt?: string | Date | import("zod").objectOutputType<{
4325
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4326
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
4327
+ }, {
4328
+ catalogSyncEnabled: boolean;
4329
+ connected: boolean;
4330
+ phoneNumber?: string | undefined;
4331
+ accessToken?: string | undefined;
4332
+ wabaId?: string | undefined;
4333
+ catalogId?: string | undefined;
4334
+ lastCatalogSyncAt?: string | Date | import("zod").objectInputType<{
4335
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4336
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
4337
+ lastSyncCount?: number | undefined;
4338
+ lastSyncStatus?: "success" | "failed" | "partial" | undefined;
4339
+ connectedAt?: string | Date | import("zod").objectInputType<{
4340
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4341
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
4342
+ }>>;
4289
4343
  }, "strip", import("zod").ZodTypeAny, {
4290
4344
  status: "pending" | "active" | "rejected" | "suspended";
4291
4345
  id: string;
@@ -4355,6 +4409,22 @@ export declare const SCHEMAS: {
4355
4409
  maxReviews?: number | undefined;
4356
4410
  minRating?: number | undefined;
4357
4411
  } | undefined;
4412
+ whatsappConfig?: {
4413
+ catalogSyncEnabled: boolean;
4414
+ connected: boolean;
4415
+ phoneNumber?: string | undefined;
4416
+ accessToken?: string | undefined;
4417
+ wabaId?: string | undefined;
4418
+ catalogId?: string | undefined;
4419
+ lastCatalogSyncAt?: string | Date | import("zod").objectOutputType<{
4420
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4421
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
4422
+ lastSyncCount?: number | undefined;
4423
+ lastSyncStatus?: "success" | "failed" | "partial" | undefined;
4424
+ connectedAt?: string | Date | import("zod").objectOutputType<{
4425
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4426
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
4427
+ } | undefined;
4358
4428
  }, {
4359
4429
  status: "pending" | "active" | "rejected" | "suspended";
4360
4430
  id: string;
@@ -4424,6 +4494,22 @@ export declare const SCHEMAS: {
4424
4494
  maxReviews?: number | undefined;
4425
4495
  minRating?: number | undefined;
4426
4496
  } | undefined;
4497
+ whatsappConfig?: {
4498
+ catalogSyncEnabled: boolean;
4499
+ connected: boolean;
4500
+ phoneNumber?: string | undefined;
4501
+ accessToken?: string | undefined;
4502
+ wabaId?: string | undefined;
4503
+ catalogId?: string | undefined;
4504
+ lastCatalogSyncAt?: string | Date | import("zod").objectInputType<{
4505
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4506
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
4507
+ lastSyncCount?: number | undefined;
4508
+ lastSyncStatus?: "success" | "failed" | "partial" | undefined;
4509
+ connectedAt?: string | Date | import("zod").objectInputType<{
4510
+ toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4511
+ }, import("zod").ZodTypeAny, "passthrough"> | undefined;
4512
+ } | undefined;
4427
4513
  }>;
4428
4514
  readonly supportTickets: import("zod").ZodObject<{
4429
4515
  createdAt: import("zod").ZodUnion<[import("zod").ZodDate, import("zod").ZodString, import("zod").ZodObject<{
@@ -6102,6 +6188,25 @@ export declare const SCHEMAS: {
6102
6188
  description: import("zod").ZodOptional<import("zod").ZodString>;
6103
6189
  }, import("zod").ZodTypeAny, "passthrough">>>;
6104
6190
  }, import("zod").ZodTypeAny, "passthrough">>;
6191
+ readonly whatsappSettings: import("zod").ZodObject<{
6192
+ catalogSyncEnabled: import("zod").ZodBoolean;
6193
+ phoneNumber: import("zod").ZodUnion<[import("zod").ZodOptional<import("zod").ZodString>, import("zod").ZodLiteral<"">]>;
6194
+ wabaId: import("zod").ZodUnion<[import("zod").ZodOptional<import("zod").ZodString>, import("zod").ZodLiteral<"">]>;
6195
+ catalogId: import("zod").ZodUnion<[import("zod").ZodOptional<import("zod").ZodString>, import("zod").ZodLiteral<"">]>;
6196
+ accessToken: import("zod").ZodUnion<[import("zod").ZodOptional<import("zod").ZodString>, import("zod").ZodLiteral<"">]>;
6197
+ }, "strip", import("zod").ZodTypeAny, {
6198
+ catalogSyncEnabled: boolean;
6199
+ phoneNumber?: string | undefined;
6200
+ accessToken?: string | undefined;
6201
+ wabaId?: string | undefined;
6202
+ catalogId?: string | undefined;
6203
+ }, {
6204
+ catalogSyncEnabled: boolean;
6205
+ phoneNumber?: string | undefined;
6206
+ accessToken?: string | undefined;
6207
+ wabaId?: string | undefined;
6208
+ catalogId?: string | undefined;
6209
+ }>;
6105
6210
  readonly orderCancel: import("zod").ZodObject<{
6106
6211
  reason: import("zod").ZodString;
6107
6212
  }, "strip", import("zod").ZodTypeAny, {
@@ -139,7 +139,7 @@ import { reportReviewFormSchema } from "../features/store-extensions/schemas/rep
139
139
  import { adminStoreUpdateSchema } from "../features/admin/schemas/admin-editor-forms.js";
140
140
  import { adminAddressCreateSchema } from "../features/addresses/schemas/address-form.js";
141
141
  import { adminOrderUpdateSchema, employeeInviteSchema, adminAdFormSchema } from "../features/admin/schemas/admin-ops-forms.js";
142
- import { adminUserUpdateSchema, lotteryPullSchema } from "../features/admin/schemas/admin-user-form.js";
142
+ import { adminUserUpdateSchema, whatsappSettingsSchema, lotteryPullSchema } from "../features/admin/schemas/admin-user-form.js";
143
143
  import { siteSettingsFormSchema } from "../features/admin/schemas/site-settings-form.js";
144
144
  import { orderCancelSchema, paymentProofSchema } from "../features/orders/schemas/buyer-forms.js";
145
145
  import { scamReportFormSchema } from "../features/scams/schemas/report-form.js";
@@ -186,6 +186,7 @@ const forms = {
186
186
  employeeInvite: employeeInviteSchema,
187
187
  adminAd: adminAdFormSchema,
188
188
  siteSettings: siteSettingsFormSchema,
189
+ whatsappSettings: whatsappSettingsSchema,
189
190
  orderCancel: orderCancelSchema,
190
191
  paymentProof: paymentProofSchema,
191
192
  scamReport: scamReportFormSchema,
@@ -163,7 +163,7 @@ function setPath(obj, path, value) {
163
163
  *
164
164
  * 🛑 That dotted-path support is also what made it possible to point this
165
165
  * function at a field belonging to the OTHER crypto system. A store's
166
- * A store secret would be encrypted with SETTINGS_ENCRYPTION_KEY;
166
+ * `whatsappConfig.accessToken` is encrypted with SETTINGS_ENCRYPTION_KEY;
167
167
  * passing it here would encrypt it with the PII key while
168
168
  * `StoreRepository.decryptSecrets` kept decrypting with the settings one.
169
169
  * Only ever pass fields from this file's own `*_PII_FIELDS` lists.
package/dist/server.d.ts CHANGED
@@ -260,14 +260,14 @@ export { updateEvent } from "./features/events/server";
260
260
  export { triggerEventRaffleAction, assignSpinPrizeAction, resolveEventIdAction, } from "./_internal/server/features/raffle/actions";
261
261
  export { reasonToHttp, EVENT_DRAW_REASON, type EventDrawReason, type EventDrawHttpMapping, } from "./_internal/server/jobs/core/event-draw-reasons";
262
262
  export { processRefundAction, type ProcessRefundInput, } from "./_internal/server/features/refunds/actions";
263
- export { computeCheckoutFees, allocateCheckoutFees, computePayoutDeduction, computeCodHandlingFee, computeGiftWrapFee, computeShipmentProtectionFee, computeSaleProtectionFee, } from "./_internal/shared/fees/calculator";
263
+ export { computeCheckoutFees, allocateCheckoutFees, computePayoutDeduction, computeCodHandlingFee, computeWhatsAppNotifyFee, computeGiftWrapFee, computeShipmentProtectionFee, computeSaleProtectionFee, } from "./_internal/shared/fees/calculator";
264
264
  export { searchPriceIndex, getPriceIndexBandsForIds, PRICE_INDEX_SEARCH_LIMIT, PRICE_INDEX_MIN_QUERY_LENGTH } from "./_internal/server/features/price-index/search";
265
265
  export type { PriceIndexSearchResponse, PriceIndexSearchResult, PriceIndexSearchResultBand, } from "./_internal/server/features/price-index/search";
266
266
  export { getPriceIndexMarketForIds } from "./_internal/server/features/price-index/market";
267
267
  export type { PriceIndexMarketRow } from "./_internal/server/features/price-index/market";
268
268
  export { protectionAvailability, computeProtectionFees, adjudicateClaim, badgesFor, showsRiskNotice, showsSafetyBadge, returnDestination, rtoDestination, PROTECTION_KINDS, } from "./_internal/shared/features/shipping/protections";
269
269
  export type { ProtectionKind, ProtectionAvailability, ProtectionTierInput, ProtectionUnavailableReason, ClaimFinding, ClaimOutcome, } from "./_internal/shared/features/shipping/protections";
270
- export type { FeeCommissionRates, CheckoutFees, PayoutDeduction, CodHandlingFeeRates, GiftWrapFeeRates, ShipmentProtectionFeeRates, SaleProtectionFeeRates, } from "./_internal/shared/fees/calculator";
270
+ export type { FeeCommissionRates, CheckoutFees, PayoutDeduction, CodHandlingFeeRates, WhatsAppNotifyFeeRates, GiftWrapFeeRates, ShipmentProtectionFeeRates, SaleProtectionFeeRates, } from "./_internal/shared/fees/calculator";
271
271
  export { applyRefundDeductionAction, type ApplyRefundDeductionInput, type ApplyRefundDeductionResult, } from "./_internal/server/features/payouts/actions";
272
272
  export { createFaq } from "./features/faq/server";
273
273
  export { deleteFaq } from "./features/faq/server";
@@ -399,6 +399,14 @@ export { storeProductsGET } from "./features/stores/server";
399
399
  export { storeReviewsGET } from "./features/stores/server";
400
400
  export { storeSlugGET } from "./features/stores/server";
401
401
  export { updateStoreAddressForSeller } from "./features/stores/server";
402
+ export { buildCheckoutMessageURL } from "./features/whatsapp-bot/server";
403
+ export { buildStatusMessage } from "./features/whatsapp-bot/server";
404
+ export { buildStatusNotificationURL } from "./features/whatsapp-bot/server";
405
+ export { isAdminNumber } from "./features/whatsapp-bot/server";
406
+ export { parseIncomingWebhookPayload } from "./features/whatsapp-bot/server";
407
+ export { sendWhatsAppMessage } from "./features/whatsapp-bot/server";
408
+ export { sendWhatsAppBusinessMessage, syncProductsToCatalog, buildPurchaseAnnouncementMessage, buildGroupShareLink } from "./features/whatsapp-bot/server";
409
+ export type { WaBusinessSendInput, CatalogSyncProduct, CatalogSyncInput, CatalogSyncResult, PurchaseAnnouncementInput } from "./features/whatsapp-bot/server";
402
410
  export { addToWishlist } from "./features/wishlist/server";
403
411
  export { getWishlistForUser } from "./features/wishlist/server";
404
412
  export { removeFromWishlist } from "./features/wishlist/server";
package/dist/server.js CHANGED
@@ -860,8 +860,8 @@ resolveEventIdAction, } from "./_internal/server/features/raffle/actions.js";
860
860
  export { reasonToHttp, EVENT_DRAW_REASON, } from "./_internal/server/jobs/core/event-draw-reasons.js";
861
861
  // [SERVER-ONLY] S-SBUNI-RULES — refund action (Razorpay + manual paths)
862
862
  export { processRefundAction, } from "./_internal/server/features/refunds/actions.js";
863
- // [SERVER-ONLY] Shared fee calculator — platform/gateway/GST/COD handling/addon fee math.
864
- export { computeCheckoutFees, allocateCheckoutFees, computePayoutDeduction, computeCodHandlingFee, computeGiftWrapFee, computeShipmentProtectionFee, computeSaleProtectionFee, } from "./_internal/shared/fees/calculator.js";
863
+ // [SERVER-ONLY] Shared fee calculator — platform/gateway/GST/COD handling/WhatsApp-addon fee math.
864
+ export { computeCheckoutFees, allocateCheckoutFees, computePayoutDeduction, computeCodHandlingFee, computeWhatsAppNotifyFee, computeGiftWrapFee, computeShipmentProtectionFee, computeSaleProtectionFee, } from "./_internal/shared/fees/calculator.js";
865
865
  // C5e buyer protections — the pure three-tier gate plus the one fee pair
866
866
  // every money path must agree on. Public API because the capture route
867
867
  // (/api/payment/create-order) is one of the three sites that must agree.
@@ -1274,6 +1274,26 @@ export { storeSlugGET } from "./features/stores/server.js";
1274
1274
  // updateStoreAddressForSeller - Helper for update store address for seller.
1275
1275
  export { updateStoreAddressForSeller } from "./features/stores/server.js";
1276
1276
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1277
+ // buildCheckoutMessageURL - Helper for build checkout message url.
1278
+ export { buildCheckoutMessageURL } from "./features/whatsapp-bot/server.js";
1279
+ // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1280
+ // buildStatusMessage - Helper for build status message.
1281
+ export { buildStatusMessage } from "./features/whatsapp-bot/server.js";
1282
+ // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1283
+ // buildStatusNotificationURL - Helper for build status notification url.
1284
+ export { buildStatusNotificationURL } from "./features/whatsapp-bot/server.js";
1285
+ // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1286
+ // isAdminNumber - Shared export for is admin number.
1287
+ export { isAdminNumber } from "./features/whatsapp-bot/server.js";
1288
+ // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1289
+ // parseIncomingWebhookPayload - Helper for parse incoming webhook payload.
1290
+ export { parseIncomingWebhookPayload } from "./features/whatsapp-bot/server.js";
1291
+ // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1292
+ // sendWhatsAppMessage - Shared export for send whats app message.
1293
+ export { sendWhatsAppMessage } from "./features/whatsapp-bot/server.js";
1294
+ // [SERVER-ONLY]-Server-only — Meta Cloud API helpers (WA3).
1295
+ export { sendWhatsAppBusinessMessage, syncProductsToCatalog, buildPurchaseAnnouncementMessage, buildGroupShareLink } from "./features/whatsapp-bot/server.js";
1296
+ // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1277
1297
  // addToWishlist - Helper for add to wishlist.
1278
1298
  export { addToWishlist } from "./features/wishlist/server.js";
1279
1299
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).