@pixelplex/mail-service 0.1.21 → 0.2.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 (111) hide show
  1. package/.gitlab-ci.yml +1 -25
  2. package/LICENSE.md +1 -1
  3. package/README.md +76 -111
  4. package/dist/constants/index.d.ts +1 -0
  5. package/dist/constants/index.js +18 -0
  6. package/dist/constants/index.js.map +1 -0
  7. package/dist/constants/mail.constants.d.ts +10 -0
  8. package/dist/constants/mail.constants.js +16 -0
  9. package/dist/constants/mail.constants.js.map +1 -0
  10. package/dist/decorators/index.d.ts +2 -0
  11. package/dist/decorators/index.js +19 -0
  12. package/dist/decorators/index.js.map +1 -0
  13. package/dist/decorators/inject-gateways.decorator.d.ts +2 -0
  14. package/dist/decorators/inject-gateways.decorator.js +10 -0
  15. package/dist/decorators/inject-gateways.decorator.js.map +1 -0
  16. package/dist/decorators/inject-options.decorator.d.ts +3 -0
  17. package/dist/decorators/inject-options.decorator.js +14 -0
  18. package/dist/decorators/inject-options.decorator.js.map +1 -0
  19. package/dist/factories/gateway.factory.d.ts +4 -0
  20. package/dist/factories/gateway.factory.js +17 -0
  21. package/dist/factories/gateway.factory.js.map +1 -0
  22. package/dist/factories/index.d.ts +1 -0
  23. package/dist/factories/index.js +18 -0
  24. package/dist/factories/index.js.map +1 -0
  25. package/dist/gateways/console.gateway.d.ts +6 -0
  26. package/dist/{connect/app.module.js → gateways/console.gateway.js} +14 -13
  27. package/dist/gateways/console.gateway.js.map +1 -0
  28. package/dist/gateways/index.d.ts +3 -0
  29. package/dist/gateways/index.js +20 -0
  30. package/dist/gateways/index.js.map +1 -0
  31. package/dist/gateways/slack.gateway.d.ts +8 -0
  32. package/dist/gateways/slack.gateway.js +40 -0
  33. package/dist/gateways/slack.gateway.js.map +1 -0
  34. package/dist/gateways/smtp.gateway.d.ts +9 -0
  35. package/dist/gateways/smtp.gateway.js +43 -0
  36. package/dist/gateways/smtp.gateway.js.map +1 -0
  37. package/dist/index.d.ts +7 -3
  38. package/dist/index.js +21 -5
  39. package/dist/index.js.map +1 -1
  40. package/dist/interfaces/gateway.interface.d.ts +4 -0
  41. package/dist/interfaces/gateway.interface.js +3 -0
  42. package/dist/interfaces/gateway.interface.js.map +1 -0
  43. package/dist/interfaces/index.d.ts +1 -0
  44. package/dist/interfaces/index.js +18 -0
  45. package/dist/interfaces/index.js.map +1 -0
  46. package/dist/mail.module.d.ts +5 -0
  47. package/dist/mail.module.js +68 -0
  48. package/dist/mail.module.js.map +1 -0
  49. package/dist/services/index.d.ts +1 -0
  50. package/dist/services/index.js +18 -0
  51. package/dist/services/index.js.map +1 -0
  52. package/dist/services/mail-sender.service.d.ts +11 -0
  53. package/dist/services/mail-sender.service.js +84 -0
  54. package/dist/services/mail-sender.service.js.map +1 -0
  55. package/dist/tsconfig.build.tsbuildinfo +1 -8158
  56. package/dist/types/decorators.types.d.ts +2 -0
  57. package/dist/types/decorators.types.js +3 -0
  58. package/dist/types/decorators.types.js.map +1 -0
  59. package/dist/types/gateway.class.d.ts +4 -0
  60. package/dist/types/gateway.class.js +3 -0
  61. package/dist/types/gateway.class.js.map +1 -0
  62. package/dist/types/index.d.ts +6 -0
  63. package/dist/types/index.js +23 -0
  64. package/dist/types/index.js.map +1 -0
  65. package/dist/types/options.types.d.ts +13 -0
  66. package/dist/types/options.types.js +3 -0
  67. package/dist/types/options.types.js.map +1 -0
  68. package/dist/types/slack-options.types.d.ts +3 -0
  69. package/dist/types/slack-options.types.js +3 -0
  70. package/dist/types/slack-options.types.js.map +1 -0
  71. package/dist/types/smtp-options.types.d.ts +7 -0
  72. package/dist/types/smtp-options.types.js +3 -0
  73. package/dist/types/smtp-options.types.js.map +1 -0
  74. package/dist/types/templates.types.d.ts +10 -0
  75. package/dist/types/templates.types.js +3 -0
  76. package/dist/types/templates.types.js.map +1 -0
  77. package/dist/utils/connection.utils.d.ts +4 -0
  78. package/dist/utils/connection.utils.js +17 -0
  79. package/dist/utils/connection.utils.js.map +1 -0
  80. package/dist/utils/index.d.ts +2 -0
  81. package/dist/utils/index.js +19 -0
  82. package/dist/utils/index.js.map +1 -0
  83. package/dist/utils/types.utils.d.ts +1 -0
  84. package/dist/utils/types.utils.js +3 -0
  85. package/dist/utils/types.utils.js.map +1 -0
  86. package/package.json +29 -38
  87. package/tsconfig.json +4 -1
  88. package/.dockerignore +0 -5
  89. package/dist/connect/app.module.d.ts +0 -2
  90. package/dist/connect/app.module.js.map +0 -1
  91. package/dist/connect/app.service.d.ts +0 -20
  92. package/dist/connect/app.service.js +0 -61
  93. package/dist/connect/app.service.js.map +0 -1
  94. package/dist/connect/retry.d.ts +0 -2
  95. package/dist/connect/retry.js +0 -13
  96. package/dist/connect/retry.js.map +0 -1
  97. package/dist/connection.d.ts +0 -3
  98. package/dist/connection.js +0 -33
  99. package/dist/connection.js.map +0 -1
  100. package/dist/main.d.ts +0 -1
  101. package/dist/main.js +0 -23
  102. package/dist/main.js.map +0 -1
  103. package/dist/service/app.controller.d.ts +0 -9
  104. package/dist/service/app.controller.js +0 -59
  105. package/dist/service/app.controller.js.map +0 -1
  106. package/dist/service/app.module.d.ts +0 -2
  107. package/dist/service/app.module.js +0 -23
  108. package/dist/service/app.module.js.map +0 -1
  109. package/dist/service/sender.service.d.ts +0 -7
  110. package/dist/service/sender.service.js +0 -63
  111. package/dist/service/sender.service.js.map +0 -1
