import { CreateResponseTokenOptions, VerifierOptions } from '../shared/types'; import { KeyVault } from '../shared/Signer'; import { Env } from '@affinidi/url-resolver'; export type AffinidiDidAuthServiceOptions = OptionsWithSeed | OptionsWithKeyVault; /** * DidAuthService options based on a known seed */ export interface OptionsWithSeed { encryptedSeed: string; encryptionKey: string; } /** * DidAuthService options based on a `KeyVault` */ export interface OptionsWithKeyVault { /** * did of the local entity */ did: string; /** * key id used for signing, defaults to `#primary` */ keyId?: string; /** * KeyVault holding signing keys */ keyVault: KeyVault; } /** * Wrapper for DidAuthServerService, DidAuthClientService and DidAuthCloudService */ export default class AffinidiDidAuthService { private readonly _did; private readonly _keyId; private readonly _keyVault; /** * Construct a DidAuthService based on the given options * * @param options auth service options */ constructor(options: AffinidiDidAuthServiceOptions); /** * Convert the given options to be KeyVault based if needed * * @param options OptionsWithSeed | OptionsWithKeyVault * @return options OptionsWithKeyVault */ private static convertToKeyVaultOptions; private static isOptionsWithKeyVault; private createSigner; createDidAuthRequestToken(audienceLongDid: string, expiresAt?: number): Promise; createDidAuthResponseToken(didAuthRequestTokenStr: string, options?: CreateResponseTokenOptions): Promise; createDidAuthResponseTokenThroughCloudWallet(didAuthRequestToken: string, apiKey: string, cloudWalletAccessToken: string, environment: Env): Promise; verifyDidAuthResponseToken(didAuthResponseTokenStr: string, options: VerifierOptions): Promise; /** * @deprecated please use LocalExpiringDidAuthResponseToken * Legacy token expiration check method that checks any given tokens expiry date * @param token */ isTokenExpired(token: string): boolean; private static computeKeyId; }