@truvity/sdk 0.28.3 → 0.28.5
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/api/resources/apiKeys/client/Client.d.ts +1 -0
- package/api/resources/apiKeys/client/Client.d.ts.map +1 -1
- package/api/resources/apiKeys/client/Client.js +16 -8
- package/api/resources/apiKeys/client/Client.js.map +1 -1
- package/api/resources/apiKeys/client/requests/ApiKeyCreateRequest.d.ts +8 -8
- package/api/resources/apiKeys/client/requests/ApiKeyCreateRequest.js.map +1 -1
- package/api/resources/apiKeys/client/requests/ApiKeyDeleteRequest.d.ts +8 -8
- package/api/resources/apiKeys/client/requests/ApiKeyDeleteRequest.js.map +1 -1
- package/api/resources/apiKeys/client/requests/ApiKeyRestoreRequest.d.ts +8 -8
- package/api/resources/apiKeys/client/requests/ApiKeyRestoreRequest.js.map +1 -1
- package/api/resources/apiKeys/client/requests/ApiKeyUpdateRequest.d.ts +8 -8
- package/api/resources/apiKeys/client/requests/ApiKeyUpdateRequest.js.map +1 -1
- package/api/resources/credentials/client/Client.d.ts +2 -0
- package/api/resources/credentials/client/Client.d.ts.map +1 -1
- package/api/resources/credentials/client/Client.js +26 -10
- package/api/resources/credentials/client/Client.js.map +1 -1
- package/api/resources/credentials/client/requests/CredentialDeleteRequest.d.ts +8 -8
- package/api/resources/credentials/client/requests/CredentialDeleteRequest.js.map +1 -1
- package/api/resources/credentials/client/requests/CredentialInput.d.ts +8 -8
- package/api/resources/credentials/client/requests/CredentialInput.js.map +1 -1
- package/api/resources/credentials/client/requests/CredentialRestoreRequest.d.ts +8 -8
- package/api/resources/credentials/client/requests/CredentialRestoreRequest.js.map +1 -1
- package/api/resources/credentials/client/requests/CredentialUploadRequest.d.ts +8 -8
- package/api/resources/credentials/client/requests/CredentialUploadRequest.js.map +1 -1
- package/api/resources/desk/client/Client.js +2 -2
- package/api/resources/desk/client/Client.js.map +1 -1
- package/api/resources/didcommMessages/client/Client.d.ts +3 -0
- package/api/resources/didcommMessages/client/Client.d.ts.map +1 -1
- package/api/resources/didcommMessages/client/Client.js +31 -7
- package/api/resources/didcommMessages/client/Client.js.map +1 -1
- package/api/resources/didcommMessages/client/requests/DidCommMessageSendInput.d.ts +8 -8
- package/api/resources/didcommMessages/client/requests/DidCommMessageSendInput.js.map +1 -1
- package/api/resources/didcommMessages/client/requests/DidcommMessageDeleteRequest.d.ts +8 -8
- package/api/resources/didcommMessages/client/requests/DidcommMessageDeleteRequest.js.map +1 -1
- package/api/resources/didcommMessages/client/requests/DidcommMessageRestoreRequest.d.ts +8 -8
- package/api/resources/didcommMessages/client/requests/DidcommMessageRestoreRequest.js.map +1 -1
- package/api/resources/dids/client/Client.js +1 -1
- package/api/resources/dids/client/Client.js.map +1 -1
- package/api/resources/drafts/client/Client.d.ts +2 -0
- package/api/resources/drafts/client/Client.d.ts.map +1 -1
- package/api/resources/drafts/client/Client.js +26 -10
- package/api/resources/drafts/client/Client.js.map +1 -1
- package/api/resources/drafts/client/requests/DraftCreateRequest.d.ts +8 -8
- package/api/resources/drafts/client/requests/DraftCreateRequest.js.map +1 -1
- package/api/resources/drafts/client/requests/DraftDeleteRequest.d.ts +8 -8
- package/api/resources/drafts/client/requests/DraftDeleteRequest.js.map +1 -1
- package/api/resources/drafts/client/requests/DraftRestoreRequest.d.ts +8 -8
- package/api/resources/drafts/client/requests/DraftRestoreRequest.js.map +1 -1
- package/api/resources/drafts/client/requests/DraftUpdateRequest.d.ts +8 -8
- package/api/resources/drafts/client/requests/DraftUpdateRequest.js.map +1 -1
- package/api/resources/files/client/Client.d.ts +2 -0
- package/api/resources/files/client/Client.d.ts.map +1 -1
- package/api/resources/files/client/Client.js +26 -10
- package/api/resources/files/client/Client.js.map +1 -1
- package/api/resources/files/client/requests/FileCreateRequest.d.ts +8 -8
- package/api/resources/files/client/requests/FileCreateRequest.js.map +1 -1
- package/api/resources/files/client/requests/FileDeleteRequest.d.ts +8 -8
- package/api/resources/files/client/requests/FileDeleteRequest.js.map +1 -1
- package/api/resources/files/client/requests/FileRestoreRequest.d.ts +8 -8
- package/api/resources/files/client/requests/FileRestoreRequest.js.map +1 -1
- package/api/resources/files/client/requests/FileUpdateRequest.d.ts +8 -8
- package/api/resources/files/client/requests/FileUpdateRequest.js.map +1 -1
- package/api/resources/files/client/requests/FileUploadRequest.d.ts +8 -8
- package/api/resources/files/client/requests/FileUploadRequest.js.map +1 -1
- package/api/resources/gdpr/client/Client.js +1 -1
- package/api/resources/gdpr/client/Client.js.map +1 -1
- package/api/resources/keys/client/Client.d.ts +4 -4
- package/api/resources/keys/client/Client.d.ts.map +1 -1
- package/api/resources/keys/client/Client.js +44 -16
- package/api/resources/keys/client/Client.js.map +1 -1
- package/api/resources/keys/client/requests/KeyDeleteRequest.d.ts +8 -8
- package/api/resources/keys/client/requests/KeyDeleteRequest.js.map +1 -1
- package/api/resources/keys/client/requests/KeyGenerateInput.d.ts +8 -8
- package/api/resources/keys/client/requests/KeyGenerateInput.js.map +1 -1
- package/api/resources/keys/client/requests/KeyImportSecretInput.d.ts +8 -8
- package/api/resources/keys/client/requests/KeyImportSecretInput.js.map +1 -1
- package/api/resources/keys/client/requests/KeyInput.d.ts +8 -8
- package/api/resources/keys/client/requests/KeyInput.js.map +1 -1
- package/api/resources/keys/client/requests/KeyRestoreRequest.d.ts +8 -8
- package/api/resources/keys/client/requests/KeyRestoreRequest.js.map +1 -1
- package/api/resources/presentations/client/Client.d.ts +3 -0
- package/api/resources/presentations/client/Client.d.ts.map +1 -1
- package/api/resources/presentations/client/Client.js +36 -12
- package/api/resources/presentations/client/Client.js.map +1 -1
- package/api/resources/presentations/client/requests/PresentationDeleteRequest.d.ts +8 -8
- package/api/resources/presentations/client/requests/PresentationDeleteRequest.js.map +1 -1
- package/api/resources/presentations/client/requests/PresentationInput.d.ts +8 -8
- package/api/resources/presentations/client/requests/PresentationInput.js.map +1 -1
- package/api/resources/presentations/client/requests/PresentationRestoreRequest.d.ts +8 -8
- package/api/resources/presentations/client/requests/PresentationRestoreRequest.js.map +1 -1
- package/api/resources/presentations/client/requests/PresentationUploadRequest.d.ts +8 -8
- package/api/resources/presentations/client/requests/PresentationUploadRequest.js.map +1 -1
- package/api/types/DraftSchema.d.ts +17 -16
- package/api/types/DraftSchema.d.ts.map +1 -1
- package/api/types/DraftSchema.js.map +1 -1
- package/api/types/EqualKeyTypeValue.d.ts +1 -2
- package/api/types/EqualKeyTypeValue.d.ts.map +1 -1
- package/api/types/EqualKeyTypeValue.js +0 -1
- package/api/types/EqualKeyTypeValue.js.map +1 -1
- package/api/types/InKeyTypeValuesItem.d.ts +6 -8
- package/api/types/InKeyTypeValuesItem.d.ts.map +1 -1
- package/api/types/InKeyTypeValuesItem.js +0 -1
- package/api/types/InKeyTypeValuesItem.js.map +1 -1
- package/api/types/KeyGenerate.d.ts +5 -6
- package/api/types/KeyGenerate.d.ts.map +1 -1
- package/api/types/KeyGenerate.js.map +1 -1
- package/api/types/KeyGenerateType.d.ts +6 -8
- package/api/types/KeyGenerateType.d.ts.map +1 -1
- package/api/types/KeyGenerateType.js +0 -1
- package/api/types/KeyGenerateType.js.map +1 -1
- package/api/types/KeyPublic.d.ts +5 -6
- package/api/types/KeyPublic.d.ts.map +1 -1
- package/api/types/KeyPublic.js.map +1 -1
- package/api/types/KeyPublicType.d.ts +6 -8
- package/api/types/KeyPublicType.d.ts.map +1 -1
- package/api/types/KeyPublicType.js +0 -1
- package/api/types/KeyPublicType.js.map +1 -1
- package/api/types/NotEqualKeyTypeValue.d.ts +1 -2
- package/api/types/NotEqualKeyTypeValue.d.ts.map +1 -1
- package/api/types/NotEqualKeyTypeValue.js +0 -1
- package/api/types/NotEqualKeyTypeValue.js.map +1 -1
- package/api/types/NotInKeyTypeValuesItem.d.ts +6 -8
- package/api/types/NotInKeyTypeValuesItem.d.ts.map +1 -1
- package/api/types/NotInKeyTypeValuesItem.js +0 -1
- package/api/types/NotInKeyTypeValuesItem.js.map +1 -1
- package/api/types/ProblemMethodNotAllowedAlive.d.ts +1 -1
- package/api/types/ProblemMethodNotAllowedAlive.js.map +1 -1
- package/api/types/ProblemMethodNotAllowedDeleted.d.ts +1 -1
- package/api/types/ProblemMethodNotAllowedDeleted.js.map +1 -1
- package/api/types/ProblemPreconditionFailedBlob.d.ts +1 -1
- package/api/types/ProblemPreconditionFailedBlob.js.map +1 -1
- package/api/types/ProblemResourceNotFound.d.ts +1 -1
- package/api/types/ProblemResourceNotFound.js.map +1 -1
- package/documents/credential/baseVerifiableCredential.d.ts +1 -1
- package/documents/credential/baseVerifiableCredential.d.ts.map +1 -1
- package/documents/credential/baseVerifiableCredential.js +27 -4
- package/documents/credential/baseVerifiableCredential.js.map +1 -1
- package/documents/credential/document.d.ts +1 -1
- package/documents/credential/document.d.ts.map +1 -1
- package/documents/credential/document.js +2 -2
- package/documents/credential/document.js.map +1 -1
- package/documents/credential/document.spec.d.ts +1 -1
- package/documents/credential/document.spec.d.ts.map +1 -1
- package/documents/credential/document.spec.js +4 -3
- package/documents/credential/document.spec.js.map +1 -1
- package/documents/credential/draft.d.ts +2 -1
- package/documents/credential/draft.d.ts.map +1 -1
- package/documents/credential/draft.js +4 -3
- package/documents/credential/draft.js.map +1 -1
- package/documents/credential/flavor.d.ts.map +1 -1
- package/documents/credential/flavor.js +1 -0
- package/documents/credential/flavor.js.map +1 -1
- package/documents/credential/flavor.spec.js +5 -3
- package/documents/credential/flavor.spec.js.map +1 -1
- package/documents/credential/issued.d.ts +2 -1
- package/documents/credential/issued.d.ts.map +1 -1
- package/documents/credential/issued.js +4 -3
- package/documents/credential/issued.js.map +1 -1
- package/documents/credential/unknown.d.ts +6 -1
- package/documents/credential/unknown.d.ts.map +1 -1
- package/documents/credential/unknown.js +10 -2
- package/documents/credential/unknown.js.map +1 -1
- package/documents/credential.d.ts +7 -1
- package/documents/credential.d.ts.map +1 -1
- package/documents/credential.js +19 -8
- package/documents/credential.js.map +1 -1
- package/documents/models.d.ts +1 -1
- package/documents/models.d.ts.map +1 -1
- package/documents/models.js +2 -25
- package/documents/models.js.map +1 -1
- package/documents/presentation/issued.d.ts +1 -1
- package/documents/presentation/issued.d.ts.map +1 -1
- package/documents/presentation/issued.js +2 -2
- package/documents/presentation/issued.js.map +1 -1
- package/documents/presentation.d.ts +7 -1
- package/documents/presentation.d.ts.map +1 -1
- package/documents/presentation.js +10 -2
- package/documents/presentation.js.map +1 -1
- package/documents/types.d.ts +1 -0
- package/documents/types.d.ts.map +1 -1
- package/documents/types.js.map +1 -1
- package/package.json +1 -1
- package/reference.md +0 -4
- package/serialization/types/EqualKeyTypeValue.d.ts +1 -1
- package/serialization/types/EqualKeyTypeValue.d.ts.map +1 -1
- package/serialization/types/EqualKeyTypeValue.js +1 -1
- package/serialization/types/EqualKeyTypeValue.js.map +1 -1
- package/serialization/types/InKeyTypeValuesItem.d.ts +1 -1
- package/serialization/types/InKeyTypeValuesItem.d.ts.map +1 -1
- package/serialization/types/InKeyTypeValuesItem.js +1 -1
- package/serialization/types/InKeyTypeValuesItem.js.map +1 -1
- package/serialization/types/KeyGenerateType.d.ts +1 -1
- package/serialization/types/KeyGenerateType.d.ts.map +1 -1
- package/serialization/types/KeyGenerateType.js +1 -1
- package/serialization/types/KeyGenerateType.js.map +1 -1
- package/serialization/types/KeyPublicType.d.ts +1 -1
- package/serialization/types/KeyPublicType.d.ts.map +1 -1
- package/serialization/types/KeyPublicType.js +1 -1
- package/serialization/types/KeyPublicType.js.map +1 -1
- package/serialization/types/NotEqualKeyTypeValue.d.ts +1 -1
- package/serialization/types/NotEqualKeyTypeValue.d.ts.map +1 -1
- package/serialization/types/NotEqualKeyTypeValue.js +1 -1
- package/serialization/types/NotEqualKeyTypeValue.js.map +1 -1
- package/serialization/types/NotInKeyTypeValuesItem.d.ts +1 -1
- package/serialization/types/NotInKeyTypeValuesItem.d.ts.map +1 -1
- package/serialization/types/NotInKeyTypeValuesItem.js +1 -1
- package/serialization/types/NotInKeyTypeValuesItem.js.map +1 -1
- package/documents/credential/index.d.ts +0 -7
- package/documents/credential/index.d.ts.map +0 -1
- package/documents/credential/index.js +0 -23
- package/documents/credential/index.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"NotInKeyTypeValuesItem.js","sourceRoot":"","sources":["../../../src/api/types/NotInKeyTypeValuesItem.ts"],"names":[],"mappings":";AAAA;;GAEG;;;
|
|
1
|
+
{"version":3,"file":"NotInKeyTypeValuesItem.js","sourceRoot":"","sources":["../../../src/api/types/NotInKeyTypeValuesItem.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AAyBU,QAAA,sBAAsB,GAAG;IAClC,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;CACN,CAAC","sourcesContent":["/**\n * This file was auto-generated by Fern from our API Definition.\n */\n\n/**\n * The specification of asymmetric key-pair.\n *\n * | Truvity | JWX - KeyType | JWX - Curve | FIPS | SEC2 | OpenSSL | AWS KMS |\n * | ------- | ------------- | ----------- | ----- | --------- | ---------- | ------------- |\n * | ED25519 | OKP | Ed25519 | | | ed25519 | |\n * | P256 | EC | P-256 | P-256 | secp256r1 | prime256v1 | ECC_NIST_P256 |\n * | P384 | EC | P-384 | P-384 | secp384r1 | secp384r1 | ECC_NIST_P384 |\n *\n * Useful third-party documentation:\n *\n * - [openssl-genrsa - generate an RSA private key](https://www.openssl.org/docs/manmaster/man1/openssl-genpkey.html).\n * - [openssl-ec, ec - EC key processing](https://www.openssl.org/docs/man1.0.2/man1/ec.html)\n * - [openssl-genrsa - generate an RSA private key](https://www.openssl.org/docs/man3.0/man1/openssl-genrsa.html)\n * - [openssl-pkcs8 - PKCS#8 format private key conversion command](https://www.openssl.org/docs/manmaster/man1/openssl-pkcs8.html)\n * - [JWX - github.com/lestrrat-go/jwx](https://github.com/lestrrat-go/jwx/blob/main/cmd/jwx/README.md)\n * - [FIPS 186-4](https://nvlpubs.nist.gov/nistpubs/FIPS/NIST.FIPS.186-4.pdf).\n * - [SEC2](https://www.secg.org/sec2-v2.pdf).\n * - [AWS KMS - Asymmetric key specs](https://docs.aws.amazon.com/kms/latest/developerguide/asymmetric-key-specs.html)\n * .\n */\nexport type NotInKeyTypeValuesItem = 'ED25519' | 'P256' | 'P384';\n\nexport const NotInKeyTypeValuesItem = {\n Ed25519: 'ED25519',\n P256: 'P256',\n P384: 'P384',\n} as const;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProblemMethodNotAllowedAlive.js","sourceRoot":"","sources":["../../../src/api/types/ProblemMethodNotAllowedAlive.ts"],"names":[],"mappings":";AAAA;;GAEG","sourcesContent":["/**\n * This file was auto-generated by Fern from our API Definition.\n */\n\nimport * as Truvity from '../index';\n\n/**\n * Method Not Allowed
|
|
1
|
+
{"version":3,"file":"ProblemMethodNotAllowedAlive.js","sourceRoot":"","sources":["../../../src/api/types/ProblemMethodNotAllowedAlive.ts"],"names":[],"mappings":";AAAA;;GAEG","sourcesContent":["/**\n * This file was auto-generated by Fern from our API Definition.\n */\n\nimport * as Truvity from '../index';\n\n/**\n * Method Not Allowed - Resource Alive. Problem schema.\n */\nexport interface ProblemMethodNotAllowedAlive {\n actual: Truvity.Resource;\n /** This value should not change between occurrences of the error. */\n title: string;\n /** HTTP status code */\n status: number;\n /** A human-readable explanation specific to this occurrence of the problem. */\n detail?: string;\n /** Optional list of individual error details */\n errors?: Truvity.ErrorDetail[];\n /** A URI reference that identifies the specific occurrence of the problem. */\n instance?: string;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProblemMethodNotAllowedDeleted.js","sourceRoot":"","sources":["../../../src/api/types/ProblemMethodNotAllowedDeleted.ts"],"names":[],"mappings":";AAAA;;GAEG","sourcesContent":["/**\n * This file was auto-generated by Fern from our API Definition.\n */\n\nimport * as Truvity from '../index';\n\n/**\n * Method Not Allowed
|
|
1
|
+
{"version":3,"file":"ProblemMethodNotAllowedDeleted.js","sourceRoot":"","sources":["../../../src/api/types/ProblemMethodNotAllowedDeleted.ts"],"names":[],"mappings":";AAAA;;GAEG","sourcesContent":["/**\n * This file was auto-generated by Fern from our API Definition.\n */\n\nimport * as Truvity from '../index';\n\n/**\n * Method Not Allowed - Resource Deleted. Problem schema.\n */\nexport interface ProblemMethodNotAllowedDeleted {\n actual: Truvity.Resource;\n /** This value should not change between occurrences of the error. */\n title: string;\n /** HTTP status code */\n status: number;\n /** A human-readable explanation specific to this occurrence of the problem. */\n detail?: string;\n /** Optional list of individual error details */\n errors?: Truvity.ErrorDetail[];\n /** A URI reference that identifies the specific occurrence of the problem. */\n instance?: string;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProblemPreconditionFailedBlob.js","sourceRoot":"","sources":["../../../src/api/types/ProblemPreconditionFailedBlob.ts"],"names":[],"mappings":";AAAA;;GAEG","sourcesContent":["/**\n * This file was auto-generated by Fern from our API Definition.\n */\n\nimport * as Truvity from '../index';\n\n/**\n * Precondition Failed
|
|
1
|
+
{"version":3,"file":"ProblemPreconditionFailedBlob.js","sourceRoot":"","sources":["../../../src/api/types/ProblemPreconditionFailedBlob.ts"],"names":[],"mappings":";AAAA;;GAEG","sourcesContent":["/**\n * This file was auto-generated by Fern from our API Definition.\n */\n\nimport * as Truvity from '../index';\n\n/**\n * Precondition Failed - Blob. Problem schema.\n */\nexport interface ProblemPreconditionFailedBlob {\n /** This value should not change between occurrences of the error. */\n title: string;\n /** HTTP status code */\n status: number;\n /**\n * The primary and unique identifier of the resource (inside tenant)\n * according to [RFC 4122](https://www.rfc-editor.org/info/rfc4122).\n */\n id: string;\n kind: string;\n /** A human-readable explanation specific to this occurrence of the problem. */\n detail?: string;\n /** Optional list of individual error details */\n errors?: Truvity.ErrorDetail[];\n /** A URI reference that identifies the specific occurrence of the problem. */\n instance?: string;\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProblemResourceNotFound.js","sourceRoot":"","sources":["../../../src/api/types/ProblemResourceNotFound.ts"],"names":[],"mappings":";AAAA;;GAEG","sourcesContent":["/**\n * This file was auto-generated by Fern from our API Definition.\n */\n\nimport * as Truvity from '../index';\n\n/**\n * Not Found - Resource.
|
|
1
|
+
{"version":3,"file":"ProblemResourceNotFound.js","sourceRoot":"","sources":["../../../src/api/types/ProblemResourceNotFound.ts"],"names":[],"mappings":";AAAA;;GAEG","sourcesContent":["/**\n * This file was auto-generated by Fern from our API Definition.\n */\n\nimport * as Truvity from '../index';\n\n/**\n * Not Found - Resource. Problem schema.\n */\nexport interface ProblemResourceNotFound {\n /** This value should not change between occurrences of the error. */\n title: string;\n /** HTTP status code */\n status: number;\n /**\n * The primary and unique identifier of the resource (inside tenant)\n * according to [RFC 4122](https://www.rfc-editor.org/info/rfc4122).\n */\n id: string;\n kind: string;\n /** A human-readable explanation specific to this occurrence of the problem. */\n detail?: string;\n /** Optional list of individual error details */\n errors?: Truvity.ErrorDetail[];\n /** A URI reference that identifies the specific occurrence of the problem. */\n instance?: string;\n}\n"]}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
/// <reference types="node" />
|
|
2
2
|
import type { ApiClient, CredentialDescriptor, CredentialBlob, VerificationResult, CredentialMetadata } from '../types';
|
|
3
|
-
import { BaseFlavor } from './
|
|
3
|
+
import { BaseFlavor } from './flavor';
|
|
4
4
|
export declare class BaseVerifiableCredential {
|
|
5
5
|
protected client: ApiClient;
|
|
6
6
|
descriptor: CredentialDescriptor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseVerifiableCredential.d.ts","sourceRoot":"","sources":["../../../src/documents/credential/baseVerifiableCredential.ts"],"names":[],"mappings":";
|
|
1
|
+
{"version":3,"file":"baseVerifiableCredential.d.ts","sourceRoot":"","sources":["../../../src/documents/credential/baseVerifiableCredential.ts"],"names":[],"mappings":";AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACxH,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAEtC,qBAAa,wBAAwB;IAI7B,SAAS,CAAC,MAAM,EAAE,SAAS;IACpB,UAAU,EAAE,oBAAoB;IACvC,SAAS,CAAC,IAAI,CAAC;IALnB,SAAS,CAAC,MAAM,aAAoB;gBAGtB,MAAM,EAAE,SAAS,EACpB,UAAU,EAAE,oBAAoB,EAC7B,IAAI,CAAC,oBAAgB;IAG7B,OAAO,IAAI,OAAO,CAAC,cAAc,CAAC;IAalC,WAAW,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAI1C,MAAM,IAAI,OAAO,CAAC,kBAAkB,CAAC;IAQrC,IAAI,CAAC,QAAQ,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAMhC"}
|
|
@@ -1,4 +1,27 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
19
|
+
if (mod && mod.__esModule) return mod;
|
|
20
|
+
var result = {};
|
|
21
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
22
|
+
__setModuleDefault(result, mod);
|
|
23
|
+
return result;
|
|
24
|
+
};
|
|
2
25
|
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
26
|
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
27
|
return new (P || (P = Promise))(function (resolve, reject) {
|
|
@@ -11,15 +34,14 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
|
|
|
11
34
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
35
|
exports.BaseVerifiableCredential = void 0;
|
|
13
36
|
const helpers_1 = require("../helpers");
|
|
14
|
-
const presentation_1 = require("../presentation");
|
|
15
37
|
const stream_1 = require("../utils/stream");
|
|
16
|
-
const
|
|
38
|
+
const flavor_1 = require("./flavor");
|
|
17
39
|
class BaseVerifiableCredential {
|
|
18
40
|
constructor(client, descriptor, blob) {
|
|
19
41
|
this.client = client;
|
|
20
42
|
this.descriptor = descriptor;
|
|
21
43
|
this.blob = blob;
|
|
22
|
-
this.flavor = new
|
|
44
|
+
this.flavor = new flavor_1.BaseFlavor();
|
|
23
45
|
}
|
|
24
46
|
getBlob() {
|
|
25
47
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -45,7 +67,8 @@ class BaseVerifiableCredential {
|
|
|
45
67
|
}
|
|
46
68
|
send(targetId, privateKeyId) {
|
|
47
69
|
return __awaiter(this, void 0, void 0, function* () {
|
|
48
|
-
const
|
|
70
|
+
const { VpDecorator } = yield Promise.resolve().then(() => __importStar(require('../presentation'))); // using dynamic import to break circular dependency
|
|
71
|
+
const vpDecorator = new VpDecorator(this.client);
|
|
49
72
|
const vpPresentation = yield vpDecorator.issue([this], privateKeyId);
|
|
50
73
|
return vpPresentation.send(targetId, privateKeyId);
|
|
51
74
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseVerifiableCredential.js","sourceRoot":"","sources":["../../../src/documents/credential/baseVerifiableCredential.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"baseVerifiableCredential.js","sourceRoot":"","sources":["../../../src/documents/credential/baseVerifiableCredential.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,wCAAoD;AACpD,4CAAyC;AAEzC,qCAAsC;AAEtC,MAAa,wBAAwB;IAGjC,YACc,MAAiB,EACpB,UAAgC,EAC7B,IAAqB;QAFrB,WAAM,GAAN,MAAM,CAAW;QACpB,eAAU,GAAV,UAAU,CAAsB;QAC7B,SAAI,GAAJ,IAAI,CAAiB;QALzB,WAAM,GAAG,IAAI,mBAAU,EAAE,CAAC;IAMjC,CAAC;IAEE,OAAO;;YACT,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE;gBACZ,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAC7D,IAAI,CAAC,UAAU,CAAC,EAAE,EAClB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAC3B,CAAC;gBAEF,IAAI,CAAC,IAAI,GAAG,MAAM,IAAA,eAAM,EAAC,QAAQ,CAAC,CAAC;aACtC;YAED,OAAO,IAAI,CAAC,IAAI,CAAC;QACrB,CAAC;KAAA;IAEK,WAAW;;YACb,OAAO,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QACzD,CAAC;KAAA;IAEK,MAAM;;YACR,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC;YAElF,OAAO;gBACH,QAAQ,EAAE,MAAM,CAAC,QAAQ,IAAI,KAAK;aACrC,CAAC;QACN,CAAC;KAAA;IAEK,IAAI,CAAC,QAAgB,EAAE,YAAoB;;YAC7C,MAAM,EAAE,WAAW,EAAE,GAAG,wDAAa,iBAAiB,GAAC,CAAC,CAAC,oDAAoD;YAE7G,MAAM,WAAW,GAAG,IAAI,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YACjD,MAAM,cAAc,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,YAAY,CAAC,CAAC;YAErE,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACvD,CAAC;KAAA;IAEK,MAAM;;YACR,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;gBAC/D,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;gBAC7B,cAAc,EAAE,IAAA,gCAAsB,EAAC,QAAQ,CAAC;aACnD,CAAC,CAAC;QACP,CAAC;KAAA;CACJ;AAjDD,4DAiDC","sourcesContent":["import { generateIdempotencyKey } from '../helpers';\nimport { buffer } from '../utils/stream';\nimport type { ApiClient, CredentialDescriptor, CredentialBlob, VerificationResult, CredentialMetadata } from '../types';\nimport { BaseFlavor } from './flavor';\n\nexport class BaseVerifiableCredential {\n protected flavor = new BaseFlavor();\n\n constructor(\n protected client: ApiClient,\n public descriptor: CredentialDescriptor,\n protected blob?: CredentialBlob,\n ) {}\n\n async getBlob(): Promise<CredentialBlob> {\n if (!this.blob) {\n const response = await this.client.credentials.credentialDownload(\n this.descriptor.id,\n this.descriptor.revision,\n );\n\n this.blob = await buffer(response);\n }\n\n return this.blob;\n }\n\n async getMetaData(): Promise<CredentialMetadata> {\n return this.flavor.getMetadata(await this.getBlob());\n }\n\n async verify(): Promise<VerificationResult> {\n const result = await this.client.credentials.credentialVerify(this.descriptor.id);\n\n return {\n verified: result.verified || false,\n };\n }\n\n async send(targetId: string, privateKeyId: string): Promise<void> {\n const { VpDecorator } = await import('../presentation'); // using dynamic import to break circular dependency\n\n const vpDecorator = new VpDecorator(this.client);\n const vpPresentation = await vpDecorator.issue([this], privateKeyId);\n\n return vpPresentation.send(targetId, privateKeyId);\n }\n\n async delete(): Promise<void> {\n await this.client.credentials.credentialDelete(this.descriptor.id, {\n ifMatch: this.descriptor.etag,\n idempotencyKey: generateIdempotencyKey('delete'),\n });\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { ApiClient, Claims, Ctor } from '../types';
|
|
2
|
-
import { CredentialFlavor } from './
|
|
2
|
+
import { CredentialFlavor } from './flavor';
|
|
3
3
|
export declare class CredentialDocument<T extends Claims> {
|
|
4
4
|
protected client: ApiClient;
|
|
5
5
|
protected flavor: CredentialFlavor<T>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/documents/credential/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAUxD,OAAO,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"document.d.ts","sourceRoot":"","sources":["../../../src/documents/credential/document.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,UAAU,CAAC;AAUxD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,qBAAa,kBAAkB,CAAC,CAAC,SAAS,MAAM;IAExC,SAAS,CAAC,MAAM,EAAE,SAAS;IAC3B,SAAS,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;gBAD3B,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAGzC,qGAAqG;IACrG,qBAAqB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC;IAgE7F,oGAAoG;IACpG,qBAAqB,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,CAAC;CA+DhG"}
|
|
@@ -4,7 +4,7 @@ exports.CredentialDocument = void 0;
|
|
|
4
4
|
const guards_1 = require("../guards");
|
|
5
5
|
const decorators_1 = require("../decorators");
|
|
6
6
|
const models_1 = require("../models");
|
|
7
|
-
const
|
|
7
|
+
const issued_1 = require("./issued");
|
|
8
8
|
class CredentialDocument {
|
|
9
9
|
constructor(client, flavor) {
|
|
10
10
|
this.client = client;
|
|
@@ -73,7 +73,7 @@ class CredentialDocument {
|
|
|
73
73
|
if (value instanceof models_1.LinkedCredential) {
|
|
74
74
|
return value.toJSON();
|
|
75
75
|
}
|
|
76
|
-
if (value instanceof
|
|
76
|
+
if (value instanceof issued_1.VerifiableCredential) {
|
|
77
77
|
return value.toLinkedCredential().toJSON();
|
|
78
78
|
}
|
|
79
79
|
if ((0, guards_1.isValueWithId)(value)) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/documents/credential/document.ts"],"names":[],"mappings":";;;AACA,sCAAoE;AACpE,8CAKuB;AACvB,sCAAuF;
|
|
1
|
+
{"version":3,"file":"document.js","sourceRoot":"","sources":["../../../src/documents/credential/document.ts"],"names":[],"mappings":"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","sourcesContent":["import type { ApiClient, Claims, Ctor } from '../types';\nimport { isLinkedEntityDescriptor, isValueWithId } from '../guards';\nimport {\n getClaimDataTypeMetadata,\n getClaimLinkedCredentialMetadata,\n getClaimLinkedFileMetadata,\n getTsDataTypeMetadata,\n} from '../decorators';\nimport { Rfc3339Date, LinkedCredential, LinkedFile, Rfc3339DateTime } from '../models';\n\nimport { CredentialFlavor } from './flavor';\nimport { VerifiableCredential } from './issued';\n\nexport class CredentialDocument<T extends Claims> {\n constructor(\n protected client: ApiClient,\n protected flavor: CredentialFlavor<T>,\n ) {}\n\n /** convertApiValuesToUdt maps and converts the API received claims values to the UDT claims model */\n convertApiValuesToUdt<K extends T | T[]>(model: Ctor<any>, input: K, propContext?: string): K {\n if (!(input instanceof Object)) return input;\n\n return new Proxy(input, {\n get: (target, prop, receiver) => {\n const value: any = Reflect.get(target, prop, receiver);\n\n if (typeof prop !== 'string' || value == null) return value;\n\n const modelProp = propContext ?? prop;\n\n if (isLinkedEntityDescriptor(value)) {\n const linkedModel = getClaimLinkedCredentialMetadata(model, modelProp);\n\n if (linkedModel) {\n return new LinkedCredential(this.client, linkedModel, value.id, value.digestMultibase);\n }\n\n const isLinkedFile = getClaimLinkedFileMetadata(model, modelProp);\n\n if (isLinkedFile) {\n return new LinkedFile(this.client, value.id, value.digestMultibase);\n }\n }\n\n const typeInfo = getTsDataTypeMetadata(model, modelProp);\n\n if (!typeInfo) {\n return value;\n }\n\n if (typeInfo === Array && Array.isArray(value)) {\n return this.convertApiValuesToUdt(model, value, prop);\n }\n\n const dataType = getClaimDataTypeMetadata(model, modelProp);\n\n if (dataType) {\n return this.convertApiValuesToUdt(dataType, value);\n }\n\n // date string must be deserialized to an JS object\n if (typeInfo === Date) {\n return new Date(value);\n }\n\n if (typeInfo === Rfc3339DateTime) {\n return new Rfc3339DateTime(value);\n }\n\n if (typeInfo === Rfc3339Date) {\n return new Rfc3339Date(value);\n }\n\n // Primitive values should be returned as-is\n if (Array.of<Ctor<any>>(String, Number, Boolean, Object).includes(typeInfo)) {\n return value;\n }\n\n return this.convertApiValuesToUdt(typeInfo, value);\n },\n });\n }\n\n /** convertUdtToApiValues maps and converts the user received claims values onto UDT claims model */\n convertUdtToApiValues<K extends T | T[]>(model: Ctor<any>, input: K, propContext?: string): K {\n if (!(input instanceof Object)) return input;\n\n return new Proxy(input, {\n get: (target, prop, receiver) => {\n const value: any = Reflect.get(target, prop, receiver);\n\n if (typeof prop !== 'string' || value == null) return value;\n\n const modelProp = propContext ?? prop;\n\n if (getClaimLinkedCredentialMetadata(model, modelProp)) {\n if (value instanceof LinkedCredential) {\n return value.toJSON();\n }\n\n if (value instanceof VerifiableCredential) {\n return value.toLinkedCredential().toJSON();\n }\n\n if (isValueWithId(value)) {\n return LinkedCredential.createLinkedEntityDescriptor(value.id, value.digestMultibase);\n }\n }\n\n if (getClaimLinkedFileMetadata(model, modelProp)) {\n if (value instanceof LinkedFile) {\n return value.toJSON();\n }\n\n if (isValueWithId(value)) {\n return LinkedFile.createLinkedEntityDescriptor(value.id, value.digestMultibase);\n }\n }\n\n const typeInfo = getTsDataTypeMetadata(model, modelProp);\n\n // if it is array\n if (typeInfo === Array && Array.isArray(value)) {\n return this.convertUdtToApiValues(model, value, prop);\n }\n\n //if it is nested struct\n if (\n typeInfo &&\n !Array.of<Ctor<any>>(\n String,\n Number,\n Date,\n Rfc3339DateTime,\n Rfc3339Date,\n Boolean,\n Object,\n Function,\n ).includes(typeInfo)\n ) {\n return this.convertUdtToApiValues(typeInfo, value);\n }\n\n return value;\n },\n });\n }\n}\n"]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Claims, Ctor, ReadClaims, UpdateClaims, UserUpdateClaims } from '../types';
|
|
2
|
-
import { CredentialDocument } from './
|
|
2
|
+
import { CredentialDocument } from './document';
|
|
3
3
|
export declare class TestCredentialDocument<T extends Claims> extends CredentialDocument<T> {
|
|
4
4
|
private model;
|
|
5
5
|
constructor(model: Ctor<T>);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.spec.d.ts","sourceRoot":"","sources":["../../../src/documents/credential/document.spec.ts"],"names":[],"mappings":"AASA,OAAO,EAAa,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG/F,OAAO,EAAE,kBAAkB,
|
|
1
|
+
{"version":3,"file":"document.spec.d.ts","sourceRoot":"","sources":["../../../src/documents/credential/document.spec.ts"],"names":[],"mappings":"AASA,OAAO,EAAa,MAAM,EAAE,IAAI,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG/F,OAAO,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AA+EhD,qBAAa,sBAAsB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,kBAAkB,CAAC,CAAC,CAAC;IACnE,OAAO,CAAC,KAAK;gBAAL,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC;IAIlC,0BAA0B,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;IAIlE,0BAA0B,CAAC,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC;CAGzE"}
|
|
@@ -21,7 +21,8 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
21
21
|
exports.TestCredentialDocument = void 0;
|
|
22
22
|
const decorators_1 = require("../decorators");
|
|
23
23
|
const models_1 = require("../models");
|
|
24
|
-
const
|
|
24
|
+
const document_1 = require("./document");
|
|
25
|
+
const flavor_1 = require("./flavor");
|
|
25
26
|
const NAMESPACE = 'https://docs.truvity.com/vocab';
|
|
26
27
|
let Foo = class Foo {
|
|
27
28
|
};
|
|
@@ -122,9 +123,9 @@ Baz = __decorate([
|
|
|
122
123
|
(0, decorators_1.VcContext)({ name: 'Baz', namespace: NAMESPACE })
|
|
123
124
|
], Baz);
|
|
124
125
|
const createDummyApiClient = () => ({});
|
|
125
|
-
class TestCredentialDocument extends
|
|
126
|
+
class TestCredentialDocument extends document_1.CredentialDocument {
|
|
126
127
|
constructor(model) {
|
|
127
|
-
super(createDummyApiClient(), new
|
|
128
|
+
super(createDummyApiClient(), new flavor_1.CredentialFlavor(model));
|
|
128
129
|
this.model = model;
|
|
129
130
|
}
|
|
130
131
|
getConvertedApiValuesToUdt(claims) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"document.spec.js","sourceRoot":"","sources":["../../../src/documents/credential/document.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n VcContext,\n VcStringEnumClaim,\n VcLinkedCredentialClaim,\n VcLinkedFileClaim,\n VcNotEmptyClaim,\n VcArrayClaim,\n VcClaim,\n} from '../decorators';\nimport { ApiClient, Claims, Ctor, ReadClaims, UpdateClaims, UserUpdateClaims } from '../types';\nimport { LinkedCredential, LinkedFile, Rfc3339Date, Rfc3339DateTime } from '../models';\n\nimport { CredentialDocument, CredentialFlavor } from './index';\n\nconst NAMESPACE = 'https://docs.truvity.com/vocab';\n@VcContext({ name: 'Foo', namespace: NAMESPACE })\nclass Foo {\n @VcNotEmptyClaim\n foo!: string;\n}\n\n@VcContext({ name: 'Bar', namespace: NAMESPACE })\nclass Bar {\n @VcNotEmptyClaim\n bar!: string;\n}\n\n@VcContext({ name: 'NestedStruct', namespace: NAMESPACE })\nclass NestedStruct {\n @VcLinkedCredentialClaim(Foo)\n linkedProp?: LinkedCredential<Foo>;\n}\n\n@VcContext({ name: 'Baz', namespace: NAMESPACE })\nclass Baz {\n @VcLinkedCredentialClaim(Foo)\n field1?: LinkedCredential<Foo>;\n\n @VcLinkedFileClaim\n @VcNotEmptyClaim\n field2!: LinkedFile;\n\n @VcNotEmptyClaim\n field3!: Bar;\n\n @VcStringEnumClaim([\n { value: 'option1', title: 'Option 1' },\n { value: 'option2', title: 'Option 2' },\n ])\n @VcNotEmptyClaim\n field4!: 'option1' | 'option2';\n\n @VcLinkedCredentialClaim(Foo)\n @VcNotEmptyClaim\n field5!: LinkedCredential<Foo>[];\n\n @VcNotEmptyClaim\n field6!: NestedStruct;\n\n @VcNotEmptyClaim\n field7!: Rfc3339DateTime;\n\n @VcNotEmptyClaim\n field8!: Rfc3339Date;\n\n @VcArrayClaim(String)\n field11_1?: string[];\n\n @VcArrayClaim(String)\n @VcClaim\n field11_2?: string[];\n\n @VcClaim\n @VcArrayClaim(String)\n field11_3?: string[];\n\n @VcArrayClaim(Bar)\n field12_1?: Bar[];\n\n @VcArrayClaim(Bar)\n @VcClaim\n field12_2?: Bar[];\n\n @VcClaim\n @VcArrayClaim(Bar)\n field12_3?: Bar[];\n}\n\nconst createDummyApiClient = () => ({}) as ApiClient;\n\nexport class TestCredentialDocument<T extends Claims> extends CredentialDocument<T> {\n constructor(private model: Ctor<T>) {\n super(createDummyApiClient(), new CredentialFlavor(model));\n }\n\n getConvertedApiValuesToUdt(claims: UpdateClaims<T>): ReadClaims<T> {\n return this.convertApiValuesToUdt(this.model, claims as T);\n }\n\n getConvertedUdtToApiValues(claims: UserUpdateClaims<T>): ReadClaims<T> {\n return this.convertUdtToApiValues(this.model, claims as T);\n }\n}\n\ndescribe('CredentialDocument', () => {\n it('should enhance linkable fields with corresponding class instances', async () => {\n const document = new TestCredentialDocument(Baz);\n const apiReceivedClaims: UpdateClaims<Baz> = {\n field1: {\n id: 'urn:credential:111',\n type: 'LinkedCredential',\n digestMultibase: 'digestMultibase',\n },\n field2: {\n id: 'urn:file:222',\n type: 'LinkedFile',\n digestMultibase: 'digestMultibase',\n },\n field3: {\n bar: '333',\n },\n field4: 'option2',\n field5: [{ id: 'urn:credential:111', type: 'LinkedCredential' }],\n field6: {\n linkedProp: {\n id: 'urn:credential:111',\n type: 'LinkedCredential',\n digestMultibase: 'digestMultibase',\n },\n },\n field7: new Rfc3339DateTime(),\n field8: new Rfc3339Date(),\n field11_1: ['field11_1_value0'],\n field11_2: ['field11_2_value0'],\n field11_3: ['field11_3_value0'],\n field12_1: [{ bar: 'field12_1_value0' }],\n field12_2: [{ bar: 'field12_2_value0' }],\n field12_3: [{ bar: 'field12_3_value0' }],\n };\n const enhancedClaims = document.getConvertedApiValuesToUdt(apiReceivedClaims);\n\n expect(enhancedClaims.field1).toBeInstanceOf(LinkedCredential);\n expect(enhancedClaims.field1?.id).toBe('urn:credential:111');\n expect(enhancedClaims.field1?.type).toBe('LinkedCredential');\n expect(enhancedClaims.field1?.digestMultibase).toBe('digestMultibase');\n\n expect(enhancedClaims.field2).toBeInstanceOf(LinkedFile);\n expect(enhancedClaims.field2.id).toBe('urn:file:222');\n expect(enhancedClaims.field2.type).toBe('LinkedFile');\n expect(enhancedClaims.field2.digestMultibase).toBe('digestMultibase');\n\n // Non-linkable fields should be resolved as-is\n expect(enhancedClaims.field3).toEqual({\n bar: '333',\n });\n\n expect(enhancedClaims.field4).toEqual('option2');\n\n expect(enhancedClaims.field5[0]).toBeInstanceOf(LinkedCredential);\n\n expect(enhancedClaims.field6.linkedProp).toBeInstanceOf(LinkedCredential);\n expect(enhancedClaims.field6.linkedProp?.id).toBe('urn:credential:111');\n expect(enhancedClaims.field6.linkedProp?.type).toBe('LinkedCredential');\n expect(enhancedClaims.field6.linkedProp?.digestMultibase).toBe('digestMultibase');\n\n expect(enhancedClaims.field7).toBeInstanceOf(Rfc3339DateTime);\n expect(enhancedClaims.field8).toBeInstanceOf(Rfc3339Date);\n\n expect(enhancedClaims.field11_1).toEqual(['field11_1_value0']);\n expect(enhancedClaims.field11_2).toEqual(['field11_2_value0']);\n expect(enhancedClaims.field11_3).toEqual(['field11_3_value0']);\n\n expect(enhancedClaims.field12_1).toEqual([{ bar: 'field12_1_value0' }]);\n expect(enhancedClaims.field12_2).toEqual([{ bar: 'field12_2_value0' }]);\n expect(enhancedClaims.field12_3).toEqual([{ bar: 'field12_3_value0' }]);\n });\n\n it('should properly serialize linked entities', async () => {\n const document = new TestCredentialDocument(Baz);\n const userSentClaims: UserUpdateClaims<Baz> = {\n field1: {\n id: '111',\n digestMultibase: 'digestMultibase',\n },\n field2: {\n id: '222',\n },\n field5: [\n {\n id: '111',\n },\n ],\n field6: {\n linkedProp: {\n id: '111',\n },\n },\n field7: new Rfc3339DateTime(),\n field8: new Rfc3339Date(),\n field11_1: ['field11_1_value0'],\n field11_2: ['field11_2_value0'],\n field11_3: ['field11_3_value0'],\n field12_1: [{ bar: 'field12_1_value0' }],\n field12_2: [{ bar: 'field12_2_value0' }],\n field12_3: [{ bar: 'field12_3_value0' }],\n };\n const enhancedClaims = document.getConvertedUdtToApiValues(userSentClaims);\n\n expect(enhancedClaims.field1?.type).toBe('LinkedCredential');\n expect(enhancedClaims.field1?.digestMultibase).toBe('digestMultibase');\n\n expect(enhancedClaims.field2.type).toBe('LinkedFile');\n\n expect(enhancedClaims.field5[0].type).toBe('LinkedCredential');\n\n expect(enhancedClaims.field6.linkedProp?.type).toBe('LinkedCredential');\n\n expect(enhancedClaims.field7).toBeInstanceOf(Rfc3339DateTime);\n expect(enhancedClaims.field8).toBeInstanceOf(Rfc3339Date);\n\n expect(enhancedClaims.field11_1).toEqual(['field11_1_value0']);\n expect(enhancedClaims.field11_2).toEqual(['field11_2_value0']);\n expect(enhancedClaims.field11_3).toEqual(['field11_3_value0']);\n\n expect(enhancedClaims.field12_1).toEqual([{ bar: 'field12_1_value0' }]);\n expect(enhancedClaims.field12_2).toEqual([{ bar: 'field12_2_value0' }]);\n expect(enhancedClaims.field12_3).toEqual([{ bar: 'field12_3_value0' }]);\n });\n});\n"]}
|
|
1
|
+
{"version":3,"file":"document.spec.js","sourceRoot":"","sources":["../../../src/documents/credential/document.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n VcContext,\n VcStringEnumClaim,\n VcLinkedCredentialClaim,\n VcLinkedFileClaim,\n VcNotEmptyClaim,\n VcArrayClaim,\n VcClaim,\n} from '../decorators';\nimport { ApiClient, Claims, Ctor, ReadClaims, UpdateClaims, UserUpdateClaims } from '../types';\nimport { LinkedCredential, LinkedFile, Rfc3339Date, Rfc3339DateTime } from '../models';\n\nimport { CredentialDocument } from './document';\nimport { CredentialFlavor } from './flavor';\n\nconst NAMESPACE = 'https://docs.truvity.com/vocab';\n@VcContext({ name: 'Foo', namespace: NAMESPACE })\nclass Foo {\n @VcNotEmptyClaim\n foo!: string;\n}\n\n@VcContext({ name: 'Bar', namespace: NAMESPACE })\nclass Bar {\n @VcNotEmptyClaim\n bar!: string;\n}\n\n@VcContext({ name: 'NestedStruct', namespace: NAMESPACE })\nclass NestedStruct {\n @VcLinkedCredentialClaim(Foo)\n linkedProp?: LinkedCredential<Foo>;\n}\n\n@VcContext({ name: 'Baz', namespace: NAMESPACE })\nclass Baz {\n @VcLinkedCredentialClaim(Foo)\n field1?: LinkedCredential<Foo>;\n\n @VcLinkedFileClaim\n @VcNotEmptyClaim\n field2!: LinkedFile;\n\n @VcNotEmptyClaim\n field3!: Bar;\n\n @VcStringEnumClaim([\n { value: 'option1', title: 'Option 1' },\n { value: 'option2', title: 'Option 2' },\n ])\n @VcNotEmptyClaim\n field4!: 'option1' | 'option2';\n\n @VcLinkedCredentialClaim(Foo)\n @VcNotEmptyClaim\n field5!: LinkedCredential<Foo>[];\n\n @VcNotEmptyClaim\n field6!: NestedStruct;\n\n @VcNotEmptyClaim\n field7!: Rfc3339DateTime;\n\n @VcNotEmptyClaim\n field8!: Rfc3339Date;\n\n @VcArrayClaim(String)\n field11_1?: string[];\n\n @VcArrayClaim(String)\n @VcClaim\n field11_2?: string[];\n\n @VcClaim\n @VcArrayClaim(String)\n field11_3?: string[];\n\n @VcArrayClaim(Bar)\n field12_1?: Bar[];\n\n @VcArrayClaim(Bar)\n @VcClaim\n field12_2?: Bar[];\n\n @VcClaim\n @VcArrayClaim(Bar)\n field12_3?: Bar[];\n}\n\nconst createDummyApiClient = () => ({}) as ApiClient;\n\nexport class TestCredentialDocument<T extends Claims> extends CredentialDocument<T> {\n constructor(private model: Ctor<T>) {\n super(createDummyApiClient(), new CredentialFlavor(model));\n }\n\n getConvertedApiValuesToUdt(claims: UpdateClaims<T>): ReadClaims<T> {\n return this.convertApiValuesToUdt(this.model, claims as T);\n }\n\n getConvertedUdtToApiValues(claims: UserUpdateClaims<T>): ReadClaims<T> {\n return this.convertUdtToApiValues(this.model, claims as T);\n }\n}\n\ndescribe('CredentialDocument', () => {\n it('should enhance linkable fields with corresponding class instances', async () => {\n const document = new TestCredentialDocument(Baz);\n const apiReceivedClaims: UpdateClaims<Baz> = {\n field1: {\n id: 'urn:credential:111',\n type: 'LinkedCredential',\n digestMultibase: 'digestMultibase',\n },\n field2: {\n id: 'urn:file:222',\n type: 'LinkedFile',\n digestMultibase: 'digestMultibase',\n },\n field3: {\n bar: '333',\n },\n field4: 'option2',\n field5: [{ id: 'urn:credential:111', type: 'LinkedCredential' }],\n field6: {\n linkedProp: {\n id: 'urn:credential:111',\n type: 'LinkedCredential',\n digestMultibase: 'digestMultibase',\n },\n },\n field7: new Rfc3339DateTime(),\n field8: new Rfc3339Date(),\n field11_1: ['field11_1_value0'],\n field11_2: ['field11_2_value0'],\n field11_3: ['field11_3_value0'],\n field12_1: [{ bar: 'field12_1_value0' }],\n field12_2: [{ bar: 'field12_2_value0' }],\n field12_3: [{ bar: 'field12_3_value0' }],\n };\n const enhancedClaims = document.getConvertedApiValuesToUdt(apiReceivedClaims);\n\n expect(enhancedClaims.field1).toBeInstanceOf(LinkedCredential);\n expect(enhancedClaims.field1?.id).toBe('urn:credential:111');\n expect(enhancedClaims.field1?.type).toBe('LinkedCredential');\n expect(enhancedClaims.field1?.digestMultibase).toBe('digestMultibase');\n\n expect(enhancedClaims.field2).toBeInstanceOf(LinkedFile);\n expect(enhancedClaims.field2.id).toBe('urn:file:222');\n expect(enhancedClaims.field2.type).toBe('LinkedFile');\n expect(enhancedClaims.field2.digestMultibase).toBe('digestMultibase');\n\n // Non-linkable fields should be resolved as-is\n expect(enhancedClaims.field3).toEqual({\n bar: '333',\n });\n\n expect(enhancedClaims.field4).toEqual('option2');\n\n expect(enhancedClaims.field5[0]).toBeInstanceOf(LinkedCredential);\n\n expect(enhancedClaims.field6.linkedProp).toBeInstanceOf(LinkedCredential);\n expect(enhancedClaims.field6.linkedProp?.id).toBe('urn:credential:111');\n expect(enhancedClaims.field6.linkedProp?.type).toBe('LinkedCredential');\n expect(enhancedClaims.field6.linkedProp?.digestMultibase).toBe('digestMultibase');\n\n expect(enhancedClaims.field7).toBeInstanceOf(Rfc3339DateTime);\n expect(enhancedClaims.field8).toBeInstanceOf(Rfc3339Date);\n\n expect(enhancedClaims.field11_1).toEqual(['field11_1_value0']);\n expect(enhancedClaims.field11_2).toEqual(['field11_2_value0']);\n expect(enhancedClaims.field11_3).toEqual(['field11_3_value0']);\n\n expect(enhancedClaims.field12_1).toEqual([{ bar: 'field12_1_value0' }]);\n expect(enhancedClaims.field12_2).toEqual([{ bar: 'field12_2_value0' }]);\n expect(enhancedClaims.field12_3).toEqual([{ bar: 'field12_3_value0' }]);\n });\n\n it('should properly serialize linked entities', async () => {\n const document = new TestCredentialDocument(Baz);\n const userSentClaims: UserUpdateClaims<Baz> = {\n field1: {\n id: '111',\n digestMultibase: 'digestMultibase',\n },\n field2: {\n id: '222',\n },\n field5: [\n {\n id: '111',\n },\n ],\n field6: {\n linkedProp: {\n id: '111',\n },\n },\n field7: new Rfc3339DateTime(),\n field8: new Rfc3339Date(),\n field11_1: ['field11_1_value0'],\n field11_2: ['field11_2_value0'],\n field11_3: ['field11_3_value0'],\n field12_1: [{ bar: 'field12_1_value0' }],\n field12_2: [{ bar: 'field12_2_value0' }],\n field12_3: [{ bar: 'field12_3_value0' }],\n };\n const enhancedClaims = document.getConvertedUdtToApiValues(userSentClaims);\n\n expect(enhancedClaims.field1?.type).toBe('LinkedCredential');\n expect(enhancedClaims.field1?.digestMultibase).toBe('digestMultibase');\n\n expect(enhancedClaims.field2.type).toBe('LinkedFile');\n\n expect(enhancedClaims.field5[0].type).toBe('LinkedCredential');\n\n expect(enhancedClaims.field6.linkedProp?.type).toBe('LinkedCredential');\n\n expect(enhancedClaims.field7).toBeInstanceOf(Rfc3339DateTime);\n expect(enhancedClaims.field8).toBeInstanceOf(Rfc3339Date);\n\n expect(enhancedClaims.field11_1).toEqual(['field11_1_value0']);\n expect(enhancedClaims.field11_2).toEqual(['field11_2_value0']);\n expect(enhancedClaims.field11_3).toEqual(['field11_3_value0']);\n\n expect(enhancedClaims.field12_1).toEqual([{ bar: 'field12_1_value0' }]);\n expect(enhancedClaims.field12_2).toEqual([{ bar: 'field12_2_value0' }]);\n expect(enhancedClaims.field12_3).toEqual([{ bar: 'field12_3_value0' }]);\n });\n});\n"]}
|
|
@@ -2,7 +2,8 @@
|
|
|
2
2
|
import { Readable } from 'stream';
|
|
3
3
|
import type { ApiClient, Claims, DraftDataDescriptor, DraftDescriptor, DraftMetadata, ReadDraftClaims, UpdatePayloadWithClaims } from '../types';
|
|
4
4
|
import { DraftExport } from '../../api';
|
|
5
|
-
import { CredentialFlavor
|
|
5
|
+
import { CredentialFlavor } from './flavor';
|
|
6
|
+
import { VerifiableCredential } from './issued';
|
|
6
7
|
export declare class DraftCredential<T extends Claims> {
|
|
7
8
|
private client;
|
|
8
9
|
private flavor;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../../../src/documents/credential/draft.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EACR,SAAS,EACT,MAAM,EACN,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,eAAe,EACf,uBAAuB,EAC1B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../../../src/documents/credential/draft.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,KAAK,EACR,SAAS,EACT,MAAM,EACN,mBAAmB,EACnB,eAAe,EACf,aAAa,EACb,eAAe,EACf,uBAAuB,EAC1B,MAAM,UAAU,CAAC;AAElB,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAIxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC5C,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAEhD,qBAAa,eAAe,CAAC,CAAC,SAAS,MAAM;IAIrC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,SAAS;IACV,UAAU,EAAE,eAAe;IANtC,OAAO,CAAC,kBAAkB,CAAoD;gBAGlE,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAC3B,SAAS,EAAE,mBAAmB,EAC/B,UAAU,EAAE,eAAe;IAGhC,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAMxC,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IASrC,MAAM,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;IAmBxE,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC,CAAC,CAAC;IAkB7D,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,QAAQ,CAAC;CAGvD"}
|
|
@@ -12,14 +12,15 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
12
12
|
exports.DraftCredential = void 0;
|
|
13
13
|
const helpers_1 = require("../helpers");
|
|
14
14
|
const converters_1 = require("../utils/converters");
|
|
15
|
-
const
|
|
15
|
+
const document_1 = require("./document");
|
|
16
|
+
const issued_1 = require("./issued");
|
|
16
17
|
class DraftCredential {
|
|
17
18
|
constructor(client, flavor, draftData, descriptor) {
|
|
18
19
|
this.client = client;
|
|
19
20
|
this.flavor = flavor;
|
|
20
21
|
this.draftData = draftData;
|
|
21
22
|
this.descriptor = descriptor;
|
|
22
|
-
this.credentialDocument = new
|
|
23
|
+
this.credentialDocument = new document_1.CredentialDocument(this.client, this.flavor);
|
|
23
24
|
}
|
|
24
25
|
getClaims() {
|
|
25
26
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -69,7 +70,7 @@ class DraftCredential {
|
|
|
69
70
|
const { id, etag, revision, data } = yield this.client.drafts.draftIssue(this.descriptor.id, this.descriptor.revision, {
|
|
70
71
|
keyId: privateKeyId,
|
|
71
72
|
});
|
|
72
|
-
return new
|
|
73
|
+
return new issued_1.VerifiableCredential(this.client, this.flavor, {
|
|
73
74
|
id: id,
|
|
74
75
|
etag: etag,
|
|
75
76
|
revision: revision,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../../../src/documents/credential/draft.ts"],"names":[],"mappings":";;;;;;;;;;;;AAaA,wCAAoD;AACpD,oDAAkE;AAClE,
|
|
1
|
+
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../../../src/documents/credential/draft.ts"],"names":[],"mappings":"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","sourcesContent":["import { Readable } from 'stream';\n\nimport type {\n ApiClient,\n Claims,\n DraftDataDescriptor,\n DraftDescriptor,\n DraftMetadata,\n ReadDraftClaims,\n UpdatePayloadWithClaims,\n} from '../types';\n\nimport { DraftExport } from '../../api';\nimport { generateIdempotencyKey } from '../helpers';\nimport { draftMetadataToApiDraftMeta } from '../utils/converters';\nimport { CredentialDocument } from './document';\nimport { CredentialFlavor } from './flavor';\nimport { VerifiableCredential } from './issued';\n\nexport class DraftCredential<T extends Claims> {\n private credentialDocument = new CredentialDocument(this.client, this.flavor);\n\n constructor(\n private client: ApiClient,\n private flavor: CredentialFlavor<T>,\n private draftData: DraftDataDescriptor,\n public descriptor: DraftDescriptor,\n ) {}\n\n async getClaims(): Promise<ReadDraftClaims<T>> {\n const claims = this.draftData.values || {};\n\n return this.credentialDocument.convertApiValuesToUdt(this.flavor.claimsModel, claims as T);\n }\n\n async getMetaData(): Promise<DraftMetadata> {\n const { subject, validUntil } = this.draftData.meta || {};\n\n return {\n subject,\n expirationDate: validUntil,\n };\n }\n\n async update(request: UpdatePayloadWithClaims<T>): Promise<DraftCredential<T>> {\n const { id, etag, revision, data } = await this.client.drafts.draftUpdate(this.descriptor.id, {\n ifMatch: this.descriptor.etag,\n idempotencyKey: generateIdempotencyKey('update'),\n body: {\n data: {\n values: request.claims\n ? this.credentialDocument.convertUdtToApiValues(this.flavor.claimsModel, request.claims as T)\n : undefined,\n meta: draftMetadataToApiDraftMeta(request.metadata),\n },\n annotations: request.annotations,\n labels: request.labels,\n },\n });\n\n return new DraftCredential(this.client, this.flavor, data, { id, etag, revision });\n }\n\n async delete(): Promise<void> {\n await this.client.drafts.draftDelete(this.descriptor.id, {\n ifMatch: this.descriptor.etag,\n idempotencyKey: generateIdempotencyKey('delete'),\n });\n }\n\n async issue(privateKeyId: string): Promise<VerifiableCredential<T>> {\n const { id, etag, revision, data } = await this.client.drafts.draftIssue(\n this.descriptor.id,\n this.descriptor.revision,\n {\n keyId: privateKeyId,\n },\n );\n\n return new VerifiableCredential(this.client, this.flavor, {\n id: id,\n etag: etag,\n revision: revision,\n data: {\n multihash: data.multihash ?? undefined,\n },\n });\n }\n async export(params: DraftExport): Promise<Readable> {\n return this.client.drafts.draftExport(this.descriptor.id, this.descriptor.revision, params);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flavor.d.ts","sourceRoot":"","sources":["../../../src/documents/credential/flavor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEjF,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAIvD,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;EAetB,CAAC;AAEH,aAAK,kBAAkB,GAAG,iBAAiB,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEvE,qBAAa,UAAU;;IAGnB,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc;IAInD,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,kBAAkB;IAUzD,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"flavor.d.ts","sourceRoot":"","sources":["../../../src/documents/credential/flavor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAEjF,OAAO,KAAK,IAAI,MAAM,YAAY,CAAC;AACnC,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAIvD,QAAA,MAAM,kBAAkB;;;;;;;;;;;;;EAetB,CAAC;AAEH,aAAK,kBAAkB,GAAG,iBAAiB,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAEvE,qBAAa,UAAU;;IAGnB,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc;IAInD,SAAS,CAAC,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,kBAAkB;IAUzD,WAAW,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,CAAC;CAYvE;AAED,qBAAa,gBAAgB,CAAC,CAAC,SAAS,MAAM,CAAE,SAAQ,UAAU;aAClC,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;gBAApB,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAIhD,OAAO,CAAC,cAAc;IAKhB,SAAS,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC,CAAC,CAAC;IAS3C,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;CASzC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flavor.js","sourceRoot":"","sources":["../../../src/documents/credential/flavor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAAyD;AACzD,iDAAmC;AAGnC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEhD,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACjD,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAC/B,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC,CACpF;IACD,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IAC/B,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IAC1D,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9C,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IACnC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;IACvC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACpD,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACzC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1C,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/C,CAAC;IACF,KAAK,EAAE,SAAS;CACnB,CAAC,CAAC;AAIH,MAAa,UAAU;IACnB,gBAAe,CAAC;IAEN,UAAU,CAAC,KAAa;QAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAES,UAAU,CAAC,KAAqB;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhD,OAAO,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE;YACzC,sBAAsB,EAAE,aAAa;YACrC,6BAA6B,EAAE,IAAI;YACnC,2BAA2B,EAAE,IAAI;SACpC,CAAC,CAAC;IACP,CAAC;IAEK,WAAW,CAAC,IAAoB;;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEzC,OAAO;gBACH,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,YAAY,EAAE,UAAU,CAAC,YAAY;gBACrC,OAAO,EAAE,UAAU,CAAC,iBAAiB,CAAC,EAAE;gBACxC,cAAc,EAAE,UAAU,CAAC,cAAc;
|
|
1
|
+
{"version":3,"file":"flavor.js","sourceRoot":"","sources":["../../../src/documents/credential/flavor.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AACA,8CAAyD;AACzD,iDAAmC;AAGnC,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AAEhD,MAAM,kBAAkB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;IACjD,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAC/B,IAAI,CAAC,aAAa,CAAC,oBAAoB,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,EAAE,SAAS,CAAC,CAAC,CACpF;IACD,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IAC/B,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC;IAC1D,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;IAC9C,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE;IACnC,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE;IACvC,cAAc,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,QAAQ,EAAE;IACpD,iBAAiB,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC;QACzC,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;QAC1C,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,CAAC,QAAQ,EAAE;KAC/C,CAAC;IACF,KAAK,EAAE,SAAS;CACnB,CAAC,CAAC;AAIH,MAAa,UAAU;IACnB,gBAAe,CAAC;IAEN,UAAU,CAAC,KAAa;QAC9B,OAAO,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,EAAE,MAAM,CAAC,CAAC;IACtD,CAAC;IAES,UAAU,CAAC,KAAqB;QACtC,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;QAEhD,OAAO,kBAAkB,CAAC,YAAY,CAAC,IAAI,EAAE;YACzC,sBAAsB,EAAE,aAAa;YACrC,6BAA6B,EAAE,IAAI;YACnC,2BAA2B,EAAE,IAAI;SACpC,CAAC,CAAC;IACP,CAAC;IAEK,WAAW,CAAC,IAAoB;;YAClC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEzC,OAAO;gBACH,EAAE,EAAE,UAAU,CAAC,EAAE;gBACjB,MAAM,EAAE,UAAU,CAAC,MAAM;gBACzB,YAAY,EAAE,UAAU,CAAC,YAAY;gBACrC,OAAO,EAAE,UAAU,CAAC,iBAAiB,CAAC,EAAE;gBACxC,cAAc,EAAE,UAAU,CAAC,cAAc;gBACzC,MAAM,EAAE,UAAU,CAAC,MAAM;aAC5B,CAAC;QACN,CAAC;KAAA;CACJ;AA7BD,gCA6BC;AAED,MAAa,gBAAmC,SAAQ,UAAU;IAC9D,YAA4B,WAAoB;QAC5C,KAAK,EAAE,CAAC;QADgB,gBAAW,GAAX,WAAW,CAAS;IAEhD,CAAC;IAEO,cAAc,CAAC,IAAY;QAC/B,sEAAsE;QACtE,OAAO,kBAAkB,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;IAEK,SAAS,CAAC,IAAoB;;YAChC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;YAEzC,MAAM,KAA2C,UAAU,CAAC,iBAAiB,EAAvE,EAAE,EAAE,EAAE,IAAI,OAA6D,EAAxD,uBAAuB,cAAtC,cAAwC,CAA+B,CAAC;YAE9E,0CAA0C;YAC1C,OAAO,uBAA4B,CAAC;QACxC,CAAC;KAAA;IAEK,aAAa;;YACf,MAAM,WAAW,GAAG,IAAA,qCAAwB,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAE/D,IAAI,CAAC,WAAW,EAAE;gBACd,MAAM,IAAI,KAAK,CAAC,sFAAsF,CAAC,CAAC;aAC3G;YAED,OAAO,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;QACjD,CAAC;KAAA;CACJ;AA5BD,4CA4BC","sourcesContent":["import type { Claims, Ctor, CredentialBlob, CredentialMetadata } from '../types';\nimport { getContextJsonLdMetadata } from '../decorators';\nimport * as core from '../../core';\nimport { inferParsedObject } from '../../core/schemas';\n\nconst anyObject = core.serialization.object({});\n\nconst vcJsonLdFernSchema = core.serialization.object({\n '@context': core.serialization.list(\n core.serialization.undiscriminatedUnion([core.serialization.string(), anyObject]),\n ),\n id: core.serialization.string(),\n type: core.serialization.list(core.serialization.string()),\n holder: core.serialization.string().optional(),\n issuer: core.serialization.string(),\n issuanceDate: core.serialization.date(),\n expirationDate: core.serialization.date().optional(),\n credentialSubject: core.serialization.object({\n id: core.serialization.string().optional(),\n type: core.serialization.string().optional(),\n }),\n proof: anyObject,\n});\n\ntype VcJsonLdFernSchema = inferParsedObject<typeof vcJsonLdFernSchema>;\n\nexport class BaseFlavor {\n constructor() {}\n\n protected jsonToBlob(input: object): CredentialBlob {\n return Buffer.from(JSON.stringify(input), 'utf8');\n }\n\n protected blobToJson(input: CredentialBlob): VcJsonLdFernSchema {\n const json = JSON.parse(input.toString('utf8'));\n\n return vcJsonLdFernSchema.parseOrThrow(json, {\n unrecognizedObjectKeys: 'passthrough',\n allowUnrecognizedUnionMembers: true,\n allowUnrecognizedEnumValues: true,\n });\n }\n\n async getMetadata(blob: CredentialBlob): Promise<CredentialMetadata> {\n const credential = this.blobToJson(blob);\n\n return {\n id: credential.id,\n issuer: credential.issuer,\n issuanceDate: credential.issuanceDate,\n subject: credential.credentialSubject.id,\n expirationDate: credential.expirationDate,\n holder: credential.holder,\n };\n }\n}\n\nexport class CredentialFlavor<T extends Claims> extends BaseFlavor {\n constructor(public readonly claimsModel: Ctor<T>) {\n super();\n }\n\n private escapeTermName(name: string): string {\n // The term's names in JSON-LD have constraints on allowed characters.\n return encodeURIComponent(name);\n }\n\n async getClaims(blob: CredentialBlob): Promise<T> {\n const credential = this.blobToJson(blob);\n\n const { id, type, ...parsedCredentialSubject } = credential.credentialSubject;\n\n // TODO: implement proper input validation\n return parsedCredentialSubject as T;\n }\n\n async getClaimsType(): Promise<string> {\n const contextInfo = getContextJsonLdMetadata(this.claimsModel);\n\n if (!contextInfo) {\n throw new Error(`Can't resolve claims' \"type\". Make sure you defined it with the @VcContext decorator`);\n }\n\n return this.escapeTermName(contextInfo.name);\n }\n}\n"]}
|
|
@@ -31,7 +31,7 @@ var __rest = (this && this.__rest) || function (s, e) {
|
|
|
31
31
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
32
32
|
const models_1 = require("../models");
|
|
33
33
|
const decorators_1 = require("../decorators");
|
|
34
|
-
const
|
|
34
|
+
const flavor_1 = require("./flavor");
|
|
35
35
|
const NAMESPACE = 'https://docs.truvity.com/vocab';
|
|
36
36
|
let NestedStruct = class NestedStruct {
|
|
37
37
|
};
|
|
@@ -84,6 +84,7 @@ const testBlobJson = {
|
|
|
84
84
|
bar: 'bar',
|
|
85
85
|
baz: 'baz',
|
|
86
86
|
},
|
|
87
|
+
holder: 'test-holder',
|
|
87
88
|
issuer: 'https://example.edu/issuers/565049',
|
|
88
89
|
issuanceDate: '2024-07-31T16:46:39Z',
|
|
89
90
|
proof: {
|
|
@@ -98,13 +99,13 @@ const testBlobJson = {
|
|
|
98
99
|
const testBlob = jsonToBlob(testBlobJson);
|
|
99
100
|
describe('CredentialFlavor', () => {
|
|
100
101
|
it('should return claims from blob', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
101
|
-
const flavor = new
|
|
102
|
+
const flavor = new flavor_1.CredentialFlavor(TestCredentialSubject);
|
|
102
103
|
const claims = yield flavor.getClaims(testBlob);
|
|
103
104
|
const _a = testBlobJson.credentialSubject, { id, type } = _a, testClaims = __rest(_a, ["id", "type"]);
|
|
104
105
|
expect(claims).toEqual(testClaims);
|
|
105
106
|
}));
|
|
106
107
|
it('should return metadata from blob', () => __awaiter(void 0, void 0, void 0, function* () {
|
|
107
|
-
const flavor = new
|
|
108
|
+
const flavor = new flavor_1.CredentialFlavor(TestCredentialSubject);
|
|
108
109
|
const metadata = yield flavor.getMetadata(testBlob);
|
|
109
110
|
expect(metadata).toEqual({
|
|
110
111
|
subject: testBlobJson.credentialSubject.id,
|
|
@@ -112,6 +113,7 @@ describe('CredentialFlavor', () => {
|
|
|
112
113
|
id: testBlobJson.id,
|
|
113
114
|
issuanceDate: new Date(testBlobJson.issuanceDate),
|
|
114
115
|
issuer: testBlobJson.issuer,
|
|
116
|
+
holder: testBlobJson.holder,
|
|
115
117
|
});
|
|
116
118
|
}));
|
|
117
119
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"flavor.spec.js","sourceRoot":"","sources":["../../../src/documents/credential/flavor.spec.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,sCAAwC;AACxC,8CAA2D;AAE3D,
|
|
1
|
+
{"version":3,"file":"flavor.spec.js","sourceRoot":"","sources":["../../../src/documents/credential/flavor.spec.ts"],"names":[],"mappings":"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","sourcesContent":["import { Rfc3339Date } from '../models';\nimport { VcContext, VcNotEmptyClaim } from '../decorators';\n\nimport { CredentialFlavor } from './flavor';\n\nconst NAMESPACE = 'https://docs.truvity.com/vocab';\n\n@VcContext({ name: 'NestedStruct', namespace: NAMESPACE })\nclass NestedStruct {\n @VcNotEmptyClaim\n qux!: string;\n}\n\n@VcContext({ name: 'TestCredentialSubject', namespace: NAMESPACE })\nclass TestCredentialSubject {\n @VcNotEmptyClaim\n foo!: string;\n\n @VcNotEmptyClaim\n bar!: Rfc3339Date;\n\n @VcNotEmptyClaim\n buz!: NestedStruct;\n}\n\nconst jsonToBlob = (input: object): Buffer => Buffer.from(JSON.stringify(input), 'utf8');\n\nconst testBlobJson = {\n '@context': [\n 'https://www.w3.org/2018/credentials/v1',\n {\n Foo: {\n '@id': 'urn:example:Foo',\n '@context': {\n '@version': 1.1,\n '@protected': true,\n bar: 'urn:example:bar',\n baz: 'urn:example:baz',\n },\n },\n },\n 'https://w3id.org/security/data-integrity/v2',\n ],\n id: 'did:example:123',\n type: ['VerifiableCredential'],\n credentialSubject: {\n id: 'did:example:456',\n type: 'Foo',\n bar: 'bar',\n baz: 'baz',\n },\n holder: 'test-holder',\n issuer: 'https://example.edu/issuers/565049',\n issuanceDate: '2024-07-31T16:46:39Z',\n proof: {\n type: 'DataIntegrityProof',\n created: '2024-07-31T16:46:39Z',\n verificationMethod: 'https://example.edu/issuers/keys/1',\n cryptosuite: 'eddsa-rdfc-2022',\n proofPurpose: 'assertionMethod',\n proofValue: 'z2vZujGHjzGB89MWi9QempRZRDCHv4uxpuTnhdG3wVqZhy5EAmnwm6Um8wHox7JX5XrxkXixLB3j6Zdh3UqPxuHE6',\n },\n};\nconst testBlob = jsonToBlob(testBlobJson);\n\ndescribe('CredentialFlavor', () => {\n it('should return claims from blob', async () => {\n const flavor = new CredentialFlavor(TestCredentialSubject);\n const claims = await flavor.getClaims(testBlob);\n const { id, type, ...testClaims } = testBlobJson.credentialSubject;\n\n expect(claims).toEqual(testClaims);\n });\n\n it('should return metadata from blob', async () => {\n const flavor = new CredentialFlavor(TestCredentialSubject);\n const metadata = await flavor.getMetadata(testBlob);\n\n expect(metadata).toEqual({\n subject: testBlobJson.credentialSubject.id,\n expirationDate: undefined,\n id: testBlobJson.id,\n issuanceDate: new Date(testBlobJson.issuanceDate),\n issuer: testBlobJson.issuer,\n holder: testBlobJson.holder,\n });\n });\n});\n"]}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import type { ApiClient, Claims, CredentialDescriptor, CredentialBlob, ReadClaims } from '../types';
|
|
2
|
-
import { CredentialFlavor
|
|
2
|
+
import { CredentialFlavor } from './flavor';
|
|
3
|
+
import { BaseVerifiableCredential } from './baseVerifiableCredential';
|
|
3
4
|
import { LinkedCredential } from '../models';
|
|
4
5
|
export declare class VerifiableCredential<T extends Claims> extends BaseVerifiableCredential {
|
|
5
6
|
protected flavor: CredentialFlavor<T>;
|