@neurodevs/node-lsl 20.0.0 → 22.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 (117) hide show
  1. package/README.md +6 -6
  2. package/build/__tests__/AbstractPackageTest.d.ts +2 -1
  3. package/build/__tests__/AbstractPackageTest.js +9 -7
  4. package/build/__tests__/AbstractPackageTest.js.map +1 -1
  5. package/build/__tests__/impl/{BleDeviceController.test.d.ts → BleGattController.test.d.ts} +3 -3
  6. package/build/__tests__/impl/{BleDeviceController.test.js → BleGattController.test.js} +65 -65
  7. package/build/__tests__/impl/BleGattController.test.js.map +1 -0
  8. package/build/__tests__/impl/BleObserverController.test.d.ts +12 -0
  9. package/build/__tests__/impl/BleObserverController.test.js +62 -0
  10. package/build/__tests__/impl/BleObserverController.test.js.map +1 -0
  11. package/build/__tests__/impl/{LslEventMarkerEmitter.test.d.ts → LslEventMarkerOutlet.test.d.ts} +3 -3
  12. package/build/__tests__/impl/{LslEventMarkerEmitter.test.js → LslEventMarkerOutlet.test.js} +35 -36
  13. package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +1 -0
  14. package/build/__tests__/impl/LslJsonOutlet.test.d.ts +14 -0
  15. package/build/__tests__/impl/LslJsonOutlet.test.js +118 -0
  16. package/build/__tests__/impl/LslJsonOutlet.test.js.map +1 -0
  17. package/build/__tests__/impl/LslStreamInfo.test.js +0 -1
  18. package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
  19. package/build/__tests__/impl/LslStreamInlet.test.js +0 -1
  20. package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
  21. package/build/__tests__/impl/LslStreamOutlet.test.js +0 -1
  22. package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
  23. package/build/__tests__/impl/LslWebSocketBridge.test.js +0 -1
  24. package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
  25. package/build/__tests__/impl/UsbDeviceController.test.js.map +1 -1
  26. package/build/impl/{LslEventMarkerEmitter.d.ts → LslEventMarkerOutlet.d.ts} +6 -6
  27. package/build/impl/{LslEventMarkerEmitter.js → LslEventMarkerOutlet.js} +2 -2
  28. package/build/impl/LslEventMarkerOutlet.js.map +1 -0
  29. package/build/impl/LslJsonOutlet.d.ts +33 -0
  30. package/build/impl/LslJsonOutlet.js +44 -0
  31. package/build/impl/LslJsonOutlet.js.map +1 -0
  32. package/build/impl/LslStreamOutlet.d.ts +3 -4
  33. package/build/impl/controllers/{BleDeviceController.d.ts → BleGattController.d.ts} +10 -10
  34. package/build/impl/controllers/{BleDeviceController.js → BleGattController.js} +18 -18
  35. package/build/impl/controllers/BleGattController.js.map +1 -0
  36. package/build/impl/controllers/BleObserverController.d.ts +20 -0
  37. package/build/impl/controllers/BleObserverController.js +37 -0
  38. package/build/impl/controllers/BleObserverController.js.map +1 -0
  39. package/build/impl/controllers/UsbDeviceController.d.ts +9 -9
  40. package/build/impl/controllers/UsbDeviceController.js +7 -7
  41. package/build/impl/controllers/UsbDeviceController.js.map +1 -1
  42. package/build/index.d.ts +24 -16
  43. package/build/index.js +29 -19
  44. package/build/index.js.map +1 -1
  45. package/build/scripts/runEventMarkerOutlet.js +12 -0
  46. package/build/scripts/runEventMarkerOutlet.js.map +1 -0
  47. package/build/scripts/runMuse.js +2 -2
  48. package/build/scripts/runMuse.js.map +1 -1
  49. package/build/testDoubles/{BleController/FakeBleController.d.ts → BleGatt/FakeBleGatt.d.ts} +6 -6
  50. package/build/testDoubles/{BleController/FakeBleController.js → BleGatt/FakeBleGatt.js} +8 -8
  51. package/build/testDoubles/BleGatt/FakeBleGatt.js.map +1 -0
  52. package/build/testDoubles/{BleController/SpyBleController.d.ts → BleGatt/SpyBleGatt.d.ts} +4 -4
  53. package/build/testDoubles/{BleController/SpyBleController.js → BleGatt/SpyBleGatt.js} +3 -3
  54. package/build/testDoubles/BleGatt/SpyBleGatt.js.map +1 -0
  55. package/build/testDoubles/BleObserver/FakeBleObserver.d.ts +10 -0
  56. package/build/testDoubles/BleObserver/FakeBleObserver.js +20 -0
  57. package/build/testDoubles/BleObserver/FakeBleObserver.js.map +1 -0
  58. package/build/testDoubles/{LslEmitter/FakeLslEmitter.d.ts → EventMarkerOutlet/FakeEventMarkerOutlet.d.ts} +2 -2
  59. package/build/testDoubles/{LslEmitter/FakeLslEmitter.js → EventMarkerOutlet/FakeEventMarkerOutlet.js} +7 -7
  60. package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js.map +1 -0
  61. package/build/testDoubles/{LslEmitter/SpyLslEmitter.d.ts → EventMarkerOutlet/SpyEventMarkerOutlet.d.ts} +3 -3
  62. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js +23 -0
  63. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js.map +1 -0
  64. package/build/testDoubles/{LslEmitter/ThrowingLslEmitter.d.ts → EventMarkerOutlet/ThrowingEventMarkerOutlet.d.ts} +2 -2
  65. package/build/testDoubles/{LslEmitter/ThrowingLslEmitter.js → EventMarkerOutlet/ThrowingEventMarkerOutlet.js} +2 -2
  66. package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js.map +1 -0
  67. package/build/testDoubles/JsonOutlet/FakeJsonOutlet.d.ts +10 -0
  68. package/build/testDoubles/JsonOutlet/FakeJsonOutlet.js +20 -0
  69. package/build/testDoubles/JsonOutlet/FakeJsonOutlet.js.map +1 -0
  70. package/build/testDoubles/UsbDevice/FakeUsbDevice.d.ts +12 -0
  71. package/build/testDoubles/UsbDevice/FakeUsbDevice.js +25 -0
  72. package/build/testDoubles/UsbDevice/FakeUsbDevice.js.map +1 -0
  73. package/package.json +3 -3
  74. package/src/__tests__/AbstractPackageTest.ts +9 -7
  75. package/src/__tests__/impl/{BleDeviceController.test.ts → BleGattController.test.ts} +43 -43
  76. package/src/__tests__/impl/BleObserverController.test.ts +72 -0
  77. package/src/__tests__/impl/{LslEventMarkerEmitter.test.ts → LslEventMarkerOutlet.test.ts} +20 -19
  78. package/src/__tests__/impl/LslJsonOutlet.test.ts +135 -0
  79. package/src/__tests__/impl/LslStreamInfo.test.ts +0 -1
  80. package/src/__tests__/impl/LslStreamInlet.test.ts +0 -1
  81. package/src/__tests__/impl/LslStreamOutlet.test.ts +0 -1
  82. package/src/__tests__/impl/LslWebSocketBridge.test.ts +0 -1
  83. package/src/__tests__/impl/UsbDeviceController.test.ts +2 -2
  84. package/src/impl/{LslEventMarkerEmitter.ts → LslEventMarkerOutlet.ts} +8 -6
  85. package/src/impl/LslJsonOutlet.ts +87 -0
  86. package/src/impl/LslStreamOutlet.ts +7 -5
  87. package/src/impl/controllers/{BleDeviceController.ts → BleGattController.ts} +23 -28
  88. package/src/impl/controllers/BleObserverController.ts +62 -0
  89. package/src/impl/controllers/UsbDeviceController.ts +14 -16
  90. package/src/index.ts +40 -24
  91. package/src/scripts/{runLslEmitter.ts → runEventMarkerOutlet.ts} +5 -5
  92. package/src/scripts/runMuse.ts +2 -2
  93. package/src/testDoubles/{BleController/FakeBleController.ts → BleGatt/FakeBleGatt.ts} +14 -14
  94. package/src/testDoubles/{BleController/SpyBleController.ts → BleGatt/SpyBleGatt.ts} +5 -5
  95. package/src/testDoubles/BleObserver/FakeBleObserver.ts +28 -0
  96. package/src/testDoubles/{LslEmitter/FakeLslEmitter.ts → EventMarkerOutlet/FakeEventMarkerOutlet.ts} +8 -8
  97. package/src/testDoubles/{LslEmitter/SpyLslEmitter.ts → EventMarkerOutlet/SpyEventMarkerOutlet.ts} +7 -7
  98. package/src/testDoubles/{LslEmitter/ThrowingLslEmitter.ts → EventMarkerOutlet/ThrowingEventMarkerOutlet.ts} +3 -3
  99. package/src/testDoubles/JsonOutlet/FakeJsonOutlet.ts +25 -0
  100. package/src/testDoubles/UsbDevice/FakeUsbDevice.ts +34 -0
  101. package/build/__tests__/impl/BleDeviceController.test.js.map +0 -1
  102. package/build/__tests__/impl/LslEventMarkerEmitter.test.js.map +0 -1
  103. package/build/impl/LslEventMarkerEmitter.js.map +0 -1
  104. package/build/impl/controllers/BleDeviceController.js.map +0 -1
  105. package/build/scripts/runLslEmitter.js +0 -12
  106. package/build/scripts/runLslEmitter.js.map +0 -1
  107. package/build/testDoubles/BleController/FakeBleController.js.map +0 -1
  108. package/build/testDoubles/BleController/SpyBleController.js.map +0 -1
  109. package/build/testDoubles/LslEmitter/FakeLslEmitter.js.map +0 -1
  110. package/build/testDoubles/LslEmitter/SpyLslEmitter.js +0 -23
  111. package/build/testDoubles/LslEmitter/SpyLslEmitter.js.map +0 -1
  112. package/build/testDoubles/LslEmitter/ThrowingLslEmitter.js.map +0 -1
  113. package/build/testDoubles/UsbController/FakeUsbController.d.ts +0 -12
  114. package/build/testDoubles/UsbController/FakeUsbController.js +0 -25
  115. package/build/testDoubles/UsbController/FakeUsbController.js.map +0 -1
  116. package/src/testDoubles/UsbController/FakeUsbController.ts +0 -34
  117. /package/build/scripts/{runLslEmitter.d.ts → runEventMarkerOutlet.d.ts} +0 -0
