@mohasinac/appkit 4.1.0 → 4.1.3

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 (205) 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/maintenance/cloud-logs-data.d.ts +50 -0
  9. package/dist/_internal/server/features/maintenance/cloud-logs-data.js +152 -0
  10. package/dist/_internal/server/jobs/core/onOrderCreate.d.ts +4 -12
  11. package/dist/_internal/server/jobs/core/onOrderCreate.js +3 -3
  12. package/dist/_internal/server/jobs/core/onProductWrite.js +14 -2
  13. package/dist/_internal/shared/features/auctions/config.d.ts +1 -1
  14. package/dist/_internal/shared/features/auctions/config.js +1 -1
  15. package/dist/_internal/shared/features/auctions/schema.js +1 -1
  16. package/dist/_internal/shared/features/cart/schema.js +2 -2
  17. package/dist/_internal/shared/features/events/schema.js +1 -1
  18. package/dist/_internal/shared/features/orders/schema.js +1 -1
  19. package/dist/_internal/shared/features/products/schema.js +3 -3
  20. package/dist/_internal/shared/features/promotions/schema.js +3 -3
  21. package/dist/_internal/shared/fees/calculator.d.ts +6 -7
  22. package/dist/client.d.ts +4 -4
  23. package/dist/client.js +4 -2
  24. package/dist/constants/api-endpoints.d.ts +9 -6
  25. package/dist/constants/api-endpoints.js +3 -2
  26. package/dist/contracts/client-payment-gateway.d.ts +1 -2
  27. package/dist/features/about/components/AboutView.d.ts +6 -16
  28. package/dist/features/about/components/AboutView.js +3 -3
  29. package/dist/features/about/index.d.ts +2 -1
  30. package/dist/features/about/schemas/firestore.d.ts +47 -0
  31. package/dist/features/about/schemas/firestore.js +6 -0
  32. package/dist/features/about/schemas/index.d.ts +210 -0
  33. package/dist/features/about/schemas/index.js +45 -0
  34. package/dist/features/account/hooks/useProfile.js +3 -0
  35. package/dist/features/admin/components/AdminCarouselGroupEditorView.d.ts +6 -0
  36. package/dist/features/admin/components/AdminCarouselGroupEditorView.js +50 -0
  37. package/dist/features/admin/components/AdminCartsView.js +16 -3
  38. package/dist/features/admin/components/AdminCouponEditorView.js +2 -2
  39. package/dist/features/admin/components/AdminCouponsView.js +14 -4
  40. package/dist/features/admin/components/AdminEmployeeEditorView.js +1 -42
  41. package/dist/features/admin/components/AdminMediaView.js +1 -1
  42. package/dist/features/admin/components/AdminNotificationsView.js +31 -19
  43. package/dist/features/admin/components/AdminOrdersView.js +7 -0
  44. package/dist/features/admin/components/AdminPayoutsView.js +18 -3
  45. package/dist/features/admin/components/AdminProductsView.js +17 -2
  46. package/dist/features/admin/components/AdminReviewsView.js +16 -2
  47. package/dist/features/admin/components/AdminScammersView.js +7 -0
  48. package/dist/features/admin/components/AdminSectionsView.js +4 -0
  49. package/dist/features/admin/components/AdminSiteConfigGuideView.js +1 -1
  50. package/dist/features/admin/components/AdminSiteSettingsView.js +44 -2
  51. package/dist/features/admin/components/AdminStoreEditorView.d.ts +2 -1
  52. package/dist/features/admin/components/AdminStoreEditorView.js +4 -4
  53. package/dist/features/admin/components/AdminStoresView.js +1 -1
  54. package/dist/features/admin/components/AdminSupportTicketDetailView.js +23 -5
  55. package/dist/features/admin/components/AdminSupportTicketsView.js +20 -2
  56. package/dist/features/admin/components/AdminTesterChecklistItemEditorView.js +4 -1
  57. package/dist/features/admin/components/AdminTesterChecklistView.js +8 -0
  58. package/dist/features/admin/components/index.d.ts +2 -0
  59. package/dist/features/admin/components/index.js +1 -0
  60. package/dist/features/admin/constants/filter-tabs.d.ts +55 -41
  61. package/dist/features/admin/constants/filter-tabs.js +55 -27
  62. package/dist/features/admin/schemas/firestore.d.ts +5 -0
  63. package/dist/features/auctions/actions/bid-actions.js +1 -1
  64. package/dist/features/auctions/components/AuctionDetailPageView.js +2 -2
  65. package/dist/features/auctions/components/AuctionsListView.js +8 -1
  66. package/dist/features/auth/components/LoginForm.js +2 -2
  67. package/dist/features/auth/components/RegisterForm.js +2 -2
  68. package/dist/features/auth/permissions/constants.d.ts +16 -0
  69. package/dist/features/auth/permissions/constants.js +53 -0
  70. package/dist/features/auth/schemas/firestore.js +1 -0
  71. package/dist/features/blog/components/BlogFilters.js +1 -1
  72. package/dist/features/cart/schemas/firestore.d.ts +1 -1
  73. package/dist/features/categories/schemas/firestore.d.ts +1 -1
  74. package/dist/features/consultation/components/ConsultationForm.js +1 -1
  75. package/dist/features/events/components/EventFilters.js +2 -0
  76. package/dist/features/homepage/components/WelcomeSection.js +2 -2
  77. package/dist/features/layout/TitleBarLayout.d.ts +2 -2
  78. package/dist/features/layout/TitleBarLayout.js +4 -4
  79. package/dist/features/media/AvatarUpload.js +7 -3
  80. package/dist/features/media/MediaVideo.js +1 -1
  81. package/dist/features/media/finalize.d.ts +9 -13
  82. package/dist/features/media/finalize.js +23 -74
  83. package/dist/features/media/server.d.ts +1 -1
  84. package/dist/features/media/server.js +1 -1
  85. package/dist/features/orders/hooks/useOrders.js +16 -4
  86. package/dist/features/orders/schemas/firestore.d.ts +5 -5
  87. package/dist/features/payments/schemas/firestore.d.ts +2 -2
  88. package/dist/features/pre-orders/components/PreOrdersListView.js +7 -0
  89. package/dist/features/products/components/ArtStickersListView.js +5 -0
  90. package/dist/features/products/components/ProductDetailPageView.d.ts +7 -1
  91. package/dist/features/products/components/ProductForm.js +14 -1
  92. package/dist/features/products/components/ProductsIndexPageView.js +7 -0
  93. package/dist/features/products/constants/action-defs.d.ts +1 -0
  94. package/dist/features/products/constants/action-defs.js +1 -0
  95. package/dist/features/products/schemas/firestore.d.ts +1 -1
  96. package/dist/features/products/schemas/product-templates.d.ts +1 -1
  97. package/dist/features/products/types/index.d.ts +4 -0
  98. package/dist/features/scams/schemas/index.js +2 -2
  99. package/dist/features/search/components/Search.js +3 -3
  100. package/dist/features/seller/components/SellerAuctionsView.js +27 -2
  101. package/dist/features/seller/components/SellerOrdersView.js +1 -1
  102. package/dist/features/seller/components/SellerPayoutsView.js +24 -10
  103. package/dist/features/seller/components/SellerPreOrdersView.js +12 -4
  104. package/dist/features/seller/components/SellerPrizeDrawsView.js +23 -5
  105. package/dist/features/seller/components/SellerProductShell.d.ts +2 -0
  106. package/dist/features/seller/components/SellerProductShell.js +1 -1
  107. package/dist/features/seller/components/SellerProductsView.js +8 -6
  108. package/dist/features/seller/components/SellerReviewsView.js +27 -6
  109. package/dist/features/seller/components/index.d.ts +0 -2
  110. package/dist/features/seller/components/index.js +0 -1
  111. package/dist/features/stores/components/StoreListingsGuideView.js +2 -1
  112. package/dist/features/stores/components/StoreProductsView.js +1 -1
  113. package/dist/features/stores/schemas/firestore.d.ts +11 -0
  114. package/dist/features/stores/schemas/firestore.js +5 -0
  115. package/dist/features/stores/schemas/index.d.ts +2 -2
  116. package/dist/features/tester/actions/checklist-item-actions.d.ts +6 -0
  117. package/dist/features/tester/actions/checklist-item-actions.js +2 -0
  118. package/dist/features/tester/components/AdminTesterFeedbackIssuesView.js +13 -2
  119. package/dist/features/tester/components/AdminTesterFeedbackListView.js +2 -1
  120. package/dist/features/tester/components/AdminTesterFeedbackReportView.js +9 -5
  121. package/dist/features/tester/components/TesterHubView.js +34 -21
  122. package/dist/features/tester/repository/tester-checklist-item.repository.js +1 -0
  123. package/dist/features/tester/repository/tester-checklist-response.repository.d.ts +18 -4
  124. package/dist/features/tester/repository/tester-checklist-response.repository.js +43 -8
  125. package/dist/features/tester/schemas/firestore.d.ts +8 -3
  126. package/dist/features/tester/schemas/firestore.js +6 -0
  127. package/dist/features/tester/seed-data/bids-tester-seed-data.d.ts +2 -0
  128. package/dist/features/tester/seed-data/bids-tester-seed-data.js +37 -0
  129. package/dist/features/tester/seed-data/coupons-tester-seed-data.d.ts +2 -0
  130. package/dist/features/tester/seed-data/coupons-tester-seed-data.js +76 -0
  131. package/dist/features/tester/seed-data/events-tester-seed-data.js +50 -2
  132. package/dist/features/tester/seed-data/index.d.ts +3 -0
  133. package/dist/features/tester/seed-data/index.js +3 -0
  134. package/dist/features/tester/seed-data/orders-tester-seed-data.d.ts +2 -0
  135. package/dist/features/tester/seed-data/orders-tester-seed-data.js +265 -0
  136. package/dist/features/tester/seed-data/products-tester-seed-data.js +213 -8
  137. package/dist/features/tester/seed-data/tester-checklist-seed-data.js +294 -12
  138. package/dist/features/tester/utils/phases.d.ts +31 -0
  139. package/dist/features/tester/utils/phases.js +46 -0
  140. package/dist/features/whatsapp-bot/components/SellerWhatsAppSettingsView.js +1 -1
  141. package/dist/features/whatsapp-bot/types/index.d.ts +1 -1
  142. package/dist/features/wishlist/types/index.d.ts +3 -0
  143. package/dist/index.d.ts +11 -4
  144. package/dist/index.js +15 -7
  145. package/dist/next/api/routeHandler.js +6 -10
  146. package/dist/next/components/NotFoundView.js +2 -1
  147. package/dist/next/routing/route-map.d.ts +4 -12
  148. package/dist/next/routing/route-map.js +2 -4
  149. package/dist/providers/db-firebase/admin.d.ts +1 -0
  150. package/dist/providers/db-firebase/admin.js +1 -1
  151. package/dist/schemas/registry.d.ts +2 -2
  152. package/dist/seed/addresses-seed-data.js +18 -18
  153. package/dist/seed/bids-seed-data.js +4 -4
  154. package/dist/seed/blog-posts-seed-data.js +82 -82
  155. package/dist/seed/carousel-slides-seed-data.js +14 -10
  156. package/dist/seed/carousels-seed-data.js +3 -3
  157. package/dist/seed/cart-seed-data.js +92 -92
  158. package/dist/seed/claimed-coupons-seed-data.js +10 -10
  159. package/dist/seed/conversations-seed-data.js +75 -75
  160. package/dist/seed/coupon-usage-seed-data.js +12 -12
  161. package/dist/seed/coupons-seed-data.js +41 -41
  162. package/dist/seed/events-seed-data.js +105 -105
  163. package/dist/seed/grouped-listings-seed-data.d.ts +2 -137
  164. package/dist/seed/grouped-listings-seed-data.js +79 -143
  165. package/dist/seed/history-seed-data.js +38 -38
  166. package/dist/seed/homepage-sections-seed-data.js +9 -9
  167. package/dist/seed/index.d.ts +1 -1
  168. package/dist/seed/index.js +1 -1
  169. package/dist/seed/manifest.js +4 -4
  170. package/dist/seed/notifications-seed-data.js +56 -56
  171. package/dist/seed/offers-seed-data.js +91 -91
  172. package/dist/seed/orders-seed-data.js +125 -106
  173. package/dist/seed/payouts-seed-data.js +42 -42
  174. package/dist/seed/products-auctions-seed-data.js +10 -2
  175. package/dist/seed/products-classifieds-seed-data.js +48 -5
  176. package/dist/seed/products-digital-codes-seed-data.js +48 -5
  177. package/dist/seed/products-live-items-seed-data.js +6 -1
  178. package/dist/seed/products-prize-draws-seed-data.js +58 -5
  179. package/dist/seed/products-standard-seed-data.js +40 -8
  180. package/dist/seed/reviews-seed-data.js +42 -23
  181. package/dist/seed/scammers-seed-data.js +22 -22
  182. package/dist/seed/sessions-seed-data.js +7 -7
  183. package/dist/seed/shipments-seed-data.js +10 -10
  184. package/dist/seed/site-settings-seed-data.js +82 -0
  185. package/dist/seed/store-addresses-seed-data.js +2 -2
  186. package/dist/seed/store-extensions-seed-data.js +93 -93
  187. package/dist/seed/stores-seed-data.js +2 -0
  188. package/dist/seed/support-tickets-seed-data.js +47 -47
  189. package/dist/seed/users-seed-data.js +55 -89
  190. package/dist/seed/wishlists-seed-data.js +22 -22
  191. package/dist/server.d.ts +2 -1
  192. package/dist/server.js +5 -5
  193. package/dist/styles.css +1 -1
  194. package/dist/tailwind-utilities.css +1 -1
  195. package/dist/ui/components/PageLoader.js +8 -3
  196. package/dist/ui/components/Select.d.ts +8 -1
  197. package/dist/ui/components/Select.js +2 -2
  198. package/dist/ui/components/SiteMark.d.ts +23 -0
  199. package/dist/ui/components/SiteMark.js +76 -0
  200. package/dist/ui/index.d.ts +2 -0
  201. package/dist/ui/index.js +1 -0
  202. package/dist/validation/schemas.d.ts +0 -2
  203. package/dist/validation/schemas.js +0 -2
  204. package/package.json +1 -1
  205. package/scripts/seed-cli.mjs +27 -19
