@spinajs/email 2.0.86 → 2.0.87

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 (83) hide show
  1. package/lib/{cli → cjs/cli}/SendEmail.d.ts +0 -0
  2. package/lib/cjs/cli/SendEmail.d.ts.map +1 -0
  3. package/lib/cjs/cli/SendEmail.js +83 -0
  4. package/lib/cjs/cli/SendEmail.js.map +1 -0
  5. package/lib/{config → cjs/config}/email.d.ts +0 -0
  6. package/lib/cjs/config/email.d.ts.map +1 -0
  7. package/lib/cjs/config/email.js +35 -0
  8. package/lib/cjs/config/email.js.map +1 -0
  9. package/lib/{events → cjs/events}/EmailSent.d.ts +0 -0
  10. package/lib/cjs/events/EmailSent.d.ts.map +1 -0
  11. package/lib/cjs/events/EmailSent.js +33 -0
  12. package/lib/cjs/events/EmailSent.js.map +1 -0
  13. package/lib/{index.d.ts → cjs/index.d.ts} +0 -0
  14. package/lib/cjs/index.d.ts.map +1 -0
  15. package/lib/cjs/index.js +77 -0
  16. package/lib/cjs/index.js.map +1 -0
  17. package/lib/{interfaces.d.ts → cjs/interfaces.d.ts} +0 -0
  18. package/lib/cjs/interfaces.d.ts.map +1 -0
  19. package/lib/cjs/interfaces.js +45 -0
  20. package/lib/cjs/interfaces.js.map +1 -0
  21. package/lib/{jobs → cjs/jobs}/EmailSend.d.ts +0 -0
  22. package/lib/cjs/jobs/EmailSend.d.ts.map +1 -0
  23. package/lib/cjs/jobs/EmailSend.js +37 -0
  24. package/lib/cjs/jobs/EmailSend.js.map +1 -0
  25. package/lib/{schemas → cjs/schemas}/email.smtp.configuration.d.ts +0 -0
  26. package/lib/cjs/schemas/email.smtp.configuration.d.ts.map +1 -0
  27. package/lib/cjs/schemas/email.smtp.configuration.js +39 -0
  28. package/lib/cjs/schemas/email.smtp.configuration.js.map +1 -0
  29. package/lib/{transports.d.ts → cjs/transports.d.ts} +0 -0
  30. package/lib/cjs/transports.d.ts.map +1 -0
  31. package/lib/cjs/transports.js +25 -0
  32. package/lib/cjs/transports.js.map +1 -0
  33. package/lib/mjs/cli/SendEmail.d.ts +17 -0
  34. package/lib/mjs/cli/SendEmail.d.ts.map +1 -0
  35. package/lib/{cli → mjs/cli}/SendEmail.js +0 -0
  36. package/lib/mjs/cli/SendEmail.js.map +1 -0
  37. package/lib/mjs/config/email.d.ts +29 -0
  38. package/lib/mjs/config/email.d.ts.map +1 -0
  39. package/lib/{config → mjs/config}/email.js +0 -0
  40. package/lib/mjs/config/email.js.map +1 -0
  41. package/lib/mjs/events/EmailSent.d.ts +24 -0
  42. package/lib/mjs/events/EmailSent.d.ts.map +1 -0
  43. package/lib/{events → mjs/events}/EmailSent.js +0 -0
  44. package/lib/mjs/events/EmailSent.js.map +1 -0
  45. package/lib/mjs/index.d.ts +24 -0
  46. package/lib/mjs/index.d.ts.map +1 -0
  47. package/lib/{index.js → mjs/index.js} +0 -0
  48. package/lib/mjs/index.js.map +1 -0
  49. package/lib/mjs/interfaces.d.ts +115 -0
  50. package/lib/mjs/interfaces.d.ts.map +1 -0
  51. package/lib/{interfaces.js → mjs/interfaces.js} +0 -0
  52. package/lib/mjs/interfaces.js.map +1 -0
  53. package/lib/mjs/jobs/EmailSend.d.ts +31 -0
  54. package/lib/mjs/jobs/EmailSend.d.ts.map +1 -0
  55. package/lib/{jobs → mjs/jobs}/EmailSend.js +0 -0
  56. package/lib/mjs/jobs/EmailSend.js.map +1 -0
  57. package/lib/mjs/schemas/email.smtp.configuration.d.ts +53 -0
  58. package/lib/mjs/schemas/email.smtp.configuration.d.ts.map +1 -0
  59. package/lib/{schemas → mjs/schemas}/email.smtp.configuration.js +0 -0
  60. package/lib/mjs/schemas/email.smtp.configuration.js.map +1 -0
  61. package/lib/mjs/transports.d.ts +10 -0
  62. package/lib/mjs/transports.d.ts.map +1 -0
  63. package/lib/{transports.js → mjs/transports.js} +0 -0
  64. package/lib/mjs/transports.js.map +1 -0
  65. package/lib/tsconfig.cjs.tsbuildinfo +1 -0
  66. package/lib/tsconfig.tsbuildinfo +1 -0
  67. package/package.json +19 -10
  68. package/lib/cli/SendEmail.d.ts.map +0 -1
  69. package/lib/cli/SendEmail.js.map +0 -1
  70. package/lib/config/email.d.ts.map +0 -1
  71. package/lib/config/email.js.map +0 -1
  72. package/lib/events/EmailSent.d.ts.map +0 -1
  73. package/lib/events/EmailSent.js.map +0 -1
  74. package/lib/index.d.ts.map +0 -1
  75. package/lib/index.js.map +0 -1
  76. package/lib/interfaces.d.ts.map +0 -1
  77. package/lib/interfaces.js.map +0 -1
  78. package/lib/jobs/EmailSend.d.ts.map +0 -1
  79. package/lib/jobs/EmailSend.js.map +0 -1
  80. package/lib/schemas/email.smtp.configuration.d.ts.map +0 -1
  81. package/lib/schemas/email.smtp.configuration.js.map +0 -1
  82. package/lib/transports.d.ts.map +0 -1
  83. package/lib/transports.js.map +0 -1
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendEmail.d.ts","sourceRoot":"","sources":["../../../src/cli/SendEmail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAC;AAG3D,OAAO,EAAU,IAAI,EAAE,MAAM,cAAc,CAAC;AAG5C,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAQa,gBAAiB,SAAQ,UAAU;IAE9C,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;IAEP,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CA6B3D"}
@@ -0,0 +1,83 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
19
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
20
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
21
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
22
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
23
+ };
24
+ var __importStar = (this && this.__importStar) || function (mod) {
25
+ if (mod && mod.__esModule) return mod;
26
+ var result = {};
27
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
28
+ __setModuleDefault(result, mod);
29
+ return result;
30
+ };
31
+ var __metadata = (this && this.__metadata) || function (k, v) {
32
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
33
+ };
34
+ Object.defineProperty(exports, "__esModule", { value: true });
35
+ exports.SendEmailCommand = void 0;
36
+ const cli_1 = require("@spinajs/cli");
37
+ const di_1 = require("@spinajs/di");
38
+ const fs = __importStar(require("fs"));
39
+ const log_1 = require("@spinajs/log");
40
+ const index_js_1 = require("./../index.js");
41
+ let SendEmailCommand = class SendEmailCommand extends cli_1.CliCommand {
42
+ async execute(options) {
43
+ this.Log.trace(`Sending email with options options: ${JSON.stringify(options)}`);
44
+ try {
45
+ const emails = await di_1.DI.resolve(index_js_1.DefaultEmailService);
46
+ let model = {};
47
+ if (options.model && fs.existsSync(options.model)) {
48
+ this.Log.trace(`Found model file at ${options.model}, trying to load model data ... `);
49
+ const mText = fs.readFileSync(options.model, { encoding: 'utf-8' });
50
+ model = JSON.parse(mText);
51
+ }
52
+ await emails.send({
53
+ from: options.from,
54
+ to: options.to.split(','),
55
+ connection: options.connection,
56
+ template: options.template,
57
+ model: model,
58
+ subject: options.subject,
59
+ text: options.content,
60
+ });
61
+ this.Log.success(`Email send succesyfully to: ${options.to}, from: ${options.from}, subject: ${options.subject}`);
62
+ }
63
+ catch (err) {
64
+ this.Log.error(`Cannot send email, reason: ${err.message}, stack: ${err.stack}`);
65
+ }
66
+ }
67
+ };
68
+ __decorate([
69
+ (0, log_1.Logger)('email'),
70
+ __metadata("design:type", Object)
71
+ ], SendEmailCommand.prototype, "Log", void 0);
72
+ SendEmailCommand = __decorate([
73
+ (0, cli_1.Command)('email-send', 'Sends email, mainly for testing purpose or scheduled tasks'),
74
+ (0, cli_1.Option)('-c, --connection [connection]', true, 'name of connection'),
75
+ (0, cli_1.Option)('-f, --from [from]', true, 'from email'),
76
+ (0, cli_1.Option)('-t, --to [to]', true, 'receipients, can be many ( comma separated )'),
77
+ (0, cli_1.Option)('-e, --template [template]', false, 'template name'),
78
+ (0, cli_1.Option)('-m, --model [model]', false, 'path to model data for template, in json format'),
79
+ (0, cli_1.Option)('-s, --subject [model]', true, 'subject'),
80
+ (0, cli_1.Option)('-c, --content [content]', false, 'text content if template is not provided')
81
+ ], SendEmailCommand);
82
+ exports.SendEmailCommand = SendEmailCommand;
83
+ //# sourceMappingURL=SendEmail.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendEmail.js","sourceRoot":"","sources":["../../../src/cli/SendEmail.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAA2D;AAC3D,oCAAiC;AACjC,uCAAyB;AACzB,sCAA4C;AAC5C,4CAAoD;AAoB7C,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,gBAAU;IAIvC,KAAK,CAAC,OAAO,CAAC,OAAqB;QACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEjF,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,OAAE,CAAC,OAAO,CAAC,8BAAmB,CAAC,CAAC;YACrD,IAAI,KAAK,GAAG,EAAE,CAAC;YAEf,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACjD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,OAAO,CAAC,KAAK,kCAAkC,CAAC,CAAC;gBAEvF,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBACpE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC3B;YAED,MAAM,MAAM,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;gBACzB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,+BAA+B,OAAO,CAAC,EAAE,WAAW,OAAO,CAAC,IAAI,cAAc,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACnH;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,GAAG,CAAC,OAAO,YAAY,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;SAClF;IACH,CAAC;CACF,CAAA;AAhCC;IAAC,IAAA,YAAM,EAAC,OAAO,CAAC;;6CACI;AAFT,gBAAgB;IAR5B,IAAA,aAAO,EAAC,YAAY,EAAE,4DAA4D,CAAC;IACnF,IAAA,YAAM,EAAC,+BAA+B,EAAE,IAAI,EAAE,oBAAoB,CAAC;IACnE,IAAA,YAAM,EAAC,mBAAmB,EAAE,IAAI,EAAE,YAAY,CAAC;IAC/C,IAAA,YAAM,EAAC,eAAe,EAAE,IAAI,EAAE,8CAA8C,CAAC;IAC7E,IAAA,YAAM,EAAC,2BAA2B,EAAE,KAAK,EAAE,eAAe,CAAC;IAC3D,IAAA,YAAM,EAAC,qBAAqB,EAAE,KAAK,EAAE,iDAAiD,CAAC;IACvF,IAAA,YAAM,EAAC,uBAAuB,EAAE,IAAI,EAAE,SAAS,CAAC;IAChD,IAAA,YAAM,EAAC,yBAAyB,EAAE,KAAK,EAAE,0CAA0C,CAAC;GACxE,gBAAgB,CAiC5B;AAjCY,4CAAgB"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/config/email.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BV,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const path_1 = require("path");
4
+ function dir(path) {
5
+ return (0, path_1.resolve)((0, path_1.normalize)((0, path_1.join)(process.cwd(), path)));
6
+ }
7
+ const email = {
8
+ system: {
9
+ dirs: {
10
+ cli: [dir('./../cli')],
11
+ jobs: [dir('./../jobs')],
12
+ },
13
+ },
14
+ email: {
15
+ // default email queue / transport
16
+ queue: 'email-queue-black-hole',
17
+ },
18
+ queue: {
19
+ routing: {
20
+ EmailSendJob: { connection: 'email-queue-black-hole' },
21
+ EmailSent: { connection: 'email-queue-black-hole' },
22
+ },
23
+ // by default we dont have queue server for sending emails
24
+ connections: [
25
+ {
26
+ name: 'email-queue-black-hole',
27
+ service: 'BlackHoleQueueClient',
28
+ defaultQueueChannel: 'email-jobs',
29
+ defaultTopicChannel: 'email-events',
30
+ },
31
+ ],
32
+ },
33
+ };
34
+ exports.default = email;
35
+ //# sourceMappingURL=email.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.js","sourceRoot":"","sources":["../../../src/config/email.ts"],"names":[],"mappings":";;AAAA,+BAAgD;AAEhD,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,IAAA,cAAO,EAAC,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtB,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;SACzB;KACF;IACD,KAAK,EAAE;QACL,kCAAkC;QAClC,KAAK,EAAE,wBAAwB;KAChC;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,YAAY,EAAE,EAAE,UAAU,EAAE,wBAAwB,EAAE;YACtD,SAAS,EAAE,EAAE,UAAU,EAAE,wBAAwB,EAAE;SACpD;QAED,0DAA0D;QAC1D,WAAW,EAAE;YACX;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,sBAAsB;gBAC/B,mBAAmB,EAAE,YAAY;gBACjC,mBAAmB,EAAE,cAAc;aACpC;SACF;KACF;CACF,CAAC;AAEF,kBAAe,KAAK,CAAC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailSent.d.ts","sourceRoot":"","sources":["../../../src/events/EmailSent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAS,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,qBACa,SAAU,SAAQ,UAAU;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,IAAI,EAAE,MAAM,CAAC;IAEb,EAAE,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACI,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACI,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,OAAO,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACI,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,QAAQ,CAAC;gBAEZ,KAAK,EAAE,MAAM;CAa1B"}
@@ -0,0 +1,33 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.EmailSent = void 0;
13
+ const queue_1 = require("@spinajs/queue");
14
+ const luxon_1 = require("luxon");
15
+ let EmailSent = class EmailSent extends queue_1.QueueEvent {
16
+ constructor(email) {
17
+ super();
18
+ this.Connection = email.connection;
19
+ this.From = email.from;
20
+ this.To = email.to;
21
+ this.Template = email.template;
22
+ this.Model = email.model;
23
+ this.Subject = email.subject;
24
+ this.Content = email.text;
25
+ this.SentAt = luxon_1.DateTime.now();
26
+ }
27
+ };
28
+ EmailSent = __decorate([
29
+ (0, queue_1.Event)(),
30
+ __metadata("design:paramtypes", [Object])
31
+ ], EmailSent);
32
+ exports.EmailSent = EmailSent;
33
+ //# sourceMappingURL=EmailSent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailSent.js","sourceRoot":"","sources":["../../../src/events/EmailSent.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,0CAAmD;AACnD,iCAAiC;AAI1B,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,kBAAU;IA0BvC,YAAY,KAAa;QACvB,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,MAAM,GAAG,gBAAQ,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;CACF,CAAA;AAvCY,SAAS;IADrB,IAAA,aAAK,GAAE;;GACK,SAAS,CAuCrB;AAvCY,8BAAS"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,YAAY,EAAc,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAEpC,qBACa,cAAe,SAAQ,YAAY;IACvC,SAAS,IAAI,IAAI;CAGzB;AAED;;GAEG;AACH,qBACa,mBAAoB,SAAQ,YAAY;IACnD;;;;;OAKG;IACU,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ/C,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpD"}
@@ -0,0 +1,77 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
14
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
15
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
16
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
17
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
18
+ };
19
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
20
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
21
+ };
22
+ var __importDefault = (this && this.__importDefault) || function (mod) {
23
+ return (mod && mod.__esModule) ? mod : { "default": mod };
24
+ };
25
+ Object.defineProperty(exports, "__esModule", { value: true });
26
+ exports.DefaultEmailService = exports.LogBotstrapper = void 0;
27
+ const exceptions_1 = require("@spinajs/exceptions");
28
+ const di_1 = require("@spinajs/di");
29
+ const interfaces_js_1 = require("./interfaces.js");
30
+ const email_smtp_configuration_js_1 = __importDefault(require("./schemas/email.smtp.configuration.js"));
31
+ const EmailSent_js_1 = require("./events/EmailSent.js");
32
+ const EmailSend_js_1 = require("./jobs/EmailSend.js");
33
+ __exportStar(require("./interfaces.js"), exports);
34
+ __exportStar(require("./transports.js"), exports);
35
+ __exportStar(require("./jobs/EmailSend.js"), exports);
36
+ let LogBotstrapper = class LogBotstrapper extends di_1.Bootstrapper {
37
+ bootstrap() {
38
+ di_1.DI.register(email_smtp_configuration_js_1.default).asValue('__configurationSchema__');
39
+ }
40
+ };
41
+ LogBotstrapper = __decorate([
42
+ (0, di_1.Injectable)(di_1.Bootstrapper)
43
+ ], LogBotstrapper);
44
+ exports.LogBotstrapper = LogBotstrapper;
45
+ /**
46
+ * Email sending service.
47
+ */
48
+ let DefaultEmailService = class DefaultEmailService extends interfaces_js_1.EmailService {
49
+ /**
50
+ *
51
+ * Tries to sends email immediately
52
+ *
53
+ * @param email - email struct
54
+ */
55
+ async send(email) {
56
+ if (!this.Senders.has(email.connection)) {
57
+ throw new exceptions_1.InvalidOperation(`Email sender ${email.connection} not exists. Please check your configuration files.`);
58
+ }
59
+ await this.Senders.get(email.connection).send(email);
60
+ // inform others of email event
61
+ await this.Queue.emit(new EmailSent_js_1.EmailSent(email));
62
+ }
63
+ async sendDeferred(email) {
64
+ const dEmail = new EmailSend_js_1.EmailSend();
65
+ dEmail.hydrate(email);
66
+ await this.Queue.emit(dEmail);
67
+ return dEmail;
68
+ }
69
+ async processDefferedEmails() {
70
+ await this.Queue.consume(EmailSend_js_1.EmailSend);
71
+ }
72
+ };
73
+ DefaultEmailService = __decorate([
74
+ (0, di_1.Injectable)(interfaces_js_1.EmailService)
75
+ ], DefaultEmailService);
76
+ exports.DefaultEmailService = DefaultEmailService;
77
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,oDAAuD;AACvD,oCAA2D;AAC3D,mDAAuD;AACvD,wGAAyE;AACzE,wDAAkD;AAClD,sDAAgD;AAEhD,kDAAgC;AAChC,kDAAgC;AAChC,sDAAoC;AAG7B,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,iBAAY;IACvC,SAAS;QACd,OAAE,CAAC,QAAQ,CAAC,qCAAoB,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvE,CAAC;CACF,CAAA;AAJY,cAAc;IAD1B,IAAA,eAAU,EAAC,iBAAY,CAAC;GACZ,cAAc,CAI1B;AAJY,wCAAc;AAM3B;;GAEG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,4BAAY;IACnD;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YACvC,MAAM,IAAI,6BAAgB,CAAC,gBAAgB,KAAK,CAAC,UAAU,qDAAqD,CAAC,CAAC;SACnH;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErD,+BAA+B;QAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,wBAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAa;QACrC,MAAM,MAAM,GAAG,IAAI,wBAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9B,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,qBAAqB;QAChC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,wBAAS,CAAC,CAAC;IACtC,CAAC;CACF,CAAA;AA7BY,mBAAmB;IAD/B,IAAA,eAAU,EAAC,4BAAY,CAAC;GACZ,mBAAmB,CA6B/B;AA7BY,kDAAmB"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAc,cAAc,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACzF,OAAO,EAAE,GAAG,EAAU,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAC9C,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAChD,8BAAsB,WAAY,SAAQ,YAAa,YAAW,cAAc,EAAE,gBAAgB;IACzF,OAAO,EAAE,sBAAsB,CAAC;IAEvC,IAAW,WAAW,WAErB;IAED,QAAQ,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAEpC,iBAAiB,CAAC,eAAe,EAAE,GAAG,GAAG,OAAO;CAGxD;AAED,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,MAAM;IACrB,EAAE,EAAE,MAAM,EAAE,CAAC;IAEb,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IAEd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IAEf,IAAI,EAAE,MAAM,CAAC;IAEb,UAAU,EAAE,MAAM,CAAC;IAEnB,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAEnC;;OAEG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;OAEG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,OAAO,EAAE,MAAM,CAAC;IAEhB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,sBAAsB,EAAE,CAAC;IACtC,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,sBAAsB;IACrC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,GAAG,CAAC,EAAE,OAAO,CAAC;IAEd;;OAEG;IACH,QAAQ,CAAC,EAAE;QACT;;WAEG;QACH,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IAEF;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,8BAAsB,YAAa,SAAQ,YAAY;IAErD,SAAS,CAAC,GAAG,EAAE,GAAG,CAAC;IAGnB,SAAS,CAAC,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;IAG5C,SAAS,CAAC,aAAa,EAAE,kBAAkB,CAAC;IAG5C,SAAS,CAAC,KAAK,EAAE,YAAY,CAAC;IAE9B;;;;;OAKG;aACa,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAElD;;;;;;OAMG;aACa,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAE/D;;OAEG;aACa,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;CACvD"}
@@ -0,0 +1,45 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ var __metadata = (this && this.__metadata) || function (k, v) {
9
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
10
+ };
11
+ Object.defineProperty(exports, "__esModule", { value: true });
12
+ exports.EmailService = exports.EmailSender = void 0;
13
+ const di_1 = require("@spinajs/di");
14
+ const log_1 = require("@spinajs/log");
15
+ const configuration_1 = require("@spinajs/configuration");
16
+ const queue_1 = require("@spinajs/queue");
17
+ class EmailSender extends di_1.AsyncService {
18
+ get ServiceName() {
19
+ return this.Options.name;
20
+ }
21
+ __checkInstance__(creationOptions) {
22
+ return this.Options.name === creationOptions[0].name;
23
+ }
24
+ }
25
+ exports.EmailSender = EmailSender;
26
+ class EmailService extends di_1.AsyncService {
27
+ }
28
+ __decorate([
29
+ (0, log_1.Logger)('email'),
30
+ __metadata("design:type", log_1.Log)
31
+ ], EmailService.prototype, "Log", void 0);
32
+ __decorate([
33
+ (0, configuration_1.AutoinjectService)('email.connections', EmailSender),
34
+ __metadata("design:type", Map)
35
+ ], EmailService.prototype, "Senders", void 0);
36
+ __decorate([
37
+ (0, configuration_1.Config)('email'),
38
+ __metadata("design:type", Object)
39
+ ], EmailService.prototype, "Configuration", void 0);
40
+ __decorate([
41
+ (0, di_1.Autoinject)(queue_1.QueueService),
42
+ __metadata("design:type", queue_1.QueueService)
43
+ ], EmailService.prototype, "Queue", void 0);
44
+ exports.EmailService = EmailService;
45
+ //# sourceMappingURL=interfaces.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAAyF;AACzF,sCAA2C;AAC3C,0DAAmE;AACnE,0CAA8C;AAE9C,MAAsB,WAAY,SAAQ,iBAAY;IAGpD,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAIM,iBAAiB,CAAC,eAAoB;QAC3C,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,eAAe,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACvD,CAAC;CACF;AAZD,kCAYC;AAwGD,MAAsB,YAAa,SAAQ,iBAAY;CAkCtD;AAjCC;IAAC,IAAA,YAAM,EAAC,OAAO,CAAC;8BACD,SAAG;yCAAC;AAEnB;IAAC,IAAA,iCAAiB,EAAC,mBAAmB,EAAE,WAAW,CAAC;8BACjC,GAAG;6CAAsB;AAE5C;IAAC,IAAA,sBAAM,EAAC,OAAO,CAAC;;mDAC4B;AAE5C;IAAC,IAAA,eAAU,EAAC,oBAAY,CAAC;8BACR,oBAAY;2CAAC;AAXhC,oCAkCC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailSend.d.ts","sourceRoot":"","sources":["../../../src/jobs/EmailSend.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAO,MAAM,gBAAgB,CAAC;AAC/C,OAAO,EAAgB,MAAM,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAE3E;;GAEG;AACH,qBACa,SAAU,SAAQ,QAAS,YAAW,MAAM;IAChD,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC;IACd,GAAG,CAAC,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,CAAC,EAAE,iBAAiB,EAAE,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IAEX,OAAO;;;;;;;CAerB"}
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.EmailSend = void 0;
10
+ const di_1 = require("@spinajs/di");
11
+ const queue_1 = require("@spinajs/queue");
12
+ const interfaces_js_1 = require("../interfaces.js");
13
+ /**
14
+ * Job for sending emails in background
15
+ */
16
+ let EmailSend = class EmailSend extends queue_1.QueueJob {
17
+ async execute() {
18
+ try {
19
+ const emails = await di_1.DI.resolve(interfaces_js_1.EmailService);
20
+ await emails.send(this);
21
+ }
22
+ catch (err) {
23
+ return {
24
+ result: false,
25
+ error: err,
26
+ };
27
+ }
28
+ return {
29
+ result: true,
30
+ };
31
+ }
32
+ };
33
+ EmailSend = __decorate([
34
+ (0, queue_1.Job)()
35
+ ], EmailSend);
36
+ exports.EmailSend = EmailSend;
37
+ //# sourceMappingURL=EmailSend.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailSend.js","sourceRoot":"","sources":["../../../src/jobs/EmailSend.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oCAAiC;AACjC,0CAA+C;AAC/C,oDAA2E;AAE3E;;GAEG;AAEI,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,gBAAQ;IAkB9B,KAAK,CAAC,OAAO;QAClB,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,OAAE,CAAC,OAAO,CAAC,4BAAY,CAAC,CAAC;YAC9C,MAAM,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACzB;QAAC,OAAO,GAAG,EAAE;YACZ,OAAO;gBACL,MAAM,EAAE,KAAK;gBACb,KAAK,EAAE,GAAG;aACX,CAAC;SACH;QAED,OAAO;YACL,MAAM,EAAE,IAAI;SACb,CAAC;IACJ,CAAC;CACF,CAAA;AAjCY,SAAS;IADrB,IAAA,WAAG,GAAE;GACO,SAAS,CAiCrB;AAjCY,8BAAS"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.smtp.configuration.d.ts","sourceRoot":"","sources":["../../../src/schemas/email.smtp.configuration.ts"],"names":[],"mappings":"AAAA,QAAA,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkCzB,CAAC;AAEF,eAAe,oBAAoB,CAAC"}
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const CONFIGURATION_SCHEMA = {
4
+ $id: 'spinajs/email.configuration.schema.json',
5
+ $configurationModule: 'email',
6
+ description: 'Email smtp transport configuration option validation',
7
+ type: 'object',
8
+ properties: {
9
+ queue: 'string',
10
+ connections: {
11
+ type: 'array',
12
+ uniqueItems: true,
13
+ items: {
14
+ type: 'object',
15
+ properties: {
16
+ ssl: { type: 'boolean' },
17
+ host: { type: 'string' },
18
+ port: { type: 'number' },
19
+ user: { type: 'string' },
20
+ password: { type: 'string' },
21
+ name: { type: 'string' },
22
+ sender: { type: 'string' },
23
+ options: {
24
+ type: 'object',
25
+ },
26
+ defaults: {
27
+ type: 'object',
28
+ properties: {
29
+ mailFrom: { type: 'string' },
30
+ },
31
+ },
32
+ },
33
+ },
34
+ },
35
+ },
36
+ required: ['name', 'sender'],
37
+ };
38
+ exports.default = CONFIGURATION_SCHEMA;
39
+ //# sourceMappingURL=email.smtp.configuration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.smtp.configuration.js","sourceRoot":"","sources":["../../../src/schemas/email.smtp.configuration.ts"],"names":[],"mappings":";;AAAA,MAAM,oBAAoB,GAAG;IAC3B,GAAG,EAAE,yCAAyC;IAC9C,oBAAoB,EAAE,OAAO;IAC7B,WAAW,EAAE,sDAAsD;IACnE,IAAI,EAAE,QAAQ;IACd,UAAU,EAAE;QACV,KAAK,EAAE,QAAQ;QACf,WAAW,EAAE;YACX,IAAI,EAAE,OAAO;YACb,WAAW,EAAE,IAAI;YACjB,KAAK,EAAE;gBACL,IAAI,EAAE,QAAQ;gBACd,UAAU,EAAE;oBACV,GAAG,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE;oBACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC5B,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBACxB,MAAM,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;oBAC1B,OAAO,EAAE;wBACP,IAAI,EAAE,QAAQ;qBACf;oBACD,QAAQ,EAAE;wBACR,IAAI,EAAE,QAAQ;wBACd,UAAU,EAAE;4BACV,QAAQ,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE;yBAC7B;qBACF;iBACF;aACF;SACF;KACF;IACD,QAAQ,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAEF,kBAAe,oBAAoB,CAAC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.d.ts","sourceRoot":"","sources":["../../src/transports.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;;;GAIG;AACH,qBAEa,uBAAwB,SAAQ,WAAW;IACzC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;CACnC"}
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
6
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
7
+ };
8
+ Object.defineProperty(exports, "__esModule", { value: true });
9
+ exports.BlackHoleEmailTransport = void 0;
10
+ const di_1 = require("@spinajs/di");
11
+ const interfaces_js_1 = require("./interfaces.js");
12
+ /**
13
+ * Transport that does nothing.
14
+ *
15
+ * Used for testing, or when we want temporarly disable siding emails
16
+ */
17
+ let BlackHoleEmailTransport = class BlackHoleEmailTransport extends interfaces_js_1.EmailSender {
18
+ async send() { }
19
+ };
20
+ BlackHoleEmailTransport = __decorate([
21
+ (0, di_1.Injectable)(),
22
+ (0, di_1.NewInstance)()
23
+ ], BlackHoleEmailTransport);
24
+ exports.BlackHoleEmailTransport = BlackHoleEmailTransport;
25
+ //# sourceMappingURL=transports.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"transports.js","sourceRoot":"","sources":["../../src/transports.ts"],"names":[],"mappings":";;;;;;;;;AAAA,oCAAsD;AACtD,mDAA8C;AAE9C;;;;GAIG;AAGI,IAAM,uBAAuB,GAA7B,MAAM,uBAAwB,SAAQ,2BAAW;IAC/C,KAAK,CAAC,IAAI,KAAmB,CAAC;CACtC,CAAA;AAFY,uBAAuB;IAFnC,IAAA,eAAU,GAAE;IACZ,IAAA,gBAAW,GAAE;GACD,uBAAuB,CAEnC;AAFY,0DAAuB"}
@@ -0,0 +1,17 @@
1
+ import { CliCommand } from '@spinajs/cli';
2
+ import { ILog } from '@spinajs/log';
3
+ interface EmailOptions {
4
+ connection: string;
5
+ from: string;
6
+ to: string;
7
+ template?: string;
8
+ model?: string;
9
+ subject: string;
10
+ content?: string;
11
+ }
12
+ export declare class SendEmailCommand extends CliCommand {
13
+ protected Log: ILog;
14
+ execute(options: EmailOptions): Promise<void>;
15
+ }
16
+ export {};
17
+ //# sourceMappingURL=SendEmail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendEmail.d.ts","sourceRoot":"","sources":["../../../src/cli/SendEmail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,cAAc,CAAC;AAG3D,OAAO,EAAU,IAAI,EAAE,MAAM,cAAc,CAAC;AAG5C,UAAU,YAAY;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAQa,gBAAiB,SAAQ,UAAU;IAE9C,SAAS,CAAC,GAAG,EAAE,IAAI,CAAC;IAEP,OAAO,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;CA6B3D"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SendEmail.js","sourceRoot":"","sources":["../../../src/cli/SendEmail.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3D,OAAO,EAAE,EAAE,EAAE,MAAM,aAAa,CAAC;AACjC,OAAO,KAAK,EAAE,MAAM,IAAI,CAAC;AACzB,OAAO,EAAE,MAAM,EAAQ,MAAM,cAAc,CAAC;AAC5C,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAoB7C,IAAM,gBAAgB,GAAtB,MAAM,gBAAiB,SAAQ,UAAU;IAIvC,KAAK,CAAC,OAAO,CAAC,OAAqB;QACxC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uCAAuC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;QAEjF,IAAI;YACF,MAAM,MAAM,GAAG,MAAM,EAAE,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;YACrD,IAAI,KAAK,GAAG,EAAE,CAAC;YAEf,IAAI,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;gBACjD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,uBAAuB,OAAO,CAAC,KAAK,kCAAkC,CAAC,CAAC;gBAEvF,MAAM,KAAK,GAAG,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,CAAC;gBACpE,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;aAC3B;YAED,MAAM,MAAM,CAAC,IAAI,CAAC;gBAChB,IAAI,EAAE,OAAO,CAAC,IAAI;gBAClB,EAAE,EAAE,OAAO,CAAC,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC;gBACzB,UAAU,EAAE,OAAO,CAAC,UAAU;gBAC9B,QAAQ,EAAE,OAAO,CAAC,QAAQ;gBAC1B,KAAK,EAAE,KAAK;gBACZ,OAAO,EAAE,OAAO,CAAC,OAAO;gBACxB,IAAI,EAAE,OAAO,CAAC,OAAO;aACtB,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,+BAA+B,OAAO,CAAC,EAAE,WAAW,OAAO,CAAC,IAAI,cAAc,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;SACnH;QAAC,OAAO,GAAG,EAAE;YACZ,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,8BAA8B,GAAG,CAAC,OAAO,YAAY,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;SAClF;IACH,CAAC;CACF,CAAA;AAhCC;IAAC,MAAM,CAAC,OAAO,CAAC;;6CACI;AAFT,gBAAgB;IAR5B,OAAO,CAAC,YAAY,EAAE,4DAA4D,CAAC;IACnF,MAAM,CAAC,+BAA+B,EAAE,IAAI,EAAE,oBAAoB,CAAC;IACnE,MAAM,CAAC,mBAAmB,EAAE,IAAI,EAAE,YAAY,CAAC;IAC/C,MAAM,CAAC,eAAe,EAAE,IAAI,EAAE,8CAA8C,CAAC;IAC7E,MAAM,CAAC,2BAA2B,EAAE,KAAK,EAAE,eAAe,CAAC;IAC3D,MAAM,CAAC,qBAAqB,EAAE,KAAK,EAAE,iDAAiD,CAAC;IACvF,MAAM,CAAC,uBAAuB,EAAE,IAAI,EAAE,SAAS,CAAC;IAChD,MAAM,CAAC,yBAAyB,EAAE,KAAK,EAAE,0CAA0C,CAAC;GACxE,gBAAgB,CAiC5B;SAjCY,gBAAgB"}
@@ -0,0 +1,29 @@
1
+ declare const email: {
2
+ system: {
3
+ dirs: {
4
+ cli: string[];
5
+ jobs: string[];
6
+ };
7
+ };
8
+ email: {
9
+ queue: string;
10
+ };
11
+ queue: {
12
+ routing: {
13
+ EmailSendJob: {
14
+ connection: string;
15
+ };
16
+ EmailSent: {
17
+ connection: string;
18
+ };
19
+ };
20
+ connections: {
21
+ name: string;
22
+ service: string;
23
+ defaultQueueChannel: string;
24
+ defaultTopicChannel: string;
25
+ }[];
26
+ };
27
+ };
28
+ export default email;
29
+ //# sourceMappingURL=email.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/config/email.ts"],"names":[],"mappings":"AAMA,QAAA,MAAM,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;CA2BV,CAAC;AAEF,eAAe,KAAK,CAAC"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"email.js","sourceRoot":"","sources":["../../../src/config/email.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAEhD,SAAS,GAAG,CAAC,IAAY;IACvB,OAAO,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,CAAC;AAED,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;YACtB,IAAI,EAAE,CAAC,GAAG,CAAC,WAAW,CAAC,CAAC;SACzB;KACF;IACD,KAAK,EAAE;QACL,kCAAkC;QAClC,KAAK,EAAE,wBAAwB;KAChC;IACD,KAAK,EAAE;QACL,OAAO,EAAE;YACP,YAAY,EAAE,EAAE,UAAU,EAAE,wBAAwB,EAAE;YACtD,SAAS,EAAE,EAAE,UAAU,EAAE,wBAAwB,EAAE;SACpD;QAED,0DAA0D;QAC1D,WAAW,EAAE;YACX;gBACE,IAAI,EAAE,wBAAwB;gBAC9B,OAAO,EAAE,sBAAsB;gBAC/B,mBAAmB,EAAE,YAAY;gBACjC,mBAAmB,EAAE,cAAc;aACpC;SACF;KACF;CACF,CAAC;AAEF,eAAe,KAAK,CAAC"}
@@ -0,0 +1,24 @@
1
+ import { QueueEvent } from '@spinajs/queue';
2
+ import { DateTime } from 'luxon';
3
+ import { IEmail } from '../interfaces.js';
4
+ export declare class EmailSent extends QueueEvent {
5
+ Connection?: string;
6
+ From: string;
7
+ To: string[];
8
+ /**
9
+ * Email template eg. pug file or mustashe
10
+ */
11
+ Template?: string;
12
+ /**
13
+ * Data model used in template
14
+ */
15
+ Model?: any;
16
+ Subject: string;
17
+ /**
18
+ * text content if template is not provided
19
+ */
20
+ Content?: string;
21
+ SentAt: DateTime;
22
+ constructor(email: IEmail);
23
+ }
24
+ //# sourceMappingURL=EmailSent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailSent.d.ts","sourceRoot":"","sources":["../../../src/events/EmailSent.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAS,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAE1C,qBACa,SAAU,SAAQ,UAAU;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,IAAI,EAAE,MAAM,CAAC;IAEb,EAAE,EAAE,MAAM,EAAE,CAAC;IAEpB;;OAEG;IACI,QAAQ,CAAC,EAAE,MAAM,CAAC;IAEzB;;OAEG;IACI,KAAK,CAAC,EAAE,GAAG,CAAC;IAEZ,OAAO,EAAE,MAAM,CAAC;IAEvB;;OAEG;IACI,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,MAAM,EAAE,QAAQ,CAAC;gBAEZ,KAAK,EAAE,MAAM;CAa1B"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EmailSent.js","sourceRoot":"","sources":["../../../src/events/EmailSent.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAI1B,IAAM,SAAS,GAAf,MAAM,SAAU,SAAQ,UAAU;IA0BvC,YAAY,KAAa;QACvB,KAAK,EAAE,CAAC;QAER,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,EAAE,CAAC;QACnB,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC;QAE1B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,GAAG,EAAE,CAAC;IAC/B,CAAC;CACF,CAAA;AAvCY,SAAS;IADrB,KAAK,EAAE;;GACK,SAAS,CAuCrB;SAvCY,SAAS"}
@@ -0,0 +1,24 @@
1
+ import { Bootstrapper } from '@spinajs/di';
2
+ import { IEmail, EmailService } from './interfaces.js';
3
+ import { EmailSend } from './jobs/EmailSend.js';
4
+ export * from './interfaces.js';
5
+ export * from './transports.js';
6
+ export * from './jobs/EmailSend.js';
7
+ export declare class LogBotstrapper extends Bootstrapper {
8
+ bootstrap(): void;
9
+ }
10
+ /**
11
+ * Email sending service.
12
+ */
13
+ export declare class DefaultEmailService extends EmailService {
14
+ /**
15
+ *
16
+ * Tries to sends email immediately
17
+ *
18
+ * @param email - email struct
19
+ */
20
+ send(email: IEmail): Promise<void>;
21
+ sendDeferred(email: IEmail): Promise<EmailSend>;
22
+ processDefferedEmails(): Promise<void>;
23
+ }
24
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAM,YAAY,EAAc,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAGvD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAEpC,qBACa,cAAe,SAAQ,YAAY;IACvC,SAAS,IAAI,IAAI;CAGzB;AAED;;GAEG;AACH,qBACa,mBAAoB,SAAQ,YAAY;IACnD;;;;;OAKG;IACU,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAWlC,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,SAAS,CAAC;IAQ/C,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC;CAGpD"}
File without changes
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,EAAE,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAC3D,OAAO,EAAU,YAAY,EAAE,MAAM,iBAAiB,CAAC;AACvD,OAAO,oBAAoB,MAAM,uCAAuC,CAAC;AACzE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,MAAM,qBAAqB,CAAC;AAEhD,cAAc,iBAAiB,CAAC;AAChC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AAG7B,IAAM,cAAc,GAApB,MAAM,cAAe,SAAQ,YAAY;IACvC,SAAS;QACd,EAAE,CAAC,QAAQ,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACvE,CAAC;CACF,CAAA;AAJY,cAAc;IAD1B,UAAU,CAAC,YAAY,CAAC;GACZ,cAAc,CAI1B;SAJY,cAAc;AAM3B;;GAEG;AAEI,IAAM,mBAAmB,GAAzB,MAAM,mBAAoB,SAAQ,YAAY;IACnD;;;;;OAKG;IACI,KAAK,CAAC,IAAI,CAAC,KAAa;QAC7B,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE;YACvC,MAAM,IAAI,gBAAgB,CAAC,gBAAgB,KAAK,CAAC,UAAU,qDAAqD,CAAC,CAAC;SACnH;QAED,MAAM,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErD,+BAA+B;QAC/B,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAEM,KAAK,CAAC,YAAY,CAAC,KAAa;QACrC,MAAM,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;QAC/B,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QACtB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAE9B,OAAO,MAAM,CAAC;IAChB,CAAC;IAEM,KAAK,CAAC,qBAAqB;QAChC,MAAM,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACtC,CAAC;CACF,CAAA;AA7BY,mBAAmB;IAD/B,UAAU,CAAC,YAAY,CAAC;GACZ,mBAAmB,CA6B/B;SA7BY,mBAAmB"}