buttplug 3.2.1 → 4.0.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 (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 -1
  6. package/CHANGELOG.md +577 -571
  7. package/LICENSE +27 -27
  8. package/README.md +97 -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 +227 -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 +118 -228
  33. package/dist/main/src/core/Messages.js +51 -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 +118 -227
  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 +209 -480
  95. package/src/core/index.d.ts +4 -4
  96. package/src/index.ts +21 -19
  97. package/src/utils/ButtplugBrowserWebsocketConnector.ts +89 -92
  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
@@ -1,197 +1,197 @@
1
- /*!
2
- * Buttplug JS Source Code File - Visit https://buttplug.io for more info about
3
- * the project. Licensed under the BSD 3-Clause license. See LICENSE file in the
4
- * project root for full license information.
5
- *
6
- * @copyright Copyright (c) Nonpolynomial Labs LLC. All rights reserved.
7
- */
8
-
9
- import { EventEmitter } from 'eventemitter3';
10
-
11
- export enum ButtplugLogLevel {
12
- Off,
13
- Error,
14
- Warn,
15
- Info,
16
- Debug,
17
- Trace,
18
- }
19
-
20
- /**
21
- * Representation of log messages for the internal logging utility.
22
- */
23
- export class LogMessage {
24
- /** Timestamp for the log message */
25
- private timestamp: string;
26
-
27
- /** Log Message */
28
- private logMessage: string;
29
-
30
- /** Log Level */
31
- private logLevel: ButtplugLogLevel;
32
-
33
- /**
34
- * @param logMessage Log message.
35
- * @param logLevel: Log severity level.
36
- */
37
- public constructor(logMessage: string, logLevel: ButtplugLogLevel) {
38
- const a = new Date();
39
- const hour = a.getHours();
40
- const min = a.getMinutes();
41
- const sec = a.getSeconds();
42
- this.timestamp = `${hour}:${min}:${sec}`;
43
- this.logMessage = logMessage;
44
- this.logLevel = logLevel;
45
- }
46
-
47
- /**
48
- * Returns the log message.
49
- */
50
- public get Message() {
51
- return this.logMessage;
52
- }
53
-
54
- /**
55
- * Returns the log message level.
56
- */
57
- public get LogLevel() {
58
- return this.logLevel;
59
- }
60
-
61
- /**
62
- * Returns the log message timestamp.
63
- */
64
- public get Timestamp() {
65
- return this.timestamp;
66
- }
67
-
68
- /**
69
- * Returns a formatted string with timestamp, level, and message.
70
- */
71
- public get FormattedMessage() {
72
- return `${ButtplugLogLevel[this.logLevel]} : ${this.timestamp} : ${
73
- this.logMessage
74
- }`;
75
- }
76
- }
77
-
78
- /**
79
- * Simple, global logging utility for the Buttplug client and server. Keeps an
80
- * internal static reference to an instance of itself (singleton pattern,
81
- * basically), and allows message logging throughout the module.
82
- */
83
- export class ButtplugLogger extends EventEmitter {
84
- /** Singleton instance for the logger */
85
- protected static sLogger: ButtplugLogger | undefined = undefined;
86
- /** Sets maximum log level to log to console */
87
- protected maximumConsoleLogLevel: ButtplugLogLevel = ButtplugLogLevel.Off;
88
- /** Sets maximum log level for all log messages */
89
- protected maximumEventLogLevel: ButtplugLogLevel = ButtplugLogLevel.Off;
90
-
91
- /**
92
- * Returns the stored static instance of the logger, creating one if it
93
- * doesn't currently exist.
94
- */
95
- public static get Logger(): ButtplugLogger {
96
- if (ButtplugLogger.sLogger === undefined) {
97
- ButtplugLogger.sLogger = new ButtplugLogger();
98
- }
99
- return this.sLogger!;
100
- }
101
-
102
- /**
103
- * Constructor. Can only be called internally since we regulate ButtplugLogger
104
- * ownership.
105
- */
106
- protected constructor() {
107
- super();
108
- }
109
-
110
- /**
111
- * Set the maximum log level to output to console.
112
- */
113
- public get MaximumConsoleLogLevel() {
114
- return this.maximumConsoleLogLevel;
115
- }
116
-
117
- /**
118
- * Get the maximum log level to output to console.
119
- */
120
- public set MaximumConsoleLogLevel(buttplugLogLevel: ButtplugLogLevel) {
121
- this.maximumConsoleLogLevel = buttplugLogLevel;
122
- }
123
-
124
- /**
125
- * Set the global maximum log level
126
- */
127
- public get MaximumEventLogLevel() {
128
- return this.maximumEventLogLevel;
129
- }
130
-
131
- /**
132
- * Get the global maximum log level
133
- */
134
- public set MaximumEventLogLevel(logLevel: ButtplugLogLevel) {
135
- this.maximumEventLogLevel = logLevel;
136
- }
137
-
138
- /**
139
- * Log new message at Error level.
140
- */
141
- public Error(msg: string) {
142
- this.AddLogMessage(msg, ButtplugLogLevel.Error);
143
- }
144
-
145
- /**
146
- * Log new message at Warn level.
147
- */
148
- public Warn(msg: string) {
149
- this.AddLogMessage(msg, ButtplugLogLevel.Warn);
150
- }
151
-
152
- /**
153
- * Log new message at Info level.
154
- */
155
- public Info(msg: string) {
156
- this.AddLogMessage(msg, ButtplugLogLevel.Info);
157
- }
158
-
159
- /**
160
- * Log new message at Debug level.
161
- */
162
- public Debug(msg: string) {
163
- this.AddLogMessage(msg, ButtplugLogLevel.Debug);
164
- }
165
-
166
- /**
167
- * Log new message at Trace level.
168
- */
169
- public Trace(msg: string) {
170
- this.AddLogMessage(msg, ButtplugLogLevel.Trace);
171
- }
172
-
173
- /**
174
- * Checks to see if message should be logged, and if so, adds message to the
175
- * log buffer. May also print message and emit event.
176
- */
177
- protected AddLogMessage(msg: string, level: ButtplugLogLevel) {
178
- // If nothing wants the log message we have, ignore it.
179
- if (
180
- level > this.maximumEventLogLevel &&
181
- level > this.maximumConsoleLogLevel
182
- ) {
183
- return;
184
- }
185
- const logMsg = new LogMessage(msg, level);
186
- // Clients and console logging may have different needs. For instance, it
187
- // could be that the client requests trace level, while all we want in the
188
- // console is info level. This makes sure the client can't also spam the
189
- // console.
190
- if (level <= this.maximumConsoleLogLevel) {
191
- console.log(logMsg.FormattedMessage);
192
- }
193
- if (level <= this.maximumEventLogLevel) {
194
- this.emit('log', logMsg);
195
- }
196
- }
197
- }
1
+ /*!
2
+ * Buttplug JS Source Code File - Visit https://buttplug.io for more info about
3
+ * the project. Licensed under the BSD 3-Clause license. See LICENSE file in the
4
+ * project root for full license information.
5
+ *
6
+ * @copyright Copyright (c) Nonpolynomial Labs LLC. All rights reserved.
7
+ */
8
+
9
+ import { EventEmitter } from 'eventemitter3';
10
+
11
+ export enum ButtplugLogLevel {
12
+ Off,
13
+ Error,
14
+ Warn,
15
+ Info,
16
+ Debug,
17
+ Trace,
18
+ }
19
+
20
+ /**
21
+ * Representation of log messages for the internal logging utility.
22
+ */
23
+ export class LogMessage {
24
+ /** Timestamp for the log message */
25
+ private timestamp: string;
26
+
27
+ /** Log Message */
28
+ private logMessage: string;
29
+
30
+ /** Log Level */
31
+ private logLevel: ButtplugLogLevel;
32
+
33
+ /**
34
+ * @param logMessage Log message.
35
+ * @param logLevel: Log severity level.
36
+ */
37
+ public constructor(logMessage: string, logLevel: ButtplugLogLevel) {
38
+ const a = new Date();
39
+ const hour = a.getHours();
40
+ const min = a.getMinutes();
41
+ const sec = a.getSeconds();
42
+ this.timestamp = `${hour}:${min}:${sec}`;
43
+ this.logMessage = logMessage;
44
+ this.logLevel = logLevel;
45
+ }
46
+
47
+ /**
48
+ * Returns the log message.
49
+ */
50
+ public get Message() {
51
+ return this.logMessage;
52
+ }
53
+
54
+ /**
55
+ * Returns the log message level.
56
+ */
57
+ public get LogLevel() {
58
+ return this.logLevel;
59
+ }
60
+
61
+ /**
62
+ * Returns the log message timestamp.
63
+ */
64
+ public get Timestamp() {
65
+ return this.timestamp;
66
+ }
67
+
68
+ /**
69
+ * Returns a formatted string with timestamp, level, and message.
70
+ */
71
+ public get FormattedMessage() {
72
+ return `${ButtplugLogLevel[this.logLevel]} : ${this.timestamp} : ${
73
+ this.logMessage
74
+ }`;
75
+ }
76
+ }
77
+
78
+ /**
79
+ * Simple, global logging utility for the Buttplug client and server. Keeps an
80
+ * internal static reference to an instance of itself (singleton pattern,
81
+ * basically), and allows message logging throughout the module.
82
+ */
83
+ export class ButtplugLogger extends EventEmitter {
84
+ /** Singleton instance for the logger */
85
+ protected static sLogger: ButtplugLogger | undefined = undefined;
86
+ /** Sets maximum log level to log to console */
87
+ protected maximumConsoleLogLevel: ButtplugLogLevel = ButtplugLogLevel.Off;
88
+ /** Sets maximum log level for all log messages */
89
+ protected maximumEventLogLevel: ButtplugLogLevel = ButtplugLogLevel.Off;
90
+
91
+ /**
92
+ * Returns the stored static instance of the logger, creating one if it
93
+ * doesn't currently exist.
94
+ */
95
+ public static get Logger(): ButtplugLogger {
96
+ if (ButtplugLogger.sLogger === undefined) {
97
+ ButtplugLogger.sLogger = new ButtplugLogger();
98
+ }
99
+ return this.sLogger!;
100
+ }
101
+
102
+ /**
103
+ * Constructor. Can only be called internally since we regulate ButtplugLogger
104
+ * ownership.
105
+ */
106
+ protected constructor() {
107
+ super();
108
+ }
109
+
110
+ /**
111
+ * Set the maximum log level to output to console.
112
+ */
113
+ public get MaximumConsoleLogLevel() {
114
+ return this.maximumConsoleLogLevel;
115
+ }
116
+
117
+ /**
118
+ * Get the maximum log level to output to console.
119
+ */
120
+ public set MaximumConsoleLogLevel(buttplugLogLevel: ButtplugLogLevel) {
121
+ this.maximumConsoleLogLevel = buttplugLogLevel;
122
+ }
123
+
124
+ /**
125
+ * Set the global maximum log level
126
+ */
127
+ public get MaximumEventLogLevel() {
128
+ return this.maximumEventLogLevel;
129
+ }
130
+
131
+ /**
132
+ * Get the global maximum log level
133
+ */
134
+ public set MaximumEventLogLevel(logLevel: ButtplugLogLevel) {
135
+ this.maximumEventLogLevel = logLevel;
136
+ }
137
+
138
+ /**
139
+ * Log new message at Error level.
140
+ */
141
+ public Error(msg: string) {
142
+ this.AddLogMessage(msg, ButtplugLogLevel.Error);
143
+ }
144
+
145
+ /**
146
+ * Log new message at Warn level.
147
+ */
148
+ public Warn(msg: string) {
149
+ this.AddLogMessage(msg, ButtplugLogLevel.Warn);
150
+ }
151
+
152
+ /**
153
+ * Log new message at Info level.
154
+ */
155
+ public Info(msg: string) {
156
+ this.AddLogMessage(msg, ButtplugLogLevel.Info);
157
+ }
158
+
159
+ /**
160
+ * Log new message at Debug level.
161
+ */
162
+ public Debug(msg: string) {
163
+ this.AddLogMessage(msg, ButtplugLogLevel.Debug);
164
+ }
165
+
166
+ /**
167
+ * Log new message at Trace level.
168
+ */
169
+ public Trace(msg: string) {
170
+ this.AddLogMessage(msg, ButtplugLogLevel.Trace);
171
+ }
172
+
173
+ /**
174
+ * Checks to see if message should be logged, and if so, adds message to the
175
+ * log buffer. May also print message and emit event.
176
+ */
177
+ protected AddLogMessage(msg: string, level: ButtplugLogLevel) {
178
+ // If nothing wants the log message we have, ignore it.
179
+ if (
180
+ level > this.maximumEventLogLevel &&
181
+ level > this.maximumConsoleLogLevel
182
+ ) {
183
+ return;
184
+ }
185
+ const logMsg = new LogMessage(msg, level);
186
+ // Clients and console logging may have different needs. For instance, it
187
+ // could be that the client requests trace level, while all we want in the
188
+ // console is info level. This makes sure the client can't also spam the
189
+ // console.
190
+ if (level <= this.maximumConsoleLogLevel) {
191
+ console.log(logMsg.FormattedMessage);
192
+ }
193
+ if (level <= this.maximumEventLogLevel) {
194
+ this.emit('log', logMsg);
195
+ }
196
+ }
197
+ }