@tern-secure/nextjs 5.1.8 → 5.1.9
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/cjs/__tests__/gemini_fnTernSecureNextHandler.bench.js +31 -0
- package/dist/cjs/__tests__/gemini_fnTernSecureNextHandler.bench.js.map +1 -0
- package/dist/cjs/app-router/admin/actions.js +62 -0
- package/dist/cjs/app-router/admin/actions.js.map +1 -0
- package/dist/cjs/app-router/admin/constants.js +29 -0
- package/dist/cjs/app-router/admin/constants.js.map +1 -0
- package/dist/cjs/app-router/admin/fnValidators.js +295 -0
- package/dist/cjs/app-router/admin/fnValidators.js.map +1 -0
- package/dist/cjs/app-router/admin/index.js +16 -3
- package/dist/cjs/app-router/admin/index.js.map +1 -1
- package/dist/cjs/app-router/admin/responses.js +120 -0
- package/dist/cjs/app-router/admin/responses.js.map +1 -0
- package/dist/cjs/app-router/admin/sessionHandlers.js +167 -0
- package/dist/cjs/app-router/admin/sessionHandlers.js.map +1 -0
- package/dist/cjs/app-router/admin/ternsecureNextjsHandler.js +84 -0
- package/dist/cjs/app-router/admin/ternsecureNextjsHandler.js.map +1 -0
- package/dist/cjs/app-router/admin/types.js +127 -0
- package/dist/cjs/app-router/admin/types.js.map +1 -0
- package/dist/cjs/app-router/admin/utils.js +107 -0
- package/dist/cjs/app-router/admin/utils.js.map +1 -0
- package/dist/cjs/app-router/admin/validators.js +217 -0
- package/dist/cjs/app-router/admin/validators.js.map +1 -0
- package/dist/cjs/app-router/client/TernSecureProvider.js +2 -6
- package/dist/cjs/app-router/client/TernSecureProvider.js.map +1 -1
- package/dist/cjs/app-router/server/auth.js +100 -0
- package/dist/cjs/app-router/server/auth.js.map +1 -0
- package/dist/cjs/app-router/server/utils.js +87 -0
- package/dist/cjs/app-router/server/utils.js.map +1 -0
- package/dist/cjs/boundary/components.js +4 -7
- package/dist/cjs/boundary/components.js.map +1 -1
- package/dist/cjs/{components/uiComponents.js → constants.js} +17 -18
- package/dist/cjs/constants.js.map +1 -0
- package/dist/cjs/errors.js.map +1 -1
- package/dist/cjs/index.js +4 -9
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/server/constant.js +38 -0
- package/dist/cjs/server/constant.js.map +1 -0
- package/dist/cjs/server/edge-session.js +118 -24
- package/dist/cjs/server/edge-session.js.map +1 -1
- package/dist/cjs/server/headers-utils.js +70 -0
- package/dist/cjs/server/headers-utils.js.map +1 -0
- package/dist/cjs/server/index.js +8 -6
- package/dist/cjs/server/index.js.map +1 -1
- package/dist/cjs/server/jwt-edge.js +47 -19
- package/dist/cjs/server/jwt-edge.js.map +1 -1
- package/dist/cjs/server/jwt.js +11 -4
- package/dist/cjs/server/jwt.js.map +1 -1
- package/dist/cjs/server/nextErrors.js +131 -0
- package/dist/cjs/server/nextErrors.js.map +1 -0
- package/dist/cjs/server/nextFetcher.js +31 -0
- package/dist/cjs/server/nextFetcher.js.map +1 -0
- package/dist/cjs/server/node/SessionTernSecure.js +55 -0
- package/dist/cjs/server/node/SessionTernSecure.js.map +1 -0
- package/dist/cjs/server/{auth.js → node/auth.js} +11 -20
- package/dist/cjs/server/node/auth.js.map +1 -0
- package/dist/cjs/server/node/index.js +40 -0
- package/dist/cjs/server/node/index.js.map +1 -0
- package/dist/cjs/server/node/node-session.js +60 -0
- package/dist/cjs/server/node/node-session.js.map +1 -0
- package/dist/cjs/server/node/ternSecureNodeMiddleware.js +182 -0
- package/dist/cjs/server/node/ternSecureNodeMiddleware.js.map +1 -0
- package/dist/cjs/server/protect.js +90 -0
- package/dist/cjs/server/protect.js.map +1 -0
- package/dist/cjs/server/redirect.js +84 -0
- package/dist/cjs/server/redirect.js.map +1 -0
- package/dist/cjs/server/routeMatcher.js +36 -0
- package/dist/cjs/server/routeMatcher.js.map +1 -0
- package/dist/cjs/server/sdk-versions.js +43 -0
- package/dist/cjs/server/sdk-versions.js.map +1 -0
- package/dist/cjs/server/session-store.js.map +1 -1
- package/dist/cjs/server/ternSecureEdgeMiddleware.js +298 -0
- package/dist/cjs/server/ternSecureEdgeMiddleware.js.map +1 -0
- package/dist/cjs/server/ternSecureFireMiddleware.js +192 -0
- package/dist/cjs/server/ternSecureFireMiddleware.js.map +1 -0
- package/dist/cjs/server/types.js.map +1 -1
- package/dist/cjs/server/utils.js +115 -2
- package/dist/cjs/server/utils.js.map +1 -1
- package/dist/cjs/types.js.map +1 -1
- package/dist/cjs/utils/NextCookieAdapter.js +44 -0
- package/dist/cjs/utils/NextCookieAdapter.js.map +1 -0
- package/dist/cjs/utils/allNextProviderProps.js +10 -24
- package/dist/cjs/utils/allNextProviderProps.js.map +1 -1
- package/dist/cjs/utils/config.js +38 -2
- package/dist/cjs/utils/config.js.map +1 -1
- package/dist/cjs/utils/construct.js.map +1 -1
- package/dist/cjs/utils/fireconfig.js +38 -0
- package/dist/cjs/utils/fireconfig.js.map +1 -0
- package/dist/cjs/utils/logger.js +101 -0
- package/dist/cjs/utils/logger.js.map +1 -0
- package/dist/cjs/utils/redis.js +33 -0
- package/dist/cjs/utils/redis.js.map +1 -0
- package/dist/cjs/utils/response.js +38 -0
- package/dist/cjs/utils/response.js.map +1 -0
- package/dist/cjs/utils/serverRedirectAuth.js +39 -0
- package/dist/cjs/utils/serverRedirectAuth.js.map +1 -0
- package/dist/cjs/utils/ternsecure-sw.js +1 -1
- package/dist/cjs/utils/ternsecure-sw.js.map +1 -1
- package/dist/cjs/utils/withLogger.js +82 -0
- package/dist/cjs/utils/withLogger.js.map +1 -0
- package/dist/esm/__tests__/gemini_fnTernSecureNextHandler.bench.js +30 -0
- package/dist/esm/__tests__/gemini_fnTernSecureNextHandler.bench.js.map +1 -0
- package/dist/esm/app-router/admin/actions.js +40 -0
- package/dist/esm/app-router/admin/actions.js.map +1 -0
- package/dist/esm/app-router/admin/constants.js +5 -0
- package/dist/esm/app-router/admin/constants.js.map +1 -0
- package/dist/esm/app-router/admin/fnValidators.js +270 -0
- package/dist/esm/app-router/admin/fnValidators.js.map +1 -0
- package/dist/esm/app-router/admin/index.js +16 -2
- package/dist/esm/app-router/admin/index.js.map +1 -1
- package/dist/esm/app-router/admin/responses.js +93 -0
- package/dist/esm/app-router/admin/responses.js.map +1 -0
- package/dist/esm/app-router/admin/sessionHandlers.js +131 -0
- package/dist/esm/app-router/admin/sessionHandlers.js.map +1 -0
- package/dist/esm/app-router/admin/ternsecureNextjsHandler.js +62 -0
- package/dist/esm/app-router/admin/ternsecureNextjsHandler.js.map +1 -0
- package/dist/esm/app-router/admin/types.js +98 -0
- package/dist/esm/app-router/admin/types.js.map +1 -0
- package/dist/esm/app-router/admin/utils.js +80 -0
- package/dist/esm/app-router/admin/utils.js.map +1 -0
- package/dist/esm/app-router/admin/validators.js +189 -0
- package/dist/esm/app-router/admin/validators.js.map +1 -0
- package/dist/esm/app-router/client/TernSecureProvider.js +2 -6
- package/dist/esm/app-router/client/TernSecureProvider.js.map +1 -1
- package/dist/esm/app-router/server/auth.js +81 -0
- package/dist/esm/app-router/server/auth.js.map +1 -0
- package/dist/esm/app-router/server/utils.js +51 -0
- package/dist/esm/app-router/server/utils.js.map +1 -0
- package/dist/esm/boundary/components.js +4 -7
- package/dist/esm/boundary/components.js.map +1 -1
- package/dist/esm/constants.js +17 -0
- package/dist/esm/constants.js.map +1 -0
- package/dist/esm/errors.js.map +1 -1
- package/dist/esm/index.js +5 -11
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/server/constant.js +11 -0
- package/dist/esm/server/constant.js.map +1 -0
- package/dist/esm/server/edge-session.js +113 -22
- package/dist/esm/server/edge-session.js.map +1 -1
- package/dist/esm/server/headers-utils.js +41 -0
- package/dist/esm/server/headers-utils.js.map +1 -0
- package/dist/esm/server/index.js +9 -3
- package/dist/esm/server/index.js.map +1 -1
- package/dist/esm/server/jwt-edge.js +48 -20
- package/dist/esm/server/jwt-edge.js.map +1 -1
- package/dist/esm/server/jwt.js +12 -5
- package/dist/esm/server/jwt.js.map +1 -1
- package/dist/esm/server/nextErrors.js +97 -0
- package/dist/esm/server/nextErrors.js.map +1 -0
- package/dist/esm/server/nextFetcher.js +7 -0
- package/dist/esm/server/nextFetcher.js.map +1 -0
- package/dist/esm/server/node/SessionTernSecure.js +31 -0
- package/dist/esm/server/node/SessionTernSecure.js.map +1 -0
- package/dist/esm/server/{auth.js → node/auth.js} +11 -20
- package/dist/esm/server/node/auth.js.map +1 -0
- package/dist/esm/server/node/index.js +19 -0
- package/dist/esm/server/node/index.js.map +1 -0
- package/dist/esm/server/node/node-session.js +36 -0
- package/dist/esm/server/node/node-session.js.map +1 -0
- package/dist/esm/server/node/ternSecureNodeMiddleware.js +165 -0
- package/dist/esm/server/node/ternSecureNodeMiddleware.js.map +1 -0
- package/dist/esm/server/protect.js +66 -0
- package/dist/esm/server/protect.js.map +1 -0
- package/dist/esm/server/redirect.js +60 -0
- package/dist/esm/server/redirect.js.map +1 -0
- package/dist/esm/server/routeMatcher.js +12 -0
- package/dist/esm/server/routeMatcher.js.map +1 -0
- package/dist/esm/server/sdk-versions.js +8 -0
- package/dist/esm/server/sdk-versions.js.map +1 -0
- package/dist/esm/server/session-store.js.map +1 -1
- package/dist/esm/server/ternSecureEdgeMiddleware.js +286 -0
- package/dist/esm/server/ternSecureEdgeMiddleware.js.map +1 -0
- package/dist/esm/server/ternSecureFireMiddleware.js +179 -0
- package/dist/esm/server/ternSecureFireMiddleware.js.map +1 -0
- package/dist/esm/server/utils.js +99 -1
- package/dist/esm/server/utils.js.map +1 -1
- package/dist/esm/types.js.map +1 -1
- package/dist/esm/utils/NextCookieAdapter.js +20 -0
- package/dist/esm/utils/NextCookieAdapter.js.map +1 -0
- package/dist/esm/utils/allNextProviderProps.js +10 -24
- package/dist/esm/utils/allNextProviderProps.js.map +1 -1
- package/dist/esm/utils/config.js +34 -1
- package/dist/esm/utils/config.js.map +1 -1
- package/dist/esm/utils/construct.js +1 -1
- package/dist/esm/utils/construct.js.map +1 -1
- package/dist/esm/utils/fireconfig.js +14 -0
- package/dist/esm/utils/fireconfig.js.map +1 -0
- package/dist/esm/utils/logger.js +74 -0
- package/dist/esm/utils/logger.js.map +1 -0
- package/dist/esm/utils/redis.js +9 -0
- package/dist/esm/utils/redis.js.map +1 -0
- package/dist/esm/utils/response.js +13 -0
- package/dist/esm/utils/response.js.map +1 -0
- package/dist/esm/utils/serverRedirectAuth.js +17 -0
- package/dist/esm/utils/serverRedirectAuth.js.map +1 -0
- package/dist/esm/utils/ternsecure-sw.js +1 -1
- package/dist/esm/utils/ternsecure-sw.js.map +1 -1
- package/dist/esm/utils/withLogger.js +57 -0
- package/dist/esm/utils/withLogger.js.map +1 -0
- package/dist/types/app-router/admin/actions.d.ts +19 -0
- package/dist/types/app-router/admin/actions.d.ts.map +1 -0
- package/dist/types/app-router/admin/constants.d.ts +2 -0
- package/dist/types/app-router/admin/constants.d.ts.map +1 -0
- package/dist/types/app-router/admin/fnValidators.d.ts +35 -0
- package/dist/types/app-router/admin/fnValidators.d.ts.map +1 -0
- package/dist/types/app-router/admin/index.d.ts +3 -1
- package/dist/types/app-router/admin/index.d.ts.map +1 -1
- package/dist/types/app-router/admin/responses.d.ts +28 -0
- package/dist/types/app-router/admin/responses.d.ts.map +1 -0
- package/dist/types/app-router/admin/sessionHandlers.d.ts +26 -0
- package/dist/types/app-router/admin/sessionHandlers.d.ts.map +1 -0
- package/dist/types/app-router/admin/ternsecureNextjsHandler.d.ts +7 -0
- package/dist/types/app-router/admin/ternsecureNextjsHandler.d.ts.map +1 -0
- package/dist/types/app-router/admin/types.d.ts +105 -0
- package/dist/types/app-router/admin/types.d.ts.map +1 -0
- package/dist/types/app-router/admin/utils.d.ts +53 -0
- package/dist/types/app-router/admin/utils.d.ts.map +1 -0
- package/dist/types/app-router/admin/validators.d.ts +46 -0
- package/dist/types/app-router/admin/validators.d.ts.map +1 -0
- package/dist/types/app-router/client/TernSecureProvider.d.ts.map +1 -1
- package/dist/types/app-router/server/auth.d.ts +26 -0
- package/dist/types/app-router/server/auth.d.ts.map +1 -0
- package/dist/types/app-router/server/utils.d.ts +5 -0
- package/dist/types/app-router/server/utils.d.ts.map +1 -0
- package/dist/types/boundary/components.d.ts +1 -1
- package/dist/types/boundary/components.d.ts.map +1 -1
- package/dist/types/constants.d.ts +11 -0
- package/dist/types/constants.d.ts.map +1 -0
- package/dist/types/errors.d.ts +1 -1
- package/dist/types/errors.d.ts.map +1 -1
- package/dist/types/index.d.ts +3 -3
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/server/constant.d.ts +5 -0
- package/dist/types/server/constant.d.ts.map +1 -0
- package/dist/types/server/edge-session.d.ts +13 -1
- package/dist/types/server/edge-session.d.ts.map +1 -1
- package/dist/types/server/headers-utils.d.ts +10 -0
- package/dist/types/server/headers-utils.d.ts.map +1 -0
- package/dist/types/server/index.d.ts +6 -3
- package/dist/types/server/index.d.ts.map +1 -1
- package/dist/types/server/jwt-edge.d.ts +12 -18
- package/dist/types/server/jwt-edge.d.ts.map +1 -1
- package/dist/types/server/jwt.d.ts +12 -18
- package/dist/types/server/jwt.d.ts.map +1 -1
- package/dist/types/server/nextErrors.d.ts +54 -0
- package/dist/types/server/nextErrors.d.ts.map +1 -0
- package/dist/types/server/nextFetcher.d.ts +26 -0
- package/dist/types/server/nextFetcher.d.ts.map +1 -0
- package/dist/types/server/node/SessionTernSecure.d.ts +3 -0
- package/dist/types/server/node/SessionTernSecure.d.ts.map +1 -0
- package/dist/types/server/{auth.d.ts → node/auth.d.ts} +5 -5
- package/dist/types/server/node/auth.d.ts.map +1 -0
- package/dist/types/server/node/index.d.ts +3 -0
- package/dist/types/server/node/index.d.ts.map +1 -0
- package/dist/types/server/node/node-session.d.ts +4 -0
- package/dist/types/server/node/node-session.d.ts.map +1 -0
- package/dist/types/server/node/ternSecureNodeMiddleware.d.ts +54 -0
- package/dist/types/server/node/ternSecureNodeMiddleware.d.ts.map +1 -0
- package/dist/types/server/protect.d.ts +26 -0
- package/dist/types/server/protect.d.ts.map +1 -0
- package/dist/types/server/redirect.d.ts +20 -0
- package/dist/types/server/redirect.d.ts.map +1 -0
- package/dist/types/server/routeMatcher.d.ts +13 -0
- package/dist/types/server/routeMatcher.d.ts.map +1 -0
- package/dist/types/server/sdk-versions.d.ts +8 -0
- package/dist/types/server/sdk-versions.d.ts.map +1 -0
- package/dist/types/server/session-store.d.ts.map +1 -1
- package/dist/types/server/ternSecureEdgeMiddleware.d.ts +47 -0
- package/dist/types/server/ternSecureEdgeMiddleware.d.ts.map +1 -0
- package/dist/types/server/ternSecureFireMiddleware.d.ts +47 -0
- package/dist/types/server/ternSecureFireMiddleware.d.ts.map +1 -0
- package/dist/types/server/types.d.ts +16 -2
- package/dist/types/server/types.d.ts.map +1 -1
- package/dist/types/server/utils.d.ts +7 -0
- package/dist/types/server/utils.d.ts.map +1 -1
- package/dist/types/types.d.ts +33 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utils/NextCookieAdapter.d.ts +9 -0
- package/dist/types/utils/NextCookieAdapter.d.ts.map +1 -0
- package/dist/types/utils/allNextProviderProps.d.ts +1 -1
- package/dist/types/utils/allNextProviderProps.d.ts.map +1 -1
- package/dist/types/utils/config.d.ts +17 -1
- package/dist/types/utils/config.d.ts.map +1 -1
- package/dist/types/utils/fireconfig.d.ts +4 -0
- package/dist/types/utils/fireconfig.d.ts.map +1 -0
- package/dist/types/utils/logger.d.ts +27 -0
- package/dist/types/utils/logger.d.ts.map +1 -0
- package/dist/types/utils/redis.d.ts +8 -0
- package/dist/types/utils/redis.d.ts.map +1 -0
- package/dist/types/utils/response.d.ts +3 -0
- package/dist/types/utils/response.d.ts.map +1 -0
- package/dist/types/utils/serverRedirectAuth.d.ts +6 -0
- package/dist/types/utils/serverRedirectAuth.d.ts.map +1 -0
- package/dist/types/utils/withLogger.d.ts +17 -0
- package/dist/types/utils/withLogger.d.ts.map +1 -0
- package/package.json +21 -7
- package/server/node/package.json +5 -0
- package/server/package.json +5 -0
- package/dist/cjs/app-router/admin/sessionHandler.js +0 -74
- package/dist/cjs/app-router/admin/sessionHandler.js.map +0 -1
- package/dist/cjs/app-router/client/actions.js +0 -4
- package/dist/cjs/app-router/client/actions.js.map +0 -1
- package/dist/cjs/components/uiComponents.js.map +0 -1
- package/dist/cjs/server/auth.js.map +0 -1
- package/dist/cjs/server/ternSecureMiddleware.js +0 -95
- package/dist/cjs/server/ternSecureMiddleware.js.map +0 -1
- package/dist/cjs/utils/tern-ui-script.js +0 -78
- package/dist/cjs/utils/tern-ui-script.js.map +0 -1
- package/dist/esm/app-router/admin/sessionHandler.js +0 -50
- package/dist/esm/app-router/admin/sessionHandler.js.map +0 -1
- package/dist/esm/app-router/client/actions.js +0 -3
- package/dist/esm/app-router/client/actions.js.map +0 -1
- package/dist/esm/components/uiComponents.js +0 -21
- package/dist/esm/components/uiComponents.js.map +0 -1
- package/dist/esm/server/auth.js.map +0 -1
- package/dist/esm/server/ternSecureMiddleware.js +0 -69
- package/dist/esm/server/ternSecureMiddleware.js.map +0 -1
- package/dist/esm/utils/tern-ui-script.js +0 -44
- package/dist/esm/utils/tern-ui-script.js.map +0 -1
- package/dist/types/app-router/admin/sessionHandler.d.ts +0 -3
- package/dist/types/app-router/admin/sessionHandler.d.ts.map +0 -1
- package/dist/types/app-router/client/actions.d.ts +0 -2
- package/dist/types/app-router/client/actions.d.ts.map +0 -1
- package/dist/types/components/uiComponents.d.ts +0 -6
- package/dist/types/components/uiComponents.d.ts.map +0 -1
- package/dist/types/server/auth.d.ts.map +0 -1
- package/dist/types/server/ternSecureMiddleware.d.ts +0 -20
- package/dist/types/server/ternSecureMiddleware.d.ts.map +0 -1
- package/dist/types/utils/tern-ui-script.d.ts +0 -9
- package/dist/types/utils/tern-ui-script.d.ts.map +0 -1
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import {
|
|
2
|
+
constants
|
|
3
|
+
} from "@tern-secure/backend";
|
|
4
|
+
import { NextResponse } from "next/server";
|
|
5
|
+
const serverRedirectWithAuth = (ternSecureRequest, res) => {
|
|
6
|
+
const location = res.headers.get("location");
|
|
7
|
+
const shouldAppendDevBrowser = res.headers.get(constants.Headers.TernSecureRedirectTo) === "true";
|
|
8
|
+
if (shouldAppendDevBrowser && !!location && ternSecureRequest.ternUrl.isCrossOrigin(location)) {
|
|
9
|
+
const url = new URL(location);
|
|
10
|
+
return NextResponse.redirect(url.href, res);
|
|
11
|
+
}
|
|
12
|
+
return res;
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
serverRedirectWithAuth
|
|
16
|
+
};
|
|
17
|
+
//# sourceMappingURL=serverRedirectAuth.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/serverRedirectAuth.ts"],"sourcesContent":["import type {\n TernSecureRequest,\n} from \"@tern-secure/backend\";\nimport {\n constants\n} from \"@tern-secure/backend\";\nimport { NextResponse } from 'next/server';\n\n/**\n * Grabs the dev browser JWT from cookies and appends it to the redirect URL when redirecting to cross-origin.\n */\nexport const serverRedirectWithAuth = (ternSecureRequest: TernSecureRequest, res: Response) => {\n const location = res.headers.get('location');\n const shouldAppendDevBrowser = res.headers.get(constants.Headers.TernSecureRedirectTo) === 'true';\n\n if (\n shouldAppendDevBrowser &&\n !!location &&\n ternSecureRequest.ternUrl.isCrossOrigin(location)\n ) {\n // Next.js 12.1+ allows redirects only to absolute URLs\n const url = new URL(location);\n return NextResponse.redirect(url.href, res);\n }\n return res;\n};\n"],"mappings":"AAGA;AAAA,EACE;AAAA,OACK;AACP,SAAS,oBAAoB;AAKtB,MAAM,yBAAyB,CAAC,mBAAsC,QAAkB;AAC7F,QAAM,WAAW,IAAI,QAAQ,IAAI,UAAU;AAC3C,QAAM,yBAAyB,IAAI,QAAQ,IAAI,UAAU,QAAQ,oBAAoB,MAAM;AAE3F,MACE,0BACA,CAAC,CAAC,YACF,kBAAkB,QAAQ,cAAc,QAAQ,GAChD;AAEA,UAAM,MAAM,IAAI,IAAI,QAAQ;AAC5B,WAAO,aAAa,SAAS,IAAI,MAAM,GAAG;AAAA,EAC5C;AACA,SAAO;AACT;","names":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/utils/ternsecure-sw.ts"],"sourcesContent":["'use client';\n\nimport {
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/ternsecure-sw.ts"],"sourcesContent":["'use client';\n\nimport { reg } from '@tern-secure/shared/serviceWorker';\nimport type { TernSecureConfig } from '@tern-secure/types';\nimport { useEffect } from 'react';\n\ninterface TernUIServiceWorkerProps {\n ternSecureConfig?: TernSecureConfig;\n baseUrl?: string;\n}\n\nexport const TernUIServiceWorker: React.FC<TernUIServiceWorkerProps> = ({ \n ternSecureConfig,\n baseUrl = window.location.origin \n}) => {\n useEffect(() => {\n const registerServiceWorker = async () => {\n if (!ternSecureConfig) {\n console.warn('[TernSecure] Service worker registration skipped: config not provided');\n return;\n }\n\n try {\n await reg({\n firebaseConfig: ternSecureConfig,\n domain: baseUrl\n });\n } catch (error) {\n console.error('[TernSecure] Service worker registration failed:', error);\n }\n };\n\n registerServiceWorker();\n }, [ternSecureConfig, baseUrl]);\n\n return null;\n};"],"mappings":";AAEA,SAAS,WAAW;AAEpB,SAAS,iBAAiB;AAOnB,MAAM,sBAA0D,CAAC;AAAA,EACpE;AAAA,EACA,UAAU,OAAO,SAAS;AAC9B,MAAM;AACJ,YAAU,MAAM;AACd,UAAM,wBAAwB,YAAY;AACxC,UAAI,CAAC,kBAAkB;AACrB,gBAAQ,KAAK,uEAAuE;AACpF;AAAA,MACF;AAEA,UAAI;AACF,cAAM,IAAI;AAAA,UACR,gBAAgB;AAAA,UAChB,QAAQ;AAAA,QACV,CAAC;AAAA,MACH,SAAS,OAAO;AACd,gBAAQ,MAAM,oDAAoD,KAAK;AAAA,MACzE;AAAA,IACF;AAEA,0BAAsB;AAAA,EACxB,GAAG,CAAC,kBAAkB,OAAO,CAAC;AAE9B,SAAO;AACT;","names":[]}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { LogLevel, middlewareLogger } from "./logger";
|
|
2
|
+
function createEdgeCompatibleLogger(debug = false) {
|
|
3
|
+
if (debug) {
|
|
4
|
+
middlewareLogger.enable();
|
|
5
|
+
middlewareLogger.setLevel(LogLevel.DEBUG);
|
|
6
|
+
}
|
|
7
|
+
return {
|
|
8
|
+
logStart: (requestId, method, url) => {
|
|
9
|
+
middlewareLogger.debug(`[${requestId}] Middleware started for ${method} ${url}`);
|
|
10
|
+
},
|
|
11
|
+
logEnd: (requestId, duration) => {
|
|
12
|
+
middlewareLogger.debug(`[${requestId}] Middleware completed in ${duration.toFixed(2)}ms`);
|
|
13
|
+
},
|
|
14
|
+
logError: (requestId, duration, error) => {
|
|
15
|
+
middlewareLogger.error(
|
|
16
|
+
`[${requestId}] Middleware failed after ${duration.toFixed(2)}ms:`,
|
|
17
|
+
error instanceof Error ? error.message : "Unknown error"
|
|
18
|
+
);
|
|
19
|
+
},
|
|
20
|
+
debug: (message, ...args) => middlewareLogger.debug(message, ...args),
|
|
21
|
+
info: (message, ...args) => middlewareLogger.info(message, ...args),
|
|
22
|
+
warn: (message, ...args) => middlewareLogger.warn(message, ...args),
|
|
23
|
+
error: (message, ...args) => middlewareLogger.error(message, ...args)
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
const withLogger = (middleware, options = {}) => {
|
|
27
|
+
const { debug = false, logLevel = LogLevel.INFO } = options;
|
|
28
|
+
if (debug) {
|
|
29
|
+
middlewareLogger.enable();
|
|
30
|
+
middlewareLogger.setLevel(LogLevel.DEBUG);
|
|
31
|
+
} else {
|
|
32
|
+
middlewareLogger.setLevel(logLevel);
|
|
33
|
+
}
|
|
34
|
+
return async (request, event) => {
|
|
35
|
+
const startTime = performance.now();
|
|
36
|
+
const requestId = crypto.randomUUID().slice(0, 8);
|
|
37
|
+
middlewareLogger.debug(`[${requestId}] Middleware started for ${request.method} ${request.url}`);
|
|
38
|
+
try {
|
|
39
|
+
const result = await middleware(request, event);
|
|
40
|
+
const duration = performance.now() - startTime;
|
|
41
|
+
middlewareLogger.debug(`[${requestId}] Middleware completed in ${duration.toFixed(2)}ms`);
|
|
42
|
+
return result;
|
|
43
|
+
} catch (error) {
|
|
44
|
+
const duration = performance.now() - startTime;
|
|
45
|
+
middlewareLogger.error(
|
|
46
|
+
`[${requestId}] Middleware failed after ${duration.toFixed(2)}ms:`,
|
|
47
|
+
error instanceof Error ? error.message : "Unknown error"
|
|
48
|
+
);
|
|
49
|
+
throw error;
|
|
50
|
+
}
|
|
51
|
+
};
|
|
52
|
+
};
|
|
53
|
+
export {
|
|
54
|
+
createEdgeCompatibleLogger,
|
|
55
|
+
withLogger
|
|
56
|
+
};
|
|
57
|
+
//# sourceMappingURL=withLogger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/withLogger.ts"],"sourcesContent":["import type { NextMiddleware } from \"next/server\"\n\nimport { LogLevel,middlewareLogger } from \"./logger\"\n\nexport interface WithLoggerOptions {\n debug?: boolean\n logLevel?: LogLevel\n}\n\nexport function createEdgeCompatibleLogger(debug: boolean = false) {\n if (debug) {\n middlewareLogger.enable()\n middlewareLogger.setLevel(LogLevel.DEBUG)\n }\n \n return {\n logStart: (requestId: string, method: string, url: string) => {\n middlewareLogger.debug(`[${requestId}] Middleware started for ${method} ${url}`)\n },\n logEnd: (requestId: string, duration: number) => {\n middlewareLogger.debug(`[${requestId}] Middleware completed in ${duration.toFixed(2)}ms`)\n },\n logError: (requestId: string, duration: number, error: unknown) => {\n middlewareLogger.error(\n `[${requestId}] Middleware failed after ${duration.toFixed(2)}ms:`,\n error instanceof Error ? error.message : 'Unknown error'\n )\n },\n debug: (message: string, ...args: any[]) => middlewareLogger.debug(message, ...args),\n info: (message: string, ...args: any[]) => middlewareLogger.info(message, ...args),\n warn: (message: string, ...args: any[]) => middlewareLogger.warn(message, ...args),\n error: (message: string, ...args: any[]) => middlewareLogger.error(message, ...args),\n }\n}\n\nexport const withLogger = (\n middleware: NextMiddleware,\n options: WithLoggerOptions = {}\n): NextMiddleware => {\n const { debug = false, logLevel = LogLevel.INFO } = options\n\n if (debug) {\n middlewareLogger.enable()\n middlewareLogger.setLevel(LogLevel.DEBUG)\n } else {\n middlewareLogger.setLevel(logLevel)\n }\n\n return async (request, event) => {\n const startTime = performance.now()\n const requestId = crypto.randomUUID().slice(0, 8)\n \n middlewareLogger.debug(`[${requestId}] Middleware started for ${request.method} ${request.url}`)\n\n try {\n const result = await middleware(request, event)\n const duration = performance.now() - startTime\n \n middlewareLogger.debug(`[${requestId}] Middleware completed in ${duration.toFixed(2)}ms`)\n \n return result\n } catch (error) {\n const duration = performance.now() - startTime\n \n middlewareLogger.error(\n `[${requestId}] Middleware failed after ${duration.toFixed(2)}ms:`,\n error instanceof Error ? error.message : 'Unknown error'\n )\n \n throw error\n }\n }\n}"],"mappings":"AAEA,SAAS,UAAS,wBAAwB;AAOnC,SAAS,2BAA2B,QAAiB,OAAO;AACjE,MAAI,OAAO;AACT,qBAAiB,OAAO;AACxB,qBAAiB,SAAS,SAAS,KAAK;AAAA,EAC1C;AAEA,SAAO;AAAA,IACL,UAAU,CAAC,WAAmB,QAAgB,QAAgB;AAC5D,uBAAiB,MAAM,IAAI,SAAS,4BAA4B,MAAM,IAAI,GAAG,EAAE;AAAA,IACjF;AAAA,IACA,QAAQ,CAAC,WAAmB,aAAqB;AAC/C,uBAAiB,MAAM,IAAI,SAAS,6BAA6B,SAAS,QAAQ,CAAC,CAAC,IAAI;AAAA,IAC1F;AAAA,IACA,UAAU,CAAC,WAAmB,UAAkB,UAAmB;AACjE,uBAAiB;AAAA,QACf,IAAI,SAAS,6BAA6B,SAAS,QAAQ,CAAC,CAAC;AAAA,QAC7D,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC3C;AAAA,IACF;AAAA,IACA,OAAO,CAAC,YAAoB,SAAgB,iBAAiB,MAAM,SAAS,GAAG,IAAI;AAAA,IACnF,MAAM,CAAC,YAAoB,SAAgB,iBAAiB,KAAK,SAAS,GAAG,IAAI;AAAA,IACjF,MAAM,CAAC,YAAoB,SAAgB,iBAAiB,KAAK,SAAS,GAAG,IAAI;AAAA,IACjF,OAAO,CAAC,YAAoB,SAAgB,iBAAiB,MAAM,SAAS,GAAG,IAAI;AAAA,EACrF;AACF;AAEO,MAAM,aAAa,CACxB,YACA,UAA6B,CAAC,MACX;AACnB,QAAM,EAAE,QAAQ,OAAO,WAAW,SAAS,KAAK,IAAI;AAEpD,MAAI,OAAO;AACT,qBAAiB,OAAO;AACxB,qBAAiB,SAAS,SAAS,KAAK;AAAA,EAC1C,OAAO;AACL,qBAAiB,SAAS,QAAQ;AAAA,EACpC;AAEA,SAAO,OAAO,SAAS,UAAU;AAC/B,UAAM,YAAY,YAAY,IAAI;AAClC,UAAM,YAAY,OAAO,WAAW,EAAE,MAAM,GAAG,CAAC;AAEhD,qBAAiB,MAAM,IAAI,SAAS,4BAA4B,QAAQ,MAAM,IAAI,QAAQ,GAAG,EAAE;AAE/F,QAAI;AACF,YAAM,SAAS,MAAM,WAAW,SAAS,KAAK;AAC9C,YAAM,WAAW,YAAY,IAAI,IAAI;AAErC,uBAAiB,MAAM,IAAI,SAAS,6BAA6B,SAAS,QAAQ,CAAC,CAAC,IAAI;AAExF,aAAO;AAAA,IACT,SAAS,OAAO;AACd,YAAM,WAAW,YAAY,IAAI,IAAI;AAErC,uBAAiB;AAAA,QACf,IAAI,SAAS,6BAA6B,SAAS,QAAQ,CAAC,CAAC;AAAA,QAC7D,iBAAiB,QAAQ,MAAM,UAAU;AAAA,MAC3C;AAEA,YAAM;AAAA,IACR;AAAA,EACF;AACF;","names":[]}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
export declare function createSessionCookieServer(idToken: string): Promise<import("@tern-secure/types").SessionResult>;
|
|
2
|
+
export declare function clearSessionCookieServer(): Promise<import("@tern-secure/types").SessionResult>;
|
|
3
|
+
export declare function clearNextSessionCookie(): Promise<{
|
|
4
|
+
success: boolean;
|
|
5
|
+
message: string;
|
|
6
|
+
}>;
|
|
7
|
+
export declare function setNextServerSession(idToken: string): Promise<{
|
|
8
|
+
success: boolean;
|
|
9
|
+
message: string;
|
|
10
|
+
}>;
|
|
11
|
+
export declare function setNextServerToken(token: string): Promise<{
|
|
12
|
+
success: boolean;
|
|
13
|
+
message: string;
|
|
14
|
+
}>;
|
|
15
|
+
export declare function createNextSessionCookie(idToken: string): Promise<{
|
|
16
|
+
success: boolean;
|
|
17
|
+
message: string;
|
|
18
|
+
}>;
|
|
19
|
+
//# sourceMappingURL=actions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"actions.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/actions.ts"],"names":[],"mappings":"AAcA,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,MAAM,uDAG9D;AAED,wBAAsB,wBAAwB,wDAG7C;AAED,wBAAsB,sBAAsB;;;GAE3C;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,MAAM;;;GAEzD;AAED,wBAAsB,kBAAkB,CAAC,KAAK,EAAE,MAAM;;;GAErD;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,MAAM;;;GAE5D"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS,QAAmD,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { type NextRequest, NextResponse } from 'next/server';
|
|
2
|
+
import type { AuthEndpoint, ComprehensiveValidationResult, CorsOptions, EndpointConfig, SecurityOptions, SessionSubEndpoint, ValidationConfig } from './types';
|
|
3
|
+
export interface RequestContext {
|
|
4
|
+
request: NextRequest;
|
|
5
|
+
origin: string | null;
|
|
6
|
+
host: string | null;
|
|
7
|
+
referer: string | null;
|
|
8
|
+
userAgent: string;
|
|
9
|
+
method: string;
|
|
10
|
+
pathSegments: string[];
|
|
11
|
+
}
|
|
12
|
+
export declare function createRequestContext(request: NextRequest): RequestContext;
|
|
13
|
+
/**
|
|
14
|
+
* Main validators factory function
|
|
15
|
+
* Returns an object containing all validator functions and utilities
|
|
16
|
+
*/
|
|
17
|
+
export declare function createValidators(context: RequestContext): {
|
|
18
|
+
createValidationConfig: (overrides?: Partial<ValidationConfig>) => ValidationConfig;
|
|
19
|
+
validateRequest: (config: ValidationConfig) => Promise<ComprehensiveValidationResult>;
|
|
20
|
+
validateCors: (corsOptions: CorsOptions) => Promise<NextResponse | null>;
|
|
21
|
+
validateSecurity: (securityOptions: SecurityOptions) => Promise<NextResponse | null>;
|
|
22
|
+
validatePathStructure: () => NextResponse | null;
|
|
23
|
+
validateEndpoint: (_endpoint: AuthEndpoint, endpointConfig: EndpointConfig) => NextResponse | null;
|
|
24
|
+
validateSubEndpoint: (subEndpoint: SessionSubEndpoint | undefined, subEndpointConfig: any) => NextResponse | null;
|
|
25
|
+
validateSessionRequest: () => Promise<{
|
|
26
|
+
body: any;
|
|
27
|
+
idToken?: string;
|
|
28
|
+
csrfToken?: string;
|
|
29
|
+
error?: NextResponse;
|
|
30
|
+
}>;
|
|
31
|
+
validateIdToken: (idToken: string | undefined) => NextResponse | null;
|
|
32
|
+
validateCsrfToken: (csrfToken: string, csrfCookieValue: string | undefined) => NextResponse | null;
|
|
33
|
+
createCorsOptionsResponse: (corsOptions: CorsOptions) => NextResponse;
|
|
34
|
+
};
|
|
35
|
+
//# sourceMappingURL=fnValidators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"fnValidators.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/fnValidators.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG7D,OAAO,KAAK,EACV,YAAY,EACZ,6BAA6B,EAC7B,WAAW,EACX,cAAc,EACd,eAAe,EACf,kBAAkB,EAClB,gBAAgB,EACjB,MAAM,SAAS,CAAC;AAEjB,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,WAAW,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,WAAW,GAAG,cAAc,CAazE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc;yCA4SX,OAAO,CAAC,gBAAgB,CAAC,KAAQ,gBAAgB;8BA7ErD,gBAAgB,KAAG,OAAO,CAAC,6BAA6B,CAAC;gCA5NvD,WAAW,KAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;wCAqDlC,eAAe,KAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;iCA0F7D,YAAY,GAAG,IAAI;kCAYxC,YAAY,kBACP,cAAc,KAC7B,YAAY,GAAG,IAAI;uCAaP,kBAAkB,GAAG,SAAS,qBACxB,GAAG,KACrB,YAAY,GAAG,IAAI;kCAgBmB,OAAO,CAAC;QAC/C,IAAI,EAAE,GAAG,CAAC;QACV,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;+BAYgC,MAAM,GAAG,SAAS,KAAG,YAAY,GAAG,IAAI;mCAhF7D,MAAM,mBACA,MAAM,GAAG,SAAS,KAClC,YAAY,GAAG,IAAI;6CAvG0B,WAAW,KAAG,YAAY;EAuS3E"}
|
|
@@ -1,2 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { createTernSecureNextJsHandler } from './ternsecureNextjsHandler';
|
|
2
|
+
export { clearSessionCookieServer, clearNextSessionCookie, createSessionCookieServer, createNextSessionCookie, setNextServerSession, setNextServerToken } from './actions';
|
|
3
|
+
export type { TernSecureHandlerOptions } from './types';
|
|
2
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,2BAA2B,CAAA;AAEzE,OAAO,EACH,wBAAwB,EACxB,sBAAsB,EACtB,yBAAyB,EACzB,uBAAuB,EACvB,oBAAoB,EACpB,kBAAkB,EACrB,MAAM,WAAW,CAAA;AAElB,YAAY,EAAE,wBAAwB,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { NextResponse } from 'next/server';
|
|
2
|
+
/**
|
|
3
|
+
* Standardized error response creation
|
|
4
|
+
*/
|
|
5
|
+
export declare function createApiErrorResponse(code: string, message: string, status: number): NextResponse;
|
|
6
|
+
/**
|
|
7
|
+
* Standardized success response creation
|
|
8
|
+
*/
|
|
9
|
+
export declare function createApiSuccessResponse<T>(data: T, status?: number): NextResponse;
|
|
10
|
+
/**
|
|
11
|
+
* Session verification response utilities
|
|
12
|
+
*/
|
|
13
|
+
export declare class SessionResponseHelper {
|
|
14
|
+
static createVerificationResponse(decodedSession: any): NextResponse;
|
|
15
|
+
static createUnauthorizedResponse(): NextResponse;
|
|
16
|
+
static createSessionCreationResponse(res: any): NextResponse;
|
|
17
|
+
static createRefreshResponse(refreshRes: any): NextResponse;
|
|
18
|
+
static createRevokeResponse(res: any): NextResponse;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* HTTP method response utilities
|
|
22
|
+
*/
|
|
23
|
+
export declare class HttpResponseHelper {
|
|
24
|
+
static createMethodNotAllowedResponse(): NextResponse;
|
|
25
|
+
static createNotFoundResponse(): NextResponse;
|
|
26
|
+
static createSubEndpointNotSupportedResponse(): NextResponse;
|
|
27
|
+
}
|
|
28
|
+
//# sourceMappingURL=responses.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"responses.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/responses.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,OAAO,EAAE,MAAM,EACf,MAAM,EAAE,MAAM,GACb,YAAY,CAiBd;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,GAAE,MAAY,GAAG,YAAY,CAQvF;AAED;;GAEG;AACH,qBAAa,qBAAqB;IAChC,MAAM,CAAC,0BAA0B,CAAC,cAAc,EAAE,GAAG,GAAG,YAAY;IAQpE,MAAM,CAAC,0BAA0B,IAAI,YAAY;IAIjD,MAAM,CAAC,6BAA6B,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY;IAoB5D,MAAM,CAAC,qBAAqB,CAAC,UAAU,EAAE,GAAG,GAAG,YAAY;IAY3D,MAAM,CAAC,oBAAoB,CAAC,GAAG,EAAE,GAAG,GAAG,YAAY;CAUpD;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,MAAM,CAAC,8BAA8B,IAAI,YAAY;IAIrD,MAAM,CAAC,sBAAsB,IAAI,YAAY;IAI7C,MAAM,CAAC,qCAAqC,IAAI,YAAY;CAO7D"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { NextRequest, NextResponse } from 'next/server';
|
|
2
|
+
import type { SessionSubEndpoint, TernSecureHandlerOptions, TernSecureInternalHandlerConfig } from './types';
|
|
3
|
+
/**
|
|
4
|
+
* Session GET request handlers
|
|
5
|
+
*/
|
|
6
|
+
export declare class SessionGetHandler {
|
|
7
|
+
static handle(request: NextRequest, subEndpoint: SessionSubEndpoint, _config: Required<TernSecureHandlerOptions>): Promise<NextResponse>;
|
|
8
|
+
private static handleVerify;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* Session POST request handlers
|
|
12
|
+
*/
|
|
13
|
+
export declare class SessionPostHandler {
|
|
14
|
+
static handle(request: NextRequest, subEndpoint: SessionSubEndpoint, _config: TernSecureInternalHandlerConfig): Promise<NextResponse>;
|
|
15
|
+
private static handleCreateSession;
|
|
16
|
+
private static handleRefreshSession;
|
|
17
|
+
private static handleRevokeSession;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Main session endpoint orchestrator
|
|
21
|
+
*/
|
|
22
|
+
export declare class SessionEndpointHandler {
|
|
23
|
+
static handle(request: NextRequest, method: string, subEndpoint: SessionSubEndpoint | undefined, config: Required<TernSecureHandlerOptions>): Promise<NextResponse>;
|
|
24
|
+
private static validateSubEndpoint;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=sessionHandlers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sessionHandlers.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/sessionHandlers.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI7D,OAAO,KAAK,EACV,kBAAkB,EAClB,wBAAwB,EACxB,+BAA+B,EAChC,MAAM,SAAS,CAAC;AAGjB;;GAEG;AACH,qBAAa,iBAAiB;WACf,MAAM,CACjB,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GAC1C,OAAO,CAAC,YAAY,CAAC;mBASH,YAAY;CAiBlC;AAED;;GAEG;AACH,qBAAa,kBAAkB;WAChB,MAAM,CACjB,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,kBAAkB,EAC/B,OAAO,EAAE,+BAA+B,GACvC,OAAO,CAAC,YAAY,CAAC;mBA0BH,mBAAmB;mBAmBnB,oBAAoB;mBA0BpB,mBAAmB;CAIzC;AAED;;GAEG;AACH,qBAAa,sBAAsB;WACpB,MAAM,CACjB,OAAO,EAAE,WAAW,EACpB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,kBAAkB,GAAG,SAAS,EAC3C,MAAM,EAAE,QAAQ,CAAC,wBAAwB,CAAC,GACzC,OAAO,CAAC,YAAY,CAAC;IA4BxB,OAAO,CAAC,MAAM,CAAC,mBAAmB;CAmBnC"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { NextRequest, NextResponse } from 'next/server';
|
|
2
|
+
import type { TernSecureHandlerOptions } from './types';
|
|
3
|
+
export declare function createTernSecureNextJsHandler(options?: TernSecureHandlerOptions): {
|
|
4
|
+
GET: (request: NextRequest) => Promise<NextResponse>;
|
|
5
|
+
POST: (request: NextRequest) => Promise<NextResponse>;
|
|
6
|
+
};
|
|
7
|
+
//# sourceMappingURL=ternsecureNextjsHandler.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ternsecureNextjsHandler.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/ternsecureNextjsHandler.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO7D,OAAO,KAAK,EAGV,wBAAwB,EACQ,MAAM,SAAS,CAAC;AA4ClD,wBAAgB,6BAA6B,CAAC,OAAO,CAAC,EAAE,wBAAwB;mBAW9C,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC;oBAAnC,WAAW,KAAG,OAAO,CAAC,YAAY,CAAC;EA0BpE"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
import { type NextResponse } from 'next/server';
|
|
2
|
+
export interface CorsOptions {
|
|
3
|
+
allowedOrigins: string[] | '*';
|
|
4
|
+
allowedMethods?: string[];
|
|
5
|
+
allowedHeaders?: string[];
|
|
6
|
+
allowCredentials?: boolean;
|
|
7
|
+
maxAge?: number;
|
|
8
|
+
skipSameOrigin?: boolean;
|
|
9
|
+
}
|
|
10
|
+
export interface CookieOptions {
|
|
11
|
+
name?: string;
|
|
12
|
+
domain?: string;
|
|
13
|
+
path?: string;
|
|
14
|
+
secure?: boolean;
|
|
15
|
+
httpOnly?: boolean;
|
|
16
|
+
sameSite?: 'strict' | 'lax' | 'none';
|
|
17
|
+
maxAge?: number;
|
|
18
|
+
}
|
|
19
|
+
export interface RateLimitOptions {
|
|
20
|
+
windowMs?: number;
|
|
21
|
+
maxRequests?: number;
|
|
22
|
+
skipSuccessful?: boolean;
|
|
23
|
+
skipFailedRequests?: boolean;
|
|
24
|
+
}
|
|
25
|
+
export interface SecurityOptions {
|
|
26
|
+
requireCSRF?: boolean;
|
|
27
|
+
allowedReferers?: string[];
|
|
28
|
+
requiredHeaders?: Record<string, string>;
|
|
29
|
+
ipWhitelist?: string[];
|
|
30
|
+
userAgent?: {
|
|
31
|
+
block?: string[];
|
|
32
|
+
allow?: string[];
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export interface EndpointConfig {
|
|
36
|
+
enabled: boolean;
|
|
37
|
+
methods: ('GET' | 'POST' | 'PUT' | 'DELETE')[];
|
|
38
|
+
requireAuth?: boolean;
|
|
39
|
+
rateLimit?: RateLimitOptions;
|
|
40
|
+
security?: SecurityOptions;
|
|
41
|
+
cors?: Partial<CorsOptions>;
|
|
42
|
+
}
|
|
43
|
+
export interface SessionEndpointConfig extends EndpointConfig {
|
|
44
|
+
subEndpoints?: {
|
|
45
|
+
[K in SessionSubEndpoint]?: Partial<EndpointConfig>;
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
export interface TernSecureHandlerOptions {
|
|
49
|
+
cors?: CorsOptions;
|
|
50
|
+
cookies?: CookieOptions;
|
|
51
|
+
rateLimit?: RateLimitOptions;
|
|
52
|
+
security?: SecurityOptions;
|
|
53
|
+
endpoints?: {
|
|
54
|
+
sessions?: SessionEndpointConfig;
|
|
55
|
+
};
|
|
56
|
+
debug?: boolean;
|
|
57
|
+
environment?: 'development' | 'production' | 'test';
|
|
58
|
+
basePath?: string;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Define an internal config type that extends the public options
|
|
62
|
+
* with server-side only values like tenantId.
|
|
63
|
+
*/
|
|
64
|
+
export type TernSecureInternalHandlerConfig = Required<TernSecureHandlerOptions> & {
|
|
65
|
+
tenantId?: string;
|
|
66
|
+
};
|
|
67
|
+
export type AuthEndpoint = 'sessions' | 'users';
|
|
68
|
+
export type SessionSubEndpoint = 'verify' | 'createsession' | 'refresh' | 'revoke';
|
|
69
|
+
export declare const DEFAULT_CORS_OPTIONS: CorsOptions;
|
|
70
|
+
export declare const DEFAULT_COOKIE_OPTIONS: CookieOptions;
|
|
71
|
+
export declare const DEFAULT_SECURITY_OPTIONS: SecurityOptions;
|
|
72
|
+
export declare const DEFAULT_ENDPOINT_CONFIG: EndpointConfig;
|
|
73
|
+
export declare const DEFAULT_SESSIONS_CONFIG: SessionEndpointConfig;
|
|
74
|
+
export declare const DEFAULT_HANDLER_OPTIONS: Required<TernSecureHandlerOptions> & {
|
|
75
|
+
endpoints: Required<NonNullable<TernSecureHandlerOptions['endpoints']>>;
|
|
76
|
+
};
|
|
77
|
+
export interface ValidationResult {
|
|
78
|
+
error?: NextResponse;
|
|
79
|
+
data?: any;
|
|
80
|
+
}
|
|
81
|
+
export interface ValidationConfig {
|
|
82
|
+
cors?: CorsOptions;
|
|
83
|
+
security?: SecurityOptions;
|
|
84
|
+
endpoint?: {
|
|
85
|
+
name: AuthEndpoint;
|
|
86
|
+
config: EndpointConfig;
|
|
87
|
+
};
|
|
88
|
+
subEndpoint?: {
|
|
89
|
+
name: SessionSubEndpoint;
|
|
90
|
+
config: EndpointConfig;
|
|
91
|
+
};
|
|
92
|
+
requireIdToken?: boolean;
|
|
93
|
+
requireCsrfToken?: boolean;
|
|
94
|
+
}
|
|
95
|
+
export interface ComprehensiveValidationResult {
|
|
96
|
+
isValid: boolean;
|
|
97
|
+
error?: NextResponse;
|
|
98
|
+
corsResponse?: NextResponse;
|
|
99
|
+
sessionData?: {
|
|
100
|
+
body: any;
|
|
101
|
+
idToken?: string;
|
|
102
|
+
csrfToken?: string;
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type { NextRequest } from 'next/server';
|
|
2
|
+
/**
|
|
3
|
+
* HTTP utilities
|
|
4
|
+
*/
|
|
5
|
+
export declare class HttpUtils {
|
|
6
|
+
/**
|
|
7
|
+
* Extract client IP address from various headers
|
|
8
|
+
*/
|
|
9
|
+
static getClientIP(request: NextRequest): string;
|
|
10
|
+
/**
|
|
11
|
+
* Parse URL path segments for routing
|
|
12
|
+
*/
|
|
13
|
+
static parsePathSegments(url: URL): string[];
|
|
14
|
+
/**
|
|
15
|
+
* Extract authentication headers
|
|
16
|
+
*/
|
|
17
|
+
static extractAuthHeaders(request: NextRequest): {
|
|
18
|
+
origin: string | null;
|
|
19
|
+
host: string | null;
|
|
20
|
+
referer: string | null;
|
|
21
|
+
userAgent: string;
|
|
22
|
+
authorization: string | null;
|
|
23
|
+
xRequestedWith: string | null;
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Configuration utilities
|
|
28
|
+
*/
|
|
29
|
+
export declare class ConfigUtils {
|
|
30
|
+
/**
|
|
31
|
+
* Deep merge handler options with defaults
|
|
32
|
+
*/
|
|
33
|
+
static mergeWithDefaults(defaults: any, options?: any): any;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Cookie utilities
|
|
37
|
+
*/
|
|
38
|
+
export declare class CookieUtils {
|
|
39
|
+
static extractSessionCookies(request: NextRequest): {
|
|
40
|
+
sessionCookie: string | undefined;
|
|
41
|
+
csrfCookie: string | undefined;
|
|
42
|
+
mainSession: string | undefined;
|
|
43
|
+
};
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Logging utilities for debugging
|
|
47
|
+
*/
|
|
48
|
+
export declare class LoggingUtils {
|
|
49
|
+
static logRequest(request: NextRequest, context?: string): void;
|
|
50
|
+
static logError(error: any, context?: string): void;
|
|
51
|
+
static logWarning(message: string, context?: string): void;
|
|
52
|
+
}
|
|
53
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C;;GAEG;AACH,qBAAa,SAAS;IACpB;;OAEG;IACH,MAAM,CAAC,WAAW,CAAC,OAAO,EAAE,WAAW,GAAG,MAAM;IAYhD;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,GAAG,EAAE,GAAG,GAAG,MAAM,EAAE;IAI5C;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,OAAO,EAAE,WAAW;;;;;;;;CAU/C;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB;;OAEG;IACH,MAAM,CAAC,iBAAiB,CACtB,QAAQ,EAAE,GAAG,EACb,OAAO,CAAC,EAAE,GAAG,GACZ,GAAG;CAgBP;AAED;;GAEG;AACH,qBAAa,WAAW;IACtB,MAAM,CAAC,qBAAqB,CAAC,OAAO,EAAE,WAAW;;;;;CAOlD;AAED;;GAEG;AACH,qBAAa,YAAY;IACvB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM;IAMxD,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,MAAM;IAI5C,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM;CAGpD"}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import type { NextRequest } from 'next/server';
|
|
2
|
+
import { NextResponse } from 'next/server';
|
|
3
|
+
import type { AuthEndpoint, CorsOptions, SecurityOptions, SessionSubEndpoint } from './types';
|
|
4
|
+
/**
|
|
5
|
+
* CORS validation utilities
|
|
6
|
+
*/
|
|
7
|
+
export declare class CorsValidator {
|
|
8
|
+
static validate(request: NextRequest, corsOptions: CorsOptions): Promise<NextResponse | null>;
|
|
9
|
+
static createOptionsResponse(corsOptions: CorsOptions): NextResponse;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Security validation utilities
|
|
13
|
+
*/
|
|
14
|
+
export declare class SecurityValidator {
|
|
15
|
+
static validate(request: NextRequest, securityOptions: SecurityOptions): Promise<NextResponse | null>;
|
|
16
|
+
private static validateCsrf;
|
|
17
|
+
private static validateRequiredHeaders;
|
|
18
|
+
private static validateUserAgent;
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* CSRF token validation utilities
|
|
22
|
+
*/
|
|
23
|
+
export declare class CsrfValidator {
|
|
24
|
+
static validate(csrfToken: string, csrfCookieValue: string | undefined): NextResponse | null;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Route validation utilities
|
|
28
|
+
*/
|
|
29
|
+
export declare class RouteValidator {
|
|
30
|
+
static validatePathStructure(pathSegments: string[]): NextResponse | null;
|
|
31
|
+
static validateEndpoint(_endpoint: AuthEndpoint, endpointConfig: any, method: string): NextResponse | null;
|
|
32
|
+
static validateSubEndpoint(subEndpoint: SessionSubEndpoint | undefined, subEndpointConfig: any, method: string): NextResponse | null;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Request body validation utilities
|
|
36
|
+
*/
|
|
37
|
+
export declare class RequestValidator {
|
|
38
|
+
static validateSessionRequest(request: NextRequest): Promise<{
|
|
39
|
+
body: any;
|
|
40
|
+
idToken?: string;
|
|
41
|
+
csrfToken?: string;
|
|
42
|
+
error?: NextResponse;
|
|
43
|
+
}>;
|
|
44
|
+
static validateIdToken(idToken: string | undefined): NextResponse | null;
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=validators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validators.d.ts","sourceRoot":"","sources":["../../../../src/app-router/admin/validators.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAC,MAAM,aAAa,CAAC;AAC9C,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAG3C,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAE9F;;GAEG;AACH,qBAAa,aAAa;WACX,QAAQ,CACnB,OAAO,EAAE,WAAW,EACpB,WAAW,EAAE,WAAW,GACvB,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IA0B/B,MAAM,CAAC,qBAAqB,CAAC,WAAW,EAAE,WAAW,GAAG,YAAY;CA4BrE;AAED;;GAEG;AACH,qBAAa,iBAAiB;WACf,QAAQ,CACnB,OAAO,EAAE,WAAW,EACpB,eAAe,EAAE,eAAe,GAC/B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAqB/B,OAAO,CAAC,MAAM,CAAC,YAAY;IAwB3B,OAAO,CAAC,MAAM,CAAC,uBAAuB;IAmBtC,OAAO,CAAC,MAAM,CAAC,iBAAiB;CA4BjC;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,EAAE,eAAe,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI;CAe7F;AAED;;GAEG;AACH,qBAAa,cAAc;IACzB,MAAM,CAAC,qBAAqB,CAAC,YAAY,EAAE,MAAM,EAAE,GAAG,YAAY,GAAG,IAAI;IAWzE,MAAM,CAAC,gBAAgB,CACrB,SAAS,EAAE,YAAY,EACvB,cAAc,EAAE,GAAG,EACnB,MAAM,EAAE,MAAM,GACb,YAAY,GAAG,IAAI;IAYtB,MAAM,CAAC,mBAAmB,CACxB,WAAW,EAAE,kBAAkB,GAAG,SAAS,EAC3C,iBAAiB,EAAE,GAAG,EACtB,MAAM,EAAE,MAAM,GACb,YAAY,GAAG,IAAI;CAevB;AAED;;GAEG;AACH,qBAAa,gBAAgB;WACd,sBAAsB,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC;QACjE,IAAI,EAAE,GAAG,CAAC;QACV,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,KAAK,CAAC,EAAE,YAAY,CAAC;KACtB,CAAC;IAYF,MAAM,CAAC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,GAAG,YAAY,GAAG,IAAI;CAUzE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TernSecureProvider.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"TernSecureProvider.d.ts","sourceRoot":"","sources":["../../../../src/app-router/client/TernSecureProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AAatD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,KAAK,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,2CAQrF"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { AuthObject } from '@tern-secure/backend';
|
|
2
|
+
import { redirect } from 'next/navigation';
|
|
3
|
+
import { type AuthProtect } from '../../server/protect';
|
|
4
|
+
import { type RedirectFun } from '../../server/redirect';
|
|
5
|
+
import type { BaseUser } from '../../server/types';
|
|
6
|
+
export interface AuthResult {
|
|
7
|
+
user: BaseUser | null;
|
|
8
|
+
error: Error | null;
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* `Auth` object of the currently active user and the `redirectToSignIn()` method.
|
|
12
|
+
*/
|
|
13
|
+
type Auth = AuthObject & {
|
|
14
|
+
redirectToSignIn: RedirectFun<ReturnType<typeof redirect>>;
|
|
15
|
+
redirectToSignUp: RedirectFun<ReturnType<typeof redirect>>;
|
|
16
|
+
};
|
|
17
|
+
export interface AuthFn {
|
|
18
|
+
(): Promise<Auth>;
|
|
19
|
+
protect: AuthProtect;
|
|
20
|
+
}
|
|
21
|
+
/**
|
|
22
|
+
* Get the current authenticated user from the session or token
|
|
23
|
+
*/
|
|
24
|
+
export declare const auth: AuthFn;
|
|
25
|
+
export {};
|
|
26
|
+
//# sourceMappingURL=auth.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/app-router/server/auth.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAQvD,OAAO,EAAY,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAIrD,OAAO,EAAE,KAAK,WAAW,EAAgB,MAAM,sBAAsB,CAAC;AACtE,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,KAAK,EAAE,QAAQ,EAAe,MAAM,oBAAoB,CAAC;AAGhE,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,KAAK,IAAI,GAAG,UAAU,GAAG;IACvB,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC;IAC3D,gBAAgB,EAAE,WAAW,CAAC,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC;CAC5D,CAAC;AAEF,MAAM,WAAW,MAAM;IACrB,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IAElB,OAAO,EAAE,WAAW,CAAC;CACtB;AAyBD;;GAEG;AACH,eAAO,MAAM,IAAI,EAAE,MAwClB,CAAC"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import { NextRequest } from 'next/server';
|
|
2
|
+
export declare const isPrerenderingBailout: (e: unknown) => boolean;
|
|
3
|
+
export declare function buildRequestLike(): Promise<NextRequest>;
|
|
4
|
+
export declare function getScriptNonceFromHeader(cspHeaderValue: string): string | undefined;
|
|
5
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../../src/app-router/server/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE1C,eAAO,MAAM,qBAAqB,GAAI,GAAG,OAAO,YAiB/C,CAAC;AAEF,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,WAAW,CAAC,CAkB7D;AAGD,wBAAgB,wBAAwB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CA0CnF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export { useAuth, useIdToken,
|
|
1
|
+
export { useAuth, useIdToken, useSession, useSignIn, signIn, } from '@tern-secure/react';
|
|
2
2
|
//# sourceMappingURL=components.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/boundary/components.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"components.d.ts","sourceRoot":"","sources":["../../../src/boundary/components.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,MAAM,GACT,MAAM,oBAAoB,CAAA"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export declare const constants: {
|
|
2
|
+
readonly Headers: {
|
|
3
|
+
readonly NextRewrite: "x-middleware-rewrite";
|
|
4
|
+
readonly NextResume: "x-middleware-next";
|
|
5
|
+
readonly NextRedirect: "Location";
|
|
6
|
+
readonly NextUrl: "next-url";
|
|
7
|
+
readonly NextAction: "next-action";
|
|
8
|
+
readonly NextjsData: "x-nextjs-data";
|
|
9
|
+
};
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/constants.ts"],"names":[],"mappings":"AAWA,eAAO,MAAM,SAAS;;;;;;;;;CAEZ,CAAC"}
|
package/dist/types/errors.d.ts
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;
|
|
1
|
+
{"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/errors.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAExD,MAAM,MAAM,SAAS,GAAG,MAAM,OAAO,MAAM,CAAA;AAE3C,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,KAAK,CAAA;IACd,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,EAAE,SAAS,CAAA;CAChB;AAED,eAAO,MAAM,MAAM;;;;;;;;;;;;;;;;;;;;;;CAsBT,CAAA;AAmBV,qBAAa,eAAgB,SAAQ,KAAK;IACxC,IAAI,EAAE,SAAS,CAAA;gBAEH,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,MAAM;CAK9C;AAiJD;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CAwFzE;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,GAAG,QAAQ,IAAI,iBAAiB,CASpF;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,cAAc,GAAG,SAAS,6BAsBrE"}
|
package/dist/types/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export { TernSecureProvider } from './app-router/client/TernSecureProvider';
|
|
2
|
-
export { useAuth, useIdToken,
|
|
3
|
-
export {
|
|
4
|
-
export type {
|
|
2
|
+
export { useAuth, useIdToken, useSession, useSignIn, signIn } from './boundary/components';
|
|
3
|
+
export type { TernSecureUser, TernSecureUserData, SignInResponseTree } from '@tern-secure/types';
|
|
4
|
+
export type { UserInfo, SessionResult } from './types';
|
|
5
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,wCAAwC,CAAA;AAC3E,OAAO,EACH,OAAO,EACP,UAAU,EACV,UAAU,EACV,SAAS,EACT,MAAM,EAKT,MAAM,uBAAuB,CAAA;AAE9B,YAAY,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAEhG,YAAY,EACR,QAAQ,EACR,aAAa,EAChB,MAAM,SAAS,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constant.d.ts","sourceRoot":"","sources":["../../../src/server/constant.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,OAAO,oBAAiC,CAAA;AACrD,eAAO,MAAM,WAAW,QAA6C,CAAC;AACtE,eAAO,MAAM,WAAW,QAA4C,CAAC;AACrE,eAAO,MAAM,WAAW,QAA4C,CAAC"}
|