brilliantsole 0.0.16 → 0.0.17

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 (39) hide show
  1. package/README.md +12 -0
  2. package/build/brilliantsole.cjs +43 -11
  3. package/build/brilliantsole.cjs.map +1 -1
  4. package/build/brilliantsole.js +44 -13
  5. package/build/brilliantsole.js.map +1 -1
  6. package/build/brilliantsole.ls.js +43 -11
  7. package/build/brilliantsole.ls.js.map +1 -1
  8. package/build/brilliantsole.min.js +1 -1
  9. package/build/brilliantsole.min.js.map +1 -1
  10. package/build/brilliantsole.module.d.ts +15 -1
  11. package/build/brilliantsole.module.js +44 -14
  12. package/build/brilliantsole.module.js.map +1 -1
  13. package/build/brilliantsole.module.min.d.ts +15 -1
  14. package/build/brilliantsole.module.min.js +1 -1
  15. package/build/brilliantsole.module.min.js.map +1 -1
  16. package/build/brilliantsole.node.module.d.ts +15 -1
  17. package/build/brilliantsole.node.module.js +43 -12
  18. package/build/brilliantsole.node.module.js.map +1 -1
  19. package/build/dts/BS.d.ts +1 -0
  20. package/build/dts/connection/BaseConnectionManager.d.ts +2 -0
  21. package/build/dts/utils/RangeHelper.d.ts +4 -0
  22. package/build/index.d.ts +15 -1
  23. package/build/index.node.d.ts +15 -1
  24. package/examples/3d/index.html +15 -0
  25. package/examples/3d/scene.html +23 -1
  26. package/examples/3d/script.js +0 -9
  27. package/examples/bottango/index.html +113 -0
  28. package/examples/bottango/script.js +345 -0
  29. package/examples/server/script.js +5 -5
  30. package/package.json +4 -1
  31. package/src/BS.ts +2 -0
  32. package/src/Device.ts +6 -2
  33. package/src/FileTransferManager.ts +3 -1
  34. package/src/InformationManager.ts +3 -3
  35. package/src/connection/BaseConnectionManager.ts +11 -1
  36. package/src/connection/ClientConnectionManager.ts +1 -0
  37. package/src/connection/bluetooth/WebBluetoothConnectionManager.ts +1 -1
  38. package/src/server/BaseClient.ts +2 -2
  39. package/src/utils/RangeHelper.ts +22 -1
package/README.md CHANGED
@@ -19,3 +19,15 @@ if it doesn't work, try turning the firewall off
19
19
 
20
20
  if you have issues saving or running stuff on mac, try:
21
21
  `sudo chown -R username directory_name`
22
+
23
+ ## Running the Node.js server for WebSocket/UDP stuff
24
+
25
+ __To insall via npm:__
26
+ ```javascript
27
+ npm install brilliantsole
28
+ ```
29
+
30
+ __to add in a webpage:__
31
+ ```html
32
+ <script src="https://unpkg.com/brilliantsole@latest/build/brilliantsole.js"></script>
33
+ ```
@@ -779,7 +779,9 @@ _a$6 = FileTransferManager, _FileTransferManager_maxLength = new WeakMap(), _Fil
779
779
  return;
780
780
  }
781
781
  if (!__classPrivateFieldGet(this, _FileTransferManager_buffer, "f")) {
782
- _console$x.error("no buffer defined");
782
+ if (!this.isServerSide) {
783
+ _console$x.error("no buffer defined");
784
+ }
783
785
  return;
784
786
  }
785
787
  const buffer = __classPrivateFieldGet(this, _FileTransferManager_buffer, "f");
@@ -840,19 +842,36 @@ function parseTimestamp(dataView, byteOffset) {
840
842
  return timestamp;
841
843
  }
842
844
 
843
- var _RangeHelper_range;
845
+ var _RangeHelper_instances, _RangeHelper_range, _RangeHelper_updateSpan;
844
846
  const initialRange = { min: Infinity, max: -Infinity, span: 0 };
