@trustvc/trustvc 1.8.1 → 2.0.1

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.
Files changed (37) hide show
  1. package/README.md +165 -70
  2. package/dist/cjs/core/documentBuilder.js +38 -14
  3. package/dist/cjs/open-attestation/utils.js +0 -2
  4. package/dist/cjs/utils/documents/index.js +27 -0
  5. package/dist/cjs/verify/fragments/document-integrity/ecdsaW3CSignatureIntegrity.js +87 -0
  6. package/dist/cjs/verify/fragments/document-integrity/w3cSignatureIntegrity.js +2 -2
  7. package/dist/cjs/verify/fragments/index.js +5 -0
  8. package/dist/cjs/verify/verify.js +2 -0
  9. package/dist/cjs/w3c/derive.js +11 -0
  10. package/dist/cjs/w3c/index.js +7 -0
  11. package/dist/cjs/w3c/sign.js +2 -2
  12. package/dist/esm/core/documentBuilder.js +39 -15
  13. package/dist/esm/open-attestation/utils.js +1 -2
  14. package/dist/esm/utils/documents/index.js +26 -1
  15. package/dist/esm/verify/fragments/document-integrity/ecdsaW3CSignatureIntegrity.js +85 -0
  16. package/dist/esm/verify/fragments/document-integrity/w3cSignatureIntegrity.js +1 -1
  17. package/dist/esm/verify/fragments/index.js +1 -0
  18. package/dist/esm/verify/verify.js +2 -0
  19. package/dist/esm/w3c/derive.js +9 -0
  20. package/dist/esm/w3c/index.js +1 -0
  21. package/dist/esm/w3c/sign.js +2 -2
  22. package/dist/types/core/documentBuilder.d.ts +14 -4
  23. package/dist/types/core/index.d.ts +1 -1
  24. package/dist/types/{index-Bc5NlE8f.d.ts → index-1ws_BWZW.d.ts} +2 -2
  25. package/dist/types/{index-CRVFHzes.d.ts → index-LpXMEhhr.d.ts} +3 -1
  26. package/dist/types/index.d.ts +7 -5
  27. package/dist/types/open-attestation/index.d.ts +1 -2
  28. package/dist/types/open-attestation/utils.d.ts +1 -3
  29. package/dist/types/utils/documents/index.d.ts +4 -2
  30. package/dist/types/utils/index.d.ts +2 -2
  31. package/dist/types/verify/fragments/document-integrity/ecdsaW3CSignatureIntegrity.d.ts +5 -0
  32. package/dist/types/verify/fragments/index.d.ts +1 -0
  33. package/dist/types/verify/index.d.ts +2 -1
  34. package/dist/types/w3c/derive.d.ts +11 -0
  35. package/dist/types/w3c/index.d.ts +2 -1
  36. package/dist/types/w3c/sign.d.ts +7 -3
  37. package/package.json +6 -5
@@ -24,28 +24,29 @@ export { fetchEventTime, mergeTransfersV4, mergeTransfersV5, sortLogChain } from
24
24
  export { getEndorsementChain } from './core/endorsement-chain/retrieveEndorsementChain.js';
25
25
  export { EndorsementChain, ParsedLog, TitleEscrowTransferEvent, TitleEscrowTransferEventType, TokenTransferEvent, TokenTransferEventType, TradeTrustTokenEventType, TransferBaseEvent, TransferEvent, TransferEventType, TypedEvent } from './core/endorsement-chain/types.js';
26
26
  export { TitleEscrowInterface, checkSupportsInterface, fetchEndorsementChain, getDocumentOwner, getTitleEscrowAddress, isTitleEscrowVersion } from './core/endorsement-chain/useEndorsementChain.js';
