@leancodepl/login-manager 8.5.0 → 8.5.1

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.
@@ -0,0 +1,29 @@
1
+ import { SyncTokenStorage, Token } from "./tokenStorage";
2
+ /**
3
+ * Stores OAuth2 tokens in browser localStorage.
4
+ *
5
+ * Provides persistent token storage that survives browser sessions.
6
+ * Implements SyncTokenStorage interface for synchronous operations.
7
+ *
8
+ * @param tokenKey - localStorage key for access token (default: "token")
9
+ * @param refreshKey - localStorage key for refresh token (default: "refresh_token")
10
+ * @param expiryKey - localStorage key for expiry date (default: "expiration_date")
11
+ * @example
12
+ * ```typescript
13
+ * const storage = new LocalTokenStorage();
14
+ * const loginManager = new SyncLoginManager(storage, endpoint, secret, clientId, scopes);
15
+ * ```
16
+ */
17
+ export declare class LocalTokenStorage implements SyncTokenStorage {
18
+ private tokenKey;
19
+ private refreshKey;
20
+ private expiryKey;
21
+ constructor(tokenKey?: string, refreshKey?: string, expiryKey?: string);
22
+ getToken(): Token | null;
23
+ storeToken(token: Token): void;
24
+ resetToken(): void;
25
+ private hasValue;
26
+ private getValue;
27
+ private setValue;
28
+ private remove;
29
+ }
@@ -0,0 +1,19 @@
1
+ import { SyncTokenStorage, Token } from "./tokenStorage";
2
+ /**
3
+ * Stores OAuth2 tokens in memory.
4
+ *
5
+ * Provides temporary token storage that clears when the page is refreshed.
6
+ * Implements SyncTokenStorage interface for synchronous operations.
7
+ *
8
+ * @example
9
+ * ```typescript
10
+ * const storage = new MemoryTokenStorage();
11
+ * const loginManager = new SyncLoginManager(storage, endpoint, secret, clientId, scopes);
12
+ * ```
13
+ */
14
+ export declare class MemoryTokenStorage implements SyncTokenStorage {
15
+ private token;
16
+ getToken(): Token | null;
17
+ storeToken(token: Token): Promise<void>;
18
+ resetToken(): Promise<void>;
19
+ }
@@ -0,0 +1,29 @@
1
+ import { SyncTokenStorage, Token } from "./tokenStorage";
2
+ /**
3
+ * Stores OAuth2 tokens in browser sessionStorage.
4
+ *
5
+ * Provides session-based token storage that clears when the browser tab is closed.
6
+ * Implements SyncTokenStorage interface for synchronous operations.
7
+ *
8
+ * @param tokenKey - sessionStorage key for access token (default: "token")
9
+ * @param refreshKey - sessionStorage key for refresh token (default: "refresh_token")
10
+ * @param expiryKey - sessionStorage key for expiry date (default: "expiration_date")
11
+ * @example
12
+ * ```typescript
13
+ * const storage = new SessionTokenStorage();
14
+ * const loginManager = new SyncLoginManager(storage, endpoint, secret, clientId, scopes);
15
+ * ```
16
+ */
17
+ export declare class SessionTokenStorage implements SyncTokenStorage {
18
+ private tokenKey;
19
+ private refreshKey;
20
+ private expiryKey;
21
+ constructor(tokenKey?: string, refreshKey?: string, expiryKey?: string);
22
+ getToken(): Token | null;
23
+ storeToken(token: Token): void;
24
+ resetToken(): void;
25
+ private hasValue;
26
+ private getValue;
27
+ private setValue;
28
+ private remove;
29
+ }
@@ -0,0 +1,31 @@
1
+ import { BaseLoginManager, LoginManager } from "./baseLoginManager";
2
+ import { SyncTokenStorage } from "./tokenStorage";
3
+ /**
4
+ * Manages OAuth2 authentication with synchronous token storage.
5
+ *
6
+ * Extends BaseLoginManager to work with sync storage implementations like localStorage or sessionStorage.
7
+ * Handles token refresh, expiration, and authentication state management.
8
+ *
9
+ * @param storage - Token storage implementation
10
+ * @param endpoint - OAuth2 server endpoint
11
+ * @param clientSecret - Client secret for authentication
12
+ * @param clientId - OAuth2 client identifier
13
+ * @param scopes - Space-separated OAuth2 scopes
14
+ * @param additionalParams - Additional OAuth2 parameters
15
+ * @example
16
+ * ```typescript
17
+ * const tokenStorage = new LocalTokenStorage();
18
+ * const loginManager = new SyncLoginManager(
19
+ * tokenStorage,
20
+ * 'https://api.example.com',
21
+ * 'client_secret',
22
+ * 'client_id',
23
+ * 'openid profile'
24
+ * );
25
+ * ```
26
+ */
27
+ export declare class SyncLoginManager extends BaseLoginManager<SyncTokenStorage> implements LoginManager {
28
+ signOut(): void;
29
+ isSigned(): boolean;
30
+ getToken(): Promise<string | null>;
31
+ }
@@ -0,0 +1,17 @@
1
+ export interface Token {
2
+ token: string;
3
+ refreshToken: string;
4
+ expirationDate: Date;
5
+ abc?: string;
6
+ }
7
+ export type TokenStorage = AsyncTokenStorage | SyncTokenStorage;
8
+ export interface SyncTokenStorage {
9
+ getToken(): Token | null;
10
+ storeToken(token: Token): void;
11
+ resetToken(): void;
12
+ }
13
+ export interface AsyncTokenStorage {
14
+ getToken(): Promise<Token | null>;
15
+ storeToken(token: Token): Promise<void>;
16
+ resetToken(): Promise<void>;
17
+ }