package/dist/index.js CHANGED
@@ -1790,10 +1790,10 @@ export { createRazorpayRefund } from "./providers/payment-razorpay/index";
1790
1790
  // fetchRazorpayOrder - Shared export for fetch razorpay order.
1791
1791
  export { fetchRazorpayOrder } from "./providers/payment-razorpay/index";
1792
1792
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1793
- // paiseToRupees - Shared export for paise to rupees.
1793
+ // paiseToRupees - Shared export for paise to rupees. // audit-money-units-ok: names the boundary conversion function itself
1794
1794
  export { paiseToRupees } from "./providers/payment-razorpay/index";
1795
1795
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1796
- // rupeesToPaise - Shared export for rupees to paise.
1796
+ // rupeesToPaise - Shared export for rupees to paise. // audit-money-units-ok: names the boundary conversion function itself
1797
1797
  export { rupeesToPaise } from "./providers/payment-razorpay/index";
1798
1798
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
1799
1799
  // verifyPaymentSignature - Shared export for verify payment signature.
@@ -2219,6 +2219,10 @@ export { AdminCartsView } from "./features/admin/index";
2219
2219
  export { AdminWishlistsView } from "./features/admin/index";
2220
2220
  // AdminHistoryView - Admin read-only history insights listing (S44 follow-up).
