sa2kit 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/LICENSE +22 -0
- package/README.md +298 -0
- package/dist/AliyunOSSProvider-7JLMJDXK.js +15 -0
- package/dist/AliyunOSSProvider-7JLMJDXK.js.map +1 -0
- package/dist/AliyunOSSProvider-GQMSDJGZ.mjs +6 -0
- package/dist/AliyunOSSProvider-GQMSDJGZ.mjs.map +1 -0
- package/dist/LocalStorageProvider-FVLLHBHO.mjs +6 -0
- package/dist/LocalStorageProvider-FVLLHBHO.mjs.map +1 -0
- package/dist/LocalStorageProvider-NBNHHWLY.js +15 -0
- package/dist/LocalStorageProvider-NBNHHWLY.js.map +1 -0
- package/dist/analytics/index.d.mts +1084 -0
- package/dist/analytics/index.d.ts +1084 -0
- package/dist/analytics/index.js +2595 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics/index.mjs +2518 -0
- package/dist/analytics/index.mjs.map +1 -0
- package/dist/analytics/server/index.d.mts +499 -0
- package/dist/analytics/server/index.d.ts +499 -0
- package/dist/analytics/server/index.js +529 -0
- package/dist/analytics/server/index.js.map +1 -0
- package/dist/analytics/server/index.mjs +525 -0
- package/dist/analytics/server/index.mjs.map +1 -0
- package/dist/auth/client/index.d.mts +104 -0
- package/dist/auth/client/index.d.ts +104 -0
- package/dist/auth/client/index.js +21 -0
- package/dist/auth/client/index.js.map +1 -0
- package/dist/auth/client/index.mjs +4 -0
- package/dist/auth/client/index.mjs.map +1 -0
- package/dist/auth/components/index.d.mts +82 -0
- package/dist/auth/components/index.d.ts +82 -0
- package/dist/auth/components/index.js +93 -0
- package/dist/auth/components/index.js.map +1 -0
- package/dist/auth/components/index.mjs +86 -0
- package/dist/auth/components/index.mjs.map +1 -0
- package/dist/auth/hooks/index.d.mts +2 -0
- package/dist/auth/hooks/index.d.ts +2 -0
- package/dist/auth/hooks/index.js +17 -0
- package/dist/auth/hooks/index.js.map +1 -0
- package/dist/auth/hooks/index.mjs +4 -0
- package/dist/auth/hooks/index.mjs.map +1 -0
- package/dist/auth/index.d.mts +15 -0
- package/dist/auth/index.d.ts +15 -0
- package/dist/auth/index.js +110 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/index.mjs +9 -0
- package/dist/auth/index.mjs.map +1 -0
- package/dist/auth/middleware/index.d.mts +75 -0
- package/dist/auth/middleware/index.d.ts +75 -0
- package/dist/auth/middleware/index.js +15 -0
- package/dist/auth/middleware/index.js.map +1 -0
- package/dist/auth/middleware/index.mjs +6 -0
- package/dist/auth/middleware/index.mjs.map +1 -0
- package/dist/auth/routes/index.d.mts +163 -0
- package/dist/auth/routes/index.d.ts +163 -0
- package/dist/auth/routes/index.js +27 -0
- package/dist/auth/routes/index.js.map +1 -0
- package/dist/auth/routes/index.mjs +6 -0
- package/dist/auth/routes/index.mjs.map +1 -0
- package/dist/auth/schema/index.d.mts +789 -0
- package/dist/auth/schema/index.d.ts +789 -0
- package/dist/auth/schema/index.js +41 -0
- package/dist/auth/schema/index.js.map +1 -0
- package/dist/auth/schema/index.mjs +4 -0
- package/dist/auth/schema/index.mjs.map +1 -0
- package/dist/auth/services/index.d.mts +47 -0
- package/dist/auth/services/index.d.ts +47 -0
- package/dist/auth/services/index.js +34 -0
- package/dist/auth/services/index.js.map +1 -0
- package/dist/auth/services/index.mjs +5 -0
- package/dist/auth/services/index.mjs.map +1 -0
- package/dist/chunk-3RFBUDRA.js +507 -0
- package/dist/chunk-3RFBUDRA.js.map +1 -0
- package/dist/chunk-3XG5OHFD.mjs +37 -0
- package/dist/chunk-3XG5OHFD.mjs.map +1 -0
- package/dist/chunk-6BL3AZGD.js +285 -0
- package/dist/chunk-6BL3AZGD.js.map +1 -0
- package/dist/chunk-6FNUWAIV.js +394 -0
- package/dist/chunk-6FNUWAIV.js.map +1 -0
- package/dist/chunk-6PRFP5EG.js +171 -0
- package/dist/chunk-6PRFP5EG.js.map +1 -0
- package/dist/chunk-6VHWOPRR.mjs +90 -0
- package/dist/chunk-6VHWOPRR.mjs.map +1 -0
- package/dist/chunk-AIKEVVDR.mjs +122 -0
- package/dist/chunk-AIKEVVDR.mjs.map +1 -0
- package/dist/chunk-APY57REU.js +300 -0
- package/dist/chunk-APY57REU.js.map +1 -0
- package/dist/chunk-BJTO5JO5.mjs +10 -0
- package/dist/chunk-BJTO5JO5.mjs.map +1 -0
- package/dist/chunk-C64RY2OW.mjs +295 -0
- package/dist/chunk-C64RY2OW.mjs.map +1 -0
- package/dist/chunk-DGUM43GV.js +12 -0
- package/dist/chunk-DGUM43GV.js.map +1 -0
- package/dist/chunk-FV3FNHQY.js +92 -0
- package/dist/chunk-FV3FNHQY.js.map +1 -0
- package/dist/chunk-GSTLV3MB.mjs +316 -0
- package/dist/chunk-GSTLV3MB.mjs.map +1 -0
- package/dist/chunk-HEMA7SWK.mjs +212 -0
- package/dist/chunk-HEMA7SWK.mjs.map +1 -0
- package/dist/chunk-HWJ34NL6.js +43 -0
- package/dist/chunk-HWJ34NL6.js.map +1 -0
- package/dist/chunk-HXFFYNIF.mjs +385 -0
- package/dist/chunk-HXFFYNIF.mjs.map +1 -0
- package/dist/chunk-KGRQNEIR.mjs +183 -0
- package/dist/chunk-KGRQNEIR.mjs.map +1 -0
- package/dist/chunk-KH6RQ4J5.js +28 -0
- package/dist/chunk-KH6RQ4J5.js.map +1 -0
- package/dist/chunk-KQGP6BTS.mjs +165 -0
- package/dist/chunk-KQGP6BTS.mjs.map +1 -0
- package/dist/chunk-NMF4ANIC.js +365 -0
- package/dist/chunk-NMF4ANIC.js.map +1 -0
- package/dist/chunk-O26VCNS3.js +216 -0
- package/dist/chunk-O26VCNS3.js.map +1 -0
- package/dist/chunk-OLHGZXN3.mjs +86 -0
- package/dist/chunk-OLHGZXN3.mjs.map +1 -0
- package/dist/chunk-QU5OT4DF.js +88 -0
- package/dist/chunk-QU5OT4DF.js.map +1 -0
- package/dist/chunk-RCNNVNLT.mjs +356 -0
- package/dist/chunk-RCNNVNLT.mjs.map +1 -0
- package/dist/chunk-ROEYW4A7.js +186 -0
- package/dist/chunk-ROEYW4A7.js.map +1 -0
- package/dist/chunk-SVWQN2LR.js +131 -0
- package/dist/chunk-SVWQN2LR.js.map +1 -0
- package/dist/chunk-TKCYPDWU.js +338 -0
- package/dist/chunk-TKCYPDWU.js.map +1 -0
- package/dist/chunk-U2L6V7KD.mjs +273 -0
- package/dist/chunk-U2L6V7KD.mjs.map +1 -0
- package/dist/chunk-YVBU7QDJ.mjs +505 -0
- package/dist/chunk-YVBU7QDJ.mjs.map +1 -0
- package/dist/chunk-ZGVB35L2.mjs +25 -0
- package/dist/chunk-ZGVB35L2.mjs.map +1 -0
- package/dist/config/index.d.mts +64 -0
- package/dist/config/index.d.ts +64 -0
- package/dist/config/index.js +136 -0
- package/dist/config/index.js.map +1 -0
- package/dist/config/index.mjs +128 -0
- package/dist/config/index.mjs.map +1 -0
- package/dist/drizzle-auth-service-Bxlovhv8.d.ts +145 -0
- package/dist/drizzle-auth-service-DZY2F1sv.d.mts +145 -0
- package/dist/enums-Dume-V5Y.d.mts +16 -0
- package/dist/enums-Dume-V5Y.d.ts +16 -0
- package/dist/i18n/index.d.mts +416 -0
- package/dist/i18n/index.d.ts +416 -0
- package/dist/i18n/index.js +671 -0
- package/dist/i18n/index.js.map +1 -0
- package/dist/i18n/index.mjs +650 -0
- package/dist/i18n/index.mjs.map +1 -0
- package/dist/index-8VoHap_4.d.mts +105 -0
- package/dist/index-8VoHap_4.d.ts +105 -0
- package/dist/index.d.mts +4 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.js +84 -0
- package/dist/index.js.map +1 -0
- package/dist/index.mjs +7 -0
- package/dist/index.mjs.map +1 -0
- package/dist/logger/index.d.mts +125 -0
- package/dist/logger/index.d.ts +125 -0
- package/dist/logger/index.js +29 -0
- package/dist/logger/index.js.map +1 -0
- package/dist/logger/index.mjs +4 -0
- package/dist/logger/index.mjs.map +1 -0
- package/dist/request/index.d.mts +51 -0
- package/dist/request/index.d.ts +51 -0
- package/dist/request/index.js +85 -0
- package/dist/request/index.js.map +1 -0
- package/dist/request/index.mjs +82 -0
- package/dist/request/index.mjs.map +1 -0
- package/dist/storage/index.d.mts +74 -0
- package/dist/storage/index.d.ts +74 -0
- package/dist/storage/index.js +46 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/index.mjs +5 -0
- package/dist/storage/index.mjs.map +1 -0
- package/dist/types-BINlP9MK.d.mts +286 -0
- package/dist/types-BINlP9MK.d.ts +286 -0
- package/dist/types-BaZccpvk.d.mts +48 -0
- package/dist/types-BaZccpvk.d.ts +48 -0
- package/dist/types-CbTsi9CZ.d.mts +31 -0
- package/dist/types-CbTsi9CZ.d.ts +31 -0
- package/dist/types-CoGG1rNV.d.mts +258 -0
- package/dist/types-CoGG1rNV.d.ts +258 -0
- package/dist/types-DAxQ1MeY.d.ts +70 -0
- package/dist/types-DT8LVCvE.d.mts +70 -0
- package/dist/types-DW9qar-w.d.mts +52 -0
- package/dist/types-DW9qar-w.d.ts +52 -0
- package/dist/universalExport/index.d.mts +235 -0
- package/dist/universalExport/index.d.ts +235 -0
- package/dist/universalExport/index.js +621 -0
- package/dist/universalExport/index.js.map +1 -0
- package/dist/universalExport/index.mjs +580 -0
- package/dist/universalExport/index.mjs.map +1 -0
- package/dist/universalExport/server/index.d.mts +429 -0
- package/dist/universalExport/server/index.d.ts +429 -0
- package/dist/universalExport/server/index.js +263 -0
- package/dist/universalExport/server/index.js.map +1 -0
- package/dist/universalExport/server/index.mjs +242 -0
- package/dist/universalExport/server/index.mjs.map +1 -0
- package/dist/universalFile/index.d.mts +310 -0
- package/dist/universalFile/index.d.ts +310 -0
- package/dist/universalFile/index.js +811 -0
- package/dist/universalFile/index.js.map +1 -0
- package/dist/universalFile/index.mjs +736 -0
- package/dist/universalFile/index.mjs.map +1 -0
- package/dist/universalFile/server/index.d.mts +2428 -0
- package/dist/universalFile/server/index.d.ts +2428 -0
- package/dist/universalFile/server/index.js +4578 -0
- package/dist/universalFile/server/index.js.map +1 -0
- package/dist/universalFile/server/index.mjs +4518 -0
- package/dist/universalFile/server/index.mjs.map +1 -0
- package/dist/useElectronStorage-Dj0rcorG.d.mts +65 -0
- package/dist/useElectronStorage-DwnNfIhl.d.ts +65 -0
- package/dist/utils/index.d.mts +188 -0
- package/dist/utils/index.d.ts +188 -0
- package/dist/utils/index.js +42 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/index.mjs +5 -0
- package/dist/utils/index.mjs.map +1 -0
- package/package.json +220 -0
- package/tailwind.animations.js +34 -0
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { S as StorageAdapter } from './types-BaZccpvk.mjs';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 通用存储 Hook
|
|
5
|
+
* 支持多平台:Web、React Native、小程序
|
|
6
|
+
*
|
|
7
|
+
* 优点:
|
|
8
|
+
* 1. 异步读取,不阻塞渲染
|
|
9
|
+
* 2. 统一的错误处理
|
|
10
|
+
* 3. 类型安全
|
|
11
|
+
* 4. 跨平台支持
|
|
12
|
+
* 5. 自动同步(支持的平台)
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
declare function useStorage<T>(storage: StorageAdapter, key: string, defaultValue: T): [T, (value: T) => void, () => void, boolean];
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Web 平台 localStorage Hook
|
|
19
|
+
* 基于通用 useStorage 的便捷封装
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Web 平台的 localStorage Hook
|
|
23
|
+
*
|
|
24
|
+
* @param key - 存储键名
|
|
25
|
+
* @param defaultValue - 默认值
|
|
26
|
+
* @returns [value, setValue, removeValue, isLoading]
|
|
27
|
+
*/
|
|
28
|
+
declare function useLocalStorage<T>(key: string, defaultValue: T): [T, (value: T) => void, () => void, boolean];
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* React Native 的 AsyncStorage Hook
|
|
32
|
+
*
|
|
33
|
+
* @param key - 存储键名
|
|
34
|
+
* @param defaultValue - 默认值
|
|
35
|
+
* @returns [value, setValue, removeValue, isLoading]
|
|
36
|
+
*/
|
|
37
|
+
declare function useAsyncStorage<T>(key: string, defaultValue: T): [T, (value: T) => void, () => void, boolean];
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 小程序的 Taro Storage Hook
|
|
41
|
+
*
|
|
42
|
+
* @param key - 存储键名
|
|
43
|
+
* @param defaultValue - 默认值
|
|
44
|
+
* @returns [value, setValue, removeValue, isLoading]
|
|
45
|
+
*/
|
|
46
|
+
declare function useTaroStorage<T>(key: string, defaultValue: T): [T, (value: T) => void, () => void, boolean];
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Electron 桌面端的 Storage Hook
|
|
50
|
+
*
|
|
51
|
+
* 在 Electron 渲染进程中使用 localStorage
|
|
52
|
+
* 支持跨窗口同步
|
|
53
|
+
*
|
|
54
|
+
* @param key - 存储键名
|
|
55
|
+
* @param defaultValue - 默认值
|
|
56
|
+
* @returns [value, setValue, removeValue, isLoading]
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```tsx
|
|
60
|
+
* const [token, setToken, removeToken] = useElectronStorage('auth-token', '')
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
declare function useElectronStorage<T>(key: string, defaultValue: T): [T, (value: T) => void, () => void, boolean];
|
|
64
|
+
|
|
65
|
+
export { useLocalStorage as a, useAsyncStorage as b, useTaroStorage as c, useElectronStorage as d, useStorage as u };
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { S as StorageAdapter } from './types-BaZccpvk.js';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* 通用存储 Hook
|
|
5
|
+
* 支持多平台:Web、React Native、小程序
|
|
6
|
+
*
|
|
7
|
+
* 优点:
|
|
8
|
+
* 1. 异步读取,不阻塞渲染
|
|
9
|
+
* 2. 统一的错误处理
|
|
10
|
+
* 3. 类型安全
|
|
11
|
+
* 4. 跨平台支持
|
|
12
|
+
* 5. 自动同步(支持的平台)
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
declare function useStorage<T>(storage: StorageAdapter, key: string, defaultValue: T): [T, (value: T) => void, () => void, boolean];
|
|
16
|
+
|
|
17
|
+
/**
|
|
18
|
+
* Web 平台 localStorage Hook
|
|
19
|
+
* 基于通用 useStorage 的便捷封装
|
|
20
|
+
*/
|
|
21
|
+
/**
|
|
22
|
+
* Web 平台的 localStorage Hook
|
|
23
|
+
*
|
|
24
|
+
* @param key - 存储键名
|
|
25
|
+
* @param defaultValue - 默认值
|
|
26
|
+
* @returns [value, setValue, removeValue, isLoading]
|
|
27
|
+
*/
|
|
28
|
+
declare function useLocalStorage<T>(key: string, defaultValue: T): [T, (value: T) => void, () => void, boolean];
|
|
29
|
+
|
|
30
|
+
/**
|
|
31
|
+
* React Native 的 AsyncStorage Hook
|
|
32
|
+
*
|
|
33
|
+
* @param key - 存储键名
|
|
34
|
+
* @param defaultValue - 默认值
|
|
35
|
+
* @returns [value, setValue, removeValue, isLoading]
|
|
36
|
+
*/
|
|
37
|
+
declare function useAsyncStorage<T>(key: string, defaultValue: T): [T, (value: T) => void, () => void, boolean];
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* 小程序的 Taro Storage Hook
|
|
41
|
+
*
|
|
42
|
+
* @param key - 存储键名
|
|
43
|
+
* @param defaultValue - 默认值
|
|
44
|
+
* @returns [value, setValue, removeValue, isLoading]
|
|
45
|
+
*/
|
|
46
|
+
declare function useTaroStorage<T>(key: string, defaultValue: T): [T, (value: T) => void, () => void, boolean];
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Electron 桌面端的 Storage Hook
|
|
50
|
+
*
|
|
51
|
+
* 在 Electron 渲染进程中使用 localStorage
|
|
52
|
+
* 支持跨窗口同步
|
|
53
|
+
*
|
|
54
|
+
* @param key - 存储键名
|
|
55
|
+
* @param defaultValue - 默认值
|
|
56
|
+
* @returns [value, setValue, removeValue, isLoading]
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* ```tsx
|
|
60
|
+
* const [token, setToken, removeToken] = useElectronStorage('auth-token', '')
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
declare function useElectronStorage<T>(key: string, defaultValue: T): [T, (value: T) => void, () => void, boolean];
|
|
64
|
+
|
|
65
|
+
export { useLocalStorage as a, useAsyncStorage as b, useTaroStorage as c, useElectronStorage as d, useStorage as u };
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 时间格式化工具
|
|
3
|
+
*/
|
|
4
|
+
declare const formatTime: {
|
|
5
|
+
/**
|
|
6
|
+
* 将秒数转换为 MM:SS 格式
|
|
7
|
+
*/
|
|
8
|
+
toMinutesSeconds(seconds: number): string;
|
|
9
|
+
/**
|
|
10
|
+
* 将秒数转换为 HH:MM:SS 格式
|
|
11
|
+
*/
|
|
12
|
+
toHoursMinutesSeconds(seconds: number): string;
|
|
13
|
+
/**
|
|
14
|
+
* 格式化日期为用户友好的格式
|
|
15
|
+
*/
|
|
16
|
+
formatDate(date: string | Date, locale?: string): string;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 日语文本处理工具
|
|
21
|
+
*/
|
|
22
|
+
declare const japaneseUtils: {
|
|
23
|
+
/**
|
|
24
|
+
* 提取文本中的汉字
|
|
25
|
+
*/
|
|
26
|
+
extractKanji(text: string): string[];
|
|
27
|
+
/**
|
|
28
|
+
* 提取文本中的假名
|
|
29
|
+
*/
|
|
30
|
+
extractKana(text: string): string[];
|
|
31
|
+
/**
|
|
32
|
+
* 清理文本,移除特殊字符但保留日语字符
|
|
33
|
+
*/
|
|
34
|
+
cleanText(text: string): string;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* 验证工具
|
|
39
|
+
*/
|
|
40
|
+
declare const validators: {
|
|
41
|
+
/**
|
|
42
|
+
* 验证邮箱格式
|
|
43
|
+
*/
|
|
44
|
+
isValidEmail(email: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* 验证密码强度
|
|
47
|
+
*/
|
|
48
|
+
isValidPassword(password: string): {
|
|
49
|
+
isValid: boolean;
|
|
50
|
+
errors: string[];
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* 验证用户名格式
|
|
54
|
+
*/
|
|
55
|
+
isValidUsername(username: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* 验证文件大小
|
|
58
|
+
*/
|
|
59
|
+
isValidFileSize(size: number, maxSize: number): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* 验证文件类型
|
|
62
|
+
*/
|
|
63
|
+
isValidFileType(type: string, supportedTypes: string[]): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* 验证 URL 格式
|
|
66
|
+
*/
|
|
67
|
+
isValidUrl(url: string): boolean;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* 文件处理工具
|
|
72
|
+
*/
|
|
73
|
+
declare const fileUtils: {
|
|
74
|
+
/**
|
|
75
|
+
* 格式化文件大小
|
|
76
|
+
*/
|
|
77
|
+
formatFileSize(bytes: number): string;
|
|
78
|
+
/**
|
|
79
|
+
* 获取文件扩展名
|
|
80
|
+
*/
|
|
81
|
+
getFileExtension(filename: string): string;
|
|
82
|
+
/**
|
|
83
|
+
* 生成唯一文件名
|
|
84
|
+
*/
|
|
85
|
+
generateUniqueFileName(originalName: string): string;
|
|
86
|
+
/**
|
|
87
|
+
* 验证文件名是否有效
|
|
88
|
+
*/
|
|
89
|
+
isValidFilename(filename: string): boolean;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* 数组和对象工具
|
|
94
|
+
*/
|
|
95
|
+
declare const arrayUtils: {
|
|
96
|
+
/**
|
|
97
|
+
* 数组去重
|
|
98
|
+
*/
|
|
99
|
+
unique<T>(array: T[]): T[];
|
|
100
|
+
/**
|
|
101
|
+
* 数组分组
|
|
102
|
+
*/
|
|
103
|
+
groupBy<T>(array: T[], key: keyof T): Record<string, T[]>;
|
|
104
|
+
/**
|
|
105
|
+
* 数组分页
|
|
106
|
+
*/
|
|
107
|
+
paginate<T>(array: T[], page: number, limit: number): {
|
|
108
|
+
data: T[];
|
|
109
|
+
total: number;
|
|
110
|
+
page: number;
|
|
111
|
+
pages: number;
|
|
112
|
+
hasNext: boolean;
|
|
113
|
+
hasPrev: boolean;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* 数组随机排序
|
|
117
|
+
*/
|
|
118
|
+
shuffle<T>(array: T[]): T[];
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* 字符串工具
|
|
123
|
+
*/
|
|
124
|
+
declare const stringUtils: {
|
|
125
|
+
/**
|
|
126
|
+
* 截断文本
|
|
127
|
+
*/
|
|
128
|
+
truncate(text: string, length: number, suffix?: string): string;
|
|
129
|
+
/**
|
|
130
|
+
* 首字母大写
|
|
131
|
+
*/
|
|
132
|
+
capitalize(text: string): string;
|
|
133
|
+
/**
|
|
134
|
+
* 驼峰转下划线
|
|
135
|
+
*/
|
|
136
|
+
camelToSnake(text: string): string;
|
|
137
|
+
/**
|
|
138
|
+
* 下划线转驼峰
|
|
139
|
+
*/
|
|
140
|
+
snakeToCamel(text: string): string;
|
|
141
|
+
/**
|
|
142
|
+
* 生成随机字符串
|
|
143
|
+
*/
|
|
144
|
+
generateRandom(length: number): string;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* 调试工具
|
|
149
|
+
*/
|
|
150
|
+
declare const debugUtils: {
|
|
151
|
+
/**
|
|
152
|
+
* 安全的 JSON 序列化
|
|
153
|
+
*/
|
|
154
|
+
safeStringify(obj: any): string;
|
|
155
|
+
/**
|
|
156
|
+
* 性能计时器
|
|
157
|
+
*/
|
|
158
|
+
createTimer(label?: string): {
|
|
159
|
+
end: () => number;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* 内存使用情况(仅在 Node.js 环境)
|
|
163
|
+
*/
|
|
164
|
+
getMemoryUsage(): Record<string, string> | null;
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* 错误处理工具
|
|
169
|
+
*/
|
|
170
|
+
declare const errorUtils: {
|
|
171
|
+
/**
|
|
172
|
+
* 创建标准化的错误对象
|
|
173
|
+
*/
|
|
174
|
+
createError(code: string, message: string, details?: any): Error & {
|
|
175
|
+
code: string;
|
|
176
|
+
details?: any;
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* 安全的错误信息提取
|
|
180
|
+
*/
|
|
181
|
+
extractErrorMessage(error: unknown): string;
|
|
182
|
+
/**
|
|
183
|
+
* 错误重试机制
|
|
184
|
+
*/
|
|
185
|
+
retry<T>(fn: () => Promise<T>, maxAttempts?: number, delay?: number): Promise<T>;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
export { arrayUtils, debugUtils, errorUtils, fileUtils, formatTime, japaneseUtils, stringUtils, validators };
|
|
@@ -0,0 +1,188 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 时间格式化工具
|
|
3
|
+
*/
|
|
4
|
+
declare const formatTime: {
|
|
5
|
+
/**
|
|
6
|
+
* 将秒数转换为 MM:SS 格式
|
|
7
|
+
*/
|
|
8
|
+
toMinutesSeconds(seconds: number): string;
|
|
9
|
+
/**
|
|
10
|
+
* 将秒数转换为 HH:MM:SS 格式
|
|
11
|
+
*/
|
|
12
|
+
toHoursMinutesSeconds(seconds: number): string;
|
|
13
|
+
/**
|
|
14
|
+
* 格式化日期为用户友好的格式
|
|
15
|
+
*/
|
|
16
|
+
formatDate(date: string | Date, locale?: string): string;
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* 日语文本处理工具
|
|
21
|
+
*/
|
|
22
|
+
declare const japaneseUtils: {
|
|
23
|
+
/**
|
|
24
|
+
* 提取文本中的汉字
|
|
25
|
+
*/
|
|
26
|
+
extractKanji(text: string): string[];
|
|
27
|
+
/**
|
|
28
|
+
* 提取文本中的假名
|
|
29
|
+
*/
|
|
30
|
+
extractKana(text: string): string[];
|
|
31
|
+
/**
|
|
32
|
+
* 清理文本,移除特殊字符但保留日语字符
|
|
33
|
+
*/
|
|
34
|
+
cleanText(text: string): string;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
/**
|
|
38
|
+
* 验证工具
|
|
39
|
+
*/
|
|
40
|
+
declare const validators: {
|
|
41
|
+
/**
|
|
42
|
+
* 验证邮箱格式
|
|
43
|
+
*/
|
|
44
|
+
isValidEmail(email: string): boolean;
|
|
45
|
+
/**
|
|
46
|
+
* 验证密码强度
|
|
47
|
+
*/
|
|
48
|
+
isValidPassword(password: string): {
|
|
49
|
+
isValid: boolean;
|
|
50
|
+
errors: string[];
|
|
51
|
+
};
|
|
52
|
+
/**
|
|
53
|
+
* 验证用户名格式
|
|
54
|
+
*/
|
|
55
|
+
isValidUsername(username: string): boolean;
|
|
56
|
+
/**
|
|
57
|
+
* 验证文件大小
|
|
58
|
+
*/
|
|
59
|
+
isValidFileSize(size: number, maxSize: number): boolean;
|
|
60
|
+
/**
|
|
61
|
+
* 验证文件类型
|
|
62
|
+
*/
|
|
63
|
+
isValidFileType(type: string, supportedTypes: string[]): boolean;
|
|
64
|
+
/**
|
|
65
|
+
* 验证 URL 格式
|
|
66
|
+
*/
|
|
67
|
+
isValidUrl(url: string): boolean;
|
|
68
|
+
};
|
|
69
|
+
|
|
70
|
+
/**
|
|
71
|
+
* 文件处理工具
|
|
72
|
+
*/
|
|
73
|
+
declare const fileUtils: {
|
|
74
|
+
/**
|
|
75
|
+
* 格式化文件大小
|
|
76
|
+
*/
|
|
77
|
+
formatFileSize(bytes: number): string;
|
|
78
|
+
/**
|
|
79
|
+
* 获取文件扩展名
|
|
80
|
+
*/
|
|
81
|
+
getFileExtension(filename: string): string;
|
|
82
|
+
/**
|
|
83
|
+
* 生成唯一文件名
|
|
84
|
+
*/
|
|
85
|
+
generateUniqueFileName(originalName: string): string;
|
|
86
|
+
/**
|
|
87
|
+
* 验证文件名是否有效
|
|
88
|
+
*/
|
|
89
|
+
isValidFilename(filename: string): boolean;
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
/**
|
|
93
|
+
* 数组和对象工具
|
|
94
|
+
*/
|
|
95
|
+
declare const arrayUtils: {
|
|
96
|
+
/**
|
|
97
|
+
* 数组去重
|
|
98
|
+
*/
|
|
99
|
+
unique<T>(array: T[]): T[];
|
|
100
|
+
/**
|
|
101
|
+
* 数组分组
|
|
102
|
+
*/
|
|
103
|
+
groupBy<T>(array: T[], key: keyof T): Record<string, T[]>;
|
|
104
|
+
/**
|
|
105
|
+
* 数组分页
|
|
106
|
+
*/
|
|
107
|
+
paginate<T>(array: T[], page: number, limit: number): {
|
|
108
|
+
data: T[];
|
|
109
|
+
total: number;
|
|
110
|
+
page: number;
|
|
111
|
+
pages: number;
|
|
112
|
+
hasNext: boolean;
|
|
113
|
+
hasPrev: boolean;
|
|
114
|
+
};
|
|
115
|
+
/**
|
|
116
|
+
* 数组随机排序
|
|
117
|
+
*/
|
|
118
|
+
shuffle<T>(array: T[]): T[];
|
|
119
|
+
};
|
|
120
|
+
|
|
121
|
+
/**
|
|
122
|
+
* 字符串工具
|
|
123
|
+
*/
|
|
124
|
+
declare const stringUtils: {
|
|
125
|
+
/**
|
|
126
|
+
* 截断文本
|
|
127
|
+
*/
|
|
128
|
+
truncate(text: string, length: number, suffix?: string): string;
|
|
129
|
+
/**
|
|
130
|
+
* 首字母大写
|
|
131
|
+
*/
|
|
132
|
+
capitalize(text: string): string;
|
|
133
|
+
/**
|
|
134
|
+
* 驼峰转下划线
|
|
135
|
+
*/
|
|
136
|
+
camelToSnake(text: string): string;
|
|
137
|
+
/**
|
|
138
|
+
* 下划线转驼峰
|
|
139
|
+
*/
|
|
140
|
+
snakeToCamel(text: string): string;
|
|
141
|
+
/**
|
|
142
|
+
* 生成随机字符串
|
|
143
|
+
*/
|
|
144
|
+
generateRandom(length: number): string;
|
|
145
|
+
};
|
|
146
|
+
|
|
147
|
+
/**
|
|
148
|
+
* 调试工具
|
|
149
|
+
*/
|
|
150
|
+
declare const debugUtils: {
|
|
151
|
+
/**
|
|
152
|
+
* 安全的 JSON 序列化
|
|
153
|
+
*/
|
|
154
|
+
safeStringify(obj: any): string;
|
|
155
|
+
/**
|
|
156
|
+
* 性能计时器
|
|
157
|
+
*/
|
|
158
|
+
createTimer(label?: string): {
|
|
159
|
+
end: () => number;
|
|
160
|
+
};
|
|
161
|
+
/**
|
|
162
|
+
* 内存使用情况(仅在 Node.js 环境)
|
|
163
|
+
*/
|
|
164
|
+
getMemoryUsage(): Record<string, string> | null;
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* 错误处理工具
|
|
169
|
+
*/
|
|
170
|
+
declare const errorUtils: {
|
|
171
|
+
/**
|
|
172
|
+
* 创建标准化的错误对象
|
|
173
|
+
*/
|
|
174
|
+
createError(code: string, message: string, details?: any): Error & {
|
|
175
|
+
code: string;
|
|
176
|
+
details?: any;
|
|
177
|
+
};
|
|
178
|
+
/**
|
|
179
|
+
* 安全的错误信息提取
|
|
180
|
+
*/
|
|
181
|
+
extractErrorMessage(error: unknown): string;
|
|
182
|
+
/**
|
|
183
|
+
* 错误重试机制
|
|
184
|
+
*/
|
|
185
|
+
retry<T>(fn: () => Promise<T>, maxAttempts?: number, delay?: number): Promise<T>;
|
|
186
|
+
};
|
|
187
|
+
|
|
188
|
+
export { arrayUtils, debugUtils, errorUtils, fileUtils, formatTime, japaneseUtils, stringUtils, validators };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var chunkNMF4ANIC_js = require('../chunk-NMF4ANIC.js');
|
|
4
|
+
require('../chunk-6PRFP5EG.js');
|
|
5
|
+
require('../chunk-DGUM43GV.js');
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
Object.defineProperty(exports, "arrayUtils", {
|
|
10
|
+
enumerable: true,
|
|
11
|
+
get: function () { return chunkNMF4ANIC_js.arrayUtils; }
|
|
12
|
+
});
|
|
13
|
+
Object.defineProperty(exports, "debugUtils", {
|
|
14
|
+
enumerable: true,
|
|
15
|
+
get: function () { return chunkNMF4ANIC_js.debugUtils; }
|
|
16
|
+
});
|
|
17
|
+
Object.defineProperty(exports, "errorUtils", {
|
|
18
|
+
enumerable: true,
|
|
19
|
+
get: function () { return chunkNMF4ANIC_js.errorUtils; }
|
|
20
|
+
});
|
|
21
|
+
Object.defineProperty(exports, "fileUtils", {
|
|
22
|
+
enumerable: true,
|
|
23
|
+
get: function () { return chunkNMF4ANIC_js.fileUtils; }
|
|
24
|
+
});
|
|
25
|
+
Object.defineProperty(exports, "formatTime", {
|
|
26
|
+
enumerable: true,
|
|
27
|
+
get: function () { return chunkNMF4ANIC_js.formatTime; }
|
|
28
|
+
});
|
|
29
|
+
Object.defineProperty(exports, "japaneseUtils", {
|
|
30
|
+
enumerable: true,
|
|
31
|
+
get: function () { return chunkNMF4ANIC_js.japaneseUtils; }
|
|
32
|
+
});
|
|
33
|
+
Object.defineProperty(exports, "stringUtils", {
|
|
34
|
+
enumerable: true,
|
|
35
|
+
get: function () { return chunkNMF4ANIC_js.stringUtils; }
|
|
36
|
+
});
|
|
37
|
+
Object.defineProperty(exports, "validators", {
|
|
38
|
+
enumerable: true,
|
|
39
|
+
get: function () { return chunkNMF4ANIC_js.validators; }
|
|
40
|
+
});
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
42
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.js"}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
export { arrayUtils, debugUtils, errorUtils, fileUtils, formatTime, japaneseUtils, stringUtils, validators } from '../chunk-RCNNVNLT.mjs';
|
|
2
|
+
import '../chunk-KQGP6BTS.mjs';
|
|
3
|
+
import '../chunk-BJTO5JO5.mjs';
|
|
4
|
+
//# sourceMappingURL=index.mjs.map
|
|
5
|
+
//# sourceMappingURL=index.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"index.mjs"}
|