@mohasinac/appkit 2.7.16 → 2.7.18

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 (105) hide show
  1. package/dist/_internal/server/features/auctions/actions.js +1 -1
  2. package/dist/_internal/server/features/blog/actions.js +2 -2
  3. package/dist/_internal/server/features/brands/actions.js +2 -2
  4. package/dist/_internal/server/features/bundles/actions.d.ts +15 -0
  5. package/dist/_internal/server/features/bundles/actions.js +48 -0
  6. package/dist/_internal/server/features/bundles/index.d.ts +1 -0
  7. package/dist/_internal/server/features/bundles/index.js +1 -0
  8. package/dist/_internal/server/features/cart/actions.js +3 -3
  9. package/dist/_internal/server/features/checkout/actions.d.ts +4 -0
  10. package/dist/_internal/server/features/checkout/actions.js +23 -12
  11. package/dist/_internal/server/features/events/actions.js +3 -3
  12. package/dist/_internal/server/features/orders/actions.js +4 -4
  13. package/dist/_internal/server/features/payments/data.d.ts +5 -3
  14. package/dist/_internal/server/features/payments/data.js +13 -8
  15. package/dist/_internal/server/features/payments/index.d.ts +1 -1
  16. package/dist/_internal/server/features/payments/index.js +1 -1
  17. package/dist/_internal/server/features/pre-orders/actions.js +1 -1
  18. package/dist/_internal/server/features/products/actions.js +6 -6
  19. package/dist/_internal/server/features/promotions/actions.js +3 -3
  20. package/dist/_internal/shared/features/categories/bundle-config.d.ts +24 -0
  21. package/dist/_internal/shared/features/categories/bundle-config.js +28 -0
  22. package/dist/_internal/shared/features/categories/bundle-copy.d.ts +7 -0
  23. package/dist/_internal/shared/features/categories/bundle-copy.js +9 -0
  24. package/dist/_internal/shared/features/categories/bundle-schemas.d.ts +69 -19
  25. package/dist/_internal/shared/features/categories/bundle-schemas.js +20 -2
  26. package/dist/_internal/shared/features/checkout/config.d.ts +1 -1
  27. package/dist/_internal/shared/features/checkout/config.js +1 -1
  28. package/dist/_internal/shared/features/payments/config.d.ts +2 -1
  29. package/dist/_internal/shared/features/payments/config.js +2 -1
  30. package/dist/_internal/shared/features/products/schema.d.ts +8 -8
  31. package/dist/constants/field-names.d.ts +8 -1
  32. package/dist/constants/field-names.js +9 -2
  33. package/dist/constants/table-keys.d.ts +3 -0
  34. package/dist/constants/table-keys.js +3 -0
  35. package/dist/features/admin/components/AdminSiteSettingsView.js +17 -15
  36. package/dist/features/admin/components/DashboardStats.js +20 -12
  37. package/dist/features/admin/components/analytics/AdminAnalyticsCharts.js +18 -2
  38. package/dist/features/admin/components/analytics/AdminStatCard.d.ts +7 -1
  39. package/dist/features/admin/components/analytics/AdminStatCard.js +13 -2
  40. package/dist/features/admin/schemas/firestore.d.ts +18 -4
  41. package/dist/features/admin/schemas/firestore.js +11 -1
  42. package/dist/features/categories/components/BundleBuyNowCta.d.ts +3 -1
  43. package/dist/features/categories/components/BundleBuyNowCta.js +3 -3
  44. package/dist/features/categories/components/BundleDynamicRuleEditor.d.ts +1 -1
  45. package/dist/features/categories/components/BundleDynamicRuleEditor.js +2 -1
  46. package/dist/features/categories/components/BundlesListView.d.ts +4 -1
  47. package/dist/features/categories/components/BundlesListView.js +2 -2
  48. package/dist/features/categories/components/CategoryBundlesListing.d.ts +4 -1
  49. package/dist/features/categories/components/CategoryBundlesListing.js +9 -8
  50. package/dist/features/categories/schemas/firestore.d.ts +29 -1
  51. package/dist/features/checkout/actions/checkout-actions.d.ts +11 -0
  52. package/dist/features/checkout/actions/checkout-actions.js +26 -0
  53. package/dist/features/filters/FilterFacetSection.d.ts +6 -1
  54. package/dist/features/filters/FilterFacetSection.js +25 -2
  55. package/dist/features/homepage/components/FeaturedBundlesSection.d.ts +4 -1
  56. package/dist/features/homepage/components/FeaturedBundlesSection.js +9 -8
  57. package/dist/features/orders/actions/refund-actions.js +10 -7
  58. package/dist/features/orders/schemas/firestore.d.ts +16 -13
  59. package/dist/features/orders/schemas/firestore.js +6 -5
  60. package/dist/features/pre-orders/components/MarketplacePreorderCard.js +1 -1
  61. package/dist/features/pre-orders/components/PreOrdersIndexListing.js +2 -1
  62. package/dist/features/products/components/AuctionsIndexListing.js +2 -1
  63. package/dist/features/products/components/ProductDetailPageView.js +3 -1
  64. package/dist/features/products/components/ProductDetailView.d.ts +3 -1
  65. package/dist/features/products/components/ProductDetailView.js +2 -2
  66. package/dist/features/products/components/ProductFilters.d.ts +10 -4
  67. package/dist/features/products/components/ProductFilters.js +20 -16
  68. package/dist/features/products/components/ProductGrid.js +3 -3
  69. package/dist/features/products/components/ProductsIndexListing.js +2 -1
  70. package/dist/features/products/constants/product-features.constants.js +5 -1
  71. package/dist/features/products/schemas/index.d.ts +2 -2
  72. package/dist/features/products/schemas/product-features.d.ts +1 -1
  73. package/dist/features/products/schemas/product-features.validators.d.ts +10 -10
  74. package/dist/features/products/schemas/product-features.validators.js +4 -0
  75. package/dist/features/seller/components/SellerCouponEditorView.js +2 -2
  76. package/dist/features/seller/components/analytics/SellerAnalyticsStats.js +10 -4
  77. package/dist/features/shell/FormShell.js +1 -1
  78. package/dist/features/stores/components/StoreBundlesPageView.d.ts +4 -1
  79. package/dist/features/stores/components/StoreBundlesPageView.js +2 -2
  80. package/dist/features/stores/components/StoresIndexListing.js +2 -1
  81. package/dist/features/wishlist/hooks/useWishlistCount.d.ts +2 -2
  82. package/dist/features/wishlist/hooks/useWishlistCount.js +5 -8
  83. package/dist/providers/db-firebase/admin-app-lite.js +8 -2
  84. package/dist/providers/db-firebase/admin.js +8 -2
  85. package/dist/seed/addresses-seed-data.js +24 -7
  86. package/dist/seed/cart-seed-data.d.ts +10 -10
  87. package/dist/seed/cart-seed-data.js +39 -2
  88. package/dist/seed/grouped-listings-seed-data.js +47 -0
  89. package/dist/seed/orders-seed-data.js +150 -0
  90. package/dist/seed/products-standard-seed-data.js +42 -0
  91. package/dist/seed/site-settings-seed-data.js +11 -4
  92. package/dist/seed/users-seed-data.js +1 -1
  93. package/dist/seed/wishlists-seed-data.js +7 -0
  94. package/dist/server-entry.d.ts +2 -1
  95. package/dist/server-entry.js +2 -1
  96. package/dist/server.d.ts +2 -1
  97. package/dist/server.js +3 -1
  98. package/dist/tailwind-utilities.css +1 -1
  99. package/dist/ui/components/Breadcrumb.style.css +1 -1
  100. package/dist/ui/components/ListingLayout.style.css +1 -1
  101. package/dist/ui/components/Select.style.css +1 -1
  102. package/dist/ui/components/SideDrawer.style.css +55 -12
  103. package/dist/ui/components/Typography.style.css +2 -2
  104. package/dist/ui/rich-text/RichText.style.css +4 -5
  105. package/package.json +1 -1
