@sentry/replay 7.82.0 → 7.84.0

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.
package/esm/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  import { getCurrentHub, getClient, isSentryRequestUrl, addGlobalEventProcessor, prepareEvent, setContext, captureException } from '@sentry/core';
2
- import { GLOBAL_OBJ, normalize, fill, htmlTreeAsString, browserPerformanceTimeOrigin, logger, uuid4, SENTRY_XHR_DATA_KEY, dropUndefinedKeys, stringMatchesSomePattern, addFetchInstrumentationHandler, addXhrInstrumentationHandler, addClickKeypressInstrumentationHandler, addHistoryInstrumentationHandler, createEnvelope, createEventEnvelopeHeaders, getSdkMetadataForEnvelopeHeader, updateRateLimits, isRateLimited, isBrowser } from '@sentry/utils';
2
+ import { GLOBAL_OBJ, normalize, fill, htmlTreeAsString, browserPerformanceTimeOrigin, logger, uuid4, SENTRY_XHR_DATA_KEY, dropUndefinedKeys, stringMatchesSomePattern, addFetchInstrumentationHandler, addXhrInstrumentationHandler, addClickKeypressInstrumentationHandler, addHistoryInstrumentationHandler, createEnvelope, createEventEnvelopeHeaders, getSdkMetadataForEnvelopeHeader, updateRateLimits, isRateLimited, consoleSandbox, isBrowser } from '@sentry/utils';
3
3
  import { addPerformanceInstrumentationHandler, addLcpInstrumentationHandler } from '@sentry-internal/tracing';
4
4
 
5
5
  // exporting a separate copy of `WINDOW` rather than exporting the one from `@sentry/browser`
@@ -4354,7 +4354,7 @@ const handleDomListener = (
4354
4354
  handleClick(
4355
4355
  replay.clickDetector,
4356
4356
  result ,
4357
- getClickTargetNode(handlerData.event) ,
4357
+ getClickTargetNode(handlerData.event ) ,
4358
4358
  );
4359
4359
  }
4360
4360
 
