@feiyangdefeng/sdk 1.1.0 → 1.2.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 +15 -1
- package/dist/collector/auto-tracker.d.ts +2 -0
- package/dist/collector/auto-tracker.d.ts.map +1 -1
- package/dist/collector/click-event-dispatcher.d.ts +8 -0
- package/dist/collector/click-event-dispatcher.d.ts.map +1 -0
- package/dist/collector/click-event-factory.d.ts +23 -0
- package/dist/collector/click-event-factory.d.ts.map +1 -0
- package/dist/collector/click-tracker.d.ts +8 -8
- package/dist/collector/click-tracker.d.ts.map +1 -1
- package/dist/collector/exposure-tracker.d.ts.map +1 -1
- package/dist/collector/input-tracker.d.ts +8 -4
- package/dist/collector/input-tracker.d.ts.map +1 -1
- package/dist/collector/performance-tracker.d.ts.map +1 -1
- package/dist/collector/touch-interaction-tracker.d.ts +20 -0
- package/dist/collector/touch-interaction-tracker.d.ts.map +1 -0
- package/dist/collector/view-tracker.d.ts.map +1 -1
- package/dist/core/capabilities.d.ts +16 -0
- package/dist/core/capabilities.d.ts.map +1 -0
- package/dist/core/component-info-sanitize.d.ts +10 -0
- package/dist/core/component-info-sanitize.d.ts.map +1 -0
- package/dist/core/config.d.ts.map +1 -1
- package/dist/core/utils.d.ts +4 -0
- package/dist/core/utils.d.ts.map +1 -1
- package/dist/extension/frame-adapters/angular-adapter.d.ts +16 -0
- package/dist/extension/frame-adapters/angular-adapter.d.ts.map +1 -0
- package/dist/extension/frame-adapters/component-resolvers.d.ts +9 -0
- package/dist/extension/frame-adapters/component-resolvers.d.ts.map +1 -0
- package/dist/extension/frame-adapters/dom-context.d.ts +6 -0
- package/dist/extension/frame-adapters/dom-context.d.ts.map +1 -0
- package/dist/extension/frame-adapters/dom-data.d.ts +7 -0
- package/dist/extension/frame-adapters/dom-data.d.ts.map +1 -0
- package/dist/extension/frame-adapters/react-adapter.d.ts +12 -0
- package/dist/extension/frame-adapters/react-adapter.d.ts.map +1 -0
- package/dist/extension/frame-adapters/react-fiber-dom.d.ts +7 -0
- package/dist/extension/frame-adapters/react-fiber-dom.d.ts.map +1 -0
- package/dist/extension/frame-adapters/react-fiber-internal.d.ts +19 -0
- package/dist/extension/frame-adapters/react-fiber-internal.d.ts.map +1 -0
- package/dist/extension/frame-adapters/resolve.d.ts +7 -0
- package/dist/extension/frame-adapters/resolve.d.ts.map +1 -0
- package/dist/extension/frame-adapters/ui-lib-heuristics.d.ts +7 -0
- package/dist/extension/frame-adapters/ui-lib-heuristics.d.ts.map +1 -0
- package/dist/extension/performance-alert-engine.d.ts +16 -0
- package/dist/extension/performance-alert-engine.d.ts.map +1 -0
- package/dist/extension/performance-cleanup-scheduler.d.ts +8 -0
- package/dist/extension/performance-cleanup-scheduler.d.ts.map +1 -0
- package/dist/extension/performance-metrics-aggregator.d.ts +11 -0
- package/dist/extension/performance-metrics-aggregator.d.ts.map +1 -0
- package/dist/extension/performance-monitor-storage.d.ts +16 -0
- package/dist/extension/performance-monitor-storage.d.ts.map +1 -0
- package/dist/extension/performance-monitor.d.ts +4 -9
- package/dist/extension/performance-monitor.d.ts.map +1 -1
- package/dist/extension/plugin-lifecycle.d.ts +9 -0
- package/dist/extension/plugin-lifecycle.d.ts.map +1 -0
- package/dist/extension/plugin-manager.d.ts +3 -0
- package/dist/extension/plugin-manager.d.ts.map +1 -1
- package/dist/extension/session-replay-budget.d.ts +20 -0
- package/dist/extension/session-replay-budget.d.ts.map +1 -0
- package/dist/extension/session-replay-interaction-lifecycle.d.ts +23 -0
- package/dist/extension/session-replay-interaction-lifecycle.d.ts.map +1 -0
- package/dist/extension/session-replay-store.d.ts +25 -0
- package/dist/extension/session-replay-store.d.ts.map +1 -0
- package/dist/extension/session-replay.d.ts +17 -29
- package/dist/extension/session-replay.d.ts.map +1 -1
- package/dist/extension/user-action-sequence.d.ts.map +1 -1
- package/dist/index.d.ts +10 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.es.js +9901 -8925
- 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/processor/data-processor.d.ts +3 -1
- package/dist/processor/data-processor.d.ts.map +1 -1
- package/dist/processor/pipeline-context.d.ts +8 -0
- package/dist/processor/pipeline-context.d.ts.map +1 -0
- package/dist/processor/processor-pipeline.d.ts +11 -0
- package/dist/processor/processor-pipeline.d.ts.map +1 -0
- package/dist/processor/processor-stage.d.ts +8 -0
- package/dist/processor/processor-stage.d.ts.map +1 -0
- package/dist/processor/stages/compress-stage.d.ts +12 -0
- package/dist/processor/stages/compress-stage.d.ts.map +1 -0
- package/dist/processor/stages/deduplicate-stage.d.ts +12 -0
- package/dist/processor/stages/deduplicate-stage.d.ts.map +1 -0
- package/dist/processor/stages/sample-stage.d.ts +12 -0
- package/dist/processor/stages/sample-stage.d.ts.map +1 -0
- package/dist/runtime/tracker-config-coordinator.d.ts +22 -0
- package/dist/runtime/tracker-config-coordinator.d.ts.map +1 -0
- package/dist/runtime/tracker-event-bus-bridge.d.ts +20 -0
- package/dist/runtime/tracker-event-bus-bridge.d.ts.map +1 -0
- package/dist/runtime/tracker-event-dispatcher.d.ts +31 -0
- package/dist/runtime/tracker-event-dispatcher.d.ts.map +1 -0
- package/dist/runtime/tracker-event-enricher.d.ts +14 -0
- package/dist/runtime/tracker-event-enricher.d.ts.map +1 -0
- package/dist/runtime/tracker-feature-registry.d.ts +26 -0
- package/dist/runtime/tracker-feature-registry.d.ts.map +1 -0
- package/dist/runtime/tracker-plugin-context.d.ts +11 -0
- package/dist/runtime/tracker-plugin-context.d.ts.map +1 -0
- package/dist/tracker.d.ts +5 -12
- package/dist/tracker.d.ts.map +1 -1
- package/dist/transport/batch-sender-state.d.ts +3 -0
- package/dist/transport/batch-sender-state.d.ts.map +1 -0
- package/dist/transport/batch-sender.d.ts +24 -12
- package/dist/transport/batch-sender.d.ts.map +1 -1
- package/dist/transport/delivery-coordinator.d.ts +18 -0
- package/dist/transport/delivery-coordinator.d.ts.map +1 -0
- package/dist/transport/event-queue.d.ts +20 -0
- package/dist/transport/event-queue.d.ts.map +1 -0
- package/dist/transport/flush-scheduler.d.ts +19 -0
- package/dist/transport/flush-scheduler.d.ts.map +1 -0
- package/dist/transport/offline-recovery-manager.d.ts +17 -0
- package/dist/transport/offline-recovery-manager.d.ts.map +1 -0
- package/dist/transport/offline-storage.d.ts +1 -1
- package/dist/transport/offline-storage.d.ts.map +1 -1
- package/dist/transport/sender.d.ts +8 -1
- package/dist/transport/sender.d.ts.map +1 -1
- package/docs/ARCHITECTURE_MAP.md +476 -0
- package/docs/BROWSER_SUPPORT.md +15 -0
- package/docs/ENGINEERING_OVERVIEW.md +154 -0
- package/docs/ERROR_SCENARIO_EVALUATION.md +124 -0
- package/docs/FRAME_ADAPTERS.md +70 -0
- package/docs/FRAME_ADAPTERS_GUIDE.md +195 -0
- package/docs/MINIPROGRAM.md +11 -0
- package/docs/OPTIMIZATION_PLAN.md +123 -0
- package/docs/PERFORMANCE_BASELINE.md +181 -0
- package/docs/README.md +30 -0
- package/docs/UI_LIB_COMPAT.md +31 -0
- package/docs/USAGE.md +4064 -0
- package/docs/VIEW_LOCAL_CACHE_AND_PROFILE.md +252 -0
- package/docs/VUE3_INTEGRATION.md +528 -0
- package/examples/README.md +54 -0
- package/examples/reference/user-action-profile.ts +446 -0
- package/examples/reference/user-profile-backend.ts +397 -0
- package/examples/reference/vue3-naive-ui-example.vue +211 -0
- package/package.json +38 -4
- package/tests/README.md +203 -0
package/README.md
CHANGED
|
@@ -26,6 +26,8 @@ pnpm add @feiyangdefeng/sdk
|
|
|
26
26
|
## 文档
|
|
27
27
|
|
|
28
28
|
- [📖 详细使用说明](docs/USAGE.md) - 完整的使用文档,包含所有API、配置选项、使用场景和最佳实践
|
|
29
|
+
- [工程梳理](docs/ENGINEERING_OVERVIEW.md) - 仓库定位、源码分层、数据流与对外导出边界
|
|
30
|
+
- [框架适配器开发者手册](docs/FRAME_ADAPTERS_GUIDE.md) - React/Angular 适配器注意事项、FAQ 与排错
|
|
29
31
|
- [🧪 测试文档](tests/README.md) - 测试覆盖和测试说明
|
|
30
32
|
|
|
31
33
|
## 快速开始
|
|
@@ -105,7 +107,14 @@ try {
|
|
|
105
107
|
| `batchWait` | `number` | `5000` | 批量上报等待时间(毫秒) |
|
|
106
108
|
| `sampleRate` | `number` | `1.0` | 采样率(0-1) |
|
|
107
109
|
| `enableOfflineStorage` | `boolean` | `true` | 是否启用离线存储 |
|
|
108
|
-
| `maxRetries` | `number` | `3` |
|
|
110
|
+
| `maxRetries` | `number` | `3` | 最大重试次数(可通过 `updateConfig` 更新) |
|
|
111
|
+
| `enableCompression` | `boolean` | `false` | 是否压缩事件 `properties`(pako);开启后大属性可能以 `compressedProperties` 上报,服务端需按约定解压(见 [USAGE](docs/USAGE.md#enablecompression)) |
|
|
112
|
+
| `sessionReplay` | `object` | - | 会话回放细项,见 USAGE(`recordMouseMove`、`maxTotalBytes`、`maxMutationRecordsPerSnapshot` 等) |
|
|
113
|
+
| `frameAdapters` | `FrameAdapter[]` | - | 自定义框架适配器(先于内置 Vue/Naive);详见 [FRAME_ADAPTERS](docs/FRAME_ADAPTERS.md) |
|
|
114
|
+
| `enableReactTracking` | `boolean` | `false` | 构造时自动注入 React Fiber 适配器(`priority` 80) |
|
|
115
|
+
| `enableAngularTracking` | `boolean` | `false` | 构造时自动注入 Angular 适配器(`priority` 79),建议同时设置 `angularGetComponent` |
|
|
116
|
+
| `angularGetComponent` | `function` | - | `(el) => getComponent(el)`,与 `enableAngularTracking` 配合 |
|
|
117
|
+
| `componentInfo` | `object` | - | 组件信息扩展策略(`maxDepth`、`exposeStateKeys` 等,供后续解析使用) |
|
|
109
118
|
| `userId` | `string` | `''` | 用户ID |
|
|
110
119
|
| `deviceId` | `string` | `''` | 设备ID(自动生成) |
|
|
111
120
|
| `customProperties` | `object` | `{}` | 自定义属性 |
|
|
@@ -113,6 +122,11 @@ try {
|
|
|
113
122
|
| `afterSend` | `function` | - | 上报后钩子 |
|
|
114
123
|
| `onError` | `function` | - | 错误处理函数 |
|
|
115
124
|
|
|
125
|
+
### `updateConfig` 说明
|
|
126
|
+
|
|
127
|
+
- **可在运行时通过 `updateConfig` 生效**:`serverUrl`、`maxRetries`、`batchSize`、`batchWait`、`sampleRate`、`userId`、`customProperties`、`beforeSend`、`afterSend`、`onError` 等。
|
|
128
|
+
- **仅在构造 `new Tracker(...)` 时生效**(`updateConfig` 不会启停对应模块):`enableAutoTrack`、`enableErrorTrack`、`enablePerformanceTrack`、`enableSessionReplay`、`enableVueTracking`、`enableNaiveUITracking`、`enableReactTracking`、`enableAngularTracking`、`angularGetComponent`、`frameAdapters` 及组件提取相关选项。变更这些能力需新建 `Tracker` 实例。
|
|
129
|
+
|
|
116
130
|
## API
|
|
117
131
|
|
|
118
132
|
### track(eventName, properties?)
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { TrackerConfig } from '../types';
|
|
1
2
|
import { default as ViewTracker } from './view-tracker';
|
|
2
3
|
import { default as ClickTracker } from './click-tracker';
|
|
3
4
|
import { default as ExposureTracker } from './exposure-tracker';
|
|
@@ -23,6 +24,7 @@ declare class AutoTracker {
|
|
|
23
24
|
enableNaiveUITracking?: boolean;
|
|
24
25
|
extractComponentProps?: boolean;
|
|
25
26
|
extractComponentValue?: boolean;
|
|
27
|
+
getConfig?: () => TrackerConfig;
|
|
26
28
|
}): void;
|
|
27
29
|
/**
|
|
28
30
|
* 获取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;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;
|
|
1
|
+
{"version":3,"file":"auto-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/auto-tracker.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,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;QAChC,SAAS,CAAC,EAAE,MAAM,aAAa,CAAC;KACjC,GAAG,IAAI;IAmDR;;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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { ClickEvent } from '../types';
|
|
2
|
+
|
|
3
|
+
declare class ClickEventDispatcher {
|
|
4
|
+
dispatch(event: ClickEvent): void;
|
|
5
|
+
schedule(task: () => void, timeout: number): void;
|
|
6
|
+
}
|
|
7
|
+
export default ClickEventDispatcher;
|
|
8
|
+
//# sourceMappingURL=click-event-dispatcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"click-event-dispatcher.d.ts","sourceRoot":"","sources":["../../src/collector/click-event-dispatcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAI1C,cAAM,oBAAoB;IACxB,QAAQ,CAAC,KAAK,EAAE,UAAU,GAAG,IAAI;IAajC,QAAQ,CAAC,IAAI,EAAE,MAAM,IAAI,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI;CAOlD;AAED,eAAe,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { ClickEvent, TrackerConfig } from '../types';
|
|
2
|
+
|
|
3
|
+
interface ClickEventFactoryOptions {
|
|
4
|
+
getConfig?: (() => TrackerConfig) | null;
|
|
5
|
+
}
|
|
6
|
+
interface InteractionInput {
|
|
7
|
+
element: Element;
|
|
8
|
+
timestamp: number;
|
|
9
|
+
position: {
|
|
10
|
+
x: number;
|
|
11
|
+
y: number;
|
|
12
|
+
};
|
|
13
|
+
interactionType: 'mouse' | 'touch';
|
|
14
|
+
eventName: 'click' | 'touch-click';
|
|
15
|
+
nativeEvent?: Event;
|
|
16
|
+
}
|
|
17
|
+
declare class ClickEventFactory {
|
|
18
|
+
private readonly options;
|
|
19
|
+
constructor(options?: ClickEventFactoryOptions);
|
|
20
|
+
create(input: InteractionInput): ClickEvent;
|
|
21
|
+
}
|
|
22
|
+
export default ClickEventFactory;
|
|
23
|
+
//# sourceMappingURL=click-event-factory.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"click-event-factory.d.ts","sourceRoot":"","sources":["../../src/collector/click-event-factory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAIzD,UAAU,wBAAwB;IAChC,SAAS,CAAC,EAAE,CAAC,MAAM,aAAa,CAAC,GAAG,IAAI,CAAC;CAC1C;AAED,UAAU,gBAAgB;IACxB,OAAO,EAAE,OAAO,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACnC,eAAe,EAAE,OAAO,GAAG,OAAO,CAAC;IACnC,SAAS,EAAE,OAAO,GAAG,aAAa,CAAC;IACnC,WAAW,CAAC,EAAE,KAAK,CAAC;CACrB;AAED,cAAM,iBAAiB;IACT,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,GAAE,wBAA6B;IAEnE,MAAM,CAAC,KAAK,EAAE,gBAAgB,GAAG,UAAU;CA2B5C;AAED,eAAe,iBAAiB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ClickEvent } from '../types';
|
|
1
|
+
import { ClickEvent, TrackerConfig } from '../types';
|
|
2
2
|
|
|
3
3
|
declare class ClickTracker {
|
|
4
4
|
private clickHandler;
|
|
@@ -6,21 +6,21 @@ declare class ClickTracker {
|
|
|
6
6
|
private touchEndHandler;
|
|
7
7
|
private debounceTime;
|
|
8
8
|
private touchTimeout;
|
|
9
|
-
private
|
|
10
|
-
private
|
|
11
|
-
private
|
|
12
|
-
private
|
|
13
|
-
private enableNaiveUITracking;
|
|
14
|
-
private extractComponentProps;
|
|
15
|
-
private extractComponentValue;
|
|
9
|
+
private configGetter;
|
|
10
|
+
private eventFactory;
|
|
11
|
+
private eventDispatcher;
|
|
12
|
+
private touchInteractionTracker;
|
|
16
13
|
/**
|
|
17
14
|
* 初始化
|
|
15
|
+
* @param debounceTime 点击防抖毫秒(可选)
|
|
16
|
+
* @param options 可选;若含 `getConfig`,则用于解析组件信息;不传则仍可上报点击,无组件增强信息
|
|
18
17
|
*/
|
|
19
18
|
init(debounceTime?: number, options?: {
|
|
20
19
|
enableVueTracking?: boolean;
|
|
21
20
|
enableNaiveUITracking?: boolean;
|
|
22
21
|
extractComponentProps?: boolean;
|
|
23
22
|
extractComponentValue?: boolean;
|
|
23
|
+
getConfig?: () => TrackerConfig;
|
|
24
24
|
}): void;
|
|
25
25
|
/**
|
|
26
26
|
* 处理触摸事件
|
|
@@ -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,aAAa,EAAE,MAAM,SAAS,CAAC;AAMzD,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,YAAY,CAAsC;IAC1D,OAAO,CAAC,YAAY,CAA8C;IAClE,OAAO,CAAC,eAAe,CAAoD;IAC3E,OAAO,CAAC,uBAAuB,CAA0D;IAEzF;;;;OAIG;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;QAChC,SAAS,CAAC,EAAE,MAAM,aAAa,CAAC;KACjC,GAAG,IAAI;IAyCR;;OAEG;IACH,OAAO,CAAC,WAAW;IAsCnB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkC/B;;OAEG;IACH,OAAO,CAAC,WAAW;IAyCnB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI;IAwBnD;;OAEG;IACH,OAAO,IAAI,IAAI;CAuBhB;AAED,eAAe,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exposure-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/exposure-tracker.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"exposure-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/exposure-tracker.ts"],"names":[],"mappings":"AAQA,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;IAwBZ;;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"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
import { TrackerConfig } from '../types';
|
|
2
|
+
|
|
1
3
|
declare class InputTracker {
|
|
2
4
|
private inputHandler;
|
|
3
5
|
private changeHandler;
|
|
@@ -5,10 +7,7 @@ declare class InputTracker {
|
|
|
5
7
|
private selectDebounceTime;
|
|
6
8
|
private skipEmptyInput;
|
|
7
9
|
private sensitiveKeywords;
|
|
8
|
-
private
|
|
9
|
-
private enableNaiveUITracking;
|
|
10
|
-
private extractComponentProps;
|
|
11
|
-
private extractComponentValue;
|
|
10
|
+
private configGetter;
|
|
12
11
|
/**
|
|
13
12
|
* 初始化
|
|
14
13
|
*/
|
|
@@ -17,7 +16,12 @@ declare class InputTracker {
|
|
|
17
16
|
enableNaiveUITracking?: boolean;
|
|
18
17
|
extractComponentProps?: boolean;
|
|
19
18
|
extractComponentValue?: boolean;
|
|
19
|
+
getConfig?: () => TrackerConfig;
|
|
20
20
|
}): void;
|
|
21
|
+
/**
|
|
22
|
+
* 合并组件信息中的 value 到 input 事件(与原先 Vue/Naive 分支行为一致)
|
|
23
|
+
*/
|
|
24
|
+
private mergeComponentValueIntoInput;
|
|
21
25
|
/**
|
|
22
26
|
* 处理 input 事件
|
|
23
27
|
*/
|
|
@@ -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":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAc,aAAa,EAAiB,MAAM,SAAS,CAAC;AAKxE,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,YAAY,CAAsC;IAE1D;;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;QAChC,SAAS,CAAC,EAAE,MAAM,aAAa,CAAC;KACjC,GACA,IAAI;IAqCP;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAcpC;;OAEG;IACH,OAAO,CAAC,WAAW;IAmHnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmGpB;;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;
|
|
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;AAKhD,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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
type TouchInteractionResult = {
|
|
2
|
+
isTap: true;
|
|
3
|
+
position: {
|
|
4
|
+
x: number;
|
|
5
|
+
y: number;
|
|
6
|
+
};
|
|
7
|
+
} | {
|
|
8
|
+
isTap: false;
|
|
9
|
+
};
|
|
10
|
+
declare class TouchInteractionTracker {
|
|
11
|
+
private readonly clickThresholdMs;
|
|
12
|
+
private readonly distanceThresholdPx;
|
|
13
|
+
private lastTouch;
|
|
14
|
+
constructor(clickThresholdMs?: number, distanceThresholdPx?: number);
|
|
15
|
+
recordTouchStart(touch: Touch, now: number): void;
|
|
16
|
+
resolveTouchEnd(touch: Touch, now: number): TouchInteractionResult;
|
|
17
|
+
reset(): void;
|
|
18
|
+
}
|
|
19
|
+
export default TouchInteractionTracker;
|
|
20
|
+
//# sourceMappingURL=touch-interaction-tracker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"touch-interaction-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/touch-interaction-tracker.ts"],"names":[],"mappings":"AAMA,KAAK,sBAAsB,GACvB;IACE,KAAK,EAAE,IAAI,CAAC;IACZ,QAAQ,EAAE;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;CACpC,GACD;IACE,KAAK,EAAE,KAAK,CAAC;CACd,CAAC;AAEN,cAAM,uBAAuB;IAIzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,mBAAmB;IAJtC,OAAO,CAAC,SAAS,CAAiC;gBAG/B,gBAAgB,GAAE,MAAY,EAC9B,mBAAmB,GAAE,MAAW;IAGnD,gBAAgB,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAQjD,eAAe,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,GAAG,sBAAsB;IA2BlE,KAAK,IAAI,IAAI;CAGd;AAED,eAAe,uBAAuB,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;IAwF9B;;OAEG;IACH,OAAO,CAAC,cAAc;
|
|
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;IAuEtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgE1B;;OAEG;IACH,OAAO,IAAI,IAAI;CA8ChB;AAED,eAAe,WAAW,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 浏览器能力检测(用于降级,避免仅 Chrome 可用)
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 当前环境是否支持 longtask 类型的 PerformanceObserver
|
|
6
|
+
*/
|
|
7
|
+
export declare function supportsLongTaskObserver(): boolean;
|
|
8
|
+
/**
|
|
9
|
+
* 是否支持 IntersectionObserver(曝光)
|
|
10
|
+
*/
|
|
11
|
+
export declare function supportsIntersectionObserver(): boolean;
|
|
12
|
+
/**
|
|
13
|
+
* 是否暴露 IndexedDB API
|
|
14
|
+
*/
|
|
15
|
+
export declare function supportsIndexedDBApi(): boolean;
|
|
16
|
+
//# sourceMappingURL=capabilities.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"capabilities.d.ts","sourceRoot":"","sources":["../../src/core/capabilities.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,wBAAgB,wBAAwB,IAAI,OAAO,CAYlD;AAED;;GAEG;AACH,wBAAgB,4BAA4B,IAAI,OAAO,CAEtD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAE9C"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { TrackerConfig } from '../types';
|
|
2
|
+
|
|
3
|
+
export interface ComponentInfoSanitizeLimits {
|
|
4
|
+
maxDepth: number;
|
|
5
|
+
maxKeys: number;
|
|
6
|
+
stripFunctions: boolean;
|
|
7
|
+
}
|
|
8
|
+
export declare function mergeSanitizeLimits(cfg: TrackerConfig['componentInfo'] | undefined): ComponentInfoSanitizeLimits;
|
|
9
|
+
export declare function sanitizeForComponentInfo(raw: Record<string, unknown> | undefined, limits: ComponentInfoSanitizeLimits): Record<string, unknown> | undefined;
|
|
10
|
+
//# sourceMappingURL=component-info-sanitize.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-info-sanitize.d.ts","sourceRoot":"","sources":["../../src/core/component-info-sanitize.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAG7C,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,wBAAgB,mBAAmB,CACjC,GAAG,EAAE,aAAa,CAAC,eAAe,CAAC,GAAG,SAAS,GAC9C,2BAA2B,CAM7B;AA8CD,wBAAgB,wBAAwB,CACtC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,EACxC,MAAM,EAAE,2BAA2B,GAClC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAerC"}
|
|
@@ -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;AAkC7C;;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"}
|
package/dist/core/utils.d.ts
CHANGED
|
@@ -50,6 +50,10 @@ export declare function isBrowser(): boolean;
|
|
|
50
50
|
* 判断是否为Node环境
|
|
51
51
|
*/
|
|
52
52
|
export declare function isNode(): boolean;
|
|
53
|
+
/**
|
|
54
|
+
* 归一化 className,兼容 HTMLElement 与 SVGElement
|
|
55
|
+
*/
|
|
56
|
+
export declare function normalizeClassName(className: unknown): string;
|
|
53
57
|
/**
|
|
54
58
|
* 获取元素路径
|
|
55
59
|
*/
|
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,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,
|
|
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,kBAAkB,CAAC,SAAS,EAAE,OAAO,GAAG,MAAM,CAwB7D;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,MAAM,CA6C9D;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,16 @@
|
|
|
1
|
+
import { FrameAdapter } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface AngularFrameAdapterOptions {
|
|
4
|
+
/** 从 @angular/core 注入的 getComponent,推荐 */
|
|
5
|
+
getComponent?: (element: Element) => unknown | null;
|
|
6
|
+
/** 数值越大越先执行,默认 79 */
|
|
7
|
+
priority?: number;
|
|
8
|
+
/** 沿 DOM 父链查找组件宿主的最大深度,默认 15 */
|
|
9
|
+
maxDomWalkDepth?: number;
|
|
10
|
+
/**
|
|
11
|
+
* 为 true 时,在未传 getComponent 时尝试 `globalThis.ng?.getComponent`(非保证,多见于开发构建)
|
|
12
|
+
*/
|
|
13
|
+
useFallbackNgProbe?: boolean;
|
|
14
|
+
}
|
|
15
|
+
export declare function createAngularFrameAdapter(options?: AngularFrameAdapterOptions): FrameAdapter;
|
|
16
|
+
//# sourceMappingURL=angular-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"angular-adapter.d.ts","sourceRoot":"","sources":["../../../src/extension/frame-adapters/angular-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAsC,MAAM,SAAS,CAAC;AAKhF,MAAM,WAAW,0BAA0B;IACzC,0CAA0C;IAC1C,YAAY,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,CAAC;IACpD,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gCAAgC;IAChC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;OAEG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAwCD,wBAAgB,yBAAyB,CAAC,OAAO,GAAE,0BAA+B,GAAG,YAAY,CA0ChG"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TrackerConfig, ComponentInfo, FrameAdapterContext } from '../../types';
|
|
2
|
+
|
|
3
|
+
export type ComponentResolver = (ctx: FrameAdapterContext) => ComponentInfo | undefined;
|
|
4
|
+
export declare function createUserAdapterResolver(config: TrackerConfig): ComponentResolver;
|
|
5
|
+
export declare function createBuiltinFrameworkResolver(config: TrackerConfig): ComponentResolver;
|
|
6
|
+
export declare function domDataResolver(ctx: FrameAdapterContext): ComponentInfo | undefined;
|
|
7
|
+
export declare function uiLibHeuristicsResolver(ctx: FrameAdapterContext): ComponentInfo | undefined;
|
|
8
|
+
export declare function resolveWithResolvers(ctx: FrameAdapterContext, resolvers: ComponentResolver[]): ComponentInfo | undefined;
|
|
9
|
+
//# sourceMappingURL=component-resolvers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"component-resolvers.d.ts","sourceRoot":"","sources":["../../../src/extension/frame-adapters/component-resolvers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAgB,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAO/F,MAAM,MAAM,iBAAiB,GAAG,CAAC,GAAG,EAAE,mBAAmB,KAAK,aAAa,GAAG,SAAS,CAAC;AAMxF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAiBlF;AAED,wBAAgB,8BAA8B,CAAC,MAAM,EAAE,aAAa,GAAG,iBAAiB,CAgCvF;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,mBAAmB,GAAG,aAAa,GAAG,SAAS,CAEnF;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,mBAAmB,GAAG,aAAa,GAAG,SAAS,CAE3F;AAED,wBAAgB,oBAAoB,CAClC,GAAG,EAAE,mBAAmB,EACxB,SAAS,EAAE,iBAAiB,EAAE,GAC7B,aAAa,GAAG,SAAS,CAS3B"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* DOM 事件目标归一化与父链遍历(React / Angular 适配器共用)
|
|
3
|
+
*/
|
|
4
|
+
export declare function normalizeToElement(target: EventTarget | null | undefined): Element | null;
|
|
5
|
+
export declare function walkParentElements(start: Element | null, maxDepth: number, visit: (el: Element, depth: number) => boolean | void): void;
|
|
6
|
+
//# sourceMappingURL=dom-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-context.d.ts","sourceRoot":"","sources":["../../../src/extension/frame-adapters/dom-context.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,GAAG,IAAI,CAWzF;AAED,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,OAAO,GAAG,IAAI,EACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,GAAG,IAAI,GACpD,IAAI,CAWN"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { ComponentInfo } from '../../types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 从 DOM 读取 data-track-name / data-track-component / data-track-props
|
|
5
|
+
*/
|
|
6
|
+
export declare function extractDomDataComponentInfo(element: Element | null): ComponentInfo | undefined;
|
|
7
|
+
//# sourceMappingURL=dom-data.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dom-data.d.ts","sourceRoot":"","sources":["../../../src/extension/frame-adapters/dom-data.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAI7C;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CA4B9F"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { FrameAdapter } from '../../types';
|
|
2
|
+
|
|
3
|
+
export interface ReactFrameAdapterOptions {
|
|
4
|
+
/** 数值越大越先执行,默认 80 */
|
|
5
|
+
priority?: number;
|
|
6
|
+
/** 沿 DOM 父链查找 Fiber 的最大深度,默认 15 */
|
|
7
|
+
maxDomWalkDepth?: number;
|
|
8
|
+
/** 沿 Fiber return 链的最大步数,默认 40 */
|
|
9
|
+
maxFiberHops?: number;
|
|
10
|
+
}
|
|
11
|
+
export declare function createReactFrameAdapter(options?: ReactFrameAdapterOptions): FrameAdapter;
|
|
12
|
+
//# sourceMappingURL=react-adapter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-adapter.d.ts","sourceRoot":"","sources":["../../../src/extension/frame-adapters/react-adapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,YAAY,EAAsC,MAAM,SAAS,CAAC;AAKhF,MAAM,WAAW,wBAAwB;IACvC,qBAAqB;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,mCAAmC;IACnC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kCAAkC;IAClC,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,wBAAgB,uBAAuB,CAAC,OAAO,GAAE,wBAA6B,GAAG,YAAY,CAgC5F"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 从 DOM 节点查找 React Fiber 引用(__reactFiber$*)
|
|
3
|
+
*/
|
|
4
|
+
export declare function findFiberKeyOnNode(node: Element): string | null;
|
|
5
|
+
export declare function getFiberFromElement(el: Element): unknown | null;
|
|
6
|
+
export declare function walkAncestorsForFiber(start: Element, maxDepth: number, getFiber: (el: Element) => unknown | null): unknown | null;
|
|
7
|
+
//# sourceMappingURL=react-fiber-dom.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-fiber-dom.d.ts","sourceRoot":"","sources":["../../../src/extension/frame-adapters/react-fiber-dom.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAkB/D;AAED,wBAAgB,mBAAmB,CAAC,EAAE,EAAE,OAAO,GAAG,OAAO,GAAG,IAAI,CAW/D;AAED,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,OAAO,EACd,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,CAAC,EAAE,EAAE,OAAO,KAAK,OAAO,GAAG,IAAI,GACxC,OAAO,GAAG,IAAI,CAYhB"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { ComponentInfo } from '../../types';
|
|
2
|
+
import { ComponentInfoSanitizeLimits } from '../../core/component-info-sanitize';
|
|
3
|
+
|
|
4
|
+
export type FiberLike = {
|
|
5
|
+
return?: unknown;
|
|
6
|
+
tag?: number;
|
|
7
|
+
type?: unknown;
|
|
8
|
+
elementType?: unknown;
|
|
9
|
+
memoizedProps?: unknown;
|
|
10
|
+
pendingProps?: unknown;
|
|
11
|
+
};
|
|
12
|
+
export declare function walkFiberReturnChain(startFiber: unknown, maxFiberHops: number): FiberLike | null;
|
|
13
|
+
export interface ResolveFiberOptions {
|
|
14
|
+
maxFiberHops: number;
|
|
15
|
+
limits: ComponentInfoSanitizeLimits;
|
|
16
|
+
}
|
|
17
|
+
export declare function resolveFiberToComponentInfo(startFiber: unknown, opts: ResolveFiberOptions): ComponentInfo | undefined;
|
|
18
|
+
export declare function resolveReactFiberFromDom(startElement: Element, maxDomWalkDepth: number, maxFiberHops: number, limits: ComponentInfoSanitizeLimits): ComponentInfo | undefined;
|
|
19
|
+
//# sourceMappingURL=react-fiber-internal.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-fiber-internal.d.ts","sourceRoot":"","sources":["../../../src/extension/frame-adapters/react-fiber-internal.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAIlF,MAAM,MAAM,SAAS,GAAG;IACtB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,CAAC;AA6CF,wBAAgB,oBAAoB,CAAC,UAAU,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI,CAYhG;AAcD,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,2BAA2B,CAAC;CACrC;AAED,wBAAgB,2BAA2B,CAAC,UAAU,EAAE,OAAO,EAAE,IAAI,EAAE,mBAAmB,GAAG,aAAa,GAAG,SAAS,CAqBrH;AAED,wBAAgB,wBAAwB,CACtC,YAAY,EAAE,OAAO,EACrB,eAAe,EAAE,MAAM,EACvB,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,2BAA2B,GAClC,aAAa,GAAG,SAAS,CAU3B"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import { TrackerConfig, ComponentInfo } from '../../types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 解析点击/输入等场景下的组件信息
|
|
5
|
+
*/
|
|
6
|
+
export declare function resolveClickComponentInfo(element: Element | null, event: Event | undefined, getConfig: () => TrackerConfig): ComponentInfo | undefined;
|
|
7
|
+
//# sourceMappingURL=resolve.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"resolve.d.ts","sourceRoot":"","sources":["../../../src/extension/frame-adapters/resolve.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,aAAa,EAAuB,MAAM,SAAS,CAAC;AASjF;;GAEG;AACH,wBAAgB,yBAAyB,CACvC,OAAO,EAAE,OAAO,GAAG,IAAI,EACvB,KAAK,EAAE,KAAK,GAAG,SAAS,EACxB,SAAS,EAAE,MAAM,aAAa,GAC7B,aAAa,GAAG,SAAS,CAkB3B"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ui-lib-heuristics.d.ts","sourceRoot":"","sources":["../../../src/extension/frame-adapters/ui-lib-heuristics.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAkC7C;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,GAAG,aAAa,GAAG,SAAS,CAO1F"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PerformanceEvent } from '../types/event';
|
|
2
|
+
import { AlertRule, PerformanceAlert } from '../types/performance';
|
|
3
|
+
|
|
4
|
+
interface PerformanceAlertEngineOptions {
|
|
5
|
+
onAlert: (alert: PerformanceAlert) => void;
|
|
6
|
+
}
|
|
7
|
+
declare class PerformanceAlertEngine {
|
|
8
|
+
private readonly options;
|
|
9
|
+
constructor(options: PerformanceAlertEngineOptions);
|
|
10
|
+
evaluate(event: PerformanceEvent, alertRules: AlertRule[], alerts: PerformanceAlert[]): PerformanceAlert[];
|
|
11
|
+
private resolveMetricValue;
|
|
12
|
+
private isTriggered;
|
|
13
|
+
private createAlert;
|
|
14
|
+
}
|
|
15
|
+
export default PerformanceAlertEngine;
|
|
16
|
+
//# sourceMappingURL=performance-alert-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-alert-engine.d.ts","sourceRoot":"","sources":["../../src/extension/performance-alert-engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAEvE,UAAU,6BAA6B;IACrC,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;CAC5C;AAED,cAAM,sBAAsB;IACd,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE,6BAA6B;IAEnE,QAAQ,CACN,KAAK,EAAE,gBAAgB,EACvB,UAAU,EAAE,SAAS,EAAE,EACvB,MAAM,EAAE,gBAAgB,EAAE,GACzB,gBAAgB,EAAE;IA0BrB,OAAO,CAAC,kBAAkB;IAa1B,OAAO,CAAC,WAAW;IAenB,OAAO,CAAC,WAAW;CAwBpB;AAED,eAAe,sBAAsB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-cleanup-scheduler.d.ts","sourceRoot":"","sources":["../../src/extension/performance-cleanup-scheduler.ts"],"names":[],"mappings":"AAAA,cAAM,2BAA2B;IAC/B,OAAO,CAAC,KAAK,CAAuB;IAEpC,KAAK,CAAC,SAAS,EAAE,MAAM,IAAI,GAAG,MAAM,GAAG,IAAI;IAY3C,IAAI,IAAI,IAAI;IAUZ,QAAQ,IAAI,MAAM,GAAG,IAAI;CAG1B;AAED,eAAe,2BAA2B,CAAC"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { PerformanceEvent } from '../types/event';
|
|
2
|
+
import { PerformanceMetrics } from '../types/performance';
|
|
3
|
+
|
|
4
|
+
declare class PerformanceMetricsAggregator {
|
|
5
|
+
build(events: PerformanceEvent[], startTime?: number, endTime?: number): PerformanceMetrics;
|
|
6
|
+
private buildResourceMetrics;
|
|
7
|
+
private buildLongTaskMetrics;
|
|
8
|
+
private average;
|
|
9
|
+
}
|
|
10
|
+
export default PerformanceMetricsAggregator;
|
|
11
|
+
//# sourceMappingURL=performance-metrics-aggregator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-metrics-aggregator.d.ts","sourceRoot":"","sources":["../../src/extension/performance-metrics-aggregator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAE9D,cAAM,4BAA4B;IAChC,KAAK,CACH,MAAM,EAAE,gBAAgB,EAAE,EAC1B,SAAS,CAAC,EAAE,MAAM,EAClB,OAAO,CAAC,EAAE,MAAM,GACf,kBAAkB;IA8CrB,OAAO,CAAC,oBAAoB;IAqD5B,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,OAAO;CAOhB;AAED,eAAe,4BAA4B,CAAC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { PerformanceAlert } from '../types/performance';
|
|
2
|
+
import { PerformanceEvent } from '../types/event';
|
|
3
|
+
|
|
4
|
+
interface PerformanceMonitorStorageData {
|
|
5
|
+
events: PerformanceEvent[];
|
|
6
|
+
alerts: PerformanceAlert[];
|
|
7
|
+
timestamp: number;
|
|
8
|
+
}
|
|
9
|
+
declare class PerformanceMonitorStorage {
|
|
10
|
+
private readonly storageKey;
|
|
11
|
+
constructor(storageKey: string);
|
|
12
|
+
save(events: PerformanceEvent[], alerts: PerformanceAlert[]): Promise<void>;
|
|
13
|
+
load(): Promise<Partial<PerformanceMonitorStorageData>>;
|
|
14
|
+
}
|
|
15
|
+
export default PerformanceMonitorStorage;
|
|
16
|
+
//# sourceMappingURL=performance-monitor-storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance-monitor-storage.d.ts","sourceRoot":"","sources":["../../src/extension/performance-monitor-storage.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAC5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEtD,UAAU,6BAA6B;IACrC,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,MAAM,EAAE,gBAAgB,EAAE,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,cAAM,yBAAyB;IACjB,OAAO,CAAC,QAAQ,CAAC,UAAU;gBAAV,UAAU,EAAE,MAAM;IAEzC,IAAI,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAa3E,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC,6BAA6B,CAAC,CAAC;CAY9D;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -11,7 +11,10 @@ export declare class PerformanceMonitor {
|
|
|
11
11
|
private storageKey;
|
|
12
12
|
private maxStoredEvents;
|
|
13
13
|
private retentionTime;
|
|
14
|
-
private
|
|
14
|
+
private readonly alertEngine;
|
|
15
|
+
private readonly metricsAggregator;
|
|
16
|
+
private readonly storage;
|
|
17
|
+
private readonly cleanupScheduler;
|
|
15
18
|
constructor(options?: PerformanceMonitorOptions);
|
|
16
19
|
/**
|
|
17
20
|
* 初始化
|
|
@@ -25,10 +28,6 @@ export declare class PerformanceMonitor {
|
|
|
25
28
|
* 检查告警规则
|
|
26
29
|
*/
|
|
27
30
|
private checkAlertRules;
|
|
28
|
-
/**
|
|
29
|
-
* 触发告警
|
|
30
|
-
*/
|
|
31
|
-
private triggerAlert;
|
|
32
31
|
/**
|
|
33
32
|
* 获取默认告警规则
|
|
34
33
|
*/
|
|
@@ -37,10 +36,6 @@ export declare class PerformanceMonitor {
|
|
|
37
36
|
* 获取性能指标
|
|
38
37
|
*/
|
|
39
38
|
getMetrics(startTime?: number, endTime?: number): PerformanceMetrics;
|
|
40
|
-
/**
|
|
41
|
-
* 计算平均值
|
|
42
|
-
*/
|
|
43
|
-
private average;
|
|
44
39
|
/**
|
|
45
40
|
* 生成性能报告
|
|
46
41
|
*/
|
|
@@ -1 +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;
|
|
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;AAO7B;;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,QAAQ,CAAC,WAAW,CAAyB;IACrD,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAA+B;IACjE,OAAO,CAAC,QAAQ,CAAC,OAAO,CAA4B;IACpD,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAA8B;gBAEnD,OAAO,GAAE,yBAA8B;IA0BnD;;OAEG;IACH,OAAO,CAAC,IAAI;IAkBZ;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAkB9B;;OAEG;IACH,OAAO,CAAC,eAAe;IAOvB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAgC5B;;OAEG;IACH,UAAU,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,kBAAkB;IAIpE;;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;IAI3B;;OAEG;YACW,eAAe;IAU7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAMzB;;OAEG;IACH,OAAO,CAAC,OAAO;IAcf;;OAEG;IACH,OAAO,IAAI,IAAI;CAOhB"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { TrackerInstance, TrackerPlugin } from '../types';
|
|
2
|
+
|
|
3
|
+
declare class PluginLifecycle {
|
|
4
|
+
canInstall(plugin: TrackerPlugin, installedPlugins: Map<string, TrackerPlugin>, trackerInstance: TrackerInstance | null): boolean;
|
|
5
|
+
install(plugin: TrackerPlugin, trackerInstance: TrackerInstance): boolean;
|
|
6
|
+
uninstall(pluginName: string, plugin: TrackerPlugin, trackerInstance: TrackerInstance | null): void;
|
|
7
|
+
}
|
|
8
|
+
export default PluginLifecycle;
|
|
9
|
+
//# sourceMappingURL=plugin-lifecycle.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"plugin-lifecycle.d.ts","sourceRoot":"","sources":["../../src/extension/plugin-lifecycle.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE9D,cAAM,eAAe;IACnB,UAAU,CACR,MAAM,EAAE,aAAa,EACrB,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,eAAe,EAAE,eAAe,GAAG,IAAI,GACtC,OAAO;IAcV,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,GAAG,OAAO;IAUzE,SAAS,CAAC,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,eAAe,EAAE,eAAe,GAAG,IAAI,GAAG,IAAI;CAWpG;AAED,eAAe,eAAe,CAAC"}
|
|
@@ -1,8 +1,11 @@
|
|
|
1
1
|
import { TrackerPlugin, TrackerInstance } from '../types';
|
|
2
|
+
import { default as PluginLifecycle } from './plugin-lifecycle';
|
|
2
3
|
|
|
3
4
|
declare class PluginManager {
|
|
4
5
|
private plugins;
|
|
5
6
|
private trackerInstance;
|
|
7
|
+
private lifecycle;
|
|
8
|
+
constructor(lifecycle?: PluginLifecycle);
|
|
6
9
|
/**
|
|
7
10
|
* 设置Tracker实例
|
|
8
11
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../src/extension/plugin-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;
|
|
1
|
+
{"version":3,"file":"plugin-manager.d.ts","sourceRoot":"","sources":["../../src/extension/plugin-manager.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC9D,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAEjD,cAAM,aAAa;IACjB,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,SAAS,CAAkB;gBAEvB,SAAS,GAAE,eAAuC;IAI9D;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAInD;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAUhC;;OAEG;IACH,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAU/B;;OAEG;IACH,GAAG,CAAC,UAAU,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS;IAIlD;;OAEG;IACH,MAAM,IAAI,aAAa,EAAE;IAIzB;;OAEG;IACH,KAAK,IAAI,IAAI;CAKd;AAED,eAAe,aAAa,CAAC"}
|