@vendure/email-plugin 3.0.0 → 3.1.0-next.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/LICENSE.md +4 -3
- package/lib/src/email-processor.js +2 -2
- package/lib/src/email-processor.js.map +1 -1
- package/lib/src/email-send-event.d.ts +3 -2
- package/lib/src/email-send-event.js +2 -1
- package/lib/src/email-send-event.js.map +1 -1
- package/lib/src/handler/event-handler.d.ts +29 -2
- package/lib/src/handler/event-handler.js +34 -2
- package/lib/src/handler/event-handler.js.map +1 -1
- package/lib/src/plugin.d.ts +5 -5
- package/lib/src/plugin.js +5 -5
- package/lib/src/types.d.ts +34 -1
- package/package.json +4 -4
package/LICENSE.md
CHANGED
|
@@ -31,6 +31,7 @@ Commercial Distributions - must be used in accordance with the terms and conditi
|
|
|
31
31
|
contained in a separate written agreement between you and Vendure GmbH.
|
|
32
32
|
For more information about the Vendure Commercial License (VCL) please contact contact@vendure.io.
|
|
33
33
|
|
|
34
|
-
Please see also
|
|
35
|
-
|
|
36
|
-
[
|
|
34
|
+
Please see also:
|
|
35
|
+
|
|
36
|
+
- [Licensing FAQ - license-faq.md](license/license-faq.md)
|
|
37
|
+
- [GNU GENERAL PUBLIC LICENSE Version 3, 29 June 2007 - gpl-3.0.txt](license/gpl-3.0.txt)
|
|
@@ -66,7 +66,7 @@ let EmailProcessor = class EmailProcessor {
|
|
|
66
66
|
emailDetails = Object.assign(Object.assign({}, generated), { recipient: data.recipient, attachments: (0, attachment_utils_1.deserializeAttachments)(data.attachments), cc: data.cc, bcc: data.bcc, replyTo: data.replyTo });
|
|
67
67
|
const transportSettings = await this.getTransportSettings(ctx);
|
|
68
68
|
await this.emailSender.send(emailDetails, transportSettings);
|
|
69
|
-
await this.eventBus.publish(new email_send_event_1.EmailSendEvent(ctx, emailDetails, true));
|
|
69
|
+
await this.eventBus.publish(new email_send_event_1.EmailSendEvent(ctx, emailDetails, true, undefined, data.metadata));
|
|
70
70
|
return true;
|
|
71
71
|
}
|
|
72
72
|
catch (err) {
|
|
@@ -76,7 +76,7 @@ let EmailProcessor = class EmailProcessor {
|
|
|
76
76
|
else {
|
|
77
77
|
core_2.Logger.error(String(err), constants_1.loggerCtx);
|
|
78
78
|
}
|
|
79
|
-
await this.eventBus.publish(new email_send_event_1.EmailSendEvent(ctx, emailDetails, false, err));
|
|
79
|
+
await this.eventBus.publish(new email_send_event_1.EmailSendEvent(ctx, emailDetails, false, err, data.metadata));
|
|
80
80
|
throw err;
|
|
81
81
|
}
|
|
82
82
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-processor.js","sourceRoot":"","sources":["../../src/email-processor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,uCAAyC;AACzC,wCAA2E;AAC3E,wDAA0B;AAE1B,yDAA4D;AAC5D,qCAAsE;AACtE,2CAA8D;AAC9D,yDAAoD;AAEpD,qFAAgF;AAEhF,8EAAyE;AAQzE;;;;GAIG;AAEI,IAAM,cAAc,GAApB,MAAM,cAAc;IAIvB,YAC4C,OAAsC,EACtE,SAAoB,EACpB,QAAkB;QAFc,YAAO,GAAP,OAAO,CAA+B;QACtE,cAAS,GAAT,SAAS,CAAW;QACpB,aAAQ,GAAR,QAAQ,CAAU;IAC3B,CAAC;IAEJ,KAAK,CAAC,IAAI;QACN,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,+CAAqB,EAAE,CAAC;QACrG,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc;YACxC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc;YAC7B,CAAC,CAAC,IAAI,mDAAuB,EAAE,CAAC;QACpC,IAAI,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;QACnE,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QACpD,IAAI,SAAS,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;YAC5B,gDAAgD;YAChD,kCAAkC;YAClC,MAAM,SAAS,GAAG,SAAS,CAAC,UAAU,CAAC;YACvC,MAAM,kBAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;IACL,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,IAA8B;QACxC,MAAM,GAAG,GAAG,qBAAc,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACjD,IAAI,YAAY,GAAiB,EAAS,CAAC;QAC3C,IAAI,CAAC;YACD,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,YAAY,CAC7D,IAAI,eAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,EAC5B,GAAG,EACH;gBACI,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,IAAI,EAAE,IAAI,CAAC,IAAI;gBACf,YAAY,EAAE,IAAI,CAAC,YAAY;aAClC,CACJ,CAAC;YACF,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,EAAE,UAAU,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;YAClG,YAAY,mCACL,SAAS,KACZ,SAAS,EAAE,IAAI,CAAC,SAAS,EACzB,WAAW,EAAE,IAAA,yCAAsB,EAAC,IAAI,CAAC,WAAW,CAAC,EACrD,EAAE,EAAE,IAAI,CAAC,EAAE,EACX,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,OAAO,EAAE,IAAI,CAAC,OAAO,GACxB,CAAC;YACF,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC;YAC/D,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;YAC7D,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"email-processor.js","sourceRoot":"","sources":["../../src/email-processor.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { RequestContext, VendureEvent } from '@vendure/core';
|
|
2
|
-
import { EmailDetails } from './types';
|
|
2
|
+
import { EmailDetails, EmailMetadata } from './types';
|
|
3
3
|
/**
|
|
4
4
|
* @description
|
|
5
5
|
* This event is fired when an email sending attempt has been made. If the sending was successful,
|
|
@@ -14,5 +14,6 @@ export declare class EmailSendEvent extends VendureEvent {
|
|
|
14
14
|
readonly details: EmailDetails;
|
|
15
15
|
readonly success: boolean;
|
|
16
16
|
readonly error?: Error | undefined;
|
|
17
|
-
|
|
17
|
+
readonly metadata?: EmailMetadata | undefined;
|
|
18
|
+
constructor(ctx: RequestContext, details: EmailDetails, success: boolean, error?: Error | undefined, metadata?: EmailMetadata | undefined);
|
|
18
19
|
}
|
|
@@ -12,12 +12,13 @@ const core_1 = require("@vendure/core");
|
|
|
12
12
|
* @since 2.2.0
|
|
13
13
|
*/
|
|
14
14
|
class EmailSendEvent extends core_1.VendureEvent {
|
|
15
|
-
constructor(ctx, details, success, error) {
|
|
15
|
+
constructor(ctx, details, success, error, metadata) {
|
|
16
16
|
super();
|
|
17
17
|
this.ctx = ctx;
|
|
18
18
|
this.details = details;
|
|
19
19
|
this.success = success;
|
|
20
20
|
this.error = error;
|
|
21
|
+
this.metadata = metadata;
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
24
|
exports.EmailSendEvent = EmailSendEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email-send-event.js","sourceRoot":"","sources":["../../src/email-send-event.ts"],"names":[],"mappings":";;;AAAA,wCAA6D;AAI7D;;;;;;;;GAQG;AACH,MAAa,cAAe,SAAQ,mBAAY;IAC5C,YACoB,GAAmB,EACnB,OAAqB,EACrB,OAAgB,EAChB,KAAa;
|
|
1
|
+
{"version":3,"file":"email-send-event.js","sourceRoot":"","sources":["../../src/email-send-event.ts"],"names":[],"mappings":";;;AAAA,wCAA6D;AAI7D;;;;;;;;GAQG;AACH,MAAa,cAAe,SAAQ,mBAAY;IAC5C,YACoB,GAAmB,EACnB,OAAqB,EACrB,OAAgB,EAChB,KAAa,EACb,QAAwB;QAExC,KAAK,EAAE,CAAC;QANQ,QAAG,GAAH,GAAG,CAAgB;QACnB,YAAO,GAAP,OAAO,CAAc;QACrB,YAAO,GAAP,OAAO,CAAS;QAChB,UAAK,GAAL,KAAK,CAAQ;QACb,aAAQ,GAAR,QAAQ,CAAgB;IAG5C,CAAC;CACJ;AAVD,wCAUC"}
|
|
@@ -2,7 +2,7 @@ import { LanguageCode } from '@vendure/common/lib/generated-types';
|
|
|
2
2
|
import { Type } from '@vendure/common/lib/shared-types';
|
|
3
3
|
import { Injector } from '@vendure/core';
|
|
4
4
|
import { EmailEventListener } from '../event-listener';
|
|
5
|
-
import { EmailTemplateConfig, EventWithAsyncData, EventWithContext, IntermediateEmailDetails, LoadDataFn, SetAttachmentsFn, SetOptionalAddressFieldsFn, SetSubjectFn, SetTemplateVarsFn } from '../types';
|
|
5
|
+
import { EmailTemplateConfig, EventWithAsyncData, EventWithContext, IntermediateEmailDetails, LoadDataFn, SetAttachmentsFn, SetMetadataFn, SetOptionalAddressFieldsFn, SetSubjectFn, SetTemplateVarsFn } from '../types';
|
|
6
6
|
/**
|
|
7
7
|
* @description
|
|
8
8
|
* The EmailEventHandler defines how the EmailPlugin will respond to a given event.
|
|
@@ -109,7 +109,6 @@ import { EmailTemplateConfig, EventWithAsyncData, EventWithContext, Intermediate
|
|
|
109
109
|
* plugins: [
|
|
110
110
|
* EmailPlugin.init({
|
|
111
111
|
* handler: [...defaultEmailHandlers, quoteRequestedHandler],
|
|
112
|
-
* templatePath: path.join(__dirname, 'vendure/email/templates'),
|
|
113
112
|
* // ... etc
|
|
114
113
|
* }),
|
|
115
114
|
* ],
|
|
@@ -127,6 +126,7 @@ export declare class EmailEventHandler<T extends string = string, Event extends
|
|
|
127
126
|
private setTemplateVarsFn;
|
|
128
127
|
private setAttachmentsFn?;
|
|
129
128
|
private setOptionalAddressFieldsFn?;
|
|
129
|
+
private setMetadataFn?;
|
|
130
130
|
private filterFns;
|
|
131
131
|
private configurations;
|
|
132
132
|
private defaultSubject;
|
|
@@ -185,6 +185,33 @@ export declare class EmailEventHandler<T extends string = string, Event extends
|
|
|
185
185
|
* @since 1.1.0
|
|
186
186
|
*/
|
|
187
187
|
setOptionalAddressFields(optionalAddressFieldsFn: SetOptionalAddressFieldsFn<Event>): this;
|
|
188
|
+
/**
|
|
189
|
+
* @description
|
|
190
|
+
* A function which allows {@link EmailMetadata} to be specified for the email. This can be used
|
|
191
|
+
* to store arbitrary data about the email which can be used for tracking or other purposes.
|
|
192
|
+
*
|
|
193
|
+
* It will be exposed in the {@link EmailSendEvent} as `event.metadata`. Here's an example of usage:
|
|
194
|
+
*
|
|
195
|
+
* - An {@link OrderStateTransitionEvent} occurs, and the EmailEventListener starts processing it.
|
|
196
|
+
* - The EmailEventHandler attaches metadata to the email:
|
|
197
|
+
* ```ts
|
|
198
|
+
* new EmailEventListener(EventType.ORDER_CONFIRMATION)
|
|
199
|
+
* .on(OrderStateTransitionEvent)
|
|
200
|
+
* .setMetadata(event => ({
|
|
201
|
+
* type: EventType.ORDER_CONFIRMATION,
|
|
202
|
+
* orderId: event.order.id,
|
|
203
|
+
* }));
|
|
204
|
+
* ```
|
|
205
|
+
* - Then, the EmailPlugin tries to send the email and publishes {@link EmailSendEvent},
|
|
206
|
+
* passing ctx, emailDetails, error or success, and this metadata.
|
|
207
|
+
* - In another part of the server, we have an eventBus that subscribes to EmailSendEvent. We can use
|
|
208
|
+
* `metadata.type` and `metadata.orderId` to identify the related order. For example, we can indicate on the
|
|
209
|
+
* order that the email was successfully sent, or in case of an error, send a notification confirming
|
|
210
|
+
* the order in another available way.
|
|
211
|
+
*
|
|
212
|
+
* @since 3.1.0
|
|
213
|
+
*/
|
|
214
|
+
setMetadata(optionalSetMetadataFn: SetMetadataFn<Event>): this;
|
|
188
215
|
/**
|
|
189
216
|
* @description
|
|
190
217
|
* Defines one or more files to be attached to the email. An attachment can be specified
|
|
@@ -110,7 +110,6 @@ const constants_1 = require("../constants");
|
|
|
110
110
|
* plugins: [
|
|
111
111
|
* EmailPlugin.init({
|
|
112
112
|
* handler: [...defaultEmailHandlers, quoteRequestedHandler],
|
|
113
|
-
* templatePath: path.join(__dirname, 'vendure/email/templates'),
|
|
114
113
|
* // ... etc
|
|
115
114
|
* }),
|
|
116
115
|
* ],
|
|
@@ -207,6 +206,36 @@ class EmailEventHandler {
|
|
|
207
206
|
this.setOptionalAddressFieldsFn = optionalAddressFieldsFn;
|
|
208
207
|
return this;
|
|
209
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* @description
|
|
211
|
+
* A function which allows {@link EmailMetadata} to be specified for the email. This can be used
|
|
212
|
+
* to store arbitrary data about the email which can be used for tracking or other purposes.
|
|
213
|
+
*
|
|
214
|
+
* It will be exposed in the {@link EmailSendEvent} as `event.metadata`. Here's an example of usage:
|
|
215
|
+
*
|
|
216
|
+
* - An {@link OrderStateTransitionEvent} occurs, and the EmailEventListener starts processing it.
|
|
217
|
+
* - The EmailEventHandler attaches metadata to the email:
|
|
218
|
+
* ```ts
|
|
219
|
+
* new EmailEventListener(EventType.ORDER_CONFIRMATION)
|
|
220
|
+
* .on(OrderStateTransitionEvent)
|
|
221
|
+
* .setMetadata(event => ({
|
|
222
|
+
* type: EventType.ORDER_CONFIRMATION,
|
|
223
|
+
* orderId: event.order.id,
|
|
224
|
+
* }));
|
|
225
|
+
* ```
|
|
226
|
+
* - Then, the EmailPlugin tries to send the email and publishes {@link EmailSendEvent},
|
|
227
|
+
* passing ctx, emailDetails, error or success, and this metadata.
|
|
228
|
+
* - In another part of the server, we have an eventBus that subscribes to EmailSendEvent. We can use
|
|
229
|
+
* `metadata.type` and `metadata.orderId` to identify the related order. For example, we can indicate on the
|
|
230
|
+
* order that the email was successfully sent, or in case of an error, send a notification confirming
|
|
231
|
+
* the order in another available way.
|
|
232
|
+
*
|
|
233
|
+
* @since 3.1.0
|
|
234
|
+
*/
|
|
235
|
+
setMetadata(optionalSetMetadataFn) {
|
|
236
|
+
this.setMetadataFn = optionalSetMetadataFn;
|
|
237
|
+
return this;
|
|
238
|
+
}
|
|
210
239
|
/**
|
|
211
240
|
* @description
|
|
212
241
|
* Defines one or more files to be attached to the email. An attachment can be specified
|
|
@@ -279,6 +308,7 @@ class EmailEventHandler {
|
|
|
279
308
|
asyncHandler.setTemplateVarsFn = this.setTemplateVarsFn;
|
|
280
309
|
asyncHandler.setAttachmentsFn = this.setAttachmentsFn;
|
|
281
310
|
asyncHandler.setOptionalAddressFieldsFn = this.setOptionalAddressFieldsFn;
|
|
311
|
+
asyncHandler.setMetadataFn = this.setMetadataFn;
|
|
282
312
|
asyncHandler.filterFns = this.filterFns;
|
|
283
313
|
asyncHandler.configurations = this.configurations;
|
|
284
314
|
asyncHandler.defaultSubject = this.defaultSubject;
|
|
@@ -347,7 +377,9 @@ class EmailEventHandler {
|
|
|
347
377
|
}
|
|
348
378
|
const attachments = await (0, attachment_utils_1.serializeAttachments)(attachmentsArray);
|
|
349
379
|
const optionalAddressFields = (_e = (await ((_d = this.setOptionalAddressFieldsFn) === null || _d === void 0 ? void 0 : _d.call(this, event)))) !== null && _e !== void 0 ? _e : {};
|
|
350
|
-
|
|
380
|
+
const metadata = this.setMetadataFn ? await this.setMetadataFn(event) : {};
|
|
381
|
+
return Object.assign({ ctx: event.ctx.serialize(), type: this.type, recipient, from: this.from, templateVars: Object.assign(Object.assign({}, globals), templateVars), subject, templateFile: configuration ? configuration.templateFile : 'body.hbs', attachments,
|
|
382
|
+
metadata }, optionalAddressFields);
|
|
351
383
|
}
|
|
352
384
|
/**
|
|
353
385
|
* @description
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"event-handler.js","sourceRoot":"","sources":["../../../src/handler/event-handler.ts"],"names":[],"mappings":";;;AAEA,wCAAiD;AAEjD,0DAA2D;AAC3D,4CAAyC;
|
|
1
|
+
{"version":3,"file":"event-handler.js","sourceRoot":"","sources":["../../../src/handler/event-handler.ts"],"names":[],"mappings":"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"}
|
package/lib/src/plugin.d.ts
CHANGED
|
@@ -30,14 +30,14 @@ import { EmailPluginDevModeOptions, EmailPluginOptions, InitializedEmailPluginOp
|
|
|
30
30
|
*
|
|
31
31
|
* @example
|
|
32
32
|
* ```ts
|
|
33
|
-
* import { defaultEmailHandlers, EmailPlugin } from '\@vendure/email-plugin';
|
|
33
|
+
* import { defaultEmailHandlers, EmailPlugin, FileBasedTemplateLoader } from '\@vendure/email-plugin';
|
|
34
34
|
*
|
|
35
35
|
* const config: VendureConfig = {
|
|
36
36
|
* // Add an instance of the plugin to the plugins array
|
|
37
37
|
* plugins: [
|
|
38
38
|
* EmailPlugin.init({
|
|
39
39
|
* handler: defaultEmailHandlers,
|
|
40
|
-
*
|
|
40
|
+
* templateLoader: new FileBasedTemplateLoader(path.join(__dirname, '../static/email/templates')),
|
|
41
41
|
* transport: {
|
|
42
42
|
* type: 'smtp',
|
|
43
43
|
* host: 'smtp.example.com',
|
|
@@ -196,13 +196,13 @@ import { EmailPluginDevModeOptions, EmailPluginOptions, InitializedEmailPluginOp
|
|
|
196
196
|
*
|
|
197
197
|
* @example
|
|
198
198
|
* ```ts
|
|
199
|
-
* import { defaultEmailHandlers, EmailPlugin } from '\@vendure/email-plugin';
|
|
199
|
+
* import { defaultEmailHandlers, EmailPlugin, FileBasedTemplateLoader } from '\@vendure/email-plugin';
|
|
200
200
|
* import { MyTransportService } from './transport.services.ts';
|
|
201
201
|
* const config: VendureConfig = {
|
|
202
202
|
* plugins: [
|
|
203
203
|
* EmailPlugin.init({
|
|
204
204
|
* handler: defaultEmailHandlers,
|
|
205
|
-
*
|
|
205
|
+
* templateLoader: new FileBasedTemplateLoader(path.join(__dirname, '../static/email/templates')),
|
|
206
206
|
* transport: (injector, ctx) => {
|
|
207
207
|
* if (ctx) {
|
|
208
208
|
* return injector.get(MyTransportService).getSettings(ctx);
|
|
@@ -230,7 +230,7 @@ import { EmailPluginDevModeOptions, EmailPluginOptions, InitializedEmailPluginOp
|
|
|
230
230
|
* devMode: true,
|
|
231
231
|
* route: 'mailbox',
|
|
232
232
|
* handler: defaultEmailHandlers,
|
|
233
|
-
*
|
|
233
|
+
* templateLoader: new FileBasedTemplateLoader(path.join(__dirname, '../static/email/templates')),
|
|
234
234
|
* outputPath: path.join(__dirname, 'test-emails'),
|
|
235
235
|
* })
|
|
236
236
|
* ```
|
package/lib/src/plugin.js
CHANGED
|
@@ -49,14 +49,14 @@ const file_based_template_loader_1 = require("./template-loader/file-based-templ
|
|
|
49
49
|
*
|
|
50
50
|
* @example
|
|
51
51
|
* ```ts
|
|
52
|
-
* import { defaultEmailHandlers, EmailPlugin } from '\@vendure/email-plugin';
|
|
52
|
+
* import { defaultEmailHandlers, EmailPlugin, FileBasedTemplateLoader } from '\@vendure/email-plugin';
|
|
53
53
|
*
|
|
54
54
|
* const config: VendureConfig = {
|
|
55
55
|
* // Add an instance of the plugin to the plugins array
|
|
56
56
|
* plugins: [
|
|
57
57
|
* EmailPlugin.init({
|
|
58
58
|
* handler: defaultEmailHandlers,
|
|
59
|
-
*
|
|
59
|
+
* templateLoader: new FileBasedTemplateLoader(path.join(__dirname, '../static/email/templates')),
|
|
60
60
|
* transport: {
|
|
61
61
|
* type: 'smtp',
|
|
62
62
|
* host: 'smtp.example.com',
|
|
@@ -215,13 +215,13 @@ const file_based_template_loader_1 = require("./template-loader/file-based-templ
|
|
|
215
215
|
*
|
|
216
216
|
* @example
|
|
217
217
|
* ```ts
|
|
218
|
-
* import { defaultEmailHandlers, EmailPlugin } from '\@vendure/email-plugin';
|
|
218
|
+
* import { defaultEmailHandlers, EmailPlugin, FileBasedTemplateLoader } from '\@vendure/email-plugin';
|
|
219
219
|
* import { MyTransportService } from './transport.services.ts';
|
|
220
220
|
* const config: VendureConfig = {
|
|
221
221
|
* plugins: [
|
|
222
222
|
* EmailPlugin.init({
|
|
223
223
|
* handler: defaultEmailHandlers,
|
|
224
|
-
*
|
|
224
|
+
* templateLoader: new FileBasedTemplateLoader(path.join(__dirname, '../static/email/templates')),
|
|
225
225
|
* transport: (injector, ctx) => {
|
|
226
226
|
* if (ctx) {
|
|
227
227
|
* return injector.get(MyTransportService).getSettings(ctx);
|
|
@@ -249,7 +249,7 @@ const file_based_template_loader_1 = require("./template-loader/file-based-templ
|
|
|
249
249
|
* devMode: true,
|
|
250
250
|
* route: 'mailbox',
|
|
251
251
|
* handler: defaultEmailHandlers,
|
|
252
|
-
*
|
|
252
|
+
* templateLoader: new FileBasedTemplateLoader(path.join(__dirname, '../static/email/templates')),
|
|
253
253
|
* outputPath: path.join(__dirname, 'test-emails'),
|
|
254
254
|
* })
|
|
255
255
|
* ```
|
package/lib/src/types.d.ts
CHANGED
|
@@ -203,7 +203,7 @@ export interface SMTPTransportOptions extends SMTPTransport.Options {
|
|
|
203
203
|
* plugins: [
|
|
204
204
|
* EmailPlugin.init({
|
|
205
205
|
* handler: defaultEmailHandlers,
|
|
206
|
-
*
|
|
206
|
+
* templateLoader: new FileBasedTemplateLoader(path.join(__dirname, '../static/email/templates')),
|
|
207
207
|
* transport: {
|
|
208
208
|
* type: 'ses',
|
|
209
209
|
* SES: { ses, aws: { SendRawEmailCommand } },
|
|
@@ -332,6 +332,7 @@ export type IntermediateEmailDetails = {
|
|
|
332
332
|
cc?: string;
|
|
333
333
|
bcc?: string;
|
|
334
334
|
replyTo?: string;
|
|
335
|
+
metadata?: EmailMetadata;
|
|
335
336
|
};
|
|
336
337
|
/**
|
|
337
338
|
* @description
|
|
@@ -365,9 +366,30 @@ export interface EmailTemplateConfig {
|
|
|
365
366
|
*/
|
|
366
367
|
subject: string;
|
|
367
368
|
}
|
|
369
|
+
/**
|
|
370
|
+
* @description
|
|
371
|
+
* The object passed to the {@link TemplateLoader} `loadTemplate()` method.
|
|
372
|
+
*
|
|
373
|
+
* @docsCategory core plugins/EmailPlugin
|
|
374
|
+
* @docsPage Email Plugin Types
|
|
375
|
+
*/
|
|
368
376
|
export interface LoadTemplateInput {
|
|
377
|
+
/**
|
|
378
|
+
* @description
|
|
379
|
+
* The type corresponds to the string passed to the EmailEventListener constructor.
|
|
380
|
+
*/
|
|
369
381
|
type: string;
|
|
382
|
+
/**
|
|
383
|
+
* @description
|
|
384
|
+
* The template name is specified by the EmailEventHander's call to
|
|
385
|
+
* the `addTemplate()` method, and will default to `body.hbs`
|
|
386
|
+
*/
|
|
370
387
|
templateName: string;
|
|
388
|
+
/**
|
|
389
|
+
* @description
|
|
390
|
+
* The variables defined by the globalTemplateVars as well as any variables defined in the
|
|
391
|
+
* EmailEventHandler's `setTemplateVars()` method.
|
|
392
|
+
*/
|
|
371
393
|
templateVars: any;
|
|
372
394
|
}
|
|
373
395
|
export interface Partial {
|
|
@@ -438,3 +460,14 @@ export interface OptionalAddressFields {
|
|
|
438
460
|
* @docsPage Email Plugin Types
|
|
439
461
|
*/
|
|
440
462
|
export type SetOptionalAddressFieldsFn<Event> = (event: Event) => OptionalAddressFields | Promise<OptionalAddressFields>;
|
|
463
|
+
/**
|
|
464
|
+
* @description
|
|
465
|
+
* A function used to set the {@link EmailMetadata}.
|
|
466
|
+
*
|
|
467
|
+
* @since 3.1.0
|
|
468
|
+
* @docsCategory core plugins/EmailPlugin
|
|
469
|
+
* @docsPage Email Plugin Types
|
|
470
|
+
*
|
|
471
|
+
*/
|
|
472
|
+
export type SetMetadataFn<Event> = (event: Event) => EmailMetadata | Promise<EmailMetadata>;
|
|
473
|
+
export type EmailMetadata = Record<string, any>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vendure/email-plugin",
|
|
3
|
-
"version": "3.0.0",
|
|
3
|
+
"version": "3.1.0-next.0",
|
|
4
4
|
"license": "GPL-3.0-or-later",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -34,10 +34,10 @@
|
|
|
34
34
|
"@types/express": "^4.17.21",
|
|
35
35
|
"@types/fs-extra": "^11.0.4",
|
|
36
36
|
"@types/mjml": "^4.7.4",
|
|
37
|
-
"@vendure/common": "
|
|
38
|
-
"@vendure/core": "
|
|
37
|
+
"@vendure/common": "3.1.0-next.0",
|
|
38
|
+
"@vendure/core": "3.1.0-next.0",
|
|
39
39
|
"rimraf": "^5.0.5",
|
|
40
40
|
"typescript": "5.3.3"
|
|
41
41
|
},
|
|
42
|
-
"gitHead": "
|
|
42
|
+
"gitHead": "5fb37225c199c0110f12c260821c13bb34174894"
|
|
43
43
|
}
|