buttplug 3.2.2 → 4.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (179) hide show
  1. package/.eslintrc.js +25 -25
  2. package/.jscsrc +2 -2
  3. package/.jshintrc +5 -5
  4. package/.prettierrc.json +3 -3
  5. package/.yarnrc.yml +5 -5
  6. package/CHANGELOG.md +591 -577
  7. package/LICENSE +27 -27
  8. package/README.md +105 -97
  9. package/dist/main/src/client/ButtplugBrowserWebsocketClientConnector.js +6 -9
  10. package/dist/main/src/client/ButtplugBrowserWebsocketClientConnector.js.map +1 -1
  11. package/dist/main/src/client/{Client.d.ts → ButtplugClient.d.ts} +3 -4
  12. package/dist/main/src/client/ButtplugClient.js +232 -0
  13. package/dist/main/src/client/ButtplugClient.js.map +1 -0
  14. package/dist/main/src/client/ButtplugClientConnectorException.js +17 -7
  15. package/dist/main/src/client/ButtplugClientConnectorException.js.map +1 -1
  16. package/dist/main/src/client/ButtplugClientDevice.d.ts +13 -28
  17. package/dist/main/src/client/ButtplugClientDevice.js +105 -247
  18. package/dist/main/src/client/ButtplugClientDevice.js.map +1 -1
  19. package/dist/main/src/client/ButtplugClientDeviceCommand.d.ts +42 -0
  20. package/dist/main/src/client/ButtplugClientDeviceCommand.js +105 -0
  21. package/dist/main/src/client/ButtplugClientDeviceCommand.js.map +1 -0
  22. package/dist/main/src/client/ButtplugClientDeviceFeature.d.ts +18 -0
  23. package/dist/main/src/client/ButtplugClientDeviceFeature.js +166 -0
  24. package/dist/main/src/client/ButtplugClientDeviceFeature.js.map +1 -0
  25. package/dist/main/src/client/ButtplugNodeWebsocketClientConnector.d.ts +1 -8
  26. package/dist/main/src/client/ButtplugNodeWebsocketClientConnector.js +1 -4
  27. package/dist/main/src/client/ButtplugNodeWebsocketClientConnector.js.map +1 -1
  28. package/dist/main/src/core/Exceptions.js +27 -9
  29. package/dist/main/src/core/Exceptions.js.map +1 -1
  30. package/dist/main/src/core/Logging.js +12 -6
  31. package/dist/main/src/core/Logging.js.map +1 -1
  32. package/dist/main/src/core/Messages.d.ts +119 -230
  33. package/dist/main/src/core/Messages.js +50 -404
  34. package/dist/main/src/core/Messages.js.map +1 -1
  35. package/dist/main/src/index.d.ts +2 -2
  36. package/dist/main/src/index.js +4 -2
  37. package/dist/main/src/index.js.map +1 -1
  38. package/dist/main/src/utils/ButtplugBrowserWebsocketConnector.js +40 -52
  39. package/dist/main/src/utils/ButtplugBrowserWebsocketConnector.js.map +1 -1
  40. package/dist/main/src/utils/ButtplugMessageSorter.js +27 -15
  41. package/dist/main/src/utils/ButtplugMessageSorter.js.map +1 -1
  42. package/dist/main/src/utils/Utils.js +1 -2
  43. package/dist/main/src/utils/Utils.js.map +1 -1
  44. package/dist/web/buttplug.js +1 -38
  45. package/dist/web/buttplug.mjs +595 -1984
  46. package/dist/web/client/ButtplugBrowserWebsocketClientConnector.d.ts +0 -7
  47. package/dist/web/client/{Client.d.ts → ButtplugClient.d.ts} +3 -11
  48. package/dist/web/client/ButtplugClientConnectorException.d.ts +0 -7
  49. package/dist/web/client/ButtplugClientDevice.d.ts +14 -29
  50. package/dist/web/client/ButtplugClientDeviceCommand.d.ts +42 -0
  51. package/dist/web/client/ButtplugClientDeviceFeature.d.ts +18 -0
  52. package/dist/web/client/ButtplugNodeWebsocketClientConnector.d.ts +1 -15
  53. package/dist/web/client/IButtplugClientConnector.d.ts +0 -7
  54. package/dist/web/core/Exceptions.d.ts +1 -1
  55. package/dist/web/core/Logging.d.ts +0 -7
  56. package/dist/web/core/Messages.d.ts +119 -229
  57. package/dist/web/index.d.ts +2 -2
  58. package/dist/web/utils/ButtplugBrowserWebsocketConnector.d.ts +0 -7
  59. package/examples/node/SYNC_MANIFEST.md +105 -0
  60. package/examples/node/application-example.ts +213 -0
  61. package/examples/node/async-example.ts +124 -0
  62. package/examples/node/connection-example.ts +76 -0
  63. package/examples/node/device-control-example.ts +131 -0
  64. package/examples/node/device-enumeration-example.ts +86 -0
  65. package/examples/node/device-info-example.ts +131 -0
  66. package/examples/node/errors-example.ts +166 -0
  67. package/examples/node/package-lock.json +281 -0
  68. package/examples/node/package.json +25 -0
  69. package/examples/node/remote-connector-example.ts +84 -0
  70. package/examples/node/tsconfig.json +14 -0
  71. package/examples/web/application-example.js +197 -0
  72. package/examples/web/async-example.js +90 -0
  73. package/examples/web/device-control-example.js +87 -0
  74. package/examples/web/device-enumeration-example.js +49 -0
  75. package/examples/web/device-info-example.js +100 -0
  76. package/examples/web/errors-example.js +110 -0
  77. package/examples/web/index.html +55 -0
  78. package/examples/web/logging.js +42 -0
  79. package/examples/web/ping-timeout-example.js +59 -0
  80. package/examples/web/remote-connector-example.js +68 -0
  81. package/node-test.js +24 -0
  82. package/node-test.ts +23 -5
  83. package/package.json +85 -87
  84. package/src/client/ButtplugBrowserWebsocketClientConnector.ts +25 -25
  85. package/src/client/ButtplugClient.ts +242 -0
  86. package/src/client/ButtplugClientConnectorException.ts +16 -16
  87. package/src/client/ButtplugClientDevice.ts +178 -401
  88. package/src/client/ButtplugClientDeviceCommand.ts +112 -0
  89. package/src/client/ButtplugClientDeviceFeature.ts +138 -0
  90. package/src/client/ButtplugNodeWebsocketClientConnector.ts +17 -17
  91. package/src/client/IButtplugClientConnector.ts +18 -18
  92. package/src/core/Exceptions.ts +107 -101
  93. package/src/core/Logging.ts +197 -197
  94. package/src/core/Messages.ts +205 -480
  95. package/src/core/index.d.ts +4 -4
  96. package/src/index.ts +21 -19
  97. package/src/utils/ButtplugBrowserWebsocketConnector.ts +89 -89
  98. package/src/utils/ButtplugMessageSorter.ts +66 -65
  99. package/src/utils/Utils.ts +3 -3
  100. package/tsconfig.json +22 -22
  101. package/tsfmt.json +14 -14
  102. package/tslint.json +27 -27
  103. package/typedocconfig.js +6 -6
  104. package/vite.config.ts +26 -26
  105. package/dist/main/src/client/Client.js +0 -242
  106. package/dist/main/src/client/Client.js.map +0 -1
  107. package/dist/main/src/core/MessageUtils.d.ts +0 -10
  108. package/dist/main/src/core/MessageUtils.js +0 -65
  109. package/dist/main/src/core/MessageUtils.js.map +0 -1
  110. package/dist/web/core/MessageUtils.d.ts +0 -10
  111. package/doc/.nojekyll +0 -1
  112. package/doc/assets/highlight.css +0 -22
  113. package/doc/assets/main.js +0 -58
  114. package/doc/assets/search.js +0 -1
  115. package/doc/assets/style.css +0 -1280
  116. package/doc/classes/ButtplugBrowserWebsocketClientConnector.html +0 -234
  117. package/doc/classes/ButtplugClient.html +0 -331
  118. package/doc/classes/ButtplugClientConnectorException.html +0 -216
  119. package/doc/classes/ButtplugClientDevice.html +0 -489
  120. package/doc/classes/ButtplugDeviceError.html +0 -218
  121. package/doc/classes/ButtplugDeviceMessage.html +0 -165
  122. package/doc/classes/ButtplugError.html +0 -220
  123. package/doc/classes/ButtplugInitError.html +0 -218
  124. package/doc/classes/ButtplugLogger.html +0 -288
  125. package/doc/classes/ButtplugMessage.html +0 -147
  126. package/doc/classes/ButtplugMessageError.html +0 -218
  127. package/doc/classes/ButtplugMessageSorter.html +0 -128
  128. package/doc/classes/ButtplugNodeWebsocketClientConnector.html +0 -239
  129. package/doc/classes/ButtplugPingError.html +0 -218
  130. package/doc/classes/ButtplugSystemMessage.html +0 -150
  131. package/doc/classes/ButtplugUnknownError.html +0 -218
  132. package/doc/classes/DeviceAdded.html +0 -186
  133. package/doc/classes/DeviceInfo.html +0 -114
  134. package/doc/classes/DeviceList.html +0 -160
  135. package/doc/classes/DeviceRemoved.html +0 -158
  136. package/doc/classes/Error.html +0 -179
  137. package/doc/classes/GenericDeviceMessageAttributes.html +0 -107
  138. package/doc/classes/GenericMessageSubcommand.html +0 -90
  139. package/doc/classes/LinearCmd.html +0 -187
  140. package/doc/classes/LogMessage.html +0 -134
  141. package/doc/classes/MessageAttributes.html +0 -160
  142. package/doc/classes/Ok.html +0 -151
  143. package/doc/classes/Ping.html +0 -151
  144. package/doc/classes/RawDeviceMessageAttributes.html +0 -86
  145. package/doc/classes/RawReadCmd.html +0 -188
  146. package/doc/classes/RawReading.html +0 -179
  147. package/doc/classes/RawSubscribeCmd.html +0 -170
  148. package/doc/classes/RawUnsubscribeCmd.html +0 -170
  149. package/doc/classes/RawWriteCmd.html +0 -188
  150. package/doc/classes/RequestDeviceList.html +0 -151
  151. package/doc/classes/RequestServerInfo.html +0 -169
  152. package/doc/classes/RotateCmd.html +0 -187
  153. package/doc/classes/RotateSubcommand.html +0 -108
  154. package/doc/classes/ScalarCmd.html +0 -170
  155. package/doc/classes/ScalarSubcommand.html +0 -108
  156. package/doc/classes/ScanningFinished.html +0 -146
  157. package/doc/classes/SensorDeviceMessageAttributes.html +0 -107
  158. package/doc/classes/SensorReadCmd.html +0 -179
  159. package/doc/classes/SensorReading.html +0 -188
  160. package/doc/classes/ServerInfo.html +0 -178
  161. package/doc/classes/StartScanning.html +0 -151
  162. package/doc/classes/StopAllDevices.html +0 -151
  163. package/doc/classes/StopDeviceCmd.html +0 -161
  164. package/doc/classes/StopScanning.html +0 -151
  165. package/doc/classes/VectorSubcommand.html +0 -108
  166. package/doc/enums/ActuatorType.html +0 -104
  167. package/doc/enums/ButtplugLogLevel.html +0 -97
  168. package/doc/enums/ErrorClass.html +0 -90
  169. package/doc/enums/SensorType.html +0 -90
  170. package/doc/functions/FromJSON.html +0 -113
  171. package/doc/index.html +0 -184
  172. package/doc/interfaces/IButtplugClientConnector.html +0 -137
  173. package/doc/modules.html +0 -176
  174. package/doc/variables/DEFAULT_MESSAGE_ID.html +0 -104
  175. package/doc/variables/MAX_ID.html +0 -104
  176. package/doc/variables/MESSAGE_SPEC_VERSION.html +0 -104
  177. package/doc/variables/SYSTEM_MESSAGE_ID.html +0 -104
  178. package/src/client/Client.ts +0 -276
  179. package/src/core/MessageUtils.ts +0 -48
