@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.
Files changed (192) hide show
  1. package/.medusa/server/src/admin/index.js +4375 -2368
  2. package/.medusa/server/src/admin/index.mjs +4376 -2369
  3. package/.medusa/server/src/api/admin/ai-translations/apply/route.d.ts +11 -0
  4. package/.medusa/server/src/api/admin/ai-translations/apply/route.js +102 -0
  5. package/.medusa/server/src/api/admin/ai-translations/preview/route.d.ts +10 -0
  6. package/.medusa/server/src/api/admin/ai-translations/preview/route.js +141 -0
  7. package/.medusa/server/src/api/admin/ai-translations/route.d.ts +2 -0
  8. package/.medusa/server/src/api/admin/ai-translations/route.js +19 -0
  9. package/.medusa/server/src/api/admin/cms/entries/[id]/route.d.ts +6 -0
  10. package/.medusa/server/src/api/admin/cms/entries/[id]/route.js +78 -0
  11. package/.medusa/server/src/api/admin/cms/entries/route.d.ts +5 -0
  12. package/.medusa/server/src/api/admin/cms/entries/route.js +77 -0
  13. package/.medusa/server/src/api/admin/cms/taxonomy/[id]/route.d.ts +5 -0
  14. package/.medusa/server/src/api/admin/cms/taxonomy/[id]/route.js +50 -0
  15. package/.medusa/server/src/api/admin/cms/taxonomy/route.d.ts +5 -0
  16. package/.medusa/server/src/api/admin/cms/taxonomy/route.js +60 -0
  17. package/.medusa/server/src/api/admin/core/status/route.d.ts +2 -0
  18. package/.medusa/server/src/api/admin/core/status/route.js +11 -0
  19. package/.medusa/server/src/api/admin/featured-products/[id]/route.d.ts +7 -0
  20. package/.medusa/server/src/api/admin/featured-products/[id]/route.js +54 -0
  21. package/.medusa/server/src/api/admin/leads/[id]/route.d.ts +9 -0
  22. package/.medusa/server/src/api/admin/leads/[id]/route.js +64 -0
  23. package/.medusa/server/src/api/admin/leads/route.d.ts +2 -0
  24. package/.medusa/server/src/api/admin/leads/route.js +26 -0
  25. package/.medusa/server/src/api/admin/newsletter/subscribers/export/route.d.ts +2 -0
  26. package/.medusa/server/src/api/admin/newsletter/subscribers/export/route.js +74 -0
  27. package/.medusa/server/src/api/admin/newsletter/subscribers/route.d.ts +2 -0
  28. package/.medusa/server/src/api/admin/newsletter/subscribers/route.js +57 -0
  29. package/.medusa/server/src/api/admin/product-reviews/[id]/route.d.ts +7 -0
  30. package/.medusa/server/src/api/admin/product-reviews/[id]/route.js +40 -0
  31. package/.medusa/server/src/api/admin/product-reviews/route.d.ts +2 -0
  32. package/.medusa/server/src/api/admin/product-reviews/route.js +31 -0
  33. package/.medusa/server/src/api/admin/quote-requests/[id]/draft-order/route.d.ts +8 -0
  34. package/.medusa/server/src/api/admin/quote-requests/[id]/draft-order/route.js +160 -0
  35. package/.medusa/server/src/api/admin/quote-requests/[id]/order/route.d.ts +2 -0
  36. package/.medusa/server/src/api/admin/quote-requests/[id]/order/route.js +54 -0
  37. package/.medusa/server/src/api/admin/quote-requests/[id]/route.d.ts +5 -0
  38. package/.medusa/server/src/api/admin/quote-requests/[id]/route.js +80 -0
  39. package/.medusa/server/src/api/admin/quote-requests/route.d.ts +2 -0
  40. package/.medusa/server/src/api/admin/quote-requests/route.js +19 -0
  41. package/.medusa/server/src/api/middlewares.js +19 -6
  42. package/.medusa/server/src/api/store/account/wishlist/[productId]/route.d.ts +2 -0
  43. package/.medusa/server/src/api/store/account/wishlist/[productId]/route.js +18 -0
  44. package/.medusa/server/src/api/store/account/wishlist/merge/route.d.ts +6 -0
  45. package/.medusa/server/src/api/store/account/wishlist/merge/route.js +51 -0
  46. package/.medusa/server/src/api/store/account/wishlist/route.d.ts +7 -0
  47. package/.medusa/server/src/api/store/account/wishlist/route.js +76 -0
  48. package/.medusa/server/src/api/store/cms/config/route.d.ts +2 -0
  49. package/.medusa/server/src/api/store/cms/config/route.js +17 -0
  50. package/.medusa/server/src/api/store/cms/entries/[slug]/route.d.ts +2 -0
  51. package/.medusa/server/src/api/store/cms/entries/[slug]/route.js +62 -0
  52. package/.medusa/server/src/api/store/cms/entries/route.d.ts +2 -0
  53. package/.medusa/server/src/api/store/cms/entries/route.js +87 -0
  54. package/.medusa/server/src/api/store/cms/taxonomy/route.d.ts +2 -0
  55. package/.medusa/server/src/api/store/cms/taxonomy/route.js +44 -0
  56. package/.medusa/server/src/api/store/core/pricing/variants/[id]/route.d.ts +2 -0
  57. package/.medusa/server/src/api/store/core/pricing/variants/[id]/route.js +152 -0
  58. package/.medusa/server/src/api/store/featured-products/route.d.ts +2 -0
  59. package/.medusa/server/src/api/store/featured-products/route.js +38 -0
  60. package/.medusa/server/src/api/store/leads/config/route.d.ts +2 -0
  61. package/.medusa/server/src/api/store/leads/config/route.js +21 -0
  62. package/.medusa/server/src/api/store/leads/route.d.ts +4 -0
  63. package/.medusa/server/src/api/store/leads/route.js +176 -0
  64. package/.medusa/server/src/api/store/newsletter/config/route.d.ts +2 -0
  65. package/.medusa/server/src/api/store/newsletter/config/route.js +14 -0
  66. package/.medusa/server/src/api/store/newsletter/confirm/route.d.ts +4 -0
  67. package/.medusa/server/src/api/store/newsletter/confirm/route.js +52 -0
  68. package/.medusa/server/src/api/store/newsletter/route.d.ts +4 -0
  69. package/.medusa/server/src/api/store/newsletter/route.js +172 -0
  70. package/.medusa/server/src/api/store/newsletter/unsubscribe/route.d.ts +4 -0
  71. package/.medusa/server/src/api/store/newsletter/unsubscribe/route.js +54 -0
  72. package/.medusa/server/src/api/store/products/[id]/reviews/route.d.ts +8 -0
  73. package/.medusa/server/src/api/store/products/[id]/reviews/route.js +174 -0
  74. package/.medusa/server/src/api/store/quote-requests/config/route.d.ts +2 -0
  75. package/.medusa/server/src/api/store/quote-requests/config/route.js +13 -0
  76. package/.medusa/server/src/api/store/quote-requests/route.d.ts +5 -0
  77. package/.medusa/server/src/api/store/quote-requests/route.js +214 -0
  78. package/.medusa/server/src/api/store/seo/route.js +42 -10
  79. package/.medusa/server/src/api/store/seo/structured-data/route.js +3 -2
  80. package/.medusa/server/src/config.js +7 -1
  81. package/.medusa/server/src/core/admin-analytics-dashboard.d.ts +1 -0
  82. package/.medusa/server/src/core/admin-analytics-dashboard.js +15 -3
  83. package/.medusa/server/src/core/ai-translation.d.ts +26 -0
  84. package/.medusa/server/src/core/ai-translation.js +173 -0
  85. package/.medusa/server/src/core/featured-products.d.ts +19 -0
  86. package/.medusa/server/src/core/featured-products.js +45 -0
  87. package/.medusa/server/src/core/pricing-tiers.d.ts +25 -0
  88. package/.medusa/server/src/core/pricing-tiers.js +88 -0
  89. package/.medusa/server/src/core/release-info.d.ts +10 -0
  90. package/.medusa/server/src/core/release-info.js +22 -0
  91. package/.medusa/server/src/core/version.d.ts +4 -4
  92. package/.medusa/server/src/core/version.js +3 -3
  93. package/.medusa/server/src/lib/modules/arukereso/config.js +2 -2
  94. package/.medusa/server/src/lib/modules/google-merchant/config.d.ts +2 -0
  95. package/.medusa/server/src/lib/modules/google-merchant/config.js +9 -2
  96. package/.medusa/server/src/lib/modules/google-merchant/feed.d.ts +1 -0
  97. package/.medusa/server/src/lib/modules/google-merchant/feed.js +4 -2
  98. package/.medusa/server/src/localized-config.d.ts +9 -0
  99. package/.medusa/server/src/localized-config.js +14 -0
  100. package/.medusa/server/src/modules/cms/config.d.ts +11 -0
  101. package/.medusa/server/src/modules/cms/config.js +65 -0
  102. package/.medusa/server/src/modules/cms/content-types.d.ts +24 -0
  103. package/.medusa/server/src/modules/cms/content-types.js +27 -0
  104. package/.medusa/server/src/modules/cms/index.d.ts +9 -0
  105. package/.medusa/server/src/modules/cms/index.js +32 -0
  106. package/.medusa/server/src/modules/cms/migrations/Migration20261029170000.d.ts +5 -0
  107. package/.medusa/server/src/modules/cms/migrations/Migration20261029170000.js +27 -0
  108. package/.medusa/server/src/modules/cms/migrations/Migration20261029190000.d.ts +5 -0
  109. package/.medusa/server/src/modules/cms/migrations/Migration20261029190000.js +52 -0
  110. package/.medusa/server/src/modules/cms/models/cms.d.ts +67 -0
  111. package/.medusa/server/src/modules/cms/models/cms.js +64 -0
  112. package/.medusa/server/src/modules/cms/service.d.ts +82 -0
  113. package/.medusa/server/src/modules/cms/service.js +9 -0
  114. package/.medusa/server/src/modules/cms/utils.d.ts +67 -0
  115. package/.medusa/server/src/modules/cms/utils.js +190 -0
  116. package/.medusa/server/src/modules/integration-settings/arukereso-registration.js +2 -2
  117. package/.medusa/server/src/modules/integration-settings/google-merchant-registration.js +6 -2
  118. package/.medusa/server/src/modules/lead/config.d.ts +37 -0
  119. package/.medusa/server/src/modules/lead/config.js +147 -0
  120. package/.medusa/server/src/modules/lead/email.d.ts +17 -0
  121. package/.medusa/server/src/modules/lead/email.js +68 -0
  122. package/.medusa/server/src/modules/lead/index.d.ts +9 -0
  123. package/.medusa/server/src/modules/lead/index.js +27 -0
  124. package/.medusa/server/src/modules/lead/migrations/Migration20261029163000.d.ts +5 -0
  125. package/.medusa/server/src/modules/lead/migrations/Migration20261029163000.js +19 -0
  126. package/.medusa/server/src/modules/lead/models/lead.d.ts +26 -0
  127. package/.medusa/server/src/modules/lead/models/lead.js +53 -0
  128. package/.medusa/server/src/modules/lead/service.d.ts +29 -0
  129. package/.medusa/server/src/modules/lead/service.js +11 -0
  130. package/.medusa/server/src/modules/lead/spam.d.ts +24 -0
  131. package/.medusa/server/src/modules/lead/spam.js +114 -0
  132. package/.medusa/server/src/modules/newsletter/config.d.ts +14 -0
  133. package/.medusa/server/src/modules/newsletter/config.js +51 -0
  134. package/.medusa/server/src/modules/newsletter/email.d.ts +9 -0
  135. package/.medusa/server/src/modules/newsletter/email.js +38 -0
  136. package/.medusa/server/src/modules/newsletter/events.d.ts +10 -0
  137. package/.medusa/server/src/modules/newsletter/events.js +34 -0
  138. package/.medusa/server/src/modules/newsletter/index.d.ts +10 -0
  139. package/.medusa/server/src/modules/newsletter/index.js +33 -0
  140. package/.medusa/server/src/modules/newsletter/migrations/Migration20261030130000.d.ts +5 -0
  141. package/.medusa/server/src/modules/newsletter/migrations/Migration20261030130000.js +18 -0
  142. package/.medusa/server/src/modules/newsletter/models/newsletter-subscriber.d.ts +21 -0
  143. package/.medusa/server/src/modules/newsletter/models/newsletter-subscriber.js +35 -0
  144. package/.medusa/server/src/modules/newsletter/service.d.ts +24 -0
  145. package/.medusa/server/src/modules/newsletter/service.js +11 -0
  146. package/.medusa/server/src/modules/newsletter/token.d.ts +10 -0
  147. package/.medusa/server/src/modules/newsletter/token.js +97 -0
  148. package/.medusa/server/src/modules/product-review/config.d.ts +5 -0
  149. package/.medusa/server/src/modules/product-review/config.js +10 -0
  150. package/.medusa/server/src/modules/product-review/index.d.ts +7 -0
  151. package/.medusa/server/src/modules/product-review/index.js +18 -0
  152. package/.medusa/server/src/modules/product-review/migrations/Migration20261030160100.d.ts +5 -0
  153. package/.medusa/server/src/modules/product-review/migrations/Migration20261030160100.js +18 -0
  154. package/.medusa/server/src/modules/product-review/models/product-review.d.ts +16 -0
  155. package/.medusa/server/src/modules/product-review/models/product-review.js +26 -0
  156. package/.medusa/server/src/modules/product-review/service.d.ts +25 -0
  157. package/.medusa/server/src/modules/product-review/service.js +12 -0
  158. package/.medusa/server/src/modules/quote-request/config.d.ts +14 -0
  159. package/.medusa/server/src/modules/quote-request/config.js +52 -0
  160. package/.medusa/server/src/modules/quote-request/email.d.ts +17 -0
  161. package/.medusa/server/src/modules/quote-request/email.js +133 -0
  162. package/.medusa/server/src/modules/quote-request/index.d.ts +8 -0
  163. package/.medusa/server/src/modules/quote-request/index.js +23 -0
  164. package/.medusa/server/src/modules/quote-request/migrations/Migration20261029160000.d.ts +5 -0
  165. package/.medusa/server/src/modules/quote-request/migrations/Migration20261029160000.js +20 -0
  166. package/.medusa/server/src/modules/quote-request/models/quote-request.d.ts +24 -0
  167. package/.medusa/server/src/modules/quote-request/models/quote-request.js +54 -0
  168. package/.medusa/server/src/modules/quote-request/service.d.ts +32 -0
  169. package/.medusa/server/src/modules/quote-request/service.js +12 -0
  170. package/.medusa/server/src/modules/seo/models/seo-page.js +5 -5
  171. package/.medusa/server/src/modules/seo/sitemap.js +44 -10
  172. package/.medusa/server/src/modules/seo/structured-data.d.ts +1 -1
  173. package/.medusa/server/src/modules/seo/structured-data.js +41 -25
  174. package/.medusa/server/src/modules/seo/technical.d.ts +7 -2
  175. package/.medusa/server/src/modules/seo/technical.js +45 -6
  176. package/.medusa/server/src/modules/seo/types.d.ts +2 -0
  177. package/.medusa/server/src/modules/wishlist/index.d.ts +5 -0
  178. package/.medusa/server/src/modules/wishlist/index.js +14 -0
  179. package/.medusa/server/src/modules/wishlist/migrations/Migration20261030160000.d.ts +5 -0
  180. package/.medusa/server/src/modules/wishlist/migrations/Migration20261030160000.js +17 -0
  181. package/.medusa/server/src/modules/wishlist/models/wishlist-item.d.ts +6 -0
  182. package/.medusa/server/src/modules/wishlist/models/wishlist-item.js +14 -0
  183. package/.medusa/server/src/modules/wishlist/service.d.ts +15 -0
  184. package/.medusa/server/src/modules/wishlist/service.js +12 -0
  185. package/.medusa/server/src/scripts/ensure-locales.d.ts +2 -0
  186. package/.medusa/server/src/scripts/ensure-locales.js +34 -0
  187. package/.medusa/server/src/scripts/ensure-shipping.d.ts +3 -0
  188. package/.medusa/server/src/scripts/ensure-shipping.js +211 -0
  189. package/.medusa/server/src/scripts/verify-bootstrap.js +19 -2
  190. package/.medusa/server/src/subscribers/quote-request-order-placed.d.ts +7 -0
  191. package/.medusa/server/src/subscribers/quote-request-order-placed.js +27 -0
  192. 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 || "hu").toLowerCase();
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
- "/{country_code}/products/{handle}",
36
+ "/{locale}/{products_segment}/{handle}",
31
37
  categoryPathTemplate: cleanText(process.env.SEO_CATEGORY_PATH_TEMPLATE) ||