845
847
  class RangeHelper {
846
848
  constructor() {
849
+ _RangeHelper_instances.add(this);
847
850
  _RangeHelper_range.set(this, Object.assign({}, initialRange));
848
851
  }
852
+ get min() {
853
+ return __classPrivateFieldGet(this, _RangeHelper_range, "f").min;
854
+ }
855
+ get max() {
856
+ return __classPrivateFieldGet(this, _RangeHelper_range, "f").max;
857
+ }
858
+ set min(newMin) {
859
+ __classPrivateFieldGet(this, _RangeHelper_range, "f").min = newMin;
860
+ __classPrivateFieldGet(this, _RangeHelper_range, "f").max = Math.max(newMin, __classPrivateFieldGet(this, _RangeHelper_range, "f").max);
861
+ __classPrivateFieldGet(this, _RangeHelper_instances, "m", _RangeHelper_updateSpan).call(this);
862
+ }
863
+ set max(newMax) {
864
+ __classPrivateFieldGet(this, _RangeHelper_range, "f").max = newMax;
865
+ __classPrivateFieldGet(this, _RangeHelper_range, "f").min = Math.min(newMax, __classPrivateFieldGet(this, _RangeHelper_range, "f").min);
866
+ __classPrivateFieldGet(this, _RangeHelper_instances, "m", _RangeHelper_updateSpan).call(this);
867
+ }
849
868
  reset() {
850
869
  Object.assign(__classPrivateFieldGet(this, _RangeHelper_range, "f"), initialRange);
851
870
  }
852
871
  update(value) {
853
872
  __classPrivateFieldGet(this, _RangeHelper_range, "f").min = Math.min(value, __classPrivateFieldGet(this, _RangeHelper_range, "f").min);
854
873
  __classPrivateFieldGet(this, _RangeHelper_range, "f").max = Math.max(value, __classPrivateFieldGet(this, _RangeHelper_range, "f").max);
855
- __classPrivateFieldGet(this, _RangeHelper_range, "f").span = __classPrivateFieldGet(this, _RangeHelper_range, "f").max - __classPrivateFieldGet(this, _RangeHelper_range, "f").min;
874
+ __classPrivateFieldGet(this, _RangeHelper_instances, "m", _RangeHelper_updateSpan).call(this);
856
875
  }
857
876
  getNormalization(value, weightByRange) {
858
877
  let normalization = getInterpolation(value, __classPrivateFieldGet(this, _RangeHelper_range, "f").min, __classPrivateFieldGet(this, _RangeHelper_range, "f").max, __classPrivateFieldGet(this, _RangeHelper_range, "f").span);
@@ -866,7 +885,9 @@ class RangeHelper {
866
885
  return this.getNormalization(value, weightByRange);
867
886
  }
868
887
  }
869
- _RangeHelper_range = new WeakMap();
888
+ _RangeHelper_range = new WeakMap(), _RangeHelper_instances = new WeakSet(), _RangeHelper_updateSpan = function _RangeHelper_updateSpan() {
889
+ __classPrivateFieldGet(this, _RangeHelper_range, "f").span = __classPrivateFieldGet(this, _RangeHelper_range, "f").max - __classPrivateFieldGet(this, _RangeHelper_range, "f").min;
890
+ };
870
891
 
871
892
  var _CenterOfPressureHelper_range;
872
893
  class CenterOfPressureHelper {
@@ -2017,14 +2038,14 @@ _InformationManager_isCharging = new WeakMap(), _InformationManager_batteryCurre
2017
2038
  _console$n.log({ currentTime });
2018
2039
  __classPrivateFieldSet(this, _InformationManager_isCurrentTimeSet, currentTime != 0 || Math.abs(Date.now() - currentTime) < Uint16Max, "f");
2019
2040
  if (!__classPrivateFieldGet(this, _InformationManager_isCurrentTimeSet, "f")) {
2020
- __classPrivateFieldGet(this, _InformationManager_instances, "m", _InformationManager_setCurrentTime).call(this);
2041
+ __classPrivateFieldGet(this, _InformationManager_instances, "m", _InformationManager_setCurrentTime).call(this, false);
2021
2042
  }
2022
- }, _InformationManager_setCurrentTime = async function _InformationManager_setCurrentTime() {
2043
+ }, _InformationManager_setCurrentTime = async function _InformationManager_setCurrentTime(sendImmediately) {
2023
2044
  _console$n.log("setting current time...");
2024
2045
  const dataView = new DataView(new ArrayBuffer(8));
2025
2046
  dataView.setBigUint64(0, BigInt(Date.now()), true);
2026
2047
  const promise = this.waitForEvent("getCurrentTime");
2027
- this.sendMessage([{ type: "setCurrentTime", data: dataView.buffer }]);
2048
+ this.sendMessage([{ type: "setCurrentTime", data: dataView.buffer }], sendImmediately);
2028
2049
  await promise;
2029
2050
  };
2030
2051
 
@@ -2334,7 +2355,7 @@ _VibrationManager_instances = new WeakSet(), _VibrationManager_verifyLocation =
2334
2355
  return data;
2335
2356
  };
