@@ -46,11 +46,11 @@ export function isContentMedia(part: unknown): part is ContentMedia {
4646 hasImageUrl ( part ) ||
4747 hasInputAudio ( part ) ||
4848 hasFileData ( part ) ||
49- ( 'media_type' in part && typeof part . media_type === 'string' && 'data' in part ) ||
50- ( 'type' in part && ( part . type === 'blob' || part . type === 'base64' ) ) ||
51- 'b64_json' in part ||
52- ( 'type' in part && 'result' in part && part . type === 'image_generation' ) ||
53- ( 'uri' in part && typeof part . uri === 'string' && part . uri . startsWith ( 'data:' ) )
49+ hasMediaTypeData ( part ) ||
50+ hasBlobOrBase64Type ( part ) ||
51+ hasB64Json ( part ) ||
52+ hasImageGenerationResult ( part ) ||
53+ hasDataUri ( part )
5454 ) ;
5555}
5656
@@ -109,6 +109,26 @@ function hasFileData(part: NonNullable<unknown>): part is { type: 'file'; file:
109109 ) ;
110110}
111111
112+ function hasMediaTypeData ( part : NonNullable < unknown > ) : part is { media_type : string ; data : string } {
113+ return 'media_type' in part && typeof part . media_type === 'string' && 'data' in part ;
114+ }
115+
116+ function hasBlobOrBase64Type ( part : NonNullable < unknown > ) : part is { type : 'blob' | 'base64' ; content : string } {
117+ return 'type' in part && ( part . type === 'blob' || part . type === 'base64' ) ;
118+ }
119+
120+ function hasB64Json ( part : NonNullable < unknown > ) : part is { b64_json : string } {
121+ return 'b64_json' in part ;
122+ }
123+
124+ function hasImageGenerationResult ( part : NonNullable < unknown > ) : part is { type : 'image_generation' ; result : string } {
125+ return 'type' in part && 'result' in part && part . type === 'image_generation' ;
126+ }
127+
128+ function hasDataUri ( part : NonNullable < unknown > ) : part is { uri : string } {
129+ return 'uri' in part && typeof part . uri === 'string' && part . uri . startsWith ( 'data:' ) ;
130+ }
131+
112132const REMOVED_STRING = '[Blob substitute]' ;
113133
114134const MEDIA_FIELDS = [ 'image_url' , 'data' , 'content' , 'b64_json' , 'result' , 'uri' ] as const ;
0 commit comments