ox
Version:
106 lines • 4.67 kB
TypeScript
import type * as Hex from '../core/Hex.js';
export type AttestationConveyancePreference = 'direct' | 'enterprise' | 'indirect' | 'none';
export type AuthenticatorAttachment = 'cross-platform' | 'platform';
export type AuthenticatorTransport = 'ble' | 'hybrid' | 'internal' | 'nfc' | 'usb';
export type COSEAlgorithmIdentifier = number;
export type CredentialMediationRequirement = 'conditional' | 'optional' | 'required' | 'silent';
export type PublicKeyCredentialType = 'public-key';
export type ResidentKeyRequirement = 'discouraged' | 'preferred' | 'required';
export type UserVerificationRequirement = 'discouraged' | 'preferred' | 'required';
export type LargeBlobSupport = {
support: 'required' | 'preferred';
};
export type BufferSource = ArrayBufferView | ArrayBuffer;
export type PrfExtension = Record<'eval', Record<'first', Uint8Array>>;
export interface AuthenticationExtensionsClientInputs<serialized extends boolean = false> {
appid?: string;
credProps?: boolean;
hmacCreateSecret?: boolean;
minPinLength?: boolean;
prf?: serialized extends true ? {
eval: {
first: string;
};
} : PrfExtension;
largeBlob?: LargeBlobSupport;
}
export interface AuthenticatorSelectionCriteria {
authenticatorAttachment?: AuthenticatorAttachment;
requireResidentKey?: boolean;
residentKey?: ResidentKeyRequirement;
userVerification?: UserVerificationRequirement;
}
/**
* Available only in secure contexts.
*
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/AuthenticatorAttestationResponse)
*/
export interface AuthenticatorAttestationResponse<serialized extends boolean = false> extends AuthenticatorResponse<serialized> {
readonly attestationObject: serialized extends true ? string : ArrayBuffer;
getAuthenticatorData(): ArrayBuffer;
getPublicKey(): ArrayBuffer | null;
getPublicKeyAlgorithm(): COSEAlgorithmIdentifier;
getTransports(): string[];
}
export interface AuthenticatorResponse<serialized extends boolean = false> {
readonly clientDataJSON: serialized extends true ? string : ArrayBuffer;
}
export interface Credential {
readonly id: string;
readonly type: string;
}
export interface CredentialCreationOptions<serialized extends boolean = false> {
publicKey?: PublicKeyCredentialCreationOptions<serialized>;
signal?: AbortSignal;
}
export interface CredentialRequestOptions<serialized extends boolean = false> {
mediation?: CredentialMediationRequirement;
publicKey?: PublicKeyCredentialRequestOptions<serialized>;
signal?: AbortSignal;
}
export type PublicKeyCredential<serialized extends boolean = false> = Credential & {
readonly authenticatorAttachment: string | null;
readonly rawId: serialized extends true ? string : ArrayBuffer;
readonly response: AuthenticatorResponse<serialized>;
} & (serialized extends true ? {} : {
getClientExtensionResults(): AuthenticationExtensionsClientOutputs;
});
export interface PublicKeyCredentialCreationOptions<serialized extends boolean = false> {
attestation?: AttestationConveyancePreference;
authenticatorSelection?: AuthenticatorSelectionCriteria;
challenge: serialized extends true ? Hex.Hex : BufferSource;
excludeCredentials?: PublicKeyCredentialDescriptor<serialized>[];
extensions?: AuthenticationExtensionsClientInputs<serialized>;
pubKeyCredParams: PublicKeyCredentialParameters[];
rp: PublicKeyCredentialRpEntity;
timeout?: number;
user: PublicKeyCredentialUserEntity<serialized>;
}
export interface PublicKeyCredentialDescriptor<serialized extends boolean = false> {
id: serialized extends true ? string : BufferSource;
transports?: AuthenticatorTransport[];
type: PublicKeyCredentialType;
}
export interface PublicKeyCredentialEntity {
name: string;
}
export interface PublicKeyCredentialParameters {
alg: COSEAlgorithmIdentifier;
type: PublicKeyCredentialType;
}
export interface PublicKeyCredentialRequestOptions<serialized extends boolean = false> {
allowCredentials?: PublicKeyCredentialDescriptor<serialized>[];
challenge: serialized extends true ? Hex.Hex : BufferSource;
extensions?: AuthenticationExtensionsClientInputs<serialized>;
rpId?: string;
timeout?: number;
userVerification?: UserVerificationRequirement;
}
export interface PublicKeyCredentialRpEntity extends PublicKeyCredentialEntity {
id: string;
}
export interface PublicKeyCredentialUserEntity<serialized extends boolean = false> extends PublicKeyCredentialEntity {
displayName: string;
id: serialized extends true ? string : BufferSource;
}
//# sourceMappingURL=Types.d.ts.map