UNPKG

@atproto/did

Version:

DID resolution and verification library

49 lines 3.21 kB
import { z } from 'zod'; import { DidDocument, DidService } from './did-document.js'; import { DidRefAbsolute } from './did-ref.js'; import { Did } from './did.js'; import { Identifier } from './utils.js'; export type AtprotoIdentityDidMethods = 'plc' | 'web'; export type AtprotoDid = Did<AtprotoIdentityDidMethods>; export type AtprotoDidDocument = DidDocument<AtprotoIdentityDidMethods>; export declare const atprotoDidSchema: z.ZodEffects<z.ZodString, `did:plc:${string}` | `did:web:${string}`, string>; export declare function isAtprotoDid(input: unknown): input is AtprotoDid; export declare function asAtprotoDid<T>(input: T): (T & `did:plc:${string}`) | (T & `did:web:${string}`); export declare function assertAtprotoDid(input: unknown): asserts input is AtprotoDid; export declare function assertAtprotoDidWeb(input: unknown): asserts input is Did<'web'>; /** * @see {@link https://atproto.com/specs/did#blessed-did-methods} */ export declare function isAtprotoDidWeb(input: unknown): input is Did<'web'>; export type AtprotoData<M extends AtprotoIdentityDidMethods = AtprotoIdentityDidMethods> = { did: Did<M>; aka?: string; key?: AtprotoVerificationMethod<M>; pds?: AtprotoPersonalDataServerService<M>; }; export declare function extractAtprotoData<M extends AtprotoIdentityDidMethods>(document: DidDocument<M>): AtprotoData<M>; export declare function extractPdsUrl(document: AtprotoDidDocument): URL; export type AtprotoAka = `at://${string}`; export declare function isAtprotoAka(value: string): value is AtprotoAka; export type AtprotoPersonalDataServerService<M extends AtprotoIdentityDidMethods = AtprotoIdentityDidMethods> = DidService & { id: Identifier<Did<M>, 'atproto_pds'>; type: 'AtprotoPersonalDataServer'; serviceEndpoint: string; }; export declare function isAtprotoPersonalDataServerService<M extends AtprotoIdentityDidMethods = AtprotoIdentityDidMethods>(this: DidDocument<M>, service: null | undefined | DidService): service is AtprotoPersonalDataServerService<M>; export declare const ATPROTO_VERIFICATION_METHOD_TYPES: readonly ["EcdsaSecp256r1VerificationKey2019", "EcdsaSecp256k1VerificationKey2019", "Multikey"]; export type SupportedAtprotoVerificationMethodType = (typeof ATPROTO_VERIFICATION_METHOD_TYPES)[number]; type VerificationMethod = NonNullable<DidDocument['verificationMethod']>[number]; export type AtprotoVerificationMethod<M extends AtprotoIdentityDidMethods = AtprotoIdentityDidMethods> = Extract<VerificationMethod, object> & { id: Identifier<Did<M>, 'atproto'>; type: SupportedAtprotoVerificationMethodType; publicKeyMultibase: string; }; export declare function isAtprotoVerificationMethod<M extends AtprotoIdentityDidMethods = AtprotoIdentityDidMethods>(this: DidDocument<M>, method: null | undefined | NonNullable<DidDocument<M>['verificationMethod']>[number]): method is AtprotoVerificationMethod<M>; /** * An atproto-constrained absolute DID reference: `${AtprotoDid}#${fragment}`. */ export type AtprotoDidRefAbsolute = DidRefAbsolute<AtprotoIdentityDidMethods>; export declare function isAtprotoDidRefAbsolute(value: unknown): value is AtprotoDidRefAbsolute; export {}; //# sourceMappingURL=atproto.d.ts.map