@@ -198,18 +198,56 @@ export function unwrapPromptResult<T>(result: PromptResult<T>): T {
198198export function parseApiErrorResponseBody ( responseBody : unknown ) : {
199199 errorCode ?: string
200200 message ?: string
201+ countryCode ?: string
202+ countryBlockReason ?: string
203+ ipPrivacySignals ?: string [ ]
201204} {
202205 if ( typeof responseBody !== 'string' ) return { }
203206 try {
204207 const parsed : unknown = JSON . parse ( responseBody )
205208 if ( ! parsed || typeof parsed !== 'object' ) return { }
206- const result : { errorCode ?: string ; message ?: string } = { }
207- if ( 'error' in parsed && typeof ( parsed as { error : unknown } ) . error === 'string' ) {
209+ const result : {
210+ errorCode ?: string
211+ message ?: string
212+ countryCode ?: string
213+ countryBlockReason ?: string
214+ ipPrivacySignals ?: string [ ]
215+ } = { }
216+ if (
217+ 'error' in parsed &&
218+ typeof ( parsed as { error : unknown } ) . error === 'string'
219+ ) {
208220 result . errorCode = ( parsed as { error : string } ) . error
209221 }
210- if ( 'message' in parsed && typeof ( parsed as { message : unknown } ) . message === 'string' ) {
222+ if (
223+ 'message' in parsed &&
224+ typeof ( parsed as { message : unknown } ) . message === 'string'
225+ ) {
211226 result . message = ( parsed as { message : string } ) . message
212227 }
228+ if (
229+ 'countryCode' in parsed &&
230+ typeof ( parsed as { countryCode : unknown } ) . countryCode === 'string'
231+ ) {
232+ result . countryCode = ( parsed as { countryCode : string } ) . countryCode
233+ }
234+ if (
235+ 'countryBlockReason' in parsed &&
236+ typeof ( parsed as { countryBlockReason : unknown } ) . countryBlockReason ===
237+ 'string'
238+ ) {
239+ result . countryBlockReason = (
240+ parsed as { countryBlockReason : string }
241+ ) . countryBlockReason
242+ }
243+ if ( 'ipPrivacySignals' in parsed ) {
244+ const signals = ( parsed as { ipPrivacySignals : unknown } ) . ipPrivacySignals
245+ if ( Array . isArray ( signals ) ) {
246+ result . ipPrivacySignals = signals . filter (
247+ ( signal ) : signal is string => typeof signal === 'string' ,
248+ )
249+ }
250+ }
213251 return result
214252 } catch {
215253 return { }
0 commit comments