@mondomob/gae-node-nestjs 12.0.0-alpha-1 → 12.0.0-alpha-2

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 (207) hide show
  1. package/mondomob-gae-node-nestjs-12.0.0-alpha-1.tgz +0 -0
  2. package/mondomob-gae-node-nestjs-12.0.0-alpha-2.tgz +0 -0
  3. package/package.json +4 -4
  4. package/dist/_test/mocks.d.ts +0 -9
  5. package/dist/_test/mocks.js +0 -27
  6. package/dist/_test/mocks.js.map +0 -1
  7. package/dist/_test/request-scope-test-utils.d.ts +0 -3
  8. package/dist/_test/request-scope-test-utils.js +0 -18
  9. package/dist/_test/request-scope-test-utils.js.map +0 -1
  10. package/dist/auth/auth-user.model.d.ts +0 -9
  11. package/dist/auth/auth-user.model.js +0 -33
  12. package/dist/auth/auth-user.model.js.map +0 -1
  13. package/dist/auth/auth.callbacks.d.ts +0 -8
  14. package/dist/auth/auth.callbacks.js +0 -5
  15. package/dist/auth/auth.callbacks.js.map +0 -1
  16. package/dist/auth/auth.configurer.d.ts +0 -35
  17. package/dist/auth/auth.configurer.js +0 -212
  18. package/dist/auth/auth.configurer.js.map +0 -1
  19. package/dist/auth/auth.controller.d.ts +0 -27
  20. package/dist/auth/auth.controller.js +0 -312
  21. package/dist/auth/auth.controller.js.map +0 -1
  22. package/dist/auth/auth.guard.d.ts +0 -16
  23. package/dist/auth/auth.guard.js +0 -127
  24. package/dist/auth/auth.guard.js.map +0 -1
  25. package/dist/auth/auth.listener.d.ts +0 -5
  26. package/dist/auth/auth.listener.js +0 -5
  27. package/dist/auth/auth.listener.js.map +0 -1
  28. package/dist/auth/auth.repository.d.ts +0 -52
  29. package/dist/auth/auth.repository.js +0 -79
  30. package/dist/auth/auth.repository.js.map +0 -1
  31. package/dist/auth/auth.resolver.d.ts +0 -13
  32. package/dist/auth/auth.resolver.js +0 -86
  33. package/dist/auth/auth.resolver.js.map +0 -1
  34. package/dist/auth/auth.service.d.ts +0 -35
  35. package/dist/auth/auth.service.js +0 -299
  36. package/dist/auth/auth.service.js.map +0 -1
  37. package/dist/auth/auth.task.controller.d.ts +0 -13
  38. package/dist/auth/auth.task.controller.js +0 -76
  39. package/dist/auth/auth.task.controller.js.map +0 -1
  40. package/dist/auth/auth.task.service.d.ts +0 -8
  41. package/dist/auth/auth.task.service.js +0 -26
  42. package/dist/auth/auth.task.service.js.map +0 -1
  43. package/dist/auth/csrf.interceptor.d.ts +0 -11
  44. package/dist/auth/csrf.interceptor.js +0 -38
  45. package/dist/auth/csrf.interceptor.js.map +0 -1
  46. package/dist/auth/invite-user.service.d.ts +0 -45
  47. package/dist/auth/invite-user.service.js +0 -215
  48. package/dist/auth/invite-user.service.js.map +0 -1
  49. package/dist/auth/invite.callbacks.d.ts +0 -6
  50. package/dist/auth/invite.callbacks.js +0 -5
  51. package/dist/auth/invite.callbacks.js.map +0 -1
  52. package/dist/auth/login-identifier.repository.d.ts +0 -13
  53. package/dist/auth/login-identifier.repository.js +0 -28
  54. package/dist/auth/login-identifier.repository.js.map +0 -1
  55. package/dist/auth/password-reset.service.d.ts +0 -15
  56. package/dist/auth/password-reset.service.js +0 -81
  57. package/dist/auth/password-reset.service.js.map +0 -1
  58. package/dist/auth/user.service.d.ts +0 -27
  59. package/dist/auth/user.service.js +0 -94
  60. package/dist/auth/user.service.js.map +0 -1
  61. package/dist/configuration.d.ts +0 -84
  62. package/dist/configuration.js +0 -5
  63. package/dist/configuration.js.map +0 -1
  64. package/dist/configure.d.ts +0 -40
  65. package/dist/configure.js +0 -85
  66. package/dist/configure.js.map +0 -1
  67. package/dist/context/context-middleware.d.ts +0 -15
  68. package/dist/context/context-middleware.js +0 -37
  69. package/dist/context/context-middleware.js.map +0 -1
  70. package/dist/context/context-request-scope.d.ts +0 -8
  71. package/dist/context/context-request-scope.js +0 -29
  72. package/dist/context/context-request-scope.js.map +0 -1
  73. package/dist/context/index.d.ts +0 -2
  74. package/dist/context/index.js +0 -9
  75. package/dist/context/index.js.map +0 -1
  76. package/dist/datastore/context.d.ts +0 -36
  77. package/dist/datastore/context.js +0 -27
  78. package/dist/datastore/context.js.map +0 -1
  79. package/dist/datastore/datastore.provider.d.ts +0 -8
  80. package/dist/datastore/datastore.provider.js +0 -30
  81. package/dist/datastore/datastore.provider.js.map +0 -1
  82. package/dist/datastore/filters.d.ts +0 -19
  83. package/dist/datastore/filters.js +0 -27
  84. package/dist/datastore/filters.js.map +0 -1
  85. package/dist/datastore/loader.d.ts +0 -50
  86. package/dist/datastore/loader.js +0 -147
  87. package/dist/datastore/loader.js.map +0 -1
  88. package/dist/datastore/node-datastore-session.d.ts +0 -17
  89. package/dist/datastore/node-datastore-session.js +0 -87
  90. package/dist/datastore/node-datastore-session.js.map +0 -1
  91. package/dist/datastore/repository.d.ts +0 -45
  92. package/dist/datastore/repository.js +0 -150
  93. package/dist/datastore/repository.js.map +0 -1
  94. package/dist/datastore/transactional.d.ts +0 -4
  95. package/dist/datastore/transactional.js +0 -13
  96. package/dist/datastore/transactional.js.map +0 -1
  97. package/dist/error/NonFatalError.d.ts +0 -3
  98. package/dist/error/NonFatalError.js +0 -11
  99. package/dist/error/NonFatalError.js.map +0 -1
  100. package/dist/filter.d.ts +0 -5
  101. package/dist/filter.js +0 -40
  102. package/dist/filter.js.map +0 -1
  103. package/dist/gcloud/logging.d.ts +0 -1
  104. package/dist/gcloud/logging.js +0 -5
  105. package/dist/gcloud/logging.js.map +0 -1
  106. package/dist/gcloud/storage.provider.d.ts +0 -12
  107. package/dist/gcloud/storage.provider.js +0 -41
  108. package/dist/gcloud/storage.provider.js.map +0 -1
  109. package/dist/gcloud/tasks.d.ts +0 -10
  110. package/dist/gcloud/tasks.js +0 -68
  111. package/dist/gcloud/tasks.js.map +0 -1
  112. package/dist/graphql/GraphQLMiddleware.d.ts +0 -0
  113. package/dist/graphql/GraphQLMiddleware.js +0 -2
  114. package/dist/graphql/GraphQLMiddleware.js.map +0 -1
  115. package/dist/index.d.ts +0 -28
  116. package/dist/index.js +0 -65
  117. package/dist/index.js.map +0 -1
  118. package/dist/logging/index.d.ts +0 -1
  119. package/dist/logging/index.js +0 -8
  120. package/dist/logging/index.js.map +0 -1
  121. package/dist/logging/logging-internal.d.ts +0 -2
  122. package/dist/logging/logging-internal.js +0 -20
  123. package/dist/logging/logging-internal.js.map +0 -1
  124. package/dist/logging/logging-request-scope.d.ts +0 -15
  125. package/dist/logging/logging-request-scope.js +0 -39
  126. package/dist/logging/logging-request-scope.js.map +0 -1
  127. package/dist/logging/logging.d.ts +0 -34
  128. package/dist/logging/logging.js +0 -55
  129. package/dist/logging/logging.js.map +0 -1
  130. package/dist/mail/gmail/gmail.configurer.d.ts +0 -15
  131. package/dist/mail/gmail/gmail.configurer.js +0 -59
  132. package/dist/mail/gmail/gmail.configurer.js.map +0 -1
  133. package/dist/mail/gmail/gmail.controller.d.ts +0 -9
  134. package/dist/mail/gmail/gmail.controller.js +0 -62
  135. package/dist/mail/gmail/gmail.controller.js.map +0 -1
  136. package/dist/mail/gmail/gmail.sender.d.ts +0 -12
  137. package/dist/mail/gmail/gmail.sender.js +0 -62
  138. package/dist/mail/gmail/gmail.sender.js.map +0 -1
  139. package/dist/mail/gmail/stored.credentials.repository.d.ts +0 -12
  140. package/dist/mail/gmail/stored.credentials.repository.js +0 -23
  141. package/dist/mail/gmail/stored.credentials.repository.js.map +0 -1
  142. package/dist/mail/mail-logging.sender.d.ts +0 -9
  143. package/dist/mail/mail-logging.sender.js +0 -42
  144. package/dist/mail/mail-logging.sender.js.map +0 -1
  145. package/dist/mail/mail-subject.sender.d.ts +0 -12
  146. package/dist/mail/mail-subject.sender.js +0 -33
  147. package/dist/mail/mail-subject.sender.js.map +0 -1
  148. package/dist/mail/mail-whitelist.sender.d.ts +0 -14
  149. package/dist/mail/mail-whitelist.sender.js +0 -59
  150. package/dist/mail/mail-whitelist.sender.js.map +0 -1
  151. package/dist/mail/mail.diverter.d.ts +0 -13
  152. package/dist/mail/mail.diverter.js +0 -65
  153. package/dist/mail/mail.diverter.js.map +0 -1
  154. package/dist/mail/mail.sender.d.ts +0 -6
  155. package/dist/mail/mail.sender.js +0 -5
  156. package/dist/mail/mail.sender.js.map +0 -1
  157. package/dist/mail/smtp/smtp.sender.d.ts +0 -10
  158. package/dist/mail/smtp/smtp.sender.js +0 -65
  159. package/dist/mail/smtp/smtp.sender.js.map +0 -1
  160. package/dist/mail-templates/base.d.ts +0 -2
  161. package/dist/mail-templates/base.js +0 -328
  162. package/dist/mail-templates/base.js.map +0 -1
  163. package/dist/mail-templates/invite.d.ts +0 -1
  164. package/dist/mail-templates/invite.js +0 -19
  165. package/dist/mail-templates/invite.js.map +0 -1
  166. package/dist/module.d.ts +0 -16
  167. package/dist/module.js +0 -136
  168. package/dist/module.js.map +0 -1
  169. package/dist/request-scope/index.d.ts +0 -2
  170. package/dist/request-scope/index.js +0 -9
  171. package/dist/request-scope/index.js.map +0 -1
  172. package/dist/request-scope/request-scope-interceptor.d.ts +0 -5
  173. package/dist/request-scope/request-scope-interceptor.js +0 -3
  174. package/dist/request-scope/request-scope-interceptor.js.map +0 -1
  175. package/dist/request-scope/request-scope.d.ts +0 -12
  176. package/dist/request-scope/request-scope.js +0 -79
  177. package/dist/request-scope/request-scope.js.map +0 -1
  178. package/dist/request-scope/request-scope.middleware.d.ts +0 -15
  179. package/dist/request-scope/request-scope.middleware.js +0 -53
  180. package/dist/request-scope/request-scope.middleware.js.map +0 -1
  181. package/dist/search/search.service.d.ts +0 -52
  182. package/dist/search/search.service.js +0 -90
  183. package/dist/search/search.service.js.map +0 -1
  184. package/dist/search/searchable.repository.d.ts +0 -36
  185. package/dist/search/searchable.repository.js +0 -95
  186. package/dist/search/searchable.repository.js.map +0 -1
  187. package/dist/types.d.ts +0 -3
  188. package/dist/types.js +0 -9
  189. package/dist/types.js.map +0 -1
  190. package/dist/util/arrays.d.ts +0 -1
  191. package/dist/util/arrays.js +0 -10
  192. package/dist/util/arrays.js.map +0 -1
  193. package/dist/util/guards.d.ts +0 -1
  194. package/dist/util/guards.js +0 -7
  195. package/dist/util/guards.js.map +0 -1
  196. package/dist/util/index.d.ts +0 -1
  197. package/dist/util/index.js +0 -5
  198. package/dist/util/index.js.map +0 -1
  199. package/dist/util/nestjs.d.ts +0 -9
  200. package/dist/util/nestjs.js +0 -9
  201. package/dist/util/nestjs.js.map +0 -1
  202. package/dist/util/types.d.ts +0 -4
  203. package/dist/util/types.js +0 -8
  204. package/dist/util/types.js.map +0 -1
  205. package/dist/validator.d.ts +0 -1
  206. package/dist/validator.js +0 -5
  207. package/dist/validator.js.map +0 -1
