@amplitude/segment-session-replay-plugin 0.0.48 → 0.0.50

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,2 +1,2 @@
1
- var e='var WebWorker=function(e){"use strict";onmessage=function(e){var s="string"==typeof e.data?JSON.parse(e.data):e.data,t=s.event,a=s.sessionId,n=t.type,r=t.timestamp,i=t.delay,o=t.data,d=null!=i?JSON.stringify({type:n,timestamp:r,delay:i,data:o}):JSON.stringify({type:n,timestamp:r,data:o});postMessage({compressedEvent:d,sessionId:a})};var s=onmessage;return e.compressionOnMessage=s,Object.defineProperty(e,"__esModule",{value:!0}),e}({});\n',t='var WebWorker=function(e){"use strict";var t,r=function(){return r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e},r.apply(this,arguments)};function n(e,t,r,n){return new(r||(r=Promise))(function(s,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function i(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(a,i)}u((n=n.apply(e,t||[])).next())})}function s(e,t){var r,n,s,o={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=i(0),a.throw=i(1),a.return=i(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(i){return function(u){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,i[0]&&(o=0)),o;)try{if(r=1,n&&(s=2&i[0]?n.return:i[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,i[1])).done)return s;switch(n=0,s&&(i=[2&i[0],s.value]),i[0]){case 0:case 1:s=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,n=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(s=o.trys,(s=s.length>0&&s[s.length-1])||6!==i[0]&&2!==i[0])){o=0;continue}if(3===i[0]&&(!s||i[1]>s[0]&&i[1]<s[3])){o.label=i[1];break}if(6===i[0]&&o.label<s[1]){o.label=s[1],s=i;break}if(s&&o.label<s[2]){o.label=s[2],o.ops.push(i);break}s[2]&&o.ops.pop(),o.trys.pop();continue}i=t.call(e,o)}catch(e){i=[6,e],n=0}finally{r=s=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}"function"==typeof SuppressedError&&SuppressedError,function(e){e.US="US",e.EU="EU",e.STAGING="STAGING"}(t||(t={})),t.US;var o,a=/payload.*exceed/i,i="X-Session-Replay-Event-Skipped";!function(e){e.GET_SR_PROPS="get-sr-props",e.DEBUG_INFO="debug-info",e.FETCH_REQUEST="fetch-request",e.METADATA="metadata",e.TARGETING_DECISION="targeting-decision",e.REPLAY_GATE_DECISION="replay-gate-decision"}(o||(o={}));var u="Network error occurred, event batch rejected";function c(e,t){return n(this,void 0,void 0,function(){var r,o,a,i,u,c,l,d,p,f,v,y,h,b,g=this;return s(this,function(m){switch(m.label){case 0:return m.trys.push([0,4,,5]),r=t.CompressionStream,o=new r("gzip"),a=o.writable.getWriter(),i=o.readable.getReader(),u=[],c=n(g,void 0,void 0,function(){var e,t,r;return s(this,function(n){switch(n.label){case 0:return[4,i.read()];case 1:if(e=n.sent(),t=e.done,r=e.value,t)return[3,3];u.push(r),n.label=2;case 2:return[3,0];case 3:return[2]}})}),[4,a.write((new TextEncoder).encode(e))];case 1:return m.sent(),[4,a.close()];case 2:return m.sent(),[4,c];case 3:m.sent(),l=u.reduce(function(e,t){return e+t.length},0),d=new Uint8Array(l),p=0;try{for(f=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(u),v=f.next();!v.done;v=f.next())y=v.value,d.set(y,p),p+=y.length}catch(e){h={error:e}}finally{try{v&&!v.done&&(b=f.return)&&b.call(f)}finally{if(h)throw h.error}}return[2,d];case 4:return m.sent(),[2,null];case 5:return[2]}})})}var l=0,d=new Map,p=function(e,t){return fetch(e,t)},f=function(e,t){var r="".concat(++l);return new Promise(function(n,s){var o=t.signal,a=function(){d.delete(r);var e=new Error("Delegated session replay fetch aborted by send timeout");e.name="AbortError",s(e)};o.addEventListener("abort",a,{once:!0}),d.set(r,function(e){o.removeEventListener("abort",a),e.error?s(new Error(e.body)):n({status:e.status,headers:{get:function(t){return t===i?e.skipHeader:null}},text:function(){return Promise.resolve(e.body)}})}),postMessage({type:"fetch-request",requestId:r,url:e,method:"POST",headers:t.headers,body:t.body,keepalive:t.keepalive})})};function v(e,t,o){var l,d,p,f,v,y,h,b;return n(this,void 0,void 0,function(){var n,g,m,w,S,T,E,k,R,x,C,I,A,M,O;return s(this,function(s){switch(s.label){case 0:n=null!==(l=t.sendTimeoutMs)&&void 0!==l?l:1e4,s.label=1;case 1:return s.trys.push([1,14,,15]),!1!==t.enableTransportCompression&&"CompressionStream"in self?[4,c(e,self)]:[3,3];case 2:return m=s.sent(),[3,4];case 3:m=null,s.label=4;case 4:g=m,w="".concat(null!==(p=null===(d=t.version)||void 0===d?void 0:d.type)&&void 0!==p?p:"standalone","/").concat(null!==(v=null===(f=t.version)||void 0===f?void 0:f.version)&&void 0!==v?v:t.sdkVersion),S=new URLSearchParams({device_id:t.deviceId,session_id:"".concat(t.sessionId),type:t.eventType}),T="".concat((U=t.serverZone,P=t.trackServerUrl,P||("STAGING"===U?"https://api-sr.stag2.amplitude.com/sessions/v2/track":"EU"===U?"https://api-sr.eu.amplitude.com/sessions/v2/track":"https://api-sr.amplitude.com/sessions/v2/track")),"?").concat(S.toString()),E=r({"Content-Type":"application/json",Accept:"*/*",Authorization:"Bearer ".concat(t.apiKey),"X-Client-Version":t.sdkVersion,"X-Client-Library":w,"X-Client-Url":t.currentUrl.substring(0,1e3),"X-Client-Sample-Rate":"".concat(t.sampleRate),"X-Sampling-Hash-Alg":"xxhash32"},g?{"Content-Encoding":"gzip"}:{}),k=g?g.byteLength:new Blob([e]).size,R=new AbortController,x=n>0?setTimeout(function(){R.abort()},n):void 0,C=void 0,s.label=5;case 5:return s.trys.push([5,,7,8]),[4,o(T,{method:"POST",headers:E,body:null!=g?g:e,keepalive:k<=65536,signal:R.signal})];case 6:return C=s.sent(),[3,8];case 7:return x&&clearTimeout(x),[7];case 8:if(null===C)return[2,{shouldRetry:!1,success:!1,message:"Unexpected error occurred"}];if(C.status>=200&&C.status<300)return I=Math.round(new Blob(t.events).size/1024),A=null!==(b=null===(h=null===(y=C.headers)||void 0===y?void 0:y.get)||void 0===h?void 0:h.call(y,i))&&void 0!==b?b:null,[2,{shouldRetry:!1,success:!0,message:"Session replay event batch tracked successfully for session id ".concat(t.sessionId,", size of events: ").concat(I," KB"),skipCode:A}];if(413!==C.status)return[3,13];M="",s.label=9;case 9:return s.trys.push([9,11,,12]),[4,C.text()];case 10:return M=s.sent(),[3,12];case 11:return s.sent(),[3,12];case 12:return[2,{shouldRetry:!1,success:!1,message:u,payloadTooLarge:!0,isWaf:a.test(M)}];case 13:return C.status>=500||408===C.status||429===C.status||499===C.status?[2,{shouldRetry:!0,success:!1,message:"HTTP ".concat(C.status)}]:[2,{shouldRetry:!1,success:!1,message:u}];case 14:return(O=s.sent())&&"object"==typeof O&&"AbortError"===O.name?[2,{shouldRetry:!0,success:!1,message:"Session replay worker request timed out after ".concat(n,"ms")}]:[2,{shouldRetry:!1,success:!1,message:String(O)}];case 15:return[2]}var U,P})})}function y(e,t,r,o,a){var i;return n(this,void 0,void 0,function(){var n,u,c;return s(this,function(s){switch(s.label){case 0:n=1,s.label=1;case 1:return[4,v(t,r,a)];case 2:return(u=s.sent()).success?(postMessage({type:"log",id:e,message:u.message}),postMessage({type:"complete",id:e,skipCode:null!==(i=u.skipCode)&&void 0!==i?i:null}),[2]):u.payloadTooLarge&&o?(postMessage({type:"payload_too_large",id:e,isWaf:!0===u.isWaf}),[2]):o&&u.shouldRetry&&n<r.flushMaxRetries?[4,new Promise(function(e){return setTimeout(e,Math.random()*n*1e3)})]:[3,4];case 3:return s.sent(),n++,[3,5];case 4:return c=n>=r.flushMaxRetries?"Session replay event batch rejected due to exceeded retry count":u.message,postMessage({type:"warn",id:e,message:c}),postMessage({type:"complete",id:e}),[2];case 5:return[3,1];case 6:return[2]}})})}onmessage=function(e){return n(void 0,void 0,void 0,function(){var t,r,n,o,a,i,u,c;return s(this,function(s){switch(s.label){case 0:return"fetch-response"===(t=e.data).type?((r=d.get(t.requestId))&&(d.delete(t.requestId),r(t)),[2]):"send"!==t.type?[3,2]:(n=t.id,o=t.payload,a=t.context,i=t.useRetry,u=t.useCustomTransport,c=JSON.stringify(o),[4,y(n,c,a,i,u?f:p)]);case 1:s.sent(),s.label=2;case 2:return[2]}})})};var h=onmessage;return e.trackDestinationOnMessage=h,Object.defineProperty(e,"__esModule",{value:!0}),e}({});\n';export{e as compressionScript,t as trackDestinationScript};
1
+ var e='var WebWorker=function(e){"use strict";onmessage=function(e){var s="string"==typeof e.data?JSON.parse(e.data):e.data,t=s.event,a=s.sessionId,n=t.type,r=t.timestamp,i=t.delay,o=t.data,d=null!=i?JSON.stringify({type:n,timestamp:r,delay:i,data:o}):JSON.stringify({type:n,timestamp:r,data:o});postMessage({compressedEvent:d,sessionId:a})};var s=onmessage;return e.compressionOnMessage=s,Object.defineProperty(e,"__esModule",{value:!0}),e}({});\n',t='var WebWorker=function(e){"use strict";var t,r=function(){return r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e},r.apply(this,arguments)};function n(e,t,r,n){return new(r||(r=Promise))(function(s,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function i(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(a,i)}u((n=n.apply(e,t||[])).next())})}function s(e,t){var r,n,s,o={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},a=Object.create(("function"==typeof Iterator?Iterator:Object).prototype);return a.next=i(0),a.throw=i(1),a.return=i(2),"function"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(i){return function(u){return function(i){if(r)throw new TypeError("Generator is already executing.");for(;a&&(a=0,i[0]&&(o=0)),o;)try{if(r=1,n&&(s=2&i[0]?n.return:i[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,i[1])).done)return s;switch(n=0,s&&(i=[2&i[0],s.value]),i[0]){case 0:case 1:s=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,n=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(s=o.trys,(s=s.length>0&&s[s.length-1])||6!==i[0]&&2!==i[0])){o=0;continue}if(3===i[0]&&(!s||i[1]>s[0]&&i[1]<s[3])){o.label=i[1];break}if(6===i[0]&&o.label<s[1]){o.label=s[1],s=i;break}if(s&&o.label<s[2]){o.label=s[2],o.ops.push(i);break}s[2]&&o.ops.pop(),o.trys.pop();continue}i=t.call(e,o)}catch(e){i=[6,e],n=0}finally{r=s=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}"function"==typeof SuppressedError&&SuppressedError,function(e){e.US="US",e.EU="EU",e.STAGING="STAGING"}(t||(t={})),t.US;var o,a=/payload.*exceed/i,i="X-Session-Replay-Event-Skipped";!function(e){e.GET_SR_PROPS="get-sr-props",e.DEBUG_INFO="debug-info",e.FETCH_REQUEST="fetch-request",e.METADATA="metadata",e.TARGETING_DECISION="targeting-decision",e.REPLAY_GATE_DECISION="replay-gate-decision"}(o||(o={}));var u="Network error occurred, event batch rejected";function c(e,t){return n(this,void 0,void 0,function(){var r,o,a,i,u,c,l,d,p,f,v,h,y,b,g=this;return s(this,function(m){switch(m.label){case 0:return m.trys.push([0,4,,5]),r=t.CompressionStream,o=new r("gzip"),a=o.writable.getWriter(),i=o.readable.getReader(),u=[],c=n(g,void 0,void 0,function(){var e,t,r;return s(this,function(n){switch(n.label){case 0:return[4,i.read()];case 1:if(e=n.sent(),t=e.done,r=e.value,t)return[3,3];u.push(r),n.label=2;case 2:return[3,0];case 3:return[2]}})}),[4,a.write((new TextEncoder).encode(e))];case 1:return m.sent(),[4,a.close()];case 2:return m.sent(),[4,c];case 3:m.sent(),l=u.reduce(function(e,t){return e+t.length},0),d=new Uint8Array(l),p=0;try{for(f=function(e){var t="function"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&"number"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}(u),v=f.next();!v.done;v=f.next())h=v.value,d.set(h,p),p+=h.length}catch(e){y={error:e}}finally{try{v&&!v.done&&(b=f.return)&&b.call(f)}finally{if(y)throw y.error}}return[2,d];case 4:return m.sent(),[2,null];case 5:return[2]}})})}function l(e){for(var t=e.length,r=0;r<t&&!(e.charCodeAt(r)>127);r++);if(r===t)return t;for(var n=r;r<t;r++){var s=e.charCodeAt(r);if(s<=127)n++;else if(s<=2047)n+=2;else if(s>=55296&&s<=56319){var o=r+1<t?e.charCodeAt(r+1):NaN;o>=56320&&o<=57343?(n+=4,r++):n+=3}else n+=3}return n}var d=0,p=new Map,f=function(e,t){return fetch(e,t)},v=function(e,t){var r="".concat(++d);return new Promise(function(n,s){var o=t.signal,a=function(){p.delete(r);var e=new Error("Delegated session replay fetch aborted by send timeout");e.name="AbortError",s(e)};o.addEventListener("abort",a,{once:!0}),p.set(r,function(e){o.removeEventListener("abort",a),e.error?s(new Error(e.body)):n({status:e.status,headers:{get:function(t){return t===i?e.skipHeader:null}},text:function(){return Promise.resolve(e.body)}})}),postMessage({type:"fetch-request",requestId:r,url:e,method:"POST",headers:t.headers,body:t.body,keepalive:t.keepalive})})};function h(e,t,o){var d,p,f,v,h,y,b,g;return n(this,void 0,void 0,function(){var n,m,w,S,T,E,k,R,C,x,A,I,M,O,U;return s(this,function(s){switch(s.label){case 0:n=null!==(d=t.sendTimeoutMs)&&void 0!==d?d:1e4,s.label=1;case 1:return s.trys.push([1,14,,15]),!1!==t.enableTransportCompression&&"CompressionStream"in self?[4,c(e,self)]:[3,3];case 2:return w=s.sent(),[3,4];case 3:w=null,s.label=4;case 4:m=w,S="".concat(null!==(f=null===(p=t.version)||void 0===p?void 0:p.type)&&void 0!==f?f:"standalone","/").concat(null!==(h=null===(v=t.version)||void 0===v?void 0:v.version)&&void 0!==h?h:t.sdkVersion),T=new URLSearchParams({device_id:t.deviceId,session_id:"".concat(t.sessionId),type:t.eventType}),E="".concat((P=t.serverZone,_=t.trackServerUrl,_||("STAGING"===P?"https://api-sr.stag2.amplitude.com/sessions/v2/track":"EU"===P?"https://api-sr.eu.amplitude.com/sessions/v2/track":"https://api-sr.amplitude.com/sessions/v2/track")),"?").concat(T.toString()),k=r({"Content-Type":"application/json",Accept:"*/*",Authorization:"Bearer ".concat(t.apiKey),"X-Client-Version":t.sdkVersion,"X-Client-Library":S,"X-Client-Url":t.currentUrl.substring(0,1e3),"X-Client-Sample-Rate":"".concat(t.sampleRate),"X-Sampling-Hash-Alg":"xxhash32"},m?{"Content-Encoding":"gzip"}:{}),R=m?m.byteLength:l(e),C=new AbortController,x=n>0?setTimeout(function(){C.abort()},n):void 0,A=void 0,s.label=5;case 5:return s.trys.push([5,,7,8]),[4,o(E,{method:"POST",headers:k,body:null!=m?m:e,keepalive:R<=65536,signal:C.signal})];case 6:return A=s.sent(),[3,8];case 7:return x&&clearTimeout(x),[7];case 8:if(null===A)return[2,{shouldRetry:!1,success:!1,message:"Unexpected error occurred"}];if(A.status>=200&&A.status<300)return I=Math.round(function(e){for(var t=0,r=0;r<e.length;r++)t+=l(e[r]);return t}(t.events)/1024),M=null!==(g=null===(b=null===(y=A.headers)||void 0===y?void 0:y.get)||void 0===b?void 0:b.call(y,i))&&void 0!==g?g:null,[2,{shouldRetry:!1,success:!0,message:"Session replay event batch tracked successfully for session id ".concat(t.sessionId,", size of events: ").concat(I," KB"),skipCode:M}];if(413!==A.status)return[3,13];O="",s.label=9;case 9:return s.trys.push([9,11,,12]),[4,A.text()];case 10:return O=s.sent(),[3,12];case 11:return s.sent(),[3,12];case 12:return[2,{shouldRetry:!1,success:!1,message:u,payloadTooLarge:!0,isWaf:a.test(O)}];case 13:return A.status>=500||408===A.status||429===A.status||499===A.status?[2,{shouldRetry:!0,success:!1,message:"HTTP ".concat(A.status)}]:[2,{shouldRetry:!1,success:!1,message:u}];case 14:return(U=s.sent())&&"object"==typeof U&&"AbortError"===U.name?[2,{shouldRetry:!0,success:!1,message:"Session replay worker request timed out after ".concat(n,"ms")}]:[2,{shouldRetry:!1,success:!1,message:String(U)}];case 15:return[2]}var P,_})})}function y(e,t,r,o,a){var i;return n(this,void 0,void 0,function(){var n,u,c;return s(this,function(s){switch(s.label){case 0:n=1,s.label=1;case 1:return[4,h(t,r,a)];case 2:return(u=s.sent()).success?(postMessage({type:"log",id:e,message:u.message}),postMessage({type:"complete",id:e,skipCode:null!==(i=u.skipCode)&&void 0!==i?i:null}),[2]):u.payloadTooLarge&&o?(postMessage({type:"payload_too_large",id:e,isWaf:!0===u.isWaf}),[2]):o&&u.shouldRetry&&n<r.flushMaxRetries?[4,new Promise(function(e){return setTimeout(e,Math.random()*n*1e3)})]:[3,4];case 3:return s.sent(),n++,[3,5];case 4:return c=n>=r.flushMaxRetries?"Session replay event batch rejected due to exceeded retry count":u.message,postMessage({type:"warn",id:e,message:c}),postMessage({type:"complete",id:e}),[2];case 5:return[3,1];case 6:return[2]}})})}onmessage=function(e){return n(void 0,void 0,void 0,function(){var t,r,n,o,a,i,u,c;return s(this,function(s){switch(s.label){case 0:return"fetch-response"===(t=e.data).type?((r=p.get(t.requestId))&&(p.delete(t.requestId),r(t)),[2]):"send"!==t.type?[3,2]:(n=t.id,o=t.payload,a=t.context,i=t.useRetry,u=t.useCustomTransport,c=JSON.stringify(o),[4,y(n,c,a,i,u?v:f)]);case 1:s.sent(),s.label=2;case 2:return[2]}})})};var b=onmessage;return e.trackDestinationOnMessage=b,Object.defineProperty(e,"__esModule",{value:!0}),e}({});\n';export{e as compressionScript,t as trackDestinationScript};
2
2
  //# sourceMappingURL=index-min2.js.map
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"index-min2.js","sources":["../../../session-replay-browser/lib/esm/worker/index.js"],"sourcesContent":["var compressionScript = \"var WebWorker=function(e){\\\"use strict\\\";onmessage=function(e){var s=\\\"string\\\"==typeof e.data?JSON.parse(e.data):e.data,t=s.event,a=s.sessionId,n=t.type,r=t.timestamp,i=t.delay,o=t.data,d=null!=i?JSON.stringify({type:n,timestamp:r,delay:i,data:o}):JSON.stringify({type:n,timestamp:r,data:o});postMessage({compressedEvent:d,sessionId:a})};var s=onmessage;return e.compressionOnMessage=s,Object.defineProperty(e,\\\"__esModule\\\",{value:!0}),e}({});\\n\";\nvar trackDestinationScript = \"var WebWorker=function(e){\\\"use strict\\\";var t,r=function(){return r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e},r.apply(this,arguments)};function n(e,t,r,n){return new(r||(r=Promise))(function(s,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function i(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(a,i)}u((n=n.apply(e,t||[])).next())})}function s(e,t){var r,n,s,o={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},a=Object.create((\\\"function\\\"==typeof Iterator?Iterator:Object).prototype);return a.next=i(0),a.throw=i(1),a.return=i(2),\\\"function\\\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(i){return function(u){return function(i){if(r)throw new TypeError(\\\"Generator is already executing.\\\");for(;a&&(a=0,i[0]&&(o=0)),o;)try{if(r=1,n&&(s=2&i[0]?n.return:i[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,i[1])).done)return s;switch(n=0,s&&(i=[2&i[0],s.value]),i[0]){case 0:case 1:s=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,n=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(s=o.trys,(s=s.length>0&&s[s.length-1])||6!==i[0]&&2!==i[0])){o=0;continue}if(3===i[0]&&(!s||i[1]>s[0]&&i[1]<s[3])){o.label=i[1];break}if(6===i[0]&&o.label<s[1]){o.label=s[1],s=i;break}if(s&&o.label<s[2]){o.label=s[2],o.ops.push(i);break}s[2]&&o.ops.pop(),o.trys.pop();continue}i=t.call(e,o)}catch(e){i=[6,e],n=0}finally{r=s=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}\\\"function\\\"==typeof SuppressedError&&SuppressedError,function(e){e.US=\\\"US\\\",e.EU=\\\"EU\\\",e.STAGING=\\\"STAGING\\\"}(t||(t={})),t.US;var o,a=/payload.*exceed/i,i=\\\"X-Session-Replay-Event-Skipped\\\";!function(e){e.GET_SR_PROPS=\\\"get-sr-props\\\",e.DEBUG_INFO=\\\"debug-info\\\",e.FETCH_REQUEST=\\\"fetch-request\\\",e.METADATA=\\\"metadata\\\",e.TARGETING_DECISION=\\\"targeting-decision\\\",e.REPLAY_GATE_DECISION=\\\"replay-gate-decision\\\"}(o||(o={}));var u=\\\"Network error occurred, event batch rejected\\\";function c(e,t){return n(this,void 0,void 0,function(){var r,o,a,i,u,c,l,d,p,f,v,y,h,b,g=this;return s(this,function(m){switch(m.label){case 0:return m.trys.push([0,4,,5]),r=t.CompressionStream,o=new r(\\\"gzip\\\"),a=o.writable.getWriter(),i=o.readable.getReader(),u=[],c=n(g,void 0,void 0,function(){var e,t,r;return s(this,function(n){switch(n.label){case 0:return[4,i.read()];case 1:if(e=n.sent(),t=e.done,r=e.value,t)return[3,3];u.push(r),n.label=2;case 2:return[3,0];case 3:return[2]}})}),[4,a.write((new TextEncoder).encode(e))];case 1:return m.sent(),[4,a.close()];case 2:return m.sent(),[4,c];case 3:m.sent(),l=u.reduce(function(e,t){return e+t.length},0),d=new Uint8Array(l),p=0;try{for(f=function(e){var t=\\\"function\\\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\\\"number\\\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\\\"Object is not iterable.\\\":\\\"Symbol.iterator is not defined.\\\")}(u),v=f.next();!v.done;v=f.next())y=v.value,d.set(y,p),p+=y.length}catch(e){h={error:e}}finally{try{v&&!v.done&&(b=f.return)&&b.call(f)}finally{if(h)throw h.error}}return[2,d];case 4:return m.sent(),[2,null];case 5:return[2]}})})}var l=0,d=new Map,p=function(e,t){return fetch(e,t)},f=function(e,t){var r=\\\"\\\".concat(++l);return new Promise(function(n,s){var o=t.signal,a=function(){d.delete(r);var e=new Error(\\\"Delegated session replay fetch aborted by send timeout\\\");e.name=\\\"AbortError\\\",s(e)};o.addEventListener(\\\"abort\\\",a,{once:!0}),d.set(r,function(e){o.removeEventListener(\\\"abort\\\",a),e.error?s(new Error(e.body)):n({status:e.status,headers:{get:function(t){return t===i?e.skipHeader:null}},text:function(){return Promise.resolve(e.body)}})}),postMessage({type:\\\"fetch-request\\\",requestId:r,url:e,method:\\\"POST\\\",headers:t.headers,body:t.body,keepalive:t.keepalive})})};function v(e,t,o){var l,d,p,f,v,y,h,b;return n(this,void 0,void 0,function(){var n,g,m,w,S,T,E,k,R,x,C,I,A,M,O;return s(this,function(s){switch(s.label){case 0:n=null!==(l=t.sendTimeoutMs)&&void 0!==l?l:1e4,s.label=1;case 1:return s.trys.push([1,14,,15]),!1!==t.enableTransportCompression&&\\\"CompressionStream\\\"in self?[4,c(e,self)]:[3,3];case 2:return m=s.sent(),[3,4];case 3:m=null,s.label=4;case 4:g=m,w=\\\"\\\".concat(null!==(p=null===(d=t.version)||void 0===d?void 0:d.type)&&void 0!==p?p:\\\"standalone\\\",\\\"/\\\").concat(null!==(v=null===(f=t.version)||void 0===f?void 0:f.version)&&void 0!==v?v:t.sdkVersion),S=new URLSearchParams({device_id:t.deviceId,session_id:\\\"\\\".concat(t.sessionId),type:t.eventType}),T=\\\"\\\".concat((U=t.serverZone,P=t.trackServerUrl,P||(\\\"STAGING\\\"===U?\\\"https://api-sr.stag2.amplitude.com/sessions/v2/track\\\":\\\"EU\\\"===U?\\\"https://api-sr.eu.amplitude.com/sessions/v2/track\\\":\\\"https://api-sr.amplitude.com/sessions/v2/track\\\")),\\\"?\\\").concat(S.toString()),E=r({\\\"Content-Type\\\":\\\"application/json\\\",Accept:\\\"*/*\\\",Authorization:\\\"Bearer \\\".concat(t.apiKey),\\\"X-Client-Version\\\":t.sdkVersion,\\\"X-Client-Library\\\":w,\\\"X-Client-Url\\\":t.currentUrl.substring(0,1e3),\\\"X-Client-Sample-Rate\\\":\\\"\\\".concat(t.sampleRate),\\\"X-Sampling-Hash-Alg\\\":\\\"xxhash32\\\"},g?{\\\"Content-Encoding\\\":\\\"gzip\\\"}:{}),k=g?g.byteLength:new Blob([e]).size,R=new AbortController,x=n>0?setTimeout(function(){R.abort()},n):void 0,C=void 0,s.label=5;case 5:return s.trys.push([5,,7,8]),[4,o(T,{method:\\\"POST\\\",headers:E,body:null!=g?g:e,keepalive:k<=65536,signal:R.signal})];case 6:return C=s.sent(),[3,8];case 7:return x&&clearTimeout(x),[7];case 8:if(null===C)return[2,{shouldRetry:!1,success:!1,message:\\\"Unexpected error occurred\\\"}];if(C.status>=200&&C.status<300)return I=Math.round(new Blob(t.events).size/1024),A=null!==(b=null===(h=null===(y=C.headers)||void 0===y?void 0:y.get)||void 0===h?void 0:h.call(y,i))&&void 0!==b?b:null,[2,{shouldRetry:!1,success:!0,message:\\\"Session replay event batch tracked successfully for session id \\\".concat(t.sessionId,\\\", size of events: \\\").concat(I,\\\" KB\\\"),skipCode:A}];if(413!==C.status)return[3,13];M=\\\"\\\",s.label=9;case 9:return s.trys.push([9,11,,12]),[4,C.text()];case 10:return M=s.sent(),[3,12];case 11:return s.sent(),[3,12];case 12:return[2,{shouldRetry:!1,success:!1,message:u,payloadTooLarge:!0,isWaf:a.test(M)}];case 13:return C.status>=500||408===C.status||429===C.status||499===C.status?[2,{shouldRetry:!0,success:!1,message:\\\"HTTP \\\".concat(C.status)}]:[2,{shouldRetry:!1,success:!1,message:u}];case 14:return(O=s.sent())&&\\\"object\\\"==typeof O&&\\\"AbortError\\\"===O.name?[2,{shouldRetry:!0,success:!1,message:\\\"Session replay worker request timed out after \\\".concat(n,\\\"ms\\\")}]:[2,{shouldRetry:!1,success:!1,message:String(O)}];case 15:return[2]}var U,P})})}function y(e,t,r,o,a){var i;return n(this,void 0,void 0,function(){var n,u,c;return s(this,function(s){switch(s.label){case 0:n=1,s.label=1;case 1:return[4,v(t,r,a)];case 2:return(u=s.sent()).success?(postMessage({type:\\\"log\\\",id:e,message:u.message}),postMessage({type:\\\"complete\\\",id:e,skipCode:null!==(i=u.skipCode)&&void 0!==i?i:null}),[2]):u.payloadTooLarge&&o?(postMessage({type:\\\"payload_too_large\\\",id:e,isWaf:!0===u.isWaf}),[2]):o&&u.shouldRetry&&n<r.flushMaxRetries?[4,new Promise(function(e){return setTimeout(e,Math.random()*n*1e3)})]:[3,4];case 3:return s.sent(),n++,[3,5];case 4:return c=n>=r.flushMaxRetries?\\\"Session replay event batch rejected due to exceeded retry count\\\":u.message,postMessage({type:\\\"warn\\\",id:e,message:c}),postMessage({type:\\\"complete\\\",id:e}),[2];case 5:return[3,1];case 6:return[2]}})})}onmessage=function(e){return n(void 0,void 0,void 0,function(){var t,r,n,o,a,i,u,c;return s(this,function(s){switch(s.label){case 0:return\\\"fetch-response\\\"===(t=e.data).type?((r=d.get(t.requestId))&&(d.delete(t.requestId),r(t)),[2]):\\\"send\\\"!==t.type?[3,2]:(n=t.id,o=t.payload,a=t.context,i=t.useRetry,u=t.useCustomTransport,c=JSON.stringify(o),[4,y(n,c,a,i,u?f:p)]);case 1:s.sent(),s.label=2;case 2:return[2]}})})};var h=onmessage;return e.trackDestinationOnMessage=h,Object.defineProperty(e,\\\"__esModule\\\",{value:!0}),e}({});\\n\";\n\nexport { compressionScript, trackDestinationScript };\n"],"names":["compressionScript","trackDestinationScript"],"mappings":"AAAG,IAACA,EAAoB,4bACpBC,EAAyB"}
1
+ {"version":3,"file":"index-min2.js","sources":["../../../session-replay-browser/lib/esm/worker/index.js"],"sourcesContent":["var compressionScript = \"var WebWorker=function(e){\\\"use strict\\\";onmessage=function(e){var s=\\\"string\\\"==typeof e.data?JSON.parse(e.data):e.data,t=s.event,a=s.sessionId,n=t.type,r=t.timestamp,i=t.delay,o=t.data,d=null!=i?JSON.stringify({type:n,timestamp:r,delay:i,data:o}):JSON.stringify({type:n,timestamp:r,data:o});postMessage({compressedEvent:d,sessionId:a})};var s=onmessage;return e.compressionOnMessage=s,Object.defineProperty(e,\\\"__esModule\\\",{value:!0}),e}({});\\n\";\nvar trackDestinationScript = \"var WebWorker=function(e){\\\"use strict\\\";var t,r=function(){return r=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var s in t=arguments[r])Object.prototype.hasOwnProperty.call(t,s)&&(e[s]=t[s]);return e},r.apply(this,arguments)};function n(e,t,r,n){return new(r||(r=Promise))(function(s,o){function a(e){try{u(n.next(e))}catch(e){o(e)}}function i(e){try{u(n.throw(e))}catch(e){o(e)}}function u(e){var t;e.done?s(e.value):(t=e.value,t instanceof r?t:new r(function(e){e(t)})).then(a,i)}u((n=n.apply(e,t||[])).next())})}function s(e,t){var r,n,s,o={label:0,sent:function(){if(1&s[0])throw s[1];return s[1]},trys:[],ops:[]},a=Object.create((\\\"function\\\"==typeof Iterator?Iterator:Object).prototype);return a.next=i(0),a.throw=i(1),a.return=i(2),\\\"function\\\"==typeof Symbol&&(a[Symbol.iterator]=function(){return this}),a;function i(i){return function(u){return function(i){if(r)throw new TypeError(\\\"Generator is already executing.\\\");for(;a&&(a=0,i[0]&&(o=0)),o;)try{if(r=1,n&&(s=2&i[0]?n.return:i[0]?n.throw||((s=n.return)&&s.call(n),0):n.next)&&!(s=s.call(n,i[1])).done)return s;switch(n=0,s&&(i=[2&i[0],s.value]),i[0]){case 0:case 1:s=i;break;case 4:return o.label++,{value:i[1],done:!1};case 5:o.label++,n=i[1],i=[0];continue;case 7:i=o.ops.pop(),o.trys.pop();continue;default:if(!(s=o.trys,(s=s.length>0&&s[s.length-1])||6!==i[0]&&2!==i[0])){o=0;continue}if(3===i[0]&&(!s||i[1]>s[0]&&i[1]<s[3])){o.label=i[1];break}if(6===i[0]&&o.label<s[1]){o.label=s[1],s=i;break}if(s&&o.label<s[2]){o.label=s[2],o.ops.push(i);break}s[2]&&o.ops.pop(),o.trys.pop();continue}i=t.call(e,o)}catch(e){i=[6,e],n=0}finally{r=s=0}if(5&i[0])throw i[1];return{value:i[0]?i[1]:void 0,done:!0}}([i,u])}}}\\\"function\\\"==typeof SuppressedError&&SuppressedError,function(e){e.US=\\\"US\\\",e.EU=\\\"EU\\\",e.STAGING=\\\"STAGING\\\"}(t||(t={})),t.US;var o,a=/payload.*exceed/i,i=\\\"X-Session-Replay-Event-Skipped\\\";!function(e){e.GET_SR_PROPS=\\\"get-sr-props\\\",e.DEBUG_INFO=\\\"debug-info\\\",e.FETCH_REQUEST=\\\"fetch-request\\\",e.METADATA=\\\"metadata\\\",e.TARGETING_DECISION=\\\"targeting-decision\\\",e.REPLAY_GATE_DECISION=\\\"replay-gate-decision\\\"}(o||(o={}));var u=\\\"Network error occurred, event batch rejected\\\";function c(e,t){return n(this,void 0,void 0,function(){var r,o,a,i,u,c,l,d,p,f,v,h,y,b,g=this;return s(this,function(m){switch(m.label){case 0:return m.trys.push([0,4,,5]),r=t.CompressionStream,o=new r(\\\"gzip\\\"),a=o.writable.getWriter(),i=o.readable.getReader(),u=[],c=n(g,void 0,void 0,function(){var e,t,r;return s(this,function(n){switch(n.label){case 0:return[4,i.read()];case 1:if(e=n.sent(),t=e.done,r=e.value,t)return[3,3];u.push(r),n.label=2;case 2:return[3,0];case 3:return[2]}})}),[4,a.write((new TextEncoder).encode(e))];case 1:return m.sent(),[4,a.close()];case 2:return m.sent(),[4,c];case 3:m.sent(),l=u.reduce(function(e,t){return e+t.length},0),d=new Uint8Array(l),p=0;try{for(f=function(e){var t=\\\"function\\\"==typeof Symbol&&Symbol.iterator,r=t&&e[t],n=0;if(r)return r.call(e);if(e&&\\\"number\\\"==typeof e.length)return{next:function(){return e&&n>=e.length&&(e=void 0),{value:e&&e[n++],done:!e}}};throw new TypeError(t?\\\"Object is not iterable.\\\":\\\"Symbol.iterator is not defined.\\\")}(u),v=f.next();!v.done;v=f.next())h=v.value,d.set(h,p),p+=h.length}catch(e){y={error:e}}finally{try{v&&!v.done&&(b=f.return)&&b.call(f)}finally{if(y)throw y.error}}return[2,d];case 4:return m.sent(),[2,null];case 5:return[2]}})})}function l(e){for(var t=e.length,r=0;r<t&&!(e.charCodeAt(r)>127);r++);if(r===t)return t;for(var n=r;r<t;r++){var s=e.charCodeAt(r);if(s<=127)n++;else if(s<=2047)n+=2;else if(s>=55296&&s<=56319){var o=r+1<t?e.charCodeAt(r+1):NaN;o>=56320&&o<=57343?(n+=4,r++):n+=3}else n+=3}return n}var d=0,p=new Map,f=function(e,t){return fetch(e,t)},v=function(e,t){var r=\\\"\\\".concat(++d);return new Promise(function(n,s){var o=t.signal,a=function(){p.delete(r);var e=new Error(\\\"Delegated session replay fetch aborted by send timeout\\\");e.name=\\\"AbortError\\\",s(e)};o.addEventListener(\\\"abort\\\",a,{once:!0}),p.set(r,function(e){o.removeEventListener(\\\"abort\\\",a),e.error?s(new Error(e.body)):n({status:e.status,headers:{get:function(t){return t===i?e.skipHeader:null}},text:function(){return Promise.resolve(e.body)}})}),postMessage({type:\\\"fetch-request\\\",requestId:r,url:e,method:\\\"POST\\\",headers:t.headers,body:t.body,keepalive:t.keepalive})})};function h(e,t,o){var d,p,f,v,h,y,b,g;return n(this,void 0,void 0,function(){var n,m,w,S,T,E,k,R,C,x,A,I,M,O,U;return s(this,function(s){switch(s.label){case 0:n=null!==(d=t.sendTimeoutMs)&&void 0!==d?d:1e4,s.label=1;case 1:return s.trys.push([1,14,,15]),!1!==t.enableTransportCompression&&\\\"CompressionStream\\\"in self?[4,c(e,self)]:[3,3];case 2:return w=s.sent(),[3,4];case 3:w=null,s.label=4;case 4:m=w,S=\\\"\\\".concat(null!==(f=null===(p=t.version)||void 0===p?void 0:p.type)&&void 0!==f?f:\\\"standalone\\\",\\\"/\\\").concat(null!==(h=null===(v=t.version)||void 0===v?void 0:v.version)&&void 0!==h?h:t.sdkVersion),T=new URLSearchParams({device_id:t.deviceId,session_id:\\\"\\\".concat(t.sessionId),type:t.eventType}),E=\\\"\\\".concat((P=t.serverZone,_=t.trackServerUrl,_||(\\\"STAGING\\\"===P?\\\"https://api-sr.stag2.amplitude.com/sessions/v2/track\\\":\\\"EU\\\"===P?\\\"https://api-sr.eu.amplitude.com/sessions/v2/track\\\":\\\"https://api-sr.amplitude.com/sessions/v2/track\\\")),\\\"?\\\").concat(T.toString()),k=r({\\\"Content-Type\\\":\\\"application/json\\\",Accept:\\\"*/*\\\",Authorization:\\\"Bearer \\\".concat(t.apiKey),\\\"X-Client-Version\\\":t.sdkVersion,\\\"X-Client-Library\\\":S,\\\"X-Client-Url\\\":t.currentUrl.substring(0,1e3),\\\"X-Client-Sample-Rate\\\":\\\"\\\".concat(t.sampleRate),\\\"X-Sampling-Hash-Alg\\\":\\\"xxhash32\\\"},m?{\\\"Content-Encoding\\\":\\\"gzip\\\"}:{}),R=m?m.byteLength:l(e),C=new AbortController,x=n>0?setTimeout(function(){C.abort()},n):void 0,A=void 0,s.label=5;case 5:return s.trys.push([5,,7,8]),[4,o(E,{method:\\\"POST\\\",headers:k,body:null!=m?m:e,keepalive:R<=65536,signal:C.signal})];case 6:return A=s.sent(),[3,8];case 7:return x&&clearTimeout(x),[7];case 8:if(null===A)return[2,{shouldRetry:!1,success:!1,message:\\\"Unexpected error occurred\\\"}];if(A.status>=200&&A.status<300)return I=Math.round(function(e){for(var t=0,r=0;r<e.length;r++)t+=l(e[r]);return t}(t.events)/1024),M=null!==(g=null===(b=null===(y=A.headers)||void 0===y?void 0:y.get)||void 0===b?void 0:b.call(y,i))&&void 0!==g?g:null,[2,{shouldRetry:!1,success:!0,message:\\\"Session replay event batch tracked successfully for session id \\\".concat(t.sessionId,\\\", size of events: \\\").concat(I,\\\" KB\\\"),skipCode:M}];if(413!==A.status)return[3,13];O=\\\"\\\",s.label=9;case 9:return s.trys.push([9,11,,12]),[4,A.text()];case 10:return O=s.sent(),[3,12];case 11:return s.sent(),[3,12];case 12:return[2,{shouldRetry:!1,success:!1,message:u,payloadTooLarge:!0,isWaf:a.test(O)}];case 13:return A.status>=500||408===A.status||429===A.status||499===A.status?[2,{shouldRetry:!0,success:!1,message:\\\"HTTP \\\".concat(A.status)}]:[2,{shouldRetry:!1,success:!1,message:u}];case 14:return(U=s.sent())&&\\\"object\\\"==typeof U&&\\\"AbortError\\\"===U.name?[2,{shouldRetry:!0,success:!1,message:\\\"Session replay worker request timed out after \\\".concat(n,\\\"ms\\\")}]:[2,{shouldRetry:!1,success:!1,message:String(U)}];case 15:return[2]}var P,_})})}function y(e,t,r,o,a){var i;return n(this,void 0,void 0,function(){var n,u,c;return s(this,function(s){switch(s.label){case 0:n=1,s.label=1;case 1:return[4,h(t,r,a)];case 2:return(u=s.sent()).success?(postMessage({type:\\\"log\\\",id:e,message:u.message}),postMessage({type:\\\"complete\\\",id:e,skipCode:null!==(i=u.skipCode)&&void 0!==i?i:null}),[2]):u.payloadTooLarge&&o?(postMessage({type:\\\"payload_too_large\\\",id:e,isWaf:!0===u.isWaf}),[2]):o&&u.shouldRetry&&n<r.flushMaxRetries?[4,new Promise(function(e){return setTimeout(e,Math.random()*n*1e3)})]:[3,4];case 3:return s.sent(),n++,[3,5];case 4:return c=n>=r.flushMaxRetries?\\\"Session replay event batch rejected due to exceeded retry count\\\":u.message,postMessage({type:\\\"warn\\\",id:e,message:c}),postMessage({type:\\\"complete\\\",id:e}),[2];case 5:return[3,1];case 6:return[2]}})})}onmessage=function(e){return n(void 0,void 0,void 0,function(){var t,r,n,o,a,i,u,c;return s(this,function(s){switch(s.label){case 0:return\\\"fetch-response\\\"===(t=e.data).type?((r=p.get(t.requestId))&&(p.delete(t.requestId),r(t)),[2]):\\\"send\\\"!==t.type?[3,2]:(n=t.id,o=t.payload,a=t.context,i=t.useRetry,u=t.useCustomTransport,c=JSON.stringify(o),[4,y(n,c,a,i,u?v:f)]);case 1:s.sent(),s.label=2;case 2:return[2]}})})};var b=onmessage;return e.trackDestinationOnMessage=b,Object.defineProperty(e,\\\"__esModule\\\",{value:!0}),e}({});\\n\";\n\nexport { compressionScript, trackDestinationScript };\n"],"names":["compressionScript","trackDestinationScript"],"mappings":"AAAG,IAACA,EAAoB,4bACpBC,EAAyB"}
@@ -1,2 +1,2 @@
1
- import{_ as t,a as e,b as n,c as r,d as o,g as i}from"./index-min.js";function s(t){return"string"==typeof t||"number"==typeof t||"boolean"==typeof t||null==t}function a(t,e,n){t&&l({json:t,allowlist:e.map(u),excludelist:n.map(u),ancestors:[]})}function l(r){var o,i,a=r.json,u=r.targetObject,c=r.allowlist,h=r.excludelist,d=r.ancestors,v=r.parentObject,p=r.targetKey;u||(u=a);var y=Object.keys(u);try{for(var g=t(y),b=g.next();!b.done;b=g.next()){var m=b.value,w=e(e([],n(d),!1),[m],!1);s(u[m])?f(w,c)&&!f(w,h)||delete u[m]:l({json:a,targetObject:u[m],allowlist:c,excludelist:h,ancestors:w,parentObject:u,targetKey:m})}}catch(t){o={error:t}}finally{try{b&&!b.done&&(i=g.return)&&i.call(g)}finally{if(o)throw o.error}}0===Object.keys(u).length&&v&&p&&delete v[p]}function u(t){return t.startsWith("/")&&(t=t.slice(1)),t.split("/").map(function(t){return t.replace(/~0/g,"~").replace(/~1/g,"/")})}function c(t,e,n,r){if(void 0===n&&(n=0),void 0===r&&(r=0),r===e.length)return n===t.length;if(n===t.length){for(;r<e.length&&"**"===e[r];)r++;return r===e.length}var o=e[r];if("**"===o){if(r+1===e.length)return!0;for(var i=n;i<=t.length;i++)if(c(t,e,i,r+1))return!0;return!1}return("*"===o||o===t[n])&&c(t,e,n+1,r+1)}function f(t,e){return e.some(function(e){return c(t,e)})}var h=function(t){return void 0!==t&&("boolean"==typeof t?t:!1!==t.enabled)},d=function(t,e,n,r){var o=function(t){var e;return"object"==typeof t&&null!==t?{allowlist:null!==(e=t.allowlist)&&void 0!==e?e:[],excludelist:t.excludelist||t.blocklist||[]}:{allowlist:[],excludelist:[]}}(e),i=function(t,e,n){if(0===e.length&&0===n.length)return t;var r=e.length>0?e:["/**"];try{var o=JSON.parse(t);return a(o,r,n),JSON.stringify(o)}catch(e){return t}}(t,o.allowlist,o.excludelist);return r(i,n)},v=["image/","audio/","video/","application/octet-stream","font/"];function p(t,e){if(new Blob([t]).size<=e)return{value:t,truncated:!1};for(var n=0,r=Math.min(t.length,e);n<r;){var o=Math.ceil((n+r)/2);new Blob([t.slice(0,o)]).size<=e?n=o:r=o-1}return n>0&&t.charCodeAt(n-1)>=55296&&t.charCodeAt(n-1)<=56319&&(n-=1),{value:t.slice(0,n),truncated:!0}}var y=function(){function t(){this.fetchObserver=null}return t.prototype.start=function(t,e){this.eventCallback=t,this.networkConfig=e,this.observeFetch()},t.prototype.stop=function(){var t;null===(t=this.fetchObserver)||void 0===t||t.call(this),this.fetchObserver=null,this.eventCallback=void 0,this.networkConfig=void 0},t.prototype.notifyEvent=function(t){var e;null===(e=this.eventCallback)||void 0===e||e.call(this,t)},t.prototype.observeFetch=function(){var t=this,e=i();if(e){var n=e.fetch;n&&(e.fetch=function(e,i){return r(t,void 0,void 0,function(){var t,r,s,a,l,u,c,f,y,g,b,m,w=this;return o(this,function(o){switch(o.label){case 0:t=Date.now(),r={timestamp:t,type:"fetch",method:(null==i?void 0:i.method)||"GET",url:e.toString(),requestHeaders:null==i?void 0:i.headers},(s=null===(b=this.networkConfig)||void 0===b?void 0:b.body)&&h(s.request)&&void 0!==(a=function(t){if(null!=t){if("string"==typeof t)return t;if(t instanceof URLSearchParams)return t.toString();if(t instanceof FormData){var e=[];return t.forEach(function(t,n){e.push("".concat(n,"=").concat("string"==typeof t?t:"[File]"))}),e.join("&")}}}(null==i?void 0:i.body))&&(l=null!==(m=s.maxBodySizeBytes)&&void 0!==m?m:10240,r.requestBody=d(a,s.request,l,p).value),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,n(e,i)];case 2:return u=o.sent(),y=Date.now(),r.status=u.status,r.duration=y-t,c={},u.headers.forEach(function(t,e){c[e]=t}),r.responseHeaders=c,s&&h(s.response)?!function(t){return!!t&&v.some(function(e){return t.toLowerCase().startsWith(e)})}(c["content-type"]||null)?u.clone().text().then(function(t){var e,n=null!==(e=s.maxBodySizeBytes)&&void 0!==e?e:10240,o=d(t,s.response,n,p),i=o.value,a=o.truncated;r.responseBody=i,r.responseBodyStatus=a?"truncated":"captured",w.notifyEvent(r)},function(){r.responseBodyStatus="error",w.notifyEvent(r)}):(r.responseBodyStatus="skipped_binary",this.notifyEvent(r)):this.notifyEvent(r),[2,u];case 3:throw f=o.sent(),y=Date.now(),r.duration=y-t,g=f,r.error={name:g.name||"UnknownError",message:g.message||"An unknown error occurred"},this.notifyEvent(r),f;case 4:return[2]}})})},this.fetchObserver=function(){e.fetch=n})}},t}();export{y as NetworkObservers};
1
+ import{_ as t,a as e,b as n,c as r,d as o,g as i,t as s}from"./index-min.js";function a(t){return"string"==typeof t||"number"==typeof t||"boolean"==typeof t||null==t}function l(t,e,n){t&&u({json:t,allowlist:e.map(c),excludelist:n.map(c),ancestors:[]})}function u(r){var o,i,s=r.json,l=r.targetObject,c=r.allowlist,f=r.excludelist,d=r.ancestors,v=r.parentObject,p=r.targetKey;l||(l=s);var y=Object.keys(l);try{for(var g=t(y),b=g.next();!b.done;b=g.next()){var m=b.value,w=e(e([],n(d),!1),[m],!1);a(l[m])?h(w,c)&&!h(w,f)||delete l[m]:u({json:s,targetObject:l[m],allowlist:c,excludelist:f,ancestors:w,parentObject:l,targetKey:m})}}catch(t){o={error:t}}finally{try{b&&!b.done&&(i=g.return)&&i.call(g)}finally{if(o)throw o.error}}0===Object.keys(l).length&&v&&p&&delete v[p]}function c(t){return t.startsWith("/")&&(t=t.slice(1)),t.split("/").map(function(t){return t.replace(/~0/g,"~").replace(/~1/g,"/")})}function f(t,e,n,r){if(void 0===n&&(n=0),void 0===r&&(r=0),r===e.length)return n===t.length;if(n===t.length){for(;r<e.length&&"**"===e[r];)r++;return r===e.length}var o=e[r];if("**"===o){if(r+1===e.length)return!0;for(var i=n;i<=t.length;i++)if(f(t,e,i,r+1))return!0;return!1}return("*"===o||o===t[n])&&f(t,e,n+1,r+1)}function h(t,e){return e.some(function(e){return f(t,e)})}var d=function(t){return void 0!==t&&("boolean"==typeof t?t:!1!==t.enabled)},v=function(t,e,n,r){var o=function(t){var e;return"object"==typeof t&&null!==t?{allowlist:null!==(e=t.allowlist)&&void 0!==e?e:[],excludelist:t.excludelist||t.blocklist||[]}:{allowlist:[],excludelist:[]}}(e),i=function(t,e,n){if(0===e.length&&0===n.length)return t;var r=e.length>0?e:["/**"];try{var o=JSON.parse(t);return l(o,r,n),JSON.stringify(o)}catch(e){return t}}(t,o.allowlist,o.excludelist);return r(i,n)},p=["image/","audio/","video/","application/octet-stream","font/"];function y(t,e){return s(t,e)}var g=function(){function t(){this.fetchObserver=null}return t.prototype.start=function(t,e){this.eventCallback=t,this.networkConfig=e,this.observeFetch()},t.prototype.stop=function(){var t;null===(t=this.fetchObserver)||void 0===t||t.call(this),this.fetchObserver=null,this.eventCallback=void 0,this.networkConfig=void 0},t.prototype.notifyEvent=function(t){var e;null===(e=this.eventCallback)||void 0===e||e.call(this,t)},t.prototype.observeFetch=function(){var t=this,e=i();if(e){var n=e.fetch;n&&(e.fetch=function(e,i){return r(t,void 0,void 0,function(){var t,r,s,a,l,u,c,f,h,g,b,m,w=this;return o(this,function(o){switch(o.label){case 0:t=Date.now(),r={timestamp:t,type:"fetch",method:(null==i?void 0:i.method)||"GET",url:e.toString(),requestHeaders:null==i?void 0:i.headers},(s=null===(b=this.networkConfig)||void 0===b?void 0:b.body)&&d(s.request)&&void 0!==(a=function(t){if(null!=t){if("string"==typeof t)return t;if(t instanceof URLSearchParams)return t.toString();if(t instanceof FormData){var e=[];return t.forEach(function(t,n){e.push("".concat(n,"=").concat("string"==typeof t?t:"[File]"))}),e.join("&")}}}(null==i?void 0:i.body))&&(l=null!==(m=s.maxBodySizeBytes)&&void 0!==m?m:10240,r.requestBody=v(a,s.request,l,y).value),o.label=1;case 1:return o.trys.push([1,3,,4]),[4,n(e,i)];case 2:return u=o.sent(),h=Date.now(),r.status=u.status,r.duration=h-t,c={},u.headers.forEach(function(t,e){c[e]=t}),r.responseHeaders=c,s&&d(s.response)?!function(t){return!!t&&p.some(function(e){return t.toLowerCase().startsWith(e)})}(c["content-type"]||null)?u.clone().text().then(function(t){var e,n=null!==(e=s.maxBodySizeBytes)&&void 0!==e?e:10240,o=v(t,s.response,n,y),i=o.value,a=o.truncated;r.responseBody=i,r.responseBodyStatus=a?"truncated":"captured",w.notifyEvent(r)},function(){r.responseBodyStatus="error",w.notifyEvent(r)}):(r.responseBodyStatus="skipped_binary",this.notifyEvent(r)):this.notifyEvent(r),[2,u];case 3:throw f=o.sent(),h=Date.now(),r.duration=h-t,g=f,r.error={name:g.name||"UnknownError",message:g.message||"An unknown error occurred"},this.notifyEvent(r),f;case 4:return[2]}})})},this.fetchObserver=function(){e.fetch=n})}},t}();export{g as NetworkObservers};
2
2
  //# sourceMappingURL=observers-min.js.map
