@schemavaults/auth-server-sdk 0.17.15 → 0.19.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/AccessTokenCookieNames.d.ts +1 -0
- package/dist/AccessTokenCookieNames.js +2 -0
- package/dist/AccessTokenCookieNames.js.map +1 -0
- package/dist/JwtKeyManager/RemoteJwtKeyManager/RemoteJwtKeyManager.d.ts +3 -1
- package/dist/JwtKeyManager/RemoteJwtKeyManager/RemoteJwtKeyManager.js +4 -1
- package/dist/JwtKeyManager/RemoteJwtKeyManager/RemoteJwtKeyManager.js.map +1 -1
- package/dist/JwtKeyManager/RemoteJwtKeyManager/loadRemoteJwks.d.ts +2 -1
- package/dist/JwtKeyManager/RemoteJwtKeyManager/loadRemoteJwks.js +25 -4
- package/dist/JwtKeyManager/RemoteJwtKeyManager/loadRemoteJwks.js.map +1 -1
- package/dist/MaximumBrowserCookieSize.d.ts +1 -1
- package/dist/MaximumBrowserCookieSize.js +1 -1
- package/dist/MaximumBrowserCookieSize.js.map +1 -1
- package/dist/NextjsAppDirectoryPlugin/NextjsAppDirectoryPlugin.d.ts +5 -0
- package/dist/NextjsAppDirectoryPlugin/NextjsAppDirectoryPlugin.js +8 -0
- package/dist/NextjsAppDirectoryPlugin/NextjsAppDirectoryPlugin.js.map +1 -0
- package/dist/NextjsAppDirectoryPlugin/codegen.d.ts +4 -0
- package/dist/NextjsAppDirectoryPlugin/codegen.js +80 -0
- package/dist/NextjsAppDirectoryPlugin/codegen.js.map +1 -0
- package/dist/NextjsAppDirectoryPlugin/index.d.ts +2 -0
- package/dist/NextjsAppDirectoryPlugin/index.js +2 -0
- package/dist/NextjsAppDirectoryPlugin/index.js.map +1 -0
- package/dist/NextjsAppDirectoryPlugin/resolve-app-directory.d.ts +1 -0
- package/dist/NextjsAppDirectoryPlugin/resolve-app-directory.js +29 -0
- package/dist/NextjsAppDirectoryPlugin/resolve-app-directory.js.map +1 -0
- package/dist/NextjsAppDirectoryPlugin/resolve-codegen-templates-directory.d.ts +1 -0
- package/dist/NextjsAppDirectoryPlugin/resolve-codegen-templates-directory.js +6 -0
- package/dist/NextjsAppDirectoryPlugin/resolve-codegen-templates-directory.js.map +1 -0
- package/dist/RefreshTokenCookieNames.d.ts +1 -3
- package/dist/RefreshTokenCookieNames.js +1 -3
- package/dist/RefreshTokenCookieNames.js.map +1 -1
- package/dist/codegen-templates/auth/auth-provider.tsx +57 -0
- package/dist/codegen-templates/auth/authorize/page.tsx +54 -0
- package/dist/codegen-templates/auth/login/page.tsx +27 -0
- package/dist/codegen-templates/auth/logout/page.tsx +11 -0
- package/dist/codegen-templates/auth/register/page.tsx +29 -0
- package/dist/env/loadJwksAccessPrivateKey/index.d.ts +2 -0
- package/dist/env/loadJwksAccessPrivateKey/index.js +3 -0
- package/dist/env/loadJwksAccessPrivateKey/index.js.map +1 -0
- package/dist/env/loadJwksAccessPrivateKey/loadJwksAccessPrivateKey.js +42 -0
- package/dist/env/loadJwksAccessPrivateKey/loadJwksAccessPrivateKey.js.map +1 -0
- package/dist/get-app-environment.d.ts +2 -0
- package/dist/get-app-environment.js +2 -0
- package/dist/get-app-environment.js.map +1 -0
- package/dist/get-schemavaults-client-application-id.d.ts +10 -0
- package/dist/get-schemavaults-client-application-id.js +21 -0
- package/dist/get-schemavaults-client-application-id.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/middleware/middlewares/withAuthJwtValidation/withAuthJwtValidation.js +11 -8
- package/dist/middleware/middlewares/withAuthJwtValidation/withAuthJwtValidation.js.map +1 -1
- package/dist/middleware/middlewares/withCorsSettings/isAllowedOrigin.d.ts +1 -1
- package/dist/middleware/middlewares/withCorsSettings/isAllowedOrigin.js +1 -0
- package/dist/middleware/middlewares/withCorsSettings/isAllowedOrigin.js.map +1 -1
- package/dist/route_guards/assertValidRouteGuardType.d.ts +1 -0
- package/dist/route_guards/assertValidRouteGuardType.js +6 -0
- package/dist/route_guards/assertValidRouteGuardType.js.map +1 -0
- package/dist/route_guards/index.d.ts +2 -2
- package/dist/route_guards/index.js.map +1 -1
- package/dist/route_guards/route-guard-factory.js +1 -0
- package/dist/route_guards/route-guard-factory.js.map +1 -1
- package/dist/route_guards/withAdminRouteGuard.d.ts +5 -21
- package/dist/route_guards/withAdminRouteGuard.js +5 -124
- package/dist/route_guards/withAdminRouteGuard.js.map +1 -1
- package/dist/route_guards/withAuthenticatedRouteGuard.d.ts +9 -16
- package/dist/route_guards/withAuthenticatedRouteGuard.js +146 -42
- package/dist/route_guards/withAuthenticatedRouteGuard.js.map +1 -1
- package/package.json +16 -6
- package/dist/env/loadJwksAccessPrivateKey.js +0 -33
- package/dist/env/loadJwksAccessPrivateKey.js.map +0 -1
- /package/dist/env/{loadJwksAccessPrivateKey.d.ts → loadJwksAccessPrivateKey/loadJwksAccessPrivateKey.d.ts} +0 -0
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { appIdSchema } from "@schemavaults/app-definitions";
|
|
2
|
+
/**
|
|
3
|
+
* @description Loads the client app ID. This is usually defined on the client-side, but this is useful in the auth-server-sdk
|
|
4
|
+
* for cases where one app is both the client & server (e.g. Next.js)
|
|
5
|
+
* @returns Parsed value of process.env.SCHEMAVAULTS_CLIENT_APP_ID
|
|
6
|
+
*/
|
|
7
|
+
function getSchemavaultsClientApplicationId() {
|
|
8
|
+
const appIdEnvVar = process.env.SCHEMAVAULTS_CLIENT_APP_ID;
|
|
9
|
+
if (appIdEnvVar && typeof appIdEnvVar === "string") {
|
|
10
|
+
if (!appIdSchema.safeParse(appIdEnvVar).success) {
|
|
11
|
+
throw new TypeError("Invalid API server ID to use from 'SCHEMAVAULTS_CLIENT_APP_ID' environment variable!");
|
|
12
|
+
}
|
|
13
|
+
return appIdEnvVar;
|
|
14
|
+
}
|
|
15
|
+
else {
|
|
16
|
+
throw new TypeError("Environment variable 'SCHEMAVAULTS_CLIENT_APP_ID' is not set!");
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export { getSchemavaultsClientApplicationId };
|
|
20
|
+
export default getSchemavaultsClientApplicationId;
|
|
21
|
+
//# sourceMappingURL=get-schemavaults-client-application-id.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"get-schemavaults-client-application-id.js","sourceRoot":"","sources":["../src/get-schemavaults-client-application-id.ts"],"names":[],"mappings":"AAAA,OAAO,EAAoB,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAG9E;;;;GAIG;AACH,SAAS,kCAAkC;IACzC,MAAM,WAAW,GACf,OAAO,CAAC,GAAG,CAAC,0BAA0B,CAAC;IACzC,IAAI,WAAW,IAAI,OAAO,WAAW,KAAK,QAAQ,EAAE,CAAC;QACnD,IAAI,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC,CAAC,OAAO,EAAE,CAAC;YAChD,MAAM,IAAI,SAAS,CACjB,sFAAsF,CACvF,CAAC;QACJ,CAAC;QACD,OAAO,WAAW,CAAC;IACrB,CAAC;SAAM,CAAC;QACN,MAAM,IAAI,SAAS,CACjB,+DAA+D,CAChE,CAAC;IACJ,CAAC;AACH,CAAC;AAED,OAAO,EAAE,kCAAkC,EAAE,CAAC;AAC9C,eAAe,kCAAkC,CAAC"}
|
package/dist/index.d.ts
CHANGED
|
@@ -14,7 +14,11 @@ import MaximumBrowserCookieSize from "./MaximumBrowserCookieSize";
|
|
|
14
14
|
export { MaximumBrowserCookieSize };
|
|
15
15
|
export { getSchemavaultsApiServerId } from "./get-schemavaults-api-server-id";
|
|
16
16
|
export type { ApiServerId } from "@schemavaults/app-definitions";
|
|
17
|
+
export { getSchemavaultsClientApplicationId } from "./get-schemavaults-client-application-id";
|
|
18
|
+
export type { AppId } from "@schemavaults/app-definitions";
|
|
17
19
|
export { RefreshTokenCookieName, RefreshTokenExpiryCookieName, } from "./RefreshTokenCookieNames";
|
|
18
20
|
export { default as getStringByteSize } from "./getStringByteSize";
|
|
19
21
|
export { redirectToLogin } from "./redirect-to-login";
|
|
20
22
|
export type * from "./redirect-with-error";
|
|
23
|
+
export { getAppEnvironment } from "./get-app-environment";
|
|
24
|
+
export type { SchemaVaultsAppEnvironment } from "./get-app-environment";
|
package/dist/index.js
CHANGED
|
@@ -7,7 +7,9 @@ export { ERROR_MESSAGE_CATALOG, isValidErrorId, } from "./auth-server-error-mess
|
|
|
7
7
|
import MaximumBrowserCookieSize from "./MaximumBrowserCookieSize";
|
|
8
8
|
export { MaximumBrowserCookieSize };
|
|
9
9
|
export { getSchemavaultsApiServerId } from "./get-schemavaults-api-server-id";
|
|
10
|
+
export { getSchemavaultsClientApplicationId } from "./get-schemavaults-client-application-id";
|
|
10
11
|
export { RefreshTokenCookieName, RefreshTokenExpiryCookieName, } from "./RefreshTokenCookieNames";
|
|
11
12
|
export { default as getStringByteSize } from "./getStringByteSize";
|
|
12
13
|
export { redirectToLogin } from "./redirect-to-login";
|
|
14
|
+
export { getAppEnvironment } from "./get-app-environment";
|
|
13
15
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,yBAAyB,CAAC;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,qCAAqC,CAAC;AAG7C,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAG9E,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAG7B,cAAc,gBAAgB,CAAC;AAG/B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,yBAAyB,CAAC;AAGxC,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAG1D,OAAO,EACL,qBAAqB,EACrB,cAAc,GACf,MAAM,qCAAqC,CAAC;AAG7C,OAAO,wBAAwB,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,wBAAwB,EAAE,CAAC;AAEpC,OAAO,EAAE,0BAA0B,EAAE,MAAM,kCAAkC,CAAC;AAG9E,OAAO,EAAE,kCAAkC,EAAE,MAAM,0CAA0C,CAAC;AAG9F,OAAO,EACL,sBAAsB,EACtB,4BAA4B,GAC7B,MAAM,2BAA2B,CAAC;AAEnC,OAAO,EAAE,OAAO,IAAI,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEnE,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AAGtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { AuthMiddleware, defaultAuthMiddlewareRules, determineAuthStatus, audienceSchema, } from "@schemavaults/auth-common";
|
|
2
2
|
import { decodeJWT, getKeysetIdFromToken, } from "@schemavaults/jwt";
|
|
3
|
-
import { apiServerIdSchema, } from "@schemavaults/app-definitions";
|
|
3
|
+
import { apiServerIdSchema, SCHEMAVAULTS_AUTH_APP_DEFINITION, } from "@schemavaults/app-definitions";
|
|
4
4
|
import BaseMiddleware from "../BaseMiddleware";
|
|
5
5
|
import doLoadJwtDecodingKeys from "../../../JwtKeyManager/loadJwtDecodingKeys";
|
|
6
|
+
import { RefreshTokenCookieName } from "../../../RefreshTokenCookieNames";
|
|
6
7
|
class AuthJwtValidationMiddleware extends BaseMiddleware {
|
|
7
8
|
audience;
|
|
8
9
|
middleware_rules;
|
|
@@ -50,14 +51,16 @@ class AuthJwtValidationMiddleware extends BaseMiddleware {
|
|
|
50
51
|
// Initialize array to store tokens from different sources
|
|
51
52
|
const token_sources = [];
|
|
52
53
|
// Load Tokens from cookies
|
|
53
|
-
let refresh_token = req.cookies.get("refresh_token")?.value;
|
|
54
54
|
let access_token = req.cookies.get("access_token")?.value;
|
|
55
|
-
if (
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
55
|
+
if (this.audience === SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id) {
|
|
56
|
+
const refresh_token = req.cookies.get(RefreshTokenCookieName(SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id))?.value;
|
|
57
|
+
if (typeof refresh_token === "string") {
|
|
58
|
+
token_sources.push({
|
|
59
|
+
token: refresh_token,
|
|
60
|
+
type: "refresh",
|
|
61
|
+
sourceHint: "Refresh Token Cookie",
|
|
62
|
+
});
|
|
63
|
+
}
|
|
61
64
|
}
|
|
62
65
|
if (typeof access_token === "string") {
|
|
63
66
|
token_sources.push({
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAuthJwtValidation.js","sourceRoot":"","sources":["../../../../src/middleware/middlewares/withAuthJwtValidation/withAuthJwtValidation.ts"],"names":[],"mappings":"AACA,OAAO,EACL,cAAc,EAGd,0BAA0B,EAC1B,mBAAmB,EAGnB,cAAc,GAGf,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,SAAS,EACT,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,
|
|
1
|
+
{"version":3,"file":"withAuthJwtValidation.js","sourceRoot":"","sources":["../../../../src/middleware/middlewares/withAuthJwtValidation/withAuthJwtValidation.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"isAllowedOrigin.js","sourceRoot":"","sources":["../../../../src/middleware/middlewares/withCorsSettings/isAllowedOrigin.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,8BAA8B,EAC9B,gCAAgC,EAChC,gCAAgC,EAChC,4BAA4B,EAC5B,gBAAgB,GAEjB,MAAM,+BAA+B,CAAC;AACvC,OAAO,EAEL,mCAAmC,IAAI,QAAQ,GAChD,MAAM,iBAAiB,CAAC;AAUzB,KAAK,UAAU,8BAA8B,
|
|
1
|
+
{"version":3,"file":"isAllowedOrigin.js","sourceRoot":"","sources":["../../../../src/middleware/middlewares/withCorsSettings/isAllowedOrigin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export default function assertValidRouteGuardType(route_guard_type: "authenticated" | "admin"): void;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
export default function assertValidRouteGuardType(route_guard_type) {
|
|
2
|
+
if (route_guard_type !== "authenticated" && route_guard_type !== "admin") {
|
|
3
|
+
throw new TypeError("Expected 'route_guard_type' to be either 'authenticated' or 'admin!'");
|
|
4
|
+
}
|
|
5
|
+
}
|
|
6
|
+
//# sourceMappingURL=assertValidRouteGuardType.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assertValidRouteGuardType.js","sourceRoot":"","sources":["../../src/route_guards/assertValidRouteGuardType.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,OAAO,UAAU,yBAAyB,CAC/C,gBAA2C;IAE3C,IAAI,gBAAgB,KAAK,eAAe,IAAI,gBAAgB,KAAK,OAAO,EAAE,CAAC;QACzE,MAAM,IAAI,SAAS,CACjB,sEAAsE,CACvE,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -3,6 +3,6 @@ export { AuthenticationRequiredRouteGuard } from "./authenticated";
|
|
|
3
3
|
export { AdminRequiredRouteGuard } from "./admin";
|
|
4
4
|
export { RouteGuardFactory, RouteGuardFactory as default, } from "./route-guard-factory";
|
|
5
5
|
export { withAuthenticatedServerComponentRouteGuard, withAuthenticatedApiRouteGuard, } from "./withAuthenticatedRouteGuard";
|
|
6
|
-
export type
|
|
6
|
+
export type { TProtectedAuthenticatedPageServerComponent, TProtectedAuthenticatedApiRoute, IBaseProtectedAuthenticatedServerComponentPageProps, IBaseProtectedAuthenticatedApiRouteInputs, } from "./withAuthenticatedRouteGuard";
|
|
7
7
|
export { withAdminServerComponentRouteGuard, withAdminApiRouteGuard, } from "./withAdminRouteGuard";
|
|
8
|
-
export type
|
|
8
|
+
export type { TProtectedAdminPageServerComponent, TProtectedAdminApiRoute, IBaseProtectedAdminServerComponentPageProps, IBaseProtectedAdminApiRouteInputs, } from "./withAdminRouteGuard";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/route_guards/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,IAAI,OAAO,GAC7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,0CAA0C,EAC1C,8BAA8B,GAC/B,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/route_guards/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gCAAgC,EAAE,MAAM,iBAAiB,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,SAAS,CAAC;AAElD,OAAO,EACL,iBAAiB,EACjB,iBAAiB,IAAI,OAAO,GAC7B,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,0CAA0C,EAC1C,8BAA8B,GAC/B,MAAM,+BAA+B,CAAC;AAQvC,OAAO,EACL,kCAAkC,EAClC,sBAAsB,GACvB,MAAM,uBAAuB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"route-guard-factory.js","sourceRoot":"","sources":["../../src/route_guards/route-guard-factory.ts"],"names":[],"mappings":"AAAA,OAAO,uBAAuB,MAAM,SAAS,CAAC;AAC9C,OAAO,gCAAgC,MAAM,iBAAiB,CAAC;AAE/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,OAAO,EACL,UAAU,EAKV,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAEL,SAAS,IAAI,qBAAqB,EAClC,oBAAoB,GACrB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,8BAA8B,EAC9B,gCAAgC,GAEjC,MAAM,+BAA+B,CAAC;AACvC,OAAO,mBAEN,MAAM,qCAAqC,CAAC;AAC7C,OAAO,EACL,mBAAmB,EAEnB,8BAA8B,GAC/B,MAAM,iBAAiB,CAAC;AACzB,OAAO,WAAW,MAAM,iBAAiB,CAAC;AAW1C,MAAM,WAAW,GAAG;IAClB,eAAe;IACf,OAAO;CAC6B,CAAC;AAGvC,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,EAAyB,EAAE;IAC5E,OACE,WACD,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC;AAEH,MAAM,MAAM,GAAG;IACb,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,gCAAgC,CAAC,IAAI,CAAC;IACnE,KAAK,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,uBAAuB,CAAC,IAAI,CAAC;CAInD,CAAC;AAEF,MAAM,OAAO,iBAAiB;IACX,gBAAgB,CAAiB;IACjC,WAAW,CAA6B;IACxC,KAAK,CAAU;IACf,cAAc,CAAU;IAEzC,YAAmB,EAAE,WAAW,EAAE,GAAG,IAAI,EAAgC;QACvE,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC;QACjC,IACE,OAAO,IAAI,CAAC,cAAc,KAAK,SAAS;YACxC,OAAO,IAAI,CAAC,cAAc,KAAK,WAAW,EAC1C,CAAC;YACD,MAAM,IAAI,SAAS,CAAC,oCAAoC,CAAC,CAAC;QAC5D,CAAC;QACD,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,IAAI,KAAK,CAAC;QAEnD,IAAI,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAC1B,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,gBAAgB,CAAC;QAChD,CAAC;aAAM,CAAC;YACN,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxB,MAAM,IAAI,SAAS,CACjB,8EAA8E,CAC/E,CAAC;YACJ,CAAC;YACD,IAAI,CAAC,gBAAgB,GAAG,IAAI,mBAAmB,CAAC;gBAC9C,eAAe,EAAE,8BAA8B,CAC7C,gCAAgC,CAAC,MAAM,EACvC,WAAW,CACZ;
|
|
1
|
+
{"version":3,"file":"route-guard-factory.js","sourceRoot":"","sources":["../../src/route_guards/route-guard-factory.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,25 +1,9 @@
|
|
|
1
1
|
import "server-only";
|
|
2
|
-
import {
|
|
3
|
-
import type
|
|
2
|
+
import { type ApiServerId } from "@schemavaults/app-definitions";
|
|
3
|
+
import { type TProtectedAuthenticatedApiRoute, type IBaseProtectedAuthenticatedServerComponentPageProps, type TProtectedAuthenticatedPageServerComponent } from "./withAuthenticatedRouteGuard";
|
|
4
4
|
import type { ReactElement } from "react";
|
|
5
5
|
import { type NextRequest, NextResponse } from "next/server";
|
|
6
|
-
import type { SchemaVaultsPostgresNeonProxyAdapter } from "@schemavaults/dbh";
|
|
7
6
|
import type { IJwtKeyManager } from "../JwtKeyManager";
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
export
|
|
11
|
-
user: UserData;
|
|
12
|
-
dbh: Dbh<Db>;
|
|
13
|
-
environment: SchemaVaultsAppEnvironment;
|
|
14
|
-
}
|
|
15
|
-
export type TProtectedAdminPageServerComponent<Db extends object> = (props: IProtectedAdminServerComponentPageProps<Db>) => Promise<ReactElement>;
|
|
16
|
-
export interface IProtectedAdminApiRouteProps<Db extends object> extends IProtectedAdminServerComponentPageProps<Db> {
|
|
17
|
-
req: NextRequest;
|
|
18
|
-
}
|
|
19
|
-
export type TProtectedAdminApiRoute<Db extends object> = (props: IProtectedAdminApiRouteProps<Db>) => Promise<NextResponse>;
|
|
20
|
-
export interface IWithAdminRouteGuardUtilOpts<Db extends object> {
|
|
21
|
-
ProtectedAdminPageServerComponent: TProtectedAdminPageServerComponent<Db>;
|
|
22
|
-
}
|
|
23
|
-
export declare function withAdminServerComponentRouteGuard<Db extends object>(input: IWithAdminRouteGuardUtilOpts<Db> | TProtectedAdminPageServerComponent<Db>, dbh: Dbh<Db>, jwt_keys_manager: IJwtKeyManager, getApiServerId?: () => ApiServerId): Promise<ReactElement>;
|
|
24
|
-
export declare function withAdminApiRouteGuard<Db extends object>(input: TProtectedAdminApiRoute<Db>, dbh: Dbh<Db>, jwt_keys_manager: IJwtKeyManager, getApiServerId?: () => ApiServerId): (req: NextRequest) => Promise<NextResponse>;
|
|
25
|
-
export {};
|
|
7
|
+
export declare function withAdminServerComponentRouteGuard<TAdditionalCustomProps extends object>(server_component: TProtectedAuthenticatedPageServerComponent<TAdditionalCustomProps>, additional_custom_server_component_props: TAdditionalCustomProps, custom_is_authorized_check?: ((props: IBaseProtectedAuthenticatedServerComponentPageProps & TAdditionalCustomProps) => Promise<boolean>) | undefined, jwt_keys_manager?: IJwtKeyManager, getApiServerId?: () => ApiServerId): Promise<ReactElement>;
|
|
8
|
+
export declare function withAdminApiRouteGuard<TAdditionalCustomRouteInputs extends object>(api_route_handler: TProtectedAuthenticatedApiRoute<TAdditionalCustomRouteInputs>, additional_custom_api_route_inputs: TAdditionalCustomRouteInputs, custom_is_authorized_check?: ((route_inputs: IBaseProtectedAuthenticatedServerComponentPageProps & TAdditionalCustomRouteInputs) => Promise<boolean>) | undefined, jwt_keys_manager?: IJwtKeyManager, getApiServerId?: () => ApiServerId): (req: NextRequest) => Promise<NextResponse>;
|
|
9
|
+
export type { TProtectedAuthenticatedPageServerComponent as TProtectedAdminPageServerComponent, TProtectedAuthenticatedApiRoute as TProtectedAdminApiRoute, IBaseProtectedAuthenticatedServerComponentPageProps as IBaseProtectedAdminServerComponentPageProps, IBaseProtectedAuthenticatedApiRouteInputs as IBaseProtectedAdminApiRouteInputs, } from "./withAuthenticatedRouteGuard";
|
|
@@ -1,129 +1,10 @@
|
|
|
1
1
|
import "server-only";
|
|
2
|
-
import {
|
|
3
|
-
import { cookies as loadCookies } from "next/headers";
|
|
4
|
-
import { redirectWithNextAppDirError } from "../redirect-with-error";
|
|
5
|
-
import RouteGuardFactory from "../route_guards/route-guard-factory";
|
|
6
|
-
import { NextResponse } from "next/server";
|
|
7
|
-
import getStringByteSize from "../getStringByteSize";
|
|
8
|
-
import MaximumBrowserCookieSize from "../MaximumBrowserCookieSize";
|
|
9
|
-
import RefreshTokenCookieName from "../RefreshTokenCookieNames";
|
|
2
|
+
import { initDefaultJwtKeyManagerForAuthenticatedRouteGuard, withAuthenticatedServerComponentRouteGuard, withAuthenticatedApiRouteGuard, } from "./withAuthenticatedRouteGuard";
|
|
10
3
|
import getSchemavaultsApiServerId from "../get-schemavaults-api-server-id";
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export async function withAdminServerComponentRouteGuard(input, dbh, jwt_keys_manager, getApiServerId = getSchemavaultsApiServerId) {
|
|
14
|
-
const environment = getAppEnvironment();
|
|
15
|
-
const api_server_id = getApiServerId();
|
|
16
|
-
const cookies = await loadCookies();
|
|
17
|
-
const token_sources = [];
|
|
18
|
-
const refresh_token_cookie = cookies.get("refresh_token");
|
|
19
|
-
if (typeof refresh_token_cookie?.value === "string") {
|
|
20
|
-
token_sources.push({
|
|
21
|
-
sourceHint: "Auth Server Refresh Token",
|
|
22
|
-
type: "refresh",
|
|
23
|
-
token: refresh_token_cookie.value,
|
|
24
|
-
});
|
|
25
|
-
}
|
|
26
|
-
if (token_sources.length === 0) {
|
|
27
|
-
redirectToLogin(redirect);
|
|
28
|
-
}
|
|
29
|
-
const route_guard_factory = new RouteGuardFactory({
|
|
30
|
-
environment,
|
|
31
|
-
is_auth_server: api_server_id === SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
|
|
32
|
-
jwt_keys_manager,
|
|
33
|
-
});
|
|
34
|
-
const route_guard = await route_guard_factory.createGuardFromTokenSources("admin", token_sources, SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id);
|
|
35
|
-
if (!route_guard.user) {
|
|
36
|
-
redirectToLogin(redirect);
|
|
37
|
-
}
|
|
38
|
-
const user = route_guard.user;
|
|
39
|
-
if (!Array.isArray(route_guard.user_organizations)) {
|
|
40
|
-
redirectToLogin(redirect);
|
|
41
|
-
}
|
|
42
|
-
if (!route_guard.isAccessAllowed() || !user.admin) {
|
|
43
|
-
redirectWithNextAppDirError(403, "forbidden");
|
|
44
|
-
}
|
|
45
|
-
const ProtectedAdminPageServerComponent = typeof input === "function"
|
|
46
|
-
? input
|
|
47
|
-
: input.ProtectedAdminPageServerComponent;
|
|
48
|
-
if (typeof ProtectedAdminPageServerComponent !== "function") {
|
|
49
|
-
throw new TypeError("Expected ProtectedAdminPageServerComponent to be a function");
|
|
50
|
-
}
|
|
51
|
-
return (await ProtectedAdminPageServerComponent({
|
|
52
|
-
user,
|
|
53
|
-
dbh,
|
|
54
|
-
environment,
|
|
55
|
-
}));
|
|
4
|
+
export async function withAdminServerComponentRouteGuard(server_component, additional_custom_server_component_props, custom_is_authorized_check = async (props) => props.user.admin === true, jwt_keys_manager = initDefaultJwtKeyManagerForAuthenticatedRouteGuard(), getApiServerId = getSchemavaultsApiServerId) {
|
|
5
|
+
return await withAuthenticatedServerComponentRouteGuard(server_component, additional_custom_server_component_props, "admin", custom_is_authorized_check, jwt_keys_manager, getApiServerId);
|
|
56
6
|
}
|
|
57
|
-
export function withAdminApiRouteGuard(
|
|
58
|
-
|
|
59
|
-
return async function ProtectedAdminApiRoute(req) {
|
|
60
|
-
const environment = getAppEnvironment();
|
|
61
|
-
const api_server_id = getApiServerId();
|
|
62
|
-
const token_sources = [];
|
|
63
|
-
const refresh_token_cookie = req.cookies.get(RefreshTokenCookieName);
|
|
64
|
-
if (typeof refresh_token_cookie?.value === "string" &&
|
|
65
|
-
refresh_token_cookie.value.length > 64 &&
|
|
66
|
-
getStringByteSize(refresh_token_cookie.value) <= MaximumBrowserCookieSize) {
|
|
67
|
-
token_sources.push({
|
|
68
|
-
sourceHint: "Auth Server Refresh Token",
|
|
69
|
-
type: "refresh",
|
|
70
|
-
token: refresh_token_cookie.value,
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
if (req.headers.has(RefreshTokenCookieName)) {
|
|
74
|
-
const auth_header = req.headers.get("Authorization");
|
|
75
|
-
if (!auth_header || typeof auth_header !== "string") {
|
|
76
|
-
throw new Error("Expected 'Authorization' to be non-empty string if set.");
|
|
77
|
-
}
|
|
78
|
-
if (!auth_header.startsWith("Bearer ")) {
|
|
79
|
-
throw new Error("Expected header 'Authorization' to start with 'Bearer '");
|
|
80
|
-
}
|
|
81
|
-
const refresh_token_from_header = typeof auth_header === "string" && auth_header.startsWith("Bearer ")
|
|
82
|
-
? auth_header.slice("Bearer ".length)
|
|
83
|
-
: "";
|
|
84
|
-
if (!refresh_token_from_header) {
|
|
85
|
-
throw new Error(`Refresh token cookie from header 'Authorization' appears to be empty!`);
|
|
86
|
-
}
|
|
87
|
-
token_sources.push({
|
|
88
|
-
sourceHint: "Auth Server Access Token",
|
|
89
|
-
type: "access",
|
|
90
|
-
token: refresh_token_from_header,
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
const route_guard_factory = new RouteGuardFactory({
|
|
94
|
-
environment,
|
|
95
|
-
is_auth_server: api_server_id === SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id,
|
|
96
|
-
jwt_keys_manager,
|
|
97
|
-
});
|
|
98
|
-
const route_guard = await route_guard_factory.createGuardFromTokenSources("admin", token_sources, SCHEMAVAULTS_AUTH_APP_DEFINITION.app_id);
|
|
99
|
-
if (!route_guard.user) {
|
|
100
|
-
return NextResponse.json({
|
|
101
|
-
success: false,
|
|
102
|
-
error: true,
|
|
103
|
-
message: "Authentication failed, unknown user",
|
|
104
|
-
}, { status: 401 });
|
|
105
|
-
}
|
|
106
|
-
const user = route_guard.user;
|
|
107
|
-
if (!Array.isArray(route_guard.user_organizations)) {
|
|
108
|
-
return NextResponse.json({
|
|
109
|
-
success: false,
|
|
110
|
-
error: true,
|
|
111
|
-
message: "Authentication failed, failed to load user organizations",
|
|
112
|
-
}, { status: 401 });
|
|
113
|
-
}
|
|
114
|
-
if (!route_guard.isAccessAllowed() || !route_guard.user.admin) {
|
|
115
|
-
return NextResponse.json({
|
|
116
|
-
success: false,
|
|
117
|
-
error: true,
|
|
118
|
-
message: "Access is not allowed",
|
|
119
|
-
}, { status: 403 });
|
|
120
|
-
}
|
|
121
|
-
return (await AdminApiRoute({
|
|
122
|
-
req,
|
|
123
|
-
user,
|
|
124
|
-
dbh,
|
|
125
|
-
environment,
|
|
126
|
-
}));
|
|
127
|
-
};
|
|
7
|
+
export function withAdminApiRouteGuard(api_route_handler, additional_custom_api_route_inputs, custom_is_authorized_check = async (inputs) => inputs.user.admin === true, jwt_keys_manager = initDefaultJwtKeyManagerForAuthenticatedRouteGuard(), getApiServerId = getSchemavaultsApiServerId) {
|
|
8
|
+
return withAuthenticatedApiRouteGuard(api_route_handler, additional_custom_api_route_inputs, "admin", custom_is_authorized_check, jwt_keys_manager, getApiServerId);
|
|
128
9
|
}
|
|
129
10
|
//# sourceMappingURL=withAdminRouteGuard.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"withAdminRouteGuard.js","sourceRoot":"","sources":["../../src/route_guards/withAdminRouteGuard.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"withAdminRouteGuard.js","sourceRoot":"","sources":["../../src/route_guards/withAdminRouteGuard.ts"],"names":[],"mappings":"AAAA,OAAO,aAAa,CAAC;AAGrB,OAAO,EACL,kDAAkD,EAElD,0CAA0C,EAC1C,8BAA8B,GAG/B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,0BAA0B,MAAM,kCAAkC,CAAC;AAG1E,MAAM,CAAC,KAAK,UAAU,kCAAkC,CAGtD,gBAAoF,EACpF,wCAAgE,EAChE,6BAKgB,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,EAC1D,mBAAmC,kDAAkD,EAAE,EACvF,iBAAoC,0BAA0B;IAE9D,OAAO,MAAM,0CAA0C,CACrD,gBAAgB,EAChB,wCAAwC,EACxC,OAAO,EACP,0BAA0B,EAC1B,gBAAgB,EAChB,cAAc,CACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAGpC,iBAAgF,EAChF,kCAAgE,EAChE,6BAKgB,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,KAAK,IAAI,EAC5D,mBAAmC,kDAAkD,EAAE,EACvF,iBAAoC,0BAA0B;IAE9D,OAAO,8BAA8B,CACnC,iBAAiB,EACjB,kCAAkC,EAClC,OAAO,EACP,0BAA0B,EAC1B,gBAAgB,EAChB,cAAc,CACf,CAAC;AACJ,CAAC"}
|
|
@@ -1,26 +1,19 @@
|
|
|
1
1
|
import "server-only";
|
|
2
|
-
import { ApiServerId, type SchemaVaultsAppEnvironment } from "@schemavaults/app-definitions";
|
|
2
|
+
import { type ApiServerId, type SchemaVaultsAppEnvironment } from "@schemavaults/app-definitions";
|
|
3
3
|
import type { OrganizationID, UserData } from "@schemavaults/auth-common";
|
|
4
4
|
import type { ReactElement } from "react";
|
|
5
5
|
import { type NextRequest, NextResponse } from "next/server";
|
|
6
|
-
import type
|
|
7
|
-
|
|
8
|
-
interface Dbh<Db extends object> extends AsyncDisposable, SchemaVaultsPostgresNeonProxyAdapter<Db> {
|
|
9
|
-
}
|
|
10
|
-
export interface IProtectedAuthenticatedServerComponentPageProps<Db extends object> {
|
|
6
|
+
import { type IJwtKeyManager } from "../JwtKeyManager";
|
|
7
|
+
export interface IBaseProtectedAuthenticatedServerComponentPageProps {
|
|
11
8
|
user: UserData;
|
|
12
9
|
user_organizations: readonly OrganizationID[];
|
|
13
|
-
dbh: Dbh<Db>;
|
|
14
10
|
environment: SchemaVaultsAppEnvironment;
|
|
15
11
|
}
|
|
16
|
-
export type TProtectedAuthenticatedPageServerComponent<
|
|
17
|
-
export interface
|
|
12
|
+
export type TProtectedAuthenticatedPageServerComponent<TAdditionalCustomProps extends object> = (props: IBaseProtectedAuthenticatedServerComponentPageProps & TAdditionalCustomProps) => Promise<ReactElement>;
|
|
13
|
+
export interface IBaseProtectedAuthenticatedApiRouteInputs extends IBaseProtectedAuthenticatedServerComponentPageProps {
|
|
18
14
|
req: NextRequest;
|
|
19
15
|
}
|
|
20
|
-
export type TProtectedAuthenticatedApiRoute<
|
|
21
|
-
export
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
export declare function withAuthenticatedServerComponentRouteGuard<Db extends object>(input: IWithAuthenticatedRouteGuardUtilOpts<Db> | TProtectedAuthenticatedPageServerComponent<Db>, dbh: Dbh<Db>, jwt_keys_manager: IJwtKeyManager, getApiServerId?: () => ApiServerId): Promise<ReactElement>;
|
|
25
|
-
export declare function withAuthenticatedApiRouteGuard<Db extends object>(input: TProtectedAuthenticatedApiRoute<Db>, dbh: Dbh<Db>, jwt_keys_manager: IJwtKeyManager, getApiServerId?: () => ApiServerId): (req: NextRequest) => Promise<NextResponse>;
|
|
26
|
-
export {};
|
|
16
|
+
export type TProtectedAuthenticatedApiRoute<TAdditionalCustomRouteInputs extends object> = (route_inputs: TAdditionalCustomRouteInputs & IBaseProtectedAuthenticatedApiRouteInputs) => Promise<NextResponse>;
|
|
17
|
+
export declare function initDefaultJwtKeyManagerForAuthenticatedRouteGuard(debug?: boolean): IJwtKeyManager;
|
|
18
|
+
export declare function withAuthenticatedServerComponentRouteGuard<TAdditionalCustomProps extends object>(server_component: TProtectedAuthenticatedPageServerComponent<TAdditionalCustomProps>, additional_custom_server_component_props: TAdditionalCustomProps, route_guard_type?: "authenticated" | "admin", custom_is_authorized_check?: ((props: IBaseProtectedAuthenticatedServerComponentPageProps & TAdditionalCustomProps) => Promise<boolean>) | undefined, jwt_keys_manager?: IJwtKeyManager, getApiServerId?: () => ApiServerId): Promise<ReactElement>;
|
|
19
|
+
export declare function withAuthenticatedApiRouteGuard<TAdditionalCustomRouteInputs extends object>(api_route_handler: TProtectedAuthenticatedApiRoute<TAdditionalCustomRouteInputs>, additional_custom_api_route_inputs: TAdditionalCustomRouteInputs, route_guard_type?: "authenticated" | "admin", custom_is_authorized_check?: ((route_inputs: IBaseProtectedAuthenticatedServerComponentPageProps & TAdditionalCustomRouteInputs) => Promise<boolean>) | undefined, jwt_keys_manager?: IJwtKeyManager, getApiServerId?: () => ApiServerId): (req: NextRequest) => Promise<NextResponse>;
|