@sphereon/ssi-sdk.wellknown-did-issuer 0.33.1-feature.vcdm2.tsup.25 → 0.33.1-feature.vcdm2.tsup.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.cjs +1 -9
- package/dist/index.cjs.map +1 -1
- package/package.json +7 -7
package/dist/index.cjs
CHANGED
|
@@ -33,7 +33,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
33
33
|
|
|
34
34
|
// plugin.schema.json
|
|
35
35
|
var require_plugin_schema = __commonJS({
|
|
36
|
-
"plugin.schema.json"(
|
|
36
|
+
"plugin.schema.json"(exports, module2) {
|
|
37
37
|
module2.exports = {
|
|
38
38
|
IWellKnownDidIssuer: {
|
|
39
39
|
components: {
|
|
@@ -609,12 +609,4 @@ var schema = require_plugin_schema();
|
|
|
609
609
|
var WellknownDidIssuerEntities = [
|
|
610
610
|
DidConfigurationResourceEntity
|
|
611
611
|
];
|
|
612
|
-
// Annotate the CommonJS export names for ESM import in node:
|
|
613
|
-
0 && (module.exports = {
|
|
614
|
-
DidConfigurationResourceEntity,
|
|
615
|
-
WellKnownDidIssuer,
|
|
616
|
-
WellknownDidIssuerEntities,
|
|
617
|
-
WellknownDidIssuerMigrations,
|
|
618
|
-
schema
|
|
619
|
-
});
|
|
620
612
|
//# sourceMappingURL=index.cjs.map
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"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'\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,uBAAAA,UAAAC,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;EACAC;EAUQC;EACAC;EAEjBC,YACUC,cACRC,MACA;SAFQD,eAAAA;SAfDL,SAASA,OAAOO;SAChBN,UAA+B;MACtCO,yBAAyB,KAAKA,wBAAwBC,KAAK,IAAI;MAC/DC,6BAA6B,KAAKA,4BAA4BD,KAAK,IAAI;MACvEE,+BAA+B,KAAKA,8BAA8BF,KAAK,IAAI;MAC3EG,8BAA8B,KAAKA,6BAA6BH,KAAK,IAAI;MACzEI,4BAA4B,KAAKA,2BAA2BJ,KAAK,IAAI;MACrEK,0BAA0B,KAAKA,yBAAyBL,KAAK,IAAI;MACjEM,8BAA8B,KAAKA,6BAA6BN,KAAK,IAAI;IAC3E;SAGiBN,oCAAoC;MAAC;;AAMpD,SAAKD,sBAAuBI,QAAQA,KAAKJ,uBAAwB,CAAC;EACpE;;EAGA,MAAcW,2BAA2BP,MAAoCU,SAAyC;AACpH,QAAI,KAAKd,oBAAoBI,KAAKW,YAAY,MAAMC,QAAW;AAC7D,aAAOC,QAAQC,OAAO,IAAIC,MAAM,0CAA0Cf,KAAKW,YAAY,kBAAkB,CAAA;IAC/G;AAEA,SAAKf,oBAAoBI,KAAKW,YAAY,IAAIX,KAAKgB;EACrD;;EAGA,MAAcR,yBAAyBR,MAAqCU,SAA4C;AACtH,WAAO,OAAO,KAAKd,oBAAoBI,KAAKW,YAAY;EAC1D;;EAGA,MAAcN,8BACZL,MACAU,SACoC;AACpC,QAAI,CAACV,KAAKiB,UAAUC,MAAM,CAACC,aAAgDA,SAASC,WAAWpB,KAAKiB,UAAU,CAAA,EAAGG,MAAM,GAAG;AACxH,aAAOP,QAAQC,OAAOC,MAAM,gEAAA,CAAA;IAC9B;AAGA,UAAMM,cAAcrB,KAAKiB,UAAUK,IAAI,CAACH,aACtC,KAAKjB,wBACH;MACEqB,KAAKJ,SAASI;MACdH,QAAQD,SAASC;MACjBI,WAAWL,SAASK;IACtB,GACAd,OAAAA,CAAAA;AAIJ,WAAOG,QAAQY,IAAIJ,WAAAA,EAAaK,KAAK,YACnC,IAAIC,6BAAAA,mBAAAA,EACDtB,8BAA8B;MAC7BY,WAAW,MAAM,KAAKW,aAAa5B,KAAKiB,SAAS;MACjDY,eACE,OAAO7B,KAAKgB,uBAAuB,WAAW,MAAM,KAAKc,sBAAsB9B,KAAKgB,kBAAkB,IAAIhB,KAAKgB;IACnH,CAAA,EACCU,KAAK,OAAOK,6BAAAA;AACX,UAAI/B,KAAKgC,MAAM;AAEb,cAAM,KAAKvB,6BAA6B;UAAEW,QAAQpB,KAAKiB,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,MAAa1B,6BAA6BT,MAAyCU,SAAyC;AAC1H,UAAM0B,yBAAyB;MAC7BhB,QAAQpB,KAAKoB;MACbV,SAASV,KAAK+B,yBAAyB,UAAA;MACvCM,YAAYrC,KAAK+B,yBAAyBO,YAAYhB,IAAI,CAACiB,eACzDC,uBAAuB,KAAKC,oBAAoBF,UAAAA,CAAAA,CAAAA;IAEpD;AAEA,WAAO,MAAM,KAAKxC,cAAc2C,cAAcC,8BAAAA,EAAgCX,KAAKI,wBAAwB;MAAEQ,aAAa;IAAK,CAAA;EACjI;;EAGA,MAAaxC,4BAA4BJ,MAAwCU,SAA8D;AAC7I,UAAMmC,SAAS,OAAO,MAAM,KAAK9C,cAAc2C,cAAcC,8BAAAA,EAAgCG,QAAQ;MACnGC,OAAO;QAAE3B,QAAQpB,KAAKoB;MAAO;MAC7B4B,WAAW,KAAKnD;IAClB,CAAA;AAEA,QAAI,CAACgD,QAAQ;AACX,aAAOhC,QAAQC,OAAOC,MAAM,mDAAmDf,KAAKoB,MAAM,EAAE,CAAA;IAC9F;AAEA,WAAO6B,6BAA6BJ,MAAAA;EACtC;;EAGA,MAAavC,6BAA6BN,MAAyCU,SAA4D;AAC7I,UAAMa,UAAc2B,2BAASlD,KAAKuB,GAAG,EAAEA;AAEvC,QAAI,IAAI4B,IAAInD,KAAKoB,MAAM,EAAEA,WAAWpB,KAAKoB,QAAQ;AAC/C,aAAOP,QAAQC,OAAOC,MAAM,UAAUf,KAAKoB,MAAM,eAAe,CAAA;IAClE;AAEA,QAAI,IAAI+B,IAAInD,KAAKoB,MAAM,EAAEgC,aAAa,UAAU;AAC9C,aAAOvC,QAAQC,OAAOC,MAAM,UAAUf,KAAKoB,MAAM,qBAAqB,CAAA;IACxE;AAEA,QAAIpB,KAAKqD,gBAAgBC,MAAMC,KAAKC,MAAMxD,KAAKqD,YAAY,CAAA,GAAI;AAC7D,aAAOxC,QAAQC,OAAOC,MAAM,gBAAgBf,KAAKqD,YAAY,sBAAsB,CAAA;IACrF;AAEA,QAAIC,MAAMC,KAAKC,MAAMxD,KAAKyD,cAAc,CAAA,GAAI;AAC1C,aAAO5C,QAAQC,OAAOC,MAAM,kBAAkBf,KAAKyD,cAAc,sBAAsB,CAAA;IACzF;AAEA,UAAMzC,qBACJ,OAAOhB,KAAKgB,uBAAuB,WAC/B,MAAM,KAAKc,sBAAsB9B,KAAKgB,kBAAkB,IACvDhB,KAAKgB;AAEZ,WAAO,IAAIW,6BAAAA,mBAAAA,EACRrB,6BAA6B;MAC5BiB;MACAH,QAAQpB,KAAKoB;MACbiC,cAAcrD,KAAKqD;MACnBI,gBAAgBzD,KAAKyD;MACrBC,SAAS1D,KAAK0D;MACd7B,eAAeb;IACjB,CAAA,EACCU,KAAK,OAAOa,eAAAA;AACX,UAAIvC,KAAKgC,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,MAAajC,wBAAwBF,MAAoCU,SAAyC;AAChH,UAAMa,UAAc2B,2BAASlD,KAAKuB,GAAG,EAAEA;AAEvC,QAAI,IAAI4B,IAAInD,KAAKoB,MAAM,EAAEA,WAAWpB,KAAKoB,QAAQ;AAC/C,aAAOP,QAAQC,OAAOC,MAAM,UAAUf,KAAKoB,MAAM,eAAe,CAAA;IAClE;AAEA,QAAI,IAAI+B,IAAInD,KAAKoB,MAAM,EAAEgC,aAAa,UAAU;AAC9C,aAAOvC,QAAQC,OAAOC,MAAM,UAAUf,KAAKoB,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,oBAAoBrE,KAAKoB;MAAM,EACjHkD,WAAW,GACb;AACA,cAAM5D,QAAQkD,MAAMW,qBAAqB;UACvChD,KAAKuC,WAAWvC;UAChB0C,SAAS;YACPO,IAAIxE,KAAKwB,iBAAaiD,YAAAA,IAAAA;YACtBP,MAAMC,8CAAiBC;;YAEvBC,iBAAiBrE,KAAKoB;UACxB;QACF,CAAA;MACF;IACF,CAAA,EACCa,MAAM,CAACC,UAAiBrB,QAAQC,OAAOC,MAAM,+CAA+Cf,KAAKuB,GAAG,YAAYW,MAAMC,OAAO,EAAE,CAAA,CAAA;EACpI;EAEA,MAAcL,sBAAsBnB,cAAiD;AACnF,QAAI,KAAKf,oBAAoBe,YAAAA,MAAkBC,QAAW;AACxD,aAAOC,QAAQC,OAAO,IAAIC,MAAM,mDAAmDJ,YAAAA,EAAc,CAAA;IACnG;AAEA,WAAO,KAAKf,oBAAoBe,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":["exports","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","methods","credentialIssuances","didConfigurationResourceRelations","constructor","dbConnection","args","IWellKnownDidVerifier","addLinkedDomainsService","bind","getDidConfigurationResource","issueDidConfigurationResource","issueDomainLinkageCredential","registerCredentialIssuance","removeCredentialIssuance","saveDidConfigurationResource","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"]}
|
|
1
|
+
{"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'\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","methods","credentialIssuances","didConfigurationResourceRelations","constructor","dbConnection","args","IWellKnownDidVerifier","addLinkedDomainsService","bind","getDidConfigurationResource","issueDidConfigurationResource","issueDomainLinkageCredential","registerCredentialIssuance","removeCredentialIssuance","saveDidConfigurationResource","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"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.wellknown-did-issuer",
|
|
3
|
-
"version": "0.33.1-feature.vcdm2.tsup.
|
|
3
|
+
"version": "0.33.1-feature.vcdm2.tsup.27+98159384",
|
|
4
4
|
"source": "src/index.ts",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "./dist/index.cjs",
|
|
@@ -25,10 +25,10 @@
|
|
|
25
25
|
"build": "tsup --config ../../tsup.config.ts --tsconfig ../../tsconfig.tsup.json"
|
|
26
26
|
},
|
|
27
27
|
"dependencies": {
|
|
28
|
-
"@sphereon/ssi-sdk.core": "^0.33.1-feature.vcdm2.tsup.
|
|
29
|
-
"@sphereon/ssi-sdk.credential-store": "^0.33.1-feature.vcdm2.tsup.
|
|
30
|
-
"@sphereon/ssi-sdk.data-store": "^0.33.1-feature.vcdm2.tsup.
|
|
31
|
-
"@sphereon/ssi-types": "^0.33.1-feature.vcdm2.tsup.
|
|
28
|
+
"@sphereon/ssi-sdk.core": "^0.33.1-feature.vcdm2.tsup.27+98159384",
|
|
29
|
+
"@sphereon/ssi-sdk.credential-store": "^0.33.1-feature.vcdm2.tsup.27+98159384",
|
|
30
|
+
"@sphereon/ssi-sdk.data-store": "^0.33.1-feature.vcdm2.tsup.27+98159384",
|
|
31
|
+
"@sphereon/ssi-types": "^0.33.1-feature.vcdm2.tsup.27+98159384",
|
|
32
32
|
"@sphereon/wellknown-dids-client": "^0.1.3",
|
|
33
33
|
"@veramo/data-store": "4.2.0",
|
|
34
34
|
"@veramo/utils": "4.2.0",
|
|
@@ -39,7 +39,7 @@
|
|
|
39
39
|
"uuid": "^9.0.1"
|
|
40
40
|
},
|
|
41
41
|
"devDependencies": {
|
|
42
|
-
"@sphereon/ssi-sdk.agent-config": "^0.33.1-feature.vcdm2.tsup.
|
|
42
|
+
"@sphereon/ssi-sdk.agent-config": "^0.33.1-feature.vcdm2.tsup.27+98159384",
|
|
43
43
|
"@types/express": "^4.17.21",
|
|
44
44
|
"@types/uuid": "^9.0.8",
|
|
45
45
|
"@veramo/did-manager": "4.2.0",
|
|
@@ -72,5 +72,5 @@
|
|
|
72
72
|
"Well-Known DIDs",
|
|
73
73
|
"Verifiable Credential"
|
|
74
74
|
],
|
|
75
|
-
"gitHead": "
|
|
75
|
+
"gitHead": "98159384a7c7c6bcace0167d35ac9a87a85ebe31"
|
|
76
76
|
}
|