@credo-ts/openid4vc 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/OpenId4VcApi.d.mts +24 -0
- package/build/OpenId4VcApi.d.mts.map +1 -0
- package/build/OpenId4VcApi.mjs +35 -0
- package/build/OpenId4VcApi.mjs.map +1 -0
- package/build/OpenId4VcModule.d.mts +30 -0
- package/build/OpenId4VcModule.d.mts.map +1 -0
- package/build/OpenId4VcModule.mjs +42 -0
- package/build/OpenId4VcModule.mjs.map +1 -0
- package/build/OpenId4VcModuleConfig.d.mts +44 -0
- package/build/OpenId4VcModuleConfig.d.mts.map +1 -0
- package/build/OpenId4VcModuleConfig.mjs +24 -0
- package/build/OpenId4VcModuleConfig.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/index.d.mts +42 -0
- package/build/index.mjs +37 -0
- package/build/openid4vc-holder/OpenId4VcHolderApi.d.mts +238 -0
- package/build/openid4vc-holder/OpenId4VcHolderApi.d.mts.map +1 -0
- package/build/openid4vc-holder/OpenId4VcHolderApi.mjs +174 -0
- package/build/openid4vc-holder/OpenId4VcHolderApi.mjs.map +1 -0
- package/build/openid4vc-holder/OpenId4VcHolderModule.d.mts +17 -0
- package/build/openid4vc-holder/OpenId4VcHolderModule.d.mts.map +1 -0
- package/build/openid4vc-holder/OpenId4VcHolderModule.mjs +23 -0
- package/build/openid4vc-holder/OpenId4VcHolderModule.mjs.map +1 -0
- package/build/openid4vc-holder/OpenId4VciHolderService.d.mts +69 -0
- package/build/openid4vc-holder/OpenId4VciHolderService.d.mts.map +1 -0
- package/build/openid4vc-holder/OpenId4VciHolderService.mjs +751 -0
- package/build/openid4vc-holder/OpenId4VciHolderService.mjs.map +1 -0
- package/build/openid4vc-holder/OpenId4VciHolderServiceOptions.d.mts +398 -0
- package/build/openid4vc-holder/OpenId4VciHolderServiceOptions.d.mts.map +1 -0
- package/build/openid4vc-holder/OpenId4VciHolderServiceOptions.mjs +16 -0
- package/build/openid4vc-holder/OpenId4VciHolderServiceOptions.mjs.map +1 -0
- package/build/openid4vc-holder/OpenId4vpHolderService.d.mts +130 -0
- package/build/openid4vc-holder/OpenId4vpHolderService.d.mts.map +1 -0
- package/build/openid4vc-holder/OpenId4vpHolderService.mjs +278 -0
- package/build/openid4vc-holder/OpenId4vpHolderService.mjs.map +1 -0
- package/build/openid4vc-holder/OpenId4vpHolderServiceOptions.d.mts +112 -0
- package/build/openid4vc-holder/OpenId4vpHolderServiceOptions.d.mts.map +1 -0
- package/build/openid4vc-holder/index.d.mts +6 -0
- package/build/openid4vc-holder/index.mjs +5 -0
- package/build/openid4vc-issuer/OpenId4VcIssuanceSessionState.d.mts +16 -0
- package/build/openid4vc-issuer/OpenId4VcIssuanceSessionState.d.mts.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuanceSessionState.mjs +18 -0
- package/build/openid4vc-issuer/OpenId4VcIssuanceSessionState.mjs.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerApi.d.mts +137 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerApi.d.mts.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerApi.mjs +108 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerApi.mjs.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerEvents.d.mts +19 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerEvents.d.mts.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerEvents.mjs +9 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerEvents.mjs.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerModule.d.mts +27 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerModule.d.mts.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerModule.mjs +150 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerModule.mjs.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerModuleConfig.d.mts +279 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerModuleConfig.d.mts.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerModuleConfig.mjs +179 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerModuleConfig.mjs.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerService.d.mts +182 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerService.d.mts.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerService.mjs +881 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerService.mjs.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerServiceOptions.d.mts +340 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerServiceOptions.d.mts.map +1 -0
- package/build/openid4vc-issuer/OpenId4VcIssuerServiceOptions.mjs +1 -0
- package/build/openid4vc-issuer/index.d.mts +11 -0
- package/build/openid4vc-issuer/index.mjs +11 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRecord.d.mts +300 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRecord.d.mts.map +1 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRecord.mjs +102 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRecord.mjs.map +1 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRepository.d.mts +10 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRepository.d.mts.map +1 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRepository.mjs +22 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRepository.mjs.map +1 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRecord.d.mts +84 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRecord.d.mts.map +1 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRecord.mjs +89 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRecord.mjs.map +1 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRepository.d.mts +12 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRepository.d.mts.map +1 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRepository.mjs +28 -0
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRepository.mjs.map +1 -0
- package/build/openid4vc-issuer/repository/index.d.mts +4 -0
- package/build/openid4vc-issuer/repository/index.mjs +4 -0
- package/build/openid4vc-issuer/router/accessTokenEndpoint.mjs +199 -0
- package/build/openid4vc-issuer/router/accessTokenEndpoint.mjs.map +1 -0
- package/build/openid4vc-issuer/router/authorizationChallengeEndpoint.mjs +241 -0
- package/build/openid4vc-issuer/router/authorizationChallengeEndpoint.mjs.map +1 -0
- package/build/openid4vc-issuer/router/authorizationEndpoint.mjs +51 -0
- package/build/openid4vc-issuer/router/authorizationEndpoint.mjs.map +1 -0
- package/build/openid4vc-issuer/router/authorizationServerMetadataEndpoint.mjs +25 -0
- package/build/openid4vc-issuer/router/authorizationServerMetadataEndpoint.mjs.map +1 -0
- package/build/openid4vc-issuer/router/credentialEndpoint.mjs +142 -0
- package/build/openid4vc-issuer/router/credentialEndpoint.mjs.map +1 -0
- package/build/openid4vc-issuer/router/credentialOfferEndpoint.mjs +38 -0
- package/build/openid4vc-issuer/router/credentialOfferEndpoint.mjs.map +1 -0
- package/build/openid4vc-issuer/router/deferredCredentialEndpoint.mjs +84 -0
- package/build/openid4vc-issuer/router/deferredCredentialEndpoint.mjs.map +1 -0
- package/build/openid4vc-issuer/router/index.mjs +12 -0
- package/build/openid4vc-issuer/router/issuerMetadataEndpoint.mjs +43 -0
- package/build/openid4vc-issuer/router/issuerMetadataEndpoint.mjs.map +1 -0
- package/build/openid4vc-issuer/router/jwksEndpoint.mjs +18 -0
- package/build/openid4vc-issuer/router/jwksEndpoint.mjs.map +1 -0
- package/build/openid4vc-issuer/router/nonceEndpoint.mjs +29 -0
- package/build/openid4vc-issuer/router/nonceEndpoint.mjs.map +1 -0
- package/build/openid4vc-issuer/router/pushedAuthorizationRequestEndpoint.mjs +164 -0
- package/build/openid4vc-issuer/router/pushedAuthorizationRequestEndpoint.mjs.map +1 -0
- package/build/openid4vc-issuer/router/redirectEndpoint.mjs +124 -0
- package/build/openid4vc-issuer/router/redirectEndpoint.mjs.map +1 -0
- package/build/openid4vc-issuer/util/txCode.mjs +18 -0
- package/build/openid4vc-issuer/util/txCode.mjs.map +1 -0
- package/build/openid4vc-verifier/OpenId4VcVerificationSessionState.d.mts +10 -0
- package/build/openid4vc-verifier/OpenId4VcVerificationSessionState.d.mts.map +1 -0
- package/build/openid4vc-verifier/OpenId4VcVerificationSessionState.mjs +12 -0
- package/build/openid4vc-verifier/OpenId4VcVerificationSessionState.mjs.map +1 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierApi.d.mts +60 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierApi.d.mts.map +1 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierApi.mjs +83 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierApi.mjs.map +1 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierEvents.d.mts +19 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierEvents.d.mts.map +1 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierEvents.mjs +9 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierEvents.mjs.map +1 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierModule.d.mts +25 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierModule.d.mts.map +1 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierModule.mjs +91 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierModule.mjs.map +1 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierModuleConfig.d.mts +55 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierModuleConfig.d.mts.map +1 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierModuleConfig.mjs +36 -0
- package/build/openid4vc-verifier/OpenId4VcVerifierModuleConfig.mjs.map +1 -0
- package/build/openid4vc-verifier/OpenId4VpVerifierService.d.mts +60 -0
- package/build/openid4vc-verifier/OpenId4VpVerifierService.d.mts.map +1 -0
- package/build/openid4vc-verifier/OpenId4VpVerifierService.mjs +714 -0
- package/build/openid4vc-verifier/OpenId4VpVerifierService.mjs.map +1 -0
- package/build/openid4vc-verifier/OpenId4VpVerifierServiceOptions.d.mts +194 -0
- package/build/openid4vc-verifier/OpenId4VpVerifierServiceOptions.d.mts.map +1 -0
- package/build/openid4vc-verifier/index.d.mts +12 -0
- package/build/openid4vc-verifier/index.mjs +11 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRecord.d.mts +129 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRecord.d.mts.map +1 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRecord.mjs +64 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRecord.mjs.map +1 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRepository.d.mts +10 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRepository.d.mts.map +1 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRepository.mjs +22 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRepository.mjs.map +1 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRecord.d.mts +33 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRecord.d.mts.map +1 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRecord.mjs +32 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRecord.mjs.map +1 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRepository.d.mts +12 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRepository.d.mts.map +1 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRepository.mjs +28 -0
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRepository.mjs.map +1 -0
- package/build/openid4vc-verifier/repository/index.d.mts +4 -0
- package/build/openid4vc-verifier/repository/index.mjs +4 -0
- package/build/openid4vc-verifier/router/authorizationEndpoint.mjs +117 -0
- package/build/openid4vc-verifier/router/authorizationEndpoint.mjs.map +1 -0
- package/build/openid4vc-verifier/router/authorizationRequestEndpoint.mjs +39 -0
- package/build/openid4vc-verifier/router/authorizationRequestEndpoint.mjs.map +1 -0
- package/build/openid4vc-verifier/router/index.mjs +1 -0
- package/build/shared/callbacks.d.mts +47 -0
- package/build/shared/callbacks.d.mts.map +1 -0
- package/build/shared/callbacks.mjs +279 -0
- package/build/shared/callbacks.mjs.map +1 -0
- package/build/shared/index.d.mts +7 -0
- package/build/shared/index.mjs +4 -0
- package/build/shared/issuerMetadataUtils.d.mts +22 -0
- package/build/shared/issuerMetadataUtils.d.mts.map +1 -0
- package/build/shared/issuerMetadataUtils.mjs +30 -0
- package/build/shared/issuerMetadataUtils.mjs.map +1 -0
- package/build/shared/models/CredentialHolderBinding.d.mts +71 -0
- package/build/shared/models/CredentialHolderBinding.d.mts.map +1 -0
- package/build/shared/models/CredentialHolderBinding.mjs +1 -0
- package/build/shared/models/OpenId4VcJwtIssuer.d.mts +46 -0
- package/build/shared/models/OpenId4VcJwtIssuer.d.mts.map +1 -0
- package/build/shared/models/OpenId4VcJwtIssuer.mjs +1 -0
- package/build/shared/models/OpenId4VciAuthorizationServerConfig.d.mts +71 -0
- package/build/shared/models/OpenId4VciAuthorizationServerConfig.d.mts.map +1 -0
- package/build/shared/models/OpenId4VciCredentialFormatProfile.d.mts +12 -0
- package/build/shared/models/OpenId4VciCredentialFormatProfile.d.mts.map +1 -0
- package/build/shared/models/OpenId4VciCredentialFormatProfile.mjs +14 -0
- package/build/shared/models/OpenId4VciCredentialFormatProfile.mjs.map +1 -0
- package/build/shared/models/index.d.mts +30 -0
- package/build/shared/models/index.d.mts.map +1 -0
- package/build/shared/models/index.mjs +6 -0
- package/build/shared/router/context.mjs +52 -0
- package/build/shared/router/context.mjs.map +1 -0
- package/build/shared/router/express.browser.d.mts +5 -0
- package/build/shared/router/express.browser.d.mts.map +1 -0
- package/build/shared/router/express.browser.mjs +8 -0
- package/build/shared/router/express.browser.mjs.map +1 -0
- package/build/shared/router/express.mjs +10 -0
- package/build/shared/router/express.mjs.map +1 -0
- package/build/shared/router/express.native.d.mts +5 -0
- package/build/shared/router/express.native.d.mts.map +1 -0
- package/build/shared/router/express.native.mjs +8 -0
- package/build/shared/router/express.native.mjs.map +1 -0
- package/build/shared/router/index.mjs +3 -0
- package/build/shared/router/tenants.mjs +36 -0
- package/build/shared/router/tenants.mjs.map +1 -0
- package/build/shared/transactionData.mjs +19 -0
- package/build/shared/transactionData.mjs.map +1 -0
- package/build/shared/utils.mjs +90 -0
- package/build/shared/utils.mjs.map +1 -0
- package/package.json +30 -23
- package/build/index.d.ts +0 -4
- package/build/index.js +0 -21
- package/build/index.js.map +0 -1
- package/build/openid4vc-holder/OpenId4VcHolderApi.d.ts +0 -124
- package/build/openid4vc-holder/OpenId4VcHolderApi.js +0 -155
- package/build/openid4vc-holder/OpenId4VcHolderApi.js.map +0 -1
- package/build/openid4vc-holder/OpenId4VcHolderModule.d.ts +0 -13
- package/build/openid4vc-holder/OpenId4VcHolderModule.js +0 -35
- package/build/openid4vc-holder/OpenId4VcHolderModule.js.map +0 -1
- package/build/openid4vc-holder/OpenId4VciHolderService.d.ts +0 -72
- package/build/openid4vc-holder/OpenId4VciHolderService.js +0 -569
- package/build/openid4vc-holder/OpenId4VciHolderService.js.map +0 -1
- package/build/openid4vc-holder/OpenId4VciHolderServiceOptions.d.ts +0 -238
- package/build/openid4vc-holder/OpenId4VciHolderServiceOptions.js +0 -14
- package/build/openid4vc-holder/OpenId4VciHolderServiceOptions.js.map +0 -1
- package/build/openid4vc-holder/OpenId4vcSiopHolderService.d.ts +0 -32
- package/build/openid4vc-holder/OpenId4vcSiopHolderService.js +0 -302
- package/build/openid4vc-holder/OpenId4vcSiopHolderService.js.map +0 -1
- package/build/openid4vc-holder/OpenId4vcSiopHolderServiceOptions.d.ts +0 -38
- package/build/openid4vc-holder/OpenId4vcSiopHolderServiceOptions.js +0 -3
- package/build/openid4vc-holder/OpenId4vcSiopHolderServiceOptions.js.map +0 -1
- package/build/openid4vc-holder/index.d.ts +0 -6
- package/build/openid4vc-holder/index.js +0 -23
- package/build/openid4vc-holder/index.js.map +0 -1
- package/build/openid4vc-issuer/OpenId4VcIssuanceSessionState.d.ts +0 -12
- package/build/openid4vc-issuer/OpenId4VcIssuanceSessionState.js +0 -19
- package/build/openid4vc-issuer/OpenId4VcIssuanceSessionState.js.map +0 -1
- package/build/openid4vc-issuer/OpenId4VcIssuerApi.d.ts +0 -101
- package/build/openid4vc-issuer/OpenId4VcIssuerApi.js +0 -110
- package/build/openid4vc-issuer/OpenId4VcIssuerApi.js.map +0 -1
- package/build/openid4vc-issuer/OpenId4VcIssuerEvents.d.ts +0 -13
- package/build/openid4vc-issuer/OpenId4VcIssuerEvents.js +0 -8
- package/build/openid4vc-issuer/OpenId4VcIssuerEvents.js.map +0 -1
- package/build/openid4vc-issuer/OpenId4VcIssuerModule.d.ts +0 -21
- package/build/openid4vc-issuer/OpenId4VcIssuerModule.js +0 -121
- package/build/openid4vc-issuer/OpenId4VcIssuerModule.js.map +0 -1
- package/build/openid4vc-issuer/OpenId4VcIssuerModuleConfig.d.ts +0 -190
- package/build/openid4vc-issuer/OpenId4VcIssuerModuleConfig.js +0 -141
- package/build/openid4vc-issuer/OpenId4VcIssuerModuleConfig.js.map +0 -1
- package/build/openid4vc-issuer/OpenId4VcIssuerService.d.ts +0 -116
- package/build/openid4vc-issuer/OpenId4VcIssuerService.js +0 -698
- package/build/openid4vc-issuer/OpenId4VcIssuerService.js.map +0 -1
- package/build/openid4vc-issuer/OpenId4VcIssuerServiceOptions.d.ts +0 -229
- package/build/openid4vc-issuer/OpenId4VcIssuerServiceOptions.js +0 -3
- package/build/openid4vc-issuer/OpenId4VcIssuerServiceOptions.js.map +0 -1
- package/build/openid4vc-issuer/index.d.ts +0 -8
- package/build/openid4vc-issuer/index.js +0 -27
- package/build/openid4vc-issuer/index.js.map +0 -1
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRecord.d.ts +0 -160
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRecord.js +0 -88
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRecord.js.map +0 -1
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRepository.d.ts +0 -5
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRepository.js +0 -29
- package/build/openid4vc-issuer/repository/OpenId4VcIssuanceSessionRepository.js.map +0 -1
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRecord.d.ts +0 -56
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRecord.js +0 -83
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRecord.js.map +0 -1
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRepository.d.ts +0 -8
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRepository.js +0 -35
- package/build/openid4vc-issuer/repository/OpenId4VcIssuerRepository.js.map +0 -1
- package/build/openid4vc-issuer/repository/index.d.ts +0 -4
- package/build/openid4vc-issuer/repository/index.js +0 -21
- package/build/openid4vc-issuer/repository/index.js.map +0 -1
- package/build/openid4vc-issuer/router/accessTokenEndpoint.d.ts +0 -5
- package/build/openid4vc-issuer/router/accessTokenEndpoint.js +0 -164
- package/build/openid4vc-issuer/router/accessTokenEndpoint.js.map +0 -1
- package/build/openid4vc-issuer/router/authorizationChallengeEndpoint.d.ts +0 -3
- package/build/openid4vc-issuer/router/authorizationChallengeEndpoint.js +0 -213
- package/build/openid4vc-issuer/router/authorizationChallengeEndpoint.js.map +0 -1
- package/build/openid4vc-issuer/router/authorizationServerMetadataEndpoint.d.ts +0 -6
- package/build/openid4vc-issuer/router/authorizationServerMetadataEndpoint.js +0 -25
- package/build/openid4vc-issuer/router/authorizationServerMetadataEndpoint.js.map +0 -1
- package/build/openid4vc-issuer/router/credentialEndpoint.d.ts +0 -3
- package/build/openid4vc-issuer/router/credentialEndpoint.js +0 -176
- package/build/openid4vc-issuer/router/credentialEndpoint.js.map +0 -1
- package/build/openid4vc-issuer/router/credentialOfferEndpoint.d.ts +0 -3
- package/build/openid4vc-issuer/router/credentialOfferEndpoint.js +0 -45
- package/build/openid4vc-issuer/router/credentialOfferEndpoint.js.map +0 -1
- package/build/openid4vc-issuer/router/index.d.ts +0 -9
- package/build/openid4vc-issuer/router/index.js +0 -20
- package/build/openid4vc-issuer/router/index.js.map +0 -1
- package/build/openid4vc-issuer/router/issuerMetadataEndpoint.d.ts +0 -2
- package/build/openid4vc-issuer/router/issuerMetadataEndpoint.js +0 -26
- package/build/openid4vc-issuer/router/issuerMetadataEndpoint.js.map +0 -1
- package/build/openid4vc-issuer/router/jwksEndpoint.d.ts +0 -3
- package/build/openid4vc-issuer/router/jwksEndpoint.js +0 -20
- package/build/openid4vc-issuer/router/jwksEndpoint.js.map +0 -1
- package/build/openid4vc-issuer/router/nonceEndpoint.d.ts +0 -3
- package/build/openid4vc-issuer/router/nonceEndpoint.js +0 -26
- package/build/openid4vc-issuer/router/nonceEndpoint.js.map +0 -1
- package/build/openid4vc-issuer/router/requestContext.d.ts +0 -5
- package/build/openid4vc-issuer/router/requestContext.js +0 -3
- package/build/openid4vc-issuer/router/requestContext.js.map +0 -1
- package/build/openid4vc-issuer/util/txCode.d.ts +0 -3
- package/build/openid4vc-issuer/util/txCode.js +0 -18
- package/build/openid4vc-issuer/util/txCode.js.map +0 -1
- package/build/openid4vc-verifier/OpenId4VcSiopVerifierService.d.ts +0 -55
- package/build/openid4vc-verifier/OpenId4VcSiopVerifierService.js +0 -498
- package/build/openid4vc-verifier/OpenId4VcSiopVerifierService.js.map +0 -1
- package/build/openid4vc-verifier/OpenId4VcSiopVerifierServiceOptions.d.ts +0 -77
- package/build/openid4vc-verifier/OpenId4VcSiopVerifierServiceOptions.js +0 -3
- package/build/openid4vc-verifier/OpenId4VcSiopVerifierServiceOptions.js.map +0 -1
- package/build/openid4vc-verifier/OpenId4VcVerificationSessionState.d.ts +0 -6
- package/build/openid4vc-verifier/OpenId4VcVerificationSessionState.js +0 -11
- package/build/openid4vc-verifier/OpenId4VcVerificationSessionState.js.map +0 -1
- package/build/openid4vc-verifier/OpenId4VcVerifierApi.d.ts +0 -61
- package/build/openid4vc-verifier/OpenId4VcVerifierApi.js +0 -108
- package/build/openid4vc-verifier/OpenId4VcVerifierApi.js.map +0 -1
- package/build/openid4vc-verifier/OpenId4VcVerifierEvents.d.ts +0 -13
- package/build/openid4vc-verifier/OpenId4VcVerifierEvents.js +0 -8
- package/build/openid4vc-verifier/OpenId4VcVerifierEvents.js.map +0 -1
- package/build/openid4vc-verifier/OpenId4VcVerifierModule.d.ts +0 -21
- package/build/openid4vc-verifier/OpenId4VcVerifierModule.js +0 -109
- package/build/openid4vc-verifier/OpenId4VcVerifierModule.js.map +0 -1
- package/build/openid4vc-verifier/OpenId4VcVerifierModuleConfig.d.ts +0 -31
- package/build/openid4vc-verifier/OpenId4VcVerifierModuleConfig.js +0 -28
- package/build/openid4vc-verifier/OpenId4VcVerifierModuleConfig.js.map +0 -1
- package/build/openid4vc-verifier/index.d.ts +0 -8
- package/build/openid4vc-verifier/index.js +0 -25
- package/build/openid4vc-verifier/index.js.map +0 -1
- package/build/openid4vc-verifier/repository/OpenId4VcRelyingPartyEventEmitter.d.ts +0 -49
- package/build/openid4vc-verifier/repository/OpenId4VcRelyingPartyEventEmitter.js +0 -234
- package/build/openid4vc-verifier/repository/OpenId4VcRelyingPartyEventEmitter.js.map +0 -1
- package/build/openid4vc-verifier/repository/OpenId4VcRelyingPartySessionManager.d.ts +0 -19
- package/build/openid4vc-verifier/repository/OpenId4VcRelyingPartySessionManager.js +0 -146
- package/build/openid4vc-verifier/repository/OpenId4VcRelyingPartySessionManager.js.map +0 -1
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRecord.d.ts +0 -71
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRecord.js +0 -46
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRecord.js.map +0 -1
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRepository.d.ts +0 -5
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRepository.js +0 -29
- package/build/openid4vc-verifier/repository/OpenId4VcVerificationSessionRepository.js.map +0 -1
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRecord.d.ts +0 -29
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRecord.js +0 -29
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRecord.js.map +0 -1
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRepository.d.ts +0 -8
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRepository.js +0 -35
- package/build/openid4vc-verifier/repository/OpenId4VcVerifierRepository.js.map +0 -1
- package/build/openid4vc-verifier/repository/index.d.ts +0 -4
- package/build/openid4vc-verifier/repository/index.js +0 -21
- package/build/openid4vc-verifier/repository/index.js.map +0 -1
- package/build/openid4vc-verifier/router/authorizationEndpoint.d.ts +0 -11
- package/build/openid4vc-verifier/router/authorizationEndpoint.js +0 -102
- package/build/openid4vc-verifier/router/authorizationEndpoint.js.map +0 -1
- package/build/openid4vc-verifier/router/authorizationRequestEndpoint.d.ts +0 -11
- package/build/openid4vc-verifier/router/authorizationRequestEndpoint.js +0 -63
- package/build/openid4vc-verifier/router/authorizationRequestEndpoint.js.map +0 -1
- package/build/openid4vc-verifier/router/index.d.ts +0 -2
- package/build/openid4vc-verifier/router/index.js +0 -6
- package/build/openid4vc-verifier/router/index.js.map +0 -1
- package/build/openid4vc-verifier/router/requestContext.d.ts +0 -5
- package/build/openid4vc-verifier/router/requestContext.js +0 -3
- package/build/openid4vc-verifier/router/requestContext.js.map +0 -1
- package/build/shared/callbacks.d.ts +0 -18
- package/build/shared/callbacks.js +0 -81
- package/build/shared/callbacks.js.map +0 -1
- package/build/shared/index.d.ts +0 -2
- package/build/shared/index.js +0 -19
- package/build/shared/index.js.map +0 -1
- package/build/shared/issuerMetadataUtils.d.ts +0 -158
- package/build/shared/issuerMetadataUtils.js +0 -38
- package/build/shared/issuerMetadataUtils.js.map +0 -1
- package/build/shared/models/CredentialHolderBinding.d.ts +0 -13
- package/build/shared/models/CredentialHolderBinding.js +0 -3
- package/build/shared/models/CredentialHolderBinding.js.map +0 -1
- package/build/shared/models/OpenId4VcJwtIssuer.d.ts +0 -28
- package/build/shared/models/OpenId4VcJwtIssuer.js +0 -3
- package/build/shared/models/OpenId4VcJwtIssuer.js.map +0 -1
- package/build/shared/models/OpenId4VciAuthorizationServerConfig.d.ts +0 -10
- package/build/shared/models/OpenId4VciAuthorizationServerConfig.js +0 -3
- package/build/shared/models/OpenId4VciAuthorizationServerConfig.js.map +0 -1
- package/build/shared/models/OpenId4VciCredentialFormatProfile.d.ts +0 -7
- package/build/shared/models/OpenId4VciCredentialFormatProfile.js +0 -12
- package/build/shared/models/OpenId4VciCredentialFormatProfile.js.map +0 -1
- package/build/shared/models/index.d.ts +0 -24
- package/build/shared/models/index.js +0 -25
- package/build/shared/models/index.js.map +0 -1
- package/build/shared/router/context.d.ts +0 -17
- package/build/shared/router/context.js +0 -76
- package/build/shared/router/context.js.map +0 -1
- package/build/shared/router/express.d.ts +0 -2
- package/build/shared/router/express.js +0 -15
- package/build/shared/router/express.js.map +0 -1
- package/build/shared/router/express.native.d.ts +0 -1
- package/build/shared/router/express.native.js +0 -7
- package/build/shared/router/express.native.js.map +0 -1
- package/build/shared/router/index.d.ts +0 -3
- package/build/shared/router/index.js +0 -20
- package/build/shared/router/index.js.map +0 -1
- package/build/shared/router/tenants.d.ts +0 -13
- package/build/shared/router/tenants.js +0 -49
- package/build/shared/router/tenants.js.map +0 -1
- package/build/shared/transform.d.ts +0 -5
- package/build/shared/transform.js +0 -73
- package/build/shared/transform.js.map +0 -1
- package/build/shared/utils.d.ts +0 -22
- package/build/shared/utils.js +0 -154
- package/build/shared/utils.js.map +0 -1
|
@@ -0,0 +1,279 @@
|
|
|
1
|
+
import { OpenId4VciCredentialRequestToCredentialMapper, OpenId4VciDeferredCredentialRequestToCredentialMapper, OpenId4VciGetVerificationSessionForIssuanceSessionAuthorization } from "./OpenId4VcIssuerServiceOptions.mjs";
|
|
2
|
+
import { Express } from "express";
|
|
3
|
+
|
|
4
|
+
//#region src/openid4vc-issuer/OpenId4VcIssuerModuleConfig.d.ts
|
|
5
|
+
interface InternalOpenId4VcIssuerModuleConfigOptions {
|
|
6
|
+
/**
|
|
7
|
+
* Base url at which the issuer endpoints will be hosted. All endpoints will be exposed with
|
|
8
|
+
* this path as prefix.
|
|
9
|
+
*/
|
|
10
|
+
baseUrl: string;
|
|
11
|
+
/**
|
|
12
|
+
* Express app on which the openid4vci endpoints will be registered.
|
|
13
|
+
*/
|
|
14
|
+
app: Express;
|
|
15
|
+
/**
|
|
16
|
+
* The time after which a cNonce will expire.
|
|
17
|
+
*
|
|
18
|
+
* @default 60 (1 minute)
|
|
19
|
+
*/
|
|
20
|
+
cNonceExpiresInSeconds?: number;
|
|
21
|
+
/**
|
|
22
|
+
* The time after which a stateful credential offer not bound to a subject expires. Once the offer has been bound
|
|
23
|
+
* to a subject the access token expiration takes effect. This is to prevent long-lived `pre-authorized_code` and
|
|
24
|
+
* `issuer_state` values.
|
|
25
|
+
*
|
|
26
|
+
* @default 180 (3 minutes)
|
|
27
|
+
*/
|
|
28
|
+
statefulCredentialOfferExpirationInSeconds?: number;
|
|
29
|
+
/**
|
|
30
|
+
* The time after which an authorization code will expire.
|
|
31
|
+
*
|
|
32
|
+
* @default 60 (1 minute)
|
|
33
|
+
*/
|
|
34
|
+
authorizationCodeExpiresInSeconds?: number;
|
|
35
|
+
/**
|
|
36
|
+
* The time after which an access token will expire.
|
|
37
|
+
*
|
|
38
|
+
* @default 180 (3 minutes)
|
|
39
|
+
*/
|
|
40
|
+
accessTokenExpiresInSeconds?: number;
|
|
41
|
+
/**
|
|
42
|
+
* The time after which a refresh token will expire.
|
|
43
|
+
*
|
|
44
|
+
* @default 7776000 (90 days)
|
|
45
|
+
*/
|
|
46
|
+
refreshTokenExpiresInSeconds?: number;
|
|
47
|
+
/**
|
|
48
|
+
* The time after which a pushed authorization request URI will expire.
|
|
49
|
+
*
|
|
50
|
+
* @default 60 (1 minute)
|
|
51
|
+
*/
|
|
52
|
+
requestUriExpiresInSeconds?: number;
|
|
53
|
+
/**
|
|
54
|
+
* Whether DPoP is required for all issuance sessions. This value can be overridden when creating
|
|
55
|
+
* a credential offer. If dpop is not required, but used by a client in the first request to credo,
|
|
56
|
+
* DPoP will be required going forward.
|
|
57
|
+
*
|
|
58
|
+
* @default false
|
|
59
|
+
*/
|
|
60
|
+
dpopRequired?: boolean;
|
|
61
|
+
/**
|
|
62
|
+
* Whether wallet attestations are required for all issuance sessions. This value can be overridden when creating
|
|
63
|
+
* a credential offer, but will have effect for dynamic issuance sessions. If wallet attestations are not required
|
|
64
|
+
* but used by a client in the first request to credo,
|
|
65
|
+
* wallet attestations will be required going forward.
|
|
66
|
+
*
|
|
67
|
+
* @default false
|
|
68
|
+
*/
|
|
69
|
+
walletAttestationsRequired?: boolean;
|
|
70
|
+
/**
|
|
71
|
+
* Whether to allow dynamic issuance sessions based on a credential request.
|
|
72
|
+
*
|
|
73
|
+
* This requires an external authorization server which issues access tokens without
|
|
74
|
+
* a `pre-authorized_code` or `issuer_state` parameter.
|
|
75
|
+
*
|
|
76
|
+
* Credo only support stateful credential offer sessions (pre-auth or presentation during issuance)
|
|
77
|
+
*
|
|
78
|
+
* @default false
|
|
79
|
+
*/
|
|
80
|
+
allowDynamicIssuanceSessions?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* A function mapping a credential request to the credential to be issued.
|
|
83
|
+
*
|
|
84
|
+
* When multiple credentials are returned it is recommended to use different or approximate issuance and expiration
|
|
85
|
+
* times to prevent correlation based on the specific time
|
|
86
|
+
*/
|
|
87
|
+
credentialRequestToCredentialMapper: OpenId4VciCredentialRequestToCredentialMapper;
|
|
88
|
+
/**
|
|
89
|
+
* A function mapping a deferred credential request to the credential to be issued.
|
|
90
|
+
*
|
|
91
|
+
* When multiple credentials are returned it is recommended to use different or approximate issuance and expiration
|
|
92
|
+
* times to prevent correlation based on the specific time
|
|
93
|
+
*/
|
|
94
|
+
deferredCredentialRequestToCredentialMapper?: OpenId4VciDeferredCredentialRequestToCredentialMapper;
|
|
95
|
+
/**
|
|
96
|
+
* Callback to get a verification session that needs to be fulfilled for the authorization of
|
|
97
|
+
* of a credential issuance session. Once the verification session has been completed the user can
|
|
98
|
+
* retrieve an authorization code and access token and retrieve the credential(s).
|
|
99
|
+
*
|
|
100
|
+
* Required if presentation during issuance flow is used
|
|
101
|
+
*/
|
|
102
|
+
getVerificationSessionForIssuanceSessionAuthorization?: OpenId4VciGetVerificationSessionForIssuanceSessionAuthorization;
|
|
103
|
+
/**
|
|
104
|
+
* Custom the paths used for endpoints
|
|
105
|
+
*/
|
|
106
|
+
endpoints?: {
|
|
107
|
+
/**
|
|
108
|
+
* @default /nonce
|
|
109
|
+
*/
|
|
110
|
+
nonce?: string;
|
|
111
|
+
/**
|
|
112
|
+
* @default /challenge
|
|
113
|
+
*/
|
|
114
|
+
authorizationChallenge?: string;
|
|
115
|
+
/**
|
|
116
|
+
* @default /offers
|
|
117
|
+
*/
|
|
118
|
+
credentialOffer?: string;
|
|
119
|
+
/**
|
|
120
|
+
* @default /credential
|
|
121
|
+
*/
|
|
122
|
+
credential?: string;
|
|
123
|
+
/**
|
|
124
|
+
* @default /deferred-credential
|
|
125
|
+
*/
|
|
126
|
+
deferredCredential?: string;
|
|
127
|
+
/**
|
|
128
|
+
* @default /token
|
|
129
|
+
*/
|
|
130
|
+
accessToken?: string;
|
|
131
|
+
/**
|
|
132
|
+
* @default /par
|
|
133
|
+
*/
|
|
134
|
+
pushedAuthorizationRequest?: string;
|
|
135
|
+
/**
|
|
136
|
+
* @default /authorize
|
|
137
|
+
*/
|
|
138
|
+
authorization?: string;
|
|
139
|
+
/**
|
|
140
|
+
* @default /redirect
|
|
141
|
+
*/
|
|
142
|
+
redirect?: string;
|
|
143
|
+
/**
|
|
144
|
+
* @default /jwks
|
|
145
|
+
*/
|
|
146
|
+
jwks: string;
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
declare class OpenId4VcIssuerModuleConfig {
|
|
150
|
+
private options;
|
|
151
|
+
/**
|
|
152
|
+
* Callback to get a verification session that needs to be fulfilled for the authorization of
|
|
153
|
+
* of a credential issuance session. Once the verification session has been completed the user can
|
|
154
|
+
* retrieve an authorization code and access token and retrieve the credential(s).
|
|
155
|
+
*
|
|
156
|
+
* Required if presentation during issuance flow is used
|
|
157
|
+
*/
|
|
158
|
+
getVerificationSessionForIssuanceSessionAuthorization?: OpenId4VciGetVerificationSessionForIssuanceSessionAuthorization;
|
|
159
|
+
constructor(options: InternalOpenId4VcIssuerModuleConfigOptions);
|
|
160
|
+
get app(): Express;
|
|
161
|
+
get baseUrl(): string;
|
|
162
|
+
/**
|
|
163
|
+
* A function mapping a credential request to the credential to be issued.
|
|
164
|
+
*/
|
|
165
|
+
get credentialRequestToCredentialMapper(): OpenId4VciCredentialRequestToCredentialMapper;
|
|
166
|
+
/**
|
|
167
|
+
* A function mapping a credential request to the credential to be issued.
|
|
168
|
+
*/
|
|
169
|
+
get deferredCredentialRequestToCredentialMapper(): OpenId4VciDeferredCredentialRequestToCredentialMapper | undefined;
|
|
170
|
+
/**
|
|
171
|
+
* The time after which a cNone will expire.
|
|
172
|
+
*
|
|
173
|
+
* @default 60 (1 minute)
|
|
174
|
+
*/
|
|
175
|
+
get cNonceExpiresInSeconds(): number;
|
|
176
|
+
/**
|
|
177
|
+
* The time after which a stateful credential offer not bound to a subject expires. Once the offer has been bound
|
|
178
|
+
* to a subject the access token expiration takes effect. This is to prevent long-lived `pre-authorized_code` and
|
|
179
|
+
* `issuer_state` values.
|
|
180
|
+
*
|
|
181
|
+
* @default 360 (5 minutes)
|
|
182
|
+
*/
|
|
183
|
+
get statefulCredentialOfferExpirationInSeconds(): number;
|
|
184
|
+
/**
|
|
185
|
+
* The time after which a cNonce will expire.
|
|
186
|
+
*
|
|
187
|
+
* @default 60 (1 minute)
|
|
188
|
+
*/
|
|
189
|
+
get authorizationCodeExpiresInSeconds(): number;
|
|
190
|
+
/**
|
|
191
|
+
* The time after which an access token will expire.
|
|
192
|
+
*
|
|
193
|
+
* @default 180 (3 minutes)
|
|
194
|
+
*/
|
|
195
|
+
get accessTokenExpiresInSeconds(): number;
|
|
196
|
+
/**
|
|
197
|
+
* The time after which a refresh token will expire.
|
|
198
|
+
*
|
|
199
|
+
* @default 7776000 (90 days)
|
|
200
|
+
*/
|
|
201
|
+
get refreshTokenExpiresInSeconds(): number;
|
|
202
|
+
/**
|
|
203
|
+
* The time after which a pushed authorization request URI will expire.
|
|
204
|
+
*
|
|
205
|
+
* @default 60 (1 minute)
|
|
206
|
+
*/
|
|
207
|
+
get requestUriExpiresInSeconds(): number;
|
|
208
|
+
/**
|
|
209
|
+
* Whether DPoP is required for all issuance sessions. This value can be overridden when creating
|
|
210
|
+
* a credential offer. If dpop is not required, but used by a client in the first request to credo,
|
|
211
|
+
* DPoP will be required going forward.
|
|
212
|
+
*
|
|
213
|
+
* @default false
|
|
214
|
+
*/
|
|
215
|
+
get dpopRequired(): boolean;
|
|
216
|
+
/**
|
|
217
|
+
* Whether wallet attestations are required for all issuance sessions. This value can be overridden when creating
|
|
218
|
+
* a credential offer, but will have effect for dynamic issuance sessions. If wallet attestations are not required
|
|
219
|
+
* but used by a client in the first request to credo,
|
|
220
|
+
* wallet attestations will be required going forward.
|
|
221
|
+
*
|
|
222
|
+
* @default false
|
|
223
|
+
*/
|
|
224
|
+
get walletAttestationsRequired(): boolean;
|
|
225
|
+
/**
|
|
226
|
+
* Whether to allow dynamic issuance sessions based on a credential request.
|
|
227
|
+
*
|
|
228
|
+
* This requires an external authorization server which issues access tokens without
|
|
229
|
+
* a `pre-authorized_code` or `issuer_state` parameter.
|
|
230
|
+
*
|
|
231
|
+
* Credo only supports stateful credential offer sessions (pre-auth or presentation during issuance)
|
|
232
|
+
*
|
|
233
|
+
* @default false
|
|
234
|
+
*/
|
|
235
|
+
get allowDynamicIssuanceSessions(): boolean;
|
|
236
|
+
/**
|
|
237
|
+
* @default /nonce
|
|
238
|
+
*/
|
|
239
|
+
get nonceEndpointPath(): string;
|
|
240
|
+
/**
|
|
241
|
+
* @default /par
|
|
242
|
+
*/
|
|
243
|
+
get pushedAuthorizationRequestEndpoint(): string;
|
|
244
|
+
/**
|
|
245
|
+
* @default /authorize
|
|
246
|
+
*/
|
|
247
|
+
get authorizationEndpoint(): string;
|
|
248
|
+
/**
|
|
249
|
+
* @default /redirect
|
|
250
|
+
*/
|
|
251
|
+
get redirectEndpoint(): string;
|
|
252
|
+
/**
|
|
253
|
+
* @default /challenge
|
|
254
|
+
*/
|
|
255
|
+
get authorizationChallengeEndpointPath(): string;
|
|
256
|
+
/**
|
|
257
|
+
* @default /offers
|
|
258
|
+
*/
|
|
259
|
+
get credentialOfferEndpointPath(): string;
|
|
260
|
+
/**
|
|
261
|
+
* @default /credential
|
|
262
|
+
*/
|
|
263
|
+
get credentialEndpointPath(): string;
|
|
264
|
+
/**
|
|
265
|
+
* @default /deferred-credential
|
|
266
|
+
*/
|
|
267
|
+
get deferredCredentialEndpointPath(): string;
|
|
268
|
+
/**
|
|
269
|
+
* @default /token
|
|
270
|
+
*/
|
|
271
|
+
get accessTokenEndpointPath(): string;
|
|
272
|
+
/**
|
|
273
|
+
* @default /jwks
|
|
274
|
+
*/
|
|
275
|
+
get jwksEndpointPath(): string;
|
|
276
|
+
}
|
|
277
|
+
//#endregion
|
|
278
|
+
export { InternalOpenId4VcIssuerModuleConfigOptions, OpenId4VcIssuerModuleConfig };
|
|
279
|
+
//# sourceMappingURL=OpenId4VcIssuerModuleConfig.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenId4VcIssuerModuleConfig.d.mts","names":[],"sources":["../../src/openid4vc-issuer/OpenId4VcIssuerModuleConfig.ts"],"sourcesContent":[],"mappings":";;;;UAciB,0CAAA;;AAAjB;;;EAqGgD,OAAA,EAAA,MAAA;EASU;;AA0D1D;EAUiE,GAAA,EAxK1D,OAwK0D;EAEnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uCAvFS;;;;;;;gDAQS;;;;;;;;0DASU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;cA0D7C,2BAAA;;;;;;;;;0DAUoD;uBAEnC;aAMd;;;;;6CAWgC;;;;qDAOQ"}
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
//#region src/openid4vc-issuer/OpenId4VcIssuerModuleConfig.ts
|
|
2
|
+
const DEFAULT_C_NONCE_EXPIRES_IN = 60;
|
|
3
|
+
const DEFAULT_AUTHORIZATION_CODE_EXPIRES_IN = 60;
|
|
4
|
+
const DEFAULT_TOKEN_EXPIRES_IN = 180;
|
|
5
|
+
const DEFAULT_REFRESH_TOKEN_EXPIRES_IN = 2160 * 60 * 60;
|
|
6
|
+
const DEFAULT_STATEFUL_CREDENTIAL_OFFER_EXPIRES_IN = 180;
|
|
7
|
+
const DEFAULT_REQUEST_URI_EXPIRES_IN = 60;
|
|
8
|
+
var OpenId4VcIssuerModuleConfig = class {
|
|
9
|
+
constructor(options) {
|
|
10
|
+
this.options = options;
|
|
11
|
+
this.getVerificationSessionForIssuanceSessionAuthorization = options.getVerificationSessionForIssuanceSessionAuthorization;
|
|
12
|
+
}
|
|
13
|
+
get app() {
|
|
14
|
+
return this.options.app;
|
|
15
|
+
}
|
|
16
|
+
get baseUrl() {
|
|
17
|
+
return this.options.baseUrl;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* A function mapping a credential request to the credential to be issued.
|
|
21
|
+
*/
|
|
22
|
+
get credentialRequestToCredentialMapper() {
|
|
23
|
+
return this.options.credentialRequestToCredentialMapper;
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* A function mapping a credential request to the credential to be issued.
|
|
27
|
+
*/
|
|
28
|
+
get deferredCredentialRequestToCredentialMapper() {
|
|
29
|
+
return this.options.deferredCredentialRequestToCredentialMapper;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* The time after which a cNone will expire.
|
|
33
|
+
*
|
|
34
|
+
* @default 60 (1 minute)
|
|
35
|
+
*/
|
|
36
|
+
get cNonceExpiresInSeconds() {
|
|
37
|
+
return this.options.cNonceExpiresInSeconds ?? DEFAULT_C_NONCE_EXPIRES_IN;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* The time after which a stateful credential offer not bound to a subject expires. Once the offer has been bound
|
|
41
|
+
* to a subject the access token expiration takes effect. This is to prevent long-lived `pre-authorized_code` and
|
|
42
|
+
* `issuer_state` values.
|
|
43
|
+
*
|
|
44
|
+
* @default 360 (5 minutes)
|
|
45
|
+
*/
|
|
46
|
+
get statefulCredentialOfferExpirationInSeconds() {
|
|
47
|
+
return this.options.statefulCredentialOfferExpirationInSeconds ?? DEFAULT_STATEFUL_CREDENTIAL_OFFER_EXPIRES_IN;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* The time after which a cNonce will expire.
|
|
51
|
+
*
|
|
52
|
+
* @default 60 (1 minute)
|
|
53
|
+
*/
|
|
54
|
+
get authorizationCodeExpiresInSeconds() {
|
|
55
|
+
return this.options.authorizationCodeExpiresInSeconds ?? DEFAULT_AUTHORIZATION_CODE_EXPIRES_IN;
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* The time after which an access token will expire.
|
|
59
|
+
*
|
|
60
|
+
* @default 180 (3 minutes)
|
|
61
|
+
*/
|
|
62
|
+
get accessTokenExpiresInSeconds() {
|
|
63
|
+
return this.options.accessTokenExpiresInSeconds ?? DEFAULT_TOKEN_EXPIRES_IN;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* The time after which a refresh token will expire.
|
|
67
|
+
*
|
|
68
|
+
* @default 7776000 (90 days)
|
|
69
|
+
*/
|
|
70
|
+
get refreshTokenExpiresInSeconds() {
|
|
71
|
+
return this.options.refreshTokenExpiresInSeconds ?? DEFAULT_REFRESH_TOKEN_EXPIRES_IN;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* The time after which a pushed authorization request URI will expire.
|
|
75
|
+
*
|
|
76
|
+
* @default 60 (1 minute)
|
|
77
|
+
*/
|
|
78
|
+
get requestUriExpiresInSeconds() {
|
|
79
|
+
return this.options.requestUriExpiresInSeconds ?? DEFAULT_REQUEST_URI_EXPIRES_IN;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Whether DPoP is required for all issuance sessions. This value can be overridden when creating
|
|
83
|
+
* a credential offer. If dpop is not required, but used by a client in the first request to credo,
|
|
84
|
+
* DPoP will be required going forward.
|
|
85
|
+
*
|
|
86
|
+
* @default false
|
|
87
|
+
*/
|
|
88
|
+
get dpopRequired() {
|
|
89
|
+
return this.options.dpopRequired ?? false;
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Whether wallet attestations are required for all issuance sessions. This value can be overridden when creating
|
|
93
|
+
* a credential offer, but will have effect for dynamic issuance sessions. If wallet attestations are not required
|
|
94
|
+
* but used by a client in the first request to credo,
|
|
95
|
+
* wallet attestations will be required going forward.
|
|
96
|
+
*
|
|
97
|
+
* @default false
|
|
98
|
+
*/
|
|
99
|
+
get walletAttestationsRequired() {
|
|
100
|
+
return this.options.walletAttestationsRequired ?? false;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Whether to allow dynamic issuance sessions based on a credential request.
|
|
104
|
+
*
|
|
105
|
+
* This requires an external authorization server which issues access tokens without
|
|
106
|
+
* a `pre-authorized_code` or `issuer_state` parameter.
|
|
107
|
+
*
|
|
108
|
+
* Credo only supports stateful credential offer sessions (pre-auth or presentation during issuance)
|
|
109
|
+
*
|
|
110
|
+
* @default false
|
|
111
|
+
*/
|
|
112
|
+
get allowDynamicIssuanceSessions() {
|
|
113
|
+
return this.options.allowDynamicIssuanceSessions ?? false;
|
|
114
|
+
}
|
|
115
|
+
/**
|
|
116
|
+
* @default /nonce
|
|
117
|
+
*/
|
|
118
|
+
get nonceEndpointPath() {
|
|
119
|
+
return this.options.endpoints?.nonce ?? "/nonce";
|
|
120
|
+
}
|
|
121
|
+
/**
|
|
122
|
+
* @default /par
|
|
123
|
+
*/
|
|
124
|
+
get pushedAuthorizationRequestEndpoint() {
|
|
125
|
+
return this.options.endpoints?.pushedAuthorizationRequest ?? "/par";
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* @default /authorize
|
|
129
|
+
*/
|
|
130
|
+
get authorizationEndpoint() {
|
|
131
|
+
return this.options.endpoints?.authorization ?? "/authorize";
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* @default /redirect
|
|
135
|
+
*/
|
|
136
|
+
get redirectEndpoint() {
|
|
137
|
+
return this.options.endpoints?.redirect ?? "/redirect";
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* @default /challenge
|
|
141
|
+
*/
|
|
142
|
+
get authorizationChallengeEndpointPath() {
|
|
143
|
+
return this.options.endpoints?.authorizationChallenge ?? "/challenge";
|
|
144
|
+
}
|
|
145
|
+
/**
|
|
146
|
+
* @default /offers
|
|
147
|
+
*/
|
|
148
|
+
get credentialOfferEndpointPath() {
|
|
149
|
+
return this.options.endpoints?.credentialOffer ?? "/offers";
|
|
150
|
+
}
|
|
151
|
+
/**
|
|
152
|
+
* @default /credential
|
|
153
|
+
*/
|
|
154
|
+
get credentialEndpointPath() {
|
|
155
|
+
return this.options.endpoints?.credential ?? "/credential";
|
|
156
|
+
}
|
|
157
|
+
/**
|
|
158
|
+
* @default /deferred-credential
|
|
159
|
+
*/
|
|
160
|
+
get deferredCredentialEndpointPath() {
|
|
161
|
+
return this.options.endpoints?.deferredCredential ?? "/deferred-credential";
|
|
162
|
+
}
|
|
163
|
+
/**
|
|
164
|
+
* @default /token
|
|
165
|
+
*/
|
|
166
|
+
get accessTokenEndpointPath() {
|
|
167
|
+
return this.options.endpoints?.accessToken ?? "/token";
|
|
168
|
+
}
|
|
169
|
+
/**
|
|
170
|
+
* @default /jwks
|
|
171
|
+
*/
|
|
172
|
+
get jwksEndpointPath() {
|
|
173
|
+
return this.options.endpoints?.jwks ?? "/jwks";
|
|
174
|
+
}
|
|
175
|
+
};
|
|
176
|
+
|
|
177
|
+
//#endregion
|
|
178
|
+
export { OpenId4VcIssuerModuleConfig };
|
|
179
|
+
//# sourceMappingURL=OpenId4VcIssuerModuleConfig.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenId4VcIssuerModuleConfig.mjs","names":[],"sources":["../../src/openid4vc-issuer/OpenId4VcIssuerModuleConfig.ts"],"sourcesContent":["import type { Express } from 'express'\nimport type {\n OpenId4VciCredentialRequestToCredentialMapper,\n OpenId4VciDeferredCredentialRequestToCredentialMapper,\n OpenId4VciGetVerificationSessionForIssuanceSessionAuthorization,\n} from './OpenId4VcIssuerServiceOptions'\n\nconst DEFAULT_C_NONCE_EXPIRES_IN = 1 * 60 // 1 minute\nconst DEFAULT_AUTHORIZATION_CODE_EXPIRES_IN = 1 * 60 // 1 minute\nconst DEFAULT_TOKEN_EXPIRES_IN = 3 * 60 // 3 minutes\nconst DEFAULT_REFRESH_TOKEN_EXPIRES_IN = 90 * 24 * 60 * 60 // 90 days\nconst DEFAULT_STATEFUL_CREDENTIAL_OFFER_EXPIRES_IN = 3 * 60 // 3 minutes\nconst DEFAULT_REQUEST_URI_EXPIRES_IN = 1 * 60 // 1 minute\n\nexport interface InternalOpenId4VcIssuerModuleConfigOptions {\n /**\n * Base url at which the issuer endpoints will be hosted. All endpoints will be exposed with\n * this path as prefix.\n */\n baseUrl: string\n\n /**\n * Express app on which the openid4vci endpoints will be registered.\n */\n app: Express\n\n /**\n * The time after which a cNonce will expire.\n *\n * @default 60 (1 minute)\n */\n cNonceExpiresInSeconds?: number\n\n /**\n * The time after which a stateful credential offer not bound to a subject expires. Once the offer has been bound\n * to a subject the access token expiration takes effect. This is to prevent long-lived `pre-authorized_code` and\n * `issuer_state` values.\n *\n * @default 180 (3 minutes)\n */\n statefulCredentialOfferExpirationInSeconds?: number\n\n /**\n * The time after which an authorization code will expire.\n *\n * @default 60 (1 minute)\n */\n authorizationCodeExpiresInSeconds?: number\n\n /**\n * The time after which an access token will expire.\n *\n * @default 180 (3 minutes)\n */\n accessTokenExpiresInSeconds?: number\n\n /**\n * The time after which a refresh token will expire.\n *\n * @default 7776000 (90 days)\n */\n refreshTokenExpiresInSeconds?: number\n\n /**\n * The time after which a pushed authorization request URI will expire.\n *\n * @default 60 (1 minute)\n */\n requestUriExpiresInSeconds?: number\n\n /**\n * Whether DPoP is required for all issuance sessions. This value can be overridden when creating\n * a credential offer. If dpop is not required, but used by a client in the first request to credo,\n * DPoP will be required going forward.\n *\n * @default false\n */\n dpopRequired?: boolean\n\n /**\n * Whether wallet attestations are required for all issuance sessions. This value can be overridden when creating\n * a credential offer, but will have effect for dynamic issuance sessions. If wallet attestations are not required\n * but used by a client in the first request to credo,\n * wallet attestations will be required going forward.\n *\n * @default false\n */\n walletAttestationsRequired?: boolean\n\n /**\n * Whether to allow dynamic issuance sessions based on a credential request.\n *\n * This requires an external authorization server which issues access tokens without\n * a `pre-authorized_code` or `issuer_state` parameter.\n *\n * Credo only support stateful credential offer sessions (pre-auth or presentation during issuance)\n *\n * @default false\n */\n allowDynamicIssuanceSessions?: boolean\n\n /**\n * A function mapping a credential request to the credential to be issued.\n *\n * When multiple credentials are returned it is recommended to use different or approximate issuance and expiration\n * times to prevent correlation based on the specific time\n */\n credentialRequestToCredentialMapper: OpenId4VciCredentialRequestToCredentialMapper\n\n /**\n * A function mapping a deferred credential request to the credential to be issued.\n *\n * When multiple credentials are returned it is recommended to use different or approximate issuance and expiration\n * times to prevent correlation based on the specific time\n */\n deferredCredentialRequestToCredentialMapper?: OpenId4VciDeferredCredentialRequestToCredentialMapper\n\n /**\n * Callback to get a verification session that needs to be fulfilled for the authorization of\n * of a credential issuance session. Once the verification session has been completed the user can\n * retrieve an authorization code and access token and retrieve the credential(s).\n *\n * Required if presentation during issuance flow is used\n */\n getVerificationSessionForIssuanceSessionAuthorization?: OpenId4VciGetVerificationSessionForIssuanceSessionAuthorization\n\n /**\n * Custom the paths used for endpoints\n */\n endpoints?: {\n /**\n * @default /nonce\n */\n nonce?: string\n\n /**\n * @default /challenge\n */\n authorizationChallenge?: string\n\n /**\n * @default /offers\n */\n credentialOffer?: string\n\n /**\n * @default /credential\n */\n credential?: string\n\n /**\n * @default /deferred-credential\n */\n deferredCredential?: string\n\n /**\n * @default /token\n */\n accessToken?: string\n\n /**\n * @default /par\n */\n pushedAuthorizationRequest?: string\n\n /**\n * @default /authorize\n */\n authorization?: string\n\n /**\n * @default /redirect\n */\n redirect?: string\n\n /**\n * @default /jwks\n */\n jwks: string\n }\n}\n\nexport class OpenId4VcIssuerModuleConfig {\n private options: InternalOpenId4VcIssuerModuleConfigOptions\n\n /**\n * Callback to get a verification session that needs to be fulfilled for the authorization of\n * of a credential issuance session. Once the verification session has been completed the user can\n * retrieve an authorization code and access token and retrieve the credential(s).\n *\n * Required if presentation during issuance flow is used\n */\n public getVerificationSessionForIssuanceSessionAuthorization?: OpenId4VciGetVerificationSessionForIssuanceSessionAuthorization\n\n public constructor(options: InternalOpenId4VcIssuerModuleConfigOptions) {\n this.options = options\n this.getVerificationSessionForIssuanceSessionAuthorization =\n options.getVerificationSessionForIssuanceSessionAuthorization\n }\n\n public get app() {\n return this.options.app\n }\n\n public get baseUrl() {\n return this.options.baseUrl\n }\n\n /**\n * A function mapping a credential request to the credential to be issued.\n */\n public get credentialRequestToCredentialMapper() {\n return this.options.credentialRequestToCredentialMapper\n }\n\n /**\n * A function mapping a credential request to the credential to be issued.\n */\n public get deferredCredentialRequestToCredentialMapper() {\n return this.options.deferredCredentialRequestToCredentialMapper\n }\n\n /**\n * The time after which a cNone will expire.\n *\n * @default 60 (1 minute)\n */\n public get cNonceExpiresInSeconds(): number {\n return this.options.cNonceExpiresInSeconds ?? DEFAULT_C_NONCE_EXPIRES_IN\n }\n\n /**\n * The time after which a stateful credential offer not bound to a subject expires. Once the offer has been bound\n * to a subject the access token expiration takes effect. This is to prevent long-lived `pre-authorized_code` and\n * `issuer_state` values.\n *\n * @default 360 (5 minutes)\n */\n public get statefulCredentialOfferExpirationInSeconds(): number {\n return this.options.statefulCredentialOfferExpirationInSeconds ?? DEFAULT_STATEFUL_CREDENTIAL_OFFER_EXPIRES_IN\n }\n\n /**\n * The time after which a cNonce will expire.\n *\n * @default 60 (1 minute)\n */\n public get authorizationCodeExpiresInSeconds(): number {\n return this.options.authorizationCodeExpiresInSeconds ?? DEFAULT_AUTHORIZATION_CODE_EXPIRES_IN\n }\n\n /**\n * The time after which an access token will expire.\n *\n * @default 180 (3 minutes)\n */\n public get accessTokenExpiresInSeconds(): number {\n return this.options.accessTokenExpiresInSeconds ?? DEFAULT_TOKEN_EXPIRES_IN\n }\n\n /**\n * The time after which a refresh token will expire.\n *\n * @default 7776000 (90 days)\n */\n public get refreshTokenExpiresInSeconds(): number {\n return this.options.refreshTokenExpiresInSeconds ?? DEFAULT_REFRESH_TOKEN_EXPIRES_IN\n }\n\n /**\n * The time after which a pushed authorization request URI will expire.\n *\n * @default 60 (1 minute)\n */\n public get requestUriExpiresInSeconds(): number {\n return this.options.requestUriExpiresInSeconds ?? DEFAULT_REQUEST_URI_EXPIRES_IN\n }\n\n /**\n * Whether DPoP is required for all issuance sessions. This value can be overridden when creating\n * a credential offer. If dpop is not required, but used by a client in the first request to credo,\n * DPoP will be required going forward.\n *\n * @default false\n */\n public get dpopRequired(): boolean {\n return this.options.dpopRequired ?? false\n }\n\n /**\n * Whether wallet attestations are required for all issuance sessions. This value can be overridden when creating\n * a credential offer, but will have effect for dynamic issuance sessions. If wallet attestations are not required\n * but used by a client in the first request to credo,\n * wallet attestations will be required going forward.\n *\n * @default false\n */\n public get walletAttestationsRequired(): boolean {\n return this.options.walletAttestationsRequired ?? false\n }\n\n /**\n * Whether to allow dynamic issuance sessions based on a credential request.\n *\n * This requires an external authorization server which issues access tokens without\n * a `pre-authorized_code` or `issuer_state` parameter.\n *\n * Credo only supports stateful credential offer sessions (pre-auth or presentation during issuance)\n *\n * @default false\n */\n public get allowDynamicIssuanceSessions(): boolean {\n return this.options.allowDynamicIssuanceSessions ?? false\n }\n\n /**\n * @default /nonce\n */\n public get nonceEndpointPath(): string {\n return this.options.endpoints?.nonce ?? '/nonce'\n }\n\n /**\n * @default /par\n */\n public get pushedAuthorizationRequestEndpoint(): string {\n return this.options.endpoints?.pushedAuthorizationRequest ?? '/par'\n }\n\n /**\n * @default /authorize\n */\n public get authorizationEndpoint(): string {\n return this.options.endpoints?.authorization ?? '/authorize'\n }\n\n /**\n * @default /redirect\n */\n public get redirectEndpoint(): string {\n return this.options.endpoints?.redirect ?? '/redirect'\n }\n\n /**\n * @default /challenge\n */\n public get authorizationChallengeEndpointPath(): string {\n return this.options.endpoints?.authorizationChallenge ?? '/challenge'\n }\n\n /**\n * @default /offers\n */\n public get credentialOfferEndpointPath(): string {\n return this.options.endpoints?.credentialOffer ?? '/offers'\n }\n\n /**\n * @default /credential\n */\n public get credentialEndpointPath(): string {\n return this.options.endpoints?.credential ?? '/credential'\n }\n\n /**\n * @default /deferred-credential\n */\n public get deferredCredentialEndpointPath(): string {\n return this.options.endpoints?.deferredCredential ?? '/deferred-credential'\n }\n\n /**\n * @default /token\n */\n public get accessTokenEndpointPath(): string {\n return this.options.endpoints?.accessToken ?? '/token'\n }\n\n /**\n * @default /jwks\n */\n public get jwksEndpointPath(): string {\n return this.options.endpoints?.jwks ?? '/jwks'\n }\n}\n"],"mappings":";AAOA,MAAM,6BAA6B;AACnC,MAAM,wCAAwC;AAC9C,MAAM,2BAA2B;AACjC,MAAM,mCAAmC,OAAU,KAAK;AACxD,MAAM,+CAA+C;AACrD,MAAM,iCAAiC;AA0KvC,IAAa,8BAAb,MAAyC;CAYvC,AAAO,YAAY,SAAqD;AACtE,OAAK,UAAU;AACf,OAAK,wDACH,QAAQ;;CAGZ,IAAW,MAAM;AACf,SAAO,KAAK,QAAQ;;CAGtB,IAAW,UAAU;AACnB,SAAO,KAAK,QAAQ;;;;;CAMtB,IAAW,sCAAsC;AAC/C,SAAO,KAAK,QAAQ;;;;;CAMtB,IAAW,8CAA8C;AACvD,SAAO,KAAK,QAAQ;;;;;;;CAQtB,IAAW,yBAAiC;AAC1C,SAAO,KAAK,QAAQ,0BAA0B;;;;;;;;;CAUhD,IAAW,6CAAqD;AAC9D,SAAO,KAAK,QAAQ,8CAA8C;;;;;;;CAQpE,IAAW,oCAA4C;AACrD,SAAO,KAAK,QAAQ,qCAAqC;;;;;;;CAQ3D,IAAW,8BAAsC;AAC/C,SAAO,KAAK,QAAQ,+BAA+B;;;;;;;CAQrD,IAAW,+BAAuC;AAChD,SAAO,KAAK,QAAQ,gCAAgC;;;;;;;CAQtD,IAAW,6BAAqC;AAC9C,SAAO,KAAK,QAAQ,8BAA8B;;;;;;;;;CAUpD,IAAW,eAAwB;AACjC,SAAO,KAAK,QAAQ,gBAAgB;;;;;;;;;;CAWtC,IAAW,6BAAsC;AAC/C,SAAO,KAAK,QAAQ,8BAA8B;;;;;;;;;;;;CAapD,IAAW,+BAAwC;AACjD,SAAO,KAAK,QAAQ,gCAAgC;;;;;CAMtD,IAAW,oBAA4B;AACrC,SAAO,KAAK,QAAQ,WAAW,SAAS;;;;;CAM1C,IAAW,qCAA6C;AACtD,SAAO,KAAK,QAAQ,WAAW,8BAA8B;;;;;CAM/D,IAAW,wBAAgC;AACzC,SAAO,KAAK,QAAQ,WAAW,iBAAiB;;;;;CAMlD,IAAW,mBAA2B;AACpC,SAAO,KAAK,QAAQ,WAAW,YAAY;;;;;CAM7C,IAAW,qCAA6C;AACtD,SAAO,KAAK,QAAQ,WAAW,0BAA0B;;;;;CAM3D,IAAW,8BAAsC;AAC/C,SAAO,KAAK,QAAQ,WAAW,mBAAmB;;;;;CAMpD,IAAW,yBAAiC;AAC1C,SAAO,KAAK,QAAQ,WAAW,cAAc;;;;;CAM/C,IAAW,iCAAyC;AAClD,SAAO,KAAK,QAAQ,WAAW,sBAAsB;;;;;CAMvD,IAAW,0BAAkC;AAC3C,SAAO,KAAK,QAAQ,WAAW,eAAe;;;;;CAMhD,IAAW,mBAA2B;AACpC,SAAO,KAAK,QAAQ,WAAW,QAAQ"}
|
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
import { OpenId4VciCredentialConfigurationsSupportedWithFormats, OpenId4VciCredentialOfferPayload } from "../shared/models/index.mjs";
|
|
2
|
+
import { OpenId4VcIssuanceSessionState } from "./OpenId4VcIssuanceSessionState.mjs";
|
|
3
|
+
import { OpenId4VcIssuanceSessionRecord } from "./repository/OpenId4VcIssuanceSessionRecord.mjs";
|
|
4
|
+
import { OpenId4VcIssuanceSessionRepository } from "./repository/OpenId4VcIssuanceSessionRepository.mjs";
|
|
5
|
+
import { OpenId4VcIssuerRecord } from "./repository/OpenId4VcIssuerRecord.mjs";
|
|
6
|
+
import { OpenId4VcIssuerRepository } from "./repository/OpenId4VcIssuerRepository.mjs";
|
|
7
|
+
import "./repository/index.mjs";
|
|
8
|
+
import "../shared/index.mjs";
|
|
9
|
+
import { OpenId4VciCreateCredentialOfferOptions, OpenId4VciCreateCredentialResponseOptions, OpenId4VciCreateDeferredCredentialResponseOptions, OpenId4VciCreateIssuerOptions, OpenId4VciCreateStatelessCredentialOfferOptions } from "./OpenId4VcIssuerServiceOptions.mjs";
|
|
10
|
+
import { OpenId4VcIssuerModuleConfig } from "./OpenId4VcIssuerModuleConfig.mjs";
|
|
11
|
+
import "../index.mjs";
|
|
12
|
+
import { AgentContext, Jwt, Query, QueryOptions, W3cCredentialService, W3cV2CredentialService } from "@credo-ts/core";
|
|
13
|
+
import { Jwk, Oauth2AuthorizationServer, Oauth2Client, Oauth2ResourceServer, PkceCodeChallengeMethod } from "@openid4vc/oauth2";
|
|
14
|
+
import { CredentialResponse, DeferredCredentialResponse, Openid4vciDraftVersion, Openid4vciIssuer } from "@openid4vc/openid4vci";
|
|
15
|
+
|
|
16
|
+
//#region src/openid4vc-issuer/OpenId4VcIssuerService.d.ts
|
|
17
|
+
/**
|
|
18
|
+
* @internal
|
|
19
|
+
*/
|
|
20
|
+
declare class OpenId4VcIssuerService {
|
|
21
|
+
private w3cCredentialService;
|
|
22
|
+
private w3cV2CredentialService;
|
|
23
|
+
private openId4VcIssuerConfig;
|
|
24
|
+
private openId4VcIssuerRepository;
|
|
25
|
+
private openId4VcIssuanceSessionRepository;
|
|
26
|
+
constructor(w3cCredentialService: W3cCredentialService, w3cV2CredentialService: W3cV2CredentialService, openId4VcIssuerConfig: OpenId4VcIssuerModuleConfig, openId4VcIssuerRepository: OpenId4VcIssuerRepository, openId4VcIssuanceSessionRepository: OpenId4VcIssuanceSessionRepository);
|
|
27
|
+
createStatelessCredentialOffer(agentContext: AgentContext, options: OpenId4VciCreateStatelessCredentialOfferOptions & {
|
|
28
|
+
issuer: OpenId4VcIssuerRecord;
|
|
29
|
+
}): Promise<{
|
|
30
|
+
credentialOffer: string;
|
|
31
|
+
credentialOfferObject: OpenId4VciCredentialOfferPayload;
|
|
32
|
+
}>;
|
|
33
|
+
createCredentialOffer(agentContext: AgentContext, options: OpenId4VciCreateCredentialOfferOptions & {
|
|
34
|
+
issuer: OpenId4VcIssuerRecord;
|
|
35
|
+
}): Promise<{
|
|
36
|
+
issuanceSession: OpenId4VcIssuanceSessionRecord;
|
|
37
|
+
credentialOffer: string;
|
|
38
|
+
}>;
|
|
39
|
+
createCredentialResponse(agentContext: AgentContext, options: OpenId4VciCreateCredentialResponseOptions & {
|
|
40
|
+
issuanceSession: OpenId4VcIssuanceSessionRecord;
|
|
41
|
+
}): Promise<{
|
|
42
|
+
issuanceSession: OpenId4VcIssuanceSessionRecord;
|
|
43
|
+
credentialResponse: CredentialResponse;
|
|
44
|
+
}>;
|
|
45
|
+
createDeferredCredentialResponse(agentContext: AgentContext, options: OpenId4VciCreateDeferredCredentialResponseOptions & {
|
|
46
|
+
issuanceSession: OpenId4VcIssuanceSessionRecord;
|
|
47
|
+
}): Promise<{
|
|
48
|
+
issuanceSession: OpenId4VcIssuanceSessionRecord;
|
|
49
|
+
deferredCredentialResponse: DeferredCredentialResponse;
|
|
50
|
+
}>;
|
|
51
|
+
private verifyCredentialRequestProofs;
|
|
52
|
+
findIssuanceSessionsByQuery(agentContext: AgentContext, query: Query<OpenId4VcIssuanceSessionRecord>, queryOptions?: QueryOptions): Promise<OpenId4VcIssuanceSessionRecord[]>;
|
|
53
|
+
findSingleIssuanceSessionByQuery(agentContext: AgentContext, query: Query<OpenId4VcIssuanceSessionRecord>): Promise<OpenId4VcIssuanceSessionRecord | null>;
|
|
54
|
+
getIssuanceSessionById(agentContext: AgentContext, issuanceSessionId: string): Promise<OpenId4VcIssuanceSessionRecord>;
|
|
55
|
+
getAllIssuers(agentContext: AgentContext): Promise<OpenId4VcIssuerRecord[]>;
|
|
56
|
+
getIssuerByIssuerId(agentContext: AgentContext, issuerId: string): Promise<OpenId4VcIssuerRecord>;
|
|
57
|
+
updateIssuer(agentContext: AgentContext, issuer: OpenId4VcIssuerRecord): Promise<void>;
|
|
58
|
+
createIssuer(agentContext: AgentContext, options: OpenId4VciCreateIssuerOptions): Promise<OpenId4VcIssuerRecord>;
|
|
59
|
+
private createSignedMetadata;
|
|
60
|
+
rotateAccessTokenSigningKey(agentContext: AgentContext, issuer: OpenId4VcIssuerRecord, options?: Pick<OpenId4VciCreateIssuerOptions, 'accessTokenSignerKeyType'>): Promise<void>;
|
|
61
|
+
/**
|
|
62
|
+
* @param fetchExternalAuthorizationServerMetadata defaults to false
|
|
63
|
+
*/
|
|
64
|
+
getIssuerMetadata(agentContext: AgentContext, issuerRecord: OpenId4VcIssuerRecord, fetchExternalAuthorizationServerMetadata?: boolean): Promise<{
|
|
65
|
+
originalDraftVersion: Openid4vciDraftVersion;
|
|
66
|
+
credentialIssuer: {
|
|
67
|
+
credential_issuer: string;
|
|
68
|
+
credential_endpoint: string;
|
|
69
|
+
deferred_credential_endpoint: string;
|
|
70
|
+
credential_configurations_supported: OpenId4VciCredentialConfigurationsSupportedWithFormats;
|
|
71
|
+
authorization_servers: string[] | undefined;
|
|
72
|
+
display: {
|
|
73
|
+
[x: string]: unknown;
|
|
74
|
+
name?: string | undefined;
|
|
75
|
+
locale?: string | undefined;
|
|
76
|
+
logo?: {
|
|
77
|
+
[x: string]: unknown;
|
|
78
|
+
uri?: string | undefined;
|
|
79
|
+
alt_text?: string | undefined;
|
|
80
|
+
} | undefined;
|
|
81
|
+
}[] | undefined;
|
|
82
|
+
nonce_endpoint: string;
|
|
83
|
+
batch_credential_issuance: {
|
|
84
|
+
batch_size: number;
|
|
85
|
+
} | undefined;
|
|
86
|
+
};
|
|
87
|
+
authorizationServers: ({
|
|
88
|
+
[x: string]: unknown;
|
|
89
|
+
issuer: string;
|
|
90
|
+
token_endpoint: string;
|
|
91
|
+
token_endpoint_auth_methods_supported?: string[] | undefined;
|
|
92
|
+
authorization_endpoint?: string | undefined;
|
|
93
|
+
jwks_uri?: string | undefined;
|
|
94
|
+
grant_types_supported?: string[] | undefined;
|
|
95
|
+
code_challenge_methods_supported?: string[] | undefined;
|
|
96
|
+
dpop_signing_alg_values_supported?: string[] | undefined;
|
|
97
|
+
require_pushed_authorization_requests?: boolean | undefined;
|
|
98
|
+
pushed_authorization_request_endpoint?: string | undefined;
|
|
99
|
+
introspection_endpoint?: string | undefined;
|
|
100
|
+
introspection_endpoint_auth_methods_supported?: string[] | undefined;
|
|
101
|
+
introspection_endpoint_auth_signing_alg_values_supported?: string[] | undefined;
|
|
102
|
+
authorization_challenge_endpoint?: string | undefined;
|
|
103
|
+
'pre-authorized_grant_anonymous_access_supported'?: boolean | undefined;
|
|
104
|
+
client_attestation_pop_nonce_required?: boolean | undefined;
|
|
105
|
+
} | {
|
|
106
|
+
issuer: string;
|
|
107
|
+
token_endpoint: string;
|
|
108
|
+
'pre-authorized_grant_anonymous_access_supported': true;
|
|
109
|
+
jwks_uri: string;
|
|
110
|
+
grant_types_supported: ("authorization_code" | "urn:ietf:params:oauth:grant-type:pre-authorized_code")[];
|
|
111
|
+
authorization_challenge_endpoint: string;
|
|
112
|
+
authorization_endpoint: string;
|
|
113
|
+
pushed_authorization_request_endpoint: string;
|
|
114
|
+
require_pushed_authorization_requests: true;
|
|
115
|
+
code_challenge_methods_supported: PkceCodeChallengeMethod[];
|
|
116
|
+
dpop_signing_alg_values_supported: ["HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256" | "ES384" | "ES512" | "PS256" | "PS384" | "PS512" | "EdDSA" | "Ed25519" | "ES256K", ...("HS256" | "HS384" | "HS512" | "RS256" | "RS384" | "RS512" | "ES256" | "ES384" | "ES512" | "PS256" | "PS384" | "PS512" | "EdDSA" | "Ed25519" | "ES256K")[]] | undefined;
|
|
117
|
+
})[];
|
|
118
|
+
knownCredentialConfigurations: OpenId4VciCredentialConfigurationsSupportedWithFormats;
|
|
119
|
+
signedMetadataJwt: string | undefined;
|
|
120
|
+
}>;
|
|
121
|
+
createNonce(agentContext: AgentContext, issuer: OpenId4VcIssuerRecord): Promise<{
|
|
122
|
+
cNonce: string;
|
|
123
|
+
cNonceExpiresAt: Date;
|
|
124
|
+
cNonceExpiresInSeconds: number;
|
|
125
|
+
}>;
|
|
126
|
+
/**
|
|
127
|
+
* @todo nonces are very short lived (1 min), but it might be nice to also cache the nonces
|
|
128
|
+
* in the cache if we have 'seen' them. They will only be in the cache for a short time
|
|
129
|
+
* and it will prevent replay
|
|
130
|
+
*/
|
|
131
|
+
private verifyNonce;
|
|
132
|
+
createRefreshToken(agentContext: AgentContext, issuer: OpenId4VcIssuerRecord, options: {
|
|
133
|
+
issuerState?: string;
|
|
134
|
+
preAuthorizedCode?: string;
|
|
135
|
+
dpop?: {
|
|
136
|
+
jwk: Jwk;
|
|
137
|
+
};
|
|
138
|
+
}): Promise<string>;
|
|
139
|
+
parseRefreshToken(token: string): {
|
|
140
|
+
jwt: Jwt;
|
|
141
|
+
expiresAt: Date;
|
|
142
|
+
issuerState: string | undefined;
|
|
143
|
+
preAuthorizedCode: string | undefined;
|
|
144
|
+
dpop: {
|
|
145
|
+
jwkThumbprint: string;
|
|
146
|
+
} | undefined;
|
|
147
|
+
};
|
|
148
|
+
verifyRefreshToken(agentContext: AgentContext, issuer: OpenId4VcIssuerRecord, parsedRefreshToken: ReturnType<OpenId4VcIssuerService['parseRefreshToken']>, options?: {
|
|
149
|
+
dpop?: {
|
|
150
|
+
jwkThumbprint?: string;
|
|
151
|
+
};
|
|
152
|
+
}): Promise<void>;
|
|
153
|
+
getIssuer(agentContext: AgentContext, options?: {
|
|
154
|
+
issuanceSessionId?: string;
|
|
155
|
+
}): Openid4vciIssuer;
|
|
156
|
+
getOauth2Client(agentContext: AgentContext, issuerRecord?: OpenId4VcIssuerRecord): Oauth2Client;
|
|
157
|
+
getOauth2AuthorizationServer(agentContext: AgentContext, options?: {
|
|
158
|
+
issuanceSessionId?: string;
|
|
159
|
+
}): Oauth2AuthorizationServer;
|
|
160
|
+
getResourceServer(agentContext: AgentContext, issuerRecord: OpenId4VcIssuerRecord): Oauth2ResourceServer;
|
|
161
|
+
/**
|
|
162
|
+
* Update the expiresAt field of the issuance session to ensure it remains
|
|
163
|
+
* valid during the deferral process. We set it to the maximum between the
|
|
164
|
+
* current expiresAt and the current time plus the configured expiration
|
|
165
|
+
* time or the interval multiplied by 2. This accounts for the chance of multiple
|
|
166
|
+
* deferrals happening, with longer intervals.
|
|
167
|
+
*/
|
|
168
|
+
private updateExpiresAt;
|
|
169
|
+
/**
|
|
170
|
+
* Update the record to a new state and emit an state changed event. Also updates the record
|
|
171
|
+
* in storage.
|
|
172
|
+
*/
|
|
173
|
+
updateState(agentContext: AgentContext, issuanceSession: OpenId4VcIssuanceSessionRecord, newState: OpenId4VcIssuanceSessionState): Promise<void>;
|
|
174
|
+
emitStateChangedEvent(agentContext: AgentContext, issuanceSession: OpenId4VcIssuanceSessionRecord, previousState: OpenId4VcIssuanceSessionState | null): void;
|
|
175
|
+
private getGrantsFromConfig;
|
|
176
|
+
private getCredentialConfigurationsForRequest;
|
|
177
|
+
private getSignedCredentials;
|
|
178
|
+
private signW3cCredential;
|
|
179
|
+
}
|
|
180
|
+
//#endregion
|
|
181
|
+
export { OpenId4VcIssuerService };
|
|
182
|
+
//# sourceMappingURL=OpenId4VcIssuerService.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpenId4VcIssuerService.d.mts","names":[],"sources":["../../src/openid4vc-issuer/OpenId4VcIssuerService.ts"],"sourcesContent":[],"mappings":"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"}
|