UNPKG

@sphereon/ssi-sdk.wellknown-did-issuer

Version:

1 lines • 40.3 kB
{"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/entities/DidConfigurationResourceEntity.ts","../src/agent/WellKnownDidIssuer.ts","../src/migrations/generic/1-CreateWellknownDidIssuer.ts","../src/migrations/postgres/1661165115000-CreateWellknownDidIssuer.ts","../src/migrations/sqlite/1661161799000-CreateWellknownDidIssuer.ts","../src/migrations/generic/index.ts"],"sourcesContent":["{\n \"IWellKnownDidIssuer\": {\n \"components\": {\n \"schemas\": {\n \"IIssueDidConfigurationResourceArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"issuances\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n },\n \"credentialIssuance\": {\n \"type\": \"string\"\n },\n \"save\": {\n \"type\": \"boolean\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"issuances\", \"credentialIssuance\"],\n \"description\": \"Arguments needed for {@link IWellKnownDidIssuer.addLinkedDomainsService } \"\n },\n \"IIssueDomainLinkageCredentialArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"origin\": {\n \"type\": \"string\"\n },\n \"serviceId\": {\n \"type\": \"string\"\n },\n \"issuanceDate\": {\n \"type\": \"date\"\n },\n \"expirationDate\": {\n \"type\": \"date\"\n },\n \"save\": {\n \"type\": \"boolean\"\n },\n \"options\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"credentialIssuance\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"did\", \"origin\", \"expirationDate\", \"options\"],\n \"description\": \"Arguments needed for {@link IWellKnownDidIssuer.issueDomainLinkageCredential } \"\n },\n \"IGetDidConfigurationResourceArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"origin\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"origin\"],\n \"description\": \"Arguments needed for {@link IWellKnownDidIssuer.getDidConfigurationResource } \"\n },\n \"IAddLinkedDomainsServiceArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"origin\": {\n \"type\": \"string\"\n },\n \"serviceId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"did\", \"origin\"],\n \"description\": \"Arguments needed for {@link IWellKnownDidIssuer.addLinkedDomainsService } \"\n },\n \"ISaveDidConfigurationResourceArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"origin\": {\n \"type\": \"string\"\n },\n \"didConfigurationResource\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"did\", \"origin\"],\n \"description\": \"Arguments needed for {@link IWellKnownDidIssuer.saveDidConfigurationResource } \"\n },\n \"IRemoveCredentialIssuanceArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"origin\": {\n \"callbackName\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"callbackName\"],\n \"description\": \"Arguments needed for {@link IWellKnownDidIssuer.removeCredentialIssuance } \"\n }\n },\n \"methods\": {\n \"addLinkedDomainsService\": {\n \"description\": \"Adds a LinkedDomains service to the DID\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IAddLinkedDomainsServiceArgs\"\n }\n },\n \"getDidConfigurationResource\": {\n \"description\": \"Retrieves a DID configuration resource from the database\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetDidConfigurationResourceArgs\"\n },\n \"returnType\": \"object\"\n },\n \"issueDidConfigurationResource\": {\n \"description\": \"Issues a DID configuration resource\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IAddLinkedDomainsServiceArgs\"\n },\n \"returnType\": \"object\"\n },\n \"issueDomainLinkageCredential\": {\n \"description\": \"Retrieves a domain linkage credential\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IIssueDomainLinkageCredentialArgs\"\n },\n \"returnType\": \"object\"\n },\n \"removeCredentialIssuance\": {\n \"description\": \"Removes a registered callback\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRemoveCredentialIssuanceArgs\"\n },\n \"returnType\": \"boolean\"\n },\n \"saveDidConfigurationResource\": {\n \"description\": \"Saves a DID configuration resource to the database\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISaveDidConfigurationResourceArgs\"\n }\n }\n }\n }\n }\n}\n","import { DidConfigurationResourceEntity } from './entities/DidConfigurationResourceEntity'\n\n/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { DidConfigurationResourceEntity } from './entities/DidConfigurationResourceEntity'\nexport { WellKnownDidIssuer } from './agent/WellKnownDidIssuer'\nexport * from './types/IWellKnownDidIssuer'\nexport const WellknownDidIssuerEntities = [DidConfigurationResourceEntity]\nexport { WellknownDidIssuerMigrations } from './migrations'\n","import { DomainLinkageCredential, IDidConfigurationResource, ISignedDomainLinkageCredential } from '@sphereon/wellknown-dids-client'\nimport { VerifiableCredential } from '@veramo/core'\nimport { Credential, Identifier, Claim } from '@veramo/data-store'\nimport { asArray, computeEntryHash, extractIssuer } from '@veramo/utils'\nimport { Entity, Column, PrimaryColumn, CreateDateColumn, UpdateDateColumn, ManyToMany, JoinTable, BaseEntity } from 'typeorm'\n\n@Entity('DidConfigurationResource')\nexport class DidConfigurationResourceEntity extends BaseEntity {\n @PrimaryColumn({ nullable: false })\n origin!: string\n\n @Column({ nullable: false })\n context!: string\n\n // TODO cascade of delete should be true when the VC is only attached to one DID configuration resource\n @ManyToMany(() => Credential, (credential: Credential) => credential.hash, { nullable: false, cascade: true, onDelete: 'NO ACTION' })\n @JoinTable({ name: 'DidConfigurationResourceCredentials' })\n linkedDids!: Array<Credential>\n\n @CreateDateColumn({ name: 'created_at', nullable: false })\n createdAt!: Date\n\n @UpdateDateColumn({ name: 'last_updated_at', nullable: false })\n lastUpdatedAt!: Date\n}\n\nexport const didConfigurationResourceFrom = (didConfigurationResource: DidConfigurationResourceEntity): IDidConfigurationResource => {\n return {\n '@context': didConfigurationResource.context,\n linked_dids: linkedDidsFrom(didConfigurationResource.linkedDids),\n }\n}\n\nconst linkedDidsFrom = (credentials: Array<Credential>): Array<DomainLinkageCredential> => {\n return credentials.map((credential: Credential) =>\n credential?.raw?.proof?.type === 'JwtProof2020' && typeof credential?.raw?.proof?.jwt === 'string'\n ? credential.raw.proof.jwt\n : (credential.raw as ISignedDomainLinkageCredential),\n )\n}\n\nexport const createCredentialEntity = (vci: VerifiableCredential): Credential => {\n const vc = vci\n const credential = new Credential()\n credential.context = asArray(vc['@context'])\n credential.type = asArray(vc.type || [])\n credential.id = vc.id\n\n if (vc.issuanceDate) {\n credential.issuanceDate = new Date(vc.issuanceDate)\n }\n\n if (vc.expirationDate) {\n credential.expirationDate = new Date(vc.expirationDate)\n }\n\n const issuer = new Identifier()\n issuer.did = extractIssuer(vc)\n credential.issuer = issuer\n\n if (vc.credentialSubject.id) {\n const subject = new Identifier()\n subject.did = vc.credentialSubject.id\n credential.subject = subject\n }\n credential.claims = []\n for (const type in vc.credentialSubject) {\n if (vc.credentialSubject.hasOwnProperty(type)) {\n const value = vc.credentialSubject[type]\n\n if (type !== 'id') {\n const isObj = typeof value === 'function' || (typeof value === 'object' && !!value)\n const claim = new Claim()\n claim.hash = computeEntryHash(JSON.stringify(vc) + type)\n claim.type = type\n claim.value = isObj ? JSON.stringify(value) : value\n claim.isObj = isObj\n claim.issuer = credential.issuer\n claim.subject = credential.subject\n claim.expirationDate = credential.expirationDate\n claim.issuanceDate = credential.issuanceDate\n claim.credentialType = credential.type\n claim.context = credential.context\n credential.claims.push(claim)\n }\n }\n }\n\n credential.raw = vci\n return credential\n}\n","import { CredentialCorrelationType, CredentialRole, DigitalCredential } from '@sphereon/ssi-sdk.credential-store'\nimport { CredentialMapper, parseDid } from '@sphereon/ssi-types'\nimport {\n DomainLinkageCredential,\n IDidConfigurationResource,\n IssuanceCallback,\n ServiceTypesEnum,\n WellKnownDidIssuer as Issuer,\n} from '@sphereon/wellknown-dids-client'\nimport { IAgentPlugin, IIdentifier, VerifiableCredential } from '@veramo/core'\nimport { OrPromise } from '@veramo/utils'\n// @ts-ignore\nimport { normalizeCredential } from 'did-jwt-vc'\n// @ts-ignore\nimport { Service } from 'did-resolver/lib/resolver'\nimport { Connection } from 'typeorm'\nimport { v4 as uuidv4 } from 'uuid'\nimport { createCredentialEntity, DidConfigurationResourceEntity, didConfigurationResourceFrom } from '../entities/DidConfigurationResourceEntity'\nimport { schema } from '../index'\nimport {\n IAddLinkedDomainsServiceArgs,\n IGetDidConfigurationResourceArgs,\n IIssueDidConfigurationResourceArgs,\n IIssueDomainLinkageCredentialArgs,\n IRegisterIssueCredentialArgs,\n IRemoveCredentialIssuanceArgs,\n ISaveDidConfigurationResourceArgs,\n IWellKnownDidIssuer,\n IWellKnownDidIssuerOptionsArgs,\n RequiredContext,\n} from '../types/IWellKnownDidIssuer'\nimport { RegulationType } from '@sphereon/ssi-sdk.data-store-types'\n\n/**\n * {@inheritDoc IWellKnownDidIssuer}\n */\nexport class WellKnownDidIssuer implements IAgentPlugin {\n readonly schema = schema.IWellKnownDidVerifier\n readonly methods: IWellKnownDidIssuer = {\n addLinkedDomainsService: this.addLinkedDomainsService.bind(this),\n getDidConfigurationResource: this.getDidConfigurationResource.bind(this),\n issueDidConfigurationResource: this.issueDidConfigurationResource.bind(this),\n issueDomainLinkageCredential: this.issueDomainLinkageCredential.bind(this),\n registerCredentialIssuance: this.registerCredentialIssuance.bind(this),\n removeCredentialIssuance: this.removeCredentialIssuance.bind(this),\n saveDidConfigurationResource: this.saveDidConfigurationResource.bind(this),\n }\n\n private readonly credentialIssuances: Record<string, IssuanceCallback>\n private readonly didConfigurationResourceRelations = ['linkedDids']\n\n constructor(\n private dbConnection: OrPromise<Connection>,\n args?: IWellKnownDidIssuerOptionsArgs,\n ) {\n this.credentialIssuances = (args && args.credentialIssuances) || {}\n }\n\n /** {@inheritDoc IWellKnownDidIssuer.registerSignatureVerification} */\n private async registerCredentialIssuance(args: IRegisterIssueCredentialArgs, context: RequiredContext): Promise<void> {\n if (this.credentialIssuances[args.callbackName] !== undefined) {\n return Promise.reject(new Error(`Credential issuance with callbackName: ${args.callbackName} already present`))\n }\n\n this.credentialIssuances[args.callbackName] = args.credentialIssuance\n }\n\n /** {@inheritDoc IWellKnownDidIssuer.removeSignatureVerification} */\n private async removeCredentialIssuance(args: IRemoveCredentialIssuanceArgs, context: RequiredContext): Promise<boolean> {\n return delete this.credentialIssuances[args.callbackName]\n }\n\n /** {@inheritDoc IWellKnownDidIssuer.issueDidConfigurationResource} */\n private async issueDidConfigurationResource(\n args: IIssueDidConfigurationResourceArgs,\n context: RequiredContext,\n ): Promise<IDidConfigurationResource> {\n if (!args.issuances.every((issuance: IIssueDomainLinkageCredentialArgs) => issuance.origin === args.issuances[0].origin)) {\n return Promise.reject(Error('All verifiableCredentials should be issued for the same origin'))\n }\n\n // TODO We should combine all origins into one service when we update to Veramo 3.1.6.next-165 or higher, as then we can support multiple origins\n const addServices = args.issuances.map((issuance: IIssueDomainLinkageCredentialArgs) =>\n this.addLinkedDomainsService(\n {\n did: issuance.did,\n origin: issuance.origin,\n serviceId: issuance.serviceId,\n },\n context,\n ),\n )\n\n return Promise.all(addServices).then(async () =>\n new Issuer()\n .issueDidConfigurationResource({\n issuances: await this.mapIssuances(args.issuances),\n issueCallback:\n typeof args.credentialIssuance === 'string' ? await this.getCredentialIssuance(args.credentialIssuance) : args.credentialIssuance,\n })\n .then(async (didConfigurationResource: IDidConfigurationResource) => {\n if (args.save) {\n // TODO add support for multiple origins when we upgrade Veramo version\n await this.saveDidConfigurationResource({ origin: args.issuances[0].origin, didConfigurationResource }, context)\n }\n return didConfigurationResource\n })\n .catch((error: Error) => Promise.reject(Error(`Unable to issue DID configuration resource. Error: ${error.message}`))),\n )\n }\n\n /** {@inheritDoc IWellKnownDidIssuer.saveDidConfigurationResource} */\n public async saveDidConfigurationResource(args: ISaveDidConfigurationResourceArgs, context: RequiredContext): Promise<void> {\n const didConfigurationEntity = {\n origin: args.origin,\n context: args.didConfigurationResource['@context'],\n linkedDids: args.didConfigurationResource.linked_dids.map((credential: DomainLinkageCredential) =>\n createCredentialEntity(this.normalizeCredential(credential)),\n ),\n }\n\n await (await this.dbConnection).getRepository(DidConfigurationResourceEntity).save(didConfigurationEntity, { transaction: true })\n }\n\n /** {@inheritDoc IWellKnownDidIssuer.getDidConfigurationResource} */\n public async getDidConfigurationResource(args: IGetDidConfigurationResourceArgs, context: RequiredContext): Promise<IDidConfigurationResource> {\n const result = await (await this.dbConnection).getRepository(DidConfigurationResourceEntity).findOne({\n where: { origin: args.origin },\n relations: this.didConfigurationResourceRelations,\n })\n\n if (!result) {\n return Promise.reject(Error(`No DID configuration resource found for origin: ${args.origin}`))\n }\n\n return didConfigurationResourceFrom(result)\n }\n\n /** {@inheritDoc IWellKnownDidIssuer.issueDomainLinkageCredential} */\n public async issueDomainLinkageCredential(args: IIssueDomainLinkageCredentialArgs, context: RequiredContext): Promise<DomainLinkageCredential> {\n const did: string = parseDid(args.did).did\n\n if (new URL(args.origin).origin !== args.origin) {\n return Promise.reject(Error(`Origin ${args.origin} is not valid`))\n }\n\n if (new URL(args.origin).protocol !== 'https:') {\n return Promise.reject(Error(`Origin ${args.origin} is not a https URL`))\n }\n\n if (args.issuanceDate && isNaN(Date.parse(args.issuanceDate))) {\n return Promise.reject(Error(`IssuanceDate ${args.issuanceDate} is not a valid date`))\n }\n\n if (isNaN(Date.parse(args.expirationDate))) {\n return Promise.reject(Error(`ExpirationDate ${args.expirationDate} is not a valid date`))\n }\n\n const credentialIssuance: IssuanceCallback =\n typeof args.credentialIssuance === 'string'\n ? await this.getCredentialIssuance(args.credentialIssuance)\n : (args.credentialIssuance as IssuanceCallback)\n\n return new Issuer()\n .issueDomainLinkageCredential({\n did,\n origin: args.origin,\n issuanceDate: args.issuanceDate,\n expirationDate: args.expirationDate,\n options: args.options,\n issueCallback: credentialIssuance,\n })\n .then(async (credential: DomainLinkageCredential) => {\n if (args.save) {\n await this.saveDomainLinkageCredential(credential, context)\n }\n return credential\n })\n .catch((error: Error) => Promise.reject(Error(`Unable to issue domain linkage credential for DID: ${did}. Error: ${error.message}`)))\n }\n\n /** {@inheritDoc IWellKnownDidIssuer.addLinkedDomainsService} */\n public async addLinkedDomainsService(args: IAddLinkedDomainsServiceArgs, context: RequiredContext): Promise<void> {\n const did: string = parseDid(args.did).did\n\n if (new URL(args.origin).origin !== args.origin) {\n return Promise.reject(Error(`Origin ${args.origin} is not valid`))\n }\n\n if (new URL(args.origin).protocol !== 'https:') {\n return Promise.reject(Error(`Origin ${args.origin} is not a https URL`))\n }\n\n context.agent\n .didManagerGet({ did })\n .catch(() => Promise.reject(Error('DID cannot be found')))\n .then(async (identifier: IIdentifier) => {\n if (\n !identifier.services ||\n identifier.services.filter(\n // TODO we should also check for the origins in the serviceEndpoint objects when we start supporting multiple origins\n (service: Service) => service.type === ServiceTypesEnum.LINKED_DOMAINS && service.serviceEndpoint === args.origin,\n ).length === 0\n ) {\n await context.agent.didManagerAddService({\n did: identifier.did,\n service: {\n id: args.serviceId || uuidv4(),\n type: ServiceTypesEnum.LINKED_DOMAINS,\n // TODO We should support a serviceEndpoint object here when we update to Veramo 3.1.6.next-165 or higher, as then we can support multiple origins\n serviceEndpoint: args.origin,\n },\n })\n }\n })\n .catch((error: Error) => Promise.reject(Error(`Unable to add LinkedDomains service to DID: ${args.did}. Error: ${error.message}`)))\n }\n\n private async getCredentialIssuance(callbackName: string): Promise<IssuanceCallback> {\n if (this.credentialIssuances[callbackName] === undefined) {\n return Promise.reject(new Error(`Credential issuance not found for callbackName: ${callbackName}`))\n }\n\n return this.credentialIssuances[callbackName]\n }\n\n private async saveDomainLinkageCredential(credential: DomainLinkageCredential, context: RequiredContext): Promise<DigitalCredential> {\n const vc = this.normalizeCredential(credential)\n return context.agent.crsAddCredential({\n credential: {\n rawDocument: JSON.stringify(vc),\n credentialRole: CredentialRole.ISSUER,\n regulationType: RegulationType.NON_REGULATED, // FIXME funke\n kmsKeyRef: 'FIXME', // FIXME funke\n identifierMethod: 'did',\n issuerCorrelationId: CredentialMapper.issuerCorrelationIdFromIssuerType(vc.issuer),\n issuerCorrelationType: CredentialCorrelationType.DID,\n subjectCorrelationId: CredentialMapper.issuerCorrelationIdFromIssuerType(vc.issuer), // FIXME get separate did for subject\n subjectCorrelationType: CredentialCorrelationType.DID,\n },\n })\n }\n\n private normalizeCredential(credential: DomainLinkageCredential): VerifiableCredential {\n return typeof credential === 'string' ? normalizeCredential(credential) : credential\n }\n\n private async mapIssuances(issuances: Array<IIssueDomainLinkageCredentialArgs>): Promise<Array<IIssueDomainLinkageCredentialArgs>> {\n const promises = issuances.map(async (issuance: IIssueDomainLinkageCredentialArgs) => {\n return {\n ...issuance,\n issueCallback:\n typeof issuance.credentialIssuance === 'string'\n ? await this.getCredentialIssuance(issuance.credentialIssuance)\n : issuance.credentialIssuance,\n }\n })\n return Promise.all(promises)\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\nimport Debug from 'debug'\nimport { CreateWellknownDidIssuer1661165115000 } from '../postgres/1661165115000-CreateWellknownDidIssuer'\nimport { CreateWellknownDidIssuer1661161799000 } from '../sqlite/1661161799000-CreateWellknownDidIssuer'\n\nconst debug = Debug('sphereon:ssi-sdk:migrations')\n\nexport class CreateWellknownDidIssuer1661162010000 implements MigrationInterface {\n name = 'CreateWellknownDidIssuer1661162010000'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n debug('migration: creating well-known DID tables')\n const dbType = queryRunner.connection.driver.options.type\n if (dbType === 'postgres') {\n debug('using postgres migration file')\n const mig = new CreateWellknownDidIssuer1661165115000()\n const up = await mig.up(queryRunner)\n debug('Migration statements executed')\n return up\n } else if (dbType === 'sqlite' || dbType === 'react-native' || dbType === 'expo') {\n debug('using sqlite/react-native migration file')\n const mig = new CreateWellknownDidIssuer1661161799000()\n const up = await mig.up(queryRunner)\n debug('Migration statements executed')\n return up\n } else {\n return Promise.reject(\n `Migrations are currently only supported for sqlite, react-native, expor and postgres. Was ${dbType}. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now`,\n )\n }\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n debug('reverting well-known DID tables')\n const dbType = queryRunner.connection.driver.options.type\n if (dbType === 'postgres') {\n debug('using postgres migration file')\n const mig = new CreateWellknownDidIssuer1661165115000()\n const down = await mig.down(queryRunner)\n debug('Migration statements executed')\n return down\n } else if (dbType === 'sqlite' || dbType === 'react-native' || dbType === 'expo') {\n debug('using sqlite/react-native migration file')\n const mig = new CreateWellknownDidIssuer1661161799000()\n const down = await mig.down(queryRunner)\n debug('Migration statements executed')\n return down\n } else {\n return Promise.reject(\n `Migrations are currently only supported for sqlite, react-native, expor and postgres. Was ${dbType}. Please run your database without migrations and with 'migrationsRun: false' and 'synchronize: true' for now`,\n )\n }\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\n\nexport class CreateWellknownDidIssuer1661165115000 implements MigrationInterface {\n name = 'CreateWellknownDidIssuer1661165115000'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(\n `CREATE TABLE \"DidConfigurationResource\" (\"origin\" varchar NOT NULL, \"context\" varchar NOT NULL, \"created_at\" TIMESTAMP NOT NULL DEFAULT now(), \"last_updated_at\" TIMESTAMP NOT NULL DEFAULT now(), CONSTRAINT \"PK_Origin\" PRIMARY KEY (\"origin\"))`,\n )\n await queryRunner.query(\n `CREATE TABLE \"DidConfigurationResourceCredentials\" (\"didConfigurationResourceOrigin\" varchar NOT NULL, \"credentialHash\" varchar NOT NULL)`,\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`DROP TABLE \"DidConfigurationResource\"`)\n await queryRunner.query(`DROP TABLE \"DidConfigurationResourceCredentials\"`)\n }\n}\n","import { MigrationInterface, QueryRunner } from 'typeorm'\n\nexport class CreateWellknownDidIssuer1661161799000 implements MigrationInterface {\n name = 'CreateWellknownDidIssuer1661161799000'\n\n public async up(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(\n `CREATE TABLE \"DidConfigurationResource\" (\"origin\" varchar PRIMARY KEY NOT NULL, \"context\" varchar NOT NULL, \"created_at\" datetime NOT NULL DEFAULT (datetime('now')), \"last_updated_at\" datetime NOT NULL DEFAULT (datetime('now')))`,\n )\n await queryRunner.query(\n `CREATE TABLE \"DidConfigurationResourceCredentials\" (\"didConfigurationResourceOrigin\" varchar NOT NULL, \"credentialHash\" varchar NOT NULL)`,\n )\n }\n\n public async down(queryRunner: QueryRunner): Promise<void> {\n await queryRunner.query(`DROP TABLE \"DidConfigurationResource\"`)\n await queryRunner.query(`DROP TABLE \"DidConfigurationResourceCredentials\"`)\n }\n}\n","import { CreateWellknownDidIssuer1661162010000 } from './1-CreateWellknownDidIssuer'\n\n/**\n * The migrations array that SHOULD be used when initializing a TypeORM database connection.\n *\n * These ensure the correct creation of tables and the proper migrations of data when tables change between versions.\n *\n * @public\n */\nexport const WellknownDidIssuerMigrations = [CreateWellknownDidIssuer1661162010000]\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,gCAAAA,SAAA;AAAA,IAAAA,QAAA;AAAA,MACE,qBAAuB;AAAA,QACrB,YAAc;AAAA,UACZ,SAAW;AAAA,YACT,oCAAsC;AAAA,cACpC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,WAAa;AAAA,kBACX,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,oBACR,YAAc;AAAA,sBACZ,sBAAwB;AAAA,oBAC1B;AAAA,kBACF;AAAA,gBACF;AAAA,gBACA,oBAAsB;AAAA,kBACpB,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,aAAa,oBAAoB;AAAA,cAC9C,aAAe;AAAA,YACjB;AAAA,YACA,mCAAqC;AAAA,cACnC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,gBACV;AAAA,gBACA,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,gBACV;AAAA,gBACA,MAAQ;AAAA,kBACN,MAAQ;AAAA,gBACV;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,oBAAsB;AAAA,kBACpB,MAAQ;AAAA,gBACV;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,OAAO,UAAU,kBAAkB,SAAS;AAAA,cACzD,aAAe;AAAA,YACjB;AAAA,YACA,kCAAoC;AAAA,cAClC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,QAAQ;AAAA,cACrB,aAAe;AAAA,YACjB;AAAA,YACA,8BAAgC;AAAA,cAC9B,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,OAAO,QAAQ;AAAA,cAC5B,aAAe;AAAA,YACjB;AAAA,YACA,mCAAqC;AAAA,cACnC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,QAAU;AAAA,kBACR,MAAQ;AAAA,gBACV;AAAA,gBACA,0BAA4B;AAAA,kBAC1B,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,OAAO,QAAQ;AAAA,cAC5B,aAAe;AAAA,YACjB;AAAA,YACA,+BAAiC;AAAA,cAC/B,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,QAAU;AAAA,kBACR,cAAgB;AAAA,gBAClB;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,cAAc;AAAA,cAC3B,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,UACA,SAAW;AAAA,YACT,yBAA2B;AAAA,cACzB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,6BAA+B;AAAA,cAC7B,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,YAChB;AAAA,YACA,+BAAiC;AAAA,cAC/B,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,YAChB;AAAA,YACA,8BAAgC;AAAA,cAC9B,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,YAChB;AAAA,YACA,0BAA4B;AAAA,cAC1B,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,YAChB;AAAA,YACA,8BAAgC;AAAA,cAC9B,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;ACnKA;;;;;;;;;;;ACEA,wBAA8C;AAC9C,mBAAyD;AACzD,qBAAqH;;;;;;;;;;;;AAG9G,IAAMC,iCAAN,cAA6CC,0BAAAA;SAAAA;;;EAElDC;EAGAC;;EAKAC;EAGAC;EAGAC;AACF;;;IAhBmBC,UAAU;;;;;;IAGjBA,UAAU;;;;;uCAIFC,8BAAAA,CAAaC,eAA2BA,WAAWC,MAAI;IAAIH,UAAU;IAAOI,SAAS;IAAMC,UAAU;;;IAC1GC,MAAM;;;;;;IAGCA,MAAM;IAAcN,UAAU;;;;;;IAG9BM,MAAM;IAAmBN,UAAU;;;;;;;AAIlD,IAAMO,+BAA+B,wBAACC,6BAAAA;AAC3C,SAAO;IACL,YAAYA,yBAAyBZ;IACrCa,aAAaC,eAAeF,yBAAyBX,UAAU;EACjE;AACF,GAL4C;AAO5C,IAAMa,iBAAiB,wBAACC,gBAAAA;AACtB,SAAOA,YAAYC,IAAI,CAACV,eACtBA,YAAYW,KAAKC,OAAOC,SAAS,kBAAkB,OAAOb,YAAYW,KAAKC,OAAOE,QAAQ,WACtFd,WAAWW,IAAIC,MAAME,MACpBd,WAAWW,GAAG;AAEvB,GANuB;AAQhB,IAAMI,yBAAyB,wBAACC,QAAAA;AACrC,QAAMC,KAAKD;AACX,QAAMhB,aAAa,IAAID,6BAAAA;AACvBC,aAAWN,cAAUwB,sBAAQD,GAAG,UAAA,CAAW;AAC3CjB,aAAWa,WAAOK,sBAAQD,GAAGJ,QAAQ,CAAA,CAAE;AACvCb,aAAWmB,KAAKF,GAAGE;AAEnB,MAAIF,GAAGG,cAAc;AACnBpB,eAAWoB,eAAe,IAAIC,KAAKJ,GAAGG,YAAY;EACpD;AAEA,MAAIH,GAAGK,gBAAgB;AACrBtB,eAAWsB,iBAAiB,IAAID,KAAKJ,GAAGK,cAAc;EACxD;AAEA,QAAMC,SAAS,IAAIC,6BAAAA;AACnBD,SAAOE,UAAMC,4BAAcT,EAAAA;AAC3BjB,aAAWuB,SAASA;AAEpB,MAAIN,GAAGU,kBAAkBR,IAAI;AAC3B,UAAMS,UAAU,IAAIJ,6BAAAA;AACpBI,YAAQH,MAAMR,GAAGU,kBAAkBR;AACnCnB,eAAW4B,UAAUA;EACvB;AACA5B,aAAW6B,SAAS,CAAA;AACpB,aAAWhB,QAAQI,GAAGU,mBAAmB;AACvC,QAAIV,GAAGU,kBAAkBG,eAAejB,IAAAA,GAAO;AAC7C,YAAMkB,QAAQd,GAAGU,kBAAkBd,IAAAA;AAEnC,UAAIA,SAAS,MAAM;AACjB,cAAMmB,QAAQ,OAAOD,UAAU,cAAe,OAAOA,UAAU,YAAY,CAAC,CAACA;AAC7E,cAAME,QAAQ,IAAIC,wBAAAA;AAClBD,cAAMhC,WAAOkC,+BAAiBC,KAAKC,UAAUpB,EAAAA,IAAMJ,IAAAA;AACnDoB,cAAMpB,OAAOA;AACboB,cAAMF,QAAQC,QAAQI,KAAKC,UAAUN,KAAAA,IAASA;AAC9CE,cAAMD,QAAQA;AACdC,cAAMV,SAASvB,WAAWuB;AAC1BU,cAAML,UAAU5B,WAAW4B;AAC3BK,cAAMX,iBAAiBtB,WAAWsB;AAClCW,cAAMb,eAAepB,WAAWoB;AAChCa,cAAMK,iBAAiBtC,WAAWa;AAClCoB,cAAMvC,UAAUM,WAAWN;AAC3BM,mBAAW6B,OAAOU,KAAKN,KAAAA;MACzB;IACF;EACF;AAEAjC,aAAWW,MAAMK;AACjB,SAAOhB;AACT,GAjDsC;;;ACzCtC,qBAA6E;AAC7E,uBAA2C;AAC3C,mCAMO;AAIP,wBAAoC;AAIpC,kBAA6B;AAe7B,IAAAwC,kBAA+B;AAKxB,IAAMC,qBAAN,MAAMA;EApCb,OAoCaA;;;;EACFC,SAASA,OAAOC;EAChBC,UAA+B;IACtCC,yBAAyB,KAAKA,wBAAwBC,KAAK,IAAI;IAC/DC,6BAA6B,KAAKA,4BAA4BD,KAAK,IAAI;IACvEE,+BAA+B,KAAKA,8BAA8BF,KAAK,IAAI;IAC3EG,8BAA8B,KAAKA,6BAA6BH,KAAK,IAAI;IACzEI,4BAA4B,KAAKA,2BAA2BJ,KAAK,IAAI;IACrEK,0BAA0B,KAAKA,yBAAyBL,KAAK,IAAI;IACjEM,8BAA8B,KAAKA,6BAA6BN,KAAK,IAAI;EAC3E;EAEiBO;EACAC,oCAAoC;IAAC;;EAEtD,YACUC,cACRC,MACA;SAFQD,eAAAA;AAGR,SAAKF,sBAAuBG,QAAQA,KAAKH,uBAAwB,CAAC;EACpE;;EAGA,MAAcH,2BAA2BM,MAAoCC,SAAyC;AACpH,QAAI,KAAKJ,oBAAoBG,KAAKE,YAAY,MAAMC,QAAW;AAC7D,aAAOC,QAAQC,OAAO,IAAIC,MAAM,0CAA0CN,KAAKE,YAAY,kBAAkB,CAAA;IAC/G;AAEA,SAAKL,oBAAoBG,KAAKE,YAAY,IAAIF,KAAKO;EACrD;;EAGA,MAAcZ,yBAAyBK,MAAqCC,SAA4C;AACtH,WAAO,OAAO,KAAKJ,oBAAoBG,KAAKE,YAAY;EAC1D;;EAGA,MAAcV,8BACZQ,MACAC,SACoC;AACpC,QAAI,CAACD,KAAKQ,UAAUC,MAAM,CAACC,aAAgDA,SAASC,WAAWX,KAAKQ,UAAU,CAAA,EAAGG,MAAM,GAAG;AACxH,aAAOP,QAAQC,OAAOC,MAAM,gEAAA,CAAA;IAC9B;AAGA,UAAMM,cAAcZ,KAAKQ,UAAUK,IAAI,CAACH,aACtC,KAAKrB,wBACH;MACEyB,KAAKJ,SAASI;MACdH,QAAQD,SAASC;MACjBI,WAAWL,SAASK;IACtB,GACAd,OAAAA,CAAAA;AAIJ,WAAOG,QAAQY,IAAIJ,WAAAA,EAAaK,KAAK,YACnC,IAAIC,6BAAAA,mBAAAA,EACD1B,8BAA8B;MAC7BgB,WAAW,MAAM,KAAKW,aAAanB,KAAKQ,SAAS;MACjDY,eACE,OAAOpB,KAAKO,uBAAuB,WAAW,MAAM,KAAKc,sBAAsBrB,KAAKO,kBAAkB,IAAIP,KAAKO;IACnH,CAAA,EACCU,KAAK,OAAOK,6BAAAA;AACX,UAAItB,KAAKuB,MAAM;AAEb,cAAM,KAAK3B,6BAA6B;UAAEe,QAAQX,KAAKQ,UAAU,CAAA,EAAGG;UAAQW;QAAyB,GAAGrB,OAAAA;MAC1G;AACA,aAAOqB;IACT,CAAA,EACCE,MAAM,CAACC,UAAiBrB,QAAQC,OAAOC,MAAM,sDAAsDmB,MAAMC,OAAO,EAAE,CAAA,CAAA,CAAA;EAEzH;;EAGA,MAAa9B,6BAA6BI,MAAyCC,SAAyC;AAC1H,UAAM0B,yBAAyB;MAC7BhB,QAAQX,KAAKW;MACbV,SAASD,KAAKsB,yBAAyB,UAAA;MACvCM,YAAY5B,KAAKsB,yBAAyBO,YAAYhB,IAAI,CAACiB,eACzDC,uBAAuB,KAAKC,oBAAoBF,UAAAA,CAAAA,CAAAA;IAEpD;AAEA,WAAO,MAAM,KAAK/B,cAAckC,cAAcC,8BAAAA,EAAgCX,KAAKI,wBAAwB;MAAEQ,aAAa;IAAK,CAAA;EACjI;;EAGA,MAAa5C,4BAA4BS,MAAwCC,SAA8D;AAC7I,UAAMmC,SAAS,OAAO,MAAM,KAAKrC,cAAckC,cAAcC,8BAAAA,EAAgCG,QAAQ;MACnGC,OAAO;QAAE3B,QAAQX,KAAKW;MAAO;MAC7B4B,WAAW,KAAKzC;IAClB,CAAA;AAEA,QAAI,CAACsC,QAAQ;AACX,aAAOhC,QAAQC,OAAOC,MAAM,mDAAmDN,KAAKW,MAAM,EAAE,CAAA;IAC9F;AAEA,WAAO6B,6BAA6BJ,MAAAA;EACtC;;EAGA,MAAa3C,6BAA6BO,MAAyCC,SAA4D;AAC7I,UAAMa,UAAc2B,2BAASzC,KAAKc,GAAG,EAAEA;AAEvC,QAAI,IAAI4B,IAAI1C,KAAKW,MAAM,EAAEA,WAAWX,KAAKW,QAAQ;AAC/C,aAAOP,QAAQC,OAAOC,MAAM,UAAUN,KAAKW,MAAM,eAAe,CAAA;IAClE;AAEA,QAAI,IAAI+B,IAAI1C,KAAKW,MAAM,EAAEgC,aAAa,UAAU;AAC9C,aAAOvC,QAAQC,OAAOC,MAAM,UAAUN,KAAKW,MAAM,qBAAqB,CAAA;IACxE;AAEA,QAAIX,KAAK4C,gBAAgBC,MAAMC,KAAKC,MAAM/C,KAAK4C,YAAY,CAAA,GAAI;AAC7D,aAAOxC,QAAQC,OAAOC,MAAM,gBAAgBN,KAAK4C,YAAY,sBAAsB,CAAA;IACrF;AAEA,QAAIC,MAAMC,KAAKC,MAAM/C,KAAKgD,cAAc,CAAA,GAAI;AAC1C,aAAO5C,QAAQC,OAAOC,MAAM,kBAAkBN,KAAKgD,cAAc,sBAAsB,CAAA;IACzF;AAEA,UAAMzC,qBACJ,OAAOP,KAAKO,uBAAuB,WAC/B,MAAM,KAAKc,sBAAsBrB,KAAKO,kBAAkB,IACvDP,KAAKO;AAEZ,WAAO,IAAIW,6BAAAA,mBAAAA,EACRzB,6BAA6B;MAC5BqB;MACAH,QAAQX,KAAKW;MACbiC,cAAc5C,KAAK4C;MACnBI,gBAAgBhD,KAAKgD;MACrBC,SAASjD,KAAKiD;MACd7B,eAAeb;IACjB,CAAA,EACCU,KAAK,OAAOa,eAAAA;AACX,UAAI9B,KAAKuB,MAAM;AACb,cAAM,KAAK2B,4BAA4BpB,YAAY7B,OAAAA;MACrD;AACA,aAAO6B;IACT,CAAA,EACCN,MAAM,CAACC,UAAiBrB,QAAQC,OAAOC,MAAM,sDAAsDQ,GAAAA,YAAeW,MAAMC,OAAO,EAAE,CAAA,CAAA;EACtI;;EAGA,MAAarC,wBAAwBW,MAAoCC,SAAyC;AAChH,UAAMa,UAAc2B,2BAASzC,KAAKc,GAAG,EAAEA;AAEvC,QAAI,IAAI4B,IAAI1C,KAAKW,MAAM,EAAEA,WAAWX,KAAKW,QAAQ;AAC/C,aAAOP,QAAQC,OAAOC,MAAM,UAAUN,KAAKW,MAAM,eAAe,CAAA;IAClE;AAEA,QAAI,IAAI+B,IAAI1C,KAAKW,MAAM,EAAEgC,aAAa,UAAU;AAC9C,aAAOvC,QAAQC,OAAOC,MAAM,UAAUN,KAAKW,MAAM,qBAAqB,CAAA;IACxE;AAEAV,YAAQkD,MACLC,cAAc;MAAEtC;IAAI,CAAA,EACpBU,MAAM,MAAMpB,QAAQC,OAAOC,MAAM,qBAAA,CAAA,CAAA,EACjCW,KAAK,OAAOoC,eAAAA;AACX,UACE,CAACA,WAAWC,YACZD,WAAWC,SAASC;;QAElB,CAACC,YAAqBA,QAAQC,SAASC,8CAAiBC,kBAAkBH,QAAQI,oBAAoB5D,KAAKW;MAAM,EACjHkD,WAAW,GACb;AACA,cAAM5D,QAAQkD,MAAMW,qBAAqB;UACvChD,KAAKuC,WAAWvC;UAChB0C,SAAS;YACPO,IAAI/D,KAAKe,iBAAaiD,YAAAA,IAAAA;YACtBP,MAAMC,8CAAiBC;;YAEvBC,iBAAiB5D,KAAKW;UACxB;QACF,CAAA;MACF;IACF,CAAA,EACCa,MAAM,CAACC,UAAiBrB,QAAQC,OAAOC,MAAM,+CAA+CN,KAAKc,GAAG,YAAYW,MAAMC,OAAO,EAAE,CAAA,CAAA;EACpI;EAEA,MAAcL,sBAAsBnB,cAAiD;AACnF,QAAI,KAAKL,oBAAoBK,YAAAA,MAAkBC,QAAW;AACxD,aAAOC,QAAQC,OAAO,IAAIC,MAAM,mDAAmDJ,YAAAA,EAAc,CAAA;IACnG;AAEA,WAAO,KAAKL,oBAAoBK,YAAAA;EAClC;EAEA,MAAcgD,4BAA4BpB,YAAqC7B,SAAsD;AACnI,UAAMgE,KAAK,KAAKjC,oBAAoBF,UAAAA;AACpC,WAAO7B,QAAQkD,MAAMe,iBAAiB;MACpCpC,YAAY;QACVqC,aAAaC,KAAKC,UAAUJ,EAAAA;QAC5BK,gBAAgBC,8BAAeC;QAC/BC,gBAAgBC,+BAAeC;QAC/BC,WAAW;QACXC,kBAAkB;QAClBC,qBAAqBC,kCAAiBC,kCAAkCf,GAAGgB,MAAM;QACjFC,uBAAuBC,yCAA0BC;QACjDC,sBAAsBN,kCAAiBC,kCAAkCf,GAAGgB,MAAM;QAClFK,wBAAwBH,yCAA0BC;MACpD;IACF,CAAA;EACF;EAEQpD,oBAAoBF,YAA2D;AACrF,WAAO,OAAOA,eAAe,eAAWE,uCAAoBF,UAAAA,IAAcA;EAC5E;EAEA,MAAcX,aAAaX,WAAwG;AACjI,UAAM+E,WAAW/E,UAAUK,IAAI,OAAOH,aAAAA;AACpC,aAAO;QACL,GAAGA;QACHU,eACE,OAAOV,SAASH,uBAAuB,WACnC,MAAM,KAAKc,sBAAsBX,SAASH,kBAAkB,IAC5DG,SAASH;MACjB;IACF,CAAA;AACA,WAAOH,QAAQY,IAAIuE,QAAAA;EACrB;AACF;;;AClQA,mBAAkB;;;ACCX,IAAMC,wCAAN,MAAMA;EAAb,OAAaA;;;EACXC,OAAO;EAEP,MAAaC,GAAGC,aAAyC;AACvD,UAAMA,YAAYC,MAChB,mPAAmP;AAErP,UAAMD,YAAYC,MAChB,2IAA2I;EAE/I;EAEA,MAAaC,KAAKF,aAAyC;AACzD,UAAMA,YAAYC,MAAM,uCAAuC;AAC/D,UAAMD,YAAYC,MAAM,kDAAkD;EAC5E;AACF;;;AChBO,IAAME,wCAAN,MAAMA;EAAb,OAAaA;;;EACXC,OAAO;EAEP,MAAaC,GAAGC,aAAyC;AACvD,UAAMA,YAAYC,MAChB,sOAAsO;AAExO,UAAMD,YAAYC,MAChB,2IAA2I;EAE/I;EAEA,MAAaC,KAAKF,aAAyC;AACzD,UAAMA,YAAYC,MAAM,uCAAuC;AAC/D,UAAMD,YAAYC,MAAM,kDAAkD;EAC5E;AACF;;;AFbA,IAAME,YAAQC,aAAAA,SAAM,6BAAA;AAEb,IAAMC,wCAAN,MAAMA;EANb,OAMaA;;;EACXC,OAAO;EAEP,MAAaC,GAAGC,aAAyC;AACvDL,UAAM,2CAAA;AACN,UAAMM,SAASD,YAAYE,WAAWC,OAAOC,QAAQC;AACrD,QAAIJ,WAAW,YAAY;AACzBN,YAAM,+BAAA;AACN,YAAMW,MAAM,IAAIC,sCAAAA;AAChB,YAAMR,KAAK,MAAMO,IAAIP,GAAGC,WAAAA;AACxBL,YAAM,+BAAA;AACN,aAAOI;IACT,WAAWE,WAAW,YAAYA,WAAW,kBAAkBA,WAAW,QAAQ;AAChFN,YAAM,0CAAA;AACN,YAAMW,MAAM,IAAIE,sCAAAA;AAChB,YAAMT,KAAK,MAAMO,IAAIP,GAAGC,WAAAA;AACxBL,YAAM,+BAAA;AACN,aAAOI;IACT,OAAO;AACL,aAAOU,QAAQC,OACb,6FAA6FT,MAAAA,+GAAqH;IAEtN;EACF;EAEA,MAAaU,KAAKX,aAAyC;AACzDL,UAAM,iCAAA;AACN,UAAMM,SAASD,YAAYE,WAAWC,OAAOC,QAAQC;AACrD,QAAIJ,WAAW,YAAY;AACzBN,YAAM,+BAAA;AACN,YAAMW,MAAM,IAAIC,sCAAAA;AAChB,YAAMI,OAAO,MAAML,IAAIK,KAAKX,WAAAA;AAC5BL,YAAM,+BAAA;AACN,aAAOgB;IACT,WAAWV,WAAW,YAAYA,WAAW,kBAAkBA,WAAW,QAAQ;AAChFN,YAAM,0CAAA;AACN,YAAMW,MAAM,IAAIE,sCAAAA;AAChB,YAAMG,OAAO,MAAML,IAAIK,KAAKX,WAAAA;AAC5BL,YAAM,+BAAA;AACN,aAAOgB;IACT,OAAO;AACL,aAAOF,QAAQC,OACb,6FAA6FT,MAAAA,+GAAqH;IAEtN;EACF;AACF;;;AG5CO,IAAMW,+BAA+B;EAACC;;;;ANJ7C,IAAMC,SAASC;AAKR,IAAMC,6BAA6B;EAACC;;","names":["module","DidConfigurationResourceEntity","BaseEntity","origin","context","linkedDids","createdAt","lastUpdatedAt","nullable","Credential","credential","hash","cascade","onDelete","name","didConfigurationResourceFrom","didConfigurationResource","linked_dids","linkedDidsFrom","credentials","map","raw","proof","type","jwt","createCredentialEntity","vci","vc","asArray","id","issuanceDate","Date","expirationDate","issuer","Identifier","did","extractIssuer","credentialSubject","subject","claims","hasOwnProperty","value","isObj","claim","Claim","computeEntryHash","JSON","stringify","credentialType","push","import_ssi_sdk","WellKnownDidIssuer","schema","IWellKnownDidVerifier","methods","addLinkedDomainsService","bind","getDidConfigurationResource","issueDidConfigurationResource","issueDomainLinkageCredential","registerCredentialIssuance","removeCredentialIssuance","saveDidConfigurationResource","credentialIssuances","didConfigurationResourceRelations","dbConnection","args","context","callbackName","undefined","Promise","reject","Error","credentialIssuance","issuances","every","issuance","origin","addServices","map","did","serviceId","all","then","Issuer","mapIssuances","issueCallback","getCredentialIssuance","didConfigurationResource","save","catch","error","message","didConfigurationEntity","linkedDids","linked_dids","credential","createCredentialEntity","normalizeCredential","getRepository","DidConfigurationResourceEntity","transaction","result","findOne","where","relations","didConfigurationResourceFrom","parseDid","URL","protocol","issuanceDate","isNaN","Date","parse","expirationDate","options","saveDomainLinkageCredential","agent","didManagerGet","identifier","services","filter","service","type","ServiceTypesEnum","LINKED_DOMAINS","serviceEndpoint","length","didManagerAddService","id","uuidv4","vc","crsAddCredential","rawDocument","JSON","stringify","credentialRole","CredentialRole","ISSUER","regulationType","RegulationType","NON_REGULATED","kmsKeyRef","identifierMethod","issuerCorrelationId","CredentialMapper","issuerCorrelationIdFromIssuerType","issuer","issuerCorrelationType","CredentialCorrelationType","DID","subjectCorrelationId","subjectCorrelationType","promises","CreateWellknownDidIssuer1661165115000","name","up","queryRunner","query","down","CreateWellknownDidIssuer1661161799000","name","up","queryRunner","query","down","debug","Debug","CreateWellknownDidIssuer1661162010000","name","up","queryRunner","dbType","connection","driver","options","type","mig","CreateWellknownDidIssuer1661165115000","CreateWellknownDidIssuer1661161799000","Promise","reject","down","WellknownDidIssuerMigrations","CreateWellknownDidIssuer1661162010000","schema","require","WellknownDidIssuerEntities","DidConfigurationResourceEntity"]}