@trustvc/trustvc 2.5.1 → 2.6.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 +2 -2
- package/dist/cjs/index.js +7 -0
- package/dist/cjs/open-cert/index.js +12 -0
- package/dist/cjs/open-cert/verify.js +193 -0
- package/dist/cjs/verify/fragments/index.js +0 -4
- package/dist/cjs/verify/verify.js +2 -9
- package/dist/esm/index.js +1 -0
- package/dist/esm/open-cert/index.js +1 -0
- package/dist/esm/open-cert/verify.js +176 -0
- package/dist/esm/verify/fragments/index.js +1 -1
- package/dist/esm/verify/verify.js +4 -7
- package/dist/types/core/verify.d.ts +3 -3
- package/dist/types/{index-LpXMEhhr.d.ts → index-ZZ1UYFI0.d.ts} +2 -3
- package/dist/types/index.d.ts +4 -2
- package/dist/types/open-cert/index.d.ts +3 -0
- package/dist/types/open-cert/verify.d.ts +93 -0
- package/dist/types/verify/fragments/index.d.ts +1 -1
- package/dist/types/verify/index.d.ts +4 -2
- package/dist/types/verify/verify.d.ts +4 -3
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
|
|
3
3
|
## About
|
|
4
4
|
|
|
5
|
-
TrustVC is a comprehensive wrapper library designed to simplify the signing and verification processes for TrustVC W3C [Verifiable Credentials (VC)](https://github.com/TrustVC/w3c) and OpenAttestation Verifiable Documents (VD), adhering to the W3C [VC](https://www.w3.org/TR/vc-data-model/) Data Model v2.0 (W3C Standard). It ensures compatibility and interoperability for Verifiable Credentials while supporting OpenAttestation [Verifiable Documents (VD)](https://github.com/Open-Attestation/open-attestation) v6.9.5. TrustVC seamlessly integrates functionalities for handling W3C Verifiable Credentials and OpenAttestation Verifiable Documents, leveraging existing TradeTrust libraries and smart contracts for [Token Registry](https://github.com/TradeTrust/token-registry) (V4 and V5). Additionally, it includes essential utility functions for strings, networks, and chains, making it a versatile tool for developers working with decentralized identity and verifiable data solutions.
|
|
5
|
+
TrustVC is a comprehensive wrapper library designed to simplify the signing and verification processes for TrustVC W3C [Verifiable Credentials (VC)](https://github.com/TrustVC/w3c) and OpenAttestation Verifiable Documents (VD), including OpenCert Verifiable Documents, adhering to the W3C [VC](https://www.w3.org/TR/vc-data-model/) Data Model v2.0 (W3C Standard). It ensures compatibility and interoperability for Verifiable Credentials while supporting OpenAttestation [Verifiable Documents (VD)](https://github.com/Open-Attestation/open-attestation) v6.9.5. TrustVC seamlessly integrates functionalities for handling W3C Verifiable Credentials and OpenAttestation Verifiable Documents, leveraging existing TradeTrust libraries and smart contracts for [Token Registry](https://github.com/TradeTrust/token-registry) (V4 and V5). Additionally, it includes essential utility functions for strings, networks, and chains, making it a versatile tool for developers working with decentralized identity and verifiable data solutions.
|
|
6
6
|
|
|
7
7
|
## Table of Contents
|
|
8
8
|
|
|
@@ -300,7 +300,7 @@ const derivationResult = await deriveW3C(signedDocument, {
|
|
|
300
300
|
|
|
301
301
|
### 4. **Verifying**
|
|
302
302
|
|
|
303
|
-
> TrustVC simplifies the verification process with a single function that supports
|
|
303
|
+
> TrustVC simplifies the verification process with a single function that supports W3C Verifiable Credentials (VCs) and OpenAttestation Verifiable Documents (VDs), including OpenCert Verifiable Documents. Whether you're working with W3C standards or OpenAttestation standards, TrustVC handles the verification seamlessly. For ECDSA-SD-2023 and BBS-2023 signed documents, which normally require derivation before verification, TrustVC automatically handles this process internally - if a document is not derived, the `verifyDocument` function will automatically derive and verify the document in a single step.
|
|
304
304
|
|
|
305
305
|
```ts
|
|
306
306
|
import { verifyDocument } from '@trustvc/trustvc';
|
package/dist/cjs/index.js
CHANGED
|
@@ -6,6 +6,7 @@ var tokenRegistryFunctions = require('./token-registry-functions');
|
|
|
6
6
|
var core = require('./core');
|
|
7
7
|
var openAttestation = require('./open-attestation');
|
|
8
8
|
var verify = require('./verify');
|
|
9
|
+
var openCert = require('./open-cert');
|
|
9
10
|
var w3c = require('./w3c');
|
|
10
11
|
var utils = require('./utils');
|
|
11
12
|
var dnsprove = require('./dnsprove');
|
|
@@ -104,6 +105,12 @@ Object.keys(verify).forEach(function (k) {
|
|
|
104
105
|
get: function () { return verify[k]; }
|
|
105
106
|
});
|
|
106
107
|
});
|
|
108
|
+
Object.keys(openCert).forEach(function (k) {
|
|
109
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
110
|
+
enumerable: true,
|
|
111
|
+
get: function () { return openCert[k]; }
|
|
112
|
+
});
|
|
113
|
+
});
|
|
107
114
|
Object.keys(w3c).forEach(function (k) {
|
|
108
115
|
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
109
116
|
enumerable: true,
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var verify = require('./verify');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.keys(verify).forEach(function (k) {
|
|
8
|
+
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) Object.defineProperty(exports, k, {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return verify[k]; }
|
|
11
|
+
});
|
|
12
|
+
});
|
|
@@ -0,0 +1,193 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var fetch = require('node-fetch');
|
|
4
|
+
var runtypes = require('runtypes');
|
|
5
|
+
var ttVerify = require('@tradetrust-tt/tt-verify');
|
|
6
|
+
var tradetrust = require('@tradetrust-tt/tradetrust');
|
|
7
|
+
|
|
8
|
+
function _interopDefault (e) { return e && e.__esModule ? e : { default: e }; }
|
|
9
|
+
|
|
10
|
+
var fetch__default = /*#__PURE__*/_interopDefault(fetch);
|
|
11
|
+
|
|
12
|
+
var __defProp = Object.defineProperty;
|
|
13
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
14
|
+
const RegistryEntry = runtypes.Record({
|
|
15
|
+
name: runtypes.String,
|
|
16
|
+
displayCard: runtypes.Boolean,
|
|
17
|
+
website: runtypes.Optional(runtypes.String),
|
|
18
|
+
email: runtypes.Optional(runtypes.String),
|
|
19
|
+
phone: runtypes.Optional(runtypes.String),
|
|
20
|
+
logo: runtypes.Optional(runtypes.String),
|
|
21
|
+
id: runtypes.Optional(runtypes.String)
|
|
22
|
+
});
|
|
23
|
+
const OpencertsRegistryVerificationValidData = RegistryEntry.And(
|
|
24
|
+
runtypes.Record({
|
|
25
|
+
value: runtypes.String,
|
|
26
|
+
status: runtypes.Literal("VALID")
|
|
27
|
+
})
|
|
28
|
+
);
|
|
29
|
+
const OpencertsRegistryVerificationInvalidData = runtypes.Record({
|
|
30
|
+
value: runtypes.String,
|
|
31
|
+
status: runtypes.Literal("INVALID"),
|
|
32
|
+
reason: ttVerify.Reason
|
|
33
|
+
});
|
|
34
|
+
const OpencertsRegistryVerificationValidDataArray = runtypes.Array(
|
|
35
|
+
runtypes.Union(OpencertsRegistryVerificationValidData, OpencertsRegistryVerificationInvalidData)
|
|
36
|
+
);
|
|
37
|
+
const OpencertsRegistryVerificationInvalidDataArray = runtypes.Array(
|
|
38
|
+
OpencertsRegistryVerificationInvalidData
|
|
39
|
+
);
|
|
40
|
+
const type = "ISSUER_IDENTITY";
|
|
41
|
+
const name = "OpencertsRegistryVerifier";
|
|
42
|
+
var OpencertsRegistryCode = /* @__PURE__ */ ((OpencertsRegistryCode2) => {
|
|
43
|
+
OpencertsRegistryCode2[OpencertsRegistryCode2["INVALID_IDENTITY"] = 0] = "INVALID_IDENTITY";
|
|
44
|
+
OpencertsRegistryCode2[OpencertsRegistryCode2["SKIPPED"] = 1] = "SKIPPED";
|
|
45
|
+
OpencertsRegistryCode2[OpencertsRegistryCode2["UNEXPECTED_ERROR"] = 2] = "UNEXPECTED_ERROR";
|
|
46
|
+
return OpencertsRegistryCode2;
|
|
47
|
+
})(OpencertsRegistryCode || {});
|
|
48
|
+
const storeToData = /* @__PURE__ */ __name((registry, store) => {
|
|
49
|
+
const key = Object.keys(registry.issuers).find((k) => k.toLowerCase() === store.toLowerCase());
|
|
50
|
+
if (key) {
|
|
51
|
+
return {
|
|
52
|
+
status: "VALID",
|
|
53
|
+
value: store,
|
|
54
|
+
...registry.issuers[key]
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
return {
|
|
58
|
+
value: store,
|
|
59
|
+
status: "INVALID",
|
|
60
|
+
reason: {
|
|
61
|
+
code: 0 /* INVALID_IDENTITY */,
|
|
62
|
+
codeString: OpencertsRegistryCode[0 /* INVALID_IDENTITY */],
|
|
63
|
+
message: `Document store ${store} not found in the registry`
|
|
64
|
+
}
|
|
65
|
+
};
|
|
66
|
+
}, "storeToData");
|
|
67
|
+
const registryVerifier = {
|
|
68
|
+
test: /* @__PURE__ */ __name((document) => {
|
|
69
|
+
if (tradetrust.utils.isWrappedV3Document(document)) {
|
|
70
|
+
return document.openAttestationMetadata.proof.method === tradetrust.v3.Method.DocumentStore;
|
|
71
|
+
} else if (tradetrust.utils.isWrappedV2Document(document)) {
|
|
72
|
+
const documentData = tradetrust.getData(document);
|
|
73
|
+
return documentData.issuers.some(
|
|
74
|
+
(issuer) => "documentStore" in issuer || "certificateStore" in issuer
|
|
75
|
+
);
|
|
76
|
+
}
|
|
77
|
+
return false;
|
|
78
|
+
}, "test"),
|
|
79
|
+
skip: /* @__PURE__ */ __name(() => {
|
|
80
|
+
return Promise.resolve({
|
|
81
|
+
status: "SKIPPED",
|
|
82
|
+
type,
|
|
83
|
+
name,
|
|
84
|
+
reason: {
|
|
85
|
+
code: 1 /* SKIPPED */,
|
|
86
|
+
codeString: OpencertsRegistryCode[1 /* SKIPPED */],
|
|
87
|
+
message: `Document issuers doesn't have "documentStore" or "certificateStore" property or ${tradetrust.v3.Method.DocumentStore} method`
|
|
88
|
+
}
|
|
89
|
+
});
|
|
90
|
+
}, "skip"),
|
|
91
|
+
verify: /* @__PURE__ */ __name(async (document) => {
|
|
92
|
+
let registry;
|
|
93
|
+
try {
|
|
94
|
+
const res = await fetch__default.default("https://opencerts.io/static/registry.json");
|
|
95
|
+
if (!res.ok) {
|
|
96
|
+
throw new ttVerify.CodedError(
|
|
97
|
+
`Non-OK response while fetching registry.json (status ${res.status})`,
|
|
98
|
+
2 /* UNEXPECTED_ERROR */,
|
|
99
|
+
"UNEXPECTED_ERROR"
|
|
100
|
+
);
|
|
101
|
+
}
|
|
102
|
+
const registryJson = await res.json();
|
|
103
|
+
registry = registryJson;
|
|
104
|
+
} catch (error) {
|
|
105
|
+
throw new ttVerify.CodedError(
|
|
106
|
+
`Failed to retrieve opencerts registry: ${error.message}`,
|
|
107
|
+
2 /* UNEXPECTED_ERROR */,
|
|
108
|
+
"UNEXPECTED_ERROR"
|
|
109
|
+
);
|
|
110
|
+
}
|
|
111
|
+
if (tradetrust.utils.isWrappedV3Document(document)) {
|
|
112
|
+
const data = storeToData(registry, document.openAttestationMetadata.proof.value);
|
|
113
|
+
if (OpencertsRegistryVerificationValidData.guard(data)) {
|
|
114
|
+
return {
|
|
115
|
+
type,
|
|
116
|
+
name,
|
|
117
|
+
status: "VALID",
|
|
118
|
+
data
|
|
119
|
+
};
|
|
120
|
+
} else {
|
|
121
|
+
return {
|
|
122
|
+
type,
|
|
123
|
+
name,
|
|
124
|
+
status: "INVALID",
|
|
125
|
+
data,
|
|
126
|
+
reason: data.reason
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
const documentData = tradetrust.getData(document);
|
|
131
|
+
const issuerFragments = documentData.issuers.map(
|
|
132
|
+
(issuer) => storeToData(registry, issuer.documentStore || issuer.certificateStore || "")
|
|
133
|
+
);
|
|
134
|
+
const invalidIssuer = issuerFragments.find(OpencertsRegistryVerificationInvalidData.guard);
|
|
135
|
+
if (OpencertsRegistryVerificationInvalidDataArray.guard(issuerFragments) && OpencertsRegistryVerificationInvalidData.guard(invalidIssuer)) {
|
|
136
|
+
return {
|
|
137
|
+
type,
|
|
138
|
+
name,
|
|
139
|
+
status: "INVALID",
|
|
140
|
+
data: issuerFragments,
|
|
141
|
+
reason: invalidIssuer.reason
|
|
142
|
+
};
|
|
143
|
+
} else if (OpencertsRegistryVerificationValidDataArray.guard(issuerFragments)) {
|
|
144
|
+
return {
|
|
145
|
+
type,
|
|
146
|
+
name,
|
|
147
|
+
status: "VALID",
|
|
148
|
+
data: issuerFragments
|
|
149
|
+
};
|
|
150
|
+
}
|
|
151
|
+
throw new ttVerify.CodedError(
|
|
152
|
+
"Unable to retrieve the reason of the failure",
|
|
153
|
+
2 /* UNEXPECTED_ERROR */,
|
|
154
|
+
"UNEXPECTED_ERROR"
|
|
155
|
+
);
|
|
156
|
+
}, "verify")
|
|
157
|
+
};
|
|
158
|
+
const isValidOpenCert = /* @__PURE__ */ __name((verificationFragments, types = ["DOCUMENT_STATUS", "DOCUMENT_INTEGRITY", "ISSUER_IDENTITY"]) => {
|
|
159
|
+
if (verificationFragments.length < 1) {
|
|
160
|
+
throw new Error("Please provide at least one verification fragment to check");
|
|
161
|
+
}
|
|
162
|
+
if (types.length < 1) {
|
|
163
|
+
throw new Error("Please provide at least one type to check");
|
|
164
|
+
}
|
|
165
|
+
return types.every((currentType) => {
|
|
166
|
+
const verificationFragmentsForType = verificationFragments.filter(
|
|
167
|
+
(fragment) => fragment.type === currentType
|
|
168
|
+
);
|
|
169
|
+
const defaultCheck = ttVerify.isValid(verificationFragments, [currentType]);
|
|
170
|
+
if (currentType === "DOCUMENT_STATUS" || currentType === "DOCUMENT_INTEGRITY" || defaultCheck) {
|
|
171
|
+
return defaultCheck;
|
|
172
|
+
}
|
|
173
|
+
const issuerIdentityFragments = verificationFragmentsForType.filter(
|
|
174
|
+
(fragment) => fragment.type === "ISSUER_IDENTITY"
|
|
175
|
+
);
|
|
176
|
+
return issuerIdentityFragments.some((fragment) => fragment.status === "VALID");
|
|
177
|
+
});
|
|
178
|
+
}, "isValidOpenCert");
|
|
179
|
+
const getOpencertsRegistryVerifierFragment = ttVerify.utils.getFragmentByName(name);
|
|
180
|
+
const verifyOpenCertSignature = /* @__PURE__ */ __name((builderOptions) => ttVerify.verificationBuilder([...ttVerify.openAttestationVerifiers, registryVerifier], builderOptions), "verifyOpenCertSignature");
|
|
181
|
+
|
|
182
|
+
exports.OpencertsRegistryCode = OpencertsRegistryCode;
|
|
183
|
+
exports.OpencertsRegistryVerificationInvalidData = OpencertsRegistryVerificationInvalidData;
|
|
184
|
+
exports.OpencertsRegistryVerificationInvalidDataArray = OpencertsRegistryVerificationInvalidDataArray;
|
|
185
|
+
exports.OpencertsRegistryVerificationValidData = OpencertsRegistryVerificationValidData;
|
|
186
|
+
exports.OpencertsRegistryVerificationValidDataArray = OpencertsRegistryVerificationValidDataArray;
|
|
187
|
+
exports.RegistryEntry = RegistryEntry;
|
|
188
|
+
exports.getOpencertsRegistryVerifierFragment = getOpencertsRegistryVerifierFragment;
|
|
189
|
+
exports.isValidOpenCert = isValidOpenCert;
|
|
190
|
+
exports.name = name;
|
|
191
|
+
exports.registryVerifier = registryVerifier;
|
|
192
|
+
exports.type = type;
|
|
193
|
+
exports.verifyOpenCertSignature = verifyOpenCertSignature;
|
|
@@ -10,10 +10,6 @@ var w3cEmptyCredentialStatus = require('./document-status/w3cEmptyCredentialStat
|
|
|
10
10
|
|
|
11
11
|
|
|
12
12
|
|
|
13
|
-
Object.defineProperty(exports, "openAttestationDidIdentityProof", {
|
|
14
|
-
enumerable: true,
|
|
15
|
-
get: function () { return ttVerify.openAttestationDidIdentityProof; }
|
|
16
|
-
});
|
|
17
13
|
Object.defineProperty(exports, "openAttestationDidSignedDocumentStatus", {
|
|
18
14
|
enumerable: true,
|
|
19
15
|
get: function () { return ttVerify.openAttestationDidSignedDocumentStatus; }
|
|
@@ -8,6 +8,7 @@ var w3cCredentialStatus = require('./fragments/document-status/w3cCredentialStat
|
|
|
8
8
|
var w3cIssuerIdentity = require('./fragments/issuer-identity/w3cIssuerIdentity');
|
|
9
9
|
var fragments = require('./fragments');
|
|
10
10
|
var bbs2023W3CSignatureIntegrity = require('./fragments/document-integrity/bbs2023W3CSignatureIntegrity');
|
|
11
|
+
var openCert = require('../open-cert');
|
|
11
12
|
|
|
12
13
|
const verifiers = {
|
|
13
14
|
documentIntegrity: {
|
|
@@ -23,16 +24,12 @@ const verifiers = {
|
|
|
23
24
|
credentialStatusTransferableRecordVerifier: transferableRecordVerifier.credentialStatusTransferableRecordVerifier
|
|
24
25
|
},
|
|
25
26
|
issuerIdentity: {
|
|
26
|
-
openAttestationDidIdentityProof: ttVerify.openAttestationDidIdentityProof,
|
|
27
27
|
openAttestationDnsDidIdentityProof: ttVerify.openAttestationDnsDidIdentityProof,
|
|
28
28
|
openAttestationDnsTxtIdentityProof: ttVerify.openAttestationDnsTxtIdentityProof,
|
|
29
29
|
w3cIssuerIdentity: w3cIssuerIdentity.w3cIssuerIdentity
|
|
30
30
|
}
|
|
31
31
|
};
|
|
32
|
-
const openAttestationVerifiers = [
|
|
33
|
-
...ttVerify.openAttestationVerifiers,
|
|
34
|
-
ttVerify.openAttestationDidIdentityProof
|
|
35
|
-
];
|
|
32
|
+
const openAttestationVerifiers = [...ttVerify.openAttestationVerifiers, openCert.registryVerifier];
|
|
36
33
|
const w3cVerifiers = [
|
|
37
34
|
w3cSignatureIntegrity.w3cSignatureIntegrity,
|
|
38
35
|
ecdsaW3CSignatureIntegrity.ecdsaW3CSignatureIntegrity,
|
|
@@ -55,10 +52,6 @@ Object.defineProperty(exports, "isValid", {
|
|
|
55
52
|
enumerable: true,
|
|
56
53
|
get: function () { return ttVerify.isValid; }
|
|
57
54
|
});
|
|
58
|
-
Object.defineProperty(exports, "openAttestationDidIdentityProof", {
|
|
59
|
-
enumerable: true,
|
|
60
|
-
get: function () { return ttVerify.openAttestationDidIdentityProof; }
|
|
61
|
-
});
|
|
62
55
|
Object.defineProperty(exports, "utils", {
|
|
63
56
|
enumerable: true,
|
|
64
57
|
get: function () { return ttVerify.utils; }
|
package/dist/esm/index.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './verify';
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
import fetch from 'node-fetch';
|
|
2
|
+
import { Record, Optional, Boolean, String, Literal, Array, Union } from 'runtypes';
|
|
3
|
+
import { Reason, utils, CodedError, isValid, verificationBuilder, openAttestationVerifiers } from '@tradetrust-tt/tt-verify';
|
|
4
|
+
import { utils as utils$1, getData, v3 } from '@tradetrust-tt/tradetrust';
|
|
5
|
+
|
|
6
|
+
var __defProp = Object.defineProperty;
|
|
7
|
+
var __name = (target, value) => __defProp(target, "name", { value, configurable: true });
|
|
8
|
+
const RegistryEntry = Record({
|
|
9
|
+
name: String,
|
|
10
|
+
displayCard: Boolean,
|
|
11
|
+
website: Optional(String),
|
|
12
|
+
email: Optional(String),
|
|
13
|
+
phone: Optional(String),
|
|
14
|
+
logo: Optional(String),
|
|
15
|
+
id: Optional(String)
|
|
16
|
+
});
|
|
17
|
+
const OpencertsRegistryVerificationValidData = RegistryEntry.And(
|
|
18
|
+
Record({
|
|
19
|
+
value: String,
|
|
20
|
+
status: Literal("VALID")
|
|
21
|
+
})
|
|
22
|
+
);
|
|
23
|
+
const OpencertsRegistryVerificationInvalidData = Record({
|
|
24
|
+
value: String,
|
|
25
|
+
status: Literal("INVALID"),
|
|
26
|
+
reason: Reason
|
|
27
|
+
});
|
|
28
|
+
const OpencertsRegistryVerificationValidDataArray = Array(
|
|
29
|
+
Union(OpencertsRegistryVerificationValidData, OpencertsRegistryVerificationInvalidData)
|
|
30
|
+
);
|
|
31
|
+
const OpencertsRegistryVerificationInvalidDataArray = Array(
|
|
32
|
+
OpencertsRegistryVerificationInvalidData
|
|
33
|
+
);
|
|
34
|
+
const type = "ISSUER_IDENTITY";
|
|
35
|
+
const name = "OpencertsRegistryVerifier";
|
|
36
|
+
var OpencertsRegistryCode = /* @__PURE__ */ ((OpencertsRegistryCode2) => {
|
|
37
|
+
OpencertsRegistryCode2[OpencertsRegistryCode2["INVALID_IDENTITY"] = 0] = "INVALID_IDENTITY";
|
|
38
|
+
OpencertsRegistryCode2[OpencertsRegistryCode2["SKIPPED"] = 1] = "SKIPPED";
|
|
39
|
+
OpencertsRegistryCode2[OpencertsRegistryCode2["UNEXPECTED_ERROR"] = 2] = "UNEXPECTED_ERROR";
|
|
40
|
+
return OpencertsRegistryCode2;
|
|
41
|
+
})(OpencertsRegistryCode || {});
|
|
42
|
+
const storeToData = /* @__PURE__ */ __name((registry, store) => {
|
|
43
|
+
const key = Object.keys(registry.issuers).find((k) => k.toLowerCase() === store.toLowerCase());
|
|
44
|
+
if (key) {
|
|
45
|
+
return {
|
|
46
|
+
status: "VALID",
|
|
47
|
+
value: store,
|
|
48
|
+
...registry.issuers[key]
|
|
49
|
+
};
|
|
50
|
+
}
|
|
51
|
+
return {
|
|
52
|
+
value: store,
|
|
53
|
+
status: "INVALID",
|
|
54
|
+
reason: {
|
|
55
|
+
code: 0 /* INVALID_IDENTITY */,
|
|
56
|
+
codeString: OpencertsRegistryCode[0 /* INVALID_IDENTITY */],
|
|
57
|
+
message: `Document store ${store} not found in the registry`
|
|
58
|
+
}
|
|
59
|
+
};
|
|
60
|
+
}, "storeToData");
|
|
61
|
+
const registryVerifier = {
|
|
62
|
+
test: /* @__PURE__ */ __name((document) => {
|
|
63
|
+
if (utils$1.isWrappedV3Document(document)) {
|
|
64
|
+
return document.openAttestationMetadata.proof.method === v3.Method.DocumentStore;
|
|
65
|
+
} else if (utils$1.isWrappedV2Document(document)) {
|
|
66
|
+
const documentData = getData(document);
|
|
67
|
+
return documentData.issuers.some(
|
|
68
|
+
(issuer) => "documentStore" in issuer || "certificateStore" in issuer
|
|
69
|
+
);
|
|
70
|
+
}
|
|
71
|
+
return false;
|
|
72
|
+
}, "test"),
|
|
73
|
+
skip: /* @__PURE__ */ __name(() => {
|
|
74
|
+
return Promise.resolve({
|
|
75
|
+
status: "SKIPPED",
|
|
76
|
+
type,
|
|
77
|
+
name,
|
|
78
|
+
reason: {
|
|
79
|
+
code: 1 /* SKIPPED */,
|
|
80
|
+
codeString: OpencertsRegistryCode[1 /* SKIPPED */],
|
|
81
|
+
message: `Document issuers doesn't have "documentStore" or "certificateStore" property or ${v3.Method.DocumentStore} method`
|
|
82
|
+
}
|
|
83
|
+
});
|
|
84
|
+
}, "skip"),
|
|
85
|
+
verify: /* @__PURE__ */ __name(async (document) => {
|
|
86
|
+
let registry;
|
|
87
|
+
try {
|
|
88
|
+
const res = await fetch("https://opencerts.io/static/registry.json");
|
|
89
|
+
if (!res.ok) {
|
|
90
|
+
throw new CodedError(
|
|
91
|
+
`Non-OK response while fetching registry.json (status ${res.status})`,
|
|
92
|
+
2 /* UNEXPECTED_ERROR */,
|
|
93
|
+
"UNEXPECTED_ERROR"
|
|
94
|
+
);
|
|
95
|
+
}
|
|
96
|
+
const registryJson = await res.json();
|
|
97
|
+
registry = registryJson;
|
|
98
|
+
} catch (error) {
|
|
99
|
+
throw new CodedError(
|
|
100
|
+
`Failed to retrieve opencerts registry: ${error.message}`,
|
|
101
|
+
2 /* UNEXPECTED_ERROR */,
|
|
102
|
+
"UNEXPECTED_ERROR"
|
|
103
|
+
);
|
|
104
|
+
}
|
|
105
|
+
if (utils$1.isWrappedV3Document(document)) {
|
|
106
|
+
const data = storeToData(registry, document.openAttestationMetadata.proof.value);
|
|
107
|
+
if (OpencertsRegistryVerificationValidData.guard(data)) {
|
|
108
|
+
return {
|
|
109
|
+
type,
|
|
110
|
+
name,
|
|
111
|
+
status: "VALID",
|
|
112
|
+
data
|
|
113
|
+
};
|
|
114
|
+
} else {
|
|
115
|
+
return {
|
|
116
|
+
type,
|
|
117
|
+
name,
|
|
118
|
+
status: "INVALID",
|
|
119
|
+
data,
|
|
120
|
+
reason: data.reason
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
const documentData = getData(document);
|
|
125
|
+
const issuerFragments = documentData.issuers.map(
|
|
126
|
+
(issuer) => storeToData(registry, issuer.documentStore || issuer.certificateStore || "")
|
|
127
|
+
);
|
|
128
|
+
const invalidIssuer = issuerFragments.find(OpencertsRegistryVerificationInvalidData.guard);
|
|
129
|
+
if (OpencertsRegistryVerificationInvalidDataArray.guard(issuerFragments) && OpencertsRegistryVerificationInvalidData.guard(invalidIssuer)) {
|
|
130
|
+
return {
|
|
131
|
+
type,
|
|
132
|
+
name,
|
|
133
|
+
status: "INVALID",
|
|
134
|
+
data: issuerFragments,
|
|
135
|
+
reason: invalidIssuer.reason
|
|
136
|
+
};
|
|
137
|
+
} else if (OpencertsRegistryVerificationValidDataArray.guard(issuerFragments)) {
|
|
138
|
+
return {
|
|
139
|
+
type,
|
|
140
|
+
name,
|
|
141
|
+
status: "VALID",
|
|
142
|
+
data: issuerFragments
|
|
143
|
+
};
|
|
144
|
+
}
|
|
145
|
+
throw new CodedError(
|
|
146
|
+
"Unable to retrieve the reason of the failure",
|
|
147
|
+
2 /* UNEXPECTED_ERROR */,
|
|
148
|
+
"UNEXPECTED_ERROR"
|
|
149
|
+
);
|
|
150
|
+
}, "verify")
|
|
151
|
+
};
|
|
152
|
+
const isValidOpenCert = /* @__PURE__ */ __name((verificationFragments, types = ["DOCUMENT_STATUS", "DOCUMENT_INTEGRITY", "ISSUER_IDENTITY"]) => {
|
|
153
|
+
if (verificationFragments.length < 1) {
|
|
154
|
+
throw new Error("Please provide at least one verification fragment to check");
|
|
155
|
+
}
|
|
156
|
+
if (types.length < 1) {
|
|
157
|
+
throw new Error("Please provide at least one type to check");
|
|
158
|
+
}
|
|
159
|
+
return types.every((currentType) => {
|
|
160
|
+
const verificationFragmentsForType = verificationFragments.filter(
|
|
161
|
+
(fragment) => fragment.type === currentType
|
|
162
|
+
);
|
|
163
|
+
const defaultCheck = isValid(verificationFragments, [currentType]);
|
|
164
|
+
if (currentType === "DOCUMENT_STATUS" || currentType === "DOCUMENT_INTEGRITY" || defaultCheck) {
|
|
165
|
+
return defaultCheck;
|
|
166
|
+
}
|
|
167
|
+
const issuerIdentityFragments = verificationFragmentsForType.filter(
|
|
168
|
+
(fragment) => fragment.type === "ISSUER_IDENTITY"
|
|
169
|
+
);
|
|
170
|
+
return issuerIdentityFragments.some((fragment) => fragment.status === "VALID");
|
|
171
|
+
});
|
|
172
|
+
}, "isValidOpenCert");
|
|
173
|
+
const getOpencertsRegistryVerifierFragment = utils.getFragmentByName(name);
|
|
174
|
+
const verifyOpenCertSignature = /* @__PURE__ */ __name((builderOptions) => verificationBuilder([...openAttestationVerifiers, registryVerifier], builderOptions), "verifyOpenCertSignature");
|
|
175
|
+
|
|
176
|
+
export { OpencertsRegistryCode, OpencertsRegistryVerificationInvalidData, OpencertsRegistryVerificationInvalidDataArray, OpencertsRegistryVerificationValidData, OpencertsRegistryVerificationValidDataArray, RegistryEntry, getOpencertsRegistryVerifierFragment, isValidOpenCert, name, registryVerifier, type, verifyOpenCertSignature };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { openAttestationDidSignedDocumentStatus, openAttestationDnsDidIdentityProof, openAttestationDnsTxtIdentityProof, openAttestationEthereumDocumentStoreStatus, openAttestationEthereumTokenRegistryStatus, openAttestationHash } from '@tradetrust-tt/tt-verify';
|
|
2
2
|
export { w3cSignatureIntegrity } from './document-integrity/w3cSignatureIntegrity';
|
|
3
3
|
export { ecdsaW3CSignatureIntegrity } from './document-integrity/ecdsaW3CSignatureIntegrity';
|
|
4
4
|
export { TRANSFERABLE_RECORDS_TYPE, credentialStatusTransferableRecordVerifier } from './document-status/transferableRecords/transferableRecordVerifier';
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { openAttestationVerifiers as openAttestationVerifiers$1,
|
|
2
|
-
export { createResolver, getIdentifier, isValid,
|
|
1
|
+
import { openAttestationVerifiers as openAttestationVerifiers$1, openAttestationDnsTxtIdentityProof, openAttestationDnsDidIdentityProof, openAttestationEthereumTokenRegistryStatus, openAttestationEthereumDocumentStoreStatus, openAttestationDidSignedDocumentStatus, openAttestationHash } from '@tradetrust-tt/tt-verify';
|
|
2
|
+
export { createResolver, getIdentifier, isValid, utils, verificationBuilder, verify } from '@tradetrust-tt/tt-verify';
|
|
3
3
|
import { w3cSignatureIntegrity } from './fragments/document-integrity/w3cSignatureIntegrity';
|
|
4
4
|
import { ecdsaW3CSignatureIntegrity } from './fragments/document-integrity/ecdsaW3CSignatureIntegrity';
|
|
5
5
|
import { credentialStatusTransferableRecordVerifier } from './fragments/document-status/transferableRecords/transferableRecordVerifier';
|
|
@@ -7,6 +7,7 @@ import { w3cCredentialStatus } from './fragments/document-status/w3cCredentialSt
|
|
|
7
7
|
import { w3cIssuerIdentity } from './fragments/issuer-identity/w3cIssuerIdentity';
|
|
8
8
|
import { w3cEmptyCredentialStatus } from './fragments';
|
|
9
9
|
import { bbs2023W3CSignatureIntegrity } from './fragments/document-integrity/bbs2023W3CSignatureIntegrity';
|
|
10
|
+
import { registryVerifier } from '../open-cert';
|
|
10
11
|
|
|
11
12
|
const verifiers = {
|
|
12
13
|
documentIntegrity: {
|
|
@@ -22,16 +23,12 @@ const verifiers = {
|
|
|
22
23
|
credentialStatusTransferableRecordVerifier
|
|
23
24
|
},
|
|
24
25
|
issuerIdentity: {
|
|
25
|
-
openAttestationDidIdentityProof,
|
|
26
26
|
openAttestationDnsDidIdentityProof,
|
|
27
27
|
openAttestationDnsTxtIdentityProof,
|
|
28
28
|
w3cIssuerIdentity
|
|
29
29
|
}
|
|
30
30
|
};
|
|
31
|
-
const openAttestationVerifiers = [
|
|
32
|
-
...openAttestationVerifiers$1,
|
|
33
|
-
openAttestationDidIdentityProof
|
|
34
|
-
];
|
|
31
|
+
const openAttestationVerifiers = [...openAttestationVerifiers$1, registryVerifier];
|
|
35
32
|
const w3cVerifiers = [
|
|
36
33
|
w3cSignatureIntegrity,
|
|
37
34
|
ecdsaW3CSignatureIntegrity,
|
|
@@ -16,15 +16,15 @@ interface VerifyDocumentParams {
|
|
|
16
16
|
(document: DocumentsToVerify | SignedVerifiableCredential, options?: VerificationBuilderOptions): Promise<VerificationFragment[]>;
|
|
17
17
|
}
|
|
18
18
|
/**
|
|
19
|
-
* Asynchronously verifies a document (OpenAttestation or W3C Verifiable Credential) using a specified Ethereum-compatible JSON-RPC provider.
|
|
19
|
+
* Asynchronously verifies a document (OpenAttestation (including OpenCert) or W3C Verifiable Credential) using a specified Ethereum-compatible JSON-RPC provider.
|
|
20
20
|
*
|
|
21
|
-
* This function builds a verification process that can handle both OpenAttestation documents and W3C Verifiable Credentials.
|
|
21
|
+
* This function builds a verification process that can handle both OpenAttestation documents (including OpenCert) and W3C Verifiable Credentials.
|
|
22
22
|
* For OpenAttestation, it uses OpenAttestation's verifiers and DID identity proof. For W3C Verifiable Credentials,
|
|
23
23
|
* it verifies signatures, credential status, and issuer identity.
|
|
24
24
|
*
|
|
25
25
|
* The function takes an Ethereum-compatible JSON-RPC provider URL, which allows the user to specify the network
|
|
26
26
|
* (e.g., Ethereum, Polygon) for DID resolution and verification tasks.
|
|
27
|
-
* @param {DocumentsToVerify | SignedVerifiableCredential} document - The document to be verified, either an OpenAttestation document or a W3C Verifiable Credential.
|
|
27
|
+
* @param {DocumentsToVerify | SignedVerifiableCredential} document - The document to be verified, either an OpenAttestation document, OpenCert document or a W3C Verifiable Credential.
|
|
28
28
|
* @param {VerificationBuilderOptions} options - The options object containing the provider URL and document loader.
|
|
29
29
|
* @param {string} options.rpcProviderUrl - The Ethereum-compatible JSON-RPC provider URL (e.g., Infura, Alchemy, etc.).
|
|
30
30
|
* @param {DocumentLoader} options.documentLoader - The document loader to be used for loading JSON-LD contexts, DIDs and credential status.
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { openAttestationDidSignedDocumentStatus, openAttestationDnsDidIdentityProof, openAttestationDnsTxtIdentityProof, openAttestationEthereumDocumentStoreStatus, openAttestationEthereumTokenRegistryStatus, openAttestationHash } from '@tradetrust-tt/tt-verify';
|
|
2
2
|
import { w3cSignatureIntegrity } from './verify/fragments/document-integrity/w3cSignatureIntegrity.js';
|
|
3
3
|
import { ecdsaW3CSignatureIntegrity } from './verify/fragments/document-integrity/ecdsaW3CSignatureIntegrity.js';
|
|
4
4
|
import { TRANSFERABLE_RECORDS_TYPE, credentialStatusTransferableRecordVerifier } from './verify/fragments/document-status/transferableRecords/transferableRecordVerifier.js';
|
|
@@ -9,7 +9,6 @@ import { w3cEmptyCredentialStatus } from './verify/fragments/document-status/w3c
|
|
|
9
9
|
declare const index_TRANSFERABLE_RECORDS_TYPE: typeof TRANSFERABLE_RECORDS_TYPE;
|
|
10
10
|
declare const index_credentialStatusTransferableRecordVerifier: typeof credentialStatusTransferableRecordVerifier;
|
|
11
11
|
declare const index_ecdsaW3CSignatureIntegrity: typeof ecdsaW3CSignatureIntegrity;
|
|
12
|
-
declare const index_openAttestationDidIdentityProof: typeof openAttestationDidIdentityProof;
|
|
13
12
|
declare const index_openAttestationDidSignedDocumentStatus: typeof openAttestationDidSignedDocumentStatus;
|
|
14
13
|
declare const index_openAttestationDnsDidIdentityProof: typeof openAttestationDnsDidIdentityProof;
|
|
15
14
|
declare const index_openAttestationDnsTxtIdentityProof: typeof openAttestationDnsTxtIdentityProof;
|
|
@@ -21,7 +20,7 @@ declare const index_w3cEmptyCredentialStatus: typeof w3cEmptyCredentialStatus;
|
|
|
21
20
|
declare const index_w3cIssuerIdentity: typeof w3cIssuerIdentity;
|
|
22
21
|
declare const index_w3cSignatureIntegrity: typeof w3cSignatureIntegrity;
|
|
23
22
|
declare namespace index {
|
|
24
|
-
export { index_TRANSFERABLE_RECORDS_TYPE as TRANSFERABLE_RECORDS_TYPE, index_credentialStatusTransferableRecordVerifier as credentialStatusTransferableRecordVerifier, index_ecdsaW3CSignatureIntegrity as ecdsaW3CSignatureIntegrity,
|
|
23
|
+
export { index_TRANSFERABLE_RECORDS_TYPE as TRANSFERABLE_RECORDS_TYPE, index_credentialStatusTransferableRecordVerifier as credentialStatusTransferableRecordVerifier, index_ecdsaW3CSignatureIntegrity as ecdsaW3CSignatureIntegrity, index_openAttestationDidSignedDocumentStatus as openAttestationDidSignedDocumentStatus, index_openAttestationDnsDidIdentityProof as openAttestationDnsDidIdentityProof, index_openAttestationDnsTxtIdentityProof as openAttestationDnsTxtIdentityProof, index_openAttestationEthereumDocumentStoreStatus as openAttestationEthereumDocumentStoreStatus, index_openAttestationEthereumTokenRegistryStatus as openAttestationEthereumTokenRegistryStatus, index_openAttestationHash as openAttestationHash, index_w3cCredentialStatus as w3cCredentialStatus, index_w3cEmptyCredentialStatus as w3cEmptyCredentialStatus, index_w3cIssuerIdentity as w3cIssuerIdentity, index_w3cSignatureIntegrity as w3cSignatureIntegrity };
|
|
25
24
|
}
|
|
26
25
|
|
|
27
26
|
export { index as i };
|
package/dist/types/index.d.ts
CHANGED
|
@@ -31,7 +31,8 @@ export { diagnose, getAssetId, getDocumentData, getIssuerAddress, getTemplateURL
|
|
|
31
31
|
export { verifyOASignature } from './open-attestation/verify.js';
|
|
32
32
|
export { wrapOADocument, wrapOADocumentV2, wrapOADocuments, wrapOADocumentsV2 } from './open-attestation/wrap.js';
|
|
33
33
|
export { openAttestationVerifiers, verifiers, w3cVerifiers } from './verify/verify.js';
|
|
34
|
-
export { i as fragments } from './index-
|
|
34
|
+
export { i as fragments } from './index-ZZ1UYFI0.js';
|
|
35
|
+
export { OpencertsRegistryCode, OpencertsRegistryVerificationInvalidData, OpencertsRegistryVerificationInvalidDataArray, OpencertsRegistryVerificationValidData, OpencertsRegistryVerificationValidDataArray, OpencertsRegistryVerifierInvalidFragmentV2, OpencertsRegistryVerifierInvalidFragmentV3, OpencertsRegistryVerifierValidFragmentV2, OpencertsRegistryVerifierValidFragmentV3, OpencertsRegistryVerifierVerificationFragment, Registry, RegistryEntry, getOpencertsRegistryVerifierFragment, isValidOpenCert, name, registryVerifier, type, verifyOpenCertSignature } from './open-cert/verify.js';
|
|
35
36
|
export { i as context } from './index-DwAYXQn2.js';
|
|
36
37
|
export { i as credentialStatus } from './index-CjwEVGoM.js';
|
|
37
38
|
export { i as issuer } from './index-ClF4_Nqk.js';
|
|
@@ -53,7 +54,7 @@ export { gaEvent, gaPageView, validateGaEvent, validateGtag, validatePageViewEve
|
|
|
53
54
|
export { CustomDnsResolver, IDNSQueryResponse, IDNSRecord, OpenAttestationDNSTextRecord, OpenAttestationDnsDidRecord, defaultDnsResolvers, getDnsDidRecords, getDocumentStoreRecords, parseDnsDidResults, parseDocumentStoreResults, parseOpenAttestationRecord, queryDns } from '@tradetrust-tt/dnsprove';
|
|
54
55
|
export { OpenAttestationDocument, SUPPORTED_SIGNING_ALGORITHM, SchemaId, SignedWrappedDocument, WrappedDocument, getData as getDataV2, isSchemaValidationError, obfuscateDocument, v2, v3, validateSchema, __unsafe__use__it__at__your__own__risks__wrapDocument as wrapOADocumentV3, __unsafe__use__it__at__your__own__risks__wrapDocuments as wrapOADocumentsV3 } from '@tradetrust-tt/tradetrust';
|
|
55
56
|
export { DiagnoseError } from '@tradetrust-tt/tradetrust/dist/types/shared/utils';
|
|
56
|
-
export { createResolver, getIdentifier, isValid,
|
|
57
|
+
export { createResolver, getIdentifier, isValid, utils, verificationBuilder, verify } from '@tradetrust-tt/tt-verify';
|
|
57
58
|
export { DocumentsToVerify, ErrorVerificationFragment, InvalidVerificationFragment, ProviderDetails, providerType as ProviderType, SkippedVerificationFragment, ValidVerificationFragment, VerificationBuilderOptions, VerificationFragment, VerificationFragmentStatus, VerificationFragmentType, VerificationFragmentWithData, Verifier, VerifierOptions } from '@tradetrust-tt/tt-verify/dist/types/src/types/core';
|
|
58
59
|
export { ErrorMessage, ErrorMessageTypes, ErrorMessages, MessagesDictionary } from './utils/errorMessages/types.js';
|
|
59
60
|
import '@tradetrust-tt/token-registry-v4/contracts';
|
|
@@ -78,5 +79,6 @@ import './verify/fragments/document-status/transferableRecords/transferableRecor
|
|
|
78
79
|
import './verify/fragments/document-status/w3cCredentialStatus.js';
|
|
79
80
|
import './verify/fragments/issuer-identity/w3cIssuerIdentity.js';
|
|
80
81
|
import './verify/fragments/document-status/w3cEmptyCredentialStatus/index.js';
|
|
82
|
+
import 'runtypes';
|
|
81
83
|
import '@trustvc/w3c-context';
|
|
82
84
|
import '@trustvc/w3c-credential-status';
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { OpencertsRegistryCode, OpencertsRegistryVerificationInvalidData, OpencertsRegistryVerificationInvalidDataArray, OpencertsRegistryVerificationValidData, OpencertsRegistryVerificationValidDataArray, OpencertsRegistryVerifierInvalidFragmentV2, OpencertsRegistryVerifierInvalidFragmentV3, OpencertsRegistryVerifierValidFragmentV2, OpencertsRegistryVerifierValidFragmentV3, OpencertsRegistryVerifierVerificationFragment, Registry, RegistryEntry, getOpencertsRegistryVerifierFragment, isValidOpenCert, name, registryVerifier, type, verifyOpenCertSignature } from './verify.js';
|
|
2
|
+
import '@tradetrust-tt/tt-verify';
|
|
3
|
+
import 'runtypes';
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import * as _tradetrust_tt_tt_verify from '@tradetrust-tt/tt-verify';
|
|
2
|
+
import { ValidVerificationFragment, InvalidVerificationFragment, Verifier, VerificationFragment, VerificationFragmentType, VerificationBuilderOptions } from '@tradetrust-tt/tt-verify';
|
|
3
|
+
import * as runtypes from 'runtypes';
|
|
4
|
+
import { Array, Union, Record, String, Boolean, Optional, Literal, Static } from 'runtypes';
|
|
5
|
+
|
|
6
|
+
declare const RegistryEntry: Record<{
|
|
7
|
+
name: String;
|
|
8
|
+
displayCard: Boolean;
|
|
9
|
+
website: Optional<String>;
|
|
10
|
+
email: Optional<String>;
|
|
11
|
+
phone: Optional<String>;
|
|
12
|
+
logo: Optional<String>;
|
|
13
|
+
id: Optional<String>;
|
|
14
|
+
}, false>;
|
|
15
|
+
type RegistryEntry = Static<typeof RegistryEntry>;
|
|
16
|
+
interface Registry {
|
|
17
|
+
issuers: {
|
|
18
|
+
[key: string]: RegistryEntry;
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
declare const OpencertsRegistryVerificationValidData: runtypes.Intersect<[Record<{
|
|
22
|
+
name: String;
|
|
23
|
+
displayCard: Boolean;
|
|
24
|
+
website: Optional<String>;
|
|
25
|
+
email: Optional<String>;
|
|
26
|
+
phone: Optional<String>;
|
|
27
|
+
logo: Optional<String>;
|
|
28
|
+
id: Optional<String>;
|
|
29
|
+
}, false>, Record<{
|
|
30
|
+
value: String;
|
|
31
|
+
status: Literal<"VALID">;
|
|
32
|
+
}, false>]>;
|
|
33
|
+
type OpencertsRegistryVerificationValidData = Static<typeof OpencertsRegistryVerificationValidData>;
|
|
34
|
+
declare const OpencertsRegistryVerificationInvalidData: Record<{
|
|
35
|
+
value: String;
|
|
36
|
+
status: Literal<"INVALID">;
|
|
37
|
+
reason: Record<{
|
|
38
|
+
code: runtypes.Number;
|
|
39
|
+
codeString: String;
|
|
40
|
+
message: String;
|
|
41
|
+
}, false>;
|
|
42
|
+
}, false>;
|
|
43
|
+
type OpencertsRegistryVerificationInvalidData = Static<typeof OpencertsRegistryVerificationInvalidData>;
|
|
44
|
+
declare const OpencertsRegistryVerificationValidDataArray: Array<Union<[runtypes.Intersect<[Record<{
|
|
45
|
+
name: String;
|
|
46
|
+
displayCard: Boolean;
|
|
47
|
+
website: Optional<String>;
|
|
48
|
+
email: Optional<String>;
|
|
49
|
+
phone: Optional<String>;
|
|
50
|
+
logo: Optional<String>;
|
|
51
|
+
id: Optional<String>;
|
|
52
|
+
}, false>, Record<{
|
|
53
|
+
value: String;
|
|
54
|
+
status: Literal<"VALID">;
|
|
55
|
+
}, false>]>, Record<{
|
|
56
|
+
value: String;
|
|
57
|
+
status: Literal<"INVALID">;
|
|
58
|
+
reason: Record<{
|
|
59
|
+
code: runtypes.Number;
|
|
60
|
+
codeString: String;
|
|
61
|
+
message: String;
|
|
62
|
+
}, false>;
|
|
63
|
+
}, false>]>, false>;
|
|
64
|
+
type OpencertsRegistryVerificationValidDataArray = Static<typeof OpencertsRegistryVerificationValidDataArray>;
|
|
65
|
+
declare const OpencertsRegistryVerificationInvalidDataArray: Array<Record<{
|
|
66
|
+
value: String;
|
|
67
|
+
status: Literal<"INVALID">;
|
|
68
|
+
reason: Record<{
|
|
69
|
+
code: runtypes.Number;
|
|
70
|
+
codeString: String;
|
|
71
|
+
message: String;
|
|
72
|
+
}, false>;
|
|
73
|
+
}, false>, false>;
|
|
74
|
+
type OpencertsRegistryVerificationInvalidDataArray = Static<typeof OpencertsRegistryVerificationInvalidDataArray>;
|
|
75
|
+
type OpencertsRegistryVerifierValidFragmentV2 = ValidVerificationFragment<OpencertsRegistryVerificationValidDataArray>;
|
|
76
|
+
type OpencertsRegistryVerifierInvalidFragmentV2 = InvalidVerificationFragment<OpencertsRegistryVerificationInvalidDataArray>;
|
|
77
|
+
type OpencertsRegistryVerifierValidFragmentV3 = ValidVerificationFragment<OpencertsRegistryVerificationValidData>;
|
|
78
|
+
type OpencertsRegistryVerifierInvalidFragmentV3 = InvalidVerificationFragment<OpencertsRegistryVerificationInvalidData>;
|
|
79
|
+
type OpencertsRegistryVerifierVerificationFragment = OpencertsRegistryVerifierValidFragmentV2 | OpencertsRegistryVerifierInvalidFragmentV2 | OpencertsRegistryVerifierValidFragmentV3 | OpencertsRegistryVerifierInvalidFragmentV3;
|
|
80
|
+
type VerifierType = Verifier<OpencertsRegistryVerifierVerificationFragment>;
|
|
81
|
+
declare const type = "ISSUER_IDENTITY";
|
|
82
|
+
declare const name = "OpencertsRegistryVerifier";
|
|
83
|
+
declare enum OpencertsRegistryCode {
|
|
84
|
+
INVALID_IDENTITY = 0,
|
|
85
|
+
SKIPPED = 1,
|
|
86
|
+
UNEXPECTED_ERROR = 2
|
|
87
|
+
}
|
|
88
|
+
declare const registryVerifier: VerifierType;
|
|
89
|
+
declare const isValidOpenCert: (verificationFragments: VerificationFragment[], types?: VerificationFragmentType[]) => boolean;
|
|
90
|
+
declare const getOpencertsRegistryVerifierFragment: <Fragment extends VerificationFragment>(fragments: Fragment[]) => OpencertsRegistryVerifierVerificationFragment;
|
|
91
|
+
declare const verifyOpenCertSignature: (builderOptions: VerificationBuilderOptions) => (document: _tradetrust_tt_tt_verify.DocumentsToVerify, promisesCallback?: _tradetrust_tt_tt_verify.PromiseCallback) => Promise<VerificationFragment[]>;
|
|
92
|
+
|
|
93
|
+
export { OpencertsRegistryCode, OpencertsRegistryVerificationInvalidData, OpencertsRegistryVerificationInvalidDataArray, OpencertsRegistryVerificationValidData, OpencertsRegistryVerificationValidDataArray, type OpencertsRegistryVerifierInvalidFragmentV2, type OpencertsRegistryVerifierInvalidFragmentV3, type OpencertsRegistryVerifierValidFragmentV2, type OpencertsRegistryVerifierValidFragmentV3, type OpencertsRegistryVerifierVerificationFragment, type Registry, RegistryEntry, getOpencertsRegistryVerifierFragment, isValidOpenCert, name, registryVerifier, type, verifyOpenCertSignature };
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export {
|
|
1
|
+
export { openAttestationDidSignedDocumentStatus, openAttestationDnsDidIdentityProof, openAttestationDnsTxtIdentityProof, openAttestationEthereumDocumentStoreStatus, openAttestationEthereumTokenRegistryStatus, openAttestationHash } from '@tradetrust-tt/tt-verify';
|
|
2
2
|
export { w3cSignatureIntegrity } from './document-integrity/w3cSignatureIntegrity.js';
|
|
3
3
|
export { ecdsaW3CSignatureIntegrity } from './document-integrity/ecdsaW3CSignatureIntegrity.js';
|
|
4
4
|
export { TRANSFERABLE_RECORDS_TYPE, credentialStatusTransferableRecordVerifier } from './document-status/transferableRecords/transferableRecordVerifier.js';
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { openAttestationVerifiers, verifiers, w3cVerifiers } from './verify.js';
|
|
2
|
-
export { i as fragments } from '../index-
|
|
3
|
-
export { createResolver, getIdentifier, isValid,
|
|
2
|
+
export { i as fragments } from '../index-ZZ1UYFI0.js';
|
|
3
|
+
export { createResolver, getIdentifier, isValid, utils, verificationBuilder, verify } from '@tradetrust-tt/tt-verify';
|
|
4
4
|
export { DocumentsToVerify, ErrorVerificationFragment, InvalidVerificationFragment, ProviderDetails, providerType as ProviderType, SkippedVerificationFragment, ValidVerificationFragment, VerificationBuilderOptions, VerificationFragment, VerificationFragmentStatus, VerificationFragmentType, VerificationFragmentWithData, Verifier, VerifierOptions } from '@tradetrust-tt/tt-verify/dist/types/src/types/core';
|
|
5
|
+
import '../open-cert/verify.js';
|
|
6
|
+
import 'runtypes';
|
|
5
7
|
import './fragments/document-status/transferableRecords/transferableRecordVerifier.types.js';
|
|
6
8
|
import './fragments/document-integrity/w3cSignatureIntegrity.js';
|
|
7
9
|
import './fragments/document-integrity/ecdsaW3CSignatureIntegrity.js';
|
|
@@ -1,8 +1,10 @@
|
|
|
1
|
+
import { OpencertsRegistryVerifierVerificationFragment } from '../open-cert/verify.js';
|
|
1
2
|
import { VerifierType } from './fragments/document-status/transferableRecords/transferableRecordVerifier.types.js';
|
|
2
3
|
import * as _tradetrust_tt_tt_verify from '@tradetrust-tt/tt-verify';
|
|
3
|
-
export { createResolver, getIdentifier, isValid,
|
|
4
|
+
export { createResolver, getIdentifier, isValid, utils, verificationBuilder, verify } from '@tradetrust-tt/tt-verify';
|
|
4
5
|
import { Verifier, VerificationFragment } from '@tradetrust-tt/tt-verify/dist/types/src/types/core';
|
|
5
6
|
export { DocumentsToVerify, ErrorVerificationFragment, InvalidVerificationFragment, ProviderDetails, providerType as ProviderType, SkippedVerificationFragment, ValidVerificationFragment, VerificationBuilderOptions, VerificationFragment, VerificationFragmentStatus, VerificationFragmentType, VerificationFragmentWithData, Verifier, VerifierOptions } from '@tradetrust-tt/tt-verify/dist/types/src/types/core';
|
|
7
|
+
import 'runtypes';
|
|
6
8
|
|
|
7
9
|
declare const verifiers: {
|
|
8
10
|
documentIntegrity: {
|
|
@@ -18,13 +20,12 @@ declare const verifiers: {
|
|
|
18
20
|
credentialStatusTransferableRecordVerifier: VerifierType;
|
|
19
21
|
};
|
|
20
22
|
issuerIdentity: {
|
|
21
|
-
openAttestationDidIdentityProof: Verifier<_tradetrust_tt_tt_verify.OpenAttestationDidIdentityProofVerificationFragment>;
|
|
22
23
|
openAttestationDnsDidIdentityProof: Verifier<_tradetrust_tt_tt_verify.OpenAttestationDnsDidIdentityProofVerificationFragment>;
|
|
23
24
|
openAttestationDnsTxtIdentityProof: Verifier<_tradetrust_tt_tt_verify.OpenAttestationDnsTxtIdentityProofVerificationFragment>;
|
|
24
25
|
w3cIssuerIdentity: Verifier<VerificationFragment>;
|
|
25
26
|
};
|
|
26
27
|
};
|
|
27
|
-
declare const openAttestationVerifiers: (Verifier<
|
|
28
|
+
declare const openAttestationVerifiers: (Verifier<OpencertsRegistryVerifierVerificationFragment> | Verifier<_tradetrust_tt_tt_verify.OpenAttestationHashVerificationFragment> | Verifier<_tradetrust_tt_tt_verify.OpenAttestationEthereumTokenRegistryStatusFragment> | Verifier<_tradetrust_tt_tt_verify.OpenAttestationEthereumDocumentStoreStatusFragment> | Verifier<_tradetrust_tt_tt_verify.OpenAttestationDidSignedDocumentStatusVerificationFragment> | Verifier<_tradetrust_tt_tt_verify.OpenAttestationDnsTxtIdentityProofVerificationFragment> | Verifier<_tradetrust_tt_tt_verify.OpenAttestationDnsDidIdentityProofVerificationFragment>)[];
|
|
28
29
|
declare const w3cVerifiers: Verifier<VerificationFragment>[];
|
|
29
30
|
|
|
30
31
|
export { openAttestationVerifiers, verifiers, w3cVerifiers };
|