@hszrdm/core 1.1.0 → 1.3.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 (146) hide show
  1. package/.medusa/server/src/admin/index.js +4041 -2995
  2. package/.medusa/server/src/admin/index.mjs +4043 -2997
  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/email/preview/route.d.ts +2 -0
  10. package/.medusa/server/src/api/admin/email/preview/route.js +20 -0
  11. package/.medusa/server/src/api/admin/email/templates/[id]/route.d.ts +4 -0
  12. package/.medusa/server/src/api/admin/email/templates/[id]/route.js +25 -0
  13. package/.medusa/server/src/api/admin/email/templates/route.d.ts +3 -0
  14. package/.medusa/server/src/api/admin/email/templates/route.js +40 -0
  15. package/.medusa/server/src/api/admin/email/test-send/route.d.ts +2 -0
  16. package/.medusa/server/src/api/admin/email/test-send/route.js +64 -0
  17. package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/cancel/route.d.ts +2 -0
  18. package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/cancel/route.js +15 -0
  19. package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/route.d.ts +4 -0
  20. package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/route.js +39 -0
  21. package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/send/route.d.ts +2 -0
  22. package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/send/route.js +14 -0
  23. package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/stats/route.d.ts +2 -0
  24. package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/stats/route.js +17 -0
  25. package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/test-send/route.d.ts +2 -0
  26. package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/test-send/route.js +23 -0
  27. package/.medusa/server/src/api/admin/newsletter/campaigns/route.d.ts +3 -0
  28. package/.medusa/server/src/api/admin/newsletter/campaigns/route.js +40 -0
  29. package/.medusa/server/src/api/admin/newsletter/subscribers/export/route.d.ts +2 -0
  30. package/.medusa/server/src/api/admin/newsletter/subscribers/export/route.js +74 -0
  31. package/.medusa/server/src/api/admin/newsletter/subscribers/route.d.ts +2 -0
  32. package/.medusa/server/src/api/admin/newsletter/subscribers/route.js +57 -0
  33. package/.medusa/server/src/api/admin/product-reviews/[id]/route.d.ts +7 -0
  34. package/.medusa/server/src/api/admin/product-reviews/[id]/route.js +40 -0
  35. package/.medusa/server/src/api/admin/product-reviews/route.d.ts +2 -0
  36. package/.medusa/server/src/api/admin/product-reviews/route.js +31 -0
  37. package/.medusa/server/src/api/hooks/email/status/route.d.ts +2 -0
  38. package/.medusa/server/src/api/hooks/email/status/route.js +69 -0
  39. package/.medusa/server/src/api/middlewares.js +9 -1
  40. package/.medusa/server/src/api/store/account/wishlist/[productId]/route.d.ts +2 -0
  41. package/.medusa/server/src/api/store/account/wishlist/[productId]/route.js +18 -0
  42. package/.medusa/server/src/api/store/account/wishlist/merge/route.d.ts +6 -0
  43. package/.medusa/server/src/api/store/account/wishlist/merge/route.js +51 -0
  44. package/.medusa/server/src/api/store/account/wishlist/route.d.ts +7 -0
  45. package/.medusa/server/src/api/store/account/wishlist/route.js +76 -0
  46. package/.medusa/server/src/api/store/cms/entries/[slug]/route.js +4 -4
  47. package/.medusa/server/src/api/store/cms/entries/route.js +4 -4
  48. package/.medusa/server/src/api/store/email/track/click/[token]/route.d.ts +2 -0
  49. package/.medusa/server/src/api/store/email/track/click/[token]/route.js +19 -0
  50. package/.medusa/server/src/api/store/email/track/open/[token]/route.d.ts +2 -0
  51. package/.medusa/server/src/api/store/email/track/open/[token]/route.js +22 -0
  52. package/.medusa/server/src/api/store/leads/route.js +27 -93
  53. package/.medusa/server/src/api/store/newsletter/config/route.d.ts +2 -0
  54. package/.medusa/server/src/api/store/newsletter/config/route.js +14 -0
  55. package/.medusa/server/src/api/store/newsletter/confirm/route.d.ts +4 -0
  56. package/.medusa/server/src/api/store/newsletter/confirm/route.js +52 -0
  57. package/.medusa/server/src/api/store/newsletter/route.d.ts +4 -0
  58. package/.medusa/server/src/api/store/newsletter/route.js +89 -0
  59. package/.medusa/server/src/api/store/newsletter/unsubscribe/route.d.ts +4 -0
  60. package/.medusa/server/src/api/store/newsletter/unsubscribe/route.js +54 -0
  61. package/.medusa/server/src/api/store/products/[id]/reviews/route.d.ts +8 -0
  62. package/.medusa/server/src/api/store/products/[id]/reviews/route.js +174 -0
  63. package/.medusa/server/src/api/store/quote-requests/route.js +41 -129
  64. package/.medusa/server/src/config.js +38 -15
  65. package/.medusa/server/src/core/ai-translation.d.ts +26 -0
  66. package/.medusa/server/src/core/ai-translation.js +173 -0
  67. package/.medusa/server/src/core/customer-email.d.ts +5 -5
  68. package/.medusa/server/src/core/customer-email.js +55 -109
  69. package/.medusa/server/src/core/transactional-email.d.ts +9 -8
  70. package/.medusa/server/src/core/transactional-email.js +74 -244
  71. package/.medusa/server/src/core/version.d.ts +2 -2
  72. package/.medusa/server/src/core/version.js +2 -2
  73. package/.medusa/server/src/jobs/email-campaign-dispatch.d.ts +6 -0
  74. package/.medusa/server/src/jobs/email-campaign-dispatch.js +18 -0
  75. package/.medusa/server/src/modules/cms/config.d.ts +2 -1
  76. package/.medusa/server/src/modules/cms/config.js +27 -12
  77. package/.medusa/server/src/modules/cms/content-types.d.ts +24 -0
  78. package/.medusa/server/src/modules/cms/content-types.js +27 -0
  79. package/.medusa/server/src/modules/cms/index.d.ts +1 -0
  80. package/.medusa/server/src/modules/cms/index.js +6 -2
  81. package/.medusa/server/src/modules/email-center/campaign.d.ts +8 -0
  82. package/.medusa/server/src/modules/email-center/campaign.js +193 -0
  83. package/.medusa/server/src/modules/email-center/constants.d.ts +1 -0
  84. package/.medusa/server/src/modules/email-center/constants.js +5 -0
  85. package/.medusa/server/src/modules/email-center/defaults.d.ts +10 -0
  86. package/.medusa/server/src/modules/email-center/defaults.js +49 -0
  87. package/.medusa/server/src/modules/email-center/index.d.ts +11 -0
  88. package/.medusa/server/src/modules/email-center/index.js +42 -0
  89. package/.medusa/server/src/modules/email-center/migrations/Migration20261030173000.d.ts +5 -0
  90. package/.medusa/server/src/modules/email-center/migrations/Migration20261030173000.js +25 -0
  91. package/.medusa/server/src/modules/email-center/models/email-campaign.d.ts +22 -0
  92. package/.medusa/server/src/modules/email-center/models/email-campaign.js +37 -0
  93. package/.medusa/server/src/modules/email-center/models/email-delivery.d.ts +21 -0
  94. package/.medusa/server/src/modules/email-center/models/email-delivery.js +38 -0
  95. package/.medusa/server/src/modules/email-center/models/email-template.d.ts +13 -0
  96. package/.medusa/server/src/modules/email-center/models/email-template.js +20 -0
  97. package/.medusa/server/src/modules/email-center/render.d.ts +31 -0
  98. package/.medusa/server/src/modules/email-center/render.js +92 -0
  99. package/.medusa/server/src/modules/email-center/send.d.ts +27 -0
  100. package/.medusa/server/src/modules/email-center/send.js +67 -0
  101. package/.medusa/server/src/modules/email-center/service.d.ts +56 -0
  102. package/.medusa/server/src/modules/email-center/service.js +13 -0
  103. package/.medusa/server/src/modules/email-center/tracking.d.ts +9 -0
  104. package/.medusa/server/src/modules/email-center/tracking.js +92 -0
  105. package/.medusa/server/src/modules/newsletter/config.d.ts +14 -0
  106. package/.medusa/server/src/modules/newsletter/config.js +51 -0
  107. package/.medusa/server/src/modules/newsletter/email.d.ts +9 -0
  108. package/.medusa/server/src/modules/newsletter/email.js +38 -0
  109. package/.medusa/server/src/modules/newsletter/events.d.ts +10 -0
  110. package/.medusa/server/src/modules/newsletter/events.js +34 -0
  111. package/.medusa/server/src/modules/newsletter/index.d.ts +10 -0
  112. package/.medusa/server/src/modules/newsletter/index.js +33 -0
  113. package/.medusa/server/src/modules/newsletter/migrations/Migration20261030130000.d.ts +5 -0
  114. package/.medusa/server/src/modules/newsletter/migrations/Migration20261030130000.js +18 -0
  115. package/.medusa/server/src/modules/newsletter/models/newsletter-subscriber.d.ts +21 -0
  116. package/.medusa/server/src/modules/newsletter/models/newsletter-subscriber.js +35 -0
  117. package/.medusa/server/src/modules/newsletter/service.d.ts +24 -0
  118. package/.medusa/server/src/modules/newsletter/service.js +11 -0
  119. package/.medusa/server/src/modules/newsletter/token.d.ts +10 -0
  120. package/.medusa/server/src/modules/newsletter/token.js +97 -0
  121. package/.medusa/server/src/modules/product-review/config.d.ts +5 -0
  122. package/.medusa/server/src/modules/product-review/config.js +10 -0
  123. package/.medusa/server/src/modules/product-review/index.d.ts +7 -0
  124. package/.medusa/server/src/modules/product-review/index.js +18 -0
  125. package/.medusa/server/src/modules/product-review/migrations/Migration20261030160100.d.ts +5 -0
  126. package/.medusa/server/src/modules/product-review/migrations/Migration20261030160100.js +18 -0
  127. package/.medusa/server/src/modules/product-review/models/product-review.d.ts +16 -0
  128. package/.medusa/server/src/modules/product-review/models/product-review.js +26 -0
  129. package/.medusa/server/src/modules/product-review/service.d.ts +25 -0
  130. package/.medusa/server/src/modules/product-review/service.js +12 -0
  131. package/.medusa/server/src/modules/wishlist/index.d.ts +5 -0
  132. package/.medusa/server/src/modules/wishlist/index.js +14 -0
  133. package/.medusa/server/src/modules/wishlist/migrations/Migration20261030160000.d.ts +5 -0
  134. package/.medusa/server/src/modules/wishlist/migrations/Migration20261030160000.js +17 -0
  135. package/.medusa/server/src/modules/wishlist/models/wishlist-item.d.ts +6 -0
  136. package/.medusa/server/src/modules/wishlist/models/wishlist-item.js +14 -0
  137. package/.medusa/server/src/modules/wishlist/service.d.ts +15 -0
  138. package/.medusa/server/src/modules/wishlist/service.js +12 -0
  139. package/.medusa/server/src/providers/email/index.d.ts +2 -0
  140. package/.medusa/server/src/providers/email/index.js +11 -0
  141. package/.medusa/server/src/providers/email/service.d.ts +24 -0
  142. package/.medusa/server/src/providers/email/service.js +117 -0
  143. package/.medusa/server/src/scripts/core-init.js +20 -3
  144. package/.medusa/server/src/scripts/verify-bootstrap.js +1 -7
  145. package/.medusa/server/src/subscribers/transactional-email-shipment-created.js +6 -2
  146. package/package.json +4 -3
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ exports.POST = POST;
5
+ const utils_1 = require("@medusajs/framework/utils");
6
+ const wishlist_1 = require("../../../../modules/wishlist");
7
+ async function GET(req, res) {
8
+ const customerId = requireCustomerId(req);
9
+ const service = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
10
+ const items = await service.listWishlistItems({ customer_id: customerId }, { take: 500, order: { created_at: "DESC" } });
11
+ return res.json(await wishlistPayload(req, items));
12
+ }
13
+ async function POST(req, res) {
14
+ const customerId = requireCustomerId(req);
15
+ const productId = text(req.body?.product_id);
16
+ if (!productId)
17
+ return res.status(400).json({ message: "A product_id megadása kötelező." });
18
+ const query = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
19
+ const product = await query.graph({
20
+ entity: "product",
21
+ fields: ["id"],
22
+ filters: { id: productId },
23
+ pagination: { take: 1, skip: 0 },
24
+ });
25
+ if (!product.data?.length)
26
+ return res.status(404).json({ message: "A termék nem található." });
27
+ const service = req.scope.resolve(wishlist_1.WISHLIST_MODULE);
28
+ const [existing] = await service.listWishlistItems({ customer_id: customerId, product_id: productId }, { take: 1 });
29
+ if (existing) {
30
+ return res.status(200).json({ item: existing, already_saved: true });
31
+ }
32
+ try {
33
+ const item = await service.createWishlistItems({
34
+ customer_id: customerId,
35
+ product_id: productId,
36
+ });
37
+ return res.status(201).json({ item, already_saved: false });
38
+ }
39
+ catch (error) {
40
+ const [raced] = await service.listWishlistItems({ customer_id: customerId, product_id: productId }, { take: 1 });
41
+ if (raced)
42
+ return res.status(200).json({ item: raced, already_saved: true });
43
+ throw error;
44
+ }
45
+ }
46
+ async function wishlistPayload(req, items) {
47
+ const productIds = items.map((item) => String(item.product_id || "")).filter(Boolean);
48
+ const products = productIds.length
49
+ ? await req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY).graph({
50
+ entity: "product",
51
+ fields: ["id", "title", "handle", "thumbnail", "status"],
52
+ filters: { id: productIds },
53
+ pagination: { take: Math.min(productIds.length, 500), skip: 0 },
54
+ })
55
+ : { data: [] };
56
+ const byId = new Map((products.data || []).map((product) => [String(product.id), product]));
57
+ return {
58
+ items: items.map((item) => ({
59
+ id: item.id,
60
+ product_id: item.product_id,
61
+ created_at: item.created_at,
62
+ product: byId.get(String(item.product_id)) || null,
63
+ })),
64
+ count: items.length,
65
+ };
66
+ }
67
+ function requireCustomerId(req) {
68
+ const id = String(req.auth_context?.actor_id || "").trim();
69
+ if (!id)
70
+ throw new Error("Bejelentkezett ügyfél szükséges.");
71
+ return id;
72
+ }
73
+ function text(value) {
74
+ return typeof value === "string" ? value.trim() : "";
75
+ }
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2FjY291bnQvd2lzaGxpc3Qvcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFTQSxrQkFTQztBQUVELG9CQXNDQztBQXpERCxxREFBcUU7QUFDckUsMkRBQW9GO0FBTzdFLEtBQUssVUFBVSxHQUFHLENBQUMsR0FBK0IsRUFBRSxHQUFtQjtJQUM1RSxNQUFNLFVBQVUsR0FBRyxpQkFBaUIsQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUN6QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQywwQkFBZSxDQUFvQixDQUFBO0lBQ3JFLE1BQU0sS0FBSyxHQUFHLE1BQU0sT0FBTyxDQUFDLGlCQUFpQixDQUMzQyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQVcsRUFDcEMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsRUFBVyxDQUNiLENBQUE7SUFFMUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE1BQU0sZUFBZSxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO0FBQ3BELENBQUM7QUFFTSxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQXFDLEVBQUUsR0FBbUI7SUFDbkYsTUFBTSxVQUFVLEdBQUcsaUJBQWlCLENBQUMsR0FBRyxDQUFDLENBQUE7SUFDekMsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsVUFBVSxDQUFDLENBQUE7SUFDNUMsSUFBSSxDQUFDLFNBQVM7UUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLGlDQUFpQyxFQUFFLENBQUMsQ0FBQTtJQUUzRixNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FB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
@@ -7,7 +7,7 @@ async function GET(req, res) {
7
7
  const config = (0, cms_1.loadCmsConfig)();
8
8
  if (!config.enabled)
9
9
  return res.status(404).json({ message: "A CMS jelenleg nem elérhető." });
10
- const requestLocale = queryText(req.locale || req.query?.locale) || config.defaultLocale;
10
+ const requestLocale = queryText(req.locale || req.query?.locale);
11
11
  const contentType = queryText(req.query?.content_type);
12
12
  const filters = {
13
13
  slug: req.params.slug,
@@ -49,14 +49,14 @@ async function GET(req, res) {
49
49
  ],
50
50
  filters,
51
51
  pagination: { take: 20, skip: 0 },
52
- }, { locale: requestLocale });
52
+ }, requestLocale ? { locale: requestLocale } : undefined);
53
53
  const entry = (result.data || []).find((candidate) => (0, cms_1.isCmsEntryPublic)(candidate));
