@neurodevs/node-lsl 11.4.2 → 12.0.1

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 (167) hide show
  1. package/.vscode/tasks.json +19 -1
  2. package/README.md +8 -9
  3. package/build/__tests__/{AbstractLslTest.d.ts → AbstractPackageTest.d.ts} +7 -6
  4. package/build/__tests__/AbstractPackageTest.js +53 -0
  5. package/build/__tests__/AbstractPackageTest.js.map +1 -0
  6. package/build/__tests__/{modules → impl}/LiblslAdapter.test.d.ts +6 -3
  7. package/build/__tests__/{modules → impl}/LiblslAdapter.test.js +193 -151
  8. package/build/__tests__/impl/LiblslAdapter.test.js.map +1 -0
  9. package/build/__tests__/{modules/EventMarkerOutlet.test.d.ts → impl/LslEventMarkerOutlet.test.d.ts} +5 -4
  10. package/build/__tests__/{modules/EventMarkerOutlet.test.js → impl/LslEventMarkerOutlet.test.js} +54 -52
  11. package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +1 -0
  12. package/build/__tests__/{modules → impl}/LslStreamInfo.test.d.ts +3 -3
  13. package/build/__tests__/{modules → impl}/LslStreamInfo.test.js +53 -59
  14. package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -0
  15. package/build/__tests__/impl/LslStreamInlet.test.d.ts +11 -0
  16. package/build/__tests__/{modules → impl}/LslStreamInlet.test.js +28 -26
  17. package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -0
  18. package/build/__tests__/{modules → impl}/LslStreamOutlet.test.d.ts +3 -3
  19. package/build/__tests__/{modules → impl}/LslStreamOutlet.test.js +56 -60
  20. package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -0
  21. package/build/__tests__/impl/LslWebSocketBridge.test.d.ts +7 -0
  22. package/build/__tests__/impl/LslWebSocketBridge.test.js +26 -0
  23. package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -0
  24. package/build/assertions.d.ts +1 -1
  25. package/build/assertions.js +13 -20
  26. package/build/assertions.js.map +1 -1
  27. package/build/consts.js +2 -5
  28. package/build/consts.js.map +1 -1
  29. package/build/{modules → impl}/LiblslAdapter.d.ts +5 -4
  30. package/build/{modules → impl}/LiblslAdapter.js +60 -51
  31. package/build/impl/LiblslAdapter.js.map +1 -0
  32. package/build/impl/LslEventMarkerOutlet.d.ts +23 -0
  33. package/build/{modules/EventMarkerOutlet.js → impl/LslEventMarkerOutlet.js} +12 -14
  34. package/build/impl/LslEventMarkerOutlet.js.map +1 -0
  35. package/build/{modules → impl}/LslStreamInfo.d.ts +1 -1
  36. package/build/{modules → impl}/LslStreamInfo.js +19 -16
  37. package/build/impl/LslStreamInfo.js.map +1 -0
  38. package/build/impl/LslStreamInlet.d.ts +34 -0
  39. package/build/{modules → impl}/LslStreamInlet.js +19 -16
  40. package/build/impl/LslStreamInlet.js.map +1 -0
  41. package/build/{modules → impl}/LslStreamOutlet.d.ts +10 -10
  42. package/build/{modules → impl}/LslStreamOutlet.js +22 -23
  43. package/build/impl/LslStreamOutlet.js.map +1 -0
  44. package/build/impl/LslWebSocketBridge.d.ts +8 -0
  45. package/build/impl/LslWebSocketBridge.js +8 -0
  46. package/build/impl/LslWebSocketBridge.js.map +1 -0
  47. package/build/index.d.ts +34 -30
  48. package/build/index.js +39 -69
  49. package/build/index.js.map +1 -1
  50. package/build/scripts/{demoMarkerOutlet.js → runLslEventMarkerOutlet.js} +3 -8
  51. package/build/scripts/runLslEventMarkerOutlet.js.map +1 -0
  52. package/build/scripts/{demoStreamOutlet.js → runLslStreamOutlet.js} +3 -8
  53. package/build/scripts/runLslStreamOutlet.js.map +1 -0
  54. package/build/testDoubles/{MarkerOutlet/FakeMarkerOutlet.d.ts → EventMarkerOutlet/FakeEventMarkerOutlet.d.ts} +3 -3
  55. package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js +26 -0
  56. package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js.map +1 -0
  57. package/build/testDoubles/{MarkerOutlet/MockMarkerOutlet.d.ts → EventMarkerOutlet/MockEventMarkerOutlet.d.ts} +3 -3
  58. package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js +46 -0
  59. package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js.map +1 -0
  60. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.d.ts +9 -0
  61. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js +19 -0
  62. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js.map +1 -0
  63. package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.d.ts +10 -0
  64. package/build/testDoubles/{MarkerOutlet/ThrowingMarkerOutlet.js → EventMarkerOutlet/ThrowingEventMarkerOutlet.js} +3 -6
  65. package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js.map +1 -0
  66. package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +4 -1
  67. package/build/testDoubles/Liblsl/FakeLiblsl.js +23 -15
  68. package/build/testDoubles/Liblsl/FakeLiblsl.js.map +1 -1
  69. package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +2 -2
  70. package/build/testDoubles/StreamInfo/FakeStreamInfo.js +3 -6
  71. package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +1 -1
  72. package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +2 -2
  73. package/build/testDoubles/StreamInfo/SpyStreamInfo.js +2 -8
  74. package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +1 -1
  75. package/build/testDoubles/StreamInlet/FakeStreamInlet.d.ts +12 -0
  76. package/build/testDoubles/StreamInlet/FakeStreamInlet.js +18 -0
  77. package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +1 -0
  78. package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +8 -0
  79. package/build/testDoubles/StreamInlet/SpyStreamInlet.js +16 -0
  80. package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +1 -0
  81. package/build/testDoubles/{LslOutlet/FakeLslOutlet.d.ts → StreamOutlet/FakeStreamOutlet.d.ts} +10 -11
  82. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js +57 -0
  83. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +1 -0
  84. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.d.ts +6 -0
  85. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js +10 -0
  86. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js.map +1 -0
  87. package/build/testDoubles/consts.js +4 -7
  88. package/build/testDoubles/consts.js.map +1 -1
  89. package/build/testDoubles/generateRandomOutletOptions.d.ts +2 -2
  90. package/build/testDoubles/generateRandomOutletOptions.js +14 -17
  91. package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
  92. package/build/types.d.ts +9 -4
  93. package/build/types.js +1 -2
  94. package/build/validations.js +4 -10
  95. package/build/validations.js.map +1 -1
  96. package/package.json +22 -12
  97. package/src/__tests__/AbstractPackageTest.ts +65 -0
  98. package/src/__tests__/{modules → impl}/LiblslAdapter.test.ts +71 -44
  99. package/src/__tests__/{modules/EventMarkerOutlet.test.ts → impl/LslEventMarkerOutlet.test.ts} +40 -28
  100. package/src/__tests__/{modules → impl}/LslStreamInfo.test.ts +10 -8
  101. package/src/__tests__/{modules → impl}/LslStreamInlet.test.ts +27 -14
  102. package/src/__tests__/{modules → impl}/LslStreamOutlet.test.ts +24 -17
  103. package/src/__tests__/impl/LslWebSocketBridge.test.ts +25 -0
  104. package/src/assertions.ts +3 -3
  105. package/src/{modules → impl}/LiblslAdapter.ts +33 -21
  106. package/src/{modules/EventMarkerOutlet.ts → impl/LslEventMarkerOutlet.ts} +17 -12
  107. package/src/{modules → impl}/LslStreamInfo.ts +5 -4
  108. package/src/{modules → impl}/LslStreamInlet.ts +27 -16
  109. package/src/{modules → impl}/LslStreamOutlet.ts +19 -16
  110. package/src/impl/LslWebSocketBridge.ts +13 -0
  111. package/src/index.ts +43 -35
  112. package/src/scripts/{demoMarkerOutlet.ts → runLslEventMarkerOutlet.ts} +2 -2
  113. package/src/scripts/{demoStreamOutlet.ts → runLslStreamOutlet.ts} +1 -1
  114. package/src/testDoubles/{MarkerOutlet/FakeMarkerOutlet.ts → EventMarkerOutlet/FakeEventMarkerOutlet.ts} +7 -7
  115. package/src/testDoubles/{MarkerOutlet/MockMarkerOutlet.ts → EventMarkerOutlet/MockEventMarkerOutlet.ts} +5 -4
  116. package/src/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.ts +24 -0
  117. package/src/testDoubles/{MarkerOutlet/ThrowingMarkerOutlet.ts → EventMarkerOutlet/ThrowingEventMarkerOutlet.ts} +3 -3
  118. package/src/testDoubles/Liblsl/FakeLiblsl.ts +9 -1
  119. package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +2 -2
  120. package/src/testDoubles/StreamInfo/SpyStreamInfo.ts +1 -1
  121. package/src/testDoubles/StreamInlet/FakeStreamInlet.ts +27 -0
  122. package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +22 -0
  123. package/src/testDoubles/{LslOutlet/FakeLslOutlet.ts → StreamOutlet/FakeStreamOutlet.ts} +22 -19
  124. package/src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts +15 -0
  125. package/src/testDoubles/generateRandomOutletOptions.ts +5 -4
  126. package/src/types.ts +11 -4
  127. package/tsconfig.json +17 -28
  128. package/build/__tests__/AbstractLslTest.js +0 -87
  129. package/build/__tests__/AbstractLslTest.js.map +0 -1
  130. package/build/__tests__/modules/EventMarkerOutlet.test.js.map +0 -1
  131. package/build/__tests__/modules/LiblslAdapter.test.js.map +0 -1
  132. package/build/__tests__/modules/LslStreamInfo.test.js.map +0 -1
  133. package/build/__tests__/modules/LslStreamInlet.test.d.ts +0 -10
  134. package/build/__tests__/modules/LslStreamInlet.test.js.map +0 -1
  135. package/build/__tests__/modules/LslStreamOutlet.test.js.map +0 -1
  136. package/build/modules/EventMarkerOutlet.d.ts +0 -23
  137. package/build/modules/EventMarkerOutlet.js.map +0 -1
  138. package/build/modules/LiblslAdapter.js.map +0 -1
  139. package/build/modules/LslStreamInfo.js.map +0 -1
  140. package/build/modules/LslStreamInlet.d.ts +0 -31
  141. package/build/modules/LslStreamInlet.js.map +0 -1
  142. package/build/modules/LslStreamOutlet.js.map +0 -1
  143. package/build/scripts/demoMarkerOutlet.js.map +0 -1
  144. package/build/scripts/demoStreamOutlet.js.map +0 -1
  145. package/build/testDoubles/LslInlet/FakeLslInlet.d.ts +0 -11
  146. package/build/testDoubles/LslInlet/FakeLslInlet.js +0 -16
  147. package/build/testDoubles/LslInlet/FakeLslInlet.js.map +0 -1
  148. package/build/testDoubles/LslInlet/SpyLslInlet.d.ts +0 -7
  149. package/build/testDoubles/LslInlet/SpyLslInlet.js +0 -20
  150. package/build/testDoubles/LslInlet/SpyLslInlet.js.map +0 -1
  151. package/build/testDoubles/LslOutlet/FakeLslOutlet.js +0 -59
  152. package/build/testDoubles/LslOutlet/FakeLslOutlet.js.map +0 -1
  153. package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js +0 -29
  154. package/build/testDoubles/MarkerOutlet/FakeMarkerOutlet.js.map +0 -1
  155. package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js +0 -49
  156. package/build/testDoubles/MarkerOutlet/MockMarkerOutlet.js.map +0 -1
  157. package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.d.ts +0 -9
  158. package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.js +0 -24
  159. package/build/testDoubles/MarkerOutlet/SpyMarkerOutlet.js.map +0 -1
  160. package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.d.ts +0 -10
  161. package/build/testDoubles/MarkerOutlet/ThrowingMarkerOutlet.js.map +0 -1
  162. package/src/__tests__/AbstractLslTest.ts +0 -59
  163. package/src/testDoubles/LslInlet/FakeLslInlet.ts +0 -22
  164. package/src/testDoubles/LslInlet/SpyLslInlet.ts +0 -16
  165. package/src/testDoubles/MarkerOutlet/SpyMarkerOutlet.ts +0 -24
  166. /package/build/scripts/{demoMarkerOutlet.d.ts → runLslEventMarkerOutlet.d.ts} +0 -0
  167. /package/build/scripts/{demoStreamOutlet.d.ts → runLslStreamOutlet.d.ts} +0 -0
