@tern-secure/nextjs 5.2.0-canary.v20250926170202 → 5.2.0-canary.v20251002181737
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/app-router/admin/c-authenticateRequestProcessor.js +0 -1
- package/dist/cjs/app-router/admin/c-authenticateRequestProcessor.js.map +1 -1
- package/dist/cjs/app-router/admin/constants.js +18 -0
- package/dist/cjs/app-router/admin/constants.js.map +1 -1
- package/dist/cjs/app-router/admin/request.js +69 -0
- package/dist/cjs/app-router/admin/request.js.map +1 -0
- package/dist/cjs/app-router/admin/sessionHandlers.js +3 -2
- package/dist/cjs/app-router/admin/sessionHandlers.js.map +1 -1
- package/dist/cjs/app-router/admin/types.js +5 -6
- package/dist/cjs/app-router/admin/types.js.map +1 -1
- package/dist/cjs/server/ternSecureEdgeMiddleware.js +5 -15
- package/dist/cjs/server/ternSecureEdgeMiddleware.js.map +1 -1
- package/dist/cjs/server/ternsecureClient.js +44 -0
- package/dist/cjs/server/ternsecureClient.js.map +1 -0
- package/dist/esm/app-router/admin/c-authenticateRequestProcessor.js +0 -1
- package/dist/esm/app-router/admin/c-authenticateRequestProcessor.js.map +1 -1
- package/dist/esm/app-router/admin/constants.js +12 -0
- package/dist/esm/app-router/admin/constants.js.map +1 -1
- package/dist/esm/app-router/admin/request.js +52 -0
- package/dist/esm/app-router/admin/request.js.map +1 -0
- package/dist/esm/app-router/admin/sessionHandlers.js +4 -3
- package/dist/esm/app-router/admin/sessionHandlers.js.map +1 -1
- package/dist/esm/app-router/admin/types.js +5 -6
- package/dist/esm/app-router/admin/types.js.map +1 -1
- package/dist/esm/server/ternSecureEdgeMiddleware.js +5 -16
- package/dist/esm/server/ternSecureEdgeMiddleware.js.map +1 -1
- package/dist/esm/server/ternsecureClient.js +22 -0
- package/dist/esm/server/ternsecureClient.js.map +1 -0
- package/dist/types/app-router/admin/c-authenticateRequestProcessor.d.ts.map +1 -1
- package/dist/types/app-router/admin/constants.d.ts +6 -0
- package/dist/types/app-router/admin/constants.d.ts.map +1 -1
- package/dist/types/app-router/admin/request.d.ts +4 -0
- package/dist/types/app-router/admin/request.d.ts.map +1 -0
- package/dist/types/app-router/admin/sessionHandlers.d.ts.map +1 -1
- package/dist/types/server/ternSecureEdgeMiddleware.d.ts.map +1 -1
- package/dist/types/server/ternsecureClient.d.ts +3 -0
- package/dist/types/server/ternsecureClient.d.ts.map +1 -0
- package/package.json +5 -5
- package/dist/cjs/server/ternSecureFireMiddleware.js +0 -192
- package/dist/cjs/server/ternSecureFireMiddleware.js.map +0 -1
- package/dist/esm/server/ternSecureFireMiddleware.js +0 -179
- package/dist/esm/server/ternSecureFireMiddleware.js.map +0 -1
- package/dist/types/server/ternSecureFireMiddleware.d.ts +0 -47
- package/dist/types/server/ternSecureFireMiddleware.d.ts.map +0 -1
|
@@ -1,179 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
constants,
|
|
3
|
-
createFireClient,
|
|
4
|
-
createTernSecureRequest
|
|
5
|
-
} from "@tern-secure/backend";
|
|
6
|
-
import { notFound as nextjsNotFound } from "next/navigation";
|
|
7
|
-
import { NextResponse } from "next/server";
|
|
8
|
-
import { isRedirect, setHeader } from "../utils/response";
|
|
9
|
-
import { serverRedirectWithAuth } from "../utils/serverRedirectAuth";
|
|
10
|
-
import { API_URL, API_VERSION, SIGN_IN_URL, SIGN_UP_URL } from "./constant";
|
|
11
|
-
import {
|
|
12
|
-
isNextjsNotFoundError,
|
|
13
|
-
isNextjsRedirectError,
|
|
14
|
-
isRedirectToSignInError,
|
|
15
|
-
isRedirectToSignUpError,
|
|
16
|
-
nextjsRedirectError,
|
|
17
|
-
redirectToSignInError,
|
|
18
|
-
redirectToSignUpError
|
|
19
|
-
} from "./nextErrors";
|
|
20
|
-
import { createProtect } from "./protect";
|
|
21
|
-
import { createRedirect } from "./redirect";
|
|
22
|
-
import { decorateRequest } from "./utils";
|
|
23
|
-
const backendClientDefaultOptions = {
|
|
24
|
-
apiUrl: API_URL,
|
|
25
|
-
apiVersion: API_VERSION
|
|
26
|
-
};
|
|
27
|
-
const ternSecureFireClient = async () => {
|
|
28
|
-
return createFireClientWithOptions({});
|
|
29
|
-
};
|
|
30
|
-
const createFireClientWithOptions = (options) => {
|
|
31
|
-
return createFireClient({
|
|
32
|
-
...backendClientDefaultOptions,
|
|
33
|
-
...options
|
|
34
|
-
});
|
|
35
|
-
};
|
|
36
|
-
const ternSecureMiddleware = (...args) => {
|
|
37
|
-
const [request, event] = parseRequestAndEvent(args);
|
|
38
|
-
const [handler, params] = parseHandlerAndOptions(args);
|
|
39
|
-
const middleware = () => {
|
|
40
|
-
const runMiddleware = async (request2, event2) => {
|
|
41
|
-
const resolvedParams = typeof params === "function" ? await params(request2) : params;
|
|
42
|
-
const signInUrl = resolvedParams.signInUrl || SIGN_IN_URL;
|
|
43
|
-
const signUpUrl = resolvedParams.signUpUrl || SIGN_UP_URL;
|
|
44
|
-
const options = {
|
|
45
|
-
signInUrl,
|
|
46
|
-
signUpUrl,
|
|
47
|
-
...resolvedParams
|
|
48
|
-
};
|
|
49
|
-
const reqBackendClient = await ternSecureFireClient();
|
|
50
|
-
const ternSecureRequest = createTernSecureRequest(request2);
|
|
51
|
-
const requestStateClient = await reqBackendClient.authenticateRequest(
|
|
52
|
-
ternSecureRequest,
|
|
53
|
-
options
|
|
54
|
-
);
|
|
55
|
-
const authObjectClient = requestStateClient.auth();
|
|
56
|
-
const { redirectToSignIn } = createMiddlewareRedirects(ternSecureRequest);
|
|
57
|
-
const { redirectToSignUp } = createMiddlewareRedirects(ternSecureRequest);
|
|
58
|
-
const protect = await createMiddlewareProtect(
|
|
59
|
-
ternSecureRequest,
|
|
60
|
-
authObjectClient,
|
|
61
|
-
redirectToSignIn
|
|
62
|
-
);
|
|
63
|
-
const authObj = Object.assign(authObjectClient, {
|
|
64
|
-
redirectToSignIn,
|
|
65
|
-
redirectToSignUp
|
|
66
|
-
});
|
|
67
|
-
const authHandler = () => Promise.resolve(authObj);
|
|
68
|
-
authHandler.protect = protect;
|
|
69
|
-
let handlerResult = NextResponse.next();
|
|
70
|
-
try {
|
|
71
|
-
const userHandlerResult = await handler?.(authHandler, request2, event2);
|
|
72
|
-
handlerResult = userHandlerResult || handlerResult;
|
|
73
|
-
} catch (error) {
|
|
74
|
-
handlerResult = handleControlError(error, ternSecureRequest, request2);
|
|
75
|
-
}
|
|
76
|
-
if (requestStateClient.headers) {
|
|
77
|
-
requestStateClient.headers.forEach((value, key) => {
|
|
78
|
-
handlerResult.headers.append(key, value);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
if (isRedirect(handlerResult)) {
|
|
82
|
-
return serverRedirectWithAuth(ternSecureRequest, handlerResult);
|
|
83
|
-
}
|
|
84
|
-
decorateRequest(ternSecureRequest, handlerResult, requestStateClient);
|
|
85
|
-
return handlerResult;
|
|
86
|
-
};
|
|
87
|
-
const nextMiddleware = async (request2, event2) => {
|
|
88
|
-
console.log("[TernSecureMiddleware] Request URL:", request2.url);
|
|
89
|
-
console.log("[TernSecureMiddleware] Request pathname:", request2.nextUrl.pathname);
|
|
90
|
-
return runMiddleware(request2, event2);
|
|
91
|
-
};
|
|
92
|
-
if (request && event) {
|
|
93
|
-
return nextMiddleware(request, event);
|
|
94
|
-
}
|
|
95
|
-
return nextMiddleware;
|
|
96
|
-
};
|
|
97
|
-
return middleware();
|
|
98
|
-
};
|
|
99
|
-
const parseRequestAndEvent = (args) => {
|
|
100
|
-
return [
|
|
101
|
-
args[0] instanceof Request ? args[0] : void 0,
|
|
102
|
-
args[0] instanceof Request ? args[1] : void 0
|
|
103
|
-
];
|
|
104
|
-
};
|
|
105
|
-
const parseHandlerAndOptions = (args) => {
|
|
106
|
-
return [
|
|
107
|
-
typeof args[0] === "function" ? args[0] : void 0,
|
|
108
|
-
(args.length === 2 ? args[1] : typeof args[0] === "function" ? {} : args[0]) || {}
|
|
109
|
-
];
|
|
110
|
-
};
|
|
111
|
-
const isFirebaseRequest = (request) => request.nextUrl.pathname.startsWith("/__/");
|
|
112
|
-
const finalTarget = (request) => {
|
|
113
|
-
const finalTargetUrl = request.nextUrl.searchParams.get("finalTarget");
|
|
114
|
-
return finalTargetUrl ? new URL(finalTargetUrl, request.url) : void 0;
|
|
115
|
-
};
|
|
116
|
-
const isFirebaseCookieRequest = (request) => request.nextUrl.pathname === "/__cookies__";
|
|
117
|
-
const createMiddlewareRedirects = (ternSecureRequest) => {
|
|
118
|
-
const redirectToSignIn = (opts = {}) => {
|
|
119
|
-
const url = ternSecureRequest.ternUrl.toString();
|
|
120
|
-
redirectToSignInError(url, opts.returnBackUrl);
|
|
121
|
-
};
|
|
122
|
-
const redirectToSignUp = (opts = {}) => {
|
|
123
|
-
const url = ternSecureRequest.ternUrl.toString();
|
|
124
|
-
redirectToSignUpError(url, opts.returnBackUrl);
|
|
125
|
-
};
|
|
126
|
-
return { redirectToSignIn, redirectToSignUp };
|
|
127
|
-
};
|
|
128
|
-
const createMiddlewareProtect = (ternSecureRequest, authObject, redirectToSignIn) => {
|
|
129
|
-
return async (params, options) => {
|
|
130
|
-
const notFound = () => nextjsNotFound();
|
|
131
|
-
const redirect = (url) => nextjsRedirectError(url, {
|
|
132
|
-
redirectUrl: url
|
|
133
|
-
});
|
|
134
|
-
return createProtect({
|
|
135
|
-
request: ternSecureRequest,
|
|
136
|
-
redirect,
|
|
137
|
-
notFound,
|
|
138
|
-
authObject,
|
|
139
|
-
redirectToSignIn
|
|
140
|
-
})(params, options);
|
|
141
|
-
};
|
|
142
|
-
};
|
|
143
|
-
const redirectAdapter = (url) => {
|
|
144
|
-
return NextResponse.redirect(url, {
|
|
145
|
-
headers: { [constants.Headers.TernSecureRedirectTo]: "true" }
|
|
146
|
-
});
|
|
147
|
-
};
|
|
148
|
-
const handleControlError = (error, ternSecureRequest, nextrequest) => {
|
|
149
|
-
if (isNextjsNotFoundError(error)) {
|
|
150
|
-
return setHeader(
|
|
151
|
-
NextResponse.rewrite(new URL(`/tern_${Date.now()}`, nextrequest.url)),
|
|
152
|
-
constants.Headers.AuthReason,
|
|
153
|
-
"protect-rewrite"
|
|
154
|
-
);
|
|
155
|
-
}
|
|
156
|
-
const isRedirectToSignIn = isRedirectToSignInError(error);
|
|
157
|
-
const isRedirectToSignUp = isRedirectToSignUpError(error);
|
|
158
|
-
if (isRedirectToSignIn || isRedirectToSignUp) {
|
|
159
|
-
const redirect = createRedirect({
|
|
160
|
-
redirectAdapter,
|
|
161
|
-
baseUrl: ternSecureRequest.ternUrl,
|
|
162
|
-
signInUrl: SIGN_IN_URL,
|
|
163
|
-
signUpUrl: SIGN_UP_URL
|
|
164
|
-
});
|
|
165
|
-
const { returnBackUrl } = error;
|
|
166
|
-
return redirect[isRedirectToSignIn ? "redirectToSignIn" : "redirectToSignUp"]({
|
|
167
|
-
returnBackUrl
|
|
168
|
-
});
|
|
169
|
-
}
|
|
170
|
-
if (isNextjsRedirectError(error)) {
|
|
171
|
-
return redirectAdapter(error.redirectUrl);
|
|
172
|
-
}
|
|
173
|
-
throw error;
|
|
174
|
-
};
|
|
175
|
-
export {
|
|
176
|
-
redirectAdapter,
|
|
177
|
-
ternSecureMiddleware
|
|
178
|
-
};
|
|
179
|
-
//# sourceMappingURL=ternSecureFireMiddleware.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/server/ternSecureFireMiddleware.ts"],"sourcesContent":["import type {\n AuthObject,\n RequestOptions,\n TernSecureRequest,\n} from '@tern-secure/backend';\nimport {\n constants,\n createFireClient,\n createTernSecureRequest,\n} from '@tern-secure/backend';\nimport type {\n TernSecureConfig,\n} from '@tern-secure/types';\nimport { notFound as nextjsNotFound } from 'next/navigation';\nimport type { NextMiddleware,NextRequest } from 'next/server';\nimport { NextResponse } from 'next/server';\n\nimport { isRedirect, setHeader } from '../utils/response';\nimport { serverRedirectWithAuth } from '../utils/serverRedirectAuth';\nimport { API_URL, API_VERSION,SIGN_IN_URL, SIGN_UP_URL } from './constant';\nimport {\n isNextjsNotFoundError,\n isNextjsRedirectError,\n isRedirectToSignInError,\n isRedirectToSignUpError,\n nextjsRedirectError,\n redirectToSignInError,\n redirectToSignUpError,\n} from './nextErrors';\nimport { type AuthProtect,createProtect } from './protect';\nimport { createRedirect, type RedirectFun } from './redirect';\nimport type {\n NextMiddlewareEvtParam,\n NextMiddlewareRequestParam,\n NextMiddlewareReturn,\n} from './types';\nimport { decorateRequest } from './utils';\n\nexport type MiddlewareAuthObject = AuthObject & {\n redirectToSignIn: RedirectFun<Response>;\n redirectToSignUp: RedirectFun<Response>;\n};\n\nexport interface MiddlewareAuth {\n (): Promise<MiddlewareAuthObject>;\n\n protect: AuthProtect;\n}\n\ntype MiddlewareHandler = (\n auth: MiddlewareAuth,\n request: NextMiddlewareRequestParam,\n event: NextMiddlewareEvtParam,\n) => NextMiddlewareReturn;\n\nexport interface MiddlewareOptions extends RequestOptions {\n debug?: boolean;\n firebaseOptions?: TernSecureConfig;\n}\ntype MiddlewareOptionsCallback = (\n req: NextRequest,\n) => MiddlewareOptions | Promise<MiddlewareOptions>;\n\ninterface TernSecureMiddleware {\n /**\n * @example\n * export default ternSecureMiddleware((auth, request, event) => { ... }, options);\n */\n (handler: MiddlewareHandler, options?: MiddlewareOptions): NextMiddleware;\n\n /**\n * @example\n * export default ternSecureMiddleware((auth, request, event) => { ... }, (req) => options);\n */\n (handler: MiddlewareHandler, options?: MiddlewareOptionsCallback): NextMiddleware;\n\n /**\n * @example\n * export default ternSecureMiddleware(options);\n */\n (options?: MiddlewareOptions): NextMiddleware;\n /**\n * @example\n * export default ternSecureMiddleware;\n */\n (request: NextMiddlewareRequestParam, event: NextMiddlewareEvtParam): NextMiddlewareReturn;\n}\n\nconst backendClientDefaultOptions = {\n apiUrl: API_URL,\n apiVersion: API_VERSION,\n};\n\nconst ternSecureFireClient = async () => {\n return createFireClientWithOptions({});\n};\n\nconst createFireClientWithOptions: typeof createFireClient = options => {\n return createFireClient({\n ...backendClientDefaultOptions,\n ...options,\n });\n};\n\nexport const ternSecureMiddleware = ((\n ...args: unknown[]\n): NextMiddleware | NextMiddlewareReturn => {\n const [request, event] = parseRequestAndEvent(args);\n const [handler, params] = parseHandlerAndOptions(args);\n\n const middleware = () => {\n const runMiddleware: NextMiddleware = async (request, event) => {\n const resolvedParams = typeof params === 'function' ? await params(request) : params;\n const signInUrl = resolvedParams.signInUrl || SIGN_IN_URL;\n const signUpUrl = resolvedParams.signUpUrl || SIGN_UP_URL;\n\n const options = {\n signInUrl,\n signUpUrl,\n ...resolvedParams,\n };\n\n const reqBackendClient = await ternSecureFireClient();\n const ternSecureRequest = createTernSecureRequest(request);\n\n const requestStateClient = await reqBackendClient.authenticateRequest(\n ternSecureRequest,\n options,\n );\n\n const authObjectClient = requestStateClient.auth();\n\n const { redirectToSignIn } = createMiddlewareRedirects(ternSecureRequest);\n\n const { redirectToSignUp } = createMiddlewareRedirects(ternSecureRequest);\n\n const protect = await createMiddlewareProtect(\n ternSecureRequest,\n authObjectClient,\n redirectToSignIn,\n );\n\n const authObj: MiddlewareAuthObject = Object.assign(authObjectClient, {\n redirectToSignIn,\n redirectToSignUp,\n });\n\n const authHandler = () => Promise.resolve(authObj);\n authHandler.protect = protect;\n\n let handlerResult: Response = NextResponse.next();\n\n try {\n const userHandlerResult = await handler?.(authHandler, request, event);\n handlerResult = userHandlerResult || handlerResult;\n } catch (error: any) {\n handlerResult = handleControlError(error, ternSecureRequest, request);\n }\n\n if (requestStateClient.headers) {\n requestStateClient.headers.forEach((value, key) => {\n handlerResult.headers.append(key, value);\n });\n }\n\n if (isRedirect(handlerResult)) {\n return serverRedirectWithAuth(ternSecureRequest, handlerResult);\n }\n\n decorateRequest(ternSecureRequest, handlerResult, requestStateClient);\n return handlerResult;\n };\n\n const nextMiddleware: NextMiddleware = async (request, event) => {\n console.log('[TernSecureMiddleware] Request URL:', request.url);\n console.log('[TernSecureMiddleware] Request pathname:', request.nextUrl.pathname);\n return runMiddleware(request, event);\n };\n\n if (request && event) {\n return nextMiddleware(request, event);\n }\n\n return nextMiddleware;\n };\n return middleware();\n}) as TernSecureMiddleware;\n\nconst parseRequestAndEvent = (args: unknown[]) => {\n return [\n args[0] instanceof Request ? args[0] : undefined,\n args[0] instanceof Request ? args[1] : undefined,\n ] as [NextMiddlewareRequestParam | undefined, NextMiddlewareEvtParam | undefined];\n};\n\nconst parseHandlerAndOptions = (args: unknown[]) => {\n return [\n typeof args[0] === 'function' ? args[0] : undefined,\n (args.length === 2 ? args[1] : typeof args[0] === 'function' ? {} : args[0]) || {},\n ] as [MiddlewareHandler | undefined, MiddlewareOptions | MiddlewareOptionsCallback];\n};\n\nconst isFirebaseRequest = (request: NextMiddlewareRequestParam) => \n request.nextUrl.pathname.startsWith('/__/');\n\nconst finalTarget = (request: NextMiddlewareRequestParam) => {\n const finalTargetUrl = request.nextUrl.searchParams.get('finalTarget');\n return finalTargetUrl ? new URL(finalTargetUrl, request.url) : undefined;\n}\n\nconst isFirebaseCookieRequest = (request: NextMiddlewareRequestParam) => \n request.nextUrl.pathname === '/__cookies__';\n\n/**\n * Create middleware redirect functions\n */\nconst createMiddlewareRedirects = (ternSecureRequest: TernSecureRequest) => {\n const redirectToSignIn: MiddlewareAuthObject['redirectToSignIn'] = (opts = {}) => {\n const url = ternSecureRequest.ternUrl.toString();\n redirectToSignInError(url, opts.returnBackUrl);\n };\n\n const redirectToSignUp: MiddlewareAuthObject['redirectToSignUp'] = (opts = {}) => {\n const url = ternSecureRequest.ternUrl.toString();\n redirectToSignUpError(url, opts.returnBackUrl);\n };\n\n return { redirectToSignIn, redirectToSignUp };\n};\n\nconst createMiddlewareProtect = (\n ternSecureRequest: TernSecureRequest,\n authObject: AuthObject,\n redirectToSignIn: RedirectFun<Response>,\n) => {\n return (async (params: any, options: any) => {\n const notFound = () => nextjsNotFound();\n\n const redirect = (url: string) =>\n nextjsRedirectError(url, {\n redirectUrl: url,\n });\n\n return createProtect({\n request: ternSecureRequest,\n redirect,\n notFound,\n authObject,\n redirectToSignIn,\n })(params, options);\n }) as unknown as Promise<AuthProtect>;\n};\n\nexport const redirectAdapter = (url: string | URL) => {\n return NextResponse.redirect(url, {\n headers: { [constants.Headers.TernSecureRedirectTo]: 'true' },\n });\n};\n\n/**\n * Handle control flow errors in middleware\n */\nconst handleControlError = (\n error: any,\n ternSecureRequest: TernSecureRequest,\n nextrequest: NextRequest,\n): Response => {\n if (isNextjsNotFoundError(error)) {\n return setHeader(\n NextResponse.rewrite(new URL(`/tern_${Date.now()}`, nextrequest.url)),\n constants.Headers.AuthReason,\n 'protect-rewrite',\n );\n }\n\n const isRedirectToSignIn = isRedirectToSignInError(error);\n const isRedirectToSignUp = isRedirectToSignUpError(error);\n\n if (isRedirectToSignIn || isRedirectToSignUp) {\n const redirect = createRedirect({\n redirectAdapter,\n baseUrl: ternSecureRequest.ternUrl,\n signInUrl: SIGN_IN_URL,\n signUpUrl: SIGN_UP_URL,\n });\n\n const { returnBackUrl } = error;\n\n return redirect[isRedirectToSignIn ? 'redirectToSignIn' : 'redirectToSignUp']({\n returnBackUrl,\n });\n }\n\n if (isNextjsRedirectError(error)) {\n return redirectAdapter(error.redirectUrl);\n }\n\n throw error;\n};\n"],"mappings":"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","names":["request","event"]}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import type { AuthObject, RequestOptions } from '@tern-secure/backend';
|
|
2
|
-
import type { TernSecureConfig } from '@tern-secure/types';
|
|
3
|
-
import type { NextMiddleware, NextRequest } from 'next/server';
|
|
4
|
-
import { NextResponse } from 'next/server';
|
|
5
|
-
import { type AuthProtect } from './protect';
|
|
6
|
-
import { type RedirectFun } from './redirect';
|
|
7
|
-
import type { NextMiddlewareEvtParam, NextMiddlewareRequestParam, NextMiddlewareReturn } from './types';
|
|
8
|
-
export type MiddlewareAuthObject = AuthObject & {
|
|
9
|
-
redirectToSignIn: RedirectFun<Response>;
|
|
10
|
-
redirectToSignUp: RedirectFun<Response>;
|
|
11
|
-
};
|
|
12
|
-
export interface MiddlewareAuth {
|
|
13
|
-
(): Promise<MiddlewareAuthObject>;
|
|
14
|
-
protect: AuthProtect;
|
|
15
|
-
}
|
|
16
|
-
type MiddlewareHandler = (auth: MiddlewareAuth, request: NextMiddlewareRequestParam, event: NextMiddlewareEvtParam) => NextMiddlewareReturn;
|
|
17
|
-
export interface MiddlewareOptions extends RequestOptions {
|
|
18
|
-
debug?: boolean;
|
|
19
|
-
firebaseOptions?: TernSecureConfig;
|
|
20
|
-
}
|
|
21
|
-
type MiddlewareOptionsCallback = (req: NextRequest) => MiddlewareOptions | Promise<MiddlewareOptions>;
|
|
22
|
-
interface TernSecureMiddleware {
|
|
23
|
-
/**
|
|
24
|
-
* @example
|
|
25
|
-
* export default ternSecureMiddleware((auth, request, event) => { ... }, options);
|
|
26
|
-
*/
|
|
27
|
-
(handler: MiddlewareHandler, options?: MiddlewareOptions): NextMiddleware;
|
|
28
|
-
/**
|
|
29
|
-
* @example
|
|
30
|
-
* export default ternSecureMiddleware((auth, request, event) => { ... }, (req) => options);
|
|
31
|
-
*/
|
|
32
|
-
(handler: MiddlewareHandler, options?: MiddlewareOptionsCallback): NextMiddleware;
|
|
33
|
-
/**
|
|
34
|
-
* @example
|
|
35
|
-
* export default ternSecureMiddleware(options);
|
|
36
|
-
*/
|
|
37
|
-
(options?: MiddlewareOptions): NextMiddleware;
|
|
38
|
-
/**
|
|
39
|
-
* @example
|
|
40
|
-
* export default ternSecureMiddleware;
|
|
41
|
-
*/
|
|
42
|
-
(request: NextMiddlewareRequestParam, event: NextMiddlewareEvtParam): NextMiddlewareReturn;
|
|
43
|
-
}
|
|
44
|
-
export declare const ternSecureMiddleware: TernSecureMiddleware;
|
|
45
|
-
export declare const redirectAdapter: (url: string | URL) => NextResponse<unknown>;
|
|
46
|
-
export {};
|
|
47
|
-
//# sourceMappingURL=ternSecureFireMiddleware.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ternSecureFireMiddleware.d.ts","sourceRoot":"","sources":["../../../src/server/ternSecureFireMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,UAAU,EACV,cAAc,EAEf,MAAM,sBAAsB,CAAC;AAM9B,OAAO,KAAK,EACV,gBAAgB,EACjB,MAAM,oBAAoB,CAAC;AAE5B,OAAO,KAAK,EAAE,cAAc,EAAC,WAAW,EAAE,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAc3C,OAAO,EAAE,KAAK,WAAW,EAAgB,MAAM,WAAW,CAAC;AAC3D,OAAO,EAAkB,KAAK,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9D,OAAO,KAAK,EACV,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,oBAAoB,GAAG,UAAU,GAAG;IAC9C,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;IACxC,gBAAgB,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;CACzC,CAAC;AAEF,MAAM,WAAW,cAAc;IAC7B,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAElC,OAAO,EAAE,WAAW,CAAC;CACtB;AAED,KAAK,iBAAiB,GAAG,CACvB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,sBAAsB,KAC1B,oBAAoB,CAAC;AAE1B,MAAM,WAAW,iBAAkB,SAAQ,cAAc;IACvD,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,eAAe,CAAC,EAAE,gBAAgB,CAAC;CACpC;AACD,KAAK,yBAAyB,GAAG,CAC/B,GAAG,EAAE,WAAW,KACb,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;AAEpD,UAAU,oBAAoB;IAC5B;;;OAGG;IACH,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAE1E;;;OAGG;IACH,CAAC,OAAO,EAAE,iBAAiB,EAAE,OAAO,CAAC,EAAE,yBAAyB,GAAG,cAAc,CAAC;IAElF;;;OAGG;IACH,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAC9C;;;OAGG;IACH,CAAC,OAAO,EAAE,0BAA0B,EAAE,KAAK,EAAE,sBAAsB,GAAG,oBAAoB,CAAC;CAC5F;AAkBD,eAAO,MAAM,oBAAoB,EAkF3B,oBAAoB,CAAC;AAmE3B,eAAO,MAAM,eAAe,GAAI,KAAK,MAAM,GAAG,GAAG,0BAIhD,CAAC"}
|