@tern-secure/nextjs 4.2.1 → 4.2.3
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/sessionTernSecure.js +29 -25
- package/dist/cjs/app-router/admin/sessionTernSecure.js.map +1 -1
- package/dist/cjs/components/sign-in.js +3 -0
- package/dist/cjs/components/sign-in.js.map +1 -1
- package/dist/cjs/server/auth.js +59 -44
- package/dist/cjs/server/auth.js.map +1 -1
- package/dist/cjs/server/crypto.js +43 -0
- package/dist/cjs/server/crypto.js.map +1 -0
- package/dist/cjs/server/ctx-store.js +65 -0
- package/dist/cjs/server/ctx-store.js.map +1 -0
- package/dist/cjs/server/edge-session.js +23 -19
- package/dist/cjs/server/edge-session.js.map +1 -1
- package/dist/cjs/server/index.js +0 -2
- package/dist/cjs/server/index.js.map +1 -1
- package/dist/cjs/server/jwt-edge.js +50 -24
- package/dist/cjs/server/jwt-edge.js.map +1 -1
- package/dist/cjs/server/jwt.js +0 -10
- package/dist/cjs/server/jwt.js.map +1 -1
- package/dist/cjs/server/session-store.js +72 -0
- package/dist/cjs/server/session-store.js.map +1 -0
- package/dist/cjs/server/ternSecureMiddleware.js +25 -53
- package/dist/cjs/server/ternSecureMiddleware.js.map +1 -1
- package/dist/cjs/server/types.js +17 -0
- package/dist/cjs/server/types.js.map +1 -0
- package/dist/cjs/server/utils.js +108 -0
- package/dist/cjs/server/utils.js.map +1 -0
- package/dist/esm/app-router/admin/sessionTernSecure.js +29 -25
- package/dist/esm/app-router/admin/sessionTernSecure.js.map +1 -1
- package/dist/esm/components/sign-in.js +3 -0
- package/dist/esm/components/sign-in.js.map +1 -1
- package/dist/esm/server/auth.js +57 -43
- package/dist/esm/server/auth.js.map +1 -1
- package/dist/esm/server/crypto.js +18 -0
- package/dist/esm/server/crypto.js.map +1 -0
- package/dist/esm/server/ctx-store.js +41 -0
- package/dist/esm/server/ctx-store.js.map +1 -0
- package/dist/esm/server/edge-session.js +23 -19
- package/dist/esm/server/edge-session.js.map +1 -1
- package/dist/esm/server/index.js +1 -2
- package/dist/esm/server/index.js.map +1 -1
- package/dist/esm/server/jwt-edge.js +50 -24
- package/dist/esm/server/jwt-edge.js.map +1 -1
- package/dist/esm/server/jwt.js +0 -10
- package/dist/esm/server/jwt.js.map +1 -1
- package/dist/esm/server/session-store.js +47 -0
- package/dist/esm/server/session-store.js.map +1 -0
- package/dist/esm/server/ternSecureMiddleware.js +25 -52
- package/dist/esm/server/ternSecureMiddleware.js.map +1 -1
- package/dist/esm/server/types.js +1 -0
- package/dist/esm/server/types.js.map +1 -0
- package/dist/esm/server/utils.js +84 -0
- package/dist/esm/server/utils.js.map +1 -0
- package/dist/types/app-router/admin/sessionTernSecure.d.ts +9 -10
- package/dist/types/app-router/admin/sessionTernSecure.d.ts.map +1 -1
- package/dist/types/components/sign-in.d.ts.map +1 -1
- package/dist/types/server/auth.d.ts +9 -5
- package/dist/types/server/auth.d.ts.map +1 -1
- package/dist/types/server/crypto.d.ts +3 -0
- package/dist/types/server/crypto.d.ts.map +1 -0
- package/dist/types/server/ctx-store.d.ts +24 -0
- package/dist/types/server/ctx-store.d.ts.map +1 -0
- package/dist/types/server/edge-session.d.ts +1 -12
- package/dist/types/server/edge-session.d.ts.map +1 -1
- package/dist/types/server/index.d.ts +2 -2
- package/dist/types/server/index.d.ts.map +1 -1
- package/dist/types/server/jwt-edge.d.ts +4 -0
- package/dist/types/server/jwt-edge.d.ts.map +1 -1
- package/dist/types/server/jwt.d.ts.map +1 -1
- package/dist/types/server/session-store.d.ts +30 -0
- package/dist/types/server/session-store.d.ts.map +1 -0
- package/dist/types/server/ternSecureMiddleware.d.ts +3 -4
- package/dist/types/server/ternSecureMiddleware.d.ts.map +1 -1
- package/dist/types/server/types.d.ts +14 -0
- package/dist/types/server/types.d.ts.map +1 -0
- package/dist/types/server/utils.d.ts +22 -0
- package/dist/types/server/utils.d.ts.map +1 -0
- package/package.json +1 -1
|
@@ -1,15 +1,4 @@
|
|
|
1
1
|
import type { NextRequest } from "next/server";
|
|
2
|
-
|
|
3
|
-
uid: string;
|
|
4
|
-
email: string | null;
|
|
5
|
-
emailVerified?: boolean;
|
|
6
|
-
authTime?: number;
|
|
7
|
-
disabled?: boolean;
|
|
8
|
-
}
|
|
9
|
-
export interface SessionResult {
|
|
10
|
-
isAuthenticated: boolean;
|
|
11
|
-
user: UserInfo | null;
|
|
12
|
-
error?: string;
|
|
13
|
-
}
|
|
2
|
+
import type { SessionResult } from "./types";
|
|
14
3
|
export declare function verifySession(request: NextRequest): Promise<SessionResult>;
|
|
15
4
|
//# sourceMappingURL=edge-session.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"edge-session.d.ts","sourceRoot":"","sources":["../../../src/server/edge-session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"edge-session.d.ts","sourceRoot":"","sources":["../../../src/server/edge-session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,KAAK,EAAE,aAAa,EAAY,MAAM,SAAS,CAAA;AAItD,wBAAsB,aAAa,CAAC,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,aAAa,CAAC,CAgEhF"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
export { ternSecureMiddleware, createRouteMatcher } from './ternSecureMiddleware';
|
|
2
|
-
export { auth,
|
|
3
|
-
export type {
|
|
2
|
+
export { auth, type AuthResult } from './auth';
|
|
3
|
+
export type { UserInfo, SessionResult } from './types';
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/server/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAA;AACjF,OAAO,EAAE,IAAI,EAAE,KAAK,UAAU,EAAE,MAAM,QAAQ,CAAA;AAC9C,YAAY,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA"}
|
|
@@ -4,6 +4,8 @@ export declare function verifyFirebaseToken(token: string, isSessionCookie?: boo
|
|
|
4
4
|
email: string | undefined;
|
|
5
5
|
emailVerified: boolean | undefined;
|
|
6
6
|
authTime: number;
|
|
7
|
+
issuedAt: number;
|
|
8
|
+
expiresAt: number;
|
|
7
9
|
error?: undefined;
|
|
8
10
|
} | {
|
|
9
11
|
valid: boolean;
|
|
@@ -12,5 +14,7 @@ export declare function verifyFirebaseToken(token: string, isSessionCookie?: boo
|
|
|
12
14
|
email?: undefined;
|
|
13
15
|
emailVerified?: undefined;
|
|
14
16
|
authTime?: undefined;
|
|
17
|
+
issuedAt?: undefined;
|
|
18
|
+
expiresAt?: undefined;
|
|
15
19
|
}>;
|
|
16
20
|
//# sourceMappingURL=jwt-edge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt-edge.d.ts","sourceRoot":"","sources":["../../../src/server/jwt-edge.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"jwt-edge.d.ts","sourceRoot":"","sources":["../../../src/server/jwt-edge.ts"],"names":[],"mappings":"AAuDA,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,UAAQ;;;;;;;;;;;;;;;;;;GAmE3E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/server/jwt.ts"],"names":[],"mappings":"AAuDA,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,UAAQ;;;;;;;;;;;;;;;;;;
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/server/jwt.ts"],"names":[],"mappings":"AAuDA,wBAAsB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,eAAe,UAAQ;;;;;;;;;;;;;;;;;;GAoF/E"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { UserInfo } from "./types";
|
|
2
|
+
/**
|
|
3
|
+
* Simple in-memory session store
|
|
4
|
+
* In a real app, this would be backed by Redis/etc
|
|
5
|
+
*/
|
|
6
|
+
declare class SessionStore {
|
|
7
|
+
private static instance;
|
|
8
|
+
private sessions;
|
|
9
|
+
private currentSessionId;
|
|
10
|
+
private constructor();
|
|
11
|
+
static getInstance(): SessionStore;
|
|
12
|
+
setUser(sessionId: string, user: UserInfo): void;
|
|
13
|
+
getUser(sessionId: string): UserInfo | null;
|
|
14
|
+
getCurrentUser(): UserInfo | null;
|
|
15
|
+
removeUser(sessionId: string): void;
|
|
16
|
+
clear(): void;
|
|
17
|
+
debug(): {
|
|
18
|
+
sessionsCount: number;
|
|
19
|
+
currentSessionId: string | null;
|
|
20
|
+
sessions: [string, UserInfo][];
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
export declare const sessionStore: SessionStore;
|
|
24
|
+
/**
|
|
25
|
+
* Cached function to get user from session store
|
|
26
|
+
* Uses React cache for SSR optimization
|
|
27
|
+
*/
|
|
28
|
+
export declare const getVerifiedUser: (sessionId: string) => UserInfo | null;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=session-store.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-store.d.ts","sourceRoot":"","sources":["../../../src/server/session-store.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC;;;GAGG;AACH,cAAM,YAAY;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAuB;IACvC,OAAO,CAAC,gBAAgB,CAAsB;IAE9C,OAAO;IAIP,MAAM,CAAC,WAAW,IAAI,YAAY;IAOlC,OAAO,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IAMzC,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAI3C,cAAc,IAAI,QAAQ,GAAG,IAAI;IAKjC,UAAU,CAAC,SAAS,EAAE,MAAM;IAI5B,KAAK;IAIL,KAAK;;;;;CAON;AAGD,eAAO,MAAM,YAAY,cAA6B,CAAA;AAEtD;;;GAGG;AACH,eAAO,MAAM,eAAe,cAAqB,MAAM,KAAG,QAAQ,GAAG,IAEnE,CAAA"}
|
|
@@ -1,9 +1,8 @@
|
|
|
1
|
-
import { NextRequest, NextResponse } from 'next/server';
|
|
2
|
-
import {
|
|
3
|
-
export declare const runtime = "edge";
|
|
1
|
+
import { type NextRequest, NextResponse } from 'next/server';
|
|
2
|
+
import type { UserInfo } from './types';
|
|
4
3
|
interface Auth {
|
|
5
4
|
user: UserInfo | null;
|
|
6
|
-
|
|
5
|
+
sessionId: string | null;
|
|
7
6
|
protect: () => Promise<void>;
|
|
8
7
|
}
|
|
9
8
|
type MiddlewareCallback = (auth: Auth, request: NextRequest) => Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ternSecureMiddleware.d.ts","sourceRoot":"","sources":["../../../src/server/ternSecureMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"ternSecureMiddleware.d.ts","sourceRoot":"","sources":["../../../src/server/ternSecureMiddleware.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAKvC,UAAU,IAAI;IACZ,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAA;IACrB,SAAS,EAAG,MAAM,GAAG,IAAI,CAAA;IACzB,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAA;CAC7B;AAED,KAAK,kBAAkB,GAAG,CACxB,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,WAAW,KACjB,OAAO,CAAC,IAAI,CAAC,CAAA;AAGlB;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,QAAQ,EAAE,MAAM,EAAE,aAClC,WAAW,KAAG,OAAO,CAUvC;AAGD;;;GAGG;AAEH,wBAAgB,oBAAoB,CAAC,QAAQ,EAAE,kBAAkB,aACrB,WAAW,oCAuDtD"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
export interface UserInfo {
|
|
2
|
+
uid: string;
|
|
3
|
+
email: string | null;
|
|
4
|
+
emailVerified?: boolean;
|
|
5
|
+
authTime?: number;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface SessionResult {
|
|
9
|
+
user: UserInfo | null;
|
|
10
|
+
token: string | null;
|
|
11
|
+
sessionId: string | null;
|
|
12
|
+
error?: string;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/server/types.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,QAAQ;IACrB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,aAAa,CAAC,EAAE,OAAO,CAAA;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAA;CACnB;AAGD,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAA;IACrB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;IACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAA;IACxB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { UserInfo } from "./types";
|
|
2
|
+
interface RequestContext {
|
|
3
|
+
user: UserInfo;
|
|
4
|
+
sessionId: string;
|
|
5
|
+
}
|
|
6
|
+
export declare class Store {
|
|
7
|
+
private static getStore;
|
|
8
|
+
static setContext(context: RequestContext): void;
|
|
9
|
+
static getContext(): RequestContext | null;
|
|
10
|
+
static setSession(sessionId: string, user: UserInfo): void;
|
|
11
|
+
static getSession(sessionId: string): UserInfo | null;
|
|
12
|
+
static debug(): {
|
|
13
|
+
contextsSize: any;
|
|
14
|
+
sessionsSize: any;
|
|
15
|
+
currentSession: any;
|
|
16
|
+
contexts: unknown[];
|
|
17
|
+
sessions: unknown[];
|
|
18
|
+
};
|
|
19
|
+
static cleanup(): void;
|
|
20
|
+
}
|
|
21
|
+
export {};
|
|
22
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/server/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAA;AAEvC,UAAU,cAAc;IACtB,IAAI,EAAE,QAAQ,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;CAClB;AAYD,qBAAa,KAAK;IAChB,OAAO,CAAC,MAAM,CAAC,QAAQ;IAcvB,MAAM,CAAC,UAAU,CAAC,OAAO,EAAE,cAAc;IAoBzC,MAAM,CAAC,UAAU,IAAI,cAAc,GAAG,IAAI;IAwB1C,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ;IAKnD,MAAM,CAAC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,GAAG,IAAI;IAKrD,MAAM,CAAC,KAAK;;;;;;;IAWZ,MAAM,CAAC,OAAO;CAcf"}
|