@djvlc/runtime-web 1.0.2 → 1.0.4

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.
@@ -0,0 +1,76 @@
1
+ /**
2
+ * 错误报告
3
+ */
4
+ /**
5
+ * 错误报告配置
6
+ */
7
+ export interface ErrorReporterConfig {
8
+ /** 上报端点 */
9
+ endpoint?: string;
10
+ /** 是否启用 */
11
+ enabled?: boolean;
12
+ /** 采样率 */
13
+ sampleRate?: number;
14
+ /** 忽略的错误模式 */
15
+ ignorePatterns?: RegExp[];
16
+ /** 自定义上报函数 */
17
+ reporter?: (error: ErrorReport) => void | Promise<void>;
18
+ /** 最大堆栈深度 */
19
+ maxStackDepth?: number;
20
+ }
21
+ /**
22
+ * 错误报告
23
+ */
24
+ export interface ErrorReport {
25
+ /** 错误消息 */
26
+ message: string;
27
+ /** 错误堆栈 */
28
+ stack?: string;
29
+ /** 错误类型 */
30
+ type: 'error' | 'unhandledrejection' | 'resource' | 'runtime';
31
+ /** 发生时间 */
32
+ timestamp: number;
33
+ /** 页面 URL */
34
+ url: string;
35
+ /** 用户代理 */
36
+ userAgent: string;
37
+ /** 额外上下文 */
38
+ context?: Record<string, unknown>;
39
+ /** 追踪 ID */
40
+ traceId?: string;
41
+ }
42
+ /**
43
+ * 错误报告器
44
+ */
45
+ export declare class ErrorReporter {
46
+ private config;
47
+ private traceId;
48
+ private boundHandlers;
49
+ constructor(config?: ErrorReporterConfig);
50
+ /**
51
+ * 开始监听全局错误
52
+ */
53
+ start(): void;
54
+ /**
55
+ * 停止监听
56
+ */
57
+ stop(): void;
58
+ /**
59
+ * 手动报告错误
60
+ */
61
+ report(error: Error, context?: Record<string, unknown>): void;
62
+ /**
63
+ * 设置追踪 ID
64
+ */
65
+ setTraceId(traceId: string): void;
66
+ private handleError;
67
+ private handleUnhandledRejection;
68
+ private shouldIgnore;
69
+ private truncateStack;
70
+ private defaultReporter;
71
+ }
72
+ /**
73
+ * 创建错误报告器
74
+ */
75
+ export declare function createErrorReporter(config?: ErrorReporterConfig): ErrorReporter;
76
+ //# sourceMappingURL=error-reporter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-reporter.d.ts","sourceRoot":"","sources":["../src/error-reporter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,WAAW;IACX,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW;IACX,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,UAAU;IACV,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,cAAc;IACd,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,cAAc;IACd,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACxD,aAAa;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,WAAW;IACX,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW;IACX,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW;IACX,IAAI,EAAE,OAAO,GAAG,oBAAoB,GAAG,UAAU,GAAG,SAAS,CAAC;IAC9D,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAClC,YAAY;IACZ,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAgC;IAC9C,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,aAAa,CAGnB;gBAEU,MAAM,GAAE,mBAAwB;IAkB5C;;OAEG;IACH,KAAK,IAAI,IAAI;IAOb;;OAEG;IACH,IAAI,IAAI,IAAI;IAKZ;;OAEG;IACH,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAmB7D;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAIjC,OAAO,CAAC,WAAW;IAuBnB,OAAO,CAAC,wBAAwB;IAsBhC,OAAO,CAAC,YAAY;IAIpB,OAAO,CAAC,aAAa;YAMP,eAAe;CAc9B;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,CAAC,EAAE,mBAAmB,GAAG,aAAa,CAE/E"}
package/dist/index.d.ts CHANGED
@@ -1,115 +1,77 @@
1
+ import { mount, lazyMount, batchMount, warmup } from './mount';
2
+ import { createTrackingManager } from './tracking';
3
+ import { createErrorReporter } from './error-reporter';
4
+ import { createPerformanceMonitor, getPagePerformance, getResourcePerformance, getRuntimeResourcePerformance } from './performance';
5
+ import { createStorageHelper } from './storage';
6
+ import { preconnect, preloadAssets, getDeviceId, generateTraceId, generateSpanId, generateTraceparent, onVisibilityChange, onNetworkChange, isMobile, isWeChat, supportsWebP } from './utils';
1
7
  import { createRuntime } from '@djvlc/runtime-core';
