@mohasinac/appkit 4.2.0 → 4.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/_internal/server/features/auth/actions.d.ts +0 -1
- package/dist/_internal/server/features/auth/actions.js +0 -1
- package/dist/_internal/server/features/bundles/data.d.ts +22 -4
- package/dist/_internal/server/features/bundles/data.js +41 -4
- package/dist/_internal/server/features/bundles/index.d.ts +1 -1
- package/dist/_internal/server/features/bundles/index.js +1 -1
- package/dist/_internal/server/features/checkout/actions.js +7 -78
- package/dist/_internal/server/features/checkout/prize-bundle-gates.d.ts +5 -16
- package/dist/_internal/server/features/checkout/prize-bundle-gates.js +5 -30
- package/dist/_internal/server/features/orders/adapters.js +1 -14
- package/dist/_internal/server/features/products/actions.js +8 -3
- package/dist/_internal/server/features/products/service.d.ts +15 -0
- package/dist/_internal/server/features/products/service.js +41 -0
- package/dist/_internal/server/functions/firestore.d.ts +3 -1
- package/dist/_internal/server/functions/firestore.js +17 -1
- package/dist/_internal/server/functions/scheduled.d.ts +2 -5
- package/dist/_internal/server/functions/scheduled.js +6 -30
- package/dist/_internal/server/jobs/core/bundleStockSync.js +25 -7
- package/dist/_internal/server/jobs/core/countersReconcile.js +7 -1
- package/dist/_internal/server/jobs/core/index.d.ts +4 -4
- package/dist/_internal/server/jobs/core/index.js +4 -4
- package/dist/_internal/server/jobs/core/onPrizeDrawPaymentConfirmed.d.ts +19 -0
- package/dist/_internal/server/jobs/core/onPrizeDrawPaymentConfirmed.js +30 -0
- package/dist/_internal/server/jobs/core/paymentWindowTimeout.d.ts +2 -2
- package/dist/_internal/server/jobs/core/paymentWindowTimeout.js +2 -2
- package/dist/_internal/server/jobs/core/prizeDrawAssignWinner.d.ts +20 -0
- package/dist/_internal/server/jobs/core/prizeDrawAssignWinner.js +113 -0
- package/dist/_internal/server/jobs/core/prizeDrawExpiryReveal.d.ts +14 -0
- package/dist/_internal/server/jobs/core/prizeDrawExpiryReveal.js +74 -0
- package/dist/_internal/server/jobs/core/prizeDrawSoldOutReveal.d.ts +22 -0
- package/dist/_internal/server/jobs/core/prizeDrawSoldOutReveal.js +68 -0
- package/dist/_internal/server/jobs/handlers/index.d.ts +3 -4
- package/dist/_internal/server/jobs/handlers/index.js +8 -6
- package/dist/_internal/server/jobs/handlers/onPrizeDrawPaymentConfirmed.d.ts +3 -0
- package/dist/_internal/server/jobs/handlers/onPrizeDrawPaymentConfirmed.js +11 -0
- package/dist/_internal/server/jobs/handlers/prizeDrawExpiryReveal.d.ts +2 -0
- package/dist/_internal/server/jobs/handlers/prizeDrawExpiryReveal.js +2 -0
- package/dist/_internal/server/jobs/handlers/prizeDrawSoldOutReveal.d.ts +3 -0
- package/dist/_internal/server/jobs/handlers/prizeDrawSoldOutReveal.js +4 -0
- package/dist/_internal/shared/actions/action-registry.js +40 -10
- package/dist/_internal/shared/checkout/rules/_defaults.js +1 -2
- package/dist/_internal/shared/checkout/rules/_limits.d.ts +3 -0
- package/dist/_internal/shared/checkout/rules/_limits.js +3 -0
- package/dist/_internal/shared/checkout/rules/_registry.d.ts +2 -1
- package/dist/_internal/shared/checkout/rules/_registry.js +2 -2
- package/dist/_internal/shared/checkout/rules/classified.rule.js +0 -1
- package/dist/_internal/shared/checkout/rules/index.d.ts +1 -1
- package/dist/_internal/shared/checkout/rules/index.js +1 -1
- package/dist/_internal/shared/checkout/rules/prize-draw.rule.js +20 -1
- package/dist/_internal/shared/checkout/rules/types.d.ts +17 -7
- package/dist/_internal/shared/features/categories/bundle-copy.d.ts +2 -0
- package/dist/_internal/shared/features/categories/bundle-copy.js +2 -0
- package/dist/_internal/shared/features/categories/bundle-pricing.d.ts +23 -0
- package/dist/_internal/shared/features/categories/bundle-pricing.js +25 -0
- package/dist/_internal/shared/listing-types/prize-draw/config.js +1 -1
- package/dist/constants/api-endpoints.d.ts +6 -9
- package/dist/constants/api-endpoints.js +5 -5
- package/dist/constants/field-names.d.ts +17 -1
- package/dist/constants/field-names.js +17 -1
- package/dist/features/account/hooks/useNotifications.js +5 -0
- package/dist/features/admin/actions/admin-actions.js +6 -0
- package/dist/features/admin/actions/notification-actions.js +1 -2
- package/dist/features/admin/components/AdminBlogEditorView.js +1 -1
- package/dist/features/admin/components/AdminPrizeDrawsView.js +3 -3
- package/dist/features/admin/components/AdminSiteSettingsView.js +33 -6
- package/dist/features/admin/components/AdminTesterChecklistView.js +74 -22
- package/dist/features/admin/hooks/useAdminListing.d.ts +4 -0
- package/dist/features/admin/hooks/useAdminListing.js +4 -2
- package/dist/features/admin/schemas/firestore.d.ts +13 -5
- package/dist/features/admin/schemas/firestore.js +1 -2
- package/dist/features/auctions/actions/bid-actions.js +3 -1
- package/dist/features/auctions/components/AuctionBidsTable.d.ts +6 -1
- package/dist/features/auctions/components/AuctionBidsTable.js +8 -4
- package/dist/features/auctions/components/AuctionDetailPageView.js +10 -13
- package/dist/features/auctions/components/CollapsibleBidHistory.d.ts +23 -2
- package/dist/features/auctions/components/CollapsibleBidHistory.js +21 -3
- package/dist/features/auctions/components/LiveBidPrice.d.ts +19 -0
- package/dist/features/auctions/components/LiveBidPrice.js +17 -0
- package/dist/features/auctions/components/PlaceBidFormClient.d.ts +1 -1
- package/dist/features/auctions/components/PlaceBidFormClient.js +16 -1
- package/dist/features/auctions/hooks/useBids.d.ts +33 -0
- package/dist/features/auctions/hooks/useBids.js +32 -0
- package/dist/features/auctions/hooks/useLiveAuctionBid.d.ts +20 -0
- package/dist/features/auctions/hooks/useLiveAuctionBid.js +23 -0
- package/dist/features/auth/checkout-value-otp.d.ts +7 -10
- package/dist/features/auth/checkout-value-otp.js +14 -10
- package/dist/features/auth/server.d.ts +0 -1
- package/dist/features/auth/server.js +0 -1
- package/dist/features/blog/api/[slug]/route.d.ts +5 -0
- package/dist/features/blog/api/[slug]/route.js +12 -3
- package/dist/features/blog/components/BlogPostView.d.ts +2 -0
- package/dist/features/blog/components/BlogPostView.js +5 -4
- package/dist/features/blog/hooks/useBlog.d.ts +2 -0
- package/dist/features/blog/hooks/useBlog.js +2 -0
- package/dist/features/blog/repository/blog.repository.d.ts +7 -0
- package/dist/features/blog/repository/blog.repository.js +44 -0
- package/dist/features/blog/schemas/firestore.d.ts +3 -0
- package/dist/features/blog/schemas/firestore.js +1 -0
- package/dist/features/blog/types/index.d.ts +2 -0
- package/dist/features/cart/components/index.d.ts +0 -2
- package/dist/features/cart/components/index.js +0 -1
- package/dist/features/cart/hooks/useCartCount.js +22 -5
- package/dist/features/cart/hooks/useGuestCart.js +11 -1
- package/dist/features/cart/utils/guest-cart.d.ts +4 -0
- package/dist/features/cart/utils/guest-cart.js +10 -0
- package/dist/features/cart/utils/pending-ops.d.ts +17 -0
- package/dist/features/cart/utils/pending-ops.js +46 -5
- package/dist/features/categories/components/BrandDetailPageView.js +6 -2
- package/dist/features/categories/components/BundleDetailView.js +4 -2
- package/dist/features/categories/components/CategoryDetailPageView.js +10 -2
- package/dist/features/categories/schemas/firestore.d.ts +7 -0
- package/dist/features/checkout/actions/index.d.ts +0 -1
- package/dist/features/checkout/actions/index.js +0 -1
- package/dist/features/checkout/schemas/firestore.d.ts +2 -2
- package/dist/features/events/actions/event-actions.d.ts +2 -0
- package/dist/features/events/actions/event-actions.js +5 -0
- package/dist/features/events/components/EventCard.js +1 -2
- package/dist/features/events/components/RelatedEventsCarousel.d.ts +15 -0
- package/dist/features/events/components/RelatedEventsCarousel.js +13 -0
- package/dist/features/events/components/index.d.ts +2 -0
- package/dist/features/events/components/index.js +1 -0
- package/dist/features/events/repository/events.repository.d.ts +6 -0
- package/dist/features/events/repository/events.repository.js +21 -0
- package/dist/features/history/repository/user-history.repository.d.ts +1 -1
- package/dist/features/history/utils/guest-history.d.ts +1 -1
- package/dist/features/homepage/components/FeaturedBundlesSection.js +4 -2
- package/dist/features/homepage/components/FeaturedProductsSection.js +2 -2
- package/dist/features/homepage/components/SectionCarousel.js +1 -1
- package/dist/features/homepage/components/WelcomeSection.js +1 -1
- package/dist/features/layout/AppLayoutShell.js +1 -1
- package/dist/features/layout/NavbarLayout.js +1 -1
- package/dist/features/layout/TitleBarLayout.js +2 -2
- package/dist/features/media/MediaVideo.d.ts +7 -0
- package/dist/features/media/MediaVideo.js +36 -5
- package/dist/features/orders/components/OrdersList.js +1 -5
- package/dist/features/orders/schemas/firestore.d.ts +2 -8
- package/dist/features/orders/schemas/index.d.ts +3 -32
- package/dist/features/orders/schemas/index.js +1 -4
- package/dist/features/orders/types/index.d.ts +6 -9
- package/dist/features/pre-orders/components/MarketplacePreorderCard.js +1 -1
- package/dist/features/pre-orders/components/PreOrderDetailPageView.js +2 -1
- package/dist/features/products/actions/product-actions.js +13 -10
- package/dist/features/products/components/MarketplaceBundleCard.d.ts +1 -1
- package/dist/features/products/components/MarketplaceBundleCard.js +7 -4
- package/dist/features/products/components/PrizeDrawDetailPageView.js +1 -1
- package/dist/features/products/components/PrizeDrawItemsEditor.js +2 -2
- package/dist/features/products/components/PrizeDrawWinnerMappingView.d.ts +14 -0
- package/dist/features/products/components/PrizeDrawWinnerMappingView.js +37 -0
- package/dist/features/products/components/PrizeRevealModal.d.ts +10 -23
- package/dist/features/products/components/PrizeRevealModal.js +18 -147
- package/dist/features/products/components/ProductDetailPageView.js +72 -30
- package/dist/features/products/components/ProductForm.js +7 -14
- package/dist/features/products/components/ProductGalleryClient.d.ts +10 -1
- package/dist/features/products/components/ProductGalleryClient.js +29 -10
- package/dist/features/products/components/ProductsIndexListing.js +2 -1
- package/dist/features/products/components/RelatedProductsCarousel.js +2 -2
- package/dist/features/products/components/ShowGroupSection.js +2 -2
- package/dist/features/products/components/SublistingCarouselSection.js +1 -1
- package/dist/features/products/components/index.d.ts +4 -2
- package/dist/features/products/components/index.js +1 -0
- package/dist/features/products/constants/action-defs.d.ts +0 -1
- package/dist/features/products/constants/action-defs.js +0 -2
- package/dist/features/products/repository/products.repository.d.ts +6 -0
- package/dist/features/products/repository/products.repository.js +20 -1
- package/dist/features/products/schemas/firestore.d.ts +26 -2
- package/dist/features/products/schemas/index.d.ts +11 -3
- package/dist/features/products/schemas/index.js +10 -2
- package/dist/features/products/types/index.d.ts +2 -1
- package/dist/features/reviews/actions/review-actions.js +1 -0
- package/dist/features/reviews/components/ReviewDetailPageView.js +8 -1
- package/dist/features/reviews/components/ReviewDetailShell.js +2 -1
- package/dist/features/reviews/components/ReviewsList.js +2 -1
- package/dist/features/reviews/schemas/firestore.d.ts +3 -0
- package/dist/features/reviews/schemas/index.d.ts +6 -0
- package/dist/features/reviews/schemas/index.js +2 -0
- package/dist/features/reviews/types/index.d.ts +3 -0
- package/dist/features/scams/actions/scam-actions.d.ts +3 -0
- package/dist/features/scams/actions/scam-actions.js +3 -2
- package/dist/features/scams/components/ScamProfileView.d.ts +2 -1
- package/dist/features/scams/components/ScamProfileView.js +2 -2
- package/dist/features/scams/repository/scammer.repository.d.ts +6 -0
- package/dist/features/scams/repository/scammer.repository.js +24 -0
- package/dist/features/seller/actions/seller-actions.js +8 -0
- package/dist/features/seller/components/SellerPrizeDrawsView.js +4 -0
- package/dist/features/stores/components/StoreDetailLayoutView.js +6 -6
- package/dist/features/stores/components/StoreNavTabs.d.ts +10 -1
- package/dist/features/stores/components/StoreNavTabs.js +21 -9
- package/dist/features/tester/actions/index.d.ts +1 -0
- package/dist/features/tester/actions/index.js +1 -0
- package/dist/features/tester/actions/leaderboard-actions.d.ts +3 -0
- package/dist/features/tester/actions/leaderboard-actions.js +5 -0
- package/dist/features/tester/components/AdminTesterFeedbackIssuesView.js +26 -4
- package/dist/features/tester/components/AdminTesterFeedbackListView.js +13 -0
- package/dist/features/tester/components/BugHunterLeaderboardView.d.ts +23 -0
- package/dist/features/tester/components/BugHunterLeaderboardView.js +18 -0
- package/dist/features/tester/components/index.d.ts +2 -0
- package/dist/features/tester/components/index.js +1 -0
- package/dist/features/tester/repository/tester-checklist-item.repository.d.ts +12 -1
- package/dist/features/tester/repository/tester-checklist-item.repository.js +80 -0
- package/dist/features/tester/repository/tester-checklist-response.repository.d.ts +4 -0
- package/dist/features/tester/repository/tester-checklist-response.repository.js +4 -0
- package/dist/features/tester/schemas/firestore.d.ts +22 -1
- package/dist/features/tester/schemas/firestore.js +8 -0
- package/dist/features/tester/seed-data/categories-tester-seed-data.js +42 -7
- package/dist/features/tester/seed-data/events-tester-seed-data.js +23 -0
- package/dist/features/tester/seed-data/orders-tester-seed-data.js +69 -31
- package/dist/features/tester/seed-data/products-tester-seed-data.js +152 -8
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +249 -14
- package/dist/features/wishlist/hooks/useGuestWishlist.js +11 -1
- package/dist/features/wishlist/hooks/useWishlistCount.js +16 -2
- package/dist/features/wishlist/utils/guest-wishlist.d.ts +5 -0
- package/dist/features/wishlist/utils/guest-wishlist.js +11 -0
- package/dist/index.d.ts +19 -22
- package/dist/index.js +25 -58
- package/dist/jobs.d.ts +1 -1
- package/dist/jobs.js +2 -2
- package/dist/next/routing/route-map.d.ts +2 -0
- package/dist/next/routing/route-map.js +1 -0
- package/dist/schemas/registry.d.ts +6 -26
- package/dist/seed/bids-seed-data.js +14 -2
- package/dist/seed/blog-posts-seed-data.js +2 -1
- package/dist/seed/categories-seed-data.js +11 -2
- package/dist/seed/events-seed-data.js +11 -11
- package/dist/seed/faq-seed-data.js +5 -1
- package/dist/seed/products-auctions-seed-data.js +2 -2
- package/dist/seed/products-preorders-seed-data.d.ts +2 -1
- package/dist/seed/products-prize-draws-seed-data.js +56 -10
- package/dist/seed/products-standard-seed-data.js +82 -3
- package/dist/seed/scammers-seed-data.js +75 -2
- package/dist/seed/site-settings-seed-data.js +5 -2
- package/dist/server-entry.d.ts +0 -1
- package/dist/server-entry.js +0 -1
- package/dist/server.d.ts +4 -20
- package/dist/server.js +10 -57
- package/dist/styles.css +1 -1
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/BaseListingCard.js +1 -1
- package/dist/ui/components/ImageLightbox.d.ts +9 -0
- package/dist/ui/components/ImageLightbox.js +6 -3
- package/dist/ui/components/ListingToolbar.d.ts +18 -1
- package/dist/ui/components/ListingToolbar.js +5 -2
- package/dist/ui/components/StickyToolbar.js +13 -8
- package/package.json +1 -1
package/dist/index.d.ts
CHANGED
|
@@ -609,6 +609,9 @@ export { categoriesTesterSeedData } from "./seed/index";
|
|
|
609
609
|
export { productsTesterSeedData } from "./seed/index";
|
|
610
610
|
export { blogTesterSeedData } from "./seed/index";
|
|
611
611
|
export { eventsTesterSeedData } from "./seed/index";
|
|
612
|
+
export { couponsTesterSeedData } from "./seed/index";
|
|
613
|
+
export { bidsTesterSeedData } from "./seed/index";
|
|
614
|
+
export { ordersTesterSeedData } from "./seed/index";
|
|
612
615
|
export { formatSeedPrice } from "./seed/index";
|
|
613
616
|
export { getSeedLocale } from "./seed/index";
|
|
614
617
|
export { homepageSectionsSeedData } from "./seed/index";
|
|
@@ -1100,6 +1103,8 @@ export type { AdminTesterChecklistItemEditorViewProps } from "./features/admin/i
|
|
|
1100
1103
|
export { TesterHubView } from "./features/tester/index";
|
|
1101
1104
|
export type { TesterHubViewProps } from "./features/tester/index";
|
|
1102
1105
|
export { AdminTesterFeedbackView } from "./features/tester/index";
|
|
1106
|
+
export { BugHunterLeaderboardView } from "./features/tester/index";
|
|
1107
|
+
export type { BugHunterLeaderboardViewProps } from "./features/tester/index";
|
|
1103
1108
|
export { AdminNavEditorView } from "./features/admin/index";
|
|
1104
1109
|
export type { AdminNavEditorViewProps, NavItemData } from "./features/admin/index";
|
|
1105
1110
|
export { AdminFeatureFlagsView } from "./features/admin/index";
|
|
@@ -1387,38 +1392,22 @@ export { listBidsByProduct } from "./features/auctions/server";
|
|
|
1387
1392
|
export { placeBid, buyNowAuction } from "./features/auctions/server";
|
|
1388
1393
|
export type { PlaceBidInput, BuyNowAuctionInput, BuyNowAuctionResult } from "./features/auctions/server";
|
|
1389
1394
|
export type { PlaceBidResult } from "./features/auctions/server";
|
|
1390
|
-
export {
|
|
1391
|
-
export { CONSENT_OTP_EXPIRY_MINUTES } from "./features/auth/server";
|
|
1392
|
-
export { CONSENT_OTP_EXPIRY_MS } from "./features/auth/server";
|
|
1393
|
-
export { CONSENT_OTP_MAX_ATTEMPTS } from "./features/auth/server";
|
|
1394
|
-
export { CONSENT_OTP_MAX_BYPASS_CREDITS } from "./features/auth/server";
|
|
1395
|
-
export { CONSENT_OTP_VERIFY_RATE_LIMIT } from "./features/auth/server";
|
|
1395
|
+
export { CHECKOUT_VALUE_OTP_VERIFY_RATE_LIMIT } from "./features/auth/checkout-value-otp";
|
|
1396
1396
|
export { authMeGET } from "./features/auth/server";
|
|
1397
|
-
export { buildConsentOtpEmail } from "./features/auth/server";
|
|
1398
|
-
export { buildConsentOtpWhatsApp } from "./features/auth/server";
|
|
1399
|
-
export { consentOtpRateLimitRef } from "./features/auth/server";
|
|
1400
|
-
export { consentOtpRef } from "./features/auth/server";
|
|
1401
1397
|
export { createPasswordResetToken } from "./features/auth/server";
|
|
1402
1398
|
export { createVerificationToken } from "./features/auth/server";
|
|
1403
1399
|
export { deleteToken } from "./features/auth/server";
|
|
1404
|
-
export { enforceConsentOtpRateLimit } from "./features/auth/server";
|
|
1405
|
-
export { generateOtpCode } from "./features/auth/server";
|
|
1406
1400
|
export { generateToken } from "./features/auth/server";
|
|
1407
1401
|
export { getPublicUserProfile } from "./features/auth/server";
|
|
1408
1402
|
export { getProfileStoreProducts } from "./features/auth/server";
|
|
1409
1403
|
export { getSellerReviews } from "./features/auth/server";
|
|
1410
1404
|
export { getUserProfile } from "./features/auth/server";
|
|
1411
1405
|
export { getUserSessions } from "./features/auth/server";
|
|
1412
|
-
export { hashOtp } from "./features/auth/server";
|
|
1413
1406
|
export { issueRealtimeToken } from "./features/auth/server";
|
|
1414
1407
|
export { markPasswordResetTokenAsUsed } from "./features/auth/server";
|
|
1415
|
-
export { patchConsentOtp } from "./features/auth/server";
|
|
1416
|
-
export { readConsentOtp } from "./features/auth/server";
|
|
1417
|
-
export { saveConsentOtp } from "./features/auth/server";
|
|
1418
1408
|
export { updateUserProfile } from "./features/auth/server";
|
|
1419
1409
|
export { verifyEmailToken } from "./features/auth/server";
|
|
1420
1410
|
export { verifyPasswordResetToken } from "./features/auth/server";
|
|
1421
|
-
export type { ConsentOtpDoc } from "./features/auth/server";
|
|
1422
1411
|
export type { PasswordResetTokenData } from "./features/auth/server";
|
|
1423
1412
|
export type { RealtimeTokenResult } from "./features/auth/server";
|
|
1424
1413
|
export type { TokenData } from "./features/auth/server";
|
|
@@ -1672,9 +1661,6 @@ export { listTopLevelCategories } from "./features/categories/server";
|
|
|
1672
1661
|
export { updateCategory } from "./features/categories/server";
|
|
1673
1662
|
export { FailedCheckoutRepository } from "./features/checkout/server";
|
|
1674
1663
|
export { failedCheckoutRepository } from "./features/checkout/server";
|
|
1675
|
-
export { grantCheckoutConsentViaSms } from "./features/checkout/server";
|
|
1676
|
-
export { sendCheckoutConsentOtp } from "./features/checkout/server";
|
|
1677
|
-
export { verifyCheckoutConsentOtp } from "./features/checkout/server";
|
|
1678
1664
|
export { sendCheckoutValueOtp, verifyCheckoutValueOtp, isCheckoutValueOtpVerified, } from "./features/checkout/server";
|
|
1679
1665
|
export type { FailedCheckoutMeta } from "./features/checkout/server";
|
|
1680
1666
|
export type { FailedPaymentMeta } from "./features/checkout/server";
|
|
@@ -1781,6 +1767,8 @@ export { EVENT_SELLER_SORT_OPTIONS } from "./features/events/index";
|
|
|
1781
1767
|
export { EVENT_SORT_OPTIONS } from "./features/events/index";
|
|
1782
1768
|
export { EventBanner } from "./features/events/index";
|
|
1783
1769
|
export { EventCard } from "./features/events/index";
|
|
1770
|
+
export { RelatedEventsCarousel } from "./features/events/index";
|
|
1771
|
+
export type { RelatedEventItem } from "./features/events/index";
|
|
1784
1772
|
export { EventDetailView } from "./features/events/index";
|
|
1785
1773
|
export { EventFilters } from "./features/events/index";
|
|
1786
1774
|
export { EventFormDrawer } from "./features/events/index";
|
|
@@ -1792,6 +1780,10 @@ export { EventRaffleWinnerView } from "./features/events/index";
|
|
|
1792
1780
|
export type { EventRaffleWinnerViewProps } from "./features/events/index";
|
|
1793
1781
|
export { SpinWheelView } from "./features/events/index";
|
|
1794
1782
|
export type { SpinWheelViewProps } from "./features/events/index";
|
|
1783
|
+
export { EventRaffleEntryForm } from "./features/events/index";
|
|
1784
|
+
export type { EventRaffleEntryFormProps } from "./features/events/index";
|
|
1785
|
+
export { EventOfferCard } from "./features/events/index";
|
|
1786
|
+
export type { EventOfferCardProps } from "./features/events/index";
|
|
1795
1787
|
export { LotterySlotGrid } from "./_internal/client/features/lottery/LotterySlotGrid";
|
|
1796
1788
|
export { LotteryPullForm } from "./_internal/client/features/lottery/LotteryPullForm";
|
|
1797
1789
|
export { LotteryListView } from "./_internal/client/features/lottery/LotteryListView";
|
|
@@ -1871,8 +1863,10 @@ export { enterEvent } from "./features/events/server";
|
|
|
1871
1863
|
export { eventIdGET } from "./features/events/server";
|
|
1872
1864
|
export { eventsGET } from "./features/events/server";
|
|
1873
1865
|
export { getEventLeaderboard } from "./features/events/server";
|
|
1866
|
+
export { getBugHunterLeaderboard } from "./features/tester/server";
|
|
1874
1867
|
export { getPublicEventById } from "./features/events/server";
|
|
1875
1868
|
export { listPublicEvents } from "./features/events/server";
|
|
1869
|
+
export { getRelatedEvents } from "./features/events/server";
|
|
1876
1870
|
export { updateEvent } from "./features/events/server";
|
|
1877
1871
|
export type { CreateEventInput } from "./features/events/server";
|
|
1878
1872
|
export type { EnterEventInput } from "./features/events/server";
|
|
@@ -1894,6 +1888,7 @@ export type { TesterChecklistItemDocument } from "./features/tester/index";
|
|
|
1894
1888
|
export type { TesterChecklistResponseDocument } from "./features/tester/index";
|
|
1895
1889
|
export type { TesterAnswer } from "./features/tester/index";
|
|
1896
1890
|
export type { TesterFeedbackStatus } from "./features/tester/index";
|
|
1891
|
+
export type { BugHunterLeaderboardEntry } from "./features/tester/index";
|
|
1897
1892
|
export { FAQS_PUBLIC_FIELDS } from "./features/faq/index";
|
|
1898
1893
|
export { FAQSortDropdown } from "./features/faq/index";
|
|
1899
1894
|
export { FAQ_CATEGORY_LABELS } from "./features/faq/index";
|
|
@@ -2422,7 +2417,9 @@ export type { PrizeDrawDetailPageViewProps } from "./features/products/component
|
|
|
2422
2417
|
export { PrizeDrawEntryActions } from "./features/products/index";
|
|
2423
2418
|
export type { PrizeDrawEntryActionsProps } from "./features/products/index";
|
|
2424
2419
|
export { PrizeRevealModal } from "./features/products/components/PrizeRevealModal";
|
|
2425
|
-
export type { PrizeRevealModalProps,
|
|
2420
|
+
export type { PrizeRevealModalProps, PrizeRevealResult } from "./features/products/components/PrizeRevealModal";
|
|
2421
|
+
export { PrizeDrawWinnerMappingView } from "./features/products/components/PrizeDrawWinnerMappingView";
|
|
2422
|
+
export type { PrizeDrawWinnerMappingViewProps, PrizeDrawWinnerMappingRow, } from "./features/products/components/PrizeDrawWinnerMappingView";
|
|
2426
2423
|
export { ProductCard } from "./features/products/index";
|
|
2427
2424
|
export { ProductDetailView } from "./features/products/index";
|
|
2428
2425
|
export type { ProductDetailPageViewProps } from "./features/products/components/ProductDetailPageView";
|
|
@@ -3081,7 +3078,7 @@ export { RoleGate, ProtectedRoute, SocialAuthButtons, AuthStatusPanel, LoginForm
|
|
|
3081
3078
|
export type { RoleGateProps, ProtectedRouteProps, AuthGuardUser, AuthRouteConfig, LoginFormProps, LoginFormValues, RegisterFormProps, RegisterFormValues, ForgotPasswordViewProps, ResetPasswordViewProps, VerifyEmailViewProps, } from "./features/auth/index";
|
|
3082
3079
|
export { CartItemRow, CartDrawer, CartView, CartSummary, ShippingPicker } from "./features/cart/index";
|
|
3083
3080
|
export type { ShippingPickerProps } from "./features/cart/index";
|
|
3084
|
-
export { CheckoutView, CheckoutAddressStep,
|
|
3081
|
+
export { CheckoutView, CheckoutAddressStep, CheckoutSuccessView } from "./features/cart/index";
|
|
3085
3082
|
export { CheckoutStepper, useCheckout } from "./features/checkout/index";
|
|
3086
3083
|
export { useProfile as useCurrentProfile, useUpdateProfile as useUpdateCurrentProfile } from "./features/account/index";
|
|
3087
3084
|
export { useLogout } from "./features/auth/index";
|
package/dist/index.js
CHANGED
|
@@ -1219,6 +1219,12 @@ export { blogTesterSeedData } from "./seed/index";
|
|
|
1219
1219
|
// [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
1220
1220
|
// eventsTesterSeedData - Model for the shared tester sandbox event seed data.
|
|
1221
1221
|
export { eventsTesterSeedData } from "./seed/index";
|
|
1222
|
+
// couponsTesterSeedData - Model for the shared tester sandbox coupon seed data.
|
|
1223
|
+
export { couponsTesterSeedData } from "./seed/index";
|
|
1224
|
+
// bidsTesterSeedData - Model for the shared tester sandbox bid seed data.
|
|
1225
|
+
export { bidsTesterSeedData } from "./seed/index";
|
|
1226
|
+
// ordersTesterSeedData - Model for the shared tester sandbox order seed data.
|
|
1227
|
+
export { ordersTesterSeedData } from "./seed/index";
|
|
1222
1228
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
1223
1229
|
// formatSeedPrice - Helper for format seed price.
|
|
1224
1230
|
export { formatSeedPrice } from "./seed/index";
|
|
@@ -2117,6 +2123,8 @@ export { AdminTesterChecklistItemEditorView } from "./features/admin/index";
|
|
|
2117
2123
|
export { TesterHubView } from "./features/tester/index";
|
|
2118
2124
|
// AdminTesterFeedbackView - Component for the admin Tester Feedback report/issues/submissions page.
|
|
2119
2125
|
export { AdminTesterFeedbackView } from "./features/tester/index";
|
|
2126
|
+
// BugHunterLeaderboardView - Public component ranking testers by confirmed-bug count.
|
|
2127
|
+
export { BugHunterLeaderboardView } from "./features/tester/index";
|
|
2120
2128
|
// AdminNavEditorView - SideDrawer form for nav item create/edit.
|
|
2121
2129
|
export { AdminNavEditorView } from "./features/admin/index";
|
|
2122
2130
|
// [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
|
|
@@ -2577,39 +2585,12 @@ export { listBidsByProduct } from "./features/auctions/server";
|
|
|
2577
2585
|
export { placeBid, buyNowAuction } from "./features/auctions/server";
|
|
2578
2586
|
// ./features/auth/server
|
|
2579
2587
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2580
|
-
//
|
|
2581
|
-
export {
|
|
2582
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2583
|
-
// CONSENT_OTP_EXPIRY_MINUTES - Constant used across modules.
|
|
2584
|
-
export { CONSENT_OTP_EXPIRY_MINUTES } from "./features/auth/server";
|
|
2585
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2586
|
-
// CONSENT_OTP_EXPIRY_MS - Constant used across modules.
|
|
2587
|
-
export { CONSENT_OTP_EXPIRY_MS } from "./features/auth/server";
|
|
2588
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2589
|
-
// CONSENT_OTP_MAX_ATTEMPTS - Constant used across modules.
|
|
2590
|
-
export { CONSENT_OTP_MAX_ATTEMPTS } from "./features/auth/server";
|
|
2591
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2592
|
-
// CONSENT_OTP_MAX_BYPASS_CREDITS - Constant used across modules.
|
|
2593
|
-
export { CONSENT_OTP_MAX_BYPASS_CREDITS } from "./features/auth/server";
|
|
2594
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2595
|
-
// CONSENT_OTP_VERIFY_RATE_LIMIT - Constant used across modules.
|
|
2596
|
-
export { CONSENT_OTP_VERIFY_RATE_LIMIT } from "./features/auth/server";
|
|
2588
|
+
// CHECKOUT_VALUE_OTP_VERIFY_RATE_LIMIT - Constant used across modules.
|
|
2589
|
+
export { CHECKOUT_VALUE_OTP_VERIFY_RATE_LIMIT } from "./features/auth/checkout-value-otp";
|
|
2597
2590
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2598
2591
|
// authMeGET - Shared export for auth me get.
|
|
2599
2592
|
export { authMeGET } from "./features/auth/server";
|
|
2600
2593
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2601
|
-
// buildConsentOtpEmail - Helper for build consent otp email.
|
|
2602
|
-
export { buildConsentOtpEmail } from "./features/auth/server";
|
|
2603
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2604
|
-
// buildConsentOtpWhatsApp - Helper for build consent otp whatsapp message body.
|
|
2605
|
-
export { buildConsentOtpWhatsApp } from "./features/auth/server";
|
|
2606
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2607
|
-
// consentOtpRateLimitRef - Shared export for consent otp rate limit ref.
|
|
2608
|
-
export { consentOtpRateLimitRef } from "./features/auth/server";
|
|
2609
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2610
|
-
// consentOtpRef - Shared export for consent otp ref.
|
|
2611
|
-
export { consentOtpRef } from "./features/auth/server";
|
|
2612
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2613
2594
|
// createPasswordResetToken - Helper for create password reset token.
|
|
2614
2595
|
export { createPasswordResetToken } from "./features/auth/server";
|
|
2615
2596
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
@@ -2619,12 +2600,6 @@ export { createVerificationToken } from "./features/auth/server";
|
|
|
2619
2600
|
// deleteToken - Helper for delete token.
|
|
2620
2601
|
export { deleteToken } from "./features/auth/server";
|
|
2621
2602
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2622
|
-
// enforceConsentOtpRateLimit - Shared export for enforce consent otp rate limit.
|
|
2623
|
-
export { enforceConsentOtpRateLimit } from "./features/auth/server";
|
|
2624
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2625
|
-
// generateOtpCode - Helper for generate otp code.
|
|
2626
|
-
export { generateOtpCode } from "./features/auth/server";
|
|
2627
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2628
2603
|
// generateToken - Helper for generate token.
|
|
2629
2604
|
export { generateToken } from "./features/auth/server";
|
|
2630
2605
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
@@ -2643,24 +2618,12 @@ export { getUserProfile } from "./features/auth/server";
|
|
|
2643
2618
|
// getUserSessions - Helper for get user sessions.
|
|
2644
2619
|
export { getUserSessions } from "./features/auth/server";
|
|
2645
2620
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2646
|
-
// hashOtp - Shared export for hash otp.
|
|
2647
|
-
export { hashOtp } from "./features/auth/server";
|
|
2648
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2649
2621
|
// issueRealtimeToken - Shared export for issue realtime token.
|
|
2650
2622
|
export { issueRealtimeToken } from "./features/auth/server";
|
|
2651
2623
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2652
2624
|
// markPasswordResetTokenAsUsed - Shared export for mark password reset token as used.
|
|
2653
2625
|
export { markPasswordResetTokenAsUsed } from "./features/auth/server";
|
|
2654
2626
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2655
|
-
// patchConsentOtp - Shared export for patch consent otp.
|
|
2656
|
-
export { patchConsentOtp } from "./features/auth/server";
|
|
2657
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2658
|
-
// readConsentOtp - Shared export for read consent otp.
|
|
2659
|
-
export { readConsentOtp } from "./features/auth/server";
|
|
2660
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2661
|
-
// saveConsentOtp - Shared export for save consent otp.
|
|
2662
|
-
export { saveConsentOtp } from "./features/auth/server";
|
|
2663
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
2664
2627
|
// updateUserProfile - Helper for update user profile.
|
|
2665
2628
|
export { updateUserProfile } from "./features/auth/server";
|
|
2666
2629
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
@@ -3166,16 +3129,7 @@ export { FailedCheckoutRepository } from "./features/checkout/server";
|
|
|
3166
3129
|
// [DB]-Database layer â€" uses firebase-admin or another server-side DB SDK; can only run in a trusted server environment.
|
|
3167
3130
|
// failedCheckoutRepository - Shared export for failed checkout repository.
|
|
3168
3131
|
export { failedCheckoutRepository } from "./features/checkout/server";
|
|
3169
|
-
// [SERVER-ONLY]
|
|
3170
|
-
// grantCheckoutConsentViaSms - Shared export for grant checkout consent via sms.
|
|
3171
|
-
export { grantCheckoutConsentViaSms } from "./features/checkout/server";
|
|
3172
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
3173
|
-
// sendCheckoutConsentOtp - Shared export for send checkout consent otp.
|
|
3174
|
-
export { sendCheckoutConsentOtp } from "./features/checkout/server";
|
|
3175
|
-
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
3176
|
-
// verifyCheckoutConsentOtp - Shared export for verify checkout consent otp.
|
|
3177
|
-
export { verifyCheckoutConsentOtp } from "./features/checkout/server";
|
|
3178
|
-
// [SERVER-ONLY] Tier PP — high-value checkout OTP gate (distinct from the shipping-consent OTP above).
|
|
3132
|
+
// [SERVER-ONLY] Tier PP — high-value checkout OTP gate.
|
|
3179
3133
|
export { sendCheckoutValueOtp, verifyCheckoutValueOtp, isCheckoutValueOtpVerified, } from "./features/checkout/server";
|
|
3180
3134
|
// ./features/checkout/schemas/index
|
|
3181
3135
|
// [SCHEMA]-Schema / data-shape constant â€" Zod validator, default-value object, or Firestore collection/field name constant.
|
|
@@ -3396,6 +3350,8 @@ export { EventBanner } from "./features/events/index";
|
|
|
3396
3350
|
// [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
|
|
3397
3351
|
// EventCard - Component for event card.
|
|
3398
3352
|
export { EventCard } from "./features/events/index";
|
|
3353
|
+
// RelatedEventsCarousel - Component for related events carousel (tag overlap).
|
|
3354
|
+
export { RelatedEventsCarousel } from "./features/events/index";
|
|
3399
3355
|
// [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
|
|
3400
3356
|
// EventDetailView - Component for event detail view.
|
|
3401
3357
|
export { EventDetailView } from "./features/events/index";
|
|
@@ -3420,6 +3376,10 @@ export { EventStatusBadge } from "./features/events/index";
|
|
|
3420
3376
|
export { EventRaffleWinnerView } from "./features/events/index";
|
|
3421
3377
|
// SpinWheelView - Spin-the-wheel client component for spin-wheel events.
|
|
3422
3378
|
export { SpinWheelView } from "./features/events/index";
|
|
3379
|
+
// EventRaffleEntryForm - Raffle entry form (prize hero + eligibility + optional message).
|
|
3380
|
+
export { EventRaffleEntryForm } from "./features/events/index";
|
|
3381
|
+
// EventOfferCard - Coupon code display + copy-to-clipboard for offer events.
|
|
3382
|
+
export { EventOfferCard } from "./features/events/index";
|
|
3423
3383
|
// Lottery feature — client components
|
|
3424
3384
|
export { LotterySlotGrid } from "./_internal/client/features/lottery/LotterySlotGrid";
|
|
3425
3385
|
export { LotteryPullForm } from "./_internal/client/features/lottery/LotteryPullForm";
|
|
@@ -3525,12 +3485,18 @@ export { eventsGET } from "./features/events/server";
|
|
|
3525
3485
|
// getEventLeaderboard - Helper for get event leaderboard.
|
|
3526
3486
|
export { getEventLeaderboard } from "./features/events/server";
|
|
3527
3487
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
3488
|
+
// getBugHunterLeaderboard - Ranks testers by confirmed-bug count.
|
|
3489
|
+
export { getBugHunterLeaderboard } from "./features/tester/server";
|
|
3490
|
+
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
3528
3491
|
// getPublicEventById - Helper for get public event by id.
|
|
3529
3492
|
export { getPublicEventById } from "./features/events/server";
|
|
3530
3493
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
3531
3494
|
// listPublicEvents - Helper for list public events.
|
|
3532
3495
|
export { listPublicEvents } from "./features/events/server";
|
|
3533
3496
|
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
3497
|
+
// getRelatedEvents - Helper for get related events (tag overlap).
|
|
3498
|
+
export { getRelatedEvents } from "./features/events/server";
|
|
3499
|
+
// [SERVER-ONLY]-Server-only â€" uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
|
|
3534
3500
|
// updateEvent - Helper for update event.
|
|
3535
3501
|
export { updateEvent } from "./features/events/server";
|
|
3536
3502
|
// ./features/faq/index
|
|
@@ -4423,6 +4389,7 @@ export { MarketplacePrizeDrawCard } from "./features/products/index";
|
|
|
4423
4389
|
export { PrizeDrawEntryActions } from "./features/products/index";
|
|
4424
4390
|
// [CLIENT]-Theatrical reveal-mode prize-draw modal (SB4-I) — call POST /api/prize-draws/[id]/reveal and animate to the winning slot.
|
|
4425
4391
|
export { PrizeRevealModal } from "./features/products/components/PrizeRevealModal";
|
|
4392
|
+
export { PrizeDrawWinnerMappingView } from "./features/products/components/PrizeDrawWinnerMappingView";
|
|
4426
4393
|
// [CLIENT-SSR]-Runs in both SSR and browser â€" React component or hook that does not depend on browser-only APIs.
|
|
4427
4394
|
// ProductCard - Component for product card.
|
|
4428
4395
|
export { ProductCard } from "./features/products/index";
|
|
@@ -5503,7 +5470,7 @@ export { useMediaQuery, useBreakpoint, useClickOutside, useKeyPress, useLongPres
|
|
|
5503
5470
|
export { RoleGate, ProtectedRoute, SocialAuthButtons, AuthStatusPanel, LoginForm, RegisterForm, ForgotPasswordView, ResetPasswordView, VerifyEmailView, OAuthLoadingView, } from "./features/auth/index";
|
|
5504
5471
|
// Missing cart and checkout feature components
|
|
5505
5472
|
export { CartItemRow, CartDrawer, CartView, CartSummary, ShippingPicker } from "./features/cart/index";
|
|
5506
|
-
export { CheckoutView, CheckoutAddressStep,
|
|
5473
|
+
export { CheckoutView, CheckoutAddressStep, CheckoutSuccessView } from "./features/cart/index";
|
|
5507
5474
|
export { CheckoutStepper, useCheckout } from "./features/checkout/index";
|
|
5508
5475
|
// PaymentGateway already exported from checkout types above
|
|
5509
5476
|
// Missing account hooks
|
package/dist/jobs.d.ts
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
* listingProcessorHandler,
|
|
21
21
|
* } from "@mohasinac/appkit/jobs";
|
|
22
22
|
*/
|
|
23
|
-
export { couponExpiryHandler, offerExpiryHandler, cartPruneHandler, notificationPruneHandler, dailyDataCleanupHandler, cleanupRtdbEventsHandler, auctionSettlementHandler, autoPayoutEligibilityHandler, countersReconcileHandler, onOrderCreateHandler, onOrderStatusChangeHandler, onBidPlacedHandler, onReviewWriteHandler, promotionsHandler, mediaTmpCleanupHandler, pendingOrderTimeoutHandler, productStatsSyncHandler, positionsReconcileHandler, payoutBatchHandler, weeklyPayoutEligibilityHandler, onCategoryWriteHandler, onProductWriteHandler, onStoreWriteHandler, adminAnalyticsHandler, storeAnalyticsHandler, listingProcessorHandler, supportedListingCollections,
|
|
23
|
+
export { couponExpiryHandler, offerExpiryHandler, cartPruneHandler, notificationPruneHandler, dailyDataCleanupHandler, cleanupRtdbEventsHandler, auctionSettlementHandler, autoPayoutEligibilityHandler, countersReconcileHandler, onOrderCreateHandler, onOrderStatusChangeHandler, onBidPlacedHandler, onReviewWriteHandler, promotionsHandler, mediaTmpCleanupHandler, pendingOrderTimeoutHandler, productStatsSyncHandler, positionsReconcileHandler, payoutBatchHandler, weeklyPayoutEligibilityHandler, onCategoryWriteHandler, onProductWriteHandler, onStoreWriteHandler, adminAnalyticsHandler, storeAnalyticsHandler, listingProcessorHandler, supportedListingCollections, onPrizeDrawPaymentConfirmedHandler, prizeDrawSoldOutRevealHandler, prizeDrawExpiryRevealHandler, bundleStockSyncHandler, onProductStockChangeHandler, triggerEventRaffleHandler, assignSpinPrizeHandler, draftPruneHandler, onSupportTicketCreateHandler, onSupportTicketUpdateHandler, onUserBanChangeHandler, onScamReportCreateHandler, onScamReportUpdateHandler, bindSchedule, bindDocumentWritten, bindDocumentCreated, bindDocumentUpdated, bindCallable, bindHttps, bindToFirebase, } from "./_internal/server/jobs/index.js";
|
|
24
24
|
export { defineFunction, mergeFunctionRegistries, bindAllFromRegistry, APPKIT_FUNCTIONS, APPKIT_FUNCTIONS_BY_NAME, } from "./_internal/server/functions/index.js";
|
|
25
25
|
export { orderRepository, siteSettingsRepository } from "./repositories/index.js";
|
|
26
26
|
export type { OrderDocument, OrderDocumentItem } from "./features/orders/index.js";
|
package/dist/jobs.js
CHANGED
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
export {
|
|
24
24
|
// S4–S5: Job handlers (pure, framework-agnostic)
|
|
25
25
|
couponExpiryHandler, offerExpiryHandler, cartPruneHandler, notificationPruneHandler, dailyDataCleanupHandler, cleanupRtdbEventsHandler, auctionSettlementHandler, autoPayoutEligibilityHandler, countersReconcileHandler, onOrderCreateHandler, onOrderStatusChangeHandler, onBidPlacedHandler, onReviewWriteHandler, promotionsHandler, mediaTmpCleanupHandler, pendingOrderTimeoutHandler, productStatsSyncHandler, positionsReconcileHandler, payoutBatchHandler, weeklyPayoutEligibilityHandler, onCategoryWriteHandler, onProductWriteHandler, onStoreWriteHandler, adminAnalyticsHandler, storeAnalyticsHandler, listingProcessorHandler, supportedListingCollections,
|
|
26
|
-
// SB1-L (S7-PrizeDraws)
|
|
27
|
-
|
|
26
|
+
// SB1-L (S7-PrizeDraws) — prize-draw reveal redesigned to a fully-automatic model.
|
|
27
|
+
onPrizeDrawPaymentConfirmedHandler, prizeDrawSoldOutRevealHandler, prizeDrawExpiryRevealHandler, bundleStockSyncHandler,
|
|
28
28
|
// SB-UNI-V — Firestore onWrite trigger for product stock changes.
|
|
29
29
|
onProductStockChangeHandler, triggerEventRaffleHandler, assignSpinPrizeHandler,
|
|
30
30
|
// SB-UNI-Y-1 — daily draft prune for store form drafts
|
|
@@ -15,6 +15,7 @@ export declare const DEFAULT_ROUTE_MAP: {
|
|
|
15
15
|
readonly PUBLIC: {
|
|
16
16
|
readonly FAQS: "/faqs";
|
|
17
17
|
readonly FAQ_CATEGORY: (category: string) => string;
|
|
18
|
+
readonly BUG_HUNTERS: "/bug-hunters";
|
|
18
19
|
readonly PROFILE: (userId: string) => string;
|
|
19
20
|
readonly PRODUCTS: "/products";
|
|
20
21
|
readonly PRODUCT_DETAIL: (slugOrId: string) => string;
|
|
@@ -375,6 +376,7 @@ export declare const ROUTES: {
|
|
|
375
376
|
readonly PUBLIC: {
|
|
376
377
|
readonly FAQS: "/faqs";
|
|
377
378
|
readonly FAQ_CATEGORY: (category: string) => string;
|
|
379
|
+
readonly BUG_HUNTERS: "/bug-hunters";
|
|
378
380
|
readonly PROFILE: (userId: string) => string;
|
|
379
381
|
readonly PRODUCTS: "/products";
|
|
380
382
|
readonly PRODUCT_DETAIL: (slugOrId: string) => string;
|
|
@@ -3,6 +3,7 @@ export const DEFAULT_ROUTE_MAP = {
|
|
|
3
3
|
PUBLIC: {
|
|
4
4
|
FAQS: "/faqs",
|
|
5
5
|
FAQ_CATEGORY: (category) => `/faqs/${category}`,
|
|
6
|
+
BUG_HUNTERS: "/bug-hunters",
|
|
6
7
|
PROFILE: (userId) => `/profile/${userId}`,
|
|
7
8
|
PRODUCTS: "/products",
|
|
8
9
|
PRODUCT_DETAIL: (slugOrId) => `/products/${slugOrId}`,
|
|
@@ -2271,8 +2271,6 @@ export declare const SCHEMAS: {
|
|
|
2271
2271
|
totalPrice: import("zod").ZodEffects<import("zod").ZodNumber, number, number>;
|
|
2272
2272
|
listingType: import("zod").ZodOptional<import("zod").ZodEnum<["standard", "auction", "pre-order", "prize-draw", "classified", "digital-code", "live"]>>;
|
|
2273
2273
|
prizeRevealStatus: import("zod").ZodOptional<import("zod").ZodEnum<["pending", "open", "closed", "revealed"]>>;
|
|
2274
|
-
prizeRevealDeadline: import("zod").ZodOptional<import("zod").ZodString>;
|
|
2275
|
-
revealedItemNumber: import("zod").ZodOptional<import("zod").ZodNumber>;
|
|
2276
2274
|
}, "strip", import("zod").ZodTypeAny, {
|
|
2277
2275
|
productId: string;
|
|
2278
2276
|
quantity: number;
|
|
@@ -2281,8 +2279,6 @@ export declare const SCHEMAS: {
|
|
|
2281
2279
|
totalPrice: number;
|
|
2282
2280
|
listingType?: "standard" | "auction" | "pre-order" | "prize-draw" | "classified" | "digital-code" | "live" | undefined;
|
|
2283
2281
|
prizeRevealStatus?: "closed" | "open" | "pending" | "revealed" | undefined;
|
|
2284
|
-
prizeRevealDeadline?: string | undefined;
|
|
2285
|
-
revealedItemNumber?: number | undefined;
|
|
2286
2282
|
}, {
|
|
2287
2283
|
productId: string;
|
|
2288
2284
|
quantity: number;
|
|
@@ -2291,8 +2287,6 @@ export declare const SCHEMAS: {
|
|
|
2291
2287
|
totalPrice: number;
|
|
2292
2288
|
listingType?: "standard" | "auction" | "pre-order" | "prize-draw" | "classified" | "digital-code" | "live" | undefined;
|
|
2293
2289
|
prizeRevealStatus?: "closed" | "open" | "pending" | "revealed" | undefined;
|
|
2294
|
-
prizeRevealDeadline?: string | undefined;
|
|
2295
|
-
revealedItemNumber?: number | undefined;
|
|
2296
2290
|
}>, "many">>;
|
|
2297
2291
|
orderType: import("zod").ZodOptional<import("zod").ZodString>;
|
|
2298
2292
|
imageUrls: import("zod").ZodOptional<import("zod").ZodArray<import("zod").ZodString, "many">>;
|
|
@@ -2466,15 +2460,8 @@ export declare const SCHEMAS: {
|
|
|
2466
2460
|
toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
|
|
2467
2461
|
}, import("zod").ZodTypeAny, "passthrough">;
|
|
2468
2462
|
}>>;
|
|
2469
|
-
prizeRevealDeadline: import("zod").ZodOptional<import("zod").ZodUnion<[import("zod").ZodDate, import("zod").ZodString, import("zod").ZodObject<{
|
|
2470
|
-
toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
|
|
2471
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
|
2472
|
-
toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
|
|
2473
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
|
2474
|
-
toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
|
|
2475
|
-
}, import("zod").ZodTypeAny, "passthrough">>]>>;
|
|
2476
|
-
prizeRevealExpired: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
2477
2463
|
prizeDrawProductId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
2464
|
+
prizeRevealMode: import("zod").ZodOptional<import("zod").ZodEnum<["instant", "scheduled"]>>;
|
|
2478
2465
|
isNonRefundable: import("zod").ZodOptional<import("zod").ZodBoolean>;
|
|
2479
2466
|
bundleId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
2480
2467
|
paymentBatchId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
@@ -2598,6 +2585,7 @@ export declare const SCHEMAS: {
|
|
|
2598
2585
|
paymentMethod?: string | undefined;
|
|
2599
2586
|
notes?: string | undefined;
|
|
2600
2587
|
storeName?: string | undefined;
|
|
2588
|
+
prizeRevealMode?: "instant" | "scheduled" | undefined;
|
|
2601
2589
|
physicalLocation?: {
|
|
2602
2590
|
zone: string;
|
|
2603
2591
|
shelf: string;
|
|
@@ -2611,8 +2599,6 @@ export declare const SCHEMAS: {
|
|
|
2611
2599
|
totalPrice: number;
|
|
2612
2600
|
listingType?: "standard" | "auction" | "pre-order" | "prize-draw" | "classified" | "digital-code" | "live" | undefined;
|
|
2613
2601
|
prizeRevealStatus?: "closed" | "open" | "pending" | "revealed" | undefined;
|
|
2614
|
-
prizeRevealDeadline?: string | undefined;
|
|
2615
|
-
revealedItemNumber?: number | undefined;
|
|
2616
2602
|
}[] | undefined;
|
|
2617
2603
|
payoutStatus?: "paid" | "eligible" | "requested" | undefined;
|
|
2618
2604
|
couponCode?: string | undefined;
|
|
@@ -2684,10 +2670,6 @@ export declare const SCHEMAS: {
|
|
|
2684
2670
|
toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
|
|
2685
2671
|
}, import("zod").ZodTypeAny, "passthrough">;
|
|
2686
2672
|
} | undefined;
|
|
2687
|
-
prizeRevealDeadline?: string | Date | import("zod").objectOutputType<{
|
|
2688
|
-
toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
|
|
2689
|
-
}, import("zod").ZodTypeAny, "passthrough"> | undefined;
|
|
2690
|
-
prizeRevealExpired?: boolean | undefined;
|
|
2691
2673
|
prizeDrawProductId?: string | undefined;
|
|
2692
2674
|
isNonRefundable?: boolean | undefined;
|
|
2693
2675
|
bundleId?: string | undefined;
|
|
@@ -2751,6 +2733,7 @@ export declare const SCHEMAS: {
|
|
|
2751
2733
|
paymentMethod?: string | undefined;
|
|
2752
2734
|
notes?: string | undefined;
|
|
2753
2735
|
storeName?: string | undefined;
|
|
2736
|
+
prizeRevealMode?: "instant" | "scheduled" | undefined;
|
|
2754
2737
|
physicalLocation?: {
|
|
2755
2738
|
zone: string;
|
|
2756
2739
|
shelf: string;
|
|
@@ -2764,8 +2747,6 @@ export declare const SCHEMAS: {
|
|
|
2764
2747
|
totalPrice: number;
|
|
2765
2748
|
listingType?: "standard" | "auction" | "pre-order" | "prize-draw" | "classified" | "digital-code" | "live" | undefined;
|
|
2766
2749
|
prizeRevealStatus?: "closed" | "open" | "pending" | "revealed" | undefined;
|
|
2767
|
-
prizeRevealDeadline?: string | undefined;
|
|
2768
|
-
revealedItemNumber?: number | undefined;
|
|
2769
2750
|
}[] | undefined;
|
|
2770
2751
|
payoutStatus?: "paid" | "eligible" | "requested" | undefined;
|
|
2771
2752
|
couponCode?: string | undefined;
|
|
@@ -2837,10 +2818,6 @@ export declare const SCHEMAS: {
|
|
|
2837
2818
|
toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
|
|
2838
2819
|
}, import("zod").ZodTypeAny, "passthrough">;
|
|
2839
2820
|
} | undefined;
|
|
2840
|
-
prizeRevealDeadline?: string | Date | import("zod").objectInputType<{
|
|
2841
|
-
toDate: import("zod").ZodFunction<import("zod").ZodTuple<[], import("zod").ZodUnknown>, import("zod").ZodDate>;
|
|
2842
|
-
}, import("zod").ZodTypeAny, "passthrough"> | undefined;
|
|
2843
|
-
prizeRevealExpired?: boolean | undefined;
|
|
2844
2821
|
prizeDrawProductId?: string | undefined;
|
|
2845
2822
|
isNonRefundable?: boolean | undefined;
|
|
2846
2823
|
bundleId?: string | undefined;
|
|
@@ -3095,6 +3072,7 @@ export declare const SCHEMAS: {
|
|
|
3095
3072
|
id: import("zod").ZodString;
|
|
3096
3073
|
productId: import("zod").ZodString;
|
|
3097
3074
|
productTitle: import("zod").ZodString;
|
|
3075
|
+
listingType: import("zod").ZodOptional<import("zod").ZodString>;
|
|
3098
3076
|
storeId: import("zod").ZodOptional<import("zod").ZodString>;
|
|
3099
3077
|
storeName: import("zod").ZodOptional<import("zod").ZodString>;
|
|
3100
3078
|
userId: import("zod").ZodString;
|
|
@@ -3184,6 +3162,7 @@ export declare const SCHEMAS: {
|
|
|
3184
3162
|
} | undefined;
|
|
3185
3163
|
storeId?: string | undefined;
|
|
3186
3164
|
featured?: boolean | undefined;
|
|
3165
|
+
listingType?: string | undefined;
|
|
3187
3166
|
images?: string[] | undefined;
|
|
3188
3167
|
storeName?: string | undefined;
|
|
3189
3168
|
userAvatar?: string | undefined;
|
|
@@ -3231,6 +3210,7 @@ export declare const SCHEMAS: {
|
|
|
3231
3210
|
} | undefined;
|
|
3232
3211
|
storeId?: string | undefined;
|
|
3233
3212
|
featured?: boolean | undefined;
|
|
3213
|
+
listingType?: string | undefined;
|
|
3234
3214
|
images?: string[] | undefined;
|
|
3235
3215
|
storeName?: string | undefined;
|
|
3236
3216
|
userAvatar?: string | undefined;
|
|
@@ -8,6 +8,9 @@
|
|
|
8
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
|
+
* L-Drago's ladder is deliberately 13 bids deep (cycling the 3 personas) so the
|
|
12
|
+
* auction detail page's paginated Bid History section (pageSize 5) and the /user/bids
|
|
13
|
+
* dashboard both have real multi-page data to exercise — see CollapsibleBidHistory.tsx.
|
|
11
14
|
*
|
|
12
15
|
* EXPORTS:
|
|
13
16
|
* bidsSeedData — Array of bid documents, one set per seeded auction, counts matching
|
|
@@ -72,18 +75,27 @@ const _rawBidsSeedData = [
|
|
|
72
75
|
currentBid: 3499,
|
|
73
76
|
bidderIds: ["user-rohit-collector", "user-ananya-collector", "user-meera-bey"],
|
|
74
77
|
}),
|
|
75
|
-
// auction-beyblade-metal-lightning-l-drago — bidCount:
|
|
78
|
+
// auction-beyblade-metal-lightning-l-drago — bidCount: 13, currentBid: 3199
|
|
79
|
+
// Deliberately deep ladder (see file header) to exercise Bid History pagination.
|
|
76
80
|
...buildLadder({
|
|
77
81
|
productId: "auction-beyblade-metal-lightning-l-drago",
|
|
78
82
|
productTitle: "Metal Fight Beyblade BB-99 Lightning L-Drago",
|
|
79
83
|
startingBid: 1999,
|
|
80
|
-
currentBid:
|
|
84
|
+
currentBid: 3199,
|
|
81
85
|
bidderIds: [
|
|
82
86
|
"user-meera-bey",
|
|
83
87
|
"user-rohit-collector",
|
|
84
88
|
"user-ananya-collector",
|
|
85
89
|
"user-rohit-collector",
|
|
86
90
|
"user-meera-bey",
|
|
91
|
+
"user-ananya-collector",
|
|
92
|
+
"user-rohit-collector",
|
|
93
|
+
"user-meera-bey",
|
|
94
|
+
"user-ananya-collector",
|
|
95
|
+
"user-rohit-collector",
|
|
96
|
+
"user-meera-bey",
|
|
97
|
+
"user-ananya-collector",
|
|
98
|
+
"user-rohit-collector",
|
|
87
99
|
],
|
|
88
100
|
}),
|
|
89
101
|
];
|
|
@@ -275,7 +275,8 @@ export const blogPostsSeedData = [
|
|
|
275
275
|
title: "10 Tips to Sell Faster on LetItRip",
|
|
276
276
|
slug: "selling-tips-letitrip",
|
|
277
277
|
excerpt: "From photography to pricing to descriptions — proven tactics to make your listings sell faster on LetItRip.",
|
|
278
|
-
content: `<h2>1. Photograph Everything</h2><p>Front, back, edges, corners, holo pattern. Natural light. White background. Minimum 4 photos per listing.</p><h2>2. Price Competitively</h2><p>Check what similar items sold for on LetItRip in the last 30 days. Price 5–10% below the lowest active listing for a fast sale.</p><h2>3. Write Honest Descriptions</h2><p>State the exact condition. Mention every flaw. Buyers trust sellers who are upfront about imperfections — they'll come back.</p><h2>4. Respond to Offers Within 2 Hours</h2><p>Quick responses convert. Buyers often make offers to multiple sellers — the first response wins.</p><h2>5. Ship the Same Day</h2><p>Buyers who receive fast shipping leave 5-star reviews. 5-star reviews bring more buyers. It's a flywheel.</p><h2>6–10</h2><p>Use accurate category tags. Add a YouTube unboxing link. Offer bundle discounts. Cross-reference to your other listings. Keep your store description updated.</p>`,
|
|
278
|
+
content: `<h2>1. Photograph Everything</h2><p>Front, back, edges, corners, holo pattern. Natural light. White background. Minimum 4 photos per listing.</p><h2>2. Price Competitively</h2><p>Check what similar items sold for on LetItRip in the last 30 days. Price 5–10% below the lowest active listing for a fast sale.</p><h2>3. Write Honest Descriptions</h2><p>State the exact condition. Mention every flaw. Buyers trust sellers who are upfront about imperfections — they'll come back.</p><h2>4. Respond to Offers Within 2 Hours</h2><p>Quick responses convert. Buyers often make offers to multiple sellers — the first response wins.</p><h2>5. Ship the Same Day</h2><p>Buyers who receive fast shipping leave 5-star reviews. 5-star reviews bring more buyers. It's a flywheel.</p><h2>6–10</h2><p>Use accurate category tags. Add a YouTube unboxing link (see the video above). Offer bundle discounts. Cross-reference to your other listings. Keep your store description updated.</p>`,
|
|
279
|
+
youtubeId: "dQw4w9WgXcQ",
|
|
279
280
|
category: "tips",
|
|
280
281
|
tags: ["selling", "tips", "photography", "pricing", "seller-guide"],
|
|
281
282
|
isFeatured: false,
|
|
@@ -245,6 +245,7 @@ const bundleRows = [
|
|
|
245
245
|
productIds: ["product-beyblade-original-dranzer-s", "product-beyblade-original-driger-v", "product-beyblade-metal-storm-pegasus"],
|
|
246
246
|
},
|
|
247
247
|
bundleProductIds: ["product-beyblade-original-dranzer-s", "product-beyblade-original-driger-v", "product-beyblade-metal-storm-pegasus"],
|
|
248
|
+
bundleOriginalTotal: 4597, // 1499 + 1799 + 1299
|
|
248
249
|
bundleStockStatus: "in_stock",
|
|
249
250
|
display: { coverImage: seedExtMedia("https://picsum.photos/seed/bundle-original-collectors-set-20260101/1200/900"), showInFooter: false },
|
|
250
251
|
isActive: true,
|
|
@@ -277,6 +278,7 @@ const bundleRows = [
|
|
|
277
278
|
productIds: ["product-beyblade-metal-storm-pegasus", "product-beyblade-metal-flame-sagittario", "product-beyblade-original-dranzer-s"],
|
|
278
279
|
},
|
|
279
280
|
bundleProductIds: ["product-beyblade-metal-storm-pegasus", "product-beyblade-metal-flame-sagittario", "product-beyblade-original-dranzer-s"],
|
|
281
|
+
bundleOriginalTotal: 3997, // 1299 + 1199 + 1499
|
|
280
282
|
bundleStockStatus: "in_stock",
|
|
281
283
|
display: { coverImage: seedExtMedia("https://picsum.photos/seed/bundle-metal-fusion-duo-20260101/1200/900"), showInFooter: false },
|
|
282
284
|
isActive: true,
|
|
@@ -303,12 +305,15 @@ const bundleRows = [
|
|
|
303
305
|
description: "Valkyrie and Regalia Genesis — top-tier Burst-era attackers in one set.",
|
|
304
306
|
categoryType: "bundle",
|
|
305
307
|
bundleKind: "special",
|
|
306
|
-
|
|
308
|
+
// Was 3799 — priced ABOVE the 999+1399+1199=3597 member total (no real
|
|
309
|
+
// discount, contradicted the bundle's whole purpose). Corrected 2026-08-19.
|
|
310
|
+
bundlePrice: 2899,
|
|
307
311
|
bundleQueryRule: {
|
|
308
312
|
type: "static",
|
|
309
313
|
productIds: ["product-beyblade-burst-valkyrie", "product-beyblade-burst-regalia-genesis", "product-beyblade-metal-flame-sagittario"],
|
|
310
314
|
},
|
|
311
315
|
bundleProductIds: ["product-beyblade-burst-valkyrie", "product-beyblade-burst-regalia-genesis", "product-beyblade-metal-flame-sagittario"],
|
|
316
|
+
bundleOriginalTotal: 3597, // 999 + 1399 + 1199
|
|
312
317
|
bundleStockStatus: "in_stock",
|
|
313
318
|
display: { coverImage: seedExtMedia("https://picsum.photos/seed/bundle-burst-battlers-pack-20260101/1200/900"), showInFooter: false },
|
|
314
319
|
isActive: true,
|
|
@@ -341,6 +346,7 @@ const bundleRows = [
|
|
|
341
346
|
productIds: ["product-beyblade-x-wizard-arrow", "product-beyblade-x-knife-shinobi", "product-beyblade-burst-valkyrie"],
|
|
342
347
|
},
|
|
343
348
|
bundleProductIds: ["product-beyblade-x-wizard-arrow", "product-beyblade-x-knife-shinobi", "product-beyblade-burst-valkyrie"],
|
|
349
|
+
bundleOriginalTotal: 2847, // 899 + 949 + 999
|
|
344
350
|
bundleStockStatus: "in_stock",
|
|
345
351
|
display: { coverImage: seedExtMedia("https://picsum.photos/seed/bundle-x-series-starter-20260101/1200/900"), showInFooter: false },
|
|
346
352
|
isActive: true,
|
|
@@ -367,7 +373,9 @@ const bundleRows = [
|
|
|
367
373
|
description: "One top from every Beyblade generation — Original, Metal Fight, Burst, and X — the ultimate collector's starter pack.",
|
|
368
374
|
categoryType: "bundle",
|
|
369
375
|
bundleKind: "special",
|
|
370
|
-
|
|
376
|
+
// Was 5999 — priced ABOVE the 1799+1299+999+899=4996 member total (no
|
|
377
|
+
// real discount, contradicted the bundle's whole purpose). Corrected 2026-08-19.
|
|
378
|
+
bundlePrice: 3999,
|
|
371
379
|
bundleQueryRule: {
|
|
372
380
|
type: "static",
|
|
373
381
|
productIds: [
|
|
@@ -383,6 +391,7 @@ const bundleRows = [
|
|
|
383
391
|
"product-beyblade-burst-valkyrie",
|
|
384
392
|
"product-beyblade-x-wizard-arrow",
|
|
385
393
|
],
|
|
394
|
+
bundleOriginalTotal: 4996, // 1799 + 1299 + 999 + 899
|
|
386
395
|
bundleStockStatus: "in_stock",
|
|
387
396
|
display: { coverImage: seedExtMedia("https://picsum.photos/seed/bundle-every-generation-starter-pack-20260101/1200/900"), showInFooter: false },
|
|
388
397
|
isActive: true,
|