@flusys/nestjs-email 7.0.2 → 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.
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
@@ -0,0 +1,12 @@
1
+ import * as __rspack_external_nodemailer from "nodemailer";
2
+ export const __rspack_esm_id = 99;
3
+ export const __rspack_esm_ids = [99];
4
+ export const __webpack_modules__ = {
5
+ 982(module) {
6
+
7
+ module.exports = __rspack_external_nodemailer;
8
+
9
+
10
+ },
11
+
12
+ };
@@ -1,3 +1,104 @@
1
- export * from './email.constants';
2
- export * from './event-actions';
3
- export * from './message-keys';
1
+ export const __rspack_esm_id = 565;
2
+ export const __rspack_esm_ids = [565];
3
+ export const __webpack_modules__ = {
4
+ 966(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
+ /**
6
+ * Email Module Constants
7
+ */ const EMAIL_MODULE_OPTIONS = 'EMAIL_MODULE_OPTIONS';
8
+ const DEFAULT_FROM_NAME = 'FLUSYS';
9
+
10
+ __webpack_require__.d(__webpack_exports__, {
11
+ }, {
12
+ F: EMAIL_MODULE_OPTIONS
13
+ });
14
+
15
+
16
+ },
17
+ 399(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
18
+ /**
19
+ * Domain event actions published by the email module, alongside the CRUD
20
+ * lifecycle actions every ApiService emits.
21
+ */ const EMAIL_EVENT_ACTIONS = {
22
+ SENT: 'sent',
23
+ FAILED: 'failed'
24
+ };
25
+ /** Every entity the email module publishes under, ApiService backed or not */ const EMAIL_EVENT_ENTITIES = {
26
+ MESSAGE: 'email_message',
27
+ CONFIG: 'emailConfig',
28
+ TEMPLATE: 'emailTemplate'
29
+ };
30
+ const EMAIL_EVENT_MODULE = 'email';
31
+
32
+ __webpack_require__.d(__webpack_exports__, {
33
+ }, {
34
+ C: EMAIL_EVENT_ACTIONS,
35
+ y: EMAIL_EVENT_ENTITIES
36
+ });
37
+
38
+
39
+ },
40
+ 249(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
41
+ /* import */ var _email_constants_js__rspack_import_0 = __webpack_require__(966);
42
+ /* import */ var _event_actions_js__rspack_import_1 = __webpack_require__(399);
43
+ /* import */ var _message_keys_js__rspack_import_2 = __webpack_require__(887);
44
+
45
+
46
+
47
+
48
+ __webpack_require__.d(__webpack_exports__, {
49
+ Cm: () => (/* reexport safe */ _event_actions_js__rspack_import_1.C),
50
+ FK: () => (/* reexport safe */ _email_constants_js__rspack_import_0.F),
51
+ FO: () => (/* reexport safe */ (/* inlined export _event_actions_js__rspack_import_1 */"email")),
52
+ Nl: () => (/* reexport safe */ (/* inlined export _email_constants_js__rspack_import_0 */"FLUSYS")),
53
+ T6: () => (/* reexport safe */ _message_keys_js__rspack_import_2.T6),
54
+ dP: () => (/* reexport safe */ _message_keys_js__rspack_import_2.dP),
55
+ xP: () => (/* reexport safe */ _message_keys_js__rspack_import_2.xP),
56
+ yv: () => (/* reexport safe */ _event_actions_js__rspack_import_1.y)
57
+ });
58
+
59
+
60
+ },
61
+ 887(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
62
+ // ==================== EMAIL MODULE MESSAGE KEYS ====================
63
+ const EMAIL_TEMPLATE_MESSAGES = {
64
+ GET_SUCCESS: 'email.template.get.success',
65
+ NOT_FOUND: 'email.template.not.found'
66
+ };
67
+ const EMAIL_CONFIG_MESSAGES = {
68
+ DEFAULT_DELETE_FORBIDDEN: 'email.config.default.delete.forbidden'
69
+ };
70
+ const EMAIL_SEND_MESSAGES = {
71
+ SUCCESS: 'email.send.success',
72
+ FAILED: 'email.send.failed',
73
+ CONFIG_NOT_FOUND: 'email.send.config.not.found',
74
+ CONFIG_INACTIVE: 'email.send.config.inactive',
75
+ CONFIG_DEFAULT_NOT_FOUND: 'email.send.config.default.not.found',
76
+ TEMPLATE_NOT_FOUND: 'email.send.template.not.found',
77
+ TEMPLATE_INACTIVE: 'email.send.template.inactive',
78
+ TEMPLATE_ID_OR_SLUG_REQUIRED: 'email.send.template.id.or.slug.required'
79
+ };
80
+
81
+ __webpack_require__.d(__webpack_exports__, {
82
+ }, {
83
+ T6: EMAIL_CONFIG_MESSAGES,
84
+ dP: EMAIL_SEND_MESSAGES,
85
+ xP: EMAIL_TEMPLATE_MESSAGES
86
+ });
87
+
88
+
89
+ },
90
+
91
+ };
92
+ import { __webpack_require__ } from '../runtime.js';
93
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
94
+ import * as __rspack_chunk_1 from './index.js';
95
+ __webpack_require__.C(__rspack_chunk_1);
96
+ var __webpack_exports__ = __webpack_exec__(249);var __webpack_exports__DEFAULT_FROM_NAME = __webpack_exports__.Nl;
97
+ var __webpack_exports__EMAIL_CONFIG_MESSAGES = __webpack_exports__.T6;
98
+ var __webpack_exports__EMAIL_EVENT_ACTIONS = __webpack_exports__.Cm;
99
+ var __webpack_exports__EMAIL_EVENT_ENTITIES = __webpack_exports__.yv;
100
+ var __webpack_exports__EMAIL_EVENT_MODULE = __webpack_exports__.FO;
101
+ var __webpack_exports__EMAIL_MODULE_OPTIONS = __webpack_exports__.FK;
102
+ var __webpack_exports__EMAIL_SEND_MESSAGES = __webpack_exports__.dP;
103
+ var __webpack_exports__EMAIL_TEMPLATE_MESSAGES = __webpack_exports__.xP;
104
+ export { __webpack_exports__DEFAULT_FROM_NAME as DEFAULT_FROM_NAME, __webpack_exports__EMAIL_CONFIG_MESSAGES as EMAIL_CONFIG_MESSAGES, __webpack_exports__EMAIL_EVENT_ACTIONS as EMAIL_EVENT_ACTIONS, __webpack_exports__EMAIL_EVENT_ENTITIES as EMAIL_EVENT_ENTITIES, __webpack_exports__EMAIL_EVENT_MODULE as EMAIL_EVENT_MODULE, __webpack_exports__EMAIL_MODULE_OPTIONS as EMAIL_MODULE_OPTIONS, __webpack_exports__EMAIL_SEND_MESSAGES as EMAIL_SEND_MESSAGES, __webpack_exports__EMAIL_TEMPLATE_MESSAGES as EMAIL_TEMPLATE_MESSAGES };
@@ -1,3 +1,396 @@
1
- export * from './email-config.controller';
2
- export * from './email-template.controller';
3
- export * from './email-send.controller';
1
+ import { CurrentUser, RequirePermission } from "@flusys/nestjs-shared/decorators";
2
+ import { JwtAuthGuard, PermissionGuard } from "@flusys/nestjs-shared/guards";
3
+ export const __rspack_esm_id = 24;
4
+ export const __rspack_esm_ids = [24];
5
+ export const __webpack_modules__ = {
6
+ 574(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
7
+
8
+ // EXPORTS
9
+ __webpack_require__.d(__webpack_exports__, {
10
+ vf: () => (/* reexport */ EmailConfigController),
11
+ xm: () => (/* reexport */ EmailSendController),
12
+ RK: () => (/* reexport */ EmailTemplateController)
13
+ });
14
+
15
+ // EXTERNAL MODULE: external "@flusys/nestjs-shared/classes"
16
+ var classes_ = __webpack_require__(937);
17
+ // EXTERNAL MODULE: external "@nestjs/common"
18
+ var common_ = __webpack_require__(157);
19
+ // EXTERNAL MODULE: external "@nestjs/swagger"
20
+ var swagger_ = __webpack_require__(176);
21
+ // EXTERNAL MODULE: ./projects/nestjs-email/src/dtos/index.ts + 6 modules
22
+ var dtos = __webpack_require__(684);
23
+ // EXTERNAL MODULE: ./projects/nestjs-email/src/services/index.ts + 6 modules
24
+ var services = __webpack_require__(676);
25
+ ;// CONCATENATED MODULE: ./projects/nestjs-email/src/controllers/email-config.controller.ts
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") {
29
+ r = Reflect.decorate(decorators, target, key, desc);
30
+ } else {
31
+ for(var i = decorators.length - 1; i >= 0; i--){
32
+ if (d = decorators[i]) {
33
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
34
+ }
35
+ }
36
+ }
37
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
38
+ }
39
+ function _ts_metadata(metadataKey, metadataValue) {
40
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
41
+ return Reflect.metadata(metadataKey, metadataValue);
42
+ }
43
+ }
44
+ function _ts_param(paramIndex, decorator) {
45
+ return function(target, key) {
46
+ decorator(target, key, paramIndex);
47
+ };
48
+ }
49
+
50
+
51
+
52
+
53
+
54
+ class EmailConfigController extends (0,classes_.createApiController)(dtos/* .CreateEmailConfigDto */.oo, dtos/* .UpdateEmailConfigDto */.vC, dtos/* .EmailConfigResponseDto */.Lo, {
55
+ entityName: 'email.config',
56
+ security: {
57
+ insert: {
58
+ level: 'permission',
59
+ permissions: [
60
+ classes_.EMAIL_CONFIG_PERMISSIONS.CREATE
61
+ ]
62
+ },
63
+ insertMany: {
64
+ level: 'permission',
65
+ permissions: [
66
+ classes_.EMAIL_CONFIG_PERMISSIONS.CREATE
67
+ ]
68
+ },
69
+ getById: {
70
+ level: 'permission',
71
+ permissions: [
72
+ classes_.EMAIL_CONFIG_PERMISSIONS.READ
73
+ ]
74
+ },
75
+ getAll: {
76
+ level: 'permission',
77
+ permissions: [
78
+ classes_.EMAIL_CONFIG_PERMISSIONS.READ
79
+ ]
80
+ },
81
+ update: {
82
+ level: 'permission',
83
+ permissions: [
84
+ classes_.EMAIL_CONFIG_PERMISSIONS.UPDATE
85
+ ]
86
+ },
87
+ updateMany: {
88
+ level: 'permission',
89
+ permissions: [
90
+ classes_.EMAIL_CONFIG_PERMISSIONS.UPDATE
91
+ ]
92
+ },
93
+ delete: {
94
+ level: 'permission',
95
+ permissions: [
96
+ classes_.EMAIL_CONFIG_PERMISSIONS.DELETE
97
+ ]
98
+ }
99
+ },
100
+ enabledEndpoints: [
101
+ 'insert',
102
+ 'insertMany',
103
+ 'getById',
104
+ 'getAll',
105
+ 'update',
106
+ 'updateMany',
107
+ 'delete'
108
+ ]
109
+ }) {
110
+ emailConfigService;
111
+ constructor(emailConfigService){
112
+ super(emailConfigService), this.emailConfigService = emailConfigService;
113
+ }
114
+ }
115
+ EmailConfigController = _ts_decorate([
116
+ (0,swagger_.ApiTags)('Email Config'),
117
+ (0,common_.Controller)('email/email-config'),
118
+ _ts_param(0, (0,common_.Inject)(services/* .EmailProviderConfigService */.jG)),
119
+ _ts_metadata("design:type", Function),
120
+ _ts_metadata("design:paramtypes", [
121
+ typeof services/* .EmailProviderConfigService */.jG === "undefined" ? Object : services/* .EmailProviderConfigService */.jG
122
+ ])
123
+ ], EmailConfigController);
124
+
125
+ ;// CONCATENATED MODULE: external "@flusys/nestjs-shared/decorators"
126
+
127
+ ;// CONCATENATED MODULE: external "@flusys/nestjs-shared/guards"
128
+
129
+ // EXTERNAL MODULE: ./projects/nestjs-email/src/config/message-keys.ts
130
+ var message_keys = __webpack_require__(887);
131
+ ;// CONCATENATED MODULE: ./projects/nestjs-email/src/controllers/email-template.controller.ts
132
+ function email_template_controller_ts_decorate(decorators, target, key, desc) {
133
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
134
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
135
+ r = Reflect.decorate(decorators, target, key, desc);
136
+ } else {
137
+ for(var i = decorators.length - 1; i >= 0; i--){
138
+ if (d = decorators[i]) {
139
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
140
+ }
141
+ }
142
+ }
143
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
144
+ }
145
+ function email_template_controller_ts_metadata(metadataKey, metadataValue) {
146
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
147
+ return Reflect.metadata(metadataKey, metadataValue);
148
+ }
149
+ }
150
+ function email_template_controller_ts_param(paramIndex, decorator) {
151
+ return function(target, key) {
152
+ decorator(target, key, paramIndex);
153
+ };
154
+ }
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+ class EmailTemplateController extends (0,classes_.createApiController)(dtos/* .CreateEmailTemplateDto */.k8, dtos/* .UpdateEmailTemplateDto */.hh, dtos/* .EmailTemplateResponseDto */.Nl, {
164
+ entityName: 'email.template',
165
+ security: {
166
+ insert: {
167
+ level: 'permission',
168
+ permissions: [
169
+ classes_.EMAIL_TEMPLATE_PERMISSIONS.CREATE
170
+ ]
171
+ },
172
+ insertMany: {
173
+ level: 'permission',
174
+ permissions: [
175
+ classes_.EMAIL_TEMPLATE_PERMISSIONS.CREATE
176
+ ]
177
+ },
178
+ getById: {
179
+ level: 'permission',
180
+ permissions: [
181
+ classes_.EMAIL_TEMPLATE_PERMISSIONS.READ
182
+ ]
183
+ },
184
+ getAll: {
185
+ level: 'permission',
186
+ permissions: [
187
+ classes_.EMAIL_TEMPLATE_PERMISSIONS.READ
188
+ ]
189
+ },
190
+ update: {
191
+ level: 'permission',
192
+ permissions: [
193
+ classes_.EMAIL_TEMPLATE_PERMISSIONS.UPDATE
194
+ ]
195
+ },
196
+ updateMany: {
197
+ level: 'permission',
198
+ permissions: [
199
+ classes_.EMAIL_TEMPLATE_PERMISSIONS.UPDATE
200
+ ]
201
+ },
202
+ delete: {
203
+ level: 'permission',
204
+ permissions: [
205
+ classes_.EMAIL_TEMPLATE_PERMISSIONS.DELETE
206
+ ]
207
+ }
208
+ }
209
+ }) {
210
+ emailTemplateService;
211
+ constructor(emailTemplateService){
212
+ super(emailTemplateService), this.emailTemplateService = emailTemplateService;
213
+ }
214
+ async getBySlug(body, user) {
215
+ const data = await this.emailTemplateService.findBySlug(body.slug, user);
216
+ if (!data) {
217
+ throw new common_.NotFoundException({
218
+ message: 'Email template not found',
219
+ messageKey: message_keys/* .EMAIL_TEMPLATE_MESSAGES.NOT_FOUND */.xP.NOT_FOUND
220
+ });
221
+ }
222
+ return {
223
+ success: true,
224
+ message: 'Template retrieved',
225
+ messageKey: message_keys/* .EMAIL_TEMPLATE_MESSAGES.GET_SUCCESS */.xP.GET_SUCCESS,
226
+ data
227
+ };
228
+ }
229
+ }
230
+ email_template_controller_ts_decorate([
231
+ (0,common_.Post)('get-by-slug'),
232
+ (0,common_.UseGuards)(JwtAuthGuard, PermissionGuard),
233
+ (0,swagger_.ApiBearerAuth)(),
234
+ RequirePermission(classes_.EMAIL_TEMPLATE_PERMISSIONS.READ),
235
+ (0,swagger_.ApiOperation)({
236
+ summary: 'Get email template by slug'
237
+ }),
238
+ (0,swagger_.ApiResponse)({
239
+ status: 200,
240
+ type: dtos/* .EmailTemplateResponseDto */.Nl
241
+ }),
242
+ email_template_controller_ts_param(0, (0,common_.Body)()),
243
+ email_template_controller_ts_param(1, CurrentUser()),
244
+ email_template_controller_ts_metadata("design:type", Function),
245
+ email_template_controller_ts_metadata("design:paramtypes", [
246
+ Object,
247
+ typeof ILoggedUserInfo === "undefined" ? Object : ILoggedUserInfo
248
+ ]),
249
+ email_template_controller_ts_metadata("design:returntype", Promise)
250
+ ], EmailTemplateController.prototype, "getBySlug", null);
251
+ EmailTemplateController = email_template_controller_ts_decorate([
252
+ (0,swagger_.ApiTags)('Email Template'),
253
+ (0,common_.Controller)('email/email-template'),
254
+ email_template_controller_ts_param(0, (0,common_.Inject)(services/* .EmailTemplateService */.uS)),
255
+ email_template_controller_ts_metadata("design:type", Function),
256
+ email_template_controller_ts_metadata("design:paramtypes", [
257
+ typeof services/* .EmailTemplateService */.uS === "undefined" ? Object : services/* .EmailTemplateService */.uS
258
+ ])
259
+ ], EmailTemplateController);
260
+
261
+ ;// CONCATENATED MODULE: ./projects/nestjs-email/src/controllers/email-send.controller.ts
262
+ function email_send_controller_ts_decorate(decorators, target, key, desc) {
263
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
264
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") {
265
+ r = Reflect.decorate(decorators, target, key, desc);
266
+ } else {
267
+ for(var i = decorators.length - 1; i >= 0; i--){
268
+ if (d = decorators[i]) {
269
+ r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
270
+ }
271
+ }
272
+ }
273
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
274
+ }
275
+ function email_send_controller_ts_metadata(metadataKey, metadataValue) {
276
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") {
277
+ return Reflect.metadata(metadataKey, metadataValue);
278
+ }
279
+ }
280
+ function email_send_controller_ts_param(paramIndex, decorator) {
281
+ return function(target, key) {
282
+ decorator(target, key, paramIndex);
283
+ };
284
+ }
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+ class EmailSendController {
293
+ emailSendService;
294
+ constructor(emailSendService){
295
+ this.emailSendService = emailSendService;
296
+ }
297
+ async sendEmail(dto, user) {
298
+ const result = await this.emailSendService.sendEmail(dto, user);
299
+ return this.toResponse(result, 'Email');
300
+ }
301
+ async sendTemplateEmail(dto, user) {
302
+ const result = await this.emailSendService.sendTemplateEmail(dto, user);
303
+ return this.toResponse(result, 'Template email');
304
+ }
305
+ async sendTestEmail(dto, user) {
306
+ const result = await this.emailSendService.sendTestEmail(dto.emailConfigId, dto.recipient, user);
307
+ return this.toResponse(result, 'Test email');
308
+ }
309
+ toResponse(result, label) {
310
+ return {
311
+ success: result.success,
312
+ message: result.success ? `${label} sent successfully` : `Failed to send ${label.toLowerCase()}`,
313
+ messageKey: result.success ? message_keys/* .EMAIL_SEND_MESSAGES.SUCCESS */.dP.SUCCESS : message_keys/* .EMAIL_SEND_MESSAGES.FAILED */.dP.FAILED,
314
+ data: {
315
+ success: result.success,
316
+ messageId: result.messageId,
317
+ error: result.error
318
+ }
319
+ };
320
+ }
321
+ }
322
+ email_send_controller_ts_decorate([
323
+ (0,common_.Post)('direct'),
324
+ (0,swagger_.ApiOperation)({
325
+ summary: 'Send email directly with custom content'
326
+ }),
327
+ email_send_controller_ts_param(0, (0,common_.Body)()),
328
+ email_send_controller_ts_param(1, CurrentUser()),
329
+ email_send_controller_ts_metadata("design:type", Function),
330
+ email_send_controller_ts_metadata("design:paramtypes", [
331
+ typeof dtos/* .SendEmailDto */.m5 === "undefined" ? Object : dtos/* .SendEmailDto */.m5,
332
+ typeof ILoggedUserInfo === "undefined" ? Object : ILoggedUserInfo
333
+ ]),
334
+ email_send_controller_ts_metadata("design:returntype", Promise)
335
+ ], EmailSendController.prototype, "sendEmail", null);
336
+ email_send_controller_ts_decorate([
337
+ (0,common_.Post)('template'),
338
+ (0,swagger_.ApiOperation)({
339
+ summary: 'Send email using a template with variable interpolation'
340
+ }),
341
+ email_send_controller_ts_param(0, (0,common_.Body)()),
342
+ email_send_controller_ts_param(1, CurrentUser()),
343
+ email_send_controller_ts_metadata("design:type", Function),
344
+ email_send_controller_ts_metadata("design:paramtypes", [
345
+ typeof dtos/* .SendTemplateEmailDto */.iu === "undefined" ? Object : dtos/* .SendTemplateEmailDto */.iu,
346
+ typeof ILoggedUserInfo === "undefined" ? Object : ILoggedUserInfo
347
+ ]),
348
+ email_send_controller_ts_metadata("design:returntype", Promise)
349
+ ], EmailSendController.prototype, "sendTemplateEmail", null);
350
+ email_send_controller_ts_decorate([
351
+ (0,common_.Post)('test'),
352
+ (0,swagger_.ApiOperation)({
353
+ summary: 'Send a test email to verify configuration'
354
+ }),
355
+ email_send_controller_ts_param(0, (0,common_.Body)()),
356
+ email_send_controller_ts_param(1, CurrentUser()),
357
+ email_send_controller_ts_metadata("design:type", Function),
358
+ email_send_controller_ts_metadata("design:paramtypes", [
359
+ typeof dtos/* .TestEmailDto */.uU === "undefined" ? Object : dtos/* .TestEmailDto */.uU,
360
+ typeof ILoggedUserInfo === "undefined" ? Object : ILoggedUserInfo
361
+ ]),
362
+ email_send_controller_ts_metadata("design:returntype", Promise)
363
+ ], EmailSendController.prototype, "sendTestEmail", null);
364
+ EmailSendController = email_send_controller_ts_decorate([
365
+ (0,swagger_.ApiTags)('Email Send'),
366
+ (0,swagger_.ApiBearerAuth)(),
367
+ (0,common_.Controller)('email/send'),
368
+ (0,common_.UseGuards)(JwtAuthGuard),
369
+ email_send_controller_ts_param(0, (0,common_.Inject)(services/* .EmailSendService */.yu)),
370
+ email_send_controller_ts_metadata("design:type", Function),
371
+ email_send_controller_ts_metadata("design:paramtypes", [
372
+ typeof services/* .EmailSendService */.yu === "undefined" ? Object : services/* .EmailSendService */.yu
373
+ ])
374
+ ], EmailSendController);
375
+
376
+ ;// CONCATENATED MODULE: ./projects/nestjs-email/src/controllers/index.ts
377
+
378
+
379
+
380
+
381
+
382
+ },
383
+
384
+ };
385
+ import { __webpack_require__ } from '../runtime.js';
386
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
387
+ import * as __rspack_chunk_1 from '../261.js';
388
+ __webpack_require__.C(__rspack_chunk_1);
389
+ import * as __rspack_chunk_2 from '../493.js';
390
+ __webpack_require__.C(__rspack_chunk_2);
391
+ import * as __rspack_chunk_3 from './index.js';
392
+ __webpack_require__.C(__rspack_chunk_3);
393
+ var __webpack_exports__ = __webpack_exec__(574);var __webpack_exports__EmailConfigController = __webpack_exports__.vf;
394
+ var __webpack_exports__EmailSendController = __webpack_exports__.xm;
395
+ var __webpack_exports__EmailTemplateController = __webpack_exports__.RK;
396
+ export { __webpack_exports__EmailConfigController as EmailConfigController, __webpack_exports__EmailSendController as EmailSendController, __webpack_exports__EmailTemplateController as EmailTemplateController };
@@ -1 +1,134 @@
1
- export { emailSwaggerConfig } from './email-swagger.config';
1
+ export const __rspack_esm_id = 428;
2
+ export const __rspack_esm_ids = [428];
3
+ export const __webpack_modules__ = {
4
+ 287(__unused_rspack_module, __webpack_exports__, __webpack_require__) {
5
+
6
+ // EXPORTS
7
+ __webpack_require__.d(__webpack_exports__, {
8
+ h: () => (/* reexport */ emailSwaggerConfig)
9
+ });
10
+
11
+ ;// CONCATENATED MODULE: ./projects/nestjs-email/src/docs/email-swagger.config.ts
12
+ /** Schema properties to exclude when company feature is disabled */ const COMPANY_SCHEMA_EXCLUSIONS = [
13
+ {
14
+ schemaName: 'EmailConfigResponseDto',
15
+ properties: [
16
+ 'companyId'
17
+ ]
18
+ },
19
+ {
20
+ schemaName: 'EmailTemplateResponseDto',
21
+ properties: [
22
+ 'companyId'
23
+ ]
24
+ }
25
+ ];
26
+ function buildDescription(enableCompanyFeature, isMultiTenant) {
27
+ const multiTenantNote = isMultiTenant ? `\n> **Multi-Tenant Mode**: Include \`x-tenant-id\` header to target a specific tenant database.\n` : '';
28
+ const companyConfigs = enableCompanyFeature ? '\n- **Company-level email configs**' : '';
29
+ const companyIsolation = enableCompanyFeature ? '\n- **Company isolation**' : '';
30
+ const multiTenantSection = enableCompanyFeature ? `
31
+ ## Multi-Tenant Support
32
+
33
+ Emails are automatically isolated by:
34
+ - **Company ID**: Company-level templates and configs
35
+
36
+ All queries automatically filter by current user's company context.
37
+ ` : '';
38
+ return `
39
+ # Email Management API
40
+ ${multiTenantNote}
41
+ Complete email management system${enableCompanyFeature ? ' with multi-tenant and company support' : ''}.
42
+
43
+ ## Features
44
+
45
+ ### 📧 Email Configuration
46
+ - Multiple email providers (SMTP, SendGrid, Mailgun)
47
+ - Provider-specific configurations
48
+ - Default sender settings${companyConfigs}
49
+
50
+ ### 📝 Email Templates
51
+ - Visual template builder
52
+ - Variable interpolation ({{variable}})
53
+ - HTML and plain text support
54
+ - Template versioning${companyIsolation}
55
+
56
+ ### ✉️ Email Sending
57
+ - Direct email sending
58
+ - Template-based sending
59
+ - Attachments support
60
+ - CC/BCC recipients
61
+
62
+ ### 🔒 Security
63
+ - JWT authentication required${companyIsolation}
64
+ - Secure credential storage
65
+
66
+ ## Supported Providers
67
+
68
+ ### SMTP
69
+ - Universal email protocol
70
+ - Custom server support
71
+ - TLS/SSL encryption
72
+
73
+ ### SendGrid (optional)
74
+ - Cloud email service
75
+ - High deliverability
76
+ - Install: \`npm install @sendgrid/mail\`
77
+
78
+ ### Mailgun (optional)
79
+ - Developer-friendly API
80
+ - Detailed analytics
81
+ - Install: \`npm install mailgun.js\`
82
+
83
+ ## Template Variables
84
+
85
+ Templates support Handlebars-style variables:
86
+ - \`{{userName}}\` - Simple variable
87
+ - \`{{user.email}}\` - Nested properties
88
+ - Variables are replaced at send time
89
+ ${multiTenantSection}
90
+ ## API Endpoints
91
+
92
+ All email endpoints are prefixed with \`/email\`:
93
+ - \`/email/email-config/*\` - Email provider configurations
94
+ - \`/email/email-template/*\` - Email templates
95
+ - \`/email/email-send/*\` - Send emails
96
+
97
+ ## Getting Started
98
+
99
+ 1. **Authenticate**: Obtain JWT token from /auth/login
100
+ 2. **Configure Provider**: Create email config via /email/email-config/insert
101
+ 3. **Create Templates**: Add templates via /email/email-template/insert
102
+ 4. **Send Emails**: Send via /email/email-send/send or /email/email-send/send-template
103
+ `;
104
+ }
105
+ /**
106
+ * Email Module Swagger Configuration
107
+ * Use this with setupSwaggerDocs() from @flusys/nestjs-core
108
+ */ function emailSwaggerConfig(bootstrapConfig) {
109
+ const enableCompanyFeature = bootstrapConfig?.enableCompanyFeature ?? true;
110
+ const isMultiTenant = bootstrapConfig?.databaseMode === 'multi-tenant';
111
+ return {
112
+ title: 'Email API',
113
+ description: buildDescription(enableCompanyFeature, isMultiTenant),
114
+ version: '1.0',
115
+ path: 'api/docs/email',
116
+ bearerAuth: true,
117
+ excludeTags: [],
118
+ excludeSchemaProperties: enableCompanyFeature ? undefined : COMPANY_SCHEMA_EXCLUSIONS
119
+ };
120
+ }
121
+
122
+ ;// CONCATENATED MODULE: ./projects/nestjs-email/src/docs/index.ts
123
+
124
+
125
+
126
+ },
127
+
128
+ };
129
+ import { __webpack_require__ } from '../runtime.js';
130
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
131
+ import * as __rspack_chunk_1 from './index.js';
132
+ __webpack_require__.C(__rspack_chunk_1);
133
+ var __webpack_exports__ = __webpack_exec__(287);var __webpack_exports__emailSwaggerConfig = __webpack_exports__.h;
134
+ export { __webpack_exports__emailSwaggerConfig as emailSwaggerConfig };
@@ -1,3 +1,22 @@
1
- export * from './email-config.dto';
2
- export * from './email-template.dto';
3
- export * from './email-send.dto';
1
+ export const __rspack_esm_id = 685;
2
+ export const __rspack_esm_ids = [685];
3
+ export const __webpack_modules__ = {};
4
+ import { __webpack_require__ } from '../runtime.js';
5
+ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
6
+ import * as __rspack_chunk_1 from '../261.js';
7
+ __webpack_require__.C(__rspack_chunk_1);
8
+ import * as __rspack_chunk_2 from './index.js';
9
+ __webpack_require__.C(__rspack_chunk_2);
10
+ var __webpack_exports__ = __webpack_exec__(684);var __webpack_exports__CreateEmailConfigDto = __webpack_exports__.oo;
11
+ var __webpack_exports__CreateEmailTemplateDto = __webpack_exports__.k8;
12
+ var __webpack_exports__EmailAttachmentDto = __webpack_exports__.x1;
13
+ var __webpack_exports__EmailConfigResponseDto = __webpack_exports__.Lo;
14
+ var __webpack_exports__EmailSendResultDto = __webpack_exports__.vx;
15
+ var __webpack_exports__EmailTemplateResponseDto = __webpack_exports__.Nl;
16
+ var __webpack_exports__IsEmailOrEmailArrayConstraint = __webpack_exports__.e_;
17
+ var __webpack_exports__SendEmailDto = __webpack_exports__.m5;
18
+ var __webpack_exports__SendTemplateEmailDto = __webpack_exports__.iu;
19
+ var __webpack_exports__TestEmailDto = __webpack_exports__.uU;
20
+ var __webpack_exports__UpdateEmailConfigDto = __webpack_exports__.vC;
21
+ var __webpack_exports__UpdateEmailTemplateDto = __webpack_exports__.hh;
22
+ export { __webpack_exports__CreateEmailConfigDto as CreateEmailConfigDto, __webpack_exports__CreateEmailTemplateDto as CreateEmailTemplateDto, __webpack_exports__EmailAttachmentDto as EmailAttachmentDto, __webpack_exports__EmailConfigResponseDto as EmailConfigResponseDto, __webpack_exports__EmailSendResultDto as EmailSendResultDto, __webpack_exports__EmailTemplateResponseDto as EmailTemplateResponseDto, __webpack_exports__IsEmailOrEmailArrayConstraint as IsEmailOrEmailArrayConstraint, __webpack_exports__SendEmailDto as SendEmailDto, __webpack_exports__SendTemplateEmailDto as SendTemplateEmailDto, __webpack_exports__TestEmailDto as TestEmailDto, __webpack_exports__UpdateEmailConfigDto as UpdateEmailConfigDto, __webpack_exports__UpdateEmailTemplateDto as UpdateEmailTemplateDto };