@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,176 @@
|
|
|
1
|
+
import { RSAKeyPair } from './crypto.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 存储工具函数
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* 存储配置选项
|
|
9
|
+
*/
|
|
10
|
+
interface StorageOptions {
|
|
11
|
+
/** RSA公钥(用于加密) */
|
|
12
|
+
publicKey?: CryptoKey;
|
|
13
|
+
/** RSA私钥(用于解密) */
|
|
14
|
+
privateKey?: CryptoKey;
|
|
15
|
+
/** 是否启用加密,默认为 true */
|
|
16
|
+
encrypt?: boolean;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* 设置全局RSA密钥对
|
|
20
|
+
* @param keyPair - RSA密钥对
|
|
21
|
+
*/
|
|
22
|
+
declare function setStorageKeyPair(keyPair: RSAKeyPair): void;
|
|
23
|
+
/**
|
|
24
|
+
* 获取全局密钥对
|
|
25
|
+
* @returns 全局密钥对或null
|
|
26
|
+
*/
|
|
27
|
+
declare function getStorageKeyPair(): RSAKeyPair | null;
|
|
28
|
+
/**
|
|
29
|
+
* localStorage封装(支持过期时间和RSA加密)
|
|
30
|
+
*/
|
|
31
|
+
declare const localStorage: {
|
|
32
|
+
/**
|
|
33
|
+
* 设置值
|
|
34
|
+
* @param key - 键
|
|
35
|
+
* @param value - 值
|
|
36
|
+
* @param options - 选项(过期时间、密钥等)
|
|
37
|
+
* @returns Promise<void>
|
|
38
|
+
*/
|
|
39
|
+
set<T>(key: string, value: T, options?: {
|
|
40
|
+
expiry?: number;
|
|
41
|
+
publicKey?: CryptoKey;
|
|
42
|
+
}): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* 获取值
|
|
45
|
+
* @param key - 键
|
|
46
|
+
* @param options - 选项(默认值、私钥等)
|
|
47
|
+
* @returns Promise<T | undefined> 值或默认值
|
|
48
|
+
*/
|
|
49
|
+
get<T>(key: string, options?: {
|
|
50
|
+
defaultValue?: T;
|
|
51
|
+
privateKey?: CryptoKey;
|
|
52
|
+
}): Promise<T | undefined>;
|
|
53
|
+
/**
|
|
54
|
+
* 移除值
|
|
55
|
+
* @param key - 键
|
|
56
|
+
*/
|
|
57
|
+
remove(key: string): void;
|
|
58
|
+
/**
|
|
59
|
+
* 清空所有值
|
|
60
|
+
*/
|
|
61
|
+
clear(): void;
|
|
62
|
+
/**
|
|
63
|
+
* 获取所有键
|
|
64
|
+
* @returns 键数组
|
|
65
|
+
*/
|
|
66
|
+
keys(): string[];
|
|
67
|
+
};
|
|
68
|
+
/**
|
|
69
|
+
* sessionStorage封装(支持RSA加密)
|
|
70
|
+
*/
|
|
71
|
+
declare const sessionStorage: {
|
|
72
|
+
/**
|
|
73
|
+
* 设置值
|
|
74
|
+
* @param key - 键
|
|
75
|
+
* @param value - 值
|
|
76
|
+
* @param options - 选项(公钥等)
|
|
77
|
+
* @returns Promise<void>
|
|
78
|
+
*/
|
|
79
|
+
set<T>(key: string, value: T, options?: {
|
|
80
|
+
publicKey?: CryptoKey;
|
|
81
|
+
}): Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* 获取值
|
|
84
|
+
* @param key - 键
|
|
85
|
+
* @param options - 选项(默认值、私钥等)
|
|
86
|
+
* @returns Promise<T | undefined> 值或默认值
|
|
87
|
+
*/
|
|
88
|
+
get<T>(key: string, options?: {
|
|
89
|
+
defaultValue?: T;
|
|
90
|
+
privateKey?: CryptoKey;
|
|
91
|
+
}): Promise<T | undefined>;
|
|
92
|
+
/**
|
|
93
|
+
* 移除值
|
|
94
|
+
* @param key - 键
|
|
95
|
+
*/
|
|
96
|
+
remove(key: string): void;
|
|
97
|
+
/**
|
|
98
|
+
* 清空所有值
|
|
99
|
+
*/
|
|
100
|
+
clear(): void;
|
|
101
|
+
};
|
|
102
|
+
/**
|
|
103
|
+
* Cookie操作封装
|
|
104
|
+
*/
|
|
105
|
+
declare const cookie: {
|
|
106
|
+
/**
|
|
107
|
+
* 设置Cookie
|
|
108
|
+
* @param key - 键
|
|
109
|
+
* @param value - 值
|
|
110
|
+
* @param options - Cookie选项
|
|
111
|
+
*/
|
|
112
|
+
set(key: string, value: string, options?: {
|
|
113
|
+
expires?: number | Date;
|
|
114
|
+
path?: string;
|
|
115
|
+
domain?: string;
|
|
116
|
+
secure?: boolean;
|
|
117
|
+
sameSite?: "strict" | "lax" | "none";
|
|
118
|
+
}): void;
|
|
119
|
+
/**
|
|
120
|
+
* 获取Cookie
|
|
121
|
+
* @param key - 键
|
|
122
|
+
* @returns Cookie值
|
|
123
|
+
*/
|
|
124
|
+
get(key: string): string | undefined;
|
|
125
|
+
/**
|
|
126
|
+
* 移除Cookie
|
|
127
|
+
* @param key - 键
|
|
128
|
+
* @param options - Cookie选项
|
|
129
|
+
*/
|
|
130
|
+
remove(key: string, options?: {
|
|
131
|
+
path?: string;
|
|
132
|
+
domain?: string;
|
|
133
|
+
}): void;
|
|
134
|
+
/**
|
|
135
|
+
* 获取所有Cookie
|
|
136
|
+
* @returns Cookie对象
|
|
137
|
+
*/
|
|
138
|
+
getAll(): Record<string, string>;
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* 统一存储接口(自动选择存储方式,支持RSA加密)
|
|
142
|
+
*/
|
|
143
|
+
declare const storage: {
|
|
144
|
+
/**
|
|
145
|
+
* 设置值(优先使用localStorage,失败则使用sessionStorage)
|
|
146
|
+
* @param key - 键
|
|
147
|
+
* @param value - 值
|
|
148
|
+
* @param options - 选项(过期时间、公钥等)
|
|
149
|
+
* @returns Promise<void>
|
|
150
|
+
*/
|
|
151
|
+
set<T>(key: string, value: T, options?: {
|
|
152
|
+
expiry?: number;
|
|
153
|
+
publicKey?: CryptoKey;
|
|
154
|
+
}): Promise<void>;
|
|
155
|
+
/**
|
|
156
|
+
* 获取值
|
|
157
|
+
* @param key - 键
|
|
158
|
+
* @param options - 选项(默认值、私钥等)
|
|
159
|
+
* @returns Promise<T | undefined> 值或默认值
|
|
160
|
+
*/
|
|
161
|
+
get<T>(key: string, options?: {
|
|
162
|
+
defaultValue?: T;
|
|
163
|
+
privateKey?: CryptoKey;
|
|
164
|
+
}): Promise<T | undefined>;
|
|
165
|
+
/**
|
|
166
|
+
* 移除值
|
|
167
|
+
* @param key - 键
|
|
168
|
+
*/
|
|
169
|
+
remove(key: string): void;
|
|
170
|
+
/**
|
|
171
|
+
* 清空所有值
|
|
172
|
+
*/
|
|
173
|
+
clear(): void;
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
export { type StorageOptions, cookie, getStorageKeyPair, localStorage, sessionStorage, setStorageKeyPair, storage };
|
package/dist/storage.js
ADDED
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkXVUE53T3_js = require('./chunk-XVUE53T3.js');
|
|
4
|
+
require('./chunk-DYBSRI7V.js');
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
Object.defineProperty(exports, "cookie", {
|
|
9
|
+
enumerable: true,
|
|
10
|
+
get: function () { return chunkXVUE53T3_js.cookie; }
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "getStorageKeyPair", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function () { return chunkXVUE53T3_js.getStorageKeyPair; }
|
|
15
|
+
});
|
|
16
|
+
Object.defineProperty(exports, "localStorage", {
|
|
17
|
+
enumerable: true,
|
|
18
|
+
get: function () { return chunkXVUE53T3_js.localStorage; }
|
|
19
|
+
});
|
|
20
|
+
Object.defineProperty(exports, "sessionStorage", {
|
|
21
|
+
enumerable: true,
|
|
22
|
+
get: function () { return chunkXVUE53T3_js.sessionStorage; }
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "setStorageKeyPair", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function () { return chunkXVUE53T3_js.setStorageKeyPair; }
|
|
27
|
+
});
|
|
28
|
+
Object.defineProperty(exports, "storage", {
|
|
29
|
+
enumerable: true,
|
|
30
|
+
get: function () { return chunkXVUE53T3_js.storage; }
|
|
31
|
+
});
|
|
32
|
+
//# sourceMappingURL=storage.js.map
|
|
33
|
+
//# sourceMappingURL=storage.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"storage.js"}
|
package/dist/storage.mjs
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"storage.mjs"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 字符串工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 首字母大写
|
|
6
|
+
* @param str - 输入字符串
|
|
7
|
+
* @returns 首字母大写的字符串
|
|
8
|
+
*/
|
|
9
|
+
declare function capitalize(str: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* 驼峰命名转换
|
|
12
|
+
* @param str - 输入字符串(支持 kebab-case, snake_case, space separated)
|
|
13
|
+
* @returns 驼峰命名字符串
|
|
14
|
+
*/
|
|
15
|
+
declare function camelCase(str: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* 短横线命名转换
|
|
18
|
+
* @param str - 输入字符串
|
|
19
|
+
* @returns kebab-case 字符串
|
|
20
|
+
*/
|
|
21
|
+
declare function kebabCase(str: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* 截断字符串
|
|
24
|
+
* @param str - 输入字符串
|
|
25
|
+
* @param length - 最大长度
|
|
26
|
+
* @param suffix - 后缀,默认为 '...'
|
|
27
|
+
* @returns 截断后的字符串
|
|
28
|
+
*/
|
|
29
|
+
declare function truncate(str: string, length: number, suffix?: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* 下划线命名转换
|
|
32
|
+
* @param str - 输入字符串
|
|
33
|
+
* @returns snake_case 字符串
|
|
34
|
+
*/
|
|
35
|
+
declare function snakeCase(str: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* 帕斯卡命名转换
|
|
38
|
+
* @param str - 输入字符串(支持 kebab-case, snake_case, space separated)
|
|
39
|
+
* @returns PascalCase 字符串
|
|
40
|
+
*/
|
|
41
|
+
declare function pascalCase(str: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* 字符串脱敏
|
|
44
|
+
* @param str - 输入字符串
|
|
45
|
+
* @param options - 脱敏选项
|
|
46
|
+
* @returns 脱敏后的字符串
|
|
47
|
+
*/
|
|
48
|
+
declare function mask(str: string, options?: {
|
|
49
|
+
start?: number;
|
|
50
|
+
end?: number;
|
|
51
|
+
maskChar?: string;
|
|
52
|
+
}): string;
|
|
53
|
+
/**
|
|
54
|
+
* 手机号脱敏(默认显示前3位和后4位)
|
|
55
|
+
* @param phone - 手机号
|
|
56
|
+
* @returns 脱敏后的手机号
|
|
57
|
+
*/
|
|
58
|
+
declare function maskPhone(phone: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* 邮箱脱敏(默认显示前2位和@后的域名)
|
|
61
|
+
* @param email - 邮箱地址
|
|
62
|
+
* @returns 脱敏后的邮箱
|
|
63
|
+
*/
|
|
64
|
+
declare function maskEmail(email: string): string;
|
|
65
|
+
/**
|
|
66
|
+
* URL友好的字符串转换(slugify)
|
|
67
|
+
* @param str - 输入字符串
|
|
68
|
+
* @returns URL友好的字符串
|
|
69
|
+
*/
|
|
70
|
+
declare function slugify(str: string): string;
|
|
71
|
+
/**
|
|
72
|
+
* 移除重音符号
|
|
73
|
+
* @param str - 输入字符串
|
|
74
|
+
* @returns 移除重音后的字符串
|
|
75
|
+
*/
|
|
76
|
+
declare function removeAccents(str: string): string;
|
|
77
|
+
/**
|
|
78
|
+
* HTML转义
|
|
79
|
+
* @param str - 输入字符串
|
|
80
|
+
* @returns 转义后的字符串
|
|
81
|
+
*/
|
|
82
|
+
declare function escapeHtml(str: string): string;
|
|
83
|
+
/**
|
|
84
|
+
* HTML反转义
|
|
85
|
+
* @param str - 输入字符串
|
|
86
|
+
* @returns 反转义后的字符串
|
|
87
|
+
*/
|
|
88
|
+
declare function unescapeHtml(str: string): string;
|
|
89
|
+
/**
|
|
90
|
+
* 模板字符串替换
|
|
91
|
+
* @param template - 模板字符串,使用 {{key}} 作为占位符
|
|
92
|
+
* @param data - 替换数据对象
|
|
93
|
+
* @returns 替换后的字符串
|
|
94
|
+
*/
|
|
95
|
+
declare function template(template: string, data: Record<string, unknown>): string;
|
|
96
|
+
/**
|
|
97
|
+
* 关键词高亮
|
|
98
|
+
* @param text - 文本内容
|
|
99
|
+
* @param keyword - 关键词
|
|
100
|
+
* @param tag - 高亮标签,默认为 'mark'
|
|
101
|
+
* @returns 高亮后的HTML字符串
|
|
102
|
+
*/
|
|
103
|
+
declare function highlight(text: string, keyword: string, tag?: string): string;
|
|
104
|
+
|
|
105
|
+
export { camelCase, capitalize, escapeHtml, highlight, kebabCase, mask, maskEmail, maskPhone, pascalCase, removeAccents, slugify, snakeCase, template, truncate, unescapeHtml };
|
package/dist/string.d.ts
ADDED
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 字符串工具函数
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* 首字母大写
|
|
6
|
+
* @param str - 输入字符串
|
|
7
|
+
* @returns 首字母大写的字符串
|
|
8
|
+
*/
|
|
9
|
+
declare function capitalize(str: string): string;
|
|
10
|
+
/**
|
|
11
|
+
* 驼峰命名转换
|
|
12
|
+
* @param str - 输入字符串(支持 kebab-case, snake_case, space separated)
|
|
13
|
+
* @returns 驼峰命名字符串
|
|
14
|
+
*/
|
|
15
|
+
declare function camelCase(str: string): string;
|
|
16
|
+
/**
|
|
17
|
+
* 短横线命名转换
|
|
18
|
+
* @param str - 输入字符串
|
|
19
|
+
* @returns kebab-case 字符串
|
|
20
|
+
*/
|
|
21
|
+
declare function kebabCase(str: string): string;
|
|
22
|
+
/**
|
|
23
|
+
* 截断字符串
|
|
24
|
+
* @param str - 输入字符串
|
|
25
|
+
* @param length - 最大长度
|
|
26
|
+
* @param suffix - 后缀,默认为 '...'
|
|
27
|
+
* @returns 截断后的字符串
|
|
28
|
+
*/
|
|
29
|
+
declare function truncate(str: string, length: number, suffix?: string): string;
|
|
30
|
+
/**
|
|
31
|
+
* 下划线命名转换
|
|
32
|
+
* @param str - 输入字符串
|
|
33
|
+
* @returns snake_case 字符串
|
|
34
|
+
*/
|
|
35
|
+
declare function snakeCase(str: string): string;
|
|
36
|
+
/**
|
|
37
|
+
* 帕斯卡命名转换
|
|
38
|
+
* @param str - 输入字符串(支持 kebab-case, snake_case, space separated)
|
|
39
|
+
* @returns PascalCase 字符串
|
|
40
|
+
*/
|
|
41
|
+
declare function pascalCase(str: string): string;
|
|
42
|
+
/**
|
|
43
|
+
* 字符串脱敏
|
|
44
|
+
* @param str - 输入字符串
|
|
45
|
+
* @param options - 脱敏选项
|
|
46
|
+
* @returns 脱敏后的字符串
|
|
47
|
+
*/
|
|
48
|
+
declare function mask(str: string, options?: {
|
|
49
|
+
start?: number;
|
|
50
|
+
end?: number;
|
|
51
|
+
maskChar?: string;
|
|
52
|
+
}): string;
|
|
53
|
+
/**
|
|
54
|
+
* 手机号脱敏(默认显示前3位和后4位)
|
|
55
|
+
* @param phone - 手机号
|
|
56
|
+
* @returns 脱敏后的手机号
|
|
57
|
+
*/
|
|
58
|
+
declare function maskPhone(phone: string): string;
|
|
59
|
+
/**
|
|
60
|
+
* 邮箱脱敏(默认显示前2位和@后的域名)
|
|
61
|
+
* @param email - 邮箱地址
|
|
62
|
+
* @returns 脱敏后的邮箱
|
|
63
|
+
*/
|
|
64
|
+
declare function maskEmail(email: string): string;
|
|
65
|
+
/**
|
|
66
|
+
* URL友好的字符串转换(slugify)
|
|
67
|
+
* @param str - 输入字符串
|
|
68
|
+
* @returns URL友好的字符串
|
|
69
|
+
*/
|
|
70
|
+
declare function slugify(str: string): string;
|
|
71
|
+
/**
|
|
72
|
+
* 移除重音符号
|
|
73
|
+
* @param str - 输入字符串
|
|
74
|
+
* @returns 移除重音后的字符串
|
|
75
|
+
*/
|
|
76
|
+
declare function removeAccents(str: string): string;
|
|
77
|
+
/**
|
|
78
|
+
* HTML转义
|
|
79
|
+
* @param str - 输入字符串
|
|
80
|
+
* @returns 转义后的字符串
|
|
81
|
+
*/
|
|
82
|
+
declare function escapeHtml(str: string): string;
|
|
83
|
+
/**
|
|
84
|
+
* HTML反转义
|
|
85
|
+
* @param str - 输入字符串
|
|
86
|
+
* @returns 反转义后的字符串
|
|
87
|
+
*/
|
|
88
|
+
declare function unescapeHtml(str: string): string;
|
|
89
|
+
/**
|
|
90
|
+
* 模板字符串替换
|
|
91
|
+
* @param template - 模板字符串,使用 {{key}} 作为占位符
|
|
92
|
+
* @param data - 替换数据对象
|
|
93
|
+
* @returns 替换后的字符串
|
|
94
|
+
*/
|
|
95
|
+
declare function template(template: string, data: Record<string, unknown>): string;
|
|
96
|
+
/**
|
|
97
|
+
* 关键词高亮
|
|
98
|
+
* @param text - 文本内容
|
|
99
|
+
* @param keyword - 关键词
|
|
100
|
+
* @param tag - 高亮标签,默认为 'mark'
|
|
101
|
+
* @returns 高亮后的HTML字符串
|
|
102
|
+
*/
|
|
103
|
+
declare function highlight(text: string, keyword: string, tag?: string): string;
|
|
104
|
+
|
|
105
|
+
export { camelCase, capitalize, escapeHtml, highlight, kebabCase, mask, maskEmail, maskPhone, pascalCase, removeAccents, slugify, snakeCase, template, truncate, unescapeHtml };
|
package/dist/string.js
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkD7CS5EKF_js = require('./chunk-D7CS5EKF.js');
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
|
|
7
|
+
Object.defineProperty(exports, "camelCase", {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () { return chunkD7CS5EKF_js.camelCase; }
|
|
10
|
+
});
|
|
11
|
+
Object.defineProperty(exports, "capitalize", {
|
|
12
|
+
enumerable: true,
|
|
13
|
+
get: function () { return chunkD7CS5EKF_js.capitalize; }
|
|
14
|
+
});
|
|
15
|
+
Object.defineProperty(exports, "escapeHtml", {
|
|
16
|
+
enumerable: true,
|
|
17
|
+
get: function () { return chunkD7CS5EKF_js.escapeHtml; }
|
|
18
|
+
});
|
|
19
|
+
Object.defineProperty(exports, "highlight", {
|
|
20
|
+
enumerable: true,
|
|
21
|
+
get: function () { return chunkD7CS5EKF_js.highlight; }
|
|
22
|
+
});
|
|
23
|
+
Object.defineProperty(exports, "kebabCase", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () { return chunkD7CS5EKF_js.kebabCase; }
|
|
26
|
+
});
|
|
27
|
+
Object.defineProperty(exports, "mask", {
|
|
28
|
+
enumerable: true,
|
|
29
|
+
get: function () { return chunkD7CS5EKF_js.mask; }
|
|
30
|
+
});
|
|
31
|
+
Object.defineProperty(exports, "maskEmail", {
|
|
32
|
+
enumerable: true,
|
|
33
|
+
get: function () { return chunkD7CS5EKF_js.maskEmail; }
|
|
34
|
+
});
|
|
35
|
+
Object.defineProperty(exports, "maskPhone", {
|
|
36
|
+
enumerable: true,
|
|
37
|
+
get: function () { return chunkD7CS5EKF_js.maskPhone; }
|
|
38
|
+
});
|
|
39
|
+
Object.defineProperty(exports, "pascalCase", {
|
|
40
|
+
enumerable: true,
|
|
41
|
+
get: function () { return chunkD7CS5EKF_js.pascalCase; }
|
|
42
|
+
});
|
|
43
|
+
Object.defineProperty(exports, "removeAccents", {
|
|
44
|
+
enumerable: true,
|
|
45
|
+
get: function () { return chunkD7CS5EKF_js.removeAccents; }
|
|
46
|
+
});
|
|
47
|
+
Object.defineProperty(exports, "slugify", {
|
|
48
|
+
enumerable: true,
|
|
49
|
+
get: function () { return chunkD7CS5EKF_js.slugify; }
|
|
50
|
+
});
|
|
51
|
+
Object.defineProperty(exports, "snakeCase", {
|
|
52
|
+
enumerable: true,
|
|
53
|
+
get: function () { return chunkD7CS5EKF_js.snakeCase; }
|
|
54
|
+
});
|
|
55
|
+
Object.defineProperty(exports, "template", {
|
|
56
|
+
enumerable: true,
|
|
57
|
+
get: function () { return chunkD7CS5EKF_js.template; }
|
|
58
|
+
});
|
|
59
|
+
Object.defineProperty(exports, "truncate", {
|
|
60
|
+
enumerable: true,
|
|
61
|
+
get: function () { return chunkD7CS5EKF_js.truncate; }
|
|
62
|
+
});
|
|
63
|
+
Object.defineProperty(exports, "unescapeHtml", {
|
|
64
|
+
enumerable: true,
|
|
65
|
+
get: function () { return chunkD7CS5EKF_js.unescapeHtml; }
|
|
66
|
+
});
|
|
67
|
+
//# sourceMappingURL=string.js.map
|
|
68
|
+
//# sourceMappingURL=string.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"string.js"}
|
package/dist/string.mjs
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
export { camelCase, capitalize, escapeHtml, highlight, kebabCase, mask, maskEmail, maskPhone, pascalCase, removeAccents, slugify, snakeCase, template, truncate, unescapeHtml } from './chunk-XJTZDXSR.mjs';
|
|
2
|
+
//# sourceMappingURL=string.mjs.map
|
|
3
|
+
//# sourceMappingURL=string.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"string.mjs"}
|
|
@@ -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 };
|