@tstdl/base 0.71.54 → 0.71.57

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 (87) hide show
  1. package/data-structures/index.d.ts +1 -0
  2. package/data-structures/index.js +1 -0
  3. package/data-structures/index.js.map +1 -1
  4. package/data-structures/set.d.ts +18 -0
  5. package/data-structures/set.js +59 -0
  6. package/data-structures/set.js.map +1 -0
  7. package/disposable/disposable.js +2 -2
  8. package/disposable/disposable.js.map +1 -1
  9. package/examples/mail/basic.d.ts +1 -0
  10. package/examples/mail/basic.js +33 -0
  11. package/examples/mail/basic.js.map +1 -0
  12. package/examples/pdf/basic.d.ts +1 -0
  13. package/examples/pdf/basic.js +23 -0
  14. package/examples/pdf/basic.js.map +1 -0
  15. package/image-service/image-service.d.ts +1 -1
  16. package/mail/mail.service.d.ts +1 -0
  17. package/mail/mail.service.js +7 -1
  18. package/mail/mail.service.js.map +1 -1
  19. package/mail/models/mail-log.model.d.ts +3 -3
  20. package/mail/models/mail-template.model.d.ts +0 -1
  21. package/mail/template-providers/file-mail-template.provider.d.ts +4 -6
  22. package/mail/template-providers/file-mail-template.provider.js +3 -27
  23. package/mail/template-providers/file-mail-template.provider.js.map +1 -1
  24. package/mail/template-providers/memory-mail-template.provider.d.ts +3 -5
  25. package/mail/template-providers/memory-mail-template.provider.js +2 -14
  26. package/mail/template-providers/memory-mail-template.provider.js.map +1 -1
  27. package/mail/template-renderers/handlebars.mail-template-renderer.d.ts +6 -4
  28. package/mail/template-renderers/handlebars.mail-template-renderer.js +25 -10
  29. package/mail/template-renderers/handlebars.mail-template-renderer.js.map +1 -1
  30. package/mail/template-renderers/mjml.mail-template-renderer.d.ts +6 -7
  31. package/mail/template-renderers/mjml.mail-template-renderer.js +28 -30
  32. package/mail/template-renderers/mjml.mail-template-renderer.js.map +1 -1
  33. package/package.json +7 -5
  34. package/pdf/index.d.ts +1 -0
  35. package/pdf/index.js +18 -0
  36. package/pdf/index.js.map +1 -0
  37. package/pdf/pdf.service.d.ts +17 -0
  38. package/pdf/pdf.service.js +62 -0
  39. package/pdf/pdf.service.js.map +1 -0
  40. package/pool/index.d.ts +1 -0
  41. package/pool/index.js +18 -0
  42. package/pool/index.js.map +1 -0
  43. package/pool/pool.d.ts +24 -0
  44. package/pool/pool.js +84 -0
  45. package/pool/pool.js.map +1 -0
  46. package/templates/index.d.ts +7 -0
  47. package/templates/index.js +24 -0
  48. package/templates/index.js.map +1 -0
  49. package/templates/module.d.ts +12 -0
  50. package/templates/module.js +24 -0
  51. package/templates/module.js.map +1 -0
  52. package/templates/providers/file-template.provider.base.d.ts +12 -0
  53. package/templates/providers/file-template.provider.base.js +43 -0
  54. package/templates/providers/file-template.provider.base.js.map +1 -0
  55. package/templates/providers/file-template.provider.d.ts +21 -0
  56. package/templates/providers/file-template.provider.js +44 -0
  57. package/templates/providers/file-template.provider.js.map +1 -0
  58. package/templates/providers/memory-template.provider.base.d.ts +9 -0
  59. package/templates/providers/memory-template.provider.base.js +35 -0
  60. package/templates/providers/memory-template.provider.base.js.map +1 -0
  61. package/templates/providers/memory-template.provider.d.ts +4 -0
  62. package/templates/providers/memory-template.provider.js +18 -0
  63. package/templates/providers/memory-template.provider.js.map +1 -0
  64. package/templates/renderers/handlebars.template-renderer.d.ts +11 -0
  65. package/templates/renderers/handlebars.template-renderer.js +27 -0
  66. package/templates/renderers/handlebars.template-renderer.js.map +1 -0
  67. package/templates/renderers/mjml.template-renderer.d.ts +15 -0
  68. package/templates/renderers/mjml.template-renderer.js +54 -0
  69. package/templates/renderers/mjml.template-renderer.js.map +1 -0
  70. package/templates/template-renderer.provider.d.ts +8 -0
  71. package/templates/template-renderer.provider.js +60 -0
  72. package/templates/template-renderer.provider.js.map +1 -0
  73. package/templates/template.model.d.ts +5 -0
  74. package/templates/template.model.js +3 -0
  75. package/templates/template.model.js.map +1 -0
  76. package/templates/template.provider.d.ts +4 -0
  77. package/templates/template.provider.js +7 -0
  78. package/templates/template.provider.js.map +1 -0
  79. package/templates/template.renderer.d.ts +6 -0
  80. package/templates/template.renderer.js +7 -0
  81. package/templates/template.renderer.js.map +1 -0
  82. package/templates/template.service.d.ts +11 -0
  83. package/templates/template.service.js +37 -0
  84. package/templates/template.service.js.map +1 -0
  85. package/templates/tokens.d.ts +3 -0
  86. package/templates/tokens.js +6 -0
  87. package/templates/tokens.js.map +1 -0
