UNPKG

@ked3/ktrace

Version:

跨平台埋点分析SDK

2 lines 28.1 kB
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.KTrace=t():e.KTrace=t()}(this,(()=>(()=>{"use strict";var e={25:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.URL=t.DNS=void 0,t.default=function(e,t,r){function n(e,n,s,a){var c;if("string"==typeof e&&(e=function(e){e=unescape(encodeURIComponent(e));const t=[];for(let r=0;r<e.length;++r)t.push(e.charCodeAt(r));return t}(e)),"string"==typeof n&&(n=(0,o.default)(n)),16!==(null===(c=n)||void 0===c?void 0:c.length))throw TypeError("Namespace must be array-like (16 iterable integer values, 0-255)");let u=new Uint8Array(16+e.length);if(u.set(n),u.set(e,n.length),u=r(u),u[6]=15&u[6]|t,u[8]=63&u[8]|128,s){a=a||0;for(let e=0;e<16;++e)s[a+e]=u[e];return s}return(0,i.unsafeStringify)(u)}try{n.name=e}catch(e){}return n.DNS=s,n.URL=a,n};var n,i=r(910),o=(n=r(792))&&n.__esModule?n:{default:n};const s="6ba7b810-9dad-11d1-80b4-00c04fd430c8";t.DNS=s;const a="6ba7b811-9dad-11d1-80b4-00c04fd430c8";t.URL=a},37:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,i=(n=r(656))&&n.__esModule?n:{default:n};var o=function(e){return"string"==typeof e&&i.default.test(e)};t.default=o},42:(e,t)=>{function r(e,t,r,n){switch(e){case 0:return t&r^~t&n;case 1:case 3:return t^r^n;case 2:return t&r^t&n^r&n}}function n(e,t){return e<<t|e>>>32-t}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var i=function(e){const t=[1518500249,1859775393,2400959708,3395469782],i=[1732584193,4023233417,2562383102,271733878,3285377520];if("string"==typeof e){const t=unescape(encodeURIComponent(e));e=[];for(let r=0;r<t.length;++r)e.push(t.charCodeAt(r))}else Array.isArray(e)||(e=Array.prototype.slice.call(e));e.push(128);const o=e.length/4+2,s=Math.ceil(o/16),a=new Array(s);for(let t=0;t<s;++t){const r=new Uint32Array(16);for(let n=0;n<16;++n)r[n]=e[64*t+4*n]<<24|e[64*t+4*n+1]<<16|e[64*t+4*n+2]<<8|e[64*t+4*n+3];a[t]=r}a[s-1][14]=8*(e.length-1)/Math.pow(2,32),a[s-1][14]=Math.floor(a[s-1][14]),a[s-1][15]=8*(e.length-1)&4294967295;for(let e=0;e<s;++e){const o=new Uint32Array(80);for(let t=0;t<16;++t)o[t]=a[e][t];for(let e=16;e<80;++e)o[e]=n(o[e-3]^o[e-8]^o[e-14]^o[e-16],1);let s=i[0],c=i[1],u=i[2],d=i[3],l=i[4];for(let e=0;e<80;++e){const i=Math.floor(e/20),a=n(s,5)+r(i,c,u,d)+l+t[i]+o[e]>>>0;l=d,d=u,u=n(c,30)>>>0,c=s,s=a}i[0]=i[0]+s>>>0,i[1]=i[1]+c>>>0,i[2]=i[2]+u>>>0,i[3]=i[3]+d>>>0,i[4]=i[4]+l>>>0}return[i[0]>>24&255,i[0]>>16&255,i[0]>>8&255,255&i[0],i[1]>>24&255,i[1]>>16&255,i[1]>>8&255,255&i[1],i[2]>>24&255,i[2]>>16&255,i[2]>>8&255,255&i[2],i[3]>>24&255,i[3]>>16&255,i[3]>>8&255,255&i[3],i[4]>>24&255,i[4]>>16&255,i[4]>>8&255,255&i[4]]};t.default=i},73:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=s(r(140)),i=s(r(858)),o=r(910);function s(e){return e&&e.__esModule?e:{default:e}}var a=function(e,t,r){if(n.default.randomUUID&&!t&&!e)return n.default.randomUUID();const s=(e=e||{}).random||(e.rng||i.default)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t){r=r||0;for(let e=0;e<16;++e)t[r+e]=s[e];return t}return(0,o.unsafeStringify)(s)};t.default=a},94:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0});const i=r(831),o=n(r(535)),s=r(879),a=r(163);t.default=class{constructor(e){this.plugins=[],this.userId=null,this.version="1.0.0";this.config=Object.assign(Object.assign({},{appId:"",serverUrl:"",enableAutoTrack:!0,debug:!1,maxBatchSize:10,flushInterval:5e3,sampleRate:1}),e),this.sessionId=this.generateSessionId(),this.deviceInfo=(0,a.getDeviceInfo)(),this.transport=new o.default({serverUrl:this.config.serverUrl,maxBatchSize:this.config.maxBatchSize,flushInterval:this.config.flushInterval}),this.config.enableAutoTrack&&this.setupAutoTracking(),this.config.plugins&&this.config.plugins.length>0&&this.registerPlugins(this.config.plugins)}init(e){this.config=Object.assign(Object.assign({},this.config),e),this.transport=new o.default({serverUrl:this.config.serverUrl,maxBatchSize:this.config.maxBatchSize,flushInterval:this.config.flushInterval}),this.config.debug}identify(e,t){this.userId=e,this.track("user_identify",Object.assign({userId:e},t)),this.config.debug}track(e,t){if(Math.random()>this.config.sampleRate)return;let r={id:(0,i.v4)(),type:s.EventType.CUSTOM,name:e,timestamp:Date.now(),properties:t||{},userId:this.userId||void 0,sessionId:this.sessionId,deviceInfo:this.deviceInfo};for(const e of this.plugins)if(e.beforeTrack){const t=e.beforeTrack(r);if(!t)return;r=t}this.transport.send(r);for(const e of this.plugins)e.afterTrack&&e.afterTrack(r);this.config.debug}trackPageView(e,t){this.track(e,Object.assign({type:s.EventType.PAGE_VIEW},t))}trackError(e,t){this.track("error",Object.assign({type:s.EventType.ERROR,name:e.name,message:e.message,stack:e.stack},t))}registerPlugins(e){for(const t of e)this.plugins.push(t),t.init&&t.init(this),this.config.debug}generateSessionId(){return(0,i.v4)()}setupAutoTracking(){"undefined"!=typeof window&&(window.addEventListener("load",(()=>{this.trackPageView("page_load",{url:window.location.href,title:document.title,referrer:document.referrer})})),window.addEventListener("beforeunload",(()=>{this.track("page_leave",{url:window.location.href,title:document.title,duration:Date.now()-window.__pageLoadTime||0}),this.transport.flush(!0)})),window.__pageLoadTime=Date.now())}}},140:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r={randomUUID:"undefined"!=typeof crypto&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)};t.default=r},156:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.ElectronAdapter=t.ReactAdapter=t.VueAdapter=t.ErrorMonitor=t.Transport=t.Tracker=void 0;const i=n(r(94)),o=r(330);var s=r(94);Object.defineProperty(t,"Tracker",{enumerable:!0,get:function(){return n(s).default}});var a=r(535);Object.defineProperty(t,"Transport",{enumerable:!0,get:function(){return n(a).default}});var c=r(880);Object.defineProperty(t,"ErrorMonitor",{enumerable:!0,get:function(){return n(c).default}});var u=r(814);Object.defineProperty(t,"VueAdapter",{enumerable:!0,get:function(){return n(u).default}});var d=r(679);Object.defineProperty(t,"ReactAdapter",{enumerable:!0,get:function(){return n(d).default}});var l=r(996);Object.defineProperty(t,"ElectronAdapter",{enumerable:!0,get:function(){return n(l).default}});const f=new i.default;f.version=o.version,t.default=f},163:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.getDeviceInfo=function(){const e=navigator.userAgent;let t="unknown",r="unknown",n="unknown",i="unknown";if(-1!==e.indexOf("Windows")){t="Windows";const n=e.match(/Windows NT (\d+\.\d+)/);if(n){r={"10.0":"10",6.3:"8.1",6.2:"8",6.1:"7","6.0":"Vista",5.2:"XP",5.1:"XP"}[n[1]]||n[1]}}else if(-1!==e.indexOf("Macintosh")){t="MacOS";const n=e.match(/Mac OS X (\d+[._]\d+[._]?\d*)/);n&&(r=n[1].replace(/_/g,"."))}else if(-1!==e.indexOf("Android")){t="Android";const n=e.match(/Android (\d+(\.\d+)+)/);n&&(r=n[1])}else if(-1!==e.indexOf("iOS")||-1!==e.indexOf("iPhone")||-1!==e.indexOf("iPad")){t="iOS";const n=e.match(/OS (\d+[._]\d+[._]?\d*)/);n&&(r=n[1].replace(/_/g,"."))}else-1!==e.indexOf("Linux")&&(t="Linux");if(-1!==e.indexOf("Chrome")&&-1===e.indexOf("Edg")&&-1===e.indexOf("OPR")){n="Chrome";const t=e.match(/Chrome\/(\d+(\.\d+)+)/);t&&(i=t[1])}else if(-1!==e.indexOf("Firefox")){n="Firefox";const t=e.match(/Firefox\/(\d+(\.\d+)+)/);t&&(i=t[1])}else if(-1!==e.indexOf("Safari")&&-1===e.indexOf("Chrome")){n="Safari";const t=e.match(/Version\/(\d+(\.\d+)+)/);t&&(i=t[1])}else if(-1!==e.indexOf("Edg")){n="Edge";const t=e.match(/Edg\/(\d+(\.\d+)+)/);t&&(i=t[1])}else if(-1!==e.indexOf("OPR")||-1!==e.indexOf("Opera")){n="Opera";const t=e.match(/OPR\/(\d+(\.\d+)+)/);t&&(i=t[1])}else if(-1!==e.indexOf("Trident")||-1!==e.indexOf("MSIE")){n="Internet Explorer";const t=e.match(/rv:(\d+(\.\d+)+)/)||e.match(/MSIE (\d+(\.\d+)+)/);t&&(i=t[1])}const o=window.screen.width,s=window.screen.height,a=window.innerWidth,c=window.innerHeight;let u="unknown";navigator.connection&&(u=navigator.connection.effectiveType||navigator.connection.type||"unknown");return{os:t,osVersion:r,browser:n,browserVersion:i,screenWidth:o,screenHeight:s,viewportWidth:a,viewportHeight:c,network:u}},t.generateId=function(){return Math.random().toString(36).substring(2,15)+Math.random().toString(36).substring(2,15)},t.debounce=function(e,t){let r=null;return function(...n){null!==r&&clearTimeout(r),r=window.setTimeout((()=>{r=null,e(...n)}),t)}},t.throttle=function(e,t){let r=!1;return function(...n){r||(e(...n),r=!0,setTimeout((()=>{r=!1}),t))}},t.isSupportBeacon=function(){return navigator&&"function"==typeof navigator.sendBeacon},t.normalizeUrl=function(e){if(!e)return"";e.endsWith("/")||(e+="/");return e}},186:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=o(r(25)),i=o(r(42));function o(e){return e&&e.__esModule?e:{default:e}}var s=(0,n.default)("v5",80,i.default);t.default=s},311:(e,t)=>{function r(e){return 14+(e+64>>>9<<4)+1}function n(e,t){const r=(65535&e)+(65535&t);return(e>>16)+(t>>16)+(r>>16)<<16|65535&r}function i(e,t,r,i,o,s){return n((a=n(n(t,e),n(i,s)))<<(c=o)|a>>>32-c,r);var a,c}function o(e,t,r,n,o,s,a){return i(t&r|~t&n,e,t,o,s,a)}function s(e,t,r,n,o,s,a){return i(t&n|r&~n,e,t,o,s,a)}function a(e,t,r,n,o,s,a){return i(t^r^n,e,t,o,s,a)}function c(e,t,r,n,o,s,a){return i(r^(t|~n),e,t,o,s,a)}Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var u=function(e){if("string"==typeof e){const t=unescape(encodeURIComponent(e));e=new Uint8Array(t.length);for(let r=0;r<t.length;++r)e[r]=t.charCodeAt(r)}return function(e){const t=[],r=32*e.length,n="0123456789abcdef";for(let i=0;i<r;i+=8){const r=e[i>>5]>>>i%32&255,o=parseInt(n.charAt(r>>>4&15)+n.charAt(15&r),16);t.push(o)}return t}(function(e,t){e[t>>5]|=128<<t%32,e[r(t)-1]=t;let i=1732584193,u=-271733879,d=-1732584194,l=271733878;for(let t=0;t<e.length;t+=16){const r=i,f=u,h=d,p=l;i=o(i,u,d,l,e[t],7,-680876936),l=o(l,i,u,d,e[t+1],12,-389564586),d=o(d,l,i,u,e[t+2],17,606105819),u=o(u,d,l,i,e[t+3],22,-1044525330),i=o(i,u,d,l,e[t+4],7,-176418897),l=o(l,i,u,d,e[t+5],12,1200080426),d=o(d,l,i,u,e[t+6],17,-1473231341),u=o(u,d,l,i,e[t+7],22,-45705983),i=o(i,u,d,l,e[t+8],7,1770035416),l=o(l,i,u,d,e[t+9],12,-1958414417),d=o(d,l,i,u,e[t+10],17,-42063),u=o(u,d,l,i,e[t+11],22,-1990404162),i=o(i,u,d,l,e[t+12],7,1804603682),l=o(l,i,u,d,e[t+13],12,-40341101),d=o(d,l,i,u,e[t+14],17,-1502002290),u=o(u,d,l,i,e[t+15],22,1236535329),i=s(i,u,d,l,e[t+1],5,-165796510),l=s(l,i,u,d,e[t+6],9,-1069501632),d=s(d,l,i,u,e[t+11],14,643717713),u=s(u,d,l,i,e[t],20,-373897302),i=s(i,u,d,l,e[t+5],5,-701558691),l=s(l,i,u,d,e[t+10],9,38016083),d=s(d,l,i,u,e[t+15],14,-660478335),u=s(u,d,l,i,e[t+4],20,-405537848),i=s(i,u,d,l,e[t+9],5,568446438),l=s(l,i,u,d,e[t+14],9,-1019803690),d=s(d,l,i,u,e[t+3],14,-187363961),u=s(u,d,l,i,e[t+8],20,1163531501),i=s(i,u,d,l,e[t+13],5,-1444681467),l=s(l,i,u,d,e[t+2],9,-51403784),d=s(d,l,i,u,e[t+7],14,1735328473),u=s(u,d,l,i,e[t+12],20,-1926607734),i=a(i,u,d,l,e[t+5],4,-378558),l=a(l,i,u,d,e[t+8],11,-2022574463),d=a(d,l,i,u,e[t+11],16,1839030562),u=a(u,d,l,i,e[t+14],23,-35309556),i=a(i,u,d,l,e[t+1],4,-1530992060),l=a(l,i,u,d,e[t+4],11,1272893353),d=a(d,l,i,u,e[t+7],16,-155497632),u=a(u,d,l,i,e[t+10],23,-1094730640),i=a(i,u,d,l,e[t+13],4,681279174),l=a(l,i,u,d,e[t],11,-358537222),d=a(d,l,i,u,e[t+3],16,-722521979),u=a(u,d,l,i,e[t+6],23,76029189),i=a(i,u,d,l,e[t+9],4,-640364487),l=a(l,i,u,d,e[t+12],11,-421815835),d=a(d,l,i,u,e[t+15],16,530742520),u=a(u,d,l,i,e[t+2],23,-995338651),i=c(i,u,d,l,e[t],6,-198630844),l=c(l,i,u,d,e[t+7],10,1126891415),d=c(d,l,i,u,e[t+14],15,-1416354905),u=c(u,d,l,i,e[t+5],21,-57434055),i=c(i,u,d,l,e[t+12],6,1700485571),l=c(l,i,u,d,e[t+3],10,-1894986606),d=c(d,l,i,u,e[t+10],15,-1051523),u=c(u,d,l,i,e[t+1],21,-2054922799),i=c(i,u,d,l,e[t+8],6,1873313359),l=c(l,i,u,d,e[t+15],10,-30611744),d=c(d,l,i,u,e[t+6],15,-1560198380),u=c(u,d,l,i,e[t+13],21,1309151649),i=c(i,u,d,l,e[t+4],6,-145523070),l=c(l,i,u,d,e[t+11],10,-1120210379),d=c(d,l,i,u,e[t+2],15,718787259),u=c(u,d,l,i,e[t+9],21,-343485551),i=n(i,r),u=n(u,f),d=n(d,h),l=n(l,p)}return[i,u,d,l]}(function(e){if(0===e.length)return[];const t=8*e.length,n=new Uint32Array(r(t));for(let r=0;r<t;r+=8)n[r>>5]|=(255&e[r/8])<<r%32;return n}(e),8*e.length))};t.default=u},330:e=>{e.exports=JSON.parse('{"name":"@ked3/ktrace","version":"1.0.1","description":"跨平台埋点分析SDK","main":"dist/ktrace.js","types":"dist/index.d.ts","scripts":{"dev":"webpack serve --mode development","build":"webpack --mode production","build:dev":"webpack --mode development","lint":"tsc --noEmit","test":"echo \\"Error: no test specified\\" && exit 1"},"keywords":["analytics","tracking","event","埋点","统计"],"author":"","license":"MIT","devDependencies":{"@types/node":"^22.13.17","@types/uuid":"^9.0.7","html-webpack-plugin":"^5.6.3","terser-webpack-plugin":"^5.3.14","ts-loader":"^9.5.2","typescript":"^5.8.2","webpack":"^5.98.0","webpack-cli":"^6.0.1","webpack-dev-server":"^5.2.1"},"dependencies":{"uuid":"^9.0.1"},"optionalDependencies":{"electron":"^30.0.0"},"peerDependencies":{"electron":">=12.0.0"}}')},482:e=>{e.exports=require("electron")},518:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,i=(n=r(858))&&n.__esModule?n:{default:n},o=r(910);let s,a,c=0,u=0;var d=function(e,t,r){let n=t&&r||0;const d=t||new Array(16);let l=(e=e||{}).node||s,f=void 0!==e.clockseq?e.clockseq:a;if(null==l||null==f){const t=e.random||(e.rng||i.default)();null==l&&(l=s=[1|t[0],t[1],t[2],t[3],t[4],t[5]]),null==f&&(f=a=16383&(t[6]<<8|t[7]))}let h=void 0!==e.msecs?e.msecs:Date.now(),p=void 0!==e.nsecs?e.nsecs:u+1;const g=h-c+(p-u)/1e4;if(g<0&&void 0===e.clockseq&&(f=f+1&16383),(g<0||h>c)&&void 0===e.nsecs&&(p=0),p>=1e4)throw new Error("uuid.v1(): Can't create more than 10M uuids/sec");c=h,u=p,a=f,h+=122192928e5;const m=(1e4*(268435455&h)+p)%4294967296;d[n++]=m>>>24&255,d[n++]=m>>>16&255,d[n++]=m>>>8&255,d[n++]=255&m;const v=h/4294967296*1e4&268435455;d[n++]=v>>>8&255,d[n++]=255&v,d[n++]=v>>>24&15|16,d[n++]=v>>>16&255,d[n++]=f>>>8|128,d[n++]=255&f;for(let e=0;e<6;++e)d[n+e]=l[e];return t||(0,o.unsafeStringify)(d)};t.default=d},535:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0});const n=r(163);t.default=class{constructor(e){this.queue=[],this.timer=null,this.sending=!1,this.storage=null,this.storageKey="ktrace_events";this.options=Object.assign(Object.assign({},{maxBatchSize:10,flushInterval:5e3,retryTimes:3,useBeacon:!0,headers:{"Content-Type":"application/json"}}),e),this.options.serverUrl=(0,n.normalizeUrl)(this.options.serverUrl);try{this.storage=window.localStorage,this.loadFromStorage()}catch(e){this.storage=null}this.setupTimer()}send(e){this.queue.push(e),this.queue.length>=(this.options.maxBatchSize||10)&&this.flush()}flush(e=!0){if(0===this.queue.length||this.sending)return;const t=[...this.queue];this.queue=[],this.sending=!0,this.saveToStorage(),(e||this.options.useBeacon&&!1===window.navigator.onLine)&&(0,n.isSupportBeacon)()?this.sendByBeacon(t):this.sendByXHR(t)}sendByXHR(e){const t=new XMLHttpRequest;let r=0;const n=()=>{t.open("POST",this.options.serverUrl+"collect",!0),this.options.headers&&Object.keys(this.options.headers).forEach((e=>{t.setRequestHeader(e,this.options.headers[e])})),t.onreadystatechange=()=>{4===t.readyState&&(t.status>=200&&t.status<300?(this.sending=!1,this.removeFromStorage(e)):r<(this.options.retryTimes||3)?(r++,setTimeout(n,1e3*r)):(this.queue=[...e,...this.queue],this.sending=!1,this.saveToStorage()))},t.onerror=()=>{r<(this.options.retryTimes||3)?(r++,setTimeout(n,1e3*r)):(this.queue=[...e,...this.queue],this.sending=!1,this.saveToStorage())},t.send(JSON.stringify(e))};n()}sendByBeacon(e){navigator.sendBeacon(this.options.serverUrl+"collect",JSON.stringify(e))?this.removeFromStorage(e):this.queue=[...e,...this.queue],this.sending=!1}setupTimer(){this.timer&&clearInterval(this.timer),this.timer=window.setInterval((()=>{this.flush()}),this.options.flushInterval||5e3)}loadFromStorage(){if(this.storage)try{const e=this.storage.getItem(this.storageKey);if(e){const t=JSON.parse(e);this.queue=[...t,...this.queue]}}catch(e){}}saveToStorage(){if(this.storage)try{this.storage.setItem(this.storageKey,JSON.stringify(this.queue))}catch(e){}}removeFromStorage(e){if(this.storage)try{const t=this.storage.getItem(this.storageKey);if(t){const r=JSON.parse(t),n=new Set(e.map((e=>e.id))),i=r.filter((e=>!n.has(e.id)));this.storage.setItem(this.storageKey,JSON.stringify(i))}}catch(e){}}}},656:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i},679:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){return new o(e)};const i=n(r(94));class o{constructor(e){this.tracker=new i.default(e),this.tracker.init(e)}track(e,t){this.tracker.track(e,t)}trackPageView(e,t){this.tracker.trackPageView(e,t)}identify(e,t){this.tracker.identify(e,t)}getTracker(){return this.tracker}createHook(){return{tracker:this.tracker,track:this.track.bind(this),trackPageView:this.trackPageView.bind(this),identify:this.identify.bind(this)}}trackRouteChange(e,t){const r=t||e.pathname;this.trackPageView(r,{path:e.pathname,search:e.search,url:window.location.href})}}},775:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,i=(n=r(37))&&n.__esModule?n:{default:n};var o=function(e){if(!(0,i.default)(e))throw TypeError("Invalid UUID");return parseInt(e.slice(14,15),16)};t.default=o},792:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n,i=(n=r(37))&&n.__esModule?n:{default:n};var o=function(e){if(!(0,i.default)(e))throw TypeError("Invalid UUID");let t;const r=new Uint8Array(16);return r[0]=(t=parseInt(e.slice(0,8),16))>>>24,r[1]=t>>>16&255,r[2]=t>>>8&255,r[3]=255&t,r[4]=(t=parseInt(e.slice(9,13),16))>>>8,r[5]=255&t,r[6]=(t=parseInt(e.slice(14,18),16))>>>8,r[7]=255&t,r[8]=(t=parseInt(e.slice(19,23),16))>>>8,r[9]=255&t,r[10]=(t=parseInt(e.slice(24,36),16))/1099511627776&255,r[11]=t/4294967296&255,r[12]=t>>>24&255,r[13]=t>>>16&255,r[14]=t>>>8&255,r[15]=255&t,r};t.default=o},808:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;t.default="00000000-0000-0000-0000-000000000000"},814:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e){const t=new o(e);return{install(e,r){t.install(e,r)},tracker:t.getTracker(),adapter:t}};const i=n(r(94));class o{constructor(e){this.routerHooksInstalled=!1,this.options=e,this.tracker=new i.default(e)}install(e,t){t&&(this.options=Object.assign(Object.assign({},this.options),t),this.tracker.init(this.options)),e.prototype.$track=(e,t)=>{this.tracker.track(e,t)},e.prototype.$identify=(e,t)=>{this.tracker.identify(e,t)},e.prototype.$trackPageView=(e,t)=>{this.tracker.trackPageView(e,t)},e.directive("track-click",{bind:(e,t,r)=>{e.addEventListener("click",(()=>{var r,n,i;const o=(null===(r=t.value)||void 0===r?void 0:r.event)||"click",s=(null===(n=t.value)||void 0===n?void 0:n.properties)||{},a={tagName:e.tagName.toLowerCase(),className:e.className,id:e.id,text:null===(i=e.textContent)||void 0===i?void 0:i.substring(0,50).trim()};this.tracker.track(o,Object.assign(Object.assign({},s),{element:a}))}))}}),e.mixin({beforeCreate(){!this.routerHooksInstalled&&this.$options&&this.$options.router&&this.installRouterHooks(this.$options.router)},mounted(){this.$root===this&&this.$options.name&&this.$trackPageView(this.$options.name,{path:window.location.pathname})}})}installRouterHooks(e){e&&!this.routerHooksInstalled&&(e.afterEach((e=>{const t=e.name||e.path,r={path:e.path,fullPath:e.fullPath,query:e.query,params:e.params};this.tracker.trackPageView(t,r)})),this.routerHooksInstalled=!0)}getTracker(){return this.tracker}}},831:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),Object.defineProperty(t,"NIL",{enumerable:!0,get:function(){return a.default}}),Object.defineProperty(t,"parse",{enumerable:!0,get:function(){return l.default}}),Object.defineProperty(t,"stringify",{enumerable:!0,get:function(){return d.default}}),Object.defineProperty(t,"v1",{enumerable:!0,get:function(){return n.default}}),Object.defineProperty(t,"v3",{enumerable:!0,get:function(){return i.default}}),Object.defineProperty(t,"v4",{enumerable:!0,get:function(){return o.default}}),Object.defineProperty(t,"v5",{enumerable:!0,get:function(){return s.default}}),Object.defineProperty(t,"validate",{enumerable:!0,get:function(){return u.default}}),Object.defineProperty(t,"version",{enumerable:!0,get:function(){return c.default}});var n=f(r(518)),i=f(r(948)),o=f(r(73)),s=f(r(186)),a=f(r(808)),c=f(r(775)),u=f(r(37)),d=f(r(910)),l=f(r(792));function f(e){return e&&e.__esModule?e:{default:e}}},858:(e,t)=>{let r;Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(){if(!r&&(r="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!r))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return r(n)};const n=new Uint8Array(16)},879:(e,t)=>{var r;Object.defineProperty(t,"__esModule",{value:!0}),t.EventType=void 0,function(e){e.PAGE_VIEW="page_view",e.CLICK="click",e.CUSTOM="custom",e.ERROR="error",e.PERFORMANCE="performance",e.LIFECYCLE="lifecycle"}(r||(t.EventType=r={}))},880:(e,t)=>{Object.defineProperty(t,"__esModule",{value:!0});t.default=class{constructor(e){this.initialized=!1,this.ignoreList=[],this.tracker=e}init(e={}){this.initialized||(e.ignoreErrors&&(this.ignoreList=e.ignoreErrors),!1!==e.captureJsError&&this.captureJsErrors(),!1!==e.capturePromiseError&&this.capturePromiseErrors(),!1!==e.captureAjaxError&&this.captureAjaxErrors(),!1!==e.captureResourceError&&this.captureResourceErrors(),this.initialized=!0)}captureJsErrors(){window.addEventListener("error",(e=>{if(e.error&&e.error instanceof Error){const t=e.error;if(this.shouldIgnore(t.message))return;const r={name:t.name,message:t.message,stack:t.stack,category:"js_error",context:{url:window.location.href,line:e.lineno,column:e.colno,filename:e.filename}};this.reportError(r)}}),!0)}capturePromiseErrors(){window.addEventListener("unhandledrejection",(e=>{let t;if(e.reason instanceof Error){if(this.shouldIgnore(e.reason.message))return;t={name:e.reason.name,message:e.reason.message,stack:e.reason.stack,category:"unhandled_promise_rejection",context:{url:window.location.href}}}else{let r=String(e.reason);if(this.shouldIgnore(r))return;t={name:"UnhandledPromiseRejection",message:r,category:"unhandled_promise_rejection",context:{url:window.location.href}}}this.reportError(t)}))}captureAjaxErrors(){if(!window.XMLHttpRequest)return;const e=XMLHttpRequest.prototype.send,t=XMLHttpRequest.prototype.open,r=this;XMLHttpRequest.prototype.open=function(e,r,n,i,o){this.__ktrace_request={method:e,url:r.toString(),startTime:Date.now()},t.call(this,e,r,void 0===n||n,null!=i?i:null,null!=o?o:null)},XMLHttpRequest.prototype.send=function(t){const n=this;n.addEventListener("load",(function(){var e;if(n.status>=400){const t=n.__ktrace_request||{},i=Date.now()-(t.startTime||Date.now()),o={name:"HttpError",message:`HTTP错误 ${n.status} (${n.statusText})`,category:"http_error",context:{url:t.url,method:t.method,status:n.status,response:null===(e=n.responseText)||void 0===e?void 0:e.substring(0,200),duration:i}};r.reportError(o)}})),n.addEventListener("error",(function(){const e=n.__ktrace_request||{},t=Date.now()-(e.startTime||Date.now()),i={name:"HttpRequestError",message:`请求失败 ${e.url}`,category:"http_request_error",context:{url:e.url,method:e.method,duration:t}};r.reportError(i)})),e.call(n,t)}}captureResourceErrors(){window.addEventListener("error",(e=>{const t=e.target;if(t&&("SCRIPT"===t.tagName||"LINK"===t.tagName||"IMG"===t.tagName||"AUDIO"===t.tagName||"VIDEO"===t.tagName)){let e="";if(t instanceof HTMLScriptElement||t instanceof HTMLImageElement||t instanceof HTMLAudioElement||t instanceof HTMLVideoElement?e=t.src:t instanceof HTMLLinkElement&&(e=t.href),this.shouldIgnore(e))return;const r={name:"ResourceError",message:`无法加载资源: ${e}`,category:"resource_error",context:{url:window.location.href,resourceUrl:e,resourceType:t.tagName.toLowerCase()}};this.reportError(r)}}),!0)}reportError(e){this.shouldIgnore(e.message)||this.tracker.trackError(new Error(e.message),{name:e.name,category:e.category,context:e.context,stack:e.stack})}shouldIgnore(e){return!!e&&this.ignoreList.some((t=>t.test(e)))}}},910:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0,t.unsafeStringify=s;var n,i=(n=r(37))&&n.__esModule?n:{default:n};const o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));function s(e,t=0){return o[e[t+0]]+o[e[t+1]]+o[e[t+2]]+o[e[t+3]]+"-"+o[e[t+4]]+o[e[t+5]]+"-"+o[e[t+6]]+o[e[t+7]]+"-"+o[e[t+8]]+o[e[t+9]]+"-"+o[e[t+10]]+o[e[t+11]]+o[e[t+12]]+o[e[t+13]]+o[e[t+14]]+o[e[t+15]]}var a=function(e,t=0){const r=s(e,t);if(!(0,i.default)(r))throw TypeError("Stringified UUID is invalid");return r};t.default=a},948:(e,t,r)=>{Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var n=o(r(25)),i=o(r(311));function o(e){return e&&e.__esModule?e:{default:e}}var s=(0,n.default)("v3",48,i.default);t.default=s},996:function(e,t,r){var n=this&&this.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(t,"__esModule",{value:!0}),t.default=function(e,t=!1){return new s(e,t)};const i=n(r(94));let o=null;try{o=r(482)}catch(e){}class s{constructor(e,t=!1){this.ipcMain=null,this.ipcRenderer=null,this.isElectronAvailable=!1,this.mainConfig=e,this.tracker=new i.default(e),this.isMain=t,o&&(this.isElectronAvailable=!0,t&&o.ipcMain?(this.ipcMain=o.ipcMain,this.setupMainProcess()):!t&&o.ipcRenderer&&(this.ipcRenderer=o.ipcRenderer,this.setupRendererProcess()))}init(){this.tracker.init(this.mainConfig)}setupMainProcess(){this.ipcMain&&(this.ipcMain.on("ktrace-track-event",((e,t)=>{this.tracker.track(t.name,t.properties)})),this.ipcMain.on("ktrace-page-view",((e,t)=>{this.tracker.trackPageView(t.pageName,t.properties)})),this.ipcMain.on("ktrace-identify",((e,t)=>{this.tracker.identify(t.userId,t.userProperties)})),this.ipcMain.on("ktrace-error",((e,t)=>{const r=new Error(t.message);r.name=t.name,r.stack=t.stack,this.tracker.trackError(r,t.context)})))}setupRendererProcess(){this.ipcRenderer&&(this.track=(e,t)=>{this.ipcRenderer.send("ktrace-track-event",{name:e,properties:t})},this.trackPageView=(e,t)=>{this.ipcRenderer.send("ktrace-page-view",{pageName:e,properties:t})},this.identify=(e,t)=>{this.ipcRenderer.send("ktrace-identify",{userId:e,userProperties:t})},this.trackError=(e,t)=>{this.ipcRenderer.send("ktrace-error",{name:e.name,message:e.message,stack:e.stack,context:t})})}track(e,t){!this.isMain&&this.isElectronAvailable&&this.ipcRenderer||this.tracker.track(e,t)}trackPageView(e,t){!this.isMain&&this.isElectronAvailable&&this.ipcRenderer||this.tracker.trackPageView(e,t)}identify(e,t){!this.isMain&&this.isElectronAvailable&&this.ipcRenderer||this.tracker.identify(e,t)}trackError(e,t){!this.isMain&&this.isElectronAvailable&&this.ipcRenderer||this.tracker.trackError(e,t)}getTracker(){return this.tracker}isElectron(){return this.isElectronAvailable}}}},t={};var r=function r(n){var i=t[n];if(void 0!==i)return i.exports;var o=t[n]={exports:{}};return e[n].call(o.exports,o,o.exports,r),o.exports}(156);return r=r.default})())); //# sourceMappingURL=ktrace.817b5a1234fed4393684.js.map