@@ -23,8 +23,7 @@ export const SafeUrlSchema = z
2323 return u . protocol !== 'javascript:' && u . protocol !== 'data:' && u . protocol !== 'vbscript:' ;
2424 } ,
2525 { message : 'URL cannot use javascript:, data:, or vbscript: scheme' }
26- )
27- . or ( z . literal ( '' ) ) ;
26+ ) ;
2827
2928/**
3029 * RFC 9728 OAuth Protected Resource Metadata
@@ -152,6 +151,11 @@ export const OAuthErrorResponseSchema = z.object({
152151 error_uri : z . string ( ) . optional ( )
153152} ) ;
154153
154+ /**
155+ * Optional version of SafeUrlSchema that allows empty string for retrocompatibility on tos_uri and logo_uri
156+ */
157+ export const OptionalSafeUrlSchema = SafeUrlSchema . optional ( ) . or ( z . literal ( '' ) . transform ( ( ) => undefined ) ) ;
158+
155159/**
156160 * RFC 7591 OAuth 2.0 Dynamic Client Registration metadata
157161 */
@@ -163,10 +167,10 @@ export const OAuthClientMetadataSchema = z
163167 response_types : z . array ( z . string ( ) ) . optional ( ) ,
164168 client_name : z . string ( ) . optional ( ) ,
165169 client_uri : SafeUrlSchema . optional ( ) ,
166- logo_uri : SafeUrlSchema . optional ( ) ,
170+ logo_uri : OptionalSafeUrlSchema ,
167171 scope : z . string ( ) . optional ( ) ,
168172 contacts : z . array ( z . string ( ) ) . optional ( ) ,
169- tos_uri : SafeUrlSchema . optional ( ) ,
173+ tos_uri : OptionalSafeUrlSchema ,
170174 policy_uri : z . string ( ) . optional ( ) ,
171175 jwks_uri : SafeUrlSchema . optional ( ) ,
172176 jwks : z . any ( ) . optional ( ) ,
0 commit comments