@comet/cms-api 9.0.0-canary-20250915134805 → 9.0.0-canary-20251001104910
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/lib/auth/services/jwt.auth-service.d.ts.map +1 -1
- package/lib/auth/services/jwt.auth-service.js +2 -6
- package/lib/auth/services/jwt.auth-service.js.map +1 -1
- package/lib/blocks/blocks-transformer.d.ts.map +1 -1
- package/lib/blocks/blocks-transformer.js +2 -5
- package/lib/blocks/blocks-transformer.js.map +1 -1
- package/lib/common/entityInfo/entity-info.service.d.ts +0 -1
- package/lib/common/entityInfo/entity-info.service.d.ts.map +1 -1
- package/lib/common/entityInfo/entity-info.service.js +2 -6
- package/lib/common/entityInfo/entity-info.service.js.map +1 -1
- package/lib/common/filter/mikro-orm.d.ts +6 -1
- package/lib/common/filter/mikro-orm.d.ts.map +1 -1
- package/lib/common/filter/mikro-orm.js +16 -0
- package/lib/common/filter/mikro-orm.js.map +1 -1
- package/lib/common/helper/is-injectable-service.helper.d.ts +3 -0
- package/lib/common/helper/is-injectable-service.helper.d.ts.map +1 -0
- package/lib/common/helper/is-injectable-service.helper.js +8 -0
- package/lib/common/helper/is-injectable-service.helper.js.map +1 -0
- package/lib/dam/dam.module.d.ts.map +1 -1
- package/lib/dam/dam.module.js +1 -6
- package/lib/dam/dam.module.js.map +1 -1
- package/lib/index.d.ts +2 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +6 -3
- package/lib/index.js.map +1 -1
- package/lib/mailer/entities/mailer-log-status.enum.d.ts +5 -0
- package/lib/mailer/entities/mailer-log-status.enum.d.ts.map +1 -0
- package/lib/mailer/entities/mailer-log-status.enum.js +13 -0
- package/lib/mailer/entities/mailer-log-status.enum.js.map +1 -0
- package/lib/mailer/entities/mailer-log.entity.d.ts +17 -0
- package/lib/mailer/entities/mailer-log.entity.d.ts.map +1 -0
- package/lib/mailer/entities/mailer-log.entity.js +74 -0
- package/lib/mailer/entities/mailer-log.entity.js.map +1 -0
- package/lib/mailer/mailer.module.d.ts +3 -0
- package/lib/mailer/mailer.module.d.ts.map +1 -1
- package/lib/mailer/mailer.module.js +3 -0
- package/lib/mailer/mailer.module.js.map +1 -1
- package/lib/mailer/mailer.service.d.ts +12 -4
- package/lib/mailer/mailer.service.d.ts.map +1 -1
- package/lib/mailer/mailer.service.js +46 -3
- package/lib/mailer/mailer.service.js.map +1 -1
- package/lib/mikro-orm/migrations/Migration20250612134629.d.ts +5 -0
- package/lib/mikro-orm/migrations/Migration20250612134629.d.ts.map +1 -0
- package/lib/mikro-orm/migrations/Migration20250612134629.js +34 -0
- package/lib/mikro-orm/migrations/Migration20250612134629.js.map +1 -0
- package/lib/mikro-orm/mikro-orm.module.d.ts.map +1 -1
- package/lib/mikro-orm/mikro-orm.module.js +2 -0
- package/lib/mikro-orm/mikro-orm.module.js.map +1 -1
- package/lib/tsconfig.build.tsbuildinfo +1 -1
- package/lib/user-permissions/content-scope.service.d.ts +0 -1
- package/lib/user-permissions/content-scope.service.d.ts.map +1 -1
- package/lib/user-permissions/content-scope.service.js +2 -6
- package/lib/user-permissions/content-scope.service.js.map +1 -1
- package/lib/warnings/warning-checker.command.d.ts +0 -2
- package/lib/warnings/warning-checker.command.d.ts.map +1 -1
- package/lib/warnings/warning-checker.command.js +11 -12
- package/lib/warnings/warning-checker.command.js.map +1 -1
- package/lib/warnings/warning-event-subscriber.d.ts +0 -2
- package/lib/warnings/warning-event-subscriber.d.ts.map +1 -1
- package/lib/warnings/warning-event-subscriber.js +11 -12
- package/lib/warnings/warning-event-subscriber.js.map +1 -1
- package/package.json +4 -4
|
@@ -0,0 +1,74 @@
|
|
|
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.MailerLog = void 0;
|
|
13
|
+
const core_1 = require("@mikro-orm/core");
|
|
14
|
+
const postgresql_1 = require("@mikro-orm/postgresql");
|
|
15
|
+
const graphql_1 = require("@nestjs/graphql");
|
|
16
|
+
const uuid_1 = require("uuid");
|
|
17
|
+
const mailer_log_status_enum_1 = require("./mailer-log-status.enum");
|
|
18
|
+
let MailerLog = class MailerLog extends postgresql_1.BaseEntity {
|
|
19
|
+
constructor() {
|
|
20
|
+
super(...arguments);
|
|
21
|
+
this.id = (0, uuid_1.v4)();
|
|
22
|
+
this.status = mailer_log_status_enum_1.MailerLogStatus.error;
|
|
23
|
+
this.createdAt = new Date();
|
|
24
|
+
// @Field(() => [File])
|
|
25
|
+
// @OneToMany(() => File, (file) => file.mailerLog, { orphanRemoval: true })
|
|
26
|
+
// attachments = new Collection<File>(this);
|
|
27
|
+
}
|
|
28
|
+
};
|
|
29
|
+
exports.MailerLog = MailerLog;
|
|
30
|
+
__decorate([
|
|
31
|
+
(0, graphql_1.Field)(() => graphql_1.ID),
|
|
32
|
+
(0, postgresql_1.PrimaryKey)({ type: "uuid" }),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], MailerLog.prototype, "id", void 0);
|
|
35
|
+
__decorate([
|
|
36
|
+
(0, core_1.Enum)({ items: () => mailer_log_status_enum_1.MailerLogStatus }),
|
|
37
|
+
(0, graphql_1.Field)(() => mailer_log_status_enum_1.MailerLogStatus),
|
|
38
|
+
__metadata("design:type", String)
|
|
39
|
+
], MailerLog.prototype, "status", void 0);
|
|
40
|
+
__decorate([
|
|
41
|
+
(0, graphql_1.Field)(() => [String]),
|
|
42
|
+
(0, postgresql_1.Property)({ type: postgresql_1.ArrayType }),
|
|
43
|
+
__metadata("design:type", Array)
|
|
44
|
+
], MailerLog.prototype, "to", void 0);
|
|
45
|
+
__decorate([
|
|
46
|
+
(0, postgresql_1.Property)({ type: "string", columnType: "text", nullable: true }),
|
|
47
|
+
__metadata("design:type", String)
|
|
48
|
+
], MailerLog.prototype, "subject", void 0);
|
|
49
|
+
__decorate([
|
|
50
|
+
(0, graphql_1.Field)(),
|
|
51
|
+
(0, postgresql_1.Property)({ columnType: "timestamp with time zone" }),
|
|
52
|
+
__metadata("design:type", Date)
|
|
53
|
+
], MailerLog.prototype, "createdAt", void 0);
|
|
54
|
+
__decorate([
|
|
55
|
+
(0, postgresql_1.Property)({ type: "json", columnType: "jsonb" }),
|
|
56
|
+
__metadata("design:type", Object)
|
|
57
|
+
], MailerLog.prototype, "mailOptions", void 0);
|
|
58
|
+
__decorate([
|
|
59
|
+
(0, postgresql_1.Property)({ type: "json", columnType: "jsonb", nullable: true }),
|
|
60
|
+
__metadata("design:type", Object)
|
|
61
|
+
], MailerLog.prototype, "result", void 0);
|
|
62
|
+
__decorate([
|
|
63
|
+
(0, postgresql_1.Property)({ type: "json", columnType: "jsonb", nullable: true }),
|
|
64
|
+
__metadata("design:type", Object)
|
|
65
|
+
], MailerLog.prototype, "additionalData", void 0);
|
|
66
|
+
__decorate([
|
|
67
|
+
(0, postgresql_1.Property)({ nullable: true, index: true }),
|
|
68
|
+
__metadata("design:type", String)
|
|
69
|
+
], MailerLog.prototype, "mailTypeForLogging", void 0);
|
|
70
|
+
exports.MailerLog = MailerLog = __decorate([
|
|
71
|
+
(0, graphql_1.ObjectType)(),
|
|
72
|
+
(0, postgresql_1.Entity)()
|
|
73
|
+
], MailerLog);
|
|
74
|
+
//# sourceMappingURL=mailer-log.entity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mailer-log.entity.js","sourceRoot":"","sources":["../../../src/mailer/entities/mailer-log.entity.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAuC;AACvC,sDAA2G;AAC3G,6CAAwD;AAGxD,+BAA0B;AAE1B,qEAA2D;AAIpD,IAAM,SAAS,GAAf,MAAM,SAA0B,SAAQ,uBAAU;IAAlD;;QAKH,OAAE,GAAW,IAAA,SAAE,GAAE,CAAC;QAIlB,WAAM,GAAoB,wCAAe,CAAC,KAAK,CAAC;QAWhD,cAAS,GAAS,IAAI,IAAI,EAAE,CAAC;QAc7B,uBAAuB;QACvB,4EAA4E;QAC5E,4CAA4C;IAChD,CAAC;CAAA,CAAA;AArCY,8BAAS;AAKlB;IAFC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,YAAE,CAAC;IACf,IAAA,uBAAU,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;;qCACX;AAIlB;IAFC,IAAA,WAAI,EAAC,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,wCAAe,EAAE,CAAC;IACtC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,wCAAe,CAAC;;yCACmB;AAIhD;IAFC,IAAA,eAAK,EAAC,GAAG,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;IACrB,IAAA,qBAAQ,EAAC,EAAE,IAAI,EAAE,sBAAS,EAAE,CAAC;;qCACjB;AAGb;IADC,IAAA,qBAAQ,EAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;0CAChD;AAIjB;IAFC,IAAA,eAAK,GAAE;IACP,IAAA,qBAAQ,EAAC,EAAE,UAAU,EAAE,0BAA0B,EAAE,CAAC;8BAC1C,IAAI;4CAAc;AAG7B;IADC,IAAA,qBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC;;8CACvB;AAGzB;IADC,IAAA,qBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;yCACxC;AAGxB;IADC,IAAA,qBAAQ,EAAC,EAAE,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;;iDAChC;AAGhC;IADC,IAAA,qBAAQ,EAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;;qDACd;oBAhCnB,SAAS;IAFrB,IAAA,oBAAU,GAAE;IACZ,IAAA,mBAAM,GAAE;GACI,SAAS,CAqCrB"}
|
|
@@ -4,6 +4,9 @@ export type MailerModuleConfig = {
|
|
|
4
4
|
defaultFrom: string;
|
|
5
5
|
sendAllMailsTo?: string[];
|
|
6
6
|
sendAllMailsBcc?: string[];
|
|
7
|
+
disableMailLog?: boolean;
|
|
8
|
+
/** @default 90 */
|
|
9
|
+
daysToKeepMailLog?: number;
|
|
7
10
|
transport: SMTPTransport | SMTPTransport.Options;
|
|
8
11
|
};
|
|
9
12
|
export declare class MailerModule {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer.module.d.ts","sourceRoot":"","sources":["../../src/mailer/mailer.module.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mailer.module.d.ts","sourceRoot":"","sources":["../../src/mailer/mailer.module.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,aAAa,EAAkB,MAAM,gBAAgB,CAAC;AAEpE,OAAO,aAAa,MAAM,+BAA+B,CAAC;AAO1D,MAAM,MAAM,kBAAkB,GAAG;IAC7B,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,kBAAkB;IAClB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,EAAE,aAAa,GAAG,aAAa,CAAC,OAAO,CAAC;CACpD,CAAC;AAEF,qBAEa,YAAY;IACrB,MAAM,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,EAAE,kBAAkB,GAAG,aAAa;CAc/E"}
|
|
@@ -19,8 +19,10 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
19
19
|
var MailerModule_1;
|
|
20
20
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
21
21
|
exports.MailerModule = void 0;
|
|
22
|
+
const nestjs_1 = require("@mikro-orm/nestjs");
|
|
22
23
|
const common_1 = require("@nestjs/common");
|
|
23
24
|
const nodemailer_1 = require("nodemailer");
|
|
25
|
+
const mailer_log_entity_1 = require("./entities/mailer-log.entity");
|
|
24
26
|
const mailer_constants_1 = require("./mailer.constants");
|
|
25
27
|
const mailer_service_1 = require("./mailer.service");
|
|
26
28
|
const send_test_mail_command_1 = require("./send-test-mail.command");
|
|
@@ -30,6 +32,7 @@ let MailerModule = MailerModule_1 = class MailerModule {
|
|
|
30
32
|
const mailerTransport = (0, nodemailer_1.createTransport)(transport);
|
|
31
33
|
return {
|
|
32
34
|
module: MailerModule_1,
|
|
35
|
+
imports: [nestjs_1.MikroOrmModule.forFeature([mailer_log_entity_1.MailerLog])],
|
|
33
36
|
providers: [
|
|
34
37
|
{ provide: mailer_constants_1.MAILER_SERVICE_CONFIG, useValue: config },
|
|
35
38
|
{ provide: mailer_constants_1.MAILER_MODULE_TRANSPORT, useValue: mailerTransport },
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer.module.js","sourceRoot":"","sources":["../../src/mailer/mailer.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,2CAAoE;AACpE,2CAA6C;AAG7C,yDAAoF;AACpF,qDAAiD;AACjD,qEAA+D;
|
|
1
|
+
{"version":3,"file":"mailer.module.js","sourceRoot":"","sources":["../../src/mailer/mailer.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;AAAA,8CAAmD;AACnD,2CAAoE;AACpE,2CAA6C;AAG7C,oEAAyD;AACzD,yDAAoF;AACpF,qDAAiD;AACjD,qEAA+D;AAcxD,IAAM,YAAY,oBAAlB,MAAM,YAAY;IACrB,MAAM,CAAC,QAAQ,CAAC,EAA4C;YAA5C,EAAE,SAAS,OAAiC,EAA5B,MAAM,cAAtB,aAAwB,CAAF;QAClC,MAAM,eAAe,GAAG,IAAA,4BAAe,EAAC,SAAS,CAAC,CAAC;QACnD,OAAO;YACH,MAAM,EAAE,cAAY;YACpB,OAAO,EAAE,CAAC,uBAAc,CAAC,UAAU,CAAC,CAAC,6BAAS,CAAC,CAAC,CAAC;YACjD,SAAS,EAAE;gBACP,EAAE,OAAO,EAAE,wCAAqB,EAAE,QAAQ,EAAE,MAAM,EAAE;gBACpD,EAAE,OAAO,EAAE,0CAAuB,EAAE,QAAQ,EAAE,eAAe,EAAE;gBAC/D,8BAAa;gBACb,4CAAmB;aACtB;YACD,OAAO,EAAE,CAAC,8BAAa,CAAC;SAC3B,CAAC;IACN,CAAC;CACJ,CAAA;AAfY,oCAAY;uBAAZ,YAAY;IAFxB,IAAA,eAAM,GAAE;IACR,IAAA,eAAM,EAAC,EAAE,CAAC;GACE,YAAY,CAexB"}
|
|
@@ -1,12 +1,17 @@
|
|
|
1
|
+
import { EntityManager } from "@mikro-orm/core";
|
|
2
|
+
import { EntityRepository } from "@mikro-orm/postgresql";
|
|
1
3
|
import { Transporter } from "nodemailer";
|
|
2
|
-
import { Options as MailOptions } from "nodemailer/lib/mailer";
|
|
4
|
+
import Mail, { Options as MailOptions } from "nodemailer/lib/mailer";
|
|
5
|
+
import { MailerLog } from "./entities/mailer-log.entity";
|
|
3
6
|
import { MailerModuleConfig } from "./mailer.module";
|
|
4
7
|
type MailerServiceConfig = Omit<MailerModuleConfig, "transport">;
|
|
5
8
|
export declare class MailerService {
|
|
6
9
|
private readonly mailerConfig;
|
|
7
10
|
private readonly mailerTransport;
|
|
11
|
+
private readonly entityManager;
|
|
12
|
+
private readonly mailerLogRepository;
|
|
8
13
|
private readonly logger;
|
|
9
|
-
constructor(mailerConfig: MailerServiceConfig, mailerTransport: Transporter);
|
|
14
|
+
constructor(mailerConfig: MailerServiceConfig, mailerTransport: Transporter, entityManager: EntityManager, mailerLogRepository: EntityRepository<MailerLog<unknown>>);
|
|
10
15
|
private fillMailOptionsDefaults;
|
|
11
16
|
/**
|
|
12
17
|
* Sends a mail and logs it in the database.
|
|
@@ -15,11 +20,14 @@ export declare class MailerService {
|
|
|
15
20
|
* @param mailTypeForLogging Mail type, e.g. order confirmation, order cancellation, etc. to filter in the mailer log
|
|
16
21
|
* @param additionalData Put your additional data here, e.g. orderId, resourcePoolId, etc.
|
|
17
22
|
* @param originMailOptions `from` defaults to this.config.mailer.defaultFrom, sendAllMailsBcc is always added to `bcc`
|
|
23
|
+
* @param logMail When set to false, the email will not be logged to the database.
|
|
18
24
|
*/
|
|
19
|
-
sendMail({ mailTypeForLogging, additionalData, ...originMailOptions }: MailOptions & {
|
|
25
|
+
sendMail({ mailTypeForLogging, additionalData, logMail, ...originMailOptions }: MailOptions & {
|
|
20
26
|
mailTypeForLogging?: string;
|
|
21
27
|
additionalData?: unknown;
|
|
22
|
-
|
|
28
|
+
logMail?: boolean;
|
|
29
|
+
}): Promise<Mail>;
|
|
30
|
+
private convertAddressToString;
|
|
23
31
|
private normalizeToArray;
|
|
24
32
|
}
|
|
25
33
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer.service.d.ts","sourceRoot":"","sources":["../../src/mailer/mailer.service.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"mailer.service.d.ts","sourceRoot":"","sources":["../../src/mailer/mailer.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAEhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzC,OAAO,IAAI,EAAE,EAAW,OAAO,IAAI,WAAW,EAAE,MAAM,uBAAuB,CAAC;AAE9E,OAAO,EAAE,SAAS,EAAE,MAAM,8BAA8B,CAAC;AAGzD,OAAO,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAErD,KAAK,mBAAmB,GAAG,IAAI,CAAC,kBAAkB,EAAE,WAAW,CAAC,CAAC;AAEjE,qBACa,aAAa;IAIa,OAAO,CAAC,QAAQ,CAAC,YAAY;IAC3B,OAAO,CAAC,QAAQ,CAAC,eAAe;IACjE,OAAO,CAAC,QAAQ,CAAC,aAAa;IACD,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IANrE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkC;gBAGL,YAAY,EAAE,mBAAmB,EAC/B,eAAe,EAAE,WAAW,EAC7D,aAAa,EAAE,aAAa,EACC,mBAAmB,EAAE,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC;IAG3G,OAAO,CAAC,uBAAuB;IAU/B;;;;;;;;OAQG;IACG,QAAQ,CAAC,EACX,kBAAkB,EAClB,cAAc,EACd,OAAc,EACd,GAAG,iBAAiB,EACvB,EAAE,WAAW,GAAG;QAAE,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,OAAO,CAAC,EAAE,OAAO,CAAA;KAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C7G,OAAO,CAAC,sBAAsB;IAI9B,OAAO,CAAC,gBAAgB;CAG3B"}
|
|
@@ -34,12 +34,20 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
34
34
|
var MailerService_1;
|
|
35
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
36
|
exports.MailerService = void 0;
|
|
37
|
+
const core_1 = require("@mikro-orm/core");
|
|
38
|
+
const nestjs_1 = require("@mikro-orm/nestjs");
|
|
39
|
+
const postgresql_1 = require("@mikro-orm/postgresql");
|
|
37
40
|
const common_1 = require("@nestjs/common");
|
|
41
|
+
const date_fns_1 = require("date-fns");
|
|
42
|
+
const mailer_log_entity_1 = require("./entities/mailer-log.entity");
|
|
43
|
+
const mailer_log_status_enum_1 = require("./entities/mailer-log-status.enum");
|
|
38
44
|
const mailer_constants_1 = require("./mailer.constants");
|
|
39
45
|
let MailerService = MailerService_1 = class MailerService {
|
|
40
|
-
constructor(mailerConfig, mailerTransport) {
|
|
46
|
+
constructor(mailerConfig, mailerTransport, entityManager, mailerLogRepository) {
|
|
41
47
|
this.mailerConfig = mailerConfig;
|
|
42
48
|
this.mailerTransport = mailerTransport;
|
|
49
|
+
this.entityManager = entityManager;
|
|
50
|
+
this.mailerLogRepository = mailerLogRepository;
|
|
43
51
|
this.logger = new common_1.Logger(MailerService_1.name);
|
|
44
52
|
}
|
|
45
53
|
fillMailOptionsDefaults(originMailOptions) {
|
|
@@ -54,20 +62,53 @@ let MailerService = MailerService_1 = class MailerService {
|
|
|
54
62
|
* @param mailTypeForLogging Mail type, e.g. order confirmation, order cancellation, etc. to filter in the mailer log
|
|
55
63
|
* @param additionalData Put your additional data here, e.g. orderId, resourcePoolId, etc.
|
|
56
64
|
* @param originMailOptions `from` defaults to this.config.mailer.defaultFrom, sendAllMailsBcc is always added to `bcc`
|
|
65
|
+
* @param logMail When set to false, the email will not be logged to the database.
|
|
57
66
|
*/
|
|
58
67
|
sendMail(_a) {
|
|
59
68
|
return __awaiter(this, void 0, void 0, function* () {
|
|
60
|
-
var
|
|
69
|
+
var _b;
|
|
70
|
+
var { mailTypeForLogging, additionalData, logMail = true } = _a, originMailOptions = __rest(_a, ["mailTypeForLogging", "additionalData", "logMail"]);
|
|
61
71
|
const mailOptionsWithDefaults = this.fillMailOptionsDefaults(originMailOptions);
|
|
72
|
+
let logEntryId;
|
|
73
|
+
if (logMail && !this.mailerConfig.disableMailLog) {
|
|
74
|
+
yield this.entityManager.fork().transactional((em) => {
|
|
75
|
+
const logEntry = em.getRepository(mailer_log_entity_1.MailerLog).create({
|
|
76
|
+
status: mailer_log_status_enum_1.MailerLogStatus.error,
|
|
77
|
+
to: this.normalizeToArray(originMailOptions.to).map(this.convertAddressToString),
|
|
78
|
+
subject: originMailOptions.subject,
|
|
79
|
+
mailOptions: mailOptionsWithDefaults,
|
|
80
|
+
additionalData,
|
|
81
|
+
mailTypeForLogging, // for statistic and filter purposes
|
|
82
|
+
});
|
|
83
|
+
logEntryId = logEntry.id;
|
|
84
|
+
});
|
|
85
|
+
}
|
|
62
86
|
// this is needed because only on production stage we are allowed to send mails to customers
|
|
63
87
|
const mailOptions = this.mailerConfig.sendAllMailsTo
|
|
64
88
|
? Object.assign(Object.assign({}, mailOptionsWithDefaults), { to: this.mailerConfig.sendAllMailsTo, cc: undefined, bcc: undefined }) : mailOptionsWithDefaults;
|
|
65
89
|
const result = yield this.mailerTransport.sendMail(mailOptions);
|
|
90
|
+
if (logMail && !this.mailerConfig.disableMailLog) {
|
|
91
|
+
yield this.entityManager.fork().transactional((em) => __awaiter(this, void 0, void 0, function* () {
|
|
92
|
+
if (!logEntryId)
|
|
93
|
+
return;
|
|
94
|
+
const logEntry = yield em.getRepository(mailer_log_entity_1.MailerLog).findOne({ id: logEntryId });
|
|
95
|
+
if (!logEntry)
|
|
96
|
+
return;
|
|
97
|
+
if (result.messageId)
|
|
98
|
+
logEntry.assign({ status: mailer_log_status_enum_1.MailerLogStatus.sent });
|
|
99
|
+
logEntry.assign({ result: result });
|
|
100
|
+
}));
|
|
101
|
+
}
|
|
66
102
|
if (!result.messageId)
|
|
67
103
|
throw new Error(`Sending mail failed, no messageId returned. MailOptions: ${JSON.stringify(mailOptions)}`);
|
|
104
|
+
// Delete outdated logs, purposely not using await because it is not important for the mail sending process
|
|
105
|
+
this.mailerLogRepository.nativeDelete({ createdAt: { $lt: (0, date_fns_1.subDays)(new Date(), (_b = this.mailerConfig.daysToKeepMailLog) !== null && _b !== void 0 ? _b : 90) } });
|
|
68
106
|
return result;
|
|
69
107
|
});
|
|
70
108
|
}
|
|
109
|
+
convertAddressToString(item) {
|
|
110
|
+
return typeof item === "string" ? item : `${item.name} <${item.address}>`;
|
|
111
|
+
}
|
|
71
112
|
normalizeToArray(item) {
|
|
72
113
|
return item ? (Array.isArray(item) ? item : [item]) : [];
|
|
73
114
|
}
|
|
@@ -77,6 +118,8 @@ exports.MailerService = MailerService = MailerService_1 = __decorate([
|
|
|
77
118
|
(0, common_1.Injectable)(),
|
|
78
119
|
__param(0, (0, common_1.Inject)(mailer_constants_1.MAILER_SERVICE_CONFIG)),
|
|
79
120
|
__param(1, (0, common_1.Inject)(mailer_constants_1.MAILER_MODULE_TRANSPORT)),
|
|
80
|
-
|
|
121
|
+
__param(3, (0, nestjs_1.InjectRepository)(mailer_log_entity_1.MailerLog)),
|
|
122
|
+
__metadata("design:paramtypes", [Object, Object, core_1.EntityManager,
|
|
123
|
+
postgresql_1.EntityRepository])
|
|
81
124
|
], MailerService);
|
|
82
125
|
//# sourceMappingURL=mailer.service.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mailer.service.js","sourceRoot":"","sources":["../../src/mailer/mailer.service.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,2CAA4D;
|
|
1
|
+
{"version":3,"file":"mailer.service.js","sourceRoot":"","sources":["../../src/mailer/mailer.service.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Migration20250612134629.d.ts","sourceRoot":"","sources":["../../../src/mikro-orm/migrations/Migration20250612134629.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,qBAAa,uBAAwB,SAAQ,SAAS;IAC5C,EAAE,IAAI,OAAO,CAAC,IAAI,CAAC;CAiB5B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Migration20250612134629 = void 0;
|
|
13
|
+
const migrations_1 = require("@mikro-orm/migrations");
|
|
14
|
+
class Migration20250612134629 extends migrations_1.Migration {
|
|
15
|
+
up() {
|
|
16
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
17
|
+
this.addSql(`create table if not exists "MailerLog" (
|
|
18
|
+
"id" uuid not null,
|
|
19
|
+
"status" text check ("status" in ('error', 'sent')) not null default 'error',
|
|
20
|
+
"to" text[] not null,
|
|
21
|
+
"subject" text null,
|
|
22
|
+
"createdAt" timestamp with time zone not null,
|
|
23
|
+
"mailOptions" jsonb not null,
|
|
24
|
+
"result" jsonb null,
|
|
25
|
+
"additionalData" jsonb null,
|
|
26
|
+
"mailTypeForLogging" varchar(255) null,
|
|
27
|
+
constraint "MailerLog_pkey" primary key ("id")
|
|
28
|
+
);`);
|
|
29
|
+
this.addSql('create index if not exists "MailerLog_mailTypeForLogging_index" on "MailerLog" ("mailTypeForLogging");');
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
exports.Migration20250612134629 = Migration20250612134629;
|
|
34
|
+
//# sourceMappingURL=Migration20250612134629.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Migration20250612134629.js","sourceRoot":"","sources":["../../../src/mikro-orm/migrations/Migration20250612134629.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,sDAAkD;AAElD,MAAa,uBAAwB,SAAQ,sBAAS;IAC5C,EAAE;;YACJ,IAAI,CAAC,MAAM,CACP;;;;;;;;;;;eAWG,CACN,CAAC;YACF,IAAI,CAAC,MAAM,CAAC,wGAAwG,CAAC,CAAC;QAC1H,CAAC;KAAA;CACJ;AAlBD,0DAkBC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mikro-orm.module.d.ts","sourceRoot":"","sources":["../../src/mikro-orm/mikro-orm.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,qBAAqB,IAAI,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC3H,OAAO,EAA4B,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"mikro-orm.module.d.ts","sourceRoot":"","sources":["../../src/mikro-orm/mikro-orm.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAA0C,qBAAqB,IAAI,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAC3H,OAAO,EAA4B,eAAe,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACpG,OAAO,EAAE,aAAa,EAAU,MAAM,gBAAgB,CAAC;AAiCvD,MAAM,WAAW,qBAAqB;IAClC,SAAS,EAAE,qBAAqB,CAAC;CACpC;AAED,wBAAgB,oBAAoB,CAAC,aAAa,EAAE,MAAM,GAAG,eAAe,EAAE,CAyB7E;AAED,wBAAgB,eAAe,CAAC,EAAE,UAAU,EAAE,GAAG,QAAQ,EAAE,EAAE,qBAAqB,CAAC,gBAAgB,CAAC,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CA+C7I;AAED,qBACa,cAAc;IACvB,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,EAAE,EAAE,gBAAgB,EAAE,GAAG,MAAM,EAAE,EAAE,EAAE,qBAAqB,GAAG,aAAa;CAcvG"}
|
|
@@ -53,6 +53,7 @@ const Migration20240814090503_1 = require("./migrations/Migration20240814090503"
|
|
|
53
53
|
const Migration20240814090541_1 = require("./migrations/Migration20240814090541");
|
|
54
54
|
const Migration20240814090653_1 = require("./migrations/Migration20240814090653");
|
|
55
55
|
const Migration20250403134629_1 = require("./migrations/Migration20250403134629");
|
|
56
|
+
const Migration20250612134629_1 = require("./migrations/Migration20250612134629");
|
|
56
57
|
const Migration20250623085054_1 = require("./migrations/Migration20250623085054");
|
|
57
58
|
const Migration20250623113026_1 = require("./migrations/Migration20250623113026");
|
|
58
59
|
function createMigrationsList(migrationsDir) {
|
|
@@ -105,6 +106,7 @@ function createOrmConfig(_a) {
|
|
|
105
106
|
{ name: "Migration20240814090541", class: Migration20240814090541_1.Migration20240814090541 },
|
|
106
107
|
{ name: "Migration20240814090653", class: Migration20240814090653_1.Migration20240814090653 },
|
|
107
108
|
{ name: "Migration20250403134629", class: Migration20250403134629_1.Migration20250403134629 },
|
|
109
|
+
{ name: "Migration20250612134629", class: Migration20250612134629_1.Migration20250612134629 },
|
|
108
110
|
{ name: "Migration20250623085054", class: Migration20250623085054_1.Migration20250623085054 },
|
|
109
111
|
{ name: "Migration20250623113026", class: Migration20250623113026_1.Migration20250623113026 },
|
|
110
112
|
...((migrations === null || migrations === void 0 ? void 0 : migrations.migrationsList) || []),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"mikro-orm.module.js","sourceRoot":"","sources":["../../src/mikro-orm/mikro-orm.module.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"mikro-orm.module.js","sourceRoot":"","sources":["../../src/mikro-orm/mikro-orm.module.ts"],"names":[],"mappings":"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"}
|