@bifold/verifier 1.0.0
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/README.md +1 -0
- package/build/commonjs/README.md +4 -0
- package/build/commonjs/constants.js +9 -0
- package/build/commonjs/constants.js.map +1 -0
- package/build/commonjs/hooks/proofs.js +22 -0
- package/build/commonjs/hooks/proofs.js.map +1 -0
- package/build/commonjs/index.js +120 -0
- package/build/commonjs/index.js.map +1 -0
- package/build/commonjs/request-templates.js +59 -0
- package/build/commonjs/request-templates.js.map +1 -0
- package/build/commonjs/types/agent.js +9 -0
- package/build/commonjs/types/agent.js.map +1 -0
- package/build/commonjs/types/metadata.js +11 -0
- package/build/commonjs/types/metadata.js.map +1 -0
- package/build/commonjs/types/proof-reqeust-template.js +12 -0
- package/build/commonjs/types/proof-reqeust-template.js.map +1 -0
- package/build/commonjs/types/proof.js +26 -0
- package/build/commonjs/types/proof.js.map +1 -0
- package/build/commonjs/utils/proof-request.js +163 -0
- package/build/commonjs/utils/proof-request.js.map +1 -0
- package/build/commonjs/utils/proof.js +184 -0
- package/build/commonjs/utils/proof.js.map +1 -0
- package/build/module/README.md +4 -0
- package/build/module/constants.js +3 -0
- package/build/module/constants.js.map +1 -0
- package/build/module/hooks/proofs.js +15 -0
- package/build/module/hooks/proofs.js.map +1 -0
- package/build/module/index.js +7 -0
- package/build/module/index.js.map +1 -0
- package/build/module/request-templates.js +52 -0
- package/build/module/request-templates.js.map +1 -0
- package/build/module/types/agent.js +5 -0
- package/build/module/types/agent.js.map +1 -0
- package/build/module/types/metadata.js +5 -0
- package/build/module/types/metadata.js.map +1 -0
- package/build/module/types/proof-reqeust-template.js +8 -0
- package/build/module/types/proof-reqeust-template.js.map +1 -0
- package/build/module/types/proof.js +18 -0
- package/build/module/types/proof.js.map +1 -0
- package/build/module/utils/proof-request.js +151 -0
- package/build/module/utils/proof-request.js.map +1 -0
- package/build/module/utils/proof.js +171 -0
- package/build/module/utils/proof.js.map +1 -0
- package/build/typescript/__tests__/verifier/proof-request.test.d.ts +2 -0
- package/build/typescript/__tests__/verifier/proof-request.test.d.ts.map +1 -0
- package/build/typescript/__tests__/verifier/proof.test.d.ts +2 -0
- package/build/typescript/__tests__/verifier/proof.test.d.ts.map +1 -0
- package/build/typescript/constants.d.ts +3 -0
- package/build/typescript/constants.d.ts.map +1 -0
- package/build/typescript/hooks/proofs.d.ts +3 -0
- package/build/typescript/hooks/proofs.d.ts.map +1 -0
- package/build/typescript/index.d.ts +11 -0
- package/build/typescript/index.d.ts.map +1 -0
- package/build/typescript/request-templates.d.ts +3 -0
- package/build/typescript/request-templates.d.ts.map +1 -0
- package/build/typescript/types/agent.d.ts +12 -0
- package/build/typescript/types/agent.d.ts.map +1 -0
- package/build/typescript/types/metadata.d.ts +9 -0
- package/build/typescript/types/metadata.d.ts.map +1 -0
- package/build/typescript/types/proof-reqeust-template.d.ts +48 -0
- package/build/typescript/types/proof-reqeust-template.d.ts.map +1 -0
- package/build/typescript/types/proof.d.ts +51 -0
- package/build/typescript/types/proof.d.ts.map +1 -0
- package/build/typescript/utils/proof-request.d.ts +30 -0
- package/build/typescript/utils/proof-request.d.ts.map +1 -0
- package/build/typescript/utils/proof.d.ts +18 -0
- package/build/typescript/utils/proof.d.ts.map +1 -0
- package/package.json +59 -0
- package/src/README.md +4 -0
- package/src/__tests__/verifier/__snapshots__/proof-request.test.ts.snap +72 -0
- package/src/__tests__/verifier/__snapshots__/proof.test.ts.snap +135 -0
- package/src/__tests__/verifier/proof-request.test.ts +34 -0
- package/src/__tests__/verifier/proof.test.ts +99 -0
- package/src/constants.ts +2 -0
- package/src/hooks/proofs.ts +20 -0
- package/src/index.ts +45 -0
- package/src/request-templates.ts +62 -0
- package/src/types/agent.ts +53 -0
- package/src/types/metadata.ts +9 -0
- package/src/types/proof-reqeust-template.ts +59 -0
- package/src/types/proof.ts +68 -0
- package/src/utils/proof-request.ts +177 -0
- package/src/utils/proof.ts +173 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.parseAnonCredsProof = exports.markProofAsViewed = exports.linkProofWithTemplate = exports.isPresentationReceived = exports.isPresentationFailed = exports.groupSharedProofDataByCredential = exports.getProofIdentifiers = exports.getProofData = void 0;
|
|
7
|
+
var _core = require("@credo-ts/core");
|
|
8
|
+
var _metadata = require("../types/metadata");
|
|
9
|
+
var _proof = require("../types/proof");
|
|
10
|
+
/*
|
|
11
|
+
* Extract identifiers from indy proof
|
|
12
|
+
* */
|
|
13
|
+
const getProofIdentifiers = (proof, proofIndex) => {
|
|
14
|
+
const identifiers = proof.identifiers[proofIndex];
|
|
15
|
+
if (!identifiers) {
|
|
16
|
+
throw new Error('Invalid indy proof data');
|
|
17
|
+
}
|
|
18
|
+
return identifiers;
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
/*
|
|
22
|
+
* Process anoncreds proof and return
|
|
23
|
+
* - shared attributes
|
|
24
|
+
* - shared attribute groups
|
|
25
|
+
* - resolved predicates
|
|
26
|
+
* - missing attributes
|
|
27
|
+
* - missing attribute groups
|
|
28
|
+
* - unresolved predicates
|
|
29
|
+
* */
|
|
30
|
+
exports.getProofIdentifiers = getProofIdentifiers;
|
|
31
|
+
const parseAnonCredsProof = (request, proof) => {
|
|
32
|
+
const result = new _proof.ParsedAnonCredsProof();
|
|
33
|
+
for (const [referent, requested_attribute] of Object.entries(request.requested_attributes)) {
|
|
34
|
+
if (requested_attribute.name) {
|
|
35
|
+
const shared = proof.requested_proof.revealed_attrs[referent];
|
|
36
|
+
if (shared) {
|
|
37
|
+
const identifiers = getProofIdentifiers(proof, shared.sub_proof_index);
|
|
38
|
+
result.sharedAttributes.push({
|
|
39
|
+
name: requested_attribute.name,
|
|
40
|
+
value: shared.raw,
|
|
41
|
+
identifiers
|
|
42
|
+
});
|
|
43
|
+
} else {
|
|
44
|
+
result.unresolvedAttributes.push({
|
|
45
|
+
name: requested_attribute.name
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
if (requested_attribute.names) {
|
|
50
|
+
var _proof$requested_proo;
|
|
51
|
+
const shared = (_proof$requested_proo = proof.requested_proof.revealed_attr_groups) === null || _proof$requested_proo === void 0 ? void 0 : _proof$requested_proo[referent];
|
|
52
|
+
if (shared) {
|
|
53
|
+
const attributes = Object.entries(shared.values).map(([name, value]) => ({
|
|
54
|
+
name,
|
|
55
|
+
value: value.raw
|
|
56
|
+
}));
|
|
57
|
+
const identifiers = getProofIdentifiers(proof, shared.sub_proof_index);
|
|
58
|
+
result.sharedAttributeGroups.push({
|
|
59
|
+
attributes,
|
|
60
|
+
identifiers
|
|
61
|
+
});
|
|
62
|
+
} else {
|
|
63
|
+
result.unresolvedAttributeGroups.push(requested_attribute.names.map(name => ({
|
|
64
|
+
name
|
|
65
|
+
})));
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
for (const [referent, requestedPredicate] of Object.entries(request.requested_predicates)) {
|
|
70
|
+
const shared = proof.requested_proof.predicates[referent];
|
|
71
|
+
if (shared) {
|
|
72
|
+
const identifiers = getProofIdentifiers(proof, shared.sub_proof_index);
|
|
73
|
+
result.resolvedPredicates.push({
|
|
74
|
+
name: requestedPredicate.name,
|
|
75
|
+
predicateType: requestedPredicate.p_type,
|
|
76
|
+
predicateValue: requestedPredicate.p_value,
|
|
77
|
+
identifiers
|
|
78
|
+
});
|
|
79
|
+
} else {
|
|
80
|
+
result.unresolvedPredicates.push({
|
|
81
|
+
name: requestedPredicate.name,
|
|
82
|
+
predicateType: requestedPredicate.p_type,
|
|
83
|
+
predicateValue: requestedPredicate.p_value
|
|
84
|
+
});
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
return result;
|
|
88
|
+
};
|
|
89
|
+
|
|
90
|
+
/*
|
|
91
|
+
* Group parsed indy proof data ( returned from `parseIndyProof`) by credential definition id
|
|
92
|
+
* */
|
|
93
|
+
exports.parseAnonCredsProof = parseAnonCredsProof;
|
|
94
|
+
const groupSharedProofDataByCredential = data => {
|
|
95
|
+
const result = new Map();
|
|
96
|
+
for (const item of data.sharedAttributes) {
|
|
97
|
+
var _result$get;
|
|
98
|
+
if (!result.has(item.identifiers.cred_def_id)) {
|
|
99
|
+
result.set(item.identifiers.cred_def_id, {
|
|
100
|
+
data: new _proof.CredentialSharedProofData(),
|
|
101
|
+
identifiers: item.identifiers
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
(_result$get = result.get(item.identifiers.cred_def_id)) === null || _result$get === void 0 || _result$get.data.sharedAttributes.push(item);
|
|
105
|
+
}
|
|
106
|
+
for (const item of data.sharedAttributeGroups) {
|
|
107
|
+
var _result$get2;
|
|
108
|
+
if (!result.has(item.identifiers.cred_def_id)) {
|
|
109
|
+
result.set(item.identifiers.cred_def_id, {
|
|
110
|
+
data: new _proof.CredentialSharedProofData(),
|
|
111
|
+
identifiers: item.identifiers
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
(_result$get2 = result.get(item.identifiers.cred_def_id)) === null || _result$get2 === void 0 || _result$get2.data.sharedAttributeGroups.push(item);
|
|
115
|
+
}
|
|
116
|
+
for (const item of data.resolvedPredicates) {
|
|
117
|
+
var _result$get3;
|
|
118
|
+
if (!result.has(item.identifiers.cred_def_id)) {
|
|
119
|
+
result.set(item.identifiers.cred_def_id, {
|
|
120
|
+
data: new _proof.CredentialSharedProofData(),
|
|
121
|
+
identifiers: item.identifiers
|
|
122
|
+
});
|
|
123
|
+
}
|
|
124
|
+
(_result$get3 = result.get(item.identifiers.cred_def_id)) === null || _result$get3 === void 0 || _result$get3.data.resolvedPredicates.push(item);
|
|
125
|
+
}
|
|
126
|
+
return result;
|
|
127
|
+
};
|
|
128
|
+
|
|
129
|
+
/*
|
|
130
|
+
* Retrieve proof details from Credo record
|
|
131
|
+
* */
|
|
132
|
+
exports.groupSharedProofDataByCredential = groupSharedProofDataByCredential;
|
|
133
|
+
const getProofData = async (agent, recordId) => {
|
|
134
|
+
var _data$request, _data$presentation, _data$request2, _data$presentation2;
|
|
135
|
+
const data = await agent.proofs.getFormatData(recordId);
|
|
136
|
+
if ((_data$request = data.request) !== null && _data$request !== void 0 && _data$request.anoncreds && (_data$presentation = data.presentation) !== null && _data$presentation !== void 0 && _data$presentation.anoncreds) {
|
|
137
|
+
return parseAnonCredsProof(data.request.anoncreds, data.presentation.anoncreds);
|
|
138
|
+
} else if ((_data$request2 = data.request) !== null && _data$request2 !== void 0 && _data$request2.indy && (_data$presentation2 = data.presentation) !== null && _data$presentation2 !== void 0 && _data$presentation2.indy) {
|
|
139
|
+
return parseAnonCredsProof(data.request.indy, data.presentation.indy);
|
|
140
|
+
}
|
|
141
|
+
return undefined;
|
|
142
|
+
};
|
|
143
|
+
|
|
144
|
+
/*
|
|
145
|
+
* Check if a presentation received
|
|
146
|
+
* */
|
|
147
|
+
exports.getProofData = getProofData;
|
|
148
|
+
const isPresentationReceived = record => {
|
|
149
|
+
return record.state === _core.ProofState.PresentationReceived || record.state === _core.ProofState.Done;
|
|
150
|
+
};
|
|
151
|
+
|
|
152
|
+
/*
|
|
153
|
+
* Check if a presentation failed
|
|
154
|
+
* */
|
|
155
|
+
exports.isPresentationReceived = isPresentationReceived;
|
|
156
|
+
const isPresentationFailed = record => {
|
|
157
|
+
return record.state === _core.ProofState.Abandoned;
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
/*
|
|
161
|
+
* Mark Proof record as viewed
|
|
162
|
+
* */
|
|
163
|
+
exports.isPresentationFailed = isPresentationFailed;
|
|
164
|
+
const markProofAsViewed = async (agent, record) => {
|
|
165
|
+
record.metadata.set(_metadata.ProofMetadata.customMetadata, {
|
|
166
|
+
...record.metadata.data.customMetadata,
|
|
167
|
+
details_seen: true
|
|
168
|
+
});
|
|
169
|
+
return agent.proofs.update(record);
|
|
170
|
+
};
|
|
171
|
+
|
|
172
|
+
/*
|
|
173
|
+
* Add template reference to Proof Exchange record
|
|
174
|
+
* */
|
|
175
|
+
exports.markProofAsViewed = markProofAsViewed;
|
|
176
|
+
const linkProofWithTemplate = async (agent, record, templateId) => {
|
|
177
|
+
record.metadata.set(_metadata.ProofMetadata.customMetadata, {
|
|
178
|
+
...record.metadata.data.customMetadata,
|
|
179
|
+
proof_request_template_id: templateId
|
|
180
|
+
});
|
|
181
|
+
return agent.proofs.update(record);
|
|
182
|
+
};
|
|
183
|
+
exports.linkProofWithTemplate = linkProofWithTemplate;
|
|
184
|
+
//# sourceMappingURL=proof.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_core","require","_metadata","_proof","getProofIdentifiers","proof","proofIndex","identifiers","Error","exports","parseAnonCredsProof","request","result","ParsedAnonCredsProof","referent","requested_attribute","Object","entries","requested_attributes","name","shared","requested_proof","revealed_attrs","sub_proof_index","sharedAttributes","push","value","raw","unresolvedAttributes","names","_proof$requested_proo","revealed_attr_groups","attributes","values","map","sharedAttributeGroups","unresolvedAttributeGroups","requestedPredicate","requested_predicates","predicates","resolvedPredicates","predicateType","p_type","predicateValue","p_value","unresolvedPredicates","groupSharedProofDataByCredential","data","Map","item","_result$get","has","cred_def_id","set","CredentialSharedProofData","get","_result$get2","_result$get3","getProofData","agent","recordId","_data$request","_data$presentation","_data$request2","_data$presentation2","proofs","getFormatData","anoncreds","presentation","indy","undefined","isPresentationReceived","record","state","ProofState","PresentationReceived","Done","isPresentationFailed","Abandoned","markProofAsViewed","metadata","ProofMetadata","customMetadata","details_seen","update","linkProofWithTemplate","templateId","proof_request_template_id"],"sourceRoot":"../../../src","sources":["utils/proof.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["protocolVersion","domain"],"sourceRoot":"../../src","sources":["constants.ts"],"mappings":"AAAA,OAAO,MAAMA,eAAe,GAAG,IAAI;AACnC,OAAO,MAAMC,MAAM,GAAG,kBAAkB","ignoreList":[]}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { useProofs } from '@credo-ts/react-hooks';
|
|
2
|
+
import { useMemo } from 'react';
|
|
3
|
+
import { ProofMetadata } from '../types/metadata';
|
|
4
|
+
export const useProofsByTemplateId = templateId => {
|
|
5
|
+
const {
|
|
6
|
+
records: proofs
|
|
7
|
+
} = useProofs();
|
|
8
|
+
return useMemo(() => proofs.filter(proof => {
|
|
9
|
+
const metadata = proof === null || proof === void 0 ? void 0 : proof.metadata.get(ProofMetadata.customMetadata);
|
|
10
|
+
if ((metadata === null || metadata === void 0 ? void 0 : metadata.proof_request_template_id) === templateId) {
|
|
11
|
+
return proof;
|
|
12
|
+
}
|
|
13
|
+
}), [proofs, templateId]);
|
|
14
|
+
};
|
|
15
|
+
//# sourceMappingURL=proofs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useProofs","useMemo","ProofMetadata","useProofsByTemplateId","templateId","records","proofs","filter","proof","metadata","get","customMetadata","proof_request_template_id"],"sourceRoot":"../../../src","sources":["hooks/proofs.ts"],"mappings":"AACA,SAASA,SAAS,QAAQ,uBAAuB;AACjD,SAASC,OAAO,QAAQ,OAAO;AAE/B,SAA8BC,aAAa,QAAQ,mBAAmB;AAEtE,OAAO,MAAMC,qBAAqB,GAAIC,UAAkB,IAA4B;EAClF,MAAM;IAAEC,OAAO,EAAEC;EAAO,CAAC,GAAGN,SAAS,CAAC,CAAC;EAEvC,OAAOC,OAAO,CACZ,MACEK,MAAM,CAACC,MAAM,CAAEC,KAA0B,IAAK;IAC5C,MAAMC,QAAQ,GAAGD,KAAK,aAALA,KAAK,uBAALA,KAAK,CAAEC,QAAQ,CAACC,GAAG,CAACR,aAAa,CAACS,cAAc,CAAwB;IACzF,IAAI,CAAAF,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEG,yBAAyB,MAAKR,UAAU,EAAE;MACtD,OAAOI,KAAK;IACd;EACF,CAAC,CAAC,EACJ,CAACF,MAAM,EAAEF,UAAU,CACrB,CAAC;AACH,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
export { ProofRequestType } from './types/proof-reqeust-template';
|
|
2
|
+
export { ProofMetadata } from './types/metadata';
|
|
3
|
+
export { useProofsByTemplateId } from './hooks/proofs';
|
|
4
|
+
export { getProofIdentifiers, parseAnonCredsProof, groupSharedProofDataByCredential, getProofData, isPresentationReceived, isPresentationFailed, markProofAsViewed, linkProofWithTemplate } from './utils/proof';
|
|
5
|
+
export { findProofRequestMessage, buildProofRequestDataForTemplate, createConnectionlessProofRequestInvitation, sendProofRequest, hasPredicates, isParameterizable } from './utils/proof-request';
|
|
6
|
+
export { getProofRequestTemplates } from './request-templates';
|
|
7
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ProofRequestType","ProofMetadata","useProofsByTemplateId","getProofIdentifiers","parseAnonCredsProof","groupSharedProofDataByCredential","getProofData","isPresentationReceived","isPresentationFailed","markProofAsViewed","linkProofWithTemplate","findProofRequestMessage","buildProofRequestDataForTemplate","createConnectionlessProofRequestInvitation","sendProofRequest","hasPredicates","isParameterizable","getProofRequestTemplates"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"AAAA,SAASA,gBAAgB,QAAQ,gCAAgC;AAuBjE,SAASC,aAAa,QAAQ,kBAAkB;AAChD,SAASC,qBAAqB,QAAQ,gBAAgB;AACtD,SACEC,mBAAmB,EACnBC,mBAAmB,EACnBC,gCAAgC,EAChCC,YAAY,EACZC,sBAAsB,EACtBC,oBAAoB,EACpBC,iBAAiB,EACjBC,qBAAqB,QAChB,eAAe;AAEtB,SACEC,uBAAuB,EACvBC,gCAAgC,EAChCC,0CAA0C,EAC1CC,gBAAgB,EAChBC,aAAa,EACbC,iBAAiB,QACZ,uBAAuB;AAC9B,SAASC,wBAAwB,QAAQ,qBAAqB","ignoreList":[]}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { ProofRequestType } from './types/proof-reqeust-template';
|
|
2
|
+
export const getProofRequestTemplates = useDevRestrictions => {
|
|
3
|
+
const studentRestrictions = [{
|
|
4
|
+
cred_def_id: 'XUxBrVSALWHLeycAUhrNr9:3:CL:26293:student_card'
|
|
5
|
+
}];
|
|
6
|
+
const studentDevRestrictions = [{
|
|
7
|
+
schema_name: 'student_card'
|
|
8
|
+
}];
|
|
9
|
+
const restrictions = useDevRestrictions ? studentDevRestrictions : studentRestrictions;
|
|
10
|
+
const defaultProofRequestTemplates = [{
|
|
11
|
+
id: 'Aries:5:StudentFullName:0.0.1:indy',
|
|
12
|
+
name: 'Student full name',
|
|
13
|
+
description: 'Verify the full name of a student',
|
|
14
|
+
version: '0.0.1',
|
|
15
|
+
payload: {
|
|
16
|
+
type: ProofRequestType.AnonCreds,
|
|
17
|
+
data: [{
|
|
18
|
+
schema: 'XUxBrVSALWHLeycAUhrNr9:3:CL:26293:Student Card',
|
|
19
|
+
requestedAttributes: [{
|
|
20
|
+
name: 'student_first_name',
|
|
21
|
+
restrictions
|
|
22
|
+
}, {
|
|
23
|
+
name: 'student_last_name',
|
|
24
|
+
restrictions
|
|
25
|
+
}]
|
|
26
|
+
}]
|
|
27
|
+
}
|
|
28
|
+
}, {
|
|
29
|
+
id: 'Aries:5:StudentFullNameAndExpirationDate:0.0.1:indy',
|
|
30
|
+
name: 'Student full name and expiration date',
|
|
31
|
+
description: 'Verify that full name of a student and that he/she has a not expired student card.',
|
|
32
|
+
version: '0.0.1',
|
|
33
|
+
payload: {
|
|
34
|
+
type: ProofRequestType.AnonCreds,
|
|
35
|
+
data: [{
|
|
36
|
+
schema: 'XUxBrVSALWHLeycAUhrNr9:3:CL:26293:Student Card',
|
|
37
|
+
requestedAttributes: [{
|
|
38
|
+
names: ['student_first_name', 'student_last_name'],
|
|
39
|
+
restrictions
|
|
40
|
+
}],
|
|
41
|
+
requestedPredicates: [{
|
|
42
|
+
name: 'expiry_date',
|
|
43
|
+
predicateType: '>=',
|
|
44
|
+
predicateValue: 20240101,
|
|
45
|
+
restrictions
|
|
46
|
+
}]
|
|
47
|
+
}]
|
|
48
|
+
}
|
|
49
|
+
}];
|
|
50
|
+
return defaultProofRequestTemplates;
|
|
51
|
+
};
|
|
52
|
+
//# sourceMappingURL=request-templates.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ProofRequestType","getProofRequestTemplates","useDevRestrictions","studentRestrictions","cred_def_id","studentDevRestrictions","schema_name","restrictions","defaultProofRequestTemplates","id","name","description","version","payload","type","AnonCreds","data","schema","requestedAttributes","names","requestedPredicates","predicateType","predicateValue"],"sourceRoot":"../../src","sources":["request-templates.ts"],"mappings":"AAAA,SAA+BA,gBAAgB,QAAQ,gCAAgC;AAEvF,OAAO,MAAMC,wBAAwB,GAAIC,kBAA2B,IAAK;EACvE,MAAMC,mBAAmB,GAAG,CAAC;IAAEC,WAAW,EAAE;EAAiD,CAAC,CAAC;EAC/F,MAAMC,sBAAsB,GAAG,CAAC;IAAEC,WAAW,EAAE;EAAe,CAAC,CAAC;EAChE,MAAMC,YAAY,GAAGL,kBAAkB,GAAGG,sBAAsB,GAAGF,mBAAmB;EACtF,MAAMK,4BAAyD,GAAG,CAChE;IACEC,EAAE,EAAE,oCAAoC;IACxCC,IAAI,EAAE,mBAAmB;IACzBC,WAAW,EAAE,mCAAmC;IAChDC,OAAO,EAAE,OAAO;IAChBC,OAAO,EAAE;MACPC,IAAI,EAAEd,gBAAgB,CAACe,SAAS;MAChCC,IAAI,EAAE,CACJ;QACEC,MAAM,EAAE,gDAAgD;QACxDC,mBAAmB,EAAE,CACnB;UACER,IAAI,EAAE,oBAAoB;UAC1BH;QACF,CAAC,EACD;UACEG,IAAI,EAAE,mBAAmB;UACzBH;QACF,CAAC;MAEL,CAAC;IAEL;EACF,CAAC,EACD;IACEE,EAAE,EAAE,qDAAqD;IACzDC,IAAI,EAAE,uCAAuC;IAC7CC,WAAW,EAAE,oFAAoF;IACjGC,OAAO,EAAE,OAAO;IAChBC,OAAO,EAAE;MACPC,IAAI,EAAEd,gBAAgB,CAACe,SAAS;MAChCC,IAAI,EAAE,CACJ;QACEC,MAAM,EAAE,gDAAgD;QACxDC,mBAAmB,EAAE,CACnB;UACEC,KAAK,EAAE,CAAC,oBAAoB,EAAE,mBAAmB,CAAC;UAClDZ;QACF,CAAC,CACF;QACDa,mBAAmB,EAAE,CACnB;UACEV,IAAI,EAAE,aAAa;UACnBW,aAAa,EAAE,IAAI;UACnBC,cAAc,EAAE,QAAQ;UACxBf;QACF,CAAC;MAEL,CAAC;IAEL;EACF,CAAC,CACF;EACD,OAAOC,4BAA4B;AACrC,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["getAgentModules"],"sourceRoot":"../../../src","sources":["types/agent.ts"],"mappings":"AAqBA,SAASA,eAAeA,CAAA,EAAG;EACzB,OAAO,IAAI;AA4Bb;AAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ProofMetadata"],"sourceRoot":"../../../src","sources":["types/metadata.ts"],"mappings":"AAAA,WAAYA,aAAa,0BAAbA,aAAa;EAAbA,aAAa;EAAA,OAAbA,aAAa;AAAA","ignoreList":[]}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export let ProofRequestType = /*#__PURE__*/function (ProofRequestType) {
|
|
2
|
+
ProofRequestType["AnonCreds"] = "anoncreds";
|
|
3
|
+
ProofRequestType["DIF"] = "dif";
|
|
4
|
+
return ProofRequestType;
|
|
5
|
+
}({});
|
|
6
|
+
|
|
7
|
+
// eslint-disable-next-line @typescript-eslint/no-empty-interface
|
|
8
|
+
//# sourceMappingURL=proof-reqeust-template.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ProofRequestType"],"sourceRoot":"../../../src","sources":["types/proof-reqeust-template.ts"],"mappings":"AAiCA,WAAYA,gBAAgB,0BAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAhBA,gBAAgB;EAAA,OAAhBA,gBAAgB;AAAA;;AAU5B","ignoreList":[]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export class ParsedAnonCredsProof {
|
|
2
|
+
constructor() {
|
|
3
|
+
this.sharedAttributes = [];
|
|
4
|
+
this.sharedAttributeGroups = [];
|
|
5
|
+
this.resolvedPredicates = [];
|
|
6
|
+
this.unresolvedAttributes = [];
|
|
7
|
+
this.unresolvedAttributeGroups = [];
|
|
8
|
+
this.unresolvedPredicates = [];
|
|
9
|
+
}
|
|
10
|
+
}
|
|
11
|
+
export class CredentialSharedProofData {
|
|
12
|
+
constructor() {
|
|
13
|
+
this.sharedAttributes = [];
|
|
14
|
+
this.sharedAttributeGroups = [];
|
|
15
|
+
this.resolvedPredicates = [];
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=proof.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["ParsedAnonCredsProof","constructor","sharedAttributes","sharedAttributeGroups","resolvedPredicates","unresolvedAttributes","unresolvedAttributeGroups","unresolvedPredicates","CredentialSharedProofData"],"sourceRoot":"../../../src","sources":["types/proof.ts"],"mappings":"AAoCA,OAAO,MAAMA,oBAAoB,CAAC;EAQzBC,WAAWA,CAAA,EAAG;IACnB,IAAI,CAACC,gBAAgB,GAAG,EAAE;IAC1B,IAAI,CAACC,qBAAqB,GAAG,EAAE;IAC/B,IAAI,CAACC,kBAAkB,GAAG,EAAE;IAC5B,IAAI,CAACC,oBAAoB,GAAG,EAAE;IAC9B,IAAI,CAACC,yBAAyB,GAAG,EAAE;IACnC,IAAI,CAACC,oBAAoB,GAAG,EAAE;EAChC;AACF;AAEA,OAAO,MAAMC,yBAAyB,CAAC;EAK9BP,WAAWA,CAAA,EAAG;IACnB,IAAI,CAACC,gBAAgB,GAAG,EAAE;IAC1B,IAAI,CAACC,qBAAqB,GAAG,EAAE;IAC/B,IAAI,CAACC,kBAAkB,GAAG,EAAE;EAC9B;AACF","ignoreList":[]}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { V1RequestPresentationMessage } from '@credo-ts/anoncreds';
|
|
2
|
+
import { AutoAcceptProof } from '@credo-ts/core';
|
|
3
|
+
import { ProofRequestType } from '../types/proof-reqeust-template';
|
|
4
|
+
const protocolVersion = 'v2';
|
|
5
|
+
const domain = 'http://aries-mobile-agent.com';
|
|
6
|
+
|
|
7
|
+
/*
|
|
8
|
+
* Find Proof Request message in the storage by the given id
|
|
9
|
+
* */
|
|
10
|
+
export const findProofRequestMessage = async (agent, id) => {
|
|
11
|
+
const message = await agent.proofs.findRequestMessage(id);
|
|
12
|
+
if (message && message instanceof V1RequestPresentationMessage && message.indyProofRequest) {
|
|
13
|
+
return message.indyProofRequest;
|
|
14
|
+
} else {
|
|
15
|
+
return undefined;
|
|
16
|
+
}
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/*
|
|
20
|
+
* Build Proof Request data from for provided template
|
|
21
|
+
* */
|
|
22
|
+
/*
|
|
23
|
+
* Build Proof Request data for provided template
|
|
24
|
+
* */
|
|
25
|
+
export const buildProofRequestDataForTemplate = (template, customValues) => {
|
|
26
|
+
if (template.payload.type === ProofRequestType.AnonCreds) {
|
|
27
|
+
const requestedAttributes = {};
|
|
28
|
+
const requestedPredicates = {};
|
|
29
|
+
let index = 0;
|
|
30
|
+
template.payload.data.forEach(data => {
|
|
31
|
+
var _data$requestedAttrib, _data$requestedPredic;
|
|
32
|
+
if ((_data$requestedAttrib = data.requestedAttributes) !== null && _data$requestedAttrib !== void 0 && _data$requestedAttrib.length) {
|
|
33
|
+
data.requestedAttributes.forEach(requestedAttribute => {
|
|
34
|
+
requestedAttributes[`referent_${index}`] = {
|
|
35
|
+
name: requestedAttribute.name,
|
|
36
|
+
names: requestedAttribute.names,
|
|
37
|
+
non_revoked: requestedAttribute.nonRevoked,
|
|
38
|
+
restrictions: requestedAttribute.restrictions
|
|
39
|
+
};
|
|
40
|
+
index++;
|
|
41
|
+
});
|
|
42
|
+
}
|
|
43
|
+
if ((_data$requestedPredic = data.requestedPredicates) !== null && _data$requestedPredic !== void 0 && _data$requestedPredic.length) {
|
|
44
|
+
data.requestedPredicates.forEach(requestedPredicate => {
|
|
45
|
+
const customValue = customValues && customValues[data.schema] ? customValues[data.schema][requestedPredicate.name] : undefined;
|
|
46
|
+
requestedPredicates[`referent_${index}`] = {
|
|
47
|
+
name: requestedPredicate.name,
|
|
48
|
+
p_value: requestedPredicate.parameterizable && customValue ? customValue : requestedPredicate.predicateValue,
|
|
49
|
+
p_type: requestedPredicate.predicateType,
|
|
50
|
+
non_revoked: requestedPredicate.nonRevoked,
|
|
51
|
+
restrictions: requestedPredicate.restrictions
|
|
52
|
+
};
|
|
53
|
+
index++;
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
});
|
|
57
|
+
return {
|
|
58
|
+
anoncreds: {
|
|
59
|
+
name: template.name,
|
|
60
|
+
version: template.version,
|
|
61
|
+
nonce: Date.now().toString(),
|
|
62
|
+
requested_attributes: requestedAttributes,
|
|
63
|
+
requested_predicates: requestedPredicates
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
if (template.payload.type === ProofRequestType.DIF) {
|
|
68
|
+
return {};
|
|
69
|
+
}
|
|
70
|
+
};
|
|
71
|
+
/*
|
|
72
|
+
* Create connectionless proof request invitation for provided template
|
|
73
|
+
* */
|
|
74
|
+
export const createConnectionlessProofRequestInvitation = async (agent, template, customPredicateValues) => {
|
|
75
|
+
const proofFormats = buildProofRequestDataForTemplate(template, customPredicateValues);
|
|
76
|
+
if (!proofFormats) {
|
|
77
|
+
return undefined;
|
|
78
|
+
}
|
|
79
|
+
const {
|
|
80
|
+
message: request,
|
|
81
|
+
proofRecord
|
|
82
|
+
} = await agent.proofs.createRequest({
|
|
83
|
+
protocolVersion,
|
|
84
|
+
autoAcceptProof: AutoAcceptProof.Always,
|
|
85
|
+
proofFormats
|
|
86
|
+
});
|
|
87
|
+
const {
|
|
88
|
+
message: invitation,
|
|
89
|
+
invitationUrl
|
|
90
|
+
} = await agent.oob.createLegacyConnectionlessInvitation({
|
|
91
|
+
recordId: proofRecord.id,
|
|
92
|
+
message: request,
|
|
93
|
+
domain
|
|
94
|
+
});
|
|
95
|
+
return {
|
|
96
|
+
request,
|
|
97
|
+
proofRecord,
|
|
98
|
+
invitation,
|
|
99
|
+
invitationUrl
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
/*
|
|
103
|
+
* Build Proof Request for provided template and send it to provided connection
|
|
104
|
+
* */
|
|
105
|
+
export const sendProofRequest = async (agent, template, connectionId, customPredicateValues) => {
|
|
106
|
+
const proofFormats = buildProofRequestDataForTemplate(template, customPredicateValues);
|
|
107
|
+
if (!proofFormats) {
|
|
108
|
+
return undefined;
|
|
109
|
+
}
|
|
110
|
+
const proofRecord = await agent.proofs.requestProof({
|
|
111
|
+
protocolVersion,
|
|
112
|
+
connectionId,
|
|
113
|
+
proofFormats
|
|
114
|
+
});
|
|
115
|
+
return {
|
|
116
|
+
proofRecord
|
|
117
|
+
};
|
|
118
|
+
};
|
|
119
|
+
|
|
120
|
+
/*
|
|
121
|
+
* Check if the Proof Request template contains at least one predicate
|
|
122
|
+
* */
|
|
123
|
+
export const hasPredicates = record => {
|
|
124
|
+
if (record.payload.type === ProofRequestType.AnonCreds) {
|
|
125
|
+
return record.payload.data.some(d => {
|
|
126
|
+
var _d$requestedPredicate;
|
|
127
|
+
return d.requestedPredicates && ((_d$requestedPredicate = d.requestedPredicates) === null || _d$requestedPredicate === void 0 ? void 0 : _d$requestedPredicate.length) > 0;
|
|
128
|
+
});
|
|
129
|
+
}
|
|
130
|
+
if (record.payload.type === ProofRequestType.DIF) {
|
|
131
|
+
return false;
|
|
132
|
+
}
|
|
133
|
+
return false;
|
|
134
|
+
};
|
|
135
|
+
|
|
136
|
+
/*
|
|
137
|
+
* Check if the Proof Request template contains parameterizable predicates
|
|
138
|
+
* */
|
|
139
|
+
export const isParameterizable = record => {
|
|
140
|
+
if (record.payload.type === ProofRequestType.AnonCreds) {
|
|
141
|
+
return record.payload.data.some(d => {
|
|
142
|
+
var _d$requestedPredicate2;
|
|
143
|
+
return (_d$requestedPredicate2 = d.requestedPredicates) === null || _d$requestedPredicate2 === void 0 ? void 0 : _d$requestedPredicate2.some(predicate => predicate.parameterizable);
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
if (record.payload.type === ProofRequestType.DIF) {
|
|
147
|
+
return false;
|
|
148
|
+
}
|
|
149
|
+
return false;
|
|
150
|
+
};
|
|
151
|
+
//# sourceMappingURL=proof-request.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["V1RequestPresentationMessage","AutoAcceptProof","ProofRequestType","protocolVersion","domain","findProofRequestMessage","agent","id","message","proofs","findRequestMessage","indyProofRequest","undefined","buildProofRequestDataForTemplate","template","customValues","payload","type","AnonCreds","requestedAttributes","requestedPredicates","index","data","forEach","_data$requestedAttrib","_data$requestedPredic","length","requestedAttribute","name","names","non_revoked","nonRevoked","restrictions","requestedPredicate","customValue","schema","p_value","parameterizable","predicateValue","p_type","predicateType","anoncreds","version","nonce","Date","now","toString","requested_attributes","requested_predicates","DIF","createConnectionlessProofRequestInvitation","customPredicateValues","proofFormats","request","proofRecord","createRequest","autoAcceptProof","Always","invitation","invitationUrl","oob","createLegacyConnectionlessInvitation","recordId","sendProofRequest","connectionId","requestProof","hasPredicates","record","some","d","_d$requestedPredicate","isParameterizable","_d$requestedPredicate2","predicate"],"sourceRoot":"../../../src","sources":["utils/proof-request.ts"],"mappings":"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","ignoreList":[]}
|