dualsense-ts 6.7.0 → 6.9.3

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 (202) hide show
  1. package/CHANGELOG.md +192 -0
  2. package/LICENSE +159 -668
  3. package/LICENSE.GPL3 +674 -0
  4. package/README.md +8 -8
  5. package/dist/audio.d.ts.map +1 -1
  6. package/dist/audio.js +2 -3
  7. package/dist/audio.js.map +1 -1
  8. package/dist/comparators.js +3 -4
  9. package/dist/comparators.js.map +1 -1
  10. package/dist/dualsense.d.ts +4 -0
  11. package/dist/dualsense.d.ts.map +1 -1
  12. package/dist/dualsense.js +14 -6
  13. package/dist/dualsense.js.map +1 -1
  14. package/dist/elements/audio.js.map +1 -1
  15. package/dist/elements/player_leds.js.map +1 -1
  16. package/dist/elements/trigger_feedback.js +3 -3
  17. package/dist/elements/trigger_feedback.js.map +1 -1
  18. package/dist/elements/unisense.d.ts +1 -1
  19. package/dist/elements/unisense.d.ts.map +1 -1
  20. package/dist/hid/battery_state.js +1 -1
  21. package/dist/hid/battery_state.js.map +1 -1
  22. package/dist/hid/bt_checksum.js +2 -3
  23. package/dist/hid/bt_checksum.js.map +1 -1
  24. package/dist/hid/command.js +8 -8
  25. package/dist/hid/command.js.map +1 -1
  26. package/dist/hid/dsp.js +3 -3
  27. package/dist/hid/dsp.js.map +1 -1
  28. package/dist/hid/dualsense_hid.d.ts +5 -1
  29. package/dist/hid/dualsense_hid.d.ts.map +1 -1
  30. package/dist/hid/dualsense_hid.js +9 -2
  31. package/dist/hid/dualsense_hid.js.map +1 -1
  32. package/dist/hid/factory_info.js +3 -3
  33. package/dist/hid/factory_info.js.map +1 -1
  34. package/dist/hid/firmware_info.js +3 -3
  35. package/dist/hid/firmware_info.js.map +1 -1
  36. package/dist/hid/hid_provider.d.ts +1 -4
  37. package/dist/hid/hid_provider.d.ts.map +1 -1
  38. package/dist/hid/hid_provider.js +5 -5
  39. package/dist/hid/hid_provider.js.map +1 -1
  40. package/dist/hid/node_hid_provider.d.ts +0 -2
  41. package/dist/hid/node_hid_provider.d.ts.map +1 -1
  42. package/dist/hid/node_hid_provider.js +17 -7
  43. package/dist/hid/node_hid_provider.js.map +1 -1
  44. package/dist/hid/pairing_info.js +1 -2
  45. package/dist/hid/pairing_info.js.map +1 -1
  46. package/dist/hid/web_hid_provider.d.ts +0 -1
  47. package/dist/hid/web_hid_provider.d.ts.map +1 -1
  48. package/dist/hid/web_hid_provider.js +0 -1
  49. package/dist/hid/web_hid_provider.js.map +1 -1
  50. package/dist/input.d.ts.map +1 -1
  51. package/dist/input.js.map +1 -1
  52. package/dist/manager.d.ts.map +1 -1
  53. package/dist/manager.js +30 -31
  54. package/dist/manager.js.map +1 -1
  55. package/package.json +24 -51
  56. package/MIGRATION_GUIDE.md +0 -40
  57. package/SECURITY.md +0 -24
  58. package/nodehid_example/debug.ts +0 -273
  59. package/nodehid_example/dsp_explore.ts +0 -288
  60. package/nodehid_example/node-hid.js +0 -1
  61. package/nodehid_example/single.ts +0 -256
  62. package/nodehid_example/verify.ts +0 -499
  63. package/src/README.md +0 -28
  64. package/src/audio.ts +0 -91
  65. package/src/comparators.ts +0 -24
  66. package/src/dualsense.ts +0 -501
  67. package/src/elements/accelerometer.ts +0 -48
  68. package/src/elements/analog.spec.ts +0 -89
  69. package/src/elements/analog.ts +0 -133
  70. package/src/elements/audio.ts +0 -163
  71. package/src/elements/axis.spec.ts +0 -38
  72. package/src/elements/axis.ts +0 -50
  73. package/src/elements/battery.ts +0 -54
  74. package/src/elements/dpad.ts +0 -36
  75. package/src/elements/gyroscope.ts +0 -48
  76. package/src/elements/increment.ts +0 -7
  77. package/src/elements/index.ts +0 -22
  78. package/src/elements/lightbar.ts +0 -52
  79. package/src/elements/momentary.spec.ts +0 -54
  80. package/src/elements/momentary.ts +0 -9
  81. package/src/elements/motion.ts +0 -7
  82. package/src/elements/mute.ts +0 -20
  83. package/src/elements/player_leds.ts +0 -52
  84. package/src/elements/touch.ts +0 -17
  85. package/src/elements/touchpad.ts +0 -25
  86. package/src/elements/trigger.spec.ts +0 -38
  87. package/src/elements/trigger.ts +0 -29
  88. package/src/elements/trigger_feedback.ts +0 -267
  89. package/src/elements/unisense.ts +0 -59
  90. package/src/hid/battery_state.ts +0 -9
  91. package/src/hid/bt_checksum.spec.ts +0 -15
  92. package/src/hid/bt_checksum.ts +0 -97
  93. package/src/hid/byte_array.ts +0 -8
  94. package/src/hid/command.ts +0 -173
  95. package/src/hid/dsp.ts +0 -132
  96. package/src/hid/dualsense_hid.ts +0 -631
  97. package/src/hid/factory_info.ts +0 -206
  98. package/src/hid/firmware_info.ts +0 -157
  99. package/src/hid/hid_provider.spec.ts +0 -19
  100. package/src/hid/hid_provider.ts +0 -445
  101. package/src/hid/index.ts +0 -17
  102. package/src/hid/node_hid_provider.ts +0 -208
  103. package/src/hid/pairing_info.ts +0 -33
  104. package/src/hid/platform_hid_provider.ts +0 -4
  105. package/src/hid/web_hid_provider.ts +0 -316
  106. package/src/id.ts +0 -68
  107. package/src/index.ts +0 -13
  108. package/src/input.ts +0 -263
  109. package/src/manager.ts +0 -619
  110. package/src/math.ts +0 -14
  111. package/src/readme.spec.ts +0 -81
  112. package/tsconfig.build.json +0 -4
  113. package/tsconfig.json +0 -40
  114. package/webhid_example/README.md +0 -8
  115. package/webhid_example/build/404.html +0 -39
  116. package/webhid_example/build/README.md +0 -6
  117. package/webhid_example/build/asset-manifest.json +0 -33
  118. package/webhid_example/build/favicon-16x16.png +0 -0
  119. package/webhid_example/build/favicon-32x32.png +0 -0
  120. package/webhid_example/build/favicon.ico +0 -0
  121. package/webhid_example/build/index.html +0 -1
  122. package/webhid_example/build/logo192.png +0 -0
  123. package/webhid_example/build/logo512.png +0 -0
  124. package/webhid_example/build/manifest.json +0 -25
  125. package/webhid_example/build/robots.txt +0 -3
  126. package/webhid_example/build/static/css/main.9393bbb9.css +0 -2
  127. package/webhid_example/build/static/css/main.9393bbb9.css.map +0 -1
  128. package/webhid_example/build/static/js/787.b12b0301.chunk.js +0 -2
  129. package/webhid_example/build/static/js/787.b12b0301.chunk.js.map +0 -1
  130. package/webhid_example/build/static/js/blueprint-icons-16px-paths.0c2662b2.chunk.js +0 -2
  131. package/webhid_example/build/static/js/blueprint-icons-16px-paths.0c2662b2.chunk.js.map +0 -1
  132. package/webhid_example/build/static/js/blueprint-icons-20px-paths.e0ebc028.chunk.js +0 -2
  133. package/webhid_example/build/static/js/blueprint-icons-20px-paths.e0ebc028.chunk.js.map +0 -1
  134. package/webhid_example/build/static/js/blueprint-icons-all-paths-loader.53883a20.chunk.js +0 -2
  135. package/webhid_example/build/static/js/blueprint-icons-all-paths-loader.53883a20.chunk.js.map +0 -1
  136. package/webhid_example/build/static/js/blueprint-icons-all-paths.e643b2c5.chunk.js +0 -2
  137. package/webhid_example/build/static/js/blueprint-icons-all-paths.e643b2c5.chunk.js.map +0 -1
  138. package/webhid_example/build/static/js/blueprint-icons-split-paths-by-size-loader.6d8a31ce.chunk.js +0 -2
  139. package/webhid_example/build/static/js/blueprint-icons-split-paths-by-size-loader.6d8a31ce.chunk.js.map +0 -1
  140. package/webhid_example/build/static/js/main.e64bfdb3.js +0 -3
  141. package/webhid_example/build/static/js/main.e64bfdb3.js.LICENSE.txt +0 -72
  142. package/webhid_example/build/static/js/main.e64bfdb3.js.map +0 -1
  143. package/webhid_example/build/static/media/blueprint-icons-16.14e70b6793c6b84b0760.eot +0 -0
  144. package/webhid_example/build/static/media/blueprint-icons-16.4fdbe723235ba0fc46fb.ttf +0 -0
  145. package/webhid_example/build/static/media/blueprint-icons-16.582f87288ff1d1f0dfae.woff2 +0 -0
  146. package/webhid_example/build/static/media/blueprint-icons-16.f5b1a9d55dd59fe717ab.woff +0 -0
  147. package/webhid_example/build/static/media/blueprint-icons-20.5e8bcc2fa7b81492f163.ttf +0 -0
  148. package/webhid_example/build/static/media/blueprint-icons-20.7f441e84a24ef32d88d9.woff +0 -0
  149. package/webhid_example/build/static/media/blueprint-icons-20.f356a02cac03708c9328.woff2 +0 -0
  150. package/webhid_example/build/static/media/blueprint-icons-20.f7d18295d5c386a1a9b5.eot +0 -0
  151. package/webhid_example/package.json +0 -75
  152. package/webhid_example/public/404.html +0 -39
  153. package/webhid_example/public/README.md +0 -6
  154. package/webhid_example/public/favicon-16x16.png +0 -0
  155. package/webhid_example/public/favicon-32x32.png +0 -0
  156. package/webhid_example/public/favicon.ico +0 -0
  157. package/webhid_example/public/index.html +0 -50
  158. package/webhid_example/public/logo192.png +0 -0
  159. package/webhid_example/public/logo512.png +0 -0
  160. package/webhid_example/public/manifest.json +0 -25
  161. package/webhid_example/public/robots.txt +0 -3
  162. package/webhid_example/src/App.tsx +0 -686
  163. package/webhid_example/src/Controller.tsx +0 -38
  164. package/webhid_example/src/hud/AudioControls.tsx +0 -787
  165. package/webhid_example/src/hud/AudioIndicator.tsx +0 -116
  166. package/webhid_example/src/hud/BatteryIndicator.tsx +0 -83
  167. package/webhid_example/src/hud/BumperVisualization.tsx +0 -93
  168. package/webhid_example/src/hud/ColorIndicator.tsx +0 -72
  169. package/webhid_example/src/hud/ControllerConnection.tsx +0 -131
  170. package/webhid_example/src/hud/Debugger.tsx +0 -123
  171. package/webhid_example/src/hud/DpadVisualization.tsx +0 -146
  172. package/webhid_example/src/hud/FaceButtons.tsx +0 -162
  173. package/webhid_example/src/hud/Gyro.tsx +0 -173
  174. package/webhid_example/src/hud/HUDLayout.tsx +0 -6
  175. package/webhid_example/src/hud/LeftTrigger.tsx +0 -18
  176. package/webhid_example/src/hud/LightbarControls.tsx +0 -82
  177. package/webhid_example/src/hud/LightbarFadeButtons.tsx +0 -56
  178. package/webhid_example/src/hud/LightbarStrip.tsx +0 -88
  179. package/webhid_example/src/hud/MuteLedControls.tsx +0 -73
  180. package/webhid_example/src/hud/PlayerLedBar.tsx +0 -176
  181. package/webhid_example/src/hud/PlayerLedControls.tsx +0 -87
  182. package/webhid_example/src/hud/RenderedElement.tsx +0 -13
  183. package/webhid_example/src/hud/Reticle.tsx +0 -24
  184. package/webhid_example/src/hud/RightStick.tsx +0 -26
  185. package/webhid_example/src/hud/RightTrigger.tsx +0 -18
  186. package/webhid_example/src/hud/RumbleControl.tsx +0 -178
  187. package/webhid_example/src/hud/ShoulderVisualization.tsx +0 -247
  188. package/webhid_example/src/hud/Spinner.tsx +0 -53
  189. package/webhid_example/src/hud/StickVisualization.tsx +0 -68
  190. package/webhid_example/src/hud/TouchpadVisualization.tsx +0 -132
  191. package/webhid_example/src/hud/TriggerEffectControls.tsx +0 -536
  192. package/webhid_example/src/hud/TriggerVisualization.tsx +0 -99
  193. package/webhid_example/src/hud/UtilityButtons.tsx +0 -284
  194. package/webhid_example/src/hud/index.tsx +0 -34
  195. package/webhid_example/src/hud/react-zdog.d.ts +0 -37
  196. package/webhid_example/src/index.css +0 -25
  197. package/webhid_example/src/index.tsx +0 -24
  198. package/webhid_example/src/react-app-env.d.ts +0 -1
  199. package/webhid_example/src/reportWebVitals.ts +0 -15
  200. package/webhid_example/src/setupTests.ts +0 -1
  201. package/webhid_example/tsconfig.json +0 -26
  202. package/webpack.config.js +0 -42
