@flusys/nestjs-email 7.1.0 → 8.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.
Files changed (159) hide show
  1. package/config/index.d.ts +3 -3
  2. package/controllers/email-config.controller.d.ts +2 -2
  3. package/controllers/email-send.controller.d.ts +3 -3
  4. package/controllers/email-template.controller.d.ts +4 -4
  5. package/controllers/index.d.ts +3 -3
  6. package/docs/email-swagger.config.d.ts +2 -2
  7. package/docs/index.d.ts +1 -1
  8. package/dtos/email-config.dto.d.ts +1 -1
  9. package/dtos/email-send.dto.d.ts +1 -1
  10. package/dtos/index.d.ts +3 -3
  11. package/entities/email-config-with-company.entity.d.ts +1 -1
  12. package/entities/email-template-with-company.entity.d.ts +1 -1
  13. package/entities/index.d.ts +10 -10
  14. package/enums/index.d.ts +1 -1
  15. package/fesm/261.js +799 -0
  16. package/fesm/493.js +1723 -0
  17. package/fesm/chunks/99.js +12 -0
  18. package/fesm/config/index.js +104 -3
  19. package/fesm/controllers/index.js +396 -3
  20. package/fesm/docs/index.js +134 -1
  21. package/fesm/dtos/index.js +22 -3
  22. package/fesm/entities/index.js +409 -13
  23. package/fesm/enums/index.js +37 -1
  24. package/fesm/index.js +762 -10
  25. package/fesm/interfaces/index.js +18 -4
  26. package/fesm/modules/index.js +541 -1
  27. package/fesm/providers/index.js +523 -5
  28. package/fesm/runtime.js +134 -0
  29. package/fesm/services/index.js +17 -5
  30. package/index.d.ts +10 -10
  31. package/interfaces/email-config.interface.d.ts +2 -2
  32. package/interfaces/email-module-options.interface.d.ts +3 -3
  33. package/interfaces/email-template.interface.d.ts +1 -1
  34. package/interfaces/index.d.ts +4 -4
  35. package/modules/email.module.d.ts +2 -2
  36. package/modules/index.d.ts +1 -1
  37. package/package.json +27 -38
  38. package/providers/email-factory.service.d.ts +2 -2
  39. package/providers/email-provider.registry.d.ts +2 -2
  40. package/providers/index.d.ts +5 -5
  41. package/providers/mailgun-provider.d.ts +1 -1
  42. package/providers/sendgrid-provider.d.ts +1 -1
  43. package/providers/smtp-provider.d.ts +1 -1
  44. package/services/email-config.service.d.ts +3 -3
  45. package/services/email-datasource.provider.d.ts +3 -3
  46. package/services/email-provider-config.service.d.ts +7 -7
  47. package/services/email-send.service.d.ts +7 -7
  48. package/services/email-template.service.d.ts +6 -6
  49. package/services/index.d.ts +5 -5
  50. package/utils/index.d.ts +1 -1
  51. package/cjs/config/email.constants.js +0 -22
  52. package/cjs/config/event-actions.js +0 -34
  53. package/cjs/config/index.js +0 -20
  54. package/cjs/config/message-keys.js +0 -39
  55. package/cjs/controllers/email-config.controller.js +0 -111
  56. package/cjs/controllers/email-config.controller.spec.js +0 -85
  57. package/cjs/controllers/email-send.controller.js +0 -128
  58. package/cjs/controllers/email-send.controller.spec.js +0 -139
  59. package/cjs/controllers/email-template.controller.js +0 -142
  60. package/cjs/controllers/email-template.controller.spec.js +0 -89
  61. package/cjs/controllers/index.js +0 -20
  62. package/cjs/docs/email-swagger.config.js +0 -116
  63. package/cjs/docs/email-swagger.config.spec.js +0 -62
  64. package/cjs/docs/index.js +0 -11
  65. package/cjs/dtos/email-config.dto.js +0 -212
  66. package/cjs/dtos/email-send.dto.js +0 -354
  67. package/cjs/dtos/email-template.dto.js +0 -252
  68. package/cjs/dtos/index.js +0 -20
  69. package/cjs/entities/email-config-with-company.entity.js +0 -63
  70. package/cjs/entities/email-config.entity.js +0 -114
  71. package/cjs/entities/email-template-with-company.entity.js +0 -65
  72. package/cjs/entities/email-template.entity.js +0 -136
  73. package/cjs/entities/index.js +0 -56
  74. package/cjs/entities/index.spec.js +0 -18
  75. package/cjs/enums/email-provider-type.enum.js +0 -18
  76. package/cjs/enums/index.js +0 -18
  77. package/cjs/index.js +0 -28
  78. package/cjs/interfaces/email-config.interface.js +0 -4
  79. package/cjs/interfaces/email-module-options.interface.js +0 -4
  80. package/cjs/interfaces/email-provider.interface.js +0 -4
  81. package/cjs/interfaces/email-template.interface.js +0 -4
  82. package/cjs/interfaces/index.js +0 -21
  83. package/cjs/modules/email.module.js +0 -122
  84. package/cjs/modules/email.module.spec.js +0 -142
  85. package/cjs/modules/index.js +0 -18
  86. package/cjs/providers/email-factory.service.js +0 -113
  87. package/cjs/providers/email-factory.service.spec.js +0 -242
  88. package/cjs/providers/email-provider.registry.js +0 -41
  89. package/cjs/providers/email-provider.registry.spec.js +0 -58
  90. package/cjs/providers/index.js +0 -22
  91. package/cjs/providers/mailgun-provider.js +0 -119
  92. package/cjs/providers/mailgun-provider.spec.js +0 -244
  93. package/cjs/providers/sendgrid-provider.js +0 -129
  94. package/cjs/providers/sendgrid-provider.spec.js +0 -346
  95. package/cjs/providers/smtp-provider.js +0 -164
  96. package/cjs/providers/smtp-provider.spec.js +0 -327
  97. package/cjs/services/email-config.service.js +0 -71
  98. package/cjs/services/email-config.service.spec.js +0 -69
  99. package/cjs/services/email-datasource.provider.js +0 -84
  100. package/cjs/services/email-datasource.provider.spec.js +0 -135
  101. package/cjs/services/email-provider-config.service.js +0 -159
  102. package/cjs/services/email-provider-config.service.spec.js +0 -269
  103. package/cjs/services/email-send.service.js +0 -315
  104. package/cjs/services/email-send.service.spec.js +0 -614
  105. package/cjs/services/email-template.service.js +0 -144
  106. package/cjs/services/email-template.service.spec.js +0 -261
  107. package/cjs/services/index.js +0 -22
  108. package/cjs/utils/email-templates.util.js +0 -64
  109. package/cjs/utils/email-templates.util.spec.js +0 -61
  110. package/cjs/utils/index.js +0 -18
  111. package/fesm/config/email.constants.js +0 -4
  112. package/fesm/config/event-actions.js +0 -13
  113. package/fesm/config/message-keys.js +0 -18
  114. package/fesm/controllers/email-config.controller.js +0 -101
  115. package/fesm/controllers/email-config.controller.spec.js +0 -81
  116. package/fesm/controllers/email-send.controller.js +0 -118
  117. package/fesm/controllers/email-send.controller.spec.js +0 -135
  118. package/fesm/controllers/email-template.controller.js +0 -132
  119. package/fesm/controllers/email-template.controller.spec.js +0 -85
  120. package/fesm/docs/email-swagger.config.js +0 -109
  121. package/fesm/docs/email-swagger.config.spec.js +0 -58
  122. package/fesm/dtos/email-config.dto.js +0 -191
  123. package/fesm/dtos/email-send.dto.js +0 -324
  124. package/fesm/dtos/email-template.dto.js +0 -231
  125. package/fesm/entities/email-config-with-company.entity.js +0 -53
  126. package/fesm/entities/email-config.entity.js +0 -104
  127. package/fesm/entities/email-template-with-company.entity.js +0 -55
  128. package/fesm/entities/email-template.entity.js +0 -126
  129. package/fesm/entities/index.spec.js +0 -14
  130. package/fesm/enums/email-provider-type.enum.js +0 -8
  131. package/fesm/interfaces/email-config.interface.js +0 -1
  132. package/fesm/interfaces/email-module-options.interface.js +0 -1
  133. package/fesm/interfaces/email-provider.interface.js +0 -1
  134. package/fesm/interfaces/email-template.interface.js +0 -1
  135. package/fesm/modules/email.module.js +0 -112
  136. package/fesm/modules/email.module.spec.js +0 -138
  137. package/fesm/providers/email-factory.service.js +0 -103
  138. package/fesm/providers/email-factory.service.spec.js +0 -238
  139. package/fesm/providers/email-provider.registry.js +0 -31
  140. package/fesm/providers/email-provider.registry.spec.js +0 -54
  141. package/fesm/providers/mailgun-provider.js +0 -109
  142. package/fesm/providers/mailgun-provider.spec.js +0 -240
  143. package/fesm/providers/sendgrid-provider.js +0 -119
  144. package/fesm/providers/sendgrid-provider.spec.js +0 -342
  145. package/fesm/providers/smtp-provider.js +0 -113
  146. package/fesm/providers/smtp-provider.spec.js +0 -282
  147. package/fesm/services/email-config.service.js +0 -61
  148. package/fesm/services/email-config.service.spec.js +0 -65
  149. package/fesm/services/email-datasource.provider.js +0 -74
  150. package/fesm/services/email-datasource.provider.spec.js +0 -131
  151. package/fesm/services/email-provider-config.service.js +0 -149
  152. package/fesm/services/email-provider-config.service.spec.js +0 -265
  153. package/fesm/services/email-send.service.js +0 -305
  154. package/fesm/services/email-send.service.spec.js +0 -610
  155. package/fesm/services/email-template.service.js +0 -134
  156. package/fesm/services/email-template.service.spec.js +0 -257
  157. package/fesm/utils/email-templates.util.js +0 -47
  158. package/fesm/utils/email-templates.util.spec.js +0 -57
  159. 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);