@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.
Files changed (211) hide show
  1. package/api/resources/apiKeys/client/Client.d.ts +1 -0
  2. package/api/resources/apiKeys/client/Client.d.ts.map +1 -1
  3. package/api/resources/apiKeys/client/Client.js +16 -8
  4. package/api/resources/apiKeys/client/Client.js.map +1 -1
  5. package/api/resources/apiKeys/client/requests/ApiKeyCreateRequest.d.ts +8 -8
  6. package/api/resources/apiKeys/client/requests/ApiKeyCreateRequest.js.map +1 -1
  7. package/api/resources/apiKeys/client/requests/ApiKeyDeleteRequest.d.ts +8 -8
  8. package/api/resources/apiKeys/client/requests/ApiKeyDeleteRequest.js.map +1 -1
  9. package/api/resources/apiKeys/client/requests/ApiKeyRestoreRequest.d.ts +8 -8
  10. package/api/resources/apiKeys/client/requests/ApiKeyRestoreRequest.js.map +1 -1
  11. package/api/resources/apiKeys/client/requests/ApiKeyUpdateRequest.d.ts +8 -8
  12. package/api/resources/apiKeys/client/requests/ApiKeyUpdateRequest.js.map +1 -1
  13. package/api/resources/credentials/client/Client.d.ts +2 -0
  14. package/api/resources/credentials/client/Client.d.ts.map +1 -1
  15. package/api/resources/credentials/client/Client.js +26 -10
  16. package/api/resources/credentials/client/Client.js.map +1 -1
  17. package/api/resources/credentials/client/requests/CredentialDeleteRequest.d.ts +8 -8
  18. package/api/resources/credentials/client/requests/CredentialDeleteRequest.js.map +1 -1
  19. package/api/resources/credentials/client/requests/CredentialInput.d.ts +8 -8
  20. package/api/resources/credentials/client/requests/CredentialInput.js.map +1 -1
  21. package/api/resources/credentials/client/requests/CredentialRestoreRequest.d.ts +8 -8
  22. package/api/resources/credentials/client/requests/CredentialRestoreRequest.js.map +1 -1
  23. package/api/resources/credentials/client/requests/CredentialUploadRequest.d.ts +8 -8
  24. package/api/resources/credentials/client/requests/CredentialUploadRequest.js.map +1 -1
  25. package/api/resources/desk/client/Client.js +2 -2
  26. package/api/resources/desk/client/Client.js.map +1 -1
  27. package/api/resources/didcommMessages/client/Client.d.ts +3 -0
  28. package/api/resources/didcommMessages/client/Client.d.ts.map +1 -1
  29. package/api/resources/didcommMessages/client/Client.js +31 -7
  30. package/api/resources/didcommMessages/client/Client.js.map +1 -1
  31. package/api/resources/didcommMessages/client/requests/DidCommMessageSendInput.d.ts +8 -8
  32. package/api/resources/didcommMessages/client/requests/DidCommMessageSendInput.js.map +1 -1
  33. package/api/resources/didcommMessages/client/requests/DidcommMessageDeleteRequest.d.ts +8 -8
  34. package/api/resources/didcommMessages/client/requests/DidcommMessageDeleteRequest.js.map +1 -1
  35. package/api/resources/didcommMessages/client/requests/DidcommMessageRestoreRequest.d.ts +8 -8
  36. package/api/resources/didcommMessages/client/requests/DidcommMessageRestoreRequest.js.map +1 -1
  37. package/api/resources/dids/client/Client.js +1 -1
  38. package/api/resources/dids/client/Client.js.map +1 -1
  39. package/api/resources/drafts/client/Client.d.ts +2 -0
  40. package/api/resources/drafts/client/Client.d.ts.map +1 -1
  41. package/api/resources/drafts/client/Client.js +26 -10
  42. package/api/resources/drafts/client/Client.js.map +1 -1
  43. package/api/resources/drafts/client/requests/DraftCreateRequest.d.ts +8 -8
  44. package/api/resources/drafts/client/requests/DraftCreateRequest.js.map +1 -1
  45. package/api/resources/drafts/client/requests/DraftDeleteRequest.d.ts +8 -8
  46. package/api/resources/drafts/client/requests/DraftDeleteRequest.js.map +1 -1
  47. package/api/resources/drafts/client/requests/DraftRestoreRequest.d.ts +8 -8
  48. package/api/resources/drafts/client/requests/DraftRestoreRequest.js.map +1 -1
  49. package/api/resources/drafts/client/requests/DraftUpdateRequest.d.ts +8 -8
  50. package/api/resources/drafts/client/requests/DraftUpdateRequest.js.map +1 -1
  51. package/api/resources/files/client/Client.d.ts +2 -0
  52. package/api/resources/files/client/Client.d.ts.map +1 -1
  53. package/api/resources/files/client/Client.js +26 -10
  54. package/api/resources/files/client/Client.js.map +1 -1
  55. package/api/resources/files/client/requests/FileCreateRequest.d.ts +8 -8
  56. package/api/resources/files/client/requests/FileCreateRequest.js.map +1 -1
  57. package/api/resources/files/client/requests/FileDeleteRequest.d.ts +8 -8
  58. package/api/resources/files/client/requests/FileDeleteRequest.js.map +1 -1
  59. package/api/resources/files/client/requests/FileRestoreRequest.d.ts +8 -8
  60. package/api/resources/files/client/requests/FileRestoreRequest.js.map +1 -1
  61. package/api/resources/files/client/requests/FileUpdateRequest.d.ts +8 -8
  62. package/api/resources/files/client/requests/FileUpdateRequest.js.map +1 -1
  63. package/api/resources/files/client/requests/FileUploadRequest.d.ts +8 -8
  64. package/api/resources/files/client/requests/FileUploadRequest.js.map +1 -1
  65. package/api/resources/gdpr/client/Client.js +1 -1
  66. package/api/resources/gdpr/client/Client.js.map +1 -1
  67. package/api/resources/keys/client/Client.d.ts +4 -4
  68. package/api/resources/keys/client/Client.d.ts.map +1 -1
  69. package/api/resources/keys/client/Client.js +44 -16
  70. package/api/resources/keys/client/Client.js.map +1 -1
  71. package/api/resources/keys/client/requests/KeyDeleteRequest.d.ts +8 -8
  72. package/api/resources/keys/client/requests/KeyDeleteRequest.js.map +1 -1
  73. package/api/resources/keys/client/requests/KeyGenerateInput.d.ts +8 -8
  74. package/api/resources/keys/client/requests/KeyGenerateInput.js.map +1 -1
  75. package/api/resources/keys/client/requests/KeyImportSecretInput.d.ts +8 -8
  76. package/api/resources/keys/client/requests/KeyImportSecretInput.js.map +1 -1
  77. package/api/resources/keys/client/requests/KeyInput.d.ts +8 -8
  78. package/api/resources/keys/client/requests/KeyInput.js.map +1 -1
  79. package/api/resources/keys/client/requests/KeyRestoreRequest.d.ts +8 -8
  80. package/api/resources/keys/client/requests/KeyRestoreRequest.js.map +1 -1
  81. package/api/resources/presentations/client/Client.d.ts +3 -0
  82. package/api/resources/presentations/client/Client.d.ts.map +1 -1
  83. package/api/resources/presentations/client/Client.js +36 -12
  84. package/api/resources/presentations/client/Client.js.map +1 -1
  85. package/api/resources/presentations/client/requests/PresentationDeleteRequest.d.ts +8 -8
  86. package/api/resources/presentations/client/requests/PresentationDeleteRequest.js.map +1 -1
  87. package/api/resources/presentations/client/requests/PresentationInput.d.ts +8 -8
  88. package/api/resources/presentations/client/requests/PresentationInput.js.map +1 -1
  89. package/api/resources/presentations/client/requests/PresentationRestoreRequest.d.ts +8 -8
  90. package/api/resources/presentations/client/requests/PresentationRestoreRequest.js.map +1 -1
  91. package/api/resources/presentations/client/requests/PresentationUploadRequest.d.ts +8 -8
  92. package/api/resources/presentations/client/requests/PresentationUploadRequest.js.map +1 -1
  93. package/api/types/DraftSchema.d.ts +17 -16
  94. package/api/types/DraftSchema.d.ts.map +1 -1
  95. package/api/types/DraftSchema.js.map +1 -1
  96. package/api/types/EqualKeyTypeValue.d.ts +1 -2
  97. package/api/types/EqualKeyTypeValue.d.ts.map +1 -1
  98. package/api/types/EqualKeyTypeValue.js +0 -1
  99. package/api/types/EqualKeyTypeValue.js.map +1 -1
  100. package/api/types/InKeyTypeValuesItem.d.ts +6 -8
  101. package/api/types/InKeyTypeValuesItem.d.ts.map +1 -1
  102. package/api/types/InKeyTypeValuesItem.js +0 -1
  103. package/api/types/InKeyTypeValuesItem.js.map +1 -1
  104. package/api/types/KeyGenerate.d.ts +5 -6
  105. package/api/types/KeyGenerate.d.ts.map +1 -1
  106. package/api/types/KeyGenerate.js.map +1 -1
  107. package/api/types/KeyGenerateType.d.ts +6 -8
  108. package/api/types/KeyGenerateType.d.ts.map +1 -1
  109. package/api/types/KeyGenerateType.js +0 -1
  110. package/api/types/KeyGenerateType.js.map +1 -1
  111. package/api/types/KeyPublic.d.ts +5 -6
  112. package/api/types/KeyPublic.d.ts.map +1 -1
  113. package/api/types/KeyPublic.js.map +1 -1
  114. package/api/types/KeyPublicType.d.ts +6 -8
  115. package/api/types/KeyPublicType.d.ts.map +1 -1
  116. package/api/types/KeyPublicType.js +0 -1
  117. package/api/types/KeyPublicType.js.map +1 -1
  118. package/api/types/NotEqualKeyTypeValue.d.ts +1 -2
  119. package/api/types/NotEqualKeyTypeValue.d.ts.map +1 -1
  120. package/api/types/NotEqualKeyTypeValue.js +0 -1
  121. package/api/types/NotEqualKeyTypeValue.js.map +1 -1
  122. package/api/types/NotInKeyTypeValuesItem.d.ts +6 -8
  123. package/api/types/NotInKeyTypeValuesItem.d.ts.map +1 -1
  124. package/api/types/NotInKeyTypeValuesItem.js +0 -1
  125. package/api/types/NotInKeyTypeValuesItem.js.map +1 -1
  126. package/api/types/ProblemMethodNotAllowedAlive.d.ts +1 -1
  127. package/api/types/ProblemMethodNotAllowedAlive.js.map +1 -1
  128. package/api/types/ProblemMethodNotAllowedDeleted.d.ts +1 -1
  129. package/api/types/ProblemMethodNotAllowedDeleted.js.map +1 -1
  130. package/api/types/ProblemPreconditionFailedBlob.d.ts +1 -1
  131. package/api/types/ProblemPreconditionFailedBlob.js.map +1 -1
  132. package/api/types/ProblemResourceNotFound.d.ts +1 -1
  133. package/api/types/ProblemResourceNotFound.js.map +1 -1
  134. package/documents/credential/baseVerifiableCredential.d.ts +1 -1
  135. package/documents/credential/baseVerifiableCredential.d.ts.map +1 -1
  136. package/documents/credential/baseVerifiableCredential.js +27 -4
  137. package/documents/credential/baseVerifiableCredential.js.map +1 -1
  138. package/documents/credential/document.d.ts +1 -1
  139. package/documents/credential/document.d.ts.map +1 -1
  140. package/documents/credential/document.js +2 -2
  141. package/documents/credential/document.js.map +1 -1
  142. package/documents/credential/document.spec.d.ts +1 -1
  143. package/documents/credential/document.spec.d.ts.map +1 -1
  144. package/documents/credential/document.spec.js +4 -3
  145. package/documents/credential/document.spec.js.map +1 -1
  146. package/documents/credential/draft.d.ts +2 -1
  147. package/documents/credential/draft.d.ts.map +1 -1
  148. package/documents/credential/draft.js +4 -3
  149. package/documents/credential/draft.js.map +1 -1
  150. package/documents/credential/flavor.d.ts.map +1 -1
  151. package/documents/credential/flavor.js +1 -0
  152. package/documents/credential/flavor.js.map +1 -1
  153. package/documents/credential/flavor.spec.js +5 -3
  154. package/documents/credential/flavor.spec.js.map +1 -1
  155. package/documents/credential/issued.d.ts +2 -1
  156. package/documents/credential/issued.d.ts.map +1 -1
  157. package/documents/credential/issued.js +4 -3
  158. package/documents/credential/issued.js.map +1 -1
  159. package/documents/credential/unknown.d.ts +6 -1
  160. package/documents/credential/unknown.d.ts.map +1 -1
  161. package/documents/credential/unknown.js +10 -2
  162. package/documents/credential/unknown.js.map +1 -1
  163. package/documents/credential.d.ts +7 -1
  164. package/documents/credential.d.ts.map +1 -1
  165. package/documents/credential.js +19 -8
  166. package/documents/credential.js.map +1 -1
  167. package/documents/models.d.ts +1 -1
  168. package/documents/models.d.ts.map +1 -1
  169. package/documents/models.js +2 -25
  170. package/documents/models.js.map +1 -1
  171. package/documents/presentation/issued.d.ts +1 -1
  172. package/documents/presentation/issued.d.ts.map +1 -1
  173. package/documents/presentation/issued.js +2 -2
  174. package/documents/presentation/issued.js.map +1 -1
  175. package/documents/presentation.d.ts +7 -1
  176. package/documents/presentation.d.ts.map +1 -1
  177. package/documents/presentation.js +10 -2
  178. package/documents/presentation.js.map +1 -1
  179. package/documents/types.d.ts +1 -0
  180. package/documents/types.d.ts.map +1 -1
  181. package/documents/types.js.map +1 -1
  182. package/package.json +1 -1
  183. package/reference.md +0 -4
  184. package/serialization/types/EqualKeyTypeValue.d.ts +1 -1
  185. package/serialization/types/EqualKeyTypeValue.d.ts.map +1 -1
  186. package/serialization/types/EqualKeyTypeValue.js +1 -1
  187. package/serialization/types/EqualKeyTypeValue.js.map +1 -1
  188. package/serialization/types/InKeyTypeValuesItem.d.ts +1 -1
  189. package/serialization/types/InKeyTypeValuesItem.d.ts.map +1 -1
  190. package/serialization/types/InKeyTypeValuesItem.js +1 -1
  191. package/serialization/types/InKeyTypeValuesItem.js.map +1 -1
  192. package/serialization/types/KeyGenerateType.d.ts +1 -1
  193. package/serialization/types/KeyGenerateType.d.ts.map +1 -1
  194. package/serialization/types/KeyGenerateType.js +1 -1
  195. package/serialization/types/KeyGenerateType.js.map +1 -1
  196. package/serialization/types/KeyPublicType.d.ts +1 -1
  197. package/serialization/types/KeyPublicType.d.ts.map +1 -1
  198. package/serialization/types/KeyPublicType.js +1 -1
  199. package/serialization/types/KeyPublicType.js.map +1 -1
  200. package/serialization/types/NotEqualKeyTypeValue.d.ts +1 -1
  201. package/serialization/types/NotEqualKeyTypeValue.d.ts.map +1 -1
  202. package/serialization/types/NotEqualKeyTypeValue.js +1 -1
  203. package/serialization/types/NotEqualKeyTypeValue.js.map +1 -1
  204. package/serialization/types/NotInKeyTypeValuesItem.d.ts +1 -1
  205. package/serialization/types/NotInKeyTypeValuesItem.d.ts.map +1 -1
  206. package/serialization/types/NotInKeyTypeValuesItem.js +1 -1
  207. package/serialization/types/NotInKeyTypeValuesItem.js.map +1 -1
  208. package/documents/credential/index.d.ts +0 -7
  209. package/documents/credential/index.d.ts.map +0 -1
  210. package/documents/credential/index.js +0 -23
  211. package/documents/credential/index.js.map +0 -1