2221
2221
  export { AdminHistoryView } from "./features/admin/index";
2222
+ // AdminGroupedListingsView - Admin cross-store grouped-listings moderation view (W1-29).
2223
+ export { AdminGroupedListingsView } from "./features/admin/index";
2224
+ // AdminCarouselGroupEditorView - Create form for named carousel groups (EX2 nav-wiring fix).
2225
+ export { AdminCarouselGroupEditorView } from "./features/admin/index";
2222
2226
  // AdminContactEditorView - Admin contact submission detail SideDrawer (B7/VA15).
2223
2227
  export { AdminContactEditorView } from "./features/admin/index";
2224
2228
  // AdminReturnRequestsView - Admin return requests queue filtered to RETURN_REQUESTED (LL16).
@@ -2279,6 +2283,14 @@ export { DashboardStatsGrid } from "./features/admin/index";
2279
2283
  export { AdminTeamView } from "./features/admin/index";
2280
2284
  // AdminEmployeeEditorView - Invite/edit employee permissions SideDrawer.
2281
2285
  export { AdminEmployeeEditorView } from "./features/admin/index";
2286
+ // PERMISSION_GROUPS - Preset employee-group -> Permission[] bundles (S-ADMIN-7).
2287
+ export { PERMISSION_GROUPS } from "./features/auth/permissions/constants";
2288
+ // PERMISSION_DOMAINS - Domain label/prefix groupings for the permissions catalog page.
2289
+ export { PERMISSION_DOMAINS } from "./features/auth/permissions/constants";
2290
+ // getPermissionsForDomain - Every distinct permission across PERMISSION_GROUPS matching a domain prefix.
2291
+ export { getPermissionsForDomain } from "./features/auth/permissions/constants";
2292
+ // formatPermLabel - "admin:orders:read" -> "Read" display formatting.
2293
+ export { formatPermLabel } from "./features/auth/permissions/constants";
2282
2294
  // AdminSupportTicketsView - Admin support ticket list view.