package/CHANGELOG.md ADDED
@@ -0,0 +1,192 @@
1
+ # Changelog
2
+
3
+ All notable changes to `dualsense-ts` are documented here. This project uses [Semantic Versioning](https://semver.org/).
4
+
5
+ ## [6.9.0] - 2026-04-12
6
+
7
+ ### Added
8
+
9
+ - `dispose()` method on `Dualsense` and `DualsenseHID` for proper cleanup
10
+ - `exports` field in package.json for modern bundler/ESM resolution
11
+
12
+ ### Changed
13
+
14
+ - Upgraded Node 16 → 22, TypeScript 4.6 → 5.8, Jest 27 → 29, ESLint 8 → 9
15
+ - Migrated ESLint to flat config (`eslint.config.mjs`)
16
+ - Replaced `ts-node` with `tsx` for dev scripts
17
+ - Removed unused webpack dev server setup and 6 excess devDependencies
18
+ - Trimmed npm package from 437 files to ~170 (whitelist via `files` field)
19
+ - Updated CI workflow: modern action versions, `--frozen-lockfile`, build artifacts
20
+ - Expanded test suite from 26 to 200 tests across 25 suites
21
+
22
+ ### Fixed
23
+
24
+ - Timer leak in `Dualsense` and `DualsenseHID` (intervals not cleared on dispose)
25
+ - README syntax errors in code examples
26
+
27
+ ## [6.8.0] - 2026-04-12
28
+
29
+ ### Changed
30
+
31
+ - License changed to LGPL-v3
32
+
33
+ ## [6.7.0] - 2026-04-11
34
+
35
+ ### Added
36
+
37
+ - Audio support (speaker output)
38
+
39
+ ### Fixed
40
+
41
+ - Fixes for node-hid compatibility issues
42
+ - Fixes for rumble quirks
43
+
44
+ ## [6.6.0] - 2026-04-11
45
+
46
+ ### Added
47
+
48
+ - Mute LED override support
49
+
50
+ ## [6.5.0] - 2026-04-11
51
+
52
+ ### Added
53
+
54
+ - EventEmitter-style listener management (`on`, `off`, `once`, etc.)
55
+
56
+ ## [6.4.0] - 2026-04-11
57
+
58
+ ### Added
59
+
60
+ - Firmware version lookup
61
+ - Improved multi-controller behavior
62
+
63
+ ## [6.3.0] - 2026-04-04
64
+
65
+ ### Added
66
+
67
+ - Microphone and headphone detection
68
+
69
+ ## [6.2.0] - 2026-04-04
70
+
71
+ ### Added
72
+
73
+ - Multiplayer support (connect and manage multiple controllers)
74
+ - Seamless switching between wired and wireless connections
75
+
76
+ ### Fixed
77
+
78
+ - Bad browser fallback in demo app
79
+
80
+ ### Changed
81
+
82
+ - Improved the WebHID example/demo app
83
+
84
+ ## [6.1.0] - 2026-04-03
85
+
86
+ ### Added
87
+
88
+ - Light bar control (player LEDs and light bar color)
89
+ - Battery level readings
90
+
91
+ ## [6.0.0] - 2026-04-02
92
+
93
+ ### Added
94
+
95
+ - Trigger haptic feedback (adaptive triggers)
96
+ - Haptic feedback support over Bluetooth and WebHID
97
+
98
+ ### Changed
99
+
100
+ - **Breaking:** Haptics API restructured for trigger feedback support
101
+
102
+ ## [5.5.0] - 2023-11-26
103
+
104
+ ### Added
105
+
106
+ - Gyroscope and accelerometer (motion sensor) support
107
+
108
+ ## [5.4.0] - 2023-11-19
109
+
110
+ ### Fixed
111
+
112
+ - HID report mapping for all report styles (USB, Bluetooth, WebHID)
113
+ - D-pad input conflicts resolved
114
+
115
+ ## [5.3.0] - 2023-11-16
116
+
117
+ ### Added
118
+
119
+ - Debugging tools for inspecting controller state
120
+
121
+ ### Fixed
122
+
123
+ - GitHub Pages deployment for the demo app
124
+
125
+ ## [5.2.0] - 2023-11-15
126
+
127
+ ### Added
128
+
129
+ - Wired/wireless connection detection in WebHID mode
130
+
131
+ ## [5.1.0] - 2023-03-04
132
+
133
+ ### Added
134
+
135
+ - Rumble (haptic motor) support
136
+ - Tool for forcing wired/wireless behavior
137
+
138
+ ### Changed
139
+
140
+ - Enabled `@typescript-eslint/strict` for stricter type checking
141
+
142
+ ### Fixed
143
+
144
+ - Undefined `window` check for HID provider
145
+
146
+ ## [5.0.0] - 2022-10-10
147
+
148
+ ### Changed
149
+
150
+ - **Breaking:** No-throw constructor; the `Dualsense` constructor no longer throws when a controller is not connected
151
+ - New connection state interface for monitoring controller connectivity
152
+
153
+ ### Fixed
154
+
155
+ - Reduced excess analog input events
156
+ - Improved analog input handling
157
+
158
+ ## [4.0.0] - 2022-10-01
159
+
160
+ ### Changed
161
+
162
+ - **Breaking:** `node-hid` is now a peer dependency (consumers must install it themselves)
163
+
164
+ ### Fixed
165
+
166
+ - Excessive HID reconnect attempts
167
+ - Overhauled WebHID connection strategy for improved reliability
168
+ - Fixed bad HID connection check
169
+
170
+ ## [3.1.0] - 2022-09-03
171
+
172
+ ### Added
173
+
174
+ - Scaled deadzone for analog inputs (sticks and triggers)
175
+
176
+ ## [3.0.0] - 2022-07-15
177
+
178
+ ### Added
179
+
180
+ - **Breaking:** Browser support via WebHID API
181
+ - Tests and fixed default analog threshold
182
+
183
+ ## [2.2.0] - 2022-06-24
184
+
185
+ ### Changed
186
+
187
+ - Improved analog threshold setting
188
+ - Improved README examples
189
+
190
+ ## [2.1.39] - 2022-06-21
191
+
192
+ Initial tagged release. Basic DualSense controller support via `node-hid` with button, stick, and trigger inputs.