@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
@@ -2,140 +2,78 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.POST = POST;
4
4
  exports.normalizeItems = normalizeItems;
5
- const utils_1 = require("@medusajs/framework/utils");
5
+ const email_center_1 = require("../../../modules/email-center");
6
6
  const quote_request_1 = require("../../../modules/quote-request");
7
7
  async function POST(req, res) {
8
8
  const config = (0, quote_request_1.loadQuoteRequestConfig)();
9
- if (!config.enabled) {
9
+ if (!config.enabled)
10
10
  return res.status(404).json({ message: "Az ajánlatkérés jelenleg nem elérhető." });
11
- }
12
11
  try {
13
12
  const input = normalizeStoreQuoteRequest(req.body, config.extraFields);
14
13
  const customerId = req.auth_context?.actor_id || null;
15
14
  const service = req.scope.resolve(quote_request_1.QUOTE_REQUEST_MODULE);
16
- const quote = await service.createQuoteRequests({
17
- ...input,
18
- status: "new",
19
- customer_id: customerId,
20
- source: "storefront",
21
- });
22
- if (config.emailEnabled) {
15
+ const quote = await service.createQuoteRequests({ ...input, status: "new", customer_id: customerId, source: "storefront" });
16
+ if (config.emailEnabled)
23
17
  await notifyCreated(req, quote, config.adminEmails);
24
- }
25
18
  return res.status(201).json({ quote_request: quote });
26
19
  }
27
20
  catch (error) {
28
- return res.status(400).json({
29
- message: error instanceof Error
30
- ? error.message
31
- : "Az ajánlatkérés mentése nem sikerült.",
32
- });
21
+ return res.status(400).json({ message: error instanceof Error ? error.message : "Az ajánlatkérés mentése nem sikerült." });
33
22
  }
34
23
  }
35
24
  async function notifyCreated(req, quote, adminEmails) {
36
- let notifications;
37
- try {
38
- notifications = req.scope.resolve(utils_1.Modules.NOTIFICATION);
39
- }
40
- catch {
41
- return;
42
- }
43
- const brand = process.env.STORE_NAME ||
44
- process.env.VITE_ADMIN_BRAND_NAME ||
45
- "HSZRDM Commerce";
25
+ const brand = process.env.STORE_NAME || process.env.VITE_ADMIN_BRAND_NAME || "HSZRDM Commerce";
26
+ const locale = process.env.STORE_LOCALE;
27
+ const data = { quote_request_id: quote.id, contact_name: quote.contact_name || "", contact_email: quote.contact_email || "", contact_phone: quote.contact_phone || "", company_name: quote.company_name || "", company_address: quote.company_address || "", tax_number: quote.tax_number || "", order_type: quote.order_type || "", recurrence: quote.recurrence || "", note: quote.note || "", items: quote.items || [], extra_fields: quote.extra_fields || {}, currency_code: quote.currency_code || "" };
46
28
  const tasks = [];
47
29
  if (quote.contact_email) {
48
- const email = (0, quote_request_1.quoteRequestCreatedEmail)(quote, brand);
49
- tasks.push(notifications.createNotifications({
50
- to: quote.contact_email,
51
- channel: "email",
52
- content: email,
53
- trigger_type: "quote-request.created.customer",
54
- resource_id: quote.id,
55
- resource_type: "quote_request",
56
- idempotency_key: `quote-request-created-customer-${quote.id}`,
57
- }));
58
- }
59
- const adminEmail = (0, quote_request_1.quoteRequestAdminEmail)(quote, brand);
60
- for (const to of adminEmails) {
61
- tasks.push(notifications.createNotifications({
62
- to,
63
- channel: "email",
64
- content: adminEmail,
65
- trigger_type: "quote-request.created.admin",
66
- resource_id: quote.id,
67
- resource_type: "quote_request",
68
- idempotency_key: `quote-request-created-admin-${quote.id}-${to}`,
69
- }));
30
+ const fallback = (0, quote_request_1.quoteRequestCreatedEmail)(quote, brand);
31
+ const content = await (0, email_center_1.resolveEmailContent)({ container: req.scope, key: "quote_request.created", locale, data, fallback });
32
+ if (content)
33
+ tasks.push((0, email_center_1.sendManagedEmail)({ container: req.scope, to: quote.contact_email, key: "quote_request.created", locale, content, idempotencyKey: `quote-request-created-customer-${quote.id}`, resourceId: quote.id, resourceType: "quote_request", track: false }));
70
34
  }
35
+ const adminFallback = (0, quote_request_1.quoteRequestAdminEmail)(quote, brand);
36
+ const adminContent = await (0, email_center_1.resolveEmailContent)({ container: req.scope, key: "quote_request.created.admin", locale, data, fallback: adminFallback });
37
+ if (adminContent)
38
+ for (const to of adminEmails)
39
+ tasks.push((0, email_center_1.sendManagedEmail)({ container: req.scope, to, key: "quote_request.created.admin", locale, content: adminContent, idempotencyKey: `quote-request-created-admin-${quote.id}-${to}`, resourceId: quote.id, resourceType: "quote_request", track: false }));
71
40
  await Promise.allSettled(tasks);
72
41
  }
