UNPKG

@lens-protocol/react

Version:

Interacting with the Lens Protocol API using React.

36 lines (35 loc) 1.51 kB
import { IAccessTokenStorage } from '@lens-protocol/api-bindings'; import { CredentialsExpiredError, Logout } from '@lens-protocol/domain/use-cases/authentication'; import { PromiseResult } from '@lens-protocol/shared-kernel'; import { IStorage, PersistedCredentials, StorageSubscriber, StorageSubscription } from '@lens-protocol/storage'; import { AuthApi } from "./AuthApi.js"; import { JwtCredentials } from "./JwtCredentials.js"; export type Unsubscribe = () => void; /** * Stores auth credentials. * Access token is kept in memory. * Identity token is kept in memory. * Refresh token is persisted permanently. */ export declare class CredentialsStorage implements IStorage<JwtCredentials>, IAccessTokenStorage { private readonly refreshTokenStorage; private readonly authApi; private refreshTimer; private refreshPromise; private subscribers; private accessToken; private identityToken; private logout; constructor(refreshTokenStorage: IStorage<PersistedCredentials>, authApi: AuthApi); onExpiry(logout: Logout): void; set(newCredentials: JwtCredentials): Promise<void>; get(): Promise<JwtCredentials | null>; reset(): Promise<void>; subscribe(subscriber: StorageSubscriber<JwtCredentials>): StorageSubscription; getAccessToken(): string | null; refreshToken(): PromiseResult<void, CredentialsExpiredError>; private cancelScheduledRefresh; private refreshCredentials; private notifySubscribers; private getRefreshToken; }