@pixelplex/mail-service 0.1.22 → 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.
- package/.gitlab-ci.yml +1 -25
- package/LICENSE.md +1 -1
- package/README.md +75 -136
- package/dist/constants/index.d.ts +1 -0
- package/dist/constants/index.js +18 -0
- package/dist/constants/index.js.map +1 -0
- package/dist/constants/mail.constants.d.ts +10 -0
- package/dist/constants/mail.constants.js +16 -0
- package/dist/constants/mail.constants.js.map +1 -0
- package/dist/decorators/index.d.ts +2 -0
- package/dist/decorators/index.js +19 -0
- package/dist/decorators/index.js.map +1 -0
- package/dist/decorators/inject-gateways.decorator.d.ts +2 -0
- package/dist/decorators/inject-gateways.decorator.js +10 -0
- package/dist/decorators/inject-gateways.decorator.js.map +1 -0
- package/dist/decorators/inject-options.decorator.d.ts +3 -0
- package/dist/decorators/inject-options.decorator.js +14 -0
- package/dist/decorators/inject-options.decorator.js.map +1 -0
- package/dist/factories/gateway.factory.d.ts +4 -0
- package/dist/factories/gateway.factory.js +17 -0
- package/dist/factories/gateway.factory.js.map +1 -0
- package/dist/factories/index.d.ts +1 -0
- package/dist/factories/index.js +18 -0
- package/dist/factories/index.js.map +1 -0
- package/dist/gateways/console.gateway.d.ts +6 -0
- package/dist/{connect/app.module.js → gateways/console.gateway.js} +13 -17
- package/dist/gateways/console.gateway.js.map +1 -0
- package/dist/gateways/index.d.ts +3 -0
- package/dist/gateways/index.js +20 -0
- package/dist/gateways/index.js.map +1 -0
- package/dist/gateways/slack.gateway.d.ts +8 -0
- package/dist/gateways/slack.gateway.js +40 -0
- package/dist/gateways/slack.gateway.js.map +1 -0
- package/dist/gateways/smtp.gateway.d.ts +9 -0
- package/dist/gateways/smtp.gateway.js +43 -0
- package/dist/gateways/smtp.gateway.js.map +1 -0
- package/dist/index.d.ts +7 -4
- package/dist/index.js +21 -7
- package/dist/index.js.map +1 -1
- package/dist/interfaces/gateway.interface.d.ts +4 -0
- package/dist/interfaces/gateway.interface.js +3 -0
- package/dist/interfaces/gateway.interface.js.map +1 -0
- package/dist/interfaces/index.d.ts +1 -0
- package/dist/interfaces/index.js +18 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/mail.module.d.ts +5 -0
- package/dist/mail.module.js +68 -0
- package/dist/mail.module.js.map +1 -0
- package/dist/services/index.d.ts +1 -0
- package/dist/services/index.js +18 -0
- package/dist/services/index.js.map +1 -0
- package/dist/services/mail-sender.service.d.ts +11 -0
- package/dist/services/mail-sender.service.js +84 -0
- package/dist/services/mail-sender.service.js.map +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -8211
- package/dist/types/decorators.types.d.ts +2 -0
- package/dist/types/decorators.types.js +3 -0
- package/dist/types/decorators.types.js.map +1 -0
- package/dist/types/gateway.class.d.ts +4 -0
- package/dist/types/gateway.class.js +3 -0
- package/dist/types/gateway.class.js.map +1 -0
- package/dist/types/index.d.ts +6 -0
- package/dist/types/index.js +23 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/options.types.d.ts +13 -0
- package/dist/types/options.types.js +3 -0
- package/dist/types/options.types.js.map +1 -0
- package/dist/types/slack-options.types.d.ts +3 -0
- package/dist/types/slack-options.types.js +3 -0
- package/dist/types/slack-options.types.js.map +1 -0
- package/dist/types/smtp-options.types.d.ts +7 -0
- package/dist/types/smtp-options.types.js +3 -0
- package/dist/types/smtp-options.types.js.map +1 -0
- package/dist/types/templates.types.d.ts +10 -0
- package/dist/types/templates.types.js +3 -0
- package/dist/types/templates.types.js.map +1 -0
- package/dist/utils/connection.utils.d.ts +4 -0
- package/dist/utils/connection.utils.js +17 -0
- package/dist/utils/connection.utils.js.map +1 -0
- package/dist/utils/index.d.ts +2 -0
- package/dist/utils/index.js +19 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/types.utils.d.ts +1 -0
- package/dist/utils/types.utils.js +3 -0
- package/dist/utils/types.utils.js.map +1 -0
- package/package.json +29 -38
- package/tsconfig.json +4 -1
- package/.dockerignore +0 -5
- package/dist/connect/app.module.d.ts +0 -4
- package/dist/connect/app.module.js.map +0 -1
- package/dist/connect/retry.d.ts +0 -2
- package/dist/connect/retry.js +0 -13
- package/dist/connect/retry.js.map +0 -1
- package/dist/main.d.ts +0 -1
- package/dist/main.js +0 -24
- package/dist/main.js.map +0 -1
- package/dist/service/app.module.d.ts +0 -4
- package/dist/service/app.module.js +0 -29
- package/dist/service/app.module.js.map +0 -1
- package/dist/service/sender.service.d.ts +0 -7
- package/dist/service/sender.service.js +0 -63
- package/dist/service/sender.service.js.map +0 -1
- package/dist/transports/rmq/app.controller.d.ts +0 -9
- package/dist/transports/rmq/app.controller.js +0 -59
- package/dist/transports/rmq/app.controller.js.map +0 -1
- package/dist/transports/rmq/app.service.d.ts +0 -20
- package/dist/transports/rmq/app.service.js +0 -61
- package/dist/transports/rmq/app.service.js.map +0 -1
- package/dist/transports/rmq/connection.d.ts +0 -3
- package/dist/transports/rmq/connection.js +0 -33
- package/dist/transports/rmq/connection.js.map +0 -1
- package/dist/transports/tcp/app.controller.d.ts +0 -8
- package/dist/transports/tcp/app.controller.js +0 -54
- package/dist/transports/tcp/app.controller.js.map +0 -1
- package/dist/transports/tcp/app.service.d.ts +0 -19
- package/dist/transports/tcp/app.service.js +0 -56
- package/dist/transports/tcp/app.service.js.map +0 -1
- package/dist/transports/tcp/connection.d.ts +0 -8
- package/dist/transports/tcp/connection.js +0 -13
- package/dist/transports/tcp/connection.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.types.js","sourceRoot":"","sources":["../../src/types/decorators.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gateway.class.js","sourceRoot":"","sources":["../../src/types/gateway.class.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./templates.types"), exports);
|
|
18
|
+
__exportStar(require("./decorators.types"), exports);
|
|
19
|
+
__exportStar(require("./gateway.class"), exports);
|
|
20
|
+
__exportStar(require("./options.types"), exports);
|
|
21
|
+
__exportStar(require("./slack-options.types"), exports);
|
|
22
|
+
__exportStar(require("./smtp-options.types"), exports);
|
|
23
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,oDAAkC;AAClC,qDAAmC;AACnC,kDAAgC;AAChC,kDAAgC;AAChC,wDAAsC;AACtC,uDAAqC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { ExtendsOrEmpty } from '../utils';
|
|
2
|
+
import { GatewayClass } from './gateway.class';
|
|
3
|
+
import { SlackOptions } from './slack-options.types';
|
|
4
|
+
import { SmtpOptions } from './smtp-options.types';
|
|
5
|
+
export type Gateway = 'smtp' | 'console' | 'slack';
|
|
6
|
+
export type MailOptions<TGateway extends Gateway = Gateway> = {
|
|
7
|
+
readonly gateways: [TGateway, ...TGateway[]];
|
|
8
|
+
readonly customGateways?: [GatewayClass, ...GatewayClass[]];
|
|
9
|
+
} & ExtendsOrEmpty<'smtp', TGateway, {
|
|
10
|
+
smtp: SmtpOptions;
|
|
11
|
+
}> & ExtendsOrEmpty<'slack', TGateway, {
|
|
12
|
+
slack: SlackOptions;
|
|
13
|
+
}>;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options.types.js","sourceRoot":"","sources":["../../src/types/options.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slack-options.types.js","sourceRoot":"","sources":["../../src/types/slack-options.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smtp-options.types.js","sourceRoot":"","sources":["../../src/types/smtp-options.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"templates.types.js","sourceRoot":"","sources":["../../src/types/templates.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { Gateway } from '../types';
|
|
2
|
+
export declare function getMailOptionsToken(connection?: string): string;
|
|
3
|
+
export declare function getGatewayOptionsToken(gateway: Gateway, connection?: string): string;
|
|
4
|
+
export declare function getGatewaysToken(connection?: string): string;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getGatewaysToken = exports.getGatewayOptionsToken = exports.getMailOptionsToken = void 0;
|
|
4
|
+
const constants_1 = require("../constants");
|
|
5
|
+
function getMailOptionsToken(connection) {
|
|
6
|
+
return `${connection || constants_1.MAIL_MODULE_CONSTANTS.DEFAULT_CONNECTION}_${constants_1.MAIL_MODULE_CONSTANTS.OPTIONS_TOKEN}`;
|
|
7
|
+
}
|
|
8
|
+
exports.getMailOptionsToken = getMailOptionsToken;
|
|
9
|
+
function getGatewayOptionsToken(gateway, connection) {
|
|
10
|
+
return `${connection || constants_1.MAIL_MODULE_CONSTANTS.DEFAULT_CONNECTION}_${constants_1.MAIL_MODULE_CONSTANTS.OPTIONS_TOKEN}_${gateway}`;
|
|
11
|
+
}
|
|
12
|
+
exports.getGatewayOptionsToken = getGatewayOptionsToken;
|
|
13
|
+
function getGatewaysToken(connection) {
|
|
14
|
+
return `${connection || constants_1.MAIL_MODULE_CONSTANTS.DEFAULT_CONNECTION}_${constants_1.MAIL_MODULE_CONSTANTS.GATEWAYS_TOKEN}`;
|
|
15
|
+
}
|
|
16
|
+
exports.getGatewaysToken = getGatewaysToken;
|
|
17
|
+
//# sourceMappingURL=connection.utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connection.utils.js","sourceRoot":"","sources":["../../src/utils/connection.utils.ts"],"names":[],"mappings":";;;AAAA,4CAAqD;AAGrD,SAAgB,mBAAmB,CAAC,UAAmB;IACrD,OAAO,GAAG,UAAU,IAAI,iCAAqB,CAAC,kBAAkB,IAAI,iCAAqB,CAAC,aAAa,EAAE,CAAC;AAC5G,CAAC;AAFD,kDAEC;AAED,SAAgB,sBAAsB,CAAC,OAAgB,EAAE,UAAmB;IAC1E,OAAO,GAAG,UAAU,IAAI,iCAAqB,CAAC,kBAAkB,IAAI,iCAAqB,CAAC,aAAa,IAAI,OAAO,EAAE,CAAC;AACvH,CAAC;AAFD,wDAEC;AAED,SAAgB,gBAAgB,CAAC,UAAmB;IAClD,OAAO,GAAG,UAAU,IAAI,iCAAqB,CAAC,kBAAkB,IAAI,iCAAqB,CAAC,cAAc,EAAE,CAAC;AAC7G,CAAC;AAFD,4CAEC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
+
};
|
|
16
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
+
__exportStar(require("./connection.utils"), exports);
|
|
18
|
+
__exportStar(require("./types.utils"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,qDAAmC;AACnC,gDAA8B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export type ExtendsOrEmpty<T, U, Res> = T extends U ? Res : {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.utils.js","sourceRoot":"","sources":["../../src/utils/types.utils.ts"],"names":[],"mappings":""}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@pixelplex/mail-service",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.2.0",
|
|
4
4
|
"description": "Mail service",
|
|
5
5
|
"author": "dev@pixelplex.io",
|
|
6
6
|
"private": false,
|
|
@@ -10,63 +10,54 @@
|
|
|
10
10
|
"prebuild": "rimraf dist",
|
|
11
11
|
"build": "nest build",
|
|
12
12
|
"format": "prettier --write \"src/**/*.ts\"",
|
|
13
|
-
"
|
|
14
|
-
"
|
|
15
|
-
"start:debug": "nest start --debug --watch",
|
|
16
|
-
"start:prod": "node dist/main",
|
|
17
|
-
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
|
13
|
+
"lint": "eslint \"{src,apps,libs,test}/**/*.ts\"",
|
|
14
|
+
"lint:fix": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix",
|
|
18
15
|
"test": "jest",
|
|
19
16
|
"test:watch": "jest --watch",
|
|
20
17
|
"test:cov": "jest --coverage",
|
|
21
18
|
"test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand",
|
|
22
19
|
"test:e2e": "jest --config ./test/jest-e2e.json",
|
|
23
20
|
"audit": "audit-ci --config audit-ci.json",
|
|
24
|
-
"prepare": "husky install"
|
|
21
|
+
"prepare": "husky install",
|
|
22
|
+
"type-check": "tsc --pretty --noEmit"
|
|
25
23
|
},
|
|
26
24
|
"dependencies": {
|
|
27
|
-
"@nestjs/common": "^
|
|
28
|
-
"@nestjs/core": "^
|
|
29
|
-
"
|
|
30
|
-
"
|
|
31
|
-
"
|
|
32
|
-
"amqp-connection-manager": "^3.2.1",
|
|
33
|
-
"amqplib": "^0.6.0",
|
|
34
|
-
"config": "^3.3.2",
|
|
35
|
-
"express-handlebars": "^5.2.0",
|
|
36
|
-
"handlebars": "^4.7.6",
|
|
37
|
-
"nodemailer": "^6.7.2",
|
|
38
|
-
"nodemailer-express-handlebars": "^4.0.0",
|
|
25
|
+
"@nestjs/common": "^9.4.3",
|
|
26
|
+
"@nestjs/core": "^9.4.3",
|
|
27
|
+
"axios": "^1.4.0",
|
|
28
|
+
"handlebars": "^4.7.7",
|
|
29
|
+
"nodemailer": "^6.9.3",
|
|
39
30
|
"reflect-metadata": "^0.1.13",
|
|
40
|
-
"rimraf": "^3.0.2"
|
|
41
|
-
"rxjs": "^6.6.3"
|
|
31
|
+
"rimraf": "^3.0.2"
|
|
42
32
|
},
|
|
43
33
|
"devDependencies": {
|
|
44
|
-
"@nestjs/cli": "^
|
|
45
|
-
"@nestjs/schematics": "^
|
|
46
|
-
"@nestjs/testing": "^
|
|
47
|
-
"@types/express": "^4.17.
|
|
34
|
+
"@nestjs/cli": "^9.5.0",
|
|
35
|
+
"@nestjs/schematics": "^9.2.0",
|
|
36
|
+
"@nestjs/testing": "^9.4.3",
|
|
37
|
+
"@types/express": "^4.17.17",
|
|
48
38
|
"@types/jest": "^26.0.15",
|
|
49
|
-
"@types/node": "^
|
|
50
|
-
"@types/
|
|
51
|
-
"@
|
|
52
|
-
"@typescript-eslint/eslint-plugin
|
|
53
|
-
"@typescript-eslint/
|
|
39
|
+
"@types/node": "^18.16.18",
|
|
40
|
+
"@types/nodemailer": "^6.4.8",
|
|
41
|
+
"@types/supertest": "^2.0.12",
|
|
42
|
+
"@typescript-eslint/eslint-plugin": "^5.60.1",
|
|
43
|
+
"@typescript-eslint/eslint-plugin-tslint": "^5.60.1",
|
|
44
|
+
"@typescript-eslint/parser": "^5.60.1",
|
|
54
45
|
"audit-ci": "^5.1.2",
|
|
55
|
-
"eslint": "^8.
|
|
56
|
-
"eslint-config-prettier": "^8.
|
|
57
|
-
"eslint-import-resolver-typescript": "^
|
|
58
|
-
"eslint-plugin-import": "^2.
|
|
59
|
-
"eslint-plugin-prettier": "^4.
|
|
46
|
+
"eslint": "^8.43.0",
|
|
47
|
+
"eslint-config-prettier": "^8.8.0",
|
|
48
|
+
"eslint-import-resolver-typescript": "^3.5.5",
|
|
49
|
+
"eslint-plugin-import": "^2.27.5",
|
|
50
|
+
"eslint-plugin-prettier": "^4.2.1",
|
|
60
51
|
"husky": "^7.0.2",
|
|
61
52
|
"jest": "^26.6.3",
|
|
62
53
|
"prettier": "^2.5.1",
|
|
63
54
|
"pretty-quick": "^3.1.3",
|
|
64
|
-
"supertest": "^6.
|
|
55
|
+
"supertest": "^6.3.3",
|
|
65
56
|
"ts-jest": "^26.4.3",
|
|
66
57
|
"ts-loader": "^8.0.8",
|
|
67
58
|
"ts-node": "^9.0.0",
|
|
68
|
-
"tsconfig-paths": "^
|
|
69
|
-
"typescript": "^
|
|
59
|
+
"tsconfig-paths": "^4.2.0",
|
|
60
|
+
"typescript": "^5.1.6"
|
|
70
61
|
},
|
|
71
62
|
"jest": {
|
|
72
63
|
"moduleFileExtensions": [
|
package/tsconfig.json
CHANGED
|
@@ -6,10 +6,13 @@
|
|
|
6
6
|
"emitDecoratorMetadata": true,
|
|
7
7
|
"experimentalDecorators": true,
|
|
8
8
|
"allowSyntheticDefaultImports": true,
|
|
9
|
+
"esModuleInterop": true,
|
|
9
10
|
"target": "es2017",
|
|
10
11
|
"sourceMap": true,
|
|
11
12
|
"outDir": "./dist",
|
|
12
13
|
"baseUrl": "./",
|
|
13
|
-
"incremental": true
|
|
14
|
+
"incremental": true,
|
|
15
|
+
"strict": true,
|
|
16
|
+
"typeRoots": ["node_modules/@types"]
|
|
14
17
|
}
|
|
15
18
|
}
|
package/.dockerignore
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"app.module.js","sourceRoot":"","sources":["../../src/connect/app.module.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,2CAAuD;AAEvD,mCAAsC;AAGtC,IAAa,UAAU,kBAAvB,MAAa,UAAU;IACrB,MAAM,CAAC,KAAK,CAAC,OAAO;QAClB,MAAM,EAAE,WAAW,EAAE,GAAG,2CAAa,iBAAiB,qBAAY,CAAC,SAAS,cAAc,EAAC,CAAC;QAC5F,OAAO;YACL,MAAM,EAAE,YAAU;YAClB,OAAO,EAAE,EAAE;YACX,SAAS,EAAE,CAAC,WAAW,CAAC;YACxB,OAAO,EAAE,CAAC,WAAW,CAAC;SACvB,CAAC;IACJ,CAAC;CACF,CAAA;AAVY,UAAU;IADtB,eAAM,CAAC,EAAE,CAAC;GACE,UAAU,CAUtB;AAVY,gCAAU"}
|
package/dist/connect/retry.d.ts
DELETED
package/dist/connect/retry.js
DELETED
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const operators_1 = require("rxjs/operators");
|
|
4
|
-
function retry(retryAttempts = 10, retryDelay = 10000) {
|
|
5
|
-
return (source) => source.pipe(operators_1.retryWhen((e) => e.pipe(operators_1.scan((acc, error) => {
|
|
6
|
-
if (acc + 1 >= retryAttempts) {
|
|
7
|
-
throw error;
|
|
8
|
-
}
|
|
9
|
-
return acc + 1;
|
|
10
|
-
}, 0), operators_1.delay(retryDelay))));
|
|
11
|
-
}
|
|
12
|
-
exports.default = retry;
|
|
13
|
-
//# sourceMappingURL=retry.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/connect/retry.ts"],"names":[],"mappings":";;AACA,8CAAwD;AAExD,SAAwB,KAAK,CAAC,aAAa,GAAG,EAAE,EAAE,UAAU,GAAG,KAAK;IAClE,OAAO,CAAI,MAAqB,EAAE,EAAE,CAClC,MAAM,CAAC,IAAI,CACT,qBAAS,CAAC,CAAC,CAAC,EAAE,EAAE,CACd,CAAC,CAAC,IAAI,CACJ,gBAAI,CAAC,CAAC,GAAW,EAAE,KAAY,EAAE,EAAE;QACjC,IAAI,GAAG,GAAG,CAAC,IAAI,aAAa,EAAE;YAC5B,MAAM,KAAK,CAAC;SACb;QACD,OAAO,GAAG,GAAG,CAAC,CAAC;IACjB,CAAC,EAAE,CAAC,CAAC,EACL,iBAAK,CAAC,UAAU,CAAC,CAClB,CACF,CACF,CAAC;AACN,CAAC;AAfD,wBAeC"}
|
package/dist/main.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/main.js
DELETED
|
@@ -1,24 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
const core_1 = require("@nestjs/core");
|
|
4
|
-
const common_1 = require("@nestjs/common");
|
|
5
|
-
const Sentry = require("@sentry/node");
|
|
6
|
-
const config_1 = require("config");
|
|
7
|
-
const app_module_1 = require("./service/app.module");
|
|
8
|
-
const logger = new common_1.Logger('Mail::Application');
|
|
9
|
-
if (config_1.SENTRY.ENABLED && config_1.SENTRY.DSN) {
|
|
10
|
-
Sentry.init({
|
|
11
|
-
dsn: config_1.SENTRY.DSN,
|
|
12
|
-
});
|
|
13
|
-
logger.log('Sentry is initialized');
|
|
14
|
-
}
|
|
15
|
-
// eslint-disable-next-line @typescript-eslint/explicit-function-return-type
|
|
16
|
-
async function bootstrap() {
|
|
17
|
-
const { generalClient } = await Promise.resolve().then(() => require(`./transports/${config_1.MAIL_SERVICE.TRANSPORT}/connection`));
|
|
18
|
-
const app = await core_1.NestFactory.createMicroservice(app_module_1.AppModule.forRoot(), generalClient);
|
|
19
|
-
await app.listen(() => {
|
|
20
|
-
logger.log(`${config_1.MAIL_SERVICE.TRANSPORT.toLocaleUpperCase()} Connected. Service is started`);
|
|
21
|
-
});
|
|
22
|
-
}
|
|
23
|
-
bootstrap();
|
|
24
|
-
//# sourceMappingURL=main.js.map
|
package/dist/main.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"main.js","sourceRoot":"","sources":["../src/main.ts"],"names":[],"mappings":";;AAAA,uCAA2C;AAE3C,2CAAwC;AACxC,uCAAuC;AACvC,mCAA8C;AAC9C,qDAAiD;AAEjD,MAAM,MAAM,GAAG,IAAI,eAAM,CAAC,mBAAmB,CAAC,CAAC;AAE/C,IAAI,eAAM,CAAC,OAAO,IAAI,eAAM,CAAC,GAAG,EAAE;IAChC,MAAM,CAAC,IAAI,CAAC;QACV,GAAG,EAAE,eAAM,CAAC,GAAG;KAChB,CAAC,CAAC;IACH,MAAM,CAAC,GAAG,CAAC,uBAAuB,CAAC,CAAC;CACrC;AAED,4EAA4E;AAC5E,KAAK,UAAU,SAAS;IACtB,MAAM,EAAE,aAAa,EAAE,GAAG,2CAAa,gBAAgB,qBAAY,CAAC,SAAS,aAAa,EAAC,CAAC;IAC5F,MAAM,GAAG,GAAG,MAAM,kBAAW,CAAC,kBAAkB,CAAsB,sBAAS,CAAC,OAAO,EAAE,EAAE,aAAa,CAAC,CAAC;IAC1G,MAAM,GAAG,CAAC,MAAM,CAAC,GAAG,EAAE;QACpB,MAAM,CAAC,GAAG,CAAC,GAAG,qBAAY,CAAC,SAAS,CAAC,iBAAiB,EAAE,gCAAgC,CAAC,CAAC;IAC5F,CAAC,CAAC,CAAC;AACL,CAAC;AACD,SAAS,EAAE,CAAC"}
|
|
@@ -1,29 +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
|
-
var AppModule_1;
|
|
9
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
10
|
-
exports.AppModule = void 0;
|
|
11
|
-
const common_1 = require("@nestjs/common");
|
|
12
|
-
const config_1 = require("config");
|
|
13
|
-
const sender_service_1 = require("./sender.service");
|
|
14
|
-
let AppModule = AppModule_1 = class AppModule {
|
|
15
|
-
static async forRoot() {
|
|
16
|
-
const { AppController } = await Promise.resolve().then(() => require(`../transports/${config_1.MAIL_SERVICE.TRANSPORT}/app.controller`));
|
|
17
|
-
return {
|
|
18
|
-
module: AppModule_1,
|
|
19
|
-
imports: [],
|
|
20
|
-
controllers: [AppController],
|
|
21
|
-
providers: [sender_service_1.SenderService],
|
|
22
|
-
};
|
|
23
|
-
}
|
|
24
|
-
};
|
|
25
|
-
AppModule = AppModule_1 = __decorate([
|
|
26
|
-
common_1.Module({})
|
|
27
|
-
], AppModule);
|
|
28
|
-
exports.AppModule = AppModule;
|
|
29
|
-
//# 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,2CAAuD;AACvD,mCAAsC;AACtC,qDAAiD;AAGjD,IAAa,SAAS,iBAAtB,MAAa,SAAS;IACpB,MAAM,CAAC,KAAK,CAAC,OAAO;QAClB,MAAM,EAAE,aAAa,EAAE,GAAG,2CAAa,iBAAiB,qBAAY,CAAC,SAAS,iBAAiB,EAAC,CAAC;QACjG,OAAO;YACL,MAAM,EAAE,WAAS;YACjB,OAAO,EAAE,EAAE;YACX,WAAW,EAAE,CAAC,aAAa,CAAC;YAC5B,SAAS,EAAE,CAAC,8BAAa,CAAC;SAC3B,CAAC;IACJ,CAAC;CACF,CAAA;AAVY,SAAS;IADrB,eAAM,CAAC,EAAE,CAAC;GACE,SAAS,CAUrB;AAVY,8BAAS"}
|
|
@@ -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"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { RmqContext } from '@nestjs/microservices';
|
|
2
|
-
import { MailMessage } from '../../mail';
|
|
3
|
-
import { SenderService } from '../../service/sender.service';
|
|
4
|
-
export declare class AppController {
|
|
5
|
-
private readonly senderService;
|
|
6
|
-
private logger;
|
|
7
|
-
constructor(senderService: SenderService);
|
|
8
|
-
getHello(data: MailMessage, context: RmqContext): Promise<void>;
|
|
9
|
-
}
|
|
@@ -1,59 +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
|
-
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
9
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
10
|
-
};
|
|
11
|
-
var __param = (this && this.__param) || function (paramIndex, decorator) {
|
|
12
|
-
return function (target, key) { decorator(target, key, paramIndex); }
|
|
13
|
-
};
|
|
14
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
|
-
exports.AppController = void 0;
|
|
16
|
-
const common_1 = require("@nestjs/common");
|
|
17
|
-
const microservices_1 = require("@nestjs/microservices");
|
|
18
|
-
const Sentry = require("@sentry/node");
|
|
19
|
-
const sender_service_1 = require("../../service/sender.service");
|
|
20
|
-
let AppController = class AppController {
|
|
21
|
-
constructor(senderService) {
|
|
22
|
-
this.senderService = senderService;
|
|
23
|
-
this.logger = new common_1.Logger('Mail::AppController');
|
|
24
|
-
}
|
|
25
|
-
async getHello(data, context) {
|
|
26
|
-
const channel = context.getChannelRef();
|
|
27
|
-
const originalMsg = context.getMessage();
|
|
28
|
-
try {
|
|
29
|
-
await this.senderService.sendMail(data.to, data.type, data.payload);
|
|
30
|
-
channel.ack(originalMsg);
|
|
31
|
-
}
|
|
32
|
-
catch (e) {
|
|
33
|
-
if (data.ttl > 0 && (new Date().getTime() - data.timestamp) / 1000 > data.ttl) {
|
|
34
|
-
this.logger.warn(`message to "${data.to}" with template "${data.type}" was market as processed due to exceeding ttl`);
|
|
35
|
-
channel.ack(originalMsg);
|
|
36
|
-
return;
|
|
37
|
-
}
|
|
38
|
-
Sentry.captureException(e, {
|
|
39
|
-
extra: data,
|
|
40
|
-
});
|
|
41
|
-
this.logger.error('send email error');
|
|
42
|
-
this.logger.error(e);
|
|
43
|
-
channel.nack(originalMsg, false, false);
|
|
44
|
-
}
|
|
45
|
-
}
|
|
46
|
-
};
|
|
47
|
-
__decorate([
|
|
48
|
-
microservices_1.EventPattern('new_mail'),
|
|
49
|
-
__param(0, microservices_1.Payload()), __param(1, microservices_1.Ctx()),
|
|
50
|
-
__metadata("design:type", Function),
|
|
51
|
-
__metadata("design:paramtypes", [Object, microservices_1.RmqContext]),
|
|
52
|
-
__metadata("design:returntype", Promise)
|
|
53
|
-
], AppController.prototype, "getHello", null);
|
|
54
|
-
AppController = __decorate([
|
|
55
|
-
common_1.Controller(),
|
|
56
|
-
__metadata("design:paramtypes", [sender_service_1.SenderService])
|
|
57
|
-
], AppController);
|
|
58
|
-
exports.AppController = AppController;
|
|
59
|
-
//# sourceMappingURL=app.controller.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"app.controller.js","sourceRoot":"","sources":["../../../src/transports/rmq/app.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAAoD;AACpD,yDAA+E;AAC/E,uCAAuC;AAEvC,iEAA6D;AAG7D,IAAa,aAAa,GAA1B,MAAa,aAAa;IAExB,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;QADjD,WAAM,GAAG,IAAI,eAAM,CAAC,qBAAqB,CAAC,CAAC;IACS,CAAC;IAG7D,KAAK,CAAC,QAAQ,CAAY,IAAiB,EAAS,OAAmB;QACrE,MAAM,OAAO,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;QACxC,MAAM,WAAW,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC;QACzC,IAAI;YACF,MAAM,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;YACpE,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;SAC1B;QAAC,OAAO,CAAC,EAAE;YACV,IAAI,IAAI,CAAC,GAAG,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,GAAG,IAAI,CAAC,GAAG,EAAE;gBAC7E,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,eAAe,IAAI,CAAC,EAAE,oBAAoB,IAAI,CAAC,IAAI,gDAAgD,CACpG,CAAC;gBACF,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;gBACzB,OAAO;aACR;YACD,MAAM,CAAC,gBAAgB,CAAC,CAAC,EAAE;gBACzB,KAAK,EAAE,IAAI;aACZ,CAAC,CAAC;YACH,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAC;YACtC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;YACrB,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;SACzC;IACH,CAAC;CACF,CAAA;AAtBC;IADC,4BAAY,CAAC,UAAU,CAAC;IACT,WAAA,uBAAO,EAAE,CAAA,EAAqB,WAAA,mBAAG,EAAE,CAAA;;6CAAU,0BAAU;;6CAqBtE;AA1BU,aAAa;IADzB,mBAAU,EAAE;qCAGiC,8BAAa;GAF9C,aAAa,CA2BzB;AA3BY,sCAAa"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { OnApplicationBootstrap } from '@nestjs/common';
|
|
2
|
-
import { ClientProxy } from '@nestjs/microservices';
|
|
3
|
-
import { Observable } from 'rxjs';
|
|
4
|
-
export declare class MailService implements OnApplicationBootstrap {
|
|
5
|
-
private logger;
|
|
6
|
-
client: ClientProxy;
|
|
7
|
-
clientRecovery: ClientProxy;
|
|
8
|
-
onApplicationBootstrap(): Promise<void>;
|
|
9
|
-
/**
|
|
10
|
-
* @param to - email to send the message to
|
|
11
|
-
* @param type - the type of message to send. files `{type}.handlebars` and `{type}.subject.handlebars` will used
|
|
12
|
-
* @param payload - object with payload to build you mail
|
|
13
|
-
* @param ttl - the number of seconds after which the message will be rejected from the queue if,
|
|
14
|
-
* but only if it was processed with an error. Set 0 if you think your message should live until
|
|
15
|
-
* it is successfully sent.
|
|
16
|
-
*/
|
|
17
|
-
sendMail<TResult = any>(to: string, type: string, payload?: {
|
|
18
|
-
[key: string]: unknown;
|
|
19
|
-
}, ttl?: number): Observable<TResult>;
|
|
20
|
-
}
|