2
-
3
- export declare const RUNTIME_VERSION: string;
4
8
  /**
5
- * 挂载选项(简化版,用于浏览器端)
6
- */
7
- export interface MountOptions {
8
- /** 页面 UID */
9
- pageUid: 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(仅 preview 渠道) */
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: unknown) => void;
36
- }
37
- /**
38
- * 挂载结果
39
- */
40
- export interface MountResult {
41
- /** 运行时实例 */
42
- runtime: ReturnType<typeof createRuntime>;
43
- /** 销毁函数 */
44
- destroy: () => void;
45
- }
46
- /**
47
- * 挂载运行时到指定容器
9
+ * @djvlc/runtime-web - DJV 低代码平台浏览器版运行时
48
10
  *
49
- * @param container - 容器选择器或元素
50
- * @param options - 挂载选项
51
- * @returns 挂载结果
11
+ * 用于 CDN 发布,提供:
12
+ * - runtime.esm.js - ES Module 版本
13
+ * - runtime.iife.js - IIFE 版本(全局变量 DJVRuntime)
14
+ * - runtime.css - 运行时样式
52
15
  *
53
16
  * @example
54
- * ```javascript
55
- * const { runtime, destroy } = await DJVRuntime.mount('#app', {
56
- * pageUid: 'page_123',
57
- * apiBaseUrl: 'https://api.example.com',
58
- * cdnBaseUrl: 'https://cdn.example.com',
59
- * channel: 'prod',
60
- * });
61
- *
62
- * // 页面卸载时销毁
63
- * window.addEventListener('beforeunload', destroy);
64
- * ```
65
- */
66
- export declare function mount(container: string | HTMLElement, options: MountOptions): Promise<MountResult>;
67
- /**
68
- * 预连接 CDN/API 域名(优化加载速度)
69
- *
70
- * @param hosts - 域名列表
17
+ * ```html
18
+ * <!-- IIFE 方式 -->
19
+ * <script src="https://cdn.example.com/runtime/1.0.0/runtime.iife.js"></script>
20
+ * <script>
21
+ * DJVRuntime.mount('#app', { pageUid: 'page_123', apiBaseUrl: '...' });
22
+ * </script>
71
23
  *
72
- * @example
73
- * ```javascript
74
- * DJVRuntime.preconnect(['cdn.example.com', 'api.example.com']);
24
+ * <!-- ESM 方式 -->
25
+ * <script type="module">
26
+ * import { mount } from 'https://cdn.example.com/runtime/1.0.0/runtime.esm.js';
27
+ * mount('#app', { pageUid: 'page_123', apiBaseUrl: '...' });
28
+ * </script>
75
29
  * ```
76
30
  */
77
- export declare function preconnect(hosts: string[]): void;
78
- /**
79
- * 预加载 runtime 资源
80
- *
81
- * @param cdnBaseUrl - CDN 基础 URL
82
- * @param version - 运行时版本(默认当前版本)
83
- */
84
- export declare function preloadAssets(cdnBaseUrl: string, version?: string): void;
85
- /**
86
- * 获取设备 ID(自动生成并持久化)
87
- */
88
- export declare function getDeviceId(): string;
89
- /**
90
- * 生成追踪 ID(W3C Trace Context 格式)
91
- */
92
- export declare function generateTraceId(): string;
93
- /**
94
- * 生成 Span ID
95
- */
96
- export declare function generateSpanId(): string;
97
- /**
98
- * 生成 traceparent 头
99
- */
100
- export declare function generateTraceparent(): string;
31
+ export { RUNTIME_VERSION } from './version';
32
+ export { mount, lazyMount, batchMount, warmup, } from './mount';
33
+ export type { MountOptions, MountResult, LazyMountOptions, BatchMountResult, } from './mount';
34
+ export { TrackingManager, createTrackingManager, } from './tracking';
35
+ export type { TrackEvent, TrackingConfig, } from './tracking';
36
+ export { ErrorReporter, createErrorReporter, } from './error-reporter';
37
+ export type { ErrorReport, ErrorReporterConfig, } from './error-reporter';
38
+ export { PerformanceMonitor, createPerformanceMonitor, collectWebVitalsMetrics, getPagePerformance, getResourcePerformance, getRuntimeResourcePerformance, } from './performance';
39
+ export type { PerformanceMetrics, } from './performance';
40
+ export { StorageHelper, createStorageHelper, } from './storage';
41
+ export { preconnect, preloadAssets, getDeviceId, generateTraceId, generateSpanId, generateTraceparent, urlUtils, onVisibilityChange, onNetworkChange, isMobile, isWeChat, supportsWebP, } from './utils';
101
42
  export { createRuntime } from '@djvlc/runtime-core';
