@tstdl/base 0.71.54 → 0.71.55

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 (70) hide show
  1. package/examples/mail/basic.d.ts +1 -0
  2. package/examples/mail/basic.js +33 -0
  3. package/examples/mail/basic.js.map +1 -0
  4. package/examples/pdf/basic.d.ts +1 -0
  5. package/examples/pdf/basic.js +23 -0
  6. package/examples/pdf/basic.js.map +1 -0
  7. package/image-service/image-service.d.ts +1 -1
  8. package/mail/mail.service.d.ts +1 -0
  9. package/mail/mail.service.js +7 -1
  10. package/mail/mail.service.js.map +1 -1
  11. package/mail/models/mail-log.model.d.ts +3 -3
  12. package/mail/models/mail-template.model.d.ts +0 -1
  13. package/mail/template-providers/file-mail-template.provider.d.ts +4 -6
  14. package/mail/template-providers/file-mail-template.provider.js +3 -27
  15. package/mail/template-providers/file-mail-template.provider.js.map +1 -1
  16. package/mail/template-providers/memory-mail-template.provider.d.ts +3 -5
  17. package/mail/template-providers/memory-mail-template.provider.js +2 -14
  18. package/mail/template-providers/memory-mail-template.provider.js.map +1 -1
  19. package/mail/template-renderers/handlebars.mail-template-renderer.d.ts +6 -4
  20. package/mail/template-renderers/handlebars.mail-template-renderer.js +25 -10
  21. package/mail/template-renderers/handlebars.mail-template-renderer.js.map +1 -1
  22. package/mail/template-renderers/mjml.mail-template-renderer.d.ts +6 -7
  23. package/mail/template-renderers/mjml.mail-template-renderer.js +28 -30
  24. package/mail/template-renderers/mjml.mail-template-renderer.js.map +1 -1
  25. package/package.json +7 -5
  26. package/pdf/pdf.service.d.ts +9 -0
  27. package/pdf/pdf.service.js +48 -0
  28. package/pdf/pdf.service.js.map +1 -0
  29. package/templates/index.d.ts +7 -0
  30. package/templates/index.js +24 -0
  31. package/templates/index.js.map +1 -0
  32. package/templates/module.d.ts +12 -0
  33. package/templates/module.js +24 -0
  34. package/templates/module.js.map +1 -0
  35. package/templates/providers/file-template.provider.base.d.ts +12 -0
  36. package/templates/providers/file-template.provider.base.js +43 -0
  37. package/templates/providers/file-template.provider.base.js.map +1 -0
  38. package/templates/providers/file-template.provider.d.ts +21 -0
  39. package/templates/providers/file-template.provider.js +44 -0
  40. package/templates/providers/file-template.provider.js.map +1 -0
  41. package/templates/providers/memory-template.provider.base.d.ts +9 -0
  42. package/templates/providers/memory-template.provider.base.js +35 -0
  43. package/templates/providers/memory-template.provider.base.js.map +1 -0
  44. package/templates/providers/memory-template.provider.d.ts +4 -0
  45. package/templates/providers/memory-template.provider.js +18 -0
  46. package/templates/providers/memory-template.provider.js.map +1 -0
  47. package/templates/renderers/handlebars.template-renderer.d.ts +11 -0
  48. package/templates/renderers/handlebars.template-renderer.js +27 -0
  49. package/templates/renderers/handlebars.template-renderer.js.map +1 -0
  50. package/templates/renderers/mjml.template-renderer.d.ts +15 -0
  51. package/templates/renderers/mjml.template-renderer.js +54 -0
  52. package/templates/renderers/mjml.template-renderer.js.map +1 -0
  53. package/templates/template-renderer.provider.d.ts +8 -0
  54. package/templates/template-renderer.provider.js +60 -0
  55. package/templates/template-renderer.provider.js.map +1 -0
  56. package/templates/template.model.d.ts +5 -0
  57. package/templates/template.model.js +3 -0
  58. package/templates/template.model.js.map +1 -0
  59. package/templates/template.provider.d.ts +4 -0
  60. package/templates/template.provider.js +7 -0
  61. package/templates/template.provider.js.map +1 -0
  62. package/templates/template.renderer.d.ts +6 -0
  63. package/templates/template.renderer.js +7 -0
  64. package/templates/template.renderer.js.map +1 -0
  65. package/templates/template.service.d.ts +11 -0
  66. package/templates/template.service.js +37 -0
  67. package/templates/template.service.js.map +1 -0
  68. package/templates/tokens.d.ts +3 -0
  69. package/templates/tokens.js +6 -0
  70. package/templates/tokens.js.map +1 -0
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const container_1 = require("../../container");
4
+ const mail_1 = require("../../mail");
5
+ const nodemailer_mail_client_1 = require("../../mail/clients/nodemailer.mail-client");
6
+ const file_mail_template_provider_1 = require("../../mail/template-providers/file-mail-template.provider");
7
+ const handlebars_mail_template_renderer_1 = require("../../mail/template-renderers/handlebars.mail-template-renderer");
8
+ const mjml_mail_template_renderer_1 = require("../../mail/template-renderers/mjml.mail-template-renderer");
9
+ const config_parser_1 = require("../../utils/config-parser");
10
+ const path_1 = require("path");
11
+ const core_1 = require("../../core");
12
+ (0, core_1.configureTstdl)();
13
+ (0, mail_1.configureMail)({
14
+ clientConfig: {
15
+ host: (0, config_parser_1.string)('HOST', '127.0.0.01'),
16
+ port: (0, config_parser_1.integer)('PORT', 25),
17
+ auth: {
18
+ user: (0, config_parser_1.string)('USER', 'user'),
19
+ password: (0, config_parser_1.string)('PASS', 'password')
20
+ }
21
+ },
22
+ client: nodemailer_mail_client_1.NodemailerMailClient,
23
+ templateProvider: file_mail_template_provider_1.FileMailTemplateProvider,
24
+ templateRenderers: [mjml_mail_template_renderer_1.MjmlMailTemplateRenderer, handlebars_mail_template_renderer_1.HandlebarsMailTemplateRenderer]
25
+ });
26
+ (0, file_mail_template_provider_1.configureFileMailTemplateProvider)({ basePath: (0, path_1.resolve)(__dirname.replace('/dist', '/source'), 'templates') });
27
+ async function test() {
28
+ const service = await container_1.container.resolveAsync(mail_1.MailService);
29
+ const result = await service.sendTemplate('hello-name', { from: (0, config_parser_1.string)('FROM', (0, config_parser_1.string)('USER', 'user@example.com')), to: (0, config_parser_1.string)('TO', 'user@example.com') }, { name: 'Max Mustermann' });
30
+ console.log(result);
31
+ }
32
+ void test();
33
+ //# sourceMappingURL=basic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../source/examples/mail/basic.ts"],"names":[],"mappings":";;AAAA,+CAAwC;AACxC,qCAAoD;AACpD,sFAA6E;AAC7E,2GAAoI;AACpI,uHAA6G;AAC7G,2GAAiG;AACjG,6DAAwD;AACxD,+BAA+B;AAC/B,qCAA4C;AAE5C,IAAA,qBAAc,GAAE,CAAC;AAEjB,IAAA,oBAAa,EAAC;IACZ,YAAY,EAAE;QACZ,IAAI,EAAE,IAAA,sBAAM,EAAC,MAAM,EAAE,YAAY,CAAC;QAClC,IAAI,EAAE,IAAA,uBAAO,EAAC,MAAM,EAAE,EAAE,CAAC;QACzB,IAAI,EAAE;YACJ,IAAI,EAAE,IAAA,sBAAM,EAAC,MAAM,EAAE,MAAM,CAAC;YAC5B,QAAQ,EAAE,IAAA,sBAAM,EAAC,MAAM,EAAE,UAAU,CAAC;SACrC;KACF;IACD,MAAM,EAAE,6CAAoB;IAC5B,gBAAgB,EAAE,sDAAwB;IAC1C,iBAAiB,EAAE,CAAC,sDAAwB,EAAE,kEAA8B,CAAC;CAC9E,CAAC,CAAC;AAEH,IAAA,+DAAiC,EAAC,EAAE,QAAQ,EAAE,IAAA,cAAO,EAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;AAE7G,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,MAAM,qBAAS,CAAC,YAAY,CAAC,kBAAW,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,YAAY,CACvC,YAAY,EACZ,EAAE,IAAI,EAAE,IAAA,sBAAM,EAAC,MAAM,EAAE,IAAA,sBAAM,EAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,EAAE,EAAE,EAAE,IAAA,sBAAM,EAAC,IAAI,EAAE,kBAAkB,CAAC,EAAE,EAClG,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAC3B,CAAC;IAEF,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AACtB,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const container_1 = require("../../container");
4
+ const core_1 = require("../../core");
5
+ const pdf_service_1 = require("../../pdf/pdf.service");
6
+ const templates_1 = require("../../templates");
7
+ const file_template_provider_1 = require("../../templates/providers/file-template.provider");
8
+ const handlebars_template_renderer_1 = require("../../templates/renderers/handlebars.template-renderer");
9
+ const mjml_template_renderer_1 = require("../../templates/renderers/mjml.template-renderer");
10
+ const path_1 = require("path");
11
+ (0, core_1.configureTstdl)();
12
+ (0, templates_1.configureTemplates)({
13
+ templateProvider: file_template_provider_1.FileTemplateProvider,
14
+ templateRenderers: [mjml_template_renderer_1.MjmlTemplateRenderer, handlebars_template_renderer_1.HandlebarsTemplateRenderer]
15
+ });
16
+ (0, file_template_provider_1.configureFileTemplateProvider)({ basePath: (0, path_1.resolve)(__dirname.replace('/dist', '/source'), 'templates') });
17
+ async function test() {
18
+ const service = await container_1.container.resolveAsync(pdf_service_1.PdfService);
19
+ const result = await service.renderTemplate('hello-name', { name: 'Max Mustermann' });
20
+ console.log(`Resulting PDF has ${result.length} bytes.`);
21
+ }
22
+ void test();
23
+ //# sourceMappingURL=basic.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"basic.js","sourceRoot":"","sources":["../../../source/examples/pdf/basic.ts"],"names":[],"mappings":";;AAAA,+CAAwC;AACxC,qCAAwC;AACxC,uDAA+C;AAC/C,+CAAiD;AACjD,6FAAmH;AACnH,yGAAgG;AAChG,6FAAoF;AACpF,+BAA+B;AAE/B,IAAA,qBAAc,GAAE,CAAC;AAEjB,IAAA,8BAAkB,EAAC;IACjB,gBAAgB,EAAE,6CAAoB;IACtC,iBAAiB,EAAE,CAAC,6CAAoB,EAAE,yDAA0B,CAAC;CACtE,CAAC,CAAC;AAEH,IAAA,sDAA6B,EAAC,EAAE,QAAQ,EAAE,IAAA,cAAO,EAAC,SAAS,CAAC,OAAO,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,WAAW,CAAC,EAAE,CAAC,CAAC;AAEzG,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,MAAM,qBAAS,CAAC,YAAY,CAAC,wBAAU,CAAC,CAAC;IACzD,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,cAAc,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;IAEtF,OAAO,CAAC,GAAG,CAAC,qBAAqB,MAAM,CAAC,MAAM,SAAS,CAAC,CAAC;AAC3D,CAAC;AAED,KAAK,IAAI,EAAE,CAAC"}
@@ -27,11 +27,11 @@ export declare const imageFormatSchema: import("superstruct").Struct<"png" | "jp
27
27
  export declare type ImageFormat = Infer<typeof imageFormatSchema>;
