vue-eye-sdk 1.0.0
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/monitor.cjs.js +710 -0
- package/dist/monitor.cjs.js.map +1 -0
- package/dist/monitor.esm.js +703 -0
- package/dist/monitor.esm.js.map +1 -0
- package/dist/monitor.js +715 -0
- package/dist/monitor.js.map +1 -0
- package/package.json +52 -0
- package/readme.md +104 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"monitor.cjs.js","sources":["../src/config.js","../src/utils.js","../src/cache.js","../src/report.js","../src/performance/fetch.js","../src/performance/observerEntries.js","../src/performance/observeLCP.js","../src/performance/observerFCP.js","../src/performance/observerLoad.js","../src/performance/observerPaint.js","../src/performance/xhr.js","../src/performance/index.js","../src/error/index.js","../src/behavior/onClick.js","../src/behavior/pageChange.js","../src/behavior/pv.js","../src/behavior/index.js","../src/webEyeSDK.js"],"sourcesContent":["const config = {\r\n url: '',\r\n projectName: 'eyesdk',\r\n appId: '123456',\r\n userId: '123456',\r\n isImageUpload: false,\r\n batchSize: 5,\r\n};\r\nexport function setConfig(options) {\r\n for (const key in config) {\r\n if (options[key]) {\r\n config[key] = options[key];\r\n }\r\n }\r\n}\r\nexport default config;","\r\nexport function deepCopy(target) {\r\n if (typeof target === 'object') {\r\n const result = Array.isArray(target) ? [] : {};\r\n for (const key in target) {\r\n if (typeof target[key] == 'object') {\r\n result[key] = deepCopy(target[key]);\r\n } else {\r\n result[key] = target[key];\r\n }\r\n }\r\n\r\n return result;\r\n }\r\n return target\r\n}\r\n\r\nexport function generateUniqueId() {\r\n return 'id-' + Date.now() + '-' + Math.random().toString(36).substring(2, 9)\r\n}","import { deepCopy } from './utils.js';\r\n\r\n\r\nconst cache = [];\r\nexport function getCache() {\r\n return deepCopy(cache);\r\n}\r\nexport function addCache(data) {\r\n cache.push(data);\r\n}\r\nexport function clearCache() {\r\n cache.length = 0;\r\n}","import config from './config';\r\nimport {generateUniqueId} from './utils';\r\nimport {addCache, getCache, clearCache} from './cache';\r\nexport const originalProto = XMLHttpRequest.prototype;\r\nexport const originalOpen = XMLHttpRequest.prototype.open;\r\nexport const originalSend = XMLHttpRequest.prototype.send;\r\nexport function isSupportSendBeacon() {\r\n return 'sendBeacon' in navigator;\r\n}\r\nexport function report(data) {\r\n if (!config.url) {\r\n console.error('请设置上传 url 地址');\r\n }\r\n const reportData = JSON.stringify({\r\n id: generateUniqueId(),\r\n data,\r\n });\r\n // 上报数据,使用图片的方式\r\n if (config.isImageUpload) {\r\n imgRequest(reportData);\r\n } else {\r\n // 优先使用 sendBeacon\r\n if (window.navigator.sendBeacon) {\r\n return beaconRequest(reportData);\r\n } else {\r\n xhrRequest(reportData);\r\n }\r\n }\r\n}\r\n// 批量上报数据\r\nexport function lazyReportBatch(data) {\r\n addCache(data);\r\n const dataCache = getCache();\r\n console.error('dataCache', dataCache);\r\n if (dataCache.length && dataCache.length > config.batchSize) {\r\n report(dataCache);\r\n clearCache();\r\n }\r\n //\r\n}\r\n// 图片发送数据\r\nexport function imgRequest(data) {\r\n const img = new Image();\r\n // http://127.0.0.1:8080/api?data=encodeURIComponent(data)\r\n img.src = `${config.url}?data=${encodeURIComponent(JSON.stringify(data))}`;\r\n}\r\n// 普通ajax发送请求数据\r\nexport function xhrRequest(data) {\r\n if (window.requestIdleCallback) {\r\n window.requestIdleCallback(\r\n () => {\r\n const xhr = new XMLHttpRequest();\r\n originalOpen.call(xhr, 'post', config.url);\r\n originalSend.call(xhr, JSON.stringify(data));\r\n },\r\n { timeout: 3000 }\r\n );\r\n } else {\r\n setTimeout(() => {\r\n const xhr = new XMLHttpRequest();\r\n originalOpen.call(xhr, 'post', url);\r\n originalSend.call(xhr, JSON.stringify(data));\r\n });\r\n }\r\n}\r\n\r\n// const sendBeacon = isSupportSendBeacon() ? navigator.sendBeacon : xhrRequest\r\nexport function beaconRequest(data) {\r\n if (window.requestIdleCallback) {\r\n window.requestIdleCallback(\r\n () => {\r\n window.navigator.sendBeacon(config.url, data);\r\n },\r\n { timeout: 3000 }\r\n );\r\n } else {\r\n setTimeout(() => {\r\n window.navigator.sendBeacon(config.url, data);\r\n });\r\n }\r\n}","import { lazyReportBatch } from '../report';\r\nconst originalFetch = window.fetch;\r\nfunction overwriteFetch() {\r\n window.fetch = function newFetch(url, config) {\r\n const startTime = Date.now();\r\n const reportData = {\r\n type: 'performance',\r\n subType: 'fetch',\r\n url,\r\n startTime,\r\n method: config.method,\r\n }\r\n return originalFetch(url, config).then((res) => {\r\n const endTime = Date.now();\r\n reportData.endTime = endTime;\r\n reportData.duration = endTime - startTime;\r\n const data = res.clone();\r\n reportData.status = data.status;\r\n reportData.success = data.ok;\r\n // todo 上报数据\r\n lazyReportBatch(reportData);\r\n return res;\r\n }).catch((err) => {\r\n const endTime = Date.now();\r\n reportData.endTime = endTime;\r\n reportData.duration = endTime - startTime;\r\n reportData.status = 0;\r\n reportData.success = false;\r\n // todo 上报数据\r\n lazyReportBatch(reportData);\r\n });\r\n }\r\n}\r\nexport default function fetch() {\r\n overwriteFetch();\r\n}","\r\nimport { lazyReportBatch } from '../report';\r\nexport default function observerEntries() {\r\n if (document.readyState === 'complete') {\r\n observerEvent();\r\n } else {\r\n const onLoad = () => {\r\n observerEvent();\r\n window.removeEventListener('load', onLoad, true);\r\n };\r\n window.addEventListener('load', onLoad, true);\r\n }\r\n}\r\nexport function observerEvent() {\r\n const entryHandler = (list) => {\r\n const data = list.getEntries();\r\n for (let entry of data) {\r\n if (observer) {\r\n observer.disconnect();\r\n }\r\n const reportData = {\r\n name: entry.name, // 资源的名字\r\n type: 'performance', // 类型\r\n subType: entry.entryType, //类型\r\n sourceType: entry.initiatorType, // 资源类型\r\n duration: entry.duration, // 加载时间\r\n dns: entry.domainLookupEnd - entry.domainLookupStart, // dns解析时间\r\n tcp: entry.connectEnd - entry.connectStart, // tcp连接时间\r\n redirect: entry.redirectEnd - entry.redirectStart, // 重定向时间\r\n ttfb: entry.responseStart, // 首字节时间\r\n protocol: entry.nextHopProtocol, // 请求协议\r\n responseBodySize: entry.encodedBodySize, // 响应内容大小\r\n responseHeaderSize: entry.transferSize - entry.encodedBodySize, // 响应头部大小\r\n transferSize: entry.transferSize, // 请求内容大小\r\n resourceSize: entry.decodedBodySize, // 资源解压后的大小\r\n startTime: performance.now(),\r\n };\r\n console.log(\"=================loading===========\")\r\n lazyReportBatch(reportData);\r\n // console.log(entry);\r\n }\r\n };\r\n\r\n let observer = new PerformanceObserver(entryHandler);\r\n observer.observe({ type: ['resource'], buffered: true });\r\n}","import { lazyReportBatch } from '../report';\r\nexport default function observerLCP() {\r\n const entryHandler = (list) => {\r\n if (observer) {\r\n observer.disconnect();\r\n } \r\n for (const entry of list.getEntries()) {\r\n const json = entry.toJSON();\r\n console.log(json);\r\n const reportData = {\r\n ...json,\r\n type: 'performance',\r\n subType: entry.name,\r\n pageUrl: window.location.href,\r\n }\r\n // 发送数据 todo;\r\n lazyReportBatch(reportData);\r\n }\r\n\r\n }\r\n // 统计和计算lcp的时间\r\n const observer = new PerformanceObserver(entryHandler);\r\n // buffered: true 确保观察到所有paint事件\r\n observer.observe({type: 'largest-contentful-paint', buffered: true});\r\n}","import { lazyReportBatch } from '../report';\r\nexport default function observerFCP() {\r\n const entryHandler = (list) => {\r\n for (const entry of list.getEntries()) {\r\n if (entry.name === 'first-contentful-paint') {\r\n observer.disconnect();\r\n const json = entry.toJSON();\r\n console.log(json);\r\n const reportData = {\r\n ...json,\r\n type: 'performance',\r\n subType: entry.name,\r\n pageUrl: window.location.href,\r\n }\r\n // 发送数据 todo;\r\n lazyReportBatch(reportData);\r\n }\r\n }\r\n\r\n }\r\n // 统计和计算fcp的时间\r\n const observer = new PerformanceObserver(entryHandler);\r\n // buffered: true 确保观察到所有paint事件\r\n observer.observe({type: 'paint', buffered: true});\r\n}","import { lazyReportBatch } from '../report';\r\nexport default function observerLoad () {\r\n window.addEventListener('pageShow', function (event) {\r\n requestAnimationFrame(() =>{\r\n ['load'].forEach((type) => {\r\n const reportData = {\r\n type: 'performance',\r\n subType: type,\r\n pageUrl: window.location.href,\r\n startTime: performance.now()- event.timeStamp\r\n }\r\n // 发送数据\r\n lazyReportBatch(reportData);\r\n });\r\n\r\n }, true);\r\n });\r\n}\r\n","import { lazyReportBatch } from '../report';\r\nexport default function observerPaint() {\r\n const entryHandler = (list) => {\r\n for (const entry of list.getEntries()) {\r\n if (entry.name === 'first-paint') {\r\n observer.disconnect();\r\n const json = entry.toJSON();\r\n console.log(json);\r\n const reportData = {\r\n ...json,\r\n type: 'performance',\r\n subType: entry.name,\r\n pageUrl: window.location.href,\r\n }\r\n // 发送数据 todo;\r\n lazyReportBatch(reportData);\r\n }\r\n }\r\n \r\n }\r\n // 统计和计算fp的时间\r\n const observer = new PerformanceObserver(entryHandler);\r\n // buffered: true 确保观察到所有paint事件\r\n observer.observe({type: 'paint', buffered: true});\r\n \r\n \r\n}\r\n","import { lazyReportBatch } from '../report';\r\nexport const originalProto = XMLHttpRequest.prototype;\r\nexport const originalSend = originalProto.send;\r\nexport const originalOpen = originalProto.open;\r\n\r\nfunction overwriteOpenAndSend() {\r\n originalProto.open = function newOpen(...args) {\r\n this.url = args[1];\r\n this.method = args[0];\r\n originalOpen.apply(this, args);\r\n\r\n }\r\n originalProto.send = function newSend(...args) {\r\n this.startTime = Date.now();\r\n const onLoaded = () => {\r\n this.endTime = Date.now();\r\n this.duration = this.endTime - this.startTime;\r\n const { url, method , startTime, endTime, duration, status} = this;\r\n const reportData = {\r\n status,\r\n duration,\r\n startTime,\r\n endTime,\r\n url,\r\n method: method.toUpperCase(),\r\n type: 'performance',\r\n success: status >= 200 && status < 300,\r\n subType: 'xhr'\r\n }\r\n // todo 发送数据\r\n lazyReportBatch(reportData);\r\n this.removeEventListener('loadend', onLoaded, true);\r\n }\r\n this.addEventListener('loadend', onLoaded, true);\r\n originalSend.apply(this, args);\r\n\r\n }\r\n\r\n}\r\nexport default function xhr() {\r\n overwriteOpenAndSend();\r\n}","import fetch from \"./fetch\";\r\nimport observerEntries from \"./observerEntries\";\r\nimport observerLCP from \"./observeLCP\";\r\nimport observerFCP from \"./observerFCP\";\r\nimport observerLoad from \"./observerLoad\";\r\nimport observerPaint from \"./observerPaint\";\r\nimport xhr from \"./xhr\"; \r\n\r\nexport default function performance() {\r\n fetch();\r\n observerEntries();\r\n observerLCP();\r\n observerFCP();\r\n observerLoad();\r\n observerPaint();\r\n xhr();\r\n}","\r\nimport { lazyReportBatch } from '../report';\r\nexport default function error() {\r\n // 捕获资源加载失败的错误: js css img\r\n window.addEventListener(\r\n 'error',\r\n function (e) {\r\n const target = e.target;\r\n if (target.src || target.href) {\r\n const url = target.src || target.href;\r\n const reportData = {\r\n type: 'error',\r\n subType: 'resource',\r\n url,\r\n html: target.outerHTML,\r\n pageUrl: window.location.href,\r\n pahts: e.path,\r\n };\r\n // todo 发送错误信息\r\n lazyReportBatch(reportData);\r\n }\r\n },\r\n true\r\n );\r\n // 捕获js错误\r\n window.onerror = function (msg, url, lineNo, columnNo, error) {\r\n const reportData = {\r\n type: 'error',\r\n subType: 'js',\r\n msg,\r\n url,\r\n lineNo,\r\n columnNo,\r\n stack: error.stack,\r\n pageUrl: window.location.href,\r\n startTime: performance.now(),\r\n };\r\n // todo 发送错误信息\r\n lazyReportBatch(reportData);\r\n };\r\n // 捕获promise错误 asyn await\r\n window.addEventListener(\r\n 'unhandledrejection',\r\n function (e) {\r\n const reportData = {\r\n type: 'error',\r\n subType: 'promise',\r\n reason: e.reason?.stack,\r\n pageUrl: window.location.href,\r\n startTime: e.timeStamp,\r\n };\r\n // todo 发送错误信息\r\n lazyReportBatch(reportData);\r\n },\r\n true\r\n );\r\n}","import { lazyReportBatch } from '../report';\r\nexport default function onClick() {\r\n ['mousedown', 'touchstart'].forEach((eventType) => {\r\n window.addEventListener(eventType, (e) => {\r\n const target = e.target;\r\n console.log('click', target);\r\n if (target.tagName) {\r\n const reportData = {\r\n // scrollTop: document.documentElement.scrollTop,\r\n type: 'behavior',\r\n subType: 'click',\r\n target: target.tagName,\r\n startTime: e.timeStamp,\r\n innerHtml: target.innerHTML,\r\n outerHtml: target.outerHTML,\r\n with: target.offsetWidth,\r\n height: target.offsetHeight,\r\n eventType,\r\n path: e.path,\r\n };\r\n lazyReportBatch(reportData);\r\n }\r\n });\r\n });\r\n}","import { lazyReportBatch } from '../report';\r\nimport {generateUniqueId} from '../utils';\r\nexport default function pageChange() {\r\n // hash histroy\r\n let oldUrl = '';\r\n window.addEventListener(\r\n 'hashchange',\r\n function (event) {\r\n console.error('hashchange', event);\r\n const newUrl = event.newURL;\r\n const reportData = {\r\n form: oldUrl,\r\n to: newUrl,\r\n type: 'behavior',\r\n subType: 'hashchange',\r\n startTime: performance.now(),\r\n uuid: generateUniqueId(),\r\n };\r\n lazyReportBatch(reportData);\r\n oldUrl = newUrl;\r\n },\r\n true\r\n );\r\n\r\n let from = '';\r\n window.addEventListener(\r\n 'popstate',\r\n function (event) {\r\n console.error('popstate', event);\r\n const to = window.location.href;\r\n const reportData = {\r\n form: from,\r\n to: to,\r\n type: 'behavior',\r\n subType: 'popstate',\r\n startTime: performance.now(),\r\n uuid: generateUniqueId(),\r\n };\r\n lazyReportBatch(reportData);\r\n from = to;\r\n },\r\n true\r\n );\r\n\r\n}","import { lazyReportBatch } from '../report';\r\nimport {generateUniqueId} from '../utils';\r\nexport default function pv() {\r\n const reportData = {\r\n type: 'behavior',\r\n subType: 'pv',\r\n startTime: performance.now(),\r\n pageUrl: window.location.href,\r\n referror: document.referrer,\r\n uuid: generateUniqueId(),\r\n }\r\n lazyReportBatch(reportData)\r\n}","import onClick from './onClick';\r\nimport pageChange from './pageChange';\r\nimport pv from './pv';\r\n\r\nexport default function behavior() {\r\n onClick(),\r\n pageChange(),\r\n pv()\r\n}\r\n","import performance from './performance/index';\r\nimport error from './error/index';\r\nimport behavior from './behavior/index';\r\nimport { setConfig } from './config';\r\nimport { lazyReportBatch } from './report';\r\nwindow.__webEyeSDK__ = {\r\n version: '0.0.1',\r\n};\r\n\r\n// 针对Vue项目的错误捕获\r\nexport function install(Vue, options) {\r\n if (__webEyeSDK__.vue) return;\r\n __webEyeSDK__.vue = true;\r\n setConfig(options);\r\n const handler = Vue.config.errorHandler;\r\n // vue项目中 通过 Vue.config.errorHandler 捕获错误\r\n Vue.config.errorHandler = function (err, vm, info) {\r\n // todo: 上报具体的错误信息\r\n const reportData = {\r\n info,\r\n error: err.stack,\r\n subType: 'vue',\r\n type: 'error',\r\n startTime: window.performance.now(),\r\n pageURL: window.location.href,\r\n };\r\n console.log('vue error', reportData);\r\n lazyReportBatch(reportData);\r\n if (handler) {\r\n handler.call(this, err, vm, info);\r\n }\r\n };\r\n}\r\n// 针对React项目的错误捕获\r\nexport function errorBoundary(err, info) {\r\n if (__webEyeSDK__.react) return;\r\n __webEyeSDK__.react = true;\r\n // todo: 上报具体的错误信息\r\n const reportData = {\r\n error: err?.stack,\r\n info,\r\n subType: 'react',\r\n type: 'error',\r\n startTime: window.performance.now(),\r\n pageURL: window.location.href,\r\n };\r\n lazyReportBatch(reportData);\r\n}\r\nexport function init(options) {\r\n setConfig(options);\r\n // performance();\r\n error();\r\n // behavior();\r\n}\r\n\r\nexport default {\r\n install,\r\n errorBoundary,\r\n performance,\r\n error,\r\n behavior,\r\n init,\r\n}"],"names":["config","url","projectName","appId","userId","isImageUpload","batchSize","setConfig","options","key","deepCopy","target","_typeof","result","Array","isArray","generateUniqueId","Date","now","Math","random","toString","substring","cache","getCache","addCache","data","push","clearCache","length","originalOpen","XMLHttpRequest","prototype","open","originalSend","send","report","console","error","reportData","JSON","stringify","id","imgRequest","window","navigator","sendBeacon","beaconRequest","xhrRequest","lazyReportBatch","dataCache","img","Image","src","concat","encodeURIComponent","requestIdleCallback","xhr","call","timeout","setTimeout","originalFetch","fetch","overwriteFetch","newFetch","startTime","type","subType","method","then","res","endTime","duration","clone","status","success","ok","catch","err","observerEntries","document","readyState","observerEvent","onLoad","removeEventListener","addEventListener","entryHandler","list","getEntries","_iterator","_createForOfIteratorHelper","_step","s","n","done","entry","value","observer","disconnect","name","entryType","sourceType","initiatorType","dns","domainLookupEnd","domainLookupStart","tcp","connectEnd","connectStart","redirect","redirectEnd","redirectStart","ttfb","responseStart","protocol","nextHopProtocol","responseBodySize","encodedBodySize","responseHeaderSize","transferSize","resourceSize","decodedBodySize","performance","log","e","f","PerformanceObserver","observe","buffered","observerLCP","json","toJSON","_objectSpread","pageUrl","location","href","observerFCP","observerLoad","event","requestAnimationFrame","forEach","timeStamp","observerPaint","originalProto","overwriteOpenAndSend","newOpen","_len","arguments","args","_key","apply","newSend","_this","onLoaded","toUpperCase","_len2","_key2","html","outerHTML","pahts","path","onerror","msg","lineNo","columnNo","stack","_e$reason","reason","onClick","eventType","tagName","innerHtml","innerHTML","outerHtml","with","offsetWidth","height","offsetHeight","pageChange","oldUrl","newUrl","newURL","form","to","uuid","from","pv","referror","referrer","behavior","__webEyeSDK__","version","install","Vue","vue","handler","errorHandler","vm","info","pageURL","errorBoundary","react","init"],"mappings":"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"}
|