73
42
  function normalizeStoreQuoteRequest(body, definitions) {
74
43
  const contactName = requiredText(body.contact_name, "Kapcsolattartó neve", 180);
75
44
  const contactEmail = requiredText(body.contact_email, "E-mail-cím", 240).toLowerCase();
76
- if (!/^\S+@\S+\.\S+$/.test(contactEmail)) {
45
+ if (!/^\S+@\S+\.\S+$/.test(contactEmail))
77
46
  throw new Error("Érvényes e-mail-cím szükséges.");
78
- }
79
47
  const orderType = body.order_type === "recurring" ? "recurring" : "one_time";
80
48
  const recurrence = optionalText(body.recurrence, 240);
81
- if (orderType === "recurring" && !recurrence) {
49
+ if (orderType === "recurring" && !recurrence)
82
50
  throw new Error("Rendszeres rendelésnél add meg a rendelési gyakoriságot.");
83
- }
84
51
  const items = normalizeItems(body.items, false);
85
- if (!items.length) {
52
+ if (!items.length)
86
53
  throw new Error("Legalább egy ajánlatkérési tétel szükséges.");
87
- }
88
54
  const extraFields = normalizeConfiguredExtraFields(body.extra_fields, definitions);
89
55
  const currencyCode = optionalText(body.currency_code, 3)?.toUpperCase() || null;
90
- if (currencyCode && !/^[A-Z]{3}$/.test(currencyCode)) {
56
+ if (currencyCode && !/^[A-Z]{3}$/.test(currencyCode))
91
57
  throw new Error("A pénznem hárombetűs ISO kód legyen.");
92
- }
93
- return {
94
- company_name: optionalText(body.company_name, 240),
95
- tax_number: optionalText(body.tax_number, 80),
96
- company_address: optionalText(body.company_address, 500),
97
- contact_name: contactName,
98
- contact_email: contactEmail,
99
- contact_phone: optionalText(body.contact_phone, 80),
100
- order_type: orderType,
101
- recurrence,
102
- note: optionalText(body.note, 5000),
103
- items,
104
- extra_fields: extraFields,
105
- currency_code: currencyCode,
106
- };
58
+ return { company_name: optionalText(body.company_name, 240), tax_number: optionalText(body.tax_number, 80), company_address: optionalText(body.company_address, 500), contact_name: contactName, contact_email: contactEmail, contact_phone: optionalText(body.contact_phone, 80), order_type: orderType, recurrence, note: optionalText(body.note, 5000), items, extra_fields: extraFields, currency_code: currencyCode };
107
59
  }