102
43
  export type { RuntimeOptions, RuntimeState, LoadedComponent, Logger } from '@djvlc/runtime-core';
103
44
  declare const _default: {
45
+ RUNTIME_VERSION: string;
104
46
  mount: typeof mount;
47
+ lazyMount: typeof lazyMount;
48
+ batchMount: typeof batchMount;
49
+ warmup: typeof warmup;
50
+ createTrackingManager: typeof createTrackingManager;
51
+ createErrorReporter: typeof createErrorReporter;
52
+ createPerformanceMonitor: typeof createPerformanceMonitor;
53
+ getPagePerformance: typeof getPagePerformance;
54
+ getResourcePerformance: typeof getResourcePerformance;
55
+ getRuntimeResourcePerformance: typeof getRuntimeResourcePerformance;
56
+ createStorageHelper: typeof createStorageHelper;
105
57
  preconnect: typeof preconnect;
106
58
  preloadAssets: typeof preloadAssets;
107
59
  getDeviceId: typeof getDeviceId;
108
60
  generateTraceId: typeof generateTraceId;
109
61
  generateSpanId: typeof generateSpanId;
110
62
  generateTraceparent: typeof generateTraceparent;
63
+ urlUtils: {
64
+ getParam(name: string, url?: string): string | null;
65
+ setParam(name: string, value: string): void;
66
+ removeParam(name: string): void;
67
+ build(base: string, params: Record<string, string | number | boolean | undefined>): string;
68
+ };
69
+ onVisibilityChange: typeof onVisibilityChange;
70
+ onNetworkChange: typeof onNetworkChange;
71
+ isMobile: typeof isMobile;
72
+ isWeChat: typeof isWeChat;
73
+ supportsWebP: typeof supportsWebP;
111
74
  createRuntime: typeof createRuntime;
112
- RUNTIME_VERSION: string;
113
75
  };
114
76
  export default _default;
115
77
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAKpD,eAAO,MAAM,eAAe,QAA6E,CAAC;AAI1G;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,aAAa;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS;IACT,OAAO,CAAC,EAAE,SAAS,GAAG,MAAM,GAAG,MAAM,CAAC;IACtC,YAAY;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,6BAA6B;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW;IACX,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,kBAAkB;IAClB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,aAAa;IACb,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,aAAa;IACb,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACjC,WAAW;IACX,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,aAAa;IACb,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;CACtC;AAED;;GAEG;AACH,MAAM,WAAW,WAAW;IAC1B,YAAY;IACZ,OAAO,EAAE,UAAU,CAAC,OAAO,aAAa,CAAC,CAAC;IAC1C,WAAW;IACX,OAAO,EAAE,MAAM,IAAI,CAAC;CACrB;AAID;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,KAAK,CACzB,SAAS,EAAE,MAAM,GAAG,WAAW,EAC/B,OAAO,EAAE,YAAY,GACpB,OAAO,CAAC,WAAW,CAAC,CAoCtB;AAID;;;;;;;;;GASG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAQhD;AAED;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,UAAU,EAAE,MAAM,EAAE,OAAO,GAAE,MAAwB,GAAG,IAAI,CAgBzF;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAcpC;AAED;;GAEG;AACH,wBAAgB,eAAe,IAAI,MAAM,CAIxC;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,MAAM,CAIvC;AAED;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAI5C;AAID,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,YAAY,EAAE,cAAc,EAAE,YAAY,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;;;;;;;;;;;;AAIjG,wBAUE"}
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"}
@@ -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
+ /** 页面 UID */
9
+ pageUid: 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"}