@tern-secure/nextjs 5.2.0-canary.v20251024005655 → 5.2.0-canary.v20251028151628

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (55) hide show
  1. package/dist/cjs/app-router/admin/actions.js +7 -2
  2. package/dist/cjs/app-router/admin/actions.js.map +1 -1
  3. package/dist/cjs/app-router/admin/request.js +2 -2
  4. package/dist/cjs/app-router/admin/request.js.map +1 -1
  5. package/dist/cjs/boundary/components.js +6 -0
  6. package/dist/cjs/boundary/components.js.map +1 -1
  7. package/dist/cjs/index.js +6 -0
  8. package/dist/cjs/index.js.map +1 -1
  9. package/dist/cjs/server/ternSecureEdgeMiddleware.js.map +1 -1
  10. package/dist/esm/app-router/admin/actions.js +7 -2
  11. package/dist/esm/app-router/admin/actions.js.map +1 -1
  12. package/dist/esm/app-router/admin/request.js +2 -2
  13. package/dist/esm/app-router/admin/request.js.map +1 -1
  14. package/dist/esm/boundary/components.js +6 -0
  15. package/dist/esm/boundary/components.js.map +1 -1
  16. package/dist/esm/index.js +7 -1
  17. package/dist/esm/index.js.map +1 -1
  18. package/dist/esm/server/ternSecureEdgeMiddleware.js.map +1 -1
  19. package/dist/types/app-router/admin/actions.d.ts +1 -0
  20. package/dist/types/app-router/admin/actions.d.ts.map +1 -1
  21. package/dist/types/boundary/components.d.ts +1 -1
  22. package/dist/types/boundary/components.d.ts.map +1 -1
  23. package/dist/types/index.d.ts +2 -2
  24. package/dist/types/index.d.ts.map +1 -1
  25. package/package.json +5 -5
  26. package/dist/cjs/server/node/SessionTernSecure.js +0 -55
  27. package/dist/cjs/server/node/SessionTernSecure.js.map +0 -1
  28. package/dist/cjs/server/node/auth.js +0 -90
  29. package/dist/cjs/server/node/auth.js.map +0 -1
  30. package/dist/cjs/server/node/index.js +0 -40
  31. package/dist/cjs/server/node/index.js.map +0 -1
  32. package/dist/cjs/server/node/node-session.js +0 -60
  33. package/dist/cjs/server/node/node-session.js.map +0 -1
  34. package/dist/cjs/server/node/ternSecureNodeMiddleware.js +0 -181
  35. package/dist/cjs/server/node/ternSecureNodeMiddleware.js.map +0 -1
  36. package/dist/esm/server/node/SessionTernSecure.js +0 -31
  37. package/dist/esm/server/node/SessionTernSecure.js.map +0 -1
  38. package/dist/esm/server/node/auth.js +0 -63
  39. package/dist/esm/server/node/auth.js.map +0 -1
  40. package/dist/esm/server/node/index.js +0 -19
  41. package/dist/esm/server/node/index.js.map +0 -1
  42. package/dist/esm/server/node/node-session.js +0 -36
  43. package/dist/esm/server/node/node-session.js.map +0 -1
  44. package/dist/esm/server/node/ternSecureNodeMiddleware.js +0 -164
  45. package/dist/esm/server/node/ternSecureNodeMiddleware.js.map +0 -1
  46. package/dist/types/server/node/SessionTernSecure.d.ts +0 -3
  47. package/dist/types/server/node/SessionTernSecure.d.ts.map +0 -1
  48. package/dist/types/server/node/auth.d.ts +0 -23
  49. package/dist/types/server/node/auth.d.ts.map +0 -1
  50. package/dist/types/server/node/index.d.ts +0 -3
  51. package/dist/types/server/node/index.d.ts.map +0 -1
  52. package/dist/types/server/node/node-session.d.ts +0 -4
  53. package/dist/types/server/node/node-session.d.ts.map +0 -1
  54. package/dist/types/server/node/ternSecureNodeMiddleware.d.ts +0 -54
  55. package/dist/types/server/node/ternSecureNodeMiddleware.d.ts.map +0 -1
