@mohasinac/appkit 4.1.1 → 4.2.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 (225) hide show
  1. package/dist/_internal/client/features/maintenance/index.d.ts +2 -0
  2. package/dist/_internal/client/features/maintenance/index.js +1 -0
  3. package/dist/_internal/client/features/maintenance/views/CloudLogsListView.d.ts +9 -0
  4. package/dist/_internal/client/features/maintenance/views/CloudLogsListView.js +55 -0
  5. package/dist/_internal/server/features/auctions/index.d.ts +1 -1
  6. package/dist/_internal/server/features/auctions/index.js +1 -1
  7. package/dist/_internal/server/features/auctions/service.js +2 -2
  8. package/dist/_internal/server/features/checkout/actions.d.ts +15 -0
  9. package/dist/_internal/server/features/checkout/actions.js +245 -182
  10. package/dist/_internal/server/features/maintenance/cloud-logs-data.d.ts +50 -0
  11. package/dist/_internal/server/features/maintenance/cloud-logs-data.js +152 -0
  12. package/dist/_internal/server/functions/scheduled.d.ts +2 -1
  13. package/dist/_internal/server/functions/scheduled.js +9 -1
  14. package/dist/_internal/server/jobs/core/jobRunners.js +10 -0
  15. package/dist/_internal/server/jobs/core/newsletterExport.d.ts +15 -0
  16. package/dist/_internal/server/jobs/core/newsletterExport.js +43 -0
  17. package/dist/_internal/server/jobs/core/onOrderCreate.d.ts +4 -12
  18. package/dist/_internal/server/jobs/core/onOrderCreate.js +3 -3
  19. package/dist/_internal/server/jobs/core/onOrderStatusChange.d.ts +2 -0
  20. package/dist/_internal/server/jobs/core/onOrderStatusChange.js +1 -0
  21. package/dist/_internal/server/jobs/core/onProductWrite.js +14 -2
  22. package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +1 -0
  23. package/dist/_internal/server/jobs/core/pendingOrderTimeout.js +1 -0
  24. package/dist/_internal/server/jobs/core/revenueRollup.d.ts +13 -0
  25. package/dist/_internal/server/jobs/core/revenueRollup.js +22 -0
  26. package/dist/_internal/server/jobs/core/whatsappNotify.d.ts +35 -0
  27. package/dist/_internal/server/jobs/core/whatsappNotify.js +82 -0
  28. package/dist/_internal/server/jobs/handlers/index.d.ts +1 -0
  29. package/dist/_internal/server/jobs/handlers/index.js +1 -0
  30. package/dist/_internal/server/jobs/handlers/revenueRollup.d.ts +2 -0
  31. package/dist/_internal/server/jobs/handlers/revenueRollup.js +2 -0
  32. package/dist/_internal/shared/features/auctions/config.d.ts +1 -1
  33. package/dist/_internal/shared/features/auctions/config.js +1 -1
  34. package/dist/_internal/shared/features/auctions/schema.js +1 -1
  35. package/dist/_internal/shared/features/cart/schema.js +2 -2
  36. package/dist/_internal/shared/features/checkout/config.d.ts +7 -0
  37. package/dist/_internal/shared/features/checkout/config.js +7 -0
  38. package/dist/_internal/shared/features/events/schema.js +1 -1
  39. package/dist/_internal/shared/features/orders/schema.js +1 -1
  40. package/dist/_internal/shared/features/products/schema.js +3 -3
  41. package/dist/_internal/shared/features/promotions/schema.js +3 -3
  42. package/dist/_internal/shared/fees/calculator.d.ts +32 -7
  43. package/dist/_internal/shared/fees/calculator.js +25 -0
  44. package/dist/client.d.ts +4 -4
  45. package/dist/client.js +4 -2
  46. package/dist/constants/api-endpoints.d.ts +9 -6
  47. package/dist/constants/api-endpoints.js +3 -2
  48. package/dist/contracts/client-payment-gateway.d.ts +1 -2
  49. package/dist/features/about/components/AboutView.d.ts +6 -16
  50. package/dist/features/about/components/AboutView.js +3 -3
  51. package/dist/features/about/components/FeesView.js +18 -0
  52. package/dist/features/about/index.d.ts +2 -1
  53. package/dist/features/about/schemas/firestore.d.ts +47 -0
  54. package/dist/features/about/schemas/firestore.js +6 -0
  55. package/dist/features/about/schemas/index.d.ts +210 -0
  56. package/dist/features/about/schemas/index.js +45 -0
  57. package/dist/features/account/hooks/useProfile.js +3 -0
  58. package/dist/features/admin/actions/notification-actions.d.ts +4 -1
  59. package/dist/features/admin/actions/notification-actions.js +56 -10
  60. package/dist/features/admin/components/AdminAdsView.js +1 -1
  61. package/dist/features/admin/components/AdminCarouselGroupEditorView.d.ts +6 -0
  62. package/dist/features/admin/components/AdminCarouselGroupEditorView.js +50 -0
  63. package/dist/features/admin/components/AdminCartsView.js +16 -3
  64. package/dist/features/admin/components/AdminCouponEditorView.js +2 -2
  65. package/dist/features/admin/components/AdminCouponsView.js +14 -4
  66. package/dist/features/admin/components/AdminEmployeeEditorView.js +1 -42
  67. package/dist/features/admin/components/AdminMediaView.js +1 -1
  68. package/dist/features/admin/components/AdminNewsletterView.js +42 -11
  69. package/dist/features/admin/components/AdminNotificationsView.js +31 -19
  70. package/dist/features/admin/components/AdminOrdersView.js +7 -0
  71. package/dist/features/admin/components/AdminPayoutsView.js +18 -3
  72. package/dist/features/admin/components/AdminProductsView.js +17 -2
  73. package/dist/features/admin/components/AdminReviewsView.js +16 -2
  74. package/dist/features/admin/components/AdminScammersView.js +7 -0
  75. package/dist/features/admin/components/AdminSectionsView.js +4 -0
  76. package/dist/features/admin/components/AdminSiteConfigGuideView.js +1 -1
  77. package/dist/features/admin/components/AdminSiteSettingsView.js +127 -8
  78. package/dist/features/admin/components/AdminStoreEditorView.d.ts +2 -1
  79. package/dist/features/admin/components/AdminStoreEditorView.js +4 -4
  80. package/dist/features/admin/components/AdminStoresView.js +1 -1
  81. package/dist/features/admin/components/AdminSupportTicketDetailView.js +23 -5
  82. package/dist/features/admin/components/AdminSupportTicketsView.js +20 -2
  83. package/dist/features/admin/components/AdminTesterChecklistItemEditorView.js +4 -1
  84. package/dist/features/admin/components/AdminTesterChecklistView.js +8 -0
  85. package/dist/features/admin/components/index.d.ts +2 -0
  86. package/dist/features/admin/components/index.js +1 -0
  87. package/dist/features/admin/constants/filter-tabs.d.ts +55 -41
  88. package/dist/features/admin/constants/filter-tabs.js +55 -27
  89. package/dist/features/admin/repository/analytics-rollup.repository.d.ts +25 -0
  90. package/dist/features/admin/repository/analytics-rollup.repository.js +31 -0
  91. package/dist/features/admin/repository/site-settings.repository.js +8 -1
  92. package/dist/features/admin/schemas/firestore.d.ts +46 -0
  93. package/dist/features/admin/schemas/firestore.js +62 -24
  94. package/dist/features/auctions/actions/bid-actions.js +1 -1
  95. package/dist/features/auctions/components/AuctionDetailPageView.js +2 -2
  96. package/dist/features/auctions/components/AuctionsListView.js +8 -1
  97. package/dist/features/auth/components/LoginForm.js +2 -2
  98. package/dist/features/auth/components/RegisterForm.js +2 -2
  99. package/dist/features/auth/permissions/constants.d.ts +16 -0
  100. package/dist/features/auth/permissions/constants.js +53 -0
  101. package/dist/features/auth/schemas/firestore.js +1 -0
  102. package/dist/features/blog/components/BlogFilters.js +1 -1
  103. package/dist/features/cart/schemas/firestore.d.ts +1 -1
  104. package/dist/features/categories/schemas/firestore.d.ts +1 -1
  105. package/dist/features/consultation/components/ConsultationForm.js +1 -1
  106. package/dist/features/events/components/EventFilters.js +2 -0
  107. package/dist/features/homepage/components/WelcomeSection.js +2 -2
  108. package/dist/features/layout/BackToTop.d.ts +9 -5
  109. package/dist/features/layout/BackToTop.js +17 -21
  110. package/dist/features/layout/TitleBarLayout.d.ts +2 -2
  111. package/dist/features/layout/TitleBarLayout.js +4 -4
  112. package/dist/features/media/AvatarUpload.js +7 -3
  113. package/dist/features/media/MediaVideo.js +1 -1
  114. package/dist/features/media/finalize.d.ts +9 -13
  115. package/dist/features/media/finalize.js +23 -74
  116. package/dist/features/media/server.d.ts +1 -1
  117. package/dist/features/media/server.js +1 -1
  118. package/dist/features/orders/actions/refund-actions.js +1 -0
  119. package/dist/features/orders/hooks/useOrders.js +16 -4
  120. package/dist/features/orders/schemas/firestore.d.ts +19 -5
  121. package/dist/features/payments/schemas/firestore.d.ts +2 -2
  122. package/dist/features/pre-orders/components/PreOrdersListView.js +7 -0
  123. package/dist/features/products/components/ArtStickersListView.js +5 -0
  124. package/dist/features/products/components/ProductDetailPageView.d.ts +7 -1
  125. package/dist/features/products/components/ProductForm.js +14 -1
  126. package/dist/features/products/components/ProductsIndexPageView.js +7 -0
  127. package/dist/features/products/constants/action-defs.d.ts +29 -3
  128. package/dist/features/products/constants/action-defs.js +77 -1
  129. package/dist/features/products/schemas/firestore.d.ts +1 -1
  130. package/dist/features/products/schemas/product-templates.d.ts +1 -1
  131. package/dist/features/products/types/index.d.ts +4 -0
  132. package/dist/features/scams/schemas/index.js +2 -2
  133. package/dist/features/search/components/Search.js +3 -3
  134. package/dist/features/seller/components/SellerAuctionsView.js +27 -2
  135. package/dist/features/seller/components/SellerOrdersView.js +2 -2
  136. package/dist/features/seller/components/SellerPayoutsView.js +24 -10
  137. package/dist/features/seller/components/SellerPreOrdersView.js +12 -4
  138. package/dist/features/seller/components/SellerPrizeDrawsView.js +23 -5
  139. package/dist/features/seller/components/SellerProductShell.d.ts +2 -0
  140. package/dist/features/seller/components/SellerProductShell.js +1 -1
  141. package/dist/features/seller/components/SellerProductsView.js +8 -6
  142. package/dist/features/seller/components/SellerReviewsView.js +27 -6
  143. package/dist/features/seller/components/index.d.ts +0 -2
  144. package/dist/features/seller/components/index.js +0 -1
  145. package/dist/features/stores/components/StoreListingsGuideView.js +2 -1
  146. package/dist/features/stores/components/StoreProductsView.js +1 -1
  147. package/dist/features/stores/schemas/firestore.d.ts +11 -0
  148. package/dist/features/stores/schemas/firestore.js +5 -0
  149. package/dist/features/stores/schemas/index.d.ts +2 -2
  150. package/dist/features/tester/actions/checklist-item-actions.d.ts +6 -0
  151. package/dist/features/tester/actions/checklist-item-actions.js +2 -0
  152. package/dist/features/tester/components/AdminTesterFeedbackIssuesView.js +13 -2
  153. package/dist/features/tester/components/AdminTesterFeedbackListView.js +2 -1
  154. package/dist/features/tester/components/AdminTesterFeedbackReportView.js +9 -5
  155. package/dist/features/tester/components/TesterHubView.js +34 -21
  156. package/dist/features/tester/repository/tester-checklist-item.repository.js +1 -0
  157. package/dist/features/tester/repository/tester-checklist-response.repository.d.ts +18 -4
  158. package/dist/features/tester/repository/tester-checklist-response.repository.js +43 -8
  159. package/dist/features/tester/schemas/firestore.d.ts +8 -3
  160. package/dist/features/tester/schemas/firestore.js +6 -0
  161. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +21 -9
  162. package/dist/features/tester/utils/phases.d.ts +31 -0
  163. package/dist/features/tester/utils/phases.js +46 -0
  164. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +1 -1
  165. package/dist/features/whatsapp-bot/helpers/whatsapp.d.ts +10 -1
  166. package/dist/features/whatsapp-bot/helpers/whatsapp.js +47 -0
  167. package/dist/features/whatsapp-bot/types/index.d.ts +20 -1
  168. package/dist/features/wishlist/types/index.d.ts +3 -0
  169. package/dist/index.d.ts +15 -6
  170. package/dist/index.js +19 -9
  171. package/dist/next/components/NotFoundView.js +2 -1
  172. package/dist/next/routing/route-map.d.ts +6 -12
  173. package/dist/next/routing/route-map.js +3 -4
  174. package/dist/providers/db-firebase/admin.d.ts +1 -0
  175. package/dist/providers/db-firebase/admin.js +1 -1
  176. package/dist/repositories/index.d.ts +2 -0
  177. package/dist/repositories/index.js +1 -0
  178. package/dist/schemas/registry.d.ts +2 -2
  179. package/dist/seed/addresses-seed-data.js +18 -18
  180. package/dist/seed/bids-seed-data.js +4 -4
  181. package/dist/seed/blog-posts-seed-data.js +82 -82
  182. package/dist/seed/carousel-slides-seed-data.js +14 -10
  183. package/dist/seed/carousels-seed-data.js +3 -3
  184. package/dist/seed/cart-seed-data.js +92 -92
  185. package/dist/seed/claimed-coupons-seed-data.js +10 -10
  186. package/dist/seed/conversations-seed-data.js +75 -75
  187. package/dist/seed/coupon-usage-seed-data.js +12 -12
  188. package/dist/seed/coupons-seed-data.js +41 -41
  189. package/dist/seed/events-seed-data.js +105 -105
  190. package/dist/seed/grouped-listings-seed-data.d.ts +2 -137
  191. package/dist/seed/grouped-listings-seed-data.js +79 -143
  192. package/dist/seed/history-seed-data.js +38 -38
  193. package/dist/seed/homepage-sections-seed-data.js +9 -9
  194. package/dist/seed/notifications-seed-data.js +56 -56
  195. package/dist/seed/offers-seed-data.js +91 -91
  196. package/dist/seed/orders-seed-data.js +121 -106
  197. package/dist/seed/payouts-seed-data.js +42 -42
  198. package/dist/seed/products-auctions-seed-data.js +10 -2
  199. package/dist/seed/products-standard-seed-data.js +40 -8
  200. package/dist/seed/reviews-seed-data.js +42 -23
  201. package/dist/seed/scammers-seed-data.js +22 -22
  202. package/dist/seed/sessions-seed-data.js +7 -7
  203. package/dist/seed/shipments-seed-data.js +10 -10
  204. package/dist/seed/site-settings-seed-data.js +89 -0
  205. package/dist/seed/store-addresses-seed-data.js +2 -2
  206. package/dist/seed/store-extensions-seed-data.js +93 -93
  207. package/dist/seed/stores-seed-data.js +2 -0
  208. package/dist/seed/support-tickets-seed-data.js +47 -47
  209. package/dist/seed/users-seed-data.js +55 -89
  210. package/dist/seed/wishlists-seed-data.js +22 -22
  211. package/dist/server.d.ts +4 -3
  212. package/dist/server.js +7 -7
  213. package/dist/styles.css +1 -1
  214. package/dist/tailwind-utilities.css +1 -1
  215. package/dist/ui/components/PageLoader.js +8 -3
  216. package/dist/ui/components/Select.d.ts +8 -1
  217. package/dist/ui/components/Select.js +2 -2
  218. package/dist/ui/components/SiteMark.d.ts +23 -0
  219. package/dist/ui/components/SiteMark.js +76 -0
  220. package/dist/ui/index.d.ts +2 -0
  221. package/dist/ui/index.js +1 -0
  222. package/dist/validation/schemas.d.ts +0 -2
  223. package/dist/validation/schemas.js +0 -2
  224. package/package.json +1 -1
  225. package/scripts/seed-cli.mjs +17 -15
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  * WHY: Provides 18 seed user accounts covering all marketplace roles and demographics.
3
- * WHAT: Exports 18 UserDocument partials — 1 admin, 7 sellers (store owners, one of which
4
- * is also the dedicated isTester QA account), 10 buyers.
3
+ * WHAT: Exports 18 UserDocument partials — 1 admin, 2 sellers (store owners, one of which
4
+ * is also the dedicated isTester QA account), 15 buyers.
5
5
  * All passwords are TempPass123! in the Firebase Auth emulator. UIDs match slugs.