27
- export { DocumentBuilder, RenderMethod, W3CTransferableRecordsConfig, W3CVerifiableDocumentConfig, qrCode } from './core/documentBuilder.js';
27
+ export { DocumentBuilder, RenderMethod, SignOptions, W3CTransferableRecordsConfig, W3CVerifiableDocumentConfig, qrCode } from './core/documentBuilder.js';
28
28
  export { signOA } from './open-attestation/sign.js';
29
29
  export { KeyPair } from './open-attestation/types.js';
30
- export { diagnose, getAssetId, getDocumentData, getIssuerAddress, getTemplateURL, isDocumentRevokable, isObfuscated, isRawV2Document, isRawV3Document, isSignedWrappedV2Document, isSignedWrappedV3Document, isTransferableAsset, isWrappedV2Document, isWrappedV3Document } from './open-attestation/utils.js';
30
+ export { diagnose, getAssetId, getDocumentData, getIssuerAddress, getTemplateURL, isDocumentRevokable, isRawV2Document, isRawV3Document, isSignedWrappedV2Document, isSignedWrappedV3Document, isTransferableAsset, isWrappedV2Document, isWrappedV3Document } from './open-attestation/utils.js';
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-CRVFHzes.js';
34
+ export { i as fragments } from './index-LpXMEhhr.js';
35
35
  export { i as context } from './index-DwAYXQn2.js';
36
36
  export { i as credentialStatus } from './index-CjwEVGoM.js';
37
37
  export { i as issuer } from './index-ClF4_Nqk.js';
38
38
  export { signW3C } from './w3c/sign.js';
39
39
  export { RawVerifiableCredential, SignedVerifiableCredential, SigningResult, VerificationResult } from '@trustvc/w3c-vc';
40
40
  export { PrivateKeyPair } from '@trustvc/w3c-issuer';
41
- export { i as vc } from './index-Bc5NlE8f.js';
41
+ export { i as vc } from './index-1ws_BWZW.js';
42
42
  export { verifyW3CSignature } from './w3c/verify.js';
43
+ export { deriveW3C } from './w3c/derive.js';
43
44
  export { errorMessageHandling, w3cCredentialStatusRevoked, w3cCredentialStatusSuspended } from './utils/fragment/index.js';
44
45
  export * from '@tradetrust-tt/tradetrust-utils/constants/network';
45
46
  export { generate12ByteNonce, generate32ByteKey, stringToUint8Array } from './utils/stringUtils/index.js';
46
47
  export * from '@tradetrust-tt/tradetrust-utils/constants/supportedChains';
47
48
  export { errorMessages } from './utils/errorMessages/index.js';
48
- export { WrappedOrSignedOpenAttestationDocument, getChainId, getTokenId, getTokenRegistryAddress, getTransferableRecordsCredentialStatus, isTransferableRecord } from './utils/documents/index.js';
49
+ export { WrappedOrSignedOpenAttestationDocument, getChainId, getObfuscatedData, getTokenId, getTokenRegistryAddress, getTransferableRecordsCredentialStatus, isObfuscated, isTransferableRecord } from './utils/documents/index.js';
49
50
  export { GasStationFeeData, GasStationFunction, calculateMaxFee, gasStation, interpretFragments, scaleBigNumber } from '@tradetrust-tt/tradetrust-utils';
50
51
  export { AwsKmsSigner, AwsKmsSignerCredentials } from '@tradetrust-tt/ethers-aws-kms-signer';
51
52
  export { CustomDnsResolver, IDNSQueryResponse, IDNSRecord, OpenAttestationDNSTextRecord, OpenAttestationDnsDidRecord, defaultDnsResolvers, getDnsDidRecords, getDocumentStoreRecords, parseDnsDidResults, parseDocumentStoreResults, parseOpenAttestationRecord, queryDns } from '@tradetrust-tt/dnsprove';
@@ -71,6 +72,7 @@ import '@tradetrust-tt/tradetrust/dist/types/__generated__/schema.2.0';
71
72
  import '@tradetrust-tt/tradetrust/dist/types/shared/utils/@types/diagnose';
