From 839fb08b947359563bad253519bed2fa5444e2b0 Mon Sep 17 00:00:00 2001 From: Omar McIver Date: Tue, 23 Sep 2025 09:03:27 -0500 Subject: [PATCH] fix: ESM compatibility - avoid direct Response object mutation When using fetch in ESM environments (e.g., node-fetch v3+), the Response object is read-only and attempting to set properties like 'data' and 'error' directly throws an error. This fix creates a wrapper object that delegates to the original Response while allowing the assignment of custom properties, ensuring compatibility with both CommonJS and ESM environments. Fixes compatibility with node-fetch v3+ and other ESM-only fetch implementations. --- .../base/http-clients/fetch-http-client.ejs | 26 +- tests/__snapshots__/extended.test.ts.snap | 1144 +++++++++++++++-- tests/__snapshots__/simple.test.ts.snap | 1144 +++++++++++++++-- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/inline.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../jsAxios/__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../patch/__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- .../__snapshots__/basic.test.ts.snap | 26 +- 29 files changed, 2645 insertions(+), 345 deletions(-) diff --git a/templates/base/http-clients/fetch-http-client.ejs b/templates/base/http-clients/fetch-http-client.ejs index 9f6a5c30..9f144712 100644 --- a/templates/base/http-clients/fetch-http-client.ejs +++ b/templates/base/http-clients/fetch-http-client.ejs @@ -196,9 +196,29 @@ export class HttpClient { body: typeof body === "undefined" || body === null ? null : payloadFormatter(body), } ).then(async (response) => { - const r = response as HttpResponse; - r.data = (null as unknown) as T; - r.error = (null as unknown) as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: (null as unknown) as T, + error: (null as unknown) as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat ? r : await responseToParse[responseFormat]() diff --git a/tests/__snapshots__/extended.test.ts.snap b/tests/__snapshots__/extended.test.ts.snap index e95bc232..3b4ec5f8 100644 --- a/tests/__snapshots__/extended.test.ts.snap +++ b/tests/__snapshots__/extended.test.ts.snap @@ -2941,9 +2941,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -4947,9 +4967,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -5229,9 +5269,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -5546,9 +5606,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -6566,9 +6646,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -7384,9 +7484,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -7744,9 +7864,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -8062,9 +8202,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -8428,9 +8588,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -9298,9 +9478,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -9924,9 +10124,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -10241,9 +10461,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -10564,9 +10804,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -10917,9 +11177,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -11271,9 +11551,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -11650,9 +11950,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -11997,9 +12317,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -50405,9 +50745,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -66208,9 +66568,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -67247,9 +67627,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -67745,9 +68145,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -68194,9 +68614,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -68590,9 +69030,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -68904,9 +69364,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -69266,9 +69746,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -69980,9 +70480,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -70565,9 +71085,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -70994,9 +71534,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -71459,9 +72019,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -71988,9 +72568,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -72380,9 +72980,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -72820,9 +73440,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -73757,9 +74397,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -74566,9 +75226,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -74961,9 +75641,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -75274,9 +75974,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -75570,9 +76290,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -75904,9 +76644,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -76647,9 +77407,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -77546,9 +78326,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -79372,9 +80172,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -80153,9 +80973,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -80504,9 +81344,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -80961,9 +81821,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/__snapshots__/simple.test.ts.snap b/tests/__snapshots__/simple.test.ts.snap index 710b2300..36c5efc5 100644 --- a/tests/__snapshots__/simple.test.ts.snap +++ b/tests/__snapshots__/simple.test.ts.snap @@ -394,9 +394,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -2746,9 +2766,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -3028,9 +3068,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -3319,9 +3379,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -3747,9 +3827,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -4518,9 +4618,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -4860,9 +4980,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -5158,9 +5298,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -5468,9 +5628,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -5852,9 +6032,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -6507,9 +6707,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -6822,9 +7042,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -7128,9 +7368,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -7481,9 +7741,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -7796,9 +8076,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -8125,9 +8425,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -8452,9 +8772,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -17424,9 +17764,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -38561,9 +38921,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -39137,9 +39517,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -39812,9 +40212,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -40106,9 +40526,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -40505,9 +40945,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -40793,9 +41253,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -41088,9 +41568,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -41584,9 +42084,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -42082,9 +42602,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -42436,9 +42976,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -42791,9 +43351,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -43182,9 +43762,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -43563,9 +44163,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -43887,9 +44507,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -44303,9 +44943,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -44995,9 +45655,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -45351,9 +46031,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -45671,9 +46371,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -45948,9 +46668,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -46250,9 +46990,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -46675,9 +47435,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -47326,9 +48106,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -48513,9 +49313,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -49306,9 +50126,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -49671,9 +50511,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat @@ -49973,9 +50833,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/another-query-params/__snapshots__/basic.test.ts.snap b/tests/spec/another-query-params/__snapshots__/basic.test.ts.snap index f987d808..65347a71 100644 --- a/tests/spec/another-query-params/__snapshots__/basic.test.ts.snap +++ b/tests/spec/another-query-params/__snapshots__/basic.test.ts.snap @@ -265,9 +265,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/custom-extensions/__snapshots__/basic.test.ts.snap b/tests/spec/custom-extensions/__snapshots__/basic.test.ts.snap index aedb9d00..c879965d 100644 --- a/tests/spec/custom-extensions/__snapshots__/basic.test.ts.snap +++ b/tests/spec/custom-extensions/__snapshots__/basic.test.ts.snap @@ -237,9 +237,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/defaultAsSuccess/__snapshots__/basic.test.ts.snap b/tests/spec/defaultAsSuccess/__snapshots__/basic.test.ts.snap index 3b138631..f3e5a02f 100644 --- a/tests/spec/defaultAsSuccess/__snapshots__/basic.test.ts.snap +++ b/tests/spec/defaultAsSuccess/__snapshots__/basic.test.ts.snap @@ -277,9 +277,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/defaultResponse/__snapshots__/basic.test.ts.snap b/tests/spec/defaultResponse/__snapshots__/basic.test.ts.snap index a2198338..4cda2433 100644 --- a/tests/spec/defaultResponse/__snapshots__/basic.test.ts.snap +++ b/tests/spec/defaultResponse/__snapshots__/basic.test.ts.snap @@ -237,9 +237,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/deprecated/__snapshots__/basic.test.ts.snap b/tests/spec/deprecated/__snapshots__/basic.test.ts.snap index a8e4b05d..221243ac 100644 --- a/tests/spec/deprecated/__snapshots__/basic.test.ts.snap +++ b/tests/spec/deprecated/__snapshots__/basic.test.ts.snap @@ -237,9 +237,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/dot-path-params/__snapshots__/basic.test.ts.snap b/tests/spec/dot-path-params/__snapshots__/basic.test.ts.snap index 161782a2..dbc7735a 100644 --- a/tests/spec/dot-path-params/__snapshots__/basic.test.ts.snap +++ b/tests/spec/dot-path-params/__snapshots__/basic.test.ts.snap @@ -239,9 +239,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/enumNamesAsValues/__snapshots__/basic.test.ts.snap b/tests/spec/enumNamesAsValues/__snapshots__/basic.test.ts.snap index 626a368e..ab50f685 100644 --- a/tests/spec/enumNamesAsValues/__snapshots__/basic.test.ts.snap +++ b/tests/spec/enumNamesAsValues/__snapshots__/basic.test.ts.snap @@ -429,9 +429,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/enumNamesAsValues/__snapshots__/inline.test.ts.snap b/tests/spec/enumNamesAsValues/__snapshots__/inline.test.ts.snap index 816ee868..25f0776d 100644 --- a/tests/spec/enumNamesAsValues/__snapshots__/inline.test.ts.snap +++ b/tests/spec/enumNamesAsValues/__snapshots__/inline.test.ts.snap @@ -249,9 +249,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/enumNotFirstInComponents/__snapshots__/basic.test.ts.snap b/tests/spec/enumNotFirstInComponents/__snapshots__/basic.test.ts.snap index ed22a3bd..00dca337 100644 --- a/tests/spec/enumNotFirstInComponents/__snapshots__/basic.test.ts.snap +++ b/tests/spec/enumNotFirstInComponents/__snapshots__/basic.test.ts.snap @@ -267,9 +267,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/extractRequestBody/__snapshots__/basic.test.ts.snap b/tests/spec/extractRequestBody/__snapshots__/basic.test.ts.snap index f34bbe52..46b2db76 100644 --- a/tests/spec/extractRequestBody/__snapshots__/basic.test.ts.snap +++ b/tests/spec/extractRequestBody/__snapshots__/basic.test.ts.snap @@ -408,9 +408,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/extractRequestParams/__snapshots__/basic.test.ts.snap b/tests/spec/extractRequestParams/__snapshots__/basic.test.ts.snap index 985bf2f2..40cd642c 100644 --- a/tests/spec/extractRequestParams/__snapshots__/basic.test.ts.snap +++ b/tests/spec/extractRequestParams/__snapshots__/basic.test.ts.snap @@ -367,9 +367,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/extractResponseBody/__snapshots__/basic.test.ts.snap b/tests/spec/extractResponseBody/__snapshots__/basic.test.ts.snap index eaf33c1d..6de7acbc 100644 --- a/tests/spec/extractResponseBody/__snapshots__/basic.test.ts.snap +++ b/tests/spec/extractResponseBody/__snapshots__/basic.test.ts.snap @@ -392,9 +392,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/extractResponseError/__snapshots__/basic.test.ts.snap b/tests/spec/extractResponseError/__snapshots__/basic.test.ts.snap index e4a3e4f2..1d2bb6da 100644 --- a/tests/spec/extractResponseError/__snapshots__/basic.test.ts.snap +++ b/tests/spec/extractResponseError/__snapshots__/basic.test.ts.snap @@ -387,9 +387,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/jsAxios/__snapshots__/basic.test.ts.snap b/tests/spec/jsAxios/__snapshots__/basic.test.ts.snap index 0b4dbc53..650334b6 100644 --- a/tests/spec/jsAxios/__snapshots__/basic.test.ts.snap +++ b/tests/spec/jsAxios/__snapshots__/basic.test.ts.snap @@ -170,9 +170,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response; - r.data = null; - r.error = null; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null, + error: null, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + }; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat ? r diff --git a/tests/spec/jsonapi-media-type/__snapshots__/basic.test.ts.snap b/tests/spec/jsonapi-media-type/__snapshots__/basic.test.ts.snap index 5f4c7ab8..c1f494dc 100644 --- a/tests/spec/jsonapi-media-type/__snapshots__/basic.test.ts.snap +++ b/tests/spec/jsonapi-media-type/__snapshots__/basic.test.ts.snap @@ -263,9 +263,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/moduleNameFirstTag/__snapshots__/basic.test.ts.snap b/tests/spec/moduleNameFirstTag/__snapshots__/basic.test.ts.snap index 347ca8d6..6982078d 100644 --- a/tests/spec/moduleNameFirstTag/__snapshots__/basic.test.ts.snap +++ b/tests/spec/moduleNameFirstTag/__snapshots__/basic.test.ts.snap @@ -362,9 +362,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/moduleNameIndex/__snapshots__/basic.test.ts.snap b/tests/spec/moduleNameIndex/__snapshots__/basic.test.ts.snap index fe0d3c47..91f62c5d 100644 --- a/tests/spec/moduleNameIndex/__snapshots__/basic.test.ts.snap +++ b/tests/spec/moduleNameIndex/__snapshots__/basic.test.ts.snap @@ -362,9 +362,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/on-insert-path-param/__snapshots__/basic.test.ts.snap b/tests/spec/on-insert-path-param/__snapshots__/basic.test.ts.snap index 9328e352..b44091ac 100644 --- a/tests/spec/on-insert-path-param/__snapshots__/basic.test.ts.snap +++ b/tests/spec/on-insert-path-param/__snapshots__/basic.test.ts.snap @@ -237,9 +237,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/operationId-starting-with-number/__snapshots__/basic.test.ts.snap b/tests/spec/operationId-starting-with-number/__snapshots__/basic.test.ts.snap index d1b17a5a..adaa1cc4 100644 --- a/tests/spec/operationId-starting-with-number/__snapshots__/basic.test.ts.snap +++ b/tests/spec/operationId-starting-with-number/__snapshots__/basic.test.ts.snap @@ -258,9 +258,29 @@ export class HttpClient { body: typeof body === "undefined" || body === null ? null : payloadFormatter(body), } ).then(async (response) => { - const r = response as HttpResponse; - r.data = (null as unknown) as T; - r.error = (null as unknown) as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: (null as unknown) as T, + error: (null as unknown) as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat ? r : await responseToParse[responseFormat]() diff --git a/tests/spec/patch/__snapshots__/basic.test.ts.snap b/tests/spec/patch/__snapshots__/basic.test.ts.snap index a307e33c..8fd53a79 100644 --- a/tests/spec/patch/__snapshots__/basic.test.ts.snap +++ b/tests/spec/patch/__snapshots__/basic.test.ts.snap @@ -1994,9 +1994,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/responses/__snapshots__/basic.test.ts.snap b/tests/spec/responses/__snapshots__/basic.test.ts.snap index c368fa92..1ff7d460 100644 --- a/tests/spec/responses/__snapshots__/basic.test.ts.snap +++ b/tests/spec/responses/__snapshots__/basic.test.ts.snap @@ -277,9 +277,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/singleHttpClient/__snapshots__/basic.test.ts.snap b/tests/spec/singleHttpClient/__snapshots__/basic.test.ts.snap index 3679cfb0..710d6699 100644 --- a/tests/spec/singleHttpClient/__snapshots__/basic.test.ts.snap +++ b/tests/spec/singleHttpClient/__snapshots__/basic.test.ts.snap @@ -237,9 +237,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/sortTypes-false/__snapshots__/basic.test.ts.snap b/tests/spec/sortTypes-false/__snapshots__/basic.test.ts.snap index 69d5302e..5e5c37eb 100644 --- a/tests/spec/sortTypes-false/__snapshots__/basic.test.ts.snap +++ b/tests/spec/sortTypes-false/__snapshots__/basic.test.ts.snap @@ -1994,9 +1994,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/sortTypes/__snapshots__/basic.test.ts.snap b/tests/spec/sortTypes/__snapshots__/basic.test.ts.snap index 785d970c..f128795e 100644 --- a/tests/spec/sortTypes/__snapshots__/basic.test.ts.snap +++ b/tests/spec/sortTypes/__snapshots__/basic.test.ts.snap @@ -1994,9 +1994,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/typeSuffixPrefix/__snapshots__/basic.test.ts.snap b/tests/spec/typeSuffixPrefix/__snapshots__/basic.test.ts.snap index aef88bef..76f37c8b 100644 --- a/tests/spec/typeSuffixPrefix/__snapshots__/basic.test.ts.snap +++ b/tests/spec/typeSuffixPrefix/__snapshots__/basic.test.ts.snap @@ -2006,9 +2006,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat diff --git a/tests/spec/unionEnums/__snapshots__/basic.test.ts.snap b/tests/spec/unionEnums/__snapshots__/basic.test.ts.snap index 1c138869..3cc520be 100644 --- a/tests/spec/unionEnums/__snapshots__/basic.test.ts.snap +++ b/tests/spec/unionEnums/__snapshots__/basic.test.ts.snap @@ -249,9 +249,29 @@ export class HttpClient { : payloadFormatter(body), }, ).then(async (response) => { - const r = response as HttpResponse; - r.data = null as unknown as T; - r.error = null as unknown as E; + // Create a wrapper object that doesn't mutate the Response + // This ensures compatibility with ESM environments where Response is read-only + const r = { + data: null as unknown as T, + error: null as unknown as E, + // Delegate Response properties + ok: response.ok, + status: response.status, + statusText: response.statusText, + headers: response.headers, + url: response.url, + redirected: response.redirected, + type: response.type, + body: response.body, + bodyUsed: response.bodyUsed, + // Delegate Response methods + arrayBuffer: () => response.arrayBuffer(), + blob: () => response.blob(), + clone: () => response.clone(), + formData: () => response.formData(), + json: () => response.json(), + text: () => response.text(), + } as HttpResponse; const responseToParse = responseFormat ? response.clone() : response; const data = !responseFormat