@@ -166,7 +166,7 @@ export const cartsSeedData = [
166
166
  createdAt: daysAgo(27),
167
167
  updatedAt: daysAgo(9),
168
168
  },
169
- // ── P29 expansion (S17 2026-05-12) — 15 more carts via helper ───────────
169
+ // â"€â"€ P29 expansion (S17 2026-05-12) â€" 15 more carts via helper â"€â"€â"€â"€â"€â"€â"€â"€â"€â"€â"€
170
170
  ...mkCart("user-kavya-iyer", 6, [
171
171
  {
172
172
  productId: "product-pokemon-151-booster-box",
@@ -280,9 +280,46 @@ export const cartsSeedData = [
280
280
  listingType: "auction",
281
281
  },
282
282
  ]),
283
- // Guest carts skipped — sessionId is a runtime-only optional field on the
283
+ // Guest carts skipped sessionId is a runtime-only optional field on the
284
284
  // Zod input but not on the `CartDocument` interface used by the seed array.
285
285
  // Guest cart behavior is exercised at runtime via localStorage merge tests.
286
+ // -- Admin: personal collector cart (buying rare items from other stores) ---
287
+ {
288
+ id: "user-admin-letitrip",
289
+ userId: "user-admin-letitrip",
290
+ items: [
291
+ {
292
+ itemId: "cartitem-admin-nendoroid-miku-001",
293
+ productId: "product-nendoroid-hatsune-miku-v4x",
294
+ productTitle: "Nendoroid: Hatsune Miku V4X — Good Smile Company",
295
+ productImage: "/media/product-image-nendoroid-hatsune-miku-v4x-1-20260101.jpg",
296
+ price: 499900,
297
+ currency: _CURRENCY,
298
+ quantity: 1,
299
+ storeId: "store-letitrip-official",
300
+ storeName: "LetItRip Official",
301
+ listingType: "standard",
302
+ addedAt: daysAgo(3),
303
+ updatedAt: daysAgo(3),
304
+ },
305
+ {
306
+ itemId: "cartitem-admin-alter-rem-001",
307
+ productId: "product-alter-rem-wedding-scale",
308
+ productTitle: "ALTER: Re:Zero — Rem Wedding Ver. 1/7 Scale",
309
+ productImage: "/media/product-image-alter-rem-wedding-scale-1-20260101.jpg",
310
+ price: 1899900,
311
+ currency: _CURRENCY,
312
+ quantity: 1,
313
+ storeId: "store-tokyo-toys-india",
314
+ storeName: "Tokyo Toys India",
315
+ listingType: "standard",
316
+ addedAt: daysAgo(2),
317
+ updatedAt: daysAgo(2),
318
+ },
319
+ ],
320
+ createdAt: daysAgo(3),
321
+ updatedAt: daysAgo(2),
322
+ },
286
323
  ];
