@be-link/cls-logger 1.0.1-beta.2 → 1.0.1-beta.20

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.
Files changed (53) hide show
  1. package/README.md +144 -32
  2. package/dist/ClsLogger.d.ts +15 -96
  3. package/dist/ClsLogger.d.ts.map +1 -1
  4. package/dist/ClsLoggerCore.d.ts +177 -0
  5. package/dist/ClsLoggerCore.d.ts.map +1 -0
  6. package/dist/behaviorMonitor.d.ts.map +1 -1
  7. package/dist/clsSdkTypes.d.ts +18 -0
  8. package/dist/clsSdkTypes.d.ts.map +1 -0
  9. package/dist/deviceInfo.d.ts.map +1 -1
  10. package/dist/errorMonitor.d.ts.map +1 -1
  11. package/dist/index.esm.js +2148 -1275
  12. package/dist/index.js +2148 -1275
  13. package/dist/index.umd.js +2153 -1278
  14. package/dist/mini/ClsLogger.d.ts +14 -0
  15. package/dist/mini/ClsLogger.d.ts.map +1 -0
  16. package/dist/mini/behaviorMonitor.d.ts +5 -0
  17. package/dist/mini/behaviorMonitor.d.ts.map +1 -0
  18. package/dist/mini/deviceInfo.d.ts +3 -0
  19. package/dist/mini/deviceInfo.d.ts.map +1 -0
  20. package/dist/mini/errorMonitor.d.ts +5 -0
  21. package/dist/mini/errorMonitor.d.ts.map +1 -0
  22. package/dist/mini/performanceMonitor.d.ts +5 -0
  23. package/dist/mini/performanceMonitor.d.ts.map +1 -0
  24. package/dist/mini/requestMonitor.d.ts +9 -0
  25. package/dist/mini/requestMonitor.d.ts.map +1 -0
  26. package/dist/mini.d.ts +6 -0
  27. package/dist/mini.d.ts.map +1 -0
  28. package/dist/mini.esm.js +1946 -0
  29. package/dist/mini.js +1971 -0
  30. package/dist/performanceMonitor.d.ts.map +1 -1
  31. package/dist/requestMonitor.d.ts +1 -5
  32. package/dist/requestMonitor.d.ts.map +1 -1
  33. package/dist/sdkUtils.d.ts +3 -0
  34. package/dist/sdkUtils.d.ts.map +1 -0
  35. package/dist/types.d.ts +90 -11
  36. package/dist/types.d.ts.map +1 -1
  37. package/dist/web/ClsLogger.d.ts +14 -0
  38. package/dist/web/ClsLogger.d.ts.map +1 -0
  39. package/dist/web/behaviorMonitor.d.ts +5 -0
  40. package/dist/web/behaviorMonitor.d.ts.map +1 -0
  41. package/dist/web/deviceInfo.d.ts +3 -0
  42. package/dist/web/deviceInfo.d.ts.map +1 -0
  43. package/dist/web/errorMonitor.d.ts +5 -0
  44. package/dist/web/errorMonitor.d.ts.map +1 -0
  45. package/dist/web/performanceMonitor.d.ts +5 -0
  46. package/dist/web/performanceMonitor.d.ts.map +1 -0
  47. package/dist/web/requestMonitor.d.ts +5 -0
  48. package/dist/web/requestMonitor.d.ts.map +1 -0
  49. package/dist/web.d.ts +6 -0
  50. package/dist/web.d.ts.map +1 -0
  51. package/dist/web.esm.js +2117 -0
  52. package/dist/web.js +2142 -0
  53. package/package.json +35 -2
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # @be-link/cls-logger
2
2
 
3
- 腾讯云 CLS(`tencentcloud-cls-sdk-js-web`)日志上报封装,参考仓库内 `@be-link/utils` 的构建方式(Rollup 打包 + tsc 仅产出 d.ts)。
3
+ 腾讯云 CLS(`tencentcloud-cls-sdk-js-web` / `tencentcloud-cls-sdk-js-mini`)日志上报封装,支持 Web、H5 和小程序环境,提供统一的调用方式。
4
4
 