108
60
  function normalizeItems(value, allowQuotedPrice) {
109
- if (!Array.isArray(value)) {
61
+ if (!Array.isArray(value))
110
62
  throw new Error("A tételek listája érvénytelen.");
111
- }
112
- if (value.length > 100) {
63
+ if (value.length > 100)
113
64
  throw new Error("Egy ajánlatkérés legfeljebb 100 tételt tartalmazhat.");
114
- }
115
65
  return value.map((raw, index) => {
116
- if (!raw || typeof raw !== "object" || Array.isArray(raw)) {
66
+ if (!raw || typeof raw !== "object" || Array.isArray(raw))
117
67
  throw new Error(`Érvénytelen ${index + 1}. tétel.`);
118
- }
119
68
  const item = raw;
120
69
  const title = requiredText(item.title, `${index + 1}. tétel megnevezése`, 500);
121
70
  const quantity = Number(item.quantity);
122
- if (!Number.isInteger(quantity) || quantity <= 0 || quantity > 1_000_000) {
71
+ if (!Number.isInteger(quantity) || quantity <= 0 || quantity > 1_000_000)
123
72
  throw new Error(`Érvénytelen mennyiség a(z) ${index + 1}. tételnél.`);
124
- }
125
- const result = {
126
- product_id: optionalText(item.product_id, 160),
127
- variant_id: optionalText(item.variant_id, 160),
128
- sku: optionalText(item.sku, 160),
129
- title,
130
- quantity,
131
- unit_label: optionalText(item.unit_label, 80),
132
- custom_request: optionalText(item.custom_request, 5000),
133
- is_custom: item.is_custom === true || (!item.product_id && !item.variant_id),
134
- };
73
+ const result = { product_id: optionalText(item.product_id, 160), variant_id: optionalText(item.variant_id, 160), sku: optionalText(item.sku, 160), title, quantity, unit_label: optionalText(item.unit_label, 80), custom_request: optionalText(item.custom_request, 5000), is_custom: item.is_custom === true || (!item.product_id && !item.variant_id) };
135
74
  const referencePrice = finiteNumber(item.reference_unit_price);
136
- if (referencePrice != null && referencePrice >= 0) {
75
+ if (referencePrice != null && referencePrice >= 0)
137
76
  result.reference_unit_price = referencePrice;
138
- }
139
77
  if (allowQuotedPrice) {
140
78
  const unitPrice = finiteNumber(item.unit_price);
141
79
  if (unitPrice != null && unitPrice >= 0)
@@ -145,70 +83,44 @@ function normalizeItems(value, allowQuotedPrice) {
145
83
  });
146
84
  }
147
85
  function normalizeConfiguredExtraFields(value, definitions) {
148
- const source = value && typeof value === "object" && !Array.isArray(value)
149
- ? value
150
- : {};
86
+ const source = value && typeof value === "object" && !Array.isArray(value) ? value : {};
151
87
  const result = {};
152
88
  for (const definition of definitions) {
153
89
  const raw = source[definition.key];
154
90
  if (isEmpty(raw)) {
155
- if (definition.required) {
91
+ if (definition.required)
156
92
  throw new Error(`${definition.label} kitöltése kötelező.`);
157
- }
158
93
  continue;
159
94
  }
160
95
  if (definition.type === "boolean") {
161
- if (typeof raw !== "boolean") {
96
+ if (typeof raw !== "boolean")
162
97
  throw new Error(`${definition.label} mező értéke igaz/hamis lehet.`);
163
- }
164
98
  result[definition.key] = raw;
165
99
  continue;
166
100
  }
167
101
  if (definition.type === "number") {
168
102
  const number = finiteNumber(raw);
169
- if (number == null) {
103
+ if (number == null)
170
104
  throw new Error(`${definition.label} mezőben szám szükséges.`);
171
- }
172
105
  result[definition.key] = number;
173
106
  continue;
174
107
  }
175
108
  const textValue = optionalText(raw, 5000);
176
109
  if (!textValue) {
177
- if (definition.required) {
110
+ if (definition.required)
178
111
  throw new Error(`${definition.label} kitöltése kötelező.`);
179
- }
180
112
  continue;
181
113
  }
182
- if (definition.type === "select" &&
183
- definition.options?.length &&
184
- !definition.options.includes(textValue)) {
114
+ if (definition.type === "select" && definition.options?.length && !definition.options.includes(textValue))
185
115
  throw new Error(`${definition.label} mezőben érvénytelen érték szerepel.`);
186
- }
187
116
  result[definition.key] = textValue;
188
117
  }
189
118
  return result;
190
119
  }
191
- function requiredText(value, label, max) {
192
- const result = optionalText(value, max);
193
- if (!result)
194
- throw new Error(`${label} megadása kötelező.`);
195
- return result;
196
- }
197
- function optionalText(value, max) {
198
- if (typeof value !== "string")
199
- return null;
200
- const result = value.trim();
201
- return result ? result.slice(0, max) : null;
202
- }
203
- function finiteNumber(value) {
204
- const number = typeof value === "number"
205
- ? value
206
- : typeof value === "string" && value.trim()
207
- ? Number(value)
208
- : Number.NaN;
209
- return Number.isFinite(number) ? number : null;
210
- }
211
- function isEmpty(value) {
212
- return value == null || value === "" || (Array.isArray(value) && value.length === 0);
213
- }
214
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3F1b3RlLXJlcXVlc3RzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBaUJBLG9CQW1DQztBQStGRCx3Q0E0Q0M7QUE5TEQscURBQW1EO0FBQ25ELGtFQU91QztBQVFoQyxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQXdCLEVBQUUsR0FBbUI7SUFDdEUsTUFBTSxNQUFNLEdBQUcsSUFBQSxzQ0FBc0IsR0FBRSxDQUFBO0lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEIsT0FBTyxHQUFHLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLE9BQU8sRUFBRSx3Q0FBd0MsRUFBRSxDQUFDLENBQUE7SUFDcEYsQ0FBQztJQUVELElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3RFLE1BQU0sVUFBVSxHQUNkLEdBQ0QsQ0FBQyxZQUFZLEVBQUUsUUFBUSxJQUFJLElBQUksQ0FBQTtRQUNoQyxNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0IsQ0FBd0IsQ0FBQTtRQUM5RSxNQUFNLEtBQUssR0FBRyxNQUFNLE9BQU8sQ0FBQyxtQkFBbUIsQ0FBQztZQUM5QyxHQUFHLEtBQUs7WUFDUixNQUFNLEVBQUUsS0FBSztZQUNiLFdBQVcsRUFBRSxVQUFVO1lBQ3ZCLE1BQU0sRUFBRSxZQUFZO1NBQ1osQ0FBQyxDQUFBO1FBRVgsSUFBSSxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDeEIsTUFBTSxhQUFhLENBQ2pCLEdBQUcsRUFDSCxLQUEyQyxFQUMzQyxNQUFNLENBQUMsV0FBVyxDQUNuQixDQUFBO1FBQ0gsQ0FB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
120
+ function requiredText(value, label, max) { const result = optionalText(value, max); if (!result)
121
+ throw new Error(`${label} megadása kötelező.`); return result; }
122
+ function optionalText(value, max) { if (typeof value !== "string")
123
+ return null; const result = value.trim(); return result ? result.slice(0, max) : null; }
124
+ function finiteNumber(value) { const number = typeof value === "number" ? value : typeof value === "string" && value.trim() ? Number(value) : Number.NaN; return Number.isFinite(number) ? number : null; }
125
+ function isEmpty(value) { return value == null || value === "" || (Array.isArray(value) && value.length === 0); }
126
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm91dGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9zcmMvYXBpL3N0b3JlL3F1b3RlLXJlcXVlc3RzL3JvdXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBYUEsb0JBYUM7QUFtQ0Qsd0NBY0M7QUExRUQsZ0VBQXFGO0FBQ3JGLGtFQU91QztBQUloQyxLQUFLLFVBQVUsSUFBSSxDQUFDLEdBQXdCLEVBQUUsR0FBbUI7SUFDdEUsTUFBTSxNQUFNLEdBQUcsSUFBQSxzQ0FBc0IsR0FBRSxDQUFBO0lBQ3ZDLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTztRQUFFLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsRUFBRSxPQUFPLEVBQUUsd0NBQXdDLEVBQUUsQ0FBQyxDQUFBO0lBQ3ZHLElBQUksQ0FBQztRQUNILE1BQU0sS0FBSyxHQUFHLDBCQUEwQixDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFBO1FBQ3RFLE1BQU0sVUFBVSxHQUFJLEdBQTJELENBQUMsWUFBWSxFQUFFLFFBQVEsSUFBSSxJQUFJLENBQUE7UUFDOUcsTUFBTSxPQUFPLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsb0NBQW9CLENBQXdCLENBQUE7UUFDOUUsTUFBTSxLQUFLLEdBQUcsTUFBTSxPQUFPLENBQUMsbUJBQW1CLENBQUMsRUFBRSxHQUFHLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVyxDQUFDLENBQUE7UUFDcEksSUFBSSxNQUFNLENBQUMsWUFBWTtZQUFFLE1BQU0sYUFBYSxDQUFDLEdBQUcsRUFBRSxLQUF1QyxFQUFFLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQTtRQUM5RyxPQUFPLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMs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
@@ -227,6 +227,7 @@ function createHszrdmCommerceConfig(options = {}) {
227
227
  ]
228
228
  : []),
229
229
  ];
