prostgles-server 4.2.202 → 4.2.204

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.
Files changed (95) hide show
  1. package/dist/Auth/AuthHandler.d.ts +9 -12
  2. package/dist/Auth/AuthHandler.d.ts.map +1 -1
  3. package/dist/Auth/AuthHandler.js +39 -170
  4. package/dist/Auth/AuthHandler.js.map +1 -1
  5. package/dist/Auth/AuthTypes.d.ts +37 -48
  6. package/dist/Auth/AuthTypes.d.ts.map +1 -1
  7. package/dist/Auth/endpoints/setCatchAllRequestHandler.d.ts +1 -2
  8. package/dist/Auth/endpoints/setCatchAllRequestHandler.d.ts.map +1 -1
  9. package/dist/Auth/endpoints/setCatchAllRequestHandler.js +4 -4
  10. package/dist/Auth/endpoints/setCatchAllRequestHandler.js.map +1 -1
  11. package/dist/Auth/endpoints/setConfirmEmailRequestHandler.d.ts +3 -5
  12. package/dist/Auth/endpoints/setConfirmEmailRequestHandler.d.ts.map +1 -1
  13. package/dist/Auth/endpoints/setConfirmEmailRequestHandler.js +4 -5
  14. package/dist/Auth/endpoints/setConfirmEmailRequestHandler.js.map +1 -1
  15. package/dist/Auth/endpoints/setLoginRequestHandler.d.ts +5 -6
  16. package/dist/Auth/endpoints/setLoginRequestHandler.d.ts.map +1 -1
  17. package/dist/Auth/endpoints/setLoginRequestHandler.js +5 -8
  18. package/dist/Auth/endpoints/setLoginRequestHandler.js.map +1 -1
  19. package/dist/Auth/endpoints/setMagicLinkRequestHandler.d.ts +2 -3
  20. package/dist/Auth/endpoints/setMagicLinkRequestHandler.d.ts.map +1 -1
  21. package/dist/Auth/endpoints/setMagicLinkRequestHandler.js +4 -4
  22. package/dist/Auth/endpoints/setMagicLinkRequestHandler.js.map +1 -1
  23. package/dist/Auth/endpoints/setOAuthRequestHandlers.d.ts +5 -0
  24. package/dist/Auth/endpoints/setOAuthRequestHandlers.d.ts.map +1 -0
  25. package/dist/Auth/{authProviders/setOAuthProviders.js → endpoints/setOAuthRequestHandlers.js} +19 -15
  26. package/dist/Auth/endpoints/setOAuthRequestHandlers.js.map +1 -0
  27. package/dist/Auth/endpoints/setRegisterRequestHandler.d.ts +2 -2
  28. package/dist/Auth/endpoints/setRegisterRequestHandler.d.ts.map +1 -1
  29. package/dist/Auth/endpoints/setRegisterRequestHandler.js +26 -44
  30. package/dist/Auth/endpoints/setRegisterRequestHandler.js.map +1 -1
  31. package/dist/Auth/getClientAuth.d.ts +8 -0
  32. package/dist/Auth/getClientAuth.d.ts.map +1 -0
  33. package/dist/Auth/getClientAuth.js +76 -0
  34. package/dist/Auth/getClientAuth.js.map +1 -0
  35. package/dist/Auth/login.d.ts +5 -0
  36. package/dist/Auth/login.d.ts.map +1 -0
  37. package/dist/Auth/login.js +111 -0
  38. package/dist/Auth/login.js.map +1 -0
  39. package/dist/Auth/sendEmail.d.ts +3 -5
  40. package/dist/Auth/sendEmail.d.ts.map +1 -1
  41. package/dist/Auth/sendEmail.js +27 -2
  42. package/dist/Auth/sendEmail.js.map +1 -1
  43. package/dist/Auth/setupAuthRoutes.d.ts.map +1 -1
  44. package/dist/Auth/setupAuthRoutes.js +15 -9
  45. package/dist/Auth/setupAuthRoutes.js.map +1 -1
  46. package/dist/Auth/utils/getSidAndUserFromRequest.d.ts.map +1 -1
  47. package/dist/Auth/utils/getSidAndUserFromRequest.js +2 -1
  48. package/dist/Auth/utils/getSidAndUserFromRequest.js.map +1 -1
  49. package/dist/Auth/utils/throttledReject.d.ts +5 -0
  50. package/dist/Auth/utils/throttledReject.d.ts.map +1 -0
  51. package/dist/Auth/utils/throttledReject.js +34 -0
  52. package/dist/Auth/utils/throttledReject.js.map +1 -0
  53. package/dist/Auth/utils/upsertNamedExpressMiddleware.d.ts +6 -0
  54. package/dist/Auth/utils/upsertNamedExpressMiddleware.d.ts.map +1 -0
  55. package/dist/Auth/utils/upsertNamedExpressMiddleware.js +12 -0
  56. package/dist/Auth/utils/upsertNamedExpressMiddleware.js.map +1 -0
  57. package/dist/DBSchemaBuilder.js.map +1 -1
  58. package/dist/Prostgles.d.ts +1 -1
  59. package/dist/Prostgles.d.ts.map +1 -1
  60. package/dist/Prostgles.js +2 -2
  61. package/dist/Prostgles.js.map +1 -1
  62. package/dist/ProstglesTypes.d.ts +2 -2
  63. package/dist/ProstglesTypes.d.ts.map +1 -1
  64. package/lib/Auth/AuthHandler.ts +50 -218
  65. package/lib/Auth/AuthTypes.ts +72 -72
  66. package/lib/Auth/endpoints/setCatchAllRequestHandler.ts +8 -4
  67. package/lib/Auth/endpoints/setConfirmEmailRequestHandler.ts +9 -13
  68. package/lib/Auth/endpoints/setLoginRequestHandler.ts +8 -14
  69. package/lib/Auth/endpoints/setMagicLinkRequestHandler.ts +6 -6
  70. package/lib/Auth/{authProviders/setOAuthProviders.ts → endpoints/setOAuthRequestHandlers.ts} +24 -17
  71. package/lib/Auth/endpoints/setRegisterRequestHandler.ts +30 -54
  72. package/lib/Auth/getClientAuth.ts +100 -0
  73. package/lib/Auth/login.ts +139 -0
  74. package/lib/Auth/sendEmail.ts +31 -7
  75. package/lib/Auth/setupAuthRoutes.ts +22 -9
  76. package/lib/Auth/utils/getSidAndUserFromRequest.ts +2 -1
  77. package/lib/Auth/utils/throttledReject.ts +33 -0
  78. package/lib/Auth/utils/upsertNamedExpressMiddleware.ts +14 -0
  79. package/lib/DBSchemaBuilder.ts +2 -2
  80. package/lib/Prostgles.ts +1 -1
  81. package/lib/ProstglesTypes.ts +2 -2
  82. package/package.json +2 -2
  83. package/dist/Auth/authProviders/setEmailProvider.d.ts +0 -4
  84. package/dist/Auth/authProviders/setEmailProvider.d.ts.map +0 -1
  85. package/dist/Auth/authProviders/setEmailProvider.js +0 -26
  86. package/dist/Auth/authProviders/setEmailProvider.js.map +0 -1
  87. package/dist/Auth/authProviders/setOAuthProviders.d.ts +0 -5
  88. package/dist/Auth/authProviders/setOAuthProviders.d.ts.map +0 -1
  89. package/dist/Auth/authProviders/setOAuthProviders.js.map +0 -1
  90. package/dist/Auth/setAuthProviders.d.ts +0 -11
  91. package/dist/Auth/setAuthProviders.d.ts.map +0 -1
  92. package/dist/Auth/setAuthProviders.js +0 -41
  93. package/dist/Auth/setAuthProviders.js.map +0 -1
  94. package/lib/Auth/authProviders/setEmailProvider.ts +0 -26
  95. package/lib/Auth/setAuthProviders.ts +0 -47
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Given an async function, this function will throttle the response time if errored to prevent timing attacks
3
+ */
4
+ export const throttledReject = <T>(func: () => Promise<T>, throttle = 500): Promise<T> => {
5
+ return new Promise(async (resolve, reject) => {
6
+ let result: T,
7
+ error: any,
8
+ finished = false;
9
+
10
+ /**
11
+ * Throttle reject response times to prevent timing attacks
12
+ */
13
+ const interval = setInterval(() => {
14
+ if (finished) {
15
+ clearInterval(interval);
16
+ if (error) {
17
+ reject(error);
18
+ }
19
+ }
20
+ }, throttle);
21
+
22
+ try {
23
+ result = await func();
24
+ resolve(result);
25
+ clearInterval(interval);
26
+ } catch (err) {
27
+ console.log(err);
28
+ error = err;
29
+ }
30
+
31
+ finished = true;
32
+ });
33
+ };
@@ -0,0 +1,14 @@
1
+ import type e from "express";
2
+ import { RequestHandler } from "express";
3
+ import { removeExpressRouteByName } from "../../FileManager/FileManager";
4
+
5
+ export const upsertNamedExpressMiddleware = (
6
+ app: e.Express,
7
+ handler: RequestHandler,
8
+ name: string
9
+ ) => {
10
+ const funcName = name;
11
+ Object.defineProperty(handler, "name", { value: funcName });
12
+ removeExpressRouteByName(app, name);
13
+ app.use(handler);
14
+ };
@@ -9,7 +9,7 @@ import {
9
9
  ViewHandler,
10
10
  } from "prostgles-types";
