@hszrdm/core 1.2.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.
- package/.medusa/server/src/admin/index.js +3439 -3192
- package/.medusa/server/src/admin/index.mjs +3439 -3192
- package/.medusa/server/src/api/admin/email/preview/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/email/preview/route.js +20 -0
- package/.medusa/server/src/api/admin/email/templates/[id]/route.d.ts +4 -0
- package/.medusa/server/src/api/admin/email/templates/[id]/route.js +25 -0
- package/.medusa/server/src/api/admin/email/templates/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/email/templates/route.js +40 -0
- package/.medusa/server/src/api/admin/email/test-send/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/email/test-send/route.js +64 -0
- package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/cancel/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/cancel/route.js +15 -0
- package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/route.d.ts +4 -0
- package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/route.js +39 -0
- package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/send/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/send/route.js +14 -0
- package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/stats/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/stats/route.js +17 -0
- package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/test-send/route.d.ts +2 -0
- package/.medusa/server/src/api/admin/newsletter/campaigns/[id]/test-send/route.js +23 -0
- package/.medusa/server/src/api/admin/newsletter/campaigns/route.d.ts +3 -0
- package/.medusa/server/src/api/admin/newsletter/campaigns/route.js +40 -0
- package/.medusa/server/src/api/hooks/email/status/route.d.ts +2 -0
- package/.medusa/server/src/api/hooks/email/status/route.js +69 -0
- package/.medusa/server/src/api/store/email/track/click/[token]/route.d.ts +2 -0
- package/.medusa/server/src/api/store/email/track/click/[token]/route.js +19 -0
- package/.medusa/server/src/api/store/email/track/open/[token]/route.d.ts +2 -0
- package/.medusa/server/src/api/store/email/track/open/[token]/route.js +22 -0
- package/.medusa/server/src/api/store/leads/route.js +27 -93
- package/.medusa/server/src/api/store/newsletter/route.js +24 -107
- package/.medusa/server/src/api/store/quote-requests/route.js +41 -129
- package/.medusa/server/src/config.js +38 -15
- package/.medusa/server/src/core/customer-email.d.ts +5 -5
- package/.medusa/server/src/core/customer-email.js +55 -109
- package/.medusa/server/src/core/transactional-email.d.ts +9 -8
- package/.medusa/server/src/core/transactional-email.js +74 -244
- package/.medusa/server/src/core/version.d.ts +2 -2
- package/.medusa/server/src/core/version.js +2 -2
- package/.medusa/server/src/jobs/email-campaign-dispatch.d.ts +6 -0
- package/.medusa/server/src/jobs/email-campaign-dispatch.js +18 -0
- package/.medusa/server/src/modules/email-center/campaign.d.ts +8 -0
- package/.medusa/server/src/modules/email-center/campaign.js +193 -0
- package/.medusa/server/src/modules/email-center/constants.d.ts +1 -0
- package/.medusa/server/src/modules/email-center/constants.js +5 -0
- package/.medusa/server/src/modules/email-center/defaults.d.ts +10 -0
- package/.medusa/server/src/modules/email-center/defaults.js +49 -0
- package/.medusa/server/src/modules/email-center/index.d.ts +11 -0
- package/.medusa/server/src/modules/email-center/index.js +42 -0
- package/.medusa/server/src/modules/email-center/migrations/Migration20261030173000.d.ts +5 -0
- package/.medusa/server/src/modules/email-center/migrations/Migration20261030173000.js +25 -0
- package/.medusa/server/src/modules/email-center/models/email-campaign.d.ts +22 -0
- package/.medusa/server/src/modules/email-center/models/email-campaign.js +37 -0
- package/.medusa/server/src/modules/email-center/models/email-delivery.d.ts +21 -0
- package/.medusa/server/src/modules/email-center/models/email-delivery.js +38 -0
- package/.medusa/server/src/modules/email-center/models/email-template.d.ts +13 -0
- package/.medusa/server/src/modules/email-center/models/email-template.js +20 -0
- package/.medusa/server/src/modules/email-center/render.d.ts +31 -0
- package/.medusa/server/src/modules/email-center/render.js +92 -0
- package/.medusa/server/src/modules/email-center/send.d.ts +27 -0
- package/.medusa/server/src/modules/email-center/send.js +67 -0
- package/.medusa/server/src/modules/email-center/service.d.ts +56 -0
- package/.medusa/server/src/modules/email-center/service.js +13 -0
- package/.medusa/server/src/modules/email-center/tracking.d.ts +9 -0
- package/.medusa/server/src/modules/email-center/tracking.js +92 -0
- package/.medusa/server/src/providers/email/index.d.ts +2 -0
- package/.medusa/server/src/providers/email/index.js +11 -0
- package/.medusa/server/src/providers/email/service.d.ts +24 -0
- package/.medusa/server/src/providers/email/service.js +117 -0
- package/.medusa/server/src/scripts/core-init.js +20 -3
- package/.medusa/server/src/scripts/verify-bootstrap.js +1 -7
- package/.medusa/server/src/subscribers/transactional-email-shipment-created.js +6 -2
- package/package.json +3 -3
|
@@ -8,145 +8,91 @@ exports.queueCustomerAccountEmail = queueCustomerAccountEmail;
|
|
|
8
8
|
exports.resolveCustomerEmailTemplate = resolveCustomerEmailTemplate;
|
|
9
9
|
const node_crypto_1 = require("node:crypto");
|
|
10
10
|
const utils_1 = require("@medusajs/framework/utils");
|
|
11
|
+
const email_center_1 = require("../modules/email-center");
|
|
11
12
|
const CUSTOMER_EMAIL_CONFIG = {
|
|
12
|
-
welcome: {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
},
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
templatePrefix: "SENDGRID_REGISTRATION_VERIFICATION_TEMPLATE_ID",
|
|
20
|
-
localTemplate: "customer-registration-verification",
|
|
21
|
-
},
|
|
22
|
-
password_reset: {
|
|
23
|
-
enabled: "SENDGRID_PASSWORD_RESET_ENABLED",
|
|
24
|
-
templatePrefix: "SENDGRID_PASSWORD_RESET_TEMPLATE_ID",
|
|
25
|
-
defaultEnabled: true,
|
|
26
|
-
legacyTemplateEnv: "SENDGRID_PASSWORD_RESET_TEMPLATE_ID",
|
|
27
|
-
localTemplate: "password-reset",
|
|
28
|
-
},
|
|
29
|
-
email_change_verification: {
|
|
30
|
-
enabled: "SENDGRID_EMAIL_CHANGE_VERIFICATION_ENABLED",
|
|
31
|
-
templatePrefix: "SENDGRID_EMAIL_CHANGE_VERIFICATION_TEMPLATE_ID",
|
|
32
|
-
defaultEnabled: true,
|
|
33
|
-
legacyTemplateEnv: "SENDGRID_EMAIL_VERIFICATION_TEMPLATE_ID",
|
|
34
|
-
localTemplate: "email-verification",
|
|
35
|
-
},
|
|
36
|
-
password_changed: {
|
|
37
|
-
enabled: "SENDGRID_PASSWORD_CHANGED_ENABLED",
|
|
38
|
-
templatePrefix: "SENDGRID_PASSWORD_CHANGED_TEMPLATE_ID",
|
|
39
|
-
localTemplate: "customer-password-changed",
|
|
40
|
-
},
|
|
41
|
-
email_changed: {
|
|
42
|
-
enabled: "SENDGRID_EMAIL_CHANGED_ENABLED",
|
|
43
|
-
templatePrefix: "SENDGRID_EMAIL_CHANGED_TEMPLATE_ID",
|
|
44
|
-
localTemplate: "customer-email-changed",
|
|
45
|
-
},
|
|
46
|
-
account_deleted: {
|
|
47
|
-
enabled: "SENDGRID_ACCOUNT_DELETED_ENABLED",
|
|
48
|
-
templatePrefix: "SENDGRID_ACCOUNT_DELETED_TEMPLATE_ID",
|
|
49
|
-
localTemplate: "customer-account-deleted",
|
|
50
|
-
},
|
|
13
|
+
welcome: { enabled: "EMAIL_CUSTOMER_WELCOME_ENABLED", legacyEnabled: "SENDGRID_CUSTOMER_WELCOME_ENABLED", templatePrefix: "SENDGRID_CUSTOMER_WELCOME_TEMPLATE_ID", localTemplate: "customer-welcome", coreKey: "customer.registered" },
|
|
14
|
+
registration_verification: { enabled: "EMAIL_REGISTRATION_VERIFICATION_ENABLED", legacyEnabled: "SENDGRID_REGISTRATION_VERIFICATION_ENABLED", templatePrefix: "SENDGRID_REGISTRATION_VERIFICATION_TEMPLATE_ID", localTemplate: "customer-registration-verification", coreKey: "customer.email_verification" },
|
|
15
|
+
password_reset: { enabled: "EMAIL_PASSWORD_RESET_ENABLED", legacyEnabled: "SENDGRID_PASSWORD_RESET_ENABLED", templatePrefix: "SENDGRID_PASSWORD_RESET_TEMPLATE_ID", defaultEnabled: true, legacyTemplateEnv: "SENDGRID_PASSWORD_RESET_TEMPLATE_ID", localTemplate: "password-reset", coreKey: "customer.password_reset" },
|
|
16
|
+
email_change_verification: { enabled: "EMAIL_CHANGE_VERIFICATION_ENABLED", legacyEnabled: "SENDGRID_EMAIL_CHANGE_VERIFICATION_ENABLED", templatePrefix: "SENDGRID_EMAIL_CHANGE_VERIFICATION_TEMPLATE_ID", defaultEnabled: true, legacyTemplateEnv: "SENDGRID_EMAIL_VERIFICATION_TEMPLATE_ID", localTemplate: "email-verification", coreKey: "customer.email_verification" },
|
|
17
|
+
password_changed: { enabled: "EMAIL_PASSWORD_CHANGED_ENABLED", legacyEnabled: "SENDGRID_PASSWORD_CHANGED_ENABLED", templatePrefix: "SENDGRID_PASSWORD_CHANGED_TEMPLATE_ID", localTemplate: "customer-password-changed", coreKey: "customer.password_changed" },
|
|
18
|
+
email_changed: { enabled: "EMAIL_CHANGED_ENABLED", legacyEnabled: "SENDGRID_EMAIL_CHANGED_ENABLED", templatePrefix: "SENDGRID_EMAIL_CHANGED_TEMPLATE_ID", localTemplate: "customer-email-changed", coreKey: "customer.email_changed" },
|
|
19
|
+
account_deleted: { enabled: "EMAIL_ACCOUNT_DELETED_ENABLED", legacyEnabled: "SENDGRID_ACCOUNT_DELETED_ENABLED", templatePrefix: "SENDGRID_ACCOUNT_DELETED_TEMPLATE_ID", localTemplate: "customer-account-deleted", coreKey: "customer.account_deleted" },
|
|
51
20
|
};
|
|
52
21
|
function customerEmailEnabled(kind) {
|
|
53
22
|
const config = CUSTOMER_EMAIL_CONFIG[kind];
|
|
54
|
-
const
|
|
55
|
-
if (
|
|
56
|
-
return
|
|
57
|
-
|
|
23
|
+
const explicit = boolEnv(config.enabled);
|
|
24
|
+
if (explicit != null)
|
|
25
|
+
return explicit;
|
|
26
|
+
const legacy = boolEnv(config.legacyEnabled);
|
|
27
|
+
if (legacy != null)
|
|
28
|
+
return legacy;
|
|
29
|
+
if (process.env.EMAIL_CENTER_ENABLED === "true")
|
|
30
|
+
return true;
|
|
31
|
+
return config.defaultEnabled === true;
|
|
58
32
|
}
|
|
59
33
|
function customerEmailLocale(input) {
|
|
60
34
|
const metadata = input?.metadata ?? {};
|
|
61
|
-
const raw = stringValue(input?.locale) ||
|
|
62
|
-
stringValue(input?.language) ||
|
|
63
|
-
stringValue(metadata.locale) ||
|
|
64
|
-
stringValue(metadata.language) ||
|
|
65
|
-
process.env.STORE_LOCALE?.trim() ||
|
|
66
|
-
"hu-HU";
|
|
35
|
+
const raw = stringValue(input?.locale) || stringValue(input?.language) || stringValue(metadata.locale) || stringValue(metadata.language) || process.env.STORE_LOCALE?.trim() || "hu-HU";
|
|
67
36
|
return raw.toLowerCase().startsWith("en") ? "en-US" : "hu-HU";
|
|
68
37
|
}
|
|
69
|
-
function stableEmailToken(value) {
|
|
70
|
-
return (0, node_crypto_1.createHash)("sha256").update(value).digest("hex").slice(0, 32);
|
|
71
|
-
}
|
|
38
|
+
function stableEmailToken(value) { return (0, node_crypto_1.createHash)("sha256").update(value).digest("hex").slice(0, 32); }
|
|
72
39
|
function storefrontUrl() {
|
|
73
40
|
const explicit = process.env.STOREFRONT_URL?.trim();
|
|
74
41
|
if (explicit)
|
|
75
42
|
return explicit.replace(/\/$/, "");
|
|
76
|
-
const
|
|
77
|
-
|
|
78
|
-
.map((value) => value.trim())
|
|
79
|
-
.find(Boolean);
|
|
80
|
-
return (firstStoreOrigin || "http://localhost:3000").replace(/\/$/, "");
|
|
43
|
+
const first = process.env.STORE_CORS?.split(",").map((value) => value.trim()).find(Boolean);
|
|
44
|
+
return (first || "http://localhost:3000").replace(/\/$/, "");
|
|
81
45
|
}
|
|
82
46
|
async function queueCustomerAccountEmail(input) {
|
|
83
47
|
const logger = input.container.resolve(utils_1.ContainerRegistrationKeys.LOGGER);
|
|
84
48
|
const email = input.to.trim().toLowerCase();
|
|
85
|
-
if (!email)
|
|
49
|
+
if (!email)
|
|
86
50
|
return { skipped: true, reason: "missing-email" };
|
|
87
|
-
|
|
88
|
-
if (!customerEmailEnabled(input.kind)) {
|
|
51
|
+
if (!customerEmailEnabled(input.kind))
|
|
89
52
|
return { skipped: true, reason: "disabled" };
|
|
53
|
+
const locale = customerEmailLocale({ locale: input.locale });
|
|
54
|
+
const data = {
|
|
55
|
+
event: input.kind, locale, language: locale.startsWith("en") ? "en" : "hu",
|
|
56
|
+
store_name: process.env.STORE_NAME || "Webshop", storefront_url: storefrontUrl(), support_email: process.env.SUPPORT_EMAIL || null,
|
|
57
|
+
order_email: process.env.ORDER_EMAIL || null, billing_email: process.env.BILLING_EMAIL || null, email, sent_at: new Date().toISOString(), ...(input.data ?? {}),
|
|
58
|
+
};
|
|
59
|
+
if (emailCenterAvailable(input.container)) {
|
|
60
|
+
const result = await (0, email_center_1.sendManagedEmail)({
|
|
61
|
+
container: input.container, to: email, key: CUSTOMER_EMAIL_CONFIG[input.kind].coreKey, locale, data,
|
|
62
|
+
idempotencyKey: input.idempotencyKey, resourceId: input.resourceId, resourceType: input.resourceId ? "customer" : undefined, track: true,
|
|
63
|
+
});
|
|
64
|
+
logger.info(`Customer email ${input.kind} queued for ${email} (${locale}) via Email Center.`);
|
|
65
|
+
return { skipped: result.skipped, locale, template: CUSTOMER_EMAIL_CONFIG[input.kind].coreKey };
|
|
90
66
|
}
|
|
91
67
|
if (isProductionRuntime() && process.env.SENDGRID_ENABLED !== "true") {
|
|
92
|
-
logger.warn(`Customer email ${input.kind} skipped:
|
|
68
|
+
logger.warn(`Customer email ${input.kind} skipped: legacy SendGrid fallback is disabled in production.`);
|
|
93
69
|
return { skipped: true, reason: "provider-disabled" };
|
|
94
70
|
}
|
|
95
|
-
const locale = customerEmailLocale({ locale: input.locale });
|
|
96
71
|
const template = resolveCustomerEmailTemplate(input.kind, locale);
|
|
97
|
-
if (!template)
|
|
98
|
-
logger.warn(`Customer email ${input.kind} skipped for ${email}: no HU/EN template is configured.`);
|
|
72
|
+
if (!template)
|
|
99
73
|
return { skipped: true, reason: "missing-template" };
|
|
100
|
-
}
|
|
101
74
|
const notificationService = input.container.resolve(utils_1.Modules.NOTIFICATION);
|
|
102
|
-
await notificationService.createNotifications({
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
template,
|
|
106
|
-
data: {
|
|
107
|
-
event: input.kind,
|
|
108
|
-
locale,
|
|
109
|
-
language: locale.toLowerCase().startsWith("en") ? "en" : "hu",
|
|
110
|
-
store_name: process.env.STORE_NAME || "Webshop",
|
|
111
|
-
storefront_url: storefrontUrl(),
|
|
112
|
-
support_email: process.env.SUPPORT_EMAIL || null,
|
|
113
|
-
order_email: process.env.ORDER_EMAIL || null,
|
|
114
|
-
billing_email: process.env.BILLING_EMAIL || null,
|
|
115
|
-
email,
|
|
116
|
-
sent_at: new Date().toISOString(),
|
|
117
|
-
...(input.data ?? {}),
|
|
118
|
-
},
|
|
119
|
-
trigger_type: `core.customer-email.${input.kind}`,
|
|
120
|
-
resource_id: input.resourceId,
|
|
121
|
-
resource_type: input.resourceId ? "customer" : undefined,
|
|
122
|
-
idempotency_key: input.idempotencyKey,
|
|
123
|
-
});
|
|
124
|
-
logger.info(`Customer email ${input.kind} queued for ${email} (${locale}).`);
|
|
125
|
-
return {
|
|
126
|
-
skipped: false,
|
|
127
|
-
locale,
|
|
128
|
-
template,
|
|
129
|
-
};
|
|
75
|
+
await notificationService.createNotifications({ to: email, channel: "email", template, data, trigger_type: `core.customer-email.${input.kind}`, resource_id: input.resourceId, resource_type: input.resourceId ? "customer" : undefined, idempotency_key: input.idempotencyKey });
|
|
76
|
+
logger.info(`Customer email ${input.kind} queued for ${email} (${locale}) via legacy template fallback.`);
|
|
77
|
+
return { skipped: false, locale, template };
|
|
130
78
|
}
|
|
131
79
|
function resolveCustomerEmailTemplate(kind, locale) {
|
|
132
80
|
const config = CUSTOMER_EMAIL_CONFIG[kind];
|
|
133
81
|
const hu = process.env[`${config.templatePrefix}_HU`]?.trim();
|
|
134
82
|
const en = process.env[`${config.templatePrefix}_EN`]?.trim();
|
|
135
|
-
const legacy = config.legacyTemplateEnv
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
const localFallback = !isProductionRuntime() && process.env.SENDGRID_ENABLED !== "true"
|
|
139
|
-
? config.localTemplate
|
|
140
|
-
: undefined;
|
|
141
|
-
return locale.toLowerCase().startsWith("en")
|
|
142
|
-
? en || hu || legacy || localFallback || null
|
|
143
|
-
: hu || en || legacy || localFallback || null;
|
|
144
|
-
}
|
|
145
|
-
function isProductionRuntime() {
|
|
146
|
-
return (process.env.APP_ENV === "production" ||
|
|
147
|
-
process.env.NODE_ENV === "production");
|
|
83
|
+
const legacy = config.legacyTemplateEnv ? process.env[config.legacyTemplateEnv]?.trim() : undefined;
|
|
84
|
+
const localFallback = !isProductionRuntime() && process.env.SENDGRID_ENABLED !== "true" ? config.localTemplate : undefined;
|
|
85
|
+
return locale.toLowerCase().startsWith("en") ? en || hu || legacy || localFallback || null : hu || en || legacy || localFallback || null;
|
|
148
86
|
}
|
|
149
|
-
function
|
|
150
|
-
return
|
|
87
|
+
function emailCenterAvailable(container) { if (process.env.EMAIL_CENTER_ENABLED === "false")
|
|
88
|
+
return false; try {
|
|
89
|
+
return Boolean(container.resolve(email_center_1.EMAIL_CENTER_MODULE));
|
|
151
90
|
}
|
|
152
|
-
|
|
91
|
+
catch {
|
|
92
|
+
return false;
|
|
93
|
+
} }
|
|
94
|
+
function isProductionRuntime() { return process.env.APP_ENV === "production" || process.env.NODE_ENV === "production"; }
|
|
95
|
+
function stringValue(value) { return typeof value === "string" && value.trim() ? value.trim() : undefined; }
|
|
96
|
+
function boolEnv(key) { const raw = process.env[key]?.trim(); if (!raw)
|
|
97
|
+
return null; return raw === "true"; }
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tZXItZW1haWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvY29yZS9jdXN0b21lci1lbWFpbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFDQSxvREFRQztBQUVELGtEQUlDO0FBRUQsNENBQXdIO0FBQ3hILHNDQUtDO0FBRUQsOERBK0JDO0FBRUQsb0VBT0M7QUFyR0QsNkNBQXdDO0FBQ3hDLHFEQUE4RTtBQUM5RSwwREFBK0U7QUF5Qi9FLE1BQU0scUJBQXFCLEdBQW1EO0lBQzVFLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxhQUFhLEVBQUUsbUNBQW1DLEVBQUUsY0FBYyxFQUFFLHVDQUF1QyxFQUFFLGFBQWEsRUFBRSxrQkFBa0IsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUU7SUFDdE8seUJBQXlCLEVBQUUsRUFBRSxPQUFPLEVBQUUseUNBQXlDLEVBQUUsYUFBYSxFQUFFLDRDQUE0QyxFQUFFLGNBQWMsRUFBRSxnREFBZ0QsRUFBRSxhQUFhLEVBQUUsb0NBQW9DLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFO0lBQzdTLGNBQWMsRUFBRSxFQUFFLE9BQU8sRUFBRSw4QkFBOEIsRUFBRSxhQUFhLEVBQUUsaUNBQWlDLEVBQUUsY0FBYyxFQUFFLHFDQUFxQyxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUscUNBQXFDLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE9BQU8sRUFBRSx5QkFBeUIsRUFBRTtJQUN6VCx5QkFBeUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxtQ0FBbUMsRUFBRSxhQUFhLEVBQUUsNENBQTRDLEVBQUUsY0FBYyxFQUFFLGdEQUFnRCxFQUFFLGNBQWMsRUFBRSxJQUFJLEVBQUUsaUJBQWlCLEVBQUUseUNBQXlDLEVBQUUsYUFBYSxFQUFFLG9CQUFvQixFQUFFLE9BQU8sRUFBRSw2QkFBNkIsRUFBRTtJQUMzVyxnQkFBZ0IsRUFB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
|
|
@@ -2,6 +2,7 @@ type ResolveContainer = {
|
|
|
2
2
|
resolve: (key: string) => unknown;
|
|
3
3
|
};
|
|
4
4
|
export type TransactionalEmailKind = "order_placed" | "payment_captured" | "fulfillment_created" | "shipment_created" | "order_canceled" | "payment_refunded";
|
|
5
|
+
export declare function transactionalEmailEnabled(kind: TransactionalEmailKind): boolean;
|
|
5
6
|
export declare function queueOrderLifecycleEmail(input: {
|
|
6
7
|
container: ResolveContainer;
|
|
7
8
|
kind: TransactionalEmailKind;
|
|
@@ -16,13 +17,19 @@ export declare function queueOrderLifecycleEmail(input: {
|
|
|
16
17
|
template?: undefined;
|
|
17
18
|
} | {
|
|
18
19
|
skipped: boolean;
|
|
19
|
-
reason: "
|
|
20
|
+
reason: "missing-email";
|
|
20
21
|
orderId?: undefined;
|
|
21
22
|
locale?: undefined;
|
|
22
23
|
template?: undefined;
|
|
23
24
|
} | {
|
|
24
25
|
skipped: boolean;
|
|
25
|
-
|
|
26
|
+
orderId: string;
|
|
27
|
+
locale: string;
|
|
28
|
+
template: string;
|
|
29
|
+
reason?: undefined;
|
|
30
|
+
} | {
|
|
31
|
+
skipped: boolean;
|
|
32
|
+
reason: "provider-disabled";
|
|
26
33
|
orderId?: undefined;
|
|
27
34
|
locale?: undefined;
|
|
28
35
|
template?: undefined;
|
|
@@ -32,12 +39,6 @@ export declare function queueOrderLifecycleEmail(input: {
|
|
|
32
39
|
orderId?: undefined;
|
|
33
40
|
locale?: undefined;
|
|
34
41
|
template?: undefined;
|
|
35
|
-
} | {
|
|
36
|
-
skipped: boolean;
|
|
37
|
-
orderId: string;
|
|
38
|
-
locale: string;
|
|
39
|
-
template: string;
|
|
40
|
-
reason?: undefined;
|
|
41
42
|
}>;
|
|
42
43
|
export declare function resolveOrderIdForPayment(container: ResolveContainer, paymentId: string): Promise<string | null>;
|
|
43
44
|
export declare function resolveRefundEmailContexts(container: ResolveContainer, paymentId: string): Promise<{
|