@djvlc/runtime-web 1.0.6 → 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/error-reporter.d.ts +76 -0
- package/dist/error-reporter.d.ts.map +1 -0
- package/dist/index.d.ts +77 -1329
- package/dist/index.d.ts.map +1 -0
- package/dist/mount.d.ts +114 -0
- package/dist/mount.d.ts.map +1 -0
- package/dist/performance.d.ts +88 -0
- package/dist/performance.d.ts.map +1 -0
- package/dist/runtime.esm.js +1 -1
- package/dist/runtime.iife.js +1 -1
- package/dist/storage.d.ts +33 -0
- package/dist/storage.d.ts.map +1 -0
- package/dist/tracking.d.ts +87 -0
- package/dist/tracking.d.ts.map +1 -0
- package/dist/utils.d.ts +66 -0
- package/dist/utils.d.ts.map +1 -0
- package/dist/version.d.ts +5 -0
- package/dist/version.d.ts.map +1 -0
- package/package.json +2 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,OAAO,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAI5C,OAAO,EACL,KAAK,EACL,SAAS,EACT,UAAU,EACV,MAAM,GACP,MAAM,SAAS,CAAC;AAEjB,YAAY,EACV,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,SAAS,CAAC;AAIjB,OAAO,EACL,eAAe,EACf,qBAAqB,GACtB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,UAAU,EACV,cAAc,GACf,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,WAAW,EACX,mBAAmB,GACpB,MAAM,kBAAkB,CAAC;AAI1B,OAAO,EACL,kBAAkB,EAClB,wBAAwB,EACxB,uBAAuB,EACvB,kBAAkB,EAClB,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAIvB,OAAO,EACL,aAAa,EACb,mBAAmB,GACpB,MAAM,WAAW,CAAC;AAInB,OAAO,EAEL,UAAU,EACV,aAAa,EAEb,WAAW,EACX,eAAe,EACf,cAAc,EACd,mBAAmB,EAEnB,QAAQ,EAER,kBAAkB,EAClB,eAAe,EAEf,QAAQ,EACR,QAAQ,EACR,YAAY,GACb,MAAM,SAAS,CAAC;AAIjB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAKjG,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACvD,OAAO,EACL,wBAAwB,EACxB,kBAAkB,EAClB,sBAAsB,EACtB,6BAA6B,EAC9B,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,mBAAmB,EAAE,MAAM,WAAW,CAAC;AAChD,OAAO,EACL,UAAU,EACV,aAAa,EACb,WAAW,EACX,eAAe,EACf,cAAc,EACd,mBAAmB,EAEnB,kBAAkB,EAClB,eAAe,EACf,QAAQ,EACR,QAAQ,EACR,YAAY,EACb,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEpD,wBAiCE"}
|
package/dist/mount.d.ts
ADDED
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { createRuntime } from '@djvlc/runtime-core';
|
|
2
|
+
import { PerformanceMetrics } from './performance';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* 挂载选项
|
|
6
|
+
*/
|
|
7
|
+
export interface MountOptions {
|
|
8
|
+
/** 页面 ID(对应 contracts 中的 pageId) */
|
|
9
|
+
pageId: string;
|
|
10
|
+
/** API 基础 URL */
|
|
11
|
+
apiBaseUrl: string;
|
|
12
|
+
/** CDN 基础 URL */
|
|
13
|
+
cdnBaseUrl: string;
|
|
14
|
+
/** 渠道 */
|
|
15
|
+
channel?: 'preview' | 'prod' | 'gray';
|
|
16
|
+
/** 用户 ID */
|
|
17
|
+
userId?: string;
|
|
18
|
+
/** 设备 ID */
|
|
19
|
+
deviceId?: string;
|
|
20
|
+
/** 认证 Token */
|
|
21
|
+
authToken?: string;
|
|
22
|
+
/** 预览 Token */
|
|
23
|
+
previewToken?: string;
|
|
24
|
+
/** 调试模式 */
|
|
25
|
+
debug?: boolean;
|
|
26
|
+
/** 是否启用 SRI 校验 */
|
|
27
|
+
enableSRI?: boolean;
|
|
28
|
+
/** 自定义请求头 */
|
|
29
|
+
headers?: Record<string, string>;
|
|
30
|
+
/** 加载完成回调 */
|
|
31
|
+
onLoad?: (data: unknown) => void;
|
|
32
|
+
/** 错误回调 */
|
|
33
|
+
onError?: (error: Error) => void;
|
|
34
|
+
/** 性能指标回调 */
|
|
35
|
+
onMetric?: (metric: PerformanceMetrics) => void;
|
|
36
|
+
/** 阶段变化回调 */
|
|
37
|
+
onPhaseChange?: (phase: string) => void;
|
|
38
|
+
/** 重试次数 */
|
|
39
|
+
retryCount?: number;
|
|
40
|
+
/** 重试延迟 */
|
|
41
|
+
retryDelay?: number;
|
|
42
|
+
/** 超时时间 */
|
|
43
|
+
timeout?: number;
|
|
44
|
+
/** 是否采集 Web Vitals */
|
|
45
|
+
collectWebVitals?: boolean;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* 挂载结果
|
|
49
|
+
*/
|
|
50
|
+
export interface MountResult {
|
|
51
|
+
/** 运行时实例 */
|
|
52
|
+
runtime: ReturnType<typeof createRuntime>;
|
|
53
|
+
/** 销毁函数 */
|
|
54
|
+
destroy: () => void;
|
|
55
|
+
/** 性能指标 */
|
|
56
|
+
metrics: PerformanceMetrics;
|
|
57
|
+
/** 刷新页面 */
|
|
58
|
+
refresh: () => Promise<void>;
|
|
59
|
+
/** 设置变量 */
|
|
60
|
+
setVariable: (key: string, value: unknown) => void;
|
|
61
|
+
/** 刷新数据 */
|
|
62
|
+
refreshData: (queryId: string) => Promise<void>;
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* 懒加载选项
|
|
66
|
+
*/
|
|
67
|
+
export interface LazyMountOptions extends MountOptions {
|
|
68
|
+
/** 根边距 */
|
|
69
|
+
rootMargin?: string;
|
|
70
|
+
/** 可见阈值 */
|
|
71
|
+
threshold?: number;
|
|
72
|
+
/** 占位元素 */
|
|
73
|
+
placeholder?: HTMLElement | string;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* 批量挂载结果
|
|
77
|
+
*/
|
|
78
|
+
export interface BatchMountResult {
|
|
79
|
+
/** 成功的挂载结果 */
|
|
80
|
+
results: Map<string, MountResult>;
|
|
81
|
+
/** 失败的错误 */
|
|
82
|
+
errors: Map<string, Error>;
|
|
83
|
+
/** 总耗时 */
|
|
84
|
+
totalTime: number;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* 挂载运行时到指定容器
|
|
88
|
+
*/
|
|
89
|
+
export declare function mount(container: string | HTMLElement, options: MountOptions): Promise<MountResult>;
|
|
90
|
+
/**
|
|
91
|
+
* 懒加载挂载
|
|
92
|
+
*/
|
|
93
|
+
export declare function lazyMount(container: string | HTMLElement, options: LazyMountOptions): {
|
|
94
|
+
cancel: () => void;
|
|
95
|
+
promise: Promise<MountResult>;
|
|
96
|
+
};
|
|
97
|
+
/**
|
|
98
|
+
* 批量挂载
|
|
99
|
+
*/
|
|
100
|
+
export declare function batchMount(mounts: Array<{
|
|
101
|
+
id: string;
|
|
102
|
+
container: string | HTMLElement;
|
|
103
|
+
options: MountOptions;
|
|
104
|
+
}>, options?: {
|
|
105
|
+
concurrency?: number;
|
|
106
|
+
continueOnError?: boolean;
|
|
107
|
+
}): Promise<BatchMountResult>;
|
|
108
|
+
/**
|
|
109
|
+
* 预热挂载
|
|
110
|
+
*/
|
|
111
|
+
export declare function warmup(options: MountOptions): Promise<{
|
|
112
|
+
mount: (container: string | HTMLElement) => Promise<MountResult>;
|
|
113
|
+
}>;
|
|
114
|
+
//# sourceMappingURL=mount.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mount.d.ts","sourceRoot":"","sources":["../src/mount.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 性能监控工具
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 性能指标
|
|
6
|
+
*/
|
|
7
|
+
export interface PerformanceMetrics {
|
|
8
|
+
/** 初始化耗时 */
|
|
9
|
+
initTime: number;
|
|
10
|
+
/** 加载耗时 */
|
|
11
|
+
loadTime: number;
|
|
12
|
+
/** 渲染耗时 */
|
|
13
|
+
renderTime: number;
|
|
14
|
+
/** 总耗时 */
|
|
15
|
+
totalTime: number;
|
|
16
|
+
/** 首次内容绘制时间 */
|
|
17
|
+
fcp?: number;
|
|
18
|
+
/** 最大内容绘制时间 */
|
|
19
|
+
lcp?: number;
|
|
20
|
+
/** 首次输入延迟 */
|
|
21
|
+
fid?: number;
|
|
22
|
+
/** 累计布局偏移 */
|
|
23
|
+
cls?: number;
|
|
24
|
+
/** 组件加载次数 */
|
|
25
|
+
componentLoadCount: number;
|
|
26
|
+
/** 组件加载失败次数 */
|
|
27
|
+
componentLoadErrors: number;
|
|
28
|
+
/** 数据请求次数 */
|
|
29
|
+
dataRequestCount: number;
|
|
30
|
+
/** 数据请求失败次数 */
|
|
31
|
+
dataRequestErrors: number;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 采集 Web Vitals 指标
|
|
35
|
+
*/
|
|
36
|
+
export declare function collectWebVitalsMetrics(metrics: PerformanceMetrics): void;
|
|
37
|
+
/**
|
|
38
|
+
* 性能监控器
|
|
39
|
+
*/
|
|
40
|
+
export declare class PerformanceMonitor {
|
|
41
|
+
private marks;
|
|
42
|
+
private measures;
|
|
43
|
+
private enabled;
|
|
44
|
+
constructor(enabled?: boolean);
|
|
45
|
+
/**
|
|
46
|
+
* 标记开始时间
|
|
47
|
+
*/
|
|
48
|
+
mark(name: string): void;
|
|
49
|
+
/**
|
|
50
|
+
* 测量耗时
|
|
51
|
+
*/
|
|
52
|
+
measure(name: string, startMark: string, endMark?: string): number;
|
|
53
|
+
/**
|
|
54
|
+
* 获取所有测量结果
|
|
55
|
+
*/
|
|
56
|
+
getMeasures(): Record<string, number>;
|
|
57
|
+
/**
|
|
58
|
+
* 清空
|
|
59
|
+
*/
|
|
60
|
+
clear(): void;
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* 创建性能监控器
|
|
64
|
+
*/
|
|
65
|
+
export declare function createPerformanceMonitor(enabled?: boolean): PerformanceMonitor;
|
|
66
|
+
/**
|
|
67
|
+
* 获取页面性能指标
|
|
68
|
+
*/
|
|
69
|
+
export declare function getPagePerformance(): Record<string, number>;
|
|
70
|
+
/**
|
|
71
|
+
* 获取资源加载性能
|
|
72
|
+
*/
|
|
73
|
+
export declare function getResourcePerformance(filter?: (entry: PerformanceResourceTiming) => boolean): Array<{
|
|
74
|
+
name: string;
|
|
75
|
+
type: string;
|
|
76
|
+
duration: number;
|
|
77
|
+
size: number;
|
|
78
|
+
}>;
|
|
79
|
+
/**
|
|
80
|
+
* 获取运行时资源性能
|
|
81
|
+
*/
|
|
82
|
+
export declare function getRuntimeResourcePerformance(): Array<{
|
|
83
|
+
name: string;
|
|
84
|
+
type: string;
|
|
85
|
+
duration: number;
|
|
86
|
+
size: number;
|
|
87
|
+
}>;
|
|
88
|
+
//# sourceMappingURL=performance.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"performance.d.ts","sourceRoot":"","sources":["../src/performance.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH;;GAEG;AACH,MAAM,WAAW,kBAAkB;IACjC,YAAY;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW;IACX,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU;IACV,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,eAAe;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa;IACb,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,aAAa;IACb,kBAAkB,EAAE,MAAM,CAAC;IAC3B,eAAe;IACf,mBAAmB,EAAE,MAAM,CAAC;IAC5B,aAAa;IACb,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe;IACf,iBAAiB,EAAE,MAAM,CAAC;CAC3B;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI,CAiDzE;AAED;;GAEG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,QAAQ,CAAkC;IAClD,OAAO,CAAC,OAAO,CAAU;gBAEb,OAAO,UAAO;IAI1B;;OAEG;IACH,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAQxB;;OAEG;IACH,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM;IA0BlE;;OAEG;IACH,WAAW,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAIrC;;OAEG;IACH,KAAK,IAAI,IAAI;CAId;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,UAAO,GAAG,kBAAkB,CAE3E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,IAAI,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAmC3D;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,OAAO,GACrD,KAAK,CAAC;IACP,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CASD;AAED;;GAEG;AACH,wBAAgB,6BAA6B,IAAI,KAAK,CAAC;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC,CAID"}
|
package/dist/runtime.esm.js
CHANGED