reporting-lib 0.3.4 → 0.4.1
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/config/index.d.ts +1 -0
- package/dist/config/index.d.ts.map +1 -1
- package/dist/config/index.js +4 -2
- package/dist/config/index.js.map +1 -1
- package/dist/index.cjs +3 -3
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +18 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.global.js +3 -3
- package/dist/index.global.js.map +1 -1
- package/dist/index.js +3 -3
- package/dist/index.js.map +1 -1
- package/dist/performance/pageStayTime.d.ts +21 -0
- package/dist/performance/pageStayTime.d.ts.map +1 -0
- package/dist/performance/pageStayTime.js +211 -0
- package/dist/performance/pageStayTime.js.map +1 -0
- package/dist/performance/pageStayTimeTracker.d.ts +38 -0
- package/dist/performance/pageStayTimeTracker.d.ts.map +1 -0
- package/dist/performance/pageStayTimeTracker.js +103 -0
- package/dist/performance/pageStayTimeTracker.js.map +1 -0
- package/dist/types/index.d.ts +34 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +2 -0
- package/dist/types/index.js.map +1 -0
- package/dist/util/pageDuration.d.ts +27 -0
- package/dist/util/pageDuration.d.ts.map +1 -0
- package/dist/util/pageDuration.js +27 -0
- package/dist/util/pageDuration.js.map +1 -0
- package/package.json +1 -1
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { PageLeaveMeta } from "../util/pageDuration.js";
|
|
2
|
+
import type { TrackPageStayTimeOptions, HistoryInstance } from "../types/index.js";
|
|
3
|
+
interface PageStayTimeOptions {
|
|
4
|
+
enabled?: boolean;
|
|
5
|
+
minDuration?: number;
|
|
6
|
+
debounceMs?: number;
|
|
7
|
+
onLeave?: (duration: number, reason: string, meta?: PageLeaveMeta) => void;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* 初始化页面停留时间追踪
|
|
11
|
+
* @param options 配置选项
|
|
12
|
+
* @param historyInstance 路由 history 实例(可选)
|
|
13
|
+
* @param defaultOnLeave 默认的上报回调函数(可选)
|
|
14
|
+
*/
|
|
15
|
+
export declare function initPageStayTimeTracker(options?: PageStayTimeOptions, historyInstance?: HistoryInstance, defaultOnLeave?: (duration: number, reason: string) => void): void;
|
|
16
|
+
export declare function switchPageStayTag(tag: string, reason?: string): void;
|
|
17
|
+
/**
|
|
18
|
+
* 初始化页面停留时间追踪(带默认上报逻辑)
|
|
19
|
+
* @param trackOptions 追踪配置选项
|
|
20
|
+
* @param historyInstance 路由 history 实例(可选)
|
|
21
|
+
*/
|
|
22
|
+
export declare function initPageStayTracking(trackOptions?: TrackPageStayTimeOptions, historyInstance?: HistoryInstance): void;
|
|
23
|
+
/**
|
|
24
|
+
* 停止页面停留时间追踪
|
|
25
|
+
*/
|
|
26
|
+
export declare function stopPageStayTimeTracker(): void;
|
|
27
|
+
/**
|
|
28
|
+
* 监听路由变化(仅监听,不做其他操作)
|
|
29
|
+
* @param callback 路由变化时的回调函数
|
|
30
|
+
* @param historyInstance 路由 history 实例(可选,如果不传则使用 init 时传入的 history)
|
|
31
|
+
* @returns 返回取消监听的函数
|
|
32
|
+
*/
|
|
33
|
+
export declare function listenRouteChange(callback: (location: {
|
|
34
|
+
location: any;
|
|
35
|
+
action: string;
|
|
36
|
+
}) => void, historyInstance?: HistoryInstance): () => void;
|
|
37
|
+
export {};
|
|
38
|
+
//# sourceMappingURL=pageStayTimeTracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageStayTimeTracker.d.ts","sourceRoot":"","sources":["../../src/performance/pageStayTimeTracker.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAA4B,MAAM,yBAAyB,CAAC;AAElF,OAAO,KAAK,EAAE,wBAAwB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAMnF,UAAU,mBAAmB;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;CAC5E;AAED;;;;;GAKG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,GAAE,mBAAwB,EACjC,eAAe,CAAC,EAAE,eAAe,EACjC,cAAc,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,QAkD5D;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,QAE7D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,YAAY,CAAC,EAAE,wBAAwB,EACvC,eAAe,CAAC,EAAE,eAAe,QAelC;AAED;;GAEG;AACH,wBAAgB,uBAAuB,SAStC;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,CAAC,QAAQ,EAAE;IAAE,QAAQ,EAAE,GAAG,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,EAC/D,eAAe,CAAC,EAAE,eAAe,GAChC,MAAM,IAAI,CAWZ"}
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { trackPageStayTime } from "./pageStayTime.js";
|
|
2
|
+
import { buildPageDurationPayload } from "../util/pageDuration.js";
|
|
3
|
+
import { lazyReportCacheSLS as sendReportToSLS } from "../report/reportSLS.js";
|
|
4
|
+
import config from "../config/index.js";
|
|
5
|
+
let pageStayTracker = null;
|
|
6
|
+
let historyUnlisten = null;
|
|
7
|
+
/**
|
|
8
|
+
* 初始化页面停留时间追踪
|
|
9
|
+
* @param options 配置选项
|
|
10
|
+
* @param historyInstance 路由 history 实例(可选)
|
|
11
|
+
* @param defaultOnLeave 默认的上报回调函数(可选)
|
|
12
|
+
*/
|
|
13
|
+
export function initPageStayTimeTracker(options = {}, historyInstance, defaultOnLeave) {
|
|
14
|
+
const { enabled, minDuration, debounceMs, onLeave } = options;
|
|
15
|
+
if (enabled) {
|
|
16
|
+
// 如果已经初始化过,先停止之前的追踪
|
|
17
|
+
if (pageStayTracker) {
|
|
18
|
+
pageStayTracker.stop();
|
|
19
|
+
pageStayTracker = null;
|
|
20
|
+
}
|
|
21
|
+
// 创建页面停留时间追踪器
|
|
22
|
+
const finalOnLeave = onLeave ||
|
|
23
|
+
defaultOnLeave ||
|
|
24
|
+
((duration, reason, meta) => {
|
|
25
|
+
});
|
|
26
|
+
pageStayTracker = trackPageStayTime(finalOnLeave, {
|
|
27
|
+
minDuration,
|
|
28
|
+
debounceMs,
|
|
29
|
+
});
|
|
30
|
+
// 如果传入了 history,自动监听路由变化
|
|
31
|
+
if (historyInstance && historyInstance.listen) {
|
|
32
|
+
// 如果之前有监听,先取消
|
|
33
|
+
if (historyUnlisten) {
|
|
34
|
+
historyUnlisten();
|
|
35
|
+
historyUnlisten = null;
|
|
36
|
+
}
|
|
37
|
+
// 监听路由变化
|
|
38
|
+
historyUnlisten = historyInstance.listen(({ location, action }) => {
|
|
39
|
+
// 路由切换时,上报当前页面的停留时间
|
|
40
|
+
// action: 'PUSH' | 'POP' | 'REPLACE'
|
|
41
|
+
if (pageStayTracker && (action === 'PUSH' || action === 'REPLACE')) {
|
|
42
|
+
pageStayTracker.manualLeave('route-change');
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
else if (pageStayTracker) {
|
|
48
|
+
// 如果禁用了,停止追踪
|
|
49
|
+
pageStayTracker.stop();
|
|
50
|
+
pageStayTracker = null;
|
|
51
|
+
if (historyUnlisten) {
|
|
52
|
+
historyUnlisten();
|
|
53
|
+
historyUnlisten = null;
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
export function switchPageStayTag(tag, reason) {
|
|
58
|
+
pageStayTracker?.switchPageTag(tag, reason);
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* 初始化页面停留时间追踪(带默认上报逻辑)
|
|
62
|
+
* @param trackOptions 追踪配置选项
|
|
63
|
+
* @param historyInstance 路由 history 实例(可选)
|
|
64
|
+
*/
|
|
65
|
+
export function initPageStayTracking(trackOptions, historyInstance) {
|
|
66
|
+
if (!trackOptions)
|
|
67
|
+
return;
|
|
68
|
+
const defaultOnLeave = (duration, reason, meta) => {
|
|
69
|
+
const payload = buildPageDurationPayload(duration, reason, meta || { startTime: 0, endTime: 0 }, { formatPageName: trackOptions?.formatPageName });
|
|
70
|
+
sendReportToSLS('pageDuration', payload);
|
|
71
|
+
};
|
|
72
|
+
initPageStayTimeTracker(trackOptions, historyInstance, defaultOnLeave);
|
|
73
|
+
}
|
|
74
|
+
/**
|
|
75
|
+
* 停止页面停留时间追踪
|
|
76
|
+
*/
|
|
77
|
+
export function stopPageStayTimeTracker() {
|
|
78
|
+
if (pageStayTracker) {
|
|
79
|
+
pageStayTracker.stop();
|
|
80
|
+
pageStayTracker = null;
|
|
81
|
+
}
|
|
82
|
+
if (historyUnlisten) {
|
|
83
|
+
historyUnlisten();
|
|
84
|
+
historyUnlisten = null;
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* 监听路由变化(仅监听,不做其他操作)
|
|
89
|
+
* @param callback 路由变化时的回调函数
|
|
90
|
+
* @param historyInstance 路由 history 实例(可选,如果不传则使用 init 时传入的 history)
|
|
91
|
+
* @returns 返回取消监听的函数
|
|
92
|
+
*/
|
|
93
|
+
export function listenRouteChange(callback, historyInstance) {
|
|
94
|
+
// 如果没有传入 history,从 config 中获取
|
|
95
|
+
const history = historyInstance || config.history;
|
|
96
|
+
if (!history || !history.listen) {
|
|
97
|
+
console.warn('[reporting-lib] No history instance available. Please provide history in init() or pass it as parameter.');
|
|
98
|
+
return () => { };
|
|
99
|
+
}
|
|
100
|
+
const unlisten = history.listen(callback);
|
|
101
|
+
return unlisten;
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=pageStayTimeTracker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageStayTimeTracker.js","sourceRoot":"","sources":["../../src/performance/pageStayTimeTracker.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { PageLeaveMeta } from "../util/pageDuration.js";
|
|
2
|
+
export interface TrackPageStayTimeOptions {
|
|
3
|
+
enabled?: boolean;
|
|
4
|
+
minDuration?: number;
|
|
5
|
+
debounceMs?: number;
|
|
6
|
+
onLeave?: (duration: number, reason: string, meta?: PageLeaveMeta) => void;
|
|
7
|
+
formatPageName?: (pageName: string, context: {
|
|
8
|
+
duration: number;
|
|
9
|
+
reason: string;
|
|
10
|
+
startTime: number;
|
|
11
|
+
endTime: number;
|
|
12
|
+
pagePath?: string;
|
|
13
|
+
pageTag?: string;
|
|
14
|
+
}) => string;
|
|
15
|
+
}
|
|
16
|
+
export interface HistoryInstance {
|
|
17
|
+
listen: (callback: (location: {
|
|
18
|
+
location: any;
|
|
19
|
+
action: string;
|
|
20
|
+
}) => void) => () => void;
|
|
21
|
+
}
|
|
22
|
+
export interface InitOptions {
|
|
23
|
+
reportUrl?: string;
|
|
24
|
+
source?: string;
|
|
25
|
+
version?: string;
|
|
26
|
+
userId?: string | number;
|
|
27
|
+
slsProject?: string;
|
|
28
|
+
slsLogstore?: string;
|
|
29
|
+
slsEndpoint?: string;
|
|
30
|
+
trackerAll?: boolean;
|
|
31
|
+
trackPageStayTime?: TrackPageStayTimeOptions;
|
|
32
|
+
history?: HistoryInstance;
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAGxD,MAAM,WAAW,wBAAwB;IACvC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,aAAa,KAAK,IAAI,CAAC;IAC3E,cAAc,CAAC,EAAE,CACf,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;QACP,QAAQ,EAAE,MAAM,CAAC;QACjB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,CAAC;KAClB,KACE,MAAM,CAAC;CACb;AAGD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE;QAAE,QAAQ,EAAE,GAAG,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,KAAK,MAAM,IAAI,CAAC;CACzF;AAGD,MAAM,WAAW,WAAW;IAE1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IAErB,iBAAiB,CAAC,EAAE,wBAAwB,CAAC;IAE7C,OAAO,CAAC,EAAE,eAAe,CAAC;CAC3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export type PageLeaveMeta = {
|
|
2
|
+
startTime: number;
|
|
3
|
+
endTime: number;
|
|
4
|
+
pagePath?: string;
|
|
5
|
+
pageTag?: string;
|
|
6
|
+
};
|
|
7
|
+
type FormatPageName = (pageName: string, context: {
|
|
8
|
+
duration: number;
|
|
9
|
+
reason: string;
|
|
10
|
+
startTime: number;
|
|
11
|
+
endTime: number;
|
|
12
|
+
pagePath?: string;
|
|
13
|
+
pageTag?: string;
|
|
14
|
+
}) => string;
|
|
15
|
+
export interface BuildPayloadOptions {
|
|
16
|
+
formatPageName?: FormatPageName;
|
|
17
|
+
}
|
|
18
|
+
export interface PageDurationPayload {
|
|
19
|
+
pageName: string;
|
|
20
|
+
duration: number;
|
|
21
|
+
startTime: number;
|
|
22
|
+
endTime: number;
|
|
23
|
+
}
|
|
24
|
+
export declare const getBasePageName: (fallbackPath?: string) => string;
|
|
25
|
+
export declare const buildPageDurationPayload: (duration: number, reason: string, meta: PageLeaveMeta, options?: BuildPayloadOptions) => PageDurationPayload;
|
|
26
|
+
export {};
|
|
27
|
+
//# sourceMappingURL=pageDuration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageDuration.d.ts","sourceRoot":"","sources":["../../src/util/pageDuration.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,aAAa,GAAG;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,KAAK,cAAc,GAAG,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE;IACP,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,KACE,MAAM,CAAC;AAEZ,MAAM,WAAW,mBAAmB;IAClC,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,eAAO,MAAM,eAAe,GAAI,eAAe,MAAM,WAQpD,CAAC;AAEF,eAAO,MAAM,wBAAwB,GACnC,UAAU,MAAM,EAChB,QAAQ,MAAM,EACd,MAAM,aAAa,EACnB,UAAS,mBAAwB,KAChC,mBAgBF,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
export const getBasePageName = (fallbackPath) => {
|
|
2
|
+
try {
|
|
3
|
+
if (fallbackPath)
|
|
4
|
+
return fallbackPath || "/";
|
|
5
|
+
const { pathname = "/" } = window.location || {};
|
|
6
|
+
return pathname || "/";
|
|
7
|
+
}
|
|
8
|
+
catch {
|
|
9
|
+
return "/";
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
export const buildPageDurationPayload = (duration, reason, meta, options = {}) => {
|
|
13
|
+
const { startTime, endTime, pagePath, pageTag } = meta;
|
|
14
|
+
const basePageName = getBasePageName(pagePath);
|
|
15
|
+
const decoratedName = pageTag ? `${basePageName}#${pageTag}` : basePageName;
|
|
16
|
+
const { formatPageName } = options;
|
|
17
|
+
const pageName = typeof formatPageName === "function"
|
|
18
|
+
? formatPageName(decoratedName, { duration, reason, ...meta })
|
|
19
|
+
: decoratedName;
|
|
20
|
+
return {
|
|
21
|
+
pageName,
|
|
22
|
+
duration,
|
|
23
|
+
startTime,
|
|
24
|
+
endTime,
|
|
25
|
+
};
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=pageDuration.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pageDuration.js","sourceRoot":"","sources":["../../src/util/pageDuration.ts"],"names":[],"mappings":"AA8BA,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,YAAqB,EAAE,EAAE;IACvD,IAAI,CAAC;QACH,IAAI,YAAY;YAAE,OAAO,YAAY,IAAI,GAAG,CAAC;QAC7C,MAAM,EAAE,QAAQ,GAAG,GAAG,EAAE,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;QACjD,OAAO,QAAQ,IAAI,GAAG,CAAC;IACzB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,CAAC;IACb,CAAC;AACH,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CACtC,QAAgB,EAChB,MAAc,EACd,IAAmB,EACnB,UAA+B,EAAE,EACZ,EAAE;IACvB,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACvD,MAAM,YAAY,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC;IAC/C,MAAM,aAAa,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,YAAY,IAAI,OAAO,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC;IAC5E,MAAM,EAAE,cAAc,EAAE,GAAG,OAAO,CAAC;IACnC,MAAM,QAAQ,GACZ,OAAO,cAAc,KAAK,UAAU;QAClC,CAAC,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,CAAC;QAC9D,CAAC,CAAC,aAAa,CAAC;IAEpB,OAAO;QACL,QAAQ;QACR,QAAQ;QACR,SAAS;QACT,OAAO;KACR,CAAC;AACJ,CAAC,CAAC"}
|