@aldb2b/common 1.0.634 → 1.0.636
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/build/common/common.module.d.ts +2 -0
- package/build/common/common.module.js +30 -0
- package/build/common/common.module.js.map +1 -0
- package/build/common/const/config.d.ts +3 -0
- package/build/common/const/config.js +7 -0
- package/build/common/const/config.js.map +1 -0
- package/build/common/const/default-email-validation-option.d.ts +2 -0
- package/build/common/const/default-email-validation-option.js +9 -0
- package/build/common/const/default-email-validation-option.js.map +1 -0
- package/build/common/const/email-validation-errors.d.ts +16 -0
- package/build/common/const/email-validation-errors.js +22 -0
- package/build/common/const/email-validation-errors.js.map +1 -0
- package/build/common/const/index.d.ts +4 -0
- package/build/common/const/index.js +21 -0
- package/build/common/const/index.js.map +1 -0
- package/build/common/const/smtp-codes.d.ts +59 -0
- package/build/common/const/smtp-codes.js +63 -0
- package/build/common/const/smtp-codes.js.map +1 -0
- package/build/common/controllers/common.controller.d.ts +7 -0
- package/build/common/controllers/common.controller.js +42 -0
- package/build/common/controllers/common.controller.js.map +1 -0
- package/build/common/dto/email-validation-request.dto.d.ts +3 -0
- package/build/common/dto/email-validation-request.dto.js +21 -0
- package/build/common/dto/email-validation-request.dto.js.map +1 -0
- package/build/common/dto/email-validation-response.dto.d.ts +4 -0
- package/build/common/dto/email-validation-response.dto.js +3 -0
- package/build/common/dto/email-validation-response.dto.js.map +1 -0
- package/build/common/interfaces/email-validation-option.interface.d.ts +5 -0
- package/build/common/interfaces/email-validation-option.interface.js +3 -0
- package/build/common/interfaces/email-validation-option.interface.js.map +1 -0
- package/build/common/services/common.service.d.ts +6 -0
- package/build/common/services/common.service.js +43 -0
- package/build/common/services/common.service.js.map +1 -0
- package/build/common/utils/get-mx.d.ts +3 -0
- package/build/common/utils/get-mx.js +23 -0
- package/build/common/utils/get-mx.js.map +1 -0
- package/build/common/utils/index.d.ts +2 -0
- package/build/common/utils/index.js +19 -0
- package/build/common/utils/index.js.map +1 -0
- package/build/common/utils/validate-smtp.d.ts +1 -0
- package/build/common/utils/validate-smtp.js +80 -0
- package/build/common/utils/validate-smtp.js.map +1 -0
- package/build/db/MongooseBase.js +14 -16
- package/build/db/MongooseBase.js.map +1 -1
- package/build/db/aggregate/AggregateConvertor.js +4 -4
- package/build/db/aggregate/AggregateConvertor.js.map +1 -1
- package/build/db/aggregate/createAggregateResponse.js +2 -3
- package/build/db/aggregate/createAggregateResponse.js.map +1 -1
- package/build/db/auditTrail/audit-trail.service.js +6 -8
- package/build/db/auditTrail/audit-trail.service.js.map +1 -1
- package/build/index.d.ts +8 -0
- package/build/index.js +8 -0
- package/build/index.js.map +1 -1
- package/build/interceptors/response-with-code.interceptor.js +1 -1
- package/build/interceptors/response-with-code.interceptor.js.map +1 -1
- package/build/interceptors/response.interceptor.js +1 -1
- package/build/interceptors/response.interceptor.js.map +1 -1
- package/build/interceptors/serialize.interceptor.js +1 -1
- package/build/interceptors/serialize.interceptor.js.map +1 -1
- package/build/middlewares/authorizer.middleware.js +3 -3
- package/build/middlewares/authorizer.middleware.js.map +1 -1
- package/build/middlewares/subscription-subtractor.middleware.js +8 -5
- package/build/middlewares/subscription-subtractor.middleware.js.map +1 -1
- package/build/middlewares/subscription-validator.middleware.js +2 -2
- package/build/middlewares/subscription-validator.middleware.js.map +1 -1
- package/build/middlewares/verify-contact.middleware.js +6 -7
- package/build/middlewares/verify-contact.middleware.js.map +1 -1
- package/build/tsconfig.tsbuildinfo +1 -1
- package/build/utils/getEndpoint.js +1 -1
- package/build/utils/getEndpoint.js.map +1 -1
- package/build/utils/parse-query.js +4 -4
- package/build/utils/parse-query.js.map +1 -1
- package/build/utils/rmq/client/rabbitmq.client.js +9 -2
- package/build/utils/rmq/client/rabbitmq.client.js.map +1 -1
- package/build/utils/rmq/server/rabbitmq.server.js +1 -1
- package/build/utils/rmq/server/rabbitmq.server.js.map +1 -1
- package/build/validators/responses/customizeResult.js +1 -1
- package/build/validators/responses/customizeResult.js.map +1 -1
- package/build/validators/responses/error-with-code.js +1 -2
- package/build/validators/responses/error-with-code.js.map +1 -1
- package/build/validators/responses/error.js +2 -3
- package/build/validators/responses/error.js.map +1 -1
- package/build/validators/responses/success.js +2 -2
- package/build/validators/responses/success.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,30 @@
|
|
|
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.CommonModule = void 0;
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const config_1 = require("@nestjs/config");
|
|
12
|
+
const common_controller_1 = require("./controllers/common.controller");
|
|
13
|
+
const common_service_1 = require("./services/common.service");
|
|
14
|
+
let CommonModule = class CommonModule {
|
|
15
|
+
};
|
|
16
|
+
exports.CommonModule = CommonModule;
|
|
17
|
+
exports.CommonModule = CommonModule = __decorate([
|
|
18
|
+
(0, common_1.Global)(),
|
|
19
|
+
(0, common_1.Module)({
|
|
20
|
+
imports: [
|
|
21
|
+
config_1.ConfigModule.forRoot({
|
|
22
|
+
isGlobal: true,
|
|
23
|
+
}),
|
|
24
|
+
],
|
|
25
|
+
controllers: [common_controller_1.CommonController],
|
|
26
|
+
providers: [common_service_1.CommonService],
|
|
27
|
+
exports: [common_service_1.CommonService],
|
|
28
|
+
})
|
|
29
|
+
], CommonModule);
|
|
30
|
+
//# sourceMappingURL=common.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.module.js","sourceRoot":"","sources":["../../src/common/common.module.ts"],"names":[],"mappings":";;;;;;;;;AAAA,2CAA+C;AAC/C,2CAA6C;AAC7C,uEAAkE;AAClE,8DAAyD;AAalD,IAAM,YAAY,GAAlB,MAAM,YAAY;CAAG,CAAA;AAAf,oCAAY;uBAAZ,YAAY;IAXxB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC;QACN,OAAO,EAAE;YACP,qBAAY,CAAC,OAAO,CAAC;gBACnB,QAAQ,EAAE,IAAI;aACf,CAAC;SACH;QACD,WAAW,EAAE,CAAC,oCAAgB,CAAC;QAC/B,SAAS,EAAE,CAAC,8BAAa,CAAC;QAC1B,OAAO,EAAE,CAAC,8BAAa,CAAC;KACzB,CAAC;GACW,YAAY,CAAG"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.smtpPorts = exports.smtpSocketTimeout = exports.emailSender = void 0;
|
|
4
|
+
exports.emailSender = 'no-reply@aladdinb2b.com';
|
|
5
|
+
exports.smtpSocketTimeout = 10000;
|
|
6
|
+
exports.smtpPorts = [25, 587];
|
|
7
|
+
//# sourceMappingURL=config.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../../src/common/const/config.ts"],"names":[],"mappings":";;;AAAa,QAAA,WAAW,GAAG,yBAAyB,CAAA;AACvC,QAAA,iBAAiB,GAAG,KAAK,CAAA;AACzB,QAAA,SAAS,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.defaultEmailValidationOption = void 0;
|
|
4
|
+
exports.defaultEmailValidationOption = {
|
|
5
|
+
validateRegEx: true,
|
|
6
|
+
validateMX: true,
|
|
7
|
+
validateSMTP: true,
|
|
8
|
+
};
|
|
9
|
+
//# sourceMappingURL=default-email-validation-option.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"default-email-validation-option.js","sourceRoot":"","sources":["../../../src/common/const/default-email-validation-option.ts"],"names":[],"mappings":";;;AAEa,QAAA,4BAA4B,GAA0B;IACjE,aAAa,EAAE,IAAI;IACnB,UAAU,EAAE,IAAI;IAChB,YAAY,EAAE,IAAI;CACnB,CAAA"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
declare const INVALID_REGEX: {
|
|
2
|
+
message: string;
|
|
3
|
+
code: number;
|
|
4
|
+
identifier: string;
|
|
5
|
+
};
|
|
6
|
+
declare const INVALID_MX: {
|
|
7
|
+
message: string;
|
|
8
|
+
code: number;
|
|
9
|
+
identifier: string;
|
|
10
|
+
};
|
|
11
|
+
declare const INVALID_SMTP: {
|
|
12
|
+
message: string;
|
|
13
|
+
code: number;
|
|
14
|
+
identifier: string;
|
|
15
|
+
};
|
|
16
|
+
export { INVALID_REGEX, INVALID_MX, INVALID_SMTP };
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.INVALID_SMTP = exports.INVALID_MX = exports.INVALID_REGEX = void 0;
|
|
4
|
+
const INVALID_REGEX = {
|
|
5
|
+
message: 'Invalid RegEx',
|
|
6
|
+
code: 400,
|
|
7
|
+
identifier: 'InvalidRegEx',
|
|
8
|
+
};
|
|
9
|
+
exports.INVALID_REGEX = INVALID_REGEX;
|
|
10
|
+
const INVALID_MX = {
|
|
11
|
+
message: 'Invalid MX',
|
|
12
|
+
code: 400,
|
|
13
|
+
identifier: 'InvalidMX',
|
|
14
|
+
};
|
|
15
|
+
exports.INVALID_MX = INVALID_MX;
|
|
16
|
+
const INVALID_SMTP = {
|
|
17
|
+
message: 'Invalid SMTP',
|
|
18
|
+
code: 400,
|
|
19
|
+
identifier: 'InvalidSMTP',
|
|
20
|
+
};
|
|
21
|
+
exports.INVALID_SMTP = INVALID_SMTP;
|
|
22
|
+
//# sourceMappingURL=email-validation-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-validation-errors.js","sourceRoot":"","sources":["../../../src/common/const/email-validation-errors.ts"],"names":[],"mappings":";;;AAAA,MAAM,aAAa,GAAG;IACpB,OAAO,EAAE,eAAe;IACxB,IAAI,EAAE,GAAG;IACT,UAAU,EAAE,cAAc;CAC3B,CAAA;AAcQ,sCAAa;AAZtB,MAAM,UAAU,GAAG;IACjB,OAAO,EAAE,YAAY;IACrB,IAAI,EAAE,GAAG;IACT,UAAU,EAAE,WAAW;CACxB,CAAA;AAQuB,gCAAU;AANlC,MAAM,YAAY,GAAG;IACnB,OAAO,EAAE,cAAc;IACvB,IAAI,EAAE,GAAG;IACT,UAAU,EAAE,aAAa;CAC1B,CAAA;AAEmC,oCAAY"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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("./config"), exports);
|
|
18
|
+
__exportStar(require("./default-email-validation-option"), exports);
|
|
19
|
+
__exportStar(require("./email-validation-errors"), exports);
|
|
20
|
+
__exportStar(require("./smtp-codes"), exports);
|
|
21
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/const/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,oEAAiD;AACjD,4DAAyC;AACzC,+CAA4B"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
export declare const smtpCodes: {
|
|
2
|
+
101: string;
|
|
3
|
+
111: string;
|
|
4
|
+
220: string;
|
|
5
|
+
221: string;
|
|
6
|
+
250: string;
|
|
7
|
+
420: string;
|
|
8
|
+
421: string;
|
|
9
|
+
422: string;
|
|
10
|
+
431: string;
|
|
11
|
+
432: string;
|
|
12
|
+
441: string;
|
|
13
|
+
442: string;
|
|
14
|
+
446: string;
|
|
15
|
+
447: string;
|
|
16
|
+
449: string;
|
|
17
|
+
450: string;
|
|
18
|
+
451: string;
|
|
19
|
+
452: string;
|
|
20
|
+
453: string;
|
|
21
|
+
454: string;
|
|
22
|
+
455: string;
|
|
23
|
+
458: string;
|
|
24
|
+
459: string;
|
|
25
|
+
471: string;
|
|
26
|
+
500: string;
|
|
27
|
+
501: string;
|
|
28
|
+
502: string;
|
|
29
|
+
503: string;
|
|
30
|
+
504: string;
|
|
31
|
+
510: string;
|
|
32
|
+
511: string;
|
|
33
|
+
512: string;
|
|
34
|
+
513: string;
|
|
35
|
+
515: string;
|
|
36
|
+
517: string;
|
|
37
|
+
521: string;
|
|
38
|
+
522: string;
|
|
39
|
+
523: string;
|
|
40
|
+
530: string;
|
|
41
|
+
531: string;
|
|
42
|
+
533: string;
|
|
43
|
+
534: string;
|
|
44
|
+
535: string;
|
|
45
|
+
538: string;
|
|
46
|
+
540: string;
|
|
47
|
+
541: string;
|
|
48
|
+
542: string;
|
|
49
|
+
543: string;
|
|
50
|
+
546: string;
|
|
51
|
+
547: string;
|
|
52
|
+
550: string;
|
|
53
|
+
551: string;
|
|
54
|
+
552: string;
|
|
55
|
+
553: string;
|
|
56
|
+
554: string;
|
|
57
|
+
555: string;
|
|
58
|
+
556: string;
|
|
59
|
+
};
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.smtpCodes = void 0;
|
|
4
|
+
exports.smtpCodes = {
|
|
5
|
+
101: 'Invalid SSL or TLS configuration',
|
|
6
|
+
111: 'Error connecting with the remote SMTP server',
|
|
7
|
+
220: 'SMTP Service ready',
|
|
8
|
+
221: 'Domain service closing transmission channel',
|
|
9
|
+
250: 'Requested mail action completed and OK',
|
|
10
|
+
420: 'Recipients firewall/filter blocking mail',
|
|
11
|
+
421: 'Domain service not available, closing transmission channel',
|
|
12
|
+
422: 'The recipient has exceeded their mailbox limit',
|
|
13
|
+
431: 'Insufficient storage or out-of-memory issues',
|
|
14
|
+
432: 'Domain service not available, closing transmission channel',
|
|
15
|
+
441: 'Intermittent network connection, the server has not yet responded',
|
|
16
|
+
442: 'The server started to deliver the message but then the connection was broken',
|
|
17
|
+
446: 'Too many hops. Most likely, the message is looping',
|
|
18
|
+
447: 'Timeout occurred, check server connection',
|
|
19
|
+
449: 'A DNS problem occurred; check your smart host setting on the SMTP connector',
|
|
20
|
+
450: 'Requested mail action not taken: mailbox unavailable. request refused',
|
|
21
|
+
451: 'Requested action aborted: local error in processing Request is unable to be processed, try again',
|
|
22
|
+
452: 'Requested action not taken: insufficient system storage',
|
|
23
|
+
453: 'No mail',
|
|
24
|
+
454: 'TLS not available due to temporary reason. Encryption required for requested authentication mechanism',
|
|
25
|
+
455: 'Recipients SMTP server cannot interpret parameters associated with the "MAIL FROM" or "RCPT TO" commands.',
|
|
26
|
+
458: 'Unable to queue messages for node',
|
|
27
|
+
459: 'Node not allowed: reason',
|
|
28
|
+
471: 'Anti-spam filter or firewall prevented message from sending',
|
|
29
|
+
500: 'Syntax error, command unrecognized',
|
|
30
|
+
501: 'Syntax error in parameters or arguments',
|
|
31
|
+
502: 'Command not implemented',
|
|
32
|
+
503: 'Bad sequence of commands',
|
|
33
|
+
504: 'Command parameter not implemented',
|
|
34
|
+
510: 'Check the recipient address',
|
|
35
|
+
511: 'Mailbox not found',
|
|
36
|
+
512: 'Domain can not be found. Unknown host.',
|
|
37
|
+
513: 'Relaying denied or Address type incorrect',
|
|
38
|
+
515: 'Destination mailbox address invalid',
|
|
39
|
+
517: 'Problem with senders mail attribute, check properties',
|
|
40
|
+
521: 'Domain does not accept mail',
|
|
41
|
+
522: 'Recipient has exceeded mailbox limit',
|
|
42
|
+
523: 'Server limit exceeded. Message too large',
|
|
43
|
+
530: 'Access Denied. Authentication required',
|
|
44
|
+
531: 'Mail system Full',
|
|
45
|
+
533: 'Remote server has insufficient disk space to hold email',
|
|
46
|
+
534: 'Authentication mechanism is too weak. Message too big',
|
|
47
|
+
535: 'Multiple servers using same IP. Required Authentication',
|
|
48
|
+
538: 'Encryption required for requested authentication mechanism',
|
|
49
|
+
540: 'Email address has no DNS Server',
|
|
50
|
+
541: 'No response from host',
|
|
51
|
+
542: 'Bad Connection',
|
|
52
|
+
543: 'Routing server failure. No available route',
|
|
53
|
+
546: 'Email looping',
|
|
54
|
+
547: 'Delivery time-out',
|
|
55
|
+
550: 'Requested action not taken: mailbox unavailable',
|
|
56
|
+
551: 'User not local; please try forward path',
|
|
57
|
+
552: 'Requested mail action aborted: exceeded storage allocation',
|
|
58
|
+
553: 'Requested action not taken: mailbox name not allowed',
|
|
59
|
+
554: 'Transaction failed',
|
|
60
|
+
555: 'Wrong protocol version',
|
|
61
|
+
556: 'Email sent is too large for the recipients email server to process',
|
|
62
|
+
};
|
|
63
|
+
//# sourceMappingURL=smtp-codes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smtp-codes.js","sourceRoot":"","sources":["../../../src/common/const/smtp-codes.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACvB,GAAG,EAAE,kCAAkC;IACvC,GAAG,EAAE,8CAA8C;IACnD,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,6CAA6C;IAClD,GAAG,EAAE,wCAAwC;IAC7C,GAAG,EAAE,0CAA0C;IAC/C,GAAG,EAAE,4DAA4D;IACjE,GAAG,EAAE,gDAAgD;IACrD,GAAG,EAAE,8CAA8C;IACnD,GAAG,EAAE,4DAA4D;IACjE,GAAG,EAAE,mEAAmE;IACxE,GAAG,EAAE,8EAA8E;IACnF,GAAG,EAAE,oDAAoD;IACzD,GAAG,EAAE,2CAA2C;IAChD,GAAG,EAAE,6EAA6E;IAClF,GAAG,EAAE,uEAAuE;IAC5E,GAAG,EAAE,kGAAkG;IACvG,GAAG,EAAE,yDAAyD;IAC9D,GAAG,EAAE,SAAS;IACd,GAAG,EAAE,uGAAuG;IAC5G,GAAG,EAAE,2GAA2G;IAChH,GAAG,EAAE,mCAAmC;IACxC,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,6DAA6D;IAClE,GAAG,EAAE,oCAAoC;IACzC,GAAG,EAAE,yCAAyC;IAC9C,GAAG,EAAE,yBAAyB;IAC9B,GAAG,EAAE,0BAA0B;IAC/B,GAAG,EAAE,mCAAmC;IACxC,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,wCAAwC;IAC7C,GAAG,EAAE,2CAA2C;IAChD,GAAG,EAAE,qCAAqC;IAC1C,GAAG,EAAE,uDAAuD;IAC5D,GAAG,EAAE,6BAA6B;IAClC,GAAG,EAAE,sCAAsC;IAC3C,GAAG,EAAE,0CAA0C;IAC/C,GAAG,EAAE,wCAAwC;IAC7C,GAAG,EAAE,kBAAkB;IACvB,GAAG,EAAE,yDAAyD;IAC9D,GAAG,EAAE,uDAAuD;IAC5D,GAAG,EAAE,yDAAyD;IAC9D,GAAG,EAAE,4DAA4D;IACjE,GAAG,EAAE,iCAAiC;IACtC,GAAG,EAAE,uBAAuB;IAC5B,GAAG,EAAE,gBAAgB;IACrB,GAAG,EAAE,4CAA4C;IACjD,GAAG,EAAE,eAAe;IACpB,GAAG,EAAE,mBAAmB;IACxB,GAAG,EAAE,iDAAiD;IACtD,GAAG,EAAE,yCAAyC;IAC9C,GAAG,EAAE,4DAA4D;IACjE,GAAG,EAAE,sDAAsD;IAC3D,GAAG,EAAE,oBAAoB;IACzB,GAAG,EAAE,wBAAwB;IAC7B,GAAG,EAAE,oEAAoE;CAC1E,CAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { CommonService } from '../services/common.service';
|
|
2
|
+
import { EmailValidationRequestDto } from '../dto/email-validation-request.dto';
|
|
3
|
+
export declare class CommonController {
|
|
4
|
+
private readonly commonService;
|
|
5
|
+
constructor(commonService: CommonService);
|
|
6
|
+
validateEmail(emailValidationRequestDto: EmailValidationRequestDto): Promise<any>;
|
|
7
|
+
}
|
|
@@ -0,0 +1,42 @@
|
|
|
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.CommonController = void 0;
|
|
16
|
+
const common_1 = require("@nestjs/common");
|
|
17
|
+
const common_service_1 = require("../services/common.service");
|
|
18
|
+
const response_interceptor_1 = require("../../interceptors/response.interceptor");
|
|
19
|
+
const email_validation_request_dto_1 = require("../dto/email-validation-request.dto");
|
|
20
|
+
let CommonController = class CommonController {
|
|
21
|
+
constructor(commonService) {
|
|
22
|
+
this.commonService = commonService;
|
|
23
|
+
}
|
|
24
|
+
async validateEmail(emailValidationRequestDto) {
|
|
25
|
+
return await this.commonService.validateEmail(emailValidationRequestDto.email);
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
exports.CommonController = CommonController;
|
|
29
|
+
__decorate([
|
|
30
|
+
(0, common_1.Get)('/validate-email'),
|
|
31
|
+
(0, common_1.UsePipes)(new common_1.ValidationPipe({ whitelist: true, transform: true })),
|
|
32
|
+
__param(0, (0, common_1.Query)()),
|
|
33
|
+
__metadata("design:type", Function),
|
|
34
|
+
__metadata("design:paramtypes", [email_validation_request_dto_1.EmailValidationRequestDto]),
|
|
35
|
+
__metadata("design:returntype", Promise)
|
|
36
|
+
], CommonController.prototype, "validateEmail", null);
|
|
37
|
+
exports.CommonController = CommonController = __decorate([
|
|
38
|
+
(0, response_interceptor_1.SerializeResponse)(),
|
|
39
|
+
(0, common_1.Controller)('common'),
|
|
40
|
+
__metadata("design:paramtypes", [common_service_1.CommonService])
|
|
41
|
+
], CommonController);
|
|
42
|
+
//# sourceMappingURL=common.controller.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.controller.js","sourceRoot":"","sources":["../../../src/common/controllers/common.controller.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,2CAMuB;AACvB,+DAA0D;AAC1D,kFAA2E;AAC3E,sFAA+E;AAIxE,IAAM,gBAAgB,GAAtB,MAAM,gBAAgB;IAC3B,YAA6B,aAA4B;QAA5B,kBAAa,GAAb,aAAa,CAAe;IAAG,CAAC;IAIvD,AAAN,KAAK,CAAC,aAAa,CACR,yBAAoD;QAE7D,OAAO,MAAM,IAAI,CAAC,aAAa,CAAC,aAAa,CAC3C,yBAAyB,CAAC,KAAK,CAChC,CAAA;IACH,CAAC;CACF,CAAA;AAZY,4CAAgB;AAKrB;IAFL,IAAA,YAAG,EAAC,iBAAiB,CAAC;IACtB,IAAA,iBAAQ,EAAC,IAAI,uBAAc,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAEhE,WAAA,IAAA,cAAK,GAAE,CAAA;;qCAA4B,wDAAyB;;qDAK9D;2BAXU,gBAAgB;IAF5B,IAAA,wCAAiB,GAAE;IACnB,IAAA,mBAAU,EAAC,QAAQ,CAAC;qCAEyB,8BAAa;GAD9C,gBAAgB,CAY5B"}
|
|
@@ -0,0 +1,21 @@
|
|
|
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.EmailValidationRequestDto = void 0;
|
|
13
|
+
const class_validator_1 = require("class-validator");
|
|
14
|
+
class EmailValidationRequestDto {
|
|
15
|
+
}
|
|
16
|
+
exports.EmailValidationRequestDto = EmailValidationRequestDto;
|
|
17
|
+
__decorate([
|
|
18
|
+
(0, class_validator_1.IsEmail)(),
|
|
19
|
+
__metadata("design:type", String)
|
|
20
|
+
], EmailValidationRequestDto.prototype, "email", void 0);
|
|
21
|
+
//# sourceMappingURL=email-validation-request.dto.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-validation-request.dto.js","sourceRoot":"","sources":["../../../src/common/dto/email-validation-request.dto.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,qDAAyC;AAEzC,MAAa,yBAAyB;CAGrC;AAHD,8DAGC;AADC;IADC,IAAA,yBAAO,GAAE;;wDACG"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-validation-response.dto.js","sourceRoot":"","sources":["../../../src/common/dto/email-validation-response.dto.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"email-validation-option.interface.js","sourceRoot":"","sources":["../../../src/common/interfaces/email-validation-option.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import { EmailValidationOption } from '../interfaces/email-validation-option.interface';
|
|
2
|
+
import { EmailValidationResponseDto } from '../dto/email-validation-response.dto';
|
|
3
|
+
export declare class CommonService {
|
|
4
|
+
constructor();
|
|
5
|
+
validateEmail(email: string, options?: EmailValidationOption): Promise<EmailValidationResponseDto>;
|
|
6
|
+
}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.CommonService = void 0;
|
|
4
|
+
const class_validator_1 = require("class-validator");
|
|
5
|
+
const default_email_validation_option_1 = require("../const/default-email-validation-option");
|
|
6
|
+
const get_mx_1 = require("../utils/get-mx");
|
|
7
|
+
const config_1 = require("../const/config");
|
|
8
|
+
const validate_smtp_1 = require("../utils/validate-smtp");
|
|
9
|
+
const const_1 = require("../const");
|
|
10
|
+
class CommonService {
|
|
11
|
+
constructor() { }
|
|
12
|
+
async validateEmail(email, options) {
|
|
13
|
+
try {
|
|
14
|
+
if (!options) {
|
|
15
|
+
options = default_email_validation_option_1.defaultEmailValidationOption;
|
|
16
|
+
}
|
|
17
|
+
if (options.validateRegEx) {
|
|
18
|
+
const regExValidated = (0, class_validator_1.isEmail)(email);
|
|
19
|
+
if (regExValidated == false) {
|
|
20
|
+
throw const_1.INVALID_REGEX;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
let mx;
|
|
24
|
+
if (options.validateMX) {
|
|
25
|
+
const domain = email.split('@')[1];
|
|
26
|
+
mx = await (0, get_mx_1.getMX)(domain);
|
|
27
|
+
}
|
|
28
|
+
if (options.validateSMTP) {
|
|
29
|
+
await Promise.any(config_1.smtpPorts.map(port => (0, validate_smtp_1.validateSMTP)(config_1.emailSender, email, mx.exchange, port)));
|
|
30
|
+
}
|
|
31
|
+
return { success: true };
|
|
32
|
+
}
|
|
33
|
+
catch (error) {
|
|
34
|
+
console.log('error common/src/common/services/common.service.ts', error);
|
|
35
|
+
return {
|
|
36
|
+
success: false,
|
|
37
|
+
message: error.message ? error.message : error,
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
exports.CommonService = CommonService;
|
|
43
|
+
//# sourceMappingURL=common.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"common.service.js","sourceRoot":"","sources":["../../../src/common/services/common.service.ts"],"names":[],"mappings":";;;AAAA,qDAAyC;AACzC,8FAAuF;AAGvF,4CAAuC;AACvC,4CAAwD;AACxD,0DAAqD;AAErD,oCAAwC;AAExC,MAAa,aAAa;IACxB,gBAAe,CAAC;IAEhB,KAAK,CAAC,aAAa,CACjB,KAAa,EACb,OAA+B;QAE/B,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,OAAO,GAAG,8DAA4B,CAAA;YACxC,CAAC;YAED,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC1B,MAAM,cAAc,GAAG,IAAA,yBAAO,EAAC,KAAK,CAAC,CAAA;gBACrC,IAAI,cAAc,IAAI,KAAK,EAAE,CAAC;oBAC5B,MAAM,qBAAa,CAAA;gBACrB,CAAC;YACH,CAAC;YAED,IAAI,EAAgB,CAAA;YACpB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;gBACvB,MAAM,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAA;gBAClC,EAAE,GAAG,MAAM,IAAA,cAAK,EAAC,MAAM,CAAC,CAAA;YAC1B,CAAC;YAED,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;gBACzB,MAAM,OAAO,CAAC,GAAG,CACf,kBAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CACnB,IAAA,4BAAY,EAAC,oBAAW,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,IAAI,CAAC,CACpD,CACF,CAAA;YACH,CAAC;YAED,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAA;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,GAAG,CAAC,oDAAoD,EAAE,KAAK,CAAC,CAAA;YACxE,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;aAC/C,CAAA;QACH,CAAC;IACH,CAAC;CACF;AA1CD,sCA0CC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.getMX = void 0;
|
|
4
|
+
const dns_1 = require("dns");
|
|
5
|
+
const const_1 = require("../const");
|
|
6
|
+
const getMX = async (domain) => {
|
|
7
|
+
return await new Promise((resolve, reject) => dns_1.default.resolveMx(domain, (error, addresses) => {
|
|
8
|
+
if (error) {
|
|
9
|
+
reject(const_1.INVALID_MX);
|
|
10
|
+
}
|
|
11
|
+
else {
|
|
12
|
+
let bestIndex = 0;
|
|
13
|
+
for (let i = 0; i < addresses.length; i++) {
|
|
14
|
+
if (addresses[i].priority < addresses[bestIndex].priority) {
|
|
15
|
+
bestIndex = i;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
resolve(addresses[bestIndex]);
|
|
19
|
+
}
|
|
20
|
+
}));
|
|
21
|
+
};
|
|
22
|
+
exports.getMX = getMX;
|
|
23
|
+
//# sourceMappingURL=get-mx.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-mx.js","sourceRoot":"","sources":["../../../src/common/utils/get-mx.ts"],"names":[],"mappings":";;;AAAA,6BAAqB;AACrB,oCAAqC;AAE9B,MAAM,KAAK,GAAG,KAAK,EAAE,MAAc,EAAyB,EAAE;IACnE,OAAO,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CAC3C,aAAG,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,SAAS,EAAE,EAAE;QACzC,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,CAAC,kBAAU,CAAC,CAAA;QACpB,CAAC;aAAM,CAAC;YACN,IAAI,SAAS,GAAG,CAAC,CAAA;YACjB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC1C,IAAI,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,GAAG,SAAS,CAAC,SAAS,CAAC,CAAC,QAAQ,EAAE,CAAC;oBAC1D,SAAS,GAAG,CAAC,CAAA;gBACf,CAAC;YACH,CAAC;YACD,OAAO,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC,CAAC,CACH,CAAA;AACH,CAAC,CAAA;AAhBY,QAAA,KAAK,SAgBjB"}
|
|
@@ -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("./get-mx"), exports);
|
|
18
|
+
__exportStar(require("./validate-smtp"), exports);
|
|
19
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/common/utils/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAAA,2CAAwB;AACxB,kDAA+B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const validateSMTP: (sender: string, email: string, exchange: string, port: number) => Promise<void>;
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.validateSMTP = void 0;
|
|
4
|
+
const net_1 = require("net");
|
|
5
|
+
const config_1 = require("../const/config");
|
|
6
|
+
const smtp_codes_1 = require("../const/smtp-codes");
|
|
7
|
+
const const_1 = require("../const");
|
|
8
|
+
const validateSMTP = async (sender, email, exchange, port) => {
|
|
9
|
+
return new Promise((resolve, reject) => {
|
|
10
|
+
const socket = net_1.default.createConnection(port, exchange);
|
|
11
|
+
socket.setEncoding('ascii');
|
|
12
|
+
socket.setTimeout(config_1.smtpSocketTimeout);
|
|
13
|
+
const commands = [
|
|
14
|
+
`EHLO ${exchange}\r\n`,
|
|
15
|
+
`MAIL FROM: <${sender}>\r\n`,
|
|
16
|
+
`RCPT TO: <${email}>\r\n`,
|
|
17
|
+
];
|
|
18
|
+
let i = 0;
|
|
19
|
+
socket.on('next', () => {
|
|
20
|
+
if (i < commands.length) {
|
|
21
|
+
if (socket.writable) {
|
|
22
|
+
socket.write(commands[i++]);
|
|
23
|
+
}
|
|
24
|
+
else {
|
|
25
|
+
socket.emit('fail', 'Unrecognized SMTP response.');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
socket.emit('success');
|
|
30
|
+
}
|
|
31
|
+
});
|
|
32
|
+
socket.on('connect', () => {
|
|
33
|
+
socket.on('data', msg => {
|
|
34
|
+
const success = msg.indexOf(220) !== -1 || msg.indexOf(250) !== -1;
|
|
35
|
+
if (success) {
|
|
36
|
+
socket.emit('next');
|
|
37
|
+
}
|
|
38
|
+
else {
|
|
39
|
+
const smtpCode = Object.keys(smtp_codes_1.smtpCodes).find(code => msg.indexOf(code) !== -1);
|
|
40
|
+
if (smtpCode) {
|
|
41
|
+
socket.emit('fail', smtp_codes_1.smtpCodes[smtpCode]);
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
socket.emit('fail');
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
});
|
|
49
|
+
socket.on('success', () => {
|
|
50
|
+
resolve();
|
|
51
|
+
if (socket.writable && !socket.destroyed) {
|
|
52
|
+
socket.write(`quit\r\n`);
|
|
53
|
+
socket.end();
|
|
54
|
+
socket.destroy();
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
socket.on('error', error => {
|
|
58
|
+
socket.emit('fail', error);
|
|
59
|
+
});
|
|
60
|
+
socket.on('close', error => {
|
|
61
|
+
if (error) {
|
|
62
|
+
socket.emit('fail');
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
socket.once('fail', msg => {
|
|
66
|
+
const message = msg ? msg : 'Unrecognized SMTP response.';
|
|
67
|
+
reject(Object.assign({}, const_1.INVALID_SMTP, { message: message }));
|
|
68
|
+
if (socket.writable && !socket.destroyed) {
|
|
69
|
+
socket.write(`quit\r\n`);
|
|
70
|
+
socket.end();
|
|
71
|
+
socket.destroy();
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
socket.on('timeout', () => {
|
|
75
|
+
socket.emit('fail', 'Timeout');
|
|
76
|
+
});
|
|
77
|
+
});
|
|
78
|
+
};
|
|
79
|
+
exports.validateSMTP = validateSMTP;
|
|
80
|
+
//# sourceMappingURL=validate-smtp.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validate-smtp.js","sourceRoot":"","sources":["../../../src/common/utils/validate-smtp.ts"],"names":[],"mappings":"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"}
|