@sphereon/ssi-sdk.oid4vci-issuer-store 0.36.1-feature.SSISDK.89.metadata.persistence.103 → 0.36.1-feature.SSISDK.97.branding.incremental.sync.128

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
@@ -443,9 +443,6 @@ var OID4VCIStore = class {
443
443
  store: /* @__PURE__ */ new Map()
444
444
  }));
445
445
  }
446
- if (opts && Array.isArray(opts?.importMetadatas)) {
447
- void this.importMetadatas(opts.importMetadatas);
448
- }
449
446
  if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {
450
447
  this._optionStores = opts.issuerOptsStores;
451
448
  } else if (opts?.issuerOptsStores) {
@@ -459,6 +456,9 @@ var OID4VCIStore = class {
459
456
  if (opts && Array.isArray(opts?.importIssuerOpts)) {
460
457
  opts.importIssuerOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt));
461
458
  }
459
+ if (opts && Array.isArray(opts?.importMetadatas)) {
460
+ void this.importMetadatas(opts.importMetadatas);
461
+ }
462
462
  }
463
463
  async oid4vciStoreGetIssuerOpts({ correlationId, storeId, namespace }) {
464
464
  return await this.store({
@@ -499,18 +499,10 @@ var OID4VCIStore = class {
499
499
  storeId,
500
500
  correlationId,
501
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
502
  overwriteExisting: true
505
503
  });
506
504
  }
507
505
  }
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
506
  deepMerge(existing, incoming) {
515
507
  if (!incoming) {
516
508
  return existing;
@@ -535,9 +527,8 @@ var OID4VCIStore = class {
535
527
  }
536
528
  return merged;
537
529
  }
538
- // Type guard to check if value is a plain object (and not an array or null)
539
530
  isPlainObject(value) {
540
- return typeof value === "object" && value !== null && !Array.isArray(value);
531
+ return value !== null && typeof value === "object" && Object.getPrototypeOf(value) === Object.prototype;
541
532
  }
542
533
  async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }) {
543
534
  return this.store({
@@ -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?.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 if (opts && Array.isArray(opts?.importMetadatas)) {\n void this.importMetadatas(opts.importMetadatas)\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 public 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 (meta.overwriteExisting === false) {\n continue\n }\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 overwriteExisting: true,\n })\n }\n }\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 merged[key] = this.deepMerge(existingValue, incomingValue) as T[Extract<keyof T, string>]\n } else if (incomingValue !== undefined) {\n merged[key] = incomingValue\n }\n }\n\n return merged\n }\n\n private isPlainObject(value: any): boolean {\n return value !== null && typeof value === 'object' && Object.getPrototypeOf(value) === Object.prototype\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","issuerOptsStores","Array","isArray","importIssuerOpts","forEach","opt","importMetadatas","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","getPrototypeOf","has","args","storeIdStr","namespaceStr","issuerOpts","ttl","validation","getAsValueData","delete","clear","then","getMany","existingAuth","existingIssuer","Promise","resolve","Error","schema","require"]}
package/dist/index.d.cts CHANGED
@@ -116,13 +116,7 @@ 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
- */
119
+ importMetadatas(metadataImports: IMetadataImportArgs[]): Promise<void>;
126
120
  private deepMerge;
127
121
  private isPlainObject;
128
122
  private oid4vciStoreHasIssuerOpts;
package/dist/index.d.ts CHANGED
@@ -116,13 +116,7 @@ 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
- */
119
+ importMetadatas(metadataImports: IMetadataImportArgs[]): Promise<void>;
126
120
  private deepMerge;
127
121
  private isPlainObject;
128
122
  private oid4vciStoreHasIssuerOpts;
package/dist/index.js CHANGED
@@ -418,9 +418,6 @@ var OID4VCIStore = class {
418
418
  store: /* @__PURE__ */ new Map()
419
419
  }));
420
420
  }
421
- if (opts && Array.isArray(opts?.importMetadatas)) {
422
- void this.importMetadatas(opts.importMetadatas);
423
- }
424
421
  if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {
425
422
  this._optionStores = opts.issuerOptsStores;
426
423
  } else if (opts?.issuerOptsStores) {
@@ -434,6 +431,9 @@ var OID4VCIStore = class {
434
431
  if (opts && Array.isArray(opts?.importIssuerOpts)) {
435
432
  opts.importIssuerOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt));
436
433
  }
434
+ if (opts && Array.isArray(opts?.importMetadatas)) {
435
+ void this.importMetadatas(opts.importMetadatas);
436
+ }
437
437
  }
