@mohasinac/appkit 2.8.7 → 2.8.9
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/checkout/actions.js +9 -9
- package/dist/_internal/server/jobs/core/cleanupRtdbEvents.js +1 -1
- package/dist/_internal/shared/listing-types/action-tracker.js +1 -1
- package/dist/constants/api-endpoints.d.ts +3 -0
- package/dist/constants/api-endpoints.js +1 -0
- package/dist/core/hooks/useSyncManager.js +4 -4
- package/dist/features/account/components/NotificationPreferencesPanel.js +1 -1
- package/dist/features/admin/components/AdminSupportTicketDetailView.js +4 -4
- package/dist/features/blog/api/[slug]/route.js +1 -1
- package/dist/features/categories/components/CategoryDetailPageView.js +3 -1
- package/dist/features/layout/AppLayoutShell.js +9 -4
- package/dist/features/layout/TitleBarLayout.js +2 -4
- package/dist/features/media/MediaImage.js +7 -5
- package/dist/features/media/MediaVideo.js +5 -2
- package/dist/features/media/upload/MediaUploadField.js +3 -1
- package/dist/features/pre-orders/components/PreOrderDetailPageView.js +3 -1
- package/dist/features/products/components/ShareButton.js +1 -1
- package/dist/features/products/components/ShowGroupSection.js +1 -1
- package/dist/features/products/components/SublistingCarouselSection.js +1 -1
- package/dist/features/promotions/components/CouponCard.js +1 -1
- package/dist/features/scams/actions/scam-actions.js +1 -1
- package/dist/features/seller/components/PhysicalLocationModal.js +5 -1
- package/dist/features/seller/components/SellerFeaturesView.js +2 -2
- package/dist/features/seller/components/SellerGoogleReviewsView.js +1 -1
- package/dist/features/seller/components/SellerPayoutRequestView.js +1 -1
- package/dist/features/seller/components/SellerPayoutSettingsView.js +1 -1
- package/dist/features/seller/components/SellerProductShell.js +1 -1
- package/dist/features/seller/components/SellerShippingView.js +1 -1
- package/dist/features/wishlist/hooks/useWishlistCount.js +1 -1
- package/dist/monitoring/server-logger.js +3 -3
- package/dist/providers/db-firebase/browser-stub.d.ts +1 -0
- package/dist/providers/db-firebase/browser-stub.js +1 -0
- package/dist/providers/db-firebase/rtdb-paths.d.ts +1 -0
- package/dist/providers/db-firebase/rtdb-paths.js +1 -0
- package/dist/seed/_helpers/media.d.ts +1 -0
- package/dist/seed/_helpers/media.js +26 -0
- package/dist/seed/blog-posts-seed-data.js +12 -11
- package/dist/seed/carousel-slides-seed-data.js +7 -6
- package/dist/seed/cart-seed-data.js +13 -12
- package/dist/seed/categories-seed-data.js +95 -94
- package/dist/seed/events-seed-data.js +9 -8
- package/dist/seed/factories/product.factory.js +4 -3
- package/dist/seed/factories/store.factory.js +3 -2
- package/dist/seed/factories/user.factory.js +2 -1
- package/dist/seed/grouped-listings-seed-data.js +4 -3
- package/dist/seed/homepage-sections-seed-data.js +2 -1
- package/dist/seed/products-auctions-seed-data.js +57 -56
- package/dist/seed/products-classifieds-seed-data.js +12 -11
- package/dist/seed/products-digital-codes-seed-data.js +11 -10
- package/dist/seed/products-live-items-seed-data.js +9 -8
- package/dist/seed/products-preorders-seed-data.js +6 -5
- package/dist/seed/products-prize-draws-seed-data.js +25 -24
- package/dist/seed/products-standard-seed-data.js +125 -124
- package/dist/seed/scammers-seed-data.js +2 -1
- package/dist/seed/site-settings-seed-data.js +6 -5
- package/dist/seed/store-extensions-seed-data.js +10 -9
- package/dist/seed/stores-seed-data.js +17 -16
- package/dist/seed/users-seed-data.js +22 -21
- package/dist/ui/components/BackgroundRenderer.js +6 -4
- package/dist/ui/rich-text/RichText.js +1 -1
- package/package.json +1 -1
|
@@ -152,7 +152,7 @@ export const serverLogger = {
|
|
|
152
152
|
};
|
|
153
153
|
console.info(`[INFO] ${message}`, sanitized);
|
|
154
154
|
if (isFileLoggingEnabled)
|
|
155
|
-
writeLog(entry).catch(() => { });
|
|
155
|
+
writeLog(entry).catch(() => { }); // audit-silent-catch-ok: logger must never throw
|
|
156
156
|
},
|
|
157
157
|
warn(message, data) {
|
|
158
158
|
const sanitized = data ? redactPii(normalizeLogData(data)) : undefined;
|
|
@@ -164,7 +164,7 @@ export const serverLogger = {
|
|
|
164
164
|
};
|
|
165
165
|
console.warn(`[WARN] ${message}`, sanitized);
|
|
166
166
|
if (isFileLoggingEnabled)
|
|
167
|
-
writeLog(entry).catch(() => { });
|
|
167
|
+
writeLog(entry).catch(() => { }); // audit-silent-catch-ok: logger must never throw
|
|
168
168
|
},
|
|
169
169
|
error(message, data) {
|
|
170
170
|
const sanitized = data ? redactPii(normalizeLogData(data)) : undefined;
|
|
@@ -176,7 +176,7 @@ export const serverLogger = {
|
|
|
176
176
|
};
|
|
177
177
|
console.error(`[ERROR] ${message}`, sanitized);
|
|
178
178
|
if (isFileLoggingEnabled)
|
|
179
|
-
writeLog(entry).catch(() => { });
|
|
179
|
+
writeLog(entry).catch(() => { }); // audit-silent-catch-ok: logger must never throw
|
|
180
180
|
},
|
|
181
181
|
};
|
|
182
182
|
/** Pull the commonly needed headers from a NextRequest in one call. */
|
|
@@ -32,6 +32,7 @@ export declare const RTDB_PATHS: {
|
|
|
32
32
|
readonly AUTH_EVENTS: "auth_events";
|
|
33
33
|
readonly PAYMENT_EVENTS: "payment_events";
|
|
34
34
|
readonly BULK_EVENTS: "bulk_events";
|
|
35
|
+
readonly SEED_EVENTS: "seed_events";
|
|
35
36
|
};
|
|
36
37
|
export { buildFirebaseClientConfig, normalizeFirebaseConfigValue } from './client-config';
|
|
37
38
|
export type { FirebaseClientConfig } from './client-config';
|
|
@@ -51,6 +51,7 @@ export const RTDB_PATHS = {
|
|
|
51
51
|
AUTH_EVENTS: "auth_events",
|
|
52
52
|
PAYMENT_EVENTS: "payment_events",
|
|
53
53
|
BULK_EVENTS: "bulk_events",
|
|
54
|
+
SEED_EVENTS: "seed_events",
|
|
54
55
|
};
|
|
55
56
|
// Client config builder � safe in all environments
|
|
56
57
|
export { buildFirebaseClientConfig, normalizeFirebaseConfigValue } from './client-config';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare function seedExtMedia(url: string): string;
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Seed-time media URL helper.
|
|
3
|
+
*
|
|
4
|
+
* Wraps a 3rd-party image/video URL in the /api/media/ext proxy path so
|
|
5
|
+
* seed data never persists raw upstream URLs. The proxy adds watermarking,
|
|
6
|
+
* survives upstream rate-limits, and keeps CSP / image hosts under our
|
|
7
|
+
* control.
|
|
8
|
+
*
|
|
9
|
+
* Companion runtime helper: `resolveMediaUrl()` in ../../utils/media-url.ts
|
|
10
|
+
* — defends consumers that still see raw URLs (e.g. live Firestore reads
|
|
11
|
+
* from older docs). Both produce the same `/api/media/ext?url=<encoded>`
|
|
12
|
+
* shape for external https URLs.
|
|
13
|
+
*
|
|
14
|
+
* Idempotent: already-proxied URLs (`/media/...` or `/api/media/ext?url=...`)
|
|
15
|
+
* pass through untouched, so wrapping a wrapped URL is safe.
|
|
16
|
+
*/
|
|
17
|
+
import { MEDIA_ENDPOINTS } from "../../constants/api-endpoints";
|
|
18
|
+
const PROXY_PREFIX = "/media/";
|
|
19
|
+
const EXT_PREFIX = "/api/media/ext?url=";
|
|
20
|
+
export function seedExtMedia(url) {
|
|
21
|
+
if (url.startsWith(PROXY_PREFIX))
|
|
22
|
+
return url;
|
|
23
|
+
if (url.startsWith(EXT_PREFIX))
|
|
24
|
+
return url;
|
|
25
|
+
return MEDIA_ENDPOINTS.EXT_URL(url);
|
|
26
|
+
}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
|
|
14
14
|
* @tag sideEffects:none
|
|
15
15
|
*/
|
|
16
|
+
import { seedExtMedia } from "./_helpers/media";
|
|
16
17
|
const NOW = new Date();
|
|
17
18
|
const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
|
|
18
19
|
export const blogPostsSeedData = [
|
|
@@ -23,7 +24,7 @@ export const blogPostsSeedData = [
|
|
|
23
24
|
slug: "identify-1st-edition-yugioh",
|
|
24
25
|
excerpt: "Learn the telltale signs that distinguish a genuine 1st Edition print from Unlimited — from the gold stamp placement to the eye of Anubis hologram.",
|
|
25
26
|
content: `<h2>The Gold Stamp</h2><p>1st Edition Yu-Gi-Oh! cards feature a gold "1st Edition" stamp below the artwork on the left side. On LOB (Legend of Blue Eyes White Dragon) cards from 2002, this stamp is slightly larger than later sets.</p><h2>Eye of Anubis</h2><p>Starting with LOB Unlimited, Konami added the Eye of Anubis hologram to the bottom-right corner. 1st Edition LOB cards do NOT have this hologram — that's actually a sign of authenticity for the earliest prints.</p><h2>Font Differences</h2><p>Compare the font weight of the card name. 1st Edition prints from the early Duel Monsters era often have slightly bolder text than their Unlimited counterparts.</p>`,
|
|
26
|
-
coverImage: { type: "image", url: "https://images.ygoprodeck.com/images/cards/cropped/46986414.jpg", alt: "Dark Magician card art" },
|
|
27
|
+
coverImage: { type: "image", url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/46986414.jpg"), alt: "Dark Magician card art" },
|
|
27
28
|
category: "guides",
|
|
28
29
|
tags: ["1st-edition", "authentication", "grading", "ygo"],
|
|
29
30
|
isFeatured: true,
|
|
@@ -31,7 +32,7 @@ export const blogPostsSeedData = [
|
|
|
31
32
|
publishedAt: daysAgo(30),
|
|
32
33
|
authorId: "user-admin-letitrip",
|
|
33
34
|
authorName: "LetItRip Admin",
|
|
34
|
-
authorAvatar: "https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg",
|
|
35
|
+
authorAvatar: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg"),
|
|
35
36
|
readTimeMinutes: 5,
|
|
36
37
|
views: 4200,
|
|
37
38
|
metaTitle: "How to Identify 1st Edition Yu-Gi-Oh! Cards | LetItRip",
|
|
@@ -45,7 +46,7 @@ export const blogPostsSeedData = [
|
|
|
45
46
|
slug: "psa-vs-bgs-vs-cgc",
|
|
46
47
|
excerpt: "A head-to-head comparison of the three major card grading services and which one commands the highest premiums in the trading card market.",
|
|
47
48
|
content: `<h2>PSA — The Industry Standard</h2><p>PSA (Professional Sports Authenticator) is the most widely recognized grading service. A PSA 10 "Gem Mint" commands the highest resale premiums, especially for vintage cards from any TCG.</p><h2>BGS — The Sub-Grade King</h2><p>Beckett Grading Services provides sub-grades for centering, surface, edges, and corners. A BGS 10 "Pristine" is incredibly rare, and a BGS 10 "Black Label" (all sub-grades 10) is the holy grail.</p><h2>CGC — The Newcomer</h2><p>CGC entered the trading card market more recently. They also offer sub-grades and their slabs have a modern, clean design. CGC is growing in popularity but PSA still dominates resale value.</p><h2>Our Recommendation</h2><p>For investment: PSA 10 commands the highest resale value. For personal collection with detailed condition analysis: BGS. For budget grading: CGC.</p>`,
|
|
48
|
-
coverImage: { type: "image", url: "https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg", alt: "Exodia the Forbidden One" },
|
|
49
|
+
coverImage: { type: "image", url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg"), alt: "Exodia the Forbidden One" },
|
|
49
50
|
category: "guides",
|
|
50
51
|
tags: ["grading", "psa", "bgs", "cgc", "trading-cards", "investment"],
|
|
51
52
|
isFeatured: true,
|
|
@@ -53,7 +54,7 @@ export const blogPostsSeedData = [
|
|
|
53
54
|
publishedAt: daysAgo(25),
|
|
54
55
|
authorId: "user-admin-letitrip",
|
|
55
56
|
authorName: "LetItRip Admin",
|
|
56
|
-
authorAvatar: "https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg",
|
|
57
|
+
authorAvatar: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg"),
|
|
57
58
|
readTimeMinutes: 7,
|
|
58
59
|
views: 3800,
|
|
59
60
|
metaTitle: "PSA vs BGS vs CGC — Best Card Grading Services | LetItRip",
|
|
@@ -67,14 +68,14 @@ export const blogPostsSeedData = [
|
|
|
67
68
|
slug: "complete-exodia-guide",
|
|
68
69
|
excerpt: "Every printing of Exodia the Forbidden One and its four limbs — from the original LOB 1st Edition to the latest reprint, with current market values.",
|
|
69
70
|
content: `<h2>The Original Five</h2><p>Exodia the Forbidden One (33396948), Left Arm (07902349), Right Arm (70903634), Left Leg (44519536), and Right Leg (08124921). Completing the set in your hand is an instant win — and completing a 1st Edition PSA 10 set is the ultimate flex.</p><h2>LOB 1st Edition (2002)</h2><p>The holy grail. Each piece in PSA 10 ranges from ₹3–5 lakh. A complete set? Over ₹20 lakh.</p><h2>Later Printings</h2><p>Unlimited LOB, Retro Pack, Lost Art Promotion, and various structure deck reprints. Values range from ₹500 for common reprints to ₹50,000+ for rare promotional versions.</p>`,
|
|
70
|
-
coverImage: { type: "image", url: "https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg", alt: "Exodia the Forbidden One" },
|
|
71
|
+
coverImage: { type: "image", url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg"), alt: "Exodia the Forbidden One" },
|
|
71
72
|
category: "guides",
|
|
72
73
|
tags: ["exodia", "guide", "printings", "values", "ygo"],
|
|
73
74
|
isFeatured: false,
|
|
74
75
|
status: "draft",
|
|
75
76
|
authorId: "user-admin-letitrip",
|
|
76
77
|
authorName: "LetItRip Admin",
|
|
77
|
-
authorAvatar: "https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg",
|
|
78
|
+
authorAvatar: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg"),
|
|
78
79
|
readTimeMinutes: 10,
|
|
79
80
|
views: 0,
|
|
80
81
|
metaTitle: "Complete Exodia Guide — All Printings & Values | LetItRip",
|
|
@@ -149,7 +150,7 @@ export const blogPostsSeedData = [
|
|
|
149
150
|
slug: "top-10-duel-monsters-cards",
|
|
150
151
|
excerpt: "From the legendary Blue-Eyes White Dragon LOB 1st Edition to the elusive Tournament Black Luster Soldier — these are the cards every collector dreams of.",
|
|
151
152
|
content: `<h2>1. Tournament Black Luster Soldier (2002)</h2><p>The rarest YGO card ever printed. Only one exists in the wild. Estimated value: over ₹70 lakh.</p><h2>2. Blue-Eyes White Dragon LOB 1st Ed PSA 10</h2><p>Seto Kaiba's signature card in gem mint 1st Edition. PSA 10 copies sell for ₹15–25 lakh.</p><h2>3. Dark Magician LOB 1st Ed PSA 10</h2><p>Yugi's signature card. A PSA 10 1st Edition LOB Dark Magician commands ₹8–12 lakh.</p><h2>4. Exodia Complete Set (LOB 1st Ed, all 5 pieces PSA 10)</h2><p>All five Exodia pieces in 1st Edition PSA 10 — virtually impossible to assemble. Set value: over ₹20 lakh.</p><h2>5–10</h2><p>Mirror Force MRD 1st Ed, Change of Heart MRD 1st Ed, Monster Reborn LOB 1st Ed, Pot of Greed LOB 1st Ed, Gate Guardian MRD, and Dark Magician Girl MFC 1st Ed.</p>`,
|
|
152
|
-
coverImage: { type: "image", url: "https://images.ygoprodeck.com/images/cards/cropped/89631139.jpg", alt: "Blue-Eyes White Dragon" },
|
|
153
|
+
coverImage: { type: "image", url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/89631139.jpg"), alt: "Blue-Eyes White Dragon" },
|
|
153
154
|
category: "news",
|
|
154
155
|
tags: ["top-10", "duel-monsters", "investment", "rare-cards"],
|
|
155
156
|
isFeatured: false,
|
|
@@ -157,7 +158,7 @@ export const blogPostsSeedData = [
|
|
|
157
158
|
publishedAt: daysAgo(20),
|
|
158
159
|
authorId: "user-admin-letitrip",
|
|
159
160
|
authorName: "LetItRip Admin",
|
|
160
|
-
authorAvatar: "https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg",
|
|
161
|
+
authorAvatar: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg"),
|
|
161
162
|
readTimeMinutes: 8,
|
|
162
163
|
views: 6100,
|
|
163
164
|
metaTitle: "Top 10 Most Valuable Duel Monsters Era Cards | LetItRip",
|
|
@@ -232,7 +233,7 @@ export const blogPostsSeedData = [
|
|
|
232
233
|
slug: "gx-era-hidden-gems",
|
|
233
234
|
excerpt: "The GX era produced some of the most undervalued cards in Yu-Gi-Oh! history. Here are the Shadow of Infinity cards smart collectors are buying now.",
|
|
234
235
|
content: `<h2>Why GX Cards Are Undervalued</h2><p>The GX era (2004–2008) coincided with peak Yu-Gi-Oh! anime popularity but many collectors focus exclusively on the original Duel Monsters era. This creates a pricing gap.</p><h2>Shadow of Infinity Picks</h2><p><strong>Elemental HERO Neos</strong> — Jaden Yuki's signature card. 1st Edition Ultra Rare copies are still affordable at ₹3,000–₹5,000.</p><p><strong>Cyber Dragon</strong> — One of the most competitively impactful cards ever. 1st Edition Ultimate Rare commands ₹8,000–₹12,000.</p><p><strong>Rainbow Dragon</strong> — Jesse Anderson's ace. Low print run makes this a sleeper investment.</p>`,
|
|
235
|
-
coverImage: { type: "image", url: "https://images.ygoprodeck.com/images/cards/cropped/89943723.jpg", alt: "Elemental HERO Neos" },
|
|
236
|
+
coverImage: { type: "image", url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/89943723.jpg"), alt: "Elemental HERO Neos" },
|
|
236
237
|
category: "tips",
|
|
237
238
|
tags: ["gx-era", "hidden-gems", "investment", "ygo"],
|
|
238
239
|
isFeatured: false,
|
|
@@ -240,7 +241,7 @@ export const blogPostsSeedData = [
|
|
|
240
241
|
publishedAt: daysAgo(15),
|
|
241
242
|
authorId: "user-admin-letitrip",
|
|
242
243
|
authorName: "LetItRip Admin",
|
|
243
|
-
authorAvatar: "https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg",
|
|
244
|
+
authorAvatar: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg"),
|
|
244
245
|
readTimeMinutes: 6,
|
|
245
246
|
views: 2900,
|
|
246
247
|
metaTitle: "GX Era Hidden Gems — Undervalued YGO Cards | LetItRip",
|
|
@@ -314,7 +315,7 @@ export const blogPostsSeedData = [
|
|
|
314
315
|
slug: "authenticating-ygo-cards",
|
|
315
316
|
excerpt: "A behind-the-scenes look at how verified sellers on LetItRip check every trading card before listing — light tests, holo patterns, and weight checks.",
|
|
316
317
|
content: `<h2>The 5-Point Authentication Process</h2><p>Every card listed by top verified stores goes through a rigorous 5-point check:</p><ol><li><strong>Light Test</strong> — Genuine Konami/Pokémon Company cards have a specific opacity when held to light.</li><li><strong>Holo Pattern</strong> — Each rarity has a distinct holographic pattern verified under UV light.</li><li><strong>Weight Check</strong> — A genuine trading card weighs approximately 1.7–1.8 grams.</li><li><strong>Rosette Test</strong> — Under 10x magnification, genuine cards show a rosette dot pattern.</li><li><strong>Edge & Corner Inspection</strong> — Check for trimming, re-cornering, or alteration.</li></ol>`,
|
|
317
|
-
coverImage: { type: "image", url: "https://images.ygoprodeck.com/images/cards/cropped/23995346.jpg", alt: "Card authentication process" },
|
|
318
|
+
coverImage: { type: "image", url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/23995346.jpg"), alt: "Card authentication process" },
|
|
318
319
|
category: "community",
|
|
319
320
|
tags: ["authentication", "verification", "counterfeit", "trading-cards"],
|
|
320
321
|
isFeatured: false,
|
|
@@ -12,6 +12,7 @@
|
|
|
12
12
|
* @tag consumers:seed/index.ts,seed/runner.ts,SeedPanel
|
|
13
13
|
* @tag sideEffects:none
|
|
14
14
|
*/
|
|
15
|
+
import { seedExtMedia } from "./_helpers/media";
|
|
15
16
|
const NOW = new Date();
|
|
16
17
|
const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
|
|
17
18
|
const _rawSlides = [
|
|
@@ -22,7 +23,7 @@ const _rawSlides = [
|
|
|
22
23
|
active: true,
|
|
23
24
|
background: {
|
|
24
25
|
type: "image",
|
|
25
|
-
url: "https://images.ygoprodeck.com/images/cards/cropped/46986414.jpg",
|
|
26
|
+
url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/46986414.jpg"),
|
|
26
27
|
dimOverlay: { enabled: true, opacity: 0.5 },
|
|
27
28
|
},
|
|
28
29
|
settings: { autoplayDelayMs: 5000, height: "tall" },
|
|
@@ -37,7 +38,7 @@ const _rawSlides = [
|
|
|
37
38
|
active: true,
|
|
38
39
|
background: {
|
|
39
40
|
type: "image",
|
|
40
|
-
url: "https://images.ygoprodeck.com/images/cards/cropped/89631139.jpg",
|
|
41
|
+
url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/89631139.jpg"),
|
|
41
42
|
dimOverlay: { enabled: true, opacity: 0.4 },
|
|
42
43
|
},
|
|
43
44
|
link: { url: "/auctions", openInNewTab: false },
|
|
@@ -53,7 +54,7 @@ const _rawSlides = [
|
|
|
53
54
|
active: true,
|
|
54
55
|
background: {
|
|
55
56
|
type: "image",
|
|
56
|
-
url: "https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg",
|
|
57
|
+
url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/33396948.jpg"),
|
|
57
58
|
dimOverlay: { enabled: true, opacity: 0.45 },
|
|
58
59
|
},
|
|
59
60
|
link: { url: "/products?q=exodia", openInNewTab: false },
|
|
@@ -69,7 +70,7 @@ const _rawSlides = [
|
|
|
69
70
|
active: true,
|
|
70
71
|
background: {
|
|
71
72
|
type: "image",
|
|
72
|
-
url: "https://images.ygoprodeck.com/images/cards/cropped/89943723.jpg",
|
|
73
|
+
url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/89943723.jpg"),
|
|
73
74
|
dimOverlay: { enabled: true, opacity: 0.4 },
|
|
74
75
|
},
|
|
75
76
|
link: { url: "/pre-orders", openInNewTab: false },
|
|
@@ -85,7 +86,7 @@ const _rawSlides = [
|
|
|
85
86
|
active: true,
|
|
86
87
|
background: {
|
|
87
88
|
type: "image",
|
|
88
|
-
url: "https://images.ygoprodeck.com/images/cards/cropped/38033121.jpg",
|
|
89
|
+
url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/38033121.jpg"),
|
|
89
90
|
dimOverlay: { enabled: true, opacity: 0.5 },
|
|
90
91
|
},
|
|
91
92
|
link: { url: "/categories/category-graded-cards", openInNewTab: false },
|
|
@@ -101,7 +102,7 @@ const _rawSlides = [
|
|
|
101
102
|
active: false,
|
|
102
103
|
background: {
|
|
103
104
|
type: "image",
|
|
104
|
-
url: "https://images.ygoprodeck.com/images/cards/cropped/83764718.jpg",
|
|
105
|
+
url: seedExtMedia("https://images.ygoprodeck.com/images/cards/cropped/83764718.jpg"),
|
|
105
106
|
dimOverlay: { enabled: true, opacity: 0.5 },
|
|
106
107
|
},
|
|
107
108
|
settings: { autoplayDelayMs: 5000, height: "tall" },
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
* @tag sideEffects:none
|
|
14
14
|
*/
|
|
15
15
|
import { getDefaultCurrency } from "./seed-market-config";
|
|
16
|
+
import { seedExtMedia } from "./_helpers/media";
|
|
16
17
|
const _CURRENCY = getDefaultCurrency();
|
|
17
18
|
const NOW = new Date();
|
|
18
19
|
const daysAgo = (n) => new Date(NOW.getTime() - n * 86400000);
|
|
@@ -26,7 +27,7 @@ export const cartsSeedData = [
|
|
|
26
27
|
itemId: "cartitem-yugi-dark-magician-lob-1st",
|
|
27
28
|
productId: "product-dark-magician-lob-1st",
|
|
28
29
|
productTitle: "Dark Magician LOB 1st Edition",
|
|
29
|
-
productImage: "https://images.ygoprodeck.com/images/cards/small/46986414.jpg",
|
|
30
|
+
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/46986414.jpg"),
|
|
30
31
|
price: 499900,
|
|
31
32
|
currency: _CURRENCY,
|
|
32
33
|
quantity: 1,
|
|
@@ -40,7 +41,7 @@ export const cartsSeedData = [
|
|
|
40
41
|
itemId: "cartitem-yugi-lob-booster-pack",
|
|
41
42
|
productId: "product-lob-booster-pack",
|
|
42
43
|
productTitle: "Legend of Blue Eyes Booster Pack",
|
|
43
|
-
productImage: "https://images.ygoprodeck.com/images/cards/small/89631139.jpg",
|
|
44
|
+
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/89631139.jpg"),
|
|
44
45
|
price: 149900,
|
|
45
46
|
currency: _CURRENCY,
|
|
46
47
|
quantity: 2,
|
|
@@ -54,7 +55,7 @@ export const cartsSeedData = [
|
|
|
54
55
|
itemId: "cartitem-yugi-kuriboh-mrd",
|
|
55
56
|
productId: "product-kuriboh-mrd",
|
|
56
57
|
productTitle: "Kuriboh MRD",
|
|
57
|
-
productImage: "https://images.ygoprodeck.com/images/cards/small/40640057.jpg",
|
|
58
|
+
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/40640057.jpg"),
|
|
58
59
|
price: 29900,
|
|
59
60
|
currency: _CURRENCY,
|
|
60
61
|
quantity: 1,
|
|
@@ -68,7 +69,7 @@ export const cartsSeedData = [
|
|
|
68
69
|
itemId: "cartitem-yugi-blue-eyes-auction-won",
|
|
69
70
|
productId: "auction-blue-eyes-white-dragon-psa9",
|
|
70
71
|
productTitle: "Blue-Eyes White Dragon PSA 9 — Won Auction",
|
|
71
|
-
productImage: "https://images.ygoprodeck.com/images/cards/small/89631139.jpg",
|
|
72
|
+
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/89631139.jpg"),
|
|
72
73
|
price: 2499900,
|
|
73
74
|
currency: _CURRENCY,
|
|
74
75
|
quantity: 1,
|
|
@@ -83,7 +84,7 @@ export const cartsSeedData = [
|
|
|
83
84
|
itemId: "cartitem-yugi-red-eyes-offer-accepted",
|
|
84
85
|
productId: "product-red-eyes-black-dragon-mrd",
|
|
85
86
|
productTitle: "Red-Eyes Black Dragon MRD — Offer Accepted",
|
|
86
|
-
productImage: "https://images.ygoprodeck.com/images/cards/small/74677422.jpg",
|
|
87
|
+
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/74677422.jpg"),
|
|
87
88
|
price: 899900,
|
|
88
89
|
currency: _CURRENCY,
|
|
89
90
|
quantity: 1,
|
|
@@ -110,7 +111,7 @@ export const cartsSeedData = [
|
|
|
110
111
|
itemId: "cartitem-kaiba-duelist-kingdom-playmat",
|
|
111
112
|
productId: "product-duelist-kingdom-playmat",
|
|
112
113
|
productTitle: "Duelist Kingdom Playmat",
|
|
113
|
-
productImage: "https://images.ygoprodeck.com/images/cards/small/10000015.jpg",
|
|
114
|
+
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/10000015.jpg"),
|
|
114
115
|
price: 129900,
|
|
115
116
|
currency: _CURRENCY,
|
|
116
117
|
quantity: 1,
|
|
@@ -124,7 +125,7 @@ export const cartsSeedData = [
|
|
|
124
125
|
itemId: "cartitem-kaiba-exodia-art-print",
|
|
125
126
|
productId: "product-exodia-art-print",
|
|
126
127
|
productTitle: "Exodia Art Print A3",
|
|
127
|
-
productImage: "https://images.ygoprodeck.com/images/cards/small/33396948.jpg",
|
|
128
|
+
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/33396948.jpg"),
|
|
128
129
|
price: 79900,
|
|
129
130
|
currency: _CURRENCY,
|
|
130
131
|
quantity: 1,
|
|
@@ -138,7 +139,7 @@ export const cartsSeedData = [
|
|
|
138
139
|
itemId: "cartitem-kaiba-gate-guardian-preorder",
|
|
139
140
|
productId: "preorder-gate-guardian-reprint-2026",
|
|
140
141
|
productTitle: "Gate Guardian 2026 Reprint — Pre-Order",
|
|
141
|
-
productImage: "https://images.ygoprodeck.com/images/cards/small/25833572.jpg",
|
|
142
|
+
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/25833572.jpg"),
|
|
142
143
|
price: 349900,
|
|
143
144
|
currency: _CURRENCY,
|
|
144
145
|
quantity: 1,
|
|
@@ -161,7 +162,7 @@ export const cartsSeedData = [
|
|
|
161
162
|
itemId: "cartitem-admin-chaos-emperor",
|
|
162
163
|
productId: "product-chaos-emperor-dragon",
|
|
163
164
|
productTitle: "Chaos Emperor Dragon — Envoy of the End",
|
|
164
|
-
productImage: "https://images.ygoprodeck.com/images/cards/small/82301904.jpg",
|
|
165
|
+
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/82301904.jpg"),
|
|
165
166
|
price: 1299900,
|
|
166
167
|
currency: _CURRENCY,
|
|
167
168
|
quantity: 1,
|
|
@@ -175,7 +176,7 @@ export const cartsSeedData = [
|
|
|
175
176
|
itemId: "cartitem-admin-potd-box",
|
|
176
177
|
productId: "product-potd-booster-box",
|
|
177
178
|
productTitle: "Power of the Duelist Booster Box 24pk",
|
|
178
|
-
productImage: "https://images.ygoprodeck.com/images/cards/small/89943723.jpg",
|
|
179
|
+
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/89943723.jpg"),
|
|
179
180
|
price: 2299900,
|
|
180
181
|
currency: _CURRENCY,
|
|
181
182
|
quantity: 1,
|
|
@@ -198,7 +199,7 @@ export const cartsSeedData = [
|
|
|
198
199
|
itemId: "cartitem-guest-mirror-force",
|
|
199
200
|
productId: "product-mirror-force-mrd",
|
|
200
201
|
productTitle: "Mirror Force MRD Ultra Rare",
|
|
201
|
-
productImage: "https://images.ygoprodeck.com/images/cards/small/44095762.jpg",
|
|
202
|
+
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/44095762.jpg"),
|
|
202
203
|
price: 999900,
|
|
203
204
|
currency: _CURRENCY,
|
|
204
205
|
quantity: 1,
|
|
@@ -212,7 +213,7 @@ export const cartsSeedData = [
|
|
|
212
213
|
itemId: "cartitem-guest-yugi-starter",
|
|
213
214
|
productId: "product-yugi-starter-deck",
|
|
214
215
|
productTitle: "Starter Deck: Yugi",
|
|
215
|
-
productImage: "https://images.ygoprodeck.com/images/cards/small/46986414.jpg",
|
|
216
|
+
productImage: seedExtMedia("https://images.ygoprodeck.com/images/cards/small/46986414.jpg"),
|
|
216
217
|
price: 199900,
|
|
217
218
|
currency: _CURRENCY,
|
|
218
219
|
quantity: 1,
|