32
- "/{country_code}/categories/{handle}",
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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVjaG5pY2FsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvc2VvL3RlY2huaWNhbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLHNEQStEQztBQUVELDRDQVdDO0FBRUQsOENBV0M7QUFFRCxnREFHQztBQUVELGdEQUVDO0FBRUQsMENBRUM7QUFFRCw4Q0FFQztBQUVELDhDQVFDO0FBRUQsb0RBdUJDO0FBRUQsd0NBaUJDO0FBRUQsa0VBUUM7QUFFRCwwREFlQztBQUVELHNEQTRCQztBQUVELGtEQVdDO0FBRUQsOEJBT0M7QUEvT0QsU0FBZ0IscUJBQXFCO0lBQ25DLE1BQU0sYUFBYSxHQUFHLFlBQVksQ0FDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxFQUFFLENBQ25FLENBQUE7SUFDRCxNQUFNLFNBQVMsR0FBRyxTQUFTLENBQ3pCLE9BQU8sQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLE9BQU8sQ0FDaEUsSUFBSSxPQUFPLENBQUE7SUFDWixNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FDaEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxxQkFBcUIsSUFBSSxTQUFTLENBQy9DLElBQUksU0FBUyxDQUFBO0lBQ2QsTUFBTSxtQkFBbUIsR0FBRyxtQkFBbUIsQ0FDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsRUFDckMsYUFBYSxDQUNkLENBQUE7SUFDRCxNQUFNLGtCQUFrQixHQUFHLFNBQVMsQ0FDbEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUIsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLHFCQUFxQixJQUFJLElBQUksQ0FDN0UsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUNmLE1BQU0sYUFBYSxHQUFHLGtCQUFrQixDQUN0QyxPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLE9BQU8sQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLE9BQU8sQ0FDdEUsQ0FBQTtJQUNELE1BQU0sZ0JBQWdCLEdBQUcscUJBQXFCLENBQzVDLE9BQU8sQ0FBQyxHQUFHLENBQUMscUJBQXFCLElBQUksT0FBTyxFQUM1QyxhQUFhLENBQ2QsQ0FBQTtJQUVELE1BQU0sa0JBQWtCLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CLElBQUksRUFBRSxDQUFDO1NBQ3JFLEtBQUssQ0FBQyxHQUFHLENBQUM7U0FDVixHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQTtJQUVsQixPQUFPO1FBQ0wsYUFBYTtRQUNiLFNBQVM7UUFDVCxnQkFBZ0I7UUFDaEIsbUJBQW1CO1FBQ25CLG1CQUFtQixFQUNqQixTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx5QkFBeUIsQ0FBQztZQUNoRCx1Q0FBdUM7UUFDekMsb0JBQW9CLEVBQ2xCLFNBQVMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLDBCQUEwQixDQUFDO1lBQ2pELHlDQUF5QztRQUMzQyxrQkFBa0I7UUFDbEIsYUFBYTtRQUNiLGdCQUFnQjtRQUNoQixhQUFhLEVBQUUsVUFBVSxDQUN2QixPQUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsS0FBSyxZQUFZLENBQ3RDO1FBQ0QsY0FBYyxFQUFFLE1BQU0sQ0FBQztZQUNyQixNQUFNO1lBQ04sUUFBUTtZQUNSLFVBQVU7WUFDVixPQUFPO1lBQ1AsV0FBVztZQUNYLFlBQVk7WUFDWixXQUFXO1lBQ1gsYUFBYTtZQUNiLGFBQWE7WUFDYixVQUFVO1lBQ1YsY0FBYztZQUNkLEdBQUcsa0JBQWtCO1NBQ3RCLENBQUM7S0FDSCxDQUFBO0FBQ0gsQ0FBQztBQUVELFNBQWdCLGdCQUFnQixDQUM5QixNQUFjLEVBQ2QsTUFBTSxHQUFHLHFCQUFxQixFQUFFLEVBQ2hDLFNBQTBCLE1BQU0sQ0FBQyxhQUFhO0lBRTlDLE9BQU8sa0JBQWtCLENBQUMsTUFBTSxDQUFDLG1CQUFtQixFQUFFO1FBQ3BELE1BQU07UUFDTixNQUFNO1FBQ04sWUFBWSxFQUFFLE1BQU0sQ0FBQyxrQkFBa0I7UUFDdkMsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLE1BQU0sQ0FBQztLQUMxQyxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsU0FBZ0IsaUJBQWlCLENBQy9CLE1BQWMsRUFDZCxNQUFNLEdBQUcscUJBQXFCLEVBQUUsRUFDaEMsU0FBMEIsTUFBTSxDQUFDLGFBQWE7SUFFOUMsT0FBTyxrQkFBa0IsQ0FBQyxNQUFNLENBQUMsb0JBQW9CLEVBQUU7UUFDckQsTUFBTTtRQUNOLE1BQU07UUFDTixZQUFZLEVBQUUsTUFBTSxDQUFDLGtCQUFrQjtRQUN2QyxrQkFBa0IsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNLENBQUM7S0FDOUMsQ0FBQyxDQUFBO0FBQ0osQ0FBQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLEtBQWM7SUFDL0MsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUMzRCxPQUFPLFVBQVUsS0FBSyxJQUFJLElBQUksVUFBVSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUE7QUFDMUUsQ0FBQztBQUVELFNBQWdCLGtCQUFrQixDQUFDLE1BQXVCO0lBQ3hELE9BQU8sTUFBTSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUE7QUFDNUMsQ0FBQztBQUVELFNBQWdCLGVBQWUsQ0FBQyxNQUF1QjtJQUNyRCxPQUFPLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFBO0FBQ2xELENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FBQyxNQUF1QjtJQUN2RCxPQUFPLE1BQU0sS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFBO0FBQ3RELENBQUM7QUFFRCxTQUFnQixpQkFBaUIsQ0FDL0IsSUFBWSxFQUNaLGlCQUFpQyxFQUNqQyxNQUFNLEdBQUcscUJBQXFCLEVBQUU7SUFFaEMsSUFBSSxpQkFBaUI7UUFBRSxPQUFPLGlCQUFpQixDQUFBO0lBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYTtRQUFFLE9BQU8sSUFBSSxDQUFBO0lBQ3RDLE9BQU8sSUFBSSxHQUFHLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLEVBQUUsR0FBRyxNQUFNLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtBQUNsRixDQUFDO0FBRUQsU0FBZ0Isb0JBQW9CLENBQUMsS0FJcEM7SUFDQyxNQUFNLE1BQU0sR0FBRyxLQUFLLENBQUMsTUFBTSxJQUFJLHFCQUFxQixFQUFFLENBQUE7SUFDdEQsTUFBTSxTQUFTLEdBQUcsaUJBQWlCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQTtJQUU1RSxPQUFPO1FBQ0wsS0FBSyxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSztRQUN0QixXQUFXLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxXQUFXO1FBQ2xDLFNBQVM7UUFDVCxNQUFNLEVBQUU7WUFDTixLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLE9BQU8sSUFBSSxNQUFNLENBQUMsYUFBYTtZQUNqRCxNQUFNLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVE7U0FDNUI7UUFDRCxTQUFTLEVBQUU7WUFDVCxLQUFLLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLO1lBQzNDLFdBQVcsRUFBRSxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDLFdBQVc7WUFDN0QsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDcEQsR0FBRyxFQUFFLFNBQVM7U0FDZjtLQUNGLENBQUE7QUFDSCxDQUFDO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLE1BQU0sR0FBRyxxQkFBcUIsRUFBRTtJQUM3RCxNQUFNLEtBQUssR0FBRyxDQUFDLGVBQWUsQ0FBQyxDQUFBO0lBRS9CLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUIsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQTtJQUMzQixDQUFDO1NBQU0sQ0FBQztRQUNOLEtBQUssQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7UUFDdEIsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsY0FBYyxFQUFFLENBQUM7WUFDekMsS0FBSyxDQUFDLElBQUksQ0FBQyxhQUFhLElBQUksRUFBRSxDQUFDLENBQUE7UUFDakMsQ0FBQztJQUNILENBQUM7SUFFRCxJQUFJLE1BQU0sQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN6QixLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxZQUFZLE1BQU0sQ0FBQyxhQUFhLGNBQWMsQ0FBQyxDQUFBO0lBQ2hFLENBQUM7SUFFRCxPQUFPLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFBO0FBQ2hDLENBQUM7QUFFRCxTQUFnQiwyQkFBMkIsQ0FBQyxLQUFjO0lBQ3hELE1BQU0sSUFBSSxHQUFHLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ3ZDLElBQUksQ0FBQyxJQUFJO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw0QkFBNEIsQ0FBQyxDQUFBO0lBQ3hELElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDN0MsTUFBTSxJQUFJLEtBQUssQ0FBQyxpRUFBaUUsQ0FBQyxDQUFBO0lBQ3BGLENBQUM7SUFDRCxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsOEJBQThCLENBQUMsQ0FBQTtJQUN2RSxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFFRCxTQUFnQix1QkFBdUIsQ0FBQyxLQUFjO0lBQ3BELE1BQU0sR0FBRyxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDdEMsSUFBSSxDQUFDLEdBQUc7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHlCQUF5QixDQUFDLENBQUE7SUFDcEQsSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQztRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsd0NBQXdDLENBQUMsQ0FBQTtJQUNoRixJQUFJLEdBQUcsQ0FBQyxNQUFNLEdBQUcsSUFBSTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtJQUVuRSxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUM5QixNQUFNLEdBQUcsR0FBRyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUN4QixJQUFJLENBQUMsQ0FBQyxPQUFPLEVBQUUsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO1lBQ2hELE1BQU0sSUFBSSxLQUFLLENBQUMsa0NBQWtDLENBQUMsQ0FBQTtRQUNyRCxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVELE9BQU8sbUJBQW1CLENBQUMsR0FBRyxDQUFDLENBQUE7QUFDakMsQ0FBQztBQUVELFNBQWdCLHFCQUFxQixDQUFDLEtBS3JDO0lBQ0MsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQU0sSUFBSSxxQkFBcUIsRUFBRSxDQUFBO0lBQ3RELE1BQU0sTUFBTSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUMvQyxDQUFDLENBQUMsS0FBSyxDQUFDLE1BQU07UUFDZCxDQUFDLENBQUMsTUFBTSxDQUFDLGFBQWE7WUFDcEIsQ0FBQyxDQUFDLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsR0FBRyxNQUFNLENBQUMsYUFBYSxHQUFHLENBQUMsQ0FBQyxRQUFRLEVBQUU7WUFDOUQsQ0FBQyxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUE7SUFFbEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSztRQUFFLE9BQU8sTUFBTSxDQUFBO0lBRXZELE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNwRCxJQUFJLENBQUMsS0FBSztRQUFFLE9BQU8sTUFBTSxDQUFBO0lBRXpCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDO1FBQ2pDLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFBO1FBQzNCLE1BQU0sUUFBUSxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFBO1FBQzNDLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxRQUFRLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQztZQUM5QyxJQUFJLENBQUMsR0FBRyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDO2dCQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQTtRQUNyRSxDQUFDO1FBQ0QsT0FBTyxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDdkIsQ0FBQztJQUVELE9BQU8sR0FBRyxNQUFNLEdBQUcsTUFBTSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxFQUFFLENBQUE7QUFDL0QsQ0FBQztBQUVELFNBQWdCLG1CQUFtQixDQUFDLEtBQWM7SUFDaEQsSUFBSSxJQUFJLEdBQUcsTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQTtJQUNyQyxJQUFJLENBQUMsSUFBSTtRQUFFLE9BQU8sR0FBRyxDQUFBO0lBQ3JCLElBQUksZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQy9CLE1BQU0sR0FBRyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFBO1FBQ3pCLElBQUksR0FBRyxHQUFHLEdBQUcsQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFBO0lBQ3ZDLENBQUM7SUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7UUFBRSxJQUFJLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQTtJQUM1QyxJQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQUE7SUFDbkMsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDO1FBQUUsSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzNFLE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVELFNBQWdCLFNBQVMsQ0FBQyxLQUFjO0lBQ3RDLE9BQU8sTUFBTSxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUM7U0FDdkIsT0FBTyxDQUFDLElBQUksRUFBRSxPQUFPLENBQUM7U0FDdEIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7U0FDckIsT0FBTyxDQUFDLElBQUksRUFBRSxNQUFNLENBQUM7U0FDckIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUM7U0FDdkIsT0FBTyxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsQ0FBQTtBQUM1QixDQUFDO0FBRUQsU0FBUyxrQkFBa0IsQ0FDekIsUUFBZ0IsRUFDaEIsTUFBOEI7SUFFOUIsSUFBSSxJQUFJLEdBQUcsUUFBUSxDQUFBO0lBQ25CLEtBQUssTUFBTSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDbEQsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxHQUFHLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO0lBQy9ELENBQUM7SUFDRCxPQUFPLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFBO0FBQ2xDLENBQUM7QUFFRCxTQUFTLHFCQUFxQixDQUFDLEtBQWEsRUFBRSxRQUF5QjtJQUNyRSxNQUFNLE9BQU8sR0FBRyxLQUFLO1NBQ2xCLEtBQUssQ0FBQyxHQUFHLENBQUM7U0FDVixHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztTQUMxQixNQUFNLENBQUMsT0FBTyxDQUFDO1NBQ2YsR0FBRyxDQUFDLGtCQUFrQixDQUFDLENBQUE7SUFDMUIsT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUMsUUFBUSxFQUFFLEdBQUcsT0FBTyxDQUFDLENBQUMsQ0FBc0IsQ0FBQTtBQUN6RSxDQUFDO0FBRUQsU0FBUyxZQUFZLENBQUMsS0FBYztJQUNsQyxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3RDLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFDckIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUE7UUFDeEIsSUFBSSxDQUFDLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDO1lBQUUsT0FBTyxJQUFJLENBQUE7UUFDNUQsR0FBRyxDQUFDLElBQUksR0FBRyxFQUFFLENBQUE7UUFDYixHQUFHLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQTtRQUNmLE9BQU8sR0FBRyxDQUFDLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDM0MsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sSUFBSSxDQUFBO0lBQ2IsQ0FBQztBQUNILENBQUM7QUFFRCxTQUFTLG1CQUFtQixDQUFDLEtBQWMsRUFBRSxJQUFtQjtJQUM5RCxNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFBO0lBQ3RDLElBQUksQ0FBQyxHQUFHO1FBQUUsT0FBTyxJQUFJLENBQUE7SUFDckIsSUFBSSxDQUFDO1FBQ0gsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLEVBQUUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQTtRQUMxRCxPQUFPLENBQUMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO0lBQzNFLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLElBQUksQ0FBQTtJQUNiLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxTQUFTLENBQUMsS0FBYztJQUMvQixPQUFPLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7QUFDbkMsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEtBQWMsRUFBRSxRQUFpQjtJQUNuRCxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFBO0lBQzNELElBQUksQ0FBQyxVQUFVO1FBQUUsT0FBTyxRQUFRLENBQUE7SUFDaEMsSUFBSSxDQUFDLEdBQUcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUM7UUFBRSxPQUFPLElBQUksQ0FBQTtJQUNoRSxJQUFJLENBQUMsR0FBRyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQztRQUFFLE9BQU8sS0FBSyxDQUFBO0lBQ2xFLE9BQU8sUUFBUSxDQUFBO0FBQ2pCLENBQUM7QUFFRCxTQUFTLE1BQU0sQ0FBQyxNQUFnQjtJQUM5QixPQUFPLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUE7QUFDcEQsQ0FBQyJ9
@@ -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,5 @@
1
+ import WishlistService from "./service";
2
+ export declare const WISHLIST_MODULE = "wishlist";
3
+ declare const _default: any;
4
+ export default _default;
5
+ export { WishlistService };
@@ -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,5 @@
1
+ import { Migration } from "@medusajs/framework/mikro-orm/migrations";
2
+ export declare class Migration20261030160000 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }
@@ -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,2 @@
1
+ import type { ExecArgs } from "@medusajs/framework/types";
2
+ export default function ensureLocales({ container }: ExecArgs): Promise<void>;
@@ -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,3 @@
1
+ import type { ExecArgs } from "@medusajs/framework/types";
2
+ export declare function ensureShipping({ container }: ExecArgs): Promise<void>;
3
+ export default function run(params: ExecArgs): Promise<void>;
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LWJvb3RzdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zY3JpcHRzL3ZlcmlmeS1ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxrQ0ErRUM7QUFqRkQscURBQThFO0FBRS9ELEtBQUssVUFBVSxlQUFlLENBQUMsRUFBRSxTQUFTLEVBQVk7SUFDbkUsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFRLENBQUE7SUFDNUQsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsTUFBTSxDQUFRLENBQUE7SUFDOUQsTUFBTSxtQkFBbUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxhQUFhLENBQVEsQ0FBQTtJQUMzRSxNQUFNLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLGNBQWMsQ0FBUSxDQUFBO0lBQzdFLE1BQU0sYUFBYSxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLE9BQU8sQ0FBUSxDQUFBO0lBQy9ELE1BQU0sS0FBSyxHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUFRLENBQUE7SUFFdkUsTUFBTSxNQUFNLEdBQUcsTUFBTSxZQUFZLENBQUMsVUFBVSxDQUFDLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzlELElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTTtRQUFFLE1BQU0sSUFBSSxLQUFLLENBQUMsOENBQThDLENBQUMsQ0FBQTtJQUVuRixNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxLQUFLLE9BQU8sQ0FBQyxHQUFHLENBQUMsVUFBVSxDQUFDLElBQUksTUFBTSxD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
94
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyaWZ5LWJvb3RzdHJhcC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9zY3JpcHRzL3ZlcmlmeS1ib290c3RyYXAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxrQ0FvR0M7QUF0R0QscURBQThFO0FBRS9ELEtBQUssVUFBVSxlQUFlLENBQUMsRUFBRSxTQUFTLEVBQVk7SUFDbkUsTUFBTSxZQUFZLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsS0FBSyxDQUFRLENBQUE7SUFDNUQsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsTUFBTSxDQUFRLENBQUE7SUFDOUQsTUFBTSxtQkFBbUIsR0FBRyxTQUFTLENBQUMsT0FBTyxDQUFDLGVBQU8sQ0FBQyxhQUFhLENBQVEsQ0FBQTtJQUMzRSxNQUFNLG9CQUFvQixHQUFHLFNBQVMsQ0FBQyxPQUFPLENBQUMsZUFBTyxDQUFDLGNBQWMsQ0FBUSxDQUFBO0lBQzdFLE1BQU0sa0JBQWtCLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsV0FBVyxDQUFRLENBQUE7SUFDeEUsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxlQUFPLENBQUMsT0FBTyxDQUFRLENBQUE7SUFDL0QsTUFBTSxLQUFLLEdBQUcsU0FBUyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQVEsQ0FBQTtJQUV2RSxNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksQ0FBQyxVQUFVLENBQzFDLEVBQUUsRUFDRixFQUFFLFNBQVMsRUFBRSxDQUFDLG1CQUFtQixDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUMvQyxDQUFBO0lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO1FBQUUsTUFBTSxJQUFJLEtBQUssQ0FBQyw4Q0FBOEMsQ0FBQyxDQUFBO0lBRW5GLE1BQU0sS0FBSyxHQUFHLE1BQU0s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