@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
@@ -0,0 +1,190 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.slugifyCms = slugifyCms;
4
+ exports.normalizeCmsEntryInput = normalizeCmsEntryInput;
5
+ exports.normalizeCmsTaxonomyInput = normalizeCmsTaxonomyInput;
6
+ exports.isCmsEntryPublic = isCmsEntryPublic;
7
+ exports.publicCmsEntry = publicCmsEntry;
8
+ const cms_1 = require("./models/cms");
9
+ function slugifyCms(value) {
10
+ const input = typeof value === "string" ? value.trim() : "";
11
+ return input
12
+ .normalize("NFD")
13
+ .replace(/[\u0300-\u036f]/g, "")
14
+ .toLowerCase()
15
+ .replace(/[^a-z0-9]+/g, "-")
16
+ .replace(/^-+|-+$/g, "")
17
+ .slice(0, 180);
18
+ }
19
+ function normalizeCmsEntryInput(body, defaults, current) {
20
+ const value = (key) => fieldValue(body, key, current);
21
+ const contentType = requiredText(value("content_type"), "Tartalomtípus", 80);
22
+ const title = requiredText(value("title"), "Cím", 500);
23
+ const slug = slugifyCms(value("slug") || title);
24
+ if (!slug)
25
+ throw new Error("Érvényes slug szükséges.");
26
+ const statusRaw = optionalText(value("status"), 40) || "draft";
27
+ if (!cms_1.CMS_ENTRY_STATUSES.includes(statusRaw)) {
28
+ throw new Error("Érvénytelen CMS státusz.");
29
+ }
30
+ const formatRaw = optionalText(value("body_format"), 40) || "markdown";
31
+ if (!cms_1.CMS_BODY_FORMATS.includes(formatRaw)) {
32
+ throw new Error("Érvénytelen tartalomformátum.");
33
+ }
34
+ let publishedAt = dateValue(value("published_at"));
35
+ if (statusRaw === "published" && !publishedAt)
36
+ publishedAt = new Date();
37
+ if (statusRaw === "scheduled" && !publishedAt) {
38
+ throw new Error("Időzített publikáláshoz publikálási időpont szükséges.");
39
+ }
40
+ const authorId = hasOwn(body, "author_id")
41
+ ? body.author_id
42
+ : current
43
+ ? current.author_id
44
+ : defaults.actorId;
45
+ const termsValue = hasOwn(body, "term_ids")
46
+ ? body.term_ids
47
+ : hasOwn(body, "terms")
48
+ ? body.terms
49
+ : current?.terms;
50
+ return {
51
+ content_type: contentType,
52
+ status: statusRaw,
53
+ title,
54
+ slug,
55
+ excerpt: optionalText(value("excerpt"), 5000),
56
+ body: optionalText(value("body"), 500_000),
57
+ body_format: formatRaw,
58
+ blocks: jsonObjectOrArray(value("blocks")),
59
+ featured_image_url: optionalText(value("featured_image_url"), 2000),
60
+ featured_image_alt: optionalText(value("featured_image_alt"), 500),
61
+ author_id: optionalText(authorId, 255),
62
+ author_name: optionalText(value("author_name"), 240),
63
+ seo_title: optionalText(value("seo_title"), 500),
64
+ seo_description: optionalText(value("seo_description"), 2000),
65
+ canonical_url: optionalText(value("canonical_url"), 2000),
66
+ noindex: booleanValue(value("noindex")),
67
+ og_image_url: optionalText(value("og_image_url"), 2000),
68
+ published_at: publishedAt,
69
+ sort_order: integerValue(value("sort_order"), 0),
70
+ custom_fields: jsonObject(value("custom_fields")),
71
+ terms: normalizeIds(termsValue),
72
+ };
73
+ }
74
+ function normalizeCmsTaxonomyInput(body, current) {
75
+ const value = (key) => fieldValue(body, key, current);
76
+ const taxonomy = optionalText(value("taxonomy"), 40) || "category";
77
+ if (!cms_1.CMS_TAXONOMIES.includes(taxonomy)) {
78
+ throw new Error("Érvénytelen taxonómia.");
79
+ }
80
+ const name = requiredText(value("name"), "Név", 240);
81
+ const slug = slugifyCms(value("slug") || name);
82
+ if (!slug)
83
+ throw new Error("Érvényes taxonómia slug szükséges.");
84
+ return {
85
+ taxonomy,
86
+ name,
87
+ slug,
88
+ description: optionalText(value("description"), 5000),
89
+ metadata: jsonObject(value("metadata")),
90
+ };
91
+ }
92
+ function isCmsEntryPublic(entry, now = new Date()) {
93
+ if (entry.status !== "published" && entry.status !== "scheduled")
94
+ return false;
95
+ const publishedAt = dateValue(entry.published_at);
96
+ if (!publishedAt)
97
+ return entry.status === "published";
98
+ return publishedAt.getTime() <= now.getTime();
99
+ }
100
+ function publicCmsEntry(entry, locale) {
101
+ return {
102
+ id: entry.id,
103
+ content_type: entry.content_type,
104
+ title: entry.title,
105
+ slug: entry.slug,
106
+ excerpt: entry.excerpt ?? null,
107
+ body: entry.body ?? null,
108
+ body_format: entry.body_format,
109
+ blocks: entry.blocks ?? null,
110
+ locale: locale || null,
111
+ featured_image_url: entry.featured_image_url ?? null,
112
+ featured_image_alt: entry.featured_image_alt ?? null,
113
+ author_name: entry.author_name ?? null,
114
+ seo_title: entry.seo_title ?? null,
115
+ seo_description: entry.seo_description ?? null,
116
+ canonical_url: entry.canonical_url ?? null,
117
+ noindex: entry.noindex === true,
118
+ og_image_url: entry.og_image_url ?? null,
119
+ published_at: entry.published_at ?? null,
120
+ sort_order: Number(entry.sort_order || 0),
121
+ custom_fields: entry.custom_fields ?? null,
122
+ terms: Array.isArray(entry.terms)
123
+ ? entry.terms.map((term) => ({
124
+ id: term.id,
125
+ taxonomy: term.taxonomy,
126
+ name: term.name,
127
+ slug: term.slug,
128
+ description: term.description ?? null,
129
+ locale: locale || null,
130
+ }))
131
+ : [],
132
+ created_at: entry.created_at,
133
+ updated_at: entry.updated_at,
134
+ };
135
+ }
136
+ function fieldValue(body, key, current) {
137
+ return hasOwn(body, key) ? body[key] : current?.[key];
138
+ }
139
+ function hasOwn(value, key) {
140
+ return Object.prototype.hasOwnProperty.call(value, key);
141
+ }
142
+ function normalizeIds(value) {
143
+ if (!Array.isArray(value))
144
+ return [];
145
+ return [...new Set(value.map((item) => {
146
+ if (typeof item === "string")
147
+ return item.trim();
148
+ if (item && typeof item === "object" && "id" in item)
149
+ return String(item.id || "").trim();
150
+ return "";
151
+ }).filter(Boolean))].slice(0, 100);
152
+ }
153
+ function requiredText(value, label, max) {
154
+ const result = optionalText(value, max);
155
+ if (!result)
156
+ throw new Error(`${label} megadása kötelező.`);
157
+ return result;
158
+ }
159
+ function optionalText(value, max) {
160
+ if (typeof value !== "string")
161
+ return null;
162
+ const result = value.trim();
163
+ return result ? result.slice(0, max) : null;
164
+ }
165
+ function booleanValue(value) {
166
+ return value === true || value === "true" || value === 1 || value === "1";
167
+ }
168
+ function integerValue(value, fallback) {
169
+ const number = Number(value);
170
+ return Number.isFinite(number) ? Math.trunc(number) : fallback;
171
+ }
172
+ function dateValue(value) {
173
+ if (!value)
174
+ return null;
175
+ if (value instanceof Date)
176
+ return Number.isNaN(value.getTime()) ? null : value;
177
+ if (typeof value !== "string" && typeof value !== "number")
178
+ return null;
179
+ const date = new Date(value);
180
+ return Number.isNaN(date.getTime()) ? null : date;
181
+ }
182
+ function jsonObject(value) {
183
+ return value && typeof value === "object" && !Array.isArray(value)
184
+ ? value
185
+ : null;
186
+ }
187
+ function jsonObjectOrArray(value) {
188
+ return value && typeof value === "object" ? value : null;
189
+ }
190
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9jbXMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFRQSxnQ0FTQztBQUVELHdEQStEQztBQUVELDhEQW1CQztBQUVELDRDQUtDO0FBRUQsd0NBbUNDO0FBbkpELHNDQUlxQjtBQUlyQixTQUFnQixVQUFVLENBQUMsS0FBYztJQUN2QyxNQUFNLEtBQUssR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFBO0lBQzNELE9BQU8sS0FBSztTQUNULFNBQVMsQ0FBQyxLQUFLLENBQUM7U0FDaEIsT0FBTyxDQUFDLGtCQUFrQixFQUFFLEVBQUUsQ0FBQztTQUMvQixXQUFXLEVBQUU7U0FDYixPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQztTQUMzQixPQUFPLENBQUMsVUFBVSxFQUFFLEVBQUUsQ0FBQztTQUN2QixLQUFLLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0FBQ2xCLENBQUM7QUFFRCxTQUFnQixzQkFBc0IsQ0FDcEMsSUFBNkIsRUFDN0IsUUFBcUMsRUFDckMsT0FBNkI7SUFFN0IsTUFBTSxLQUFLLEdBQUcsQ0FBQyxHQUFXLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsR0FBRyxFQUFFLE9BQU8sQ0FBQyxDQUFBO0lBRTdELE1BQU0sV0FBVyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLEVBQUUsZUFBZSxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQzVFLE1BQU0sS0FBSyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEVBQUUsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ3RELE1BQU0sSUFBSSxHQUFHLFVBQVUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFD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
@@ -23,7 +23,7 @@ if (!registry_1.INTEGRATION_DEFINITIONS.some((item) => item.key === "arukereso")
23
23
  restartRequired: false,
24
24
  fields: [
25
25
  text("ARUKERESO_STOREFRONT_URL", "Storefront URL", "A publikus webshop originje. Üresen a STOREFRONT_URL értéke."),
26
- text("ARUKERESO_PRODUCT_PATH_TEMPLATE", "Termék URL sablon", "Alapérték: /{country_code}/products/{handle}?v_id={variant_id}."),
26
+ text("ARUKERESO_PRODUCT_PATH_TEMPLATE", "Termék URL sablon", "Alapérték: /hu/termekek/{handle}?v_id={variant_id}."),
27
27
  text("ARUKERESO_SALES_CHANNEL_ID", "Sales Channel ID", "Opcionális. Ha meg van adva, csak az ebbe a sales channelbe tartozó termékek kerülnek a feedbe."),
28
28
  text("ARUKERESO_DEFAULT_MANUFACTURER", "Alapértelmezett gyártó", "Csak akkor töltsd ki, ha valóban minden exportált termékre ugyanaz a gyártó igaz."),
29
29
  bool("ARUKERESO_USE_SKU_AS_PRODUCT_NUMBER", "SKU használata ProductNumberként", "Csak akkor kapcsold be, ha a Medusa SKU ténylegesen a gyártó cikkszáma."),
@@ -34,4 +34,4 @@ if (!registry_1.INTEGRATION_DEFINITIONS.some((item) => item.key === "arukereso")
34
34
  };
35
35
  registry_1.INTEGRATION_DEFINITIONS.push(definition);
36
36
  }
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ1a2VyZXNvLXJlZ2lzdHJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uLXNldHRpbmdzL2FydWtlcmVzby1yZWdpc3RyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FJbUI7QUFFbkIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLElBQWEsRUFBb0IsRUFBRSxDQUFDLENBQUM7SUFDOUUsSUFBSTtJQUNKLEtBQUs7SUFDTCxJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUk7Q0FDTCxDQUFDLENBQUE7QUFFRixNQUFNLElBQUksR0FBRyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsSUFBYSxFQUFvQixFQUFFLENBQUMsQ0FBQztJQUM5RSxJQUFJO0lBQ0osS0FBSztJQUNMLElBQUksRUFBRSxTQUFTO0lBQ2YsSUFBSTtDQUNMLENBQUMsQ0FBQTtBQUVGLElBQUksQ0FBQyxrQ0FBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxDQUFDLEVBQUUsQ0FBQztJQUN0RSxNQUFNLFVBQVUsR0FBMEI7UUFDeEMsR0FBRyxFQUFFLFdBQVc7UUFDaEIsS0FBSyxFQUFFLGNBQWM7UUFDckIsUUFBUSxFQUFFLFdBQVc7UUFDckIsV0FBVyxFQUNULHdGQUF3RjtRQUMxRixVQUFVLEVBQUUsbUJBQW1CO1FBQy9CLGVBQWUsRUFBRSxLQUFLO1FBQ3RCLE1BQU0sRUFBRTtZQUNOLElBQUksQ0FDRiwwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ2hCLDhEQUE4RCxDQUMvRDtZQUNELElBQUksQ0FDRixpQ0FBaUMsRUFDakMsbUJBQW1CLEVBQ25CLGlFQUFpRSxDQUNsRTtZQUNELElBQUksQ0FDRiw0QkFBNEIsRUFDNUIsa0JBQWtCLEVBQ2xCLGlHQUFpRyxDQUNsRztZQUNELElBQUksQ0FDRixnQ0FBZ0MsRUFDaEMsd0JBQXdCLEVBQ3hCLG1GQUFtRixDQUNwRjtZQUNELElBQUksQ0FDRixxQ0FBcUMsRUFDckMsa0NBQWtDLEVBQ2xDLHlFQUF5RSxDQUMxRTtZQUNELElBQUksQ0FDRixnQ0FBZ0MsRUFDaEMsNEJBQTRCLEVBQzVCLCtFQUErRSxDQUNoRjtZQUNELElBQUksQ0FDRixpQ0FBaUMsRUFDakMsZ0NBQWdDLEVBQ2hDLHdGQUF3RixDQUN6RjtZQUNELElBQUksQ0FDRixpQ0FBaUMsRUFDakMseUJBQXlCLEVBQ3pCLGlGQUFpRixDQUNsRjtTQUNGO0tBQ0YsQ0FBQTtJQUVELGtDQUF1QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQUMxQyxDQUFDIn0=
37
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXJ1a2VyZXNvLXJlZ2lzdHJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uLXNldHRpbmdzL2FydWtlcmVzby1yZWdpc3RyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FJbUI7QUFFbkIsTUFBTSxJQUFJLEdBQUcsQ0FBQyxJQUFZLEVBQUUsS0FBYSxFQUFFLElBQWEsRUFBb0IsRUFBRSxDQUFDLENBQUM7SUFDOUUsSUFBSTtJQUNKLEtBQUs7SUFDTCxJQUFJLEVBQUUsTUFBTTtJQUNaLElBQUk7Q0FDTCxDQUFDLENBQUE7QUFFRixNQUFNLElBQUksR0FBRyxDQUFDLElBQVksRUFBRSxLQUFhLEVBQUUsSUFBYSxFQUFvQixFQUFFLENBQUMsQ0FBQztJQUM5RSxJQUFJO0lBQ0osS0FBSztJQUNMLElBQUksRUFBRSxTQUFTO0lBQ2YsSUFBSTtDQUNMLENBQUMsQ0FBQTtBQUVGLElBQUksQ0FBQyxrQ0FBdUIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEtBQUssV0FBVyxDQUFDLEVBQUUsQ0FBQztJQUN0RSxNQUFNLFVBQVUsR0FBMEI7UUFDeEMsR0FBRyxFQUFFLFdBQVc7UUFDaEIsS0FBSyxFQUFFLGNBQWM7UUFDckIsUUFBUSxFQUFFLFdBQVc7UUFDckIsV0FBVyxFQUNULHdGQUF3RjtRQUMxRixVQUFVLEVBQUUsbUJBQW1CO1FBQy9CLGVBQWUsRUFBRSxLQUFLO1FBQ3RCLE1BQU0sRUFBRTtZQUNOLElBQUksQ0FDRiwwQkFBMEIsRUFDMUIsZ0JBQWdCLEVBQ2hCLDhEQUE4RCxDQUMvRDtZQUNELElBQUksQ0FDRixpQ0FBaUMsRUFDakMsbUJBQW1CLEVBQ25CLHFEQUFxRCxDQUN0RDtZQUNELElBQUksQ0FDRiw0QkFBNEIsRUFDNUIsa0JBQWtCLEVBQ2xCLGlHQUFpRyxDQUNsRztZQUNELElBQUksQ0FDRixnQ0FBZ0MsRUFDaEMsd0JBQXdCLEVBQ3hCLG1GQUFtRixDQUNwRjtZQUNELElBQUksQ0FDRixxQ0FBcUMsRUFDckMsa0NBQWtDLEVBQ2xDLHlFQUF5RSxDQUMxRTtZQUNELElBQUksQ0FDRixnQ0FBZ0MsRUFDaEMsNEJBQTRCLEVBQzVCLCtFQUErRSxDQUNoRjtZQUNELElBQUksQ0FDRixpQ0FBaUMsRUFDakMsZ0NBQWdDLEVBQ2hDLHdGQUF3RixDQUN6RjtZQUNELElBQUksQ0FDRixpQ0FBaUMsRUFDakMseUJBQXlCLEVBQ3pCLGlGQUFpRixDQUNsRjtTQUNGO0tBQ0YsQ0FBQTtJQUVELGtDQUF1QixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQTtBQUMxQyxDQUFDIn0=
@@ -15,8 +15,12 @@ if (!registry_1.INTEGRATION_DEFINITIONS.some((item) => item.key === "google-merc
15
15
  fields: [
16
16
  text("GOOGLE_MERCHANT_COUNTRY_CODE", "Célország", "Kétbetűs ISO országkód, például HU. Üresen a STORE_DEFAULT_COUNTRY értéke."),
17
17
  text("GOOGLE_MERCHANT_CURRENCY_CODE", "Pénznem", "Hárombetűs ISO pénznem, például HUF. Üresen a STORE_DEFAULT_CURRENCY értéke."),
18
+ select("GOOGLE_MERCHANT_LOCALE", "Feed nyelve", [
19
+ { label: "Magyar (hu-HU)", value: "hu-HU" },
20
+ { label: "Angol (en-US)", value: "en-US" },
21
+ ]),
18
22
  text("GOOGLE_MERCHANT_STOREFRONT_URL", "Storefront URL", "A publikus webshop originje. Üresen a STOREFRONT_URL értéke."),
19
- text("GOOGLE_MERCHANT_PRODUCT_PATH_TEMPLATE", "Termék URL sablon", "Alapérték: /{country_code}/products/{handle}?v_id={variant_id}. Használható: {country_code}, {currency_code}, {handle}, {variant_id}."),
23
+ text("GOOGLE_MERCHANT_PRODUCT_PATH_TEMPLATE", "Termék URL sablon", "Alapérték: /{locale}/{products_segment}/{handle}?v_id={variant_id}. Használható: {locale}, {products_segment}, {country_code}, {currency_code}, {handle}, {variant_id}."),
20
24
  text("GOOGLE_MERCHANT_SALES_CHANNEL_ID", "Sales Channel ID", "Opcionális. Ha meg van adva, csak az ebbe a Medusa sales channelbe tartozó termékek kerülnek a feedbe."),
21
25
  text("GOOGLE_MERCHANT_DEFAULT_BRAND", "Alapértelmezett márka", "Csak akkor használd, ha ez ténylegesen minden érintett termékre igaz. Termék/variant metadata felülírhatja."),
22
26
  select("GOOGLE_MERCHANT_DEFAULT_CONDITION", "Alapértelmezett állapot", [
@@ -31,4 +35,4 @@ if (!registry_1.INTEGRATION_DEFINITIONS.some((item) => item.key === "google-merc
31
35
  };
32
36
  registry_1.INTEGRATION_DEFINITIONS.push(definition);
33
37
  }
34
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1lcmNoYW50LXJlZ2lzdHJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uLXNldHRpbmdzL2dvb2dsZS1tZXJjaGFudC1yZWdpc3RyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FJbUI7QUFFbkIsTUFBTSxJQUFJLEdBQUcsQ0FDWCxJQUFZLEVBQ1osS0FBYSxFQUNiLElBQWEsRUFDSyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBRTVELE1BQU0sSUFBSSxHQUFHLENBQ1gsSUFBWSxFQUNaLEtBQWEsRUFDYixJQUFhLEVBQ0ssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUUvRCxNQUFNLE1BQU0sR0FBRyxDQUNiLElBQVksRUFDWixLQUFhLEVBQ2IsT0FBZ0QsRUFDOUIsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtBQUVqRSxJQUFJLENBQUMsa0NBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztJQUM1RSxNQUFNLFVBQVUsR0FBMEI7UUFDeEMsR0FBRyxFQUFFLGlCQUFpQjtRQUN0QixLQUFLLEVBQUUsd0JBQXdCO1FBQy9CLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCxzR0FBc0c7UUFDeEcsVUFBVSxFQUFFLHlCQUF5QjtRQUNyQyxlQUFlLEVBQUUsS0FBSztRQUN0QixNQUFNLEVBQUU7WUFDTixJQUFJLENBQ0YsOEJBQThCLEVBQzlCLFdBQVcsRUFDWCw0RUFBNEUsQ0FDN0U7WUFDRCxJQUFJLENBQ0YsK0JBQStCLEVBQy9CLFNBQVMsRUFDVCw4RUFBOEUsQ0FDL0U7WUFDRCxJQUFJLENBQ0YsZ0NBQWdDLEVBQ2hDLGdCQUFnQixFQUNoQiw4REFBOEQsQ0FDL0Q7WUFDRCxJQUFJLENBQ0YsdUNBQXVDLEVBQ3ZDLG1CQUFtQixFQUNuQix1SUFBdUksQ0FDeEk7WUFDRCxJQUFJLENBQ0Ysa0NBQWtDLEVBQ2xDLGtCQUFrQixFQUNsQix3R0FBd0csQ0FDekc7WUFDRCxJQUFJLENBQ0YsK0JBQStCLEVBQy9CLHVCQUF1QixFQUN2Qiw2R0FBNkcsQ0FDOUc7WUFDRCxNQUFNLENBQUMsbUNBQW1DLEVBQUUseUJBQXlCLEVBQUU7Z0JBQ3JFLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO2dCQUM3QixFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLGFBQWEsRUFBRTtnQkFDN0MsRUFBRSxLQUFLLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUU7YUFDckMsQ0FBQztZQUNGLElBQUksQ0FDRixzQ0FBc0MsRUFDdEMsNEJBQTRCLEVBQzVCLHdIQUF3SCxDQUN6SDtZQUNELElBQUksQ0FBQyw0QkFBNEIsRUFBRSxXQUFXLENBQUM7WUFDL0MsSUFBSSxDQUFDLGtDQUFrQyxFQUFFLGNBQWMsQ0FBQztTQUN6RDtLQUNGLENBQUE7SUFFRCxrQ0FBdUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUE7QUFDMUMsQ0FBQyJ9
38
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ29vZ2xlLW1lcmNoYW50LXJlZ2lzdHJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9tb2R1bGVzL2ludGVncmF0aW9uLXNldHRpbmdzL2dvb2dsZS1tZXJjaGFudC1yZWdpc3RyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFBQSx5Q0FJbUI7QUFFbkIsTUFBTSxJQUFJLEdBQUcsQ0FDWCxJQUFZLEVBQ1osS0FBYSxFQUNiLElBQWEsRUFDSyxFQUFFLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFBO0FBRTVELE1BQU0sSUFBSSxHQUFHLENBQ1gsSUFBWSxFQUNaLEtBQWEsRUFDYixJQUFhLEVBQ0ssRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtBQUUvRCxNQUFNLE1BQU0sR0FBRyxDQUNiLElBQVksRUFDWixLQUFhLEVBQ2IsT0FBZ0QsRUFDOUIsRUFBRSxDQUFDLENBQUMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQTtBQUVqRSxJQUFJLENBQUMsa0NBQXVCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxLQUFLLGlCQUFpQixDQUFDLEVBQUUsQ0FBQztJQUM1RSxNQUFNLFVBQVUsR0FBMEI7UUFDeEMsR0FBRyxFQUFFLGlCQUFpQjtRQUN0QixLQUFLLEVBQUUsd0JBQXdCO1FBQy9CLFFBQVEsRUFBRSxXQUFXO1FBQ3JCLFdBQVcsRUFDVCxzR0FBc0c7UUFDeEcsVUFBVSxFQUFFLHlCQUF5QjtRQUNyQyxlQUFlLEVBQUUsS0FBSztRQUN0QixNQUFNLEVBQUU7WUFDTixJQUFJLENBQ0YsOEJBQThCLEVBQzlCLFdBQVcsRUFDWCw0RUFBNEUsQ0FDN0U7WUFDRCxJQUFJLENBQ0YsK0JBQStCLEVBQy9CLFNBQVMsRUFDVCw4RUFBOEUsQ0FDL0U7WUFDRCxNQUFNLENBQUMsd0JBQXdCLEVBQUUsYUFBYSxFQUFFO2dCQUM5QyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFO2dCQUMzQyxFQUFFLEtBQUssRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRTthQUMzQyxDQUFDO1lBQ0YsSUFBSSxDQUNGLGdDQUFnQyxFQUNoQyxnQkFBZ0IsRUFDaEIsOERBQThELENBQy9EO1lBQ0QsSUFBSSxDQUNGLHVDQUF1QyxFQUN2QyxtQkFBbUIsRUFDbkIseUtBQXlLLENBQzFLO1lBQ0QsSUFBSSxDQUNGLGtDQUFrQyxFQUNsQyxrQkFBa0IsRUFDbEIsd0dBQXdHLENBQ3pHO1lBQ0QsSUFBSSxDQUNGLCtCQUErQixFQUMvQix1QkFBdUIsRUFDdkIsNkdBQTZHLENBQzlHO1lBQ0QsTUFBTSxDQUFDLG1DQUFtQyxFQUFFLHlCQUF5QixFQUFFO2dCQUNyRSxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtnQkFDN0IsRUFBRSxLQUFLLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUU7Z0JBQzdDLEVBQUUsS0FBSyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFO2FBQ3JDLENBQUM7WUFDRixJQUFJLENBQ0Ysc0NBQXNDLEVBQ3RDLDRCQUE0QixFQUM1Qix3SEFBd0gsQ0FDekg7WUFDRCxJQUFJLENBQUMsNEJBQTRCLEVBQUUsV0FBVyxDQUFDO1lBQy9DLElBQUksQ0FBQyxrQ0FBa0MsRUFBRSxjQUFjLENBQUM7U0FDekQ7S0FDRixDQUFBO0lBRUQsa0NBQXVCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFBO0FBQzFDLENBQUMifQ==
@@ -0,0 +1,37 @@
1
+ export type LeadFieldType = "text" | "textarea" | "email" | "phone" | "number" | "boolean" | "select";
2
+ export type LeadFieldDefinition = {
3
+ key: string;
4
+ label: string;
5
+ type: LeadFieldType;
6
+ required: boolean;
7
+ options?: string[];
8
+ };
9
+ export type LeadFormDefinition = {
10
+ key: string;
11
+ label: string;
12
+ enabled: boolean;
13
+ fields: LeadFieldDefinition[];
14
+ required_standard_fields: Array<"name" | "email" | "phone" | "company" | "message">;
15
+ privacy: {
16
+ required: boolean;
17
+ version: string;
18
+ url: string | null;
19
+ label: string;
20
+ };
21
+ };
22
+ export type LeadConfig = {
23
+ enabled: boolean;
24
+ emailEnabled: boolean;
25
+ customerEmailEnabled: boolean;
26
+ adminEmails: string[];
27
+ forms: LeadFormDefinition[];
28
+ honeypotField: string;
29
+ rateLimitMax: number;
30
+ rateLimitWindowSeconds: number;
31
+ turnstile: {
32
+ enabled: boolean;
33
+ siteKey: string | null;
34
+ secretKey: string | null;
35
+ };
36
+ };
37
+ export declare function loadLeadConfig(env?: NodeJS.ProcessEnv): LeadConfig;
@@ -0,0 +1,147 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.loadLeadConfig = loadLeadConfig;
4
+ const DEFAULT_FORM = {
5
+ key: "contact",
6
+ label: "Kapcsolat",
7
+ enabled: true,
8
+ fields: [],
9
+ required_standard_fields: ["name", "email", "message"],
10
+ privacy: {
11
+ required: true,
12
+ version: "1",
13
+ url: null,
14
+ label: "Elfogadom az adatkezelési tájékoztatót.",
15
+ },
16
+ };
17
+ function loadLeadConfig(env = process.env) {
18
+ const forms = parseForms(env.LEAD_FORMS_JSON, env);
19
+ const secretKey = text(env.LEAD_TURNSTILE_SECRET_KEY);
20
+ const siteKey = text(env.LEAD_TURNSTILE_SITE_KEY);
21
+ return {
22
+ enabled: env.LEADS_ENABLED !== "false",
23
+ emailEnabled: env.LEAD_EMAIL_ENABLED !== "false",
24
+ customerEmailEnabled: env.LEAD_CUSTOMER_EMAIL_ENABLED === "true",
25
+ adminEmails: csv(env.LEAD_ADMIN_EMAILS || env.SUPPORT_EMAIL || env.ORDER_EMAIL),
26
+ forms,
27
+ honeypotField: text(env.LEAD_HONEYPOT_FIELD) || "website",
28
+ rateLimitMax: positiveInt(env.LEAD_RATE_LIMIT_MAX, 8),
29
+ rateLimitWindowSeconds: positiveInt(env.LEAD_RATE_LIMIT_WINDOW_SECONDS, 600),
30
+ turnstile: {
31
+ enabled: Boolean(secretKey && siteKey),
32
+ siteKey,
33
+ secretKey,
34
+ },
35
+ };
36
+ }
37
+ function parseForms(raw, env) {
38
+ const defaultPrivacy = {
39
+ required: true,
40
+ version: text(env.LEAD_PRIVACY_POLICY_VERSION) || "1",
41
+ url: text(env.LEAD_PRIVACY_POLICY_URL),
42
+ label: text(env.LEAD_PRIVACY_POLICY_LABEL) || DEFAULT_FORM.privacy.label,
43
+ };
44
+ if (!raw?.trim())
45
+ return [{ ...DEFAULT_FORM, privacy: defaultPrivacy }];
46
+ let parsed;
47
+ try {
48
+ parsed = JSON.parse(raw);
49
+ }
50
+ catch {
51
+ throw new Error("LEAD_FORMS_JSON nem érvényes JSON.");
52
+ }
53
+ if (!Array.isArray(parsed) || !parsed.length) {
54
+ throw new Error("LEAD_FORMS_JSON legalább egy űrlapdefiníciót kell tartalmazzon.");
55
+ }
56
+ const seen = new Set();
57
+ return parsed.map((entry, index) => {
58
+ if (!entry || typeof entry !== "object" || Array.isArray(entry)) {
59
+ throw new Error(`Érvénytelen lead űrlapdefiníció a(z) ${index + 1}. helyen.`);
60
+ }
61
+ const row = entry;
62
+ const key = requiredKey(row.key, `LEAD_FORMS_JSON[${index}].key`);
63
+ if (seen.has(key))
64
+ throw new Error(`Duplikált lead form key: ${key}`);
65
+ seen.add(key);
66
+ const privacyRaw = row.privacy && typeof row.privacy === "object" && !Array.isArray(row.privacy)
67
+ ? row.privacy
68
+ : {};
69
+ return {
70
+ key,
71
+ label: stringValue(row.label) || key,
72
+ enabled: row.enabled !== false,
73
+ fields: parseFields(row.fields, key),
74
+ required_standard_fields: parseRequiredStandardFields(row.required_standard_fields),
75
+ privacy: {
76
+ required: privacyRaw.required !== false,
77
+ version: stringValue(privacyRaw.version) || defaultPrivacy.version,
78
+ url: stringValue(privacyRaw.url) || defaultPrivacy.url,
79
+ label: stringValue(privacyRaw.label) || defaultPrivacy.label,
80
+ },
81
+ };
82
+ });
83
+ }
84
+ function parseFields(value, formKey) {
85
+ if (value == null)
86
+ return [];
87
+ if (!Array.isArray(value))
88
+ throw new Error(`${formKey}.fields csak lista lehet.`);
89
+ if (value.length > 50)
90
+ throw new Error(`${formKey}.fields legfeljebb 50 mezőt tartalmazhat.`);
91
+ const seen = new Set();
92
+ return value.map((raw, index) => {
93
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
94
+ throw new Error(`${formKey}.fields[${index}] érvénytelen.`);
95
+ const row = raw;
96
+ const key = requiredKey(row.key, `${formKey}.fields[${index}].key`);
97
+ if (seen.has(key))
98
+ throw new Error(`Duplikált lead mező: ${formKey}.${key}`);
99
+ seen.add(key);
100
+ const type = stringValue(row.type) || "text";
101
+ if (!["text", "textarea", "email", "phone", "number", "boolean", "select"].includes(type)) {
102
+ throw new Error(`Ismeretlen lead mezőtípus: ${type}`);
103
+ }
104
+ const options = Array.isArray(row.options)
105
+ ? row.options.map(stringValue).filter((item) => Boolean(item)).slice(0, 100)
106
+ : undefined;
107
+ if (type === "select" && !options?.length)
108
+ throw new Error(`${formKey}.${key} select mezőhöz options szükséges.`);
109
+ return {
110
+ key,
111
+ label: stringValue(row.label) || key,
112
+ type: type,
113
+ required: row.required === true,
114
+ options,
115
+ };
116
+ });
117
+ }
118
+ function parseRequiredStandardFields(value) {
119
+ if (!Array.isArray(value))
120
+ return [...DEFAULT_FORM.required_standard_fields];
121
+ const allowed = new Set(["name", "email", "phone", "company", "message"]);
122
+ return [...new Set(value.map(stringValue).filter((item) => Boolean(item && allowed.has(item))))];
123
+ }
124
+ function requiredKey(value, label) {
125
+ const result = stringValue(value);
126
+ if (!result || !/^[a-z0-9][a-z0-9_-]{0,79}$/i.test(result))
127
+ throw new Error(`${label} érvénytelen.`);
128
+ return result;
129
+ }
130
+ function stringValue(value) {
131
+ if (typeof value !== "string")
132
+ return null;
133
+ const result = value.trim();
134
+ return result || null;
135
+ }
136
+ function text(value) {
137
+ const result = value?.trim();
138
+ return result || null;
139
+ }
140
+ function csv(value) {
141
+ return (value || "").split(",").map((item) => item.trim()).filter(Boolean);
142
+ }
143
+ function positiveInt(value, fallback) {
144
+ const parsed = Number(value);
145
+ return Number.isInteger(parsed) && parsed > 0 ? parsed : fallback;
146
+ }
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL21vZHVsZXMvbGVhZC9jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFzREEsd0NBb0JDO0FBbENELE1BQU0sWUFBWSxHQUF1QjtJQUN2QyxHQUFHLEVBQUUsU0FBUztJQUNkLEtBQUssRUFBRSxXQUFXO0lBQ2xCLE9BQU8sRUFBRSxJQUFJO0lBQ2IsTUFBTSxFQUFFLEVBQUU7SUFDVix3QkFBd0IsRUFBRSxDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsU0FBUyxDQUFDO0lBQ3RELE9BQU8sRUFBRTtRQUNQLFFBQVEsRUFBRSxJQUFJO1FBQ2QsT0FBTyxFQUFFLEdBQUc7UUFDWixHQUFHLEVBQUUsSUFBSTtRQUNULEtBQUssRUFBRSx5Q0FBeUM7S0FDakQ7Q0FDRixDQUFBO0FBRUQsU0FBZ0IsY0FBYyxDQUFDLE1BQXlCLE9BQU8sQ0FBQyxHQUFHO0lBQ2pFLE1BQU0sS0FBSyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUMsZUFBZSxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ2xELE1BQU0sU0FBUyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMseUJBQXlCLENBQUMsQ0FBQTtJQUNyRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDLHVCQUF1QixDQUFDLENBQUE7SUFFakQsT0FBTztRQUNMLE9BQU8sRUFBRSxHQUFHLENBQUMsYUFBYSxLQUFLLE9BQU87UUFDdEMsWUFBWSxFQUFFLEdBQUcsQ0FBQyxrQkFBa0IsS0FBSyxPQUFPO1FBQ2hELG9CQUFvQixFQUFFLEdBQUcsQ0FBQywyQkFBMkIsS0FBSyxNQUFNO1FBQ2hFLFdBQVcsRUFBRSxHQUFHLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLEdBQUcsQ0FBQyxhQUFhLElBQUksR0FBRyxDQUFDLFdBQVcsQ0FBQztRQUMvRSxLQUFLO1FBQ0wsYUFBYSxFQUFFLElBQUksQ0FBQyxH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
@@ -0,0 +1,17 @@
1
+ type LeadLike = Record<string, any>;
2
+ export declare function leadAdminEmail(lead: LeadLike, brand?: string): {
3
+ subject: string;
4
+ text: string;
5
+ html: string;
6
+ };
7
+ export declare function leadCustomerEmail(lead: LeadLike, brand?: string): {
8
+ subject: string;
9
+ text: string;
10
+ html: string;
11
+ };
12
+ export declare function leadStatusEmail(lead: LeadLike, brand?: string): {
13
+ subject: string;
14
+ text: string;
15
+ html: string;
16
+ };
17
+ export {};
@@ -0,0 +1,68 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.leadAdminEmail = leadAdminEmail;
4
+ exports.leadCustomerEmail = leadCustomerEmail;
5
+ exports.leadStatusEmail = leadStatusEmail;
6
+ function leadAdminEmail(lead, brand = "HSZRDM Commerce") {
7
+ const subject = `Új érdeklődő – ${text(lead.name) || text(lead.company) || text(lead.email) || text(lead.id)}`;
8
+ const body = [
9
+ `Új lead érkezett a ${brand} rendszerbe.`,
10
+ "",
11
+ `Űrlap: ${text(lead.form_key) || "—"}`,
12
+ `Azonosító: ${text(lead.id)}`,
13
+ `Név: ${text(lead.name) || "—"}`,
14
+ `Cég: ${text(lead.company) || "—"}`,
15
+ `E-mail: ${text(lead.email) || "—"}`,
16
+ `Telefon: ${text(lead.phone) || "—"}`,
17
+ lead.message ? `Üzenet: ${text(lead.message)}` : "",
18
+ ].filter(Boolean).join("\n");
19
+ return { subject, text: body, html: simpleHtml(body) };
20
+ }
21
+ function leadCustomerEmail(lead, brand = "HSZRDM Commerce") {
22
+ const subject = `Megkaptuk az üzeneted – ${brand}`;
23
+ const body = [
24
+ `Kedves ${text(lead.name) || "Érdeklődő"}!`,
25
+ "",
26
+ "Megkaptuk az üzenetedet, hamarosan jelentkezünk.",
27
+ `Azonosító: ${text(lead.id)}`,
28
+ "",
29
+ brand,
30
+ ].join("\n");
31
+ return { subject, text: body, html: simpleHtml(body) };
32
+ }
33
+ function leadStatusEmail(lead, brand = "HSZRDM Commerce") {
34
+ const labels = {
35
+ contacted: "felvettük veled a kapcsolatot",
36
+ qualified: "feldolgozás alatt",
37
+ won: "sikeresen lezárva",
38
+ lost: "lezárva",
39
+ closed: "lezárva",
40
+ };
41
+ const label = labels[text(lead.status)] || text(lead.status);
42
+ const subject = `Érdeklődés frissítés – ${brand}`;
43
+ const body = [
44
+ `Kedves ${text(lead.name) || "Érdeklődő"}!`,
45
+ "",
46
+ `Az érdeklődésed státusza frissült: ${label}.`,
47
+ `Azonosító: ${text(lead.id)}`,
48
+ "",
49
+ brand,
50
+ ].join("\n");
51
+ return { subject, text: body, html: simpleHtml(body) };
52
+ }
53
+ function simpleHtml(value) {
54
+ return `<div style="font-family:Arial,sans-serif;white-space:pre-line">${escapeHtml(value)}</div>`;
55
+ }
56
+ function escapeHtml(value) {
57
+ return value.replace(/[&<>"']/g, (char) => ({
58
+ "&": "&amp;",
59
+ "<": "&lt;",
60
+ ">": "&gt;",
61
+ '"': "&quot;",
62
+ "'": "&#39;",
63
+ })[char] || char);
64
+ }
65
+ function text(value) {
66
+ return typeof value === "string" ? value.trim() : "";
67
+ }
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9sZWFkL2VtYWlsLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBRUEsd0NBY0M7QUFFRCw4Q0FXQztBQUVELDBDQW1CQztBQWhERCxTQUFnQixjQUFjLENBQUMsSUFBYyxFQUFFLEtBQUssR0FBRyxpQkFBaUI7SUFDdEUsTUFBTSxPQUFPLEdBQUcsa0JBQWtCLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQTtJQUM5RyxNQUFNLElBQUksR0FBRztRQUNYLHNCQUFzQixLQUFLLGNBQWM7UUFDekMsRUFBRTtRQUNGLFVBQVUsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxHQUFHLEVBQUU7UUFDdEMsY0FBYyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxFQUFFO1FBQzdCLFFBQVEsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxHQUFHLEVBQUU7UUFDaEMsUUFBUSxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEdBQUcsRUFBRTtRQUNuQyxXQUFXLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksR0FBRyxFQUFFO1FBQ3BDLFlBQVksSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLEVBQUU7UUFDckMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsV0FBVyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUU7S0FDcEQsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsSUFBSSxD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
@@ -0,0 +1,9 @@
1
+ import LeadService from "./service";
2
+ export declare const LEAD_MODULE = "lead";
3
+ declare const _default: any;
4
+ export default _default;
5
+ export { LeadService };
6
+ export { LEAD_STATUSES } from "./models/lead";
7
+ export { loadLeadConfig, type LeadConfig, type LeadFieldDefinition, type LeadFormDefinition, } from "./config";
8
+ export { leadAdminEmail, leadCustomerEmail, leadStatusEmail, } from "./email";
9
+ export { assessLeadSpam, checkLeadRateLimit, clientFingerprint, verifyTurnstile, } from "./spam";
@@ -0,0 +1,27 @@
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.verifyTurnstile = exports.clientFingerprint = exports.checkLeadRateLimit = exports.assessLeadSpam = exports.leadStatusEmail = exports.leadCustomerEmail = exports.leadAdminEmail = exports.loadLeadConfig = exports.LEAD_STATUSES = exports.LeadService = exports.LEAD_MODULE = void 0;
7
+ const utils_1 = require("@medusajs/framework/utils");
8
+ const service_1 = __importDefault(require("./service"));
9
+ exports.LeadService = service_1.default;
10
+ exports.LEAD_MODULE = "lead";
11
+ exports.default = (0, utils_1.Module)(exports.LEAD_MODULE, {
12
+ service: service_1.default,
13
+ });
14
+ var lead_1 = require("./models/lead");
15
+ Object.defineProperty(exports, "LEAD_STATUSES", { enumerable: true, get: function () { return lead_1.LEAD_STATUSES; } });
16
+ var config_1 = require("./config");
17
+ Object.defineProperty(exports, "loadLeadConfig", { enumerable: true, get: function () { return config_1.loadLeadConfig; } });
18
+ var email_1 = require("./email");
19
+ Object.defineProperty(exports, "leadAdminEmail", { enumerable: true, get: function () { return email_1.leadAdminEmail; } });
20
+ Object.defineProperty(exports, "leadCustomerEmail", { enumerable: true, get: function () { return email_1.leadCustomerEmail; } });
21
+ Object.defineProperty(exports, "leadStatusEmail", { enumerable: true, get: function () { return email_1.leadStatusEmail; } });
22
+ var spam_1 = require("./spam");
23
+ Object.defineProperty(exports, "assessLeadSpam", { enumerable: true, get: function () { return spam_1.assessLeadSpam; } });
24
+ Object.defineProperty(exports, "checkLeadRateLimit", { enumerable: true, get: function () { return spam_1.checkLeadRateLimit; } });
25
+ Object.defineProperty(exports, "clientFingerprint", { enumerable: true, get: function () { return spam_1.clientFingerprint; } });
26
+ Object.defineProperty(exports, "verifyTurnstile", { enumerable: true, get: function () { return spam_1.verifyTurnstile; } });
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9sZWFkL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7OztBQUFBLHFEQUFrRDtBQUNsRCx3REFBbUM7QUFRMUIsc0JBUkYsaUJBQVcsQ0FRRTtBQU5QLFFBQUEsV0FBVyxHQUFHLE1BQU0sQ0FBQTtBQUVqQyxrQkFBZSxJQUFBLGNBQU0sRUFBQyxtQkFBVyxFQUFFO0lBQ2pDLE9BQU8sRUFBRSxpQkFBVztDQUNyQixDQUFDLENBQUE7QUFHRixzQ0FBNkM7QUFBcEMscUdBQUEsYUFBYSxPQUFBO0FBQ3RCLG1DQUtpQjtBQUpmLHdHQUFBLGNBQWMsT0FBQTtBQUtoQixpQ0FJZ0I7QUFIZCx1R0FBQSxjQUFjLE9BQUE7QUFDZCwwR0FBQSxpQkFBaUIsT0FBQTtBQUNqQix3R0FBQSxlQUFlLE9BQUE7QUFFakIsK0JBS2U7QUFKYixzR0FBQSxjQUFjLE9BQUE7QUFDZCwwR0FBQSxrQkFBa0IsT0FBQTtBQUNsQix5R0FBQSxpQkFBaUIsT0FBQTtBQUNqQix1R0FBQSxlQUFlLE9BQUEifQ==
@@ -0,0 +1,5 @@
1
+ import { Migration } from "@medusajs/framework/mikro-orm/migrations";
2
+ export declare class Migration20261029163000 extends Migration {
3
+ up(): Promise<void>;
4
+ down(): Promise<void>;
5
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Migration20261029163000 = void 0;
4
+ const migrations_1 = require("@medusajs/framework/mikro-orm/migrations");
5
+ class Migration20261029163000 extends migrations_1.Migration {
6
+ async up() {
7
+ this.addSql(`create table if not exists "lead" ("id" text not null, "form_key" text not null, "status" text check ("status" in ('new','contacted','qualified','won','lost','spam','closed')) not null, "name" text null, "email" text null, "phone" text null, "company" text null, "message" text null, "fields" jsonb null, "source" text null, "page_url" text null, "referrer" text null, "utm" jsonb null, "customer_id" text null, "admin_note" text null, "privacy_consent_at" timestamptz null, "privacy_policy_version" text not null, "privacy_policy_url" text null, "privacy_policy_label" text null, "request_fingerprint" text null, "spam_score" integer not null default 0, "spam_reasons" jsonb null, "created_at" timestamptz not null default now(), "updated_at" timestamptz not null default now(), "deleted_at" timestamptz null, constraint "lead_pkey" primary key ("id"));`);
8
+ this.addSql(`create index if not exists "IDX_lead_status_created" on "lead" ("status", "created_at") where deleted_at is null;`);
9
+ this.addSql(`create index if not exists "IDX_lead_form_created" on "lead" ("form_key", "created_at") where deleted_at is null;`);
10
+ this.addSql(`create index if not exists "IDX_lead_email_created" on "lead" ("email", "created_at") where deleted_at is null;`);
11
+ this.addSql(`create index if not exists "IDX_lead_customer" on "lead" ("customer_id") where deleted_at is null;`);
12
+ this.addSql(`create index if not exists "IDX_lead_fingerprint_created" on "lead" ("request_fingerprint", "created_at") where deleted_at is null;`);
13
+ }
14
+ async down() {
15
+ this.addSql(`drop table if exists "lead" cascade;`);
16
+ }
17
+ }
18
+ exports.Migration20261029163000 = Migration20261029163000;
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWlncmF0aW9uMjAyNjEwMjkxNjMwMDAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvbW9kdWxlcy9sZWFkL21pZ3JhdGlvbnMvTWlncmF0aW9uMjAyNjEwMjkxNjMwMDAudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUVBQW9FO0FBRXBFLE1BQWEsdUJBQXdCLFNBQVEsc0JBQVM7SUFDcEQsS0FBSyxDQUFDLEVBQUU7UUFDTixJQUFJLENBQUMsTUFBTSxDQUFDLHcxQkFBdzFCLENBQUMsQ0FBQTtRQUNyMkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxtSEFBbUgsQ0FBQyxDQUFBO1FBQ2hJLElBQUksQ0FBQyxNQUFNLENBQUMsbUhBQW1ILENBQUMsQ0FBQTtRQUNoSSxJQUFJLENBQUMsTUFBTSxDQUFDLGlIQUFpSCxDQUFDLENBQUE7UUFDOUgsSUFBSSxDQUFDLE1BQU0sQ0FBQyxvR0FBb0csQ0FBQyxDQUFBO1FBQ2pILElBQUksQ0FBQyxNQUFNLENBQUMscUlBQXFJLENBQUMsQ0FBQTtJQUNwSixDQUFDO0lBRUQsS0FBSyxDQUFDLElBQUk7UUFDUixJQUFJLENBQUMsTUFBTSxDQUFDLHNDQUFzQyxDQUFDLENBQUE7SUFDckQsQ0FBQztDQUNGO0FBYkQsMERBYUMifQ==