@feiyangdefeng/sdk 1.0.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/LICENSE +21 -0
- package/README.md +389 -0
- package/dist/collector/auto-tracker.d.ts +45 -0
- package/dist/collector/auto-tracker.d.ts.map +1 -0
- package/dist/collector/click-tracker.d.ts +38 -0
- package/dist/collector/click-tracker.d.ts.map +1 -0
- package/dist/collector/custom-tracker.d.ts +10 -0
- package/dist/collector/custom-tracker.d.ts.map +1 -0
- package/dist/collector/error-tracker.d.ts +43 -0
- package/dist/collector/error-tracker.d.ts.map +1 -0
- package/dist/collector/exposure-tracker.d.ts +60 -0
- package/dist/collector/exposure-tracker.d.ts.map +1 -0
- package/dist/collector/input-tracker.d.ts +30 -0
- package/dist/collector/input-tracker.d.ts.map +1 -0
- package/dist/collector/performance-tracker.d.ts +48 -0
- package/dist/collector/performance-tracker.d.ts.map +1 -0
- package/dist/collector/view-tracker.d.ts +38 -0
- package/dist/collector/view-tracker.d.ts.map +1 -0
- package/dist/core/config.d.ts +27 -0
- package/dist/core/config.d.ts.map +1 -0
- package/dist/core/event-bus.d.ts +30 -0
- package/dist/core/event-bus.d.ts.map +1 -0
- package/dist/core/request.d.ts +35 -0
- package/dist/core/request.d.ts.map +1 -0
- package/dist/core/storage.d.ts +67 -0
- package/dist/core/storage.d.ts.map +1 -0
- package/dist/core/utils.d.ts +61 -0
- package/dist/core/utils.d.ts.map +1 -0
- package/dist/extension/behavior-analysis.d.ts +41 -0
- package/dist/extension/behavior-analysis.d.ts.map +1 -0
- package/dist/extension/network-interceptor.d.ts +32 -0
- package/dist/extension/network-interceptor.d.ts.map +1 -0
- package/dist/extension/plugin-manager.d.ts +32 -0
- package/dist/extension/plugin-manager.d.ts.map +1 -0
- package/dist/extension/session-replay.d.ts +80 -0
- package/dist/extension/session-replay.d.ts.map +1 -0
- package/dist/index.d.ts +9 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.es.js +8443 -0
- package/dist/index.es.js.map +1 -0
- package/dist/index.iife.js +3 -0
- package/dist/index.iife.js.map +1 -0
- package/dist/index.umd.js +3 -0
- package/dist/index.umd.js.map +1 -0
- package/dist/processor/compressor.d.ts +16 -0
- package/dist/processor/compressor.d.ts.map +1 -0
- package/dist/processor/data-processor.d.ts +36 -0
- package/dist/processor/data-processor.d.ts.map +1 -0
- package/dist/processor/deduplicator.d.ts +29 -0
- package/dist/processor/deduplicator.d.ts.map +1 -0
- package/dist/processor/sampler.d.ts +16 -0
- package/dist/processor/sampler.d.ts.map +1 -0
- package/dist/tracker.d.ts +111 -0
- package/dist/tracker.d.ts.map +1 -0
- package/dist/transport/batch-sender.d.ts +80 -0
- package/dist/transport/batch-sender.d.ts.map +1 -0
- package/dist/transport/offline-storage.d.ts +60 -0
- package/dist/transport/offline-storage.d.ts.map +1 -0
- package/dist/transport/retry-handler.d.ts +29 -0
- package/dist/transport/retry-handler.d.ts.map +1 -0
- package/dist/transport/sender.d.ts +27 -0
- package/dist/transport/sender.d.ts.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import { PerformanceEvent } from '../types';
|
|
2
|
+
|
|
3
|
+
declare class PerformanceTracker {
|
|
4
|
+
private observer;
|
|
5
|
+
private navigationTimingCollected;
|
|
6
|
+
private resourceCache;
|
|
7
|
+
private longTaskCache;
|
|
8
|
+
private resourceDebounceTime;
|
|
9
|
+
private longTaskDebounceTime;
|
|
10
|
+
/**
|
|
11
|
+
* 初始化
|
|
12
|
+
*/
|
|
13
|
+
init(): void;
|
|
14
|
+
/**
|
|
15
|
+
* 采集Navigation Timing数据
|
|
16
|
+
*/
|
|
17
|
+
private collectNavigationTiming;
|
|
18
|
+
/**
|
|
19
|
+
* 采集Resource Timing数据
|
|
20
|
+
*/
|
|
21
|
+
private collectResourceTiming;
|
|
22
|
+
/**
|
|
23
|
+
* 监控长任务
|
|
24
|
+
*/
|
|
25
|
+
private observeLongTasks;
|
|
26
|
+
/**
|
|
27
|
+
* 清理过期的资源缓存
|
|
28
|
+
*/
|
|
29
|
+
private cleanExpiredResourceCache;
|
|
30
|
+
/**
|
|
31
|
+
* 清理过期的长任务缓存
|
|
32
|
+
*/
|
|
33
|
+
private cleanExpiredLongTaskCache;
|
|
34
|
+
/**
|
|
35
|
+
* 触发性能事件
|
|
36
|
+
*/
|
|
37
|
+
private emitPerformance;
|
|
38
|
+
/**
|
|
39
|
+
* 手动采集性能指标
|
|
40
|
+
*/
|
|
41
|
+
collectMetrics(): PerformanceEvent | null;
|
|
42
|
+
/**
|
|
43
|
+
* 销毁
|
|
44
|
+
*/
|
|
45
|
+
destroy(): void;
|
|
46
|
+
}
|
|
47
|
+
export default PerformanceTracker;
|
|
48
|
+
//# sourceMappingURL=performance-tracker.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { PageViewEvent } from '../types';
|
|
2
|
+
|
|
3
|
+
declare class ViewTracker {
|
|
4
|
+
private startTime;
|
|
5
|
+
private currentUrl;
|
|
6
|
+
private popstateHandler;
|
|
7
|
+
private visibilityChangeHandler;
|
|
8
|
+
private beforeUnloadHandler;
|
|
9
|
+
private isTracking;
|
|
10
|
+
private pendingUrlCheck;
|
|
11
|
+
private lastPageViewTime;
|
|
12
|
+
private minPageViewInterval;
|
|
13
|
+
private hiddenStartTime;
|
|
14
|
+
private totalHiddenTime;
|
|
15
|
+
private isVisible;
|
|
16
|
+
/**
|
|
17
|
+
* 初始化
|
|
18
|
+
*/
|
|
19
|
+
init(): void;
|
|
20
|
+
/**
|
|
21
|
+
* 追踪页面浏览
|
|
22
|
+
*/
|
|
23
|
+
trackPageView(): PageViewEvent;
|
|
24
|
+
/**
|
|
25
|
+
* 设置SPA路由监听
|
|
26
|
+
*/
|
|
27
|
+
private setupSPARouter;
|
|
28
|
+
/**
|
|
29
|
+
* 设置页面生命周期事件监听
|
|
30
|
+
*/
|
|
31
|
+
private setupPageLifecycle;
|
|
32
|
+
/**
|
|
33
|
+
* 销毁
|
|
34
|
+
*/
|
|
35
|
+
destroy(): void;
|
|
36
|
+
}
|
|
37
|
+
export default ViewTracker;
|
|
38
|
+
//# sourceMappingURL=view-tracker.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import { TrackerConfig } from '../types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 配置管理器
|
|
5
|
+
*/
|
|
6
|
+
declare class ConfigManager {
|
|
7
|
+
private config;
|
|
8
|
+
constructor(config: TrackerConfig);
|
|
9
|
+
/**
|
|
10
|
+
* 获取配置
|
|
11
|
+
*/
|
|
12
|
+
get<K extends keyof TrackerConfig>(key: K): TrackerConfig[K];
|
|
13
|
+
/**
|
|
14
|
+
* 获取所有配置
|
|
15
|
+
*/
|
|
16
|
+
getAll(): TrackerConfig;
|
|
17
|
+
/**
|
|
18
|
+
* 更新配置
|
|
19
|
+
*/
|
|
20
|
+
set<K extends keyof TrackerConfig>(key: K, value: TrackerConfig[K]): void;
|
|
21
|
+
/**
|
|
22
|
+
* 批量更新配置
|
|
23
|
+
*/
|
|
24
|
+
update(updates: Partial<TrackerConfig>): void;
|
|
25
|
+
}
|
|
26
|
+
export default ConfigManager;
|
|
27
|
+
//# sourceMappingURL=config.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 事件总线
|
|
3
|
+
*/
|
|
4
|
+
type EventCallback = (...args: unknown[]) => void;
|
|
5
|
+
declare class EventBus {
|
|
6
|
+
private events;
|
|
7
|
+
/**
|
|
8
|
+
* 订阅事件
|
|
9
|
+
*/
|
|
10
|
+
on(event: string, callback: EventCallback): void;
|
|
11
|
+
/**
|
|
12
|
+
* 取消订阅
|
|
13
|
+
*/
|
|
14
|
+
off(event: string, callback?: EventCallback): void;
|
|
15
|
+
/**
|
|
16
|
+
* 触发事件
|
|
17
|
+
*/
|
|
18
|
+
emit(event: string, ...args: unknown[]): void;
|
|
19
|
+
/**
|
|
20
|
+
* 一次性订阅
|
|
21
|
+
*/
|
|
22
|
+
once(event: string, callback: EventCallback): void;
|
|
23
|
+
/**
|
|
24
|
+
* 清除所有事件
|
|
25
|
+
*/
|
|
26
|
+
clear(): void;
|
|
27
|
+
}
|
|
28
|
+
export declare const eventBus: EventBus;
|
|
29
|
+
export {};
|
|
30
|
+
//# sourceMappingURL=event-bus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"event-bus.d.ts","sourceRoot":"","sources":["../../src/core/event-bus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,KAAK,aAAa,GAAG,CAAC,GAAG,IAAI,EAAE,OAAO,EAAE,KAAK,IAAI,CAAC;AAElD,cAAM,QAAQ;IACZ,OAAO,CAAC,MAAM,CAA2C;IAEzD;;OAEG;IACH,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAOhD;;OAEG;IACH,GAAG,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,aAAa,GAAG,IAAI;IAiBlD;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAe7C;;OAEG;IACH,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,aAAa,GAAG,IAAI;IAQlD;;OAEG;IACH,KAAK,IAAI,IAAI;CAGd;AAED,eAAO,MAAM,QAAQ,UAAiB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 网络请求封装
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 请求选项
|
|
6
|
+
*/
|
|
7
|
+
interface RequestOptions {
|
|
8
|
+
method?: 'GET' | 'POST' | 'PUT' | 'DELETE';
|
|
9
|
+
headers?: Record<string, string>;
|
|
10
|
+
body?: string | FormData;
|
|
11
|
+
timeout?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 请求响应
|
|
15
|
+
*/
|
|
16
|
+
interface RequestResponse {
|
|
17
|
+
ok: boolean;
|
|
18
|
+
status: number;
|
|
19
|
+
statusText: string;
|
|
20
|
+
data: unknown;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 统一请求接口
|
|
24
|
+
*/
|
|
25
|
+
export declare function request(url: string, options?: RequestOptions): Promise<RequestResponse>;
|
|
26
|
+
/**
|
|
27
|
+
* GET请求
|
|
28
|
+
*/
|
|
29
|
+
export declare function get(url: string, options?: Omit<RequestOptions, 'method' | 'body'>): Promise<RequestResponse>;
|
|
30
|
+
/**
|
|
31
|
+
* POST请求
|
|
32
|
+
*/
|
|
33
|
+
export declare function post(url: string, data: unknown, options?: Omit<RequestOptions, 'method' | 'body'>): Promise<RequestResponse>;
|
|
34
|
+
export {};
|
|
35
|
+
//# sourceMappingURL=request.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 存储管理
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 存储接口
|
|
6
|
+
*/
|
|
7
|
+
interface StorageInterface {
|
|
8
|
+
getItem(key: string): string | null;
|
|
9
|
+
setItem(key: string, value: string): void;
|
|
10
|
+
removeItem(key: string): void;
|
|
11
|
+
clear(): void;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* LocalStorage存储
|
|
15
|
+
*/
|
|
16
|
+
declare class LocalStorage implements StorageInterface {
|
|
17
|
+
private storage;
|
|
18
|
+
constructor();
|
|
19
|
+
getItem(key: string): string | null;
|
|
20
|
+
setItem(key: string, value: string): void;
|
|
21
|
+
removeItem(key: string): void;
|
|
22
|
+
clear(): void;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* SessionStorage存储
|
|
26
|
+
*/
|
|
27
|
+
declare class SessionStorage implements StorageInterface {
|
|
28
|
+
private storage;
|
|
29
|
+
constructor();
|
|
30
|
+
getItem(key: string): string | null;
|
|
31
|
+
setItem(key: string, value: string): void;
|
|
32
|
+
removeItem(key: string): void;
|
|
33
|
+
clear(): void;
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* 内存存储(降级方案)
|
|
37
|
+
*/
|
|
38
|
+
declare class MemoryStorage implements StorageInterface {
|
|
39
|
+
private data;
|
|
40
|
+
getItem(key: string): string | null;
|
|
41
|
+
setItem(key: string, value: string): void;
|
|
42
|
+
removeItem(key: string): void;
|
|
43
|
+
clear(): void;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* IndexedDB存储(用于离线存储大量数据)
|
|
47
|
+
*/
|
|
48
|
+
declare class IndexedDBStorage {
|
|
49
|
+
private dbName;
|
|
50
|
+
private storeName;
|
|
51
|
+
private db;
|
|
52
|
+
private initPromise;
|
|
53
|
+
init(): Promise<boolean>;
|
|
54
|
+
getItem(key: string): Promise<string | null>;
|
|
55
|
+
setItem(key: string, value: string): Promise<boolean>;
|
|
56
|
+
removeItem(key: string): Promise<boolean>;
|
|
57
|
+
getAll(): Promise<Array<{
|
|
58
|
+
key: string;
|
|
59
|
+
value: string;
|
|
60
|
+
}>>;
|
|
61
|
+
}
|
|
62
|
+
export declare const localStorage: LocalStorage;
|
|
63
|
+
export declare const sessionStorage: SessionStorage;
|
|
64
|
+
export declare const memoryStorage: MemoryStorage;
|
|
65
|
+
export declare const indexedDBStorage: IndexedDBStorage;
|
|
66
|
+
export {};
|
|
67
|
+
//# sourceMappingURL=storage.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/core/storage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,UAAU,gBAAgB;IACxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;IACpC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1C,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,KAAK,IAAI,IAAI,CAAC;CACf;AAED;;GAEG;AACH,cAAM,YAAa,YAAW,gBAAgB;IAC5C,OAAO,CAAC,OAAO,CAAwB;;IAevC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAWnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAWzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAW7B,KAAK,IAAI,IAAI;CAUd;AAED;;GAEG;AACH,cAAM,cAAe,YAAW,gBAAgB;IAC9C,OAAO,CAAC,OAAO,CAAwB;;IAevC,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAWnC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAWzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAW7B,KAAK,IAAI,IAAI;CAUd;AAED;;GAEG;AACH,cAAM,aAAc,YAAW,gBAAgB;IAC7C,OAAO,CAAC,IAAI,CAAkC;IAE9C,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAInC,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI;IAIzC,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAI7B,KAAK,IAAI,IAAI;CAGd;AAED;;GAEG;AACH,cAAM,gBAAgB;IACpB,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,EAAE,CAA4B;IACtC,OAAO,CAAC,WAAW,CAAiC;IAE9C,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IA0CxB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA6C5C,OAAO,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IA6DrD,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAkDzC,MAAM,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CA0B/D;AAED,eAAO,MAAM,YAAY,cAAqB,CAAC;AAC/C,eAAO,MAAM,cAAc,gBAAuB,CAAC;AACnD,eAAO,MAAM,aAAa,eAAsB,CAAC;AACjD,eAAO,MAAM,gBAAgB,kBAAyB,CAAC"}
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 生成唯一ID
|
|
6
|
+
*/
|
|
7
|
+
export declare function generateId(): string;
|
|
8
|
+
/**
|
|
9
|
+
* 获取设备指纹
|
|
10
|
+
*/
|
|
11
|
+
export declare function getDeviceId(): string;
|
|
12
|
+
/**
|
|
13
|
+
* 获取会话ID
|
|
14
|
+
*/
|
|
15
|
+
export declare function getSessionId(): string;
|
|
16
|
+
/**
|
|
17
|
+
* 获取当前URL
|
|
18
|
+
*/
|
|
19
|
+
export declare function getCurrentUrl(): string;
|
|
20
|
+
/**
|
|
21
|
+
* 获取页面标题
|
|
22
|
+
*/
|
|
23
|
+
export declare function getPageTitle(): string;
|
|
24
|
+
/**
|
|
25
|
+
* 获取Referrer
|
|
26
|
+
*/
|
|
27
|
+
export declare function getReferrer(): string;
|
|
28
|
+
/**
|
|
29
|
+
* 防抖函数
|
|
30
|
+
*/
|
|
31
|
+
export declare function debounce<T extends (...args: unknown[]) => void>(func: T, wait: number): (...args: Parameters<T>) => void;
|
|
32
|
+
/**
|
|
33
|
+
* 节流函数
|
|
34
|
+
*/
|
|
35
|
+
export declare function throttle<T extends (...args: unknown[]) => void>(func: T, wait: number): (...args: Parameters<T>) => void;
|
|
36
|
+
/**
|
|
37
|
+
* 深拷贝
|
|
38
|
+
*/
|
|
39
|
+
export declare function deepClone<T>(obj: T): T;
|
|
40
|
+
/**
|
|
41
|
+
* 判断是否为浏览器环境
|
|
42
|
+
*/
|
|
43
|
+
export declare function isBrowser(): boolean;
|
|
44
|
+
/**
|
|
45
|
+
* 判断是否为Node环境
|
|
46
|
+
*/
|
|
47
|
+
export declare function isNode(): boolean;
|
|
48
|
+
/**
|
|
49
|
+
* 获取元素路径
|
|
50
|
+
*/
|
|
51
|
+
export declare function getElementPath(element: Element | null): string;
|
|
52
|
+
/**
|
|
53
|
+
* 获取元素信息
|
|
54
|
+
*/
|
|
55
|
+
export declare function getElementInfo(element: Element | null): {
|
|
56
|
+
tagName?: string;
|
|
57
|
+
id?: string;
|
|
58
|
+
className?: string;
|
|
59
|
+
text?: string;
|
|
60
|
+
};
|
|
61
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +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"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { PageViewEvent } from '../types';
|
|
2
|
+
|
|
3
|
+
export interface BehaviorMetrics {
|
|
4
|
+
/** 页面浏览量 */
|
|
5
|
+
pv: number;
|
|
6
|
+
/** 独立访客数 */
|
|
7
|
+
uv: number;
|
|
8
|
+
/** 会话数 */
|
|
9
|
+
sessions: number;
|
|
10
|
+
/** 平均停留时长 */
|
|
11
|
+
avgDuration: number;
|
|
12
|
+
/** 访问路径 */
|
|
13
|
+
paths: string[];
|
|
14
|
+
}
|
|
15
|
+
declare class BehaviorAnalysis {
|
|
16
|
+
private pageViews;
|
|
17
|
+
private startTime;
|
|
18
|
+
constructor();
|
|
19
|
+
/**
|
|
20
|
+
* 分析页面浏览事件
|
|
21
|
+
*/
|
|
22
|
+
analyzePageView(event: PageViewEvent): void;
|
|
23
|
+
/**
|
|
24
|
+
* 获取行为指标
|
|
25
|
+
*/
|
|
26
|
+
getMetrics(): BehaviorMetrics;
|
|
27
|
+
/**
|
|
28
|
+
* 获取访问路径
|
|
29
|
+
*/
|
|
30
|
+
getVisitPath(): string[];
|
|
31
|
+
/**
|
|
32
|
+
* 获取停留时长
|
|
33
|
+
*/
|
|
34
|
+
getDuration(): number;
|
|
35
|
+
/**
|
|
36
|
+
* 重置
|
|
37
|
+
*/
|
|
38
|
+
reset(): void;
|
|
39
|
+
}
|
|
40
|
+
export default BehaviorAnalysis;
|
|
41
|
+
//# sourceMappingURL=behavior-analysis.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"behavior-analysis.d.ts","sourceRoot":"","sources":["../../src/extension/behavior-analysis.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAE7C,MAAM,WAAW,eAAe;IAC9B,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,YAAY;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,UAAU;IACV,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;CACjB;AAED,cAAM,gBAAgB;IACpB,OAAO,CAAC,SAAS,CAAuB;IACxC,OAAO,CAAC,SAAS,CAAsB;;IAMvC;;OAEG;IACH,eAAe,CAAC,KAAK,EAAE,aAAa,GAAG,IAAI;IAI3C;;OAEG;IACH,UAAU,IAAI,eAAe;IA4B7B;;OAEG;IACH,YAAY,IAAI,MAAM,EAAE;IAIxB;;OAEG;IACH,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAED,eAAe,gBAAgB,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { TrackerPlugin } from '../types';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 网络拦截器配置选项
|
|
5
|
+
*/
|
|
6
|
+
export interface NetworkInterceptorOptions {
|
|
7
|
+
/** 是否启用插件(默认 true) */
|
|
8
|
+
enabled?: boolean;
|
|
9
|
+
/** 是否记录请求体(默认 true) */
|
|
10
|
+
recordRequestBody?: boolean;
|
|
11
|
+
/** 是否记录响应体(默认 true) */
|
|
12
|
+
recordResponseBody?: boolean;
|
|
13
|
+
/** 最大响应体大小(字节,默认 100KB) */
|
|
14
|
+
maxResponseBodySize?: number;
|
|
15
|
+
/** 最大请求体大小(字节,默认 100KB) */
|
|
16
|
+
maxRequestBodySize?: number;
|
|
17
|
+
/** URL 过滤规则(支持字符串、正则表达式、函数) */
|
|
18
|
+
urlFilter?: string | RegExp | ((url: string) => boolean);
|
|
19
|
+
/** 是否只记录失败的请求(默认 false,记录所有请求) */
|
|
20
|
+
onlyFailedRequests?: boolean;
|
|
21
|
+
/** 敏感字段过滤(不记录这些字段的值) */
|
|
22
|
+
sensitiveFields?: string[];
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 创建网络拦截器插件
|
|
26
|
+
*/
|
|
27
|
+
export declare function createNetworkInterceptorPlugin(options?: NetworkInterceptorOptions): TrackerPlugin;
|
|
28
|
+
/**
|
|
29
|
+
* 默认的网络拦截器插件实例
|
|
30
|
+
*/
|
|
31
|
+
export declare const networkInterceptorPlugin: TrackerPlugin;
|
|
32
|
+
//# sourceMappingURL=network-interceptor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"network-interceptor.d.ts","sourceRoot":"","sources":["../../src/extension/network-interceptor.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,OAAO,KAAK,EAAE,aAAa,EAAgC,MAAM,SAAS,CAAC;AAG3E;;GAEG;AACH,MAAM,WAAW,yBAAyB;IACxC,sBAAsB;IACtB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,uBAAuB;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uBAAuB;IACvB,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,2BAA2B;IAC3B,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,2BAA2B;IAC3B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,+BAA+B;IAC/B,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,CAAC,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC;IACzD,kCAAkC;IAClC,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,wBAAwB;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AA4ND;;GAEG;AACH,wBAAgB,8BAA8B,CAC5C,OAAO,GAAE,yBAA8B,GACtC,aAAa,CA+Zf;AAED;;GAEG;AACH,eAAO,MAAM,wBAAwB,eAAmC,CAAC"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { TrackerPlugin, TrackerInstance } from '../types';
|
|
2
|
+
|
|
3
|
+
declare class PluginManager {
|
|
4
|
+
private plugins;
|
|
5
|
+
private trackerInstance;
|
|
6
|
+
/**
|
|
7
|
+
* 设置Tracker实例
|
|
8
|
+
*/
|
|
9
|
+
setTrackerInstance(instance: TrackerInstance): void;
|
|
10
|
+
/**
|
|
11
|
+
* 安装插件
|
|
12
|
+
*/
|
|
13
|
+
use(plugin: TrackerPlugin): void;
|
|
14
|
+
/**
|
|
15
|
+
* 卸载插件
|
|
16
|
+
*/
|
|
17
|
+
unuse(pluginName: string): void;
|
|
18
|
+
/**
|
|
19
|
+
* 获取插件
|
|
20
|
+
*/
|
|
21
|
+
get(pluginName: string): TrackerPlugin | undefined;
|
|
22
|
+
/**
|
|
23
|
+
* 获取所有插件
|
|
24
|
+
*/
|
|
25
|
+
getAll(): TrackerPlugin[];
|
|
26
|
+
/**
|
|
27
|
+
* 清空所有插件
|
|
28
|
+
*/
|
|
29
|
+
clear(): void;
|
|
30
|
+
}
|
|
31
|
+
export default PluginManager;
|
|
32
|
+
//# sourceMappingURL=plugin-manager.d.ts.map
|
|
@@ -0,0 +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;AAE9D,cAAM,aAAa;IACjB,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,eAAe,CAAgC;IAEvD;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,eAAe,GAAG,IAAI;IAInD;;OAEG;IACH,GAAG,CAAC,MAAM,EAAE,aAAa,GAAG,IAAI;IAmBhC;;OAEG;IACH,KAAK,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAiB/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"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
export interface DOMSnapshot {
|
|
2
|
+
timestamp: number;
|
|
3
|
+
html: string;
|
|
4
|
+
mutations: MutationRecord[];
|
|
5
|
+
}
|
|
6
|
+
export interface UserInteraction {
|
|
7
|
+
type: 'click' | 'input' | 'scroll' | 'mousemove';
|
|
8
|
+
timestamp: number;
|
|
9
|
+
data: Record<string, unknown>;
|
|
10
|
+
}
|
|
11
|
+
declare class SessionReplay {
|
|
12
|
+
private snapshots;
|
|
13
|
+
private interactions;
|
|
14
|
+
private observer;
|
|
15
|
+
private isRecording;
|
|
16
|
+
private maxSnapshots;
|
|
17
|
+
private mutationHandler;
|
|
18
|
+
private throttledMouseMoveHandler;
|
|
19
|
+
/**
|
|
20
|
+
* 开始录制
|
|
21
|
+
*/
|
|
22
|
+
start(): void;
|
|
23
|
+
/**
|
|
24
|
+
* 停止录制
|
|
25
|
+
*/
|
|
26
|
+
stop(): void;
|
|
27
|
+
/**
|
|
28
|
+
* 拍摄快照
|
|
29
|
+
*/
|
|
30
|
+
private takeSnapshot;
|
|
31
|
+
/**
|
|
32
|
+
* 记录DOM变化
|
|
33
|
+
*/
|
|
34
|
+
private recordMutations;
|
|
35
|
+
/**
|
|
36
|
+
* 设置交互监听器
|
|
37
|
+
*/
|
|
38
|
+
private setupInteractionListeners;
|
|
39
|
+
/**
|
|
40
|
+
* 移除交互监听器
|
|
41
|
+
*/
|
|
42
|
+
private removeInteractionListeners;
|
|
43
|
+
/**
|
|
44
|
+
* 处理点击事件
|
|
45
|
+
*/
|
|
46
|
+
private handleClick;
|
|
47
|
+
/**
|
|
48
|
+
* 处理输入事件
|
|
49
|
+
*/
|
|
50
|
+
private handleInput;
|
|
51
|
+
/**
|
|
52
|
+
* 处理滚动事件
|
|
53
|
+
*/
|
|
54
|
+
private handleScroll;
|
|
55
|
+
/**
|
|
56
|
+
* 处理鼠标移动事件
|
|
57
|
+
*/
|
|
58
|
+
private handleMouseMove;
|
|
59
|
+
/**
|
|
60
|
+
* 记录交互
|
|
61
|
+
*/
|
|
62
|
+
private recordInteraction;
|
|
63
|
+
/**
|
|
64
|
+
* 获取录制数据
|
|
65
|
+
*/
|
|
66
|
+
getData(): {
|
|
67
|
+
snapshots: DOMSnapshot[];
|
|
68
|
+
interactions: UserInteraction[];
|
|
69
|
+
};
|
|
70
|
+
/**
|
|
71
|
+
* 清空录制数据
|
|
72
|
+
*/
|
|
73
|
+
clear(): void;
|
|
74
|
+
/**
|
|
75
|
+
* 销毁
|
|
76
|
+
*/
|
|
77
|
+
destroy(): void;
|
|
78
|
+
}
|
|
79
|
+
export default SessionReplay;
|
|
80
|
+
//# sourceMappingURL=session-replay.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"session-replay.d.ts","sourceRoot":"","sources":["../../src/extension/session-replay.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,cAAc,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,WAAW,CAAC;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,cAAM,aAAa;IACjB,OAAO,CAAC,SAAS,CAAqB;IACtC,OAAO,CAAC,YAAY,CAAyB;IAC7C,OAAO,CAAC,QAAQ,CAAiC;IACjD,OAAO,CAAC,WAAW,CAAkB;IACrC,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,eAAe,CAAwD;IAC/E,OAAO,CAAC,yBAAyB,CAA8B;IAE/D;;OAEG;IACH,KAAK,IAAI,IAAI;IA+Bb;;OAEG;IACH,IAAI,IAAI,IAAI;IAeZ;;OAEG;IACH,OAAO,CAAC,YAAY;IAmBpB;;OAEG;IACH,OAAO,CAAC,eAAe;IASvB;;OAEG;IACH,OAAO,CAAC,yBAAyB;IAmBjC;;OAEG;IACH,OAAO,CAAC,0BAA0B;IAgBlC;;OAEG;IACH,OAAO,CAAC,WAAW,CAUjB;IAEF;;OAEG;IACH,OAAO,CAAC,WAAW,CAcjB;IAEF;;OAEG;IACH,OAAO,CAAC,YAAY,CASlB;IAEF;;OAEG;IACH,OAAO,CAAC,eAAe,CASrB;IAEF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAOzB;;OAEG;IACH,OAAO,IAAI;QACT,SAAS,EAAE,WAAW,EAAE,CAAC;QACzB,YAAY,EAAE,eAAe,EAAE,CAAC;KACjC;IAOD;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,OAAO,IAAI,IAAI;CAIhB;AAED,eAAe,aAAa,CAAC"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { default as Tracker } from './tracker';
|
|
2
|
+
|
|
3
|
+
export default Tracker;
|
|
4
|
+
export type { TrackerConfig, TrackerEvent, PageViewEvent, ClickEvent, ExposureEvent, ErrorEvent, PerformanceEvent, CustomEvent, TrackerPlugin, UserInfo } from './types';
|
|
5
|
+
export { eventBus } from './core/event-bus';
|
|
6
|
+
export { localStorage, sessionStorage, memoryStorage, indexedDBStorage } from './core/storage';
|
|
7
|
+
export { networkInterceptorPlugin, createNetworkInterceptorPlugin } from './extension/network-interceptor';
|
|
8
|
+
export type { NetworkInterceptorOptions } from './extension/network-interceptor';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,OAAO,MAAM,WAAW,CAAC;AAEhC,eAAe,OAAO,CAAC;AAGvB,YAAY,EACV,aAAa,EACb,YAAY,EACZ,aAAa,EACb,UAAU,EACV,aAAa,EACb,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,aAAa,EACb,QAAQ,EACT,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,cAAc,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAG/F,OAAO,EAAE,wBAAwB,EAAE,8BAA8B,EAAE,MAAM,iCAAiC,CAAC;AAC3G,YAAY,EAAE,yBAAyB,EAAE,MAAM,iCAAiC,CAAC"}
|