@vendure/email-plugin 2.0.0-next.8 → 2.0.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 (41) hide show
  1. package/lib/index.d.ts +2 -0
  2. package/lib/index.js +7 -1
  3. package/lib/index.js.map +1 -1
  4. package/lib/src/common.d.ts +3 -1
  5. package/lib/src/common.js +10 -1
  6. package/lib/src/common.js.map +1 -1
  7. package/lib/src/default-email-handlers.js +9 -9
  8. package/lib/src/default-email-handlers.js.map +1 -1
  9. package/lib/src/dev-mailbox.js +9 -6
  10. package/lib/src/dev-mailbox.js.map +1 -1
  11. package/lib/src/email-generator.d.ts +25 -0
  12. package/lib/src/email-generator.js +3 -0
  13. package/lib/src/email-generator.js.map +1 -0
  14. package/lib/src/email-processor.d.ts +10 -6
  15. package/lib/src/email-processor.js +31 -13
  16. package/lib/src/email-processor.js.map +1 -1
  17. package/lib/src/email-sender.d.ts +45 -0
  18. package/lib/src/email-sender.js +3 -0
  19. package/lib/src/email-sender.js.map +1 -0
  20. package/lib/src/event-handler.d.ts +14 -2
  21. package/lib/src/event-handler.js +21 -7
  22. package/lib/src/event-handler.js.map +1 -1
  23. package/lib/src/event-listener.d.ts +1 -1
  24. package/lib/src/event-listener.js +1 -1
  25. package/lib/src/handlebars-mjml-generator.d.ts +4 -4
  26. package/lib/src/handlebars-mjml-generator.js +6 -13
  27. package/lib/src/handlebars-mjml-generator.js.map +1 -1
  28. package/lib/src/mock-events.js +17 -26
  29. package/lib/src/mock-events.js.map +1 -1
  30. package/lib/src/nodemailer-email-sender.d.ts +6 -3
  31. package/lib/src/nodemailer-email-sender.js +10 -1
  32. package/lib/src/nodemailer-email-sender.js.map +1 -1
  33. package/lib/src/noop-email-generator.d.ts +1 -1
  34. package/lib/src/plugin.d.ts +99 -8
  35. package/lib/src/plugin.js +143 -14
  36. package/lib/src/plugin.js.map +1 -1
  37. package/lib/src/template-loader.d.ts +5 -2
  38. package/lib/src/template-loader.js +17 -9
  39. package/lib/src/template-loader.js.map +1 -1
  40. package/lib/src/types.d.ts +140 -173
  41. package/package.json +42 -42
@@ -6,7 +6,7 @@ import { EventWithContext } from './types';
6
6
  * An EmailEventListener is used to listen for events and set up a {@link EmailEventHandler} which
7
7
  * defines how an email will be generated from this event.
8
8
  *
9
- * @docsCategory EmailPlugin
9
+ * @docsCategory core plugins/EmailPlugin
10
10
  */
