@animo-id/pex
Version:
A Typescript implementation of the v1 and v2 DIF Presentation Exchange specification
70 lines • 7.48 kB
JavaScript
;
var __importDefault = (this && this.__importDefault) || function (mod) {
return (mod && mod.__esModule) ? mod : { "default": mod };
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.MarkForSubmissionEvaluationHandler = exports.eligibleInputDescriptorsForWrappedVc = void 0;
const jsonpath_1 = require("@astronautlabs/jsonpath");
const ConstraintUtils_1 = require("../../ConstraintUtils");
const Messages_1 = __importDefault(require("../../types/Messages"));
const abstractEvaluationHandler_1 = require("./abstractEvaluationHandler");
function eligibleInputDescriptorsForWrappedVc(inputDescriptors, vcIndex, results) {
return inputDescriptors
.map((inputDescriptor, inputDescriptorIndex) => {
const matchingResults = results.filter(({ verifiable_credential_path, input_descriptor_path }) => verifiable_credential_path === `$[${vcIndex}]` && input_descriptor_path === `$.input_descriptors[${inputDescriptorIndex}]`);
const hasError = matchingResults.some((result) => result.status === ConstraintUtils_1.Status.ERROR);
const hasInfo = matchingResults.some((result) => result.status === ConstraintUtils_1.Status.INFO);
if (hasInfo && !hasError) {
return {
inputDescriptor,
inputDescriptorIndex,
};
}
return undefined;
})
.filter((value) => value !== undefined);
}
exports.eligibleInputDescriptorsForWrappedVc = eligibleInputDescriptorsForWrappedVc;
class MarkForSubmissionEvaluationHandler extends abstractEvaluationHandler_1.AbstractEvaluationHandler {
constructor(client) {
super(client);
}
getName() {
return 'MarkForSubmissionEvaluation';
}
handle(pd, wrappedVcs) {
const results = [...this.getResults()];
const errors = results.filter((result) => result.status === ConstraintUtils_1.Status.ERROR);
const infos = this.retrieveNoErrorStatus(results, errors);
this.client.wrappedVcs = wrappedVcs;
this.produceErrorResults(errors);
this.produceSuccessResults(infos, pd);
}
retrieveNoErrorStatus(results, errors) {
const info = results.filter((e) => e.status !== ConstraintUtils_1.Status.ERROR);
return info.filter((a) => !errors.find((b) => a.input_descriptor_path === b.input_descriptor_path && a.verifiable_credential_path === b.verifiable_credential_path));
}
produceSuccessResults(infos, pd) {
this.removeDuplicate(infos).forEach((info) => {
const parsedPath = jsonpath_1.JSONPath.nodes(pd, info.input_descriptor_path);
const group = parsedPath[0].value.group;
this.getResults().push({
input_descriptor_path: info.input_descriptor_path,
verifiable_credential_path: info.verifiable_credential_path,
evaluator: this.getName(),
status: ConstraintUtils_1.Status.INFO,
payload: { group },
message: Messages_1.default.INPUT_CANDIDATE_IS_ELIGIBLE_FOR_PRESENTATION_SUBMISSION,
});
});
}
produceErrorResults(errors) {
this.removeDuplicate(errors).forEach((error) => {
const payload = Object.assign({}, error.payload);
payload.evaluator = error.evaluator;
this.getResults().push(Object.assign(Object.assign({}, error), { evaluator: this.getName(), message: Messages_1.default.INPUT_CANDIDATE_IS_NOT_ELIGIBLE_FOR_PRESENTATION_SUBMISSION, payload: payload }));
});
}
}
exports.MarkForSubmissionEvaluationHandler = MarkForSubmissionEvaluationHandler;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWFya0ZvclN1Ym1pc3Npb25FdmFsdWF0aW9uSGFuZGxlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL2xpYi9ldmFsdWF0aW9uL2hhbmRsZXJzL21hcmtGb3JTdWJtaXNzaW9uRXZhbHVhdGlvbkhhbmRsZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEsc0RBQXlEO0FBR3pELDJEQUErQztBQUUvQyxvRUFBK0M7QUFLL0MsMkVBQXdFO0FBRXhFLFNBQWdCLG9DQUFvQyxDQUNsRCxnQkFBOEQsRUFDOUQsT0FBZSxFQUNmLE9BQTZCO0lBRTdCLE9BQU8sZ0JBQWdCO1NBQ3BCLEdBQUcsQ0FBQyxDQUFDLGVBQWUsRUFBRSxvQkFBb0IsRUFBRSxFQUFFO1FBQzdDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxNQUFNLENBQ3BDLENBQUMsRUFBRSwwQkFBMEIsRUFBRSxxQkFBcUIsRUFBRSxFQUFFLEVBQUUsQ0FDeEQsMEJBQTBCLEtBQUssS0FBSyxPQUFPLEdBQUcsSUFBSSxxQkFBcUIsS0FBSyx1QkFBdUIsb0JBQW9CLEdBQUcsQ0FDN0gsQ0FBQztRQUVGLE1BQU0sUUFBUSxHQUFHLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEtBQUssd0JBQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNsRixNQUFNLE9BQU8sR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsTUFBTSxLQUFLLHdCQUFNLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEYsSUFBSSxPQUFPLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN6QixPQUFPO2dCQUNMLGVBQWU7Z0JBQ2Ysb0JBQW9CO2FBQ3JCLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDbkIsQ0FBQyxDQUFDO1NBQ0QsTUFBTSxD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