@sphereon/ssi-sdk.oid4vci-issuer-store 0.36.1-feature.SSISDK.89.metadata.persistence.103 → 0.36.1-feature.fides.fixes.111

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 CHANGED
@@ -444,7 +444,17 @@ var OID4VCIStore = class {
444
444
  }));
445
445
  }
446
446
  if (opts && Array.isArray(opts?.importMetadatas)) {
447
- void this.importMetadatas(opts.importMetadatas);
447
+ opts.importMetadatas.forEach((metaImport) => {
448
+ const meta = metaImport;
449
+ void this.oid4vciStorePersistMetadata({
450
+ metadataType: meta.metadataType,
451
+ metadata: meta.metadata,
452
+ storeId: meta.storeId ?? this.defaultStoreId,
453
+ correlationId: meta.correlationId,
454
+ namespace: meta.namespace ?? this.defaultNamespace,
455
+ overwriteExisting: meta.overwriteExisting === void 0 ? true : meta.overwriteExisting
456
+ });
457
+ });
448
458
  }
449
459
  if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {
450
460
  this._optionStores = opts.issuerOptsStores;
@@ -472,73 +482,6 @@ var OID4VCIStore = class {
472
482
  importIssuerOpts(importOpts) {
473
483
  importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt));
474
484
  }
