UNPKG

posthog-js

Version:

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

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