6
6
  *
7
7
  * EXPORTS:
@@ -27,10 +27,10 @@ export const usersSeedData = [
27
27
  email: "admin@letitrip.in",
28
28
  phoneNumber: `${_ph}9999900000`,
29
29
  phoneVerified: true,
30
- displayName: "LetItRip Admin",
31
- photoURL: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg"),
30
+ displayName: "Mock User 1",
31
+ photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-letitrip-admin-20260101/400/400"),
32
32
  avatarMetadata: {
33
- url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg"),
33
+ url: seedExtMedia("https://picsum.photos/seed/user-avatar-letitrip-admin-20260101/400/400"),
34
34
  position: { x: 50, y: 50 },
35
35
  zoom: 1.0,
36
36
  },
@@ -46,10 +46,10 @@ export const usersSeedData = [
46
46
  showPhone: false,
47
47
  showOrders: false,
48
48
  showWishlist: false,
49
- bio: "LetItRip platform administrator. India's largest YGO collectibles marketplace.",
49
+ bio: "LetItRip platform administrator. India's largest collectibles marketplace.",
50
50
  location: "Mumbai, Maharashtra",
51
51
  storeName: "LetItRip Official",
52
- storeCategory: "trading-cards",
52
+ storeCategory: "spinning-tops",
53
53
  },
54
54
  stats: { totalOrders: 20, auctionsWon: 2, itemsSold: 200, reviewsCount: 0 },
55
55
  metadata: {
@@ -60,38 +60,29 @@ export const usersSeedData = [
60
60
  createdAt: daysAgo(400),
61
61
  updatedAt: daysAgo(1),
62
62
  },
63
- // ── Seller: Seto Kaiba (also acts as buyer bids on admin's auctions) ──────
63
+ // ── Buyer: Mock User 2 (rival tournament bladerwas a seller persona, now a
64
+ // high-spend buyer/collector; the platform only has 2 real seller stores) ──
64
65
  {
65
66
  uid: "user-seto-kaiba",
66
- email: "kaiba@kaibalandmark.in",
67
+ email: "vivaan.kapoor@gmail.com",
67
68
  phoneNumber: `${_ph}9999900001`,
68
69
  phoneVerified: true,
69
- displayName: "Seto Kaiba",
70
- photoURL: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/89631139.jpg"),
71
- avatarMetadata: {
72
- url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/89631139.jpg"),
73
- position: { x: 50, y: 50 },
74
- zoom: 1.0,
75
- },
76
- role: USER_FIELDS.ROLE_VALUES.SELLER,
70
+ displayName: "Mock User 2",
71
+ photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-vivaan-kapoor-20260101/400/400"),
72
+ role: USER_FIELDS.ROLE_VALUES.USER,
77
73
  emailVerified: true,
78
74
  disabled: false,
79
- storeId: "store-kaiba-corp-cards",
80
- storeSlug: "store-kaiba-corp-cards",
81
- storeStatus: "approved",
82
75
  publicProfile: {
83
76
  isPublic: true,
84
77
  showEmail: false,
85
78
  showPhone: false,
86
79
  showOrders: false,
87
80
  showWishlist: false,
88
- bio: "CEO of Kaiba Corp. Collector and seller of authenticated YGO cards. Blue-Eyes White Dragon enthusiast.",
89
- location: "Domino City",
90
- socialLinks: { instagram: "https://instagram.com/kaibacorp" },
91
- storeName: "Kaiba Corp Card Vault",
92
- storeCategory: "trading-cards",
81
+ bio: "Beyblade collector and rival tournament blader. Always hunting the next limited edition to add to my vault.",
82
+ location: "Nagpur, Maharashtra",
83
+ socialLinks: { instagram: "https://instagram.com/vivaan.beyblade" },
93
84
  },
94
- stats: { totalOrders: 20, auctionsWon: 3, itemsSold: 580, reviewsCount: 35 },
85
+ stats: { totalOrders: 20, auctionsWon: 3, itemsSold: 0, reviewsCount: 35 },
95
86
  metadata: {
96
87
  lastSignInTime: daysAgo(1),
97
88
  creationTime: daysAgo(350).toISOString(),
@@ -100,19 +91,14 @@ export const usersSeedData = [
100
91
  createdAt: daysAgo(350),
101
92
  updatedAt: daysAgo(1),
102
93
  },
103
- // ── Buyer: Yugi Muto (pure buyer) ───────────────────────────────────────────
94
+ // ── Buyer: Mock User 3 (Beyblade stadium champion, pure buyer) ─────────────
104
95
  {
105
96
  uid: "user-yugi-muto",
106
- email: "yugi@duelkingdom.in",
97
+ email: "rehan.sheikh@gmail.com",
107
98
  phoneNumber: `${_ph}9999900002`,
108
99
  phoneVerified: true,
109
- displayName: "Yugi Muto",
110
- photoURL: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/46986414.jpg"),
111
- avatarMetadata: {
112
- url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/46986414.jpg"),
113
- position: { x: 50, y: 50 },
114
- zoom: 1.0,
115
- },
100
+ displayName: "Mock User 3",
101
+ photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-rehan-sheikh-20260101/400/400"),
116
102
  role: USER_FIELDS.ROLE_VALUES.USER,
117
103
  emailVerified: true,
118
104
  disabled: false,
@@ -122,9 +108,9 @@ export const usersSeedData = [
122
108
  showPhone: false,
123
109
  showOrders: false,
124
110
  showWishlist: false,
125
- bio: "King of Games. Duelist from Domino City. Collecting the cards of destiny.",
126
- location: "Domino City",
127
- socialLinks: { instagram: "https://instagram.com/yugi.duelkingdom" },
111
+ bio: "Beyblade stadium champion undefeated in 40+ local tournaments. Chasing limited-edition Takara-Tomy launchers and vintage originals.",
112
+ location: "Indore, Madhya Pradesh",
113
+ socialLinks: { instagram: "https://instagram.com/rehan.letitrip" },
128
114
  },
129
115
  stats: { totalOrders: 30, auctionsWon: 5, itemsSold: 0, reviewsCount: 20 },
130
116
  metadata: {
@@ -135,62 +121,52 @@ export const usersSeedData = [
135
121
  createdAt: daysAgo(300),
136
122
  updatedAt: daysAgo(2),
137
123
  },
138
- // ── Seller: Ash (Pokémon Palace owner) ──────────────────────────────────────
124
+ // ── Buyer: Ash (Pokémon + collectibles enthusiast) ──────────────────────────
139
125
  {
140
126
  uid: "user-ash-trainer",
141
127
  email: "ash@pokemonpalace.in",
142
128
  phoneNumber: `${_ph}9999900003`,
143
129
  phoneVerified: true,
144
- displayName: "Ash Ketchum",
130
+ displayName: "Mock User 4",
145
131
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-ash-ketchum-20260101/400/400"),
146
- role: USER_FIELDS.ROLE_VALUES.SELLER,
132
+ role: USER_FIELDS.ROLE_VALUES.USER,
147
133
  emailVerified: true,
148
134
  disabled: false,
149
- storeId: "store-pokemon-palace",
150
- storeSlug: "store-pokemon-palace",
151
- storeStatus: "approved",
152
135
  publicProfile: {
153
136
  isPublic: true,
154
137
  showEmail: false,
155
138
  showPhone: false,
156
139
  showOrders: false,
157
140
  showWishlist: false,
158
- bio: "Pokémon Master and TCG collector. Running Pokémon Palace from Bengaluru.",
141
+ bio: "Pokémon Master and collectibles enthusiast from Bengaluru. Always chasing the next rare pull.",
159
142
  location: "Bengaluru, Karnataka",
160
- storeName: "Pokémon Palace",
161
- storeCategory: "trading-cards",
162
143
  },
163
- stats: { totalOrders: 5, auctionsWon: 1, itemsSold: 120, reviewsCount: 8 },
144
+ stats: { totalOrders: 5, auctionsWon: 1, itemsSold: 0, reviewsCount: 8 },
164
145
  metadata: { lastSignInTime: daysAgo(3), creationTime: daysAgo(200).toISOString(), loginCount: 90 },
165
146
  createdAt: daysAgo(200),
166
147
  updatedAt: daysAgo(3),
167
148
  },
168
- // ── Seller: Priya (CardGame Hub owner) ──────────────────────────────────────
149
+ // ── Buyer: Priya (multi-TCG collector) ──────────────────────────────────────
169
150
  {
170
151
  uid: "user-priya-cards",
171
152
  email: "priya@cardgamehub.in",
172
153
  phoneNumber: `${_ph}9999900004`,
173
154
  phoneVerified: true,
174
- displayName: "Priya Sharma",
155
+ displayName: "Mock User 5",
175
156
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-priya-sharma-20260101/400/400"),
176
- role: USER_FIELDS.ROLE_VALUES.SELLER,
157
+ role: USER_FIELDS.ROLE_VALUES.USER,
177
158
  emailVerified: true,
178
159
  disabled: false,
179
- storeId: "store-cardgame-hub",
180
- storeSlug: "store-cardgame-hub",
181
- storeStatus: "approved",
182
160
  publicProfile: {
183
161
  isPublic: true,
184
162
  showEmail: false,
185
163
  showPhone: false,
186
164
  showOrders: false,
187
165
  showWishlist: false,
188
- bio: "TCG enthusiast and tournament organizer from Hyderabad. Multi-TCG specialist.",
166
+ bio: "TCG enthusiast and tournament organizer from Hyderabad. Multi-TCG collector.",
189
167
  location: "Hyderabad, Telangana",
190
- storeName: "CardGame Hub",
191
- storeCategory: "trading-cards",
192
168
  },
193
- stats: { totalOrders: 3, auctionsWon: 0, itemsSold: 85, reviewsCount: 4 },
169
+ stats: { totalOrders: 3, auctionsWon: 0, itemsSold: 0, reviewsCount: 4 },
194
170
  metadata: { lastSignInTime: daysAgo(5), creationTime: daysAgo(180).toISOString(), loginCount: 60 },
195
171
  createdAt: daysAgo(180),
196
172
  updatedAt: daysAgo(5),
@@ -201,7 +177,7 @@ export const usersSeedData = [
201
177
  email: "tyson@beybladearena.in",
202
178
  phoneNumber: `${_ph}9999900006`,
203
179
  phoneVerified: true,
204
- displayName: "Tyson Granger",
180
+ displayName: "Mock User 6",
205
181
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-tyson-granger-20260101/400/400"),
206
182
  role: USER_FIELDS.ROLE_VALUES.SELLER,
207
183
  emailVerified: true,
@@ -225,62 +201,52 @@ export const usersSeedData = [
225
201
  createdAt: daysAgo(150),
226
202
  updatedAt: daysAgo(4),
227
203
  },
228
- // ── Seller: Megumi (Tokyo Toys India owner) ────────────────────────────────
204
+ // ── Buyer: Megumi (anime figure + model kit collector) ─────────────────────
229
205
  {
230
206
  uid: "user-megumi-figures",
231
207
  email: "megumi@tokyotoys.in",
232
208
  phoneNumber: `${_ph}9999900007`,
233
209
  phoneVerified: true,
234
- displayName: "Megumi Tanaka",
210
+ displayName: "Mock User 7",
235
211
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-megumi-tanaka-20260101/400/400"),
236
- role: USER_FIELDS.ROLE_VALUES.SELLER,
212
+ role: USER_FIELDS.ROLE_VALUES.USER,
237
213
  emailVerified: true,
238
214
  disabled: false,
239
- storeId: "store-tokyo-toys-india",
240
- storeSlug: "store-tokyo-toys-india",
241
- storeStatus: "approved",
242
215
  publicProfile: {
243
216
  isPublic: true,
244
217
  showEmail: false,
245
218
  showPhone: false,
246
219
  showOrders: false,
247
220
  showWishlist: false,
248
- bio: "Direct imports from Akihabara. Authentic anime figures and model kits, no bootlegs.",
221
+ bio: "Anime figure and model kit collector from Pune. Always on the hunt for authentic imports.",
249
222
  location: "Pune, Maharashtra",
250
- storeName: "Tokyo Toys India",
251
- storeCategory: "action-figures",
252
223
  },
253
- stats: { totalOrders: 2, auctionsWon: 0, itemsSold: 65, reviewsCount: 3 },
224
+ stats: { totalOrders: 2, auctionsWon: 0, itemsSold: 0, reviewsCount: 3 },
254
225
  metadata: { lastSignInTime: daysAgo(2), creationTime: daysAgo(120).toISOString(), loginCount: 55 },
255
226
  createdAt: daysAgo(120),
256
227
  updatedAt: daysAgo(2),
257
228
  },
258
- // ── Seller: Amuro (Gundam Galaxy owner) ─────────────────────────────────────
229
+ // ── Buyer: Amuro (Gunpla builder) ───────────────────────────────────────────
259
230
  {
260
231
  uid: "user-amuro-builder",
261
232
  email: "amuro@gundamgalaxy.in",
262
233
  phoneNumber: `${_ph}9999900008`,
263
234
  phoneVerified: true,
264
- displayName: "Amuro Ray",
235
+ displayName: "Mock User 8",
265
236
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-amuro-ray-20260101/400/400"),
266
- role: USER_FIELDS.ROLE_VALUES.SELLER,
237
+ role: USER_FIELDS.ROLE_VALUES.USER,
267
238
  emailVerified: true,
268
239
  disabled: false,
269
- storeId: "store-gundam-galaxy",
270
- storeSlug: "store-gundam-galaxy",
271
- storeStatus: "approved",
272
240
  publicProfile: {
273
241
  isPublic: true,
274
242
  showEmail: false,
275
243
  showPhone: false,
276
244
  showOrders: false,
277
245
  showWishlist: false,
278
- bio: "Gunpla builder since 2005. Over 200 kits built. Importing from Bandai Hobby distributors.",
246
+ bio: "Gunpla builder since 2005. Over 200 kits built. Collects Bandai Hobby imports.",
279
247
  location: "Kolkata, West Bengal",
280
- storeName: "Gundam Galaxy",
281
- storeCategory: "model-kits",
282
248
  },
283
- stats: { totalOrders: 1, auctionsWon: 0, itemsSold: 42, reviewsCount: 2 },
249
+ stats: { totalOrders: 1, auctionsWon: 0, itemsSold: 0, reviewsCount: 2 },
284
250
  metadata: { lastSignInTime: daysAgo(6), creationTime: daysAgo(90).toISOString(), loginCount: 35 },
285
251
  createdAt: daysAgo(90),
286
252
  updatedAt: daysAgo(6),
@@ -291,7 +257,7 @@ export const usersSeedData = [
291
257
  email: "ananya.patel@gmail.com",
292
258
  phoneNumber: `${_ph}9999900009`,
293
259
  phoneVerified: true,
294
- displayName: "Ananya Patel",
260
+ displayName: "Mock User 9",
295
261
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-ananya-patel-20260101/400/400"),
296
262
  role: USER_FIELDS.ROLE_VALUES.USER,
297
263
  emailVerified: true,
@@ -316,7 +282,7 @@ export const usersSeedData = [
316
282
  email: "vikram.hw@gmail.com",
317
283
  phoneNumber: `${_ph}9999900010`,
318
284
  phoneVerified: true,
319
- displayName: "Vikram Singh",
285
+ displayName: "Mock User 10",
320
286
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-vikram-singh-20260101/400/400"),
321
287
  role: USER_FIELDS.ROLE_VALUES.USER,
322
288
  emailVerified: true,
@@ -341,7 +307,7 @@ export const usersSeedData = [
341
307
  email: "meera.blader@gmail.com",
342
308
  phoneNumber: `${_ph}9999900011`,
343
309
  phoneVerified: true,
344
- displayName: "Meera Nair",
310
+ displayName: "Mock User 11",
345
311
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-meera-nair-20260101/400/400"),
346
312
  role: USER_FIELDS.ROLE_VALUES.USER,
347
313
  emailVerified: true,
@@ -366,7 +332,7 @@ export const usersSeedData = [
366
332
  email: "arjun.builder@gmail.com",
367
333
  phoneNumber: `${_ph}9999900012`,
368
334
  phoneVerified: true,
369
- displayName: "Arjun Reddy",
335
+ displayName: "Mock User 12",
370
336
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-arjun-reddy-20260101/400/400"),
371
337
  role: USER_FIELDS.ROLE_VALUES.USER,
372
338
  emailVerified: true,
@@ -391,7 +357,7 @@ export const usersSeedData = [
391
357
  email: "sneha.vintage@gmail.com",
392
358
  phoneNumber: `${_ph}9999900013`,
393
359
  phoneVerified: true,
394
- displayName: "Sneha Gupta",
360
+ displayName: "Mock User 13",
395
361
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-sneha-gupta-20260101/400/400"),
396
362
  role: USER_FIELDS.ROLE_VALUES.USER,
397
363
  emailVerified: true,
@@ -416,7 +382,7 @@ export const usersSeedData = [
416
382
  email: "rohit.collect@gmail.com",
417
383
  phoneNumber: `${_ph}9999900014`,
418
384
  phoneVerified: true,
419
- displayName: "Rohit Agarwal",
385
+ displayName: "Mock User 14",
420
386
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-rohit-agarwal-20260101/400/400"),
421
387
  role: USER_FIELDS.ROLE_VALUES.USER,
422
388
  emailVerified: true,
@@ -441,7 +407,7 @@ export const usersSeedData = [
441
407
  email: "divya.funko@gmail.com",
442
408
  phoneNumber: `${_ph}9999900015`,
443
409
  phoneVerified: true,
444
- displayName: "Divya Menon",
410
+ displayName: "Mock User 15",
445
411
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-divya-menon-20260101/400/400"),
446
412
  role: USER_FIELDS.ROLE_VALUES.USER,
447
413
  emailVerified: true,
@@ -466,7 +432,7 @@ export const usersSeedData = [
466
432
  email: "karthik.new@gmail.com",
467
433
  phoneNumber: `${_ph}9999900016`,
468
434
  phoneVerified: false,
469
- displayName: "Karthik Iyer",
435
+ displayName: "Mock User 16",
470
436
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-karthik-iyer-20260101/400/400"),
471
437
  role: USER_FIELDS.ROLE_VALUES.USER,
472
438
  emailVerified: true,
@@ -491,7 +457,7 @@ export const usersSeedData = [
491
457
  email: "neha.op@gmail.com",
492
458
  phoneNumber: `${_ph}9999900017`,
493
459
  phoneVerified: true,
494
- displayName: "Neha Joshi",
460
+ displayName: "Mock User 17",
495
461
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-neha-joshi-20260101/400/400"),
496
462
  role: USER_FIELDS.ROLE_VALUES.USER,
497
463
  emailVerified: true,
@@ -516,7 +482,7 @@ export const usersSeedData = [
516
482
  email: "tester@letitrip.in",
517
483
  phoneNumber: `${_ph}9999900018`,
518
484
  phoneVerified: true,
519
- displayName: "QA Tester",
485
+ displayName: "Mock User 18",
520
486
  photoURL: seedExtMedia("https://picsum.photos/seed/user-avatar-qa-tester-20260101/400/400"),
521
487
  role: USER_FIELDS.ROLE_VALUES.SELLER,
522
488
  isTester: true,
@@ -1,6 +1,6 @@
1
1
  /*
2
- * WHY: Seeds wishlists for YGO marketplace — one doc per user, max 20 items, newest-first.
3
- * WHAT: 3 wishlists (Yugi 8 items, Kaiba 5 items, Admin 4 items). All productIds reference YGO seed products.
2
+ * WHY: Seeds wishlists for the Beyblade marketplace — one doc per user, max 20 items, newest-first.
3
+ * WHAT: 3 wishlists (Rehan 8 items, Vivaan 5 items, Admin 4 items). All productIds reference the real Beyblade seed products.
4
4
  *
5
5
  * EXPORTS:
6
6
  * wishlistsSeedData — Array of WishlistSeedDocument for seed runner
@@ -25,30 +25,30 @@ function makeDoc(userId, items) {
25
25
  };
26
26
  }
27
27
  export const wishlistsSeedData = [
28
- // Yugi: 8 items — mix of standard + auctions from Kaiba's store
28
+ // Rehan: 8 items — mix of standard + auctions from Beyblade Arena
29
29
  makeDoc("user-yugi-muto", [
30
- { productId: "product-dark-magician-lob-1st", productType: "product", addedAt: daysAgo(14) },
31
- { productId: "product-dark-magician-girl-ioc", productType: "product", addedAt: daysAgo(12) },
32
- { productId: "product-black-luster-soldier", productType: "product", addedAt: daysAgo(10) },
33
- { productId: "auction-blue-eyes-lob-1st-psa10", productType: "auction", addedAt: daysAgo(8) },
34
- { productId: "product-monster-reborn-lob", productType: "product", addedAt: daysAgo(6) },
35
- { productId: "product-pot-of-greed-lob", productType: "product", addedAt: daysAgo(4) },
36
- { productId: "auction-dark-magician-girl-psa9", productType: "auction", addedAt: daysAgo(3) },
37
- { productId: "preorder-25th-anniversary-lob", productType: "preorder", addedAt: daysAgo(1) },
30
+ { productId: "product-beyblade-original-dranzer-s", productType: "product", addedAt: daysAgo(14) },
31
+ { productId: "product-beyblade-original-driger-v", productType: "product", addedAt: daysAgo(12) },
32
+ { productId: "product-beyblade-metal-flame-sagittario", productType: "product", addedAt: daysAgo(10) },
33
+ { productId: "auction-beyblade-original-dragoon-storm", productType: "auction", addedAt: daysAgo(8) },
34
+ { productId: "product-beyblade-burst-valkyrie", productType: "product", addedAt: daysAgo(6) },
35
+ { productId: "product-beyblade-metal-storm-pegasus", productType: "product", addedAt: daysAgo(4) },
36
+ { productId: "auction-beyblade-metal-lightning-l-drago", productType: "auction", addedAt: daysAgo(3) },
37
+ { productId: "preorder-beyblade-x-bx-08-wave", productType: "preorder", addedAt: daysAgo(1) },
38
38
  ]),
39
- // Kaiba: 5 items from LetItRip Official (Kaiba as buyer)
39
+ // Vivaan: 5 items from Beyblade Arena (Vivaan as buyer)
40
40
  makeDoc("user-seto-kaiba", [
41
- { productId: "product-duelist-kingdom-playmat", productType: "product", addedAt: daysAgo(10) },
42
- { productId: "product-egyptian-gods-playmat", productType: "product", addedAt: daysAgo(7) },
43
- { productId: "product-duel-disk-replica", productType: "product", addedAt: daysAgo(5) },
44
- { productId: "product-millennium-puzzle-model", productType: "product", addedAt: daysAgo(3) },
45
- { productId: "product-kaiba-figure-15cm", productType: "product", addedAt: daysAgo(1) },
41
+ { productId: "product-beyblade-x-wizard-arrow", productType: "product", addedAt: daysAgo(10) },
42
+ { productId: "product-beyblade-x-knife-shinobi", productType: "product", addedAt: daysAgo(7) },
43
+ { productId: "classified-beyblade-stadium-set", productType: "product", addedAt: daysAgo(5) },
44
+ { productId: "digitalcode-beyblade-x-app-unlock", productType: "product", addedAt: daysAgo(3) },
45
+ { productId: "product-beyblade-burst-regalia-genesis", productType: "product", addedAt: daysAgo(1) },
46
46
  ]),
47
- // Admin: 4 items — mix from Kaiba's store (Admin as buyer)
47
+ // Admin: 4 items — mix from Beyblade Arena (Admin as buyer)
48
48
  makeDoc("user-admin-letitrip", [
49
- { productId: "product-chaos-emperor-dragon", productType: "product", addedAt: daysAgo(20) },
50
- { productId: "auction-exodia-complete-set-psa9", productType: "auction", addedAt: daysAgo(15) },
51
- { productId: "product-rainbow-dragon", productType: "product", addedAt: daysAgo(8) },
52
- { productId: "preorder-gx-tournament-pack", productType: "preorder", addedAt: daysAgo(2) },
49
+ { productId: "product-beyblade-metal-storm-pegasus", productType: "product", addedAt: daysAgo(20) },
50
+ { productId: "auction-beyblade-original-dragoon-storm", productType: "auction", addedAt: daysAgo(15) },
51
+ { productId: "product-beyblade-burst-valkyrie", productType: "product", addedAt: daysAgo(8) },
52
+ { productId: "preorder-beyblade-x-bx-08-wave", productType: "preorder", addedAt: daysAgo(2) },
53
53
  ]),
54
54
  ];
package/dist/server.d.ts CHANGED
@@ -12,6 +12,8 @@ export { analyzeLogs } from "./_internal/server/features/maintenance/analyze";
12
12
  export type { AnalyzeOptions, AnalyzeReport, } from "./_internal/server/features/maintenance/analyze";
13
13
  export { listServerErrors, getServerErrorById, findRelatedClientErrors, getMaintenanceDashboardCounts, } from "./_internal/server/features/maintenance/data";
14
14
  export type { MaintenanceDashboardCounts } from "./_internal/server/features/maintenance/data";
15
+ export { listCloudLogEntries } from "./_internal/server/features/maintenance/cloud-logs-data";
16
+ export type { CloudLogEntry, ListCloudLogEntriesOpts, ListCloudLogEntriesResult, } from "./_internal/server/features/maintenance/cloud-logs-data";
15
17
  export { ADDRESS_FIXTURES } from "./seed/index";
16
18
  export { BID_FIXTURES } from "./seed/index";
17
19
  export { CART_FIXTURES } from "./seed/index";
@@ -288,8 +290,8 @@ export { listPublicEvents } from "./features/events/server";
288
290
  export { updateEvent } from "./features/events/server";
289
291
  export { triggerEventRaffleAction, assignSpinPrizeAction, } from "./_internal/server/features/raffle/actions";
290
292
  export { processRefundAction, type ProcessRefundInput, } from "./_internal/server/features/refunds/actions";
291
- export { computeCheckoutFees, computePayoutDeduction, computeCodHandlingFee, } from "./_internal/shared/fees/calculator";
292
- export type { FeeCommissionRates, CheckoutFees, PayoutDeduction, CodHandlingFeeRates, } from "./_internal/shared/fees/calculator";
293
+ export { computeCheckoutFees, computePayoutDeduction, computeCodHandlingFee, computeWhatsAppNotifyFee, computeGiftWrapFee, computeShipmentProtectionFee, } from "./_internal/shared/fees/calculator";
294
+ export type { FeeCommissionRates, CheckoutFees, PayoutDeduction, CodHandlingFeeRates, WhatsAppNotifyFeeRates, GiftWrapFeeRates, ShipmentProtectionFeeRates, } from "./_internal/shared/fees/calculator";
293
295
  export { applyRefundDeductionAction, type ApplyRefundDeductionInput, type ApplyRefundDeductionResult, } from "./_internal/server/features/payouts/actions";
294
296
  export { createFaq } from "./features/faq/server";
295
297
  export { deleteFaq } from "./features/faq/server";
@@ -333,7 +335,6 @@ export { reorderHomepageSections } from "./features/homepage/server";
333
335
  export { updateCarouselSlide } from "./features/homepage/server";
334
336
  export { updateHomepageSection } from "./features/homepage/server";
335
337
  export { updateSectionSchema } from "./features/homepage/server";
336
- export { extractStoragePathFromUrl } from "./features/media/server";
337
338
  export { finalizeStagedMediaArray } from "./features/media/server";
338
339
  export { finalizeStagedMediaField } from "./features/media/server";
339
340
  export { finalizeStagedMediaObject } from "./features/media/server";
package/dist/server.js CHANGED
@@ -22,6 +22,9 @@ export { wrapJobHandler, wrapScheduleHandler, wrapTriggerHandler, wrapCallableHa
22
22
  export { analyzeLogs } from "./_internal/server/features/maintenance/analyze";
23
23
  // [SERVER-ONLY] Maintenance data loaders for /admin/maintenance/* server components.
24
24
  export { listServerErrors, getServerErrorById, findRelatedClientErrors, getMaintenanceDashboardCounts, } from "./_internal/server/features/maintenance/data";
25
+ // [SERVER-ONLY] Google Cloud Logging reader for /admin/maintenance/cloud-logs.
26
+ // Bounded single-page reads (Vercel Hobby 10s ceiling) — see cloud-logs-data.ts.
27
+ export { listCloudLogEntries } from "./_internal/server/features/maintenance/cloud-logs-data";
25
28
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
26
29
  // ADDRESS_FIXTURES - Constant used across modules.
27
30
  export { ADDRESS_FIXTURES } from "./seed/index";
@@ -388,10 +391,10 @@ export { createRazorpayRefund } from "./providers/payment-razorpay/index";
388
391
  // fetchRazorpayOrder - Shared export for fetch razorpay order.
389
392
  export { fetchRazorpayOrder } from "./providers/payment-razorpay/index";
390
393
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
391
- // paiseToRupees - Shared export for paise to rupees.
394
+ // paiseToRupees - Shared export for paise to rupees. // audit-money-units-ok: names the boundary conversion function itself
392
395
  export { paiseToRupees } from "./providers/payment-razorpay/index";
393
396
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
394
- // rupeesToPaise - Shared export for rupees to paise.
397
+ // rupeesToPaise - Shared export for rupees to paise. // audit-money-units-ok: names the boundary conversion function itself
395
398
  export { rupeesToPaise } from "./providers/payment-razorpay/index";
396
399
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
397
400
  // verifyPaymentSignature - Shared export for verify payment signature.
@@ -835,8 +838,8 @@ export { updateEvent } from "./features/events/server";
835
838
  export { triggerEventRaffleAction, assignSpinPrizeAction, } from "./_internal/server/features/raffle/actions";
836
839
  // [SERVER-ONLY] S-SBUNI-RULES — refund action (Razorpay + manual paths)
837
840
  export { processRefundAction, } from "./_internal/server/features/refunds/actions";
838
- // [SERVER-ONLY] Shared fee calculator — platform/gateway/GST/COD handling fee math.
839
- export { computeCheckoutFees, computePayoutDeduction, computeCodHandlingFee, } from "./_internal/shared/fees/calculator";
841
+ // [SERVER-ONLY] Shared fee calculator — platform/gateway/GST/COD handling/WhatsApp-addon fee math.
842
+ export { computeCheckoutFees, computePayoutDeduction, computeCodHandlingFee, computeWhatsAppNotifyFee, computeGiftWrapFee, computeShipmentProtectionFee, } from "./_internal/shared/fees/calculator";
840
843
  // [SERVER-ONLY] Payout refund deduction action
841
844
  export { applyRefundDeductionAction, } from "./_internal/server/features/payouts/actions";
842
845
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
@@ -964,9 +967,6 @@ export { updateHomepageSection } from "./features/homepage/server";
964
967
  // updateSectionSchema - Helper for update section schema.
965
968
  export { updateSectionSchema } from "./features/homepage/server";
966
969
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
967
- // extractStoragePathFromUrl - Shared export for extract storage path from url.
968
- export { extractStoragePathFromUrl } from "./features/media/server";
969
- // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
970
970
  // finalizeStagedMediaArray - Shared export for finalize staged media array.
971
971
  export { finalizeStagedMediaArray } from "./features/media/server";
972
972
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).