@neurodevs/node-lsl 12.0.0 → 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 (123) hide show
  1. package/build/__tests__/AbstractPackageTest.d.ts +3 -3
  2. package/build/__tests__/AbstractPackageTest.js +34 -39
  3. package/build/__tests__/AbstractPackageTest.js.map +1 -1
  4. package/build/__tests__/impl/LiblslAdapter.test.d.ts +3 -1
  5. package/build/__tests__/impl/LiblslAdapter.test.js +177 -142
  6. package/build/__tests__/impl/LiblslAdapter.test.js.map +1 -1
  7. package/build/__tests__/impl/LslEventMarkerOutlet.test.d.ts +1 -1
  8. package/build/__tests__/impl/LslEventMarkerOutlet.test.js +39 -44
  9. package/build/__tests__/impl/LslEventMarkerOutlet.test.js.map +1 -1
  10. package/build/__tests__/impl/LslStreamInfo.test.d.ts +1 -1
  11. package/build/__tests__/impl/LslStreamInfo.test.js +51 -58
  12. package/build/__tests__/impl/LslStreamInfo.test.js.map +1 -1
  13. package/build/__tests__/impl/LslStreamInlet.test.d.ts +2 -1
  14. package/build/__tests__/impl/LslStreamInlet.test.js +23 -21
  15. package/build/__tests__/impl/LslStreamInlet.test.js.map +1 -1
  16. package/build/__tests__/impl/LslStreamOutlet.test.d.ts +2 -2
  17. package/build/__tests__/impl/LslStreamOutlet.test.js +56 -61
  18. package/build/__tests__/impl/LslStreamOutlet.test.js.map +1 -1
  19. package/build/__tests__/impl/LslWebSocketBridge.test.d.ts +2 -2
  20. package/build/__tests__/impl/LslWebSocketBridge.test.js +8 -45
  21. package/build/__tests__/impl/LslWebSocketBridge.test.js.map +1 -1
  22. package/build/assertions.d.ts +1 -1
  23. package/build/assertions.js +13 -20
  24. package/build/assertions.js.map +1 -1
  25. package/build/consts.js +2 -5
  26. package/build/consts.js.map +1 -1
  27. package/build/impl/LiblslAdapter.d.ts +5 -4
  28. package/build/impl/LiblslAdapter.js +60 -51
  29. package/build/impl/LiblslAdapter.js.map +1 -1
  30. package/build/impl/LslEventMarkerOutlet.d.ts +3 -3
  31. package/build/impl/LslEventMarkerOutlet.js +10 -12
  32. package/build/impl/LslEventMarkerOutlet.js.map +1 -1
  33. package/build/impl/LslStreamInfo.d.ts +1 -1
  34. package/build/impl/LslStreamInfo.js +19 -16
  35. package/build/impl/LslStreamInfo.js.map +1 -1
  36. package/build/impl/LslStreamInlet.d.ts +5 -2
  37. package/build/impl/LslStreamInlet.js +17 -14
  38. package/build/impl/LslStreamInlet.js.map +1 -1
  39. package/build/impl/LslStreamOutlet.d.ts +2 -2
  40. package/build/impl/LslStreamOutlet.js +20 -21
  41. package/build/impl/LslStreamOutlet.js.map +1 -1
  42. package/build/impl/LslWebSocketBridge.js +2 -4
  43. package/build/impl/LslWebSocketBridge.js.map +1 -1
  44. package/build/index.d.ts +34 -34
  45. package/build/index.js +34 -71
  46. package/build/index.js.map +1 -1
  47. package/build/scripts/runLslEventMarkerOutlet.js +2 -7
  48. package/build/scripts/runLslEventMarkerOutlet.js.map +1 -1
  49. package/build/scripts/runLslStreamOutlet.js +2 -7
  50. package/build/scripts/runLslStreamOutlet.js.map +1 -1
  51. package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.d.ts +2 -2
  52. package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js +5 -8
  53. package/build/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.js.map +1 -1
  54. package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.d.ts +2 -2
  55. package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js +12 -15
  56. package/build/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.js.map +1 -1
  57. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.d.ts +2 -2
  58. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js +4 -9
  59. package/build/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js.map +1 -1
  60. package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.d.ts +2 -2
  61. package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js +2 -5
  62. package/build/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.js.map +1 -1
  63. package/build/testDoubles/Liblsl/FakeLiblsl.d.ts +4 -1
  64. package/build/testDoubles/Liblsl/FakeLiblsl.js +23 -15
  65. package/build/testDoubles/Liblsl/FakeLiblsl.js.map +1 -1
  66. package/build/testDoubles/StreamInfo/FakeStreamInfo.d.ts +2 -2
  67. package/build/testDoubles/StreamInfo/FakeStreamInfo.js +3 -6
  68. package/build/testDoubles/StreamInfo/FakeStreamInfo.js.map +1 -1
  69. package/build/testDoubles/StreamInfo/SpyStreamInfo.d.ts +2 -2
  70. package/build/testDoubles/StreamInfo/SpyStreamInfo.js +2 -8
  71. package/build/testDoubles/StreamInfo/SpyStreamInfo.js.map +1 -1
  72. package/build/testDoubles/StreamInlet/FakeStreamInlet.d.ts +4 -2
  73. package/build/testDoubles/StreamInlet/FakeStreamInlet.js +7 -5
  74. package/build/testDoubles/StreamInlet/FakeStreamInlet.js.map +1 -1
  75. package/build/testDoubles/StreamInlet/SpyStreamInlet.d.ts +3 -2
  76. package/build/testDoubles/StreamInlet/SpyStreamInlet.js +5 -9
  77. package/build/testDoubles/StreamInlet/SpyStreamInlet.js.map +1 -1
  78. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.d.ts +3 -3
  79. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js +16 -21
  80. package/build/testDoubles/StreamOutlet/FakeStreamOutlet.js.map +1 -1
  81. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.d.ts +1 -1
  82. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js +2 -5
  83. package/build/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.js.map +1 -1
  84. package/build/testDoubles/consts.js +4 -7
  85. package/build/testDoubles/consts.js.map +1 -1
  86. package/build/testDoubles/generateRandomOutletOptions.d.ts +1 -1
  87. package/build/testDoubles/generateRandomOutletOptions.js +14 -20
  88. package/build/testDoubles/generateRandomOutletOptions.js.map +1 -1
  89. package/build/types.d.ts +8 -3
  90. package/build/types.js +1 -2
  91. package/build/validations.js +4 -10
  92. package/build/validations.js.map +1 -1
  93. package/package.json +4 -6
  94. package/src/__tests__/AbstractPackageTest.ts +14 -13
  95. package/src/__tests__/impl/LiblslAdapter.test.ts +49 -28
  96. package/src/__tests__/impl/LslEventMarkerOutlet.test.ts +8 -7
  97. package/src/__tests__/impl/LslStreamInfo.test.ts +6 -5
  98. package/src/__tests__/impl/LslStreamInlet.test.ts +18 -5
  99. package/src/__tests__/impl/LslStreamOutlet.test.ts +10 -10
  100. package/src/__tests__/impl/LslWebSocketBridge.test.ts +5 -3
  101. package/src/assertions.ts +3 -3
  102. package/src/impl/LiblslAdapter.ts +33 -21
  103. package/src/impl/LslEventMarkerOutlet.ts +5 -5
  104. package/src/impl/LslStreamInfo.ts +4 -3
  105. package/src/impl/LslStreamInlet.ts +16 -5
  106. package/src/impl/LslStreamOutlet.ts +7 -4
  107. package/src/index.ts +34 -34
  108. package/src/scripts/runLslEventMarkerOutlet.ts +1 -1
  109. package/src/scripts/runLslStreamOutlet.ts +1 -1
  110. package/src/testDoubles/EventMarkerOutlet/FakeEventMarkerOutlet.ts +2 -2
  111. package/src/testDoubles/EventMarkerOutlet/MockEventMarkerOutlet.ts +4 -3
  112. package/src/testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.ts +3 -3
  113. package/src/testDoubles/EventMarkerOutlet/ThrowingEventMarkerOutlet.ts +2 -2
  114. package/src/testDoubles/Liblsl/FakeLiblsl.ts +9 -1
  115. package/src/testDoubles/StreamInfo/FakeStreamInfo.ts +2 -2
  116. package/src/testDoubles/StreamInfo/SpyStreamInfo.ts +1 -1
  117. package/src/testDoubles/StreamInlet/FakeStreamInlet.ts +9 -2
  118. package/src/testDoubles/StreamInlet/SpyStreamInlet.ts +8 -2
  119. package/src/testDoubles/StreamOutlet/FakeStreamOutlet.ts +7 -3
  120. package/src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts +1 -1
  121. package/src/testDoubles/generateRandomOutletOptions.ts +3 -2
  122. package/src/types.ts +10 -3
  123. package/tsconfig.json +17 -28
