Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

chore(release): new version #9

Open
wants to merge 2 commits into
base: main
Choose a base branch
from
Open

Conversation

github-actions[bot]
Copy link

@github-actions github-actions bot commented Feb 21, 2025

This PR was opened by the Changesets release GitHub action. When you're ready to do a release, you can merge this and the packages will be published to npm automatically. If you're not ready to do a release yet, that's fine, whenever you add more changesets to main, this PR will be updated.

Releases

@credo-ts/[email protected]

Minor Changes

  • 9df09fa: - messagehandler should return undefined if it doesn't want to response with a message

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

  • 897c834: DIDComm has been extracted out of the Core. This means that now all DIDComm related modules (e.g. proofs, credentials) must be explicitly added when creating an Agent instance. Therefore, their API will be accesable under agent.modules.[moduleAPI] instead of agent.[moduleAPI]. Some Agent DIDComm-related properties and methods where also moved to the API of a new DIDComm module (e.g. agent.registerInboundTransport turned into agent.modules.didcomm.registerInboundTransport).

    Example of DIDComm Agent

    Previously:

         const config = {
          label: name,
          endpoints: ['https://myendpoint'],
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        this.agent.registerInboundTransport(new HttpInboundTransport({ port }))
        this.agent.registerOutboundTransport(new HttpOutboundTransport())

    Now:

         const config = {
          label: name,
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            ...getDefaultDidcommModules({ endpoints: ['https://myendpoint'] }),
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        agent.modules.didcomm.registerInboundTransport(new HttpInboundTransport({ port }))
        agent.modules.didcomm.registerOutboundTransport(new HttpOutboundTransport())

Patch Changes

@credo-ts/[email protected]

Minor Changes

  • 297d209: - Rely on Uint8Array instead of Buffer for internal key bytes representation

    • Remove dependency on external Big Number libraries
    • Default to use of uncompressed keys for Secp256k1, Secp256r1, Secp384r1 and Secp521r1
  • 9f78a6e: upgrade anoncreds wrapper to 0.3

  • 9df09fa: - messagehandler should return undefined if it doesn't want to response with a message

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

  • 897c834: DIDComm has been extracted out of the Core. This means that now all DIDComm related modules (e.g. proofs, credentials) must be explicitly added when creating an Agent instance. Therefore, their API will be accesable under agent.modules.[moduleAPI] instead of agent.[moduleAPI]. Some Agent DIDComm-related properties and methods where also moved to the API of a new DIDComm module (e.g. agent.registerInboundTransport turned into agent.modules.didcomm.registerInboundTransport).

    Example of DIDComm Agent

    Previously:

         const config = {
          label: name,
          endpoints: ['https://myendpoint'],
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        this.agent.registerInboundTransport(new HttpInboundTransport({ port }))
        this.agent.registerOutboundTransport(new HttpOutboundTransport())

    Now:

         const config = {
          label: name,
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            ...getDefaultDidcommModules({ endpoints: ['https://myendpoint'] }),
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        agent.modules.didcomm.registerInboundTransport(new HttpInboundTransport({ port }))
        agent.modules.didcomm.registerOutboundTransport(new HttpOutboundTransport())

Patch Changes

@credo-ts/[email protected]

Minor Changes

  • 297d209: - Rely on Uint8Array instead of Buffer for internal key bytes representation

    • Remove dependency on external Big Number libraries
    • Default to use of uncompressed keys for Secp256k1, Secp256r1, Secp384r1 and Secp521r1
  • 9df09fa: - messagehandler should return undefined if it doesn't want to response with a message

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

  • 897c834: DIDComm has been extracted out of the Core. This means that now all DIDComm related modules (e.g. proofs, credentials) must be explicitly added when creating an Agent instance. Therefore, their API will be accesable under agent.modules.[moduleAPI] instead of agent.[moduleAPI]. Some Agent DIDComm-related properties and methods where also moved to the API of a new DIDComm module (e.g. agent.registerInboundTransport turned into agent.modules.didcomm.registerInboundTransport).

    Example of DIDComm Agent

    Previously:

         const config = {
          label: name,
          endpoints: ['https://myendpoint'],
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        this.agent.registerInboundTransport(new HttpInboundTransport({ port }))
        this.agent.registerOutboundTransport(new HttpOutboundTransport())

    Now:

         const config = {
          label: name,
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            ...getDefaultDidcommModules({ endpoints: ['https://myendpoint'] }),
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        agent.modules.didcomm.registerInboundTransport(new HttpInboundTransport({ port }))
        agent.modules.didcomm.registerOutboundTransport(new HttpOutboundTransport())
  • 281471e: - depend on @openwallet-foundation/askar instead of @hyperledger/aries-askar

Patch Changes

  • 297d209: - Remove usage of Big Number libraries and rely on native implementations
    • By default rely on uncompressed keys instead of compressed (for P256, P384, P521 and K256)
    • Utilze Uint8Array more instead of Buffer (i.e. for internally representing a key)
  • 13cd8cb: feat: support node 22
  • 9f78a6e: allow A128GCM as allowed value for ECDH encryption
  • a53fc54: feat: support A128CBC-HS256 encryption algorithm for JWE
  • Updated dependencies [2d10ec3]
  • Updated dependencies [6d83136]
  • Updated dependencies [312a7b2]
  • Updated dependencies [297d209]
  • Updated dependencies [11827cc]
  • Updated dependencies [9f78a6e]
  • Updated dependencies [297d209]
  • Updated dependencies [bea846b]
  • Updated dependencies [13cd8cb]
  • Updated dependencies [15acc49]
  • Updated dependencies [dca4fdf]
  • Updated dependencies [14673b1]
  • Updated dependencies [607659a]
  • Updated dependencies [44b1866]
  • Updated dependencies [5f08bc6]
  • Updated dependencies [27f971d]
  • Updated dependencies [2d10ec3]
  • Updated dependencies [1a4182e]
  • Updated dependencies [9f78a6e]
  • Updated dependencies [decbcac]
  • Updated dependencies [9df09fa]
  • Updated dependencies [70c849d]
  • Updated dependencies [897c834]
  • Updated dependencies [a53fc54]
  • Updated dependencies [edd2edc]
  • Updated dependencies [9f78a6e]
  • Updated dependencies [e80794b]
  • Updated dependencies [9f78a6e]
  • Updated dependencies [9f78a6e]
  • Updated dependencies [decbcac]
  • Updated dependencies [27f971d]

@credo-ts/[email protected]

Minor Changes

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

  • 897c834: DIDComm has been extracted out of the Core. This means that now all DIDComm related modules (e.g. proofs, credentials) must be explicitly added when creating an Agent instance. Therefore, their API will be accesable under agent.modules.[moduleAPI] instead of agent.[moduleAPI]. Some Agent DIDComm-related properties and methods where also moved to the API of a new DIDComm module (e.g. agent.registerInboundTransport turned into agent.modules.didcomm.registerInboundTransport).

    Example of DIDComm Agent

    Previously:

         const config = {
          label: name,
          endpoints: ['https://myendpoint'],
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        this.agent.registerInboundTransport(new HttpInboundTransport({ port }))
        this.agent.registerOutboundTransport(new HttpOutboundTransport())

    Now:

         const config = {
          label: name,
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            ...getDefaultDidcommModules({ endpoints: ['https://myendpoint'] }),
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        agent.modules.didcomm.registerInboundTransport(new HttpInboundTransport({ port }))
        agent.modules.didcomm.registerOutboundTransport(new HttpOutboundTransport())

Patch Changes

@credo-ts/[email protected]

Minor Changes

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

  • 897c834: DIDComm has been extracted out of the Core. This means that now all DIDComm related modules (e.g. proofs, credentials) must be explicitly added when creating an Agent instance. Therefore, their API will be accesable under agent.modules.[moduleAPI] instead of agent.[moduleAPI]. Some Agent DIDComm-related properties and methods where also moved to the API of a new DIDComm module (e.g. agent.registerInboundTransport turned into agent.modules.didcomm.registerInboundTransport).

    Example of DIDComm Agent

    Previously:

         const config = {
          label: name,
          endpoints: ['https://myendpoint'],
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        this.agent.registerInboundTransport(new HttpInboundTransport({ port }))
        this.agent.registerOutboundTransport(new HttpOutboundTransport())

    Now:

         const config = {
          label: name,
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            ...getDefaultDidcommModules({ endpoints: ['https://myendpoint'] }),
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        agent.modules.didcomm.registerInboundTransport(new HttpInboundTransport({ port }))
        agent.modules.didcomm.registerOutboundTransport(new HttpOutboundTransport())

Patch Changes

@credo-ts/[email protected]

Minor Changes

  • 312a7b2: createDeviceResponse now returns bytes and not base64 encoded bytes

  • 297d209: - Rely on Uint8Array instead of Buffer for internal key bytes representation

    • Remove dependency on external Big Number libraries
    • Default to use of uncompressed keys for Secp256k1, Secp256r1, Secp384r1 and Secp521r1
  • bea846b: refactor: split async getData method on x509 certificate to sync .data getter and async getThumbprint method

  • 15acc49: Changed the SubjectKeyIdentifier and the AuthorityKeyIdentifier to a SHA-1 hash of the public key

  • dca4fdf: - X.509 self-signed certificate creation is now done via the agent.x509.createCertificate API where the subjectPublicKey is not supplied or equal to the authorityKey

    • allow to create more complex X.509 certificates
  • 14673b1: Remove dependency on abort-controller library. Abort Controller has been supported on all platforms for quite some time already.

  • 5f08bc6: feat: allow dynamicaly providing x509 certificates for all types of verifications

  • 1a4182e: - Included CRLDistributionPoints as extension

    • Access to extensions and adding them made easier
  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

  • 897c834: DIDComm has been extracted out of the Core. This means that now all DIDComm related modules (e.g. proofs, credentials) must be explicitly added when creating an Agent instance. Therefore, their API will be accesable under agent.modules.[moduleAPI] instead of agent.[moduleAPI]. Some Agent DIDComm-related properties and methods where also moved to the API of a new DIDComm module (e.g. agent.registerInboundTransport turned into agent.modules.didcomm.registerInboundTransport).

    Example of DIDComm Agent

    Previously:

         const config = {
          label: name,
          endpoints: ['https://myendpoint'],
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        this.agent.registerInboundTransport(new HttpInboundTransport({ port }))
        this.agent.registerOutboundTransport(new HttpOutboundTransport())

    Now:

         const config = {
          label: name,
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            ...getDefaultDidcommModules({ endpoints: ['https://myendpoint'] }),
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        agent.modules.didcomm.registerInboundTransport(new HttpInboundTransport({ port }))
        agent.modules.didcomm.registerOutboundTransport(new HttpOutboundTransport())
  • 9f78a6e: fixed an issue where expectedUpdate in an mdoc would be set to undefined. This is a breaking change as previously issued mDOCs containing expectedUpdate values of undefined are not valid anymore, and will cause issues during verification

  • 9f78a6e: refactor: changed the DIF Presentation Exchnage returned credential entry type to claimFormat to better align with the DC API. In addition the selected credentials type for DIF PEX was changes from an array of credential records, to an object containig the record, claimFormat and disclosed payload

  • decbcac: The mdoc device response now verifies each document separately based on the trusted certificates callback. This ensures only the trusted certificates for that specific document are used. In addition, only ONE document per device response is supported for openid4vp verifications from now on, this is expected behaviour according to ISO 18013-7

  • 27f971d: feat: support ISO 18013-7 Draft 2024-03-12.

    This mostly changes the structure of the calculated session transcript bytes for usage with OpenID4VP. This is a breaking change and incompatible with older versions.

Patch Changes

  • 2d10ec3: fix: presentation exchange handling when multiple mdocs in presentation definition
  • 6d83136: fix: support verification of certificate chain where the root certificate is not included in the certificate chain but present in the trusted certificates
  • 11827cc: allow kid (when not a did) to be combined with x5c/jwk header params in JWT/JWS. This is a pattern commonly used and breaks interop with Credo.
  • 9f78a6e: fix: support the case where non-self-signed x509 certificate is in the list of trusted certificates. It also fixes a bug where it would take the incorrect certificates for validation
  • 297d209: - Remove usage of Big Number libraries and rely on native implementations
    • By default rely on uncompressed keys instead of compressed (for P256, P384, P521 and K256)
    • Utilze Uint8Array more instead of Buffer (i.e. for internally representing a key)
  • 13cd8cb: feat: support node 22
  • 607659a: feat: fetch sd-jwt type metadata
  • 44b1866: feat: support verification of x.509 certificate with different hash length than key size (e.g. P384 with SHA256).
  • 27f971d: feat: support EdDSA, P384 and P512 for mdoc holder binding
  • 2d10ec3: fix: issue where all available credentials were selected for queried DIF PEX definition. Now it only selects needsCount credentials, so it won't disclose more credentials than neccesary.
  • 9f78a6e: allow A128GCM as allowed value for ECDH encryption
  • decbcac: feat: allow extracting the deviceKeyJwk from an mdoc
  • 9df09fa: - messagehandler should return undefined if it doesn't want to response with a message
  • a53fc54: feat: support A128CBC-HS256 encryption algorithm for JWE
  • edd2edc: feat(mdoc): support creating device response with multiple mdocs for usage in proximity flow
  • e80794b: fix: error during shutdown of agent in React Native due to usage of unavailable event method on socket .once
  • 9f78a6e: feat: add claimFormat to Mdoc, MdocDeviceResponse and SdJwtVc to allow for easier type narrowing

@credo-ts/[email protected]

Minor Changes

  • 0d877f5: Now using did:peer:4 by default when creating DID Exchange Requests as response to an Out of Band invitation.

    It is possible to return to previous behaviour by manually setting peerNumAlgoForDidExchangeRequests option in DIDComm Connections module config.

  • 9df09fa: - messagehandler should return undefined if it doesn't want to response with a message

  • 897c834: DIDComm has been extracted out of the Core. This means that now all DIDComm related modules (e.g. proofs, credentials) must be explicitly added when creating an Agent instance. Therefore, their API will be accesable under agent.modules.[moduleAPI] instead of agent.[moduleAPI]. Some Agent DIDComm-related properties and methods where also moved to the API of a new DIDComm module (e.g. agent.registerInboundTransport turned into agent.modules.didcomm.registerInboundTransport).

    Example of DIDComm Agent

    Previously:

         const config = {
          label: name,
          endpoints: ['https://myendpoint'],
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        this.agent.registerInboundTransport(new HttpInboundTransport({ port }))
        this.agent.registerOutboundTransport(new HttpOutboundTransport())

    Now:

         const config = {
          label: name,
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            ...getDefaultDidcommModules({ endpoints: ['https://myendpoint'] }),
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        agent.modules.didcomm.registerInboundTransport(new HttpInboundTransport({ port }))
        agent.modules.didcomm.registerOutboundTransport(new HttpOutboundTransport())

Patch Changes

@credo-ts/[email protected]

Minor Changes

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

  • 897c834: DIDComm has been extracted out of the Core. This means that now all DIDComm related modules (e.g. proofs, credentials) must be explicitly added when creating an Agent instance. Therefore, their API will be accesable under agent.modules.[moduleAPI] instead of agent.[moduleAPI]. Some Agent DIDComm-related properties and methods where also moved to the API of a new DIDComm module (e.g. agent.registerInboundTransport turned into agent.modules.didcomm.registerInboundTransport).

    Example of DIDComm Agent

    Previously:

         const config = {
          label: name,
          endpoints: ['https://myendpoint'],
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        this.agent.registerInboundTransport(new HttpInboundTransport({ port }))
        this.agent.registerOutboundTransport(new HttpOutboundTransport())

    Now:

         const config = {
          label: name,
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            ...getDefaultDidcommModules({ endpoints: ['https://myendpoint'] }),
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        agent.modules.didcomm.registerInboundTransport(new HttpInboundTransport({ port }))
        agent.modules.didcomm.registerOutboundTransport(new HttpOutboundTransport())

Patch Changes

@credo-ts/[email protected]

Minor Changes

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native
  • 281471e: - depend on @openwallet-foundation/askar instead of @hyperledger/aries-askar

Patch Changes

@credo-ts/[email protected]

Minor Changes

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

  • 897c834: DIDComm has been extracted out of the Core. This means that now all DIDComm related modules (e.g. proofs, credentials) must be explicitly added when creating an Agent instance. Therefore, their API will be accesable under agent.modules.[moduleAPI] instead of agent.[moduleAPI]. Some Agent DIDComm-related properties and methods where also moved to the API of a new DIDComm module (e.g. agent.registerInboundTransport turned into agent.modules.didcomm.registerInboundTransport).

    Example of DIDComm Agent

    Previously:

         const config = {
          label: name,
          endpoints: ['https://myendpoint'],
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        this.agent.registerInboundTransport(new HttpInboundTransport({ port }))
        this.agent.registerOutboundTransport(new HttpOutboundTransport())

    Now:

         const config = {
          label: name,
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            ...getDefaultDidcommModules({ endpoints: ['https://myendpoint'] }),
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        agent.modules.didcomm.registerInboundTransport(new HttpInboundTransport({ port }))
        agent.modules.didcomm.registerOutboundTransport(new HttpOutboundTransport())

Patch Changes

@credo-ts/[email protected]

Minor Changes

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

  • 897c834: DIDComm has been extracted out of the Core. This means that now all DIDComm related modules (e.g. proofs, credentials) must be explicitly added when creating an Agent instance. Therefore, their API will be accesable under agent.modules.[moduleAPI] instead of agent.[moduleAPI]. Some Agent DIDComm-related properties and methods where also moved to the API of a new DIDComm module (e.g. agent.registerInboundTransport turned into agent.modules.didcomm.registerInboundTransport).

    Example of DIDComm Agent

    Previously:

         const config = {
          label: name,
          endpoints: ['https://myendpoint'],
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        this.agent.registerInboundTransport(new HttpInboundTransport({ port }))
        this.agent.registerOutboundTransport(new HttpOutboundTransport())

    Now:

         const config = {
          label: name,
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            ...getDefaultDidcommModules({ endpoints: ['https://myendpoint'] }),
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        agent.modules.didcomm.registerInboundTransport(new HttpInboundTransport({ port }))
        agent.modules.didcomm.registerOutboundTransport(new HttpOutboundTransport())

Patch Changes

@credo-ts/[email protected]

Minor Changes

  • 81dbbec: fix: typo statefull -> stateful in configuration of OpenID4VCI module

  • 9f78a6e: feat(openid4vc): openid4vp alpha

  • 5f08bc6: feat: allow dynamicaly providing x509 certificates for all types of verifications

  • 9f78a6e: resolveIssuanceAuthorizationRequest has been renamed to resolveOpenId4VciAuthorizationRequest

  • 9f78a6e: feat(openid4vc): add support for new dcql query syntax for oid4vp

  • 9f78a6e: refactor: Support for SIOPv2 has been removed and all interfaces and classes that included Siop in the name (such as OpenId4VcSiopHolderService) have been renamed to OpenId4Vp (so OpenId4VpHolderService)

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

  • 17ec6b8: feat(openid4vc): oid4vci authorization code flow, presentation during issuance and batch issuance.

    This is a big change to OpenID4VCI in Credo, with the neccsary breaking changes since we first added it to the framework. Over time the spec has changed significantly, but also our understanding of the standards and protocols.

    Authorization Code Flow
    Credo now supports the authorization code flow, for both issuer and holder. An issuer can configure multiple authorization servers, and work with external authorization servers as well. The integration is based on OAuth2, with several extension specifications, mainly the OAuth2 JWT Access Token Profile, as well as Token Introspection (for opaque access tokens). Verification works out of the box, as longs as the authorization server has a jwks_uri configured. For Token Introspection it's also required to provide a clientId and clientSecret in the authorization server config.

    To use an external authorization server, the authorization server MUST include the issuer_state parameter from the credential offer in the access token. Otherwise it's not possible for Credo to correlate the authorization session to the offer session.

    The demo-openid contains an example with external authorization server, which can be used as reference. The Credo authorization server supports DPoP and PKCE.

    Batch Issuance
    The credential request to credential mapper has been updated to support multiple proofs, and also multiple credential instances. The client can now also handle batch issuance.

    Presentation During Issuance
    The presenation during issuance allows to request presentation using OID4VP before granting authorization for issuance of one or more credentials. This flow is automatically handled by the resolveAuthorizationRequest method on the oid4vci holder service.

  • 9f78a6e: OpenID4VP draft 24 is supported along with transaction data, DCQL, and other features. This has impact on the API, but draft 21 is still supported by providing the version param when creating a request

  • 9f78a6e: the default value for responseMode has changed from direct_post (unencrypted) to direct_post.jwt (encrypted)

  • 9f78a6e: fixed an issue where expectedUpdate in an mdoc would be set to undefined. This is a breaking change as previously issued mDOCs containing expectedUpdate values of undefined are not valid anymore, and will cause issues during verification

  • 9f78a6e: refactor: changed the DIF Presentation Exchnage returned credential entry type to claimFormat to better align with the DC API. In addition the selected credentials type for DIF PEX was changes from an array of credential records, to an object containig the record, claimFormat and disclosed payload

  • decbcac: The mdoc device response now verifies each document separately based on the trusted certificates callback. This ensures only the trusted certificates for that specific document are used. In addition, only ONE document per device response is supported for openid4vp verifications from now on, this is expected behaviour according to ISO 18013-7

  • 9f78a6e: support for creating authorization requests based on x509_san_uri client id scheme has been removed. The holder services still support the client id scheme. The client id scheme is removed starting from draft 25 (and replaced with x509_hash, which will be supported in a future version), and is incompatible with the new url structure of Credo.

Patch Changes

@credo-ts/[email protected]

Minor Changes

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

  • 897c834: DIDComm has been extracted out of the Core. This means that now all DIDComm related modules (e.g. proofs, credentials) must be explicitly added when creating an Agent instance. Therefore, their API will be accesable under agent.modules.[moduleAPI] instead of agent.[moduleAPI]. Some Agent DIDComm-related properties and methods where also moved to the API of a new DIDComm module (e.g. agent.registerInboundTransport turned into agent.modules.didcomm.registerInboundTransport).

    Example of DIDComm Agent

    Previously:

         const config = {
          label: name,
          endpoints: ['https://myendpoint'],
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        this.agent.registerInboundTransport(new HttpInboundTransport({ port }))
        this.agent.registerOutboundTransport(new HttpOutboundTransport())

    Now:

         const config = {
          label: name,
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            ...getDefaultDidcommModules({ endpoints: ['https://myendpoint'] }),
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        agent.modules.didcomm.registerInboundTransport(new HttpInboundTransport({ port }))
        agent.modules.didcomm.registerOutboundTransport(new HttpOutboundTransport())

Patch Changes

@credo-ts/[email protected]

Minor Changes

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

Patch Changes

@credo-ts/[email protected]

Minor Changes

  • 70c849d: update target for tsc compiler to ES2020. Generally this should not have an impact for the supported environments (Node.JS / React Native). However this will have to be tested in React Native

  • 897c834: DIDComm has been extracted out of the Core. This means that now all DIDComm related modules (e.g. proofs, credentials) must be explicitly added when creating an Agent instance. Therefore, their API will be accesable under agent.modules.[moduleAPI] instead of agent.[moduleAPI]. Some Agent DIDComm-related properties and methods where also moved to the API of a new DIDComm module (e.g. agent.registerInboundTransport turned into agent.modules.didcomm.registerInboundTransport).

    Example of DIDComm Agent

    Previously:

         const config = {
          label: name,
          endpoints: ['https://myendpoint'],
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        this.agent.registerInboundTransport(new HttpInboundTransport({ port }))
        this.agent.registerOutboundTransport(new HttpOutboundTransport())

    Now:

         const config = {
          label: name,
          walletConfig: {
            id: name,
            key: name,
          },
        } satisfies InitConfig
    
        const agent = new Agent({
          config,
          dependencies: agentDependencies,
          modules: {
            ...getDefaultDidcommModules({ endpoints: ['https://myendpoint'] }),
            connections: new ConnectionsModule({
               autoAcceptConnections: true,
            })
          })
        agent.modules.didcomm.registerInboundTransport(new HttpInboundTransport({ port }))
        agent.modules.didcomm.registerOutboundTransport(new HttpOutboundTransport())

Patch Changes

@github-actions github-actions bot force-pushed the changeset-release/main branch from 7adb3d2 to cabd718 Compare March 3, 2025 09:23
@github-actions github-actions bot force-pushed the changeset-release/main branch from cabd718 to 2151f27 Compare March 11, 2025 10:38
Signed-off-by: "github-actions[bot]" <"41898282+github-actions[bot]@users.noreply.github.com">
@github-actions github-actions bot force-pushed the changeset-release/main branch from 2151f27 to b5230ca Compare March 25, 2025 10:53
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

Successfully merging this pull request may close these issues.

0 participants