gzjs-utils 1.0.25 → 1.0.26

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.
@@ -1,34 +1,81 @@
1
- export declare type Hmac = {
1
+ import { default as CryptoJS } from 'crypto-js';
2
+ /**
3
+ * 输入类型:string | Uint8Array | Int8Array | number[]
4
+ */
5
+ type HmacInput = string | Uint8Array | Int8Array | number[];
6
+ /**
7
+ * HMAC (Hash-based Message Authentication Code) 工具类
8
+ * 基于 crypto-js 实现,支持 MD5、SHA1、SHA224、SHA256、SHA384、SHA512
9
+ */
10
+ declare const _Hmac_: {
2
11
  /**
3
- * hmac_sha1 加密
4
- * @param key
5
- * @param data
12
+ * HMAC-MD5 加密
13
+ * @param key 密钥
14
+ * @param data 待加密数据
15
+ * @returns 16 进制字符串(32 字符)
6
16
  */
7
- sha1(key: string, data: string | Uint8Array | Int8Array | any): Uint8Array;
17
+ md5(key: HmacInput, data: HmacInput): string;
8
18
  /**
9
- * hmac_sha224 加密
10
- * @param key
11
- * @param data
19
+ * HMAC-SHA1 加密
20
+ * @param key 密钥
21
+ * @param data 待加密数据
22
+ * @returns 16 进制字符串(40 字符)
12
23
  */
13
- sha224(key: string, data: string | Uint8Array | Int8Array | any): Uint8Array;
24
+ sha1(key: HmacInput, data: HmacInput): string;
14
25
  /**
15
- * hmac_sha256 加密
16
- * @param key
17
- * @param data
26
+ * HMAC-SHA224 加密
27
+ * @param key 密钥
28
+ * @param data 待加密数据
29
+ * @returns 16 进制字符串(56 字符)
18
30
  */
19
- sha256(key: string, data: string | Uint8Array | Int8Array | any): Uint8Array;
31
+ sha224(key: HmacInput, data: HmacInput): string;
20
32
  /**
21
- * hmac_sha384 加密
22
- * @param key
23
- * @param data
33
+ * HMAC-SHA256 加密
34
+ * @param key 密钥
35
+ * @param data 待加密数据
36
+ * @returns 16 进制字符串(64 字符)
24
37
  */
25
- sha384(key: string, data: string | Uint8Array | Int8Array | any): Uint8Array;
38
+ sha256(key: HmacInput, data: HmacInput): string;
26
39
  /**
27
- * hmac_sha512 加密
28
- * @param key
29
- * @param data
40
+ * HMAC-SHA384 加密
41
+ * @param key 密钥
42
+ * @param data 待加密数据
43
+ * @returns 16 进制字符串(96 字符)
30
44
  */
31
- sha512(key: string, data: string | Uint8Array | Int8Array | any): Uint8Array;
45
+ sha384(key: HmacInput, data: HmacInput): string;
46
+ /**
47
+ * HMAC-SHA512 加密
48
+ * @param key 密钥
49
+ * @param data 待加密数据
50
+ * @returns 16 进制字符串(128 字符)
51
+ */
52
+ sha512(key: HmacInput, data: HmacInput): string;
53
+ /**
54
+ * HMAC-SHA256 返回 WordArray(用于内部调用)
55
+ * @param key 密钥
56
+ * @param data 待加密数据
57
+ * @returns CryptoJS WordArray
58
+ */
59
+ SHA256(key: HmacInput, data: HmacInput): CryptoJS.lib.WordArray;
60
+ /**
61
+ * HMAC-SHA512 返回 WordArray(用于内部调用)
62
+ * @param key 密钥
63
+ * @param data 待加密数据
64
+ * @returns CryptoJS WordArray
65
+ */
66
+ SHA512(key: HmacInput, data: HmacInput): CryptoJS.lib.WordArray;
67
+ /**
68
+ * HMAC-SHA1 返回 WordArray
69
+ */
70
+ SHA1(key: HmacInput, data: HmacInput): CryptoJS.lib.WordArray;
71
+ /**
72
+ * HMAC-SHA224 返回 WordArray
73
+ */
74
+ SHA224(key: HmacInput, data: HmacInput): CryptoJS.lib.WordArray;
75
+ /**
76
+ * HMAC-SHA384 返回 WordArray
77
+ */
78
+ SHA384(key: HmacInput, data: HmacInput): CryptoJS.lib.WordArray;
32
79
  };
33
- declare const _default: Hmac;
34
- export default _default;
80
+ export default _Hmac_;
81
+ export type Hmac = typeof _Hmac_;
@@ -1,15 +1,65 @@
1
- export declare type MD5 = {
1
+ /**
2
+ * 进度信息
3
+ */
4
+ export interface MD5ProgressInfo {
5
+ /** 已读取字节数 */
6
+ loaded: number;
7
+ /** 文件总字节数 */
8
+ total: number;
9
+ /** 进度百分比 (0-100) */
10
+ percent: number;
11
+ }
12
+ /**
13
+ * 文件 MD5 计算选项
14
+ */
15
+ export interface MD5FileOptions {
16
+ /** 分块大小,默认 4MB */
17
+ chunkSize?: number;
18
+ /** 进度回调函数 */
19
+ onProgress?: (info: MD5ProgressInfo) => void;
20
+ }
21
+ /**
22
+ * 文件输入类型:浏览器 File 对象或 Node.js 文件路径字符串
23
+ */
24
+ type MD5FileInput = File | string;
25
+ /**
26
+ * HMAC-MD5 加密,返回十六进制字符串
27
+ * @param key 密钥
28
+ * @param data 数据
29
+ * @returns 十六进制字符串格式的 HMAC-MD5 哈希值
30
+ */
31
+ export declare function hmac_md5(key: any, data: any): string;
32
+ /**
33
+ * MD5 工具类
34
+ */
35
+ declare const _MD5_: {
2
36
  /**
3
- * MD5 加密
4
- * @param str
37
+ * MD5 加密,返回十六进制字符串
38
+ * @param str 待加密的字符串
39
+ * @returns 十六进制字符串格式的 MD5 哈希值
5
40
  */
6
- encode(str: string): string | null | undefined;
41
+ encode(str: string): string;
7
42
  /**
8
- * hmac_md5 加密
43
+ * HMAC-MD5 加密,返回十六进制字符串
9
44
  * @param key 加密密钥
10
45
  * @param str 加密内容
46
+ * @returns 十六进制字符串格式的 HMAC-MD5 哈希值
11
47
  */
12
- hmac_md5(key: string, str: string): string | null | undefined;
48
+ HmacMD5(key: string, str: string): string;
49
+ /**
50
+ * 计算文件 MD5 哈希(支持大文件流式计算)
51
+ * @param file 文件对象(浏览器)或文件路径(Node.js)
52
+ * @param options 可选配置:分块大小、进度回调
53
+ * @returns Promise<string> 返回哈希值(32 字符 hex)
54
+ * @example
55
+ * // Node.js
56
+ * const hash = await MD5.encodeFile('/path/to/file.zip', {
57
+ * onProgress: (p) => console.log(`${p.percent}%`)
58
+ * });
59
+ * // 浏览器
60
+ * const hash = await MD5.encodeFile(fileInput.files[0]);
61
+ */
62
+ encodeFile(file: MD5FileInput, options?: MD5FileOptions): Promise<string>;
13
63
  };
14
- declare const _MD5_: MD5;
15
64
  export default _MD5_;
65
+ export declare type MD5 = typeof _MD5_;
@@ -1,14 +1,21 @@
1
+ export declare class AggregateError extends Error {
2
+ errors: any[];
3
+ constructor(errors: any[], message?: string);
4
+ }
1
5
  export declare class _Promise {
2
6
  private PromiseState;
3
- private PromiseRuesult;
7
+ private PromiseResult;
4
8
  private callbacks;
5
9
  private finallys;
6
- constructor(executor: any);
7
- then(onResolved: any, onRejected: any): Promise<unknown>;
8
- catch(onRejected: any): Promise<unknown>;
9
- finally(onFinally: any): this;
10
- static resolve(value: any): Promise<unknown>;
11
- static reject(reason: any): Promise<unknown>;
12
- static all(promises: Array<Promise<any> | _Promise>): Promise<unknown>;
13
- static race(promises: any): Promise<unknown>;
10
+ constructor(executor: (resolve: (value?: any) => void, reject: (reason?: any) => void) => void);
11
+ then(onResolved?: (value: any) => any, onRejected?: (reason: any) => any): _Promise;
12
+ catch(onRejected: (reason: any) => any): _Promise;
13
+ finally(onFinally?: () => any): _Promise;
14
+ static resolve(value: any): _Promise;
15
+ static reject(reason: any): _Promise;
16
+ static all(promises: Array<_Promise | Promise<any>>): _Promise;
17
+ static race(promises: Array<_Promise | Promise<any>>): _Promise;
18
+ static any(promises: Array<_Promise | Promise<any>>): _Promise;
14
19
  }
20
+ export default _Promise;
21
+ export type PromiseType = typeof _Promise;
@@ -0,0 +1,164 @@
1
+ /**
2
+ * @description: the description Regexps
3
+ * @fileName: Regexps.ts
4
+ * @author: xiyuan-lgz
5
+ * @date: 2026-02-28 13:17:19
6
+ * @version: 1.0.0
7
+ */
8
+ export declare const _Regexps_: {
9
+ /**
10
+ * 空格 空白
11
+ */
12
+ SPACE: RegExp;
13
+ /**
14
+ * 左空白
15
+ */
16
+ SPACE_LEFT: RegExp;
17
+ /**
18
+ * 有空白
19
+ */
20
+ SPACE_RIGHT: RegExp;
21
+ /**
22
+ * //数字,至少1位
23
+ */
24
+ NUMERIC: RegExp;
25
+ /**
26
+ * //整数,支持正负数
27
+ */
28
+ INTEGER: RegExp;
29
+ /**
30
+ * //正整数,第一个数字是1-9
31
+ */
32
+ INTEGER_P: RegExp;
33
+ /**
34
+ * //非负整数,0或者正整数
35
+ */
36
+ INTEGER_N_N: RegExp;
37
+ /**
38
+ * //浮点值,支持多位小数点,支持正负数
39
+ */
40
+ FLOAT: RegExp;
41
+ /**
42
+ * //浮点值,支持多位小数
43
+ */
44
+ FLOAT_N_N: RegExp;
45
+ /**
46
+ * //标准元金额,支持0-2位小数,支持正负数
47
+ */
48
+ AMOUNT_2R: RegExp;
49
+ /**
50
+ * //固定元金额,两位小数,支持正负数
51
+ */
52
+ AMOUNT_2R_FIXED: RegExp;
53
+ /**
54
+ * //标准元金额,支持0-2位小数
55
+ */
56
+ AMOUNT_N_N_2R: RegExp;
57
+ /**
58
+ * //固定元金额,两位小数
59
+ */
60
+ AMOUNT_N_N_2R_FIXED: RegExp;
61
+ /**
62
+ * //字母
63
+ */
64
+ ALPHABAT: RegExp;
65
+ /**
66
+ * //大写字母
67
+ */
68
+ ALPHABAT_UPPER: RegExp;
69
+ /**
70
+ * //小写字母
71
+ */
72
+ ALPHABAT_LOWER: RegExp;
73
+ /**
74
+ * //小写字母或数字
75
+ */
76
+ ALPHA_LOWER_NUMERIC: RegExp;
77
+ /**
78
+ * //大写字母或数字
79
+ */
80
+ ALPHA_UPPER_NUMERIC: RegExp;
81
+ /**
82
+ * //大小写字母或数字
83
+ */
84
+ ALPHA_NUMERIC: RegExp;
85
+ /**
86
+ * //大小写字母或数字,开头必须为字母
87
+ */
88
+ ALPHA_NUMERIC_PA: RegExp;
89
+ /**
90
+ * //双字节
91
+ */
92
+ ALPHABAT_DOUBLE: RegExp;
93
+ /**
94
+ * //中文
95
+ */
96
+ CHINESE: RegExp;
97
+ /**
98
+ * //中文大小写字母和数字
99
+ */
100
+ CHINESE_ALPHA_NUMERIC: RegExp;
101
+ /**
102
+ * //日期 YYYY-MM-DD
103
+ */
104
+ DATE: RegExp;
105
+ /**
106
+ * //时间 HH:mm:ss
107
+ */
108
+ TIME: RegExp;
109
+ /**
110
+ * //日期时间 YYYY-MM-DD HH:mm:ss
111
+ */
112
+ DATE_TIME: RegExp;
113
+ /**
114
+ * //日期时间匹配
115
+ */
116
+ DATE_TIME_MATCH: RegExp;
117
+ /**
118
+ * //HTML标签
119
+ */
120
+ HTML: RegExp;
121
+ /**
122
+ * //HTML标签匹配
123
+ */
124
+ HTML_TAG: RegExp;
125
+ /**
126
+ * //HTML标签名称匹配
127
+ */
128
+ HTML_TAG_NAME: RegExp;
129
+ /**
130
+ * //手机号 支持 11位 + 国别
131
+ */
132
+ MOBILE: RegExp;
133
+ /**
134
+ * //手机号11位
135
+ */
136
+ MOBILE_11: RegExp;
137
+ /**
138
+ * //IP地址
139
+ */
140
+ IP: RegExp;
141
+ /**
142
+ * //MAC地址
143
+ */
144
+ MAC: RegExp;
145
+ /**
146
+ * //QQ号
147
+ */
148
+ QQ: RegExp;
149
+ /**
150
+ * //邮政编码
151
+ */
152
+ POSTAL_CODE: RegExp;
153
+ /**
154
+ * //邮箱
155
+ */
156
+ EMAIL: RegExp;
157
+ /**
158
+ * //身份证
159
+ */
160
+ IDCARD: RegExp;
161
+ IPv6: RegExp;
162
+ };
163
+ export default _Regexps_;
164
+ export declare type Regexps = typeof _Regexps_;
@@ -0,0 +1,42 @@
1
+ import { AxiosRequestConfig } from '/#/types/axios';
2
+ export type RequestConfig = {
3
+ meta?: {
4
+ /**
5
+ * 是否忽略节流,默认false
6
+ */
7
+ ignoreThrottle?: boolean;
8
+ /**
9
+ * 节流时长,单位毫秒
10
+ */
11
+ throttleDuration?: number;
12
+ } & Record<any, any>;
13
+ } & AxiosRequestConfig;
14
+ declare const Requests: {
15
+ /**
16
+ * 节流请求
17
+ * 在指定的节流时长内,相同的请求会被合并,只执行一次实际请求
18
+ * 多个调用者会共享同一个响应结果
19
+ *
20
+ * @param config 请求参数
21
+ * @param request 实际请求函数
22
+ * @param duration 节流时长 单位/毫秒 默认=1000
23
+ * @returns Promise<响应结果>
24
+ *
25
+ * @example
26
+ * // 基本使用
27
+ * const result = await Requests.ThrottleRequest(
28
+ * { url: '/api/data', method: 'GET' },
29
+ * axios.request,
30
+ * 1000 // 1秒内相同请求只发一次
31
+ * );
32
+ *
33
+ * @example
34
+ * // 忽略节流
35
+ * const result = await Requests.ThrottleRequest(
36
+ * { url: '/api/data', meta: { ignoreThrottle: true } },
37
+ * axios.request
38
+ * );
39
+ */
40
+ ThrottleRequest<P extends RequestConfig, R = any>(config: P, request: (config: P) => Promise<R>, duration?: number): Promise<R>;
41
+ };
42
+ export default Requests;
@@ -1,29 +1,91 @@
1
- export declare type SHA = {
1
+ /**
2
+ * 输入类型:string | Uint8Array | Int8Array | number[]
3
+ */
4
+ type SHAInput = string | Uint8Array | Int8Array | number[];
5
+ /**
6
+ * 进度信息
7
+ */
8
+ export interface ProgressInfo {
9
+ /** 已读取字节数 */
10
+ loaded: number;
11
+ /** 文件总字节数 */
12
+ total: number;
13
+ /** 进度百分比 (0-100) */
14
+ percent: number;
15
+ }
16
+ /**
17
+ * 文件哈希计算选项
18
+ */
19
+ export interface FileHashOptions {
20
+ /** 分块大小,默认 4MB */
21
+ chunkSize?: number;
22
+ /** 进度回调函数 */
23
+ onProgress?: (info: ProgressInfo) => void;
24
+ }
25
+ /**
26
+ * 文件输入类型:浏览器 File 对象或 Node.js 文件路径字符串
27
+ */
28
+ type FileInput = File | string;
29
+ declare const SHA: {
2
30
  /**
3
- * sha1 加密
4
- * @param data
31
+ * SHA1 加密
32
+ * @param src 输入数据
33
+ * @returns hex 字符串(40 字符)
5
34
  */
6
- sha1(data: string | Uint8Array | Int8Array | any): Uint8Array;
35
+ sha1(src: SHAInput): string | null;
7
36
  /**
8
- * sha224 加密
9
- * @param data
37
+ * SHA224 加密
38
+ * @param data 输入数据
39
+ * @returns hex 字符串(56 字符)
10
40
  */
11
- sha224(data: string | Uint8Array | Int8Array | any): Uint8Array;
41
+ sha224(data: SHAInput): string | null;
12
42
  /**
13
- * sha256 加密
14
- * @param data
43
+ * SHA256 加密
44
+ * @param src 输入数据
45
+ * @returns hex 字符串(64 字符)
15
46
  */
16
- sha256(data: string | Uint8Array | Int8Array | any): Uint8Array;
47
+ sha256(src: SHAInput): string | null;
17
48
  /**
18
- * sha384 加密
19
- * @param data
49
+ * SHA384 加密
50
+ * @param src 输入数据
51
+ * @returns hex 字符串(96 字符)
20
52
  */
21
- sha384(data: string | Uint8Array | Int8Array | any): Uint8Array;
53
+ sha384(src: SHAInput): string | null;
22
54
  /**
23
- * sha512 加密
24
- * @param data
55
+ * SHA512 加密
56
+ * @param src 输入数据
57
+ * @returns hex 字符串(128 字符)
25
58
  */
26
- sha512(data: string | Uint8Array | Int8Array | any): Uint8Array;
59
+ sha512(src: SHAInput): string | null;
60
+ /**
61
+ * 计算 SHA256 文件哈希(支持大文件流式计算)
62
+ * @param file 文件对象(浏览器)或文件路径(Node.js)
63
+ * @param options 可选配置:分块大小、进度回调
64
+ * @returns Promise<string> 返回哈希值(64 字符 hex)
65
+ * @example
66
+ * // Node.js
67
+ * const hash = await SHA.sha256File('/path/to/file.mp4', {
68
+ * onProgress: (p) => console.log(`${p.percent}%`)
69
+ * });
70
+ * // 浏览器
71
+ * const hash = await SHA.sha256File(fileInput.files[0]);
72
+ */
73
+ sha256File(file: FileInput, options?: FileHashOptions): Promise<string>;
74
+ /**
75
+ * 计算 SHA512 文件哈希(支持大文件流式计算)
76
+ * @param file 文件对象(浏览器)或文件路径(Node.js)
77
+ * @param options 可选配置:分块大小、进度回调
78
+ * @returns Promise<string> 返回哈希值(128 字符 hex)
79
+ * @example
80
+ * // Node.js
81
+ * const hash = await SHA.sha512File('/path/to/large-file.zip');
82
+ * // 浏览器
83
+ * const hash = await SHA.sha512File(fileInput.files[0], {
84
+ * chunkSize: 8 * 1024 * 1024, // 8MB 分块
85
+ * onProgress: (p) => updateProgressBar(p.percent)
86
+ * });
87
+ */
88
+ sha512File(file: FileInput, options?: FileHashOptions): Promise<string>;
27
89
  };
28
- declare const _default: SHA;
29
- export default _default;
90
+ export default SHA;
91
+ export type SHA = typeof SHA;
@@ -87,4 +87,4 @@ declare const _TreeUtils_: {
87
87
  filter<T>(arr: T[], filter: TreeFilter<T>, childrenField?: string | "children"): T[];
88
88
  };
89
89
  export default _TreeUtils_;
90
- export type TreeUtils = typeof _TreeUtils_;
90
+ export declare type TreeUtils = typeof _TreeUtils_;