@truvity/sdk 0.36.8 → 0.37.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/api/resources/apiKeys/client/Client.d.ts.map +1 -1
- package/api/resources/apiKeys/client/Client.js +9 -19
- package/api/resources/apiKeys/client/Client.js.map +1 -1
- package/api/resources/credentials/client/Client.d.ts.map +1 -1
- package/api/resources/credentials/client/Client.js +12 -28
- package/api/resources/credentials/client/Client.js.map +1 -1
- package/api/resources/desk/client/Client.d.ts.map +1 -1
- package/api/resources/desk/client/Client.js +2 -4
- package/api/resources/desk/client/Client.js.map +1 -1
- package/api/resources/didcommMessages/client/Client.d.ts.map +1 -1
- package/api/resources/didcommMessages/client/Client.js +9 -19
- package/api/resources/didcommMessages/client/Client.js.map +1 -1
- package/api/resources/dids/client/Client.d.ts.map +1 -1
- package/api/resources/dids/client/Client.js +1 -3
- package/api/resources/dids/client/Client.js.map +1 -1
- package/api/resources/drafts/client/Client.d.ts +0 -49
- package/api/resources/drafts/client/Client.d.ts.map +1 -1
- package/api/resources/drafts/client/Client.js +12 -191
- package/api/resources/drafts/client/Client.js.map +1 -1
- package/api/resources/drafts/client/requests/index.d.ts +0 -1
- package/api/resources/drafts/client/requests/index.d.ts.map +1 -1
- package/api/resources/drafts/client/requests/index.js.map +1 -1
- package/api/resources/drafts/types/index.d.ts +0 -1
- package/api/resources/drafts/types/index.d.ts.map +1 -1
- package/api/resources/drafts/types/index.js +0 -1
- package/api/resources/drafts/types/index.js.map +1 -1
- package/api/resources/files/client/Client.d.ts.map +1 -1
- package/api/resources/files/client/Client.js +11 -25
- package/api/resources/files/client/Client.js.map +1 -1
- package/api/resources/gdpr/client/Client.js +1 -1
- package/api/resources/gdpr/client/Client.js.map +1 -1
- package/api/resources/keys/client/Client.d.ts.map +1 -1
- package/api/resources/keys/client/Client.js +13 -23
- package/api/resources/keys/client/Client.js.map +1 -1
- package/api/resources/presentations/client/Client.d.ts.map +1 -1
- package/api/resources/presentations/client/Client.js +14 -30
- package/api/resources/presentations/client/Client.js.map +1 -1
- package/api/types/Credential.d.ts +0 -4
- package/api/types/Credential.d.ts.map +1 -1
- package/api/types/Credential.js.map +1 -1
- package/api/types/CredentialFilterData.d.ts +0 -2
- package/api/types/CredentialFilterData.d.ts.map +1 -1
- package/api/types/CredentialFilterData.js.map +1 -1
- package/api/types/CredentialSortField.d.ts +1 -3
- package/api/types/CredentialSortField.d.ts.map +1 -1
- package/api/types/CredentialSortField.js +0 -2
- package/api/types/CredentialSortField.js.map +1 -1
- package/api/types/Draft.d.ts +0 -4
- package/api/types/Draft.d.ts.map +1 -1
- package/api/types/Draft.js.map +1 -1
- package/api/types/DraftFilterData.d.ts +0 -2
- package/api/types/DraftFilterData.d.ts.map +1 -1
- package/api/types/DraftFilterData.js.map +1 -1
- package/api/types/DraftSortField.d.ts +1 -3
- package/api/types/DraftSortField.d.ts.map +1 -1
- package/api/types/DraftSortField.js +0 -2
- package/api/types/DraftSortField.js.map +1 -1
- package/api/types/Presentation.d.ts +0 -2
- package/api/types/Presentation.d.ts.map +1 -1
- package/api/types/Presentation.js.map +1 -1
- package/api/types/PresentationFilterData.d.ts +0 -1
- package/api/types/PresentationFilterData.d.ts.map +1 -1
- package/api/types/PresentationFilterData.js.map +1 -1
- package/api/types/PresentationSortField.d.ts +1 -2
- package/api/types/PresentationSortField.d.ts.map +1 -1
- package/api/types/PresentationSortField.js +0 -1
- package/api/types/PresentationSortField.js.map +1 -1
- package/api/types/index.d.ts +0 -7
- package/api/types/index.d.ts.map +1 -1
- package/api/types/index.js +0 -7
- package/api/types/index.js.map +1 -1
- package/documents/credential/claims.js +1 -1
- package/documents/credential/claims.js.map +1 -1
- package/documents/credential/draft/draft.d.ts.map +1 -1
- package/documents/credential/draft/draft.js +1 -1
- package/documents/credential/draft/draft.js.map +1 -1
- package/documents/credential.d.ts.map +1 -1
- package/documents/credential.js +2 -2
- package/documents/credential.js.map +1 -1
- package/documents/models.d.ts +5 -2
- package/documents/models.d.ts.map +1 -1
- package/documents/models.js +4 -2
- package/documents/models.js.map +1 -1
- package/documents/presentation.d.ts +1 -0
- package/documents/presentation.d.ts.map +1 -1
- package/documents/presentation.js +6 -3
- package/documents/presentation.js.map +1 -1
- package/documents/utils/error.d.ts +2 -0
- package/documents/utils/error.d.ts.map +1 -1
- package/documents/utils/error.js +3 -1
- package/documents/utils/error.js.map +1 -1
- package/documents/utils/error.spec.js +1 -1
- package/documents/utils/error.spec.js.map +1 -1
- package/package.json +4 -3
- package/reference.md +0 -105
- package/scripts/rename-to-esm-files.js +10 -2
- package/serialization/resources/drafts/client/requests/index.d.ts +0 -1
- package/serialization/resources/drafts/client/requests/index.d.ts.map +1 -1
- package/serialization/resources/drafts/client/requests/index.js +1 -3
- package/serialization/resources/drafts/client/requests/index.js.map +1 -1
- package/serialization/resources/drafts/types/index.d.ts +0 -1
- package/serialization/resources/drafts/types/index.d.ts.map +1 -1
- package/serialization/resources/drafts/types/index.js +0 -1
- package/serialization/resources/drafts/types/index.js.map +1 -1
- package/serialization/types/Credential.d.ts +0 -2
- package/serialization/types/Credential.d.ts.map +1 -1
- package/serialization/types/Credential.js +0 -2
- package/serialization/types/Credential.js.map +1 -1
- package/serialization/types/CredentialFilterData.d.ts +0 -4
- package/serialization/types/CredentialFilterData.d.ts.map +1 -1
- package/serialization/types/CredentialFilterData.js +0 -4
- package/serialization/types/CredentialFilterData.js.map +1 -1
- package/serialization/types/CredentialSortField.d.ts +1 -1
- package/serialization/types/CredentialSortField.d.ts.map +1 -1
- package/serialization/types/CredentialSortField.js +0 -2
- package/serialization/types/CredentialSortField.js.map +1 -1
- package/serialization/types/Draft.d.ts +0 -2
- package/serialization/types/Draft.d.ts.map +1 -1
- package/serialization/types/Draft.js +0 -2
- package/serialization/types/Draft.js.map +1 -1
- package/serialization/types/DraftFilterData.d.ts +0 -4
- package/serialization/types/DraftFilterData.d.ts.map +1 -1
- package/serialization/types/DraftFilterData.js +0 -4
- package/serialization/types/DraftFilterData.js.map +1 -1
- package/serialization/types/DraftSortField.d.ts +1 -1
- package/serialization/types/DraftSortField.d.ts.map +1 -1
- package/serialization/types/DraftSortField.js +0 -2
- package/serialization/types/DraftSortField.js.map +1 -1
- package/serialization/types/Presentation.d.ts +0 -1
- package/serialization/types/Presentation.d.ts.map +1 -1
- package/serialization/types/Presentation.js +0 -1
- package/serialization/types/Presentation.js.map +1 -1
- package/serialization/types/PresentationFilterData.d.ts +0 -2
- package/serialization/types/PresentationFilterData.d.ts.map +1 -1
- package/serialization/types/PresentationFilterData.js +0 -2
- package/serialization/types/PresentationFilterData.js.map +1 -1
- package/serialization/types/PresentationSortField.d.ts +1 -1
- package/serialization/types/PresentationSortField.d.ts.map +1 -1
- package/serialization/types/PresentationSortField.js +0 -1
- package/serialization/types/PresentationSortField.js.map +1 -1
- package/serialization/types/index.d.ts +0 -7
- package/serialization/types/index.d.ts.map +1 -1
- package/serialization/types/index.js +0 -7
- package/serialization/types/index.js.map +1 -1
- package/api/resources/drafts/client/requests/DraftIssueRequest.d.ts +0 -44
- package/api/resources/drafts/client/requests/DraftIssueRequest.d.ts.map +0 -1
- package/api/resources/drafts/client/requests/DraftIssueRequest.js +0 -6
- package/api/resources/drafts/client/requests/DraftIssueRequest.js.map +0 -1
- package/api/resources/drafts/types/DraftIssueRequestDidMethod.d.ts +0 -12
- package/api/resources/drafts/types/DraftIssueRequestDidMethod.d.ts.map +0 -1
- package/api/resources/drafts/types/DraftIssueRequestDidMethod.js +0 -11
- package/api/resources/drafts/types/DraftIssueRequestDidMethod.js.map +0 -1
- package/api/types/CredentialFilterDataLinkedCredentials.d.ts +0 -20
- package/api/types/CredentialFilterDataLinkedCredentials.d.ts.map +0 -1
- package/api/types/CredentialFilterDataLinkedCredentials.js +0 -6
- package/api/types/CredentialFilterDataLinkedCredentials.js.map +0 -1
- package/api/types/CredentialFilterDataLinkedFiles.d.ts +0 -20
- package/api/types/CredentialFilterDataLinkedFiles.d.ts.map +0 -1
- package/api/types/CredentialFilterDataLinkedFiles.js +0 -6
- package/api/types/CredentialFilterDataLinkedFiles.js.map +0 -1
- package/api/types/DraftFilterDataLinkedCredentials.d.ts +0 -20
- package/api/types/DraftFilterDataLinkedCredentials.d.ts.map +0 -1
- package/api/types/DraftFilterDataLinkedCredentials.js +0 -6
- package/api/types/DraftFilterDataLinkedCredentials.js.map +0 -1
- package/api/types/DraftFilterDataLinkedDrafts.d.ts +0 -20
- package/api/types/DraftFilterDataLinkedDrafts.d.ts.map +0 -1
- package/api/types/DraftFilterDataLinkedDrafts.js +0 -6
- package/api/types/DraftFilterDataLinkedDrafts.js.map +0 -1
- package/api/types/NestedInUri.d.ts +0 -11
- package/api/types/NestedInUri.d.ts.map +0 -1
- package/api/types/NestedInUri.js +0 -6
- package/api/types/NestedInUri.js.map +0 -1
- package/api/types/NestedNotInUri.d.ts +0 -11
- package/api/types/NestedNotInUri.d.ts.map +0 -1
- package/api/types/NestedNotInUri.js +0 -6
- package/api/types/NestedNotInUri.js.map +0 -1
- package/api/types/PresentationFilterDataLinkedCredentials.d.ts +0 -14
- package/api/types/PresentationFilterDataLinkedCredentials.d.ts.map +0 -1
- package/api/types/PresentationFilterDataLinkedCredentials.js +0 -6
- package/api/types/PresentationFilterDataLinkedCredentials.js.map +0 -1
- package/serialization/resources/drafts/client/requests/DraftIssueRequest.d.ts +0 -20
- package/serialization/resources/drafts/client/requests/DraftIssueRequest.d.ts.map +0 -1
- package/serialization/resources/drafts/client/requests/DraftIssueRequest.js +0 -51
- package/serialization/resources/drafts/client/requests/DraftIssueRequest.js.map +0 -1
- package/serialization/resources/drafts/types/DraftIssueRequestDidMethod.d.ts +0 -11
- package/serialization/resources/drafts/types/DraftIssueRequestDidMethod.d.ts.map +0 -1
- package/serialization/resources/drafts/types/DraftIssueRequestDidMethod.js +0 -42
- package/serialization/resources/drafts/types/DraftIssueRequestDidMethod.js.map +0 -1
- package/serialization/types/CredentialFilterDataLinkedCredentials.d.ts +0 -27
- package/serialization/types/CredentialFilterDataLinkedCredentials.d.ts.map +0 -1
- package/serialization/types/CredentialFilterDataLinkedCredentials.js +0 -56
- package/serialization/types/CredentialFilterDataLinkedCredentials.js.map +0 -1
- package/serialization/types/CredentialFilterDataLinkedFiles.d.ts +0 -27
- package/serialization/types/CredentialFilterDataLinkedFiles.d.ts.map +0 -1
- package/serialization/types/CredentialFilterDataLinkedFiles.js +0 -56
- package/serialization/types/CredentialFilterDataLinkedFiles.js.map +0 -1
- package/serialization/types/DraftFilterDataLinkedCredentials.d.ts +0 -27
- package/serialization/types/DraftFilterDataLinkedCredentials.d.ts.map +0 -1
- package/serialization/types/DraftFilterDataLinkedCredentials.js +0 -56
- package/serialization/types/DraftFilterDataLinkedCredentials.js.map +0 -1
- package/serialization/types/DraftFilterDataLinkedDrafts.d.ts +0 -27
- package/serialization/types/DraftFilterDataLinkedDrafts.d.ts.map +0 -1
- package/serialization/types/DraftFilterDataLinkedDrafts.js +0 -56
- package/serialization/types/DraftFilterDataLinkedDrafts.js.map +0 -1
- package/serialization/types/NestedInUri.d.ts +0 -13
- package/serialization/types/NestedInUri.d.ts.map +0 -1
- package/serialization/types/NestedInUri.js +0 -44
- package/serialization/types/NestedInUri.js.map +0 -1
- package/serialization/types/NestedNotInUri.d.ts +0 -13
- package/serialization/types/NestedNotInUri.d.ts.map +0 -1
- package/serialization/types/NestedNotInUri.js +0 -44
- package/serialization/types/NestedNotInUri.js.map +0 -1
- package/serialization/types/PresentationFilterDataLinkedCredentials.d.ts +0 -19
- package/serialization/types/PresentationFilterDataLinkedCredentials.d.ts.map +0 -1
- package/serialization/types/PresentationFilterDataLinkedCredentials.js +0 -52
- package/serialization/types/PresentationFilterDataLinkedCredentials.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claims.js","sourceRoot":"","sources":["../../../src/documents/credential/claims.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApiClient,\n Claims,\n Ctor,\n isLinkedEntityDescriptor,\n isValueWithId,\n UserUpdateClaims,\n ReadDraftClaims,\n ReadClaims,\n} from '../types';\nimport {\n ClaimDescriptor,\n getClaimJsonLdTypeMetadata,\n getContextJsonLdMetadata,\n getRegisteredClaimsList,\n getTsDataTypeMetadata,\n} from '../decorators';\nimport { Rfc3339Date, LinkedCredential, LinkedFile, Rfc3339DateTime } from '../models';\nimport { DraftSchema, DraftSchemaFieldsItem } from '../../api';\nimport { strictlyConvertToApiType, StrictPartial } from '../utils/converters';\nimport * as serialization from '../../serialization';\nimport { CredentialClaims, DraftFieldValue, Json } from './types';\nimport { VerifiableCredential } from './verifiable/verifiable';\nimport { DocumentedError, ErrorCode } from '../utils/error';\nimport { DraftCredential } from './draft/draft';\nimport { Credential } from './credential';\n\nexport class UdtClaims<T extends Claims> {\n constructor(\n protected client: ApiClient,\n protected claimsModel: Ctor<T>,\n ) {}\n\n private processValues<K extends Claims>(\n model: Ctor<any>,\n input: Json,\n processValue: (descriptor: ClaimDescriptor, value: unknown) => unknown,\n initialValue: K,\n ): K {\n return getRegisteredClaimsList(model).reduce((result, descriptor) => {\n if (descriptor.name in input) {\n const value: unknown = input[descriptor.name];\n let processedValue: unknown;\n\n if (descriptor.isArray) {\n if (value == null) {\n processedValue = null;\n } else if (Array.isArray(value)) {\n processedValue = value.map((item) => {\n return processValue(descriptor, item);\n });\n } else {\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Can't convert received value as it has an unexpected type. The value is defined in UDT as \"Array\".`,\n );\n }\n } else {\n processedValue = processValue(descriptor, value);\n }\n Reflect.set(result, descriptor.name, processedValue);\n }\n\n return result;\n }, initialValue);\n }\n\n private getClaimTypeInfo(model: Ctor<any>, descriptor: ClaimDescriptor): Ctor<any> {\n const typeInfo = descriptor.nestedType ? descriptor.nestedType : getTsDataTypeMetadata(model, descriptor.name);\n\n if (typeInfo == null) {\n throw new Error(\n `Can't convert received value. Inconsistent data definition. Please reach out to support for assistance.`,\n );\n }\n\n return typeInfo;\n }\n\n /** convertApiValuesToUdt maps and converts the API received claims values to the UDT claims model */\n protected convertApiValuesToUdt<K extends Claims>(model: Ctor<any>, input: Json): K {\n const processValue = (descriptor: ClaimDescriptor, value: unknown): unknown => {\n if (value == null) {\n return null;\n }\n\n const typeInfo = this.getClaimTypeInfo(model, descriptor);\n\n if (isLinkedEntityDescriptor(value)) {\n if (typeInfo == LinkedCredential) {\n return new LinkedCredential(this.client, value.id, value.digestMultibase);\n }\n\n if (typeInfo === LinkedFile) {\n return new LinkedFile(this.client, value.id, value.digestMultibase);\n }\n }\n\n if (typeInfo === Date) {\n if (typeof value !== 'string') {\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Can't convert received value as it has an unexpected type. The value is defined in UDT as \"Date\".`,\n );\n }\n return new Date(value);\n }\n\n if (typeInfo === Rfc3339DateTime) {\n if (typeof value !== 'string') {\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Can't convert received value as it has an unexpected type. The value is defined in UDT as \"Rfc3339DateTime\".`,\n );\n }\n return new Rfc3339DateTime(value);\n }\n\n if (typeInfo === Rfc3339Date) {\n if (typeof value !== 'string') {\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Can't convert received value as it has an unexpected type. The value is defined in UDT as \"Rfc3339Date\".`,\n );\n }\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 if (!(value instanceof Object)) {\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Can't convert received value as it has an unexpected type. The value is defined in UDT as \"${typeInfo.name}\".`,\n );\n }\n return this.convertApiValuesToUdt(typeInfo, value);\n };\n\n return this.processValues<K>(model, input, processValue, new model());\n }\n\n /** convertUdtToApiValues maps and converts the user received claims values onto UDT claims model */\n protected convertUdtToApiValues<K extends Claims>(model: Ctor<any>, input: K): CredentialClaims {\n const processValue = (descriptor: ClaimDescriptor, value: unknown): unknown => {\n if (value == null) {\n return null;\n }\n\n const typeInfo = this.getClaimTypeInfo(model, descriptor);\n\n if (typeInfo == LinkedCredential) {\n if (value instanceof LinkedCredential) {\n return value.toJSON();\n }\n\n if (\n value instanceof VerifiableCredential ||\n value instanceof DraftCredential ||\n value instanceof Credential\n ) {\n return value.toLinkedCredential().toJSON();\n }\n\n if (isValueWithId(value)) {\n return LinkedCredential.createClaimValue(value.id, value.digestMultibase);\n }\n }\n\n if (typeInfo === LinkedFile) {\n if (value instanceof LinkedFile) {\n return value.toJSON();\n }\n\n if (isValueWithId(value)) {\n return LinkedFile.createClaimValue(value.id, value.digestMultibase);\n }\n }\n\n if (\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 value;\n }\n\n if (!(value instanceof Object)) {\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Can't convert received value as it has an unexpected type. The value is defined in UDT as \"${typeInfo.name}\".`,\n );\n }\n return this.convertUdtToApiValues(typeInfo, value);\n };\n\n return this.processValues(model, input, processValue, {});\n }\n\n protected mapClaimToApi(claim: ClaimDescriptor, claimsModel: Ctor<any>): DraftSchemaFieldsItem {\n const claimJsonLdType = getClaimJsonLdTypeMetadata(claimsModel, claim.name);\n const draftBaseFieldValue: StrictPartial<DraftFieldValue> = {\n name: claim.name,\n title: claim.title,\n notEmpty: claim.notEmpty,\n isArray: claim.isArray || undefined,\n };\n\n if (\n claim.nestedType &&\n !Array.of<Ctor<any>>(\n String,\n Number,\n Date,\n Rfc3339DateTime,\n Rfc3339Date,\n Boolean,\n LinkedFile,\n LinkedCredential,\n ).includes(claim.nestedType)\n ) {\n const claimNestedType = claim.nestedType;\n const nestedContextInfo = getContextJsonLdMetadata(claimNestedType);\n\n if (!nestedContextInfo) {\n throw new DocumentedError(\n ErrorCode.VcContextAnnotationMissing,\n `The information about the VC context was not found in the \"${claimNestedType.name}\" model. Please use the \"@VcContext\" decorator to define the necessary information.`,\n );\n }\n\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'STRUCT',\n fields: getRegisteredClaimsList(claimNestedType).map((nestedClaim) => {\n return this.mapClaimToApi(nestedClaim, claimNestedType);\n }),\n vocabNamespace: nestedContextInfo.namespace,\n vocabName: nestedContextInfo.name,\n });\n }\n\n const tsDataType = claim.nestedType || getTsDataTypeMetadata(claimsModel, claim.name);\n\n if (!tsDataType) {\n throw new Error(\n `The information about the VC claim data type was not found for the \"${claim.name}\" property. Ensure that \"emitDecoratorMetadata\" is enabled in your \"tsconfig.json\".`,\n );\n }\n\n switch (tsDataType) {\n case String:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'STRING',\n type: claimJsonLdType,\n enum: claim.enumValuesDescriptor,\n });\n case Number:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'NUMBER',\n type: claimJsonLdType,\n });\n case Boolean:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'BOOLEAN',\n type: claimJsonLdType,\n });\n case Rfc3339Date:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'DATE',\n type: claimJsonLdType,\n });\n case Rfc3339DateTime:\n case Date:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'DATETIME',\n type: claimJsonLdType,\n });\n case LinkedFile:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'FILE',\n });\n case LinkedCredential:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'LINK',\n linkType: undefined,\n });\n default:\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Unsupported primitive data type: ${tsDataType.name}. Please use one of the supported types.`,\n );\n }\n }\n\n /**\n * Marshalling is the process of transforming the internal representation of values to a data format suitable\n * for transmission.\n */\n marshalValues(input: UserUpdateClaims<T>): Json {\n return this.convertUdtToApiValues(this.claimsModel, input);\n }\n\n /**\n * Unmarshalling is the reverse process of marshalling. It involves converting data from a serialized format back\n * into an internal representation.\n */\n unmarshalValuesToDraft(input: Json): ReadDraftClaims<T> {\n return this.convertApiValuesToUdt(this.claimsModel, input);\n }\n\n unmarshalValuesToCredential(input: Json): ReadClaims<T> {\n return this.convertApiValuesToUdt(this.claimsModel, input);\n }\n\n getDraftSchema(): DraftSchema {\n const vcContextMetadata = getContextJsonLdMetadata(this.claimsModel);\n\n if (!vcContextMetadata) {\n throw new DocumentedError(\n ErrorCode.VcContextAnnotationMissing,\n `Unable to find JSON-LD metadata. Make sure you have defined the claims model with the @VcContext decorator`,\n );\n }\n\n return strictlyConvertToApiType(serialization.DraftSchema, {\n fields: getRegisteredClaimsList(this.claimsModel).map((claim) =>\n this.mapClaimToApi(claim, this.claimsModel),\n ),\n vocabNamespace: vcContextMetadata.namespace,\n vocabName: vcContextMetadata.name,\n vcType: vcContextMetadata.vcType,\n });\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"claims.js","sourceRoot":"","sources":["../../../src/documents/credential/claims.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApiClient,\n Claims,\n Ctor,\n isLinkedEntityDescriptor,\n isValueWithId,\n UserUpdateClaims,\n ReadDraftClaims,\n ReadClaims,\n} from '../types';\nimport {\n ClaimDescriptor,\n getClaimJsonLdTypeMetadata,\n getContextJsonLdMetadata,\n getRegisteredClaimsList,\n getTsDataTypeMetadata,\n} from '../decorators';\nimport { Rfc3339Date, LinkedCredential, LinkedFile, Rfc3339DateTime } from '../models';\nimport { DraftSchema, DraftSchemaFieldsItem } from '../../api';\nimport { strictlyConvertToApiType, StrictPartial } from '../utils/converters';\nimport * as serialization from '../../serialization';\nimport { CredentialClaims, DraftFieldValue, Json } from './types';\nimport { VerifiableCredential } from './verifiable/verifiable';\nimport { DocumentedError, ErrorCode } from '../utils/error';\nimport { DraftCredential } from './draft/draft';\nimport { Credential } from './credential';\n\nexport class UdtClaims<T extends Claims> {\n constructor(\n protected client: ApiClient,\n protected claimsModel: Ctor<T>,\n ) {}\n\n private processValues<K extends Claims>(\n model: Ctor<any>,\n input: Json,\n processValue: (descriptor: ClaimDescriptor, value: unknown) => unknown,\n initialValue: K,\n ): K {\n return getRegisteredClaimsList(model).reduce((result, descriptor) => {\n if (descriptor.name in input) {\n const value: unknown = input[descriptor.name];\n let processedValue: unknown;\n\n if (descriptor.isArray) {\n if (value == null) {\n processedValue = null;\n } else if (Array.isArray(value)) {\n processedValue = value.map((item) => {\n return processValue(descriptor, item);\n });\n } else {\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Can't convert received value as it has an unexpected type. The value is defined in UDT as \"Array\".`,\n );\n }\n } else {\n processedValue = processValue(descriptor, value);\n }\n Reflect.set(result, descriptor.name, processedValue);\n }\n\n return result;\n }, initialValue);\n }\n\n private getClaimTypeInfo(model: Ctor<any>, descriptor: ClaimDescriptor): Ctor<any> {\n const typeInfo = descriptor.nestedType ? descriptor.nestedType : getTsDataTypeMetadata(model, descriptor.name);\n\n if (typeInfo == null) {\n throw new Error(\n `Can't convert received value. Inconsistent data definition. Please reach out to support for assistance.`,\n );\n }\n\n return typeInfo;\n }\n\n /** convertApiValuesToUdt maps and converts the API received claims values to the UDT claims model */\n protected convertApiValuesToUdt<K extends Claims>(model: Ctor<any>, input: Json): K {\n const processValue = (descriptor: ClaimDescriptor, value: unknown): unknown => {\n if (value == null) {\n return null;\n }\n\n const typeInfo = this.getClaimTypeInfo(model, descriptor);\n\n if (isLinkedEntityDescriptor(value)) {\n if (typeInfo == LinkedCredential) {\n return new LinkedCredential(this.client, value.id, value.digestMultibase);\n }\n\n if (typeInfo === LinkedFile) {\n return new LinkedFile(this.client, value.id, value.digestMultibase);\n }\n }\n\n if (typeInfo === Date) {\n if (typeof value !== 'string') {\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Can't convert received value as it has an unexpected type. The value is defined in UDT as \"Date\".`,\n );\n }\n return new Date(value);\n }\n\n if (typeInfo === Rfc3339DateTime) {\n if (typeof value !== 'string') {\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Can't convert received value as it has an unexpected type. The value is defined in UDT as \"Rfc3339DateTime\".`,\n );\n }\n return new Rfc3339DateTime(value);\n }\n\n if (typeInfo === Rfc3339Date) {\n if (typeof value !== 'string') {\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Can't convert received value as it has an unexpected type. The value is defined in UDT as \"Rfc3339Date\".`,\n );\n }\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 if (!(value instanceof Object)) {\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Can't convert received value as it has an unexpected type. The value is defined in UDT as \"${typeInfo.name}\".`,\n );\n }\n return this.convertApiValuesToUdt(typeInfo, value);\n };\n\n return this.processValues<K>(model, input, processValue, new model());\n }\n\n /** convertUdtToApiValues maps and converts the user received claims values onto UDT claims model */\n protected convertUdtToApiValues<K extends Claims>(model: Ctor<any>, input: K): CredentialClaims {\n const processValue = (descriptor: ClaimDescriptor, value: unknown): unknown => {\n if (value == null) {\n return null;\n }\n\n const typeInfo = this.getClaimTypeInfo(model, descriptor);\n\n if (typeInfo == LinkedCredential) {\n if (value instanceof LinkedCredential) {\n return value.toJSON();\n }\n\n if (\n value instanceof VerifiableCredential ||\n value instanceof DraftCredential ||\n value instanceof Credential\n ) {\n return value.toLinkedCredential().toJSON();\n }\n\n if (isValueWithId(value)) {\n return LinkedCredential.createClaimValue(value.id, value.digestMultibase);\n }\n }\n\n if (typeInfo === LinkedFile) {\n if (value instanceof LinkedFile) {\n return value.toJSON();\n }\n\n if (isValueWithId(value)) {\n return LinkedFile.createClaimValue(value.id, value.digestMultibase);\n }\n }\n\n if (\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 value;\n }\n\n if (!(value instanceof Object)) {\n throw new DocumentedError(\n ErrorCode.UnexpectedTypeInSerialization,\n `Can't convert received value as it has an unexpected type. The value is defined in UDT as \"${typeInfo.name}\".`,\n );\n }\n return this.convertUdtToApiValues(typeInfo, value);\n };\n\n return this.processValues(model, input, processValue, {});\n }\n\n protected mapClaimToApi(claim: ClaimDescriptor, claimsModel: Ctor<any>): DraftSchemaFieldsItem {\n const claimJsonLdType = getClaimJsonLdTypeMetadata(claimsModel, claim.name);\n const draftBaseFieldValue: StrictPartial<DraftFieldValue> = {\n name: claim.name,\n title: claim.title,\n notEmpty: claim.notEmpty,\n isArray: claim.isArray || undefined,\n };\n\n if (\n claim.nestedType &&\n !Array.of<Ctor<any>>(\n String,\n Number,\n Date,\n Rfc3339DateTime,\n Rfc3339Date,\n Boolean,\n LinkedFile,\n LinkedCredential,\n ).includes(claim.nestedType)\n ) {\n const claimNestedType = claim.nestedType;\n const nestedContextInfo = getContextJsonLdMetadata(claimNestedType);\n\n if (!nestedContextInfo) {\n throw new DocumentedError(\n ErrorCode.VcContextAnnotationMissing,\n `The information about the VC context was not found in the \"${claimNestedType.name}\" model. Please use the \"@VcContext\" decorator to define the necessary information.`,\n );\n }\n\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'STRUCT',\n fields: getRegisteredClaimsList(claimNestedType).map((nestedClaim) => {\n return this.mapClaimToApi(nestedClaim, claimNestedType);\n }),\n vocabNamespace: nestedContextInfo.namespace,\n vocabName: nestedContextInfo.name,\n });\n }\n\n const tsDataType = claim.nestedType || getTsDataTypeMetadata(claimsModel, claim.name);\n\n if (!tsDataType) {\n throw new Error(\n `The information about the VC claim data type was not found for the \"${claim.name}\" property. Ensure that \"emitDecoratorMetadata\" is enabled in your \"tsconfig.json\".`,\n );\n }\n\n switch (tsDataType) {\n case String:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'STRING',\n type: claimJsonLdType,\n enum: claim.enumValuesDescriptor,\n });\n case Number:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'NUMBER',\n type: claimJsonLdType,\n });\n case Boolean:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'BOOLEAN',\n type: claimJsonLdType,\n });\n case Rfc3339Date:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'DATE',\n type: claimJsonLdType,\n });\n case Rfc3339DateTime:\n case Date:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'DATETIME',\n type: claimJsonLdType,\n });\n case LinkedFile:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'FILE',\n });\n case LinkedCredential:\n return strictlyConvertToApiType(serialization.DraftSchemaFieldsItem, {\n ...draftBaseFieldValue,\n kind: 'LINK',\n linkType: undefined,\n });\n default:\n throw new DocumentedError(\n ErrorCode.UnsupportedTypeInUDT,\n `Unsupported data type: ${tsDataType.name}. Please use one of the supported types.`,\n );\n }\n }\n\n /**\n * Marshalling is the process of transforming the internal representation of values to a data format suitable\n * for transmission.\n */\n marshalValues(input: UserUpdateClaims<T>): Json {\n return this.convertUdtToApiValues(this.claimsModel, input);\n }\n\n /**\n * Unmarshalling is the reverse process of marshalling. It involves converting data from a serialized format back\n * into an internal representation.\n */\n unmarshalValuesToDraft(input: Json): ReadDraftClaims<T> {\n return this.convertApiValuesToUdt(this.claimsModel, input);\n }\n\n unmarshalValuesToCredential(input: Json): ReadClaims<T> {\n return this.convertApiValuesToUdt(this.claimsModel, input);\n }\n\n getDraftSchema(): DraftSchema {\n const vcContextMetadata = getContextJsonLdMetadata(this.claimsModel);\n\n if (!vcContextMetadata) {\n throw new DocumentedError(\n ErrorCode.VcContextAnnotationMissing,\n `Unable to find JSON-LD metadata. Make sure you have defined the claims model with the @VcContext decorator`,\n );\n }\n\n return strictlyConvertToApiType(serialization.DraftSchema, {\n fields: getRegisteredClaimsList(this.claimsModel).map((claim) =>\n this.mapClaimToApi(claim, this.claimsModel),\n ),\n vocabNamespace: vcContextMetadata.namespace,\n vocabName: vcContextMetadata.name,\n vcType: vcContextMetadata.vcType,\n });\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../../../../src/documents/credential/draft/draft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIhE,qBAAa,eAAe;IAEpB,SAAS,CAAC,MAAM,EAAE,SAAS;IAC3B,SAAS,CAAC,SAAS,EAAE,mBAAmB;IACjC,UAAU,EAAE,eAAe;gBAFxB,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,mBAAmB,EACjC,UAAU,EAAE,eAAe;IAGtC,kBAAkB,IAAI,gBAAgB,CAAC,OAAO,CAAC;IAIzC,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IASrC,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIrD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"draft.d.ts","sourceRoot":"","sources":["../../../../src/documents/credential/draft/draft.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;AAElC,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,kBAAkB,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AACjE,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChD,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAIhE,qBAAa,eAAe;IAEpB,SAAS,CAAC,MAAM,EAAE,SAAS;IAC3B,SAAS,CAAC,SAAS,EAAE,mBAAmB;IACjC,UAAU,EAAE,eAAe;gBAFxB,MAAM,EAAE,SAAS,EACjB,SAAS,EAAE,mBAAmB,EACjC,UAAU,EAAE,eAAe;IAGtC,kBAAkB,IAAI,gBAAgB,CAAC,OAAO,CAAC;IAIzC,WAAW,IAAI,OAAO,CAAC,aAAa,CAAC;IASrC,MAAM,CAAC,MAAM,EAAE,kBAAkB,GAAG,OAAO,CAAC,QAAQ,CAAC;IAIrD,MAAM,IAAI,OAAO,CAAC,IAAI,CAAC;IAOvB,KAAK,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAgB1D,UAAU,IAAI,OAAO,CAAC,aAAa,CAAC;CAG7C"}
|
|
@@ -48,7 +48,7 @@ class DraftCredential {
|
|
|
48
48
|
}
|
|
49
49
|
issue(privateKeyId) {
|
|
50
50
|
return __awaiter(this, void 0, void 0, function* () {
|
|
51
|
-
const { id, etag, revision, data } = yield this.client.drafts.
|
|
51
|
+
const { id, etag, revision, data } = yield this.client.drafts.draftLatestIssue(this.descriptor.id, {
|
|
52
52
|
keyId: privateKeyId,
|
|
53
53
|
});
|
|
54
54
|
return new verifiable_1.VerifiableCredential(this.client, {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../../../../src/documents/credential/draft/draft.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,yDAAsD;AAGtD,yCAAgD;AAChD,yDAAgE;AAChE,uDAAkE;AAClE,2CAA+D;AAE/D,MAAa,eAAe;IACxB,YACc,MAAiB,EACjB,SAA8B,EACjC,UAA2B;QAFxB,WAAM,GAAN,MAAM,CAAW;QACjB,cAAS,GAAT,SAAS,CAAqB;QACjC,eAAU,GAAV,UAAU,CAAiB;IACnC,CAAC;IAEJ,kBAAkB;QACd,OAAO,IAAI,yBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC;IAEK,WAAW;;YACb,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;YAE1D,OAAO;gBACH,OAAO;gBACP,UAAU;aACb,CAAC;QACN,CAAC;KAAA;IAEK,MAAM,CAAC,MAA0B;;YACnC,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;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,yBAAW,EAAC,QAAQ,CAAC;aACxC,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,
|
|
1
|
+
{"version":3,"file":"draft.js","sourceRoot":"","sources":["../../../../src/documents/credential/draft/draft.ts"],"names":[],"mappings":";;;;;;;;;;;;AAGA,yDAAsD;AAGtD,yCAAgD;AAChD,yDAAgE;AAChE,uDAAkE;AAClE,2CAA+D;AAE/D,MAAa,eAAe;IACxB,YACc,MAAiB,EACjB,SAA8B,EACjC,UAA2B;QAFxB,WAAM,GAAN,MAAM,CAAW;QACjB,cAAS,GAAT,SAAS,CAAqB;QACjC,eAAU,GAAV,UAAU,CAAiB;IACnC,CAAC;IAEJ,kBAAkB;QACd,OAAO,IAAI,yBAAgB,CAAC,IAAI,CAAC,MAAM,EAAE,aAAa,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC;IAChF,CAAC;IAEK,WAAW;;YACb,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,EAAE,CAAC;YAE1D,OAAO;gBACH,OAAO;gBACP,UAAU;aACb,CAAC;QACN,CAAC;KAAA;IAEK,MAAM,CAAC,MAA0B;;YACnC,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;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,yBAAW,EAAC,QAAQ,CAAC;aACxC,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,gBAAgB,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE;gBAC/F,KAAK,EAAE,YAAY;aACtB,CAAC,CAAC;YAEH,OAAO,IAAI,iCAAoB,CAAC,IAAI,CAAC,MAAM,EAAE;gBACzC,EAAE,EAAE,EAAE;gBACN,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,QAAQ;gBAClB,IAAI,EAAE,IAAA,qCAAwB,EAAC,wCAA8B,EAAE;oBAC3D,EAAE,EAAE,IAAI,CAAC,EAAE;oBACX,eAAe,EAAE,IAAI,CAAC,eAAe;iBACxC,CAAC;aACL,CAAC,CAAC;QACP,CAAC;KAAA;IAEK,UAAU;;YACZ,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;QAC1F,CAAC;KAAA;CACJ;AAlDD,0CAkDC","sourcesContent":["import { Readable } from 'stream';\n\nimport { ApiClient, DraftDescriptor } from '../../types';\nimport { generateKey } from '../../utils/idempotency';\nimport { DraftExportRequest, ResourceDraft } from '../../../api';\nimport { DraftDataDescriptor, DraftMetadata } from '../types';\nimport { LinkedCredential } from '../../models';\nimport { VerifiableCredential } from '../verifiable/verifiable';\nimport { strictlyConvertToApiType } from '../../utils/converters';\nimport { verifiableCredentialDataSchema } from '../../schemas';\n\nexport class DraftCredential {\n constructor(\n protected client: ApiClient,\n protected draftData: DraftDataDescriptor,\n public descriptor: DraftDescriptor,\n ) {}\n\n toLinkedCredential(): LinkedCredential<unknown> {\n return new LinkedCredential(this.client, `urn:draft:${this.descriptor.id}`);\n }\n\n async getMetaData(): Promise<DraftMetadata> {\n const { subject, validUntil } = this.draftData.meta || {};\n\n return {\n subject,\n validUntil,\n };\n }\n\n async export(params: DraftExportRequest): Promise<Readable> {\n return this.client.drafts.draftExport(this.descriptor.id, this.descriptor.revision, params);\n }\n\n async delete(): Promise<void> {\n await this.client.drafts.draftDelete(this.descriptor.id, {\n ifMatch: this.descriptor.etag,\n idempotencyKey: generateKey('delete'),\n });\n }\n\n async issue(privateKeyId: string): Promise<VerifiableCredential> {\n const { id, etag, revision, data } = await this.client.drafts.draftLatestIssue(this.descriptor.id, {\n keyId: privateKeyId,\n });\n\n return new VerifiableCredential(this.client, {\n id: id,\n etag: etag,\n revision: revision,\n data: strictlyConvertToApiType(verifiableCredentialDataSchema, {\n id: data.id,\n digestMultibase: data.digestMultibase,\n }),\n });\n }\n\n async toResource(): Promise<ResourceDraft> {\n return this.client.drafts.draftRevision(this.descriptor.id, this.descriptor.revision);\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential.d.ts","sourceRoot":"","sources":["../../src/documents/credential.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,SAAS,EAET,IAAI,EACJ,SAAS,EAET,4BAA4B,EAC5B,aAAa,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAiB,kBAAkB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAI1E,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAIrF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC/C,YAAY,EAAE,KAAK,CAAC;IACpB,UAAU,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,MAAM,IAAI;IACzD,YAAY,EAAE,IAAI,CAAC;IACnB,UAAU,EAAE,8BAA8B,CAAC,CAAC,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAC;AAEzG,qBAAa,WAAW,CAAC,CAAC,SAAS,MAAM;IAKjC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IALvB,QAAQ,CAAC,MAAM,mBAAiC;IAChD,OAAO,CAAC,MAAM,CAAgD;gBAGlD,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAGhC,SAAS,CAAC,sBAAsB,IAAI,gBAAgB;IAIpD,MAAM,IAAI,MAAM;IAYhB,iBAAiB,IAAI,MAAM;IAY3B,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,kBAAkB,GAAG,OAAO;IAI1D,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,yBAAyB,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,KAAK,EAAE,kBAAkB,GAAG,8BAA8B,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"credential.d.ts","sourceRoot":"","sources":["../../src/documents/credential.ts"],"names":[],"mappings":"AAEA,OAAO,EACH,SAAS,EAET,IAAI,EACJ,SAAS,EAET,4BAA4B,EAC5B,aAAa,EAChB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAiB,kBAAkB,EAAE,aAAa,EAAE,MAAM,QAAQ,CAAC;AAI1E,OAAO,EAAE,MAAM,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAErE,OAAO,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAIrF,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,MAAM,IAAI;IAC/C,YAAY,EAAE,KAAK,CAAC;IACpB,UAAU,EAAE,yBAAyB,CAAC,CAAC,CAAC,CAAC;CAC5C,CAAC;AAEF,MAAM,MAAM,4BAA4B,CAAC,CAAC,SAAS,MAAM,IAAI;IACzD,YAAY,EAAE,IAAI,CAAC;IACnB,UAAU,EAAE,8BAA8B,CAAC,CAAC,CAAC,CAAC;CACjD,CAAC;AAEF,MAAM,MAAM,gBAAgB,CAAC,CAAC,SAAS,MAAM,IAAI,kBAAkB,CAAC,CAAC,CAAC,GAAG,4BAA4B,CAAC,CAAC,CAAC,CAAC;AAEzG,qBAAa,WAAW,CAAC,CAAC,SAAS,MAAM;IAKjC,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,WAAW;IALvB,QAAQ,CAAC,MAAM,mBAAiC;IAChD,OAAO,CAAC,MAAM,CAAgD;gBAGlD,MAAM,EAAE,SAAS,EACjB,WAAW,EAAE,IAAI,CAAC,CAAC,CAAC;IAGhC,SAAS,CAAC,sBAAsB,IAAI,gBAAgB;IAIpD,MAAM,IAAI,MAAM;IAYhB,iBAAiB,IAAI,MAAM;IAY3B,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,kBAAkB,GAAG,OAAO;IAI1D,GAAG,CAAC,KAAK,EAAE,aAAa,GAAG,yBAAyB,CAAC,CAAC,CAAC;IACvD,GAAG,CAAC,KAAK,EAAE,kBAAkB,GAAG,8BAA8B,CAAC,CAAC,CAAC;YAyBnD,UAAU;IA6BlB,MAAM,CAAC,OAAO,CAAC,EAAE,uBAAuB,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;IAkBnF,KAAK,CACP,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,4BAA4B,CAAC,CAAC,CAAC,GACzC,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC;IAIvC,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC,CAAC,CAAC;IAQjF,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC;IAQ3F,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;IA2BjE,gBAAgB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,8BAA8B,CAAC,CAAC,CAAC,CAAC;CAK/G"}
|
package/documents/credential.js
CHANGED
|
@@ -54,14 +54,14 @@ class VcDecorator {
|
|
|
54
54
|
if ((0, types_1.isResourceCredential)(input)) {
|
|
55
55
|
// ResourceCredential
|
|
56
56
|
if (!this.canMap(input)) {
|
|
57
|
-
throw new
|
|
57
|
+
throw new error_1.DocumentedError(error_1.ErrorCode.IncompatibleUDT, `The received ResourceCredential is incompatible with the current VcDecorator instance claims model`);
|
|
58
58
|
}
|
|
59
59
|
return new with_claims_2.VerifiableCredentialWithClaims(this.client, this.flavor, this.claimsModel, input);
|
|
60
60
|
}
|
|
61
61
|
else {
|
|
62
62
|
// ResourceDraft
|
|
63
63
|
if (!this.canMap(input)) {
|
|
64
|
-
throw new
|
|
64
|
+
throw new error_1.DocumentedError(error_1.ErrorCode.IncompatibleUDT, `The received ResourceDraft is incompatible with the current VcDecorator instance claims model`);
|
|
65
65
|
}
|
|
66
66
|
return new with_claims_1.DraftCredentialWithClaims(this.client, this.flavor, this.claimsModel, input.data, input);
|
|
67
67
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"credential.js","sourceRoot":"","sources":["../../src/documents/credential.ts"],"names":[],"mappings":"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","sourcesContent":["import fetch from 'node-fetch';\n\nimport {\n ApiClient,\n CredentialDescriptor,\n Ctor,\n BlobInput,\n isResourceCredential,\n UpdatePayloadWithIssueClaims,\n UpdatePayload,\n} from './types';\nimport { NotFoundError, ResourceCredential, ResourceDraft } from '../api';\nimport { getContextJsonLdMetadata } from './decorators';\nimport { generateKey } from './utils/idempotency';\nimport { draftMetadataToApiDraftMeta, strictlyConvertToApiType } from './utils/converters';\nimport { Claims, UpdatePayloadWithClaims } from './credential/types';\nimport { UdtClaims } from './credential/claims';\nimport { DraftCredentialWithClaims } from './credential/draft/with-claims';\nimport { CredentialFlavor } from './credential/flavor';\nimport { VerifiableCredentialWithClaims } from './credential/verifiable/with-claims';\nimport { verifiableCredentialDataSchema } from './schemas';\nimport { DocumentedError, ErrorCode } from './utils/error';\n\nexport type CredentialEnvelope<T extends Claims> = {\n isVerifiable: false;\n credential: DraftCredentialWithClaims<T>;\n};\n\nexport type VerifiableCredentialEnvelope<T extends Claims> = {\n isVerifiable: true;\n credential: VerifiableCredentialWithClaims<T>;\n};\n\nexport type LoadedCredential<T extends Claims> = CredentialEnvelope<T> | VerifiableCredentialEnvelope<T>;\n\nexport class VcDecorator<T extends Claims> {\n readonly flavor = this.createCredentialFlavor();\n private claims = new UdtClaims(this.client, this.claimsModel);\n\n constructor(\n private client: ApiClient,\n private claimsModel: Ctor<T>,\n ) {}\n\n protected createCredentialFlavor(): CredentialFlavor {\n return new CredentialFlavor();\n }\n\n getIri(): string {\n const vcContextMetadata = getContextJsonLdMetadata(this.claimsModel);\n\n if (!vcContextMetadata)\n throw new DocumentedError(\n ErrorCode.VcContextAnnotationMissing,\n \"Can't find IRI information. Make sure you have defined the claims model with the @VcContext decorator.\",\n );\n\n return `${vcContextMetadata.namespace}#${vcContextMetadata.name}`;\n }\n\n getCredentialTerm(): string {\n const vcContextMetadata = getContextJsonLdMetadata(this.claimsModel);\n\n if (!vcContextMetadata)\n throw new DocumentedError(\n ErrorCode.VcContextAnnotationMissing,\n \"Can't find credential term information. Make sure you have defined the claims model with the @VcContext decorator\",\n );\n\n return `${vcContextMetadata.name}Credential`;\n }\n\n canMap(input: ResourceDraft | ResourceCredential): boolean {\n return input.data.type.includes(this.getCredentialTerm());\n }\n\n map(input: ResourceDraft): DraftCredentialWithClaims<T>;\n map(input: ResourceCredential): VerifiableCredentialWithClaims<T>;\n map(input: ResourceDraft | ResourceCredential): VerifiableCredentialWithClaims<T> | DraftCredentialWithClaims<T> {\n if (isResourceCredential(input)) {\n // ResourceCredential\n if (!this.canMap(input)) {\n throw new Error(\n `The received ResourceCredential is incompatible with the current VcDecorator instance claims model`,\n );\n }\n\n return new VerifiableCredentialWithClaims(this.client, this.flavor, this.claimsModel, input);\n } else {\n // ResourceDraft\n if (!this.canMap(input)) {\n throw new Error(\n `The received ResourceDraft is incompatible with the current VcDecorator instance claims model`,\n );\n }\n\n return new DraftCredentialWithClaims(this.client, this.flavor, this.claimsModel, input.data, input);\n }\n }\n\n private async importBlob(blob: BlobInput, request?: UpdatePayload): Promise<CredentialDescriptor> {\n const idempotencyKey = generateKey('importBlob');\n const { blobId, uploadUri } = await this.client.credentials.credentialUpload({\n idempotencyKey,\n });\n\n await fetch(uploadUri, {\n method: 'PUT',\n body: blob,\n });\n\n const resourceCredential = await this.client.credentials.credentialImport({\n annotations: request?.annotations,\n labels: request?.labels,\n blobId,\n idempotencyKey,\n });\n\n return {\n data: strictlyConvertToApiType(verifiableCredentialDataSchema, {\n id: resourceCredential.data.id,\n digestMultibase: resourceCredential.data.digestMultibase,\n }),\n id: resourceCredential.id,\n etag: resourceCredential.etag,\n revision: resourceCredential.revision,\n };\n }\n\n async create(request?: UpdatePayloadWithClaims<T>): Promise<DraftCredentialWithClaims<T>> {\n const values = request?.claims ? this.claims.marshalValues(request.claims) : undefined;\n const schema = this.claims.getDraftSchema();\n\n const { id, etag, revision, data } = await this.client.drafts.draftCreate({\n data: {\n schema,\n values,\n meta: draftMetadataToApiDraftMeta(request?.metadata),\n },\n annotations: request?.annotations,\n labels: request?.labels,\n idempotencyKey: generateKey('create'),\n });\n\n return new DraftCredentialWithClaims(this.client, this.flavor, this.claimsModel, data, { id, etag, revision });\n }\n\n async issue(\n privateKeyId: string,\n request: UpdatePayloadWithIssueClaims<T>,\n ): Promise<VerifiableCredentialWithClaims<T>> {\n return (await this.create(request)).issue(privateKeyId);\n }\n\n async loadAsDraft(id: string, revision?: number): Promise<DraftCredentialWithClaims<T>> {\n const resourceDraft = revision\n ? await this.client.drafts.draftRevision(id, revision)\n : await this.client.drafts.draftLatest(id);\n\n return this.map(resourceDraft);\n }\n\n async loadAsCredential(id: string, revision?: number): Promise<VerifiableCredentialWithClaims<T>> {\n const resourceCredential = revision\n ? await this.client.credentials.credentialRevision(id, revision)\n : await this.client.credentials.credentialLatest(id);\n\n return this.map(resourceCredential);\n }\n\n async load(id: string, revision?: number): Promise<LoadedCredential<T>> {\n let verifiableCredential: VerifiableCredentialWithClaims<T> | undefined;\n let draftCredential: DraftCredentialWithClaims<T> | undefined;\n\n try {\n verifiableCredential = await this.loadAsCredential(id, revision);\n } catch (error) {\n if (error instanceof NotFoundError) {\n draftCredential = await this.loadAsDraft(id, revision);\n } else throw error;\n }\n\n if (!draftCredential) {\n if (!verifiableCredential) throw new Error(`Resource with id '${id}' could not be found.`);\n\n return {\n isVerifiable: true,\n credential: verifiableCredential,\n };\n } else {\n return {\n isVerifiable: false,\n credential: draftCredential,\n };\n }\n }\n\n async importCredential(blob: BlobInput, request?: UpdatePayload): Promise<VerifiableCredentialWithClaims<T>> {\n const credential = await this.importBlob(blob, request);\n\n return new VerifiableCredentialWithClaims(this.client, this.flavor, this.claimsModel, credential);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"credential.js","sourceRoot":"","sources":["../../src/documents/credential.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4DAA+B;AAE/B,mCAQiB;AACjB,gCAA0E;AAC1E,6CAAwD;AACxD,qDAAkD;AAClD,mDAA2F;AAE3F,gDAAgD;AAChD,gEAA2E;AAC3E,gDAAuD;AACvD,qEAAqF;AACrF,uCAA2D;AAC3D,yCAA2D;AAc3D,MAAa,WAAW;IAIpB,YACY,MAAiB,EACjB,WAAoB;QADpB,WAAM,GAAN,MAAM,CAAW;QACjB,gBAAW,GAAX,WAAW,CAAS;QALvB,WAAM,GAAG,IAAI,CAAC,sBAAsB,EAAE,CAAC;QACxC,WAAM,GAAG,IAAI,kBAAS,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;IAK3D,CAAC;IAEM,sBAAsB;QAC5B,OAAO,IAAI,yBAAgB,EAAE,CAAC;IAClC,CAAC;IAED,MAAM;QACF,MAAM,iBAAiB,GAAG,IAAA,qCAAwB,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErE,IAAI,CAAC,iBAAiB;YAClB,MAAM,IAAI,uBAAe,CACrB,iBAAS,CAAC,0BAA0B,EACpC,wGAAwG,CAC3G,CAAC;QAEN,OAAO,GAAG,iBAAiB,CAAC,SAAS,IAAI,iBAAiB,CAAC,IAAI,EAAE,CAAC;IACtE,CAAC;IAED,iBAAiB;QACb,MAAM,iBAAiB,GAAG,IAAA,qCAAwB,EAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAErE,IAAI,CAAC,iBAAiB;YAClB,MAAM,IAAI,uBAAe,CACrB,iBAAS,CAAC,0BAA0B,EACpC,mHAAmH,CACtH,CAAC;QAEN,OAAO,GAAG,iBAAiB,CAAC,IAAI,YAAY,CAAC;IACjD,CAAC;IAED,MAAM,CAAC,KAAyC;QAC5C,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC9D,CAAC;IAID,GAAG,CAAC,KAAyC;QACzC,IAAI,IAAA,4BAAoB,EAAC,KAAK,CAAC,EAAE,CAAC;YAC9B,qBAAqB;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,uBAAe,CACrB,iBAAS,CAAC,eAAe,EACzB,oGAAoG,CACvG,CAAC;YACN,CAAC;YAED,OAAO,IAAI,4CAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC;QACjG,CAAC;aAAM,CAAC;YACJ,gBAAgB;YAChB,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;gBACtB,MAAM,IAAI,uBAAe,CACrB,iBAAS,CAAC,eAAe,EACzB,+FAA+F,CAClG,CAAC;YACN,CAAC;YAED,OAAO,IAAI,uCAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACxG,CAAC;IACL,CAAC;IAEa,UAAU,CAAC,IAAe,EAAE,OAAuB;;YAC7D,MAAM,cAAc,GAAG,IAAA,yBAAW,EAAC,YAAY,CAAC,CAAC;YACjD,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC;gBACzE,cAAc;aACjB,CAAC,CAAC;YAEH,MAAM,IAAA,oBAAK,EAAC,SAAS,EAAE;gBACnB,MAAM,EAAE,KAAK;gBACb,IAAI,EAAE,IAAI;aACb,CAAC,CAAC;YAEH,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC;gBACtE,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;gBACjC,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;gBACvB,MAAM;gBACN,cAAc;aACjB,CAAC,CAAC;YAEH,OAAO;gBACH,IAAI,EAAE,IAAA,qCAAwB,EAAC,wCAA8B,EAAE;oBAC3D,EAAE,EAAE,kBAAkB,CAAC,IAAI,CAAC,EAAE;oBAC9B,eAAe,EAAE,kBAAkB,CAAC,IAAI,CAAC,eAAe;iBAC3D,CAAC;gBACF,EAAE,EAAE,kBAAkB,CAAC,EAAE;gBACzB,IAAI,EAAE,kBAAkB,CAAC,IAAI;gBAC7B,QAAQ,EAAE,kBAAkB,CAAC,QAAQ;aACxC,CAAC;QACN,CAAC;KAAA;IAEK,MAAM,CAAC,OAAoC;;YAC7C,MAAM,MAAM,GAAG,CAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM,EAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;YACvF,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,EAAE,CAAC;YAE5C,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;gBACtE,IAAI,EAAE;oBACF,MAAM;oBACN,MAAM;oBACN,IAAI,EAAE,IAAA,wCAA2B,EAAC,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,CAAC;iBACvD;gBACD,WAAW,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,WAAW;gBACjC,MAAM,EAAE,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,MAAM;gBACvB,cAAc,EAAE,IAAA,yBAAW,EAAC,QAAQ,CAAC;aACxC,CAAC,CAAC;YAEH,OAAO,IAAI,uCAAyB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAC;QACnH,CAAC;KAAA;IAEK,KAAK,CACP,YAAoB,EACpB,OAAwC;;YAExC,OAAO,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;QAC5D,CAAC;KAAA;IAEK,WAAW,CAAC,EAAU,EAAE,QAAiB;;YAC3C,MAAM,aAAa,GAAG,QAAQ;gBAC1B,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,CAAC;gBACtD,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;YAE/C,OAAO,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;QACnC,CAAC;KAAA;IAEK,gBAAgB,CAAC,EAAU,EAAE,QAAiB;;YAChD,MAAM,kBAAkB,GAAG,QAAQ;gBAC/B,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,kBAAkB,CAAC,EAAE,EAAE,QAAQ,CAAC;gBAChE,CAAC,CAAC,MAAM,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,gBAAgB,CAAC,EAAE,CAAC,CAAC;YAEzD,OAAO,IAAI,CAAC,GAAG,CAAC,kBAAkB,CAAC,CAAC;QACxC,CAAC;KAAA;IAEK,IAAI,CAAC,EAAU,EAAE,QAAiB;;YACpC,IAAI,oBAAmE,CAAC;YACxE,IAAI,eAAyD,CAAC;YAE9D,IAAI,CAAC;gBACD,oBAAoB,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;YACrE,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACb,IAAI,KAAK,YAAY,mBAAa,EAAE,CAAC;oBACjC,eAAe,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;gBAC3D,CAAC;;oBAAM,MAAM,KAAK,CAAC;YACvB,CAAC;YAED,IAAI,CAAC,eAAe,EAAE,CAAC;gBACnB,IAAI,CAAC,oBAAoB;oBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,EAAE,uBAAuB,CAAC,CAAC;gBAE3F,OAAO;oBACH,YAAY,EAAE,IAAI;oBAClB,UAAU,EAAE,oBAAoB;iBACnC,CAAC;YACN,CAAC;iBAAM,CAAC;gBACJ,OAAO;oBACH,YAAY,EAAE,KAAK;oBACnB,UAAU,EAAE,eAAe;iBAC9B,CAAC;YACN,CAAC;QACL,CAAC;KAAA;IAEK,gBAAgB,CAAC,IAAe,EAAE,OAAuB;;YAC3D,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;YAExD,OAAO,IAAI,4CAA8B,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,UAAU,CAAC,CAAC;QACtG,CAAC;KAAA;CACJ;AAzKD,kCAyKC","sourcesContent":["import fetch from 'node-fetch';\n\nimport {\n ApiClient,\n CredentialDescriptor,\n Ctor,\n BlobInput,\n isResourceCredential,\n UpdatePayloadWithIssueClaims,\n UpdatePayload,\n} from './types';\nimport { NotFoundError, ResourceCredential, ResourceDraft } from '../api';\nimport { getContextJsonLdMetadata } from './decorators';\nimport { generateKey } from './utils/idempotency';\nimport { draftMetadataToApiDraftMeta, strictlyConvertToApiType } from './utils/converters';\nimport { Claims, UpdatePayloadWithClaims } from './credential/types';\nimport { UdtClaims } from './credential/claims';\nimport { DraftCredentialWithClaims } from './credential/draft/with-claims';\nimport { CredentialFlavor } from './credential/flavor';\nimport { VerifiableCredentialWithClaims } from './credential/verifiable/with-claims';\nimport { verifiableCredentialDataSchema } from './schemas';\nimport { DocumentedError, ErrorCode } from './utils/error';\n\nexport type CredentialEnvelope<T extends Claims> = {\n isVerifiable: false;\n credential: DraftCredentialWithClaims<T>;\n};\n\nexport type VerifiableCredentialEnvelope<T extends Claims> = {\n isVerifiable: true;\n credential: VerifiableCredentialWithClaims<T>;\n};\n\nexport type LoadedCredential<T extends Claims> = CredentialEnvelope<T> | VerifiableCredentialEnvelope<T>;\n\nexport class VcDecorator<T extends Claims> {\n readonly flavor = this.createCredentialFlavor();\n private claims = new UdtClaims(this.client, this.claimsModel);\n\n constructor(\n private client: ApiClient,\n private claimsModel: Ctor<T>,\n ) {}\n\n protected createCredentialFlavor(): CredentialFlavor {\n return new CredentialFlavor();\n }\n\n getIri(): string {\n const vcContextMetadata = getContextJsonLdMetadata(this.claimsModel);\n\n if (!vcContextMetadata)\n throw new DocumentedError(\n ErrorCode.VcContextAnnotationMissing,\n \"Can't find IRI information. Make sure you have defined the claims model with the @VcContext decorator.\",\n );\n\n return `${vcContextMetadata.namespace}#${vcContextMetadata.name}`;\n }\n\n getCredentialTerm(): string {\n const vcContextMetadata = getContextJsonLdMetadata(this.claimsModel);\n\n if (!vcContextMetadata)\n throw new DocumentedError(\n ErrorCode.VcContextAnnotationMissing,\n \"Can't find credential term information. Make sure you have defined the claims model with the @VcContext decorator\",\n );\n\n return `${vcContextMetadata.name}Credential`;\n }\n\n canMap(input: ResourceDraft | ResourceCredential): boolean {\n return input.data.type.includes(this.getCredentialTerm());\n }\n\n map(input: ResourceDraft): DraftCredentialWithClaims<T>;\n map(input: ResourceCredential): VerifiableCredentialWithClaims<T>;\n map(input: ResourceDraft | ResourceCredential): VerifiableCredentialWithClaims<T> | DraftCredentialWithClaims<T> {\n if (isResourceCredential(input)) {\n // ResourceCredential\n if (!this.canMap(input)) {\n throw new DocumentedError(\n ErrorCode.IncompatibleUDT,\n `The received ResourceCredential is incompatible with the current VcDecorator instance claims model`,\n );\n }\n\n return new VerifiableCredentialWithClaims(this.client, this.flavor, this.claimsModel, input);\n } else {\n // ResourceDraft\n if (!this.canMap(input)) {\n throw new DocumentedError(\n ErrorCode.IncompatibleUDT,\n `The received ResourceDraft is incompatible with the current VcDecorator instance claims model`,\n );\n }\n\n return new DraftCredentialWithClaims(this.client, this.flavor, this.claimsModel, input.data, input);\n }\n }\n\n private async importBlob(blob: BlobInput, request?: UpdatePayload): Promise<CredentialDescriptor> {\n const idempotencyKey = generateKey('importBlob');\n const { blobId, uploadUri } = await this.client.credentials.credentialUpload({\n idempotencyKey,\n });\n\n await fetch(uploadUri, {\n method: 'PUT',\n body: blob,\n });\n\n const resourceCredential = await this.client.credentials.credentialImport({\n annotations: request?.annotations,\n labels: request?.labels,\n blobId,\n idempotencyKey,\n });\n\n return {\n data: strictlyConvertToApiType(verifiableCredentialDataSchema, {\n id: resourceCredential.data.id,\n digestMultibase: resourceCredential.data.digestMultibase,\n }),\n id: resourceCredential.id,\n etag: resourceCredential.etag,\n revision: resourceCredential.revision,\n };\n }\n\n async create(request?: UpdatePayloadWithClaims<T>): Promise<DraftCredentialWithClaims<T>> {\n const values = request?.claims ? this.claims.marshalValues(request.claims) : undefined;\n const schema = this.claims.getDraftSchema();\n\n const { id, etag, revision, data } = await this.client.drafts.draftCreate({\n data: {\n schema,\n values,\n meta: draftMetadataToApiDraftMeta(request?.metadata),\n },\n annotations: request?.annotations,\n labels: request?.labels,\n idempotencyKey: generateKey('create'),\n });\n\n return new DraftCredentialWithClaims(this.client, this.flavor, this.claimsModel, data, { id, etag, revision });\n }\n\n async issue(\n privateKeyId: string,\n request: UpdatePayloadWithIssueClaims<T>,\n ): Promise<VerifiableCredentialWithClaims<T>> {\n return (await this.create(request)).issue(privateKeyId);\n }\n\n async loadAsDraft(id: string, revision?: number): Promise<DraftCredentialWithClaims<T>> {\n const resourceDraft = revision\n ? await this.client.drafts.draftRevision(id, revision)\n : await this.client.drafts.draftLatest(id);\n\n return this.map(resourceDraft);\n }\n\n async loadAsCredential(id: string, revision?: number): Promise<VerifiableCredentialWithClaims<T>> {\n const resourceCredential = revision\n ? await this.client.credentials.credentialRevision(id, revision)\n : await this.client.credentials.credentialLatest(id);\n\n return this.map(resourceCredential);\n }\n\n async load(id: string, revision?: number): Promise<LoadedCredential<T>> {\n let verifiableCredential: VerifiableCredentialWithClaims<T> | undefined;\n let draftCredential: DraftCredentialWithClaims<T> | undefined;\n\n try {\n verifiableCredential = await this.loadAsCredential(id, revision);\n } catch (error) {\n if (error instanceof NotFoundError) {\n draftCredential = await this.loadAsDraft(id, revision);\n } else throw error;\n }\n\n if (!draftCredential) {\n if (!verifiableCredential) throw new Error(`Resource with id '${id}' could not be found.`);\n\n return {\n isVerifiable: true,\n credential: verifiableCredential,\n };\n } else {\n return {\n isVerifiable: false,\n credential: draftCredential,\n };\n }\n }\n\n async importCredential(blob: BlobInput, request?: UpdatePayload): Promise<VerifiableCredentialWithClaims<T>> {\n const credential = await this.importBlob(blob, request);\n\n return new VerifiableCredentialWithClaims(this.client, this.flavor, this.claimsModel, credential);\n }\n}\n"]}
|
package/documents/models.d.ts
CHANGED
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ApiClient, Claims, Ctor, FileBlob, FileDescriptor, LinkedCredentialDescriptor, LinkedFileDescriptor } from './types';
|
|
2
2
|
import { Readable } from 'stream';
|
|
3
|
+
import type { LinkedRef } from '../api';
|
|
3
4
|
import { UnknownVerifiableCredential } from './credential/verifiable/unknown';
|
|
4
5
|
import { VerifiableCredentialWithClaims } from './credential/verifiable/with-claims';
|
|
5
6
|
import { UnknownDraftCredential } from './credential/draft/unknown';
|
|
@@ -22,7 +23,8 @@ export declare class LinkedCredential<T extends Claims | unknown> implements Lin
|
|
|
22
23
|
static createClaimValue(id: string, digestMultibase?: string): LinkedCredentialDescriptor;
|
|
23
24
|
id: string;
|
|
24
25
|
type: LinkedCredentialDescriptor['type'];
|
|
25
|
-
constructor(client: ApiClient,
|
|
26
|
+
constructor(client: ApiClient, ref: LinkedRef);
|
|
27
|
+
constructor(client: ApiClient, id: string, digestMultibase?: string);
|
|
26
28
|
toJSON(): LinkedCredentialDescriptor;
|
|
27
29
|
private getLinkedCredentialResource;
|
|
28
30
|
private getLinkedDraftResource;
|
|
@@ -44,7 +46,8 @@ export declare class LinkedFile implements LinkedFileDescriptor {
|
|
|
44
46
|
static createClaimValue(id: string, digestMultibase?: string): LinkedFileDescriptor;
|
|
45
47
|
id: string;
|
|
46
48
|
type: LinkedFileDescriptor['type'];
|
|
47
|
-
constructor(client: ApiClient,
|
|
49
|
+
constructor(client: ApiClient, ref: LinkedRef);
|
|
50
|
+
constructor(client: ApiClient, id: string, digestMultibase?: string);
|
|
48
51
|
toJSON(): LinkedFileDescriptor;
|
|
49
52
|
private getLinkedFileResource;
|
|
50
53
|
dereference(): Promise<DownloadableFile>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/documents/models.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,SAAS,EACT,MAAM,EACN,IAAI,EACJ,QAAQ,EACR,cAAc,EACd,0BAA0B,EAC1B,oBAAoB,EACvB,MAAM,SAAS,CAAC;AAEjB,OAAO,EAAE,QAAQ,EAAE,MAAM,QAAQ,CAAC;
|
|
1
|
+
{"version":3,"file":"models.d.ts","sourceRoot":"","sources":["../../src/documents/models.ts"],"names":[],"mappings":"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"}
|
package/documents/models.js
CHANGED
|
@@ -59,10 +59,11 @@ class LinkedCredential {
|
|
|
59
59
|
type: 'LinkedCredential',
|
|
60
60
|
};
|
|
61
61
|
}
|
|
62
|
-
constructor(client,
|
|
62
|
+
constructor(client, idOrRef, digestMultibase) {
|
|
63
63
|
this.client = client;
|
|
64
64
|
this.digestMultibase = digestMultibase;
|
|
65
65
|
this.type = 'LinkedCredential';
|
|
66
|
+
const id = typeof idOrRef === 'string' ? idOrRef : idOrRef.blobId;
|
|
66
67
|
this.id = LinkedCredential.normalizeLinkedCredentialId(id).linkedId;
|
|
67
68
|
}
|
|
68
69
|
toJSON() {
|
|
@@ -178,10 +179,11 @@ class LinkedFile {
|
|
|
178
179
|
type: 'LinkedFile',
|
|
179
180
|
};
|
|
180
181
|
}
|
|
181
|
-
constructor(client,
|
|
182
|
+
constructor(client, idOrRef, digestMultibase) {
|
|
182
183
|
this.client = client;
|
|
183
184
|
this.digestMultibase = digestMultibase;
|
|
184
185
|
this.type = 'LinkedFile';
|
|
186
|
+
const id = typeof idOrRef === 'string' ? idOrRef : idOrRef.blobId;
|
|
185
187
|
this.id = LinkedFile.normalizeLinkedFileId(id).linkedId;
|
|
186
188
|
}
|
|
187
189
|
toJSON() {
|
package/documents/models.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/documents/models.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApiClient,\n Claims,\n Ctor,\n FileBlob,\n FileDescriptor,\n LinkedCredentialDescriptor,\n LinkedFileDescriptor,\n} from './types';\nimport { buffer } from './utils/stream';\nimport { Readable } from 'stream';\nimport type { CredentialFilterData, FileFilterData, ResourceCredential, ResourceDraft, ResourceFile } from '../api';\nimport { UnknownVerifiableCredential } from './credential/verifiable/unknown';\nimport { VerifiableCredentialWithClaims } from './credential/verifiable/with-claims';\n\nimport { validate } from 'uuid';\nimport { UnknownDraftCredential } from './credential/draft/unknown';\nimport { DraftCredentialWithClaims } from './credential/draft/with-claims';\nimport { UnknownCredential } from './credential/unknown';\nimport { CredentialWithClaims } from './credential/with-claims';\n\ntype NormalizedLinkedFileId = {\n linkedId: string;\n resourceId?: string;\n};\n\ntype NormalizedLinkedCredentialId = {\n linkedId: string;\n resourceId?: string;\n isDraft: boolean;\n};\n\nexport class LinkedCredential<T extends Claims | unknown> implements LinkedCredentialDescriptor {\n static normalizeLinkedCredentialId(id: string): NormalizedLinkedCredentialId {\n const expectedCredentialResourcePrefix = 'urn:credential:';\n const expectedDraftResourcePrefix = 'urn:draft:';\n\n if (id.startsWith('urn:')) {\n if (id.startsWith(expectedDraftResourcePrefix)) {\n return {\n isDraft: true,\n linkedId: id,\n resourceId: id.slice(expectedDraftResourcePrefix.length),\n };\n } else if (id.startsWith(expectedCredentialResourcePrefix)) {\n return {\n isDraft: false,\n linkedId: id,\n resourceId: id.slice(expectedCredentialResourcePrefix.length),\n };\n } else {\n throw new Error(`The ID does not refer to a credential nor to a draft: ${id}`);\n }\n }\n\n // We assume it's a link to a verifiable credential instead of a draft in case of a uuid\n // without the expected draft prefix\n if (validate(id)) {\n return {\n isDraft: false,\n linkedId: expectedCredentialResourcePrefix + id,\n resourceId: id,\n };\n }\n\n return {\n isDraft: false,\n linkedId: id,\n };\n }\n\n static createClaimValue(id: string, digestMultibase?: string): LinkedCredentialDescriptor {\n return {\n id: LinkedCredential.normalizeLinkedCredentialId(id).linkedId,\n digestMultibase,\n type: 'LinkedCredential',\n };\n }\n\n public id: string;\n public type: LinkedCredentialDescriptor['type'] = 'LinkedCredential';\n\n constructor(\n private client: ApiClient,\n id: string,\n public digestMultibase?: string,\n ) {\n this.id = LinkedCredential.normalizeLinkedCredentialId(id).linkedId;\n }\n\n toJSON(): LinkedCredentialDescriptor {\n return LinkedCredential.createClaimValue(this.id, this.digestMultibase);\n }\n\n private async getLinkedCredentialResource(): Promise<ResourceCredential> {\n const idDescriptor = LinkedCredential.normalizeLinkedCredentialId(this.id);\n\n if (idDescriptor.resourceId) {\n return this.client.credentials.credentialLatest(idDescriptor.resourceId);\n }\n\n let filterData: CredentialFilterData = {\n id: {\n operator: 'EQUAL',\n value: idDescriptor.linkedId,\n },\n };\n\n if (this.digestMultibase) {\n filterData.digestMultibase = {\n operator: 'EQUAL',\n value: this.digestMultibase,\n };\n }\n\n const result = await this.client.credentials.credentialSearch({\n filter: [\n {\n data: filterData,\n },\n ],\n });\n\n const linkedCredential = result.items.at(0);\n\n if (!linkedCredential) {\n throw new Error(\n `Could not resolve credential resource. Please ensure that the linked credential exists or that you have access to it`,\n );\n }\n\n return linkedCredential;\n }\n\n private async getLinkedDraftResource(): Promise<ResourceDraft> {\n const idDescriptor = LinkedCredential.normalizeLinkedCredentialId(this.id);\n\n if (idDescriptor.resourceId) {\n return this.client.drafts.draftLatest(idDescriptor.resourceId);\n }\n\n throw new Error(\n `Could not resolve draft credential resource. Please ensure that the linked draft exists or that you have access to it`,\n );\n }\n\n async dereference(): Promise<UnknownCredential<T>> {\n const idDescriptor = LinkedCredential.normalizeLinkedCredentialId(this.id);\n if (idDescriptor.isDraft) {\n return new UnknownCredential(await this.dereferenceDraft());\n } else {\n return new UnknownCredential(await this.dereferenceVerifiableCredential());\n }\n }\n\n async dereferenceDraft(): Promise<UnknownDraftCredential<T>> {\n const linkedDraftResource = await this.getLinkedDraftResource();\n\n return new UnknownDraftCredential(this.client, linkedDraftResource.data, linkedDraftResource);\n }\n\n async dereferenceVerifiableCredential(): Promise<UnknownVerifiableCredential<T>> {\n const linkedCredentialResource = await this.getLinkedCredentialResource();\n\n return new UnknownVerifiableCredential(this.client, linkedCredentialResource);\n }\n\n async dereferenceAs<K extends Claims>(\n claimsModel: Ctor<T extends Claims ? (K extends T ? K : never) : K>,\n ): Promise<CredentialWithClaims<K>> {\n return (await this.dereference()).map(claimsModel);\n }\n\n async dereferenceDraftAs<K extends Claims>(\n claimsModel: Ctor<T extends Claims ? (K extends T ? K : never) : K>,\n ): Promise<DraftCredentialWithClaims<K>> {\n return (await this.dereferenceDraft()).map(claimsModel);\n }\n\n async dereferenceVerifiableCredentialAs<K extends Claims>(\n claimsModel: Ctor<T extends Claims ? (K extends T ? K : never) : K>,\n ): Promise<VerifiableCredentialWithClaims<K>> {\n return (await this.dereferenceVerifiableCredential()).map(claimsModel);\n }\n}\n\ntype DownloadableFile = FileDescriptor & {\n getReader: () => Promise<Readable>;\n download: () => Promise<FileBlob>;\n};\n\nexport class LinkedFile implements LinkedFileDescriptor {\n static normalizeLinkedFileId(id: string): NormalizedLinkedFileId {\n const expectedFileResourcePrefix = 'urn:file:';\n\n if (id.startsWith('urn:')) {\n if (!id.startsWith(expectedFileResourcePrefix)) {\n throw new Error(`The ID does not refer to a file: ${id}`);\n }\n\n return {\n linkedId: id,\n resourceId: id.slice(expectedFileResourcePrefix.length),\n };\n }\n\n if (validate(id)) {\n return {\n linkedId: expectedFileResourcePrefix + id,\n resourceId: id,\n };\n }\n\n return {\n linkedId: id,\n };\n }\n\n static createClaimValue(id: string, digestMultibase?: string): LinkedFileDescriptor {\n return {\n id: LinkedFile.normalizeLinkedFileId(id).linkedId,\n digestMultibase,\n type: 'LinkedFile',\n };\n }\n\n public id: string;\n public type: LinkedFileDescriptor['type'] = 'LinkedFile';\n\n constructor(\n private client: ApiClient,\n id: string,\n public digestMultibase?: string,\n ) {\n this.id = LinkedFile.normalizeLinkedFileId(id).linkedId;\n }\n\n toJSON(): LinkedFileDescriptor {\n return LinkedFile.createClaimValue(this.id, this.digestMultibase);\n }\n\n private async getLinkedFileResource(): Promise<ResourceFile> {\n const idDescriptor = LinkedFile.normalizeLinkedFileId(this.id);\n\n if (idDescriptor.resourceId) {\n return this.client.files.fileLatest(idDescriptor.resourceId);\n }\n\n let filterData: FileFilterData = {\n id: {\n operator: 'EQUAL',\n value: idDescriptor.linkedId,\n },\n };\n\n if (this.digestMultibase) {\n filterData.digestMultibase = {\n operator: 'EQUAL',\n value: this.digestMultibase,\n };\n }\n\n const result = await this.client.files.fileSearch({\n filter: [\n {\n data: filterData,\n },\n ],\n });\n\n const linkedFile = result.items.at(0);\n\n if (!linkedFile) {\n throw new Error(\n `Could not resolve file resource. Please ensure that the linked file exists or that you have access to it`,\n );\n }\n\n return linkedFile;\n }\n\n async dereference(): Promise<DownloadableFile> {\n const file = await this.getLinkedFileResource();\n\n return {\n id: file.id,\n revision: file.revision,\n etag: file.etag,\n data: file.data,\n\n getReader: () => this.client.files.fileDownload(file.id, file.revision),\n download: async () => {\n const response = await this.client.files.fileDownload(file.id, file.revision);\n return buffer(response);\n },\n };\n }\n}\n\nexport class Rfc3339Date {\n private readonly date: Date;\n\n constructor(year: number, month: number, day: number);\n constructor(dateString: string);\n constructor(date: Date);\n constructor();\n constructor(...args: any[]) {\n if (args.length === 1 && (typeof args[0] === 'string' || args[0] instanceof Date)) {\n const parsedDate = new Date(args[0]);\n\n this.date = new Date(Date.UTC(parsedDate.getFullYear(), parsedDate.getMonth(), parsedDate.getUTCDate()));\n } else if (\n args.length === 3 &&\n typeof args[0] === 'number' &&\n typeof args[1] === 'number' &&\n typeof args[2] === 'number'\n ) {\n this.date = new Date(Date.UTC(args[0], args[1], args[2]));\n } else {\n this.date = new Date();\n }\n\n this.date.setUTCHours(0, 0, 0, 0);\n }\n\n toString(): string {\n return this.date.toISOString().split('T')[0];\n }\n\n toJSON(): string {\n return this.toString();\n }\n\n toDate(): Date {\n return new Date(this.date);\n }\n}\n\nexport class Rfc3339DateTime {\n private readonly date: Date;\n\n constructor(year: number, month: number, day: number);\n constructor(dateString: string);\n constructor(date: Date);\n constructor();\n constructor(...args: any[]) {\n if (args.length === 1 && (typeof args[0] === 'string' || args[0] instanceof Date)) {\n this.date = new Date(args[0]);\n } else if (\n args.length === 3 &&\n typeof args[0] === 'number' &&\n typeof args[1] === 'number' &&\n typeof args[2] === 'number'\n ) {\n this.date = new Date(args[0], args[1], args[2]);\n } else {\n this.date = new Date();\n }\n }\n\n toString(): string {\n return this.date.toISOString();\n }\n\n toJSON(): string {\n return this.toString();\n }\n\n toDate(): Date {\n return new Date(this.date);\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"models.js","sourceRoot":"","sources":["../../src/documents/models.ts"],"names":[],"mappings":"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","sourcesContent":["import {\n ApiClient,\n Claims,\n Ctor,\n FileBlob,\n FileDescriptor,\n LinkedCredentialDescriptor,\n LinkedFileDescriptor,\n} from './types';\nimport { buffer } from './utils/stream';\nimport { Readable } from 'stream';\nimport type {\n CredentialFilterData,\n FileFilterData,\n LinkedRef,\n ResourceCredential,\n ResourceDraft,\n ResourceFile,\n} from '../api';\nimport { UnknownVerifiableCredential } from './credential/verifiable/unknown';\nimport { VerifiableCredentialWithClaims } from './credential/verifiable/with-claims';\n\nimport { validate } from 'uuid';\nimport { UnknownDraftCredential } from './credential/draft/unknown';\nimport { DraftCredentialWithClaims } from './credential/draft/with-claims';\nimport { UnknownCredential } from './credential/unknown';\nimport { CredentialWithClaims } from './credential/with-claims';\n\ntype NormalizedLinkedFileId = {\n linkedId: string;\n resourceId?: string;\n};\n\ntype NormalizedLinkedCredentialId = {\n linkedId: string;\n resourceId?: string;\n isDraft: boolean;\n};\n\nexport class LinkedCredential<T extends Claims | unknown> implements LinkedCredentialDescriptor {\n static normalizeLinkedCredentialId(id: string): NormalizedLinkedCredentialId {\n const expectedCredentialResourcePrefix = 'urn:credential:';\n const expectedDraftResourcePrefix = 'urn:draft:';\n\n if (id.startsWith('urn:')) {\n if (id.startsWith(expectedDraftResourcePrefix)) {\n return {\n isDraft: true,\n linkedId: id,\n resourceId: id.slice(expectedDraftResourcePrefix.length),\n };\n } else if (id.startsWith(expectedCredentialResourcePrefix)) {\n return {\n isDraft: false,\n linkedId: id,\n resourceId: id.slice(expectedCredentialResourcePrefix.length),\n };\n } else {\n throw new Error(`The ID does not refer to a credential nor to a draft: ${id}`);\n }\n }\n\n // We assume it's a link to a verifiable credential instead of a draft in case of a uuid\n // without the expected draft prefix\n if (validate(id)) {\n return {\n isDraft: false,\n linkedId: expectedCredentialResourcePrefix + id,\n resourceId: id,\n };\n }\n\n return {\n isDraft: false,\n linkedId: id,\n };\n }\n\n static createClaimValue(id: string, digestMultibase?: string): LinkedCredentialDescriptor {\n return {\n id: LinkedCredential.normalizeLinkedCredentialId(id).linkedId,\n digestMultibase,\n type: 'LinkedCredential',\n };\n }\n\n public id: string;\n public type: LinkedCredentialDescriptor['type'] = 'LinkedCredential';\n\n constructor(client: ApiClient, ref: LinkedRef);\n constructor(client: ApiClient, id: string, digestMultibase?: string);\n constructor(\n private client: ApiClient,\n idOrRef: string | LinkedRef,\n public digestMultibase?: string,\n ) {\n const id = typeof idOrRef === 'string' ? idOrRef : idOrRef.blobId;\n this.id = LinkedCredential.normalizeLinkedCredentialId(id).linkedId;\n }\n\n toJSON(): LinkedCredentialDescriptor {\n return LinkedCredential.createClaimValue(this.id, this.digestMultibase);\n }\n\n private async getLinkedCredentialResource(): Promise<ResourceCredential> {\n const idDescriptor = LinkedCredential.normalizeLinkedCredentialId(this.id);\n\n if (idDescriptor.resourceId) {\n return this.client.credentials.credentialLatest(idDescriptor.resourceId);\n }\n\n let filterData: CredentialFilterData = {\n id: {\n operator: 'EQUAL',\n value: idDescriptor.linkedId,\n },\n };\n\n if (this.digestMultibase) {\n filterData.digestMultibase = {\n operator: 'EQUAL',\n value: this.digestMultibase,\n };\n }\n\n const result = await this.client.credentials.credentialSearch({\n filter: [\n {\n data: filterData,\n },\n ],\n });\n\n const linkedCredential = result.items.at(0);\n\n if (!linkedCredential) {\n throw new Error(\n `Could not resolve credential resource. Please ensure that the linked credential exists or that you have access to it`,\n );\n }\n\n return linkedCredential;\n }\n\n private async getLinkedDraftResource(): Promise<ResourceDraft> {\n const idDescriptor = LinkedCredential.normalizeLinkedCredentialId(this.id);\n\n if (idDescriptor.resourceId) {\n return this.client.drafts.draftLatest(idDescriptor.resourceId);\n }\n\n throw new Error(\n `Could not resolve draft credential resource. Please ensure that the linked draft exists or that you have access to it`,\n );\n }\n\n async dereference(): Promise<UnknownCredential<T>> {\n const idDescriptor = LinkedCredential.normalizeLinkedCredentialId(this.id);\n if (idDescriptor.isDraft) {\n return new UnknownCredential(await this.dereferenceDraft());\n } else {\n return new UnknownCredential(await this.dereferenceVerifiableCredential());\n }\n }\n\n async dereferenceDraft(): Promise<UnknownDraftCredential<T>> {\n const linkedDraftResource = await this.getLinkedDraftResource();\n\n return new UnknownDraftCredential(this.client, linkedDraftResource.data, linkedDraftResource);\n }\n\n async dereferenceVerifiableCredential(): Promise<UnknownVerifiableCredential<T>> {\n const linkedCredentialResource = await this.getLinkedCredentialResource();\n\n return new UnknownVerifiableCredential(this.client, linkedCredentialResource);\n }\n\n async dereferenceAs<K extends Claims>(\n claimsModel: Ctor<T extends Claims ? (K extends T ? K : never) : K>,\n ): Promise<CredentialWithClaims<K>> {\n return (await this.dereference()).map(claimsModel);\n }\n\n async dereferenceDraftAs<K extends Claims>(\n claimsModel: Ctor<T extends Claims ? (K extends T ? K : never) : K>,\n ): Promise<DraftCredentialWithClaims<K>> {\n return (await this.dereferenceDraft()).map(claimsModel);\n }\n\n async dereferenceVerifiableCredentialAs<K extends Claims>(\n claimsModel: Ctor<T extends Claims ? (K extends T ? K : never) : K>,\n ): Promise<VerifiableCredentialWithClaims<K>> {\n return (await this.dereferenceVerifiableCredential()).map(claimsModel);\n }\n}\n\ntype DownloadableFile = FileDescriptor & {\n getReader: () => Promise<Readable>;\n download: () => Promise<FileBlob>;\n};\n\nexport class LinkedFile implements LinkedFileDescriptor {\n static normalizeLinkedFileId(id: string): NormalizedLinkedFileId {\n const expectedFileResourcePrefix = 'urn:file:';\n\n if (id.startsWith('urn:')) {\n if (!id.startsWith(expectedFileResourcePrefix)) {\n throw new Error(`The ID does not refer to a file: ${id}`);\n }\n\n return {\n linkedId: id,\n resourceId: id.slice(expectedFileResourcePrefix.length),\n };\n }\n\n if (validate(id)) {\n return {\n linkedId: expectedFileResourcePrefix + id,\n resourceId: id,\n };\n }\n\n return {\n linkedId: id,\n };\n }\n\n static createClaimValue(id: string, digestMultibase?: string): LinkedFileDescriptor {\n return {\n id: LinkedFile.normalizeLinkedFileId(id).linkedId,\n digestMultibase,\n type: 'LinkedFile',\n };\n }\n\n public id: string;\n public type: LinkedFileDescriptor['type'] = 'LinkedFile';\n\n constructor(client: ApiClient, ref: LinkedRef);\n constructor(client: ApiClient, id: string, digestMultibase?: string);\n constructor(\n private client: ApiClient,\n idOrRef: string | LinkedRef,\n public digestMultibase?: string,\n ) {\n const id = typeof idOrRef === 'string' ? idOrRef : idOrRef.blobId;\n this.id = LinkedFile.normalizeLinkedFileId(id).linkedId;\n }\n\n toJSON(): LinkedFileDescriptor {\n return LinkedFile.createClaimValue(this.id, this.digestMultibase);\n }\n\n private async getLinkedFileResource(): Promise<ResourceFile> {\n const idDescriptor = LinkedFile.normalizeLinkedFileId(this.id);\n\n if (idDescriptor.resourceId) {\n return this.client.files.fileLatest(idDescriptor.resourceId);\n }\n\n let filterData: FileFilterData = {\n id: {\n operator: 'EQUAL',\n value: idDescriptor.linkedId,\n },\n };\n\n if (this.digestMultibase) {\n filterData.digestMultibase = {\n operator: 'EQUAL',\n value: this.digestMultibase,\n };\n }\n\n const result = await this.client.files.fileSearch({\n filter: [\n {\n data: filterData,\n },\n ],\n });\n\n const linkedFile = result.items.at(0);\n\n if (!linkedFile) {\n throw new Error(\n `Could not resolve file resource. Please ensure that the linked file exists or that you have access to it`,\n );\n }\n\n return linkedFile;\n }\n\n async dereference(): Promise<DownloadableFile> {\n const file = await this.getLinkedFileResource();\n\n return {\n id: file.id,\n revision: file.revision,\n etag: file.etag,\n data: file.data,\n\n getReader: () => this.client.files.fileDownload(file.id, file.revision),\n download: async () => {\n const response = await this.client.files.fileDownload(file.id, file.revision);\n return buffer(response);\n },\n };\n }\n}\n\nexport class Rfc3339Date {\n private readonly date: Date;\n\n constructor(year: number, month: number, day: number);\n constructor(dateString: string);\n constructor(date: Date);\n constructor();\n constructor(...args: any[]) {\n if (args.length === 1 && (typeof args[0] === 'string' || args[0] instanceof Date)) {\n const parsedDate = new Date(args[0]);\n\n this.date = new Date(Date.UTC(parsedDate.getFullYear(), parsedDate.getMonth(), parsedDate.getUTCDate()));\n } else if (\n args.length === 3 &&\n typeof args[0] === 'number' &&\n typeof args[1] === 'number' &&\n typeof args[2] === 'number'\n ) {\n this.date = new Date(Date.UTC(args[0], args[1], args[2]));\n } else {\n this.date = new Date();\n }\n\n this.date.setUTCHours(0, 0, 0, 0);\n }\n\n toString(): string {\n return this.date.toISOString().split('T')[0];\n }\n\n toJSON(): string {\n return this.toString();\n }\n\n toDate(): Date {\n return new Date(this.date);\n }\n}\n\nexport class Rfc3339DateTime {\n private readonly date: Date;\n\n constructor(year: number, month: number, day: number);\n constructor(dateString: string);\n constructor(date: Date);\n constructor();\n constructor(...args: any[]) {\n if (args.length === 1 && (typeof args[0] === 'string' || args[0] instanceof Date)) {\n this.date = new Date(args[0]);\n } else if (\n args.length === 3 &&\n typeof args[0] === 'number' &&\n typeof args[1] === 'number' &&\n typeof args[2] === 'number'\n ) {\n this.date = new Date(args[0], args[1], args[2]);\n } else {\n this.date = new Date();\n }\n }\n\n toString(): string {\n return this.date.toISOString();\n }\n\n toJSON(): string {\n return this.toString();\n }\n\n toDate(): Date {\n return new Date(this.date);\n }\n}\n"]}
|
|
@@ -7,6 +7,7 @@ import { VerifiableCredentialWithClaims } from './credential/verifiable/with-cla
|
|
|
7
7
|
export declare class VpDecorator {
|
|
8
8
|
private client;
|
|
9
9
|
constructor(client: ApiClient);
|
|
10
|
+
private linkedRefsToResourceIds;
|
|
10
11
|
private importBlob;
|
|
11
12
|
/**
|
|
12
13
|
* @deprecated Please use `importPresentation` instead. This method will be removed after January 2025.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../../src/documents/presentation.ts"],"names":[],"mappings":"AAEA,OAAO,
|
|
1
|
+
{"version":3,"file":"presentation.d.ts","sourceRoot":"","sources":["../../src/documents/presentation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAa,kBAAkB,EAAE,oBAAoB,EAAE,MAAM,QAAQ,CAAC;AAC7E,OAAO,EAAE,sBAAsB,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,SAAS,EAAE,SAAS,EAA0B,aAAa,EAAE,MAAM,SAAS,CAAC;AAEtF,OAAO,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAC1E,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAC9E,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,qBAAa,WAAW;IACR,OAAO,CAAC,MAAM;gBAAN,MAAM,EAAE,SAAS;IAErC,OAAO,CAAC,uBAAuB;YAIjB,UAAU;IA4BxB;;OAEG;IACG,MAAM,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAIjF,kBAAkB,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,aAAa,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAMnG,GAAG,CAAC,KAAK,EAAE,oBAAoB,GAAG,sBAAsB;IAWlD,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAQ1E,KAAK,CAAC,WAAW,EAAE,kBAAkB,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAC/F,KAAK,CAAC,WAAW,EAAE,8BAA8B,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAChH,KAAK,CAAC,WAAW,EAAE,2BAA2B,CAAC,GAAG,CAAC,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAC7G,KAAK,CAAC,WAAW,EAAE,oBAAoB,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IACjG,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;CAyBtF"}
|
|
@@ -21,6 +21,9 @@ class VpDecorator {
|
|
|
21
21
|
constructor(client) {
|
|
22
22
|
this.client = client;
|
|
23
23
|
}
|
|
24
|
+
linkedRefsToResourceIds(refs) {
|
|
25
|
+
return refs.map((item) => item.resourceId);
|
|
26
|
+
}
|
|
24
27
|
importBlob(blob, request) {
|
|
25
28
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26
29
|
var _a;
|
|
@@ -43,7 +46,7 @@ class VpDecorator {
|
|
|
43
46
|
etag: resourcePresentation.etag,
|
|
44
47
|
revision: resourcePresentation.revision,
|
|
45
48
|
data: {
|
|
46
|
-
linkedCredentials: (_a = resourcePresentation.data.
|
|
49
|
+
linkedCredentials: this.linkedRefsToResourceIds((_a = resourcePresentation.data.linkedCredentialRefs) !== null && _a !== void 0 ? _a : []),
|
|
47
50
|
},
|
|
48
51
|
};
|
|
49
52
|
});
|
|
@@ -69,7 +72,7 @@ class VpDecorator {
|
|
|
69
72
|
etag: input.etag,
|
|
70
73
|
revision: input.revision,
|
|
71
74
|
data: {
|
|
72
|
-
linkedCredentials: (_a = input.data.
|
|
75
|
+
linkedCredentials: this.linkedRefsToResourceIds((_a = input.data.linkedCredentialRefs) !== null && _a !== void 0 ? _a : []),
|
|
73
76
|
},
|
|
74
77
|
});
|
|
75
78
|
}
|
|
@@ -100,7 +103,7 @@ class VpDecorator {
|
|
|
100
103
|
etag: resourcePresentation.etag,
|
|
101
104
|
revision: resourcePresentation.revision,
|
|
102
105
|
data: {
|
|
103
|
-
linkedCredentials: (_a = resourcePresentation.data.
|
|
106
|
+
linkedCredentials: this.linkedRefsToResourceIds((_a = resourcePresentation.data.linkedCredentialRefs) !== null && _a !== void 0 ? _a : []),
|
|
104
107
|
},
|
|
105
108
|
});
|
|
106
109
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"presentation.js","sourceRoot":"","sources":["../../src/documents/presentation.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;AAAA,4DAA+B;AAG/B,kDAA+D;AAE/D,qDAAkD;AAClD,mEAA0E;AAI1E,MAAa,WAAW;IACpB,YAAoB,MAAiB;QAAjB,WAAM,GAAN,MAAM,CAAW;IAAG,CAAC;
|
|
1
|
+
{"version":3,"file":"presentation.js","sourceRoot":"","sources":["../../src/documents/presentation.ts"],"names":[],"mappings":"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","sourcesContent":["import fetch from 'node-fetch';\n\nimport { LinkedRef, ResourceCredential, ResourcePresentation } from '../api';\nimport { VerifiablePresentation } from './presentation/issued';\nimport { ApiClient, BlobInput, PresentationDescriptor, UpdatePayload } from './types';\nimport { generateKey } from './utils/idempotency';\nimport { VerifiableCredential } from './credential/verifiable/verifiable';\nimport { UnknownVerifiableCredential } from './credential/verifiable/unknown';\nimport { VerifiableCredentialWithClaims } from './credential/verifiable/with-claims';\n\nexport class VpDecorator {\n constructor(private client: ApiClient) {}\n\n private linkedRefsToResourceIds(refs: LinkedRef[]): string[] {\n return refs.map((item) => item.resourceId);\n }\n\n private async importBlob(blob: BlobInput, request?: UpdatePayload): Promise<PresentationDescriptor> {\n const idempotencyKey = generateKey('importBlob');\n const { blobId, uploadUri } = await this.client.presentations.presentationUpload({\n idempotencyKey,\n });\n\n await fetch(uploadUri, {\n method: 'PUT',\n body: blob,\n });\n\n const resourcePresentation = await this.client.presentations.presentationImport({\n annotations: request?.annotations,\n labels: request?.labels,\n blobId,\n idempotencyKey,\n });\n\n return {\n id: resourcePresentation.id,\n etag: resourcePresentation.etag,\n revision: resourcePresentation.revision,\n data: {\n linkedCredentials: this.linkedRefsToResourceIds(resourcePresentation.data.linkedCredentialRefs ?? []),\n },\n };\n }\n\n /**\n * @deprecated Please use `importPresentation` instead. This method will be removed after January 2025.\n */\n async import(blob: BlobInput, request?: UpdatePayload): Promise<VerifiablePresentation> {\n return this.importPresentation(blob, request);\n }\n\n async importPresentation(blob: BlobInput, request?: UpdatePayload): Promise<VerifiablePresentation> {\n const resourcePresentation = await this.importBlob(blob, request);\n\n return new VerifiablePresentation(this.client, resourcePresentation);\n }\n\n map(input: ResourcePresentation): VerifiablePresentation {\n return new VerifiablePresentation(this.client, {\n id: input.id,\n etag: input.etag,\n revision: input.revision,\n data: {\n linkedCredentials: this.linkedRefsToResourceIds(input.data.linkedCredentialRefs ?? []),\n },\n });\n }\n\n async load(id: string, revision?: number): Promise<VerifiablePresentation> {\n const resourcePresentation = revision\n ? await this.client.presentations.presentationRevision(id, revision)\n : await this.client.presentations.presentationLatest(id);\n\n return this.map(resourcePresentation);\n }\n\n issue(credentials: ResourceCredential[], privateKeyId: string): Promise<VerifiablePresentation>;\n issue(credentials: VerifiableCredentialWithClaims<any>[], privateKeyId: string): Promise<VerifiablePresentation>;\n issue(credentials: UnknownVerifiableCredential<any>[], privateKeyId: string): Promise<VerifiablePresentation>;\n issue(credentials: VerifiableCredential[], privateKeyId: string): Promise<VerifiablePresentation>;\n issue(credentials: string[], privateKeyId: string): Promise<VerifiablePresentation>;\n async issue(\n credentials: string[] | VerifiableCredential[] | ResourceCredential[],\n privateKeyId: string,\n ): Promise<VerifiablePresentation> {\n const credentialIds: string[] = credentials.map((item) => {\n if (typeof item === 'string') return item;\n if (item instanceof VerifiableCredential) return item.descriptor.id;\n return item.id;\n });\n\n const resourcePresentation = await this.client.presentations.presentationIssue({\n credentialIds,\n keyId: privateKeyId,\n });\n\n return new VerifiablePresentation(this.client, {\n id: resourcePresentation.id,\n etag: resourcePresentation.etag,\n revision: resourcePresentation.revision,\n data: {\n linkedCredentials: this.linkedRefsToResourceIds(resourcePresentation.data.linkedCredentialRefs ?? []),\n },\n });\n }\n}\n"]}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
export declare const ErrorCode: {
|
|
2
2
|
readonly VcContextAnnotationMissing: "T001";
|
|
3
3
|
readonly UnexpectedTypeInSerialization: "T002";
|
|
4
|
+
readonly UnsupportedTypeInUDT: "T003";
|
|
5
|
+
readonly IncompatibleUDT: "T004";
|
|
4
6
|
};
|
|
5
7
|
export type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];
|
|
6
8
|
export declare class DocumentedError extends Error {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/documents/utils/error.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS
|
|
1
|
+
{"version":3,"file":"error.d.ts","sourceRoot":"","sources":["../../../src/documents/utils/error.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,SAAS;;;;;CAKZ,CAAC;AAEX,MAAM,MAAM,SAAS,GAAG,CAAC,OAAO,SAAS,CAAC,CAAC,MAAM,OAAO,SAAS,CAAC,CAAC;AAEnE,qBAAa,eAAgB,SAAQ,KAAK;gBAC1B,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM;CAKhD"}
|
package/documents/utils/error.js
CHANGED
|
@@ -4,10 +4,12 @@ exports.DocumentedError = exports.ErrorCode = void 0;
|
|
|
4
4
|
exports.ErrorCode = {
|
|
5
5
|
VcContextAnnotationMissing: 'T001',
|
|
6
6
|
UnexpectedTypeInSerialization: 'T002',
|
|
7
|
+
UnsupportedTypeInUDT: 'T003',
|
|
8
|
+
IncompatibleUDT: 'T004',
|
|
7
9
|
};
|
|
8
10
|
class DocumentedError extends Error {
|
|
9
11
|
constructor(errorCode, msg) {
|
|
10
|
-
super(`${msg}\nFor more information about this error, check https://docs.truvity.com/sdk/error-codes#${errorCode}`);
|
|
12
|
+
super(`${msg}\nFor more information about this error, check https://docs.truvity.com/sdk/reference/error-codes#${errorCode}`);
|
|
11
13
|
}
|
|
12
14
|
}
|
|
13
15
|
exports.DocumentedError = DocumentedError;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/documents/utils/error.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACrB,0BAA0B,EAAE,MAAM;IAClC,6BAA6B,EAAE,MAAM;
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/documents/utils/error.ts"],"names":[],"mappings":";;;AAAa,QAAA,SAAS,GAAG;IACrB,0BAA0B,EAAE,MAAM;IAClC,6BAA6B,EAAE,MAAM;IACrC,oBAAoB,EAAE,MAAM;IAC5B,eAAe,EAAE,MAAM;CACjB,CAAC;AAIX,MAAa,eAAgB,SAAQ,KAAK;IACtC,YAAY,SAAoB,EAAE,GAAW;QACzC,KAAK,CACD,GAAG,GAAG,qGAAqG,SAAS,EAAE,CACzH,CAAC;IACN,CAAC;CACJ;AAND,0CAMC","sourcesContent":["export const ErrorCode = {\n VcContextAnnotationMissing: 'T001',\n UnexpectedTypeInSerialization: 'T002',\n UnsupportedTypeInUDT: 'T003',\n IncompatibleUDT: 'T004',\n} as const;\n\nexport type ErrorCode = (typeof ErrorCode)[keyof typeof ErrorCode];\n\nexport class DocumentedError extends Error {\n constructor(errorCode: ErrorCode, msg: string) {\n super(\n `${msg}\\nFor more information about this error, check https://docs.truvity.com/sdk/reference/error-codes#${errorCode}`,\n );\n }\n}\n"]}
|
|
@@ -3,7 +3,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
const error_1 = require("./error");
|
|
4
4
|
describe('DocumentedError', () => {
|
|
5
5
|
it('serializes correctly', () => {
|
|
6
|
-
expect(new error_1.DocumentedError(error_1.ErrorCode.VcContextAnnotationMissing, 'Specific error message').message).toEqual('Specific error message\nFor more information about this error, check https://docs.truvity.com/sdk/error-codes#T001');
|
|
6
|
+
expect(new error_1.DocumentedError(error_1.ErrorCode.VcContextAnnotationMissing, 'Specific error message').message).toEqual('Specific error message\nFor more information about this error, check https://docs.truvity.com/sdk/reference/error-codes#T001');
|
|
7
7
|
});
|
|
8
8
|
});
|
|
9
9
|
//# sourceMappingURL=error.spec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error.spec.js","sourceRoot":"","sources":["../../../src/documents/utils/error.spec.ts"],"names":[],"mappings":";;AAAA,mCAAqD;AAErD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,IAAI,uBAAe,CAAC,iBAAS,CAAC,0BAA0B,EAAE,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CACvG,
|
|
1
|
+
{"version":3,"file":"error.spec.js","sourceRoot":"","sources":["../../../src/documents/utils/error.spec.ts"],"names":[],"mappings":";;AAAA,mCAAqD;AAErD,QAAQ,CAAC,iBAAiB,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC5B,MAAM,CAAC,IAAI,uBAAe,CAAC,iBAAS,CAAC,0BAA0B,EAAE,wBAAwB,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,CACvG,8HAA8H,CACjI,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC","sourcesContent":["import { DocumentedError, ErrorCode } from './error';\n\ndescribe('DocumentedError', () => {\n it('serializes correctly', () => {\n expect(new DocumentedError(ErrorCode.VcContextAnnotationMissing, 'Specific error message').message).toEqual(\n 'Specific error message\\nFor more information about this error, check https://docs.truvity.com/sdk/reference/error-codes#T001',\n );\n });\n});\n"]}
|