438
438
  async oid4vciStoreGetIssuerOpts({ correlationId, storeId, namespace }) {
439
439
  return await this.store({
@@ -474,18 +474,10 @@ var OID4VCIStore = class {
474
474
  storeId,
475
475
  correlationId,
476
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
477
  overwriteExisting: true
480
478
  });
481
479
  }
482
480
  }
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
481
  deepMerge(existing, incoming) {
490
482
  if (!incoming) {
491
483
  return existing;
@@ -510,9 +502,8 @@ var OID4VCIStore = class {
510
502
  }
511
503
  return merged;
512
504
  }
513
- // Type guard to check if value is a plain object (and not an array or null)
514
505
  isPlainObject(value) {
515
- return typeof value === "object" && value !== null && !Array.isArray(value);
506
+ return value !== null && typeof value === "object" && Object.getPrototypeOf(value) === Object.prototype;
516
507
  }
517
508
  async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }) {
518
509
  return this.store({
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?.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 if (opts && Array.isArray(opts?.importMetadatas)) {\n void this.importMetadatas(opts.importMetadatas)\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 public 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 (meta.overwriteExisting === false) {\n continue\n }\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 overwriteExisting: true,\n })\n }\n }\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 merged[key] = this.deepMerge(existingValue, incomingValue) as T[Extract<keyof T, string>]\n } else if (incomingValue !== undefined) {\n merged[key] = incomingValue\n }\n }\n\n return merged\n }\n\n private isPlainObject(value: any): boolean {\n return value !== null && typeof value === 'object' && Object.getPrototypeOf(value) === Object.prototype\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","issuerOptsStores","Array","isArray","importIssuerOpts","forEach","opt","importMetadatas","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","getPrototypeOf","has","args","storeIdStr","namespaceStr","issuerOpts","ttl","validation","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.SSISDK.97.branding.incremental.sync.128+33ba68a0",
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.13",
30
+ "@sphereon/ssi-sdk-ext.did-utils": "0.36.1-feature.SSISDK.97.branding.incremental.sync.128+33ba68a0",
31
+ "@sphereon/ssi-sdk-ext.identifier-resolution": "0.36.1-feature.SSISDK.97.branding.incremental.sync.128+33ba68a0",
32
+ "@sphereon/ssi-sdk.kv-store-temp": "0.36.1-feature.SSISDK.97.branding.incremental.sync.128+33ba68a0",
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.SSISDK.97.branding.incremental.sync.128+33ba68a0",
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": "33ba68a0b288b6d50d847b9aaaea0553915efe98"
75
75
  }
@@ -109,10 +109,6 @@ export class OID4VCIStore implements IAgentPlugin {
109
109
  )
110
110
  }
111
111
 
112
- if (opts && Array.isArray(opts?.importMetadatas)) {
113
- void this.importMetadatas(opts.importMetadatas)
114
- }
115
-
116
112
  if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {
117
113
  this._optionStores = opts.issuerOptsStores
118
114
  } else if (opts?.issuerOptsStores) {
@@ -129,6 +125,10 @@ export class OID4VCIStore implements IAgentPlugin {
129
125
  if (opts && Array.isArray(opts?.importIssuerOpts)) {
130
126
  opts.importIssuerOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))
131
127
  }
128
+
129
+ if (opts && Array.isArray(opts?.importMetadatas)) {
130
+ void this.importMetadatas(opts.importMetadatas)
131
+ }
132
132
  }
133
133
 
134
134
  private async oid4vciStoreGetIssuerOpts({ correlationId, storeId, namespace }: IOid4vciStoreGetArgs): Promise<IIssuerOptions | undefined> {
@@ -146,7 +146,7 @@ export class OID4VCIStore implements IAgentPlugin {
146
146
  importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))
147
147
  }
148
148
 
149
- private async importMetadatas(metadataImports: IMetadataImportArgs[]): Promise<void> {
149
+ public async importMetadatas(metadataImports: IMetadataImportArgs[]): Promise<void> {
150
150
  for (const metaImport of metadataImports) {
151
151
  const meta = metaImport as IIssuerMetadataImportArgs
152
152
  const storeId = meta.storeId ?? this.defaultStoreId
@@ -163,11 +163,9 @@ export class OID4VCIStore implements IAgentPlugin {
163
163
  let metadataToPersist: IssuerMetadata | AuthorizationServerMetadata
164
164
 
165
165
  if (existingMetadata) {
166
- // If overwriteExisting is explicitly false, we skip this import if data exists
167
166
  if (meta.overwriteExisting === false) {
168
167
  continue
169
168
  }
170
- // Otherwise, we perform a deep merge.
171
169
  metadataToPersist = this.deepMerge(existingMetadata, meta.metadata)
172
170
  } else {
173
171
  metadataToPersist = meta.metadata
@@ -179,19 +177,11 @@ export class OID4VCIStore implements IAgentPlugin {
179
177
  storeId,
180
178
  correlationId,
181
179
  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
180
  overwriteExisting: true,
185
181
  })
186
182
  }
187
183
  }
188
184
 
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
185
  private deepMerge<T extends Record<string, any>>(existing: T, incoming: T): T {
196
186
  if (!incoming) {
197
187
  return existing
@@ -211,10 +201,8 @@ export class OID4VCIStore implements IAgentPlugin {
211
201
  const existingValue = existing[key]
212
202
 
213
203
  if (this.isPlainObject(incomingValue) && this.isPlainObject(existingValue)) {
214
- // Recursively merge objects
215
204
  merged[key] = this.deepMerge(existingValue, incomingValue) as T[Extract<keyof T, string>]
216
205
  } else if (incomingValue !== undefined) {
217
- // Overwrite primitives, arrays, or if existing value was undefined
218
206
  merged[key] = incomingValue
219
207
  }
220
208
  }
@@ -222,9 +210,8 @@ export class OID4VCIStore implements IAgentPlugin {
222
210
  return merged
223
211
  }
224
212
 
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)
213
+ private isPlainObject(value: any): boolean {
214
+ return value !== null && typeof value === 'object' && Object.getPrototypeOf(value) === Object.prototype
228
215
  }
229
216
 
230
217
  private async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {