@openmouse/protocol 0.1.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.
Files changed (547) hide show
  1. package/CONTRIBUTING.md +167 -0
  2. package/README.md +89 -0
  3. package/dist/asus/index.d.ts +52 -0
  4. package/dist/asus/index.d.ts.map +1 -0
  5. package/dist/asus/index.js +248 -0
  6. package/dist/asus/index.js.map +1 -0
  7. package/dist/atk/index.d.ts +200 -0
  8. package/dist/atk/index.d.ts.map +1 -0
  9. package/dist/atk/index.js +480 -0
  10. package/dist/atk/index.js.map +1 -0
  11. package/dist/bitmouse/index.d.ts +284 -0
  12. package/dist/bitmouse/index.d.ts.map +1 -0
  13. package/dist/bitmouse/index.js +396 -0
  14. package/dist/bitmouse/index.js.map +1 -0
  15. package/dist/compx/codec.d.ts +31 -0
  16. package/dist/compx/codec.d.ts.map +1 -0
  17. package/dist/compx/codec.js +50 -0
  18. package/dist/compx/codec.js.map +1 -0
  19. package/dist/corsair/index.d.ts +147 -0
  20. package/dist/corsair/index.d.ts.map +1 -0
  21. package/dist/corsair/index.js +223 -0
  22. package/dist/corsair/index.js.map +1 -0
  23. package/dist/dareu/index.d.ts +136 -0
  24. package/dist/dareu/index.d.ts.map +1 -0
  25. package/dist/dareu/index.js +344 -0
  26. package/dist/dareu/index.js.map +1 -0
  27. package/dist/drivers/asus/hid.d.ts +29 -0
  28. package/dist/drivers/asus/hid.d.ts.map +1 -0
  29. package/dist/drivers/asus/hid.js +419 -0
  30. package/dist/drivers/asus/hid.js.map +1 -0
  31. package/dist/drivers/atk/bitmouse-hid.d.ts +80 -0
  32. package/dist/drivers/atk/bitmouse-hid.d.ts.map +1 -0
  33. package/dist/drivers/atk/bitmouse-hid.js +501 -0
  34. package/dist/drivers/atk/bitmouse-hid.js.map +1 -0
  35. package/dist/drivers/atk/hid.d.ts +163 -0
  36. package/dist/drivers/atk/hid.d.ts.map +1 -0
  37. package/dist/drivers/atk/hid.js +1368 -0
  38. package/dist/drivers/atk/hid.js.map +1 -0
  39. package/dist/drivers/atk/products.d.ts +13 -0
  40. package/dist/drivers/atk/products.d.ts.map +1 -0
  41. package/dist/drivers/atk/products.js +13 -0
  42. package/dist/drivers/atk/products.js.map +1 -0
  43. package/dist/drivers/attackshark/dpi.d.ts +41 -0
  44. package/dist/drivers/attackshark/dpi.d.ts.map +1 -0
  45. package/dist/drivers/attackshark/dpi.js +215 -0
  46. package/dist/drivers/attackshark/dpi.js.map +1 -0
  47. package/dist/drivers/attackshark/hid.d.ts +124 -0
  48. package/dist/drivers/attackshark/hid.d.ts.map +1 -0
  49. package/dist/drivers/attackshark/hid.js +728 -0
  50. package/dist/drivers/attackshark/hid.js.map +1 -0
  51. package/dist/drivers/corsair/hid.d.ts +70 -0
  52. package/dist/drivers/corsair/hid.d.ts.map +1 -0
  53. package/dist/drivers/corsair/hid.js +414 -0
  54. package/dist/drivers/corsair/hid.js.map +1 -0
  55. package/dist/drivers/dareu/hid.d.ts +59 -0
  56. package/dist/drivers/dareu/hid.d.ts.map +1 -0
  57. package/dist/drivers/dareu/hid.js +478 -0
  58. package/dist/drivers/dareu/hid.js.map +1 -0
  59. package/dist/drivers/endgame/egg-op1-hid.d.ts +107 -0
  60. package/dist/drivers/endgame/egg-op1-hid.d.ts.map +1 -0
  61. package/dist/drivers/endgame/egg-op1-hid.js +605 -0
  62. package/dist/drivers/endgame/egg-op1-hid.js.map +1 -0
  63. package/dist/drivers/endgame/egg-we-control.d.ts +42 -0
  64. package/dist/drivers/endgame/egg-we-control.d.ts.map +1 -0
  65. package/dist/drivers/endgame/egg-we-control.js +87 -0
  66. package/dist/drivers/endgame/egg-we-control.js.map +1 -0
  67. package/dist/drivers/endgame/egg-we-hid.d.ts +58 -0
  68. package/dist/drivers/endgame/egg-we-hid.d.ts.map +1 -0
  69. package/dist/drivers/endgame/egg-we-hid.js +514 -0
  70. package/dist/drivers/endgame/egg-we-hid.js.map +1 -0
  71. package/dist/drivers/fantech/hid.d.ts +106 -0
  72. package/dist/drivers/fantech/hid.d.ts.map +1 -0
  73. package/dist/drivers/fantech/hid.js +295 -0
  74. package/dist/drivers/fantech/hid.js.map +1 -0
  75. package/dist/drivers/finalmouse/hid.d.ts +31 -0
  76. package/dist/drivers/finalmouse/hid.d.ts.map +1 -0
  77. package/dist/drivers/finalmouse/hid.js +181 -0
  78. package/dist/drivers/finalmouse/hid.js.map +1 -0
  79. package/dist/drivers/gearhub/hid.d.ts +191 -0
  80. package/dist/drivers/gearhub/hid.d.ts.map +1 -0
  81. package/dist/drivers/gearhub/hid.js +542 -0
  82. package/dist/drivers/gearhub/hid.js.map +1 -0
  83. package/dist/drivers/glorious/classic-hid.d.ts +62 -0
  84. package/dist/drivers/glorious/classic-hid.d.ts.map +1 -0
  85. package/dist/drivers/glorious/classic-hid.js +326 -0
  86. package/dist/drivers/glorious/classic-hid.js.map +1 -0
  87. package/dist/drivers/glorious/hid.d.ts +39 -0
  88. package/dist/drivers/glorious/hid.d.ts.map +1 -0
  89. package/dist/drivers/glorious/hid.js +203 -0
  90. package/dist/drivers/glorious/hid.js.map +1 -0
  91. package/dist/drivers/gwolves/hid.d.ts +27 -0
  92. package/dist/drivers/gwolves/hid.d.ts.map +1 -0
  93. package/dist/drivers/gwolves/hid.js +225 -0
  94. package/dist/drivers/gwolves/hid.js.map +1 -0
  95. package/dist/drivers/gwolves/products.d.ts +17 -0
  96. package/dist/drivers/gwolves/products.d.ts.map +1 -0
  97. package/dist/drivers/gwolves/products.js +58 -0
  98. package/dist/drivers/gwolves/products.js.map +1 -0
  99. package/dist/drivers/hyperx/hid.d.ts +59 -0
  100. package/dist/drivers/hyperx/hid.d.ts.map +1 -0
  101. package/dist/drivers/hyperx/hid.js +229 -0
  102. package/dist/drivers/hyperx/hid.js.map +1 -0
  103. package/dist/drivers/incott/hid.d.ts +513 -0
  104. package/dist/drivers/incott/hid.d.ts.map +1 -0
  105. package/dist/drivers/incott/hid.js +1173 -0
  106. package/dist/drivers/incott/hid.js.map +1 -0
  107. package/dist/drivers/index.d.ts +5 -0
  108. package/dist/drivers/index.d.ts.map +1 -0
  109. package/dist/drivers/index.js +5 -0
  110. package/dist/drivers/index.js.map +1 -0
  111. package/dist/drivers/keychron/m6-hid.d.ts +81 -0
  112. package/dist/drivers/keychron/m6-hid.d.ts.map +1 -0
  113. package/dist/drivers/keychron/m6-hid.js +486 -0
  114. package/dist/drivers/keychron/m6-hid.js.map +1 -0
  115. package/dist/drivers/keychron/nape-hid.d.ts +60 -0
  116. package/dist/drivers/keychron/nape-hid.d.ts.map +1 -0
  117. package/dist/drivers/keychron/nape-hid.js +432 -0
  118. package/dist/drivers/keychron/nape-hid.js.map +1 -0
  119. package/dist/drivers/ksnake/hid.d.ts +74 -0
  120. package/dist/drivers/ksnake/hid.d.ts.map +1 -0
  121. package/dist/drivers/ksnake/hid.js +368 -0
  122. package/dist/drivers/ksnake/hid.js.map +1 -0
  123. package/dist/drivers/lamzu/hid.d.ts +58 -0
  124. package/dist/drivers/lamzu/hid.d.ts.map +1 -0
  125. package/dist/drivers/lamzu/hid.js +414 -0
  126. package/dist/drivers/lamzu/hid.js.map +1 -0
  127. package/dist/drivers/lamzu-atlantis/hid.d.ts +148 -0
  128. package/dist/drivers/lamzu-atlantis/hid.d.ts.map +1 -0
  129. package/dist/drivers/lamzu-atlantis/hid.js +587 -0
  130. package/dist/drivers/lamzu-atlantis/hid.js.map +1 -0
  131. package/dist/drivers/logitech/bolt.d.ts +41 -0
  132. package/dist/drivers/logitech/bolt.d.ts.map +1 -0
  133. package/dist/drivers/logitech/bolt.js +105 -0
  134. package/dist/drivers/logitech/bolt.js.map +1 -0
  135. package/dist/drivers/logitech/hidpp.d.ts +525 -0
  136. package/dist/drivers/logitech/hidpp.d.ts.map +1 -0
  137. package/dist/drivers/logitech/hidpp.js +2774 -0
  138. package/dist/drivers/logitech/hidpp.js.map +1 -0
  139. package/dist/drivers/logitech/mode-status.d.ts +53 -0
  140. package/dist/drivers/logitech/mode-status.d.ts.map +1 -0
  141. package/dist/drivers/logitech/mode-status.js +52 -0
  142. package/dist/drivers/logitech/mode-status.js.map +1 -0
  143. package/dist/drivers/logitech/onboard-profiles.d.ts +298 -0
  144. package/dist/drivers/logitech/onboard-profiles.d.ts.map +1 -0
  145. package/dist/drivers/logitech/onboard-profiles.js +965 -0
  146. package/dist/drivers/logitech/onboard-profiles.js.map +1 -0
  147. package/dist/drivers/logitech/rgb-effects.d.ts +20 -0
  148. package/dist/drivers/logitech/rgb-effects.d.ts.map +1 -0
  149. package/dist/drivers/logitech/rgb-effects.js +93 -0
  150. package/dist/drivers/logitech/rgb-effects.js.map +1 -0
  151. package/dist/drivers/mchose/a5-gen1-hid.d.ts +36 -0
  152. package/dist/drivers/mchose/a5-gen1-hid.d.ts.map +1 -0
  153. package/dist/drivers/mchose/a5-gen1-hid.js +219 -0
  154. package/dist/drivers/mchose/a5-gen1-hid.js.map +1 -0
  155. package/dist/drivers/mchose/dock-hid.d.ts +26 -0
  156. package/dist/drivers/mchose/dock-hid.d.ts.map +1 -0
  157. package/dist/drivers/mchose/dock-hid.js +176 -0
  158. package/dist/drivers/mchose/dock-hid.js.map +1 -0
  159. package/dist/drivers/mchose/hid.d.ts +118 -0
  160. package/dist/drivers/mchose/hid.d.ts.map +1 -0
  161. package/dist/drivers/mchose/hid.js +550 -0
  162. package/dist/drivers/mchose/hid.js.map +1 -0
  163. package/dist/drivers/mchose/v3-hid.d.ts +109 -0
  164. package/dist/drivers/mchose/v3-hid.d.ts.map +1 -0
  165. package/dist/drivers/mchose/v3-hid.js +572 -0
  166. package/dist/drivers/mchose/v3-hid.js.map +1 -0
  167. package/dist/drivers/microsoft/hid.d.ts +25 -0
  168. package/dist/drivers/microsoft/hid.d.ts.map +1 -0
  169. package/dist/drivers/microsoft/hid.js +247 -0
  170. package/dist/drivers/microsoft/hid.js.map +1 -0
  171. package/dist/drivers/moddo/hid.d.ts +31 -0
  172. package/dist/drivers/moddo/hid.d.ts.map +1 -0
  173. package/dist/drivers/moddo/hid.js +154 -0
  174. package/dist/drivers/moddo/hid.js.map +1 -0
  175. package/dist/drivers/mouse-types.d.ts +388 -0
  176. package/dist/drivers/mouse-types.d.ts.map +1 -0
  177. package/dist/drivers/mouse-types.js +2 -0
  178. package/dist/drivers/mouse-types.js.map +1 -0
  179. package/dist/drivers/ninjutso/hid.d.ts +62 -0
  180. package/dist/drivers/ninjutso/hid.d.ts.map +1 -0
  181. package/dist/drivers/ninjutso/hid.js +680 -0
  182. package/dist/drivers/ninjutso/hid.js.map +1 -0
  183. package/dist/drivers/orbital/hid.d.ts +24 -0
  184. package/dist/drivers/orbital/hid.d.ts.map +1 -0
  185. package/dist/drivers/orbital/hid.js +85 -0
  186. package/dist/drivers/orbital/hid.js.map +1 -0
  187. package/dist/drivers/orbital/host-protocol.d.ts +59 -0
  188. package/dist/drivers/orbital/host-protocol.d.ts.map +1 -0
  189. package/dist/drivers/orbital/host-protocol.js +884 -0
  190. package/dist/drivers/orbital/host-protocol.js.map +1 -0
  191. package/dist/drivers/pulsar/pulsar-hid.d.ts +63 -0
  192. package/dist/drivers/pulsar/pulsar-hid.d.ts.map +1 -0
  193. package/dist/drivers/pulsar/pulsar-hid.js +381 -0
  194. package/dist/drivers/pulsar/pulsar-hid.js.map +1 -0
  195. package/dist/drivers/pulsar/pulsar-pro-hid.d.ts +46 -0
  196. package/dist/drivers/pulsar/pulsar-pro-hid.d.ts.map +1 -0
  197. package/dist/drivers/pulsar/pulsar-pro-hid.js +343 -0
  198. package/dist/drivers/pulsar/pulsar-pro-hid.js.map +1 -0
  199. package/dist/drivers/pulsar/pulsar-xs1-hid.d.ts +40 -0
  200. package/dist/drivers/pulsar/pulsar-xs1-hid.d.ts.map +1 -0
  201. package/dist/drivers/pulsar/pulsar-xs1-hid.js +251 -0
  202. package/dist/drivers/pulsar/pulsar-xs1-hid.js.map +1 -0
  203. package/dist/drivers/rawm/hid.d.ts +29 -0
  204. package/dist/drivers/rawm/hid.d.ts.map +1 -0
  205. package/dist/drivers/rawm/hid.js +210 -0
  206. package/dist/drivers/rawm/hid.js.map +1 -0
  207. package/dist/drivers/razer/cobra-hid.d.ts +63 -0
  208. package/dist/drivers/razer/cobra-hid.d.ts.map +1 -0
  209. package/dist/drivers/razer/cobra-hid.js +282 -0
  210. package/dist/drivers/razer/cobra-hid.js.map +1 -0
  211. package/dist/drivers/razer/hid-open.d.ts +13 -0
  212. package/dist/drivers/razer/hid-open.d.ts.map +1 -0
  213. package/dist/drivers/razer/hid-open.js +29 -0
  214. package/dist/drivers/razer/hid-open.js.map +1 -0
  215. package/dist/drivers/razer/hid.d.ts +231 -0
  216. package/dist/drivers/razer/hid.d.ts.map +1 -0
  217. package/dist/drivers/razer/hid.js +772 -0
  218. package/dist/drivers/razer/hid.js.map +1 -0
  219. package/dist/drivers/razer/viper-hid.d.ts +33 -0
  220. package/dist/drivers/razer/viper-hid.d.ts.map +1 -0
  221. package/dist/drivers/razer/viper-hid.js +177 -0
  222. package/dist/drivers/razer/viper-hid.js.map +1 -0
  223. package/dist/drivers/razer/viper-mini-hid.d.ts +58 -0
  224. package/dist/drivers/razer/viper-mini-hid.d.ts.map +1 -0
  225. package/dist/drivers/razer/viper-mini-hid.js +273 -0
  226. package/dist/drivers/razer/viper-mini-hid.js.map +1 -0
  227. package/dist/drivers/razer/viper-v4-pro-hid.d.ts +26 -0
  228. package/dist/drivers/razer/viper-v4-pro-hid.d.ts.map +1 -0
  229. package/dist/drivers/razer/viper-v4-pro-hid.js +154 -0
  230. package/dist/drivers/razer/viper-v4-pro-hid.js.map +1 -0
  231. package/dist/drivers/registry.d.ts +70 -0
  232. package/dist/drivers/registry.d.ts.map +1 -0
  233. package/dist/drivers/registry.js +146 -0
  234. package/dist/drivers/registry.js.map +1 -0
  235. package/dist/drivers/steelseries/aerox3-hid.d.ts +53 -0
  236. package/dist/drivers/steelseries/aerox3-hid.d.ts.map +1 -0
  237. package/dist/drivers/steelseries/aerox3-hid.js +172 -0
  238. package/dist/drivers/steelseries/aerox3-hid.js.map +1 -0
  239. package/dist/drivers/steelseries/aerox5-hid.d.ts +54 -0
  240. package/dist/drivers/steelseries/aerox5-hid.d.ts.map +1 -0
  241. package/dist/drivers/steelseries/aerox5-hid.js +173 -0
  242. package/dist/drivers/steelseries/aerox5-hid.js.map +1 -0
  243. package/dist/drivers/steelseries/aerox5-wireless-hid.d.ts +69 -0
  244. package/dist/drivers/steelseries/aerox5-wireless-hid.d.ts.map +1 -0
  245. package/dist/drivers/steelseries/aerox5-wireless-hid.js +234 -0
  246. package/dist/drivers/steelseries/aerox5-wireless-hid.js.map +1 -0
  247. package/dist/drivers/steelseries/aerox9-wireless-hid.d.ts +70 -0
  248. package/dist/drivers/steelseries/aerox9-wireless-hid.d.ts.map +1 -0
  249. package/dist/drivers/steelseries/aerox9-wireless-hid.js +227 -0
  250. package/dist/drivers/steelseries/aerox9-wireless-hid.js.map +1 -0
  251. package/dist/drivers/steelseries/hid.d.ts +48 -0
  252. package/dist/drivers/steelseries/hid.d.ts.map +1 -0
  253. package/dist/drivers/steelseries/hid.js +157 -0
  254. package/dist/drivers/steelseries/hid.js.map +1 -0
  255. package/dist/drivers/steelseries/prime-mini-wireless-hid.d.ts +62 -0
  256. package/dist/drivers/steelseries/prime-mini-wireless-hid.d.ts.map +1 -0
  257. package/dist/drivers/steelseries/prime-mini-wireless-hid.js +215 -0
  258. package/dist/drivers/steelseries/prime-mini-wireless-hid.js.map +1 -0
  259. package/dist/drivers/steelseries/prime-plus-hid.d.ts +51 -0
  260. package/dist/drivers/steelseries/prime-plus-hid.d.ts.map +1 -0
  261. package/dist/drivers/steelseries/prime-plus-hid.js +150 -0
  262. package/dist/drivers/steelseries/prime-plus-hid.js.map +1 -0
  263. package/dist/drivers/steelseries/rival3-wireless-hid.d.ts +61 -0
  264. package/dist/drivers/steelseries/rival3-wireless-hid.d.ts.map +1 -0
  265. package/dist/drivers/steelseries/rival3-wireless-hid.js +185 -0
  266. package/dist/drivers/steelseries/rival3-wireless-hid.js.map +1 -0
  267. package/dist/drivers/steelseries/rival310-hid.d.ts +59 -0
  268. package/dist/drivers/steelseries/rival310-hid.d.ts.map +1 -0
  269. package/dist/drivers/steelseries/rival310-hid.js +182 -0
  270. package/dist/drivers/steelseries/rival310-hid.js.map +1 -0
  271. package/dist/drivers/steelseries/rival650-hid.d.ts +68 -0
  272. package/dist/drivers/steelseries/rival650-hid.d.ts.map +1 -0
  273. package/dist/drivers/steelseries/rival650-hid.js +209 -0
  274. package/dist/drivers/steelseries/rival650-hid.js.map +1 -0
  275. package/dist/drivers/steelseries/sensei-ten-hid.d.ts +62 -0
  276. package/dist/drivers/steelseries/sensei-ten-hid.d.ts.map +1 -0
  277. package/dist/drivers/steelseries/sensei-ten-hid.js +186 -0
  278. package/dist/drivers/steelseries/sensei-ten-hid.js.map +1 -0
  279. package/dist/drivers/teevolution/hid.d.ts +82 -0
  280. package/dist/drivers/teevolution/hid.d.ts.map +1 -0
  281. package/dist/drivers/teevolution/hid.js +607 -0
  282. package/dist/drivers/teevolution/hid.js.map +1 -0
  283. package/dist/drivers/vendors.d.ts +254 -0
  284. package/dist/drivers/vendors.d.ts.map +1 -0
  285. package/dist/drivers/vendors.js +587 -0
  286. package/dist/drivers/vendors.js.map +1 -0
  287. package/dist/drivers/vgn/hid.d.ts +33 -0
  288. package/dist/drivers/vgn/hid.d.ts.map +1 -0
  289. package/dist/drivers/vgn/hid.js +213 -0
  290. package/dist/drivers/vgn/hid.js.map +1 -0
  291. package/dist/drivers/wallhack/keyboard-hid.d.ts +28 -0
  292. package/dist/drivers/wallhack/keyboard-hid.d.ts.map +1 -0
  293. package/dist/drivers/wallhack/keyboard-hid.js +80 -0
  294. package/dist/drivers/wallhack/keyboard-hid.js.map +1 -0
  295. package/dist/drivers/wallhack/mouse-hid.d.ts +45 -0
  296. package/dist/drivers/wallhack/mouse-hid.d.ts.map +1 -0
  297. package/dist/drivers/wallhack/mouse-hid.js +288 -0
  298. package/dist/drivers/wallhack/mouse-hid.js.map +1 -0
  299. package/dist/drivers/webhid.d.ts +59 -0
  300. package/dist/drivers/webhid.d.ts.map +1 -0
  301. package/dist/drivers/webhid.js +2 -0
  302. package/dist/drivers/webhid.js.map +1 -0
  303. package/dist/drivers/wlmouse/hid.d.ts +81 -0
  304. package/dist/drivers/wlmouse/hid.d.ts.map +1 -0
  305. package/dist/drivers/wlmouse/hid.js +576 -0
  306. package/dist/drivers/wlmouse/hid.js.map +1 -0
  307. package/dist/drivers/wooting/hid.d.ts +86 -0
  308. package/dist/drivers/wooting/hid.d.ts.map +1 -0
  309. package/dist/drivers/wooting/hid.js +320 -0
  310. package/dist/drivers/wooting/hid.js.map +1 -0
  311. package/dist/drivers/zaunkoenig/hid.d.ts +31 -0
  312. package/dist/drivers/zaunkoenig/hid.d.ts.map +1 -0
  313. package/dist/drivers/zaunkoenig/hid.js +162 -0
  314. package/dist/drivers/zaunkoenig/hid.js.map +1 -0
  315. package/dist/endgame-gear/op1.d.ts +165 -0
  316. package/dist/endgame-gear/op1.d.ts.map +1 -0
  317. package/dist/endgame-gear/op1.js +384 -0
  318. package/dist/endgame-gear/op1.js.map +1 -0
  319. package/dist/endgame-gear/wireless.d.ts +93 -0
  320. package/dist/endgame-gear/wireless.d.ts.map +1 -0
  321. package/dist/endgame-gear/wireless.js +242 -0
  322. package/dist/endgame-gear/wireless.js.map +1 -0
  323. package/dist/fantech/index.d.ts +9 -0
  324. package/dist/fantech/index.d.ts.map +1 -0
  325. package/dist/fantech/index.js +11 -0
  326. package/dist/fantech/index.js.map +1 -0
  327. package/dist/finalmouse/index.d.ts +41 -0
  328. package/dist/finalmouse/index.d.ts.map +1 -0
  329. package/dist/finalmouse/index.js +106 -0
  330. package/dist/finalmouse/index.js.map +1 -0
  331. package/dist/gearhub/index.d.ts +210 -0
  332. package/dist/gearhub/index.d.ts.map +1 -0
  333. package/dist/gearhub/index.js +282 -0
  334. package/dist/gearhub/index.js.map +1 -0
  335. package/dist/glorious/index.d.ts +89 -0
  336. package/dist/glorious/index.d.ts.map +1 -0
  337. package/dist/glorious/index.js +236 -0
  338. package/dist/glorious/index.js.map +1 -0
  339. package/dist/glorious-classic/index.d.ts +103 -0
  340. package/dist/glorious-classic/index.d.ts.map +1 -0
  341. package/dist/glorious-classic/index.js +304 -0
  342. package/dist/glorious-classic/index.js.map +1 -0
  343. package/dist/gwolves/index.d.ts +82 -0
  344. package/dist/gwolves/index.d.ts.map +1 -0
  345. package/dist/gwolves/index.js +197 -0
  346. package/dist/gwolves/index.js.map +1 -0
  347. package/dist/hyperx/index.d.ts +181 -0
  348. package/dist/hyperx/index.d.ts.map +1 -0
  349. package/dist/hyperx/index.js +303 -0
  350. package/dist/hyperx/index.js.map +1 -0
  351. package/dist/incott/index.d.ts +1067 -0
  352. package/dist/incott/index.d.ts.map +1 -0
  353. package/dist/incott/index.js +1482 -0
  354. package/dist/incott/index.js.map +1 -0
  355. package/dist/index.d.ts +30 -0
  356. package/dist/index.d.ts.map +1 -0
  357. package/dist/index.js +30 -0
  358. package/dist/index.js.map +1 -0
  359. package/dist/keychron/index.d.ts +194 -0
  360. package/dist/keychron/index.d.ts.map +1 -0
  361. package/dist/keychron/index.js +341 -0
  362. package/dist/keychron/index.js.map +1 -0
  363. package/dist/ksnake/index.d.ts +157 -0
  364. package/dist/ksnake/index.d.ts.map +1 -0
  365. package/dist/ksnake/index.js +314 -0
  366. package/dist/ksnake/index.js.map +1 -0
  367. package/dist/lamzu/atlantis.d.ts +237 -0
  368. package/dist/lamzu/atlantis.d.ts.map +1 -0
  369. package/dist/lamzu/atlantis.js +263 -0
  370. package/dist/lamzu/atlantis.js.map +1 -0
  371. package/dist/lamzu/index.d.ts +60 -0
  372. package/dist/lamzu/index.d.ts.map +1 -0
  373. package/dist/lamzu/index.js +86 -0
  374. package/dist/lamzu/index.js.map +1 -0
  375. package/dist/logitech/controls.d.ts +138 -0
  376. package/dist/logitech/controls.d.ts.map +1 -0
  377. package/dist/logitech/controls.js +184 -0
  378. package/dist/logitech/controls.js.map +1 -0
  379. package/dist/logitech/friendly-name.d.ts +50 -0
  380. package/dist/logitech/friendly-name.d.ts.map +1 -0
  381. package/dist/logitech/friendly-name.js +74 -0
  382. package/dist/logitech/friendly-name.js.map +1 -0
  383. package/dist/logitech/haptics.d.ts +97 -0
  384. package/dist/logitech/haptics.d.ts.map +1 -0
  385. package/dist/logitech/haptics.js +116 -0
  386. package/dist/logitech/haptics.js.map +1 -0
  387. package/dist/logitech/hosts.d.ts +55 -0
  388. package/dist/logitech/hosts.d.ts.map +1 -0
  389. package/dist/logitech/hosts.js +80 -0
  390. package/dist/logitech/hosts.js.map +1 -0
  391. package/dist/logitech/index.d.ts +127 -0
  392. package/dist/logitech/index.d.ts.map +1 -0
  393. package/dist/logitech/index.js +233 -0
  394. package/dist/logitech/index.js.map +1 -0
  395. package/dist/logitech/wheel.d.ts +117 -0
  396. package/dist/logitech/wheel.d.ts.map +1 -0
  397. package/dist/logitech/wheel.js +133 -0
  398. package/dist/logitech/wheel.js.map +1 -0
  399. package/dist/mchose/a5-gen1.d.ts +38 -0
  400. package/dist/mchose/a5-gen1.d.ts.map +1 -0
  401. package/dist/mchose/a5-gen1.js +60 -0
  402. package/dist/mchose/a5-gen1.js.map +1 -0
  403. package/dist/mchose/buttons.d.ts +66 -0
  404. package/dist/mchose/buttons.d.ts.map +1 -0
  405. package/dist/mchose/buttons.js +184 -0
  406. package/dist/mchose/buttons.js.map +1 -0
  407. package/dist/mchose/dock.d.ts +77 -0
  408. package/dist/mchose/dock.d.ts.map +1 -0
  409. package/dist/mchose/dock.js +133 -0
  410. package/dist/mchose/dock.js.map +1 -0
  411. package/dist/mchose/index.d.ts +299 -0
  412. package/dist/mchose/index.d.ts.map +1 -0
  413. package/dist/mchose/index.js +429 -0
  414. package/dist/mchose/index.js.map +1 -0
  415. package/dist/mchose/v3-buttons.d.ts +64 -0
  416. package/dist/mchose/v3-buttons.d.ts.map +1 -0
  417. package/dist/mchose/v3-buttons.js +258 -0
  418. package/dist/mchose/v3-buttons.js.map +1 -0
  419. package/dist/mchose/v3.d.ts +380 -0
  420. package/dist/mchose/v3.d.ts.map +1 -0
  421. package/dist/mchose/v3.js +608 -0
  422. package/dist/mchose/v3.js.map +1 -0
  423. package/dist/microsoft/index.d.ts +19 -0
  424. package/dist/microsoft/index.d.ts.map +1 -0
  425. package/dist/microsoft/index.js +22 -0
  426. package/dist/microsoft/index.js.map +1 -0
  427. package/dist/moddo/index.d.ts +72 -0
  428. package/dist/moddo/index.d.ts.map +1 -0
  429. package/dist/moddo/index.js +147 -0
  430. package/dist/moddo/index.js.map +1 -0
  431. package/dist/ninjutso/index.d.ts +74 -0
  432. package/dist/ninjutso/index.d.ts.map +1 -0
  433. package/dist/ninjutso/index.js +133 -0
  434. package/dist/ninjutso/index.js.map +1 -0
  435. package/dist/orbital/index.d.ts +14 -0
  436. package/dist/orbital/index.d.ts.map +1 -0
  437. package/dist/orbital/index.js +19 -0
  438. package/dist/orbital/index.js.map +1 -0
  439. package/dist/pulsar/index.d.ts +81 -0
  440. package/dist/pulsar/index.d.ts.map +1 -0
  441. package/dist/pulsar/index.js +185 -0
  442. package/dist/pulsar/index.js.map +1 -0
  443. package/dist/rawm/index.d.ts +55 -0
  444. package/dist/rawm/index.d.ts.map +1 -0
  445. package/dist/rawm/index.js +229 -0
  446. package/dist/rawm/index.js.map +1 -0
  447. package/dist/razer/codec.d.ts +504 -0
  448. package/dist/razer/codec.d.ts.map +1 -0
  449. package/dist/razer/codec.js +648 -0
  450. package/dist/razer/codec.js.map +1 -0
  451. package/dist/razer/devices.d.ts +156 -0
  452. package/dist/razer/devices.d.ts.map +1 -0
  453. package/dist/razer/devices.js +540 -0
  454. package/dist/razer/devices.js.map +1 -0
  455. package/dist/razer/index.d.ts +2 -0
  456. package/dist/razer/index.d.ts.map +1 -0
  457. package/dist/razer/index.js +2 -0
  458. package/dist/razer/index.js.map +1 -0
  459. package/dist/razer/v4.d.ts +19 -0
  460. package/dist/razer/v4.d.ts.map +1 -0
  461. package/dist/razer/v4.js +51 -0
  462. package/dist/razer/v4.js.map +1 -0
  463. package/dist/steelseries/aerox3.d.ts +236 -0
  464. package/dist/steelseries/aerox3.d.ts.map +1 -0
  465. package/dist/steelseries/aerox3.js +311 -0
  466. package/dist/steelseries/aerox3.js.map +1 -0
  467. package/dist/steelseries/aerox5-wireless.d.ts +300 -0
  468. package/dist/steelseries/aerox5-wireless.d.ts.map +1 -0
  469. package/dist/steelseries/aerox5-wireless.js +389 -0
  470. package/dist/steelseries/aerox5-wireless.js.map +1 -0
  471. package/dist/steelseries/aerox5.d.ts +228 -0
  472. package/dist/steelseries/aerox5.d.ts.map +1 -0
  473. package/dist/steelseries/aerox5.js +294 -0
  474. package/dist/steelseries/aerox5.js.map +1 -0
  475. package/dist/steelseries/aerox9-wireless.d.ts +213 -0
  476. package/dist/steelseries/aerox9-wireless.d.ts.map +1 -0
  477. package/dist/steelseries/aerox9-wireless.js +305 -0
  478. package/dist/steelseries/aerox9-wireless.js.map +1 -0
  479. package/dist/steelseries/devices.d.ts +82 -0
  480. package/dist/steelseries/devices.d.ts.map +1 -0
  481. package/dist/steelseries/devices.js +310 -0
  482. package/dist/steelseries/devices.js.map +1 -0
  483. package/dist/steelseries/index.d.ts +13 -0
  484. package/dist/steelseries/index.d.ts.map +1 -0
  485. package/dist/steelseries/index.js +13 -0
  486. package/dist/steelseries/index.js.map +1 -0
  487. package/dist/steelseries/prime-mini-wireless.d.ts +253 -0
  488. package/dist/steelseries/prime-mini-wireless.d.ts.map +1 -0
  489. package/dist/steelseries/prime-mini-wireless.js +351 -0
  490. package/dist/steelseries/prime-mini-wireless.js.map +1 -0
  491. package/dist/steelseries/prime-plus.d.ts +179 -0
  492. package/dist/steelseries/prime-plus.d.ts.map +1 -0
  493. package/dist/steelseries/prime-plus.js +275 -0
  494. package/dist/steelseries/prime-plus.js.map +1 -0
  495. package/dist/steelseries/rival3-wireless.d.ts +222 -0
  496. package/dist/steelseries/rival3-wireless.d.ts.map +1 -0
  497. package/dist/steelseries/rival3-wireless.js +308 -0
  498. package/dist/steelseries/rival3-wireless.js.map +1 -0
  499. package/dist/steelseries/rival3.d.ts +99 -0
  500. package/dist/steelseries/rival3.d.ts.map +1 -0
  501. package/dist/steelseries/rival3.js +147 -0
  502. package/dist/steelseries/rival3.js.map +1 -0
  503. package/dist/steelseries/rival310.d.ts +230 -0
  504. package/dist/steelseries/rival310.d.ts.map +1 -0
  505. package/dist/steelseries/rival310.js +322 -0
  506. package/dist/steelseries/rival310.js.map +1 -0
  507. package/dist/steelseries/rival650.d.ts +215 -0
  508. package/dist/steelseries/rival650.d.ts.map +1 -0
  509. package/dist/steelseries/rival650.js +284 -0
  510. package/dist/steelseries/rival650.js.map +1 -0
  511. package/dist/steelseries/sensei-ten.d.ts +283 -0
  512. package/dist/steelseries/sensei-ten.d.ts.map +1 -0
  513. package/dist/steelseries/sensei-ten.js +389 -0
  514. package/dist/steelseries/sensei-ten.js.map +1 -0
  515. package/dist/teevolution/index.d.ts +211 -0
  516. package/dist/teevolution/index.d.ts.map +1 -0
  517. package/dist/teevolution/index.js +458 -0
  518. package/dist/teevolution/index.js.map +1 -0
  519. package/dist/valkyrie/index.d.ts +19 -0
  520. package/dist/valkyrie/index.d.ts.map +1 -0
  521. package/dist/valkyrie/index.js +43 -0
  522. package/dist/valkyrie/index.js.map +1 -0
  523. package/dist/valkyrie/settings.d.ts +28 -0
  524. package/dist/valkyrie/settings.d.ts.map +1 -0
  525. package/dist/valkyrie/settings.js +84 -0
  526. package/dist/valkyrie/settings.js.map +1 -0
  527. package/dist/vgn/index.d.ts +59 -0
  528. package/dist/vgn/index.d.ts.map +1 -0
  529. package/dist/vgn/index.js +165 -0
  530. package/dist/vgn/index.js.map +1 -0
  531. package/dist/wallhack/index.d.ts +165 -0
  532. package/dist/wallhack/index.d.ts.map +1 -0
  533. package/dist/wallhack/index.js +226 -0
  534. package/dist/wallhack/index.js.map +1 -0
  535. package/dist/wlmouse/index.d.ts +4 -0
  536. package/dist/wlmouse/index.d.ts.map +1 -0
  537. package/dist/wlmouse/index.js +7 -0
  538. package/dist/wlmouse/index.js.map +1 -0
  539. package/dist/wooting/index.d.ts +225 -0
  540. package/dist/wooting/index.d.ts.map +1 -0
  541. package/dist/wooting/index.js +296 -0
  542. package/dist/wooting/index.js.map +1 -0
  543. package/dist/zaunkoenig/index.d.ts +49 -0
  544. package/dist/zaunkoenig/index.d.ts.map +1 -0
  545. package/dist/zaunkoenig/index.js +127 -0
  546. package/dist/zaunkoenig/index.js.map +1 -0
  547. package/package.json +193 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/glorious-classic/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,CAAC;AAC5C,MAAM,CAAC,MAAM,8BAA8B,GAAG,EAAE,CAAC;AAEjD,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAClD,MAAM,CAAC,MAAM,gCAAgC,GAAG,EAAE,CAAC;AAEnD,SAAS,MAAM;IACb,OAAO,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;AACxD,CAAC;AAED;;;GAGG;AACH,SAAS,GAAG,CAAC,IAAgB,EAAE,WAAmB,EAAE,KAAa;IAC/D,IAAI,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC;AACvC,CAAC;AASD,MAAM,UAAU,GAA6C;IAC3D,GAAG,EAAE,IAAI;IACT,QAAQ,EAAE,IAAI;IACd,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,KAAK,EAAE,IAAI;IACX,QAAQ,EAAE,IAAI;IACd,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;IACV,IAAI,EAAE,IAAI;CACX,CAAC;AAEF,MAAM,CAAC,MAAM,mCAAmC,GAA+D;IAC7G,CAAC,UAAU,EAAE,UAAU,CAAC;IACxB,CAAC,KAAK,EAAE,UAAU,CAAC;IACnB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,OAAO,CAAC;IAClB,CAAC,OAAO,EAAE,aAAa,CAAC;IACxB,CAAC,UAAU,EAAE,eAAe,CAAC;IAC7B,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;IAChB,CAAC,MAAM,EAAE,MAAM,CAAC;CACjB,CAAC;AAWF,MAAM,CAAC,MAAM,4BAA4B,GAAuB;IAC9D,MAAM,EAAE,UAAU;IAClB,IAAI,EAAE,EAAE;IACR,MAAM,EAAE,CAAC,SAAS,CAAC;IACnB,SAAS,EAAE,gCAAgC;CAC5C,CAAC;AAEF,SAAS,QAAQ,CAAC,GAAW;IAC3B,MAAM,KAAK,GAAG,oBAAoB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;IACpD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAC1C,OAAO;QACL,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;KACvC,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,IAAY,EAAE,MAAgC;IACpF,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC7D,MAAM,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,CAAC;IAC9B,OAAO,EAAE,KAAK,UAAU,CAAC,IAAI,IAAI,EAAE,KAAK,UAAU,CAAC,IAAI;QACrD,CAAC,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;QACrB,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;AACtC,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,8BAA8B,CAAC,GAAuB;IACpE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;IACtB,MAAM,SAAS,GAAG,GAAG,CAAC,SAAS,IAAI,gCAAgC,CAAC;IACpE,MAAM,EAAE,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAClC,MAAM,QAAQ,GAAG,uBAAuB,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAC/D,MAAM,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAE3C,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;IAEjB,QAAQ,GAAG,CAAC,MAAM,EAAE,CAAC;QACnB,KAAK,KAAK;YACR,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACnB,MAAM;QACR,KAAK,UAAU;YACb,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACnB,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,OAAO;YACV,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACnB,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YACxB,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,CAAC;YACpB,MAAM;QACR,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YACxB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBAClC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QACD,KAAK,OAAO,CAAC,CAAC,CAAC;YACb,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACnB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACjB,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACjB,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACjB,MAAM;QACR,CAAC;QACD,KAAK,UAAU,CAAC,CAAC,CAAC;YAChB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACnB,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YACxB,MAAM,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;YAC9C,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACjB,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACjB,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;YACjB,MAAM;QACR,CAAC;QACD,KAAK,MAAM;YACT,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACnB,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YACxB,MAAM;QACR,KAAK,MAAM,CAAC,CAAC,CAAC;YACZ,MAAM,MAAM,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;YACrC,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;YACpC,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YACxB,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE;gBAClC,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;gBAC7B,GAAG,CAAC,IAAI,EAAE,EAAE,GAAG,KAAK,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;YAC/B,CAAC,CAAC,CAAC;YACH,MAAM;QACR,CAAC;QACD,KAAK,MAAM;YACT,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;YACnB,GAAG,CAAC,IAAI,EAAE,EAAE,EAAE,QAAQ,CAAC,CAAC;YACxB,MAAM;IACV,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,gFAAgF;AAChF,6BAA6B;AAC7B,8EAA8E;AAE9E,MAAM,UAAU,mCAAmC,CAAC,YAAoB,EAAE,SAAS,GAAG,gCAAgC;IACpH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,gCAAgC,EAAE,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAClG,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8EAA8E;AAC9E,4EAA4E;AAC5E,qEAAqE;AACrE,8EAA8E;AAE9E,MAAM,UAAU,yCAAyC;IACvD,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,OAAO,IAAI,CAAC;AACd,CAAC;AAkBD,gFAAgF;AAChF,MAAM,oBAAoB,GAAqD,IAAI,GAAG,CAAC;IACrF,CAAC,IAAI,EAAE,QAAQ,CAAC;IAChB,CAAC,IAAI,EAAE,QAAQ,CAAC;IAChB,CAAC,IAAI,EAAE,SAAS,CAAC;IACjB,CAAC,IAAI,EAAE,UAAU,CAAC;IAClB,CAAC,IAAI,EAAE,SAAS,CAAC;CAClB,CAAC,CAAC;AAEH;;;GAGG;AACH,MAAM,UAAU,mCAAmC,CAAC,IAAgB;IAClE,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IACrC,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IAC/B,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,SAAS;IACzC,MAAM,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS;IAErC,IAAI,IAAI,KAAK,IAAI;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAE/E,MAAM,KAAK,GAAG,oBAAoB,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,SAAS,CAAC;IAChE,IAAI,KAAK,KAAK,QAAQ;QAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;IAEzE,MAAM,OAAO,GAAG,UAAU,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC;IAClD,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,CAAC,IAAI,OAAO,IAAI,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,QAAQ,EAAE,CAAC;AACtF,CAAC;AAED,8EAA8E;AAC9E,6EAA6E;AAC7E,4EAA4E;AAC5E,sCAAsC;AACtC,8EAA8E;AAE9E,MAAM,CAAC,MAAM,wBAAwB,GAAG,GAAG,CAAC;AAC5C,MAAM,CAAC,MAAM,wBAAwB,GAAG,KAAK,CAAC;AAC9C,MAAM,CAAC,MAAM,gCAAgC,GAAG,CAAC,CAAC;AAElD;;;;;GAKG;AACH,MAAM,UAAU,oCAAoC,CAClD,MAAyB,EACzB,SAAS,GAAG,gCAAgC;IAE5C,MAAM,OAAO,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,GAAG,CAAC,wBAAwB,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;IAC7H,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;IAC7B,OAAO,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QAC7B,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QAC7B,MAAM,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC;QACtB,MAAM,IAAI,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QAC3B,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;QACpB,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACxB,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;QACxB,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,CAAC,EAAE,EAAE,CAAC,CAAC;IAC1B,CAAC,CAAC,CAAC;IACH,OAAO,IAAI,CAAC;AACd,CAAC;AAED,gFAAgF;AAChF,MAAM,UAAU,sCAAsC,CACpD,OAAe,EACf,SAAS,GAAG,gCAAgC;IAE5C,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,SAAS,CAAC,CAAC;IACxB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;IACtB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAwD;IACjG,CAAC,CAAC,EAAE,IAAI,CAAC;IACT,CAAC,CAAC,EAAE,GAAG,CAAC;IACR,CAAC,CAAC,EAAE,GAAG,CAAC;IACR,CAAC,CAAC,EAAE,GAAG,CAAC;CACT,CAAC;AAEF,MAAM,UAAU,gCAAgC,CAAC,KAAa;IAC5D,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,EAAE,CAAC,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AACpF,CAAC;AAED,MAAM,UAAU,gCAAgC,CAAC,EAAU;IACzD,OAAO,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC,QAAQ,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC3F,CAAC;AAED,MAAM,UAAU,sCAAsC,CAAC,UAAkB;IACvE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,UAAU,CAAC,CAAC;IACzB,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,CAAC;AAChD,MAAM,CAAC,MAAM,4BAA4B,GAAG,CAAC,CAAC;AAE9C,MAAM,UAAU,kCAAkC,CAAC,WAAmB;IACpE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;IACtB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,IAAI,CAAC,CAAC;IACnB,GAAG,CAAC,IAAI,EAAE,CAAC,EAAE,WAAW,GAAG,CAAC,CAAC,CAAC;IAC9B,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,82 @@
1
+ /**
2
+ * G-Wolves HTX Ultra protocol, pure functions, unit-tested without WebHID.
3
+ *
4
+ * G-Wolves mice enumerate under G-Wolves' own vendor id (0x33e4) but speak
5
+ * the exact same wire protocol as the shared VGN-family reference design
6
+ * already implemented independently in this repo for the VGN Dragonfly F2
7
+ * Master+ and (as `pulsarVgn*` in pulsar/index.ts) the Pulsar 4K Wireless
8
+ * Receiver: 16-byte packets on report id 8, opcode 0x07 writes an EEPROM
9
+ * address and 0x08 reads one, and every packet's bytes (plus the report id)
10
+ * sum to 0x55. Following the pattern already established for the Pulsar/VGN
11
+ * case, this is an independent implementation rather than an import of
12
+ * vgn/index.ts's functions — same algorithm, kept as its own module so a
13
+ * G-Wolves-specific quirk (like ATK's differing DPI stage encoding
14
+ * relative to Endgame Gear WE) can diverge cleanly later without touching
15
+ * code another brand's driver depends on.
16
+ *
17
+ * Confirmed against real hardware 2026-08-21: a live HID capture (browser
18
+ * sendReport/inputreport patch) while changing DPI, LOD, and polling rate
19
+ * on the official G-Wolves web driver at mouse.fit, then independently
20
+ * reproduced with hidapitester with no browser involved at all. See
21
+ * PROTOCOL-NOTES.md in the PR for the raw captured packets this was
22
+ * verified against.
23
+ */
24
+ export declare const GWOLVES_REPORT_ID = 8;
25
+ export declare const GWOLVES_PAYLOAD_LENGTH = 16;
26
+ export declare const GWOLVES_MAX_CHUNK = 10;
27
+ export declare const GWOLVES_COMMAND: {
28
+ readonly handshake: 1;
29
+ readonly online: 3;
30
+ readonly battery: 4;
31
+ readonly write: 7;
32
+ readonly read: 8;
33
+ readonly profile: 14;
34
+ readonly firmware: 18;
35
+ readonly dongleFirmware: 29;
36
+ };
37
+ export declare const GWOLVES_ADDRESS: {
38
+ readonly pollingRate: 0;
39
+ readonly dpiStageCount: 2;
40
+ readonly activeDpiStage: 4;
41
+ readonly lod: 10;
42
+ readonly dpiStages: 12;
43
+ readonly debounce: 169;
44
+ readonly motionSync: 171;
45
+ readonly sleep: 173;
46
+ readonly angleSnapping: 175;
47
+ readonly rippleControl: 177;
48
+ readonly performanceMode: 181;
49
+ };
50
+ export interface GWolvesBattery {
51
+ percent: number;
52
+ charging: boolean;
53
+ voltageMv: number;
54
+ }
55
+ export interface GWolvesProfile {
56
+ dpi: number;
57
+ dpiStageCount: number;
58
+ activeDpiStage: number;
59
+ pollingRateHz: number;
60
+ liftOffDistance: "Low" | "Medium" | "High" | null;
61
+ debounceMs: number | null;
62
+ sleepTimeout: number | null;
63
+ motionSync: boolean | null;
64
+ angleSnapping: boolean | null;
65
+ rippleControl: boolean | null;
66
+ performanceMode: boolean | null;
67
+ }
68
+ export declare function gwolvesReportChecksum(data15: Iterable<number>): number;
69
+ export declare function gwolvesReportChecksumIsValid(payload: Uint8Array | readonly number[]): boolean;
70
+ export declare function gwolvesBuildSimplePayload(command: number): Uint8Array;
71
+ export declare function gwolvesBuildReadPayload(address: number, length: number): Uint8Array;
72
+ export declare function gwolvesBuildWritePayload(address: number, data: readonly number[]): Uint8Array;
73
+ export declare function gwolvesBuildWriteScalarPayload(address: number, value: number): Uint8Array;
74
+ export declare function gwolvesParseReadResponse(response: Uint8Array, address: number, length: number): Uint8Array | null;
75
+ export declare function gwolvesParseBattery(response: Uint8Array): GWolvesBattery | null;
76
+ export declare function gwolvesEncodePollingRate(rate: number): number;
77
+ export declare function gwolvesDecodePollingRate(raw: number): number | null;
78
+ export declare function gwolvesEncodeDpi(dpi: number): Uint8Array;
79
+ export declare function gwolvesDecodeDpi(stage: Uint8Array | readonly number[]): number | null;
80
+ export declare function gwolvesUnpackScalar(value: number, parity: number): number | null;
81
+ export declare function gwolvesDecodeProfile(profile: Uint8Array): GWolvesProfile;
82
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/gwolves/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAEH,eAAO,MAAM,iBAAiB,IAAO,CAAC;AACtC,eAAO,MAAM,sBAAsB,KAAK,CAAC;AACzC,eAAO,MAAM,iBAAiB,KAAK,CAAC;AAEpC,eAAO,MAAM,eAAe;;;;;;;;;CASlB,CAAC;AAEX,eAAO,MAAM,eAAe;;;;;;;;;;;;CAYlB,CAAC;AAEX,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,cAAc;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,IAAI,CAAC;IAClD,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,OAAO,GAAG,IAAI,CAAC;IAC3B,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,aAAa,EAAE,OAAO,GAAG,IAAI,CAAC;IAC9B,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;CACjC;AAQD,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,GAAG,MAAM,CAItE;AAED,wBAAgB,4BAA4B,CAAC,OAAO,EAAE,UAAU,GAAG,SAAS,MAAM,EAAE,GAAG,OAAO,CAG7F;AAOD,wBAAgB,yBAAyB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAKrE;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAQnF;AAED,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAS7F;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,UAAU,CAGzF;AAED,wBAAgB,wBAAwB,CAAC,QAAQ,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAMjH;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAS/E;AAMD,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAK7D;AAED,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEnE;AAKD,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CASxD;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU,GAAG,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAQrF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEhF;AAID,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,UAAU,GAAG,cAAc,CA4BxE"}
@@ -0,0 +1,197 @@
1
+ /**
2
+ * G-Wolves HTX Ultra protocol, pure functions, unit-tested without WebHID.
3
+ *
4
+ * G-Wolves mice enumerate under G-Wolves' own vendor id (0x33e4) but speak
5
+ * the exact same wire protocol as the shared VGN-family reference design
6
+ * already implemented independently in this repo for the VGN Dragonfly F2
7
+ * Master+ and (as `pulsarVgn*` in pulsar/index.ts) the Pulsar 4K Wireless
8
+ * Receiver: 16-byte packets on report id 8, opcode 0x07 writes an EEPROM
9
+ * address and 0x08 reads one, and every packet's bytes (plus the report id)
10
+ * sum to 0x55. Following the pattern already established for the Pulsar/VGN
11
+ * case, this is an independent implementation rather than an import of
12
+ * vgn/index.ts's functions — same algorithm, kept as its own module so a
13
+ * G-Wolves-specific quirk (like ATK's differing DPI stage encoding
14
+ * relative to Endgame Gear WE) can diverge cleanly later without touching
15
+ * code another brand's driver depends on.
16
+ *
17
+ * Confirmed against real hardware 2026-08-21: a live HID capture (browser
18
+ * sendReport/inputreport patch) while changing DPI, LOD, and polling rate
19
+ * on the official G-Wolves web driver at mouse.fit, then independently
20
+ * reproduced with hidapitester with no browser involved at all. See
21
+ * PROTOCOL-NOTES.md in the PR for the raw captured packets this was
22
+ * verified against.
23
+ */
24
+ export const GWOLVES_REPORT_ID = 0x08;
25
+ export const GWOLVES_PAYLOAD_LENGTH = 16;
26
+ export const GWOLVES_MAX_CHUNK = 10;
27
+ export const GWOLVES_COMMAND = {
28
+ handshake: 0x01,
29
+ online: 0x03,
30
+ battery: 0x04,
31
+ write: 0x07,
32
+ read: 0x08,
33
+ profile: 0x0e,
34
+ firmware: 0x12,
35
+ dongleFirmware: 0x1d,
36
+ };
37
+ export const GWOLVES_ADDRESS = {
38
+ pollingRate: 0x00,
39
+ dpiStageCount: 0x02,
40
+ activeDpiStage: 0x04,
41
+ lod: 0x0a,
42
+ dpiStages: 0x0c,
43
+ debounce: 0xa9,
44
+ motionSync: 0xab,
45
+ sleep: 0xad,
46
+ angleSnapping: 0xaf,
47
+ rippleControl: 0xb1,
48
+ performanceMode: 0xb5,
49
+ };
50
+ function assertByte(value, label) {
51
+ if (!Number.isInteger(value) || value < 0 || value > 0xff) {
52
+ throw new Error(`${label} must be one byte.`);
53
+ }
54
+ }
55
+ export function gwolvesReportChecksum(data15) {
56
+ let sum = GWOLVES_REPORT_ID;
57
+ for (const byte of data15)
58
+ sum += byte & 0xff;
59
+ return (0x55 - (sum & 0xff)) & 0xff;
60
+ }
61
+ export function gwolvesReportChecksumIsValid(payload) {
62
+ if (payload.length !== GWOLVES_PAYLOAD_LENGTH)
63
+ return false;
64
+ return ((GWOLVES_REPORT_ID + [...payload].reduce((sum, byte) => sum + (byte & 0xff), 0)) & 0xff) === 0x55;
65
+ }
66
+ function finalize(payload) {
67
+ payload[15] = gwolvesReportChecksum(payload.subarray(0, 15));
68
+ return payload;
69
+ }
70
+ export function gwolvesBuildSimplePayload(command) {
71
+ assertByte(command, "G-Wolves command");
72
+ const payload = new Uint8Array(GWOLVES_PAYLOAD_LENGTH);
73
+ payload[0] = command;
74
+ return finalize(payload);
75
+ }
76
+ export function gwolvesBuildReadPayload(address, length) {
77
+ if (!Number.isInteger(address) || address < 0 || address > 0xffff)
78
+ throw new Error("G-Wolves address is out of range.");
79
+ if (!Number.isInteger(length) || length < 1 || length > GWOLVES_MAX_CHUNK)
80
+ throw new Error("G-Wolves read length must be 1–10 bytes.");
81
+ const payload = gwolvesBuildSimplePayload(GWOLVES_COMMAND.read);
82
+ payload[2] = address >> 8;
83
+ payload[3] = address & 0xff;
84
+ payload[4] = length;
85
+ return finalize(payload);
86
+ }
87
+ export function gwolvesBuildWritePayload(address, data) {
88
+ if (!Number.isInteger(address) || address < 0 || address > 0xffff)
89
+ throw new Error("G-Wolves address is out of range.");
90
+ if (data.length < 1 || data.length > GWOLVES_MAX_CHUNK)
91
+ throw new Error("G-Wolves write length must be 1–10 bytes.");
92
+ const payload = gwolvesBuildSimplePayload(GWOLVES_COMMAND.write);
93
+ payload[2] = address >> 8;
94
+ payload[3] = address & 0xff;
95
+ payload[4] = data.length;
96
+ payload.set(data.map((byte) => byte & 0xff), 5);
97
+ return finalize(payload);
98
+ }
99
+ export function gwolvesBuildWriteScalarPayload(address, value) {
100
+ assertByte(value, "G-Wolves scalar");
101
+ return gwolvesBuildWritePayload(address, [value, (0x55 - value) & 0xff]);
102
+ }
103
+ export function gwolvesParseReadResponse(response, address, length) {
104
+ if (!gwolvesReportChecksumIsValid(response))
105
+ return null;
106
+ if (response[0] !== GWOLVES_COMMAND.read || response[1] !== 0)
107
+ return null;
108
+ if (response[2] !== ((address >> 8) & 0xff) || response[3] !== (address & 0xff))
109
+ return null;
110
+ if (response[4] !== length || response.length < 5 + length)
111
+ return null;
112
+ return response.slice(5, 5 + length);
113
+ }
114
+ export function gwolvesParseBattery(response) {
115
+ if (!gwolvesReportChecksumIsValid(response) || response[0] !== GWOLVES_COMMAND.battery || response[1] !== 0)
116
+ return null;
117
+ const percent = response[5];
118
+ if (percent === undefined || percent > 100)
119
+ return null;
120
+ return {
121
+ percent,
122
+ charging: response[6] === 1,
123
+ voltageMv: ((response[7] ?? 0) << 8) | (response[8] ?? 0),
124
+ };
125
+ }
126
+ // Confirmed on real hardware across all 7 rates: rates <=1000Hz encode as the
127
+ // polling period in whole milliseconds (1000/rate); rates above 1000Hz can't
128
+ // be a whole-ms period, so the firmware switches to a one-hot bit flag
129
+ // instead (bit 4/5/6 for 2000/4000/8000Hz respectively).
130
+ export function gwolvesEncodePollingRate(rate) {
131
+ const raw = { 125: 8, 250: 4, 500: 2, 1000: 1, 2000: 16, 4000: 32, 8000: 64 };
132
+ const value = raw[rate];
133
+ if (value === undefined)
134
+ throw new Error("G-Wolves polling rate must be 125, 250, 500, 1000, 2000, 4000, or 8000 Hz.");
135
+ return value;
136
+ }
137
+ export function gwolvesDecodePollingRate(raw) {
138
+ return { 8: 125, 4: 250, 2: 500, 1: 1000, 16: 2000, 32: 4000, 64: 8000 }[raw] ?? null;
139
+ }
140
+ // Confirmed on real hardware (1600 <-> 1650 DPI captures): 4-byte stage
141
+ // entries, [xStep, xStep, flags, checksum], flat 50-DPI steps encoded as
142
+ // step-1, with the checksum making all 4 payload bytes sum to 0x55.
143
+ export function gwolvesEncodeDpi(dpi) {
144
+ if (!Number.isInteger(dpi) || dpi < 50 || dpi > 26000 || dpi % 50 !== 0) {
145
+ throw new Error("G-Wolves DPI must be 50–26,000 in 50 DPI steps.");
146
+ }
147
+ const encoded = dpi / 50 - 1;
148
+ const low = encoded & 0xff;
149
+ const high = (encoded >> 8) & 0x03;
150
+ const flags = (high << 2) | (high << 6);
151
+ return new Uint8Array([low, low, flags, (0x55 - low - low - flags) & 0xff]);
152
+ }
153
+ export function gwolvesDecodeDpi(stage) {
154
+ if (stage.length < 4)
155
+ return null;
156
+ const low = stage[0] & 0xff;
157
+ const duplicate = stage[1] & 0xff;
158
+ const flags = stage[2] & 0xff;
159
+ const checksum = stage[3] & 0xff;
160
+ if (low !== duplicate || ((low + duplicate + flags + checksum) & 0xff) !== 0x55)
161
+ return null;
162
+ return ((((flags >> 2) & 0x03) << 8) + low + 1) * 50;
163
+ }
164
+ export function gwolvesUnpackScalar(value, parity) {
165
+ return ((value + parity) & 0xff) === 0x55 ? value : null;
166
+ }
167
+ // Confirmed on real hardware: LOD Low=3, Medium=1, High=2 (not sequential —
168
+ // this is the firmware's own internal ordering).
169
+ export function gwolvesDecodeProfile(profile) {
170
+ const scalar = (address) => profile.length > address + 1
171
+ ? gwolvesUnpackScalar(profile[address], profile[address + 1])
172
+ : null;
173
+ const stageCount = Math.min(Math.max(scalar(GWOLVES_ADDRESS.dpiStageCount) ?? 1, 1), 8);
174
+ const activeStage = Math.min(Math.max(scalar(GWOLVES_ADDRESS.activeDpiStage) ?? 0, 0), stageCount - 1);
175
+ const stageOffset = GWOLVES_ADDRESS.dpiStages + activeStage * 4;
176
+ const dpi = gwolvesDecodeDpi(profile.subarray(stageOffset, stageOffset + 4)) ?? 800;
177
+ const lodRaw = scalar(GWOLVES_ADDRESS.lod);
178
+ const pollingRaw = scalar(GWOLVES_ADDRESS.pollingRate);
179
+ const boolean = (address) => {
180
+ const value = scalar(address);
181
+ return value === null ? null : value !== 0;
182
+ };
183
+ return {
184
+ dpi,
185
+ dpiStageCount: stageCount,
186
+ activeDpiStage: activeStage,
187
+ pollingRateHz: pollingRaw === null ? 1000 : (gwolvesDecodePollingRate(pollingRaw) ?? 1000),
188
+ liftOffDistance: lodRaw === 3 ? "Low" : lodRaw === 1 ? "Medium" : lodRaw === 2 ? "High" : null,
189
+ debounceMs: scalar(GWOLVES_ADDRESS.debounce),
190
+ sleepTimeout: (scalar(GWOLVES_ADDRESS.sleep) ?? 0) * 10 || null,
191
+ motionSync: boolean(GWOLVES_ADDRESS.motionSync),
192
+ angleSnapping: boolean(GWOLVES_ADDRESS.angleSnapping),
193
+ rippleControl: boolean(GWOLVES_ADDRESS.rippleControl),
194
+ performanceMode: boolean(GWOLVES_ADDRESS.performanceMode),
195
+ };
196
+ }
197
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/gwolves/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,181 @@
1
+ /**
2
+ * HyperX / Kingston NGenuity2 protocol codecs for the Pulsefire Haste family.
3
+ *
4
+ * Transport-independent: pure encode/decode helpers, constants, and types. The
5
+ * actual HID I/O lives in the driver (src/drivers/hyperx/hid.ts).
6
+ *
7
+ * Protocol overview (reverse-engineered by evan-razzaque/open-pulsefire-haste,
8
+ * adapted from santeri3700/hyperx_pulsefire_dart_reverse_engineering):
9
+ * - All packets are 64 bytes, zero-padded.
10
+ * - Byte 0 is the command opcode; remaining bytes are the payload.
11
+ * - Commands travel as vendor-defined *output* reports (interrupt OUT) and
12
+ * replies come back as *input* reports (interrupt IN) on a single 64-byte
13
+ * vendor collection (usage page 0xFF00, usage 0x01). There is no feature
14
+ * report — the interface's HID descriptor is only ~25 bytes and declares just
15
+ * one input and one output report.
16
+ * - Reads (0x46, 0x50, 0x51, 0x52, 0x53, 0x54) echo the request's opcode at
17
+ * byte 0. Writes (0xD0, 0xD2, 0xD3, 0xD4, 0xDE) are fire-and-forget: the
18
+ * mouse ACKs nothing, so a getter must be read back to confirm.
19
+ * - The mouse operates in "direct" mode: writes apply immediately to the live
20
+ * profile and revert on power cycle unless a SAVE packet is sent too.
21
+ */
22
+ export declare const HYPERX_VENDOR_ID_KINGSTON = 2385;
23
+ export declare const HYPERX_VENDOR_ID_HP = 1008;
24
+ /** Vendor HID collection that carries the control channel. */
25
+ export declare const HYPERX_USAGE_PAGE = 65280;
26
+ export declare const HYPERX_USAGE = 1;
27
+ /**
28
+ * Known Pulsefire Haste product ids.
29
+ *
30
+ * The original wired model shipped under Kingston VID 0x0951 (PID 0x1727) and
31
+ * later under HP VID 0x03f0 (PIDs 0x0f8f wired, 0x048e wired-mode alt). The
32
+ * wireless dongle enumerates as 0x028e.
33
+ */
34
+ export declare const HYPERX_PULSEFIRE_HASTE_KINGSTON_PIDS: ReadonlySet<number>;
35
+ export declare const HYPERX_PULSEFIRE_HASTE_HP_PIDS: ReadonlySet<number>;
36
+ export declare const HYPERX_PULSEFIRE_HASTE_PIDS: ReadonlySet<number>;
37
+ export declare const HYPERX_PIDS: ReadonlySet<number>;
38
+ export declare const CMD: {
39
+ /** Read connection status. */
40
+ readonly GET_CONNECTION: 70;
41
+ /** Read hardware info: product/vendor id, firmware, product string. */
42
+ readonly GET_HARDWARE_INFO: 80;
43
+ /** Read heartbeat: battery percent and charging status (wireless only). */
44
+ readonly GET_BATTERY: 81;
45
+ /** Read saved LED configuration (logo + scroll wheel). */
46
+ readonly GET_LED: 82;
47
+ /** Read DPI settings: every profile's DPI, active profile, lift-off distance. */
48
+ readonly GET_DPI: 83;
49
+ /** Read button assignments. */
50
+ readonly GET_BUTTONS: 84;
51
+ /** Set polling rate. */
52
+ readonly SET_POLLING_RATE: 208;
53
+ /** Multi-purpose DPI command: select profile, set DPI, set LOD, etc. */
54
+ readonly SET_DPI: 211;
55
+ /** Set LED. */
56
+ readonly SET_LED: 210;
57
+ /** Set button assignment. */
58
+ readonly SET_BUTTON: 212;
59
+ /** Save settings to onboard memory. */
60
+ readonly SAVE: 222;
61
+ };
62
+ export declare const POLLING_RATE_ENCODE: ReadonlyMap<number, number>;
63
+ export declare const POLLING_RATE_DECODE: ReadonlyMap<number, number>;
64
+ export declare const SUPPORTED_POLLING_RATES: readonly number[];
65
+ /**
66
+ * DPI is stored as `DPI / 100` in a 16-bit little-endian field. The Pulsefire
67
+ * Haste allows 200–16,000 DPI in 100-DPI steps and has one DPI value per
68
+ * profile (no separate X/Y axes).
69
+ */
70
+ export declare const DPI_STEP = 100;
71
+ export declare const DPI_MIN = 200;
72
+ export declare const DPI_MAX = 16000;
73
+ export declare function encodeDpi(dpi: number): number;
74
+ export declare function decodeDpi(encoded: number): number;
75
+ export declare function isValidDpi(dpi: number): boolean;
76
+ /** Every valid DPI value the protocol can represent. */
77
+ export declare function dpiOptions(): number[];
78
+ export type LiftOffDistance = "Low" | "High";
79
+ export declare const LOD_ENCODE: ReadonlyMap<LiftOffDistance, number>;
80
+ export declare const LOD_DECODE: ReadonlyMap<number, LiftOffDistance>;
81
+ export declare function decodeLod(encoded: number): LiftOffDistance | null;
82
+ export declare function encodeLod(distance: LiftOffDistance): number;
83
+ export type ConnectionType = "Wired" | "Wireless" | null;
84
+ export declare const CONNECTION_TYPE_DECODE: ReadonlyMap<number, ConnectionType>;
85
+ export declare function decodeConnection(raw: Uint8Array): ConnectionType | null;
86
+ export interface HardwareInfo {
87
+ vendorId: number;
88
+ productId: number;
89
+ firmware: string;
90
+ product: string;
91
+ }
92
+ /**
93
+ * Decode a GET_HARDWARE_INFO (0x50) response.
94
+ *
95
+ * Layout (64 bytes):
96
+ * [0] = echo of command (0x50)
97
+ * [3] = payload length (0x3C)
98
+ * [4..5] = product ID (LE)
99
+ * [6..7] = vendor ID (LE)
100
+ * [8..11] = little-endian BCD release number; each byte is a two-digit
101
+ * number, stored build→major, e.g. 4.1.0.9 is 0x09 0x00 0x01 0x04
102
+ * [20..] = null-terminated product string
103
+ */
104
+ export declare function decodeHardwareInfo(raw: Uint8Array): HardwareInfo | null;
105
+ export interface BatteryInfo {
106
+ percent: number | null;
107
+ state: "Charging" | "Discharging" | "Full" | "Unknown";
108
+ }
109
+ /**
110
+ * Decode a heartbeat (0x51) response.
111
+ *
112
+ * Layout (64 bytes):
113
+ * [0] = echo of command (0x51)
114
+ * [4] = battery percentage (0–100)
115
+ * [5] = charging status: 0x00 wireless (discharging),
116
+ * 0x01 wired (charging),
117
+ * 0x02 wired, fully charged
118
+ */
119
+ export declare function decodeBattery(raw: Uint8Array): BatteryInfo | null;
120
+ export interface DpiSettings {
121
+ /** Active profile index (0–4). */
122
+ activeProfile: number;
123
+ /** Bitmask of enabled profiles. */
124
+ enabled: number;
125
+ /** DPI for each profile (0 when unset). */
126
+ profiles: number[];
127
+ /** Lift-off distance for the active profile. */
128
+ liftOffDistance: LiftOffDistance | null;
129
+ /** Maximum DPI the sensor can represent. */
130
+ maxDpi: number;
131
+ }
132
+ /**
133
+ * Decode a DPI settings (0x53) response.
134
+ *
135
+ * Layout (64 bytes):
136
+ * [0] = echo of command (0x53)
137
+ * [4] = active profile number
138
+ * [5] = enabled profile bitmask
139
+ * [8] = max DPI step value (0xA0 = 160 = 16,000 DPI)
140
+ * [12..21] = 5 × DPI step values (LE uint16), profile 0 first, DPI/100
141
+ * [22..36] = 5 × profile indicator RGB colours
142
+ * [37] = lift-off distance in millimetres (1 or 2)
143
+ */
144
+ export declare function decodeDpiSettings(raw: Uint8Array): DpiSettings | null;
145
+ /**
146
+ * Build a SET_POLLING_RATE (0xD0) command.
147
+ *
148
+ * Wire format: [0xD0, 0x00, 0x00, 0x01, RATE_CODE]
149
+ */
150
+ export declare function encodeSetPollingRate(hz: number): Uint8Array | null;
151
+ /**
152
+ * Build a SET_DPI (0xD3) command that writes the DPI value for a profile.
153
+ *
154
+ * Wire format: [0xD3, 0x02, PROFILE, 0x02, DPI_LOW, DPI_HIGH]
155
+ */
156
+ export declare function encodeSetDpi(profile: number, dpi: number): Uint8Array | null;
157
+ /**
158
+ * Build a SET_DPI (0xD3) command that selects the active profile.
159
+ *
160
+ * Wire format: [0xD3, 0x00, 0x00, 0x01, PROFILE_NUM]
161
+ */
162
+ export declare function encodeSelectProfile(profile: number): Uint8Array;
163
+ /**
164
+ * Build a SET_DPI (0xD3) command that writes the enabled-profile bitmask.
165
+ *
166
+ * Wire format: [0xD3, 0x01, 0x00, 0x01, BITMASK]
167
+ */
168
+ export declare function encodeEnableProfiles(bitmask: number): Uint8Array;
169
+ /**
170
+ * Build a SET_DPI (0xD3) command that writes the lift-off distance.
171
+ *
172
+ * Wire format: [0xD3, 0x05, 0x00, 0x01, DISTANCE_MM, DISTANCE_MM]
173
+ */
174
+ export declare function encodeSetLod(distance: LiftOffDistance): Uint8Array;
175
+ /**
176
+ * Build a SAVE (0xDE) command to persist inline settings to onboard memory.
177
+ *
178
+ * Wire format: [0xDE, 0xFF] saves everything, [0xDE, 0x03] saves DPI only.
179
+ */
180
+ export declare function encodeSave(subcommand?: 0xff | 0x03): Uint8Array;
181
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/hyperx/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AAIH,eAAO,MAAM,yBAAyB,OAAS,CAAC;AAChD,eAAO,MAAM,mBAAmB,OAAS,CAAC;AAE1C,8DAA8D;AAC9D,eAAO,MAAM,iBAAiB,QAAS,CAAC;AACxC,eAAO,MAAM,YAAY,IAAO,CAAC;AAIjC;;;;;;GAMG;AACH,eAAO,MAAM,oCAAoC,EAAE,WAAW,CAAC,MAAM,CAEnE,CAAC;AAEH,eAAO,MAAM,8BAA8B,EAAE,WAAW,CAAC,MAAM,CAI7D,CAAC;AAEH,eAAO,MAAM,2BAA2B,EAAE,WAAW,CAAC,MAAM,CAG1D,CAAC;AAEH,eAAO,MAAM,WAAW,EAAE,WAAW,CAAC,MAAM,CAA+B,CAAC;AAI5E,eAAO,MAAM,GAAG;IACd,8BAA8B;;IAE9B,uEAAuE;;IAEvE,2EAA2E;;IAE3E,0DAA0D;;IAE1D,iFAAiF;;IAEjF,+BAA+B;;IAG/B,wBAAwB;;IAExB,wEAAwE;;IAExE,eAAe;;IAEf,6BAA6B;;IAE7B,uCAAuC;;CAE/B,CAAC;AAIX,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAK1D,CAAC;AAEH,eAAO,MAAM,mBAAmB,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAE3D,CAAC;AAEF,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAAoC,CAAC;AAI1F;;;;GAIG;AACH,eAAO,MAAM,QAAQ,MAAM,CAAC;AAC5B,eAAO,MAAM,OAAO,MAAM,CAAC;AAC3B,eAAO,MAAM,OAAO,QAAQ,CAAC;AAE7B,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAE7C;AAED,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAE/C;AAED,wDAAwD;AACxD,wBAAgB,UAAU,IAAI,MAAM,EAAE,CAMrC;AAID,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,MAAM,CAAC;AAE7C,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,eAAe,EAAE,MAAM,CAG1D,CAAC;AAEH,eAAO,MAAM,UAAU,EAAE,WAAW,CAAC,MAAM,EAAE,eAAe,CAE3D,CAAC;AAEF,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,GAAG,IAAI,CAEjE;AAED,wBAAgB,SAAS,CAAC,QAAQ,EAAE,eAAe,GAAG,MAAM,CAE3D;AAID,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,UAAU,GAAG,IAAI,CAAC;AAEzD,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,EAAE,cAAc,CAGrE,CAAC;AAEH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,IAAI,CAGvE;AAID,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;CACjB;AAOD;;;;;;;;;;;GAWG;AACH,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,UAAU,GAAG,YAAY,GAAG,IAAI,CAkBvE;AAID,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,UAAU,GAAG,aAAa,GAAG,MAAM,GAAG,SAAS,CAAC;CACxD;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAgBjE;AAID,MAAM,WAAW,WAAW;IAC1B,kCAAkC;IAClC,aAAa,EAAE,MAAM,CAAC;IACtB,mCAAmC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,2CAA2C;IAC3C,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,gDAAgD;IAChD,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC;IACxC,4CAA4C;IAC5C,MAAM,EAAE,MAAM,CAAC;CAChB;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAmBrE;AAID;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CASlE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAY5E;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAO/D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,UAAU,CAOhE;AAED;;;;GAIG;AACH,wBAAgB,YAAY,CAAC,QAAQ,EAAE,eAAe,GAAG,UAAU,CASlE;AAED;;;;GAIG;AACH,wBAAgB,UAAU,CAAC,UAAU,GAAE,IAAI,GAAG,IAAW,GAAG,UAAU,CAKrE"}