@@ -5,5 +5,6 @@ export * from './index-out-of-bounds.error';
5
5
  export * from './linked-list';
6
6
  export * from './list';
7
7
  export * from './multi-key-map';
8
+ export * from './set';
8
9
  export * from './sorted-array-list';
9
10
  export * from './weak-ref-map';
@@ -21,6 +21,7 @@ __exportStar(require("./index-out-of-bounds.error"), exports);
21
21
  __exportStar(require("./linked-list"), exports);
22
22
  __exportStar(require("./list"), exports);
23
23
  __exportStar(require("./multi-key-map"), exports);
24
+ __exportStar(require("./set"), exports);
24
25
  __exportStar(require("./sorted-array-list"), exports);
25
26
  __exportStar(require("./weak-ref-map"), exports);
26
27
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/data-structures/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,oDAAkC;AAClC,+CAA6B;AAC7B,8DAA4C;AAC5C,gDAA8B;AAC9B,yCAAuB;AACvB,kDAAgC;AAChC,sDAAoC;AACpC,iDAA+B"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../source/data-structures/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,+CAA6B;AAC7B,oDAAkC;AAClC,+CAA6B;AAC7B,8DAA4C;AAC5C,gDAA8B;AAC9B,yCAAuB;AACvB,kDAAgC;AAChC,wCAAsB;AACtB,sDAAoC;AACpC,iDAA+B"}
@@ -0,0 +1,18 @@
1
+ import { Collection } from './collection';
2
+ export declare class Set<T> extends Collection<T, Set<T>> implements globalThis.Set<T> {
3
+ private readonly backingSet;
4
+ readonly [Symbol.toStringTag]: string;
5
+ constructor(items?: Iterable<T>);
6
+ add(item: T): this;
7
+ addMany(items: Iterable<T>): void;
8
+ clone(): Set<T>;
9
+ items(): IterableIterator<T>;
10
+ delete(item: T): boolean;
11
+ forEach(callbackfn: (value: T, value2: T, set: globalThis.Set<T>) => void, thisArg?: any): void;
12
+ has(item: T): boolean;
13
+ entries(): IterableIterator<[T, T]>;
14
+ keys(): IterableIterator<T>;
15
+ values(): IterableIterator<T>;
16
+ protected _clear(): void;
17
+ private updateSize;
18
+ }
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+ var _a;
3
+ Object.defineProperty(exports, "__esModule", { value: true });
4
+ exports.Set = void 0;
5
+ const collection_1 = require("./collection");
6
+ class Set extends collection_1.Collection {
7
+ constructor(items) {
8
+ super();
9
+ this[_a] = 'Set';
10
+ this.backingSet = new globalThis.Set(items);
11
+ this.updateSize();
12
+ }
13
+ add(item) {
14
+ this.backingSet.add(item);
15
+ this.updateSize();
16
+ return this;
17
+ }
18
+ addMany(items) {
19
+ for (const item of items) {
20
+ this.backingSet.add(item);
21
+ }
22
+ this.updateSize();
23
+ }
24
+ clone() {
25
+ return new Set(this);
26
+ }
27
+ items() {
28
+ return this.backingSet.values();
29
+ }
30
+ delete(item) {
31
+ const result = this.backingSet.delete(item);
32
+ this.updateSize();
33
+ return result;
34
+ }
35
+ forEach(callbackfn, thisArg) {
36
+ this.backingSet.forEach(callbackfn, thisArg);
37
+ }
38
+ has(item) {
39
+ return this.backingSet.has(item);
40
+ }
41
+ entries() {
42
+ return this.backingSet.entries();
43
+ }
44
+ keys() {
45
+ return this.backingSet.keys();
46
+ }
47
+ values() {
48
+ return this.backingSet.values();
49
+ }
50
+ _clear() {
51
+ this.backingSet.clear();
52
+ }
53
+ updateSize() {
54
+ this.setSize(this.backingSet.size);
55
+ }
56
+ }
57
+ exports.Set = Set;
58
+ _a = Symbol.toStringTag;
59
+ //# sourceMappingURL=set.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"set.js","sourceRoot":"","sources":["../../source/data-structures/set.ts"],"names":[],"mappings":";;;;AAAA,6CAA0C;AAE1C,MAAa,GAAO,SAAQ,uBAAqB;IAI/C,YAAY,KAAmB;QAC7B,KAAK,EAAE,CAAC;QAHD,QAAoB,GAAW,KAAK,CAAC;QAK5C,IAAI,CAAC,UAAU,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,GAAG,CAAC,IAAO;QACT,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1B,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,OAAO,IAAI,CAAC;IACd,CAAC;IAED,OAAO,CAAC,KAAkB;QACxB,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE;YACxB,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;SAC3B;QAED,IAAI,CAAC,UAAU,EAAE,CAAC;IACpB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IACvB,CAAC;IAED,KAAK;QACH,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,IAAO;QACZ,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,UAAU,EAAE,CAAC;QAElB,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,OAAO,CAAC,UAAiE,EAAE,OAAa;QACtF,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,GAAG,CAAC,IAAO;QACT,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACnC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;IACnC,CAAC;IAED,IAAI;QACF,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IAChC,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;IAClC,CAAC;IAES,MAAM;QACd,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;IAC1B,CAAC;IAEO,UAAU;QAChB,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACF;AApED,kBAoEC;KAlEW,MAAM,CAAC,WAAW"}
@@ -5,11 +5,11 @@ const type_guards_1 = require("../utils/type-guards");
5
5
  exports.dispose = Symbol('dispose');