475
- async importMetadatas(metadataImports) {
476
- for (const metaImport of metadataImports) {
477
- const meta = metaImport;
478
- const storeId = meta.storeId ?? this.defaultStoreId;
479
- const namespace = meta.namespace ?? this.defaultNamespace;
480
- const correlationId = meta.correlationId;
481
- const existingMetadata = await this.oid4vciStoreGetMetadata({
482
- metadataType: meta.metadataType,
483
- correlationId,
484
- storeId,
485
- namespace
486
- });
487
- let metadataToPersist;
488
- if (existingMetadata) {
489
- if (meta.overwriteExisting === false) {
490
- continue;
491
- }
492
- metadataToPersist = this.deepMerge(existingMetadata, meta.metadata);
493
- } else {
494
- metadataToPersist = meta.metadata;
495
- }
496
- await this.oid4vciStorePersistMetadata({
497
- metadataType: meta.metadataType,
498
- metadata: metadataToPersist,
499
- storeId,
500
- correlationId,
501
- namespace,
502
- // We set this to true because we have already handled the merge/overwrite logic above.
503
- // We are now saving the final, combined object.
504
- overwriteExisting: true
505
- });
506
- }
507
- }
508
- /**
509
- * Generic Deep Merge.
510
- * - Recursively merges objects.
511
- * - Overwrites primitives and arrays (Arrays are treated as values).
512
- * - Naturally handles 'credential_configurations_supported' by merging the keys of the map.
513
- */
514
- deepMerge(existing, incoming) {
515
- if (!incoming) {
516
- return existing;
517
- }
518
- if (!existing) {
519
- return incoming;
520
- }
521
- const merged = {
522
- ...existing
523
- };
524
- for (const key in incoming) {
525
- if (!Object.prototype.hasOwnProperty.call(incoming, key)) {
526
- continue;
527
- }
528
- const incomingValue = incoming[key];
529
- const existingValue = existing[key];
530
- if (this.isPlainObject(incomingValue) && this.isPlainObject(existingValue)) {
531
- merged[key] = this.deepMerge(existingValue, incomingValue);
532
- } else if (incomingValue !== void 0) {
533
- merged[key] = incomingValue;
534
- }
535
- }
536
- return merged;
537
- }
538
- // Type guard to check if value is a plain object (and not an array or null)
539
- isPlainObject(value) {
540
- return typeof value === "object" && value !== null && !Array.isArray(value);
541
- }
542
485
  async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }) {
543
486
  return this.store({
544
487
  stores: this._optionStores,
@@ -1 +1 @@
1
- {"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/OID4VCIStore.ts"],"sourcesContent":["{\n \"IDidAuthSiopOpAuthenticator\": {\n \"components\": {\n \"schemas\": {\n \"IGetSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSessionForSiop } \"\n },\n \"IRegisterSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"identifier\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"alias\": {\n \"type\": \"string\"\n },\n \"provider\": {\n \"type\": \"string\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n },\n \"services\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"did\", \"provider\", \"keys\", \"services\"]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"expiresIn\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"identifier\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.registerSessionForSiop } \"\n },\n \"IRemoveSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.removeSessionForSiop } \"\n },\n \"IAuthenticateWithSiopArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.authenticateWithSiop } \"\n },\n \"IResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": true\n },\n \"required\": [\"status\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.authenticateWithSiop & DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n },\n \"IGetSiopAuthenticationRequestFromRpArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"type\": \"string\"\n },\n \"requestPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"registration\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"jwt\", \"requestPayload\", \"registration\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"IGetSiopAuthenticationRequestDetailsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"credentialFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IAuthRequestDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"alsoKnownAs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"vpResponseOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"id\", \"vpResponseOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IVerifySiopAuthenticationRequestUriArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"ParsedAuthenticationRequestURI\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"VerifiedAuthorizationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"presentationDefinitions\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifyOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"payload\", \"verifyOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"ISendSiopAuthenticationResponseArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifiablePresentationResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n }\n },\n \"methods\": {\n \"getSessionForSiop\": {\n \"description\": \"Get SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"registerSessionForSiop\": {\n \"description\": \"Register SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRegisterSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"removeSessionForSiop\": {\n \"description\": \"Remove SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRemoveSiopSessionArgs\"\n },\n \"returnType\": \"boolean\"\n },\n \"authenticateWithSiop\": {\n \"description\": \"Authenticate using DID Auth SIOP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IAuthenticateWithSiopArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/Response\"\n }\n },\n \"getSiopAuthenticationRequestFromRP\": {\n \"description\": \"Get authentication request from RP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestFromRpArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ParsedAuthenticationRequestURI\"\n }\n },\n \"getSiopAuthenticationRequestDetails\": {\n \"description\": \"Get authentication request details\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestDetailsArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IAuthRequestDetails\"\n }\n },\n \"verifySiopAuthenticationRequestURI\": {\n \"description\": \"Verify authentication request URI\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IVerifySiopAuthenticationRequestUriArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerifiedAuthorizationRequest\"\n }\n },\n \"sendSiopAuthenticationResponse\": {\n \"description\": \"Send authentication response\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISendSiopAuthenticationResponseArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IRequiredContext\"\n }\n }\n }\n }\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { OID4VCIStore, oid4vciStoreMethods } from './agent/OID4VCIStore'\nexport * from './types/IOID4VCIStore'\n","import { AuthorizationServerMetadata, IssuerMetadata } from '@sphereon/oid4vci-common'\nimport { IKeyValueStore, IValueData, KeyValueStore, ValueStoreType } from '@sphereon/ssi-sdk.kv-store-temp'\nimport { IAgentPlugin } from '@veramo/core'\nimport {\n IIssuerDefaultOpts,\n IIssuerMetadataImportArgs,\n IIssuerOptions,\n IIssuerOptsImportArgs,\n IIssuerOptsPersistArgs,\n IMetadataImportArgs,\n IMetadataPersistArgs,\n Ioid4vciStoreClearArgs,\n Ioid4vciStoreExistsArgs,\n IOid4vciStoreGetArgs,\n IOid4vciStoreListArgs,\n IOID4VCIStoreOpts,\n Ioid4vciStoreRemoveArgs,\n OptionalIssuerMetadata,\n OptionalIssuerMetadataValue,\n} from '../index'\n\nimport { IOID4VCIStore } from '../types/IOID4VCIStore'\n\nexport const oid4vciStoreMethods: Array<string> = [\n 'oid4vciStoreDefaultMetadata',\n 'oid4vciStoreDefaultIssuerOptions',\n 'oid4vciStoreDefaultStoreId',\n 'oid4vciStoreDefaultNamespace',\n 'oid4vciStoreGetIssuerOpts',\n 'oid4vciStoreHasIssuerOpts',\n 'oid4vciStorePersistIssuerOpts',\n 'oid4vciStoreRemoveIssuerOpts',\n 'oid4vciStoreClearAllIssuerOpts',\n 'oid4vciStoreGetMetadata',\n 'oid4vciStoreListMetadata',\n 'oid4vciStoreHasMetadata',\n 'oid4vciStorePersistMetadata',\n 'oid4vciStoreRemoveMetadata',\n 'oid4vciStoreClearAllMetadata',\n]\n\nexport class OID4VCIStore implements IAgentPlugin {\n get defaultOpts(): IIssuerDefaultOpts | undefined {\n return this._defaultOpts\n }\n\n set defaultOpts(value: IIssuerDefaultOpts | undefined) {\n this._defaultOpts = value\n }\n\n private readonly _issuerMetadataStores: Map<string, IKeyValueStore<IssuerMetadata>>\n private readonly _authorizationServerMetadataStores: Map<string, IKeyValueStore<AuthorizationServerMetadata>>\n private readonly _optionStores: Map<string, IKeyValueStore<IIssuerOptions>>\n private readonly defaultStoreId: string\n private readonly defaultNamespace: string\n\n private _defaultOpts?: IIssuerDefaultOpts\n\n readonly methods: IOID4VCIStore = {\n oid4vciStoreDefaultMetadata: this.oid4vciStoreDefaultMetadata.bind(this),\n oid4vciStoreDefaultIssuerOptions: this.oid4vciStoreIssuerOptions.bind(this),\n oid4vciStoreDefaultStoreId: this.oid4vciStoreDefaultStoreId.bind(this),\n oid4vciStoreDefaultNamespace: this.oid4vciStoreDefaultNamespace.bind(this),\n\n oid4vciStoreGetIssuerOpts: this.oid4vciStoreGetIssuerOpts.bind(this),\n oid4vciStoreHasIssuerOpts: this.oid4vciStoreHasIssuerOpts.bind(this),\n oid4vciStorePersistIssuerOpts: this.oid4vciStorePersistIssuerOpts.bind(this),\n oid4vciStoreRemoveIssuerOpts: this.oid4vciStoreRemoveIssuerOpts.bind(this),\n oid4vciStoreClearAllIssuerOpts: this.oid4vciStoreClearAllIssuerOpts.bind(this),\n\n oid4vciStoreGetMetadata: this.oid4vciStoreGetMetadata.bind(this),\n oid4vciStoreListMetadata: this.oid4vciStoreListMetadata.bind(this),\n oid4vciStoreHasMetadata: this.oid4vciStoreHasMetadata.bind(this),\n oid4vciStorePersistMetadata: this.oid4vciStorePersistMetadata.bind(this),\n oid4vciStoreRemoveMetadata: this.oid4vciStoreRemoveMetadata.bind(this),\n oid4vciStoreClearAllMetadata: this.oid4vciStoreClearAllMetadata.bind(this),\n }\n\n constructor(opts: IOID4VCIStoreOpts) {\n this.defaultStoreId = opts.defaultStore ?? '_default'\n this.defaultNamespace = opts.defaultNamespace ?? 'oid4vci'\n if (opts.defaultOpts) {\n this._defaultOpts = opts.defaultOpts\n }\n if (opts?.issuerMetadataStores && opts.issuerMetadataStores instanceof Map) {\n this._issuerMetadataStores = opts.issuerMetadataStores\n } else if (opts?.issuerMetadataStores) {\n this._issuerMetadataStores = new Map().set(this.defaultStoreId, opts.issuerMetadataStores)\n } else {\n this._issuerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IssuerMetadata>(),\n }),\n )\n }\n if (opts?.authorizationServerMetadataStores && opts.authorizationServerMetadataStores instanceof Map) {\n this._authorizationServerMetadataStores = opts.authorizationServerMetadataStores\n } else if (opts?.authorizationServerMetadataStores) {\n this._authorizationServerMetadataStores = new Map().set(this.defaultStoreId, opts.authorizationServerMetadataStores)\n } else {\n this._authorizationServerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, AuthorizationServerMetadata>(),\n }),\n )\n }\n\n if (opts && Array.isArray(opts?.importMetadatas)) {\n void this.importMetadatas(opts.importMetadatas)\n }\n\n if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {\n this._optionStores = opts.issuerOptsStores\n } else if (opts?.issuerOptsStores) {\n this._optionStores = new Map().set(this.defaultStoreId, opts.issuerOptsStores)\n } else {\n this._optionStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IIssuerOptions>(),\n }),\n )\n }\n if (opts && Array.isArray(opts?.importIssuerOpts)) {\n opts.importIssuerOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n }\n\n private async oid4vciStoreGetIssuerOpts({ correlationId, storeId, namespace }: IOid4vciStoreGetArgs): Promise<IIssuerOptions | undefined> {\n return (\n (await this.store({ stores: this._optionStores, storeId }).get(\n this.prefix({\n namespace,\n correlationId,\n }),\n )) ?? this.defaultOpts\n )\n }\n\n public importIssuerOpts(importOpts: IIssuerOptsImportArgs[]) {\n importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n\n private async importMetadatas(metadataImports: IMetadataImportArgs[]): Promise<void> {\n for (const metaImport of metadataImports) {\n const meta = metaImport as IIssuerMetadataImportArgs\n const storeId = meta.storeId ?? this.defaultStoreId\n const namespace = meta.namespace ?? this.defaultNamespace\n const correlationId = meta.correlationId\n\n const existingMetadata = await this.oid4vciStoreGetMetadata({\n metadataType: meta.metadataType,\n correlationId,\n storeId,\n namespace,\n })\n\n let metadataToPersist: IssuerMetadata | AuthorizationServerMetadata\n\n if (existingMetadata) {\n // If overwriteExisting is explicitly false, we skip this import if data exists\n if (meta.overwriteExisting === false) {\n continue\n }\n // Otherwise, we perform a deep merge.\n metadataToPersist = this.deepMerge(existingMetadata, meta.metadata)\n } else {\n metadataToPersist = meta.metadata\n }\n\n await this.oid4vciStorePersistMetadata({\n metadataType: meta.metadataType,\n metadata: metadataToPersist,\n storeId,\n correlationId,\n namespace,\n // We set this to true because we have already handled the merge/overwrite logic above.\n // We are now saving the final, combined object.\n overwriteExisting: true,\n })\n }\n }\n\n /**\n * Generic Deep Merge.\n * - Recursively merges objects.\n * - Overwrites primitives and arrays (Arrays are treated as values).\n * - Naturally handles 'credential_configurations_supported' by merging the keys of the map.\n */\n private deepMerge<T extends Record<string, any>>(existing: T, incoming: T): T {\n if (!incoming) {\n return existing\n }\n if (!existing) {\n return incoming\n }\n\n const merged = { ...existing }\n\n for (const key in incoming) {\n if (!Object.prototype.hasOwnProperty.call(incoming, key)) {\n continue\n }\n\n const incomingValue = incoming[key]\n const existingValue = existing[key]\n\n if (this.isPlainObject(incomingValue) && this.isPlainObject(existingValue)) {\n // Recursively merge objects\n merged[key] = this.deepMerge(existingValue, incomingValue) as T[Extract<keyof T, string>]\n } else if (incomingValue !== undefined) {\n // Overwrite primitives, arrays, or if existing value was undefined\n merged[key] = incomingValue\n }\n }\n\n return merged\n }\n\n // Type guard to check if value is a plain object (and not an array or null)\n private isPlainObject(value: unknown): value is Record<string, any> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n }\n\n private async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).has(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStorePersistIssuerOpts(args: IIssuerOptsPersistArgs): Promise<IValueData<IIssuerOptions>> {\n const storeId = this.storeIdStr(args)\n const namespace = this.namespaceStr(args)\n const { correlationId, issuerOpts, ttl } = args\n if (args?.validation !== false) {\n //todo\n }\n const existing = await this.store({ stores: this._optionStores, storeId }).getAsValueData(\n this.prefix({\n namespace,\n correlationId,\n }),\n )\n if (!existing.value || (existing.value && args.overwriteExisting !== false)) {\n return await this.store({ stores: this._optionStores, storeId }).set(\n this.prefix({\n namespace,\n correlationId,\n }),\n issuerOpts,\n ttl,\n )\n }\n return existing\n }\n\n private async oid4vciStoreRemoveIssuerOpts({ storeId, correlationId, namespace }: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).delete(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStoreClearAllIssuerOpts({ storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n return await this.store({ stores: this._optionStores, storeId })\n .clear()\n .then(() => true)\n }\n\n private async oid4vciStoreGetMetadata({\n metadataType,\n correlationId,\n storeId,\n namespace,\n }: IOid4vciStoreGetArgs): Promise<IssuerMetadata | AuthorizationServerMetadata | undefined> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n }\n return undefined\n }\n\n private async oid4vciStoreListMetadata({ metadataType, storeId, namespace }: IOid4vciStoreListArgs): Promise<Array<OptionalIssuerMetadata>> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n }\n return []\n }\n\n private async oid4vciStoreHasMetadata({ metadataType, correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n }\n return false\n }\n\n private async oid4vciStorePersistMetadata(args: IMetadataPersistArgs): Promise<OptionalIssuerMetadataValue> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n const { correlationId, metadata, ttl, metadataType } = args\n\n if (args?.validation !== false) {\n //todo\n }\n\n switch (metadataType) {\n case 'authorizationServer':\n const existingAuth = await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingAuth.value || (existingAuth.value && args.overwriteExisting !== false)) {\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as AuthorizationServerMetadata, ttl)\n }\n return existingAuth\n case 'issuer':\n const existingIssuer = await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingIssuer.value || (existingIssuer.value && args.overwriteExisting !== false)) {\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as IssuerMetadata, ttl)\n }\n return existingIssuer\n }\n return undefined\n }\n\n private async oid4vciStoreRemoveMetadata(args: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n\n switch (args.metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n }\n return false\n }\n\n private async oid4vciStoreClearAllMetadata({ metadataType, storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n case 'issuer':\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n }\n return false\n }\n\n private oid4vciStoreIssuerOptions(): Promise<IKeyValueStore<IIssuerOptions>> {\n return Promise.resolve(this.store({ stores: this._optionStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultMetadata(): Promise<IKeyValueStore<IssuerMetadata>> {\n return Promise.resolve(this.store({ stores: this._issuerMetadataStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultStoreId(): Promise<string> {\n return Promise.resolve(this.defaultStoreId)\n }\n\n private oid4vciStoreDefaultNamespace(): Promise<string> {\n return Promise.resolve(this.defaultNamespace)\n }\n\n private store<T extends ValueStoreType>(args: { stores: Map<string, IKeyValueStore<T>>; storeId?: string }): IKeyValueStore<T> {\n const storeId = this.storeIdStr({ storeId: args.storeId })\n const store = args.stores.get(storeId)\n if (!store) {\n throw Error(`Could not get issuer metadata store: ${storeId}`)\n }\n return store\n }\n\n private storeIdStr({ storeId }: { storeId?: string }): string {\n return storeId ?? this.defaultStoreId\n }\n\n private namespaceStr({ namespace }: { namespace?: string }): string {\n return namespace ?? this.defaultNamespace\n }\n\n private prefix({ namespace, correlationId }: { namespace?: string; correlationId: string }): string {\n return `${this.namespaceStr({ namespace })}:${correlationId}`\n }\n}\n"],"mappings":"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","names":["module","oid4vciStoreMethods","OID4VCIStore","defaultOpts","_defaultOpts","value","_issuerMetadataStores","_authorizationServerMetadataStores","_optionStores","defaultStoreId","defaultNamespace","methods","oid4vciStoreDefaultMetadata","bind","oid4vciStoreDefaultIssuerOptions","oid4vciStoreIssuerOptions","oid4vciStoreDefaultStoreId","oid4vciStoreDefaultNamespace","oid4vciStoreGetIssuerOpts","oid4vciStoreHasIssuerOpts","oid4vciStorePersistIssuerOpts","oid4vciStoreRemoveIssuerOpts","oid4vciStoreClearAllIssuerOpts","oid4vciStoreGetMetadata","oid4vciStoreListMetadata","oid4vciStoreHasMetadata","oid4vciStorePersistMetadata","oid4vciStoreRemoveMetadata","oid4vciStoreClearAllMetadata","opts","defaultStore","issuerMetadataStores","Map","set","KeyValueStore","namespace","store","authorizationServerMetadataStores","Array","isArray","importMetadatas","issuerOptsStores","importIssuerOpts","forEach","opt","correlationId","storeId","stores","get","prefix","importOpts","metadataImports","metaImport","meta","existingMetadata","metadataType","metadataToPersist","overwriteExisting","deepMerge","metadata","existing","incoming","merged","key","Object","prototype","hasOwnProperty","call","incomingValue","existingValue","isPlainObject","undefined","has","args","storeIdStr","namespaceStr","issuerOpts","ttl","validation","getAsValueData","delete","clear","then","getMany","existingAuth","existingIssuer","Promise","resolve","Error","schema","require"]}
1
+ {"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/OID4VCIStore.ts"],"sourcesContent":["{\n \"IDidAuthSiopOpAuthenticator\": {\n \"components\": {\n \"schemas\": {\n \"IGetSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSessionForSiop } \"\n },\n \"IRegisterSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"identifier\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"alias\": {\n \"type\": \"string\"\n },\n \"provider\": {\n \"type\": \"string\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n },\n \"services\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"did\", \"provider\", \"keys\", \"services\"]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"expiresIn\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"identifier\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.registerSessionForSiop } \"\n },\n \"IRemoveSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.removeSessionForSiop } \"\n },\n \"IAuthenticateWithSiopArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.authenticateWithSiop } \"\n },\n \"IResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": true\n },\n \"required\": [\"status\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.authenticateWithSiop & DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n },\n \"IGetSiopAuthenticationRequestFromRpArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"type\": \"string\"\n },\n \"requestPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"registration\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"jwt\", \"requestPayload\", \"registration\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"IGetSiopAuthenticationRequestDetailsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"credentialFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IAuthRequestDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"alsoKnownAs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"vpResponseOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"id\", \"vpResponseOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IVerifySiopAuthenticationRequestUriArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"ParsedAuthenticationRequestURI\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"VerifiedAuthorizationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"presentationDefinitions\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifyOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"payload\", \"verifyOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"ISendSiopAuthenticationResponseArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifiablePresentationResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n }\n },\n \"methods\": {\n \"getSessionForSiop\": {\n \"description\": \"Get SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"registerSessionForSiop\": {\n \"description\": \"Register SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRegisterSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"removeSessionForSiop\": {\n \"description\": \"Remove SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRemoveSiopSessionArgs\"\n },\n \"returnType\": \"boolean\"\n },\n \"authenticateWithSiop\": {\n \"description\": \"Authenticate using DID Auth SIOP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IAuthenticateWithSiopArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/Response\"\n }\n },\n \"getSiopAuthenticationRequestFromRP\": {\n \"description\": \"Get authentication request from RP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestFromRpArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ParsedAuthenticationRequestURI\"\n }\n },\n \"getSiopAuthenticationRequestDetails\": {\n \"description\": \"Get authentication request details\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestDetailsArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IAuthRequestDetails\"\n }\n },\n \"verifySiopAuthenticationRequestURI\": {\n \"description\": \"Verify authentication request URI\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IVerifySiopAuthenticationRequestUriArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerifiedAuthorizationRequest\"\n }\n },\n \"sendSiopAuthenticationResponse\": {\n \"description\": \"Send authentication response\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISendSiopAuthenticationResponseArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IRequiredContext\"\n }\n }\n }\n }\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { OID4VCIStore, oid4vciStoreMethods } from './agent/OID4VCIStore'\nexport * from './types/IOID4VCIStore'\n","import { AuthorizationServerMetadata, IssuerMetadata } from '@sphereon/oid4vci-common'\nimport { IKeyValueStore, IValueData, KeyValueStore, ValueStoreType } from '@sphereon/ssi-sdk.kv-store-temp'\nimport { IAgentPlugin } from '@veramo/core'\nimport {\n IIssuerDefaultOpts,\n IIssuerMetadataImportArgs,\n IIssuerOptions,\n IIssuerOptsImportArgs,\n IIssuerOptsPersistArgs,\n IMetadataImportArgs,\n IMetadataPersistArgs,\n Ioid4vciStoreClearArgs,\n Ioid4vciStoreExistsArgs,\n IOid4vciStoreGetArgs,\n IOid4vciStoreListArgs,\n IOID4VCIStoreOpts,\n Ioid4vciStoreRemoveArgs,\n OptionalIssuerMetadata,\n OptionalIssuerMetadataValue,\n} from '../index'\n\nimport { IOID4VCIStore } from '../types/IOID4VCIStore'\n\nexport const oid4vciStoreMethods: Array<string> = [\n 'oid4vciStoreDefaultMetadata',\n 'oid4vciStoreDefaultIssuerOptions',\n 'oid4vciStoreDefaultStoreId',\n 'oid4vciStoreDefaultNamespace',\n 'oid4vciStoreGetIssuerOpts',\n 'oid4vciStoreHasIssuerOpts',\n 'oid4vciStorePersistIssuerOpts',\n 'oid4vciStoreRemoveIssuerOpts',\n 'oid4vciStoreClearAllIssuerOpts',\n 'oid4vciStoreGetMetadata',\n 'oid4vciStoreListMetadata',\n 'oid4vciStoreHasMetadata',\n 'oid4vciStorePersistMetadata',\n 'oid4vciStoreRemoveMetadata',\n 'oid4vciStoreClearAllMetadata'\n]\n\nexport class OID4VCIStore implements IAgentPlugin {\n get defaultOpts(): IIssuerDefaultOpts | undefined {\n return this._defaultOpts\n }\n\n set defaultOpts(value: IIssuerDefaultOpts | undefined) {\n this._defaultOpts = value\n }\n\n private readonly _issuerMetadataStores: Map<string, IKeyValueStore<IssuerMetadata>>\n private readonly _authorizationServerMetadataStores: Map<string, IKeyValueStore<AuthorizationServerMetadata>>\n private readonly _optionStores: Map<string, IKeyValueStore<IIssuerOptions>>\n private readonly defaultStoreId: string\n private readonly defaultNamespace: string\n\n private _defaultOpts?: IIssuerDefaultOpts\n\n readonly methods: IOID4VCIStore = {\n oid4vciStoreDefaultMetadata: this.oid4vciStoreDefaultMetadata.bind(this),\n oid4vciStoreDefaultIssuerOptions: this.oid4vciStoreIssuerOptions.bind(this),\n oid4vciStoreDefaultStoreId: this.oid4vciStoreDefaultStoreId.bind(this),\n oid4vciStoreDefaultNamespace: this.oid4vciStoreDefaultNamespace.bind(this),\n\n oid4vciStoreGetIssuerOpts: this.oid4vciStoreGetIssuerOpts.bind(this),\n oid4vciStoreHasIssuerOpts: this.oid4vciStoreHasIssuerOpts.bind(this),\n oid4vciStorePersistIssuerOpts: this.oid4vciStorePersistIssuerOpts.bind(this),\n oid4vciStoreRemoveIssuerOpts: this.oid4vciStoreRemoveIssuerOpts.bind(this),\n oid4vciStoreClearAllIssuerOpts: this.oid4vciStoreClearAllIssuerOpts.bind(this),\n\n oid4vciStoreGetMetadata: this.oid4vciStoreGetMetadata.bind(this),\n oid4vciStoreListMetadata: this.oid4vciStoreListMetadata.bind(this),\n oid4vciStoreHasMetadata: this.oid4vciStoreHasMetadata.bind(this),\n oid4vciStorePersistMetadata: this.oid4vciStorePersistMetadata.bind(this),\n oid4vciStoreRemoveMetadata: this.oid4vciStoreRemoveMetadata.bind(this),\n oid4vciStoreClearAllMetadata: this.oid4vciStoreClearAllMetadata.bind(this),\n }\n\n constructor(opts: IOID4VCIStoreOpts) {\n this.defaultStoreId = opts.defaultStore ?? '_default'\n this.defaultNamespace = opts.defaultNamespace ?? 'oid4vci'\n if (opts.defaultOpts) {\n this._defaultOpts = opts.defaultOpts\n }\n if (opts?.issuerMetadataStores && opts.issuerMetadataStores instanceof Map) {\n this._issuerMetadataStores = opts.issuerMetadataStores\n } else if (opts?.issuerMetadataStores) {\n this._issuerMetadataStores = new Map().set(this.defaultStoreId, opts.issuerMetadataStores)\n } else {\n this._issuerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IssuerMetadata>(),\n }),\n )\n }\n if (opts?.authorizationServerMetadataStores && opts.authorizationServerMetadataStores instanceof Map) {\n this._authorizationServerMetadataStores = opts.authorizationServerMetadataStores\n } else if (opts?.authorizationServerMetadataStores) {\n this._authorizationServerMetadataStores = new Map().set(this.defaultStoreId, opts.authorizationServerMetadataStores)\n } else {\n this._authorizationServerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, AuthorizationServerMetadata>(),\n }),\n )\n }\n\n if (opts && Array.isArray(opts?.importMetadatas)) {\n opts.importMetadatas.forEach((metaImport: IMetadataImportArgs) => {\n const meta = metaImport as IIssuerMetadataImportArgs\n void this.oid4vciStorePersistMetadata({\n metadataType: meta.metadataType,\n metadata: meta.metadata,\n storeId: meta.storeId ?? this.defaultStoreId,\n correlationId: meta.correlationId,\n namespace: meta.namespace ?? this.defaultNamespace,\n overwriteExisting: meta.overwriteExisting === undefined ? true : meta.overwriteExisting,\n })\n })\n }\n\n if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {\n this._optionStores = opts.issuerOptsStores\n } else if (opts?.issuerOptsStores) {\n this._optionStores = new Map().set(this.defaultStoreId, opts.issuerOptsStores)\n } else {\n this._optionStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IIssuerOptions>(),\n }),\n )\n }\n if (opts && Array.isArray(opts?.importIssuerOpts)) {\n opts.importIssuerOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n }\n\n private async oid4vciStoreGetIssuerOpts({ correlationId, storeId, namespace }: IOid4vciStoreGetArgs): Promise<IIssuerOptions | undefined> {\n return (\n (await this.store({ stores: this._optionStores, storeId }).get(\n this.prefix({\n namespace,\n correlationId,\n }),\n )) ?? this.defaultOpts\n )\n }\n\n public importIssuerOpts(importOpts: IIssuerOptsImportArgs[]) {\n importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n\n private async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).has(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStorePersistIssuerOpts(args: IIssuerOptsPersistArgs): Promise<IValueData<IIssuerOptions>> {\n const storeId = this.storeIdStr(args)\n const namespace = this.namespaceStr(args)\n const { correlationId, issuerOpts, ttl } = args\n if (args?.validation !== false) {\n //todo\n }\n const existing = await this.store({ stores: this._optionStores, storeId }).getAsValueData(\n this.prefix({\n namespace,\n correlationId,\n }),\n )\n if (!existing.value || (existing.value && args.overwriteExisting !== false)) {\n return await this.store({ stores: this._optionStores, storeId }).set(\n this.prefix({\n namespace,\n correlationId,\n }),\n issuerOpts,\n ttl,\n )\n }\n return existing\n }\n\n private async oid4vciStoreRemoveIssuerOpts({ storeId, correlationId, namespace }: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).delete(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStoreClearAllIssuerOpts({ storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n return await this.store({ stores: this._optionStores, storeId })\n .clear()\n .then(() => true)\n }\n\n private async oid4vciStoreGetMetadata({\n metadataType,\n correlationId,\n storeId,\n namespace,\n }: IOid4vciStoreGetArgs): Promise<IssuerMetadata | AuthorizationServerMetadata | undefined> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n }\n return undefined\n }\n\n private async oid4vciStoreListMetadata({ metadataType, storeId, namespace }: IOid4vciStoreListArgs): Promise<Array<OptionalIssuerMetadata>> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n }\n return []\n }\n\n private async oid4vciStoreHasMetadata({ metadataType, correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n }\n return false\n }\n\n private async oid4vciStorePersistMetadata(args: IMetadataPersistArgs): Promise<OptionalIssuerMetadataValue> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n const { correlationId, metadata, ttl, metadataType } = args\n\n if (args?.validation !== false) {\n //todo\n }\n\n switch (metadataType) {\n case 'authorizationServer':\n const existingAuth = await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingAuth.value || (existingAuth.value && args.overwriteExisting !== false)) {\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as AuthorizationServerMetadata, ttl)\n }\n return existingAuth\n case 'issuer':\n const existingIssuer = await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingIssuer.value || (existingIssuer.value && args.overwriteExisting !== false)) {\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as IssuerMetadata, ttl)\n }\n return existingIssuer\n }\n return undefined\n }\n\n private async oid4vciStoreRemoveMetadata(args: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n\n switch (args.metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n }\n return false\n }\n\n private async oid4vciStoreClearAllMetadata({ metadataType, storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n case 'issuer':\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n }\n return false\n }\n\n private oid4vciStoreIssuerOptions(): Promise<IKeyValueStore<IIssuerOptions>> {\n return Promise.resolve(this.store({ stores: this._optionStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultMetadata(): Promise<IKeyValueStore<IssuerMetadata>> {\n return Promise.resolve(this.store({ stores: this._issuerMetadataStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultStoreId(): Promise<string> {\n return Promise.resolve(this.defaultStoreId)\n }\n\n private oid4vciStoreDefaultNamespace(): Promise<string> {\n return Promise.resolve(this.defaultNamespace)\n }\n\n private store<T extends ValueStoreType>(args: { stores: Map<string, IKeyValueStore<T>>; storeId?: string }): IKeyValueStore<T> {\n const storeId = this.storeIdStr({ storeId: args.storeId })\n const store = args.stores.get(storeId)\n if (!store) {\n throw Error(`Could not get issuer metadata store: ${storeId}`)\n }\n return store\n }\n\n private storeIdStr({ storeId }: { storeId?: string }): string {\n return storeId ?? this.defaultStoreId\n }\n\n private namespaceStr({ namespace }: { namespace?: string }): string {\n return namespace ?? this.defaultNamespace\n }\n\n private prefix({ namespace, correlationId }: { namespace?: string; correlationId: string }): string {\n return `${this.namespaceStr({ namespace })}:${correlationId}`\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA,gCAAAA,SAAA;AAAA,IAAAA,QAAA;AAAA,MACE,6BAA+B;AAAA,QAC7B,YAAc;AAAA,UACZ,SAAW;AAAA,YACT,qBAAuB;AAAA,cACrB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,WAAW;AAAA,cACxB,aAAe;AAAA,YACjB;AAAA,YACA,0BAA4B;AAAA,cAC1B,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,YAAc;AAAA,kBACZ,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,KAAO;AAAA,sBACL,MAAQ;AAAA,oBACV;AAAA,oBACA,OAAS;AAAA,sBACP,MAAQ;AAAA,oBACV;AAAA,oBACA,UAAY;AAAA,sBACV,MAAQ;AAAA,oBACV;AAAA,oBACA,iBAAmB;AAAA,sBACjB,MAAQ;AAAA,oBACV;AAAA,oBACA,MAAQ;AAAA,sBACN,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,wBACR,YAAc;AAAA,0BACZ,sBAAwB;AAAA,wBAC1B;AAAA,sBACF;AAAA,oBACF;AAAA,oBACA,UAAY;AAAA,sBACV,MAAQ;AAAA,sBACR,OAAS;AAAA,wBACP,MAAQ;AAAA,wBACR,YAAc;AAAA,0BACZ,sBAAwB;AAAA,wBAC1B;AAAA,sBACF;AAAA,oBACF;AAAA,kBACF;AAAA,kBACA,sBAAwB;AAAA,kBACxB,UAAY,CAAC,OAAO,YAAY,QAAQ,UAAU;AAAA,gBACpD;AAAA,gBACA,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,YAAY;AAAA,cACzB,aAAe;AAAA,YACjB;AAAA,YACA,wBAA0B;AAAA,cACxB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,WAAW;AAAA,cACxB,aAAe;AAAA,YACjB;AAAA,YACA,2BAA6B;AAAA,cAC3B,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,gBACA,aAAe;AAAA,kBACb,MAAQ;AAAA,gBACV;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,aAAa,WAAW,aAAa;AAAA,cAClD,aAAe;AAAA,YACjB;AAAA,YACA,WAAa;AAAA,cACX,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,yCAA2C;AAAA,cACzC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,SAAW;AAAA,kBACT,MAAQ;AAAA,gBACV;AAAA,gBACA,aAAe;AAAA,kBACb,MAAQ;AAAA,gBACV;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,aAAa,WAAW,aAAa;AAAA,cAClD,aAAe;AAAA,YACjB;AAAA,YACA,gCAAkC;AAAA,cAChC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,KAAO;AAAA,kBACL,MAAQ;AAAA,gBACV;AAAA,gBACA,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,cAAgB;AAAA,kBACd,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,OAAO,kBAAkB,cAAc;AAAA,cACpD,aAAe;AAAA,YACjB;AAAA,YACA,0CAA4C;AAAA,cAC1C,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,+BAAiC;AAAA,kBAC/B,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,kBAAoB;AAAA,kBAClB,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,aAAa,+BAA+B;AAAA,cACzD,aAAe;AAAA,YACjB;AAAA,YACA,qBAAuB;AAAA,cACrB,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,IAAM;AAAA,kBACJ,MAAQ;AAAA,gBACV;AAAA,gBACA,aAAe;AAAA,kBACb,MAAQ;AAAA,kBACR,OAAS;AAAA,oBACP,MAAQ;AAAA,kBACV;AAAA,gBACF;AAAA,gBACA,gBAAkB;AAAA,kBAChB,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,MAAM,gBAAgB;AAAA,cACnC,aAAe;AAAA,YACjB;AAAA,YACA,yCAA2C;AAAA,cACzC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,gCAAkC;AAAA,kBAChC,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,aAAa,gCAAgC;AAAA,cAC1D,aAAe;AAAA,YACjB;AAAA,YACA,8BAAgC;AAAA,cAC9B,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,SAAW;AAAA,kBACT,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,yBAA2B;AAAA,kBACzB,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,YAAc;AAAA,kBACZ,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,WAAW,YAAY;AAAA,cACpC,aAAe;AAAA,YACjB;AAAA,YACA,qCAAuC;AAAA,cACrC,MAAQ;AAAA,cACR,YAAc;AAAA,gBACZ,WAAa;AAAA,kBACX,MAAQ;AAAA,gBACV;AAAA,gBACA,+BAAiC;AAAA,kBAC/B,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,gCAAkC;AAAA,kBAChC,MAAQ;AAAA,kBACR,YAAc;AAAA,oBACZ,sBAAwB;AAAA,kBAC1B;AAAA,gBACF;AAAA,gBACA,sBAAwB;AAAA,cAC1B;AAAA,cACA,UAAY,CAAC,aAAa,+BAA+B;AAAA,cACzD,aAAe;AAAA,YACjB;AAAA,UACF;AAAA,UACA,SAAW;AAAA,YACT,mBAAqB;AAAA,cACnB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,YAChB;AAAA,YACA,wBAA0B;AAAA,cACxB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,YAChB;AAAA,YACA,sBAAwB;AAAA,cACtB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,YAChB;AAAA,YACA,sBAAwB;AAAA,cACtB,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,oCAAsC;AAAA,cACpC,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,qCAAuC;AAAA,cACrC,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,oCAAsC;AAAA,cACpC,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,YACA,gCAAkC;AAAA,cAChC,aAAe;AAAA,cACf,WAAa;AAAA,gBACX,MAAQ;AAAA,cACV;AAAA,cACA,YAAc;AAAA,gBACZ,MAAQ;AAAA,cACV;AAAA,YACF;AAAA,UACF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAAA;AAAA;;;ACxUA;;;;;;;;;ACCA,qBAA0E;AAsBnE,IAAMC,sBAAqC;EAChD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGK,IAAMC,eAAN,MAAMA;EAxCb,OAwCaA;;;EACX,IAAIC,cAA8C;AAChD,WAAO,KAAKC;EACd;EAEA,IAAID,YAAYE,OAAuC;AACrD,SAAKD,eAAeC;EACtB;EAEiBC;EACAC;EACAC;EACAC;EACAC;EAETN;EAECO,UAAyB;IAChCC,6BAA6B,KAAKA,4BAA4BC,KAAK,IAAI;IACvEC,kCAAkC,KAAKC,0BAA0BF,KAAK,IAAI;IAC1EG,4BAA4B,KAAKA,2BAA2BH,KAAK,IAAI;IACrEI,8BAA8B,KAAKA,6BAA6BJ,KAAK,IAAI;IAEzEK,2BAA2B,KAAKA,0BAA0BL,KAAK,IAAI;IACnEM,2BAA2B,KAAKA,0BAA0BN,KAAK,IAAI;IACnEO,+BAA+B,KAAKA,8BAA8BP,KAAK,IAAI;IAC3EQ,8BAA8B,KAAKA,6BAA6BR,KAAK,IAAI;IACzES,gCAAgC,KAAKA,+BAA+BT,KAAK,IAAI;IAE7EU,yBAAyB,KAAKA,wBAAwBV,KAAK,IAAI;IAC/DW,0BAA0B,KAAKA,yBAAyBX,KAAK,IAAI;IACjEY,yBAAyB,KAAKA,wBAAwBZ,KAAK,IAAI;IAC/Da,6BAA6B,KAAKA,4BAA4Bb,KAAK,IAAI;IACvEc,4BAA4B,KAAKA,2BAA2Bd,KAAK,IAAI;IACrEe,8BAA8B,KAAKA,6BAA6Bf,KAAK,IAAI;EAC3E;EAEA,YAAYgB,MAAyB;AACnC,SAAKpB,iBAAiBoB,KAAKC,gBAAgB;AAC3C,SAAKpB,mBAAmBmB,KAAKnB,oBAAoB;AACjD,QAAImB,KAAK1B,aAAa;AACpB,WAAKC,eAAeyB,KAAK1B;IAC3B;AACA,QAAI0B,MAAME,wBAAwBF,KAAKE,gCAAgCC,KAAK;AAC1E,WAAK1B,wBAAwBuB,KAAKE;IACpC,WAAWF,MAAME,sBAAsB;AACrC,WAAKzB,yBAAwB,oBAAI0B,IAAAA,GAAMC,IAAI,KAAKxB,gBAAgBoB,KAAKE,oBAAoB;IAC3F,OAAO;AACL,WAAKzB,yBAAwB,oBAAI0B,IAAAA,GAAMC,IACrC,KAAKxB,gBACL,IAAIyB,6BAAc;QAChBC,WAAW,KAAKzB;QAChB0B,OAAO,oBAAIJ,IAAAA;MACb,CAAA,CAAA;IAEJ;AACA,QAAIH,MAAMQ,qCAAqCR,KAAKQ,6CAA6CL,KAAK;AACpG,WAAKzB,qCAAqCsB,KAAKQ;IACjD,WAAWR,MAAMQ,mCAAmC;AAClD,WAAK9B,sCAAqC,oBAAIyB,IAAAA,GAAMC,IAAI,KAAKxB,gBAAgBoB,KAAKQ,iCAAiC;IACrH,OAAO;AACL,WAAK9B,sCAAqC,oBAAIyB,IAAAA,GAAMC,IAClD,KAAKxB,gBACL,IAAIyB,6BAAc;QAChBC,WAAW,KAAKzB;QAChB0B,OAAO,oBAAIJ,IAAAA;MACb,CAAA,CAAA;IAEJ;AAEA,QAAIH,QAAQS,MAAMC,QAAQV,MAAMW,eAAAA,GAAkB;AAChDX,WAAKW,gBAAgBC,QAAQ,CAACC,eAAAA;AAC5B,cAAMC,OAAOD;AACb,aAAK,KAAKhB,4BAA4B;UACpCkB,cAAcD,KAAKC;UACnBC,UAAUF,KAAKE;UACfC,SAASH,KAAKG,WAAW,KAAKrC;UAC9BsC,eAAeJ,KAAKI;UACpBZ,WAAWQ,KAAKR,aAAa,KAAKzB;UAClCsC,mBAAmBL,KAAKK,sBAAsBC,SAAY,OAAON,KAAKK;QACxE,CAAA;MACF,CAAA;IACF;AAEA,QAAInB,MAAMqB,oBAAoBrB,KAAKqB,4BAA4BlB,KAAK;AAClE,WAAKxB,gBAAgBqB,KAAKqB;IAC5B,WAAWrB,MAAMqB,kBAAkB;AACjC,WAAK1C,iBAAgB,oBAAIwB,IAAAA,GAAMC,IAAI,KAAKxB,gBAAgBoB,KAAKqB,gBAAgB;IAC/E,OAAO;AACL,WAAK1C,iBAAgB,oBAAIwB,IAAAA,GAAMC,IAC7B,KAAKxB,gBACL,IAAIyB,6BAAc;QAChBC,WAAW,KAAKzB;QAChB0B,OAAO,oBAAIJ,IAAAA;MACb,CAAA,CAAA;IAEJ;AACA,QAAIH,QAAQS,MAAMC,QAAQV,MAAMsB,gBAAAA,GAAmB;AACjDtB,WAAKsB,iBAAiBV,QAAQ,CAACW,QAAQ,KAAKhC,8BAA8BgC,GAAAA,CAAAA;IAC5E;EACF;EAEA,MAAclC,0BAA0B,EAAE6B,eAAeD,SAASX,UAAS,GAA+D;AACxI,WACG,MAAM,KAAKC,MAAM;MAAEiB,QAAQ,KAAK7C;MAAesC;IAAQ,CAAA,EAAGQ,IACzD,KAAKC,OAAO;MACVpB;MACAY;IACF,CAAA,CAAA,KACI,KAAK5C;EAEf;EAEOgD,iBAAiBK,YAAqC;AAC3DA,eAAWf,QAAQ,CAACW,QAAQ,KAAKhC,8BAA8BgC,GAAAA,CAAAA;EACjE;EAEA,MAAcjC,0BAA0B,EAAE4B,eAAeD,SAASX,UAAS,GAA+C;AACxH,WAAO,KAAKC,MAAM;MAAEiB,QAAQ,KAAK7C;MAAesC;IAAQ,CAAA,EAAGW,IAAI,KAAKF,OAAO;MAAEpB;MAAWY;IAAc,CAAA,CAAA;EACxG;EAEA,MAAc3B,8BAA8BsC,MAAmE;AAC7G,UAAMZ,UAAU,KAAKa,WAAWD,IAAAA;AAChC,UAAMvB,YAAY,KAAKyB,aAAaF,IAAAA;AACpC,UAAM,EAAEX,eAAec,YAAYC,IAAG,IAAKJ;AAC3C,QAAIA,MAAMK,eAAe,OAAO;IAEhC;AACA,UAAMC,WAAW,MAAM,KAAK5B,MAAM;MAAEiB,QAAQ,KAAK7C;MAAesC;IAAQ,CAAA,EAAGmB,eACzE,KAAKV,OAAO;MACVpB;MACAY;IACF,CAAA,CAAA;AAEF,QAAI,CAACiB,SAAS3D,SAAU2D,SAAS3D,SAASqD,KAAKV,sBAAsB,OAAQ;AAC3E,aAAO,MAAM,KAAKZ,MAAM;QAAEiB,QAAQ,KAAK7C;QAAesC;MAAQ,CAAA,EAAGb,IAC/D,KAAKsB,OAAO;QACVpB;QACAY;MACF,CAAA,GACAc,YACAC,GAAAA;IAEJ;AACA,WAAOE;EACT;EAEA,MAAc3C,6BAA6B,EAAEyB,SAASC,eAAeZ,UAAS,GAA+C;AAC3H,WAAO,KAAKC,MAAM;MAAEiB,QAAQ,KAAK7C;MAAesC;IAAQ,CAAA,EAAGoB,OAAO,KAAKX,OAAO;MAAEpB;MAAWY;IAAc,CAAA,CAAA;EAC3G;EAEA,MAAczB,+BAA+B,EAAEwB,QAAO,GAA8C;AAClG,WAAO,MAAM,KAAKV,MAAM;MAAEiB,QAAQ,KAAK7C;MAAesC;IAAQ,CAAA,EAC3DqB,MAAK,EACLC,KAAK,MAAM,IAAA;EAChB;EAEA,MAAc7C,wBAAwB,EACpCqB,cACAG,eACAD,SACAX,UAAS,GACiF;AAC1F,YAAQS,cAAAA;MACN,KAAK;AACH,eAAO,KAAKR,MAAmC;UAC7CiB,QAAQ,KAAK9C;UACbuC;QACF,CAAA,EAAGQ,IAAI,KAAKC,OAAO;UAAEpB;UAAWY;QAAc,CAAA,CAAA;MAChD,KAAK;AACH,eAAO,KAAKX,MAAsB;UAChCiB,QAAQ,KAAK/C;UACbwC;QACF,CAAA,EAAGQ,IAAI,KAAKC,OAAO;UAAEpB;UAAWY;QAAc,CAAA,CAAA;IAClD;AACA,WAAOE;EACT;EAEA,MAAczB,yBAAyB,EAAEoB,cAAcE,SAASX,UAAS,GAAmE;AAC1I,YAAQS,cAAAA;MACN,KAAK;AACH,eAAO,KAAKR,MAAmC;UAC7CiB,QAAQ,KAAK9C;UACbuC;QACF,CAAA,EAAGuB,QAAQ;UAAC,GAAG,KAAKT,aAAa;YAAEzB;UAAU,CAAA,CAAA;SAAK;MACpD,KAAK;AACH,eAAO,KAAKC,MAAsB;UAChCiB,QAAQ,KAAK/C;UACbwC;QACF,CAAA,EAAGuB,QAAQ;UAAC,GAAG,KAAKT,aAAa;YAAEzB;UAAU,CAAA,CAAA;SAAK;IACtD;AACA,WAAO,CAAA;EACT;EAEA,MAAcV,wBAAwB,EAAEmB,cAAcG,eAAeD,SAASX,UAAS,GAA+C;AACpI,YAAQS,cAAAA;MACN,KAAK;AACH,eAAO,KAAKR,MAAmC;UAC7CiB,QAAQ,KAAK9C;UACbuC;QACF,CAAA,EAAGW,IAAI,KAAKF,OAAO;UAAEpB;UAAWY;QAAc,CAAA,CAAA;MAChD,KAAK;AACH,eAAO,KAAKX,MAAsB;UAChCiB,QAAQ,KAAK/C;UACbwC;QACF,CAAA,EAAGW,IAAI,KAAKF,OAAO;UAAEpB;UAAWY;QAAc,CAAA,CAAA;IAClD;AACA,WAAO;EACT;EAEA,MAAcrB,4BAA4BgC,MAAkE;AAC1G,UAAMvB,YAAY,KAAKyB,aAAaF,IAAAA;AACpC,UAAMZ,UAAU,KAAKa,WAAWD,IAAAA;AAChC,UAAM,EAAEX,eAAeF,UAAUiB,KAAKlB,aAAY,IAAKc;AAEvD,QAAIA,MAAMK,eAAe,OAAO;IAEhC;AAEA,YAAQnB,cAAAA;MACN,KAAK;AACH,cAAM0B,eAAe,MAAM,KAAKlC,MAAmC;UACjEiB,QAAQ,KAAK9C;UACbuC;QACF,CAAA,EAAGmB,eAAe,KAAKV,OAAO;UAAEpB;UAAWY;QAAc,CAAA,CAAA;AAEzD,YAAI,CAACuB,aAAajE,SAAUiE,aAAajE,SAASqD,KAAKV,sBAAsB,OAAQ;AACnF,iBAAO,MAAM,KAAKZ,MAAmC;YACnDiB,QAAQ,KAAK9C;YACbuC;UACF,CAAA,EAAGb,IAAI,KAAKsB,OAAO;YAAEpB;YAAWY;UAAc,CAAA,GAAIF,UAAyCiB,GAAAA;QAC7F;AACA,eAAOQ;MACT,KAAK;AACH,cAAMC,iBAAiB,MAAM,KAAKnC,MAAsB;UACtDiB,QAAQ,KAAK/C;UACbwC;QACF,CAAA,EAAGmB,eAAe,KAAKV,OAAO;UAAEpB;UAAWY;QAAc,CAAA,CAAA;AAEzD,YAAI,CAACwB,eAAelE,SAAUkE,eAAelE,SAASqD,KAAKV,sBAAsB,OAAQ;AACvF,iBAAO,MAAM,KAAKZ,MAAsB;YACtCiB,QAAQ,KAAK/C;YACbwC;UACF,CAAA,EAAGb,IAAI,KAAKsB,OAAO;YAAEpB;YAAWY;UAAc,CAAA,GAAIF,UAA4BiB,GAAAA;QAChF;AACA,eAAOS;IACX;AACA,WAAOtB;EACT;EAEA,MAActB,2BAA2B+B,MAAiD;AACxF,UAAMvB,YAAY,KAAKyB,aAAaF,IAAAA;AACpC,UAAMZ,UAAU,KAAKa,WAAWD,IAAAA;AAEhC,YAAQA,KAAKd,cAAY;MACvB,KAAK;AACH,eAAO,KAAKR,MAAmC;UAC7CiB,QAAQ,KAAK9C;UACbuC;QACF,CAAA,EAAGoB,OAAO,KAAKX,OAAO;UAAEpB;UAAWY,eAAeW,KAAKX;QAAc,CAAA,CAAA;MACvE,KAAK;AACH,eAAO,KAAKX,MAAsB;UAChCiB,QAAQ,KAAK/C;UACbwC;QACF,CAAA,EAAGoB,OAAO,KAAKX,OAAO;UAAEpB;UAAWY,eAAeW,KAAKX;QAAc,CAAA,CAAA;IACzE;AACA,WAAO;EACT;EAEA,MAAcnB,6BAA6B,EAAEgB,cAAcE,QAAO,GAA8C;AAC9G,YAAQF,cAAAA;MACN,KAAK;AACH,eAAO,MAAM,KAAKR,MAAmC;UACnDiB,QAAQ,KAAK9C;UACbuC;QACF,CAAA,EACGqB,MAAK,EACLC,KAAK,MAAM,IAAA;MAChB,KAAK;AACH,eAAO,MAAM,KAAKhC,MAAsB;UACtCiB,QAAQ,KAAK/C;UACbwC;QACF,CAAA,EACGqB,MAAK,EACLC,KAAK,MAAM,IAAA;IAClB;AACA,WAAO;EACT;EAEQrD,4BAAqE;AAC3E,WAAOyD,QAAQC,QAAQ,KAAKrC,MAAM;MAAEiB,QAAQ,KAAK7C;MAAesC,SAAS,KAAKrC;IAAe,CAAA,CAAA;EAC/F;EAEQG,8BAAuE;AAC7E,WAAO4D,QAAQC,QAAQ,KAAKrC,MAAM;MAAEiB,QAAQ,KAAK/C;MAAuBwC,SAAS,KAAKrC;IAAe,CAAA,CAAA;EACvG;EAEQO,6BAA8C;AACpD,WAAOwD,QAAQC,QAAQ,KAAKhE,cAAc;EAC5C;EAEQQ,+BAAgD;AACtD,WAAOuD,QAAQC,QAAQ,KAAK/D,gBAAgB;EAC9C;EAEQ0B,MAAgCsB,MAAuF;AAC7H,UAAMZ,UAAU,KAAKa,WAAW;MAAEb,SAASY,KAAKZ;IAAQ,CAAA;AACxD,UAAMV,QAAQsB,KAAKL,OAAOC,IAAIR,OAAAA;AAC9B,QAAI,CAACV,OAAO;AACV,YAAMsC,MAAM,wCAAwC5B,OAAAA,EAAS;IAC/D;AACA,WAAOV;EACT;EAEQuB,WAAW,EAAEb,QAAO,GAAkC;AAC5D,WAAOA,WAAW,KAAKrC;EACzB;EAEQmD,aAAa,EAAEzB,UAAS,GAAoC;AAClE,WAAOA,aAAa,KAAKzB;EAC3B;EAEQ6C,OAAO,EAAEpB,WAAWY,cAAa,GAA2D;AAClG,WAAO,GAAG,KAAKa,aAAa;MAAEzB;IAAU,CAAA,CAAA,IAAMY,aAAAA;EAChD;AACF;;;AD3WA,IAAM4B,SAASC;","names":["module","oid4vciStoreMethods","OID4VCIStore","defaultOpts","_defaultOpts","value","_issuerMetadataStores","_authorizationServerMetadataStores","_optionStores","defaultStoreId","defaultNamespace","methods","oid4vciStoreDefaultMetadata","bind","oid4vciStoreDefaultIssuerOptions","oid4vciStoreIssuerOptions","oid4vciStoreDefaultStoreId","oid4vciStoreDefaultNamespace","oid4vciStoreGetIssuerOpts","oid4vciStoreHasIssuerOpts","oid4vciStorePersistIssuerOpts","oid4vciStoreRemoveIssuerOpts","oid4vciStoreClearAllIssuerOpts","oid4vciStoreGetMetadata","oid4vciStoreListMetadata","oid4vciStoreHasMetadata","oid4vciStorePersistMetadata","oid4vciStoreRemoveMetadata","oid4vciStoreClearAllMetadata","opts","defaultStore","issuerMetadataStores","Map","set","KeyValueStore","namespace","store","authorizationServerMetadataStores","Array","isArray","importMetadatas","forEach","metaImport","meta","metadataType","metadata","storeId","correlationId","overwriteExisting","undefined","issuerOptsStores","importIssuerOpts","opt","stores","get","prefix","importOpts","has","args","storeIdStr","namespaceStr","issuerOpts","ttl","validation","existing","getAsValueData","delete","clear","then","getMany","existingAuth","existingIssuer","Promise","resolve","Error","schema","require"]}
package/dist/index.d.cts CHANGED
@@ -116,15 +116,6 @@ declare class OID4VCIStore implements IAgentPlugin {
116
116
  constructor(opts: IOID4VCIStoreOpts);
117
117
  private oid4vciStoreGetIssuerOpts;
118
118
  importIssuerOpts(importOpts: IIssuerOptsImportArgs[]): void;
119
- private importMetadatas;
120
- /**
121
- * Generic Deep Merge.
122
- * - Recursively merges objects.
123
- * - Overwrites primitives and arrays (Arrays are treated as values).
124
- * - Naturally handles 'credential_configurations_supported' by merging the keys of the map.
125
- */
126
- private deepMerge;
127
- private isPlainObject;
128
119
  private oid4vciStoreHasIssuerOpts;
129
120
  private oid4vciStorePersistIssuerOpts;
130
121
  private oid4vciStoreRemoveIssuerOpts;
package/dist/index.d.ts CHANGED
@@ -116,15 +116,6 @@ declare class OID4VCIStore implements IAgentPlugin {
116
116
  constructor(opts: IOID4VCIStoreOpts);
117
117
  private oid4vciStoreGetIssuerOpts;
118
118
  importIssuerOpts(importOpts: IIssuerOptsImportArgs[]): void;
119
- private importMetadatas;
120
- /**
121
- * Generic Deep Merge.
122
- * - Recursively merges objects.
123
- * - Overwrites primitives and arrays (Arrays are treated as values).
124
- * - Naturally handles 'credential_configurations_supported' by merging the keys of the map.
125
- */
126
- private deepMerge;
127
- private isPlainObject;
128
119
  private oid4vciStoreHasIssuerOpts;
129
120
  private oid4vciStorePersistIssuerOpts;
130
121
  private oid4vciStoreRemoveIssuerOpts;
package/dist/index.js CHANGED
@@ -419,7 +419,17 @@ var OID4VCIStore = class {
419
419
  }));