72
73
  import './verify/fragments/document-status/transferableRecords/transferableRecordVerifier.types.js';
73
74
  import './verify/fragments/document-integrity/w3cSignatureIntegrity.js';
75
+ import './verify/fragments/document-integrity/ecdsaW3CSignatureIntegrity.js';
74
76
  import './verify/fragments/document-status/transferableRecords/transferableRecordVerifier.js';
75
77
  import './verify/fragments/document-status/w3cCredentialStatus.js';
76
78
  import './verify/fragments/issuer-identity/w3cIssuerIdentity.js';
@@ -1,12 +1,11 @@
1
1
  export { signOA } from './sign.js';
2
2
  export { KeyPair } from './types.js';
3
- export { diagnose, getAssetId, getDocumentData, getIssuerAddress, getTemplateURL, isDocumentRevokable, isObfuscated, isRawV2Document, isRawV3Document, isSignedWrappedV2Document, isSignedWrappedV3Document, isTransferableAsset, isWrappedV2Document, isWrappedV3Document } from './utils.js';
3
+ export { diagnose, getAssetId, getDocumentData, getIssuerAddress, getTemplateURL, isDocumentRevokable, isRawV2Document, isRawV3Document, isSignedWrappedV2Document, isSignedWrappedV3Document, isTransferableAsset, isWrappedV2Document, isWrappedV3Document } from './utils.js';
4
4
  export { verifyOASignature } from './verify.js';
5
5
  export { wrapOADocument, wrapOADocumentV2, wrapOADocuments, wrapOADocumentsV2 } from './wrap.js';
6
6
  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';
7
7
  export { DiagnoseError } from '@tradetrust-tt/tradetrust/dist/types/shared/utils';
8
8
  import '@ethersproject/abstract-signer';
9
- import '@trustvc/w3c-vc';
10
9
  import '@tradetrust-tt/tradetrust/dist/types/3.0/types';
11
10
  import '@tradetrust-tt/tradetrust/dist/types/__generated__/schema.3.0';
12
11
  import '@tradetrust-tt/tradetrust/dist/types/2.0/types';
@@ -1,4 +1,3 @@
1
- import * as _trustvc_w3c_vc from '@trustvc/w3c-vc';
2
1
  import * as _tradetrust_tt_tradetrust_dist_types_3_0_types from '@tradetrust-tt/tradetrust/dist/types/3.0/types';
3
2
  import * as _tradetrust_tt_tradetrust_dist_types___generated___schema_3_0 from '@tradetrust-tt/tradetrust/dist/types/__generated__/schema.3.0';
4
3
  import * as _tradetrust_tt_tradetrust from '@tradetrust-tt/tradetrust';