5
5
  ## 安装
6
6
 
@@ -8,58 +8,170 @@
8
8
  pnpm add @be-link/cls-logger
9
9
  ```
10
10
 
11
+ > **注意**:
12
+ >
13
+ > 1. SDK 内部会自动根据运行环境加载对应的腾讯云 SDK(Web 或小程序),无需手动安装额外依赖。
14
+ > 2. 如果业务对包体积有极致要求,建议使用**分环境引入方式**(见下文)。
15
+
11
16
  ## 使用
12
17
 
18
+ ### 1. 统一引入方式(推荐快速接入)
19
+
20
+ 无需关心运行环境(Web 或 小程序),SDK 内部会自动识别并适配。此方式包含全量逻辑,支持动态加载 SDK。
21
+
22
+ ```ts
23
+ import clsLogger from '@be-link/cls-logger';
24
+
25
+ // 初始化(建议在应用入口处调用)
26
+ clsLogger.init({
27
+ projectId: 'my-project',
28
+ appId: 'my-app-id',
29
+ // 默认配置可不传
30
+ // tencentCloud: {
31
+ // endpoint: 'https://ap-shanghai.cls.tencentcs.com',
32
+ // topicID: '17475bcd-6315-4b20-859c-e7b087fb3683',
33
+ // },
34
+ source: 'my-source',
35
+ });
36
+ ```
37
+
38
+ ### 2. 分环境引入方式(推荐生产环境使用)
39
+
40
+ 为了获得更小的包体积(Tree Shaking)和更清晰的逻辑,建议根据项目类型引入不同的入口。此方式将物理隔离 Web 和小程序的特有逻辑(如 Web 的 `fetch` 拦截 vs 小程序的 `wx.request` 拦截)。
41
+
42
+ #### Web / H5 项目:
43
+
13
44
  ```ts
14
- import clsLogger, { ClsLogger } from '@be-link/cls-logger';
45
+ // 仅包含 Web 相关逻辑,不再包含小程序代码
46
+ import { clsLogger } from '@be-link/cls-logger/web';
15
47
 
16
48
  clsLogger.init({
17
- topic_id: 'xxx',
18
- projectName: 'my-project',
19
- generateBaseFields: () => ({ env: 'prod', uid: 'u_1' }),
49
+ projectId: 'my-web-project',
50
+ // tencentCloud: { ... }, // 可选
51
+ source: 'web-source',
20
52
  });
53
+ ```
21
54
 
22
- // 直接上报(展开字段)
23
- clsLogger.put({ event: 'login', ok: true });
55
+ #### 小程序项目:
24
56
 
25
- // 直接上报(JSON 放进单个 key,默认 “日志内容”)
26
- clsLogger.putJson({ event: 'click', x: 1, y: 2 });
57
+ ```ts
58
+ // 仅包含小程序相关逻辑,不再包含 Web 代码
59
+ import { clsLogger } from '@be-link/cls-logger/mini';
27
60
 
