prostgles-server 4.2.162 → 4.2.163
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/Auth/sendEmail.d.ts +7 -0
- package/dist/Auth/sendEmail.d.ts.map +1 -1
- package/dist/Auth/sendEmail.js +8 -3
- package/dist/Auth/sendEmail.js.map +1 -1
- package/dist/Auth/setEmailProvider.d.ts.map +1 -1
- package/dist/Auth/setEmailProvider.js +16 -0
- package/dist/Auth/setEmailProvider.js.map +1 -1
- package/lib/Auth/sendEmail.ts +6 -2
- package/lib/Auth/setEmailProvider.ts +17 -1
- package/package.json +1 -1
package/dist/Auth/sendEmail.d.ts
CHANGED
|
@@ -1,7 +1,14 @@
|
|
|
1
1
|
import { Email, SMTPConfig } from "./AuthTypes";
|
|
2
|
+
import nodemailer from "nodemailer";
|
|
3
|
+
import SESTransport from "nodemailer/lib/ses-transport";
|
|
4
|
+
type SESTransporter = nodemailer.Transporter<SESTransport.SentMessageInfo, SESTransport.Options>;
|
|
5
|
+
type SMTPTransporter = nodemailer.Transporter<nodemailer.SentMessageInfo, nodemailer.TransportOptions>;
|
|
6
|
+
type Transporter = SESTransporter | SMTPTransporter;
|
|
2
7
|
/**
|
|
3
8
|
* Allows sending emails using nodemailer default config or AWS SES
|
|
4
9
|
* https://www.nodemailer.com/transports/ses/
|
|
5
10
|
*/
|
|
6
11
|
export declare const sendEmail: (smptConfig: SMTPConfig, email: Email) => Promise<unknown>;
|
|
12
|
+
export declare const getOrSetTransporter: (smptConfig: SMTPConfig) => Transporter;
|
|
13
|
+
export {};
|
|
7
14
|
//# sourceMappingURL=sendEmail.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendEmail.d.ts","sourceRoot":"","sources":["../../lib/Auth/sendEmail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"sendEmail.d.ts","sourceRoot":"","sources":["../../lib/Auth/sendEmail.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAChD,OAAO,UAAU,MAAM,YAAY,CAAC;AAEpC,OAAO,YAAY,MAAM,8BAA8B,CAAC;AAExD,KAAK,cAAc,GAAI,UAAU,CAAC,WAAW,CAAC,YAAY,CAAC,eAAe,EAAE,YAAY,CAAC,OAAO,CAAC,CAAC;AAClG,KAAK,eAAe,GAAG,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,eAAe,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC;AACvG,KAAK,WAAW,GAAG,cAAc,GAAG,eAAe,CAAC;AAIpD;;;GAGG;AACH,eAAO,MAAM,SAAS,eAAgB,UAAU,SAAS,KAAK,qBAG7D,CAAA;AAED,eAAO,MAAM,mBAAmB,eAAgB,UAAU,gBAOzD,CAAA"}
|
package/dist/Auth/sendEmail.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.sendEmail = void 0;
|
|
3
|
+
exports.getOrSetTransporter = exports.sendEmail = void 0;
|
|
4
4
|
const nodemailer_1 = require("nodemailer");
|
|
5
5
|
const client_ses_1 = require("@aws-sdk/client-ses");
|
|
6
6
|
const transporterCache = new Map();
|
|
@@ -9,14 +9,19 @@ const transporterCache = new Map();
|
|
|
9
9
|
* https://www.nodemailer.com/transports/ses/
|
|
10
10
|
*/
|
|
11
11
|
const sendEmail = (smptConfig, email) => {
|
|
12
|
+
const transporter = (0, exports.getOrSetTransporter)(smptConfig);
|
|
13
|
+
return send(transporter, email);
|
|
14
|
+
};
|
|
15
|
+
exports.sendEmail = sendEmail;
|
|
16
|
+
const getOrSetTransporter = (smptConfig) => {
|
|
12
17
|
const configStr = JSON.stringify(smptConfig);
|
|
13
18
|
const transporter = transporterCache.get(configStr) ?? getTransporter(smptConfig);
|
|
14
19
|
if (!transporterCache.has(configStr)) {
|
|
15
20
|
transporterCache.set(configStr, transporter);
|
|
16
21
|
}
|
|
17
|
-
return
|
|
22
|
+
return transporter;
|
|
18
23
|
};
|
|
19
|
-
exports.
|
|
24
|
+
exports.getOrSetTransporter = getOrSetTransporter;
|
|
20
25
|
const getTransporter = (smptConfig) => {
|
|
21
26
|
let transporter;
|
|
22
27
|
if (smptConfig.type === "aws-ses") {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sendEmail.js","sourceRoot":"","sources":["../../lib/Auth/sendEmail.ts"],"names":[],"mappings":";;;AACA,2CAAoC;AACpC,oDAAsC;AAOtC,MAAM,gBAAgB,GAA6B,IAAI,GAAG,EAAE,CAAC;AAE7D;;;GAGG;AACI,MAAM,SAAS,GAAG,CAAC,UAAsB,EAAE,KAAY,EAAE,EAAE;IAChE,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IAClF,IAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAC,CAAC;QACnC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC/C,CAAC;
|
|
1
|
+
{"version":3,"file":"sendEmail.js","sourceRoot":"","sources":["../../lib/Auth/sendEmail.ts"],"names":[],"mappings":";;;AACA,2CAAoC;AACpC,oDAAsC;AAOtC,MAAM,gBAAgB,GAA6B,IAAI,GAAG,EAAE,CAAC;AAE7D;;;GAGG;AACI,MAAM,SAAS,GAAG,CAAC,UAAsB,EAAE,KAAY,EAAE,EAAE;IAChE,MAAM,WAAW,GAAG,IAAA,2BAAmB,EAAC,UAAU,CAAC,CAAC;IACpD,OAAO,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;AAClC,CAAC,CAAA;AAHY,QAAA,SAAS,aAGrB;AAEM,MAAM,mBAAmB,GAAG,CAAC,UAAsB,EAAE,EAAE;IAC5D,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;IAC7C,MAAM,WAAW,GAAG,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,cAAc,CAAC,UAAU,CAAC,CAAC;IAClF,IAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,CAAC,EAAC,CAAC;QACnC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IAC/C,CAAC;IACD,OAAO,WAAW,CAAC;AACrB,CAAC,CAAA;AAPY,QAAA,mBAAmB,uBAO/B;AAED,MAAM,cAAc,GAAG,CAAC,UAAsB,EAAE,EAAE;IAChD,IAAI,WAAoC,CAAC;IACzC,IAAG,UAAU,CAAC,IAAI,KAAK,SAAS,EAAC,CAAC;QAChC,MAAM,EACJ,MAAM,EACN,WAAW,EACX,eAAe;QACf;;WAEG;QACH,WAAW,GAAG,CAAC,EAChB,GAAG,UAAU,CAAC;QACf,MAAM,GAAG,GAAG,IAAI,oBAAG,CAAC,GAAG,CAAC;YACtB,UAAU,EAAE,YAAY;YACxB,MAAM;YACN,WAAW,EAAE;gBACX,WAAW;gBACX,eAAe;aAChB;SACF,CAAC,CAAC;QAEH,WAAW,GAAG,oBAAU,CAAC,eAAe,CAAC;YACvC,GAAG,EAAE,EAAE,GAAG,EAAE,GAAG,EAAH,oBAAG,EAAE;YACjB,cAAc,EAAE,CAAC;YACjB,WAAW;SACZ,CAAC,CAAC;IAEL,CAAC;SAAM,CAAC;QACN,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,UAAU,CAAC;QACtD,WAAW,GAAG,oBAAU,CAAC,eAAe,CAAC;YACvC,IAAI;YACJ,IAAI;YACJ,MAAM;YACN,IAAI,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE;SACrB,CAAC,CAAC;IACL,CAAC;IAED,OAAO,WAAW,CAAC;AACrB,CAAC,CAAA;AAED,MAAM,IAAI,GAAG,CAAC,WAAwB,EAAE,KAAY,EAAE,EAAE;IACtD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QACrC,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;YAC5B,IAAI,WAAW,CAAC,MAAM,EAAE,EAAE,CAAC;gBACzB,WAAW,CAAC,QAAQ,CAClB,KAAK,EACL,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE;oBACZ,IAAG,GAAG,EAAC,CAAC;wBACN,MAAM,CAAC,GAAG,CAAC,CAAC;oBACd,CAAC;yBAAM,CAAC;wBACN,OAAO,CAAC,IAAI,CAAC,CAAC;oBAChB,CAAC;gBACH,CAAC,CACF,CAAC;YACJ,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;AACL,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setEmailProvider.d.ts","sourceRoot":"","sources":["../../lib/Auth/setEmailProvider.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,SAAS,CAAC;AACxB,OAAO,EAA0B,WAAW,EAAa,MAAM,eAAe,CAAC;AAK/E,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,
|
|
1
|
+
{"version":3,"file":"setEmailProvider.d.ts","sourceRoot":"","sources":["../../lib/Auth/setEmailProvider.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,SAAS,CAAC;AACxB,OAAO,EAA0B,WAAW,EAAa,MAAM,eAAe,CAAC;AAK/E,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,iBAoEvE"}
|
|
@@ -11,6 +11,14 @@ async function setEmailProvider(app) {
|
|
|
11
11
|
if (websiteUrl) {
|
|
12
12
|
await checkDmarc(websiteUrl);
|
|
13
13
|
}
|
|
14
|
+
if (email.signupType === "withPassword") {
|
|
15
|
+
if (email.emailConfirmation) {
|
|
16
|
+
tryGetTransporter(email.emailConfirmation.smtp);
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
else {
|
|
20
|
+
tryGetTransporter(email.emailMagicLink.smtp);
|
|
21
|
+
}
|
|
14
22
|
app.post(AuthHandler_1.AUTH_ROUTES_AND_PARAMS.emailSignup, async (req, res) => {
|
|
15
23
|
const { username, password } = req.body;
|
|
16
24
|
let validationError = "";
|
|
@@ -83,4 +91,12 @@ const checkDmarc = async (websiteUrl) => {
|
|
|
83
91
|
console.log("DMARC set to reject");
|
|
84
92
|
}
|
|
85
93
|
};
|
|
94
|
+
const tryGetTransporter = (smtp) => {
|
|
95
|
+
try {
|
|
96
|
+
(0, sendEmail_1.getOrSetTransporter)(smtp);
|
|
97
|
+
}
|
|
98
|
+
catch (err) {
|
|
99
|
+
console.error("Failed to set email transporter", err);
|
|
100
|
+
}
|
|
101
|
+
};
|
|
86
102
|
//# sourceMappingURL=setEmailProvider.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setEmailProvider.js","sourceRoot":"","sources":["../../lib/Auth/setEmailProvider.ts"],"names":[],"mappings":";;;AACA,+CAA+E;AAE/E,
|
|
1
|
+
{"version":3,"file":"setEmailProvider.js","sourceRoot":"","sources":["../../lib/Auth/setEmailProvider.ts"],"names":[],"mappings":"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"}
|
package/lib/Auth/sendEmail.ts
CHANGED
|
@@ -14,13 +14,17 @@ const transporterCache: Map<string, Transporter> = new Map();
|
|
|
14
14
|
* https://www.nodemailer.com/transports/ses/
|
|
15
15
|
*/
|
|
16
16
|
export const sendEmail = (smptConfig: SMTPConfig, email: Email) => {
|
|
17
|
+
const transporter = getOrSetTransporter(smptConfig);
|
|
18
|
+
return send(transporter, email);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
export const getOrSetTransporter = (smptConfig: SMTPConfig) => {
|
|
17
22
|
const configStr = JSON.stringify(smptConfig);
|
|
18
23
|
const transporter = transporterCache.get(configStr) ?? getTransporter(smptConfig);
|
|
19
24
|
if(!transporterCache.has(configStr)){
|
|
20
25
|
transporterCache.set(configStr, transporter);
|
|
21
26
|
}
|
|
22
|
-
|
|
23
|
-
return send(transporter, email);
|
|
27
|
+
return transporter;
|
|
24
28
|
}
|
|
25
29
|
|
|
26
30
|
const getTransporter = (smptConfig: SMTPConfig) => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import e from "express";
|
|
2
2
|
import { AUTH_ROUTES_AND_PARAMS, AuthHandler, HTTPCODES } from "./AuthHandler";
|
|
3
3
|
import { Email, SMTPConfig } from "./AuthTypes";
|
|
4
|
-
import { sendEmail } from "./sendEmail";
|
|
4
|
+
import { getOrSetTransporter, sendEmail } from "./sendEmail";
|
|
5
5
|
import { promises } from "node:dns";
|
|
6
6
|
|
|
7
7
|
export async function setEmailProvider(this: AuthHandler, app: e.Express) {
|
|
@@ -12,6 +12,14 @@ export async function setEmailProvider(this: AuthHandler, app: e.Express) {
|
|
|
12
12
|
await checkDmarc(websiteUrl);
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
if(email.signupType === "withPassword"){
|
|
16
|
+
if(email.emailConfirmation){
|
|
17
|
+
tryGetTransporter(email.emailConfirmation.smtp);
|
|
18
|
+
}
|
|
19
|
+
} else {
|
|
20
|
+
tryGetTransporter(email.emailMagicLink.smtp);
|
|
21
|
+
}
|
|
22
|
+
|
|
15
23
|
app.post(AUTH_ROUTES_AND_PARAMS.emailSignup, async (req, res) => {
|
|
16
24
|
const { username, password } = req.body;
|
|
17
25
|
let validationError = "";
|
|
@@ -82,4 +90,12 @@ const checkDmarc = async (websiteUrl: string) => {
|
|
|
82
90
|
} else {
|
|
83
91
|
console.log("DMARC set to reject")
|
|
84
92
|
}
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
const tryGetTransporter = (smtp: SMTPConfig) => {
|
|
96
|
+
try {
|
|
97
|
+
getOrSetTransporter(smtp);
|
|
98
|
+
} catch(err) {
|
|
99
|
+
console.error("Failed to set email transporter", err);
|
|
100
|
+
}
|
|
85
101
|
}
|