@nocobase/plugin-workflow-mailer 2.3.0-beta.13 → 2.3.0-beta.15
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/externalVersion.js +6 -6
- package/dist/node_modules/joi/package.json +1 -1
- package/dist/node_modules/nodemailer/dist/cjs/addressparser/index.d.ts +59 -0
- package/dist/node_modules/nodemailer/dist/cjs/addressparser/index.js +790 -0
- package/dist/node_modules/nodemailer/dist/cjs/base64/index.d.ts +36 -0
- package/dist/node_modules/nodemailer/dist/cjs/base64/index.js +119 -0
- package/dist/node_modules/nodemailer/dist/cjs/dkim/index.d.ts +52 -0
- package/dist/node_modules/nodemailer/dist/cjs/dkim/index.js +228 -0
- package/dist/node_modules/nodemailer/dist/cjs/dkim/message-parser.d.ts +48 -0
- package/dist/node_modules/nodemailer/dist/cjs/dkim/message-parser.js +180 -0
- package/dist/node_modules/nodemailer/dist/cjs/dkim/relaxed-body.d.ts +36 -0
- package/dist/node_modules/nodemailer/dist/cjs/dkim/relaxed-body.js +148 -0
- package/dist/node_modules/nodemailer/dist/cjs/dkim/sign.d.ts +52 -0
- package/dist/node_modules/nodemailer/dist/cjs/dkim/sign.js +165 -0
- package/dist/node_modules/nodemailer/dist/cjs/errors.d.ts +96 -0
- package/dist/node_modules/nodemailer/dist/cjs/errors.js +70 -0
- package/dist/node_modules/nodemailer/dist/cjs/fetch/cookies.d.ts +107 -0
- package/dist/node_modules/nodemailer/dist/cjs/fetch/cookies.js +282 -0
- package/dist/node_modules/nodemailer/dist/cjs/fetch/index.d.ts +65 -0
- package/dist/node_modules/nodemailer/dist/cjs/fetch/index.js +384 -0
- package/dist/node_modules/nodemailer/dist/cjs/json-transport/index.d.ts +64 -0
- package/dist/node_modules/nodemailer/dist/cjs/json-transport/index.js +99 -0
- package/dist/node_modules/nodemailer/dist/cjs/mail-composer/index.d.ts +174 -0
- package/dist/node_modules/nodemailer/dist/cjs/mail-composer/index.js +613 -0
- package/dist/node_modules/nodemailer/dist/cjs/mailer/index.d.ts +237 -0
- package/dist/node_modules/nodemailer/dist/cjs/mailer/index.js +415 -0
- package/dist/node_modules/nodemailer/dist/cjs/mailer/mail-message.d.ts +97 -0
- package/dist/node_modules/nodemailer/dist/cjs/mailer/mail-message.js +342 -0
- package/dist/node_modules/nodemailer/dist/cjs/mime-funcs/index.d.ts +161 -0
- package/dist/node_modules/nodemailer/dist/cjs/mime-funcs/index.js +787 -0
- package/dist/node_modules/nodemailer/dist/cjs/mime-funcs/mime-types.d.ts +2 -0
- package/dist/node_modules/nodemailer/dist/cjs/mime-funcs/mime-types.js +2103 -0
- package/dist/node_modules/nodemailer/dist/cjs/mime-node/index.d.ts +333 -0
- package/dist/node_modules/nodemailer/dist/cjs/mime-node/index.js +1493 -0
- package/dist/node_modules/nodemailer/dist/cjs/mime-node/last-newline.d.ts +5 -0
- package/dist/node_modules/nodemailer/dist/cjs/mime-node/last-newline.js +32 -0
- package/dist/node_modules/nodemailer/dist/cjs/mime-node/le-unix.d.ts +9 -0
- package/dist/node_modules/nodemailer/dist/cjs/mime-node/le-unix.js +40 -0
- package/dist/node_modules/nodemailer/dist/cjs/mime-node/le-windows.d.ts +10 -0
- package/dist/node_modules/nodemailer/dist/cjs/mime-node/le-windows.js +47 -0
- package/dist/node_modules/nodemailer/dist/cjs/nodemailer.d.ts +124 -0
- package/dist/node_modules/nodemailer/dist/cjs/nodemailer.js +1 -0
- package/dist/node_modules/nodemailer/dist/cjs/package-info.d.ts +3 -0
- package/dist/node_modules/nodemailer/dist/cjs/package-info.js +7 -0
- package/dist/node_modules/nodemailer/dist/cjs/package.json +3 -0
- package/dist/node_modules/nodemailer/dist/cjs/punycode/index.d.ts +73 -0
- package/dist/node_modules/nodemailer/{lib → dist/cjs}/punycode/index.js +62 -111
- package/dist/node_modules/nodemailer/dist/cjs/qp/index.d.ts +32 -0
- package/dist/node_modules/nodemailer/dist/cjs/qp/index.js +207 -0
- package/dist/node_modules/nodemailer/dist/cjs/sendmail-transport/index.d.ts +69 -0
- package/dist/node_modules/nodemailer/dist/cjs/sendmail-transport/index.js +210 -0
- package/dist/node_modules/nodemailer/dist/cjs/ses-transport/index.d.ts +112 -0
- package/dist/node_modules/nodemailer/dist/cjs/ses-transport/index.js +252 -0
- package/dist/node_modules/nodemailer/dist/cjs/shared/index.d.ts +260 -0
- package/dist/node_modules/nodemailer/dist/cjs/shared/index.js +680 -0
- package/dist/node_modules/nodemailer/dist/cjs/shared/objects.d.ts +23 -0
- package/dist/node_modules/nodemailer/dist/cjs/shared/objects.js +43 -0
- package/dist/node_modules/nodemailer/dist/cjs/shared/url.d.ts +21 -0
- package/dist/node_modules/nodemailer/dist/cjs/shared/url.js +255 -0
- package/dist/node_modules/nodemailer/dist/cjs/smtp-connection/data-stream.d.ts +15 -0
- package/dist/node_modules/nodemailer/dist/cjs/smtp-connection/data-stream.js +108 -0
- package/dist/node_modules/nodemailer/dist/cjs/smtp-connection/http-proxy-client.d.ts +47 -0
- package/dist/node_modules/nodemailer/dist/cjs/smtp-connection/http-proxy-client.js +189 -0
- package/dist/node_modules/nodemailer/dist/cjs/smtp-connection/index.d.ts +416 -0
- package/dist/node_modules/nodemailer/dist/cjs/smtp-connection/index.js +1837 -0
- package/dist/node_modules/nodemailer/dist/cjs/smtp-pool/index.d.ts +133 -0
- package/dist/node_modules/nodemailer/dist/cjs/smtp-pool/index.js +569 -0
- package/dist/node_modules/nodemailer/dist/cjs/smtp-pool/pool-resource.d.ts +62 -0
- package/dist/node_modules/nodemailer/dist/cjs/smtp-pool/pool-resource.js +257 -0
- package/dist/node_modules/nodemailer/dist/cjs/smtp-transport/index.d.ts +156 -0
- package/dist/node_modules/nodemailer/dist/cjs/smtp-transport/index.js +371 -0
- package/dist/node_modules/nodemailer/dist/cjs/stream-transport/index.d.ts +65 -0
- package/dist/node_modules/nodemailer/dist/cjs/stream-transport/index.js +146 -0
- package/dist/node_modules/nodemailer/dist/cjs/well-known/index.d.ts +35 -0
- package/dist/node_modules/nodemailer/dist/cjs/well-known/index.js +41 -0
- package/dist/node_modules/nodemailer/dist/cjs/well-known/services.d.ts +2 -0
- package/dist/node_modules/nodemailer/dist/cjs/well-known/services.js +674 -0
- package/dist/node_modules/nodemailer/dist/cjs/xoauth2/index.d.ts +201 -0
- package/dist/node_modules/nodemailer/dist/cjs/xoauth2/index.js +426 -0
- package/dist/node_modules/nodemailer/dist/esm/addressparser/index.d.ts +59 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/addressparser/index.js +361 -131
- package/dist/node_modules/nodemailer/dist/esm/base64/index.d.ts +36 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/base64/index.js +31 -56
- package/dist/node_modules/nodemailer/dist/esm/dkim/index.d.ts +52 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/dkim/index.js +49 -78
- package/dist/node_modules/nodemailer/dist/esm/dkim/message-parser.d.ts +48 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/dkim/message-parser.js +64 -42
- package/dist/node_modules/nodemailer/dist/esm/dkim/relaxed-body.d.ts +36 -0
- package/dist/node_modules/nodemailer/dist/esm/dkim/relaxed-body.js +141 -0
- package/dist/node_modules/nodemailer/dist/esm/dkim/sign.d.ts +52 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/dkim/sign.js +50 -46
- package/dist/node_modules/nodemailer/dist/esm/errors.d.ts +96 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/errors.js +26 -18
- package/dist/node_modules/nodemailer/dist/esm/fetch/cookies.d.ts +107 -0
- package/dist/node_modules/nodemailer/dist/esm/fetch/cookies.js +242 -0
- package/dist/node_modules/nodemailer/dist/esm/fetch/index.d.ts +65 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/fetch/index.js +80 -147
- package/dist/node_modules/nodemailer/dist/esm/json-transport/index.d.ts +64 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/json-transport/index.js +19 -39
- package/dist/node_modules/nodemailer/dist/esm/mail-composer/index.d.ts +174 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/mail-composer/index.js +199 -265
- package/dist/node_modules/nodemailer/dist/esm/mailer/index.d.ts +237 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/mailer/index.js +128 -234
- package/dist/node_modules/nodemailer/dist/esm/mailer/mail-message.d.ts +97 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/mailer/mail-message.js +62 -114
- package/dist/node_modules/nodemailer/dist/esm/mime-funcs/index.d.ts +161 -0
- package/dist/node_modules/nodemailer/dist/esm/mime-funcs/index.js +738 -0
- package/dist/node_modules/nodemailer/dist/esm/mime-funcs/mime-types.d.ts +2 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/mime-funcs/mime-types.js +29 -42
- package/dist/node_modules/nodemailer/dist/esm/mime-node/index.d.ts +333 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/mime-node/index.js +259 -372
- package/dist/node_modules/nodemailer/dist/esm/mime-node/last-newline.d.ts +5 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/mime-node/last-newline.js +4 -10
- package/dist/node_modules/nodemailer/dist/esm/mime-node/le-unix.d.ts +9 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/mime-node/le-unix.js +6 -11
- package/dist/node_modules/nodemailer/dist/esm/mime-node/le-windows.d.ts +10 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/mime-node/le-windows.js +6 -13
- package/dist/node_modules/nodemailer/dist/esm/nodemailer.d.ts +124 -0
- package/dist/node_modules/nodemailer/dist/esm/nodemailer.js +166 -0
- package/dist/node_modules/nodemailer/dist/esm/package-info.d.ts +3 -0
- package/dist/node_modules/nodemailer/dist/esm/package-info.js +4 -0
- package/dist/node_modules/nodemailer/dist/esm/package.json +3 -0
- package/dist/node_modules/nodemailer/dist/esm/punycode/index.d.ts +73 -0
- package/dist/node_modules/nodemailer/dist/esm/punycode/index.js +405 -0
- package/dist/node_modules/nodemailer/dist/esm/qp/index.d.ts +32 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/qp/index.js +38 -67
- package/dist/node_modules/nodemailer/dist/esm/sendmail-transport/index.d.ts +69 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/sendmail-transport/index.js +51 -101
- package/dist/node_modules/nodemailer/dist/esm/ses-transport/index.d.ts +112 -0
- package/dist/node_modules/nodemailer/dist/esm/ses-transport/index.js +212 -0
- package/dist/node_modules/nodemailer/dist/esm/shared/index.d.ts +260 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/shared/index.js +156 -272
- package/dist/node_modules/nodemailer/dist/esm/shared/objects.d.ts +23 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/shared/objects.js +13 -17
- package/dist/node_modules/nodemailer/dist/esm/shared/url.d.ts +21 -0
- package/dist/node_modules/nodemailer/dist/esm/shared/url.js +214 -0
- package/dist/node_modules/nodemailer/dist/esm/smtp-connection/data-stream.d.ts +15 -0
- package/dist/node_modules/nodemailer/dist/esm/smtp-connection/data-stream.js +103 -0
- package/dist/node_modules/nodemailer/dist/esm/smtp-connection/http-proxy-client.d.ts +47 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/smtp-connection/http-proxy-client.js +49 -74
- package/dist/node_modules/nodemailer/dist/esm/smtp-connection/index.d.ts +416 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/smtp-connection/index.js +574 -794
- package/dist/node_modules/nodemailer/dist/esm/smtp-pool/index.d.ts +133 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/smtp-pool/index.js +172 -284
- package/dist/node_modules/nodemailer/dist/esm/smtp-pool/pool-resource.d.ts +62 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/smtp-pool/pool-resource.js +57 -97
- package/dist/node_modules/nodemailer/dist/esm/smtp-transport/index.d.ts +156 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/smtp-transport/index.js +81 -179
- package/dist/node_modules/nodemailer/dist/esm/stream-transport/index.d.ts +65 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/stream-transport/index.js +36 -74
- package/dist/node_modules/nodemailer/dist/esm/well-known/index.d.ts +35 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/well-known/index.js +5 -16
- package/dist/node_modules/nodemailer/dist/esm/well-known/services.d.ts +2 -0
- package/dist/node_modules/nodemailer/dist/esm/well-known/services.js +671 -0
- package/dist/node_modules/nodemailer/dist/esm/xoauth2/index.d.ts +201 -0
- package/dist/node_modules/nodemailer/{lib → dist/esm}/xoauth2/index.js +125 -187
- package/dist/node_modules/nodemailer/{lib → dist}/well-known/services.json +9 -2
- package/dist/node_modules/nodemailer/package.json +1 -1
- package/package.json +3 -3
- package/dist/node_modules/nodemailer/.gitattributes +0 -6
- package/dist/node_modules/nodemailer/.ncurc.js +0 -9
- package/dist/node_modules/nodemailer/.prettierignore +0 -8
- package/dist/node_modules/nodemailer/.prettierrc +0 -12
- package/dist/node_modules/nodemailer/.prettierrc.js +0 -10
- package/dist/node_modules/nodemailer/.release-please-config.json +0 -9
- package/dist/node_modules/nodemailer/eslint.config.js +0 -88
- package/dist/node_modules/nodemailer/lib/dkim/relaxed-body.js +0 -154
- package/dist/node_modules/nodemailer/lib/fetch/cookies.js +0 -276
- package/dist/node_modules/nodemailer/lib/mime-funcs/index.js +0 -671
- package/dist/node_modules/nodemailer/lib/nodemailer.js +0 -1
- package/dist/node_modules/nodemailer/lib/ses-transport/index.js +0 -266
- package/dist/node_modules/nodemailer/lib/shared/url.js +0 -151
- package/dist/node_modules/nodemailer/lib/smtp-connection/data-stream.js +0 -105
|
@@ -1,10 +1,7 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const LeWindows = require('../mime-node/le-windows');
|
|
6
|
-
const LeUnix = require('../mime-node/le-unix');
|
|
7
|
-
|
|
1
|
+
import * as packageData from '../package-info.js';
|
|
2
|
+
import * as shared from '../shared/index.js';
|
|
3
|
+
import LeWindows from '../mime-node/le-windows.js';
|
|
4
|
+
import LeUnix from '../mime-node/le-unix.js';
|
|
8
5
|
/**
|
|
9
6
|
* Generates a Transport object for streaming
|
|
10
7
|
*
|
|
@@ -14,55 +11,41 @@ const LeUnix = require('../mime-node/le-unix');
|
|
|
14
11
|
* * **newline** either 'windows' or 'unix'
|
|
15
12
|
*
|
|
16
13
|
* @constructor
|
|
17
|
-
* @param
|
|
14
|
+
* @param optional config parameter
|
|
18
15
|
*/
|
|
19
16
|
class StreamTransport {
|
|
20
17
|
constructor(options) {
|
|
21
18
|
options = options || {};
|
|
22
|
-
|
|
23
19
|
this.options = options;
|
|
24
|
-
|
|
25
20
|
this.name = 'StreamTransport';
|
|
26
21
|
this.version = packageData.version;
|
|
27
|
-
|
|
28
22
|
this.logger = shared.getLogger(this.options, {
|
|
29
23
|
component: this.options.component || 'stream-transport'
|
|
30
24
|
});
|
|
31
|
-
|
|
32
25
|
this.winbreak = ['win', 'windows', 'dos', '\r\n'].includes((options.newline || '').toString().toLowerCase());
|
|
33
26
|
}
|
|
34
|
-
|
|
35
27
|
/**
|
|
36
28
|
* Compiles a mailcomposer message and forwards it to handler that sends it
|
|
37
29
|
*
|
|
38
|
-
* @param
|
|
39
|
-
* @param
|
|
30
|
+
* @param mail MailComposer object
|
|
31
|
+
* @param done Callback function to run when the sending is completed
|
|
40
32
|
*/
|
|
41
33
|
send(mail, done) {
|
|
42
|
-
// We probably need this in the output
|
|
34
|
+
// We probably need this in the output. send() runs after the message was compiled,
|
|
35
|
+
// so mail.message is set
|
|
43
36
|
mail.message.keepBcc = true;
|
|
44
|
-
|
|
45
37
|
const envelope = mail.message.getEnvelope();
|
|
46
38
|
const messageId = mail.message.messageId();
|
|
47
|
-
|
|
48
39
|
const recipients = [].concat(envelope.to || []);
|
|
49
40
|
if (recipients.length > 3) {
|
|
50
41
|
recipients.push('...and ' + recipients.splice(2).length + ' more');
|
|
51
42
|
}
|
|
52
|
-
this.logger.info(
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
},
|
|
57
|
-
'Sending message %s to <%s> using %s line breaks',
|
|
58
|
-
messageId,
|
|
59
|
-
recipients.join(', '),
|
|
60
|
-
this.winbreak ? '<CR><LF>' : '<LF>'
|
|
61
|
-
);
|
|
62
|
-
|
|
43
|
+
this.logger.info({
|
|
44
|
+
tnx: 'send',
|
|
45
|
+
messageId
|
|
46
|
+
}, 'Sending message %s to <%s> using %s line breaks', messageId, recipients.join(', '), this.winbreak ? '<CR><LF>' : '<LF>');
|
|
63
47
|
setImmediate(() => {
|
|
64
48
|
let stream;
|
|
65
|
-
|
|
66
49
|
try {
|
|
67
50
|
stream = mail.message.createReadStream();
|
|
68
51
|
if (this.options.newline) {
|
|
@@ -72,32 +55,22 @@ class StreamTransport {
|
|
|
72
55
|
stream = sourceStream.pipe(this.winbreak ? new LeWindows() : new LeUnix());
|
|
73
56
|
sourceStream.once('error', err => stream.emit('error', err));
|
|
74
57
|
}
|
|
75
|
-
}
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
'Creating send stream failed for %s. %s',
|
|
83
|
-
messageId,
|
|
84
|
-
E.message
|
|
85
|
-
);
|
|
58
|
+
}
|
|
59
|
+
catch (E) {
|
|
60
|
+
this.logger.error({
|
|
61
|
+
err: E,
|
|
62
|
+
tnx: 'send',
|
|
63
|
+
messageId
|
|
64
|
+
}, 'Creating send stream failed for %s. %s', messageId, E.message);
|
|
86
65
|
return done(E);
|
|
87
66
|
}
|
|
88
|
-
|
|
89
67
|
if (!this.options.buffer) {
|
|
90
68
|
stream.once('error', err => {
|
|
91
|
-
this.logger.error(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
},
|
|
97
|
-
'Failed creating message for %s. %s',
|
|
98
|
-
messageId,
|
|
99
|
-
err.message
|
|
100
|
-
);
|
|
69
|
+
this.logger.error({
|
|
70
|
+
err,
|
|
71
|
+
tnx: 'send',
|
|
72
|
+
messageId
|
|
73
|
+
}, 'Failed creating message for %s. %s', messageId, err.message);
|
|
101
74
|
});
|
|
102
75
|
return done(null, {
|
|
103
76
|
envelope,
|
|
@@ -105,7 +78,6 @@ class StreamTransport {
|
|
|
105
78
|
message: stream
|
|
106
79
|
});
|
|
107
80
|
}
|
|
108
|
-
|
|
109
81
|
const chunks = [];
|
|
110
82
|
let chunklen = 0;
|
|
111
83
|
stream.on('readable', () => {
|
|
@@ -115,30 +87,20 @@ class StreamTransport {
|
|
|
115
87
|
chunklen += chunk.length;
|
|
116
88
|
}
|
|
117
89
|
});
|
|
118
|
-
|
|
119
90
|
stream.once('error', err => {
|
|
120
|
-
this.logger.error(
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
},
|
|
126
|
-
'Failed creating message for %s. %s',
|
|
127
|
-
messageId,
|
|
128
|
-
err.message
|
|
129
|
-
);
|
|
91
|
+
this.logger.error({
|
|
92
|
+
err,
|
|
93
|
+
tnx: 'send',
|
|
94
|
+
messageId
|
|
95
|
+
}, 'Failed creating message for %s. %s', messageId, err.message);
|
|
130
96
|
return done(err);
|
|
131
97
|
});
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
message: Buffer.concat(chunks, chunklen)
|
|
138
|
-
})
|
|
139
|
-
);
|
|
98
|
+
stream.on('end', () => done(null, {
|
|
99
|
+
envelope,
|
|
100
|
+
messageId,
|
|
101
|
+
message: Buffer.concat(chunks, chunklen)
|
|
102
|
+
}));
|
|
140
103
|
});
|
|
141
104
|
}
|
|
142
105
|
}
|
|
143
|
-
|
|
144
|
-
module.exports = StreamTransport;
|
|
106
|
+
export default StreamTransport;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Connection settings of a well-known e-mail service
|
|
3
|
+
*/
|
|
4
|
+
export interface WellKnownServiceDefinition {
|
|
5
|
+
/** Human readable description of the service */
|
|
6
|
+
description?: string | undefined;
|
|
7
|
+
/** Domains of e-mail addresses hosted by the service */
|
|
8
|
+
domains?: string[] | undefined;
|
|
9
|
+
/** Alternative names the service can be looked up by */
|
|
10
|
+
aliases?: string[] | undefined;
|
|
11
|
+
/** SMTP hostname */
|
|
12
|
+
host?: string | undefined;
|
|
13
|
+
/** SMTP port (a numeric string in a few entries) */
|
|
14
|
+
port?: number | string | undefined;
|
|
15
|
+
/** true for implicit TLS (usually port 465) */
|
|
16
|
+
secure?: boolean | undefined;
|
|
17
|
+
/** Preferred authentication method */
|
|
18
|
+
authMethod?: string | undefined;
|
|
19
|
+
/** Set to true to require STARTTLS on a plaintext connection */
|
|
20
|
+
requireTLS?: boolean | undefined;
|
|
21
|
+
/** Set to true to skip STARTTLS */
|
|
22
|
+
ignoreTLS?: boolean | undefined;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* SMTP settings of a well-known service, without the lookup keys
|
|
26
|
+
*/
|
|
27
|
+
export type WellKnownService = Omit<WellKnownServiceDefinition, 'domains' | 'aliases'>;
|
|
28
|
+
/**
|
|
29
|
+
* Resolves SMTP config for given key. Key can be a name (like 'Gmail'), alias (like 'Google Mail') or
|
|
30
|
+
* an email address (like 'test@googlemail.com').
|
|
31
|
+
*
|
|
32
|
+
* @param key Service name, alias or an email address
|
|
33
|
+
* @returns SMTP config or false if not found
|
|
34
|
+
*/
|
|
35
|
+
export default function wellKnown(key: string): WellKnownService | false;
|
|
@@ -1,47 +1,36 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
const services = require('./services.json');
|
|
1
|
+
import { services } from './services.js';
|
|
4
2
|
const normalized = {};
|
|
5
|
-
|
|
6
3
|
Object.keys(services).forEach(key => {
|
|
7
4
|
const service = services[key];
|
|
8
5
|
const normalizedService = normalizeService(service);
|
|
9
|
-
|
|
10
6
|
normalized[normalizeKey(key)] = normalizedService;
|
|
11
|
-
|
|
12
7
|
[].concat(service.aliases || []).forEach(alias => {
|
|
13
8
|
normalized[normalizeKey(alias)] = normalizedService;
|
|
14
9
|
});
|
|
15
|
-
|
|
16
10
|
[].concat(service.domains || []).forEach(domain => {
|
|
17
11
|
normalized[normalizeKey(domain)] = normalizedService;
|
|
18
12
|
});
|
|
19
13
|
});
|
|
20
|
-
|
|
21
14
|
function normalizeKey(key) {
|
|
22
15
|
return key.replace(/[^a-zA-Z0-9.-]/g, '').toLowerCase();
|
|
23
16
|
}
|
|
24
|
-
|
|
25
17
|
function normalizeService(service) {
|
|
26
18
|
const response = {};
|
|
27
|
-
|
|
28
19
|
Object.keys(service).forEach(key => {
|
|
29
20
|
if (!['domains', 'aliases'].includes(key)) {
|
|
30
21
|
response[key] = service[key];
|
|
31
22
|
}
|
|
32
23
|
});
|
|
33
|
-
|
|
34
24
|
return response;
|
|
35
25
|
}
|
|
36
|
-
|
|
37
26
|
/**
|
|
38
27
|
* Resolves SMTP config for given key. Key can be a name (like 'Gmail'), alias (like 'Google Mail') or
|
|
39
28
|
* an email address (like 'test@googlemail.com').
|
|
40
29
|
*
|
|
41
|
-
* @param
|
|
42
|
-
* @returns
|
|
30
|
+
* @param key Service name, alias or an email address
|
|
31
|
+
* @returns SMTP config or false if not found
|
|
43
32
|
*/
|
|
44
|
-
|
|
33
|
+
export default function wellKnown(key) {
|
|
45
34
|
key = normalizeKey(key.split('@').pop());
|
|
46
35
|
return normalized[key] || false;
|
|
47
|
-
}
|
|
36
|
+
}
|