@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,310 @@
1
+ /**
2
+ * SteelSeries per-PID catalog.
3
+ *
4
+ * SteelSeries is a multi-family vendor: rivalcfg alone documents four
5
+ * incompatible Rival 3 command sets (Gen 1, Gen 2, Wireless, Wireless Gen 2),
6
+ * and libratbag distinguishes four more protocol versions for older mice. The
7
+ * `family` field selects which codec module drives a product; command bytes,
8
+ * framing, and value tables live in that module, never here, and no family's
9
+ * codec branches on product id.
10
+ *
11
+ * Only PIDs whose protocol has been traced to a public implementation belong
12
+ * here. The Rival 3 Wireless Gen 2 (`0x1872`) and Rival 3 Gen 2 (`0x1870`)
13
+ * are deliberately absent: their command sets are documented as different
14
+ * from every family below, and listing them would claim devices this codec
15
+ * would misprogram. The Rival 3 Wireless (`0x1830`) is present with family
16
+ * `"rival3-wireless"` — its own module, `./rival3-wireless.ts`, distinct from
17
+ * both Rival 3 Gen 1 and Aerox 3 (different command bytes throughout, a
18
+ * different DPI sensor table, and, unlike either wired family, a readable
19
+ * battery/firmware state — see that module's doc comment).
20
+ *
21
+ * The Aerox 3 (`0x1836`, family `"aerox3"`) is a separate protocol family
22
+ * from Rival 3 despite both being SteelSeries, single-byte vs. two-byte
23
+ * command prefixes and all — see `./aerox3.ts`'s doc comment, including its
24
+ * reconciliation of PR flozz/rivalcfg#269's Rival 3 Gen 2 claim (not added
25
+ * here: its DPI command differs from Aerox 3's even though most other
26
+ * commands match).
27
+ *
28
+ * The Aerox 5 is split across **two** families despite one product line and
29
+ * mostly-shared command bytes: `"aerox5"` (`0x1850`, the plain wired mouse —
30
+ * see `./aerox5.ts`) and `"aerox5-wireless"` (the separately-sold Aerox 5
31
+ * Wireless, six PIDs across its USB-cabled and 2.4 GHz dongle modes — see
32
+ * `./aerox5-wireless.ts`). The two families' polling-rate byte values and
33
+ * RGB zone-color packet shapes differ even though several other command
34
+ * bytes match; do not assume one family's codec for the other's PIDs.
35
+ *
36
+ * The Aerox 9 Wireless (`"aerox9-wireless"`, four PIDs across its
37
+ * USB-cabled and 2.4 GHz dongle modes — see `./aerox9-wireless.ts`) is its
38
+ * own family, not folded into `"aerox5-wireless"` despite sharing the same
39
+ * `_patch_command`-style wireless-flag transform and several command bytes:
40
+ * its RGB zone commands, dim timer, and battery read match Aerox 5
41
+ * Wireless's byte-for-byte, but it defines no button-mapping command at all
42
+ * (`./aerox9-wireless.ts`'s doc comment) where Aerox 5 Wireless does, and
43
+ * its product-id space is disjoint from every other family here.
44
+ *
45
+ * The Prime+ (`0x182C`, family `"prime-plus"`) is its own family per this
46
+ * rollout's per-cluster scoping, even though — see `./prime-plus.ts`'s doc
47
+ * comment for the full corroboration-gap disclosure — its rivalcfg profile
48
+ * (`prime_plus.py`) is byte-identical to plain Prime's (`prime.py`, PIDs
49
+ * `0x182E`/`0x182A`/`0x1856`, none of which are listed here: plain/non-Plus
50
+ * Prime is out of scope for this cluster and deliberately not added).
51
+ *
52
+ * The Prime Mini Wireless (`"prime-mini-wireless"`, PIDs `0x184A` wired /
53
+ * `0x1848` 2.4 GHz — see `./prime-mini-wireless.ts`) is its own family for
54
+ * the same reason: rivalcfg documents it and the plain (non-Mini) Prime
55
+ * Wireless as one shared `settings` dict inside
56
+ * `prime_wireless_wired.py`/`prime_wireless_wireless.py`, but the plain
57
+ * Prime Wireless's PIDs (`0x1842` wired / `0x1840` 2.4 GHz) are out of scope
58
+ * for this cluster and deliberately not added here.
59
+ */
60
+ export const STEELSERIES_VENDOR_ID = 0x1038;
61
+ export const STEELSERIES_PRODUCTS = new Map([
62
+ // Pre-0.37 firmware enumeration.
63
+ [0x1824, {
64
+ model: "Rival 3",
65
+ family: "rival3",
66
+ wireless: false,
67
+ settingsReadable: false,
68
+ hasFirmwareQuery: true,
69
+ verified: false,
70
+ }],
71
+ // The same mouse re-enumerated after the v0.37.0.0 firmware update; rivalcfg
72
+ // lists both ids against one profile and OpenRGB names 0x1824 "Old Firmware".
73
+ [0x184c, {
74
+ model: "Rival 3",
75
+ family: "rival3",
76
+ wireless: false,
77
+ settingsReadable: false,
78
+ hasFirmwareQuery: true,
79
+ verified: false,
80
+ }],
81
+ // aerox3.py defines no getter and no firmware-query command for this family.
82
+ [0x1836, {
83
+ model: "Aerox 3",
84
+ family: "aerox3",
85
+ wireless: false,
86
+ settingsReadable: false,
87
+ hasFirmwareQuery: false,
88
+ verified: false,
89
+ }],
90
+ // rival3_wireless.py: "2.4 GHz mode", endpoint 3. Own command set (0x20/
91
+ // 0x17/0x19), own DPI table (TrueMove Air), plus a battery_level read
92
+ // (0xAA 0x01) neither Rival 3 Gen 1 nor Aerox 3 has. See ./rival3-wireless.ts.
93
+ [0x1830, {
94
+ model: "Rival 3 Wireless",
95
+ family: "rival3-wireless",
96
+ wireless: true,
97
+ settingsReadable: false,
98
+ hasFirmwareQuery: true,
99
+ verified: false,
100
+ }],
101
+ // aerox5.py: plain wired Aerox 5. No getter, no firmware-query command.
102
+ [0x1850, {
103
+ model: "Aerox 5",
104
+ family: "aerox5",
105
+ wireless: false,
106
+ settingsReadable: false,
107
+ hasFirmwareQuery: false,
108
+ verified: false,
109
+ }],
110
+ // aerox5_wireless_wired.py: Aerox 5 Wireless in USB-cabled mode. Own
111
+ // command set from the plain Aerox 5 (different polling-rate bytes,
112
+ // different RGB zone packing, extra sleep/dim timers, a battery read the
113
+ // plain Aerox 5 has no equivalent of). No firmware-query command.
114
+ [0x1854, {
115
+ model: "Aerox 5 Wireless (wired mode)",
116
+ family: "aerox5-wireless",
117
+ wireless: true,
118
+ settingsReadable: false,
119
+ hasFirmwareQuery: false,
120
+ verified: false,
121
+ }],
122
+ [0x185e, {
123
+ model: "Aerox 5 Wireless Destiny 2 Edition (wired mode)",
124
+ family: "aerox5-wireless",
125
+ wireless: true,
126
+ settingsReadable: false,
127
+ hasFirmwareQuery: false,
128
+ verified: false,
129
+ }],
130
+ [0x1862, {
131
+ model: "Aerox 5 Wireless Diablo IV Edition (wired mode)",
132
+ family: "aerox5-wireless",
133
+ wireless: true,
134
+ settingsReadable: false,
135
+ hasFirmwareQuery: false,
136
+ verified: false,
137
+ }],
138
+ // aerox5_wireless_wireless.py: same mouse, 2.4 GHz dongle mode. Every
139
+ // command byte is `aerox5_wireless_wired.py`'s with `0b01000000` ORed into
140
+ // byte 0 (see ./aerox5-wireless.ts's `applyWirelessFlag`).
141
+ [0x1852, {
142
+ model: "Aerox 5 Wireless (2.4 GHz mode)",
143
+ family: "aerox5-wireless",
144
+ wireless: true,
145
+ settingsReadable: false,
146
+ hasFirmwareQuery: false,
147
+ verified: false,
148
+ }],
149
+ [0x185c, {
150
+ model: "Aerox 5 Wireless Destiny 2 Edition (2.4 GHz mode)",
151
+ family: "aerox5-wireless",
152
+ wireless: true,
153
+ settingsReadable: false,
154
+ hasFirmwareQuery: false,
155
+ verified: false,
156
+ }],
157
+ [0x1860, {
158
+ model: "Aerox 5 Wireless Diablo IV Edition (2.4 GHz mode)",
159
+ family: "aerox5-wireless",
160
+ wireless: true,
161
+ settingsReadable: false,
162
+ hasFirmwareQuery: false,
163
+ verified: false,
164
+ }],
165
+ // rival650.py: wired/USB-cabled mode, endpoint 0. Own command set (0x15/
166
+ // 0x17/0x20/0x19/0x2B), a battery_level read (0xAA 0x01, byte-identical
167
+ // shape to Rival 3 Wireless's) but no firmware-query command. See
168
+ // ./rival650.ts.
169
+ [0x172b, {
170
+ model: "Rival 650 Wireless (wired mode)",
171
+ family: "rival650",
172
+ wireless: true,
173
+ settingsReadable: false,
174
+ hasFirmwareQuery: false,
175
+ verified: false,
176
+ }],
177
+ // rival650.py: same mouse, 2.4 GHz wireless mode. Same command bytes as
178
+ // wired mode — no wireless-flag transform, unlike Aerox 5 Wireless.
179
+ [0x1726, {
180
+ model: "Rival 650 Wireless (2.4 GHz wireless mode)",
181
+ family: "rival650",
182
+ wireless: true,
183
+ settingsReadable: false,
184
+ hasFirmwareQuery: false,
185
+ verified: false,
186
+ }],
187
+ // aerox9_wireless_wired.py: Aerox 9 Wireless in USB-cabled mode. Shares
188
+ // the applyWirelessFlag transform with Aerox 5 Wireless (confirmed by
189
+ // diffing the two rivalcfg wired/wireless file pairs) but defines no
190
+ // button-mapping command. No firmware-query command.
191
+ [0x185a, {
192
+ model: "Aerox 9 Wireless (wired mode)",
193
+ family: "aerox9-wireless",
194
+ wireless: true,
195
+ settingsReadable: false,
196
+ hasFirmwareQuery: false,
197
+ verified: false,
198
+ }],
199
+ [0x1876, {
200
+ model: "Aerox 9 Wireless WOW Edition (wired mode)",
201
+ family: "aerox9-wireless",
202
+ wireless: true,
203
+ settingsReadable: false,
204
+ hasFirmwareQuery: false,
205
+ verified: false,
206
+ }],
207
+ // aerox9_wireless_wireless.py: same mouse, 2.4 GHz dongle mode. Every
208
+ // command byte is `aerox9_wireless_wired.py`'s with `0b01000000` ORed into
209
+ // byte 0 (see ./aerox9-wireless.ts's `applyWirelessFlag`).
210
+ [0x1858, {
211
+ model: "Aerox 9 Wireless (2.4 GHz mode)",
212
+ family: "aerox9-wireless",
213
+ wireless: true,
214
+ settingsReadable: false,
215
+ hasFirmwareQuery: false,
216
+ verified: false,
217
+ }],
218
+ [0x1874, {
219
+ model: "Aerox 9 Wireless WOW Edition (2.4 GHz mode)",
220
+ family: "aerox9-wireless",
221
+ wireless: true,
222
+ settingsReadable: false,
223
+ hasFirmwareQuery: false,
224
+ verified: false,
225
+ }],
226
+ // prime_plus.py: wired only, endpoint 0. No getter, no firmware-query
227
+ // command. Protocol is byte-identical to plain Prime's — see
228
+ // ./prime-plus.ts's doc comment for the full disclosure.
229
+ [0x182c, {
230
+ model: "Prime+",
231
+ family: "prime-plus",
232
+ wireless: false,
233
+ settingsReadable: false,
234
+ hasFirmwareQuery: false,
235
+ verified: false,
236
+ }],
237
+ // rival310.py: wired only, endpoint 0. Own command set (0x53/0x54/0x5B/
238
+ // 0x31), a linear (non-table) DPI encoding, and a readable firmware
239
+ // version behind 0x90 00 — see ./rival310.ts's doc comment, including its
240
+ // explicit libratbag/OpenRGB corroboration-gap disclosure.
241
+ [0x1720, {
242
+ model: "Rival 310",
243
+ family: "rival310",
244
+ wireless: false,
245
+ settingsReadable: false,
246
+ hasFirmwareQuery: true,
247
+ verified: false,
248
+ }],
249
+ [0x171e, {
250
+ model: "Rival 310 CS:GO Howl Edition",
251
+ family: "rival310",
252
+ wireless: false,
253
+ settingsReadable: false,
254
+ hasFirmwareQuery: true,
255
+ verified: false,
256
+ }],
257
+ [0x1736, {
258
+ model: "Rival 310 PUBG Edition",
259
+ family: "rival310",
260
+ wireless: false,
261
+ settingsReadable: false,
262
+ hasFirmwareQuery: true,
263
+ verified: false,
264
+ }],
265
+ // prime_wireless_wired.py: Prime Mini Wireless in USB-cabled mode (one of
266
+ // two models in that file's shared profile — the other is the plain Prime
267
+ // Wireless, out of scope for this cluster, see the doc comment above).
268
+ // No firmware-query command.
269
+ [0x184a, {
270
+ model: "Prime Mini Wireless (wired mode)",
271
+ family: "prime-mini-wireless",
272
+ wireless: true,
273
+ settingsReadable: false,
274
+ hasFirmwareQuery: false,
275
+ verified: false,
276
+ }],
277
+ // prime_wireless_wireless.py: same mouse, 2.4 GHz dongle mode. Every
278
+ // command byte is `prime_wireless_wired.py`'s with `0b01000000` ORed into
279
+ // byte 0 (see ./prime-mini-wireless.ts's `applyWirelessFlag`).
280
+ [0x1848, {
281
+ model: "Prime Mini Wireless (2.4 GHz mode)",
282
+ family: "prime-mini-wireless",
283
+ wireless: true,
284
+ settingsReadable: false,
285
+ hasFirmwareQuery: false,
286
+ verified: false,
287
+ }],
288
+ // sensei_ten.py: wired only, endpoint 0. Own command set (0x54/0x55/0x5B/
289
+ // 0x31/0x59), a linear (non-table) DPI encoding distinct from rival310's
290
+ // (2-byte little-endian words vs. 1-byte), and a readable firmware version
291
+ // behind 0x90 00 — see ./sensei-ten.ts's doc comment, including its
292
+ // explicit libratbag/OpenRGB corroboration-gap disclosure.
293
+ [0x1832, {
294
+ model: "Sensei TEN",
295
+ family: "sensei-ten",
296
+ wireless: false,
297
+ settingsReadable: false,
298
+ hasFirmwareQuery: true,
299
+ verified: false,
300
+ }],
301
+ [0x1834, {
302
+ model: "Sensei TEN CS:GO Neon Rider Edition",
303
+ family: "sensei-ten",
304
+ wireless: false,
305
+ settingsReadable: false,
306
+ hasFirmwareQuery: true,
307
+ verified: false,
308
+ }],
309
+ ]);
310
+ //# sourceMappingURL=devices.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"devices.js","sourceRoot":"","sources":["../../src/steelseries/devices.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export * from "./rival3.js";
2
+ export * from "./rival310.js";
3
+ export * from "./aerox3.js";
4
+ export * from "./rival3-wireless.js";
5
+ export * from "./aerox5.js";
6
+ export * from "./aerox5-wireless.js";
7
+ export * from "./rival650.js";
8
+ export * from "./aerox9-wireless.js";
9
+ export * from "./prime-plus.js";
10
+ export * from "./prime-mini-wireless.js";
11
+ export * from "./sensei-ten.js";
12
+ export * from "./devices.js";
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/steelseries/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,13 @@
1
+ export * from "./rival3.js";
2
+ export * from "./rival310.js";
3
+ export * from "./aerox3.js";
4
+ export * from "./rival3-wireless.js";
5
+ export * from "./aerox5.js";
6
+ export * from "./aerox5-wireless.js";
7
+ export * from "./rival650.js";
8
+ export * from "./aerox9-wireless.js";
9
+ export * from "./prime-plus.js";
10
+ export * from "./prime-mini-wireless.js";
11
+ export * from "./sensei-ten.js";
12
+ export * from "./devices.js";
13
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/steelseries/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,aAAa,CAAC;AAC5B,cAAc,sBAAsB,CAAC;AACrC,cAAc,eAAe,CAAC;AAC9B,cAAc,sBAAsB,CAAC;AACrC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC;AACzC,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC"}
@@ -0,0 +1,253 @@
1
+ /**
2
+ * SteelSeries Prime Mini Wireless configuration protocol — pure encode/decode helpers.
3
+ *
4
+ * Reconstructed from public open-source implementations, not vendor software:
5
+ *
6
+ * - There is **no** `prime_mini_wireless.py` (nor a wired/wireless filename
7
+ * pair) in rivalcfg. The Prime Mini Wireless is instead one of two models
8
+ * inside the shared "Prime Wireless" profile pair:
9
+ * `rivalcfg/devices/prime_wireless_wired.py` (USB-cabled mode) defines two
10
+ * `models` entries — `"SteelSeries Prime Wireless (wired mode)"`
11
+ * (`1038:1842`) and `"SteelSeries Prime Mini Wireless (wired mode)"`
12
+ * (`1038:184A`) — sharing one `settings`/`battery_level`/`save_command`
13
+ * dict. `rivalcfg/devices/prime_wireless_wireless.py` (2.4 GHz dongle mode)
14
+ * mirrors that with `1038:1840` (Prime Wireless) and `1038:1848` (Prime
15
+ * Mini Wireless), built by comprehending `prime_wireless_wired.py`'s
16
+ * `settings`/`battery_level`/`save_command` through one `_patch_command`
17
+ * helper — same transform this file implements as `applyPrimeMiniWirelessFlag`.
18
+ * Both files were read in full. This module implements only the two Prime
19
+ * Mini Wireless product ids (`0x184A` wired, `0x1848` 2.4 GHz) per the
20
+ * scope of this change — see "Scope" below for why the plain Prime
21
+ * Wireless PIDs (`0x1842`/`0x1840`) are deliberately not registered here
22
+ * even though the command set is identical.
23
+ * - rivalcfg `rivalcfg/devices/dpi/truemove_air.py` — same TrueMove Air
24
+ * sensor table as the Rival 3 Wireless and Aerox 5 Wireless — imported
25
+ * from `./rival3-wireless.ts`'s `TRUEMOVE_AIR_DPI_TO_BYTE`, not re-derived.
26
+ * - rivalcfg `rivalcfg/handlers/multidpi_range_choice.py` — `dpi_length_byte: 1`,
27
+ * `first_preset: 0` (same shape as `./aerox5-wireless.ts`, **not**
28
+ * `./rival3-wireless.ts`'s `first_preset: 1`/`dpi_length_byte` via
29
+ * `multidpi_range`).
30
+ * - rivalcfg `rivalcfg/handlers/range.py` — `sleep_timer`/`dim_timer`: the
31
+ * exact same linear range-to-range mapping as `./aerox5-wireless.ts`
32
+ * (`sleep_timer` = minutes × 60000 ms, `dim_timer` = seconds × 1000 ms,
33
+ * both little-endian 3 bytes, `range_length_byte: 3`). Traced by hand
34
+ * against `prime_wireless_wired.py`'s `output_range: [0x000000, 0x124F80, …]`
35
+ * values, not assumed from the Aerox 5 Wireless precedent.
36
+ * - rivalcfg `rivalcfg/handlers/rgbcolor.py` — LED color: `command: [0x21, 0x01, 0x00]`
37
+ * with the RGB triplet appended directly (no zone byte and no bitmask —
38
+ * this is a single-LED mouse, unlike the Aerox 5 Wireless's
39
+ * zone-indexed `steelseriesAerox5WirelessEncodeZoneColor`).
40
+ * - rivalcfg `rivalcfg/handlers/choice.py` — `polling_rate`
41
+ * (`{125:0x03, 250:0x02, 500:0x01, 1000:0x00}`, byte-identical mapping to
42
+ * `./aerox5-wireless.ts`'s table, confirmed by direct comparison — not
43
+ * assumed) and `default_lighting` (`{"off": 0x00, "rainbow": 0x01}`).
44
+ * - rivalcfg `rivalcfg/handlers/buttons/buttons.py` (inferred generic
45
+ * handler backing `value_type: "buttons"`) — 6 mappable buttons + scroll
46
+ * up/down, `button_field_length: 5`, byte-identical ids/offsets to the
47
+ * non-wireless `prime_mini.py`'s `buttons_mapping` block (confirmed by
48
+ * direct comparison of both device files).
49
+ *
50
+ * ## Why wired-cable-mode and 2.4 GHz-dongle-mode share one module
51
+ *
52
+ * Same SteelSeries wireless pattern as `./aerox5-wireless.ts` and
53
+ * `./rival3-wireless.ts`: one physical mouse, two USB product ids depending
54
+ * on transport, one command set modulo a fixed transform.
55
+ * `prime_wireless_wireless.py`'s `_patch_command` ORs `0b01000000` (`0x40`)
56
+ * into `command[0]` of every setting, `battery_level`, and `save_command`
57
+ * inherited from `prime_wireless_wired.py`, and adds `readback_length: 64`
58
+ * (an expected reply length this module does not need to model — no
59
+ * function here reads or validates a readback payload). Every command byte
60
+ * in `PRIME_MINI_WIRELESS_COMMAND` below is the wired-mode value;
61
+ * `applyPrimeMiniWirelessFlag` produces the 2.4 GHz-mode byte from it on demand.
62
+ *
63
+ * ## Scope: Prime Mini Wireless only, not the plain Prime Wireless
64
+ *
65
+ * `prime_wireless_wired.py`/`prime_wireless_wireless.py` document the Prime
66
+ * Mini Wireless and the plain (non-Mini) Prime Wireless as one shared
67
+ * `settings` dict — genuinely the same command bytes, same DPI table, same
68
+ * battery shape, differing only in physical product id. This change is
69
+ * scoped to the Prime Mini Wireless cluster only: `./devices.ts` registers
70
+ * `0x184A`/`0x1848` (Prime Mini Wireless) under family
71
+ * `"prime-mini-wireless"` and deliberately does **not** register
72
+ * `0x1842`/`0x1840` (plain Prime Wireless) — even though this module's
73
+ * exported functions would encode identical bytes for either PID group, the
74
+ * plain Prime Wireless is out of scope for this change and is left for
75
+ * whichever future change actually verifies and ships it.
76
+ *
77
+ * ## No corroboration beyond rivalcfg was possible in this environment
78
+ *
79
+ * No local libratbag checkout was available, and OpenRGB's SteelSeries
80
+ * controller files were not reachable this pass — every command byte above
81
+ * is sourced from rivalcfg alone, same disclosure as `./aerox5-wireless.ts`.
82
+ * This should be treated as unverified beyond rivalcfg until corroborated
83
+ * or hardware-tested.
84
+ *
85
+ * Every command is an HID output report, report id `0x00`, on the vendor
86
+ * configuration interface (`"endpoint": 3` for every model in both rivalcfg
87
+ * files). DPI presets, polling rate, LED color, sleep/dim timers, default
88
+ * lighting, and buttons are write-only — neither rivalcfg file defines a
89
+ * getter for any of them. Battery level **is** readable (see below).
90
+ * Settings apply immediately; the save command (`11 00` wired, `51 00`
91
+ * wireless) persists them to onboard flash. None of this has been verified
92
+ * on physical hardware by this project.
93
+ *
94
+ * ## Battery read
95
+ *
96
+ * `prime_wireless_wired.py` defines a `battery_level` block byte-identical
97
+ * in shape to `./aerox5-wireless.ts`'s: an output-report write of `0x92`
98
+ * gets a 2-byte input-report reply, where `data[1] & 0b10000000` is the
99
+ * charging flag and `((data[1] & ~0b10000000) - 1) * 5` is the percentage
100
+ * (coarse 0–100 scale in steps of 5, `- 1` because the raw byte is
101
+ * 1-indexed). Confirmed by reading `prime_wireless_wired.py` directly — this
102
+ * is **not** `./rival3-wireless.ts`'s `AA 01` / 3-byte-reply /
103
+ * plain-percentage-byte shape; do not conflate the two. In 2.4 GHz mode the
104
+ * query byte is `0x92 | 0x40 = 0xD2`, produced by `applyPrimeMiniWirelessFlag`.
105
+ */
106
+ export declare const PRIME_MINI_WIRELESS_REPORT_ID = 0;
107
+ /** Wired-cable-mode command bytes; OR `WIRELESS_FLAG` into byte 0 for 2.4 GHz mode. */
108
+ export declare const PRIME_MINI_WIRELESS_COMMAND: {
109
+ readonly dpiPresets: readonly [45];
110
+ readonly pollingRate: readonly [43];
111
+ readonly color: readonly [33, 1, 0];
112
+ readonly buttonsMapping: readonly [42];
113
+ readonly sleepTimer: readonly [41];
114
+ readonly dimTimer: readonly [35, 15, 1, 0, 0];
115
+ readonly defaultLighting: readonly [39];
116
+ readonly batteryLevel: readonly [146];
117
+ };
118
+ /** `11 00` wired-mode / `51 00` 2.4 GHz-mode — see `applyPrimeMiniWirelessFlag`. */
119
+ export declare const PRIME_MINI_WIRELESS_SAVE_COMMAND: readonly [17, 0];
120
+ /**
121
+ * `_patch_command`: OR `0b01000000` into the command's first byte. Pass the
122
+ * wired-mode command bytes from `PRIME_MINI_WIRELESS_COMMAND` /
123
+ * `PRIME_MINI_WIRELESS_SAVE_COMMAND`; returns the 2.4 GHz-mode equivalent.
124
+ */
125
+ export declare function applyPrimeMiniWirelessFlag(command: readonly number[]): number[];
126
+ export declare const PRIME_MINI_WIRELESS_POLLING_RATES: readonly [125, 250, 500, 1000];
127
+ export declare const PRIME_MINI_WIRELESS_DPI_MIN = 100;
128
+ export declare const PRIME_MINI_WIRELESS_DPI_MAX = 18000;
129
+ export declare const PRIME_MINI_WIRELESS_DPI_STEP = 100;
130
+ export declare const PRIME_MINI_WIRELESS_MAX_DPI_PRESETS = 5;
131
+ export declare const PRIME_MINI_WIRELESS_BATTERY_RESPONSE_LENGTH = 2;
132
+ export declare class PrimeMiniWirelessProtocolError extends Error {
133
+ }
134
+ /** The 180 DPI values the shared TrueMove Air sensor table can express, ascending. */
135
+ export declare function steelseriesPrimeMiniWirelessDpiOptions(): number[];
136
+ /**
137
+ * `2D <count> <selected> <v1>…<vN>` (or `6D …` in 2.4 GHz mode). One byte
138
+ * per DPI; `selectedIndex` is 0-based and encoded 0-based on the wire
139
+ * (`first_preset: 0`).
140
+ */
141
+ export declare function steelseriesPrimeMiniWirelessEncodeDpiPresets(presets: readonly number[], selectedIndex: number, wireless: boolean): Uint8Array;
142
+ /** `2B <v>` (`6B` wireless) with 1000→0x00, 500→0x01, 250→0x02, 125→0x03. */
143
+ export declare function steelseriesPrimeMiniWirelessEncodePollingRate(pollingRateHz: number, wireless: boolean): Uint8Array;
144
+ /**
145
+ * `21 01 00 <r> <g> <b>` (`61 01 00 …` wireless) — a fixed single-LED
146
+ * packet, no zone byte (this mouse has one LED, unlike the Aerox 5
147
+ * Wireless's zone-indexed color command).
148
+ */
149
+ export declare function steelseriesPrimeMiniWirelessEncodeColor(r: number, g: number, b: number, wireless: boolean): Uint8Array;
150
+ /**
151
+ * `29 <ms LE24>` (`69 …` wireless) — idle minutes before sleep, `0` disables.
152
+ * Encoded as `minutes * 60000` milliseconds, little-endian 3 bytes.
153
+ */
154
+ export declare function steelseriesPrimeMiniWirelessEncodeSleepTimer(minutes: number, wireless: boolean): Uint8Array;
155
+ /**
156
+ * `23 0F 01 00 00 <ms LE24>` (`63 …` wireless) — idle seconds before the LED
157
+ * dims, `0` disables. Encoded as `seconds * 1000` milliseconds,
158
+ * little-endian 3 bytes.
159
+ */
160
+ export declare function steelseriesPrimeMiniWirelessEncodeDimTimer(seconds: number, wireless: boolean): Uint8Array;
161
+ /** `off`/`rainbow` LED-at-startup choice. */
162
+ export declare const PRIME_MINI_WIRELESS_DEFAULT_LIGHTING: {
163
+ readonly off: 0;
164
+ readonly rainbow: 1;
165
+ };
166
+ export type PrimeMiniWirelessDefaultLighting = keyof typeof PRIME_MINI_WIRELESS_DEFAULT_LIGHTING;
167
+ /** `27 <v>` (`67 …` wireless) — what the mouse lights up as before a host ever connects. */
168
+ export declare function steelseriesPrimeMiniWirelessEncodeDefaultLighting(mode: PrimeMiniWirelessDefaultLighting, wireless: boolean): Uint8Array;
169
+ /** `11 00` wired-mode / `51 00` 2.4 GHz-mode — commit the current settings to onboard flash. */
170
+ export declare function steelseriesPrimeMiniWirelessSaveCommand(wireless: boolean): Uint8Array;
171
+ /** `92` wired-mode / `D2` 2.4 GHz-mode — the device answers with a two-byte input report. */
172
+ export declare function steelseriesPrimeMiniWirelessBatteryQuery(wireless: boolean): Uint8Array;
173
+ export interface PrimeMiniWirelessBattery {
174
+ /** `((data[1] & ~0x80) - 1) * 5` in rivalcfg — a coarse 0–100 scale in steps of 5. */
175
+ level: number;
176
+ /** `bool(data[1] & 0b10000000)` in rivalcfg. */
177
+ isCharging: boolean;
178
+ }
179
+ /**
180
+ * Decode the two-byte battery response: `data[0]` is unused by rivalcfg's
181
+ * lambdas, `data[1]`'s top bit is the charging flag and the remaining 7 bits
182
+ * (1-indexed, hence `- 1`) scaled by 5 give the percentage.
183
+ */
184
+ export declare function steelseriesPrimeMiniWirelessDecodeBattery(payload: Uint8Array): PrimeMiniWirelessBattery;
185
+ /**
186
+ * `buttons_mapping.buttons` shared by `prime_wireless_wired.py` — same
187
+ * offsets/ids as the non-wireless `prime_mini.py`'s `buttons_mapping` block,
188
+ * confirmed by direct comparison of both device files, defined separately
189
+ * here so this family's button table stays self-contained.
190
+ */
191
+ export declare const PRIME_MINI_WIRELESS_BUTTONS: {
192
+ readonly button1: {
193
+ readonly id: 1;
194
+ readonly offset: 0;
195
+ };
196
+ readonly button2: {
197
+ readonly id: 2;
198
+ readonly offset: 5;
199
+ };
200
+ readonly button3: {
201
+ readonly id: 3;
202
+ readonly offset: 10;
203
+ };
204
+ readonly button4: {
205
+ readonly id: 4;
206
+ readonly offset: 15;
207
+ };
208
+ readonly button5: {
209
+ readonly id: 5;
210
+ readonly offset: 20;
211
+ };
212
+ readonly button6: {
213
+ readonly id: 6;
214
+ readonly offset: 25;
215
+ };
216
+ readonly scrollUp: {
217
+ readonly id: 49;
218
+ readonly offset: 30;
219
+ };
220
+ readonly scrollDown: {
221
+ readonly id: 50;
222
+ readonly offset: 35;
223
+ };
224
+ };
225
+ export type PrimeMiniWirelessButtonName = keyof typeof PRIME_MINI_WIRELESS_BUTTONS;
226
+ /**
227
+ * One button's target. `scrollUp`/`scrollDown` cannot be remap *targets*
228
+ * (`button_scroll_up`/`button_scroll_down` are `None` in the source) — only
229
+ * sources, same rule as `./aerox5-wireless.ts`.
230
+ */
231
+ export type PrimeMiniWirelessButtonAction = {
232
+ type: "button";
233
+ target: Exclude<PrimeMiniWirelessButtonName, "scrollUp" | "scrollDown">;
234
+ } | {
235
+ type: "disabled";
236
+ } | {
237
+ type: "dpiSwitch";
238
+ } | {
239
+ type: "keyboard";
240
+ code: number;
241
+ } | {
242
+ type: "multimedia";
243
+ code: number;
244
+ };
245
+ /**
246
+ * `2A` (`6A` wireless) + one 40-byte (`8 buttons × 5-byte field length`)
247
+ * packet, zero-filled except where a mapping is given. Unmapped buttons are
248
+ * left as all-zero fields (rivalcfg instead fills in per-button defaults;
249
+ * this codec leaves that policy to the caller — pass every button
250
+ * explicitly for parity with rivalcfg's default profile).
251
+ */
252
+ export declare function steelseriesPrimeMiniWirelessEncodeButtonsMapping(mapping: Partial<Record<PrimeMiniWirelessButtonName, PrimeMiniWirelessButtonAction>>, wireless: boolean): Uint8Array;
253
+ //# sourceMappingURL=prime-mini-wireless.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prime-mini-wireless.d.ts","sourceRoot":"","sources":["../../src/steelseries/prime-mini-wireless.ts"],"names":[],"mappings":"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"}