@@ -23,8 +23,7 @@ export const SafeUrlSchema = z
23
23
return u . protocol !== 'javascript:' && u . protocol !== 'data:' && u . protocol !== 'vbscript:' ;
24
24
} ,
25
25
{ message : 'URL cannot use javascript:, data:, or vbscript: scheme' }
26
- )
27
- . or ( z . literal ( '' ) ) ;
26
+ ) ;
28
27
29
28
/**
30
29
* RFC 9728 OAuth Protected Resource Metadata
@@ -152,6 +151,11 @@ export const OAuthErrorResponseSchema = z.object({
152
151
error_uri : z . string ( ) . optional ( )
153
152
} ) ;
154
153
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
+
155
159
/**
156
160
* RFC 7591 OAuth 2.0 Dynamic Client Registration metadata
157
161
*/
@@ -163,10 +167,10 @@ export const OAuthClientMetadataSchema = z
163
167
response_types : z . array ( z . string ( ) ) . optional ( ) ,
164
168
client_name : z . string ( ) . optional ( ) ,
165
169
client_uri : SafeUrlSchema . optional ( ) ,
166
- logo_uri : SafeUrlSchema . optional ( ) ,
170
+ logo_uri : OptionalSafeUrlSchema ,
167
171
scope : z . string ( ) . optional ( ) ,
168
172
contacts : z . array ( z . string ( ) ) . optional ( ) ,
169
- tos_uri : SafeUrlSchema . optional ( ) ,
173
+ tos_uri : OptionalSafeUrlSchema ,
170
174
policy_uri : z . string ( ) . optional ( ) ,
171
175
jwks_uri : SafeUrlSchema . optional ( ) ,
172
176
jwks : z . any ( ) . optional ( ) ,
0 commit comments