@neurodevs/node-lsl 18.1.0 → 20.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.
- package/build/__tests__/AbstractPackageTest.d.ts +19 -17
- package/build/__tests__/AbstractPackageTest.js +54 -39
- package/build/__tests__/AbstractPackageTest.js.map +1 -1
- package/build/__tests__/impl/BleDeviceController.test.d.ts +6 -1
- package/build/__tests__/impl/BleDeviceController.test.js +44 -15
- package/build/__tests__/impl/BleDeviceController.test.js.map +1 -1
- package/build/__tests__/impl/LslEventMarkerEmitter.test.js +13 -13
- package/build/__tests__/impl/LslEventMarkerEmitter.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInfo.test.js +2 -2
- package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInlet.test.d.ts +3 -5
- package/build/__tests__/impl/LslStreamInlet.test.js +13 -46
- package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamOutlet.test.js +9 -16
- package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.js +9 -10
- package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
- package/build/__tests__/impl/UsbDeviceController.test.d.ts +17 -0
- package/build/__tests__/impl/UsbDeviceController.test.js +81 -0
- package/build/__tests__/impl/UsbDeviceController.test.js.map +1 -0
- package/build/__tests__/impl/WindowedClockRegressor.test.d.ts +19 -0
- package/build/__tests__/impl/WindowedClockRegressor.test.js +172 -0
- package/build/__tests__/impl/WindowedClockRegressor.test.js.map +1 -0
- package/build/assertions.js +1 -1
- package/build/assertions.js.map +1 -1
- package/build/impl/LslEventMarkerEmitter.d.ts +12 -12
- package/build/impl/LslEventMarkerEmitter.js.map +1 -1
- package/build/impl/LslStreamInfo.d.ts +7 -7
- package/build/impl/LslStreamInfo.js.map +1 -1
- package/build/impl/LslStreamInlet.d.ts +63 -20
- package/build/impl/LslStreamInlet.js +221 -64
- package/build/impl/LslStreamInlet.js.map +1 -1
- package/build/impl/LslStreamOutlet.d.ts +16 -14
- package/build/impl/LslStreamOutlet.js +34 -37
- package/build/impl/LslStreamOutlet.js.map +1 -1
- package/build/impl/LslWebSocketBridge.d.ts +10 -10
- package/build/impl/LslWebSocketBridge.js.map +1 -1
- package/build/impl/clocks/WindowedClockRegressor.d.ts +24 -0
- package/build/impl/clocks/WindowedClockRegressor.js +73 -0
- package/build/impl/clocks/WindowedClockRegressor.js.map +1 -0
- package/build/impl/controllers/BleDeviceController.d.ts +3 -1
- package/build/impl/controllers/BleDeviceController.js +9 -1
- package/build/impl/controllers/BleDeviceController.js.map +1 -1
- package/build/impl/controllers/UsbDeviceController.d.ts +23 -0
- package/build/impl/controllers/UsbDeviceController.js +40 -0
- package/build/impl/controllers/UsbDeviceController.js.map +1 -0
- package/build/index.d.ts +32 -20
- package/build/index.js +39 -26
- package/build/index.js.map +1 -1
- package/build/scripts/{runLslEventMarkerEmitter.js → runLslEmitter.js} +5 -4
- package/build/scripts/runLslEmitter.js.map +1 -0
- package/build/scripts/{runLslStreamOutlet.js → runLslOutlet.js} +1 -1
- package/build/scripts/runLslOutlet.js.map +1 -0
- package/build/scripts/runMuse.js +1 -1
- package/build/scripts/runMuse.js.map +1 -1
- package/build/scripts/runUsb.js +14 -0
- package/build/scripts/runUsb.js.map +1 -0
- package/build/testDoubles/BleController/FakeBleController.d.ts +3 -1
- package/build/testDoubles/BleController/FakeBleController.js +5 -0
- package/build/testDoubles/BleController/FakeBleController.js.map +1 -1
- package/build/testDoubles/ClockRegressor/FakeClockRegressor.d.ts +17 -0
- package/build/testDoubles/ClockRegressor/FakeClockRegressor.js +23 -0
- package/build/testDoubles/ClockRegressor/FakeClockRegressor.js.map +1 -0
- package/build/testDoubles/{EventMarkerEmitter/FakeEventMarkerEmitter.d.ts → LslEmitter/FakeLslEmitter.d.ts} +4 -4
- package/build/testDoubles/{EventMarkerEmitter/FakeEventMarkerEmitter.js → LslEmitter/FakeLslEmitter.js} +7 -7
- package/build/testDoubles/LslEmitter/FakeLslEmitter.js.map +1 -0
- package/build/testDoubles/{EventMarkerEmitter/SpyEventMarkerEmitter.d.ts → LslEmitter/SpyLslEmitter.d.ts} +4 -4
- package/build/testDoubles/{EventMarkerEmitter/SpyEventMarkerEmitter.js → LslEmitter/SpyLslEmitter.js} +3 -3
- package/build/testDoubles/LslEmitter/SpyLslEmitter.js.map +1 -0
- package/build/testDoubles/LslEmitter/ThrowingLslEmitter.d.ts +9 -0
- package/build/testDoubles/{EventMarkerEmitter/ThrowingEventMarkerEmitter.js → LslEmitter/ThrowingLslEmitter.js} +2 -2
- package/build/testDoubles/LslEmitter/ThrowingLslEmitter.js.map +1 -0
- package/build/testDoubles/{StreamInfo/FakeStreamInfo.d.ts → LslInfo/FakeLslInfo.d.ts} +4 -4
- package/build/testDoubles/{StreamInfo/FakeStreamInfo.js → LslInfo/FakeLslInfo.js} +7 -7
- package/build/testDoubles/LslInfo/FakeLslInfo.js.map +1 -0
- package/build/testDoubles/LslInfo/SpyLslInfo.d.ts +10 -0
- package/build/testDoubles/{StreamInfo/SpyStreamInfo.js → LslInfo/SpyLslInfo.js} +4 -4
- package/build/testDoubles/LslInfo/SpyLslInfo.js.map +1 -0
- package/build/testDoubles/{StreamInlet/FakeStreamInlet.d.ts → LslInlet/FakeLslInlet.d.ts} +4 -4
- package/build/testDoubles/{StreamInlet/FakeStreamInlet.js → LslInlet/FakeLslInlet.js} +12 -11
- package/build/testDoubles/LslInlet/FakeLslInlet.js.map +1 -0
- package/build/testDoubles/LslInlet/SpyLslInlet.d.ts +4 -0
- package/build/testDoubles/{StreamInlet/SpyStreamInlet.js → LslInlet/SpyLslInlet.js} +2 -2
- package/build/testDoubles/LslInlet/SpyLslInlet.js.map +1 -0
- package/build/testDoubles/{StreamOutlet/FakeStreamOutlet.d.ts → LslOutlet/FakeLslOutlet.d.ts} +5 -5
- package/build/testDoubles/{StreamOutlet/FakeStreamOutlet.js → LslOutlet/FakeLslOutlet.js} +8 -8
- package/build/testDoubles/LslOutlet/FakeLslOutlet.js.map +1 -0
- package/build/testDoubles/LslWsBridge/FakeLslWsBridge.d.ts +14 -0
- package/build/testDoubles/{WebSocketBridge/FakeWebSocketBridge.js → LslWsBridge/FakeLslWsBridge.js} +14 -14
- package/build/testDoubles/LslWsBridge/FakeLslWsBridge.js.map +1 -0
- package/build/testDoubles/LslWsBridge/SpyLslWsBridge.d.ts +4 -0
- package/build/testDoubles/{WebSocketBridge/SpyLslWebSocketBridge.js → LslWsBridge/SpyLslWsBridge.js} +2 -2
- package/build/testDoubles/LslWsBridge/SpyLslWsBridge.js.map +1 -0
- package/build/testDoubles/UsbController/FakeUsbController.d.ts +12 -0
- package/build/testDoubles/UsbController/FakeUsbController.js +25 -0
- package/build/testDoubles/UsbController/FakeUsbController.js.map +1 -0
- package/build/testDoubles/consts.d.ts +2 -12
- package/build/testDoubles/consts.js +0 -20
- package/build/testDoubles/consts.js.map +1 -1
- package/build/testDoubles/generateRandomOutletOptions.d.ts +2 -2
- package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
- package/package.json +6 -5
- package/src/__tests__/AbstractPackageTest.ts +78 -49
- package/src/__tests__/impl/BleDeviceController.test.ts +59 -18
- package/src/__tests__/impl/LslEventMarkerEmitter.test.ts +19 -24
- package/src/__tests__/impl/LslStreamInfo.test.ts +8 -8
- package/src/__tests__/impl/LslStreamInlet.test.ts +21 -78
- package/src/__tests__/impl/LslStreamOutlet.test.ts +22 -28
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +15 -18
- package/src/__tests__/impl/UsbDeviceController.test.ts +109 -0
- package/src/__tests__/impl/WindowedClockRegressor.test.ts +262 -0
- package/src/assertions.ts +1 -2
- package/src/impl/LslEventMarkerEmitter.ts +15 -17
- package/src/impl/LslStreamInfo.ts +7 -9
- package/src/impl/LslStreamInlet.ts +304 -77
- package/src/impl/LslStreamOutlet.ts +59 -57
- package/src/impl/LslWebSocketBridge.ts +15 -18
- package/src/impl/clocks/WindowedClockRegressor.ts +136 -0
- package/src/impl/controllers/BleDeviceController.ts +18 -1
- package/src/impl/controllers/UsbDeviceController.ts +65 -0
- package/src/index.ts +48 -28
- package/src/scripts/{runLslEventMarkerEmitter.ts → runLslEmitter.ts} +4 -3
- package/src/scripts/runMuse.ts +1 -1
- package/src/scripts/runUsb.ts +20 -0
- package/src/testDoubles/BleController/FakeBleController.ts +11 -0
- package/src/testDoubles/ClockRegressor/FakeClockRegressor.ts +46 -0
- package/src/testDoubles/{EventMarkerEmitter/FakeEventMarkerEmitter.ts → LslEmitter/FakeLslEmitter.ts} +10 -10
- package/src/testDoubles/{EventMarkerEmitter/SpyEventMarkerEmitter.ts → LslEmitter/SpyLslEmitter.ts} +4 -4
- package/src/testDoubles/{EventMarkerEmitter/ThrowingEventMarkerEmitter.ts → LslEmitter/ThrowingLslEmitter.ts} +4 -4
- package/src/testDoubles/{StreamInfo/FakeStreamInfo.ts → LslInfo/FakeLslInfo.ts} +9 -9
- package/src/testDoubles/{StreamInfo/SpyStreamInfo.ts → LslInfo/SpyLslInfo.ts} +5 -5
- package/src/testDoubles/{StreamInlet/FakeStreamInlet.ts → LslInlet/FakeLslInlet.ts} +15 -14
- package/src/testDoubles/LslInlet/SpyLslInlet.ts +10 -0
- package/src/testDoubles/{StreamOutlet/FakeStreamOutlet.ts → LslOutlet/FakeLslOutlet.ts} +11 -14
- package/src/testDoubles/{WebSocketBridge/FakeWebSocketBridge.ts → LslWsBridge/FakeLslWsBridge.ts} +19 -20
- package/src/testDoubles/LslWsBridge/SpyLslWsBridge.ts +9 -0
- package/src/testDoubles/UsbController/FakeUsbController.ts +34 -0
- package/src/testDoubles/consts.ts +3 -23
- package/src/testDoubles/generateRandomOutletOptions.ts +2 -2
- package/build/consts.d.ts +0 -11
- package/build/consts.js +0 -21
- package/build/consts.js.map +0 -1
- package/build/impl/workers/inlet/LslStreamInlet.worker.d.ts +0 -22
- package/build/impl/workers/inlet/LslStreamInlet.worker.js +0 -42
- package/build/impl/workers/inlet/LslStreamInlet.worker.js.map +0 -1
- package/build/impl/workers/inlet/StreamInletWorker.d.ts +0 -73
- package/build/impl/workers/inlet/StreamInletWorker.js +0 -253
- package/build/impl/workers/inlet/StreamInletWorker.js.map +0 -1
- package/build/impl/workers/outlet/LslStreamOutlet.worker.d.ts +0 -32
- package/build/impl/workers/outlet/LslStreamOutlet.worker.js +0 -82
- package/build/impl/workers/outlet/LslStreamOutlet.worker.js.map +0 -1
- package/build/scripts/discoverMuse.js +0 -40
- package/build/scripts/discoverMuse.js.map +0 -1
- package/build/scripts/runLslEventMarkerEmitter.js.map +0 -1
- package/build/scripts/runLslStreamOutlet.js.map +0 -1
- package/build/scripts/testDestroyOutlet.d.ts +0 -1
- package/build/scripts/testDestroyOutlet.js +0 -4
- package/build/scripts/testDestroyOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.js.map +0 -1
- package/build/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js.map +0 -1
- package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.d.ts +0 -9
- package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.js.map +0 -1
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +0 -1
- package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +0 -10
- package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +0 -1
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +0 -1
- package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +0 -4
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +0 -1
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +0 -1
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.d.ts +0 -14
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js.map +0 -1
- package/build/testDoubles/WebSocketBridge/SpyLslWebSocketBridge.d.ts +0 -4
- package/build/testDoubles/WebSocketBridge/SpyLslWebSocketBridge.js.map +0 -1
- package/build/testDoubles/WorkerThreads/FakeWorker.d.ts +0 -27
- package/build/testDoubles/WorkerThreads/FakeWorker.js +0 -67
- package/build/testDoubles/WorkerThreads/FakeWorker.js.map +0 -1
- package/src/consts.ts +0 -21
- package/src/impl/workers/inlet/LslStreamInlet.worker.ts +0 -74
- package/src/impl/workers/inlet/StreamInletWorker.ts +0 -348
- package/src/impl/workers/outlet/LslStreamOutlet.worker.ts +0 -144
- package/src/scripts/discoverMuse.ts +0 -50
- package/src/scripts/testDestroyOutlet.ts +0 -5
- package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +0 -10
- package/src/testDoubles/WebSocketBridge/SpyLslWebSocketBridge.ts +0 -9
- package/src/testDoubles/WorkerThreads/FakeWorker.ts +0 -99
- /package/build/scripts/{discoverMuse.d.ts → runLslEmitter.d.ts} +0 -0
- /package/build/scripts/{runLslEventMarkerEmitter.d.ts → runLslOutlet.d.ts} +0 -0
- /package/build/scripts/{runLslStreamOutlet.d.ts → runUsb.d.ts} +0 -0
- /package/src/scripts/{runLslStreamOutlet.ts → runLslOutlet.ts} +0 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default class
|
|
1
|
+
import { LslEmitter, EmitOptions, TimedEventMarker } from '../../impl/LslEventMarkerEmitter.js';
|
|
2
|
+
export default class FakeLslEmitter implements LslEmitter {
|
|
3
3
|
static numCallsToConstructor: number;
|
|
4
4
|
static callsToEmit: {
|
|
5
5
|
markerName: string;
|
|
6
|
-
options?:
|
|
6
|
+
options?: EmitOptions;
|
|
7
7
|
}[];
|
|
8
8
|
static callsToEmitMany: TimedEventMarker[][];
|
|
9
9
|
static numCallsToInterrupt: number;
|
|
10
10
|
static numCallsToDestroy: number;
|
|
11
11
|
constructor();
|
|
12
|
-
emit(markerName: string, options?:
|
|
12
|
+
emit(markerName: string, options?: EmitOptions): Promise<void>;
|
|
13
13
|
emitMany(markers: TimedEventMarker[]): Promise<void>;
|
|
14
14
|
interrupt(): void;
|
|
15
15
|
destroy(): void;
|
|
@@ -1,23 +1,23 @@
|
|
|
1
|
-
export default class
|
|
1
|
+
export default class FakeLslEmitter {
|
|
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
|
-
|
|
8
|
+
FakeLslEmitter.numCallsToConstructor++;
|
|
9
9
|
}
|
|
10
10
|
async emit(markerName, options) {
|
|
11
|
-
|
|
11
|
+
FakeLslEmitter.callsToEmit.push({ markerName, options });
|
|
12
12
|
}
|
|
13
13
|
async emitMany(markers) {
|
|
14
|
-
|
|
14
|
+
FakeLslEmitter.callsToEmitMany.push(markers);
|
|
15
15
|
}
|
|
16
16
|
interrupt() {
|
|
17
|
-
|
|
17
|
+
FakeLslEmitter.numCallsToInterrupt++;
|
|
18
18
|
}
|
|
19
19
|
destroy() {
|
|
20
|
-
|
|
20
|
+
FakeLslEmitter.numCallsToDestroy++;
|
|
21
21
|
}
|
|
22
22
|
static resetTestDouble() {
|
|
23
23
|
this.numCallsToConstructor = 0;
|
|
@@ -27,4 +27,4 @@ export default class FakeEventMarkerEmitter {
|
|
|
27
27
|
this.numCallsToDestroy = 0;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=FakeLslEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeLslEmitter.js","sourceRoot":"","sources":["../../../src/testDoubles/LslEmitter/FakeLslEmitter.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,cAAc;IACxB,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,cAAc,CAAC,qBAAqB,EAAE,CAAA;IAC1C,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,UAAkB,EAAE,OAAqB;QACvD,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,UAAU,EAAE,OAAO,EAAE,CAAC,CAAA;IAC5D,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,OAA2B;QAC7C,cAAc,CAAC,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAEM,SAAS;QACZ,cAAc,CAAC,mBAAmB,EAAE,CAAA;IACxC,CAAC;IAEM,OAAO;QACV,cAAc,CAAC,iBAAiB,EAAE,CAAA;IACtC,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,10 +1,10 @@
|
|
|
1
1
|
import LslEventMarkerEmitter from '../../impl/LslEventMarkerEmitter.js';
|
|
2
|
-
import {
|
|
3
|
-
export default class
|
|
2
|
+
import { LslOutlet } from '../../impl/LslStreamOutlet.js';
|
|
3
|
+
export default class SpyLslEmitter extends LslEventMarkerEmitter {
|
|
4
4
|
static shouldCallWaitOnSuper: boolean;
|
|
5
5
|
totalwaitAfterMs: number;
|
|
6
|
-
constructor(outlet:
|
|
6
|
+
constructor(outlet: LslOutlet);
|
|
7
7
|
wait(waitAfterMs: number): Promise<unknown>;
|
|
8
|
-
getStreamOutlet():
|
|
8
|
+
getStreamOutlet(): LslOutlet;
|
|
9
9
|
resetTestDouble(): void;
|
|
10
10
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import LslEventMarkerEmitter from '../../impl/LslEventMarkerEmitter.js';
|
|
2
|
-
export default class
|
|
2
|
+
export default class SpyLslEmitter extends LslEventMarkerEmitter {
|
|
3
3
|
static shouldCallWaitOnSuper = false;
|
|
4
4
|
totalwaitAfterMs;
|
|
5
5
|
constructor(outlet) {
|
|
@@ -8,7 +8,7 @@ export default class SpyEventMarkerEmitter extends LslEventMarkerEmitter {
|
|
|
8
8
|
}
|
|
9
9
|
async wait(waitAfterMs) {
|
|
10
10
|
this.totalwaitAfterMs += waitAfterMs;
|
|
11
|
-
if (
|
|
11
|
+
if (SpyLslEmitter.shouldCallWaitOnSuper) {
|
|
12
12
|
return super.wait(waitAfterMs);
|
|
13
13
|
}
|
|
14
14
|
return Promise.resolve();
|
|
@@ -20,4 +20,4 @@ export default class SpyEventMarkerEmitter extends LslEventMarkerEmitter {
|
|
|
20
20
|
this.totalwaitAfterMs = 0;
|
|
21
21
|
}
|
|
22
22
|
}
|
|
23
|
-
//# sourceMappingURL=
|
|
23
|
+
//# sourceMappingURL=SpyLslEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpyLslEmitter.js","sourceRoot":"","sources":["../../../src/testDoubles/LslEmitter/SpyLslEmitter.ts"],"names":[],"mappings":"AAAA,OAAO,qBAAqB,MAAM,qCAAqC,CAAA;AAGvE,MAAM,CAAC,OAAO,OAAO,aAAc,SAAQ,qBAAqB;IACrD,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,aAAa,CAAC,qBAAqB,EAAE,CAAC;YACtC,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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { LslEmitter, EmitOptions, TimedEventMarker } from '../../impl/LslEventMarkerEmitter.js';
|
|
2
|
+
export default class ThrowingLslEmitter implements LslEmitter {
|
|
3
|
+
private errorMsg;
|
|
4
|
+
constructor();
|
|
5
|
+
emit(_markerName: string, _options?: EmitOptions): Promise<void>;
|
|
6
|
+
emitMany(_markers: TimedEventMarker[]): Promise<void>;
|
|
7
|
+
interrupt(): void;
|
|
8
|
+
destroy(): void;
|
|
9
|
+
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export default class
|
|
1
|
+
export default class ThrowingLslEmitter {
|
|
2
2
|
errorMsg = 'Intentional throwing: ';
|
|
3
3
|
constructor() {
|
|
4
4
|
throw new Error(this.errorMsg + 'constructor');
|
|
@@ -16,4 +16,4 @@ export default class ThrowingEventMarkerEmitter {
|
|
|
16
16
|
throw new Error(this.errorMsg + 'destroy');
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
//# sourceMappingURL=
|
|
19
|
+
//# sourceMappingURL=ThrowingLslEmitter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ThrowingLslEmitter.js","sourceRoot":"","sources":["../../../src/testDoubles/LslEmitter/ThrowingLslEmitter.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAC3B,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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { InfoHandle } from '@neurodevs/ndx-native';
|
|
2
|
-
import {
|
|
3
|
-
export default class
|
|
4
|
-
static callsToConstructor: (
|
|
2
|
+
import { LslInfo, LslInfoOptions } from '../../impl/LslStreamInfo.js';
|
|
3
|
+
export default class FakeLslInfo implements LslInfo {
|
|
4
|
+
static callsToConstructor: (LslInfoOptions | undefined)[];
|
|
5
5
|
static numCallsToDestroy: number;
|
|
6
6
|
static infoHandle: InfoHandle;
|
|
7
7
|
name: string;
|
|
@@ -11,7 +11,7 @@ export default class FakeStreamInfo implements StreamInfo {
|
|
|
11
11
|
channelFormat: "float32";
|
|
12
12
|
sampleRateHz: number;
|
|
13
13
|
units: string;
|
|
14
|
-
constructor(options?:
|
|
14
|
+
constructor(options?: LslInfoOptions);
|
|
15
15
|
destroy(): void;
|
|
16
16
|
get channelCount(): number;
|
|
17
17
|
get infoHandle(): InfoHandle;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import generateId from '@neurodevs/generate-id';
|
|
2
|
-
export default class
|
|
2
|
+
export default class FakeLslInfo {
|
|
3
3
|
static callsToConstructor = [];
|
|
4
4
|
static numCallsToDestroy = 0;
|
|
5
5
|
static infoHandle = {};
|
|
@@ -11,20 +11,20 @@ export default class FakeStreamInfo {
|
|
|
11
11
|
sampleRateHz = 0;
|
|
12
12
|
units = 'N/A';
|
|
13
13
|
constructor(options) {
|
|
14
|
-
|
|
14
|
+
FakeLslInfo.callsToConstructor.push(options);
|
|
15
15
|
}
|
|
16
16
|
destroy() {
|
|
17
|
-
|
|
17
|
+
FakeLslInfo.numCallsToDestroy++;
|
|
18
18
|
}
|
|
19
19
|
get channelCount() {
|
|
20
20
|
return this.channelNames.length;
|
|
21
21
|
}
|
|
22
22
|
get infoHandle() {
|
|
23
|
-
return
|
|
23
|
+
return FakeLslInfo.infoHandle;
|
|
24
24
|
}
|
|
25
25
|
static resetTestDouble() {
|
|
26
|
-
|
|
27
|
-
|
|
26
|
+
FakeLslInfo.callsToConstructor = [];
|
|
27
|
+
FakeLslInfo.numCallsToDestroy = 0;
|
|
28
28
|
}
|
|
29
29
|
}
|
|
30
|
-
//# sourceMappingURL=
|
|
30
|
+
//# sourceMappingURL=FakeLslInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeLslInfo.js","sourceRoot":"","sources":["../../../src/testDoubles/LslInfo/FakeLslInfo.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAK/C,MAAM,CAAC,OAAO,OAAO,WAAW;IACrB,MAAM,CAAC,kBAAkB,GAAmC,EAAE,CAAA;IAC9D,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,MAAM,CAAC,UAAU,GAAG,EAAgB,CAAA;IAEpC,IAAI,GAAG,UAAU,EAAE,CAAA;IACnB,IAAI,GAAG,UAAU,EAAE,CAAA;IACnB,QAAQ,GAAG,UAAU,EAAE,CAAA;IACvB,YAAY,GAAa,CAAC,UAAU,EAAE,EAAE,UAAU,EAAE,EAAE,UAAU,EAAE,CAAC,CAAA;IACnE,aAAa,GAAG,SAAkB,CAAA;IAClC,YAAY,GAAG,CAAC,CAAA;IAChB,KAAK,GAAG,KAAK,CAAA;IAEpB,YAAmB,OAAwB;QACvC,WAAW,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IAChD,CAAC;IAEM,OAAO;QACV,WAAW,CAAC,iBAAiB,EAAE,CAAA;IACnC,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACnC,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,WAAW,CAAC,UAAU,CAAA;IACjC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,WAAW,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACnC,WAAW,CAAC,iBAAiB,GAAG,CAAC,CAAA;IACrC,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import LslStreamInfo, { LslInfoOptions } from '../../impl/LslStreamInfo.js';
|
|
2
|
+
export default class SpyLslInfo extends LslStreamInfo {
|
|
3
|
+
static numCallsToConstructor: number;
|
|
4
|
+
constructor(options: LslInfoOptions);
|
|
5
|
+
getName(): string;
|
|
6
|
+
getType(): string;
|
|
7
|
+
getSourceId(): string;
|
|
8
|
+
getUnits(): string;
|
|
9
|
+
static resetTestDouble(): void;
|
|
10
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import LslStreamInfo from '../../impl/LslStreamInfo.js';
|
|
2
|
-
export default class
|
|
2
|
+
export default class SpyLslInfo extends LslStreamInfo {
|
|
3
3
|
static numCallsToConstructor = 0;
|
|
4
4
|
constructor(options) {
|
|
5
5
|
super(options);
|
|
6
|
-
|
|
6
|
+
SpyLslInfo.numCallsToConstructor++;
|
|
7
7
|
}
|
|
8
8
|
getName() {
|
|
9
9
|
return this.name;
|
|
@@ -18,7 +18,7 @@ export default class SpyStreamInfo extends LslStreamInfo {
|
|
|
18
18
|
return this.units;
|
|
19
19
|
}
|
|
20
20
|
static resetTestDouble() {
|
|
21
|
-
|
|
21
|
+
SpyLslInfo.numCallsToConstructor = 0;
|
|
22
22
|
}
|
|
23
23
|
}
|
|
24
|
-
//# sourceMappingURL=
|
|
24
|
+
//# sourceMappingURL=SpyLslInfo.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpyLslInfo.js","sourceRoot":"","sources":["../../../src/testDoubles/LslInfo/SpyLslInfo.ts"],"names":[],"mappings":"AAAA,OAAO,aAAiC,MAAM,6BAA6B,CAAA;AAE3E,MAAM,CAAC,OAAO,OAAO,UAAW,SAAQ,aAAa;IAC1C,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAEvC,YAAmB,OAAuB;QACtC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,UAAU,CAAC,qBAAqB,EAAE,CAAA;IACtC,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,WAAW;QACd,OAAO,IAAI,CAAC,QAAQ,CAAA;IACxB,CAAC;IAEM,QAAQ;QACX,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,UAAU,CAAC,qBAAqB,GAAG,CAAC,CAAA;IACxC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { OnDataCallback,
|
|
2
|
-
export default class
|
|
1
|
+
import { OnDataCallback, LslInlet, LslInletOptions } from '../../impl/LslStreamInlet.js';
|
|
2
|
+
export default class FakeLslInlet implements LslInlet {
|
|
3
3
|
static callsToConstructor: {
|
|
4
|
-
options?:
|
|
4
|
+
options?: LslInletOptions;
|
|
5
5
|
onData?: OnDataCallback;
|
|
6
6
|
}[];
|
|
7
7
|
static numCallsToStartPulling: number;
|
|
@@ -10,7 +10,7 @@ export default class FakeStreamInlet implements StreamInlet {
|
|
|
10
10
|
static numCallsToDestroy: number;
|
|
11
11
|
isRunning: boolean;
|
|
12
12
|
protected onData: OnDataCallback;
|
|
13
|
-
constructor(options?:
|
|
13
|
+
constructor(options?: LslInletOptions, onData?: OnDataCallback);
|
|
14
14
|
startPulling(): Promise<void>;
|
|
15
15
|
stopPulling(): void;
|
|
16
16
|
flushInlet(): void;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export default class
|
|
1
|
+
export default class FakeLslInlet {
|
|
2
2
|
static callsToConstructor = [];
|
|
3
3
|
static numCallsToStartPulling = 0;
|
|
4
4
|
static numCallsToStopPulling = 0;
|
|
@@ -8,30 +8,31 @@ export default class FakeStreamInlet {
|
|
|
8
8
|
onData;
|
|
9
9
|
constructor(options, onData) {
|
|
10
10
|
this.onData = onData ?? (() => { });
|
|
11
|
-
|
|
11
|
+
FakeLslInlet.callsToConstructor.push({
|
|
12
12
|
options,
|
|
13
13
|
onData: this.onData,
|
|
14
14
|
});
|
|
15
15
|
}
|
|
16
16
|
async startPulling() {
|
|
17
|
-
|
|
17
|
+
FakeLslInlet.numCallsToStartPulling++;
|
|
18
18
|
this.isRunning = true;
|
|
19
19
|
}
|
|
20
20
|
stopPulling() {
|
|
21
|
-
|
|
21
|
+
FakeLslInlet.numCallsToStopPulling++;
|
|
22
22
|
this.isRunning = false;
|
|
23
23
|
}
|
|
24
24
|
flushInlet() {
|
|
25
|
-
|
|
25
|
+
FakeLslInlet.numCallsToFlushInlet++;
|
|
26
26
|
}
|
|
27
27
|
destroy() {
|
|
28
|
-
|
|
28
|
+
FakeLslInlet.numCallsToDestroy++;
|
|
29
29
|
}
|
|
30
30
|
static resetTestDouble() {
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
31
|
+
this.callsToConstructor = [];
|
|
32
|
+
this.numCallsToStartPulling = 0;
|
|
33
|
+
this.numCallsToStopPulling = 0;
|
|
34
|
+
this.numCallsToFlushInlet = 0;
|
|
35
|
+
this.numCallsToDestroy = 0;
|
|
35
36
|
}
|
|
36
37
|
}
|
|
37
|
-
//# sourceMappingURL=
|
|
38
|
+
//# sourceMappingURL=FakeLslInlet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeLslInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/LslInlet/FakeLslInlet.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,OAAO,OAAO,YAAY;IACtB,MAAM,CAAC,kBAAkB,GAG1B,EAAE,CAAA;IAED,MAAM,CAAC,sBAAsB,GAAG,CAAC,CAAA;IACjC,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAChC,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAC/B,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,SAAS,GAAG,KAAK,CAAA;IAEd,MAAM,CAAiB;IAEjC,YAAmB,OAAyB,EAAE,MAAuB;QACjE,IAAI,CAAC,MAAM,GAAG,MAAM,IAAI,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAA;QAElC,YAAY,CAAC,kBAAkB,CAAC,IAAI,CAAC;YACjC,OAAO;YACP,MAAM,EAAE,IAAI,CAAC,MAAM;SACtB,CAAC,CAAA;IACN,CAAC;IAEM,KAAK,CAAC,YAAY;QACrB,YAAY,CAAC,sBAAsB,EAAE,CAAA;QACrC,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;IACzB,CAAC;IAEM,WAAW;QACd,YAAY,CAAC,qBAAqB,EAAE,CAAA;QACpC,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IAC1B,CAAC;IAEM,UAAU;QACb,YAAY,CAAC,oBAAoB,EAAE,CAAA;IACvC,CAAC;IAEM,OAAO;QACV,YAAY,CAAC,iBAAiB,EAAE,CAAA;IACpC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,sBAAsB,GAAG,CAAC,CAAA;QAC/B,IAAI,CAAC,qBAAqB,GAAG,CAAC,CAAA;QAC9B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAA;QAC7B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC9B,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import LslStreamInlet from '../../impl/LslStreamInlet.js';
|
|
2
|
-
export class
|
|
2
|
+
export default class SpyLslInlet extends LslStreamInlet {
|
|
3
3
|
constructor(options, onData) {
|
|
4
4
|
super(options, onData);
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=SpyLslInlet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpyLslInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/LslInlet/SpyLslInlet.ts"],"names":[],"mappings":"AAAA,OAAO,cAGN,MAAM,8BAA8B,CAAA;AAErC,MAAM,CAAC,OAAO,OAAO,WAAY,SAAQ,cAAc;IACnD,YAAmB,OAAwB,EAAE,MAAsB;QAC/D,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IAC1B,CAAC;CACJ"}
|
package/build/testDoubles/{StreamOutlet/FakeStreamOutlet.d.ts → LslOutlet/FakeLslOutlet.d.ts}
RENAMED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import { LslSample } from '@neurodevs/ndx-native';
|
|
2
|
-
import {
|
|
3
|
-
export default class
|
|
4
|
-
static callsToConstructor: (
|
|
2
|
+
import { LslOutlet, LslOutletOptions } from '../../impl/LslStreamOutlet.js';
|
|
3
|
+
export default class FakeLslOutlet implements LslOutlet {
|
|
4
|
+
static callsToConstructor: (LslOutletOptions | undefined)[];
|
|
5
5
|
static callsToPushSample: {
|
|
6
6
|
sample: LslSample;
|
|
7
7
|
timestampSec?: number;
|
|
8
8
|
}[];
|
|
9
9
|
static numCallsToDestroy: number;
|
|
10
|
-
options?:
|
|
11
|
-
constructor(options?:
|
|
10
|
+
options?: LslOutletOptions;
|
|
11
|
+
constructor(options?: LslOutletOptions);
|
|
12
12
|
destroy(): void;
|
|
13
13
|
pushSample(sample: LslSample, timestampSec?: number): void;
|
|
14
14
|
get name(): string;
|
|
@@ -1,19 +1,19 @@
|
|
|
1
1
|
import { randomInt } from 'node:crypto';
|
|
2
2
|
import generateId from '@neurodevs/generate-id';
|
|
3
|
-
export default class
|
|
3
|
+
export default class FakeLslOutlet {
|
|
4
4
|
static callsToConstructor = [];
|
|
5
5
|
static callsToPushSample = [];
|
|
6
6
|
static numCallsToDestroy = 0;
|
|
7
7
|
options;
|
|
8
8
|
constructor(options) {
|
|
9
|
-
|
|
9
|
+
FakeLslOutlet.callsToConstructor.push(options);
|
|
10
10
|
this.options = options;
|
|
11
11
|
}
|
|
12
12
|
destroy() {
|
|
13
|
-
|
|
13
|
+
FakeLslOutlet.numCallsToDestroy++;
|
|
14
14
|
}
|
|
15
15
|
pushSample(sample, timestampSec) {
|
|
16
|
-
|
|
16
|
+
FakeLslOutlet.callsToPushSample.push({
|
|
17
17
|
sample,
|
|
18
18
|
timestampSec,
|
|
19
19
|
});
|
|
@@ -52,9 +52,9 @@ export default class FakeStreamOutlet {
|
|
|
52
52
|
return this.options?.units ?? generateId();
|
|
53
53
|
}
|
|
54
54
|
static resetTestDouble() {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
55
|
+
FakeLslOutlet.callsToConstructor = [];
|
|
56
|
+
FakeLslOutlet.callsToPushSample = [];
|
|
57
|
+
FakeLslOutlet.numCallsToDestroy = 0;
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
|
-
//# sourceMappingURL=
|
|
60
|
+
//# sourceMappingURL=FakeLslOutlet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeLslOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/LslOutlet/FakeLslOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAK/C,MAAM,CAAC,OAAO,OAAO,aAAa;IACvB,MAAM,CAAC,kBAAkB,GAAqC,EAAE,CAAA;IAEhE,MAAM,CAAC,iBAAiB,GAGzB,EAAE,CAAA;IAED,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,OAAO,CAAmB;IAEjC,YAAmB,OAA0B;QACzC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC9C,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAEM,OAAO;QACV,aAAa,CAAC,iBAAiB,EAAE,CAAA;IACrC,CAAC;IAEM,UAAU,CAAC,MAAiB,EAAE,YAAqB;QACtD,aAAa,CAAC,iBAAiB,CAAC,IAAI,CAAC;YACjC,MAAM;YACN,YAAY;SACf,CAAC,CAAA;IACN,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAAA;IAC7C,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAAA;IAC7C,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,CAAA;IACjD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IACvD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACnC,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,IAAI,SAAS,CAAA;IACnD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC3D,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACxD,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC5D,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,CAAA;IACrD,CAAC;IAED,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,OAAO,EAAE,KAAK,IAAI,UAAU,EAAE,CAAA;IAC9C,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,aAAa,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACrC,aAAa,CAAC,iBAAiB,GAAG,EAAE,CAAA;QACpC,aAAa,CAAC,iBAAiB,GAAG,CAAC,CAAA;IACvC,CAAC"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { LslWsBridge, LslWsBridgeConstructorOptions } from '../../impl/LslWebSocketBridge.js';
|
|
2
|
+
export default class FakeLslWsBridge implements LslWsBridge {
|
|
3
|
+
static callsToConstructor: (LslWsBridgeConstructorOptions | undefined)[];
|
|
4
|
+
static numCallsToActivate: number;
|
|
5
|
+
static numCallsToDeactivate: number;
|
|
6
|
+
static numCallsToDestroy: number;
|
|
7
|
+
constructor(options?: LslWsBridgeConstructorOptions);
|
|
8
|
+
activate(): Promise<void>;
|
|
9
|
+
deactivate(): void;
|
|
10
|
+
destroy(): void;
|
|
11
|
+
private static setFakeWebSocket;
|
|
12
|
+
private static setFakeWebSocketServer;
|
|
13
|
+
static resetTestDouble(): void;
|
|
14
|
+
}
|
package/build/testDoubles/{WebSocketBridge/FakeWebSocketBridge.js → LslWsBridge/FakeLslWsBridge.js}
RENAMED
|
@@ -1,30 +1,22 @@
|
|
|
1
1
|
import LslWebSocketBridge from '../../impl/LslWebSocketBridge.js';
|
|
2
2
|
import FakeWebSocket from '../WebSockets/FakeWebSocket.js';
|
|
3
3
|
import FakeWebSocketServer from '../WebSockets/FakeWebSocketServer.js';
|
|
4
|
-
export default class
|
|
4
|
+
export default class FakeLslWsBridge {
|
|
5
5
|
static callsToConstructor = [];
|
|
6
6
|
static numCallsToActivate = 0;
|
|
7
7
|
static numCallsToDeactivate = 0;
|
|
8
8
|
static numCallsToDestroy = 0;
|
|
9
9
|
constructor(options) {
|
|
10
|
-
|
|
10
|
+
FakeLslWsBridge.callsToConstructor.push(options);
|
|
11
11
|
}
|
|
12
12
|
async activate() {
|
|
13
|
-
|
|
13
|
+
FakeLslWsBridge.numCallsToActivate++;
|
|
14
14
|
}
|
|
15
15
|
deactivate() {
|
|
16
|
-
|
|
16
|
+
FakeLslWsBridge.numCallsToDeactivate++;
|
|
17
17
|
}
|
|
18
18
|
destroy() {
|
|
19
|
-
|
|
20
|
-
}
|
|
21
|
-
static resetTestDouble() {
|
|
22
|
-
this.callsToConstructor = [];
|
|
23
|
-
this.numCallsToActivate = 0;
|
|
24
|
-
this.numCallsToDeactivate = 0;
|
|
25
|
-
this.numCallsToDestroy = 0;
|
|
26
|
-
this.setFakeWebSocket();
|
|
27
|
-
this.setFakeWebSocketServer();
|
|
19
|
+
FakeLslWsBridge.numCallsToDestroy++;
|
|
28
20
|
}
|
|
29
21
|
static setFakeWebSocket() {
|
|
30
22
|
LslWebSocketBridge.WS = FakeWebSocket;
|
|
@@ -35,5 +27,13 @@ export default class FakeWebSocketBridge {
|
|
|
35
27
|
FakeWebSocketServer;
|
|
36
28
|
FakeWebSocketServer.resetTestDouble();
|
|
37
29
|
}
|
|
30
|
+
static resetTestDouble() {
|
|
31
|
+
this.callsToConstructor = [];
|
|
32
|
+
this.numCallsToActivate = 0;
|
|
33
|
+
this.numCallsToDeactivate = 0;
|
|
34
|
+
this.numCallsToDestroy = 0;
|
|
35
|
+
this.setFakeWebSocket();
|
|
36
|
+
this.setFakeWebSocketServer();
|
|
37
|
+
}
|
|
38
38
|
}
|
|
39
|
-
//# sourceMappingURL=
|
|
39
|
+
//# sourceMappingURL=FakeLslWsBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeLslWsBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/LslWsBridge/FakeLslWsBridge.ts"],"names":[],"mappings":"AACA,OAAO,kBAGN,MAAM,kCAAkC,CAAA;AACzC,OAAO,aAAa,MAAM,gCAAgC,CAAA;AAC1D,OAAO,mBAAmB,MAAM,sCAAsC,CAAA;AAEtE,MAAM,CAAC,OAAO,OAAO,eAAe;IACzB,MAAM,CAAC,kBAAkB,GAE1B,EAAE,CAAA;IAED,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAA;IAC7B,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAC/B,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAEnC,YAAmB,OAAuC;QACtD,eAAe,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACpD,CAAC;IAEM,KAAK,CAAC,QAAQ;QACjB,eAAe,CAAC,kBAAkB,EAAE,CAAA;IACxC,CAAC;IAEM,UAAU;QACb,eAAe,CAAC,oBAAoB,EAAE,CAAA;IAC1C,CAAC;IAEM,OAAO;QACV,eAAe,CAAC,iBAAiB,EAAE,CAAA;IACvC,CAAC;IAEO,MAAM,CAAC,gBAAgB;QAC3B,kBAAkB,CAAC,EAAE,GAAG,aAA4C,CAAA;QACpE,aAAa,CAAC,eAAe,EAAE,CAAA;IACnC,CAAC;IAEO,MAAM,CAAC,sBAAsB;QACjC,kBAAkB,CAAC,GAAG;YAClB,mBAAwD,CAAA;QAC5D,mBAAmB,CAAC,eAAe,EAAE,CAAA;IACzC,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,IAAI,CAAC,kBAAkB,GAAG,EAAE,CAAA;QAC5B,IAAI,CAAC,kBAAkB,GAAG,CAAC,CAAA;QAC3B,IAAI,CAAC,oBAAoB,GAAG,CAAC,CAAA;QAC7B,IAAI,CAAC,iBAAiB,GAAG,CAAC,CAAA;QAE1B,IAAI,CAAC,gBAAgB,EAAE,CAAA;QACvB,IAAI,CAAC,sBAAsB,EAAE,CAAA;IACjC,CAAC"}
|
package/build/testDoubles/{WebSocketBridge/SpyLslWebSocketBridge.js → LslWsBridge/SpyLslWsBridge.js}
RENAMED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import LslWebSocketBridge from '../../impl/LslWebSocketBridge.js';
|
|
2
|
-
export default class
|
|
2
|
+
export default class SpyLslWsBridge extends LslWebSocketBridge {
|
|
3
3
|
constructor(options) {
|
|
4
4
|
super(options);
|
|
5
5
|
}
|
|
6
6
|
}
|
|
7
|
-
//# sourceMappingURL=
|
|
7
|
+
//# sourceMappingURL=SpyLslWsBridge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpyLslWsBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/LslWsBridge/SpyLslWsBridge.ts"],"names":[],"mappings":"AAAA,OAAO,kBAEN,MAAM,kCAAkC,CAAA;AAEzC,MAAM,CAAC,OAAO,OAAO,cAAe,SAAQ,kBAAkB;IAC1D,YAAmB,OAAsC;QACrD,KAAK,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;CACJ"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { UsbController, UsbControllerOptions } from '../../impl/controllers/UsbDeviceController.js';
|
|
2
|
+
export default class FakeUsbController implements UsbController {
|
|
3
|
+
static callsToConstructor: (UsbControllerOptions | undefined)[];
|
|
4
|
+
static numCallsToConnect: number;
|
|
5
|
+
static callsToWriteUsb: string[];
|
|
6
|
+
static numCallsToDisconnect: number;
|
|
7
|
+
constructor(options?: UsbControllerOptions);
|
|
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 FakeUsbController {
|
|
2
|
+
static callsToConstructor = [];
|
|
3
|
+
static numCallsToConnect = 0;
|
|
4
|
+
static callsToWriteUsb = [];
|
|
5
|
+
static numCallsToDisconnect = 0;
|
|
6
|
+
constructor(options) {
|
|
7
|
+
FakeUsbController.callsToConstructor.push(options);
|
|
8
|
+
}
|
|
9
|
+
async connect() {
|
|
10
|
+
FakeUsbController.numCallsToConnect++;
|
|
11
|
+
}
|
|
12
|
+
async writeUsb(value) {
|
|
13
|
+
FakeUsbController.callsToWriteUsb.push(value);
|
|
14
|
+
}
|
|
15
|
+
async disconnect() {
|
|
16
|
+
FakeUsbController.numCallsToDisconnect++;
|
|
17
|
+
}
|
|
18
|
+
static resetTestDouble() {
|
|
19
|
+
FakeUsbController.callsToConstructor.length = 0;
|
|
20
|
+
FakeUsbController.numCallsToConnect = 0;
|
|
21
|
+
FakeUsbController.callsToWriteUsb.length = 0;
|
|
22
|
+
FakeUsbController.numCallsToDisconnect = 0;
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=FakeUsbController.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeUsbController.js","sourceRoot":"","sources":["../../../src/testDoubles/UsbController/FakeUsbController.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,OAAO,OAAO,iBAAiB;IAC3B,MAAM,CAAC,kBAAkB,GAAyC,EAAE,CAAA;IACpE,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC5B,MAAM,CAAC,eAAe,GAAa,EAAE,CAAA;IACrC,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAEtC,YAAmB,OAA8B;QAC7C,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACtD,CAAC;IAEM,KAAK,CAAC,OAAO;QAChB,iBAAiB,CAAC,iBAAiB,EAAE,CAAA;IACzC,CAAC;IAEM,KAAK,CAAC,QAAQ,CAAC,KAAa;QAC/B,iBAAiB,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;IACjD,CAAC;IAEM,KAAK,CAAC,UAAU;QACnB,iBAAiB,CAAC,oBAAoB,EAAE,CAAA;IAC5C,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,iBAAiB,CAAC,kBAAkB,CAAC,MAAM,GAAG,CAAC,CAAA;QAC/C,iBAAiB,CAAC,iBAAiB,GAAG,CAAC,CAAA;QACvC,iBAAiB,CAAC,eAAe,CAAC,MAAM,GAAG,CAAC,CAAA;QAC5C,iBAAiB,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAC9C,CAAC"}
|
|
@@ -1,14 +1,4 @@
|
|
|
1
|
+
import { ChannelFormat } from '@neurodevs/ndx-native';
|
|
1
2
|
export declare const TEST_SUPPORTED_CHANNEL_FORMATS: readonly ["float32", "string"];
|
|
2
3
|
export declare const TEST_UNSUPPORTED_CHANNEL_FORMATS: readonly ["undefined", "double64", "int32", "int16", "int8", "int64"];
|
|
3
|
-
export
|
|
4
|
-
export declare const TEST_CHANNEL_FORMATS_MAP: {
|
|
5
|
-
undefined: number;
|
|
6
|
-
float32: number;
|
|
7
|
-
double64: number;
|
|
8
|
-
string: number;
|
|
9
|
-
int32: number;
|
|
10
|
-
int16: number;
|
|
11
|
-
int8: number;
|
|
12
|
-
int64: number;
|
|
13
|
-
};
|
|
14
|
-
export type TestChannelFormat = (typeof TEST_CHANNEL_FORMATS)[number];
|
|
4
|
+
export type TestChannelFormat = ChannelFormat;
|
|
@@ -7,24 +7,4 @@ export const TEST_UNSUPPORTED_CHANNEL_FORMATS = [
|
|
|
7
7
|
'int8',
|
|
8
8
|
'int64',
|
|
9
9
|
];
|
|
10
|
-
export const TEST_CHANNEL_FORMATS = [
|
|
11
|
-
'undefined',
|
|
12
|
-
'float32',
|
|
13
|
-
'double64',
|
|
14
|
-
'string',
|
|
15
|
-
'int32',
|
|
16
|
-
'int16',
|
|
17
|
-
'int8',
|
|
18
|
-
'int64',
|
|
19
|
-
];
|
|
20
|
-
export const TEST_CHANNEL_FORMATS_MAP = {
|
|
21
|
-
undefined: 0,
|
|
22
|
-
float32: 1,
|
|
23
|
-
double64: 2,
|
|
24
|
-
string: 3,
|
|
25
|
-
int32: 4,
|
|
26
|
-
int16: 5,
|
|
27
|
-
int8: 6,
|
|
28
|
-
int64: 7,
|
|
29
|
-
};
|
|
30
10
|
//# sourceMappingURL=consts.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/testDoubles/consts.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/testDoubles/consts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAA;AAE5E,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC5C,WAAW;IACX,UAAU;IACV,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACD,CAAA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import {
|
|
2
|
-
export default function generateRandomOutletOptions():
|
|
1
|
+
import { LslOutletOptions } from '../impl/LslStreamOutlet.js';
|
|
2
|
+
export default function generateRandomOutletOptions(): LslOutletOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"generateRandomOutletOptions.js","sourceRoot":"","sources":["../../src/testDoubles/generateRandomOutletOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAG/C,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAA;AAE5D,MAAM,CAAC,OAAO,UAAU,2BAA2B;IAC/C,MAAM,gBAAgB,GAAG,SAAS,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAA;IAEzE,OAAO;QACH,IAAI,EAAE,UAAU,EAAE;QAClB,IAAI,EAAE,UAAU,EAAE;QAClB,YAAY,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5D,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QAChC,aAAa,EAAE,8BAA8B,CAAC,gBAAgB,CAAC;QAC/D,QAAQ,EAAE,UAAU,EAAE;QACtB,YAAY,EAAE,UAAU,EAAE;QAC1B,KAAK,EAAE,UAAU,EAAE;QACnB,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3B,aAAa,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"generateRandomOutletOptions.js","sourceRoot":"","sources":["../../src/testDoubles/generateRandomOutletOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;AAEvC,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAG/C,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAA;AAE5D,MAAM,CAAC,OAAO,UAAU,2BAA2B;IAC/C,MAAM,gBAAgB,GAAG,SAAS,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAA;IAEzE,OAAO;QACH,IAAI,EAAE,UAAU,EAAE;QAClB,IAAI,EAAE,UAAU,EAAE;QAClB,YAAY,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5D,YAAY,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QAChC,aAAa,EAAE,8BAA8B,CAAC,gBAAgB,CAAC;QAC/D,QAAQ,EAAE,UAAU,EAAE;QACtB,YAAY,EAAE,UAAU,EAAE;QAC1B,KAAK,EAAE,UAAU,EAAE;QACnB,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3B,aAAa,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;KACd,CAAA;AACzB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurodevs/node-lsl",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "20.0.0",
|
|
4
4
|
"description": "Lab Streaming Layer (LSL) bindings for Node",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"keywords": [
|
|
@@ -41,17 +41,18 @@
|
|
|
41
41
|
"watch.build.dev": "tsc-watch --sourceMap --onCompilationComplete 'yarn run build.copy-files'"
|
|
42
42
|
},
|
|
43
43
|
"dependencies": {
|
|
44
|
-
"@neurodevs/generate-id": "^1.1.
|
|
45
|
-
"@neurodevs/ndx-native": "^7.
|
|
44
|
+
"@neurodevs/generate-id": "^1.1.3",
|
|
45
|
+
"@neurodevs/ndx-native": "^7.1.4",
|
|
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.
|
|
51
|
+
"@neurodevs/node-tdd": "^3.0.2",
|
|
52
52
|
"@neurodevs/prettier-config-ndx": "^1.0.2",
|
|
53
53
|
"@types/ws": "^8.18.1",
|
|
54
|
-
"
|
|
54
|
+
"koffi": "^3.1.2",
|
|
55
|
+
"prettier": "^3.9.6",
|
|
55
56
|
"typescript": "^5.9.3"
|
|
56
57
|
},
|
|
57
58
|
"resolutions": {
|