2336
2357
 
2337
- var _BaseConnectionManager_instances, _a$4, _BaseConnectionManager_AssertValidTxRxMessageType, _BaseConnectionManager_assertIsSupported, _BaseConnectionManager_status, _BaseConnectionManager_assertIsNotConnected, _BaseConnectionManager_assertIsNotConnecting, _BaseConnectionManager_assertIsConnected, _BaseConnectionManager_assertIsNotDisconnecting, _BaseConnectionManager_assertIsConnectedAndNotDisconnecting, _BaseConnectionManager_pendingMessages, _BaseConnectionManager_onRxMessage, _BaseConnectionManager_timer, _BaseConnectionManager_checkConnection;
2358
+ var _BaseConnectionManager_instances, _a$4, _BaseConnectionManager_AssertValidTxRxMessageType, _BaseConnectionManager_assertIsSupported, _BaseConnectionManager_status, _BaseConnectionManager_assertIsNotConnected, _BaseConnectionManager_assertIsNotConnecting, _BaseConnectionManager_assertIsConnected, _BaseConnectionManager_assertIsNotDisconnecting, _BaseConnectionManager_assertIsConnectedAndNotDisconnecting, _BaseConnectionManager_pendingMessages, _BaseConnectionManager_isSendingMessages, _BaseConnectionManager_onRxMessage, _BaseConnectionManager_timer, _BaseConnectionManager_checkConnection;
2338
2359
  const _console$l = createConsole("BaseConnectionManager", { log: true });
2339
2360
  const ConnectionStatuses = ["notConnected", "connecting", "connected", "disconnecting"];
2340
2361
  const ConnectionEventTypes = [...ConnectionStatuses, "connectionStatus", "isConnected"];
@@ -2373,6 +2394,7 @@ class BaseConnectionManager {
2373
2394
  _BaseConnectionManager_instances.add(this);
2374
2395
  _BaseConnectionManager_status.set(this, "notConnected");
2375
2396
  _BaseConnectionManager_pendingMessages.set(this, []);
2397
+ _BaseConnectionManager_isSendingMessages.set(this, false);
2376
2398
  _BaseConnectionManager_timer.set(this, new Timer(__classPrivateFieldGet(this, _BaseConnectionManager_instances, "m", _BaseConnectionManager_checkConnection).bind(this), 5000));
2377
2399
  __classPrivateFieldGet(this, _BaseConnectionManager_instances, "m", _BaseConnectionManager_assertIsSupported).call(this);
2378
2400
  }