@@ -1,164 +0,0 @@
1
- import { createRedirect, createTernSecureRequest } from "@tern-secure/backend";
2
- import {
3
- createBackendInstance
4
- } from "@tern-secure/backend/admin";
5
- import { NextResponse } from "next/server";
6
- import { SIGN_IN_URL, SIGN_UP_URL } from "../constant";
7
- import {
8
- isNextjsNotFoundError,
9
- isRedirectToSignInError,
10
- isRedirectToSignUpError,
11
- redirectToSignInError,
12
- redirectToSignUpError
13
- } from "../nextErrors";
14
- const createRouteMatcher = (patterns) => {
15
- return (request) => {
16
- const { pathname } = request.nextUrl;
17
- return patterns.some((pattern) => {
18
- const regexPattern = pattern.replace(/[.*+?^${}()|[\]\\]/g, "\\$&").replace(/\\\*/g, ".*");
19
- return new RegExp(`^${regexPattern}$`).test(pathname);
20
- });
21
- };
22
- };
23
- const authenticateMiddlewareRequest = async (request) => {
24
- try {
25
- const requestState = await createBackendInstance(request);
26
- const authResult = requestState.requestState.auth();
27
- return {
28
- user: {
29
- uid: authResult.session.uid,
30
- email: authResult.session.email || null,
31
- tenantId: authResult.session.firebase?.tenant || "default",
32
- authTime: authResult.session.auth_time
33
- },
34
- session: requestState.requestState.token
35
- };
36
- } catch (error) {
37
- console.error(
38
- "Auth check error:",
39
- error instanceof Error ? error.message : "Unknown error"
40
- );
41
- return {
42
- user: null,
43
- session: null
44
- };
45
- }
46
- };
47
- const ternSecureMiddleware = (...args) => {
48
- const [request, event] = parseRequestAndEvent(args);
49
- const [handler, params] = parseHandlerAndOptions(args);
50
- const middleware = () => {
51
- const withAuthNextMiddleware = async (request2, event2) => {
52
- const resolvedParams = typeof params === "function" ? await params(request2) : params;
53
- const signInUrl = resolvedParams.signInUrl || SIGN_IN_URL;
54
- const signUpUrl = resolvedParams.signUpUrl || SIGN_UP_URL;
55
- let handlerResult = NextResponse.next();
56
- if (handler) {
57
- const createAuthHandler = async () => {
58
- const authObject = await authenticateMiddlewareRequest(request2);
59
- const getAuth = async () => {
60
- const ternSecureRequest = createTernSecureRequest(request2);
61
- const { redirectToSignIn, redirectToSignUp } = createMiddlewareRedirects(
62
- ternSecureRequest,
63
- signInUrl,
64
- signUpUrl
65
- );
66
- return {
67
- ...authObject,
68
- redirectToSignIn,
69
- redirectToSignUp
70
- };
71
- };
72
- const protect = async () => {
73
- if (!authObject.user || !authObject.session) {
74
- const redirectUrl = new URL(signInUrl || "/sign-in", request2.url);
75
- redirectUrl.searchParams.set(
76
- "redirect",
77
- request2.nextUrl.pathname
78
- );
79
- redirectToSignInError(redirectUrl.toString());
80
- }
81
- };
82
- const authHandler = Object.assign(getAuth, {
83
- protect,
84
- user: authObject.user,
85
- session: authObject.session
86
- });
87
- return authHandler;
88
- };
89
- try {
90
- const auth = await createAuthHandler();
91
- const userHandlerResult = await handler(auth, request2, event2);
92
- handlerResult = userHandlerResult || handlerResult;
93
- } catch (error) {
94
- const ternSecureRequest = createTernSecureRequest(request2);
95
- handlerResult = handleControlError(error, ternSecureRequest, request2);
96
- }
97
- return handlerResult;
98
- }
99
- return handlerResult;
100
- };
101
- const nextMiddleware = async (request2, event2) => {
102
- return withAuthNextMiddleware(request2, event2);
103
- };
104
- if (request && event) {
105
- return nextMiddleware(request, event);
106
- }
107
- return nextMiddleware;
108
- };
109
- return middleware();
110
- };
111
- const parseRequestAndEvent = (args) => {
112
- return [
113
- args[0] instanceof Request ? args[0] : void 0,
114
- args[0] instanceof Request ? args[1] : void 0
115
- ];
116
- };
117
- const parseHandlerAndOptions = (args) => {
118
- return [
119
- typeof args[0] === "function" ? args[0] : void 0,
120
- (args.length === 2 ? args[1] : typeof args[0] === "function" ? {} : args[0]) || {}
121
- ];
122
- };
123
- const createMiddlewareRedirects = (ternSecureRequest, signInUrl, signUpUrl) => {
124
- const redirectToSignIn = (opts = {}) => {
125
- const url = signInUrl || ternSecureRequest.ternUrl.toString();
126
- redirectToSignInError(url, opts.returnBackUrl);
127
- };
128
- const redirectToSignUp = (opts = {}) => {
129
- const url = signUpUrl || ternSecureRequest.ternUrl.toString();
130
- redirectToSignUpError(url, opts.returnBackUrl);
131
- };
132
- return { redirectToSignIn, redirectToSignUp };
133
- };
134
- const handleControlError = (error, ternSecureRequest, nextrequest) => {
135
- if (isNextjsNotFoundError(error)) {
136
- return NextResponse.rewrite(new URL("/404", nextrequest.url));
137
- }
138
- if (isRedirectToSignInError(error)) {
139
- const redirectAdapter = (url) => NextResponse.redirect(new URL(url, nextrequest.url));
140
- const { redirectToSignIn } = createRedirect({
141
- redirectAdapter,
142
- baseUrl: ternSecureRequest.ternUrl.origin,
143
- signInUrl: SIGN_IN_URL,
144
- signUpUrl: SIGN_UP_URL
145
- });
146
- return redirectToSignIn({ returnBackUrl: error.returnBackUrl });
147
- }
148
- if (isRedirectToSignUpError(error)) {
149
- const redirectAdapter = (url) => NextResponse.redirect(new URL(url, nextrequest.url));
150
- const { redirectToSignUp } = createRedirect({
151
- redirectAdapter,
152
- baseUrl: ternSecureRequest.ternUrl.origin,
153
- signInUrl: SIGN_IN_URL,
154
- signUpUrl: SIGN_UP_URL
155
- });
156
- return redirectToSignUp({ returnBackUrl: error.returnBackUrl });
157
- }
158
- throw error;
159
- };
160
- export {
161
- createRouteMatcher,
162
- ternSecureMiddleware
163
- };
164
- //# sourceMappingURL=ternSecureNodeMiddleware.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../../../../src/server/node/ternSecureNodeMiddleware.ts"],"sourcesContent":["import {createRedirect, createTernSecureRequest, type TernSecureRequest } from \"@tern-secure/backend\";\nimport {\n createBackendInstance,\n} from \"@tern-secure/backend/admin\";\nimport type { NextMiddleware,NextRequest } from \"next/server\";\nimport {NextResponse } from \"next/server\";\n\nimport { SIGN_IN_URL, SIGN_UP_URL } from \"../constant\";\nimport {\n isNextjsNotFoundError,\n isRedirectToSignInError,\n isRedirectToSignUpError,\n redirectToSignInError,\n redirectToSignUpError,\n} from \"../nextErrors\";\nimport type { BaseUser ,\n NextMiddlewareEvtParam,\n NextMiddlewareRequestParam,\n NextMiddlewareReturn,\n} from \"../types\";\n\ntype RedirectToParams = { returnBackUrl?: string | URL | null };\nexport type RedirectFun<ReturnType> = (params?: RedirectToParams) => ReturnType;\n\nexport type AuthObject = {\n user: BaseUser | null;\n session: string | null;\n};\n\nexport interface MiddlewareAuth extends AuthObject {\n (): Promise<MiddlewareAuthObject>;\n protect: () => Promise<void>;\n}\n\ntype MiddlewareHandler = (\n auth: MiddlewareAuth,\n request: NextMiddlewareRequestParam,\n event: NextMiddlewareEvtParam\n) => NextMiddlewareReturn;\n\nexport type MiddlewareAuthObject = AuthObject & {\n redirectToSignIn: RedirectFun<Response>;\n redirectToSignUp: RedirectFun<Response>;\n};\n\n/**\n * Create a route matcher function for public paths\n */\nexport const createRouteMatcher = (patterns: string[]) => {\n return (request: NextRequest): boolean => {\n const { pathname } = request.nextUrl;\n return patterns.some((pattern) => {\n const regexPattern = pattern\n .replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\")\n .replace(/\\\\\\*/g, \".*\");\n\n return new RegExp(`^${regexPattern}$`).test(pathname);\n });\n };\n};\n\nconst authenticateMiddlewareRequest = async (\n request: NextRequest\n): Promise<AuthObject> => {\n try {\n const requestState = await createBackendInstance(request);\n const authResult = requestState.requestState.auth();\n\n return {\n user: {\n uid: authResult.session.uid,\n email: authResult.session.email || null,\n tenantId: authResult.session.firebase?.tenant || \"default\",\n authTime: authResult.session.auth_time,\n },\n session: requestState.requestState.token,\n };\n } catch (error) {\n console.error(\n \"Auth check error:\",\n error instanceof Error ? error.message : \"Unknown error\"\n );\n return {\n user: null,\n session: null,\n };\n }\n};\n\nexport interface MiddlewareOptions {\n signInUrl?: string;\n signUpUrl?: string;\n debug?: boolean;\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 (\n handler: MiddlewareHandler,\n options?: MiddlewareOptionsCallback\n ): NextMiddleware;\n\n /**\n * @example\n * export default ternSecureMiddleware(options);\n */\n (options?: MiddlewareOptions): NextMiddleware;\n /**\n * @example\n * export default ternSecureMiddleware;\n */\n (\n request: NextMiddlewareRequestParam,\n event: NextMiddlewareEvtParam\n ): NextMiddlewareReturn;\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 withAuthNextMiddleware: NextMiddleware = async (request, event) => {\n const resolvedParams =\n typeof params === \"function\" ? await params(request) : params;\n\n const signInUrl = resolvedParams.signInUrl || SIGN_IN_URL;\n const signUpUrl = resolvedParams.signUpUrl || SIGN_UP_URL;\n\n let handlerResult: Response = NextResponse.next();\n\n if (handler) {\n const createAuthHandler = async (): Promise<MiddlewareAuth> => {\n const authObject = await authenticateMiddlewareRequest(request);\n\n const getAuth = async (): Promise<MiddlewareAuthObject> => {\n const ternSecureRequest = createTernSecureRequest(request);\n const { redirectToSignIn, redirectToSignUp } =\n createMiddlewareRedirects(\n ternSecureRequest,\n signInUrl,\n signUpUrl\n );\n\n return {\n ...authObject,\n redirectToSignIn,\n redirectToSignUp,\n };\n };\n\n const protect = async (): Promise<void> => {\n if (!authObject.user || !authObject.session) {\n const redirectUrl = new URL(signInUrl || \"/sign-in\", request.url);\n redirectUrl.searchParams.set(\n \"redirect\",\n request.nextUrl.pathname\n );\n redirectToSignInError(redirectUrl.toString());\n }\n };\n\n // Return the MiddlewareAuth object with direct property access\n const authHandler = Object.assign(getAuth, {\n protect,\n user: authObject.user,\n session: authObject.session,\n });\n\n return authHandler as MiddlewareAuth;\n };\n\n try {\n const auth = await createAuthHandler();\n const userHandlerResult = await handler(auth, request, event);\n handlerResult = userHandlerResult || handlerResult;\n } catch (error) {\n const ternSecureRequest = createTernSecureRequest(request);\n handlerResult = handleControlError(error, ternSecureRequest, request);\n }\n\n return handlerResult;\n }\n\n return handlerResult;\n };\n\n const nextMiddleware: NextMiddleware = async (request, event) => {\n return withAuthNextMiddleware(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 [\n NextMiddlewareRequestParam | undefined,\n NextMiddlewareEvtParam | undefined,\n ];\n};\n\nconst parseHandlerAndOptions = (args: unknown[]) => {\n return [\n typeof args[0] === \"function\" ? args[0] : undefined,\n (args.length === 2\n ? args[1]\n : typeof args[0] === \"function\"\n ? {}\n : args[0]) || {},\n ] as [\n MiddlewareHandler | undefined,\n MiddlewareOptions | MiddlewareOptionsCallback,\n ];\n};\n\n/**\n * Create middleware redirect functions\n */\nconst createMiddlewareRedirects = (\n ternSecureRequest: TernSecureRequest,\n signInUrl: string,\n signUpUrl: string\n) => {\n const redirectToSignIn: MiddlewareAuthObject[\"redirectToSignIn\"] = (\n opts = {}\n ) => {\n const url = signInUrl || ternSecureRequest.ternUrl.toString();\n redirectToSignInError(url, opts.returnBackUrl);\n };\n\n const redirectToSignUp: MiddlewareAuthObject[\"redirectToSignUp\"] = (\n opts = {}\n ) => {\n const url = signUpUrl || ternSecureRequest.ternUrl.toString();\n redirectToSignUpError(url, opts.returnBackUrl);\n };\n\n return { redirectToSignIn, redirectToSignUp };\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 NextResponse.rewrite(new URL(\"/404\", nextrequest.url));\n }\n\n // Handle redirect to sign in errors\n if (isRedirectToSignInError(error)) {\n const redirectAdapter = (url: string) =>\n NextResponse.redirect(new URL(url, nextrequest.url));\n const { redirectToSignIn } = createRedirect({\n redirectAdapter,\n baseUrl: ternSecureRequest.ternUrl.origin,\n signInUrl: SIGN_IN_URL,\n signUpUrl: SIGN_UP_URL,\n });\n\n return redirectToSignIn({ returnBackUrl: error.returnBackUrl });\n }\n\n // Handle redirect to sign up errors\n if (isRedirectToSignUpError(error)) {\n const redirectAdapter = (url: string) =>\n NextResponse.redirect(new URL(url, nextrequest.url));\n const { redirectToSignUp } = createRedirect({\n redirectAdapter,\n baseUrl: ternSecureRequest.ternUrl.origin,\n signInUrl: SIGN_IN_URL,\n signUpUrl: SIGN_UP_URL,\n });\n\n return redirectToSignUp({ returnBackUrl: error.returnBackUrl });\n }\n\n throw error;\n};\n"],"mappings":"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","names":["request","event"]}
@@ -1,3 +0,0 @@
1
- import type { TernVerificationResult } from "@tern-secure/types";
2
- export declare function verifyFirebaseToken(token: string): Promise<TernVerificationResult>;
3
- //# sourceMappingURL=SessionTernSecure.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"SessionTernSecure.d.ts","sourceRoot":"","sources":["../../../../src/server/node/SessionTernSecure.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,oBAAoB,CAAC;AAEjE,wBAAsB,mBAAmB,CACvC,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC,sBAAsB,CAAC,CA0BjC"}
@@ -1,23 +0,0 @@
1
- import type { BaseUser } from "../../types";
2
- export interface AuthResult {
3
- user: BaseUser | null;
4
- error: Error | null;
5
- }
6
- /**
7
- * Get the current authenticated user from the session cookies
8
- */
9
- export declare const auth: () => Promise<AuthResult>;
10
- /**
11
- * Type guard to check if user is authenticated
12
- */
13
- export declare const isAuthenticated: () => Promise<boolean>;
14
- /**
15
- * Get user info from auth result
16
- */
17
- export declare const getUser: () => Promise<BaseUser | null>;
18
- /**
19
- * Require authentication
20
- * Throws error if not authenticated
21
- */
22
- export declare const requireAuth: () => Promise<BaseUser>;
23
- //# sourceMappingURL=auth.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../../../src/server/node/auth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAG5C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;CACrB;AAED;;GAEG;AACH,eAAO,MAAM,IAAI,QAAmB,OAAO,CAAC,UAAU,CA4CpD,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,eAAe,QAAmB,OAAO,CAAC,OAAO,CAG5D,CAAC;AAEH;;GAEG;AACH,eAAO,MAAM,OAAO,QAAmB,OAAO,CAAC,QAAQ,GAAG,IAAI,CAG5D,CAAC;AAEH;;;GAGG;AACH,eAAO,MAAM,WAAW,QAAmB,OAAO,CAAC,QAAQ,CAQzD,CAAC"}
@@ -1,3 +0,0 @@
1
- export { ternSecureMiddleware, createRouteMatcher, } from "./ternSecureNodeMiddleware";
2
- export { auth, getUser, isAuthenticated, requireAuth, type AuthResult, } from "./auth";
3
- //# sourceMappingURL=index.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/server/node/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,oBAAoB,EACpB,kBAAkB,GACnB,MAAM,4BAA4B,CAAC;AACpC,OAAO,EACL,IAAI,EACJ,OAAO,EACP,eAAe,EACf,WAAW,EACX,KAAK,UAAU,GAChB,MAAM,QAAQ,CAAC"}
@@ -1,4 +0,0 @@
1
- import type { NextRequest } from "next/server";
2
- import type { SessionResult } from "../types";
3
- export declare function verifySession(request: NextRequest): Promise<SessionResult>;
4
- //# sourceMappingURL=node-session.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"node-session.d.ts","sourceRoot":"","sources":["../../../../src/server/node/node-session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAG9C,wBAAsB,aAAa,CACjC,OAAO,EAAE,WAAW,GACnB,OAAO,CAAC,aAAa,CAAC,CAmCxB"}
@@ -1,54 +0,0 @@
1
- import type { NextMiddleware, NextRequest } from "next/server";
2
- import type { BaseUser, NextMiddlewareEvtParam, NextMiddlewareRequestParam, NextMiddlewareReturn } from "../types";
3
- type RedirectToParams = {
4
- returnBackUrl?: string | URL | null;
5
- };
6
- export type RedirectFun<ReturnType> = (params?: RedirectToParams) => ReturnType;
7
- export type AuthObject = {
8
- user: BaseUser | null;
9
- session: string | null;
10
- };
11
- export interface MiddlewareAuth extends AuthObject {
12
- (): Promise<MiddlewareAuthObject>;
13
- protect: () => Promise<void>;
14
- }
15
- type MiddlewareHandler = (auth: MiddlewareAuth, request: NextMiddlewareRequestParam, event: NextMiddlewareEvtParam) => NextMiddlewareReturn;
16
- export type MiddlewareAuthObject = AuthObject & {
17
- redirectToSignIn: RedirectFun<Response>;
18
- redirectToSignUp: RedirectFun<Response>;
19
- };
20
- /**
21
- * Create a route matcher function for public paths
22
- */
23
- export declare const createRouteMatcher: (patterns: string[]) => (request: NextRequest) => boolean;
24
- export interface MiddlewareOptions {
25
- signInUrl?: string;
26
- signUpUrl?: string;
27
- debug?: boolean;
28
- }
29
- type MiddlewareOptionsCallback = (req: NextRequest) => MiddlewareOptions | Promise<MiddlewareOptions>;
30
- interface TernSecureMiddleware {
31
- /**
32
- * @example
33
- * export default ternSecureMiddleware((auth, request, event) => { ... }, options);
34
- */
35
- (handler: MiddlewareHandler, options?: MiddlewareOptions): NextMiddleware;
36
- /**
37
- * @example
38
- * export default ternSecureMiddleware((auth, request, event) => { ... }, (req) => options);
39
- */
40
- (handler: MiddlewareHandler, options?: MiddlewareOptionsCallback): NextMiddleware;
41
- /**
42
- * @example
43
- * export default ternSecureMiddleware(options);
44
- */
45
- (options?: MiddlewareOptions): NextMiddleware;
46
- /**
47
- * @example
48
- * export default ternSecureMiddleware;
49
- */
50
- (request: NextMiddlewareRequestParam, event: NextMiddlewareEvtParam): NextMiddlewareReturn;
51
- }
52
- export declare const ternSecureMiddleware: TernSecureMiddleware;
53
- export {};
54
- //# sourceMappingURL=ternSecureNodeMiddleware.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ternSecureNodeMiddleware.d.ts","sourceRoot":"","sources":["../../../../src/server/node/ternSecureNodeMiddleware.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAC,WAAW,EAAE,MAAM,aAAa,CAAC;AAW9D,OAAO,KAAK,EAAE,QAAQ,EACpB,sBAAsB,EACtB,0BAA0B,EAC1B,oBAAoB,EACrB,MAAM,UAAU,CAAC;AAElB,KAAK,gBAAgB,GAAG;IAAE,aAAa,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,IAAI,CAAA;CAAE,CAAC;AAChE,MAAM,MAAM,WAAW,CAAC,UAAU,IAAI,CAAC,MAAM,CAAC,EAAE,gBAAgB,KAAK,UAAU,CAAC;AAEhF,MAAM,MAAM,UAAU,GAAG;IACvB,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,MAAM,WAAW,cAAe,SAAQ,UAAU;IAChD,IAAI,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;CAC9B;AAED,KAAK,iBAAiB,GAAG,CACvB,IAAI,EAAE,cAAc,EACpB,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,sBAAsB,KAC1B,oBAAoB,CAAC;AAE1B,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;;GAEG;AACH,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,EAAE,MAC3C,SAAS,WAAW,KAAG,OAUhC,CAAC;AA8BF,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;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,CACE,OAAO,EAAE,iBAAiB,EAC1B,OAAO,CAAC,EAAE,yBAAyB,GAClC,cAAc,CAAC;IAElB;;;OAGG;IACH,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG,cAAc,CAAC;IAC9C;;;OAGG;IACH,CACE,OAAO,EAAE,0BAA0B,EACnC,KAAK,EAAE,sBAAsB,GAC5B,oBAAoB,CAAC;CACzB;AAED,eAAO,MAAM,oBAAoB,EAmF3B,oBAAoB,CAAC"}