@flusys/nestjs-email 1.1.0-beta → 2.0.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/README.md +589 -0
- package/cjs/config/email.constants.js +0 -18
- package/cjs/config/index.js +0 -1
- package/cjs/controllers/email-config.controller.js +46 -4
- package/cjs/controllers/email-send.controller.js +13 -26
- package/cjs/controllers/email-template.controller.js +60 -11
- package/cjs/docs/email-swagger.config.js +18 -80
- package/cjs/dtos/email-config.dto.js +6 -106
- package/cjs/dtos/email-send.dto.js +101 -123
- package/cjs/dtos/email-template.dto.js +41 -103
- package/cjs/entities/email-config-with-company.entity.js +2 -2
- package/cjs/entities/email-config.entity.js +92 -3
- package/cjs/entities/email-template-with-company.entity.js +5 -3
- package/cjs/entities/email-template.entity.js +119 -3
- package/cjs/entities/index.js +34 -19
- package/cjs/index.js +1 -0
- package/cjs/interfaces/email-provider.interface.js +1 -3
- package/cjs/modules/email.module.js +50 -104
- package/cjs/providers/email-factory.service.js +37 -109
- package/cjs/providers/email-provider.registry.js +5 -15
- package/cjs/providers/mailgun-provider.js +54 -58
- package/cjs/providers/sendgrid-provider.js +68 -92
- package/cjs/providers/smtp-provider.js +58 -69
- package/cjs/{config → services}/email-config.service.js +9 -32
- package/cjs/services/email-datasource.provider.js +17 -104
- package/cjs/services/email-provider-config.service.js +28 -58
- package/cjs/services/email-send.service.js +120 -125
- package/cjs/services/email-template.service.js +62 -85
- package/cjs/services/index.js +2 -1
- package/cjs/utils/email-templates.util.js +64 -0
- package/cjs/utils/index.js +18 -0
- package/config/email.constants.d.ts +0 -9
- package/config/index.d.ts +0 -1
- package/controllers/email-send.controller.d.ts +5 -12
- package/controllers/email-template.controller.d.ts +5 -7
- package/dtos/email-config.dto.d.ts +5 -13
- package/dtos/email-send.dto.d.ts +17 -21
- package/dtos/email-template.dto.d.ts +5 -16
- package/entities/email-config-with-company.entity.d.ts +2 -2
- package/entities/email-config.entity.d.ts +10 -2
- package/entities/email-template-with-company.entity.d.ts +2 -2
- package/entities/email-template.entity.d.ts +13 -2
- package/entities/index.d.ts +9 -3
- package/fesm/config/email.constants.js +0 -9
- package/fesm/config/index.js +0 -1
- package/fesm/controllers/email-config.controller.js +49 -7
- package/fesm/controllers/email-send.controller.js +13 -26
- package/fesm/controllers/email-template.controller.js +61 -12
- package/fesm/docs/email-swagger.config.js +21 -86
- package/fesm/dtos/email-config.dto.js +9 -115
- package/fesm/dtos/email-send.dto.js +103 -139
- package/fesm/dtos/email-template.dto.js +43 -111
- package/fesm/entities/email-config-with-company.entity.js +2 -2
- package/fesm/entities/email-config.entity.js +93 -4
- package/fesm/entities/email-template-with-company.entity.js +5 -3
- package/fesm/entities/email-template.entity.js +120 -4
- package/fesm/entities/index.js +22 -16
- package/fesm/index.js +1 -0
- package/fesm/interfaces/email-config.interface.js +1 -3
- package/fesm/interfaces/email-module-options.interface.js +1 -3
- package/fesm/interfaces/email-provider.interface.js +1 -5
- package/fesm/interfaces/email-template.interface.js +1 -3
- package/fesm/modules/email.module.js +52 -106
- package/fesm/providers/email-factory.service.js +38 -69
- package/fesm/providers/email-provider.registry.js +6 -19
- package/fesm/providers/mailgun-provider.js +55 -63
- package/fesm/providers/sendgrid-provider.js +69 -97
- package/fesm/providers/smtp-provider.js +59 -73
- package/fesm/{config → services}/email-config.service.js +9 -32
- package/fesm/services/email-datasource.provider.js +18 -64
- package/fesm/services/email-provider-config.service.js +26 -56
- package/fesm/services/email-send.service.js +118 -123
- package/fesm/services/email-template.service.js +60 -83
- package/fesm/services/index.js +2 -1
- package/fesm/utils/email-templates.util.js +47 -0
- package/fesm/utils/index.js +1 -0
- package/index.d.ts +1 -0
- package/interfaces/email-config.interface.d.ts +6 -0
- package/interfaces/email-module-options.interface.d.ts +0 -5
- package/modules/email.module.d.ts +1 -2
- package/package.json +4 -4
- package/providers/email-factory.service.d.ts +4 -7
- package/providers/mailgun-provider.d.ts +6 -2
- package/providers/sendgrid-provider.d.ts +6 -2
- package/providers/smtp-provider.d.ts +7 -2
- package/services/email-config.service.d.ts +12 -0
- package/services/email-datasource.provider.d.ts +3 -6
- package/services/email-provider-config.service.d.ts +3 -3
- package/services/email-send.service.d.ts +11 -3
- package/services/email-template.service.d.ts +5 -4
- package/services/index.d.ts +2 -1
- package/utils/email-templates.util.d.ts +2 -0
- package/utils/index.d.ts +1 -0
- package/cjs/entities/email-config-base.entity.js +0 -111
- package/cjs/entities/email-template-base.entity.js +0 -134
- package/config/email-config.service.d.ts +0 -13
- package/entities/email-config-base.entity.d.ts +0 -11
- package/entities/email-template-base.entity.d.ts +0 -14
- package/fesm/entities/email-config-base.entity.js +0 -101
- package/fesm/entities/email-template-base.entity.js +0 -124
|
@@ -1,11 +1,15 @@
|
|
|
1
1
|
import { IEmailProvider, IEmailSendOptions, IEmailSendResult, ISendGridConfig } from '../interfaces';
|
|
2
2
|
export declare class SendGridProvider implements IEmailProvider {
|
|
3
|
-
private logger;
|
|
3
|
+
private readonly logger;
|
|
4
4
|
private sgMail;
|
|
5
|
-
private
|
|
5
|
+
private apiKey;
|
|
6
6
|
initialize(config: ISendGridConfig): Promise<void>;
|
|
7
7
|
sendEmail(options: IEmailSendOptions): Promise<IEmailSendResult>;
|
|
8
8
|
sendBulkEmails(options: IEmailSendOptions[]): Promise<IEmailSendResult[]>;
|
|
9
9
|
healthCheck(): Promise<boolean>;
|
|
10
10
|
close(): Promise<void>;
|
|
11
|
+
private buildMessage;
|
|
12
|
+
private toArray;
|
|
13
|
+
private extractError;
|
|
14
|
+
private handleError;
|
|
11
15
|
}
|
|
@@ -1,11 +1,16 @@
|
|
|
1
1
|
import { IEmailProvider, IEmailSendOptions, IEmailSendResult, ISmtpConfig } from '../interfaces';
|
|
2
2
|
export declare class SmtpProvider implements IEmailProvider {
|
|
3
|
-
private logger;
|
|
3
|
+
private readonly logger;
|
|
4
4
|
private transporter;
|
|
5
|
-
private config;
|
|
6
5
|
initialize(config: ISmtpConfig): Promise<void>;
|
|
7
6
|
sendEmail(options: IEmailSendOptions): Promise<IEmailSendResult>;
|
|
8
7
|
sendBulkEmails(options: IEmailSendOptions[]): Promise<IEmailSendResult[]>;
|
|
9
8
|
healthCheck(): Promise<boolean>;
|
|
10
9
|
close(): Promise<void>;
|
|
10
|
+
private verifyConnection;
|
|
11
|
+
private formatFrom;
|
|
12
|
+
private joinAddresses;
|
|
13
|
+
private withTimeout;
|
|
14
|
+
private extractError;
|
|
15
|
+
private handleError;
|
|
11
16
|
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DatabaseMode } from '@flusys/nestjs-core';
|
|
2
|
+
import { IModuleConfigService } from '@flusys/nestjs-shared/interfaces';
|
|
3
|
+
import { EmailModuleOptions } from '../interfaces';
|
|
4
|
+
export declare class EmailConfigService implements IModuleConfigService {
|
|
5
|
+
private readonly options;
|
|
6
|
+
constructor(options: EmailModuleOptions);
|
|
7
|
+
isCompanyFeatureEnabled(): boolean;
|
|
8
|
+
getDatabaseMode(): DatabaseMode;
|
|
9
|
+
isMultiTenant(): boolean;
|
|
10
|
+
getDefaultFromName(): string;
|
|
11
|
+
getOptions(): EmailModuleOptions;
|
|
12
|
+
}
|
|
@@ -3,9 +3,9 @@ import { IDatabaseConfig, ITenantDatabaseConfig } from '@flusys/nestjs-core';
|
|
|
3
3
|
import { Logger } from '@nestjs/common';
|
|
4
4
|
import { Request } from 'express';
|
|
5
5
|
import { DataSource } from 'typeorm';
|
|
6
|
-
import {
|
|
6
|
+
import { EmailConfigService } from './email-config.service';
|
|
7
7
|
export declare class EmailDataSourceProvider extends MultiTenantDataSourceService {
|
|
8
|
-
private readonly
|
|
8
|
+
private readonly configService;
|
|
9
9
|
protected readonly logger: Logger;
|
|
10
10
|
protected static readonly tenantConnections: Map<string, DataSource>;
|
|
11
11
|
protected static singleDataSource: DataSource | null;
|
|
@@ -13,12 +13,9 @@ export declare class EmailDataSourceProvider extends MultiTenantDataSourceServic
|
|
|
13
13
|
protected static initialized: boolean;
|
|
14
14
|
protected static readonly connectionLocks: Map<string, Promise<DataSource>>;
|
|
15
15
|
protected static singleConnectionLock: Promise<DataSource> | null;
|
|
16
|
-
constructor(
|
|
16
|
+
constructor(configService: EmailConfigService, request?: Request);
|
|
17
17
|
private static buildParentOptions;
|
|
18
|
-
getEnableCompanyFeature(): boolean;
|
|
19
18
|
getEnableCompanyFeatureForTenant(tenant?: ITenantDatabaseConfig): boolean;
|
|
20
|
-
getEnableCompanyFeatureForCurrentTenant(): boolean;
|
|
21
|
-
getEmailEntities(enableCompanyFeature?: boolean): Promise<any[]>;
|
|
22
19
|
protected createDataSourceFromConfig(config: IDatabaseConfig): Promise<DataSource>;
|
|
23
20
|
protected getSingleDataSource(): Promise<DataSource>;
|
|
24
21
|
protected getOrCreateTenantConnection(tenant: ITenantDatabaseConfig): Promise<DataSource>;
|
|
@@ -3,9 +3,9 @@ import { FilterAndPaginationDto } from '@flusys/nestjs-shared/dtos';
|
|
|
3
3
|
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
4
4
|
import { UtilsService } from '@flusys/nestjs-shared/modules';
|
|
5
5
|
import { EntityTarget, Repository, SelectQueryBuilder } from 'typeorm';
|
|
6
|
-
import { EmailConfigService } from '
|
|
6
|
+
import { EmailConfigService } from './email-config.service';
|
|
7
7
|
import { CreateEmailConfigDto, UpdateEmailConfigDto } from '../dtos';
|
|
8
|
-
import { EmailConfigBase } from '../entities';
|
|
8
|
+
import { EmailConfig, EmailConfigBase } from '../entities';
|
|
9
9
|
import { EmailProviderTypeEnum } from '../enums';
|
|
10
10
|
import { IEmailConfig } from '../interfaces';
|
|
11
11
|
import { EmailDataSourceProvider } from './email-datasource.provider';
|
|
@@ -19,7 +19,7 @@ export declare class EmailProviderConfigService extends RequestScopedApiService<
|
|
|
19
19
|
protected getDataSourceProvider(): EmailDataSourceProvider;
|
|
20
20
|
convertSingleDtoToEntity(dto: CreateEmailConfigDto | UpdateEmailConfigDto, user: ILoggedUserInfo | null): Promise<EmailConfigBase>;
|
|
21
21
|
getSelectQuery(query: SelectQueryBuilder<EmailConfigBase>, _user: ILoggedUserInfo | null, select?: string[]): Promise<{
|
|
22
|
-
query: SelectQueryBuilder<
|
|
22
|
+
query: SelectQueryBuilder<EmailConfig>;
|
|
23
23
|
isRaw: boolean;
|
|
24
24
|
}>;
|
|
25
25
|
protected getExtraManipulateQuery(query: SelectQueryBuilder<EmailConfigBase>, filterDto: FilterAndPaginationDto, user: ILoggedUserInfo | null): Promise<{
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
2
|
-
import { EmailConfigService } from '
|
|
2
|
+
import { EmailConfigService } from './email-config.service';
|
|
3
3
|
import { SendEmailDto, SendTemplateEmailDto } from '../dtos';
|
|
4
4
|
import { IEmailSendResult } from '../interfaces';
|
|
5
5
|
import { EmailFactoryService } from '../providers';
|
|
@@ -12,9 +12,17 @@ export declare class EmailSendService {
|
|
|
12
12
|
private readonly emailTemplateService;
|
|
13
13
|
private readonly logger;
|
|
14
14
|
constructor(emailFactory: EmailFactoryService, emailConfigService: EmailConfigService, emailProviderConfigService: EmailProviderConfigService, emailTemplateService: EmailTemplateService);
|
|
15
|
-
private getEmailProviderWithConfig;
|
|
16
|
-
private interpolateVariables;
|
|
17
15
|
sendEmail(dto: SendEmailDto, user?: ILoggedUserInfo): Promise<IEmailSendResult>;
|
|
18
16
|
sendTemplateEmail(dto: SendTemplateEmailDto, user?: ILoggedUserInfo): Promise<IEmailSendResult>;
|
|
19
17
|
sendTestEmail(emailConfigId: string, recipient: string, user?: ILoggedUserInfo): Promise<IEmailSendResult>;
|
|
18
|
+
private getEmailProviderWithConfig;
|
|
19
|
+
private resolveConfigById;
|
|
20
|
+
private resolveDefaultConfig;
|
|
21
|
+
private resolveTemplate;
|
|
22
|
+
private buildTemplateContent;
|
|
23
|
+
private resolveSender;
|
|
24
|
+
private buildAttachments;
|
|
25
|
+
private interpolateVariables;
|
|
26
|
+
private logResult;
|
|
27
|
+
private buildTestEmailHtml;
|
|
20
28
|
}
|
|
@@ -3,9 +3,9 @@ import { FilterAndPaginationDto } from '@flusys/nestjs-shared/dtos';
|
|
|
3
3
|
import { ILoggedUserInfo } from '@flusys/nestjs-shared/interfaces';
|
|
4
4
|
import { UtilsService } from '@flusys/nestjs-shared/modules';
|
|
5
5
|
import { EntityTarget, Repository, SelectQueryBuilder } from 'typeorm';
|
|
6
|
-
import { EmailConfigService } from '
|
|
6
|
+
import { EmailConfigService } from './email-config.service';
|
|
7
7
|
import { CreateEmailTemplateDto, UpdateEmailTemplateDto } from '../dtos';
|
|
8
|
-
import { EmailTemplateBase } from '../entities';
|
|
8
|
+
import { EmailTemplate, EmailTemplateBase } from '../entities';
|
|
9
9
|
import { IEmailTemplate } from '../interfaces';
|
|
10
10
|
import { EmailDataSourceProvider } from './email-datasource.provider';
|
|
11
11
|
export declare class EmailTemplateService extends RequestScopedApiService<CreateEmailTemplateDto, UpdateEmailTemplateDto, IEmailTemplate, EmailTemplateBase, Repository<EmailTemplateBase>> {
|
|
@@ -18,14 +18,15 @@ export declare class EmailTemplateService extends RequestScopedApiService<Create
|
|
|
18
18
|
protected getDataSourceProvider(): EmailDataSourceProvider;
|
|
19
19
|
convertSingleDtoToEntity(dto: CreateEmailTemplateDto | UpdateEmailTemplateDto, user: ILoggedUserInfo | null): Promise<EmailTemplateBase>;
|
|
20
20
|
getSelectQuery(query: SelectQueryBuilder<EmailTemplateBase>, _user: ILoggedUserInfo | null, select?: string[]): Promise<{
|
|
21
|
-
query: SelectQueryBuilder<
|
|
21
|
+
query: SelectQueryBuilder<EmailTemplate>;
|
|
22
22
|
isRaw: boolean;
|
|
23
23
|
}>;
|
|
24
24
|
protected getExtraManipulateQuery(query: SelectQueryBuilder<EmailTemplateBase>, filterDto: FilterAndPaginationDto, user: ILoggedUserInfo | null): Promise<{
|
|
25
|
-
query: SelectQueryBuilder<
|
|
25
|
+
query: SelectQueryBuilder<EmailTemplate>;
|
|
26
26
|
isRaw: boolean;
|
|
27
27
|
}>;
|
|
28
28
|
findByIdDirect(id: string): Promise<EmailTemplateBase | null>;
|
|
29
29
|
findBySlug(slug: string, user?: ILoggedUserInfo): Promise<EmailTemplateBase | null>;
|
|
30
30
|
getActiveTemplates(user?: ILoggedUserInfo): Promise<EmailTemplateBase[]>;
|
|
31
|
+
private incrementSchemaVersionIfChanged;
|
|
31
32
|
}
|
package/services/index.d.ts
CHANGED
package/utils/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './email-templates.util';
|
|
@@ -1,111 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "EmailConfigBase", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return EmailConfigBase;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _entities = require("@flusys/nestjs-shared/entities");
|
|
12
|
-
const _typeorm = require("typeorm");
|
|
13
|
-
const _enums = require("../enums");
|
|
14
|
-
function _define_property(obj, key, value) {
|
|
15
|
-
if (key in obj) {
|
|
16
|
-
Object.defineProperty(obj, key, {
|
|
17
|
-
value: value,
|
|
18
|
-
enumerable: true,
|
|
19
|
-
configurable: true,
|
|
20
|
-
writable: true
|
|
21
|
-
});
|
|
22
|
-
} else {
|
|
23
|
-
obj[key] = value;
|
|
24
|
-
}
|
|
25
|
-
return obj;
|
|
26
|
-
}
|
|
27
|
-
function _ts_decorate(decorators, target, key, desc) {
|
|
28
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
29
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
30
|
-
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;
|
|
31
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
32
|
-
}
|
|
33
|
-
function _ts_metadata(k, v) {
|
|
34
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
35
|
-
}
|
|
36
|
-
let EmailConfigBase = class EmailConfigBase extends _entities.Identity {
|
|
37
|
-
constructor(...args){
|
|
38
|
-
super(...args), _define_property(this, "name", void 0), _define_property(this, "provider", void 0), _define_property(this, "config", void 0), _define_property(this, "fromEmail", void 0), _define_property(this, "fromName", void 0), _define_property(this, "isActive", void 0), _define_property(this, "isDefault", void 0);
|
|
39
|
-
}
|
|
40
|
-
};
|
|
41
|
-
_ts_decorate([
|
|
42
|
-
(0, _typeorm.Column)({
|
|
43
|
-
type: 'varchar',
|
|
44
|
-
length: 255,
|
|
45
|
-
nullable: false
|
|
46
|
-
}),
|
|
47
|
-
_ts_metadata("design:type", String)
|
|
48
|
-
], EmailConfigBase.prototype, "name", void 0);
|
|
49
|
-
_ts_decorate([
|
|
50
|
-
(0, _typeorm.Column)({
|
|
51
|
-
type: 'enum',
|
|
52
|
-
enum: _enums.EmailProviderTypeEnum,
|
|
53
|
-
nullable: false
|
|
54
|
-
}),
|
|
55
|
-
_ts_metadata("design:type", typeof _enums.EmailProviderTypeEnum === "undefined" ? Object : _enums.EmailProviderTypeEnum)
|
|
56
|
-
], EmailConfigBase.prototype, "provider", void 0);
|
|
57
|
-
_ts_decorate([
|
|
58
|
-
(0, _typeorm.Column)({
|
|
59
|
-
type: 'json',
|
|
60
|
-
nullable: false
|
|
61
|
-
}),
|
|
62
|
-
_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
|
|
63
|
-
], EmailConfigBase.prototype, "config", void 0);
|
|
64
|
-
_ts_decorate([
|
|
65
|
-
(0, _typeorm.Column)({
|
|
66
|
-
type: 'varchar',
|
|
67
|
-
length: 255,
|
|
68
|
-
nullable: true,
|
|
69
|
-
name: 'from_email'
|
|
70
|
-
}),
|
|
71
|
-
_ts_metadata("design:type", Object)
|
|
72
|
-
], EmailConfigBase.prototype, "fromEmail", void 0);
|
|
73
|
-
_ts_decorate([
|
|
74
|
-
(0, _typeorm.Column)({
|
|
75
|
-
type: 'varchar',
|
|
76
|
-
length: 255,
|
|
77
|
-
nullable: true,
|
|
78
|
-
name: 'from_name'
|
|
79
|
-
}),
|
|
80
|
-
_ts_metadata("design:type", Object)
|
|
81
|
-
], EmailConfigBase.prototype, "fromName", void 0);
|
|
82
|
-
_ts_decorate([
|
|
83
|
-
(0, _typeorm.Column)({
|
|
84
|
-
type: 'boolean',
|
|
85
|
-
default: true,
|
|
86
|
-
name: 'is_active'
|
|
87
|
-
}),
|
|
88
|
-
_ts_metadata("design:type", Boolean)
|
|
89
|
-
], EmailConfigBase.prototype, "isActive", void 0);
|
|
90
|
-
_ts_decorate([
|
|
91
|
-
(0, _typeorm.Column)({
|
|
92
|
-
type: 'boolean',
|
|
93
|
-
default: false,
|
|
94
|
-
name: 'is_default'
|
|
95
|
-
}),
|
|
96
|
-
_ts_metadata("design:type", Boolean)
|
|
97
|
-
], EmailConfigBase.prototype, "isDefault", void 0);
|
|
98
|
-
EmailConfigBase = _ts_decorate([
|
|
99
|
-
(0, _typeorm.Index)([
|
|
100
|
-
'name'
|
|
101
|
-
]),
|
|
102
|
-
(0, _typeorm.Index)([
|
|
103
|
-
'provider'
|
|
104
|
-
]),
|
|
105
|
-
(0, _typeorm.Index)([
|
|
106
|
-
'isActive'
|
|
107
|
-
]),
|
|
108
|
-
(0, _typeorm.Index)([
|
|
109
|
-
'isDefault'
|
|
110
|
-
])
|
|
111
|
-
], EmailConfigBase);
|
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "EmailTemplateBase", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return EmailTemplateBase;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _entities = require("@flusys/nestjs-shared/entities");
|
|
12
|
-
const _typeorm = require("typeorm");
|
|
13
|
-
function _define_property(obj, key, value) {
|
|
14
|
-
if (key in obj) {
|
|
15
|
-
Object.defineProperty(obj, key, {
|
|
16
|
-
value: value,
|
|
17
|
-
enumerable: true,
|
|
18
|
-
configurable: true,
|
|
19
|
-
writable: true
|
|
20
|
-
});
|
|
21
|
-
} else {
|
|
22
|
-
obj[key] = value;
|
|
23
|
-
}
|
|
24
|
-
return obj;
|
|
25
|
-
}
|
|
26
|
-
function _ts_decorate(decorators, target, key, desc) {
|
|
27
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
28
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
29
|
-
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;
|
|
30
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
31
|
-
}
|
|
32
|
-
function _ts_metadata(k, v) {
|
|
33
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
34
|
-
}
|
|
35
|
-
let EmailTemplateBase = class EmailTemplateBase extends _entities.Identity {
|
|
36
|
-
constructor(...args){
|
|
37
|
-
super(...args), _define_property(this, "name", void 0), _define_property(this, "slug", void 0), _define_property(this, "description", void 0), _define_property(this, "subject", void 0), _define_property(this, "schema", void 0), _define_property(this, "htmlContent", void 0), _define_property(this, "textContent", void 0), _define_property(this, "schemaVersion", void 0), _define_property(this, "isActive", void 0), _define_property(this, "isHtml", void 0), _define_property(this, "metadata", void 0);
|
|
38
|
-
}
|
|
39
|
-
};
|
|
40
|
-
_ts_decorate([
|
|
41
|
-
(0, _typeorm.Column)({
|
|
42
|
-
type: 'varchar',
|
|
43
|
-
length: 255,
|
|
44
|
-
nullable: false
|
|
45
|
-
}),
|
|
46
|
-
_ts_metadata("design:type", String)
|
|
47
|
-
], EmailTemplateBase.prototype, "name", void 0);
|
|
48
|
-
_ts_decorate([
|
|
49
|
-
(0, _typeorm.Column)({
|
|
50
|
-
type: 'varchar',
|
|
51
|
-
length: 255,
|
|
52
|
-
nullable: false,
|
|
53
|
-
unique: true
|
|
54
|
-
}),
|
|
55
|
-
_ts_metadata("design:type", String)
|
|
56
|
-
], EmailTemplateBase.prototype, "slug", void 0);
|
|
57
|
-
_ts_decorate([
|
|
58
|
-
(0, _typeorm.Column)({
|
|
59
|
-
type: 'varchar',
|
|
60
|
-
length: 500,
|
|
61
|
-
nullable: true
|
|
62
|
-
}),
|
|
63
|
-
_ts_metadata("design:type", Object)
|
|
64
|
-
], EmailTemplateBase.prototype, "description", void 0);
|
|
65
|
-
_ts_decorate([
|
|
66
|
-
(0, _typeorm.Column)({
|
|
67
|
-
type: 'varchar',
|
|
68
|
-
length: 500,
|
|
69
|
-
nullable: false
|
|
70
|
-
}),
|
|
71
|
-
_ts_metadata("design:type", String)
|
|
72
|
-
], EmailTemplateBase.prototype, "subject", void 0);
|
|
73
|
-
_ts_decorate([
|
|
74
|
-
(0, _typeorm.Column)({
|
|
75
|
-
type: 'json',
|
|
76
|
-
nullable: false
|
|
77
|
-
}),
|
|
78
|
-
_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
|
|
79
|
-
], EmailTemplateBase.prototype, "schema", void 0);
|
|
80
|
-
_ts_decorate([
|
|
81
|
-
(0, _typeorm.Column)({
|
|
82
|
-
type: 'text',
|
|
83
|
-
nullable: false,
|
|
84
|
-
name: 'html_content'
|
|
85
|
-
}),
|
|
86
|
-
_ts_metadata("design:type", String)
|
|
87
|
-
], EmailTemplateBase.prototype, "htmlContent", void 0);
|
|
88
|
-
_ts_decorate([
|
|
89
|
-
(0, _typeorm.Column)({
|
|
90
|
-
type: 'text',
|
|
91
|
-
nullable: true,
|
|
92
|
-
name: 'text_content'
|
|
93
|
-
}),
|
|
94
|
-
_ts_metadata("design:type", Object)
|
|
95
|
-
], EmailTemplateBase.prototype, "textContent", void 0);
|
|
96
|
-
_ts_decorate([
|
|
97
|
-
(0, _typeorm.Column)({
|
|
98
|
-
type: 'int',
|
|
99
|
-
nullable: false,
|
|
100
|
-
default: 1,
|
|
101
|
-
name: 'schema_version'
|
|
102
|
-
}),
|
|
103
|
-
_ts_metadata("design:type", Number)
|
|
104
|
-
], EmailTemplateBase.prototype, "schemaVersion", void 0);
|
|
105
|
-
_ts_decorate([
|
|
106
|
-
(0, _typeorm.Column)({
|
|
107
|
-
type: 'boolean',
|
|
108
|
-
default: true,
|
|
109
|
-
name: 'is_active'
|
|
110
|
-
}),
|
|
111
|
-
_ts_metadata("design:type", Boolean)
|
|
112
|
-
], EmailTemplateBase.prototype, "isActive", void 0);
|
|
113
|
-
_ts_decorate([
|
|
114
|
-
(0, _typeorm.Column)({
|
|
115
|
-
type: 'boolean',
|
|
116
|
-
default: true,
|
|
117
|
-
name: 'is_html'
|
|
118
|
-
}),
|
|
119
|
-
_ts_metadata("design:type", Boolean)
|
|
120
|
-
], EmailTemplateBase.prototype, "isHtml", void 0);
|
|
121
|
-
_ts_decorate([
|
|
122
|
-
(0, _typeorm.Column)('simple-json', {
|
|
123
|
-
nullable: true
|
|
124
|
-
}),
|
|
125
|
-
_ts_metadata("design:type", Object)
|
|
126
|
-
], EmailTemplateBase.prototype, "metadata", void 0);
|
|
127
|
-
EmailTemplateBase = _ts_decorate([
|
|
128
|
-
(0, _typeorm.Index)([
|
|
129
|
-
'name'
|
|
130
|
-
]),
|
|
131
|
-
(0, _typeorm.Index)([
|
|
132
|
-
'isActive'
|
|
133
|
-
])
|
|
134
|
-
], EmailTemplateBase);
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { EmailModuleOptions } from '../interfaces';
|
|
2
|
-
export declare class EmailConfigService {
|
|
3
|
-
private readonly options;
|
|
4
|
-
constructor(options: EmailModuleOptions);
|
|
5
|
-
isCompanyFeatureEnabled(): boolean;
|
|
6
|
-
getDatabaseMode(): 'single' | 'multi-tenant';
|
|
7
|
-
getRateLimitPerMinute(): number;
|
|
8
|
-
isLoggingEnabled(): boolean;
|
|
9
|
-
getDefaultProvider(): string | undefined;
|
|
10
|
-
getDefaultFromName(): string;
|
|
11
|
-
getDefaultDatabaseConfig(): import("@flusys/nestjs-core").IDatabaseConfig;
|
|
12
|
-
getOptions(): EmailModuleOptions;
|
|
13
|
-
}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { Identity } from '@flusys/nestjs-shared/entities';
|
|
2
|
-
import { EmailProviderTypeEnum } from '../enums';
|
|
3
|
-
export declare abstract class EmailConfigBase extends Identity {
|
|
4
|
-
name: string;
|
|
5
|
-
provider: EmailProviderTypeEnum;
|
|
6
|
-
config: Record<string, any>;
|
|
7
|
-
fromEmail: string | null;
|
|
8
|
-
fromName: string | null;
|
|
9
|
-
isActive: boolean;
|
|
10
|
-
isDefault: boolean;
|
|
11
|
-
}
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import { Identity } from '@flusys/nestjs-shared/entities';
|
|
2
|
-
export declare abstract class EmailTemplateBase extends Identity {
|
|
3
|
-
name: string;
|
|
4
|
-
slug: string;
|
|
5
|
-
description: string | null;
|
|
6
|
-
subject: string;
|
|
7
|
-
schema: Record<string, unknown>;
|
|
8
|
-
htmlContent: string;
|
|
9
|
-
textContent: string | null;
|
|
10
|
-
schemaVersion: number;
|
|
11
|
-
isActive: boolean;
|
|
12
|
-
isHtml: boolean;
|
|
13
|
-
metadata: Record<string, unknown> | null;
|
|
14
|
-
}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
function _define_property(obj, key, value) {
|
|
2
|
-
if (key in obj) {
|
|
3
|
-
Object.defineProperty(obj, key, {
|
|
4
|
-
value: value,
|
|
5
|
-
enumerable: true,
|
|
6
|
-
configurable: true,
|
|
7
|
-
writable: true
|
|
8
|
-
});
|
|
9
|
-
} else {
|
|
10
|
-
obj[key] = value;
|
|
11
|
-
}
|
|
12
|
-
return obj;
|
|
13
|
-
}
|
|
14
|
-
function _ts_decorate(decorators, target, key, desc) {
|
|
15
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
16
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
17
|
-
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;
|
|
18
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
19
|
-
}
|
|
20
|
-
function _ts_metadata(k, v) {
|
|
21
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
22
|
-
}
|
|
23
|
-
import { Identity } from '@flusys/nestjs-shared/entities';
|
|
24
|
-
import { Column, Index } from 'typeorm';
|
|
25
|
-
import { EmailProviderTypeEnum } from '../enums';
|
|
26
|
-
export class EmailConfigBase extends Identity {
|
|
27
|
-
constructor(...args){
|
|
28
|
-
super(...args), _define_property(this, "name", void 0), _define_property(this, "provider", void 0), _define_property(this, "config", void 0), _define_property(this, "fromEmail", void 0), _define_property(this, "fromName", void 0), _define_property(this, "isActive", void 0), _define_property(this, "isDefault", void 0);
|
|
29
|
-
}
|
|
30
|
-
}
|
|
31
|
-
_ts_decorate([
|
|
32
|
-
Column({
|
|
33
|
-
type: 'varchar',
|
|
34
|
-
length: 255,
|
|
35
|
-
nullable: false
|
|
36
|
-
}),
|
|
37
|
-
_ts_metadata("design:type", String)
|
|
38
|
-
], EmailConfigBase.prototype, "name", void 0);
|
|
39
|
-
_ts_decorate([
|
|
40
|
-
Column({
|
|
41
|
-
type: 'enum',
|
|
42
|
-
enum: EmailProviderTypeEnum,
|
|
43
|
-
nullable: false
|
|
44
|
-
}),
|
|
45
|
-
_ts_metadata("design:type", typeof EmailProviderTypeEnum === "undefined" ? Object : EmailProviderTypeEnum)
|
|
46
|
-
], EmailConfigBase.prototype, "provider", void 0);
|
|
47
|
-
_ts_decorate([
|
|
48
|
-
Column({
|
|
49
|
-
type: 'json',
|
|
50
|
-
nullable: false
|
|
51
|
-
}),
|
|
52
|
-
_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
|
|
53
|
-
], EmailConfigBase.prototype, "config", void 0);
|
|
54
|
-
_ts_decorate([
|
|
55
|
-
Column({
|
|
56
|
-
type: 'varchar',
|
|
57
|
-
length: 255,
|
|
58
|
-
nullable: true,
|
|
59
|
-
name: 'from_email'
|
|
60
|
-
}),
|
|
61
|
-
_ts_metadata("design:type", Object)
|
|
62
|
-
], EmailConfigBase.prototype, "fromEmail", void 0);
|
|
63
|
-
_ts_decorate([
|
|
64
|
-
Column({
|
|
65
|
-
type: 'varchar',
|
|
66
|
-
length: 255,
|
|
67
|
-
nullable: true,
|
|
68
|
-
name: 'from_name'
|
|
69
|
-
}),
|
|
70
|
-
_ts_metadata("design:type", Object)
|
|
71
|
-
], EmailConfigBase.prototype, "fromName", void 0);
|
|
72
|
-
_ts_decorate([
|
|
73
|
-
Column({
|
|
74
|
-
type: 'boolean',
|
|
75
|
-
default: true,
|
|
76
|
-
name: 'is_active'
|
|
77
|
-
}),
|
|
78
|
-
_ts_metadata("design:type", Boolean)
|
|
79
|
-
], EmailConfigBase.prototype, "isActive", void 0);
|
|
80
|
-
_ts_decorate([
|
|
81
|
-
Column({
|
|
82
|
-
type: 'boolean',
|
|
83
|
-
default: false,
|
|
84
|
-
name: 'is_default'
|
|
85
|
-
}),
|
|
86
|
-
_ts_metadata("design:type", Boolean)
|
|
87
|
-
], EmailConfigBase.prototype, "isDefault", void 0);
|
|
88
|
-
EmailConfigBase = _ts_decorate([
|
|
89
|
-
Index([
|
|
90
|
-
'name'
|
|
91
|
-
]),
|
|
92
|
-
Index([
|
|
93
|
-
'provider'
|
|
94
|
-
]),
|
|
95
|
-
Index([
|
|
96
|
-
'isActive'
|
|
97
|
-
]),
|
|
98
|
-
Index([
|
|
99
|
-
'isDefault'
|
|
100
|
-
])
|
|
101
|
-
], EmailConfigBase);
|