@highlight-run/rrweb 2.1.1 → 2.1.4
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/dist/plugins/console-record.js +3 -3
- package/dist/plugins/console-record.min.js +3 -3
- package/dist/plugins/console-record.min.js.map +1 -1
- package/dist/plugins/console-replay.js +0 -0
- package/dist/plugins/console-replay.min.js +0 -0
- package/dist/plugins/console-replay.min.js.map +1 -1
- package/dist/plugins/sequential-id-record.js +0 -0
- package/dist/plugins/sequential-id-record.min.js +0 -0
- package/dist/plugins/sequential-id-record.min.js.map +0 -0
- package/dist/plugins/sequential-id-replay.js +0 -0
- package/dist/plugins/sequential-id-replay.min.js +0 -0
- package/dist/plugins/sequential-id-replay.min.js.map +0 -0
- package/dist/record/rrweb-record-pack.js +0 -0
- package/dist/record/rrweb-record-pack.min.js +0 -0
- package/dist/record/rrweb-record-pack.min.js.map +1 -1
- package/dist/record/rrweb-record.js +3 -3
- package/dist/record/rrweb-record.min.js +3 -3
- package/dist/record/rrweb-record.min.js.map +1 -1
- package/dist/replay/rrweb-replay-unpack.css +0 -0
- package/dist/replay/rrweb-replay-unpack.js +3 -3
- package/dist/replay/rrweb-replay-unpack.min.css +0 -0
- package/dist/replay/rrweb-replay-unpack.min.css.map +0 -0
- package/dist/replay/rrweb-replay-unpack.min.js +3 -3
- package/dist/replay/rrweb-replay-unpack.min.js.map +1 -1
- package/dist/replay/rrweb-replay.css +0 -0
- package/dist/replay/rrweb-replay.js +4 -4
- package/dist/replay/rrweb-replay.min.css +0 -0
- package/dist/replay/rrweb-replay.min.css.map +0 -0
- package/dist/replay/rrweb-replay.min.js +4 -4
- package/dist/replay/rrweb-replay.min.js.map +1 -1
- package/dist/rrweb-all.css +0 -0
- package/dist/rrweb-all.js +10 -10
- package/dist/rrweb-all.min.css +0 -0
- package/dist/rrweb-all.min.css.map +0 -0
- package/dist/rrweb-all.min.js +10 -10
- package/dist/rrweb-all.min.js.map +1 -1
- package/dist/rrweb.css +0 -0
- package/dist/rrweb.js +5 -5
- package/dist/rrweb.min.css +0 -0
- package/dist/rrweb.min.css.map +0 -0
- package/dist/rrweb.min.js +5 -5
- package/dist/rrweb.min.js.map +1 -1
- package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__auto__createBase64WorkerFactory.js +0 -0
- package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__auto__isNodeJS.js +0 -0
- package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__browser__createBase64WorkerFactory.js +0 -0
- package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__node__WorkerClass.js +0 -0
- package/es/rrweb/_virtual/_rollup-plugin-web-worker-loader__helper__node__createBase64WorkerFactory.js +0 -0
- package/es/rrweb/_virtual/image-bitmap-data-url-worker.js +0 -0
- package/es/rrweb/all.css +0 -0
- package/es/rrweb/ext/@xstate/fsm/es/index.js +0 -0
- package/es/rrweb/ext/base64-arraybuffer/dist/base64-arraybuffer.es5.js +0 -0
- package/es/rrweb/ext/fflate/esm/browser.js +0 -0
- package/es/rrweb/ext/mitt/dist/mitt.mjs.js +0 -0
- package/es/rrweb/ext/tslib/tslib.es6.js +0 -0
- package/es/rrweb/packages/rrdom/es/rrdom.js +0 -0
- package/es/rrweb/packages/rrweb/src/entries/all.js +0 -0
- package/es/rrweb/packages/rrweb/src/index.js +0 -0
- package/es/rrweb/packages/rrweb/src/packer/base.js +0 -0
- package/es/rrweb/packages/rrweb/src/packer/pack.js +0 -0
- package/es/rrweb/packages/rrweb/src/packer/unpack.js +0 -0
- package/es/rrweb/packages/rrweb/src/plugins/console/record/error-stack-parser.js +0 -0
- package/es/rrweb/packages/rrweb/src/plugins/console/record/index.js +0 -0
- package/es/rrweb/packages/rrweb/src/plugins/console/record/stringify.js +0 -0
- package/es/rrweb/packages/rrweb/src/plugins/console/replay/index.js +0 -0
- package/es/rrweb/packages/rrweb/src/plugins/sequential-id/record/index.js +0 -0
- package/es/rrweb/packages/rrweb/src/plugins/sequential-id/replay/index.js +0 -0
- package/es/rrweb/packages/rrweb/src/record/iframe-manager.js +0 -0
- package/es/rrweb/packages/rrweb/src/record/index.js +0 -0
- package/es/rrweb/packages/rrweb/src/record/mutation.js +0 -0
- package/es/rrweb/packages/rrweb/src/record/observer.js +0 -0
- package/es/rrweb/packages/rrweb/src/record/observers/canvas/2d.js +0 -0
- package/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas-manager.js +0 -0
- package/es/rrweb/packages/rrweb/src/record/observers/canvas/canvas.js +0 -0
- package/es/rrweb/packages/rrweb/src/record/observers/canvas/serialize-args.js +0 -0
- package/es/rrweb/packages/rrweb/src/record/observers/canvas/webgl.js +0 -0
- package/es/rrweb/packages/rrweb/src/record/shadow-dom-manager.js +0 -0
- package/es/rrweb/packages/rrweb/src/record/stylesheet-manager.js +0 -0
- package/es/rrweb/packages/rrweb/src/replay/canvas/2d.js +0 -0
- package/es/rrweb/packages/rrweb/src/replay/canvas/deserialize-args.js +0 -0
- package/es/rrweb/packages/rrweb/src/replay/canvas/index.js +0 -0
- package/es/rrweb/packages/rrweb/src/replay/canvas/webgl.js +0 -0
- package/es/rrweb/packages/rrweb/src/replay/index.js +0 -0
- package/es/rrweb/packages/rrweb/src/replay/machine.js +0 -0
- package/es/rrweb/packages/rrweb/src/replay/smoothscroll.js +0 -0
- package/es/rrweb/packages/rrweb/src/replay/styles/inject-style.js +0 -0
- package/es/rrweb/packages/rrweb/src/replay/timer.js +0 -0
- package/es/rrweb/packages/rrweb/src/types.js +0 -0
- package/es/rrweb/packages/rrweb/src/utils.js +0 -0
- package/es/rrweb/packages/rrweb-snapshot/es/rrweb-snapshot.js +13 -5
- package/lib/plugins/console-record.js +0 -0
- package/lib/plugins/console-replay.js +0 -0
- package/lib/plugins/sequential-id-record.js +0 -0
- package/lib/plugins/sequential-id-replay.js +0 -0
- package/lib/record/rrweb-record-pack.js +0 -0
- package/lib/record/rrweb-record.js +13 -5
- package/lib/replay/rrweb-replay-unpack.css +0 -0
- package/lib/replay/rrweb-replay-unpack.js +0 -0
- package/lib/replay/rrweb-replay.css +0 -0
- package/lib/replay/rrweb-replay.js +0 -0
- package/lib/rrweb-all.css +0 -0
- package/lib/rrweb-all.js +13 -5
- package/lib/rrweb.css +0 -0
- package/lib/rrweb.js +13 -5
- package/package.json +4 -4
- package/typings/entries/all.d.ts +0 -0
- package/typings/entries/record-pack.d.ts +0 -0
- package/typings/entries/replay-unpack.d.ts +0 -0
- package/typings/index.d.ts +0 -0
- package/typings/packer/base.d.ts +0 -0
- package/typings/packer/index.d.ts +0 -0
- package/typings/packer/pack.d.ts +0 -0
- package/typings/packer/unpack.d.ts +0 -0
- package/typings/plugins/console/record/error-stack-parser.d.ts +0 -0
- package/typings/plugins/console/record/index.d.ts +0 -0
- package/typings/plugins/console/record/stringify.d.ts +0 -0
- package/typings/plugins/console/replay/index.d.ts +0 -0
- package/typings/plugins/sequential-id/record/index.d.ts +0 -0
- package/typings/plugins/sequential-id/replay/index.d.ts +0 -0
- package/typings/record/iframe-manager.d.ts +0 -0
- package/typings/record/index.d.ts +0 -0
- package/typings/record/mutation.d.ts +0 -0
- package/typings/record/observer.d.ts +0 -0
- package/typings/record/observers/canvas/2d.d.ts +0 -0
- package/typings/record/observers/canvas/canvas-manager.d.ts +0 -0
- package/typings/record/observers/canvas/canvas.d.ts +0 -0
- package/typings/record/observers/canvas/serialize-args.d.ts +0 -0
- package/typings/record/observers/canvas/webgl.d.ts +0 -0
- package/typings/record/shadow-dom-manager.d.ts +0 -0
- package/typings/record/stylesheet-manager.d.ts +0 -0
- package/typings/record/workers/image-bitmap-data-url-worker.d.ts +0 -0
- package/typings/replay/canvas/2d.d.ts +0 -0
- package/typings/replay/canvas/deserialize-args.d.ts +0 -0
- package/typings/replay/canvas/index.d.ts +0 -0
- package/typings/replay/canvas/webgl.d.ts +0 -0
- package/typings/replay/index.d.ts +0 -0
- package/typings/replay/machine.d.ts +0 -0
- package/typings/replay/smoothscroll.d.ts +0 -0
- package/typings/replay/styles/inject-style.d.ts +0 -0
- package/typings/replay/timer.d.ts +0 -0
- package/typings/rrdom/index.d.ts +0 -0
- package/typings/rrdom/tree-node.d.ts +0 -0
- package/typings/types.d.ts +0 -0
- package/typings/utils.d.ts +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var rrwebConsoleRecord=function(N){"use strict";var y;(function(e){e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment"})(y||(y={}));const m=`Please stop import mirror directly. Instead of that,\r
|
|
2
2
|
now you can use replayer.getMirror() to access the mirror instance of a replayer,\r
|
|
3
|
-
or you can use record.mirror to access the mirror instance during recording.`;let b={map:{},getId(){return console.error(m),-1},getNode(){return console.error(m),null},removeNodeFromMap(){console.error(m)},has(){return console.error(m),!1},reset(){console.error(m)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(b=new Proxy(b,{get(e,r,n){return r==="map"&&console.error(m),Reflect.get(e,r,n)}}));function
|
|
3
|
+
or you can use record.mirror to access the mirror instance during recording.`;let b={map:{},getId(){return console.error(m),-1},getNode(){return console.error(m),null},removeNodeFromMap(){console.error(m)},has(){return console.error(m),!1},reset(){console.error(m)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(b=new Proxy(b,{get(e,r,n){return r==="map"&&console.error(m),Reflect.get(e,r,n)}}));function S(e,r,n){try{if(!(r in e))return()=>{};const t=e[r],o=n(t);return typeof o=="function"&&(o.prototype=o.prototype||{},Object.defineProperties(o,{__rrweb_original__:{enumerable:!1,value:t}})),e[r]=o,()=>{e[r]=t}}catch{return()=>{}}}class p{constructor(r){this.fileName=r.fileName||"",this.functionName=r.functionName||"",this.lineNumber=r.lineNumber,this.columnNumber=r.columnNumber}toString(){const r=this.lineNumber||"",n=this.columnNumber||"";return this.functionName?`${this.functionName} (${this.fileName}:${r}:${n})`:`${this.fileName}:${r}:${n}`}}const C=/(^|@)\S+:\d+/,L=/^\s*at .*(\S+:\d+|\(native\))/m,j=/^(eval@)?(\[native code])?$/,E={parse:function(e){if(!e)return[];if(typeof e.stacktrace<"u"||typeof e["opera#sourceloc"]<"u")return this.parseOpera(e);if(e.stack&&e.stack.match(L))return this.parseV8OrIE(e);if(e.stack)return this.parseFFOrSafari(e);throw new Error("Cannot parse given Error object")},extractLocation:function(e){if(e.indexOf(":")===-1)return[e];const r=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/[()]/g,""));if(!r)throw new Error(`Cannot parse given url: ${e}`);return[r[1],r[2]||void 0,r[3]||void 0]},parseV8OrIE:function(e){return e.stack.split(`
|
|
4
4
|
`).filter(function(r){return!!r.match(L)},this).map(function(r){r.indexOf("(eval ")>-1&&(r=r.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(\),.*$)/g,""));let n=r.replace(/^\s+/,"").replace(/\(eval code/g,"(");const t=n.match(/ (\((.+):(\d+):(\d+)\)$)/);n=t?n.replace(t[0],""):n;const o=n.split(/\s+/).slice(1),c=this.extractLocation(t?t[1]:o.pop()),s=o.join(" ")||void 0,l=["eval","<anonymous>"].indexOf(c[0])>-1?void 0:c[0];return new p({functionName:s,fileName:l,lineNumber:c[1],columnNumber:c[2]})},this)},parseFFOrSafari:function(e){return e.stack.split(`
|
|
5
5
|
`).filter(function(r){return!r.match(j)},this).map(function(r){if(r.indexOf(" > eval")>-1&&(r=r.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),r.indexOf("@")===-1&&r.indexOf(":")===-1)return new p({functionName:r});{const n=/((.*".+"[^@]*)?[^@]*)(?:@)/,t=r.match(n),o=t&&t[1]?t[1]:void 0,c=this.extractLocation(r.replace(n,""));return new p({functionName:o,fileName:c[0],lineNumber:c[1],columnNumber:c[2]})}},this)},parseOpera:function(e){return!e.stacktrace||e.message.indexOf(`
|
|
6
6
|
`)>-1&&e.message.split(`
|
|
@@ -8,5 +8,5 @@ or you can use record.mirror to access the mirror instance during recording.`;le
|
|
|
8
8
|
`).length?this.parseOpera9(e):e.stack?this.parseOpera11(e):this.parseOpera10(e)},parseOpera9:function(e){const r=/Line (\d+).*script (?:in )?(\S+)/i,n=e.message.split(`
|
|
9
9
|
`),t=[];for(let o=2,c=n.length;o<c;o+=2){const s=r.exec(n[o]);s&&t.push(new p({fileName:s[2],lineNumber:parseFloat(s[1])}))}return t},parseOpera10:function(e){const r=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,n=e.stacktrace.split(`
|
|
10
10
|
`),t=[];for(let o=0,c=n.length;o<c;o+=2){const s=r.exec(n[o]);s&&t.push(new p({functionName:s[3]||void 0,fileName:s[2],lineNumber:parseFloat(s[1])}))}return t},parseOpera11:function(e){return e.stack.split(`
|
|
11
|
-
`).filter(function(r){return!!r.match(
|
|
12
|
-
End of stack for Error object`:i.name+": "+i.message}return i});function c(l){return!!(v(l)&&Object.keys(l).length>n.numOfKeysLimit||typeof l=="function"||v(l)&&
|
|
11
|
+
`).filter(function(r){return!!r.match(C)&&!r.match(/^Error created at/)},this).map(function(r){const n=r.split("@"),t=this.extractLocation(n.pop()),o=(n.shift()||"").replace(/<anonymous function(: (\w+))?>/,"$2").replace(/\([^)]*\)/g,"")||void 0;return new p({functionName:o,fileName:t[0],lineNumber:t[1],columnNumber:t[2]})},this)}};function T(e){if(!e||!e.outerHTML)return"";let r="";for(;e.parentElement;){let n=e.localName;if(!n)break;n=n.toLowerCase();const t=e.parentElement,o=[];if(t.children&&t.children.length>0)for(let c=0;c<t.children.length;c++){const s=t.children[c];s.localName&&s.localName.toLowerCase&&s.localName.toLowerCase()===n&&o.push(s)}o.length>1&&(n+=`:eq(${o.indexOf(e)})`),r=n+(r?">"+r:""),e=t}return r}function v(e){return Object.prototype.toString.call(e)==="[object Object]"}function x(e,r){if(r===0)return!0;const n=Object.keys(e);for(const t of n)if(v(e[t])&&x(e[t],r-1))return!0;return!1}function w(e,r){const n={numOfKeysLimit:50,depthOfLimit:4};Object.assign(n,r);const t=[],o=[];return JSON.stringify(e,function(l,i){if(t.length>0){const a=t.indexOf(this);~a?t.splice(a+1):t.push(this),~a?o.splice(a,1/0,l):o.push(l),~t.indexOf(i)&&(t[0]===i?i="[Circular ~]":i="[Circular ~."+o.slice(0,t.indexOf(i)).join(".")+"]")}else t.push(i);if(i===null)return i;if(i===void 0)return"undefined";if(c(i))return s(i);if(i instanceof Event){const a={};for(const u in i){const f=i[u];Array.isArray(f)?a[u]=T(f.length?f[0]:null):a[u]=f}return a}else{if(i instanceof Node)return i instanceof HTMLElement?i?i.outerHTML:"":i.nodeName;if(i instanceof Error)return i.stack?i.stack+`
|
|
12
|
+
End of stack for Error object`:i.name+": "+i.message}return i});function c(l){return!!(v(l)&&Object.keys(l).length>n.numOfKeysLimit||typeof l=="function"||v(l)&&x(l,n.depthOfLimit))}function s(l){let i=l.toString();return n.stringLengthLimit&&i.length>n.stringLengthLimit&&(i=`${i.slice(0,n.stringLengthLimit)}...`),i}}const k={level:["assert","clear","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],lengthThreshold:1e3,logger:"console"};function P(e,r,n){const t=n?Object.assign({},k,n):k,o=t.logger;if(!o)return()=>{};let c;typeof o=="string"?c=r[o]:c=o;let s=0;const l=[];if(t.level.includes("error")&&window){const a=u=>{const f=u.message,d=u.error,h=E.parse(d).map(g=>g.toString()),O=[w(f,t.stringifyOptions)];e({level:"error",trace:h,payload:O})};window.addEventListener("error",a),l.push(()=>{window&&window.removeEventListener("error",a)})}for(const a of t.level)l.push(i(c,a));return()=>{l.forEach(a=>a())};function i(a,u){return a[u]?S(a,u,f=>(...d)=>{f.apply(this,d);try{const h=E.parse(new Error).map(g=>g.toString()).splice(1),O=d.map(g=>w(g,t.stringifyOptions));s++,s<t.lengthThreshold?e({level:u,trace:h,payload:O}):s===t.lengthThreshold&&e({level:"warn",trace:[],payload:[w("The number of log records reached the threshold.")]})}catch(h){f("rrweb logger error:",h,...d)}}):()=>{}}}const $="rrweb/console@1",_=e=>({name:$,observer:P,options:e});return N.PLUGIN_NAME=$,N.getRecordConsolePlugin=_,Object.defineProperty(N,"__esModule",{value:!0}),N}({});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
var rrwebConsoleRecord=function(N){"use strict";var y;(function(e){e[e.Document=0]="Document",e[e.DocumentType=1]="DocumentType",e[e.Element=2]="Element",e[e.Text=3]="Text",e[e.CDATA=4]="CDATA",e[e.Comment=5]="Comment"})(y||(y={}));const m=`Please stop import mirror directly. Instead of that,\r
|
|
2
2
|
now you can use replayer.getMirror() to access the mirror instance of a replayer,\r
|
|
3
|
-
or you can use record.mirror to access the mirror instance during recording.`;let b={map:{},getId(){return console.error(m),-1},getNode(){return console.error(m),null},removeNodeFromMap(){console.error(m)},has(){return console.error(m),!1},reset(){console.error(m)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(b=new Proxy(b,{get(e,r,n){return r==="map"&&console.error(m),Reflect.get(e,r,n)}}));function
|
|
3
|
+
or you can use record.mirror to access the mirror instance during recording.`;let b={map:{},getId(){return console.error(m),-1},getNode(){return console.error(m),null},removeNodeFromMap(){console.error(m)},has(){return console.error(m),!1},reset(){console.error(m)}};typeof window<"u"&&window.Proxy&&window.Reflect&&(b=new Proxy(b,{get(e,r,n){return r==="map"&&console.error(m),Reflect.get(e,r,n)}}));function S(e,r,n){try{if(!(r in e))return()=>{};const t=e[r],o=n(t);return typeof o=="function"&&(o.prototype=o.prototype||{},Object.defineProperties(o,{__rrweb_original__:{enumerable:!1,value:t}})),e[r]=o,()=>{e[r]=t}}catch{return()=>{}}}class p{constructor(r){this.fileName=r.fileName||"",this.functionName=r.functionName||"",this.lineNumber=r.lineNumber,this.columnNumber=r.columnNumber}toString(){const r=this.lineNumber||"",n=this.columnNumber||"";return this.functionName?`${this.functionName} (${this.fileName}:${r}:${n})`:`${this.fileName}:${r}:${n}`}}const C=/(^|@)\S+:\d+/,L=/^\s*at .*(\S+:\d+|\(native\))/m,j=/^(eval@)?(\[native code])?$/,E={parse:function(e){if(!e)return[];if(typeof e.stacktrace<"u"||typeof e["opera#sourceloc"]<"u")return this.parseOpera(e);if(e.stack&&e.stack.match(L))return this.parseV8OrIE(e);if(e.stack)return this.parseFFOrSafari(e);throw new Error("Cannot parse given Error object")},extractLocation:function(e){if(e.indexOf(":")===-1)return[e];const r=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(e.replace(/[()]/g,""));if(!r)throw new Error(`Cannot parse given url: ${e}`);return[r[1],r[2]||void 0,r[3]||void 0]},parseV8OrIE:function(e){return e.stack.split(`
|
|
4
4
|
`).filter(function(r){return!!r.match(L)},this).map(function(r){r.indexOf("(eval ")>-1&&(r=r.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(\),.*$)/g,""));let n=r.replace(/^\s+/,"").replace(/\(eval code/g,"(");const t=n.match(/ (\((.+):(\d+):(\d+)\)$)/);n=t?n.replace(t[0],""):n;const o=n.split(/\s+/).slice(1),c=this.extractLocation(t?t[1]:o.pop()),s=o.join(" ")||void 0,l=["eval","<anonymous>"].indexOf(c[0])>-1?void 0:c[0];return new p({functionName:s,fileName:l,lineNumber:c[1],columnNumber:c[2]})},this)},parseFFOrSafari:function(e){return e.stack.split(`
|
|
5
5
|
`).filter(function(r){return!r.match(j)},this).map(function(r){if(r.indexOf(" > eval")>-1&&(r=r.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),r.indexOf("@")===-1&&r.indexOf(":")===-1)return new p({functionName:r});{const n=/((.*".+"[^@]*)?[^@]*)(?:@)/,t=r.match(n),o=t&&t[1]?t[1]:void 0,c=this.extractLocation(r.replace(n,""));return new p({functionName:o,fileName:c[0],lineNumber:c[1],columnNumber:c[2]})}},this)},parseOpera:function(e){return!e.stacktrace||e.message.indexOf(`
|
|
6
6
|
`)>-1&&e.message.split(`
|
|
@@ -8,6 +8,6 @@ or you can use record.mirror to access the mirror instance during recording.`;le
|
|
|
8
8
|
`).length?this.parseOpera9(e):e.stack?this.parseOpera11(e):this.parseOpera10(e)},parseOpera9:function(e){const r=/Line (\d+).*script (?:in )?(\S+)/i,n=e.message.split(`
|
|
9
9
|
`),t=[];for(let o=2,c=n.length;o<c;o+=2){const s=r.exec(n[o]);s&&t.push(new p({fileName:s[2],lineNumber:parseFloat(s[1])}))}return t},parseOpera10:function(e){const r=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,n=e.stacktrace.split(`
|
|
10
10
|
`),t=[];for(let o=0,c=n.length;o<c;o+=2){const s=r.exec(n[o]);s&&t.push(new p({functionName:s[3]||void 0,fileName:s[2],lineNumber:parseFloat(s[1])}))}return t},parseOpera11:function(e){return e.stack.split(`
|
|
11
|
-
`).filter(function(r){return!!r.match(
|
|
12
|
-
End of stack for Error object`:i.name+": "+i.message}return i});function c(l){return!!(v(l)&&Object.keys(l).length>n.numOfKeysLimit||typeof l=="function"||v(l)&&
|
|
11
|
+
`).filter(function(r){return!!r.match(C)&&!r.match(/^Error created at/)},this).map(function(r){const n=r.split("@"),t=this.extractLocation(n.pop()),o=(n.shift()||"").replace(/<anonymous function(: (\w+))?>/,"$2").replace(/\([^)]*\)/g,"")||void 0;return new p({functionName:o,fileName:t[0],lineNumber:t[1],columnNumber:t[2]})},this)}};function T(e){if(!e||!e.outerHTML)return"";let r="";for(;e.parentElement;){let n=e.localName;if(!n)break;n=n.toLowerCase();const t=e.parentElement,o=[];if(t.children&&t.children.length>0)for(let c=0;c<t.children.length;c++){const s=t.children[c];s.localName&&s.localName.toLowerCase&&s.localName.toLowerCase()===n&&o.push(s)}o.length>1&&(n+=`:eq(${o.indexOf(e)})`),r=n+(r?">"+r:""),e=t}return r}function v(e){return Object.prototype.toString.call(e)==="[object Object]"}function x(e,r){if(r===0)return!0;const n=Object.keys(e);for(const t of n)if(v(e[t])&&x(e[t],r-1))return!0;return!1}function w(e,r){const n={numOfKeysLimit:50,depthOfLimit:4};Object.assign(n,r);const t=[],o=[];return JSON.stringify(e,function(l,i){if(t.length>0){const a=t.indexOf(this);~a?t.splice(a+1):t.push(this),~a?o.splice(a,1/0,l):o.push(l),~t.indexOf(i)&&(t[0]===i?i="[Circular ~]":i="[Circular ~."+o.slice(0,t.indexOf(i)).join(".")+"]")}else t.push(i);if(i===null)return i;if(i===void 0)return"undefined";if(c(i))return s(i);if(i instanceof Event){const a={};for(const u in i){const f=i[u];Array.isArray(f)?a[u]=T(f.length?f[0]:null):a[u]=f}return a}else{if(i instanceof Node)return i instanceof HTMLElement?i?i.outerHTML:"":i.nodeName;if(i instanceof Error)return i.stack?i.stack+`
|
|
12
|
+
End of stack for Error object`:i.name+": "+i.message}return i});function c(l){return!!(v(l)&&Object.keys(l).length>n.numOfKeysLimit||typeof l=="function"||v(l)&&x(l,n.depthOfLimit))}function s(l){let i=l.toString();return n.stringLengthLimit&&i.length>n.stringLengthLimit&&(i=`${i.slice(0,n.stringLengthLimit)}...`),i}}const k={level:["assert","clear","count","countReset","debug","dir","dirxml","error","group","groupCollapsed","groupEnd","info","log","table","time","timeEnd","timeLog","trace","warn"],lengthThreshold:1e3,logger:"console"};function P(e,r,n){const t=n?Object.assign({},k,n):k,o=t.logger;if(!o)return()=>{};let c;typeof o=="string"?c=r[o]:c=o;let s=0;const l=[];if(t.level.includes("error")&&window){const a=u=>{const f=u.message,d=u.error,h=E.parse(d).map(g=>g.toString()),O=[w(f,t.stringifyOptions)];e({level:"error",trace:h,payload:O})};window.addEventListener("error",a),l.push(()=>{window&&window.removeEventListener("error",a)})}for(const a of t.level)l.push(i(c,a));return()=>{l.forEach(a=>a())};function i(a,u){return a[u]?S(a,u,f=>(...d)=>{f.apply(this,d);try{const h=E.parse(new Error).map(g=>g.toString()).splice(1),O=d.map(g=>w(g,t.stringifyOptions));s++,s<t.lengthThreshold?e({level:u,trace:h,payload:O}):s===t.lengthThreshold&&e({level:"warn",trace:[],payload:[w("The number of log records reached the threshold.")]})}catch(h){f("rrweb logger error:",h,...d)}}):()=>{}}}const $="rrweb/console@1",_=e=>({name:$,observer:P,options:e});return N.PLUGIN_NAME=$,N.getRecordConsolePlugin=_,Object.defineProperty(N,"__esModule",{value:!0}),N}({});
|
|
13
13
|
//# sourceMappingURL=console-record.min.js.map
|