{"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":"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","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"]}