sa2kit 1.6.8 → 1.6.9
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/calendar/index.js +10 -8
- package/dist/calendar/index.js.map +1 -1
- package/dist/calendar/index.mjs +3 -1
- package/dist/calendar/index.mjs.map +1 -1
- package/dist/calendar/routes/index.js +21 -21
- package/dist/calendar/routes/index.mjs +1 -1
- package/dist/calendar/server.js +13 -13
- package/dist/calendar/server.mjs +2 -2
- package/dist/{chunk-VHU2YGRQ.mjs → chunk-4FOBBWXW.mjs} +25 -11
- package/dist/chunk-4FOBBWXW.mjs.map +1 -0
- package/dist/{chunk-ZDRBMSTS.js → chunk-G6WRJ2H2.js} +25 -11
- package/dist/chunk-G6WRJ2H2.js.map +1 -0
- package/dist/{chunk-6WXOA4BE.mjs → chunk-GVVS4IMM.mjs} +2 -2
- package/dist/chunk-GVVS4IMM.mjs.map +1 -0
- package/dist/{chunk-AXP7KROR.js → chunk-WC5QFO3T.js} +2 -2
- package/dist/chunk-WC5QFO3T.js.map +1 -0
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/package.json +41 -7
- package/dist/ConfigService-BxK06xP6.d.mts +0 -262
- package/dist/ConfigService-BxK06xP6.d.ts +0 -262
- package/dist/UniversalFileService-BuHN-jrR.d.ts +0 -515
- package/dist/UniversalFileService-CGGzYeeF.d.mts +0 -515
- package/dist/analytics/index.d.mts +0 -1084
- package/dist/analytics/index.d.ts +0 -1084
- package/dist/analytics/server/index.d.mts +0 -499
- package/dist/analytics/server/index.d.ts +0 -499
- package/dist/api/index.d.mts +0 -248
- package/dist/api/index.d.ts +0 -248
- package/dist/audioDetection/index.d.mts +0 -449
- package/dist/audioDetection/index.d.ts +0 -449
- package/dist/auth/client/index.d.mts +0 -153
- package/dist/auth/client/index.d.ts +0 -153
- package/dist/auth/components/index.d.mts +0 -227
- package/dist/auth/components/index.d.ts +0 -227
- package/dist/auth/hooks/index.d.mts +0 -31
- package/dist/auth/hooks/index.d.ts +0 -31
- package/dist/auth/index.d.mts +0 -40
- package/dist/auth/index.d.ts +0 -40
- package/dist/auth/middleware/index.d.mts +0 -75
- package/dist/auth/middleware/index.d.ts +0 -75
- package/dist/auth/routes/index.d.mts +0 -261
- package/dist/auth/routes/index.d.ts +0 -261
- package/dist/auth/schema/index.d.mts +0 -789
- package/dist/auth/schema/index.d.ts +0 -789
- package/dist/auth/services/index.d.mts +0 -48
- package/dist/auth/services/index.d.ts +0 -48
- package/dist/calendar/index.d.mts +0 -1197
- package/dist/calendar/index.d.ts +0 -1197
- package/dist/calendar/routes/index.d.mts +0 -118
- package/dist/calendar/routes/index.d.ts +0 -118
- package/dist/calendar/server.d.mts +0 -1184
- package/dist/calendar/server.d.ts +0 -1184
- package/dist/chunk-6WXOA4BE.mjs.map +0 -1
- package/dist/chunk-AXP7KROR.js.map +0 -1
- package/dist/chunk-VHU2YGRQ.mjs.map +0 -1
- package/dist/chunk-ZDRBMSTS.js.map +0 -1
- package/dist/config/index.d.mts +0 -64
- package/dist/config/index.d.ts +0 -64
- package/dist/config/server/index.d.mts +0 -1533
- package/dist/config/server/index.d.ts +0 -1533
- package/dist/drizzle-auth-service-Bxlovhv8.d.ts +0 -145
- package/dist/drizzle-auth-service-DZY2F1sv.d.mts +0 -145
- package/dist/drizzle-schema-BNhqj2AZ.d.mts +0 -1114
- package/dist/drizzle-schema-BNhqj2AZ.d.ts +0 -1114
- package/dist/enums-Dume-V5Y.d.mts +0 -16
- package/dist/enums-Dume-V5Y.d.ts +0 -16
- package/dist/i18n/index.d.mts +0 -417
- package/dist/i18n/index.d.ts +0 -417
- package/dist/imageCrop/index.d.mts +0 -165
- package/dist/imageCrop/index.d.ts +0 -165
- package/dist/index-DSel44Ke.d.mts +0 -93
- package/dist/index-DSel44Ke.d.ts +0 -93
- package/dist/index.d.mts +0 -693
- package/dist/index.d.ts +0 -693
- package/dist/logger/index.d.mts +0 -125
- package/dist/logger/index.d.ts +0 -125
- package/dist/mmd/admin/index.d.mts +0 -487
- package/dist/mmd/admin/index.d.ts +0 -487
- package/dist/mmd/index.d.mts +0 -599
- package/dist/mmd/index.d.ts +0 -599
- package/dist/mmd/server/index.d.mts +0 -138
- package/dist/mmd/server/index.d.ts +0 -138
- package/dist/music/index.d.mts +0 -74
- package/dist/music/index.d.ts +0 -74
- package/dist/music/server/index.d.mts +0 -1
- package/dist/music/server/index.d.ts +0 -1
- package/dist/request/index.d.mts +0 -51
- package/dist/request/index.d.ts +0 -51
- package/dist/storage/index.d.mts +0 -75
- package/dist/storage/index.d.ts +0 -75
- package/dist/testYourself/admin/index.d.mts +0 -58
- package/dist/testYourself/admin/index.d.ts +0 -58
- package/dist/testYourself/index.d.mts +0 -53
- package/dist/testYourself/index.d.ts +0 -53
- package/dist/testYourself/server/index.d.mts +0 -1029
- package/dist/testYourself/server/index.d.ts +0 -1029
- package/dist/types-B60F7EZZ.d.mts +0 -248
- package/dist/types-B60F7EZZ.d.ts +0 -248
- package/dist/types-BINlP9MK.d.mts +0 -286
- package/dist/types-BINlP9MK.d.ts +0 -286
- package/dist/types-BaZccpvk.d.mts +0 -48
- package/dist/types-BaZccpvk.d.ts +0 -48
- package/dist/types-CK4We_aI.d.mts +0 -270
- package/dist/types-CK4We_aI.d.ts +0 -270
- package/dist/types-CbTsi9CZ.d.mts +0 -31
- package/dist/types-CbTsi9CZ.d.ts +0 -31
- package/dist/types-CroexXnI.d.ts +0 -99
- package/dist/types-DmsXCWvm.d.mts +0 -99
- package/dist/types-Dt0oqeFM.d.mts +0 -70
- package/dist/types-zK6kDzDQ.d.ts +0 -70
- package/dist/universalExport/index.d.mts +0 -235
- package/dist/universalExport/index.d.ts +0 -235
- package/dist/universalExport/server/index.d.mts +0 -1270
- package/dist/universalExport/server/index.d.ts +0 -1270
- package/dist/universalFile/index.d.mts +0 -480
- package/dist/universalFile/index.d.ts +0 -480
- package/dist/universalFile/server/index.d.mts +0 -4516
- package/dist/universalFile/server/index.d.ts +0 -4516
- package/dist/useElectronStorage-Dj0rcorG.d.mts +0 -65
- package/dist/useElectronStorage-DwnNfIhl.d.ts +0 -65
- package/dist/utils/index.d.mts +0 -192
- package/dist/utils/index.d.ts +0 -192
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "sa2kit",
|
|
3
|
-
"version": "1.6.
|
|
3
|
+
"version": "1.6.9",
|
|
4
4
|
"description": "A modern, type-safe React utility library with cross-platform support and platform adapters",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"react",
|
|
@@ -108,6 +108,11 @@
|
|
|
108
108
|
"import": "./dist/auth/index.mjs",
|
|
109
109
|
"require": "./dist/auth/index.js"
|
|
110
110
|
},
|
|
111
|
+
"./auth/server": {
|
|
112
|
+
"types": "./dist/auth/server.d.ts",
|
|
113
|
+
"import": "./dist/auth/server.mjs",
|
|
114
|
+
"require": "./dist/auth/server.js"
|
|
115
|
+
},
|
|
111
116
|
"./auth/schema": {
|
|
112
117
|
"types": "./dist/auth/schema/index.d.ts",
|
|
113
118
|
"import": "./dist/auth/schema/index.mjs",
|
|
@@ -268,10 +273,13 @@
|
|
|
268
273
|
"publish:latest": "npm publish --access public"
|
|
269
274
|
},
|
|
270
275
|
"peerDependencies": {
|
|
276
|
+
"@imgly/background-removal": "^1.7.0",
|
|
277
|
+
"@xenova/transformers": "^2.17.2",
|
|
271
278
|
"lucide-react": "^0.263.0 || ^0.300.0 || ^0.400.0 || ^0.500.0",
|
|
272
279
|
"react": ">=18.0.0",
|
|
273
280
|
"react-dom": ">=18.0.0",
|
|
274
|
-
"swr": "^2.0.0"
|
|
281
|
+
"swr": "^2.0.0",
|
|
282
|
+
"tesseract.js": "^7.0.0"
|
|
275
283
|
},
|
|
276
284
|
"peerDependenciesMeta": {
|
|
277
285
|
"react": {
|
|
@@ -285,9 +293,31 @@
|
|
|
285
293
|
},
|
|
286
294
|
"lucide-react": {
|
|
287
295
|
"optional": true
|
|
296
|
+
},
|
|
297
|
+
"@xenova/transformers": {
|
|
298
|
+
"optional": true
|
|
299
|
+
},
|
|
300
|
+
"@imgly/background-removal": {
|
|
301
|
+
"optional": true
|
|
302
|
+
},
|
|
303
|
+
"tesseract.js": {
|
|
304
|
+
"optional": true
|
|
288
305
|
}
|
|
289
306
|
},
|
|
290
307
|
"devDependencies": {
|
|
308
|
+
"@imgly/background-removal": "^1.7.0",
|
|
309
|
+
"@radix-ui/react-alert-dialog": "^1.1.15",
|
|
310
|
+
"@radix-ui/react-avatar": "^1.1.10",
|
|
311
|
+
"@radix-ui/react-dialog": "^1.1.6",
|
|
312
|
+
"@radix-ui/react-dropdown-menu": "^2.1.16",
|
|
313
|
+
"@radix-ui/react-popover": "^1.1.6",
|
|
314
|
+
"@radix-ui/react-progress": "^1.1.7",
|
|
315
|
+
"@radix-ui/react-scroll-area": "^1.2.10",
|
|
316
|
+
"@radix-ui/react-select": "^2.2.6",
|
|
317
|
+
"@radix-ui/react-separator": "^1.1.7",
|
|
318
|
+
"@radix-ui/react-slot": "^1.1.2",
|
|
319
|
+
"@radix-ui/react-tabs": "^1.1.13",
|
|
320
|
+
"@radix-ui/react-tooltip": "^1.2.8",
|
|
291
321
|
"@testing-library/react": "^14.0.0",
|
|
292
322
|
"@types/adm-zip": "^0.5.7",
|
|
293
323
|
"@types/ali-oss": "^6.16.13",
|
|
@@ -301,6 +331,9 @@
|
|
|
301
331
|
"@typescript-eslint/eslint-plugin": "^6.19.0",
|
|
302
332
|
"@typescript-eslint/parser": "^6.19.0",
|
|
303
333
|
"@vitest/ui": "^1.2.0",
|
|
334
|
+
"@xenova/transformers": "^2.17.2",
|
|
335
|
+
"class-variance-authority": "^0.7.1",
|
|
336
|
+
"clsx": "^2.1.1",
|
|
304
337
|
"drizzle-orm": "^0.44.7",
|
|
305
338
|
"eslint": "^8.56.0",
|
|
306
339
|
"eslint-config-prettier": "^9.1.0",
|
|
@@ -309,8 +342,12 @@
|
|
|
309
342
|
"jsdom": "^23.0.0",
|
|
310
343
|
"lru-cache": "^10.0.0",
|
|
311
344
|
"lucide-react": "^0.553.0",
|
|
345
|
+
"next": "^14.1.0",
|
|
346
|
+
"null-loader": "^4.0.1",
|
|
312
347
|
"pg": "^8.16.3",
|
|
313
348
|
"prettier": "^3.1.1",
|
|
349
|
+
"tailwind-merge": "^2.6.0",
|
|
350
|
+
"tesseract.js": "^7.0.0",
|
|
314
351
|
"tsup": "^8.0.0",
|
|
315
352
|
"typescript": "^5.3.3",
|
|
316
353
|
"vitest": "^1.2.0"
|
|
@@ -323,8 +360,7 @@
|
|
|
323
360
|
"@dnd-kit/core": "^6.3.1",
|
|
324
361
|
"@dnd-kit/sortable": "^10.0.0",
|
|
325
362
|
"@dnd-kit/utilities": "^3.2.2",
|
|
326
|
-
"@
|
|
327
|
-
"@xenova/transformers": "^2.17.2",
|
|
363
|
+
"@meting/core": "^1.6.0",
|
|
328
364
|
"adm-zip": "^0.5.16",
|
|
329
365
|
"ali-oss": "^6.23.0",
|
|
330
366
|
"bcryptjs": "^3.0.3",
|
|
@@ -334,11 +370,9 @@
|
|
|
334
370
|
"onnxruntime-web": "1.21.0",
|
|
335
371
|
"postgres": "^3.4.7",
|
|
336
372
|
"proxy-agent": "^6.5.0",
|
|
337
|
-
"tesseract.js": "^7.0.0",
|
|
338
373
|
"three": "^0.181.2",
|
|
339
374
|
"three-stdlib": "^2.36.0",
|
|
340
375
|
"uuid": "^13.0.0",
|
|
341
|
-
"xlsx": "^0.18.5"
|
|
342
|
-
"@meting/core": "^1.6.0"
|
|
376
|
+
"xlsx": "^0.18.5"
|
|
343
377
|
}
|
|
344
378
|
}
|
|
@@ -1,262 +0,0 @@
|
|
|
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 };
|
|
@@ -1,262 +0,0 @@
|
|
|
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 };
|