@feiyangdefeng/sdk 1.0.0 → 1.1.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/README.md +9 -7
- package/dist/collector/auto-tracker.d.ts +4 -0
- package/dist/collector/auto-tracker.d.ts.map +1 -1
- package/dist/collector/click-tracker.d.ts +10 -1
- package/dist/collector/click-tracker.d.ts.map +1 -1
- package/dist/collector/error-tracker.d.ts.map +1 -1
- package/dist/collector/exposure-tracker.d.ts.map +1 -1
- package/dist/collector/input-tracker.d.ts +10 -1
- package/dist/collector/input-tracker.d.ts.map +1 -1
- package/dist/collector/performance-tracker.d.ts.map +1 -1
- package/dist/collector/view-tracker.d.ts.map +1 -1
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/panel-manager.d.ts +27 -0
- package/dist/core/panel-manager.d.ts.map +1 -0
- package/dist/core/request.d.ts +3 -0
- package/dist/core/request.d.ts.map +1 -1
- package/dist/core/utils.d.ts +5 -0
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/core/vue-utils.d.ts +58 -0
- package/dist/core/vue-utils.d.ts.map +1 -0
- package/dist/extension/naive-ui-tracker.d.ts +20 -0
- package/dist/extension/naive-ui-tracker.d.ts.map +1 -0
- package/dist/extension/performance-monitor.d.ts +93 -0
- package/dist/extension/performance-monitor.d.ts.map +1 -0
- package/dist/extension/user-action-sequence.d.ts +151 -0
- package/dist/extension/user-action-sequence.d.ts.map +1 -0
- package/dist/extension/vue-integration.d.ts +28 -0
- package/dist/extension/vue-integration.d.ts.map +1 -0
- package/dist/extension/vue-plugin.d.ts +66 -0
- package/dist/extension/vue-plugin.d.ts.map +1 -0
- package/dist/index.d.ts +12 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +3293 -246
- package/dist/index.es.js.map +1 -1
- package/dist/index.iife.js +2 -2
- package/dist/index.iife.js.map +1 -1
- package/dist/index.umd.js +2 -2
- package/dist/index.umd.js.map +1 -1
- package/dist/panels/offline-storage-viewer.html.d.ts +6 -0
- package/dist/panels/offline-storage-viewer.html.d.ts.map +1 -0
- package/dist/panels/performance-panel.html.d.ts +6 -0
- package/dist/panels/performance-panel.html.d.ts.map +1 -0
- package/dist/processor/deduplicator.d.ts.map +1 -1
- package/dist/tracker.d.ts +24 -0
- package/dist/tracker.d.ts.map +1 -1
- package/dist/transport/batch-sender.d.ts.map +1 -1
- package/dist/transport/retry-handler.d.ts.map +1 -1
- package/package.json +2 -5
package/README.md
CHANGED
|
@@ -20,7 +20,7 @@
|
|
|
20
20
|
## 安装
|
|
21
21
|
|
|
22
22
|
```bash
|
|
23
|
-
pnpm add @
|
|
23
|
+
pnpm add @feiyangdefeng/sdk
|
|
24
24
|
```
|
|
25
25
|
|
|
26
26
|
## 文档
|
|
@@ -33,7 +33,7 @@ pnpm add @tracker/sdk
|
|
|
33
33
|
### 基础使用
|
|
34
34
|
|
|
35
35
|
```typescript
|
|
36
|
-
import Tracker from '@
|
|
36
|
+
import Tracker from '@feiyangdefeng/sdk';
|
|
37
37
|
|
|
38
38
|
// 方式1: 设置服务器地址(推荐)
|
|
39
39
|
const tracker = new Tracker({
|
|
@@ -188,7 +188,7 @@ tracker.use(plugin);
|
|
|
188
188
|
**网络请求拦截插件**:
|
|
189
189
|
|
|
190
190
|
```typescript
|
|
191
|
-
import Tracker, { networkInterceptorPlugin, createNetworkInterceptorPlugin } from '@
|
|
191
|
+
import Tracker, { networkInterceptorPlugin, createNetworkInterceptorPlugin } from '@feiyangdefeng/sdk';
|
|
192
192
|
|
|
193
193
|
const tracker = new Tracker({
|
|
194
194
|
appId: 'my-app',
|
|
@@ -299,7 +299,7 @@ const tracker = new Tracker({
|
|
|
299
299
|
## 插件开发
|
|
300
300
|
|
|
301
301
|
```typescript
|
|
302
|
-
import type { TrackerPlugin } from '@
|
|
302
|
+
import type { TrackerPlugin } from '@feiyangdefeng/sdk';
|
|
303
303
|
|
|
304
304
|
const myPlugin: TrackerPlugin = {
|
|
305
305
|
name: 'my-plugin',
|
|
@@ -333,10 +333,10 @@ tracker.use(myPlugin);
|
|
|
333
333
|
|
|
334
334
|
## Node.js支持
|
|
335
335
|
|
|
336
|
-
SDK支持在Node.js
|
|
336
|
+
SDK支持在Node.js环境中使用(需要 Node.js 18+,因为使用了原生 fetch API):
|
|
337
337
|
|
|
338
338
|
```typescript
|
|
339
|
-
import Tracker from '@
|
|
339
|
+
import Tracker from '@feiyangdefeng/sdk';
|
|
340
340
|
|
|
341
341
|
const tracker = new Tracker({
|
|
342
342
|
appId: 'your-app-id',
|
|
@@ -348,6 +348,8 @@ tracker.track('server-event', {
|
|
|
348
348
|
});
|
|
349
349
|
```
|
|
350
350
|
|
|
351
|
+
**注意**: SDK 使用 Node.js 18+ 原生支持的 `fetch` API,无需安装额外的依赖(如 `node-fetch`)。
|
|
352
|
+
|
|
351
353
|
## 开发
|
|
352
354
|
|
|
353
355
|
```bash
|
|
@@ -374,7 +376,7 @@ pnpm format
|
|
|
374
376
|
|
|
375
377
|
- **构建工具**: Vite
|
|
376
378
|
- **包管理器**: pnpm
|
|
377
|
-
- **Node版本**:
|
|
379
|
+
- **Node版本**: 18+(使用原生 fetch API)
|
|
378
380
|
- **语言**: TypeScript
|
|
379
381
|
- **测试**: Vitest
|
|
380
382
|
|
|
@@ -19,6 +19,10 @@ declare class AutoTracker {
|
|
|
19
19
|
enableInput?: boolean;
|
|
20
20
|
clickDebounceTime?: number;
|
|
21
21
|
inputDebounceTime?: number;
|
|
22
|
+
enableVueTracking?: boolean;
|
|
23
|
+
enableNaiveUITracking?: boolean;
|
|
24
|
+
extractComponentProps?: boolean;
|
|
25
|
+
extractComponentValue?: boolean;
|
|
22
26
|
}): void;
|
|
23
27
|
/**
|
|
24
28
|
* 获取ViewTracker实例
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"auto-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/auto-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAE3C,cAAM,WAAW;IACf,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAkB;;IASjC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"auto-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/auto-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,WAAW,MAAM,gBAAgB,CAAC;AACzC,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAC3C,OAAO,eAAe,MAAM,oBAAoB,CAAC;AACjD,OAAO,YAAY,MAAM,iBAAiB,CAAC;AAE3C,cAAM,WAAW;IACf,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAkB;;IASjC;;OAEG;IACH,IAAI,CAAC,OAAO,CAAC,EAAE;QACb,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,cAAc,CAAC,EAAE,OAAO,CAAC;QACzB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,GAAG,IAAI;IAgDR;;OAEG;IACH,cAAc,IAAI,WAAW;IAI7B;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,kBAAkB,IAAI,eAAe;IAIrC;;OAEG;IACH,eAAe,IAAI,YAAY;IAI/B;;OAEG;IACH,OAAO,IAAI,IAAI;CAYhB;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -9,10 +9,19 @@ declare class ClickTracker {
|
|
|
9
9
|
private lastTouch;
|
|
10
10
|
private readonly TOUCH_CLICK_THRESHOLD;
|
|
11
11
|
private readonly TOUCH_DISTANCE_THRESHOLD;
|
|
12
|
+
private enableVueTracking;
|
|
13
|
+
private enableNaiveUITracking;
|
|
14
|
+
private extractComponentProps;
|
|
15
|
+
private extractComponentValue;
|
|
12
16
|
/**
|
|
13
17
|
* 初始化
|
|
14
18
|
*/
|
|
15
|
-
init(debounceTime?: number
|
|
19
|
+
init(debounceTime?: number, options?: {
|
|
20
|
+
enableVueTracking?: boolean;
|
|
21
|
+
enableNaiveUITracking?: boolean;
|
|
22
|
+
extractComponentProps?: boolean;
|
|
23
|
+
extractComponentValue?: boolean;
|
|
24
|
+
}): void;
|
|
16
25
|
/**
|
|
17
26
|
* 处理触摸事件
|
|
18
27
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"click-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/click-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"click-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/click-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAM1C,cAAM,YAAY;IAChB,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,iBAAiB,CAA8C;IACvE,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,YAAY,CAAuB;IAC3C,OAAO,CAAC,SAAS,CAAuD;IACxE,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAO;IAC7C,OAAO,CAAC,QAAQ,CAAC,wBAAwB,CAAM;IAC/C,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,qBAAqB,CAAiB;IAC9C,OAAO,CAAC,qBAAqB,CAAiB;IAE9C;;OAEG;IACH,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE;QACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,GAAG,IAAI;IA4CR;;OAEG;IACH,OAAO,CAAC,WAAW;IAuDnB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqF/B;;OAEG;IACH,OAAO,CAAC,WAAW;IA0FnB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI;IA2BnD;;OAEG;IACH,OAAO,IAAI,IAAI;CAuBhB;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"error-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/error-tracker.ts"],"names":[],"mappings":"AAMA,cAAM,YAAY;IAChB,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,YAAY,CAAe;IAEnC;;OAEG;IACH,IAAI,IAAI,IAAI;IAgCZ;;OAEG;IACH,OAAO,CAAC,aAAa;IAsBrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"error-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/error-tracker.ts"],"names":[],"mappings":"AAMA,cAAM,YAAY;IAChB,OAAO,CAAC,QAAQ,CAAyB;IACzC,OAAO,CAAC,UAAU,CAAkC;IACpD,OAAO,CAAC,YAAY,CAAe;IAEnC;;OAEG;IACH,IAAI,IAAI,IAAI;IAgCZ;;OAEG;IACH,OAAO,CAAC,aAAa;IAsBrB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAqC1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAmD3B;;OAEG;IACH,OAAO,CAAC,WAAW;IAwBnB;;OAEG;IACH,OAAO,CAAC,SAAS;IAuBjB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAS9B;;OAEG;IACH,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IA8B5E;;OAEG;IACH,OAAO,IAAI,IAAI;CAKhB;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exposure-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/exposure-tracker.ts"],"names":[],"mappings":"AAOA,UAAU,eAAe;IACvB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,YAAY;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,cAAM,eAAe;IACnB,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAQ;gBAElC,OAAO,GAAE,eAAoB;IASzC;;OAEG;IACH,IAAI,IAAI,IAAI;IAyBZ;;OAEG;IACH,eAAe,IAAI,IAAI;IAevB;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAa/B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAgBjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;
|
|
1
|
+
{"version":3,"file":"exposure-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/exposure-tracker.ts"],"names":[],"mappings":"AAOA,UAAU,eAAe;IACvB,gCAAgC;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sBAAsB;IACtB,IAAI,CAAC,EAAE,OAAO,GAAG,IAAI,CAAC;IACtB,YAAY;IACZ,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,cAAM,eAAe;IACnB,OAAO,CAAC,QAAQ,CAAqC;IACrD,OAAO,CAAC,eAAe,CAA2B;IAClD,OAAO,CAAC,OAAO,CAAkB;IACjC,OAAO,CAAC,WAAW,CAAmC;IACtD,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,qBAAqB,CAA6B;IAC1D,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAQ;gBAElC,OAAO,GAAE,eAAoB;IASzC;;OAEG;IACH,IAAI,IAAI,IAAI;IAyBZ;;OAEG;IACH,eAAe,IAAI,IAAI;IAevB;;OAEG;IACH,OAAO,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAa/B;;OAEG;IACH,SAAS,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAgBjC;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA0B1B;;;;OAIG;IACH,OAAO,CAAC,eAAe;IAqBvB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAc3B;;OAEG;IACH,OAAO,CAAC,kBAAkB;IA2D1B;;OAEG;IACH,OAAO,IAAI,IAAI;CAsBhB;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -5,10 +5,19 @@ declare class InputTracker {
|
|
|
5
5
|
private selectDebounceTime;
|
|
6
6
|
private skipEmptyInput;
|
|
7
7
|
private sensitiveKeywords;
|
|
8
|
+
private enableVueTracking;
|
|
9
|
+
private enableNaiveUITracking;
|
|
10
|
+
private extractComponentProps;
|
|
11
|
+
private extractComponentValue;
|
|
8
12
|
/**
|
|
9
13
|
* 初始化
|
|
10
14
|
*/
|
|
11
|
-
init(debounceTime?: number, skipEmptyInput?: boolean
|
|
15
|
+
init(debounceTime?: number, skipEmptyInput?: boolean, options?: {
|
|
16
|
+
enableVueTracking?: boolean;
|
|
17
|
+
enableNaiveUITracking?: boolean;
|
|
18
|
+
extractComponentProps?: boolean;
|
|
19
|
+
extractComponentValue?: boolean;
|
|
20
|
+
}): void;
|
|
12
21
|
/**
|
|
13
22
|
* 处理 input 事件
|
|
14
23
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"input-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/input-tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"input-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/input-tracker.ts"],"names":[],"mappings":"AASA,cAAM,YAAY;IAChB,OAAO,CAAC,YAAY,CAAyC;IAC7D,OAAO,CAAC,aAAa,CAAyC;IAC9D,OAAO,CAAC,iBAAiB,CAAe;IACxC,OAAO,CAAC,kBAAkB,CAAe;IACzC,OAAO,CAAC,cAAc,CAAiB;IAEvC,OAAO,CAAC,iBAAiB,CAAiF;IAC1G,OAAO,CAAC,iBAAiB,CAAkB;IAC3C,OAAO,CAAC,qBAAqB,CAAkB;IAC/C,OAAO,CAAC,qBAAqB,CAAiB;IAC9C,OAAO,CAAC,qBAAqB,CAAiB;IAE9C;;OAEG;IACH,IAAI,CACF,YAAY,CAAC,EAAE,MAAM,EACrB,cAAc,CAAC,EAAE,OAAO,EACxB,OAAO,CAAC,EAAE;QACR,iBAAiB,CAAC,EAAE,OAAO,CAAC;QAC5B,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,qBAAqB,CAAC,EAAE,OAAO,CAAC;QAChC,qBAAqB,CAAC,EAAE,OAAO,CAAC;KACjC,GACA,IAAI;IAwCP;;OAEG;IACH,OAAO,CAAC,WAAW;IAkKnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAkJpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0CxB;;OAEG;IACH,OAAO,IAAI,IAAI;CAWhB;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"performance-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/performance-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIhD,cAAM,kBAAkB;IACtB,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,yBAAyB,CAAkB;IACnD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,oBAAoB,CAAe;IAE3C;;OAEG;IACH,IAAI,IAAI,IAAI;IAoBZ;;OAEG;IACH,OAAO,CAAC,uBAAuB;
|
|
1
|
+
{"version":3,"file":"performance-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/performance-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAIhD,cAAM,kBAAkB;IACtB,OAAO,CAAC,QAAQ,CAAoC;IACpD,OAAO,CAAC,yBAAyB,CAAkB;IACnD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,oBAAoB,CAAgB;IAC5C,OAAO,CAAC,oBAAoB,CAAe;IAE3C;;OAEG;IACH,IAAI,IAAI,IAAI;IAoBZ;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAyD/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA2D7B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAuDxB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IASjC;;OAEG;IACH,OAAO,CAAC,yBAAyB;IASjC;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,cAAc,IAAI,gBAAgB,GAAG,IAAI;IAgCzC;;OAEG;IACH,OAAO,IAAI,IAAI;CAShB;AAED,eAAe,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/view-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,cAAM,WAAW;IACf,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,SAAS,CAAiB;IAElC;;OAEG;IACH,IAAI,IAAI,IAAI;IAMZ;;OAEG;IACH,aAAa,IAAI,aAAa;
|
|
1
|
+
{"version":3,"file":"view-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/view-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,cAAM,WAAW;IACf,OAAO,CAAC,SAAS,CAAsB;IACvC,OAAO,CAAC,UAAU,CAAc;IAChC,OAAO,CAAC,eAAe,CAA6B;IACpD,OAAO,CAAC,uBAAuB,CAA6B;IAC5D,OAAO,CAAC,mBAAmB,CAA6B;IACxD,OAAO,CAAC,UAAU,CAAkB;IACpC,OAAO,CAAC,eAAe,CAA8C;IACrE,OAAO,CAAC,gBAAgB,CAAa;IACrC,OAAO,CAAC,mBAAmB,CAAgB;IAC3C,OAAO,CAAC,eAAe,CAAuB;IAC9C,OAAO,CAAC,eAAe,CAAa;IACpC,OAAO,CAAC,SAAS,CAAiB;IAElC;;OAEG;IACH,IAAI,IAAI,IAAI;IAMZ;;OAEG;IACH,aAAa,IAAI,aAAa;IAwF9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAyEtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgE1B;;OAEG;IACH,OAAO,IAAI,IAAI;CA8ChB;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AA+B7C;;GAEG;AACH,cAAM,aAAa;IACjB,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,aAAa;IAWjC;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,GAAG,EAAE,CAAC,GAAG,aAAa,CAAC,CAAC,CAAC;IAI5D;;OAEG;IACH,MAAM,IAAI,aAAa;IAIvB;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,aAAa,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,IAAI;IAIzE;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,IAAI;CAU9C;AAED,eAAe,aAAa,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 面板管理器
|
|
3
|
+
*/
|
|
4
|
+
export declare class PanelManager {
|
|
5
|
+
/**
|
|
6
|
+
* 设置Tracker实例
|
|
7
|
+
*/
|
|
8
|
+
setTrackerInstance(instance: unknown): void;
|
|
9
|
+
/**
|
|
10
|
+
* 打开性能监控面板
|
|
11
|
+
*/
|
|
12
|
+
openPerformancePanel(): void;
|
|
13
|
+
/**
|
|
14
|
+
* 打开离线存储查看器
|
|
15
|
+
*/
|
|
16
|
+
openOfflineStorageViewer(): void;
|
|
17
|
+
/**
|
|
18
|
+
* 获取性能监控面板HTML
|
|
19
|
+
*/
|
|
20
|
+
getPerformancePanelHTML(): string;
|
|
21
|
+
/**
|
|
22
|
+
* 获取离线存储查看器HTML
|
|
23
|
+
*/
|
|
24
|
+
getOfflineStorageViewerHTML(): string;
|
|
25
|
+
}
|
|
26
|
+
export default PanelManager;
|
|
27
|
+
//# sourceMappingURL=panel-manager.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-manager.d.ts","sourceRoot":"","sources":["../../src/core/panel-manager.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,qBAAa,YAAY;IACvB;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAO3C;;OAEG;IACH,oBAAoB,IAAI,IAAI;IA2B5B;;OAEG;IACH,wBAAwB,IAAI,IAAI;IA2BhC;;OAEG;IACH,uBAAuB,IAAI,MAAM;IAIjC;;OAEG;IACH,2BAA2B,IAAI,MAAM;CAGtC;AAED,eAAe,YAAY,CAAC"}
|
package/dist/core/request.d.ts
CHANGED
|
@@ -21,6 +21,9 @@ interface RequestResponse {
|
|
|
21
21
|
}
|
|
22
22
|
/**
|
|
23
23
|
* 统一请求接口
|
|
24
|
+
*
|
|
25
|
+
* Node.js 18+ 原生支持 fetch API,无需 node-fetch
|
|
26
|
+
* 浏览器环境使用原生 fetch 或 XMLHttpRequest 降级方案
|
|
24
27
|
*/
|
|
25
28
|
export declare function request(url: string, options?: RequestOptions): Promise<RequestResponse>;
|
|
26
29
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/core/request.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../src/core/request.ts"],"names":[],"mappings":"AAAA;;GAEG;AAqMH;;GAEG;AACH,UAAU,cAAc;IACtB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,IAAI,CAAC,EAAE,MAAM,GAAG,QAAQ,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,UAAU,eAAe;IACvB,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,OAAO,CAAC;CACf;AAkDD;;;;;GAKG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAKjG;AAED;;GAEG;AACH,wBAAgB,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAEhH;AAED;;GAEG;AACH,wBAAgB,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,GAAE,IAAI,CAAC,cAAc,EAAE,QAAQ,GAAG,MAAM,CAAM,GAAG,OAAO,CAAC,eAAe,CAAC,CAGhI"}
|
package/dist/core/utils.d.ts
CHANGED
|
@@ -17,6 +17,10 @@ export declare function getSessionId(): string;
|
|
|
17
17
|
* 获取当前URL
|
|
18
18
|
*/
|
|
19
19
|
export declare function getCurrentUrl(): string;
|
|
20
|
+
/**
|
|
21
|
+
* 检查当前窗口是否是SDK内部面板
|
|
22
|
+
*/
|
|
23
|
+
export declare function isTrackerInternalPanel(): boolean;
|
|
20
24
|
/**
|
|
21
25
|
* 获取页面标题
|
|
22
26
|
*/
|
|
@@ -35,6 +39,7 @@ export declare function debounce<T extends (...args: unknown[]) => void>(func: T
|
|
|
35
39
|
export declare function throttle<T extends (...args: unknown[]) => void>(func: T, wait: number): (...args: Parameters<T>) => void;
|
|
36
40
|
/**
|
|
37
41
|
* 深拷贝
|
|
42
|
+
* 支持循环引用检测
|
|
38
43
|
*/
|
|
39
44
|
export declare function deepClone<T>(obj: T): T;
|
|
40
45
|
/**
|
package/dist/core/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/core/utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,UAAU,IAAI,MAAM,CAEnC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CA8BpC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CA8BrC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAKtC;AAED;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,OAAO,CAKhD;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAKrC;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAKpC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EAC7D,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,GACX,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAclC;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,EAC7D,IAAI,EAAE,CAAC,EACP,IAAI,EAAE,MAAM,GACX,CAAC,GAAG,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,KAAK,IAAI,CAuBlC;AAED;;;GAGG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAEtC;AA6CD;;GAEG;AACH,wBAAgB,SAAS,IAAI,OAAO,CAEnC;AAED;;GAEG;AACH,wBAAgB,MAAM,IAAI,OAAO,CAEhC;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,CA4C9D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG;IACvD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,MAAM,CAAC;CACf,CAWA"}
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Vue3 相关工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Vue3 组件实例类型(简化版,避免依赖 Vue)
|
|
6
|
+
*/
|
|
7
|
+
interface VueComponentInstance {
|
|
8
|
+
$?: {
|
|
9
|
+
uid?: number;
|
|
10
|
+
type?: {
|
|
11
|
+
name?: string;
|
|
12
|
+
__name?: string;
|
|
13
|
+
};
|
|
14
|
+
};
|
|
15
|
+
$props?: Record<string, unknown>;
|
|
16
|
+
$attrs?: Record<string, unknown>;
|
|
17
|
+
$options?: {
|
|
18
|
+
name?: string;
|
|
19
|
+
};
|
|
20
|
+
__name?: string;
|
|
21
|
+
type?: {
|
|
22
|
+
name?: string;
|
|
23
|
+
__name?: string;
|
|
24
|
+
};
|
|
25
|
+
props?: Record<string, unknown>;
|
|
26
|
+
attrs?: Record<string, unknown>;
|
|
27
|
+
setupState?: Record<string, unknown>;
|
|
28
|
+
ctx?: Record<string, unknown>;
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* 从 DOM 元素获取 Vue 组件实例
|
|
32
|
+
* Vue3 在元素上存储组件实例的方式
|
|
33
|
+
*/
|
|
34
|
+
export declare function getVueComponentInstance(element: Element | null): VueComponentInstance | null;
|
|
35
|
+
/**
|
|
36
|
+
* 从组件实例获取组件名称
|
|
37
|
+
*/
|
|
38
|
+
export declare function getComponentName(instance: VueComponentInstance | null): string | undefined;
|
|
39
|
+
/**
|
|
40
|
+
* 从组件实例获取 props
|
|
41
|
+
*/
|
|
42
|
+
export declare function getComponentProps(instance: VueComponentInstance | null): Record<string, unknown> | undefined;
|
|
43
|
+
/**
|
|
44
|
+
* 从组件实例获取 attrs
|
|
45
|
+
*/
|
|
46
|
+
export declare function getComponentAttrs(instance: VueComponentInstance | null): Record<string, unknown> | undefined;
|
|
47
|
+
/**
|
|
48
|
+
* 从组件实例获取值(用于 input、select 等组件)
|
|
49
|
+
*/
|
|
50
|
+
export declare function getComponentValue(instance: VueComponentInstance | null): unknown;
|
|
51
|
+
export declare function filterSensitiveData(data: Record<string, unknown> | undefined): Record<string, unknown> | undefined;
|
|
52
|
+
/**
|
|
53
|
+
* 从 DOM 元素识别 naive-ui 组件
|
|
54
|
+
* 通过类名识别(naive-ui 组件通常有 n- 前缀的类名)
|
|
55
|
+
*/
|
|
56
|
+
export declare function identifyNaiveUIComponent(element: Element | null): string | undefined;
|
|
57
|
+
export {};
|
|
58
|
+
//# sourceMappingURL=vue-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue-utils.d.ts","sourceRoot":"","sources":["../../src/core/vue-utils.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,UAAU,oBAAoB;IAC5B,CAAC,CAAC,EAAE;QACF,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,IAAI,CAAC,EAAE;YACL,IAAI,CAAC,EAAE,MAAM,CAAC;YACd,MAAM,CAAC,EAAE,MAAM,CAAC;SACjB,CAAC;KACH,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACjC,QAAQ,CAAC,EAAE;QACT,IAAI,CAAC,EAAE,MAAM,CAAC;KACf,CAAC;IACF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE;QACL,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;IACF,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,oBAAoB,GAAG,IAAI,CA4C5F;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CA+B1F;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAe5G;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAe5G;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,oBAAoB,GAAG,IAAI,GAAG,OAAO,CAqChF;AAOD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAsFlH;AAED;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,SAAS,CA4CpF"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { ComponentInfo } from '../types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 提取 Naive-UI 组件特定信息
|
|
5
|
+
*/
|
|
6
|
+
export declare function extractNaiveUIComponentInfo(element: Element | null, options?: {
|
|
7
|
+
extractProps?: boolean;
|
|
8
|
+
extractAttrs?: boolean;
|
|
9
|
+
extractValue?: boolean;
|
|
10
|
+
extractLabel?: boolean;
|
|
11
|
+
}): ComponentInfo | undefined;
|
|
12
|
+
/**
|
|
13
|
+
* 检查组件是否为特定的 naive-ui 组件类型
|
|
14
|
+
*/
|
|
15
|
+
export declare function isNaiveUIComponentType(element: Element | null, componentType: string): boolean;
|
|
16
|
+
/**
|
|
17
|
+
* 获取 naive-ui 组件支持的类型列表
|
|
18
|
+
*/
|
|
19
|
+
export declare function getNaiveUIComponentTypes(componentName: string): string[] | undefined;
|
|
20
|
+
//# sourceMappingURL=naive-ui-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"naive-ui-tracker.d.ts","sourceRoot":"","sources":["../../src/extension/naive-ui-tracker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAiE7C;;GAEG;AACH,wBAAgB,2BAA2B,CACzC,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,OAAO,GAAE;IACP,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;CACnB,GACL,aAAa,GAAG,SAAS,CAsE3B;AAgLD;;GAEG;AACH,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO,CAO9F;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,SAAS,CAEpF"}
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import { PerformanceMetrics, PerformanceAlert, PerformanceReport, AlertRule, ReportOptions, PerformanceMonitorOptions } from '../types/performance';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 性能监控管理器
|
|
5
|
+
*/
|
|
6
|
+
export declare class PerformanceMonitor {
|
|
7
|
+
private events;
|
|
8
|
+
private alerts;
|
|
9
|
+
private alertRules;
|
|
10
|
+
private options;
|
|
11
|
+
private storageKey;
|
|
12
|
+
private maxStoredEvents;
|
|
13
|
+
private retentionTime;
|
|
14
|
+
private cleanupTimer;
|
|
15
|
+
constructor(options?: PerformanceMonitorOptions);
|
|
16
|
+
/**
|
|
17
|
+
* 初始化
|
|
18
|
+
*/
|
|
19
|
+
private init;
|
|
20
|
+
/**
|
|
21
|
+
* 处理性能事件
|
|
22
|
+
*/
|
|
23
|
+
private handlePerformanceEvent;
|
|
24
|
+
/**
|
|
25
|
+
* 检查告警规则
|
|
26
|
+
*/
|
|
27
|
+
private checkAlertRules;
|
|
28
|
+
/**
|
|
29
|
+
* 触发告警
|
|
30
|
+
*/
|
|
31
|
+
private triggerAlert;
|
|
32
|
+
/**
|
|
33
|
+
* 获取默认告警规则
|
|
34
|
+
*/
|
|
35
|
+
private getDefaultAlertRules;
|
|
36
|
+
/**
|
|
37
|
+
* 获取性能指标
|
|
38
|
+
*/
|
|
39
|
+
getMetrics(startTime?: number, endTime?: number): PerformanceMetrics;
|
|
40
|
+
/**
|
|
41
|
+
* 计算平均值
|
|
42
|
+
*/
|
|
43
|
+
private average;
|
|
44
|
+
/**
|
|
45
|
+
* 生成性能报告
|
|
46
|
+
*/
|
|
47
|
+
generateReport(options?: ReportOptions): PerformanceReport;
|
|
48
|
+
/**
|
|
49
|
+
* 生成趋势数据
|
|
50
|
+
*/
|
|
51
|
+
private generateTrends;
|
|
52
|
+
/**
|
|
53
|
+
* 获取告警列表
|
|
54
|
+
*/
|
|
55
|
+
getAlerts(resolved?: boolean): PerformanceAlert[];
|
|
56
|
+
/**
|
|
57
|
+
* 添加告警规则
|
|
58
|
+
*/
|
|
59
|
+
addAlertRule(rule: AlertRule): void;
|
|
60
|
+
/**
|
|
61
|
+
* 移除告警规则
|
|
62
|
+
*/
|
|
63
|
+
removeAlertRule(ruleId: string): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* 获取告警规则
|
|
66
|
+
*/
|
|
67
|
+
getAlertRules(): AlertRule[];
|
|
68
|
+
/**
|
|
69
|
+
* 标记告警为已处理
|
|
70
|
+
*/
|
|
71
|
+
resolveAlert(alertId: string): boolean;
|
|
72
|
+
/**
|
|
73
|
+
* 保存到存储
|
|
74
|
+
*/
|
|
75
|
+
private saveToStorage;
|
|
76
|
+
/**
|
|
77
|
+
* 加载历史数据
|
|
78
|
+
*/
|
|
79
|
+
private loadHistoryData;
|
|
80
|
+
/**
|
|
81
|
+
* 启动清理定时器
|
|
82
|
+
*/
|
|
83
|
+
private startCleanupTimer;
|
|
84
|
+
/**
|
|
85
|
+
* 清理过期数据
|
|
86
|
+
*/
|
|
87
|
+
private cleanup;
|
|
88
|
+
/**
|
|
89
|
+
* 销毁
|
|
90
|
+
*/
|
|
91
|
+
destroy(): void;
|
|
92
|
+
}
|
|
93
|
+
//# sourceMappingURL=performance-monitor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-monitor.d.ts","sourceRoot":"","sources":["../../src/extension/performance-monitor.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,aAAa,EACb,yBAAyB,EAC1B,MAAM,qBAAqB,CAAC;AAI7B;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,OAAO,CAAsC;IACrD,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,eAAe,CAAS;IAChC,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAuB;gBAE/B,OAAO,GAAE,yBAA8B;IAkBnD;;OAEG;IACH,OAAO,CAAC,IAAI;IAkBZ;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAiDvB;;OAEG;IACH,OAAO,CAAC,YAAY;IAoCpB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;OAEG;IACH,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,kBAAkB;IA2IpE;;OAEG;IACH,OAAO,CAAC,OAAO;IAQf;;OAEG;IACH,cAAc,CAAC,OAAO,GAAE,aAAkB,GAAG,iBAAiB;IA0C9D;;OAEG;IACH,OAAO,CAAC,cAAc;IAoCtB;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,gBAAgB,EAAE;IAOjD;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,SAAS,GAAG,IAAI;IAInC;;OAEG;IACH,eAAe,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO;IASxC;;OAEG;IACH,aAAa,IAAI,SAAS,EAAE;IAI5B;;OAEG;IACH,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAStC;;OAEG;YACW,aAAa;IAa3B;;OAEG;YACW,eAAe;IAiB7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAWzB;;OAEG;IACH,OAAO,CAAC,OAAO;IAcf;;OAEG;IACH,OAAO,IAAI,IAAI;CAUhB"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import { TrackerEvent } from '../types/event';
|
|
2
|
+
import { UserActionProfile, LightweightProfile, PerformanceMode, PerformanceBudget, PerformanceStats } from '../types/user-profile';
|
|
3
|
+
|
|
4
|
+
interface UserActionSequenceOptions {
|
|
5
|
+
/** 最大事件数 */
|
|
6
|
+
maxEvents?: number;
|
|
7
|
+
/** 事件采样率 */
|
|
8
|
+
sampleRate?: number;
|
|
9
|
+
/** 是否启用采样 */
|
|
10
|
+
enableSampling?: boolean;
|
|
11
|
+
/** 性能模式配置 */
|
|
12
|
+
performanceMode?: Partial<PerformanceMode>;
|
|
13
|
+
/** 性能预算配置 */
|
|
14
|
+
performanceBudget?: Partial<PerformanceBudget>;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 用户操作序列管理器
|
|
18
|
+
*/
|
|
19
|
+
export declare class UserActionSequence {
|
|
20
|
+
private events;
|
|
21
|
+
private sessionId;
|
|
22
|
+
private userId?;
|
|
23
|
+
private deviceId;
|
|
24
|
+
private startTime;
|
|
25
|
+
private maxEvents;
|
|
26
|
+
private sampleRate;
|
|
27
|
+
private enableSampling;
|
|
28
|
+
private performanceMode;
|
|
29
|
+
private performanceBudget;
|
|
30
|
+
private eventTypeCounts;
|
|
31
|
+
private isSorted;
|
|
32
|
+
private lastEventTimestamp;
|
|
33
|
+
private eventIndexes;
|
|
34
|
+
private cachedProfile;
|
|
35
|
+
private cacheTimestamp;
|
|
36
|
+
private cacheTTL;
|
|
37
|
+
private eventQueue;
|
|
38
|
+
private isProcessing;
|
|
39
|
+
private maxQueueSize;
|
|
40
|
+
private performanceMetrics;
|
|
41
|
+
private performanceModeActive;
|
|
42
|
+
constructor(sessionId: string, deviceId: string, userId?: string, options?: UserActionSequenceOptions);
|
|
43
|
+
/**
|
|
44
|
+
* 添加事件(异步版本,推荐使用)
|
|
45
|
+
* 快速入队,不阻塞主线程
|
|
46
|
+
*/
|
|
47
|
+
addEventAsync(event: TrackerEvent): void;
|
|
48
|
+
/**
|
|
49
|
+
* 添加事件(同步版本)
|
|
50
|
+
* 注意:如果事件很多,可能影响性能
|
|
51
|
+
*/
|
|
52
|
+
addEvent(event: TrackerEvent): void;
|
|
53
|
+
/**
|
|
54
|
+
* 内部添加事件逻辑
|
|
55
|
+
*/
|
|
56
|
+
private addEventInternal;
|
|
57
|
+
/**
|
|
58
|
+
* 异步处理队列
|
|
59
|
+
*/
|
|
60
|
+
private processQueueAsync;
|
|
61
|
+
/**
|
|
62
|
+
* 处理一批事件
|
|
63
|
+
*/
|
|
64
|
+
private processBatch;
|
|
65
|
+
/**
|
|
66
|
+
* 判断是否应该跳过事件(性能模式)
|
|
67
|
+
*/
|
|
68
|
+
private shouldSkipForPerformance;
|
|
69
|
+
/**
|
|
70
|
+
* 启用性能模式
|
|
71
|
+
*/
|
|
72
|
+
private enablePerformanceMode;
|
|
73
|
+
/**
|
|
74
|
+
* 清理属性,限制大小
|
|
75
|
+
*/
|
|
76
|
+
private sanitizeProperties;
|
|
77
|
+
/**
|
|
78
|
+
* 更新索引
|
|
79
|
+
*/
|
|
80
|
+
private updateIndexes;
|
|
81
|
+
/**
|
|
82
|
+
* 清理旧事件
|
|
83
|
+
*/
|
|
84
|
+
private cleanupOldEvents;
|
|
85
|
+
/**
|
|
86
|
+
* 重建索引
|
|
87
|
+
*/
|
|
88
|
+
private rebuildIndexes;
|
|
89
|
+
/**
|
|
90
|
+
* 重新计算统计
|
|
91
|
+
*/
|
|
92
|
+
private recalculateCounts;
|
|
93
|
+
/**
|
|
94
|
+
* 获取事件序列(已排序)
|
|
95
|
+
*/
|
|
96
|
+
getSequence(): TrackerEvent[];
|
|
97
|
+
/**
|
|
98
|
+
* 获取会话时长
|
|
99
|
+
*/
|
|
100
|
+
getDuration(): number;
|
|
101
|
+
/**
|
|
102
|
+
* 使用索引快速获取特定类型的事件
|
|
103
|
+
*/
|
|
104
|
+
getEventsByType(type: string): TrackerEvent[];
|
|
105
|
+
/**
|
|
106
|
+
* 根据类型获取索引
|
|
107
|
+
*/
|
|
108
|
+
private getIndexesByType;
|
|
109
|
+
/**
|
|
110
|
+
* 生成操作画像(同步版本)
|
|
111
|
+
*/
|
|
112
|
+
generateProfile(): UserActionProfile;
|
|
113
|
+
/**
|
|
114
|
+
* 生成操作画像(异步版本)
|
|
115
|
+
*/
|
|
116
|
+
generateProfileAsync(): Promise<UserActionProfile>;
|
|
117
|
+
/**
|
|
118
|
+
* 生成轻量级画像(不包含完整事件数组)
|
|
119
|
+
*/
|
|
120
|
+
generateLightweightProfile(): LightweightProfile;
|
|
121
|
+
/**
|
|
122
|
+
* 优化的用户旅程构建
|
|
123
|
+
*/
|
|
124
|
+
private buildUserJourneyOptimized;
|
|
125
|
+
/**
|
|
126
|
+
* 提取操作描述
|
|
127
|
+
*/
|
|
128
|
+
private extractAction;
|
|
129
|
+
/**
|
|
130
|
+
* 优化的行为指标计算
|
|
131
|
+
*/
|
|
132
|
+
private calculateBehaviorMetricsOptimized;
|
|
133
|
+
/**
|
|
134
|
+
* 记录性能指标
|
|
135
|
+
*/
|
|
136
|
+
private recordPerformance;
|
|
137
|
+
/**
|
|
138
|
+
* 获取性能统计
|
|
139
|
+
*/
|
|
140
|
+
getPerformanceStats(): PerformanceStats;
|
|
141
|
+
/**
|
|
142
|
+
* 计算百分位数
|
|
143
|
+
*/
|
|
144
|
+
private percentile;
|
|
145
|
+
/**
|
|
146
|
+
* 重置序列
|
|
147
|
+
*/
|
|
148
|
+
reset(): void;
|
|
149
|
+
}
|
|
150
|
+
export {};
|
|
151
|
+
//# sourceMappingURL=user-action-sequence.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"user-action-sequence.d.ts","sourceRoot":"","sources":["../../src/extension/user-action-sequence.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { ComponentInfo } from '../types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Vue3 组件信息提取选项
|
|
5
|
+
*/
|
|
6
|
+
export interface VueComponentExtractOptions {
|
|
7
|
+
/** 是否提取组件 props(默认 true) */
|
|
8
|
+
extractProps?: boolean;
|
|
9
|
+
/** 是否提取组件 attrs(默认 true) */
|
|
10
|
+
extractAttrs?: boolean;
|
|
11
|
+
/** 是否提取组件值(默认 true) */
|
|
12
|
+
extractValue?: boolean;
|
|
13
|
+
/** 是否提取组件标签文本(默认 true) */
|
|
14
|
+
extractLabel?: boolean;
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* 从 DOM 元素提取 Vue 组件信息
|
|
18
|
+
*/
|
|
19
|
+
export declare function extractVueComponentInfo(element: Element | null, options?: VueComponentExtractOptions): ComponentInfo | undefined;
|
|
20
|
+
/**
|
|
21
|
+
* 检查元素是否为 Vue 组件
|
|
22
|
+
*/
|
|
23
|
+
export declare function isVueComponent(element: Element | null): boolean;
|
|
24
|
+
/**
|
|
25
|
+
* 检查元素是否为 naive-ui 组件
|
|
26
|
+
*/
|
|
27
|
+
export declare function isNaiveUIComponent(element: Element | null): boolean;
|
|
28
|
+
//# sourceMappingURL=vue-integration.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vue-integration.d.ts","sourceRoot":"","sources":["../../src/extension/vue-integration.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAW7C;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,4BAA4B;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,4BAA4B;IAC5B,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,uBAAuB;IACvB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,0BAA0B;IAC1B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,OAAO,GAAE,0BAA+B,GACvC,aAAa,GAAG,SAAS,CAgI3B;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAO/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,OAAO,CAOnE"}
|