IO Wallet SDK
    Preparing search index...
    • Parses metadata using the schema for a specific IT-Wallet version.

      Type Parameters

      • V extends ItWalletSpecsVersion

      Parameters

      • metadata: unknown

        Metadata object to parse.

      • version: V

        IT-Wallet specification version to validate against.

      Returns output<
          {
              V1_0: ZodObject<
                  {
                      federation_entity: ZodOptional<
                          ZodObject<
                              {
                                  contacts: ZodOptional<ZodArray<ZodString>>;
                                  federation_fetch_endpoint: ZodOptional<ZodURL>;
                                  federation_historical_keys_endpoint: ZodOptional<ZodURL>;
                                  federation_list_endpoint: ZodOptional<ZodURL>;
                                  federation_resolve_endpoint: ZodOptional<ZodURL>;
                                  federation_trust_mark_endpoint: ZodOptional<ZodURL>;
                                  federation_trust_mark_list_endpoint: ZodOptional<ZodURL>;
                                  federation_trust_mark_status_endpoint: ZodOptional<ZodURL>;
                                  homepage_uri: ZodOptional<ZodURL>;
                                  jwks: ZodOptional<ZodObject<{ keys: ... }, $strip>>;
                                  jwks_uri: ZodOptional<ZodURL>;
                                  logo_uri: ZodOptional<ZodURL>;
                                  organization_name: ZodOptional<ZodString>;
                                  policy_uri: ZodOptional<ZodURL>;
                                  signed_jwks_uri: ZodOptional<ZodURL>;
                                  tos_uri: ZodOptional<ZodURL>;
                              },
                              $loose,
                          >,
                      >;
                      oauth_authorization_server: ZodOptional<
                          ZodObject<
                              {
                                  acr_values_supported: ZodArray<ZodString>;
                                  authorization_endpoint: ZodURL;
                                  authorization_signing_alg_values_supported: ZodArray<ZodString>;
                                  client_registration_types_supported: ZodArray<
                                      ZodUnion<readonly [(...), (...)]>,
                                  >;
                                  code_challenge_methods_supported: ZodArray<ZodString>;
                                  grant_types_supported: ZodArray<ZodString>;
                                  issuer: ZodURL;
                                  jwks: ZodObject<{ keys: ZodArray<(...)> }, $strip>;
                                  pushed_authorization_request_endpoint: ZodURL;
                                  request_object_signing_alg_values_supported: ZodArray<ZodString>;
                                  require_signed_request_object: ZodOptional<ZodBoolean>;
                                  response_modes_supported: ZodArray<ZodUnion<readonly [(...), (...)]>>;
                                  response_types_supported: ZodArray<ZodString>;
                                  scopes_supported: ZodArray<ZodString>;
                                  token_endpoint: ZodURL;
                                  token_endpoint_auth_methods_supported: ZodArray<ZodString>;
                                  token_endpoint_auth_signing_alg_values_supported: ZodArray<ZodString>;
                              },
                              $loose,
                          >,
                      >;
                      openid_credential_issuer: ZodOptional<
                          ZodObject<
                              {
                                  authorization_servers: ZodOptional<ZodTuple<[(...)], ZodURL>>;
                                  batch_credential_issuance: ZodObject<
                                      { batch_size: ZodNumber },
                                      $strip,
                                  >;
                                  credential_configurations_supported: ZodRecord<
                                      ZodString,
                                      ZodIntersection<
                                          ZodDiscriminatedUnion<(...), (...)>,
                                          ZodObject<(...), (...)>,
                                      >,
                                  >;
                                  credential_endpoint: ZodURL;
                                  credential_hash_alg_supported: ZodString;
                                  credential_issuer: ZodURL;
                                  deferred_credential_endpoint: ZodURL;
                                  display: ZodArray<ZodObject<{ locale: ...; name: ... }, $strip>>;
                                  evidence_supported: ZodArray<ZodString>;
                                  jwks: ZodObject<{ keys: ZodArray<(...)> }, $strip>;
                                  nonce_endpoint: ZodURL;
                                  notification_endpoint: ZodURL;
                                  revocation_endpoint: ZodURL;
                                  status_assertion_endpoint: ZodURL;
                                  status_attestation_endpoint: ZodURL;
                                  trust_frameworks_supported: ZodArray<
                                      ZodUnion<readonly [(...), (...), (...)]>,
                                  >;
                              },
                              $loose,
                          >,
                      >;
                      openid_credential_verifier: ZodOptional<
                          ZodObject<
                              {
                                  application_type: ZodLiteral<"web">;
                                  authorization_encrypted_response_alg: ZodString;
                                  authorization_encrypted_response_enc: ZodString;
                                  authorization_signed_response_alg: ZodString;
                                  client_id: ZodURL;
                                  client_name: ZodString;
                                  erasure_endpoint: ZodOptional<ZodURL>;
                                  jwks: ZodObject<{ keys: ZodArray<(...)> }, $strip>;
                                  redirect_uris: ZodOptional<ZodArray<ZodURL>>;
                                  request_uris: ZodArray<ZodURL>;
                                  response_uris: ZodArray<ZodURL>;
                                  vp_formats: ZodRecord<
                                      ZodString,
                                      ZodObject<{ alg: ...; "sd-jwt_alg_values": ... }, $strip>,
                                  >;
                              },
                              $loose,
                          >,
                      >;
                      wallet_provider: ZodOptional<
                          ZodObject<
                              {
                                  jwks: ZodOptional<ZodObject<{ keys: ... }, $strip>>;
                                  jwks_uri: ZodOptional<ZodURL>;
                                  signed_jwks_uri: ZodOptional<ZodURL>;
                              },
                              $loose,
                          >,
                      >;
                  },
                  $strict,
              >;
              V1_3: ZodObject<
                  {
                      federation_entity: ZodOptional<
                          ZodObject<
                              {
                                  contacts: ZodOptional<ZodArray<ZodString>>;
                                  federation_fetch_endpoint: ZodOptional<ZodURL>;
                                  federation_historical_keys_endpoint: ZodOptional<ZodURL>;
                                  federation_list_endpoint: ZodOptional<ZodURL>;
                                  federation_resolve_endpoint: ZodOptional<ZodURL>;
                                  federation_trust_mark_endpoint: ZodOptional<ZodURL>;
                                  federation_trust_mark_list_endpoint: ZodOptional<ZodURL>;
                                  federation_trust_mark_status_endpoint: ZodOptional<ZodURL>;
                                  homepage_uri: ZodOptional<ZodURL>;
                                  jwks: ZodOptional<ZodObject<{ keys: ... }, $strip>>;
                                  jwks_uri: ZodOptional<ZodURL>;
                                  logo_uri: ZodOptional<ZodURL>;
                                  organization_name: ZodOptional<ZodString>;
                                  policy_uri: ZodOptional<ZodURL>;
                                  signed_jwks_uri: ZodOptional<ZodURL>;
                                  tos_uri: ZodOptional<ZodURL>;
                              },
                              $loose,
                          >,
                      >;
                      oauth_authorization_server: ZodOptional<
                          ZodObject<
                              {
                                  acr_values_supported: ZodArray<ZodString>;
                                  authorization_endpoint: ZodURL;
                                  authorization_signing_alg_values_supported: ZodArray<ZodString>;
                                  client_attestation_pop_signing_alg_values_supported: ZodArray<
                                      ZodString,
                                  >;
                                  client_attestation_signing_alg_values_supported: ZodArray<ZodString>;
                                  client_registration_types_supported: ZodArray<
                                      ZodUnion<readonly [(...), (...)]>,
                                  >;
                                  code_challenge_methods_supported: ZodArray<ZodString>;
                                  dpop_signing_alg_values_supported: ZodArray<ZodString>;
                                  grant_types_supported: ZodArray<ZodString>;
                                  issuer: ZodURL;
                                  jwks: ZodObject<{ keys: ZodArray<(...)> }, $strip>;
                                  pushed_authorization_request_endpoint: ZodURL;
                                  request_object_signing_alg_values_supported: ZodArray<ZodString>;
                                  require_signed_request_object: ZodLiteral<true>;
                                  response_types_supported: ZodArray<ZodString>;
                                  scopes_supported: ZodArray<ZodString>;
                                  token_endpoint: ZodURL;
                                  token_endpoint_auth_methods_supported: ZodArray<ZodString>;
                                  token_endpoint_auth_signing_alg_values_supported: ZodArray<ZodString>;
                              },
                              $loose,
                          >,
                      >;
                      openid_credential_issuer: ZodOptional<
                          ZodObject<
                              {
                                  authorization_servers: ZodOptional<ZodTuple<[(...)], ZodURL>>;
                                  batch_credential_issuance: ZodOptional<
                                      ZodObject<{ batch_size: ... }, $strip>,
                                  >;
                                  credential_configurations_supported: ZodRecord<
                                      ZodString,
                                      ZodIntersection<
                                          ZodDiscriminatedUnion<(...), (...)>,
                                          ZodObject<(...), (...)>,
                                      >,
                                  >;
                                  credential_endpoint: ZodURL;
                                  credential_issuer: ZodURL;
                                  deferred_credential_endpoint: ZodOptional<ZodURL>;
                                  display: ZodOptional<ZodArray<ZodObject<(...), (...)>>>;
                                  jwks: ZodObject<{ keys: ZodArray<(...)> }, $strip>;
                                  nonce_endpoint: ZodOptional<ZodURL>;
                                  notification_endpoint: ZodOptional<ZodURL>;
                                  status_list_aggregation_endpoint: ZodOptional<ZodURL>;
                                  trust_frameworks_supported: ZodArray<
                                      ZodUnion<readonly [(...), (...), (...), (...), (...)]>,
                                  >;
                              },
                              $loose,
                          >,
                      >;
                      openid_credential_verifier: ZodOptional<
                          ZodObject<
                              {
                                  application_type: ZodLiteral<"web">;
                                  client_id: ZodURL;
                                  client_name: ZodString;
                                  encrypted_response_enc_values_supported: ZodArray<ZodString>;
                                  erasure_endpoint: ZodOptional<ZodURL>;
                                  jwks: ZodObject<{ keys: ZodArray<(...)> }, $strip>;
                                  logo_uri: ZodURL;
                                  redirect_uris: ZodOptional<ZodArray<ZodURL>>;
                                  request_uris: ZodArray<ZodURL>;
                                  response_uris: ZodArray<ZodURL>;
                                  vp_formats_supported: ZodRecord<
                                      ZodString,
                                      ZodObject<
                                          {
                                              alg: ...;
                                              deviceauth_alg_values: ...;
                                              issuerauth_alg_values: ...;
                                              "kb-jwt_alg_values": ...;
                                              "sd-jwt_alg_values": ...;
                                          },
                                          $strip,
                                      >,
                                  >;
                              },
                              $loose,
                          >,
                      >;
                      wallet_solution: ZodOptional<
                          ZodObject<
                              {
                                  jwks: ZodOptional<ZodObject<{ keys: ... }, $strip>>;
                                  jwks_uri: ZodOptional<ZodURL>;
                                  logo_uri: ZodURL;
                                  signed_jwks_uri: ZodOptional<ZodURL>;
                                  wallet_metadata: ZodObject<
                                      {
                                          authorization_endpoint: ZodURL;
                                          client_id_prefixes_supported: ZodArray<(...)>;
                                          credential_offer_endpoint: ZodURL;
                                          request_object_signing_alg_values_supported: ZodArray<(...)>;
                                          response_modes_supported: ZodArray<(...)>;
                                          response_types_supported: ZodArray<(...)>;
                                          vp_formats_supported: ZodRecord<(...), (...)>;
                                          wallet_name: ZodString;
                                      },
                                      $loose,
                                  >;
                              },
                              $loose,
                          >,
                      >;
                  },
                  $strict,
              >;
              V1_4: ZodObject<
                  {
                      federation_entity: ZodOptional<
                          ZodObject<
                              {
                                  contacts: ZodOptional<ZodArray<ZodString>>;
                                  federation_fetch_endpoint: ZodOptional<ZodURL>;
                                  federation_historical_keys_endpoint: ZodOptional<ZodURL>;
                                  federation_list_endpoint: ZodOptional<ZodURL>;
                                  federation_resolve_endpoint: ZodOptional<ZodURL>;
                                  federation_trust_mark_endpoint: ZodOptional<ZodURL>;
                                  federation_trust_mark_list_endpoint: ZodOptional<ZodURL>;
                                  federation_trust_mark_status_endpoint: ZodOptional<ZodURL>;
                                  homepage_uri: ZodOptional<ZodURL>;
                                  jwks: ZodOptional<ZodObject<{ keys: ... }, $strip>>;
                                  jwks_uri: ZodOptional<ZodURL>;
                                  logo_uri: ZodOptional<ZodURL>;
                                  organization_name: ZodOptional<ZodString>;
                                  policy_uri: ZodOptional<ZodURL>;
                                  signed_jwks_uri: ZodOptional<ZodURL>;
                                  tos_uri: ZodOptional<ZodURL>;
                              },
                              $loose,
                          >,
                      >;
                      oauth_authorization_server: ZodOptional<
                          ZodObject<
                              {
                                  acr_values_supported: ZodArray<ZodString>;
                                  authorization_endpoint: ZodURL;
                                  authorization_signing_alg_values_supported: ZodArray<ZodString>;
                                  client_attestation_pop_signing_alg_values_supported: ZodArray<
                                      ZodString,
                                  >;
                                  client_attestation_signing_alg_values_supported: ZodArray<ZodString>;
                                  client_registration_types_supported: ZodArray<
                                      ZodUnion<readonly [(...), (...)]>,
                                  >;
                                  code_challenge_methods_supported: ZodArray<ZodString>;
                                  dpop_signing_alg_values_supported: ZodArray<ZodString>;
                                  grant_types_supported: ZodArray<ZodString>;
                                  issuer: ZodURL;
                                  jwks: ZodObject<{ keys: ZodArray<(...)> }, $strip>;
                                  pushed_authorization_request_endpoint: ZodURL;
                                  request_object_signing_alg_values_supported: ZodArray<ZodString>;
                                  require_signed_request_object: ZodLiteral<true>;
                                  response_types_supported: ZodArray<ZodString>;
                                  scopes_supported: ZodArray<ZodString>;
                                  token_endpoint: ZodURL;
                                  token_endpoint_auth_methods_supported: ZodArray<ZodString>;
                                  token_endpoint_auth_signing_alg_values_supported: ZodArray<ZodString>;
                              },
                              $loose,
                          >,
                      >;
                      openid_credential_issuer: ZodOptional<
                          ZodObject<
                              {
                                  authorization_servers: ZodOptional<ZodTuple<[(...)], ZodURL>>;
                                  batch_credential_issuance: ZodOptional<
                                      ZodObject<{ batch_size: ... }, $strip>,
                                  >;
                                  credential_configurations_supported: ZodRecord<
                                      ZodString,
                                      ZodIntersection<
                                          ZodDiscriminatedUnion<(...), (...)>,
                                          ZodObject<(...), (...)>,
                                      >,
                                  >;
                                  credential_endpoint: ZodURL;
                                  credential_issuer: ZodURL;
                                  deferred_credential_endpoint: ZodOptional<ZodURL>;
                                  display: ZodOptional<ZodArray<ZodObject<(...), (...)>>>;
                                  jwks: ZodObject<{ keys: ZodArray<(...)> }, $strip>;
                                  nonce_endpoint: ZodOptional<ZodURL>;
                                  notification_endpoint: ZodOptional<ZodURL>;
                                  status_list_aggregation_endpoint: ZodOptional<ZodURL>;
                                  trust_frameworks_supported: ZodArray<
                                      ZodUnion<readonly [(...), (...), (...), (...), (...)]>,
                                  >;
                              },
                              $loose,
                          >,
                      >;
                      openid_credential_verifier: ZodOptional<
                          ZodObject<
                              {
                                  application_type: ZodLiteral<"web">;
                                  client_id: ZodURL;
                                  client_name: ZodString;
                                  encrypted_response_enc_values_supported: ZodArray<ZodString>;
                                  erasure_endpoint: ZodOptional<ZodURL>;
                                  jwks: ZodObject<{ keys: ZodArray<(...)> }, $strip>;
                                  logo_uri: ZodURL;
                                  redirect_uris: ZodOptional<ZodArray<ZodURL>>;
                                  request_uris: ZodArray<ZodURL>;
                                  response_uris: ZodArray<ZodURL>;
                                  vp_formats_supported: ZodRecord<
                                      ZodString,
                                      ZodObject<
                                          {
                                              alg: ...;
                                              deviceauth_alg_values: ...;
                                              issuerauth_alg_values: ...;
                                              "kb-jwt_alg_values": ...;
                                              "sd-jwt_alg_values": ...;
                                          },
                                          $strip,
                                      >,
                                  >;
                              },
                              $loose,
                          >,
                      >;
                      wallet_solution: ZodOptional<
                          ZodObject<
                              {
                                  jwks: ZodOptional<ZodObject<{ keys: ... }, $strip>>;
                                  jwks_uri: ZodOptional<ZodURL>;
                                  logo_uri: ZodURL;
                                  signed_jwks_uri: ZodOptional<ZodURL>;
                                  wallet_metadata: ZodObject<
                                      {
                                          authorization_endpoint: ZodURL;
                                          client_id_prefixes_supported: ZodArray<(...)>;
                                          credential_offer_endpoint: ZodURL;
                                          request_object_signing_alg_values_supported: ZodArray<(...)>;
                                          response_types_supported: ZodOptional<(...)>;
                                          vp_formats_supported: ZodRecord<(...), (...)>;
                                          wallet_name: ZodString;
                                      },
                                      $loose,
                                  >;
                              },
                              $loose,
                          >,
                      >;
                  },
                  $strict,
              >;
          }[V],
      >

      Version-specific IT-Wallet metadata.

      If metadata does not satisfy the selected schema.

      If the version is unsupported.