420
420
  }
421
421
  if (opts && Array.isArray(opts?.importMetadatas)) {
422
- void this.importMetadatas(opts.importMetadatas);
422
+ opts.importMetadatas.forEach((metaImport) => {
423
+ const meta = metaImport;
424
+ void this.oid4vciStorePersistMetadata({
425
+ metadataType: meta.metadataType,
426
+ metadata: meta.metadata,
427
+ storeId: meta.storeId ?? this.defaultStoreId,
428
+ correlationId: meta.correlationId,
429
+ namespace: meta.namespace ?? this.defaultNamespace,
430
+ overwriteExisting: meta.overwriteExisting === void 0 ? true : meta.overwriteExisting
431
+ });
432
+ });
423
433
  }
424
434
  if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {
425
435
  this._optionStores = opts.issuerOptsStores;
@@ -447,73 +457,6 @@ var OID4VCIStore = class {
447
457
  importIssuerOpts(importOpts) {
448
458
  importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt));
449
459
  }
450
- async importMetadatas(metadataImports) {
451
- for (const metaImport of metadataImports) {
452
- const meta = metaImport;
453
- const storeId = meta.storeId ?? this.defaultStoreId;
454
- const namespace = meta.namespace ?? this.defaultNamespace;
455
- const correlationId = meta.correlationId;
456
- const existingMetadata = await this.oid4vciStoreGetMetadata({
457
- metadataType: meta.metadataType,
458
- correlationId,
459
- storeId,
460
- namespace
461
- });
462
- let metadataToPersist;
463
- if (existingMetadata) {
464
- if (meta.overwriteExisting === false) {
465
- continue;
466
- }
467
- metadataToPersist = this.deepMerge(existingMetadata, meta.metadata);
468
- } else {
469
- metadataToPersist = meta.metadata;
470
- }
471
- await this.oid4vciStorePersistMetadata({
472
- metadataType: meta.metadataType,
473
- metadata: metadataToPersist,
474
- storeId,
475
- correlationId,
476
- namespace,
477
- // We set this to true because we have already handled the merge/overwrite logic above.
478
- // We are now saving the final, combined object.
479
- overwriteExisting: true
480
- });
481
- }
482
- }
483
- /**
484
- * Generic Deep Merge.
485
- * - Recursively merges objects.
486
- * - Overwrites primitives and arrays (Arrays are treated as values).
487
- * - Naturally handles 'credential_configurations_supported' by merging the keys of the map.
488
- */
489
- deepMerge(existing, incoming) {
490
- if (!incoming) {
491
- return existing;
492
- }
493
- if (!existing) {
494
- return incoming;
495
- }
496
- const merged = {
497
- ...existing
498
- };
499
- for (const key in incoming) {
500
- if (!Object.prototype.hasOwnProperty.call(incoming, key)) {
501
- continue;
502
- }
503
- const incomingValue = incoming[key];
504
- const existingValue = existing[key];
505
- if (this.isPlainObject(incomingValue) && this.isPlainObject(existingValue)) {
506
- merged[key] = this.deepMerge(existingValue, incomingValue);
507
- } else if (incomingValue !== void 0) {
508
- merged[key] = incomingValue;
509
- }
510
- }
511
- return merged;
512
- }
513
- // Type guard to check if value is a plain object (and not an array or null)
514
- isPlainObject(value) {
515
- return typeof value === "object" && value !== null && !Array.isArray(value);
516
- }
517
460
  async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }) {
518
461
  return this.store({
519
462
  stores: this._optionStores,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../plugin.schema.json","../src/agent/OID4VCIStore.ts","../src/index.ts"],"sourcesContent":["{\n \"IDidAuthSiopOpAuthenticator\": {\n \"components\": {\n \"schemas\": {\n \"IGetSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSessionForSiop } \"\n },\n \"IRegisterSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"identifier\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"alias\": {\n \"type\": \"string\"\n },\n \"provider\": {\n \"type\": \"string\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n },\n \"services\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"did\", \"provider\", \"keys\", \"services\"]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"expiresIn\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"identifier\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.registerSessionForSiop } \"\n },\n \"IRemoveSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.removeSessionForSiop } \"\n },\n \"IAuthenticateWithSiopArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.authenticateWithSiop } \"\n },\n \"IResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": true\n },\n \"required\": [\"status\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.authenticateWithSiop & DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n },\n \"IGetSiopAuthenticationRequestFromRpArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"type\": \"string\"\n },\n \"requestPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"registration\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"jwt\", \"requestPayload\", \"registration\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"IGetSiopAuthenticationRequestDetailsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"credentialFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IAuthRequestDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"alsoKnownAs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"vpResponseOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"id\", \"vpResponseOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IVerifySiopAuthenticationRequestUriArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"ParsedAuthenticationRequestURI\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"VerifiedAuthorizationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"presentationDefinitions\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifyOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"payload\", \"verifyOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"ISendSiopAuthenticationResponseArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifiablePresentationResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n }\n },\n \"methods\": {\n \"getSessionForSiop\": {\n \"description\": \"Get SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"registerSessionForSiop\": {\n \"description\": \"Register SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRegisterSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"removeSessionForSiop\": {\n \"description\": \"Remove SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRemoveSiopSessionArgs\"\n },\n \"returnType\": \"boolean\"\n },\n \"authenticateWithSiop\": {\n \"description\": \"Authenticate using DID Auth SIOP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IAuthenticateWithSiopArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/Response\"\n }\n },\n \"getSiopAuthenticationRequestFromRP\": {\n \"description\": \"Get authentication request from RP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestFromRpArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ParsedAuthenticationRequestURI\"\n }\n },\n \"getSiopAuthenticationRequestDetails\": {\n \"description\": \"Get authentication request details\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestDetailsArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IAuthRequestDetails\"\n }\n },\n \"verifySiopAuthenticationRequestURI\": {\n \"description\": \"Verify authentication request URI\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IVerifySiopAuthenticationRequestUriArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerifiedAuthorizationRequest\"\n }\n },\n \"sendSiopAuthenticationResponse\": {\n \"description\": \"Send authentication response\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISendSiopAuthenticationResponseArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IRequiredContext\"\n }\n }\n }\n }\n }\n}\n","import { AuthorizationServerMetadata, IssuerMetadata } from '@sphereon/oid4vci-common'\nimport { IKeyValueStore, IValueData, KeyValueStore, ValueStoreType } from '@sphereon/ssi-sdk.kv-store-temp'\nimport { IAgentPlugin } from '@veramo/core'\nimport {\n IIssuerDefaultOpts,\n IIssuerMetadataImportArgs,\n IIssuerOptions,\n IIssuerOptsImportArgs,\n IIssuerOptsPersistArgs,\n IMetadataImportArgs,\n IMetadataPersistArgs,\n Ioid4vciStoreClearArgs,\n Ioid4vciStoreExistsArgs,\n IOid4vciStoreGetArgs,\n IOid4vciStoreListArgs,\n IOID4VCIStoreOpts,\n Ioid4vciStoreRemoveArgs,\n OptionalIssuerMetadata,\n OptionalIssuerMetadataValue,\n} from '../index'\n\nimport { IOID4VCIStore } from '../types/IOID4VCIStore'\n\nexport const oid4vciStoreMethods: Array<string> = [\n 'oid4vciStoreDefaultMetadata',\n 'oid4vciStoreDefaultIssuerOptions',\n 'oid4vciStoreDefaultStoreId',\n 'oid4vciStoreDefaultNamespace',\n 'oid4vciStoreGetIssuerOpts',\n 'oid4vciStoreHasIssuerOpts',\n 'oid4vciStorePersistIssuerOpts',\n 'oid4vciStoreRemoveIssuerOpts',\n 'oid4vciStoreClearAllIssuerOpts',\n 'oid4vciStoreGetMetadata',\n 'oid4vciStoreListMetadata',\n 'oid4vciStoreHasMetadata',\n 'oid4vciStorePersistMetadata',\n 'oid4vciStoreRemoveMetadata',\n 'oid4vciStoreClearAllMetadata',\n]\n\nexport class OID4VCIStore implements IAgentPlugin {\n get defaultOpts(): IIssuerDefaultOpts | undefined {\n return this._defaultOpts\n }\n\n set defaultOpts(value: IIssuerDefaultOpts | undefined) {\n this._defaultOpts = value\n }\n\n private readonly _issuerMetadataStores: Map<string, IKeyValueStore<IssuerMetadata>>\n private readonly _authorizationServerMetadataStores: Map<string, IKeyValueStore<AuthorizationServerMetadata>>\n private readonly _optionStores: Map<string, IKeyValueStore<IIssuerOptions>>\n private readonly defaultStoreId: string\n private readonly defaultNamespace: string\n\n private _defaultOpts?: IIssuerDefaultOpts\n\n readonly methods: IOID4VCIStore = {\n oid4vciStoreDefaultMetadata: this.oid4vciStoreDefaultMetadata.bind(this),\n oid4vciStoreDefaultIssuerOptions: this.oid4vciStoreIssuerOptions.bind(this),\n oid4vciStoreDefaultStoreId: this.oid4vciStoreDefaultStoreId.bind(this),\n oid4vciStoreDefaultNamespace: this.oid4vciStoreDefaultNamespace.bind(this),\n\n oid4vciStoreGetIssuerOpts: this.oid4vciStoreGetIssuerOpts.bind(this),\n oid4vciStoreHasIssuerOpts: this.oid4vciStoreHasIssuerOpts.bind(this),\n oid4vciStorePersistIssuerOpts: this.oid4vciStorePersistIssuerOpts.bind(this),\n oid4vciStoreRemoveIssuerOpts: this.oid4vciStoreRemoveIssuerOpts.bind(this),\n oid4vciStoreClearAllIssuerOpts: this.oid4vciStoreClearAllIssuerOpts.bind(this),\n\n oid4vciStoreGetMetadata: this.oid4vciStoreGetMetadata.bind(this),\n oid4vciStoreListMetadata: this.oid4vciStoreListMetadata.bind(this),\n oid4vciStoreHasMetadata: this.oid4vciStoreHasMetadata.bind(this),\n oid4vciStorePersistMetadata: this.oid4vciStorePersistMetadata.bind(this),\n oid4vciStoreRemoveMetadata: this.oid4vciStoreRemoveMetadata.bind(this),\n oid4vciStoreClearAllMetadata: this.oid4vciStoreClearAllMetadata.bind(this),\n }\n\n constructor(opts: IOID4VCIStoreOpts) {\n this.defaultStoreId = opts.defaultStore ?? '_default'\n this.defaultNamespace = opts.defaultNamespace ?? 'oid4vci'\n if (opts.defaultOpts) {\n this._defaultOpts = opts.defaultOpts\n }\n if (opts?.issuerMetadataStores && opts.issuerMetadataStores instanceof Map) {\n this._issuerMetadataStores = opts.issuerMetadataStores\n } else if (opts?.issuerMetadataStores) {\n this._issuerMetadataStores = new Map().set(this.defaultStoreId, opts.issuerMetadataStores)\n } else {\n this._issuerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IssuerMetadata>(),\n }),\n )\n }\n if (opts?.authorizationServerMetadataStores && opts.authorizationServerMetadataStores instanceof Map) {\n this._authorizationServerMetadataStores = opts.authorizationServerMetadataStores\n } else if (opts?.authorizationServerMetadataStores) {\n this._authorizationServerMetadataStores = new Map().set(this.defaultStoreId, opts.authorizationServerMetadataStores)\n } else {\n this._authorizationServerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, AuthorizationServerMetadata>(),\n }),\n )\n }\n\n if (opts && Array.isArray(opts?.importMetadatas)) {\n void this.importMetadatas(opts.importMetadatas)\n }\n\n if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {\n this._optionStores = opts.issuerOptsStores\n } else if (opts?.issuerOptsStores) {\n this._optionStores = new Map().set(this.defaultStoreId, opts.issuerOptsStores)\n } else {\n this._optionStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IIssuerOptions>(),\n }),\n )\n }\n if (opts && Array.isArray(opts?.importIssuerOpts)) {\n opts.importIssuerOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n }\n\n private async oid4vciStoreGetIssuerOpts({ correlationId, storeId, namespace }: IOid4vciStoreGetArgs): Promise<IIssuerOptions | undefined> {\n return (\n (await this.store({ stores: this._optionStores, storeId }).get(\n this.prefix({\n namespace,\n correlationId,\n }),\n )) ?? this.defaultOpts\n )\n }\n\n public importIssuerOpts(importOpts: IIssuerOptsImportArgs[]) {\n importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n\n private async importMetadatas(metadataImports: IMetadataImportArgs[]): Promise<void> {\n for (const metaImport of metadataImports) {\n const meta = metaImport as IIssuerMetadataImportArgs\n const storeId = meta.storeId ?? this.defaultStoreId\n const namespace = meta.namespace ?? this.defaultNamespace\n const correlationId = meta.correlationId\n\n const existingMetadata = await this.oid4vciStoreGetMetadata({\n metadataType: meta.metadataType,\n correlationId,\n storeId,\n namespace,\n })\n\n let metadataToPersist: IssuerMetadata | AuthorizationServerMetadata\n\n if (existingMetadata) {\n // If overwriteExisting is explicitly false, we skip this import if data exists\n if (meta.overwriteExisting === false) {\n continue\n }\n // Otherwise, we perform a deep merge.\n metadataToPersist = this.deepMerge(existingMetadata, meta.metadata)\n } else {\n metadataToPersist = meta.metadata\n }\n\n await this.oid4vciStorePersistMetadata({\n metadataType: meta.metadataType,\n metadata: metadataToPersist,\n storeId,\n correlationId,\n namespace,\n // We set this to true because we have already handled the merge/overwrite logic above.\n // We are now saving the final, combined object.\n overwriteExisting: true,\n })\n }\n }\n\n /**\n * Generic Deep Merge.\n * - Recursively merges objects.\n * - Overwrites primitives and arrays (Arrays are treated as values).\n * - Naturally handles 'credential_configurations_supported' by merging the keys of the map.\n */\n private deepMerge<T extends Record<string, any>>(existing: T, incoming: T): T {\n if (!incoming) {\n return existing\n }\n if (!existing) {\n return incoming\n }\n\n const merged = { ...existing }\n\n for (const key in incoming) {\n if (!Object.prototype.hasOwnProperty.call(incoming, key)) {\n continue\n }\n\n const incomingValue = incoming[key]\n const existingValue = existing[key]\n\n if (this.isPlainObject(incomingValue) && this.isPlainObject(existingValue)) {\n // Recursively merge objects\n merged[key] = this.deepMerge(existingValue, incomingValue) as T[Extract<keyof T, string>]\n } else if (incomingValue !== undefined) {\n // Overwrite primitives, arrays, or if existing value was undefined\n merged[key] = incomingValue\n }\n }\n\n return merged\n }\n\n // Type guard to check if value is a plain object (and not an array or null)\n private isPlainObject(value: unknown): value is Record<string, any> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n }\n\n private async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).has(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStorePersistIssuerOpts(args: IIssuerOptsPersistArgs): Promise<IValueData<IIssuerOptions>> {\n const storeId = this.storeIdStr(args)\n const namespace = this.namespaceStr(args)\n const { correlationId, issuerOpts, ttl } = args\n if (args?.validation !== false) {\n //todo\n }\n const existing = await this.store({ stores: this._optionStores, storeId }).getAsValueData(\n this.prefix({\n namespace,\n correlationId,\n }),\n )\n if (!existing.value || (existing.value && args.overwriteExisting !== false)) {\n return await this.store({ stores: this._optionStores, storeId }).set(\n this.prefix({\n namespace,\n correlationId,\n }),\n issuerOpts,\n ttl,\n )\n }\n return existing\n }\n\n private async oid4vciStoreRemoveIssuerOpts({ storeId, correlationId, namespace }: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).delete(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStoreClearAllIssuerOpts({ storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n return await this.store({ stores: this._optionStores, storeId })\n .clear()\n .then(() => true)\n }\n\n private async oid4vciStoreGetMetadata({\n metadataType,\n correlationId,\n storeId,\n namespace,\n }: IOid4vciStoreGetArgs): Promise<IssuerMetadata | AuthorizationServerMetadata | undefined> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n }\n return undefined\n }\n\n private async oid4vciStoreListMetadata({ metadataType, storeId, namespace }: IOid4vciStoreListArgs): Promise<Array<OptionalIssuerMetadata>> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n }\n return []\n }\n\n private async oid4vciStoreHasMetadata({ metadataType, correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n }\n return false\n }\n\n private async oid4vciStorePersistMetadata(args: IMetadataPersistArgs): Promise<OptionalIssuerMetadataValue> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n const { correlationId, metadata, ttl, metadataType } = args\n\n if (args?.validation !== false) {\n //todo\n }\n\n switch (metadataType) {\n case 'authorizationServer':\n const existingAuth = await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingAuth.value || (existingAuth.value && args.overwriteExisting !== false)) {\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as AuthorizationServerMetadata, ttl)\n }\n return existingAuth\n case 'issuer':\n const existingIssuer = await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingIssuer.value || (existingIssuer.value && args.overwriteExisting !== false)) {\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as IssuerMetadata, ttl)\n }\n return existingIssuer\n }\n return undefined\n }\n\n private async oid4vciStoreRemoveMetadata(args: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n\n switch (args.metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n }\n return false\n }\n\n private async oid4vciStoreClearAllMetadata({ metadataType, storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n case 'issuer':\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n }\n return false\n }\n\n private oid4vciStoreIssuerOptions(): Promise<IKeyValueStore<IIssuerOptions>> {\n return Promise.resolve(this.store({ stores: this._optionStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultMetadata(): Promise<IKeyValueStore<IssuerMetadata>> {\n return Promise.resolve(this.store({ stores: this._issuerMetadataStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultStoreId(): Promise<string> {\n return Promise.resolve(this.defaultStoreId)\n }\n\n private oid4vciStoreDefaultNamespace(): Promise<string> {\n return Promise.resolve(this.defaultNamespace)\n }\n\n private store<T extends ValueStoreType>(args: { stores: Map<string, IKeyValueStore<T>>; storeId?: string }): IKeyValueStore<T> {\n const storeId = this.storeIdStr({ storeId: args.storeId })\n const store = args.stores.get(storeId)\n if (!store) {\n throw Error(`Could not get issuer metadata store: ${storeId}`)\n }\n return store\n }\n\n private storeIdStr({ storeId }: { storeId?: string }): string {\n return storeId ?? this.defaultStoreId\n }\n\n private namespaceStr({ namespace }: { namespace?: string }): string {\n return namespace ?? this.defaultNamespace\n }\n\n private prefix({ namespace, correlationId }: { namespace?: string; correlationId: string }): string {\n return `${this.namespaceStr({ namespace })}:${correlationId}`\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { OID4VCIStore, oid4vciStoreMethods } from './agent/OID4VCIStore'\nexport * from './types/IOID4VCIStore'\n"],"mappings":"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","names":["KeyValueStore","oid4vciStoreMethods","OID4VCIStore","defaultOpts","_defaultOpts","value","_issuerMetadataStores","_authorizationServerMetadataStores","_optionStores","defaultStoreId","defaultNamespace","methods","oid4vciStoreDefaultMetadata","bind","oid4vciStoreDefaultIssuerOptions","oid4vciStoreIssuerOptions","oid4vciStoreDefaultStoreId","oid4vciStoreDefaultNamespace","oid4vciStoreGetIssuerOpts","oid4vciStoreHasIssuerOpts","oid4vciStorePersistIssuerOpts","oid4vciStoreRemoveIssuerOpts","oid4vciStoreClearAllIssuerOpts","oid4vciStoreGetMetadata","oid4vciStoreListMetadata","oid4vciStoreHasMetadata","oid4vciStorePersistMetadata","oid4vciStoreRemoveMetadata","oid4vciStoreClearAllMetadata","opts","defaultStore","issuerMetadataStores","Map","set","KeyValueStore","namespace","store","authorizationServerMetadataStores","Array","isArray","importMetadatas","issuerOptsStores","importIssuerOpts","forEach","opt","correlationId","storeId","stores","get","prefix","importOpts","metadataImports","metaImport","meta","existingMetadata","metadataType","metadataToPersist","overwriteExisting","deepMerge","metadata","existing","incoming","merged","key","Object","prototype","hasOwnProperty","call","incomingValue","existingValue","isPlainObject","undefined","has","args","storeIdStr","namespaceStr","issuerOpts","ttl","validation","getAsValueData","delete","clear","then","getMany","existingAuth","existingIssuer","Promise","resolve","Error","schema","require"]}