28
28
  export declare const imageOptionsSchema: import("superstruct").Struct<{
29
29
  origin?: "center" | "smart" | "top" | "left" | "right" | "bottom" | "topleft" | "topright" | "bottomleft" | "bottomright" | undefined;
30
+ format?: "png" | "jpg" | "jpeg" | "webp" | "avif" | undefined;
30
31
  resizeMode?: "fill" | "fit" | undefined;
31
32
  width?: number | undefined;
32
33
  height?: number | undefined;
33
34
  quality?: number | undefined;
34
- format?: "png" | "jpg" | "jpeg" | "webp" | "avif" | undefined;
35
35
  cacheBuster?: string | undefined;
36
36
  }, {
37
37
  resizeMode: import("superstruct").Struct<"fill" | "fit" | undefined, {
@@ -11,6 +11,7 @@ export declare class MailService {
11
11
  private readonly mailTemplateRendererProvider;
12
12
  private readonly mailLogRepository;
13
13
  private readonly logger;
14
+ private readonly mailDataSourceTemplateKey;
14
15
  constructor(mailClient: MailClient, mailTemplateProvider: MailTemplateProvider, mailTemplateRendererProvider: MailTemplateRendererProvider, mailLogRepository: MailLogRepository | undefined, logger: Logger);
15
16
  send(mailData: MailData): Promise<MailSendResult>;
16
17
  sendTemplate(key: string, mailData: TypedOmit<MailData, 'content' | 'subject'>, templateContext?: object): Promise<MailSendResult>;
@@ -30,13 +30,18 @@ let MailService = MailService_1 = class MailService {
30
30
  this.mailTemplateRendererProvider = mailTemplateRendererProvider;
31
31
  this.mailLogRepository = mailLogRepository;
32
32
  this.logger = logger;
33
+ this.mailDataSourceTemplateKey = new WeakMap();
33
34
  }
34
35
  async send(mailData) {
36
+ var _a;
35
37
  let mailLog;
36
38
  if ((0, type_guards_1.isDefined)(this.mailLogRepository)) {
37
39
  const log = {
38
40
  timestamp: (0, date_time_1.currentTimestamp)(),
39
- data: mailData
41
+ templateKey: (_a = this.mailDataSourceTemplateKey.get(mailData)) !== null && _a !== void 0 ? _a : null,
42
+ data: mailData,
43
+ sendResult: null,
44
+ errors: null
40
45
  };
41
46
  mailLog = await this.mailLogRepository.insert(log);
42
47
  }
@@ -64,6 +69,7 @@ let MailService = MailService_1 = class MailService {
64
69
  const renderer = this.mailTemplateRendererProvider.get(template.type);
65
70
  const { subject, html, text } = await renderer.render(template, templateContext);
66
71
  const fullMailData = Object.assign(Object.assign({}, mailData), { subject, content: { html, text } });
72
+ this.mailDataSourceTemplateKey.set(fullMailData, key);
67
73
  return this.send(fullMailData);
68
74
  }
69
75
  };
@@ -1 +1 @@
1
- {"version":3,"file":"mail.service.js","sourceRoot":"","sources":["../../source/mail/mail.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,4CAAsE;AAEtE,sCAAkC;AAElC,kDAAqD;AACrD,8CAA8C;AAC9C,sDAAgD;AAChD,+DAA0D;AAC1D,uFAAiF;AACjF,qEAAgE;AAChE,+CAA2C;AAI3C,IAAa,WAAW,mBAAxB,MAAa,WAAW;IAOtB,YACE,UAAsB,EACV,oBAA0C,EACtD,4BAA0D,EACnB,iBAAgD,EACzC,MAAc;QAE5D,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;QACjD,IAAI,CAAC,4BAA4B,GAAG,4BAA4B,CAAC;QACjE,IAAI,CAAC,iBAAiB,GAAG,iBAAiB,CAAC;QAC3C,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,QAAkB;QAC3B,IAAI,OAA4B,CAAC;QAEjC,IAAI,IAAA,uBAAS,EAAC,IAAI,CAAC,iBAAiB,CAAC,EAAE;YACrC,MAAM,GAAG,GAAe;gBACtB,SAAS,EAAE,IAAA,4BAAgB,GAAE;gBAC7B,IAAI,EAAE,QAAQ;aACf,CAAC;YAEF,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;SACpD;QAED,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAEpD,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,EAAE;gBACtB,MAAM,IAAI,CAAC,iBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;aACtE;YAED,OAAO,MAAM,CAAC;SACf;QACD,OAAO,KAAK,EAAE;YACZ,IAAI;gBACF,IAAI,IAAA,uBAAS,EAAC,OAAO,CAAC,EAAE;oBACtB,MAAM,IAAI,CAAC,iBAAkB,CAAC,KAAK,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,CAAC,IAAA,qBAAW,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC;iBAChF;aACF;YACD,OAAO,QAAQ,EAAE;gBACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,QAAiB,CAAC,CAAC;aACtC;YAED,MAAM,KAAK,CAAC;SACb;IACH,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,GAAW,EAAE,QAAoD,EAAE,eAAwB;QAC5G,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,IAAI,CAAC,4BAA4B,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACtE,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,CAAC,QAAQ,EAAE,eAAe,CAAC,CAAC;QACjF,MAAM,YAAY,mCAAQ,QAAQ,KAAE,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,GAAE,CAAC;QAEvE,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;IACjC,CAAC;CACF,CAAA;AAhEY,WAAW;IADvB,IAAA,qBAAS,GAAE;IAUP,WAAA,IAAA,oBAAQ,GAAE,CAAA;IAEV,WAAA,IAAA,kBAAM,EAAC,uCAAiB,CAAC,CAAA;IAAE,WAAA,IAAA,oBAAQ,GAAE,CAAA;IACrC,WAAA,IAAA,sBAAU,EAAiB,aAAW,CAAC,IAAI,CAAC,CAAA;qCAJjC,wBAAU;QACY,6CAAoB;QACxB,8DAA4B,UAEJ,eAAM;GAZnD,WAAW,CAgEvB;AAhEY,kCAAW"}
1
+ {"version":3,"file":"mail.service.js","sourceRoot":"","sources":["../../source/mail/mail.service.ts"],"names":[],"mappings":"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"}
@@ -3,9 +3,9 @@ import type { MailData } from './mail-data.model';
3
3
  import type { MailSendResult } from './mail-send-result.model';
4
4
  export declare type MailLog = Entity & {
5
5
  timestamp: number;
6
- templateKey?: string;
6
+ templateKey: string | null;
7
7
  data: MailData;
8
- sendResult?: MailSendResult;
9
- errors?: string[];
8
+ sendResult: MailSendResult | null;
9
+ errors: string[] | null;
10
10
  };
11
11
  export declare type NewMailLog = NewEntity<MailLog>;
@@ -1,5 +1,4 @@
1
1
  export declare type MailTemplate<Type extends string = string, Options = any> = {
2
- key: string;
3
2
  type: Type;
4
3
  /** subject template */
5
4
  subject?: string;
@@ -1,9 +1,9 @@
1
1
  import type { Injectable } from "../../container";
2
2
  import { resolveArgumentType } from "../../container";
3
- import type { TypedOmit } from "../../types";
4
- import { MailTemplateProvider } from '../mail-template.provider';
3
+ import { FileTemplateProviderBase } from "../../templates/providers/file-template.provider.base";
4
+ import type { MailTemplateProvider } from '../mail-template.provider';
5
5
  import type { MailTemplate } from '../models';
6
- export declare type FileMailTemplate = TypedOmit<MailTemplate, 'key'> & {
6
+ export declare type FileMailTemplate = MailTemplate & {
7
7
  /** subject template file */
8
8
  subjectFile?: string;
9
9
  /** html template file */
@@ -16,10 +16,8 @@ export declare type FileMailTemplateProviderConfig = {
16
16
  };
17
17
  export declare type FileMailTemplateProviderArgument = string;
18
18
  export declare const fileMailTemplateProviderConfig: FileMailTemplateProviderConfig;
19
- export declare class FileMailTemplateProvider extends MailTemplateProvider implements Injectable<FileMailTemplateProviderArgument> {
20
- private readonly basePath;
19
+ export declare class FileMailTemplateProvider extends FileTemplateProviderBase<MailTemplate, FileMailTemplate> implements MailTemplateProvider, Injectable<FileMailTemplateProviderArgument> {
21
20
  readonly [resolveArgumentType]: FileMailTemplateProviderArgument;
22
21
  constructor(basePath: string);
23
- get(key: string): Promise<MailTemplate>;
24
22
  }
25
23
  export declare function configureFileMailTemplateProvider(config?: Partial<FileMailTemplateProviderConfig>): void;
@@ -15,10 +15,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
15
15
  exports.configureFileMailTemplateProvider = exports.FileMailTemplateProvider = exports.fileMailTemplateProviderConfig = void 0;
16
16
  const container_1 = require("../../container");
17
17
  const schema_1 = require("../../schema");
18
- const type_guards_1 = require("../../utils/type-guards");
19
- const fs = require("fs/promises");
20
- const path = require("path");
21
- const mail_template_provider_1 = require("../mail-template.provider");
18
+ const file_template_provider_base_1 = require("../../templates/providers/file-template.provider.base");
22
19
  exports.fileMailTemplateProviderConfig = {};
23
20
  const fileMailTemplateSchema = (0, schema_1.object)({
24
21
  type: (0, schema_1.string)(),
@@ -30,30 +27,9 @@ const fileMailTemplateSchema = (0, schema_1.object)({
30
27
  textFile: (0, schema_1.optional)((0, schema_1.string)()),
31
28
  options: (0, schema_1.optional)((0, schema_1.unknown)())
32
29
  });
33
- let FileMailTemplateProvider = class FileMailTemplateProvider extends mail_template_provider_1.MailTemplateProvider {
30
+ let FileMailTemplateProvider = class FileMailTemplateProvider extends file_template_provider_base_1.FileTemplateProviderBase {
34
31
  constructor(basePath) {
35
- super();
36
- this.basePath = basePath;
37
- }
38
- async get(key) {
39
- var _a, _b, _c;
40
- const filePath = path.resolve(this.basePath, `${key}.json`);
41
- const fileContent = await fs.readFile(filePath, { encoding: 'utf8' });
42
- const fileMailTemplate = fileMailTemplateSchema.parse(JSON.parse(fileContent));
43
- const [subject, html, text] = await Promise.all([
44
- (_a = fileMailTemplate.subject) !== null && _a !== void 0 ? _a : ((0, type_guards_1.isDefined)(fileMailTemplate.subjectFile) ? fs.readFile(path.resolve(this.basePath, fileMailTemplate.subjectFile), { encoding: 'utf8' }) : undefined),
45
- (_b = fileMailTemplate.html) !== null && _b !== void 0 ? _b : ((0, type_guards_1.isDefined)(fileMailTemplate.htmlFile) ? fs.readFile(path.resolve(this.basePath, fileMailTemplate.htmlFile), { encoding: 'utf8' }) : undefined),
46
- (_c = fileMailTemplate.text) !== null && _c !== void 0 ? _c : ((0, type_guards_1.isDefined)(fileMailTemplate.textFile) ? fs.readFile(path.resolve(this.basePath, fileMailTemplate.textFile), { encoding: 'utf8' }) : undefined)
47
- ]);
48
- const template = {
49
- key,
50
- type: fileMailTemplate.type,
51
- subject,
52
- html,
53
- text,
54
- options: fileMailTemplate.options
55
- };
56
- return template;
32
+ super(fileMailTemplateSchema, basePath, [['subjectFile', 'subject'], ['htmlFile', 'html'], ['textFile', 'text']]);
57
33
  }
58
34
  };
59
35
  FileMailTemplateProvider = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"file-mail-template.provider.js","sourceRoot":"","sources":["../../../source/mail/template-providers/file-mail-template.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAwE;AAExE,yCAA6D;AAE7D,yDAAgD;AAChD,kCAAkC;AAClC,6BAA6B;AAC7B,sEAAiE;AAoBpD,QAAA,8BAA8B,GAAmC,EAAE,CAAC;AAEjF,MAAM,sBAAsB,GAA6B,IAAA,eAAM,EAAC;IAC9D,IAAI,EAAE,IAAA,eAAM,GAAE;IACd,OAAO,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IAC3B,WAAW,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IAC/B,IAAI,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IACxB,QAAQ,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IAC5B,IAAI,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IACxB,QAAQ,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IAC5B,OAAO,EAAE,IAAA,iBAAQ,EAAC,IAAA,gBAAO,GAAE,CAAC;CAC7B,CAAC,CAAC;AAKH,IAAa,wBAAwB,GAArC,MAAa,wBAAyB,SAAQ,6CAAoB;IAKhE,YAAyB,QAAgB;QACvC,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;QAC5D,MAAM,WAAW,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC;QACtE,MAAM,gBAAgB,GAAG,sBAAsB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC;QAE/E,MAAM,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,GAAG,MAAM,OAAO,CAAC,GAAG,CAAC;YAC9C,MAAA,gBAAgB,CAAC,OAAO,mCAAI,CAAC,IAAA,uBAAS,EAAC,gBAAgB,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YAChL,MAAA,gBAAgB,CAAC,IAAI,mCAAI,CAAC,IAAA,uBAAS,EAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvK,MAAA,gBAAgB,CAAC,IAAI,mCAAI,CAAC,IAAA,uBAAS,EAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,EAAE,gBAAgB,CAAC,QAAQ,CAAC,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;SACxK,CAAC,CAAC;QAEH,MAAM,QAAQ,GAAiB;YAC7B,GAAG;YACH,IAAI,EAAE,gBAAgB,CAAC,IAAI;YAC3B,OAAO;YACP,IAAI;YACJ,IAAI;YACJ,OAAO,EAAE,gBAAgB,CAAC,OAAO;SAClC,CAAC;QAEF,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAA;AAjCY,wBAAwB;IAHpC,IAAA,qBAAS,EAAC;QACT,uBAAuB,EAAE,GAAG,EAAE,CAAC,sCAA8B,CAAC,QAAQ;KACvE,CAAC;IAMa,WAAA,IAAA,qBAAS,GAAE,CAAA;;GALb,wBAAwB,CAiCpC;AAjCY,4DAAwB;AAmCrC,SAAgB,iCAAiC,CAAC,SAAkD,EAAE;;IACpG,sCAA8B,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,sCAA8B,CAAC,QAAQ,CAAC;AACvG,CAAC;AAFD,8EAEC"}
1
+ {"version":3,"file":"file-mail-template.provider.js","sourceRoot":"","sources":["../../../source/mail/template-providers/file-mail-template.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AACA,+CAAwE;AAExE,yCAA6D;AAC7D,uGAA6F;AAqBhF,QAAA,8BAA8B,GAAmC,EAAE,CAAC;AAEjF,MAAM,sBAAsB,GAA6B,IAAA,eAAM,EAAC;IAC9D,IAAI,EAAE,IAAA,eAAM,GAAE;IACd,OAAO,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IAC3B,WAAW,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IAC/B,IAAI,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IACxB,QAAQ,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IAC5B,IAAI,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IACxB,QAAQ,EAAE,IAAA,iBAAQ,EAAC,IAAA,eAAM,GAAE,CAAC;IAC5B,OAAO,EAAE,IAAA,iBAAQ,EAAC,IAAA,gBAAO,GAAE,CAAC;CAC7B,CAAC,CAAC;AAKH,IAAa,wBAAwB,GAArC,MAAa,wBAAyB,SAAQ,sDAAwD;IAGpG,YAAyB,QAAgB;QACvC,KAAK,CAAC,sBAAsB,EAAE,QAAQ,EAAE,CAAC,CAAC,aAAa,EAAE,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;IACpH,CAAC;CACF,CAAA;AANY,wBAAwB;IAHpC,IAAA,qBAAS,EAAC;QACT,uBAAuB,EAAE,GAAG,EAAE,CAAC,sCAA8B,CAAC,QAAQ;KACvE,CAAC;IAIa,WAAA,IAAA,qBAAS,GAAE,CAAA;;GAHb,wBAAwB,CAMpC;AANY,4DAAwB;AAQrC,SAAgB,iCAAiC,CAAC,SAAkD,EAAE;;IACpG,sCAA8B,CAAC,QAAQ,GAAG,MAAA,MAAM,CAAC,QAAQ,mCAAI,sCAA8B,CAAC,QAAQ,CAAC;AACvG,CAAC;AAFD,8EAEC"}
@@ -1,8 +1,6 @@
1
- import { MailTemplateProvider } from '../mail-template.provider';
1
+ import { MemoryTemplateProviderBase } from "../../templates/providers/memory-template.provider.base";
2
+ import type { MailTemplateProvider } from '../mail-template.provider';
2
3
  import type { MailTemplate } from '../models';
3
- export declare class MemoryMailTemplateProvider extends MailTemplateProvider {
4
- private readonly map;
4
+ export declare class MemoryMailTemplateProvider extends MemoryTemplateProviderBase<MailTemplate> implements MailTemplateProvider {
5
5
  constructor();
6
- add(template: MailTemplate): void;
7
- get(key: string): Promise<MailTemplate>;
8
6
  }
@@ -11,22 +11,10 @@ var __metadata = (this && this.__metadata) || function (k, v) {
11
11
  Object.defineProperty(exports, "__esModule", { value: true });
12
12
  exports.MemoryMailTemplateProvider = void 0;
13
13
  const container_1 = require("../../container");
14
- const type_guards_1 = require("../../utils/type-guards");
15
- const mail_template_provider_1 = require("../mail-template.provider");
16
- let MemoryMailTemplateProvider = class MemoryMailTemplateProvider extends mail_template_provider_1.MailTemplateProvider {
14
+ const memory_template_provider_base_1 = require("../../templates/providers/memory-template.provider.base");
15
+ let MemoryMailTemplateProvider = class MemoryMailTemplateProvider extends memory_template_provider_base_1.MemoryTemplateProviderBase {
17
16
  constructor() {
18
17
  super();
19
- this.map = new Map();
20
- }
21
- add(template) {
22
- this.map.set(template.key, template);
23
- }
24
- async get(key) {
25
- const template = this.map.get(key);
26
- if ((0, type_guards_1.isUndefined)(template)) {
27
- throw new Error('template not available');
28
- }
29
- return template;
30
18
  }
31
19
  };
32
20
  MemoryMailTemplateProvider = __decorate([
@@ -1 +1 @@
1
- {"version":3,"file":"memory-mail-template.provider.js","sourceRoot":"","sources":["../../../source/mail/template-providers/memory-mail-template.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AACxC,yDAAkD;AAClD,sEAAiE;AAIjE,IAAa,0BAA0B,GAAvC,MAAa,0BAA2B,SAAQ,6CAAoB;IAGlE;QACE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,GAAG,GAAG,IAAI,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,GAAG,CAAC,QAAsB;QACxB,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;IACvC,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QAEnC,IAAI,IAAA,yBAAW,EAAC,QAAQ,CAAC,EAAE;YACzB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;SAC3C;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;CACF,CAAA;AAtBY,0BAA0B;IADtC,IAAA,qBAAS,GAAE;;GACC,0BAA0B,CAsBtC;AAtBY,gEAA0B"}
1
+ {"version":3,"file":"memory-mail-template.provider.js","sourceRoot":"","sources":["../../../source/mail/template-providers/memory-mail-template.provider.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AACxC,2GAAiG;AAKjG,IAAa,0BAA0B,GAAvC,MAAa,0BAA2B,SAAQ,0DAAwC;IACtF;QACE,KAAK,EAAE,CAAC;IACV,CAAC;CACF,CAAA;AAJY,0BAA0B;IADtC,IAAA,qBAAS,GAAE;;GACC,0BAA0B,CAItC;AAJY,gEAA0B"}
@@ -1,11 +1,13 @@
1
+ import type { HandlebarsTemplate, HandlebarsTemplateOptions } from "../../templates/renderers/handlebars.template-renderer";
2
+ import { HandlebarsTemplateRenderer } from "../../templates/renderers/handlebars.template-renderer";
1
3
  import type { MailTemplateRenderResult } from '../mail-template.renderer';
2
4
  import { MailTemplateRenderer } from '../mail-template.renderer';
3
5
  import type { MailTemplate } from '../models';
4
- export declare type HandlebarsMailTemplateOptions = {
5
- strict?: boolean;
6
- };
7
- export declare type HandlebarsMailTemplate = MailTemplate<'handlebars', HandlebarsMailTemplateOptions>;
6
+ export declare type HandlebarsMailTemplateOptions = HandlebarsTemplateOptions;
7
+ export declare type HandlebarsMailTemplate = MailTemplate<HandlebarsTemplate['type'], HandlebarsMailTemplateOptions>;
8
8
  export declare class HandlebarsMailTemplateRenderer extends MailTemplateRenderer<HandlebarsMailTemplate> {
9
+ private readonly handlebarsTemplateRenderer;
10
+ constructor(handlebarsTemplateRenderer: HandlebarsTemplateRenderer);
9
11
  canHandleType(type: string): boolean;
10
12
  render(template: HandlebarsMailTemplate, context?: object): Promise<MailTemplateRenderResult>;
11
13
  }
@@ -5,30 +5,45 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
5
5
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
6
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
7
  };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
8
11
  Object.defineProperty(exports, "__esModule", { value: true });
9
12
  exports.HandlebarsMailTemplateRenderer = void 0;
10
13
  const container_1 = require("../../container");
14
+ const templates_1 = require("../../templates");
15
+ const handlebars_template_renderer_1 = require("../../templates/renderers/handlebars.template-renderer");
11
16
  const type_guards_1 = require("../../utils/type-guards");
12
- const handlebars = require("handlebars");
13
17
  const mail_template_renderer_1 = require("../mail-template.renderer");
18
+ (0, templates_1.configureTemplates)({ templateRenderers: [handlebars_template_renderer_1.HandlebarsTemplateRenderer] });
14
19
  let HandlebarsMailTemplateRenderer = class HandlebarsMailTemplateRenderer extends mail_template_renderer_1.MailTemplateRenderer {
20
+ constructor(handlebarsTemplateRenderer) {
21
+ super();
22
+ this.handlebarsTemplateRenderer = handlebarsTemplateRenderer;
23
+ }
15
24
  canHandleType(type) {
16
- return type == 'handlebars';
25
+ return this.handlebarsTemplateRenderer.canHandleType(type);
17
26
  }
18
27
  async render(template, context) {
19
- var _a, _b, _c, _d, _e, _f;
20
- const subjectRenderer = (0, type_guards_1.isDefined)(template.subject) ? handlebars.compile(template.subject, { strict: (_b = (_a = template.options) === null || _a === void 0 ? void 0 : _a.strict) !== null && _b !== void 0 ? _b : true }) : undefined;
21
- const htmlRenderer = (0, type_guards_1.isDefined)(template.html) ? handlebars.compile(template.html, { strict: (_d = (_c = template.options) === null || _c === void 0 ? void 0 : _c.strict) !== null && _d !== void 0 ? _d : true }) : undefined;
22
- const textRenderer = (0, type_guards_1.isDefined)(template.text) ? handlebars.compile(template.text, { strict: (_f = (_e = template.options) === null || _e === void 0 ? void 0 : _e.strict) !== null && _f !== void 0 ? _f : true }) : undefined;
28
+ const subject = (0, type_guards_1.isDefined)(template.subject)
29
+ ? await this.handlebarsTemplateRenderer.render({ type: template.type, template: template.subject, options: template.options }, context)
30
+ : undefined;
31
+ const html = (0, type_guards_1.isDefined)(template.html)
32
+ ? await this.handlebarsTemplateRenderer.render({ type: template.type, template: template.html, options: template.options }, context)
33
+ : undefined;
34
+ const text = (0, type_guards_1.isDefined)(template.text)
35
+ ? await this.handlebarsTemplateRenderer.render({ type: template.type, template: template.text, options: template.options }, context)
36
+ : undefined;
23
37
  return {
24
- subject: subjectRenderer === null || subjectRenderer === void 0 ? void 0 : subjectRenderer(context),
25
- html: htmlRenderer === null || htmlRenderer === void 0 ? void 0 : htmlRenderer(context),
26
- text: textRenderer === null || textRenderer === void 0 ? void 0 : textRenderer(context)
38
+ subject,
39
+ html,
40
+ text
27
41
  };
28
42
  }
29
43
  };
30
44
  HandlebarsMailTemplateRenderer = __decorate([
31
- (0, container_1.singleton)()
45
+ (0, container_1.singleton)(),
46
+ __metadata("design:paramtypes", [handlebars_template_renderer_1.HandlebarsTemplateRenderer])
32
47
  ], HandlebarsMailTemplateRenderer);
33
48
  exports.HandlebarsMailTemplateRenderer = HandlebarsMailTemplateRenderer;
34
49
  //# sourceMappingURL=handlebars.mail-template-renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"handlebars.mail-template-renderer.js","sourceRoot":"","sources":["../../../source/mail/template-renderers/handlebars.mail-template-renderer.ts"],"names":[],"mappings":";;;;;;;;;AAAA,+CAAwC;AACxC,yDAAgD;AAChD,yCAAyC;AAEzC,sEAAiE;AAQjE,IAAa,8BAA8B,GAA3C,MAAa,8BAA+B,SAAQ,6CAA4C;IAC9F,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,IAAI,YAAY,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgC,EAAE,OAAgB;;QAC7D,MAAM,eAAe,GAAG,IAAA,uBAAS,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,EAAE,EAAE,MAAM,EAAE,MAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,MAAM,mCAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACrJ,MAAM,YAAY,GAAG,IAAA,uBAAS,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,MAAM,mCAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC5I,MAAM,YAAY,GAAG,IAAA,uBAAS,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,MAAM,EAAE,MAAA,MAAA,QAAQ,CAAC,OAAO,0CAAE,MAAM,mCAAI,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE5I,OAAO;YACL,OAAO,EAAE,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAG,OAAO,CAAC;YACnC,IAAI,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,OAAO,CAAC;YAC7B,IAAI,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,OAAO,CAAC;SAC9B,CAAC;IACJ,CAAC;CACF,CAAA;AAhBY,8BAA8B;IAD1C,IAAA,qBAAS,GAAE;GACC,8BAA8B,CAgB1C;AAhBY,wEAA8B"}
1
+ {"version":3,"file":"handlebars.mail-template-renderer.js","sourceRoot":"","sources":["../../../source/mail/template-renderers/handlebars.mail-template-renderer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AACxC,+CAAiD;AAEjD,yGAAgG;AAChG,yDAAgD;AAEhD,sEAAiE;AAOjE,IAAA,8BAAkB,EAAC,EAAE,iBAAiB,EAAE,CAAC,yDAA0B,CAAC,EAAE,CAAC,CAAC;AAGxE,IAAa,8BAA8B,GAA3C,MAAa,8BAA+B,SAAQ,6CAA4C;IAG9F,YAAY,0BAAsD;QAChE,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAC;IAC/D,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,0BAA0B,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAAgC,EAAE,OAAgB;QAC7D,MAAM,OAAO,GAAG,IAAA,uBAAS,EAAC,QAAQ,CAAC,OAAO,CAAC;YACzC,CAAC,CAAC,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC;YACvI,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,IAAI,GAAG,IAAA,uBAAS,EAAC,QAAQ,CAAC,IAAI,CAAC;YACnC,CAAC,CAAC,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC;YACpI,CAAC,CAAC,SAAS,CAAC;QAEd,MAAM,IAAI,GAAG,IAAA,uBAAS,EAAC,QAAQ,CAAC,IAAI,CAAC;YACnC,CAAC,CAAC,MAAM,IAAI,CAAC,0BAA0B,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,QAAQ,CAAC,OAAO,EAAE,EAAE,OAAO,CAAC;YACpI,CAAC,CAAC,SAAS,CAAC;QAEd,OAAO;YACL,OAAO;YACP,IAAI;YACJ,IAAI;SACL,CAAC;IACJ,CAAC;CACF,CAAA;AAhCY,8BAA8B;IAD1C,IAAA,qBAAS,GAAE;qCAI8B,yDAA0B;GAHvD,8BAA8B,CAgC1C;AAhCY,wEAA8B"}
@@ -1,15 +1,14 @@
1
- import type { MJMLParsingOptions } from 'mjml-core';
2
- import { MailTemplateRendererProvider } from '../mail-template-renderer.provider';
1
+ import { TemplateRendererProvider } from "../../templates";
2
+ import type { MjmlTemplate, MjmlTemplateOptions } from "../../templates/renderers/mjml.template-renderer";
3
+ import { MjmlTemplateRenderer } from "../../templates/renderers/mjml.template-renderer";
3
4
  import type { MailTemplateRenderResult } from '../mail-template.renderer';
4
5
  import { MailTemplateRenderer } from '../mail-template.renderer';
5
6
  import type { MailTemplate } from '../models';
6
- export declare type MjmlMailTemplateOptions = Pick<MJMLParsingOptions, 'fonts' | 'keepComments' | 'validationLevel'> & {
7
- preprocessorOptions?: any;
8
- };
9
- export declare type MjmlMailTemplate = MailTemplate<'mjml' | `mjml-${string}`, MjmlMailTemplateOptions>;
7
+ export declare type MjmlMailTemplate = MailTemplate<MjmlTemplate['type'], MjmlTemplateOptions>;
10
8
  export declare class MjmlMailTemplateRenderer extends MailTemplateRenderer<MjmlMailTemplate> {
11
9
  private readonly rendererProvider;
12
- constructor(rendererProvider: MailTemplateRendererProvider);
10
+ private readonly mjmlTemplateRenderer;
11
+ constructor(rendererProvider: TemplateRendererProvider, mjmlTemplateRenderer: MjmlTemplateRenderer);
13
12
  canHandleType(type: string): boolean;
14
13
  render(template: MjmlMailTemplate, context?: object): Promise<MailTemplateRenderResult>;
15
14
  }
@@ -8,55 +8,53 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
8
8
  var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
10
  };
11
- var __param = (this && this.__param) || function (paramIndex, decorator) {
12
- return function (target, key) { decorator(target, key, paramIndex); }
13
- };
14
11
  Object.defineProperty(exports, "__esModule", { value: true });
15
12
  exports.MjmlMailTemplateRenderer = void 0;
16
13
  const container_1 = require("../../container");
14
+ const templates_1 = require("../../templates");
15
+ const mjml_template_renderer_1 = require("../../templates/renderers/mjml.template-renderer");
17
16
  const type_guards_1 = require("../../utils/type-guards");
18
- // @ts-expect-error import is actually working
19
- const mjml2html = require("mjml");
20
- const mail_template_renderer_provider_1 = require("../mail-template-renderer.provider");
21
17
  const mail_template_renderer_1 = require("../mail-template.renderer");
18
+ (0, templates_1.configureTemplates)({ templateRenderers: [mjml_template_renderer_1.MjmlTemplateRenderer] });
22
19
  let MjmlMailTemplateRenderer = class MjmlMailTemplateRenderer extends mail_template_renderer_1.MailTemplateRenderer {
23
- constructor(rendererProvider) {
20
+ constructor(rendererProvider, mjmlTemplateRenderer) {
24
21
  super();
25
22
  this.rendererProvider = rendererProvider;
23
+ this.mjmlTemplateRenderer = mjmlTemplateRenderer;
26
24
  }
27
25
  canHandleType(type) {
28
- if (type == 'mjml') {
29
- return true;
30
- }
31
- if (!type.startsWith('mjml-')) {
32
- return false;
33
- }
34
- const parent = type.slice(5);
35
- return this.rendererProvider.has(parent);
26
+ return this.mjmlTemplateRenderer.canHandleType(type);
36
27
  }
37
28
  async render(template, context) {
38
- var _a;
39
- if (template.type.length > 4) {
40
- const parent = template.type.slice(5);
41
- const renderer = this.rendererProvider.get(parent);
42
- const { subject, html, text } = await renderer.render(Object.assign(Object.assign({}, template), { type: parent, options: (_a = template.options) === null || _a === void 0 ? void 0 : _a.preprocessorOptions }), context);
43
- const preprocessedTemplate = Object.assign(Object.assign({}, template), { type: 'mjml', subject,
29
+ var _a, _b, _c;
30
+ if (template.type == 'mjml') {
31
+ const mjmlTemplate = (0, type_guards_1.isDefined)(template.html) ? {
32
+ type: template.type,
33
+ template: template.html
34
+ } : undefined;
35
+ const html = (0, type_guards_1.isDefined)(mjmlTemplate)
36
+ ? await this.mjmlTemplateRenderer.render(mjmlTemplate)
37
+ : undefined;
38
+ return {
39
+ subject: template.subject,
44
40
  html,
45
- text });
46
- return this.render(preprocessedTemplate);
41
+ text: template.text
42
+ };
47
43
  }
48
- const html = (0, type_guards_1.isDefined)(template.html) ? mjml2html(template.html).html : undefined;
49
- return {
50
- subject: template.subject,
44
+ const parent = template.type.slice(5);
45
+ const renderer = this.rendererProvider.get(parent);
46
+ const subject = (0, type_guards_1.isDefined)(template.subject) ? await renderer.render({ type: parent, template: template.subject, options: (_a = template.options) === null || _a === void 0 ? void 0 : _a.preprocessorOptions }, context) : undefined;
47
+ const html = (0, type_guards_1.isDefined)(template.html) ? await renderer.render({ type: parent, template: template.html, options: (_b = template.options) === null || _b === void 0 ? void 0 : _b.preprocessorOptions }, context) : undefined;
48
+ const text = (0, type_guards_1.isDefined)(template.text) ? await renderer.render({ type: parent, template: template.text, options: (_c = template.options) === null || _c === void 0 ? void 0 : _c.preprocessorOptions }, context) : undefined;
49
+ const preprocessedTemplate = Object.assign(Object.assign({}, template), { type: 'mjml', subject,
51
50
  html,
52
- text: template.text
53
- };
51
+ text });
52
+ return this.render(preprocessedTemplate);
54
53
  }
55
54
  };
56
55
  MjmlMailTemplateRenderer = __decorate([
57
56
  (0, container_1.singleton)(),
58
- __param(0, (0, container_1.forwardRef)(() => mail_template_renderer_provider_1.MailTemplateRendererProvider)),
59
- __metadata("design:paramtypes", [mail_template_renderer_provider_1.MailTemplateRendererProvider])
57
+ __metadata("design:paramtypes", [templates_1.TemplateRendererProvider, mjml_template_renderer_1.MjmlTemplateRenderer])
60
58
  ], MjmlMailTemplateRenderer);
61
59
  exports.MjmlMailTemplateRenderer = MjmlMailTemplateRenderer;
62
60
  //# sourceMappingURL=mjml.mail-template-renderer.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mjml.mail-template-renderer.js","sourceRoot":"","sources":["../../../source/mail/template-renderers/mjml.mail-template-renderer.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,+CAAoD;AACpD,yDAAgD;AAChD,8CAA8C;AAC9C,kCAAkC;AAElC,wFAAkF;AAElF,sEAAiE;AAUjE,IAAa,wBAAwB,GAArC,MAAa,wBAAyB,SAAQ,6CAAsC;IAGlF,YAA4D,gBAA8C;QACxG,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;IAC3C,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,IAAI,IAAI,IAAI,MAAM,EAAE;YAClB,OAAO,IAAI,CAAC;SACb;QAED,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE;YAC7B,OAAO,KAAK,CAAC;SACd;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QAC7B,OAAO,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAC3C,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAA0B,EAAE,OAAgB;;QACvD,IAAI,QAAQ,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;YAC5B,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YAEnD,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,MAAM,QAAQ,CAAC,MAAM,iCAAM,QAAQ,KAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAA,QAAQ,CAAC,OAAO,0CAAE,mBAAmB,KAAI,OAAO,CAAC,CAAC;YAE9I,MAAM,oBAAoB,mCACrB,QAAQ,KACX,IAAI,EAAE,MAAM,EACZ,OAAO;gBACP,IAAI;gBACJ,IAAI,GACL,CAAC;YAEF,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;SAC1C;QAED,MAAM,IAAI,GAAG,IAAA,uBAAS,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC;QAElF,OAAO;YACL,OAAO,EAAE,QAAQ,CAAC,OAAO;YACzB,IAAI;YACJ,IAAI,EAAE,QAAQ,CAAC,IAAI;SACpB,CAAC;IACJ,CAAC;CACF,CAAA;AAhDY,wBAAwB;IADpC,IAAA,qBAAS,GAAE;IAIG,WAAA,IAAA,sBAAU,EAAC,GAAG,EAAE,CAAC,8DAA4B,CAAC,CAAA;qCAAmB,8DAA4B;GAH/F,wBAAwB,CAgDpC;AAhDY,4DAAwB"}
1
+ {"version":3,"file":"mjml.mail-template-renderer.js","sourceRoot":"","sources":["../../../source/mail/template-renderers/mjml.mail-template-renderer.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,+CAAwC;AACxC,+CAA2E;AAE3E,6FAAoF;AACpF,yDAAgD;AAEhD,sEAAiE;AAKjE,IAAA,8BAAkB,EAAC,EAAE,iBAAiB,EAAE,CAAC,6CAAoB,CAAC,EAAE,CAAC,CAAC;AAGlE,IAAa,wBAAwB,GAArC,MAAa,wBAAyB,SAAQ,6CAAsC;IAIlF,YAAY,gBAA0C,EAAE,oBAA0C;QAChG,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;QACzC,IAAI,CAAC,oBAAoB,GAAG,oBAAoB,CAAC;IACnD,CAAC;IAED,aAAa,CAAC,IAAY;QACxB,OAAO,IAAI,CAAC,oBAAoB,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,QAA0B,EAAE,OAAgB;;QACvD,IAAI,QAAQ,CAAC,IAAI,IAAI,MAAM,EAAE;YAC3B,MAAM,YAAY,GAA6B,IAAA,uBAAS,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACxE,IAAI,EAAE,QAAQ,CAAC,IAAI;gBACnB,QAAQ,EAAE,QAAQ,CAAC,IAAI;aACxB,CAAC,CAAC,CAAC,SAAS,CAAC;YAEd,MAAM,IAAI,GAAG,IAAA,uBAAS,EAAC,YAAY,CAAC;gBAClC,CAAC,CAAC,MAAM,IAAI,CAAC,oBAAoB,CAAC,MAAM,CAAC,YAAY,CAAC;gBACtD,CAAC,CAAC,SAAS,CAAC;YAEd,OAAO;gBACL,OAAO,EAAE,QAAQ,CAAC,OAAO;gBACzB,IAAI;gBACJ,IAAI,EAAE,QAAQ,CAAC,IAAI;aACpB,CAAC;SACH;QAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,OAAO,GAAG,IAAA,uBAAS,EAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAA,QAAQ,CAAC,OAAO,0CAAE,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACvL,MAAM,IAAI,GAAG,IAAA,uBAAS,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAA,QAAQ,CAAC,OAAO,0CAAE,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAC9K,MAAM,IAAI,GAAG,IAAA,uBAAS,EAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,QAAQ,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,MAAA,QAAQ,CAAC,OAAO,0CAAE,mBAAmB,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QAE9K,MAAM,oBAAoB,mCACrB,QAAQ,KACX,IAAI,EAAE,MAAM,EACZ,OAAO;YACP,IAAI;YACJ,IAAI,GACL,CAAC;QAEF,OAAO,IAAI,CAAC,MAAM,CAAC,oBAAoB,CAAC,CAAC;IAC3C,CAAC;CACF,CAAA;AAlDY,wBAAwB;IADpC,IAAA,qBAAS,GAAE;qCAKoB,oCAAwB,EAAwB,6CAAoB;GAJvF,wBAAwB,CAkDpC;AAlDY,4DAAwB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tstdl/base",
3
- "version": "0.71.54",
3
+ "version": "0.71.55",
4
4
  "author": "Patrick Hein",
5
5
  "publishConfig": {
6
6
  "access": "public"
@@ -17,7 +17,8 @@
17
17
  "dependencies": {
18
18
  "luxon": "^2",
19
19
  "reflect-metadata": "^0.1",
20
- "rxjs": "^7"
20
+ "rxjs": "^7",
21
+ "type-fest": "^2"
21
22
  },
22
23
  "devDependencies": {
23
24
  "@types/chroma-js": "^2.1",
@@ -28,8 +29,8 @@
28
29
  "@types/node": ">=16",
29
30
  "@types/nodemailer": "^6.4.4",
30
31
  "@types/yup": "0.29",
31
- "@typescript-eslint/eslint-plugin": "5.27",
32
- "@typescript-eslint/parser": "5.27",
32
+ "@typescript-eslint/eslint-plugin": "5.28",
33
+ "@typescript-eslint/parser": "5.28",
33
34
  "eslint": "8.17",
34
35
  "ttypescript": "1.5",
35
36
  "typedoc": "0.22",
@@ -48,8 +49,9 @@
48
49
  "mjml": "^4.12",
49
50
  "mongodb": "^4.7",
50
51
  "nodemailer": "^6.7",
52
+ "puppeteer": "^14.4.0",
51
53
  "superstruct": "^0.16",
52
- "undici": "^5.4",
54
+ "undici": "^5.5",
53
55
  "urlpattern-polyfill": "^4.0"
54
56
  },
55
57
  "peerDependenciesMeta": {
@@ -0,0 +1,9 @@
1
+ import { TemplateService } from "../templates";
2
+ export declare class PdfService {
3
+ private readonly templateService;
4
+ constructor(templateService: TemplateService);
5
+ renderHtml(html: string): Promise<Uint8Array>;
6
+ renderTemplate(key: string, templateContext: object): Promise<Uint8Array>;
7
+ renderUrl(url: string): Promise<Uint8Array>;
8
+ private render;
9
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.PdfService = void 0;
13
+ const container_1 = require("../container");
14
+ const templates_1 = require("../templates");
15
+ const puppeteer = require("puppeteer");
16
+ let PdfService = class PdfService {
17
+ constructor(templateService) {
18
+ this.templateService = templateService;
19
+ }
20
+ async renderHtml(html) {
21
+ return this.render(async (page) => page.setContent(html, { waitUntil: 'networkidle2' }));
22
+ }
23
+ async renderTemplate(key, templateContext) {
24
+ const html = await this.templateService.render(key, templateContext);
25
+ return this.renderHtml(html);
26
+ }
27
+ async renderUrl(url) {
28
+ return this.render(async (page) => page.goto(url, { waitUntil: 'networkidle2' }));
29
+ }
30
+ async render(handler) {
31
+ const browser = await puppeteer.launch();
32
+ try {
33
+ const page = await browser.newPage();
34
+ await handler(page);
35
+ const result = await page.pdf({ format: 'a4' });
36
+ return result;
37
+ }
38
+ finally {
39
+ await browser.close();
40
+ }
41
+ }
42
+ };
43
+ PdfService = __decorate([
44
+ (0, container_1.singleton)(),
45
+ __metadata("design:paramtypes", [templates_1.TemplateService])
46
+ ], PdfService);
47
+ exports.PdfService = PdfService;
48
+ //# sourceMappingURL=pdf.service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pdf.service.js","sourceRoot":"","sources":["../../source/pdf/pdf.service.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,4CAAwC;AACxC,4CAA8C;AAC9C,uCAAuC;AAGvC,IAAa,UAAU,GAAvB,MAAa,UAAU;IAGrB,YAAY,eAAgC;QAC1C,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;IACzC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,IAAY;QAC3B,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IAC3F,CAAC;IAED,KAAK,CAAC,cAAc,CAAC,GAAW,EAAE,eAAuB;QACvD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;QACrE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,GAAW;QACzB,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC;IAEO,KAAK,CAAC,MAAM,CAAC,OAA0C;QAC7D,MAAM,OAAO,GAAG,MAAM,SAAS,CAAC,MAAM,EAAE,CAAC;QAEzC,IAAI;YACF,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;YACrC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;YACpB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;YAChD,OAAO,MAAM,CAAC;SACf;gBACO;YACN,MAAM,OAAO,CAAC,KAAK,EAAE,CAAC;SACvB;IACH,CAAC;CACF,CAAA;AAjCY,UAAU;IADtB,IAAA,qBAAS,GAAE;qCAImB,2BAAe;GAHjC,UAAU,CAiCtB;AAjCY,gCAAU"}