import { IReport } from './types/global'; /** 上报数据映射 */ export declare const reportMap: { /** SDK 版本 */ version: string; /** 项目ID */ projectID: string; /** location.host */ host: string; /** 用户uuid */ uuid: string; /** 上报日志的时间戳 */ time: string; /** 源页面 */ originPage: string; /** 当前页面 */ page: string; /** 自定义payload */ customPayload: string; /** 信息类型 */ type: string; /** viewport的宽高 */ viewport: string; /** 屏幕宽高 */ screen: string; /** 页面title */ pageTitle: string; /** 页面referrer */ referrer: string; /** 页面编码 */ charset: string; /** language */ language: string; /** vendor, 浏览器厂商 */ navigatorVendor: string; /** 网络连接类型 */ connectionType: string; /** 浏览器名称 */ browserName: string; /** 浏览器版本 */ browserVersion: string; /** 浏览器引擎名称 */ engineName: string; /** 浏览器引擎版本 */ engineVersion: string; /** 操作系统名称 */ osName: string; /** 操作系统版本 */ osVersion: string; pv: { /** 停留时间 */ stayTime: string; }; lag: { /** 页面卡顿时间 */ lagTime: string; }; error: { /** 子类型 */ subType: string; /** 错误行 */ line: string; /** 错误列 */ column: string; /** 错误信息 */ message: string; /** 错误文件 */ filename: string; /** 错误函数名 */ functionName: string; /** 错误栈信息 */ stack: string; /** 错误帧 */ stackFrame: string; /** 视频录制数据 */ events: string; /** 页面截图 */ picture: string; }; ua: { /** 子类型 */ subType: string; /** x轴坐标 */ x: string; /** y轴坐标 */ y: string; /** 元素路径 */ path: string; }; /** 性能数据 */ perf: { navigation: { /** *一个无符号短整型,表示是如何导航到这个页面的。可能的值如下: TYPE_NAVIGATE (0) 当前页面是通过点击链接,书签和表单提交,或者脚本操作,或者在url中直接输入地址,type值为0 TYPE_RELOAD (1) 点击刷新页面按钮或者通过Location.reload()方法显示的页面,type值为1 The page was accessed by clicking the Reload button or via the Location.reload() method. TYPE_BACK_FORWARD (2) 页面通过历史记录和前进后退访问时。type值为2 TYPE_RESERVED (255) 任何其他方式,type值为255 */ type: string; /** 无符号短整型,表示在到达这个页面之前重定向了多少次。 */ redirectCount: string; }; memory: { /** 上下文内可用堆的最大体积,以字节计算。 */ jsHeapSizeLimit: string; /** 已分配的堆体积,以字节计算。 */ totalJSHeapSize: string; /** 当前 JS 堆活跃段(segment)的体积,以字节计算。 */ usedJSHeapSize: string; }; /** 返回性能测量开始时的时间的高精度时间戳。 */ timeOrigin: string; timing: { /** 是一个无符号long long 型的毫秒数,返回浏览器与服务器之间的连接建立时的Unix毫秒时间戳。如果建立的是持久连接,则返回值等同于fetchStart属性的值。连接建立指的是所有握手和认证过程全部结束。 */ connectEnd: string; /** 是一个无符号long long 型的毫秒数,返回HTTP请求开始向服务器发送时的Unix毫秒时间戳。如果使用持久连接(persistent connection),则返回值等同于fetchStart属性的值 */ connectStart: string; /** 是一个无符号long long 型的毫秒数,返回当前文档解析完成,即Document.readyState 变为 'complete'且相对应的readystatechange (en-US) 被触发时的Unix毫秒时间戳。 */ domComplete: string; /** 是一个无符号long long 型的毫秒数,返回当所有需要立即执行的脚本已经被执行(不论执行顺序)时的Unix毫秒时间戳。 */ domContentLoadedEventEnd: string; /** 是一个无符号long long 型的毫秒数,返回当解析器发送DOMContentLoaded (en-US) 事件,即所有需要被执行的脚本已经被解析时的Unix毫秒时间戳。 */ domContentLoadedEventStart: string; /** 是一个无符号long long 型的毫秒数,返回当前网页DOM结构结束解析、开始加载内嵌资源时(即Document.readyState属性变为“interactive”、 * 相应的readystatechange (en-US)事件触发时)的Unix毫秒时间戳。 */ domInteractive: string; /** 是一个无符号long long 型的毫秒数,返回当前网页DOM结构开始解析时(即Document.readyState属性变为“loading”、相应的 readystatechange (en-US)事件触发时)的Unix毫秒时间戳。 */ domLoading: string; /** 是一个无符号long long 型的毫秒数,表征了域名查询结束的UNIX时间戳。如果使用了持续连接(persistent connection), * 或者这个信息存储到了缓存或者本地资源上,这个值将和 PerformanceTiming.fetchStart一致。 */ domainLookupEnd: string; /** 是一个无符号long long 型的毫秒数,表征了域名查询开始的UNIX时间戳。如果使用了持续连接(persistent connection), * 或者这个信息存储到了缓存或者本地资源上,这个值将和 PerformanceTiming.fetchStart一致。 */ domainLookupStart: string; /** 是一个无符号long long 型的毫秒数,表征了浏览器准备好使用HTTP请求来获取(fetch)文档的UNIX时间戳。这个时间点会在检查任何应用缓存之前。 */ fetchStart: string; /** 是一个无符号long long 型的毫秒数,返回当load (en-US)事件结束,即加载事件完成时的Unix毫秒时间戳。如果这个事件还未被发送,或者尚未完成,它的值将会是0. */ loadEventEnd: string; /** 是一个无符号long long 型的毫秒数,返回该文档下,load (en-US)事件被发送时的Unix毫秒时间戳。如果这个事件还未被发送,它的值将会是0。 */ loadEventStart: string; /** 是一个无符号long long 型的毫秒数,表征了从同一个浏览器上下文的上一个文档卸载(unload)结束时的UNIX时间戳。如果没有上一个文档,这个值会和PerformanceTiming.fetchStart相同 */ navigationStart: string; /** 是一个无符号long long 型的毫秒数,表征了最后一个HTTP重定向完成时(也就是说是HTTP响应的最后一个比特直接被收到的时间)的UNIX时间戳。如果没有重定向,或者重定向中的一个不同源,这个值会返回0. */ redirectEnd: string; /** 是一个无符号long long 型的毫秒数,表征了第一个HTTP重定向开始时的UNIX时间戳。如果没有重定向,或者重定向中的一个不同源,这个值会返回0. */ redirectStart: string; /** 是一个无符号long long 型的毫秒数,返回浏览器向服务器发出HTTP请求时(或开始读取本地缓存时)的Unix毫秒时间戳。 */ requestStart: string; /** 是一个无符号long long 型的毫秒数,返回浏览器从服务器收到(或从本地缓存读取,或从本地资源读取)最后一个字节时(如果在此之前HTTP连接已经关闭,则返回关闭时)的Unix毫秒时间戳。 */ responseEnd: string; /** 是一个无符号long long 型的毫秒数,返回浏览器从服务器收到(或从本地缓存读取)第一个字节时的Unix毫秒时间戳。如果传输层在开始请求之后失败并且连接被重开,该属性将会被数制成新的请求的相对应的发起时间。 */ responseStart: string; /** 是一个无符号long long 型的毫秒数,返回浏览器与服务器开始安全链接的握手时的Unix毫秒时间戳。如果当前网页不要求安全连接,则返回0。 */ secureConnectionStart: string; /** 是一个无符号long long 型的毫秒数,表征了unload (en-US)事件处理完成时的UNIX时间戳。如果没有上一个文档, * or if the previous document, or one of the needed redirects, is not of the same origin, 这个值会返回0. */ unloadEventEnd: string; /** 是一个无符号long long 型的毫秒数,表征了unload (en-US)事件抛出时的UNIX时间戳。如果没有上一个文档, * or if the previous document, or one of the needed redirects, is not of the same origin, 这个值会返回0. */ unloadEventStart: string; }; }; /** api请求相关 */ req: { /** 请求类型,xhr或fetch */ requestType: string; /** 请求地址 */ responseURL: string; /** 请求结果 */ status: string; /** 请求耗时 */ loadTime: string; /** 请求状态 */ statusText: string; /** 上报原因, slow或failed */ reason: string; /** 上报时带上的详细信息 */ detail: string; /** 上报时带上的请求参数 */ requestData: string; /** 上报时带上的响应结果 */ responseBody: string; /** 上报时带上的请求方法 */ method: string; }; vD: { /** 埋点名称 */ trackName: string; /** 埋点参数 */ params: string; }; manualReport: string; lifeCycleId: string; sessionId: string; }; export declare function report(data: IReport): Promise; /** * @description 将数据转换成最终提交的数据,主要目的是简化数据的key的长度,从而降低荷载大小 * @param data 要转换的数据 * @param map 要转换的数据的字段映射 * @param redundancyData 冗余数据 */ export declare function convertToSchema(data: IReport, map: { [K: string]: any; }, redundancyData?: object): any;