@tern-secure/auth 1.1.0-canary.v20251008131428 → 1.1.0-canary.v20251019190011
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/{resources → auth}/AuthCookieManager.js +12 -1
- package/dist/cjs/auth/AuthCookieManager.js.map +1 -0
- package/dist/cjs/auth/cookies/session.js +83 -0
- package/dist/cjs/auth/cookies/session.js.map +1 -0
- package/dist/cjs/auth/request.js +159 -0
- package/dist/cjs/auth/request.js.map +1 -0
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/instance/TernAuth.js +163 -19
- package/dist/cjs/instance/TernAuth.js.map +1 -1
- package/dist/cjs/instance/events.js +3 -2
- package/dist/cjs/instance/events.js.map +1 -1
- package/dist/cjs/instance/jwtClient.js +72 -0
- package/dist/cjs/instance/jwtClient.js.map +1 -0
- package/dist/cjs/resources/Base.js +7 -0
- package/dist/cjs/resources/Base.js.map +1 -1
- package/dist/cjs/resources/Session.js +105 -0
- package/dist/cjs/resources/Session.js.map +1 -0
- package/dist/cjs/resources/SignIn.js +25 -27
- package/dist/cjs/resources/SignIn.js.map +1 -1
- package/dist/cjs/resources/Token.js +32 -0
- package/dist/cjs/resources/Token.js.map +1 -0
- package/dist/cjs/resources/UserData.js +43 -0
- package/dist/cjs/resources/UserData.js.map +1 -0
- package/dist/cjs/resources/cookie.js +154 -0
- package/dist/cjs/resources/cookie.js.map +1 -0
- package/dist/cjs/resources/internal.js +4 -2
- package/dist/cjs/resources/internal.js.map +1 -1
- package/dist/cjs/utils/jwt.js +46 -0
- package/dist/cjs/utils/jwt.js.map +1 -0
- package/dist/cjs/utils/mapDecode.js +33 -0
- package/dist/cjs/utils/mapDecode.js.map +1 -0
- package/dist/esm/{resources → auth}/AuthCookieManager.js +13 -4
- package/dist/esm/auth/AuthCookieManager.js.map +1 -0
- package/dist/esm/auth/cookies/session.js +58 -0
- package/dist/esm/auth/cookies/session.js.map +1 -0
- package/dist/esm/auth/request.js +134 -0
- package/dist/esm/auth/request.js.map +1 -0
- package/dist/esm/index.js +2 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/instance/TernAuth.js +166 -21
- package/dist/esm/instance/TernAuth.js.map +1 -1
- package/dist/esm/instance/events.js +3 -2
- package/dist/esm/instance/events.js.map +1 -1
- package/dist/esm/instance/jwtClient.js +47 -0
- package/dist/esm/instance/jwtClient.js.map +1 -0
- package/dist/esm/resources/Base.js +7 -0
- package/dist/esm/resources/Base.js.map +1 -1
- package/dist/esm/resources/Session.js +81 -0
- package/dist/esm/resources/Session.js.map +1 -0
- package/dist/esm/resources/SignIn.js +25 -27
- package/dist/esm/resources/SignIn.js.map +1 -1
- package/dist/esm/resources/Token.js +8 -0
- package/dist/esm/resources/Token.js.map +1 -0
- package/dist/esm/resources/UserData.js +19 -0
- package/dist/esm/resources/UserData.js.map +1 -0
- package/dist/esm/resources/cookie.js +130 -0
- package/dist/esm/resources/cookie.js.map +1 -0
- package/dist/esm/resources/internal.js +2 -1
- package/dist/esm/resources/internal.js.map +1 -1
- package/dist/esm/utils/jwt.js +22 -0
- package/dist/esm/utils/jwt.js.map +1 -0
- package/dist/esm/utils/mapDecode.js +9 -0
- package/dist/esm/utils/mapDecode.js.map +1 -0
- package/dist/types/{resources → auth}/AuthCookieManager.d.ts +5 -1
- package/dist/types/auth/AuthCookieManager.d.ts.map +1 -0
- package/dist/types/auth/cookies/session.d.ts +8 -0
- package/dist/types/auth/cookies/session.d.ts.map +1 -0
- package/dist/types/auth/request.d.ts +49 -0
- package/dist/types/auth/request.d.ts.map +1 -0
- package/dist/types/index.d.ts +2 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/instance/TernAuth.d.ts +27 -5
- package/dist/types/instance/TernAuth.d.ts.map +1 -1
- package/dist/types/instance/events.d.ts +9 -1
- package/dist/types/instance/events.d.ts.map +1 -1
- package/dist/types/instance/jwtClient.d.ts +22 -0
- package/dist/types/instance/jwtClient.d.ts.map +1 -0
- package/dist/types/resources/Base.d.ts +6 -0
- package/dist/types/resources/Base.d.ts.map +1 -1
- package/dist/types/resources/Session.d.ts +49 -0
- package/dist/types/resources/Session.d.ts.map +1 -0
- package/dist/types/resources/SignIn.d.ts +8 -6
- package/dist/types/resources/SignIn.d.ts.map +1 -1
- package/dist/types/resources/Token.d.ts +5 -0
- package/dist/types/resources/Token.d.ts.map +1 -0
- package/dist/types/resources/UserData.d.ts +8 -0
- package/dist/types/resources/UserData.d.ts.map +1 -0
- package/dist/types/resources/cookie.d.ts +24 -0
- package/dist/types/resources/cookie.d.ts.map +1 -0
- package/dist/types/resources/internal.d.ts +2 -1
- package/dist/types/resources/internal.d.ts.map +1 -1
- package/dist/types/utils/jwt.d.ts +12 -0
- package/dist/types/utils/jwt.d.ts.map +1 -0
- package/dist/types/utils/mapDecode.d.ts +4 -0
- package/dist/types/utils/mapDecode.d.ts.map +1 -0
- package/package.json +4 -5
- package/dist/cjs/resources/AuthCookieManager.js.map +0 -1
- package/dist/esm/resources/AuthCookieManager.js.map +0 -1
- package/dist/types/resources/AuthCookieManager.d.ts.map +0 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { InstanceType, ListenerCallback, SignedInSession, SignInRedirectOptions, SignInResource,
|
|
1
|
+
import type { CreateActiveSession, InstanceType, ListenerCallback, SessionResource, SignedInSession, SignInRedirectOptions, SignInResource, SignInResponse, SignOut, SignUpRedirectOptions, SignUpResource, TernAuthSDK, TernSecureAuth as TernSecureAuthInterface, TernSecureAuthOptions, TernSecureUser, TernSecureUserData, UnsubscribeCallback } from '@tern-secure/types';
|
|
2
2
|
import type { Auth as TernAuth } from 'firebase/auth';
|
|
3
3
|
import { AuthCookieManager } from '../resources/internal';
|
|
4
4
|
import { type ApiClient } from './c_coreApiClient';
|
|
@@ -10,7 +10,7 @@ export { TernAuth };
|
|
|
10
10
|
export declare class TernSecureAuth implements TernSecureAuthInterface {
|
|
11
11
|
#private;
|
|
12
12
|
static version: string;
|
|
13
|
-
static sdkMetadata:
|
|
13
|
+
static sdkMetadata: TernAuthSDK;
|
|
14
14
|
private static instance;
|
|
15
15
|
private _currentUser;
|
|
16
16
|
private signedInSession;
|
|
@@ -24,39 +24,61 @@ export declare class TernSecureAuth implements TernSecureAuthInterface {
|
|
|
24
24
|
__internal_country?: string | null;
|
|
25
25
|
signIn: SignInResource;
|
|
26
26
|
signUp: SignUpResource;
|
|
27
|
+
session: SessionResource;
|
|
27
28
|
get isReady(): boolean;
|
|
28
29
|
get status(): TernSecureAuthInterface['status'];
|
|
29
30
|
get version(): string;
|
|
30
|
-
set sdkMetadata(metadata:
|
|
31
|
-
get sdkMetadata():
|
|
31
|
+
set sdkMetadata(metadata: TernAuthSDK);
|
|
32
|
+
get sdkMetadata(): TernAuthSDK;
|
|
32
33
|
get requiresVerification(): boolean;
|
|
33
34
|
get apiUrl(): string;
|
|
34
35
|
get domain(): string;
|
|
35
36
|
get instanceType(): InstanceType | undefined;
|
|
36
37
|
constructor(options?: TernSecureAuthOptions);
|
|
37
38
|
getApiClient: () => ApiClient;
|
|
39
|
+
/**
|
|
40
|
+
* Get user data for the provided ID token via backend API
|
|
41
|
+
*/
|
|
42
|
+
getUserData(): Promise<TernSecureUserData | null>;
|
|
38
43
|
setLoading(isLoading: boolean): void;
|
|
39
44
|
authCookieManager(): AuthCookieManager | undefined;
|
|
40
45
|
_internal_getOption<K extends keyof TernSecureAuthOptions>(key: K): TernSecureAuthOptions[K];
|
|
46
|
+
_internal_getAllOptions(): Readonly<TernSecureAuthOptions>;
|
|
41
47
|
static getorCreateInstance(options?: TernSecureAuthOptions): TernSecureAuth;
|
|
42
48
|
static clearInstance(): void;
|
|
43
49
|
static initialize(options: TernSecureAuthOptions): TernSecureAuth;
|
|
44
50
|
private initializeFirebaseApp;
|
|
51
|
+
/**
|
|
52
|
+
* use when cookie are not httpOnly
|
|
53
|
+
*/
|
|
54
|
+
initClient: () => void;
|
|
55
|
+
/**
|
|
56
|
+
* @deprecated will be removed in future releases.
|
|
57
|
+
*/
|
|
58
|
+
initClientAuthRequest: () => void;
|
|
45
59
|
signOut: SignOut;
|
|
46
60
|
get currentSession(): SignedInSession | null;
|
|
61
|
+
private initAuthListener;
|
|
47
62
|
private initAuthStateListener;
|
|
48
63
|
private _onIdTokenChanged;
|
|
64
|
+
private getIdToken;
|
|
49
65
|
onAuthStateChanged(callback: (cb: any) => void): () => void;
|
|
50
66
|
onIdTokenChanged(callback: (cb: any) => void): () => void;
|
|
51
67
|
private updateCurrentSession;
|
|
52
|
-
checkRedirectResult(): Promise<
|
|
68
|
+
checkRedirectResult(): Promise<SignInResponse | null>;
|
|
69
|
+
getRedirectResult: () => Promise<any>;
|
|
53
70
|
addListener: (listener: ListenerCallback) => UnsubscribeCallback;
|
|
54
71
|
on: TernSecureAuthInterface['on'];
|
|
55
72
|
off: TernSecureAuthInterface['off'];
|
|
73
|
+
createActiveSession: CreateActiveSession;
|
|
56
74
|
initialize(options: TernSecureAuthOptions): Promise<void>;
|
|
57
75
|
static create(options: TernSecureAuthOptions): TernSecureAuth;
|
|
58
76
|
_initialize: (options: TernSecureAuthOptions) => void;
|
|
59
77
|
constructUrlWithAuthRedirect: (to: string) => string;
|
|
78
|
+
redirectToSignIn: (options?: SignInRedirectOptions) => Promise<unknown>;
|
|
79
|
+
redirectToSignUp: (options?: SignUpRedirectOptions) => Promise<unknown>;
|
|
80
|
+
redirectAfterSignIn: () => Promise<void>;
|
|
81
|
+
redirectAfterSignUp: () => void;
|
|
60
82
|
constructSignInUrl: (options?: SignInRedirectOptions) => string;
|
|
61
83
|
constructSignUpUrl: (options?: SignUpRedirectOptions) => string;
|
|
62
84
|
__internal_setCountry: (country: string | null) => void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TernAuth.d.ts","sourceRoot":"","sources":["../../../src/instance/TernAuth.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"TernAuth.d.ts","sourceRoot":"","sources":["../../../src/instance/TernAuth.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,16 +1,24 @@
|
|
|
1
|
-
import type { IdTokenResult } from
|
|
1
|
+
import type { IdTokenResult } from '@tern-secure/types';
|
|
2
2
|
export declare const events: {
|
|
3
3
|
readonly UserSignOut: "user:userSignOut";
|
|
4
4
|
readonly SessionChanged: "session:sessionChanged";
|
|
5
5
|
readonly TokenRefreshed: "token:tokenRefreshed";
|
|
6
|
+
readonly TokenUpdate: "token:tokenUpdate";
|
|
7
|
+
readonly TokenJwt: "token:tokenJwt";
|
|
6
8
|
};
|
|
7
9
|
type TokenUpdatePayload = {
|
|
8
10
|
token: IdTokenResult | null;
|
|
9
11
|
};
|
|
12
|
+
type TokenJwt = {
|
|
13
|
+
tokenType: 'idToken' | 'sessionToken' | 'refreshToken' | 'customToken';
|
|
14
|
+
response: string;
|
|
15
|
+
};
|
|
10
16
|
type InternalEvents = {
|
|
11
17
|
[events.UserSignOut]: null;
|
|
12
18
|
[events.SessionChanged]: null;
|
|
13
19
|
[events.TokenRefreshed]: TokenUpdatePayload;
|
|
20
|
+
[events.TokenUpdate]: TokenUpdatePayload;
|
|
21
|
+
[events.TokenJwt]: TokenJwt;
|
|
14
22
|
};
|
|
15
23
|
export declare const eventBus: {
|
|
16
24
|
on: <Event extends keyof InternalEvents>(event: Event, handler: (payload: InternalEvents[Event]) => void, opts?: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/instance/events.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../../../src/instance/events.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAExD,eAAO,MAAM,MAAM;;;;;;CAMT,CAAC;AAEX,KAAK,kBAAkB,GAAG;IAAE,KAAK,EAAE,aAAa,GAAG,IAAI,CAAA;CAAE,CAAC;AAC1D,KAAK,QAAQ,GAAG;IAAE,SAAS,EAAE,SAAS,GAAG,cAAc,GAAG,cAAc,GAAG,aAAa,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC;AAE7G,KAAK,cAAc,GAAG;IACpB,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC;IAC3B,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,IAAI,CAAC;IAC9B,CAAC,MAAM,CAAC,cAAc,CAAC,EAAE,kBAAkB,CAAC;IAC5C,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,kBAAkB,CAAC;IACzC,CAAC,MAAM,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,QAAQ;;cAJU,CAAC;;;;+EAKuY,GAAG;CADlX,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { DecodedIdToken, SignedInSession, TernSecureUser } from '@tern-secure/types';
|
|
2
|
+
import type { AuthCookieManager } from '../auth/AuthCookieManager';
|
|
3
|
+
/**
|
|
4
|
+
* Utility functions for loading user from JWT cookie and updating client state
|
|
5
|
+
* This addresses the issue where user is undefined when client loads on page refresh
|
|
6
|
+
*/
|
|
7
|
+
export interface ClientUpdateOptions {
|
|
8
|
+
authCookieManager: AuthCookieManager;
|
|
9
|
+
onUserUpdate?: (user: TernSecureUser | null) => void;
|
|
10
|
+
onSessionUpdate?: (session: SignedInSession | null) => void;
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* Creates Firebase user from stored JWT token (ID token)
|
|
14
|
+
* Since the token is already a Firebase ID token, we validate it and wait for auth state
|
|
15
|
+
*/
|
|
16
|
+
declare const createClientFromJwt: (jwtToken: string | null) => DecodedIdToken | null;
|
|
17
|
+
/**
|
|
18
|
+
* Updates client user state and triggers callbacks
|
|
19
|
+
*/
|
|
20
|
+
declare const updateClient: (user: TernSecureUser | null, options: Pick<ClientUpdateOptions, "onUserUpdate" | "onSessionUpdate">) => void;
|
|
21
|
+
export { createClientFromJwt, updateClient };
|
|
22
|
+
//# sourceMappingURL=jwtClient.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwtClient.d.ts","sourceRoot":"","sources":["../../../src/instance/jwtClient.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAE1F,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGnE;;;GAGG;AAEH,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,iBAAiB,CAAC;IACrC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,cAAc,GAAG,IAAI,KAAK,IAAI,CAAC;IACrD,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,eAAe,GAAG,IAAI,KAAK,IAAI,CAAC;CAC7D;AAED;;;GAGG;AACH,QAAA,MAAM,mBAAmB,GAAI,UAAU,MAAM,GAAG,IAAI,KAAG,cAAc,GAAG,IAUvE,CAAC;AAEF;;GAEG;AACH,QAAA,MAAM,YAAY,GAChB,MAAM,cAAc,GAAG,IAAI,EAC3B,SAAS,IAAI,CAAC,mBAAmB,EAAE,cAAc,GAAG,iBAAiB,CAAC,KACrE,IAsCF,CAAC;AAEF,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,CAAC"}
|
|
@@ -6,6 +6,7 @@ export type PostMutateParams = {
|
|
|
6
6
|
body?: any;
|
|
7
7
|
method?: HTTPMethod | undefined;
|
|
8
8
|
path?: string;
|
|
9
|
+
search?: ConstructorParameters<typeof URLSearchParams>[0];
|
|
9
10
|
};
|
|
10
11
|
export declare abstract class TernSecureBase {
|
|
11
12
|
static ternsecure: TernSecureAuth;
|
|
@@ -29,6 +30,11 @@ export declare abstract class TernSecureBase {
|
|
|
29
30
|
* Instance method for making POST requests
|
|
30
31
|
*/
|
|
31
32
|
protected basePost(params: PostMutateParams): Promise<ApiResponseJSON<any> | null>;
|
|
33
|
+
/**
|
|
34
|
+
* Instance method to make GET requests
|
|
35
|
+
* This is a convenience method that sets the HTTP method to GET
|
|
36
|
+
*/
|
|
37
|
+
protected baseGet(params: Omit<PostMutateParams, 'method'>): Promise<ApiResponseJSON<any> | null>;
|
|
32
38
|
/**
|
|
33
39
|
* Protected instance method for making POST requests with specific path and body
|
|
34
40
|
* This is designed to be used by child classes like SignIn
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Base.d.ts","sourceRoot":"","sources":["../../../src/resources/Base.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAe,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,QAAQ,GACR,KAAK,GACL,MAAM,GACN,SAAS,GACT,OAAO,GACP,MAAM,GACN,KAAK,GACL,OAAO,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"Base.d.ts","sourceRoot":"","sources":["../../../src/resources/Base.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAe,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAG9F,OAAO,KAAK,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEpE,MAAM,MAAM,UAAU,GAClB,SAAS,GACT,QAAQ,GACR,KAAK,GACL,MAAM,GACN,SAAS,GACT,OAAO,GACP,MAAM,GACN,KAAK,GACL,OAAO,CAAC;AAEZ,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,IAAI,CAAC,EAAE,GAAG,CAAC;IACX,MAAM,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,qBAAqB,CAAC,OAAO,eAAe,CAAC,CAAC,CAAC,CAAC,CAAC;CAC3D,CAAC;AAEF,8BAAsB,cAAc;IAClC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC;IAElC,MAAM,KAAK,SAAS,oDAEnB;IAED,MAAM,KAAK,iBAAiB,IAAI,iBAAiB,GAAG,SAAS,CAE5D;IACD,SAAS,KAAK,iBAAiB,IAAI,iBAAiB,GAAG,SAAS,CAE/D;IAED;;;OAGG;qBACoB,gBAAgB,CAAC,CAAC,EACvC,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC;IAoDrC;;OAEG;WACU,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAIrF;;OAEG;cACa,gBAAgB,CAC9B,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAIvC;;OAEG;cACa,QAAQ,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAIxF;;;OAGG;cACa,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,QAAQ,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAIvG;;;OAGG;cACa,KAAK,CAAC,MAAM,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;WAOxE,cAAc,CAAC,WAAW,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;cAI9E,cAAc,CAC5B,WAAW,EAAE,cAAc,GAC1B,OAAO,CAAC,eAAe,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;IAIvC,OAAO,CAAC,MAAM,CAAC,gCAAgC;CAIhD"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import type { IdTokenResult, SessionJson, SessionResource, SessionStatus, TernSecureUser } from '@tern-secure/types';
|
|
2
|
+
import { TernSecureBase } from './Base';
|
|
3
|
+
/**
|
|
4
|
+
* Enhanced Session class that handles custom token authentication for client-server sync.
|
|
5
|
+
*
|
|
6
|
+
* Key Features:
|
|
7
|
+
* - Manages custom tokens for server-side verification
|
|
8
|
+
* - Uses TernSecureUser object directly (no Firebase Auth instance needed)
|
|
9
|
+
* - Provides seamless client-server session synchronization
|
|
10
|
+
* - Works with in-memory persistence by using custom tokens to restore auth state
|
|
11
|
+
*/
|
|
12
|
+
export declare class Session extends TernSecureBase implements SessionResource {
|
|
13
|
+
pathRoot: string;
|
|
14
|
+
status: SessionStatus;
|
|
15
|
+
token: string;
|
|
16
|
+
claims: IdTokenResult['claims'];
|
|
17
|
+
authTime: string;
|
|
18
|
+
expirationTime: string;
|
|
19
|
+
issuedAtTime: string;
|
|
20
|
+
signInProvider: string | null;
|
|
21
|
+
signInSecondFactor: string | null;
|
|
22
|
+
user?: TernSecureUser;
|
|
23
|
+
constructor(sessionData: Partial<SessionResource>);
|
|
24
|
+
/**
|
|
25
|
+
* Initialize session from existing session data
|
|
26
|
+
*/
|
|
27
|
+
private initializeFromSessionData;
|
|
28
|
+
/**
|
|
29
|
+
* Create custom token from current session for server-side sync
|
|
30
|
+
* This calls the backend API to create a custom token from the current ID token
|
|
31
|
+
*/
|
|
32
|
+
private createSession;
|
|
33
|
+
/**
|
|
34
|
+
* FIXED: Now properly returns the custom token string instead of the full API response
|
|
35
|
+
* This method correctly extracts the token from the API response structure
|
|
36
|
+
*/
|
|
37
|
+
getIdAndRefreshToken: (idToken: string, csrfToken: string) => Promise<void>;
|
|
38
|
+
/**
|
|
39
|
+
* NEW: create method that calls API to create session
|
|
40
|
+
* API handles everything, no return value needed
|
|
41
|
+
* This method works with the existing sessionData passed to constructor
|
|
42
|
+
*/
|
|
43
|
+
create: (csrfToken: string) => Promise<void>;
|
|
44
|
+
/**
|
|
45
|
+
* Convert session to plain object for serialization
|
|
46
|
+
*/
|
|
47
|
+
toJSON(): SessionJson;
|
|
48
|
+
}
|
|
49
|
+
//# sourceMappingURL=Session.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Session.d.ts","sourceRoot":"","sources":["../../../src/resources/Session.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,aAAa,EACb,cAAc,EACf,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC;;;;;;;;GAQG;AACH,qBAAa,OAAQ,SAAQ,cAAe,YAAW,eAAe;IACpE,QAAQ,SAA6B;IAErC,MAAM,EAAG,aAAa,CAAC;IACvB,KAAK,EAAG,MAAM,CAAC;IACf,MAAM,EAAG,aAAa,CAAC,QAAQ,CAAC,CAAC;IACjC,QAAQ,EAAG,MAAM,CAAC;IAClB,cAAc,EAAG,MAAM,CAAC;IACxB,YAAY,EAAG,MAAM,CAAC;IACtB,cAAc,EAAG,MAAM,GAAG,IAAI,CAAC;IAC/B,kBAAkB,EAAG,MAAM,GAAG,IAAI,CAAC;IACnC,IAAI,CAAC,EAAE,cAAc,CAAC;gBAEV,WAAW,EAAE,OAAO,CAAC,eAAe,CAAC;IAKjD;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAYjC;;;OAGG;IACH,OAAO,CAAC,aAAa,CAQnB;IAGF;;;OAGG;IACH,oBAAoB,GAAU,SAAS,MAAM,EAAE,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAE9E;IAEF;;;;OAIG;IACH,MAAM,GAAU,WAAW,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAG/C;IAEF;;OAEG;IACH,MAAM,IAAI,WAAW;CAatB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import type { ResendEmailVerification,
|
|
1
|
+
import type { ResendEmailVerification, SignInFormValues, SignInResource, SignInResponse as SignInResponseFromTypes, SignInStatus } from '@tern-secure/types';
|
|
2
2
|
import type { Auth, UserCredential } from 'firebase/auth';
|
|
3
3
|
import { TernSecureBase } from './Base';
|
|
4
|
+
type SignInResponse = SignInResponseFromTypes;
|
|
4
5
|
export type TernRequestInit = RequestInit;
|
|
5
6
|
export type SignInParams = {
|
|
6
7
|
idToken: string;
|
|
@@ -14,12 +15,12 @@ export declare class SignIn extends TernSecureBase implements SignInResource {
|
|
|
14
15
|
private _currentUser;
|
|
15
16
|
constructor(auth: Auth, csrfToken: string | undefined);
|
|
16
17
|
signInWithCredential: (credential: UserCredential) => Promise<import("..").ApiResponseJSON<any> | null>;
|
|
17
|
-
withEmailAndPassword: (params:
|
|
18
|
-
withCredential: (params:
|
|
18
|
+
withEmailAndPassword: (params: SignInFormValues) => Promise<SignInResponse>;
|
|
19
|
+
withCredential: (params: SignInFormValues) => Promise<void>;
|
|
19
20
|
withSocialProvider: (provider: string, options?: {
|
|
20
21
|
mode?: "popup" | "redirect";
|
|
21
|
-
}) => Promise<
|
|
22
|
-
completeMfaSignIn: (_mfaToken: string, _mfaContext?: any) => Promise<
|
|
22
|
+
}) => Promise<SignInResponse | void>;
|
|
23
|
+
completeMfaSignIn: (_mfaToken: string, _mfaContext?: any) => Promise<SignInResponse>;
|
|
23
24
|
sendPasswordResetEmail: (email: string) => Promise<void>;
|
|
24
25
|
resendEmailVerification: () => Promise<ResendEmailVerification>;
|
|
25
26
|
private getProviderConfig;
|
|
@@ -27,6 +28,7 @@ export declare class SignIn extends TernSecureBase implements SignInResource {
|
|
|
27
28
|
private executeAuthMethod;
|
|
28
29
|
private _signInWithRedirect;
|
|
29
30
|
private _signInWithPopUp;
|
|
30
|
-
checkRedirectResult(): Promise<
|
|
31
|
+
checkRedirectResult(): Promise<SignInResponse | null>;
|
|
31
32
|
}
|
|
33
|
+
export {};
|
|
32
34
|
//# sourceMappingURL=SignIn.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SignIn.d.ts","sourceRoot":"","sources":["../../../src/resources/SignIn.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"SignIn.d.ts","sourceRoot":"","sources":["../../../src/resources/SignIn.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EACV,uBAAuB,EACvB,gBAAgB,EAChB,cAAc,EACd,cAAc,IAAI,uBAAuB,EACzC,YAAY,EAEb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAW1D,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,KAAK,cAAc,GAAG,uBAAuB,CAAC;AAO9C,MAAM,MAAM,eAAe,GAAG,WAAW,CAAC;AAE1C,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;CAC/B,CAAC;AASF,qBAAa,MAAO,SAAQ,cAAe,YAAW,cAAc;IAClE,QAAQ,SAA6B;IAErC,MAAM,CAAC,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,OAAO,CAAC,IAAI,CAAO;IACnB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,YAAY,CAA+B;gBAEvC,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,GAAG,SAAS;IAMrD,oBAAoB,GAAU,YAAY,cAAc,uDAWtD;IAEF,oBAAoB,GAAU,QAAQ,gBAAgB,KAAG,OAAO,CAAC,cAAc,CAAC,CAwB9E;IAEF,cAAc,GAAU,QAAQ,gBAAgB,KAAG,OAAO,CAAC,IAAI,CAAC,CAS9D;IAEF,kBAAkB,GAChB,UAAU,MAAM,EAChB,UAAU;QACR,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,CAAC;KAC7B,KACA,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC,CA4B/B;IAEF,iBAAiB,GAAU,WAAW,MAAM,EAAE,cAAc,GAAG,KAAG,OAAO,CAAC,cAAc,CAAC,CAEvF;IAEF,sBAAsB,GAAU,OAAO,MAAM,KAAG,OAAO,CAAC,IAAI,CAAC,CAE3D;IAEF,uBAAuB,QAAa,OAAO,CAAC,uBAAuB,CAAC,CAuBlE;IAEF,OAAO,CAAC,iBAAiB;YA0BX,kBAAkB;YAwBlB,iBAAiB;YAmBjB,mBAAmB;YAInB,gBAAgB;IAIjB,mBAAmB,IAAI,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;CAGnE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Token.d.ts","sourceRoot":"","sources":["../../../src/resources/Token.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,qBAAa,KAAM,SAAQ,cAAc;IACrC,QAAQ,SAAY;CACvB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { TernSecureBase } from './Base';
|
|
2
|
+
export declare class UserData extends TernSecureBase {
|
|
3
|
+
pathRoot: string;
|
|
4
|
+
private idToken;
|
|
5
|
+
constructor(idToken?: string);
|
|
6
|
+
get: () => Promise<import("..").ApiResponseJSON<any> | null>;
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=UserData.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"UserData.d.ts","sourceRoot":"","sources":["../../../src/resources/UserData.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,qBAAa,QAAS,SAAQ,cAAc;IAC1C,QAAQ,SAAsB;IAE9B,OAAO,CAAC,OAAO,CAAqB;gBAExB,OAAO,CAAC,EAAE,MAAM;IAK5B,GAAG,0DAKF;CACF"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { CookieResource } from '@tern-secure/types';
|
|
2
|
+
import { TernSecureBase } from './Base';
|
|
3
|
+
export type TokenResult = {
|
|
4
|
+
success: boolean;
|
|
5
|
+
token?: string;
|
|
6
|
+
error?: string;
|
|
7
|
+
};
|
|
8
|
+
export declare class Cookie extends TernSecureBase implements CookieResource {
|
|
9
|
+
pathroot: string;
|
|
10
|
+
idToken?: string;
|
|
11
|
+
sessionToken?: string;
|
|
12
|
+
refreshToken?: string;
|
|
13
|
+
customToken?: string;
|
|
14
|
+
constructor();
|
|
15
|
+
private getTokenInCookie;
|
|
16
|
+
private parseTokenResponse;
|
|
17
|
+
getIdToken: () => Promise<TokenResult>;
|
|
18
|
+
getSessionToken: () => Promise<TokenResult>;
|
|
19
|
+
getRefreshToken: () => Promise<TokenResult>;
|
|
20
|
+
getCustomToken: () => Promise<TokenResult>;
|
|
21
|
+
getAllTokens: () => Promise<Record<string, TokenResult>>;
|
|
22
|
+
hasToken: (tokenType: keyof CookieResource) => Promise<boolean>;
|
|
23
|
+
}
|
|
24
|
+
//# sourceMappingURL=cookie.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cookie.d.ts","sourceRoot":"","sources":["../../../src/resources/cookie.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGzD,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAExC,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAQF,qBAAa,MAAO,SAAQ,cAAe,YAAW,cAAc;IAClE,QAAQ,SAAa;IAErB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;;IAMrB,OAAO,CAAC,gBAAgB,CAKtB;IAGF,OAAO,CAAC,kBAAkB,CAkBxB;IAEF,UAAU,QAAa,OAAO,CAAC,WAAW,CAAC,CAIzC;IAEF,eAAe,QAAa,OAAO,CAAC,WAAW,CAAC,CAqB9C;IAEF,eAAe,QAAa,OAAO,CAAC,WAAW,CAAC,CAqB9C;IAEF,cAAc,QAAa,OAAO,CAAC,WAAW,CAAC,CAqB7C;IAEF,YAAY,QAAa,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC,CAc3D;IAEF,QAAQ,GAAU,WAAW,MAAM,cAAc,KAAG,OAAO,CAAC,OAAO,CAAC,CAalE;CACH"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
export type { TernSecureAuth } from '../instance/TernAuth';
|
|
2
|
+
export * from './Session';
|
|
2
3
|
export * from './SignUp';
|
|
3
4
|
export * from './SignIn';
|
|
4
5
|
export * from './Base';
|
|
5
|
-
export * from '
|
|
6
|
+
export * from '../auth/AuthCookieManager';
|
|
6
7
|
export * from '../utils';
|
|
7
8
|
export * from './Error';
|
|
8
9
|
//# sourceMappingURL=internal.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/resources/internal.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,
|
|
1
|
+
{"version":3,"file":"internal.d.ts","sourceRoot":"","sources":["../../../src/resources/internal.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,cAAc,WAAW,CAAC;AAC1B,cAAc,UAAU,CAAC;AACzB,cAAc,UAAU,CAAC;AACzB,cAAc,QAAQ,CAAC;AACvB,cAAc,2BAA2B,CAAC;AAC1C,cAAc,UAAU,CAAC;AACzB,cAAc,SAAS,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DecodedIdToken, JWTPayload, JWTProtectedHeader } from './mapDecode';
|
|
2
|
+
type JWT = {
|
|
3
|
+
encoded: {
|
|
4
|
+
header: JWTProtectedHeader;
|
|
5
|
+
payload: JWTPayload;
|
|
6
|
+
signature: string;
|
|
7
|
+
};
|
|
8
|
+
decoded: DecodedIdToken;
|
|
9
|
+
};
|
|
10
|
+
export declare function decode(token: string): JWT;
|
|
11
|
+
export {};
|
|
12
|
+
//# sourceMappingURL=jwt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jwt.d.ts","sourceRoot":"","sources":["../../../src/utils/jwt.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAGlF,KAAK,GAAG,GAAG;IACT,OAAO,EAAE;QAAE,MAAM,EAAE,kBAAkB,CAAC;QAAC,OAAO,EAAE,UAAU,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IAChF,OAAO,EAAE,cAAc,CAAC;CACzB,CAAC;AAEF,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,CAmBzC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { DecodedIdToken, JWTPayload, JWTProtectedHeader } from '@tern-secure/types';
|
|
2
|
+
export declare function mapJwtPayloadToDecodedIdToken(payload: JWTPayload): DecodedIdToken;
|
|
3
|
+
export type { DecodedIdToken, JWTPayload, JWTProtectedHeader };
|
|
4
|
+
//# sourceMappingURL=mapDecode.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mapDecode.d.ts","sourceRoot":"","sources":["../../../src/utils/mapDecode.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AAEzF,wBAAgB,6BAA6B,CAAC,OAAO,EAAE,UAAU,kBAIhE;AAED,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,kBAAkB,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@tern-secure/auth",
|
|
3
|
-
"version": "1.1.0-canary.
|
|
3
|
+
"version": "1.1.0-canary.v20251019190011",
|
|
4
4
|
"repository": {
|
|
5
5
|
"type": "git",
|
|
6
6
|
"url": "git+https://github.com/TernSecure/auth.git",
|
|
@@ -25,13 +25,12 @@
|
|
|
25
25
|
"dependencies": {
|
|
26
26
|
"server-only": "^0.0.1",
|
|
27
27
|
"tslib": "2.4.1",
|
|
28
|
-
"@tern-secure/shared": "1.3.0-canary.
|
|
29
|
-
"@tern-secure/types": "1.1.0-canary.
|
|
28
|
+
"@tern-secure/shared": "1.3.0-canary.v20251019190011",
|
|
29
|
+
"@tern-secure/types": "1.1.0-canary.v20251019190011"
|
|
30
30
|
},
|
|
31
31
|
"devDependencies": {
|
|
32
32
|
"firebase": "^12.0.0",
|
|
33
|
-
"jose": "^5.10.0"
|
|
34
|
-
"next": "15.3.2"
|
|
33
|
+
"jose": "^5.10.0"
|
|
35
34
|
},
|
|
36
35
|
"peerDependencies": {
|
|
37
36
|
"firebase": "^11.0.0"
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resources/AuthCookieManager.ts"],"sourcesContent":["import { \n type CookieAttributes,\n cookieHandler} from '@tern-secure/shared/cookie';\n\nconst CSRF_COOKIE_NAME = '_session_terncf';\n\ntype CSRFToken = {\n token: string | null;\n}\n\ntype CookieOptions = CookieAttributes\n\nconst CSRF_COOKIE_OPTIONS: CookieOptions = {\n secure: true,\n sameSite: 'strict',\n expires: 1 / 24 //1 hour\n};\n\n/**\n * AuthCookieManger class for managing authentication state and cookies\n */\nexport class AuthCookieManager {\n private readonly csrfCookieHandler = cookieHandler(CSRF_COOKIE_NAME);\n\n constructor() {\n this.ensureCSRFToken();\n }\n\n \n private generateCSRFToken(): string {\n const array = new Uint8Array(32);\n crypto.getRandomValues(array);\n return Array.from(array, (byte) => byte.toString(16).padStart(2, '0')).join('');\n }\n\n private ensureCSRFToken(): string {\n let ctoken = this.getCSRFToken();\n if (!ctoken) {\n ctoken = this.generateCSRFToken();\n this.setCSRFToken({ token: ctoken });\n }\n return ctoken;\n }\n \n\n /**\n * Set CSRFcookie\n */\n\n setCSRFToken(token: CSRFToken): void {\n try {\n if (token.token) {\n this.csrfCookieHandler.set(token.token, CSRF_COOKIE_OPTIONS);\n }\n } catch (error) {\n console.error('Failed to set CSRF token:', error);\n throw new Error('Unable to store CSRF token');\n }\n }\n \n\n /**\n * Get CSRF token from cookies\n */\n getCSRFToken(): string | undefined {\n try {\n return this.csrfCookieHandler.get();\n } catch (error) {\n console.error('Failed to get CSRF token:', error);\n return undefined;\n }\n }\n\n\n /**\n * Clear all authentication cookies\n */\n clearAuth(): void {\n try {\n this.csrfCookieHandler.remove();\n } catch (error) {\n console.error('Failed to clear auth cookies:', error);\n }\n }\n}"],"mappings":";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAEsB;AAEtB,MAAM,mBAAmB;AAQzB,MAAM,sBAAqC;AAAA,EACzC,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS,IAAI;AAAA;AACf;AAKO,MAAM,kBAAkB;AAAA,EACZ,wBAAoB,6BAAc,gBAAgB;AAAA,EAEnE,cAAc;AACZ,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAGQ,oBAA4B;AAClC,UAAM,QAAQ,IAAI,WAAW,EAAE;AAC/B,WAAO,gBAAgB,KAAK;AAC5B,WAAO,MAAM,KAAK,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAAA,EAChF;AAAA,EAEQ,kBAA0B;AAChC,QAAI,SAAS,KAAK,aAAa;AAC/B,QAAI,CAAC,QAAQ;AACX,eAAS,KAAK,kBAAkB;AAChC,WAAK,aAAa,EAAE,OAAO,OAAO,CAAC;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,OAAwB;AACnC,QAAI;AACF,UAAI,MAAM,OAAO;AACf,aAAK,kBAAkB,IAAI,MAAM,OAAO,mBAAmB;AAAA,MAC7D;AAAA,IACF,SAAS,OAAO;AACd,cAAQ,MAAM,6BAA6B,KAAK;AAChD,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAC9C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAMA,eAAmC;AACjC,QAAI;AACF,aAAO,KAAK,kBAAkB,IAAI;AAAA,IACpC,SAAS,OAAO;AACd,cAAQ,MAAM,6BAA6B,KAAK;AAChD,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAMA,YAAkB;AAChB,QAAI;AACF,WAAK,kBAAkB,OAAO;AAAA,IAChC,SAAS,OAAO;AACd,cAAQ,MAAM,iCAAiC,KAAK;AAAA,IACtD;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../src/resources/AuthCookieManager.ts"],"sourcesContent":["import { \n type CookieAttributes,\n cookieHandler} from '@tern-secure/shared/cookie';\n\nconst CSRF_COOKIE_NAME = '_session_terncf';\n\ntype CSRFToken = {\n token: string | null;\n}\n\ntype CookieOptions = CookieAttributes\n\nconst CSRF_COOKIE_OPTIONS: CookieOptions = {\n secure: true,\n sameSite: 'strict',\n expires: 1 / 24 //1 hour\n};\n\n/**\n * AuthCookieManger class for managing authentication state and cookies\n */\nexport class AuthCookieManager {\n private readonly csrfCookieHandler = cookieHandler(CSRF_COOKIE_NAME);\n\n constructor() {\n this.ensureCSRFToken();\n }\n\n \n private generateCSRFToken(): string {\n const array = new Uint8Array(32);\n crypto.getRandomValues(array);\n return Array.from(array, (byte) => byte.toString(16).padStart(2, '0')).join('');\n }\n\n private ensureCSRFToken(): string {\n let ctoken = this.getCSRFToken();\n if (!ctoken) {\n ctoken = this.generateCSRFToken();\n this.setCSRFToken({ token: ctoken });\n }\n return ctoken;\n }\n \n\n /**\n * Set CSRFcookie\n */\n\n setCSRFToken(token: CSRFToken): void {\n try {\n if (token.token) {\n this.csrfCookieHandler.set(token.token, CSRF_COOKIE_OPTIONS);\n }\n } catch (error) {\n console.error('Failed to set CSRF token:', error);\n throw new Error('Unable to store CSRF token');\n }\n }\n \n\n /**\n * Get CSRF token from cookies\n */\n getCSRFToken(): string | undefined {\n try {\n return this.csrfCookieHandler.get();\n } catch (error) {\n console.error('Failed to get CSRF token:', error);\n return undefined;\n }\n }\n\n\n /**\n * Clear all authentication cookies\n */\n clearAuth(): void {\n try {\n this.csrfCookieHandler.remove();\n } catch (error) {\n console.error('Failed to clear auth cookies:', error);\n }\n }\n}"],"mappings":"AAAA;AAAA,EAEE;AAAA,OAAoB;AAEtB,MAAM,mBAAmB;AAQzB,MAAM,sBAAqC;AAAA,EACzC,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS,IAAI;AAAA;AACf;AAKO,MAAM,kBAAkB;AAAA,EACZ,oBAAoB,cAAc,gBAAgB;AAAA,EAEnE,cAAc;AACZ,SAAK,gBAAgB;AAAA,EACvB;AAAA,EAGQ,oBAA4B;AAClC,UAAM,QAAQ,IAAI,WAAW,EAAE;AAC/B,WAAO,gBAAgB,KAAK;AAC5B,WAAO,MAAM,KAAK,OAAO,CAAC,SAAS,KAAK,SAAS,EAAE,EAAE,SAAS,GAAG,GAAG,CAAC,EAAE,KAAK,EAAE;AAAA,EAChF;AAAA,EAEQ,kBAA0B;AAChC,QAAI,SAAS,KAAK,aAAa;AAC/B,QAAI,CAAC,QAAQ;AACX,eAAS,KAAK,kBAAkB;AAChC,WAAK,aAAa,EAAE,OAAO,OAAO,CAAC;AAAA,IACrC;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAOA,aAAa,OAAwB;AACnC,QAAI;AACF,UAAI,MAAM,OAAO;AACf,aAAK,kBAAkB,IAAI,MAAM,OAAO,mBAAmB;AAAA,MAC7D;AAAA,IACF,SAAS,OAAO;AACd,cAAQ,MAAM,6BAA6B,KAAK;AAChD,YAAM,IAAI,MAAM,4BAA4B;AAAA,IAC9C;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAMA,eAAmC;AACjC,QAAI;AACF,aAAO,KAAK,kBAAkB,IAAI;AAAA,IACpC,SAAS,OAAO;AACd,cAAQ,MAAM,6BAA6B,KAAK;AAChD,aAAO;AAAA,IACT;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAMA,YAAkB;AAChB,QAAI;AACF,WAAK,kBAAkB,OAAO;AAAA,IAChC,SAAS,OAAO;AACd,cAAQ,MAAM,iCAAiC,KAAK;AAAA,IACtD;AAAA,EACF;AACF;","names":[]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AuthCookieManager.d.ts","sourceRoot":"","sources":["../../../src/resources/AuthCookieManager.ts"],"names":[],"mappings":"AAMA,KAAK,SAAS,GAAG;IACf,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB,CAAA;AAUD;;GAEG;AACH,qBAAa,iBAAiB;IAC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAmC;;IAOrE,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,eAAe;IAUvB;;MAEE;IAEF,YAAY,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAYpC;;OAEG;IACH,YAAY,IAAI,MAAM,GAAG,SAAS;IAUlC;;OAEG;IACH,SAAS,IAAI,IAAI;CAOlB"}
|