@flusys/nestjs-email 7.1.0 → 8.0.0-beta.1
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/config/index.d.ts +3 -3
- package/controllers/email-config.controller.d.ts +2 -2
- package/controllers/email-send.controller.d.ts +3 -3
- package/controllers/email-template.controller.d.ts +4 -4
- package/controllers/index.d.ts +3 -3
- package/docs/email-swagger.config.d.ts +2 -2
- package/docs/index.d.ts +1 -1
- package/dtos/email-config.dto.d.ts +1 -1
- package/dtos/email-send.dto.d.ts +1 -1
- package/dtos/index.d.ts +3 -3
- package/entities/email-config-with-company.entity.d.ts +1 -1
- package/entities/email-template-with-company.entity.d.ts +1 -1
- package/entities/index.d.ts +10 -10
- package/enums/index.d.ts +1 -1
- package/fesm/261.js +799 -0
- package/fesm/493.js +1723 -0
- package/fesm/chunks/99.js +12 -0
- package/fesm/config/index.js +104 -3
- package/fesm/controllers/index.js +396 -3
- package/fesm/docs/index.js +134 -1
- package/fesm/dtos/index.js +22 -3
- package/fesm/entities/index.js +409 -13
- package/fesm/enums/index.js +37 -1
- package/fesm/index.js +762 -10
- package/fesm/interfaces/index.js +18 -4
- package/fesm/modules/index.js +541 -1
- package/fesm/providers/index.js +523 -5
- package/fesm/runtime.js +134 -0
- package/fesm/services/index.js +17 -5
- package/index.d.ts +10 -10
- package/interfaces/email-config.interface.d.ts +2 -2
- package/interfaces/email-module-options.interface.d.ts +3 -3
- package/interfaces/email-template.interface.d.ts +1 -1
- package/interfaces/index.d.ts +4 -4
- package/modules/email.module.d.ts +2 -2
- package/modules/index.d.ts +1 -1
- package/package.json +27 -38
- package/providers/email-factory.service.d.ts +2 -2
- package/providers/email-provider.registry.d.ts +2 -2
- package/providers/index.d.ts +5 -5
- package/providers/mailgun-provider.d.ts +1 -1
- package/providers/sendgrid-provider.d.ts +1 -1
- package/providers/smtp-provider.d.ts +1 -1
- package/services/email-config.service.d.ts +3 -3
- package/services/email-datasource.provider.d.ts +3 -3
- package/services/email-provider-config.service.d.ts +7 -7
- package/services/email-send.service.d.ts +7 -7
- package/services/email-template.service.d.ts +6 -6
- package/services/index.d.ts +5 -5
- package/utils/index.d.ts +1 -1
- package/cjs/config/email.constants.js +0 -22
- package/cjs/config/event-actions.js +0 -34
- package/cjs/config/index.js +0 -20
- package/cjs/config/message-keys.js +0 -39
- package/cjs/controllers/email-config.controller.js +0 -111
- package/cjs/controllers/email-config.controller.spec.js +0 -85
- package/cjs/controllers/email-send.controller.js +0 -128
- package/cjs/controllers/email-send.controller.spec.js +0 -139
- package/cjs/controllers/email-template.controller.js +0 -142
- package/cjs/controllers/email-template.controller.spec.js +0 -89
- package/cjs/controllers/index.js +0 -20
- package/cjs/docs/email-swagger.config.js +0 -116
- package/cjs/docs/email-swagger.config.spec.js +0 -62
- package/cjs/docs/index.js +0 -11
- package/cjs/dtos/email-config.dto.js +0 -212
- package/cjs/dtos/email-send.dto.js +0 -354
- package/cjs/dtos/email-template.dto.js +0 -252
- package/cjs/dtos/index.js +0 -20
- package/cjs/entities/email-config-with-company.entity.js +0 -63
- package/cjs/entities/email-config.entity.js +0 -114
- package/cjs/entities/email-template-with-company.entity.js +0 -65
- package/cjs/entities/email-template.entity.js +0 -136
- package/cjs/entities/index.js +0 -56
- package/cjs/entities/index.spec.js +0 -18
- package/cjs/enums/email-provider-type.enum.js +0 -18
- package/cjs/enums/index.js +0 -18
- package/cjs/index.js +0 -28
- package/cjs/interfaces/email-config.interface.js +0 -4
- package/cjs/interfaces/email-module-options.interface.js +0 -4
- package/cjs/interfaces/email-provider.interface.js +0 -4
- package/cjs/interfaces/email-template.interface.js +0 -4
- package/cjs/interfaces/index.js +0 -21
- package/cjs/modules/email.module.js +0 -122
- package/cjs/modules/email.module.spec.js +0 -142
- package/cjs/modules/index.js +0 -18
- package/cjs/providers/email-factory.service.js +0 -113
- package/cjs/providers/email-factory.service.spec.js +0 -242
- package/cjs/providers/email-provider.registry.js +0 -41
- package/cjs/providers/email-provider.registry.spec.js +0 -58
- package/cjs/providers/index.js +0 -22
- package/cjs/providers/mailgun-provider.js +0 -119
- package/cjs/providers/mailgun-provider.spec.js +0 -244
- package/cjs/providers/sendgrid-provider.js +0 -129
- package/cjs/providers/sendgrid-provider.spec.js +0 -346
- package/cjs/providers/smtp-provider.js +0 -164
- package/cjs/providers/smtp-provider.spec.js +0 -327
- package/cjs/services/email-config.service.js +0 -71
- package/cjs/services/email-config.service.spec.js +0 -69
- package/cjs/services/email-datasource.provider.js +0 -84
- package/cjs/services/email-datasource.provider.spec.js +0 -135
- package/cjs/services/email-provider-config.service.js +0 -159
- package/cjs/services/email-provider-config.service.spec.js +0 -269
- package/cjs/services/email-send.service.js +0 -315
- package/cjs/services/email-send.service.spec.js +0 -614
- package/cjs/services/email-template.service.js +0 -144
- package/cjs/services/email-template.service.spec.js +0 -261
- package/cjs/services/index.js +0 -22
- package/cjs/utils/email-templates.util.js +0 -64
- package/cjs/utils/email-templates.util.spec.js +0 -61
- package/cjs/utils/index.js +0 -18
- package/fesm/config/email.constants.js +0 -4
- package/fesm/config/event-actions.js +0 -13
- package/fesm/config/message-keys.js +0 -18
- package/fesm/controllers/email-config.controller.js +0 -101
- package/fesm/controllers/email-config.controller.spec.js +0 -81
- package/fesm/controllers/email-send.controller.js +0 -118
- package/fesm/controllers/email-send.controller.spec.js +0 -135
- package/fesm/controllers/email-template.controller.js +0 -132
- package/fesm/controllers/email-template.controller.spec.js +0 -85
- package/fesm/docs/email-swagger.config.js +0 -109
- package/fesm/docs/email-swagger.config.spec.js +0 -58
- package/fesm/dtos/email-config.dto.js +0 -191
- package/fesm/dtos/email-send.dto.js +0 -324
- package/fesm/dtos/email-template.dto.js +0 -231
- package/fesm/entities/email-config-with-company.entity.js +0 -53
- package/fesm/entities/email-config.entity.js +0 -104
- package/fesm/entities/email-template-with-company.entity.js +0 -55
- package/fesm/entities/email-template.entity.js +0 -126
- package/fesm/entities/index.spec.js +0 -14
- package/fesm/enums/email-provider-type.enum.js +0 -8
- package/fesm/interfaces/email-config.interface.js +0 -1
- package/fesm/interfaces/email-module-options.interface.js +0 -1
- package/fesm/interfaces/email-provider.interface.js +0 -1
- package/fesm/interfaces/email-template.interface.js +0 -1
- package/fesm/modules/email.module.js +0 -112
- package/fesm/modules/email.module.spec.js +0 -138
- package/fesm/providers/email-factory.service.js +0 -103
- package/fesm/providers/email-factory.service.spec.js +0 -238
- package/fesm/providers/email-provider.registry.js +0 -31
- package/fesm/providers/email-provider.registry.spec.js +0 -54
- package/fesm/providers/mailgun-provider.js +0 -109
- package/fesm/providers/mailgun-provider.spec.js +0 -240
- package/fesm/providers/sendgrid-provider.js +0 -119
- package/fesm/providers/sendgrid-provider.spec.js +0 -342
- package/fesm/providers/smtp-provider.js +0 -113
- package/fesm/providers/smtp-provider.spec.js +0 -282
- package/fesm/services/email-config.service.js +0 -61
- package/fesm/services/email-config.service.spec.js +0 -65
- package/fesm/services/email-datasource.provider.js +0 -74
- package/fesm/services/email-datasource.provider.spec.js +0 -131
- package/fesm/services/email-provider-config.service.js +0 -149
- package/fesm/services/email-provider-config.service.spec.js +0 -265
- package/fesm/services/email-send.service.js +0 -305
- package/fesm/services/email-send.service.spec.js +0 -610
- package/fesm/services/email-template.service.js +0 -134
- package/fesm/services/email-template.service.spec.js +0 -257
- package/fesm/utils/email-templates.util.js +0 -47
- package/fesm/utils/email-templates.util.spec.js +0 -57
- package/fesm/utils/index.js +0 -1
|
@@ -1,116 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "emailSwaggerConfig", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return emailSwaggerConfig;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
/** Schema properties to exclude when company feature is disabled */ const COMPANY_SCHEMA_EXCLUSIONS = [
|
|
12
|
-
{
|
|
13
|
-
schemaName: 'EmailConfigResponseDto',
|
|
14
|
-
properties: [
|
|
15
|
-
'companyId'
|
|
16
|
-
]
|
|
17
|
-
},
|
|
18
|
-
{
|
|
19
|
-
schemaName: 'EmailTemplateResponseDto',
|
|
20
|
-
properties: [
|
|
21
|
-
'companyId'
|
|
22
|
-
]
|
|
23
|
-
}
|
|
24
|
-
];
|
|
25
|
-
function buildDescription(enableCompanyFeature, isMultiTenant) {
|
|
26
|
-
const multiTenantNote = isMultiTenant ? `\n> **Multi-Tenant Mode**: Include \`x-tenant-id\` header to target a specific tenant database.\n` : '';
|
|
27
|
-
const companyConfigs = enableCompanyFeature ? '\n- **Company-level email configs**' : '';
|
|
28
|
-
const companyIsolation = enableCompanyFeature ? '\n- **Company isolation**' : '';
|
|
29
|
-
const multiTenantSection = enableCompanyFeature ? `
|
|
30
|
-
## Multi-Tenant Support
|
|
31
|
-
|
|
32
|
-
Emails are automatically isolated by:
|
|
33
|
-
- **Company ID**: Company-level templates and configs
|
|
34
|
-
|
|
35
|
-
All queries automatically filter by current user's company context.
|
|
36
|
-
` : '';
|
|
37
|
-
return `
|
|
38
|
-
# Email Management API
|
|
39
|
-
${multiTenantNote}
|
|
40
|
-
Complete email management system${enableCompanyFeature ? ' with multi-tenant and company support' : ''}.
|
|
41
|
-
|
|
42
|
-
## Features
|
|
43
|
-
|
|
44
|
-
### 📧 Email Configuration
|
|
45
|
-
- Multiple email providers (SMTP, SendGrid, Mailgun)
|
|
46
|
-
- Provider-specific configurations
|
|
47
|
-
- Default sender settings${companyConfigs}
|
|
48
|
-
|
|
49
|
-
### 📝 Email Templates
|
|
50
|
-
- Visual template builder
|
|
51
|
-
- Variable interpolation ({{variable}})
|
|
52
|
-
- HTML and plain text support
|
|
53
|
-
- Template versioning${companyIsolation}
|
|
54
|
-
|
|
55
|
-
### ✉️ Email Sending
|
|
56
|
-
- Direct email sending
|
|
57
|
-
- Template-based sending
|
|
58
|
-
- Attachments support
|
|
59
|
-
- CC/BCC recipients
|
|
60
|
-
|
|
61
|
-
### 🔒 Security
|
|
62
|
-
- JWT authentication required${companyIsolation}
|
|
63
|
-
- Secure credential storage
|
|
64
|
-
|
|
65
|
-
## Supported Providers
|
|
66
|
-
|
|
67
|
-
### SMTP
|
|
68
|
-
- Universal email protocol
|
|
69
|
-
- Custom server support
|
|
70
|
-
- TLS/SSL encryption
|
|
71
|
-
|
|
72
|
-
### SendGrid (optional)
|
|
73
|
-
- Cloud email service
|
|
74
|
-
- High deliverability
|
|
75
|
-
- Install: \`npm install @sendgrid/mail\`
|
|
76
|
-
|
|
77
|
-
### Mailgun (optional)
|
|
78
|
-
- Developer-friendly API
|
|
79
|
-
- Detailed analytics
|
|
80
|
-
- Install: \`npm install mailgun.js\`
|
|
81
|
-
|
|
82
|
-
## Template Variables
|
|
83
|
-
|
|
84
|
-
Templates support Handlebars-style variables:
|
|
85
|
-
- \`{{userName}}\` - Simple variable
|
|
86
|
-
- \`{{user.email}}\` - Nested properties
|
|
87
|
-
- Variables are replaced at send time
|
|
88
|
-
${multiTenantSection}
|
|
89
|
-
## API Endpoints
|
|
90
|
-
|
|
91
|
-
All email endpoints are prefixed with \`/email\`:
|
|
92
|
-
- \`/email/email-config/*\` - Email provider configurations
|
|
93
|
-
- \`/email/email-template/*\` - Email templates
|
|
94
|
-
- \`/email/email-send/*\` - Send emails
|
|
95
|
-
|
|
96
|
-
## Getting Started
|
|
97
|
-
|
|
98
|
-
1. **Authenticate**: Obtain JWT token from /auth/login
|
|
99
|
-
2. **Configure Provider**: Create email config via /email/email-config/insert
|
|
100
|
-
3. **Create Templates**: Add templates via /email/email-template/insert
|
|
101
|
-
4. **Send Emails**: Send via /email/email-send/send or /email/email-send/send-template
|
|
102
|
-
`;
|
|
103
|
-
}
|
|
104
|
-
function emailSwaggerConfig(bootstrapConfig) {
|
|
105
|
-
const enableCompanyFeature = bootstrapConfig?.enableCompanyFeature ?? true;
|
|
106
|
-
const isMultiTenant = bootstrapConfig?.databaseMode === 'multi-tenant';
|
|
107
|
-
return {
|
|
108
|
-
title: 'Email API',
|
|
109
|
-
description: buildDescription(enableCompanyFeature, isMultiTenant),
|
|
110
|
-
version: '1.0',
|
|
111
|
-
path: 'api/docs/email',
|
|
112
|
-
bearerAuth: true,
|
|
113
|
-
excludeTags: [],
|
|
114
|
-
excludeSchemaProperties: enableCompanyFeature ? undefined : COMPANY_SCHEMA_EXCLUSIONS
|
|
115
|
-
};
|
|
116
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
const _emailswaggerconfig = require("./email-swagger.config");
|
|
6
|
-
describe('emailSwaggerConfig', ()=>{
|
|
7
|
-
it('should default to company feature enabled and single-database mode when no config is given', ()=>{
|
|
8
|
-
const config = (0, _emailswaggerconfig.emailSwaggerConfig)();
|
|
9
|
-
expect(config.title).toBe('Email API');
|
|
10
|
-
expect(config.bearerAuth).toBe(true);
|
|
11
|
-
expect(config.excludeSchemaProperties).toBeUndefined();
|
|
12
|
-
expect(config.description).not.toContain('Multi-Tenant Mode');
|
|
13
|
-
});
|
|
14
|
-
it('should exclude companyId schema properties when the company feature is disabled', ()=>{
|
|
15
|
-
const config = (0, _emailswaggerconfig.emailSwaggerConfig)({
|
|
16
|
-
enableCompanyFeature: false
|
|
17
|
-
});
|
|
18
|
-
expect(config.excludeSchemaProperties).toEqual([
|
|
19
|
-
{
|
|
20
|
-
schemaName: 'EmailConfigResponseDto',
|
|
21
|
-
properties: [
|
|
22
|
-
'companyId'
|
|
23
|
-
]
|
|
24
|
-
},
|
|
25
|
-
{
|
|
26
|
-
schemaName: 'EmailTemplateResponseDto',
|
|
27
|
-
properties: [
|
|
28
|
-
'companyId'
|
|
29
|
-
]
|
|
30
|
-
}
|
|
31
|
-
]);
|
|
32
|
-
});
|
|
33
|
-
it('should not exclude any schema properties when the company feature is enabled', ()=>{
|
|
34
|
-
const config = (0, _emailswaggerconfig.emailSwaggerConfig)({
|
|
35
|
-
enableCompanyFeature: true
|
|
36
|
-
});
|
|
37
|
-
expect(config.excludeSchemaProperties).toBeUndefined();
|
|
38
|
-
});
|
|
39
|
-
it('should describe company isolation and multi-tenant support only when the company feature is enabled', ()=>{
|
|
40
|
-
const withCompany = (0, _emailswaggerconfig.emailSwaggerConfig)({
|
|
41
|
-
enableCompanyFeature: true
|
|
42
|
-
});
|
|
43
|
-
const withoutCompany = (0, _emailswaggerconfig.emailSwaggerConfig)({
|
|
44
|
-
enableCompanyFeature: false
|
|
45
|
-
});
|
|
46
|
-
expect(withCompany.description).toContain('Company isolation');
|
|
47
|
-
expect(withCompany.description).toContain('## Multi-Tenant Support');
|
|
48
|
-
expect(withCompany.description).toContain('with multi-tenant and company support');
|
|
49
|
-
expect(withoutCompany.description).not.toContain('Company isolation');
|
|
50
|
-
expect(withoutCompany.description).not.toContain('## Multi-Tenant Support');
|
|
51
|
-
});
|
|
52
|
-
it('should mention multi-tenant mode in the description only for multi-tenant database mode', ()=>{
|
|
53
|
-
const multiTenant = (0, _emailswaggerconfig.emailSwaggerConfig)({
|
|
54
|
-
databaseMode: 'multi-tenant'
|
|
55
|
-
});
|
|
56
|
-
const single = (0, _emailswaggerconfig.emailSwaggerConfig)({
|
|
57
|
-
databaseMode: 'single'
|
|
58
|
-
});
|
|
59
|
-
expect(multiTenant.description).toContain('Multi-Tenant Mode');
|
|
60
|
-
expect(single.description).not.toContain('Multi-Tenant Mode');
|
|
61
|
-
});
|
|
62
|
-
});
|
package/cjs/docs/index.js
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
Object.defineProperty(exports, "emailSwaggerConfig", {
|
|
6
|
-
enumerable: true,
|
|
7
|
-
get: function() {
|
|
8
|
-
return _emailswaggerconfig.emailSwaggerConfig;
|
|
9
|
-
}
|
|
10
|
-
});
|
|
11
|
-
const _emailswaggerconfig = require("./email-swagger.config");
|
|
@@ -1,212 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", {
|
|
3
|
-
value: true
|
|
4
|
-
});
|
|
5
|
-
function _export(target, all) {
|
|
6
|
-
for(var name in all)Object.defineProperty(target, name, {
|
|
7
|
-
enumerable: true,
|
|
8
|
-
get: Object.getOwnPropertyDescriptor(all, name).get
|
|
9
|
-
});
|
|
10
|
-
}
|
|
11
|
-
_export(exports, {
|
|
12
|
-
get CreateEmailConfigDto () {
|
|
13
|
-
return CreateEmailConfigDto;
|
|
14
|
-
},
|
|
15
|
-
get EmailConfigResponseDto () {
|
|
16
|
-
return EmailConfigResponseDto;
|
|
17
|
-
},
|
|
18
|
-
get UpdateEmailConfigDto () {
|
|
19
|
-
return UpdateEmailConfigDto;
|
|
20
|
-
}
|
|
21
|
-
});
|
|
22
|
-
const _dtos = require("@flusys/nestjs-shared/dtos");
|
|
23
|
-
const _swagger = require("@nestjs/swagger");
|
|
24
|
-
const _classtransformer = require("class-transformer");
|
|
25
|
-
const _classvalidator = require("class-validator");
|
|
26
|
-
const _enums = require("../enums");
|
|
27
|
-
function _define_property(obj, key, value) {
|
|
28
|
-
if (key in obj) {
|
|
29
|
-
Object.defineProperty(obj, key, {
|
|
30
|
-
value: value,
|
|
31
|
-
enumerable: true,
|
|
32
|
-
configurable: true,
|
|
33
|
-
writable: true
|
|
34
|
-
});
|
|
35
|
-
} else {
|
|
36
|
-
obj[key] = value;
|
|
37
|
-
}
|
|
38
|
-
return obj;
|
|
39
|
-
}
|
|
40
|
-
function _ts_decorate(decorators, target, key, desc) {
|
|
41
|
-
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
42
|
-
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
43
|
-
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;
|
|
44
|
-
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
45
|
-
}
|
|
46
|
-
function _ts_metadata(k, v) {
|
|
47
|
-
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
48
|
-
}
|
|
49
|
-
let CreateEmailConfigDto = class CreateEmailConfigDto {
|
|
50
|
-
constructor(){
|
|
51
|
-
_define_property(this, "name", void 0);
|
|
52
|
-
_define_property(this, "provider", void 0);
|
|
53
|
-
_define_property(this, "config", void 0);
|
|
54
|
-
_define_property(this, "fromEmail", void 0);
|
|
55
|
-
_define_property(this, "fromName", void 0);
|
|
56
|
-
_define_property(this, "isActive", void 0);
|
|
57
|
-
_define_property(this, "isDefault", void 0);
|
|
58
|
-
}
|
|
59
|
-
};
|
|
60
|
-
_ts_decorate([
|
|
61
|
-
(0, _classtransformer.Expose)(),
|
|
62
|
-
(0, _swagger.ApiProperty)({
|
|
63
|
-
example: 'Production SMTP'
|
|
64
|
-
}),
|
|
65
|
-
(0, _classvalidator.IsString)(),
|
|
66
|
-
(0, _classvalidator.IsNotEmpty)(),
|
|
67
|
-
(0, _classvalidator.MaxLength)(255),
|
|
68
|
-
_ts_metadata("design:type", String)
|
|
69
|
-
], CreateEmailConfigDto.prototype, "name", void 0);
|
|
70
|
-
_ts_decorate([
|
|
71
|
-
(0, _classtransformer.Expose)(),
|
|
72
|
-
(0, _swagger.ApiProperty)({
|
|
73
|
-
enum: _enums.EmailProviderTypeEnum,
|
|
74
|
-
example: _enums.EmailProviderTypeEnum.SMTP
|
|
75
|
-
}),
|
|
76
|
-
(0, _classvalidator.IsEnum)(_enums.EmailProviderTypeEnum),
|
|
77
|
-
(0, _classvalidator.IsNotEmpty)(),
|
|
78
|
-
_ts_metadata("design:type", typeof _enums.EmailProviderTypeEnum === "undefined" ? Object : _enums.EmailProviderTypeEnum)
|
|
79
|
-
], CreateEmailConfigDto.prototype, "provider", void 0);
|
|
80
|
-
_ts_decorate([
|
|
81
|
-
(0, _classtransformer.Expose)(),
|
|
82
|
-
(0, _swagger.ApiProperty)({
|
|
83
|
-
type: 'object',
|
|
84
|
-
description: 'Provider-specific configuration (SMTP: host, port, secure, auth)',
|
|
85
|
-
additionalProperties: true
|
|
86
|
-
}),
|
|
87
|
-
(0, _classvalidator.IsObject)(),
|
|
88
|
-
(0, _classvalidator.IsNotEmpty)(),
|
|
89
|
-
_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
|
|
90
|
-
], CreateEmailConfigDto.prototype, "config", void 0);
|
|
91
|
-
_ts_decorate([
|
|
92
|
-
(0, _classtransformer.Expose)(),
|
|
93
|
-
(0, _swagger.ApiPropertyOptional)({
|
|
94
|
-
example: 'noreply@example.com'
|
|
95
|
-
}),
|
|
96
|
-
(0, _classvalidator.IsEmail)(),
|
|
97
|
-
(0, _classvalidator.IsOptional)(),
|
|
98
|
-
_ts_metadata("design:type", String)
|
|
99
|
-
], CreateEmailConfigDto.prototype, "fromEmail", void 0);
|
|
100
|
-
_ts_decorate([
|
|
101
|
-
(0, _classtransformer.Expose)(),
|
|
102
|
-
(0, _swagger.ApiPropertyOptional)({
|
|
103
|
-
example: 'FLUSYS'
|
|
104
|
-
}),
|
|
105
|
-
(0, _classvalidator.IsString)(),
|
|
106
|
-
(0, _classvalidator.IsOptional)(),
|
|
107
|
-
(0, _classvalidator.MaxLength)(255),
|
|
108
|
-
_ts_metadata("design:type", String)
|
|
109
|
-
], CreateEmailConfigDto.prototype, "fromName", void 0);
|
|
110
|
-
_ts_decorate([
|
|
111
|
-
(0, _classtransformer.Expose)(),
|
|
112
|
-
(0, _swagger.ApiPropertyOptional)({
|
|
113
|
-
example: true
|
|
114
|
-
}),
|
|
115
|
-
(0, _classvalidator.IsBoolean)(),
|
|
116
|
-
(0, _classvalidator.IsOptional)(),
|
|
117
|
-
_ts_metadata("design:type", Boolean)
|
|
118
|
-
], CreateEmailConfigDto.prototype, "isActive", void 0);
|
|
119
|
-
_ts_decorate([
|
|
120
|
-
(0, _classtransformer.Expose)(),
|
|
121
|
-
(0, _swagger.ApiPropertyOptional)({
|
|
122
|
-
example: false,
|
|
123
|
-
description: 'Set as default email configuration'
|
|
124
|
-
}),
|
|
125
|
-
(0, _classvalidator.IsBoolean)(),
|
|
126
|
-
(0, _classvalidator.IsOptional)(),
|
|
127
|
-
_ts_metadata("design:type", Boolean)
|
|
128
|
-
], CreateEmailConfigDto.prototype, "isDefault", void 0);
|
|
129
|
-
let UpdateEmailConfigDto = class UpdateEmailConfigDto extends (0, _swagger.PartialType)(CreateEmailConfigDto) {
|
|
130
|
-
constructor(...args){
|
|
131
|
-
super(...args), _define_property(this, "id", void 0);
|
|
132
|
-
}
|
|
133
|
-
};
|
|
134
|
-
_ts_decorate([
|
|
135
|
-
(0, _classtransformer.Expose)(),
|
|
136
|
-
(0, _swagger.ApiProperty)({
|
|
137
|
-
example: '123e4567-e89b-12d3-a456-426614174000'
|
|
138
|
-
}),
|
|
139
|
-
(0, _classvalidator.IsString)(),
|
|
140
|
-
(0, _classvalidator.IsNotEmpty)(),
|
|
141
|
-
_ts_metadata("design:type", String)
|
|
142
|
-
], UpdateEmailConfigDto.prototype, "id", void 0);
|
|
143
|
-
let EmailConfigResponseDto = class EmailConfigResponseDto extends _dtos.IdentityResponseDto {
|
|
144
|
-
constructor(...args){
|
|
145
|
-
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);
|
|
146
|
-
}
|
|
147
|
-
};
|
|
148
|
-
_ts_decorate([
|
|
149
|
-
(0, _swagger.ApiProperty)({
|
|
150
|
-
description: 'Human-readable name for this email configuration',
|
|
151
|
-
example: 'Primary Transactional Email'
|
|
152
|
-
}),
|
|
153
|
-
(0, _classtransformer.Expose)(),
|
|
154
|
-
_ts_metadata("design:type", String)
|
|
155
|
-
], EmailConfigResponseDto.prototype, "name", void 0);
|
|
156
|
-
_ts_decorate([
|
|
157
|
-
(0, _swagger.ApiProperty)({
|
|
158
|
-
description: 'The email provider type used for this configuration',
|
|
159
|
-
enum: _enums.EmailProviderTypeEnum,
|
|
160
|
-
example: _enums.EmailProviderTypeEnum.SMTP
|
|
161
|
-
}),
|
|
162
|
-
(0, _classtransformer.Expose)(),
|
|
163
|
-
_ts_metadata("design:type", typeof _enums.EmailProviderTypeEnum === "undefined" ? Object : _enums.EmailProviderTypeEnum)
|
|
164
|
-
], EmailConfigResponseDto.prototype, "provider", void 0);
|
|
165
|
-
_ts_decorate([
|
|
166
|
-
(0, _swagger.ApiProperty)({
|
|
167
|
-
description: 'Provider-specific configuration key-value pairs',
|
|
168
|
-
type: 'object',
|
|
169
|
-
additionalProperties: true,
|
|
170
|
-
example: {
|
|
171
|
-
host: 'smtp.example.com',
|
|
172
|
-
port: 587,
|
|
173
|
-
secure: true
|
|
174
|
-
}
|
|
175
|
-
}),
|
|
176
|
-
(0, _classtransformer.Expose)(),
|
|
177
|
-
_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
|
|
178
|
-
], EmailConfigResponseDto.prototype, "config", void 0);
|
|
179
|
-
_ts_decorate([
|
|
180
|
-
(0, _swagger.ApiPropertyOptional)({
|
|
181
|
-
description: 'The email address used in the "From" field',
|
|
182
|
-
example: 'no-reply@example.com',
|
|
183
|
-
nullable: true
|
|
184
|
-
}),
|
|
185
|
-
(0, _classtransformer.Expose)(),
|
|
186
|
-
_ts_metadata("design:type", Object)
|
|
187
|
-
], EmailConfigResponseDto.prototype, "fromEmail", void 0);
|
|
188
|
-
_ts_decorate([
|
|
189
|
-
(0, _swagger.ApiPropertyOptional)({
|
|
190
|
-
description: 'The display name used in the "From" field',
|
|
191
|
-
example: 'Acme Notifications',
|
|
192
|
-
nullable: true
|
|
193
|
-
}),
|
|
194
|
-
(0, _classtransformer.Expose)(),
|
|
195
|
-
_ts_metadata("design:type", Object)
|
|
196
|
-
], EmailConfigResponseDto.prototype, "fromName", void 0);
|
|
197
|
-
_ts_decorate([
|
|
198
|
-
(0, _swagger.ApiProperty)({
|
|
199
|
-
description: 'Whether this email configuration is currently active',
|
|
200
|
-
example: true
|
|
201
|
-
}),
|
|
202
|
-
(0, _classtransformer.Expose)(),
|
|
203
|
-
_ts_metadata("design:type", Boolean)
|
|
204
|
-
], EmailConfigResponseDto.prototype, "isActive", void 0);
|
|
205
|
-
_ts_decorate([
|
|
206
|
-
(0, _swagger.ApiProperty)({
|
|
207
|
-
description: 'Whether this is the default email configuration',
|
|
208
|
-
example: false
|
|
209
|
-
}),
|
|
210
|
-
(0, _classtransformer.Expose)(),
|
|
211
|
-
_ts_metadata("design:type", Boolean)
|
|
212
|
-
], EmailConfigResponseDto.prototype, "isDefault", void 0);
|