@@ -2432,6 +2454,10 @@ class BaseConnectionManager {
2432
2454
  if (!sendImmediately) {
2433
2455
  return;
2434
2456
  }
2457
+ if (__classPrivateFieldGet(this, _BaseConnectionManager_isSendingMessages, "f")) {
2458
+ return;
2459
+ }
2460
+ __classPrivateFieldSet(this, _BaseConnectionManager_isSendingMessages, true, "f");
2435
2461
  _console$l.log("sendTxMessages", __classPrivateFieldGet(this, _BaseConnectionManager_pendingMessages, "f").slice());
2436
2462
  const arrayBuffers = __classPrivateFieldGet(this, _BaseConnectionManager_pendingMessages, "f").map((message) => {
2437
2463
  __classPrivateFieldGet(_a$4, _a$4, "m", _BaseConnectionManager_AssertValidTxRxMessageType).call(_a$4, message.type);
@@ -2464,15 +2490,17 @@ class BaseConnectionManager {
2464
2490
  await this.sendTxData(arrayBuffer);
2465
2491
  }
2466
2492
  __classPrivateFieldGet(this, _BaseConnectionManager_pendingMessages, "f").length = 0;
2493
+ __classPrivateFieldSet(this, _BaseConnectionManager_isSendingMessages, false, "f");
2467
2494
  }
2468
2495
  async sendTxData(data) {
2469
2496
  _console$l.log("sendTxData", data);
2470
2497
  }
2471
2498
  parseRxMessage(dataView) {
2472
2499
  parseMessage(dataView, TxRxMessageTypes, __classPrivateFieldGet(this, _BaseConnectionManager_instances, "m", _BaseConnectionManager_onRxMessage).bind(this), null, true);
2500
+ this.onMessagesReceived();
2473
2501
  }
2474
2502
  }
2475
- _a$4 = BaseConnectionManager, _BaseConnectionManager_status = new WeakMap(), _BaseConnectionManager_pendingMessages = new WeakMap(), _BaseConnectionManager_timer = new WeakMap(), _BaseConnectionManager_instances = new WeakSet(), _BaseConnectionManager_AssertValidTxRxMessageType = function _BaseConnectionManager_AssertValidTxRxMessageType(messageType) {
2503
+ _a$4 = BaseConnectionManager, _BaseConnectionManager_status = new WeakMap(), _BaseConnectionManager_pendingMessages = new WeakMap(), _BaseConnectionManager_isSendingMessages = new WeakMap(), _BaseConnectionManager_timer = new WeakMap(), _BaseConnectionManager_instances = new WeakSet(), _BaseConnectionManager_AssertValidTxRxMessageType = function _BaseConnectionManager_AssertValidTxRxMessageType(messageType) {
2476
2504
  _console$l.assertEnumWithError(messageType, TxRxMessageTypes);
2477
2505
  }, _BaseConnectionManager_assertIsSupported = function _BaseConnectionManager_assertIsSupported() {
2478
2506
  _console$l.assertWithError(this.isSupported, `${this.constructor.name} is not supported`);
@@ -2843,7 +2871,6 @@ _WebBluetoothConnectionManager_boundBluetoothCharacteristicEventListeners = new
2843
2871
  _console$h.log("getting services...");
2844
2872
  const services = await this.server.getPrimaryServices();
2845
2873
  _console$h.log("got services", services.length);
2846
- await this.server.getPrimaryService("8d53dc1d-1db7-4cd3-868b-8a527460aa84");
2847
2874
  _console$h.log("getting characteristics...");
2848
2875
  for (const serviceIndex in services) {
2849
2876
  const service = services[serviceIndex];
@@ -4126,7 +4153,7 @@ _DeviceManager_boundDeviceEventListeners = new WeakMap(), _DeviceManager_Connect
4126
4153
  DeviceManager.shared = new DeviceManager();
4127
4154
  var DeviceManager$1 = DeviceManager.shared;
4128
4155
 
4129
- var _Device_instances, _a$3, _Device_DefaultConnectionManager, _Device_eventDispatcher, _Device_dispatchEvent_get, _Device_connectionManager, _Device_sendTxMessages, _Device_isConnected, _Device_assertIsConnected, _Device_hasRequiredInformation_get, _Device_requestRequiredInformation, _Device_assertCanReconnect, _Device_ReconnectOnDisconnection, _Device_reconnectOnDisconnection, _Device_reconnectIntervalId, _Device_onConnectionStatusUpdated, _Device_dispatchConnectionEvents, _Device_checkConnection, _Device_clear, _Device_onConnectionMessageReceived, _Device_deviceInformationManager, _Device_batteryLevel, _Device_updateBatteryLevel, _Device_sensorConfigurationManager, _Device_ClearSensorConfigurationOnLeave, _Device_clearSensorConfigurationOnLeave, _Device_sensorDataManager, _Device_vibrationManager, _Device_fileTransferManager, _Device_tfliteManager, _Device_firmwareManager, _Device_sendSmpMessage, _Device_isServerSide;
4156
+ var _Device_instances, _a$3, _Device_DefaultConnectionManager, _Device_eventDispatcher, _Device_dispatchEvent_get, _Device_connectionManager, _Device_sendTxMessages, _Device_isConnected, _Device_assertIsConnected, _Device_hasRequiredInformation_get, _Device_requestRequiredInformation, _Device_assertCanReconnect, _Device_ReconnectOnDisconnection, _Device_reconnectOnDisconnection, _Device_reconnectIntervalId, _Device_onConnectionStatusUpdated, _Device_dispatchConnectionEvents, _Device_checkConnection, _Device_clear, _Device_onConnectionMessageReceived, _Device_onConnectionMessagesReceived, _Device_deviceInformationManager, _Device_batteryLevel, _Device_updateBatteryLevel, _Device_sensorConfigurationManager, _Device_ClearSensorConfigurationOnLeave, _Device_clearSensorConfigurationOnLeave, _Device_sensorDataManager, _Device_vibrationManager, _Device_fileTransferManager, _Device_tfliteManager, _Device_firmwareManager, _Device_sendSmpMessage, _Device_isServerSide;
4130
4157
  const _console$d = createConsole("Device", { log: true });
4131
4158
  const DeviceEventTypes = [
4132
4159
  "connectionMessage",
@@ -4251,10 +4278,12 @@ class Device {
4251
4278
  if (this.connectionManager) {
4252
4279
  this.connectionManager.onStatusUpdated = undefined;
4253
4280
  this.connectionManager.onMessageReceived = undefined;
4281
+ this.connectionManager.onMessagesReceived = undefined;
4254
4282
  }
4255
4283
  if (newConnectionManager) {
4256
4284
  newConnectionManager.onStatusUpdated = __classPrivateFieldGet(this, _Device_instances, "m", _Device_onConnectionStatusUpdated).bind(this);
4257
4285
  newConnectionManager.onMessageReceived = __classPrivateFieldGet(this, _Device_instances, "m", _Device_onConnectionMessageReceived).bind(this);
4286
+ newConnectionManager.onMessagesReceived = __classPrivateFieldGet(this, _Device_instances, "m", _Device_onConnectionMessagesReceived).bind(this);
4258
4287
  }
4259
4288
  __classPrivateFieldSet(this, _Device_connectionManager, newConnectionManager, "f");
4260
4289
  _console$d.log("assigned new connectionManager", __classPrivateFieldGet(this, _Device_connectionManager, "f"));
@@ -4631,9 +4660,11 @@ _a$3 = Device, _Device_eventDispatcher = new WeakMap(), _Device_connectionManage
4631
4660
  }
4632
4661
  this.latestConnectionMessage.set(messageType, dataView);
4633
4662
  __classPrivateFieldGet(this, _Device_instances, "a", _Device_dispatchEvent_get).call(this, "connectionMessage", { messageType, dataView });
4663
+ }, _Device_onConnectionMessagesReceived = function _Device_onConnectionMessagesReceived() {
4634
4664
  if (!this.isConnected && __classPrivateFieldGet(this, _Device_instances, "a", _Device_hasRequiredInformation_get)) {
4635
4665
  __classPrivateFieldGet(this, _Device_instances, "m", _Device_checkConnection).call(this);
4636
4666
  }
4667
+ __classPrivateFieldGet(this, _Device_instances, "m", _Device_sendTxMessages).call(this);
4637
4668
  }, _Device_updateBatteryLevel = function _Device_updateBatteryLevel(updatedBatteryLevel) {
4638
4669
  _console$d.assertTypeWithError(updatedBatteryLevel, "number");
4639
4670
  if (__classPrivateFieldGet(this, _Device_batteryLevel, "f") == updatedBatteryLevel) {
@@ -5987,6 +6018,7 @@ exports.MaxVibrationWaveformEffectSegmentLoopCount = MaxVibrationWaveformEffectS
5987
6018
  exports.MaxVibrationWaveformEffectSequenceLoopCount = MaxVibrationWaveformEffectSequenceLoopCount;
5988
6019
  exports.MaxVibrationWaveformSegmentDuration = MaxVibrationWaveformSegmentDuration;
5989
6020
  exports.MinNameLength = MinNameLength;
6021
+ exports.RangeHelper = RangeHelper;
5990
6022
  exports.Scanner = scanner$1;
5991
6023
  exports.SensorRateStep = SensorRateStep;
5992
6024
  exports.SensorTypes = SensorTypes;