@feiyangdefeng/sdk 1.0.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.
Files changed (156) hide show
  1. package/README.md +24 -8
  2. package/dist/collector/auto-tracker.d.ts +6 -0
  3. package/dist/collector/auto-tracker.d.ts.map +1 -1
  4. package/dist/collector/click-event-dispatcher.d.ts +8 -0
  5. package/dist/collector/click-event-dispatcher.d.ts.map +1 -0
  6. package/dist/collector/click-event-factory.d.ts +23 -0
  7. package/dist/collector/click-event-factory.d.ts.map +1 -0
  8. package/dist/collector/click-tracker.d.ts +14 -5
  9. package/dist/collector/click-tracker.d.ts.map +1 -1
  10. package/dist/collector/error-tracker.d.ts.map +1 -1
  11. package/dist/collector/exposure-tracker.d.ts.map +1 -1
  12. package/dist/collector/input-tracker.d.ts +14 -1
  13. package/dist/collector/input-tracker.d.ts.map +1 -1
  14. package/dist/collector/performance-tracker.d.ts.map +1 -1
  15. package/dist/collector/touch-interaction-tracker.d.ts +20 -0
  16. package/dist/collector/touch-interaction-tracker.d.ts.map +1 -0
  17. package/dist/collector/view-tracker.d.ts.map +1 -1
  18. package/dist/core/capabilities.d.ts +16 -0
  19. package/dist/core/capabilities.d.ts.map +1 -0
  20. package/dist/core/component-info-sanitize.d.ts +10 -0
  21. package/dist/core/component-info-sanitize.d.ts.map +1 -0
  22. package/dist/core/config.d.ts.map +1 -1
  23. package/dist/core/panel-manager.d.ts +27 -0
  24. package/dist/core/panel-manager.d.ts.map +1 -0
  25. package/dist/core/request.d.ts +3 -0
  26. package/dist/core/request.d.ts.map +1 -1
  27. package/dist/core/utils.d.ts +9 -0
  28. package/dist/core/utils.d.ts.map +1 -1
  29. package/dist/core/vue-utils.d.ts +58 -0
  30. package/dist/core/vue-utils.d.ts.map +1 -0
  31. package/dist/extension/frame-adapters/angular-adapter.d.ts +16 -0
  32. package/dist/extension/frame-adapters/angular-adapter.d.ts.map +1 -0
  33. package/dist/extension/frame-adapters/component-resolvers.d.ts +9 -0
  34. package/dist/extension/frame-adapters/component-resolvers.d.ts.map +1 -0
  35. package/dist/extension/frame-adapters/dom-context.d.ts +6 -0
  36. package/dist/extension/frame-adapters/dom-context.d.ts.map +1 -0
  37. package/dist/extension/frame-adapters/dom-data.d.ts +7 -0
  38. package/dist/extension/frame-adapters/dom-data.d.ts.map +1 -0
  39. package/dist/extension/frame-adapters/react-adapter.d.ts +12 -0
  40. package/dist/extension/frame-adapters/react-adapter.d.ts.map +1 -0
  41. package/dist/extension/frame-adapters/react-fiber-dom.d.ts +7 -0
  42. package/dist/extension/frame-adapters/react-fiber-dom.d.ts.map +1 -0
  43. package/dist/extension/frame-adapters/react-fiber-internal.d.ts +19 -0
  44. package/dist/extension/frame-adapters/react-fiber-internal.d.ts.map +1 -0
  45. package/dist/extension/frame-adapters/resolve.d.ts +7 -0
  46. package/dist/extension/frame-adapters/resolve.d.ts.map +1 -0
  47. package/dist/extension/frame-adapters/ui-lib-heuristics.d.ts +7 -0
  48. package/dist/extension/frame-adapters/ui-lib-heuristics.d.ts.map +1 -0
  49. package/dist/extension/naive-ui-tracker.d.ts +20 -0
  50. package/dist/extension/naive-ui-tracker.d.ts.map +1 -0
  51. package/dist/extension/performance-alert-engine.d.ts +16 -0
  52. package/dist/extension/performance-alert-engine.d.ts.map +1 -0
  53. package/dist/extension/performance-cleanup-scheduler.d.ts +8 -0
  54. package/dist/extension/performance-cleanup-scheduler.d.ts.map +1 -0
  55. package/dist/extension/performance-metrics-aggregator.d.ts +11 -0
  56. package/dist/extension/performance-metrics-aggregator.d.ts.map +1 -0
  57. package/dist/extension/performance-monitor-storage.d.ts +16 -0
  58. package/dist/extension/performance-monitor-storage.d.ts.map +1 -0
  59. package/dist/extension/performance-monitor.d.ts +88 -0
  60. package/dist/extension/performance-monitor.d.ts.map +1 -0
  61. package/dist/extension/plugin-lifecycle.d.ts +9 -0
  62. package/dist/extension/plugin-lifecycle.d.ts.map +1 -0
  63. package/dist/extension/plugin-manager.d.ts +3 -0
  64. package/dist/extension/plugin-manager.d.ts.map +1 -1
  65. package/dist/extension/session-replay-budget.d.ts +20 -0
  66. package/dist/extension/session-replay-budget.d.ts.map +1 -0
  67. package/dist/extension/session-replay-interaction-lifecycle.d.ts +23 -0
  68. package/dist/extension/session-replay-interaction-lifecycle.d.ts.map +1 -0
  69. package/dist/extension/session-replay-store.d.ts +25 -0
  70. package/dist/extension/session-replay-store.d.ts.map +1 -0
  71. package/dist/extension/session-replay.d.ts +17 -29
  72. package/dist/extension/session-replay.d.ts.map +1 -1
  73. package/dist/extension/user-action-sequence.d.ts +151 -0
  74. package/dist/extension/user-action-sequence.d.ts.map +1 -0
  75. package/dist/extension/vue-integration.d.ts +28 -0
  76. package/dist/extension/vue-integration.d.ts.map +1 -0
  77. package/dist/extension/vue-plugin.d.ts +66 -0
  78. package/dist/extension/vue-plugin.d.ts.map +1 -0
  79. package/dist/index.d.ts +21 -1
  80. package/dist/index.d.ts.map +1 -1
  81. package/dist/index.es.js +10069 -6046
  82. package/dist/index.es.js.map +1 -1
  83. package/dist/index.iife.js +2 -2
  84. package/dist/index.iife.js.map +1 -1
  85. package/dist/index.umd.js +2 -2
  86. package/dist/index.umd.js.map +1 -1
  87. package/dist/panels/offline-storage-viewer.html.d.ts +6 -0
  88. package/dist/panels/offline-storage-viewer.html.d.ts.map +1 -0
  89. package/dist/panels/performance-panel.html.d.ts +6 -0
  90. package/dist/panels/performance-panel.html.d.ts.map +1 -0
  91. package/dist/processor/data-processor.d.ts +3 -1
  92. package/dist/processor/data-processor.d.ts.map +1 -1
  93. package/dist/processor/deduplicator.d.ts.map +1 -1
  94. package/dist/processor/pipeline-context.d.ts +8 -0
  95. package/dist/processor/pipeline-context.d.ts.map +1 -0
  96. package/dist/processor/processor-pipeline.d.ts +11 -0
  97. package/dist/processor/processor-pipeline.d.ts.map +1 -0
  98. package/dist/processor/processor-stage.d.ts +8 -0
  99. package/dist/processor/processor-stage.d.ts.map +1 -0
  100. package/dist/processor/stages/compress-stage.d.ts +12 -0
  101. package/dist/processor/stages/compress-stage.d.ts.map +1 -0
  102. package/dist/processor/stages/deduplicate-stage.d.ts +12 -0
  103. package/dist/processor/stages/deduplicate-stage.d.ts.map +1 -0
  104. package/dist/processor/stages/sample-stage.d.ts +12 -0
  105. package/dist/processor/stages/sample-stage.d.ts.map +1 -0
  106. package/dist/runtime/tracker-config-coordinator.d.ts +22 -0
  107. package/dist/runtime/tracker-config-coordinator.d.ts.map +1 -0
  108. package/dist/runtime/tracker-event-bus-bridge.d.ts +20 -0
  109. package/dist/runtime/tracker-event-bus-bridge.d.ts.map +1 -0
  110. package/dist/runtime/tracker-event-dispatcher.d.ts +31 -0
  111. package/dist/runtime/tracker-event-dispatcher.d.ts.map +1 -0
  112. package/dist/runtime/tracker-event-enricher.d.ts +14 -0
  113. package/dist/runtime/tracker-event-enricher.d.ts.map +1 -0
  114. package/dist/runtime/tracker-feature-registry.d.ts +26 -0
  115. package/dist/runtime/tracker-feature-registry.d.ts.map +1 -0
  116. package/dist/runtime/tracker-plugin-context.d.ts +11 -0
  117. package/dist/runtime/tracker-plugin-context.d.ts.map +1 -0
  118. package/dist/tracker.d.ts +29 -12
  119. package/dist/tracker.d.ts.map +1 -1
  120. package/dist/transport/batch-sender-state.d.ts +3 -0
  121. package/dist/transport/batch-sender-state.d.ts.map +1 -0
  122. package/dist/transport/batch-sender.d.ts +24 -12
  123. package/dist/transport/batch-sender.d.ts.map +1 -1
  124. package/dist/transport/delivery-coordinator.d.ts +18 -0
  125. package/dist/transport/delivery-coordinator.d.ts.map +1 -0
  126. package/dist/transport/event-queue.d.ts +20 -0
  127. package/dist/transport/event-queue.d.ts.map +1 -0
  128. package/dist/transport/flush-scheduler.d.ts +19 -0
  129. package/dist/transport/flush-scheduler.d.ts.map +1 -0
  130. package/dist/transport/offline-recovery-manager.d.ts +17 -0
  131. package/dist/transport/offline-recovery-manager.d.ts.map +1 -0
  132. package/dist/transport/offline-storage.d.ts +1 -1
  133. package/dist/transport/offline-storage.d.ts.map +1 -1
  134. package/dist/transport/retry-handler.d.ts.map +1 -1
  135. package/dist/transport/sender.d.ts +8 -1
  136. package/dist/transport/sender.d.ts.map +1 -1
  137. package/docs/ARCHITECTURE_MAP.md +476 -0
  138. package/docs/BROWSER_SUPPORT.md +15 -0
  139. package/docs/ENGINEERING_OVERVIEW.md +154 -0
  140. package/docs/ERROR_SCENARIO_EVALUATION.md +124 -0
  141. package/docs/FRAME_ADAPTERS.md +70 -0
  142. package/docs/FRAME_ADAPTERS_GUIDE.md +195 -0
  143. package/docs/MINIPROGRAM.md +11 -0
  144. package/docs/OPTIMIZATION_PLAN.md +123 -0
  145. package/docs/PERFORMANCE_BASELINE.md +181 -0
  146. package/docs/README.md +30 -0
  147. package/docs/UI_LIB_COMPAT.md +31 -0
  148. package/docs/USAGE.md +4064 -0
  149. package/docs/VIEW_LOCAL_CACHE_AND_PROFILE.md +252 -0
  150. package/docs/VUE3_INTEGRATION.md +528 -0
  151. package/examples/README.md +54 -0
  152. package/examples/reference/user-action-profile.ts +446 -0
  153. package/examples/reference/user-profile-backend.ts +397 -0
  154. package/examples/reference/vue3-naive-ui-example.vue +211 -0
  155. package/package.json +39 -8
  156. package/tests/README.md +203 -0
