UNPKG

@sentry-internal/rrweb-packer

Version:

`@rrweb/packer` is a tool to compress rrweb events into a smaller size.

21 lines (20 loc) 11 kB
(function (g, f) {if ("object" == typeof exports && "object" == typeof module) {module.exports = f();} else if ("function" == typeof define && define.amd) {define("rrwebPacker", [], f);} else if ("object" == typeof exports) {exports["rrwebPacker"] = f();} else {g["rrwebPacker"] = f();}}(typeof self !== 'undefined' ? self : typeof globalThis !== 'undefined' ? globalThis : this, () => {var exports = {};var module = { exports }; "use strict";var lr=(r,e)=>()=>(e||r((e={exports:{}}).exports,e),e.exports);var br=lr(L=>{"use strict";var O=Uint8Array,E=Uint16Array,er=Uint32Array,fr=new O([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]),or=new O([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]),wr=new O([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),qr=function(r,e){for(var a=new E(31),n=0;n<31;++n)a[n]=e+=1<<r[n-1];for(var v=new er(a[30]),n=1;n<30;++n)for(var i=a[n];i<a[n+1];++i)v[i]=i-a[n]<<5|n;return[a,v]},Kr=qr(fr,2),Rr=Kr[0],sr=Kr[1];Rr[28]=258,sr[258]=28;var xr=qr(or,0),Pr=xr[0],Or=xr[1],gr=new E(32768);for(c=0;c<32768;++c)W=(c&43690)>>>1|(c&21845)<<1,W=(W&52428)>>>2|(W&13107)<<2,W=(W&61680)>>>4|(W&3855)<<4,gr[c]=((W&65280)>>>8|(W&255)<<8)>>>1;var W,c,V=(function(r,e,a){for(var n=r.length,v=0,i=new E(e);v<n;++v)++i[r[v]-1];var u=new E(e);for(v=0;v<e;++v)u[v]=u[v-1]+i[v-1]<<1;var h;if(a){h=new E(1<<e);var f=15-e;for(v=0;v<n;++v)if(r[v])for(var l=v<<4|r[v],o=e-r[v],s=u[r[v]-1]++<<o,g=s|(1<<o)-1;s<=g;++s)h[gr[s]>>>f]=l}else for(h=new E(n),v=0;v<n;++v)h[v]=gr[u[r[v]-1]++]>>>15-r[v];return h}),Y=new O(288);for(c=0;c<144;++c)Y[c]=8;var c;for(c=144;c<256;++c)Y[c]=9;var c;for(c=256;c<280;++c)Y[c]=7;var c;for(c=280;c<288;++c)Y[c]=8;var c,ar=new O(32);for(c=0;c<32;++c)ar[c]=5;var c,Dr=V(Y,9,0),$r=V(Y,9,1),Br=V(ar,5,0),jr=V(ar,5,1),ur=function(r){for(var e=r[0],a=1;a<r.length;++a)r[a]>e&&(e=r[a]);return e},j=function(r,e,a){var n=e/8>>0;return(r[n]|r[n+1]<<8)>>>(e&7)&a},hr=function(r,e){var a=e/8>>0;return(r[a]|r[a+1]<<8|r[a+2]<<16)>>>(e&7)},Sr=function(r){return(r/8>>0)+(r&7&&1)},yr=function(r,e,a){(a==null||a>r.length)&&(a=r.length);var n=new(r instanceof E?E:r instanceof er?er:O)(a-e);return n.set(r.subarray(e,a)),n},Gr=function(r,e,a){var n=r.length,v=!e||a,i=!a||a.i;a||(a={}),e||(e=new O(n*3));var u=function(vr){var p=e.length;if(vr>p){var _=new O(Math.max(p*2,vr));_.set(e),e=_}},h=a.f||0,f=a.p||0,l=a.b||0,o=a.l,s=a.d,g=a.m,w=a.n,U=n*8;do{if(!o){a.f=h=j(r,f,1);var b=j(r,f+1,3);if(f+=3,b)if(b==1)o=$r,s=jr,g=9,w=5;else if(b==2){var G=j(r,f,31)+257,D=j(r,f+10,15)+4,q=G+j(r,f+5,31)+1;f+=14;for(var T=new O(q),k=new O(19),t=0;t<D;++t)k[wr[t]]=j(r,f+t*3,7);f+=D*3;var $=ur(k),K=(1<<$)-1;if(!i&&f+q*($+7)>U)break;for(var Z=V(k,$,1),t=0;t<q;){var z=Z[j(r,f,K)];f+=z&15;var M=z>>>4;if(M<16)T[t++]=M;else{var m=0,A=0;for(M==16?(A=3+j(r,f,3),f+=2,m=T[t-1]):M==17?(A=3+j(r,f,7),f+=3):M==18&&(A=11+j(r,f,127),f+=7);A--;)T[t++]=m}}var R=T.subarray(0,G),S=T.subarray(G);g=ur(R),w=ur(S),o=V(R,g,1),s=V(S,w,1)}else throw"invalid block type";else{var M=Sr(f)+4,P=r[M-4]|r[M-3]<<8,F=M+P;if(F>n){if(i)throw"unexpected EOF";break}v&&u(l+P),e.set(r.subarray(M,F),l),a.b=l+=P,a.p=f=F*8;continue}if(f>U)throw"unexpected EOF"}v&&u(l+131072);for(var y=(1<<g)-1,J=(1<<w)-1,H=g+w+18;i||f+H<U;){var m=o[hr(r,f)&y],I=m>>>4;if(f+=m&15,f>U)throw"unexpected EOF";if(!m)throw"invalid length/literal";if(I<256)e[l++]=I;else if(I==256){o=null;break}else{var N=I-254;if(I>264){var t=I-257,B=fr[t];N=j(r,f,(1<<B)-1)+Rr[t],f+=B}var Q=s[hr(r,f)&J],x=Q>>>4;if(!Q)throw"invalid distance";f+=Q&15;var S=Pr[x];if(x>3){var B=or[x];S+=hr(r,f)&(1<<B)-1,f+=B}if(f>U)throw"unexpected EOF";v&&u(l+131072);for(var C=l+N;l<C;l+=4)e[l]=e[l-S],e[l+1]=e[l+1-S],e[l+2]=e[l+2-S],e[l+3]=e[l+3-S];l=C}}a.l=o,a.p=f,a.b=l,o&&(h=1,a.m=g,a.d=s,a.n=w)}while(!h);return l==e.length?e:yr(e,0,l)},X=function(r,e,a){a<<=e&7;var n=e/8>>0;r[n]|=a,r[n+1]|=a>>>8},d=function(r,e,a){a<<=e&7;var n=e/8>>0;r[n]|=a,r[n+1]|=a>>>8,r[n+2]|=a>>>16},cr=function(r,e){for(var a=[],n=0;n<r.length;++n)r[n]&&a.push({s:n,f:r[n]});var v=a.length,i=a.slice();if(!v)return[new O(0),0];if(v==1){var u=new O(a[0].s+1);return u[a[0].s]=1,[u,1]}a.sort(function(q,T){return q.f-T.f}),a.push({s:-1,f:25001});var h=a[0],f=a[1],l=0,o=1,s=2;for(a[0]={s:-1,f:h.f+f.f,l:h,r:f};o!=v-1;)h=a[a[l].f<a[s].f?l++:s++],f=a[l!=o&&a[l].f<a[s].f?l++:s++],a[o++]={s:-1,f:h.f+f.f,l:h,r:f};for(var g=i[0].s,n=1;n<v;++n)i[n].s>g&&(g=i[n].s);var w=new E(g+1),U=Mr(a[o-1],w,0);if(U>e){var n=0,b=0,M=U-e,P=1<<M;for(i.sort(function(T,k){return w[k.s]-w[T.s]||T.f-k.f});n<v;++n){var F=i[n].s;if(w[F]>e)b+=P-(1<<U-w[F]),w[F]=e;else break}for(b>>>=M;b>0;){var G=i[n].s;w[G]<e?b-=1<<e-w[G]++-1:++n}for(;n>=0&&b;--n){var D=i[n].s;w[D]==e&&(--w[D],++b)}U=e}return[new O(w),U]},Mr=function(r,e,a){return r.s==-1?Math.max(Mr(r.l,e,a+1),Mr(r.r,e,a+1)):e[r.s]=a},Er=function(r){for(var e=r.length;e&&!r[--e];);for(var a=new E(++e),n=0,v=r[0],i=1,u=function(f){a[n++]=f},h=1;h<=e;++h)if(r[h]==v&&h!=e)++i;else{if(!v&&i>2){for(;i>138;i-=138)u(32754);i>2&&(u(i>10?i-11<<5|28690:i-3<<5|12305),i=0)}else if(i>3){for(u(v),--i;i>6;i-=6)u(8304);i>2&&(u(i-3<<5|8208),i=0)}for(;i--;)u(v);i=1,v=r[h]}return[a.subarray(0,n),e]},rr=function(r,e){for(var a=0,n=0;n<e.length;++n)a+=r[n]*e[n];return a},kr=function(r,e,a){var n=a.length,v=Sr(e+2);r[v]=n&255,r[v+1]=n>>>8,r[v+2]=r[v]^255,r[v+3]=r[v+1]^255;for(var i=0;i<n;++i)r[v+i+4]=a[i];return(v+4+n)*8},Fr=function(r,e,a,n,v,i,u,h,f,l,o){X(e,o++,a),++v[256];for(var s=cr(v,15),g=s[0],w=s[1],U=cr(i,15),b=U[0],M=U[1],P=Er(g),F=P[0],G=P[1],D=Er(b),q=D[0],T=D[1],k=new E(19),t=0;t<F.length;++t)k[F[t]&31]++;for(var t=0;t<q.length;++t)k[q[t]&31]++;for(var $=cr(k,7),K=$[0],Z=$[1],z=19;z>4&&!K[wr[z-1]];--z);var m=l+5<<3,A=rr(v,Y)+rr(i,ar)+u,R=rr(v,g)+rr(i,b)+u+14+3*z+rr(k,K)+(2*k[16]+3*k[17]+7*k[18]);if(m<=A&&m<=R)return kr(e,o,r.subarray(f,f+l));var S,y,J,H;if(X(e,o,1+(R<A)),o+=2,R<A){S=V(g,w,0),y=g,J=V(b,M,0),H=b;var I=V(K,Z,0);X(e,o,G-257),X(e,o+5,T-1),X(e,o+10,z-4),o+=14;for(var t=0;t<z;++t)X(e,o+3*t,K[wr[t]]);o+=3*z;for(var N=[F,q],B=0;B<2;++B)for(var Q=N[B],t=0;t<Q.length;++t){var x=Q[t]&31;X(e,o,I[x]),o+=K[x],x>15&&(X(e,o,Q[t]>>>5&127),o+=Q[t]>>>12)}}else S=Dr,y=Y,J=Br,H=ar;for(var t=0;t<h;++t)if(n[t]>255){var x=n[t]>>>18&31;d(e,o,S[x+257]),o+=y[x+257],x>7&&(X(e,o,n[t]>>>23&31),o+=fr[x]);var C=n[t]&31;d(e,o,J[C]),o+=H[C],C>3&&(d(e,o,n[t]>>>5&8191),o+=or[C])}else d(e,o,S[n[t]]),o+=y[n[t]];return d(e,o,S[256]),o+y[256]},Hr=new er([65540,131080,131088,131104,262176,1048704,1048832,2114560,2117632]),Ir=function(r,e,a,n,v,i){var u=r.length,h=new O(n+u+5*(1+Math.floor(u/7e3))+v),f=h.subarray(n,h.length-v),l=0;if(!e||u<8)for(var o=0;o<=u;o+=65535){var s=o+65535;s<u?l=kr(f,l,r.subarray(o,s)):(f[o]=i,l=kr(f,l,r.subarray(o,u)))}else{for(var g=Hr[e-1],w=g>>>13,U=g&8191,b=(1<<a)-1,M=new E(32768),P=new E(b+1),F=Math.ceil(a/3),G=2*F,D=function(tr){return(r[tr]^r[tr+1]<<F^r[tr+2]<<G)&b},q=new er(25e3),T=new E(288),k=new E(32),t=0,$=0,o=0,K=0,Z=0,z=0;o<u;++o){var m=D(o),A=o&32767,R=P[m];if(M[A]=R,P[m]=A,Z<=o){var S=u-o;if((t>7e3||K>24576)&&S>423){l=Fr(r,f,0,q,T,k,$,K,z,o-z,l),K=t=$=0,z=o;for(var y=0;y<286;++y)T[y]=0;for(var y=0;y<30;++y)k[y]=0}var J=2,H=0,I=U,N=A-R&32767;if(S>2&&m==D(o-N))for(var B=Math.min(w,S)-1,Q=Math.min(32767,o),x=Math.min(258,S);N<=Q&&--I&&A!=R;){if(r[o+J]==r[o+J-N]){for(var C=0;C<x&&r[o+C]==r[o+C-N];++C);if(C>J){if(J=C,H=N,C>B)break;for(var vr=Math.min(N,C-2),p=0,y=0;y<vr;++y){var _=o-N+y+32768&32767,Nr=M[_],zr=_-Nr+32768&32767;zr>p&&(p=zr,R=_)}}}A=R,R=M[A],N+=A-R+32768&32767}if(H){q[K++]=268435456|sr[J]<<18|Or[H];var Ar=sr[J]&31,Cr=Or[H]&31;$+=fr[Ar]+or[Cr],++T[257+Ar],++k[Cr],Z=o+J,++t}else q[K++]=r[o],++T[r[o]]}}l=Fr(r,f,i,q,T,k,$,K,z,o-z,l)}return yr(h,0,n+Sr(l)+v)},Qr=function(){var r=1,e=0;return{p:function(a){for(var n=r,v=e,i=a.length,u=0;u!=i;){for(var h=Math.min(u+5552,i);u<h;++u)n+=a[u],v+=n;n%=65521,v%=65521}r=n,e=v},d:function(){return(r>>>8<<16|(e&255)<<8|e>>>8)+((r&255)<<23)*2}}},Vr=function(r,e,a,n,v){return Ir(r,e.level==null?6:e.level,e.mem==null?Math.ceil(Math.max(8,Math.min(13,Math.log(r.length)))*1.5):12+e.mem,a,n,!0)},Wr=function(r,e,a){for(;a;++e)r[e]=a,a>>>=8},Xr=function(r,e){var a=e.level,n=a==0?0:a<6?1:a==9?3:2;r[0]=120,r[1]=n<<6|(n?32-2*n:1)},Yr=function(r){if((r[0]&15)!=8||r[0]>>>4>7||(r[0]<<8|r[1])%31)throw"invalid zlib data";if(r[1]&32)throw"invalid zlib data: preset dictionaries not supported"};function Zr(r,e){e===void 0&&(e={});var a=Qr();a.p(r);var n=Vr(r,e,2,4);return Xr(n,e),Wr(n,n.length-4,a.d()),n}function _r(r,e){return Gr((Yr(r),r.subarray(2,-4)),e)}function Lr(r,e){var a=r.length;if(!e&&typeof TextEncoder<"u")return new TextEncoder().encode(r);for(var n=new O(r.length+(r.length>>>1)),v=0,i=function(l){n[v++]=l},u=0;u<a;++u){if(v+5>n.length){var h=new O(v+8+(a-u<<1));h.set(n),n=h}var f=r.charCodeAt(u);f<128||e?i(f):f<2048?(i(192|f>>>6),i(128|f&63)):f>55295&&f<57344?(f=65536+(f&1047552)|r.charCodeAt(++u)&1023,i(240|f>>>18),i(128|f>>>12&63),i(128|f>>>6&63),i(128|f&63)):(i(224|f>>>12),i(128|f>>>6&63),i(128|f&63))}return yr(n,0,v)}function pr(r,e){var a="";if(!e&&typeof TextDecoder<"u")return new TextDecoder().decode(r);for(var n=0;n<r.length;){var v=r[n++];v<128||e?a+=String.fromCharCode(v):v<224?a+=String.fromCharCode((v&31)<<6|r[n++]&63):v<240?a+=String.fromCharCode((v&15)<<12|(r[n++]&63)<<6|r[n++]&63):(v=((v&15)<<18|(r[n++]&63)<<12|(r[n++]&63)<<6|r[n++]&63)-65536,a+=String.fromCharCode(55296|v>>10,56320|v&1023))}return a}var dr="v1";L.MARK=dr;L.strFromU8=pr;L.strToU8=Lr;L.unzlibSync=_r;L.zlibSync=Zr});var mr=lr(Tr=>{"use strict";Object.defineProperty(Tr,Symbol.toStringTag,{value:"Module"});var ir=br(),re=r=>{let e={...r,v:ir.MARK};return ir.strFromU8(ir.zlibSync(ir.strToU8(JSON.stringify(e))),!0)};Tr.pack=re});var Jr=lr(Ur=>{"use strict";Object.defineProperty(Ur,Symbol.toStringTag,{value:"Module"});var nr=br(),ee=r=>{if(typeof r!="string")return r;try{let e=JSON.parse(r);if(e.timestamp)return e}catch{}try{let e=JSON.parse(nr.strFromU8(nr.unzlibSync(nr.strToU8(r,!0))));if(e.v===nr.MARK)return e;throw new Error(`These events were packed with packer ${e.v} which is incompatible with current packer ${nr.MARK}.`)}catch(e){throw console.error(e),new Error("Unknown data format.")}};Ur.unpack=ee});Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});var ae=mr(),ne=Jr();exports.pack=ae.pack;exports.unpack=ne.unpack; ;if (typeof module.exports == "object" && typeof exports == "object") { var __cp = (to, from, except, desc) => { if ((from && typeof from === "object") || typeof from === "function") { for (let key of Object.getOwnPropertyNames(from)) { if (!Object.prototype.hasOwnProperty.call(to, key) && key !== except) Object.defineProperty(to, key, { get: () => from[key], enumerable: !(desc = Object.getOwnPropertyDescriptor(from, key)) || desc.enumerable, }); } } return to; }; module.exports = __cp(module.exports, exports); } return module.exports; })) //# sourceMappingURL=packer.umd.min.cjs.map