@hszrdm/core 1.0.3 → 1.2.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/.medusa/server/src/admin/index.js +4375 -2368
- package/.medusa/server/src/admin/index.mjs +4376 -2369
- package/.medusa/server/src/api/admin/ai-translations/apply/route.d.ts +11 -0
- package/.medusa/server/src/api/admin/ai-translations/apply/route.js +102 -0
- package/.medusa/server/src/api/admin/ai-translations/preview/route.d.ts +10 -0
- package/.medusa/server/src/api/admin/ai-translations/preview/route.js +141 -0
- package/.medusa/server/src/api/admin/ai-translations/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/ai-translations/route.js +19 -0
- package/.medusa/server/src/api/admin/cms/entries/[id]/route.d.ts +6 -0
- package/.medusa/server/src/api/admin/cms/entries/[id]/route.js +78 -0
- package/.medusa/server/src/api/admin/cms/entries/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/cms/entries/route.js +77 -0
- package/.medusa/server/src/api/admin/cms/taxonomy/[id]/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/cms/taxonomy/[id]/route.js +50 -0
- package/.medusa/server/src/api/admin/cms/taxonomy/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/cms/taxonomy/route.js +60 -0
- package/.medusa/server/src/api/admin/core/status/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/core/status/route.js +11 -0
- package/.medusa/server/src/api/admin/featured-products/[id]/route.d.ts +7 -0
- package/.medusa/server/src/api/admin/featured-products/[id]/route.js +54 -0
- package/.medusa/server/src/api/admin/leads/[id]/route.d.ts +9 -0
- package/.medusa/server/src/api/admin/leads/[id]/route.js +64 -0
- package/.medusa/server/src/api/admin/leads/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/leads/route.js +26 -0
- package/.medusa/server/src/api/admin/newsletter/subscribers/export/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/newsletter/subscribers/export/route.js +74 -0
- package/.medusa/server/src/api/admin/newsletter/subscribers/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/newsletter/subscribers/route.js +57 -0
- package/.medusa/server/src/api/admin/product-reviews/[id]/route.d.ts +7 -0
- package/.medusa/server/src/api/admin/product-reviews/[id]/route.js +40 -0
- package/.medusa/server/src/api/admin/product-reviews/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/product-reviews/route.js +31 -0
- package/.medusa/server/src/api/admin/quote-requests/[id]/draft-order/route.d.ts +8 -0
- package/.medusa/server/src/api/admin/quote-requests/[id]/draft-order/route.js +160 -0
- package/.medusa/server/src/api/admin/quote-requests/[id]/order/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/quote-requests/[id]/order/route.js +54 -0
- package/.medusa/server/src/api/admin/quote-requests/[id]/route.d.ts +5 -0
- package/.medusa/server/src/api/admin/quote-requests/[id]/route.js +80 -0
- package/.medusa/server/src/api/admin/quote-requests/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/quote-requests/route.js +19 -0
- package/.medusa/server/src/api/middlewares.js +19 -6
- package/.medusa/server/src/api/store/account/wishlist/[productId]/route.d.ts +2 -0
- package/.medusa/server/src/api/store/account/wishlist/[productId]/route.js +18 -0
- package/.medusa/server/src/api/store/account/wishlist/merge/route.d.ts +6 -0
- package/.medusa/server/src/api/store/account/wishlist/merge/route.js +51 -0
- package/.medusa/server/src/api/store/account/wishlist/route.d.ts +7 -0
- package/.medusa/server/src/api/store/account/wishlist/route.js +76 -0
- package/.medusa/server/src/api/store/cms/config/route.d.ts +2 -0
- package/.medusa/server/src/api/store/cms/config/route.js +17 -0
- package/.medusa/server/src/api/store/cms/entries/[slug]/route.d.ts +2 -0
- package/.medusa/server/src/api/store/cms/entries/[slug]/route.js +62 -0
- package/.medusa/server/src/api/store/cms/entries/route.d.ts +2 -0
- package/.medusa/server/src/api/store/cms/entries/route.js +87 -0
- package/.medusa/server/src/api/store/cms/taxonomy/route.d.ts +2 -0
- package/.medusa/server/src/api/store/cms/taxonomy/route.js +44 -0
- package/.medusa/server/src/api/store/core/pricing/variants/[id]/route.d.ts +2 -0
- package/.medusa/server/src/api/store/core/pricing/variants/[id]/route.js +152 -0
- package/.medusa/server/src/api/store/featured-products/route.d.ts +2 -0
- package/.medusa/server/src/api/store/featured-products/route.js +38 -0
- package/.medusa/server/src/api/store/leads/config/route.d.ts +2 -0
- package/.medusa/server/src/api/store/leads/config/route.js +21 -0
- package/.medusa/server/src/api/store/leads/route.d.ts +4 -0
- package/.medusa/server/src/api/store/leads/route.js +176 -0
- package/.medusa/server/src/api/store/newsletter/config/route.d.ts +2 -0
- package/.medusa/server/src/api/store/newsletter/config/route.js +14 -0
- package/.medusa/server/src/api/store/newsletter/confirm/route.d.ts +4 -0
- package/.medusa/server/src/api/store/newsletter/confirm/route.js +52 -0
- package/.medusa/server/src/api/store/newsletter/route.d.ts +4 -0
- package/.medusa/server/src/api/store/newsletter/route.js +172 -0
- package/.medusa/server/src/api/store/newsletter/unsubscribe/route.d.ts +4 -0
- package/.medusa/server/src/api/store/newsletter/unsubscribe/route.js +54 -0
- package/.medusa/server/src/api/store/products/[id]/reviews/route.d.ts +8 -0
- package/.medusa/server/src/api/store/products/[id]/reviews/route.js +174 -0
- package/.medusa/server/src/api/store/quote-requests/config/route.d.ts +2 -0
- package/.medusa/server/src/api/store/quote-requests/config/route.js +13 -0
- package/.medusa/server/src/api/store/quote-requests/route.d.ts +5 -0
- package/.medusa/server/src/api/store/quote-requests/route.js +214 -0
- package/.medusa/server/src/api/store/seo/route.js +42 -10
- package/.medusa/server/src/api/store/seo/structured-data/route.js +3 -2
- package/.medusa/server/src/config.js +7 -1
- package/.medusa/server/src/core/admin-analytics-dashboard.d.ts +1 -0
- package/.medusa/server/src/core/admin-analytics-dashboard.js +15 -3
- package/.medusa/server/src/core/ai-translation.d.ts +26 -0
- package/.medusa/server/src/core/ai-translation.js +173 -0
- package/.medusa/server/src/core/featured-products.d.ts +19 -0
- package/.medusa/server/src/core/featured-products.js +45 -0
- package/.medusa/server/src/core/pricing-tiers.d.ts +25 -0
- package/.medusa/server/src/core/pricing-tiers.js +88 -0
- package/.medusa/server/src/core/release-info.d.ts +10 -0
- package/.medusa/server/src/core/release-info.js +22 -0
- package/.medusa/server/src/core/version.d.ts +4 -4
- package/.medusa/server/src/core/version.js +3 -3
- package/.medusa/server/src/lib/modules/arukereso/config.js +2 -2
- package/.medusa/server/src/lib/modules/google-merchant/config.d.ts +2 -0
- package/.medusa/server/src/lib/modules/google-merchant/config.js +9 -2
- package/.medusa/server/src/lib/modules/google-merchant/feed.d.ts +1 -0
- package/.medusa/server/src/lib/modules/google-merchant/feed.js +4 -2
- package/.medusa/server/src/localized-config.d.ts +9 -0
- package/.medusa/server/src/localized-config.js +14 -0
- package/.medusa/server/src/modules/cms/config.d.ts +11 -0
- package/.medusa/server/src/modules/cms/config.js +65 -0
- package/.medusa/server/src/modules/cms/content-types.d.ts +24 -0
- package/.medusa/server/src/modules/cms/content-types.js +27 -0
- package/.medusa/server/src/modules/cms/index.d.ts +9 -0
- package/.medusa/server/src/modules/cms/index.js +32 -0
- package/.medusa/server/src/modules/cms/migrations/Migration20261029170000.d.ts +5 -0
- package/.medusa/server/src/modules/cms/migrations/Migration20261029170000.js +27 -0
- package/.medusa/server/src/modules/cms/migrations/Migration20261029190000.d.ts +5 -0
- package/.medusa/server/src/modules/cms/migrations/Migration20261029190000.js +52 -0
- package/.medusa/server/src/modules/cms/models/cms.d.ts +67 -0
- package/.medusa/server/src/modules/cms/models/cms.js +64 -0
- package/.medusa/server/src/modules/cms/service.d.ts +82 -0
- package/.medusa/server/src/modules/cms/service.js +9 -0
- package/.medusa/server/src/modules/cms/utils.d.ts +67 -0
- package/.medusa/server/src/modules/cms/utils.js +190 -0
- package/.medusa/server/src/modules/integration-settings/arukereso-registration.js +2 -2
- package/.medusa/server/src/modules/integration-settings/google-merchant-registration.js +6 -2
- package/.medusa/server/src/modules/lead/config.d.ts +37 -0
- package/.medusa/server/src/modules/lead/config.js +147 -0
- package/.medusa/server/src/modules/lead/email.d.ts +17 -0
- package/.medusa/server/src/modules/lead/email.js +68 -0
- package/.medusa/server/src/modules/lead/index.d.ts +9 -0
- package/.medusa/server/src/modules/lead/index.js +27 -0
- package/.medusa/server/src/modules/lead/migrations/Migration20261029163000.d.ts +5 -0
- package/.medusa/server/src/modules/lead/migrations/Migration20261029163000.js +19 -0
- package/.medusa/server/src/modules/lead/models/lead.d.ts +26 -0
- package/.medusa/server/src/modules/lead/models/lead.js +53 -0
- package/.medusa/server/src/modules/lead/service.d.ts +29 -0
- package/.medusa/server/src/modules/lead/service.js +11 -0
- package/.medusa/server/src/modules/lead/spam.d.ts +24 -0
- package/.medusa/server/src/modules/lead/spam.js +114 -0
- package/.medusa/server/src/modules/newsletter/config.d.ts +14 -0
- package/.medusa/server/src/modules/newsletter/config.js +51 -0
- package/.medusa/server/src/modules/newsletter/email.d.ts +9 -0
- package/.medusa/server/src/modules/newsletter/email.js +38 -0
- package/.medusa/server/src/modules/newsletter/events.d.ts +10 -0
- package/.medusa/server/src/modules/newsletter/events.js +34 -0
- package/.medusa/server/src/modules/newsletter/index.d.ts +10 -0
- package/.medusa/server/src/modules/newsletter/index.js +33 -0
- package/.medusa/server/src/modules/newsletter/migrations/Migration20261030130000.d.ts +5 -0
- package/.medusa/server/src/modules/newsletter/migrations/Migration20261030130000.js +18 -0
- package/.medusa/server/src/modules/newsletter/models/newsletter-subscriber.d.ts +21 -0
- package/.medusa/server/src/modules/newsletter/models/newsletter-subscriber.js +35 -0
- package/.medusa/server/src/modules/newsletter/service.d.ts +24 -0
- package/.medusa/server/src/modules/newsletter/service.js +11 -0
- package/.medusa/server/src/modules/newsletter/token.d.ts +10 -0
- package/.medusa/server/src/modules/newsletter/token.js +97 -0
- package/.medusa/server/src/modules/product-review/config.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/config.js +10 -0
- package/.medusa/server/src/modules/product-review/index.d.ts +7 -0
- package/.medusa/server/src/modules/product-review/index.js +18 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261030160100.d.ts +5 -0
- package/.medusa/server/src/modules/product-review/migrations/Migration20261030160100.js +18 -0
- package/.medusa/server/src/modules/product-review/models/product-review.d.ts +16 -0
- package/.medusa/server/src/modules/product-review/models/product-review.js +26 -0
- package/.medusa/server/src/modules/product-review/service.d.ts +25 -0
- package/.medusa/server/src/modules/product-review/service.js +12 -0
- package/.medusa/server/src/modules/quote-request/config.d.ts +14 -0
- package/.medusa/server/src/modules/quote-request/config.js +52 -0
- package/.medusa/server/src/modules/quote-request/email.d.ts +17 -0
- package/.medusa/server/src/modules/quote-request/email.js +133 -0
- package/.medusa/server/src/modules/quote-request/index.d.ts +8 -0
- package/.medusa/server/src/modules/quote-request/index.js +23 -0
- package/.medusa/server/src/modules/quote-request/migrations/Migration20261029160000.d.ts +5 -0
- package/.medusa/server/src/modules/quote-request/migrations/Migration20261029160000.js +20 -0
- package/.medusa/server/src/modules/quote-request/models/quote-request.d.ts +24 -0
- package/.medusa/server/src/modules/quote-request/models/quote-request.js +54 -0
- package/.medusa/server/src/modules/quote-request/service.d.ts +32 -0
- package/.medusa/server/src/modules/quote-request/service.js +12 -0
- package/.medusa/server/src/modules/seo/models/seo-page.js +5 -5
- package/.medusa/server/src/modules/seo/sitemap.js +44 -10
- package/.medusa/server/src/modules/seo/structured-data.d.ts +1 -1
- package/.medusa/server/src/modules/seo/structured-data.js +41 -25
- package/.medusa/server/src/modules/seo/technical.d.ts +7 -2
- package/.medusa/server/src/modules/seo/technical.js +45 -6
- package/.medusa/server/src/modules/seo/types.d.ts +2 -0
- package/.medusa/server/src/modules/wishlist/index.d.ts +5 -0
- package/.medusa/server/src/modules/wishlist/index.js +14 -0
- package/.medusa/server/src/modules/wishlist/migrations/Migration20261030160000.d.ts +5 -0
- package/.medusa/server/src/modules/wishlist/migrations/Migration20261030160000.js +17 -0
- package/.medusa/server/src/modules/wishlist/models/wishlist-item.d.ts +6 -0
- package/.medusa/server/src/modules/wishlist/models/wishlist-item.js +14 -0
- package/.medusa/server/src/modules/wishlist/service.d.ts +15 -0
- package/.medusa/server/src/modules/wishlist/service.js +12 -0
- package/.medusa/server/src/scripts/ensure-locales.d.ts +2 -0
- package/.medusa/server/src/scripts/ensure-locales.js +34 -0
- package/.medusa/server/src/scripts/ensure-shipping.d.ts +3 -0
- package/.medusa/server/src/scripts/ensure-shipping.js +211 -0
- package/.medusa/server/src/scripts/verify-bootstrap.js +19 -2
- package/.medusa/server/src/subscribers/quote-request-order-placed.d.ts +7 -0
- package/.medusa/server/src/subscribers/quote-request-order-placed.js +27 -0
- package/package.json +3 -2
|
@@ -3,6 +3,10 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.getSeoTechnicalConfig = getSeoTechnicalConfig;
|
|
4
4
|
exports.buildProductPath = buildProductPath;
|
|
5
5
|
exports.buildCategoryPath = buildCategoryPath;
|
|
6
|
+
exports.normalizeSeoLocale = normalizeSeoLocale;
|
|
7
|
+
exports.medusaLocaleForSeo = medusaLocaleForSeo;
|
|
8
|
+
exports.productsSegment = productsSegment;
|
|
9
|
+
exports.categoriesSegment = categoriesSegment;
|
|
6
10
|
exports.buildCanonicalUrl = buildCanonicalUrl;
|
|
7
11
|
exports.buildSeoHeadContract = buildSeoHeadContract;
|
|
8
12
|
exports.buildRobotsTxt = buildRobotsTxt;
|
|
@@ -16,7 +20,9 @@ function getSeoTechnicalConfig() {
|
|
|
16
20
|
const storeName = cleanText(process.env.SEO_STORE_NAME || process.env.STORE_NAME || "Store") || "Store";
|
|
17
21
|
const organizationName = cleanText(process.env.SEO_ORGANIZATION_NAME || storeName) || storeName;
|
|
18
22
|
const organizationLogoUrl = absoluteOptionalUrl(process.env.SEO_ORGANIZATION_LOGO_URL, storefrontUrl);
|
|
19
|
-
const defaultCountryCode = cleanText(process.env.SEO_DEFAULT_COUNTRY || process.env.STORE_DEFAULT_COUNTRY || "
|
|
23
|
+
const defaultCountryCode = cleanText(process.env.SEO_DEFAULT_COUNTRY || process.env.STORE_DEFAULT_COUNTRY || "HU").toLowerCase();
|
|
24
|
+
const defaultLocale = normalizeSeoLocale(process.env.SEO_DEFAULT_LOCALE || process.env.STORE_LOCALE || "hu-HU");
|
|
25
|
+
const supportedLocales = parseSupportedLocales(process.env.SEO_SUPPORTED_LOCALES || "hu,en", defaultLocale);
|
|
20
26
|
const configuredDisallow = String(process.env.SEO_ROBOTS_DISALLOW || "")
|
|
21
27
|
.split(",")
|
|
22
28
|
.map((value) => normalizePublicPath(value))
|
|
@@ -27,10 +33,12 @@ function getSeoTechnicalConfig() {
|
|
|
27
33
|
organizationName,
|
|
28
34
|
organizationLogoUrl,
|
|
29
35
|
productPathTemplate: cleanText(process.env.SEO_PRODUCT_PATH_TEMPLATE) ||
|
|
30
|
-
"/{
|
|
36
|
+
"/{locale}/{products_segment}/{handle}",
|
|
31
37
|
categoryPathTemplate: cleanText(process.env.SEO_CATEGORY_PATH_TEMPLATE) ||
|
|
32
|
-
"/{
|
|
38
|
+
"/{locale}/{categories_segment}/{handle}",
|
|
33
39
|
defaultCountryCode,
|
|
40
|
+
defaultLocale,
|
|
41
|
+
supportedLocales,
|
|
34
42
|
allowIndexing: envBoolean(process.env.SEO_ALLOW_INDEXING, process.env.NODE_ENV === "production"),
|
|
35
43
|
robotsDisallow: unique([
|
|
36
44
|
"/app",
|
|
@@ -38,22 +46,45 @@ function getSeoTechnicalConfig() {
|
|
|
38
46
|
"/account",
|
|
39
47
|
"/cart",
|
|
40
48
|
"/checkout",
|
|
49
|
+
"/hu/fiokom",
|
|
50
|
+
"/hu/kosar",
|
|
51
|
+
"/hu/penztar",
|
|
52
|
+
"/en/account",
|
|
53
|
+
"/en/cart",
|
|
54
|
+
"/en/checkout",
|
|
41
55
|
...configuredDisallow,
|
|
42
56
|
]),
|
|
43
57
|
};
|
|
44
58
|
}
|
|
45
|
-
function buildProductPath(handle, config = getSeoTechnicalConfig()) {
|
|
59
|
+
function buildProductPath(handle, config = getSeoTechnicalConfig(), locale = config.defaultLocale) {
|
|
46
60
|
return renderPathTemplate(config.productPathTemplate, {
|
|
47
61
|
handle,
|
|
62
|
+
locale,
|
|
48
63
|
country_code: config.defaultCountryCode,
|
|
64
|
+
products_segment: productsSegment(locale),
|
|
49
65
|
});
|
|
50
66
|
}
|
|
51
|
-
function buildCategoryPath(handle, config = getSeoTechnicalConfig()) {
|
|
67
|
+
function buildCategoryPath(handle, config = getSeoTechnicalConfig(), locale = config.defaultLocale) {
|
|
52
68
|
return renderPathTemplate(config.categoryPathTemplate, {
|
|
53
69
|
handle,
|
|
70
|
+
locale,
|
|
54
71
|
country_code: config.defaultCountryCode,
|
|
72
|
+
categories_segment: categoriesSegment(locale),
|
|
55
73
|
});
|
|
56
74
|
}
|
|
75
|
+
function normalizeSeoLocale(value) {
|
|
76
|
+
const normalized = String(value || "").trim().toLowerCase();
|
|
77
|
+
return normalized === "en" || normalized.startsWith("en-") ? "en" : "hu";
|
|
78
|
+
}
|
|
79
|
+
function medusaLocaleForSeo(locale) {
|
|
80
|
+
return locale === "en" ? "en-US" : "hu-HU";
|
|
81
|
+
}
|
|
82
|
+
function productsSegment(locale) {
|
|
83
|
+
return locale === "hu" ? "termekek" : "products";
|
|
84
|
+
}
|
|
85
|
+
function categoriesSegment(locale) {
|
|
86
|
+
return locale === "hu" ? "kategoriak" : "categories";
|
|
87
|
+
}
|
|
57
88
|
function buildCanonicalUrl(path, explicitCanonical, config = getSeoTechnicalConfig()) {
|
|
58
89
|
if (explicitCanonical)
|
|
59
90
|
return explicitCanonical;
|
|
@@ -177,6 +208,14 @@ function renderPathTemplate(template, values) {
|
|
|
177
208
|
}
|
|
178
209
|
return normalizePublicPath(path);
|
|
179
210
|
}
|
|
211
|
+
function parseSupportedLocales(value, fallback) {
|
|
212
|
+
const locales = value
|
|
213
|
+
.split(",")
|
|
214
|
+
.map((item) => item.trim())
|
|
215
|
+
.filter(Boolean)
|
|
216
|
+
.map(normalizeSeoLocale);
|
|
217
|
+
return Array.from(new Set([fallback, ...locales]));
|
|
218
|
+
}
|
|
180
219
|
function cleanBaseUrl(value) {
|
|
181
220
|
const raw = String(value || "").trim();
|
|
182
221
|
if (!raw)
|
|
@@ -221,4 +260,4 @@ function envBoolean(value, fallback) {
|
|
|
221
260
|
function unique(values) {
|
|
222
261
|
return Array.from(new Set(values.filter(Boolean)));
|
|
223
262
|
}
|
|
224
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaG5pY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvc2VvL3RlY2huaWNhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUVBLHNEQWdEQztBQUVELDRDQVFDO0FBRUQsOENBUUM7QUFFRCw4Q0FRQztBQUVELG9EQXVCQztBQUVELHdDQWlCQztBQUVELGtFQVFDO0FBRUQsMERBZUM7QUFFRCxzREE0QkM7QUFFRCxrREFXQztBQUVELDhCQU9DO0FBek1ELFNBQWdCLHFCQUFxQjtJQUNuQyxNQUFNLGFBQWEsR0FBRyxZQUFZLENBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMsa0JBQWtCLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksRUFBRSxDQUNuRSxDQUFBO0lBQ0QsTUFBTSxTQUFTLEdBQUcsU0FBUyxDQUN6QixPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxPQUFPLENBQ2hFLElBQUksT0FBTyxDQUFBO0lBQ1osTUFBTSxnQkFBZ0IsR0FBRyxTQUFTLENBQ2hDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLElBQUksU0FBUyxDQUMvQyxJQUFJLFNBQVMsQ0FBQTtJQUNkLE1BQU0sbUJBQW1CLEdBQUcsbUJBQW1CLENBQzdDLE9BQU8sQ0FBQyxHQUFHLENBQUMseUJBQXlCLEVBQ3JDLGFBQWEsQ0FDZCxDQUFBO0lBQ0QsTUFBTSxrQkFBa0IsR0FBRyxTQUFTLENBQ2xDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsSUFBSSxJQUFJLENBQzdFLENBQUMsV0FBVyxFQUFFLENBQUE7SUFFZixNQUFNLGtCQUFrQixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQixJQUFJLEVBQUUsQ0FBQztTQUNyRSxLQUFLLENBQUMsR0FB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
|
|
263
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaG5pY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvc2VvL3RlY2huaWNhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHNEQStEQztBQUVELDRDQVdDO0FBRUQsOENBV0M7QUFFRCxnREFHQztBQUVELGdEQUVDO0FBRUQsMENBRUM7QUFFRCw4Q0FFQztBQUVELDhDQVFDO0FBRUQsb0RBdUJDO0FBRUQsd0NBaUJDO0FBRUQsa0VBUUM7QUFFRCwwREFlQztBQUVELHNEQTRCQztBQUVELGtEQVdDO0FBRUQsOEJBT0M7QUEvT0QsU0FBZ0IscUJBQXFCO0lBQ25DLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQ25FLENBQUE7SUFDRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FDaEUsSUFBSSxPQUFPLENBQUE7SUFDWixNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsSUFBSSxTQUFTLENBQy9DLElBQUksU0FBUyxDQUFBO0lBQ2QsTUFBTSxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFDckMsYUFBYSxDQUNkLENBQUE7SUFDRCxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FDN0UsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNmLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUN0QyxPQUFPLENBQUMsR0FBRyxD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
|
|
@@ -80,6 +80,8 @@ export type SeoTechnicalConfig = {
|
|
|
80
80
|
productPathTemplate: string;
|
|
81
81
|
categoryPathTemplate: string;
|
|
82
82
|
defaultCountryCode: string;
|
|
83
|
+
defaultLocale: "hu" | "en";
|
|
84
|
+
supportedLocales: Array<"hu" | "en">;
|
|
83
85
|
allowIndexing: boolean;
|
|
84
86
|
robotsDisallow: string[];
|
|
85
87
|
};
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.WishlistService = exports.WISHLIST_MODULE = void 0;
|
|
7
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
8
|
+
const service_1 = __importDefault(require("./service"));
|
|
9
|
+
exports.WishlistService = service_1.default;
|
|
10
|
+
exports.WISHLIST_MODULE = "wishlist";
|
|
11
|
+
exports.default = (0, utils_1.Module)(exports.WISHLIST_MODULE, {
|
|
12
|
+
service: service_1.default,
|
|
13
|
+
});
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy93aXNobGlzdC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxxREFBa0Q7QUFDbEQsd0RBQXVDO0FBUTlCLDBCQVJGLGlCQUFlLENBUUU7QUFOWCxRQUFBLGVBQWUsR0FBRyxVQUFVLENBQUE7QUFFekMsa0JBQWUsSUFBQSxjQUFNLEVBQUMsdUJBQWUsRUFBRTtJQUNyQyxPQUFPLEVBQUUsaUJBQWU7Q0FDekIsQ0FBQyxDQUFBIn0=
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.Migration20261030160000 = void 0;
|
|
4
|
+
const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
|
|
5
|
+
class Migration20261030160000 extends migrations_1.Migration {
|
|
6
|
+
async up() {
|
|
7
|
+
this.addSql(`create table if not exists "wishlist_item" ("id" text not null, "customer_id" text not null, "product_id" text not null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "wishlist_item_pkey" primary key ("id"));`);
|
|
8
|
+
this.addSql(`create unique index if not exists "IDX_wishlist_customer_product" on "wishlist_item" ("customer_id", "product_id") where deleted_at is null;`);
|
|
9
|
+
this.addSql(`create index if not exists "IDX_wishlist_customer_created" on "wishlist_item" ("customer_id", "created_at") where deleted_at is null;`);
|
|
10
|
+
this.addSql(`create index if not exists "IDX_wishlist_product" on "wishlist_item" ("product_id") where deleted_at is null;`);
|
|
11
|
+
}
|
|
12
|
+
async down() {
|
|
13
|
+
this.addSql(`drop table if exists "wishlist_item" cascade;`);
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
exports.Migration20261030160000 = Migration20261030160000;
|
|
17
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjEwMzAxNjAwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy93aXNobGlzdC9taWdyYXRpb25zL01pZ3JhdGlvbjIwMjYxMDMwMTYwMDAwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlFQUFvRTtBQUVwRSxNQUFhLHVCQUF3QixTQUFRLHNCQUFTO0lBQ3BELEtBQUssQ0FBQyxFQUFFO1FBQ04sSUFBSSxDQUFDLE1BQU0sQ0FBQyxnVEFBZ1QsQ0FBQyxDQUFBO1FBQzdULElBQUksQ0FBQyxNQUFNLENBQUMsOElBQThJLENBQUMsQ0FBQTtRQUMzSixJQUFJLENBQUMsTUFBTSxDQUFDLHVJQUF1SSxDQUFDLENBQUE7UUFDcEosSUFBSSxDQUFDLE1BQU0sQ0FBQywrR0FBK0csQ0FBQyxDQUFBO0lBQzlILENBQUM7SUFFRCxLQUFLLENBQUMsSUFBSTtRQUNSLElBQUksQ0FBQyxNQUFNLENBQUMsK0NBQStDLENBQUMsQ0FBQTtJQUM5RCxDQUFDO0NBQ0Y7QUFYRCwwREFXQyJ9
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
declare const WishlistItem: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
2
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
3
|
+
customer_id: import("@medusajs/framework/utils").TextProperty;
|
|
4
|
+
product_id: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
}>, "wishlist_item">;
|
|
6
|
+
export default WishlistItem;
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
4
|
+
const WishlistItem = utils_1.model.define("wishlist_item", {
|
|
5
|
+
id: utils_1.model.id().primaryKey(),
|
|
6
|
+
customer_id: utils_1.model.text(),
|
|
7
|
+
product_id: utils_1.model.text(),
|
|
8
|
+
}).indexes([
|
|
9
|
+
{ on: ["customer_id", "product_id"], unique: true },
|
|
10
|
+
{ on: ["customer_id", "created_at"] },
|
|
11
|
+
{ on: ["product_id"] },
|
|
12
|
+
]);
|
|
13
|
+
exports.default = WishlistItem;
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid2lzaGxpc3QtaXRlbS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3dpc2hsaXN0L21vZGVscy93aXNobGlzdC1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEscURBQWlEO0FBRWpELE1BQU0sWUFBWSxHQUFHLGFBQUssQ0FBQyxNQUFNLENBQUMsZUFBZSxFQUFFO0lBQ2pELEVBQUUsRUFBRSxhQUFLLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxFQUFFO0lBQzNCLFdBQVcsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0lBQ3pCLFVBQVUsRUFBRSxhQUFLLENBQUMsSUFBSSxFQUFFO0NBQ3pCLENBQUMsQ0FBQyxPQUFPLENBQUM7SUFDVCxFQUFFLEVBQUUsRUFBRSxDQUFDLGFBQWEsRUFBRSxZQUFZLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO0lBQ25ELEVBQUUsRUFBRSxFQUFFLENBQUMsYUFBYSxFQUFFLFlBQVksQ0FBQyxFQUFFO0lBQ3JDLEVBQUUsRUFBRSxFQUFFLENBQUMsWUFBWSxDQUFDLEVBQUU7Q0FDdkIsQ0FBQyxDQUFBO0FBRUYsa0JBQWUsWUFBWSxDQUFBIn0=
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
declare const WishlistBaseService: import("@medusajs/framework/utils").MedusaServiceReturnType<import("@medusajs/framework/utils").ModelConfigurationsToConfigTemplate<{
|
|
2
|
+
readonly WishlistItem: import("@medusajs/framework/utils").DmlEntity<import("@medusajs/framework/utils").DMLEntitySchemaBuilder<{
|
|
3
|
+
id: import("@medusajs/framework/utils").PrimaryKeyModifier<string, import("@medusajs/framework/utils").IdProperty>;
|
|
4
|
+
customer_id: import("@medusajs/framework/utils").TextProperty;
|
|
5
|
+
product_id: import("@medusajs/framework/utils").TextProperty;
|
|
6
|
+
}>, "wishlist_item">;
|
|
7
|
+
}>>;
|
|
8
|
+
type WishlistBaseServiceInstance = InstanceType<typeof WishlistBaseService>;
|
|
9
|
+
export default class WishlistService extends WishlistBaseService {
|
|
10
|
+
createWishlistItems: WishlistBaseServiceInstance["createWishlistItems"];
|
|
11
|
+
deleteWishlistItems: WishlistBaseServiceInstance["deleteWishlistItems"];
|
|
12
|
+
listWishlistItems: WishlistBaseServiceInstance["listWishlistItems"];
|
|
13
|
+
listAndCountWishlistItems: WishlistBaseServiceInstance["listAndCountWishlistItems"];
|
|
14
|
+
}
|
|
15
|
+
export {};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
7
|
+
const wishlist_item_1 = __importDefault(require("./models/wishlist-item"));
|
|
8
|
+
const WishlistBaseService = (0, utils_1.MedusaService)({ WishlistItem: wishlist_item_1.default });
|
|
9
|
+
class WishlistService extends WishlistBaseService {
|
|
10
|
+
}
|
|
11
|
+
exports.default = WishlistService;
|
|
12
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL3dpc2hsaXN0L3NlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxxREFBeUQ7QUFDekQsMkVBQWlEO0FBRWpELE1BQU0sbUJBQW1CLEdBQUcsSUFBQSxxQkFBYSxFQUFDLEVBQUUsWUFBWSxFQUFaLHVCQUFZLEVBQUUsQ0FBQyxDQUFBO0FBRzNELE1BQXFCLGVBQWdCLFNBQVEsbUJBQW1CO0NBSy9EO0FBTEQsa0NBS0MifQ==
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.default = ensureLocales;
|
|
4
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
5
|
+
const DEFAULT_LOCALES = ["hu-HU", "en-US"];
|
|
6
|
+
async function ensureLocales({ container }) {
|
|
7
|
+
const storeService = container.resolve(utils_1.Modules.STORE);
|
|
8
|
+
const stores = await storeService.listStores({}, { relations: ["supported_locales"], take: 50 });
|
|
9
|
+
if (!stores.length) {
|
|
10
|
+
throw new Error("Locale bootstrap failed: Medusa Store is missing");
|
|
11
|
+
}
|
|
12
|
+
const store = stores.find((item) => item.name === process.env.STORE_NAME) || stores[0];
|
|
13
|
+
const configured = String(process.env.STORE_SUPPORTED_LOCALES || "")
|
|
14
|
+
.split(",")
|
|
15
|
+
.map((value) => value.trim())
|
|
16
|
+
.filter(Boolean);
|
|
17
|
+
const desired = configured.length ? configured : DEFAULT_LOCALES;
|
|
18
|
+
const current = Array.isArray(store.supported_locales)
|
|
19
|
+
? store.supported_locales
|
|
20
|
+
.map((item) => String(item?.locale_code || "").trim())
|
|
21
|
+
.filter(Boolean)
|
|
22
|
+
: [];
|
|
23
|
+
const locales = Array.from(new Set([...current, ...desired]));
|
|
24
|
+
if (locales.length === current.length &&
|
|
25
|
+
locales.every((locale) => current.includes(locale))) {
|
|
26
|
+
console.log(`✅ Store locales already configured: ${locales.join(", ")}`);
|
|
27
|
+
return;
|
|
28
|
+
}
|
|
29
|
+
await storeService.updateStores(store.id, {
|
|
30
|
+
supported_locales: locales.map((locale_code) => ({ locale_code })),
|
|
31
|
+
});
|
|
32
|
+
console.log(`✅ Store locales configured: ${locales.join(", ")}`);
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLWxvY2FsZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvc2NyaXB0cy9lbnN1cmUtbG9jYWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUtBLGdDQXNDQztBQTFDRCxxREFBbUQ7QUFFbkQsTUFBTSxlQUFlLEdBQUcsQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUE7QUFFM0IsS0FBSyxVQUFVLGFBQWEsQ0FBQyxFQUFFLFNBQVMsRUFBWTtJQUNqRSxNQUFNLFlBQVksR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxLQUFLLENBQVEsQ0FBQTtJQUM1RCxNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksQ0FBQyxVQUFVLENBQzFDLEVBQUUsRUFDRixFQUFFLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUMvQyxDQUFBO0lBRUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNuQixNQUFNLElBQUksS0FBSyxDQUFDLGtEQUFrRCxDQUFDLENBQUE7SUFDckUsQ0FBQztJQUVELE1BQU0sS0FBSyxHQUNULE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEtBQUssT0FBTyxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsSUFBSSxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFDL0UsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsdUJBQXVCLElBQUksRUFBRSxDQUFDO1NBQ2pFLEtBQUssQ0FBQyxHQUFHLENBQUM7U0FDVixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUM1QixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUE7SUFDbEIsTUFBTSxPQUFPLEdBQUcsVUFBVSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUE7SUFDaEUsTUFBTSxPQUFPLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLENBQUM7UUFDcEQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxpQkFBaUI7YUFDcEIsR0FBRyxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLFdBQVcsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMxRCxNQUFNLENBQUMsT0FBTyxDQUFDO1FBQ3BCLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDTixNQUFNLE9BQU8sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsR0FBRyxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7SUFFN0QsSUFDRSxPQUFPLENBQUMsTUFBTSxLQUFLLE9BQU8sQ0FBQyxNQUFNO1FBQ2pDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsRUFDbkQsQ0FBQztRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsdUNBQXVDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO1FBQ3hFLE9BQU07SUFDUixDQUFDO0lBRUQsTUFBTSxZQUFZLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxFQUFFLEVBQUU7UUFDeEMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFLENBQUMsQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7S0FDbkUsQ0FBQyxDQUFBO0lBRUYsT0FBTyxDQUFDLEdBQUcsQ0FBQywrQkFBK0IsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUE7QUFDbEUsQ0FBQyJ9
|
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ensureShipping = ensureShipping;
|
|
4
|
+
exports.default = run;
|
|
5
|
+
const utils_1 = require("@medusajs/framework/utils");
|
|
6
|
+
const core_flows_1 = require("@medusajs/medusa/core-flows");
|
|
7
|
+
const CARRIER_IDS = ["foxpost", "gls", "packeta", "dpd", "mpl"];
|
|
8
|
+
async function ensureShipping({ container }) {
|
|
9
|
+
const storeService = container.resolve(utils_1.Modules.STORE);
|
|
10
|
+
const regionService = container.resolve(utils_1.Modules.REGION);
|
|
11
|
+
const fulfillmentService = container.resolve(utils_1.Modules.FULFILLMENT);
|
|
12
|
+
const link = container.resolve(utils_1.ContainerRegistrationKeys.LINK);
|
|
13
|
+
const stores = await storeService.listStores({}, { take: 50 });
|
|
14
|
+
const store = stores.find((item) => item.name === process.env.STORE_NAME) || stores[0];
|
|
15
|
+
if (!store)
|
|
16
|
+
throw new Error("Shipping bootstrap: nincs Store.");
|
|
17
|
+
const stockLocationId = clean(store.default_location_id);
|
|
18
|
+
const regionId = clean(store.default_region_id);
|
|
19
|
+
if (!stockLocationId)
|
|
20
|
+
throw new Error("Shipping bootstrap: hiányzik a default stock location.");
|
|
21
|
+
if (!regionId)
|
|
22
|
+
throw new Error("Shipping bootstrap: hiányzik a default region.");
|
|
23
|
+
const region = await regionService.retrieveRegion(regionId, { relations: ["countries"] });
|
|
24
|
+
const countryCode = clean(process.env.STORE_DEFAULT_COUNTRY || region.countries?.[0]?.iso_2 || "hu").toLowerCase();
|
|
25
|
+
const zoneName = countryCode === "hu" ? "Magyarország" : countryCode.toUpperCase();
|
|
26
|
+
const setName = `${clean(store.name) || "HSZRDM"} ${zoneName} szállítás`;
|
|
27
|
+
const profiles = await fulfillmentService.listShippingProfiles({}, { take: 100 });
|
|
28
|
+
const shippingProfile = profiles.find((item) => item.type === "default") || profiles[0];
|
|
29
|
+
if (!shippingProfile)
|
|
30
|
+
throw new Error("Shipping bootstrap: nincs shipping profile.");
|
|
31
|
+
let fulfillmentSet = (await fulfillmentService.listFulfillmentSets({ name: setName }, { take: 20, relations: ["service_zones", "service_zones.geo_zones"] }))[0];
|
|
32
|
+
if (!fulfillmentSet) {
|
|
33
|
+
const created = await fulfillmentService.createFulfillmentSets({
|
|
34
|
+
name: setName,
|
|
35
|
+
type: "shipping",
|
|
36
|
+
service_zones: [
|
|
37
|
+
{
|
|
38
|
+
name: zoneName,
|
|
39
|
+
geo_zones: [{ type: "country", country_code: countryCode }],
|
|
40
|
+
},
|
|
41
|
+
],
|
|
42
|
+
});
|
|
43
|
+
fulfillmentSet = await fulfillmentService.retrieveFulfillmentSet(created.id, {
|
|
44
|
+
relations: ["service_zones", "service_zones.geo_zones"],
|
|
45
|
+
});
|
|
46
|
+
console.log(`✅ Fulfillment set létrehozva: ${fulfillmentSet.id}`);
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
console.log(`ℹ️ Fulfillment set már létezik: ${fulfillmentSet.id}`);
|
|
50
|
+
}
|
|
51
|
+
const serviceZone = fulfillmentSet.service_zones?.find((zone) => zone.name === zoneName)
|
|
52
|
+
|| fulfillmentSet.service_zones?.[0];
|
|
53
|
+
if (!serviceZone?.id)
|
|
54
|
+
throw new Error("Shipping bootstrap: nincs service zone.");
|
|
55
|
+
await safeLink(() => link.create({
|
|
56
|
+
[utils_1.Modules.STOCK_LOCATION]: { stock_location_id: stockLocationId },
|
|
57
|
+
[utils_1.Modules.FULFILLMENT]: { fulfillment_set_id: fulfillmentSet.id },
|
|
58
|
+
}), "Stock Location ↔ Fulfillment Set");
|
|
59
|
+
const providers = (await fulfillmentService.listFulfillmentProviders({}, { take: 100 }))
|
|
60
|
+
.filter((provider) => provider.is_enabled !== false);
|
|
61
|
+
const carrierProviders = providers.filter((provider) => {
|
|
62
|
+
const id = clean(provider.id).toLowerCase();
|
|
63
|
+
return CARRIER_IDS.some((carrier) => id.includes(carrier));
|
|
64
|
+
});
|
|
65
|
+
const manualProvider = providers.find((provider) => clean(provider.id).toLowerCase().includes("manual"));
|
|
66
|
+
const providersToUse = carrierProviders.length ? carrierProviders : manualProvider ? [manualProvider] : [];
|
|
67
|
+
if (!providersToUse.length) {
|
|
68
|
+
throw new Error("Shipping bootstrap: nincs engedélyezett fulfillment provider.");
|
|
69
|
+
}
|
|
70
|
+
for (const provider of providersToUse) {
|
|
71
|
+
await safeLink(() => link.create({
|
|
72
|
+
[utils_1.Modules.STOCK_LOCATION]: { stock_location_id: stockLocationId },
|
|
73
|
+
[utils_1.Modules.FULFILLMENT]: { fulfillment_provider_id: provider.id },
|
|
74
|
+
}), `Stock Location ↔ ${provider.id}`);
|
|
75
|
+
}
|
|
76
|
+
const existing = await fulfillmentService.listShippingOptions({ service_zone_id: serviceZone.id }, { take: 200, relations: ["type"] });
|
|
77
|
+
const existingKeys = new Set();
|
|
78
|
+
for (const option of existing) {
|
|
79
|
+
existingKeys.add(clean(option.name).toLowerCase());
|
|
80
|
+
existingKeys.add(clean(option.type?.code).toLowerCase());
|
|
81
|
+
}
|
|
82
|
+
const inputs = [];
|
|
83
|
+
for (const provider of providersToUse) {
|
|
84
|
+
const providerId = clean(provider.id);
|
|
85
|
+
if (providerId.toLowerCase().includes("manual")) {
|
|
86
|
+
const code = "standard-home";
|
|
87
|
+
const label = "Standard házhozszállítás";
|
|
88
|
+
if (!existingKeys.has(code) && !existingKeys.has(label.toLowerCase())) {
|
|
89
|
+
inputs.push({
|
|
90
|
+
name: label,
|
|
91
|
+
price_type: "flat",
|
|
92
|
+
provider_id: providerId,
|
|
93
|
+
service_zone_id: serviceZone.id,
|
|
94
|
+
shipping_profile_id: shippingProfile.id,
|
|
95
|
+
data: { id: "manual" },
|
|
96
|
+
type: {
|
|
97
|
+
label,
|
|
98
|
+
description: "Alapértelmezett kézi fulfillment",
|
|
99
|
+
code,
|
|
100
|
+
},
|
|
101
|
+
prices: [
|
|
102
|
+
{
|
|
103
|
+
region_id: regionId,
|
|
104
|
+
amount: envNumber("DEFAULT_SHIPPING_PRICE", 1490),
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
rules: defaultRules(),
|
|
108
|
+
});
|
|
109
|
+
existingKeys.add(code);
|
|
110
|
+
existingKeys.add(label.toLowerCase());
|
|
111
|
+
}
|
|
112
|
+
continue;
|
|
113
|
+
}
|
|
114
|
+
let fulfillmentOptions = [];
|
|
115
|
+
try {
|
|
116
|
+
fulfillmentOptions = await fulfillmentService.retrieveFulfillmentOptions(providerId);
|
|
117
|
+
}
|
|
118
|
+
catch (error) {
|
|
119
|
+
console.warn(`⚠️ ${providerId} fulfillment opciók nem tölthetők be: ${error instanceof Error ? error.message : String(error)}`);
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
for (const option of fulfillmentOptions) {
|
|
123
|
+
const code = clean(option.code || option.id).toLowerCase();
|
|
124
|
+
const label = clean(option.name || option.label || option.id);
|
|
125
|
+
if (!code || !label || existingKeys.has(code) || existingKeys.has(label.toLowerCase()))
|
|
126
|
+
continue;
|
|
127
|
+
inputs.push({
|
|
128
|
+
name: label,
|
|
129
|
+
price_type: "calculated",
|
|
130
|
+
provider_id: providerId,
|
|
131
|
+
service_zone_id: serviceZone.id,
|
|
132
|
+
shipping_profile_id: shippingProfile.id,
|
|
133
|
+
data: { ...option },
|
|
134
|
+
type: {
|
|
135
|
+
label,
|
|
136
|
+
description: shippingDescription(code),
|
|
137
|
+
code,
|
|
138
|
+
},
|
|
139
|
+
rules: defaultRules(),
|
|
140
|
+
});
|
|
141
|
+
existingKeys.add(code);
|
|
142
|
+
existingKeys.add(label.toLowerCase());
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
if (inputs.length) {
|
|
146
|
+
await (0, core_flows_1.createShippingOptionsWorkflow)(container).run({ input: inputs });
|
|
147
|
+
console.log(`✅ ${inputs.length} shipping option létrehozva.`);
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
console.log("ℹ️ A szükséges shipping optionök már léteznek.");
|
|
151
|
+
}
|
|
152
|
+
const finalOptions = await fulfillmentService.listShippingOptions({ service_zone_id: serviceZone.id }, { take: 200 });
|
|
153
|
+
if (!finalOptions.length) {
|
|
154
|
+
throw new Error("Shipping bootstrap: a service zone-hoz nem jött létre shipping option.");
|
|
155
|
+
}
|
|
156
|
+
console.log(`✅ Shipping bootstrap kész. Elérhető opciók: ${finalOptions.length}`);
|
|
157
|
+
}
|
|
158
|
+
async function run(params) {
|
|
159
|
+
await ensureShipping(params);
|
|
160
|
+
}
|
|
161
|
+
function defaultRules() {
|
|
162
|
+
return [
|
|
163
|
+
{ attribute: "enabled_in_store", value: "true", operator: "eq" },
|
|
164
|
+
{ attribute: "is_return", value: "false", operator: "eq" },
|
|
165
|
+
];
|
|
166
|
+
}
|
|
167
|
+
function shippingDescription(code) {
|
|
168
|
+
if (code.includes("foxpost") && /locker|point/.test(code))
|
|
169
|
+
return "FOXPOST automata / átvételi pont";
|
|
170
|
+
if (code.includes("foxpost"))
|
|
171
|
+
return "FOXPOST házhozszállítás";
|
|
172
|
+
if (code.includes("gls") && /point|parcel/.test(code))
|
|
173
|
+
return "GLS CsomagPont / automata";
|
|
174
|
+
if (code.includes("gls"))
|
|
175
|
+
return "GLS házhozszállítás";
|
|
176
|
+
if (code.includes("packeta") && code.includes("point"))
|
|
177
|
+
return "Packeta átvételi pont / Z-BOX";
|
|
178
|
+
if (code.includes("packeta"))
|
|
179
|
+
return "Packeta házhozszállítás";
|
|
180
|
+
if (code.includes("dpd") && /pudo|point/.test(code))
|
|
181
|
+
return "DPD Pickup / csomagpont";
|
|
182
|
+
if (code.includes("dpd"))
|
|
183
|
+
return "DPD házhozszállítás";
|
|
184
|
+
if (code.includes("mpl") && code.includes("point"))
|
|
185
|
+
return "MPL PostaPont / csomagautomata";
|
|
186
|
+
if (code.includes("mpl"))
|
|
187
|
+
return "MPL házhozszállítás";
|
|
188
|
+
return "Szállítási mód";
|
|
189
|
+
}
|
|
190
|
+
async function safeLink(action, label) {
|
|
191
|
+
try {
|
|
192
|
+
await action();
|
|
193
|
+
console.log(`✅ ${label} kapcsolat létrehozva.`);
|
|
194
|
+
}
|
|
195
|
+
catch (error) {
|
|
196
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
197
|
+
if (/already|duplicate|unique|exists|létezik/i.test(message)) {
|
|
198
|
+
console.log(`ℹ️ ${label} kapcsolat már létezik.`);
|
|
199
|
+
return;
|
|
200
|
+
}
|
|
201
|
+
throw error;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
function envNumber(key, fallback) {
|
|
205
|
+
const parsed = Number(process.env[key]);
|
|
206
|
+
return Number.isFinite(parsed) ? parsed : fallback;
|
|
207
|
+
}
|
|
208
|
+
function clean(value) {
|
|
209
|
+
return String(value ?? "").trim();
|
|
210
|
+
}
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW5zdXJlLXNoaXBwaW5nLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vc3JjL3NjcmlwdHMvZW5zdXJlLXNoaXBwaW5nLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBTUEsd0NBbUxDO0FBRUQsc0JBRUM7QUE1TEQscURBQThFO0FBQzlFLDREQUEyRTtBQUUzRSxNQUFNLFdBQVcsR0FBRyxDQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQTtBQUV4RCxLQUFLLFVBQVUsY0FBYyxDQUFDLEVBQUUsU0FBUyxFQUFZO0lBQzFELE1BQU0sWUFBWSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLEtBQUssQ0FBUSxDQUFBO0lBQzVELE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLE1BQU0sQ0FBUSxDQUFBO0lBQzlELE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsV0FBVyxDQUFRLENBQUE7SUFDeEUsTUFBTSxJQUFJLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxJQUFJLENBQVEsQ0FBQTtJQUVyRSxNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDOUQsTUFBTSxLQUFLLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQVMsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksS0FBSyxPQUFPLENBQUMsR0FBRyxDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQTtJQUMzRixJQUFJLENBQUMsS0FBSztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtJQUUvRCxNQUFNLGVBQWUsR0FBRyxL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
|
|
@@ -7,26 +7,41 @@ async function verifyBootstrap({ container }) {
|
|
|
7
7
|
const regionService = container.resolve(utils_1.Modules.REGION);
|
|
8
8
|
const salesChannelService = container.resolve(utils_1.Modules.SALES_CHANNEL);
|
|
9
9
|
const stockLocationService = container.resolve(utils_1.Modules.STOCK_LOCATION);
|
|
10
|
+
const fulfillmentService = container.resolve(utils_1.Modules.FULFILLMENT);
|
|
10
11
|
const apiKeyService = container.resolve(utils_1.Modules.API_KEY);
|
|
11
12
|
const query = container.resolve(utils_1.ContainerRegistrationKeys.QUERY);
|
|
12
|
-
const stores = await storeService.listStores({}, { take: 10 });
|
|
13
|
+
const stores = await storeService.listStores({}, { relations: ["supported_locales"], take: 10 });
|
|
13
14
|
if (!stores.length)
|
|
14
15
|
throw new Error("Bootstrap assertion failed: store is missing");
|
|
15
16
|
const store = stores.find((item) => item.name === process.env.STORE_NAME) || stores[0];
|
|
16
17
|
const regionId = clean(store.default_region_id);
|
|
17
18
|
const salesChannelId = clean(store.default_sales_channel_id);
|
|
18
19
|
const stockLocationId = clean(store.default_location_id);
|
|
20
|
+
const localeCodes = Array.isArray(store.supported_locales)
|
|
21
|
+
? store.supported_locales
|
|
22
|
+
.map((item) => clean(item?.locale_code))
|
|
23
|
+
.filter(Boolean)
|
|
24
|
+
: [];
|
|
19
25
|
if (!regionId)
|
|
20
26
|
throw new Error("Bootstrap assertion failed: default region is missing");
|
|
21
27
|
if (!salesChannelId)
|
|
22
28
|
throw new Error("Bootstrap assertion failed: default sales channel is missing");
|
|
23
29
|
if (!stockLocationId)
|
|
24
30
|
throw new Error("Bootstrap assertion failed: default stock location is missing");
|
|
31
|
+
for (const locale of ["hu-HU", "en-US"]) {
|
|
32
|
+
if (!localeCodes.includes(locale)) {
|
|
33
|
+
throw new Error(`Bootstrap assertion failed: store locale ${locale} is missing`);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
25
36
|
const [region, salesChannel, stockLocation] = await Promise.all([
|
|
26
37
|
regionService.retrieveRegion(regionId),
|
|
27
38
|
salesChannelService.retrieveSalesChannel(salesChannelId),
|
|
28
39
|
stockLocationService.retrieveStockLocation(stockLocationId),
|
|
29
40
|
]);
|
|
41
|
+
const shippingOptions = await fulfillmentService.listShippingOptions({}, { take: 1 });
|
|
42
|
+
if (!shippingOptions.length) {
|
|
43
|
+
throw new Error("Bootstrap assertion failed: shipping option is missing");
|
|
44
|
+
}
|
|
30
45
|
const publishableKeys = await apiKeyService.listApiKeys({ type: "publishable" }, { take: 100 });
|
|
31
46
|
const activeKeys = publishableKeys.filter((item) => !item.revoked_at && item.token);
|
|
32
47
|
if (!activeKeys.length) {
|
|
@@ -69,9 +84,11 @@ async function verifyBootstrap({ container }) {
|
|
|
69
84
|
console.log(`HSZRDM_REGION_ID=${region.id}`);
|
|
70
85
|
console.log(`HSZRDM_SALES_CHANNEL_ID=${salesChannel.id}`);
|
|
71
86
|
console.log(`HSZRDM_STOCK_LOCATION_ID=${stockLocation.id}`);
|
|
87
|
+
console.log(`HSZRDM_SHIPPING_OPTION_ID=${shippingOptions[0].id}`);
|
|
72
88
|
console.log(`HSZRDM_PUBLISHABLE_KEY_ID=${linkedKey.id}`);
|
|
89
|
+
console.log(`HSZRDM_STORE_LOCALES=${localeCodes.join(",")}`);
|
|
73
90
|
}
|
|
74
91
|
function clean(value) {
|
|
75
92
|
return String(value ?? "").trim();
|
|
76
93
|
}
|
|
77
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
94
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LWJvb3RzdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zY3JpcHRzL3ZlcmlmeS1ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxrQ0FvR0M7QUF0R0QscURBQThFO0FBRS9ELEtBQUssVUFBVSxlQUFlLENBQUMsRUFBRSxTQUFTLEVBQVk7SUFDbkUsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFRLENBQUE7SUFDNUQsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsTUFBTSxDQUFRLENBQUE7SUFDOUQsTUFBTSxtQkFBbUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxhQUFhLENBQVEsQ0FBQTtJQUMzRSxNQUFNLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLGNBQWMsQ0FBUSxDQUFBO0lBQzdFLE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsV0FBVyxDQUFRLENBQUE7SUFDeEUsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsT0FBTyxDQUFRLENBQUE7SUFDL0QsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQVEsQ0FBQTtJQUV2RSxNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksQ0FBQyxVQUFVLENBQzFDLEVBQUUsRUFDRixFQUFFLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUMvQyxDQUFBO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFBO0lBRW5GLE1BQU0sS0FBSyxHQUFHLE1BQU0s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
|