230
+ const emailProvider = emailProviderFromEnv(env.providers.sendgrid);
230
231
  return (0, utils_1.defineConfig)({
231
232
  featureFlags: {
232
233
  translation: true,
@@ -256,22 +257,10 @@ function createHszrdmCommerceConfig(options = {}) {
256
257
  id: "local",
257
258
  options: {
258
259
  name: "Local Notification Provider",
259
- channels: env.providers.sendgrid ? ["feed"] : ["feed", "email"],
260
+ channels: emailProvider ? ["feed"] : ["feed", "email"],
260
261
  },
261
262
  },
262
- ...(env.providers.sendgrid
263
- ? [
264
- {
265
- resolve: "@medusajs/medusa/notification-sendgrid",
266
- id: "sendgrid",
267
- options: {
268
- channels: ["email"],
269
- api_key: process.env.SENDGRID_API_KEY,
270
- from: process.env.SENDGRID_FROM_EMAIL,
271
- },
272
- },
273
- ]
274
- : []),
263
+ ...(emailProvider ? [emailProvider] : []),
275
264
  ],
276
265
  },
277
266
  },
@@ -306,10 +295,44 @@ function createHszrdmCommerceConfig(options = {}) {
306
295
  },
307
296
  });
308
297
  }
298
+ function emailProviderFromEnv(legacySendGridEnabled) {
299
+ const requested = process.env.EMAIL_PROVIDER?.trim().toLowerCase();
300
+ const driver = requested || (legacySendGridEnabled ? "sendgrid" : "");
301
+ if (!driver)
302
+ return null;
303
+ if (driver !== "sendgrid" && driver !== "resend") {
304
+ throw new Error("[env] EMAIL_PROVIDER must be sendgrid or resend");
305
+ }
306
+ const apiKey = process.env.EMAIL_API_KEY?.trim() ||
307
+ (driver === "sendgrid"
308
+ ? process.env.SENDGRID_API_KEY?.trim()
309
+ : process.env.RESEND_API_KEY?.trim());
310
+ const from = process.env.EMAIL_FROM?.trim() ||
311
+ (driver === "sendgrid"
312
+ ? process.env.SENDGRID_FROM_EMAIL?.trim()
313
+ : process.env.RESEND_FROM_EMAIL?.trim());
314
+ if (!apiKey) {
315
+ throw new Error(`[env] EMAIL_PROVIDER=${driver} requires EMAIL_API_KEY${driver === "sendgrid" ? " or SENDGRID_API_KEY" : " or RESEND_API_KEY"}`);
316
+ }
317
+ if (!from) {
318
+ throw new Error(`[env] EMAIL_PROVIDER=${driver} requires EMAIL_FROM${driver === "sendgrid" ? " or SENDGRID_FROM_EMAIL" : " or RESEND_FROM_EMAIL"}`);
319
+ }
320
+ return {
321
+ resolve: "@hszrdm/core/providers/email",
322
+ id: "hszrdm-email",
323
+ options: {
324
+ channels: ["email"],
325
+ driver,
326
+ api_key: apiKey,
327
+ from,
328
+ reply_to: process.env.EMAIL_REPLY_TO?.trim() || undefined,
329
+ },
330
+ };
331
+ }
309
332
  function numberOrUndefined(value) {
310
333
  if (value == null || value.trim() === "")
311
334
  return undefined;
312
335
  const number = Number(value);
313
336
  return Number.isFinite(number) ? number : undefined;
314
337
  }