@@ -29,7 +28,6 @@ declare const isRawV2Document: (document: any, { mode }?: {
29
28
  declare const isRawV3Document: (document: any, { mode }?: {
30
29
  mode: _tradetrust_tt_tradetrust_dist_types_shared_utils__types_diagnose.Mode;
31
30
  }) => document is _tradetrust_tt_tradetrust_dist_types___generated___schema_3_0.OpenAttestationDocument;
32
- declare const isObfuscated: (document: _tradetrust_tt_tradetrust_dist_types_3_0_types.WrappedDocument<_tradetrust_tt_tradetrust_dist_types___generated___schema_3_0.OpenAttestationDocument> | _tradetrust_tt_tradetrust_dist_types_2_0_types.WrappedDocument<_tradetrust_tt_tradetrust_dist_types___generated___schema_2_0.OpenAttestationDocument> | _trustvc_w3c_vc.SignedVerifiableCredential) => boolean;
33
31
  declare const getDocumentData: (document: _tradetrust_tt_tradetrust.WrappedDocument<_tradetrust_tt_tradetrust.OpenAttestationDocument>) => _tradetrust_tt_tradetrust.OpenAttestationDocument;
34
32
  declare const getIssuerAddress: typeof utils.getIssuerAddress;
35
33
  declare const diagnose: ({ version, kind, document, debug, mode, }: {
@@ -41,4 +39,4 @@ declare const diagnose: ({ version, kind, document, debug, mode, }: {
41
39
  }) => utils.DiagnoseError[];
42
40
  declare const getTemplateURL: (document: any) => string | undefined;
43
41
 
44
- export { diagnose, getAssetId, getDocumentData, getIssuerAddress, getTemplateURL, isDocumentRevokable, isObfuscated, isRawV2Document, isRawV3Document, isSignedWrappedV2Document, isSignedWrappedV3Document, isTransferableAsset, isWrappedV2Document, isWrappedV3Document };
42
+ export { diagnose, getAssetId, getDocumentData, getIssuerAddress, getTemplateURL, isDocumentRevokable, isRawV2Document, isRawV3Document, isSignedWrappedV2Document, isSignedWrappedV3Document, isTransferableAsset, isWrappedV2Document, isWrappedV3Document };
@@ -1,6 +1,6 @@
1
1
  import { WrappedDocument, OpenAttestationDocument } from '@tradetrust-tt/tradetrust';
2
- import { SignedVerifiableCredential } from '@trustvc/w3c-vc';
3
2
  import { TransferableRecordsCredentialStatus } from '@trustvc/w3c-credential-status';
3
+ import { SignedVerifiableCredential } from '@trustvc/w3c-vc';
4
4
  import { CHAIN_ID } from '@tradetrust-tt/tradetrust-utils/constants/supportedChains';
5
5
 
6
6
  type WrappedOrSignedOpenAttestationDocument = WrappedDocument<OpenAttestationDocument>;
@@ -9,5 +9,7 @@ declare const isTransferableRecord: (document: WrappedOrSignedOpenAttestationDoc
9
9
  declare const getTokenRegistryAddress: (document: WrappedOrSignedOpenAttestationDocument | SignedVerifiableCredential) => string | undefined;
10
10
  declare const getTokenId: (document: WrappedOrSignedOpenAttestationDocument | SignedVerifiableCredential) => string;
11
11
  declare const getChainId: (document: WrappedOrSignedOpenAttestationDocument | SignedVerifiableCredential) => CHAIN_ID | undefined;
12
+ declare const isObfuscated: (document: WrappedDocument<OpenAttestationDocument> | SignedVerifiableCredential) => boolean;
13
+ declare const getObfuscatedData: (document: WrappedDocument<OpenAttestationDocument>) => string[];
12
14
 
13
- export { type WrappedOrSignedOpenAttestationDocument, getChainId, getTokenId, getTokenRegistryAddress, getTransferableRecordsCredentialStatus, isTransferableRecord };
15
+ export { type WrappedOrSignedOpenAttestationDocument, getChainId, getObfuscatedData, getTokenId, getTokenRegistryAddress, getTransferableRecordsCredentialStatus, isObfuscated, isTransferableRecord };
@@ -3,11 +3,11 @@ export * from '@tradetrust-tt/tradetrust-utils/constants/network';
3
3
  export { generate12ByteNonce, generate32ByteKey, stringToUint8Array } from './stringUtils/index.js';
4
4
  export * from '@tradetrust-tt/tradetrust-utils/constants/supportedChains';
5
5
  export { errorMessages } from './errorMessages/index.js';
6
- export { WrappedOrSignedOpenAttestationDocument, getChainId, getTokenId, getTokenRegistryAddress, getTransferableRecordsCredentialStatus, isTransferableRecord } from './documents/index.js';
6
+ export { WrappedOrSignedOpenAttestationDocument, getChainId, getObfuscatedData, getTokenId, getTokenRegistryAddress, getTransferableRecordsCredentialStatus, isObfuscated, isTransferableRecord } from './documents/index.js';
7
7
  export { GasStationFeeData, GasStationFunction, calculateMaxFee, gasStation, interpretFragments, scaleBigNumber } from '@tradetrust-tt/tradetrust-utils';
8
8
  export { AwsKmsSigner, AwsKmsSignerCredentials } from '@tradetrust-tt/ethers-aws-kms-signer';
9
9
  export { ErrorMessage, ErrorMessageTypes, ErrorMessages, MessagesDictionary } from './errorMessages/types.js';
10
10
  import '@tradetrust-tt/tt-verify';
11
11
  import '@tradetrust-tt/tradetrust';
12
- import '@trustvc/w3c-vc';
13
12
  import '@trustvc/w3c-credential-status';
13
+ import '@trustvc/w3c-vc';
@@ -0,0 +1,5 @@
1
+ import { Verifier, VerificationFragment } from '@tradetrust-tt/tt-verify';
2
+
3
+ declare const ecdsaW3CSignatureIntegrity: Verifier<VerificationFragment>;
4
+
5
+ export { ecdsaW3CSignatureIntegrity };
@@ -1,5 +1,6 @@
1
1
  export { openAttestationDidIdentityProof, openAttestationDidSignedDocumentStatus, openAttestationDnsDidIdentityProof, openAttestationDnsTxtIdentityProof, openAttestationEthereumDocumentStoreStatus, openAttestationEthereumTokenRegistryStatus, openAttestationHash } from '@tradetrust-tt/tt-verify';
2
2
  export { w3cSignatureIntegrity } from './document-integrity/w3cSignatureIntegrity.js';
3
+ export { ecdsaW3CSignatureIntegrity } from './document-integrity/ecdsaW3CSignatureIntegrity.js';
3
4
  export { TRANSFERABLE_RECORDS_TYPE, credentialStatusTransferableRecordVerifier } from './document-status/transferableRecords/transferableRecordVerifier.js';
4
5
  export { w3cCredentialStatus } from './document-status/w3cCredentialStatus.js';
5
6
  export { w3cIssuerIdentity } from './issuer-identity/w3cIssuerIdentity.js';
@@ -1,9 +1,10 @@
1
1
  export { openAttestationVerifiers, verifiers, w3cVerifiers } from './verify.js';
2
- export { i as fragments } from '../index-CRVFHzes.js';
2
+ export { i as fragments } from '../index-LpXMEhhr.js';
3
3
  export { createResolver, getIdentifier, isValid, openAttestationDidIdentityProof, 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
5
  import './fragments/document-status/transferableRecords/transferableRecordVerifier.types.js';
6
6
  import './fragments/document-integrity/w3cSignatureIntegrity.js';
7
+ import './fragments/document-integrity/ecdsaW3CSignatureIntegrity.js';
7
8
  import './fragments/document-status/transferableRecords/transferableRecordVerifier.js';
8
9
  import './fragments/document-status/w3cCredentialStatus.js';
9
10
  import './fragments/issuer-identity/w3cIssuerIdentity.js';
@@ -0,0 +1,11 @@
1
+ import { SignedVerifiableCredential, ContextDocument, DerivedResult } from '@trustvc/w3c-vc';
2
+
3
+ /**
4
+ * Derives a credential with selective disclosure based on revealed attributes.
5
+ * @param {object} credential - The verifiable credential to be selectively disclosed.
6
+ * @param {object|string[]} revealedAttributes - For BBS+: The attributes from the credential that should be revealed. For ECDSA-SD-2023: Array of selective pointers.
7
+ * @returns {Promise<DerivedResult>} A DerivedResult containing the derived proof or an error message.
8
+ */
9
+ declare const deriveW3C: (credential: SignedVerifiableCredential, revealedAttributes: ContextDocument | string[]) => Promise<DerivedResult>;
10
+
11
+ export { deriveW3C };
@@ -4,7 +4,8 @@ export { i as issuer } from '../index-ClF4_Nqk.js';
4
4
  export { signW3C } from './sign.js';
5
5
  export { RawVerifiableCredential, SignedVerifiableCredential, SigningResult, VerificationResult } from '@trustvc/w3c-vc';
6
6
  export { PrivateKeyPair } from '@trustvc/w3c-issuer';
7
- export { i as vc } from '../index-Bc5NlE8f.js';
7
+ export { i as vc } from '../index-1ws_BWZW.js';
8
8
  export { verifyW3CSignature } from './verify.js';
9
+ export { deriveW3C } from './derive.js';
9
10
  import '@trustvc/w3c-context';
10
11
  import '@trustvc/w3c-credential-status';
@@ -1,13 +1,17 @@
1
- import { RawVerifiableCredential, SigningResult } from '@trustvc/w3c-vc';
1
+ import { RawVerifiableCredential, CryptoSuiteName, SigningResult } from '@trustvc/w3c-vc';
2
2
  import { PrivateKeyPair } from '@trustvc/w3c-issuer';
3
3
 
4
4
  /**
5
5
  * Signs a W3C Verifiable Credential using the provided cryptographic suite and key pair.
6
6
  * @param {RawVerifiableCredential} credential - The verifiable credential object that needs to be signed.
7
7
  * @param {PrivateKeyPair} keyPair - The private and public key pair used for signing the credential.
8
- * @param {string} [cryptoSuite='BbsBlsSignature2020'] - The cryptographic suite to be used for signing (default is 'BbsBlsSignature2020').
8
+ * @param {CryptoSuiteName} [cryptoSuite='ecdsa-sd-2023'] - The cryptographic suite to be used for signing (default is 'ecdsa-sd-2023').
9
+ * @param {object} [options] - Optional parameters including mandatoryPointers for ECDSA-SD-2023.
10
+ * @param {string[]} [options.mandatoryPointers] - Optional mandatory pointers for ECDSA-SD-2023.
9
11
  * @returns {Promise<SigningResult>} A promise that resolves to the result of the signing operation, which includes the signed credential.
10
12
  */
11
- declare const signW3C: (credential: RawVerifiableCredential, keyPair: PrivateKeyPair, cryptoSuite?: string) => Promise<SigningResult>;
13
+ declare const signW3C: (credential: RawVerifiableCredential, keyPair: PrivateKeyPair, cryptoSuite?: CryptoSuiteName, options?: {
14
+ mandatoryPointers?: string[];
15
+ }) => Promise<SigningResult>;
12
16
 
13
17
  export { signW3C };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@trustvc/trustvc",
3
- "version": "1.8.1",
3
+ "version": "2.0.1",
4
4
  "description": "TrustVC library",
5
5
  "main": "dist/cjs/index.js",
6
6
  "module": "dist/esm/index.js",
@@ -121,10 +121,11 @@
121
121
  "@tradetrust-tt/tradetrust": "^6.10.2",
122
122
  "@tradetrust-tt/tradetrust-utils": "^2.4.2",
123
123
  "@tradetrust-tt/tt-verify": "^9.5.1",
124
- "@trustvc/w3c-context": "^1.2.13",
125
- "@trustvc/w3c-credential-status": "^1.2.13",
126
- "@trustvc/w3c-issuer": "^1.2.4",
127
- "@trustvc/w3c-vc": "^1.2.17",
124
+ "@trustvc/w3c": "^1.3.0-alpha.7",
125
+ "@trustvc/w3c-context": "^1.3.0-alpha.7",
126
+ "@trustvc/w3c-credential-status": "^1.3.0-alpha.7",
127
+ "@trustvc/w3c-issuer": "^1.3.0-alpha.5",
128
+ "@trustvc/w3c-vc": "^1.3.0-alpha.7",
128
129
  "ethers": "^5.8.0",
129
130
  "ethersV6": "npm:ethers@^6.14.4",
130
131
  "js-sha3": "^0.9.3",