@@ -1,11 +1,5 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.SpyStreamInlet = void 0;
7
- const LslStreamInlet_1 = __importDefault(require("../../impl/LslStreamInlet"));
8
- class SpyStreamInlet extends LslStreamInlet_1.default {
1
+ import LslStreamInlet from '../../impl/LslStreamInlet.js';
2
+ export class SpyStreamInlet extends LslStreamInlet {
9
3
  constructor(info, options) {
10
4
  super(info, options);
11
5
  }
@@ -15,6 +9,8 @@ class SpyStreamInlet extends LslStreamInlet_1.default {
15
9
  getStreamInfo() {
16
10
  return this.info;
17
11
  }
12
+ getBoundInlet() {
13
+ return this.inlet;
14
+ }
18
15
  }
19
- exports.SpyStreamInlet = SpyStreamInlet;
20
16
  //# sourceMappingURL=SpyStreamInlet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"SpyStreamInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInlet/SpyStreamInlet.ts"],"names":[],"mappings":";;;;;;AACA,+EAA8E;AAE9E,MAAa,cAAe,SAAQ,wBAAc;IAC9C,YAAmB,IAAgB,EAAE,OAA2B;QAC5D,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACxB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;CACJ;AAZD,wCAYC"}
1
+ {"version":3,"file":"SpyStreamInlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamInlet/SpyStreamInlet.ts"],"names":[],"mappings":"AACA,OAAO,cAEN,MAAM,8BAA8B,CAAA;AAErC,MAAM,OAAO,cAAe,SAAQ,cAAc;IAC9C,YAAmB,IAAgB,EAAE,OAA2B;QAC5D,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;IACxB,CAAC;IAEM,OAAO;QACV,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,IAAI,CAAA;IACpB,CAAC;IAEM,aAAa;QAChB,OAAO,IAAI,CAAC,KAAK,CAAA;IACrB,CAAC;CACJ"}
@@ -1,6 +1,6 @@
1
- import { StreamInfo } from '../../impl/LslStreamInfo';
2
- import { StreamOutlet, StreamOutletOptions } from '../../impl/LslStreamOutlet';
3
- import { LslSample } from '../../types';
1
+ import { StreamInfo } from '../../impl/LslStreamInfo.js';
2
+ import { StreamOutlet, StreamOutletOptions } from '../../impl/LslStreamOutlet.js';
3
+ import { LslSample } from '../../types.js';
4
4
  export default class FakeStreamOutlet implements StreamOutlet {
5
5
  static callsToConstructor: {
6
6
  info?: StreamInfo;
@@ -1,11 +1,10 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const crypto_1 = require("crypto");
7
- const generate_id_1 = __importDefault(require("@neurodevs/generate-id"));
8
- class FakeStreamOutlet {
1
+ import { randomInt } from 'crypto';
2
+ import generateId from '@neurodevs/generate-id';
3
+ export default class FakeStreamOutlet {
4
+ static callsToConstructor = [];
5
+ static callsToPushSample = [];
6
+ static numCallsToDestroy = 0;
7
+ options;
9
8
  constructor(info, options) {
10
9
  FakeStreamOutlet.callsToConstructor.push({ info, options });
11
10
  this.options = options;
@@ -17,16 +16,16 @@ class FakeStreamOutlet {
17
16
  FakeStreamOutlet.callsToPushSample.push(sample);
18
17
  }
19
18
  get name() {
20
- return this.options?.name ?? (0, generate_id_1.default)();
19
+ return this.options?.name ?? generateId();
21
20
  }
22
21
  get type() {
23
- return this.options?.type ?? (0, generate_id_1.default)();
22
+ return this.options?.type ?? generateId();
24
23
  }
25
24
  get sourceId() {
26
- return this.options?.sourceId ?? (0, generate_id_1.default)();
25
+ return this.options?.sourceId ?? generateId();
27
26
  }
28
27
  get channelNames() {
29
- return this.options?.channelNames ?? [(0, generate_id_1.default)()];
28
+ return this.options?.channelNames ?? [generateId()];
30
29
  }
31
30
  get channelCount() {
32
31
  return this.channelNames.length;
@@ -35,19 +34,19 @@ class FakeStreamOutlet {
35
34
  return this.options?.channelFormat ?? 'float32';
36
35
  }
37
36
  get sampleRate() {
38
- return this.options?.sampleRate ?? (0, crypto_1.randomInt)(1, 1000);
37
+ return this.options?.sampleRate ?? randomInt(1, 1000);
39
38
  }
40
39
  get chunkSize() {
41
- return this.options?.chunkSize ?? (0, crypto_1.randomInt)(1, 1000);
40
+ return this.options?.chunkSize ?? randomInt(1, 1000);
42
41
  }
43
42
  get maxBuffered() {
44
- return this.options?.maxBuffered ?? (0, crypto_1.randomInt)(1, 1000);
43
+ return this.options?.maxBuffered ?? randomInt(1, 1000);
45
44
  }
46
45
  get manufacturer() {
47
- return this.options?.manufacturer ?? (0, generate_id_1.default)();
46
+ return this.options?.manufacturer ?? generateId();
48
47
  }
49
48
  get unit() {
50
- return this.options?.unit ?? (0, generate_id_1.default)();
49
+ return this.options?.unit ?? generateId();
51
50
  }
52
51
  static resetTestDouble() {
53
52
  FakeStreamOutlet.callsToConstructor = [];
@@ -55,8 +54,4 @@ class FakeStreamOutlet {
55
54
  FakeStreamOutlet.numCallsToDestroy = 0;
56
55
  }
57
56
  }
58
- FakeStreamOutlet.callsToConstructor = [];
59
- FakeStreamOutlet.callsToPushSample = [];
60
- FakeStreamOutlet.numCallsToDestroy = 0;
61
- exports.default = FakeStreamOutlet;
62
57
  //# sourceMappingURL=FakeStreamOutlet.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FakeStreamOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamOutlet/FakeStreamOutlet.ts"],"names":[],"mappings":";;;;;AAAA,mCAAkC;AAClC,yEAA+C;AAK/C,MAAqB,gBAAgB;IAWjC,YAAmB,IAAiB,EAAE,OAA6B;QAC/D,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAC3D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAEM,OAAO;QACV,gBAAgB,CAAC,iBAAiB,EAAE,CAAA;IACxC,CAAC;IAEM,UAAU,CAAC,MAAiB;QAC/B,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,IAAA,qBAAU,GAAE,CAAA;IAC7C,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,IAAA,qBAAU,GAAE,CAAA;IAC7C,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,IAAA,qBAAU,GAAE,CAAA;IACjD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,IAAA,qBAAU,GAAE,CAAC,CAAA;IACvD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACnC,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,IAAI,SAAS,CAAA;IACnD,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,OAAO,EAAE,UAAU,IAAI,IAAA,kBAAS,EAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACzD,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,IAAA,kBAAS,EAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACxD,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,IAAA,kBAAS,EAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC1D,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,IAAA,qBAAU,GAAE,CAAA;IACrD,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,IAAA,qBAAU,GAAE,CAAA;IAC7C,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,gBAAgB,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACxC,gBAAgB,CAAC,iBAAiB,GAAG,EAAE,CAAA;QACvC,gBAAgB,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC1C,CAAC;;AAvEa,mCAAkB,GAG1B,EAAE,CAAA;AAEM,kCAAiB,GAAgB,EAAE,CAAA;AACnC,kCAAiB,GAAG,CAAC,CAAA;kBAPlB,gBAAgB"}
1
+ {"version":3,"file":"FakeStreamOutlet.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamOutlet/FakeStreamOutlet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAS/C,MAAM,CAAC,OAAO,OAAO,gBAAgB;IAC1B,MAAM,CAAC,kBAAkB,GAG1B,EAAE,CAAA;IAED,MAAM,CAAC,iBAAiB,GAAgB,EAAE,CAAA;IAC1C,MAAM,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAE5B,OAAO,CAAsB;IAEpC,YAAmB,IAAiB,EAAE,OAA6B;QAC/D,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;QAC3D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IAC1B,CAAC;IAEM,OAAO;QACV,gBAAgB,CAAC,iBAAiB,EAAE,CAAA;IACxC,CAAC;IAEM,UAAU,CAAC,MAAiB;QAC/B,gBAAgB,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACnD,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAAA;IAC7C,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAAA;IAC7C,CAAC;IAED,IAAW,QAAQ;QACf,OAAO,IAAI,CAAC,OAAO,EAAE,QAAQ,IAAI,UAAU,EAAE,CAAA;IACjD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,CAAC,UAAU,EAAE,CAAC,CAAA;IACvD,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAA;IACnC,CAAC;IAED,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,IAAI,SAAS,CAAA;IACnD,CAAC;IAED,IAAW,UAAU;QACjB,OAAO,IAAI,CAAC,OAAO,EAAE,UAAU,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACzD,CAAC;IAED,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,OAAO,EAAE,SAAS,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IACxD,CAAC;IAED,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,OAAO,EAAE,WAAW,IAAI,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAA;IAC1D,CAAC;IAED,IAAW,YAAY;QACnB,OAAO,IAAI,CAAC,OAAO,EAAE,YAAY,IAAI,UAAU,EAAE,CAAA;IACrD,CAAC;IAED,IAAW,IAAI;QACX,OAAO,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,UAAU,EAAE,CAAA;IAC7C,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,gBAAgB,CAAC,kBAAkB,GAAG,EAAE,CAAA;QACxC,gBAAgB,CAAC,iBAAiB,GAAG,EAAE,CAAA;QACvC,gBAAgB,CAAC,iBAAiB,GAAG,CAAC,CAAA;IAC1C,CAAC"}
@@ -1,4 +1,4 @@
1
- import { StreamTransportBridge } from '../../impl/LslWebSocketBridge';
1
+ import { StreamTransportBridge } from '../../impl/LslWebSocketBridge.js';
2
2
  export default class FakeStreamTransportBridge implements StreamTransportBridge {
3
3
  static numCallsToConstructor: number;
4
4
  constructor();
@@ -1,6 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- class FakeStreamTransportBridge {
1
+ export default class FakeStreamTransportBridge {
2
+ static numCallsToConstructor = 0;
4
3
  constructor() {
5
4
  FakeStreamTransportBridge.numCallsToConstructor++;
6
5
  }
@@ -8,6 +7,4 @@ class FakeStreamTransportBridge {
8
7
  FakeStreamTransportBridge.numCallsToConstructor = 0;
9
8
  }
10
9
  }
11
- FakeStreamTransportBridge.numCallsToConstructor = 0;
12
- exports.default = FakeStreamTransportBridge;
13
10
  //# sourceMappingURL=FakeStreamTransportBridge.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FakeStreamTransportBridge.js","sourceRoot":"","sources":["../../../src/testDoubles/StreamTransportBridge/FakeStreamTransportBridge.ts"],"names":[],"mappings":";;AAEA,MAAqB,yBAAyB;IAK1C;QACI,yBAAyB,CAAC,qBAAqB,EAAE,CAAA;IACrD,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,yBAAyB,CAAC,qBAAqB,GAAG,CAAC,CAAA;IACvD,CAAC;;AARa,+CAAqB,GAAG,CAAC,CAAA;kBAHtB,yBAAyB"}
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;IAEvC;QACI,yBAAyB,CAAC,qBAAqB,EAAE,CAAA;IACrD,CAAC;IAEM,MAAM,CAAC,eAAe;QACzB,yBAAyB,CAAC,qBAAqB,GAAG,CAAC,CAAA;IACvD,CAAC"}
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TEST_CHANNEL_FORMATS_MAP = exports.TEST_CHANNEL_FORMATS = exports.TEST_UNSUPPORTED_CHANNEL_FORMATS = exports.TEST_SUPPORTED_CHANNEL_FORMATS = void 0;
4
- exports.TEST_SUPPORTED_CHANNEL_FORMATS = ['float32', 'string'];
5
- exports.TEST_UNSUPPORTED_CHANNEL_FORMATS = [
1
+ export const TEST_SUPPORTED_CHANNEL_FORMATS = ['float32', 'string'];
2
+ export const TEST_UNSUPPORTED_CHANNEL_FORMATS = [
6
3
  'undefined',
7
4
  'double64',
8
5
  'int32',
@@ -10,7 +7,7 @@ exports.TEST_UNSUPPORTED_CHANNEL_FORMATS = [
10
7
  'int8',
11
8
  'int64',
12
9
  ];
13
- exports.TEST_CHANNEL_FORMATS = [
10
+ export const TEST_CHANNEL_FORMATS = [
14
11
  'undefined',
15
12
  'float32',
16
13
  'double64',
@@ -20,7 +17,7 @@ exports.TEST_CHANNEL_FORMATS = [
20
17
  'int8',
21
18
  'int64',
22
19
  ];
23
- exports.TEST_CHANNEL_FORMATS_MAP = {
20
+ export const TEST_CHANNEL_FORMATS_MAP = {
24
21
  undefined: 0,
25
22
  float32: 1,
26
23
  double64: 2,
@@ -1 +1 @@
1
- {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/testDoubles/consts.ts"],"names":[],"mappings":";;;AAAa,QAAA,8BAA8B,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAA;AAE/D,QAAA,gCAAgC,GAAG;IAC5C,WAAW;IACX,UAAU;IACV,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACD,CAAA;AAEG,QAAA,oBAAoB,GAAG;IAChC,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACD,CAAA;AAEG,QAAA,wBAAwB,GAAG;IACpC,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACX,CAAA"}
1
+ {"version":3,"file":"consts.js","sourceRoot":"","sources":["../../src/testDoubles/consts.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAU,CAAA;AAE5E,MAAM,CAAC,MAAM,gCAAgC,GAAG;IAC5C,WAAW;IACX,UAAU;IACV,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACD,CAAA;AAEV,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAChC,WAAW;IACX,SAAS;IACT,UAAU;IACV,QAAQ;IACR,OAAO;IACP,OAAO;IACP,MAAM;IACN,OAAO;CACD,CAAA;AAEV,MAAM,CAAC,MAAM,wBAAwB,GAAG;IACpC,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,CAAC;IACX,MAAM,EAAE,CAAC;IACT,KAAK,EAAE,CAAC;IACR,KAAK,EAAE,CAAC;IACR,IAAI,EAAE,CAAC;IACP,KAAK,EAAE,CAAC;CACX,CAAA"}
@@ -1,2 +1,2 @@
1
- import { StreamOutletOptions } from '../impl/LslStreamOutlet';
1
+ import { StreamOutletOptions } from '../impl/LslStreamOutlet.js';
2
2
  export default function generateRandomOutletOptions(): StreamOutletOptions;
@@ -1,25 +1,19 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.default = generateRandomOutletOptions;
7
- const crypto_1 = require("crypto");
8
- const generate_id_1 = __importDefault(require("@neurodevs/generate-id"));
9
- const consts_1 = require("./consts");
10
- function generateRandomOutletOptions() {
11
- const randomChannelIdx = (0, crypto_1.randomInt)(consts_1.TEST_SUPPORTED_CHANNEL_FORMATS.length);
1
+ import { randomInt } from 'crypto';
2
+ import generateId from '@neurodevs/generate-id';
3
+ import { TEST_SUPPORTED_CHANNEL_FORMATS } from './consts.js';
4
+ export default function generateRandomOutletOptions() {
5
+ const randomChannelIdx = randomInt(TEST_SUPPORTED_CHANNEL_FORMATS.length);
12
6
  return {
13
- name: (0, generate_id_1.default)(),
14
- type: (0, generate_id_1.default)(),
15
- channelNames: new Array((0, crypto_1.randomInt)(1, 10)).fill((0, generate_id_1.default)()),
7
+ name: generateId(),
8
+ type: generateId(),
9
+ channelNames: new Array(randomInt(1, 10)).fill(generateId()),
16
10
  sampleRate: Math.random() * 10,
17
- channelFormat: consts_1.TEST_SUPPORTED_CHANNEL_FORMATS[randomChannelIdx],
18
- sourceId: (0, generate_id_1.default)(),
19
- manufacturer: (0, generate_id_1.default)(),
20
- unit: (0, generate_id_1.default)(),
21
- chunkSize: (0, crypto_1.randomInt)(0, 10),
22
- maxBuffered: (0, crypto_1.randomInt)(0, 10),
11
+ channelFormat: TEST_SUPPORTED_CHANNEL_FORMATS[randomChannelIdx],
12
+ sourceId: generateId(),
13
+ manufacturer: generateId(),
14
+ unit: generateId(),
15
+ chunkSize: randomInt(0, 10),
16
+ maxBuffered: randomInt(0, 10),
23
17
  };
24
18
  }
25
19
  //# sourceMappingURL=generateRandomOutletOptions.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"generateRandomOutletOptions.js","sourceRoot":"","sources":["../../src/testDoubles/generateRandomOutletOptions.ts"],"names":[],"mappings":";;;;;AAKA,8CAeC;AApBD,mCAAkC;AAClC,yEAA+C;AAE/C,qCAAyD;AAEzD,SAAwB,2BAA2B;IAC/C,MAAM,gBAAgB,GAAG,IAAA,kBAAS,EAAC,uCAA8B,CAAC,MAAM,CAAC,CAAA;IAEzE,OAAO;QACH,IAAI,EAAE,IAAA,qBAAU,GAAE;QAClB,IAAI,EAAE,IAAA,qBAAU,GAAE;QAClB,YAAY,EAAE,IAAI,KAAK,CAAC,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAA,qBAAU,GAAE,CAAC;QAC5D,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QAC9B,aAAa,EAAE,uCAA8B,CAAC,gBAAgB,CAAC;QAC/D,QAAQ,EAAE,IAAA,qBAAU,GAAE;QACtB,YAAY,EAAE,IAAA,qBAAU,GAAE;QAC1B,IAAI,EAAE,IAAA,qBAAU,GAAE;QAClB,SAAS,EAAE,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC;QAC3B,WAAW,EAAE,IAAA,kBAAS,EAAC,CAAC,EAAE,EAAE,CAAC;KACT,CAAA;AAC5B,CAAC"}
1
+ {"version":3,"file":"generateRandomOutletOptions.js","sourceRoot":"","sources":["../../src/testDoubles/generateRandomOutletOptions.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAA;AAClC,OAAO,UAAU,MAAM,wBAAwB,CAAA;AAG/C,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAA;AAE5D,MAAM,CAAC,OAAO,UAAU,2BAA2B;IAC/C,MAAM,gBAAgB,GAAG,SAAS,CAAC,8BAA8B,CAAC,MAAM,CAAC,CAAA;IAEzE,OAAO;QACH,IAAI,EAAE,UAAU,EAAE;QAClB,IAAI,EAAE,UAAU,EAAE;QAClB,YAAY,EAAE,IAAI,KAAK,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;QAC5D,UAAU,EAAE,IAAI,CAAC,MAAM,EAAE,GAAG,EAAE;QAC9B,aAAa,EAAE,8BAA8B,CAAC,gBAAgB,CAAC;QAC/D,QAAQ,EAAE,UAAU,EAAE;QACtB,YAAY,EAAE,UAAU,EAAE;QAC1B,IAAI,EAAE,UAAU,EAAE;QAClB,SAAS,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;QAC3B,WAAW,EAAE,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC;KACT,CAAA;AAC5B,CAAC"}
package/build/types.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import { FuncObj, FieldType } from 'ffi-rs';
2
- import { CHANNEL_FORMATS } from './consts';
3
- import { StreamInlet } from './impl/LslStreamInlet';
4
- import { StreamOutlet } from './impl/LslStreamOutlet';
2
+ import { CHANNEL_FORMATS } from './consts.js';
3
+ import { StreamInlet } from './impl/LslStreamInlet.js';
4
+ import { StreamOutlet } from './impl/LslStreamOutlet.js';
5
5
  export type StreamFixuture = StreamOutlet | StreamInlet;
6
6
  export type ChannelFormat = (typeof CHANNEL_FORMATS)[number];
7
7
  export interface DurationMarker {
@@ -16,6 +16,7 @@ export interface Liblsl {
16
16
  pushSampleStringTimestamp(options: PushSampleStringTimestampOptions): void;
17
17
  destroyOutlet(options: DestroyOutletOptions): void;
18
18
  createInlet(options: CreateInletOptions): BoundInlet;
19
+ flushInlet(options: FlushInletOptions): void;
19
20
  destroyInlet(options: DestroyInletOptions): void;
20
21
  localClock(): number;
21
22
  }
@@ -62,6 +63,9 @@ export interface CreateInletOptions {
62
63
  chunkSize: number;
63
64
  maxBuffered: number;
64
65
  }
66
+ export interface FlushInletOptions {
67
+ inlet: BoundInlet;
68
+ }
65
69
  export interface DestroyInletOptions {
66
70
  }
67
71
  export interface LiblslBindings {
@@ -71,6 +75,7 @@ export interface LiblslBindings {
71
75
  lsl_push_sample_strt(args: [BoundOutlet, LslSample, number]): void;
72
76
  lsl_destroy_outlet(args: [BoundOutlet]): void;
73
77
  lsl_create_inlet(args: any): BoundInlet;
78
+ lsl_flush_inlet(args: [BoundInlet]): void;
74
79
  lsl_destroy_inlet(args: any): void;
75
80
  lsl_local_clock(args: []): number;
76
81
  lsl_get_desc(args: [BoundStreamInfo]): BoundDescription;
package/build/types.js CHANGED
@@ -1,3 +1,2 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
1
+ export {};
3
2
  //# sourceMappingURL=types.js.map
@@ -1,20 +1,14 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.isStringInArray = isStringInArray;
4
- exports.isGreaterThanOrEqualToZero = isGreaterThanOrEqualToZero;
5
- exports.isPositiveInteger = isPositiveInteger;
6
- exports.isPositiveIntegerOrZero = isPositiveIntegerOrZero;
7
- function isStringInArray(value, array) {
1
+ export function isStringInArray(value, array) {
8
2
  return array.indexOf(value) !== -1;
9
3
  }
10
- function isGreaterThanOrEqualToZero(value) {
4
+ export function isGreaterThanOrEqualToZero(value) {
11
5
  return value >= 0;
12
6
  }
13
- function isPositiveInteger(value) {
7
+ export function isPositiveInteger(value) {
14
8
  //@ts-ignore
15
9
  return Number.isInteger(value) && value > 0;
16
10
  }
17
- function isPositiveIntegerOrZero(value) {
11
+ export function isPositiveIntegerOrZero(value) {
18
12
  //@ts-ignore
19
13
  return Number.isInteger(value) && value >= 0;
20
14
  }
@@ -1 +1 @@
1
- {"version":3,"file":"validations.js","sourceRoot":"","sources":["../src/validations.ts"],"names":[],"mappings":";;AAAA,0CAEC;AAED,gEAEC;AAED,8CAGC;AAED,0DAGC;AAhBD,SAAgB,eAAe,CAAC,KAAa,EAAE,KAAwB;IACnE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AACtC,CAAC;AAED,SAAgB,0BAA0B,CAAC,KAAa;IACpD,OAAO,KAAK,IAAI,CAAC,CAAA;AACrB,CAAC;AAED,SAAgB,iBAAiB,CAAC,KAAa;IAC3C,YAAY;IACZ,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;AAC/C,CAAC;AAED,SAAgB,uBAAuB,CAAC,KAAa;IACjD,YAAY;IACZ,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAChD,CAAC"}
1
+ {"version":3,"file":"validations.js","sourceRoot":"","sources":["../src/validations.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAwB;IACnE,OAAO,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAA;AACtC,CAAC;AAED,MAAM,UAAU,0BAA0B,CAAC,KAAa;IACpD,OAAO,KAAK,IAAI,CAAC,CAAA;AACrB,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,KAAa;IAC3C,YAAY;IACZ,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,GAAG,CAAC,CAAA;AAC/C,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAC,KAAa;IACjD,YAAY;IACZ,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,KAAK,IAAI,CAAC,CAAA;AAChD,CAAC"}
package/package.json CHANGED
@@ -1,7 +1,8 @@
1
1
  {
2
2
  "name": "@neurodevs/node-lsl",
3
- "version": "12.0.0",
3
+ "version": "12.0.1",
4
4
  "description": "Lab Streaming Layer (LSL) bindings for Node",
5
+ "type": "module",
5
6
  "keywords": [
6
7
  "nodejs",
7
8
  "typescript",
@@ -49,11 +50,8 @@
49
50
  "ref-napi": "^3.0.3"
50
51
  },
51
52
  "devDependencies": {
52
- "@neurodevs/generate-id": "^1.0.0",
53
- "@sprucelabs/jest-json-reporter": "^8.0.542",
54
- "@sprucelabs/resolve-path-aliases": "^2.0.516",
55
- "@sprucelabs/test": "^9.0.59",
56
- "@sprucelabs/test-utils": "^5.1.502",
53
+ "@neurodevs/generate-id": "^1.0.8",
54
+ "@neurodevs/node-tdd": "^0.1.2",
57
55
  "@types/ffi-napi": "^4.0.10",
58
56
  "@types/node": "^22.9.0",
59
57
  "chokidar-cli": "^3.0.0",
@@ -1,19 +1,20 @@
1
- import AbstractSpruceTest from '@sprucelabs/test-utils'
2
1
  import generateId from '@neurodevs/generate-id'
3
- import LiblslAdapter from '../impl/LiblslAdapter'
4
- import LslEventMarkerOutlet from '../impl/LslEventMarkerOutlet'
5
- import LslStreamInfo from '../impl/LslStreamInfo'
6
- import LslStreamInlet from '../impl/LslStreamInlet'
2
+ import AbstractModuleTest from '@neurodevs/node-tdd'
7
3
 
8
- import LslStreamOutlet from '../impl/LslStreamOutlet'
9
- import SpyEventMarkerOutlet from '../testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet'
10
- import FakeLiblsl from '../testDoubles/Liblsl/FakeLiblsl'
11
- import FakeStreamInfo from '../testDoubles/StreamInfo/FakeStreamInfo'
12
- import SpyStreamInfo from '../testDoubles/StreamInfo/SpyStreamInfo'
13
- import { SpyStreamInlet } from '../testDoubles/StreamInlet/SpyStreamInlet'
14
- import FakeStreamOutlet from '../testDoubles/StreamOutlet/FakeStreamOutlet'
4
+ import LiblslAdapter from '../impl/LiblslAdapter.js'
5
+ import LslEventMarkerOutlet from '../impl/LslEventMarkerOutlet.js'
6
+ import LslStreamInfo from '../impl/LslStreamInfo.js'
7
+ import LslStreamInlet from '../impl/LslStreamInlet.js'
15
8
 
16
- export default class AbstractPackageTest extends AbstractSpruceTest {
9
+ import LslStreamOutlet from '../impl/LslStreamOutlet.js'
10
+ import SpyEventMarkerOutlet from '../testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js'
11
+ import FakeLiblsl from '../testDoubles/Liblsl/FakeLiblsl.js'
12
+ import FakeStreamInfo from '../testDoubles/StreamInfo/FakeStreamInfo.js'
13
+ import SpyStreamInfo from '../testDoubles/StreamInfo/SpyStreamInfo.js'
14
+ import { SpyStreamInlet } from '../testDoubles/StreamInlet/SpyStreamInlet.js'
15
+ import FakeStreamOutlet from '../testDoubles/StreamOutlet/FakeStreamOutlet.js'
16
+
17
+ export default class AbstractPackageTest extends AbstractModuleTest {
17
18
  protected static fakeLiblsl: FakeLiblsl
18
19
 
19
20
  protected static async beforeEach() {
@@ -1,9 +1,10 @@
1
1
  import { randomInt } from 'crypto'
2
- import { test, assert } from '@sprucelabs/test-utils'
3
2
  import generateId from '@neurodevs/generate-id'
3
+ import { test, assert } from '@neurodevs/node-tdd'
4
4
  import { DataType, OpenParams } from 'ffi-rs'
5
- import LiblslAdapter from '../../impl/LiblslAdapter'
6
- import FakeLiblsl from '../../testDoubles/Liblsl/FakeLiblsl'
5
+
6
+ import LiblslAdapter from '../../impl/LiblslAdapter.js'
7
+ import FakeLiblsl from '../../testDoubles/Liblsl/FakeLiblsl.js'
7
8
  import {
8
9
  BoundChild,
9
10
  BoundDescription,
@@ -14,8 +15,8 @@ import {
14
15
  Liblsl,
15
16
  LiblslBindings,
16
17
  LslChannel,
17
- } from '../../types'
18
- import AbstractPackageTest from '../AbstractPackageTest'
18
+ } from '../../types.js'
19
+ import AbstractPackageTest from '../AbstractPackageTest.js'
19
20
 
20
21
  export default class LiblslAdapterTest extends AbstractPackageTest {
21
22
  private static instance: Liblsl
@@ -24,7 +25,7 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
24
25
  private static fakeBindings: LiblslBindings
25
26
  private static fakeStreamInfo: BoundStreamInfo
26
27
  private static fakeOutlet: BoundOutlet
27
- private static fakeInlet: BoundInlet
28
+ private static fakeInlet: BoundInlet = {}
28
29
  private static fakeDesc: BoundDescription
29
30
  private static fakeChildNamedChannels: BoundChild
30
31
  private static createStreamInfoParams?: any[]
@@ -32,6 +33,7 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
32
33
  private static createOutletParams?: any[]
33
34
  private static destroyOutletParams?: any[]
34
35
  private static createInletParams?: any[]
36
+ private static flushInletParams?: any[]
35
37
  private static destroyInletParams?: any[]
36
38
  private static localClockParams?: any[]
37
39
  private static pushSampleFloatTimestampParams?: any[]
@@ -101,8 +103,6 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
101
103
 
102
104
  const err = assert.doesThrow(() => LiblslAdapter.getInstance())
103
105
 
104
- debugger
105
-
106
106
  assert.isTrue(
107
107
  err.message.includes(this.generateFailedMessage()),
108
108
  'Did not receive the expected error!'
@@ -156,26 +156,6 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
156
156
  retType: DataType.External,
157
157
  paramsType: [DataType.External, DataType.I32, DataType.I32],
158
158
  },
159
- lsl_destroy_outlet: {
160
- library: 'lsl',
161
- retType: DataType.Void,
162
- paramsType: [DataType.External],
163
- },
164
- lsl_create_inlet: {
165
- library: 'lsl',
166
- retType: DataType.External,
167
- paramsType: [DataType.External, DataType.I32, DataType.I32],
168
- },
169
- lsl_destroy_inlet: {
170
- library: 'lsl',
171
- retType: DataType.Void,
172
- paramsType: [DataType.External],
173
- },
174
- lsl_local_clock: {
175
- library: 'lsl',
176
- retType: DataType.Double,
177
- paramsType: [],
178
- },
179
159
  lsl_push_sample_ft: {
180
160
  library: 'lsl',
181
161
  retType: DataType.Void,
@@ -194,6 +174,26 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
194
174
  DataType.Double,
195
175
  ],
196
176
  },
177
+ lsl_destroy_outlet: {
178
+ library: 'lsl',
179
+ retType: DataType.Void,
180
+ paramsType: [DataType.External],
181
+ },
182
+ lsl_create_inlet: {
183
+ library: 'lsl',
184
+ retType: DataType.External,
185
+ paramsType: [DataType.External, DataType.I32, DataType.I32],
186
+ },
187
+ lsl_flush_inlet: {
188
+ library: 'lsl',
189
+ retType: DataType.I32,
190
+ paramsType: [DataType.External],
191
+ },
192
+ lsl_destroy_inlet: {
193
+ library: 'lsl',
194
+ retType: DataType.Void,
195
+ paramsType: [DataType.External],
196
+ },
197
197
  lsl_get_desc: {
198
198
  library: 'lsl',
199
199
  retType: DataType.External,
@@ -213,6 +213,11 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
213
213
  DataType.String,
214
214
  ],
215
215
  },
216
+ lsl_local_clock: {
217
+ library: 'lsl',
218
+ retType: DataType.Double,
219
+ paramsType: [],
220
+ },
216
221
  })
217
222
  }
218
223
 
@@ -370,6 +375,18 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
370
375
  assert.isEqual(inlet, this.fakeInlet)
371
376
  }
372
377
 
378
+ @test()
379
+ protected static async flushInletCallsBinding() {
380
+ const { inlet } = this.createRandomInlet()
381
+ this.instance.flushInlet({ inlet })
382
+
383
+ assert.isEqualDeep(
384
+ this.flushInletParams,
385
+ [inlet],
386
+ 'Should have called flushInlet with expected params!'
387
+ )
388
+ }
389
+
373
390
  private static createRandomStreamInfo() {
374
391
  return this.instance.createStreamInfo(
375
392
  this.generateRandomCreateStreamInfoOptions()
@@ -444,6 +461,10 @@ export default class LiblslAdapterTest extends AbstractPackageTest {
444
461
  this.createInletParams = params
445
462
  return this.fakeInlet
446
463
  },
464
+ lsl_flush_inlet: (params: any[]) => {
465
+ this.flushInletParams = params
466
+ return 0
467
+ },
447
468
  lsl_destroy_inlet: (params: any[]) => {
448
469
  this.destroyInletParams = params
449
470
  },
@@ -1,12 +1,13 @@
1
1
  import { randomInt } from 'crypto'
2
- import { assert, test } from '@sprucelabs/test-utils'
3
2
  import generateId from '@neurodevs/generate-id'
4
- import LslEventMarkerOutlet from '../../impl/LslEventMarkerOutlet'
5
- import { StreamOutletOptions } from '../../impl/LslStreamOutlet'
6
- import SpyEventMarkerOutlet from '../../testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet'
7
- import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions'
8
- import FakeStreamOutlet from '../../testDoubles/StreamOutlet/FakeStreamOutlet'
9
- import AbstractPackageTest from '../AbstractPackageTest'
3
+ import { assert, test } from '@neurodevs/node-tdd'
4
+
5
+ import LslEventMarkerOutlet from '../../impl/LslEventMarkerOutlet.js'
6
+ import { StreamOutletOptions } from '../../impl/LslStreamOutlet.js'
7
+ import SpyEventMarkerOutlet from '../../testDoubles/EventMarkerOutlet/SpyEventMarkerOutlet.js'
8
+ import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions.js'
9
+ import FakeStreamOutlet from '../../testDoubles/StreamOutlet/FakeStreamOutlet.js'
10
+ import AbstractPackageTest from '../AbstractPackageTest.js'
10
11
 
11
12
  export default class EventMarkerOutletTest extends AbstractPackageTest {
12
13
  private static instance: SpyEventMarkerOutlet
@@ -1,9 +1,10 @@
1
- import { test, assert } from '@sprucelabs/test-utils'
2
1
  import generateId from '@neurodevs/generate-id'
3
- import { CHANNEL_FORMATS } from '../../consts'
4
- import LslStreamInfo, { StreamInfoOptions } from '../../impl/LslStreamInfo'
5
- import SpyStreamInfo from '../../testDoubles/StreamInfo/SpyStreamInfo'
6
- import AbstractPackageTest from '../AbstractPackageTest'
2
+ import { test, assert } from '@neurodevs/node-tdd'
3
+
4
+ import { CHANNEL_FORMATS } from '../../consts.js'
5
+ import LslStreamInfo, { StreamInfoOptions } from '../../impl/LslStreamInfo.js'
6
+ import SpyStreamInfo from '../../testDoubles/StreamInfo/SpyStreamInfo.js'
7
+ import AbstractPackageTest from '../AbstractPackageTest.js'
7
8
 
8
9
  export default class LslStreamInfoTest extends AbstractPackageTest {
9
10
  private static instance: SpyStreamInfo
@@ -1,8 +1,10 @@
1
- import { test, assert } from '@sprucelabs/test-utils'
2
- import LslStreamInlet, { StreamInletOptions } from '../../impl/LslStreamInlet'
3
- import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo'
4
- import { SpyStreamInlet } from '../../testDoubles/StreamInlet/SpyStreamInlet'
5
- import AbstractPackageTest from '../AbstractPackageTest'
1
+ import { test, assert } from '@neurodevs/node-tdd'
2
+ import LslStreamInlet, {
3
+ StreamInletOptions,
4
+ } from '../../impl/LslStreamInlet.js'
5
+ import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo.js'
6
+ import { SpyStreamInlet } from '../../testDoubles/StreamInlet/SpyStreamInlet.js'
7
+ import AbstractPackageTest from '../AbstractPackageTest.js'
6
8
 
7
9
  export default class LslStreamInletTest extends AbstractPackageTest {
8
10
  private static instance: SpyStreamInlet
@@ -65,6 +67,17 @@ export default class LslStreamInletTest extends AbstractPackageTest {
65
67
  )
66
68
  }
67
69
 
70
+ @test()
71
+ protected static async flushSamplesCallsLslBinding() {
72
+ this.instance.flushSamples()
73
+
74
+ assert.isEqualDeep(
75
+ this.fakeLiblsl.lastFlushInletOptions,
76
+ { inlet: this.instance.getBoundInlet() },
77
+ 'Should have called flushInlet!'
78
+ )
79
+ }
80
+
68
81
  private static LslStreamInlet(options?: Partial<StreamInletOptions>) {
69
82
  const defaultOptions = {
70
83
  channelNames: this.channelNames,
@@ -1,20 +1,20 @@
1
- import { test, assert } from '@sprucelabs/test-utils'
2
1
  import generateId from '@neurodevs/generate-id'
3
- import { CHANNEL_FORMATS } from '../../consts'
4
- import { StreamInfo } from '../../impl/LslStreamInfo'
2
+ import { test, assert } from '@neurodevs/node-tdd'
3
+
4
+ import { CHANNEL_FORMATS } from '../../consts.js'
5
+ import { StreamInfo } from '../../impl/LslStreamInfo.js'
5
6
  import LslStreamOutlet, {
6
7
  StreamOutletOptions,
7
- } from '../../impl/LslStreamOutlet'
8
+ } from '../../impl/LslStreamOutlet.js'
8
9
  import {
9
10
  TEST_SUPPORTED_CHANNEL_FORMATS,
10
11
  TEST_UNSUPPORTED_CHANNEL_FORMATS,
11
12
  TestChannelFormat,
12
- } from '../../testDoubles/consts'
13
-
14
- import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions'
15
- import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo'
16
- import { ChannelFormat, LslSample } from '../../types'
17
- import AbstractPackageTest from '../AbstractPackageTest'
13
+ } from '../../testDoubles/consts.js'
14
+ import generateRandomOutletOptions from '../../testDoubles/generateRandomOutletOptions.js'
15
+ import FakeStreamInfo from '../../testDoubles/StreamInfo/FakeStreamInfo.js'
16
+ import { ChannelFormat, LslSample } from '../../types.js'
17
+ import AbstractPackageTest from '../AbstractPackageTest.js'
18
18
 
19
19
  export default class LslStreamOutletTest extends AbstractPackageTest {
20
20
  private static randomOutletOptions: StreamOutletOptions