28
- // 入队(写入 localStorage,默认 15 条自动 flush)
29
- clsLogger.enqueue({ event: 'page_view', page: '/home' });
61
+ clsLogger.init({
62
+ projectId: 'my-mini-project',
63
+ appId: 'wx123456789', // 小程序建议传入 appId
64
+ // tencentCloud: { ... }, // 可选
65
+ source: 'mini-source',
66
+ });
30
67
  ```
31
68
 
32
- ## 请求监控(requestMonitor)
69
+ ## 常用 API
33
70
 
34
- 初始化后默认会开启 HTTP 请求监控(Web/H5:`fetch`/`XMLHttpRequest`;小程序:`wx.request`/`cloud.callFunction`),并把请求信息通过 `track('http', payload)` 上报。
71
+ ### 开发日志
35
72
 
36
- - **关闭**:`clsLogger.init({ requestMonitor: false })`
37
- - **忽略上报请求避免递归**:默认会忽略 CLS 上报域名(会把 `endpoint` 自动加入 `ignoreUrls`),并在内部增加了“上报发送”保护,避免上报请求在跨域失败时出现递归上报/死循环。
38
- - **自定义忽略**:`clsLogger.init({ requestMonitor: { ignoreUrls: ['example.com', /\\/internal\\//] } })`
73
+ ```ts
74
+ // info / warn / error
75
+ clsLogger.info('应用启动', { startUpTime: 120 });
76
+
77
+ // Error 日志(支持直接传入 Error 对象,自动解析堆栈)
78
+ try {
79
+ doSomething();
80
+ } catch (err) {
81
+ clsLogger.error(err, { module: 'payment' });
82
+ }
83
+ ```
39
84
 
40
- ## 性能监控(performanceMonitor)
85
+ ### 自定义埋点 (Track)
41
86
 
42
- 初始化后默认会开启性能监控,并通过 `track('perf', payload)` 上报,包含:
87
+ ```ts
88
+ clsLogger.track('click_event', {
89
+ button: 'submit',
90
+ page: '/home',
91
+ });
92
+ ```
43
93
 
44
- - **Web Vitals**:FCP/LCP/CLS/FID
45
- - **Navigation Timing**:TTFB 等
46
- - **Resource Timing**:资源加载耗时(`PerformanceObserver({ type: 'resource', buffered: true })`,首屏会比较多)
94
+ ### 统计埋点 (Stat)
47
95
 
48
- 常见降噪配置:
96
+ 用于简单的计数/分布统计。
49
97
 
50
98
  ```ts
51
- import clsLogger from '@be-link/cls-logger';
99
+ clsLogger.stat({
100
+ pageName: '首页',
101
+ scene: '入口',
102
+ subScene: '活动弹窗',
103
+ data: 1,
104
+ });
105
+ ```
106
+
107
+ ## 功能特性
52
108
 
109
+ ### 1. 自动环境适配
110
+
111
+ - **Web / H5**: 自动采集浏览器环境信息(UserAgent、屏幕尺寸、网络状态等)。
112
+ - **小程序**: 自动采集小程序环境信息(系统信息、微信版本、网络类型等)。
113
+
114
+ ### 2. 请求监控 (Request Monitor)
115
+
116
+ 默认开启。
117
+
118
+ - **Web**: 拦截 `fetch` / `XMLHttpRequest`。
119
+ - **小程序**: 拦截 `wx.request` / `wx.cloud.callFunction`。
120
+
121
+ ### 3. 性能监控 (Performance Monitor)
122
+
123
+ 默认开启。
124
+
125
+ - **Web**: 采集 FCP, LCP, CLS, FID 等 Core Web Vitals 及资源加载耗时。
126
+ - **小程序**: 支持采集页面首屏渲染耗时 (`firstRender`)、路由切换耗时 (`route`) 及启动耗时 (`appLaunch`)。
127
+
128
+ ### 4. 行为埋点 (Behavior Monitor)
129
+
130
+ 默认开启,支持 PV (Page View) 和 UV (User View) 自动上报。
131
+
132
+ - **UV ID**: 自动生成并持久化。小程序环境下优先尝试使用 `openid`。
133
+ - **点击追踪**: 自动监听点击事件。
134
+ - **Web**: 识别带 `data-track-id` 的元素。
135
+ ```html
136
+ <!-- HTML -->
137
+ <button data-track-id="submit_btn">提交</button>
138
+ ```
139
+ - **小程序**: 识别带 `data-track-id` 的组件(需在 `dataset` 中)。
140
+ ```html
141
+ <!-- WXML -->
142
+ <button data-track-id="submit_btn" bindtap="handleClick">提交</button>
143
+ ```
144
+
145
+ ## 高级用法
146
+
147
+ ### 内存队列与批量发送
148
+
149
+ SDK 默认开启内存队列,每 500ms 或达到 20 条日志时自动批量上报,以减少网络请求次数。可通过 `batch` 参数配置:
150
+
151
+ ```ts
53
152
  clsLogger.init({
54
- topic_id: 'xxx',
55
- projectName: 'my-project',
56
- performanceMonitor: {
57
- // 降低采样(0~1)
58
- sampleRate: 0.1,
59
- // 忽略本地开发资源 & sourcemap(按你的资源特征调整)
60
- ignoreUrls: ['localhost:8080', /\\.map$/],
153
+ batch: {
154
+ maxSize: 20,
155
+ intervalMs: 500,
156
+ startupDelayMs: 1000, // 启动阶段合并窗口
61
157
  },
62
- // 可选:启动阶段合并窗口,减少首屏 perf/resource 被 intervalMs 拆成多次上报
63
- // batch: { startupDelayMs: 2000 },
158
+ });
159
+ ```
160
+
161
+ ### 失败重试与本地缓存
162
+
163
+ 上报失败的日志会自动进入重试流程(指数退避算法)。若多次重试仍失败,日志会落盘到本地缓存(`localStorage` 或小程序 `Storage`),在下次应用启动时尝试重新上报。
164
+
165
+ ### 手动注入 SDK
166
+
167
+ 在某些特殊构建环境(如某些不允许动态 require 的小程序框架)下,可以手动注入:
168
+
169
+ ```ts
170
+ import { clsLogger } from '@be-link/cls-logger/mini';
171
+ import * as MiniSdk from 'tencentcloud-cls-sdk-js-mini';
172
+
173
+ clsLogger.init({
174
+ tencentCloud: { topicID: 'xxx', endpoint: 'xxx' },
175
+ sdk: MiniSdk, // 手动传入 SDK 实例
64
176
  });
65
177
  ```
@@ -1,98 +1,17 @@
1
- import { AsyncClient } from 'tencentcloud-cls-sdk-js-web';
2
- import type { ClsLoggerInitOptions, FlatFields, PutOptions, QueueItem, ReportLog } from './types';
3
- export declare class ClsLogger {
4
- private client;
5
- private topicId;
6
- private endpoint;
7
- private retryTimes;
8
- private source;
9
- private projectId;
10
- private projectName;
11
- private appId;
12
- private appVersion;
13
- private envType;
14
- private userGenerateBaseFields;
15
- private autoGenerateBaseFields;
16
- private storageKey;
17
- private batchSize;
18
- private memoryQueue;
19
- private batchMaxSize;
20
- private batchIntervalMs;
21
- private batchTimer;
22
- private batchTimerDueAt;
23
- private initTs;
24
- private startupDelayMs;
25
- private failedCacheKey;
26
- private failedCacheMax;
27
- private requestMonitorStarted;
28
- private errorMonitorStarted;
29
- private performanceMonitorStarted;
30
- private behaviorMonitorStarted;
31
- private behaviorMonitorCleanup;
32
- userId: unknown;
33
- userName: unknown;
34
- init(options: ClsLoggerInitOptions): void;
35
- private getBaseFields;
36
- private startRequestMonitor;
37
- private startErrorMonitor;
38
- private startPerformanceMonitor;
39
- private startBehaviorMonitor;
40
- /**
41
- * 停止行为埋点监听(PV/UV/点击)
42
- * - 如需重启:可再次调用 init(或自行调用 init 后的默认启动逻辑)
43
- */
44
- stopBehaviorMonitor(): void;
45
- getInstance(): AsyncClient;
46
- private detectEnvType;
47
- /**
48
- * 直接上报:埋点入参必须是一维(扁平)Object
49
- * - 非原始值(对象/数组等)会被自动 stringify 成 string
50
- * - 最终会把 fields 展开成 CLS 的 content(key/value 都会转成 string)
51
- */
52
- put(fields: FlatFields, options?: PutOptions): void;
53
- /**
54
- * 直接上报:把 data 序列化后放入指定 key(默认 “日志内容”)
55
- */
56
- putJson(data: unknown, clsLoggerKey?: string, options?: PutOptions): void;
57
- /**
58
- * 入队:写入 localStorage 队列;达到 batchSize 自动 flush
59
- * - 埋点入参必须是一维(扁平)Object,非原始值会被 stringify
60
- */
61
- enqueue(fields: FlatFields, options?: PutOptions): void;
62
- /**
63
- * 从 localStorage 读取队列并批量上报
64
- */
65
- flush(): void;
66
- /**
67
- * 批量上报(每条 item.data 展开为 log content)
68
- */
69
- putBatch(queue: QueueItem[]): void;
70
- /**
71
- * 参考《一、概述》:统一上报入口(内存队列 + 批量发送)
72
- */
73
- report(log: ReportLog): void;
74
- private getDesiredBatchFlushDueAt;
75
- info(message: string, data?: FlatFields): void;
76
- warn(message: string, data?: FlatFields): void;
77
- error(message: string, data?: FlatFields): void;
78
- track(trackType: string, data?: FlatFields): void;
79
- /**
80
- * 立即发送内存队列
81
- */
82
- flushBatch(): Promise<void>;
83
- private buildReportFields;
84
- private sendReportLogs;
85
- private retrySendReportLogs;
86
- private cacheFailedReportLogs;
87
- flushFailed(): void;
88
- /**
89
- * 统计/计数类日志:按字段展开上报(若 data 为空默认 1)
90
- */
91
- stat(param: {
92
- pageName: string;
93
- scene: string;
94
- subScene: string;
95
- data?: number | string;
96
- }): void;
1
+ import { ClsLoggerCore } from './ClsLoggerCore';
2
+ import type { ClsSdkModule } from './clsSdkTypes';
3
+ import type { FlatFields, RequestMonitorOptions, ErrorMonitorOptions, PerformanceMonitorOptions, BehaviorMonitorOptions, DeviceInfoOptions } from './types';
4
+ /**
5
+ * 兼容版 ClsLogger(默认入口)
6
+ * - 保留了自动识别环境 + 动态 import 的逻辑
7
+ * - 如果业务想瘦身,建议改用 @be-link/cls-logger/web 或 /mini
8
+ */
9
+ export declare class ClsLogger extends ClsLoggerCore {
10
+ protected loadSdk(): Promise<ClsSdkModule>;
11
+ protected installRequestMonitor(report: (type: string, data: FlatFields) => void, options: RequestMonitorOptions): void;
12
+ protected installErrorMonitor(report: (type: string, data: FlatFields) => void, options: boolean | ErrorMonitorOptions): void;
13
+ protected installPerformanceMonitor(report: (type: string, data: FlatFields) => void, options: boolean | PerformanceMonitorOptions): void;
14
+ protected installBehaviorMonitor(report: (type: string, data: FlatFields) => void, options: boolean | BehaviorMonitorOptions): () => void;
15
+ protected createDeviceInfoBaseFields(options: boolean | DeviceInfoOptions | undefined): (() => FlatFields) | null;
97
16
  }
98
17
  //# sourceMappingURL=ClsLogger.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ClsLogger.d.ts","sourceRoot":"","sources":["../src/ClsLogger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ClsLogger.d.ts","sourceRoot":"","sources":["../src/ClsLogger.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAOlD,OAAO,KAAK,EACV,UAAU,EACV,qBAAqB,EACrB,mBAAmB,EACnB,yBAAyB,EACzB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,SAAS,CAAC;AAEjB;;;;GAIG;AACH,qBAAa,SAAU,SAAQ,aAAa;cAC1B,OAAO,IAAI,OAAO,CAAC,YAAY,CAAC;IAgGhD,SAAS,CAAC,qBAAqB,CAC7B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,EAChD,OAAO,EAAE,qBAAqB,GAC7B,IAAI;IAIP,SAAS,CAAC,mBAAmB,CAC3B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,EAChD,OAAO,EAAE,OAAO,GAAG,mBAAmB,GACrC,IAAI;IAIP,SAAS,CAAC,yBAAyB,CACjC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,EAChD,OAAO,EAAE,OAAO,GAAG,yBAAyB,GAC3C,IAAI;IAIP,SAAS,CAAC,sBAAsB,CAC9B,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,EAChD,OAAO,EAAE,OAAO,GAAG,sBAAsB,GACxC,MAAM,IAAI;IAIb,SAAS,CAAC,0BAA0B,CAAC,OAAO,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,GAAG,CAAC,MAAM,UAAU,CAAC,GAAG,IAAI;CAGlH"}
@@ -0,0 +1,177 @@
1
+ import type { ClsLoggerInitOptions, ErrorMonitorOptions, EnvType, FlatFields, PerformanceMonitorOptions, PutOptions, QueueItem, ReportLog, ReportOptions, RequestMonitorOptions, BehaviorMonitorOptions, DeviceInfoOptions } from './types';
2
+ import type { ClsSdkModule } from './clsSdkTypes';
3
+ /**
4
+ * CLS Logger 核心基类
5
+ * - 负责所有上报、队列、监控逻辑
6
+ * - 不包含具体的 SDK 加载实现(由子类负责)
7
+ * - 这样可以把 web/mini 的 SDK 依赖彻底解耦到子入口
8
+ */
9
+ export declare abstract class ClsLoggerCore {
10
+ protected sdk: ClsSdkModule | null;
11
+ protected sdkPromise: Promise<ClsSdkModule> | null;
12
+ protected sdkOverride: unknown | null;
13
+ protected sdkLoaderOverride: (() => unknown | Promise<unknown>) | null;
14
+ protected client: {
15
+ PutLogs: (request: unknown) => Promise<unknown> | unknown;
16
+ } | null;
17
+ protected clientPromise: Promise<{
18
+ PutLogs: (request: unknown) => Promise<unknown> | unknown;
19
+ }> | null;
20
+ protected topicId: string | null;
21
+ protected endpoint: string;
22
+ protected retryTimes: number;
23
+ protected source: string;
24
+ protected enabled: boolean;
25
+ protected projectId: string;
26
+ protected projectName: string;
27
+ protected appId: string;
28
+ protected appVersion: string;
29
+ protected envType: EnvType;
30
+ protected userGenerateBaseFields: (() => FlatFields) | null;
31
+ protected autoGenerateBaseFields: (() => FlatFields) | null;
32
+ protected storageKey: string;
33
+ protected batchSize: number;
34
+ protected memoryQueue: ReportLog[];
35
+ protected batchMaxSize: number;
36
+ protected batchIntervalMs: number;
37
+ protected batchTimer: ReturnType<typeof setTimeout> | null;
38
+ protected batchTimerDueAt: number | null;
39
+ protected initTs: number;
40
+ protected startupDelayMs: number;
41
+ protected useIdleCallback: boolean;
42
+ protected idleTimeout: number;
43
+ protected visibilityCleanup: (() => void) | null;
44
+ protected failedCacheKey: string;
45
+ protected failedCacheMax: number;
46
+ protected requestMonitorStarted: boolean;
47
+ protected errorMonitorStarted: boolean;
48
+ protected performanceMonitorStarted: boolean;
49
+ protected behaviorMonitorStarted: boolean;
50
+ protected behaviorMonitorCleanup: (() => void) | null;
51
+ userId: unknown;
52
+ userName: unknown;
53
+ /**
54
+ * 子类必须实现此方法来加载 SDK
55
+ */
56
+ protected abstract loadSdk(): Promise<ClsSdkModule>;
57
+ /**
58
+ * 子类必须实现:安装请求监听
59
+ */
60
+ protected abstract installRequestMonitor(report: (type: string, data: FlatFields) => void, options: RequestMonitorOptions): void;
61
+ /**
62
+ * 子类必须实现:安装错误监控
63
+ */
64
+ protected abstract installErrorMonitor(report: (type: string, data: FlatFields) => void, options: boolean | ErrorMonitorOptions): void;
65
+ /**
66
+ * 子类必须实现:安装性能监控
67
+ */
68
+ protected abstract installPerformanceMonitor(report: (type: string, data: FlatFields) => void, options: boolean | PerformanceMonitorOptions): void;
69
+ /**
70
+ * 子类必须实现:安装行为埋点
71
+ */
72
+ protected abstract installBehaviorMonitor(report: (type: string, data: FlatFields) => void, options: boolean | BehaviorMonitorOptions): () => void;
73
+ /**
74
+ * 子类必须实现:创建设备信息获取器
75
+ */
76
+ protected abstract createDeviceInfoBaseFields(options: boolean | DeviceInfoOptions | undefined): (() => FlatFields) | null;
77
+ /**
78
+ * 子类可按需重写(默认检测 wx)
79
+ */
80
+ protected detectEnvType(): EnvType;
81
+ init(options: ClsLoggerInitOptions): void;
82
+ private getBaseFields;
83
+ /**
84
+ * 设置页面可见性监听
85
+ * - visibilitychange: 页面隐藏时使用 sendBeacon 发送队列
86
+ * - pagehide: 作为移动端 fallback
87
+ */
88
+ private setupVisibilityListener;
89
+ /**
90
+ * 同步发送内存队列(使用 sendBeacon)
91
+ * - 用于页面关闭时确保数据发送
92
+ * - sendBeacon 不可用时降级为缓存到 localStorage
93
+ */
94
+ private flushBatchSync;
95
+ /**
96
+ * 构建 sendBeacon 的 payload
97
+ */
98
+ private buildSendBeaconPayload;
99
+ private startRequestMonitor;
100
+ private startErrorMonitor;
101
+ private startPerformanceMonitor;
102
+ private startBehaviorMonitor;
103
+ /**
104
+ * 停止行为埋点监听(PV/UV/点击)
105
+ * - 如需重启:可再次调用 init(或自行调用 init 后的默认启动逻辑)
106
+ */
107
+ stopBehaviorMonitor(): void;
108
+ /**
109
+ * 获取 CLS client(按环境懒加载 SDK)
110
+ */
111
+ getInstance(): Promise<{
112
+ PutLogs: (request: unknown) => Promise<unknown> | unknown;
113
+ }>;
114
+ /**
115
+ * 直接上报:埋点入参必须是一维(扁平)Object
116
+ * - 非原始值(对象/数组等)会被自动 stringify 成 string
117
+ * - 最终会把 fields 展开成 CLS 的 content(key/value 都会转成 string)
118
+ */
119
+ put(fields: FlatFields, options?: PutOptions): void;
120
+ private putAsync;
121
+ /**
122
+ * 直接上报:把 data 序列化后放入指定 key(默认 “日志内容”)
123
+ */
124
+ putJson(data: unknown, clsLoggerKey?: string, options?: PutOptions): void;
125
+ /**
126
+ * 入队:写入 localStorage 队列;达到 batchSize 自动 flush
127
+ * - 埋点入参必须是一维(扁平)Object,非原始值会被 stringify
128
+ */
129
+ enqueue(fields: FlatFields, options?: PutOptions): void;
130
+ /**
131
+ * 从 localStorage 读取队列并批量上报
132
+ */
133
+ flush(): void;
134
+ /**
135
+ * 批量上报(每条 item.data 展开为 log content)
136
+ */
137
+ putBatch(queue: QueueItem[]): void;
138
+ private putBatchAsync;
139
+ /**
140
+ * 参考《一、概述》:统一上报入口(内存队列 + 批量发送)
141
+ */
142
+ report(log: ReportLog): void;
143
+ /**
144
+ * 调度批量发送
145
+ * - 支持 requestIdleCallback(浏览器空闲时执行)
146
+ * - 降级为 setTimeout
147
+ */
148
+ private scheduleFlush;
149
+ /**
150
+ * 取消已调度的批量发送
151
+ */
152
+ private cancelScheduledFlush;
153
+ private getDesiredBatchFlushDueAt;
154
+ info(message: string | Error, data?: FlatFields, options?: ReportOptions): void;
155
+ warn(message: string | Error, data?: FlatFields, options?: ReportOptions): void;
156
+ error(message: string | Error, data?: FlatFields, options?: ReportOptions): void;
157
+ track(trackType: string, data?: FlatFields): void;
158
+ /**
159
+ * 立即发送内存队列
160
+ */
161
+ flushBatch(): Promise<void>;
162
+ private buildReportFields;
163
+ private sendReportLogs;
164
+ private retrySendReportLogs;
165
+ private cacheFailedReportLogs;
166
+ flushFailed(): void;
167
+ /**
168
+ * 统计/计数类日志:按字段展开上报(若 data 为空默认 1)
169
+ */
170
+ stat(param: {
171
+ pageName: string;
172
+ scene: string;
173
+ subScene: string;
174
+ data?: number | string;
175
+ }): void;
176
+ }
177
+ //# sourceMappingURL=ClsLoggerCore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ClsLoggerCore.d.ts","sourceRoot":"","sources":["../src/ClsLoggerCore.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"behaviorMonitor.d.ts","sourceRoot":"","sources":["../src/behaviorMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG3E,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;AA8FzD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,sBAA2B,GACnC,MAAM,IAAI,CA4WZ"}
1
+ {"version":3,"file":"behaviorMonitor.d.ts","sourceRoot":"","sources":["../src/behaviorMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,sBAAsB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAK3E,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;AAEzD,wBAAgB,sBAAsB,CACpC,MAAM,EAAE,QAAQ,EAChB,OAAO,EAAE,OAAO,EAChB,OAAO,GAAE,sBAA2B,GACnC,MAAM,IAAI,CAKZ"}
@@ -0,0 +1,18 @@
1
+ export type ClsSdkModule = {
2
+ AsyncClient: new (options: {
3
+ endpoint: string;
4
+ retry_times?: number;
5
+ }) => {
6
+ PutLogs: (request: unknown) => Promise<unknown> | unknown;
7
+ };
8
+ Log: new (time: number) => {
9
+ addContent: (k: string, v: string) => void;
10
+ };
11
+ LogGroup: new (source: string) => {
12
+ setSource: (source: string) => void;
13
+ addLog: (log: unknown) => void;
14
+ getLogs: () => unknown[];
15
+ };
16
+ PutLogsRequest: new (topicId: string, logGroup: unknown) => unknown;
17
+ };
18
+ //# sourceMappingURL=clsSdkTypes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"clsSdkTypes.d.ts","sourceRoot":"","sources":["../src/clsSdkTypes.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG;IACzB,WAAW,EAAE,KAAK,OAAO,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK;QACxE,OAAO,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,CAAC,OAAO,CAAC,GAAG,OAAO,CAAC;KAC3D,CAAC;IACF,GAAG,EAAE,KAAK,IAAI,EAAE,MAAM,KAAK;QAAE,UAAU,EAAE,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,KAAK,IAAI,CAAA;KAAE,CAAC;IAC1E,QAAQ,EAAE,KAAK,MAAM,EAAE,MAAM,KAAK;QAChC,SAAS,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAC;QACpC,MAAM,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,IAAI,CAAC;QAC/B,OAAO,EAAE,MAAM,OAAO,EAAE,CAAC;KAC1B,CAAC;IACF,cAAc,EAAE,KAAK,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,KAAK,OAAO,CAAC;CACrE,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"deviceInfo.d.ts","sourceRoot":"","sources":["../src/deviceInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAwMtE,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,GAC5C,CAAC,MAAM,UAAU,CAAC,GAAG,IAAI,CAyC3B"}
1
+ {"version":3,"file":"deviceInfo.d.ts","sourceRoot":"","sources":["../src/deviceInfo.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAKtE,wBAAgB,8BAA8B,CAC5C,OAAO,EAAE,OAAO,EAChB,IAAI,EAAE,OAAO,GAAG,iBAAiB,GAAG,SAAS,GAC5C,CAAC,MAAM,UAAU,CAAC,GAAG,IAAI,CAK3B"}
@@ -1 +1 @@
1
- {"version":3,"file":"errorMonitor.d.ts","sourceRoot":"","sources":["../src/errorMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAG/D,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;AA8MzD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAE,OAAO,GAAG,mBAAmB,GAAG,SAAc,GAAG,IAAI,CAmBhH"}
1
+ {"version":3,"file":"errorMonitor.d.ts","sourceRoot":"","sources":["../src/errorMonitor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAK/D,KAAK,QAAQ,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,UAAU,KAAK,IAAI,CAAC;AAEzD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,GAAE,OAAO,GAAG,mBAAmB,GAAG,SAAc,GAAG,IAAI,CAKhH"}