@credo-ts/anoncreds 0.6.1-pr-2091-20241119140918 → 0.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/AnonCredsApi.d.mts +113 -0
- package/build/AnonCredsApi.d.mts.map +1 -0
- package/build/AnonCredsApi.mjs +439 -0
- package/build/AnonCredsApi.mjs.map +1 -0
- package/build/AnonCredsApiOptions.d.mts +28 -0
- package/build/AnonCredsApiOptions.d.mts.map +1 -0
- package/build/AnonCredsModule.d.mts +29 -0
- package/build/AnonCredsModule.d.mts.map +1 -0
- package/build/AnonCredsModule.mjs +62 -0
- package/build/AnonCredsModule.mjs.map +1 -0
- package/build/AnonCredsModuleConfig.d.mts +79 -0
- package/build/AnonCredsModuleConfig.d.mts.map +1 -0
- package/build/AnonCredsModuleConfig.mjs +31 -0
- package/build/AnonCredsModuleConfig.mjs.map +1 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs +10 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateMetadata.mjs +7 -0
- package/build/_virtual/_@oxc-project_runtime@0.99.0/helpers/decorateParam.mjs +9 -0
- package/build/anoncreds-rs/AnonCredsDataIntegrityService.mjs +203 -0
- package/build/anoncreds-rs/AnonCredsDataIntegrityService.mjs.map +1 -0
- package/build/anoncreds-rs/AnonCredsRsHolderService.mjs +488 -0
- package/build/anoncreds-rs/AnonCredsRsHolderService.mjs.map +1 -0
- package/build/anoncreds-rs/AnonCredsRsIssuerService.mjs +213 -0
- package/build/anoncreds-rs/AnonCredsRsIssuerService.mjs.map +1 -0
- package/build/anoncreds-rs/AnonCredsRsVerifierService.mjs +122 -0
- package/build/anoncreds-rs/AnonCredsRsVerifierService.mjs.map +1 -0
- package/build/anoncreds-rs/index.mjs +3 -0
- package/build/anoncreds-rs/utils.mjs +60 -0
- package/build/anoncreds-rs/utils.mjs.map +1 -0
- package/build/error/AnonCredsError.d.mts +13 -0
- package/build/error/AnonCredsError.d.mts.map +1 -0
- package/build/error/AnonCredsError.mjs +12 -0
- package/build/error/AnonCredsError.mjs.map +1 -0
- package/build/error/AnonCredsRsError.d.mts +13 -0
- package/build/error/AnonCredsRsError.d.mts.map +1 -0
- package/build/error/AnonCredsRsError.mjs +12 -0
- package/build/error/AnonCredsRsError.mjs.map +1 -0
- package/build/error/AnonCredsStoreRecordError.d.mts +13 -0
- package/build/error/AnonCredsStoreRecordError.d.mts.map +1 -0
- package/build/error/AnonCredsStoreRecordError.mjs +12 -0
- package/build/error/AnonCredsStoreRecordError.mjs.map +1 -0
- package/build/error/index.d.mts +3 -0
- package/build/error/index.mjs +3 -0
- package/build/formats/AnonCredsDidCommCredentialFormat.d.mts +82 -0
- package/build/formats/AnonCredsDidCommCredentialFormat.d.mts.map +1 -0
- package/build/formats/AnonCredsDidCommCredentialFormatService.d.mts +120 -0
- package/build/formats/AnonCredsDidCommCredentialFormatService.d.mts.map +1 -0
- package/build/formats/AnonCredsDidCommCredentialFormatService.mjs +331 -0
- package/build/formats/AnonCredsDidCommCredentialFormatService.mjs.map +1 -0
- package/build/formats/AnonCredsDidCommProofFormat.d.mts +77 -0
- package/build/formats/AnonCredsDidCommProofFormat.d.mts.map +1 -0
- package/build/formats/AnonCredsDidCommProofFormatService.d.mts +93 -0
- package/build/formats/AnonCredsDidCommProofFormatService.d.mts.map +1 -0
- package/build/formats/AnonCredsDidCommProofFormatService.mjs +250 -0
- package/build/formats/AnonCredsDidCommProofFormatService.mjs.map +1 -0
- package/build/formats/DataIntegrityDidCommCredentialFormatService.d.mts +118 -0
- package/build/formats/DataIntegrityDidCommCredentialFormatService.d.mts.map +1 -0
- package/build/formats/DataIntegrityDidCommCredentialFormatService.mjs +587 -0
- package/build/formats/DataIntegrityDidCommCredentialFormatService.mjs.map +1 -0
- package/build/formats/LegacyIndyDidCommCredentialFormat.d.mts +38 -0
- package/build/formats/LegacyIndyDidCommCredentialFormat.d.mts.map +1 -0
- package/build/formats/LegacyIndyDidCommCredentialFormatService.d.mts +122 -0
- package/build/formats/LegacyIndyDidCommCredentialFormatService.d.mts.map +1 -0
- package/build/formats/LegacyIndyDidCommCredentialFormatService.mjs +309 -0
- package/build/formats/LegacyIndyDidCommCredentialFormatService.mjs.map +1 -0
- package/build/formats/LegacyIndyDidCommProofFormat.d.mts +36 -0
- package/build/formats/LegacyIndyDidCommProofFormat.d.mts.map +1 -0
- package/build/formats/LegacyIndyDidCommProofFormatService.d.mts +98 -0
- package/build/formats/LegacyIndyDidCommProofFormatService.d.mts.map +1 -0
- package/build/formats/LegacyIndyDidCommProofFormatService.mjs +322 -0
- package/build/formats/LegacyIndyDidCommProofFormatService.mjs.map +1 -0
- package/build/formats/index.d.mts +9 -0
- package/build/formats/index.mjs +5 -0
- package/build/index.d.mts +86 -0
- package/build/index.mjs +69 -0
- package/build/models/AnonCredsCredentialProposal.mjs +75 -0
- package/build/models/AnonCredsCredentialProposal.mjs.map +1 -0
- package/build/models/AnonCredsProofRequest.mjs +62 -0
- package/build/models/AnonCredsProofRequest.mjs.map +1 -0
- package/build/models/AnonCredsRequestedAttribute.mjs +50 -0
- package/build/models/AnonCredsRequestedAttribute.mjs.map +1 -0
- package/build/models/AnonCredsRequestedPredicate.mjs +53 -0
- package/build/models/AnonCredsRequestedPredicate.mjs.map +1 -0
- package/build/models/AnonCredsRestriction.d.mts +29 -0
- package/build/models/AnonCredsRestriction.d.mts.map +1 -0
- package/build/models/AnonCredsRestriction.mjs +137 -0
- package/build/models/AnonCredsRestriction.mjs.map +1 -0
- package/build/models/AnonCredsRestrictionWrapper.d.mts +9 -0
- package/build/models/AnonCredsRestrictionWrapper.d.mts.map +1 -0
- package/build/models/AnonCredsRestrictionWrapper.mjs +18 -0
- package/build/models/AnonCredsRestrictionWrapper.mjs.map +1 -0
- package/build/models/AnonCredsRevocationInterval.mjs +27 -0
- package/build/models/AnonCredsRevocationInterval.mjs.map +1 -0
- package/build/models/exchange.d.mts +104 -0
- package/build/models/exchange.d.mts.map +1 -0
- package/build/models/exchange.mjs +11 -0
- package/build/models/exchange.mjs.map +1 -0
- package/build/models/index.d.mts +4 -0
- package/build/models/index.mjs +2 -0
- package/build/models/internal.d.mts +40 -0
- package/build/models/internal.d.mts.map +1 -0
- package/build/models/registry.d.mts +44 -0
- package/build/models/registry.d.mts.map +1 -0
- package/build/models/utils.d.mts +27 -0
- package/build/models/utils.d.mts.map +1 -0
- package/build/protocols/credentials/v1/DidCommCredentialV1Protocol.d.mts +215 -0
- package/build/protocols/credentials/v1/DidCommCredentialV1Protocol.d.mts.map +1 -0
- package/build/protocols/credentials/v1/DidCommCredentialV1Protocol.mjs +827 -0
- package/build/protocols/credentials/v1/DidCommCredentialV1Protocol.mjs.map +1 -0
- package/build/protocols/credentials/v1/handlers/DidCommCredentialV1AckHandler.mjs +17 -0
- package/build/protocols/credentials/v1/handlers/DidCommCredentialV1AckHandler.mjs.map +1 -0
- package/build/protocols/credentials/v1/handlers/DidCommCredentialV1ProblemReportHandler.mjs +17 -0
- package/build/protocols/credentials/v1/handlers/DidCommCredentialV1ProblemReportHandler.mjs.map +1 -0
- package/build/protocols/credentials/v1/handlers/DidCommIssueCredentialV1Handler.mjs +36 -0
- package/build/protocols/credentials/v1/handlers/DidCommIssueCredentialV1Handler.mjs.map +1 -0
- package/build/protocols/credentials/v1/handlers/DidCommOfferCredentialV1Handler.mjs +32 -0
- package/build/protocols/credentials/v1/handlers/DidCommOfferCredentialV1Handler.mjs.map +1 -0
- package/build/protocols/credentials/v1/handlers/DidCommProposeCredentialV1Handler.mjs +35 -0
- package/build/protocols/credentials/v1/handlers/DidCommProposeCredentialV1Handler.mjs.map +1 -0
- package/build/protocols/credentials/v1/handlers/DidCommRequestCredentialV1Handler.mjs +36 -0
- package/build/protocols/credentials/v1/handlers/DidCommRequestCredentialV1Handler.mjs.map +1 -0
- package/build/protocols/credentials/v1/handlers/index.mjs +6 -0
- package/build/protocols/credentials/v1/index.d.mts +9 -0
- package/build/protocols/credentials/v1/index.mjs +9 -0
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1AckMessage.d.mts +16 -0
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1AckMessage.d.mts.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1AckMessage.mjs +21 -0
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1AckMessage.mjs.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1Preview.d.mts +32 -0
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1Preview.d.mts.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1Preview.mjs +57 -0
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1Preview.mjs.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1ProblemReportMessage.d.mts +16 -0
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1ProblemReportMessage.d.mts.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1ProblemReportMessage.mjs +21 -0
- package/build/protocols/credentials/v1/messages/DidCommCredentialV1ProblemReportMessage.mjs.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommIssueCredentialV1Message.d.mts +26 -0
- package/build/protocols/credentials/v1/messages/DidCommIssueCredentialV1Message.d.mts.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommIssueCredentialV1Message.mjs +46 -0
- package/build/protocols/credentials/v1/messages/DidCommIssueCredentialV1Message.mjs.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommOfferCredentialV1Message.d.mts +34 -0
- package/build/protocols/credentials/v1/messages/DidCommOfferCredentialV1Message.d.mts.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommOfferCredentialV1Message.mjs +61 -0
- package/build/protocols/credentials/v1/messages/DidCommOfferCredentialV1Message.mjs.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommProposeCredentialV1Message.d.mts +64 -0
- package/build/protocols/credentials/v1/messages/DidCommProposeCredentialV1Message.d.mts.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommProposeCredentialV1Message.mjs +95 -0
- package/build/protocols/credentials/v1/messages/DidCommProposeCredentialV1Message.mjs.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommRequestCredentialV1Message.d.mts +26 -0
- package/build/protocols/credentials/v1/messages/DidCommRequestCredentialV1Message.d.mts.map +1 -0
- package/build/protocols/credentials/v1/messages/DidCommRequestCredentialV1Message.mjs +46 -0
- package/build/protocols/credentials/v1/messages/DidCommRequestCredentialV1Message.mjs.map +1 -0
- package/build/protocols/credentials/v1/messages/index.d.mts +7 -0
- package/build/protocols/credentials/v1/messages/index.mjs +7 -0
- package/build/protocols/index.d.mts +18 -0
- package/build/protocols/index.mjs +18 -0
- package/build/protocols/proofs/v1/DidCommProofV1Protocol.d.mts +105 -0
- package/build/protocols/proofs/v1/DidCommProofV1Protocol.d.mts.map +1 -0
- package/build/protocols/proofs/v1/DidCommProofV1Protocol.mjs +723 -0
- package/build/protocols/proofs/v1/DidCommProofV1Protocol.mjs.map +1 -0
- package/build/protocols/proofs/v1/errors/DidCommPresentationV1ProblemReportError.d.mts +18 -0
- package/build/protocols/proofs/v1/errors/DidCommPresentationV1ProblemReportError.d.mts.map +1 -0
- package/build/protocols/proofs/v1/errors/DidCommPresentationV1ProblemReportError.mjs +19 -0
- package/build/protocols/proofs/v1/errors/DidCommPresentationV1ProblemReportError.mjs.map +1 -0
- package/build/protocols/proofs/v1/errors/index.d.mts +1 -0
- package/build/protocols/proofs/v1/errors/index.mjs +1 -0
- package/build/protocols/proofs/v1/handlers/DidCommPresentationV1AckHandler.mjs +17 -0
- package/build/protocols/proofs/v1/handlers/DidCommPresentationV1AckHandler.mjs.map +1 -0
- package/build/protocols/proofs/v1/handlers/DidCommPresentationV1Handler.mjs +36 -0
- package/build/protocols/proofs/v1/handlers/DidCommPresentationV1Handler.mjs.map +1 -0
- package/build/protocols/proofs/v1/handlers/DidCommPresentationV1ProblemReportHandler.mjs +16 -0
- package/build/protocols/proofs/v1/handlers/DidCommPresentationV1ProblemReportHandler.mjs.map +1 -0
- package/build/protocols/proofs/v1/handlers/DidCommProposePresentationV1Handler.mjs +35 -0
- package/build/protocols/proofs/v1/handlers/DidCommProposePresentationV1Handler.mjs.map +1 -0
- package/build/protocols/proofs/v1/handlers/DidCommRequestPresentationV1Handler.mjs +32 -0
- package/build/protocols/proofs/v1/handlers/DidCommRequestPresentationV1Handler.mjs.map +1 -0
- package/build/protocols/proofs/v1/handlers/index.mjs +5 -0
- package/build/protocols/proofs/v1/index.d.mts +11 -0
- package/build/protocols/proofs/v1/index.mjs +11 -0
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1AckMessage.d.mts +12 -0
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1AckMessage.d.mts.map +1 -0
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1AckMessage.mjs +18 -0
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1AckMessage.mjs.map +1 -0
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1Message.d.mts +38 -0
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1Message.d.mts.map +1 -0
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1Message.mjs +52 -0
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1Message.mjs.map +1 -0
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1ProblemReportMessage.d.mts +16 -0
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1ProblemReportMessage.d.mts.map +1 -0
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1ProblemReportMessage.mjs +21 -0
- package/build/protocols/proofs/v1/messages/DidCommPresentationV1ProblemReportMessage.mjs.map +1 -0
- package/build/protocols/proofs/v1/messages/DidCommProposePresentationV1Message.d.mts +32 -0
- package/build/protocols/proofs/v1/messages/DidCommProposePresentationV1Message.d.mts.map +1 -0
- package/build/protocols/proofs/v1/messages/DidCommProposePresentationV1Message.mjs +44 -0
- package/build/protocols/proofs/v1/messages/DidCommProposePresentationV1Message.mjs.map +1 -0
- package/build/protocols/proofs/v1/messages/DidCommRequestPresentationV1Message.d.mts +36 -0
- package/build/protocols/proofs/v1/messages/DidCommRequestPresentationV1Message.d.mts.map +1 -0
- package/build/protocols/proofs/v1/messages/DidCommRequestPresentationV1Message.mjs +50 -0
- package/build/protocols/proofs/v1/messages/DidCommRequestPresentationV1Message.mjs.map +1 -0
- package/build/protocols/proofs/v1/messages/index.d.mts +5 -0
- package/build/protocols/proofs/v1/messages/index.mjs +5 -0
- package/build/protocols/proofs/v1/models/DidCommPresentationV1Preview.d.mts +57 -0
- package/build/protocols/proofs/v1/models/DidCommPresentationV1Preview.d.mts.map +1 -0
- package/build/protocols/proofs/v1/models/DidCommPresentationV1Preview.mjs +113 -0
- package/build/protocols/proofs/v1/models/DidCommPresentationV1Preview.mjs.map +1 -0
- package/build/protocols/proofs/v1/models/index.d.mts +1 -0
- package/build/protocols/proofs/v1/models/index.mjs +1 -0
- package/build/repository/AnonCredsCredentialDefinitionPrivateRecord.d.mts +25 -0
- package/build/repository/AnonCredsCredentialDefinitionPrivateRecord.d.mts.map +1 -0
- package/build/repository/AnonCredsCredentialDefinitionPrivateRecord.mjs +26 -0
- package/build/repository/AnonCredsCredentialDefinitionPrivateRecord.mjs.map +1 -0
- package/build/repository/AnonCredsCredentialDefinitionPrivateRepository.d.mts +12 -0
- package/build/repository/AnonCredsCredentialDefinitionPrivateRepository.d.mts.map +1 -0
- package/build/repository/AnonCredsCredentialDefinitionPrivateRepository.mjs +28 -0
- package/build/repository/AnonCredsCredentialDefinitionPrivateRepository.mjs.map +1 -0
- package/build/repository/AnonCredsCredentialDefinitionRecord.d.mts +44 -0
- package/build/repository/AnonCredsCredentialDefinitionRecord.d.mts.map +1 -0
- package/build/repository/AnonCredsCredentialDefinitionRecord.mjs +38 -0
- package/build/repository/AnonCredsCredentialDefinitionRecord.mjs.map +1 -0
- package/build/repository/AnonCredsCredentialDefinitionRepository.d.mts +12 -0
- package/build/repository/AnonCredsCredentialDefinitionRepository.d.mts.map +1 -0
- package/build/repository/AnonCredsCredentialDefinitionRepository.mjs +28 -0
- package/build/repository/AnonCredsCredentialDefinitionRepository.mjs.map +1 -0
- package/build/repository/AnonCredsCredentialRecord.d.mts +53 -0
- package/build/repository/AnonCredsCredentialRecord.d.mts.map +1 -0
- package/build/repository/AnonCredsCredentialRecord.mjs +46 -0
- package/build/repository/AnonCredsCredentialRecord.mjs.map +1 -0
- package/build/repository/AnonCredsCredentialRepository.d.mts +14 -0
- package/build/repository/AnonCredsCredentialRepository.d.mts.map +1 -0
- package/build/repository/AnonCredsCredentialRepository.mjs +34 -0
- package/build/repository/AnonCredsCredentialRepository.mjs.map +1 -0
- package/build/repository/AnonCredsKeyCorrectnessProofRecord.d.mts +25 -0
- package/build/repository/AnonCredsKeyCorrectnessProofRecord.d.mts.map +1 -0
- package/build/repository/AnonCredsKeyCorrectnessProofRecord.mjs +26 -0
- package/build/repository/AnonCredsKeyCorrectnessProofRecord.mjs.map +1 -0
- package/build/repository/AnonCredsKeyCorrectnessProofRepository.d.mts +12 -0
- package/build/repository/AnonCredsKeyCorrectnessProofRepository.d.mts.map +1 -0
- package/build/repository/AnonCredsKeyCorrectnessProofRepository.mjs +28 -0
- package/build/repository/AnonCredsKeyCorrectnessProofRepository.mjs.map +1 -0
- package/build/repository/AnonCredsLinkSecretRecord.d.mts +28 -0
- package/build/repository/AnonCredsLinkSecretRecord.d.mts.map +1 -0
- package/build/repository/AnonCredsLinkSecretRecord.mjs +25 -0
- package/build/repository/AnonCredsLinkSecretRecord.mjs.map +1 -0
- package/build/repository/AnonCredsLinkSecretRepository.d.mts +14 -0
- package/build/repository/AnonCredsLinkSecretRepository.d.mts.map +1 -0
- package/build/repository/AnonCredsLinkSecretRepository.mjs +34 -0
- package/build/repository/AnonCredsLinkSecretRepository.mjs.map +1 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRecord.d.mts +37 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRecord.d.mts.map +1 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRecord.mjs +35 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRecord.mjs.map +1 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRepository.d.mts +13 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRepository.d.mts.map +1 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRepository.mjs +34 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRepository.mjs.map +1 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionRecord.d.mts +30 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionRecord.d.mts.map +1 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionRecord.mjs +27 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionRecord.mjs.map +1 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionRepository.d.mts +13 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionRepository.d.mts.map +1 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionRepository.mjs +31 -0
- package/build/repository/AnonCredsRevocationRegistryDefinitionRepository.mjs.map +1 -0
- package/build/repository/AnonCredsSchemaRecord.d.mts +44 -0
- package/build/repository/AnonCredsSchemaRecord.d.mts.map +1 -0
- package/build/repository/AnonCredsSchemaRecord.mjs +38 -0
- package/build/repository/AnonCredsSchemaRecord.mjs.map +1 -0
- package/build/repository/AnonCredsSchemaRepository.d.mts +12 -0
- package/build/repository/AnonCredsSchemaRepository.d.mts.map +1 -0
- package/build/repository/AnonCredsSchemaRepository.mjs +28 -0
- package/build/repository/AnonCredsSchemaRepository.mjs.map +1 -0
- package/build/repository/anonCredsCredentialDefinitionRecordMetadataTypes.d.mts +14 -0
- package/build/repository/anonCredsCredentialDefinitionRecordMetadataTypes.d.mts.map +1 -0
- package/build/repository/anonCredsCredentialDefinitionRecordMetadataTypes.mjs +10 -0
- package/build/repository/anonCredsCredentialDefinitionRecordMetadataTypes.mjs.map +1 -0
- package/build/repository/anonCredsRevocationRegistryDefinitionRecordMetadataTypes.d.mts +14 -0
- package/build/repository/anonCredsRevocationRegistryDefinitionRecordMetadataTypes.d.mts.map +1 -0
- package/build/repository/anonCredsRevocationRegistryDefinitionRecordMetadataTypes.mjs +10 -0
- package/build/repository/anonCredsRevocationRegistryDefinitionRecordMetadataTypes.mjs.map +1 -0
- package/build/repository/anonCredsSchemaRecordMetadataTypes.d.mts +14 -0
- package/build/repository/anonCredsSchemaRecordMetadataTypes.d.mts.map +1 -0
- package/build/repository/index.d.mts +16 -0
- package/build/repository/index.mjs +16 -0
- package/build/services/AnonCredsHolderService.d.mts +28 -0
- package/build/services/AnonCredsHolderService.d.mts.map +1 -0
- package/build/services/AnonCredsHolderService.mjs +6 -0
- package/build/services/AnonCredsHolderService.mjs.map +1 -0
- package/build/services/AnonCredsHolderServiceOptions.d.mts +107 -0
- package/build/services/AnonCredsHolderServiceOptions.d.mts.map +1 -0
- package/build/services/AnonCredsIssuerService.d.mts +19 -0
- package/build/services/AnonCredsIssuerService.d.mts.map +1 -0
- package/build/services/AnonCredsIssuerService.mjs +6 -0
- package/build/services/AnonCredsIssuerService.mjs.map +1 -0
- package/build/services/AnonCredsIssuerServiceOptions.d.mts +66 -0
- package/build/services/AnonCredsIssuerServiceOptions.d.mts.map +1 -0
- package/build/services/AnonCredsVerifierService.d.mts +12 -0
- package/build/services/AnonCredsVerifierService.d.mts.map +1 -0
- package/build/services/AnonCredsVerifierService.mjs +6 -0
- package/build/services/AnonCredsVerifierService.mjs.map +1 -0
- package/build/services/AnonCredsVerifierServiceOptions.d.mts +30 -0
- package/build/services/AnonCredsVerifierServiceOptions.d.mts.map +1 -0
- package/build/services/index.d.mts +17 -0
- package/build/services/index.mjs +7 -0
- package/build/services/registry/AnonCredsRegistry.d.mts +43 -0
- package/build/services/registry/AnonCredsRegistry.d.mts.map +1 -0
- package/build/services/registry/AnonCredsRegistryService.d.mts +27 -0
- package/build/services/registry/AnonCredsRegistryService.d.mts.map +1 -0
- package/build/services/registry/AnonCredsRegistryService.mjs +226 -0
- package/build/services/registry/AnonCredsRegistryService.mjs.map +1 -0
- package/build/services/registry/CredentialDefinitionOptions.d.mts +39 -0
- package/build/services/registry/CredentialDefinitionOptions.d.mts.map +1 -0
- package/build/services/registry/RevocationRegistryDefinitionOptions.d.mts +39 -0
- package/build/services/registry/RevocationRegistryDefinitionOptions.d.mts.map +1 -0
- package/build/services/registry/RevocationStatusListOptions.d.mts +37 -0
- package/build/services/registry/RevocationStatusListOptions.d.mts.map +1 -0
- package/build/services/registry/SchemaOptions.d.mts +39 -0
- package/build/services/registry/SchemaOptions.d.mts.map +1 -0
- package/build/services/registry/base.d.mts +65 -0
- package/build/services/registry/base.d.mts.map +1 -0
- package/build/services/registry/index.d.mts +7 -0
- package/build/services/registry/index.mjs +1 -0
- package/build/services/tails/BasicTailsFileService.d.mts +29 -0
- package/build/services/tails/BasicTailsFileService.d.mts.map +1 -0
- package/build/services/tails/BasicTailsFileService.mjs +52 -0
- package/build/services/tails/BasicTailsFileService.mjs.map +1 -0
- package/build/services/tails/TailsFileService.d.mts +48 -0
- package/build/services/tails/TailsFileService.d.mts.map +1 -0
- package/build/services/tails/index.d.mts +2 -0
- package/build/services/tails/index.mjs +1 -0
- package/build/updates/0.3.1-0.4/credentialDefinition.mjs +49 -0
- package/build/updates/0.3.1-0.4/credentialDefinition.mjs.map +1 -0
- package/build/updates/0.3.1-0.4/credentialExchangeRecord.mjs +118 -0
- package/build/updates/0.3.1-0.4/credentialExchangeRecord.mjs.map +1 -0
- package/build/updates/0.3.1-0.4/index.d.mts +7 -0
- package/build/updates/0.3.1-0.4/index.d.mts.map +1 -0
- package/build/updates/0.3.1-0.4/index.mjs +16 -0
- package/build/updates/0.3.1-0.4/index.mjs.map +1 -0
- package/build/updates/0.3.1-0.4/linkSecret.mjs +21 -0
- package/build/updates/0.3.1-0.4/linkSecret.mjs.map +1 -0
- package/build/updates/0.3.1-0.4/schema.mjs +39 -0
- package/build/updates/0.3.1-0.4/schema.mjs.map +1 -0
- package/build/updates/0.4-0.5/anonCredsCredentialRecord.mjs +126 -0
- package/build/updates/0.4-0.5/anonCredsCredentialRecord.mjs.map +1 -0
- package/build/updates/0.4-0.5/index.d.mts +7 -0
- package/build/updates/0.4-0.5/index.d.mts.map +1 -0
- package/build/updates/0.4-0.5/index.mjs +10 -0
- package/build/updates/0.4-0.5/index.mjs.map +1 -0
- package/build/utils/anonCredsObjects.d.mts +27 -0
- package/build/utils/anonCredsObjects.d.mts.map +1 -0
- package/build/utils/anonCredsObjects.mjs +57 -0
- package/build/utils/anonCredsObjects.mjs.map +1 -0
- package/build/utils/areRequestsEqual.d.mts +1 -0
- package/build/utils/areRequestsEqual.mjs +86 -0
- package/build/utils/areRequestsEqual.mjs.map +1 -0
- package/build/utils/bytesToBigint.mjs +11 -0
- package/build/utils/bytesToBigint.mjs.map +1 -0
- package/build/utils/composeAutoAccept.d.mts +1 -0
- package/build/utils/composeAutoAccept.mjs +25 -0
- package/build/utils/composeAutoAccept.mjs.map +1 -0
- package/build/utils/createRequestFromPreview.d.mts +2 -0
- package/build/utils/createRequestFromPreview.mjs +50 -0
- package/build/utils/createRequestFromPreview.mjs.map +1 -0
- package/build/utils/credential.d.mts +12 -0
- package/build/utils/credential.d.mts.map +1 -0
- package/build/utils/credential.mjs +119 -0
- package/build/utils/credential.mjs.map +1 -0
- package/build/utils/credentialPreviewAttributes.d.mts +1 -0
- package/build/utils/credentialPreviewAttributes.mjs +21 -0
- package/build/utils/credentialPreviewAttributes.mjs.map +1 -0
- package/build/utils/getCredentialsForAnonCredsRequest.d.mts +11 -0
- package/build/utils/getCredentialsForAnonCredsRequest.d.mts.map +1 -0
- package/build/utils/getCredentialsForAnonCredsRequest.mjs +70 -0
- package/build/utils/getCredentialsForAnonCredsRequest.mjs.map +1 -0
- package/build/utils/getRevocationRegistries.d.mts +4 -0
- package/build/utils/getRevocationRegistries.mjs +121 -0
- package/build/utils/getRevocationRegistries.mjs.map +1 -0
- package/build/utils/hasDuplicateGroupNames.d.mts +1 -0
- package/build/utils/hasDuplicateGroupNames.mjs +22 -0
- package/build/utils/hasDuplicateGroupNames.mjs.map +1 -0
- package/build/utils/index.d.mts +17 -0
- package/build/utils/index.mjs +17 -0
- package/build/utils/indyIdentifiers.d.mts +71 -0
- package/build/utils/indyIdentifiers.d.mts.map +1 -0
- package/build/utils/indyIdentifiers.mjs +249 -0
- package/build/utils/indyIdentifiers.mjs.map +1 -0
- package/build/utils/isMap.d.mts +1 -0
- package/build/utils/isMap.mjs +19 -0
- package/build/utils/isMap.mjs.map +1 -0
- package/build/utils/linkSecret.d.mts +13 -0
- package/build/utils/linkSecret.d.mts.map +1 -0
- package/build/utils/linkSecret.mjs +35 -0
- package/build/utils/linkSecret.mjs.map +1 -0
- package/build/utils/metadata.d.mts +30 -0
- package/build/utils/metadata.d.mts.map +1 -0
- package/build/utils/metadata.mjs +23 -0
- package/build/utils/metadata.mjs.map +1 -0
- package/build/utils/proofRequest.mjs +10 -0
- package/build/utils/proofRequest.mjs.map +1 -0
- package/build/utils/proverDid.d.mts +12 -0
- package/build/utils/proverDid.d.mts.map +1 -0
- package/build/utils/proverDid.mjs +17 -0
- package/build/utils/proverDid.mjs.map +1 -0
- package/build/utils/revocationInterval.d.mts +12 -0
- package/build/utils/revocationInterval.d.mts.map +1 -0
- package/build/utils/revocationInterval.mjs +11 -0
- package/build/utils/revocationInterval.mjs.map +1 -0
- package/build/utils/sortRequestedCredentialsMatches.d.mts +1 -0
- package/build/utils/sortRequestedCredentialsMatches.mjs +22 -0
- package/build/utils/sortRequestedCredentialsMatches.mjs.map +1 -0
- package/build/utils/timestamp.d.mts +5 -0
- package/build/utils/timestamp.d.mts.map +1 -0
- package/build/utils/timestamp.mjs +6 -0
- package/build/utils/timestamp.mjs.map +1 -0
- package/build/utils/w3cAnonCredsUtils.d.mts +28 -0
- package/build/utils/w3cAnonCredsUtils.d.mts.map +1 -0
- package/build/utils/w3cAnonCredsUtils.mjs +101 -0
- package/build/utils/w3cAnonCredsUtils.mjs.map +1 -0
- package/package.json +20 -21
- package/build/AnonCredsApi.d.ts +0 -97
- package/build/AnonCredsApi.js +0 -582
- package/build/AnonCredsApi.js.map +0 -1
- package/build/AnonCredsApiOptions.d.ts +0 -24
- package/build/AnonCredsApiOptions.js +0 -3
- package/build/AnonCredsApiOptions.js.map +0 -1
- package/build/AnonCredsModule.d.ts +0 -24
- package/build/AnonCredsModule.js +0 -56
- package/build/AnonCredsModule.js.map +0 -1
- package/build/AnonCredsModuleConfig.d.ts +0 -72
- package/build/AnonCredsModuleConfig.js +0 -31
- package/build/AnonCredsModuleConfig.js.map +0 -1
- package/build/anoncreds-rs/AnonCredsDataIntegrityService.d.ts +0 -27
- package/build/anoncreds-rs/AnonCredsDataIntegrityService.js +0 -241
- package/build/anoncreds-rs/AnonCredsDataIntegrityService.js.map +0 -1
- package/build/anoncreds-rs/AnonCredsRsHolderService.d.ts +0 -38
- package/build/anoncreds-rs/AnonCredsRsHolderService.js +0 -622
- package/build/anoncreds-rs/AnonCredsRsHolderService.js.map +0 -1
- package/build/anoncreds-rs/AnonCredsRsIssuerService.d.ts +0 -12
- package/build/anoncreds-rs/AnonCredsRsIssuerService.js +0 -253
- package/build/anoncreds-rs/AnonCredsRsIssuerService.js.map +0 -1
- package/build/anoncreds-rs/AnonCredsRsVerifierService.d.ts +0 -8
- package/build/anoncreds-rs/AnonCredsRsVerifierService.js +0 -157
- package/build/anoncreds-rs/AnonCredsRsVerifierService.js.map +0 -1
- package/build/anoncreds-rs/index.d.ts +0 -3
- package/build/anoncreds-rs/index.js +0 -10
- package/build/anoncreds-rs/index.js.map +0 -1
- package/build/anoncreds-rs/utils.d.ts +0 -23
- package/build/anoncreds-rs/utils.js +0 -71
- package/build/anoncreds-rs/utils.js.map +0 -1
- package/build/error/AnonCredsError.d.ts +0 -6
- package/build/error/AnonCredsError.js +0 -11
- package/build/error/AnonCredsError.js.map +0 -1
- package/build/error/AnonCredsRsError.d.ts +0 -6
- package/build/error/AnonCredsRsError.js +0 -11
- package/build/error/AnonCredsRsError.js.map +0 -1
- package/build/error/AnonCredsStoreRecordError.d.ts +0 -6
- package/build/error/AnonCredsStoreRecordError.js +0 -11
- package/build/error/AnonCredsStoreRecordError.js.map +0 -1
- package/build/error/index.d.ts +0 -3
- package/build/error/index.js +0 -20
- package/build/error/index.js.map +0 -1
- package/build/formats/AnonCredsCredentialFormat.d.ts +0 -79
- package/build/formats/AnonCredsCredentialFormat.js +0 -3
- package/build/formats/AnonCredsCredentialFormat.js.map +0 -1
- package/build/formats/AnonCredsCredentialFormatService.d.ts +0 -80
- package/build/formats/AnonCredsCredentialFormatService.js +0 -433
- package/build/formats/AnonCredsCredentialFormatService.js.map +0 -1
- package/build/formats/AnonCredsProofFormat.d.ts +0 -70
- package/build/formats/AnonCredsProofFormat.js +0 -3
- package/build/formats/AnonCredsProofFormat.js.map +0 -1
- package/build/formats/AnonCredsProofFormatService.d.ts +0 -55
- package/build/formats/AnonCredsProofFormatService.js +0 -289
- package/build/formats/AnonCredsProofFormatService.js.map +0 -1
- package/build/formats/DataIntegrityCredentialFormatService.d.ts +0 -89
- package/build/formats/DataIntegrityCredentialFormatService.js +0 -773
- package/build/formats/DataIntegrityCredentialFormatService.js.map +0 -1
- package/build/formats/LegacyIndyCredentialFormat.d.ts +0 -32
- package/build/formats/LegacyIndyCredentialFormat.js +0 -3
- package/build/formats/LegacyIndyCredentialFormat.js.map +0 -1
- package/build/formats/LegacyIndyCredentialFormatService.d.ts +0 -80
- package/build/formats/LegacyIndyCredentialFormatService.js +0 -379
- package/build/formats/LegacyIndyCredentialFormatService.js.map +0 -1
- package/build/formats/LegacyIndyProofFormat.d.ts +0 -29
- package/build/formats/LegacyIndyProofFormat.js +0 -3
- package/build/formats/LegacyIndyProofFormat.js.map +0 -1
- package/build/formats/LegacyIndyProofFormatService.d.ts +0 -58
- package/build/formats/LegacyIndyProofFormatService.js +0 -374
- package/build/formats/LegacyIndyProofFormatService.js.map +0 -1
- package/build/formats/index.d.ts +0 -9
- package/build/formats/index.js +0 -32
- package/build/formats/index.js.map +0 -1
- package/build/index.d.ts +0 -21
- package/build/index.js +0 -54
- package/build/index.js.map +0 -1
- package/build/models/AnonCredsCredentialProposal.d.ts +0 -62
- package/build/models/AnonCredsCredentialProposal.js +0 -81
- package/build/models/AnonCredsCredentialProposal.js.map +0 -1
- package/build/models/AnonCredsProofRequest.d.ts +0 -27
- package/build/models/AnonCredsProofRequest.js +0 -82
- package/build/models/AnonCredsProofRequest.js.map +0 -1
- package/build/models/AnonCredsRequestedAttribute.d.ts +0 -16
- package/build/models/AnonCredsRequestedAttribute.js +0 -56
- package/build/models/AnonCredsRequestedAttribute.js.map +0 -1
- package/build/models/AnonCredsRequestedPredicate.d.ts +0 -19
- package/build/models/AnonCredsRequestedPredicate.js +0 -61
- package/build/models/AnonCredsRequestedPredicate.js.map +0 -1
- package/build/models/AnonCredsRestriction.d.ts +0 -55
- package/build/models/AnonCredsRestriction.js +0 -160
- package/build/models/AnonCredsRestriction.js.map +0 -1
- package/build/models/AnonCredsRestrictionWrapper.d.ts +0 -4
- package/build/models/AnonCredsRestrictionWrapper.js +0 -25
- package/build/models/AnonCredsRestrictionWrapper.js.map +0 -1
- package/build/models/AnonCredsRevocationInterval.d.ts +0 -5
- package/build/models/AnonCredsRevocationInterval.js +0 -33
- package/build/models/AnonCredsRevocationInterval.js.map +0 -1
- package/build/models/exchange.d.ts +0 -99
- package/build/models/exchange.js +0 -5
- package/build/models/exchange.js.map +0 -1
- package/build/models/index.d.ts +0 -4
- package/build/models/index.js +0 -21
- package/build/models/index.js.map +0 -1
- package/build/models/internal.d.ts +0 -35
- package/build/models/internal.js +0 -3
- package/build/models/internal.js.map +0 -1
- package/build/models/registry.d.ts +0 -39
- package/build/models/registry.js +0 -3
- package/build/models/registry.js.map +0 -1
- package/build/models/utils.d.ts +0 -22
- package/build/models/utils.js +0 -3
- package/build/models/utils.js.map +0 -1
- package/build/protocols/credentials/v1/V1CredentialProtocol.d.ts +0 -162
- package/build/protocols/credentials/v1/V1CredentialProtocol.js +0 -948
- package/build/protocols/credentials/v1/V1CredentialProtocol.js.map +0 -1
- package/build/protocols/credentials/v1/errors/V1CredentialProblemReportError.d.ts +0 -10
- package/build/protocols/credentials/v1/errors/V1CredentialProblemReportError.js +0 -18
- package/build/protocols/credentials/v1/errors/V1CredentialProblemReportError.js.map +0 -1
- package/build/protocols/credentials/v1/errors/index.d.ts +0 -1
- package/build/protocols/credentials/v1/errors/index.js +0 -6
- package/build/protocols/credentials/v1/errors/index.js.map +0 -1
- package/build/protocols/credentials/v1/handlers/V1CredentialAckHandler.d.ts +0 -9
- package/build/protocols/credentials/v1/handlers/V1CredentialAckHandler.js +0 -15
- package/build/protocols/credentials/v1/handlers/V1CredentialAckHandler.js.map +0 -1
- package/build/protocols/credentials/v1/handlers/V1CredentialProblemReportHandler.d.ts +0 -9
- package/build/protocols/credentials/v1/handlers/V1CredentialProblemReportHandler.js +0 -15
- package/build/protocols/credentials/v1/handlers/V1CredentialProblemReportHandler.js.map +0 -1
- package/build/protocols/credentials/v1/handlers/V1IssueCredentialHandler.d.ts +0 -10
- package/build/protocols/credentials/v1/handlers/V1IssueCredentialHandler.js +0 -40
- package/build/protocols/credentials/v1/handlers/V1IssueCredentialHandler.js.map +0 -1
- package/build/protocols/credentials/v1/handlers/V1OfferCredentialHandler.d.ts +0 -10
- package/build/protocols/credentials/v1/handlers/V1OfferCredentialHandler.js +0 -33
- package/build/protocols/credentials/v1/handlers/V1OfferCredentialHandler.js.map +0 -1
- package/build/protocols/credentials/v1/handlers/V1ProposeCredentialHandler.d.ts +0 -10
- package/build/protocols/credentials/v1/handlers/V1ProposeCredentialHandler.js +0 -38
- package/build/protocols/credentials/v1/handlers/V1ProposeCredentialHandler.js.map +0 -1
- package/build/protocols/credentials/v1/handlers/V1RequestCredentialHandler.d.ts +0 -10
- package/build/protocols/credentials/v1/handlers/V1RequestCredentialHandler.js +0 -40
- package/build/protocols/credentials/v1/handlers/V1RequestCredentialHandler.js.map +0 -1
- package/build/protocols/credentials/v1/handlers/index.d.ts +0 -6
- package/build/protocols/credentials/v1/handlers/index.js +0 -23
- package/build/protocols/credentials/v1/handlers/index.js.map +0 -1
- package/build/protocols/credentials/v1/index.d.ts +0 -2
- package/build/protocols/credentials/v1/index.js +0 -19
- package/build/protocols/credentials/v1/index.js.map +0 -1
- package/build/protocols/credentials/v1/messages/V1CredentialAckMessage.d.ts +0 -16
- package/build/protocols/credentials/v1/messages/V1CredentialAckMessage.js +0 -34
- package/build/protocols/credentials/v1/messages/V1CredentialAckMessage.js.map +0 -1
- package/build/protocols/credentials/v1/messages/V1CredentialPreview.d.ts +0 -26
- package/build/protocols/credentials/v1/messages/V1CredentialPreview.js +0 -69
- package/build/protocols/credentials/v1/messages/V1CredentialPreview.js.map +0 -1
- package/build/protocols/credentials/v1/messages/V1CredentialProblemReportMessage.d.ts +0 -16
- package/build/protocols/credentials/v1/messages/V1CredentialProblemReportMessage.js +0 -34
- package/build/protocols/credentials/v1/messages/V1CredentialProblemReportMessage.js.map +0 -1
- package/build/protocols/credentials/v1/messages/V1IssueCredentialMessage.d.ts +0 -19
- package/build/protocols/credentials/v1/messages/V1IssueCredentialMessage.js +0 -62
- package/build/protocols/credentials/v1/messages/V1IssueCredentialMessage.js.map +0 -1
- package/build/protocols/credentials/v1/messages/V1OfferCredentialMessage.d.ts +0 -27
- package/build/protocols/credentials/v1/messages/V1OfferCredentialMessage.js +0 -75
- package/build/protocols/credentials/v1/messages/V1OfferCredentialMessage.js.map +0 -1
- package/build/protocols/credentials/v1/messages/V1ProposeCredentialMessage.d.ts +0 -59
- package/build/protocols/credentials/v1/messages/V1ProposeCredentialMessage.js +0 -109
- package/build/protocols/credentials/v1/messages/V1ProposeCredentialMessage.js.map +0 -1
- package/build/protocols/credentials/v1/messages/V1RequestCredentialMessage.d.ts +0 -19
- package/build/protocols/credentials/v1/messages/V1RequestCredentialMessage.js +0 -61
- package/build/protocols/credentials/v1/messages/V1RequestCredentialMessage.js.map +0 -1
- package/build/protocols/credentials/v1/messages/index.d.ts +0 -7
- package/build/protocols/credentials/v1/messages/index.js +0 -24
- package/build/protocols/credentials/v1/messages/index.js.map +0 -1
- package/build/protocols/index.d.ts +0 -2
- package/build/protocols/index.js +0 -19
- package/build/protocols/index.js.map +0 -1
- package/build/protocols/proofs/v1/V1ProofProtocol.d.ts +0 -50
- package/build/protocols/proofs/v1/V1ProofProtocol.js +0 -864
- package/build/protocols/proofs/v1/V1ProofProtocol.js.map +0 -1
- package/build/protocols/proofs/v1/errors/V1PresentationProblemReportError.d.ts +0 -12
- package/build/protocols/proofs/v1/errors/V1PresentationProblemReportError.js +0 -19
- package/build/protocols/proofs/v1/errors/V1PresentationProblemReportError.js.map +0 -1
- package/build/protocols/proofs/v1/errors/index.d.ts +0 -1
- package/build/protocols/proofs/v1/errors/index.js +0 -18
- package/build/protocols/proofs/v1/errors/index.js.map +0 -1
- package/build/protocols/proofs/v1/handlers/V1PresentationAckHandler.d.ts +0 -9
- package/build/protocols/proofs/v1/handlers/V1PresentationAckHandler.js +0 -15
- package/build/protocols/proofs/v1/handlers/V1PresentationAckHandler.js.map +0 -1
- package/build/protocols/proofs/v1/handlers/V1PresentationHandler.d.ts +0 -10
- package/build/protocols/proofs/v1/handlers/V1PresentationHandler.js +0 -40
- package/build/protocols/proofs/v1/handlers/V1PresentationHandler.js.map +0 -1
- package/build/protocols/proofs/v1/handlers/V1PresentationProblemReportHandler.d.ts +0 -9
- package/build/protocols/proofs/v1/handlers/V1PresentationProblemReportHandler.js +0 -15
- package/build/protocols/proofs/v1/handlers/V1PresentationProblemReportHandler.js.map +0 -1
- package/build/protocols/proofs/v1/handlers/V1ProposePresentationHandler.d.ts +0 -11
- package/build/protocols/proofs/v1/handlers/V1ProposePresentationHandler.js +0 -38
- package/build/protocols/proofs/v1/handlers/V1ProposePresentationHandler.js.map +0 -1
- package/build/protocols/proofs/v1/handlers/V1RequestPresentationHandler.d.ts +0 -10
- package/build/protocols/proofs/v1/handlers/V1RequestPresentationHandler.js +0 -35
- package/build/protocols/proofs/v1/handlers/V1RequestPresentationHandler.js.map +0 -1
- package/build/protocols/proofs/v1/handlers/index.d.ts +0 -5
- package/build/protocols/proofs/v1/handlers/index.js +0 -22
- package/build/protocols/proofs/v1/handlers/index.js.map +0 -1
- package/build/protocols/proofs/v1/index.d.ts +0 -4
- package/build/protocols/proofs/v1/index.js +0 -21
- package/build/protocols/proofs/v1/index.js.map +0 -1
- package/build/protocols/proofs/v1/messages/V1PresentationAckMessage.d.ts +0 -8
- package/build/protocols/proofs/v1/messages/V1PresentationAckMessage.js +0 -27
- package/build/protocols/proofs/v1/messages/V1PresentationAckMessage.js.map +0 -1
- package/build/protocols/proofs/v1/messages/V1PresentationMessage.d.ts +0 -31
- package/build/protocols/proofs/v1/messages/V1PresentationMessage.js +0 -67
- package/build/protocols/proofs/v1/messages/V1PresentationMessage.js.map +0 -1
- package/build/protocols/proofs/v1/messages/V1PresentationProblemReportMessage.d.ts +0 -16
- package/build/protocols/proofs/v1/messages/V1PresentationProblemReportMessage.js +0 -34
- package/build/protocols/proofs/v1/messages/V1PresentationProblemReportMessage.js.map +0 -1
- package/build/protocols/proofs/v1/messages/V1ProposePresentationMessage.d.ts +0 -26
- package/build/protocols/proofs/v1/messages/V1ProposePresentationMessage.js +0 -53
- package/build/protocols/proofs/v1/messages/V1ProposePresentationMessage.js.map +0 -1
- package/build/protocols/proofs/v1/messages/V1RequestPresentationMessage.d.ts +0 -29
- package/build/protocols/proofs/v1/messages/V1RequestPresentationMessage.js +0 -65
- package/build/protocols/proofs/v1/messages/V1RequestPresentationMessage.js.map +0 -1
- package/build/protocols/proofs/v1/messages/index.d.ts +0 -5
- package/build/protocols/proofs/v1/messages/index.js +0 -22
- package/build/protocols/proofs/v1/messages/index.js.map +0 -1
- package/build/protocols/proofs/v1/models/V1PresentationPreview.d.ts +0 -50
- package/build/protocols/proofs/v1/models/V1PresentationPreview.js +0 -130
- package/build/protocols/proofs/v1/models/V1PresentationPreview.js.map +0 -1
- package/build/protocols/proofs/v1/models/index.d.ts +0 -1
- package/build/protocols/proofs/v1/models/index.js +0 -18
- package/build/protocols/proofs/v1/models/index.js.map +0 -1
- package/build/repository/AnonCredsCredentialDefinitionPrivateRecord.d.ts +0 -21
- package/build/repository/AnonCredsCredentialDefinitionPrivateRecord.js +0 -23
- package/build/repository/AnonCredsCredentialDefinitionPrivateRecord.js.map +0 -1
- package/build/repository/AnonCredsCredentialDefinitionPrivateRepository.d.ts +0 -8
- package/build/repository/AnonCredsCredentialDefinitionPrivateRepository.js +0 -35
- package/build/repository/AnonCredsCredentialDefinitionPrivateRepository.js.map +0 -1
- package/build/repository/AnonCredsCredentialDefinitionRecord.d.ts +0 -39
- package/build/repository/AnonCredsCredentialDefinitionRecord.js +0 -30
- package/build/repository/AnonCredsCredentialDefinitionRecord.js.map +0 -1
- package/build/repository/AnonCredsCredentialDefinitionRepository.d.ts +0 -8
- package/build/repository/AnonCredsCredentialDefinitionRepository.js +0 -53
- package/build/repository/AnonCredsCredentialDefinitionRepository.js.map +0 -1
- package/build/repository/AnonCredsCredentialRecord.d.ts +0 -48
- package/build/repository/AnonCredsCredentialRecord.js +0 -37
- package/build/repository/AnonCredsCredentialRecord.js.map +0 -1
- package/build/repository/AnonCredsCredentialRepository.d.ts +0 -10
- package/build/repository/AnonCredsCredentialRepository.js +0 -41
- package/build/repository/AnonCredsCredentialRepository.js.map +0 -1
- package/build/repository/AnonCredsKeyCorrectnessProofRecord.d.ts +0 -21
- package/build/repository/AnonCredsKeyCorrectnessProofRecord.js +0 -23
- package/build/repository/AnonCredsKeyCorrectnessProofRecord.js.map +0 -1
- package/build/repository/AnonCredsKeyCorrectnessProofRepository.d.ts +0 -8
- package/build/repository/AnonCredsKeyCorrectnessProofRepository.js +0 -35
- package/build/repository/AnonCredsKeyCorrectnessProofRepository.js.map +0 -1
- package/build/repository/AnonCredsLinkSecretRecord.d.ts +0 -23
- package/build/repository/AnonCredsLinkSecretRecord.js +0 -22
- package/build/repository/AnonCredsLinkSecretRecord.js.map +0 -1
- package/build/repository/AnonCredsLinkSecretRepository.d.ts +0 -10
- package/build/repository/AnonCredsLinkSecretRepository.js +0 -41
- package/build/repository/AnonCredsLinkSecretRepository.js.map +0 -1
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRecord.d.ts +0 -34
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRecord.js +0 -30
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRecord.js.map +0 -1
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRepository.d.ts +0 -10
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRepository.js +0 -38
- package/build/repository/AnonCredsRevocationRegistryDefinitionPrivateRepository.js.map +0 -1
- package/build/repository/AnonCredsRevocationRegistryDefinitionRecord.d.ts +0 -25
- package/build/repository/AnonCredsRevocationRegistryDefinitionRecord.js +0 -23
- package/build/repository/AnonCredsRevocationRegistryDefinitionRecord.js.map +0 -1
- package/build/repository/AnonCredsRevocationRegistryDefinitionRepository.d.ts +0 -9
- package/build/repository/AnonCredsRevocationRegistryDefinitionRepository.js +0 -38
- package/build/repository/AnonCredsRevocationRegistryDefinitionRepository.js.map +0 -1
- package/build/repository/AnonCredsSchemaRecord.d.ts +0 -39
- package/build/repository/AnonCredsSchemaRecord.js +0 -30
- package/build/repository/AnonCredsSchemaRecord.js.map +0 -1
- package/build/repository/AnonCredsSchemaRepository.d.ts +0 -8
- package/build/repository/AnonCredsSchemaRepository.js +0 -53
- package/build/repository/AnonCredsSchemaRepository.js.map +0 -1
- package/build/repository/anonCredsCredentialDefinitionRecordMetadataTypes.d.ts +0 -9
- package/build/repository/anonCredsCredentialDefinitionRecordMetadataTypes.js +0 -9
- package/build/repository/anonCredsCredentialDefinitionRecordMetadataTypes.js.map +0 -1
- package/build/repository/anonCredsRevocationRegistryDefinitionRecordMetadataTypes.d.ts +0 -9
- package/build/repository/anonCredsRevocationRegistryDefinitionRecordMetadataTypes.js +0 -9
- package/build/repository/anonCredsRevocationRegistryDefinitionRecordMetadataTypes.js.map +0 -1
- package/build/repository/anonCredsSchemaRecordMetadataTypes.d.ts +0 -9
- package/build/repository/anonCredsSchemaRecordMetadataTypes.js +0 -9
- package/build/repository/anonCredsSchemaRecordMetadataTypes.js.map +0 -1
- package/build/repository/index.d.ts +0 -16
- package/build/repository/index.js +0 -33
- package/build/repository/index.js.map +0 -1
- package/build/services/AnonCredsHolderService.d.ts +0 -18
- package/build/services/AnonCredsHolderService.js +0 -5
- package/build/services/AnonCredsHolderService.js.map +0 -1
- package/build/services/AnonCredsHolderServiceOptions.d.ts +0 -101
- package/build/services/AnonCredsHolderServiceOptions.js +0 -3
- package/build/services/AnonCredsHolderServiceOptions.js.map +0 -1
- package/build/services/AnonCredsIssuerService.d.ts +0 -14
- package/build/services/AnonCredsIssuerService.js +0 -5
- package/build/services/AnonCredsIssuerService.js.map +0 -1
- package/build/services/AnonCredsIssuerServiceOptions.d.ts +0 -61
- package/build/services/AnonCredsIssuerServiceOptions.js +0 -3
- package/build/services/AnonCredsIssuerServiceOptions.js.map +0 -1
- package/build/services/AnonCredsVerifierService.d.ts +0 -7
- package/build/services/AnonCredsVerifierService.js +0 -5
- package/build/services/AnonCredsVerifierService.js.map +0 -1
- package/build/services/AnonCredsVerifierServiceOptions.d.ts +0 -25
- package/build/services/AnonCredsVerifierServiceOptions.js +0 -3
- package/build/services/AnonCredsVerifierServiceOptions.js.map +0 -1
- package/build/services/index.d.ts +0 -8
- package/build/services/index.js +0 -27
- package/build/services/index.js.map +0 -1
- package/build/services/registry/AnonCredsRegistry.d.ts +0 -25
- package/build/services/registry/AnonCredsRegistry.js +0 -3
- package/build/services/registry/AnonCredsRegistry.js.map +0 -1
- package/build/services/registry/AnonCredsRegistryService.d.ts +0 -10
- package/build/services/registry/AnonCredsRegistryService.js +0 -33
- package/build/services/registry/AnonCredsRegistryService.js.map +0 -1
- package/build/services/registry/CredentialDefinitionOptions.d.ts +0 -34
- package/build/services/registry/CredentialDefinitionOptions.js +0 -3
- package/build/services/registry/CredentialDefinitionOptions.js.map +0 -1
- package/build/services/registry/RevocationRegistryDefinitionOptions.d.ts +0 -34
- package/build/services/registry/RevocationRegistryDefinitionOptions.js +0 -3
- package/build/services/registry/RevocationRegistryDefinitionOptions.js.map +0 -1
- package/build/services/registry/RevocationStatusListOptions.d.ts +0 -32
- package/build/services/registry/RevocationStatusListOptions.js +0 -3
- package/build/services/registry/RevocationStatusListOptions.js.map +0 -1
- package/build/services/registry/SchemaOptions.d.ts +0 -34
- package/build/services/registry/SchemaOptions.js +0 -3
- package/build/services/registry/SchemaOptions.js.map +0 -1
- package/build/services/registry/base.d.ts +0 -19
- package/build/services/registry/base.js +0 -3
- package/build/services/registry/base.js.map +0 -1
- package/build/services/registry/index.d.ts +0 -7
- package/build/services/registry/index.js +0 -23
- package/build/services/registry/index.js.map +0 -1
- package/build/services/tails/BasicTailsFileService.d.ts +0 -23
- package/build/services/tails/BasicTailsFileService.js +0 -65
- package/build/services/tails/BasicTailsFileService.js.map +0 -1
- package/build/services/tails/TailsFileService.d.ts +0 -42
- package/build/services/tails/TailsFileService.js +0 -3
- package/build/services/tails/TailsFileService.js.map +0 -1
- package/build/services/tails/index.d.ts +0 -2
- package/build/services/tails/index.js +0 -19
- package/build/services/tails/index.js.map +0 -1
- package/build/updates/0.3.1-0.4/credentialDefinition.d.ts +0 -18
- package/build/updates/0.3.1-0.4/credentialDefinition.js +0 -56
- package/build/updates/0.3.1-0.4/credentialDefinition.js.map +0 -1
- package/build/updates/0.3.1-0.4/credentialExchangeRecord.d.ts +0 -69
- package/build/updates/0.3.1-0.4/credentialExchangeRecord.js +0 -121
- package/build/updates/0.3.1-0.4/credentialExchangeRecord.js.map +0 -1
- package/build/updates/0.3.1-0.4/index.d.ts +0 -2
- package/build/updates/0.3.1-0.4/index.js +0 -14
- package/build/updates/0.3.1-0.4/index.js.map +0 -1
- package/build/updates/0.3.1-0.4/linkSecret.d.ts +0 -6
- package/build/updates/0.3.1-0.4/linkSecret.js +0 -35
- package/build/updates/0.3.1-0.4/linkSecret.js.map +0 -1
- package/build/updates/0.3.1-0.4/schema.d.ts +0 -15
- package/build/updates/0.3.1-0.4/schema.js +0 -41
- package/build/updates/0.3.1-0.4/schema.js.map +0 -1
- package/build/updates/0.4-0.5/anonCredsCredentialRecord.d.ts +0 -5
- package/build/updates/0.4-0.5/anonCredsCredentialRecord.js +0 -149
- package/build/updates/0.4-0.5/anonCredsCredentialRecord.js.map +0 -1
- package/build/updates/0.4-0.5/index.d.ts +0 -2
- package/build/updates/0.4-0.5/index.js +0 -8
- package/build/updates/0.4-0.5/index.js.map +0 -1
- package/build/utils/anonCredsObjects.d.ts +0 -26
- package/build/utils/anonCredsObjects.js +0 -81
- package/build/utils/anonCredsObjects.js.map +0 -1
- package/build/utils/areRequestsEqual.d.ts +0 -6
- package/build/utils/areRequestsEqual.js +0 -135
- package/build/utils/areRequestsEqual.js.map +0 -1
- package/build/utils/composeAutoAccept.d.ts +0 -15
- package/build/utils/composeAutoAccept.js +0 -26
- package/build/utils/composeAutoAccept.js.map +0 -1
- package/build/utils/createRequestFromPreview.d.ts +0 -10
- package/build/utils/createRequestFromPreview.js +0 -71
- package/build/utils/createRequestFromPreview.js.map +0 -1
- package/build/utils/credential.d.ts +0 -68
- package/build/utils/credential.js +0 -188
- package/build/utils/credential.js.map +0 -1
- package/build/utils/credentialPreviewAttributes.d.ts +0 -2
- package/build/utils/credentialPreviewAttributes.js +0 -24
- package/build/utils/credentialPreviewAttributes.js.map +0 -1
- package/build/utils/getCredentialsForAnonCredsRequest.d.ts +0 -4
- package/build/utils/getCredentialsForAnonCredsRequest.js +0 -81
- package/build/utils/getCredentialsForAnonCredsRequest.js.map +0 -1
- package/build/utils/getRevocationRegistries.d.ts +0 -14
- package/build/utils/getRevocationRegistries.js +0 -151
- package/build/utils/getRevocationRegistries.js.map +0 -1
- package/build/utils/hasDuplicateGroupNames.d.ts +0 -2
- package/build/utils/hasDuplicateGroupNames.js +0 -22
- package/build/utils/hasDuplicateGroupNames.js.map +0 -1
- package/build/utils/index.d.ts +0 -17
- package/build/utils/index.js +0 -48
- package/build/utils/index.js.map +0 -1
- package/build/utils/indyIdentifiers.d.ts +0 -66
- package/build/utils/indyIdentifiers.js +0 -298
- package/build/utils/indyIdentifiers.js.map +0 -1
- package/build/utils/isMap.d.ts +0 -5
- package/build/utils/isMap.js +0 -17
- package/build/utils/isMap.js.map +0 -1
- package/build/utils/linkSecret.d.ts +0 -9
- package/build/utils/linkSecret.js +0 -43
- package/build/utils/linkSecret.js.map +0 -1
- package/build/utils/metadata.d.ts +0 -35
- package/build/utils/metadata.js +0 -24
- package/build/utils/metadata.js.map +0 -1
- package/build/utils/proofRequest.d.ts +0 -2
- package/build/utils/proofRequest.js +0 -21
- package/build/utils/proofRequest.js.map +0 -1
- package/build/utils/proverDid.d.ts +0 -8
- package/build/utils/proverDid.js +0 -15
- package/build/utils/proverDid.js.map +0 -1
- package/build/utils/revocationInterval.d.ts +0 -7
- package/build/utils/revocationInterval.js +0 -14
- package/build/utils/revocationInterval.js.map +0 -1
- package/build/utils/sortRequestedCredentialsMatches.d.ts +0 -8
- package/build/utils/sortRequestedCredentialsMatches.js +0 -31
- package/build/utils/sortRequestedCredentialsMatches.js.map +0 -1
- package/build/utils/timestamp.d.ts +0 -1
- package/build/utils/timestamp.js +0 -7
- package/build/utils/timestamp.js.map +0 -1
- package/build/utils/w3cAnonCredsUtils.d.ts +0 -37
- package/build/utils/w3cAnonCredsUtils.js +0 -132
- package/build/utils/w3cAnonCredsUtils.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnonCredsRsHolderService.mjs","names":["AnonCredsRsHolderService","W3cAnonCredsCredential","presentation: Presentation | undefined","rsCredentialDefinitions: Record<string, JsonObject>","rsSchemas: Record<string, JsonObject>","revocationState: CredentialRevocationState | undefined","revocationRegistryDefinition: RevocationRegistryDefinition | undefined","credentialsProve: CredentialProve[]","credentials: { linkSecretId: string; credentialEntry: CredentialEntry; credentialId: string }[]","createReturnObj:\n | { credentialRequest: CredentialRequest; credentialRequestMetadata: CredentialRequestMetadata }\n | undefined","w3cCredential: W3cJsonLdVerifiableCredential","anonCredsCredential: Credential | undefined","w3cCredentialObj: W3cAnonCredsCredential | undefined","anonCredsCredentialMetadata: W3cAnonCredsCredentialMetadata","attributeQuery: SimpleQuery<AnonCredsCredentialRecord>","attributeQuery: SimpleQuery<W3cCredentialRecord>","query: Query<W3cCredentialRecord>[]","queryElements: SimpleQuery<W3cCredentialRecord>","query: Query<AnonCredsCredentialRecord>[]","queryElements: SimpleQuery<AnonCredsCredentialRecord>","additionalQueryElements: SimpleQuery<AnonCredsCredentialRecord>","w3cAnonCredsPresentation: W3cAnonCredsPresentation | undefined","w3cPresentation: W3cJsonLdVerifiablePresentation","W3cAnonCredsPresentation"],"sources":["../../src/anoncreds-rs/AnonCredsRsHolderService.ts"],"sourcesContent":["import type { AgentContext, Query, SimpleQuery } from '@credo-ts/core'\nimport {\n CredoError,\n injectable,\n JsonTransformer,\n Kms,\n TypedArrayEncoder,\n utils,\n W3cCredentialRecord,\n W3cCredentialRepository,\n W3cCredentialService,\n W3cJsonLdVerifiableCredential,\n W3cJsonLdVerifiablePresentation,\n} from '@credo-ts/core'\nimport type {\n CredentialEntry,\n CredentialProve,\n CredentialRequestMetadata,\n JsonObject,\n W3cCredentialEntry,\n} from '@hyperledger/anoncreds-shared'\nimport {\n anoncreds,\n Credential,\n CredentialRequest,\n CredentialRevocationState,\n LinkSecret,\n Presentation,\n RevocationRegistryDefinition,\n RevocationStatusList,\n W3cCredential as W3cAnonCredsCredential,\n W3cPresentation as W3cAnonCredsPresentation,\n} from '@hyperledger/anoncreds-shared'\nimport { AnonCredsModuleConfig } from '../AnonCredsModuleConfig'\nimport { AnonCredsRsError } from '../error'\nimport type {\n AnonCredsCredential,\n AnonCredsCredentialDefinition,\n AnonCredsCredentialInfo,\n AnonCredsCredentialRequest,\n AnonCredsProof,\n AnonCredsProofRequestRestriction,\n AnonCredsRequestedAttributeMatch,\n AnonCredsRequestedPredicateMatch,\n AnonCredsRevocationRegistryDefinition,\n AnonCredsSchema,\n} from '../models'\nimport { AnonCredsRestrictionWrapper } from '../models'\nimport type { CredentialWithRevocationMetadata } from '../models/utils'\nimport type { AnonCredsCredentialRecord } from '../repository'\nimport { AnonCredsCredentialRepository, AnonCredsLinkSecretRepository } from '../repository'\nimport type {\n AnonCredsHolderService,\n CreateCredentialRequestOptions,\n CreateCredentialRequestReturn,\n CreateLinkSecretOptions,\n CreateLinkSecretReturn,\n CreateProofOptions,\n GetCredentialOptions,\n GetCredentialsForProofRequestOptions,\n GetCredentialsForProofRequestReturn,\n GetCredentialsOptions,\n StoreCredentialOptions,\n} from '../services'\nimport { AnonCredsRegistryService } from '../services'\nimport type {\n AnonCredsCredentialProve,\n CreateW3cPresentationOptions,\n LegacyToW3cCredentialOptions,\n W3cToLegacyCredentialOptions,\n} from '../services/AnonCredsHolderServiceOptions'\nimport { storeLinkSecret, unqualifiedCredentialDefinitionIdRegex } from '../utils'\nimport {\n isUnqualifiedCredentialDefinitionId,\n isUnqualifiedIndyDid,\n isUnqualifiedSchemaId,\n} from '../utils/indyIdentifiers'\nimport { assertLinkSecretsMatch, getLinkSecret } from '../utils/linkSecret'\nimport type { AnonCredsCredentialRequestMetadata, W3cAnonCredsCredentialMetadata } from '../utils/metadata'\nimport { W3cAnonCredsCredentialMetadataKey } from '../utils/metadata'\nimport { proofRequestUsesUnqualifiedIdentifiers } from '../utils/proofRequest'\nimport { getAnoncredsCredentialInfoFromRecord, getW3cRecordAnonCredsTags } from '../utils/w3cAnonCredsUtils'\n\nimport { getRevocationMetadata } from './utils'\n\n@injectable()\nexport class AnonCredsRsHolderService implements AnonCredsHolderService {\n public async createLinkSecret(\n _agentContext: AgentContext,\n options?: CreateLinkSecretOptions\n ): Promise<CreateLinkSecretReturn> {\n return {\n linkSecretId: options?.linkSecretId ?? utils.uuid(),\n linkSecretValue: LinkSecret.create(),\n }\n }\n\n /**\n * generate an 80-bit nonce suitable for AnonCreds proofs\n */\n public generateNonce(agentContext: AgentContext): string {\n const kms = agentContext.resolve(Kms.KeyManagementApi)\n const bytes = kms.randomBytes({ length: 10 })\n return bytes.reduce((acc, byte) => (acc << 8n) | BigInt(byte), 0n).toString()\n }\n\n public async createProof(agentContext: AgentContext, options: CreateProofOptions): Promise<AnonCredsProof> {\n const { credentialDefinitions, proofRequest, selectedCredentials, schemas } = options\n\n let presentation: Presentation | undefined\n try {\n const rsCredentialDefinitions: Record<string, JsonObject> = {}\n for (const credDefId in credentialDefinitions) {\n rsCredentialDefinitions[credDefId] = credentialDefinitions[credDefId] as unknown as JsonObject\n }\n\n const rsSchemas: Record<string, JsonObject> = {}\n for (const schemaId in schemas) {\n rsSchemas[schemaId] = schemas[schemaId] as unknown as JsonObject\n }\n\n const w3cCredentialRepository = agentContext.dependencyManager.resolve(W3cCredentialRepository)\n const anoncredsCredentialRepository = agentContext.dependencyManager.resolve(AnonCredsCredentialRepository)\n\n // Cache retrieved credentials in order to minimize storage calls\n const retrievedCredentials = new Map<string, W3cCredentialRecord | AnonCredsCredentialRecord>()\n\n const credentialEntryFromAttribute = async (\n attribute: AnonCredsRequestedAttributeMatch | AnonCredsRequestedPredicateMatch\n ): Promise<{ linkSecretId: string; credentialEntry: CredentialEntry; credentialId: string }> => {\n let credentialRecord = retrievedCredentials.get(attribute.credentialId)\n\n if (!credentialRecord) {\n const w3cCredentialRecord = await w3cCredentialRepository.findById(agentContext, attribute.credentialId)\n\n if (w3cCredentialRecord) {\n credentialRecord = w3cCredentialRecord\n retrievedCredentials.set(attribute.credentialId, w3cCredentialRecord)\n } else {\n credentialRecord = await anoncredsCredentialRepository.getByCredentialId(\n agentContext,\n attribute.credentialId\n )\n\n agentContext.config.logger.warn(\n [\n `Creating AnonCreds proof with legacy credential ${attribute.credentialId}.`,\n 'Please run the migration script to migrate credentials to the new w3c format. See https://credo.js.org/guides/updating/versions/0.4-to-0.5 for information on how to migrate.',\n ].join('\\n')\n )\n }\n }\n\n const proofUsesUnqualifiedIdentifiers = proofRequestUsesUnqualifiedIdentifiers(proofRequest)\n const { linkSecretId, schemaId, credentialDefinitionId, revocationRegistryId, credentialRevocationId } =\n getAnoncredsCredentialInfoFromRecord(credentialRecord, proofUsesUnqualifiedIdentifiers)\n\n // TODO: Check if credential has a revocation registry id (check response from anoncreds-rs API, as it is\n // sending back a mandatory string in Credential.revocationRegistryId)\n const timestamp = attribute.timestamp\n\n let revocationState: CredentialRevocationState | undefined\n let revocationRegistryDefinition: RevocationRegistryDefinition | undefined\n try {\n if (timestamp && credentialRevocationId && revocationRegistryId) {\n if (!options.revocationRegistries[revocationRegistryId]) {\n throw new AnonCredsRsError(`Revocation Registry ${revocationRegistryId} not found`)\n }\n\n const { definition, revocationStatusLists, tailsFilePath } =\n options.revocationRegistries[revocationRegistryId]\n\n // Extract revocation status list for the given timestamp\n const revocationStatusList = revocationStatusLists[timestamp]\n if (!revocationStatusList) {\n throw new CredoError(\n `Revocation status list for revocation registry ${revocationRegistryId} and timestamp ${timestamp} not found in revocation status lists. All revocation status lists must be present.`\n )\n }\n\n revocationRegistryDefinition = RevocationRegistryDefinition.fromJson(definition as unknown as JsonObject)\n revocationState = CredentialRevocationState.create({\n revocationRegistryIndex: Number(credentialRevocationId),\n revocationRegistryDefinition,\n tailsPath: tailsFilePath,\n revocationStatusList: RevocationStatusList.fromJson(revocationStatusList as unknown as JsonObject),\n })\n }\n\n const credential =\n credentialRecord instanceof W3cCredentialRecord\n ? await this.w3cToLegacyCredential(agentContext, {\n credential: credentialRecord.firstCredential as W3cJsonLdVerifiableCredential,\n })\n : (credentialRecord.credential as AnonCredsCredential)\n\n if (proofUsesUnqualifiedIdentifiers) {\n credential.schema_id = schemaId\n credential.cred_def_id = credentialDefinitionId\n credential.rev_reg_id = revocationRegistryId != null ? revocationRegistryId : undefined\n }\n return {\n linkSecretId,\n credentialId: attribute.credentialId,\n credentialEntry: {\n credential: credential as unknown as JsonObject,\n revocationState: revocationState?.toJson(),\n timestamp,\n },\n }\n } finally {\n revocationState?.handle.clear()\n revocationRegistryDefinition?.handle.clear()\n }\n }\n\n const credentialsProve: CredentialProve[] = []\n const credentials: { linkSecretId: string; credentialEntry: CredentialEntry; credentialId: string }[] = []\n\n let entryIndex = 0\n for (const referent in selectedCredentials.attributes) {\n const attribute = selectedCredentials.attributes[referent]\n\n // If the credentialId with the same timestamp is already present, we will use the existing entry, so that the proof is created\n // showing the attributes come from the same cred, rather than different ones.\n const existingCredentialIndex = credentials.findIndex(\n (credential) =>\n credential.credentialId === attribute.credentialId &&\n attribute.timestamp === credential.credentialEntry.timestamp\n )\n\n if (existingCredentialIndex !== -1) {\n credentialsProve.push({\n entryIndex: existingCredentialIndex,\n isPredicate: false,\n referent,\n reveal: attribute.revealed,\n })\n } else {\n credentials.push(await credentialEntryFromAttribute(attribute))\n credentialsProve.push({ entryIndex, isPredicate: false, referent, reveal: attribute.revealed })\n entryIndex = entryIndex + 1\n }\n }\n\n for (const referent in selectedCredentials.predicates) {\n const predicate = selectedCredentials.predicates[referent]\n\n // If the credentialId with the same timestamp is already present, we will use the existing entry, so that the proof is created\n // showing the attributes come from the same cred, rather than different ones.\n const existingCredentialIndex = credentials.findIndex(\n (credential) =>\n credential.credentialId === predicate.credentialId &&\n predicate.timestamp === credential.credentialEntry.timestamp\n )\n\n if (existingCredentialIndex !== -1) {\n credentialsProve.push({ entryIndex: existingCredentialIndex, isPredicate: true, referent, reveal: true })\n } else {\n credentials.push(await credentialEntryFromAttribute(predicate))\n credentialsProve.push({ entryIndex, isPredicate: true, referent, reveal: true })\n entryIndex = entryIndex + 1\n }\n }\n\n const linkSecretIds = credentials.map((item) => item.linkSecretId)\n const linkSecretId = assertLinkSecretsMatch(agentContext, linkSecretIds)\n const linkSecret = await getLinkSecret(agentContext, linkSecretId)\n\n presentation = Presentation.create({\n credentialDefinitions: rsCredentialDefinitions,\n schemas: rsSchemas,\n presentationRequest: proofRequest as unknown as JsonObject,\n credentials: credentials.map((entry) => entry.credentialEntry),\n credentialsProve,\n selfAttest: selectedCredentials.selfAttestedAttributes,\n linkSecret,\n })\n\n return presentation.toJson() as unknown as AnonCredsProof\n } finally {\n presentation?.handle.clear()\n }\n }\n\n public async createCredentialRequest(\n agentContext: AgentContext,\n options: CreateCredentialRequestOptions\n ): Promise<CreateCredentialRequestReturn> {\n const { useLegacyProverDid, credentialDefinition, credentialOffer } = options\n let createReturnObj:\n | { credentialRequest: CredentialRequest; credentialRequestMetadata: CredentialRequestMetadata }\n | undefined\n try {\n const linkSecretRepository = agentContext.dependencyManager.resolve(AnonCredsLinkSecretRepository)\n\n // If a link secret is specified, use it. Otherwise, attempt to use default link secret\n let linkSecretRecord = options.linkSecretId\n ? await linkSecretRepository.getByLinkSecretId(agentContext, options.linkSecretId)\n : await linkSecretRepository.findDefault(agentContext)\n\n // No default link secret. Automatically create one if set on module config\n if (!linkSecretRecord) {\n const moduleConfig = agentContext.dependencyManager.resolve(AnonCredsModuleConfig)\n if (!moduleConfig.autoCreateLinkSecret) {\n throw new AnonCredsRsError(\n 'No link secret provided to createCredentialRequest and no default link secret has been found'\n )\n }\n const { linkSecretId, linkSecretValue } = await this.createLinkSecret(agentContext, {})\n linkSecretRecord = await storeLinkSecret(agentContext, { linkSecretId, linkSecretValue, setAsDefault: true })\n }\n\n if (!linkSecretRecord.value) {\n throw new AnonCredsRsError('Link Secret value not stored')\n }\n\n const isLegacyIdentifier = credentialOffer.cred_def_id.match(unqualifiedCredentialDefinitionIdRegex)\n if (!isLegacyIdentifier && useLegacyProverDid) {\n throw new CredoError('Cannot use legacy prover_did with non-legacy identifiers')\n }\n createReturnObj = CredentialRequest.create({\n entropy: !useLegacyProverDid || !isLegacyIdentifier ? anoncreds.generateNonce() : undefined,\n proverDid: useLegacyProverDid\n ? TypedArrayEncoder.toBase58(TypedArrayEncoder.fromString(anoncreds.generateNonce().slice(0, 16)))\n : undefined,\n credentialDefinition: credentialDefinition as unknown as JsonObject,\n credentialOffer: credentialOffer as unknown as JsonObject,\n linkSecret: linkSecretRecord.value,\n linkSecretId: linkSecretRecord.linkSecretId,\n })\n\n return {\n credentialRequest: createReturnObj.credentialRequest.toJson() as unknown as AnonCredsCredentialRequest,\n credentialRequestMetadata:\n createReturnObj.credentialRequestMetadata.toJson() as unknown as AnonCredsCredentialRequestMetadata,\n }\n } finally {\n createReturnObj?.credentialRequest.handle.clear()\n createReturnObj?.credentialRequestMetadata.handle.clear()\n }\n }\n\n public async w3cToLegacyCredential(_agentContext: AgentContext, options: W3cToLegacyCredentialOptions) {\n const credentialJson = JsonTransformer.toJSON(options.credential)\n const w3cAnonCredsCredentialObj = W3cAnonCredsCredential.fromJson(credentialJson)\n const w3cCredentialObj = w3cAnonCredsCredentialObj.toLegacy()\n const legacyCredential = w3cCredentialObj.toJson() as unknown as AnonCredsCredential\n return legacyCredential\n }\n\n public async processW3cCredential(\n agentContext: AgentContext,\n credential: W3cJsonLdVerifiableCredential,\n processOptions: {\n credentialDefinition: AnonCredsCredentialDefinition\n credentialRequestMetadata: AnonCredsCredentialRequestMetadata\n revocationRegistryDefinition: AnonCredsRevocationRegistryDefinition | undefined\n }\n ) {\n const { credentialRequestMetadata, revocationRegistryDefinition, credentialDefinition } = processOptions\n\n const processCredentialOptions = {\n credentialRequestMetadata: credentialRequestMetadata as unknown as JsonObject,\n linkSecret: await getLinkSecret(agentContext, credentialRequestMetadata.link_secret_name),\n revocationRegistryDefinition: revocationRegistryDefinition as unknown as JsonObject,\n credentialDefinition: credentialDefinition as unknown as JsonObject,\n }\n\n const credentialJson = JsonTransformer.toJSON(credential)\n const w3cAnonCredsCredential = W3cAnonCredsCredential.fromJson(credentialJson)\n const processedW3cAnonCredsCredential = w3cAnonCredsCredential.process(processCredentialOptions)\n\n const processedW3cJsonLdVerifiableCredential = JsonTransformer.fromJSON(\n processedW3cAnonCredsCredential.toJson(),\n W3cJsonLdVerifiableCredential\n )\n return processedW3cJsonLdVerifiableCredential\n }\n\n public async legacyToW3cCredential(agentContext: AgentContext, options: LegacyToW3cCredentialOptions) {\n const { credential, issuerId, processOptions } = options\n let w3cCredential: W3cJsonLdVerifiableCredential\n\n let anonCredsCredential: Credential | undefined\n let w3cCredentialObj: W3cAnonCredsCredential | undefined\n try {\n anonCredsCredential = Credential.fromJson(credential as unknown as JsonObject)\n w3cCredentialObj = anonCredsCredential.toW3c({ issuerId, w3cVersion: '1.1' })\n\n const w3cJsonLdVerifiableCredential = JsonTransformer.fromJSON(\n w3cCredentialObj.toJson(),\n W3cJsonLdVerifiableCredential\n )\n\n w3cCredential = processOptions\n ? await this.processW3cCredential(agentContext, w3cJsonLdVerifiableCredential, processOptions)\n : w3cJsonLdVerifiableCredential\n } finally {\n anonCredsCredential?.handle?.clear()\n w3cCredentialObj?.handle?.clear()\n }\n\n return w3cCredential\n }\n\n public async storeW3cCredential(\n agentContext: AgentContext,\n options: {\n credential: W3cJsonLdVerifiableCredential\n credentialDefinitionId: string\n schema: AnonCredsSchema\n credentialDefinition: AnonCredsCredentialDefinition\n revocationRegistryDefinition?: AnonCredsRevocationRegistryDefinition\n revocationRegistryId?: string\n credentialRequestMetadata: AnonCredsCredentialRequestMetadata\n }\n ) {\n const {\n credential,\n credentialRequestMetadata,\n schema,\n credentialDefinition,\n credentialDefinitionId,\n revocationRegistryId,\n } = options\n\n const methodName = agentContext.dependencyManager\n .resolve(AnonCredsRegistryService)\n .getRegistryForIdentifier(agentContext, credential.issuerId).methodName\n\n // this thows an error if the link secret is not found\n await getLinkSecret(agentContext, credentialRequestMetadata.link_secret_name)\n\n const { revocationRegistryIndex } = W3cAnonCredsCredential.fromJson(JsonTransformer.toJSON(credential))\n\n if (Array.isArray(credential.credentialSubject)) {\n throw new CredoError('Credential subject must be an object, not an array.')\n }\n\n const anonCredsTags = getW3cRecordAnonCredsTags({\n credentialSubject: credential.credentialSubject,\n issuerId: credential.issuerId,\n schema,\n schemaId: credentialDefinition.schemaId,\n credentialDefinitionId,\n revocationRegistryId,\n credentialRevocationId: revocationRegistryIndex?.toString(),\n linkSecretId: credentialRequestMetadata.link_secret_name,\n methodName,\n })\n\n const w3cCredentialService = agentContext.dependencyManager.resolve(W3cCredentialService)\n const w3cCredentialRecord = W3cCredentialRecord.fromCredential(credential)\n\n const anonCredsCredentialMetadata: W3cAnonCredsCredentialMetadata = {\n credentialRevocationId: anonCredsTags.anonCredsCredentialRevocationId,\n linkSecretId: anonCredsTags.anonCredsLinkSecretId,\n methodName: anonCredsTags.anonCredsMethodName,\n }\n\n w3cCredentialRecord.setTags(anonCredsTags)\n w3cCredentialRecord.metadata.set(W3cAnonCredsCredentialMetadataKey, anonCredsCredentialMetadata)\n\n await w3cCredentialService.storeCredential(agentContext, { record: w3cCredentialRecord })\n\n return w3cCredentialRecord\n }\n\n public async storeCredential(agentContext: AgentContext, options: StoreCredentialOptions): Promise<string> {\n const {\n credential,\n credentialDefinition,\n credentialDefinitionId,\n credentialRequestMetadata,\n schema,\n revocationRegistry,\n } = options\n\n const w3cJsonLdCredential =\n credential instanceof W3cJsonLdVerifiableCredential\n ? credential\n : await this.legacyToW3cCredential(agentContext, {\n credential,\n issuerId: credentialDefinition.issuerId,\n processOptions: {\n credentialRequestMetadata,\n credentialDefinition,\n revocationRegistryDefinition: revocationRegistry?.definition,\n },\n })\n\n const w3cCredentialRecord = await this.storeW3cCredential(agentContext, {\n credentialRequestMetadata,\n credential: w3cJsonLdCredential,\n credentialDefinitionId,\n schema,\n credentialDefinition,\n revocationRegistryDefinition: revocationRegistry?.definition,\n revocationRegistryId: revocationRegistry?.id,\n })\n\n return w3cCredentialRecord.id\n }\n\n public async getCredential(\n agentContext: AgentContext,\n options: GetCredentialOptions\n ): Promise<AnonCredsCredentialInfo> {\n const w3cCredentialRepository = agentContext.dependencyManager.resolve(W3cCredentialRepository)\n const w3cCredentialRecord = await w3cCredentialRepository.findById(agentContext, options.id)\n if (w3cCredentialRecord) {\n return getAnoncredsCredentialInfoFromRecord(w3cCredentialRecord, options.useUnqualifiedIdentifiersIfPresent)\n }\n\n const anonCredsCredentialRepository = agentContext.dependencyManager.resolve(AnonCredsCredentialRepository)\n const anonCredsCredentialRecord = await anonCredsCredentialRepository.getByCredentialId(agentContext, options.id)\n\n agentContext.config.logger.warn(\n [\n `Querying legacy credential repository for credential with id ${options.id}.`,\n 'Please run the migration script to migrate credentials to the new w3c format.',\n ].join('\\n')\n )\n\n return getAnoncredsCredentialInfoFromRecord(anonCredsCredentialRecord)\n }\n\n private async getLegacyCredentials(\n agentContext: AgentContext,\n options: GetCredentialsOptions\n ): Promise<AnonCredsCredentialInfo[]> {\n const credentialRecords = await agentContext.dependencyManager\n .resolve(AnonCredsCredentialRepository)\n .findByQuery(agentContext, {\n credentialDefinitionId: options.credentialDefinitionId,\n schemaId: options.schemaId,\n issuerId: options.issuerId,\n schemaName: options.schemaName,\n schemaVersion: options.schemaVersion,\n schemaIssuerId: options.schemaIssuerId,\n methodName: options.methodName,\n })\n\n return credentialRecords.map((credentialRecord) => getAnoncredsCredentialInfoFromRecord(credentialRecord))\n }\n\n public async getCredentials(\n agentContext: AgentContext,\n options: GetCredentialsOptions\n ): Promise<AnonCredsCredentialInfo[]> {\n const credentialRecords = await agentContext.dependencyManager\n .resolve(W3cCredentialRepository)\n .findByQuery(agentContext, {\n issuerId: !options.issuerId || isUnqualifiedIndyDid(options.issuerId) ? undefined : options.issuerId,\n anonCredsCredentialDefinitionId:\n !options.credentialDefinitionId || isUnqualifiedCredentialDefinitionId(options.credentialDefinitionId)\n ? undefined\n : options.credentialDefinitionId,\n anonCredsSchemaId: !options.schemaId || isUnqualifiedSchemaId(options.schemaId) ? undefined : options.schemaId,\n anonCredsSchemaName: options.schemaName,\n anonCredsSchemaVersion: options.schemaVersion,\n anonCredsSchemaIssuerId:\n !options.schemaIssuerId || isUnqualifiedIndyDid(options.schemaIssuerId) ? undefined : options.schemaIssuerId,\n\n anonCredsMethodName: options.methodName,\n anonCredsUnqualifiedSchemaId:\n options.schemaId && isUnqualifiedSchemaId(options.schemaId) ? options.schemaId : undefined,\n anonCredsUnqualifiedIssuerId:\n options.issuerId && isUnqualifiedIndyDid(options.issuerId) ? options.issuerId : undefined,\n anonCredsUnqualifiedSchemaIssuerId:\n options.schemaIssuerId && isUnqualifiedIndyDid(options.schemaIssuerId) ? options.schemaIssuerId : undefined,\n anonCredsUnqualifiedCredentialDefinitionId:\n options.credentialDefinitionId && isUnqualifiedCredentialDefinitionId(options.credentialDefinitionId)\n ? options.credentialDefinitionId\n : undefined,\n })\n\n const credentials = credentialRecords.map((credentialRecord) =>\n getAnoncredsCredentialInfoFromRecord(credentialRecord)\n )\n const legacyCredentials = await this.getLegacyCredentials(agentContext, options)\n\n if (legacyCredentials.length > 0) {\n agentContext.config.logger.warn(\n 'Queried credentials include legacy credentials. Please run the migration script to migrate credentials to the new w3c format.'\n )\n }\n return [...legacyCredentials, ...credentials]\n }\n\n public async deleteCredential(agentContext: AgentContext, id: string): Promise<void> {\n const w3cCredentialRepository = agentContext.dependencyManager.resolve(W3cCredentialRepository)\n const w3cCredentialRecord = await w3cCredentialRepository.findById(agentContext, id)\n\n if (w3cCredentialRecord) {\n await w3cCredentialRepository.delete(agentContext, w3cCredentialRecord)\n return\n }\n\n const anoncredsCredentialRepository = agentContext.dependencyManager.resolve(AnonCredsCredentialRepository)\n const anoncredsCredentialRecord = await anoncredsCredentialRepository.getByCredentialId(agentContext, id)\n await anoncredsCredentialRepository.delete(agentContext, anoncredsCredentialRecord)\n }\n private async getLegacyCredentialsForProofRequest(\n agentContext: AgentContext,\n options: GetCredentialsForProofRequestOptions\n ): Promise<GetCredentialsForProofRequestReturn> {\n const proofRequest = options.proofRequest\n const referent = options.attributeReferent\n\n const requestedAttribute =\n proofRequest.requested_attributes[referent] ?? proofRequest.requested_predicates[referent]\n\n if (!requestedAttribute) {\n throw new AnonCredsRsError('Referent not found in proof request')\n }\n\n const $and = []\n\n // Make sure the attribute(s) that are requested are present using the marker tag\n const attributes = requestedAttribute.names ?? [requestedAttribute.name]\n const attributeQuery: SimpleQuery<AnonCredsCredentialRecord> = {}\n for (const attribute of attributes) {\n attributeQuery[`anonCredsAttr::${attribute}::marker`] = true\n }\n $and.push(attributeQuery)\n\n // Add query for proof request restrictions\n if (requestedAttribute.restrictions) {\n const restrictionQuery = this.queryLegacyFromRestrictions(requestedAttribute.restrictions)\n $and.push(restrictionQuery)\n }\n\n // Add extra query\n // TODO: we're not really typing the extraQuery, and it will work differently based on the anoncreds implmentation\n // We should make the allowed properties more strict\n if (options.extraQuery) {\n $and.push(options.extraQuery)\n }\n\n const credentials = await agentContext.dependencyManager\n .resolve(AnonCredsCredentialRepository)\n .findByQuery(agentContext, {\n $and,\n })\n\n return credentials.map((credentialRecord) => {\n return {\n credentialInfo: getAnoncredsCredentialInfoFromRecord(credentialRecord),\n interval: proofRequest.non_revoked,\n }\n })\n }\n\n public async getCredentialsForProofRequest(\n agentContext: AgentContext,\n options: GetCredentialsForProofRequestOptions\n ): Promise<GetCredentialsForProofRequestReturn> {\n const proofRequest = options.proofRequest\n const referent = options.attributeReferent\n\n const requestedAttribute =\n proofRequest.requested_attributes[referent] ?? proofRequest.requested_predicates[referent]\n\n if (!requestedAttribute) {\n throw new AnonCredsRsError('Referent not found in proof request')\n }\n\n const $and = []\n\n const useUnqualifiedIdentifiers = proofRequestUsesUnqualifiedIdentifiers(proofRequest)\n\n // Make sure the attribute(s) that are requested are present using the marker tag\n const attributes = requestedAttribute.names ?? [requestedAttribute.name]\n const attributeQuery: SimpleQuery<W3cCredentialRecord> = {}\n for (const attribute of attributes) {\n attributeQuery[`anonCredsAttr::${attribute}::marker`] = true\n }\n $and.push(attributeQuery)\n\n // Add query for proof request restrictions\n if (requestedAttribute.restrictions) {\n const restrictionQuery = this.queryFromRestrictions(requestedAttribute.restrictions)\n $and.push(restrictionQuery)\n }\n\n // Add extra query\n // TODO: we're not really typing the extraQuery, and it will work differently based on the anoncreds implmentation\n // We should make the allowed properties more strict\n if (options.extraQuery) {\n $and.push(options.extraQuery)\n }\n\n const w3cCredentialRepository = agentContext.dependencyManager.resolve(W3cCredentialRepository)\n const credentials = await w3cCredentialRepository.findByQuery(agentContext, { $and })\n const legacyCredentialWithMetadata = await this.getLegacyCredentialsForProofRequest(agentContext, options)\n\n if (legacyCredentialWithMetadata.length > 0) {\n agentContext.config.logger.warn(\n [\n 'Including legacy credentials in proof request.',\n 'Please run the migration script to migrate credentials to the new w3c format.',\n ].join('\\n')\n )\n }\n\n const credentialWithMetadata = credentials.map((credentialRecord) => {\n return {\n credentialInfo: getAnoncredsCredentialInfoFromRecord(credentialRecord, useUnqualifiedIdentifiers),\n interval: proofRequest.non_revoked,\n }\n })\n\n return [...credentialWithMetadata, ...legacyCredentialWithMetadata]\n }\n\n private queryFromRestrictions(restrictions: AnonCredsProofRequestRestriction[]) {\n const query: Query<W3cCredentialRecord>[] = []\n\n const { restrictions: parsedRestrictions } = JsonTransformer.fromJSON({ restrictions }, AnonCredsRestrictionWrapper)\n\n for (const restriction of parsedRestrictions) {\n const queryElements: SimpleQuery<W3cCredentialRecord> = {}\n\n if (restriction.credentialDefinitionId) {\n if (isUnqualifiedCredentialDefinitionId(restriction.credentialDefinitionId)) {\n queryElements.anonCredsUnqualifiedCredentialDefinitionId = restriction.credentialDefinitionId\n } else {\n queryElements.anonCredsCredentialDefinitionId = restriction.credentialDefinitionId\n }\n }\n\n if (restriction.issuerId || restriction.issuerDid) {\n const issuerId = (restriction.issuerId ?? restriction.issuerDid) as string\n if (isUnqualifiedIndyDid(issuerId)) {\n queryElements.anonCredsUnqualifiedIssuerId = issuerId\n } else {\n queryElements.issuerId = issuerId\n }\n }\n\n if (restriction.schemaId) {\n if (isUnqualifiedSchemaId(restriction.schemaId)) {\n queryElements.anonCredsUnqualifiedSchemaId = restriction.schemaId\n } else {\n queryElements.anonCredsSchemaId = restriction.schemaId\n }\n }\n\n if (restriction.schemaIssuerId || restriction.schemaIssuerDid) {\n const schemaIssuerId = (restriction.schemaIssuerId ?? restriction.schemaIssuerDid) as string\n if (isUnqualifiedIndyDid(schemaIssuerId)) {\n queryElements.anonCredsUnqualifiedSchemaIssuerId = schemaIssuerId\n } else {\n queryElements.anonCredsSchemaIssuerId = schemaIssuerId\n }\n }\n\n if (restriction.schemaName) {\n queryElements.anonCredsSchemaName = restriction.schemaName\n }\n\n if (restriction.schemaVersion) {\n queryElements.anonCredsSchemaVersion = restriction.schemaVersion\n }\n\n for (const [attributeName, attributeValue] of Object.entries(restriction.attributeValues)) {\n queryElements[`anonCredsAttr::${attributeName}::value`] = attributeValue\n }\n\n for (const [attributeName, isAvailable] of Object.entries(restriction.attributeMarkers)) {\n if (isAvailable) {\n queryElements[`anonCredsAttr::${attributeName}::marker`] = isAvailable\n }\n }\n\n query.push(queryElements)\n }\n\n return query.length === 1 ? query[0] : { $or: query }\n }\n\n private queryLegacyFromRestrictions(restrictions: AnonCredsProofRequestRestriction[]) {\n const query: Query<AnonCredsCredentialRecord>[] = []\n\n const { restrictions: parsedRestrictions } = JsonTransformer.fromJSON({ restrictions }, AnonCredsRestrictionWrapper)\n\n for (const restriction of parsedRestrictions) {\n const queryElements: SimpleQuery<AnonCredsCredentialRecord> = {}\n const additionalQueryElements: SimpleQuery<AnonCredsCredentialRecord> = {}\n\n if (restriction.credentialDefinitionId) {\n queryElements.credentialDefinitionId = restriction.credentialDefinitionId\n if (isUnqualifiedCredentialDefinitionId(restriction.credentialDefinitionId)) {\n additionalQueryElements.credentialDefinitionId = restriction.credentialDefinitionId\n }\n }\n\n if (restriction.issuerId || restriction.issuerDid) {\n const issuerId = (restriction.issuerId ?? restriction.issuerDid) as string\n queryElements.issuerId = issuerId\n if (isUnqualifiedIndyDid(issuerId)) {\n additionalQueryElements.issuerId = issuerId\n }\n }\n\n if (restriction.schemaId) {\n queryElements.schemaId = restriction.schemaId\n if (isUnqualifiedSchemaId(restriction.schemaId)) {\n additionalQueryElements.schemaId = restriction.schemaId\n }\n }\n\n if (restriction.schemaIssuerId || restriction.schemaIssuerDid) {\n const issuerId = (restriction.schemaIssuerId ?? restriction.schemaIssuerDid) as string\n queryElements.schemaIssuerId = issuerId\n if (isUnqualifiedIndyDid(issuerId)) {\n additionalQueryElements.schemaIssuerId = issuerId\n }\n }\n\n if (restriction.schemaName) {\n queryElements.schemaName = restriction.schemaName\n }\n\n if (restriction.schemaVersion) {\n queryElements.schemaVersion = restriction.schemaVersion\n }\n\n for (const [attributeName, attributeValue] of Object.entries(restriction.attributeValues)) {\n queryElements[`attr::${attributeName}::value`] = attributeValue\n }\n\n for (const [attributeName, isAvailable] of Object.entries(restriction.attributeMarkers)) {\n if (isAvailable) {\n queryElements[`attr::${attributeName}::marker`] = isAvailable\n }\n }\n\n query.push(queryElements)\n if (Object.keys(additionalQueryElements).length > 0) {\n query.push(additionalQueryElements)\n }\n }\n\n return query.length === 1 ? query[0] : { $or: query }\n }\n\n private getPresentationMetadata = async (\n agentContext: AgentContext,\n options: {\n credentialsWithMetadata: CredentialWithRevocationMetadata[]\n credentialsProve: AnonCredsCredentialProve[]\n }\n ) => {\n const { credentialsWithMetadata, credentialsProve } = options\n\n const credentials: W3cCredentialEntry[] = await Promise.all(\n credentialsWithMetadata.map(async ({ credential, nonRevoked }) => {\n const credentialJson = JsonTransformer.toJSON(credential)\n const { revocationRegistryIndex, revocationRegistryId, timestamp } =\n W3cAnonCredsCredential.fromJson(credentialJson)\n\n if (!nonRevoked) return { credential: credentialJson, revocationState: undefined, timestamp: undefined }\n\n if (!revocationRegistryId || !revocationRegistryIndex) throw new CredoError('Missing revocation metadata')\n\n const { revocationState, updatedTimestamp } = await getRevocationMetadata(agentContext, {\n nonRevokedInterval: nonRevoked,\n timestamp,\n revocationRegistryIndex,\n revocationRegistryId,\n })\n\n return { credential: credentialJson, revocationState, timestamp: updatedTimestamp }\n })\n )\n\n return { credentialsProve, credentials }\n }\n\n public async createW3cPresentation(agentContext: AgentContext, options: CreateW3cPresentationOptions) {\n const { credentialsProve, credentials } = await this.getPresentationMetadata(agentContext, {\n credentialsWithMetadata: options.credentialsWithRevocationMetadata,\n credentialsProve: options.credentialsProve,\n })\n\n let w3cAnonCredsPresentation: W3cAnonCredsPresentation | undefined\n let w3cPresentation: W3cJsonLdVerifiablePresentation\n try {\n w3cAnonCredsPresentation = W3cAnonCredsPresentation.create({\n credentials,\n credentialsProve,\n schemas: options.schemas as unknown as Record<string, JsonObject>,\n credentialDefinitions: options.credentialDefinitions as unknown as Record<string, JsonObject>,\n presentationRequest: options.proofRequest as unknown as JsonObject,\n linkSecret: await getLinkSecret(agentContext, options.linkSecretId),\n })\n const presentationJson = w3cAnonCredsPresentation.toJson() as unknown as JsonObject\n w3cPresentation = JsonTransformer.fromJSON(presentationJson, W3cJsonLdVerifiablePresentation)\n } finally {\n w3cAnonCredsPresentation?.handle.clear()\n }\n\n return w3cPresentation\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,213 @@
|
|
|
1
|
+
import { AnonCredsRsError } from "../error/AnonCredsRsError.mjs";
|
|
2
|
+
import "../error/index.mjs";
|
|
3
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
4
|
+
import { AnonCredsCredentialDefinitionPrivateRepository } from "../repository/AnonCredsCredentialDefinitionPrivateRepository.mjs";
|
|
5
|
+
import { getUnqualifiedSchemaId, isUnqualifiedCredentialDefinitionId, parseIndyDid, parseIndySchemaId } from "../utils/indyIdentifiers.mjs";
|
|
6
|
+
import { AnonCredsCredentialDefinitionRepository } from "../repository/AnonCredsCredentialDefinitionRepository.mjs";
|
|
7
|
+
import { AnonCredsKeyCorrectnessProofRepository } from "../repository/AnonCredsKeyCorrectnessProofRepository.mjs";
|
|
8
|
+
import { AnonCredsRevocationRegistryState } from "../repository/AnonCredsRevocationRegistryDefinitionPrivateRecord.mjs";
|
|
9
|
+
import { AnonCredsRevocationRegistryDefinitionPrivateRepository } from "../repository/AnonCredsRevocationRegistryDefinitionPrivateRepository.mjs";
|
|
10
|
+
import { AnonCredsRevocationRegistryDefinitionRepository } from "../repository/AnonCredsRevocationRegistryDefinitionRepository.mjs";
|
|
11
|
+
import "../repository/index.mjs";
|
|
12
|
+
import { CredoError, injectable } from "@credo-ts/core";
|
|
13
|
+
import { Credential, CredentialDefinition, CredentialOffer, CredentialRevocationConfig, RevocationRegistryDefinition, RevocationRegistryDefinitionPrivate, RevocationStatusList, Schema } from "@hyperledger/anoncreds-shared";
|
|
14
|
+
|
|
15
|
+
//#region src/anoncreds-rs/AnonCredsRsIssuerService.ts
|
|
16
|
+
let AnonCredsRsIssuerService = class AnonCredsRsIssuerService$1 {
|
|
17
|
+
async createSchema(_agentContext, options) {
|
|
18
|
+
const { issuerId, name, version, attrNames: attributeNames } = options;
|
|
19
|
+
let schema;
|
|
20
|
+
try {
|
|
21
|
+
return Schema.create({
|
|
22
|
+
issuerId,
|
|
23
|
+
name,
|
|
24
|
+
version,
|
|
25
|
+
attributeNames
|
|
26
|
+
}).toJson();
|
|
27
|
+
} finally {
|
|
28
|
+
schema?.handle.clear();
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
async createCredentialDefinition(_agentContext, options) {
|
|
32
|
+
const { tag, supportRevocation, schema, issuerId, schemaId } = options;
|
|
33
|
+
let createReturnObj;
|
|
34
|
+
try {
|
|
35
|
+
createReturnObj = CredentialDefinition.create({
|
|
36
|
+
schema,
|
|
37
|
+
issuerId,
|
|
38
|
+
schemaId,
|
|
39
|
+
tag,
|
|
40
|
+
supportRevocation,
|
|
41
|
+
signatureType: "CL"
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
credentialDefinition: createReturnObj.credentialDefinition.toJson(),
|
|
45
|
+
credentialDefinitionPrivate: createReturnObj.credentialDefinitionPrivate.toJson(),
|
|
46
|
+
keyCorrectnessProof: createReturnObj.keyCorrectnessProof.toJson()
|
|
47
|
+
};
|
|
48
|
+
} finally {
|
|
49
|
+
createReturnObj?.credentialDefinition.handle.clear();
|
|
50
|
+
createReturnObj?.credentialDefinitionPrivate.handle.clear();
|
|
51
|
+
createReturnObj?.keyCorrectnessProof.handle.clear();
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
async createRevocationRegistryDefinition(_agentContext, options) {
|
|
55
|
+
const { tag, issuerId, credentialDefinition, credentialDefinitionId, maximumCredentialNumber, tailsDirectoryPath } = options;
|
|
56
|
+
let createReturnObj;
|
|
57
|
+
try {
|
|
58
|
+
createReturnObj = RevocationRegistryDefinition.create({
|
|
59
|
+
credentialDefinition,
|
|
60
|
+
credentialDefinitionId,
|
|
61
|
+
issuerId,
|
|
62
|
+
maximumCredentialNumber,
|
|
63
|
+
revocationRegistryType: "CL_ACCUM",
|
|
64
|
+
tag,
|
|
65
|
+
tailsDirectoryPath
|
|
66
|
+
});
|
|
67
|
+
return {
|
|
68
|
+
revocationRegistryDefinition: createReturnObj.revocationRegistryDefinition.toJson(),
|
|
69
|
+
revocationRegistryDefinitionPrivate: createReturnObj.revocationRegistryDefinitionPrivate.toJson()
|
|
70
|
+
};
|
|
71
|
+
} finally {
|
|
72
|
+
createReturnObj?.revocationRegistryDefinition.handle.clear();
|
|
73
|
+
createReturnObj?.revocationRegistryDefinitionPrivate.handle.clear();
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
async createRevocationStatusList(agentContext, options) {
|
|
77
|
+
const { issuerId, revocationRegistryDefinitionId, revocationRegistryDefinition } = options;
|
|
78
|
+
const credentialDefinitionRecord = await agentContext.dependencyManager.resolve(AnonCredsCredentialDefinitionRepository).getByCredentialDefinitionId(agentContext, revocationRegistryDefinition.credDefId);
|
|
79
|
+
const revocationRegistryDefinitionPrivateRecord = await agentContext.dependencyManager.resolve(AnonCredsRevocationRegistryDefinitionPrivateRepository).getByRevocationRegistryDefinitionId(agentContext, revocationRegistryDefinitionId);
|
|
80
|
+
let revocationStatusList;
|
|
81
|
+
try {
|
|
82
|
+
revocationStatusList = RevocationStatusList.create({
|
|
83
|
+
issuanceByDefault: true,
|
|
84
|
+
revocationRegistryDefinitionId,
|
|
85
|
+
credentialDefinition: credentialDefinitionRecord.credentialDefinition,
|
|
86
|
+
revocationRegistryDefinition,
|
|
87
|
+
revocationRegistryDefinitionPrivate: revocationRegistryDefinitionPrivateRecord.value,
|
|
88
|
+
issuerId
|
|
89
|
+
});
|
|
90
|
+
return revocationStatusList.toJson();
|
|
91
|
+
} finally {
|
|
92
|
+
revocationStatusList?.handle.clear();
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
async updateRevocationStatusList(agentContext, options) {
|
|
96
|
+
const { revocationStatusList, revocationRegistryDefinition, issued, revoked, timestamp, tailsFilePath } = options;
|
|
97
|
+
let updatedRevocationStatusList;
|
|
98
|
+
let revocationRegistryDefinitionObj;
|
|
99
|
+
try {
|
|
100
|
+
updatedRevocationStatusList = RevocationStatusList.fromJson(revocationStatusList);
|
|
101
|
+
if (timestamp && !issued && !revoked) updatedRevocationStatusList.updateTimestamp({ timestamp });
|
|
102
|
+
else {
|
|
103
|
+
const credentialDefinitionRecord = await agentContext.dependencyManager.resolve(AnonCredsCredentialDefinitionRepository).getByCredentialDefinitionId(agentContext, revocationRegistryDefinition.credDefId);
|
|
104
|
+
const revocationRegistryDefinitionPrivateRecord = await agentContext.dependencyManager.resolve(AnonCredsRevocationRegistryDefinitionPrivateRepository).getByRevocationRegistryDefinitionId(agentContext, revocationStatusList.revRegDefId);
|
|
105
|
+
revocationRegistryDefinitionObj = RevocationRegistryDefinition.fromJson({
|
|
106
|
+
...revocationRegistryDefinition,
|
|
107
|
+
value: {
|
|
108
|
+
...revocationRegistryDefinition.value,
|
|
109
|
+
tailsLocation: tailsFilePath
|
|
110
|
+
}
|
|
111
|
+
});
|
|
112
|
+
updatedRevocationStatusList.update({
|
|
113
|
+
credentialDefinition: credentialDefinitionRecord.credentialDefinition,
|
|
114
|
+
revocationRegistryDefinition: revocationRegistryDefinitionObj,
|
|
115
|
+
revocationRegistryDefinitionPrivate: revocationRegistryDefinitionPrivateRecord.value,
|
|
116
|
+
issued: options.issued,
|
|
117
|
+
revoked: options.revoked,
|
|
118
|
+
timestamp: timestamp ?? -1
|
|
119
|
+
});
|
|
120
|
+
}
|
|
121
|
+
return updatedRevocationStatusList.toJson();
|
|
122
|
+
} finally {
|
|
123
|
+
updatedRevocationStatusList?.handle.clear();
|
|
124
|
+
revocationRegistryDefinitionObj?.handle.clear();
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
async createCredentialOffer(agentContext, options) {
|
|
128
|
+
const { credentialDefinitionId } = options;
|
|
129
|
+
let credentialOffer;
|
|
130
|
+
try {
|
|
131
|
+
const credentialDefinitionRecord = await agentContext.dependencyManager.resolve(AnonCredsCredentialDefinitionRepository).getByCredentialDefinitionId(agentContext, options.credentialDefinitionId);
|
|
132
|
+
const keyCorrectnessProofRecord = await agentContext.dependencyManager.resolve(AnonCredsKeyCorrectnessProofRepository).getByCredentialDefinitionId(agentContext, credentialDefinitionRecord.credentialDefinitionId);
|
|
133
|
+
if (!credentialDefinitionRecord) throw new AnonCredsRsError(`Credential Definition ${credentialDefinitionId} not found`);
|
|
134
|
+
let schemaId = credentialDefinitionRecord.credentialDefinition.schemaId;
|
|
135
|
+
if (isUnqualifiedCredentialDefinitionId(options.credentialDefinitionId)) {
|
|
136
|
+
const { namespaceIdentifier, schemaName, schemaVersion } = parseIndySchemaId(schemaId);
|
|
137
|
+
schemaId = getUnqualifiedSchemaId(namespaceIdentifier, schemaName, schemaVersion);
|
|
138
|
+
}
|
|
139
|
+
credentialOffer = CredentialOffer.create({
|
|
140
|
+
credentialDefinitionId,
|
|
141
|
+
keyCorrectnessProof: keyCorrectnessProofRecord?.value,
|
|
142
|
+
schemaId
|
|
143
|
+
});
|
|
144
|
+
return credentialOffer.toJson();
|
|
145
|
+
} finally {
|
|
146
|
+
credentialOffer?.handle.clear();
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
async createCredential(agentContext, options) {
|
|
150
|
+
const { credentialOffer, credentialRequest, credentialValues, revocationRegistryDefinitionId, revocationStatusList, revocationRegistryIndex } = options;
|
|
151
|
+
const definedRevocationOptions = [
|
|
152
|
+
revocationRegistryDefinitionId,
|
|
153
|
+
revocationStatusList,
|
|
154
|
+
revocationRegistryIndex
|
|
155
|
+
].filter((e) => e !== void 0);
|
|
156
|
+
if (definedRevocationOptions.length > 0 && definedRevocationOptions.length < 3) throw new CredoError("Revocation requires all of revocationRegistryDefinitionId, revocationRegistryIndex and revocationStatusList");
|
|
157
|
+
let credential;
|
|
158
|
+
try {
|
|
159
|
+
const attributeRawValues = {};
|
|
160
|
+
const attributeEncodedValues = {};
|
|
161
|
+
for (const key of Object.keys(credentialValues)) {
|
|
162
|
+
attributeRawValues[key] = credentialValues[key].raw;
|
|
163
|
+
attributeEncodedValues[key] = credentialValues[key].encoded;
|
|
164
|
+
}
|
|
165
|
+
const credentialDefinitionRecord = await agentContext.dependencyManager.resolve(AnonCredsCredentialDefinitionRepository).getByCredentialDefinitionId(agentContext, options.credentialRequest.cred_def_id);
|
|
166
|
+
const credentialDefinitionPrivateRecord = await agentContext.dependencyManager.resolve(AnonCredsCredentialDefinitionPrivateRepository).getByCredentialDefinitionId(agentContext, credentialDefinitionRecord.credentialDefinitionId);
|
|
167
|
+
let credentialDefinition = credentialDefinitionRecord.credentialDefinition;
|
|
168
|
+
if (isUnqualifiedCredentialDefinitionId(options.credentialRequest.cred_def_id)) {
|
|
169
|
+
const { namespaceIdentifier, schemaName, schemaVersion } = parseIndySchemaId(credentialDefinition.schemaId);
|
|
170
|
+
const { namespaceIdentifier: unqualifiedDid } = parseIndyDid(credentialDefinition.issuerId);
|
|
171
|
+
credentialDefinition = {
|
|
172
|
+
...credentialDefinition,
|
|
173
|
+
schemaId: getUnqualifiedSchemaId(namespaceIdentifier, schemaName, schemaVersion),
|
|
174
|
+
issuerId: unqualifiedDid
|
|
175
|
+
};
|
|
176
|
+
}
|
|
177
|
+
let revocationConfiguration;
|
|
178
|
+
if (revocationRegistryDefinitionId && revocationStatusList && revocationRegistryIndex !== void 0) {
|
|
179
|
+
const revocationRegistryDefinitionRecord = await agentContext.dependencyManager.resolve(AnonCredsRevocationRegistryDefinitionRepository).getByRevocationRegistryDefinitionId(agentContext, revocationRegistryDefinitionId);
|
|
180
|
+
const revocationRegistryDefinitionPrivateRecord = await agentContext.dependencyManager.resolve(AnonCredsRevocationRegistryDefinitionPrivateRepository).getByRevocationRegistryDefinitionId(agentContext, revocationRegistryDefinitionId);
|
|
181
|
+
if (revocationRegistryIndex >= revocationRegistryDefinitionRecord.revocationRegistryDefinition.value.maxCredNum) revocationRegistryDefinitionPrivateRecord.state = AnonCredsRevocationRegistryState.Full;
|
|
182
|
+
revocationConfiguration = new CredentialRevocationConfig({
|
|
183
|
+
registryDefinition: RevocationRegistryDefinition.fromJson(revocationRegistryDefinitionRecord.revocationRegistryDefinition),
|
|
184
|
+
registryDefinitionPrivate: RevocationRegistryDefinitionPrivate.fromJson(revocationRegistryDefinitionPrivateRecord.value),
|
|
185
|
+
statusList: RevocationStatusList.fromJson(revocationStatusList),
|
|
186
|
+
registryIndex: revocationRegistryIndex
|
|
187
|
+
});
|
|
188
|
+
}
|
|
189
|
+
credential = Credential.create({
|
|
190
|
+
credentialDefinition: credentialDefinitionRecord.credentialDefinition,
|
|
191
|
+
credentialOffer,
|
|
192
|
+
credentialRequest,
|
|
193
|
+
revocationRegistryId: revocationRegistryDefinitionId,
|
|
194
|
+
attributeEncodedValues,
|
|
195
|
+
attributeRawValues,
|
|
196
|
+
credentialDefinitionPrivate: credentialDefinitionPrivateRecord.value,
|
|
197
|
+
revocationConfiguration,
|
|
198
|
+
revocationStatusList: revocationStatusList ? RevocationStatusList.fromJson(revocationStatusList) : void 0
|
|
199
|
+
});
|
|
200
|
+
return {
|
|
201
|
+
credential: credential.toJson(),
|
|
202
|
+
credentialRevocationId: credential.revocationRegistryIndex?.toString()
|
|
203
|
+
};
|
|
204
|
+
} finally {
|
|
205
|
+
credential?.handle.clear();
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
AnonCredsRsIssuerService = __decorate([injectable()], AnonCredsRsIssuerService);
|
|
210
|
+
|
|
211
|
+
//#endregion
|
|
212
|
+
export { AnonCredsRsIssuerService };
|
|
213
|
+
//# sourceMappingURL=AnonCredsRsIssuerService.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnonCredsRsIssuerService.mjs","names":["AnonCredsRsIssuerService","schema: Schema | undefined","createReturnObj:\n | {\n credentialDefinition: CredentialDefinition\n credentialDefinitionPrivate: CredentialDefinitionPrivate\n keyCorrectnessProof: KeyCorrectnessProof\n }\n | undefined","createReturnObj:\n | {\n revocationRegistryDefinition: RevocationRegistryDefinition\n revocationRegistryDefinitionPrivate: RevocationRegistryDefinitionPrivate\n }\n | undefined","revocationStatusList: RevocationStatusList | undefined","updatedRevocationStatusList: RevocationStatusList | undefined","revocationRegistryDefinitionObj: RevocationRegistryDefinition | undefined","credentialOffer: CredentialOffer | undefined","credential: Credential | undefined","attributeRawValues: Record<string, string>","attributeEncodedValues: Record<string, string>","revocationConfiguration: CredentialRevocationConfig | undefined"],"sources":["../../src/anoncreds-rs/AnonCredsRsIssuerService.ts"],"sourcesContent":["import type { AgentContext } from '@credo-ts/core'\nimport { CredoError, injectable } from '@credo-ts/core'\nimport type { CredentialDefinitionPrivate, JsonObject, KeyCorrectnessProof } from '@hyperledger/anoncreds-shared'\nimport {\n Credential,\n CredentialDefinition,\n CredentialOffer,\n CredentialRevocationConfig,\n RevocationRegistryDefinition,\n RevocationRegistryDefinitionPrivate,\n RevocationStatusList,\n Schema,\n} from '@hyperledger/anoncreds-shared'\nimport { AnonCredsRsError } from '../error'\nimport type {\n AnonCredsCredential,\n AnonCredsCredentialDefinition,\n AnonCredsCredentialOffer,\n AnonCredsRevocationRegistryDefinition,\n AnonCredsRevocationStatusList,\n AnonCredsSchema,\n} from '../models'\nimport {\n AnonCredsCredentialDefinitionPrivateRepository,\n AnonCredsCredentialDefinitionRepository,\n AnonCredsKeyCorrectnessProofRepository,\n AnonCredsRevocationRegistryDefinitionPrivateRepository,\n AnonCredsRevocationRegistryDefinitionRepository,\n AnonCredsRevocationRegistryState,\n} from '../repository'\nimport type {\n AnonCredsIssuerService,\n CreateCredentialDefinitionOptions,\n CreateCredentialDefinitionReturn,\n CreateCredentialOfferOptions,\n CreateCredentialOptions,\n CreateCredentialReturn,\n CreateRevocationRegistryDefinitionOptions,\n CreateRevocationRegistryDefinitionReturn,\n CreateRevocationStatusListOptions,\n CreateSchemaOptions,\n UpdateRevocationStatusListOptions,\n} from '../services'\nimport {\n getUnqualifiedSchemaId,\n isUnqualifiedCredentialDefinitionId,\n parseIndyDid,\n parseIndySchemaId,\n} from '../utils/indyIdentifiers'\n\n@injectable()\nexport class AnonCredsRsIssuerService implements AnonCredsIssuerService {\n public async createSchema(_agentContext: AgentContext, options: CreateSchemaOptions): Promise<AnonCredsSchema> {\n const { issuerId, name, version, attrNames: attributeNames } = options\n\n let schema: Schema | undefined\n try {\n const schema = Schema.create({\n issuerId,\n name,\n version,\n attributeNames,\n })\n\n return schema.toJson() as unknown as AnonCredsSchema\n } finally {\n schema?.handle.clear()\n }\n }\n\n public async createCredentialDefinition(\n _agentContext: AgentContext,\n options: CreateCredentialDefinitionOptions\n ): Promise<CreateCredentialDefinitionReturn> {\n const { tag, supportRevocation, schema, issuerId, schemaId } = options\n\n let createReturnObj:\n | {\n credentialDefinition: CredentialDefinition\n credentialDefinitionPrivate: CredentialDefinitionPrivate\n keyCorrectnessProof: KeyCorrectnessProof\n }\n | undefined\n try {\n createReturnObj = CredentialDefinition.create({\n schema: schema as unknown as JsonObject,\n issuerId,\n schemaId,\n tag,\n supportRevocation,\n signatureType: 'CL',\n })\n\n return {\n credentialDefinition: createReturnObj.credentialDefinition.toJson() as unknown as AnonCredsCredentialDefinition,\n credentialDefinitionPrivate: createReturnObj.credentialDefinitionPrivate.toJson(),\n keyCorrectnessProof: createReturnObj.keyCorrectnessProof.toJson(),\n }\n } finally {\n createReturnObj?.credentialDefinition.handle.clear()\n createReturnObj?.credentialDefinitionPrivate.handle.clear()\n createReturnObj?.keyCorrectnessProof.handle.clear()\n }\n }\n\n public async createRevocationRegistryDefinition(\n _agentContext: AgentContext,\n options: CreateRevocationRegistryDefinitionOptions\n ): Promise<CreateRevocationRegistryDefinitionReturn> {\n const { tag, issuerId, credentialDefinition, credentialDefinitionId, maximumCredentialNumber, tailsDirectoryPath } =\n options\n\n let createReturnObj:\n | {\n revocationRegistryDefinition: RevocationRegistryDefinition\n revocationRegistryDefinitionPrivate: RevocationRegistryDefinitionPrivate\n }\n | undefined\n try {\n createReturnObj = RevocationRegistryDefinition.create({\n credentialDefinition: credentialDefinition as unknown as JsonObject,\n credentialDefinitionId,\n issuerId,\n maximumCredentialNumber,\n revocationRegistryType: 'CL_ACCUM',\n tag,\n tailsDirectoryPath,\n })\n\n return {\n revocationRegistryDefinition:\n createReturnObj.revocationRegistryDefinition.toJson() as unknown as AnonCredsRevocationRegistryDefinition,\n revocationRegistryDefinitionPrivate: createReturnObj.revocationRegistryDefinitionPrivate.toJson(),\n }\n } finally {\n createReturnObj?.revocationRegistryDefinition.handle.clear()\n createReturnObj?.revocationRegistryDefinitionPrivate.handle.clear()\n }\n }\n\n public async createRevocationStatusList(\n agentContext: AgentContext,\n options: CreateRevocationStatusListOptions\n ): Promise<AnonCredsRevocationStatusList> {\n const { issuerId, revocationRegistryDefinitionId, revocationRegistryDefinition } = options\n\n const credentialDefinitionRecord = await agentContext.dependencyManager\n .resolve(AnonCredsCredentialDefinitionRepository)\n .getByCredentialDefinitionId(agentContext, revocationRegistryDefinition.credDefId)\n\n const revocationRegistryDefinitionPrivateRecord = await agentContext.dependencyManager\n .resolve(AnonCredsRevocationRegistryDefinitionPrivateRepository)\n .getByRevocationRegistryDefinitionId(agentContext, revocationRegistryDefinitionId)\n\n let revocationStatusList: RevocationStatusList | undefined\n try {\n revocationStatusList = RevocationStatusList.create({\n issuanceByDefault: true,\n revocationRegistryDefinitionId,\n credentialDefinition: credentialDefinitionRecord.credentialDefinition as unknown as JsonObject,\n revocationRegistryDefinition: revocationRegistryDefinition as unknown as JsonObject,\n revocationRegistryDefinitionPrivate: revocationRegistryDefinitionPrivateRecord.value as unknown as JsonObject,\n issuerId,\n })\n\n return revocationStatusList.toJson() as unknown as AnonCredsRevocationStatusList\n } finally {\n revocationStatusList?.handle.clear()\n }\n }\n\n public async updateRevocationStatusList(\n agentContext: AgentContext,\n options: UpdateRevocationStatusListOptions\n ): Promise<AnonCredsRevocationStatusList> {\n const { revocationStatusList, revocationRegistryDefinition, issued, revoked, timestamp, tailsFilePath } = options\n\n let updatedRevocationStatusList: RevocationStatusList | undefined\n let revocationRegistryDefinitionObj: RevocationRegistryDefinition | undefined\n\n try {\n updatedRevocationStatusList = RevocationStatusList.fromJson(revocationStatusList as unknown as JsonObject)\n\n if (timestamp && !issued && !revoked) {\n updatedRevocationStatusList.updateTimestamp({\n timestamp,\n })\n } else {\n const credentialDefinitionRecord = await agentContext.dependencyManager\n .resolve(AnonCredsCredentialDefinitionRepository)\n .getByCredentialDefinitionId(agentContext, revocationRegistryDefinition.credDefId)\n\n const revocationRegistryDefinitionPrivateRecord = await agentContext.dependencyManager\n .resolve(AnonCredsRevocationRegistryDefinitionPrivateRepository)\n .getByRevocationRegistryDefinitionId(agentContext, revocationStatusList.revRegDefId)\n\n revocationRegistryDefinitionObj = RevocationRegistryDefinition.fromJson({\n ...revocationRegistryDefinition,\n value: { ...revocationRegistryDefinition.value, tailsLocation: tailsFilePath },\n } as unknown as JsonObject)\n updatedRevocationStatusList.update({\n credentialDefinition: credentialDefinitionRecord.credentialDefinition as unknown as JsonObject,\n revocationRegistryDefinition: revocationRegistryDefinitionObj,\n revocationRegistryDefinitionPrivate: revocationRegistryDefinitionPrivateRecord.value,\n issued: options.issued,\n revoked: options.revoked,\n timestamp: timestamp ?? -1, // FIXME: this should be fixed in anoncreds-rs wrapper\n })\n }\n\n return updatedRevocationStatusList.toJson() as unknown as AnonCredsRevocationStatusList\n } finally {\n updatedRevocationStatusList?.handle.clear()\n revocationRegistryDefinitionObj?.handle.clear()\n }\n }\n\n public async createCredentialOffer(\n agentContext: AgentContext,\n options: CreateCredentialOfferOptions\n ): Promise<AnonCredsCredentialOffer> {\n const { credentialDefinitionId } = options\n\n let credentialOffer: CredentialOffer | undefined\n try {\n // The getByCredentialDefinitionId supports both qualified and unqualified identifiers, even though the\n // record is always stored using the qualified identifier.\n const credentialDefinitionRecord = await agentContext.dependencyManager\n .resolve(AnonCredsCredentialDefinitionRepository)\n .getByCredentialDefinitionId(agentContext, options.credentialDefinitionId)\n\n // We fetch the keyCorrectnessProof based on the credential definition record id, as the\n // credential definition id passed to this module could be unqualified, and the key correctness\n // proof is only stored using the qualified identifier.\n const keyCorrectnessProofRecord = await agentContext.dependencyManager\n .resolve(AnonCredsKeyCorrectnessProofRepository)\n .getByCredentialDefinitionId(agentContext, credentialDefinitionRecord.credentialDefinitionId)\n\n if (!credentialDefinitionRecord) {\n throw new AnonCredsRsError(`Credential Definition ${credentialDefinitionId} not found`)\n }\n\n let schemaId = credentialDefinitionRecord.credentialDefinition.schemaId\n\n // if the credentialDefinitionId is not qualified, we need to transform the schemaId to also be unqualified\n if (isUnqualifiedCredentialDefinitionId(options.credentialDefinitionId)) {\n const { namespaceIdentifier, schemaName, schemaVersion } = parseIndySchemaId(schemaId)\n schemaId = getUnqualifiedSchemaId(namespaceIdentifier, schemaName, schemaVersion)\n }\n\n credentialOffer = CredentialOffer.create({\n credentialDefinitionId,\n keyCorrectnessProof: keyCorrectnessProofRecord?.value,\n schemaId,\n })\n\n return credentialOffer.toJson() as unknown as AnonCredsCredentialOffer\n } finally {\n credentialOffer?.handle.clear()\n }\n }\n\n public async createCredential(\n agentContext: AgentContext,\n options: CreateCredentialOptions\n ): Promise<CreateCredentialReturn> {\n const {\n credentialOffer,\n credentialRequest,\n credentialValues,\n revocationRegistryDefinitionId,\n revocationStatusList,\n revocationRegistryIndex,\n } = options\n\n const definedRevocationOptions = [\n revocationRegistryDefinitionId,\n revocationStatusList,\n revocationRegistryIndex,\n ].filter((e) => e !== undefined)\n if (definedRevocationOptions.length > 0 && definedRevocationOptions.length < 3) {\n throw new CredoError(\n 'Revocation requires all of revocationRegistryDefinitionId, revocationRegistryIndex and revocationStatusList'\n )\n }\n\n let credential: Credential | undefined\n try {\n const attributeRawValues: Record<string, string> = {}\n const attributeEncodedValues: Record<string, string> = {}\n\n for (const key of Object.keys(credentialValues)) {\n attributeRawValues[key] = credentialValues[key].raw\n attributeEncodedValues[key] = credentialValues[key].encoded\n }\n\n const credentialDefinitionRecord = await agentContext.dependencyManager\n .resolve(AnonCredsCredentialDefinitionRepository)\n .getByCredentialDefinitionId(agentContext, options.credentialRequest.cred_def_id)\n\n // We fetch the private record based on the cred def id from the cred def record, as the\n // credential definition id passed to this module could be unqualified, and the private record\n // is only stored using the qualified identifier.\n const credentialDefinitionPrivateRecord = await agentContext.dependencyManager\n .resolve(AnonCredsCredentialDefinitionPrivateRepository)\n .getByCredentialDefinitionId(agentContext, credentialDefinitionRecord.credentialDefinitionId)\n\n let credentialDefinition = credentialDefinitionRecord.credentialDefinition\n\n if (isUnqualifiedCredentialDefinitionId(options.credentialRequest.cred_def_id)) {\n const { namespaceIdentifier, schemaName, schemaVersion } = parseIndySchemaId(credentialDefinition.schemaId)\n const { namespaceIdentifier: unqualifiedDid } = parseIndyDid(credentialDefinition.issuerId)\n credentialDefinition = {\n ...credentialDefinition,\n schemaId: getUnqualifiedSchemaId(namespaceIdentifier, schemaName, schemaVersion),\n issuerId: unqualifiedDid,\n }\n }\n\n let revocationConfiguration: CredentialRevocationConfig | undefined\n if (revocationRegistryDefinitionId && revocationStatusList && revocationRegistryIndex !== undefined) {\n const revocationRegistryDefinitionRecord = await agentContext.dependencyManager\n .resolve(AnonCredsRevocationRegistryDefinitionRepository)\n .getByRevocationRegistryDefinitionId(agentContext, revocationRegistryDefinitionId)\n\n const revocationRegistryDefinitionPrivateRecord = await agentContext.dependencyManager\n .resolve(AnonCredsRevocationRegistryDefinitionPrivateRepository)\n .getByRevocationRegistryDefinitionId(agentContext, revocationRegistryDefinitionId)\n\n if (\n revocationRegistryIndex >= revocationRegistryDefinitionRecord.revocationRegistryDefinition.value.maxCredNum\n ) {\n revocationRegistryDefinitionPrivateRecord.state = AnonCredsRevocationRegistryState.Full\n }\n\n revocationConfiguration = new CredentialRevocationConfig({\n registryDefinition: RevocationRegistryDefinition.fromJson(\n revocationRegistryDefinitionRecord.revocationRegistryDefinition as unknown as JsonObject\n ),\n registryDefinitionPrivate: RevocationRegistryDefinitionPrivate.fromJson(\n revocationRegistryDefinitionPrivateRecord.value\n ),\n statusList: RevocationStatusList.fromJson(revocationStatusList as unknown as JsonObject),\n registryIndex: revocationRegistryIndex,\n })\n }\n credential = Credential.create({\n credentialDefinition: credentialDefinitionRecord.credentialDefinition as unknown as JsonObject,\n credentialOffer: credentialOffer as unknown as JsonObject,\n credentialRequest: credentialRequest as unknown as JsonObject,\n revocationRegistryId: revocationRegistryDefinitionId,\n attributeEncodedValues,\n attributeRawValues,\n credentialDefinitionPrivate: credentialDefinitionPrivateRecord.value,\n revocationConfiguration,\n // FIXME: duplicated input parameter?\n revocationStatusList: revocationStatusList\n ? RevocationStatusList.fromJson(revocationStatusList as unknown as JsonObject)\n : undefined,\n })\n\n return {\n credential: credential.toJson() as unknown as AnonCredsCredential,\n credentialRevocationId: credential.revocationRegistryIndex?.toString(),\n }\n } finally {\n credential?.handle.clear()\n }\n }\n}\n"],"mappings":";;;;;;;;;;;;;;;AAmDO,qCAAMA,2BAA2D;CACtE,MAAa,aAAa,eAA6B,SAAwD;EAC7G,MAAM,EAAE,UAAU,MAAM,SAAS,WAAW,mBAAmB;EAE/D,IAAIC;AACJ,MAAI;AAQF,UAPe,OAAO,OAAO;IAC3B;IACA;IACA;IACA;IACD,CAAC,CAEY,QAAQ;YACd;AACR,WAAQ,OAAO,OAAO;;;CAI1B,MAAa,2BACX,eACA,SAC2C;EAC3C,MAAM,EAAE,KAAK,mBAAmB,QAAQ,UAAU,aAAa;EAE/D,IAAIC;AAOJ,MAAI;AACF,qBAAkB,qBAAqB,OAAO;IACpC;IACR;IACA;IACA;IACA;IACA,eAAe;IAChB,CAAC;AAEF,UAAO;IACL,sBAAsB,gBAAgB,qBAAqB,QAAQ;IACnE,6BAA6B,gBAAgB,4BAA4B,QAAQ;IACjF,qBAAqB,gBAAgB,oBAAoB,QAAQ;IAClE;YACO;AACR,oBAAiB,qBAAqB,OAAO,OAAO;AACpD,oBAAiB,4BAA4B,OAAO,OAAO;AAC3D,oBAAiB,oBAAoB,OAAO,OAAO;;;CAIvD,MAAa,mCACX,eACA,SACmD;EACnD,MAAM,EAAE,KAAK,UAAU,sBAAsB,wBAAwB,yBAAyB,uBAC5F;EAEF,IAAIC;AAMJ,MAAI;AACF,qBAAkB,6BAA6B,OAAO;IAC9B;IACtB;IACA;IACA;IACA,wBAAwB;IACxB;IACA;IACD,CAAC;AAEF,UAAO;IACL,8BACE,gBAAgB,6BAA6B,QAAQ;IACvD,qCAAqC,gBAAgB,oCAAoC,QAAQ;IAClG;YACO;AACR,oBAAiB,6BAA6B,OAAO,OAAO;AAC5D,oBAAiB,oCAAoC,OAAO,OAAO;;;CAIvE,MAAa,2BACX,cACA,SACwC;EACxC,MAAM,EAAE,UAAU,gCAAgC,iCAAiC;EAEnF,MAAM,6BAA6B,MAAM,aAAa,kBACnD,QAAQ,wCAAwC,CAChD,4BAA4B,cAAc,6BAA6B,UAAU;EAEpF,MAAM,4CAA4C,MAAM,aAAa,kBAClE,QAAQ,uDAAuD,CAC/D,oCAAoC,cAAc,+BAA+B;EAEpF,IAAIC;AACJ,MAAI;AACF,0BAAuB,qBAAqB,OAAO;IACjD,mBAAmB;IACnB;IACA,sBAAsB,2BAA2B;IACnB;IAC9B,qCAAqC,0CAA0C;IAC/E;IACD,CAAC;AAEF,UAAO,qBAAqB,QAAQ;YAC5B;AACR,yBAAsB,OAAO,OAAO;;;CAIxC,MAAa,2BACX,cACA,SACwC;EACxC,MAAM,EAAE,sBAAsB,8BAA8B,QAAQ,SAAS,WAAW,kBAAkB;EAE1G,IAAIC;EACJ,IAAIC;AAEJ,MAAI;AACF,iCAA8B,qBAAqB,SAAS,qBAA8C;AAE1G,OAAI,aAAa,CAAC,UAAU,CAAC,QAC3B,6BAA4B,gBAAgB,EAC1C,WACD,CAAC;QACG;IACL,MAAM,6BAA6B,MAAM,aAAa,kBACnD,QAAQ,wCAAwC,CAChD,4BAA4B,cAAc,6BAA6B,UAAU;IAEpF,MAAM,4CAA4C,MAAM,aAAa,kBAClE,QAAQ,uDAAuD,CAC/D,oCAAoC,cAAc,qBAAqB,YAAY;AAEtF,sCAAkC,6BAA6B,SAAS;KACtE,GAAG;KACH,OAAO;MAAE,GAAG,6BAA6B;MAAO,eAAe;MAAe;KAC/E,CAA0B;AAC3B,gCAA4B,OAAO;KACjC,sBAAsB,2BAA2B;KACjD,8BAA8B;KAC9B,qCAAqC,0CAA0C;KAC/E,QAAQ,QAAQ;KAChB,SAAS,QAAQ;KACjB,WAAW,aAAa;KACzB,CAAC;;AAGJ,UAAO,4BAA4B,QAAQ;YACnC;AACR,gCAA6B,OAAO,OAAO;AAC3C,oCAAiC,OAAO,OAAO;;;CAInD,MAAa,sBACX,cACA,SACmC;EACnC,MAAM,EAAE,2BAA2B;EAEnC,IAAIC;AACJ,MAAI;GAGF,MAAM,6BAA6B,MAAM,aAAa,kBACnD,QAAQ,wCAAwC,CAChD,4BAA4B,cAAc,QAAQ,uBAAuB;GAK5E,MAAM,4BAA4B,MAAM,aAAa,kBAClD,QAAQ,uCAAuC,CAC/C,4BAA4B,cAAc,2BAA2B,uBAAuB;AAE/F,OAAI,CAAC,2BACH,OAAM,IAAI,iBAAiB,yBAAyB,uBAAuB,YAAY;GAGzF,IAAI,WAAW,2BAA2B,qBAAqB;AAG/D,OAAI,oCAAoC,QAAQ,uBAAuB,EAAE;IACvE,MAAM,EAAE,qBAAqB,YAAY,kBAAkB,kBAAkB,SAAS;AACtF,eAAW,uBAAuB,qBAAqB,YAAY,cAAc;;AAGnF,qBAAkB,gBAAgB,OAAO;IACvC;IACA,qBAAqB,2BAA2B;IAChD;IACD,CAAC;AAEF,UAAO,gBAAgB,QAAQ;YACvB;AACR,oBAAiB,OAAO,OAAO;;;CAInC,MAAa,iBACX,cACA,SACiC;EACjC,MAAM,EACJ,iBACA,mBACA,kBACA,gCACA,sBACA,4BACE;EAEJ,MAAM,2BAA2B;GAC/B;GACA;GACA;GACD,CAAC,QAAQ,MAAM,MAAM,OAAU;AAChC,MAAI,yBAAyB,SAAS,KAAK,yBAAyB,SAAS,EAC3E,OAAM,IAAI,WACR,8GACD;EAGH,IAAIC;AACJ,MAAI;GACF,MAAMC,qBAA6C,EAAE;GACrD,MAAMC,yBAAiD,EAAE;AAEzD,QAAK,MAAM,OAAO,OAAO,KAAK,iBAAiB,EAAE;AAC/C,uBAAmB,OAAO,iBAAiB,KAAK;AAChD,2BAAuB,OAAO,iBAAiB,KAAK;;GAGtD,MAAM,6BAA6B,MAAM,aAAa,kBACnD,QAAQ,wCAAwC,CAChD,4BAA4B,cAAc,QAAQ,kBAAkB,YAAY;GAKnF,MAAM,oCAAoC,MAAM,aAAa,kBAC1D,QAAQ,+CAA+C,CACvD,4BAA4B,cAAc,2BAA2B,uBAAuB;GAE/F,IAAI,uBAAuB,2BAA2B;AAEtD,OAAI,oCAAoC,QAAQ,kBAAkB,YAAY,EAAE;IAC9E,MAAM,EAAE,qBAAqB,YAAY,kBAAkB,kBAAkB,qBAAqB,SAAS;IAC3G,MAAM,EAAE,qBAAqB,mBAAmB,aAAa,qBAAqB,SAAS;AAC3F,2BAAuB;KACrB,GAAG;KACH,UAAU,uBAAuB,qBAAqB,YAAY,cAAc;KAChF,UAAU;KACX;;GAGH,IAAIC;AACJ,OAAI,kCAAkC,wBAAwB,4BAA4B,QAAW;IACnG,MAAM,qCAAqC,MAAM,aAAa,kBAC3D,QAAQ,gDAAgD,CACxD,oCAAoC,cAAc,+BAA+B;IAEpF,MAAM,4CAA4C,MAAM,aAAa,kBAClE,QAAQ,uDAAuD,CAC/D,oCAAoC,cAAc,+BAA+B;AAEpF,QACE,2BAA2B,mCAAmC,6BAA6B,MAAM,WAEjG,2CAA0C,QAAQ,iCAAiC;AAGrF,8BAA0B,IAAI,2BAA2B;KACvD,oBAAoB,6BAA6B,SAC/C,mCAAmC,6BACpC;KACD,2BAA2B,oCAAoC,SAC7D,0CAA0C,MAC3C;KACD,YAAY,qBAAqB,SAAS,qBAA8C;KACxF,eAAe;KAChB,CAAC;;AAEJ,gBAAa,WAAW,OAAO;IAC7B,sBAAsB,2BAA2B;IAChC;IACE;IACnB,sBAAsB;IACtB;IACA;IACA,6BAA6B,kCAAkC;IAC/D;IAEA,sBAAsB,uBAClB,qBAAqB,SAAS,qBAA8C,GAC5E;IACL,CAAC;AAEF,UAAO;IACL,YAAY,WAAW,QAAQ;IAC/B,wBAAwB,WAAW,yBAAyB,UAAU;IACvE;YACO;AACR,eAAY,OAAO,OAAO;;;;uCA5T/B,YAAY"}
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import { __decorate } from "../_virtual/_@oxc-project_runtime@0.99.0/helpers/decorate.mjs";
|
|
2
|
+
import { fetchRevocationStatusList } from "../utils/anonCredsObjects.mjs";
|
|
3
|
+
import "../utils/index.mjs";
|
|
4
|
+
import { getRevocationMetadata } from "./utils.mjs";
|
|
5
|
+
import { JsonTransformer, injectable } from "@credo-ts/core";
|
|
6
|
+
import { Presentation, W3cCredential as W3cCredential$1, W3cPresentation } from "@hyperledger/anoncreds-shared";
|
|
7
|
+
|
|
8
|
+
//#region src/anoncreds-rs/AnonCredsRsVerifierService.ts
|
|
9
|
+
let AnonCredsRsVerifierService = class AnonCredsRsVerifierService$1 {
|
|
10
|
+
constructor() {
|
|
11
|
+
this.getRevocationMetadataForCredentials = async (agentContext, credentialsWithMetadata) => {
|
|
12
|
+
const revocationMetadataFetchPromises = credentialsWithMetadata.filter((cwm) => cwm.nonRevoked).map(async (credentialWithMetadata) => {
|
|
13
|
+
const w3cJsonLdVerifiableCredential = JsonTransformer.toJSON(credentialWithMetadata.credential);
|
|
14
|
+
const { revocationRegistryIndex, revocationRegistryId, timestamp } = W3cCredential$1.fromJson(w3cJsonLdVerifiableCredential);
|
|
15
|
+
return await getRevocationMetadata(agentContext, {
|
|
16
|
+
nonRevokedInterval: credentialWithMetadata.nonRevoked,
|
|
17
|
+
timestamp,
|
|
18
|
+
revocationRegistryId,
|
|
19
|
+
revocationRegistryIndex
|
|
20
|
+
});
|
|
21
|
+
});
|
|
22
|
+
return await Promise.all(revocationMetadataFetchPromises);
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
async verifyProof(agentContext, options) {
|
|
26
|
+
const { credentialDefinitions, proof, proofRequest, revocationRegistries, schemas } = options;
|
|
27
|
+
let presentation;
|
|
28
|
+
try {
|
|
29
|
+
const { verified, nonRevokedIntervalOverrides } = await this.verifyTimestamps(agentContext, proof, proofRequest);
|
|
30
|
+
if (!verified) {
|
|
31
|
+
agentContext.config.logger.debug("Invalid timestamps for provided identifiers");
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
presentation = Presentation.fromJson(proof);
|
|
35
|
+
const rsCredentialDefinitions = {};
|
|
36
|
+
for (const credDefId in credentialDefinitions) rsCredentialDefinitions[credDefId] = credentialDefinitions[credDefId];
|
|
37
|
+
const rsSchemas = {};
|
|
38
|
+
for (const schemaId in schemas) rsSchemas[schemaId] = schemas[schemaId];
|
|
39
|
+
const revocationRegistryDefinitions = {};
|
|
40
|
+
const lists = [];
|
|
41
|
+
for (const revocationRegistryDefinitionId in revocationRegistries) {
|
|
42
|
+
const { definition, revocationStatusLists } = options.revocationRegistries[revocationRegistryDefinitionId];
|
|
43
|
+
revocationRegistryDefinitions[revocationRegistryDefinitionId] = definition;
|
|
44
|
+
lists.push(...Object.values(revocationStatusLists));
|
|
45
|
+
}
|
|
46
|
+
return presentation.verify({
|
|
47
|
+
presentationRequest: proofRequest,
|
|
48
|
+
credentialDefinitions: rsCredentialDefinitions,
|
|
49
|
+
schemas: rsSchemas,
|
|
50
|
+
revocationRegistryDefinitions,
|
|
51
|
+
revocationStatusLists: lists,
|
|
52
|
+
nonRevokedIntervalOverrides
|
|
53
|
+
});
|
|
54
|
+
} finally {
|
|
55
|
+
presentation?.handle.clear();
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
async verifyTimestamps(agentContext, proof, proofRequest) {
|
|
59
|
+
const nonRevokedIntervalOverrides = [];
|
|
60
|
+
const globalNonRevokedInterval = proofRequest.non_revoked;
|
|
61
|
+
const requestedNonRevokedRestrictions = [];
|
|
62
|
+
for (const value of [...Object.values(proofRequest.requested_attributes), ...Object.values(proofRequest.requested_predicates)]) {
|
|
63
|
+
const nonRevokedInterval = value.non_revoked ?? globalNonRevokedInterval;
|
|
64
|
+
if (nonRevokedInterval) for (const restriction of value.restrictions ?? []) requestedNonRevokedRestrictions.push({
|
|
65
|
+
nonRevokedInterval,
|
|
66
|
+
schemaId: restriction.schema_id,
|
|
67
|
+
credentialDefinitionId: restriction.cred_def_id,
|
|
68
|
+
revocationRegistryDefinitionId: restriction.rev_reg_id
|
|
69
|
+
});
|
|
70
|
+
}
|
|
71
|
+
for (const identifier of proof.identifiers) {
|
|
72
|
+
if (!identifier.timestamp || !identifier.rev_reg_id) continue;
|
|
73
|
+
const requestedFrom = requestedNonRevokedRestrictions.find((item) => item.revocationRegistryDefinitionId === identifier.rev_reg_id || item.credentialDefinitionId === identifier.cred_def_id || item.schemaId === identifier.schema_id)?.nonRevokedInterval.from;
|
|
74
|
+
if (requestedFrom && requestedFrom > identifier.timestamp) {
|
|
75
|
+
const { revocationStatusList } = await fetchRevocationStatusList(agentContext, identifier.rev_reg_id, requestedFrom);
|
|
76
|
+
const vdrTimestamp = revocationStatusList?.timestamp;
|
|
77
|
+
if (vdrTimestamp && vdrTimestamp === identifier.timestamp) nonRevokedIntervalOverrides.push({
|
|
78
|
+
overrideRevocationStatusListTimestamp: identifier.timestamp,
|
|
79
|
+
requestedFromTimestamp: requestedFrom,
|
|
80
|
+
revocationRegistryDefinitionId: identifier.rev_reg_id
|
|
81
|
+
});
|
|
82
|
+
else {
|
|
83
|
+
agentContext.config.logger.debug(`VDR timestamp for ${requestedFrom} does not correspond to the one provided in proof identifiers. Expected: ${identifier.timestamp} and received ${vdrTimestamp}`);
|
|
84
|
+
return { verified: false };
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
verified: true,
|
|
90
|
+
nonRevokedIntervalOverrides: nonRevokedIntervalOverrides.length ? nonRevokedIntervalOverrides : void 0
|
|
91
|
+
};
|
|
92
|
+
}
|
|
93
|
+
async verifyW3cPresentation(agentContext, options) {
|
|
94
|
+
const revocationMetadata = await this.getRevocationMetadataForCredentials(agentContext, options.credentialsWithRevocationMetadata);
|
|
95
|
+
const revocationRegistryDefinitions = {};
|
|
96
|
+
for (const rm of revocationMetadata) revocationRegistryDefinitions[rm.revocationRegistryId] = rm.revocationRegistryDefinition;
|
|
97
|
+
const verificationOptions = {
|
|
98
|
+
presentationRequest: options.proofRequest,
|
|
99
|
+
schemas: options.schemas,
|
|
100
|
+
credentialDefinitions: options.credentialDefinitions,
|
|
101
|
+
revocationRegistryDefinitions,
|
|
102
|
+
revocationStatusLists: revocationMetadata.map((rm) => rm.revocationStatusList),
|
|
103
|
+
nonRevokedIntervalOverrides: revocationMetadata.filter((rm) => rm.nonRevokedIntervalOverride).map((rm) => rm.nonRevokedIntervalOverride)
|
|
104
|
+
};
|
|
105
|
+
let result = false;
|
|
106
|
+
const presentationJson = JsonTransformer.toJSON(options.presentation);
|
|
107
|
+
if ("presentation_submission" in presentationJson) presentationJson.presentation_submission = void 0;
|
|
108
|
+
let w3cPresentation;
|
|
109
|
+
try {
|
|
110
|
+
w3cPresentation = W3cPresentation.fromJson(presentationJson);
|
|
111
|
+
result = w3cPresentation.verify(verificationOptions);
|
|
112
|
+
} finally {
|
|
113
|
+
w3cPresentation?.handle.clear();
|
|
114
|
+
}
|
|
115
|
+
return result;
|
|
116
|
+
}
|
|
117
|
+
};
|
|
118
|
+
AnonCredsRsVerifierService = __decorate([injectable()], AnonCredsRsVerifierService);
|
|
119
|
+
|
|
120
|
+
//#endregion
|
|
121
|
+
export { AnonCredsRsVerifierService };
|
|
122
|
+
//# sourceMappingURL=AnonCredsRsVerifierService.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AnonCredsRsVerifierService.mjs","names":["AnonCredsRsVerifierService","AnonCredsW3cCredential","presentation: Presentation | undefined","rsCredentialDefinitions: Record<string, JsonObject>","rsSchemas: Record<string, JsonObject>","revocationRegistryDefinitions: Record<string, JsonObject>","lists: JsonObject[]","nonRevokedIntervalOverrides: NonRevokedIntervalOverride[]","requestedNonRevokedRestrictions: {\n nonRevokedInterval: AnonCredsNonRevokedInterval\n schemaId?: string\n credentialDefinitionId?: string\n revocationRegistryDefinitionId?: string\n }[]","revocationRegistryDefinitions: Record<string, RevocationRegistryDefinition>","verificationOptions: VerifyAnonCredsW3cPresentationOptions","w3cPresentation: W3cPresentation | undefined"],"sources":["../../src/anoncreds-rs/AnonCredsRsVerifierService.ts"],"sourcesContent":["import type { AgentContext } from '@credo-ts/core'\nimport { injectable, JsonTransformer } from '@credo-ts/core'\nimport type {\n JsonObject,\n NonRevokedIntervalOverride,\n RevocationRegistryDefinition,\n VerifyW3cPresentationOptions as VerifyAnonCredsW3cPresentationOptions,\n} from '@hyperledger/anoncreds-shared'\nimport { W3cCredential as AnonCredsW3cCredential, Presentation, W3cPresentation } from '@hyperledger/anoncreds-shared'\nimport type { AnonCredsNonRevokedInterval, AnonCredsProof, AnonCredsProofRequest } from '../models'\nimport type { CredentialWithRevocationMetadata } from '../models/utils'\nimport type { AnonCredsVerifierService, VerifyProofOptions, VerifyW3cPresentationOptions } from '../services'\n\nimport { fetchRevocationStatusList } from '../utils'\n\nimport { getRevocationMetadata } from './utils'\n\n@injectable()\nexport class AnonCredsRsVerifierService implements AnonCredsVerifierService {\n public async verifyProof(agentContext: AgentContext, options: VerifyProofOptions): Promise<boolean> {\n const { credentialDefinitions, proof, proofRequest, revocationRegistries, schemas } = options\n\n let presentation: Presentation | undefined\n try {\n // Check that provided timestamps correspond to the active ones from the VDR. If they are and differ from the originally\n // requested ones, create overrides for anoncreds-rs to consider them valid\n const { verified, nonRevokedIntervalOverrides } = await this.verifyTimestamps(agentContext, proof, proofRequest)\n\n // No need to call anoncreds-rs as we already know that the proof will not be valid\n if (!verified) {\n agentContext.config.logger.debug('Invalid timestamps for provided identifiers')\n return false\n }\n\n presentation = Presentation.fromJson(proof as unknown as JsonObject)\n\n const rsCredentialDefinitions: Record<string, JsonObject> = {}\n for (const credDefId in credentialDefinitions) {\n rsCredentialDefinitions[credDefId] = credentialDefinitions[credDefId] as unknown as JsonObject\n }\n\n const rsSchemas: Record<string, JsonObject> = {}\n for (const schemaId in schemas) {\n rsSchemas[schemaId] = schemas[schemaId] as unknown as JsonObject\n }\n\n const revocationRegistryDefinitions: Record<string, JsonObject> = {}\n const lists: JsonObject[] = []\n\n for (const revocationRegistryDefinitionId in revocationRegistries) {\n const { definition, revocationStatusLists } = options.revocationRegistries[revocationRegistryDefinitionId]\n\n revocationRegistryDefinitions[revocationRegistryDefinitionId] = definition as unknown as JsonObject\n\n lists.push(...(Object.values(revocationStatusLists) as unknown as Array<JsonObject>))\n }\n\n return presentation.verify({\n presentationRequest: proofRequest as unknown as JsonObject,\n credentialDefinitions: rsCredentialDefinitions,\n schemas: rsSchemas,\n revocationRegistryDefinitions,\n revocationStatusLists: lists,\n nonRevokedIntervalOverrides,\n })\n } finally {\n presentation?.handle.clear()\n }\n }\n\n private async verifyTimestamps(\n agentContext: AgentContext,\n proof: AnonCredsProof,\n proofRequest: AnonCredsProofRequest\n ): Promise<{ verified: boolean; nonRevokedIntervalOverrides?: NonRevokedIntervalOverride[] }> {\n const nonRevokedIntervalOverrides: NonRevokedIntervalOverride[] = []\n\n // Override expected timestamps if the requested ones don't exacly match the values from VDR\n const globalNonRevokedInterval = proofRequest.non_revoked\n\n const requestedNonRevokedRestrictions: {\n nonRevokedInterval: AnonCredsNonRevokedInterval\n schemaId?: string\n credentialDefinitionId?: string\n revocationRegistryDefinitionId?: string\n }[] = []\n\n for (const value of [\n ...Object.values(proofRequest.requested_attributes),\n ...Object.values(proofRequest.requested_predicates),\n ]) {\n const nonRevokedInterval = value.non_revoked ?? globalNonRevokedInterval\n if (nonRevokedInterval) {\n for (const restriction of value.restrictions ?? []) {\n requestedNonRevokedRestrictions.push({\n nonRevokedInterval,\n schemaId: restriction.schema_id,\n credentialDefinitionId: restriction.cred_def_id,\n revocationRegistryDefinitionId: restriction.rev_reg_id,\n })\n }\n }\n }\n\n for (const identifier of proof.identifiers) {\n if (!identifier.timestamp || !identifier.rev_reg_id) {\n continue\n }\n const relatedNonRevokedRestrictionItem = requestedNonRevokedRestrictions.find(\n (item) =>\n item.revocationRegistryDefinitionId === identifier.rev_reg_id ||\n item.credentialDefinitionId === identifier.cred_def_id ||\n item.schemaId === identifier.schema_id\n )\n\n const requestedFrom = relatedNonRevokedRestrictionItem?.nonRevokedInterval.from\n if (requestedFrom && requestedFrom > identifier.timestamp) {\n // Check VDR if the active revocation status list at requestedFrom was the one from provided timestamp.\n // If it matches, add to the override list\n const { revocationStatusList } = await fetchRevocationStatusList(\n agentContext,\n identifier.rev_reg_id,\n requestedFrom\n )\n\n const vdrTimestamp = revocationStatusList?.timestamp\n if (vdrTimestamp && vdrTimestamp === identifier.timestamp) {\n nonRevokedIntervalOverrides.push({\n overrideRevocationStatusListTimestamp: identifier.timestamp,\n requestedFromTimestamp: requestedFrom,\n revocationRegistryDefinitionId: identifier.rev_reg_id,\n })\n } else {\n agentContext.config.logger.debug(\n `VDR timestamp for ${requestedFrom} does not correspond to the one provided in proof identifiers. Expected: ${identifier.timestamp} and received ${vdrTimestamp}`\n )\n return { verified: false }\n }\n }\n }\n\n return {\n verified: true,\n nonRevokedIntervalOverrides: nonRevokedIntervalOverrides.length ? nonRevokedIntervalOverrides : undefined,\n }\n }\n\n private getRevocationMetadataForCredentials = async (\n agentContext: AgentContext,\n credentialsWithMetadata: CredentialWithRevocationMetadata[]\n ) => {\n const revocationMetadataFetchPromises = credentialsWithMetadata\n .filter((cwm) => cwm.nonRevoked)\n .map(async (credentialWithMetadata) => {\n const w3cJsonLdVerifiableCredential = JsonTransformer.toJSON(credentialWithMetadata.credential)\n const { revocationRegistryIndex, revocationRegistryId, timestamp } =\n AnonCredsW3cCredential.fromJson(w3cJsonLdVerifiableCredential)\n\n return await getRevocationMetadata(agentContext, {\n nonRevokedInterval: credentialWithMetadata.nonRevoked as AnonCredsNonRevokedInterval,\n timestamp: timestamp,\n revocationRegistryId,\n revocationRegistryIndex,\n })\n })\n\n return await Promise.all(revocationMetadataFetchPromises)\n }\n\n public async verifyW3cPresentation(agentContext: AgentContext, options: VerifyW3cPresentationOptions) {\n const revocationMetadata = await this.getRevocationMetadataForCredentials(\n agentContext,\n options.credentialsWithRevocationMetadata\n )\n\n const revocationRegistryDefinitions: Record<string, RevocationRegistryDefinition> = {}\n for (const rm of revocationMetadata) {\n revocationRegistryDefinitions[rm.revocationRegistryId] = rm.revocationRegistryDefinition\n }\n\n const verificationOptions: VerifyAnonCredsW3cPresentationOptions = {\n presentationRequest: options.proofRequest as unknown as JsonObject,\n schemas: options.schemas as unknown as Record<string, JsonObject>,\n credentialDefinitions: options.credentialDefinitions as unknown as Record<string, JsonObject>,\n revocationRegistryDefinitions,\n revocationStatusLists: revocationMetadata.map((rm) => rm.revocationStatusList),\n nonRevokedIntervalOverrides: revocationMetadata\n .filter((rm) => rm.nonRevokedIntervalOverride)\n .map((rm) => rm.nonRevokedIntervalOverride as NonRevokedIntervalOverride),\n }\n\n let result = false\n const presentationJson = JsonTransformer.toJSON(options.presentation)\n if ('presentation_submission' in presentationJson) presentationJson.presentation_submission = undefined\n\n let w3cPresentation: W3cPresentation | undefined\n try {\n w3cPresentation = W3cPresentation.fromJson(presentationJson)\n result = w3cPresentation.verify(verificationOptions)\n } finally {\n w3cPresentation?.handle.clear()\n }\n return result\n }\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
import { AnonCredsModuleConfig } from "../AnonCredsModuleConfig.mjs";
|
|
2
|
+
import { fetchRevocationRegistryDefinition, fetchRevocationStatusList } from "../utils/anonCredsObjects.mjs";
|
|
3
|
+
import { assertBestPracticeRevocationInterval } from "../utils/revocationInterval.mjs";
|
|
4
|
+
import "../utils/index.mjs";
|
|
5
|
+
import { CredoError, JsonTransformer } from "@credo-ts/core";
|
|
6
|
+
import { CredentialRevocationState, RevocationRegistryDefinition, RevocationStatusList, W3cCredential as W3cCredential$1 } from "@hyperledger/anoncreds-shared";
|
|
7
|
+
|
|
8
|
+
//#region src/anoncreds-rs/utils.ts
|
|
9
|
+
async function getRevocationMetadata(agentContext, credentialRevocationMetadata, mustHaveTimeStamp = false) {
|
|
10
|
+
let nonRevokedIntervalOverride;
|
|
11
|
+
const { revocationRegistryId, revocationRegistryIndex, nonRevokedInterval, timestamp } = credentialRevocationMetadata;
|
|
12
|
+
if (!revocationRegistryId || !nonRevokedInterval || mustHaveTimeStamp && !timestamp) throw new CredoError("Invalid revocation metadata");
|
|
13
|
+
assertBestPracticeRevocationInterval(nonRevokedInterval);
|
|
14
|
+
const { revocationRegistryDefinition: anonCredsRevocationRegistryDefinition } = await fetchRevocationRegistryDefinition(agentContext, revocationRegistryId);
|
|
15
|
+
const { tailsFilePath } = await agentContext.dependencyManager.resolve(AnonCredsModuleConfig).tailsFileService.getTailsFile(agentContext, { revocationRegistryDefinition: anonCredsRevocationRegistryDefinition });
|
|
16
|
+
const timestampToFetch = timestamp ?? nonRevokedInterval.to;
|
|
17
|
+
if (!timestampToFetch) throw new CredoError("Timestamp to fetch is required");
|
|
18
|
+
const { revocationStatusList: _revocationStatusList } = await fetchRevocationStatusList(agentContext, revocationRegistryId, timestampToFetch);
|
|
19
|
+
const updatedTimestamp = timestamp ?? _revocationStatusList.timestamp;
|
|
20
|
+
const revocationRegistryDefinition = RevocationRegistryDefinition.fromJson(anonCredsRevocationRegistryDefinition);
|
|
21
|
+
const revocationStatusList = RevocationStatusList.fromJson(_revocationStatusList);
|
|
22
|
+
const revocationState = revocationRegistryIndex ? CredentialRevocationState.create({
|
|
23
|
+
revocationRegistryIndex: Number(revocationRegistryIndex),
|
|
24
|
+
revocationRegistryDefinition,
|
|
25
|
+
tailsPath: tailsFilePath,
|
|
26
|
+
revocationStatusList
|
|
27
|
+
}) : void 0;
|
|
28
|
+
const requestedFrom = nonRevokedInterval.from;
|
|
29
|
+
if (requestedFrom && requestedFrom > timestampToFetch) {
|
|
30
|
+
const { revocationStatusList: overrideRevocationStatusList } = await fetchRevocationStatusList(agentContext, revocationRegistryId, requestedFrom);
|
|
31
|
+
const vdrTimestamp = overrideRevocationStatusList?.timestamp;
|
|
32
|
+
if (vdrTimestamp && vdrTimestamp === timestampToFetch) nonRevokedIntervalOverride = {
|
|
33
|
+
overrideRevocationStatusListTimestamp: timestampToFetch,
|
|
34
|
+
requestedFromTimestamp: requestedFrom,
|
|
35
|
+
revocationRegistryDefinitionId: revocationRegistryId
|
|
36
|
+
};
|
|
37
|
+
else throw new CredoError(`VDR timestamp for ${requestedFrom} does not correspond to the one provided in proof identifiers. Expected: ${updatedTimestamp} and received ${vdrTimestamp}`);
|
|
38
|
+
}
|
|
39
|
+
return {
|
|
40
|
+
updatedTimestamp,
|
|
41
|
+
revocationRegistryId,
|
|
42
|
+
revocationRegistryDefinition,
|
|
43
|
+
revocationStatusList,
|
|
44
|
+
nonRevokedIntervalOverride,
|
|
45
|
+
revocationState
|
|
46
|
+
};
|
|
47
|
+
}
|
|
48
|
+
const getW3cAnonCredsCredentialMetadata = (w3cJsonLdVerifiableCredential) => {
|
|
49
|
+
const w3cJsonLdVerifiableCredentialJson = JsonTransformer.toJSON(w3cJsonLdVerifiableCredential);
|
|
50
|
+
const { schemaId, credentialDefinitionId, revocationRegistryId } = W3cCredential$1.fromJson(w3cJsonLdVerifiableCredentialJson);
|
|
51
|
+
return {
|
|
52
|
+
schemaId,
|
|
53
|
+
credentialDefinitionId,
|
|
54
|
+
revocationRegistryId
|
|
55
|
+
};
|
|
56
|
+
};
|
|
57
|
+
|
|
58
|
+
//#endregion
|
|
59
|
+
export { getRevocationMetadata, getW3cAnonCredsCredentialMetadata };
|
|
60
|
+
//# sourceMappingURL=utils.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.mjs","names":["nonRevokedIntervalOverride: NonRevokedIntervalOverride | undefined","AnonCredsW3cCredential"],"sources":["../../src/anoncreds-rs/utils.ts"],"sourcesContent":["import type { AgentContext, JsonObject, W3cJsonLdVerifiableCredential } from '@credo-ts/core'\nimport { CredoError, JsonTransformer } from '@credo-ts/core'\nimport type { NonRevokedIntervalOverride } from '@hyperledger/anoncreds-shared'\nimport {\n W3cCredential as AnonCredsW3cCredential,\n CredentialRevocationState,\n RevocationRegistryDefinition,\n RevocationStatusList,\n} from '@hyperledger/anoncreds-shared'\nimport { AnonCredsModuleConfig } from '../AnonCredsModuleConfig'\nimport type { AnonCredsNonRevokedInterval } from '../models'\nimport {\n assertBestPracticeRevocationInterval,\n fetchRevocationRegistryDefinition,\n fetchRevocationStatusList,\n} from '../utils'\n\nexport interface CredentialRevocationMetadata {\n timestamp?: number\n revocationRegistryId: string\n revocationRegistryIndex?: number\n nonRevokedInterval: AnonCredsNonRevokedInterval\n}\n\nexport async function getRevocationMetadata(\n agentContext: AgentContext,\n credentialRevocationMetadata: CredentialRevocationMetadata,\n mustHaveTimeStamp = false\n) {\n let nonRevokedIntervalOverride: NonRevokedIntervalOverride | undefined\n\n const { revocationRegistryId, revocationRegistryIndex, nonRevokedInterval, timestamp } = credentialRevocationMetadata\n if (!revocationRegistryId || !nonRevokedInterval || (mustHaveTimeStamp && !timestamp)) {\n throw new CredoError('Invalid revocation metadata')\n }\n\n // Make sure the revocation interval follows best practices from Aries RFC 0441\n assertBestPracticeRevocationInterval(nonRevokedInterval)\n\n const { revocationRegistryDefinition: anonCredsRevocationRegistryDefinition } =\n await fetchRevocationRegistryDefinition(agentContext, revocationRegistryId)\n\n const tailsFileService = agentContext.dependencyManager.resolve(AnonCredsModuleConfig).tailsFileService\n const { tailsFilePath } = await tailsFileService.getTailsFile(agentContext, {\n revocationRegistryDefinition: anonCredsRevocationRegistryDefinition,\n })\n\n const timestampToFetch = timestamp ?? nonRevokedInterval.to\n if (!timestampToFetch) throw new CredoError('Timestamp to fetch is required')\n\n const { revocationStatusList: _revocationStatusList } = await fetchRevocationStatusList(\n agentContext,\n revocationRegistryId,\n timestampToFetch\n )\n const updatedTimestamp = timestamp ?? _revocationStatusList.timestamp\n\n const revocationRegistryDefinition = RevocationRegistryDefinition.fromJson(\n anonCredsRevocationRegistryDefinition as unknown as JsonObject\n )\n\n const revocationStatusList = RevocationStatusList.fromJson(_revocationStatusList as unknown as JsonObject)\n const revocationState = revocationRegistryIndex\n ? CredentialRevocationState.create({\n revocationRegistryIndex: Number(revocationRegistryIndex),\n revocationRegistryDefinition: revocationRegistryDefinition,\n tailsPath: tailsFilePath,\n revocationStatusList,\n })\n : undefined\n\n const requestedFrom = nonRevokedInterval.from\n if (requestedFrom && requestedFrom > timestampToFetch) {\n const { revocationStatusList: overrideRevocationStatusList } = await fetchRevocationStatusList(\n agentContext,\n revocationRegistryId,\n requestedFrom\n )\n\n const vdrTimestamp = overrideRevocationStatusList?.timestamp\n if (vdrTimestamp && vdrTimestamp === timestampToFetch) {\n nonRevokedIntervalOverride = {\n overrideRevocationStatusListTimestamp: timestampToFetch,\n requestedFromTimestamp: requestedFrom,\n revocationRegistryDefinitionId: revocationRegistryId,\n }\n } else {\n throw new CredoError(\n `VDR timestamp for ${requestedFrom} does not correspond to the one provided in proof identifiers. Expected: ${updatedTimestamp} and received ${vdrTimestamp}`\n )\n }\n }\n\n return {\n updatedTimestamp,\n revocationRegistryId,\n revocationRegistryDefinition,\n revocationStatusList,\n nonRevokedIntervalOverride,\n revocationState,\n }\n}\n\nexport const getW3cAnonCredsCredentialMetadata = (w3cJsonLdVerifiableCredential: W3cJsonLdVerifiableCredential) => {\n const w3cJsonLdVerifiableCredentialJson = JsonTransformer.toJSON(w3cJsonLdVerifiableCredential)\n\n const { schemaId, credentialDefinitionId, revocationRegistryId } = AnonCredsW3cCredential.fromJson(\n w3cJsonLdVerifiableCredentialJson\n )\n\n return {\n schemaId,\n credentialDefinitionId,\n revocationRegistryId,\n }\n}\n"],"mappings":";;;;;;;;AAwBA,eAAsB,sBACpB,cACA,8BACA,oBAAoB,OACpB;CACA,IAAIA;CAEJ,MAAM,EAAE,sBAAsB,yBAAyB,oBAAoB,cAAc;AACzF,KAAI,CAAC,wBAAwB,CAAC,sBAAuB,qBAAqB,CAAC,UACzE,OAAM,IAAI,WAAW,8BAA8B;AAIrD,sCAAqC,mBAAmB;CAExD,MAAM,EAAE,8BAA8B,0CACpC,MAAM,kCAAkC,cAAc,qBAAqB;CAG7E,MAAM,EAAE,kBAAkB,MADD,aAAa,kBAAkB,QAAQ,sBAAsB,CAAC,iBACtC,aAAa,cAAc,EAC1E,8BAA8B,uCAC/B,CAAC;CAEF,MAAM,mBAAmB,aAAa,mBAAmB;AACzD,KAAI,CAAC,iBAAkB,OAAM,IAAI,WAAW,iCAAiC;CAE7E,MAAM,EAAE,sBAAsB,0BAA0B,MAAM,0BAC5D,cACA,sBACA,iBACD;CACD,MAAM,mBAAmB,aAAa,sBAAsB;CAE5D,MAAM,+BAA+B,6BAA6B,SAChE,sCACD;CAED,MAAM,uBAAuB,qBAAqB,SAAS,sBAA+C;CAC1G,MAAM,kBAAkB,0BACpB,0BAA0B,OAAO;EAC/B,yBAAyB,OAAO,wBAAwB;EAC1B;EAC9B,WAAW;EACX;EACD,CAAC,GACF;CAEJ,MAAM,gBAAgB,mBAAmB;AACzC,KAAI,iBAAiB,gBAAgB,kBAAkB;EACrD,MAAM,EAAE,sBAAsB,iCAAiC,MAAM,0BACnE,cACA,sBACA,cACD;EAED,MAAM,eAAe,8BAA8B;AACnD,MAAI,gBAAgB,iBAAiB,iBACnC,8BAA6B;GAC3B,uCAAuC;GACvC,wBAAwB;GACxB,gCAAgC;GACjC;MAED,OAAM,IAAI,WACR,qBAAqB,cAAc,2EAA2E,iBAAiB,gBAAgB,eAChJ;;AAIL,QAAO;EACL;EACA;EACA;EACA;EACA;EACA;EACD;;AAGH,MAAa,qCAAqC,kCAAiE;CACjH,MAAM,oCAAoC,gBAAgB,OAAO,8BAA8B;CAE/F,MAAM,EAAE,UAAU,wBAAwB,yBAAyBC,gBAAuB,SACxF,kCACD;AAED,QAAO;EACL;EACA;EACA;EACD"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { CredoError } from "@credo-ts/core";
|
|
2
|
+
|
|
3
|
+
//#region src/error/AnonCredsError.d.ts
|
|
4
|
+
declare class AnonCredsError extends CredoError {
|
|
5
|
+
constructor(message: string, {
|
|
6
|
+
cause
|
|
7
|
+
}?: {
|
|
8
|
+
cause?: Error;
|
|
9
|
+
});
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { AnonCredsError };
|
|
13
|
+
//# sourceMappingURL=AnonCredsError.d.mts.map
|