@strapi/provider-email-mailgun 4.9.1 → 4.9.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +23 -0
- package/dist/index.js +55 -0
- package/dist/index.js.map +1 -0
- package/package.json +20 -8
- package/.eslintignore +0 -2
- package/.eslintrc.js +0 -4
- package/lib/index.js +0 -54
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
interface Settings {
|
|
2
|
+
defaultFrom: string;
|
|
3
|
+
defaultReplyTo: string;
|
|
4
|
+
}
|
|
5
|
+
interface SendOptions {
|
|
6
|
+
from?: string;
|
|
7
|
+
to: string;
|
|
8
|
+
cc: string;
|
|
9
|
+
bcc: string;
|
|
10
|
+
replyTo?: string;
|
|
11
|
+
subject: string;
|
|
12
|
+
text: string;
|
|
13
|
+
html: string;
|
|
14
|
+
[key: string]: unknown;
|
|
15
|
+
}
|
|
16
|
+
declare type ProviderOptions = Record<string, unknown>;
|
|
17
|
+
declare const _default: {
|
|
18
|
+
convertProviderOptions(providerOptions: ProviderOptions): Record<string, unknown>;
|
|
19
|
+
init(providerOptions: ProviderOptions, settings: Settings): {
|
|
20
|
+
send(options: SendOptions): Promise<import("mailgun.js/interfaces/Messages").MessagesSendResult>;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
export = _default;
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
const form_data_1 = __importDefault(require("form-data"));
|
|
6
|
+
const mailgun_js_1 = __importDefault(require("mailgun.js"));
|
|
7
|
+
const utils_1 = __importDefault(require("@strapi/utils"));
|
|
8
|
+
const optionsMap = {
|
|
9
|
+
apiKey: { field: 'key', fn: (value) => `${value}` },
|
|
10
|
+
host: { field: 'url', fn: (value) => `https://${value || 'api.mailgun.net'}` },
|
|
11
|
+
};
|
|
12
|
+
module.exports = {
|
|
13
|
+
convertProviderOptions(providerOptions) {
|
|
14
|
+
const newOptions = {};
|
|
15
|
+
if (typeof providerOptions === 'object') {
|
|
16
|
+
Object.keys(providerOptions).forEach((key) => {
|
|
17
|
+
if (Object.keys(optionsMap).includes(key)) {
|
|
18
|
+
newOptions[optionsMap[key].field] = optionsMap[key].fn(providerOptions[key]);
|
|
19
|
+
}
|
|
20
|
+
else {
|
|
21
|
+
newOptions[key] = providerOptions[key];
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return newOptions;
|
|
26
|
+
},
|
|
27
|
+
init(providerOptions, settings) {
|
|
28
|
+
const defaults = {
|
|
29
|
+
username: 'api',
|
|
30
|
+
};
|
|
31
|
+
const mailgun = new mailgun_js_1.default(form_data_1.default);
|
|
32
|
+
const mg = mailgun.client({
|
|
33
|
+
...defaults,
|
|
34
|
+
...this.convertProviderOptions(providerOptions),
|
|
35
|
+
});
|
|
36
|
+
return {
|
|
37
|
+
send(options) {
|
|
38
|
+
const { from, to, cc, bcc, replyTo, subject, text, html, ...rest } = options;
|
|
39
|
+
const data = {
|
|
40
|
+
from: from || settings.defaultFrom,
|
|
41
|
+
to,
|
|
42
|
+
cc,
|
|
43
|
+
bcc,
|
|
44
|
+
'h:Reply-To': replyTo || settings.defaultReplyTo,
|
|
45
|
+
subject,
|
|
46
|
+
text,
|
|
47
|
+
html,
|
|
48
|
+
...rest,
|
|
49
|
+
};
|
|
50
|
+
return mg.messages.create(providerOptions.domain, utils_1.default.removeUndefined(data));
|
|
51
|
+
},
|
|
52
|
+
};
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;AAAA,0DAAiC;AACjC,4DAAiC;AACjC,0DAAkC;AA4BlC,MAAM,UAAU,GAAuC;IACrD,MAAM,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,GAAG,KAAK,EAAE,EAAE;IACnD,IAAI,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,WAAW,KAAK,IAAI,iBAAiB,EAAE,EAAE;CAC/E,CAAC;AAEF,iBAAS;IACP,sBAAsB,CAAC,eAAgC;QACrD,MAAM,UAAU,GAA4B,EAAE,CAAC;QAC/C,IAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;YACvC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;gBAC3C,IAAI,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE;oBACzC,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;iBAC9E;qBAAM;oBACL,UAAU,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,GAAG,CAAC,CAAC;iBACxC;YACH,CAAC,CAAC,CAAC;SACJ;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI,CAAC,eAAgC,EAAE,QAAkB;QACvD,MAAM,QAAQ,GAAG;YACf,QAAQ,EAAE,KAAK;SAChB,CAAC;QAEF,MAAM,OAAO,GAAG,IAAI,oBAAO,CAAC,mBAAQ,CAAC,CAAC;QACtC,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;YACxB,GAAG,QAAQ;YACX,GAAG,IAAI,CAAC,sBAAsB,CAAC,eAAe,CAAC;SACrC,CAAC,CAAC;QAEd,OAAO;YACL,IAAI,CAAC,OAAoB;gBACvB,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,GAAG,IAAI,EAAE,GAAG,OAAO,CAAC;gBAE7E,MAAM,IAAI,GAAG;oBACX,IAAI,EAAE,IAAI,IAAI,QAAQ,CAAC,WAAW;oBAClC,EAAE;oBACF,EAAE;oBACF,GAAG;oBACH,YAAY,EAAE,OAAO,IAAI,QAAQ,CAAC,cAAc;oBAChD,OAAO;oBACP,IAAI;oBACJ,IAAI;oBACJ,GAAG,IAAI;iBACc,CAAC;gBAExB,OAAO,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,eAAe,CAAC,MAAgB,EAAE,eAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;YAC3F,CAAC;SACF,CAAC;IACJ,CAAC;CACF,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@strapi/provider-email-mailgun",
|
|
3
|
-
"version": "4.9.
|
|
3
|
+
"version": "4.9.2",
|
|
4
4
|
"description": "Mailgun provider for strapi email plugin",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"email",
|
|
@@ -28,21 +28,33 @@
|
|
|
28
28
|
"url": "https://strapi.io"
|
|
29
29
|
}
|
|
30
30
|
],
|
|
31
|
-
"main": "./
|
|
32
|
-
"
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
"main": "./dist/index.js",
|
|
32
|
+
"types": "./dist/index.d.ts",
|
|
33
|
+
"files": [
|
|
34
|
+
"./dist"
|
|
35
|
+
],
|
|
35
36
|
"scripts": {
|
|
37
|
+
"build": "run -T tsc",
|
|
38
|
+
"build:ts": "run -T tsc",
|
|
39
|
+
"watch": "run -T tsc -w --preserveWatchOutput",
|
|
40
|
+
"clean": "run -T rimraf ./dist",
|
|
41
|
+
"prepublishOnly": "yarn clean && yarn build",
|
|
42
|
+
"test:unit": "run -T jest",
|
|
43
|
+
"test:unit:watch": "run -T jest --watch",
|
|
36
44
|
"lint": "run -T eslint ."
|
|
37
45
|
},
|
|
38
46
|
"dependencies": {
|
|
39
|
-
"@strapi/utils": "4.9.
|
|
47
|
+
"@strapi/utils": "4.9.2",
|
|
40
48
|
"form-data": "^4.0.0",
|
|
41
|
-
"mailgun.js": "
|
|
49
|
+
"mailgun.js": "8.2.1"
|
|
50
|
+
},
|
|
51
|
+
"devDependencies": {
|
|
52
|
+
"eslint-config-custom": "4.9.2",
|
|
53
|
+
"tsconfig": "4.9.2"
|
|
42
54
|
},
|
|
43
55
|
"engines": {
|
|
44
56
|
"node": ">=14.19.1 <=18.x.x",
|
|
45
57
|
"npm": ">=6.0.0"
|
|
46
58
|
},
|
|
47
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "91e0be2708e4d1e8ec731c75e73e54c0dfacb67d"
|
|
48
60
|
}
|
package/.eslintignore
DELETED
package/.eslintrc.js
DELETED
package/lib/index.js
DELETED
|
@@ -1,54 +0,0 @@
|
|
|
1
|
-
'use strict';
|
|
2
|
-
|
|
3
|
-
const formData = require('form-data');
|
|
4
|
-
const Mailgun = require('mailgun.js');
|
|
5
|
-
const { removeUndefined } = require('@strapi/utils');
|
|
6
|
-
|
|
7
|
-
const optionsMap = {
|
|
8
|
-
apiKey: { field: 'key', fn: (value) => value },
|
|
9
|
-
host: { field: 'url', fn: (value) => `https://${value || 'api.mailgun.net'}` },
|
|
10
|
-
};
|
|
11
|
-
|
|
12
|
-
module.exports = {
|
|
13
|
-
convertProviderOptions(providerOptions = {}) {
|
|
14
|
-
const newOptions = {};
|
|
15
|
-
if (typeof providerOptions === 'object') {
|
|
16
|
-
Object.keys(providerOptions).forEach((key) => {
|
|
17
|
-
if (Object.keys(optionsMap).includes(key)) {
|
|
18
|
-
newOptions[optionsMap[key].field] = optionsMap[key].fn(providerOptions[key]);
|
|
19
|
-
} else {
|
|
20
|
-
newOptions[key] = providerOptions[key];
|
|
21
|
-
}
|
|
22
|
-
});
|
|
23
|
-
}
|
|
24
|
-
return newOptions;
|
|
25
|
-
},
|
|
26
|
-
|
|
27
|
-
init(providerOptions = {}, settings = {}) {
|
|
28
|
-
const defaults = {
|
|
29
|
-
username: 'api',
|
|
30
|
-
};
|
|
31
|
-
const mailgun = new Mailgun(formData);
|
|
32
|
-
const mg = mailgun.client({ ...defaults, ...this.convertProviderOptions(providerOptions) });
|
|
33
|
-
|
|
34
|
-
return {
|
|
35
|
-
send(options) {
|
|
36
|
-
const { from, to, cc, bcc, replyTo, subject, text, html, ...rest } = options;
|
|
37
|
-
|
|
38
|
-
const data = {
|
|
39
|
-
from: from || settings.defaultFrom,
|
|
40
|
-
to,
|
|
41
|
-
cc,
|
|
42
|
-
bcc,
|
|
43
|
-
'h:Reply-To': replyTo || settings.defaultReplyTo,
|
|
44
|
-
subject,
|
|
45
|
-
text,
|
|
46
|
-
html,
|
|
47
|
-
...rest,
|
|
48
|
-
};
|
|
49
|
-
|
|
50
|
-
return mg.messages.create(providerOptions.domain, removeUndefined(data));
|
|
51
|
-
},
|
|
52
|
-
};
|
|
53
|
-
},
|
|
54
|
-
};
|