@spinajs/email 2.0.445 → 2.0.446
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.
- package/lib/cjs/config/email.d.ts +5 -0
- package/lib/cjs/config/email.d.ts.map +1 -1
- package/lib/cjs/config/email.js +5 -0
- package/lib/cjs/config/email.js.map +1 -1
- package/lib/cjs/events/EmailSent.d.ts +2 -2
- package/lib/cjs/events/EmailSent.d.ts.map +1 -1
- package/lib/cjs/interfaces.d.ts +18 -1
- package/lib/cjs/interfaces.d.ts.map +1 -1
- package/lib/cjs/interfaces.js +12 -0
- package/lib/cjs/interfaces.js.map +1 -1
- package/lib/mjs/config/email.d.ts +5 -0
- package/lib/mjs/config/email.d.ts.map +1 -1
- package/lib/mjs/config/email.js +5 -0
- package/lib/mjs/config/email.js.map +1 -1
- package/lib/mjs/events/EmailSent.d.ts +2 -2
- package/lib/mjs/events/EmailSent.d.ts.map +1 -1
- package/lib/mjs/interfaces.d.ts +18 -1
- package/lib/mjs/interfaces.d.ts.map +1 -1
- package/lib/mjs/interfaces.js +13 -1
- package/lib/mjs/interfaces.js.map +1 -1
- package/lib/tsconfig.cjs.tsbuildinfo +1 -1
- package/lib/tsconfig.mjs.tsbuildinfo +1 -1
- package/package.json +9 -8
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/config/email.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/config/email.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,KAAK;;;;;;;;;QAWP;;;WAGG;;;;;;;;;;;;;;;;;;;CAmBN,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
package/lib/cjs/config/email.js
CHANGED
|
@@ -19,6 +19,11 @@ const email = {
|
|
|
19
19
|
email: {
|
|
20
20
|
// default email queue / transport
|
|
21
21
|
queue: 'email-queue-black-hole',
|
|
22
|
+
/**
|
|
23
|
+
* Default email template filesystem
|
|
24
|
+
* FS must be set in configuration on server/app that sends emails
|
|
25
|
+
*/
|
|
26
|
+
templateFs: "email-templates",
|
|
22
27
|
},
|
|
23
28
|
queue: {
|
|
24
29
|
routing: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../../src/config/email.ts"],"names":[],"mappings":";;AAAA,+BAAgD;AAEhD,SAAS,GAAG,CAAC,IAAY;IACvB,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IACjD,OAAO;QACL,IAAA,cAAO,EAAC,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAExJ,4CAA4C;QAC5C,IAAA,cAAO,EAAC,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAC,KAAK,EAAC,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KAC9J,CAAC;AACJ,CAAC;AAED,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;SACvB;KACF;IACD,KAAK,EAAE;QACL,kCAAkC;QAClC,KAAK,EAAE,wBAAwB;
|
|
1
|
+
{"version":3,"file":"email.js","sourceRoot":"","sources":["../../../src/config/email.ts"],"names":[],"mappings":";;AAAA,+BAAgD;AAEhD,SAAS,GAAG,CAAC,IAAY;IACvB,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IACjD,OAAO;QACL,IAAA,cAAO,EAAC,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAExJ,4CAA4C;QAC5C,IAAA,cAAO,EAAC,IAAA,gBAAS,EAAC,IAAA,WAAI,EAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAC,KAAK,EAAC,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KAC9J,CAAC;AACJ,CAAC;AAED,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;SACvB;KACF;IACD,KAAK,EAAE;QACL,kCAAkC;QAClC,KAAK,EAAE,wBAAwB;QAE/B;;;WAGG;QACH,UAAU,EAAE,iBAAiB;KAC9B;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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { QueueEvent } from '@spinajs/queue';
|
|
2
2
|
import { DateTime } from 'luxon';
|
|
3
|
-
import { IEmail } from '../interfaces.js';
|
|
3
|
+
import { IEmail, IEmailTemplate } from '../interfaces.js';
|
|
4
4
|
export declare class EmailSent extends QueueEvent {
|
|
5
5
|
Connection?: string;
|
|
6
6
|
From: string;
|
|
@@ -8,7 +8,7 @@ export declare class EmailSent extends QueueEvent {
|
|
|
8
8
|
/**
|
|
9
9
|
* Email template eg. pug file or mustashe
|
|
10
10
|
*/
|
|
11
|
-
Template?: string;
|
|
11
|
+
Template?: string | IEmailTemplate;
|
|
12
12
|
/**
|
|
13
13
|
* Data model used in template
|
|
14
14
|
*/
|
|
@@ -1 +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;
|
|
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,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE1D,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,GAAG,cAAc,CAAC;IAE1C;;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"}
|
package/lib/cjs/interfaces.d.ts
CHANGED
|
@@ -2,10 +2,14 @@ import { AsyncService, IMappableService } from '@spinajs/di';
|
|
|
2
2
|
import { Log } from '@spinajs/log';
|
|
3
3
|
import { QueueService } from '@spinajs/queue';
|
|
4
4
|
import { EmailSend } from './jobs/EmailSend.js';
|
|
5
|
+
import { fs } from '@spinajs/fs';
|
|
5
6
|
export declare abstract class EmailSender extends AsyncService implements IMappableService {
|
|
6
7
|
Options: EmailConnectionOptions;
|
|
8
|
+
protected defaultTemplateFsName: string;
|
|
9
|
+
protected defaultTemplateFs: fs;
|
|
7
10
|
get ServiceName(): string;
|
|
8
11
|
abstract send(email: IEmail): Promise<void>;
|
|
12
|
+
resolve(): Promise<void>;
|
|
9
13
|
}
|
|
10
14
|
export declare class BlackHoleEmailSender extends EmailSender {
|
|
11
15
|
Options: EmailConnectionOptions;
|
|
@@ -31,6 +35,19 @@ export interface IEmailAttachement {
|
|
|
31
35
|
*/
|
|
32
36
|
cid?: string;
|
|
33
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Email template def if template is in different fs than default templateFs
|
|
40
|
+
*/
|
|
41
|
+
export interface IEmailTemplate {
|
|
42
|
+
/**
|
|
43
|
+
* Template name
|
|
44
|
+
*/
|
|
45
|
+
file: string;
|
|
46
|
+
/**
|
|
47
|
+
* Template filesystem to use
|
|
48
|
+
*/
|
|
49
|
+
fs: string;
|
|
50
|
+
}
|
|
34
51
|
export interface IEmail {
|
|
35
52
|
to: string[];
|
|
36
53
|
cc?: string[];
|
|
@@ -44,7 +61,7 @@ export interface IEmail {
|
|
|
44
61
|
/**
|
|
45
62
|
* Local template name. Must be avaible in one of dirs set in template config
|
|
46
63
|
*/
|
|
47
|
-
template?: string;
|
|
64
|
+
template?: string | IEmailTemplate;
|
|
48
65
|
/**
|
|
49
66
|
* Some implementations have predefined templates. It can be accessed by this Id
|
|
50
67
|
* eg. mailersend
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
package/lib/cjs/interfaces.js
CHANGED
|
@@ -18,8 +18,20 @@ class EmailSender extends di_1.AsyncService {
|
|
|
18
18
|
get ServiceName() {
|
|
19
19
|
return this.Options.name;
|
|
20
20
|
}
|
|
21
|
+
async resolve() {
|
|
22
|
+
if (this.defaultTemplateFsName) {
|
|
23
|
+
this.defaultTemplateFs = di_1.DI.resolve("__file_provider__", [this.defaultTemplateFsName]);
|
|
24
|
+
if (!this.defaultTemplateFs) {
|
|
25
|
+
throw new di_1.ResolveException('Default email template filesystem ' + this.defaultTemplateFsName + ' not found. Please check your configuration for email.templateFs and make sure that fs provider with name ' + this.defaultTemplateFsName + ' is registered');
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
21
29
|
}
|
|
22
30
|
exports.EmailSender = EmailSender;
|
|
31
|
+
__decorate([
|
|
32
|
+
(0, configuration_1.Config)('email.templateFs'),
|
|
33
|
+
__metadata("design:type", String)
|
|
34
|
+
], EmailSender.prototype, "defaultTemplateFsName", void 0);
|
|
23
35
|
let BlackHoleEmailSender = class BlackHoleEmailSender extends EmailSender {
|
|
24
36
|
constructor(Options) {
|
|
25
37
|
super();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,oCAAwH;AACxH,sCAA2C;AAC3C,0DAAmE;AACnE,0CAA8C;AAG9C,MAAsB,WAAY,SAAQ,iBAAY;IAQpD,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAIM,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,iBAAiB,GAAG,OAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAEvF,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,MAAM,IAAI,qBAAgB,CAAC,oCAAoC,GAAG,IAAI,CAAC,qBAAqB,GAAG,4GAA4G,GAAG,IAAI,CAAC,qBAAqB,GAAG,gBAAgB,CAAC,CAAC;YAC/P,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAvBD,kCAuBC;AAnBW;IADT,IAAA,sBAAM,EAAC,kBAAkB,CAAC;;0DACa;AAuBnC,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,WAAW;IAKnD,YAAmB,OAA+B;QAChD,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAwB;IAElD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAAc;QAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;CACF,CAAA;AAbY,oDAAoB;AAErB;IADT,IAAA,YAAM,EAAC,OAAO,CAAC;8BACD,SAAG;iDAAC;+BAFR,oBAAoB;IAFhC,IAAA,eAAU,EAAC,WAAW,CAAC;IACvB,IAAA,gBAAW,GAAE;;GACD,oBAAoB,CAahC;AAgKD,MAAsB,YAAa,SAAQ,iBAAY;CAmCtD;AAnCD,oCAmCC;AAjCW;IADT,IAAA,YAAM,EAAC,OAAO,CAAC;8BACD,SAAG;yCAAC;AAGT;IADT,IAAA,iCAAiB,EAAC,mBAAmB,EAAE,WAAW,CAAC;8BACjC,GAAG;6CAAsB;AAGlC;IADT,IAAA,sBAAM,EAAC,OAAO,CAAC;;mDAC4B;AAGlC;IADT,IAAA,eAAU,EAAC,oBAAY,CAAC;8BACR,oBAAY;2CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/config/email.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,KAAK
|
|
1
|
+
{"version":3,"file":"email.d.ts","sourceRoot":"","sources":["../../../src/config/email.ts"],"names":[],"mappings":"AAYA,QAAA,MAAM,KAAK;;;;;;;;;QAWP;;;WAGG;;;;;;;;;;;;;;;;;;;CAmBN,CAAC;AAEF,eAAe,KAAK,CAAC"}
|
package/lib/mjs/config/email.js
CHANGED
|
@@ -17,6 +17,11 @@ const email = {
|
|
|
17
17
|
email: {
|
|
18
18
|
// default email queue / transport
|
|
19
19
|
queue: 'email-queue-black-hole',
|
|
20
|
+
/**
|
|
21
|
+
* Default email template filesystem
|
|
22
|
+
* FS must be set in configuration on server/app that sends emails
|
|
23
|
+
*/
|
|
24
|
+
templateFs: "email-templates",
|
|
20
25
|
},
|
|
21
26
|
queue: {
|
|
22
27
|
routing: {
|
|
@@ -1 +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,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IACjD,OAAO;QACL,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAExJ,4CAA4C;QAC5C,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAC,KAAK,EAAC,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KAC9J,CAAC;AACJ,CAAC;AAED,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;SACvB;KACF;IACD,KAAK,EAAE;QACL,kCAAkC;QAClC,KAAK,EAAE,wBAAwB;
|
|
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,MAAM,UAAU,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC;IACjD,OAAO;QACL,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAE,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;QAExJ,4CAA4C;QAC5C,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,OAAO,CAAC,GAAG,EAAE,EAAC,KAAK,EAAC,cAAc,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;KAC9J,CAAC;AACJ,CAAC;AAED,MAAM,KAAK,GAAG;IACZ,MAAM,EAAE;QACN,IAAI,EAAE;YACJ,GAAG,EAAE,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC;YACpB,IAAI,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,CAAC;SACvB;KACF;IACD,KAAK,EAAE;QACL,kCAAkC;QAClC,KAAK,EAAE,wBAAwB;QAE/B;;;WAGG;QACH,UAAU,EAAE,iBAAiB;KAC9B;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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { QueueEvent } from '@spinajs/queue';
|
|
2
2
|
import { DateTime } from 'luxon';
|
|
3
|
-
import { IEmail } from '../interfaces.js';
|
|
3
|
+
import { IEmail, IEmailTemplate } from '../interfaces.js';
|
|
4
4
|
export declare class EmailSent extends QueueEvent {
|
|
5
5
|
Connection?: string;
|
|
6
6
|
From: string;
|
|
@@ -8,7 +8,7 @@ export declare class EmailSent extends QueueEvent {
|
|
|
8
8
|
/**
|
|
9
9
|
* Email template eg. pug file or mustashe
|
|
10
10
|
*/
|
|
11
|
-
Template?: string;
|
|
11
|
+
Template?: string | IEmailTemplate;
|
|
12
12
|
/**
|
|
13
13
|
* Data model used in template
|
|
14
14
|
*/
|
|
@@ -1 +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;
|
|
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,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAE1D,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,GAAG,cAAc,CAAC;IAE1C;;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"}
|
package/lib/mjs/interfaces.d.ts
CHANGED
|
@@ -2,10 +2,14 @@ import { AsyncService, IMappableService } from '@spinajs/di';
|
|
|
2
2
|
import { Log } from '@spinajs/log';
|
|
3
3
|
import { QueueService } from '@spinajs/queue';
|
|
4
4
|
import { EmailSend } from './jobs/EmailSend.js';
|
|
5
|
+
import { fs } from '@spinajs/fs';
|
|
5
6
|
export declare abstract class EmailSender extends AsyncService implements IMappableService {
|
|
6
7
|
Options: EmailConnectionOptions;
|
|
8
|
+
protected defaultTemplateFsName: string;
|
|
9
|
+
protected defaultTemplateFs: fs;
|
|
7
10
|
get ServiceName(): string;
|
|
8
11
|
abstract send(email: IEmail): Promise<void>;
|
|
12
|
+
resolve(): Promise<void>;
|
|
9
13
|
}
|
|
10
14
|
export declare class BlackHoleEmailSender extends EmailSender {
|
|
11
15
|
Options: EmailConnectionOptions;
|
|
@@ -31,6 +35,19 @@ export interface IEmailAttachement {
|
|
|
31
35
|
*/
|
|
32
36
|
cid?: string;
|
|
33
37
|
}
|
|
38
|
+
/**
|
|
39
|
+
* Email template def if template is in different fs than default templateFs
|
|
40
|
+
*/
|
|
41
|
+
export interface IEmailTemplate {
|
|
42
|
+
/**
|
|
43
|
+
* Template name
|
|
44
|
+
*/
|
|
45
|
+
file: string;
|
|
46
|
+
/**
|
|
47
|
+
* Template filesystem to use
|
|
48
|
+
*/
|
|
49
|
+
fs: string;
|
|
50
|
+
}
|
|
34
51
|
export interface IEmail {
|
|
35
52
|
to: string[];
|
|
36
53
|
cc?: string[];
|
|
@@ -44,7 +61,7 @@ export interface IEmail {
|
|
|
44
61
|
/**
|
|
45
62
|
* Local template name. Must be avaible in one of dirs set in template config
|
|
46
63
|
*/
|
|
47
|
-
template?: string;
|
|
64
|
+
template?: string | IEmailTemplate;
|
|
48
65
|
/**
|
|
49
66
|
* Some implementations have predefined templates. It can be accessed by this Id
|
|
50
67
|
* eg. mailersend
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,
|
|
1
|
+
{"version":3,"file":"interfaces.d.ts","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":"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"}
|
package/lib/mjs/interfaces.js
CHANGED
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
var __metadata = (this && this.__metadata) || function (k, v) {
|
|
8
8
|
if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
|
|
9
9
|
};
|
|
10
|
-
import { AsyncService, Autoinject, Injectable, NewInstance } from '@spinajs/di';
|
|
10
|
+
import { AsyncService, Autoinject, DI, Injectable, NewInstance, ResolveException } from '@spinajs/di';
|
|
11
11
|
import { Log, Logger } from '@spinajs/log';
|
|
12
12
|
import { AutoinjectService, Config } from '@spinajs/configuration';
|
|
13
13
|
import { QueueService } from '@spinajs/queue';
|
|
@@ -15,7 +15,19 @@ export class EmailSender extends AsyncService {
|
|
|
15
15
|
get ServiceName() {
|
|
16
16
|
return this.Options.name;
|
|
17
17
|
}
|
|
18
|
+
async resolve() {
|
|
19
|
+
if (this.defaultTemplateFsName) {
|
|
20
|
+
this.defaultTemplateFs = DI.resolve("__file_provider__", [this.defaultTemplateFsName]);
|
|
21
|
+
if (!this.defaultTemplateFs) {
|
|
22
|
+
throw new ResolveException('Default email template filesystem ' + this.defaultTemplateFsName + ' not found. Please check your configuration for email.templateFs and make sure that fs provider with name ' + this.defaultTemplateFsName + ' is registered');
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
}
|
|
18
26
|
}
|
|
27
|
+
__decorate([
|
|
28
|
+
Config('email.templateFs'),
|
|
29
|
+
__metadata("design:type", String)
|
|
30
|
+
], EmailSender.prototype, "defaultTemplateFsName", void 0);
|
|
19
31
|
let BlackHoleEmailSender = class BlackHoleEmailSender extends EmailSender {
|
|
20
32
|
constructor(Options) {
|
|
21
33
|
super();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAoB,UAAU,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"interfaces.js","sourceRoot":"","sources":["../../src/interfaces.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,EAAoB,UAAU,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACxH,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,iBAAiB,EAAE,MAAM,EAAE,MAAM,wBAAwB,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAG9C,MAAM,OAAgB,WAAY,SAAQ,YAAY;IAQpD,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC;IAC3B,CAAC;IAIM,KAAK,CAAC,OAAO;QAClB,IAAI,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC/B,IAAI,CAAC,iBAAiB,GAAG,EAAE,CAAC,OAAO,CAAC,mBAAmB,EAAE,CAAC,IAAI,CAAC,qBAAqB,CAAC,CAAC,CAAC;YAEvF,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC;gBAC5B,MAAM,IAAI,gBAAgB,CAAC,oCAAoC,GAAG,IAAI,CAAC,qBAAqB,GAAG,4GAA4G,GAAG,IAAI,CAAC,qBAAqB,GAAG,gBAAgB,CAAC,CAAC;YAC/P,CAAC;QACH,CAAC;IACH,CAAC;CACF;AAnBW;IADT,MAAM,CAAC,kBAAkB,CAAC;;0DACa;AAuBnC,IAAM,oBAAoB,GAA1B,MAAM,oBAAqB,SAAQ,WAAW;IAKnD,YAAmB,OAA+B;QAChD,KAAK,EAAE,CAAC;QADS,YAAO,GAAP,OAAO,CAAwB;IAElD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,MAAc;QAC9B,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,MAAM,CAAC,OAAO,qBAAqB,CAAC,CAAC;QAC5D,OAAO;IACT,CAAC;CACF,CAAA;AAXW;IADT,MAAM,CAAC,OAAO,CAAC;8BACD,GAAG;iDAAC;AAFR,oBAAoB;IAFhC,UAAU,CAAC,WAAW,CAAC;IACvB,WAAW,EAAE;;GACD,oBAAoB,CAahC;;AAgKD,MAAM,OAAgB,YAAa,SAAQ,YAAY;CAmCtD;AAjCW;IADT,MAAM,CAAC,OAAO,CAAC;8BACD,GAAG;yCAAC;AAGT;IADT,iBAAiB,CAAC,mBAAmB,EAAE,WAAW,CAAC;8BACjC,GAAG;6CAAsB;AAGlC;IADT,MAAM,CAAC,OAAO,CAAC;;mDAC4B;AAGlC;IADT,UAAU,CAAC,YAAY,CAAC;8BACR,YAAY;2CAAC"}
|