@@ -1,23 +0,0 @@
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
- Object.defineProperty(exports, "__esModule", { value: true });
9
- exports.AppModule = void 0;
10
- const common_1 = require("@nestjs/common");
11
- const app_controller_1 = require("./app.controller");
12
- const sender_service_1 = require("./sender.service");
13
- let AppModule = class AppModule {
14
- };
15
- AppModule = __decorate([
16
- common_1.Module({
17
- imports: [],
18
- controllers: [app_controller_1.AppController],
19
- providers: [sender_service_1.SenderService],
20
- })
21
- ], AppModule);
22
- exports.AppModule = AppModule;
23
- //# sourceMappingURL=app.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/service/app.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAAwC;AACxC,qDAAiD;AACjD,qDAAiD;AAOjD,IAAa,SAAS,GAAtB,MAAa,SAAS;CAAG,CAAA;AAAZ,SAAS;IALrB,eAAM,CAAC;QACN,OAAO,EAAE,EAAE;QACX,WAAW,EAAE,CAAC,8BAAa,CAAC;QAC5B,SAAS,EAAE,CAAC,8BAAa,CAAC;KAC3B,CAAC;GACW,SAAS,CAAG;AAAZ,8BAAS"}
@@ -1,7 +0,0 @@
1
- export declare class SenderService {
2
- private transporter;
3
- private readonly logger;
4
- onModuleInit(): Promise<void>;
5
- connect(): Promise<void>;
6
- sendMail(to: string, template: string, context?: {}): Promise<void>;
7
- }
@@ -1,63 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SenderService = void 0;
4
- const fs = require("fs");
5
- const common_1 = require("@nestjs/common");
6
- const config_1 = require("config");
7
- const Handlebars = require("handlebars");
8
- const nodemailer_1 = require("nodemailer");
9
- const hbs = require("nodemailer-express-handlebars");
10
- const hbsOptions = {
11
- viewEngine: {
12
- layoutsDir: 'templates/',
13
- },
14
- viewPath: 'templates/',
15
- };
16
- class SenderService {
17
- constructor() {
18
- this.logger = new common_1.Logger('Mail::SenderService');
19
- }
20
- async onModuleInit() {
21
- await this.connect();
22
- }
23
- async connect() {
24
- const isEthereal = config_1.MAIL_SERVICE.SMTP.HOST === 'smtp.ethereal.email';
25
- if (!config_1.MAIL_SERVICE.SMTP.PASSWORD && !isEthereal) {
26
- throw new Error(`[NodemailerConnector Error] Password wasn\'t provided.
27
- You should provide the password in ENV Variable or in local.json config file`);
28
- }
29
- let testAccount;
30
- if (isEthereal) {
31
- this.logger.warn('Run in ethereal.email mode');
32
- testAccount = await nodemailer_1.createTestAccount();
33
- }
34
- this.transporter = nodemailer_1.createTransport({
35
- host: config_1.MAIL_SERVICE.SMTP.HOST,
36
- port: config_1.MAIL_SERVICE.SMTP.PORT,
37
- auth: {
38
- user: config_1.MAIL_SERVICE.SMTP.USERNAME || testAccount.user,
39
- pass: config_1.MAIL_SERVICE.SMTP.PASSWORD || testAccount.pass,
40
- },
41
- });
42
- this.transporter.use('compile', hbs(hbsOptions));
43
- this.logger.log('Connected');
44
- }
45
- async sendMail(to, template, context = {}) {
46
- this.logger.debug(`New message to "${to}" with template "${template}"`);
47
- const subjectTpl = Handlebars.compile(fs.readFileSync(`templates/${template}.subject.handlebars`).toString());
48
- const info = await this.transporter.sendMail({
49
- from: config_1.MAIL_SERVICE.SMTP.SENDER,
50
- to,
51
- subject: subjectTpl(context),
52
- template,
53
- context,
54
- });
55
- this.logger.debug(`Message sent: ${info.messageId}, ${info.response}`);
56
- const isEthereal = config_1.MAIL_SERVICE.SMTP.HOST === 'smtp.ethereal.email';
57
- if (isEthereal) {
58
- this.logger.debug(`Preview URL: ${nodemailer_1.getTestMessageUrl(info)}`);
59
- }
60
- }
61
- }
62
- exports.SenderService = SenderService;
63
- //# sourceMappingURL=sender.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sender.service.js","sourceRoot":"","sources":["../../src/service/sender.service.ts"],"names":[],"mappings":";;;AAAA,yBAAyB;AACzB,2CAAwC;AACxC,mCAAsC;AACtC,yCAAyC;AACzC,2CAAgG;AAChG,qDAAqD;AAErD,MAAM,UAAU,GAAG;IACjB,UAAU,EAAE;QACV,UAAU,EAAE,YAAY;KACzB;IACD,QAAQ,EAAE,YAAY;CACvB,CAAC;AAEF,MAAa,aAAa;IAA1B;QAEmB,WAAM,GAAW,IAAI,eAAM,CAAC,qBAAqB,CAAC,CAAC;IAgDtE,CAAC;IA9CC,KAAK,CAAC,YAAY;QAChB,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC;IACvB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,UAAU,GAAG,qBAAY,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC;QACpE,IAAI,CAAC,qBAAY,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,UAAU,EAAE;YAC9C,MAAM,IAAI,KAAK,CACb;qFAC6E,CAC9E,CAAC;SACH;QAED,IAAI,WAAW,CAAC;QAChB,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,4BAA4B,CAAC,CAAC;YAC/C,WAAW,GAAG,MAAM,8BAAiB,EAAE,CAAC;SACzC;QACD,IAAI,CAAC,WAAW,GAAG,4BAAe,CAAC;YACjC,IAAI,EAAE,qBAAY,CAAC,IAAI,CAAC,IAAI;YAC5B,IAAI,EAAE,qBAAY,CAAC,IAAI,CAAC,IAAI;YAC5B,IAAI,EAAE;gBACJ,IAAI,EAAE,qBAAY,CAAC,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI;gBACpD,IAAI,EAAE,qBAAY,CAAC,IAAI,CAAC,QAAQ,IAAI,WAAW,CAAC,IAAI;aACrD;SACF,CAAC,CAAC;QACH,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,SAAS,EAAE,GAAG,CAAC,UAAU,CAAC,CAAC,CAAC;QACjD,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,QAAQ,CAAC,EAAU,EAAE,QAAgB,EAAE,OAAO,GAAG,EAAE;QACvD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,mBAAmB,EAAE,oBAAoB,QAAQ,GAAG,CAAC,CAAC;QACxE,MAAM,UAAU,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,YAAY,CAAC,aAAa,QAAQ,qBAAqB,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC;QAC9G,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;YAC3C,IAAI,EAAE,qBAAY,CAAC,IAAI,CAAC,MAAM;YAC9B,EAAE;YACF,OAAO,EAAE,UAAU,CAAC,OAAO,CAAC;YAC5B,QAAQ;YACR,OAAO;SACR,CAAC,CAAC;QACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,iBAAiB,IAAI,CAAC,SAAS,KAAK,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;QACvE,MAAM,UAAU,GAAG,qBAAY,CAAC,IAAI,CAAC,IAAI,KAAK,qBAAqB,CAAC;QACpE,IAAI,UAAU,EAAE;YACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,gBAAgB,8BAAiB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;SAC9D;IACH,CAAC;CACF;AAlDD,sCAkDC"}