11
11
  import prostgles from ".";
12
- import { Auth } from "./Auth/AuthTypes";
12
+ import { AuthConfig } from "./Auth/AuthTypes";
13
13
  import { DboBuilder, escapeTSNames, postgresToTsType } from "./DboBuilder/DboBuilder";
14
14
  import {
15
15
  PublishAllOrNothing,
@@ -164,7 +164,7 @@ export type PublishFullyTyped<Schema = void> =
164
164
  },
165
165
  });
166
166
 
167
- const _auth: Auth = {
167
+ const _auth: AuthConfig = {
168
168
  sidKeyName: "sid_token",
169
169
  getUser: async (sid, db, _db) => {
170
170
  db.dwadaw?.find;
package/lib/Prostgles.ts CHANGED
@@ -37,7 +37,7 @@ import {
37
37
  } from "prostgles-types";
38
38
  import { DBEventsManager } from "./DBEventsManager";
39
39
  import { PublishParser } from "./PublishParser/PublishParser";
40
- export { getOrSetTransporter, sendEmail, verifySMTPConfig } from "./Auth/sendEmail";
40
+ export { getOrSetTransporter, getEmailSender, verifySMTPConfig } from "./Auth/sendEmail";
41
41
 
42
42
  export type DB = pgPromise.IDatabase<{}, pg.IClient>;
43
43
  export type DBorTx = DB | pgPromise.ITask<{}>;
@@ -1,5 +1,5 @@
1
1
  import { FileColumnConfig } from "prostgles-types";
2
- import { Auth, AuthRequestParams, SessionUser } from "./Auth/AuthTypes";
2
+ import { AuthConfig, AuthRequestParams, SessionUser } from "./Auth/AuthTypes";
3
3
  import { EventTriggerTagFilter } from "./Event_Trigger_Tags";
4
4
  import { CloudClient, ImageOptions, LocalConfig } from "./FileManager/FileManager";
5
5
  import { DbConnection, OnReadyCallback } from "./initProstgles";
@@ -232,7 +232,7 @@ export type ProstglesInitOptions<S = void, SUser extends SessionUser = SessionUs
232
232
  * Auth configuration.
233
233
  * Supports email and OAuth strategies
234
234
  */
235
- auth?: Auth<S, SUser>;
235
+ auth?: AuthConfig<S, SUser>;
236
236
 
237
237
  /**
238
238
  * Used internally for debugging
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "prostgles-server",
3
- "version": "4.2.202",
3
+ "version": "4.2.204",
4
4
  "description": "",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -55,7 +55,7 @@
55
55
  "pg": "^8.11.5",
56
56
  "pg-cursor": "^2.11.0",
57
57
  "pg-promise": "^11.9.1",
58
- "prostgles-types": "^4.0.133"
58
+ "prostgles-types": "^4.0.135"
59
59
  },
60
60
  "devDependencies": {
61
61
  "@types/express": "^4.17.21",
@@ -1,4 +0,0 @@
1
- import e from "express";
2
- import { AuthHandler } from "../AuthHandler";
3
- export declare function setEmailProvider(this: AuthHandler, app: e.Express): Promise<void>;
4
- //# sourceMappingURL=setEmailProvider.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setEmailProvider.d.ts","sourceRoot":"","sources":["../../../lib/Auth/authProviders/setEmailProvider.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,MAAM,SAAS,CAAC;AACxB,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAM7C,wBAAsB,gBAAgB,CAAC,IAAI,EAAE,WAAW,EAAE,GAAG,EAAE,CAAC,CAAC,OAAO,iBAkBvE"}
@@ -1,26 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.setEmailProvider = void 0;
4
- const setConfirmEmailRequestHandler_1 = require("../endpoints/setConfirmEmailRequestHandler");
5
- const setRegisterRequestHandler_1 = require("../endpoints/setRegisterRequestHandler");
6
- const sendEmail_1 = require("../sendEmail");
7
- const checkDmarc_1 = require("../utils/checkDmarc");
8
- async function setEmailProvider(app) {
9
- const { email, websiteUrl } = this.opts.expressConfig?.registrations ?? {};
10
- if (!email)
11
- return;
12
- if (!websiteUrl) {
13
- throw new Error("websiteUrl is required for email/magic-link registrations");
14
- }
15
- await (0, checkDmarc_1.checkDmarc)(websiteUrl);
16
- /**
17
- * Setup nodemailer transporters
18
- */
19
- (0, sendEmail_1.getOrSetTransporter)(email.smtp);
20
- (0, setRegisterRequestHandler_1.setRegisterRequestHandler)({ email, websiteUrl }, app);
21
- if (email.signupType === "withPassword") {
22
- setConfirmEmailRequestHandler_1.setConfirmEmailRequestHandler.bind(this)(email, app);
23
- }
24
- }
25
- exports.setEmailProvider = setEmailProvider;
26
- //# sourceMappingURL=setEmailProvider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setEmailProvider.js","sourceRoot":"","sources":["../../../lib/Auth/authProviders/setEmailProvider.ts"],"names":[],"mappings":";;;AAEA,8FAA2F;AAC3F,sFAAmF;AACnF,4CAAmD;AACnD,oDAAiD;AAE1C,KAAK,UAAU,gBAAgB,CAAoB,GAAc;IACtE,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,aAAa,IAAI,EAAE,CAAC;IAC3E,IAAI,CAAC,KAAK;QAAE,OAAO;IACnB,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,MAAM,IAAI,KAAK,CAAC,2DAA2D,CAAC,CAAC;IAC/E,CAAC;IACD,MAAM,IAAA,uBAAU,EAAC,UAAU,CAAC,CAAC;IAE7B;;OAEG;IACH,IAAA,+BAAmB,EAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAEhC,IAAA,qDAAyB,EAAC,EAAE,KAAK,EAAE,UAAU,EAAE,EAAE,GAAG,CAAC,CAAC;IAEtD,IAAI,KAAK,CAAC,UAAU,KAAK,cAAc,EAAE,CAAC;QACxC,6DAA6B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvD,CAAC;AACH,CAAC;AAlBD,4CAkBC"}
@@ -1,5 +0,0 @@
1
- import { AuthHandler } from "../AuthHandler";
2
- import { AuthRegistrationConfig } from "../AuthTypes";
3
- import e from "express";
4
- export declare function setOAuthProviders(this: AuthHandler, app: e.Express, registrations: AuthRegistrationConfig<void>): void;
5
- //# sourceMappingURL=setOAuthProviders.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setOAuthProviders.d.ts","sourceRoot":"","sources":["../../../lib/Auth/authProviders/setOAuthProviders.ts"],"names":[],"mappings":"AAOA,OAAO,EAA0B,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAErE,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AAEtD,OAAO,CAAC,MAAM,SAAS,CAAC;AAExB,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,WAAW,EACjB,GAAG,EAAE,CAAC,CAAC,OAAO,EACd,aAAa,EAAE,sBAAsB,CAAC,IAAI,CAAC,QAgF5C"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"setOAuthProviders.js","sourceRoot":"","sources":["../../../lib/Auth/authProviders/setOAuthProviders.ts"],"names":[],"mappings":"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"}
@@ -1,11 +0,0 @@
1
- /// <reference types="express-serve-static-core" />
2
- /// <reference types="passport" />
3
- import type e from "express";
4
- import { RequestHandler } from "express";
5
- import { AuthSocketSchema } from "prostgles-types";
6
- import { AuthHandler } from "./AuthHandler";
7
- import { Auth } from "./AuthTypes";
8
- export declare const upsertNamedExpressMiddleware: (app: e.Express, handler: RequestHandler, name: string) => void;
9
- export declare function setAuthProviders(this: AuthHandler, { registrations, app }: Required<Auth>["expressConfig"]): Promise<void>;
10
- export declare function getProviders(this: AuthHandler): AuthSocketSchema["providers"] | undefined;
11
- //# sourceMappingURL=setAuthProviders.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setAuthProviders.d.ts","sourceRoot":"","sources":["../../lib/Auth/setAuthProviders.ts"],"names":[],"mappings":";;AAAA,OAAO,KAAK,CAAC,MAAM,SAAS,CAAC;AAC7B,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,gBAAgB,EAA6B,MAAM,iBAAiB,CAAC;AAE9E,OAAO,EAA0B,WAAW,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,EAAE,IAAI,EAAE,MAAM,aAAa,CAAC;AAInC,eAAO,MAAM,4BAA4B,QAClC,SAAS,WACL,cAAc,QACjB,MAAM,SAMb,CAAC;AAEF,wBAAsB,gBAAgB,CACpC,IAAI,EAAE,WAAW,EACjB,EAAE,aAAa,EAAE,GAAG,EAAE,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,eAAe,CAAC,iBAMxD;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,WAAW,GAAG,gBAAgB,CAAC,WAAW,CAAC,GAAG,SAAS,CAgBzF"}
@@ -1,41 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getProviders = exports.setAuthProviders = exports.upsertNamedExpressMiddleware = void 0;
4
- const prostgles_types_1 = require("prostgles-types");
5
- const FileManager_1 = require("../FileManager/FileManager");
6
- const AuthHandler_1 = require("./AuthHandler");
7
- const setEmailProvider_1 = require("./authProviders/setEmailProvider");
8
- const setOAuthProviders_1 = require("./authProviders/setOAuthProviders");
9
- const upsertNamedExpressMiddleware = (app, handler, name) => {
10
- const funcName = name;
11
- Object.defineProperty(handler, "name", { value: funcName });
12
- (0, FileManager_1.removeExpressRouteByName)(app, name);
13
- app.use(handler);
14
- };
15
- exports.upsertNamedExpressMiddleware = upsertNamedExpressMiddleware;
16
- async function setAuthProviders({ registrations, app }) {
17
- if (!registrations)
18
- return;
19
- await setEmailProvider_1.setEmailProvider.bind(this)(app);
20
- await setOAuthProviders_1.setOAuthProviders.bind(this)(app, registrations);
21
- }
22
- exports.setAuthProviders = setAuthProviders;
23
- function getProviders() {
24
- const { registrations } = this.opts.expressConfig ?? {};
25
- if (!registrations)
26
- return undefined;
27
- const { OAuthProviders } = registrations;
28
- if (!OAuthProviders || (0, prostgles_types_1.isEmpty)(OAuthProviders))
29
- return undefined;
30
- const result = {};
31
- (0, prostgles_types_1.getObjectEntries)(OAuthProviders).forEach(([providerName, config]) => {
32
- if (config?.clientID) {
33
- result[providerName] = {
34
- url: `${AuthHandler_1.AUTH_ROUTES_AND_PARAMS.loginWithProvider}/${providerName}`,
35
- };
36
- }
37
- });
38
- return result;
39
- }
40
- exports.getProviders = getProviders;
41
- //# sourceMappingURL=setAuthProviders.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"setAuthProviders.js","sourceRoot":"","sources":["../../lib/Auth/setAuthProviders.ts"],"names":[],"mappings":";;;AAEA,qDAA8E;AAC9E,4DAAsE;AACtE,+CAAoE;AAEpE,uEAAoE;AACpE,yEAAsE;AAE/D,MAAM,4BAA4B,GAAG,CAC1C,GAAc,EACd,OAAuB,EACvB,IAAY,EACZ,EAAE;IACF,MAAM,QAAQ,GAAG,IAAI,CAAC;IACtB,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5D,IAAA,sCAAwB,EAAC,GAAG,EAAE,IAAI,CAAC,CAAC;IACpC,GAAG,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;AACnB,CAAC,CAAC;AATW,QAAA,4BAA4B,gCASvC;AAEK,KAAK,UAAU,gBAAgB,CAEpC,EAAE,aAAa,EAAE,GAAG,EAAmC;IAEvD,IAAI,CAAC,aAAa;QAAE,OAAO;IAE3B,MAAM,mCAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC;IACvC,MAAM,qCAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AACzD,CAAC;AARD,4CAQC;AAED,SAAgB,YAAY;IAC1B,MAAM,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC;IACxD,IAAI,CAAC,aAAa;QAAE,OAAO,SAAS,CAAC;IACrC,MAAM,EAAE,cAAc,EAAE,GAAG,aAAa,CAAC;IACzC,IAAI,CAAC,cAAc,IAAI,IAAA,yBAAO,EAAC,cAAc,CAAC;QAAE,OAAO,SAAS,CAAC;IAEjE,MAAM,MAAM,GAAkC,EAAE,CAAC;IACjD,IAAA,kCAAgB,EAAC,cAAc,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,EAAE;QAClE,IAAI,MAAM,EAAE,QAAQ,EAAE,CAAC;YACrB,MAAM,CAAC,YAAY,CAAC,GAAG;gBACrB,GAAG,EAAE,GAAG,oCAAsB,CAAC,iBAAiB,IAAI,YAAY,EAAE;aACnE,CAAC;QACJ,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AAChB,CAAC;AAhBD,oCAgBC"}
@@ -1,26 +0,0 @@
1
- import e from "express";
2
- import { AuthHandler } from "../AuthHandler";
3
- import { setConfirmEmailRequestHandler } from "../endpoints/setConfirmEmailRequestHandler";
4
- import { setRegisterRequestHandler } from "../endpoints/setRegisterRequestHandler";
5
- import { getOrSetTransporter } from "../sendEmail";
6
- import { checkDmarc } from "../utils/checkDmarc";
7
-
8
- export async function setEmailProvider(this: AuthHandler, app: e.Express) {
9
- const { email, websiteUrl } = this.opts.expressConfig?.registrations ?? {};
10
- if (!email) return;
11
- if (!websiteUrl) {
12
- throw new Error("websiteUrl is required for email/magic-link registrations");
13
- }
14
- await checkDmarc(websiteUrl);
15
-
16
- /**
17
- * Setup nodemailer transporters
18
- */
19
- getOrSetTransporter(email.smtp);
20
-
21
- setRegisterRequestHandler({ email, websiteUrl }, app);
22
-
23
- if (email.signupType === "withPassword") {
24
- setConfirmEmailRequestHandler.bind(this)(email, app);
25
- }
26
- }
@@ -1,47 +0,0 @@
1
- import type e from "express";
2
- import { RequestHandler } from "express";
3
- import { AuthSocketSchema, getObjectEntries, isEmpty } from "prostgles-types";
4
- import { removeExpressRouteByName } from "../FileManager/FileManager";
5
- import { AUTH_ROUTES_AND_PARAMS, AuthHandler } from "./AuthHandler";
6
- import { Auth } from "./AuthTypes";
7
- import { setEmailProvider } from "./authProviders/setEmailProvider";
8
- import { setOAuthProviders } from "./authProviders/setOAuthProviders";
9
-
10
- export const upsertNamedExpressMiddleware = (
11
- app: e.Express,
12
- handler: RequestHandler,
13
- name: string
14
- ) => {
15
- const funcName = name;
16
- Object.defineProperty(handler, "name", { value: funcName });
17
- removeExpressRouteByName(app, name);
18
- app.use(handler);
19
- };
20
-
21
- export async function setAuthProviders(
22
- this: AuthHandler,
23
- { registrations, app }: Required<Auth>["expressConfig"]
24
- ) {
25
- if (!registrations) return;
26
-
27
- await setEmailProvider.bind(this)(app);
28
- await setOAuthProviders.bind(this)(app, registrations);
29
- }
30
-
31
- export function getProviders(this: AuthHandler): AuthSocketSchema["providers"] | undefined {
32
- const { registrations } = this.opts.expressConfig ?? {};
33
- if (!registrations) return undefined;
34
- const { OAuthProviders } = registrations;
35
- if (!OAuthProviders || isEmpty(OAuthProviders)) return undefined;
36
-
37
- const result: AuthSocketSchema["providers"] = {};
38
- getObjectEntries(OAuthProviders).forEach(([providerName, config]) => {
39
- if (config?.clientID) {
40
- result[providerName] = {
41
- url: `${AUTH_ROUTES_AND_PARAMS.loginWithProvider}/${providerName}`,
42
- };
43
- }
44
- });
45
-
46
- return result;
47
- }