sa2kit 1.6.10 → 1.6.11
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/dist/ConfigService-BxK06xP6.d.mts +262 -0
- package/dist/ConfigService-BxK06xP6.d.ts +262 -0
- package/dist/UniversalFileService-BuHN-jrR.d.ts +515 -0
- package/dist/UniversalFileService-CGGzYeeF.d.mts +515 -0
- package/dist/analytics/index.d.mts +1084 -0
- package/dist/analytics/index.d.ts +1084 -0
- package/dist/analytics/server/index.d.mts +499 -0
- package/dist/analytics/server/index.d.ts +499 -0
- package/dist/api/index.d.mts +248 -0
- package/dist/api/index.d.ts +248 -0
- package/dist/audioDetection/index.d.mts +449 -0
- package/dist/audioDetection/index.d.ts +449 -0
- package/dist/auth/client/index.d.mts +32 -0
- package/dist/auth/client/index.d.ts +32 -0
- package/dist/auth/client/index.js +4 -4
- package/dist/auth/client/index.mjs +1 -1
- package/dist/auth/components/index.d.mts +227 -0
- package/dist/auth/components/index.d.ts +227 -0
- package/dist/auth/components/index.js +4 -4
- package/dist/auth/components/index.mjs +1 -1
- package/dist/auth/hooks/index.d.mts +31 -0
- package/dist/auth/hooks/index.d.ts +31 -0
- package/dist/auth/hooks/index.js +3 -3
- package/dist/auth/hooks/index.mjs +1 -1
- package/dist/auth/index.d.mts +41 -0
- package/dist/auth/index.d.ts +41 -0
- package/dist/auth/index.js +17 -36
- package/dist/auth/index.js.map +1 -1
- package/dist/auth/index.mjs +3 -33
- package/dist/auth/index.mjs.map +1 -1
- package/dist/auth/middleware/index.d.mts +75 -0
- package/dist/auth/middleware/index.d.ts +75 -0
- package/dist/auth/routes/index.d.mts +261 -0
- package/dist/auth/routes/index.d.ts +261 -0
- package/dist/auth/schema/index.d.mts +789 -0
- package/dist/auth/schema/index.d.ts +789 -0
- package/dist/auth/services/index.d.mts +48 -0
- package/dist/auth/services/index.d.ts +48 -0
- package/dist/base-api-client-B-yUCal3.d.ts +103 -0
- package/dist/base-api-client-BQ8ZPZjk.d.mts +103 -0
- package/dist/calendar/index.d.mts +1197 -0
- package/dist/calendar/index.d.ts +1197 -0
- package/dist/calendar/index.js +8 -8
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/index.mjs +1 -1
- package/dist/calendar/index.mjs.map +1 -1
- package/dist/calendar/routes/index.d.mts +118 -0
- package/dist/calendar/routes/index.d.ts +118 -0
- package/dist/calendar/server.d.mts +1184 -0
- package/dist/calendar/server.d.ts +1184 -0
- package/dist/{chunk-ROEYW4A7.js → chunk-5QMBZP7S.js} +2 -2
- package/dist/chunk-5QMBZP7S.js.map +1 -0
- package/dist/chunk-6BZ3QFA5.mjs +33 -0
- package/dist/chunk-6BZ3QFA5.mjs.map +1 -0
- package/dist/{chunk-HEMA7SWK.mjs → chunk-6YKMCPQI.mjs} +2 -2
- package/dist/chunk-6YKMCPQI.mjs.map +1 -0
- package/dist/chunk-BH5TLVS5.mjs +1593 -0
- package/dist/chunk-BH5TLVS5.mjs.map +1 -0
- package/dist/chunk-E72D5KHY.js +1723 -0
- package/dist/chunk-E72D5KHY.js.map +1 -0
- package/dist/chunk-FAHLZIYQ.js +36 -0
- package/dist/chunk-FAHLZIYQ.js.map +1 -0
- package/dist/{chunk-KGRQNEIR.mjs → chunk-KW5JH6V6.mjs} +2 -2
- package/dist/chunk-KW5JH6V6.mjs.map +1 -0
- package/dist/{chunk-O26VCNS3.js → chunk-UOFTHYIH.js} +2 -2
- package/dist/chunk-UOFTHYIH.js.map +1 -0
- package/dist/config/index.d.mts +64 -0
- package/dist/config/index.d.ts +64 -0
- package/dist/config/server/index.d.mts +1533 -0
- package/dist/config/server/index.d.ts +1533 -0
- package/dist/drizzle-auth-service-Bxlovhv8.d.ts +145 -0
- package/dist/drizzle-auth-service-DZY2F1sv.d.mts +145 -0
- package/dist/drizzle-schema-BNhqj2AZ.d.mts +1114 -0
- package/dist/drizzle-schema-BNhqj2AZ.d.ts +1114 -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 +417 -0
- package/dist/i18n/index.d.ts +417 -0
- package/dist/imageCrop/index.d.mts +165 -0
- package/dist/imageCrop/index.d.ts +165 -0
- package/dist/index-DSel44Ke.d.mts +93 -0
- package/dist/index-DSel44Ke.d.ts +93 -0
- package/dist/index.d.mts +933 -0
- package/dist/index.d.ts +933 -0
- package/dist/index.js +1626 -2184
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +708 -1543
- package/dist/index.mjs.map +1 -1
- package/dist/logger/index.d.mts +125 -0
- package/dist/logger/index.d.ts +125 -0
- package/dist/mmd/admin/index.d.mts +487 -0
- package/dist/mmd/admin/index.d.ts +487 -0
- package/dist/mmd/index.d.mts +1412 -0
- package/dist/mmd/index.d.ts +1412 -0
- package/dist/mmd/index.js +2695 -625
- package/dist/mmd/index.js.map +1 -1
- package/dist/mmd/index.mjs +2501 -448
- package/dist/mmd/index.mjs.map +1 -1
- package/dist/mmd/server/index.d.mts +138 -0
- package/dist/mmd/server/index.d.ts +138 -0
- package/dist/music/index.d.mts +74 -0
- package/dist/music/index.d.ts +74 -0
- package/dist/music/server/index.d.mts +1 -0
- package/dist/music/server/index.d.ts +1 -0
- package/dist/request/index.d.mts +51 -0
- package/dist/request/index.d.ts +51 -0
- package/dist/storage/index.d.mts +75 -0
- package/dist/storage/index.d.ts +75 -0
- package/dist/testYourself/admin/index.d.mts +58 -0
- package/dist/testYourself/admin/index.d.ts +58 -0
- package/dist/testYourself/index.d.mts +53 -0
- package/dist/testYourself/index.d.ts +53 -0
- package/dist/testYourself/server/index.d.mts +1029 -0
- package/dist/testYourself/server/index.d.ts +1029 -0
- package/dist/types-BB-7_WtE.d.mts +253 -0
- package/dist/types-BB-7_WtE.d.ts +253 -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-CK4We_aI.d.mts +270 -0
- package/dist/types-CK4We_aI.d.ts +270 -0
- package/dist/types-CbTsi9CZ.d.mts +31 -0
- package/dist/types-CbTsi9CZ.d.ts +31 -0
- package/dist/types-CiYK5Klf.d.mts +99 -0
- package/dist/types-D3R6GzOw.d.mts +70 -0
- package/dist/types-Dlu52uDy.d.ts +99 -0
- package/dist/types-iFeyR443.d.ts +70 -0
- package/dist/universalExport/index.d.mts +235 -0
- package/dist/universalExport/index.d.ts +235 -0
- package/dist/universalExport/server/index.d.mts +1270 -0
- package/dist/universalExport/server/index.d.ts +1270 -0
- package/dist/universalFile/index.d.mts +480 -0
- package/dist/universalFile/index.d.ts +480 -0
- package/dist/universalFile/server/index.d.mts +4516 -0
- package/dist/universalFile/server/index.d.ts +4516 -0
- package/dist/useElectronStorage-Dj0rcorG.d.mts +65 -0
- package/dist/useElectronStorage-DwnNfIhl.d.ts +65 -0
- package/dist/utils/index.d.mts +192 -0
- package/dist/utils/index.d.ts +192 -0
- package/package.json +2 -1
- package/dist/chunk-4FOBBWXW.mjs +0 -179
- package/dist/chunk-4FOBBWXW.mjs.map +0 -1
- package/dist/chunk-G6WRJ2H2.js +0 -187
- package/dist/chunk-G6WRJ2H2.js.map +0 -1
- package/dist/chunk-HEMA7SWK.mjs.map +0 -1
- package/dist/chunk-KGRQNEIR.mjs.map +0 -1
- package/dist/chunk-O26VCNS3.js.map +0 -1
- package/dist/chunk-ROEYW4A7.js.map +0 -1
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 测测你是什么 - 类型定义
|
|
3
|
+
* Test Yourself Game - Type Definitions
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 测试结果项
|
|
7
|
+
*/
|
|
8
|
+
interface TestResult {
|
|
9
|
+
/** 唯一标识 */
|
|
10
|
+
id: string;
|
|
11
|
+
/** 标题/题目 */
|
|
12
|
+
title: string;
|
|
13
|
+
/** 描述 */
|
|
14
|
+
description: string;
|
|
15
|
+
/** 图片URL或emoji */
|
|
16
|
+
image: string;
|
|
17
|
+
/** 图片类型 */
|
|
18
|
+
imageType?: 'url' | 'emoji';
|
|
19
|
+
/** 额外属性(可扩展) */
|
|
20
|
+
extra?: Record<string, any>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 测试配置
|
|
24
|
+
*/
|
|
25
|
+
interface TestConfig {
|
|
26
|
+
/** 游戏标题 */
|
|
27
|
+
gameTitle: string;
|
|
28
|
+
/** 游戏描述 */
|
|
29
|
+
gameDescription?: string;
|
|
30
|
+
/** 按钮文本 */
|
|
31
|
+
buttonText?: string;
|
|
32
|
+
/** 长按时间(毫秒) */
|
|
33
|
+
longPressDuration?: number;
|
|
34
|
+
/** 结果数据集 */
|
|
35
|
+
results: TestResult[];
|
|
36
|
+
/** 是否启用IP获取 */
|
|
37
|
+
enableIPFetch?: boolean;
|
|
38
|
+
/** 自定义盐值 */
|
|
39
|
+
customSalt?: string;
|
|
40
|
+
/** 结果展示样式 */
|
|
41
|
+
resultStyle?: 'card' | 'full' | 'minimal';
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 设备指纹信息
|
|
45
|
+
*/
|
|
46
|
+
interface DeviceFingerprint {
|
|
47
|
+
/** User Agent */
|
|
48
|
+
userAgent: string;
|
|
49
|
+
/** IP地址(如果可获取) */
|
|
50
|
+
ip?: string;
|
|
51
|
+
/** 屏幕分辨率 */
|
|
52
|
+
screenResolution: string;
|
|
53
|
+
/** 时区 */
|
|
54
|
+
timezone: string;
|
|
55
|
+
/** 语言 */
|
|
56
|
+
language: string;
|
|
57
|
+
/** 平台 */
|
|
58
|
+
platform: string;
|
|
59
|
+
/** 颜色深度 */
|
|
60
|
+
colorDepth?: number;
|
|
61
|
+
/** 像素比 */
|
|
62
|
+
devicePixelRatio?: number;
|
|
63
|
+
/** 硬件并发数 */
|
|
64
|
+
hardwareConcurrency?: number;
|
|
65
|
+
/** 最大触摸点数 */
|
|
66
|
+
maxTouchPoints?: number;
|
|
67
|
+
/** Canvas指纹 */
|
|
68
|
+
canvasFingerprint?: string;
|
|
69
|
+
/** WebGL指纹 */
|
|
70
|
+
webglFingerprint?: string;
|
|
71
|
+
/** 字体列表 */
|
|
72
|
+
fonts?: string;
|
|
73
|
+
/** 是否支持cookie */
|
|
74
|
+
cookieEnabled?: boolean;
|
|
75
|
+
/** 是否支持本地存储 */
|
|
76
|
+
localStorageEnabled?: boolean;
|
|
77
|
+
/** 是否支持会话存储 */
|
|
78
|
+
sessionStorageEnabled?: boolean;
|
|
79
|
+
/** 是否支持IndexedDB */
|
|
80
|
+
indexedDBEnabled?: boolean;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 测试状态
|
|
84
|
+
*/
|
|
85
|
+
type TestStatus = 'idle' | 'pressing' | 'completed';
|
|
86
|
+
/**
|
|
87
|
+
* 组件属性
|
|
88
|
+
*/
|
|
89
|
+
interface TestYourselfProps {
|
|
90
|
+
/** 配置 */
|
|
91
|
+
config?: TestConfig;
|
|
92
|
+
/** 配置ID (通过 query 参数指定) */
|
|
93
|
+
configId?: string;
|
|
94
|
+
/** 结果回调 */
|
|
95
|
+
onResult?: (result: TestResult) => void;
|
|
96
|
+
/** 自定义样式类名 */
|
|
97
|
+
className?: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 保存的配置项
|
|
101
|
+
*/
|
|
102
|
+
interface SavedConfig {
|
|
103
|
+
/** 配置唯一ID */
|
|
104
|
+
id: string;
|
|
105
|
+
/** 配置名称 */
|
|
106
|
+
name: string;
|
|
107
|
+
/** 配置描述 */
|
|
108
|
+
description?: string;
|
|
109
|
+
/** 测试配置 */
|
|
110
|
+
config: TestConfig;
|
|
111
|
+
/** 创建时间 */
|
|
112
|
+
createdAt: number;
|
|
113
|
+
/** 更新时间 */
|
|
114
|
+
updatedAt: number;
|
|
115
|
+
/** 是否为默认配置 */
|
|
116
|
+
isDefault?: boolean;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 图片上传结果
|
|
120
|
+
*/
|
|
121
|
+
interface UploadResult {
|
|
122
|
+
/** 图片 URL 或 Base64 */
|
|
123
|
+
url: string;
|
|
124
|
+
/** 文件名 */
|
|
125
|
+
filename: string;
|
|
126
|
+
/** 文件大小(字节) */
|
|
127
|
+
size: number;
|
|
128
|
+
/** 图片类型 */
|
|
129
|
+
type: string;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* 配置列表项
|
|
133
|
+
*/
|
|
134
|
+
interface ConfigListItem {
|
|
135
|
+
id: string;
|
|
136
|
+
name: string;
|
|
137
|
+
description?: string;
|
|
138
|
+
resultCount: number;
|
|
139
|
+
createdAt: number;
|
|
140
|
+
updatedAt: number;
|
|
141
|
+
isDefault?: boolean;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* 测测你是什么 - 配置管理服务
|
|
146
|
+
* Test Yourself - Configuration Management Service
|
|
147
|
+
*
|
|
148
|
+
* 服务端逻辑:配置的增删改查
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
interface ConfigServiceOptions {
|
|
152
|
+
/** 存储类型 */
|
|
153
|
+
storageType?: 'localStorage' | 'memory' | 'custom';
|
|
154
|
+
/** 自定义存储适配器 */
|
|
155
|
+
customStorage?: IConfigStorage;
|
|
156
|
+
/** 是否启用缓存 */
|
|
157
|
+
enableCache?: boolean;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* 配置存储适配器接口
|
|
161
|
+
*/
|
|
162
|
+
interface IConfigStorage {
|
|
163
|
+
/** 保存配置 */
|
|
164
|
+
saveConfig(config: SavedConfig): Promise<void>;
|
|
165
|
+
/** 获取配置 */
|
|
166
|
+
getConfig(id: string): Promise<SavedConfig | null>;
|
|
167
|
+
/** 获取所有配置列表 */
|
|
168
|
+
getAllConfigs(): Promise<SavedConfig[]>;
|
|
169
|
+
/** 删除配置 */
|
|
170
|
+
deleteConfig(id: string): Promise<void>;
|
|
171
|
+
/** 更新配置 */
|
|
172
|
+
updateConfig(id: string, config: SavedConfig): Promise<void>;
|
|
173
|
+
/** 设置默认配置 */
|
|
174
|
+
setDefaultConfig(id: string): Promise<void>;
|
|
175
|
+
/** 获取默认配置 */
|
|
176
|
+
getDefaultConfig(): Promise<SavedConfig | null>;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* 配置管理服务
|
|
180
|
+
*/
|
|
181
|
+
declare class ConfigService {
|
|
182
|
+
private storage;
|
|
183
|
+
private cache;
|
|
184
|
+
private enableCache;
|
|
185
|
+
constructor(options?: ConfigServiceOptions);
|
|
186
|
+
/**
|
|
187
|
+
* 初始化服务(如果需要)
|
|
188
|
+
*/
|
|
189
|
+
init(): Promise<void>;
|
|
190
|
+
/**
|
|
191
|
+
* 生成唯一ID
|
|
192
|
+
*/
|
|
193
|
+
private generateId;
|
|
194
|
+
/**
|
|
195
|
+
* 保存配置
|
|
196
|
+
*/
|
|
197
|
+
saveConfig(config: SavedConfig): Promise<void>;
|
|
198
|
+
/**
|
|
199
|
+
* 创建新配置
|
|
200
|
+
*/
|
|
201
|
+
createConfig(name: string, config: TestConfig, description?: string, isDefault?: boolean): Promise<SavedConfig>;
|
|
202
|
+
/**
|
|
203
|
+
* 获取配置
|
|
204
|
+
*/
|
|
205
|
+
getConfig(id: string): Promise<SavedConfig | null>;
|
|
206
|
+
/**
|
|
207
|
+
* 获取所有配置列表
|
|
208
|
+
*/
|
|
209
|
+
getAllConfigs(): Promise<SavedConfig[]>;
|
|
210
|
+
/**
|
|
211
|
+
* 获取配置列表(精简版)
|
|
212
|
+
*/
|
|
213
|
+
getConfigList(): Promise<ConfigListItem[]>;
|
|
214
|
+
/**
|
|
215
|
+
* 更新配置
|
|
216
|
+
*/
|
|
217
|
+
updateConfig(id: string, updates: {
|
|
218
|
+
name?: string;
|
|
219
|
+
description?: string;
|
|
220
|
+
config?: TestConfig;
|
|
221
|
+
isDefault?: boolean;
|
|
222
|
+
}): Promise<SavedConfig>;
|
|
223
|
+
/**
|
|
224
|
+
* 删除配置
|
|
225
|
+
*/
|
|
226
|
+
deleteConfig(id: string): Promise<void>;
|
|
227
|
+
/**
|
|
228
|
+
* 设置默认配置
|
|
229
|
+
*/
|
|
230
|
+
setDefaultConfig(id: string): Promise<void>;
|
|
231
|
+
/**
|
|
232
|
+
* 获取默认配置
|
|
233
|
+
*/
|
|
234
|
+
getDefaultConfig(): Promise<SavedConfig | null>;
|
|
235
|
+
/**
|
|
236
|
+
* 清空缓存
|
|
237
|
+
*/
|
|
238
|
+
clearCache(): void;
|
|
239
|
+
/**
|
|
240
|
+
* 导出配置(JSON格式)
|
|
241
|
+
*/
|
|
242
|
+
exportConfig(id: string): Promise<string>;
|
|
243
|
+
/**
|
|
244
|
+
* 导入配置
|
|
245
|
+
*/
|
|
246
|
+
importConfig(jsonString: string): Promise<SavedConfig>;
|
|
247
|
+
/**
|
|
248
|
+
* 复制配置
|
|
249
|
+
*/
|
|
250
|
+
duplicateConfig(id: string, newName?: string): Promise<SavedConfig>;
|
|
251
|
+
/**
|
|
252
|
+
* 批量删除配置
|
|
253
|
+
*/
|
|
254
|
+
deleteConfigs(ids: string[]): Promise<void>;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* 创建默认配置服务实例
|
|
258
|
+
*/
|
|
259
|
+
declare function createConfigService(options?: ConfigServiceOptions): ConfigService;
|
|
260
|
+
declare function getDefaultConfigService(): ConfigService;
|
|
261
|
+
|
|
262
|
+
export { type ConfigListItem as C, type DeviceFingerprint as D, type IConfigStorage as I, type SavedConfig as S, type TestYourselfProps as T, type UploadResult as U, type TestResult as a, type TestConfig as b, type TestStatus as c, ConfigService as d, createConfigService as e, type ConfigServiceOptions as f, getDefaultConfigService as g };
|
|
@@ -0,0 +1,262 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* 测测你是什么 - 类型定义
|
|
3
|
+
* Test Yourself Game - Type Definitions
|
|
4
|
+
*/
|
|
5
|
+
/**
|
|
6
|
+
* 测试结果项
|
|
7
|
+
*/
|
|
8
|
+
interface TestResult {
|
|
9
|
+
/** 唯一标识 */
|
|
10
|
+
id: string;
|
|
11
|
+
/** 标题/题目 */
|
|
12
|
+
title: string;
|
|
13
|
+
/** 描述 */
|
|
14
|
+
description: string;
|
|
15
|
+
/** 图片URL或emoji */
|
|
16
|
+
image: string;
|
|
17
|
+
/** 图片类型 */
|
|
18
|
+
imageType?: 'url' | 'emoji';
|
|
19
|
+
/** 额外属性(可扩展) */
|
|
20
|
+
extra?: Record<string, any>;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* 测试配置
|
|
24
|
+
*/
|
|
25
|
+
interface TestConfig {
|
|
26
|
+
/** 游戏标题 */
|
|
27
|
+
gameTitle: string;
|
|
28
|
+
/** 游戏描述 */
|
|
29
|
+
gameDescription?: string;
|
|
30
|
+
/** 按钮文本 */
|
|
31
|
+
buttonText?: string;
|
|
32
|
+
/** 长按时间(毫秒) */
|
|
33
|
+
longPressDuration?: number;
|
|
34
|
+
/** 结果数据集 */
|
|
35
|
+
results: TestResult[];
|
|
36
|
+
/** 是否启用IP获取 */
|
|
37
|
+
enableIPFetch?: boolean;
|
|
38
|
+
/** 自定义盐值 */
|
|
39
|
+
customSalt?: string;
|
|
40
|
+
/** 结果展示样式 */
|
|
41
|
+
resultStyle?: 'card' | 'full' | 'minimal';
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* 设备指纹信息
|
|
45
|
+
*/
|
|
46
|
+
interface DeviceFingerprint {
|
|
47
|
+
/** User Agent */
|
|
48
|
+
userAgent: string;
|
|
49
|
+
/** IP地址(如果可获取) */
|
|
50
|
+
ip?: string;
|
|
51
|
+
/** 屏幕分辨率 */
|
|
52
|
+
screenResolution: string;
|
|
53
|
+
/** 时区 */
|
|
54
|
+
timezone: string;
|
|
55
|
+
/** 语言 */
|
|
56
|
+
language: string;
|
|
57
|
+
/** 平台 */
|
|
58
|
+
platform: string;
|
|
59
|
+
/** 颜色深度 */
|
|
60
|
+
colorDepth?: number;
|
|
61
|
+
/** 像素比 */
|
|
62
|
+
devicePixelRatio?: number;
|
|
63
|
+
/** 硬件并发数 */
|
|
64
|
+
hardwareConcurrency?: number;
|
|
65
|
+
/** 最大触摸点数 */
|
|
66
|
+
maxTouchPoints?: number;
|
|
67
|
+
/** Canvas指纹 */
|
|
68
|
+
canvasFingerprint?: string;
|
|
69
|
+
/** WebGL指纹 */
|
|
70
|
+
webglFingerprint?: string;
|
|
71
|
+
/** 字体列表 */
|
|
72
|
+
fonts?: string;
|
|
73
|
+
/** 是否支持cookie */
|
|
74
|
+
cookieEnabled?: boolean;
|
|
75
|
+
/** 是否支持本地存储 */
|
|
76
|
+
localStorageEnabled?: boolean;
|
|
77
|
+
/** 是否支持会话存储 */
|
|
78
|
+
sessionStorageEnabled?: boolean;
|
|
79
|
+
/** 是否支持IndexedDB */
|
|
80
|
+
indexedDBEnabled?: boolean;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* 测试状态
|
|
84
|
+
*/
|
|
85
|
+
type TestStatus = 'idle' | 'pressing' | 'completed';
|
|
86
|
+
/**
|
|
87
|
+
* 组件属性
|
|
88
|
+
*/
|
|
89
|
+
interface TestYourselfProps {
|
|
90
|
+
/** 配置 */
|
|
91
|
+
config?: TestConfig;
|
|
92
|
+
/** 配置ID (通过 query 参数指定) */
|
|
93
|
+
configId?: string;
|
|
94
|
+
/** 结果回调 */
|
|
95
|
+
onResult?: (result: TestResult) => void;
|
|
96
|
+
/** 自定义样式类名 */
|
|
97
|
+
className?: string;
|
|
98
|
+
}
|
|
99
|
+
/**
|
|
100
|
+
* 保存的配置项
|
|
101
|
+
*/
|
|
102
|
+
interface SavedConfig {
|
|
103
|
+
/** 配置唯一ID */
|
|
104
|
+
id: string;
|
|
105
|
+
/** 配置名称 */
|
|
106
|
+
name: string;
|
|
107
|
+
/** 配置描述 */
|
|
108
|
+
description?: string;
|
|
109
|
+
/** 测试配置 */
|
|
110
|
+
config: TestConfig;
|
|
111
|
+
/** 创建时间 */
|
|
112
|
+
createdAt: number;
|
|
113
|
+
/** 更新时间 */
|
|
114
|
+
updatedAt: number;
|
|
115
|
+
/** 是否为默认配置 */
|
|
116
|
+
isDefault?: boolean;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* 图片上传结果
|
|
120
|
+
*/
|
|
121
|
+
interface UploadResult {
|
|
122
|
+
/** 图片 URL 或 Base64 */
|
|
123
|
+
url: string;
|
|
124
|
+
/** 文件名 */
|
|
125
|
+
filename: string;
|
|
126
|
+
/** 文件大小(字节) */
|
|
127
|
+
size: number;
|
|
128
|
+
/** 图片类型 */
|
|
129
|
+
type: string;
|
|
130
|
+
}
|
|
131
|
+
/**
|
|
132
|
+
* 配置列表项
|
|
133
|
+
*/
|
|
134
|
+
interface ConfigListItem {
|
|
135
|
+
id: string;
|
|
136
|
+
name: string;
|
|
137
|
+
description?: string;
|
|
138
|
+
resultCount: number;
|
|
139
|
+
createdAt: number;
|
|
140
|
+
updatedAt: number;
|
|
141
|
+
isDefault?: boolean;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* 测测你是什么 - 配置管理服务
|
|
146
|
+
* Test Yourself - Configuration Management Service
|
|
147
|
+
*
|
|
148
|
+
* 服务端逻辑:配置的增删改查
|
|
149
|
+
*/
|
|
150
|
+
|
|
151
|
+
interface ConfigServiceOptions {
|
|
152
|
+
/** 存储类型 */
|
|
153
|
+
storageType?: 'localStorage' | 'memory' | 'custom';
|
|
154
|
+
/** 自定义存储适配器 */
|
|
155
|
+
customStorage?: IConfigStorage;
|
|
156
|
+
/** 是否启用缓存 */
|
|
157
|
+
enableCache?: boolean;
|
|
158
|
+
}
|
|
159
|
+
/**
|
|
160
|
+
* 配置存储适配器接口
|
|
161
|
+
*/
|
|
162
|
+
interface IConfigStorage {
|
|
163
|
+
/** 保存配置 */
|
|
164
|
+
saveConfig(config: SavedConfig): Promise<void>;
|
|
165
|
+
/** 获取配置 */
|
|
166
|
+
getConfig(id: string): Promise<SavedConfig | null>;
|
|
167
|
+
/** 获取所有配置列表 */
|
|
168
|
+
getAllConfigs(): Promise<SavedConfig[]>;
|
|
169
|
+
/** 删除配置 */
|
|
170
|
+
deleteConfig(id: string): Promise<void>;
|
|
171
|
+
/** 更新配置 */
|
|
172
|
+
updateConfig(id: string, config: SavedConfig): Promise<void>;
|
|
173
|
+
/** 设置默认配置 */
|
|
174
|
+
setDefaultConfig(id: string): Promise<void>;
|
|
175
|
+
/** 获取默认配置 */
|
|
176
|
+
getDefaultConfig(): Promise<SavedConfig | null>;
|
|
177
|
+
}
|
|
178
|
+
/**
|
|
179
|
+
* 配置管理服务
|
|
180
|
+
*/
|
|
181
|
+
declare class ConfigService {
|
|
182
|
+
private storage;
|
|
183
|
+
private cache;
|
|
184
|
+
private enableCache;
|
|
185
|
+
constructor(options?: ConfigServiceOptions);
|
|
186
|
+
/**
|
|
187
|
+
* 初始化服务(如果需要)
|
|
188
|
+
*/
|
|
189
|
+
init(): Promise<void>;
|
|
190
|
+
/**
|
|
191
|
+
* 生成唯一ID
|
|
192
|
+
*/
|
|
193
|
+
private generateId;
|
|
194
|
+
/**
|
|
195
|
+
* 保存配置
|
|
196
|
+
*/
|
|
197
|
+
saveConfig(config: SavedConfig): Promise<void>;
|
|
198
|
+
/**
|
|
199
|
+
* 创建新配置
|
|
200
|
+
*/
|
|
201
|
+
createConfig(name: string, config: TestConfig, description?: string, isDefault?: boolean): Promise<SavedConfig>;
|
|
202
|
+
/**
|
|
203
|
+
* 获取配置
|
|
204
|
+
*/
|
|
205
|
+
getConfig(id: string): Promise<SavedConfig | null>;
|
|
206
|
+
/**
|
|
207
|
+
* 获取所有配置列表
|
|
208
|
+
*/
|
|
209
|
+
getAllConfigs(): Promise<SavedConfig[]>;
|
|
210
|
+
/**
|
|
211
|
+
* 获取配置列表(精简版)
|
|
212
|
+
*/
|
|
213
|
+
getConfigList(): Promise<ConfigListItem[]>;
|
|
214
|
+
/**
|
|
215
|
+
* 更新配置
|
|
216
|
+
*/
|
|
217
|
+
updateConfig(id: string, updates: {
|
|
218
|
+
name?: string;
|
|
219
|
+
description?: string;
|
|
220
|
+
config?: TestConfig;
|
|
221
|
+
isDefault?: boolean;
|
|
222
|
+
}): Promise<SavedConfig>;
|
|
223
|
+
/**
|
|
224
|
+
* 删除配置
|
|
225
|
+
*/
|
|
226
|
+
deleteConfig(id: string): Promise<void>;
|
|
227
|
+
/**
|
|
228
|
+
* 设置默认配置
|
|
229
|
+
*/
|
|
230
|
+
setDefaultConfig(id: string): Promise<void>;
|
|
231
|
+
/**
|
|
232
|
+
* 获取默认配置
|
|
233
|
+
*/
|
|
234
|
+
getDefaultConfig(): Promise<SavedConfig | null>;
|
|
235
|
+
/**
|
|
236
|
+
* 清空缓存
|
|
237
|
+
*/
|
|
238
|
+
clearCache(): void;
|
|
239
|
+
/**
|
|
240
|
+
* 导出配置(JSON格式)
|
|
241
|
+
*/
|
|
242
|
+
exportConfig(id: string): Promise<string>;
|
|
243
|
+
/**
|
|
244
|
+
* 导入配置
|
|
245
|
+
*/
|
|
246
|
+
importConfig(jsonString: string): Promise<SavedConfig>;
|
|
247
|
+
/**
|
|
248
|
+
* 复制配置
|
|
249
|
+
*/
|
|
250
|
+
duplicateConfig(id: string, newName?: string): Promise<SavedConfig>;
|
|
251
|
+
/**
|
|
252
|
+
* 批量删除配置
|
|
253
|
+
*/
|
|
254
|
+
deleteConfigs(ids: string[]): Promise<void>;
|
|
255
|
+
}
|
|
256
|
+
/**
|
|
257
|
+
* 创建默认配置服务实例
|
|
258
|
+
*/
|
|
259
|
+
declare function createConfigService(options?: ConfigServiceOptions): ConfigService;
|
|
260
|
+
declare function getDefaultConfigService(): ConfigService;
|
|
261
|
+
|
|
262
|
+
export { type ConfigListItem as C, type DeviceFingerprint as D, type IConfigStorage as I, type SavedConfig as S, type TestYourselfProps as T, type UploadResult as U, type TestResult as a, type TestConfig as b, type TestStatus as c, ConfigService as d, createConfigService as e, type ConfigServiceOptions as f, getDefaultConfigService as g };
|