@sphereon/ssi-sdk.oid4vci-issuer-store 0.36.1-feature.SSISDK.89.metadata.persistence.103 → 0.36.1-feature.fides.fixes.117
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 +11 -68
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +0 -9
- package/dist/index.d.ts +0 -9
- package/dist/index.js +11 -68
- package/dist/index.js.map +1 -1
- package/package.json +7 -7
- package/src/agent/OID4VCIStore.ts +12 -83
package/dist/index.cjs
CHANGED
|
@@ -444,7 +444,17 @@ var OID4VCIStore = class {
|
|
|
444
444
|
}));
|
|
445
445
|
}
|
|
446
446
|
if (opts && Array.isArray(opts?.importMetadatas)) {
|
|
447
|
-
|
|
447
|
+
opts.importMetadatas.forEach((metaImport) => {
|
|
448
|
+
const meta = metaImport;
|
|
449
|
+
void this.oid4vciStorePersistMetadata({
|
|
450
|
+
metadataType: meta.metadataType,
|
|
451
|
+
metadata: meta.metadata,
|
|
452
|
+
storeId: meta.storeId ?? this.defaultStoreId,
|
|
453
|
+
correlationId: meta.correlationId,
|
|
454
|
+
namespace: meta.namespace ?? this.defaultNamespace,
|
|
455
|
+
overwriteExisting: meta.overwriteExisting === void 0 ? true : meta.overwriteExisting
|
|
456
|
+
});
|
|
457
|
+
});
|
|
448
458
|
}
|
|
449
459
|
if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {
|
|
450
460
|
this._optionStores = opts.issuerOptsStores;
|
|
@@ -472,73 +482,6 @@ var OID4VCIStore = class {
|
|
|
472
482
|
importIssuerOpts(importOpts) {
|
|
473
483
|
importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt));
|
|
474
484
|
}
|
|
475
|
-
async importMetadatas(metadataImports) {
|
|
476
|
-
for (const metaImport of metadataImports) {
|
|
477
|
-
const meta = metaImport;
|
|
478
|
-
const storeId = meta.storeId ?? this.defaultStoreId;
|
|
479
|
-
const namespace = meta.namespace ?? this.defaultNamespace;
|
|
480
|
-
const correlationId = meta.correlationId;
|
|
481
|
-
const existingMetadata = await this.oid4vciStoreGetMetadata({
|
|
482
|
-
metadataType: meta.metadataType,
|
|
483
|
-
correlationId,
|
|
484
|
-
storeId,
|
|
485
|
-
namespace
|
|
486
|
-
});
|
|
487
|
-
let metadataToPersist;
|
|
488
|
-
if (existingMetadata) {
|
|
489
|
-
if (meta.overwriteExisting === false) {
|
|
490
|
-
continue;
|
|
491
|
-
}
|
|
492
|
-
metadataToPersist = this.deepMerge(existingMetadata, meta.metadata);
|
|
493
|
-
} else {
|
|
494
|
-
metadataToPersist = meta.metadata;
|
|
495
|
-
}
|
|
496
|
-
await this.oid4vciStorePersistMetadata({
|
|
497
|
-
metadataType: meta.metadataType,
|
|
498
|
-
metadata: metadataToPersist,
|
|
499
|
-
storeId,
|
|
500
|
-
correlationId,
|
|
501
|
-
namespace,
|
|
502
|
-
// We set this to true because we have already handled the merge/overwrite logic above.
|
|
503
|
-
// We are now saving the final, combined object.
|
|
504
|
-
overwriteExisting: true
|
|
505
|
-
});
|
|
506
|
-
}
|
|
507
|
-
}
|
|
508
|
-
/**
|
|
509
|
-
* Generic Deep Merge.
|
|
510
|
-
* - Recursively merges objects.
|
|
511
|
-
* - Overwrites primitives and arrays (Arrays are treated as values).
|
|
512
|
-
* - Naturally handles 'credential_configurations_supported' by merging the keys of the map.
|
|
513
|
-
*/
|
|
514
|
-
deepMerge(existing, incoming) {
|
|
515
|
-
if (!incoming) {
|
|
516
|
-
return existing;
|
|
517
|
-
}
|
|
518
|
-
if (!existing) {
|
|
519
|
-
return incoming;
|
|
520
|
-
}
|
|
521
|
-
const merged = {
|
|
522
|
-
...existing
|
|
523
|
-
};
|
|
524
|
-
for (const key in incoming) {
|
|
525
|
-
if (!Object.prototype.hasOwnProperty.call(incoming, key)) {
|
|
526
|
-
continue;
|
|
527
|
-
}
|
|
528
|
-
const incomingValue = incoming[key];
|
|
529
|
-
const existingValue = existing[key];
|
|
530
|
-
if (this.isPlainObject(incomingValue) && this.isPlainObject(existingValue)) {
|
|
531
|
-
merged[key] = this.deepMerge(existingValue, incomingValue);
|
|
532
|
-
} else if (incomingValue !== void 0) {
|
|
533
|
-
merged[key] = incomingValue;
|
|
534
|
-
}
|
|
535
|
-
}
|
|
536
|
-
return merged;
|
|
537
|
-
}
|
|
538
|
-
// Type guard to check if value is a plain object (and not an array or null)
|
|
539
|
-
isPlainObject(value) {
|
|
540
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
541
|
-
}
|
|
542
485
|
async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }) {
|
|
543
486
|
return this.store({
|
|
544
487
|
stores: this._optionStores,
|
package/dist/index.cjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/OID4VCIStore.ts"],"sourcesContent":["{\n \"IDidAuthSiopOpAuthenticator\": {\n \"components\": {\n \"schemas\": {\n \"IGetSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSessionForSiop } \"\n },\n \"IRegisterSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"identifier\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"alias\": {\n \"type\": \"string\"\n },\n \"provider\": {\n \"type\": \"string\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n },\n \"services\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"did\", \"provider\", \"keys\", \"services\"]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"expiresIn\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"identifier\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.registerSessionForSiop } \"\n },\n \"IRemoveSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.removeSessionForSiop } \"\n },\n \"IAuthenticateWithSiopArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.authenticateWithSiop } \"\n },\n \"IResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": true\n },\n \"required\": [\"status\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.authenticateWithSiop & DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n },\n \"IGetSiopAuthenticationRequestFromRpArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"type\": \"string\"\n },\n \"requestPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"registration\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"jwt\", \"requestPayload\", \"registration\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"IGetSiopAuthenticationRequestDetailsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"credentialFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IAuthRequestDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"alsoKnownAs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"vpResponseOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"id\", \"vpResponseOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IVerifySiopAuthenticationRequestUriArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"ParsedAuthenticationRequestURI\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"VerifiedAuthorizationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"presentationDefinitions\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifyOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"payload\", \"verifyOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"ISendSiopAuthenticationResponseArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifiablePresentationResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n }\n },\n \"methods\": {\n \"getSessionForSiop\": {\n \"description\": \"Get SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"registerSessionForSiop\": {\n \"description\": \"Register SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRegisterSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"removeSessionForSiop\": {\n \"description\": \"Remove SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRemoveSiopSessionArgs\"\n },\n \"returnType\": \"boolean\"\n },\n \"authenticateWithSiop\": {\n \"description\": \"Authenticate using DID Auth SIOP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IAuthenticateWithSiopArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/Response\"\n }\n },\n \"getSiopAuthenticationRequestFromRP\": {\n \"description\": \"Get authentication request from RP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestFromRpArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ParsedAuthenticationRequestURI\"\n }\n },\n \"getSiopAuthenticationRequestDetails\": {\n \"description\": \"Get authentication request details\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestDetailsArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IAuthRequestDetails\"\n }\n },\n \"verifySiopAuthenticationRequestURI\": {\n \"description\": \"Verify authentication request URI\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IVerifySiopAuthenticationRequestUriArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerifiedAuthorizationRequest\"\n }\n },\n \"sendSiopAuthenticationResponse\": {\n \"description\": \"Send authentication response\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISendSiopAuthenticationResponseArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IRequiredContext\"\n }\n }\n }\n }\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { OID4VCIStore, oid4vciStoreMethods } from './agent/OID4VCIStore'\nexport * from './types/IOID4VCIStore'\n","import { AuthorizationServerMetadata, IssuerMetadata } from '@sphereon/oid4vci-common'\nimport { IKeyValueStore, IValueData, KeyValueStore, ValueStoreType } from '@sphereon/ssi-sdk.kv-store-temp'\nimport { IAgentPlugin } from '@veramo/core'\nimport {\n IIssuerDefaultOpts,\n IIssuerMetadataImportArgs,\n IIssuerOptions,\n IIssuerOptsImportArgs,\n IIssuerOptsPersistArgs,\n IMetadataImportArgs,\n IMetadataPersistArgs,\n Ioid4vciStoreClearArgs,\n Ioid4vciStoreExistsArgs,\n IOid4vciStoreGetArgs,\n IOid4vciStoreListArgs,\n IOID4VCIStoreOpts,\n Ioid4vciStoreRemoveArgs,\n OptionalIssuerMetadata,\n OptionalIssuerMetadataValue,\n} from '../index'\n\nimport { IOID4VCIStore } from '../types/IOID4VCIStore'\n\nexport const oid4vciStoreMethods: Array<string> = [\n 'oid4vciStoreDefaultMetadata',\n 'oid4vciStoreDefaultIssuerOptions',\n 'oid4vciStoreDefaultStoreId',\n 'oid4vciStoreDefaultNamespace',\n 'oid4vciStoreGetIssuerOpts',\n 'oid4vciStoreHasIssuerOpts',\n 'oid4vciStorePersistIssuerOpts',\n 'oid4vciStoreRemoveIssuerOpts',\n 'oid4vciStoreClearAllIssuerOpts',\n 'oid4vciStoreGetMetadata',\n 'oid4vciStoreListMetadata',\n 'oid4vciStoreHasMetadata',\n 'oid4vciStorePersistMetadata',\n 'oid4vciStoreRemoveMetadata',\n 'oid4vciStoreClearAllMetadata',\n]\n\nexport class OID4VCIStore implements IAgentPlugin {\n get defaultOpts(): IIssuerDefaultOpts | undefined {\n return this._defaultOpts\n }\n\n set defaultOpts(value: IIssuerDefaultOpts | undefined) {\n this._defaultOpts = value\n }\n\n private readonly _issuerMetadataStores: Map<string, IKeyValueStore<IssuerMetadata>>\n private readonly _authorizationServerMetadataStores: Map<string, IKeyValueStore<AuthorizationServerMetadata>>\n private readonly _optionStores: Map<string, IKeyValueStore<IIssuerOptions>>\n private readonly defaultStoreId: string\n private readonly defaultNamespace: string\n\n private _defaultOpts?: IIssuerDefaultOpts\n\n readonly methods: IOID4VCIStore = {\n oid4vciStoreDefaultMetadata: this.oid4vciStoreDefaultMetadata.bind(this),\n oid4vciStoreDefaultIssuerOptions: this.oid4vciStoreIssuerOptions.bind(this),\n oid4vciStoreDefaultStoreId: this.oid4vciStoreDefaultStoreId.bind(this),\n oid4vciStoreDefaultNamespace: this.oid4vciStoreDefaultNamespace.bind(this),\n\n oid4vciStoreGetIssuerOpts: this.oid4vciStoreGetIssuerOpts.bind(this),\n oid4vciStoreHasIssuerOpts: this.oid4vciStoreHasIssuerOpts.bind(this),\n oid4vciStorePersistIssuerOpts: this.oid4vciStorePersistIssuerOpts.bind(this),\n oid4vciStoreRemoveIssuerOpts: this.oid4vciStoreRemoveIssuerOpts.bind(this),\n oid4vciStoreClearAllIssuerOpts: this.oid4vciStoreClearAllIssuerOpts.bind(this),\n\n oid4vciStoreGetMetadata: this.oid4vciStoreGetMetadata.bind(this),\n oid4vciStoreListMetadata: this.oid4vciStoreListMetadata.bind(this),\n oid4vciStoreHasMetadata: this.oid4vciStoreHasMetadata.bind(this),\n oid4vciStorePersistMetadata: this.oid4vciStorePersistMetadata.bind(this),\n oid4vciStoreRemoveMetadata: this.oid4vciStoreRemoveMetadata.bind(this),\n oid4vciStoreClearAllMetadata: this.oid4vciStoreClearAllMetadata.bind(this),\n }\n\n constructor(opts: IOID4VCIStoreOpts) {\n this.defaultStoreId = opts.defaultStore ?? '_default'\n this.defaultNamespace = opts.defaultNamespace ?? 'oid4vci'\n if (opts.defaultOpts) {\n this._defaultOpts = opts.defaultOpts\n }\n if (opts?.issuerMetadataStores && opts.issuerMetadataStores instanceof Map) {\n this._issuerMetadataStores = opts.issuerMetadataStores\n } else if (opts?.issuerMetadataStores) {\n this._issuerMetadataStores = new Map().set(this.defaultStoreId, opts.issuerMetadataStores)\n } else {\n this._issuerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IssuerMetadata>(),\n }),\n )\n }\n if (opts?.authorizationServerMetadataStores && opts.authorizationServerMetadataStores instanceof Map) {\n this._authorizationServerMetadataStores = opts.authorizationServerMetadataStores\n } else if (opts?.authorizationServerMetadataStores) {\n this._authorizationServerMetadataStores = new Map().set(this.defaultStoreId, opts.authorizationServerMetadataStores)\n } else {\n this._authorizationServerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, AuthorizationServerMetadata>(),\n }),\n )\n }\n\n if (opts && Array.isArray(opts?.importMetadatas)) {\n void this.importMetadatas(opts.importMetadatas)\n }\n\n if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {\n this._optionStores = opts.issuerOptsStores\n } else if (opts?.issuerOptsStores) {\n this._optionStores = new Map().set(this.defaultStoreId, opts.issuerOptsStores)\n } else {\n this._optionStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IIssuerOptions>(),\n }),\n )\n }\n if (opts && Array.isArray(opts?.importIssuerOpts)) {\n opts.importIssuerOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n }\n\n private async oid4vciStoreGetIssuerOpts({ correlationId, storeId, namespace }: IOid4vciStoreGetArgs): Promise<IIssuerOptions | undefined> {\n return (\n (await this.store({ stores: this._optionStores, storeId }).get(\n this.prefix({\n namespace,\n correlationId,\n }),\n )) ?? this.defaultOpts\n )\n }\n\n public importIssuerOpts(importOpts: IIssuerOptsImportArgs[]) {\n importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n\n private async importMetadatas(metadataImports: IMetadataImportArgs[]): Promise<void> {\n for (const metaImport of metadataImports) {\n const meta = metaImport as IIssuerMetadataImportArgs\n const storeId = meta.storeId ?? this.defaultStoreId\n const namespace = meta.namespace ?? this.defaultNamespace\n const correlationId = meta.correlationId\n\n const existingMetadata = await this.oid4vciStoreGetMetadata({\n metadataType: meta.metadataType,\n correlationId,\n storeId,\n namespace,\n })\n\n let metadataToPersist: IssuerMetadata | AuthorizationServerMetadata\n\n if (existingMetadata) {\n // If overwriteExisting is explicitly false, we skip this import if data exists\n if (meta.overwriteExisting === false) {\n continue\n }\n // Otherwise, we perform a deep merge.\n metadataToPersist = this.deepMerge(existingMetadata, meta.metadata)\n } else {\n metadataToPersist = meta.metadata\n }\n\n await this.oid4vciStorePersistMetadata({\n metadataType: meta.metadataType,\n metadata: metadataToPersist,\n storeId,\n correlationId,\n namespace,\n // We set this to true because we have already handled the merge/overwrite logic above.\n // We are now saving the final, combined object.\n overwriteExisting: true,\n })\n }\n }\n\n /**\n * Generic Deep Merge.\n * - Recursively merges objects.\n * - Overwrites primitives and arrays (Arrays are treated as values).\n * - Naturally handles 'credential_configurations_supported' by merging the keys of the map.\n */\n private deepMerge<T extends Record<string, any>>(existing: T, incoming: T): T {\n if (!incoming) {\n return existing\n }\n if (!existing) {\n return incoming\n }\n\n const merged = { ...existing }\n\n for (const key in incoming) {\n if (!Object.prototype.hasOwnProperty.call(incoming, key)) {\n continue\n }\n\n const incomingValue = incoming[key]\n const existingValue = existing[key]\n\n if (this.isPlainObject(incomingValue) && this.isPlainObject(existingValue)) {\n // Recursively merge objects\n merged[key] = this.deepMerge(existingValue, incomingValue) as T[Extract<keyof T, string>]\n } else if (incomingValue !== undefined) {\n // Overwrite primitives, arrays, or if existing value was undefined\n merged[key] = incomingValue\n }\n }\n\n return merged\n }\n\n // Type guard to check if value is a plain object (and not an array or null)\n private isPlainObject(value: unknown): value is Record<string, any> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n }\n\n private async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).has(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStorePersistIssuerOpts(args: IIssuerOptsPersistArgs): Promise<IValueData<IIssuerOptions>> {\n const storeId = this.storeIdStr(args)\n const namespace = this.namespaceStr(args)\n const { correlationId, issuerOpts, ttl } = args\n if (args?.validation !== false) {\n //todo\n }\n const existing = await this.store({ stores: this._optionStores, storeId }).getAsValueData(\n this.prefix({\n namespace,\n correlationId,\n }),\n )\n if (!existing.value || (existing.value && args.overwriteExisting !== false)) {\n return await this.store({ stores: this._optionStores, storeId }).set(\n this.prefix({\n namespace,\n correlationId,\n }),\n issuerOpts,\n ttl,\n )\n }\n return existing\n }\n\n private async oid4vciStoreRemoveIssuerOpts({ storeId, correlationId, namespace }: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).delete(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStoreClearAllIssuerOpts({ storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n return await this.store({ stores: this._optionStores, storeId })\n .clear()\n .then(() => true)\n }\n\n private async oid4vciStoreGetMetadata({\n metadataType,\n correlationId,\n storeId,\n namespace,\n }: IOid4vciStoreGetArgs): Promise<IssuerMetadata | AuthorizationServerMetadata | undefined> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n }\n return undefined\n }\n\n private async oid4vciStoreListMetadata({ metadataType, storeId, namespace }: IOid4vciStoreListArgs): Promise<Array<OptionalIssuerMetadata>> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n }\n return []\n }\n\n private async oid4vciStoreHasMetadata({ metadataType, correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n }\n return false\n }\n\n private async oid4vciStorePersistMetadata(args: IMetadataPersistArgs): Promise<OptionalIssuerMetadataValue> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n const { correlationId, metadata, ttl, metadataType } = args\n\n if (args?.validation !== false) {\n //todo\n }\n\n switch (metadataType) {\n case 'authorizationServer':\n const existingAuth = await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingAuth.value || (existingAuth.value && args.overwriteExisting !== false)) {\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as AuthorizationServerMetadata, ttl)\n }\n return existingAuth\n case 'issuer':\n const existingIssuer = await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingIssuer.value || (existingIssuer.value && args.overwriteExisting !== false)) {\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as IssuerMetadata, ttl)\n }\n return existingIssuer\n }\n return undefined\n }\n\n private async oid4vciStoreRemoveMetadata(args: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n\n switch (args.metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n }\n return false\n }\n\n private async oid4vciStoreClearAllMetadata({ metadataType, storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n case 'issuer':\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n }\n return false\n }\n\n private oid4vciStoreIssuerOptions(): Promise<IKeyValueStore<IIssuerOptions>> {\n return Promise.resolve(this.store({ stores: this._optionStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultMetadata(): Promise<IKeyValueStore<IssuerMetadata>> {\n return Promise.resolve(this.store({ stores: this._issuerMetadataStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultStoreId(): Promise<string> {\n return Promise.resolve(this.defaultStoreId)\n }\n\n private oid4vciStoreDefaultNamespace(): Promise<string> {\n return Promise.resolve(this.defaultNamespace)\n }\n\n private store<T extends ValueStoreType>(args: { stores: Map<string, IKeyValueStore<T>>; storeId?: string }): IKeyValueStore<T> {\n const storeId = this.storeIdStr({ storeId: args.storeId })\n const store = args.stores.get(storeId)\n if (!store) {\n throw Error(`Could not get issuer metadata store: ${storeId}`)\n }\n return store\n }\n\n private storeIdStr({ storeId }: { storeId?: string }): string {\n return storeId ?? this.defaultStoreId\n }\n\n private namespaceStr({ namespace }: { namespace?: string }): string {\n return namespace ?? this.defaultNamespace\n }\n\n private prefix({ namespace, correlationId }: { namespace?: string; correlationId: string }): string {\n return `${this.namespaceStr({ namespace })}:${correlationId}`\n }\n}\n"],"mappings":"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","names":["module","oid4vciStoreMethods","OID4VCIStore","defaultOpts","_defaultOpts","value","_issuerMetadataStores","_authorizationServerMetadataStores","_optionStores","defaultStoreId","defaultNamespace","methods","oid4vciStoreDefaultMetadata","bind","oid4vciStoreDefaultIssuerOptions","oid4vciStoreIssuerOptions","oid4vciStoreDefaultStoreId","oid4vciStoreDefaultNamespace","oid4vciStoreGetIssuerOpts","oid4vciStoreHasIssuerOpts","oid4vciStorePersistIssuerOpts","oid4vciStoreRemoveIssuerOpts","oid4vciStoreClearAllIssuerOpts","oid4vciStoreGetMetadata","oid4vciStoreListMetadata","oid4vciStoreHasMetadata","oid4vciStorePersistMetadata","oid4vciStoreRemoveMetadata","oid4vciStoreClearAllMetadata","opts","defaultStore","issuerMetadataStores","Map","set","KeyValueStore","namespace","store","authorizationServerMetadataStores","Array","isArray","importMetadatas","issuerOptsStores","importIssuerOpts","forEach","opt","correlationId","storeId","stores","get","prefix","importOpts","metadataImports","metaImport","meta","existingMetadata","metadataType","metadataToPersist","overwriteExisting","deepMerge","metadata","existing","incoming","merged","key","Object","prototype","hasOwnProperty","call","incomingValue","existingValue","isPlainObject","undefined","has","args","storeIdStr","namespaceStr","issuerOpts","ttl","validation","getAsValueData","delete","clear","then","getMany","existingAuth","existingIssuer","Promise","resolve","Error","schema","require"]}
|
|
1
|
+
{"version":3,"sources":["../plugin.schema.json","../src/index.ts","../src/agent/OID4VCIStore.ts"],"sourcesContent":["{\n \"IDidAuthSiopOpAuthenticator\": {\n \"components\": {\n \"schemas\": {\n \"IGetSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSessionForSiop } \"\n },\n \"IRegisterSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"identifier\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"alias\": {\n \"type\": \"string\"\n },\n \"provider\": {\n \"type\": \"string\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n },\n \"services\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"did\", \"provider\", \"keys\", \"services\"]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"expiresIn\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"identifier\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.registerSessionForSiop } \"\n },\n \"IRemoveSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.removeSessionForSiop } \"\n },\n \"IAuthenticateWithSiopArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.authenticateWithSiop } \"\n },\n \"IResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": true\n },\n \"required\": [\"status\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.authenticateWithSiop & DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n },\n \"IGetSiopAuthenticationRequestFromRpArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"type\": \"string\"\n },\n \"requestPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"registration\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"jwt\", \"requestPayload\", \"registration\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"IGetSiopAuthenticationRequestDetailsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"credentialFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IAuthRequestDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"alsoKnownAs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"vpResponseOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"id\", \"vpResponseOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IVerifySiopAuthenticationRequestUriArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"ParsedAuthenticationRequestURI\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"VerifiedAuthorizationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"presentationDefinitions\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifyOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"payload\", \"verifyOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"ISendSiopAuthenticationResponseArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifiablePresentationResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n }\n },\n \"methods\": {\n \"getSessionForSiop\": {\n \"description\": \"Get SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"registerSessionForSiop\": {\n \"description\": \"Register SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRegisterSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"removeSessionForSiop\": {\n \"description\": \"Remove SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRemoveSiopSessionArgs\"\n },\n \"returnType\": \"boolean\"\n },\n \"authenticateWithSiop\": {\n \"description\": \"Authenticate using DID Auth SIOP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IAuthenticateWithSiopArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/Response\"\n }\n },\n \"getSiopAuthenticationRequestFromRP\": {\n \"description\": \"Get authentication request from RP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestFromRpArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ParsedAuthenticationRequestURI\"\n }\n },\n \"getSiopAuthenticationRequestDetails\": {\n \"description\": \"Get authentication request details\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestDetailsArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IAuthRequestDetails\"\n }\n },\n \"verifySiopAuthenticationRequestURI\": {\n \"description\": \"Verify authentication request URI\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IVerifySiopAuthenticationRequestUriArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerifiedAuthorizationRequest\"\n }\n },\n \"sendSiopAuthenticationResponse\": {\n \"description\": \"Send authentication response\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISendSiopAuthenticationResponseArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IRequiredContext\"\n }\n }\n }\n }\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { OID4VCIStore, oid4vciStoreMethods } from './agent/OID4VCIStore'\nexport * from './types/IOID4VCIStore'\n","import { AuthorizationServerMetadata, IssuerMetadata } from '@sphereon/oid4vci-common'\nimport { IKeyValueStore, IValueData, KeyValueStore, ValueStoreType } from '@sphereon/ssi-sdk.kv-store-temp'\nimport { IAgentPlugin } from '@veramo/core'\nimport {\n IIssuerDefaultOpts,\n IIssuerMetadataImportArgs,\n IIssuerOptions,\n IIssuerOptsImportArgs,\n IIssuerOptsPersistArgs,\n IMetadataImportArgs,\n IMetadataPersistArgs,\n Ioid4vciStoreClearArgs,\n Ioid4vciStoreExistsArgs,\n IOid4vciStoreGetArgs,\n IOid4vciStoreListArgs,\n IOID4VCIStoreOpts,\n Ioid4vciStoreRemoveArgs,\n OptionalIssuerMetadata,\n OptionalIssuerMetadataValue,\n} from '../index'\n\nimport { IOID4VCIStore } from '../types/IOID4VCIStore'\n\nexport const oid4vciStoreMethods: Array<string> = [\n 'oid4vciStoreDefaultMetadata',\n 'oid4vciStoreDefaultIssuerOptions',\n 'oid4vciStoreDefaultStoreId',\n 'oid4vciStoreDefaultNamespace',\n 'oid4vciStoreGetIssuerOpts',\n 'oid4vciStoreHasIssuerOpts',\n 'oid4vciStorePersistIssuerOpts',\n 'oid4vciStoreRemoveIssuerOpts',\n 'oid4vciStoreClearAllIssuerOpts',\n 'oid4vciStoreGetMetadata',\n 'oid4vciStoreListMetadata',\n 'oid4vciStoreHasMetadata',\n 'oid4vciStorePersistMetadata',\n 'oid4vciStoreRemoveMetadata',\n 'oid4vciStoreClearAllMetadata'\n]\n\nexport class OID4VCIStore implements IAgentPlugin {\n get defaultOpts(): IIssuerDefaultOpts | undefined {\n return this._defaultOpts\n }\n\n set defaultOpts(value: IIssuerDefaultOpts | undefined) {\n this._defaultOpts = value\n }\n\n private readonly _issuerMetadataStores: Map<string, IKeyValueStore<IssuerMetadata>>\n private readonly _authorizationServerMetadataStores: Map<string, IKeyValueStore<AuthorizationServerMetadata>>\n private readonly _optionStores: Map<string, IKeyValueStore<IIssuerOptions>>\n private readonly defaultStoreId: string\n private readonly defaultNamespace: string\n\n private _defaultOpts?: IIssuerDefaultOpts\n\n readonly methods: IOID4VCIStore = {\n oid4vciStoreDefaultMetadata: this.oid4vciStoreDefaultMetadata.bind(this),\n oid4vciStoreDefaultIssuerOptions: this.oid4vciStoreIssuerOptions.bind(this),\n oid4vciStoreDefaultStoreId: this.oid4vciStoreDefaultStoreId.bind(this),\n oid4vciStoreDefaultNamespace: this.oid4vciStoreDefaultNamespace.bind(this),\n\n oid4vciStoreGetIssuerOpts: this.oid4vciStoreGetIssuerOpts.bind(this),\n oid4vciStoreHasIssuerOpts: this.oid4vciStoreHasIssuerOpts.bind(this),\n oid4vciStorePersistIssuerOpts: this.oid4vciStorePersistIssuerOpts.bind(this),\n oid4vciStoreRemoveIssuerOpts: this.oid4vciStoreRemoveIssuerOpts.bind(this),\n oid4vciStoreClearAllIssuerOpts: this.oid4vciStoreClearAllIssuerOpts.bind(this),\n\n oid4vciStoreGetMetadata: this.oid4vciStoreGetMetadata.bind(this),\n oid4vciStoreListMetadata: this.oid4vciStoreListMetadata.bind(this),\n oid4vciStoreHasMetadata: this.oid4vciStoreHasMetadata.bind(this),\n oid4vciStorePersistMetadata: this.oid4vciStorePersistMetadata.bind(this),\n oid4vciStoreRemoveMetadata: this.oid4vciStoreRemoveMetadata.bind(this),\n oid4vciStoreClearAllMetadata: this.oid4vciStoreClearAllMetadata.bind(this),\n }\n\n constructor(opts: IOID4VCIStoreOpts) {\n this.defaultStoreId = opts.defaultStore ?? '_default'\n this.defaultNamespace = opts.defaultNamespace ?? 'oid4vci'\n if (opts.defaultOpts) {\n this._defaultOpts = opts.defaultOpts\n }\n if (opts?.issuerMetadataStores && opts.issuerMetadataStores instanceof Map) {\n this._issuerMetadataStores = opts.issuerMetadataStores\n } else if (opts?.issuerMetadataStores) {\n this._issuerMetadataStores = new Map().set(this.defaultStoreId, opts.issuerMetadataStores)\n } else {\n this._issuerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IssuerMetadata>(),\n }),\n )\n }\n if (opts?.authorizationServerMetadataStores && opts.authorizationServerMetadataStores instanceof Map) {\n this._authorizationServerMetadataStores = opts.authorizationServerMetadataStores\n } else if (opts?.authorizationServerMetadataStores) {\n this._authorizationServerMetadataStores = new Map().set(this.defaultStoreId, opts.authorizationServerMetadataStores)\n } else {\n this._authorizationServerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, AuthorizationServerMetadata>(),\n }),\n )\n }\n\n if (opts && Array.isArray(opts?.importMetadatas)) {\n opts.importMetadatas.forEach((metaImport: IMetadataImportArgs) => {\n const meta = metaImport as IIssuerMetadataImportArgs\n void this.oid4vciStorePersistMetadata({\n metadataType: meta.metadataType,\n metadata: meta.metadata,\n storeId: meta.storeId ?? this.defaultStoreId,\n correlationId: meta.correlationId,\n namespace: meta.namespace ?? this.defaultNamespace,\n overwriteExisting: meta.overwriteExisting === undefined ? true : meta.overwriteExisting,\n })\n })\n }\n\n if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {\n this._optionStores = opts.issuerOptsStores\n } else if (opts?.issuerOptsStores) {\n this._optionStores = new Map().set(this.defaultStoreId, opts.issuerOptsStores)\n } else {\n this._optionStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IIssuerOptions>(),\n }),\n )\n }\n if (opts && Array.isArray(opts?.importIssuerOpts)) {\n opts.importIssuerOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n }\n\n private async oid4vciStoreGetIssuerOpts({ correlationId, storeId, namespace }: IOid4vciStoreGetArgs): Promise<IIssuerOptions | undefined> {\n return (\n (await this.store({ stores: this._optionStores, storeId }).get(\n this.prefix({\n namespace,\n correlationId,\n }),\n )) ?? this.defaultOpts\n )\n }\n\n public importIssuerOpts(importOpts: IIssuerOptsImportArgs[]) {\n importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n\n private async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).has(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStorePersistIssuerOpts(args: IIssuerOptsPersistArgs): Promise<IValueData<IIssuerOptions>> {\n const storeId = this.storeIdStr(args)\n const namespace = this.namespaceStr(args)\n const { correlationId, issuerOpts, ttl } = args\n if (args?.validation !== false) {\n //todo\n }\n const existing = await this.store({ stores: this._optionStores, storeId }).getAsValueData(\n this.prefix({\n namespace,\n correlationId,\n }),\n )\n if (!existing.value || (existing.value && args.overwriteExisting !== false)) {\n return await this.store({ stores: this._optionStores, storeId }).set(\n this.prefix({\n namespace,\n correlationId,\n }),\n issuerOpts,\n ttl,\n )\n }\n return existing\n }\n\n private async oid4vciStoreRemoveIssuerOpts({ storeId, correlationId, namespace }: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).delete(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStoreClearAllIssuerOpts({ storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n return await this.store({ stores: this._optionStores, storeId })\n .clear()\n .then(() => true)\n }\n\n private async oid4vciStoreGetMetadata({\n metadataType,\n correlationId,\n storeId,\n namespace,\n }: IOid4vciStoreGetArgs): Promise<IssuerMetadata | AuthorizationServerMetadata | undefined> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n }\n return undefined\n }\n\n private async oid4vciStoreListMetadata({ metadataType, storeId, namespace }: IOid4vciStoreListArgs): Promise<Array<OptionalIssuerMetadata>> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n }\n return []\n }\n\n private async oid4vciStoreHasMetadata({ metadataType, correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n }\n return false\n }\n\n private async oid4vciStorePersistMetadata(args: IMetadataPersistArgs): Promise<OptionalIssuerMetadataValue> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n const { correlationId, metadata, ttl, metadataType } = args\n\n if (args?.validation !== false) {\n //todo\n }\n\n switch (metadataType) {\n case 'authorizationServer':\n const existingAuth = await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingAuth.value || (existingAuth.value && args.overwriteExisting !== false)) {\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as AuthorizationServerMetadata, ttl)\n }\n return existingAuth\n case 'issuer':\n const existingIssuer = await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingIssuer.value || (existingIssuer.value && args.overwriteExisting !== false)) {\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as IssuerMetadata, ttl)\n }\n return existingIssuer\n }\n return undefined\n }\n\n private async oid4vciStoreRemoveMetadata(args: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n\n switch (args.metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n }\n return false\n }\n\n private async oid4vciStoreClearAllMetadata({ metadataType, storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n case 'issuer':\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n }\n return false\n }\n\n private oid4vciStoreIssuerOptions(): Promise<IKeyValueStore<IIssuerOptions>> {\n return Promise.resolve(this.store({ stores: this._optionStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultMetadata(): Promise<IKeyValueStore<IssuerMetadata>> {\n return Promise.resolve(this.store({ stores: this._issuerMetadataStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultStoreId(): Promise<string> {\n return Promise.resolve(this.defaultStoreId)\n }\n\n private oid4vciStoreDefaultNamespace(): Promise<string> {\n return Promise.resolve(this.defaultNamespace)\n }\n\n private store<T extends ValueStoreType>(args: { stores: Map<string, IKeyValueStore<T>>; storeId?: string }): IKeyValueStore<T> {\n const storeId = this.storeIdStr({ storeId: args.storeId })\n const store = args.stores.get(storeId)\n if (!store) {\n throw Error(`Could not get issuer metadata store: ${storeId}`)\n }\n return store\n }\n\n private storeIdStr({ storeId }: { storeId?: string }): string {\n return storeId ?? this.defaultStoreId\n }\n\n private namespaceStr({ namespace }: { namespace?: string }): string {\n return namespace ?? this.defaultNamespace\n }\n\n private prefix({ namespace, correlationId }: { namespace?: string; correlationId: string }): string {\n return `${this.namespaceStr({ namespace })}:${correlationId}`\n }\n}\n"],"mappings":"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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","forEach","metaImport","meta","metadataType","metadata","storeId","correlationId","overwriteExisting","undefined","issuerOptsStores","importIssuerOpts","opt","stores","get","prefix","importOpts","has","args","storeIdStr","namespaceStr","issuerOpts","ttl","validation","existing","getAsValueData","delete","clear","then","getMany","existingAuth","existingIssuer","Promise","resolve","Error","schema","require"]}
|
package/dist/index.d.cts
CHANGED
|
@@ -116,15 +116,6 @@ declare class OID4VCIStore implements IAgentPlugin {
|
|
|
116
116
|
constructor(opts: IOID4VCIStoreOpts);
|
|
117
117
|
private oid4vciStoreGetIssuerOpts;
|
|
118
118
|
importIssuerOpts(importOpts: IIssuerOptsImportArgs[]): void;
|
|
119
|
-
private importMetadatas;
|
|
120
|
-
/**
|
|
121
|
-
* Generic Deep Merge.
|
|
122
|
-
* - Recursively merges objects.
|
|
123
|
-
* - Overwrites primitives and arrays (Arrays are treated as values).
|
|
124
|
-
* - Naturally handles 'credential_configurations_supported' by merging the keys of the map.
|
|
125
|
-
*/
|
|
126
|
-
private deepMerge;
|
|
127
|
-
private isPlainObject;
|
|
128
119
|
private oid4vciStoreHasIssuerOpts;
|
|
129
120
|
private oid4vciStorePersistIssuerOpts;
|
|
130
121
|
private oid4vciStoreRemoveIssuerOpts;
|
package/dist/index.d.ts
CHANGED
|
@@ -116,15 +116,6 @@ declare class OID4VCIStore implements IAgentPlugin {
|
|
|
116
116
|
constructor(opts: IOID4VCIStoreOpts);
|
|
117
117
|
private oid4vciStoreGetIssuerOpts;
|
|
118
118
|
importIssuerOpts(importOpts: IIssuerOptsImportArgs[]): void;
|
|
119
|
-
private importMetadatas;
|
|
120
|
-
/**
|
|
121
|
-
* Generic Deep Merge.
|
|
122
|
-
* - Recursively merges objects.
|
|
123
|
-
* - Overwrites primitives and arrays (Arrays are treated as values).
|
|
124
|
-
* - Naturally handles 'credential_configurations_supported' by merging the keys of the map.
|
|
125
|
-
*/
|
|
126
|
-
private deepMerge;
|
|
127
|
-
private isPlainObject;
|
|
128
119
|
private oid4vciStoreHasIssuerOpts;
|
|
129
120
|
private oid4vciStorePersistIssuerOpts;
|
|
130
121
|
private oid4vciStoreRemoveIssuerOpts;
|
package/dist/index.js
CHANGED
|
@@ -419,7 +419,17 @@ var OID4VCIStore = class {
|
|
|
419
419
|
}));
|
|
420
420
|
}
|
|
421
421
|
if (opts && Array.isArray(opts?.importMetadatas)) {
|
|
422
|
-
|
|
422
|
+
opts.importMetadatas.forEach((metaImport) => {
|
|
423
|
+
const meta = metaImport;
|
|
424
|
+
void this.oid4vciStorePersistMetadata({
|
|
425
|
+
metadataType: meta.metadataType,
|
|
426
|
+
metadata: meta.metadata,
|
|
427
|
+
storeId: meta.storeId ?? this.defaultStoreId,
|
|
428
|
+
correlationId: meta.correlationId,
|
|
429
|
+
namespace: meta.namespace ?? this.defaultNamespace,
|
|
430
|
+
overwriteExisting: meta.overwriteExisting === void 0 ? true : meta.overwriteExisting
|
|
431
|
+
});
|
|
432
|
+
});
|
|
423
433
|
}
|
|
424
434
|
if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {
|
|
425
435
|
this._optionStores = opts.issuerOptsStores;
|
|
@@ -447,73 +457,6 @@ var OID4VCIStore = class {
|
|
|
447
457
|
importIssuerOpts(importOpts) {
|
|
448
458
|
importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt));
|
|
449
459
|
}
|
|
450
|
-
async importMetadatas(metadataImports) {
|
|
451
|
-
for (const metaImport of metadataImports) {
|
|
452
|
-
const meta = metaImport;
|
|
453
|
-
const storeId = meta.storeId ?? this.defaultStoreId;
|
|
454
|
-
const namespace = meta.namespace ?? this.defaultNamespace;
|
|
455
|
-
const correlationId = meta.correlationId;
|
|
456
|
-
const existingMetadata = await this.oid4vciStoreGetMetadata({
|
|
457
|
-
metadataType: meta.metadataType,
|
|
458
|
-
correlationId,
|
|
459
|
-
storeId,
|
|
460
|
-
namespace
|
|
461
|
-
});
|
|
462
|
-
let metadataToPersist;
|
|
463
|
-
if (existingMetadata) {
|
|
464
|
-
if (meta.overwriteExisting === false) {
|
|
465
|
-
continue;
|
|
466
|
-
}
|
|
467
|
-
metadataToPersist = this.deepMerge(existingMetadata, meta.metadata);
|
|
468
|
-
} else {
|
|
469
|
-
metadataToPersist = meta.metadata;
|
|
470
|
-
}
|
|
471
|
-
await this.oid4vciStorePersistMetadata({
|
|
472
|
-
metadataType: meta.metadataType,
|
|
473
|
-
metadata: metadataToPersist,
|
|
474
|
-
storeId,
|
|
475
|
-
correlationId,
|
|
476
|
-
namespace,
|
|
477
|
-
// We set this to true because we have already handled the merge/overwrite logic above.
|
|
478
|
-
// We are now saving the final, combined object.
|
|
479
|
-
overwriteExisting: true
|
|
480
|
-
});
|
|
481
|
-
}
|
|
482
|
-
}
|
|
483
|
-
/**
|
|
484
|
-
* Generic Deep Merge.
|
|
485
|
-
* - Recursively merges objects.
|
|
486
|
-
* - Overwrites primitives and arrays (Arrays are treated as values).
|
|
487
|
-
* - Naturally handles 'credential_configurations_supported' by merging the keys of the map.
|
|
488
|
-
*/
|
|
489
|
-
deepMerge(existing, incoming) {
|
|
490
|
-
if (!incoming) {
|
|
491
|
-
return existing;
|
|
492
|
-
}
|
|
493
|
-
if (!existing) {
|
|
494
|
-
return incoming;
|
|
495
|
-
}
|
|
496
|
-
const merged = {
|
|
497
|
-
...existing
|
|
498
|
-
};
|
|
499
|
-
for (const key in incoming) {
|
|
500
|
-
if (!Object.prototype.hasOwnProperty.call(incoming, key)) {
|
|
501
|
-
continue;
|
|
502
|
-
}
|
|
503
|
-
const incomingValue = incoming[key];
|
|
504
|
-
const existingValue = existing[key];
|
|
505
|
-
if (this.isPlainObject(incomingValue) && this.isPlainObject(existingValue)) {
|
|
506
|
-
merged[key] = this.deepMerge(existingValue, incomingValue);
|
|
507
|
-
} else if (incomingValue !== void 0) {
|
|
508
|
-
merged[key] = incomingValue;
|
|
509
|
-
}
|
|
510
|
-
}
|
|
511
|
-
return merged;
|
|
512
|
-
}
|
|
513
|
-
// Type guard to check if value is a plain object (and not an array or null)
|
|
514
|
-
isPlainObject(value) {
|
|
515
|
-
return typeof value === "object" && value !== null && !Array.isArray(value);
|
|
516
|
-
}
|
|
517
460
|
async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }) {
|
|
518
461
|
return this.store({
|
|
519
462
|
stores: this._optionStores,
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../plugin.schema.json","../src/agent/OID4VCIStore.ts","../src/index.ts"],"sourcesContent":["{\n \"IDidAuthSiopOpAuthenticator\": {\n \"components\": {\n \"schemas\": {\n \"IGetSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSessionForSiop } \"\n },\n \"IRegisterSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"identifier\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"alias\": {\n \"type\": \"string\"\n },\n \"provider\": {\n \"type\": \"string\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n },\n \"services\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"did\", \"provider\", \"keys\", \"services\"]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"expiresIn\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"identifier\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.registerSessionForSiop } \"\n },\n \"IRemoveSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.removeSessionForSiop } \"\n },\n \"IAuthenticateWithSiopArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.authenticateWithSiop } \"\n },\n \"IResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": true\n },\n \"required\": [\"status\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.authenticateWithSiop & DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n },\n \"IGetSiopAuthenticationRequestFromRpArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"type\": \"string\"\n },\n \"requestPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"registration\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"jwt\", \"requestPayload\", \"registration\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"IGetSiopAuthenticationRequestDetailsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"credentialFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IAuthRequestDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"alsoKnownAs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"vpResponseOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"id\", \"vpResponseOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IVerifySiopAuthenticationRequestUriArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"ParsedAuthenticationRequestURI\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"VerifiedAuthorizationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"presentationDefinitions\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifyOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"payload\", \"verifyOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"ISendSiopAuthenticationResponseArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifiablePresentationResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n }\n },\n \"methods\": {\n \"getSessionForSiop\": {\n \"description\": \"Get SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"registerSessionForSiop\": {\n \"description\": \"Register SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRegisterSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"removeSessionForSiop\": {\n \"description\": \"Remove SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRemoveSiopSessionArgs\"\n },\n \"returnType\": \"boolean\"\n },\n \"authenticateWithSiop\": {\n \"description\": \"Authenticate using DID Auth SIOP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IAuthenticateWithSiopArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/Response\"\n }\n },\n \"getSiopAuthenticationRequestFromRP\": {\n \"description\": \"Get authentication request from RP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestFromRpArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ParsedAuthenticationRequestURI\"\n }\n },\n \"getSiopAuthenticationRequestDetails\": {\n \"description\": \"Get authentication request details\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestDetailsArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IAuthRequestDetails\"\n }\n },\n \"verifySiopAuthenticationRequestURI\": {\n \"description\": \"Verify authentication request URI\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IVerifySiopAuthenticationRequestUriArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerifiedAuthorizationRequest\"\n }\n },\n \"sendSiopAuthenticationResponse\": {\n \"description\": \"Send authentication response\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISendSiopAuthenticationResponseArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IRequiredContext\"\n }\n }\n }\n }\n }\n}\n","import { AuthorizationServerMetadata, IssuerMetadata } from '@sphereon/oid4vci-common'\nimport { IKeyValueStore, IValueData, KeyValueStore, ValueStoreType } from '@sphereon/ssi-sdk.kv-store-temp'\nimport { IAgentPlugin } from '@veramo/core'\nimport {\n IIssuerDefaultOpts,\n IIssuerMetadataImportArgs,\n IIssuerOptions,\n IIssuerOptsImportArgs,\n IIssuerOptsPersistArgs,\n IMetadataImportArgs,\n IMetadataPersistArgs,\n Ioid4vciStoreClearArgs,\n Ioid4vciStoreExistsArgs,\n IOid4vciStoreGetArgs,\n IOid4vciStoreListArgs,\n IOID4VCIStoreOpts,\n Ioid4vciStoreRemoveArgs,\n OptionalIssuerMetadata,\n OptionalIssuerMetadataValue,\n} from '../index'\n\nimport { IOID4VCIStore } from '../types/IOID4VCIStore'\n\nexport const oid4vciStoreMethods: Array<string> = [\n 'oid4vciStoreDefaultMetadata',\n 'oid4vciStoreDefaultIssuerOptions',\n 'oid4vciStoreDefaultStoreId',\n 'oid4vciStoreDefaultNamespace',\n 'oid4vciStoreGetIssuerOpts',\n 'oid4vciStoreHasIssuerOpts',\n 'oid4vciStorePersistIssuerOpts',\n 'oid4vciStoreRemoveIssuerOpts',\n 'oid4vciStoreClearAllIssuerOpts',\n 'oid4vciStoreGetMetadata',\n 'oid4vciStoreListMetadata',\n 'oid4vciStoreHasMetadata',\n 'oid4vciStorePersistMetadata',\n 'oid4vciStoreRemoveMetadata',\n 'oid4vciStoreClearAllMetadata',\n]\n\nexport class OID4VCIStore implements IAgentPlugin {\n get defaultOpts(): IIssuerDefaultOpts | undefined {\n return this._defaultOpts\n }\n\n set defaultOpts(value: IIssuerDefaultOpts | undefined) {\n this._defaultOpts = value\n }\n\n private readonly _issuerMetadataStores: Map<string, IKeyValueStore<IssuerMetadata>>\n private readonly _authorizationServerMetadataStores: Map<string, IKeyValueStore<AuthorizationServerMetadata>>\n private readonly _optionStores: Map<string, IKeyValueStore<IIssuerOptions>>\n private readonly defaultStoreId: string\n private readonly defaultNamespace: string\n\n private _defaultOpts?: IIssuerDefaultOpts\n\n readonly methods: IOID4VCIStore = {\n oid4vciStoreDefaultMetadata: this.oid4vciStoreDefaultMetadata.bind(this),\n oid4vciStoreDefaultIssuerOptions: this.oid4vciStoreIssuerOptions.bind(this),\n oid4vciStoreDefaultStoreId: this.oid4vciStoreDefaultStoreId.bind(this),\n oid4vciStoreDefaultNamespace: this.oid4vciStoreDefaultNamespace.bind(this),\n\n oid4vciStoreGetIssuerOpts: this.oid4vciStoreGetIssuerOpts.bind(this),\n oid4vciStoreHasIssuerOpts: this.oid4vciStoreHasIssuerOpts.bind(this),\n oid4vciStorePersistIssuerOpts: this.oid4vciStorePersistIssuerOpts.bind(this),\n oid4vciStoreRemoveIssuerOpts: this.oid4vciStoreRemoveIssuerOpts.bind(this),\n oid4vciStoreClearAllIssuerOpts: this.oid4vciStoreClearAllIssuerOpts.bind(this),\n\n oid4vciStoreGetMetadata: this.oid4vciStoreGetMetadata.bind(this),\n oid4vciStoreListMetadata: this.oid4vciStoreListMetadata.bind(this),\n oid4vciStoreHasMetadata: this.oid4vciStoreHasMetadata.bind(this),\n oid4vciStorePersistMetadata: this.oid4vciStorePersistMetadata.bind(this),\n oid4vciStoreRemoveMetadata: this.oid4vciStoreRemoveMetadata.bind(this),\n oid4vciStoreClearAllMetadata: this.oid4vciStoreClearAllMetadata.bind(this),\n }\n\n constructor(opts: IOID4VCIStoreOpts) {\n this.defaultStoreId = opts.defaultStore ?? '_default'\n this.defaultNamespace = opts.defaultNamespace ?? 'oid4vci'\n if (opts.defaultOpts) {\n this._defaultOpts = opts.defaultOpts\n }\n if (opts?.issuerMetadataStores && opts.issuerMetadataStores instanceof Map) {\n this._issuerMetadataStores = opts.issuerMetadataStores\n } else if (opts?.issuerMetadataStores) {\n this._issuerMetadataStores = new Map().set(this.defaultStoreId, opts.issuerMetadataStores)\n } else {\n this._issuerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IssuerMetadata>(),\n }),\n )\n }\n if (opts?.authorizationServerMetadataStores && opts.authorizationServerMetadataStores instanceof Map) {\n this._authorizationServerMetadataStores = opts.authorizationServerMetadataStores\n } else if (opts?.authorizationServerMetadataStores) {\n this._authorizationServerMetadataStores = new Map().set(this.defaultStoreId, opts.authorizationServerMetadataStores)\n } else {\n this._authorizationServerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, AuthorizationServerMetadata>(),\n }),\n )\n }\n\n if (opts && Array.isArray(opts?.importMetadatas)) {\n void this.importMetadatas(opts.importMetadatas)\n }\n\n if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {\n this._optionStores = opts.issuerOptsStores\n } else if (opts?.issuerOptsStores) {\n this._optionStores = new Map().set(this.defaultStoreId, opts.issuerOptsStores)\n } else {\n this._optionStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IIssuerOptions>(),\n }),\n )\n }\n if (opts && Array.isArray(opts?.importIssuerOpts)) {\n opts.importIssuerOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n }\n\n private async oid4vciStoreGetIssuerOpts({ correlationId, storeId, namespace }: IOid4vciStoreGetArgs): Promise<IIssuerOptions | undefined> {\n return (\n (await this.store({ stores: this._optionStores, storeId }).get(\n this.prefix({\n namespace,\n correlationId,\n }),\n )) ?? this.defaultOpts\n )\n }\n\n public importIssuerOpts(importOpts: IIssuerOptsImportArgs[]) {\n importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n\n private async importMetadatas(metadataImports: IMetadataImportArgs[]): Promise<void> {\n for (const metaImport of metadataImports) {\n const meta = metaImport as IIssuerMetadataImportArgs\n const storeId = meta.storeId ?? this.defaultStoreId\n const namespace = meta.namespace ?? this.defaultNamespace\n const correlationId = meta.correlationId\n\n const existingMetadata = await this.oid4vciStoreGetMetadata({\n metadataType: meta.metadataType,\n correlationId,\n storeId,\n namespace,\n })\n\n let metadataToPersist: IssuerMetadata | AuthorizationServerMetadata\n\n if (existingMetadata) {\n // If overwriteExisting is explicitly false, we skip this import if data exists\n if (meta.overwriteExisting === false) {\n continue\n }\n // Otherwise, we perform a deep merge.\n metadataToPersist = this.deepMerge(existingMetadata, meta.metadata)\n } else {\n metadataToPersist = meta.metadata\n }\n\n await this.oid4vciStorePersistMetadata({\n metadataType: meta.metadataType,\n metadata: metadataToPersist,\n storeId,\n correlationId,\n namespace,\n // We set this to true because we have already handled the merge/overwrite logic above.\n // We are now saving the final, combined object.\n overwriteExisting: true,\n })\n }\n }\n\n /**\n * Generic Deep Merge.\n * - Recursively merges objects.\n * - Overwrites primitives and arrays (Arrays are treated as values).\n * - Naturally handles 'credential_configurations_supported' by merging the keys of the map.\n */\n private deepMerge<T extends Record<string, any>>(existing: T, incoming: T): T {\n if (!incoming) {\n return existing\n }\n if (!existing) {\n return incoming\n }\n\n const merged = { ...existing }\n\n for (const key in incoming) {\n if (!Object.prototype.hasOwnProperty.call(incoming, key)) {\n continue\n }\n\n const incomingValue = incoming[key]\n const existingValue = existing[key]\n\n if (this.isPlainObject(incomingValue) && this.isPlainObject(existingValue)) {\n // Recursively merge objects\n merged[key] = this.deepMerge(existingValue, incomingValue) as T[Extract<keyof T, string>]\n } else if (incomingValue !== undefined) {\n // Overwrite primitives, arrays, or if existing value was undefined\n merged[key] = incomingValue\n }\n }\n\n return merged\n }\n\n // Type guard to check if value is a plain object (and not an array or null)\n private isPlainObject(value: unknown): value is Record<string, any> {\n return typeof value === 'object' && value !== null && !Array.isArray(value)\n }\n\n private async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).has(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStorePersistIssuerOpts(args: IIssuerOptsPersistArgs): Promise<IValueData<IIssuerOptions>> {\n const storeId = this.storeIdStr(args)\n const namespace = this.namespaceStr(args)\n const { correlationId, issuerOpts, ttl } = args\n if (args?.validation !== false) {\n //todo\n }\n const existing = await this.store({ stores: this._optionStores, storeId }).getAsValueData(\n this.prefix({\n namespace,\n correlationId,\n }),\n )\n if (!existing.value || (existing.value && args.overwriteExisting !== false)) {\n return await this.store({ stores: this._optionStores, storeId }).set(\n this.prefix({\n namespace,\n correlationId,\n }),\n issuerOpts,\n ttl,\n )\n }\n return existing\n }\n\n private async oid4vciStoreRemoveIssuerOpts({ storeId, correlationId, namespace }: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).delete(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStoreClearAllIssuerOpts({ storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n return await this.store({ stores: this._optionStores, storeId })\n .clear()\n .then(() => true)\n }\n\n private async oid4vciStoreGetMetadata({\n metadataType,\n correlationId,\n storeId,\n namespace,\n }: IOid4vciStoreGetArgs): Promise<IssuerMetadata | AuthorizationServerMetadata | undefined> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n }\n return undefined\n }\n\n private async oid4vciStoreListMetadata({ metadataType, storeId, namespace }: IOid4vciStoreListArgs): Promise<Array<OptionalIssuerMetadata>> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n }\n return []\n }\n\n private async oid4vciStoreHasMetadata({ metadataType, correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n }\n return false\n }\n\n private async oid4vciStorePersistMetadata(args: IMetadataPersistArgs): Promise<OptionalIssuerMetadataValue> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n const { correlationId, metadata, ttl, metadataType } = args\n\n if (args?.validation !== false) {\n //todo\n }\n\n switch (metadataType) {\n case 'authorizationServer':\n const existingAuth = await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingAuth.value || (existingAuth.value && args.overwriteExisting !== false)) {\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as AuthorizationServerMetadata, ttl)\n }\n return existingAuth\n case 'issuer':\n const existingIssuer = await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingIssuer.value || (existingIssuer.value && args.overwriteExisting !== false)) {\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as IssuerMetadata, ttl)\n }\n return existingIssuer\n }\n return undefined\n }\n\n private async oid4vciStoreRemoveMetadata(args: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n\n switch (args.metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n }\n return false\n }\n\n private async oid4vciStoreClearAllMetadata({ metadataType, storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n case 'issuer':\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n }\n return false\n }\n\n private oid4vciStoreIssuerOptions(): Promise<IKeyValueStore<IIssuerOptions>> {\n return Promise.resolve(this.store({ stores: this._optionStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultMetadata(): Promise<IKeyValueStore<IssuerMetadata>> {\n return Promise.resolve(this.store({ stores: this._issuerMetadataStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultStoreId(): Promise<string> {\n return Promise.resolve(this.defaultStoreId)\n }\n\n private oid4vciStoreDefaultNamespace(): Promise<string> {\n return Promise.resolve(this.defaultNamespace)\n }\n\n private store<T extends ValueStoreType>(args: { stores: Map<string, IKeyValueStore<T>>; storeId?: string }): IKeyValueStore<T> {\n const storeId = this.storeIdStr({ storeId: args.storeId })\n const store = args.stores.get(storeId)\n if (!store) {\n throw Error(`Could not get issuer metadata store: ${storeId}`)\n }\n return store\n }\n\n private storeIdStr({ storeId }: { storeId?: string }): string {\n return storeId ?? this.defaultStoreId\n }\n\n private namespaceStr({ namespace }: { namespace?: string }): string {\n return namespace ?? this.defaultNamespace\n }\n\n private prefix({ namespace, correlationId }: { namespace?: string; correlationId: string }): string {\n return `${this.namespaceStr({ namespace })}:${correlationId}`\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { OID4VCIStore, oid4vciStoreMethods } from './agent/OID4VCIStore'\nexport * from './types/IOID4VCIStore'\n"],"mappings":"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","names":["KeyValueStore","oid4vciStoreMethods","OID4VCIStore","defaultOpts","_defaultOpts","value","_issuerMetadataStores","_authorizationServerMetadataStores","_optionStores","defaultStoreId","defaultNamespace","methods","oid4vciStoreDefaultMetadata","bind","oid4vciStoreDefaultIssuerOptions","oid4vciStoreIssuerOptions","oid4vciStoreDefaultStoreId","oid4vciStoreDefaultNamespace","oid4vciStoreGetIssuerOpts","oid4vciStoreHasIssuerOpts","oid4vciStorePersistIssuerOpts","oid4vciStoreRemoveIssuerOpts","oid4vciStoreClearAllIssuerOpts","oid4vciStoreGetMetadata","oid4vciStoreListMetadata","oid4vciStoreHasMetadata","oid4vciStorePersistMetadata","oid4vciStoreRemoveMetadata","oid4vciStoreClearAllMetadata","opts","defaultStore","issuerMetadataStores","Map","set","KeyValueStore","namespace","store","authorizationServerMetadataStores","Array","isArray","importMetadatas","issuerOptsStores","importIssuerOpts","forEach","opt","correlationId","storeId","stores","get","prefix","importOpts","metadataImports","metaImport","meta","existingMetadata","metadataType","metadataToPersist","overwriteExisting","deepMerge","metadata","existing","incoming","merged","key","Object","prototype","hasOwnProperty","call","incomingValue","existingValue","isPlainObject","undefined","has","args","storeIdStr","namespaceStr","issuerOpts","ttl","validation","getAsValueData","delete","clear","then","getMany","existingAuth","existingIssuer","Promise","resolve","Error","schema","require"]}
|
|
1
|
+
{"version":3,"sources":["../plugin.schema.json","../src/agent/OID4VCIStore.ts","../src/index.ts"],"sourcesContent":["{\n \"IDidAuthSiopOpAuthenticator\": {\n \"components\": {\n \"schemas\": {\n \"IGetSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSessionForSiop } \"\n },\n \"IRegisterSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"identifier\": {\n \"type\": \"object\",\n \"properties\": {\n \"did\": {\n \"type\": \"string\"\n },\n \"alias\": {\n \"type\": \"string\"\n },\n \"provider\": {\n \"type\": \"string\"\n },\n \"controllerKeyId\": {\n \"type\": \"string\"\n },\n \"keys\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n },\n \"services\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n }\n }\n },\n \"additionalProperties\": false,\n \"required\": [\"did\", \"provider\", \"keys\", \"services\"]\n },\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"expiresIn\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"identifier\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.registerSessionForSiop } \"\n },\n \"IRemoveSiopSessionArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.removeSessionForSiop } \"\n },\n \"IAuthenticateWithSiopArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.authenticateWithSiop } \"\n },\n \"IResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"status\": {\n \"type\": \"number\"\n },\n \"additionalProperties\": true\n },\n \"required\": [\"status\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.authenticateWithSiop & DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n },\n \"IGetSiopAuthenticationRequestFromRpArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"stateId\": {\n \"type\": \"string\"\n },\n \"redirectUrl\": {\n \"type\": \"string\"\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"stateId\", \"redirectUrl\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"jwt\": {\n \"type\": \"string\"\n },\n \"requestPayload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"registration\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"jwt\", \"requestPayload\", \"registration\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestFromRP } \"\n },\n \"IGetSiopAuthenticationRequestDetailsArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"credentialFilter\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IAuthRequestDetails\": {\n \"type\": \"object\",\n \"properties\": {\n \"id\": {\n \"type\": \"string\"\n },\n \"alsoKnownAs\": {\n \"type\": \"array\",\n \"items\": {\n \"type\": \"string\"\n }\n },\n \"vpResponseOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"id\", \"vpResponseOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.getSiopAuthenticationRequestDetails } \"\n },\n \"IVerifySiopAuthenticationRequestUriArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"ParsedAuthenticationRequestURI\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"ParsedAuthenticationRequestURI\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"VerifiedAuthorizationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"payload\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"presentationDefinitions\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifyOpts\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"payload\", \"verifyOpts\"],\n \"description\": \"Result of {@link DidAuthSiopOpAuthenticator.verifySiopAuthenticationRequestURI } \"\n },\n \"ISendSiopAuthenticationResponseArgs\": {\n \"type\": \"object\",\n \"properties\": {\n \"sessionId\": {\n \"type\": \"string\"\n },\n \"verifiedAuthenticationRequest\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"verifiablePresentationResponse\": {\n \"type\": \"object\",\n \"properties\": {\n \"additionalProperties\": true\n }\n },\n \"additionalProperties\": false\n },\n \"required\": [\"sessionId\", \"verifiedAuthenticationRequest\"],\n \"description\": \"Arguments needed for {@link DidAuthSiopOpAuthenticator.sendSiopAuthenticationResponse } \"\n }\n },\n \"methods\": {\n \"getSessionForSiop\": {\n \"description\": \"Get SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"registerSessionForSiop\": {\n \"description\": \"Register SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRegisterSiopSessionArgs\"\n },\n \"returnType\": \"object\"\n },\n \"removeSessionForSiop\": {\n \"description\": \"Remove SIOP session\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IRemoveSiopSessionArgs\"\n },\n \"returnType\": \"boolean\"\n },\n \"authenticateWithSiop\": {\n \"description\": \"Authenticate using DID Auth SIOP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IAuthenticateWithSiopArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/Response\"\n }\n },\n \"getSiopAuthenticationRequestFromRP\": {\n \"description\": \"Get authentication request from RP\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestFromRpArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/ParsedAuthenticationRequestURI\"\n }\n },\n \"getSiopAuthenticationRequestDetails\": {\n \"description\": \"Get authentication request details\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IGetSiopAuthenticationRequestDetailsArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IAuthRequestDetails\"\n }\n },\n \"verifySiopAuthenticationRequestURI\": {\n \"description\": \"Verify authentication request URI\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/IVerifySiopAuthenticationRequestUriArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/VerifiedAuthorizationRequest\"\n }\n },\n \"sendSiopAuthenticationResponse\": {\n \"description\": \"Send authentication response\",\n \"arguments\": {\n \"$ref\": \"#/components/schemas/ISendSiopAuthenticationResponseArgs\"\n },\n \"returnType\": {\n \"$ref\": \"#/components/schemas/IRequiredContext\"\n }\n }\n }\n }\n }\n}\n","import { AuthorizationServerMetadata, IssuerMetadata } from '@sphereon/oid4vci-common'\nimport { IKeyValueStore, IValueData, KeyValueStore, ValueStoreType } from '@sphereon/ssi-sdk.kv-store-temp'\nimport { IAgentPlugin } from '@veramo/core'\nimport {\n IIssuerDefaultOpts,\n IIssuerMetadataImportArgs,\n IIssuerOptions,\n IIssuerOptsImportArgs,\n IIssuerOptsPersistArgs,\n IMetadataImportArgs,\n IMetadataPersistArgs,\n Ioid4vciStoreClearArgs,\n Ioid4vciStoreExistsArgs,\n IOid4vciStoreGetArgs,\n IOid4vciStoreListArgs,\n IOID4VCIStoreOpts,\n Ioid4vciStoreRemoveArgs,\n OptionalIssuerMetadata,\n OptionalIssuerMetadataValue,\n} from '../index'\n\nimport { IOID4VCIStore } from '../types/IOID4VCIStore'\n\nexport const oid4vciStoreMethods: Array<string> = [\n 'oid4vciStoreDefaultMetadata',\n 'oid4vciStoreDefaultIssuerOptions',\n 'oid4vciStoreDefaultStoreId',\n 'oid4vciStoreDefaultNamespace',\n 'oid4vciStoreGetIssuerOpts',\n 'oid4vciStoreHasIssuerOpts',\n 'oid4vciStorePersistIssuerOpts',\n 'oid4vciStoreRemoveIssuerOpts',\n 'oid4vciStoreClearAllIssuerOpts',\n 'oid4vciStoreGetMetadata',\n 'oid4vciStoreListMetadata',\n 'oid4vciStoreHasMetadata',\n 'oid4vciStorePersistMetadata',\n 'oid4vciStoreRemoveMetadata',\n 'oid4vciStoreClearAllMetadata'\n]\n\nexport class OID4VCIStore implements IAgentPlugin {\n get defaultOpts(): IIssuerDefaultOpts | undefined {\n return this._defaultOpts\n }\n\n set defaultOpts(value: IIssuerDefaultOpts | undefined) {\n this._defaultOpts = value\n }\n\n private readonly _issuerMetadataStores: Map<string, IKeyValueStore<IssuerMetadata>>\n private readonly _authorizationServerMetadataStores: Map<string, IKeyValueStore<AuthorizationServerMetadata>>\n private readonly _optionStores: Map<string, IKeyValueStore<IIssuerOptions>>\n private readonly defaultStoreId: string\n private readonly defaultNamespace: string\n\n private _defaultOpts?: IIssuerDefaultOpts\n\n readonly methods: IOID4VCIStore = {\n oid4vciStoreDefaultMetadata: this.oid4vciStoreDefaultMetadata.bind(this),\n oid4vciStoreDefaultIssuerOptions: this.oid4vciStoreIssuerOptions.bind(this),\n oid4vciStoreDefaultStoreId: this.oid4vciStoreDefaultStoreId.bind(this),\n oid4vciStoreDefaultNamespace: this.oid4vciStoreDefaultNamespace.bind(this),\n\n oid4vciStoreGetIssuerOpts: this.oid4vciStoreGetIssuerOpts.bind(this),\n oid4vciStoreHasIssuerOpts: this.oid4vciStoreHasIssuerOpts.bind(this),\n oid4vciStorePersistIssuerOpts: this.oid4vciStorePersistIssuerOpts.bind(this),\n oid4vciStoreRemoveIssuerOpts: this.oid4vciStoreRemoveIssuerOpts.bind(this),\n oid4vciStoreClearAllIssuerOpts: this.oid4vciStoreClearAllIssuerOpts.bind(this),\n\n oid4vciStoreGetMetadata: this.oid4vciStoreGetMetadata.bind(this),\n oid4vciStoreListMetadata: this.oid4vciStoreListMetadata.bind(this),\n oid4vciStoreHasMetadata: this.oid4vciStoreHasMetadata.bind(this),\n oid4vciStorePersistMetadata: this.oid4vciStorePersistMetadata.bind(this),\n oid4vciStoreRemoveMetadata: this.oid4vciStoreRemoveMetadata.bind(this),\n oid4vciStoreClearAllMetadata: this.oid4vciStoreClearAllMetadata.bind(this),\n }\n\n constructor(opts: IOID4VCIStoreOpts) {\n this.defaultStoreId = opts.defaultStore ?? '_default'\n this.defaultNamespace = opts.defaultNamespace ?? 'oid4vci'\n if (opts.defaultOpts) {\n this._defaultOpts = opts.defaultOpts\n }\n if (opts?.issuerMetadataStores && opts.issuerMetadataStores instanceof Map) {\n this._issuerMetadataStores = opts.issuerMetadataStores\n } else if (opts?.issuerMetadataStores) {\n this._issuerMetadataStores = new Map().set(this.defaultStoreId, opts.issuerMetadataStores)\n } else {\n this._issuerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IssuerMetadata>(),\n }),\n )\n }\n if (opts?.authorizationServerMetadataStores && opts.authorizationServerMetadataStores instanceof Map) {\n this._authorizationServerMetadataStores = opts.authorizationServerMetadataStores\n } else if (opts?.authorizationServerMetadataStores) {\n this._authorizationServerMetadataStores = new Map().set(this.defaultStoreId, opts.authorizationServerMetadataStores)\n } else {\n this._authorizationServerMetadataStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, AuthorizationServerMetadata>(),\n }),\n )\n }\n\n if (opts && Array.isArray(opts?.importMetadatas)) {\n opts.importMetadatas.forEach((metaImport: IMetadataImportArgs) => {\n const meta = metaImport as IIssuerMetadataImportArgs\n void this.oid4vciStorePersistMetadata({\n metadataType: meta.metadataType,\n metadata: meta.metadata,\n storeId: meta.storeId ?? this.defaultStoreId,\n correlationId: meta.correlationId,\n namespace: meta.namespace ?? this.defaultNamespace,\n overwriteExisting: meta.overwriteExisting === undefined ? true : meta.overwriteExisting,\n })\n })\n }\n\n if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {\n this._optionStores = opts.issuerOptsStores\n } else if (opts?.issuerOptsStores) {\n this._optionStores = new Map().set(this.defaultStoreId, opts.issuerOptsStores)\n } else {\n this._optionStores = new Map().set(\n this.defaultStoreId,\n new KeyValueStore({\n namespace: this.defaultNamespace,\n store: new Map<string, IIssuerOptions>(),\n }),\n )\n }\n if (opts && Array.isArray(opts?.importIssuerOpts)) {\n opts.importIssuerOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n }\n\n private async oid4vciStoreGetIssuerOpts({ correlationId, storeId, namespace }: IOid4vciStoreGetArgs): Promise<IIssuerOptions | undefined> {\n return (\n (await this.store({ stores: this._optionStores, storeId }).get(\n this.prefix({\n namespace,\n correlationId,\n }),\n )) ?? this.defaultOpts\n )\n }\n\n public importIssuerOpts(importOpts: IIssuerOptsImportArgs[]) {\n importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))\n }\n\n private async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).has(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStorePersistIssuerOpts(args: IIssuerOptsPersistArgs): Promise<IValueData<IIssuerOptions>> {\n const storeId = this.storeIdStr(args)\n const namespace = this.namespaceStr(args)\n const { correlationId, issuerOpts, ttl } = args\n if (args?.validation !== false) {\n //todo\n }\n const existing = await this.store({ stores: this._optionStores, storeId }).getAsValueData(\n this.prefix({\n namespace,\n correlationId,\n }),\n )\n if (!existing.value || (existing.value && args.overwriteExisting !== false)) {\n return await this.store({ stores: this._optionStores, storeId }).set(\n this.prefix({\n namespace,\n correlationId,\n }),\n issuerOpts,\n ttl,\n )\n }\n return existing\n }\n\n private async oid4vciStoreRemoveIssuerOpts({ storeId, correlationId, namespace }: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n return this.store({ stores: this._optionStores, storeId }).delete(this.prefix({ namespace, correlationId }))\n }\n\n private async oid4vciStoreClearAllIssuerOpts({ storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n return await this.store({ stores: this._optionStores, storeId })\n .clear()\n .then(() => true)\n }\n\n private async oid4vciStoreGetMetadata({\n metadataType,\n correlationId,\n storeId,\n namespace,\n }: IOid4vciStoreGetArgs): Promise<IssuerMetadata | AuthorizationServerMetadata | undefined> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).get(this.prefix({ namespace, correlationId }))\n }\n return undefined\n }\n\n private async oid4vciStoreListMetadata({ metadataType, storeId, namespace }: IOid4vciStoreListArgs): Promise<Array<OptionalIssuerMetadata>> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getMany([`${this.namespaceStr({ namespace })}`])\n }\n return []\n }\n\n private async oid4vciStoreHasMetadata({ metadataType, correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).has(this.prefix({ namespace, correlationId }))\n }\n return false\n }\n\n private async oid4vciStorePersistMetadata(args: IMetadataPersistArgs): Promise<OptionalIssuerMetadataValue> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n const { correlationId, metadata, ttl, metadataType } = args\n\n if (args?.validation !== false) {\n //todo\n }\n\n switch (metadataType) {\n case 'authorizationServer':\n const existingAuth = await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingAuth.value || (existingAuth.value && args.overwriteExisting !== false)) {\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as AuthorizationServerMetadata, ttl)\n }\n return existingAuth\n case 'issuer':\n const existingIssuer = await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).getAsValueData(this.prefix({ namespace, correlationId }))\n\n if (!existingIssuer.value || (existingIssuer.value && args.overwriteExisting !== false)) {\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).set(this.prefix({ namespace, correlationId }), metadata as IssuerMetadata, ttl)\n }\n return existingIssuer\n }\n return undefined\n }\n\n private async oid4vciStoreRemoveMetadata(args: Ioid4vciStoreRemoveArgs): Promise<boolean> {\n const namespace = this.namespaceStr(args)\n const storeId = this.storeIdStr(args)\n\n switch (args.metadataType) {\n case 'authorizationServer':\n return this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n case 'issuer':\n return this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n }).delete(this.prefix({ namespace, correlationId: args.correlationId }))\n }\n return false\n }\n\n private async oid4vciStoreClearAllMetadata({ metadataType, storeId }: Ioid4vciStoreClearArgs): Promise<boolean> {\n switch (metadataType) {\n case 'authorizationServer':\n return await this.store<AuthorizationServerMetadata>({\n stores: this._authorizationServerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n case 'issuer':\n return await this.store<IssuerMetadata>({\n stores: this._issuerMetadataStores,\n storeId,\n })\n .clear()\n .then(() => true)\n }\n return false\n }\n\n private oid4vciStoreIssuerOptions(): Promise<IKeyValueStore<IIssuerOptions>> {\n return Promise.resolve(this.store({ stores: this._optionStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultMetadata(): Promise<IKeyValueStore<IssuerMetadata>> {\n return Promise.resolve(this.store({ stores: this._issuerMetadataStores, storeId: this.defaultStoreId }))\n }\n\n private oid4vciStoreDefaultStoreId(): Promise<string> {\n return Promise.resolve(this.defaultStoreId)\n }\n\n private oid4vciStoreDefaultNamespace(): Promise<string> {\n return Promise.resolve(this.defaultNamespace)\n }\n\n private store<T extends ValueStoreType>(args: { stores: Map<string, IKeyValueStore<T>>; storeId?: string }): IKeyValueStore<T> {\n const storeId = this.storeIdStr({ storeId: args.storeId })\n const store = args.stores.get(storeId)\n if (!store) {\n throw Error(`Could not get issuer metadata store: ${storeId}`)\n }\n return store\n }\n\n private storeIdStr({ storeId }: { storeId?: string }): string {\n return storeId ?? this.defaultStoreId\n }\n\n private namespaceStr({ namespace }: { namespace?: string }): string {\n return namespace ?? this.defaultNamespace\n }\n\n private prefix({ namespace, correlationId }: { namespace?: string; correlationId: string }): string {\n return `${this.namespaceStr({ namespace })}:${correlationId}`\n }\n}\n","/**\n * @public\n */\nconst schema = require('../plugin.schema.json')\nexport { schema }\nexport { OID4VCIStore, oid4vciStoreMethods } from './agent/OID4VCIStore'\nexport * from './types/IOID4VCIStore'\n"],"mappings":"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","names":["KeyValueStore","oid4vciStoreMethods","OID4VCIStore","defaultOpts","_defaultOpts","value","_issuerMetadataStores","_authorizationServerMetadataStores","_optionStores","defaultStoreId","defaultNamespace","methods","oid4vciStoreDefaultMetadata","bind","oid4vciStoreDefaultIssuerOptions","oid4vciStoreIssuerOptions","oid4vciStoreDefaultStoreId","oid4vciStoreDefaultNamespace","oid4vciStoreGetIssuerOpts","oid4vciStoreHasIssuerOpts","oid4vciStorePersistIssuerOpts","oid4vciStoreRemoveIssuerOpts","oid4vciStoreClearAllIssuerOpts","oid4vciStoreGetMetadata","oid4vciStoreListMetadata","oid4vciStoreHasMetadata","oid4vciStorePersistMetadata","oid4vciStoreRemoveMetadata","oid4vciStoreClearAllMetadata","opts","defaultStore","issuerMetadataStores","Map","set","KeyValueStore","namespace","store","authorizationServerMetadataStores","Array","isArray","importMetadatas","forEach","metaImport","meta","metadataType","metadata","storeId","correlationId","overwriteExisting","undefined","issuerOptsStores","importIssuerOpts","opt","stores","get","prefix","importOpts","has","args","storeIdStr","namespaceStr","issuerOpts","ttl","validation","existing","getAsValueData","delete","clear","then","getMany","existingAuth","existingIssuer","Promise","resolve","Error","schema","require"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@sphereon/ssi-sdk.oid4vci-issuer-store",
|
|
3
|
-
"version": "0.36.1-feature.
|
|
3
|
+
"version": "0.36.1-feature.fides.fixes.117+9acc9ac1",
|
|
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.
|
|
30
|
-
"@sphereon/ssi-sdk-ext.did-utils": "0.36.1-feature.
|
|
31
|
-
"@sphereon/ssi-sdk-ext.identifier-resolution": "0.36.1-feature.
|
|
32
|
-
"@sphereon/ssi-sdk.kv-store-temp": "0.36.1-feature.
|
|
29
|
+
"@sphereon/oid4vci-common": "0.20.1-next.8",
|
|
30
|
+
"@sphereon/ssi-sdk-ext.did-utils": "0.36.1-feature.fides.fixes.117+9acc9ac1",
|
|
31
|
+
"@sphereon/ssi-sdk-ext.identifier-resolution": "0.36.1-feature.fides.fixes.117+9acc9ac1",
|
|
32
|
+
"@sphereon/ssi-sdk.kv-store-temp": "0.36.1-feature.fides.fixes.117+9acc9ac1",
|
|
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.
|
|
40
|
+
"@sphereon/ssi-sdk.vc-status-list": "0.36.1-feature.fides.fixes.117+9acc9ac1",
|
|
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": "
|
|
74
|
+
"gitHead": "9acc9ac1a855c5327269e9c76e7028987057c777"
|
|
75
75
|
}
|
|
@@ -36,7 +36,7 @@ export const oid4vciStoreMethods: Array<string> = [
|
|
|
36
36
|
'oid4vciStoreHasMetadata',
|
|
37
37
|
'oid4vciStorePersistMetadata',
|
|
38
38
|
'oid4vciStoreRemoveMetadata',
|
|
39
|
-
'oid4vciStoreClearAllMetadata'
|
|
39
|
+
'oid4vciStoreClearAllMetadata'
|
|
40
40
|
]
|
|
41
41
|
|
|
42
42
|
export class OID4VCIStore implements IAgentPlugin {
|
|
@@ -110,7 +110,17 @@ export class OID4VCIStore implements IAgentPlugin {
|
|
|
110
110
|
}
|
|
111
111
|
|
|
112
112
|
if (opts && Array.isArray(opts?.importMetadatas)) {
|
|
113
|
-
|
|
113
|
+
opts.importMetadatas.forEach((metaImport: IMetadataImportArgs) => {
|
|
114
|
+
const meta = metaImport as IIssuerMetadataImportArgs
|
|
115
|
+
void this.oid4vciStorePersistMetadata({
|
|
116
|
+
metadataType: meta.metadataType,
|
|
117
|
+
metadata: meta.metadata,
|
|
118
|
+
storeId: meta.storeId ?? this.defaultStoreId,
|
|
119
|
+
correlationId: meta.correlationId,
|
|
120
|
+
namespace: meta.namespace ?? this.defaultNamespace,
|
|
121
|
+
overwriteExisting: meta.overwriteExisting === undefined ? true : meta.overwriteExisting,
|
|
122
|
+
})
|
|
123
|
+
})
|
|
114
124
|
}
|
|
115
125
|
|
|
116
126
|
if (opts?.issuerOptsStores && opts.issuerOptsStores instanceof Map) {
|
|
@@ -146,87 +156,6 @@ export class OID4VCIStore implements IAgentPlugin {
|
|
|
146
156
|
importOpts.forEach((opt) => this.oid4vciStorePersistIssuerOpts(opt))
|
|
147
157
|
}
|
|
148
158
|
|
|
149
|
-
private async importMetadatas(metadataImports: IMetadataImportArgs[]): Promise<void> {
|
|
150
|
-
for (const metaImport of metadataImports) {
|
|
151
|
-
const meta = metaImport as IIssuerMetadataImportArgs
|
|
152
|
-
const storeId = meta.storeId ?? this.defaultStoreId
|
|
153
|
-
const namespace = meta.namespace ?? this.defaultNamespace
|
|
154
|
-
const correlationId = meta.correlationId
|
|
155
|
-
|
|
156
|
-
const existingMetadata = await this.oid4vciStoreGetMetadata({
|
|
157
|
-
metadataType: meta.metadataType,
|
|
158
|
-
correlationId,
|
|
159
|
-
storeId,
|
|
160
|
-
namespace,
|
|
161
|
-
})
|
|
162
|
-
|
|
163
|
-
let metadataToPersist: IssuerMetadata | AuthorizationServerMetadata
|
|
164
|
-
|
|
165
|
-
if (existingMetadata) {
|
|
166
|
-
// If overwriteExisting is explicitly false, we skip this import if data exists
|
|
167
|
-
if (meta.overwriteExisting === false) {
|
|
168
|
-
continue
|
|
169
|
-
}
|
|
170
|
-
// Otherwise, we perform a deep merge.
|
|
171
|
-
metadataToPersist = this.deepMerge(existingMetadata, meta.metadata)
|
|
172
|
-
} else {
|
|
173
|
-
metadataToPersist = meta.metadata
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
await this.oid4vciStorePersistMetadata({
|
|
177
|
-
metadataType: meta.metadataType,
|
|
178
|
-
metadata: metadataToPersist,
|
|
179
|
-
storeId,
|
|
180
|
-
correlationId,
|
|
181
|
-
namespace,
|
|
182
|
-
// We set this to true because we have already handled the merge/overwrite logic above.
|
|
183
|
-
// We are now saving the final, combined object.
|
|
184
|
-
overwriteExisting: true,
|
|
185
|
-
})
|
|
186
|
-
}
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Generic Deep Merge.
|
|
191
|
-
* - Recursively merges objects.
|
|
192
|
-
* - Overwrites primitives and arrays (Arrays are treated as values).
|
|
193
|
-
* - Naturally handles 'credential_configurations_supported' by merging the keys of the map.
|
|
194
|
-
*/
|
|
195
|
-
private deepMerge<T extends Record<string, any>>(existing: T, incoming: T): T {
|
|
196
|
-
if (!incoming) {
|
|
197
|
-
return existing
|
|
198
|
-
}
|
|
199
|
-
if (!existing) {
|
|
200
|
-
return incoming
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
const merged = { ...existing }
|
|
204
|
-
|
|
205
|
-
for (const key in incoming) {
|
|
206
|
-
if (!Object.prototype.hasOwnProperty.call(incoming, key)) {
|
|
207
|
-
continue
|
|
208
|
-
}
|
|
209
|
-
|
|
210
|
-
const incomingValue = incoming[key]
|
|
211
|
-
const existingValue = existing[key]
|
|
212
|
-
|
|
213
|
-
if (this.isPlainObject(incomingValue) && this.isPlainObject(existingValue)) {
|
|
214
|
-
// Recursively merge objects
|
|
215
|
-
merged[key] = this.deepMerge(existingValue, incomingValue) as T[Extract<keyof T, string>]
|
|
216
|
-
} else if (incomingValue !== undefined) {
|
|
217
|
-
// Overwrite primitives, arrays, or if existing value was undefined
|
|
218
|
-
merged[key] = incomingValue
|
|
219
|
-
}
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
return merged
|
|
223
|
-
}
|
|
224
|
-
|
|
225
|
-
// Type guard to check if value is a plain object (and not an array or null)
|
|
226
|
-
private isPlainObject(value: unknown): value is Record<string, any> {
|
|
227
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value)
|
|
228
|
-
}
|
|
229
|
-
|
|
230
159
|
private async oid4vciStoreHasIssuerOpts({ correlationId, storeId, namespace }: Ioid4vciStoreExistsArgs): Promise<boolean> {
|
|
231
160
|
return this.store({ stores: this._optionStores, storeId }).has(this.prefix({ namespace, correlationId }))
|
|
232
161
|
}
|