@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
package/fesm/261.js ADDED
@@ -0,0 +1,799 @@
1
+ import { IdentityResponseDto } from "@flusys/nestjs-shared/dtos";
2
+ import { Expose, Type } from "class-transformer";
3
+ import { IsArray, IsBoolean, IsEmail, IsEnum, IsNotEmpty, IsObject, IsOptional, IsString, IsUUID, MaxLength, ValidateNested, ValidatorConstraint, registerDecorator } from "class-validator";
4
+ import * as __rspack_external__nestjs_swagger_7cd450b5 from "@nestjs/swagger";
5
+ export const __rspack_esm_id = 261;
6
+ export const __rspack_esm_ids = [261];
7
+ export const __webpack_modules__ = {
8
+ 684(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
9
+
10
+ // EXPORTS
11
+ __webpack_require__.d(__webpack_exports__, {
12
+ oo: () => (/* reexport */ CreateEmailConfigDto),
13
+ k8: () => (/* reexport */ CreateEmailTemplateDto),
14
+ x1: () => (/* reexport */ EmailAttachmentDto),
15
+ Lo: () => (/* reexport */ EmailConfigResponseDto),
16
+ vx: () => (/* reexport */ EmailSendResultDto),
17
+ Nl: () => (/* reexport */ EmailTemplateResponseDto),
18
+ e_: () => (/* reexport */ IsEmailOrEmailArrayConstraint),
19
+ m5: () => (/* reexport */ SendEmailDto),
20
+ iu: () => (/* reexport */ SendTemplateEmailDto),
21
+ uU: () => (/* reexport */ TestEmailDto),
22
+ vC: () => (/* reexport */ UpdateEmailConfigDto),
23
+ hh: () => (/* reexport */ UpdateEmailTemplateDto)
24
+ });
25
+
26
+ ;// CONCATENATED MODULE: external "@flusys/nestjs-shared/dtos"
27
+
28
+ // EXTERNAL MODULE: external "@nestjs/swagger"
29
+ var swagger_ = __webpack_require__(176);
30
+ ;// CONCATENATED MODULE: external "class-transformer"
31
+
32
+ ;// CONCATENATED MODULE: external "class-validator"
33
+
34
+ // EXTERNAL MODULE: ./projects/nestjs-email/src/enums/email-provider-type.enum.ts
35
+ var email_provider_type_enum = __webpack_require__(823);
36
+ ;// CONCATENATED MODULE: ./projects/nestjs-email/src/dtos/email-config.dto.ts
37
+ function _ts_decorate(decorators, target, key, desc) {
38
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
39
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
40
+ r = Reflect.decorate(decorators, target, key, desc);
41
+ } else {
42
+ for(var i = decorators.length - 1; i >= 0; i--){
43
+ if (d = decorators[i]) {
44
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
45
+ }
46
+ }
47
+ }
48
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
49
+ }
50
+ function _ts_metadata(metadataKey, metadataValue) {
51
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
52
+ return Reflect.metadata(metadataKey, metadataValue);
53
+ }
54
+ }
55
+
56
+
57
+
58
+
59
+
60
+ class CreateEmailConfigDto {
61
+ name;
62
+ provider;
63
+ config;
64
+ fromEmail;
65
+ fromName;
66
+ isActive;
67
+ isDefault;
68
+ }
69
+ _ts_decorate([
70
+ Expose(),
71
+ (0,swagger_.ApiProperty)({
72
+ example: 'Production SMTP'
73
+ }),
74
+ IsString(),
75
+ IsNotEmpty(),
76
+ MaxLength(255),
77
+ _ts_metadata("design:type", String)
78
+ ], CreateEmailConfigDto.prototype, "name", void 0);
79
+ _ts_decorate([
80
+ Expose(),
81
+ (0,swagger_.ApiProperty)({
82
+ enum: email_provider_type_enum/* .EmailProviderTypeEnum */.V,
83
+ example: email_provider_type_enum/* .EmailProviderTypeEnum.SMTP */.V.SMTP
84
+ }),
85
+ IsEnum(email_provider_type_enum/* .EmailProviderTypeEnum */.V),
86
+ IsNotEmpty(),
87
+ _ts_metadata("design:type", typeof email_provider_type_enum/* .EmailProviderTypeEnum */.V === "undefined" ? Object : email_provider_type_enum/* .EmailProviderTypeEnum */.V)
88
+ ], CreateEmailConfigDto.prototype, "provider", void 0);
89
+ _ts_decorate([
90
+ Expose(),
91
+ (0,swagger_.ApiProperty)({
92
+ type: 'object',
93
+ description: 'Provider-specific configuration (SMTP: host, port, secure, auth)',
94
+ additionalProperties: true
95
+ }),
96
+ IsObject(),
97
+ IsNotEmpty(),
98
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
99
+ ], CreateEmailConfigDto.prototype, "config", void 0);
100
+ _ts_decorate([
101
+ Expose(),
102
+ (0,swagger_.ApiPropertyOptional)({
103
+ example: 'noreply@example.com'
104
+ }),
105
+ IsEmail(),
106
+ IsOptional(),
107
+ _ts_metadata("design:type", String)
108
+ ], CreateEmailConfigDto.prototype, "fromEmail", void 0);
109
+ _ts_decorate([
110
+ Expose(),
111
+ (0,swagger_.ApiPropertyOptional)({
112
+ example: 'FLUSYS'
113
+ }),
114
+ IsString(),
115
+ IsOptional(),
116
+ MaxLength(255),
117
+ _ts_metadata("design:type", String)
118
+ ], CreateEmailConfigDto.prototype, "fromName", void 0);
119
+ _ts_decorate([
120
+ Expose(),
121
+ (0,swagger_.ApiPropertyOptional)({
122
+ example: true
123
+ }),
124
+ IsBoolean(),
125
+ IsOptional(),
126
+ _ts_metadata("design:type", Boolean)
127
+ ], CreateEmailConfigDto.prototype, "isActive", void 0);
128
+ _ts_decorate([
129
+ Expose(),
130
+ (0,swagger_.ApiPropertyOptional)({
131
+ example: false,
132
+ description: 'Set as default email configuration'
133
+ }),
134
+ IsBoolean(),
135
+ IsOptional(),
136
+ _ts_metadata("design:type", Boolean)
137
+ ], CreateEmailConfigDto.prototype, "isDefault", void 0);
138
+ class UpdateEmailConfigDto extends (0,swagger_.PartialType)(CreateEmailConfigDto) {
139
+ id;
140
+ }
141
+ _ts_decorate([
142
+ Expose(),
143
+ (0,swagger_.ApiProperty)({
144
+ example: '123e4567-e89b-12d3-a456-426614174000'
145
+ }),
146
+ IsString(),
147
+ IsNotEmpty(),
148
+ _ts_metadata("design:type", String)
149
+ ], UpdateEmailConfigDto.prototype, "id", void 0);
150
+ class EmailConfigResponseDto extends IdentityResponseDto {
151
+ name;
152
+ provider;
153
+ config;
154
+ fromEmail;
155
+ fromName;
156
+ isActive;
157
+ isDefault;
158
+ }
159
+ _ts_decorate([
160
+ (0,swagger_.ApiProperty)({
161
+ description: 'Human-readable name for this email configuration',
162
+ example: 'Primary Transactional Email'
163
+ }),
164
+ Expose(),
165
+ _ts_metadata("design:type", String)
166
+ ], EmailConfigResponseDto.prototype, "name", void 0);
167
+ _ts_decorate([
168
+ (0,swagger_.ApiProperty)({
169
+ description: 'The email provider type used for this configuration',
170
+ enum: email_provider_type_enum/* .EmailProviderTypeEnum */.V,
171
+ example: email_provider_type_enum/* .EmailProviderTypeEnum.SMTP */.V.SMTP
172
+ }),
173
+ Expose(),
174
+ _ts_metadata("design:type", typeof email_provider_type_enum/* .EmailProviderTypeEnum */.V === "undefined" ? Object : email_provider_type_enum/* .EmailProviderTypeEnum */.V)
175
+ ], EmailConfigResponseDto.prototype, "provider", void 0);
176
+ _ts_decorate([
177
+ (0,swagger_.ApiProperty)({
178
+ description: 'Provider-specific configuration key-value pairs',
179
+ type: 'object',
180
+ additionalProperties: true,
181
+ example: {
182
+ host: 'smtp.example.com',
183
+ port: 587,
184
+ secure: true
185
+ }
186
+ }),
187
+ Expose(),
188
+ _ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
189
+ ], EmailConfigResponseDto.prototype, "config", void 0);
190
+ _ts_decorate([
191
+ (0,swagger_.ApiPropertyOptional)({
192
+ description: 'The email address used in the "From" field',
193
+ example: 'no-reply@example.com',
194
+ nullable: true
195
+ }),
196
+ Expose(),
197
+ _ts_metadata("design:type", Object)
198
+ ], EmailConfigResponseDto.prototype, "fromEmail", void 0);
199
+ _ts_decorate([
200
+ (0,swagger_.ApiPropertyOptional)({
201
+ description: 'The display name used in the "From" field',
202
+ example: 'Acme Notifications',
203
+ nullable: true
204
+ }),
205
+ Expose(),
206
+ _ts_metadata("design:type", Object)
207
+ ], EmailConfigResponseDto.prototype, "fromName", void 0);
208
+ _ts_decorate([
209
+ (0,swagger_.ApiProperty)({
210
+ description: 'Whether this email configuration is currently active',
211
+ example: true
212
+ }),
213
+ Expose(),
214
+ _ts_metadata("design:type", Boolean)
215
+ ], EmailConfigResponseDto.prototype, "isActive", void 0);
216
+ _ts_decorate([
217
+ (0,swagger_.ApiProperty)({
218
+ description: 'Whether this is the default email configuration',
219
+ example: false
220
+ }),
221
+ Expose(),
222
+ _ts_metadata("design:type", Boolean)
223
+ ], EmailConfigResponseDto.prototype, "isDefault", void 0);
224
+
225
+ ;// CONCATENATED MODULE: ./projects/nestjs-email/src/dtos/email-template.dto.ts
226
+ function email_template_dto_ts_decorate(decorators, target, key, desc) {
227
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
228
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
229
+ r = Reflect.decorate(decorators, target, key, desc);
230
+ } else {
231
+ for(var i = decorators.length - 1; i >= 0; i--){
232
+ if (d = decorators[i]) {
233
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
234
+ }
235
+ }
236
+ }
237
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
238
+ }
239
+ function email_template_dto_ts_metadata(metadataKey, metadataValue) {
240
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
241
+ return Reflect.metadata(metadataKey, metadataValue);
242
+ }
243
+ }
244
+
245
+
246
+
247
+
248
+ class CreateEmailTemplateDto {
249
+ name;
250
+ slug;
251
+ description;
252
+ subject;
253
+ schema;
254
+ htmlContent;
255
+ textContent;
256
+ isActive;
257
+ isHtml;
258
+ }
259
+ email_template_dto_ts_decorate([
260
+ (0,swagger_.ApiProperty)({
261
+ example: 'Welcome Email'
262
+ }),
263
+ IsString(),
264
+ IsNotEmpty(),
265
+ MaxLength(255),
266
+ email_template_dto_ts_metadata("design:type", String)
267
+ ], CreateEmailTemplateDto.prototype, "name", void 0);
268
+ email_template_dto_ts_decorate([
269
+ (0,swagger_.ApiProperty)({
270
+ example: 'welcome-email'
271
+ }),
272
+ IsString(),
273
+ IsNotEmpty(),
274
+ MaxLength(255),
275
+ email_template_dto_ts_metadata("design:type", String)
276
+ ], CreateEmailTemplateDto.prototype, "slug", void 0);
277
+ email_template_dto_ts_decorate([
278
+ (0,swagger_.ApiPropertyOptional)({
279
+ example: 'Email sent to new users upon registration'
280
+ }),
281
+ IsString(),
282
+ IsOptional(),
283
+ MaxLength(500),
284
+ email_template_dto_ts_metadata("design:type", String)
285
+ ], CreateEmailTemplateDto.prototype, "description", void 0);
286
+ email_template_dto_ts_decorate([
287
+ (0,swagger_.ApiProperty)({
288
+ example: 'Welcome to {{appName}}!'
289
+ }),
290
+ IsString(),
291
+ IsNotEmpty(),
292
+ MaxLength(500),
293
+ email_template_dto_ts_metadata("design:type", String)
294
+ ], CreateEmailTemplateDto.prototype, "subject", void 0);
295
+ email_template_dto_ts_decorate([
296
+ (0,swagger_.ApiProperty)({
297
+ type: 'object',
298
+ additionalProperties: true,
299
+ example: {
300
+ id: 'template-1',
301
+ sections: []
302
+ }
303
+ }),
304
+ IsObject(),
305
+ IsNotEmpty(),
306
+ email_template_dto_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
307
+ ], CreateEmailTemplateDto.prototype, "schema", void 0);
308
+ email_template_dto_ts_decorate([
309
+ (0,swagger_.ApiProperty)({
310
+ example: '<h1>Welcome {{userName}}!</h1>'
311
+ }),
312
+ IsString(),
313
+ IsNotEmpty(),
314
+ email_template_dto_ts_metadata("design:type", String)
315
+ ], CreateEmailTemplateDto.prototype, "htmlContent", void 0);
316
+ email_template_dto_ts_decorate([
317
+ (0,swagger_.ApiPropertyOptional)({
318
+ example: 'Welcome {{userName}}!'
319
+ }),
320
+ IsString(),
321
+ IsOptional(),
322
+ email_template_dto_ts_metadata("design:type", String)
323
+ ], CreateEmailTemplateDto.prototype, "textContent", void 0);
324
+ email_template_dto_ts_decorate([
325
+ (0,swagger_.ApiPropertyOptional)({
326
+ example: true
327
+ }),
328
+ IsBoolean(),
329
+ IsOptional(),
330
+ email_template_dto_ts_metadata("design:type", Boolean)
331
+ ], CreateEmailTemplateDto.prototype, "isActive", void 0);
332
+ email_template_dto_ts_decorate([
333
+ (0,swagger_.ApiPropertyOptional)({
334
+ example: true
335
+ }),
336
+ IsBoolean(),
337
+ IsOptional(),
338
+ email_template_dto_ts_metadata("design:type", Boolean)
339
+ ], CreateEmailTemplateDto.prototype, "isHtml", void 0);
340
+ class UpdateEmailTemplateDto extends (0,swagger_.PartialType)(CreateEmailTemplateDto) {
341
+ id;
342
+ }
343
+ email_template_dto_ts_decorate([
344
+ (0,swagger_.ApiProperty)({
345
+ example: '123e4567-e89b-12d3-a456-426614174000'
346
+ }),
347
+ IsString(),
348
+ IsNotEmpty(),
349
+ email_template_dto_ts_metadata("design:type", String)
350
+ ], UpdateEmailTemplateDto.prototype, "id", void 0);
351
+ class EmailTemplateResponseDto extends IdentityResponseDto {
352
+ name;
353
+ slug;
354
+ description;
355
+ subject;
356
+ schema;
357
+ htmlContent;
358
+ textContent;
359
+ schemaVersion;
360
+ isActive;
361
+ isHtml;
362
+ }
363
+ email_template_dto_ts_decorate([
364
+ (0,swagger_.ApiProperty)({
365
+ description: 'Human-readable name of the email template',
366
+ example: 'Welcome Email'
367
+ }),
368
+ Expose(),
369
+ email_template_dto_ts_metadata("design:type", String)
370
+ ], EmailTemplateResponseDto.prototype, "name", void 0);
371
+ email_template_dto_ts_decorate([
372
+ (0,swagger_.ApiProperty)({
373
+ description: 'URL-friendly unique identifier for the template',
374
+ example: 'welcome-email'
375
+ }),
376
+ Expose(),
377
+ email_template_dto_ts_metadata("design:type", String)
378
+ ], EmailTemplateResponseDto.prototype, "slug", void 0);
379
+ email_template_dto_ts_decorate([
380
+ (0,swagger_.ApiPropertyOptional)({
381
+ description: 'Optional description of the template purpose',
382
+ example: 'Sent to new users upon successful registration',
383
+ nullable: true
384
+ }),
385
+ Expose(),
386
+ email_template_dto_ts_metadata("design:type", Object)
387
+ ], EmailTemplateResponseDto.prototype, "description", void 0);
388
+ email_template_dto_ts_decorate([
389
+ (0,swagger_.ApiProperty)({
390
+ description: 'Email subject line, supports template variables',
391
+ example: 'Welcome to Acme, {{firstName}}!'
392
+ }),
393
+ Expose(),
394
+ email_template_dto_ts_metadata("design:type", String)
395
+ ], EmailTemplateResponseDto.prototype, "subject", void 0);
396
+ email_template_dto_ts_decorate([
397
+ (0,swagger_.ApiProperty)({
398
+ description: 'JSON schema defining the variables accepted by this template',
399
+ type: 'object',
400
+ additionalProperties: true,
401
+ example: {
402
+ firstName: {
403
+ type: 'string'
404
+ },
405
+ activationUrl: {
406
+ type: 'string',
407
+ format: 'uri'
408
+ }
409
+ }
410
+ }),
411
+ Expose(),
412
+ email_template_dto_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
413
+ ], EmailTemplateResponseDto.prototype, "schema", void 0);
414
+ email_template_dto_ts_decorate([
415
+ (0,swagger_.ApiProperty)({
416
+ description: 'HTML body of the email template',
417
+ example: '<h1>Welcome, {{firstName}}!</h1><p>Click <a href="{{activationUrl}}">here</a> to activate.</p>'
418
+ }),
419
+ Expose(),
420
+ email_template_dto_ts_metadata("design:type", String)
421
+ ], EmailTemplateResponseDto.prototype, "htmlContent", void 0);
422
+ email_template_dto_ts_decorate([
423
+ (0,swagger_.ApiPropertyOptional)({
424
+ description: 'Plain-text fallback body for email clients that do not render HTML',
425
+ example: 'Welcome, {{firstName}}! Activate your account at {{activationUrl}}',
426
+ nullable: true
427
+ }),
428
+ Expose(),
429
+ email_template_dto_ts_metadata("design:type", Object)
430
+ ], EmailTemplateResponseDto.prototype, "textContent", void 0);
431
+ email_template_dto_ts_decorate([
432
+ (0,swagger_.ApiProperty)({
433
+ description: 'Version number of the schema definition for this template',
434
+ example: 1,
435
+ minimum: 1
436
+ }),
437
+ Expose(),
438
+ email_template_dto_ts_metadata("design:type", Number)
439
+ ], EmailTemplateResponseDto.prototype, "schemaVersion", void 0);
440
+ email_template_dto_ts_decorate([
441
+ (0,swagger_.ApiProperty)({
442
+ description: 'Whether this template is currently active and usable',
443
+ example: true
444
+ }),
445
+ Expose(),
446
+ email_template_dto_ts_metadata("design:type", Boolean)
447
+ ], EmailTemplateResponseDto.prototype, "isActive", void 0);
448
+ email_template_dto_ts_decorate([
449
+ (0,swagger_.ApiProperty)({
450
+ description: 'Whether this template renders as HTML; false means plain-text only',
451
+ example: true
452
+ }),
453
+ Expose(),
454
+ email_template_dto_ts_metadata("design:type", Boolean)
455
+ ], EmailTemplateResponseDto.prototype, "isHtml", void 0);
456
+
457
+ ;// CONCATENATED MODULE: ./projects/nestjs-email/src/dtos/email-send.dto.ts
458
+ function email_send_dto_ts_decorate(decorators, target, key, desc) {
459
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
460
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
461
+ r = Reflect.decorate(decorators, target, key, desc);
462
+ } else {
463
+ for(var i = decorators.length - 1; i >= 0; i--){
464
+ if (d = decorators[i]) {
465
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
466
+ }
467
+ }
468
+ }
469
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
470
+ }
471
+ function email_send_dto_ts_metadata(metadataKey, metadataValue) {
472
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
473
+ return Reflect.metadata(metadataKey, metadataValue);
474
+ }
475
+ }
476
+
477
+
478
+
479
+ class IsEmailOrEmailArrayConstraint {
480
+ emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
481
+ validate(value) {
482
+ if (typeof value === 'string') {
483
+ return this.emailRegex.test(value);
484
+ }
485
+ if (Array.isArray(value)) {
486
+ return value.length > 0 && value.every((email)=>typeof email === 'string' && this.emailRegex.test(email));
487
+ }
488
+ return false;
489
+ }
490
+ defaultMessage(args) {
491
+ const value = args.value;
492
+ if (Array.isArray(value)) {
493
+ const invalidEmails = value.filter((v)=>typeof v !== 'string' || !this.emailRegex.test(v));
494
+ return `Invalid email(s) in array: ${invalidEmails.join(', ')}`;
495
+ }
496
+ return `${args.property} must be a valid email address or array of email addresses`;
497
+ }
498
+ }
499
+ IsEmailOrEmailArrayConstraint = email_send_dto_ts_decorate([
500
+ ValidatorConstraint({
501
+ name: 'isEmailOrEmailArray',
502
+ async: false
503
+ })
504
+ ], IsEmailOrEmailArrayConstraint);
505
+ function IsEmailOrEmailArray(validationOptions) {
506
+ return function(object, propertyName) {
507
+ registerDecorator({
508
+ name: 'isEmailOrEmailArray',
509
+ target: object.constructor,
510
+ propertyName,
511
+ options: validationOptions,
512
+ validator: IsEmailOrEmailArrayConstraint
513
+ });
514
+ };
515
+ }
516
+ function RequireTemplateIdOrSlug(validationOptions) {
517
+ return function(object, propertyName) {
518
+ registerDecorator({
519
+ name: 'requireTemplateIdOrSlug',
520
+ target: object.constructor,
521
+ propertyName,
522
+ options: validationOptions,
523
+ validator: {
524
+ validate (_value, args) {
525
+ const obj = args.object;
526
+ return !!(obj.templateId || obj.templateSlug);
527
+ },
528
+ defaultMessage () {
529
+ return 'Either templateId or templateSlug must be provided';
530
+ }
531
+ }
532
+ });
533
+ };
534
+ }
535
+ class EmailAttachmentDto {
536
+ filename;
537
+ content;
538
+ contentType;
539
+ }
540
+ email_send_dto_ts_decorate([
541
+ (0,swagger_.ApiProperty)({
542
+ example: 'document.pdf'
543
+ }),
544
+ IsString(),
545
+ IsNotEmpty(),
546
+ email_send_dto_ts_metadata("design:type", String)
547
+ ], EmailAttachmentDto.prototype, "filename", void 0);
548
+ email_send_dto_ts_decorate([
549
+ (0,swagger_.ApiProperty)({
550
+ description: 'Base64 encoded content'
551
+ }),
552
+ IsString(),
553
+ IsNotEmpty(),
554
+ email_send_dto_ts_metadata("design:type", String)
555
+ ], EmailAttachmentDto.prototype, "content", void 0);
556
+ email_send_dto_ts_decorate([
557
+ (0,swagger_.ApiPropertyOptional)({
558
+ example: 'application/pdf'
559
+ }),
560
+ IsString(),
561
+ IsOptional(),
562
+ email_send_dto_ts_metadata("design:type", String)
563
+ ], EmailAttachmentDto.prototype, "contentType", void 0);
564
+ /** Base class for common email fields (recipients, sender, attachments) */ let BaseEmailDto = class BaseEmailDto {
565
+ to;
566
+ cc;
567
+ bcc;
568
+ from;
569
+ fromName;
570
+ replyTo;
571
+ emailConfigId;
572
+ attachments;
573
+ };
574
+ email_send_dto_ts_decorate([
575
+ (0,swagger_.ApiProperty)({
576
+ example: 'user@example.com',
577
+ description: 'Recipient email(s) - single email or array of emails',
578
+ oneOf: [
579
+ {
580
+ type: 'string'
581
+ },
582
+ {
583
+ type: 'array',
584
+ items: {
585
+ type: 'string'
586
+ }
587
+ }
588
+ ]
589
+ }),
590
+ IsNotEmpty(),
591
+ IsEmailOrEmailArray(),
592
+ email_send_dto_ts_metadata("design:type", Object)
593
+ ], BaseEmailDto.prototype, "to", void 0);
594
+ email_send_dto_ts_decorate([
595
+ (0,swagger_.ApiPropertyOptional)({
596
+ description: 'CC recipients - single email or array'
597
+ }),
598
+ IsOptional(),
599
+ IsEmailOrEmailArray(),
600
+ email_send_dto_ts_metadata("design:type", Object)
601
+ ], BaseEmailDto.prototype, "cc", void 0);
602
+ email_send_dto_ts_decorate([
603
+ (0,swagger_.ApiPropertyOptional)({
604
+ description: 'BCC recipients - single email or array'
605
+ }),
606
+ IsOptional(),
607
+ IsEmailOrEmailArray(),
608
+ email_send_dto_ts_metadata("design:type", Object)
609
+ ], BaseEmailDto.prototype, "bcc", void 0);
610
+ email_send_dto_ts_decorate([
611
+ (0,swagger_.ApiPropertyOptional)({
612
+ example: 'sender@example.com'
613
+ }),
614
+ IsEmail(),
615
+ IsOptional(),
616
+ email_send_dto_ts_metadata("design:type", String)
617
+ ], BaseEmailDto.prototype, "from", void 0);
618
+ email_send_dto_ts_decorate([
619
+ (0,swagger_.ApiPropertyOptional)({
620
+ example: 'FLUSYS'
621
+ }),
622
+ IsString(),
623
+ IsOptional(),
624
+ email_send_dto_ts_metadata("design:type", String)
625
+ ], BaseEmailDto.prototype, "fromName", void 0);
626
+ email_send_dto_ts_decorate([
627
+ (0,swagger_.ApiPropertyOptional)({
628
+ example: 'reply@example.com'
629
+ }),
630
+ IsEmail(),
631
+ IsOptional(),
632
+ email_send_dto_ts_metadata("design:type", String)
633
+ ], BaseEmailDto.prototype, "replyTo", void 0);
634
+ email_send_dto_ts_decorate([
635
+ (0,swagger_.ApiPropertyOptional)({
636
+ description: 'Email configuration ID to use'
637
+ }),
638
+ IsUUID(),
639
+ IsOptional(),
640
+ email_send_dto_ts_metadata("design:type", String)
641
+ ], BaseEmailDto.prototype, "emailConfigId", void 0);
642
+ email_send_dto_ts_decorate([
643
+ (0,swagger_.ApiPropertyOptional)({
644
+ type: [
645
+ EmailAttachmentDto
646
+ ]
647
+ }),
648
+ IsArray(),
649
+ ValidateNested({
650
+ each: true
651
+ }),
652
+ Type(()=>EmailAttachmentDto),
653
+ IsOptional(),
654
+ email_send_dto_ts_metadata("design:type", Array)
655
+ ], BaseEmailDto.prototype, "attachments", void 0);
656
+ class SendEmailDto extends BaseEmailDto {
657
+ subject;
658
+ html;
659
+ text;
660
+ }
661
+ email_send_dto_ts_decorate([
662
+ (0,swagger_.ApiProperty)({
663
+ example: 'Welcome to our platform!'
664
+ }),
665
+ IsString(),
666
+ IsNotEmpty(),
667
+ email_send_dto_ts_metadata("design:type", String)
668
+ ], SendEmailDto.prototype, "subject", void 0);
669
+ email_send_dto_ts_decorate([
670
+ (0,swagger_.ApiProperty)({
671
+ example: '<h1>Hello!</h1><p>Welcome to our platform.</p>'
672
+ }),
673
+ IsString(),
674
+ IsNotEmpty(),
675
+ email_send_dto_ts_metadata("design:type", String)
676
+ ], SendEmailDto.prototype, "html", void 0);
677
+ email_send_dto_ts_decorate([
678
+ (0,swagger_.ApiPropertyOptional)({
679
+ example: 'Hello! Welcome to our platform.'
680
+ }),
681
+ IsString(),
682
+ IsOptional(),
683
+ email_send_dto_ts_metadata("design:type", String)
684
+ ], SendEmailDto.prototype, "text", void 0);
685
+ class SendTemplateEmailDto extends BaseEmailDto {
686
+ templateId;
687
+ templateSlug;
688
+ variables;
689
+ }
690
+ email_send_dto_ts_decorate([
691
+ (0,swagger_.ApiPropertyOptional)({
692
+ description: 'Template ID (required if templateSlug not provided)'
693
+ }),
694
+ IsUUID(),
695
+ IsOptional(),
696
+ RequireTemplateIdOrSlug({
697
+ message: 'Either templateId or templateSlug must be provided'
698
+ }),
699
+ email_send_dto_ts_metadata("design:type", String)
700
+ ], SendTemplateEmailDto.prototype, "templateId", void 0);
701
+ email_send_dto_ts_decorate([
702
+ (0,swagger_.ApiPropertyOptional)({
703
+ example: 'welcome-email',
704
+ description: 'Template slug (required if templateId not provided)'
705
+ }),
706
+ IsString(),
707
+ IsOptional(),
708
+ email_send_dto_ts_metadata("design:type", String)
709
+ ], SendTemplateEmailDto.prototype, "templateSlug", void 0);
710
+ email_send_dto_ts_decorate([
711
+ (0,swagger_.ApiPropertyOptional)({
712
+ type: 'object',
713
+ additionalProperties: true,
714
+ example: {
715
+ userName: 'John',
716
+ activationLink: 'https://...'
717
+ },
718
+ description: 'Template variables to interpolate'
719
+ }),
720
+ IsObject(),
721
+ IsOptional(),
722
+ email_send_dto_ts_metadata("design:type", typeof Record === "undefined" ? Object : Record)
723
+ ], SendTemplateEmailDto.prototype, "variables", void 0);
724
+ class TestEmailDto {
725
+ emailConfigId;
726
+ recipient;
727
+ }
728
+ email_send_dto_ts_decorate([
729
+ (0,swagger_.ApiProperty)({
730
+ description: 'Email configuration ID'
731
+ }),
732
+ IsUUID(),
733
+ IsNotEmpty(),
734
+ email_send_dto_ts_metadata("design:type", String)
735
+ ], TestEmailDto.prototype, "emailConfigId", void 0);
736
+ email_send_dto_ts_decorate([
737
+ (0,swagger_.ApiProperty)({
738
+ example: 'test@example.com',
739
+ description: 'Test recipient'
740
+ }),
741
+ IsEmail(),
742
+ IsNotEmpty(),
743
+ email_send_dto_ts_metadata("design:type", String)
744
+ ], TestEmailDto.prototype, "recipient", void 0);
745
+ class EmailSendResultDto {
746
+ success;
747
+ messageId;
748
+ error;
749
+ }
750
+ email_send_dto_ts_decorate([
751
+ (0,swagger_.ApiProperty)({
752
+ example: true
753
+ }),
754
+ email_send_dto_ts_metadata("design:type", Boolean)
755
+ ], EmailSendResultDto.prototype, "success", void 0);
756
+ email_send_dto_ts_decorate([
757
+ (0,swagger_.ApiPropertyOptional)({
758
+ example: '<message-id@mail.example.com>'
759
+ }),
760
+ email_send_dto_ts_metadata("design:type", String)
761
+ ], EmailSendResultDto.prototype, "messageId", void 0);
762
+ email_send_dto_ts_decorate([
763
+ (0,swagger_.ApiPropertyOptional)({
764
+ example: 'Connection refused'
765
+ }),
766
+ email_send_dto_ts_metadata("design:type", String)
767
+ ], EmailSendResultDto.prototype, "error", void 0);
768
+
769
+ ;// CONCATENATED MODULE: ./projects/nestjs-email/src/dtos/index.ts
770
+
771
+
772
+
773
+
774
+
775
+ },
776
+ 823(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
777
+ /**
778
+ * Supported email provider types
779
+ */ var EmailProviderTypeEnum = /*#__PURE__*/ function(EmailProviderTypeEnum) {
780
+ /** SMTP - Default provider using nodemailer (always available) */ EmailProviderTypeEnum["SMTP"] = "smtp";
781
+ /** SendGrid - Optional (requires @sendgrid/mail) */ EmailProviderTypeEnum["SENDGRID"] = "sendgrid";
782
+ /** Mailgun - Optional (requires mailgun.js) */ EmailProviderTypeEnum["MAILGUN"] = "mailgun";
783
+ return EmailProviderTypeEnum;
784
+ }({});
785
+
786
+ __webpack_require__.d(__webpack_exports__, {
787
+ V: () => (EmailProviderTypeEnum)
788
+ });
789
+
790
+
791
+ },
792
+ 176(module) {
793
+
794
+ module.exports = __rspack_external__nestjs_swagger_7cd450b5;
795
+
796
+
797
+ },
798
+
799
+ };