@alibarbar/common 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/README.md +338 -0
- package/dist/algorithm.d.mts +66 -0
- package/dist/algorithm.d.ts +66 -0
- package/dist/algorithm.js +44 -0
- package/dist/algorithm.js.map +1 -0
- package/dist/algorithm.mjs +3 -0
- package/dist/algorithm.mjs.map +1 -0
- package/dist/array.d.mts +139 -0
- package/dist/array.d.ts +139 -0
- package/dist/array.js +84 -0
- package/dist/array.js.map +1 -0
- package/dist/array.mjs +3 -0
- package/dist/array.mjs.map +1 -0
- package/dist/chunk-27UDDVLZ.js +259 -0
- package/dist/chunk-27UDDVLZ.js.map +1 -0
- package/dist/chunk-2FFSQ573.mjs +138 -0
- package/dist/chunk-2FFSQ573.mjs.map +1 -0
- package/dist/chunk-4RGXV4SJ.js +106 -0
- package/dist/chunk-4RGXV4SJ.js.map +1 -0
- package/dist/chunk-56W6YECK.js +374 -0
- package/dist/chunk-56W6YECK.js.map +1 -0
- package/dist/chunk-5BGSUGTI.mjs +128 -0
- package/dist/chunk-5BGSUGTI.mjs.map +1 -0
- package/dist/chunk-7E6GELHJ.mjs +302 -0
- package/dist/chunk-7E6GELHJ.mjs.map +1 -0
- package/dist/chunk-7V5UQXIO.js +89 -0
- package/dist/chunk-7V5UQXIO.js.map +1 -0
- package/dist/chunk-A4SWQXX7.mjs +484 -0
- package/dist/chunk-A4SWQXX7.mjs.map +1 -0
- package/dist/chunk-ALDC6LRJ.mjs +85 -0
- package/dist/chunk-ALDC6LRJ.mjs.map +1 -0
- package/dist/chunk-BHCRFURU.js +491 -0
- package/dist/chunk-BHCRFURU.js.map +1 -0
- package/dist/chunk-D7CS5EKF.js +110 -0
- package/dist/chunk-D7CS5EKF.js.map +1 -0
- package/dist/chunk-DYBSRI7V.js +189 -0
- package/dist/chunk-DYBSRI7V.js.map +1 -0
- package/dist/chunk-F3LAGHPG.js +332 -0
- package/dist/chunk-F3LAGHPG.js.map +1 -0
- package/dist/chunk-HLDFI7R2.mjs +175 -0
- package/dist/chunk-HLDFI7R2.mjs.map +1 -0
- package/dist/chunk-HME2N3VY.mjs +354 -0
- package/dist/chunk-HME2N3VY.mjs.map +1 -0
- package/dist/chunk-I3L42475.js +145 -0
- package/dist/chunk-I3L42475.js.map +1 -0
- package/dist/chunk-JBLX27WD.mjs +240 -0
- package/dist/chunk-JBLX27WD.mjs.map +1 -0
- package/dist/chunk-JHZ7M2MR.mjs +133 -0
- package/dist/chunk-JHZ7M2MR.mjs.map +1 -0
- package/dist/chunk-JK2SE3I2.js +100 -0
- package/dist/chunk-JK2SE3I2.js.map +1 -0
- package/dist/chunk-JQZBPAPO.js +157 -0
- package/dist/chunk-JQZBPAPO.js.map +1 -0
- package/dist/chunk-JXYGC2C5.mjs +100 -0
- package/dist/chunk-JXYGC2C5.mjs.map +1 -0
- package/dist/chunk-KGFTD255.js +104 -0
- package/dist/chunk-KGFTD255.js.map +1 -0
- package/dist/chunk-LBHBNPNJ.mjs +148 -0
- package/dist/chunk-LBHBNPNJ.mjs.map +1 -0
- package/dist/chunk-LCXGZISK.js +158 -0
- package/dist/chunk-LCXGZISK.js.map +1 -0
- package/dist/chunk-LF4CILQS.mjs +87 -0
- package/dist/chunk-LF4CILQS.mjs.map +1 -0
- package/dist/chunk-MMR6XQNX.js +98 -0
- package/dist/chunk-MMR6XQNX.js.map +1 -0
- package/dist/chunk-NSSDYX2U.mjs +80 -0
- package/dist/chunk-NSSDYX2U.mjs.map +1 -0
- package/dist/chunk-O3O67R4I.js +143 -0
- package/dist/chunk-O3O67R4I.js.map +1 -0
- package/dist/chunk-OX5PLOWB.js +90 -0
- package/dist/chunk-OX5PLOWB.js.map +1 -0
- package/dist/chunk-PJ7UCTX4.mjs +362 -0
- package/dist/chunk-PJ7UCTX4.mjs.map +1 -0
- package/dist/chunk-QIBE7GVN.mjs +81 -0
- package/dist/chunk-QIBE7GVN.mjs.map +1 -0
- package/dist/chunk-QIOC54LQ.mjs +130 -0
- package/dist/chunk-QIOC54LQ.mjs.map +1 -0
- package/dist/chunk-QV6MIQ7H.mjs +328 -0
- package/dist/chunk-QV6MIQ7H.mjs.map +1 -0
- package/dist/chunk-TQN37HIN.js +94 -0
- package/dist/chunk-TQN37HIN.js.map +1 -0
- package/dist/chunk-XJTZDXSR.mjs +94 -0
- package/dist/chunk-XJTZDXSR.mjs.map +1 -0
- package/dist/chunk-XVUE53T3.js +361 -0
- package/dist/chunk-XVUE53T3.js.map +1 -0
- package/dist/chunk-Y364QIQH.js +139 -0
- package/dist/chunk-Y364QIQH.js.map +1 -0
- package/dist/chunk-YXM6Q4JS.mjs +94 -0
- package/dist/chunk-YXM6Q4JS.mjs.map +1 -0
- package/dist/chunk-ZDMFMUDR.js +309 -0
- package/dist/chunk-ZDMFMUDR.js.map +1 -0
- package/dist/chunk-ZVJ6NQUM.mjs +82 -0
- package/dist/chunk-ZVJ6NQUM.mjs.map +1 -0
- package/dist/color.d.mts +74 -0
- package/dist/color.d.ts +74 -0
- package/dist/color.js +40 -0
- package/dist/color.js.map +1 -0
- package/dist/color.mjs +3 -0
- package/dist/color.mjs.map +1 -0
- package/dist/crypto.d.mts +92 -0
- package/dist/crypto.d.ts +92 -0
- package/dist/crypto.js +60 -0
- package/dist/crypto.js.map +1 -0
- package/dist/crypto.mjs +3 -0
- package/dist/crypto.mjs.map +1 -0
- package/dist/data-structure.d.mts +213 -0
- package/dist/data-structure.d.ts +213 -0
- package/dist/data-structure.js +32 -0
- package/dist/data-structure.js.map +1 -0
- package/dist/data-structure.mjs +3 -0
- package/dist/data-structure.mjs.map +1 -0
- package/dist/date.d.mts +108 -0
- package/dist/date.d.ts +108 -0
- package/dist/date.js +72 -0
- package/dist/date.js.map +1 -0
- package/dist/date.mjs +3 -0
- package/dist/date.mjs.map +1 -0
- package/dist/dom.d.mts +92 -0
- package/dist/dom.d.ts +92 -0
- package/dist/dom.js +56 -0
- package/dist/dom.js.map +1 -0
- package/dist/dom.mjs +3 -0
- package/dist/dom.mjs.map +1 -0
- package/dist/file.d.mts +44 -0
- package/dist/file.d.ts +44 -0
- package/dist/file.js +32 -0
- package/dist/file.js.map +1 -0
- package/dist/file.mjs +3 -0
- package/dist/file.mjs.map +1 -0
- package/dist/i18n.d.mts +77 -0
- package/dist/i18n.d.ts +77 -0
- package/dist/i18n.js +40 -0
- package/dist/i18n.js.map +1 -0
- package/dist/i18n.mjs +3 -0
- package/dist/i18n.mjs.map +1 -0
- package/dist/index.d.mts +155 -0
- package/dist/index.d.ts +155 -0
- package/dist/index.js +839 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +22 -0
- package/dist/index.mjs.map +1 -0
- package/dist/network.d.mts +47 -0
- package/dist/network.d.ts +47 -0
- package/dist/network.js +28 -0
- package/dist/network.js.map +1 -0
- package/dist/network.mjs +3 -0
- package/dist/network.mjs.map +1 -0
- package/dist/number.d.mts +100 -0
- package/dist/number.d.ts +100 -0
- package/dist/number.js +56 -0
- package/dist/number.js.map +1 -0
- package/dist/number.mjs +3 -0
- package/dist/number.mjs.map +1 -0
- package/dist/object.d.mts +132 -0
- package/dist/object.d.ts +132 -0
- package/dist/object.js +80 -0
- package/dist/object.js.map +1 -0
- package/dist/object.mjs +3 -0
- package/dist/object.mjs.map +1 -0
- package/dist/performance.d.mts +85 -0
- package/dist/performance.d.ts +85 -0
- package/dist/performance.js +40 -0
- package/dist/performance.js.map +1 -0
- package/dist/performance.mjs +3 -0
- package/dist/performance.mjs.map +1 -0
- package/dist/storage.d.mts +176 -0
- package/dist/storage.d.ts +176 -0
- package/dist/storage.js +33 -0
- package/dist/storage.js.map +1 -0
- package/dist/storage.mjs +4 -0
- package/dist/storage.mjs.map +1 -0
- package/dist/string.d.mts +105 -0
- package/dist/string.d.ts +105 -0
- package/dist/string.js +68 -0
- package/dist/string.js.map +1 -0
- package/dist/string.mjs +3 -0
- package/dist/string.mjs.map +1 -0
- package/dist/tracking.d.mts +182 -0
- package/dist/tracking.d.ts +182 -0
- package/dist/tracking.js +52 -0
- package/dist/tracking.js.map +1 -0
- package/dist/tracking.mjs +3 -0
- package/dist/tracking.mjs.map +1 -0
- package/dist/transform.d.mts +53 -0
- package/dist/transform.d.ts +53 -0
- package/dist/transform.js +32 -0
- package/dist/transform.js.map +1 -0
- package/dist/transform.mjs +3 -0
- package/dist/transform.mjs.map +1 -0
- package/dist/upload-DzlQtUBc.d.mts +202 -0
- package/dist/upload-DzlQtUBc.d.ts +202 -0
- package/dist/upload.d.mts +1 -0
- package/dist/upload.d.ts +1 -0
- package/dist/upload.js +17 -0
- package/dist/upload.js.map +1 -0
- package/dist/upload.mjs +4 -0
- package/dist/upload.mjs.map +1 -0
- package/dist/url.d.mts +82 -0
- package/dist/url.d.ts +82 -0
- package/dist/url.js +44 -0
- package/dist/url.js.map +1 -0
- package/dist/url.mjs +3 -0
- package/dist/url.mjs.map +1 -0
- package/dist/validation.d.mts +83 -0
- package/dist/validation.d.ts +83 -0
- package/dist/validation.js +60 -0
- package/dist/validation.js.map +1 -0
- package/dist/validation.mjs +3 -0
- package/dist/validation.mjs.map +1 -0
- package/package.json +170 -0
|
@@ -0,0 +1,182 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 埋点追踪工具
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 埋点事件类型
|
|
6
|
+
*/
|
|
7
|
+
type TrackingEventType = 'event' | 'pageview' | 'click' | 'exposure' | 'custom';
|
|
8
|
+
/**
|
|
9
|
+
* 埋点事件数据
|
|
10
|
+
*/
|
|
11
|
+
interface TrackingEvent {
|
|
12
|
+
/** 事件类型 */
|
|
13
|
+
type: TrackingEventType;
|
|
14
|
+
/** 事件名称 */
|
|
15
|
+
name: string;
|
|
16
|
+
/** 事件参数 */
|
|
17
|
+
params?: Record<string, unknown>;
|
|
18
|
+
/** 时间戳 */
|
|
19
|
+
timestamp: number;
|
|
20
|
+
/** 页面URL */
|
|
21
|
+
url?: string;
|
|
22
|
+
/** 用户代理 */
|
|
23
|
+
userAgent?: string;
|
|
24
|
+
/** 用户ID */
|
|
25
|
+
userId?: string;
|
|
26
|
+
/** 会话ID */
|
|
27
|
+
sessionId?: string;
|
|
28
|
+
/** 其他自定义字段 */
|
|
29
|
+
[key: string]: unknown;
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* 埋点配置选项
|
|
33
|
+
*/
|
|
34
|
+
interface TrackerOptions {
|
|
35
|
+
/** 上报接口URL */
|
|
36
|
+
endpoint: string;
|
|
37
|
+
/** 批量上报大小,默认10 */
|
|
38
|
+
batchSize?: number;
|
|
39
|
+
/** 批量上报延迟(毫秒),默认3000 */
|
|
40
|
+
batchDelay?: number;
|
|
41
|
+
/** 是否自动追踪页面浏览,默认true */
|
|
42
|
+
autoTrackPageView?: boolean;
|
|
43
|
+
/** 是否自动追踪点击事件,默认false */
|
|
44
|
+
autoTrackClick?: boolean;
|
|
45
|
+
/** 公共参数 */
|
|
46
|
+
commonParams?: Record<string, unknown>;
|
|
47
|
+
/** 自定义上报函数 */
|
|
48
|
+
customSend?: (events: TrackingEvent[]) => Promise<void>;
|
|
49
|
+
/** 是否启用调试模式,默认false */
|
|
50
|
+
debug?: boolean;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* 曝光追踪选项
|
|
54
|
+
*/
|
|
55
|
+
interface ExposureOptions {
|
|
56
|
+
/** 曝光阈值(0-1),元素可见比例达到此值才触发,默认0.5 */
|
|
57
|
+
threshold?: number;
|
|
58
|
+
/** 曝光时长(毫秒),元素可见时长达到此值才触发,默认1000 */
|
|
59
|
+
duration?: number;
|
|
60
|
+
/** 是否只触发一次,默认true */
|
|
61
|
+
once?: boolean;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* 埋点追踪器类
|
|
65
|
+
*/
|
|
66
|
+
declare class Tracker {
|
|
67
|
+
private options;
|
|
68
|
+
private eventQueue;
|
|
69
|
+
private batchTimer;
|
|
70
|
+
private userInfo;
|
|
71
|
+
private sessionId;
|
|
72
|
+
private exposureObservers;
|
|
73
|
+
private exposureTimers;
|
|
74
|
+
private exposedElements;
|
|
75
|
+
constructor(options: TrackerOptions);
|
|
76
|
+
/**
|
|
77
|
+
* 生成会话ID
|
|
78
|
+
*/
|
|
79
|
+
private generateSessionId;
|
|
80
|
+
/**
|
|
81
|
+
* 获取公共数据
|
|
82
|
+
*/
|
|
83
|
+
private getCommonData;
|
|
84
|
+
/**
|
|
85
|
+
* 添加事件到队列
|
|
86
|
+
*/
|
|
87
|
+
private enqueue;
|
|
88
|
+
/**
|
|
89
|
+
* 安排批量上报
|
|
90
|
+
*/
|
|
91
|
+
private scheduleBatch;
|
|
92
|
+
/**
|
|
93
|
+
* 上报事件
|
|
94
|
+
*/
|
|
95
|
+
private sendEvents;
|
|
96
|
+
/**
|
|
97
|
+
* 发送到上报接口
|
|
98
|
+
*/
|
|
99
|
+
private sendToEndpoint;
|
|
100
|
+
/**
|
|
101
|
+
* 立即上报所有待上报事件
|
|
102
|
+
*/
|
|
103
|
+
flush(): Promise<void>;
|
|
104
|
+
/**
|
|
105
|
+
* 追踪事件
|
|
106
|
+
*/
|
|
107
|
+
trackEvent(name: string, params?: Record<string, unknown>): void;
|
|
108
|
+
/**
|
|
109
|
+
* 追踪页面浏览
|
|
110
|
+
*/
|
|
111
|
+
trackPageView(params?: Record<string, unknown>): void;
|
|
112
|
+
/**
|
|
113
|
+
* 追踪点击事件
|
|
114
|
+
*/
|
|
115
|
+
trackClick(element: Element | string, params?: Record<string, unknown>): void;
|
|
116
|
+
/**
|
|
117
|
+
* 追踪曝光事件
|
|
118
|
+
*/
|
|
119
|
+
trackExposure(element: Element | string, options?: ExposureOptions, params?: Record<string, unknown>): void;
|
|
120
|
+
/**
|
|
121
|
+
* 设置用户信息
|
|
122
|
+
*/
|
|
123
|
+
setUserInfo(userInfo: Record<string, unknown>): void;
|
|
124
|
+
/**
|
|
125
|
+
* 设置公共参数
|
|
126
|
+
*/
|
|
127
|
+
setCommonParams(params: Record<string, unknown>): void;
|
|
128
|
+
/**
|
|
129
|
+
* 设置页面浏览监听器(SPA应用)
|
|
130
|
+
*/
|
|
131
|
+
private setupPageViewListener;
|
|
132
|
+
/**
|
|
133
|
+
* 设置点击事件监听器
|
|
134
|
+
*/
|
|
135
|
+
private setupClickListener;
|
|
136
|
+
/**
|
|
137
|
+
* 清理资源
|
|
138
|
+
*/
|
|
139
|
+
destroy(): void;
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* 创建埋点追踪器实例
|
|
143
|
+
*/
|
|
144
|
+
declare function createTracker(options: TrackerOptions): Tracker;
|
|
145
|
+
/**
|
|
146
|
+
* 初始化默认追踪器
|
|
147
|
+
*/
|
|
148
|
+
declare function initTracker(options: TrackerOptions): Tracker;
|
|
149
|
+
/**
|
|
150
|
+
* 获取默认追踪器
|
|
151
|
+
*/
|
|
152
|
+
declare function getTracker(): Tracker;
|
|
153
|
+
/**
|
|
154
|
+
* 追踪事件(使用默认追踪器)
|
|
155
|
+
*/
|
|
156
|
+
declare function trackEvent(name: string, params?: Record<string, unknown>): void;
|
|
157
|
+
/**
|
|
158
|
+
* 追踪页面浏览(使用默认追踪器)
|
|
159
|
+
*/
|
|
160
|
+
declare function trackPageView(params?: Record<string, unknown>): void;
|
|
161
|
+
/**
|
|
162
|
+
* 追踪点击事件(使用默认追踪器)
|
|
163
|
+
*/
|
|
164
|
+
declare function trackClick(element: Element | string, params?: Record<string, unknown>): void;
|
|
165
|
+
/**
|
|
166
|
+
* 追踪曝光事件(使用默认追踪器)
|
|
167
|
+
*/
|
|
168
|
+
declare function trackExposure(element: Element | string, options?: ExposureOptions, params?: Record<string, unknown>): void;
|
|
169
|
+
/**
|
|
170
|
+
* 设置用户信息(使用默认追踪器)
|
|
171
|
+
*/
|
|
172
|
+
declare function setUserInfo(userInfo: Record<string, unknown>): void;
|
|
173
|
+
/**
|
|
174
|
+
* 设置公共参数(使用默认追踪器)
|
|
175
|
+
*/
|
|
176
|
+
declare function setCommonParams(params: Record<string, unknown>): void;
|
|
177
|
+
/**
|
|
178
|
+
* 立即上报(使用默认追踪器)
|
|
179
|
+
*/
|
|
180
|
+
declare function flush(): Promise<void>;
|
|
181
|
+
|
|
182
|
+
export { type ExposureOptions, Tracker, type TrackerOptions, type TrackingEvent, type TrackingEventType, createTracker, flush, getTracker, initTracker, setCommonParams, setUserInfo, trackClick, trackEvent, trackExposure, trackPageView };
|
package/dist/tracking.js
ADDED
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunk56W6YECK_js = require('./chunk-56W6YECK.js');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "Tracker", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunk56W6YECK_js.Tracker; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "createTracker", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return chunk56W6YECK_js.createTracker; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "flush", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return chunk56W6YECK_js.flush; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "getTracker", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return chunk56W6YECK_js.getTracker; }
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, "initTracker", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return chunk56W6YECK_js.initTracker; }
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, "setCommonParams", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return chunk56W6YECK_js.setCommonParams; }
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "setUserInfo", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () { return chunk56W6YECK_js.setUserInfo; }
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(exports, "trackClick", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function () { return chunk56W6YECK_js.trackClick; }
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(exports, "trackEvent", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () { return chunk56W6YECK_js.trackEvent; }
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "trackExposure", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () { return chunk56W6YECK_js.trackExposure; }
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(exports, "trackPageView", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
get: function () { return chunk56W6YECK_js.trackPageView; }
|
|
50
|
+
});
|
|
51
|
+
//# sourceMappingURL=tracking.js.map
|
|
52
|
+
//# sourceMappingURL=tracking.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"tracking.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"tracking.mjs"}
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 数据转换工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* CSV转JSON
|
|
6
|
+
* @param csv - CSV字符串
|
|
7
|
+
* @param options - 选项
|
|
8
|
+
* @returns JSON对象数组
|
|
9
|
+
*/
|
|
10
|
+
declare function csvToJson<T extends Record<string, unknown> = Record<string, string>>(csv: string, options?: {
|
|
11
|
+
delimiter?: string;
|
|
12
|
+
headers?: string[];
|
|
13
|
+
skipEmptyLines?: boolean;
|
|
14
|
+
}): T[];
|
|
15
|
+
/**
|
|
16
|
+
* JSON转CSV
|
|
17
|
+
* @param data - JSON对象数组
|
|
18
|
+
* @param options - 选项
|
|
19
|
+
* @returns CSV字符串
|
|
20
|
+
*/
|
|
21
|
+
declare function jsonToCsv<T extends Record<string, unknown>>(data: T[], options?: {
|
|
22
|
+
delimiter?: string;
|
|
23
|
+
headers?: string[];
|
|
24
|
+
includeHeaders?: boolean;
|
|
25
|
+
}): string;
|
|
26
|
+
/**
|
|
27
|
+
* XML转JSON
|
|
28
|
+
* @param xml - XML字符串
|
|
29
|
+
* @returns JSON对象
|
|
30
|
+
*/
|
|
31
|
+
declare function xmlToJson(xml: string): Record<string, unknown>;
|
|
32
|
+
/**
|
|
33
|
+
* JSON转XML
|
|
34
|
+
* @param json - JSON对象
|
|
35
|
+
* @param rootTag - 根标签名,默认为 'root'
|
|
36
|
+
* @returns XML字符串
|
|
37
|
+
*/
|
|
38
|
+
declare function jsonToXml(json: unknown, rootTag?: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* YAML转JSON
|
|
41
|
+
* @param yaml - YAML字符串
|
|
42
|
+
* @returns JSON对象
|
|
43
|
+
*/
|
|
44
|
+
declare function yamlToJson(yaml: string): unknown;
|
|
45
|
+
/**
|
|
46
|
+
* JSON转YAML
|
|
47
|
+
* @param json - JSON对象
|
|
48
|
+
* @param indent - 缩进空格数,默认为 2
|
|
49
|
+
* @returns YAML字符串
|
|
50
|
+
*/
|
|
51
|
+
declare function jsonToYaml(json: unknown, indent?: number): string;
|
|
52
|
+
|
|
53
|
+
export { csvToJson, jsonToCsv, jsonToXml, jsonToYaml, xmlToJson, yamlToJson };
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 数据转换工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* CSV转JSON
|
|
6
|
+
* @param csv - CSV字符串
|
|
7
|
+
* @param options - 选项
|
|
8
|
+
* @returns JSON对象数组
|
|
9
|
+
*/
|
|
10
|
+
declare function csvToJson<T extends Record<string, unknown> = Record<string, string>>(csv: string, options?: {
|
|
11
|
+
delimiter?: string;
|
|
12
|
+
headers?: string[];
|
|
13
|
+
skipEmptyLines?: boolean;
|
|
14
|
+
}): T[];
|
|
15
|
+
/**
|
|
16
|
+
* JSON转CSV
|
|
17
|
+
* @param data - JSON对象数组
|
|
18
|
+
* @param options - 选项
|
|
19
|
+
* @returns CSV字符串
|
|
20
|
+
*/
|
|
21
|
+
declare function jsonToCsv<T extends Record<string, unknown>>(data: T[], options?: {
|
|
22
|
+
delimiter?: string;
|
|
23
|
+
headers?: string[];
|
|
24
|
+
includeHeaders?: boolean;
|
|
25
|
+
}): string;
|
|
26
|
+
/**
|
|
27
|
+
* XML转JSON
|
|
28
|
+
* @param xml - XML字符串
|
|
29
|
+
* @returns JSON对象
|
|
30
|
+
*/
|
|
31
|
+
declare function xmlToJson(xml: string): Record<string, unknown>;
|
|
32
|
+
/**
|
|
33
|
+
* JSON转XML
|
|
34
|
+
* @param json - JSON对象
|
|
35
|
+
* @param rootTag - 根标签名,默认为 'root'
|
|
36
|
+
* @returns XML字符串
|
|
37
|
+
*/
|
|
38
|
+
declare function jsonToXml(json: unknown, rootTag?: string): string;
|
|
39
|
+
/**
|
|
40
|
+
* YAML转JSON
|
|
41
|
+
* @param yaml - YAML字符串
|
|
42
|
+
* @returns JSON对象
|
|
43
|
+
*/
|
|
44
|
+
declare function yamlToJson(yaml: string): unknown;
|
|
45
|
+
/**
|
|
46
|
+
* JSON转YAML
|
|
47
|
+
* @param json - JSON对象
|
|
48
|
+
* @param indent - 缩进空格数,默认为 2
|
|
49
|
+
* @returns YAML字符串
|
|
50
|
+
*/
|
|
51
|
+
declare function jsonToYaml(json: unknown, indent?: number): string;
|
|
52
|
+
|
|
53
|
+
export { csvToJson, jsonToCsv, jsonToXml, jsonToYaml, xmlToJson, yamlToJson };
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkZDMFMUDR_js = require('./chunk-ZDMFMUDR.js');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "csvToJson", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkZDMFMUDR_js.csvToJson; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "jsonToCsv", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return chunkZDMFMUDR_js.jsonToCsv; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "jsonToXml", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return chunkZDMFMUDR_js.jsonToXml; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "jsonToYaml", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return chunkZDMFMUDR_js.jsonToYaml; }
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, "xmlToJson", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return chunkZDMFMUDR_js.xmlToJson; }
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, "yamlToJson", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return chunkZDMFMUDR_js.yamlToJson; }
|
|
30
|
+
});
|
|
31
|
+
//# sourceMappingURL=transform.js.map
|
|
32
|
+
//# sourceMappingURL=transform.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"transform.js"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"transform.mjs"}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 文件上传相关类型定义
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 上传初始化请求参数
|
|
6
|
+
*/
|
|
7
|
+
interface UploadInitRequest {
|
|
8
|
+
fileName: string;
|
|
9
|
+
fileSize: number;
|
|
10
|
+
fileMd5: string;
|
|
11
|
+
chunkSize?: number;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* 上传初始化响应
|
|
15
|
+
*/
|
|
16
|
+
interface UploadInitResponse {
|
|
17
|
+
taskId: string;
|
|
18
|
+
totalChunks: number;
|
|
19
|
+
existingChunks: number[];
|
|
20
|
+
instantUpload: boolean;
|
|
21
|
+
fileUrl?: string;
|
|
22
|
+
chunkSize: number;
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* 分片上传响应
|
|
26
|
+
*/
|
|
27
|
+
interface ChunkUploadResponse {
|
|
28
|
+
chunkIndex: number;
|
|
29
|
+
success: boolean;
|
|
30
|
+
message: string;
|
|
31
|
+
chunkMd5: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* 完成上传响应
|
|
35
|
+
*/
|
|
36
|
+
interface CompleteUploadResponse {
|
|
37
|
+
taskId: string;
|
|
38
|
+
fileUrl: string;
|
|
39
|
+
fileName: string;
|
|
40
|
+
fileSize: number;
|
|
41
|
+
fileMd5: string;
|
|
42
|
+
success: boolean;
|
|
43
|
+
message: string;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* 上传进度信息
|
|
47
|
+
*/
|
|
48
|
+
interface UploadProgress {
|
|
49
|
+
taskId: string;
|
|
50
|
+
fileName: string;
|
|
51
|
+
fileSize: number;
|
|
52
|
+
totalChunks: number;
|
|
53
|
+
uploadedChunks: number;
|
|
54
|
+
percentage: number;
|
|
55
|
+
status: string;
|
|
56
|
+
uploadedSize: number;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* API响应包装类型
|
|
60
|
+
*/
|
|
61
|
+
interface ApiResponse<T> {
|
|
62
|
+
code: number;
|
|
63
|
+
message: string;
|
|
64
|
+
data: T;
|
|
65
|
+
timestamp: number;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* 上传配置选项
|
|
69
|
+
*/
|
|
70
|
+
interface UploadOptions {
|
|
71
|
+
/** 分片大小(字节),默认 2MB */
|
|
72
|
+
chunkSize?: number;
|
|
73
|
+
/** 并发上传数量,默认 3 */
|
|
74
|
+
concurrency?: number;
|
|
75
|
+
/** 重试次数,默认 3 */
|
|
76
|
+
retryCount?: number;
|
|
77
|
+
/** 重试延迟(毫秒),默认 1000 */
|
|
78
|
+
retryDelay?: number;
|
|
79
|
+
/** 基础API地址 */
|
|
80
|
+
baseURL?: string;
|
|
81
|
+
/** 请求头 */
|
|
82
|
+
headers?: Record<string, string>;
|
|
83
|
+
/** 上传进度回调 */
|
|
84
|
+
onProgress?: (progress: UploadProgress) => void;
|
|
85
|
+
/** 上传完成回调 */
|
|
86
|
+
onComplete?: (result: CompleteUploadResponse) => void;
|
|
87
|
+
/** 上传错误回调 */
|
|
88
|
+
onError?: (error: Error) => void;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* 上传状态
|
|
92
|
+
*/
|
|
93
|
+
declare enum UploadStatus {
|
|
94
|
+
PENDING = "pending",
|
|
95
|
+
UPLOADING = "uploading",
|
|
96
|
+
PAUSED = "paused",
|
|
97
|
+
COMPLETED = "completed",
|
|
98
|
+
FAILED = "failed",
|
|
99
|
+
CANCELLED = "cancelled"
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* 文件分片信息
|
|
103
|
+
*/
|
|
104
|
+
interface ChunkInfo {
|
|
105
|
+
index: number;
|
|
106
|
+
start: number;
|
|
107
|
+
end: number;
|
|
108
|
+
blob: Blob;
|
|
109
|
+
md5?: string;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
/**
|
|
113
|
+
* 文件分片上传工具类
|
|
114
|
+
* 支持分片上传、断点续传、进度追踪
|
|
115
|
+
*/
|
|
116
|
+
|
|
117
|
+
/**
|
|
118
|
+
* 文件上传器类
|
|
119
|
+
*/
|
|
120
|
+
declare class ChunkUploader {
|
|
121
|
+
private file;
|
|
122
|
+
private options;
|
|
123
|
+
private taskId;
|
|
124
|
+
private chunks;
|
|
125
|
+
private uploadedChunks;
|
|
126
|
+
private status;
|
|
127
|
+
private abortController;
|
|
128
|
+
constructor(file: File, options?: UploadOptions);
|
|
129
|
+
/**
|
|
130
|
+
* 初始化上传
|
|
131
|
+
*/
|
|
132
|
+
private initUpload;
|
|
133
|
+
/**
|
|
134
|
+
* 计算文件MD5(简化版,实际应该使用spark-md5等库)
|
|
135
|
+
*/
|
|
136
|
+
private calculateFileMD5;
|
|
137
|
+
/**
|
|
138
|
+
* 准备分片
|
|
139
|
+
*/
|
|
140
|
+
private prepareChunks;
|
|
141
|
+
/**
|
|
142
|
+
* 获取已上传的分片列表
|
|
143
|
+
*/
|
|
144
|
+
private getUploadedChunks;
|
|
145
|
+
/**
|
|
146
|
+
* 上传单个分片
|
|
147
|
+
*/
|
|
148
|
+
private uploadChunk;
|
|
149
|
+
/**
|
|
150
|
+
* 并发上传分片
|
|
151
|
+
*/
|
|
152
|
+
private uploadChunksConcurrently;
|
|
153
|
+
/**
|
|
154
|
+
* 完成上传
|
|
155
|
+
*/
|
|
156
|
+
private completeUpload;
|
|
157
|
+
/**
|
|
158
|
+
* 更新上传进度
|
|
159
|
+
*/
|
|
160
|
+
private updateProgress;
|
|
161
|
+
/**
|
|
162
|
+
* 开始上传
|
|
163
|
+
*/
|
|
164
|
+
upload(): Promise<CompleteUploadResponse>;
|
|
165
|
+
/**
|
|
166
|
+
* 暂停上传
|
|
167
|
+
*/
|
|
168
|
+
pause(): void;
|
|
169
|
+
/**
|
|
170
|
+
* 恢复上传
|
|
171
|
+
*/
|
|
172
|
+
resume(): Promise<CompleteUploadResponse>;
|
|
173
|
+
/**
|
|
174
|
+
* 取消上传
|
|
175
|
+
*/
|
|
176
|
+
cancel(): Promise<void>;
|
|
177
|
+
/**
|
|
178
|
+
* 获取当前状态
|
|
179
|
+
*/
|
|
180
|
+
getStatus(): UploadStatus;
|
|
181
|
+
/**
|
|
182
|
+
* 获取任务ID
|
|
183
|
+
*/
|
|
184
|
+
getTaskId(): string | null;
|
|
185
|
+
/**
|
|
186
|
+
* HTTP请求封装
|
|
187
|
+
*/
|
|
188
|
+
private request;
|
|
189
|
+
/**
|
|
190
|
+
* 延迟函数
|
|
191
|
+
*/
|
|
192
|
+
private delay;
|
|
193
|
+
}
|
|
194
|
+
/**
|
|
195
|
+
* 创建文件上传器实例
|
|
196
|
+
* @param file - 文件对象
|
|
197
|
+
* @param options - 上传配置选项
|
|
198
|
+
* @returns 上传器实例
|
|
199
|
+
*/
|
|
200
|
+
declare function createUploader(file: File, options?: UploadOptions): ChunkUploader;
|
|
201
|
+
|
|
202
|
+
export { type ApiResponse as A, ChunkUploader as C, type UploadInitRequest as U, type UploadInitResponse as a, type ChunkUploadResponse as b, createUploader as c, type CompleteUploadResponse as d, type UploadProgress as e, type UploadOptions as f, UploadStatus as g, type ChunkInfo as h };
|