@@ -8,6 +8,5 @@ exports.NotInKeyTypeValuesItem = {
8
8
  Ed25519: 'ED25519',
9
9
  P256: 'P256',
10
10
  P384: 'P384',
11
- Secp256K1: 'SECP256K1',
12
11
  };
13
12
  //# sourceMappingURL=NotInKeyTypeValuesItem.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"NotInKeyTypeValuesItem.js","sourceRoot":"","sources":["../../../src/api/types/NotInKeyTypeValuesItem.ts"],"names":[],"mappings":";AAAA;;GAEG;;;AA0BU,QAAA,sBAAsB,GAAG;IAClC,OAAO,EAAE,SAAS;IAClB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,SAAS,EAAE,WAAW;CAChB,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 * | SECP256K1 | EC | secp256k1 | | secp256k1 | secp256k1 | ECC_SECG_P256K1 |\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' | 'SECP256K1';\n\nexport const NotInKeyTypeValuesItem = {\n Ed25519: 'ED25519',\n P256: 'P256',\n P384: 'P384',\n Secp256K1: 'SECP256K1',\n} as const;\n"]}
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"]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import * as Truvity from '../index';
5
5
  /**
6
- * Method Not Allowed problem schema.
6
+ * Method Not Allowed - Resource Alive. Problem schema.
7
7
  */