315
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWtCQSxnRUFxVUM7QUF2VkQscURBQXdEO0FBRXhELCtCQUEwQztBQUMxQyx5REFBc0U7QUFDdEUsc0ZBQWlHO0FBT2pHOzs7Ozs7R0FNRztBQUNILFNBQWdCLDBCQUEwQixDQUN4QyxVQUF1QyxFQUFFO0lBRXpDLElBQUEsa0RBQStCLEVBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRTVDLE1BQU0sR0FBRyxHQUFHLElBQUEsd0JBQWtCLEdBQUUsQ0FBQTtJQUNoQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUztRQUNoQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksTUFBTSxDQUFrQixDQUFBO0lBQzdELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQTtJQUV2RSxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsUUFBUTtRQUMvQixDQUFDLENBQUM7WUFDRTtnQkFDRSxPQUFPLEVBQUUsa0NBQWtDO2dCQUMzQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRTthQUNwQztZQUNEO2dCQUNFLE9BQU8sRUFBRSx3Q0FBd0M7Z0JBQ2pELE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUU7YUFDL0M7WUFDRDtnQkFDRSxPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxPQUFPLEVBQUU7b0JBQ1AsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLEVBQUUsRUFBRSxlQUFlOzRCQUNuQixVQUFVLEVBQUUsSUFBSTs0QkFDaEIsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcs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
338
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2NvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWtCQSxnRUEyVEM7QUE3VUQscURBQXdEO0FBRXhELCtCQUEwQztBQUMxQyx5REFBc0U7QUFDdEUsc0ZBQWlHO0FBT2pHOzs7Ozs7R0FNRztBQUNILFNBQWdCLDBCQUEwQixDQUN4QyxVQUF1QyxFQUFFO0lBRXpDLElBQUEsa0RBQStCLEVBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFBO0lBRTVDLE1BQU0sR0FBRyxHQUFHLElBQUEsd0JBQWtCLEdBQUUsQ0FBQTtJQUNoQyxNQUFNLFNBQVMsR0FBRyxPQUFPLENBQUMsU0FBUztRQUNoQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsaUJBQWlCLElBQUksTUFBTSxDQUFrQixDQUFBO0lBQzdELE1BQU0sVUFBVSxHQUFHLE9BQU8sQ0FBQyxVQUFVLElBQUksT0FBTyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsQ0FBQTtJQUV2RSxNQUFNLFlBQVksR0FBRyxHQUFHLENBQUMsUUFBUTtRQUMvQixDQUFDLENBQUM7WUFDRTtnQkFDRSxPQUFPLEVBQUUsa0NBQWtDO2dCQUMzQyxPQUFPLEVBQUUsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLFFBQVEsRUFBRTthQUNwQztZQUNEO2dCQUNFLE9BQU8sRUFBRSx3Q0FBd0M7Z0JBQ2pELE9BQU8sRUFBRSxFQUFFLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLEVBQUU7YUFDL0M7WUFDRDtnQkFDRSxPQUFPLEVBQUUsMEJBQTBCO2dCQUNuQyxPQUFPLEVBQUU7b0JBQ1AsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxnQ0FBZ0M7NEJBQ3pDLEVBQUUsRUFBRSxlQUFlOzRCQUNuQixVQUFVLEVBQUUsSUFBSTs0QkFDaEIsT0FBTyxFQUFFLEVBQUUsUUFBUSxFQUFFLEdBQUcs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
@@ -0,0 +1,26 @@
1
+ export declare const AI_TRANSLATION_REFERENCES: readonly ["product", "cms_entry"];
2
+ export type AiTranslationReference = (typeof AI_TRANSLATION_REFERENCES)[number];
3
+ export declare const AI_TRANSLATION_FIELDS: Record<AiTranslationReference, readonly string[]>;
4
+ export type AiTranslationTask = {
5
+ taskId: string;
6
+ reference: AiTranslationReference;
7
+ referenceId: string;
8
+ sourceLocale: string;
9
+ targetLocale: string;
10
+ fields: Record<string, string>;
11
+ };
12
+ export type AiTranslationResult = {
13
+ taskId: string;
14
+ translations: Record<string, string>;
15
+ };
16
+ export declare function getAiTranslationConfig(): {
17
+ enabled: boolean;
18
+ provider: string;
19
+ model: string;
20
+ baseUrl: string;
21
+ apiKeyConfigured: boolean;
22
+ defaultSourceLocale: string;
23
+ };
24
+ export declare function isAiTranslationReference(value: unknown): value is AiTranslationReference;
25
+ export declare function filterAiTranslatableFields(reference: AiTranslationReference, value: Record<string, unknown>): Record<string, string>;
26
+ export declare function generateAiTranslations(tasks: AiTranslationTask[]): Promise<AiTranslationResult[]>;
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AI_TRANSLATION_FIELDS = exports.AI_TRANSLATION_REFERENCES = void 0;
4
+ exports.getAiTranslationConfig = getAiTranslationConfig;
5
+ exports.isAiTranslationReference = isAiTranslationReference;
6
+ exports.filterAiTranslatableFields = filterAiTranslatableFields;
7
+ exports.generateAiTranslations = generateAiTranslations;
8
+ exports.AI_TRANSLATION_REFERENCES = ["product", "cms_entry"];
9
+ exports.AI_TRANSLATION_FIELDS = {
10
+ product: ["title", "description", "subtitle", "material"],
11
+ cms_entry: [
12
+ "title",
13
+ "excerpt",
14
+ "body",
15
+ "featured_image_alt",
16
+ "seo_title",
17
+ "seo_description",
18
+ ],
19
+ };
20
+ function getAiTranslationConfig() {
21
+ const enabled = bool(process.env.AI_TRANSLATION_ENABLED, false);
22
+ const provider = (process.env.AI_TRANSLATION_PROVIDER || "openai").trim().toLowerCase();
23
+ const model = (process.env.AI_TRANSLATION_MODEL || "gpt-6-astra").trim();
24
+ const baseUrl = (process.env.OPENAI_BASE_URL || "https://api.openai.com/v1").replace(/\/+$/, "");
25
+ const apiKeyConfigured = Boolean(process.env.OPENAI_API_KEY?.trim());
26
+ const defaultSourceLocale = (process.env.STORE_LOCALE || "hu-HU").trim();
27
+ return {
28
+ enabled,
29
+ provider,
30
+ model,
31
+ baseUrl,
32
+ apiKeyConfigured,
33
+ defaultSourceLocale,
34
+ };
35
+ }
36
+ function isAiTranslationReference(value) {
37
+ return typeof value === "string" && exports.AI_TRANSLATION_REFERENCES.includes(value);
38
+ }
39
+ function filterAiTranslatableFields(reference, value) {
40
+ const allowed = new Set(exports.AI_TRANSLATION_FIELDS[reference]);
41
+ const result = {};
42
+ for (const [key, raw] of Object.entries(value || {})) {
43
+ if (!allowed.has(key) || typeof raw !== "string" || !raw.trim())
44
+ continue;
45
+ result[key] = raw;
46
+ }
47
+ return result;
48
+ }
49
+ async function generateAiTranslations(tasks) {
50
+ if (!tasks.length)
51
+ return [];
52
+ if (tasks.length > 40)
53
+ throw new Error("Egyszerre legfeljebb 40 fordítási feladat generálható.");
54
+ const config = getAiTranslationConfig();
55
+ if (!config.enabled)
56
+ throw new Error("Az automatikus fordítás nincs engedélyezve.");
57
+ if (config.provider !== "openai")
58
+ throw new Error(`Nem támogatott fordítási provider: ${config.provider}`);
59
+ const apiKey = process.env.OPENAI_API_KEY?.trim();
60
+ if (!apiKey)
61
+ throw new Error("Az OPENAI_API_KEY nincs beállítva.");
62
+ const response = await fetch(`${config.baseUrl}/responses`, {
63
+ method: "POST",
64
+ headers: {
65
+ authorization: `Bearer ${apiKey}`,
66
+ "content-type": "application/json",
67
+ },
68
+ body: JSON.stringify({
69
+ model: config.model,
70
+ store: false,
71
+ instructions: [
72
+ "You are a professional ecommerce translation engine.",
73
+ "Translate faithfully into the requested target locale.",
74
+ "Keep brand names, SKUs, URLs, template variables, technical tokens and measurements unchanged unless normal language rules require otherwise.",
75
+ "For HTML input, preserve valid HTML structure, tags, attributes, links and embedded URLs while translating human-readable text.",
76
+ "Do not summarize, add marketing claims, remove information, or rewrite the meaning.",
77
+ "Return every requested field exactly once.",
78
+ ].join(" "),
79
+ input: JSON.stringify({ tasks }),
80
+ text: {
81
+ format: {
82
+ type: "json_schema",
83
+ name: "hszrdm_translation_batch",
84
+ strict: true,
85
+ schema: {
86
+ type: "object",
87
+ properties: {
88
+ items: {
89
+ type: "array",
90
+ items: {
91
+ type: "object",
92
+ properties: {
93
+ task_id: { type: "string" },
94
+ translations: {
95
+ type: "array",
96
+ items: {
97
+ type: "object",
98
+ properties: {
99
+ key: { type: "string" },
100
+ value: { type: "string" },
101
+ },
102
+ required: ["key", "value"],
103
+ additionalProperties: false,
104
+ },
105
+ },
106
+ },
107
+ required: ["task_id", "translations"],
108
+ additionalProperties: false,
109
+ },
110
+ },
111
+ },
112
+ required: ["items"],
113
+ additionalProperties: false,
114
+ },
115
+ },
116
+ },
117
+ }),
118
+ });
119
+ const payload = (await response.json());
120
+ if (!response.ok) {
121
+ const message = payload?.error?.message || payload?.message || `OpenAI API hiba (${response.status}).`;
122
+ throw new Error(message);
123
+ }
124
+ const outputText = extractOutputText(payload);
125
+ if (!outputText)
126
+ throw new Error("Az OpenAI válasz nem tartalmazott fordítási eredményt.");
127
+ let parsed;
128
+ try {
129
+ parsed = JSON.parse(outputText);
130
+ }
131
+ catch {
132
+ throw new Error("Az OpenAI fordítási válasza nem értelmezhető JSON-ként.");
133
+ }
134
+ const taskMap = new Map(tasks.map((task) => [task.taskId, task]));
135
+ const results = [];
136
+ for (const item of Array.isArray(parsed?.items) ? parsed.items : []) {
137
+ const taskId = typeof item?.task_id === "string" ? item.task_id : "";
138
+ const task = taskMap.get(taskId);
139
+ if (!task)
140
+ continue;
141
+ const translations = {};
142
+ const allowedFields = new Set(Object.keys(task.fields));
143
+ for (const pair of Array.isArray(item?.translations) ? item.translations : []) {
144
+ const key = typeof pair?.key === "string" ? pair.key : "";
145
+ const value = typeof pair?.value === "string" ? pair.value.trim() : "";
146
+ if (!key || !value || !allowedFields.has(key))
147
+ continue;
148
+ translations[key] = value;
149
+ }
150
+ if (Object.keys(translations).length)
151
+ results.push({ taskId, translations });
152
+ }
153
+ return results;
154
+ }
155
+ function extractOutputText(payload) {
156
+ if (typeof payload.output_text === "string" && payload.output_text.trim()) {
157
+ return payload.output_text.trim();
158
+ }
159
+ for (const item of Array.isArray(payload.output) ? payload.output : []) {
160
+ for (const content of Array.isArray(item?.content) ? item.content : []) {
161
+ if (content?.type === "output_text" && typeof content.text === "string" && content.text.trim()) {
162
+ return content.text.trim();
163
+ }
164
+ }
165
+ }
166
+ return "";
167
+ }
168
+ function bool(value, fallback) {
169
+ if (value === undefined || value === "")
170
+ return fallback;
171
+ return ["1", "true", "yes", "on"].includes(value.trim().toLowerCase());
172
+ }
173
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWktdHJhbnNsYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS9haS10cmFuc2xhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUE4QkEsd0RBZ0JDO0FBRUQsNERBRUM7QUFFRCxnRUFhQztBQUVELHdEQTZHQztBQWhMWSxRQUFBLHlCQUF5QixHQUFHLENBQUMsU0FBUyxFQUFFLFdBQVcsQ0FBVSxDQUFBO0FBSTdELFFBQUEscUJBQXFCLEdBQXNEO0lBQ3RGLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxhQUFhLEVBQUUsVUFBVSxFQUFFLFVBQVUsQ0FBQztJQUN6RCxTQUFTLEVBQUU7UUFDVCxPQUFPO1FBQ1AsU0FBUztRQUNULE1BQU07UUFDTixvQkFBb0I7UUFDcEIsV0FBVztRQUNYLGlCQUFpQjtLQUNsQjtDQUNGLENBQUE7QUFnQkQsU0FBZ0Isc0JBQXNCO0lBQ3BDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLHNCQUFzQixFQUFFLEtBQUssQ0FBQyxDQUFBO0lBQy9ELE1BQU0sUUFBUSxHQUFHLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsSUFBSSxRQUFRLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxXQUFXLEVBQUUsQ0FBQTtJQUN2RixNQUFNLEtBQUssR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLElBQUksYUFBYSxDQUFDLENBQUMsSUFBSSxFQUFFLENBQUE7SUFDeEUsTUFBTSxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLGVBQWUsSUFBSSwyQkFBMkIsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUE7SUFDaEcsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQTtJQUNw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