@tern-secure/nextjs 5.1.7 → 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,101 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var logger_exports = {};
|
|
20
|
+
__export(logger_exports, {
|
|
21
|
+
LogLevel: () => LogLevel,
|
|
22
|
+
Logger: () => Logger,
|
|
23
|
+
createLogger: () => createLogger,
|
|
24
|
+
middlewareLogger: () => middlewareLogger
|
|
25
|
+
});
|
|
26
|
+
module.exports = __toCommonJS(logger_exports);
|
|
27
|
+
var LogLevel = /* @__PURE__ */ ((LogLevel2) => {
|
|
28
|
+
LogLevel2[LogLevel2["ERROR"] = 0] = "ERROR";
|
|
29
|
+
LogLevel2[LogLevel2["WARN"] = 1] = "WARN";
|
|
30
|
+
LogLevel2[LogLevel2["INFO"] = 2] = "INFO";
|
|
31
|
+
LogLevel2[LogLevel2["DEBUG"] = 3] = "DEBUG";
|
|
32
|
+
return LogLevel2;
|
|
33
|
+
})(LogLevel || {});
|
|
34
|
+
class Logger {
|
|
35
|
+
options;
|
|
36
|
+
constructor(options = {}) {
|
|
37
|
+
this.options = {
|
|
38
|
+
enabled: false,
|
|
39
|
+
level: 2 /* INFO */,
|
|
40
|
+
prefix: "[TernSecure]",
|
|
41
|
+
...options
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
enable() {
|
|
45
|
+
this.options.enabled = true;
|
|
46
|
+
}
|
|
47
|
+
disable() {
|
|
48
|
+
this.options.enabled = false;
|
|
49
|
+
}
|
|
50
|
+
setLevel(level) {
|
|
51
|
+
this.options.level = level;
|
|
52
|
+
}
|
|
53
|
+
setPrefix(prefix) {
|
|
54
|
+
this.options.prefix = prefix;
|
|
55
|
+
}
|
|
56
|
+
log(level, levelName, message, ...args) {
|
|
57
|
+
if (!this.options.enabled || level > this.options.level) {
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
60
|
+
const timestamp = (/* @__PURE__ */ new Date()).toISOString();
|
|
61
|
+
const formattedMessage = `${timestamp} ${this.options.prefix} [${levelName}] ${message}`;
|
|
62
|
+
switch (level) {
|
|
63
|
+
case 0 /* ERROR */:
|
|
64
|
+
console.error(formattedMessage, ...args);
|
|
65
|
+
break;
|
|
66
|
+
case 1 /* WARN */:
|
|
67
|
+
console.warn(formattedMessage, ...args);
|
|
68
|
+
break;
|
|
69
|
+
case 2 /* INFO */:
|
|
70
|
+
console.info(formattedMessage, ...args);
|
|
71
|
+
break;
|
|
72
|
+
case 3 /* DEBUG */:
|
|
73
|
+
console.debug(formattedMessage, ...args);
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
error(message, ...args) {
|
|
78
|
+
this.log(0 /* ERROR */, "ERROR", message, ...args);
|
|
79
|
+
}
|
|
80
|
+
warn(message, ...args) {
|
|
81
|
+
this.log(1 /* WARN */, "WARN", message, ...args);
|
|
82
|
+
}
|
|
83
|
+
info(message, ...args) {
|
|
84
|
+
this.log(2 /* INFO */, "INFO", message, ...args);
|
|
85
|
+
}
|
|
86
|
+
debug(message, ...args) {
|
|
87
|
+
this.log(3 /* DEBUG */, "DEBUG", message, ...args);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
const createLogger = (options) => {
|
|
91
|
+
return new Logger(options);
|
|
92
|
+
};
|
|
93
|
+
const middlewareLogger = createLogger({ prefix: "[TernSecure-Middleware]" });
|
|
94
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
95
|
+
0 && (module.exports = {
|
|
96
|
+
LogLevel,
|
|
97
|
+
Logger,
|
|
98
|
+
createLogger,
|
|
99
|
+
middlewareLogger
|
|
100
|
+
});
|
|
101
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/logger.ts"],"sourcesContent":["export enum LogLevel {\n ERROR = 0,\n WARN = 1,\n INFO = 2,\n DEBUG = 3,\n}\n\nexport interface LoggerOptions {\n enabled: boolean\n level: LogLevel\n prefix: string\n}\n\nexport class Logger {\n private options: LoggerOptions\n\n constructor(options: Partial<LoggerOptions> = {}) {\n this.options = {\n enabled: false,\n level: LogLevel.INFO,\n prefix: '[TernSecure]',\n ...options,\n }\n }\n\n enable(): void {\n this.options.enabled = true\n }\n\n disable(): void {\n this.options.enabled = false\n }\n\n setLevel(level: LogLevel): void {\n this.options.level = level\n }\n\n setPrefix(prefix: string): void {\n this.options.prefix = prefix\n }\n\n private log(level: LogLevel, levelName: string, message: string, ...args: any[]): void {\n if (!this.options.enabled || level > this.options.level) {\n return\n }\n\n const timestamp = new Date().toISOString()\n const formattedMessage = `${timestamp} ${this.options.prefix} [${levelName}] ${message}`\n \n switch (level) {\n case LogLevel.ERROR:\n console.error(formattedMessage, ...args)\n break\n case LogLevel.WARN:\n console.warn(formattedMessage, ...args)\n break\n case LogLevel.INFO:\n console.info(formattedMessage, ...args)\n break\n case LogLevel.DEBUG:\n console.debug(formattedMessage, ...args)\n break\n }\n }\n\n error(message: string, ...args: any[]): void {\n this.log(LogLevel.ERROR, 'ERROR', message, ...args)\n }\n\n warn(message: string, ...args: any[]): void {\n this.log(LogLevel.WARN, 'WARN', message, ...args)\n }\n\n info(message: string, ...args: any[]): void {\n this.log(LogLevel.INFO, 'INFO', message, ...args)\n }\n\n debug(message: string, ...args: any[]): void {\n this.log(LogLevel.DEBUG, 'DEBUG', message, ...args)\n }\n}\n\nexport const createLogger = (options?: Partial<LoggerOptions>): Logger => {\n return new Logger(options)\n}\n\nexport const middlewareLogger = createLogger({ prefix: '[TernSecure-Middleware]' })"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAO,IAAK,WAAL,kBAAKA,cAAL;AACL,EAAAA,oBAAA,WAAQ,KAAR;AACA,EAAAA,oBAAA,UAAO,KAAP;AACA,EAAAA,oBAAA,UAAO,KAAP;AACA,EAAAA,oBAAA,WAAQ,KAAR;AAJU,SAAAA;AAAA,GAAA;AAaL,MAAM,OAAO;AAAA,EACV;AAAA,EAER,YAAY,UAAkC,CAAC,GAAG;AAChD,SAAK,UAAU;AAAA,MACb,SAAS;AAAA,MACT,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,GAAG;AAAA,IACL;AAAA,EACF;AAAA,EAEA,SAAe;AACb,SAAK,QAAQ,UAAU;AAAA,EACzB;AAAA,EAEA,UAAgB;AACd,SAAK,QAAQ,UAAU;AAAA,EACzB;AAAA,EAEA,SAAS,OAAuB;AAC9B,SAAK,QAAQ,QAAQ;AAAA,EACvB;AAAA,EAEA,UAAU,QAAsB;AAC9B,SAAK,QAAQ,SAAS;AAAA,EACxB;AAAA,EAEQ,IAAI,OAAiB,WAAmB,YAAoB,MAAmB;AACrF,QAAI,CAAC,KAAK,QAAQ,WAAW,QAAQ,KAAK,QAAQ,OAAO;AACvD;AAAA,IACF;AAEA,UAAM,aAAY,oBAAI,KAAK,GAAE,YAAY;AACzC,UAAM,mBAAmB,GAAG,SAAS,IAAI,KAAK,QAAQ,MAAM,KAAK,SAAS,KAAK,OAAO;AAEtF,YAAQ,OAAO;AAAA,MACb,KAAK;AACH,gBAAQ,MAAM,kBAAkB,GAAG,IAAI;AACvC;AAAA,MACF,KAAK;AACH,gBAAQ,KAAK,kBAAkB,GAAG,IAAI;AACtC;AAAA,MACF,KAAK;AACH,gBAAQ,KAAK,kBAAkB,GAAG,IAAI;AACtC;AAAA,MACF,KAAK;AACH,gBAAQ,MAAM,kBAAkB,GAAG,IAAI;AACvC;AAAA,IACJ;AAAA,EACF;AAAA,EAEA,MAAM,YAAoB,MAAmB;AAC3C,SAAK,IAAI,eAAgB,SAAS,SAAS,GAAG,IAAI;AAAA,EACpD;AAAA,EAEA,KAAK,YAAoB,MAAmB;AAC1C,SAAK,IAAI,cAAe,QAAQ,SAAS,GAAG,IAAI;AAAA,EAClD;AAAA,EAEA,KAAK,YAAoB,MAAmB;AAC1C,SAAK,IAAI,cAAe,QAAQ,SAAS,GAAG,IAAI;AAAA,EAClD;AAAA,EAEA,MAAM,YAAoB,MAAmB;AAC3C,SAAK,IAAI,eAAgB,SAAS,SAAS,GAAG,IAAI;AAAA,EACpD;AACF;AAEO,MAAM,eAAe,CAAC,YAA6C;AACxE,SAAO,IAAI,OAAO,OAAO;AAC3B;AAEO,MAAM,mBAAmB,aAAa,EAAE,QAAQ,0BAA0B,CAAC;","names":["LogLevel"]}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var redis_exports = {};
|
|
20
|
+
__export(redis_exports, {
|
|
21
|
+
redis: () => redis
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(redis_exports);
|
|
24
|
+
var import_redis = require("@upstash/redis");
|
|
25
|
+
const redis = new import_redis.Redis({
|
|
26
|
+
url: process.env.KV_REST_API_URL,
|
|
27
|
+
token: process.env.KV_REST_API_TOKEN
|
|
28
|
+
});
|
|
29
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
30
|
+
0 && (module.exports = {
|
|
31
|
+
redis
|
|
32
|
+
});
|
|
33
|
+
//# sourceMappingURL=redis.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/redis.ts"],"sourcesContent":["import { Redis } from \"@upstash/redis\"\n\nexport const redis = new Redis({\n url: process.env.KV_REST_API_URL,\n token: process.env.KV_REST_API_TOKEN,\n})\n\nexport interface DisabledUserRecord {\n uid: string\n email: string\n disabledTime: string\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,mBAAsB;AAEf,MAAM,QAAQ,IAAI,mBAAM;AAAA,EAC7B,KAAK,QAAQ,IAAI;AAAA,EACjB,OAAO,QAAQ,IAAI;AACrB,CAAC;","names":[]}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var response_exports = {};
|
|
20
|
+
__export(response_exports, {
|
|
21
|
+
isRedirect: () => isRedirect,
|
|
22
|
+
setHeader: () => setHeader
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(response_exports);
|
|
25
|
+
var import_constants = require("../constants");
|
|
26
|
+
const isRedirect = (res) => {
|
|
27
|
+
return res.headers.get(import_constants.constants.Headers.NextRedirect);
|
|
28
|
+
};
|
|
29
|
+
const setHeader = (res, name, val) => {
|
|
30
|
+
res.headers.set(name, val);
|
|
31
|
+
return res;
|
|
32
|
+
};
|
|
33
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
34
|
+
0 && (module.exports = {
|
|
35
|
+
isRedirect,
|
|
36
|
+
setHeader
|
|
37
|
+
});
|
|
38
|
+
//# sourceMappingURL=response.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/utils/response.ts"],"sourcesContent":["import { constants as nextConstants } from '../constants';\n\nexport const isRedirect = (res: Response) => {\n return res.headers.get(nextConstants.Headers.NextRedirect);\n};\n\nexport const setHeader = <T extends Response>(res: T, name: string, val: string): T => {\n res.headers.set(name, val);\n return res;\n};\n"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,uBAA2C;AAEpC,MAAM,aAAa,CAAC,QAAkB;AAC3C,SAAO,IAAI,QAAQ,IAAI,iBAAAA,UAAc,QAAQ,YAAY;AAC3D;AAEO,MAAM,YAAY,CAAqB,KAAQ,MAAc,QAAmB;AACrF,MAAI,QAAQ,IAAI,MAAM,GAAG;AACzB,SAAO;AACT;","names":["nextConstants"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var serverRedirectAuth_exports = {};
|
|
20
|
+
__export(serverRedirectAuth_exports, {
|
|
21
|
+
serverRedirectWithAuth: () => serverRedirectWithAuth
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(serverRedirectAuth_exports);
|
|
24
|
+
var import_backend = require("@tern-secure/backend");
|
|
25
|
+
var import_server = require("next/server");
|
|
26
|
+
const serverRedirectWithAuth = (ternSecureRequest, res) => {
|
|
27
|
+
const location = res.headers.get("location");
|
|
28
|
+
const shouldAppendDevBrowser = res.headers.get(import_backend.constants.Headers.TernSecureRedirectTo) === "true";
|
|
29
|
+
if (shouldAppendDevBrowser && !!location && ternSecureRequest.ternUrl.isCrossOrigin(location)) {
|
|
30
|
+
const url = new URL(location);
|
|
31
|
+
return import_server.NextResponse.redirect(url.href, res);
|
|
32
|
+
}
|
|
33
|
+
return res;
|
|
34
|
+
};
|
|
35
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
36
|
+
0 && (module.exports = {
|
|
37
|
+
serverRedirectWithAuth
|
|
38
|
+
});
|
|
39
|
+
//# 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":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAGA,qBAEO;AACP,oBAA6B;AAKtB,MAAM,yBAAyB,CAAC,mBAAsC,QAAkB;AAC7F,QAAM,WAAW,IAAI,QAAQ,IAAI,UAAU;AAC3C,QAAM,yBAAyB,IAAI,QAAQ,IAAI,yBAAU,QAAQ,oBAAoB,MAAM;AAE3F,MACE,0BACA,CAAC,CAAC,YACF,kBAAkB,QAAQ,cAAc,QAAQ,GAChD;AAEA,UAAM,MAAM,IAAI,IAAI,QAAQ;AAC5B,WAAO,2BAAa,SAAS,IAAI,MAAM,GAAG;AAAA,EAC5C;AACA,SAAO;AACT;","names":[]}
|
|
@@ -22,8 +22,8 @@ __export(ternsecure_sw_exports, {
|
|
|
22
22
|
TernUIServiceWorker: () => TernUIServiceWorker
|
|
23
23
|
});
|
|
24
24
|
module.exports = __toCommonJS(ternsecure_sw_exports);
|
|
25
|
-
var import_react = require("react");
|
|
26
25
|
var import_serviceWorker = require("@tern-secure/shared/serviceWorker");
|
|
26
|
+
var import_react = require("react");
|
|
27
27
|
const TernUIServiceWorker = ({
|
|
28
28
|
ternSecureConfig,
|
|
29
29
|
baseUrl = window.location.origin
|
|
@@ -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":";;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,2BAAoB;AAEpB,mBAA0B;AAOnB,MAAM,sBAA0D,CAAC;AAAA,EACpE;AAAA,EACA,UAAU,OAAO,SAAS;AAC9B,MAAM;AACJ,8BAAU,MAAM;AACd,UAAM,wBAAwB,YAAY;AACxC,UAAI,CAAC,kBAAkB;AACrB,gBAAQ,KAAK,uEAAuE;AACpF;AAAA,MACF;AAEA,UAAI;AACF,kBAAM,0BAAI;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,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var withLogger_exports = {};
|
|
20
|
+
__export(withLogger_exports, {
|
|
21
|
+
createEdgeCompatibleLogger: () => createEdgeCompatibleLogger,
|
|
22
|
+
withLogger: () => withLogger
|
|
23
|
+
});
|
|
24
|
+
module.exports = __toCommonJS(withLogger_exports);
|
|
25
|
+
var import_logger = require("./logger");
|
|
26
|
+
function createEdgeCompatibleLogger(debug = false) {
|
|
27
|
+
if (debug) {
|
|
28
|
+
import_logger.middlewareLogger.enable();
|
|
29
|
+
import_logger.middlewareLogger.setLevel(import_logger.LogLevel.DEBUG);
|
|
30
|
+
}
|
|
31
|
+
return {
|
|
32
|
+
logStart: (requestId, method, url) => {
|
|
33
|
+
import_logger.middlewareLogger.debug(`[${requestId}] Middleware started for ${method} ${url}`);
|
|
34
|
+
},
|
|
35
|
+
logEnd: (requestId, duration) => {
|
|
36
|
+
import_logger.middlewareLogger.debug(`[${requestId}] Middleware completed in ${duration.toFixed(2)}ms`);
|
|
37
|
+
},
|
|
38
|
+
logError: (requestId, duration, error) => {
|
|
39
|
+
import_logger.middlewareLogger.error(
|
|
40
|
+
`[${requestId}] Middleware failed after ${duration.toFixed(2)}ms:`,
|
|
41
|
+
error instanceof Error ? error.message : "Unknown error"
|
|
42
|
+
);
|
|
43
|
+
},
|
|
44
|
+
debug: (message, ...args) => import_logger.middlewareLogger.debug(message, ...args),
|
|
45
|
+
info: (message, ...args) => import_logger.middlewareLogger.info(message, ...args),
|
|
46
|
+
warn: (message, ...args) => import_logger.middlewareLogger.warn(message, ...args),
|
|
47
|
+
error: (message, ...args) => import_logger.middlewareLogger.error(message, ...args)
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
const withLogger = (middleware, options = {}) => {
|
|
51
|
+
const { debug = false, logLevel = import_logger.LogLevel.INFO } = options;
|
|
52
|
+
if (debug) {
|
|
53
|
+
import_logger.middlewareLogger.enable();
|
|
54
|
+
import_logger.middlewareLogger.setLevel(import_logger.LogLevel.DEBUG);
|
|
55
|
+
} else {
|
|
56
|
+
import_logger.middlewareLogger.setLevel(logLevel);
|
|
57
|
+
}
|
|
58
|
+
return async (request, event) => {
|
|
59
|
+
const startTime = performance.now();
|
|
60
|
+
const requestId = crypto.randomUUID().slice(0, 8);
|
|
61
|
+
import_logger.middlewareLogger.debug(`[${requestId}] Middleware started for ${request.method} ${request.url}`);
|
|
62
|
+
try {
|
|
63
|
+
const result = await middleware(request, event);
|
|
64
|
+
const duration = performance.now() - startTime;
|
|
65
|
+
import_logger.middlewareLogger.debug(`[${requestId}] Middleware completed in ${duration.toFixed(2)}ms`);
|
|
66
|
+
return result;
|
|
67
|
+
} catch (error) {
|
|
68
|
+
const duration = performance.now() - startTime;
|
|
69
|
+
import_logger.middlewareLogger.error(
|
|
70
|
+
`[${requestId}] Middleware failed after ${duration.toFixed(2)}ms:`,
|
|
71
|
+
error instanceof Error ? error.message : "Unknown error"
|
|
72
|
+
);
|
|
73
|
+
throw error;
|
|
74
|
+
}
|
|
75
|
+
};
|
|
76
|
+
};
|
|
77
|
+
// Annotate the CommonJS export names for ESM import in node:
|
|
78
|
+
0 && (module.exports = {
|
|
79
|
+
createEdgeCompatibleLogger,
|
|
80
|
+
withLogger
|
|
81
|
+
});
|
|
82
|
+
//# 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":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAEA,oBAA0C;AAOnC,SAAS,2BAA2B,QAAiB,OAAO;AACjE,MAAI,OAAO;AACT,mCAAiB,OAAO;AACxB,mCAAiB,SAAS,uBAAS,KAAK;AAAA,EAC1C;AAEA,SAAO;AAAA,IACL,UAAU,CAAC,WAAmB,QAAgB,QAAgB;AAC5D,qCAAiB,MAAM,IAAI,SAAS,4BAA4B,MAAM,IAAI,GAAG,EAAE;AAAA,IACjF;AAAA,IACA,QAAQ,CAAC,WAAmB,aAAqB;AAC/C,qCAAiB,MAAM,IAAI,SAAS,6BAA6B,SAAS,QAAQ,CAAC,CAAC,IAAI;AAAA,IAC1F;AAAA,IACA,UAAU,CAAC,WAAmB,UAAkB,UAAmB;AACjE,qCAAiB;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,+BAAiB,MAAM,SAAS,GAAG,IAAI;AAAA,IACnF,MAAM,CAAC,YAAoB,SAAgB,+BAAiB,KAAK,SAAS,GAAG,IAAI;AAAA,IACjF,MAAM,CAAC,YAAoB,SAAgB,+BAAiB,KAAK,SAAS,GAAG,IAAI;AAAA,IACjF,OAAO,CAAC,YAAoB,SAAgB,+BAAiB,MAAM,SAAS,GAAG,IAAI;AAAA,EACrF;AACF;AAEO,MAAM,aAAa,CACxB,YACA,UAA6B,CAAC,MACX;AACnB,QAAM,EAAE,QAAQ,OAAO,WAAW,uBAAS,KAAK,IAAI;AAEpD,MAAI,OAAO;AACT,mCAAiB,OAAO;AACxB,mCAAiB,SAAS,uBAAS,KAAK;AAAA,EAC1C,OAAO;AACL,mCAAiB,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,mCAAiB,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,qCAAiB,MAAM,IAAI,SAAS,6BAA6B,SAAS,QAAQ,CAAC,CAAC,IAAI;AAExF,aAAO;AAAA,IACT,SAAS,OAAO;AACd,YAAM,WAAW,YAAY,IAAI,IAAI;AAErC,qCAAiB;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,30 @@
|
|
|
1
|
+
import { bench, vi } from "vitest";
|
|
2
|
+
import { NextRequest, NextResponse } from "next/server";
|
|
3
|
+
import { geminiCreateTernSecureNextJsHandlerFn } from "../../examples/gemini_fnTernSecureNextHandler";
|
|
4
|
+
import { SessionEndpointHandler } from "../app-router/admin/sessionHandlers";
|
|
5
|
+
vi.mock("../sessionHandlers", () => ({
|
|
6
|
+
SessionEndpointHandler: {
|
|
7
|
+
handle: vi.fn()
|
|
8
|
+
}
|
|
9
|
+
}));
|
|
10
|
+
const authHandlerOptions = {
|
|
11
|
+
cors: {
|
|
12
|
+
allowedOrigins: ["http://localhost:3000", "https://ternsecure.com"],
|
|
13
|
+
allowedMethods: ["GET", "POST"]
|
|
14
|
+
},
|
|
15
|
+
security: {
|
|
16
|
+
requireCSRF: true,
|
|
17
|
+
allowedReferers: ["http://localhost:3000", "https://ternsecure.com"]
|
|
18
|
+
},
|
|
19
|
+
debug: false
|
|
20
|
+
};
|
|
21
|
+
bench("handler performance for a valid request", async () => {
|
|
22
|
+
const handler = geminiCreateTernSecureNextJsHandlerFn(authHandlerOptions);
|
|
23
|
+
const request = new NextRequest("http://localhost/api/auth/sessions/verify", {
|
|
24
|
+
method: "GET",
|
|
25
|
+
headers: { origin: "http://localhost:3000" }
|
|
26
|
+
});
|
|
27
|
+
SessionEndpointHandler.handle.mockResolvedValue(new NextResponse(null, { status: 200 }));
|
|
28
|
+
await handler.GET(request);
|
|
29
|
+
});
|
|
30
|
+
//# sourceMappingURL=gemini_fnTernSecureNextHandler.bench.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../src/__tests__/gemini_fnTernSecureNextHandler.bench.ts"],"sourcesContent":["import { bench, vi } from 'vitest';\nimport { NextRequest, NextResponse } from 'next/server';\nimport { geminiCreateTernSecureNextJsHandlerFn } from '../../examples/gemini_fnTernSecureNextHandler';\nimport { SessionEndpointHandler } from '../app-router/admin/sessionHandlers';\n\nvi.mock('../sessionHandlers', () => ({\n SessionEndpointHandler: {\n handle: vi.fn(),\n },\n}));\n\nconst authHandlerOptions = {\n cors: {\n allowedOrigins: ['http://localhost:3000', 'https://ternsecure.com'],\n allowedMethods: ['GET', 'POST'],\n },\n security: {\n requireCSRF: true,\n allowedReferers: ['http://localhost:3000', 'https://ternsecure.com'],\n },\n debug: false,\n};\n\nbench('handler performance for a valid request', async () => {\n const handler = geminiCreateTernSecureNextJsHandlerFn(authHandlerOptions);\n const request = new NextRequest('http://localhost/api/auth/sessions/verify', {\n method: 'GET',\n headers: { origin: 'http://localhost:3000' },\n });\n (SessionEndpointHandler.handle as any).mockResolvedValue(new NextResponse(null, { status: 200 }));\n\n await handler.GET(request);\n});\n"],"mappings":"AAAA,SAAS,OAAO,UAAU;AAC1B,SAAS,aAAa,oBAAoB;AAC1C,SAAS,6CAA6C;AACtD,SAAS,8BAA8B;AAEvC,GAAG,KAAK,sBAAsB,OAAO;AAAA,EACnC,wBAAwB;AAAA,IACtB,QAAQ,GAAG,GAAG;AAAA,EAChB;AACF,EAAE;AAEF,MAAM,qBAAqB;AAAA,EACzB,MAAM;AAAA,IACJ,gBAAgB,CAAC,yBAAyB,wBAAwB;AAAA,IAClE,gBAAgB,CAAC,OAAO,MAAM;AAAA,EAChC;AAAA,EACA,UAAU;AAAA,IACR,aAAa;AAAA,IACb,iBAAiB,CAAC,yBAAyB,wBAAwB;AAAA,EACrE;AAAA,EACA,OAAO;AACT;AAEA,MAAM,2CAA2C,YAAY;AAC3D,QAAM,UAAU,sCAAsC,kBAAkB;AACxE,QAAM,UAAU,IAAI,YAAY,6CAA6C;AAAA,IAC3E,QAAQ;AAAA,IACR,SAAS,EAAE,QAAQ,wBAAwB;AAAA,EAC7C,CAAC;AACD,EAAC,uBAAuB,OAAe,kBAAkB,IAAI,aAAa,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC;AAEhG,QAAM,QAAQ,IAAI,OAAO;AAC3B,CAAC;","names":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use server";
|
|
2
|
+
import {
|
|
3
|
+
ClearNextSessionCookie,
|
|
4
|
+
clearSessionCookie,
|
|
5
|
+
CreateNextSessionCookie,
|
|
6
|
+
createSessionCookie,
|
|
7
|
+
SetNextServerSession,
|
|
8
|
+
SetNextServerToken
|
|
9
|
+
} from "@tern-secure/backend/admin";
|
|
10
|
+
import { NextCookieStore } from "../../utils/NextCookieAdapter";
|
|
11
|
+
import { TENANT_ID } from "./constants";
|
|
12
|
+
async function createSessionCookieServer(idToken) {
|
|
13
|
+
const cookieStore = new NextCookieStore();
|
|
14
|
+
return createSessionCookie(idToken, cookieStore);
|
|
15
|
+
}
|
|
16
|
+
async function clearSessionCookieServer() {
|
|
17
|
+
const cookieStore = new NextCookieStore();
|
|
18
|
+
return clearSessionCookie(cookieStore);
|
|
19
|
+
}
|
|
20
|
+
async function clearNextSessionCookie() {
|
|
21
|
+
return ClearNextSessionCookie(TENANT_ID);
|
|
22
|
+
}
|
|
23
|
+
async function setNextServerSession(idToken) {
|
|
24
|
+
return SetNextServerSession(idToken);
|
|
25
|
+
}
|
|
26
|
+
async function setNextServerToken(token) {
|
|
27
|
+
return SetNextServerToken(token);
|
|
28
|
+
}
|
|
29
|
+
async function createNextSessionCookie(idToken) {
|
|
30
|
+
return CreateNextSessionCookie(idToken);
|
|
31
|
+
}
|
|
32
|
+
export {
|
|
33
|
+
clearNextSessionCookie,
|
|
34
|
+
clearSessionCookieServer,
|
|
35
|
+
createNextSessionCookie,
|
|
36
|
+
createSessionCookieServer,
|
|
37
|
+
setNextServerSession,
|
|
38
|
+
setNextServerToken
|
|
39
|
+
};
|
|
40
|
+
//# sourceMappingURL=actions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/app-router/admin/actions.ts"],"sourcesContent":["'use server'\n\nimport {\n ClearNextSessionCookie,\n clearSessionCookie, \n CreateNextSessionCookie,\n createSessionCookie, \n SetNextServerSession, \n SetNextServerToken,\n} from \"@tern-secure/backend/admin\";\n\nimport { NextCookieStore } from \"../../utils/NextCookieAdapter\";\nimport { TENANT_ID } from \"./constants\";\n\nexport async function createSessionCookieServer(idToken: string) {\n const cookieStore = new NextCookieStore();\n return createSessionCookie(idToken, cookieStore);\n}\n\nexport async function clearSessionCookieServer() {\n const cookieStore = new NextCookieStore();\n return clearSessionCookie(cookieStore);\n}\n\nexport async function clearNextSessionCookie() {\n return ClearNextSessionCookie(TENANT_ID);\n}\n\nexport async function setNextServerSession(idToken: string) {\n return SetNextServerSession(idToken);\n}\n\nexport async function setNextServerToken(token: string) {\n return SetNextServerToken(token);\n}\n\nexport async function createNextSessionCookie(idToken: string) {\n return CreateNextSessionCookie(idToken);\n}"],"mappings":";AAEA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,SAAS,uBAAuB;AAChC,SAAS,iBAAiB;AAE1B,eAAsB,0BAA0B,SAAiB;AAC7D,QAAM,cAAc,IAAI,gBAAgB;AACxC,SAAO,oBAAoB,SAAS,WAAW;AACnD;AAEA,eAAsB,2BAA2B;AAC7C,QAAM,cAAc,IAAI,gBAAgB;AACxC,SAAO,mBAAmB,WAAW;AACzC;AAEA,eAAsB,yBAAyB;AAC3C,SAAO,uBAAuB,SAAS;AAC3C;AAEA,eAAsB,qBAAqB,SAAiB;AACxD,SAAO,qBAAqB,OAAO;AACvC;AAEA,eAAsB,mBAAmB,OAAe;AACpD,SAAO,mBAAmB,KAAK;AACnC;AAEA,eAAsB,wBAAwB,SAAiB;AAC3D,SAAO,wBAAwB,OAAO;AAC1C;","names":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../../../../src/app-router/admin/constants.ts"],"sourcesContent":["export const TENANT_ID = process.env.NEXT_PUBLIC_FIREBASE_TENANT_ID || '';"],"mappings":"AAAO,MAAM,YAAY,QAAQ,IAAI,kCAAkC;","names":[]}
|