@neurodevs/node-lsl 13.0.1 → 14.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 (29) hide show
  1. package/build/__tests__/AbstractPackageTest.js +1 -1
  2. package/build/__tests__/AbstractPackageTest.js.map +1 -1
  3. package/build/__tests__/impl/LslWebSocketBridge.test.d.ts +1 -0
  4. package/build/__tests__/impl/LslWebSocketBridge.test.js +16 -1
  5. package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
  6. package/build/impl/LslWebSocketBridge.d.ts +12 -8
  7. package/build/impl/LslWebSocketBridge.js +4 -3
  8. package/build/impl/LslWebSocketBridge.js.map +1 -1
  9. package/build/index.d.ts +2 -2
  10. package/build/index.js +3 -3
  11. package/build/index.js.map +1 -1
  12. package/build/testDoubles/{StreamTransportBridge/FakeStreamTransportBridge.d.ts → WebSocketBridge/FakeWebSocketBridge.d.ts} +2 -2
  13. package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js +25 -0
  14. package/build/testDoubles/WebSocketBridge/FakeWebSocketBridge.js.map +1 -0
  15. package/build/testDoubles/WebSocketBridge/SpyLslWebSocketBridge.d.ts +4 -0
  16. package/build/testDoubles/WebSocketBridge/SpyLslWebSocketBridge.js.map +1 -0
  17. package/package.json +1 -1
  18. package/src/__tests__/AbstractPackageTest.ts +1 -1
  19. package/src/__tests__/impl/LslWebSocketBridge.test.ts +33 -5
  20. package/src/impl/LslWebSocketBridge.ts +20 -15
  21. package/src/index.ts +3 -3
  22. package/src/testDoubles/WebSocketBridge/FakeWebSocketBridge.ts +31 -0
  23. package/src/testDoubles/{StreamTransportBridge → WebSocketBridge}/SpyLslWebSocketBridge.ts +2 -2
  24. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js +0 -25
  25. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js.map +0 -1
  26. package/build/testDoubles/StreamTransportBridge/SpyLslWebSocketBridge.d.ts +0 -4
  27. package/build/testDoubles/StreamTransportBridge/SpyLslWebSocketBridge.js.map +0 -1
  28. package/src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts +0 -33
  29. /package/build/testDoubles/{StreamTransportBridge → WebSocketBridge}/SpyLslWebSocketBridge.js +0 -0
@@ -12,7 +12,7 @@ import SpyStreamInfo from '../testDoubles/StreamInfo/SpyStreamInfo.js';
12
12
  import FakeStreamInlet from '../testDoubles/StreamInlet/FakeStreamInlet.js';
13
13
  import { SpyStreamInlet } from '../testDoubles/StreamInlet/SpyStreamInlet.js';
14
14
  import FakeStreamOutlet from '../testDoubles/StreamOutlet/FakeStreamOutlet.js';
15
- import SpyLslWebSocketBridge from '../testDoubles/StreamTransportBridge/SpyLslWebSocketBridge.js';
15
+ import SpyLslWebSocketBridge from '../testDoubles/WebSocketBridge/SpyLslWebSocketBridge.js';
16
16
  import FakeWebSocketServer from '../testDoubles/WebSockets/FakeWebSocketServer.js';
17
17
  export default class AbstractPackageTest extends AbstractModuleTest {
18
18
  static fakeLiblsl;
@@ -1 +1 @@
1
- {"version":3,"file":"AbstractPackageTest.js","sourceRoot":"","sources":["../../src/__tests__/AbstractPackageTest.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AbstractPackageTest.js","sourceRoot":"","sources":["../../src/__tests__/AbstractPackageTest.ts"],"names":[],"mappings":"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"}
@@ -12,6 +12,7 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
12
12
  protected static doesNotSendToClientsThatAreNotReady(): Promise<void>;
13
13
  protected static destroyClosesWebSocketServer(): Promise<void>;
14
14
  protected static throwsIfActivateIsCalledAfterDestroy(): Promise<void>;
15
+ protected static acceptsOptionalWssPort(): Promise<void>;
15
16
  private static activate;
16
17
  private static deactivate;
17
18
  private static destroy;
@@ -24,12 +24,15 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
24
24
  assert.isTruthy(this.instance, 'Failed to create instance!');
25
25
  }
26
26
  static async createsLslStreamInlet() {
27
- const { channelNames, channelFormat, sampleRateHz, chunkSize } = FakeStreamInlet.callsToConstructor[0]?.options ?? {};
27
+ const { channelNames, channelFormat, sampleRateHz, chunkSize, name, type, sourceId, } = FakeStreamInlet.callsToConstructor[0]?.options ?? {};
28
28
  assert.isEqualDeep({
29
29
  channelNames,
30
30
  channelFormat,
31
31
  sampleRateHz,
32
32
  chunkSize,
33
+ name,
34
+ type,
35
+ sourceId,
33
36
  }, this.baseOptions);
34
37
  }
35
38
  static async activateCallsStartPullingOnInlet() {
@@ -77,6 +80,12 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
77
80
  this.activate();
78
81
  }, `\n\n Cannot re-activate bridge after destroying it! \n\n Please create and activate a new instance. \n`);