@@ -1,21 +1,43 @@
1
- "use strict";
2
1
  var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
3
2
  var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
4
3
  if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
5
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;
6
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
7
6
  };
8
- var __importDefault = (this && this.__importDefault) || function (mod) {
9
- return (mod && mod.__esModule) ? mod : { "default": mod };
10
- };
11
- Object.defineProperty(exports, "__esModule", { value: true });
12
- const crypto_1 = require("crypto");
13
- const test_utils_1 = require("@sprucelabs/test-utils");
14
- const ffi_rs_1 = require("ffi-rs");
15
- const LiblslAdapter_1 = __importDefault(require("../../modules/LiblslAdapter"));
16
- const FakeLiblsl_1 = __importDefault(require("../../testDoubles/Liblsl/FakeLiblsl"));
17
- const AbstractLslTest_1 = __importDefault(require("../AbstractLslTest"));
18
- class LiblslAdapterTest extends AbstractLslTest_1.default {
7
+ import { randomInt } from 'crypto';
8
+ import generateId from '@neurodevs/generate-id';
9
+ import { test, assert } from '@neurodevs/node-tdd';
10
+ import { DataType } from 'ffi-rs';
11
+ import LiblslAdapter from '../../impl/LiblslAdapter.js';
12
+ import FakeLiblsl from '../../testDoubles/Liblsl/FakeLiblsl.js';
13
+ import AbstractPackageTest from '../AbstractPackageTest.js';
14
+ export default class LiblslAdapterTest extends AbstractPackageTest {
15
+ static instance;
16
+ static libraryPath;
17
+ static libraryOptions;
18
+ static fakeBindings;
19
+ static fakeStreamInfo;
20
+ static fakeOutlet;
21
+ static fakeInlet = {};
22
+ static fakeDesc;
23
+ static fakeChildNamedChannels;
24
+ static createStreamInfoParams;
25
+ static appendChildParams = [];
26
+ static createOutletParams;
27
+ static destroyOutletParams;
28
+ static createInletParams;
29
+ static flushInletParams;
30
+ static destroyInletParams;
31
+ static localClockParams;
32
+ static pushSampleFloatTimestampParams;
33
+ static pushSampleStringTimestampParams;
34
+ static appendChildValueParams;
35
+ static shouldThrowWhenCreatingBindings;
36
+ static getDescriptionParams;
37
+ static fakeChildNamedChannel;
38
+ static appendChildHitCount;
39
+ static ffiRsOpenOptions;
40
+ static ffiRsDefineOptions;
19
41
  static async beforeEach() {
20
42
  await super.beforeEach();
21
43
  delete this.libraryPath;
@@ -29,7 +51,7 @@ class LiblslAdapterTest extends AbstractLslTest_1.default {
29
51
  delete this.getDescriptionParams;
30
52
  this.appendChildParams = [];
31
53
  this.appendChildValueParams = [];
32
- process.env.LIBLSL_PATH = (0, test_utils_1.generateId)();
54
+ process.env.LIBLSL_PATH = generateId();
33
55
  this.fakeStreamInfo = {};
34
56
  this.fakeDesc = {};
35
57
  this.fakeOutlet = {};
@@ -39,265 +61,277 @@ class LiblslAdapterTest extends AbstractLslTest_1.default {
39
61
  this.shouldThrowWhenCreatingBindings = false;
40
62
  this.appendChildHitCount = 0;
41
63
  delete this.ffiRsOpenOptions;
42
- LiblslAdapter_1.default.ffiRsOpen = (options) => {
64
+ LiblslAdapter.ffiRsOpen = (options) => {
43
65
  this.ffiRsOpenOptions = options;
44
66
  };
45
- LiblslAdapter_1.default.ffiRsDefine = (options) => {
67
+ LiblslAdapter.ffiRsDefine = (options) => {
46
68
  this.ffiRsDefineOptions = options;
47
69
  if (this.shouldThrowWhenCreatingBindings) {
48
70
  throw new Error('Failed to create bindings!');
49
71
  }
50
72
  return this.fakeBindings;
51
73
  };
52
- LiblslAdapter_1.default.resetInstance();
53
- this.lsl = LiblslAdapter_1.default.getInstance();
74
+ LiblslAdapter.resetInstance();
75
+ this.instance = LiblslAdapter.getInstance();
76
+ }
77
+ static async createsInstance() {
78
+ assert.isTruthy(this.instance, 'Failed to create instance!');
54
79
  }
55
80
  static async throwsWhenBindingsFailToLoad() {
56
81
  this.shouldThrowWhenCreatingBindings = true;
57
- LiblslAdapter_1.default.resetInstance();
58
- const err = test_utils_1.assert.doesThrow(() => LiblslAdapter_1.default.getInstance());
59
- debugger;
60
- test_utils_1.assert.isTrue(err.message.includes(this.generateFailedMessage()), 'Did not receive the expected error!');
82
+ LiblslAdapter.resetInstance();
83
+ const err = assert.doesThrow(() => LiblslAdapter.getInstance());
84
+ assert.isTrue(err.message.includes(this.generateFailedMessage()), 'Did not receive the expected error!');
61
85
  }
62
86
  static async callsOpenOnFfiRs() {
63
- test_utils_1.assert.isEqualDeep(this.ffiRsOpenOptions, {
87
+ assert.isEqualDeep(this.ffiRsOpenOptions, {
64
88
  library: 'lsl',
65
89
  path: process.env.LIBLSL_PATH,
66
90
  });
67
91
  }
68
92
  static async worksAsASingleton() {
69
- const liblsl = LiblslAdapter_1.default.getInstance();
93
+ const liblsl = LiblslAdapter.getInstance();
70
94
  //@ts-ignore
71
- test_utils_1.assert.isInstanceOf(liblsl, LiblslAdapter_1.default);
95
+ assert.isInstanceOf(liblsl, LiblslAdapter);
72
96
  }
73
97
  static async singletonIsTheSame() {
74
- test_utils_1.assert.isEqual(LiblslAdapter_1.default.getInstance(), LiblslAdapter_1.default.getInstance());
98
+ assert.isEqual(LiblslAdapter.getInstance(), LiblslAdapter.getInstance());
75
99
  }
76
100
  static canSetInstance() {
77
- const fake = new FakeLiblsl_1.default();
78
- LiblslAdapter_1.default.setInstance(fake);
79
- test_utils_1.assert.isEqual(LiblslAdapter_1.default.getInstance(), fake);
101
+ const fake = new FakeLiblsl();
102
+ LiblslAdapter.setInstance(fake);
103
+ assert.isEqual(LiblslAdapter.getInstance(), fake);
80
104
  }
81
105
  static async createsExpectedBindingsWithFfiRs() {
82
- test_utils_1.assert.isEqualDeep(this.ffiRsDefineOptions, {
106
+ assert.isEqualDeep(this.ffiRsDefineOptions, {
83
107
  lsl_create_streaminfo: {
84
108
  library: 'lsl',
85
- retType: ffi_rs_1.DataType.External,
109
+ retType: DataType.External,
86
110
  paramsType: [
87
- ffi_rs_1.DataType.String,
88
- ffi_rs_1.DataType.String,
89
- ffi_rs_1.DataType.I32,
90
- ffi_rs_1.DataType.Double,
91
- ffi_rs_1.DataType.I32,
92
- ffi_rs_1.DataType.String,
111
+ DataType.String,
112
+ DataType.String,
113
+ DataType.I32,
114
+ DataType.Double,
115
+ DataType.I32,
116
+ DataType.String,
93
117
  ],
94
118
  },
95
119
  lsl_create_outlet: {
96
120
  library: 'lsl',
97
- retType: ffi_rs_1.DataType.External,
98
- paramsType: [ffi_rs_1.DataType.External, ffi_rs_1.DataType.I32, ffi_rs_1.DataType.I32],
121
+ retType: DataType.External,
122
+ paramsType: [DataType.External, DataType.I32, DataType.I32],
99
123
  },
100
- lsl_destroy_outlet: {
124
+ lsl_push_sample_ft: {
101
125
  library: 'lsl',
102
- retType: ffi_rs_1.DataType.Void,
103
- paramsType: [ffi_rs_1.DataType.External],
126
+ retType: DataType.Void,
127
+ paramsType: [
128
+ DataType.External,
129
+ DataType.FloatArray,
130
+ DataType.Double,
131
+ ],
104
132
  },
105
- lsl_create_inlet: {
133
+ lsl_push_sample_strt: {
106
134
  library: 'lsl',
107
- retType: ffi_rs_1.DataType.External,
108
- paramsType: [ffi_rs_1.DataType.External, ffi_rs_1.DataType.I32, ffi_rs_1.DataType.I32],
135
+ retType: DataType.Void,
136
+ paramsType: [
137
+ DataType.External,
138
+ DataType.StringArray,
139
+ DataType.Double,
140
+ ],
109
141
  },
110
- lsl_destroy_inlet: {
142
+ lsl_destroy_outlet: {
111
143
  library: 'lsl',
112
- retType: ffi_rs_1.DataType.Void,
113
- paramsType: [ffi_rs_1.DataType.External],
144
+ retType: DataType.Void,
145
+ paramsType: [DataType.External],
114
146
  },
115
- lsl_local_clock: {
147
+ lsl_create_inlet: {
116
148
  library: 'lsl',
117
- retType: ffi_rs_1.DataType.Double,
118
- paramsType: [],
149
+ retType: DataType.External,
150
+ paramsType: [DataType.External, DataType.I32, DataType.I32],
119
151
  },
120
- lsl_push_sample_ft: {
152
+ lsl_flush_inlet: {
121
153
  library: 'lsl',
122
- retType: ffi_rs_1.DataType.Void,
123
- paramsType: [
124
- ffi_rs_1.DataType.External,
125
- ffi_rs_1.DataType.FloatArray,
126
- ffi_rs_1.DataType.Double,
127
- ],
154
+ retType: DataType.I32,
155
+ paramsType: [DataType.External],
128
156
  },
129
- lsl_push_sample_strt: {
157
+ lsl_destroy_inlet: {
130
158
  library: 'lsl',
131
- retType: ffi_rs_1.DataType.Void,
132
- paramsType: [
133
- ffi_rs_1.DataType.External,
134
- ffi_rs_1.DataType.StringArray,
135
- ffi_rs_1.DataType.Double,
136
- ],
159
+ retType: DataType.Void,
160
+ paramsType: [DataType.External],
137
161
  },
138
162
  lsl_get_desc: {
139
163
  library: 'lsl',
140
- retType: ffi_rs_1.DataType.External,
141
- paramsType: [ffi_rs_1.DataType.External],
164
+ retType: DataType.External,
165
+ paramsType: [DataType.External],
142
166
  },
143
167
  lsl_append_child: {
144
168
  library: 'lsl',
145
- retType: ffi_rs_1.DataType.External,
146
- paramsType: [ffi_rs_1.DataType.External, ffi_rs_1.DataType.String],
169
+ retType: DataType.External,
170
+ paramsType: [DataType.External, DataType.String],
147
171
  },
148
172
  lsl_append_child_value: {
149
173
  library: 'lsl',
150
- retType: ffi_rs_1.DataType.External,
174
+ retType: DataType.External,
151
175
  paramsType: [
152
- ffi_rs_1.DataType.External,
153
- ffi_rs_1.DataType.String,
154
- ffi_rs_1.DataType.String,
176
+ DataType.External,
177
+ DataType.String,
178
+ DataType.String,
155
179
  ],
156
180
  },
181
+ lsl_local_clock: {
182
+ library: 'lsl',
183
+ retType: DataType.Double,
184
+ paramsType: [],
185
+ },
157
186
  });
158
187
  }
159
188
  static async canCreateStreamInfoWithRequiredParams() {
160
189
  const options = this.generateRandomCreateStreamInfoOptions();
161
- const actual = this.lsl.createStreamInfo(options);
162
- test_utils_1.assert.isEqual(actual, this.fakeStreamInfo);
163
- test_utils_1.assert.isEqualDeep(this.createStreamInfoParams, Object.values(options));
190
+ const actual = this.instance.createStreamInfo(options);
191
+ assert.isEqual(actual, this.fakeStreamInfo);
192
+ assert.isEqualDeep(this.createStreamInfoParams, Object.values(options));
164
193
  }
165
194
  static async canCreateOutletWithRequiredParams() {
166
195
  const { options, outlet } = this.createRandomOutlet();
167
- test_utils_1.assert.isEqualDeep(this.createOutletParams, Object.values(options));
168
- test_utils_1.assert.isEqual(outlet, this.fakeOutlet);
196
+ assert.isEqualDeep(this.createOutletParams, Object.values(options));
197
+ assert.isEqual(outlet, this.fakeOutlet);
169
198
  }
170
199
  static async canPushFloatSample() {
171
200
  const expected = [1.0, 2.0, 3.0];
172
- const timestamp = (0, crypto_1.randomInt)(100);
201
+ const timestamp = randomInt(100);
173
202
  const options = {
174
203
  outlet: this.fakeOutlet,
175
204
  sample: expected,
176
205
  timestamp,
177
206
  };
178
- this.lsl.pushSampleFloatTimestamp(options);
179
- test_utils_1.assert.isEqualDeep(this.pushSampleFloatTimestampParams, [
207
+ this.instance.pushSampleFloatTimestamp(options);
208
+ assert.isEqualDeep(this.pushSampleFloatTimestampParams, [
180
209
  this.fakeOutlet,
181
210
  expected,
182
211
  timestamp,
183
212
  ]);
184
213
  }
185
214
  static async canPushStringSample() {
186
- const expected = [(0, test_utils_1.generateId)()];
187
- const timestamp = (0, crypto_1.randomInt)(100);
215
+ const expected = [generateId()];
216
+ const timestamp = randomInt(100);
188
217
  const options = {
189
218
  outlet: this.fakeOutlet,
190
219
  sample: expected,
191
220
  timestamp,
192
221
  };
193
- this.lsl.pushSampleStringTimestamp(options);
194
- test_utils_1.assert.isEqual(this.pushSampleStringTimestampParams?.[0], this.fakeOutlet);
195
- test_utils_1.assert.isEqualDeep(this.pushSampleStringTimestampParams?.[1], expected);
196
- test_utils_1.assert.isEqual(this.pushSampleStringTimestampParams?.[2], timestamp);
222
+ this.instance.pushSampleStringTimestamp(options);
223
+ assert.isEqual(this.pushSampleStringTimestampParams?.[0], this.fakeOutlet);
224
+ assert.isEqualDeep(this.pushSampleStringTimestampParams?.[1], expected);
225
+ assert.isEqual(this.pushSampleStringTimestampParams?.[2], timestamp);
197
226
  }
198
227
  static async addingSingleChannelGetsDescription() {
199
228
  const info = this.createRandomStreamInfo();
200
229
  const channel = this.generateRandomChannelValues();
201
- this.lsl.appendChannelsToStreamInfo({
230
+ this.instance.appendChannelsToStreamInfo({
202
231
  info,
203
232
  channels: [channel],
204
233
  });
205
- test_utils_1.assert.isEqualDeep(this.getDescriptionParams?.[0], [info]);
206
- test_utils_1.assert.isEqual(this.appendChildParams?.[0][0], this.fakeDesc);
207
- test_utils_1.assert.isEqual(this.appendChildParams?.[0][1], 'channels');
208
- test_utils_1.assert.isEqual(this.appendChildParams?.[1][0], this.fakeChildNamedChannels);
209
- test_utils_1.assert.isEqual(this.appendChildParams?.[1][1], 'channel');
210
- test_utils_1.assert.isLength(this.appendChildValueParams, 3);
234
+ assert.isEqualDeep(this.getDescriptionParams?.[0], [info]);
235
+ assert.isEqual(this.appendChildParams?.[0][0], this.fakeDesc);
236
+ assert.isEqual(this.appendChildParams?.[0][1], 'channels');
237
+ assert.isEqual(this.appendChildParams?.[1][0], this.fakeChildNamedChannels);
238
+ assert.isEqual(this.appendChildParams?.[1][1], 'channel');
239
+ assert.isLength(this.appendChildValueParams, 3);
211
240
  for (let i = 0; i < 3; i++) {
212
241
  const param = this.appendChildValueParams[i];
213
- test_utils_1.assert.isEqual(param[0], this.fakeChildNamedChannel);
242
+ assert.isEqual(param[0], this.fakeChildNamedChannel);
214
243
  }
215
- test_utils_1.assert.isEqual(this.appendChildValueParams[0][1], 'label');
216
- test_utils_1.assert.isEqual(this.appendChildValueParams[1][1], 'unit');
217
- test_utils_1.assert.isEqual(this.appendChildValueParams[2][1], 'type');
218
- test_utils_1.assert.isEqual(this.appendChildValueParams[0][2], channel.label);
219
- test_utils_1.assert.isEqual(this.appendChildValueParams[1][2], channel.unit);
220
- test_utils_1.assert.isEqual(this.appendChildValueParams[2][2], channel.type);
244
+ assert.isEqual(this.appendChildValueParams[0][1], 'label');
245
+ assert.isEqual(this.appendChildValueParams[1][1], 'unit');
246
+ assert.isEqual(this.appendChildValueParams[2][1], 'type');
247
+ assert.isEqual(this.appendChildValueParams[0][2], channel.label);
248
+ assert.isEqual(this.appendChildValueParams[1][2], channel.unit);
249
+ assert.isEqual(this.appendChildValueParams[2][2], channel.type);
221
250
  }
222
251
  static async addingMultpleChannelsAddsChildrenToChannelsChild() {
223
252
  const info = this.createRandomStreamInfo();
224
253
  const channel1 = this.generateRandomChannelValues();
225
254
  const channel2 = this.generateRandomChannelValues();
226
- this.lsl.appendChannelsToStreamInfo({
255
+ this.instance.appendChannelsToStreamInfo({
227
256
  info,
228
257
  channels: [channel1, channel2],
229
258
  });
230
- test_utils_1.assert.isEqual(this.appendChildParams?.[2][0], this.fakeChildNamedChannels);
231
- test_utils_1.assert.isEqual(this.appendChildParams?.[2][1], 'channel');
232
- test_utils_1.assert.isEqual(this.appendChildValueParams[3][2], channel2.label);
233
- test_utils_1.assert.isEqual(this.appendChildValueParams[4][2], channel2.unit);
234
- test_utils_1.assert.isEqual(this.appendChildValueParams[5][2], channel2.type);
259
+ assert.isEqual(this.appendChildParams?.[2][0], this.fakeChildNamedChannels);
260
+ assert.isEqual(this.appendChildParams?.[2][1], 'channel');
261
+ assert.isEqual(this.appendChildValueParams[3][2], channel2.label);
262
+ assert.isEqual(this.appendChildValueParams[4][2], channel2.unit);
263
+ assert.isEqual(this.appendChildValueParams[5][2], channel2.type);
235
264
  }
236
265
  static async canDestroyOutlet() {
237
266
  const outlet = this.createRandomOutlet();
238
267
  const options = { outlet };
239
- this.lsl.destroyOutlet(options);
240
- test_utils_1.assert.isEqualDeep(this.destroyOutletParams, Object.values(options));
268
+ this.instance.destroyOutlet(options);
269
+ assert.isEqualDeep(this.destroyOutletParams, Object.values(options));
241
270
  }
242
271
  static async callingLocalClockTwiceReturnsDifferentTimestamps() {
243
- const t1 = this.lsl.localClock();
272
+ const t1 = this.instance.localClock();
244
273
  await this.wait(10);
245
- const t2 = this.lsl.localClock();
246
- test_utils_1.assert.isNotEqual(t1, t2);
274
+ const t2 = this.instance.localClock();
275
+ assert.isNotEqual(t1, t2);
247
276
  }
248
277
  static async localClockBindingReceivesEmptyArray() {
249
278
  delete this.localClockParams;
250
- this.lsl.localClock();
251
- test_utils_1.assert.isEqualDeep(this.localClockParams, []);
279
+ this.instance.localClock();
280
+ assert.isEqualDeep(this.localClockParams, []);
252
281
  }
253
282
  static async defaultsToMacOsPath() {
254
283
  delete process.env.LIBLSL_PATH;
255
- LiblslAdapter_1.default.resetInstance();
256
- this.lsl = LiblslAdapter_1.default.getInstance();
257
- test_utils_1.assert.isEqual(this.ffiRsOpenOptions?.path, '/opt/homebrew/Cellar/lsl/1.16.2/lib/liblsl.1.16.2.dylib');
284
+ LiblslAdapter.resetInstance();
285
+ this.instance = LiblslAdapter.getInstance();
286
+ assert.isEqual(this.ffiRsOpenOptions?.path, '/opt/homebrew/Cellar/lsl/1.16.2/lib/liblsl.1.16.2.dylib');
258
287
  }
259
288
  static async canCreateInletWithRequiredParams() {
260
289
  const { options, inlet } = this.createRandomInlet();
261
- test_utils_1.assert.isEqualDeep(this.createInletParams, Object.values(options));
262
- test_utils_1.assert.isEqual(inlet, this.fakeInlet);
290
+ assert.isEqualDeep(this.createInletParams, Object.values(options));
291
+ assert.isEqual(inlet, this.fakeInlet);
292
+ }
293
+ static async flushInletCallsBinding() {
294
+ const { inlet } = this.createRandomInlet();
295
+ this.instance.flushInlet({ inlet });
296
+ assert.isEqualDeep(this.flushInletParams, [inlet], 'Should have called flushInlet with expected params!');
263
297
  }
264
298
  static createRandomStreamInfo() {
265
- return this.lsl.createStreamInfo(this.generateRandomCreateStreamInfoOptions());
299
+ return this.instance.createStreamInfo(this.generateRandomCreateStreamInfoOptions());
266
300
  }
267
301
  static createRandomOutlet() {
268
302
  const options = this.createRandomOptions();
269
- const outlet = this.lsl.createOutlet(options);
303
+ const outlet = this.instance.createOutlet(options);
270
304
  return { options, outlet };
271
305
  }
272
306
  static createRandomInlet() {
273
307
  const options = this.createRandomOptions();
274
- const inlet = this.lsl.createInlet(options);
308
+ const inlet = this.instance.createInlet(options);
275
309
  return { options, inlet };
276
310
  }
277
311
  static createRandomOptions() {
278
312
  const info = this.createRandomStreamInfo();
279
313
  const options = {
280
314
  info,
281
- chunkSize: (0, crypto_1.randomInt)(10),
282
- maxBuffered: (0, crypto_1.randomInt)(10),
315
+ chunkSize: randomInt(10),
316
+ maxBuffered: randomInt(10),
283
317
  };
284
318
  return options;
285
319
  }
286
320
  static generateRandomChannelValues() {
287
321
  return {
288
- label: (0, test_utils_1.generateId)(),
289
- type: (0, test_utils_1.generateId)(),
290
- unit: (0, test_utils_1.generateId)(),
322
+ label: generateId(),
323
+ type: generateId(),
324
+ unit: generateId(),
291
325
  };
292
326
  }
293
327
  static generateRandomCreateStreamInfoOptions() {
294
328
  return {
295
- name: (0, test_utils_1.generateId)(),
296
- type: (0, test_utils_1.generateId)(),
297
- channelCount: (0, crypto_1.randomInt)(1, 10),
298
- sampleRate: (0, crypto_1.randomInt)(100),
299
- channelFormat: (0, crypto_1.randomInt)(7),
300
- sourceId: (0, test_utils_1.generateId)(),
329
+ name: generateId(),
330
+ type: generateId(),
331
+ channelCount: randomInt(1, 10),
332
+ sampleRate: randomInt(100),
333
+ channelFormat: randomInt(7),
334
+ sourceId: generateId(),
301
335
  };
302
336
  }
303
337
  static generateFailedMessage() {
@@ -326,6 +360,10 @@ class LiblslAdapterTest extends AbstractLslTest_1.default {
326
360
  this.createInletParams = params;
327
361
  return this.fakeInlet;
328
362
  },
363
+ lsl_flush_inlet: (params) => {
364
+ this.flushInletParams = params;
365
+ return 0;
366
+ },
329
367
  lsl_destroy_inlet: (params) => {
330
368
  this.destroyInletParams = params;
331
369
  },
@@ -351,57 +389,61 @@ class LiblslAdapterTest extends AbstractLslTest_1.default {
351
389
  };
352
390
  }
353
391
  }
354
- LiblslAdapterTest.appendChildParams = [];
355
- exports.default = LiblslAdapterTest;
356
392
  __decorate([
357
- (0, test_utils_1.test)()
393
+ test()
394
+ ], LiblslAdapterTest, "createsInstance", null);
395
+ __decorate([
396
+ test()
358
397
  ], LiblslAdapterTest, "throwsWhenBindingsFailToLoad", null);
359
398
  __decorate([
360
- (0, test_utils_1.test)()
399
+ test()
361
400
  ], LiblslAdapterTest, "callsOpenOnFfiRs", null);
362
401
  __decorate([
363
- (0, test_utils_1.test)()
402
+ test()
364
403
  ], LiblslAdapterTest, "worksAsASingleton", null);
365
404
  __decorate([
366
- (0, test_utils_1.test)()
405
+ test()
367
406
  ], LiblslAdapterTest, "singletonIsTheSame", null);
368
407
  __decorate([
369
- (0, test_utils_1.test)()
408
+ test()
370
409
  ], LiblslAdapterTest, "canSetInstance", null);
371
410
  __decorate([
372
- (0, test_utils_1.test)()
411
+ test()
373
412
  ], LiblslAdapterTest, "createsExpectedBindingsWithFfiRs", null);
374
413
  __decorate([
375
- (0, test_utils_1.test)()
414
+ test()
376
415
  ], LiblslAdapterTest, "canCreateStreamInfoWithRequiredParams", null);
377
416
  __decorate([
378
- (0, test_utils_1.test)()
417
+ test()
379
418
  ], LiblslAdapterTest, "canCreateOutletWithRequiredParams", null);
380
419
  __decorate([
381
- (0, test_utils_1.test)()
420
+ test()
382
421
  ], LiblslAdapterTest, "canPushFloatSample", null);
383
422
  __decorate([
384
- (0, test_utils_1.test)()
423
+ test()
385
424
  ], LiblslAdapterTest, "canPushStringSample", null);
386
425
  __decorate([
387
- (0, test_utils_1.test)()
426
+ test()
388
427
  ], LiblslAdapterTest, "addingSingleChannelGetsDescription", null);
389
428
  __decorate([
390
- (0, test_utils_1.test)()
429
+ test()
391
430
  ], LiblslAdapterTest, "addingMultpleChannelsAddsChildrenToChannelsChild", null);
392
431
  __decorate([
393
- (0, test_utils_1.test)()
432
+ test()
394
433
  ], LiblslAdapterTest, "canDestroyOutlet", null);
395
434
  __decorate([
396
- (0, test_utils_1.test)()
435
+ test()
397
436
  ], LiblslAdapterTest, "callingLocalClockTwiceReturnsDifferentTimestamps", null);
398
437
  __decorate([
399
- (0, test_utils_1.test)()
438
+ test()
400
439
  ], LiblslAdapterTest, "localClockBindingReceivesEmptyArray", null);
401
440
  __decorate([
402
- (0, test_utils_1.test)()
441
+ test()
403
442
  ], LiblslAdapterTest, "defaultsToMacOsPath", null);
404
443
  __decorate([
405
- (0, test_utils_1.test)()
444
+ test()
406
445
  ], LiblslAdapterTest, "canCreateInletWithRequiredParams", null);
446
+ __decorate([
447
+ test()
448
+ ], LiblslAdapterTest, "flushInletCallsBinding", null);
407
449
  //# sourceMappingURL=LiblslAdapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LiblslAdapter.test.js","sourceRoot":"","sources":["../../../src/__tests__/impl/LiblslAdapter.test.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,8 @@
1
- import AbstractLslTest from '../AbstractLslTest';
2
- export default class EventMarkerOutletTest extends AbstractLslTest {
1
+ import AbstractPackageTest from '../AbstractPackageTest.js';
2
+ export default class EventMarkerOutletTest extends AbstractPackageTest {
3
3
  private static instance;
4
4
  protected static beforeEach(): Promise<void>;
5
+ protected static createsInstance(): Promise<void>;
5
6
  protected static loadsWithEventMarkerSpecificOptions(): Promise<void>;
6
7
  protected static canOverrideDefaultOptions(): Promise<void>;
7
8
  protected static pushingSingleMarkerIncrementsHitCountAndWaitTime(): Promise<void>;
@@ -11,9 +12,9 @@ export default class EventMarkerOutletTest extends AbstractLslTest {
11
12
  protected static doesNotWaitIfStopped(): Promise<void>;
12
13
  protected static clearsTheTimeoutOnStop(): Promise<void>;
13
14
  protected static pushMarkerCallsPushSampleOnMarkerOutlet(): Promise<void>;
14
- private static get lslOutlet();
15
+ private static get streamOutlet();
15
16
  private static setupOutlet;
16
17
  private static pushTotalMarkers;
17
18
  private static generateDurationMarker;
18
- private static EventMarkerOutlet;
19
+ private static LslEventMarkerOutlet;
19
20
  }