Let |providers| be |options|'s {{CredentialRequestOptions/digital}}'s
{{DigitalCredentialRequestOptions/providers}} member.
-
If |providers| is empty, [=exception/throw=] a {{TypeError}}.
+
If |providers| [=list/is empty=], [=exception/throw=] a
+ {{TypeError}}.
+
+
Let |range| be [=list/get the indices|the indices=] of |providers|.
+
+
[=Set/For each=] |n| of the |range|:
+
+
Let |provider| be the [=list/item=] at |providers|'s |n| index.
+
+
If |provider|'s {{DigitalCredentialsProvider/protocol}} does not
+ match a [=digital credentials registry/protocol identifier=] from the
+ [=digital credentials registry=], [=exception/throw=] a
+ {{TypeError}}.
+
+
Let |dictionary| be the [=digital credentials registry/Web IDL
+ dictionary=] for |provider|'s
+ {{DigitalCredentialsProvider/protocol}}.
+
+
Let |request| be |provider|'s
+ {{DigitalCredentialsProvider/request}} [=converted to an idl
+ value|converted=] to |dictionary|. [=exception/throw|Rethrow=] any
+ exceptions.
+
+
Validate |request| against any validation rules set forth in the
+ corresponding [=digital credentials registry/specification=]. If any
+ of |request|'s members are invalid, [=exception/throw=] a
+ {{TypeError}}.
+
+
Set [=list/item=] at |providers|'s |n| index's
+ {{DigitalCredentialsProvider/request}} to |request|.
+