package/README.md CHANGED
@@ -20,12 +20,14 @@
20
20
  ## 安装
21
21
 
22
22
  ```bash
23
- pnpm add @tracker/sdk
23
+ pnpm add @feiyangdefeng/sdk
24
24
  ```
25
25
 
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
  ## 快速开始
@@ -33,7 +35,7 @@ pnpm add @tracker/sdk
33
35
  ### 基础使用
34
36
 
35
37
  ```typescript
36
- import Tracker from '@tracker/sdk';
38
+ import Tracker from '@feiyangdefeng/sdk';
37
39
 
38
40
  // 方式1: 设置服务器地址(推荐)
39
41
  const tracker = new Tracker({
@@ -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?)
@@ -188,7 +202,7 @@ tracker.use(plugin);
188
202
  **网络请求拦截插件**:
189
203
 
190
204
  ```typescript
191
- import Tracker, { networkInterceptorPlugin, createNetworkInterceptorPlugin } from '@tracker/sdk';
205
+ import Tracker, { networkInterceptorPlugin, createNetworkInterceptorPlugin } from '@feiyangdefeng/sdk';
192
206
 
193
207
  const tracker = new Tracker({
194
208
  appId: 'my-app',
@@ -299,7 +313,7 @@ const tracker = new Tracker({
299
313
  ## 插件开发
300
314
 
301
315
  ```typescript
302
- import type { TrackerPlugin } from '@tracker/sdk';
316
+ import type { TrackerPlugin } from '@feiyangdefeng/sdk';
303
317
 
304
318
  const myPlugin: TrackerPlugin = {
305
319
  name: 'my-plugin',
@@ -333,10 +347,10 @@ tracker.use(myPlugin);
333
347
 
334
348
  ## Node.js支持
335
349
 
336
- SDK支持在Node.js环境中使用:
350
+ SDK支持在Node.js环境中使用(需要 Node.js 18+,因为使用了原生 fetch API):
337
351
 
338
352
  ```typescript
339
- import Tracker from '@tracker/sdk';
353
+ import Tracker from '@feiyangdefeng/sdk';
340
354
 
341
355
  const tracker = new Tracker({
342
356
  appId: 'your-app-id',
@@ -348,6 +362,8 @@ tracker.track('server-event', {
348
362
  });
349
363
  ```
350
364
 
365
+ **注意**: SDK 使用 Node.js 18+ 原生支持的 `fetch` API,无需安装额外的依赖(如 `node-fetch`)。
366
+
351
367
  ## 开发
352
368
 
353
369
  ```bash
@@ -374,7 +390,7 @@ pnpm format
374
390
 
375
391
  - **构建工具**: Vite
376
392
  - **包管理器**: pnpm
377
- - **Node版本**: 19+
393
+ - **Node版本**: 18+(使用原生 fetch API)
378
394
  - **语言**: TypeScript
379
395
  - **测试**: Vitest
380
396
 
@@ -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';
@@ -19,6 +20,11 @@ declare class AutoTracker {
19
20
  enableInput?: boolean;
20
21
  clickDebounceTime?: number;
21
22
  inputDebounceTime?: number;
23
+ enableVueTracking?: boolean;
24
+ enableNaiveUITracking?: boolean;
25
+ extractComponentProps?: boolean;
26
+ extractComponentValue?: boolean;
27
+ getConfig?: () => TrackerConfig;
22
28
  }): void;
23
29
  /**
24
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;QAAE,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,OAAO,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAAC,iBAAiB,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IA4BxJ;;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"}
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,13 +6,22 @@ declare class ClickTracker {
6
6
  private touchEndHandler;
7
7
  private debounceTime;
8
8
  private touchTimeout;
9
- private lastTouch;
10
- private readonly TOUCH_CLICK_THRESHOLD;
11
- private readonly TOUCH_DISTANCE_THRESHOLD;
9
+ private configGetter;
10
+ private eventFactory;
11
+ private eventDispatcher;
12
+ private touchInteractionTracker;
12
13
  /**
13
14
  * 初始化
15
+ * @param debounceTime 点击防抖毫秒(可选)
16
+ * @param options 可选;若含 `getConfig`,则用于解析组件信息;不传则仍可上报点击,无组件增强信息
14
17
  */
15
- init(debounceTime?: number): void;
18
+ init(debounceTime?: number, options?: {
19
+ enableVueTracking?: boolean;
20
+ enableNaiveUITracking?: boolean;
21
+ extractComponentProps?: boolean;
22
+ extractComponentValue?: boolean;
23
+ getConfig?: () => TrackerConfig;
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;AAI1C,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;IAE/C;;OAEG;IACH,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI;IAoCjC;;OAEG;IACH,OAAO,CAAC,WAAW;IAuDnB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAkD/B;;OAEG;IACH,OAAO,CAAC,WAAW;IAuDnB;;OAEG;IACH,aAAa,CAAC,KAAK,EAAE,UAAU,GAAG,UAAU,GAAG,IAAI;IA2BnD;;OAEG;IACH,OAAO,IAAI,IAAI;CAuBhB;AAED,eAAe,YAAY,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":"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;IAgC1B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA8C3B;;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
+ {"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;IAqB1B;;;;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
+ {"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,21 @@ declare class InputTracker {
5
7
  private selectDebounceTime;
6
8
  private skipEmptyInput;
7
9
  private sensitiveKeywords;
10
+ private configGetter;
8
11
  /**
9
12
  * 初始化
10
13
  */
11
- init(debounceTime?: number, skipEmptyInput?: boolean): void;
14
+ init(debounceTime?: number, skipEmptyInput?: boolean, options?: {
15
+ enableVueTracking?: boolean;
16
+ enableNaiveUITracking?: boolean;
17
+ extractComponentProps?: boolean;
18
+ extractComponentValue?: boolean;
19
+ getConfig?: () => TrackerConfig;
20
+ }): void;
21
+ /**
22
+ * 合并组件信息中的 value 到 input 事件(与原先 Vue/Naive 分支行为一致)
23
+ */
24
+ private mergeComponentValueIntoInput;
12
25
  /**
13
26
  * 处理 input 事件
14
27
  */
@@ -1 +1 @@
1
- {"version":3,"file":"input-tracker.d.ts","sourceRoot":"","sources":["../../src/collector/input-tracker.ts"],"names":[],"mappings":"AAOA,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;IAE1G;;OAEG;IACH,IAAI,CAAC,YAAY,CAAC,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,OAAO,GAAG,IAAI;IAgC3D;;OAEG;IACH,OAAO,CAAC,WAAW;IAmGnB;;OAEG;IACH,OAAO,CAAC,YAAY;IAmFpB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA0CxB;;OAEG;IACH,OAAO,IAAI,IAAI;CAWhB;AAED,eAAe,YAAY,CAAC"}
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;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;IAoD/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
+ {"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;IA6E9B;;OAEG;IACH,OAAO,CAAC,cAAc;IAyEtB;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAgE1B;;OAEG;IACH,OAAO,IAAI,IAAI;CA8ChB;AAED,eAAe,WAAW,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;AA0B7C;;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"}
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"}
@@ -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"}
@@ -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;AAkKH;;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;AA6GD;;GAEG;AACH,wBAAsB,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,eAAe,CAAC,CAWjG;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"}
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"}
@@ -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
  /**
@@ -45,6 +50,10 @@ export declare function isBrowser(): boolean;
45
50
  * 判断是否为Node环境
46
51
  */
47
52
  export declare function isNode(): boolean;
53
+ /**
54
+ * 归一化 className,兼容 HTMLElement 与 SVGElement
55
+ */
56
+ export declare function normalizeClassName(className: unknown): string;
48
57
  /**
49
58
  * 获取元素路径
50
59
  */
@@ -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,CAkBpC;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,MAAM,CAkBrC;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,CAKtC;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;;GAEG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,GAAG,CAAC,CAwBtC;AAED;;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"}
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,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,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"}