6
6
  exports.disposeAsync = Symbol('disposeAsync');
7
7
  function isDisposable(object) {
8
- return (0, type_guards_1.isObject)(object) && (0, type_guards_1.isFunction)(object[exports.dispose]);
8
+ return (0, type_guards_1.isFunction)(object === null || object === void 0 ? void 0 : object[exports.dispose]);
9
9
  }
10
10
  exports.isDisposable = isDisposable;
11
11
  function isAsyncDisposable(object) {
12
- return (0, type_guards_1.isObject)(object) && (0, type_guards_1.isFunction)(object[exports.disposeAsync]);
12
+ return (0, type_guards_1.isFunction)(object === null || object === void 0 ? void 0 : object[exports.disposeAsync]);
13
13
  }
14
14
  exports.isAsyncDisposable = isAsyncDisposable;
15
15
  //# sourceMappingURL=disposable.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"disposable.js","sourceRoot":"","sources":["../../source/disposable/disposable.ts"],"names":[],"mappings":";;;AAAA,sDAA2D;AAE9C,QAAA,OAAO,GAAkB,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3C,QAAA,YAAY,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAC;AAUlE,SAAgB,YAAY,CAAC,MAAW;IACtC,OAAO,IAAA,sBAAQ,EAAC,MAAM,CAAC,IAAI,IAAA,wBAAU,EAAE,MAAqB,CAAC,eAAO,CAAC,CAAC,CAAC;AACzE,CAAC;AAFD,oCAEC;AAED,SAAgB,iBAAiB,CAAC,MAAW;IAC3C,OAAO,IAAA,sBAAQ,EAAC,MAAM,CAAC,IAAI,IAAA,wBAAU,EAAE,MAA0B,CAAC,oBAAY,CAAC,CAAC,CAAC;AACnF,CAAC;AAFD,8CAEC"}
1
+ {"version":3,"file":"disposable.js","sourceRoot":"","sources":["../../source/disposable/disposable.ts"],"names":[],"mappings":";;;AAAA,sDAAiD;AAEpC,QAAA,OAAO,GAAkB,MAAM,CAAC,SAAS,CAAC,CAAC;AAC3C,QAAA,YAAY,GAAkB,MAAM,CAAC,cAAc,CAAC,CAAC;AAUlE,SAAgB,YAAY,CAAC,MAAW;IACtC,OAAO,IAAA,wBAAU,EAAE,MAAiC,aAAjC,MAAM,uBAAN,MAAM,CAA8B,eAAO,CAAC,CAAC,CAAC;AACnE,CAAC;AAFD,oCAEC;AAED,SAAgB,iBAAiB,CAAC,MAAW;IAC3C,OAAO,IAAA,wBAAU,EAAE,MAAsC,aAAtC,MAAM,uBAAN,MAAM,CAAmC,oBAAY,CAAC,CAAC,CAAC;AAC7E,CAAC;AAFD,8CAEC"}
@@ -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":"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"}
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
  }