Skip to content

@authx-rs/sdk-web

Generated from packages/authx-sdk-web/dist/types.

Browser token storage, authenticated fetch, and refresh orchestration.

export declare class AuthxTokenManagerError extends Error {
readonly cause?: unknown;
constructor(message: string, options?: {
cause?: unknown;
});
}
export interface OidcTokenRefresherOptions {
tokenEndpoint: string;
clientId: string;
clientSecret?: string;
scope?: string;
headers?: HeadersInit;
fetch?: typeof globalThis.fetch;
}
export declare function createOidcTokenRefresher(options: OidcTokenRefresherOptions): TokenRefreshHandler;
export interface TokenStore {
load(): StoredTokenState | null | Promise<StoredTokenState | null>;
save(tokens: StoredTokenState | null): void | Promise<void>;
}
export interface StorageLike {
getItem(key: string): string | null;
setItem(key: string, value: string): void;
removeItem(key: string): void;
}
export interface BrowserStorageTokenStoreOptions {
key?: string;
storage?: StorageLike;
}
export declare class MemoryTokenStore implements TokenStore {
constructor(initialValue?: StoredTokenState | null);
load(): StoredTokenState | null;
save(tokens: StoredTokenState | null): void;
}
export declare class BrowserStorageTokenStore implements TokenStore {
constructor(options?: BrowserStorageTokenStoreOptions);
load(): StoredTokenState | null;
save(tokens: StoredTokenState | null): void;
}
export interface OidcTokenResponse {
access_token: string;
token_type: string;
expires_in: number;
refresh_token?: string;
scope?: string;
id_token?: string;
[key: string]: unknown;
}
export interface StoredTokenState {
accessToken: string;
tokenType: string;
expiresAt: number;
refreshToken?: string;
scope?: string;
idToken?: string;
[key: string]: unknown;
}
export interface AuthxTokenSnapshot {
tokens: StoredTokenState | null;
isAuthenticated: boolean;
isRefreshing: boolean;
error?: unknown;
}
export interface AuthxFetchOptions {
minValidityMs?: number;
retryOnUnauthorized?: boolean;
}
export interface SetTokenResponseOptions {
now?: number;
preserveRefreshToken?: boolean;
}
export type TokenRefreshHandler = (tokens: StoredTokenState) => Promise<OidcTokenResponse> | OidcTokenResponse;
export interface AuthxTokenManagerOptions {
storage: TokenStore;
refresh?: TokenRefreshHandler;
autoRefresh?: boolean;
refreshWindowMs?: number;
clearOnRefreshError?: boolean;
now?: () => number;
fetch?: typeof globalThis.fetch;
onRefreshError?: (error: unknown) => void;
}
export declare class AuthxTokenManager {
constructor(options: AuthxTokenManagerOptions);
start(): Promise<AuthxTokenSnapshot>;
stop(): void;
subscribe(listener: SnapshotListener): () => void;
getSnapshot(): AuthxTokenSnapshot;
setTokens(tokens: StoredTokenState | null): Promise<AuthxTokenSnapshot>;
setTokenResponse(response: OidcTokenResponse, options?: SetTokenResponseOptions): Promise<AuthxTokenSnapshot>;
clear(): Promise<AuthxTokenSnapshot>;
getAccessToken(minValidityMs?: number): Promise<string | null>;
refresh(): Promise<StoredTokenState>;
fetch(input: RequestInfo | URL, init?: RequestInit, options?: AuthxFetchOptions): Promise<Response>;
}
export declare function tokenResponseToStoredState(response: OidcTokenResponse, options?: {
now?: number;
previous?: StoredTokenState | null;
preserveRefreshToken?: boolean;
}): StoredTokenState;