79
82
  }
83
+ static async acceptsOptionalWssPort() {
84
+ FakeWebSocketServer.resetTestDouble();
85
+ const wssPort = randomInt(1000, 9999);
86
+ this.LslWebSocketBridge({ wssPort });
87
+ assert.isEqual(FakeWebSocketServer.callsToConstructor[0]?.port, wssPort, 'Did not set port for WebSocketServer!');
88
+ }
80
89
  static activate() {
81
90
  this.instance.activate();
82
91
  }
@@ -98,6 +107,9 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
98
107
  channelFormat: 'float32',
99
108
  sampleRateHz: 100 * Math.random(),
100
109
  chunkSize: randomInt(1, 100),
110
+ name: this.generateId(),
111
+ type: this.generateId(),
112
+ sourceId: this.generateId(),
101
113
  };
102
114
  static LslWebSocketBridge(options) {
103
115
  return LslWebSocketBridge.Create({ ...this.baseOptions, ...options });
@@ -133,4 +145,7 @@ __decorate([
133
145
  __decorate([
134
146
  test()
135
147
  ], LslWebSocketBridgeTest, "throwsIfActivateIsCalledAfterDestroy", null);
148
+ __decorate([
149
+ test()
150
+ ], LslWebSocketBridgeTest, "acceptsOptionalWssPort", null);
136
151
  //# sourceMappingURL=LslWebSocketBridge.test.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LslWebSocketBridge.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslWebSocketBridge.test.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LslWebSocketBridge.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LslWebSocketBridge.test.ts"],"names":[],"mappings":"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"}
@@ -1,14 +1,14 @@
1
1
  import { WebSocketServer } from 'ws';
2
2
  import { ChannelFormat } from './LiblslAdapter.js';
3
3
  import { StreamInlet } from './LslStreamInlet.js';
4
- export default class LslWebSocketBridge implements StreamTransportBridge {
5
- static Class?: StreamTransportBridgeConstructor;
4
+ export default class LslWebSocketBridge implements WebSocketBridge {
5
+ static Class?: WebSocketBridgeConstructor;
6
6
  static WSS: typeof import("ws").Server;
7
7
  private inlet;
8
8
  private wss;
9
9
  private isDestroyed;
10
- protected constructor(options: StreamTransportBridgeConstructorOptions);
11
- static Create(options: StreamTransportBridgeOptions): StreamTransportBridge;
10
+ protected constructor(options: WebSocketBridgeConstructorOptions);
11
+ static Create(options: WebSocketBridgeOptions): WebSocketBridge;
12
12
  activate(): void;
13
13
  private throwIfBridgeIsDestroyed;
14
14
  private startPullingData;
@@ -22,19 +22,23 @@ export default class LslWebSocketBridge implements StreamTransportBridge {
22
22
  private static LslStreamInlet;
23
23
  private static WebSocketServer;
24
24
  }
25
- export interface StreamTransportBridge {
25
+ export interface WebSocketBridge {
26
26
  activate(): void;
27
27
  deactivate(): void;
28
28
  destroy(): void;
29
29
  }
30
- export type StreamTransportBridgeConstructor = new (options: StreamTransportBridgeConstructorOptions) => StreamTransportBridge;
31
- export interface StreamTransportBridgeOptions {
30
+ export type WebSocketBridgeConstructor = new (options: WebSocketBridgeConstructorOptions) => WebSocketBridge;
31
+ export interface WebSocketBridgeOptions {
32
32
  channelNames: string[];
33
33
  channelFormat: ChannelFormat;
34
34
  sampleRateHz: number;
35
35
  chunkSize: number;
36
+ name?: string;
37
+ type?: string;
38
+ sourceId?: string;
39
+ wssPort?: number;
36
40
  }
37
- export interface StreamTransportBridgeConstructorOptions extends StreamTransportBridgeOptions {
41
+ export interface WebSocketBridgeConstructorOptions extends WebSocketBridgeOptions {
38
42
  inlet: StreamInlet;
39
43
  wss: WebSocketServer;
40
44
  }
@@ -12,7 +12,8 @@ export default class LslWebSocketBridge {
12
12
  this.wss = wss;
13
13
  }
14
14
  static Create(options) {
15
- const wss = this.WebSocketServer();
15
+ const { wssPort = 8080 } = options ?? {};
16
+ const wss = this.WebSocketServer(wssPort);
16
17
  const inlet = this.LslStreamInlet(options, wss);
17
18
  return new (this.Class ?? this)({ ...options, inlet, wss });
18
19
  }
@@ -64,8 +65,8 @@ export default class LslWebSocketBridge {
64
65
  const onData = this.createOnDataCallback(wss);
65
66
  return LslStreamInlet.Create(options, onData);
66
67
  }
67
- static WebSocketServer() {
68
- return new this.WSS({ port: 8080 });
68
+ static WebSocketServer(wssPort) {
69
+ return new this.WSS({ port: wssPort });
69
70
  }
70
71
  }
71
72
  //# sourceMappingURL=LslWebSocketBridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LslWebSocketBridge.js","sourceRoot":"","sources":["../../src/impl/LslWebSocketBridge.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAA;AAEpC,OAAO,cAA+B,MAAM,qBAAqB,CAAA;AAEjE,MAAM,CAAC,OAAO,OAAO,kBAAkB;IAC5B,MAAM,CAAC,KAAK,CAAmC;IAC/C,MAAM,CAAC,GAAG,GAAG,eAAe,CAAA;IAE3B,KAAK,CAAa;IAClB,GAAG,CAAiB;IACpB,WAAW,GAAG,KAAK,CAAA;IAE3B,YAAsB,OAAgD;QAClE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,OAAO,CAAA;QAE9B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;QAClB,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAClB,CAAC;IAEM,MAAM,CAAC,MAAM,CAAC,OAAqC;QACtD,MAAM,GAAG,GAAG,IAAI,CAAC,eAAe,EAAE,CAAA;QAClC,MAAM,KAAK,GAAG,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,CAAC,CAAA;QAE/C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,CAAC,EAAE,GAAG,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;IAC/D,CAAC;IAEM,QAAQ;QACX,IAAI,CAAC,wBAAwB,EAAE,CAAA;QAC/B,IAAI,CAAC,gBAAgB,EAAE,CAAA;IAC3B,CAAC;IAEO,wBAAwB;QAC5B,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CACX,wGAAwG,CAC3G,CAAA;QACL,CAAC;IACL,CAAC;IAEO,gBAAgB;QACpB,IAAI,CAAC,KAAK,CAAC,YAAY,EAAE,CAAA;IAC7B,CAAC;IAEM,UAAU;QACb,IAAI,CAAC,eAAe,EAAE,CAAA;IAC1B,CAAC;IAEO,eAAe;QACnB,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAA;IAC5B,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC3B,IAAI,CAAC,oBAAoB,EAAE,CAAA;QAC3B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAA;IAC3B,CAAC;IAEO,oBAAoB;QACxB,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAA;IACxB,CAAC;IAEO,oBAAoB;QACxB,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAA;IACpB,CAAC;IAEO,MAAM,CAAC,oBAAoB,CAAC,GAAoB;QACpD,OAAO,CAAC,OAAqB,EAAE,UAAwB,EAAE,EAAE;YACvD,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,OAAO,EAAE,UAAU,CAAC,CAAA;QACrD,CAAC,CAAA;IACL,CAAC;IAEO,MAAM,CAAC,kBAAkB,CAC7B,GAAoB,EACpB,OAAsC,EACtC,UAAyC;QAEzC,KAAK,MAAM,MAAM,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;YAC/B,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;gBACvC,MAAM,CAAC,IAAI,CACP,IAAI,CAAC,SAAS,CAAC;oBACX,OAAO;oBACP,UAAU;iBACb,CAAC,CACL,CAAA;YACL,CAAC;QACL,CAAC;IACL,CAAC;IAEO,MAAM,CAAC,cAAc,CACzB,OAAqC,EACrC,GAAoB;QAEpB,MAAM,MAAM,GAAG,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAA;QAC7C,OAAO,cAAc,CAAC,MAAM,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;IACjD,CAAC;IAEO,MAAM,CAAC,eAAe;QAC1B,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAA;IACvC,CAAC"}
1
+ {"version":3,"file":"LslWebSocketBridge.js","sourceRoot":"","sources":["../../src/impl/LslWebSocketBridge.ts"],"names":[],"mappings":"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"}
package/build/index.d.ts CHANGED
@@ -28,8 +28,8 @@ export { default as FakeStreamOutlet } from './testDoubles/StreamOutlet/FakeStre
28
28
  export * from './testDoubles/StreamOutlet/FakeStreamOutlet.js';
29
29
  export { default as LslWebSocketBridge } from './impl/LslWebSocketBridge.js';
30
30
  export * from './impl/LslWebSocketBridge.js';
31
- export { default as FakeStreamTransportBridge } from './testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js';
32
- export * from './testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js';
31
+ export { default as FakeWebSocketBridge } from './testDoubles/WebSocketBridge/FakeWebSocketBridge.js';
32
+ export * from './testDoubles/WebSocketBridge/FakeWebSocketBridge.js';
33
33
  export { default as generateRandomOutletOptions } from './testDoubles/generateRandomOutletOptions.js';
34
34
  export { default as FakeWebSocket } from './testDoubles/WebSockets/FakeWebSocket.js';
35
35
  export * from './testDoubles/WebSockets/FakeWebSocket.js';
package/build/index.js CHANGED
@@ -31,11 +31,11 @@ export { default as LslStreamOutlet } from './impl/LslStreamOutlet.js';
31
31
  export * from './impl/LslStreamOutlet.js';
32
32
  export { default as FakeStreamOutlet } from './testDoubles/StreamOutlet/FakeStreamOutlet.js';
33
33
  export * from './testDoubles/StreamOutlet/FakeStreamOutlet.js';
34
- // StreamTransportBridge
34
+ // WebSocketBridge
35
35
  export { default as LslWebSocketBridge } from './impl/LslWebSocketBridge.js';
36
36
  export * from './impl/LslWebSocketBridge.js';
37
- export { default as FakeStreamTransportBridge } from './testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js';
38
- export * from './testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js';
37
+ export { default as FakeWebSocketBridge } from './testDoubles/WebSocketBridge/FakeWebSocketBridge.js';
38
+ export * from './testDoubles/WebSocketBridge/FakeWebSocketBridge.js';
39
39
  // Utils
40
40
  export { default as generateRandomOutletOptions } from './testDoubles/generateRandomOutletOptions.js';
41
41
  // WebSockets
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAEpB,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAChF,cAAc,gCAAgC,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0DAA0D,CAAA;AAC3G,cAAc,0DAA0D,CAAA;AAExE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0DAA0D,CAAA;AAC3G,cAAc,0DAA0D,CAAA;AAExE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,yDAAyD,CAAA;AACzG,cAAc,yDAAyD,CAAA;AAEvE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,8DAA8D,CAAA;AACnH,cAAc,8DAA8D,CAAA;AAE5E,SAAS;AAET,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAClE,cAAc,yBAAyB,CAAA;AAEvC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oCAAoC,CAAA;AAC1E,cAAc,oCAAoC,CAAA;AAElD,aAAa;AAEb,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAClE,cAAc,yBAAyB,CAAA;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAA;AACpF,cAAc,2CAA2C,CAAA;AAEzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,cAAc,4CAA4C,CAAA;AAE1D,cAAc;AAEd,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACpE,cAAc,0BAA0B,CAAA;AAExC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8CAA8C,CAAA;AACzF,cAAc,8CAA8C,CAAA;AAE5D,eAAe;AAEf,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAA;AACtE,cAAc,2BAA2B,CAAA;AAEzC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gDAAgD,CAAA;AAC5F,cAAc,gDAAgD,CAAA;AAE9D,wBAAwB;AAExB,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAC5E,cAAc,8BAA8B,CAAA;AAE5C,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,kEAAkE,CAAA;AACvH,cAAc,kEAAkE,CAAA;AAEhF,QAAQ;AAER,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,8CAA8C,CAAA;AAErG,aAAa;AAEb,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAA;AACpF,cAAc,2CAA2C,CAAA;AAEzD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,iDAAiD,CAAA;AAChG,cAAc,iDAAiD,CAAA"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,oBAAoB;AAEpB,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,gCAAgC,CAAA;AAChF,cAAc,gCAAgC,CAAA;AAE9C,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0DAA0D,CAAA;AAC3G,cAAc,0DAA0D,CAAA;AAExE,OAAO,EAAE,OAAO,IAAI,qBAAqB,EAAE,MAAM,0DAA0D,CAAA;AAC3G,cAAc,0DAA0D,CAAA;AAExE,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,yDAAyD,CAAA;AACzG,cAAc,yDAAyD,CAAA;AAEvE,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,8DAA8D,CAAA;AACnH,cAAc,8DAA8D,CAAA;AAE5E,SAAS;AAET,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAClE,cAAc,yBAAyB,CAAA;AAEvC,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,oCAAoC,CAAA;AAC1E,cAAc,oCAAoC,CAAA;AAElD,aAAa;AAEb,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,yBAAyB,CAAA;AAClE,cAAc,yBAAyB,CAAA;AAEvC,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAA;AACpF,cAAc,2CAA2C,CAAA;AAEzD,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,4CAA4C,CAAA;AACtF,cAAc,4CAA4C,CAAA;AAE1D,cAAc;AAEd,OAAO,EAAE,OAAO,IAAI,cAAc,EAAE,MAAM,0BAA0B,CAAA;AACpE,cAAc,0BAA0B,CAAA;AAExC,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,8CAA8C,CAAA;AACzF,cAAc,8CAA8C,CAAA;AAE5D,eAAe;AAEf,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,2BAA2B,CAAA;AACtE,cAAc,2BAA2B,CAAA;AAEzC,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,gDAAgD,CAAA;AAC5F,cAAc,gDAAgD,CAAA;AAE9D,kBAAkB;AAElB,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAA;AAC5E,cAAc,8BAA8B,CAAA;AAE5C,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,sDAAsD,CAAA;AACrG,cAAc,sDAAsD,CAAA;AAEpE,QAAQ;AAER,OAAO,EAAE,OAAO,IAAI,2BAA2B,EAAE,MAAM,8CAA8C,CAAA;AAErG,aAAa;AAEb,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,2CAA2C,CAAA;AACpF,cAAc,2CAA2C,CAAA;AAEzD,OAAO,EAAE,OAAO,IAAI,mBAAmB,EAAE,MAAM,iDAAiD,CAAA;AAChG,cAAc,iDAAiD,CAAA"}
@@ -1,5 +1,5 @@
1
- import { StreamTransportBridge } from '../../impl/LslWebSocketBridge.js';
2
- export default class FakeStreamTransportBridge implements StreamTransportBridge {
1
+ import { WebSocketBridge } from '../../impl/LslWebSocketBridge.js';
2
+ export default class FakeWebSocketBridge implements WebSocketBridge {
3
3
  static numCallsToConstructor: number;
4
4
  static numCallsToActivate: number;
5
5
  static numCallsToDeactivate: number;
@@ -0,0 +1,25 @@
1
+ export default class FakeWebSocketBridge {
2
+ static numCallsToConstructor = 0;
3
+ static numCallsToActivate = 0;
4
+ static numCallsToDeactivate = 0;
5
+ static numCallsToDestroy = 0;
6
+ constructor() {
7
+ FakeWebSocketBridge.numCallsToConstructor++;
8
+ }
9
+ activate() {
10
+ FakeWebSocketBridge.numCallsToActivate++;
11
+ }
12
+ deactivate() {
13
+ FakeWebSocketBridge.numCallsToDeactivate++;
14
+ }
15
+ destroy() {
16
+ FakeWebSocketBridge.numCallsToDestroy++;
17
+ }
18
+ static resetTestDouble() {
19
+ FakeWebSocketBridge.numCallsToConstructor = 0;
20
+ FakeWebSocketBridge.numCallsToActivate = 0;
21
+ FakeWebSocketBridge.numCallsToDeactivate = 0;
22
+ FakeWebSocketBridge.numCallsToDestroy = 0;
23
+ }
24
+ }
25
+ //# sourceMappingURL=FakeWebSocketBridge.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"FakeWebSocketBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/WebSocketBridge/FakeWebSocketBridge.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,mBAAmB;IAC7B,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAChC,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAA;IAC7B,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAC/B,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAEnC;QACI,mBAAmB,CAAC,qBAAqB,EAAE,CAAA;IAC/C,CAAC;IAEM,QAAQ;QACX,mBAAmB,CAAC,kBAAkB,EAAE,CAAA;IAC5C,CAAC;IAEM,UAAU;QACb,mBAAmB,CAAC,oBAAoB,EAAE,CAAA;IAC9C,CAAC;IAEM,OAAO;QACV,mBAAmB,CAAC,iBAAiB,EAAE,CAAA;IAC3C,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,mBAAmB,CAAC,qBAAqB,GAAG,CAAC,CAAA;QAC7C,mBAAmB,CAAC,kBAAkB,GAAG,CAAC,CAAA;QAC1C,mBAAmB,CAAC,oBAAoB,GAAG,CAAC,CAAA;QAC5C,mBAAmB,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC7C,CAAC"}
@@ -0,0 +1,4 @@
1
+ import LslWebSocketBridge, { WebSocketBridgeConstructorOptions } from '../../impl/LslWebSocketBridge.js';
2
+ export default class SpyLslWebSocketBridge extends LslWebSocketBridge {
3
+ constructor(options: WebSocketBridgeConstructorOptions);
4
+ }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SpyLslWebSocketBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/WebSocketBridge/SpyLslWebSocketBridge.ts"],"names":[],"mappings":"AAAA,OAAO,kBAEN,MAAM,kCAAkC,CAAA;AAEzC,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,kBAAkB;IACjE,YAAmB,OAA0C;QACzD,KAAK,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;CACJ"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@neurodevs/node-lsl",
3
- "version": "13.0.1",
3
+ "version": "14.0.0",
4
4
  "description": "Lab Streaming Layer (LSL) bindings for Node",
5
5
  "type": "module",
6
6
  "keywords": [
@@ -17,7 +17,7 @@ import SpyStreamInfo from '../testDoubles/StreamInfo/SpyStreamInfo.js'
17
17
  import FakeStreamInlet from '../testDoubles/StreamInlet/FakeStreamInlet.js'
18
18
  import { SpyStreamInlet } from '../testDoubles/StreamInlet/SpyStreamInlet.js'
19
19
  import FakeStreamOutlet from '../testDoubles/StreamOutlet/FakeStreamOutlet.js'
20
- import SpyLslWebSocketBridge from '../testDoubles/StreamTransportBridge/SpyLslWebSocketBridge.js'
20
+ import SpyLslWebSocketBridge from '../testDoubles/WebSocketBridge/SpyLslWebSocketBridge.js'
21
21
  import FakeWebSocketServer from '../testDoubles/WebSockets/FakeWebSocketServer.js'
22
22
 
23
23
  export default class AbstractPackageTest extends AbstractModuleTest {
@@ -3,10 +3,10 @@ import { randomInt } from 'crypto'
3
3
  import { test, assert } from '@neurodevs/node-tdd'
4
4
 
5
5
  import LslWebSocketBridge, {
6
- StreamTransportBridgeOptions,
6
+ WebSocketBridgeOptions,
7
7
  } from '../../impl/LslWebSocketBridge.js'
8
8
  import FakeStreamInlet from '../../testDoubles/StreamInlet/FakeStreamInlet.js'
9
- import SpyLslWebSocketBridge from '../../testDoubles/StreamTransportBridge/SpyLslWebSocketBridge.js'
9
+ import SpyLslWebSocketBridge from '../../testDoubles/WebSocketBridge/SpyLslWebSocketBridge.js'
10
10
  import FakeWebSocket from '../../testDoubles/WebSockets/FakeWebSocket.js'
11
11
  import FakeWebSocketServer from '../../testDoubles/WebSockets/FakeWebSocketServer.js'
12
12
  import AbstractPackageTest from '../AbstractPackageTest.js'
@@ -31,8 +31,15 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
31
31
 
32
32
  @test()
33
33
  protected static async createsLslStreamInlet() {
34
- const { channelNames, channelFormat, sampleRateHz, chunkSize } =
35
- FakeStreamInlet.callsToConstructor[0]?.options ?? {}
34
+ const {
35
+ channelNames,
36
+ channelFormat,
37
+ sampleRateHz,
38
+ chunkSize,
39
+ name,
40
+ type,
41
+ sourceId,
42
+ } = FakeStreamInlet.callsToConstructor[0]?.options ?? {}
36
43
 
37
44
  assert.isEqualDeep(
38
45
  {
@@ -40,6 +47,9 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
40
47
  channelFormat,
41
48
  sampleRateHz,
42
49
  chunkSize,
50
+ name,
51
+ type,
52
+ sourceId,
43
53
  },
44
54
  this.baseOptions
45
55
  )
@@ -146,6 +156,21 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
146
156
  }, `\n\n Cannot re-activate bridge after destroying it! \n\n Please create and activate a new instance. \n`)
147
157
  }
148
158
 
159
+ @test()
160
+ protected static async acceptsOptionalWssPort() {
161
+ FakeWebSocketServer.resetTestDouble()
162
+
163
+ const wssPort = randomInt(1000, 9999)
164
+
165
+ this.LslWebSocketBridge({ wssPort })
166
+
167
+ assert.isEqual(
168
+ FakeWebSocketServer.callsToConstructor[0]?.port,
169
+ wssPort,
170
+ 'Did not set port for WebSocketServer!'
171
+ )
172
+ }
173
+
149
174
  private static activate() {
150
175
  this.instance.activate()
151
176
  }
@@ -173,10 +198,13 @@ export default class LslWebSocketBridgeTest extends AbstractPackageTest {
173
198
  channelFormat: 'float32' as const,
174
199
  sampleRateHz: 100 * Math.random(),
175
200
  chunkSize: randomInt(1, 100),
201
+ name: this.generateId(),
202
+ type: this.generateId(),
203
+ sourceId: this.generateId(),
176
204
  }
177
205
 
178
206
  private static LslWebSocketBridge(
179
- options?: Partial<StreamTransportBridgeOptions>
207
+ options?: Partial<WebSocketBridgeOptions>
180
208
  ) {
181
209
  return LslWebSocketBridge.Create({ ...this.baseOptions, ...options })
182
210
  }
@@ -2,23 +2,24 @@ import { WebSocketServer } from 'ws'
2
2
  import { ChannelFormat } from './LiblslAdapter.js'
3
3
  import LslStreamInlet, { StreamInlet } from './LslStreamInlet.js'
4
4
 
5
- export default class LslWebSocketBridge implements StreamTransportBridge {
6
- public static Class?: StreamTransportBridgeConstructor
5
+ export default class LslWebSocketBridge implements WebSocketBridge {
6
+ public static Class?: WebSocketBridgeConstructor
7
7
  public static WSS = WebSocketServer
8
8
 
9
9
  private inlet: StreamInlet
10
10
  private wss: WebSocketServer
11
11
  private isDestroyed = false
12
12
 
13
- protected constructor(options: StreamTransportBridgeConstructorOptions) {
13
+ protected constructor(options: WebSocketBridgeConstructorOptions) {
14
14
  const { inlet, wss } = options
15
15
 
16
16
  this.inlet = inlet
17
17
  this.wss = wss
18
18
  }
19
19
 
20
- public static Create(options: StreamTransportBridgeOptions) {
21
- const wss = this.WebSocketServer()
20
+ public static Create(options: WebSocketBridgeOptions) {
21
+ const { wssPort = 8080 } = options ?? {}
22
+ const wss = this.WebSocketServer(wssPort)
22
23
  const inlet = this.LslStreamInlet(options, wss)
23
24
 
24
25
  return new (this.Class ?? this)({ ...options, inlet, wss })
@@ -87,37 +88,41 @@ export default class LslWebSocketBridge implements StreamTransportBridge {
87
88
  }
88
89
 
89
90
  private static LslStreamInlet(
90
- options: StreamTransportBridgeOptions,
91
+ options: WebSocketBridgeOptions,
91
92
  wss: WebSocketServer
92
93
  ) {
93
94
  const onData = this.createOnDataCallback(wss)
94
95
  return LslStreamInlet.Create(options, onData)
95
96
  }
96
97
 
97
- private static WebSocketServer() {
98
- return new this.WSS({ port: 8080 })
98
+ private static WebSocketServer(wssPort: number) {
99
+ return new this.WSS({ port: wssPort })
99
100
  }
100
101
  }
101
102
 
102
- export interface StreamTransportBridge {
103
+ export interface WebSocketBridge {
103
104
  activate(): void
104
105
  deactivate(): void
105
106
  destroy(): void
106
107
  }
107
108
 
108
- export type StreamTransportBridgeConstructor = new (
109
- options: StreamTransportBridgeConstructorOptions
110
- ) => StreamTransportBridge
109
+ export type WebSocketBridgeConstructor = new (
110
+ options: WebSocketBridgeConstructorOptions
111
+ ) => WebSocketBridge
111
112
 
112
- export interface StreamTransportBridgeOptions {
113
+ export interface WebSocketBridgeOptions {
113
114
  channelNames: string[]
114
115
  channelFormat: ChannelFormat
115
116
  sampleRateHz: number
116
117
  chunkSize: number
118
+ name?: string
119
+ type?: string
120
+ sourceId?: string
121
+ wssPort?: number
117
122
  }
118
123
 
119
- export interface StreamTransportBridgeConstructorOptions
120
- extends StreamTransportBridgeOptions {
124
+ export interface WebSocketBridgeConstructorOptions
125
+ extends WebSocketBridgeOptions {
121
126
  inlet: StreamInlet
122
127
  wss: WebSocketServer
123
128
  }
package/src/index.ts CHANGED
@@ -50,13 +50,13 @@ export * from './impl/LslStreamOutlet.js'
50
50
  export { default as FakeStreamOutlet } from './testDoubles/StreamOutlet/FakeStreamOutlet.js'
51
51
  export * from './testDoubles/StreamOutlet/FakeStreamOutlet.js'
52
52
 
53
- // StreamTransportBridge
53
+ // WebSocketBridge
54
54
 
55
55
  export { default as LslWebSocketBridge } from './impl/LslWebSocketBridge.js'
56
56
  export * from './impl/LslWebSocketBridge.js'
57
57
 
58
- export { default as FakeStreamTransportBridge } from './testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js'
59
- export * from './testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js'
58
+ export { default as FakeWebSocketBridge } from './testDoubles/WebSocketBridge/FakeWebSocketBridge.js'
59
+ export * from './testDoubles/WebSocketBridge/FakeWebSocketBridge.js'
60
60
 
61
61
  // Utils
62
62
 
@@ -0,0 +1,31 @@
1
+ import { WebSocketBridge } from '../../impl/LslWebSocketBridge.js'
2
+
3
+ export default class FakeWebSocketBridge implements WebSocketBridge {
4
+ public static numCallsToConstructor = 0
5
+ public static numCallsToActivate = 0
6
+ public static numCallsToDeactivate = 0
7
+ public static numCallsToDestroy = 0
8
+
9
+ public constructor() {
10
+ FakeWebSocketBridge.numCallsToConstructor++
11
+ }
12
+
13
+ public activate() {
14
+ FakeWebSocketBridge.numCallsToActivate++
15
+ }
16
+
17
+ public deactivate() {
18
+ FakeWebSocketBridge.numCallsToDeactivate++
19
+ }
20
+
21
+ public destroy() {
22
+ FakeWebSocketBridge.numCallsToDestroy++
23
+ }
24
+
25
+ public static resetTestDouble() {
26
+ FakeWebSocketBridge.numCallsToConstructor = 0
27
+ FakeWebSocketBridge.numCallsToActivate = 0
28
+ FakeWebSocketBridge.numCallsToDeactivate = 0
29
+ FakeWebSocketBridge.numCallsToDestroy = 0
30
+ }
31
+ }
@@ -1,9 +1,9 @@
1
1
  import LslWebSocketBridge, {
2
- StreamTransportBridgeConstructorOptions,
2
+ WebSocketBridgeConstructorOptions,
3
3
  } from '../../impl/LslWebSocketBridge.js'
4
4
 
5
5
  export default class SpyLslWebSocketBridge extends LslWebSocketBridge {
6
- public constructor(options: StreamTransportBridgeConstructorOptions) {
6
+ public constructor(options: WebSocketBridgeConstructorOptions) {
7
7
  super(options)
8
8
  }
9
9
  }
@@ -1,25 +0,0 @@
1
- export default class FakeStreamTransportBridge {
2
- static numCallsToConstructor = 0;
3
- static numCallsToActivate = 0;
4
- static numCallsToDeactivate = 0;
5
- static numCallsToDestroy = 0;
6
- constructor() {
7
- FakeStreamTransportBridge.numCallsToConstructor++;
8
- }
9
- activate() {
10
- FakeStreamTransportBridge.numCallsToActivate++;
11
- }
12
- deactivate() {
13
- FakeStreamTransportBridge.numCallsToDeactivate++;
14
- }
15
- destroy() {
16
- FakeStreamTransportBridge.numCallsToDestroy++;
17
- }
18
- static resetTestDouble() {
19
- FakeStreamTransportBridge.numCallsToConstructor = 0;
20
- FakeStreamTransportBridge.numCallsToActivate = 0;
21
- FakeStreamTransportBridge.numCallsToDeactivate = 0;
22
- FakeStreamTransportBridge.numCallsToDestroy = 0;
23
- }
24
- }
25
- //# sourceMappingURL=FakeStreamTransportBridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FakeStreamTransportBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,OAAO,OAAO,yBAAyB;IAGnC,MAAM,CAAC,qBAAqB,GAAG,CAAC,CAAA;IAChC,MAAM,CAAC,kBAAkB,GAAG,CAAC,CAAA;IAC7B,MAAM,CAAC,oBAAoB,GAAG,CAAC,CAAA;IAC/B,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAEnC;QACI,yBAAyB,CAAC,qBAAqB,EAAE,CAAA;IACrD,CAAC;IAEM,QAAQ;QACX,yBAAyB,CAAC,kBAAkB,EAAE,CAAA;IAClD,CAAC;IAEM,UAAU;QACb,yBAAyB,CAAC,oBAAoB,EAAE,CAAA;IACpD,CAAC;IAEM,OAAO;QACV,yBAAyB,CAAC,iBAAiB,EAAE,CAAA;IACjD,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,yBAAyB,CAAC,qBAAqB,GAAG,CAAC,CAAA;QACnD,yBAAyB,CAAC,kBAAkB,GAAG,CAAC,CAAA;QAChD,yBAAyB,CAAC,oBAAoB,GAAG,CAAC,CAAA;QAClD,yBAAyB,CAAC,iBAAiB,GAAG,CAAC,CAAA;IACnD,CAAC"}
@@ -1,4 +0,0 @@
1
- import LslWebSocketBridge, { StreamTransportBridgeConstructorOptions } from '../../impl/LslWebSocketBridge.js';
2
- export default class SpyLslWebSocketBridge extends LslWebSocketBridge {
3
- constructor(options: StreamTransportBridgeConstructorOptions);
4
- }
@@ -1 +0,0 @@
1
- {"version":3,"file":"SpyLslWebSocketBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamTransportBridge/SpyLslWebSocketBridge.ts"],"names":[],"mappings":"AAAA,OAAO,kBAEN,MAAM,kCAAkC,CAAA;AAEzC,MAAM,CAAC,OAAO,OAAO,qBAAsB,SAAQ,kBAAkB;IACjE,YAAmB,OAAgD;QAC/D,KAAK,CAAC,OAAO,CAAC,CAAA;IAClB,CAAC;CACJ"}
@@ -1,33 +0,0 @@
1
- import { StreamTransportBridge } from '../../impl/LslWebSocketBridge.js'
2
-
3
- export default class FakeStreamTransportBridge
4
- implements StreamTransportBridge
5
- {
6
- public static numCallsToConstructor = 0
7
- public static numCallsToActivate = 0
8
- public static numCallsToDeactivate = 0
9
- public static numCallsToDestroy = 0
10
-
11
- public constructor() {
12
- FakeStreamTransportBridge.numCallsToConstructor++
13
- }
14
-
15
- public activate() {
16
- FakeStreamTransportBridge.numCallsToActivate++
17
- }
18
-
19
- public deactivate() {
20
- FakeStreamTransportBridge.numCallsToDeactivate++
21
- }
22
-
23
- public destroy() {
24
- FakeStreamTransportBridge.numCallsToDestroy++
25
- }
26
-
27
- public static resetTestDouble() {
28
- FakeStreamTransportBridge.numCallsToConstructor = 0
29
- FakeStreamTransportBridge.numCallsToActivate = 0
30
- FakeStreamTransportBridge.numCallsToDeactivate = 0
31
- FakeStreamTransportBridge.numCallsToDestroy = 0
32
- }
33
- }