@mohasinac/appkit 4.9.5 → 4.10.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/auctions/actions.js +3 -2
- package/dist/_internal/server/features/auctions/service.d.ts +4 -3
- package/dist/_internal/server/features/auctions/service.js +6 -6
- package/dist/_internal/server/features/bundles/data.d.ts +9 -0
- package/dist/_internal/server/features/bundles/data.js +14 -0
- 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/catalogue/og.d.ts +20 -0
- package/dist/_internal/server/features/catalogue/og.js +27 -0
- package/dist/_internal/server/features/grouped/data.d.ts +12 -0
- package/dist/_internal/server/features/grouped/data.js +26 -1
- package/dist/_internal/server/features/grouped/index.d.ts +1 -1
- package/dist/_internal/server/features/grouped/index.js +1 -1
- package/dist/_internal/server/features/products/data.d.ts +23 -0
- package/dist/_internal/server/features/products/data.js +159 -0
- package/dist/_internal/server/features/products/index.d.ts +1 -1
- package/dist/_internal/server/features/products/index.js +1 -1
- package/dist/_internal/shared/features/auctions/config.d.ts +20 -0
- package/dist/_internal/shared/features/auctions/config.js +31 -1
- package/dist/_internal/shared/listing-types/art/config.d.ts +1 -1
- package/dist/_internal/shared/listing-types/art/config.js +1 -1
- package/dist/_internal/shared/listing-types/classified/config.d.ts +1 -1
- package/dist/_internal/shared/listing-types/classified/config.js +1 -1
- package/dist/_internal/shared/listing-types/digital-code/config.d.ts +1 -1
- package/dist/_internal/shared/listing-types/digital-code/config.js +1 -1
- package/dist/_internal/shared/listing-types/live/config.d.ts +1 -1
- package/dist/_internal/shared/listing-types/live/config.js +1 -1
- package/dist/_internal/shared/listing-types/prize-draw/config.d.ts +1 -1
- package/dist/_internal/shared/listing-types/prize-draw/config.js +1 -1
- package/dist/_internal/shared/listing-types/stickers/config.d.ts +1 -1
- package/dist/_internal/shared/listing-types/stickers/config.js +1 -1
- package/dist/client.d.ts +0 -6
- package/dist/client.js +1 -4
- package/dist/constants/api-endpoints.d.ts +3 -0
- package/dist/constants/api-endpoints.js +1 -0
- package/dist/features/admin/components/AdminSiteSettingsView.js +12 -4
- package/dist/features/admin/schemas/firestore.d.ts +9 -0
- package/dist/features/admin/schemas/firestore.js +6 -0
- package/dist/features/auctions/actions/bid-actions.js +4 -1
- package/dist/features/auctions/components/AuctionBottomActions.d.ts +2 -1
- package/dist/features/auctions/components/AuctionBottomActions.js +14 -1
- package/dist/features/auctions/components/AuctionDetailPageView.js +21 -9
- package/dist/features/auctions/components/LiveMinIncrement.d.ts +18 -0
- package/dist/features/auctions/components/LiveMinIncrement.js +17 -0
- package/dist/features/auctions/components/PlaceBidFormClient.d.ts +5 -2
- package/dist/features/auctions/components/PlaceBidFormClient.js +7 -3
- package/dist/features/catalogue/components/PublicCatalogueItemDetailView.d.ts +11 -0
- package/dist/features/catalogue/components/PublicCatalogueItemDetailView.js +33 -0
- package/dist/features/catalogue/components/PublicCatalogueView.js +2 -1
- package/dist/features/catalogue/index.d.ts +2 -0
- package/dist/features/catalogue/index.js +1 -0
- package/dist/features/categories/components/BundleDetailView.d.ts +3 -1
- package/dist/features/categories/components/BundleDetailView.js +3 -2
- package/dist/features/classified/components/ClassifiedContactSellerPanel.d.ts +12 -0
- package/dist/features/classified/components/ClassifiedContactSellerPanel.js +49 -0
- package/dist/features/classified/components/ClassifiedDetailPageView.d.ts +7 -0
- package/dist/features/classified/components/ClassifiedDetailPageView.js +69 -0
- package/dist/features/contact/components/ContactPageView.js +8 -2
- package/dist/features/digital-codes/components/DigitalCodeDetailPageView.d.ts +19 -0
- package/dist/features/digital-codes/components/DigitalCodeDetailPageView.js +79 -0
- package/dist/features/grouped/components/GroupedListingsCarousel.d.ts +13 -0
- package/dist/features/grouped/components/GroupedListingsCarousel.js +31 -0
- package/dist/features/grouped/repository/grouped-listings.repository.d.ts +8 -0
- package/dist/features/grouped/repository/grouped-listings.repository.js +16 -0
- package/dist/features/layout/BottomActions.js +4 -3
- package/dist/features/layout/BottomActionsContext.d.ts +10 -0
- package/dist/features/layout/BottomActionsContext.js +5 -1
- package/dist/features/layout/hooks/useBottomActions.d.ts +2 -0
- package/dist/features/layout/hooks/useBottomActions.js +4 -1
- package/dist/features/live/components/LiveItemDetailPageView.d.ts +9 -0
- package/dist/features/live/components/LiveItemDetailPageView.js +74 -0
- package/dist/features/media/MediaVideo.js +17 -1
- package/dist/features/pre-orders/components/PreOrderDetailPageView.js +9 -1
- package/dist/features/products/components/PrizeDrawDetailPageView.js +11 -1
- package/dist/features/products/components/ProductDetailPageView.js +11 -116
- package/dist/features/products/components/RelatedItemsSection.d.ts +16 -0
- package/dist/features/products/components/RelatedItemsSection.js +17 -0
- package/dist/features/seller/components/SellerProductShell.js +1 -1
- package/dist/features/tester/seed-data/tester-checklist-seed-data.js +83 -3
- package/dist/index.d.ts +2 -0
- package/dist/index.js +1 -0
- package/dist/next/routing/route-map.d.ts +2 -0
- package/dist/next/routing/route-map.js +7 -0
- package/dist/seed/bids-seed-data.js +48 -3
- package/dist/seed/grouped-listings-seed-data.js +167 -0
- package/dist/seed/payouts-seed-data.js +4 -4
- package/dist/seed/products-art-seed-data.js +188 -5
- package/dist/seed/products-auctions-seed-data.js +215 -6
- package/dist/seed/products-classifieds-seed-data.js +255 -8
- package/dist/seed/products-digital-codes-seed-data.js +258 -19
- package/dist/seed/products-live-items-seed-data.js +143 -10
- package/dist/seed/products-preorders-seed-data.js +213 -8
- package/dist/seed/products-prize-draws-seed-data.js +198 -0
- package/dist/seed/products-standard-seed-data.js +141 -0
- package/dist/seed/products-stickers-seed-data.js +178 -5
- package/dist/seed/site-settings-seed-data.js +10 -29
- package/dist/seed/store-extensions-seed-data.js +1 -1
- package/dist/server-entry.d.ts +4 -1
- package/dist/server-entry.js +4 -1
- package/dist/server.d.ts +4 -2
- package/dist/server.js +4 -2
- package/dist/styles.css +29 -1
- package/dist/tailwind-utilities.css +1 -1
- package/dist/ui/components/ImageLightbox.js +37 -3
- package/dist/ui/components/ImageLightbox.style.css +28 -0
- package/dist/utils/media-url.d.ts +9 -0
- package/dist/utils/media-url.js +39 -0
- package/package.json +1 -1
|
@@ -19,6 +19,146 @@
|
|
|
19
19
|
import { PRODUCT_FIELDS } from "../constants/field-names";
|
|
20
20
|
import { buildSearchTokens } from "../utils/search-tokens";
|
|
21
21
|
import { seedExtMedia } from "./_helpers/media";
|
|
22
|
+
/*
|
|
23
|
+
* Real Beyblade attributes per fixture — Root Cause #6 (standard was the
|
|
24
|
+
* "richest" seed file by fixture count but never exercised customFields/
|
|
25
|
+
* customSections/specifications, the actual product-spec render pipeline).
|
|
26
|
+
* Keyed by product id, merged into each fixture below.
|
|
27
|
+
*/
|
|
28
|
+
const SPEC_OVERRIDES = {
|
|
29
|
+
"product-beyblade-original-dranzer-s": {
|
|
30
|
+
specifications: [
|
|
31
|
+
{ name: "Spin Direction", value: "Right (Right-Spin)" },
|
|
32
|
+
{ name: "Type", value: "Attack" },
|
|
33
|
+
{ name: "Weight", value: "31.8", unit: "g" },
|
|
34
|
+
{ name: "Stamina Rating", value: "5", unit: "/10" },
|
|
35
|
+
{ name: "Attack Rating", value: "8", unit: "/10" },
|
|
36
|
+
],
|
|
37
|
+
customFields: [
|
|
38
|
+
{ key: "Launcher Included", type: "boolean", value: "true" },
|
|
39
|
+
{ key: "Ripcord Length", type: "text", value: "Standard (short-pull)" },
|
|
40
|
+
],
|
|
41
|
+
},
|
|
42
|
+
"product-beyblade-original-driger-v": {
|
|
43
|
+
specifications: [
|
|
44
|
+
{ name: "Spin Direction", value: "Left (Left-Spin)" },
|
|
45
|
+
{ name: "Type", value: "Attack" },
|
|
46
|
+
{ name: "Weight", value: "33.1", unit: "g" },
|
|
47
|
+
{ name: "Stamina Rating", value: "6", unit: "/10" },
|
|
48
|
+
{ name: "Attack Rating", value: "7", unit: "/10" },
|
|
49
|
+
],
|
|
50
|
+
customFields: [{ key: "Launcher Included", type: "boolean", value: "false" }],
|
|
51
|
+
customSections: [
|
|
52
|
+
{
|
|
53
|
+
id: "battle-tips",
|
|
54
|
+
title: "Battle Tips",
|
|
55
|
+
text: "Driger V's left-spin makes it a strong counter-pick against right-spin attack types — pair with a wide-angle stadium for maximum recoil advantage.",
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
"product-beyblade-metal-storm-pegasus": {
|
|
60
|
+
specifications: [
|
|
61
|
+
{ name: "Spin Direction", value: "Right (Right-Spin)" },
|
|
62
|
+
{ name: "Type", value: "Attack" },
|
|
63
|
+
{ name: "Weight", value: "50.2", unit: "g" },
|
|
64
|
+
{ name: "Stamina Rating", value: "4", unit: "/10" },
|
|
65
|
+
{ name: "Attack Rating", value: "9", unit: "/10" },
|
|
66
|
+
{ name: "Track & Bottom", value: "105 / RF (Rubber Flat)" },
|
|
67
|
+
],
|
|
68
|
+
customFields: [{ key: "Launcher Included", type: "boolean", value: "true" }],
|
|
69
|
+
},
|
|
70
|
+
"product-beyblade-metal-flame-sagittario": {
|
|
71
|
+
specifications: [
|
|
72
|
+
{ name: "Spin Direction", value: "Right (Right-Spin)" },
|
|
73
|
+
{ name: "Type", value: "Balance" },
|
|
74
|
+
{ name: "Weight", value: "56.8", unit: "g" },
|
|
75
|
+
{ name: "Stamina Rating", value: "7", unit: "/10" },
|
|
76
|
+
{ name: "Defense Rating", value: "6", unit: "/10" },
|
|
77
|
+
{ name: "Track & Bottom", value: "C145 / S (Spike)" },
|
|
78
|
+
],
|
|
79
|
+
customFields: [{ key: "Tournament Legal", type: "boolean", value: "true" }],
|
|
80
|
+
},
|
|
81
|
+
"product-beyblade-burst-valkyrie": {
|
|
82
|
+
specifications: [
|
|
83
|
+
{ name: "Spin Direction", value: "Right (Right-Spin)" },
|
|
84
|
+
{ name: "Type", value: "Attack" },
|
|
85
|
+
{ name: "Weight", value: "28.6", unit: "g" },
|
|
86
|
+
{ name: "Stamina Rating", value: "5", unit: "/10" },
|
|
87
|
+
{ name: "Attack Rating", value: "9", unit: "/10" },
|
|
88
|
+
{ name: "Layer / Disc / Driver", value: "Valkyrie / Wing / Accel" },
|
|
89
|
+
],
|
|
90
|
+
customFields: [
|
|
91
|
+
{ key: "Launcher Included", type: "boolean", value: "true" },
|
|
92
|
+
{ key: "Burst Resistance", type: "text", value: "Medium — tighten disc lock before battle" },
|
|
93
|
+
],
|
|
94
|
+
customSections: [
|
|
95
|
+
{
|
|
96
|
+
id: "battle-tips",
|
|
97
|
+
title: "Battle Tips",
|
|
98
|
+
text: "Accel driver gives Valkyrie an aggressive early-game charge — best used in Attack vs. Stamina matchups where a fast KO matters more than late-game endurance.",
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
"product-beyblade-burst-regalia-genesis": {
|
|
103
|
+
specifications: [
|
|
104
|
+
{ name: "Spin Direction", value: "Right (Right-Spin)" },
|
|
105
|
+
{ name: "Type", value: "Attack" },
|
|
106
|
+
{ name: "Weight", value: "32.4", unit: "g" },
|
|
107
|
+
{ name: "Stamina Rating", value: "4", unit: "/10" },
|
|
108
|
+
{ name: "Attack Rating", value: "8", unit: "/10" },
|
|
109
|
+
{ name: "Layer / Disc / Driver", value: "Regalia Genesis / .Zt" },
|
|
110
|
+
],
|
|
111
|
+
customFields: [{ key: "Switch Launcher Compatible", type: "boolean", value: "true" }],
|
|
112
|
+
},
|
|
113
|
+
"product-beyblade-x-wizard-arrow": {
|
|
114
|
+
specifications: [
|
|
115
|
+
{ name: "Spin Direction", value: "Right (Right-Spin)" },
|
|
116
|
+
{ name: "Type", value: "Balance" },
|
|
117
|
+
{ name: "Weight", value: "34.9", unit: "g" },
|
|
118
|
+
{ name: "Stamina Rating", value: "6", unit: "/10" },
|
|
119
|
+
{ name: "Attack Rating", value: "6", unit: "/10" },
|
|
120
|
+
{ name: "Blade / Ratchet / Bit", value: "Wizard / 4-60 / Flat" },
|
|
121
|
+
],
|
|
122
|
+
customFields: [{ key: "Launcher Included", type: "boolean", value: "true" }],
|
|
123
|
+
},
|
|
124
|
+
"product-beyblade-x-knife-shinobi": {
|
|
125
|
+
specifications: [
|
|
126
|
+
{ name: "Spin Direction", value: "Right (Right-Spin)" },
|
|
127
|
+
{ name: "Type", value: "Balance" },
|
|
128
|
+
{ name: "Weight", value: "36.1", unit: "g" },
|
|
129
|
+
{ name: "Stamina Rating", value: "8", unit: "/10" },
|
|
130
|
+
{ name: "Defense Rating", value: "6", unit: "/10" },
|
|
131
|
+
{ name: "Blade / Ratchet / Bit", value: "Knife Shinobi / 3-60 / Glide Flat" },
|
|
132
|
+
],
|
|
133
|
+
customFields: [{ key: "Tournament Legal", type: "boolean", value: "true" }],
|
|
134
|
+
customSections: [
|
|
135
|
+
{
|
|
136
|
+
id: "battle-tips",
|
|
137
|
+
title: "Battle Tips",
|
|
138
|
+
text: "Glide Flat bit gives Knife Shinobi excellent late-game stamina in X-format stadiums with a ring — hold back and let opponents burn attack power first.",
|
|
139
|
+
},
|
|
140
|
+
],
|
|
141
|
+
},
|
|
142
|
+
"product-beyblade-original-dragoon-f-video-demo": {
|
|
143
|
+
specifications: [
|
|
144
|
+
{ name: "Spin Direction", value: "Right (Right-Spin)" },
|
|
145
|
+
{ name: "Type", value: "Attack" },
|
|
146
|
+
{ name: "Weight", value: "30.5", unit: "g" },
|
|
147
|
+
{ name: "Attack Rating", value: "8", unit: "/10" },
|
|
148
|
+
],
|
|
149
|
+
customFields: [{ key: "Launcher Included", type: "boolean", value: "true" }],
|
|
150
|
+
},
|
|
151
|
+
"product-beyblade-x-dran-sword-video-demo": {
|
|
152
|
+
specifications: [
|
|
153
|
+
{ name: "Spin Direction", value: "Right (Right-Spin)" },
|
|
154
|
+
{ name: "Type", value: "Attack" },
|
|
155
|
+
{ name: "Weight", value: "35.7", unit: "g" },
|
|
156
|
+
{ name: "Attack Rating", value: "9", unit: "/10" },
|
|
157
|
+
{ name: "Blade / Ratchet / Bit", value: "Dran Sword / 3-60 / Flat" },
|
|
158
|
+
],
|
|
159
|
+
customFields: [{ key: "Tournament Legal", type: "boolean", value: "true" }],
|
|
160
|
+
},
|
|
161
|
+
};
|
|
22
162
|
function withTokens(p) {
|
|
23
163
|
return {
|
|
24
164
|
tags: [],
|
|
@@ -339,6 +479,7 @@ const _rawProductsStandardSeedData = [
|
|
|
339
479
|
export const productsStandardSeedData = [
|
|
340
480
|
..._rawProductsStandardSeedData.map((p) => withTokens({
|
|
341
481
|
...p,
|
|
482
|
+
...(p.id ? SPEC_OVERRIDES[p.id] : undefined),
|
|
342
483
|
listingType: PRODUCT_FIELDS.LISTING_TYPE_VALUES.STANDARD,
|
|
343
484
|
})),
|
|
344
485
|
];
|
|
@@ -1,10 +1,13 @@
|
|
|
1
1
|
/*
|
|
2
|
-
* WHY:
|
|
3
|
-
*
|
|
4
|
-
*
|
|
2
|
+
* WHY: `listingType: "stickers"` shares ProductPrintMeta (size/material/finish/editionSize)
|
|
3
|
+
* with "art" — both printed-only physical goods. Previously left as an empty stub,
|
|
4
|
+
* but sticker sheets fit the Beyblade theme naturally (see CLAUDE.md seed-data
|
|
5
|
+
* blandness sweep, 2026-08-20 session).
|
|
6
|
+
* WHAT: Exports 5 Beyblade sticker-sheet listings on Beyblade Arena, varying size,
|
|
7
|
+
* material, and finish (including a holographic variant and a die-cut vinyl set).
|
|
5
8
|
*
|
|
6
9
|
* EXPORTS:
|
|
7
|
-
* productsStickersSeedData —
|
|
10
|
+
* productsStickersSeedData — Array of 5 Partial<ProductDocument> with listingType:"stickers"
|
|
8
11
|
*
|
|
9
12
|
* @tag domain:products,stickers
|
|
10
13
|
* @tag layer:seed
|
|
@@ -13,4 +16,174 @@
|
|
|
13
16
|
* @tag consumers:seed/index.ts,seed/runner.ts
|
|
14
17
|
* @tag sideEffects:none
|
|
15
18
|
*/
|
|
16
|
-
|
|
19
|
+
import { PRODUCT_FIELDS } from "../constants/field-names";
|
|
20
|
+
import { buildSearchTokens } from "../utils/search-tokens";
|
|
21
|
+
import { seedExtMedia } from "./_helpers/media";
|
|
22
|
+
export const productsStickersSeedData = [
|
|
23
|
+
{
|
|
24
|
+
id: "stickers-beyblade-original-classic-sheet",
|
|
25
|
+
slug: "stickers-beyblade-original-classic-sheet",
|
|
26
|
+
title: "Beyblade Original Classic — Sticker Sheet",
|
|
27
|
+
description: "A 5x5 cm sticker sheet featuring Dranzer, Driger, Draciel, and Dragoon in classic original-series art style.",
|
|
28
|
+
categorySlugs: ["category-beyblade-original", "category-spinning-tops"],
|
|
29
|
+
categoryNames: ["Beyblade Original", "Spinning Tops"],
|
|
30
|
+
brandSlug: "brand-beyblade",
|
|
31
|
+
brand: "Beyblade",
|
|
32
|
+
price: 149,
|
|
33
|
+
currency: "INR",
|
|
34
|
+
stockQuantity: 100,
|
|
35
|
+
availableQuantity: 100,
|
|
36
|
+
isSold: false,
|
|
37
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/stickers-image-original-classic-1-20260817/900/900"),
|
|
38
|
+
images: [seedExtMedia("https://picsum.photos/seed/stickers-image-original-classic-1-20260817/900/900")],
|
|
39
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
40
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
41
|
+
listingType: "stickers",
|
|
42
|
+
storeId: "store-beyblade-arena",
|
|
43
|
+
storeName: "Beyblade Arena",
|
|
44
|
+
printMeta: { size: "5x5 cm sheet", material: "Vinyl", finish: "Glossy" },
|
|
45
|
+
customFields: [],
|
|
46
|
+
customSections: [],
|
|
47
|
+
featured: false,
|
|
48
|
+
isPromoted: false,
|
|
49
|
+
isOnSale: false,
|
|
50
|
+
tags: ["stickers", "vintage-collectible"],
|
|
51
|
+
createdAt: new Date("2026-08-17"),
|
|
52
|
+
updatedAt: new Date("2026-08-17"),
|
|
53
|
+
searchTokens: buildSearchTokens("Beyblade Original Classic — Sticker Sheet", "5x5 cm sticker sheet featuring Dranzer, Driger, Draciel, and Dragoon.", "Beyblade", "brand-beyblade", ["Beyblade Original", "Spinning Tops"], ["stickers", "vintage-collectible"]),
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
id: "stickers-beyblade-x-holographic-pack",
|
|
57
|
+
slug: "stickers-beyblade-x-holographic-pack",
|
|
58
|
+
title: "Beyblade X Holographic Sticker Pack",
|
|
59
|
+
description: "A holographic-finish sticker pack featuring the current Beyblade X lineup — catches the light with a rainbow shimmer.",
|
|
60
|
+
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
61
|
+
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
62
|
+
brandSlug: "brand-takara-tomy",
|
|
63
|
+
brand: "Takara-Tomy",
|
|
64
|
+
price: 199,
|
|
65
|
+
currency: "INR",
|
|
66
|
+
stockQuantity: 80,
|
|
67
|
+
availableQuantity: 62,
|
|
68
|
+
isSold: false,
|
|
69
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/stickers-image-x-holo-1-20260818/900/900"),
|
|
70
|
+
images: [
|
|
71
|
+
seedExtMedia("https://picsum.photos/seed/stickers-image-x-holo-1-20260818/900/900"),
|
|
72
|
+
seedExtMedia("https://picsum.photos/seed/stickers-image-x-holo-2-20260818/900/900"),
|
|
73
|
+
],
|
|
74
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
75
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
76
|
+
listingType: "stickers",
|
|
77
|
+
storeId: "store-beyblade-arena",
|
|
78
|
+
storeName: "Beyblade Arena",
|
|
79
|
+
printMeta: { size: "8x10 cm sheet", material: "Holographic vinyl", finish: "Holographic" },
|
|
80
|
+
customFields: [],
|
|
81
|
+
customSections: [],
|
|
82
|
+
featured: true,
|
|
83
|
+
isPromoted: false,
|
|
84
|
+
isOnSale: false,
|
|
85
|
+
tags: ["stickers"],
|
|
86
|
+
createdAt: new Date("2026-08-18"),
|
|
87
|
+
updatedAt: new Date("2026-08-19"),
|
|
88
|
+
searchTokens: buildSearchTokens("Beyblade X Holographic Sticker Pack", "Holographic-finish sticker pack featuring the current Beyblade X lineup.", "Takara-Tomy", "brand-takara-tomy", ["Beyblade X", "Spinning Tops"], ["stickers"]),
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
id: "stickers-beyblade-burst-diecut-set",
|
|
92
|
+
slug: "stickers-beyblade-burst-diecut-set",
|
|
93
|
+
title: "Beyblade Burst Die-Cut Sticker Set (6-Pack)",
|
|
94
|
+
description: "Individually die-cut vinyl stickers of 6 fan-favorite Burst tops — no background, clean edges, weatherproof.",
|
|
95
|
+
categorySlugs: ["category-beyblade-burst", "category-spinning-tops"],
|
|
96
|
+
categoryNames: ["Beyblade Burst", "Spinning Tops"],
|
|
97
|
+
brandSlug: "brand-beyblade",
|
|
98
|
+
brand: "Beyblade",
|
|
99
|
+
price: 249,
|
|
100
|
+
currency: "INR",
|
|
101
|
+
stockQuantity: 60,
|
|
102
|
+
availableQuantity: 60,
|
|
103
|
+
isSold: false,
|
|
104
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/stickers-image-burst-diecut-1-20260819/900/900"),
|
|
105
|
+
images: [seedExtMedia("https://picsum.photos/seed/stickers-image-burst-diecut-1-20260819/900/900")],
|
|
106
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
107
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
108
|
+
listingType: "stickers",
|
|
109
|
+
storeId: "store-beyblade-arena",
|
|
110
|
+
storeName: "Beyblade Arena",
|
|
111
|
+
printMeta: { size: "Individually die-cut, ~6x6 cm each", material: "Weatherproof vinyl", finish: "Matte" },
|
|
112
|
+
customFields: [{ key: "Pack Count", type: "number", value: "6" }],
|
|
113
|
+
customSections: [],
|
|
114
|
+
featured: false,
|
|
115
|
+
isPromoted: false,
|
|
116
|
+
isOnSale: false,
|
|
117
|
+
tags: ["stickers"],
|
|
118
|
+
createdAt: new Date("2026-08-19"),
|
|
119
|
+
updatedAt: new Date("2026-08-19"),
|
|
120
|
+
searchTokens: buildSearchTokens("Beyblade Burst Die-Cut Sticker Set (6-Pack)", "Individually die-cut vinyl stickers of 6 fan-favorite Burst tops.", "Beyblade", "brand-beyblade", ["Beyblade Burst", "Spinning Tops"], ["stickers"]),
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
id: "stickers-beyblade-metal-retro-sheet",
|
|
124
|
+
slug: "stickers-beyblade-metal-retro-sheet",
|
|
125
|
+
title: "Metal Fight Retro Sticker Sheet — Limited /500",
|
|
126
|
+
description: "A limited-edition retro-styled sticker sheet celebrating Metal Fight favorites, numbered out of 500.",
|
|
127
|
+
categorySlugs: ["category-beyblade-metal", "category-spinning-tops"],
|
|
128
|
+
categoryNames: ["Beyblade Metal Fight", "Spinning Tops"],
|
|
129
|
+
brandSlug: "brand-takara-tomy",
|
|
130
|
+
brand: "Takara-Tomy",
|
|
131
|
+
price: 179,
|
|
132
|
+
currency: "INR",
|
|
133
|
+
stockQuantity: 500,
|
|
134
|
+
availableQuantity: 214,
|
|
135
|
+
isSold: false,
|
|
136
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/stickers-image-metal-retro-1-20260819/900/900"),
|
|
137
|
+
images: [seedExtMedia("https://picsum.photos/seed/stickers-image-metal-retro-1-20260819/900/900")],
|
|
138
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
139
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
140
|
+
listingType: "stickers",
|
|
141
|
+
storeId: "store-beyblade-arena",
|
|
142
|
+
storeName: "Beyblade Arena",
|
|
143
|
+
printMeta: { size: "6x8 cm sheet", material: "Vinyl", finish: "Matte", editionSize: 500 },
|
|
144
|
+
customFields: [],
|
|
145
|
+
customSections: [],
|
|
146
|
+
featured: false,
|
|
147
|
+
isPromoted: false,
|
|
148
|
+
isOnSale: false,
|
|
149
|
+
tags: ["stickers", "vintage-collectible", "limited-run"],
|
|
150
|
+
createdAt: new Date("2026-08-19"),
|
|
151
|
+
updatedAt: new Date("2026-08-19"),
|
|
152
|
+
searchTokens: buildSearchTokens("Metal Fight Retro Sticker Sheet — Limited /500", "Limited-edition retro-styled sticker sheet, numbered out of 500.", "Takara-Tomy", "brand-takara-tomy", ["Beyblade Metal Fight", "Spinning Tops"], ["stickers", "vintage-collectible", "limited-run"]),
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
id: "stickers-beyblade-x-glow-in-dark",
|
|
156
|
+
slug: "stickers-beyblade-x-glow-in-dark",
|
|
157
|
+
title: "Beyblade X Glow-in-the-Dark Sticker Pack",
|
|
158
|
+
description: "Charge these stickers under light and watch the Beyblade X logos glow in the dark. Great for stadium cases and water bottles.",
|
|
159
|
+
categorySlugs: ["category-beyblade-x", "category-spinning-tops"],
|
|
160
|
+
categoryNames: ["Beyblade X", "Spinning Tops"],
|
|
161
|
+
brandSlug: "brand-takara-tomy",
|
|
162
|
+
brand: "Takara-Tomy",
|
|
163
|
+
price: 229,
|
|
164
|
+
currency: "INR",
|
|
165
|
+
stockQuantity: 45,
|
|
166
|
+
availableQuantity: 45,
|
|
167
|
+
isSold: false,
|
|
168
|
+
mainImage: seedExtMedia("https://picsum.photos/seed/stickers-image-x-glow-1-20260819/900/900"),
|
|
169
|
+
images: [
|
|
170
|
+
seedExtMedia("https://picsum.photos/seed/stickers-image-x-glow-1-20260819/900/900"),
|
|
171
|
+
seedExtMedia("https://picsum.photos/seed/stickers-image-x-glow-2-20260819/900/900"),
|
|
172
|
+
],
|
|
173
|
+
status: PRODUCT_FIELDS.STATUS_VALUES.PUBLISHED,
|
|
174
|
+
condition: PRODUCT_FIELDS.CONDITION_VALUES.NEW,
|
|
175
|
+
listingType: "stickers",
|
|
176
|
+
storeId: "store-beyblade-arena",
|
|
177
|
+
storeName: "Beyblade Arena",
|
|
178
|
+
printMeta: { size: "7x9 cm sheet", material: "Glow-in-the-dark vinyl", finish: "Matte" },
|
|
179
|
+
customFields: [{ key: "Glow Duration", type: "text", value: "~3 hours after charging" }],
|
|
180
|
+
customSections: [],
|
|
181
|
+
featured: true,
|
|
182
|
+
isPromoted: true,
|
|
183
|
+
isOnSale: false,
|
|
184
|
+
tags: ["stickers"],
|
|
185
|
+
createdAt: new Date("2026-08-19"),
|
|
186
|
+
updatedAt: new Date("2026-08-19"),
|
|
187
|
+
searchTokens: buildSearchTokens("Beyblade X Glow-in-the-Dark Sticker Pack", "Charge under light and watch the Beyblade X logos glow in the dark.", "Takara-Tomy", "brand-takara-tomy", ["Beyblade X", "Spinning Tops"], ["stickers"]),
|
|
188
|
+
},
|
|
189
|
+
];
|
|
@@ -12,9 +12,6 @@
|
|
|
12
12
|
* @tag consumers:seed/index.ts,seed/runner.ts
|
|
13
13
|
* @tag sideEffects:none
|
|
14
14
|
*/
|
|
15
|
-
import { getDefaultPhonePrefix, getSeedLocale } from "./seed-market-config";
|
|
16
|
-
const _phonePrefix = getDefaultPhonePrefix();
|
|
17
|
-
const _locale = getSeedLocale();
|
|
18
15
|
import { seedExtMedia } from "./_helpers/media";
|
|
19
16
|
import { ROUTES } from "../next/routing/route-map";
|
|
20
17
|
const NOW = new Date();
|
|
@@ -119,7 +116,7 @@ export const siteSettingsSeedData = {
|
|
|
119
116
|
{ year: "2026", text: "Pre-orders, events, raffles, and a mobile-first redesign — built for the community that showed up, bid, sold, and kept coming back." },
|
|
120
117
|
],
|
|
121
118
|
teamTitle: "Who's Behind LetItRip",
|
|
122
|
-
teamSubtitle: "
|
|
119
|
+
teamSubtitle: "One collector obsessed with the same thing you are — the hunt for the next piece of the collection.",
|
|
123
120
|
teamMembers: [
|
|
124
121
|
{
|
|
125
122
|
name: "Mohasin Chinnapattan",
|
|
@@ -130,22 +127,6 @@ export const siteSettingsSeedData = {
|
|
|
130
127
|
isDeveloper: true,
|
|
131
128
|
githubUrl: "https://github.com/mohasinac",
|
|
132
129
|
},
|
|
133
|
-
{
|
|
134
|
-
name: "Ananya Rao",
|
|
135
|
-
role: "Community & Trust",
|
|
136
|
-
bio: "Keeps the marketplace honest — seller verification, dispute resolution, and the reason LetItRip's escrow system actually works the way it's supposed to. Collects vintage diecast when she isn't reviewing seller applications.",
|
|
137
|
-
photoUrl: seedExtMedia("https://picsum.photos/seed/letitrip-team-ananya-rao-20260819/400/400"),
|
|
138
|
-
isFounder: false,
|
|
139
|
-
isDeveloper: false,
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
name: "Devansh Mehta",
|
|
143
|
-
role: "Seller Success",
|
|
144
|
-
bio: "Helps new stores go from zero listings to their first sale — onboarding, storefront setup, and the occasional 2 a.m. \"why isn't my auction showing up\" message. Runs a Beyblade collection that has outgrown two apartments.",
|
|
145
|
-
photoUrl: seedExtMedia("https://picsum.photos/seed/letitrip-team-devansh-mehta-20260819/400/400"),
|
|
146
|
-
isFounder: false,
|
|
147
|
-
isDeveloper: false,
|
|
148
|
-
},
|
|
149
130
|
],
|
|
150
131
|
ctaTitle: "Ready to Let It Rip?",
|
|
151
132
|
ctaSell: "Start selling in minutes",
|
|
@@ -173,10 +154,10 @@ export const siteSettingsSeedData = {
|
|
|
173
154
|
},
|
|
174
155
|
contact: {
|
|
175
156
|
email: "support@letitrip.in",
|
|
176
|
-
phone:
|
|
177
|
-
address:
|
|
178
|
-
upiVpa: "
|
|
179
|
-
whatsappNumber:
|
|
157
|
+
phone: "+91-8919665811",
|
|
158
|
+
address: "Siddeshwar Peth, Solapur, Maharashtra 413001",
|
|
159
|
+
upiVpa: "mohsin0502@okicici",
|
|
160
|
+
whatsappNumber: "918919665811",
|
|
180
161
|
},
|
|
181
162
|
payment: {
|
|
182
163
|
razorpayEnabled: false,
|
|
@@ -194,10 +175,10 @@ export const siteSettingsSeedData = {
|
|
|
194
175
|
surchargeSellerSharePercent: 50,
|
|
195
176
|
},
|
|
196
177
|
socialLinks: {
|
|
197
|
-
facebook: "
|
|
198
|
-
twitter: "
|
|
199
|
-
instagram: "
|
|
200
|
-
linkedin: "
|
|
178
|
+
facebook: "",
|
|
179
|
+
twitter: "",
|
|
180
|
+
instagram: "",
|
|
181
|
+
linkedin: "",
|
|
201
182
|
},
|
|
202
183
|
emailSettings: {
|
|
203
184
|
fromName: "LetItRip",
|
|
@@ -356,7 +337,7 @@ export const siteSettingsSeedData = {
|
|
|
356
337
|
minOrderValue: 999,
|
|
357
338
|
returnWindow: 7,
|
|
358
339
|
supportEmail: "support@letitrip.in",
|
|
359
|
-
supportPhone:
|
|
340
|
+
supportPhone: "+91-8919665811",
|
|
360
341
|
codDeposit: 0.1,
|
|
361
342
|
},
|
|
362
343
|
},
|
package/dist/server-entry.d.ts
CHANGED
|
@@ -28,6 +28,9 @@ export { PrizeDrawsListingView } from "./features/products/components/PrizeDraws
|
|
|
28
28
|
export { PrizeDrawDetailPageView } from "./features/products/components/PrizeDrawDetailPageView";
|
|
29
29
|
export { ProductDetailPageView } from "./features/products/components/ProductDetailPageView";
|
|
30
30
|
export { ProductsIndexPageView } from "./features/products/components/ProductsIndexPageView";
|
|
31
|
+
export { ClassifiedDetailPageView } from "./features/classified/components/ClassifiedDetailPageView";
|
|
32
|
+
export { DigitalCodeDetailPageView } from "./features/digital-codes/components/DigitalCodeDetailPageView";
|
|
33
|
+
export { LiveItemDetailPageView } from "./features/live/components/LiveItemDetailPageView";
|
|
31
34
|
export { ArtStickersListView } from "./features/products/components/ArtStickersListView";
|
|
32
35
|
export { ReviewsIndexPageView } from "./features/reviews/components/ReviewsIndexPageView";
|
|
33
36
|
export { ReviewDetailPageView } from "./features/reviews/components/ReviewDetailPageView";
|
|
@@ -61,7 +64,7 @@ export { renderFaqOg, renderFaqOgImage, type FaqOgData, } from "./_internal/serv
|
|
|
61
64
|
export { renderScamOg, renderScamOgImage, type ScamOgData, getScammerForDetail, getScammerProfilePageData as getScammerProfilePageDataCached, } from "./_internal/server/features/scams/index";
|
|
62
65
|
export { getSearchResults, searchAction, type SearchQuery, } from "./_internal/server/features/search/index";
|
|
63
66
|
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";
|
|
64
|
-
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";
|
|
67
|
+
export { getGroupedListingForDetail, getGroupedListingWithItems, listGroupedListings, listFeaturedGroupedListings, listSitemapGroupedListings, getGroupsForProduct, getGroupsWithItemsForProduct, GROUPED_LISTINGS_PAGE_SIZE, GROUPED_LISTINGS_FEATURED_LIMIT, GROUPED_LISTINGS_SITEMAP_LIMIT, type GroupedListingWithItems, type ListGroupedListingsParams, type SitemapGroupedListing, } from "./_internal/server/features/grouped/index";
|
|
65
68
|
export { createCheckoutOrderAction, attachPaymentAction, verifyAndPlaceRazorpayOrderAction, previewCheckoutPricing, resolveShippingCost, formatShippingAddress, CHECKOUT_DEFAULT_COMMISSIONS, CHECKOUT_PAYMENT_METHODS, type CreateCheckoutOrderInput, type VerifyAndPlaceRazorpayOrderInput, type CheckoutOrderResult, type CheckoutPaymentMethod, type CheckoutPricingPreviewInput, type CheckoutPricingPreview, } from "./_internal/server/features/checkout/index";
|
|
66
69
|
export { processRefundAction, type ProcessRefundInput, } from "./_internal/server/features/refunds/actions";
|
|
67
70
|
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";
|
package/dist/server-entry.js
CHANGED
|
@@ -33,6 +33,9 @@ export { PrizeDrawsListingView } from "./features/products/components/PrizeDraws
|
|
|
33
33
|
export { PrizeDrawDetailPageView } from "./features/products/components/PrizeDrawDetailPageView";
|
|
34
34
|
export { ProductDetailPageView } from "./features/products/components/ProductDetailPageView";
|
|
35
35
|
export { ProductsIndexPageView } from "./features/products/components/ProductsIndexPageView";
|
|
36
|
+
export { ClassifiedDetailPageView } from "./features/classified/components/ClassifiedDetailPageView";
|
|
37
|
+
export { DigitalCodeDetailPageView } from "./features/digital-codes/components/DigitalCodeDetailPageView";
|
|
38
|
+
export { LiveItemDetailPageView } from "./features/live/components/LiveItemDetailPageView";
|
|
36
39
|
export { ArtStickersListView } from "./features/products/components/ArtStickersListView";
|
|
37
40
|
export { ReviewsIndexPageView } from "./features/reviews/components/ReviewsIndexPageView";
|
|
38
41
|
export { ReviewDetailPageView } from "./features/reviews/components/ReviewDetailPageView";
|
|
@@ -85,7 +88,7 @@ export { getSearchResults, searchAction, } from "./_internal/server/features/sea
|
|
|
85
88
|
// S3: categories data layer
|
|
86
89
|
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";
|
|
87
90
|
// S3: grouped listings data layer
|
|
88
|
-
export { getGroupedListingForDetail, getGroupedListingWithItems, listGroupedListings, listFeaturedGroupedListings, listSitemapGroupedListings, GROUPED_LISTINGS_PAGE_SIZE, GROUPED_LISTINGS_FEATURED_LIMIT, GROUPED_LISTINGS_SITEMAP_LIMIT, } from "./_internal/server/features/grouped/index";
|
|
91
|
+
export { getGroupedListingForDetail, getGroupedListingWithItems, listGroupedListings, listFeaturedGroupedListings, listSitemapGroupedListings, getGroupsForProduct, getGroupsWithItemsForProduct, GROUPED_LISTINGS_PAGE_SIZE, GROUPED_LISTINGS_FEATURED_LIMIT, GROUPED_LISTINGS_SITEMAP_LIMIT, } from "./_internal/server/features/grouped/index";
|
|
89
92
|
// SB-UNI-V — bundles data layer deleted; consumers should query
|
|
90
93
|
// `categoriesRepository.findBySlugAndType(slug, "bundle")` /
|
|
91
94
|
// `.listByType("bundle", opts)` / `.findById(id)` directly.
|
package/dist/server.d.ts
CHANGED
|
@@ -495,8 +495,9 @@ export { fetchGoogleReviews } from "./features/homepage/lib/google-reviews-fetch
|
|
|
495
495
|
export type { GoogleReview, GoogleReviewsResult } from "./features/homepage/lib/google-reviews-fetcher";
|
|
496
496
|
export { GoogleReviewsSection } from "./features/homepage/components/GoogleReviewsSection";
|
|
497
497
|
export type { GoogleReviewsSectionProps } from "./features/homepage/components/GoogleReviewsSection";
|
|
498
|
-
export { getProductForDetail, listSitemapProducts, type SitemapProduct } from "./_internal/server/features/products/index";
|
|
499
|
-
export { getBundleForDetail, listBundleMembers, listFeaturedBundles, resolveBundleMemberIds, resolveBundleOriginalTotal, buildBundleMetadata, renderBundleOg, renderBundleOgImage, addBundleToCartAction, type BundleDataOptions, type BundleMetadataOptions, type BundleOgData, } from "./_internal/server/features/bundles/index";
|
|
498
|
+
export { getProductForDetail, listSitemapProducts, computeRelatedItems, toProductItem, type SitemapProduct, type RelatedItemsResult, } from "./_internal/server/features/products/index";
|
|
499
|
+
export { getBundleForDetail, listBundleMembers, listFeaturedBundles, getRelatedBundles, resolveBundleMemberIds, resolveBundleOriginalTotal, buildBundleMetadata, renderBundleOg, renderBundleOgImage, addBundleToCartAction, type BundleDataOptions, type BundleMetadataOptions, type BundleOgData, } from "./_internal/server/features/bundles/index";
|
|
500
|
+
export { getGroupsForProduct, getGroupsWithItemsForProduct } from "./_internal/server/features/grouped/index";
|
|
500
501
|
export { getAuctionForDetail, getProductFeaturesForAuction } from "./_internal/server/features/auctions/index";
|
|
501
502
|
export { getPreOrderForDetail, getProductFeaturesForPreOrder } from "./_internal/server/features/pre-orders/index";
|
|
502
503
|
export { getStoreForDetail, listStoreProductsInitial, listStoreAuctionsInitial, listStorePreOrdersInitial, listSitemapStores } from "./_internal/server/features/stores/index";
|
|
@@ -548,6 +549,7 @@ export { getItemRequestForDetail, renderItemRequestOg, renderItemRequestOgImage,
|
|
|
548
549
|
export { toClientClassified, type ClassifiedClientShape } from "./_internal/server/features/classified/adapters";
|
|
549
550
|
export { buildClassifiedMetadata, type ClassifiedMetadataOptions } from "./_internal/server/features/classified/metadata";
|
|
550
551
|
export { renderClassifiedOg, renderClassifiedOgImage, renderClassifiedOgFromDoc, type ClassifiedOgData } from "./_internal/server/features/classified/og";
|
|
552
|
+
export { renderCatalogueItemOg, renderCatalogueItemOgImage, type CatalogueItemOgData } from "./_internal/server/features/catalogue/og";
|
|
551
553
|
export { getDigitalCodeForDetail } from "./_internal/server/features/digital-code/data";
|
|
552
554
|
export { toClientDigitalCode, type DigitalCodeClientShape } from "./_internal/server/features/digital-code/adapters";
|
|
553
555
|
export { buildDigitalCodeMetadata, type DigitalCodeMetadataOptions } from "./_internal/server/features/digital-code/metadata";
|
package/dist/server.js
CHANGED
|
@@ -1347,9 +1347,10 @@ export { GoogleReviewsSection } from "./features/homepage/components/GoogleRevie
|
|
|
1347
1347
|
// `@mohasinac/appkit/server` subpath (preferred for SSR route files).
|
|
1348
1348
|
// ---------------------------------------------------------------------------
|
|
1349
1349
|
// Data layers — each wrapped in React.cache for request-scoped dedup
|
|
1350
|
-
export { getProductForDetail, listSitemapProducts } from "./_internal/server/features/products/index";
|
|
1350
|
+
export { getProductForDetail, listSitemapProducts, computeRelatedItems, toProductItem, } from "./_internal/server/features/products/index";
|
|
1351
1351
|
// S-SBUNI-3/4 2026-05-13 — bundle data/metadata/og layer.
|
|
1352
|
-
export { getBundleForDetail, listBundleMembers, listFeaturedBundles, resolveBundleMemberIds, resolveBundleOriginalTotal, buildBundleMetadata, renderBundleOg, renderBundleOgImage, addBundleToCartAction, } from "./_internal/server/features/bundles/index";
|
|
1352
|
+
export { getBundleForDetail, listBundleMembers, listFeaturedBundles, getRelatedBundles, resolveBundleMemberIds, resolveBundleOriginalTotal, buildBundleMetadata, renderBundleOg, renderBundleOgImage, addBundleToCartAction, } from "./_internal/server/features/bundles/index";
|
|
1353
|
+
export { getGroupsForProduct, getGroupsWithItemsForProduct } from "./_internal/server/features/grouped/index";
|
|
1353
1354
|
export { getAuctionForDetail, getProductFeaturesForAuction } from "./_internal/server/features/auctions/index";
|
|
1354
1355
|
export { getPreOrderForDetail, getProductFeaturesForPreOrder } from "./_internal/server/features/pre-orders/index";
|
|
1355
1356
|
export { getStoreForDetail, listStoreProductsInitial, listStoreAuctionsInitial, listStorePreOrdersInitial, listSitemapStores } from "./_internal/server/features/stores/index";
|
|
@@ -1409,6 +1410,7 @@ export { getItemRequestForDetail, renderItemRequestOg, renderItemRequestOgImage,
|
|
|
1409
1410
|
export { toClientClassified } from "./_internal/server/features/classified/adapters";
|
|
1410
1411
|
export { buildClassifiedMetadata } from "./_internal/server/features/classified/metadata";
|
|
1411
1412
|
export { renderClassifiedOg, renderClassifiedOgImage, renderClassifiedOgFromDoc } from "./_internal/server/features/classified/og";
|
|
1413
|
+
export { renderCatalogueItemOg, renderCatalogueItemOgImage } from "./_internal/server/features/catalogue/og";
|
|
1412
1414
|
// ── Digital-code listing — data + adapters + metadata + OG ───────────────────
|
|
1413
1415
|
export { getDigitalCodeForDetail } from "./_internal/server/features/digital-code/data";
|
|
1414
1416
|
export { toClientDigitalCode } from "./_internal/server/features/digital-code/adapters";
|