2283
2295
  export { AdminSupportTicketsView } from "./features/admin/index";
2284
2296
  // AdminSupportTicketDetailView - Admin support ticket detail/reply SideDrawer.
@@ -4066,9 +4078,6 @@ export { useMediaTrim } from "./features/media/index";
4066
4078
  export { useMediaUpload } from "./features/media/index";
4067
4079
  // ./features/media/server
4068
4080
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
4069
- // extractStoragePathFromUrl - Shared export for extract storage path from url.
4070
- export { extractStoragePathFromUrl } from "./features/media/server";
4071
- // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
4072
4081
  // finalizeStagedMediaArray - Shared export for finalize staged media array.
4073
4082
  export { finalizeStagedMediaArray } from "./features/media/server";
4074
4083
  // [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
@@ -5517,7 +5526,7 @@ export { splitCartIntoOrderGroups } from "./features/orders/index";
5517
5526
  export { groupOrderItemsByBundle, } from "./features/orders/index";
5518
5527
  // -- Missing utils
5519
5528
  export { buildSieveFilters } from "./utils/filter.helper";
5520
- export { formatFileSize } from "./utils/number.formatter";
5529
+ export { formatCurrency, formatFileSize } from "./utils/number.formatter";
5521
5530
  export { formatMonthYear } from "./utils/date.formatter";