@@ -1,6 +1,6 @@
1
- import { BleController, BleControllerOptions, CharacteristicCallbacks } from '../../impl/controllers/BleDeviceController.js';
2
- export default class FakeBleController implements BleController {
3
- static callsToConstructor: (BleControllerOptions | undefined)[];
1
+ import { BleGatt, BleGattOptions, CharacteristicCallbacks } from '../../impl/controllers/BleGattController.js';
2
+ export default class FakeBleGatt implements BleGatt {
3
+ static callsToConstructor: (BleGattOptions | undefined)[];
4
4
  static numCallsToConnect: number;
5
5
  static callsToWriteCharacteristic: {
6
6
  characteristicUuid: string;
@@ -12,7 +12,7 @@ export default class FakeBleController implements BleController {
12
12
  static fakeName: string;
13
13
  private _uuid;
14
14
  private _name;
15
- constructor(options?: BleControllerOptions);
15
+ constructor(options?: BleGattOptions);
16
16
  connect(): Promise<void>;
17
17
  writeCharacteristic(characteristicUuid: string, value: string): Promise<void>;
18
18
  subscribeCharacteristics(charCallbacks: CharacteristicCallbacks): Promise<void>;
@@ -21,6 +21,6 @@ export default class FakeBleController implements BleController {
21
21
  get name(): string;
22
22
  static resetTestDouble(): void;
23
23
  }
24
- export interface CallToBleControllerConstructor {
25
- options: BleControllerOptions;
24
+ export interface CallToBleGattConstructor {
25
+ options: BleGattOptions;
26
26
  }
@@ -1,5 +1,5 @@
1
1
  import generateId from '@neurodevs/generate-id';
2
- export default class FakeBleController {
2
+ export default class FakeBleGatt {
3
3
  static callsToConstructor = [];
4
4
  static numCallsToConnect = 0;
5
5
  static callsToWriteCharacteristic = [];
@@ -12,23 +12,23 @@ export default class FakeBleController {
12
12
  constructor(options) {
13
13
  const { deviceUuid } = options ?? {};
14
14
  this._uuid = deviceUuid ?? generateId();
15
- this._name = FakeBleController.fakeName;
16
- FakeBleController.callsToConstructor.push(options);
15
+ this._name = FakeBleGatt.fakeName;
16
+ FakeBleGatt.callsToConstructor.push(options);
17
17
  }
18
18
  async connect() {
19
- FakeBleController.numCallsToConnect++;
19
+ FakeBleGatt.numCallsToConnect++;
20
20
  }
21
21
  async writeCharacteristic(characteristicUuid, value) {
22
- FakeBleController.callsToWriteCharacteristic.push({
22
+ FakeBleGatt.callsToWriteCharacteristic.push({
23
23
  characteristicUuid,
24
24
  value,
25
25
  });
26
26
  }
27
27
  async subscribeCharacteristics(charCallbacks) {
28
- FakeBleController.callsToSubscribeCharacteristics.push(charCallbacks);
28
+ FakeBleGatt.callsToSubscribeCharacteristics.push(charCallbacks);
29
29
  }
30
30
  async disconnect() {
31
- FakeBleController.numCallsToDisconnect++;
31
+ FakeBleGatt.numCallsToDisconnect++;
32
32
  }
33
33
  get uuid() {
34
34
  return this._uuid;
@@ -44,4 +44,4 @@ export default class FakeBleController {
44
44
  this.numCallsToDisconnect = 0;
45
45
  }
46
46
  }
47
- //# sourceMappingURL=FakeBleController.js.map
47
+ //# sourceMappingURL=FakeBleGatt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeBleGatt.js","sourceRoot":"","sources":["../../../src/testDoubles/BleGatt/FakeBleGatt.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAO/C,MAAM,CAAC,OAAO,OAAO,WAAW;IACrB,MAAM,CAAC,kBAAkB,GAAmC,EAAE,CAAA;IAE9D,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,MAAM,CAAC,0BAA0B,GAGlC,EAAE,CAAA;IAED,MAAM,CAAC,+BAA+B,GACzC,EAAE,CAAA;IAEC,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAE/B,MAAM,CAAC,mBAAmB,GAA4B,EAAE,CAAA;IACxD,MAAM,CAAC,QAAQ,GAAG,QAAQ,UAAU,EAAE,EAAE,CAAA;IAEvC,KAAK,CAAQ;IACb,KAAK,CAAQ;IAErB,YAAmB,OAAwB;QACvC,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE,CAAA;QAEpC,IAAI,CAAC,KAAK,GAAG,UAAU,IAAI,UAAU,EAAE,CAAA;QACvC,IAAI,CAAC,KAAK,GAAG,WAAW,CAAC,QAAQ,CAAA;QAEjC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,WAAW,CAAC,iBAAiB,EAAE,CAAA;IACnC,CAAC;IAEM,KAAK,CAAC,mBAAmB,CAC5B,kBAA0B,EAC1B,KAAa;QAEb,WAAW,CAAC,0BAA0B,CAAC,IAAI,CAAC;YACxC,kBAAkB;YAClB,KAAK;SACR,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,wBAAwB,CACjC,aAAsC;QAEtC,WAAW,CAAC,+BAA+B,CAAC,IAAI,CAAC,aAAa,CAAC,CAAA;IACnE,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,WAAW,CAAC,oBAAoB,EAAE,CAAA;IACtC,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;QAC1B,IAAI,CAAC,0BAA0B,GAAG,EAAE,CAAA;QACpC,IAAI,CAAC,+BAA+B,GAAG,EAAE,CAAA;QACzC,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAA;IACjC,CAAC"}
@@ -1,10 +1,10 @@
1
- import BleDeviceController, { BleControllerOptions } from '../../impl/controllers/BleDeviceController.js';
2
- export default class SpyBleController extends BleDeviceController {
1
+ import BleGattController, { BleGattOptions } from '../../impl/controllers/BleGattController.js';
2
+ export default class SpyBleGatt extends BleGattController {
3
3
  infoLogs: string[];
4
4
  warnLogs: string[];
5
5
  errorLogs: string[];
6
- constructor(options: BleControllerOptions);
7
- getCharacteristicCallbacks(): import("../../impl/controllers/BleDeviceController.js").CharacteristicCallbacks;
6
+ constructor(options: BleGattOptions);
7
+ getCharacteristicCallbacks(): import("../../impl/controllers/BleGattController.js").CharacteristicCallbacks;
8
8
  getRssiIntervalMs(): number | undefined;
9
9
  getConnected(): boolean;
10
10
  setLogInfoSpy(): void;
@@ -1,5 +1,5 @@
1
- import BleDeviceController from '../../impl/controllers/BleDeviceController.js';
2
- export default class SpyBleController extends BleDeviceController {
1
+ import BleGattController from '../../impl/controllers/BleGattController.js';
2
+ export default class SpyBleGatt extends BleGattController {
3
3
  infoLogs = [];
4
4
  warnLogs = [];
5
5
  errorLogs = [];
@@ -45,4 +45,4 @@ export default class SpyBleController extends BleDeviceController {
45
45
  this.errorLogs = [];
46
46
  }
47
47
  }
48
- //# sourceMappingURL=SpyBleController.js.map
48
+ //# sourceMappingURL=SpyBleGatt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpyBleGatt.js","sourceRoot":"","sources":["../../../src/testDoubles/BleGatt/SpyBleGatt.ts"],"names":[],"mappings":"AAAA,OAAO,iBAEN,MAAM,6CAA6C,CAAA;AAEpD,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,iBAAiB;IAC9C,QAAQ,GAAa,EAAE,CAAA;IACvB,QAAQ,GAAa,EAAE,CAAA;IACvB,SAAS,GAAa,EAAE,CAAA;IAE/B,YAAmB,OAAuB;QACtC,KAAK,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;IAEM,0BAA0B;QAC7B,OAAO,IAAI,CAAC,aAAa,CAAA;IAC7B,CAAC;IAEM,iBAAiB;QACpB,OAAO,IAAI,CAAC,cAAc,CAAA;IAC9B,CAAC;IAEM,YAAY;QACf,OAAO,IAAI,CAAC,SAAS,CAAA;IACzB,CAAC;IAEM,aAAa;QAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAElB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC3B,OAAO,OAAO,CAAA;QAClB,CAAC,CAAA;IACL,CAAC;IAEM,aAAa;QAChB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAElB,IAAI,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;YACnC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC3B,OAAO,OAAO,CAAA;QAClB,CAAC,CAAA;IACL,CAAC;IAEM,cAAc;QACjB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;QAEnB,IAAI,CAAC,GAAG,CAAC,KAAK,GAAG,CAAC,GAAG,IAAe,EAAE,EAAE;YACpC,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;YAC9B,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;YAC5B,OAAO,OAAO,CAAA;QAClB,CAAC,CAAA;IACL,CAAC;IAEM,eAAe;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAA;IACvB,CAAC;CACJ"}
@@ -0,0 +1,10 @@
1
+ import { BleObserver, BleObserverOptions } from '../../impl/controllers/BleObserverController.js';
2
+ export default class FakeBleObserver implements BleObserver {
3
+ static callsToConstructor: BleObserverOptions[];
4
+ static numCallsToStartObserving: number;
5
+ static numCallsToStopObserving: number;
6
+ constructor(options: BleObserverOptions);
7
+ startObserving(): Promise<void>;
8
+ stopObserving(): Promise<void>;
9
+ static resetTestDouble(): void;
10
+ }
@@ -0,0 +1,20 @@
1
+ export default class FakeBleObserver {
2
+ static callsToConstructor = [];
3
+ static numCallsToStartObserving = 0;
4
+ static numCallsToStopObserving = 0;
5
+ constructor(options) {
6
+ FakeBleObserver.callsToConstructor.push(options);
7
+ }
8
+ async startObserving() {
9
+ FakeBleObserver.numCallsToStartObserving++;
10
+ }
11
+ async stopObserving() {
12
+ FakeBleObserver.numCallsToStopObserving++;
13
+ }
14
+ static resetTestDouble() {
15
+ FakeBleObserver.callsToConstructor = [];
16
+ FakeBleObserver.numCallsToStartObserving = 0;
17
+ FakeBleObserver.numCallsToStopObserving = 0;
18
+ }
19
+ }
20
+ //# sourceMappingURL=FakeBleObserver.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeBleObserver.js","sourceRoot":"","sources":["../../../src/testDoubles/BleObserver/FakeBleObserver.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,OAAO,eAAe;IACzB,MAAM,CAAC,kBAAkB,GAAyB,EAAE,CAAA;IACpD,MAAM,CAAC,wBAAwB,GAAG,CAAC,CAAA;IACnC,MAAM,CAAC,uBAAuB,GAAG,CAAC,CAAA;IAEzC,YAAmB,OAA2B;QAC1C,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpD,CAAC;IAEM,KAAK,CAAC,cAAc;QACvB,eAAe,CAAC,wBAAwB,EAAE,CAAA;IAC9C,CAAC;IAEM,KAAK,CAAC,aAAa;QACtB,eAAe,CAAC,uBAAuB,EAAE,CAAA;IAC7C,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,eAAe,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACvC,eAAe,CAAC,wBAAwB,GAAG,CAAC,CAAA;QAC5C,eAAe,CAAC,uBAAuB,GAAG,CAAC,CAAA;IAC/C,CAAC"}
@@ -1,5 +1,5 @@
1
- import { LslEmitter, EmitOptions, TimedEventMarker } from '../../impl/LslEventMarkerEmitter.js';
2
- export default class FakeLslEmitter implements LslEmitter {
1
+ import { EventMarkerOutlet, EmitOptions, TimedEventMarker } from '../../impl/LslEventMarkerOutlet.js';
2
+ export default class FakeEventMarkerOutlet implements EventMarkerOutlet {
3
3
  static numCallsToConstructor: number;
4
4
  static callsToEmit: {
5
5
  markerName: string;
@@ -1,23 +1,23 @@
1
- export default class FakeLslEmitter {
1
+ export default class FakeEventMarkerOutlet {
2
2
  static numCallsToConstructor = 0;
3
3
  static callsToEmit = [];
4
4
  static callsToEmitMany = [];
5
5
  static numCallsToInterrupt = 0;
6
6
  static numCallsToDestroy = 0;
7
7
  constructor() {
8
- FakeLslEmitter.numCallsToConstructor++;
8
+ FakeEventMarkerOutlet.numCallsToConstructor++;
9
9
  }
10
10
  async emit(markerName, options) {
11
- FakeLslEmitter.callsToEmit.push({ markerName, options });
11
+ FakeEventMarkerOutlet.callsToEmit.push({ markerName, options });
12
12
  }
13
13
  async emitMany(markers) {
14
- FakeLslEmitter.callsToEmitMany.push(markers);
14
+ FakeEventMarkerOutlet.callsToEmitMany.push(markers);
15
15
  }
16
16
  interrupt() {
17
- FakeLslEmitter.numCallsToInterrupt++;
17
+ FakeEventMarkerOutlet.numCallsToInterrupt++;
18
18
  }
19
19
  destroy() {
20
- FakeLslEmitter.numCallsToDestroy++;
20
+ FakeEventMarkerOutlet.numCallsToDestroy++;
21
21
  }
22
22
  static resetTestDouble() {
23
23
  this.numCallsToConstructor = 0;
@@ -27,4 +27,4 @@ export default class FakeLslEmitter {
27
27
  this.numCallsToDestroy = 0;
28
28
  }
29
29
  }
30
- //# sourceMappingURL=FakeLslEmitter.js.map
30
+ //# sourceMappingURL=FakeEventMarkerOutlet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeEventMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,qBAAqB;IAC/B,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAEhC,MAAM,CAAC,WAAW,GAGnB,EAAE,CAAA;IAED,MAAM,CAAC,eAAe,GAAyB,EAAE,CAAA;IACjD,MAAM,CAAC,mBAAmB,GAAG,CAAC,CAAA;IAC9B,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAEnC;QACI,qBAAqB,CAAC,qBAAqB,EAAE,CAAA;IACjD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,UAAkB,EAAE,OAAqB;QACvD,qBAAqB,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;IACnE,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,OAA2B;QAC7C,qBAAqB,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvD,CAAC;IAEM,SAAS;QACZ,qBAAqB,CAAC,mBAAmB,EAAE,CAAA;IAC/C,CAAC;IAEM,OAAO;QACV,qBAAqB,CAAC,iBAAiB,EAAE,CAAA;IAC7C,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,WAAW,GAAG,EAAE,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,mBAAmB,GAAG,CAAC,CAAA;QAC5B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC9B,CAAC"}
@@ -1,8 +1,8 @@
1
- import LslEventMarkerEmitter from '../../impl/LslEventMarkerEmitter.js';
1
+ import LslEventMarkerOutlet from '../../impl/LslEventMarkerOutlet.js';
2
2
  import { LslOutlet } from '../../impl/LslStreamOutlet.js';
3
- export default class SpyLslEmitter extends LslEventMarkerEmitter {
3
+ export default class SpyEventMarkerOutlet extends LslEventMarkerOutlet {
4
4
  static shouldCallWaitOnSuper: boolean;
5
- totalwaitAfterMs: number;
5
+ totalWaitAfterMs: number;
6
6
  constructor(outlet: LslOutlet);
7
7
  wait(waitAfterMs: number): Promise<unknown>;
8
8
  getStreamOutlet(): LslOutlet;
@@ -0,0 +1,23 @@
1
+ import LslEventMarkerOutlet from '../../impl/LslEventMarkerOutlet.js';
2
+ export default class SpyEventMarkerOutlet extends LslEventMarkerOutlet {
3
+ static shouldCallWaitOnSuper = false;
4
+ totalWaitAfterMs;
5
+ constructor(outlet) {
6
+ super(outlet);
7
+ this.totalWaitAfterMs = 0;
8
+ }
9
+ async wait(waitAfterMs) {
10
+ this.totalWaitAfterMs += waitAfterMs;
11
+ if (SpyEventMarkerOutlet.shouldCallWaitOnSuper) {
12
+ return super.wait(waitAfterMs);
13
+ }
14
+ return Promise.resolve();
15
+ }
16
+ getStreamOutlet() {
17
+ return this.outlet;
18
+ }
19
+ resetTestDouble() {
20
+ this.totalWaitAfterMs = 0;
21
+ }
22
+ }
23
+ //# sourceMappingURL=SpyEventMarkerOutlet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpyEventMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,oBAAoB,MAAM,oCAAoC,CAAA;AAGrE,MAAM,CAAC,OAAO,OAAO,oBAAqB,SAAQ,oBAAoB;IAC3D,MAAM,CAAC,qBAAqB,GAAG,KAAK,CAAA;IAEpC,gBAAgB,CAAQ;IAE/B,YAAmB,MAAiB;QAChC,KAAK,CAAC,MAAM,CAAC,CAAA;QAEb,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAA;IAC7B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAmB;QACjC,IAAI,CAAC,gBAAgB,IAAI,WAAW,CAAA;QAEpC,IAAI,oBAAoB,CAAC,qBAAqB,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,CAAA;QAClC,CAAC;QACD,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;IAEM,eAAe;QAClB,OAAO,IAAI,CAAC,MAAM,CAAA;IACtB,CAAC;IAEM,eAAe;QAClB,IAAI,CAAC,gBAAgB,GAAG,CAAC,CAAA;IAC7B,CAAC"}
@@ -1,5 +1,5 @@
1
- import { LslEmitter, EmitOptions, TimedEventMarker } from '../../impl/LslEventMarkerEmitter.js';
2
- export default class ThrowingLslEmitter implements LslEmitter {
1
+ import { EventMarkerOutlet, EmitOptions, TimedEventMarker } from '../../impl/LslEventMarkerOutlet.js';
2
+ export default class ThrowingEventMarkerOutlet implements EventMarkerOutlet {
3
3
  private errorMsg;
4
4
  constructor();
5
5
  emit(_markerName: string, _options?: EmitOptions): Promise<void>;
@@ -1,4 +1,4 @@
1
- export default class ThrowingLslEmitter {
1
+ export default class ThrowingEventMarkerOutlet {
2
2
  errorMsg = 'Intentional throwing: ';
3
3
  constructor() {
4
4
  throw new Error(this.errorMsg + 'constructor');
@@ -16,4 +16,4 @@ export default class ThrowingLslEmitter {
16
16
  throw new Error(this.errorMsg + 'destroy');
17
17
  }
18
18
  }
19
- //# sourceMappingURL=ThrowingLslEmitter.js.map
19
+ //# sourceMappingURL=ThrowingEventMarkerOutlet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ThrowingEventMarkerOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,yBAAyB;IAClC,QAAQ,GAAG,wBAAwB,CAAA;IAE3C;QACI,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,aAAa,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,WAAmB,EAAE,QAAsB;QACzD,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,CAAA;IAC3C,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,QAA4B;QAC9C,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,CAAA;IAC/C,CAAC;IAEM,SAAS;QACZ,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,WAAW,CAAC,CAAA;IAChD,CAAC;IAEM,OAAO;QACV,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,CAAC,CAAA;IAC9C,CAAC;CACJ"}
@@ -0,0 +1,10 @@
1
+ import { Json, JsonOutlet } from '../../impl/LslJsonOutlet.js';
2
+ export default class FakeJsonOutlet implements JsonOutlet {
3
+ static numCallsToConstructor: number;
4
+ static callsToPushJson: Json[];
5
+ static numCallsToDestroy: number;
6
+ constructor();
7
+ pushJson(data: Json): void;
8
+ destroy(): void;
9
+ static resetTestDouble(): void;
10
+ }
@@ -0,0 +1,20 @@
1
+ export default class FakeJsonOutlet {
2
+ static numCallsToConstructor = 0;
3
+ static callsToPushJson = [];
4
+ static numCallsToDestroy = 0;
5
+ constructor() {
6
+ FakeJsonOutlet.numCallsToConstructor++;
7
+ }
8
+ pushJson(data) {
9
+ FakeJsonOutlet.callsToPushJson.push(data);
10
+ }
11
+ destroy() {
12
+ FakeJsonOutlet.numCallsToDestroy++;
13
+ }
14
+ static resetTestDouble() {
15
+ FakeJsonOutlet.numCallsToConstructor = 0;
16
+ FakeJsonOutlet.callsToPushJson = [];
17
+ FakeJsonOutlet.numCallsToDestroy = 0;
18
+ }
19
+ }
20
+ //# sourceMappingURL=FakeJsonOutlet.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeJsonOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/JsonOutlet/FakeJsonOutlet.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,cAAc;IACxB,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAChC,MAAM,CAAC,eAAe,GAAW,EAAE,CAAA;IACnC,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAEnC;QACI,cAAc,CAAC,qBAAqB,EAAE,CAAA;IAC1C,CAAC;IAEM,QAAQ,CAAC,IAAU;QACtB,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC7C,CAAC;IAEM,OAAO;QACV,cAAc,CAAC,iBAAiB,EAAE,CAAA;IACtC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,cAAc,CAAC,qBAAqB,GAAG,CAAC,CAAA;QACxC,cAAc,CAAC,eAAe,GAAG,EAAE,CAAA;QACnC,cAAc,CAAC,iBAAiB,GAAG,CAAC,CAAA;IACxC,CAAC"}
@@ -0,0 +1,12 @@
1
+ import { UsbDevice, UsbDeviceOptions } from '../../impl/controllers/UsbDeviceController.js';
2
+ export default class FakeUsbDevice implements UsbDevice {
3
+ static callsToConstructor: (UsbDeviceOptions | undefined)[];
4
+ static numCallsToConnect: number;
5
+ static callsToWriteUsb: string[];
6
+ static numCallsToDisconnect: number;
7
+ constructor(options?: UsbDeviceOptions);
8
+ connect(): Promise<void>;
9
+ writeUsb(value: string): Promise<void>;
10
+ disconnect(): Promise<void>;
11
+ static resetTestDouble(): void;
12
+ }
@@ -0,0 +1,25 @@
1
+ export default class FakeUsbDevice {
2
+ static callsToConstructor = [];
3
+ static numCallsToConnect = 0;
4
+ static callsToWriteUsb = [];
5
+ static numCallsToDisconnect = 0;
6
+ constructor(options) {
7
+ FakeUsbDevice.callsToConstructor.push(options);
8
+ }
9
+ async connect() {
10
+ FakeUsbDevice.numCallsToConnect++;
11
+ }
12
+ async writeUsb(value) {
13
+ FakeUsbDevice.callsToWriteUsb.push(value);
14
+ }
15
+ async disconnect() {
16
+ FakeUsbDevice.numCallsToDisconnect++;
17
+ }
18
+ static resetTestDouble() {
19
+ FakeUsbDevice.callsToConstructor.length = 0;
20
+ FakeUsbDevice.numCallsToConnect = 0;
21
+ FakeUsbDevice.callsToWriteUsb.length = 0;
22
+ FakeUsbDevice.numCallsToDisconnect = 0;
23
+ }
24
+ }
25
+ //# sourceMappingURL=FakeUsbDevice.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeUsbDevice.js","sourceRoot":"","sources":["../../../src/testDoubles/UsbDevice/FakeUsbDevice.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,OAAO,aAAa;IACvB,MAAM,CAAC,kBAAkB,GAAqC,EAAE,CAAA;IAChE,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC5B,MAAM,CAAC,eAAe,GAAa,EAAE,CAAA;IACrC,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAEtC,YAAmB,OAA0B;QACzC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAClD,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,aAAa,CAAC,iBAAiB,EAAE,CAAA;IACrC,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC/B,aAAa,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IAC7C,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,aAAa,CAAC,oBAAoB,EAAE,CAAA;IACxC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,aAAa,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAA;QAC3C,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAA;QACnC,aAAa,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;QACxC,aAAa,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAC1C,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neurodevs/node-lsl",
3
- "version": "20.0.0",
3
+ "version": "22.0.0",
4
4
  "description": "Lab Streaming Layer (LSL) bindings for Node",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -42,13 +42,13 @@
42
42
  },
43
43
  "dependencies": {
44
44
  "@neurodevs/generate-id": "^1.1.3",
45
- "@neurodevs/ndx-native": "^7.1.4",
45
+ "@neurodevs/ndx-native": "^8.0.0",
46
46
  "ffi-rs": "^1.3.1",
47
47
  "ws": "^8.18.3"
48
48
  },
49
49
  "devDependencies": {
50
50
  "@neurodevs/eslint-config-ndx": "^1.0.2",
51
- "@neurodevs/node-tdd": "^3.0.2",
51
+ "@neurodevs/node-tdd": "^3.0.3",
52
52
  "@neurodevs/prettier-config-ndx": "^1.0.2",
53
53
  "@types/ws": "^8.18.1",
54
54
  "koffi": "^3.1.2",
@@ -10,7 +10,7 @@ import {
10
10
  } from '@neurodevs/ndx-native'
11
11
  import AbstractModuleTest from '@neurodevs/node-tdd'
12
12
 
13
- import SpyLslEmitter from '../testDoubles/LslEmitter/SpyLslEmitter.js'
13
+ import SpyEventMarkerOutlet from '../testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js'
14
14
  import FakeLslInfo from '../testDoubles/LslInfo/FakeLslInfo.js'
15
15
  import SpyLslInfo from '../testDoubles/LslInfo/SpyLslInfo.js'
16
16
  import FakeLslInlet from '../testDoubles/LslInlet/FakeLslInlet.js'
@@ -20,8 +20,8 @@ import SpyLslWsBridge from '../testDoubles/LslWsBridge/SpyLslWsBridge.js'
20
20
  import FakeWebSocket from '../testDoubles/WebSockets/FakeWebSocket.js'
21
21
  import FakeWebSocketServer from '../testDoubles/WebSockets/FakeWebSocketServer.js'
22
22
  import LslWebSocketBridge from '../impl/LslWebSocketBridge.js'
23
- import BleDeviceController from '../impl/controllers/BleDeviceController.js'
24
- import LslEventMarkerEmitter from '../impl/LslEventMarkerEmitter.js'
23
+ import BleGattController from '../impl/controllers/BleGattController.js'
24
+ import LslEventMarkerOutlet from '../impl/LslEventMarkerOutlet.js'
25
25
  import LslStreamInfo from '../impl/LslStreamInfo.js'
26
26
  import LslStreamInlet, {
27
27
  OnDataCallback,
@@ -35,6 +35,7 @@ export default class AbstractPackageTest extends AbstractModuleTest {
35
35
 
36
36
  protected static readonly fakeLslInfo = new FakeLslInfo()
37
37
 
38
+ protected static readonly deviceUuid = this.generateId()
38
39
  protected static readonly name_ = this.generateId()
39
40
  protected static readonly type = this.generateId()
40
41
  protected static readonly sourceId = this.generateId()
@@ -57,6 +58,7 @@ export default class AbstractPackageTest extends AbstractModuleTest {
57
58
 
58
59
  this.setImmediateTimeouts()
59
60
 
61
+ this.setFakeLiblsl()
60
62
  this.setFakeLibndx()
61
63
  }
62
64
 
@@ -73,7 +75,7 @@ export default class AbstractPackageTest extends AbstractModuleTest {
73
75
  protected static setImmediateTimeouts() {
74
76
  this.callsToSetTimeout = []
75
77
 
76
- BleDeviceController.setTimeout = ((
78
+ BleGattController.setTimeout = ((
77
79
  callback: (...args: unknown[]) => void,
78
80
  delayMs?: number,
79
81
  ...args: unknown[]
@@ -99,7 +101,7 @@ export default class AbstractPackageTest extends AbstractModuleTest {
99
101
  FakeLibndx.resetTestDouble()
100
102
  FakeLibndx.fakeResult = { status: 200 }
101
103
 
102
- BleDeviceController.ndx = this.fakeLibndx
104
+ BleGattController.ndx = this.fakeLibndx
103
105
  }
104
106
 
105
107
  protected static setSpyLslInfo() {
@@ -126,8 +128,8 @@ export default class AbstractPackageTest extends AbstractModuleTest {
126
128
  FakeLslOutlet.resetTestDouble()
127
129
  }
128
130
 
129
- protected static setSpyLslEmitter() {
130
- LslEventMarkerEmitter.Class = SpyLslEmitter
131
+ protected static setSpyEventMarkerOutlet() {
132
+ LslEventMarkerOutlet.Class = SpyEventMarkerOutlet
131
133
  }
132
134
 
133
135
  protected static setSpyLslWsBridge() {