287
324
  /**
288
325
  * Compact constructor for authenticated user carts. Each item gets a
@@ -175,6 +175,53 @@ export const groupedListingsSeedData = [
175
175
  createdAt: daysAgo(10),
176
176
  updatedAt: daysAgo(1),
177
177
  },
178
+ // ── 9. Admin Curated — Articulated Figure Display Set (LetItRip Official) ─
179
+ {
180
+ id: "group-letitrip-figure-display-set",
181
+ slug: "group-letitrip-figure-display-set",
182
+ title: "LetItRip Curated: Premium Articulated Figure Display Set",
183
+ description: "Hand-picked by LetItRip's curation team — three of the finest articulated figures available right now. figma Link (TotK) for the gaming shelf, MAFEX Miles Morales for the superhero cabinet, and S.H.Figuarts UI Goku for the anime corner. All official, all brand-new. Bundled for a saving of ₹1,500 vs buying separately.",
184
+ productIds: [
185
+ "product-figma-link-totk",
186
+ "product-mafex-miles-morales-spiderman",
187
+ "product-shf-ultra-instinct-goku",
188
+ ],
189
+ groupTheme: "related",
190
+ minActiveMembers: 2,
191
+ activeMemberCount: 3,
192
+ visibilityStatus: "visible",
193
+ coverImage: "https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=800&h=600&fit=crop",
194
+ isActive: true,
195
+ isFeatured: true,
196
+ storeId: "store-letitrip-official",
197
+ categorySlug: "category-poseable-figures",
198
+ createdBy: "user-admin-letitrip",
199
+ createdAt: daysAgo(7),
200
+ updatedAt: daysAgo(1),
201
+ },
202
+ // ── 10. Admin Curated — Anime Funko Pop Starter Set (LetItRip Official) ───
203
+ {
204
+ id: "group-letitrip-funko-anime-starter",
205
+ slug: "group-letitrip-funko-anime-starter",
206
+ title: "LetItRip Curated: Anime Funko Pop Starter Collection",
207
+ description: "Build your Funko Pop shelf from scratch with this admin-curated set. Gojo Satoru (#1373, blindfold ver.) + Tanjiro & Nezuko Deluxe Diorama — two of the most requested Funko Pops in our anime lineup. Perfect entry point or gift set.",
208
+ productIds: [
209
+ "product-funko-pop-gojo-satoru",
210
+ "product-funko-pop-tanjiro-dlx",
211
+ ],
212
+ groupTheme: "related",
213
+ minActiveMembers: 2,
214
+ activeMemberCount: 2,
215
+ visibilityStatus: "visible",
216
+ coverImage: "https://images.unsplash.com/photo-1558618666-fcd25c85cd64?w=800&h=600&fit=crop",
217
+ isActive: true,
218
+ isFeatured: true,
219
+ storeId: "store-letitrip-official",
220
+ categorySlug: "category-vinyl-figures",
221
+ createdBy: "user-admin-letitrip",
222
+ createdAt: daysAgo(5),
223
+ updatedAt: daysAgo(1),
224
+ },
178
225
  // ── 8. Funko Pop Anime Collector Set (Tokyo Toys India) ───────────────────
179
226
  {
180
227
  id: "group-funko-pop-anime-trio",
@@ -1182,4 +1182,154 @@ export const ordersSeedData = [
1182
1182
  createdAt: daysAgo(65),
1183
1183
  updatedAt: daysAgo(59),
1184
1184
  },
1185
+ // ── Admin as buyer — 36. DELIVERED — admin / MAFEX Miles Morales ─────────
1186
+ {
1187
+ id: "order-admin-036-mafex-miles",
1188
+ productId: "product-mafex-miles-morales-spiderman",
1189
+ productTitle: "MAFEX No.240: Miles Morales Spider-Man (Across the Spider-Verse)",
1190
+ userId: "user-admin-letitrip",
1191
+ userName: "LetItRip Admin",
1192
+ userEmail: "admin@letitrip.in",
1193
+ storeId: "store-tokyo-toys-india",
1194
+ storeName: "Tokyo Toys India",
1195
+ items: [
1196
+ {
1197
+ productId: "product-mafex-miles-morales-spiderman",
1198
+ productTitle: "MAFEX No.240: Miles Morales Spider-Man",
1199
+ quantity: 1,
1200
+ unitPrice: 849900,
1201
+ totalPrice: 849900,
1202
+ },
1203
+ ],
1204
+ quantity: 1,
1205
+ unitPrice: 849900,
1206
+ totalPrice: 849900,
1207
+ currency: "INR",
1208
+ status: OrderStatusValues.DELIVERED,
1209
+ paymentStatus: PaymentStatusValues.PAID,
1210
+ paymentMethod: PaymentMethodValues.RAZORPAY,
1211
+ paymentId: "pay_razorpay_036_demo",
1212
+ shippingAddress: "LetItRip HQ, 10th Floor, BKC G Block, Mumbai 400051",
1213
+ trackingNumber: "SHPR880011223",
1214
+ shippingCarrier: "Shiprocket",
1215
+ shippingFee: 0,
1216
+ platformFee: 42495,
1217
+ orderDate: daysAgo(55),
1218
+ shippingDate: daysAgo(53),
1219
+ deliveryDate: daysAgo(50),
1220
+ payoutStatus: "paid",
1221
+ createdAt: daysAgo(55),
1222
+ updatedAt: daysAgo(50),
1223
+ },
1224
+ // ── Admin as buyer — 37. DELIVERED — admin / Figma Link TotK ─────────────
1225
+ {
1226
+ id: "order-admin-037-figma-link",
1227
+ productId: "product-figma-link-totk",
1228
+ productTitle: "figma: The Legend of Zelda: Tears of the Kingdom — Link",
1229
+ userId: "user-admin-letitrip",
1230
+ userName: "LetItRip Admin",
1231
+ userEmail: "admin@letitrip.in",
1232
+ storeId: "store-gundam-galaxy",
1233
+ storeName: "Gundam Galaxy",
1234
+ items: [
1235
+ {
1236
+ productId: "product-figma-link-totk",
1237
+ productTitle: "figma Link (Tears of the Kingdom)",
1238
+ quantity: 1,
1239
+ unitPrice: 699900,
1240
+ totalPrice: 699900,
1241
+ },
1242
+ ],
1243
+ quantity: 1,
1244
+ unitPrice: 699900,
1245
+ totalPrice: 699900,
1246
+ currency: "INR",
1247
+ status: OrderStatusValues.DELIVERED,
1248
+ paymentStatus: PaymentStatusValues.PAID,
1249
+ paymentMethod: PaymentMethodValues.RAZORPAY,
1250
+ paymentId: "pay_razorpay_037_demo",
1251
+ shippingAddress: "LetItRip HQ, 10th Floor, BKC G Block, Mumbai 400051",
1252
+ trackingNumber: "DTDC990022334",
1253
+ shippingCarrier: "DTDC",
1254
+ shippingFee: 0,
1255
+ platformFee: 34995,
1256
+ orderDate: daysAgo(40),
1257
+ shippingDate: daysAgo(38),
1258
+ deliveryDate: daysAgo(35),
1259
+ payoutStatus: "paid",
1260
+ createdAt: daysAgo(40),
1261
+ updatedAt: daysAgo(35),
1262
+ },
1263
+ // ── Admin as buyer — 38. SHIPPED — admin / Pokémon Mew PSA 10 (won auction) ──
1264
+ {
1265
+ id: "order-admin-038-pokemon-mew-psa10",
1266
+ productId: "auction-pokemon-mew-1st-edition-psa10",
1267
+ productTitle: "Pokémon Base Set 1st Edition Mew Promo #8 — PSA 10 GEM MINT (AUCTION)",
1268
+ userId: "user-admin-letitrip",
1269
+ userName: "LetItRip Admin",
1270
+ userEmail: "admin@letitrip.in",
1271
+ storeId: "store-vintage-vault",
1272
+ storeName: "Vintage Vault",
1273
+ items: [
1274
+ {
1275
+ productId: "auction-pokemon-mew-1st-edition-psa10",
1276
+ productTitle: "Pokémon 1st Ed. Mew Promo — PSA 10",
1277
+ quantity: 1,
1278
+ unitPrice: 14999900,
1279
+ totalPrice: 14999900,
1280
+ },
1281
+ ],
1282
+ quantity: 1,
1283
+ unitPrice: 14999900,
1284
+ totalPrice: 14999900,
1285
+ currency: "INR",
1286
+ status: OrderStatusValues.SHIPPED,
1287
+ paymentStatus: PaymentStatusValues.PAID,
1288
+ paymentMethod: PaymentMethodValues.RAZORPAY,
1289
+ paymentId: "pay_razorpay_038_demo",
1290
+ shippingAddress: "LetItRip HQ, 10th Floor, BKC G Block, Mumbai 400051",
1291
+ trackingNumber: "DTDC112233445",
1292
+ shippingCarrier: "DTDC",
1293
+ shippingFee: 0,
1294
+ platformFee: 749995,
1295
+ orderDate: daysAgo(10),
1296
+ shippingDate: daysAgo(8),
1297
+ payoutStatus: "eligible",
1298
+ createdAt: daysAgo(10),
1299
+ updatedAt: daysAgo(8),
1300
+ },
1301
+ // ── Admin as buyer — 39. PROCESSING — admin / Good Smile Aqua Scale ───────
1302
+ {
1303
+ id: "order-admin-039-gsc-aqua",
1304
+ productId: "product-gsc-aqua-konosuba-scale",
1305
+ productTitle: "Good Smile Company: KonoSuba — Aqua 1/7 Scale Figure",
1306
+ userId: "user-admin-letitrip",
1307
+ userName: "LetItRip Admin",
1308
+ userEmail: "admin@letitrip.in",
1309
+ storeId: "store-tokyo-toys-india",
1310
+ storeName: "Tokyo Toys India",
1311
+ items: [
1312
+ {
1313
+ productId: "product-gsc-aqua-konosuba-scale",
1314
+ productTitle: "GSC KonoSuba Aqua 1/7 Scale",
1315
+ quantity: 1,
1316
+ unitPrice: 1299900,
1317
+ totalPrice: 1299900,
1318
+ },
1319
+ ],
1320
+ quantity: 1,
1321
+ unitPrice: 1299900,
1322
+ totalPrice: 1299900,
1323
+ currency: "INR",
1324
+ status: OrderStatusValues.PROCESSING,
1325
+ paymentStatus: PaymentStatusValues.PAID,
1326
+ paymentMethod: PaymentMethodValues.UPI_MANUAL,
1327
+ shippingAddress: "LetItRip HQ, 10th Floor, BKC G Block, Mumbai 400051",
1328
+ shippingFee: 0,
1329
+ platformFee: 64995,
1330
+ orderDate: daysAgo(2),
1331
+ payoutStatus: "eligible",
1332
+ createdAt: daysAgo(2),
1333
+ updatedAt: daysAgo(1),
1334
+ },
1185
1335
  ];
@@ -13,6 +13,8 @@ const _rawProductsStandardSeedData = [
13
13
  {
14
14
  id: "product-pokemon-sv-etb",
15
15
  slug: "product-pokemon-sv-etb",
16
+ partOfBundleIds: ["group-pokemon-starter-bundle"],
17
+ partOfBundleTitles: ["Pokémon TCG Starter Bundle — ETB + Deck Box + Sleeves"],
16
18
  title: "Pokémon TCG: Scarlet & Violet — Paldean Fates Elite Trainer Box",
17
19
  description: "The Paldean Fates Elite Trainer Box is packed with Pokémon from the Paldea region in their special Shiny forms. Includes 9 Scarlet & Violet—Paldean Fates booster packs, 65 Pokémon card sleeves featuring Shiny Tinkaton ex, 45 Pokémon TCG Energy cards, a player's guide to the set, 6 damage-counter dice, 1 competition-legal coin-flip die, 2 plastic condition markers, and a collector's box.",
18
20
  category: "category-pokemon-tcg",
@@ -122,6 +124,8 @@ const _rawProductsStandardSeedData = [
122
124
  {
123
125
  id: "product-pokemon-pikachu-plush-8",
124
126
  slug: "product-pokemon-pikachu-plush-8",
127
+ partOfBundleIds: ["group-pokemon-starter-bundle", "group-pokemon-plush-pair"],
128
+ partOfBundleTitles: ["Pokémon TCG Starter Bundle — ETB + Deck Box + Sleeves", "Pokémon Plush Gift Pair — Pikachu + Gengar"],
125
129
  title: "Pokémon Center: Pikachu Sitting Cuties Plush — 8 Inch",
126
130
  description: "Official Pokémon Center Pikachu Sitting Cuties plush, 8 inches tall. Super-soft, detailed embroidery, and safe for all ages. Comes in original Pokémon Center hang-tag packaging. A must-have for every Pokémon fan — the iconic expression and bright yellow colouring make this Pikachu plush a display favourite.",
127
131
  category: "category-nendoroids-chibis",
@@ -168,6 +172,8 @@ const _rawProductsStandardSeedData = [
168
172
  {
169
173
  id: "product-pokemon-gengar-sitting-cuties",
170
174
  slug: "product-pokemon-gengar-sitting-cuties",
175
+ partOfBundleIds: ["group-pokemon-plush-pair"],
176
+ partOfBundleTitles: ["Pokémon Plush Gift Pair — Pikachu + Gengar"],
171
177
  title: "Pokémon Center: Gengar Sitting Cuties Plush — 12 Inch",
172
178
  description: "Official Pokémon Center Gengar Sitting Cuties plush in a 12-inch extra-large size. Everyone's favourite Ghost-type Pokémon rendered in super-soft plush with its iconic grin. Perfect display piece and gift. Comes with original Pokémon Center hang-tag. Limited availability — direct import from the official Pokémon Center Japan.",
173
179
  category: "category-nendoroids-chibis",
@@ -282,6 +288,8 @@ const _rawProductsStandardSeedData = [
282
288
  {
283
289
  id: "product-yugioh-25th-tin",
284
290
  slug: "product-yugioh-25th-tin",
291
+ partOfBundleIds: ["group-yugioh-tournament-pair"],
292
+ partOfBundleTitles: ["Yu-Gi-Oh! Tournament Ready — 25th Tin + Structure Deck"],
285
293
  title: "Yu-Gi-Oh! 25th Anniversary Tin: Dueling Mirrors",
286
294
  description: "Celebrate 25 years of the Yu-Gi-Oh! Trading Card Game with this premium anniversary tin. Contains 3 Mega-Packs of 16 cards each (48 cards total), including a guaranteed Ghost Rare and 3 Secret Rares per tin. Features reprint versions of popular tournament staples in ultra-rare foil treatments. The commemorative tin itself is a collector's piece with 25th anniversary embossing and gold foil detail.",
287
295
  category: "category-yugioh-tcg",
@@ -337,6 +345,8 @@ const _rawProductsStandardSeedData = [
337
345
  {
338
346
  id: "product-yugioh-structure-albaz",
339
347
  slug: "product-yugioh-structure-albaz",
348
+ partOfBundleIds: ["group-yugioh-tournament-pair"],
349
+ partOfBundleTitles: ["Yu-Gi-Oh! Tournament Ready — 25th Tin + Structure Deck"],
340
350
  title: "Yu-Gi-Oh! Structure Deck: Alba Strike",
341
351
  description: "A ready-to-play 41-card Structure Deck featuring the Albaz-related cards and Fallen of Albaz strategies. Includes powerful 'Mirrorjade the Iceblade Dragon' and 'Despian Tragedy'. Ideal for beginner-to-intermediate players looking to build a competitive Dogmatika/Albaz fusion strategy. The deck features 2 Ultra Rare, 2 Super Rare, and 37 Common cards, along with a Deck Guide and game mat.",
342
352
  category: "category-yugioh-tcg",
@@ -393,6 +403,8 @@ const _rawProductsStandardSeedData = [
393
403
  {
394
404
  id: "product-hot-wheels-redline-1969-camaro",
395
405
  slug: "product-hot-wheels-redline-1969-camaro",
406
+ partOfBundleIds: ["group-hot-wheels-car-culture-3pack"],
407
+ partOfBundleTitles: ["Hot Wheels Car Culture Collector 3-Pack"],
396
408
  title: "Hot Wheels Redline 1969 Custom Camaro — Orange (Vintage, Near Mint)",
397
409
  description: "Original 1969 Hot Wheels Redline Custom Camaro in bright orange with red-line tyres. This is a first-year release car from the original Hot Wheels line launched by Mattel in 1968. Condition is Near Mint (NM) — vibrant paint with minimal surface scratches, red lines intact, all four wheels spin freely. Stored in UV-resistant case for the past 15 years. Original collector sourced from a US estate sale. An extraordinary piece for serious Redline collectors.",
398
410
  category: "category-hot-wheels",
@@ -452,6 +464,8 @@ const _rawProductsStandardSeedData = [
452
464
  {
453
465
  id: "product-hot-wheels-premium-5pack",
454
466
  slug: "product-hot-wheels-premium-5pack",
467
+ partOfBundleIds: ["group-hot-wheels-car-culture-3pack"],
468
+ partOfBundleTitles: ["Hot Wheels Car Culture Collector 3-Pack"],
455
469
  title: "Hot Wheels Car Culture: Modern Classics Premium 5-Pack",
456
470
  description: "Hot Wheels Car Culture Modern Classics 5-car premium set featuring iconic Japanese performance cars: Honda S2000, Mazda RX-7 (FD), Nissan Skyline GT-R (R34), Toyota Supra (A80), and Honda NSX (NA1). Premium rubber tyres, opening hoods on select vehicles, and individually numbered collector cards. Each car has authentic die-cast metal construction with premium paint finish.",
457
471
  category: "category-hot-wheels",
@@ -506,6 +520,8 @@ const _rawProductsStandardSeedData = [
506
520
  {
507
521
  id: "product-tomica-limited-datsun",
508
522
  slug: "product-tomica-limited-datsun",
523
+ partOfBundleIds: ["group-hot-wheels-car-culture-3pack"],
524
+ partOfBundleTitles: ["Hot Wheels Car Culture Collector 3-Pack"],
509
525
  title: "Tomica Limited Vintage: Datsun Fairlady 240Z (Silver) — TLV-N43",
510
526
  description: "Tomica Limited Vintage precision diecast of the iconic Datsun Fairlady 240Z in silver. Part of the premium TLV-Vintage series — highly detailed 1:64 scale model with opening doors, rubber tyres, and photo-etched badges. The 240Z is widely regarded as one of the most beautiful Japanese sports cars ever made and TLV captures every curve faithfully. Comes in original Tomica Limited Vintage box with protective tray.",
511
527
  category: "category-tomica",
@@ -681,6 +697,8 @@ const _rawProductsStandardSeedData = [
681
697
  {
682
698
  id: "product-shf-goku-ultra-instinct",
683
699
  slug: "product-shf-goku-ultra-instinct",
700
+ partOfBundleIds: ["group-anime-figure-duo-rem-goku"],
701
+ partOfBundleTitles: ["Anime Figure Duo — Nendoroid Rem + S.H.Figuarts Goku"],
684
702
  title: "Bandai S.H.Figuarts Son Goku -Ultra Instinct- (Dragon Ball Super: Super Hero Ver.)",
685
703
  description: "Bandai S.H.Figuarts Son Goku in his iconic Ultra Instinct form from Dragon Ball Super. This premium figure stands approximately 14 cm tall and features over 20 points of articulation for dynamic posing. Includes multiple expression faceplates, interchangeable hand parts, effect parts for the Ultra Instinct silver aura, and a figure stand. The Ultra Instinct transformation's silver hair is rendered in transparent gradient plastic for an ethereal glow effect. Tamashii Web Exclusive edition.",
686
704
  category: "category-poseable-figures",
@@ -737,6 +755,8 @@ const _rawProductsStandardSeedData = [
737
755
  {
738
756
  id: "product-nendoroid-rem-rezero",
739
757
  slug: "product-nendoroid-rem-rezero",
758
+ partOfBundleIds: ["group-anime-figure-duo-rem-goku"],
759
+ partOfBundleTitles: ["Anime Figure Duo — Nendoroid Rem + S.H.Figuarts Goku"],
740
760
  title: "Good Smile Company Nendoroid Rem (Re:Zero) — #663",
741
761
  description: "Good Smile Company's iconic Nendoroid #663 — Rem from Re:Zero -Starting Life in Another World-. This is one of the best-selling Nendoroids of all time and a must-have for any Re:Zero fan. Stands approximately 10 cm tall in typical Nendoroid cute chibi style. Includes 3 expression faceplates (standard, smiling, and combat), 3 optional hand parts, her morning star weapon, and a Nendoroid stand. Re-release edition in standard packaging.",
742
762
  category: "category-nendoroids-chibis",
@@ -793,6 +813,8 @@ const _rawProductsStandardSeedData = [
793
813
  {
794
814
  id: "product-funko-pop-naruto-sage",
795
815
  slug: "product-funko-pop-naruto-sage",
816
+ partOfBundleIds: ["group-funko-pop-anime-trio"],
817
+ partOfBundleTitles: ["Funko Pop! Anime Collector Set — Naruto + Batman"],
796
818
  title: "Funko Pop! Animation: Naruto Shippuden — Naruto Sage Mode #932",
797
819
  description: "Funko Pop! Naruto Uzumaki in Sage Mode (#932) from Naruto Shippuden. Features Naruto in his iconic Sage Mode toad markings with orange and black design. Stands approximately 9.5 cm tall in the standard Funko Pop vinyl style with oversized head and solid black eyes. Comes in original window box. Perfect for display on any shelf — great gift for Naruto fans.",
798
820
  category: "category-poseable-figures",
@@ -847,6 +869,8 @@ const _rawProductsStandardSeedData = [
847
869
  {
848
870
  id: "product-mcfarlane-batman-dark-knight",
849
871
  slug: "product-mcfarlane-batman-dark-knight",
872
+ partOfBundleIds: ["group-funko-pop-anime-trio"],
873
+ partOfBundleTitles: ["Funko Pop! Anime Collector Set — Naruto + Batman"],
850
874
  title: "McFarlane Toys DC Multiverse: Batman (The Dark Knight Returns) 7-Inch Figure",
851
875
  description: "McFarlane Toys DC Multiverse Batman figure based on Frank Miller's legendary graphic novel The Dark Knight Returns. This 7-inch scale figure features an extremely detailed sculpt of the older, armoured Batman, over 22 points of articulation, and includes a batarang accessory and display base. The textured grey and black armour is faithfully rendered with aged weathering effects. Comes in collector-grade window box packaging with character art.",
852
876
  category: "category-scale-figures",
@@ -903,6 +927,8 @@ const _rawProductsStandardSeedData = [
903
927
  {
904
928
  id: "product-gundam-rx78-mg",
905
929
  slug: "product-gundam-rx78-mg",
930
+ partOfBundleIds: ["group-gundam-builder-essentials"],
931
+ partOfBundleTitles: ["Gundam Builder Essentials — MG + RG Bundle"],
906
932
  title: "Bandai Gunpla MG 1/100 RX-78-2 Gundam Ver. 3.0 — Master Grade Model Kit",
907
933
  description: "Bandai's definitive Master Grade RX-78-2 Gundam Ver. 3.0 — the iconic original Gundam redefined with state-of-the-art engineering. This 1/100 scale snap-fit plastic model features an internal frame with full armour over-wrap, 144 individual hand-assembly components, and impressive poseability that captures every heroic Gundam stance. Includes beam rifle, beam sabre, shield, hyper bazooka, and Gundam hammer. No glue required — perfect for builders aged 15+.",
908
934
  category: "category-gunpla",
@@ -959,6 +985,8 @@ const _rawProductsStandardSeedData = [
959
985
  {
960
986
  id: "product-gundam-wing-zero-rg",
961
987
  slug: "product-gundam-wing-zero-rg",
988
+ partOfBundleIds: ["group-gundam-builder-essentials"],
989
+ partOfBundleTitles: ["Gundam Builder Essentials — MG + RG Bundle"],
962
990
  title: "Bandai Gunpla RG 1/144 Wing Gundam Zero EW (Endless Waltz) — Real Grade Kit",
963
991
  description: "Bandai's legendary Real Grade Wing Gundam Zero from Endless Waltz — the most beautiful Gundam ever made. The RG 1/144 scale features an advanced MS Joint inner frame system, stunning wing feather detail with individual micro-articulated feathers, twin buster rifle, beam sabre effect parts, and a Sandhausen Sturm System for the signature Wing Zero cannon pose. The feathers alone have 88 individual moving components. A showpiece even un-built.",
964
992
  category: "category-gunpla",
@@ -1016,6 +1044,8 @@ const _rawProductsStandardSeedData = [
1016
1044
  {
1017
1045
  id: "product-beyblade-x-bx01-dran-sword",
1018
1046
  slug: "product-beyblade-x-bx01-dran-sword",
1047
+ partOfBundleIds: ["group-beyblade-x-starter-kit"],
1048
+ partOfBundleTitles: ["Beyblade X Complete Starter Kit — Top + Launcher + Stadium"],
1019
1049
  title: "Beyblade X BX-01 Starter Set: Dran Sword 3-60F — Official Takara Tomy",
1020
1050
  description: "The official Beyblade X launch product — BX-01 Dran Sword 3-60F Starter Set. Beyblade X is the next evolution of the competitive Beyblade system, featuring the new X-Line rail system and the Extreme Dash (X-Dash) mechanic where the Beyblade launches at high speed onto the XStadium rail for powerful finisher attacks. Includes Dran Sword top (Bit: Dran, Blade: Sword 3, Ratchet: 60, Bit: F), a high-grip X-String Launcher, and a Beyblade X Activity Guide booklet. Authentic Takara Tomy Japan import.",
1021
1051
  category: "category-beyblade-x",
@@ -1071,6 +1101,8 @@ const _rawProductsStandardSeedData = [
1071
1101
  {
1072
1102
  id: "product-beyblade-burst-b200-valkyrie",
1073
1103
  slug: "product-beyblade-burst-b200-valkyrie",
1104
+ partOfBundleIds: ["group-beyblade-x-starter-kit"],
1105
+ partOfBundleTitles: ["Beyblade X Complete Starter Kit — Top + Launcher + Stadium"],
1074
1106
  title: "Beyblade Burst QuadStrike B-200 Starter: Infinite Valkyrie — Official Takara Tomy",
1075
1107
  description: "Beyblade Burst QuadStrike B-200 Infinite Valkyrie Knight Sword 1B Starter Set — the latest evolution in the Valkyrie lineage. Part of the QuadStrike system featuring four-blade attack design with the Knight Sword contact points and 1B driver for aggressive stamina-to-attack balance. Includes Infinite Valkyrie top, QuadDrive Launcher, and Beyblade Burst activity guide. Authentic Takara Tomy Japan manufacture — no knockoffs. A top-tier competitive choice in the QuadStrike meta.",
1076
1108
  category: "category-beyblade-burst",
@@ -3393,6 +3425,8 @@ const _rawProductsStandardSeedData = [
3393
3425
  {
3394
3426
  id: "product-figma-link-totk",
3395
3427
  slug: "product-figma-link-totk",
3428
+ partOfBundleIds: ["group-letitrip-figure-display-set"],
3429
+ partOfBundleTitles: ["LetItRip Curated: Premium Articulated Figure Display Set"],
3396
3430
  title: "figma: The Legend of Zelda: Tears of the Kingdom — Link (Non-Scale)",
3397
3431
  description: "Max Factory figma articulated figure of Link from The Legend of Zelda: Tears of the Kingdom. Features 30+ points of articulation, Ultrahand ability accessories, multiple interchangeable expression faceplates, and weapons including the Master Sword and Hylian Shield. Non-scale PVC/ABS.",
3398
3432
  category: "category-poseable-figures",
@@ -3426,6 +3460,8 @@ const _rawProductsStandardSeedData = [
3426
3460
  {
3427
3461
  id: "product-funko-pop-gojo-satoru",
3428
3462
  slug: "product-funko-pop-gojo-satoru",
3463
+ partOfBundleIds: ["group-letitrip-funko-anime-starter"],
3464
+ partOfBundleTitles: ["LetItRip Curated: Anime Funko Pop Starter Collection"],
3429
3465
  title: "Funko Pop! Animation: Jujutsu Kaisen — Gojo Satoru (Blindfold) #1373",
3430
3466
  description: "Funko Pop! Animation figure of Gojo Satoru from Jujutsu Kaisen, depicting him with his iconic blindfold. Vinyl figure stands approx. 3.75 inches tall. Official licensed product. Comes in standard window-display box.",
3431
3467
  category: "category-poseable-figures",
@@ -3491,6 +3527,8 @@ const _rawProductsStandardSeedData = [
3491
3527
  {
3492
3528
  id: "product-shf-ultra-instinct-goku",
3493
3529
  slug: "product-shf-ultra-instinct-goku",
3530
+ partOfBundleIds: ["group-letitrip-figure-display-set"],
3531
+ partOfBundleTitles: ["LetItRip Curated: Premium Articulated Figure Display Set"],
3494
3532
  title: "S.H.Figuarts: Dragon Ball Super — Ultra Instinct Goku (2nd Release)",
3495
3533
  description: "Bandai S.H.Figuarts Ultra Instinct Goku from Dragon Ball Super. 2nd release with improved articulation and silver aura effect parts. Features multiple hand sets, energy effect parts, and display stand. Approx. 140mm. Official Bandai Spirits product.",
3496
3534
  category: "category-poseable-figures",
@@ -3524,6 +3562,8 @@ const _rawProductsStandardSeedData = [
3524
3562
  {
3525
3563
  id: "product-funko-pop-tanjiro-dlx",
3526
3564
  slug: "product-funko-pop-tanjiro-dlx",
3565
+ partOfBundleIds: ["group-letitrip-funko-anime-starter"],
3566
+ partOfBundleTitles: ["LetItRip Curated: Anime Funko Pop Starter Collection"],
3527
3567
  title: "Funko Pop! Deluxe: Demon Slayer — Tanjiro Kamado with Nezuko (Diorama)",
3528
3568
  description: "Funko Pop! Deluxe figure of Tanjiro Kamado with Nezuko from Demon Slayer: Kimetsu no Yaiba. Diorama set with Tanjiro in battle pose and Nezuko in bamboo-muzzle form. Larger format deluxe figure with detailed base. Official licensed product.",
3529
3569
  category: "category-poseable-figures",
@@ -3556,6 +3596,8 @@ const _rawProductsStandardSeedData = [
3556
3596
  {
3557
3597
  id: "product-mafex-miles-morales-spiderman",
3558
3598
  slug: "product-mafex-miles-morales-spiderman",
3599
+ partOfBundleIds: ["group-letitrip-figure-display-set"],
3600
+ partOfBundleTitles: ["LetItRip Curated: Premium Articulated Figure Display Set"],
3559
3601
  title: "MAFEX No.240: Miles Morales Spider-Man (Across the Spider-Verse)",
3560
3602
  description: "Medicom Toy MAFEX No.240 Miles Morales Spider-Man based on his appearance in Across the Spider-Verse. Highly articulated figure with fabric suit elements, web effect parts, and multiple expression faceplates. Approx. 155mm. One of the most detailed Miles Morales figures available.",
3561
3603
  category: "category-poseable-figures",
@@ -342,15 +342,21 @@ export const siteSettingsSeedData = {
342
342
  ],
343
343
  },
344
344
  commissions: {
345
- razorpayFeePercent: 2,
345
+ platformFeePercent: 5,
346
+ gstPercent: 18,
347
+ minimumTransactionFee: 0,
348
+ gatewayFeePercent: 2,
346
349
  codDepositPercent: 10,
347
350
  sellerShippingFixed: 0,
348
351
  platformShippingPercent: 0,
349
352
  platformShippingFixedMin: 0,
350
- processingFeePercent: 0,
351
- gstPercent: 18,
352
- gatewayFeePercent: 2,
353
353
  autoPayoutWindowDays: 7,
354
+ payoutHoldDays: 2,
355
+ minPayoutAmount: 100,
356
+ auctionListingFee: 0,
357
+ preOrderListingFee: 0,
358
+ featuredSlotFee: 999,
359
+ promotedSlotFee: 499,
354
360
  },
355
361
  featureFlags: {
356
362
  chats: true,
@@ -366,6 +372,7 @@ export const siteSettingsSeedData = {
366
372
  sellerRegistration: true,
367
373
  preOrders: true,
368
374
  seedPanel: true,
375
+ adminCheckoutBypass: false,
369
376
  },
370
377
  // VA8 ⑧ Integrations — placeholder credentials (replace with real values in Firestore/admin panel)
371
378
  credentials: {
@@ -32,7 +32,7 @@ export const usersSeedData = [
32
32
  showWishlist: false,
33
33
  bio: "LetItRip platform administrator.",
34
34
  },
35
- stats: { totalOrders: 0, auctionsWon: 0, itemsSold: 0, reviewsCount: 0 },
35
+ stats: { totalOrders: 4, auctionsWon: 1, itemsSold: 142, reviewsCount: 0 },
36
36
  metadata: {
37
37
  lastSignInTime: daysAgo(1),
38
38
  creationTime: daysAgo(400).toISOString(),
@@ -56,4 +56,11 @@ export const wishlistsSeedData = [
56
56
  { productId: "preorder-beyblade-x-bx10-booster", productType: "preorder", addedAt: daysAgo(3) },
57
57
  { productId: "preorder-shf-broly-super-hero", productType: "preorder", addedAt: daysAgo(1) },
58
58
  ]),
59
+ // Admin's personal wishlist — rare high-value collectibles
60
+ makeDoc("user-admin-letitrip", [
61
+ { productId: "product-mafex-miles-morales-spiderman", productType: "product", addedAt: daysAgo(60) },
62
+ { productId: "product-figma-link-totk", productType: "product", addedAt: daysAgo(45) },
63
+ { productId: "auction-pokemon-mew-1st-edition-psa10", productType: "auction", addedAt: daysAgo(20) },
64
+ { productId: "product-alter-rem-wedding-scale", productType: "product", addedAt: daysAgo(8) },
65
+ ]),
59
66
  ];
@@ -57,8 +57,9 @@ export { getSearchResults, searchAction, type SearchQuery, } from "./_internal/s
57
57
  export { getCategoryForDetail, listRootCategories, listFeaturedCategories, listMenuCategories, getCategoryTree, listSitemapCategories, CATEGORIES_PAGE_SIZE, CATEGORIES_ROOT_TIER, CATEGORIES_MAX_DEPTH, CATEGORIES_SITEMAP_LIMIT, CATEGORIES_FEATURED_LIMIT, CATEGORIES_MENU_LIMIT, } from "./_internal/server/features/categories/index";
58
58
  export { getGroupedListingForDetail, getGroupedListingWithItems, listGroupedListings, listFeaturedGroupedListings, listSitemapGroupedListings, GROUPED_LISTINGS_PAGE_SIZE, GROUPED_LISTINGS_FEATURED_LIMIT, GROUPED_LISTINGS_SITEMAP_LIMIT, type GroupedListingWithItems, type ListGroupedListingsParams, type SitemapGroupedListing, } from "./_internal/server/features/grouped/index";
59
59
  export { createCheckoutOrderAction, attachPaymentAction, verifyAndPlaceRazorpayOrderAction, formatShippingAddress, CHECKOUT_DEFAULT_COMMISSIONS, CHECKOUT_PAYMENT_METHODS, type CreateCheckoutOrderInput, type VerifyAndPlaceRazorpayOrderInput, type CheckoutOrderResult, type CheckoutPaymentMethod, } from "./_internal/server/features/checkout/index";
60
+ export { grantAdminCheckoutBypass } from "./features/checkout/server";
60
61
  export { processRefundAction, type ProcessRefundInput, } from "./_internal/server/features/refunds/actions";
61
- export { createPaymentIntentAction, verifyPaymentSignatureAction, resolvePaymentFee, PAYMENTS_DEFAULT_RAZORPAY_FEE_PERCENT, PAYMENTS_RECEIPT_PREFIX, type CreatePaymentIntentInput, type CreatePaymentIntentResult, type VerifyPaymentSignatureInput, type ResolvedPaymentFee, } from "./_internal/server/features/payments/index";
62
+ export { createPaymentIntentAction, verifyPaymentSignatureAction, resolvePaymentFee, PAYMENTS_DEFAULT_PLATFORM_FEE_PERCENT, PAYMENTS_DEFAULT_GST_PERCENT, PAYMENTS_RECEIPT_PREFIX, type CreatePaymentIntentInput, type CreatePaymentIntentResult, type VerifyPaymentSignatureInput, type ResolvedPaymentFee, } from "./_internal/server/features/payments/index";
62
63
  export { getSublistingCategoryForDetail } from "./_internal/server/features/sublisting-categories/index";
63
64
  export { getStoreForDetail, listStoreProductsInitial, listStoreAuctionsInitial, listStorePreOrdersInitial, listSitemapStores, STORES_PAGE_SIZE, STORES_PRODUCTS_PAGE_SIZE, STORES_SITEMAP_LIMIT, STORES_FEATURED_LIMIT, } from "./_internal/server/features/stores/index";
64
65
  export { AppShell, DashboardScaffold } from "./_internal/client/scaffolds/index";
@@ -85,10 +85,11 @@ export { getGroupedListingForDetail, getGroupedListingWithItems, listGroupedList
85
85
  // `.listByType("bundle", opts)` / `.findById(id)` directly.
86
86
  // S4: checkout actions
87
87
  export { createCheckoutOrderAction, attachPaymentAction, verifyAndPlaceRazorpayOrderAction, formatShippingAddress, CHECKOUT_DEFAULT_COMMISSIONS, CHECKOUT_PAYMENT_METHODS, } from "./_internal/server/features/checkout/index";
88
+ export { grantAdminCheckoutBypass } from "./features/checkout/server";
88
89
  // S-SBUNI-RULES: refund action
89
90
  export { processRefundAction, } from "./_internal/server/features/refunds/actions";
90
91
  // S4: payments actions
91
- export { createPaymentIntentAction, verifyPaymentSignatureAction, resolvePaymentFee, PAYMENTS_DEFAULT_RAZORPAY_FEE_PERCENT, PAYMENTS_RECEIPT_PREFIX, } from "./_internal/server/features/payments/index";
92
+ export { createPaymentIntentAction, verifyPaymentSignatureAction, resolvePaymentFee, PAYMENTS_DEFAULT_PLATFORM_FEE_PERCENT, PAYMENTS_DEFAULT_GST_PERCENT, PAYMENTS_RECEIPT_PREFIX, } from "./_internal/server/features/payments/index";
92
93
  // S3: sublisting categories data layer
93
94
  export { getSublistingCategoryForDetail } from "./_internal/server/features/sublisting-categories/index";
94
95
  // S3: stores data layer
package/dist/server.d.ts CHANGED
@@ -254,6 +254,7 @@ export { updateCategory } from "./features/categories/server";
254
254
  export { grantCheckoutConsentViaSms } from "./features/checkout/server";
255
255
  export { sendCheckoutConsentOtp } from "./features/checkout/server";
256
256
  export { verifyCheckoutConsentOtp } from "./features/checkout/server";
257
+ export { grantAdminCheckoutBypass } from "./features/checkout/server";
257
258
  export { sendContactEmail } from "./features/contact/server";
258
259
  export { sendEmail } from "./features/contact/server";
259
260
  export { sendOrderConfirmationEmail } from "./features/contact/server";
@@ -450,7 +451,7 @@ export type { GoogleReview, GoogleReviewsResult } from "./features/homepage/lib/
450
451
  export { GoogleReviewsSection } from "./features/homepage/components/GoogleReviewsSection";
451
452
  export type { GoogleReviewsSectionProps } from "./features/homepage/components/GoogleReviewsSection";
452
453
  export { getProductForDetail, listSitemapProducts, type SitemapProduct } from "./_internal/server/features/products/index";
453
- export { getBundleForDetail, listBundleMembers, listFeaturedBundles, buildBundleMetadata, renderBundleOg, renderBundleOgImage, type BundleDataOptions, type BundleMetadataOptions, type BundleOgData, } from "./_internal/server/features/bundles/index";
454
+ export { getBundleForDetail, listBundleMembers, listFeaturedBundles, buildBundleMetadata, renderBundleOg, renderBundleOgImage, addBundleToCartAction, type BundleDataOptions, type BundleMetadataOptions, type BundleOgData, } from "./_internal/server/features/bundles/index";
454
455
  export { getAuctionForDetail, getProductFeaturesForAuction } from "./_internal/server/features/auctions/index";
455
456
  export { getPreOrderForDetail, getProductFeaturesForPreOrder } from "./_internal/server/features/pre-orders/index";
456
457
  export { getStoreForDetail, listStoreProductsInitial, listStoreAuctionsInitial, listStorePreOrdersInitial, listSitemapStores } from "./_internal/server/features/stores/index";
package/dist/server.js CHANGED
@@ -766,6 +766,8 @@ export { sendCheckoutConsentOtp } from "./features/checkout/server";
766
766
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
767
767
  // verifyCheckoutConsentOtp - Shared export for verify checkout consent otp.
768
768
  export { verifyCheckoutConsentOtp } from "./features/checkout/server";
769
+ // grantAdminCheckoutBypass - Admin bypass that skips OTP + payment for admin-placed orders.
770
+ export { grantAdminCheckoutBypass } from "./features/checkout/server";
769
771
  // [SERVER-ONLY]-Server-only — uses Node.js, Next.js server internals, or third-party server SDKs (auth, email, payment, shipping).
770
772
  // sendContactEmail - Shared export for send contact email.
771
773
  export { sendContactEmail } from "./features/contact/server";
@@ -1323,7 +1325,7 @@ export { GoogleReviewsSection } from "./features/homepage/components/GoogleRevie
1323
1325
  // Data layers — each wrapped in React.cache for request-scoped dedup
1324
1326
  export { getProductForDetail, listSitemapProducts } from "./_internal/server/features/products/index";
1325
1327
  // S-SBUNI-3/4 2026-05-13 — bundle data/metadata/og layer.
1326
- export { getBundleForDetail, listBundleMembers, listFeaturedBundles, buildBundleMetadata, renderBundleOg, renderBundleOgImage, } from "./_internal/server/features/bundles/index";
1328
+ export { getBundleForDetail, listBundleMembers, listFeaturedBundles, buildBundleMetadata, renderBundleOg, renderBundleOgImage, addBundleToCartAction, } from "./_internal/server/features/bundles/index";
1327
1329
  export { getAuctionForDetail, getProductFeaturesForAuction } from "./_internal/server/features/auctions/index";
1328
1330
  export { getPreOrderForDetail, getProductFeaturesForPreOrder } from "./_internal/server/features/pre-orders/index";
1329
1331
  export { getStoreForDetail, listStoreProductsInitial, listStoreAuctionsInitial, listStorePreOrdersInitial, listSitemapStores } from "./_internal/server/features/stores/index";