5522
5531
  export { generateMediaFilename } from "./utils/id-generators"; // generateProductImageFilename already exported from "./utils/id-generators";
5523
5532
  export { deriveContextTypeFromFilename } from "./utils/id-generators";
@@ -5646,7 +5655,6 @@ export { getLiveItemForDetail } from "./_internal/server/features/live/data";
5646
5655
  export { MarketplaceBundleCard } from "./features/products/index";
5647
5656
  // ── Wave 4 Seller management views ───────────────────────────────────────────
5648
5657
  export { SellerStoreCategoriesView } from "./features/seller/components/SellerStoreCategoriesView";
5649
- export { SellerTemplatesView } from "./features/seller/components/SellerTemplatesView";
5650
5658
  export { SellerPayoutMethodsView } from "./features/seller/components/SellerPayoutMethodsView";
5651
5659
  export { SellerShippingConfigsView } from "./features/seller/components/SellerShippingConfigsView";
5652
5660
  export { SellerGoogleReviewsView } from "./features/seller/components/SellerGoogleReviewsView";
@@ -188,17 +188,13 @@ export function createRouteHandler(options) {
188
188
  : options.permission
189
189
  ? ["admin", "employee"]
190
190
  : [];
191
- if (effectiveRoles.length > 0) {
192
- if (!user || !effectiveRoles.includes(user.role ?? "")) {
193
- const testerEligible = await isTesterEligibleForAdminRoute(user, effectiveRoles);
194
- if (testerEligible && user) {
195
- user.isTester = true;
196
- user.canTestAdmin = true;
197
- }
198
- else {
199
- return errorJson(403, HTTP_ERROR_CODES.FORBIDDEN, "Insufficient permissions", requestId);
200
- }
191
+ if (effectiveRoles.length > 0 && (!user || !effectiveRoles.includes(user.role ?? ""))) {
192
+ const testerEligible = await isTesterEligibleForAdminRoute(user, effectiveRoles);
193
+ if (!testerEligible || !user) {
194
+ return errorJson(403, HTTP_ERROR_CODES.FORBIDDEN, "Insufficient permissions", requestId);
201
195
  }
196
+ user.isTester = true;
197
+ user.canTestAdmin = true;
202
198
  }
203
199
  // -- Permission check (employee fine-grained) --------------------------
204
200
  if (options.permission && user && !isEffectiveAdminUser(user)) {
@@ -18,8 +18,9 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
18
18
  */
19
19
  import { Heading, Text } from "../../ui/components/Typography";
20
20
  import { TextLink } from "../../ui/components/TextLink";
21
+ import { SiteMark } from "../../ui/components/SiteMark";
21
22
  import { DEFAULT_ROUTE_MAP } from "../routing/route-map";
22
23
  import { Stack } from "@mohasinac/appkit";
23
24
  export function NotFoundView({ heading = "404 — Page not found", description = "The page you are looking for does not exist.", homeLabel = "Go home", homeHref = DEFAULT_ROUTE_MAP.HOME, }) {
24
- return (_jsxs(Stack, { justify: "center", className: "min-h-[60vh] text-center", padding: "x-xl", align: "center", children: [_jsx(Heading, { level: 1, variant: "primary", size: "7xl", className: "mb-2", weight: "bold", children: "404" }), _jsx(Heading, { level: 2, className: "mb-3", children: heading }), _jsx(Text, { variant: "secondary", className: "mb-8", children: description }), _jsx(TextLink, { href: homeHref, children: homeLabel })] }));
25
+ return (_jsxs(Stack, { justify: "center", className: "min-h-[60vh] text-center", padding: "x-xl", align: "center", children: [_jsx(SiteMark, { size: "xl" }), _jsx(Heading, { level: 1, variant: "primary", size: "7xl", className: "mb-2", weight: "bold", children: "404" }), _jsx(Heading, { level: 2, className: "mb-3", children: heading }), _jsx(Text, { variant: "secondary", className: "mb-8", children: description }), _jsx(TextLink, { href: homeHref, children: homeLabel })] }));
25
26
  }
@@ -116,6 +116,7 @@ export declare const DEFAULT_ROUTE_MAP: {
116
116
  readonly CLOSE: "/auth/close";
117
117
  };
118
118
  readonly USER: {
119
+ readonly DASHBOARD: "/user";
119
120
  readonly PROFILE: "/user/profile";
120
121
  readonly SETTINGS: "/user/settings";
121
122
  readonly ORDERS: "/user/orders";
@@ -170,9 +171,6 @@ export declare const DEFAULT_ROUTE_MAP: {
170
171
  readonly COUPONS: "/store/coupons";
171
172
  readonly COUPONS_NEW: "/store/coupons/new";
172
173
  readonly COUPONS_EDIT: (id: string) => string;
173
- readonly TEMPLATES: "/store/templates";
174
- readonly TEMPLATES_NEW: "/store/templates/new";
175
- readonly TEMPLATES_EDIT: (id: string) => string;
176
174
  readonly ANALYTICS: "/store/analytics";
177
175
  readonly PAYOUTS: "/store/payouts";
178
176
  readonly STOREFRONT: "/store/storefront";
@@ -214,7 +212,6 @@ export declare const DEFAULT_ROUTE_MAP: {
214
212
  readonly STICKERS_NEW: "/store/stickers/new";
215
213
  readonly STICKERS_EDIT: (id: string) => string;
216
214
  readonly PRINT_CENTER: "/store/print-center";
217
- readonly INVENTORY_PRINT: "/store/inventory/print";
218
215
  readonly FULFILLMENT: "/store/fulfillment";
219
216
  readonly PAYOUT_METHODS: "/store/payout-methods";
220
217
  readonly PAYOUT_METHODS_NEW: "/store/payout-methods/new";
@@ -338,6 +335,7 @@ export declare const DEFAULT_ROUTE_MAP: {
338
335
  readonly SETTINGS_ACTIONS: "/admin/settings/actions";
339
336
  readonly SETTINGS_NAVIGATION: "/admin/settings/navigation";
340
337
  readonly PRINT_CENTER: "/admin/print-center";
338
+ readonly MAINTENANCE: "/admin/maintenance";
341
339
  readonly FULFILLMENT: "/admin/fulfillment";
342
340
  readonly MODERATION: "/admin/moderation";
343
341
  readonly MODERATION_DETAIL: (id: string) => string;
@@ -477,6 +475,7 @@ export declare const ROUTES: {
477
475
  readonly CLOSE: "/auth/close";
478
476
  };
479
477
  readonly USER: {
478
+ readonly DASHBOARD: "/user";
480
479
  readonly PROFILE: "/user/profile";
481
480
  readonly SETTINGS: "/user/settings";
482
481
  readonly ORDERS: "/user/orders";
@@ -531,9 +530,6 @@ export declare const ROUTES: {
531
530
  readonly COUPONS: "/store/coupons";
532
531
  readonly COUPONS_NEW: "/store/coupons/new";
533
532
  readonly COUPONS_EDIT: (id: string) => string;
534
- readonly TEMPLATES: "/store/templates";
535
- readonly TEMPLATES_NEW: "/store/templates/new";
536
- readonly TEMPLATES_EDIT: (id: string) => string;
537
533
  readonly ANALYTICS: "/store/analytics";
538
534
  readonly PAYOUTS: "/store/payouts";
539
535
  readonly STOREFRONT: "/store/storefront";
@@ -575,7 +571,6 @@ export declare const ROUTES: {
575
571
  readonly STICKERS_NEW: "/store/stickers/new";
576
572
  readonly STICKERS_EDIT: (id: string) => string;
577
573
  readonly PRINT_CENTER: "/store/print-center";
578
- readonly INVENTORY_PRINT: "/store/inventory/print";
579
574
  readonly FULFILLMENT: "/store/fulfillment";
580
575
  readonly PAYOUT_METHODS: "/store/payout-methods";
581
576
  readonly PAYOUT_METHODS_NEW: "/store/payout-methods/new";
@@ -699,6 +694,7 @@ export declare const ROUTES: {
699
694
  readonly SETTINGS_ACTIONS: "/admin/settings/actions";
700
695
  readonly SETTINGS_NAVIGATION: "/admin/settings/navigation";
701
696
  readonly PRINT_CENTER: "/admin/print-center";
697
+ readonly MAINTENANCE: "/admin/maintenance";
702
698
  readonly FULFILLMENT: "/admin/fulfillment";
703
699
  readonly MODERATION: "/admin/moderation";
704
700
  readonly MODERATION_DETAIL: (id: string) => string;
@@ -749,9 +745,6 @@ export declare const SELLER_ROUTES: {
749
745
  readonly COUPONS: "/store/coupons";
750
746
  readonly COUPONS_NEW: "/store/coupons/new";
751
747
  readonly COUPONS_EDIT: (id: string) => string;
752
- readonly TEMPLATES: "/store/templates";
753
- readonly TEMPLATES_NEW: "/store/templates/new";
754
- readonly TEMPLATES_EDIT: (id: string) => string;
755
748
  readonly ANALYTICS: "/store/analytics";
756
749
  readonly PAYOUTS: "/store/payouts";
757
750
  readonly STOREFRONT: "/store/storefront";
@@ -793,7 +786,6 @@ export declare const SELLER_ROUTES: {
793
786
  readonly STICKERS_NEW: "/store/stickers/new";
794
787
  readonly STICKERS_EDIT: (id: string) => string;
795
788
  readonly PRINT_CENTER: "/store/print-center";
796
- readonly INVENTORY_PRINT: "/store/inventory/print";
797
789
  readonly FULFILLMENT: "/store/fulfillment";
798
790
  readonly PAYOUT_METHODS: "/store/payout-methods";
799
791
  readonly PAYOUT_METHODS_NEW: "/store/payout-methods/new";
@@ -110,6 +110,7 @@ export const DEFAULT_ROUTE_MAP = {
110
110
  CLOSE: "/auth/close",
111
111
  },
112
112
  USER: {
113
+ DASHBOARD: "/user",
113
114
  PROFILE: "/user/profile",
114
115
  SETTINGS: "/user/settings",
115
116
  ORDERS: "/user/orders",
@@ -164,9 +165,6 @@ export const DEFAULT_ROUTE_MAP = {
164
165
  COUPONS: "/store/coupons",
165
166
  COUPONS_NEW: "/store/coupons/new",
166
167
  COUPONS_EDIT: (id) => `/store/coupons/${id}/edit`,
167
- TEMPLATES: "/store/templates",
168
- TEMPLATES_NEW: "/store/templates/new",
169
- TEMPLATES_EDIT: (id) => `/store/templates/${id}/edit`,
170
168
  ANALYTICS: "/store/analytics",
171
169
  PAYOUTS: "/store/payouts",
172
170
  STOREFRONT: "/store/storefront",
@@ -211,7 +209,6 @@ export const DEFAULT_ROUTE_MAP = {
211
209
  STICKERS_NEW: "/store/stickers/new",
212
210
  STICKERS_EDIT: (id) => `/store/stickers/${id}/edit`,
213
211
  PRINT_CENTER: "/store/print-center",
214
- INVENTORY_PRINT: "/store/inventory/print",
215
212
  FULFILLMENT: "/store/fulfillment",
216
213
  // S-STORE Tier — new extension routes
217
214
  PAYOUT_METHODS: "/store/payout-methods",
@@ -340,6 +337,7 @@ export const DEFAULT_ROUTE_MAP = {
340
337
  SETTINGS_ACTIONS: "/admin/settings/actions",
341
338
  SETTINGS_NAVIGATION: "/admin/settings/navigation",
342
339
  PRINT_CENTER: "/admin/print-center",
340
+ MAINTENANCE: "/admin/maintenance",
343
341
  FULFILLMENT: "/admin/fulfillment",
344
342
  // S-STORE Tier — admin moderation + reports + item requests
345
343
  MODERATION: "/admin/moderation",
@@ -16,6 +16,7 @@ import type { Auth } from "firebase-admin/auth";
16
16
  import type { Firestore } from "firebase-admin/firestore";
17
17
  import type { Storage } from "firebase-admin/storage";
18
18
  import type { Database } from "firebase-admin/database";
19
+ export declare function parsePrivateKey(raw: string): string;
19
20
  declare global {
20
21
  var __mohasinac_firebase_admin_app__: App | null | undefined;
21
22
  var __mohasinac_firebase_admin_auth__: Auth | null | undefined;
@@ -35,7 +35,7 @@ function loadDatabase() {
35
35
  // OpenSSL 3 (Node 18+) rejects malformed PEM — ensure the key is normalised
36
36
  // before passing it to `cert()`.
37
37
  //
38
- function parsePrivateKey(raw) {
38
+ export function parsePrivateKey(raw) {
39
39
  return raw
40
40
  .replace(/^/, "") // strip UTF-8 BOM (PowerShell pipe artefact)
41
41
  .replace(/^["']|["']$/g, "") // strip optional surrounding quotes
@@ -3947,10 +3947,10 @@ export declare const SCHEMAS: {
3947
3947
  shippingPolicy?: string | undefined;
3948
3948
  isVacationMode?: boolean | undefined;
3949
3949
  vacationMessage?: string | undefined;
3950
+ capabilities?: string[] | undefined;
3950
3951
  vacationReturnDate?: string | Date | import("zod").objectOutputType<{
3951
3952
  toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
3952
3953
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
3953
- capabilities?: string[] | undefined;
3954
3954
  customCommissionRate?: number | undefined;
3955
3955
  googleReviews?: {
3956
3956
  enabled: boolean;
@@ -4032,10 +4032,10 @@ export declare const SCHEMAS: {
4032
4032
  shippingPolicy?: string | undefined;
4033
4033
  isVacationMode?: boolean | undefined;
4034
4034
  vacationMessage?: string | undefined;
4035
+ capabilities?: string[] | undefined;
4035
4036
  vacationReturnDate?: string | Date | import("zod").objectInputType<{
4036
4037
  toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
4037
4038
  }, import("zod").ZodTypeAny, "passthrough"> | undefined;
4038
- capabilities?: string[] | undefined;
4039
4039
  customCommissionRate?: number | undefined;
4040
4040
  googleReviews?: {
4041
4041
  enabled: boolean;
@@ -20,38 +20,38 @@
20
20
  const NOW = new Date();
21
21
  const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
22
22
  const _rawAddressesSeedData = [
23
- // Yugi Muto — Home
23
+ // Mock User 3 — Home
24
24
  {
25
25
  id: "addr-yugi-home",
26
26
  ownerType: "user",
27
27
  ownerId: "user-yugi-muto",
28
28
  label: "Home",
29
- fullName: "Yugi Muto",
29
+ fullName: "Mock User 3",
30
30
  phone: "+91-99999-10001",
31
- addressLine1: "123 Duel City Lane",
32
- addressLine2: "Domino City",
33
- city: "Domino City",
34
- state: "Tokyo",
35
- postalCode: "110-0001",
36
- country: "Japan",
31
+ addressLine1: "123 Stadium Lane",
32
+ addressLine2: "Vijay Nagar",
33
+ city: "Indore",
34
+ state: "Madhya Pradesh",
35
+ postalCode: "452010",
36
+ country: "India",
37
37
  isDefault: true,
38
38
  createdAt: daysAgo(180),
39
39
  updatedAt: daysAgo(1),
40
40
  },
41
- // Seto KaibaKaiba Mansion
41
+ // Mock User 2 Home
42
42
  {
43
43
  id: "addr-kaiba-mansion",
44
44
  ownerType: "user",
45
45
  ownerId: "user-seto-kaiba",
46
- label: "Kaiba Mansion",
47
- fullName: "Seto Kaiba",
46
+ label: "Home",
47
+ fullName: "Mock User 2",
48
48
  phone: "+91-99999-20001",
49
- addressLine1: "1000 Kaiba Estate Drive",
50
- addressLine2: "Domino Heights",
51
- city: "Domino City",
52
- state: "Tokyo",
53
- postalCode: "110-0020",
54
- country: "Japan",
49
+ addressLine1: "1000 Civil Lines Drive",
50
+ addressLine2: "Sitabuldi",
51
+ city: "Nagpur",
52
+ state: "Maharashtra",
53
+ postalCode: "440012",
54
+ country: "India",
55
55
  isDefault: true,
56
56
  createdAt: daysAgo(200),
57
57
  updatedAt: daysAgo(10),
@@ -62,7 +62,7 @@ const _rawAddressesSeedData = [
62
62
  ownerType: "user",
63
63
  ownerId: "user-admin-letitrip",
64
64
  label: "LetItRip HQ",
65
- fullName: "LetItRip Admin",
65
+ fullName: "Mock User 1",
66
66
  phone: "+91-99999-30001",
67
67
  addressLine1: "100 Collectibles Plaza",
68
68
  addressLine2: "Mumbai Central",
@@ -5,7 +5,7 @@
5
5
  * auction-beyblade-metal-lightning-l-drago) — bid counts and final amounts match
6
6
  * each auction's `bidCount`/`currentBid` fields exactly, so the product card's
7
7
  * "N bids" summary and the detail page's bid-history list agree. Bidders: 3 buyer
8
- * personas (Meera Nair, Rohit Agarwal, Ananya Patel), never the store's own seller
8
+ * personas (Mock User 11, Mock User 14, Mock User 9), never the store's own seller
9
9
  * (user-tyson-blader owns store-beyblade-arena). Status: newest bid per auction is
10
10
  * "active", the rest "outbid". Bid IDs: bid-{productSlug}-{userName}-{YYYYMMDD}-{rand6}.
11
11
  *
@@ -28,9 +28,9 @@ const BIDDER_EMAILS = {
28
28
  "user-ananya-collector": "ananya.patel@gmail.com",
29
29
  };
30
30
  const BIDDER_NAMES = {
31
- "user-meera-bey": "Meera Nair",
32
- "user-rohit-collector": "Rohit Agarwal",
33
- "user-ananya-collector": "Ananya Patel",
31
+ "user-meera-bey": "Mock User 11",
32
+ "user-rohit-collector": "Mock User 14",
33
+ "user-ananya-collector": "Mock User 9",
34
34
  };
35
35
  function withBidDefaults(b) {
36
36
  return {