import { IKey, IKeyManagerCreateArgs, KeyMetadata, MinimalImportableKey, TKeyType, } from '@veramo/core-types' import { VerificationMethod } from 'did-resolver' /** * Broader definition of Verification method that includes the legacy publicKeyBase64 * @internal */ export type _ExtendedVerificationMethod = VerificationMethod & { publicKeyBase64?: string } /** * Represents an {@link @veramo/core-types#IKey} that has been augmented with its corresponding * entry from a DID document. * `key.meta.verificationMethod` will contain the {@link did-resolver#VerificationMethod} * object from the {@link did-resolver#DIDDocument} * @internal */ export interface _ExtendedIKey extends IKey { meta: KeyMetadata & { verificationMethod: _NormalizedVerificationMethod } } /** * Represents a {@link did-resolver#VerificationMethod} whose public key material * has been converted to `publicKeyHex` * * @internal */ export type _NormalizedVerificationMethod = Omit< VerificationMethod, 'publicKeyBase58' | 'publicKeyBase64' | 'publicKeyJwk' | 'publicKeyMultibase' > /** * Accept a Type or a Promise of that Type. * * @internal */ export type OrPromise = T | Promise /** * A mapping of string to another type. * Both Map and Record are accepted. * * @beta This API may change without a BREAKING CHANGE notice. */ export type RecordLike = Map | Record /** * Supported key types for JWK DID method * @internal */ export const SupportedKeyTypes = { Secp256r1: 'Secp256r1', Secp256k1: 'Secp256k1', Ed25519: 'Ed25519', X25519: 'X25519', } as const /** * Key usage types as per JWK spec * @see https://datatracker.ietf.org/doc/html/rfc7517#section-4.2 * @internal */ export type KeyUse = 'sig' | 'enc' /** * Supported key types for JWK DID method * @internal */ export type JwkDidSupportedKeyTypes = keyof typeof SupportedKeyTypes /** * Options for importing or creating a key * @internal */ export type ImportOrCreateKeyOptions = Omit< Partial, 'kms' > & { type: TKey } /** * Basic options for creating an identifier * @internal */ export type CreateIdentifierBaseOptions = { keyRef?: string key?: ImportOrCreateKeyOptions }