@@ -28,105 +28,100 @@ export const SafeUrlSchema = z
2828/**
2929 * RFC 9728 OAuth Protected Resource Metadata
3030 */
31- export const OAuthProtectedResourceMetadataSchema = z
32- . object ( {
33- resource : z . string ( ) . url ( ) ,
34- authorization_servers : z . array ( SafeUrlSchema ) . optional ( ) ,
35- jwks_uri : z . string ( ) . url ( ) . optional ( ) ,
36- scopes_supported : z . array ( z . string ( ) ) . optional ( ) ,
37- bearer_methods_supported : z . array ( z . string ( ) ) . optional ( ) ,
38- resource_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
39- resource_name : z . string ( ) . optional ( ) ,
40- resource_documentation : z . string ( ) . optional ( ) ,
41- resource_policy_uri : z . string ( ) . url ( ) . optional ( ) ,
42- resource_tos_uri : z . string ( ) . url ( ) . optional ( ) ,
43- tls_client_certificate_bound_access_tokens : z . boolean ( ) . optional ( ) ,
44- authorization_details_types_supported : z . array ( z . string ( ) ) . optional ( ) ,
45- dpop_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
46- dpop_bound_access_tokens_required : z . boolean ( ) . optional ( )
47- } )
48- . passthrough ( ) ;
31+ export const OAuthProtectedResourceMetadataSchema = z . looseObject ( {
32+ resource : z . string ( ) . url ( ) ,
33+ authorization_servers : z . array ( SafeUrlSchema ) . optional ( ) ,
34+ jwks_uri : z . string ( ) . url ( ) . optional ( ) ,
35+ scopes_supported : z . array ( z . string ( ) ) . optional ( ) ,
36+ bearer_methods_supported : z . array ( z . string ( ) ) . optional ( ) ,
37+ resource_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
38+ resource_name : z . string ( ) . optional ( ) ,
39+ resource_documentation : z . string ( ) . optional ( ) ,
40+ resource_policy_uri : z . string ( ) . url ( ) . optional ( ) ,
41+ resource_tos_uri : z . string ( ) . url ( ) . optional ( ) ,
42+ tls_client_certificate_bound_access_tokens : z . boolean ( ) . optional ( ) ,
43+ authorization_details_types_supported : z . array ( z . string ( ) ) . optional ( ) ,
44+ dpop_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
45+ dpop_bound_access_tokens_required : z . boolean ( ) . optional ( )
46+ } ) ;
4947
5048/**
5149 * RFC 8414 OAuth 2.0 Authorization Server Metadata
5250 */
53- export const OAuthMetadataSchema = z
54- . object ( {
55- issuer : z . string ( ) ,
56- authorization_endpoint : SafeUrlSchema ,
57- token_endpoint : SafeUrlSchema ,
58- registration_endpoint : SafeUrlSchema . optional ( ) ,
59- scopes_supported : z . array ( z . string ( ) ) . optional ( ) ,
60- response_types_supported : z . array ( z . string ( ) ) ,
61- response_modes_supported : z . array ( z . string ( ) ) . optional ( ) ,
62- grant_types_supported : z . array ( z . string ( ) ) . optional ( ) ,
63- token_endpoint_auth_methods_supported : z . array ( z . string ( ) ) . optional ( ) ,
64- token_endpoint_auth_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
65- service_documentation : SafeUrlSchema . optional ( ) ,
66- revocation_endpoint : SafeUrlSchema . optional ( ) ,
67- revocation_endpoint_auth_methods_supported : z . array ( z . string ( ) ) . optional ( ) ,
68- revocation_endpoint_auth_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
69- introspection_endpoint : z . string ( ) . optional ( ) ,
70- introspection_endpoint_auth_methods_supported : z . array ( z . string ( ) ) . optional ( ) ,
71- introspection_endpoint_auth_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
72- code_challenge_methods_supported : z . array ( z . string ( ) ) . optional ( )
73- } )
74- . passthrough ( ) ;
51+ export const OAuthMetadataSchema = z . looseObject ( {
52+ issuer : z . string ( ) ,
53+ authorization_endpoint : SafeUrlSchema ,
54+ token_endpoint : SafeUrlSchema ,
55+ registration_endpoint : SafeUrlSchema . optional ( ) ,
56+ scopes_supported : z . array ( z . string ( ) ) . optional ( ) ,
57+ response_types_supported : z . array ( z . string ( ) ) ,
58+ response_modes_supported : z . array ( z . string ( ) ) . optional ( ) ,
59+ grant_types_supported : z . array ( z . string ( ) ) . optional ( ) ,
60+ token_endpoint_auth_methods_supported : z . array ( z . string ( ) ) . optional ( ) ,
61+ token_endpoint_auth_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
62+ service_documentation : SafeUrlSchema . optional ( ) ,
63+ revocation_endpoint : SafeUrlSchema . optional ( ) ,
64+ revocation_endpoint_auth_methods_supported : z . array ( z . string ( ) ) . optional ( ) ,
65+ revocation_endpoint_auth_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
66+ introspection_endpoint : z . string ( ) . optional ( ) ,
67+ introspection_endpoint_auth_methods_supported : z . array ( z . string ( ) ) . optional ( ) ,
68+ introspection_endpoint_auth_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
69+ code_challenge_methods_supported : z . array ( z . string ( ) ) . optional ( )
70+ } ) ;
7571
7672/**
7773 * OpenID Connect Discovery 1.0 Provider Metadata
7874 * see: https://openid.net/specs/openid-connect-discovery-1_0.html#ProviderMetadata
7975 */
80- export const OpenIdProviderMetadataSchema = z
81- . object ( {
82- issuer : z . string ( ) ,
83- authorization_endpoint : SafeUrlSchema ,
84- token_endpoint : SafeUrlSchema ,
85- userinfo_endpoint : SafeUrlSchema . optional ( ) ,
86- jwks_uri : SafeUrlSchema ,
87- registration_endpoint : SafeUrlSchema . optional ( ) ,
88- scopes_supported : z . array ( z . string ( ) ) . optional ( ) ,
89- response_types_supported : z . array ( z . string ( ) ) ,
90- response_modes_supported : z . array ( z . string ( ) ) . optional ( ) ,
91- grant_types_supported : z . array ( z . string ( ) ) . optional ( ) ,
92- acr_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
93- subject_types_supported : z . array ( z . string ( ) ) ,
94- id_token_signing_alg_values_supported : z . array ( z . string ( ) ) ,
95- id_token_encryption_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
96- id_token_encryption_enc_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
97- userinfo_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
98- userinfo_encryption_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
99- userinfo_encryption_enc_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
100- request_object_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
101- request_object_encryption_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
102- request_object_encryption_enc_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
103- token_endpoint_auth_methods_supported : z . array ( z . string ( ) ) . optional ( ) ,
104- token_endpoint_auth_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
105- display_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
106- claim_types_supported : z . array ( z . string ( ) ) . optional ( ) ,
107- claims_supported : z . array ( z . string ( ) ) . optional ( ) ,
108- service_documentation : z . string ( ) . optional ( ) ,
109- claims_locales_supported : z . array ( z . string ( ) ) . optional ( ) ,
110- ui_locales_supported : z . array ( z . string ( ) ) . optional ( ) ,
111- claims_parameter_supported : z . boolean ( ) . optional ( ) ,
112- request_parameter_supported : z . boolean ( ) . optional ( ) ,
113- request_uri_parameter_supported : z . boolean ( ) . optional ( ) ,
114- require_request_uri_registration : z . boolean ( ) . optional ( ) ,
115- op_policy_uri : SafeUrlSchema . optional ( ) ,
116- op_tos_uri : SafeUrlSchema . optional ( )
117- } )
118- . passthrough ( ) ;
76+ export const OpenIdProviderMetadataSchema = z . looseObject ( {
77+ issuer : z . string ( ) ,
78+ authorization_endpoint : SafeUrlSchema ,
79+ token_endpoint : SafeUrlSchema ,
80+ userinfo_endpoint : SafeUrlSchema . optional ( ) ,
81+ jwks_uri : SafeUrlSchema ,
82+ registration_endpoint : SafeUrlSchema . optional ( ) ,
83+ scopes_supported : z . array ( z . string ( ) ) . optional ( ) ,
84+ response_types_supported : z . array ( z . string ( ) ) ,
85+ response_modes_supported : z . array ( z . string ( ) ) . optional ( ) ,
86+ grant_types_supported : z . array ( z . string ( ) ) . optional ( ) ,
87+ acr_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
88+ subject_types_supported : z . array ( z . string ( ) ) ,
89+ id_token_signing_alg_values_supported : z . array ( z . string ( ) ) ,
90+ id_token_encryption_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
91+ id_token_encryption_enc_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
92+ userinfo_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
93+ userinfo_encryption_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
94+ userinfo_encryption_enc_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
95+ request_object_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
96+ request_object_encryption_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
97+ request_object_encryption_enc_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
98+ token_endpoint_auth_methods_supported : z . array ( z . string ( ) ) . optional ( ) ,
99+ token_endpoint_auth_signing_alg_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
100+ display_values_supported : z . array ( z . string ( ) ) . optional ( ) ,
101+ claim_types_supported : z . array ( z . string ( ) ) . optional ( ) ,
102+ claims_supported : z . array ( z . string ( ) ) . optional ( ) ,
103+ service_documentation : z . string ( ) . optional ( ) ,
104+ claims_locales_supported : z . array ( z . string ( ) ) . optional ( ) ,
105+ ui_locales_supported : z . array ( z . string ( ) ) . optional ( ) ,
106+ claims_parameter_supported : z . boolean ( ) . optional ( ) ,
107+ request_parameter_supported : z . boolean ( ) . optional ( ) ,
108+ request_uri_parameter_supported : z . boolean ( ) . optional ( ) ,
109+ require_request_uri_registration : z . boolean ( ) . optional ( ) ,
110+ op_policy_uri : SafeUrlSchema . optional ( ) ,
111+ op_tos_uri : SafeUrlSchema . optional ( )
112+ } ) ;
119113
120114/**
121115 * OpenID Connect Discovery metadata that may include OAuth 2.0 fields
122116 * This schema represents the real-world scenario where OIDC providers
123117 * return a mix of OpenID Connect and OAuth 2.0 metadata fields
124118 */
125- export const OpenIdProviderDiscoveryMetadataSchema = OpenIdProviderMetadataSchema . merge (
126- OAuthMetadataSchema . pick ( {
119+ export const OpenIdProviderDiscoveryMetadataSchema = z . object ( {
120+ ...OpenIdProviderMetadataSchema . shape ,
121+ ...OAuthMetadataSchema . pick ( {
127122 code_challenge_methods_supported : true
128- } )
129- ) ;
123+ } ) . shape
124+ } ) ;
130125
131126/**
132127 * OAuth 2.1 token response
0 commit comments