1
+ {"version":3,"sources":["../plugin.schema.json","../src/agent/OID4VCIStore.ts","../src/index.ts"],"sourcesContent":["{\n \"IDidAuthSiopOpAuthenticator\": {\n \"components\": {\n \"schemas\": {\n \"IGetSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSessionForSiop } \"\n },\n \"IRegisterSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"identifier\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"alias\": {\n \"type\": \"string\"\n },\n \"provider\": {\n \"type\": \"string\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n },\n \"services\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"did\", \"provider\", \"keys\", \"services\"]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"expiresIn\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"identifier\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.registerSessionForSiop } \"\n },\n \"IRemoveSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.removeSessionForSiop } \"\n },\n \"IAuthenticateWithSiopArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.authenticateWithSiop } \"\n },\n \"IResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": true\n },\n \"required\": [\"status\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.authenticateWithSiop & DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n },\n \"IGetSiopAuthenticationRequestFromRpArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"type\": \"string\"\n },\n \"requestPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"registration\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"jwt\", \"requestPayload\", \"registration\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"IGetSiopAuthenticationRequestDetailsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"credentialFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IAuthRequestDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"alsoKnownAs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"vpResponseOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"id\", \"vpResponseOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IVerifySiopAuthenticationRequestUriArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"ParsedAuthenticationRequestURI\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"VerifiedAuthorizationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"presentationDefinitions\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifyOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"payload\", \"verifyOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"ISendSiopAuthenticationResponseArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifiablePresentationResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n }\n },\n \"methods\": {\n \"getSessionForSiop\": {\n \"description\": \"Get SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"registerSessionForSiop\": {\n \"description\": \"Register SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRegisterSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"removeSessionForSiop\": {\n \"description\": \"Remove SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRemoveSiopSessionArgs\"\n },\n \"returnType\": \"boolean\"\n },\n \"authenticateWithSiop\": {\n \"description\": \"Authenticate using DID Auth SIOP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IAuthenticateWithSiopArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/Response\"\n }\n },\n \"getSiopAuthenticationRequestFromRP\": {\n \"description\": \"Get authentication request from RP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestFromRpArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ParsedAuthenticationRequestURI\"\n }\n },\n \"getSiopAuthenticationRequestDetails\": {\n \"description\": \"Get authentication request details\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestDetailsArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IAuthRequestDetails\"\n }\n },\n \"verifySiopAuthenticationRequestURI\": {\n \"description\": \"Verify authentication request URI\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IVerifySiopAuthenticationRequestUriArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerifiedAuthorizationRequest\"\n }\n },\n \"sendSiopAuthenticationResponse\": {\n \"description\": \"Send authentication response\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISendSiopAuthenticationResponseArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IRequiredContext\"\n }\n }\n }\n }\n }\n}\n","import { AuthorizationServerMetadata, IssuerMetadata } from '@sphereon/oid4vci-common'\nimport { IKeyValueStore, IValueData, KeyValueStore, ValueStoreType } from '@sphereon/ssi-sdk.kv-store-temp'\nimport { IAgentPlugin } from '@veramo/core'\nimport {\n IIssuerDefaultOpts,\n IIssuerMetadataImportArgs,\n IIssuerOptions,\n IIssuerOptsImportArgs,\n IIssuerOptsPersistArgs,\n IMetadataImportArgs,\n IMetadataPersistArgs,\n Ioid4vciStoreClearArgs,\n Ioid4vciStoreExistsArgs,\n IOid4vciStoreGetArgs,\n IOid4vciStoreListArgs,\n IOID4VCIStoreOpts,\n Ioid4vciStoreRemoveArgs,\n OptionalIssuerMetadata,\n OptionalIssuerMetadataValue,\n} from '../index'\n\nimport { IOID4VCIStore } from '../types/IOID4VCIStore'\n\nexport const oid4vciStoreMethods: Array<string> = [\n 'oid4vciStoreDefaultMetadata',\n 'oid4vciStoreDefaultIssuerOptions',\n 'oid4vciStoreDefaultStoreId',\n 'oid4vciStoreDefaultNamespace',\n 'oid4vciStoreGetIssuerOpts',\n 'oid4vciStoreHasIssuerOpts',\n 'oid4vciStorePersistIssuerOpts',\n 'oid4vciStoreRemoveIssuerOpts',\n 'oid4vciStoreClearAllIssuerOpts',\n 'oid4vciStoreGetMetadata',\n 'oid4vciStoreListMetadata',\n 'oid4vciStoreHasMetadata',\n 'oid4vciStorePersistMetadata',\n 'oid4vciStoreRemoveMetadata',\n 'oid4vciStoreClearAllMetadata'\n]\n\nexport class OID4VCIStore implements IAgentPlugin {\n get defaultOpts(): IIssuerDefaultOpts | undefined {\n return this._defaultOpts\n }\n\n set defaultOpts(value: IIssuerDefaultOpts | undefined) {\n this._defaultOpts = value\n }\n\n private readonly _issuerMetadataStores: Map<string, IKeyValueStore<IssuerMetadata>>\n private readonly _authorizationServerMetadataStores: Map<string, IKeyValueStore<AuthorizationServerMetadata>>\n private readonly _optionStores: Map<string, IKeyValueStore<IIssuerOptions>>\n private readonly defaultStoreId: string\n private readonly defaultNamespace: string\n\n private _defaultOpts?: IIssuerDefaultOpts\n\n readonly methods: IOID4VCIStore = {\n oid4vciStoreDefaultMetadata: this.oid4vciStoreDefaultMetadata.bind(this),\n oid4vciStoreDefaultIssuerOptions: this.oid4vciStoreIssuerOptions.bind(this),\n oid4vciStoreDefaultStoreId: this.oid4vciStoreDefaultStoreId.bind(this),\n oid4vciStoreDefaultNamespace: this.oid4vciStoreDefaultNamespace.bind(this),\n\n oid4vciStoreGetIssuerOpts: this.oid4vciStoreGetIssuerOpts.bind(this),\n oid4vciStoreHasIssuerOpts: this.oid4vciStoreHasIssuerOpts.bind(this),\n oid4vciStorePersistIssuerOpts: this.oid4vciStorePersistIssuerOpts.bind(this),\n oid4vciStoreRemoveIssuerOpts: this.oid4vciStoreRemoveIssuerOpts.bind(this),\n oid4vciStoreClearAllIssuerOpts: this.oid4vciStoreClearAllIssuerOpts.bind(this),\n\n oid4vciStoreGetMetadata: this.oid4vciStoreGetMetadata.bind(this),\n oid4vciStoreListMetadata: this.oid4vciStoreListMetadata.bind(this),\n oid4vciStoreHasMetadata: this.oid4vciStoreHasMetadata.bind(this),\n oid4vciStorePersistMetadata: this.oid4vciStorePersistMetadata.bind(this),\n oid4vciStoreRemoveMetadata: this.oid4vciStoreRemoveMetadata.bind(this),\n oid4vciStoreClearAllMetadata: this.oid4vciStoreClearAllMetadata.bind(this),\n }\n\n constructor(opts: IOID4VCIStoreOpts) {\n this.defaultStoreId = opts.defaultStore ?? '_default'\n this.defaultNamespace = opts.defaultNamespace ?? 'oid4vci'\n if (opts.defaultOpts) {\n this._defaultOpts = opts.defaultOpts\n }\n if (opts?.issuerMetadataStores && opts.issuerMetadataStores instanceof Map) {\n this._issuerMetadataStores = opts.issuerMetadataStores\n } else if (opts?.issuerMetadataStores) {\n this._issuerMetadataStores = new Map().set(this.defaultStoreId, opts.issuerMetadataStores)\n } else {\n this._issuerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IssuerMetadata>(),\n }),\n )\n }\n if (opts?.authorizationServerMetadataStores && opts.authorizationServerMetadataStores instanceof Map) {\n this._authorizationServerMetadataStores = opts.authorizationServerMetadataStores\n } else if (opts?.authorizationServerMetadataStores) {\n this._authorizationServerMetadataStores = new Map().set(this.defaultStoreId, opts.authorizationServerMetadataStores)\n } else {\n this._authorizationServerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, AuthorizationServerMetadata>(),\n }),\n )\n }\n\n if (opts && Array.isArray(opts?.importMetadatas)) {\n opts.importMetadatas.forEach((metaImport: IMetadataImportArgs) => {\n const meta = metaImport as IIssuerMetadataImportArgs\n void this.oid4vciStorePersistMetadata({\n metadataType: meta.metadataType,\n metadata: meta.metadata,\n storeId: meta.storeId ?? this.defaultStoreId,\n correlationId: meta.correlationId,\n namespace: meta.namespace ?? this.defaultNamespace,\n overwriteExisting: meta.overwriteExisting === undefined ? true : meta.overwriteExisting,\n })\n })\n }\n\n if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {\n this._optionStores = opts.issuerOptsStores\n } else if (opts?.issuerOptsStores) {\n this._optionStores = new Map().set(this.defaultStoreId, opts.issuerOptsStores)\n } else {\n this._optionStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IIssuerOptions>(),\n }),\n )\n }\n if (opts && Array.isArray(opts?.importIssuerOpts)) {\n opts.importIssuerOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n }\n\n private async oid4vciStoreGetIssuerOpts({ correlationId, storeId, namespace }: IOid4vciStoreGetArgs): Promise<IIssuerOptions | undefined> {\n return (\n (await this.store({ stores: this._optionStores, storeId }).get(\n this.prefix({\n namespace,\n correlationId,\n }),\n )) ?? this.defaultOpts\n )\n }\n\n public importIssuerOpts(importOpts: IIssuerOptsImportArgs[]) {\n importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n\n private async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).has(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStorePersistIssuerOpts(args: IIssuerOptsPersistArgs): Promise<IValueData<IIssuerOptions>> {\n const storeId = this.storeIdStr(args)\n const namespace = this.namespaceStr(args)\n const { correlationId, issuerOpts, ttl } = args\n if (args?.validation !== false) {\n //todo\n }\n const existing = await this.store({ stores: this._optionStores, storeId }).getAsValueData(\n this.prefix({\n namespace,\n correlationId,\n }),\n )\n if (!existing.value || (existing.value && args.overwriteExisting !== false)) {\n return await this.store({ stores: this._optionStores, storeId }).set(\n this.prefix({\n namespace,\n correlationId,\n }),\n issuerOpts,\n ttl,\n )\n }\n return existing\n }\n\n private async oid4vciStoreRemoveIssuerOpts({ storeId, correlationId, namespace }: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).delete(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStoreClearAllIssuerOpts({ storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n return await this.store({ stores: this._optionStores, storeId })\n .clear()\n .then(() => true)\n }\n\n private async oid4vciStoreGetMetadata({\n metadataType,\n correlationId,\n storeId,\n namespace,\n }: IOid4vciStoreGetArgs): Promise<IssuerMetadata | AuthorizationServerMetadata | undefined> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n }\n return undefined\n }\n\n private async oid4vciStoreListMetadata({ metadataType, storeId, namespace }: IOid4vciStoreListArgs): Promise<Array<OptionalIssuerMetadata>> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n }\n return []\n }\n\n private async oid4vciStoreHasMetadata({ metadataType, correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n }\n return false\n }\n\n private async oid4vciStorePersistMetadata(args: IMetadataPersistArgs): Promise<OptionalIssuerMetadataValue> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n const { correlationId, metadata, ttl, metadataType } = args\n\n if (args?.validation !== false) {\n //todo\n }\n\n switch (metadataType) {\n case 'authorizationServer':\n const existingAuth = await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingAuth.value || (existingAuth.value && args.overwriteExisting !== false)) {\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as AuthorizationServerMetadata, ttl)\n }\n return existingAuth\n case 'issuer':\n const existingIssuer = await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingIssuer.value || (existingIssuer.value && args.overwriteExisting !== false)) {\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as IssuerMetadata, ttl)\n }\n return existingIssuer\n }\n return undefined\n }\n\n private async oid4vciStoreRemoveMetadata(args: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n\n switch (args.metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n }\n return false\n }\n\n private async oid4vciStoreClearAllMetadata({ metadataType, storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n case 'issuer':\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n }\n return false\n }\n\n private oid4vciStoreIssuerOptions(): Promise<IKeyValueStore<IIssuerOptions>> {\n return Promise.resolve(this.store({ stores: this._optionStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultMetadata(): Promise<IKeyValueStore<IssuerMetadata>> {\n return Promise.resolve(this.store({ stores: this._issuerMetadataStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultStoreId(): Promise<string> {\n return Promise.resolve(this.defaultStoreId)\n }\n\n private oid4vciStoreDefaultNamespace(): Promise<string> {\n return Promise.resolve(this.defaultNamespace)\n }\n\n private store<T extends ValueStoreType>(args: { stores: Map<string, IKeyValueStore<T>>; storeId?: string }): IKeyValueStore<T> {\n const storeId = this.storeIdStr({ storeId: args.storeId })\n const store = args.stores.get(storeId)\n if (!store) {\n throw Error(`Could not get issuer metadata store: ${storeId}`)\n }\n return store\n }\n\n private storeIdStr({ storeId }: { storeId?: string }): string {\n return storeId ?? this.defaultStoreId\n }\n\n private namespaceStr({ namespace }: { namespace?: string }): string {\n return namespace ?? this.defaultNamespace\n }\n\n private prefix({ namespace, correlationId }: { namespace?: string; correlationId: string }): string {\n return `${this.namespaceStr({ namespace })}:${correlationId}`\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { OID4VCIStore, oid4vciStoreMethods } from './agent/OID4VCIStore'\nexport * from './types/IOID4VCIStore'\n"],"mappings":"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","names":["KeyValueStore","oid4vciStoreMethods","OID4VCIStore","defaultOpts","_defaultOpts","value","_issuerMetadataStores","_authorizationServerMetadataStores","_optionStores","defaultStoreId","defaultNamespace","methods","oid4vciStoreDefaultMetadata","bind","oid4vciStoreDefaultIssuerOptions","oid4vciStoreIssuerOptions","oid4vciStoreDefaultStoreId","oid4vciStoreDefaultNamespace","oid4vciStoreGetIssuerOpts","oid4vciStoreHasIssuerOpts","oid4vciStorePersistIssuerOpts","oid4vciStoreRemoveIssuerOpts","oid4vciStoreClearAllIssuerOpts","oid4vciStoreGetMetadata","oid4vciStoreListMetadata","oid4vciStoreHasMetadata","oid4vciStorePersistMetadata","oid4vciStoreRemoveMetadata","oid4vciStoreClearAllMetadata","opts","defaultStore","issuerMetadataStores","Map","set","KeyValueStore","namespace","store","authorizationServerMetadataStores","Array","isArray","importMetadatas","forEach","metaImport","meta","metadataType","metadata","storeId","correlationId","overwriteExisting","undefined","issuerOptsStores","importIssuerOpts","opt","stores","get","prefix","importOpts","has","args","storeIdStr","namespaceStr","issuerOpts","ttl","validation","existing","getAsValueData","delete","clear","then","getMany","existingAuth","existingIssuer","Promise","resolve","Error","schema","require"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@sphereon/ssi-sdk.oid4vci-issuer-store",
3
- "version": "0.36.1-feature.SSISDK.89.metadata.persistence.103+7d41f865",
3
+ "version": "0.36.1-feature.fides.fixes.111+275075fd",
4
4
  "source": "src/index.ts",
5
5
  "type": "module",
6
6
  "main": "./dist/index.cjs",
@@ -26,10 +26,10 @@
26
26
  "build": "tsup --config ../../tsup.config.ts --tsconfig ../../tsconfig.tsup.json"
27
27
  },