11
11
  export declare class EmailEventListener<T extends string> {
12
12
  type: T;
@@ -7,7 +7,7 @@ const event_handler_1 = require("./event-handler");
7
7
  * An EmailEventListener is used to listen for events and set up a {@link EmailEventHandler} which
8
8
  * defines how an email will be generated from this event.
9
9
  *
10
- * @docsCategory EmailPlugin
10
+ * @docsCategory core plugins/EmailPlugin
11
11
  */
12
12
  class EmailEventListener {
13
13
  constructor(type) {
@@ -1,19 +1,19 @@
1
- import { EmailGenerator, EmailPluginDevModeOptions, EmailPluginOptions } from './types';
1
+ import { EmailGenerator } from './email-generator';
2
+ import { InitializedEmailPluginOptions } from './types';
2
3
  /**
3
4
  * @description
4
5
  * Uses Handlebars (https://handlebarsjs.com/) to output MJML (https://mjml.io) which is then
5
6
  * compiled down to responsive email HTML.
6
7
  *
7
- * @docsCategory EmailPlugin
8
+ * @docsCategory core plugins/EmailPlugin
8
9
  * @docsPage EmailGenerator
9
10
  */
10
11
  export declare class HandlebarsMjmlGenerator implements EmailGenerator {
11
- onInit(options: EmailPluginOptions | EmailPluginDevModeOptions): void;
12
+ onInit(options: InitializedEmailPluginOptions): Promise<void>;
12
13
  generate(from: string, subject: string, template: string, templateVars: any): {
13
14
  from: string;
14
15
  subject: string;
15
16
  body: string;
16
17
  };
17
- private registerPartials;
18
18
  private registerHelpers;
19
19
  }
@@ -5,22 +5,22 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  exports.HandlebarsMjmlGenerator = void 0;
7
7
  const dateformat_1 = __importDefault(require("dateformat"));
8
- const fs_extra_1 = __importDefault(require("fs-extra"));
9
8
  const handlebars_1 = __importDefault(require("handlebars"));
10
9
  const mjml_1 = __importDefault(require("mjml"));
11
- const path_1 = __importDefault(require("path"));
12
10
  /**
13
11
  * @description
14
12
  * Uses Handlebars (https://handlebarsjs.com/) to output MJML (https://mjml.io) which is then
15
13
  * compiled down to responsive email HTML.
16
14
  *
17
- * @docsCategory EmailPlugin
15
+ * @docsCategory core plugins/EmailPlugin
18
16
  * @docsPage EmailGenerator
19
17
  */
20
18
  class HandlebarsMjmlGenerator {
21
- onInit(options) {
22
- const partialsPath = path_1.default.join(options.templatePath, 'partials');
23
- this.registerPartials(partialsPath);
19
+ async onInit(options) {
20
+ if (options.templateLoader.loadPartials) {
21
+ const partials = await options.templateLoader.loadPartials();
22
+ partials.forEach(({ name, content }) => handlebars_1.default.registerPartial(name, content));
23
+ }
24
24
  this.registerHelpers();
25
25
  }
26
26
  generate(from, subject, template, templateVars) {
@@ -38,13 +38,6 @@ class HandlebarsMjmlGenerator {
38
38
  const body = (0, mjml_1.default)(mjml).html;
39
39
  return { from: fromResult, subject: subjectResult, body };
40
40
  }
41
- registerPartials(partialsPath) {
42
- const partialsFiles = fs_extra_1.default.readdirSync(partialsPath);
43
- for (const partialFile of partialsFiles) {
44
- const partialContent = fs_extra_1.default.readFileSync(path_1.default.join(partialsPath, partialFile), 'utf-8');
45
- handlebars_1.default.registerPartial(path_1.default.basename(partialFile, '.hbs'), partialContent);
46
- }
47
- }
48
41
  registerHelpers() {
49
42
  handlebars_1.default.registerHelper('formatDate', (date, format) => {
50
43
  if (!date) {
@@ -1 +1 @@
1
- {"version":3,"file":"handlebars-mjml-generator.js","sourceRoot":"","sources":["../../src/handlebars-mjml-generator.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoC;AACpC,wDAA0B;AAC1B,4DAAoC;AACpC,gDAA6B;AAC7B,gDAAwB;AAIxB;;;;;;;GAOG;AACH,MAAa,uBAAuB;IAChC,MAAM,CAAC,OAAuD;QAC1D,MAAM,YAAY,GAAG,cAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QACjE,IAAI,CAAC,gBAAgB,CAAC,YAAY,CAAC,CAAC;QACpC,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,OAAe,EAAE,QAAgB,EAAE,YAAiB;QACvE,MAAM,YAAY,GAAG,oBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,eAAe,GAAG,oBAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,gBAAgB,GAAG,oBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,0EAA0E;QAC1E,kHAAkH;QAClH,yEAAyE;QACzE,kEAAkE;QAClE,MAAM,eAAe,GAAmB,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC;QAChF,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC,CAAC;QACvF,MAAM,aAAa,GAAG,eAAe,CAAC,YAAY,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,IAAA,cAAS,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAC9D,CAAC;IAEO,gBAAgB,CAAC,YAAoB;QACzC,MAAM,aAAa,GAAG,kBAAE,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;QACnD,KAAK,MAAM,WAAW,IAAI,aAAa,EAAE;YACrC,MAAM,cAAc,GAAG,kBAAE,CAAC,YAAY,CAAC,cAAI,CAAC,IAAI,CAAC,YAAY,EAAE,WAAW,CAAC,EAAE,OAAO,CAAC,CAAC;YACtF,oBAAU,CAAC,eAAe,CAAC,cAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,EAAE,cAAc,CAAC,CAAC;SAClF;IACL,CAAC;IAEO,eAAe;QACnB,oBAAU,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,IAAsB,EAAE,MAAuB,EAAE,EAAE;YACxF,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO,IAAI,CAAC;aACf;YACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBAC5B,MAAM,GAAG,SAAS,CAAC;aACtB;YACD,OAAO,IAAA,oBAAU,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,MAAe,EAAE,EAAE;YACzD,IAAI,MAAM,IAAI,IAAI,EAAE;gBAChB,OAAO,MAAM,CAAC;aACjB;YACD,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AAjDD,0DAiDC"}
1
+ {"version":3,"file":"handlebars-mjml-generator.js","sourceRoot":"","sources":["../../src/handlebars-mjml-generator.ts"],"names":[],"mappings":";;;;;;AAAA,4DAAoC;AAEpC,4DAAoC;AACpC,gDAA6B;AAW7B;;;;;;;GAOG;AACH,MAAa,uBAAuB;IAChC,KAAK,CAAC,MAAM,CAAC,OAAsC;QAC/C,IAAI,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE;YACrC,MAAM,QAAQ,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;YAC7D,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,CAAC,oBAAU,CAAC,eAAe,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;SACtF;QACD,IAAI,CAAC,eAAe,EAAE,CAAC;IAC3B,CAAC;IAED,QAAQ,CAAC,IAAY,EAAE,OAAe,EAAE,QAAgB,EAAE,YAAiB;QACvE,MAAM,YAAY,GAAG,oBAAU,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;QAClE,MAAM,eAAe,GAAG,oBAAU,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QACpD,MAAM,gBAAgB,GAAG,oBAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;QACtD,0EAA0E;QAC1E,kHAAkH;QAClH,yEAAyE;QACzE,kEAAkE;QAClE,MAAM,eAAe,GAAmB,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC;QAChF,MAAM,UAAU,GAAG,YAAY,CAAC,YAAY,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC,CAAC;QACvF,MAAM,aAAa,GAAG,eAAe,CAAC,YAAY,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC,CAAC;QAC7F,MAAM,IAAI,GAAG,gBAAgB,CAAC,YAAY,EAAE,EAAE,6BAA6B,EAAE,IAAI,EAAE,CAAC,CAAC;QACrF,MAAM,IAAI,GAAG,IAAA,cAAS,EAAC,IAAI,CAAC,CAAC,IAAI,CAAC;QAClC,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC;IAC9D,CAAC;IAEO,eAAe;QACnB,oBAAU,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC,IAAsB,EAAE,MAAuB,EAAE,EAAE;YACxF,IAAI,CAAC,IAAI,EAAE;gBACP,OAAO,IAAI,CAAC;aACf;YACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;gBAC5B,MAAM,GAAG,SAAS,CAAC;aACtB;YACD,OAAO,IAAA,oBAAU,EAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACpC,CAAC,CAAC,CAAC;QAEH,oBAAU,CAAC,cAAc,CAAC,aAAa,EAAE,CAAC,MAAe,EAAE,EAAE;YACzD,IAAI,MAAM,IAAI,IAAI,EAAE;gBAChB,OAAO,MAAM,CAAC;aACjB;YACD,OAAO,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACrC,CAAC,CAAC,CAAC;IACP,CAAC;CACJ;AA3CD,0DA2CC"}
@@ -3,7 +3,6 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.mockEmailAddressChangeEvent = exports.mockPasswordResetEvent = exports.mockAccountRegistrationEvent = exports.mockOrderStateTransitionEvent = void 0;
4
4
  const generated_shop_types_1 = require("@vendure/common/lib/generated-shop-types");
5
5
  const core_1 = require("@vendure/core");
6
- const shipping_line_entity_1 = require("@vendure/core/dist/entity/shipping-line/shipping-line.entity");
7
6
  exports.mockOrderStateTransitionEvent = new core_1.OrderStateTransitionEvent('ArrangingPayment', 'PaymentSettled', {}, new core_1.Order({
8
7
  id: '6',
9
8
  currencyCode: core_1.CurrencyCode.USD,
@@ -30,22 +29,18 @@ exports.mockOrderStateTransitionEvent = new core_1.OrderStateTransitionEvent('Ar
30
29
  name: 'Curvy Monitor 24 inch',
31
30
  sku: 'C24F390',
32
31
  }),
33
- items: [
34
- new core_1.OrderItem({
35
- id: '6',
36
- listPrice: 14374,
37
- listPriceIncludesTax: true,
38
- adjustments: [
39
- {
40
- adjustmentSource: 'Promotion:1',
41
- type: generated_shop_types_1.AdjustmentType.PROMOTION,
42
- amount: -1000,
43
- description: '$10 off computer equipment',
44
- },
45
- ],
46
- taxLines: [],
47
- }),
32
+ quantity: 1,
33
+ listPrice: 14374,
34
+ listPriceIncludesTax: true,
35
+ adjustments: [
36
+ {
37
+ adjustmentSource: 'Promotion:1',
38
+ type: generated_shop_types_1.AdjustmentType.PROMOTION,
39
+ amount: -1000,
40
+ description: '$10 off computer equipment',
41
+ },
48
42
  ],
43
+ taxLines: [],
49
44
  }),
50
45
  new core_1.OrderLine({
51
46
  id: '6',
@@ -57,22 +52,18 @@ exports.mockOrderStateTransitionEvent = new core_1.OrderStateTransitionEvent('Ar
57
52
  name: 'Hard Drive 1TB',
58
53
  sku: 'IHD455T1',
59
54
  }),
60
- items: [
61
- new core_1.OrderItem({
62
- id: '7',
63
- listPrice: 3799,
64
- listPriceIncludesTax: true,
65
- adjustments: [],
66
- taxLines: [],
67
- }),
68
- ],
55
+ quantity: 1,
56
+ listPrice: 3799,
57
+ listPriceIncludesTax: true,
58
+ adjustments: [],
59
+ taxLines: [],
69
60
  }),
70
61
  ],
71
62
  subTotal: 15144,
72
63
  subTotalWithTax: 18173,
73
64
  shipping: 1000,
74
65
  shippingLines: [
75
- new shipping_line_entity_1.ShippingLine({
66
+ new core_1.ShippingLine({
76
67
  listPrice: 1000,
77
68
  listPriceIncludesTax: true,
78
69
  taxLines: [{ taxRate: 20, description: 'shipping tax' }],
@@ -1 +1 @@
1
- {"version":3,"file":"mock-events.js","sourceRoot":"","sources":["../../src/mock-events.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"mock-events.js","sourceRoot":"","sources":["../../src/mock-events.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
1
  /// <reference types="node" />
2
2
  import { Stream } from 'stream';
3
- import { EmailDetails, EmailSender, EmailTransportOptions } from './types';
4
- export declare type StreamTransportInfo = {
3
+ import { EmailSender } from './email-sender';
4
+ import { EmailDetails, EmailTransportOptions } from './types';
5
+ export type StreamTransportInfo = {
5
6
  envelope: {
6
7
  from: string;
7
8
  to: string[];
@@ -13,14 +14,16 @@ export declare type StreamTransportInfo = {
13
14
  * @description
14
15
  * Uses the configured transport to send the generated email.
15
16
  *
16
- * @docsCategory EmailPlugin
17
+ * @docsCategory core plugins/EmailPlugin
17
18
  * @docsPage EmailSender
18
19
  */
19
20
  export declare class NodemailerEmailSender implements EmailSender {
20
21
  private _smtpTransport;
21
22
  private _sendMailTransport;
23
+ private _sesTransport;
22
24
  send(email: EmailDetails, options: EmailTransportOptions): Promise<undefined>;
23
25
  private getSmtpTransport;
26
+ private getSesTransport;
24
27
  private getSendMailTransport;
25
28
  private sendMail;
26
29
  private sendFileJson;
@@ -16,7 +16,7 @@ const constants_1 = require("./constants");
16
16
  * @description
17
17
  * Uses the configured transport to send the generated email.
18
18
  *
19
- * @docsCategory EmailPlugin
19
+ * @docsCategory core plugins/EmailPlugin
20
20
  * @docsPage EmailSender
21
21
  */
22
22
  class NodemailerEmailSender {
@@ -38,6 +38,9 @@ class NodemailerEmailSender {
38
38
  case 'sendmail':
39
39
  await this.sendMail(email, this.getSendMailTransport(options));
40
40
  break;
41
+ case 'ses':
42
+ await this.sendMail(email, this.getSesTransport(options));
43
+ break;
41
44
  case 'smtp':
42
45
  await this.sendMail(email, this.getSmtpTransport(options));
43
46
  break;
@@ -55,6 +58,12 @@ class NodemailerEmailSender {
55
58
  }
56
59
  return this._smtpTransport;
57
60
  }
61
+ getSesTransport(options) {
62
+ if (!this._sesTransport) {
63
+ this._sesTransport = (0, nodemailer_1.createTransport)(options);
64
+ }
65
+ return this._sesTransport;
66
+ }
58
67
  getSendMailTransport(options) {
59
68
  if (!this._sendMailTransport) {
60
69
  this._sendMailTransport = (0, nodemailer_1.createTransport)(Object.assign({ sendmail: true }, options));
@@ -1 +1 @@
1
- {"version":3,"file":"nodemailer-email-sender.js","sourceRoot":"","sources":["../../src/nodemailer-email-sender.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"nodemailer-email-sender.js","sourceRoot":"","sources":["../../src/nodemailer-email-sender.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,4 @@
1
- import { EmailGenerator } from './types';
1
+ import { EmailGenerator } from './email-generator';
2
2
  /**
3
3
  * Simply passes through the subject and template content without modification.
4
4
  */
@@ -1,8 +1,8 @@
1
- import { MiddlewareConsumer, NestModule, OnApplicationBootstrap } from '@nestjs/common';
1
+ import { MiddlewareConsumer, NestModule, OnApplicationBootstrap, OnApplicationShutdown } from '@nestjs/common';
2
2
  import { ModuleRef } from '@nestjs/core';
3
3
  import { EventBus, JobQueueService, ProcessContext, Type } from '@vendure/core';
4
4
  import { EmailProcessor } from './email-processor';
5
- import { EmailPluginDevModeOptions, EmailPluginOptions } from './types';
5
+ import { EmailPluginDevModeOptions, EmailPluginOptions, InitializedEmailPluginOptions } from './types';
6
6
  /**
7
7
  * @description
8
8
  * The EmailPlugin creates and sends transactional emails based on Vendure events. By default, it uses an [MJML](https://mjml.io/)-based
@@ -63,6 +63,14 @@ import { EmailPluginDevModeOptions, EmailPluginOptions } from './types';
63
63
  * `node_modules/\@vendure/email-plugin/templates` to a location of your choice, and then point the `templatePath` config
64
64
  * property at that directory.
65
65
  *
66
+ * * ### Dynamic Email Templates
67
+ * Instead of passing a static value to `templatePath`, use `templateLoader` to define a template path.
68
+ * ```ts
69
+ * EmailPlugin.init({
70
+ * ...,
71
+ * templateLoader: new FileBasedTemplateLoader(my/order-confirmation/templates)
72
+ * })
73
+ * ```
66
74
  * ## Customizing templates
67
75
  *
68
76
  * Emails are generated from templates which use [MJML](https://mjml.io/) syntax. MJML is an open-source HTML-like markup
@@ -98,8 +106,87 @@ import { EmailPluginDevModeOptions, EmailPluginOptions } from './types';
98
106
  *
99
107
  * The `defaultEmailHandlers` array defines the default handlers such as for handling new account registration, order confirmation, password reset
100
108
  * etc. These defaults can be extended by adding custom templates for languages other than the default, or even completely new types of emails
101
- * which respond to any of the available [VendureEvents](/docs/typescript-api/events/). See the {@link EmailEventHandler} documentation for
102
- * details on how to do so.
109
+ * which respond to any of the available [VendureEvents](/docs/typescript-api/events/).
110
+ *
111
+ * A good way to learn how to create your own email handlers is to take a look at the
112
+ * [source code of the default handlers](https://github.com/vendure-ecommerce/vendure/blob/master/packages/email-plugin/src/default-email-handlers.ts).
113
+ * New handlers are defined in exactly the same way.
114
+ *
115
+ * It is also possible to modify the default handlers:
116
+ *
117
+ * ```TypeScript
118
+ * // Rather than importing `defaultEmailHandlers`, you can
119
+ * // import the handlers individually
120
+ * import {
121
+ * orderConfirmationHandler,
122
+ * emailVerificationHandler,
123
+ * passwordResetHandler,
124
+ * emailAddressChangeHandler,
125
+ * } from '\@vendure/email-plugin';
126
+ * import { CustomerService } from '\@vendure/core';
127
+ *
128
+ * // This allows you to then customize each handler to your needs.
129
+ * // For example, let's set a new subject line to the order confirmation:
130
+ * orderConfirmationHandler
131
+ * .setSubject(`We received your order!`);
132
+ *
133
+ * // Another example: loading additional data and setting new
134
+ * // template variables.
135
+ * passwordResetHandler
136
+ * .loadData(async ({ event, injector }) => {
137
+ * const customerService = injector.get(CustomerService);
138
+ * const customer = await customerService.findOneByUserId(event.ctx, event.user.id);
139
+ * return { customer };
140
+ * })
141
+ * .setTemplateVars(event => ({
142
+ * passwordResetToken: event.user.getNativeAuthenticationMethod().passwordResetToken,
143
+ * customer: event.data.customer,
144
+ * }));
145
+ *
146
+ * // Then you pass the handlers to the EmailPlugin init method
147
+ * // individually
148
+ * EmailPlugin.init({
149
+ * handlers: [
150
+ * orderConfirmationHandler,
151
+ * emailVerificationHandler,
152
+ * passwordResetHandler,
153
+ * emailAddressChangeHandler,
154
+ * ],
155
+ * // ...
156
+ * }),
157
+ * ```
158
+ *
159
+ * For all available methods of extending a handler, see the {@link EmailEventHandler} documentation.
160
+ *
161
+ * ## Dynamic SMTP settings
162
+ *
163
+ * Instead of defining static transport settings, you can also provide a function that dynamically resolves
164
+ * channel aware transport settings.
165
+ *
166
+ * @example
167
+ * ```ts
168
+ * import { defaultEmailHandlers, EmailPlugin } from '\@vendure/email-plugin';
169
+ * import { MyTransportService } from './transport.services.ts';
170
+ * const config: VendureConfig = {
171
+ * plugins: [
172
+ * EmailPlugin.init({
173
+ * handlers: defaultEmailHandlers,
174
+ * templatePath: path.join(__dirname, 'static/email/templates'),
175
+ * transport: (injector, ctx) => {
176
+ * if (ctx) {
177
+ * return injector.get(MyTransportService).getSettings(ctx);
178
+ * } else {
179
+ * return {
180
+ type: 'smtp',
181
+ host: 'smtp.example.com',
182
+ // ... etc.
183
+ }
184
+ * }
185
+ * }
186
+ * }),
187
+ * ],
188
+ * };
189
+ * ```
103
190
  *
104
191
  * ## Dev mode
105
192
  *
@@ -107,7 +194,7 @@ import { EmailPluginDevModeOptions, EmailPluginOptions } from './types';
107
194
  * file transport (See {@link FileTransportOptions}) and outputs emails as rendered HTML files in the directory specified by the
108
195
  * `outputPath` property.
109
196
  *
110
- * ```ts
197
+ * ```TypeScript
111
198
  * EmailPlugin.init({
112
199
  * devMode: true,
113
200
  * route: 'mailbox',
@@ -151,27 +238,31 @@ import { EmailPluginDevModeOptions, EmailPluginOptions } from './types';
151
238
  * };
152
239
  * ```
153
240
  *
154
- * @docsCategory EmailPlugin
241
+ * @docsCategory core plugins/EmailPlugin
155
242
  */
156
- export declare class EmailPlugin implements OnApplicationBootstrap, NestModule {
243
+ export declare class EmailPlugin implements OnApplicationBootstrap, OnApplicationShutdown, NestModule {
157
244
  private eventBus;
158
245
  private moduleRef;
159
246
  private emailProcessor;
160
247
  private jobQueueService;
161
248
  private processContext;
249
+ private options;
162
250
  private static options;
163
251
  private devMailbox;
164
252
  private jobQueue;
165
253
  private testingProcessor;
166
254
  /** @internal */
167
- constructor(eventBus: EventBus, moduleRef: ModuleRef, emailProcessor: EmailProcessor, jobQueueService: JobQueueService, processContext: ProcessContext);
255
+ constructor(eventBus: EventBus, moduleRef: ModuleRef, emailProcessor: EmailProcessor, jobQueueService: JobQueueService, processContext: ProcessContext, options: InitializedEmailPluginOptions);
168
256
  /**
169
257
  * Set the plugin options.
170
258
  */
171
259
  static init(options: EmailPluginOptions | EmailPluginDevModeOptions): Type<EmailPlugin>;
172
260
  /** @internal */
173
261
  onApplicationBootstrap(): Promise<void>;
262
+ onApplicationShutdown(): Promise<void>;
174
263
  configure(consumer: MiddlewareConsumer): void;
264
+ private initInjectableStrategies;
265
+ private destroyInjectableStrategies;
175
266
  private setupEventSubscribers;
176
267
  private handleEvent;
177
268
  }