@neurodevs/node-lsl 17.1.1 → 18.1.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/.claude/settings.local.json +10 -0
- package/.vscode/launch.json +54 -57
- package/.vscode/settings.json +61 -66
- package/.vscode/tasks.json +98 -129
- package/README.md +20 -44
- package/build/__tests__/AbstractPackageTest.d.ts +7 -5
- package/build/__tests__/AbstractPackageTest.js +22 -15
- package/build/__tests__/AbstractPackageTest.js.map +1 -1
- package/build/__tests__/impl/BleDeviceController.test.d.ts +54 -0
- package/build/__tests__/impl/BleDeviceController.test.js +333 -0
- package/build/__tests__/impl/BleDeviceController.test.js.map +1 -0
- package/build/__tests__/impl/LslEventMarkerEmitter.test.d.ts +34 -0
- package/build/__tests__/impl/LslEventMarkerEmitter.test.js +243 -0
- package/build/__tests__/impl/LslEventMarkerEmitter.test.js.map +1 -0
- package/build/__tests__/impl/LslStreamInfo.test.d.ts +0 -3
- package/build/__tests__/impl/LslStreamInfo.test.js +2 -27
- package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamInlet.test.d.ts +20 -8
- package/build/__tests__/impl/LslStreamInlet.test.js +224 -69
- package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
- package/build/__tests__/impl/LslStreamOutlet.test.d.ts +3 -7
- package/build/__tests__/impl/LslStreamOutlet.test.js +40 -50
- package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
- package/build/__tests__/impl/LslWebSocketBridge.test.js +19 -20
- package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
- package/build/assertions.d.ts +1 -1
- package/build/assertions.js.map +1 -1
- package/build/impl/LslEventMarkerEmitter.d.ts +35 -0
- package/build/impl/LslEventMarkerEmitter.js +86 -0
- package/build/impl/LslEventMarkerEmitter.js.map +1 -0
- package/build/impl/LslStreamInfo.d.ts +4 -8
- package/build/impl/LslStreamInfo.js +8 -21
- package/build/impl/LslStreamInfo.js.map +1 -1
- package/build/impl/LslStreamInlet.d.ts +31 -50
- package/build/impl/LslStreamInlet.js +79 -149
- package/build/impl/LslStreamInlet.js.map +1 -1
- package/build/impl/LslStreamOutlet.d.ts +15 -18
- package/build/impl/LslStreamOutlet.js +39 -47
- package/build/impl/LslStreamOutlet.js.map +1 -1
- package/build/impl/LslWebSocketBridge.d.ts +4 -5
- package/build/impl/LslWebSocketBridge.js +10 -10
- package/build/impl/LslWebSocketBridge.js.map +1 -1
- package/build/impl/controllers/BleDeviceController.d.ts +58 -0
- package/build/impl/controllers/BleDeviceController.js +145 -0
- package/build/impl/controllers/BleDeviceController.js.map +1 -0
- package/build/impl/workers/inlet/LslStreamInlet.worker.d.ts +22 -0
- package/build/impl/workers/inlet/LslStreamInlet.worker.js +42 -0
- package/build/impl/workers/inlet/LslStreamInlet.worker.js.map +1 -0
- package/build/impl/workers/inlet/StreamInletWorker.d.ts +73 -0
- package/build/impl/workers/inlet/StreamInletWorker.js +253 -0
- package/build/impl/workers/inlet/StreamInletWorker.js.map +1 -0
- package/build/impl/workers/outlet/LslStreamOutlet.worker.d.ts +32 -0
- package/build/impl/workers/outlet/LslStreamOutlet.worker.js +82 -0
- package/build/impl/workers/outlet/LslStreamOutlet.worker.js.map +1 -0
- package/build/index.d.ts +14 -14
- package/build/index.js +16 -16
- package/build/index.js.map +1 -1
- package/build/scripts/discoverMuse.js +40 -0
- package/build/scripts/discoverMuse.js.map +1 -0
- package/build/scripts/finalizeHandles.d.ts +2 -0
- package/build/scripts/finalizeHandles.js +48 -0
- package/build/scripts/finalizeHandles.js.map +1 -0
- package/build/scripts/runLslEventMarkerEmitter.d.ts +1 -0
- package/build/scripts/runLslEventMarkerEmitter.js +11 -0
- package/build/scripts/runLslEventMarkerEmitter.js.map +1 -0
- package/build/scripts/runMuse.d.ts +1 -0
- package/build/scripts/runMuse.js +40 -0
- package/build/scripts/runMuse.js.map +1 -0
- package/build/scripts/runOutletToInlet.js +7 -6
- package/build/scripts/runOutletToInlet.js.map +1 -1
- package/build/scripts/testDestroyOutlet.d.ts +1 -0
- package/build/scripts/testDestroyOutlet.js +4 -0
- package/build/scripts/testDestroyOutlet.js.map +1 -0
- package/build/testDoubles/BleController/FakeBleController.d.ts +24 -0
- package/build/testDoubles/BleController/FakeBleController.js +42 -0
- package/build/testDoubles/BleController/FakeBleController.js.map +1 -0
- package/build/testDoubles/BleController/SpyBleController.d.ts +14 -0
- package/build/testDoubles/BleController/SpyBleController.js +48 -0
- package/build/testDoubles/BleController/SpyBleController.js.map +1 -0
- package/build/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.d.ts +17 -0
- package/build/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.js +30 -0
- package/build/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.js.map +1 -0
- package/build/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.d.ts +10 -0
- package/build/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js +23 -0
- package/build/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js.map +1 -0
- package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.d.ts +9 -0
- package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.js +19 -0
- package/build/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.js.map +1 -0
- package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +3 -3
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js +3 -3
- package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +1 -1
- package/build/testDoubles/StreamInlet/FakeStreamInlet.d.ts +8 -10
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js +6 -7
- package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +1 -1
- package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +2 -5
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js +2 -8
- package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +1 -1
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.d.ts +7 -9
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js +8 -8
- package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +1 -1
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.d.ts +1 -1
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js +1 -1
- package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js.map +1 -1
- package/build/testDoubles/WorkerThreads/FakeWorker.d.ts +27 -0
- package/build/testDoubles/WorkerThreads/FakeWorker.js +67 -0
- package/build/testDoubles/WorkerThreads/FakeWorker.js.map +1 -0
- package/build/testDoubles/generateRandomOutletOptions.js +1 -1
- package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
- package/build/validations.js +0 -2
- package/build/validations.js.map +1 -1
- package/eslint.config.js +3 -0
- package/package.json +27 -49
- package/prettier.config.js +3 -0
- package/src/__tests__/AbstractPackageTest.ts +38 -21
- package/src/__tests__/impl/BleDeviceController.test.ts +492 -0
- package/src/__tests__/impl/LslEventMarkerEmitter.test.ts +323 -0
- package/src/__tests__/impl/LslStreamInfo.test.ts +3 -40
- package/src/__tests__/impl/LslStreamInlet.test.ts +344 -97
- package/src/__tests__/impl/LslStreamOutlet.test.ts +65 -73
- package/src/__tests__/impl/LslWebSocketBridge.test.ts +22 -21
- package/src/assertions.ts +2 -1
- package/src/impl/LslEventMarkerEmitter.ts +133 -0
- package/src/impl/LslStreamInfo.ts +17 -29
- package/src/impl/LslStreamInlet.ts +102 -215
- package/src/impl/LslStreamOutlet.ts +54 -78
- package/src/impl/LslWebSocketBridge.ts +14 -14
- package/src/impl/controllers/BleDeviceController.ts +223 -0
- package/src/impl/workers/inlet/LslStreamInlet.worker.ts +74 -0
- package/src/impl/workers/inlet/StreamInletWorker.ts +348 -0
- package/src/impl/workers/outlet/LslStreamOutlet.worker.ts +144 -0
- package/src/index.ts +16 -16
- package/src/scripts/discoverMuse.ts +50 -0
- package/src/scripts/finalizeHandles.ts +63 -0
- package/src/scripts/runLslEventMarkerEmitter.ts +15 -0
- package/src/scripts/runMuse.ts +50 -0
- package/src/scripts/runOutletToInlet.ts +10 -8
- package/src/scripts/testDestroyOutlet.ts +5 -0
- package/src/testDoubles/BleController/FakeBleController.ts +70 -0
- package/src/testDoubles/BleController/SpyBleController.ts +61 -0
- package/src/testDoubles/EventMarkerEmitter/FakeEventMarkerEmitter.ts +46 -0
- package/src/testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.ts +31 -0
- package/src/testDoubles/EventMarkerEmitter/ThrowingEventMarkerEmitter.ts +29 -0
- package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +4 -4
- package/src/testDoubles/StreamInlet/FakeStreamInlet.ts +11 -17
- package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +3 -16
- package/src/testDoubles/StreamOutlet/FakeStreamOutlet.ts +15 -15
- package/src/testDoubles/WebSocketBridge/FakeWebSocketBridge.ts +1 -1
- package/src/testDoubles/WorkerThreads/FakeWorker.ts +99 -0
- package/src/testDoubles/generateRandomOutletOptions.ts +2 -1
- package/src/validations.ts +0 -2
- package/tsconfig.json +23 -27
- package/build/.spruce/settings.json +0 -11
- package/build/__tests__/impl/LiblslAdapter.test.d.ts +0 -79
- package/build/__tests__/impl/LiblslAdapter.test.js +0 -688
- package/build/__tests__/impl/LiblslAdapter.test.js.map +0 -1
- package/build/__tests__/impl/LslEventMarkerOutlet.test.d.ts +0 -21
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js +0 -160
- package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +0 -1
- package/build/handleError.d.ts +0 -8
- package/build/handleError.js +0 -25
- package/build/handleError.js.map +0 -1
- package/build/impl/LiblslAdapter.d.ts +0 -154
- package/build/impl/LiblslAdapter.js +0 -317
- package/build/impl/LiblslAdapter.js.map +0 -1
- package/build/impl/LslEventMarkerOutlet.d.ts +0 -28
- package/build/impl/LslEventMarkerOutlet.js +0 -63
- package/build/impl/LslEventMarkerOutlet.js.map +0 -1
- package/build/scripts/runLslEventMarkerOutlet.js +0 -18
- package/build/scripts/runLslEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.d.ts +0 -13
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js +0 -26
- package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.d.ts +0 -17
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js +0 -46
- package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.d.ts +0 -9
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js +0 -19
- package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.d.ts +0 -9
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js +0 -19
- package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js.map +0 -1
- package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +0 -50
- package/build/testDoubles/Liblsl/FakeLiblsl.js +0 -126
- package/build/testDoubles/Liblsl/FakeLiblsl.js.map +0 -1
- package/eslint.config.mjs +0 -3
- package/src/.spruce/settings.json +0 -11
- package/src/__tests__/impl/LiblslAdapter.test.ts +0 -817
- package/src/__tests__/impl/LslEventMarkerOutlet.test.ts +0 -195
- package/src/handleError.ts +0 -24
- package/src/impl/LiblslAdapter.ts +0 -543
- package/src/impl/LslEventMarkerOutlet.ts +0 -97
- package/src/scripts/runLslEventMarkerOutlet.ts +0 -23
- package/src/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.ts +0 -36
- package/src/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.ts +0 -75
- package/src/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.ts +0 -24
- package/src/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.ts +0 -28
- package/src/testDoubles/Liblsl/FakeLiblsl.ts +0 -182
- /package/build/scripts/{runLslEventMarkerOutlet.d.ts → discoverMuse.d.ts} +0 -0
|
@@ -1,12 +1,6 @@
|
|
|
1
|
+
import { FakeLiblsl, FakeLibndx, LiblslAdapter, LibndxAdapter, } from '@neurodevs/ndx-native';
|
|
1
2
|
import AbstractModuleTest from '@neurodevs/node-tdd';
|
|
2
|
-
import
|
|
3
|
-
import LslEventMarkerOutlet from '../impl/LslEventMarkerOutlet.js';
|
|
4
|
-
import LslStreamInfo from '../impl/LslStreamInfo.js';
|
|
5
|
-
import LslStreamInlet from '../impl/LslStreamInlet.js';
|
|
6
|
-
import LslStreamOutlet from '../impl/LslStreamOutlet.js';
|
|
7
|
-
import LslWebSocketBridge from '../impl/LslWebSocketBridge.js';
|
|
8
|
-
import SpyEventMarkerOutlet from '../testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js';
|
|
9
|
-
import FakeLiblsl from '../testDoubles/Liblsl/FakeLiblsl.js';
|
|
3
|
+
import SpyEventMarkerEmitter from '../testDoubles/EventMarkerEmitter/SpyEventMarkerEmitter.js';
|
|
10
4
|
import FakeStreamInfo from '../testDoubles/StreamInfo/FakeStreamInfo.js';
|
|
11
5
|
import SpyStreamInfo from '../testDoubles/StreamInfo/SpyStreamInfo.js';
|
|
12
6
|
import FakeStreamInlet from '../testDoubles/StreamInlet/FakeStreamInlet.js';
|
|
@@ -15,8 +9,15 @@ import FakeStreamOutlet from '../testDoubles/StreamOutlet/FakeStreamOutlet.js';
|
|
|
15
9
|
import SpyLslWebSocketBridge from '../testDoubles/WebSocketBridge/SpyLslWebSocketBridge.js';
|
|
16
10
|
import FakeWebSocket from '../testDoubles/WebSockets/FakeWebSocket.js';
|
|
17
11
|
import FakeWebSocketServer from '../testDoubles/WebSockets/FakeWebSocketServer.js';
|
|
12
|
+
import LslWebSocketBridge from '../impl/LslWebSocketBridge.js';
|
|
13
|
+
import BleDeviceController from '../impl/controllers/BleDeviceController.js';
|
|
14
|
+
import LslEventMarkerEmitter from '../impl/LslEventMarkerEmitter.js';
|
|
15
|
+
import LslStreamInfo from '../impl/LslStreamInfo.js';
|
|
16
|
+
import LslStreamInlet from '../impl/LslStreamInlet.js';
|
|
17
|
+
import LslStreamOutlet from '../impl/LslStreamOutlet.js';
|
|
18
18
|
export default class AbstractPackageTest extends AbstractModuleTest {
|
|
19
19
|
static fakeLiblsl;
|
|
20
|
+
static fakeLibndx;
|
|
20
21
|
static async beforeEach() {
|
|
21
22
|
await super.beforeEach();
|
|
22
23
|
}
|
|
@@ -24,6 +25,14 @@ export default class AbstractPackageTest extends AbstractModuleTest {
|
|
|
24
25
|
this.fakeLiblsl = new FakeLiblsl();
|
|
25
26
|
LiblslAdapter.setInstance(this.fakeLiblsl);
|
|
26
27
|
FakeLiblsl.fakeErrorCode = 0;
|
|
28
|
+
FakeLiblsl.fakeInfoHandles = [{}];
|
|
29
|
+
}
|
|
30
|
+
static setFakeLibndx() {
|
|
31
|
+
this.fakeLibndx = new FakeLibndx();
|
|
32
|
+
LibndxAdapter.setInstance(this.fakeLibndx);
|
|
33
|
+
FakeLibndx.resetTestDouble();
|
|
34
|
+
FakeLibndx.fakeResult = { status: 200 };
|
|
35
|
+
BleDeviceController.ndx = this.fakeLibndx;
|
|
27
36
|
}
|
|
28
37
|
static setSpyStreamInfo() {
|
|
29
38
|
LslStreamInfo.Class = SpyStreamInfo;
|
|
@@ -44,8 +53,8 @@ export default class AbstractPackageTest extends AbstractModuleTest {
|
|
|
44
53
|
LslStreamOutlet.Class = FakeStreamOutlet;
|
|
45
54
|
FakeStreamOutlet.resetTestDouble();
|
|
46
55
|
}
|
|
47
|
-
static
|
|
48
|
-
|
|
56
|
+
static setSpyEventMarkerEmitter() {
|
|
57
|
+
LslEventMarkerEmitter.Class = SpyEventMarkerEmitter;
|
|
49
58
|
}
|
|
50
59
|
static setSpyLslWebSocketBridge() {
|
|
51
60
|
LslWebSocketBridge.Class = SpyLslWebSocketBridge;
|
|
@@ -58,7 +67,7 @@ export default class AbstractPackageTest extends AbstractModuleTest {
|
|
|
58
67
|
LslWebSocketBridge.WSS = FakeWebSocketServer;
|
|
59
68
|
FakeWebSocketServer.resetTestDouble();
|
|
60
69
|
}
|
|
61
|
-
static
|
|
70
|
+
static fakeStreamInfo = new FakeStreamInfo();
|
|
62
71
|
static name_ = this.generateId();
|
|
63
72
|
static type = this.generateId();
|
|
64
73
|
static sourceId = this.generateId();
|
|
@@ -68,15 +77,13 @@ export default class AbstractPackageTest extends AbstractModuleTest {
|
|
|
68
77
|
this.generateId(),
|
|
69
78
|
this.generateId(),
|
|
70
79
|
];
|
|
71
|
-
static
|
|
72
|
-
return this.channelNames.length;
|
|
73
|
-
}
|
|
80
|
+
static channelCount = this.channelNames.length;
|
|
74
81
|
static chunkSize = 2;
|
|
75
82
|
static sampleRateHz = Math.floor(Math.random() * 100);
|
|
76
83
|
static maxBufferedMs = Math.floor(Math.random() * 1000);
|
|
77
84
|
static async LslStreamInlet(options, onData) {
|
|
78
85
|
const defaultOptions = {
|
|
79
|
-
|
|
86
|
+
sourceId: this.sourceId,
|
|
80
87
|
chunkSize: this.chunkSize,
|
|
81
88
|
maxBufferedMs: this.maxBufferedMs,
|
|
82
89
|
...options,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractPackageTest.js","sourceRoot":"","sources":["../../src/__tests__/AbstractPackageTest.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"AbstractPackageTest.js","sourceRoot":"","sources":["../../src/__tests__/AbstractPackageTest.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
2
|
+
export default class BleDeviceControllerTest extends AbstractPackageTest {
|
|
3
|
+
private static instance;
|
|
4
|
+
private static readonly uuid;
|
|
5
|
+
private static readonly namePrefix;
|
|
6
|
+
private static readonly discoveredUuid;
|
|
7
|
+
private static readonly charUuid;
|
|
8
|
+
private static readonly charValueToWrite;
|
|
9
|
+
private static readonly rssiIntervalMs;
|
|
10
|
+
private static readonly fakeError;
|
|
11
|
+
private static readonly fake400Error;
|
|
12
|
+
private static readonly fake500Error;
|
|
13
|
+
private static readonly charCallbacks;
|
|
14
|
+
private static onConnected;
|
|
15
|
+
private static wasConnected;
|
|
16
|
+
private static nativePeripheral;
|
|
17
|
+
protected static beforeAll(): Promise<void>;
|
|
18
|
+
protected static beforeEach(): Promise<void>;
|
|
19
|
+
protected static createsInstance(): Promise<void>;
|
|
20
|
+
protected static connectCallsLibndxCreateBleBackend(): Promise<void>;
|
|
21
|
+
protected static discoversUuidWhenDeviceUuidNotProvided(): Promise<void>;
|
|
22
|
+
protected static doesNotDiscoverUuidWhenDeviceUuidProvided(): Promise<void>;
|
|
23
|
+
protected static usesDiscoveredUuidToCreateBleBackend(): Promise<void>;
|
|
24
|
+
protected static usesDiscoveredUuidToStartBleBackend(): Promise<void>;
|
|
25
|
+
protected static exposesDiscoveredUuid(): Promise<void>;
|
|
26
|
+
protected static createBleBackendThrowsOn400(): Promise<void>;
|
|
27
|
+
protected static createBleBackendThrowsOn500(): Promise<void>;
|
|
28
|
+
protected static connectCallsLibndxStartBleBackend(): Promise<void>;
|
|
29
|
+
protected static startBleBackendThrowsOn400(): Promise<void>;
|
|
30
|
+
protected static startBleBackendThrowsOn500(): Promise<void>;
|
|
31
|
+
protected static connectWaitsForOnConnectedEvent(): Promise<void>;
|
|
32
|
+
protected static waitsAfterOnConnectedToDiscoverServices(): Promise<void>;
|
|
33
|
+
protected static writeCharacteristicCallsLibndxBinding(): Promise<void>;
|
|
34
|
+
protected static writeCharacteristicThrowsOn400(): Promise<void>;
|
|
35
|
+
protected static writeCharacteristicThrowsOn500(): Promise<void>;
|
|
36
|
+
protected static callsSetBleRssiInterval(): Promise<void>;
|
|
37
|
+
protected static disconnectCallsLibndxStopBleBackend(): Promise<void>;
|
|
38
|
+
protected static disconnectThrowsOn400(): Promise<void>;
|
|
39
|
+
protected static disconnectThrowsOn500(): Promise<void>;
|
|
40
|
+
protected static disconnectResetsConnectedFlag(): Promise<void>;
|
|
41
|
+
protected static exposesPeriperalName(): Promise<void>;
|
|
42
|
+
protected static returnsNAIfNameNotAvailable(): Promise<void>;
|
|
43
|
+
protected static throwsWithUnknownErrorIfNoError(): Promise<void>;
|
|
44
|
+
private static connect;
|
|
45
|
+
private static connectWithDiscovery;
|
|
46
|
+
private static waitForCall;
|
|
47
|
+
private static writeCharacteristic;
|
|
48
|
+
private static disconnect;
|
|
49
|
+
private static setFake400Error;
|
|
50
|
+
private static setFake500Error;
|
|
51
|
+
private static setFake500ErrorWithoutError;
|
|
52
|
+
private static BleController;
|
|
53
|
+
private static BleControllerWithPrefix;
|
|
54
|
+
}
|
|
@@ -0,0 +1,333 @@
|
|
|
1
|
+
var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
|
|
2
|
+
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
|
|
3
|
+
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
|
|
4
|
+
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
|
|
5
|
+
return c > 3 && r && Object.defineProperty(target, key, r), r;
|
|
6
|
+
};
|
|
7
|
+
import { randomInt } from 'node:crypto';
|
|
8
|
+
import { test, assert } from '@neurodevs/node-tdd';
|
|
9
|
+
import { FakeLibndx } from '@neurodevs/ndx-native';
|
|
10
|
+
import SpyBleController from '../../testDoubles/BleController/SpyBleController.js';
|
|
11
|
+
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
12
|
+
import BleDeviceController from '../../impl/controllers/BleDeviceController.js';
|
|
13
|
+
export default class BleDeviceControllerTest extends AbstractPackageTest {
|
|
14
|
+
static instance;
|
|
15
|
+
static uuid = this.generateId();
|
|
16
|
+
static namePrefix = this.generateId();
|
|
17
|
+
static discoveredUuid = this.generateId();
|
|
18
|
+
static charUuid = this.generateId();
|
|
19
|
+
static charValueToWrite = this.generateId();
|
|
20
|
+
static rssiIntervalMs = randomInt(1, 5);
|
|
21
|
+
static fakeError = this.generateId();
|
|
22
|
+
static fake400Error = `400 error: ${this.fakeError}`;
|
|
23
|
+
static fake500Error = `500 error: ${this.fakeError}`;
|
|
24
|
+
static charCallbacks = [
|
|
25
|
+
{
|
|
26
|
+
charUuid: this.generateId(),
|
|
27
|
+
charName: this.generateId(),
|
|
28
|
+
onData: async () => { },
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
charUuid: this.generateId(),
|
|
32
|
+
charName: this.generateId(),
|
|
33
|
+
onData: async () => { },
|
|
34
|
+
},
|
|
35
|
+
];
|
|
36
|
+
static onConnected = (_peripheral) => {
|
|
37
|
+
this.wasConnected = true;
|
|
38
|
+
};
|
|
39
|
+
static wasConnected;
|
|
40
|
+
static nativePeripheral = {
|
|
41
|
+
uuid: this.generateId(),
|
|
42
|
+
name: this.generateId(),
|
|
43
|
+
};
|
|
44
|
+
static async beforeAll() {
|
|
45
|
+
assert.isEqual(BleDeviceController.waitAfterMs, 1000, 'Set incorrect waitAfterMs!');
|
|
46
|
+
}
|
|
47
|
+
static async beforeEach() {
|
|
48
|
+
await super.beforeEach();
|
|
49
|
+
BleDeviceController.waitAfterMs = 0;
|
|
50
|
+
this.setFakeLibndx();
|
|
51
|
+
BleDeviceController.Class = SpyBleController;
|
|
52
|
+
this.wasConnected = false;
|
|
53
|
+
this.instance = await this.BleController();
|
|
54
|
+
}
|
|
55
|
+
static async createsInstance() {
|
|
56
|
+
assert.isTruthy(this.instance, 'Failed to create instance!');
|
|
57
|
+
}
|
|
58
|
+
static async connectCallsLibndxCreateBleBackend() {
|
|
59
|
+
await this.connect();
|
|
60
|
+
assert.isEqualDeep(FakeLibndx.callsToCreateBleBackend[0], {
|
|
61
|
+
deviceUuid: this.uuid,
|
|
62
|
+
}, 'Did not call createBleBackend!');
|
|
63
|
+
}
|
|
64
|
+
static async discoversUuidWhenDeviceUuidNotProvided() {
|
|
65
|
+
const instance = await this.BleControllerWithPrefix();
|
|
66
|
+
await this.connectWithDiscovery(instance);
|
|
67
|
+
const call = FakeLibndx.callsToDiscoverBleUuid[0];
|
|
68
|
+
assert.isEqual(call?.namePrefix, this.namePrefix, 'Did not call discoverBleUuid with deviceNamePrefix!');
|
|
69
|
+
assert.isFunction(call?.onDiscovered, 'Did not pass an onDiscovered callback to discoverBleUuid!');
|
|
70
|
+
}
|
|
71
|
+
static async doesNotDiscoverUuidWhenDeviceUuidProvided() {
|
|
72
|
+
await this.connect();
|
|
73
|
+
assert.isEqual(FakeLibndx.callsToDiscoverBleUuid.length, 0, 'Should not call discoverBleUuid when deviceUuid is provided!');
|
|
74
|
+
}
|
|
75
|
+
static async usesDiscoveredUuidToCreateBleBackend() {
|
|
76
|
+
const instance = await this.BleControllerWithPrefix();
|
|
77
|
+
await this.connectWithDiscovery(instance);
|
|
78
|
+
assert.isEqualDeep(FakeLibndx.callsToCreateBleBackend[0], {
|
|
79
|
+
deviceUuid: this.discoveredUuid,
|
|
80
|
+
}, 'Did not create BLE backend with the discovered uuid!');
|
|
81
|
+
}
|
|
82
|
+
static async usesDiscoveredUuidToStartBleBackend() {
|
|
83
|
+
const instance = await this.BleControllerWithPrefix();
|
|
84
|
+
await this.connectWithDiscovery(instance);
|
|
85
|
+
assert.isEqual(FakeLibndx.callsToStartBleBackend[0]?.deviceUuid, this.discoveredUuid, 'Did not start BLE backend with the discovered uuid!');
|
|
86
|
+
}
|
|
87
|
+
static async exposesDiscoveredUuid() {
|
|
88
|
+
const instance = await this.BleControllerWithPrefix();
|
|
89
|
+
await this.connectWithDiscovery(instance);
|
|
90
|
+
assert.isEqual(instance.uuid, this.discoveredUuid, 'Did not expose the discovered uuid!');
|
|
91
|
+
}
|
|
92
|
+
static async createBleBackendThrowsOn400() {
|
|
93
|
+
this.setFake400Error();
|
|
94
|
+
await assert.doesThrowAsync(async () => await this.instance.connect(), this.fake400Error, 'Did not throw error!');
|
|
95
|
+
}
|
|
96
|
+
static async createBleBackendThrowsOn500() {
|
|
97
|
+
this.setFake500Error();
|
|
98
|
+
await assert.doesThrowAsync(async () => await this.instance.connect(), this.fake500Error, 'Did not throw error!');
|
|
99
|
+
}
|
|
100
|
+
static async connectCallsLibndxStartBleBackend() {
|
|
101
|
+
await this.connect();
|
|
102
|
+
const call = FakeLibndx.callsToStartBleBackend[0];
|
|
103
|
+
assert.isEqual(call.deviceUuid, this.uuid, 'Did not call startBleBackend with correct deviceUuid!');
|
|
104
|
+
assert.isEqual(call.charCallbacks.length, 2, 'Did not call startBleBackend with charCallbacks!');
|
|
105
|
+
let i = 0;
|
|
106
|
+
for (const charCallback of call.charCallbacks) {
|
|
107
|
+
assert.isEqual(charCallback.charUuid, this.charCallbacks[i].charUuid, 'Incorrect charUuid!');
|
|
108
|
+
assert.isEqual(charCallback.charName, this.charCallbacks[i].charName, 'Incorrect charName!');
|
|
109
|
+
assert.isFunction(charCallback.onData, 'Callback is not a function!');
|
|
110
|
+
i++;
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
static async startBleBackendThrowsOn400() {
|
|
114
|
+
//@ts-ignore
|
|
115
|
+
this.instance.createBleBackend = () => { };
|
|
116
|
+
this.setFake400Error();
|
|
117
|
+
await assert.doesThrowAsync(async () => await this.instance.connect(), this.fake400Error, 'Did not throw error!');
|
|
118
|
+
}
|
|
119
|
+
static async startBleBackendThrowsOn500() {
|
|
120
|
+
//@ts-ignore
|
|
121
|
+
this.instance.createBleBackend = () => { };
|
|
122
|
+
this.setFake500Error();
|
|
123
|
+
await assert.doesThrowAsync(async () => await this.instance.connect(), this.fake500Error, 'Did not throw error!');
|
|
124
|
+
}
|
|
125
|
+
static async connectWaitsForOnConnectedEvent() {
|
|
126
|
+
await this.connect();
|
|
127
|
+
assert.isTruthy(this.wasConnected, 'Did not wait for onConnected event!');
|
|
128
|
+
}
|
|
129
|
+
static async waitsAfterOnConnectedToDiscoverServices() {
|
|
130
|
+
const waitAfterMs = 20;
|
|
131
|
+
BleDeviceController.waitAfterMs = waitAfterMs;
|
|
132
|
+
const t0 = Date.now();
|
|
133
|
+
await this.connect();
|
|
134
|
+
const t1 = Date.now();
|
|
135
|
+
assert.isAbove(t1 - t0, 100 + waitAfterMs * 0.8, 'Did not wait after on connected!');
|
|
136
|
+
}
|
|
137
|
+
static async writeCharacteristicCallsLibndxBinding() {
|
|
138
|
+
await this.writeCharacteristic();
|
|
139
|
+
assert.isEqualDeep(FakeLibndx.callsToWriteBleCharacteristic[0], {
|
|
140
|
+
deviceUuid: this.uuid,
|
|
141
|
+
charUuid: this.charUuid,
|
|
142
|
+
value: this.charValueToWrite,
|
|
143
|
+
}, 'Did not call writeBleCharacteristic as expected!');
|
|
144
|
+
}
|
|
145
|
+
static async writeCharacteristicThrowsOn400() {
|
|
146
|
+
this.setFake400Error();
|
|
147
|
+
await assert.doesThrowAsync(async () => await this.writeCharacteristic(), this.fake400Error, 'Did not throw error!');
|
|
148
|
+
}
|
|
149
|
+
static async writeCharacteristicThrowsOn500() {
|
|
150
|
+
this.setFake500Error();
|
|
151
|
+
await assert.doesThrowAsync(async () => await this.writeCharacteristic(), this.fake500Error, 'Did not throw error!');
|
|
152
|
+
}
|
|
153
|
+
static async callsSetBleRssiInterval() {
|
|
154
|
+
await this.connect();
|
|
155
|
+
const { deviceUuid, intervalMs } = FakeLibndx.callsToSetBleRssiInterval[0];
|
|
156
|
+
assert.isEqualDeep({ deviceUuid, intervalMs }, {
|
|
157
|
+
deviceUuid: this.uuid,
|
|
158
|
+
intervalMs: this.rssiIntervalMs,
|
|
159
|
+
}, 'Did not call setBleRssiInterval as expected!');
|
|
160
|
+
}
|
|
161
|
+
static async disconnectCallsLibndxStopBleBackend() {
|
|
162
|
+
await this.disconnect();
|
|
163
|
+
assert.isEqualDeep(FakeLibndx.callsToStopBleBackend[0], {
|
|
164
|
+
deviceUuid: this.uuid,
|
|
165
|
+
}, 'Did not call stopBleBackend!');
|
|
166
|
+
}
|
|
167
|
+
static async disconnectThrowsOn400() {
|
|
168
|
+
this.setFake400Error();
|
|
169
|
+
await assert.doesThrowAsync(async () => await this.disconnect(), this.fake400Error, 'Did not throw error!');
|
|
170
|
+
}
|
|
171
|
+
static async disconnectThrowsOn500() {
|
|
172
|
+
this.setFake500Error();
|
|
173
|
+
await assert.doesThrowAsync(async () => await this.disconnect(), this.fake500Error, 'Did not throw error!');
|
|
174
|
+
}
|
|
175
|
+
static async disconnectResetsConnectedFlag() {
|
|
176
|
+
await this.connect();
|
|
177
|
+
await this.disconnect();
|
|
178
|
+
assert.isFalse(this.instance.getConnected(), 'Did not reset connected flag on disconnect!');
|
|
179
|
+
}
|
|
180
|
+
static async exposesPeriperalName() {
|
|
181
|
+
await this.connect();
|
|
182
|
+
assert.isEqual(this.instance.name, this.nativePeripheral.name, 'Did not set peripheral name!');
|
|
183
|
+
}
|
|
184
|
+
static async returnsNAIfNameNotAvailable() {
|
|
185
|
+
assert.isEqual(this.instance.name, 'N/A', 'Did not set default name to N/A!');
|
|
186
|
+
}
|
|
187
|
+
static async throwsWithUnknownErrorIfNoError() {
|
|
188
|
+
this.setFake500ErrorWithoutError();
|
|
189
|
+
await assert.doesThrowAsync(async () => await this.connect(), 'Unknown error', 'Did not throw error!');
|
|
190
|
+
}
|
|
191
|
+
static async connect() {
|
|
192
|
+
const promise = this.instance.connect();
|
|
193
|
+
const startCall = FakeLibndx.callsToStartBleBackend[0];
|
|
194
|
+
startCall?.onConnected(this.nativePeripheral);
|
|
195
|
+
await promise;
|
|
196
|
+
}
|
|
197
|
+
static async connectWithDiscovery(instance) {
|
|
198
|
+
const promise = instance.connect();
|
|
199
|
+
FakeLibndx.callsToDiscoverBleUuid[0]?.onDiscovered(this.discoveredUuid);
|
|
200
|
+
await this.waitForCall(() => FakeLibndx.callsToStartBleBackend[0]);
|
|
201
|
+
FakeLibndx.callsToStartBleBackend[0]?.onConnected(this.nativePeripheral);
|
|
202
|
+
await promise;
|
|
203
|
+
}
|
|
204
|
+
static async waitForCall(getCall) {
|
|
205
|
+
await new Promise((resolve) => {
|
|
206
|
+
const check = () => {
|
|
207
|
+
if (getCall()) {
|
|
208
|
+
resolve();
|
|
209
|
+
}
|
|
210
|
+
else {
|
|
211
|
+
setTimeout(check, 10);
|
|
212
|
+
}
|
|
213
|
+
};
|
|
214
|
+
check();
|
|
215
|
+
});
|
|
216
|
+
}
|
|
217
|
+
static async writeCharacteristic() {
|
|
218
|
+
await this.instance.writeCharacteristic(this.charUuid, this.charValueToWrite);
|
|
219
|
+
}
|
|
220
|
+
static async disconnect() {
|
|
221
|
+
await this.instance.disconnect();
|
|
222
|
+
}
|
|
223
|
+
static setFake400Error() {
|
|
224
|
+
FakeLibndx.fakeResult = {
|
|
225
|
+
status: 400,
|
|
226
|
+
error: this.fakeError,
|
|
227
|
+
};
|
|
228
|
+
}
|
|
229
|
+
static setFake500Error() {
|
|
230
|
+
FakeLibndx.fakeResult = {
|
|
231
|
+
status: 500,
|
|
232
|
+
error: this.fakeError,
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
static setFake500ErrorWithoutError() {
|
|
236
|
+
FakeLibndx.fakeResult = {
|
|
237
|
+
status: 500,
|
|
238
|
+
};
|
|
239
|
+
}
|
|
240
|
+
static async BleController(options) {
|
|
241
|
+
return (await BleDeviceController.Create({
|
|
242
|
+
deviceUuid: this.uuid,
|
|
243
|
+
charCallbacks: this.charCallbacks,
|
|
244
|
+
onConnected: this.onConnected,
|
|
245
|
+
rssiIntervalMs: this.rssiIntervalMs,
|
|
246
|
+
...options,
|
|
247
|
+
}));
|
|
248
|
+
}
|
|
249
|
+
static async BleControllerWithPrefix() {
|
|
250
|
+
return (await BleDeviceController.Create({
|
|
251
|
+
deviceNamePrefix: this.namePrefix,
|
|
252
|
+
charCallbacks: this.charCallbacks,
|
|
253
|
+
onConnected: this.onConnected,
|
|
254
|
+
rssiIntervalMs: this.rssiIntervalMs,
|
|
255
|
+
}));
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
__decorate([
|
|
259
|
+
test()
|
|
260
|
+
], BleDeviceControllerTest, "createsInstance", null);
|
|
261
|
+
__decorate([
|
|
262
|
+
test()
|
|
263
|
+
], BleDeviceControllerTest, "connectCallsLibndxCreateBleBackend", null);
|
|
264
|
+
__decorate([
|
|
265
|
+
test()
|
|
266
|
+
], BleDeviceControllerTest, "discoversUuidWhenDeviceUuidNotProvided", null);
|
|
267
|
+
__decorate([
|
|
268
|
+
test()
|
|
269
|
+
], BleDeviceControllerTest, "doesNotDiscoverUuidWhenDeviceUuidProvided", null);
|
|
270
|
+
__decorate([
|
|
271
|
+
test()
|
|
272
|
+
], BleDeviceControllerTest, "usesDiscoveredUuidToCreateBleBackend", null);
|
|
273
|
+
__decorate([
|
|
274
|
+
test()
|
|
275
|
+
], BleDeviceControllerTest, "usesDiscoveredUuidToStartBleBackend", null);
|
|
276
|
+
__decorate([
|
|
277
|
+
test()
|
|
278
|
+
], BleDeviceControllerTest, "exposesDiscoveredUuid", null);
|
|
279
|
+
__decorate([
|
|
280
|
+
test()
|
|
281
|
+
], BleDeviceControllerTest, "createBleBackendThrowsOn400", null);
|
|
282
|
+
__decorate([
|
|
283
|
+
test()
|
|
284
|
+
], BleDeviceControllerTest, "createBleBackendThrowsOn500", null);
|
|
285
|
+
__decorate([
|
|
286
|
+
test()
|
|
287
|
+
], BleDeviceControllerTest, "connectCallsLibndxStartBleBackend", null);
|
|
288
|
+
__decorate([
|
|
289
|
+
test()
|
|
290
|
+
], BleDeviceControllerTest, "startBleBackendThrowsOn400", null);
|
|
291
|
+
__decorate([
|
|
292
|
+
test()
|
|
293
|
+
], BleDeviceControllerTest, "startBleBackendThrowsOn500", null);
|
|
294
|
+
__decorate([
|
|
295
|
+
test()
|
|
296
|
+
], BleDeviceControllerTest, "connectWaitsForOnConnectedEvent", null);
|
|
297
|
+
__decorate([
|
|
298
|
+
test()
|
|
299
|
+
], BleDeviceControllerTest, "waitsAfterOnConnectedToDiscoverServices", null);
|
|
300
|
+
__decorate([
|
|
301
|
+
test()
|
|
302
|
+
], BleDeviceControllerTest, "writeCharacteristicCallsLibndxBinding", null);
|
|
303
|
+
__decorate([
|
|
304
|
+
test()
|
|
305
|
+
], BleDeviceControllerTest, "writeCharacteristicThrowsOn400", null);
|
|
306
|
+
__decorate([
|
|
307
|
+
test()
|
|
308
|
+
], BleDeviceControllerTest, "writeCharacteristicThrowsOn500", null);
|
|
309
|
+
__decorate([
|
|
310
|
+
test()
|
|
311
|
+
], BleDeviceControllerTest, "callsSetBleRssiInterval", null);
|
|
312
|
+
__decorate([
|
|
313
|
+
test()
|
|
314
|
+
], BleDeviceControllerTest, "disconnectCallsLibndxStopBleBackend", null);
|
|
315
|
+
__decorate([
|
|
316
|
+
test()
|
|
317
|
+
], BleDeviceControllerTest, "disconnectThrowsOn400", null);
|
|
318
|
+
__decorate([
|
|
319
|
+
test()
|
|
320
|
+
], BleDeviceControllerTest, "disconnectThrowsOn500", null);
|
|
321
|
+
__decorate([
|
|
322
|
+
test()
|
|
323
|
+
], BleDeviceControllerTest, "disconnectResetsConnectedFlag", null);
|
|
324
|
+
__decorate([
|
|
325
|
+
test()
|
|
326
|
+
], BleDeviceControllerTest, "exposesPeriperalName", null);
|
|
327
|
+
__decorate([
|
|
328
|
+
test()
|
|
329
|
+
], BleDeviceControllerTest, "returnsNAIfNameNotAvailable", null);
|
|
330
|
+
__decorate([
|
|
331
|
+
test()
|
|
332
|
+
], BleDeviceControllerTest, "throwsWithUnknownErrorIfNoError", null);
|
|
333
|
+
//# sourceMappingURL=BleDeviceController.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BleDeviceController.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/BleDeviceController.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import AbstractPackageTest from '../AbstractPackageTest.js';
|
|
2
|
+
export default class EventMarkerEmitterTest extends AbstractPackageTest {
|
|
3
|
+
private static instance;
|
|
4
|
+
protected static beforeEach(): Promise<void>;
|
|
5
|
+
private static readonly markerName;
|
|
6
|
+
protected static createsInstance(): Promise<void>;
|
|
7
|
+
protected static loadsWithEventMarkerSpecificOptions(): Promise<void>;
|
|
8
|
+
protected static canOverrideDefaultOptions(): Promise<void>;
|
|
9
|
+
protected static emittingSingleMarkerIncrementsHitCountAndWaitTime(): Promise<void>;
|
|
10
|
+
protected static emittingTwoMarkersIncrementsHitCountAndWaitTimeTwice(): Promise<void>;
|
|
11
|
+
protected static emitterIsInterruptable(bailIdx: number): Promise<void>;
|
|
12
|
+
protected static canStartAgainAfterInterrupting(): Promise<void>;
|
|
13
|
+
protected static doesNotWaitIfInterrupted(): Promise<void>;
|
|
14
|
+
protected static clearsTimeoutOnInterrupt(): Promise<void>;
|
|
15
|
+
protected static emitCallsPushSampleOnStreamOutlet(): Promise<void>;
|
|
16
|
+
protected static emitWaitsForMsIfPassed(): Promise<void>;
|
|
17
|
+
protected static destroyCallsDestroyOnInternalStreamOutlet(): Promise<void>;
|
|
18
|
+
protected static destroyInterruptsIfRunning(): Promise<void>;
|
|
19
|
+
protected static sourceIdIsUniqueAcrossInstances(): Promise<void>;
|
|
20
|
+
protected static emitThrowsIfCalledWhileAlreadyRunning(): Promise<void>;
|
|
21
|
+
protected static emitManyThrowsIfCalledWhileAlreadyRunning(): Promise<void>;
|
|
22
|
+
protected static emitSetsIsRunningFalseOnceDone(): Promise<void>;
|
|
23
|
+
protected static emitManySetsIsRunningFalseOnceDone(): Promise<void>;
|
|
24
|
+
private static emitOnce;
|
|
25
|
+
private static emit;
|
|
26
|
+
private static emitManyOnce;
|
|
27
|
+
private static emitManyFor;
|
|
28
|
+
private static generateEventMarker;
|
|
29
|
+
private static interrupt;
|
|
30
|
+
private static destroy;
|
|
31
|
+
private static get streamOutlet();
|
|
32
|
+
private static setupOutlet;
|
|
33
|
+
private static LslEventMarkerEmitter;
|
|
34
|
+
}
|