avke-sdk 1.0.0 → 1.0.1
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/README.md +92 -267
- package/package.json +2 -27
package/README.md
CHANGED
|
@@ -1,267 +1,92 @@
|
|
|
1
|
-
# AVKE
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
```
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
console.log(
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
console.log('Compatible:', compatibility.compatible);
|
|
94
|
-
```
|
|
95
|
-
|
|
96
|
-
### 📊 错误处理和日志系统
|
|
97
|
-
|
|
98
|
-
完整的错误处理和日志记录功能:
|
|
99
|
-
|
|
100
|
-
```javascript
|
|
101
|
-
import { logger } from 'avke-sdk';
|
|
102
|
-
|
|
103
|
-
// 设置日志级别
|
|
104
|
-
logger.setLevel('DEBUG');
|
|
105
|
-
|
|
106
|
-
// 记录不同级别的日志
|
|
107
|
-
logger.info('Operation completed successfully');
|
|
108
|
-
logger.warn('Warning: device not responding');
|
|
109
|
-
logger.error('Error: connection failed');
|
|
110
|
-
|
|
111
|
-
// 获取日志记录
|
|
112
|
-
const logs = logger.getLogs('ERROR');
|
|
113
|
-
console.log('Error logs:', logs);
|
|
114
|
-
```
|
|
115
|
-
|
|
116
|
-
### 📈 性能监控
|
|
117
|
-
|
|
118
|
-
实时性能监控和统计:
|
|
119
|
-
|
|
120
|
-
```javascript
|
|
121
|
-
import { performanceMonitor } from 'avke-sdk';
|
|
122
|
-
|
|
123
|
-
// 获取性能报告
|
|
124
|
-
const report = performanceMonitor.getReport();
|
|
125
|
-
console.log('Total operations:', report.summary.totalOperations);
|
|
126
|
-
console.log('Active connections:', report.summary.activeConnections);
|
|
127
|
-
|
|
128
|
-
// 按操作类型查看性能
|
|
129
|
-
console.log('Operation metrics:', report.operations);
|
|
130
|
-
```
|
|
131
|
-
|
|
132
|
-
## 测试工具
|
|
133
|
-
|
|
134
|
-
### 运行测试
|
|
135
|
-
|
|
136
|
-
```bash
|
|
137
|
-
# 运行所有测试
|
|
138
|
-
npm test
|
|
139
|
-
|
|
140
|
-
# 在Node.js环境中运行
|
|
141
|
-
npm run test:node
|
|
142
|
-
|
|
143
|
-
# 在浏览器中运行(开发模式)
|
|
144
|
-
npm run test:browser
|
|
145
|
-
```
|
|
146
|
-
|
|
147
|
-
### 测试框架
|
|
148
|
-
|
|
149
|
-
SDK 包含完整的测试框架,支持:
|
|
150
|
-
|
|
151
|
-
- ✅ 单元测试
|
|
152
|
-
- ✅ 集成测试
|
|
153
|
-
- ✅ 性能测试
|
|
154
|
-
- ✅ 兼容性测试
|
|
155
|
-
- ✅ 错误处理测试
|
|
156
|
-
|
|
157
|
-
## 开发和调试
|
|
158
|
-
|
|
159
|
-
### 开发服务器
|
|
160
|
-
|
|
161
|
-
```bash
|
|
162
|
-
# 启动调试工具
|
|
163
|
-
npm run dev
|
|
164
|
-
|
|
165
|
-
# 启动网站开发服务器
|
|
166
|
-
npm run website:dev
|
|
167
|
-
|
|
168
|
-
# 文档调试入口
|
|
169
|
-
# 官网开发模式可直接访问 /docs/
|
|
170
|
-
```
|
|
171
|
-
|
|
172
|
-
### 构建
|
|
173
|
-
|
|
174
|
-
```bash
|
|
175
|
-
# 构建SDK
|
|
176
|
-
npm run build
|
|
177
|
-
|
|
178
|
-
# 构建调试版本
|
|
179
|
-
npm run build:debug
|
|
180
|
-
|
|
181
|
-
# 构建完整网站
|
|
182
|
-
npm run website:build
|
|
183
|
-
|
|
184
|
-
# 官网构建会自动构建文档并整合到 dist-website/docs
|
|
185
|
-
```
|
|
186
|
-
|
|
187
|
-
## 官网
|
|
188
|
-
|
|
189
|
-
完整的项目官网已集成所有功能模块:
|
|
190
|
-
|
|
191
|
-
```bash
|
|
192
|
-
# 启动官网开发服务器
|
|
193
|
-
npm run website:dev
|
|
194
|
-
|
|
195
|
-
# 构建完整官网
|
|
196
|
-
npm run website:build
|
|
197
|
-
```
|
|
198
|
-
|
|
199
|
-
官网包含:
|
|
200
|
-
- 🏠 **首页**:产品介绍和特性展示
|
|
201
|
-
- 📦 **SDK**:下载和使用指南
|
|
202
|
-
- 🔧 **调试工具**:在线API测试
|
|
203
|
-
- 📚 **文档中心**:完整的API文档
|
|
204
|
-
|
|
205
|
-
## 国际化支持
|
|
206
|
-
|
|
207
|
-
官网支持中英文切换:
|
|
208
|
-
- 🌐 自动检测浏览器语言
|
|
209
|
-
- 🔄 手动切换语言设置
|
|
210
|
-
- 💾 语言偏好自动保存到本地存储
|
|
211
|
-
|
|
212
|
-
## Development
|
|
213
|
-
|
|
214
|
-
```bash
|
|
215
|
-
# Install dependencies
|
|
216
|
-
npm install
|
|
217
|
-
|
|
218
|
-
# Start development server
|
|
219
|
-
npm run dev
|
|
220
|
-
|
|
221
|
-
# Build SDK
|
|
222
|
-
npm run build
|
|
223
|
-
|
|
224
|
-
# Start debug tool
|
|
225
|
-
npm run dev
|
|
226
|
-
|
|
227
|
-
# Website docs are available at /docs/ in website dev mode
|
|
228
|
-
|
|
229
|
-
# Start website
|
|
230
|
-
npm run website:dev
|
|
231
|
-
```
|
|
232
|
-
|
|
233
|
-
### 部署到 GitHub Pages
|
|
234
|
-
|
|
235
|
-
构建后的 `dist-website` 目录可以直接部署到GitHub Pages,整个官网即可在线访问。
|
|
236
|
-
|
|
237
|
-
## Development
|
|
238
|
-
|
|
239
|
-
### 调试工具
|
|
240
|
-
|
|
241
|
-
项目包含一个内置的网页调试工具,可以在浏览器中直接测试SDK接口。
|
|
242
|
-
|
|
243
|
-
```bash
|
|
244
|
-
# 启动调试服务器
|
|
245
|
-
npm run dev
|
|
246
|
-
|
|
247
|
-
# 访问调试界面进行接口测试
|
|
248
|
-
```
|
|
249
|
-
|
|
250
|
-
调试工具提供:
|
|
251
|
-
- 左侧API方法列表
|
|
252
|
-
- 右侧参数输入和结果显示
|
|
253
|
-
- 实时调用SDK方法并查看返回结果
|
|
254
|
-
|
|
255
|
-
### 构建
|
|
256
|
-
|
|
257
|
-
```bash
|
|
258
|
-
# 构建SDK库(发布用)
|
|
259
|
-
npm run build
|
|
260
|
-
|
|
261
|
-
# 构建调试应用(可选)
|
|
262
|
-
npm run build:debug
|
|
263
|
-
```
|
|
264
|
-
|
|
265
|
-
## License
|
|
266
|
-
|
|
267
|
-
MIT
|
|
1
|
+
# AVKE SDK
|
|
2
|
+
|
|
3
|
+
AVKE SDK 是面向游戏外设的 JavaScript 和 TypeScript SDK,基于 WebHID 提供键盘、鼠标等设备的连接、读取与配置能力。
|
|
4
|
+
|
|
5
|
+
## 安装
|
|
6
|
+
|
|
7
|
+
```bash
|
|
8
|
+
npm install avke-sdk
|
|
9
|
+
```
|
|
10
|
+
|
|
11
|
+
## 使用要求
|
|
12
|
+
|
|
13
|
+
- 运行环境需要支持 WebHID 的现代浏览器
|
|
14
|
+
- 设备访问必须由用户手势触发
|
|
15
|
+
- 建议在 HTTPS 或本地开发环境中使用
|
|
16
|
+
|
|
17
|
+
## 快速开始
|
|
18
|
+
|
|
19
|
+
```javascript
|
|
20
|
+
import { ServiceKeyboard } from 'avke-sdk'
|
|
21
|
+
|
|
22
|
+
const keyboard = new ServiceKeyboard()
|
|
23
|
+
|
|
24
|
+
const devices = await keyboard.getDevices()
|
|
25
|
+
if (devices.length === 0) {
|
|
26
|
+
throw new Error('No keyboard devices found')
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
await keyboard.init(devices[0].id)
|
|
30
|
+
|
|
31
|
+
const info = await keyboard.getDevicesInfo()
|
|
32
|
+
console.log(info)
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## 导出内容
|
|
36
|
+
|
|
37
|
+
```javascript
|
|
38
|
+
import ServiceKeyboard, {
|
|
39
|
+
ServiceKeyboard,
|
|
40
|
+
ServiceMouse,
|
|
41
|
+
versionManager,
|
|
42
|
+
logger,
|
|
43
|
+
performanceMonitor
|
|
44
|
+
} from 'avke-sdk'
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
- `ServiceKeyboard`: 键盘设备服务
|
|
48
|
+
- `ServiceMouse`: 鼠标设备服务
|
|
49
|
+
- `versionManager`: SDK 版本和兼容性检查
|
|
50
|
+
- `logger`: 运行日志记录
|
|
51
|
+
- `performanceMonitor`: 性能统计与错误追踪
|
|
52
|
+
|
|
53
|
+
## 常见流程
|
|
54
|
+
|
|
55
|
+
### 键盘设备
|
|
56
|
+
|
|
57
|
+
```javascript
|
|
58
|
+
import { ServiceKeyboard } from 'avke-sdk'
|
|
59
|
+
|
|
60
|
+
const keyboard = new ServiceKeyboard()
|
|
61
|
+
const devices = await keyboard.getDevices()
|
|
62
|
+
|
|
63
|
+
await keyboard.init(devices[0].id)
|
|
64
|
+
|
|
65
|
+
const protocolVersion = await keyboard.getProtocolVersion()
|
|
66
|
+
const configList = await keyboard.getConfigList()
|
|
67
|
+
|
|
68
|
+
console.log(protocolVersion, configList)
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
### 鼠标设备
|
|
72
|
+
|
|
73
|
+
```javascript
|
|
74
|
+
import { ServiceMouse } from 'avke-sdk'
|
|
75
|
+
|
|
76
|
+
const mouse = new ServiceMouse()
|
|
77
|
+
const devices = await mouse.getDevices()
|
|
78
|
+
|
|
79
|
+
await mouse.init(devices[0].id)
|
|
80
|
+
|
|
81
|
+
const dpi = await mouse.getDPI()
|
|
82
|
+
console.log(dpi)
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## TypeScript
|
|
86
|
+
|
|
87
|
+
包内已经包含类型声明,安装后可直接获得类型提示。
|
|
88
|
+
|
|
89
|
+
## 发布说明
|
|
90
|
+
|
|
91
|
+
仓库根目录 README 用于项目总览。
|
|
92
|
+
npm 发布包使用的是此文件生成的独立 README。
|
package/package.json
CHANGED
|
@@ -1,25 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "avke-sdk",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.1",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"description": "AVKE - 爱客游戏外设开发者联盟 SDK",
|
|
6
6
|
"main": "dist/keyboard-sdk.umd.js",
|
|
7
7
|
"module": "dist/keyboard-sdk.es.js",
|
|
8
8
|
"types": "dist/index.d.ts",
|
|
9
|
-
"files": [
|
|
10
|
-
"dist"
|
|
11
|
-
],
|
|
12
|
-
"scripts": {
|
|
13
|
-
"dev": "vite --mode debug",
|
|
14
|
-
"website:dev": "vite --mode website",
|
|
15
|
-
"website:build": "vite build --mode website",
|
|
16
|
-
"build": "vite build",
|
|
17
|
-
"build:debug": "vite build --mode debug",
|
|
18
|
-
"preview": "vite preview",
|
|
19
|
-
"test": "node test/run-tests.js",
|
|
20
|
-
"test:node": "node test/sdk-tests.js",
|
|
21
|
-
"test:browser": "npm run website:dev & sleep 3 && open http://localhost:4001/test.html"
|
|
22
|
-
},
|
|
23
9
|
"keywords": [
|
|
24
10
|
"keyboard",
|
|
25
11
|
"sdk",
|
|
@@ -27,16 +13,5 @@
|
|
|
27
13
|
"communication"
|
|
28
14
|
],
|
|
29
15
|
"author": "Your Name",
|
|
30
|
-
"license": "MIT"
|
|
31
|
-
"devDependencies": {
|
|
32
|
-
"@vitejs/plugin-vue": "^6.0.5",
|
|
33
|
-
"typescript": "^5.0.0",
|
|
34
|
-
"vite": "^8.0.0",
|
|
35
|
-
"vitepress": "^1.6.4",
|
|
36
|
-
"vue": "^3.5.30"
|
|
37
|
-
},
|
|
38
|
-
"dependencies": {
|
|
39
|
-
"vue-i18n": "^9.14.4",
|
|
40
|
-
"vue-router": "^4.6.4"
|
|
41
|
-
}
|
|
16
|
+
"license": "MIT"
|
|
42
17
|
}
|