54
54
  if (!entry)
55
55
  return res.status(404).json({ message: "A tartalom nem található." });
56
- return res.json({ entry: (0, cms_1.publicCmsEntry)(entry, requestLocale) });
56
+ return res.json({ entry: (0, cms_1.publicCmsEntry)(entry, requestLocale || null) });
57
57
  }
58
58
  function queryText(value) {
59
59
  const raw = Array.isArray(value) ? value[0] : value;
60
60
  return typeof raw === "string" && raw.trim() ? raw.trim() : "";
61
61
  }
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Ntcy9lbnRyaWVzL1tzbHVnXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxrQkFtREM7QUFuRUQscURBQXFFO0FBQ3JFLG9EQUltQztBQVc1QixLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBQSxtQkFBYSxHQUFFLENBQUE7SUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxDQUFDLENBQUE7SUFFN0YsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFFLEdBQThCLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLGFBQWEsQ0FBQTtJQUNwSCxNQUFNLFdBQVcsR0FBRyxTQUFTLENBQUMsR0FBRyxDQUFDLEtBQUssRUFBRSxZQUFZLENBQUMsQ0FBQTtJQUN0RCxNQUFNLE9BQU8sR0FBNEI7UUFDdkMsSUFBSSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSTtRQUNyQixNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO0tBQ25DLENBQUE7SUFDRCxJQUFJLFdBQVc7UUFBRSxPQUFPLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQTtJQUVuRCxNQUFNLEtBQUssR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxpQ0FBeUIsQ0FBQyxLQUFLLENBQXlCLENBQUE7SUFDeEYsTUFBTSxNQUFNLEdBQUcsTUFBTSxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQy9CLE1BQU0sRUFBRSxXQUFXO1FBQ25CLE1BQU0sRUFBRTtZQUNOLElBQUk7WUFDSixjQUFjO1lBQ2QsUUFBUTtZQUNSLE9BQU87WUFDUCxNQUFNO1lBQ04sU0FBUztZQUNULE1BQU07WUFDTixhQUFhO1lBQ2IsUUFBUTtZQUNSLG9CQUFvQjtZQUNwQixvQkFBb0I7WUFDcEIsYUFBYTtZQUNiLFdBQVc7WUFDWCxpQkFBaUI7WUFDakIsZUFBZTtZQUNmLFNBQVM7WUFDVCxjQUFjO1lBQ2QsY0FBYztZQUNkLFlBQVk7WUFDWixlQUFlO1lBQ2YsWUFBWTtZQUNaLFlBQVk7WUFDWixVQUFVO1lBQ1YsZ0JBQWdCO1lBQ2hCLFlBQVk7WUFDWixZQUFZO1lBQ1osbUJBQW1CO1NBQ3BCO1FBQ0QsT0FBTztRQUNQLFVBQVUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRTtLQUNsQyxFQUFFLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUE7SUFFN0IsTUFBTSxLQUFLLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUMsSUFBQSxzQkFBZ0IsRUFBQyxTQUFTLENBQUMsQ0FBQyxDQUFBO0lBQ2xGLElBQUksQ0FBQyxLQUFLO1FBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxDQUFDLENBQUE7SUFDakYsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUEsb0JBQWMsRUFBQyxLQUFLLEVBQUUsYUFBYSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQ2xFLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxLQUFjO0lBQy9CLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0lBQ25ELE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7QUFDaEUsQ0FBQyJ9
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Ntcy9lbnRyaWVzL1tzbHVnXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlCQSxrQkFtREM7QUFuRUQscURBQXFFO0FBQ3JFLG9EQUltQztBQVc1QixLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBQSxtQkFBYSxHQUFFLENBQUE7SUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxDQUFDLENBQUE7SUFFN0YsTUFBTSxhQUFhLEdBQUcsU0FBUyxDQUFFLEdBQThCLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxLQUFLLEVBQUUsTUFBTSxDQUFDLENBQUE7SUFDNUYsTUFBTSxXQUFXLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FBQyxLQUFLLEVBQUUsWUFBWSxDQUFDLENBQUE7SUFDdEQsTUFBTSxPQUFPLEdBQTRCO1FBQ3ZDLElBQUksRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUk7UUFDckIsTUFBTSxFQUFFLENBQUMsV0FBVyxFQUFFLFdBQVcsQ0FBQztLQUNuQyxDQUFBO0lBQ0QsSUFBSSxXQUFXO1FBQUUsT0FBTyxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUE7SUFFbkQsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUF5QixDQUFBO0lBQ3hGLE1BQU0sTUFBTSxHQUFHLE1BQU0sS0FBSyxDQUFDLEtBQUssQ0FBQztRQUMvQixNQUFNLEVBQUUsV0FBVztRQUNuQixNQUFNLEVBQUU7WUFDTixJQUFJO1lBQ0osY0FBYztZQUNkLFFBQVE7WUFDUixPQUFPO1lBQ1AsTUFBTTtZQUNOLFNBQVM7WUFDVCxNQUFNO1lBQ04sYUFBYTtZQUNiLFFBQVE7WUFDUixvQkFBb0I7WUFDcEIsb0JBQW9CO1lBQ3BCLGFBQWE7WUFDYixXQUFXO1lBQ1gsaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixTQUFTO1lBQ1QsY0FBYztZQUNkLGNBQWM7WUFDZCxZQUFZO1lBQ1osZUFBZTtZQUNmLFlBQVk7WUFDWixZQUFZO1lBQ1osVUFBVTtZQUNWLGdCQUFnQjtZQUNoQixZQUFZO1lBQ1osWUFBWTtZQUNaLG1CQUFtQjtTQUNwQjtRQUNELE9BQU87UUFDUCxVQUFVLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUU7S0FDbEMsRUFBRSxhQUFhLENBQUMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxFQUFFLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQTtJQUV6RCxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQyxJQUFJLElBQUksRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFBLHNCQUFnQixFQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUE7SUFDbEYsSUFBSSxDQUFDLEtBQUs7UUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLENBQUMsQ0FBQTtJQUNqRixPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxLQUFLLEVBQUUsSUFBQSxvQkFBYyxFQUFDLEtBQUssRUFBRSxhQUFhLElBQUksSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFBO0FBQzFFLENBQUM7QUFFRCxTQUFTLFNBQVMsQ0FBQyxLQUFjO0lBQy9CLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0lBQ25ELE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7QUFDaEUsQ0FBQyJ9
@@ -37,7 +37,7 @@ async function GET(req, res) {
37
37
  if (!config.enabled)
38
38
  return res.status(404).json({ message: "A CMS jelenleg nem elérhető." });
39
39
  const queryService = req.scope.resolve(utils_1.ContainerRegistrationKeys.QUERY);
40
- const requestLocale = text(req.locale || req.query?.locale) || config.defaultLocale;
40
+ const requestLocale = text(req.locale || req.query?.locale);
41
41
  const contentType = text(req.query?.content_type);
42
42
  const search = text(req.query?.q);
43
43
  const category = text(req.query?.category);
@@ -60,13 +60,13 @@ async function GET(req, res) {
60
60
  skip: 0,
61
61
  order: { published_at: "DESC", created_at: "DESC" },
62
62
  },
63
- }, { locale: requestLocale });
63
+ }, requestLocale ? { locale: requestLocale } : undefined);
64
64
  const visible = (result.data || [])