28
28
  "dependencies": {
29
- "@sphereon/oid4vci-common": "0.20.1-next.3",
30
- "@sphereon/ssi-sdk-ext.did-utils": "0.36.1-feature.SSISDK.89.metadata.persistence.103+7d41f865",
31
- "@sphereon/ssi-sdk-ext.identifier-resolution": "0.36.1-feature.SSISDK.89.metadata.persistence.103+7d41f865",
32
- "@sphereon/ssi-sdk.kv-store-temp": "0.36.1-feature.SSISDK.89.metadata.persistence.103+7d41f865",
29
+ "@sphereon/oid4vci-common": "0.20.1-next.8",
30
+ "@sphereon/ssi-sdk-ext.did-utils": "0.36.1-feature.fides.fixes.111+275075fd",
31
+ "@sphereon/ssi-sdk-ext.identifier-resolution": "0.36.1-feature.fides.fixes.111+275075fd",
32
+ "@sphereon/ssi-sdk.kv-store-temp": "0.36.1-feature.fides.fixes.111+275075fd",
33
33
  "@veramo/core": "4.2.0",
34
34
  "@veramo/credential-w3c": "4.2.0",
35
35
  "cross-fetch": "^4.1.0",
@@ -37,7 +37,7 @@
37
37
  },
38
38
  "devDependencies": {
39
39
  "@sphereon/did-uni-client": "^0.6.3",
40
- "@sphereon/ssi-sdk.vc-status-list": "0.36.1-feature.SSISDK.89.metadata.persistence.103+7d41f865",
40
+ "@sphereon/ssi-sdk.vc-status-list": "0.36.1-feature.fides.fixes.111+275075fd",
41
41
  "@types/uuid": "^9.0.8",
42
42
  "@veramo/did-provider-key": "4.2.0",
43
43
  "@veramo/did-resolver": "4.2.0",
@@ -71,5 +71,5 @@
71
71
  "OpenID Connect",
72
72
  "Authenticator"
73
73
  ],