@@ -1,62 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.GmailSender = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const gmail_configurer_1 = require("./gmail.configurer");
7
- const nodemailer_1 = require("nodemailer");
8
- const configuration_1 = require("../../configuration");
9
- const logging_1 = require("../../logging");
10
- let GmailSender = class GmailSender {
11
- constructor(gmailConfigurer, configurationProvider) {
12
- this.gmailConfigurer = gmailConfigurer;
13
- this.configurationProvider = configurationProvider;
14
- this.logger = (0, logging_1.createLogger)('gmail-sender');
15
- this.logger.info('Created GmailSender');
16
- }
17
- async send(context, mailOptions) {
18
- const credential = await this.gmailConfigurer.getCredential(context);
19
- if (!credential) {
20
- this.logger.error('Gmail OAuth is not configured yet. No StoredCredential entity with id "gmail-credential"');
21
- }
22
- else if (!this.configurationProvider.auth.google) {
23
- this.logger.error('Gmail OAuth is not configured yet. No environment configuration exists for "auth.google"');
24
- }
25
- else {
26
- const auth = {
27
- type: 'oauth2',
28
- user: this.configurationProvider.gmailUser,
29
- clientId: this.configurationProvider.auth.google.clientId,
30
- clientSecret: this.configurationProvider.auth.google.secret,
31
- refreshToken: credential.value,
32
- };
33
- const transport = {
34
- service: 'gmail',
35
- auth,
36
- };
37
- const transporter = (0, nodemailer_1.createTransport)(transport);
38
- this.logger.info({
39
- logDetails: {
40
- to: mailOptions.to,
41
- cc: mailOptions.cc,
42
- bcc: mailOptions.bcc,
43
- },
44
- }, 'Sending email (see logDetails property for to, cc, bcc) with subject: %s', mailOptions.subject);
45
- await new Promise((resolve, reject) => transporter.sendMail(Object.assign({ from: auth.user }, mailOptions), (err, res) => {
46
- if (err) {
47
- reject(err);
48
- }
49
- else {
50
- resolve(res);
51
- }
52
- }));
53
- }
54
- }
55
- };
56
- exports.GmailSender = GmailSender;
57
- exports.GmailSender = GmailSender = tslib_1.__decorate([
58
- (0, common_1.Injectable)(),
59
- tslib_1.__param(1, (0, common_1.Inject)(configuration_1.CONFIGURATION)),
60
- tslib_1.__metadata("design:paramtypes", [gmail_configurer_1.GmailConfigurer, Object])
61
- ], GmailSender);
62
- //# sourceMappingURL=gmail.sender.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"gmail.sender.js","sourceRoot":"","sources":["../../../src/mail/gmail/gmail.sender.ts"],"names":[],"mappings":";;;;AAAA,2CAAoD;AAEpD,yDAAqD;AACrD,2CAA8D;AAE9D,uDAAmE;AAEnE,2CAAqD;AAG9C,IAAM,WAAW,GAAjB,MAAM,WAAW;IAGtB,YACmB,eAAgC,EAC1B,qBAAqD;QAD3D,oBAAe,GAAf,eAAe,CAAiB;QACT,0BAAqB,GAArB,qBAAqB,CAAe;QAJtE,WAAM,GAAW,IAAA,sBAAY,EAAC,cAAc,CAAC,CAAC;QAMpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC;IAC1C,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB,EAAE,WAAoB;QAC/C,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;QAErE,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;QAChH,CAAC;aAAM,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACnD,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,0FAA0F,CAAC,CAAC;QAChH,CAAC;aAAM,CAAC;YACN,MAAM,IAAI,GAAG;gBACX,IAAI,EAAE,QAAQ;gBACd,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,SAAS;gBAC1C,QAAQ,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ;gBACzD,YAAY,EAAE,IAAI,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM;gBAC3D,YAAY,EAAE,UAAU,CAAC,KAAK;aAC/B,CAAC;YAEF,MAAM,SAAS,GAAQ;gBACrB,OAAO,EAAE,OAAO;gBAChB,IAAI;aACL,CAAC;YACF,MAAM,WAAW,GAAG,IAAA,4BAAe,EAAC,SAAS,CAAC,CAAC;YAE/C,IAAI,CAAC,MAAM,CAAC,IAAI,CACd;gBACE,UAAU,EAAE;oBACV,EAAE,EAAE,WAAW,CAAC,EAAE;oBAClB,EAAE,EAAE,WAAW,CAAC,EAAE;oBAClB,GAAG,EAAE,WAAW,CAAC,GAAG;iBACrB;aACF,EACD,0EAA0E,EAC1E,WAAW,CAAC,OAAO,CACpB,CAAC;YAEF,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,CACpC,WAAW,CAAC,QAAQ,iBAEhB,IAAI,EAAE,IAAI,CAAC,IAAI,IACZ,WAAW,GAEhB,CAAC,GAAiB,EAAE,GAAoB,EAAE,EAAE;gBAC1C,IAAI,GAAG,EAAE,CAAC;oBACR,MAAM,CAAC,GAAG,CAAC,CAAC;gBACd,CAAC;qBAAM,CAAC;oBACN,OAAO,CAAC,GAAG,CAAC,CAAC;gBACf,CAAC;YACH,CAAC,CACF,CACF,CAAC;QACJ,CAAC;IACH,CAAC;CACF,CAAA;AA7DY,kCAAW;sBAAX,WAAW;IADvB,IAAA,mBAAU,GAAE;IAMR,mBAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;6CADY,kCAAe;GAJxC,WAAW,CA6DvB"}
@@ -1,12 +0,0 @@
1
- import * as t from 'io-ts';
2
- import { Repository } from '../../datastore/repository';
3
- import { DatastoreProvider } from '../../datastore/datastore.provider';
4
- declare const storedCredential: t.TypeC<{
5
- id: t.StringC;
6
- value: t.StringC;
7
- }>;
8
- export type StoredCredential = t.TypeOf<typeof storedCredential>;
9
- export declare class StoredCredentialsRepository extends Repository<StoredCredential> {
10
- constructor(datastore: DatastoreProvider);
11
- }
12
- export {};
@@ -1,23 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.StoredCredentialsRepository = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const t = require("io-ts");
7
- const repository_1 = require("../../datastore/repository");
8
- const datastore_provider_1 = require("../../datastore/datastore.provider");
9
- const storedCredential = t.interface({
10
- id: t.string,
11
- value: t.string,
12
- });
13
- let StoredCredentialsRepository = class StoredCredentialsRepository extends repository_1.Repository {
14
- constructor(datastore) {
15
- super(datastore.datastore, 'StoredCredential', storedCredential, {});
16
- }
17
- };
18
- exports.StoredCredentialsRepository = StoredCredentialsRepository;
19
- exports.StoredCredentialsRepository = StoredCredentialsRepository = tslib_1.__decorate([
20
- (0, common_1.Injectable)(),
21
- tslib_1.__metadata("design:paramtypes", [datastore_provider_1.DatastoreProvider])
22
- ], StoredCredentialsRepository);
23
- //# sourceMappingURL=stored.credentials.repository.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"stored.credentials.repository.js","sourceRoot":"","sources":["../../../src/mail/gmail/stored.credentials.repository.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAC5C,2BAA2B;AAC3B,2DAAwD;AACxD,2EAAuE;AAEvE,MAAM,gBAAgB,GAAG,CAAC,CAAC,SAAS,CAAC;IACnC,EAAE,EAAE,CAAC,CAAC,MAAM;IACZ,KAAK,EAAE,CAAC,CAAC,MAAM;CAChB,CAAC,CAAC;AAKI,IAAM,2BAA2B,GAAjC,MAAM,2BAA4B,SAAQ,uBAA4B;IAC3E,YAAY,SAA4B;QACtC,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,EAAE,CAAC,CAAC;IACvE,CAAC;CACF,CAAA;AAJY,kEAA2B;sCAA3B,2BAA2B;IADvC,IAAA,mBAAU,GAAE;6CAEY,sCAAiB;GAD7B,2BAA2B,CAIvC"}
@@ -1,9 +0,0 @@
1
- import { Options } from 'nodemailer/lib/mailer';
2
- import { Context } from '../datastore/context';
3
- import { MailSender } from './mail.sender';
4
- export declare class MailLoggingSender implements MailSender {
5
- private readonly logger;
6
- constructor();
7
- send(context: Context, mailOptions: Options): Promise<void>;
8
- private stringify;
9
- }
@@ -1,42 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MailLoggingSender = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const logging_1 = require("../logging");
7
- const htmlToText = require("html-to-text");
8
- let MailLoggingSender = class MailLoggingSender {
9
- constructor() {
10
- this.logger = (0, logging_1.createLogger)('mail-logging-sender');
11
- this.logger.info('MailSender instance is MailLoggingSender');
12
- }
13
- async send(context, mailOptions) {
14
- if (!mailOptions.to && !mailOptions.cc && !mailOptions.bcc) {
15
- throw new Error('No recipients defined');
16
- }
17
- const content = mailOptions.text ||
18
- (typeof mailOptions.html === 'string' && htmlToText.fromString(mailOptions.html)) ||
19
- '-body not loggable-';
20
- this.logger.info('Logging email send\n\n' +
21
- 'to: %s\n' +
22
- 'cc: %s\n' +
23
- 'bcc: %s\n' +
24
- 'attachments: %s\n' +
25
- 'subject: %s\n' +
26
- '\n' +
27
- '%s\n' +
28
- '\n\n', this.stringify(mailOptions.to), this.stringify(mailOptions.cc), this.stringify(mailOptions.bcc), (mailOptions.attachments && mailOptions.attachments.length) || 0, this.stringify(mailOptions.subject), content);
29
- }
30
- stringify(source) {
31
- if (!source) {
32
- return '';
33
- }
34
- return typeof source === 'string' ? source : JSON.stringify(source);
35
- }
36
- };
37
- exports.MailLoggingSender = MailLoggingSender;
38
- exports.MailLoggingSender = MailLoggingSender = tslib_1.__decorate([
39
- (0, common_1.Injectable)(),
40
- tslib_1.__metadata("design:paramtypes", [])
41
- ], MailLoggingSender);
42
- //# sourceMappingURL=mail-logging.sender.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mail-logging.sender.js","sourceRoot":"","sources":["../../src/mail/mail-logging.sender.ts"],"names":[],"mappings":";;;;AAAA,2CAA4C;AAG5C,wCAAkD;AAElD,2CAA2C;AAGpC,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAG5B;QAFiB,WAAM,GAAW,IAAA,sBAAY,EAAC,qBAAqB,CAAC,CAAC;QAGpE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,0CAA0C,CAAC,CAAC;IAC/D,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB,EAAE,WAAoB;QAC/C,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YAC3D,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,OAAO,GACX,WAAW,CAAC,IAAI;YAChB,CAAC,OAAO,WAAW,CAAC,IAAI,KAAK,QAAQ,IAAI,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACjF,qBAAqB,CAAC;QAExB,IAAI,CAAC,MAAM,CAAC,IAAI,CACd,wBAAwB;YACtB,mBAAmB;YACnB,mBAAmB;YACnB,mBAAmB;YACnB,mBAAmB;YACnB,mBAAmB;YACnB,IAAI;YACJ,MAAM;YACN,MAAM,EACR,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,EAC9B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,EAAE,CAAC,EAC9B,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,GAAG,CAAC,EAC/B,CAAC,WAAW,CAAC,WAAW,IAAI,WAAW,CAAC,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,EAChE,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC,OAAO,CAAC,EACnC,OAAO,CACR,CAAC;IACJ,CAAC;IAEO,SAAS,CAAC,MAAY;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QACD,OAAO,OAAO,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IACtE,CAAC;CACF,CAAA;AA1CY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;;GACA,iBAAiB,CA0C7B"}
@@ -1,12 +0,0 @@
1
- import { Options } from 'nodemailer/lib/mailer';
2
- import { Configuration } from '../configuration';
3
- import { Context } from '../datastore/context';
4
- import { MailSender } from './mail.sender';
5
- export declare class MailSubjectSender implements MailSender {
6
- private readonly mailSender;
7
- private readonly configurationProvider;
8
- private readonly logger;
9
- private readonly subjectPrefix;
10
- constructor(mailSender: MailSender, configurationProvider: Configuration);
11
- send(context: Context, mailOptions: Options): Promise<void>;
12
- }
@@ -1,33 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MailSubjectSender = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const lodash_1 = require("lodash");
7
- const configuration_1 = require("../configuration");
8
- const logging_1 = require("../logging");
9
- let MailSubjectSender = class MailSubjectSender {
10
- constructor(mailSender, configurationProvider) {
11
- this.mailSender = mailSender;
12
- this.configurationProvider = configurationProvider;
13
- this.logger = (0, logging_1.createLogger)('mail-subject-sender');
14
- const { devHooks } = this.configurationProvider;
15
- if (!devHooks || (0, lodash_1.isEmpty)(devHooks.emailSubjectPrefix)) {
16
- throw new Error('No subject prefix defined');
17
- }
18
- this.subjectPrefix = `${devHooks.emailSubjectPrefix}: `;
19
- this.logger.info(`Configuring mail with subject prefix '${this.subjectPrefix}'`);
20
- }
21
- async send(context, mailOptions) {
22
- const subject = `${this.subjectPrefix}${mailOptions.subject}`;
23
- this.logger.info(`Sending email with prefixed subject: '${subject}'`);
24
- return this.mailSender.send(context, Object.assign(Object.assign({}, mailOptions), { subject }));
25
- }
26
- };
27
- exports.MailSubjectSender = MailSubjectSender;
28
- exports.MailSubjectSender = MailSubjectSender = tslib_1.__decorate([
29
- (0, common_1.Injectable)(),
30
- tslib_1.__param(1, (0, common_1.Inject)(configuration_1.CONFIGURATION)),
31
- tslib_1.__metadata("design:paramtypes", [Object, Object])
32
- ], MailSubjectSender);
33
- //# sourceMappingURL=mail-subject.sender.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mail-subject.sender.js","sourceRoot":"","sources":["../../src/mail/mail-subject.sender.ts"],"names":[],"mappings":";;;;AAAA,2CAAoD;AACpD,mCAAiC;AAEjC,oDAAgE;AAEhE,wCAAkD;AAI3C,IAAM,iBAAiB,GAAvB,MAAM,iBAAiB;IAI5B,YACmB,UAAsB,EAChB,qBAAqD;QAD3D,eAAU,GAAV,UAAU,CAAY;QACC,0BAAqB,GAArB,qBAAqB,CAAe;QAL7D,WAAM,GAAW,IAAA,sBAAY,EAAC,qBAAqB,CAAC,CAAC;QAOpE,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAChD,IAAI,CAAC,QAAQ,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;QAC/C,CAAC;QACD,IAAI,CAAC,aAAa,GAAG,GAAG,QAAQ,CAAC,kBAAkB,IAAI,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;IACnF,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB,EAAE,WAAoB;QAC/C,MAAM,OAAO,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,WAAW,CAAC,OAAO,EAAE,CAAC;QAC9D,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,yCAAyC,OAAO,GAAG,CAAC,CAAC;QACtE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,kCAAO,WAAW,KAAE,OAAO,IAAG,CAAC;IACpE,CAAC;CACF,CAAA;AArBY,8CAAiB;4BAAjB,iBAAiB;IAD7B,IAAA,mBAAU,GAAE;IAOR,mBAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;;GANb,iBAAiB,CAqB7B"}
@@ -1,14 +0,0 @@
1
- import { Options } from 'nodemailer/lib/mailer';
2
- import { Configuration } from '../configuration';
3
- import { Context } from '../datastore/context';
4
- import { MailSender } from './mail.sender';
5
- export declare class MailWhitelistSender implements MailSender {
6
- private readonly mailSender;
7
- private readonly configurationProvider;
8
- private readonly logger;
9
- private readonly emailWhitelist;
10
- constructor(mailSender: MailSender, configurationProvider: Configuration);
11
- send(context: Context, mailOptions: Options): Promise<void>;
12
- private filterAddresses;
13
- private filterAddress;
14
- }
@@ -1,59 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MailWhitelistSender = void 0;
4
- const lodash_1 = require("lodash");
5
- const logging_1 = require("../logging");
6
- const guards_1 = require("../util/guards");
7
- const mail_logging_sender_1 = require("./mail-logging.sender");
8
- class MailWhitelistSender {
9
- constructor(mailSender, configurationProvider) {
10
- this.mailSender = mailSender;
11
- this.configurationProvider = configurationProvider;
12
- this.logger = (0, logging_1.createLogger)('mail-whitelist-sender');
13
- this.filterAddresses = (actualAddresses) => {
14
- if ((0, guards_1.isEmpty)(actualAddresses)) {
15
- return [];
16
- }
17
- if (typeof actualAddresses === 'string') {
18
- const addresses = actualAddresses.split(',');
19
- return addresses
20
- .map(address => address.trim())
21
- .filter(address => this.filterAddress(address))
22
- .join(',');
23
- }
24
- return (0, lodash_1.castArray)(actualAddresses).filter(address => this.filterAddress(address));
25
- };
26
- this.filterAddress = (address) => {
27
- const email = typeof address === 'string' ? address.trim() : address.address.trim();
28
- if (this.emailWhitelist.includes(email)) {
29
- return true;
30
- }
31
- this.logger.info(`Filtering non-whitelist email: ${email}`);
32
- return false;
33
- };
34
- const { devHooks } = this.configurationProvider;
35
- if (!devHooks || (0, guards_1.isEmpty)(devHooks.emailWhitelist)) {
36
- throw new Error('No whitelisted email address(es) defined');
37
- }
38
- this.logger.info('MailSender instance is MailWhitelistSender');
39
- this.logger.info(`Configuring mail whitelist: ${devHooks.emailWhitelist}`);
40
- this.emailWhitelist = devHooks.emailWhitelist;
41
- }
42
- async send(context, mailOptions) {
43
- const filteredAddresses = {
44
- to: this.filterAddresses(mailOptions.to),
45
- cc: this.filterAddresses(mailOptions.cc),
46
- bcc: this.filterAddresses(mailOptions.bcc),
47
- };
48
- if ((0, guards_1.isEmpty)(filteredAddresses.to) && (0, guards_1.isEmpty)(filteredAddresses.cc) && (0, guards_1.isEmpty)(filteredAddresses.bcc)) {
49
- this.logger.warn('Cannot send email - no whitelisted recipients found');
50
- return new mail_logging_sender_1.MailLoggingSender().send(context, mailOptions);
51
- }
52
- else {
53
- this.logger.info('Sending email using whitelisted addresses: ', filteredAddresses);
54
- return this.mailSender.send(context, Object.assign(Object.assign({}, mailOptions), filteredAddresses));
55
- }
56
- }
57
- }
58
- exports.MailWhitelistSender = MailWhitelistSender;
59
- //# sourceMappingURL=mail-whitelist.sender.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mail-whitelist.sender.js","sourceRoot":"","sources":["../../src/mail/mail-whitelist.sender.ts"],"names":[],"mappings":"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"}
@@ -1,13 +0,0 @@
1
- import { Options } from 'nodemailer/lib/mailer';
2
- import { Configuration } from '../configuration';
3
- import { Context } from '../datastore/context';
4
- import { MailSender } from './mail.sender';
5
- export declare class MailDiverter implements MailSender {
6
- private readonly mailSender;
7
- private readonly configurationProvider;
8
- private readonly logger;
9
- constructor(mailSender: MailSender, configurationProvider: Configuration);
10
- send(context: Context, mailOptions: Options): Promise<void>;
11
- private divertAddresses;
12
- private getDivertedFromAddressesAsString;
13
- }
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MailDiverter = void 0;
4
- const tslib_1 = require("tslib");
5
- const common_1 = require("@nestjs/common");
6
- const lodash_1 = require("lodash");
7
- const configuration_1 = require("../configuration");
8
- const logging_1 = require("../logging");
9
- let MailDiverter = class MailDiverter {
10
- constructor(mailSender, configurationProvider) {
11
- this.mailSender = mailSender;
12
- this.configurationProvider = configurationProvider;
13
- this.logger = (0, logging_1.createLogger)('mail-diverter');
14
- this.divertAddresses = (actualAddresses) => {
15
- if (!(0, lodash_1.isEmpty)(actualAddresses)) {
16
- const divertedFromAddresses = this.getDivertedFromAddressesAsString(actualAddresses);
17
- return this.configurationProvider.devHooks.divertEmailTo.map(divertToAddress => {
18
- return {
19
- name: divertedFromAddresses,
20
- address: divertToAddress,
21
- };
22
- });
23
- }
24
- return [];
25
- };
26
- this.getDivertedFromAddressesAsString = (actualAddress) => {
27
- let addressList = [actualAddress];
28
- if (actualAddress instanceof Array) {
29
- addressList = actualAddress;
30
- }
31
- const justAddresses = addressList
32
- .map(address => {
33
- if (typeof address === 'string') {
34
- return address.trim();
35
- }
36
- return address.address.trim();
37
- })
38
- .join(', ');
39
- const deAttedAddresses = (0, lodash_1.replace)(justAddresses, /@/g, '.at.');
40
- return `Diverted from ${deAttedAddresses}`;
41
- };
42
- const { devHooks } = this.configurationProvider;
43
- if (!devHooks || (0, lodash_1.isEmpty)(devHooks.divertEmailTo)) {
44
- throw new Error('No divert-to email address(es) defined');
45
- }
46
- this.logger.info('MailSender instance is MailDiverter');
47
- this.logger.info(`Configuring mail diversion to: ${devHooks.divertEmailTo}`);
48
- }
49
- async send(context, mailOptions) {
50
- const diversionOverrides = {
51
- to: this.divertAddresses(mailOptions.to),
52
- cc: this.divertAddresses(mailOptions.cc),
53
- bcc: this.divertAddresses(mailOptions.bcc),
54
- };
55
- this.logger.info('Diverting mail with overrides: ', diversionOverrides);
56
- return this.mailSender.send(context, Object.assign(Object.assign({}, mailOptions), diversionOverrides));
57
- }
58
- };
59
- exports.MailDiverter = MailDiverter;
60
- exports.MailDiverter = MailDiverter = tslib_1.__decorate([
61
- (0, common_1.Injectable)(),
62
- tslib_1.__param(1, (0, common_1.Inject)(configuration_1.CONFIGURATION)),
63
- tslib_1.__metadata("design:paramtypes", [Object, Object])
64
- ], MailDiverter);
65
- //# sourceMappingURL=mail.diverter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mail.diverter.js","sourceRoot":"","sources":["../../src/mail/mail.diverter.ts"],"names":[],"mappings":";;;;AAAA,2CAAoD;AACpD,mCAA0C;AAE1C,oDAAgE;AAEhE,wCAAkD;AAI3C,IAAM,YAAY,GAAlB,MAAM,YAAY;IAGvB,YACmB,UAAsB,EAChB,qBAAqD;QAD3D,eAAU,GAAV,UAAU,CAAY;QACC,0BAAqB,GAArB,qBAAqB,CAAe;QAJ7D,WAAM,GAAW,IAAA,sBAAY,EAAC,eAAe,CAAC,CAAC;QAwBxD,oBAAe,GAAG,CAAC,eAAuE,EAAE,EAAE;YACpG,IAAI,CAAC,IAAA,gBAAO,EAAC,eAAe,CAAC,EAAE,CAAC;gBAE9B,MAAM,qBAAqB,GAAG,IAAI,CAAC,gCAAgC,CAAC,eAAe,CAAC,CAAC;gBAErF,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,eAAe,CAAC,EAAE;oBAC7E,OAAO;wBACL,IAAI,EAAE,qBAAqB;wBAC3B,OAAO,EAAE,eAAe;qBACzB,CAAC;gBACJ,CAAC,CAAC,CAAC;YACL,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEM,qCAAgC,GAAG,CAAC,aAAyD,EAAE,EAAE;YAEvG,IAAI,WAAW,GAAG,CAAC,aAAa,CAAC,CAAC;YAClC,IAAI,aAAa,YAAY,KAAK,EAAE,CAAC;gBACnC,WAAW,GAAG,aAAa,CAAC;YAC9B,CAAC;YAED,MAAM,aAAa,GAAG,WAAW;iBAC9B,GAAG,CAAC,OAAO,CAAC,EAAE;gBACb,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;oBAChC,OAAO,OAAO,CAAC,IAAI,EAAE,CAAC;gBACxB,CAAC;gBAED,OAAQ,OAAmB,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;YAC7C,CAAC,CAAC;iBACD,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,gBAAgB,GAAG,IAAA,gBAAO,EAAC,aAAa,EAAE,IAAI,EAAE,MAAM,CAAC,CAAC;YAC9D,OAAO,iBAAiB,gBAAgB,EAAE,CAAC;QAC7C,CAAC,CAAC;QApDA,MAAM,EAAE,QAAQ,EAAE,GAAG,IAAI,CAAC,qBAAqB,CAAC;QAChD,IAAI,CAAC,QAAQ,IAAI,IAAA,gBAAO,EAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YACjD,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,qCAAqC,CAAC,CAAC;QACxD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,kCAAkC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;IAC/E,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,OAAgB,EAAE,WAAoB;QAC/C,MAAM,kBAAkB,GAAG;YACzB,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,EAAE,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,EAAE,CAAC;YACxC,GAAG,EAAE,IAAI,CAAC,eAAe,CAAC,WAAW,CAAC,GAAG,CAAC;SAC3C,CAAC;QACF,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,iCAAiC,EAAE,kBAAkB,CAAC,CAAC;QACxE,OAAO,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,kCAAO,WAAW,GAAK,kBAAkB,EAAG,CAAC;IAClF,CAAC;CAqCF,CAAA;AA5DY,oCAAY;uBAAZ,YAAY;IADxB,IAAA,mBAAU,GAAE;IAMR,mBAAA,IAAA,eAAM,EAAC,6BAAa,CAAC,CAAA;;GALb,YAAY,CA4DxB"}
@@ -1,6 +0,0 @@
1
- import { Options } from 'nodemailer/lib/mailer';
2
- import { Context } from '../datastore/context';
3
- export interface MailSender {
4
- send(context: Context, mailOptions: Options): Promise<void>;
5
- }
6
- export declare const MAIL_SENDER = "MailSender";
@@ -1,5 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.MAIL_SENDER = void 0;
4
- exports.MAIL_SENDER = 'MailSender';
5
- //# sourceMappingURL=mail.sender.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"mail.sender.js","sourceRoot":"","sources":["../../src/mail/mail.sender.ts"],"names":[],"mappings":";;;AAOa,QAAA,WAAW,GAAG,YAAY,CAAC"}
@@ -1,10 +0,0 @@
1
- import { Options } from 'nodemailer/lib/mailer';
2
- import { Context } from '../..';
3
- import { Configuration } from '../../configuration';
4
- import { MailSender } from '../mail.sender';
5
- export declare class SmtpSender implements MailSender {
6
- private readonly configurationProvider;
7
- private readonly logger;
8
- constructor(configurationProvider: Configuration);
9
- send(context: Context, mailOptions: Options): Promise<void>;
10
- }
@@ -1,65 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SmtpSender = void 0;
4
- const tslib_1 = require("tslib");
5
- const _ = require("lodash");
6
- const common_1 = require("@nestjs/common");
7
- const nodemailer_1 = require("nodemailer");
8
- const configuration_1 = require("../../configuration");
9
- const logging_1 = require("../../logging");
10
- const ENDS_WITH_EMAIL = /(([^<>()\[\]\.,;:\s@\"]+(\.[^<>()\[\]\.,;:\s@\"]+)*)|(\".+\"))@(([^<>()[\]\.,;:\s@\"]+\.)+[^<>()[\]\.,;:\s@\"]{2,})$/;
11
- let SmtpSender = class SmtpSender {
12
- constructor(configurationProvider) {
13
- this.configurationProvider = configurationProvider;
14
- this.logger = (0, logging_1.createLogger)('smtp-sender');
15
- this.logger.info('Created SmtpSender');
16
- }
17
- async send(context, mailOptions) {
18
- if (!this.configurationProvider.auth.smtp || !this.configurationProvider.auth.smtp.enabled) {
19
- this.logger.error('Smtp credentials are not configured yet. No environment configuration exists for "auth.smtp"');
20
- }
21
- else {
22
- const mailConfig = {
23
- auth: {
24
- user: this.configurationProvider.auth.smtp.user,
25
- pass: this.configurationProvider.auth.smtp.password,
26
- },
27
- host: this.configurationProvider.auth.smtp.host,
28
- port: this.configurationProvider.auth.smtp.port,
29
- secure: this.configurationProvider.auth.smtp.secure,
30
- from: this.configurationProvider.auth.smtp.from,
31
- };
32
- const transport = Object.assign({ pool: true }, mailConfig);
33
- const transporter = (0, nodemailer_1.createTransport)(transport);
34
- this.logger.info({
35
- logDetails: {
36
- to: mailOptions.to,
37
- cc: mailOptions.cc,
38
- bcc: mailOptions.bcc,
39
- },
40
- }, 'Sending email via smtp (see logDetails property for to, cc, bcc) with subject: %s', mailOptions.subject);
41
- let from = mailOptions.from;
42
- if (!from) {
43
- from = mailConfig.from;
44
- }
45
- else if (_.isString(from) && !from.match(ENDS_WITH_EMAIL)) {
46
- from = { name: from, address: mailConfig.from.address };
47
- }
48
- await new Promise((resolve, reject) => transporter.sendMail(Object.assign(Object.assign({}, mailOptions), { from }), (err, res) => {
49
- if (err) {
50
- reject(err);
51
- }
52
- else {
53
- resolve(res);
54
- }
55
- }));
56
- }
57
- }
58
- };
59
- exports.SmtpSender = SmtpSender;
60
- exports.SmtpSender = SmtpSender = tslib_1.__decorate([
61
- (0, common_1.Injectable)(),
62
- tslib_1.__param(0, (0, common_1.Inject)(configuration_1.CONFIGURATION)),
63
- tslib_1.__metadata("design:paramtypes", [Object])
64
- ], SmtpSender);
65
- //# sourceMappingURL=smtp.sender.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"smtp.sender.js","sourceRoot":"","sources":["../../../src/mail/smtp/smtp.sender.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export declare const standardEmail: (title: string, content: string) => string;
2
- export declare const mainButton: (text: string, link: string) => string;