@neurodevs/node-lsl 8.0.10 → 9.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/__tests__/behavioral/LslOutlet.test.js.map +1 -1
- package/build/__tests__/behavioral/TimeMarkerOutlet.test.js +4 -4
- package/build/__tests__/behavioral/TimeMarkerOutlet.test.js.map +1 -1
- package/build/__tests__/support/generateRandomOutletOptions.d.ts +1 -1
- package/build/implementations/LslOutlet.d.ts +20 -3
- package/build/implementations/LslOutlet.js +4 -4
- package/build/implementations/LslOutlet.js.map +1 -1
- package/build/implementations/TimeMarkerOutlet.d.ts +7 -2
- package/build/implementations/TimeMarkerOutlet.js.map +1 -1
- package/build/index.d.ts +5 -5
- package/build/index.js +8 -8
- package/build/index.js.map +1 -1
- package/build/nodeLsl.types.d.ts +0 -21
- package/build/testDoubles/{SpyImplementsTimeMarkerOutlet.d.ts → FakeTimeMarkerOutlet.d.ts} +4 -3
- package/build/testDoubles/{SpyImplementsTimeMarkerOutlet.js → FakeTimeMarkerOutlet.js} +4 -4
- package/build/testDoubles/FakeTimeMarkerOutlet.js.map +1 -0
- package/build/testDoubles/{SpyExtendsTimeMarkerOutlet.d.ts → SpyTimeMarkerOutlet.d.ts} +3 -3
- package/build/testDoubles/{SpyExtendsTimeMarkerOutlet.js → SpyTimeMarkerOutlet.js} +4 -4
- package/build/testDoubles/SpyTimeMarkerOutlet.js.map +1 -0
- package/package.json +9 -9
- package/src/__tests__/behavioral/LslOutlet.test.ts +2 -2
- package/src/__tests__/behavioral/TimeMarkerOutlet.test.ts +7 -9
- package/src/__tests__/support/generateRandomOutletOptions.ts +1 -1
- package/src/implementations/LslOutlet.ts +26 -7
- package/src/implementations/TimeMarkerOutlet.ts +11 -7
- package/src/index.ts +6 -6
- package/src/nodeLsl.types.ts +0 -27
- package/src/testDoubles/{SpyImplementsTimeMarkerOutlet.ts → FakeTimeMarkerOutlet.ts} +4 -3
- package/src/testDoubles/{SpyExtendsTimeMarkerOutlet.ts → SpyTimeMarkerOutlet.ts} +4 -4
- package/build/testDoubles/SpyExtendsTimeMarkerOutlet.js.map +0 -1
- package/build/testDoubles/SpyImplementsTimeMarkerOutlet.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/LslOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qEAK+B;AAC/B,0EAAqD;AACrD,
|
|
1
|
+
{"version":3,"file":"LslOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/LslOutlet.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -37,18 +37,18 @@ const test_utils_1 = __importStar(require("@sprucelabs/test-utils"));
|
|
|
37
37
|
const Liblsl_1 = __importDefault(require("../../implementations/Liblsl"));
|
|
38
38
|
const TimeMarkerOutlet_1 = __importDefault(require("../../implementations/TimeMarkerOutlet"));
|
|
39
39
|
const FakeLiblsl_1 = __importDefault(require("../../testDoubles/FakeLiblsl"));
|
|
40
|
-
const
|
|
40
|
+
const SpyTimeMarkerOutlet_1 = __importDefault(require("../../testDoubles/SpyTimeMarkerOutlet"));
|
|
41
41
|
const generateRandomOutletOptions_1 = __importDefault(require("../support/generateRandomOutletOptions"));
|
|
42
42
|
class TimeMarkerOutletTest extends test_utils_1.default {
|
|
43
43
|
static async beforeEach() {
|
|
44
44
|
await super.beforeEach();
|
|
45
|
-
TimeMarkerOutlet_1.default.Class =
|
|
45
|
+
TimeMarkerOutlet_1.default.Class = SpyTimeMarkerOutlet_1.default;
|
|
46
46
|
this.fakeLiblsl = new FakeLiblsl_1.default();
|
|
47
47
|
Liblsl_1.default.setInstance(this.fakeLiblsl);
|
|
48
48
|
this.outlet = this.Outlet();
|
|
49
49
|
}
|
|
50
50
|
static async loadsWithTimeMarkerSpecificOptions() {
|
|
51
|
-
test_utils_1.assert.isEqualDeep(this.outlet.
|
|
51
|
+
test_utils_1.assert.isEqualDeep(this.outlet.passedOptions, {
|
|
52
52
|
name: 'Time markers',
|
|
53
53
|
type: 'Markers',
|
|
54
54
|
channelNames: ['Markers'],
|
|
@@ -64,7 +64,7 @@ class TimeMarkerOutletTest extends test_utils_1.default {
|
|
|
64
64
|
static async canOverrideDefaultOptions() {
|
|
65
65
|
const options = (0, generateRandomOutletOptions_1.default)();
|
|
66
66
|
const outlet = this.Outlet(options);
|
|
67
|
-
test_utils_1.assert.isEqualDeep(outlet.
|
|
67
|
+
test_utils_1.assert.isEqualDeep(outlet.passedOptions, options);
|
|
68
68
|
}
|
|
69
69
|
static async pushingSingleMarkerIncrementsHitCountAndWaitTime() {
|
|
70
70
|
const markers = [this.generateDurationMarkerValues()];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeMarkerOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/TimeMarkerOutlet.test.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,mCAAkC;AAClC,qEAI+B;AAC/B,0EAAqD;
|
|
1
|
+
{"version":3,"file":"TimeMarkerOutlet.test.js","sourceRoot":"","sources":["../../../src/__tests__/behavioral/TimeMarkerOutlet.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { LslOutletOptions } from '../../
|
|
1
|
+
import { LslOutletOptions } from '../../implementations/LslOutlet';
|
|
2
2
|
export default function generateRandomOutletOptions(): LslOutletOptions;
|
|
@@ -1,15 +1,32 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ChannelFormat, LslSample } from '../nodeLsl.types';
|
|
2
2
|
export default class LslOutletImpl implements LslOutlet {
|
|
3
|
-
static Class?:
|
|
3
|
+
static Class?: LslOutletConstructor;
|
|
4
4
|
private options;
|
|
5
5
|
private streamInfo;
|
|
6
6
|
private outlet;
|
|
7
7
|
private pushSampleByType;
|
|
8
|
-
static Outlet(options: LslOutletOptions): LslOutlet;
|
|
9
8
|
protected constructor(options: LslOutletOptions);
|
|
9
|
+
static Outlet(options: LslOutletOptions): LslOutlet;
|
|
10
10
|
destroy(): void;
|
|
11
11
|
pushSample(sample: LslSample): void;
|
|
12
12
|
private getPushMethod;
|
|
13
13
|
private lookupChannelFormat;
|
|
14
14
|
private get lsl();
|
|
15
15
|
}
|
|
16
|
+
export interface LslOutlet {
|
|
17
|
+
destroy(): void;
|
|
18
|
+
pushSample(sample: LslSample): void;
|
|
19
|
+
}
|
|
20
|
+
export type LslOutletConstructor = new (options: LslOutletOptions) => LslOutlet;
|
|
21
|
+
export interface LslOutletOptions {
|
|
22
|
+
name: string;
|
|
23
|
+
type: string;
|
|
24
|
+
channelNames: string[];
|
|
25
|
+
sampleRate: number;
|
|
26
|
+
channelFormat: ChannelFormat;
|
|
27
|
+
sourceId: string;
|
|
28
|
+
manufacturer: string;
|
|
29
|
+
unit: string;
|
|
30
|
+
chunkSize: number;
|
|
31
|
+
maxBuffered: number;
|
|
32
|
+
}
|
|
@@ -8,10 +8,6 @@ const assertions_1 = require("../assertions");
|
|
|
8
8
|
const consts_1 = require("../consts");
|
|
9
9
|
const Liblsl_1 = __importDefault(require("./Liblsl"));
|
|
10
10
|
class LslOutletImpl {
|
|
11
|
-
static Outlet(options) {
|
|
12
|
-
var _a;
|
|
13
|
-
return new ((_a = this.Class) !== null && _a !== void 0 ? _a : this)(options);
|
|
14
|
-
}
|
|
15
11
|
constructor(options) {
|
|
16
12
|
const { sampleRate, channelFormat } = (0, schema_1.assertOptions)(options, [
|
|
17
13
|
'name',
|
|
@@ -56,6 +52,10 @@ class LslOutletImpl {
|
|
|
56
52
|
const pushMethod = this.getPushMethod();
|
|
57
53
|
this.pushSampleByType = this.lsl[pushMethod].bind(this.lsl);
|
|
58
54
|
}
|
|
55
|
+
static Outlet(options) {
|
|
56
|
+
var _a;
|
|
57
|
+
return new ((_a = this.Class) !== null && _a !== void 0 ? _a : this)(options);
|
|
58
|
+
}
|
|
59
59
|
destroy() {
|
|
60
60
|
this.lsl.destroyOutlet({ outlet: this.outlet });
|
|
61
61
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../../src/implementations/LslOutlet.ts"],"names":[],"mappings":";;;;;AAAA,+CAAkD;AAClD,8CAMsB;AACtB,sCAA+C;
|
|
1
|
+
{"version":3,"file":"LslOutlet.js","sourceRoot":"","sources":["../../src/implementations/LslOutlet.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import LslOutletImpl from './LslOutlet';
|
|
1
|
+
import { DurationMarker } from '../nodeLsl.types';
|
|
2
|
+
import LslOutletImpl, { LslOutlet, LslOutletOptions } from './LslOutlet';
|
|
3
3
|
export default class TimeMarkerOutletImpl extends LslOutletImpl implements TimeMarkerOutlet {
|
|
4
4
|
static Class?: TimeMarkerOutletConstructor;
|
|
5
5
|
private isPlaying;
|
|
@@ -11,3 +11,8 @@ export default class TimeMarkerOutletImpl extends LslOutletImpl implements TimeM
|
|
|
11
11
|
private setTimeout;
|
|
12
12
|
stop(): void;
|
|
13
13
|
}
|
|
14
|
+
export interface TimeMarkerOutlet extends LslOutlet {
|
|
15
|
+
pushMarkers(markers: DurationMarker[]): Promise<void>;
|
|
16
|
+
stop(): void;
|
|
17
|
+
}
|
|
18
|
+
export type TimeMarkerOutletConstructor = new (options: LslOutletOptions) => TimeMarkerOutlet;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/implementations/TimeMarkerOutlet.ts"],"names":[],"mappings":";;;;;
|
|
1
|
+
{"version":3,"file":"TimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/implementations/TimeMarkerOutlet.ts"],"names":[],"mappings":";;;;;AACA,4DAAwE;AAExE,MAAqB,oBACjB,SAAQ,mBAAa;IADzB;;QAMY,cAAS,GAAG,KAAK,CAAA;IAoD7B,CAAC;IAhDU,MAAM,CAAC,MAAM,CAAC,OAAmC;;QACpD,MAAM,cAAc,GAAG;YACnB,IAAI,EAAE,cAAc;YACpB,IAAI,EAAE,SAAS;YACf,YAAY,EAAE,CAAC,SAAS,CAAC;YACzB,UAAU,EAAE,CAAC;YACb,aAAa,EAAE,QAAQ;YACvB,QAAQ,EAAE,cAAc;YACxB,YAAY,EAAE,KAAK;YACnB,IAAI,EAAE,KAAK;YACX,SAAS,EAAE,CAAC;YACZ,WAAW,EAAE,CAAC;SACG,CAAA;QAErB,OAAO,IAAI,CAAC,MAAA,IAAI,CAAC,KAAK,mCAAI,IAAI,CAAC,CAAC;YAC5B,GAAG,cAAc;YACjB,GAAG,OAAO;SACb,CAAqB,CAAA;IAC1B,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,IAAI,CAAC,SAAS,GAAG,IAAI,CAAA;QAErB,KAAK,IAAI,MAAM,IAAI,OAAO,EAAE,CAAC;YACzB,IAAI,CAAC,UAAU,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA;YAE9B,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,CAAA;YAElC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,CAAC;gBAClB,OAAM;YACV,CAAC;QACL,CAAC;IACL,CAAC;IAES,KAAK,CAAC,IAAI,CAAC,UAAkB;QACnC,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;IACzE,CAAC;IAEO,UAAU,CAAC,OAAiC,EAAE,UAAkB;QACpE,IAAI,CAAC,WAAW,GAAG,OAAc,CAAA;QACjC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;IAClD,CAAC;IAEM,IAAI;;QACP,MAAA,IAAI,CAAC,WAAW,oDAAI,CAAA;QACpB,YAAY,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;QAC1B,IAAI,CAAC,SAAS,GAAG,KAAK,CAAA;IAC1B,CAAC;CACJ;AA1DD,uCA0DC"}
|
package/build/index.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
export * from './nodeLsl.types';
|
|
1
2
|
export { default as LiblslImpl } from './implementations/Liblsl';
|
|
2
3
|
export * from './implementations/Liblsl';
|
|
3
4
|
export { default as LslOutletImpl } from './implementations/LslOutlet';
|
|
@@ -6,11 +7,10 @@ export { default as TimeMarkerOutletImpl } from './implementations/TimeMarkerOut
|
|
|
6
7
|
export * from './implementations/TimeMarkerOutlet';
|
|
7
8
|
export { default as FakeLiblsl } from './testDoubles/FakeLiblsl';
|
|
8
9
|
export * from './testDoubles/FakeLiblsl';
|
|
9
|
-
export { default as
|
|
10
|
-
export * from './testDoubles/
|
|
11
|
-
export { default as SpyImplementsTimeMarkerOutlet } from './testDoubles/SpyImplementsTimeMarkerOutlet';
|
|
12
|
-
export * from './testDoubles/SpyImplementsTimeMarkerOutlet';
|
|
10
|
+
export { default as FakeTimeMarkerOutlet } from './testDoubles/FakeTimeMarkerOutlet';
|
|
11
|
+
export * from './testDoubles/FakeTimeMarkerOutlet';
|
|
13
12
|
export { default as MockTimeMarkerOutlet } from './testDoubles/MockTimeMarkerOutlet';
|
|
14
13
|
export * from './testDoubles/MockTimeMarkerOutlet';
|
|
15
|
-
export
|
|
14
|
+
export { default as SpyTimeMarkerOutlet } from './testDoubles/SpyTimeMarkerOutlet';
|
|
15
|
+
export * from './testDoubles/SpyTimeMarkerOutlet';
|
|
16
16
|
export { default as generateRandomOutletOptions } from './__tests__/support/generateRandomOutletOptions';
|
package/build/index.js
CHANGED
|
@@ -17,7 +17,8 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
17
17
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
18
18
|
};
|
|
19
19
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
20
|
-
exports.generateRandomOutletOptions = exports.
|
|
20
|
+
exports.generateRandomOutletOptions = exports.SpyTimeMarkerOutlet = exports.MockTimeMarkerOutlet = exports.FakeTimeMarkerOutlet = exports.FakeLiblsl = exports.TimeMarkerOutletImpl = exports.LslOutletImpl = exports.LiblslImpl = void 0;
|
|
21
|
+
__exportStar(require("./nodeLsl.types"), exports);
|
|
21
22
|
var Liblsl_1 = require("./implementations/Liblsl");
|
|
22
23
|
Object.defineProperty(exports, "LiblslImpl", { enumerable: true, get: function () { return __importDefault(Liblsl_1).default; } });
|
|
23
24
|
__exportStar(require("./implementations/Liblsl"), exports);
|
|
@@ -30,16 +31,15 @@ __exportStar(require("./implementations/TimeMarkerOutlet"), exports);
|
|
|
30
31
|
var FakeLiblsl_1 = require("./testDoubles/FakeLiblsl");
|
|
31
32
|
Object.defineProperty(exports, "FakeLiblsl", { enumerable: true, get: function () { return __importDefault(FakeLiblsl_1).default; } });
|
|
32
33
|
__exportStar(require("./testDoubles/FakeLiblsl"), exports);
|
|
33
|
-
var
|
|
34
|
-
Object.defineProperty(exports, "
|
|
35
|
-
__exportStar(require("./testDoubles/
|
|
36
|
-
var SpyImplementsTimeMarkerOutlet_1 = require("./testDoubles/SpyImplementsTimeMarkerOutlet");
|
|
37
|
-
Object.defineProperty(exports, "SpyImplementsTimeMarkerOutlet", { enumerable: true, get: function () { return __importDefault(SpyImplementsTimeMarkerOutlet_1).default; } });
|
|
38
|
-
__exportStar(require("./testDoubles/SpyImplementsTimeMarkerOutlet"), exports);
|
|
34
|
+
var FakeTimeMarkerOutlet_1 = require("./testDoubles/FakeTimeMarkerOutlet");
|
|
35
|
+
Object.defineProperty(exports, "FakeTimeMarkerOutlet", { enumerable: true, get: function () { return __importDefault(FakeTimeMarkerOutlet_1).default; } });
|
|
36
|
+
__exportStar(require("./testDoubles/FakeTimeMarkerOutlet"), exports);
|
|
39
37
|
var MockTimeMarkerOutlet_1 = require("./testDoubles/MockTimeMarkerOutlet");
|
|
40
38
|
Object.defineProperty(exports, "MockTimeMarkerOutlet", { enumerable: true, get: function () { return __importDefault(MockTimeMarkerOutlet_1).default; } });
|
|
41
39
|
__exportStar(require("./testDoubles/MockTimeMarkerOutlet"), exports);
|
|
42
|
-
|
|
40
|
+
var SpyTimeMarkerOutlet_1 = require("./testDoubles/SpyTimeMarkerOutlet");
|
|
41
|
+
Object.defineProperty(exports, "SpyTimeMarkerOutlet", { enumerable: true, get: function () { return __importDefault(SpyTimeMarkerOutlet_1).default; } });
|
|
42
|
+
__exportStar(require("./testDoubles/SpyTimeMarkerOutlet"), exports);
|
|
43
43
|
var generateRandomOutletOptions_1 = require("./__tests__/support/generateRandomOutletOptions");
|
|
44
44
|
Object.defineProperty(exports, "generateRandomOutletOptions", { enumerable: true, get: function () { return __importDefault(generateRandomOutletOptions_1).default; } });
|
|
45
45
|
//# sourceMappingURL=index.js.map
|
package/build/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,mDAAgE;AAAvD,qHAAA,OAAO,OAAc;AAC9B,2DAAwC;AAExC,yDAAsE;AAA7D,2HAAA,OAAO,OAAiB;AACjC,8DAA2C;AAE3C,uEAAoF;AAA3E,yIAAA,OAAO,OAAwB;AACxC,qEAAkD;AAElD,uDAAgE;AAAvD,yHAAA,OAAO,OAAc;AAC9B,2DAAwC;AAExC,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA,kDAA+B;AAE/B,mDAAgE;AAAvD,qHAAA,OAAO,OAAc;AAC9B,2DAAwC;AAExC,yDAAsE;AAA7D,2HAAA,OAAO,OAAiB;AACjC,8DAA2C;AAE3C,uEAAoF;AAA3E,yIAAA,OAAO,OAAwB;AACxC,qEAAkD;AAElD,uDAAgE;AAAvD,yHAAA,OAAO,OAAc;AAC9B,2DAAwC;AAExC,2EAAoF;AAA3E,6IAAA,OAAO,OAAwB;AACxC,qEAAkD;AAElD,2EAAoF;AAA3E,6IAAA,OAAO,OAAwB;AACxC,qEAAkD;AAElD,yEAAkF;AAAzE,2IAAA,OAAO,OAAuB;AACvC,oEAAiD;AAEjD,+FAAwG;AAA/F,2JAAA,OAAO,OAA+B"}
|
package/build/nodeLsl.types.d.ts
CHANGED
|
@@ -1,27 +1,6 @@
|
|
|
1
1
|
import { FuncObj, FieldType } from 'ffi-rs';
|
|
2
2
|
import { CHANNEL_FORMATS } from './consts';
|
|
3
|
-
export interface LslOutlet {
|
|
4
|
-
destroy(): void;
|
|
5
|
-
pushSample(sample: LslSample): void;
|
|
6
|
-
}
|
|
7
|
-
export interface LslOutletOptions {
|
|
8
|
-
name: string;
|
|
9
|
-
type: string;
|
|
10
|
-
channelNames: string[];
|
|
11
|
-
sampleRate: number;
|
|
12
|
-
channelFormat: ChannelFormat;
|
|
13
|
-
sourceId: string;
|
|
14
|
-
manufacturer: string;
|
|
15
|
-
unit: string;
|
|
16
|
-
chunkSize: number;
|
|
17
|
-
maxBuffered: number;
|
|
18
|
-
}
|
|
19
3
|
export type ChannelFormat = (typeof CHANNEL_FORMATS)[number];
|
|
20
|
-
export interface TimeMarkerOutlet extends LslOutlet {
|
|
21
|
-
pushMarkers(markers: DurationMarker[]): Promise<void>;
|
|
22
|
-
stop(): void;
|
|
23
|
-
}
|
|
24
|
-
export type TimeMarkerOutletConstructor = new (options: LslOutletOptions) => TimeMarkerOutlet;
|
|
25
4
|
export interface DurationMarker {
|
|
26
5
|
name: string;
|
|
27
6
|
durationMs: number;
|
|
@@ -1,5 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
1
|
+
import { TimeMarkerOutlet } from '../implementations/TimeMarkerOutlet';
|
|
2
|
+
import { DurationMarker } from '../nodeLsl.types';
|
|
3
|
+
export default class FakeTimeMarkerOutlet implements TimeMarkerOutlet {
|
|
3
4
|
pushMarkersCalls: DurationMarker[][];
|
|
4
5
|
pushSampleCalls: string[][];
|
|
5
6
|
numStopCalls: number;
|
|
@@ -9,5 +10,5 @@ export default class SpyImplementsTimeMarkerOutlet implements TimeMarkerOutlet {
|
|
|
9
10
|
pushSample(sample: string[]): void;
|
|
10
11
|
stop(): void;
|
|
11
12
|
destroy(): void;
|
|
12
|
-
|
|
13
|
+
resetTestDouble(): void;
|
|
13
14
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
class
|
|
3
|
+
class FakeTimeMarkerOutlet {
|
|
4
4
|
constructor() {
|
|
5
5
|
this.pushMarkersCalls = [];
|
|
6
6
|
this.pushSampleCalls = [];
|
|
@@ -19,12 +19,12 @@ class SpyImplementsTimeMarkerOutlet {
|
|
|
19
19
|
destroy() {
|
|
20
20
|
this.numDestroyCalls++;
|
|
21
21
|
}
|
|
22
|
-
|
|
22
|
+
resetTestDouble() {
|
|
23
23
|
this.pushMarkersCalls = [];
|
|
24
24
|
this.pushSampleCalls = [];
|
|
25
25
|
this.numStopCalls = 0;
|
|
26
26
|
this.numDestroyCalls = 0;
|
|
27
27
|
}
|
|
28
28
|
}
|
|
29
|
-
exports.default =
|
|
30
|
-
//# sourceMappingURL=
|
|
29
|
+
exports.default = FakeTimeMarkerOutlet;
|
|
30
|
+
//# sourceMappingURL=FakeTimeMarkerOutlet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FakeTimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/testDoubles/FakeTimeMarkerOutlet.ts"],"names":[],"mappings":";;AAGA,MAAqB,oBAAoB;IAMrC;QACI,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAEM,UAAU,CAAC,MAAgB;QAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,YAAY,EAAE,CAAA;IACvB,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,eAAe,EAAE,CAAA;IAC1B,CAAC;IAEM,eAAe;QAClB,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IAC5B,CAAC;CACJ;AAnCD,uCAmCC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import { LslOutletOptions } from '../implementations/LslOutlet';
|
|
1
2
|
import TimeMarkerOutletImpl from '../implementations/TimeMarkerOutlet';
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
spyOptions: LslOutletOptions;
|
|
3
|
+
export default class SpyTimeMarkerOutlet extends TimeMarkerOutletImpl {
|
|
4
|
+
passedOptions: LslOutletOptions;
|
|
5
5
|
totalWaitTimeMs: number;
|
|
6
6
|
constructor(options: LslOutletOptions);
|
|
7
7
|
wait(durationMs: number): Promise<void>;
|
|
@@ -4,10 +4,10 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
|
4
4
|
};
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
const TimeMarkerOutlet_1 = __importDefault(require("../implementations/TimeMarkerOutlet"));
|
|
7
|
-
class
|
|
7
|
+
class SpyTimeMarkerOutlet extends TimeMarkerOutlet_1.default {
|
|
8
8
|
constructor(options) {
|
|
9
9
|
super(options);
|
|
10
|
-
this.
|
|
10
|
+
this.passedOptions = options;
|
|
11
11
|
this.totalWaitTimeMs = 0;
|
|
12
12
|
}
|
|
13
13
|
async wait(durationMs) {
|
|
@@ -15,5 +15,5 @@ class SpyExtendsTimeMarkerOutlet extends TimeMarkerOutlet_1.default {
|
|
|
15
15
|
return Promise.resolve();
|
|
16
16
|
}
|
|
17
17
|
}
|
|
18
|
-
exports.default =
|
|
19
|
-
//# sourceMappingURL=
|
|
18
|
+
exports.default = SpyTimeMarkerOutlet;
|
|
19
|
+
//# sourceMappingURL=SpyTimeMarkerOutlet.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SpyTimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/testDoubles/SpyTimeMarkerOutlet.ts"],"names":[],"mappings":";;;;;AACA,2FAAsE;AAEtE,MAAqB,mBAAoB,SAAQ,0BAAoB;IAIjE,YAAmB,OAAyB;QACxC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,aAAa,GAAG,OAAO,CAAA;QAC5B,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,UAAkB;QAChC,IAAI,CAAC,eAAe,IAAI,UAAU,CAAA;QAClC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;CACJ;AAdD,sCAcC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neurodevs/node-lsl",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "9.0.0",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -31,10 +31,10 @@
|
|
|
31
31
|
"test.rs": "node build/test.js"
|
|
32
32
|
},
|
|
33
33
|
"devDependencies": {
|
|
34
|
-
"@sprucelabs/jest-json-reporter": "^8.0.
|
|
35
|
-
"@sprucelabs/resolve-path-aliases": "^2.0.
|
|
36
|
-
"@sprucelabs/test": "^9.0.
|
|
37
|
-
"@sprucelabs/test-utils": "^5.1.
|
|
34
|
+
"@sprucelabs/jest-json-reporter": "^8.0.427",
|
|
35
|
+
"@sprucelabs/resolve-path-aliases": "^2.0.406",
|
|
36
|
+
"@sprucelabs/test": "^9.0.48",
|
|
37
|
+
"@sprucelabs/test-utils": "^5.1.374",
|
|
38
38
|
"@types/ffi-napi": "^4.0.10",
|
|
39
39
|
"@types/node": "^22.7.4",
|
|
40
40
|
"chokidar-cli": "^3.0.0",
|
|
@@ -74,10 +74,10 @@
|
|
|
74
74
|
}
|
|
75
75
|
},
|
|
76
76
|
"dependencies": {
|
|
77
|
-
"@sprucelabs/error": "^6.0.
|
|
78
|
-
"@sprucelabs/schema": "^30.0.
|
|
79
|
-
"@sprucelabs/spruce-core-schemas": "^40.1.
|
|
80
|
-
"@sprucelabs/spruce-skill-utils": "^31.0.
|
|
77
|
+
"@sprucelabs/error": "^6.0.427",
|
|
78
|
+
"@sprucelabs/schema": "^30.0.476",
|
|
79
|
+
"@sprucelabs/spruce-core-schemas": "^40.1.420",
|
|
80
|
+
"@sprucelabs/spruce-skill-utils": "^31.0.495",
|
|
81
81
|
"ffi-rs": "^1.0.96",
|
|
82
82
|
"node-gyp": "^10.2.0",
|
|
83
83
|
"ref-array-napi": "^1.2.2",
|
|
@@ -5,8 +5,8 @@ import AbstractSpruceTest, {
|
|
|
5
5
|
generateId,
|
|
6
6
|
} from '@sprucelabs/test-utils'
|
|
7
7
|
import LiblslImpl from '../../implementations/Liblsl'
|
|
8
|
-
import LslOutlet from '../../implementations/LslOutlet'
|
|
9
|
-
import {
|
|
8
|
+
import LslOutlet, { LslOutletOptions } from '../../implementations/LslOutlet'
|
|
9
|
+
import { LslSample } from '../../nodeLsl.types'
|
|
10
10
|
import FakeLiblsl from '../../testDoubles/FakeLiblsl'
|
|
11
11
|
import {
|
|
12
12
|
TEST_CHANNEL_FORMATS_MAP,
|
|
@@ -5,19 +5,19 @@ import AbstractSpruceTest, {
|
|
|
5
5
|
test,
|
|
6
6
|
} from '@sprucelabs/test-utils'
|
|
7
7
|
import LiblslImpl from '../../implementations/Liblsl'
|
|
8
|
+
import { LslOutletOptions } from '../../implementations/LslOutlet'
|
|
8
9
|
import TimeMarkerOutletImpl from '../../implementations/TimeMarkerOutlet'
|
|
9
|
-
import { LslOutletOptions } from '../../nodeLsl.types'
|
|
10
10
|
import FakeLiblsl from '../../testDoubles/FakeLiblsl'
|
|
11
|
-
import
|
|
11
|
+
import SpyTimeMarkerOutlet from '../../testDoubles/SpyTimeMarkerOutlet'
|
|
12
12
|
import generateRandomOutletOptions from '../support/generateRandomOutletOptions'
|
|
13
13
|
|
|
14
14
|
export default class TimeMarkerOutletTest extends AbstractSpruceTest {
|
|
15
15
|
private static fakeLiblsl: FakeLiblsl
|
|
16
|
-
private static outlet:
|
|
16
|
+
private static outlet: SpyTimeMarkerOutlet
|
|
17
17
|
|
|
18
18
|
protected static async beforeEach() {
|
|
19
19
|
await super.beforeEach()
|
|
20
|
-
TimeMarkerOutletImpl.Class =
|
|
20
|
+
TimeMarkerOutletImpl.Class = SpyTimeMarkerOutlet
|
|
21
21
|
this.fakeLiblsl = new FakeLiblsl()
|
|
22
22
|
LiblslImpl.setInstance(this.fakeLiblsl)
|
|
23
23
|
this.outlet = this.Outlet()
|
|
@@ -25,7 +25,7 @@ export default class TimeMarkerOutletTest extends AbstractSpruceTest {
|
|
|
25
25
|
|
|
26
26
|
@test()
|
|
27
27
|
protected static async loadsWithTimeMarkerSpecificOptions() {
|
|
28
|
-
assert.isEqualDeep(this.outlet.
|
|
28
|
+
assert.isEqualDeep(this.outlet.passedOptions, {
|
|
29
29
|
name: 'Time markers',
|
|
30
30
|
type: 'Markers',
|
|
31
31
|
channelNames: ['Markers'],
|
|
@@ -43,7 +43,7 @@ export default class TimeMarkerOutletTest extends AbstractSpruceTest {
|
|
|
43
43
|
protected static async canOverrideDefaultOptions() {
|
|
44
44
|
const options = generateRandomOutletOptions()
|
|
45
45
|
const outlet = this.Outlet(options)
|
|
46
|
-
assert.isEqualDeep(outlet.
|
|
46
|
+
assert.isEqualDeep(outlet.passedOptions, options)
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
@test()
|
|
@@ -149,8 +149,6 @@ export default class TimeMarkerOutletTest extends AbstractSpruceTest {
|
|
|
149
149
|
}
|
|
150
150
|
|
|
151
151
|
private static Outlet(options?: Partial<LslOutletOptions>) {
|
|
152
|
-
return TimeMarkerOutletImpl.Outlet(
|
|
153
|
-
options
|
|
154
|
-
) as SpyExtendsTimeMarkerOutlet
|
|
152
|
+
return TimeMarkerOutletImpl.Outlet(options) as SpyTimeMarkerOutlet
|
|
155
153
|
}
|
|
156
154
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { randomInt } from 'crypto'
|
|
2
2
|
import { generateId } from '@sprucelabs/test-utils'
|
|
3
|
-
import { LslOutletOptions } from '../../
|
|
3
|
+
import { LslOutletOptions } from '../../implementations/LslOutlet'
|
|
4
4
|
import { TEST_SUPPORTED_CHANNEL_FORMATS } from './consts'
|
|
5
5
|
|
|
6
6
|
export default function generateRandomOutletOptions() {
|
|
@@ -8,8 +8,6 @@ import {
|
|
|
8
8
|
} from '../assertions'
|
|
9
9
|
import { CHANNEL_FORMATS_MAP } from '../consts'
|
|
10
10
|
import {
|
|
11
|
-
LslOutlet,
|
|
12
|
-
LslOutletOptions,
|
|
13
11
|
ChannelFormat,
|
|
14
12
|
BoundOutlet,
|
|
15
13
|
BoundStreamInfo,
|
|
@@ -19,16 +17,13 @@ import {
|
|
|
19
17
|
import LiblslImpl from './Liblsl'
|
|
20
18
|
|
|
21
19
|
export default class LslOutletImpl implements LslOutlet {
|
|
22
|
-
public static Class?:
|
|
20
|
+
public static Class?: LslOutletConstructor
|
|
21
|
+
|
|
23
22
|
private options: LslOutletOptions
|
|
24
23
|
private streamInfo: BoundStreamInfo
|
|
25
24
|
private outlet: BoundOutlet
|
|
26
25
|
private pushSampleByType: (options: any) => void
|
|
27
26
|
|
|
28
|
-
public static Outlet(options: LslOutletOptions) {
|
|
29
|
-
return new (this.Class ?? this)(options)
|
|
30
|
-
}
|
|
31
|
-
|
|
32
27
|
protected constructor(options: LslOutletOptions) {
|
|
33
28
|
const { sampleRate, channelFormat } = assertOptions(options, [
|
|
34
29
|
'name',
|
|
@@ -84,6 +79,10 @@ export default class LslOutletImpl implements LslOutlet {
|
|
|
84
79
|
this.pushSampleByType = this.lsl[pushMethod].bind(this.lsl)
|
|
85
80
|
}
|
|
86
81
|
|
|
82
|
+
public static Outlet(options: LslOutletOptions) {
|
|
83
|
+
return new (this.Class ?? this)(options)
|
|
84
|
+
}
|
|
85
|
+
|
|
87
86
|
public destroy() {
|
|
88
87
|
this.lsl.destroyOutlet({ outlet: this.outlet })
|
|
89
88
|
}
|
|
@@ -122,3 +121,23 @@ export default class LslOutletImpl implements LslOutlet {
|
|
|
122
121
|
return LiblslImpl.getInstance()
|
|
123
122
|
}
|
|
124
123
|
}
|
|
124
|
+
|
|
125
|
+
export interface LslOutlet {
|
|
126
|
+
destroy(): void
|
|
127
|
+
pushSample(sample: LslSample): void
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export type LslOutletConstructor = new (options: LslOutletOptions) => LslOutlet
|
|
131
|
+
|
|
132
|
+
export interface LslOutletOptions {
|
|
133
|
+
name: string
|
|
134
|
+
type: string
|
|
135
|
+
channelNames: string[]
|
|
136
|
+
sampleRate: number
|
|
137
|
+
channelFormat: ChannelFormat
|
|
138
|
+
sourceId: string
|
|
139
|
+
manufacturer: string
|
|
140
|
+
unit: string
|
|
141
|
+
chunkSize: number
|
|
142
|
+
maxBuffered: number
|
|
143
|
+
}
|
|
@@ -1,10 +1,5 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
LslOutletOptions,
|
|
4
|
-
DurationMarker,
|
|
5
|
-
TimeMarkerOutletConstructor,
|
|
6
|
-
} from '../nodeLsl.types'
|
|
7
|
-
import LslOutletImpl from './LslOutlet'
|
|
1
|
+
import { DurationMarker } from '../nodeLsl.types'
|
|
2
|
+
import LslOutletImpl, { LslOutlet, LslOutletOptions } from './LslOutlet'
|
|
8
3
|
|
|
9
4
|
export default class TimeMarkerOutletImpl
|
|
10
5
|
extends LslOutletImpl
|
|
@@ -65,3 +60,12 @@ export default class TimeMarkerOutletImpl
|
|
|
65
60
|
this.isPlaying = false
|
|
66
61
|
}
|
|
67
62
|
}
|
|
63
|
+
|
|
64
|
+
export interface TimeMarkerOutlet extends LslOutlet {
|
|
65
|
+
pushMarkers(markers: DurationMarker[]): Promise<void>
|
|
66
|
+
stop(): void
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
export type TimeMarkerOutletConstructor = new (
|
|
70
|
+
options: LslOutletOptions
|
|
71
|
+
) => TimeMarkerOutlet
|
package/src/index.ts
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
export * from './nodeLsl.types'
|
|
2
|
+
|
|
1
3
|
export { default as LiblslImpl } from './implementations/Liblsl'
|
|
2
4
|
export * from './implementations/Liblsl'
|
|
3
5
|
|
|
@@ -10,15 +12,13 @@ export * from './implementations/TimeMarkerOutlet'
|
|
|
10
12
|
export { default as FakeLiblsl } from './testDoubles/FakeLiblsl'
|
|
11
13
|
export * from './testDoubles/FakeLiblsl'
|
|
12
14
|
|
|
13
|
-
export { default as
|
|
14
|
-
export * from './testDoubles/
|
|
15
|
-
|
|
16
|
-
export { default as SpyImplementsTimeMarkerOutlet } from './testDoubles/SpyImplementsTimeMarkerOutlet'
|
|
17
|
-
export * from './testDoubles/SpyImplementsTimeMarkerOutlet'
|
|
15
|
+
export { default as FakeTimeMarkerOutlet } from './testDoubles/FakeTimeMarkerOutlet'
|
|
16
|
+
export * from './testDoubles/FakeTimeMarkerOutlet'
|
|
18
17
|
|
|
19
18
|
export { default as MockTimeMarkerOutlet } from './testDoubles/MockTimeMarkerOutlet'
|
|
20
19
|
export * from './testDoubles/MockTimeMarkerOutlet'
|
|
21
20
|
|
|
22
|
-
export
|
|
21
|
+
export { default as SpyTimeMarkerOutlet } from './testDoubles/SpyTimeMarkerOutlet'
|
|
22
|
+
export * from './testDoubles/SpyTimeMarkerOutlet'
|
|
23
23
|
|
|
24
24
|
export { default as generateRandomOutletOptions } from './__tests__/support/generateRandomOutletOptions'
|
package/src/nodeLsl.types.ts
CHANGED
|
@@ -1,35 +1,8 @@
|
|
|
1
1
|
import { FuncObj, FieldType } from 'ffi-rs'
|
|
2
2
|
import { CHANNEL_FORMATS } from './consts'
|
|
3
3
|
|
|
4
|
-
export interface LslOutlet {
|
|
5
|
-
destroy(): void
|
|
6
|
-
pushSample(sample: LslSample): void
|
|
7
|
-
}
|
|
8
|
-
|
|
9
|
-
export interface LslOutletOptions {
|
|
10
|
-
name: string
|
|
11
|
-
type: string
|
|
12
|
-
channelNames: string[]
|
|
13
|
-
sampleRate: number
|
|
14
|
-
channelFormat: ChannelFormat
|
|
15
|
-
sourceId: string
|
|
16
|
-
manufacturer: string
|
|
17
|
-
unit: string
|
|
18
|
-
chunkSize: number
|
|
19
|
-
maxBuffered: number
|
|
20
|
-
}
|
|
21
|
-
|
|
22
4
|
export type ChannelFormat = (typeof CHANNEL_FORMATS)[number]
|
|
23
5
|
|
|
24
|
-
export interface TimeMarkerOutlet extends LslOutlet {
|
|
25
|
-
pushMarkers(markers: DurationMarker[]): Promise<void>
|
|
26
|
-
stop(): void
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export type TimeMarkerOutletConstructor = new (
|
|
30
|
-
options: LslOutletOptions
|
|
31
|
-
) => TimeMarkerOutlet
|
|
32
|
-
|
|
33
6
|
export interface DurationMarker {
|
|
34
7
|
name: string
|
|
35
8
|
durationMs: number
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { TimeMarkerOutlet } from '../implementations/TimeMarkerOutlet'
|
|
2
|
+
import { DurationMarker } from '../nodeLsl.types'
|
|
2
3
|
|
|
3
|
-
export default class
|
|
4
|
+
export default class FakeTimeMarkerOutlet implements TimeMarkerOutlet {
|
|
4
5
|
public pushMarkersCalls: DurationMarker[][]
|
|
5
6
|
public pushSampleCalls: string[][]
|
|
6
7
|
public numStopCalls: number
|
|
@@ -29,7 +30,7 @@ export default class SpyImplementsTimeMarkerOutlet implements TimeMarkerOutlet {
|
|
|
29
30
|
this.numDestroyCalls++
|
|
30
31
|
}
|
|
31
32
|
|
|
32
|
-
public
|
|
33
|
+
public resetTestDouble() {
|
|
33
34
|
this.pushMarkersCalls = []
|
|
34
35
|
this.pushSampleCalls = []
|
|
35
36
|
this.numStopCalls = 0
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
+
import { LslOutletOptions } from '../implementations/LslOutlet'
|
|
1
2
|
import TimeMarkerOutletImpl from '../implementations/TimeMarkerOutlet'
|
|
2
|
-
import { LslOutletOptions } from '../nodeLsl.types'
|
|
3
3
|
|
|
4
|
-
export default class
|
|
5
|
-
public
|
|
4
|
+
export default class SpyTimeMarkerOutlet extends TimeMarkerOutletImpl {
|
|
5
|
+
public passedOptions: LslOutletOptions
|
|
6
6
|
public totalWaitTimeMs: number
|
|
7
7
|
|
|
8
8
|
public constructor(options: LslOutletOptions) {
|
|
9
9
|
super(options)
|
|
10
|
-
this.
|
|
10
|
+
this.passedOptions = options
|
|
11
11
|
this.totalWaitTimeMs = 0
|
|
12
12
|
}
|
|
13
13
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpyExtendsTimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/testDoubles/SpyExtendsTimeMarkerOutlet.ts"],"names":[],"mappings":";;;;;AAAA,2FAAsE;AAGtE,MAAqB,0BAA2B,SAAQ,0BAAoB;IAIxE,YAAmB,OAAyB;QACxC,KAAK,CAAC,OAAO,CAAC,CAAA;QACd,IAAI,CAAC,UAAU,GAAG,OAAO,CAAA;QACzB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,IAAI,CAAC,UAAkB;QAChC,IAAI,CAAC,eAAe,IAAI,UAAU,CAAA;QAClC,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;IAC5B,CAAC;CACJ;AAdD,6CAcC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"SpyImplementsTimeMarkerOutlet.js","sourceRoot":"","sources":["../../src/testDoubles/SpyImplementsTimeMarkerOutlet.ts"],"names":[],"mappings":";;AAEA,MAAqB,6BAA6B;IAM9C;QACI,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IAC5B,CAAC;IAEM,KAAK,CAAC,WAAW,CAAC,OAAyB;QAC9C,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAA;IACvC,CAAC;IAEM,UAAU,CAAC,MAAgB;QAC9B,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IACrC,CAAC;IAEM,IAAI;QACP,IAAI,CAAC,YAAY,EAAE,CAAA;IACvB,CAAC;IAEM,OAAO;QACV,IAAI,CAAC,eAAe,EAAE,CAAA;IAC1B,CAAC;IAEM,QAAQ;QACX,IAAI,CAAC,gBAAgB,GAAG,EAAE,CAAA;QAC1B,IAAI,CAAC,eAAe,GAAG,EAAE,CAAA;QACzB,IAAI,CAAC,YAAY,GAAG,CAAC,CAAA;QACrB,IAAI,CAAC,eAAe,GAAG,CAAC,CAAA;IAC5B,CAAC;CACJ;AAnCD,gDAmCC"}
|