8
8
  export interface ProblemMethodNotAllowedAlive {
9
9
  actual: Truvity.Resource;
@@ -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 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
+ {"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"]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import * as Truvity from '../index';
5
5
  /**
6
- * Method Not Allowed problem schema.
6
+ * Method Not Allowed - Resource Deleted. Problem schema.
7
7
  */
8
8
  export interface ProblemMethodNotAllowedDeleted {
9
9
  actual: Truvity.Resource;
@@ -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 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
+ {"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"]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import * as Truvity from '../index';
5
5
  /**
6
- * Precondition Failed problem schema.
6
+ * Precondition Failed - Blob. Problem schema.
7
7
  */
8
8
  export interface ProblemPreconditionFailedBlob {
9
9
  /** This value should not change between occurrences of the error. */
@@ -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 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
+ {"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"]}
@@ -3,7 +3,7 @@
3
3
  */
4
4
  import * as Truvity from '../index';
5
5
  /**
6
- * Not Found - Resource. problem schema.
6
+ * Not Found - Resource. Problem schema.
7
7
  */
8
8
  export interface ProblemResourceNotFound {
9
9
  /** This value should not change between occurrences of the error. */
@@ -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. 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
+ {"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 './index';
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":";AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,cAAc,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AACxH,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAErC,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;IAO3D,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;CAMhC"}
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 index_1 = require("./index");
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 index_1.BaseFlavor();
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 vpDecorator = new presentation_1.VpDecorator(this.client);
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":";;;;;;;;;;;;AAAA,wCAAoD;AACpD,kDAA8C;AAC9C,4CAAyC;AAEzC,mCAAqC;AAErC,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,kBAAU,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,WAAW,GAAG,IAAI,0BAAW,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;AA/CD,4DA+CC","sourcesContent":["import { generateIdempotencyKey } from '../helpers';\nimport { VpDecorator } from '../presentation';\nimport { buffer } from '../utils/stream';\nimport type { ApiClient, CredentialDescriptor, CredentialBlob, VerificationResult, CredentialMetadata } from '../types';\nimport { BaseFlavor } from './index';\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 = 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
+ {"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 './index';
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,EAAwB,MAAM,SAAS,CAAC;AAEjE,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"}
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 index_1 = require("./index");
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 index_1.VerifiableCredential) {
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;AAEvF,mCAAiE;AAEjE,MAAa,kBAAkB;IAC3B,YACc,MAAiB,EACjB,MAA2B;QAD3B,WAAM,GAAN,MAAM,CAAW;QACjB,WAAM,GAAN,MAAM,CAAqB;IACtC,CAAC;IAEJ,qGAAqG;IACrG,qBAAqB,CAAoB,KAAgB,EAAE,KAAQ,EAAE,WAAoB;QACrF,IAAI,CAAC,CAAC,KAAK,YAAY,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7C,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;YACpB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC5B,MAAM,KAAK,GAAQ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAEvD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,IAAI,IAAI;oBAAE,OAAO,KAAK,CAAC;gBAE5D,MAAM,SAAS,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC;gBAEtC,IAAI,IAAA,iCAAwB,EAAC,KAAK,CAAC,EAAE;oBACjC,MAAM,WAAW,GAAG,IAAA,6CAAgC,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;oBAEvE,IAAI,WAAW,EAAE;wBACb,OAAO,IAAI,yBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,WAAW,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;qBAC1F;oBAED,MAAM,YAAY,GAAG,IAAA,uCAA0B,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;oBAElE,IAAI,YAAY,EAAE;wBACd,OAAO,IAAI,mBAAU,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;qBACvE;iBACJ;gBAED,MAAM,QAAQ,GAAG,IAAA,kCAAqB,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAEzD,IAAI,CAAC,QAAQ,EAAE;oBACX,OAAO,KAAK,CAAC;iBAChB;gBAED,IAAI,QAAQ,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC5C,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;iBACzD;gBAED,MAAM,QAAQ,GAAG,IAAA,qCAAwB,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAE5D,IAAI,QAAQ,EAAE;oBACV,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;iBACtD;gBAED,mDAAmD;gBACnD,IAAI,QAAQ,KAAK,IAAI,EAAE;oBACnB,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,CAAC;iBAC1B;gBAED,IAAI,QAAQ,KAAK,wBAAe,EAAE;oBAC9B,OAAO,IAAI,wBAAe,CAAC,KAAK,CAAC,CAAC;iBACrC;gBAED,IAAI,QAAQ,KAAK,oBAAW,EAAE;oBAC1B,OAAO,IAAI,oBAAW,CAAC,KAAK,CAAC,CAAC;iBACjC;gBAED,4CAA4C;gBAC5C,IAAI,KAAK,CAAC,EAAE,CAAY,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE;oBACzE,OAAO,KAAK,CAAC;iBAChB;gBAED,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YACvD,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;IAED,oGAAoG;IACpG,qBAAqB,CAAoB,KAAgB,EAAE,KAAQ,EAAE,WAAoB;QACrF,IAAI,CAAC,CAAC,KAAK,YAAY,MAAM,CAAC;YAAE,OAAO,KAAK,CAAC;QAE7C,OAAO,IAAI,KAAK,CAAC,KAAK,EAAE;YACpB,GAAG,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE;gBAC5B,MAAM,KAAK,GAAQ,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;gBAEvD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,KAAK,IAAI,IAAI;oBAAE,OAAO,KAAK,CAAC;gBAE5D,MAAM,SAAS,GAAG,WAAW,aAAX,WAAW,cAAX,WAAW,GAAI,IAAI,CAAC;gBAEtC,IAAI,IAAA,6CAAgC,EAAC,KAAK,EAAE,SAAS,CAAC,EAAE;oBACpD,IAAI,KAAK,YAAY,yBAAgB,EAAE;wBACnC,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;qBACzB;oBAED,IAAI,KAAK,YAAY,4BAAoB,EAAE;wBACvC,OAAO,KAAK,CAAC,kBAAkB,EAAE,CAAC,MAAM,EAAE,CAAC;qBAC9C;oBAED,IAAI,IAAA,sBAAa,EAAC,KAAK,CAAC,EAAE;wBACtB,OAAO,yBAAgB,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;qBACzF;iBACJ;gBAED,IAAI,IAAA,uCAA0B,EAAC,KAAK,EAAE,SAAS,CAAC,EAAE;oBAC9C,IAAI,KAAK,YAAY,mBAAU,EAAE;wBAC7B,OAAO,KAAK,CAAC,MAAM,EAAE,CAAC;qBACzB;oBAED,IAAI,IAAA,sBAAa,EAAC,KAAK,CAAC,EAAE;wBACtB,OAAO,mBAAU,CAAC,4BAA4B,CAAC,KAAK,CAAC,EAAE,EAAE,KAAK,CAAC,eAAe,CAAC,CAAC;qBACnF;iBACJ;gBAED,MAAM,QAAQ,GAAG,IAAA,kCAAqB,EAAC,KAAK,EAAE,SAAS,CAAC,CAAC;gBAEzD,iBAAiB;gBACjB,IAAI,QAAQ,KAAK,KAAK,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;oBAC5C,OAAO,IAAI,CAAC,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;iBACzD;gBAED,wBAAwB;gBACxB,IACI,QAAQ;oBACR,CAAC,KAAK,CAAC,EAAE,CACL,MAAM,EACN,MAAM,EACN,IAAI,EACJ,wBAAe,EACf,oBAAW,EACX,OAAO,EACP,MAAM,EACN,QAAQ,CACX,CAAC,QAAQ,CAAC,QAAQ,CAAC,EACtB;oBACE,OAAO,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;iBACtD;gBAED,OAAO,KAAK,CAAC;YACjB,CAAC;SACJ,CAAC,CAAC;IACP,CAAC;CACJ;AAvID,gDAuIC","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, VerifiableCredential } from './index';\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
+ {"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 './index';
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,EAAoB,MAAM,SAAS,CAAC;AA8E/D,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"}
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 index_1 = require("./index");
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 index_1.CredentialDocument {
126
+ class TestCredentialDocument extends document_1.CredentialDocument {
126
127
  constructor(model) {
127
- super(createDummyApiClient(), new index_1.CredentialFlavor(model));
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, VerifiableCredential } from './index';
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;AAGxC,OAAO,EAAsB,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAErF,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"}
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 index_1 = require("./index");
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 index_1.CredentialDocument(this.client, this.flavor);
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 index_1.VerifiableCredential(this.client, this.flavor, {
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,mCAAqF;AAErF,MAAa,eAAe;IAGxB,YACY,MAAiB,EACjB,MAA2B,EAC3B,SAA8B,EAC/B,UAA2B;QAH1B,WAAM,GAAN,MAAM,CAAW;QACjB,WAAM,GAAN,MAAM,CAAqB;QAC3B,cAAS,GAAT,SAAS,CAAqB;QAC/B,eAAU,GAAV,UAAU,CAAiB;QAN9B,uBAAkB,GAAG,IAAI,0BAAkB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IAO3E,CAAC;IAEE,SAAS;;YACX,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,IAAI,EAAE,CAAC;YAE3C,OAAO,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,MAAW,CAAC,CAAC;QAC/F,CAAC;KAAA;IAEK,WAAW;;YACb,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;YAE1D,OAAO;gBACH,OAAO;gBACP,cAAc,EAAE,UAAU;aAC7B,CAAC;QACN,CAAC;KAAA;IAEK,MAAM,CAAC,OAAmC;;YAC5C,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;gBAC1F,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;gBAC7B,cAAc,EAAE,IAAA,gCAAsB,EAAC,QAAQ,CAAC;gBAChD,IAAI,EAAE;oBACF,IAAI,EAAE;wBACF,MAAM,EAAE,OAAO,CAAC,MAAM;4BAClB,CAAC,CAAC,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,EAAE,OAAO,CAAC,MAAW,CAAC;4BAC7F,CAAC,CAAC,SAAS;wBACf,IAAI,EAAE,IAAA,wCAA2B,EAAC,OAAO,CAAC,QAAQ,CAAC;qBACtD;oBACD,WAAW,EAAE,OAAO,CAAC,WAAW;oBAChC,MAAM,EAAE,OAAO,CAAC,MAAM;iBACzB;aACJ,CAAC,CAAC;YAEH,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACvF,CAAC;KAAA;IAEK,MAAM;;YACR,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;gBACrD,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI;gBAC7B,cAAc,EAAE,IAAA,gCAAsB,EAAC,QAAQ,CAAC;aACnD,CAAC,CAAC;QACP,CAAC;KAAA;IAEK,KAAK,CAAC,YAAoB;;;YAC5B,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,UAAU,CACpE,IAAI,CAAC,UAAU,CAAC,EAAE,EAClB,IAAI,CAAC,UAAU,CAAC,QAAQ,EACxB;gBACI,KAAK,EAAE,YAAY;aACtB,CACJ,CAAC;YAEF,OAAO,IAAI,4BAAoB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;gBACtD,EAAE,EAAE,EAAE;gBACN,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE;oBACF,SAAS,EAAE,MAAA,IAAI,CAAC,SAAS,mCAAI,SAAS;iBACzC;aACJ,CAAC,CAAC;;KACN;IACK,MAAM,CAAC,MAAmB;;YAC5B,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;QAChG,CAAC;KAAA;CACJ;AAxED,0CAwEC","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, CredentialFlavor, VerifiableCredential } from './index';\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
+ {"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;CAWvE;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
+ {"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"}
@@ -83,6 +83,7 @@ class BaseFlavor {
83
83
  issuanceDate: credential.issuanceDate,
84
84
  subject: credential.credentialSubject.id,
85
85
  expirationDate: credential.expirationDate,
86
+ holder: credential.holder,
86
87
  };
87
88
  });
88
89
  }
@@ -1 +1 @@
1
- {"version":3,"file":"flavor.js","sourceRoot":"","sources":["../../../src/documents/credential/flavor.ts"],"names":[],"mappings":"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","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 };\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"]}
1
+ {"version":3,"file":"flavor.js","sourceRoot":"","sources":["../../../src/documents/credential/flavor.ts"],"names":[],"mappings":"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","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 index_1 = require("./index");
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 index_1.CredentialFlavor(TestCredentialSubject);
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 index_1.CredentialFlavor(TestCredentialSubject);
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":"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","sourcesContent":["import { Rfc3339Date } from '../models';\nimport { VcContext, VcNotEmptyClaim } from '../decorators';\n\nimport { CredentialFlavor } from './index';\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 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 });\n });\n});\n"]}
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, BaseVerifiableCredential } from './index';
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>;