UNPKG

@sphereon/oid4vci-issuer

Version:

OpenID 4 Verifiable Credential Issuance issuer REST endpoints

133 lines 5.77 kB
"use strict"; // noinspection ES6MissingAwait var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) { function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); } return new (P || (P = Promise))(function (resolve, reject) { function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } } function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } } function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); } step((generator = generator.apply(thisArg, _arguments || [])).next()); }); }; Object.defineProperty(exports, "__esModule", { value: true }); exports.LookupStateManager = exports.lookupStateManagerMultiGet = exports.lookupStateManagerMultiGetAsserted = void 0; function lookupStateManagerMultiGetAsserted(args) { return __awaiter(this, void 0, void 0, function* () { const value = yield lookupStateManagerMultiGet(args); if (value) { return value; } return Promise.reject(Error(`no value found for id ${args.id}`)); }); } exports.lookupStateManagerMultiGetAsserted = lookupStateManagerMultiGetAsserted; function lookupStateManagerMultiGet(_a) { return __awaiter(this, arguments, void 0, function* ({ id, lookups, keyValueMapper, valueStateManager, }) { for (const lookup of lookups) { try { const value = yield new LookupStateManager(keyValueMapper, valueStateManager, lookup).get(id); if (value) { return value; } } catch (e) { // intentionally ignore the error } } return valueStateManager.get(id); }); } exports.lookupStateManagerMultiGet = lookupStateManagerMultiGet; class LookupStateManager { constructor(keyValueMapper, valueStateManager, lookup) { this.keyValueMapper = keyValueMapper; this.valueStateManager = valueStateManager; this.lookup = lookup; } startCleanupRoutine(timeout) { this.keyValueMapper.startCleanupRoutine(timeout); return this.valueStateManager.startCleanupRoutine(timeout); } stopCleanupRoutine() { this.keyValueMapper.stopCleanupRoutine(); return this.valueStateManager.stopCleanupRoutine(); } clearAll() { return __awaiter(this, void 0, void 0, function* () { this.keyValueMapper.clearAll(); this.valueStateManager.clearAll(); }); } clearExpired(timestamp) { return __awaiter(this, void 0, void 0, function* () { this.keyValueMapper.clearExpired(timestamp); this.valueStateManager.clearExpired(timestamp); }); } assertedValueId(key) { return __awaiter(this, void 0, void 0, function* () { const prop = this.lookup; const valueId = yield this.keyValueMapper .getAsserted(key) // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore .then((keyState) => (keyState && prop in keyState ? keyState[prop] : undefined)); if (typeof valueId !== 'string') { throw Error('no value id could be derived for key' + key); } return valueId; }); } valueId(key) { return __awaiter(this, void 0, void 0, function* () { const prop = this.lookup; return (yield this.keyValueMapper .get(key) // eslint-disable-next-line @typescript-eslint/ban-ts-comment // @ts-ignore .then((keyState) => (keyState && prop in keyState ? keyState[prop] : undefined))); }); } delete(id) { return __awaiter(this, void 0, void 0, function* () { return yield this.assertedValueId(id).then((value) => __awaiter(this, void 0, void 0, function* () { yield this.keyValueMapper.delete(id); return yield this.valueStateManager.delete(value); })); }); } get(id) { return __awaiter(this, void 0, void 0, function* () { return this.valueId(id).then((value) => (value ? this.valueStateManager.get(value) : undefined)); }); } has(id) { return __awaiter(this, void 0, void 0, function* () { return this.valueId(id).then((value) => (value ? this.valueStateManager.has(value) : false)); }); } // eslint-disable-next-line @typescript-eslint/no-unused-vars set(_id, _stateValue) { return __awaiter(this, void 0, void 0, function* () { throw Error(`Please use the setMappedMethod that accepts both and id, value and object`); }); } setMapped(valueKey, keyObject, stateValue) { return __awaiter(this, void 0, void 0, function* () { const keys = keyObject; if (!(this.lookup in keys) || !keys[this.lookup]) { return Promise.reject(new Error(`keyValue ${keyObject} does not contain the lookup property ${this.lookup}`)); } const key = keys[this.lookup]; yield this.keyValueMapper.set(key, keyObject); yield this.valueStateManager.set(valueKey, stateValue); }); } getAsserted(id) { return __awaiter(this, void 0, void 0, function* () { return this.assertedValueId(id).then((value) => this.valueStateManager.getAsserted(value)); }); } } exports.LookupStateManager = LookupStateManager; //# sourceMappingURL=LookupStateManager.js.map