65
65
  .filter((entry) => (0, cms_1.isCmsEntryPublic)(entry))
66
66
  .filter((entry) => !category || hasTerm(entry, "category", category))
67
67
  .filter((entry) => !tag || hasTerm(entry, "tag", tag));
68
68
  return res.json({
69
- entries: visible.slice(offset, offset + limit).map((entry) => (0, cms_1.publicCmsEntry)(entry, requestLocale)),
69
+ entries: visible.slice(offset, offset + limit).map((entry) => (0, cms_1.publicCmsEntry)(entry, requestLocale || null)),
70
70
  count: visible.length,
71
71
  limit,
72
72
  offset,
@@ -84,4 +84,4 @@ function clamp(value, min, max, fallback) {
84
84
  const number = Number(raw);
85
85
  return Number.isFinite(number) ? Math.max(min, Math.min(max, Math.trunc(number))) : fallback;
86
86
  }
87
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Ntcy9lbnRyaWVzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0RBLGtCQXlDQztBQTFGRCxxREFBcUU7QUFDckUsaURBSWdDO0FBY2hDLE1BQU0sWUFBWSxHQUFHO0lBQ25CLElBQUk7SUFDSixjQUFjO0lBQ2QsUUFBUTtJQUNSLE9BQU87SUFDUCxNQUFNO0lBQ04sU0FBUztJQUNULE1BQU07SUFDTixhQUFhO0lBQ2IsUUFBUTtJQUNSLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsYUFBYTtJQUNiLFdBQVc7SUFDWCxpQkFBaUI7SUFDakIsZUFBZTtJQUNmLFNBQVM7SUFDVCxjQUFjO0lBQ2QsY0FBYztJQUNkLFlBQVk7SUFDWixlQUFlO0lBQ2YsWUFBWTtJQUNaLFlBQVk7SUFDWixVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixZQUFZO0lBQ1osbUJBQW1CO0NBQ3BCLENBQUE7QUFFTSxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBQSxtQkFBYSxHQUFFLENBQUE7SUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxDQUFDLENBQUE7SUFFN0YsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUF5QixDQUFBO0lBQy9GLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBRSxHQUE4QixDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxJQUFJLE1BQU0sQ0FBQyxhQUFhLENBQUE7SUFDL0csTUFB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
87
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2Ntcy9lbnRyaWVzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0RBLGtCQXlDQztBQTFGRCxxREFBcUU7QUFDckUsaURBSWdDO0FBY2hDLE1BQU0sWUFBWSxHQUFHO0lBQ25CLElBQUk7SUFDSixjQUFjO0lBQ2QsUUFBUTtJQUNSLE9BQU87SUFDUCxNQUFNO0lBQ04sU0FBUztJQUNULE1BQU07SUFDTixhQUFhO0lBQ2IsUUFBUTtJQUNSLG9CQUFvQjtJQUNwQixvQkFBb0I7SUFDcEIsYUFBYTtJQUNiLFdBQVc7SUFDWCxpQkFBaUI7SUFDakIsZUFBZTtJQUNmLFNBQVM7SUFDVCxjQUFjO0lBQ2QsY0FBYztJQUNkLFlBQVk7SUFDWixlQUFlO0lBQ2YsWUFBWTtJQUNaLFlBQVk7SUFDWixVQUFVO0lBQ1YsZ0JBQWdCO0lBQ2hCLFlBQVk7SUFDWixZQUFZO0lBQ1osbUJBQW1CO0NBQ3BCLENBQUE7QUFFTSxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxNQUFNLEdBQUcsSUFBQSxtQkFBYSxHQUFFLENBQUE7SUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxDQUFDLENBQUE7SUFFN0YsTUFBTSxZQUFZLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsaUNBQXlCLENBQUMsS0FBSyxDQUF5QixDQUFBO0lBQy9GLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBRSxHQUE4QixDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sQ0FBQyxDQUFBO0lBQ3ZGLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFlBQVksQ0FBQyxDQUFBO0lBQ2pELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBQ2pDLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0lBQzFDLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxDQUFBO0lBQ2hDLE1BQU0sS0FBSyxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ2pELE1BQU0sTUFBTSxHQUFHLEtBQUssQ0FBQyxHQUFHLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFBO0lBRXRELE1BQU0sT0FBTyxHQUE0QjtRQUN2QyxNQUFNLEVBQUUsQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDO0tBQ25DLENBQUE7SUFDRCxJQUFJLFdBQVc7UUFBRSxPQUFPLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQTtJQUNuRCxJQUFJLE1BQU07UUFBRSxPQUFPLENBQUMsQ0FBQyxHQUFHLE1BQU0sQ0FBQTtJQUU5QixNQUFNLE1BQU0sR0FBRyxNQUFNLFlBQVksQ0FBQyxLQUFLLENBQUM7UUFDdEMsTUFBTSxFQUFFLFdBQVc7UUFDbkIsTUFBTSxFQUFFLFlBQVk7UUFDcEIsT0FBTztRQUNQLFVBQVUsRUFBRTtZQUNWLElBQUksRUFBRSxHQUFHO1lBQ1QsSUFBSSxFQUFFLENBQUM7WUFDUCxLQUFLLEVBQUUsRUFBRSxZQUFZLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7U0FDcEQ7S0FDRixFQUFFLGFBQWEsQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFBO0lBRXpELE1BQU0sT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUM7U0FDaEMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFBLHNCQUFnQixFQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzFDLE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQyxRQUFRLElBQUksT0FBTyxDQUFDLEtBQUssRUFBRSxVQUFVLEVBQUUsUUFBUSxDQUFDLENBQUM7U0FDcEUsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsSUFBSSxPQUFPLENBQUMsS0FBSyxFQUFFLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFBO0lBRXhELE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQztRQUNkLE9BQU8sRUFBRSxPQUFPLENBQUMsS0FBSyxDQUFDLE1BQU0sRUFBRSxNQUFNLEdBQUcsS0FBSyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxJQUFBLG9CQUFjLEVBQUMsS0FBSyxFQUFFLGFBQWEsSUFBSSxJQUFJLENBQUMsQ0FBQztRQUMzRyxLQUFLLEVBQUUsT0FBTyxDQUFDLE1BQU07UUFDckIsS0FBSztRQUNMLE1BQU07S0FDUCxDQUFDLENBQUE7QUFDSixDQUFDO0FBRUQsU0FBUyxPQUFPLENBQUMsS0FBMEIsRUFBRSxRQUFnQixFQUFFLElBQVk7SUFDekUsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLElBQXlCLEVBQUUsRUFBRSxDQUNsRixJQUFJLEVBQUUsUUFBUSxLQUFLLFFBQVEsSUFBSSxJQUFJLEVBQUUsSUFBSSxLQUFLLElBQUksQ0FDbkQsQ0FBQTtBQUNILENBQUM7QUFFRCxTQUFTLElBQUksQ0FBQyxLQUFjO0lBQzFCLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0lBQ25ELE9BQU8sT0FBTyxHQUFHLEtBQUssUUFBUSxJQUFJLEdBQUcsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7QUFDaEUsQ0FBQztBQUVELFNBQVMsS0FBSyxDQUFDLEtBQWMsRUFBRSxHQUFXLEVBQUUsR0FBVyxFQUFFLFFBQWdCO0lBQ3ZFLE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFBO0lBQ25ELE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQTtJQUMxQixPQUFPLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUE7QUFDOUYsQ0FBQyJ9
@@ -0,0 +1,2 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function GET(req: MedusaRequest, res: MedusaResponse): Promise<void | MedusaResponse>;
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ const email_center_1 = require("../../../../../../modules/email-center");
5
+ async function GET(req, res) {
6
+ const payload = (0, email_center_1.verifyEmailTrackingToken)(req.params.token);
7
+ if (!payload?.url)
8
+ return res.status(400).json({ message: "Érvénytelen tracking link." });
9
+ try {
10
+ const service = req.scope.resolve(email_center_1.EMAIL_CENTER_MODULE);
11
+ const delivery = await service.retrieveEmailDelivery(payload.delivery_id);
12
+ await service.updateEmailDeliveries({ id: delivery.id, status: "clicked", opened_at: delivery.opened_at || new Date(), clicked_at: delivery.clicked_at || new Date(), click_count: Number(delivery.click_count || 0) + 1 });
13
+ if (delivery.campaign_id)
14
+ await (0, email_center_1.refreshCampaignStats)(req.scope, delivery.campaign_id);
15
+ }
16
+ catch { /* A valid signed URL can still redirect if persistence is unavailable. */ }
17
+ return res.redirect(302, payload.url);
18
+ }
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2VtYWlsL3RyYWNrL2NsaWNrL1t0b2tlbl0vcm91dGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxrQkFVQztBQVpELHlFQUFxSjtBQUU5SSxLQUFLLFVBQVUsR0FBRyxDQUFDLEdBQWtCLEVBQUUsR0FBbUI7SUFDL0QsTUFBTSxPQUFPLEdBQUcsSUFBQSx1Q0FBd0IsRUFBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQzFELElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRztRQUFFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsNEJBQTRCLEVBQUUsQ0FBQyxDQUFBO0lBQ3pGLElBQUksQ0FBQztRQUNILE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGtDQUFtQixDQUF1QixDQUFBO1FBQzVFLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQW1DLENBQUE7UUFDM0csTUFBTSxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLFFBQVEsQ0FBQyxVQUFVLElBQUksSUFBSSxJQUFJLEVBQUUsRUFBRSxXQUFXLEVBQUUsTUFBTSxDQUFDLFFBQVEsQ0FBQyxXQUFXLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFXLENBQUMsQ0FBQTtRQUNwTyxJQUFJLFFBQVEsQ0FBQyxXQUFXO1lBQUUsTUFBTSxJQUFBLG1DQUFvQixFQUFDLEdBQUcsQ0FBQyxLQUFjLEVBQUUsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQ2hHLENBQUM7SUFBQyxNQUFNLENBQUMsQ0FBQywwRUFBMEUsQ0FBQyxDQUFDO0lBQ3RGLE9BQU8sR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0FBQ3ZDLENBQUMifQ==
@@ -0,0 +1,2 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function GET(req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
@@ -0,0 +1,22 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ const email_center_1 = require("../../../../../../modules/email-center");
5
+ const GIF = Buffer.from("R0lGODlhAQABAAD/ACwAAAAAAQABAAACADs=", "base64");
6
+ async function GET(req, res) {
7
+ const payload = (0, email_center_1.verifyEmailTrackingToken)(req.params.token);
8
+ if (payload) {
9
+ try {
10
+ const service = req.scope.resolve(email_center_1.EMAIL_CENTER_MODULE);
11
+ const delivery = await service.retrieveEmailDelivery(payload.delivery_id);
12
+ await service.updateEmailDeliveries({ id: delivery.id, status: delivery.status === "clicked" ? "clicked" : "opened", opened_at: delivery.opened_at || new Date(), open_count: Number(delivery.open_count || 0) + 1 });
13
+ if (delivery.campaign_id)
14
+ await (0, email_center_1.refreshCampaignStats)(req.scope, delivery.campaign_id);
15
+ }
16
+ catch { /* Tracking must never break image delivery. */ }
17
+ }
18
+ res.setHeader("Content-Type", "image/gif");
19
+ res.setHeader("Cache-Control", "no-store, no-cache, must-revalidate, proxy-revalidate");
20
+ return res.status(200).send(GIF);
21
+ }
22
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2VtYWlsL3RyYWNrL29wZW4vW3Rva2VuXS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUlBLGtCQWFDO0FBaEJELHlFQUFxSjtBQUVySixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLHNDQUFzQyxFQUFFLFFBQVEsQ0FBQyxDQUFBO0FBQ2xFLEtBQUssVUFBVSxHQUFHLENBQUMsR0FBa0IsRUFBRSxHQUFtQjtJQUMvRCxNQUFNLE9BQU8sR0FBRyxJQUFBLHVDQUF3QixFQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDMUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUNaLElBQUksQ0FBQztZQUNILE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLGtDQUFtQixDQUF1QixDQUFBO1lBQzVFLE1BQU0sUUFBUSxHQUFHLE1BQU0sT0FBTyxDQUFDLHFCQUFxQixDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQW1DLENBQUE7WUFDM0csTUFBTSxPQUFPLENBQUMscUJBQXFCLENBQUMsRUFBRSxFQUFFLEVBQUUsUUFBUSxDQUFDLEVBQUUsRUFBRSxNQUFNLEVBQUUsUUFBUSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxRQUFRLENBQUMsU0FBUyxJQUFJLElBQUksSUFBSSxFQUFFLEVBQUUsVUFBVSxFQUFFLE1BQU0sQ0FBQyxRQUFRLENBQUMsVUFBVSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBVyxDQUFDLENBQUE7WUFDOU4sSUFBSSxRQUFRLENBQUMsV0FBVztnQkFBRSxNQUFNLElBQUEsbUNBQW9CLEVBQUMsR0FBRyxDQUFDLEtBQWMsRUFBRSxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUE7UUFDaEcsQ0FBQztRQUFDLE1BQU0sQ0FBQyxDQUFDLCtDQUErQyxDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUNELEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYyxFQUFFLFdBQVcsQ0FBQyxDQUFBO0lBQzFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsZUFBZSxFQUFFLHVEQUF1RCxDQUFDLENBQUE7SUFDdkYsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtBQUNsQyxDQUFDIn0=
@@ -1,8 +1,8 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.POST = POST;
4
- const utils_1 = require("@medusajs/framework/utils");
5
4
  const core_audit_1 = require("../../../modules/core-audit");
5
+ const email_center_1 = require("../../../modules/email-center");
6
6
  const lead_1 = require("../../../modules/lead");
7
7
  async function POST(req, res) {
8
8
  const config = (0, lead_1.loadLeadConfig)();
@@ -15,67 +15,28 @@ async function POST(req, res) {
15
15
  return res.status(404).json({ message: "Ismeretlen vagy kikapcsolt űrlap." });
16
16
  const fingerprint = (0, lead_1.clientFingerprint)(req.headers);
17
17
  const email = optionalText(req.body.email, 240)?.toLowerCase() || null;
18
- const allowed = await (0, lead_1.checkLeadRateLimit)({
19
- fingerprint,
20
- email,
21
- max: config.rateLimitMax,
22
- windowSeconds: config.rateLimitWindowSeconds,
23
- });
18
+ const allowed = await (0, lead_1.checkLeadRateLimit)({ fingerprint, email, max: config.rateLimitMax, windowSeconds: config.rateLimitWindowSeconds });
24
19
  if (!allowed)
25
20
  return res.status(429).json({ message: "Túl sok beküldési kísérlet. Próbáld újra később." });
26
- const spam = (0, lead_1.assessLeadSpam)({
27
- honeypotValue: req.body[config.honeypotField],
28
- formStartedAt: req.body.form_started_at,
29
- });
30
- // Honeypot hits are intentionally acknowledged but not persisted. This
31
- // avoids filling the database with bot payloads and doesn't reveal the trap.
21
+ const spam = (0, lead_1.assessLeadSpam)({ honeypotValue: req.body[config.honeypotField], formStartedAt: req.body.form_started_at });
32
22
  if (spam.spam)
33
23
  return res.status(201).json({ lead: { id: null, status: "received" } });
34
24
  if (config.turnstile.enabled) {
35
- const turnstileOk = await (0, lead_1.verifyTurnstile)({
36
- token: optionalText(req.body.turnstile_token, 5000),
37
- secretKey: config.turnstile.secretKey,
38
- });
25
+ const turnstileOk = await (0, lead_1.verifyTurnstile)({ token: optionalText(req.body.turnstile_token, 5000), secretKey: config.turnstile.secretKey });
39
26
  if (!turnstileOk)
40
27
  return res.status(400).json({ message: "A spamvédelmi ellenőrzés nem sikerült." });
41
28
  }
42
29
  const standard = normalizeStandardFields(req.body, form.required_standard_fields);
43
30
  const fields = normalizeFields(req.body.fields, form.fields);
44
31
  const consentAccepted = req.body.privacy_consent === true;
45
- if (form.privacy.required && !consentAccepted) {
32
+ if (form.privacy.required && !consentAccepted)
46
33
  throw new Error("Az adatkezelési hozzájárulás kötelező.");
47
- }
48
34
  const service = req.scope.resolve(lead_1.LEAD_MODULE);
49
35
  const customerId = req.auth_context?.actor_id || null;
50
- const lead = await service.createLeads({
51
- form_key: form.key,
52
- status: "new",
53
- ...standard,
54
- fields,
55
- source: optionalText(req.body.source, 160),
56
- page_url: optionalText(req.body.page_url, 2000),
57
- referrer: optionalText(req.body.referrer, 2000),
58
- utm: normalizeRecord(req.body.utm, 20, 500),
59
- customer_id: customerId,
60
- privacy_consent_at: consentAccepted ? new Date() : null,
61
- privacy_policy_version: form.privacy.version,
62
- privacy_policy_url: form.privacy.url,
63
- privacy_policy_label: form.privacy.label,
64
- request_fingerprint: fingerprint,
65
- spam_score: spam.score,
66
- spam_reasons: spam.reasons,
67
- });
68
- await (0, core_audit_1.writeCoreAudit)(req.scope, {
69
- action: "lead.created",
70
- resourceType: "lead",
71
- resourceId: lead.id,
72
- integration: "lead",
73
- summary: `Új lead: ${form.key}.`,
74
- details: { form_key: form.key, spam_score: spam.score, spam_reasons: spam.reasons },
75
- });
76
- if (config.emailEnabled) {
36
+ const lead = await service.createLeads({ form_key: form.key, status: "new", ...standard, fields, source: optionalText(req.body.source, 160), page_url: optionalText(req.body.page_url, 2000), referrer: optionalText(req.body.referrer, 2000), utm: normalizeRecord(req.body.utm, 20, 500), customer_id: customerId, privacy_consent_at: consentAccepted ? new Date() : null, privacy_policy_version: form.privacy.version, privacy_policy_url: form.privacy.url, privacy_policy_label: form.privacy.label, request_fingerprint: fingerprint, spam_score: spam.score, spam_reasons: spam.reasons });
37
+ await (0, core_audit_1.writeCoreAudit)(req.scope, { action: "lead.created", resourceType: "lead", resourceId: lead.id, integration: "lead", summary: `Új lead: ${form.key}.`, details: { form_key: form.key, spam_score: spam.score, spam_reasons: spam.reasons } });
38
+ if (config.emailEnabled)
77
39
  await notify(req, lead, config.adminEmails, config.customerEmailEnabled);
78
- }
79
40
  return res.status(201).json({ lead: { id: lead.id, status: "new" } });
80
41
  }
81
42
  catch (error) {
@@ -83,41 +44,25 @@ async function POST(req, res) {
83
44
  }
84
45
  }
85
46
  async function notify(req, lead, adminEmails, customerEmailEnabled) {
86
- let notifications;
87
- try {
88
- notifications = req.scope.resolve(utils_1.Modules.NOTIFICATION);
89
- }
90
- catch {
91
- return;
92
- }
93
47
  const brand = process.env.STORE_NAME || process.env.VITE_ADMIN_BRAND_NAME || "HSZRDM Commerce";
48
+ const locale = process.env.STORE_LOCALE;
49
+ const data = { lead_id: lead.id, form_key: lead.form_key, name: lead.name || "", email: lead.email || "", phone: lead.phone || "", company: lead.company || "", message: lead.message || "", fields: lead.fields || {}, source: lead.source || "" };
94
50
  const tasks = [];
95
- const admin = (0, lead_1.leadAdminEmail)(lead, brand);
96
- for (const to of adminEmails) {
97
- tasks.push(notifications.createNotifications({
98
- to, channel: "email", content: admin,
99
- trigger_type: "lead.created.admin", resource_id: lead.id, resource_type: "lead",
100
- idempotency_key: `lead-created-admin-${lead.id}-${to}`,
101
- }));
102
- }
51
+ const adminFallback = (0, lead_1.leadAdminEmail)(lead, brand);
52
+ const adminContent = await (0, email_center_1.resolveEmailContent)({ container: req.scope, key: "lead.created.admin", locale, data, fallback: adminFallback });
53
+ if (adminContent)
54
+ for (const to of adminEmails)
55
+ tasks.push((0, email_center_1.sendManagedEmail)({ container: req.scope, to, key: "lead.created.admin", locale, content: adminContent, idempotencyKey: `lead-created-admin-${lead.id}-${to}`, resourceId: lead.id, resourceType: "lead", track: false }));
103
56
  if (customerEmailEnabled && lead.email) {
104
- const customer = (0, lead_1.leadCustomerEmail)(lead, brand);
105
- tasks.push(notifications.createNotifications({
106
- to: lead.email, channel: "email", content: customer,
107
- trigger_type: "lead.created.customer", resource_id: lead.id, resource_type: "lead",
108
- idempotency_key: `lead-created-customer-${lead.id}`,
109
- }));
57
+ const customerFallback = (0, lead_1.leadCustomerEmail)(lead, brand);
58
+ const customerContent = await (0, email_center_1.resolveEmailContent)({ container: req.scope, key: "lead.created", locale, data, fallback: customerFallback });
59
+ if (customerContent)
60
+ tasks.push((0, email_center_1.sendManagedEmail)({ container: req.scope, to: lead.email, key: "lead.created", locale, content: customerContent, idempotencyKey: `lead-created-customer-${lead.id}`, resourceId: lead.id, resourceType: "lead", track: false }));
110
61
  }
111
62
  await Promise.allSettled(tasks);
112
63
  }
113
64
  function normalizeStandardFields(body, required) {
114
- const values = {
115
- name: optionalText(body.name, 240),
116
- email: optionalText(body.email, 240)?.toLowerCase() || null,
117
- phone: optionalText(body.phone, 80),
118
- company: optionalText(body.company, 240),
119
- message: optionalText(body.message, 10000),
120
- };
65
+ const values = { name: optionalText(body.name, 240), email: optionalText(body.email, 240)?.toLowerCase() || null, phone: optionalText(body.phone, 80), company: optionalText(body.company, 240), message: optionalText(body.message, 10000) };
121
66
  for (const key of required)
122
67
  if (!values[key])
123
68
  throw new Error(`${key} megadása kötelező.`);
@@ -155,22 +100,11 @@ function normalizeField(value, field) {
155
100
  throw new Error(`${field.label}: érvénytelen választás.`);
156
101
  return text;
157
102
  }
158
- function normalizeRecord(value, maxEntries, maxLength) {
159
- if (!value || typeof value !== "object" || Array.isArray(value))
160
- return {};
161
- return Object.fromEntries(Object.entries(value).slice(0, maxEntries).map(([key, raw]) => [key.slice(0, 80), optionalText(raw, maxLength)]));
162
- }
163
- function requiredText(value, label, max) {
164
- const result = optionalText(value, max);
165
- if (!result)
166
- throw new Error(`${label} megadása kötelező.`);
167
- return result;
168
- }
169
- function optionalText(value, max) {
170
- if (typeof value !== "string")
171
- return null;
172
- const result = value.trim();
173
- return result ? result.slice(0, max) : null;
174
- }
103
+ function normalizeRecord(value, maxEntries, maxLength) { if (!value || typeof value !== "object" || Array.isArray(value))
104
+ return {}; return Object.fromEntries(Object.entries(value).slice(0, maxEntries).map(([key, raw]) => [key.slice(0, 80), optionalText(raw, maxLength)])); }
105
+ function requiredText(value, label, max) { const result = optionalText(value, max); if (!result)
106
+ throw new Error(`${label} megadása kötelező.`); return result; }
107
+ function optionalText(value, max) { if (typeof value !== "string")
108
+ return null; const result = value.trim(); return result ? result.slice(0, max) : null; }
175
109
  function isEmpty(value) { return value == null || value === "" || value === false; }
176
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2xlYWRzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBbUJBLG9CQWdGQztBQWxHRCxxREFBbUQ7QUFDbkQsNERBQTREO0FBQzVELGdEQVc4QjtBQUt2QixLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQXdCLEVBQUUsR0FBbUI7SUFDdEUsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBYyxHQUFFLENBQUE7SUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxDQUFDLENBQUE7SUFFeEcsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ3JFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDN0YsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLENBQUMsQ0FBQTtRQUV4RixNQUFNLFdBQVcsR0FBRyxJQUFBLHdCQUFpQixFQUFDLEdBQUcsQ0FBQyxPQUFrQyxDQUFDLENBQUE7UUFDN0UsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLElBQUks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
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL2xlYWRzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLG9CQXFDQztBQXRERCw0REFBNEQ7QUFDNUQsZ0VBQXFGO0FBQ3JGLGdEQVc4QjtBQUl2QixLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQXdCLEVBQUUsR0FBbUI7SUFDdEUsTUFBTSxNQUFNLEdBQUcsSUFBQSxxQkFBYyxHQUFFLENBQUE7SUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx5Q0FBeUMsRUFBRSxDQUFDLENBQUE7SUFFeEcsSUFBSSxDQUFDO1FBQ0gsTUFBTSxPQUFPLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBQ3JFLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxTQUFTLENBQUMsR0FBRyxLQUFLLE9BQU8sSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUE7UUFDN0YsSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLENBQUMsQ0FBQTtRQUV4RixNQUFNLFdBQVcsR0FBRyxJQUFBLHdCQUFpQixFQUFDLEdBQUcsQ0FBQyxPQUFrQyxDQUFDLENBQUE7UUFDN0UsTUFBTSxLQUFLLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLEdBQUcsQ0FBQyxFQUFFLFdBQVcsRUFBRSxJQUFJLElBQUks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
@@ -0,0 +1,2 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ export declare function GET(_req: MedusaRequest, res: MedusaResponse): Promise<MedusaResponse>;
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GET = GET;
4
+ const newsletter_1 = require("../../../../modules/newsletter");
5
+ async function GET(_req, res) {
6
+ const config = (0, newsletter_1.loadNewsletterConfig)();
7
+ return res.json({
8
+ enabled: config.enabled,
9
+ double_opt_in: config.doubleOptIn,
10
+ consent_version: config.consentVersion,
11
+ consent_url: config.consentUrl,
12
+ });
13
+ }
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL25ld3NsZXR0ZXIvY29uZmlnL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBR0Esa0JBUUM7QUFWRCwrREFBcUU7QUFFOUQsS0FBSyxVQUFVLEdBQUcsQ0FBQyxJQUFtQixFQUFFLEdBQW1CO0lBQ2hFLE1BQU0sTUFBTSxHQUFHLElBQUEsaUNBQW9CLEdBQUUsQ0FBQTtJQUNyQyxPQUFPLEdBQUcsQ0FBQyxJQUFJLENBQUM7UUFDZCxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU87UUFDdkIsYUFBYSxFQUFFLE1BQU0sQ0FBQyxXQUFXO1FBQ2pDLGVBQWUsRUFBRSxNQUFNLENBQUMsY0FBYztRQUN0QyxXQUFXLEVBQUUsTUFBTSxDQUFDLFVBQVU7S0FDL0IsQ0FBQyxDQUFBO0FBQ0osQ0FBQyJ9
@@ -0,0 +1,4 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ type Body = Record<string, unknown>;
3
+ export declare function POST(req: MedusaRequest<Body>, res: MedusaResponse): Promise<MedusaResponse>;
4
+ export {};
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.POST = POST;
4
+ const core_audit_1 = require("../../../../modules/core-audit");
5
+ const newsletter_1 = require("../../../../modules/newsletter");
6
+ async function POST(req, res) {
7
+ const config = (0, newsletter_1.loadNewsletterConfig)();
8
+ if (!config.enabled)
9
+ return res.status(404).json({ message: "A hírlevél jelenleg nem elérhető." });
10
+ try {
11
+ const token = requiredToken(req.body?.token);
12
+ const hash = (0, newsletter_1.hashNewsletterToken)(token);
13
+ const service = req.scope.resolve(newsletter_1.NEWSLETTER_MODULE);
14
+ const [subscriber] = await service.listNewsletterSubscribers({ confirmation_token_hash: hash }, { take: 1 });
15
+ if (!subscriber || subscriber.status !== "pending") {
16
+ return res.status(400).json({ message: "A megerősítő link érvénytelen vagy már felhasználták." });
17
+ }
18
+ const expiresAt = subscriber.confirmation_expires_at ? new Date(subscriber.confirmation_expires_at) : null;
19
+ if (expiresAt && expiresAt.getTime() < Date.now()) {
20
+ return res.status(400).json({ message: "A megerősítő link lejárt. Iratkozz fel újra egy új linkért." });
21
+ }
22
+ const now = new Date();
23
+ const updated = await service.updateNewsletterSubscribers({
24
+ id: subscriber.id,
25
+ status: "subscribed",
26
+ confirmed_at: now,
27
+ subscribed_at: now,
28
+ unsubscribed_at: null,
29
+ confirmation_token_hash: null,
30
+ confirmation_expires_at: null,
31
+ });
32
+ await (0, core_audit_1.writeCoreAudit)(req.scope, {
33
+ action: "newsletter.subscription.confirm",
34
+ resourceType: "newsletter_subscriber",
35
+ resourceId: updated.id,
36
+ integration: "newsletter",
37
+ summary: "Hírlevél-feliratkozás double opt-in megerősítve.",
38
+ details: { status: updated.status, source: updated.source, consent_version: updated.consent_version },
39
+ });
40
+ await (0, newsletter_1.emitNewsletterEvent)(req.scope, newsletter_1.NEWSLETTER_EVENTS.subscribed, updated);
41
+ return res.json({ subscriber: { id: updated.id, status: updated.status }, message: "A hírlevél-feliratkozás megerősítve." });
42
+ }
43
+ catch (error) {
44
+ return res.status(400).json({ message: error instanceof Error ? error.message : "A feliratkozás megerősítése nem sikerült." });
45
+ }
46
+ }
47
+ function requiredToken(value) {
48
+ if (typeof value !== "string" || !value.trim() || value.length > 500)
49
+ throw new Error("Érvényes megerősítő token szükséges.");
50
+ return value.trim();
51
+ }
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL25ld3NsZXR0ZXIvY29uZmlybS9yb3V0ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWFBLG9CQStDQztBQTNERCwrREFBK0Q7QUFDL0QsK0RBT3VDO0FBSWhDLEtBQUssVUFBVSxJQUFJLENBQUMsR0FBd0IsRUFBRSxHQUFtQjtJQUN0RSxNQUFNLE1BQU0sR0FBRyxJQUFBLGlDQUFvQixHQUFFLENBQUE7SUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPO1FBQUUsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxDQUFDLENBQUE7SUFFbEcsSUFBSSxDQUFDO1FBQ0gsTUFBTSxLQUFLLEdBQUcsYUFBYSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUE7UUFDNUMsTUFBTSxJQUFJLEdBQUcsSUFBQSxnQ0FBbUIsRUFBQyxLQUFLLENBQUMsQ0FBQTtRQUN2QyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyw4QkFBaUIsQ0FBc0IsQ0FBQTtRQUN6RSxNQUFNLENBQUMsVUFBVSxDQUFDLEdBQUcsTUFBTSxPQUFPLENBQUMseUJBQXlCLENBQzFELEVBQUUsdUJBQXVCLEVBQUUsSUFBSSxFQUFXLEVBQzFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBVyxDQUNvQixDQUFBO1FBRTFDLElBQUksQ0FBQyxVQUFVLElBQUksVUFBVSxDQUFDLE1BQU0sS0FBSyxTQUFTLEVBQUUsQ0FBQztZQUNuRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLHVEQUF1RCxFQUFFLENBQUMsQ0FBQTtRQUNuRyxDQUFDO1FBRUQsTUFBTSxTQUFTLEdBQUcsVUFBVSxDQUFDLHVCQUF1QixDQUFDLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFBO1FBQzFHLElBQUksU0FBUyxJQUFJLFNBQVMsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQztZQUNsRCxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsT0FBTyxFQUFFLDZEQUE2RCxFQUFFLENBQUMsQ0FBQTtRQUN6RyxDQUFDO1FBRUQsTUFBTSxHQUFHLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQTtRQUN0QixNQUFNLE9BQU8sR0FBRyxNQUFNLE9BQU8sQ0FBQywyQkFBMkIsQ0FBQztZQUN4RCxFQUFFLEVBQUUsVUFBVSxDQUFDLEVBQUU7WUFDakIsTUFBTSxFQUFFLFlBQVk7WUFDcEIsWUFBWSxFQUFFLEdBQUc7WUFDakIsYUFBYSxFQUFFLEdBQUc7WUFDbEIsZUFBZSxFQUFFLElBQUk7WUFDckIsdUJBQXVCLEVBQUUsSUFBSTtZQUM3Qix1QkFBdUIsRUFBRSxJQUFJO1NBQ3JCLENBQW1DLENBQUE7UUFFN0MsTUFBTSxJQUFBLDJCQUFjLEVBQUMsR0FBRyxDQUFDLEtBQWMsRUFBRTtZQUN2QyxNQUFNLEVBQUUsaUNBQWlDO1lBQ3pDLFlBQVksRUFBRSx1QkFBdUI7WUFDckMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxFQUFFO1lBQ3RCLFdBQVcsRUFBRSxZQUFZO1lBQ3pCLE9BQU8sRUFBRSxrREFBa0Q7WUFDM0QsT0FBTyxFQUFFLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUUsZUFBZSxFQUFFLE9BQU8sQ0FBQyxlQUFlLEVBQUU7U0FDdEcsQ0FBQyxDQUFBO1FBQ0YsTUFBTSxJQUFBLGdDQUFtQixFQUFDLEdBQUcsQ0FBQyxLQUFjLEVBQUUsOEJBQWlCLENBQUMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxDQUFBO1FBRXBGLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLFVBQVUsRUFBRSxFQUFFLEVBQUUsRUFBRSxPQUFPLENBQUMsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFLEVBQUUsT0FBTyxFQUFFLHNDQUFzQyxFQUFFLENBQUMsQ0FBQTtJQUM5SCxDQUFDO0lBQUMsT0FBTyxLQUFLLEVBQUUsQ0FBQztRQUNmLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsS0FBSyxZQUFZLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsMkNBQTJDLEVBQUUsQ0FBQyxDQUFBO0lBQ2hJLENBQUM7QUFDSCxDQUFDO0FBRUQsU0FBUyxhQUFhLENBQUMsS0FBYztJQUNuQyxJQUFJLE9BQU8sS0FBSyxLQUFLLFFBQVEsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLEdBQUc7UUFBRSxNQUFNLElBQUksS0FBSyxDQUFDLHNDQUFzQyxDQUFDLENBQUE7SUFDN0gsT0FBTyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUE7QUFDckIsQ0FBQyJ9
@@ -0,0 +1,4 @@
1
+ import type { MedusaRequest, MedusaResponse } from "@medusajs/framework/http";
2
+ type Body = Record<string, unknown>;
3
+ export declare function POST(req: MedusaRequest<Body>, res: MedusaResponse): Promise<MedusaResponse>;
4
+ export {};