@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,22 @@
1
+ export const MICROSOFT_VENDOR_ID = 0x045E;
2
+ export const MICROSOFT_PRODUCT_CLASSIC = 0x0823;
3
+ export const MICROSOFT_PRODUCT_PRO = 0x082A;
4
+ export const MICROSOFT_PRODUCTS = new Set([
5
+ MICROSOFT_PRODUCT_PRO,
6
+ MICROSOFT_PRODUCT_CLASSIC,
7
+ ]);
8
+ export const REPORT_ID_WRITE = 0x24;
9
+ export const REPORT_ID_READ = 0x27;
10
+ export const PROPERTY_DPI_WRITE = 0x96;
11
+ export const PROPERTY_DPI_READ = 0x97;
12
+ export const PROPERTY_COLOR_WRITE = 0xB2;
13
+ export const PROPERTY_COLOR_READ = 0xB3;
14
+ export const PROPERTY_POLLING_WRITE = 0x83;
15
+ export const PROPERTY_POLLING_READ = 0x84;
16
+ export const PROPERTY_DISTANCE_WRITE = 0xB8;
17
+ export const PROPERTY_DISTANCE_READ = 0xB6;
18
+ export const MICROSOFT_CLASSIC_USAGE_PAGE = 0x000C;
19
+ export const MICROSOFT_CLASSIC_USAGE = 0x0001;
20
+ export const MICROSOFT_PRO_USAGE_PAGE = 0xFF07;
21
+ export const MICROSOFT_PRO_USAGE = 0x0212;
22
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/microsoft/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC;AAE1C,MAAM,CAAC,MAAM,yBAAyB,GAAG,MAAM,CAAC;AAChD,MAAM,CAAC,MAAM,qBAAqB,GAAG,MAAM,CAAC;AAE5C,MAAM,CAAC,MAAM,kBAAkB,GAAwB,IAAI,GAAG,CAAC;IAC7D,qBAAqB;IACrB,yBAAyB;CAC1B,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,CAAC;AACpC,MAAM,CAAC,MAAM,cAAc,GAAG,IAAI,CAAC;AAEnC,MAAM,CAAC,MAAM,kBAAkB,GAAG,IAAI,CAAC;AACvC,MAAM,CAAC,MAAM,iBAAiB,GAAG,IAAI,CAAC;AAEtC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CAAC;AACzC,MAAM,CAAC,MAAM,mBAAmB,GAAG,IAAI,CAAC;AAExC,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAC3C,MAAM,CAAC,MAAM,qBAAqB,GAAG,IAAI,CAAC;AAE1C,MAAM,CAAC,MAAM,uBAAuB,GAAG,IAAI,CAAC;AAC5C,MAAM,CAAC,MAAM,sBAAsB,GAAG,IAAI,CAAC;AAE3C,MAAM,CAAC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AACnD,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC;AAC9C,MAAM,CAAC,MAAM,wBAAwB,GAAG,MAAM,CAAC;AAC/C,MAAM,CAAC,MAAM,mBAAmB,GAAG,MAAM,CAAC"}
@@ -0,0 +1,72 @@
1
+ /**
2
+ * moddoMOUSE (moddo.io) vendor HID protocol — pure encode/decode helpers.
3
+ *
4
+ * Settings live in one packed feature report (id 0x02) — no CBOR:
5
+ * [ pollingHz u16le | lift u8 | dpiX u16le | dpiY u16le | invert/swap u8 | angle i16le | deepSleep u8 ]
6
+ * Battery is feature report 0x04; firmware version + connection path (wireless
7
+ * dongle vs. wired) come from feature report 0x03.
8
+ *
9
+ * These functions operate on the report *payload*, i.e. the bytes after the
10
+ * WebHID report-id byte; hid.ts strips that byte before calling in. Only
11
+ * documented settings are touched — no firmware flashing, wireless pairing, or
12
+ * button remapping. Report layout mirrors moddoHUB-Web (js/main.js,
13
+ * js/battery.js, js/firmware.js).
14
+ */
15
+ export declare const MODDO_VENDOR_ID = 12259;
16
+ export declare const MODDO_USAGE_PAGE_VENDOR = 255;
17
+ export declare const MODDO_USAGE_VENDOR_CONFIG = 1;
18
+ export declare const MODDO_USAGE_VENDOR_CONFIG_LEGACY = 2;
19
+ export declare const MODDO_REPORT: {
20
+ readonly config: 2;
21
+ readonly firmware: 3;
22
+ readonly battery: 4;
23
+ };
24
+ export declare const MODDO_CONFIG_REPORT_SIZE = 11;
25
+ export declare const MODDO_SUPPORTED_POLLING_RATES: readonly [125, 250, 500, 1000];
26
+ export declare const MODDO_DPI_MIN = 50;
27
+ export declare const MODDO_DPI_MAX = 26000;
28
+ export declare const MODDO_DPI_STEP = 50;
29
+ export declare const MODDO_BATTERY_STATUS: {
30
+ readonly charging: 68;
31
+ readonly discharging: 69;
32
+ readonly fullyCharged: 70;
33
+ readonly fullyDischarged: 71;
34
+ };
35
+ export declare const MODDO_CHARGER_BATTERY_PRESENT_BIT: number;
36
+ /** The moddoMOUSE reports lift-off at 1 mm ("Medium") or 2 mm ("High") only. */
37
+ export type ModdoLiftOffDistance = "Medium" | "High";
38
+ export type ModdoBatteryState = "Charging" | "Full" | "Discharging" | "Unknown";
39
+ export interface ModdoConfig {
40
+ polling: number;
41
+ lift: number;
42
+ dpiX: number;
43
+ dpiY: number;
44
+ invertSwap: number;
45
+ angle: number;
46
+ deepSleep: number;
47
+ }
48
+ export interface ModdoBattery {
49
+ percent: number | null;
50
+ state: ModdoBatteryState;
51
+ }
52
+ export interface ModdoFirmware {
53
+ mouse: string | null;
54
+ dongle: string | null;
55
+ dongleConnected: boolean;
56
+ }
57
+ export declare function isValidModdoDpi(dpi: number): boolean;
58
+ export declare function moddoDpiOptions(): number[];
59
+ export declare function decodeModdoLift(raw: number): ModdoLiftOffDistance | null;
60
+ export declare function encodeModdoLift(value: ModdoLiftOffDistance): number;
61
+ /**
62
+ * Decode the packed config payload, or null when the mouse is not ready: a
63
+ * truncated report, or the zeroed report a sleeping/off wireless mouse answers
64
+ * with. Returning null (rather than 0 DPI / 0 Hz) keeps the UI grid hidden and
65
+ * stops a read-modify-write from persisting zeros.
66
+ */
67
+ export declare function decodeModdoConfig(payload: Uint8Array): ModdoConfig | null;
68
+ /** Serialize the full 11-byte config report; callers validate before calling. */
69
+ export declare function encodeModdoConfig(config: ModdoConfig): Uint8Array<ArrayBuffer>;
70
+ export declare function decodeModdoBattery(payload: Uint8Array): ModdoBattery;
71
+ export declare function decodeModdoFirmware(payload: Uint8Array): ModdoFirmware;
72
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/moddo/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,eAAO,MAAM,eAAe,QAAS,CAAC;AACtC,eAAO,MAAM,uBAAuB,MAAO,CAAC;AAC5C,eAAO,MAAM,yBAAyB,IAAO,CAAC;AAC9C,eAAO,MAAM,gCAAgC,IAAO,CAAC;AAErD,eAAO,MAAM,YAAY;;;;CAIf,CAAC;AAaX,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAE3C,eAAO,MAAM,6BAA6B,gCAAiC,CAAC;AAC5E,eAAO,MAAM,aAAa,KAAK,CAAC;AAChC,eAAO,MAAM,aAAa,QAAQ,CAAC;AACnC,eAAO,MAAM,cAAc,KAAK,CAAC;AAGjC,eAAO,MAAM,oBAAoB;;;;;CAKvB,CAAC;AACX,eAAO,MAAM,iCAAiC,QAAS,CAAC;AAExD,gFAAgF;AAChF,MAAM,MAAM,oBAAoB,GAAG,QAAQ,GAAG,MAAM,CAAC;AACrD,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,MAAM,GAAG,aAAa,GAAG,SAAS,CAAC;AAEhF,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,KAAK,EAAE,iBAAiB,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAEpD;AAED,wBAAgB,eAAe,IAAI,MAAM,EAAE,CAI1C;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,oBAAoB,GAAG,IAAI,CAIxE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,MAAM,CAEnE;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,UAAU,GAAG,WAAW,GAAG,IAAI,CAiBzE;AAED,iFAAiF;AACjF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,WAAW,GAAG,UAAU,CAAC,WAAW,CAAC,CAW9E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,UAAU,GAAG,YAAY,CAkBpE;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,UAAU,GAAG,aAAa,CAoBtE"}
@@ -0,0 +1,147 @@
1
+ /**
2
+ * moddoMOUSE (moddo.io) vendor HID protocol — pure encode/decode helpers.
3
+ *
4
+ * Settings live in one packed feature report (id 0x02) — no CBOR:
5
+ * [ pollingHz u16le | lift u8 | dpiX u16le | dpiY u16le | invert/swap u8 | angle i16le | deepSleep u8 ]
6
+ * Battery is feature report 0x04; firmware version + connection path (wireless
7
+ * dongle vs. wired) come from feature report 0x03.
8
+ *
9
+ * These functions operate on the report *payload*, i.e. the bytes after the
10
+ * WebHID report-id byte; hid.ts strips that byte before calling in. Only
11
+ * documented settings are touched — no firmware flashing, wireless pairing, or
12
+ * button remapping. Report layout mirrors moddoHUB-Web (js/main.js,
13
+ * js/battery.js, js/firmware.js).
14
+ */
15
+ export const MODDO_VENDOR_ID = 0x2fe3;
16
+ export const MODDO_USAGE_PAGE_VENDOR = 0xff;
17
+ export const MODDO_USAGE_VENDOR_CONFIG = 0x01;
18
+ export const MODDO_USAGE_VENDOR_CONFIG_LEGACY = 0x02;
19
+ export const MODDO_REPORT = {
20
+ config: 0x02,
21
+ firmware: 0x03,
22
+ battery: 0x04,
23
+ };
24
+ /** Packed config-report field offsets (into the payload, after the report-id byte). */
25
+ const CONFIG = {
26
+ polling: 0, // u16 LE — report rate in Hz
27
+ lift: 2, // u8 — 1 = 1 mm, 2 = 2 mm
28
+ dpiX: 3, // u16 LE
29
+ dpiY: 5, // u16 LE
30
+ invertSwap: 7, // u8 — preserved across writes
31
+ angle: 8, // i16 LE — preserved across writes
32
+ deepSleep: 10, // u8 — preserved across writes
33
+ };
34
+ export const MODDO_CONFIG_REPORT_SIZE = 11;
35
+ export const MODDO_SUPPORTED_POLLING_RATES = [125, 250, 500, 1000];
36
+ export const MODDO_DPI_MIN = 50;
37
+ export const MODDO_DPI_MAX = 26000;
38
+ export const MODDO_DPI_STEP = 50;
39
+ // Battery status codes and charger flags (js/battery.js).
40
+ export const MODDO_BATTERY_STATUS = {
41
+ charging: 0x44,
42
+ discharging: 0x45,
43
+ fullyCharged: 0x46,
44
+ fullyDischarged: 0x47,
45
+ };
46
+ export const MODDO_CHARGER_BATTERY_PRESENT_BIT = 1 << 0;
47
+ export function isValidModdoDpi(dpi) {
48
+ return Number.isInteger(dpi) && dpi >= MODDO_DPI_MIN && dpi <= MODDO_DPI_MAX && dpi % MODDO_DPI_STEP === 0;
49
+ }
50
+ export function moddoDpiOptions() {
51
+ const values = [];
52
+ for (let dpi = MODDO_DPI_MIN; dpi <= MODDO_DPI_MAX; dpi += MODDO_DPI_STEP)
53
+ values.push(dpi);
54
+ return values;
55
+ }
56
+ export function decodeModdoLift(raw) {
57
+ if (raw === 1)
58
+ return "Medium";
59
+ if (raw === 2)
60
+ return "High";
61
+ return null;
62
+ }
63
+ export function encodeModdoLift(value) {
64
+ return value === "Medium" ? 1 : 2;
65
+ }
66
+ /**
67
+ * Decode the packed config payload, or null when the mouse is not ready: a
68
+ * truncated report, or the zeroed report a sleeping/off wireless mouse answers
69
+ * with. Returning null (rather than 0 DPI / 0 Hz) keeps the UI grid hidden and
70
+ * stops a read-modify-write from persisting zeros.
71
+ */
72
+ export function decodeModdoConfig(payload) {
73
+ // Need polling + lift + both DPI axes present (through offset 6).
74
+ if (payload.length < 7)
75
+ return null;
76
+ const view = new DataView(payload.buffer, payload.byteOffset, payload.byteLength);
77
+ const u8 = (offset) => (offset < payload.length ? view.getUint8(offset) : 0);
78
+ const i16 = (offset) => (offset + 2 <= payload.length ? view.getInt16(offset, true) : 0);
79
+ const config = {
80
+ polling: view.getUint16(CONFIG.polling, true),
81
+ lift: view.getUint8(CONFIG.lift),
82
+ dpiX: view.getUint16(CONFIG.dpiX, true),
83
+ dpiY: view.getUint16(CONFIG.dpiY, true),
84
+ invertSwap: u8(CONFIG.invertSwap),
85
+ angle: i16(CONFIG.angle),
86
+ deepSleep: u8(CONFIG.deepSleep),
87
+ };
88
+ if (config.polling <= 0 || config.dpiX < MODDO_DPI_MIN || config.dpiX > MODDO_DPI_MAX)
89
+ return null;
90
+ return config;
91
+ }
92
+ /** Serialize the full 11-byte config report; callers validate before calling. */
93
+ export function encodeModdoConfig(config) {
94
+ const buffer = new Uint8Array(MODDO_CONFIG_REPORT_SIZE);
95
+ const view = new DataView(buffer.buffer);
96
+ view.setUint16(CONFIG.polling, config.polling, true);
97
+ view.setUint8(CONFIG.lift, config.lift);
98
+ view.setUint16(CONFIG.dpiX, config.dpiX, true);
99
+ view.setUint16(CONFIG.dpiY, config.dpiY, true);
100
+ view.setUint8(CONFIG.invertSwap, config.invertSwap);
101
+ view.setInt16(CONFIG.angle, config.angle, true);
102
+ view.setUint8(CONFIG.deepSleep, config.deepSleep);
103
+ return buffer;
104
+ }
105
+ export function decodeModdoBattery(payload) {
106
+ if (payload.length < 4)
107
+ return { percent: null, state: "Unknown" };
108
+ const remaining = payload[0];
109
+ const status = payload[2];
110
+ const chargerStatus = payload[3];
111
+ if ((chargerStatus & MODDO_CHARGER_BATTERY_PRESENT_BIT) === 0) {
112
+ // No cell present (e.g. a wired mouse) — surface an empty battery column.
113
+ return { percent: null, state: "Unknown" };
114
+ }
115
+ const percent = remaining > 100 ? null : remaining;
116
+ const state = status === MODDO_BATTERY_STATUS.charging
117
+ ? "Charging"
118
+ : status === MODDO_BATTERY_STATUS.fullyCharged
119
+ ? "Full"
120
+ : status === MODDO_BATTERY_STATUS.discharging || status === MODDO_BATTERY_STATUS.fullyDischarged
121
+ ? "Discharging"
122
+ : "Unknown";
123
+ return { percent, state };
124
+ }
125
+ export function decodeModdoFirmware(payload) {
126
+ // First 8 bytes: dongle (rx) then mouse (tx) major.minor.patch.build.
127
+ if (payload.length < 8)
128
+ return { mouse: null, dongle: null, dongleConnected: false };
129
+ const version = (offset) => {
130
+ const major = payload[offset];
131
+ const minor = payload[offset + 1];
132
+ const patch = payload[offset + 2];
133
+ const build = payload[offset + 3];
134
+ const present = !(major === 0 && minor === 0 && patch === 0 && build === 0);
135
+ return { text: `${major}.${minor}.${patch}`, present };
136
+ };
137
+ const dongle = version(0);
138
+ const mouse = version(4);
139
+ return {
140
+ mouse: mouse.present ? mouse.text : null,
141
+ dongle: dongle.present ? dongle.text : null,
142
+ // A non-zero dongle version means the mouse answered over the 2.4 GHz
143
+ // receiver; a wired mouse leaves those bytes zero.
144
+ dongleConnected: dongle.present,
145
+ };
146
+ }
147
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/moddo/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,74 @@
1
+ /** Public protocol constants used by NinjaForce's shipped WebHID client. */
2
+ export declare const NINJUTSO_LEGACY_VENDOR_ID = 6421;
3
+ export declare const NINJUTSO_VENDOR_ID = 2362;
4
+ export declare const NINJUTSO_LEGACY_MOUSE_PRODUCT_IDS: readonly [44561, 44562, 44563, 44564, 44565, 44566];
5
+ export declare const NINJUTSO_LEGACY_RECEIVER_PRODUCT_IDS: readonly [44572, 44684, 44682];
6
+ export declare const NINJUTSO_MOUSE_PRODUCT_IDS: readonly [57376, 57360, 59905];
7
+ export declare const NINJUTSO_RECEIVER_PRODUCT_IDS: readonly [60161, 60162];
8
+ export interface NinjutsoDeviceDefinition {
9
+ name: string;
10
+ receiver: boolean;
11
+ protocol: "legacy" | "current";
12
+ /** False until this OpenMouse implementation is exercised on physical hardware. */
13
+ verified: boolean;
14
+ }
15
+ export declare const NINJUTSO_DEVICES: ReadonlyMap<string, NinjutsoDeviceDefinition>;
16
+ export declare const NINJUTSO_LEGACY_REPORT_ID = 5;
17
+ export declare const NINJUTSO_LEGACY_PAYLOAD_LENGTH = 31;
18
+ export declare const NINJUTSO_REPORT_ID = 6;
19
+ export declare const NINJUTSO_PAYLOAD_LENGTH = 15;
20
+ export declare const NINJUTSO_CONTROL_REPORT_ID = 3;
21
+ export declare const NINJUTSO_CONTROL_PAYLOAD_LENGTH = 63;
22
+ export declare const NINJUTSO_COMMAND: {
23
+ readonly batteryCharging: 17;
24
+ readonly batteryPercent: 18;
25
+ readonly online: 19;
26
+ readonly firmware: 21;
27
+ readonly profile: 16;
28
+ readonly activeDpiStage: 28;
29
+ readonly dpiStageCount: 30;
30
+ readonly dpi: 4;
31
+ readonly pollingRate: 6;
32
+ readonly liftOffDistance: 8;
33
+ readonly angleTuning: 10;
34
+ readonly motionSync: 14;
35
+ readonly systemMode: 12;
36
+ readonly hyperClick: 23;
37
+ readonly slamClick: 42;
38
+ readonly opticalEngine: 50;
39
+ readonly sleepMinutes: 25;
40
+ readonly lightingMode: 32;
41
+ readonly lightingColor: 34;
42
+ readonly lightingState: 38;
43
+ readonly lightingSpeed: 40;
44
+ readonly lightingBrightness: 48;
45
+ readonly pairedProductId: 167;
46
+ readonly setDpi: 3;
47
+ readonly setActiveDpiStage: 27;
48
+ readonly setDpiStageCount: 29;
49
+ readonly setPollingRate: 5;
50
+ readonly setLiftOffDistance: 7;
51
+ readonly setAngleTuning: 9;
52
+ readonly setMotionSync: 13;
53
+ readonly setSystemMode: 11;
54
+ readonly setHyperClick: 22;
55
+ readonly setSlamClick: 41;
56
+ readonly setOpticalEngine: 49;
57
+ readonly setSleepMinutes: 24;
58
+ readonly setLightingMode: 31;
59
+ readonly setLightingColor: 33;
60
+ readonly setLightingState: 37;
61
+ readonly setLightingSpeed: 39;
62
+ readonly setLightingBrightness: 47;
63
+ };
64
+ export declare const NINJUTSO_POLLING_RATES: readonly [1000, 2000, 4000, 8000];
65
+ export declare function ninjutsoBuildRequest(command: number, profile?: number, args?: readonly number[]): Uint8Array;
66
+ export declare function ninjutsoResponseValue(response: DataView | Uint8Array, command: number): Uint8Array | null;
67
+ export declare function ninjutsoEncodePollingRate(rate: number): number;
68
+ export declare function ninjutsoDecodePollingRate(code: number): number | null;
69
+ export declare function ninjutsoEncodeDpi(dpi: number, direct: boolean): [number, number, number];
70
+ export declare function ninjutsoDecodeDpi(low: number, high: number, tenth: number, direct: boolean): number;
71
+ export declare function ninjutsoLegacyRequest(command: number, profile?: number, value?: number): Uint8Array;
72
+ export declare function ninjutsoLegacyEncodeDpi(dpi: number): [number, number];
73
+ export declare function ninjutsoLegacyDecodeDpi(low: number, high: number): number;
74
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/ninjutso/index.ts"],"names":[],"mappings":"AAAA,4EAA4E;AAC5E,eAAO,MAAM,yBAAyB,OAAS,CAAC;AAChD,eAAO,MAAM,kBAAkB,OAAS,CAAC;AAEzC,eAAO,MAAM,iCAAiC,qDAEpC,CAAC;AACX,eAAO,MAAM,oCAAoC,gCAAoC,CAAC;AACtF,eAAO,MAAM,0BAA0B,gCAAoC,CAAC;AAC5E,eAAO,MAAM,6BAA6B,yBAA4B,CAAC;AAEvE,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B,mFAAmF;IACnF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,eAAO,MAAM,gBAAgB,EAAE,WAAW,CAAC,MAAM,EAAE,wBAAwB,CAczE,CAAC;AAEH,eAAO,MAAM,yBAAyB,IAAI,CAAC;AAC3C,eAAO,MAAM,8BAA8B,KAAK,CAAC;AACjD,eAAO,MAAM,kBAAkB,IAAI,CAAC;AACpC,eAAO,MAAM,uBAAuB,KAAK,CAAC;AAC1C,eAAO,MAAM,0BAA0B,IAAI,CAAC;AAC5C,eAAO,MAAM,+BAA+B,KAAK,CAAC;AAElD,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAyCnB,CAAC;AAEX,eAAO,MAAM,sBAAsB,mCAAoC,CAAC;AAExE,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,SAAI,EAAE,IAAI,GAAE,SAAS,MAAM,EAAO,GAAG,UAAU,CAS3G;AAED,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,QAAQ,GAAG,UAAU,EAAE,OAAO,EAAE,MAAM,GAAG,UAAU,GAAG,IAAI,CAMzG;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAErE;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAQxF;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,MAAM,CAGnG;AAED,wBAAgB,qBAAqB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,SAAI,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,UAAU,CAK9F;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAMrE;AAED,wBAAgB,uBAAuB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAEzE"}
@@ -0,0 +1,133 @@
1
+ /** Public protocol constants used by NinjaForce's shipped WebHID client. */
2
+ export const NINJUTSO_LEGACY_VENDOR_ID = 0x1915;
3
+ export const NINJUTSO_VENDOR_ID = 0x093a;
4
+ export const NINJUTSO_LEGACY_MOUSE_PRODUCT_IDS = [
5
+ 0xae11, 0xae12, 0xae13, 0xae14, 0xae15, 0xae16,
6
+ ];
7
+ export const NINJUTSO_LEGACY_RECEIVER_PRODUCT_IDS = [0xae1c, 0xae8c, 0xae8a];
8
+ export const NINJUTSO_MOUSE_PRODUCT_IDS = [0xe020, 0xe010, 0xea01];
9
+ export const NINJUTSO_RECEIVER_PRODUCT_IDS = [0xeb01, 0xeb02];
10
+ export const NINJUTSO_DEVICES = new Map([
11
+ ...NINJUTSO_LEGACY_MOUSE_PRODUCT_IDS.map((productId) => [
12
+ `${NINJUTSO_LEGACY_VENDOR_ID}:${productId}`,
13
+ { name: "Ninjutso Sora V2", receiver: false, protocol: "legacy", verified: false },
14
+ ]),
15
+ ...NINJUTSO_LEGACY_RECEIVER_PRODUCT_IDS.map((productId) => [
16
+ `${NINJUTSO_LEGACY_VENDOR_ID}:${productId}`,
17
+ { name: "Ninjutso Sora V2 receiver", receiver: true, protocol: "legacy", verified: false },
18
+ ]),
19
+ [`${NINJUTSO_VENDOR_ID}:${0xe010}`, { name: "Ninjutso Sora V3", receiver: false, protocol: "current", verified: false }],
20
+ [`${NINJUTSO_VENDOR_ID}:${0xeb02}`, { name: "Ninjutso Sora V3 receiver", receiver: true, protocol: "current", verified: false }],
21
+ [`${NINJUTSO_VENDOR_ID}:${0xe020}`, { name: "Ninjutso TEN / TEN AIR", receiver: false, protocol: "current", verified: false }],
22
+ [`${NINJUTSO_VENDOR_ID}:${0xea01}`, { name: "Ninjutso TEN / TEN AIR", receiver: false, protocol: "current", verified: false }],
23
+ [`${NINJUTSO_VENDOR_ID}:${0xeb01}`, { name: "Ninjutso TEN / TEN AIR receiver", receiver: true, protocol: "current", verified: false }],
24
+ ]);
25
+ export const NINJUTSO_LEGACY_REPORT_ID = 5;
26
+ export const NINJUTSO_LEGACY_PAYLOAD_LENGTH = 31;
27
+ export const NINJUTSO_REPORT_ID = 6;
28
+ export const NINJUTSO_PAYLOAD_LENGTH = 15;
29
+ export const NINJUTSO_CONTROL_REPORT_ID = 3;
30
+ export const NINJUTSO_CONTROL_PAYLOAD_LENGTH = 63;
31
+ export const NINJUTSO_COMMAND = {
32
+ batteryCharging: 17,
33
+ batteryPercent: 18,
34
+ online: 19,
35
+ firmware: 21,
36
+ profile: 16,
37
+ activeDpiStage: 28,
38
+ dpiStageCount: 30,
39
+ dpi: 4,
40
+ pollingRate: 6,
41
+ liftOffDistance: 8,
42
+ angleTuning: 10,
43
+ motionSync: 14,
44
+ systemMode: 12,
45
+ hyperClick: 23,
46
+ slamClick: 42,
47
+ opticalEngine: 50,
48
+ sleepMinutes: 25,
49
+ lightingMode: 32,
50
+ lightingColor: 34,
51
+ lightingState: 38,
52
+ lightingSpeed: 40,
53
+ lightingBrightness: 48,
54
+ pairedProductId: 167,
55
+ setDpi: 3,
56
+ setActiveDpiStage: 27,
57
+ setDpiStageCount: 29,
58
+ setPollingRate: 5,
59
+ setLiftOffDistance: 7,
60
+ setAngleTuning: 9,
61
+ setMotionSync: 13,
62
+ setSystemMode: 11,
63
+ setHyperClick: 22,
64
+ setSlamClick: 41,
65
+ setOpticalEngine: 49,
66
+ setSleepMinutes: 24,
67
+ setLightingMode: 31,
68
+ setLightingColor: 33,
69
+ setLightingState: 37,
70
+ setLightingSpeed: 39,
71
+ setLightingBrightness: 47,
72
+ };
73
+ export const NINJUTSO_POLLING_RATES = [1000, 2000, 4000, 8000];
74
+ export function ninjutsoBuildRequest(command, profile = 0, args = []) {
75
+ if (!Number.isInteger(command) || command < 0 || command > 0xff)
76
+ throw new Error("Ninjutso command must be one byte.");
77
+ if (!Number.isInteger(profile) || profile < 0 || profile > 0xff)
78
+ throw new Error("Ninjutso profile must be one byte.");
79
+ if (args.length > 8 || args.some((value) => !Number.isInteger(value) || value < 0 || value > 0xff)) {
80
+ throw new Error("Ninjutso command arguments must be at most eight bytes.");
81
+ }
82
+ const payload = new Uint8Array(NINJUTSO_PAYLOAD_LENGTH);
83
+ payload.set([command, 0, 0, 1, 0, args.length, profile, ...args]);
84
+ return payload;
85
+ }
86
+ export function ninjutsoResponseValue(response, command) {
87
+ const bytes = response instanceof Uint8Array
88
+ ? response
89
+ : new Uint8Array(response.buffer, response.byteOffset, response.byteLength);
90
+ if (bytes.length < 9 || bytes[1] !== command)
91
+ return null;
92
+ return bytes.slice(8);
93
+ }
94
+ export function ninjutsoEncodePollingRate(rate) {
95
+ const index = NINJUTSO_POLLING_RATES.indexOf(rate);
96
+ if (index < 0)
97
+ throw new Error("Ninjutso polling rate must be 1000, 2000, 4000, or 8000 Hz.");
98
+ return index + 1;
99
+ }
100
+ export function ninjutsoDecodePollingRate(code) {
101
+ return NINJUTSO_POLLING_RATES[code - 1] ?? null;
102
+ }
103
+ export function ninjutsoEncodeDpi(dpi, direct) {
104
+ const max = direct ? 45_000 : 30_000;
105
+ const step = direct ? 1 : 50;
106
+ if (!Number.isInteger(dpi) || dpi < (direct ? 1 : 50) || dpi > max || dpi % step !== 0) {
107
+ throw new Error(`Ninjutso DPI must be ${direct ? "1–45,000" : "50–30,000 in 50 DPI steps"}.`);
108
+ }
109
+ const encoded = direct ? dpi : dpi / 50 - 1;
110
+ return [encoded & 0xff, (encoded >> 8) & 0xff, 0];
111
+ }
112
+ export function ninjutsoDecodeDpi(low, high, tenth, direct) {
113
+ const encoded = (high << 8) | low;
114
+ return direct ? encoded + tenth / 10 : (encoded + 1) * 50;
115
+ }
116
+ export function ninjutsoLegacyRequest(command, profile = 0, value) {
117
+ const payload = new Uint8Array(NINJUTSO_LEGACY_PAYLOAD_LENGTH);
118
+ payload.set([command, 0, 0, 1, 0, profile, 22]);
119
+ if (value !== undefined)
120
+ payload[8] = value & 0xff;
121
+ return payload;
122
+ }
123
+ export function ninjutsoLegacyEncodeDpi(dpi) {
124
+ if (!Number.isInteger(dpi) || dpi < 50 || dpi > 30_000 || dpi % 50 !== 0) {
125
+ throw new Error("Sora V2 DPI must be 50–30,000 in 50 DPI steps.");
126
+ }
127
+ const encoded = dpi / 50 - 1;
128
+ return [encoded & 0xff, (encoded >> 8) & 0xff];
129
+ }
130
+ export function ninjutsoLegacyDecodeDpi(low, high) {
131
+ return (((high & 0xff) << 8) | (low & 0xff)) * 50 + 50;
132
+ }
133
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/ninjutso/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ export declare const ORBITAL_VENDOR_ID = 6421;
2
+ export declare const ORBITAL_REPORT_ID = 0;
3
+ export declare const ORBITAL_PACKET_SIZE = 64;
4
+ export declare const ORBITAL_REPORT_RATES_HZ: readonly number[];
5
+ export interface OrbitalDeviceDefinition {
6
+ name: string;
7
+ protocol: "dms" | "dms_v2";
8
+ receiver: boolean;
9
+ pairedProductId?: number;
10
+ maxReportRateIndex: number;
11
+ }
12
+ export declare const ORBITAL_DEVICES: ReadonlyMap<number, OrbitalDeviceDefinition>;
13
+ export declare function orbitalFinishPacket(packet: Uint8Array, routeToMouse?: boolean): Uint8Array;
14
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/orbital/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,iBAAiB,OAAS,CAAC;AACxC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AACnC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,uBAAuB,EAAE,SAAS,MAAM,EAAuC,CAAC;AAC7F,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,KAAK,GAAG,QAAQ,CAAC;IAC3B,QAAQ,EAAE,OAAO,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;CAC5B;AACD,eAAO,MAAM,eAAe,EAAE,WAAW,CAAC,MAAM,EAAE,uBAAuB,CAKvE,CAAC;AAEH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,UAAU,EAAE,YAAY,UAAQ,GAAG,UAAU,CAMxF"}
@@ -0,0 +1,19 @@
1
+ export const ORBITAL_VENDOR_ID = 0x1915;
2
+ export const ORBITAL_REPORT_ID = 0;
3
+ export const ORBITAL_PACKET_SIZE = 64;
4
+ export const ORBITAL_REPORT_RATES_HZ = [125, 500, 1000, 2000, 4000, 8000];
5
+ export const ORBITAL_DEVICES = new Map([
6
+ [0x080c, { name: "Ghost / Pathfinder V2", protocol: "dms_v2", receiver: false, maxReportRateIndex: 5 }],
7
+ [0x080b, { name: "Ghost / Pathfinder V2 receiver", protocol: "dms_v2", receiver: true, pairedProductId: 0x080c, maxReportRateIndex: 5 }],
8
+ [0x0747, { name: "Pathfinder V1", protocol: "dms", receiver: false, maxReportRateIndex: 2 }],
9
+ [0x0746, { name: "Pathfinder V1 receiver", protocol: "dms", receiver: true, pairedProductId: 0x0747, maxReportRateIndex: 2 }],
10
+ ]);
11
+ export function orbitalFinishPacket(packet, routeToMouse = false) {
12
+ const result = packet.slice();
13
+ if (routeToMouse)
14
+ result[0] = (result[0] ?? 0) | 0x40;
15
+ const sum = result.slice(0, ORBITAL_PACKET_SIZE - 1).reduce((total, byte) => total + byte, 0);
16
+ result[ORBITAL_PACKET_SIZE - 1] = (0xa1 - (sum & 0xff)) & 0xff;
17
+ return result;
18
+ }
19
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/orbital/index.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,iBAAiB,GAAG,MAAM,CAAC;AACxC,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAC;AACnC,MAAM,CAAC,MAAM,mBAAmB,GAAG,EAAE,CAAC;AACtC,MAAM,CAAC,MAAM,uBAAuB,GAAsB,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AAQ7F,MAAM,CAAC,MAAM,eAAe,GAAiD,IAAI,GAAG,CAAC;IACnF,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;IACvG,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,gCAAgC,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;IACxI,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;IAC5F,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,wBAAwB,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC;CAC9H,CAAC,CAAC;AAEH,MAAM,UAAU,mBAAmB,CAAC,MAAkB,EAAE,YAAY,GAAG,KAAK;IAC1E,MAAM,MAAM,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC9B,IAAI,YAAY;QAAE,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,mBAAmB,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC;IAC9F,MAAM,CAAC,mBAAmB,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,GAAG,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC/D,OAAO,MAAM,CAAC;AAChB,CAAC"}
@@ -0,0 +1,81 @@
1
+ export declare const PULSAR_VENDOR_ID = 14096;
2
+ export declare const PULSAR_CONFIG_REPORT_ID = 8;
3
+ export declare const PULSAR_CONFIG_PACKET_LENGTH = 16;
4
+ export declare const PULSAR_COMMAND: {
5
+ readonly encryptionData: 1;
6
+ readonly deviceOnline: 3;
7
+ readonly batteryLevel: 4;
8
+ readonly writeFlashData: 7;
9
+ readonly readFlashData: 8;
10
+ readonly getCurrentConfig: 14;
11
+ readonly readVersionId: 18;
12
+ readonly setDongleRgb: 20;
13
+ readonly getDongleRgb: 21;
14
+ readonly getDongleVersion: 29;
15
+ readonly getRssi: 43;
16
+ };
17
+ export declare const PULSAR_FLASH: {
18
+ readonly reportRate: 0;
19
+ readonly currentDpi: 4;
20
+ readonly liftOffDistance: 10;
21
+ readonly dpiValues: 12;
22
+ readonly debounceTime: 169;
23
+ readonly motionSync: 171;
24
+ readonly sleepTime: 173;
25
+ readonly angleSnapping: 175;
26
+ readonly rippleControl: 177;
27
+ readonly performanceState: 181;
28
+ readonly performanceTime: 183;
29
+ };
30
+ export declare const PULSAR_PRO_PRODUCT_ID = 21509;
31
+ export declare const PULSAR_PRO_REPORT_ID = 0;
32
+ export declare const PULSAR_PRO_REPORT_LENGTH = 63;
33
+ export declare const PULSAR_PRO_COMMAND: {
34
+ readonly dongleVersion: 160;
35
+ readonly rssi: 164;
36
+ readonly dpi: 177;
37
+ readonly polling: 178;
38
+ readonly lod: 179;
39
+ readonly battery: 180;
40
+ readonly motionSync: 181;
41
+ readonly ripple: 182;
42
+ readonly angleSnap: 183;
43
+ readonly angleTune: 184;
44
+ readonly wheelAcceleration: 185;
45
+ readonly lowBattery: 190;
46
+ readonly mouseVersion: 191;
47
+ readonly remoteLed: 192;
48
+ readonly dpiLed: 193;
49
+ readonly powerSaving: 194;
50
+ readonly saveAllow: 195;
51
+ readonly turboMode: 196;
52
+ readonly debounce: 197;
53
+ readonly profile: 198;
54
+ };
55
+ export declare function pulsarPacketChecksum(packet: Uint8Array): number;
56
+ export declare function pulsarDataChecksum(data: Uint8Array): number;
57
+ export declare function pulsarDecodePollingRate(encoded: number): number;
58
+ export declare function pulsarEncodePollingRate(rate: number): number;
59
+ export declare function pulsarDecodeDpi(data: Uint8Array): number | null;
60
+ export declare function pulsarEncodeDpi(dpi: number): Uint8Array;
61
+ export declare function pulsarDpiOptions(): number[];
62
+ export declare function pulsarVgnDecodeDpi(data: Uint8Array): number | null;
63
+ export declare function pulsarVgnEncodeDpi(dpi: number): Uint8Array;
64
+ export declare function pulsarVgnDpiOptions(): number[];
65
+ export declare function readUint16LE(data: Uint8Array, offset: number): number;
66
+ export declare const PULSAR_XS1_PRODUCT_IDS: ReadonlySet<number>;
67
+ export declare const PULSAR_XS1_WIRELESS_PRODUCT_IDS: ReadonlySet<number>;
68
+ export declare const PULSAR_XS1_FEATURE_REPORT_ID = 0;
69
+ export declare const PULSAR_XS1_PACKET_LENGTH = 64;
70
+ export declare const PULSAR_XS1_DPI_MIN = 50;
71
+ export declare const PULSAR_XS1_DPI_MAX = 26000;
72
+ export declare const PULSAR_XS1_DPI_STEP = 50;
73
+ export declare const PULSAR_XS1_DEBOUNCE_MAX_MS = 15;
74
+ export declare const PULSAR_XS1_POLLING_RATES: readonly number[];
75
+ export declare function pulsarXs1Checksum(packet: Uint8Array): number;
76
+ export declare function pulsarXs1EncodeRequest(command: readonly number[]): Uint8Array<ArrayBuffer>;
77
+ export declare function pulsarXs1DpiOptions(): number[];
78
+ export declare function pulsarXs1DecodePollingRate(value: number): number | null;
79
+ export declare function readUint32LE(data: Uint8Array, offset: number): number;
80
+ export declare function uint32LE(value: number): Uint8Array;
81
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/pulsar/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,gBAAgB,QAAS,CAAC;AACvC,eAAO,MAAM,uBAAuB,IAAO,CAAC;AAC5C,eAAO,MAAM,2BAA2B,KAAK,CAAC;AAE9C,eAAO,MAAM,cAAc;;;;;;;;;;;;CAKjB,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;CAKf,CAAC;AAEX,eAAO,MAAM,qBAAqB,QAAS,CAAC;AAC5C,eAAO,MAAM,oBAAoB,IAAI,CAAC;AACtC,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,kBAAkB;;;;;;;;;;;;;;;;;;;;;CAMrB,CAAC;AAEX,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAI/D;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,CAI3D;AAED,wBAAgB,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAE/D;AAED,wBAAgB,uBAAuB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAM5D;AAQD,wBAAgB,eAAe,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAY/D;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAavD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAM3C;AAOD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,UAAU,GAAG,MAAM,GAAG,IAAI,CAQlE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAS1D;AAED,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAI9C;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAErE;AAKD,eAAO,MAAM,sBAAsB,EAAE,WAAW,CAAC,MAAM,CAA6C,CAAC;AACrG,eAAO,MAAM,+BAA+B,EAAE,WAAW,CAAC,MAAM,CAA6B,CAAC;AAC9F,eAAO,MAAM,4BAA4B,IAAI,CAAC;AAC9C,eAAO,MAAM,wBAAwB,KAAK,CAAC;AAC3C,eAAO,MAAM,kBAAkB,KAAK,CAAC;AACrC,eAAO,MAAM,kBAAkB,QAAQ,CAAC;AACxC,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,0BAA0B,KAAK,CAAC;AAC7C,eAAO,MAAM,wBAAwB,EAAE,SAAS,MAAM,EAA0B,CAAC;AAEjF,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,MAAM,CAI5D;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC,CAQ1F;AAED,wBAAgB,mBAAmB,IAAI,MAAM,EAAE,CAI9C;AAED,wBAAgB,0BAA0B,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAEvE;AAMD,wBAAgB,YAAY,CAAC,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAErE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,UAAU,CAElD"}