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.
Files changed (125) hide show
  1. package/dist/calendar/index.js +10 -8
  2. package/dist/calendar/index.js.map +1 -1
  3. package/dist/calendar/index.mjs +3 -1
  4. package/dist/calendar/index.mjs.map +1 -1
  5. package/dist/calendar/routes/index.js +21 -21
  6. package/dist/calendar/routes/index.mjs +1 -1
  7. package/dist/calendar/server.js +13 -13
  8. package/dist/calendar/server.mjs +2 -2
  9. package/dist/{chunk-VHU2YGRQ.mjs → chunk-4FOBBWXW.mjs} +25 -11
  10. package/dist/chunk-4FOBBWXW.mjs.map +1 -0
  11. package/dist/{chunk-ZDRBMSTS.js → chunk-G6WRJ2H2.js} +25 -11
  12. package/dist/chunk-G6WRJ2H2.js.map +1 -0
  13. package/dist/{chunk-6WXOA4BE.mjs → chunk-GVVS4IMM.mjs} +2 -2
  14. package/dist/chunk-GVVS4IMM.mjs.map +1 -0
  15. package/dist/{chunk-AXP7KROR.js → chunk-WC5QFO3T.js} +2 -2
  16. package/dist/chunk-WC5QFO3T.js.map +1 -0
  17. package/dist/index.js +5 -5
  18. package/dist/index.js.map +1 -1
  19. package/dist/index.mjs +2 -2
  20. package/dist/index.mjs.map +1 -1
  21. package/package.json +41 -7
  22. package/dist/ConfigService-BxK06xP6.d.mts +0 -262
  23. package/dist/ConfigService-BxK06xP6.d.ts +0 -262
  24. package/dist/UniversalFileService-BuHN-jrR.d.ts +0 -515
  25. package/dist/UniversalFileService-CGGzYeeF.d.mts +0 -515
  26. package/dist/analytics/index.d.mts +0 -1084
  27. package/dist/analytics/index.d.ts +0 -1084
  28. package/dist/analytics/server/index.d.mts +0 -499
  29. package/dist/analytics/server/index.d.ts +0 -499
  30. package/dist/api/index.d.mts +0 -248
  31. package/dist/api/index.d.ts +0 -248
  32. package/dist/audioDetection/index.d.mts +0 -449
  33. package/dist/audioDetection/index.d.ts +0 -449
  34. package/dist/auth/client/index.d.mts +0 -153
  35. package/dist/auth/client/index.d.ts +0 -153
  36. package/dist/auth/components/index.d.mts +0 -227
  37. package/dist/auth/components/index.d.ts +0 -227
  38. package/dist/auth/hooks/index.d.mts +0 -31
  39. package/dist/auth/hooks/index.d.ts +0 -31
  40. package/dist/auth/index.d.mts +0 -40
  41. package/dist/auth/index.d.ts +0 -40
  42. package/dist/auth/middleware/index.d.mts +0 -75
  43. package/dist/auth/middleware/index.d.ts +0 -75
  44. package/dist/auth/routes/index.d.mts +0 -261
  45. package/dist/auth/routes/index.d.ts +0 -261
  46. package/dist/auth/schema/index.d.mts +0 -789
  47. package/dist/auth/schema/index.d.ts +0 -789
  48. package/dist/auth/services/index.d.mts +0 -48
  49. package/dist/auth/services/index.d.ts +0 -48
  50. package/dist/calendar/index.d.mts +0 -1197
  51. package/dist/calendar/index.d.ts +0 -1197
  52. package/dist/calendar/routes/index.d.mts +0 -118
  53. package/dist/calendar/routes/index.d.ts +0 -118
  54. package/dist/calendar/server.d.mts +0 -1184
  55. package/dist/calendar/server.d.ts +0 -1184
  56. package/dist/chunk-6WXOA4BE.mjs.map +0 -1
  57. package/dist/chunk-AXP7KROR.js.map +0 -1
  58. package/dist/chunk-VHU2YGRQ.mjs.map +0 -1
  59. package/dist/chunk-ZDRBMSTS.js.map +0 -1
  60. package/dist/config/index.d.mts +0 -64
  61. package/dist/config/index.d.ts +0 -64
  62. package/dist/config/server/index.d.mts +0 -1533
  63. package/dist/config/server/index.d.ts +0 -1533
  64. package/dist/drizzle-auth-service-Bxlovhv8.d.ts +0 -145
  65. package/dist/drizzle-auth-service-DZY2F1sv.d.mts +0 -145
  66. package/dist/drizzle-schema-BNhqj2AZ.d.mts +0 -1114
  67. package/dist/drizzle-schema-BNhqj2AZ.d.ts +0 -1114
  68. package/dist/enums-Dume-V5Y.d.mts +0 -16
  69. package/dist/enums-Dume-V5Y.d.ts +0 -16
  70. package/dist/i18n/index.d.mts +0 -417
  71. package/dist/i18n/index.d.ts +0 -417
  72. package/dist/imageCrop/index.d.mts +0 -165
  73. package/dist/imageCrop/index.d.ts +0 -165
  74. package/dist/index-DSel44Ke.d.mts +0 -93
  75. package/dist/index-DSel44Ke.d.ts +0 -93
  76. package/dist/index.d.mts +0 -693
  77. package/dist/index.d.ts +0 -693
  78. package/dist/logger/index.d.mts +0 -125
  79. package/dist/logger/index.d.ts +0 -125
  80. package/dist/mmd/admin/index.d.mts +0 -487
  81. package/dist/mmd/admin/index.d.ts +0 -487
  82. package/dist/mmd/index.d.mts +0 -599
  83. package/dist/mmd/index.d.ts +0 -599
  84. package/dist/mmd/server/index.d.mts +0 -138
  85. package/dist/mmd/server/index.d.ts +0 -138
  86. package/dist/music/index.d.mts +0 -74
  87. package/dist/music/index.d.ts +0 -74
  88. package/dist/music/server/index.d.mts +0 -1
  89. package/dist/music/server/index.d.ts +0 -1
  90. package/dist/request/index.d.mts +0 -51
  91. package/dist/request/index.d.ts +0 -51
  92. package/dist/storage/index.d.mts +0 -75
  93. package/dist/storage/index.d.ts +0 -75
  94. package/dist/testYourself/admin/index.d.mts +0 -58
  95. package/dist/testYourself/admin/index.d.ts +0 -58
  96. package/dist/testYourself/index.d.mts +0 -53
  97. package/dist/testYourself/index.d.ts +0 -53
  98. package/dist/testYourself/server/index.d.mts +0 -1029
  99. package/dist/testYourself/server/index.d.ts +0 -1029
  100. package/dist/types-B60F7EZZ.d.mts +0 -248
  101. package/dist/types-B60F7EZZ.d.ts +0 -248
  102. package/dist/types-BINlP9MK.d.mts +0 -286
  103. package/dist/types-BINlP9MK.d.ts +0 -286
  104. package/dist/types-BaZccpvk.d.mts +0 -48
  105. package/dist/types-BaZccpvk.d.ts +0 -48
  106. package/dist/types-CK4We_aI.d.mts +0 -270
  107. package/dist/types-CK4We_aI.d.ts +0 -270
  108. package/dist/types-CbTsi9CZ.d.mts +0 -31
  109. package/dist/types-CbTsi9CZ.d.ts +0 -31
  110. package/dist/types-CroexXnI.d.ts +0 -99
  111. package/dist/types-DmsXCWvm.d.mts +0 -99
  112. package/dist/types-Dt0oqeFM.d.mts +0 -70
  113. package/dist/types-zK6kDzDQ.d.ts +0 -70
  114. package/dist/universalExport/index.d.mts +0 -235
  115. package/dist/universalExport/index.d.ts +0 -235
  116. package/dist/universalExport/server/index.d.mts +0 -1270
  117. package/dist/universalExport/server/index.d.ts +0 -1270
  118. package/dist/universalFile/index.d.mts +0 -480
  119. package/dist/universalFile/index.d.ts +0 -480
  120. package/dist/universalFile/server/index.d.mts +0 -4516
  121. package/dist/universalFile/server/index.d.ts +0 -4516
  122. package/dist/useElectronStorage-Dj0rcorG.d.mts +0 -65
  123. package/dist/useElectronStorage-DwnNfIhl.d.ts +0 -65
  124. package/dist/utils/index.d.mts +0 -192
  125. 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.8",
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
- "@imgly/background-removal": "^1.7.0",
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 };