diff --git a/networkProxy/package.json b/networkProxy/package.json index 3acce8bae..51b3b49e2 100644 --- a/networkProxy/package.json +++ b/networkProxy/package.json @@ -1,6 +1,6 @@ { "name": "@openreplay/network-proxy", - "version": "1.1.0", + "version": "1.1.1", "description": "this library helps us to create proxy objects for fetch, XHR and beacons for proper request tracking.", "main": "dist/index.js", "module": "dist/index.js", diff --git a/networkProxy/src/fetchProxy.ts b/networkProxy/src/fetchProxy.ts index 483efb46b..e916f8819 100644 --- a/networkProxy/src/fetchProxy.ts +++ b/networkProxy/src/fetchProxy.ts @@ -56,9 +56,10 @@ export class ResponseProxyHandler implements ProxyHandler if (typeof this.resp.body.getReader !== 'function') { return } - const _getReader = this.resp.body.getReader + const clonedResp = this.resp.clone(); + const _getReader = clonedResp.body.getReader // @ts-ignore - this.resp.body.getReader = () => { + clonedResp.body.getReader = () => { const reader = >_getReader.apply(this.resp.body) // when readyState is already 4, diff --git a/networkProxy/src/sanitizers.ts b/networkProxy/src/sanitizers.ts index 97618123a..dc24d5c68 100644 --- a/networkProxy/src/sanitizers.ts +++ b/networkProxy/src/sanitizers.ts @@ -80,15 +80,19 @@ export function filterBody(body: any): string { obscureSensitiveData(parsedBody); return JSON.stringify(parsedBody); } else { - const params = new URLSearchParams(body); - for (const key of params.keys()) { - if (sensitiveParams.has(key.toLowerCase())) { - const value = obscure(params.get(key)) - params.set(key, value); + try { + const params = new URLSearchParams(body); + for (const key of params.keys()) { + if (sensitiveParams.has(key.toLowerCase())) { + const value = obscure(params.get(key)) + params.set(key, value); + } } + return params.toString(); + } catch (e) { + // not string or url query + return body; } - - return params.toString(); } }