@breadstone/archipel-platform-mailing 0.0.33 → 0.0.35
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/package.json +75 -40
- package/src/MailModule.d.ts +75 -0
- package/src/MailModule.js +80 -0
- package/src/{services/strategies → delivering/strategies/logger}/LogDeliveryStrategy.d.ts +2 -2
- package/src/{services/strategies → delivering/strategies/logger}/LogDeliveryStrategy.js +1 -1
- package/src/delivering/strategies/logger/index.d.ts +1 -0
- package/src/{logger → delivering/strategies/logger}/index.js +1 -1
- package/src/{services/strategies → delivering/strategies/mailgun}/MailgunDeliveryStrategy.d.ts +2 -2
- package/src/{services/strategies → delivering/strategies/mailgun}/MailgunDeliveryStrategy.js +3 -3
- package/src/delivering/strategies/mailgun/index.d.ts +2 -0
- package/src/{mailgun → delivering/strategies/mailgun}/index.js +3 -3
- package/src/{services/strategies → delivering/strategies/postmark}/PostmarkDeliveryStrategy.d.ts +2 -2
- package/src/{services/strategies → delivering/strategies/postmark}/PostmarkDeliveryStrategy.js +3 -3
- package/src/delivering/strategies/postmark/index.d.ts +2 -0
- package/src/{postmark → delivering/strategies/postmark}/index.js +3 -3
- package/src/{services/strategies → delivering/strategies/resend}/ResendDeliveryStrategy.d.ts +2 -2
- package/src/{services/strategies → delivering/strategies/resend}/ResendDeliveryStrategy.js +3 -3
- package/src/delivering/strategies/resend/index.d.ts +2 -0
- package/src/{resend → delivering/strategies/resend}/index.js +3 -3
- package/src/{services/strategies → delivering/strategies/sendgrid}/SendGridDeliveryStrategy.d.ts +2 -2
- package/src/{services/strategies → delivering/strategies/sendgrid}/SendGridDeliveryStrategy.js +3 -3
- package/src/delivering/strategies/sendgrid/index.d.ts +2 -0
- package/src/{sendgrid → delivering/strategies/sendgrid}/index.js +3 -3
- package/src/{services/strategies → delivering/strategies/smtp}/SmtpDeliveryStrategy.d.ts +2 -2
- package/src/{services/strategies → delivering/strategies/smtp}/SmtpDeliveryStrategy.js +3 -3
- package/src/{smtp → delivering/strategies/smtp}/index.d.ts +1 -1
- package/src/{smtp → delivering/strategies/smtp}/index.js +3 -3
- package/src/env.d.ts +0 -4
- package/src/env.js +3 -13
- package/src/events/IMailEvents.d.ts +12 -1
- package/src/events/listeners/MailEventSubscriber.js +2 -1
- package/src/index.d.ts +5 -5
- package/src/index.js +5 -4
- package/src/models/IMailTemplateVariants.d.ts +10 -0
- package/src/models/IMailTemplateVariants.js +3 -0
- package/src/models/MailTemplateFormat.d.ts +6 -0
- package/src/models/MailTemplateFormat.js +3 -0
- package/src/services/MailService.d.ts +8 -4
- package/src/services/MailService.js +15 -8
- package/src/templating/MailTemplateEngine.d.ts +10 -1
- package/src/templating/MailTemplateEngine.js +17 -7
- package/src/templating/strategies/abstracts/TemplateFetchStrategyBase.d.ts +2 -4
- package/src/templating/strategies/{BlobTemplateFetchStrategy.d.ts → blob/BlobTemplateFetchStrategy.d.ts} +2 -2
- package/src/templating/strategies/{BlobTemplateFetchStrategy.js → blob/BlobTemplateFetchStrategy.js} +1 -1
- package/src/templating/strategies/blob/index.d.ts +1 -0
- package/src/templating/strategies/blob/index.js +6 -0
- package/src/templating/strategies/{DatabaseTemplateFetchStrategy.d.ts → database/DatabaseTemplateFetchStrategy.d.ts} +3 -3
- package/src/templating/strategies/{DatabaseTemplateFetchStrategy.js → database/DatabaseTemplateFetchStrategy.js} +5 -2
- package/src/templating/strategies/database/index.d.ts +1 -0
- package/src/templating/strategies/database/index.js +6 -0
- package/src/templating/strategies/file/FileTemplateFetchStrategy.d.ts +23 -0
- package/src/templating/strategies/{FileTemplateFetchStrategy.js → file/FileTemplateFetchStrategy.js} +11 -16
- package/src/templating/strategies/file/index.d.ts +1 -0
- package/src/templating/strategies/file/index.js +6 -0
- package/src/{MailTokens.d.ts → tokens/MailTokens.d.ts} +1 -11
- package/src/{MailTokens.js → tokens/MailTokens.js} +2 -1
- package/src/logger/index.d.ts +0 -1
- package/src/mailgun/index.d.ts +0 -2
- package/src/postmark/index.d.ts +0 -2
- package/src/resend/index.d.ts +0 -2
- package/src/sendgrid/index.d.ts +0 -2
- package/src/templating/strategies/FileTemplateFetchStrategy.d.ts +0 -25
- package/src/tokens/MailModule.d.ts +0 -54
- package/src/tokens/MailModule.js +0 -125
- /package/src/{services → delivering}/strategies/abstracts/DeliveryStrategyBase.d.ts +0 -0
- /package/src/{services → delivering}/strategies/abstracts/DeliveryStrategyBase.js +0 -0
- /package/src/{mailgun → delivering/strategies/mailgun}/env.d.ts +0 -0
- /package/src/{mailgun → delivering/strategies/mailgun}/env.js +0 -0
- /package/src/{postmark → delivering/strategies/postmark}/env.d.ts +0 -0
- /package/src/{postmark → delivering/strategies/postmark}/env.js +0 -0
- /package/src/{resend → delivering/strategies/resend}/env.d.ts +0 -0
- /package/src/{resend → delivering/strategies/resend}/env.js +0 -0
- /package/src/{sendgrid → delivering/strategies/sendgrid}/env.d.ts +0 -0
- /package/src/{sendgrid → delivering/strategies/sendgrid}/env.js +0 -0
- /package/src/{smtp → delivering/strategies/smtp}/env.d.ts +0 -0
- /package/src/{smtp → delivering/strategies/smtp}/env.js +0 -0
package/package.json
CHANGED
|
@@ -1,29 +1,39 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@breadstone/archipel-platform-mailing",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.35",
|
|
4
4
|
"description": "Email delivery with strategy-based transport and template engines for NestJS applications.",
|
|
5
5
|
"type": "commonjs",
|
|
6
6
|
"main": "./src/index.js",
|
|
7
7
|
"types": "./src/index.d.ts",
|
|
8
|
+
"sideEffects": false,
|
|
8
9
|
"typesVersions": {
|
|
9
10
|
"*": {
|
|
10
|
-
"
|
|
11
|
-
"./src/
|
|
11
|
+
"delivering/logger": [
|
|
12
|
+
"./src/delivering/strategies/logger/index.d.ts"
|
|
12
13
|
],
|
|
13
|
-
"smtp": [
|
|
14
|
-
"./src/smtp/index.d.ts"
|
|
14
|
+
"delivering/smtp": [
|
|
15
|
+
"./src/delivering/strategies/smtp/index.d.ts"
|
|
15
16
|
],
|
|
16
|
-
"mailgun": [
|
|
17
|
-
"./src/mailgun/index.d.ts"
|
|
17
|
+
"delivering/mailgun": [
|
|
18
|
+
"./src/delivering/strategies/mailgun/index.d.ts"
|
|
18
19
|
],
|
|
19
|
-
"postmark": [
|
|
20
|
-
"./src/postmark/index.d.ts"
|
|
20
|
+
"delivering/postmark": [
|
|
21
|
+
"./src/delivering/strategies/postmark/index.d.ts"
|
|
21
22
|
],
|
|
22
|
-
"resend": [
|
|
23
|
-
"./src/resend/index.d.ts"
|
|
23
|
+
"delivering/resend": [
|
|
24
|
+
"./src/delivering/strategies/resend/index.d.ts"
|
|
24
25
|
],
|
|
25
|
-
"sendgrid": [
|
|
26
|
-
"./src/sendgrid/index.d.ts"
|
|
26
|
+
"delivering/sendgrid": [
|
|
27
|
+
"./src/delivering/strategies/sendgrid/index.d.ts"
|
|
28
|
+
],
|
|
29
|
+
"templating/blob": [
|
|
30
|
+
"./src/templating/strategies/blob/index.d.ts"
|
|
31
|
+
],
|
|
32
|
+
"templating/file": [
|
|
33
|
+
"./src/templating/strategies/file/index.d.ts"
|
|
34
|
+
],
|
|
35
|
+
"templating/database": [
|
|
36
|
+
"./src/templating/strategies/database/index.d.ts"
|
|
27
37
|
],
|
|
28
38
|
"health": [
|
|
29
39
|
"./src/health/index.d.ts"
|
|
@@ -35,40 +45,65 @@
|
|
|
35
45
|
"types": "./src/index.d.ts",
|
|
36
46
|
"default": "./src/index.js"
|
|
37
47
|
},
|
|
38
|
-
"./
|
|
39
|
-
"types": "./src/
|
|
40
|
-
"default": "./src/
|
|
48
|
+
"./delivering/logger": {
|
|
49
|
+
"types": "./src/delivering/strategies/logger/index.d.ts",
|
|
50
|
+
"default": "./src/delivering/strategies/logger/index.js"
|
|
51
|
+
},
|
|
52
|
+
"./delivering/smtp": {
|
|
53
|
+
"types": "./src/delivering/strategies/smtp/index.d.ts",
|
|
54
|
+
"default": "./src/delivering/strategies/smtp/index.js"
|
|
55
|
+
},
|
|
56
|
+
"./delivering/mailgun": {
|
|
57
|
+
"types": "./src/delivering/strategies/mailgun/index.d.ts",
|
|
58
|
+
"default": "./src/delivering/strategies/mailgun/index.js"
|
|
59
|
+
},
|
|
60
|
+
"./delivering/postmark": {
|
|
61
|
+
"types": "./src/delivering/strategies/postmark/index.d.ts",
|
|
62
|
+
"default": "./src/delivering/strategies/postmark/index.js"
|
|
41
63
|
},
|
|
42
|
-
"./
|
|
43
|
-
"types": "./src/
|
|
44
|
-
"default": "./src/
|
|
64
|
+
"./delivering/resend": {
|
|
65
|
+
"types": "./src/delivering/strategies/resend/index.d.ts",
|
|
66
|
+
"default": "./src/delivering/strategies/resend/index.js"
|
|
45
67
|
},
|
|
46
|
-
"./
|
|
47
|
-
"types": "./src/
|
|
48
|
-
"default": "./src/
|
|
68
|
+
"./delivering/sendgrid": {
|
|
69
|
+
"types": "./src/delivering/strategies/sendgrid/index.d.ts",
|
|
70
|
+
"default": "./src/delivering/strategies/sendgrid/index.js"
|
|
49
71
|
},
|
|
50
|
-
"./
|
|
51
|
-
"types": "./src/
|
|
52
|
-
"default": "./src/
|
|
72
|
+
"./templating/blob": {
|
|
73
|
+
"types": "./src/templating/strategies/blob/index.d.ts",
|
|
74
|
+
"default": "./src/templating/strategies/blob/index.js"
|
|
53
75
|
},
|
|
54
|
-
"./
|
|
55
|
-
"types": "./src/
|
|
56
|
-
"default": "./src/
|
|
76
|
+
"./templating/file": {
|
|
77
|
+
"types": "./src/templating/strategies/file/index.d.ts",
|
|
78
|
+
"default": "./src/templating/strategies/file/index.js"
|
|
57
79
|
},
|
|
58
|
-
"./
|
|
59
|
-
"types": "./src/
|
|
60
|
-
"default": "./src/
|
|
80
|
+
"./templating/database": {
|
|
81
|
+
"types": "./src/templating/strategies/database/index.d.ts",
|
|
82
|
+
"default": "./src/templating/strategies/database/index.js"
|
|
61
83
|
},
|
|
62
84
|
"./health": {
|
|
63
85
|
"types": "./src/health/index.d.ts",
|
|
64
86
|
"default": "./src/health/index.js"
|
|
65
87
|
},
|
|
66
88
|
"./package.json": "./package.json",
|
|
67
|
-
"./
|
|
68
|
-
"./
|
|
69
|
-
"./
|
|
70
|
-
"./
|
|
71
|
-
"./
|
|
89
|
+
"./delivering/strategies/logger": "./src/delivering/strategies/logger/index.js",
|
|
90
|
+
"./delivering/strategies/logger/index": "./src/delivering/strategies/logger/index.js",
|
|
91
|
+
"./delivering/strategies/smtp": "./src/delivering/strategies/smtp/index.js",
|
|
92
|
+
"./delivering/strategies/smtp/index": "./src/delivering/strategies/smtp/index.js",
|
|
93
|
+
"./delivering/strategies/postmark": "./src/delivering/strategies/postmark/index.js",
|
|
94
|
+
"./delivering/strategies/postmark/index": "./src/delivering/strategies/postmark/index.js",
|
|
95
|
+
"./delivering/strategies/resend": "./src/delivering/strategies/resend/index.js",
|
|
96
|
+
"./delivering/strategies/resend/index": "./src/delivering/strategies/resend/index.js",
|
|
97
|
+
"./delivering/strategies/sendgrid": "./src/delivering/strategies/sendgrid/index.js",
|
|
98
|
+
"./delivering/strategies/sendgrid/index": "./src/delivering/strategies/sendgrid/index.js",
|
|
99
|
+
"./delivering/strategies/mailgun": "./src/delivering/strategies/mailgun/index.js",
|
|
100
|
+
"./delivering/strategies/mailgun/index": "./src/delivering/strategies/mailgun/index.js",
|
|
101
|
+
"./templating/strategies/blob": "./src/templating/strategies/blob/index.js",
|
|
102
|
+
"./templating/strategies/blob/index": "./src/templating/strategies/blob/index.js",
|
|
103
|
+
"./templating/strategies/file": "./src/templating/strategies/file/index.js",
|
|
104
|
+
"./templating/strategies/file/index": "./src/templating/strategies/file/index.js",
|
|
105
|
+
"./templating/strategies/database": "./src/templating/strategies/database/index.js",
|
|
106
|
+
"./templating/strategies/database/index": "./src/templating/strategies/database/index.js",
|
|
72
107
|
"./health/index": "./src/health/index.js"
|
|
73
108
|
},
|
|
74
109
|
"license": "MIT",
|
|
@@ -99,10 +134,10 @@
|
|
|
99
134
|
"README.md"
|
|
100
135
|
],
|
|
101
136
|
"dependencies": {
|
|
102
|
-
"@breadstone/archipel-platform-blob-storage": "0.0.
|
|
103
|
-
"@breadstone/archipel-platform-configuration": "0.0.
|
|
104
|
-
"@breadstone/archipel-platform-core": "0.0.
|
|
105
|
-
"@breadstone/archipel-platform-resources": "0.0.
|
|
137
|
+
"@breadstone/archipel-platform-blob-storage": "0.0.35",
|
|
138
|
+
"@breadstone/archipel-platform-configuration": "0.0.35",
|
|
139
|
+
"@breadstone/archipel-platform-core": "0.0.35",
|
|
140
|
+
"@breadstone/archipel-platform-resources": "0.0.35",
|
|
106
141
|
"tslib": "2.8.1"
|
|
107
142
|
},
|
|
108
143
|
"peerDependencies": {
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import type { IConfigRegistryEntry } from '@breadstone/archipel-platform-configuration';
|
|
2
|
+
import { type DynamicModule, type Provider, type Type } from '@nestjs/common';
|
|
3
|
+
import type { DeliveryStrategyBase } from './delivering/strategies/abstracts/DeliveryStrategyBase';
|
|
4
|
+
import type { IMailTemplateRepository } from './ports/IMailTemplateRepository';
|
|
5
|
+
import type { TemplateFetchStrategyBase } from './templating/strategies/abstracts/TemplateFetchStrategyBase';
|
|
6
|
+
/**
|
|
7
|
+
* Options for configuring the {@link MailModule}.
|
|
8
|
+
*
|
|
9
|
+
* @public
|
|
10
|
+
*/
|
|
11
|
+
export interface IMailModuleOptions {
|
|
12
|
+
/**
|
|
13
|
+
* Concrete implementation of the {@link DeliveryStrategyBase} port.
|
|
14
|
+
* For example, `SmtpDeliveryStrategy`, `PostmarkDeliveryStrategy`, or `LogDeliveryStrategy`.
|
|
15
|
+
*/
|
|
16
|
+
readonly deliveryStrategy: Type<DeliveryStrategyBase>;
|
|
17
|
+
/**
|
|
18
|
+
* Concrete implementation of the {@link TemplateFetchStrategyBase} port.
|
|
19
|
+
* For example, `FileTemplateFetchStrategy`, `BlobTemplateFetchStrategy`, or `DatabaseTemplateFetchStrategy`.
|
|
20
|
+
*/
|
|
21
|
+
readonly templateFetchStrategy: Type<TemplateFetchStrategyBase>;
|
|
22
|
+
/**
|
|
23
|
+
* Whether to register the module globally.
|
|
24
|
+
* Defaults to `true`.
|
|
25
|
+
*/
|
|
26
|
+
readonly isGlobal?: boolean;
|
|
27
|
+
/**
|
|
28
|
+
* Provider-specific configuration entries to register with the config module.
|
|
29
|
+
*/
|
|
30
|
+
readonly configEntries?: ReadonlyArray<Omit<IConfigRegistryEntry, 'module'>>;
|
|
31
|
+
/**
|
|
32
|
+
* Template names to load when using the `FileTemplateFetchStrategy`.
|
|
33
|
+
* Each name corresponds to a resource file (e.g. `'AuthRegister'` loads
|
|
34
|
+
* `AuthRegister.html` and `AuthRegister.txt`).
|
|
35
|
+
*
|
|
36
|
+
* Defaults to an empty array (no templates loaded).
|
|
37
|
+
*/
|
|
38
|
+
readonly templateNames?: ReadonlyArray<string>;
|
|
39
|
+
/**
|
|
40
|
+
* Provider for the `IMailTemplateRepository` port.
|
|
41
|
+
* Required when using `DatabaseTemplateFetchStrategy`.
|
|
42
|
+
*
|
|
43
|
+
* Example:
|
|
44
|
+
* ```typescript
|
|
45
|
+
* MailModule.register({
|
|
46
|
+
* deliveryStrategy: SmtpDeliveryStrategy,
|
|
47
|
+
* templateFetchStrategy: DatabaseTemplateFetchStrategy,
|
|
48
|
+
* templateRepositoryProvider: {
|
|
49
|
+
* provide: MAIL_TEMPLATE_REPOSITORY_TOKEN,
|
|
50
|
+
* useClass: PrismaMailTemplateRepository,
|
|
51
|
+
* }
|
|
52
|
+
* })
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
readonly templateRepositoryProvider?: Provider<IMailTemplateRepository>;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Represents the mail module.
|
|
59
|
+
*
|
|
60
|
+
* Delivery and template strategies are selected at compile time via
|
|
61
|
+
* `IMailModuleOptions`. NestJS DI resolves the concrete classes.
|
|
62
|
+
*
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
export declare class MailModule {
|
|
66
|
+
/**
|
|
67
|
+
* Registers the mail module with the specified configuration.
|
|
68
|
+
*
|
|
69
|
+
* @param options - Module registration options.
|
|
70
|
+
* @returns A configured `DynamicModule`.
|
|
71
|
+
*
|
|
72
|
+
* @public
|
|
73
|
+
*/
|
|
74
|
+
static register(options: IMailModuleOptions): DynamicModule;
|
|
75
|
+
}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// #region Imports
|
|
3
|
+
var MailModule_1;
|
|
4
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
5
|
+
exports.MailModule = void 0;
|
|
6
|
+
const tslib_1 = require("tslib");
|
|
7
|
+
const archipel_platform_blob_storage_1 = require("@breadstone/archipel-platform-blob-storage");
|
|
8
|
+
const archipel_platform_configuration_1 = require("@breadstone/archipel-platform-configuration");
|
|
9
|
+
const archipel_platform_core_1 = require("@breadstone/archipel-platform-core");
|
|
10
|
+
const common_1 = require("@nestjs/common");
|
|
11
|
+
const env_1 = require("./env");
|
|
12
|
+
const MailEventSubscriber_1 = require("./events/listeners/MailEventSubscriber");
|
|
13
|
+
const MailService_1 = require("./services/MailService");
|
|
14
|
+
const MailVerificationService_1 = require("./services/MailVerificationService");
|
|
15
|
+
const SmtpConnectionVerifier_1 = require("./services/SmtpConnectionVerifier");
|
|
16
|
+
const MailTemplateEngine_1 = require("./templating/MailTemplateEngine");
|
|
17
|
+
const MailTokens_1 = require("./tokens/MailTokens");
|
|
18
|
+
/**
|
|
19
|
+
* Represents the mail module.
|
|
20
|
+
*
|
|
21
|
+
* Delivery and template strategies are selected at compile time via
|
|
22
|
+
* `IMailModuleOptions`. NestJS DI resolves the concrete classes.
|
|
23
|
+
*
|
|
24
|
+
* @public
|
|
25
|
+
*/
|
|
26
|
+
let MailModule = MailModule_1 = class MailModule {
|
|
27
|
+
// #region Methods
|
|
28
|
+
/**
|
|
29
|
+
* Registers the mail module with the specified configuration.
|
|
30
|
+
*
|
|
31
|
+
* @param options - Module registration options.
|
|
32
|
+
* @returns A configured `DynamicModule`.
|
|
33
|
+
*
|
|
34
|
+
* @public
|
|
35
|
+
*/
|
|
36
|
+
static register(options) {
|
|
37
|
+
const isGlobal = options.isGlobal ?? true;
|
|
38
|
+
const configEntries = options.configEntries ?? env_1.PLATFORM_MAILING_CONFIG_ENTRIES;
|
|
39
|
+
const providers = [
|
|
40
|
+
{
|
|
41
|
+
provide: MailTokens_1.MAIL_TEMPLATE_FETCH_STRATEGY_TOKEN,
|
|
42
|
+
useClass: options.templateFetchStrategy,
|
|
43
|
+
},
|
|
44
|
+
{
|
|
45
|
+
provide: MailTokens_1.MAIL_DELIVERY_STRATEGY_TOKEN,
|
|
46
|
+
useClass: options.deliveryStrategy,
|
|
47
|
+
},
|
|
48
|
+
{
|
|
49
|
+
provide: MailTokens_1.MAIL_TEMPLATE_NAMES_TOKEN,
|
|
50
|
+
useValue: options.templateNames ?? [],
|
|
51
|
+
},
|
|
52
|
+
archipel_platform_core_1.ContentTemplateEngine,
|
|
53
|
+
MailService_1.MailService,
|
|
54
|
+
MailTemplateEngine_1.MailTemplateEngine,
|
|
55
|
+
MailVerificationService_1.MailVerificationService,
|
|
56
|
+
SmtpConnectionVerifier_1.SmtpConnectionVerifier,
|
|
57
|
+
MailEventSubscriber_1.MailEventSubscriber,
|
|
58
|
+
];
|
|
59
|
+
const exports = [
|
|
60
|
+
MailService_1.MailService,
|
|
61
|
+
MailVerificationService_1.MailVerificationService,
|
|
62
|
+
SmtpConnectionVerifier_1.SmtpConnectionVerifier,
|
|
63
|
+
];
|
|
64
|
+
if (options.templateRepositoryProvider) {
|
|
65
|
+
providers.push(options.templateRepositoryProvider);
|
|
66
|
+
}
|
|
67
|
+
return {
|
|
68
|
+
module: MailModule_1,
|
|
69
|
+
global: isGlobal,
|
|
70
|
+
imports: [archipel_platform_configuration_1.ConfigModule.register('platform-mailing', configEntries), archipel_platform_blob_storage_1.BlobModule, archipel_platform_core_1.EventModule],
|
|
71
|
+
providers,
|
|
72
|
+
exports,
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
exports.MailModule = MailModule;
|
|
77
|
+
exports.MailModule = MailModule = MailModule_1 = tslib_1.__decorate([
|
|
78
|
+
(0, common_1.Module)({})
|
|
79
|
+
], MailModule);
|
|
80
|
+
//# sourceMappingURL=MailModule.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DeliveryStrategyBase } from '
|
|
1
|
+
import { DeliveryStrategyBase } from '../abstracts/DeliveryStrategyBase';
|
|
2
2
|
/**
|
|
3
3
|
* The `LogDeliveryStrategy` class.
|
|
4
4
|
*
|
|
@@ -12,5 +12,5 @@ export declare class LogDeliveryStrategy extends DeliveryStrategyBase {
|
|
|
12
12
|
* @public
|
|
13
13
|
*/
|
|
14
14
|
constructor();
|
|
15
|
-
send(from: string, to: string, subject: string, content: string, isHtml: boolean, _attachments?: Array<import('
|
|
15
|
+
send(from: string, to: string, subject: string, content: string, isHtml: boolean, _attachments?: Array<import('../../../models/IMailAttachment').IMailAttachment>): Promise<void>;
|
|
16
16
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
4
|
exports.LogDeliveryStrategy = void 0;
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
|
-
const DeliveryStrategyBase_1 = require("
|
|
6
|
+
const DeliveryStrategyBase_1 = require("../abstracts/DeliveryStrategyBase");
|
|
7
7
|
// #endregion
|
|
8
8
|
/**
|
|
9
9
|
* The `LogDeliveryStrategy` class.
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { LogDeliveryStrategy } from './LogDeliveryStrategy';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LogDeliveryStrategy = void 0;
|
|
4
|
-
var LogDeliveryStrategy_1 = require("
|
|
4
|
+
var LogDeliveryStrategy_1 = require("./LogDeliveryStrategy");
|
|
5
5
|
Object.defineProperty(exports, "LogDeliveryStrategy", { enumerable: true, get: function () { return LogDeliveryStrategy_1.LogDeliveryStrategy; } });
|
|
6
6
|
//# sourceMappingURL=index.js.map
|
package/src/{services/strategies → delivering/strategies/mailgun}/MailgunDeliveryStrategy.d.ts
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConfigService } from '@breadstone/archipel-platform-configuration';
|
|
2
|
-
import { DeliveryStrategyBase } from '
|
|
2
|
+
import { DeliveryStrategyBase } from '../abstracts/DeliveryStrategyBase';
|
|
3
3
|
/**
|
|
4
4
|
* Delivers emails via the Mailgun API.
|
|
5
5
|
*
|
|
@@ -25,5 +25,5 @@ export declare class MailgunDeliveryStrategy extends DeliveryStrategyBase {
|
|
|
25
25
|
* @param content - Email body content (plain text or HTML)
|
|
26
26
|
* @param isHtml - Flag to indicate whether the email is HTML (true) or plain text (false)
|
|
27
27
|
*/
|
|
28
|
-
send(from: string, to: string, subject: string, content: string, isHtml: boolean, _attachments?: Array<import('
|
|
28
|
+
send(from: string, to: string, subject: string, content: string, isHtml: boolean, _attachments?: Array<import('../../../models/IMailAttachment').IMailAttachment>): Promise<void>;
|
|
29
29
|
}
|
package/src/{services/strategies → delivering/strategies/mailgun}/MailgunDeliveryStrategy.js
RENAMED
|
@@ -6,9 +6,9 @@ const tslib_1 = require("tslib");
|
|
|
6
6
|
const common_1 = require("@nestjs/common");
|
|
7
7
|
const form_data_1 = tslib_1.__importDefault(require("form-data"));
|
|
8
8
|
const mailgun_js_1 = tslib_1.__importDefault(require("mailgun.js"));
|
|
9
|
-
const env_1 = require("
|
|
10
|
-
const MailDeliveryError_1 = require("
|
|
11
|
-
const DeliveryStrategyBase_1 = require("
|
|
9
|
+
const env_1 = require("../../../env");
|
|
10
|
+
const MailDeliveryError_1 = require("../../../errors/MailDeliveryError");
|
|
11
|
+
const DeliveryStrategyBase_1 = require("../abstracts/DeliveryStrategyBase");
|
|
12
12
|
// #endregion
|
|
13
13
|
/**
|
|
14
14
|
* Delivers emails via the Mailgun API.
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var MailgunDeliveryStrategy_1 = require("../services/strategies/MailgunDeliveryStrategy");
|
|
5
|
-
Object.defineProperty(exports, "MailgunDeliveryStrategy", { enumerable: true, get: function () { return MailgunDeliveryStrategy_1.MailgunDeliveryStrategy; } });
|
|
3
|
+
exports.MailgunDeliveryStrategy = exports.MAILGUN_DOMAIN = exports.MAILGUN_CONFIG_ENTRIES = exports.MAILGUN_API_KEY = void 0;
|
|
6
4
|
var env_1 = require("./env");
|
|
7
5
|
Object.defineProperty(exports, "MAILGUN_API_KEY", { enumerable: true, get: function () { return env_1.MAILGUN_API_KEY; } });
|
|
8
6
|
Object.defineProperty(exports, "MAILGUN_CONFIG_ENTRIES", { enumerable: true, get: function () { return env_1.MAILGUN_CONFIG_ENTRIES; } });
|
|
9
7
|
Object.defineProperty(exports, "MAILGUN_DOMAIN", { enumerable: true, get: function () { return env_1.MAILGUN_DOMAIN; } });
|
|
8
|
+
var MailgunDeliveryStrategy_1 = require("./MailgunDeliveryStrategy");
|
|
9
|
+
Object.defineProperty(exports, "MailgunDeliveryStrategy", { enumerable: true, get: function () { return MailgunDeliveryStrategy_1.MailgunDeliveryStrategy; } });
|
|
10
10
|
//# sourceMappingURL=index.js.map
|
package/src/{services/strategies → delivering/strategies/postmark}/PostmarkDeliveryStrategy.d.ts
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConfigService } from '@breadstone/archipel-platform-configuration';
|
|
2
|
-
import { DeliveryStrategyBase } from '
|
|
2
|
+
import { DeliveryStrategyBase } from '../abstracts/DeliveryStrategyBase';
|
|
3
3
|
/**
|
|
4
4
|
* The `PostmarkDeliveryStrategy` class.
|
|
5
5
|
*
|
|
@@ -24,5 +24,5 @@ export declare class PostmarkDeliveryStrategy extends DeliveryStrategyBase {
|
|
|
24
24
|
* @param content - Email body content (plain text or HTML)
|
|
25
25
|
* @param isHtml - Flag to indicate whether the email is HTML (true) or plain text (false)
|
|
26
26
|
*/
|
|
27
|
-
send(from: string, to: string, subject: string, content: string, isHtml: boolean, _attachments?: Array<import('
|
|
27
|
+
send(from: string, to: string, subject: string, content: string, isHtml: boolean, _attachments?: Array<import('../../../models/IMailAttachment').IMailAttachment>): Promise<void>;
|
|
28
28
|
}
|
package/src/{services/strategies → delivering/strategies/postmark}/PostmarkDeliveryStrategy.js
RENAMED
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.PostmarkDeliveryStrategy = void 0;
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
6
|
const postmark_1 = require("postmark");
|
|
7
|
-
const env_1 = require("
|
|
8
|
-
const MailDeliveryError_1 = require("
|
|
9
|
-
const DeliveryStrategyBase_1 = require("
|
|
7
|
+
const env_1 = require("../../../env");
|
|
8
|
+
const MailDeliveryError_1 = require("../../../errors/MailDeliveryError");
|
|
9
|
+
const DeliveryStrategyBase_1 = require("../abstracts/DeliveryStrategyBase");
|
|
10
10
|
// #endregion
|
|
11
11
|
/**
|
|
12
12
|
* The `PostmarkDeliveryStrategy` class.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var PostmarkDeliveryStrategy_1 = require("../services/strategies/PostmarkDeliveryStrategy");
|
|
5
|
-
Object.defineProperty(exports, "PostmarkDeliveryStrategy", { enumerable: true, get: function () { return PostmarkDeliveryStrategy_1.PostmarkDeliveryStrategy; } });
|
|
3
|
+
exports.PostmarkDeliveryStrategy = exports.POSTMARK_CONFIG_ENTRIES = exports.POSTMARK_API_KEY = void 0;
|
|
6
4
|
var env_1 = require("./env");
|
|
7
5
|
Object.defineProperty(exports, "POSTMARK_API_KEY", { enumerable: true, get: function () { return env_1.POSTMARK_API_KEY; } });
|
|
8
6
|
Object.defineProperty(exports, "POSTMARK_CONFIG_ENTRIES", { enumerable: true, get: function () { return env_1.POSTMARK_CONFIG_ENTRIES; } });
|
|
7
|
+
var PostmarkDeliveryStrategy_1 = require("./PostmarkDeliveryStrategy");
|
|
8
|
+
Object.defineProperty(exports, "PostmarkDeliveryStrategy", { enumerable: true, get: function () { return PostmarkDeliveryStrategy_1.PostmarkDeliveryStrategy; } });
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/src/{services/strategies → delivering/strategies/resend}/ResendDeliveryStrategy.d.ts
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConfigService } from '@breadstone/archipel-platform-configuration';
|
|
2
|
-
import { DeliveryStrategyBase } from '
|
|
2
|
+
import { DeliveryStrategyBase } from '../abstracts/DeliveryStrategyBase';
|
|
3
3
|
/**
|
|
4
4
|
* Delivers emails via the Resend API.
|
|
5
5
|
*
|
|
@@ -24,5 +24,5 @@ export declare class ResendDeliveryStrategy extends DeliveryStrategyBase {
|
|
|
24
24
|
* @param content - Email body content (plain text or HTML)
|
|
25
25
|
* @param isHtml - Flag to indicate whether the email is HTML (true) or plain text (false)
|
|
26
26
|
*/
|
|
27
|
-
send(from: string, to: string, subject: string, content: string, isHtml: boolean, _attachments?: Array<import('
|
|
27
|
+
send(from: string, to: string, subject: string, content: string, isHtml: boolean, _attachments?: Array<import('../../../models/IMailAttachment').IMailAttachment>): Promise<void>;
|
|
28
28
|
}
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.ResendDeliveryStrategy = void 0;
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
6
|
const resend_1 = require("resend");
|
|
7
|
-
const env_1 = require("
|
|
8
|
-
const MailDeliveryError_1 = require("
|
|
9
|
-
const DeliveryStrategyBase_1 = require("
|
|
7
|
+
const env_1 = require("../../../env");
|
|
8
|
+
const MailDeliveryError_1 = require("../../../errors/MailDeliveryError");
|
|
9
|
+
const DeliveryStrategyBase_1 = require("../abstracts/DeliveryStrategyBase");
|
|
10
10
|
// #endregion
|
|
11
11
|
/**
|
|
12
12
|
* Delivers emails via the Resend API.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var ResendDeliveryStrategy_1 = require("../services/strategies/ResendDeliveryStrategy");
|
|
5
|
-
Object.defineProperty(exports, "ResendDeliveryStrategy", { enumerable: true, get: function () { return ResendDeliveryStrategy_1.ResendDeliveryStrategy; } });
|
|
3
|
+
exports.ResendDeliveryStrategy = exports.RESEND_CONFIG_ENTRIES = exports.RESEND_API_KEY = void 0;
|
|
6
4
|
var env_1 = require("./env");
|
|
7
5
|
Object.defineProperty(exports, "RESEND_API_KEY", { enumerable: true, get: function () { return env_1.RESEND_API_KEY; } });
|
|
8
6
|
Object.defineProperty(exports, "RESEND_CONFIG_ENTRIES", { enumerable: true, get: function () { return env_1.RESEND_CONFIG_ENTRIES; } });
|
|
7
|
+
var ResendDeliveryStrategy_1 = require("./ResendDeliveryStrategy");
|
|
8
|
+
Object.defineProperty(exports, "ResendDeliveryStrategy", { enumerable: true, get: function () { return ResendDeliveryStrategy_1.ResendDeliveryStrategy; } });
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
package/src/{services/strategies → delivering/strategies/sendgrid}/SendGridDeliveryStrategy.d.ts
RENAMED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConfigService } from '@breadstone/archipel-platform-configuration';
|
|
2
|
-
import { DeliveryStrategyBase } from '
|
|
2
|
+
import { DeliveryStrategyBase } from '../abstracts/DeliveryStrategyBase';
|
|
3
3
|
/**
|
|
4
4
|
* Delivers emails via the SendGrid API.
|
|
5
5
|
*
|
|
@@ -23,5 +23,5 @@ export declare class SendGridDeliveryStrategy extends DeliveryStrategyBase {
|
|
|
23
23
|
* @param content - Email body content (plain text or HTML)
|
|
24
24
|
* @param isHtml - Flag to indicate whether the email is HTML (true) or plain text (false)
|
|
25
25
|
*/
|
|
26
|
-
send(from: string, to: string, subject: string, content: string, isHtml: boolean, _attachments?: Array<import('
|
|
26
|
+
send(from: string, to: string, subject: string, content: string, isHtml: boolean, _attachments?: Array<import('../../../models/IMailAttachment').IMailAttachment>): Promise<void>;
|
|
27
27
|
}
|
package/src/{services/strategies → delivering/strategies/sendgrid}/SendGridDeliveryStrategy.js
RENAMED
|
@@ -5,9 +5,9 @@ exports.SendGridDeliveryStrategy = void 0;
|
|
|
5
5
|
const tslib_1 = require("tslib");
|
|
6
6
|
const common_1 = require("@nestjs/common");
|
|
7
7
|
const mail_1 = tslib_1.__importDefault(require("@sendgrid/mail"));
|
|
8
|
-
const env_1 = require("
|
|
9
|
-
const MailDeliveryError_1 = require("
|
|
10
|
-
const DeliveryStrategyBase_1 = require("
|
|
8
|
+
const env_1 = require("../../../env");
|
|
9
|
+
const MailDeliveryError_1 = require("../../../errors/MailDeliveryError");
|
|
10
|
+
const DeliveryStrategyBase_1 = require("../abstracts/DeliveryStrategyBase");
|
|
11
11
|
// #endregion
|
|
12
12
|
/**
|
|
13
13
|
* Delivers emails via the SendGrid API.
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
4
|
-
var SendGridDeliveryStrategy_1 = require("../services/strategies/SendGridDeliveryStrategy");
|
|
5
|
-
Object.defineProperty(exports, "SendGridDeliveryStrategy", { enumerable: true, get: function () { return SendGridDeliveryStrategy_1.SendGridDeliveryStrategy; } });
|
|
3
|
+
exports.SendGridDeliveryStrategy = exports.SENDGRID_CONFIG_ENTRIES = exports.SENDGRID_API_KEY = void 0;
|
|
6
4
|
var env_1 = require("./env");
|
|
7
5
|
Object.defineProperty(exports, "SENDGRID_API_KEY", { enumerable: true, get: function () { return env_1.SENDGRID_API_KEY; } });
|
|
8
6
|
Object.defineProperty(exports, "SENDGRID_CONFIG_ENTRIES", { enumerable: true, get: function () { return env_1.SENDGRID_CONFIG_ENTRIES; } });
|
|
7
|
+
var SendGridDeliveryStrategy_1 = require("./SendGridDeliveryStrategy");
|
|
8
|
+
Object.defineProperty(exports, "SendGridDeliveryStrategy", { enumerable: true, get: function () { return SendGridDeliveryStrategy_1.SendGridDeliveryStrategy; } });
|
|
9
9
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { ConfigService } from '@breadstone/archipel-platform-configuration';
|
|
2
|
-
import { DeliveryStrategyBase } from '
|
|
2
|
+
import { DeliveryStrategyBase } from '../abstracts/DeliveryStrategyBase';
|
|
3
3
|
/**
|
|
4
4
|
* The `SmtpDeliveryStrategy` class.
|
|
5
5
|
*
|
|
@@ -24,5 +24,5 @@ export declare class SmtpDeliveryStrategy extends DeliveryStrategyBase {
|
|
|
24
24
|
* @param content - Email body content (plain text or HTML)
|
|
25
25
|
* @param isHtml - Flag to indicate whether the email is HTML (true) or plain text (false)
|
|
26
26
|
*/
|
|
27
|
-
send(from: string, to: string, subject: string, content: string, isHtml: boolean, _attachments?: Array<import('
|
|
27
|
+
send(from: string, to: string, subject: string, content: string, isHtml: boolean, _attachments?: Array<import('../../../models/IMailAttachment').IMailAttachment>): Promise<void>;
|
|
28
28
|
}
|
|
@@ -4,9 +4,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
4
4
|
exports.SmtpDeliveryStrategy = void 0;
|
|
5
5
|
const common_1 = require("@nestjs/common");
|
|
6
6
|
const nodemailer_1 = require("nodemailer");
|
|
7
|
-
const env_1 = require("
|
|
8
|
-
const MailDeliveryError_1 = require("
|
|
9
|
-
const DeliveryStrategyBase_1 = require("
|
|
7
|
+
const env_1 = require("../../../env");
|
|
8
|
+
const MailDeliveryError_1 = require("../../../errors/MailDeliveryError");
|
|
9
|
+
const DeliveryStrategyBase_1 = require("../abstracts/DeliveryStrategyBase");
|
|
10
10
|
// #endregion
|
|
11
11
|
/**
|
|
12
12
|
* The `SmtpDeliveryStrategy` class.
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.SMTP_USER = exports.SMTP_SECURE = exports.SMTP_PORT = exports.SMTP_PASSWORD = exports.SMTP_HOST = exports.SMTP_CONFIG_ENTRIES =
|
|
4
|
-
var SmtpDeliveryStrategy_1 = require("../services/strategies/SmtpDeliveryStrategy");
|
|
5
|
-
Object.defineProperty(exports, "SmtpDeliveryStrategy", { enumerable: true, get: function () { return SmtpDeliveryStrategy_1.SmtpDeliveryStrategy; } });
|
|
3
|
+
exports.SmtpDeliveryStrategy = exports.SMTP_USER = exports.SMTP_SECURE = exports.SMTP_PORT = exports.SMTP_PASSWORD = exports.SMTP_HOST = exports.SMTP_CONFIG_ENTRIES = void 0;
|
|
6
4
|
var env_1 = require("./env");
|
|
7
5
|
Object.defineProperty(exports, "SMTP_CONFIG_ENTRIES", { enumerable: true, get: function () { return env_1.SMTP_CONFIG_ENTRIES; } });
|
|
8
6
|
Object.defineProperty(exports, "SMTP_HOST", { enumerable: true, get: function () { return env_1.SMTP_HOST; } });
|
|
@@ -10,4 +8,6 @@ Object.defineProperty(exports, "SMTP_PASSWORD", { enumerable: true, get: functio
|
|
|
10
8
|
Object.defineProperty(exports, "SMTP_PORT", { enumerable: true, get: function () { return env_1.SMTP_PORT; } });
|
|
11
9
|
Object.defineProperty(exports, "SMTP_SECURE", { enumerable: true, get: function () { return env_1.SMTP_SECURE; } });
|
|
12
10
|
Object.defineProperty(exports, "SMTP_USER", { enumerable: true, get: function () { return env_1.SMTP_USER; } });
|
|
11
|
+
var SmtpDeliveryStrategy_1 = require("./SmtpDeliveryStrategy");
|
|
12
|
+
Object.defineProperty(exports, "SmtpDeliveryStrategy", { enumerable: true, get: function () { return SmtpDeliveryStrategy_1.SmtpDeliveryStrategy; } });
|
|
13
13
|
//# sourceMappingURL=index.js.map
|
package/src/env.d.ts
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
1
|
import { IConfigRegistryEntry } from '@breadstone/archipel-platform-configuration';
|
|
2
|
-
/** Which template-fetch strategy to use (e.g. `file`, `blob`). */
|
|
3
|
-
export declare const MAIL_TEMPLATE_STRATEGY: import("@breadstone/archipel-platform-configuration").IConfigKey<string>;
|
|
4
|
-
/** Which delivery strategy to use (e.g. `smtp`, `postmark`, `resend`, `sendgrid`, `mailgun`, `log`). */
|
|
5
|
-
export declare const MAIL_DELIVERY_STRATEGY: import("@breadstone/archipel-platform-configuration").IConfigKey<string>;
|
|
6
2
|
/** Sender e-mail address shown in the `From` header. */
|
|
7
3
|
export declare const MAIL_SENDER_EMAIL: import("@breadstone/archipel-platform-configuration").IConfigKey<string>;
|
|
8
4
|
/** Template engine format identifier (e.g. `handlebars`). */
|