UNPKG

posthog-js

Version:

Posthog-js allows you to automatically capture usage and send events to PostHog.

3 lines (2 loc) • 7.05 kB
var r=Object.defineProperty,e=(e,n,t)=>((e,n,t)=>n in e?r(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t)(e,"symbol"!=typeof n?n+"":n,t);class n{constructor(r){e(this,"fileName"),e(this,"functionName"),e(this,"lineNumber"),e(this,"columnNumber"),this.fileName=r.fileName||"",this.functionName=r.functionName||"",this.lineNumber=r.lineNumber,this.columnNumber=r.columnNumber}toString(){var r=this.lineNumber||"",e=this.columnNumber||"";return this.functionName?this.functionName+" ("+this.fileName+":"+r+":"+e+")":this.fileName+":"+r+":"+e}}var t=/(^|@)\S+:\d+/,i=/^\s*at .*(\S+:\d+|\(native\))/m,a=/^(eval@)?(\[native code])?$/,o={parse(r){return r?void 0!==r.stacktrace||void 0!==r["opera#sourceloc"]?this.parseOpera(r):r.stack&&r.stack.match(i)?this.parseV8OrIE(r):r.stack?this.parseFFOrSafari(r):[]:[]},extractLocation(r){if(-1===r.indexOf(":"))return[r];var e=/(.+?)(?::(\d+))?(?::(\d+))?$/.exec(r.replace(/[()]/g,""));if(!e)throw new Error("Cannot parse given url: "+r);return[e[1],e[2]||void 0,e[3]||void 0]},parseV8OrIE(r){return r.stack.split("\n").filter((function(r){return!!r.match(i)}),this).map((function(r){r.indexOf("(eval ")>-1&&(r=r.replace(/eval code/g,"eval").replace(/(\(eval at [^()]*)|(\),.*$)/g,""));var e=r.replace(/^\s+/,"").replace(/\(eval code/g,"("),t=e.match(/ (\((.+):(\d+):(\d+)\)$)/),i=(e=t?e.replace(t[0],""):e).split(/\s+/).slice(1),a=this.extractLocation(t?t[1]:i.pop()),o=i.join(" ")||void 0,u=["eval","<anonymous>"].indexOf(a[0])>-1?void 0:a[0];return new n({functionName:o,fileName:u,lineNumber:a[1],columnNumber:a[2]})}),this)},parseFFOrSafari(r){return r.stack.split("\n").filter((function(r){return!r.match(a)}),this).map((function(r){if(r.indexOf(" > eval")>-1&&(r=r.replace(/ line (\d+)(?: > eval line \d+)* > eval:\d+:\d+/g,":$1")),-1===r.indexOf("@")&&-1===r.indexOf(":"))return new n({functionName:r});var e=/((.*".+"[^@]*)?[^@]*)(?:@)/,t=r.match(e),i=t&&t[1]?t[1]:void 0,a=this.extractLocation(r.replace(e,""));return new n({functionName:i,fileName:a[0],lineNumber:a[1],columnNumber:a[2]})}),this)},parseOpera(r){return!r.stacktrace||r.message.indexOf("\n")>-1&&r.message.split("\n").length>r.stacktrace.split("\n").length?this.parseOpera9(r):r.stack?this.parseOpera11(r):this.parseOpera10(r)},parseOpera9(r){for(var e=/Line (\d+).*script (?:in )?(\S+)/i,t=r.message.split("\n"),i=[],a=2,o=t.length;o>a;a+=2){var u=e.exec(t[a]);u&&i.push(new n({fileName:u[2],lineNumber:parseFloat(u[1])}))}return i},parseOpera10(r){for(var e=/Line (\d+).*script (?:in )?(\S+)(?:: In function (\S+))?$/i,t=r.stacktrace.split("\n"),i=[],a=0,o=t.length;o>a;a+=2){var u=e.exec(t[a]);u&&i.push(new n({functionName:u[3]||void 0,fileName:u[2],lineNumber:parseFloat(u[1])}))}return i},parseOpera11(r){return r.stack.split("\n").filter((function(r){return!!r.match(t)&&!r.match(/^Error created at/)}),this).map((function(r){var e=r.split("@"),t=this.extractLocation(e.pop()),i=(e.shift()||"").replace(/<anonymous function(: (\w+))?>/,"$2").replace(/\([^)]*\)/g,"")||void 0;return new n({functionName:i,fileName:t[0],lineNumber:t[1],columnNumber:t[2]})}),this)}};function u(r){if(!r||!r.outerHTML)return"";for(var e="";r.parentElement;){var n=r.localName;if(!n)break;n=n.toLowerCase();var t=r.parentElement,i=[];if(t.children&&t.children.length>0)for(var a=0;t.children.length>a;a++){var o=t.children[a];o.localName&&o.localName.toLowerCase&&o.localName.toLowerCase()===n&&i.push(o)}i.length>1&&(n+=":eq("+i.indexOf(r)+")"),e=n+(e?">"+e:""),r=t}return e}function f(r){return Array.isArray(r)}function l(r){return"object"==typeof r&&null!==r&&!f(r)}function c(r,e){if(0===e)return!0;var n=Object.keys(r);for(var t of n)if(l(r[t])&&c(r[t],e-1))return!0;return!1}function s(r,e){var n={numOfKeysLimit:50,depthOfLimit:4};Object.assign(n,e);var t=[],i=[];return JSON.stringify(r,(function(r,e){if(t.length>0){var a=t.indexOf(this);~a?t.splice(a+1):t.push(this),~a?i.splice(a,1/0,r):i.push(r),~t.indexOf(e)&&(e=t[0]===e?"[Circular ~]":"[Circular ~."+i.slice(0,t.indexOf(e)).join(".")+"]")}else t.push(e);if(null===e)return e;if(void 0===e)return"undefined";if(l(o=e)&&Object.keys(o).length>n.numOfKeysLimit||"function"==typeof o||l(o)&&c(o,n.depthOfLimit))return function(r){var e=r.toString();return n.stringLengthLimit&&e.length>n.stringLengthLimit&&(e=e.slice(0,n.stringLengthLimit)+"..."),e}(e);var o;if("bigint"==typeof e)return e.toString()+"n";if(e instanceof Event){var s={};for(var v in e){var d=e[v];s[v]=f(d)?u(d.length?d[0]:null):d}return s}return e instanceof Node?e instanceof HTMLElement?e?e.outerHTML:"":e.nodeName:e instanceof Error?e.stack?e.stack+"\nEnd of stack for Error object":e.name+": "+e.message:e}))}var v={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 d(r,e,n){var t,i=n?Object.assign({},v,n):v,a=i.logger;if(!a)return()=>{};t="string"==typeof a?e[a]:a;var u=0,f=!1,l=[];if(i.level.includes("error")){var c=e=>{var n=e.message,t=o.parse(e.error).map((r=>r.toString())),a=[s(n,i.stringifyOptions)];r({level:"error",trace:t,payload:a})};e.addEventListener("error",c),l.push((()=>{e.removeEventListener("error",c)}));var d=e=>{var n,t;e.reason instanceof Error?t=[s("Uncaught (in promise) "+(n=e.reason).name+": "+n.message,i.stringifyOptions)]:(n=new Error,t=[s("Uncaught (in promise)",i.stringifyOptions),s(e.reason,i.stringifyOptions)]);var a=o.parse(n).map((r=>r.toString()));r({level:"error",trace:a,payload:t})};e.addEventListener("unhandledrejection",d),l.push((()=>{e.removeEventListener("unhandledrejection",d)}))}for(var h of i.level)l.push(m(t,h));return()=>{l.forEach((r=>r()))};function m(e,n){var t=this;return e[n]?function(e,a,l){try{if(!(a in e))return()=>{};var c=e[a],v={next:c},d=(e=>function(){for(var a=arguments.length,l=new Array(a),c=0;a>c;c++)l[c]=arguments[c];if(e.apply(t,l),!("assert"===n&&l[0]||f)){f=!0;try{var v=o.parse(new Error).map((r=>r.toString())).splice(1),d=("assert"===n?l.slice(1):l).map((r=>s(r,i.stringifyOptions)));u++,i.lengthThreshold>u?r({level:n,trace:v,payload:d}):u===i.lengthThreshold&&r({level:"warn",trace:[],payload:[s("The number of log records reached the threshold.")]})}catch(r){e("rrweb logger error:",r,...l)}finally{f=!1}}})((function(){for(var r=arguments.length,e=new Array(r),n=0;r>n;n++)e[n]=arguments[n];return v.next.apply(this,e)}));return"function"==typeof d&&(d.prototype=d.prototype||{},Object.defineProperties(d,{__rrweb_original__:{enumerable:!1,value:c},__rrweb_layer__:{enumerable:!1,value:v}})),e[a]=d,()=>{if(e[a]!==d)for(var r=r=>{var e;return"function"==typeof r?null!==(e=r.__rrweb_layer__)&&void 0!==e?e:r.__posthog_layer__:void 0},n=e[a],t=r(n);t;){if(t.next===d)return void(t.next=v.next);t=r(n=t.next)}else e[a]=v.next}}catch(r){return()=>{}}}(e,n):()=>{}}}var h="rrweb/console@1",m=r=>({name:h,observer:d,options:r});export{h as PLUGIN_NAME,m as getRecordConsolePlugin}; //# sourceMappingURL=rrweb-plugin-console-record.js.map