Binary file
@@ -1 +1 @@
1
- {"version":3,"file":"observers-min.js","sources":["../../../analytics-core/lib/esm/utils/json-query.js","../../../session-replay-browser/lib/esm/network-body-capture.js","../../../session-replay-browser/lib/esm/observers.js"],"sourcesContent":["import { __read, __spreadArray, __values } from \"tslib\";\nfunction isJsonPrimitive(json) {\n return (typeof json === 'string' ||\n typeof json === 'number' ||\n typeof json === 'boolean' ||\n json === null ||\n json === undefined);\n}\n/**\n * Prune a JSON object to only include the keys in the allowlist and excludes the keys\n * in the exclude list.\n *\n * This function is a mutative function that will modify the original JSON object.\n * This is done to avoid creating a new JSON object and copying the data.\n *\n * @param json - The JSON object to prune.\n * @param allowlist - The keys to include in the pruned JSON object.\n * @param excludelist - The keys to exclude from the pruned JSON object.\n */\nexport function pruneJson(json, allowlist, excludelist) {\n if (!json)\n return;\n // tokenize the allowlist and excludelist\n var allowlistTokens = allowlist.map(tokenizeJsonPath);\n var excludelistTokens = excludelist.map(tokenizeJsonPath);\n _pruneJson({\n json: json,\n allowlist: allowlistTokens,\n excludelist: excludelistTokens,\n ancestors: [],\n });\n}\nexport function _pruneJson(_a) {\n var e_1, _b;\n var json = _a.json, targetObject = _a.targetObject, allowlist = _a.allowlist, excludelist = _a.excludelist, ancestors = _a.ancestors, parentObject = _a.parentObject, targetKey = _a.targetKey;\n if (!targetObject) {\n targetObject = json;\n }\n var keys = Object.keys(targetObject);\n try {\n for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n var key = keys_1_1.value;\n var path = __spreadArray(__spreadArray([], __read(ancestors), false), [key], false);\n if (isJsonPrimitive(targetObject[key])) {\n // if the value does not match allowlist or matches exclude list, delete it\n if (!hasPathMatchInList(path, allowlist) || hasPathMatchInList(path, excludelist)) {\n delete targetObject[key];\n }\n }\n else {\n _pruneJson({\n json: json,\n targetObject: targetObject[key],\n allowlist: allowlist,\n excludelist: excludelist,\n ancestors: path,\n parentObject: targetObject,\n targetKey: key,\n });\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_b = keys_1.return)) _b.call(keys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // if this object is empty now, delete the whole object\n if (Object.keys(targetObject).length === 0 && parentObject && targetKey) {\n delete parentObject[targetKey];\n }\n}\n/**\n * Tokenize a JSON path string into an array of strings.\n * Escapes ~0 and ~1 to ~ and / respectively.\n *\n * e.g.) turns string \"a/b/c\" into [\"a\", \"b\", \"c\"]\n *\n * @param path - The JSON path to tokenize.\n * @returns The tokenized JSON path.\n */\nexport function tokenizeJsonPath(path) {\n if (path.startsWith('/')) {\n path = path.slice(1);\n }\n return path.split('/').map(function (token) { return token.replace(/~0/g, '~').replace(/~1/g, '/'); });\n}\n/**\n * Check if a JSON path matches a path matcher.\n *\n * Rules:\n * 1. If a key in a path and a matcher are the same, then they match, move to the next\n * 2. If the matcher is a *, then it matches the key, move to the next\n * 3. If the matcher is a **, then it matches >=0 keys\n *\n * @param path - The path to check.\n * @param pathMatcher - The path matcher to check against.\n * @param i - The current index of the path.\n * @param j - The current index of the path matcher.\n * @returns True if the path matches the path matcher, false otherwise.\n */\nexport function isPathMatch(path, pathMatcher, i, j) {\n if (i === void 0) { i = 0; }\n if (j === void 0) { j = 0; }\n if (j === pathMatcher.length) {\n return i === path.length;\n }\n if (i === path.length) {\n while (j < pathMatcher.length && pathMatcher[j] === '**') {\n j++;\n }\n return j === pathMatcher.length;\n }\n var currentMatcher = pathMatcher[j];\n if (currentMatcher === '**') {\n if (j + 1 === pathMatcher.length) {\n return true;\n }\n for (var k = i; k <= path.length; k++) {\n if (isPathMatch(path, pathMatcher, k, j + 1)) {\n return true;\n }\n }\n return false;\n }\n else if (currentMatcher === '*' || currentMatcher === path[i]) {\n return isPathMatch(path, pathMatcher, i + 1, j + 1);\n }\n else {\n return false;\n }\n}\n/**\n * Check if a JSON path matches any of the path matchers in the allow or exclude list.\n *\n * @param path - The JSON path to check.\n * @param allowOrExcludeList - The allow or exclude list to check against.\n * @returns True if the path matches any of the path matchers in the allow or exclude list, false otherwise.\n */\nfunction hasPathMatchInList(path, allowOrExcludeList) {\n return allowOrExcludeList.some(function (l) { return isPathMatch(path, l); });\n}\n//# sourceMappingURL=json-query.js.map","import { pruneJson } from '@amplitude/analytics-core';\nexport var isBodyCaptureEnabled = function (config) {\n if (config === undefined) {\n return false;\n }\n if (typeof config === 'boolean') {\n return config;\n }\n return config.enabled !== false;\n};\nexport var getBodyMaskingLists = function (config) {\n var _a;\n if (typeof config === 'object' && config !== null) {\n return {\n allowlist: (_a = config.allowlist) !== null && _a !== void 0 ? _a : [],\n excludelist: config.excludelist || config.blocklist || [],\n };\n }\n return { allowlist: [], excludelist: [] };\n};\nexport var applyBodyMasking = function (serialized, allowlist, excludelist) {\n if (allowlist.length === 0 && excludelist.length === 0) {\n return serialized;\n }\n var effectiveAllowlist = allowlist.length > 0 ? allowlist : ['/**'];\n try {\n var json = JSON.parse(serialized);\n pruneJson(json, effectiveAllowlist, excludelist);\n return JSON.stringify(json);\n }\n catch (_a) {\n return serialized;\n }\n};\nexport var captureSerializedBody = function (serialized, config, maxBytes, truncate) {\n var _a = getBodyMaskingLists(config), allowlist = _a.allowlist, excludelist = _a.excludelist;\n var masked = applyBodyMasking(serialized, allowlist, excludelist);\n return truncate(masked, maxBytes);\n};\n//# sourceMappingURL=network-body-capture.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { getGlobalScope } from '@amplitude/analytics-core';\nimport { captureSerializedBody, isBodyCaptureEnabled } from './network-body-capture';\nvar DEFAULT_MAX_BODY_SIZE_BYTES = 10240; // 10KB\nvar BINARY_CONTENT_TYPE_PREFIXES = ['image/', 'audio/', 'video/', 'application/octet-stream', 'font/'];\nfunction isBinaryContentType(contentType) {\n if (!contentType)\n return false;\n return BINARY_CONTENT_TYPE_PREFIXES.some(function (prefix) { return contentType.toLowerCase().startsWith(prefix); });\n}\nfunction serializeRequestBody(body) {\n if (body === null || body === undefined)\n return undefined;\n if (typeof body === 'string')\n return body;\n if (body instanceof URLSearchParams)\n return body.toString();\n if (body instanceof FormData) {\n var parts_1 = [];\n body.forEach(function (value, key) {\n parts_1.push(\"\".concat(key, \"=\").concat(typeof value === 'string' ? value : '[File]'));\n });\n return parts_1.join('&');\n }\n // Blob, ArrayBuffer, ArrayBufferView, ReadableStream — skip\n return undefined;\n}\nfunction truncateToByteLimit(str, maxBytes) {\n if (new Blob([str]).size <= maxBytes) {\n return { value: str, truncated: false };\n }\n // Binary search for the longest prefix whose UTF-8 byte length fits within maxBytes.\n // Cap hi at maxBytes since each UTF-8 character is at least 1 byte, so no more than\n // maxBytes characters can ever fit — this avoids large intermediate Blob allocations.\n var lo = 0;\n var hi = Math.min(str.length, maxBytes);\n while (lo < hi) {\n var mid = Math.ceil((lo + hi) / 2);\n if (new Blob([str.slice(0, mid)]).size <= maxBytes) {\n lo = mid;\n }\n else {\n hi = mid - 1;\n }\n }\n // Avoid splitting a surrogate pair: if lo landed after a high surrogate, back up one position\n if (lo > 0 && str.charCodeAt(lo - 1) >= 0xd800 && str.charCodeAt(lo - 1) <= 0xdbff) {\n lo -= 1;\n }\n return { value: str.slice(0, lo), truncated: true };\n}\nvar NetworkObservers = /** @class */ (function () {\n function NetworkObservers() {\n this.fetchObserver = null;\n }\n NetworkObservers.prototype.start = function (eventCallback, networkConfig) {\n this.eventCallback = eventCallback;\n this.networkConfig = networkConfig;\n this.observeFetch();\n };\n NetworkObservers.prototype.stop = function () {\n var _a;\n (_a = this.fetchObserver) === null || _a === void 0 ? void 0 : _a.call(this);\n this.fetchObserver = null;\n this.eventCallback = undefined;\n this.networkConfig = undefined;\n };\n NetworkObservers.prototype.notifyEvent = function (event) {\n var _a;\n (_a = this.eventCallback) === null || _a === void 0 ? void 0 : _a.call(this, event);\n };\n NetworkObservers.prototype.observeFetch = function () {\n var _this = this;\n var globalScope = getGlobalScope();\n if (!globalScope)\n return;\n var originalFetch = globalScope.fetch;\n if (!originalFetch)\n return;\n globalScope.fetch = function (input, init) { return __awaiter(_this, void 0, void 0, function () {\n var startTime, requestEvent, bodyConfig, serialized, maxBytes, response, endTime, headers_1, contentType, cloned, error_1, endTime, typedError;\n var _this = this;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n startTime = Date.now();\n requestEvent = {\n timestamp: startTime,\n type: 'fetch',\n method: (init === null || init === void 0 ? void 0 : init.method) || 'GET',\n url: input.toString(),\n requestHeaders: init === null || init === void 0 ? void 0 : init.headers,\n };\n bodyConfig = (_a = this.networkConfig) === null || _a === void 0 ? void 0 : _a.body;\n if (bodyConfig && isBodyCaptureEnabled(bodyConfig.request)) {\n serialized = serializeRequestBody(init === null || init === void 0 ? void 0 : init.body);\n if (serialized !== undefined) {\n maxBytes = (_b = bodyConfig.maxBodySizeBytes) !== null && _b !== void 0 ? _b : DEFAULT_MAX_BODY_SIZE_BYTES;\n requestEvent.requestBody = captureSerializedBody(serialized, bodyConfig.request, maxBytes, truncateToByteLimit).value;\n }\n }\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 4]);\n return [4 /*yield*/, originalFetch(input, init)];\n case 2:\n response = _c.sent();\n endTime = Date.now();\n requestEvent.status = response.status;\n requestEvent.duration = endTime - startTime;\n headers_1 = {};\n response.headers.forEach(function (value, key) {\n headers_1[key] = value;\n });\n requestEvent.responseHeaders = headers_1;\n if (bodyConfig && isBodyCaptureEnabled(bodyConfig.response)) {\n contentType = headers_1['content-type'] || null;\n if (isBinaryContentType(contentType)) {\n requestEvent.responseBodyStatus = 'skipped_binary';\n this.notifyEvent(requestEvent);\n }\n else {\n cloned = response.clone();\n // Read body without blocking the response return to the caller\n cloned.text().then(function (text) {\n var _a;\n var maxBytes = (_a = bodyConfig.maxBodySizeBytes) !== null && _a !== void 0 ? _a : DEFAULT_MAX_BODY_SIZE_BYTES;\n var _b = captureSerializedBody(text, bodyConfig.response, maxBytes, truncateToByteLimit), value = _b.value, truncated = _b.truncated;\n requestEvent.responseBody = value;\n requestEvent.responseBodyStatus = truncated ? 'truncated' : 'captured';\n _this.notifyEvent(requestEvent);\n }, function () {\n requestEvent.responseBodyStatus = 'error';\n _this.notifyEvent(requestEvent);\n });\n }\n }\n else {\n this.notifyEvent(requestEvent);\n }\n return [2 /*return*/, response];\n case 3:\n error_1 = _c.sent();\n endTime = Date.now();\n requestEvent.duration = endTime - startTime;\n typedError = error_1;\n requestEvent.error = {\n name: typedError.name || 'UnknownError',\n message: typedError.message || 'An unknown error occurred',\n };\n this.notifyEvent(requestEvent);\n throw error_1;\n case 4: return [2 /*return*/];\n }\n });\n }); };\n this.fetchObserver = function () {\n globalScope.fetch = originalFetch;\n };\n };\n return NetworkObservers;\n}());\nexport { NetworkObservers };\n//# sourceMappingURL=observers.js.map"],"names":["isJsonPrimitive","json","pruneJson","allowlist","excludelist","_pruneJson","map","tokenizeJsonPath","ancestors","_a","e_1","_b","targetObject","parentObject","targetKey","keys","Object","keys_1","__values","keys_1_1","next","done","key","value","path","__spreadArray","__read","hasPathMatchInList","e_1_1","error","return","call","length","startsWith","slice","split","token","replace","isPathMatch","pathMatcher","i","j","currentMatcher","k","allowOrExcludeList","some","l","isBodyCaptureEnabled","config","undefined","enabled","captureSerializedBody","serialized","maxBytes","truncate","blocklist","getBodyMaskingLists","masked","effectiveAllowlist","JSON","parse","stringify","applyBodyMasking","BINARY_CONTENT_TYPE_PREFIXES","truncateToByteLimit","str","Blob","size","truncated","lo","hi","Math","min","mid","ceil","charCodeAt","NetworkObservers","this","fetchObserver","prototype","start","eventCallback","networkConfig","observeFetch","stop","notifyEvent","event","_this","globalScope","getGlobalScope","originalFetch","fetch","input","init","__awaiter","startTime","requestEvent","bodyConfig","response","headers_1","error_1","endTime","typedError","__generator","_c","label","Date","now","timestamp","type","method","url","toString","requestHeaders","headers","body","request","URLSearchParams","FormData","parts_1","forEach","push","concat","join","serializeRequestBody","maxBodySizeBytes","requestBody","trys","sent","status","duration","responseHeaders","contentType","prefix","toLowerCase","isBinaryContentType","clone","text","then","responseBody","responseBodyStatus","name","message"],"mappings":"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"}
1
+ {"version":3,"file":"observers-min.js","sources":["../../../analytics-core/lib/esm/utils/json-query.js","../../../session-replay-browser/lib/esm/network-body-capture.js","../../../session-replay-browser/lib/esm/observers.js"],"sourcesContent":["import { __read, __spreadArray, __values } from \"tslib\";\nfunction isJsonPrimitive(json) {\n return (typeof json === 'string' ||\n typeof json === 'number' ||\n typeof json === 'boolean' ||\n json === null ||\n json === undefined);\n}\n/**\n * Prune a JSON object to only include the keys in the allowlist and excludes the keys\n * in the exclude list.\n *\n * This function is a mutative function that will modify the original JSON object.\n * This is done to avoid creating a new JSON object and copying the data.\n *\n * @param json - The JSON object to prune.\n * @param allowlist - The keys to include in the pruned JSON object.\n * @param excludelist - The keys to exclude from the pruned JSON object.\n */\nexport function pruneJson(json, allowlist, excludelist) {\n if (!json)\n return;\n // tokenize the allowlist and excludelist\n var allowlistTokens = allowlist.map(tokenizeJsonPath);\n var excludelistTokens = excludelist.map(tokenizeJsonPath);\n _pruneJson({\n json: json,\n allowlist: allowlistTokens,\n excludelist: excludelistTokens,\n ancestors: [],\n });\n}\nexport function _pruneJson(_a) {\n var e_1, _b;\n var json = _a.json, targetObject = _a.targetObject, allowlist = _a.allowlist, excludelist = _a.excludelist, ancestors = _a.ancestors, parentObject = _a.parentObject, targetKey = _a.targetKey;\n if (!targetObject) {\n targetObject = json;\n }\n var keys = Object.keys(targetObject);\n try {\n for (var keys_1 = __values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {\n var key = keys_1_1.value;\n var path = __spreadArray(__spreadArray([], __read(ancestors), false), [key], false);\n if (isJsonPrimitive(targetObject[key])) {\n // if the value does not match allowlist or matches exclude list, delete it\n if (!hasPathMatchInList(path, allowlist) || hasPathMatchInList(path, excludelist)) {\n delete targetObject[key];\n }\n }\n else {\n _pruneJson({\n json: json,\n targetObject: targetObject[key],\n allowlist: allowlist,\n excludelist: excludelist,\n ancestors: path,\n parentObject: targetObject,\n targetKey: key,\n });\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (keys_1_1 && !keys_1_1.done && (_b = keys_1.return)) _b.call(keys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // if this object is empty now, delete the whole object\n if (Object.keys(targetObject).length === 0 && parentObject && targetKey) {\n delete parentObject[targetKey];\n }\n}\n/**\n * Tokenize a JSON path string into an array of strings.\n * Escapes ~0 and ~1 to ~ and / respectively.\n *\n * e.g.) turns string \"a/b/c\" into [\"a\", \"b\", \"c\"]\n *\n * @param path - The JSON path to tokenize.\n * @returns The tokenized JSON path.\n */\nexport function tokenizeJsonPath(path) {\n if (path.startsWith('/')) {\n path = path.slice(1);\n }\n return path.split('/').map(function (token) { return token.replace(/~0/g, '~').replace(/~1/g, '/'); });\n}\n/**\n * Check if a JSON path matches a path matcher.\n *\n * Rules:\n * 1. If a key in a path and a matcher are the same, then they match, move to the next\n * 2. If the matcher is a *, then it matches the key, move to the next\n * 3. If the matcher is a **, then it matches >=0 keys\n *\n * @param path - The path to check.\n * @param pathMatcher - The path matcher to check against.\n * @param i - The current index of the path.\n * @param j - The current index of the path matcher.\n * @returns True if the path matches the path matcher, false otherwise.\n */\nexport function isPathMatch(path, pathMatcher, i, j) {\n if (i === void 0) { i = 0; }\n if (j === void 0) { j = 0; }\n if (j === pathMatcher.length) {\n return i === path.length;\n }\n if (i === path.length) {\n while (j < pathMatcher.length && pathMatcher[j] === '**') {\n j++;\n }\n return j === pathMatcher.length;\n }\n var currentMatcher = pathMatcher[j];\n if (currentMatcher === '**') {\n if (j + 1 === pathMatcher.length) {\n return true;\n }\n for (var k = i; k <= path.length; k++) {\n if (isPathMatch(path, pathMatcher, k, j + 1)) {\n return true;\n }\n }\n return false;\n }\n else if (currentMatcher === '*' || currentMatcher === path[i]) {\n return isPathMatch(path, pathMatcher, i + 1, j + 1);\n }\n else {\n return false;\n }\n}\n/**\n * Check if a JSON path matches any of the path matchers in the allow or exclude list.\n *\n * @param path - The JSON path to check.\n * @param allowOrExcludeList - The allow or exclude list to check against.\n * @returns True if the path matches any of the path matchers in the allow or exclude list, false otherwise.\n */\nfunction hasPathMatchInList(path, allowOrExcludeList) {\n return allowOrExcludeList.some(function (l) { return isPathMatch(path, l); });\n}\n//# sourceMappingURL=json-query.js.map","import { pruneJson } from '@amplitude/analytics-core';\nexport var isBodyCaptureEnabled = function (config) {\n if (config === undefined) {\n return false;\n }\n if (typeof config === 'boolean') {\n return config;\n }\n return config.enabled !== false;\n};\nexport var getBodyMaskingLists = function (config) {\n var _a;\n if (typeof config === 'object' && config !== null) {\n return {\n allowlist: (_a = config.allowlist) !== null && _a !== void 0 ? _a : [],\n excludelist: config.excludelist || config.blocklist || [],\n };\n }\n return { allowlist: [], excludelist: [] };\n};\nexport var applyBodyMasking = function (serialized, allowlist, excludelist) {\n if (allowlist.length === 0 && excludelist.length === 0) {\n return serialized;\n }\n var effectiveAllowlist = allowlist.length > 0 ? allowlist : ['/**'];\n try {\n var json = JSON.parse(serialized);\n pruneJson(json, effectiveAllowlist, excludelist);\n return JSON.stringify(json);\n }\n catch (_a) {\n return serialized;\n }\n};\nexport var captureSerializedBody = function (serialized, config, maxBytes, truncate) {\n var _a = getBodyMaskingLists(config), allowlist = _a.allowlist, excludelist = _a.excludelist;\n var masked = applyBodyMasking(serialized, allowlist, excludelist);\n return truncate(masked, maxBytes);\n};\n//# sourceMappingURL=network-body-capture.js.map","import { __awaiter, __generator } from \"tslib\";\nimport { getGlobalScope } from '@amplitude/analytics-core';\nimport { captureSerializedBody, isBodyCaptureEnabled } from './network-body-capture';\nimport { truncateUtf8 } from './utils/utf8-byte-length';\nvar DEFAULT_MAX_BODY_SIZE_BYTES = 10240; // 10KB\nvar BINARY_CONTENT_TYPE_PREFIXES = ['image/', 'audio/', 'video/', 'application/octet-stream', 'font/'];\nfunction isBinaryContentType(contentType) {\n if (!contentType)\n return false;\n return BINARY_CONTENT_TYPE_PREFIXES.some(function (prefix) { return contentType.toLowerCase().startsWith(prefix); });\n}\nfunction serializeRequestBody(body) {\n if (body === null || body === undefined)\n return undefined;\n if (typeof body === 'string')\n return body;\n if (body instanceof URLSearchParams)\n return body.toString();\n if (body instanceof FormData) {\n var parts_1 = [];\n body.forEach(function (value, key) {\n parts_1.push(\"\".concat(key, \"=\").concat(typeof value === 'string' ? value : '[File]'));\n });\n return parts_1.join('&');\n }\n // Blob, ArrayBuffer, ArrayBufferView, ReadableStream — skip\n return undefined;\n}\nfunction truncateToByteLimit(str, maxBytes) {\n return truncateUtf8(str, maxBytes);\n}\nvar NetworkObservers = /** @class */ (function () {\n function NetworkObservers() {\n this.fetchObserver = null;\n }\n NetworkObservers.prototype.start = function (eventCallback, networkConfig) {\n this.eventCallback = eventCallback;\n this.networkConfig = networkConfig;\n this.observeFetch();\n };\n NetworkObservers.prototype.stop = function () {\n var _a;\n (_a = this.fetchObserver) === null || _a === void 0 ? void 0 : _a.call(this);\n this.fetchObserver = null;\n this.eventCallback = undefined;\n this.networkConfig = undefined;\n };\n NetworkObservers.prototype.notifyEvent = function (event) {\n var _a;\n (_a = this.eventCallback) === null || _a === void 0 ? void 0 : _a.call(this, event);\n };\n NetworkObservers.prototype.observeFetch = function () {\n var _this = this;\n var globalScope = getGlobalScope();\n if (!globalScope)\n return;\n var originalFetch = globalScope.fetch;\n if (!originalFetch)\n return;\n globalScope.fetch = function (input, init) { return __awaiter(_this, void 0, void 0, function () {\n var startTime, requestEvent, bodyConfig, serialized, maxBytes, response, endTime, headers_1, contentType, cloned, error_1, endTime, typedError;\n var _this = this;\n var _a, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n startTime = Date.now();\n requestEvent = {\n timestamp: startTime,\n type: 'fetch',\n method: (init === null || init === void 0 ? void 0 : init.method) || 'GET',\n url: input.toString(),\n requestHeaders: init === null || init === void 0 ? void 0 : init.headers,\n };\n bodyConfig = (_a = this.networkConfig) === null || _a === void 0 ? void 0 : _a.body;\n if (bodyConfig && isBodyCaptureEnabled(bodyConfig.request)) {\n serialized = serializeRequestBody(init === null || init === void 0 ? void 0 : init.body);\n if (serialized !== undefined) {\n maxBytes = (_b = bodyConfig.maxBodySizeBytes) !== null && _b !== void 0 ? _b : DEFAULT_MAX_BODY_SIZE_BYTES;\n requestEvent.requestBody = captureSerializedBody(serialized, bodyConfig.request, maxBytes, truncateToByteLimit).value;\n }\n }\n _c.label = 1;\n case 1:\n _c.trys.push([1, 3, , 4]);\n return [4 /*yield*/, originalFetch(input, init)];\n case 2:\n response = _c.sent();\n endTime = Date.now();\n requestEvent.status = response.status;\n requestEvent.duration = endTime - startTime;\n headers_1 = {};\n response.headers.forEach(function (value, key) {\n headers_1[key] = value;\n });\n requestEvent.responseHeaders = headers_1;\n if (bodyConfig && isBodyCaptureEnabled(bodyConfig.response)) {\n contentType = headers_1['content-type'] || null;\n if (isBinaryContentType(contentType)) {\n requestEvent.responseBodyStatus = 'skipped_binary';\n this.notifyEvent(requestEvent);\n }\n else {\n cloned = response.clone();\n // Read body without blocking the response return to the caller\n cloned.text().then(function (text) {\n var _a;\n var maxBytes = (_a = bodyConfig.maxBodySizeBytes) !== null && _a !== void 0 ? _a : DEFAULT_MAX_BODY_SIZE_BYTES;\n var _b = captureSerializedBody(text, bodyConfig.response, maxBytes, truncateToByteLimit), value = _b.value, truncated = _b.truncated;\n requestEvent.responseBody = value;\n requestEvent.responseBodyStatus = truncated ? 'truncated' : 'captured';\n _this.notifyEvent(requestEvent);\n }, function () {\n requestEvent.responseBodyStatus = 'error';\n _this.notifyEvent(requestEvent);\n });\n }\n }\n else {\n this.notifyEvent(requestEvent);\n }\n return [2 /*return*/, response];\n case 3:\n error_1 = _c.sent();\n endTime = Date.now();\n requestEvent.duration = endTime - startTime;\n typedError = error_1;\n requestEvent.error = {\n name: typedError.name || 'UnknownError',\n message: typedError.message || 'An unknown error occurred',\n };\n this.notifyEvent(requestEvent);\n throw error_1;\n case 4: return [2 /*return*/];\n }\n });\n }); };\n this.fetchObserver = function () {\n globalScope.fetch = originalFetch;\n };\n };\n return NetworkObservers;\n}());\nexport { NetworkObservers };\n//# sourceMappingURL=observers.js.map"],"names":["isJsonPrimitive","json","pruneJson","allowlist","excludelist","_pruneJson","map","tokenizeJsonPath","ancestors","_a","e_1","_b","targetObject","parentObject","targetKey","keys","Object","keys_1","__values","keys_1_1","next","done","key","value","path","__spreadArray","__read","hasPathMatchInList","e_1_1","error","return","call","length","startsWith","slice","split","token","replace","isPathMatch","pathMatcher","i","j","currentMatcher","k","allowOrExcludeList","some","l","isBodyCaptureEnabled","config","undefined","enabled","captureSerializedBody","serialized","maxBytes","truncate","blocklist","getBodyMaskingLists","masked","effectiveAllowlist","JSON","parse","stringify","applyBodyMasking","BINARY_CONTENT_TYPE_PREFIXES","truncateToByteLimit","str","truncateUtf8","NetworkObservers","this","fetchObserver","prototype","start","eventCallback","networkConfig","observeFetch","stop","notifyEvent","event","_this","globalScope","getGlobalScope","originalFetch","fetch","input","init","__awaiter","startTime","requestEvent","bodyConfig","response","headers_1","error_1","endTime","typedError","__generator","_c","label","Date","now","timestamp","type","method","url","toString","requestHeaders","headers","body","request","URLSearchParams","FormData","parts_1","forEach","push","concat","join","serializeRequestBody","maxBodySizeBytes","requestBody","trys","sent","status","duration","responseHeaders","contentType","prefix","toLowerCase","isBinaryContentType","clone","text","then","truncated","responseBody","responseBodyStatus","name","message"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@amplitude/segment-session-replay-plugin",
3
- "version": "0.0.48",
3
+ "version": "0.0.50",
4
4
  "description": "Plugin for Segment's analytics.js library to support Amplitude's Session Replay.",
5
5
  "keywords": [
6
6
  "amplitude",
@@ -30,7 +30,7 @@
30
30
  "dependencies": {
31
31
  "@segment/analytics-next": "^1.81.0",
32
32
  "js-cookie": "^3.0.7",
33
- "@amplitude/session-replay-browser": "1.51.0"
33
+ "@amplitude/session-replay-browser": "1.51.2"
34
34
  },
35
35
  "devDependencies": {
36
36
  "@aws-sdk/client-s3": "^3.229.0",