74
- "gitHead": "7d41f86553fed321199e36cb6aacca36cb99032f"
74
+ "gitHead": "275075fdc7753426df398e771e7ecdf28b7d1e3b"
75
75
  }
@@ -36,7 +36,7 @@ export const oid4vciStoreMethods: Array<string> = [
36
36
  'oid4vciStoreHasMetadata',
37
37
  'oid4vciStorePersistMetadata',
38
38
  'oid4vciStoreRemoveMetadata',
39
- 'oid4vciStoreClearAllMetadata',
39
+ 'oid4vciStoreClearAllMetadata'
40
40
  ]
41
41
 
42
42
  export class OID4VCIStore implements IAgentPlugin {
@@ -110,7 +110,17 @@ export class OID4VCIStore implements IAgentPlugin {
110
110
  }
111
111
 
112
112
  if (opts && Array.isArray(opts?.importMetadatas)) {
113
- void this.importMetadatas(opts.importMetadatas)
113
+ opts.importMetadatas.forEach((metaImport: IMetadataImportArgs) => {
114
+ const meta = metaImport as IIssuerMetadataImportArgs
115
+ void this.oid4vciStorePersistMetadata({
116
+ metadataType: meta.metadataType,
117
+ metadata: meta.metadata,
118
+ storeId: meta.storeId ?? this.defaultStoreId,
119
+ correlationId: meta.correlationId,
120
+ namespace: meta.namespace ?? this.defaultNamespace,
121
+ overwriteExisting: meta.overwriteExisting === undefined ? true : meta.overwriteExisting,
122
+ })
123
+ })
114
124
  }
115
125
 
116
126
  if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {
@@ -146,87 +156,6 @@ export class OID4VCIStore implements IAgentPlugin {
146
156
  importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))
147
157
  }