package/CHANGELOG.md CHANGED
@@ -1,577 +1,591 @@
1
- # v3.2.2 (2024/03/02)
2
-
3
- ## Bugfixes
4
-
5
- - Actually throw exceptions when there are websocket connection issues. (#257)
6
-
7
- # v3.2.1 (2023/09/23)
8
-
9
- ## Bugfixes
10
-
11
- - Fix issue with name minifying causing problems with class name reflection (again, see v3.1.0 notes
12
- for the first round of this)
13
-
14
- # v3.2.0 (2023/09/23)
15
-
16
- ## Features
17
-
18
- - Web package building now uses vite instead of webpack
19
- - Long live vite. May I never have to fucking deal with webpack ever again.
20
-
21
- ## Bugfixes
22
-
23
- - Cleaned up naming conventions
24
- - Changed connector interface (this is technically a breaking change but afaik no one else
25
- implements their own connector)
26
- - Fix linear attribute enumeration
27
-
28
- # v3.1.1 (2023/02/18)
29
-
30
- ## Bugfixes
31
-
32
- - Replace events with eventemitter3
33
- - API Compatible and easier for building across web/node
34
- - Remove blob reading from websocket connectors
35
- - We never use binary messages on websockets, and the extra filereader dep for node was
36
- causing issues with web builds.
37
-
38
- # v3.1.0 (2023/02/11)
39
-
40
- ## Features
41
-
42
- - Added support for Node Websockets via new connector class (#244)
43
-
44
- ## Bugfixes
45
-
46
- - Fixed issues with using buttplug-js in minified projects (#246)
47
- - Changed from type-based class resolution to static naming, class name mangling should no longer
48
- be an issue.
49
-
50
- # v3.0.0 (2022/12/30)
51
-
52
- ## Features
53
-
54
- - Back to pure Typescript. Back to the good shit.
55
- - Removed server
56
- - Brought implementation in line with the FFI Client API, so minimal changes should be needed for
57
- porting from v1.
58
-
59
- # v2.0.0
60
-
61
- ## Whatever
62
-
63
- - There is no buttplug-js v2
64
- - There is no Miss Zarves
65
- - (Version skipped to align JS and C# implementation versions, which will probably fall out of
66
- alignment again very quickly)
67
-
68
- # v1.0.16 (2021/10/16) (FFI Impl)
69
-
70
- ## Bugfixes
71
-
72
- - Revert WASM loading specification to fix webpack/MIME issues
73
-
74
- # v1.0.15 (2021/08/29) (FFI Impl)
75
-
76
- ## Features
77
-
78
- - Update to buttplug v5
79
-
80
- ## Bugfixes
81
-
82
- - Allow specification of WASM loading source for buttplug_init()
83
- - ButtplugClientDevice equality testing now works as expected
84
-
85
- # v1.0.14 (2021/03/21) (FFI Impl)
86
-
87
- ## Bugfixes
88
-
89
- - Actually fix #60 and #51
90
-
91
- # v1.0.13 (2021/03/21) (FFI Impl)
92
-
93
- ## Features
94
-
95
- - Update to buttplug-rs v2.1.7, adds Lovehoney Desire Egg support
96
-
97
- ## Bugfixes
98
-
99
- - #60: Expose Buttplug.Endpoint type publicly so Raw commands are usable
100
- - #59: Client device vibrate() call should take an array of numbers
101
- - #51: Fix ScanningFinished emission for WebBluetooth
102
-
103
- # v1.0.12 (2021/02/20) (FFI Impl)
104
-
105
- ## Bugfixes
106
-
107
- - Actually build the project before publishing this time. This is why I have CI. Why am I hand
108
- publish the project? (Because I am lazy. So lazy.)
109
-
110
- # v1.0.11 (2021/02/20)
111
-
112
- ## Bugfixes
113
-
114
- - Remove publicpath setting in CDN bundler.
115
-
116
- # v1.0.10 (2021/02/20) (FFI Impl)
117
-
118
- ## Bugfixes
119
-
120
- - Implement characteristic read in WebBluetooth WASM
121
- - Allows us to use the Handy on the web
122
-
123
- # v1.0.9 (2021/02/20) (FFI Impl)
124
-
125
- ## Bugfixes
126
-
127
- - Update to buttplug-rs v2.1.5. The Handy support, client connect race bugfixes, device
128
- disconnection panic bugfixes.
129
-
130
- # v1.0.8 (2021/02/10) (FFI Impl)
131
-
132
- ## Features
133
-
134
- - Update to buttplug-rs v2.1.3, lots more tests/fixes, Lovense Diamo support
135
- - Update to buttplug-rs-ffi core v1.0.12, fixes disconnect issues in WebBluetooth, updates
136
- connector API for buttplug-rs v2.1.x API
137
-
138
- # v1.0.7 (2021/01/24) (FFI Impl)
139
-
140
- ## Bugfixes
141
-
142
- - Update to buttplug-rs v2.0.5, fixes issue with DeviceMessageInfo deserialization
143
-
144
- # v1.0.6 (2021/01/24) (FFI Impl)
145
-
146
- ## Bugfixes
147
-
148
- - Print message and bail early if buttplugInit is called again after successful load.
149
- - This most likely exited quietly without breaking anything before, but now it's at least spewing
150
- some status too.
151
- - Update to buttplug-rs v2.0.4, fixing issues with native timers being compiled instead of WASM
152
- timers.
153
-
154
- # v1.0.5 (2021/01/22) (FFI Impl)
155
-
156
- ## Bugfixes
157
-
158
- - #49: Fix issue with incorrect type check on linear commands.
159
-
160
- # v1.0.4 (2021/01/21) (FFI Impl)
161
-
162
- ## Features
163
-
164
- - Update to Buttplug-rs v2.0.3
165
- - Fixes issues with Strokers/rotators not showing up due to invalid message attributes.
166
-
167
- # v1.0.3 (2021/01/18) (FFI Impl)
168
-
169
- ## Features
170
-
171
- - Update to Buttplug-rs v2.0.0
172
- - Lovense Ferri support
173
- - Init/Event API cleanup
174
- - Panic messages/stacks now emitted on WASM panic
175
-
176
- # v1.0.2 (2021/01/10) (FFI Impl)
177
-
178
- ## Features
179
-
180
- - Update to Buttplug-rs v1.0.5, with Libo and Prettylove support
181
-
182
- # v1.0.1 (2020/12/29) (FFI Impl)
183
-
184
- ## Bugfixes
185
-
186
- - Add protobufjs to dependencies, otherwise typescript compilation files during type resolution.
187
-
188
- # v1.0.0 (2020/12/27) (FFI Impl)
189
-
190
- ## Features
191
-
192
- - Update to Buttplug v1, with new device config file format.
193
- - Change package name back to "buttplug"
194
-
195
- # v1.0.0 Beta 7 (2020/12/20) (FFI Impl)
196
-
197
- ## Bugfixes
198
-
199
- - Fix browser websockets not throwing errors on invalid URLs or connection errors.
200
-
201
- # v1.0.0 Beta 6 (2020/12/20) (FFI Impl)
202
-
203
- ## Bugfixes
204
-
205
- - Fix webpack build/load strategies for static (CDN loadable) web package.
206
-
207
- # v1.0.0 Beta 5 (2020/12/19) (FFI Impl)
208
-
209
- ## Features
210
-
211
- - Completely rewrite surface API in Typescript, now uses core protobuf library, same as the other
212
- FFI layers.
213
- - Added log output capabilities (console only at the moment).
214
-
215
- # v1.0.0 Beta 4 (2020/12/05) (FFI Impl)
216
-
217
- ## Features
218
-
219
- - Actually throw error types instead of just casting to strings. Error types are reduces from Rust's
220
- verbose enums, but this is good enough.
221
- - Add stop() method to devices.
222
-
223
- # v1.0.0 Beta 3 (2020/12/04) (FFI Impl)
224
-
225
- ## API Changes
226
-
227
- - Make a single connect method on ButtplugClient
228
- - Brings API closer to other/old implementations
229
-
230
- # Version 0.13.2 - 2020/08/25
231
-
232
- ## Bugfixes
233
-
234
- - Make Android use WebBluetooth's acceptAllDevices so Lovense shows up again
235
- - namePrefix, which we use to wildcard Lovense devices, broke in Chrome 81.
236
- Fix is tracked for Chrome 87.
237
- - Fix type mismatch in inherited methods in ForwardedDeviceProtocol.
238
-
239
- # Version 0.13.1 - 2020/04/04
240
-
241
- ## Features
242
-
243
- - Added support for Connector Initializer
244
- - Allows using the Buttplug connector for auth or other communication before
245
- spinning up the protocol itself.
246
-
247
- # Version 0.13.0 - 2020/03/29
248
-
249
- ## Features
250
-
251
- - Added Device Forwarder Support
252
- - Allows developers to create a device manager that can accept "forwarded"
253
- devices from another client. Basically turns Buttplug into a full
254
- teledildonics system, using its own protocol.
255
- - ButtplugClientDevice now emits "deviceremoved" when it is disconnected.
256
- - This is alongside the client emitting it.
257
-
258
- ## Bugfixes
259
-
260
- - Fixed WeVibe Melt support
261
- - Fixed references to buttplug-server-cli in README
262
- - This is now at https://github.com/intiface/intiface-node-cli
263
-
264
- # Version 0.12.3 - 2020/03/25
265
-
266
- ## Features
267
-
268
- - Added Hardware Support
269
- - WebGamepad Haptics on Chrome
270
-
271
- # Version 0.12.2 - 2019/12/06
272
-
273
- ## Features
274
-
275
- - Added Hardware Support
276
- - WeVibe Vector
277
- - Magic Motion Vini, Fugu, Awaken, Equinox, Solstice
278
-
279
- # Version 0.12.1 - 2019/10/05
280
-
281
- ## Features
282
-
283
- - Add Motorbunny Support
284
-
285
- # Version 0.12.0 - 2019/07/27
286
-
287
- ## Features
288
-
289
- - Allow loading of device configuration file from CDN
290
- (https://buttplug-device-config.buttplug.io)
291
- - Remove yaml requirement for device config file, just use JSON (Saves
292
- 30% library size)
293
-
294
- # Version 0.11.8 - 2019/07/09
295
-
296
- ## Bugfixes
297
-
298
- - Updated built in device config file, including Cyclone SA fixes.
299
-
300
- # Version 0.11.7 - 2019/06/22
301
-
302
- ## Bugfixes
303
-
304
- - Dependency security updates
305
-
306
- # Version 0.11.6 - 2019/05/27
307
-
308
- ## Features
309
-
310
- - Added hardware support
311
- - Kiiroo Onyx 2
312
- - Kiiroo Pearl 2
313
- - Kiiroo/OhMiBod Fuse
314
- - Kiiroo Virtual Blowbot
315
- - Kiiroo Titan
316
- - Libo PiPiJing Elle/Whale
317
- - Libo Xiao Lu (Lottie)
318
- - Libo Lu Xiao Han (Lulu)
319
- - Libo Suo Yin Qiu (Karen)
320
- - Libo Bai Hu (LaLa)
321
- - Libo/Sistalk MonsterPub
322
- - Youcups Warrior 2
323
- - Vorze Bach
324
- - A whole bunch of Magic Motion toys I'm not gonna list here.
325
-
326
- # Version 0.11.5 - 2019/05/02
327
-
328
- ## Features
329
-
330
- - Change WebBluetooth calls to work with iOS WebBLE app
331
-
332
- # Version 0.11.3 - 2019/04/11
333
-
334
- ## Features
335
-
336
- - Updates dependencies, but otherwise this is a dependent library release.
337
-
338
- # Version 0.11.2 - 2019/03/16
339
-
340
- ## Bugfixes
341
-
342
- - Roll back to using webpack for web libraries until Rollup is fixed.
343
-
344
- # Version 0.11.1 - 2019/03/15
345
-
346
- ## Features
347
-
348
- - Update CLI to work with Intiface
349
- - That's it. No other changes. Maybe this Monorepo and lockstepped
350
- versioning thing wasn't such a good idea. :/
351
-
352
- # Version 0.11.0 - 2019/03/09
353
-
354
- ## Features
355
-
356
- - ButtplugBrowserWebsocketConnector now exported from library
357
- - Add ability to use Device Configuration files, eliminating need to
358
- change code to add devices to protocols we already support.
359
- - Add Youou Wand support
360
-
361
- ## Bugfixes
362
-
363
- - Fixed lots of unhandled promises, turning them into exception
364
- throws. Also now have a linter rule to make sure this doesn't happen
365
- again.
366
-
367
- ## Other
368
-
369
- - Moved CI to Azure Pipelines
370
- - Moved project to being a monorepo for all buttplug-js core library,
371
- device subtype manager, connector, and server CLI projects
372
- - Removed Devtools package for time being, needs to be turned into its
373
- own module.
374
- - Not currently building CLIs for windows, because noble-uwp was
375
- having some problems compiling.
376
- - Removed ConnectLocal/ConnectWebsocket functions from Client, now
377
- requires a connector object.
378
-
379
- # Version 0.10.0 - 2018/12/03
380
-
381
- - Add way to pass loggers into DeviceSubtypeManagers (to bridge module scope issues)
382
- - Fix type error for Device Manager message callbacks
383
-
384
- # Version 0.9.0 - 2018/12/02
385
-
386
- - Move core/Device to client/ButtplugClientDevice, since only client uses it.
387
- - Create convenience Device command functions on ButtplugClientDevice.
388
- - Add specific Buttplug exception types.
389
- - Fix up error handling to always throw exceptions.
390
- - Add connection semantics to server.
391
- - Update dependencies.
392
-
393
- # Version 0.8.3 - 2018/11/24
394
-
395
- - Added Lovense Osci support
396
- - Updated schema with bugfixes to generic commands
397
-
398
- # Version 0.8.2 - 2018/07/12
399
-
400
- - Add Vorze UFO SA support
401
-
402
- # Version 0.8.1 - 2018/07/02
403
-
404
- - Make DevTools/Simulator loadable as a module
405
- - Fix bug in characteristic map calculation (caused Fleshlight Launch to stop working on 0.8.0)
406
- - Fix output of speed/position values in Simulator
407
- - Fix bug in DeviceList message construction in Server
408
- - Various other Simulator fixes.
409
-
410
- # Version 0.8.0 - 2018/06/27
411
-
412
- - Add BLE GATT Characteristic reading functions
413
- - Add ability to derive Lovense hardware info from device queries (no more name/UUID chasing)
414
- - Namespace devtools CSS rules to fix issue with CSS conflicts in devtools
415
- - Change Signature of CreateSimple*Message functions (breaking change)
416
- - Add IsScanning boolean getter to Client
417
-
418
- # Version 0.7.1 - 2018/05/02
419
-
420
- - Extra build config changes to fix webpack issues
421
-
422
- # Version 0.7.0 - 2018/05/02
423
-
424
- - Rolling version number due to device API change (added "Disconnect" method)
425
- - Update to Webpack 4
426
- - Fix server cleanup on shutdown (remove listeners, disconnect devices)
427
- - Add more Lovense device names/info
428
-
429
- # Version 0.6.1 - 2018/03/08
430
-
431
- - Expose feature counts of device command messages
432
- - Add CreateSimple*Cmd functions
433
- - Add new Lovense and WeVibe device names
434
- - Device counts now start at 0 instead of 1
435
-
436
- # Version 0.6.0 - 2018/02/05
437
-
438
- - Rolling version number due to devtools API change
439
- - TestDeviceManager no longer a singleton. That was a bad idea in the first place.
440
- - TestDeviceManagerPanel now requires a ButtplugServer as a parameter
441
- - Added Connector getter in ButtplugClient, as sometimes it's handy to pull an embedded connector
442
- and get the Server from it (For things like the TestDeviceManagerPanel).
443
- - Devices now have internal IDs, so deviceadded isn't fired multiple times for the same device
444
- - Added basic MaxPro Smart Vibrator support
445
-
446
- # Version 0.5.3 - 2018/01/29
447
-
448
- - Fix bug in devtools web exports
449
- - Add more styles to log panel so outside styles don't affect it.
450
-
451
- # Version 0.5.2 - 2018/01/26
452
-
453
- - Fix webpack settings so mangling doesn't destroy parser
454
- - Add new IDs for Lovense Domi and Lush
455
-
456
- # Version 0.5.1 - 2018/01/23
457
-
458
- - Remove node websocket connector and server, since it doesn't build/include nicely as a submodule. (#87)
459
-
460
- # Version 0.5.0 - 2018/01/22
461
-
462
- - Added Buttplug Spec v1 implementation
463
- - More generic message types (VibrateCmd, RotateCmd, LinearCmd)
464
- - Message attributes (device feature counts)
465
- - Message downgrading capabilities
466
- - Added tests. So many tests.
467
- - Divided devtools into core and web directories
468
- - Updated devtools to depend on buttplug as an external library (makes file sizes smaller)
469
- - Library now uses es6 by default
470
- - Lots of bug fixes due to aforementioned tests (Wevibe control issues, missing error message, etc...)
471
-
472
- # Version 0.4.3 - 2018/01/16
473
-
474
- - Fix many logging bugs
475
- - Add more log messages to library
476
- - Add devtools module, with log viewer, test device manager, and device visualizer
477
- - Add Node websocket connector and server, for native server capabilities
478
-
479
- # Version 0.4.2 - 2018/01/08
480
-
481
- - Added support for new Lovense devices (Domi with new firmware)
482
-
483
- # Version 0.4.1 - 2018/01/07
484
-
485
- - Message types can now be accessed via getter ([Message].Type)
486
- - Client now emits "disconnect" event on disconnection (either user or server triggered)
487
- - Fixed bug where ping timer wouldn't stop on disconnect
488
- - Moved test system to jest
489
- - Removed dependency on text-encoding package
490
- - Added support for new Lovense devices (Hush with new firmware)
491
-
492
- # Version 0.4.0 - 2017/12/03
493
-
494
- - Add webpack config to build library for web on release
495
- - Expose IButtplugConnector for building external connector interfaces
496
- - Actually write usage information in the README
497
-
498
- # Version 0.3.2 - 2017/12/02
499
-
500
- - Remove dist from .gitignore in release branch. Again. Ugh.
501
-
502
- # Version 0.3.1 - 2017/12/02
503
-
504
- - Create generic connect function to allow users to define their own connectors
505
- - Documentation updates
506
- - Added more WeVibe names
507
-
508
- # Version 0.3.0 - 2017/10/29
509
-
510
- - Remove all default exports, require verbose include
511
- - Prepare library for use with node servers as well as web browser servers
512
-
513
- # Version 0.2.2 - 2017/10/28
514
-
515
- - Fix emission of "scanningfinished" event and message in client/server
516
-
517
- # Version 0.2.1 - 2017/10/11
518
-
519
- - Added WebBluetooth support for the Vorze A10 Cyclone
520
- - Fixed types in VorzeA10CycloneCmd message
521
-
522
- # Version 0.2.0 - 2017/10/08
523
-
524
- - Simplified Client types. Now one client type with Websocket and Local connection functions.
525
- - Fixed bug where outbound messages were not checked against the message schema.
526
-
527
- # Version 0.1.1 - 2017/10/06
528
-
529
- - Add Lovense Domi, WeVibe toy support to server
530
- - Add ability to query for browser Bluetooth Support in server
531
-
532
- # Version 0.1.0 - 2017/08/20
533
-
534
- - Added Server functionality, with WebBluetooth device manager
535
- - Added logging system
536
- - Fixed KiirooCmd format
537
-
538
- # Version 0.0.9 - 2017/07/22
539
-
540
- - Start cleaning up library to prepare for Server implementation
541
- - Add VorzeA10CycloneCmd message
542
-
543
- # Version 0.0.8 - 2017/07/21
544
-
545
- - Add JSON schema validation
546
-
547
- # Version 0.0.7 - 2017/07/19
548
-
549
- - Add StopAllDevices function to client
550
-
551
- # Version 0.0.6 - 2017/07/16
552
-
553
- - Update of v0.0.5 with built files included
554
-
555
- # Version 0.0.5 - 2017/07/16
556
-
557
- - Add client disconnect functionality
558
- - Test updates
559
-
560
- # Version 0.0.4 - 2017/07/13
561
-
562
- - Add ErrorCode support to error messages
563
- - tslint addition and cleanup
564
-
565
- # Version 0.0.3 - 2017/06/13
566
-
567
- - Repo cleanup, typescript library additions
568
-
569
- # Version 0.0.2 - 2017/06/11
570
-
571
- - First released version of library
572
- - Core device/message implementation
573
- - Simple webclient with ability to connect over websockets, get device lists, send device messages
574
-
575
- # Version 0.0.1 - 2016/07/08
576
-
577
- - Project Repo Started
1
+ # v4.0.1 (2026/04/05)
2
+
3
+ ## Bugfixes
4
+
5
+ - Fix issue with StopDeviceCmd still being sent when using npm package
6
+ - Fix issue with different decodes of DeviceList depending on server sent or requested
7
+
8
+ # v4.0.0 (2026/02/02)
9
+
10
+ ## Features
11
+
12
+ - Update to Buttplug Spec v4
13
+ - Basically a rewrite
14
+
15
+ # v3.2.2 (2024/03/02)
16
+
17
+ ## Bugfixes
18
+
19
+ - Actually throw exceptions when there are websocket connection issues. (#257)
20
+
21
+ # v3.2.1 (2023/09/23)
22
+
23
+ ## Bugfixes
24
+
25
+ - Fix issue with name minifying causing problems with class name reflection (again, see v3.1.0 notes
26
+ for the first round of this)
27
+
28
+ # v3.2.0 (2023/09/23)
29
+
30
+ ## Features
31
+
32
+ - Web package building now uses vite instead of webpack
33
+ - Long live vite. May I never have to fucking deal with webpack ever again.
34
+
35
+ ## Bugfixes
36
+
37
+ - Cleaned up naming conventions
38
+ - Changed connector interface (this is technically a breaking change but afaik no one else
39
+ implements their own connector)
40
+ - Fix linear attribute enumeration
41
+
42
+ # v3.1.1 (2023/02/18)
43
+
44
+ ## Bugfixes
45
+
46
+ - Replace events with eventemitter3
47
+ - API Compatible and easier for building across web/node
48
+ - Remove blob reading from websocket connectors
49
+ - We never use binary messages on websockets, and the extra filereader dep for node was
50
+ causing issues with web builds.
51
+
52
+ # v3.1.0 (2023/02/11)
53
+
54
+ ## Features
55
+
56
+ - Added support for Node Websockets via new connector class (#244)
57
+
58
+ ## Bugfixes
59
+
60
+ - Fixed issues with using buttplug-js in minified projects (#246)
61
+ - Changed from type-based class resolution to static naming, class name mangling should no longer
62
+ be an issue.
63
+
64
+ # v3.0.0 (2022/12/30)
65
+
66
+ ## Features
67
+
68
+ - Back to pure Typescript. Back to the good shit.
69
+ - Removed server
70
+ - Brought implementation in line with the FFI Client API, so minimal changes should be needed for
71
+ porting from v1.
72
+
73
+ # v2.0.0
74
+
75
+ ## Whatever
76
+
77
+ - There is no buttplug-js v2
78
+ - There is no Miss Zarves
79
+ - (Version skipped to align JS and C# implementation versions, which will probably fall out of
80
+ alignment again very quickly)
81
+
82
+ # v1.0.16 (2021/10/16) (FFI Impl)
83
+
84
+ ## Bugfixes
85
+
86
+ - Revert WASM loading specification to fix webpack/MIME issues
87
+
88
+ # v1.0.15 (2021/08/29) (FFI Impl)
89
+
90
+ ## Features
91
+
92
+ - Update to buttplug v5
93
+
94
+ ## Bugfixes
95
+
96
+ - Allow specification of WASM loading source for buttplug_init()
97
+ - ButtplugClientDevice equality testing now works as expected
98
+
99
+ # v1.0.14 (2021/03/21) (FFI Impl)
100
+
101
+ ## Bugfixes
102
+
103
+ - Actually fix #60 and #51
104
+
105
+ # v1.0.13 (2021/03/21) (FFI Impl)
106
+
107
+ ## Features
108
+
109
+ - Update to buttplug-rs v2.1.7, adds Lovehoney Desire Egg support
110
+
111
+ ## Bugfixes
112
+
113
+ - #60: Expose Buttplug.Endpoint type publicly so Raw commands are usable
114
+ - #59: Client device vibrate() call should take an array of numbers
115
+ - #51: Fix ScanningFinished emission for WebBluetooth
116
+
117
+ # v1.0.12 (2021/02/20) (FFI Impl)
118
+
119
+ ## Bugfixes
120
+
121
+ - Actually build the project before publishing this time. This is why I have CI. Why am I hand
122
+ publish the project? (Because I am lazy. So lazy.)
123
+
124
+ # v1.0.11 (2021/02/20)
125
+
126
+ ## Bugfixes
127
+
128
+ - Remove publicpath setting in CDN bundler.
129
+
130
+ # v1.0.10 (2021/02/20) (FFI Impl)
131
+
132
+ ## Bugfixes
133
+
134
+ - Implement characteristic read in WebBluetooth WASM
135
+ - Allows us to use the Handy on the web
136
+
137
+ # v1.0.9 (2021/02/20) (FFI Impl)
138
+
139
+ ## Bugfixes
140
+
141
+ - Update to buttplug-rs v2.1.5. The Handy support, client connect race bugfixes, device
142
+ disconnection panic bugfixes.
143
+
144
+ # v1.0.8 (2021/02/10) (FFI Impl)
145
+
146
+ ## Features
147
+
148
+ - Update to buttplug-rs v2.1.3, lots more tests/fixes, Lovense Diamo support
149
+ - Update to buttplug-rs-ffi core v1.0.12, fixes disconnect issues in WebBluetooth, updates
150
+ connector API for buttplug-rs v2.1.x API
151
+
152
+ # v1.0.7 (2021/01/24) (FFI Impl)
153
+
154
+ ## Bugfixes
155
+
156
+ - Update to buttplug-rs v2.0.5, fixes issue with DeviceMessageInfo deserialization
157
+
158
+ # v1.0.6 (2021/01/24) (FFI Impl)
159
+
160
+ ## Bugfixes
161
+
162
+ - Print message and bail early if buttplugInit is called again after successful load.
163
+ - This most likely exited quietly without breaking anything before, but now it's at least spewing
164
+ some status too.
165
+ - Update to buttplug-rs v2.0.4, fixing issues with native timers being compiled instead of WASM
166
+ timers.
167
+
168
+ # v1.0.5 (2021/01/22) (FFI Impl)
169
+
170
+ ## Bugfixes
171
+
172
+ - #49: Fix issue with incorrect type check on linear commands.
173
+
174
+ # v1.0.4 (2021/01/21) (FFI Impl)
175
+
176
+ ## Features
177
+
178
+ - Update to Buttplug-rs v2.0.3
179
+ - Fixes issues with Strokers/rotators not showing up due to invalid message attributes.
180
+
181
+ # v1.0.3 (2021/01/18) (FFI Impl)
182
+
183
+ ## Features
184
+
185
+ - Update to Buttplug-rs v2.0.0
186
+ - Lovense Ferri support
187
+ - Init/Event API cleanup
188
+ - Panic messages/stacks now emitted on WASM panic
189
+
190
+ # v1.0.2 (2021/01/10) (FFI Impl)
191
+
192
+ ## Features
193
+
194
+ - Update to Buttplug-rs v1.0.5, with Libo and Prettylove support
195
+
196
+ # v1.0.1 (2020/12/29) (FFI Impl)
197
+
198
+ ## Bugfixes
199
+
200
+ - Add protobufjs to dependencies, otherwise typescript compilation files during type resolution.
201
+
202
+ # v1.0.0 (2020/12/27) (FFI Impl)
203
+
204
+ ## Features
205
+
206
+ - Update to Buttplug v1, with new device config file format.
207
+ - Change package name back to "buttplug"
208
+
209
+ # v1.0.0 Beta 7 (2020/12/20) (FFI Impl)
210
+
211
+ ## Bugfixes
212
+
213
+ - Fix browser websockets not throwing errors on invalid URLs or connection errors.
214
+
215
+ # v1.0.0 Beta 6 (2020/12/20) (FFI Impl)
216
+
217
+ ## Bugfixes
218
+
219
+ - Fix webpack build/load strategies for static (CDN loadable) web package.
220
+
221
+ # v1.0.0 Beta 5 (2020/12/19) (FFI Impl)
222
+
223
+ ## Features
224
+
225
+ - Completely rewrite surface API in Typescript, now uses core protobuf library, same as the other
226
+ FFI layers.
227
+ - Added log output capabilities (console only at the moment).
228
+
229
+ # v1.0.0 Beta 4 (2020/12/05) (FFI Impl)
230
+
231
+ ## Features
232
+
233
+ - Actually throw error types instead of just casting to strings. Error types are reduces from Rust's
234
+ verbose enums, but this is good enough.
235
+ - Add stop() method to devices.
236
+
237
+ # v1.0.0 Beta 3 (2020/12/04) (FFI Impl)
238
+
239
+ ## API Changes
240
+
241
+ - Make a single connect method on ButtplugClient
242
+ - Brings API closer to other/old implementations
243
+
244
+ # Version 0.13.2 - 2020/08/25
245
+
246
+ ## Bugfixes
247
+
248
+ - Make Android use WebBluetooth's acceptAllDevices so Lovense shows up again
249
+ - namePrefix, which we use to wildcard Lovense devices, broke in Chrome 81.
250
+ Fix is tracked for Chrome 87.
251
+ - Fix type mismatch in inherited methods in ForwardedDeviceProtocol.
252
+
253
+ # Version 0.13.1 - 2020/04/04
254
+
255
+ ## Features
256
+
257
+ - Added support for Connector Initializer
258
+ - Allows using the Buttplug connector for auth or other communication before
259
+ spinning up the protocol itself.
260
+
261
+ # Version 0.13.0 - 2020/03/29
262
+
263
+ ## Features
264
+
265
+ - Added Device Forwarder Support
266
+ - Allows developers to create a device manager that can accept "forwarded"
267
+ devices from another client. Basically turns Buttplug into a full
268
+ teledildonics system, using its own protocol.
269
+ - ButtplugClientDevice now emits "deviceremoved" when it is disconnected.
270
+ - This is alongside the client emitting it.
271
+
272
+ ## Bugfixes
273
+
274
+ - Fixed WeVibe Melt support
275
+ - Fixed references to buttplug-server-cli in README
276
+ - This is now at https://github.com/intiface/intiface-node-cli
277
+
278
+ # Version 0.12.3 - 2020/03/25
279
+
280
+ ## Features
281
+
282
+ - Added Hardware Support
283
+ - WebGamepad Haptics on Chrome
284
+
285
+ # Version 0.12.2 - 2019/12/06
286
+
287
+ ## Features
288
+
289
+ - Added Hardware Support
290
+ - WeVibe Vector
291
+ - Magic Motion Vini, Fugu, Awaken, Equinox, Solstice
292
+
293
+ # Version 0.12.1 - 2019/10/05
294
+
295
+ ## Features
296
+
297
+ - Add Motorbunny Support
298
+
299
+ # Version 0.12.0 - 2019/07/27
300
+
301
+ ## Features
302
+
303
+ - Allow loading of device configuration file from CDN
304
+ (https://buttplug-device-config.buttplug.io)
305
+ - Remove yaml requirement for device config file, just use JSON (Saves
306
+ 30% library size)
307
+
308
+ # Version 0.11.8 - 2019/07/09
309
+
310
+ ## Bugfixes
311
+
312
+ - Updated built in device config file, including Cyclone SA fixes.
313
+
314
+ # Version 0.11.7 - 2019/06/22
315
+
316
+ ## Bugfixes
317
+
318
+ - Dependency security updates
319
+
320
+ # Version 0.11.6 - 2019/05/27
321
+
322
+ ## Features
323
+
324
+ - Added hardware support
325
+ - Kiiroo Onyx 2
326
+ - Kiiroo Pearl 2
327
+ - Kiiroo/OhMiBod Fuse
328
+ - Kiiroo Virtual Blowbot
329
+ - Kiiroo Titan
330
+ - Libo PiPiJing Elle/Whale
331
+ - Libo Xiao Lu (Lottie)
332
+ - Libo Lu Xiao Han (Lulu)
333
+ - Libo Suo Yin Qiu (Karen)
334
+ - Libo Bai Hu (LaLa)
335
+ - Libo/Sistalk MonsterPub
336
+ - Youcups Warrior 2
337
+ - Vorze Bach
338
+ - A whole bunch of Magic Motion toys I'm not gonna list here.
339
+
340
+ # Version 0.11.5 - 2019/05/02
341
+
342
+ ## Features
343
+
344
+ - Change WebBluetooth calls to work with iOS WebBLE app
345
+
346
+ # Version 0.11.3 - 2019/04/11
347
+
348
+ ## Features
349
+
350
+ - Updates dependencies, but otherwise this is a dependent library release.
351
+
352
+ # Version 0.11.2 - 2019/03/16
353
+
354
+ ## Bugfixes
355
+
356
+ - Roll back to using webpack for web libraries until Rollup is fixed.
357
+
358
+ # Version 0.11.1 - 2019/03/15
359
+
360
+ ## Features
361
+
362
+ - Update CLI to work with Intiface
363
+ - That's it. No other changes. Maybe this Monorepo and lockstepped
364
+ versioning thing wasn't such a good idea. :/
365
+
366
+ # Version 0.11.0 - 2019/03/09
367
+
368
+ ## Features
369
+
370
+ - ButtplugBrowserWebsocketConnector now exported from library
371
+ - Add ability to use Device Configuration files, eliminating need to
372
+ change code to add devices to protocols we already support.
373
+ - Add Youou Wand support
374
+
375
+ ## Bugfixes
376
+
377
+ - Fixed lots of unhandled promises, turning them into exception
378
+ throws. Also now have a linter rule to make sure this doesn't happen
379
+ again.
380
+
381
+ ## Other
382
+
383
+ - Moved CI to Azure Pipelines
384
+ - Moved project to being a monorepo for all buttplug-js core library,
385
+ device subtype manager, connector, and server CLI projects
386
+ - Removed Devtools package for time being, needs to be turned into its
387
+ own module.
388
+ - Not currently building CLIs for windows, because noble-uwp was
389
+ having some problems compiling.
390
+ - Removed ConnectLocal/ConnectWebsocket functions from Client, now
391
+ requires a connector object.
392
+
393
+ # Version 0.10.0 - 2018/12/03
394
+
395
+ - Add way to pass loggers into DeviceSubtypeManagers (to bridge module scope issues)
396
+ - Fix type error for Device Manager message callbacks
397
+
398
+ # Version 0.9.0 - 2018/12/02
399
+
400
+ - Move core/Device to client/ButtplugClientDevice, since only client uses it.
401
+ - Create convenience Device command functions on ButtplugClientDevice.
402
+ - Add specific Buttplug exception types.
403
+ - Fix up error handling to always throw exceptions.
404
+ - Add connection semantics to server.
405
+ - Update dependencies.
406
+
407
+ # Version 0.8.3 - 2018/11/24
408
+
409
+ - Added Lovense Osci support
410
+ - Updated schema with bugfixes to generic commands
411
+
412
+ # Version 0.8.2 - 2018/07/12
413
+
414
+ - Add Vorze UFO SA support
415
+
416
+ # Version 0.8.1 - 2018/07/02
417
+
418
+ - Make DevTools/Simulator loadable as a module
419
+ - Fix bug in characteristic map calculation (caused Fleshlight Launch to stop working on 0.8.0)
420
+ - Fix output of speed/position values in Simulator
421
+ - Fix bug in DeviceList message construction in Server
422
+ - Various other Simulator fixes.
423
+
424
+ # Version 0.8.0 - 2018/06/27
425
+
426
+ - Add BLE GATT Characteristic reading functions
427
+ - Add ability to derive Lovense hardware info from device queries (no more name/UUID chasing)
428
+ - Namespace devtools CSS rules to fix issue with CSS conflicts in devtools
429
+ - Change Signature of CreateSimple*Message functions (breaking change)
430
+ - Add IsScanning boolean getter to Client
431
+
432
+ # Version 0.7.1 - 2018/05/02
433
+
434
+ - Extra build config changes to fix webpack issues
435
+
436
+ # Version 0.7.0 - 2018/05/02
437
+
438
+ - Rolling version number due to device API change (added "Disconnect" method)
439
+ - Update to Webpack 4
440
+ - Fix server cleanup on shutdown (remove listeners, disconnect devices)
441
+ - Add more Lovense device names/info
442
+
443
+ # Version 0.6.1 - 2018/03/08
444
+
445
+ - Expose feature counts of device command messages
446
+ - Add CreateSimple*Cmd functions
447
+ - Add new Lovense and WeVibe device names
448
+ - Device counts now start at 0 instead of 1
449
+
450
+ # Version 0.6.0 - 2018/02/05
451
+
452
+ - Rolling version number due to devtools API change
453
+ - TestDeviceManager no longer a singleton. That was a bad idea in the first place.
454
+ - TestDeviceManagerPanel now requires a ButtplugServer as a parameter
455
+ - Added Connector getter in ButtplugClient, as sometimes it's handy to pull an embedded connector
456
+ and get the Server from it (For things like the TestDeviceManagerPanel).
457
+ - Devices now have internal IDs, so deviceadded isn't fired multiple times for the same device
458
+ - Added basic MaxPro Smart Vibrator support
459
+
460
+ # Version 0.5.3 - 2018/01/29
461
+
462
+ - Fix bug in devtools web exports
463
+ - Add more styles to log panel so outside styles don't affect it.
464
+
465
+ # Version 0.5.2 - 2018/01/26
466
+
467
+ - Fix webpack settings so mangling doesn't destroy parser
468
+ - Add new IDs for Lovense Domi and Lush
469
+
470
+ # Version 0.5.1 - 2018/01/23
471
+
472
+ - Remove node websocket connector and server, since it doesn't build/include nicely as a submodule. (#87)
473
+
474
+ # Version 0.5.0 - 2018/01/22
475
+
476
+ - Added Buttplug Spec v1 implementation
477
+ - More generic message types (VibrateCmd, RotateCmd, LinearCmd)
478
+ - Message attributes (device feature counts)
479
+ - Message downgrading capabilities
480
+ - Added tests. So many tests.
481
+ - Divided devtools into core and web directories
482
+ - Updated devtools to depend on buttplug as an external library (makes file sizes smaller)
483
+ - Library now uses es6 by default
484
+ - Lots of bug fixes due to aforementioned tests (Wevibe control issues, missing error message, etc...)
485
+
486
+ # Version 0.4.3 - 2018/01/16
487
+
488
+ - Fix many logging bugs
489
+ - Add more log messages to library
490
+ - Add devtools module, with log viewer, test device manager, and device visualizer
491
+ - Add Node websocket connector and server, for native server capabilities
492
+
493
+ # Version 0.4.2 - 2018/01/08
494
+
495
+ - Added support for new Lovense devices (Domi with new firmware)
496
+
497
+ # Version 0.4.1 - 2018/01/07
498
+
499
+ - Message types can now be accessed via getter ([Message].Type)
500
+ - Client now emits "disconnect" event on disconnection (either user or server triggered)
501
+ - Fixed bug where ping timer wouldn't stop on disconnect
502
+ - Moved test system to jest
503
+ - Removed dependency on text-encoding package
504
+ - Added support for new Lovense devices (Hush with new firmware)
505
+
506
+ # Version 0.4.0 - 2017/12/03
507
+
508
+ - Add webpack config to build library for web on release
509
+ - Expose IButtplugConnector for building external connector interfaces
510
+ - Actually write usage information in the README
511
+
512
+ # Version 0.3.2 - 2017/12/02
513
+
514
+ - Remove dist from .gitignore in release branch. Again. Ugh.
515
+
516
+ # Version 0.3.1 - 2017/12/02
517
+
518
+ - Create generic connect function to allow users to define their own connectors
519
+ - Documentation updates
520
+ - Added more WeVibe names
521
+
522
+ # Version 0.3.0 - 2017/10/29
523
+
524
+ - Remove all default exports, require verbose include
525
+ - Prepare library for use with node servers as well as web browser servers
526
+
527
+ # Version 0.2.2 - 2017/10/28
528
+
529
+ - Fix emission of "scanningfinished" event and message in client/server
530
+
531
+ # Version 0.2.1 - 2017/10/11
532
+
533
+ - Added WebBluetooth support for the Vorze A10 Cyclone
534
+ - Fixed types in VorzeA10CycloneCmd message
535
+
536
+ # Version 0.2.0 - 2017/10/08
537
+
538
+ - Simplified Client types. Now one client type with Websocket and Local connection functions.
539
+ - Fixed bug where outbound messages were not checked against the message schema.
540
+
541
+ # Version 0.1.1 - 2017/10/06
542
+
543
+ - Add Lovense Domi, WeVibe toy support to server
544
+ - Add ability to query for browser Bluetooth Support in server
545
+
546
+ # Version 0.1.0 - 2017/08/20
547
+
548
+ - Added Server functionality, with WebBluetooth device manager
549
+ - Added logging system
550
+ - Fixed KiirooCmd format
551
+
552
+ # Version 0.0.9 - 2017/07/22
553
+
554
+ - Start cleaning up library to prepare for Server implementation
555
+ - Add VorzeA10CycloneCmd message
556
+
557
+ # Version 0.0.8 - 2017/07/21
558
+
559
+ - Add JSON schema validation
560
+
561
+ # Version 0.0.7 - 2017/07/19
562
+
563
+ - Add StopAllDevices function to client
564
+
565
+ # Version 0.0.6 - 2017/07/16
566
+
567
+ - Update of v0.0.5 with built files included
568
+
569
+ # Version 0.0.5 - 2017/07/16
570
+
571
+ - Add client disconnect functionality
572
+ - Test updates
573
+
574
+ # Version 0.0.4 - 2017/07/13
575
+
576
+ - Add ErrorCode support to error messages
577
+ - tslint addition and cleanup
578
+
579
+ # Version 0.0.3 - 2017/06/13
580
+
581
+ - Repo cleanup, typescript library additions
582
+
583
+ # Version 0.0.2 - 2017/06/11
584
+
585
+ - First released version of library
586
+ - Core device/message implementation
587
+ - Simple webclient with ability to connect over websockets, get device lists, send device messages
588
+
589
+ # Version 0.0.1 - 2016/07/08
590
+
591
+ - Project Repo Started