@@ -4410,7 +4410,7 @@ function getDomTarget(handlerData) {
4410
4410
 
4411
4411
  // Accessing event.target can throw (see getsentry/raven-js#838, #768)
4412
4412
  try {
4413
- target = isClick ? getClickTargetNode(handlerData.event) : getTargetNode(handlerData.event);
4413
+ target = isClick ? getClickTargetNode(handlerData.event ) : getTargetNode(handlerData.event );
4414
4414
  message = htmlTreeAsString(target, { maxStringLength: 200 }) || '<unknown>';
4415
4415
  } catch (e) {
4416
4416
  message = '<unknown>';
@@ -4672,6 +4672,13 @@ function setupPerformanceObserver(replay) {
4672
4672
  };
4673
4673
  }
4674
4674
 
4675
+ /**
4676
+ * This serves as a build time flag that will be true by default, but false in non-debug builds or if users replace `__SENTRY_DEBUG__` in their generated code.
4677
+ *
4678
+ * ATTENTION: This constant must never cross package boundaries (i.e. be exported) to guarantee that it can be used for tree shaking.
4679
+ */
4680
+ const DEBUG_BUILD = (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__);
4681
+
4675
4682
  const r = `var t=Uint8Array,n=Uint16Array,r=Int32Array,e=new t([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,0,0,0]),i=new t([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13,0,0]),a=new t([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),s=function(t,e){for(var i=new n(31),a=0;a<31;++a)i[a]=e+=1<<t[a-1];var s=new r(i[30]);for(a=1;a<30;++a)for(var o=i[a];o<i[a+1];++o)s[o]=o-i[a]<<5|a;return{b:i,r:s}},o=s(e,2),f=o.b,h=o.r;f[28]=258,h[258]=28;for(var l=s(i,0).r,u=new n(32768),c=0;c<32768;++c){var v=(43690&c)>>1|(21845&c)<<1;v=(61680&(v=(52428&v)>>2|(13107&v)<<2))>>4|(3855&v)<<4,u[c]=((65280&v)>>8|(255&v)<<8)>>1}var d=function(t,r,e){for(var i=t.length,a=0,s=new n(r);a<i;++a)t[a]&&++s[t[a]-1];var o,f=new n(r);for(a=1;a<r;++a)f[a]=f[a-1]+s[a-1]<<1;if(e){o=new n(1<<r);var h=15-r;for(a=0;a<i;++a)if(t[a])for(var l=a<<4|t[a],c=r-t[a],v=f[t[a]-1]++<<c,d=v|(1<<c)-1;v<=d;++v)o[u[v]>>h]=l}else for(o=new n(i),a=0;a<i;++a)t[a]&&(o[a]=u[f[t[a]-1]++]>>15-t[a]);return o},g=new t(288);for(c=0;c<144;++c)g[c]=8;for(c=144;c<256;++c)g[c]=9;for(c=256;c<280;++c)g[c]=7;for(c=280;c<288;++c)g[c]=8;var w=new t(32);for(c=0;c<32;++c)w[c]=5;var p=d(g,9,0),y=d(w,5,0),m=function(t){return(t+7)/8|0},b=function(n,r,e){return(null==r||r<0)&&(r=0),(null==e||e>n.length)&&(e=n.length),new t(n.subarray(r,e))},M=["unexpected EOF","invalid block type","invalid length/literal","invalid distance","stream finished","no stream handler",,"no callback","invalid UTF-8 data","extra field too long","date not in range 1980-2099","filename too long","stream finishing","invalid zip data"],E=function(t,n,r){var e=new Error(n||M[t]);if(e.code=t,Error.captureStackTrace&&Error.captureStackTrace(e,E),!r)throw e;return e},z=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8},A=function(t,n,r){r<<=7&n;var e=n/8|0;t[e]|=r,t[e+1]|=r>>8,t[e+2]|=r>>16},_=function(r,e){for(var i=[],a=0;a<r.length;++a)r[a]&&i.push({s:a,f:r[a]});var s=i.length,o=i.slice();if(!s)return{t:F,l:0};if(1==s){var f=new t(i[0].s+1);return f[i[0].s]=1,{t:f,l:1}}i.sort((function(t,n){return t.f-n.f})),i.push({s:-1,f:25001});var h=i[0],l=i[1],u=0,c=1,v=2;for(i[0]={s:-1,f:h.f+l.f,l:h,r:l};c!=s-1;)h=i[i[u].f<i[v].f?u++:v++],l=i[u!=c&&i[u].f<i[v].f?u++:v++],i[c++]={s:-1,f:h.f+l.f,l:h,r:l};var d=o[0].s;for(a=1;a<s;++a)o[a].s>d&&(d=o[a].s);var g=new n(d+1),w=x(i[c-1],g,0);if(w>e){a=0;var p=0,y=w-e,m=1<<y;for(o.sort((function(t,n){return g[n.s]-g[t.s]||t.f-n.f}));a<s;++a){var b=o[a].s;if(!(g[b]>e))break;p+=m-(1<<w-g[b]),g[b]=e}for(p>>=y;p>0;){var M=o[a].s;g[M]<e?p-=1<<e-g[M]++-1:++a}for(;a>=0&&p;--a){var E=o[a].s;g[E]==e&&(--g[E],++p)}w=e}return{t:new t(g),l:w}},x=function(t,n,r){return-1==t.s?Math.max(x(t.l,n,r+1),x(t.r,n,r+1)):n[t.s]=r},D=function(t){for(var r=t.length;r&&!t[--r];);for(var e=new n(++r),i=0,a=t[0],s=1,o=function(t){e[i++]=t},f=1;f<=r;++f)if(t[f]==a&&f!=r)++s;else{if(!a&&s>2){for(;s>138;s-=138)o(32754);s>2&&(o(s>10?s-11<<5|28690:s-3<<5|12305),s=0)}else if(s>3){for(o(a),--s;s>6;s-=6)o(8304);s>2&&(o(s-3<<5|8208),s=0)}for(;s--;)o(a);s=1,a=t[f]}return{c:e.subarray(0,i),n:r}},T=function(t,n){for(var r=0,e=0;e<n.length;++e)r+=t[e]*n[e];return r},k=function(t,n,r){var e=r.length,i=m(n+2);t[i]=255&e,t[i+1]=e>>8,t[i+2]=255^t[i],t[i+3]=255^t[i+1];for(var a=0;a<e;++a)t[i+a+4]=r[a];return 8*(i+4+e)},C=function(t,r,s,o,f,h,l,u,c,v,m){z(r,m++,s),++f[256];for(var b=_(f,15),M=b.t,E=b.l,x=_(h,15),C=x.t,U=x.l,F=D(M),I=F.c,S=F.n,L=D(C),O=L.c,j=L.n,q=new n(19),B=0;B<I.length;++B)++q[31&I[B]];for(B=0;B<O.length;++B)++q[31&O[B]];for(var G=_(q,7),H=G.t,J=G.l,K=19;K>4&&!H[a[K-1]];--K);var N,P,Q,R,V=v+5<<3,W=T(f,g)+T(h,w)+l,X=T(f,M)+T(h,C)+l+14+3*K+T(q,H)+2*q[16]+3*q[17]+7*q[18];if(c>=0&&V<=W&&V<=X)return k(r,m,t.subarray(c,c+v));if(z(r,m,1+(X<W)),m+=2,X<W){N=d(M,E,0),P=M,Q=d(C,U,0),R=C;var Y=d(H,J,0);z(r,m,S-257),z(r,m+5,j-1),z(r,m+10,K-4),m+=14;for(B=0;B<K;++B)z(r,m+3*B,H[a[B]]);m+=3*K;for(var Z=[I,O],$=0;$<2;++$){var tt=Z[$];for(B=0;B<tt.length;++B){var nt=31&tt[B];z(r,m,Y[nt]),m+=H[nt],nt>15&&(z(r,m,tt[B]>>5&127),m+=tt[B]>>12)}}}else N=p,P=g,Q=y,R=w;for(B=0;B<u;++B){var rt=o[B];if(rt>255){A(r,m,N[(nt=rt>>18&31)+257]),m+=P[nt+257],nt>7&&(z(r,m,rt>>23&31),m+=e[nt]);var et=31&rt;A(r,m,Q[et]),m+=R[et],et>3&&(A(r,m,rt>>5&8191),m+=i[et])}else A(r,m,N[rt]),m+=P[rt]}return A(r,m,N[256]),m+P[256]},U=new r([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),F=new t(0),I=function(){for(var t=new Int32Array(256),n=0;n<256;++n){for(var r=n,e=9;--e;)r=(1&r&&-306674912)^r>>>1;t[n]=r}return t}(),S=function(){var t=1,n=0;return{p:function(r){for(var e=t,i=n,a=0|r.length,s=0;s!=a;){for(var o=Math.min(s+2655,a);s<o;++s)i+=e+=r[s];e=(65535&e)+15*(e>>16),i=(65535&i)+15*(i>>16)}t=e,n=i},d:function(){return(255&(t%=65521))<<24|(65280&t)<<8|(255&(n%=65521))<<8|n>>8}}},L=function(a,s,o,f,u){if(!u&&(u={l:1},s.dictionary)){var c=s.dictionary.subarray(-32768),v=new t(c.length+a.length);v.set(c),v.set(a,c.length),a=v,u.w=c.length}return function(a,s,o,f,u,c){var v=c.z||a.length,d=new t(f+v+5*(1+Math.ceil(v/7e3))+u),g=d.subarray(f,d.length-u),w=c.l,p=7&(c.r||0);if(s){p&&(g[0]=c.r>>3);for(var y=U[s-1],M=y>>13,E=8191&y,z=(1<<o)-1,A=c.p||new n(32768),_=c.h||new n(z+1),x=Math.ceil(o/3),D=2*x,T=function(t){return(a[t]^a[t+1]<<x^a[t+2]<<D)&z},F=new r(25e3),I=new n(288),S=new n(32),L=0,O=0,j=c.i||0,q=0,B=c.w||0,G=0;j+2<v;++j){var H=T(j),J=32767&j,K=_[H];if(A[J]=K,_[H]=J,B<=j){var N=v-j;if((L>7e3||q>24576)&&(N>423||!w)){p=C(a,g,0,F,I,S,O,q,G,j-G,p),q=L=O=0,G=j;for(var P=0;P<286;++P)I[P]=0;for(P=0;P<30;++P)S[P]=0}var Q=2,R=0,V=E,W=J-K&32767;if(N>2&&H==T(j-W))for(var X=Math.min(M,N)-1,Y=Math.min(32767,j),Z=Math.min(258,N);W<=Y&&--V&&J!=K;){if(a[j+Q]==a[j+Q-W]){for(var $=0;$<Z&&a[j+$]==a[j+$-W];++$);if($>Q){if(Q=$,R=W,$>X)break;var tt=Math.min(W,$-2),nt=0;for(P=0;P<tt;++P){var rt=j-W+P&32767,et=rt-A[rt]&32767;et>nt&&(nt=et,K=rt)}}}W+=(J=K)-(K=A[J])&32767}if(R){F[q++]=268435456|h[Q]<<18|l[R];var it=31&h[Q],at=31&l[R];O+=e[it]+i[at],++I[257+it],++S[at],B=j+Q,++L}else F[q++]=a[j],++I[a[j]]}}for(j=Math.max(j,B);j<v;++j)F[q++]=a[j],++I[a[j]];p=C(a,g,w,F,I,S,O,q,G,j-G,p),w||(c.r=7&p|g[p/8|0]<<3,p-=7,c.h=_,c.p=A,c.i=j,c.w=B)}else{for(j=c.w||0;j<v+w;j+=65535){var st=j+65535;st>=v&&(g[p/8|0]=w,st=v),p=k(g,p+1,a.subarray(j,st))}c.i=v}return b(d,0,f+m(p)+u)}(a,null==s.level?6:s.level,null==s.mem?Math.ceil(1.5*Math.max(8,Math.min(13,Math.log(a.length)))):12+s.mem,o,f,u)},O=function(t,n,r){for(;r;++n)t[n]=r,r>>>=8},j=function(){function n(n,r){if("function"==typeof n&&(r=n,n={}),this.ondata=r,this.o=n||{},this.s={l:0,i:32768,w:32768,z:32768},this.b=new t(98304),this.o.dictionary){var e=this.o.dictionary.subarray(-32768);this.b.set(e,32768-e.length),this.s.i=32768-e.length}}return n.prototype.p=function(t,n){this.ondata(L(t,this.o,0,0,this.s),n)},n.prototype.push=function(n,r){this.ondata||E(5),this.s.l&&E(4);var e=n.length+this.s.z;if(e>this.b.length){if(e>2*this.b.length-32768){var i=new t(-32768&e);i.set(this.b.subarray(0,this.s.z)),this.b=i}var a=this.b.length-this.s.z;a&&(this.b.set(n.subarray(0,a),this.s.z),this.s.z=this.b.length,this.p(this.b,!1)),this.b.set(this.b.subarray(-32768)),this.b.set(n.subarray(a),32768),this.s.z=n.length-a+32768,this.s.i=32766,this.s.w=32768}else this.b.set(n,this.s.z),this.s.z+=n.length;this.s.l=1&r,(this.s.z>this.s.w+8191||r)&&(this.p(this.b,r||!1),this.s.w=this.s.i,this.s.i-=2)},n}();function q(t,n){n||(n={});var r=function(){var t=-1;return{p:function(n){for(var r=t,e=0;e<n.length;++e)r=I[255&r^n[e]]^r>>>8;t=r},d:function(){return~t}}}(),e=t.length;r.p(t);var i,a=L(t,n,10+((i=n).filename?i.filename.length+1:0),8),s=a.length;return function(t,n){var r=n.filename;if(t[0]=31,t[1]=139,t[2]=8,t[8]=n.level<2?4:9==n.level?2:0,t[9]=3,0!=n.mtime&&O(t,4,Math.floor(new Date(n.mtime||Date.now())/1e3)),r){t[3]=8;for(var e=0;e<=r.length;++e)t[e+10]=r.charCodeAt(e)}}(a,n),O(a,s-8,r.d()),O(a,s-4,e),a}var B=function(){function t(t,n){this.c=S(),this.v=1,j.call(this,t,n)}return t.prototype.push=function(t,n){this.c.p(t),j.prototype.push.call(this,t,n)},t.prototype.p=function(t,n){var r=L(t,this.o,this.v&&(this.o.dictionary?6:2),n&&4,this.s);this.v&&(function(t,n){var r=n.level,e=0==r?0:r<6?1:9==r?3:2;if(t[0]=120,t[1]=e<<6|(n.dictionary&&32),t[1]|=31-(t[0]<<8|t[1])%31,n.dictionary){var i=S();i.p(n.dictionary),O(t,2,i.d())}}(r,this.o),this.v=0),n&&O(r,r.length-4,this.c.d()),this.ondata(r,n)},t}(),G="undefined"!=typeof TextEncoder&&new TextEncoder,H="undefined"!=typeof TextDecoder&&new TextDecoder;try{H.decode(F,{stream:!0})}catch(t){}var J=function(){function t(t){this.ondata=t}return t.prototype.push=function(t,n){this.ondata||E(5),this.d&&E(4),this.ondata(K(t),this.d=n||!1)},t}();function K(n,r){if(r){for(var e=new t(n.length),i=0;i<n.length;++i)e[i]=n.charCodeAt(i);return e}if(G)return G.encode(n);var a=n.length,s=new t(n.length+(n.length>>1)),o=0,f=function(t){s[o++]=t};for(i=0;i<a;++i){if(o+5>s.length){var h=new t(o+8+(a-i<<1));h.set(s),s=h}var l=n.charCodeAt(i);l<128||r?f(l):l<2048?(f(192|l>>6),f(128|63&l)):l>55295&&l<57344?(f(240|(l=65536+(1047552&l)|1023&n.charCodeAt(++i))>>18),f(128|l>>12&63),f(128|l>>6&63),f(128|63&l)):(f(224|l>>12),f(128|l>>6&63),f(128|63&l))}return b(s,0,o)}const N=new class{constructor(){this._init()}clear(){this._init()}addEvent(t){if(!t)throw new Error("Adding invalid event");const n=this._hasEvents?",":"";this.stream.push(n+t),this._hasEvents=!0}finish(){this.stream.push("]",!0);const t=function(t){let n=0;for(let r=0,e=t.length;r<e;r++)n+=t[r].length;const r=new Uint8Array(n);for(let n=0,e=0,i=t.length;n<i;n++){const i=t[n];r.set(i,e),e+=i.length}return r}(this._deflatedData);return this._init(),t}_init(){this._hasEvents=!1,this._deflatedData=[],this.deflate=new B,this.deflate.ondata=(t,n)=>{this._deflatedData.push(t)},this.stream=new J(((t,n)=>{this.deflate.push(t,n)})),this.stream.push("[")}},P={clear:()=>{N.clear()},addEvent:t=>N.addEvent(t),finish:()=>N.finish(),compress:t=>function(t){return q(K(t))}(t)};addEventListener("message",(function(t){const n=t.data.method,r=t.data.id,e=t.data.arg;if(n in P&&"function"==typeof P[n])try{const t=P[n](e);postMessage({id:r,method:n,success:!0,response:t})}catch(t){postMessage({id:r,method:n,success:!1,response:t.message}),console.error(t)}})),postMessage({id:void 0,method:"init",success:!0,response:void 0});`;
4676
4683
 
4677
4684
  function e(){const e=new Blob([r]);return URL.createObjectURL(e)}
@@ -4680,7 +4687,7 @@ function e(){const e=new Blob([r]);return URL.createObjectURL(e)}
4680
4687
  * Log a message in debug mode, and add a breadcrumb when _experiment.traceInternals is enabled.
4681
4688
  */
4682
4689
  function logInfo(message, shouldAddBreadcrumb) {
4683
- if (!(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {
4690
+ if (!DEBUG_BUILD) {
4684
4691
  return;
4685
4692
  }
4686
4693
 
@@ -4696,7 +4703,7 @@ function logInfo(message, shouldAddBreadcrumb) {
4696
4703
  * This is necessary when the breadcrumb may be added before the replay is initialized.
4697
4704
  */
4698
4705
  function logInfoNextTick(message, shouldAddBreadcrumb) {
4699
- if (!(typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__)) {
4706
+ if (!DEBUG_BUILD) {
4700
4707
  return;
4701
4708
  }
4702
4709
 
@@ -4883,7 +4890,7 @@ class WorkerHandler {
4883
4890
 
4884
4891
  if (!response.success) {
4885
4892
  // TODO: Do some error handling, not sure what
4886
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('[Replay]', response.response);
4893
+ DEBUG_BUILD && logger.error('[Replay]', response.response);
4887
4894
 
4888
4895
  reject(new Error('Error in compression worker'));
4889
4896
  return;
@@ -5113,7 +5120,7 @@ class EventBufferProxy {
5113
5120
  try {
5114
5121
  await Promise.all(addEventPromises);
5115
5122
  } catch (error) {
5116
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('[Replay] Failed to add events when switching buffers.', error);
5123
+ DEBUG_BUILD && logger.warn('[Replay] Failed to add events when switching buffers.', error);
5117
5124
  }
5118
5125
  }
5119
5126
  }
@@ -5214,21 +5221,6 @@ function isSampled(sampleRate) {
5214
5221
  return Math.random() < sampleRate;
5215
5222
  }
5216
5223
 
5217
- /**
5218
- * Save a session to session storage.
5219
- */
5220
- function saveSession(session) {
5221
- if (!hasSessionStorage()) {
5222
- return;
5223
- }
5224
-
5225
- try {
5226
- WINDOW.sessionStorage.setItem(REPLAY_SESSION_KEY, JSON.stringify(session));
5227
- } catch (e) {
5228
- // Ignore potential SecurityError exceptions
5229
- }
5230
- }
5231
-
5232
5224
  /**
5233
5225
  * Get a session with defaults & applied sampling.
5234
5226
  */
@@ -5252,6 +5244,21 @@ function makeSession(session) {
5252
5244
  };
5253
5245
  }
5254
5246
 
5247
+ /**
5248
+ * Save a session to session storage.
5249
+ */
5250
+ function saveSession(session) {
5251
+ if (!hasSessionStorage()) {
5252
+ return;
5253
+ }
5254
+
5255
+ try {
5256
+ WINDOW.sessionStorage.setItem(REPLAY_SESSION_KEY, JSON.stringify(session));
5257
+ } catch (e) {
5258
+ // Ignore potential SecurityError exceptions
5259
+ }
5260
+ }
5261
+
5255
5262
  /**
5256
5263
  * Get the sampled status for a session based on sample rates & current sampled status.
5257
5264
  */
@@ -5468,7 +5475,7 @@ async function _addEvent(
5468
5475
  } catch (error) {
5469
5476
  const reason = error && error instanceof EventBufferSizeExceededError ? 'addEventSizeExceeded' : 'addEvent';
5470
5477
 
5471
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(error);
5478
+ DEBUG_BUILD && logger.error(error);
5472
5479
  await replay.stop({ reason });
5473
5480
 
5474
5481
  const client = getClient();
@@ -5516,7 +5523,7 @@ function maybeApplyCallback(
5516
5523
  return callback(event);
5517
5524
  }
5518
5525
  } catch (error) {
5519
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) &&
5526
+ DEBUG_BUILD &&
5520
5527
  logger.error('[Replay] An error occured in the `beforeAddRecordingEvent` callback, skipping the event...', error);
5521
5528
  return null;
5522
5529
  }
@@ -5748,7 +5755,7 @@ function handleGlobalEventListener(
5748
5755
  // Unless `captureExceptions` is enabled, we want to ignore errors coming from rrweb
5749
5756
  // As there can be a bunch of stuff going wrong in internals there, that we don't want to bubble up to users
5750
5757
  if (isRrwebError(event, hint) && !replay.getOptions()._experiments.captureExceptions) {
5751
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.log('[Replay] Ignoring error from rrweb internals', event);
5758
+ DEBUG_BUILD && logger.log('[Replay] Ignoring error from rrweb internals', event);
5752
5759
  return null;
5753
5760
  }
5754
5761
 
@@ -5855,7 +5862,7 @@ function handleHistorySpanListener(replay) {
5855
5862
  */
5856
5863
  function shouldFilterRequest(replay, url) {
5857
5864
  // If we enabled the `traceInternals` experiment, we want to trace everything
5858
- if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && replay.getOptions()._experiments.traceInternals) {
5865
+ if (DEBUG_BUILD && replay.getOptions()._experiments.traceInternals) {
5859
5866
  return false;
5860
5867
  }
5861
5868
 
@@ -6034,11 +6041,11 @@ function getBodyString(body) {
6034
6041
  return [_serializeFormData(body)];
6035
6042
  }
6036
6043
  } catch (e2) {
6037
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('[Replay] Failed to serialize body', body);
6044
+ DEBUG_BUILD && logger.warn('[Replay] Failed to serialize body', body);
6038
6045
  return [undefined, 'BODY_PARSE_ERROR'];
6039
6046
  }
6040
6047
 
6041
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.info('[Replay] Skipping network body because of body type', body);
6048
+ DEBUG_BUILD && logger.info('[Replay] Skipping network body because of body type', body);
6042
6049
 
6043
6050
  return [undefined];
6044
6051
  }
@@ -6262,7 +6269,7 @@ async function captureFetchBreadcrumbToReplay(
6262
6269
  const result = makeNetworkReplayBreadcrumb('resource.fetch', data);
6263
6270
  addNetworkBreadcrumb(options.replay, result);
6264
6271
  } catch (error) {
6265
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('[Replay] Failed to capture fetch breadcrumb', error);
6272
+ DEBUG_BUILD && logger.error('[Replay] Failed to capture fetch breadcrumb', error);
6266
6273
  }
6267
6274
  }
6268
6275
 
@@ -6418,7 +6425,7 @@ function getResponseData(
6418
6425
 
6419
6426
  return buildNetworkRequestOrResponse(headers, size, undefined);
6420
6427
  } catch (error) {
6421
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('[Replay] Failed to serialize response body', error);
6428
+ DEBUG_BUILD && logger.warn('[Replay] Failed to serialize response body', error);
6422
6429
  // fallback
6423
6430
  return buildNetworkRequestOrResponse(headers, responseBodySize, undefined);
6424
6431
  }
@@ -6435,7 +6442,7 @@ async function _parseFetchResponseBody(response) {
6435
6442
  const text = await _tryGetResponseText(res);
6436
6443
  return [text];
6437
6444
  } catch (error) {
6438
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('[Replay] Failed to get text body from response', error);
6445
+ DEBUG_BUILD && logger.warn('[Replay] Failed to get text body from response', error);
6439
6446
  return [undefined, 'BODY_PARSE_ERROR'];
6440
6447
  }
6441
6448
  }
@@ -6505,7 +6512,7 @@ function _tryCloneResponse(response) {
6505
6512
  return response.clone();
6506
6513
  } catch (error) {
6507
6514
  // this can throw if the response was already consumed before
6508
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('[Replay] Failed to clone response body', error);
6515
+ DEBUG_BUILD && logger.warn('[Replay] Failed to clone response body', error);
6509
6516
  }
6510
6517
  }
6511
6518
 
@@ -6549,7 +6556,7 @@ async function captureXhrBreadcrumbToReplay(
6549
6556
  const result = makeNetworkReplayBreadcrumb('resource.xhr', data);
6550
6557
  addNetworkBreadcrumb(options.replay, result);
6551
6558
  } catch (error) {
6552
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('[Replay] Failed to capture xhr breadcrumb', error);
6559
+ DEBUG_BUILD && logger.error('[Replay] Failed to capture xhr breadcrumb', error);
6553
6560
  }
6554
6561
  }
6555
6562
 
@@ -6671,7 +6678,7 @@ function _getXhrResponseBody(xhr) {
6671
6678
  errors.push(e);
6672
6679
  }
6673
6680
 
6674
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('[Replay] Failed to get xhr response body', ...errors);
6681
+ DEBUG_BUILD && logger.warn('[Replay] Failed to get xhr response body', ...errors);
6675
6682
 
6676
6683
  return [undefined];
6677
6684
  }
@@ -6747,7 +6754,7 @@ function beforeAddNetworkBreadcrumb(
6747
6754
  void captureFetchBreadcrumbToReplay(breadcrumb, hint, options);
6748
6755
  }
6749
6756
  } catch (e) {
6750
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('Error when enriching network breadcrumb');
6757
+ DEBUG_BUILD && logger.warn('Error when enriching network breadcrumb');
6751
6758
  }
6752
6759
  }
6753
6760
 
@@ -7053,7 +7060,7 @@ function getHandleRecordingEmit(replay) {
7053
7060
  return (event, _isCheckout) => {
7054
7061
  // If this is false, it means session is expired, create and a new session and wait for checkout
7055
7062
  if (!replay.checkAndHandleExpiredSession()) {
7056
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.warn('[Replay] Received replay event after session expired.');
7063
+ DEBUG_BUILD && logger.warn('[Replay] Received replay event after session expired.');
7057
7064
 
7058
7065
  return;
7059
7066
  }
@@ -7470,7 +7477,7 @@ async function sendReplay(
7470
7477
  _retryCount: retryConfig.count,
7471
7478
  });
7472
7479
 
7473
- if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && options._experiments && options._experiments.captureExceptions) {
7480
+ if (DEBUG_BUILD && options._experiments && options._experiments.captureExceptions) {
7474
7481
  captureException(err);
7475
7482
  }
7476
7483
 
@@ -8202,9 +8209,9 @@ class ReplayContainer {
8202
8209
 
8203
8210
  /** A wrapper to conditionally capture exceptions. */
8204
8211
  _handleException(error) {
8205
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('[Replay]', error);
8212
+ DEBUG_BUILD && logger.error('[Replay]', error);
8206
8213
 
8207
- if ((typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && this._options._experiments && this._options._experiments.captureExceptions) {
8214
+ if (DEBUG_BUILD && this._options._experiments && this._options._experiments.captureExceptions) {
8208
8215
  captureException(error);
8209
8216
  }
8210
8217
  }
@@ -8521,7 +8528,7 @@ class ReplayContainer {
8521
8528
  const replayId = this.getSessionId();
8522
8529
 
8523
8530
  if (!this.session || !this.eventBuffer || !replayId) {
8524
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('[Replay] No session or eventBuffer found to flush.');
8531
+ DEBUG_BUILD && logger.error('[Replay] No session or eventBuffer found to flush.');
8525
8532
  return;
8526
8533
  }
8527
8534
 
@@ -8606,7 +8613,7 @@ class ReplayContainer {
8606
8613
  }
8607
8614
 
8608
8615
  if (!this.checkAndHandleExpiredSession()) {
8609
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error('[Replay] Attempting to finish replay event after session expired.');
8616
+ DEBUG_BUILD && logger.error('[Replay] Attempting to finish replay event after session expired.');
8610
8617
  return;
8611
8618
  }
8612
8619
 
@@ -8664,7 +8671,7 @@ class ReplayContainer {
8664
8671
  try {
8665
8672
  await this._flushLock;
8666
8673
  } catch (err) {
8667
- (typeof __SENTRY_DEBUG__ === 'undefined' || __SENTRY_DEBUG__) && logger.error(err);
8674
+ DEBUG_BUILD && logger.error(err);
8668
8675
  } finally {
8669
8676
  this._debouncedFlush();
8670
8677
  }
@@ -8733,10 +8740,12 @@ function getOption(
8733
8740
  allSelectors.push(`.${deprecatedClassOption}`);
8734
8741
  }
8735
8742
 
8736
- // eslint-disable-next-line no-console
8737
- console.warn(
8738
- '[Replay] You are using a deprecated configuration item for privacy. Read the documentation on how to use the new privacy configuration.',
8739
- );
8743
+ consoleSandbox(() => {
8744
+ // eslint-disable-next-line no-console
8745
+ console.warn(
8746
+ '[Replay] You are using a deprecated configuration item for privacy. Read the documentation on how to use the new privacy configuration.',
8747
+ );
8748
+ });
8740
8749
  }
8741
8750
 
8742
8751
  return allSelectors.join(',');
@@ -9154,8 +9163,10 @@ function loadReplayOptionsFromClient(initialOptions) {
9154
9163
  const finalOptions = { sessionSampleRate: 0, errorSampleRate: 0, ...dropUndefinedKeys(initialOptions) };
9155
9164
 
9156
9165
  if (!opt) {
9157
- // eslint-disable-next-line no-console
9158
- console.warn('SDK client is not available.');
9166
+ consoleSandbox(() => {
9167
+ // eslint-disable-next-line no-console
9168
+ console.warn('SDK client is not available.');
9169
+ });
9159
9170
  return finalOptions;
9160
9171
  }
9161
9172
 
@@ -9165,10 +9176,12 @@ function loadReplayOptionsFromClient(initialOptions) {
9165
9176
  opt.replaysSessionSampleRate == null &&
9166
9177
  opt.replaysOnErrorSampleRate == null
9167
9178
  ) {
9168
- // eslint-disable-next-line no-console
9169
- console.warn(
9170
- 'Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.',
9171
- );
9179
+ consoleSandbox(() => {
9180
+ // eslint-disable-next-line no-console
9181
+ console.warn(
9182
+ 'Replay is disabled because neither `replaysSessionSampleRate` nor `replaysOnErrorSampleRate` are set.',
9183
+ );
9184
+ });
9172
9185
  }
9173
9186
 
9174
9187
  if (typeof opt.replaysSessionSampleRate === 'number') {