148
158
 
149
- private async importMetadatas(metadataImports: IMetadataImportArgs[]): Promise<void> {
150
- for (const metaImport of metadataImports) {
151
- const meta = metaImport as IIssuerMetadataImportArgs
152
- const storeId = meta.storeId ?? this.defaultStoreId
153
- const namespace = meta.namespace ?? this.defaultNamespace
154
- const correlationId = meta.correlationId
155
-
156
- const existingMetadata = await this.oid4vciStoreGetMetadata({
157
- metadataType: meta.metadataType,
158
- correlationId,
159
- storeId,
160
- namespace,
161
- })
162
-
163
- let metadataToPersist: IssuerMetadata | AuthorizationServerMetadata
164
-
165
- if (existingMetadata) {
166
- // If overwriteExisting is explicitly false, we skip this import if data exists
167
- if (meta.overwriteExisting === false) {
168
- continue
169
- }
170
- // Otherwise, we perform a deep merge.
171
- metadataToPersist = this.deepMerge(existingMetadata, meta.metadata)
172
- } else {
173
- metadataToPersist = meta.metadata
174
- }
175
-
176
- await this.oid4vciStorePersistMetadata({
177
- metadataType: meta.metadataType,
178
- metadata: metadataToPersist,
179
- storeId,
180
- correlationId,
181
- namespace,
182
- // We set this to true because we have already handled the merge/overwrite logic above.
183
- // We are now saving the final, combined object.
184
- overwriteExisting: true,
185
- })
186
- }
187
- }
188
-
189
- /**
190
- * Generic Deep Merge.
191
- * - Recursively merges objects.
192
- * - Overwrites primitives and arrays (Arrays are treated as values).
193
- * - Naturally handles 'credential_configurations_supported' by merging the keys of the map.
194
- */
195
- private deepMerge<T extends Record<string, any>>(existing: T, incoming: T): T {
196
- if (!incoming) {
197
- return existing
198
- }
199
- if (!existing) {
200
- return incoming
201
- }
202
-
203
- const merged = { ...existing }
204
-
205
- for (const key in incoming) {
206
- if (!Object.prototype.hasOwnProperty.call(incoming, key)) {
207
- continue
208
- }
209
-
210
- const incomingValue = incoming[key]
211
- const existingValue = existing[key]
212
-
213
- if (this.isPlainObject(incomingValue) && this.isPlainObject(existingValue)) {
214
- // Recursively merge objects
215
- merged[key] = this.deepMerge(existingValue, incomingValue) as T[Extract<keyof T, string>]
216
- } else if (incomingValue !== undefined) {
217
- // Overwrite primitives, arrays, or if existing value was undefined
218
- merged[key] = incomingValue
219
- }
220
- }
221
-
222
- return merged
223
- }
224
-
225
- // Type guard to check if value is a plain object (and not an array or null)
226
- private isPlainObject(value: unknown): value is Record<string, any> {
227
- return typeof value === 'object' && value !== null && !Array.isArray(value)
228
- }
229
-
230
159
  private async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {
231
160
  return this.store({ stores: this._optionStores, storeId }).has(this.prefix({ namespace, correlationId }))
232
161
  }