UNPKG

@credo-ts/core

Version:

<p align="center"> <br /> <img alt="Credo Logo" src="https://github.com/openwallet-foundation/credo-ts/blob/c7886cb8377ceb8ee4efe8d264211e561a75072d/images/credo-logo.png" height="250px" /> </p> <h1 align="center"><b>Credo - Core</b></h1

1 lines • 7.19 kB
{"version":3,"file":"DidRegistrarService.mjs","names":[],"sources":["../../../../src/modules/dids/services/DidRegistrarService.ts"],"sourcesContent":["import type { AgentContext } from '../../../agent'\nimport { InjectionSymbols } from '../../../constants'\nimport type { Logger } from '../../../logger'\nimport { inject, injectable } from '../../../plugins'\nimport { DidsModuleConfig } from '../DidsModuleConfig'\nimport type { DidRegistrar } from '../domain/DidRegistrar'\nimport { tryParseDid } from '../domain/parse'\nimport type {\n DidCreateOptions,\n DidCreateResult,\n DidDeactivateOptions,\n DidDeactivateResult,\n DidUpdateOptions,\n DidUpdateResult,\n} from '../types'\n\nimport { DidResolverService } from './DidResolverService'\n\n@injectable()\nexport class DidRegistrarService {\n private logger: Logger\n private didsModuleConfig: DidsModuleConfig\n private didResolverService: DidResolverService\n\n public constructor(\n @inject(InjectionSymbols.Logger) logger: Logger,\n didsModuleConfig: DidsModuleConfig,\n didResolverService: DidResolverService\n ) {\n this.logger = logger\n this.didsModuleConfig = didsModuleConfig\n this.didResolverService = didResolverService\n }\n\n public async create<CreateOptions extends DidCreateOptions = DidCreateOptions>(\n agentContext: AgentContext,\n options: CreateOptions\n ): Promise<DidCreateResult> {\n this.logger.debug(`creating did ${options.did ?? options.method}`)\n\n const errorResult = {\n didDocumentMetadata: {},\n didRegistrationMetadata: {},\n didState: {\n state: 'failed',\n did: options.did,\n },\n } as const\n\n if ((!options.did && !options.method) || (options.did && options.method)) {\n return {\n ...errorResult,\n didState: {\n ...errorResult.didState,\n reason: 'Either did OR method must be specified',\n },\n }\n }\n\n const method = options.method ?? tryParseDid(options.did as string)?.method\n if (!method) {\n return {\n ...errorResult,\n didState: {\n ...errorResult.didState,\n reason: `Could not extract method from did ${options.did}`,\n },\n }\n }\n\n const registrar = this.findRegistrarForMethod(method)\n if (!registrar) {\n return {\n ...errorResult,\n didState: {\n ...errorResult.didState,\n reason: `Unsupported did method: '${method}'`,\n },\n }\n }\n\n return await registrar.create(agentContext, options)\n }\n\n public async update(agentContext: AgentContext, options: DidUpdateOptions): Promise<DidUpdateResult> {\n this.logger.debug(`updating did ${options.did}`)\n\n const method = tryParseDid(options.did)?.method\n\n const errorResult = {\n didDocumentMetadata: {},\n didRegistrationMetadata: {},\n didState: {\n state: 'failed',\n did: options.did,\n },\n } as const\n\n if (!method) {\n return {\n ...errorResult,\n didState: {\n ...errorResult.didState,\n reason: `Could not extract method from did ${options.did}`,\n },\n }\n }\n\n const registrar = this.findRegistrarForMethod(method)\n if (!registrar) {\n return {\n ...errorResult,\n didState: {\n ...errorResult.didState,\n reason: `Unsupported did method: '${method}'`,\n },\n }\n }\n\n // Invalidate cache before updating\n await this.didResolverService.invalidateCacheForDid(agentContext, options.did)\n\n return await registrar.update(agentContext, options)\n }\n\n public async deactivate(agentContext: AgentContext, options: DidDeactivateOptions): Promise<DidDeactivateResult> {\n this.logger.debug(`deactivating did ${options.did}`)\n\n const errorResult = {\n didDocumentMetadata: {},\n didRegistrationMetadata: {},\n didState: {\n state: 'failed',\n did: options.did,\n },\n } as const\n\n const method = tryParseDid(options.did)?.method\n if (!method) {\n return {\n ...errorResult,\n didState: {\n ...errorResult.didState,\n reason: `Could not extract method from did ${options.did}`,\n },\n }\n }\n\n const registrar = this.findRegistrarForMethod(method)\n if (!registrar) {\n return {\n ...errorResult,\n didState: {\n ...errorResult.didState,\n reason: `Unsupported did method: '${method}'`,\n },\n }\n }\n\n // Invalidate cache before deactivating\n await this.didResolverService.invalidateCacheForDid(agentContext, options.did)\n\n return await registrar.deactivate(agentContext, options)\n }\n\n private findRegistrarForMethod(method: string): DidRegistrar | null {\n return this.didsModuleConfig.registrars.find((r) => r.supportedMethods.includes(method)) ?? null\n }\n\n /**\n * Get all supported did methods for the did registrar.\n */\n public get supportedMethods() {\n return Array.from(new Set(this.didsModuleConfig.registrars.flatMap((r) => r.supportedMethods)))\n }\n}\n"],"mappings":";;;;;;;;;AAmBO,IAAM,sBAAN,MAAM,oBAAoB;CAK/B,YACE,QACA,kBACA,oBACA;EACA,KAAK,SAAS;EACd,KAAK,mBAAmB;EACxB,KAAK,qBAAqB;CAC5B;CAEA,MAAa,OACX,cACA,SAC0B;EAC1B,KAAK,OAAO,MAAM,gBAAgB,QAAQ,OAAO,QAAQ,QAAQ;EAEjE,MAAM,cAAc;GAClB,qBAAqB,CAAC;GACtB,yBAAyB,CAAC;GAC1B,UAAU;IACR,OAAO;IACP,KAAK,QAAQ;GACf;EACF;EAEA,IAAK,CAAC,QAAQ,OAAO,CAAC,QAAQ,UAAY,QAAQ,OAAO,QAAQ,QAC/D,OAAO;GACL,GAAG;GACH,UAAU;IACR,GAAG,YAAY;IACf,QAAQ;GACV;EACF;EAGF,MAAM,SAAS,QAAQ,UAAU,YAAY,QAAQ,GAAa,CAAC,EAAE;EACrE,IAAI,CAAC,QACH,OAAO;GACL,GAAG;GACH,UAAU;IACR,GAAG,YAAY;IACf,QAAQ,qCAAqC,QAAQ;GACvD;EACF;EAGF,MAAM,YAAY,KAAK,uBAAuB,MAAM;EACpD,IAAI,CAAC,WACH,OAAO;GACL,GAAG;GACH,UAAU;IACR,GAAG,YAAY;IACf,QAAQ,4BAA4B,OAAO;GAC7C;EACF;EAGF,OAAO,MAAM,UAAU,OAAO,cAAc,OAAO;CACrD;CAEA,MAAa,OAAO,cAA4B,SAAqD;EACnG,KAAK,OAAO,MAAM,gBAAgB,QAAQ,KAAK;EAE/C,MAAM,SAAS,YAAY,QAAQ,GAAG,CAAC,EAAE;EAEzC,MAAM,cAAc;GAClB,qBAAqB,CAAC;GACtB,yBAAyB,CAAC;GAC1B,UAAU;IACR,OAAO;IACP,KAAK,QAAQ;GACf;EACF;EAEA,IAAI,CAAC,QACH,OAAO;GACL,GAAG;GACH,UAAU;IACR,GAAG,YAAY;IACf,QAAQ,qCAAqC,QAAQ;GACvD;EACF;EAGF,MAAM,YAAY,KAAK,uBAAuB,MAAM;EACpD,IAAI,CAAC,WACH,OAAO;GACL,GAAG;GACH,UAAU;IACR,GAAG,YAAY;IACf,QAAQ,4BAA4B,OAAO;GAC7C;EACF;EAIF,MAAM,KAAK,mBAAmB,sBAAsB,cAAc,QAAQ,GAAG;EAE7E,OAAO,MAAM,UAAU,OAAO,cAAc,OAAO;CACrD;CAEA,MAAa,WAAW,cAA4B,SAA6D;EAC/G,KAAK,OAAO,MAAM,oBAAoB,QAAQ,KAAK;EAEnD,MAAM,cAAc;GAClB,qBAAqB,CAAC;GACtB,yBAAyB,CAAC;GAC1B,UAAU;IACR,OAAO;IACP,KAAK,QAAQ;GACf;EACF;EAEA,MAAM,SAAS,YAAY,QAAQ,GAAG,CAAC,EAAE;EACzC,IAAI,CAAC,QACH,OAAO;GACL,GAAG;GACH,UAAU;IACR,GAAG,YAAY;IACf,QAAQ,qCAAqC,QAAQ;GACvD;EACF;EAGF,MAAM,YAAY,KAAK,uBAAuB,MAAM;EACpD,IAAI,CAAC,WACH,OAAO;GACL,GAAG;GACH,UAAU;IACR,GAAG,YAAY;IACf,QAAQ,4BAA4B,OAAO;GAC7C;EACF;EAIF,MAAM,KAAK,mBAAmB,sBAAsB,cAAc,QAAQ,GAAG;EAE7E,OAAO,MAAM,UAAU,WAAW,cAAc,OAAO;CACzD;CAEA,uBAA+B,QAAqC;EAClE,OAAO,KAAK,iBAAiB,WAAW,MAAM,MAAM,EAAE,iBAAiB,SAAS,MAAM,CAAC,KAAK;CAC9F;;;;CAKA,IAAW,mBAAmB;EAC5B,OAAO,MAAM,KAAK,IAAI,IAAI,KAAK,iBAAiB,WAAW,SAAS,MAAM,EAAE,gBAAgB,CAAC,CAAC;CAChG;AACF;;CA7JC,WAAW;CAOP,gBAAA,GAAA,OAAO,iBAAiB,MAAM,CAAA"}