@observertc/observer-js 0.9.15-beta → 0.9.17-beta
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/lib/Observer.d.ts +7 -0
- package/lib/Observer.d.ts.map +1 -1
- package/lib/Observer.js +20 -2
- package/lib/index.d.ts +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/middlewares/CallOperationsContext.d.ts.map +1 -1
- package/lib/processes/findRemoteMatches.d.ts.map +1 -1
- package/lib/processes/findRemoteMatches.js +0 -1
- package/lib/processes/joinClientProcess.d.ts.map +1 -1
- package/lib/processes/joinClientProcess.js +4 -0
- package/package.json +3 -3
- package/src/Observer.ts +25 -2
- package/src/common/utils.ts +3 -3
- package/src/index.ts +1 -1
- package/src/middlewares/CallOperationsContext.ts +0 -1
- package/src/processes/findRemoteMatches.ts +1 -2
- package/src/processes/joinClientProcess.ts +6 -1
package/lib/Observer.d.ts
CHANGED
|
@@ -9,6 +9,9 @@ import { ObservedClientSource, ObservedClientSourceConfig } from './sources/Obse
|
|
|
9
9
|
import { PartialBy } from './common/utils';
|
|
10
10
|
import { LogLevel } from './common/logger';
|
|
11
11
|
import { ObservedSfuSource, ObservedSfuSourceConfig } from './sources/ObservedSfuSource';
|
|
12
|
+
export type ObserverEvents = {
|
|
13
|
+
'close': undefined;
|
|
14
|
+
};
|
|
12
15
|
export type ObserverConfig = {
|
|
13
16
|
/**
|
|
14
17
|
*
|
|
@@ -39,11 +42,15 @@ export declare class Observer {
|
|
|
39
42
|
private readonly _storages;
|
|
40
43
|
private readonly _semaphores;
|
|
41
44
|
static create(providedConfig: Partial<ObserverConfig>): Observer;
|
|
45
|
+
private readonly _emitter;
|
|
42
46
|
private _sources;
|
|
43
47
|
private _sink;
|
|
44
48
|
private _evaluator;
|
|
45
49
|
private _closed;
|
|
46
50
|
constructor(config: ObserverConfig, _storages: StorageProvider, _semaphores: SemaphoreProvider);
|
|
51
|
+
on<K extends keyof ObserverEvents>(event: K, listener: (arg: ObserverEvents[K]) => void): this;
|
|
52
|
+
once<K extends keyof ObserverEvents>(event: K, listener: (arg: ObserverEvents[K]) => void): this;
|
|
53
|
+
off<K extends keyof ObserverEvents>(event: K, listener: (arg: ObserverEvents[K]) => void): this;
|
|
47
54
|
createCallSource(config: PartialBy<ObservedCallSourceConfig, 'serviceId' | 'mediaUnitId'>): ObservedCallSource;
|
|
48
55
|
createClientSource(config: PartialBy<ObservedClientSourceConfig, 'serviceId' | 'mediaUnitId' | 'joined'>): ObservedClientSource;
|
|
49
56
|
createSfuSource(config: PartialBy<ObservedSfuSourceConfig, 'serviceId' | 'mediaUnitId' | 'joined'>): ObservedSfuSource;
|
package/lib/Observer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Observer.d.ts","sourceRoot":"","sources":["../src/Observer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,UAAU,EAAY,MAAM,sBAAsB,CAAC;AACzG,OAAO,EAAW,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,EAA+B,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAC1F,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAC1C,OAAO,EAAa,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC3E,OAAO,EAAiC,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACtF,OAAO,EAAE,wBAAwB,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAC5F,OAAO,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAClG,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAgB,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;
|
|
1
|
+
{"version":3,"file":"Observer.d.ts","sourceRoot":"","sources":["../src/Observer.ts"],"names":[],"mappings":"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"}
|
package/lib/Observer.js
CHANGED
|
@@ -1,4 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.Observer = void 0;
|
|
4
7
|
const ObserverSink_1 = require("./sinks/ObserverSink");
|
|
@@ -7,6 +10,7 @@ const StorageProvider_1 = require("./storages/StorageProvider");
|
|
|
7
10
|
const Evaluator_1 = require("./Evaluator");
|
|
8
11
|
const Semaphore_1 = require("./common/Semaphore");
|
|
9
12
|
const logger_1 = require("./common/logger");
|
|
13
|
+
const events_1 = __importDefault(require("events"));
|
|
10
14
|
const logger = (0, logger_1.createLogger)('Observer');
|
|
11
15
|
class Observer {
|
|
12
16
|
static create(providedConfig) {
|
|
@@ -33,6 +37,7 @@ class Observer {
|
|
|
33
37
|
this.config = config;
|
|
34
38
|
this._storages = _storages;
|
|
35
39
|
this._semaphores = _semaphores;
|
|
40
|
+
this._emitter = new events_1.default();
|
|
36
41
|
this._closed = false;
|
|
37
42
|
this._sources = new Sources_1.Sources(config.sources);
|
|
38
43
|
this._sink = new ObserverSink_1.SinkImpl(config.sink);
|
|
@@ -51,6 +56,18 @@ class Observer {
|
|
|
51
56
|
});
|
|
52
57
|
logger.debug(`Observer is created with config`, this.config);
|
|
53
58
|
}
|
|
59
|
+
on(event, listener) {
|
|
60
|
+
this._emitter.on(event, listener);
|
|
61
|
+
return this;
|
|
62
|
+
}
|
|
63
|
+
once(event, listener) {
|
|
64
|
+
this._emitter.once(event, listener);
|
|
65
|
+
return this;
|
|
66
|
+
}
|
|
67
|
+
off(event, listener) {
|
|
68
|
+
this._emitter.off(event, listener);
|
|
69
|
+
return this;
|
|
70
|
+
}
|
|
54
71
|
createCallSource(config) {
|
|
55
72
|
var _a, _b;
|
|
56
73
|
if (this._closed) {
|
|
@@ -313,11 +330,12 @@ class Observer {
|
|
|
313
330
|
}
|
|
314
331
|
close() {
|
|
315
332
|
if (this._closed) {
|
|
316
|
-
logger.
|
|
333
|
+
logger.debug(`Attempted to close twice`);
|
|
317
334
|
return;
|
|
318
335
|
}
|
|
319
|
-
this._sources.close();
|
|
320
336
|
this._closed = true;
|
|
337
|
+
this._sources.close();
|
|
338
|
+
this._emitter.emit('close');
|
|
321
339
|
}
|
|
322
340
|
}
|
|
323
341
|
exports.Observer = Observer;
|
package/lib/index.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export type { ObserverConfig } from './Observer';
|
|
1
|
+
export type { ObserverConfig, ObserverEvents } from './Observer';
|
|
2
2
|
export type { EvaluatorConfig, EvaluatorProcess } from './Evaluator';
|
|
3
3
|
export type { SourcesConfig } from './sources/Sources';
|
|
4
4
|
export { Observer } from './Observer';
|
package/lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,YAAY,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAErE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AACxF,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,YAAY,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAC;AAE1C,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAC9D,OAAO,KAAK,YAAY,MAAM,+BAA+B,CAAC;AAE9D,YAAY,EACX,OAAO,EACP,YAAY,EACZ,SAAS,EACT,aAAa,EACb,uBAAuB,EACvB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,YAAY,EACZ,gBAAgB,EAChB,iBAAiB,EACjB,cAAc,EACd,iBAAiB,EACjB,WAAW,GACX,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EACX,eAAe,EACf,cAAc,EACd,uBAAuB,EACvB,qBAAqB,EACrB,sBAAsB,EACtB,uBAAuB,EACvB,uBAAuB,EACvB,mBAAmB,EACnB,wBAAwB,EACxB,wBAAwB,EACxB,6BAA6B,EAC7B,cAAc,EACd,kBAAkB,EAClB,sBAAsB,EACtB,aAAa,EACb,uBAAuB,EACvB,mBAAmB,EACnB,kBAAkB,GAClB,MAAM,+BAA+B,CAAC;AAEvC,YAAY,EAAE,oBAAoB,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAEvG,YAAY,EAAE,iBAAiB,EAAE,uBAAuB,EAAE,MAAM,6BAA6B,CAAC;AAE9F,YAAY,EAAE,kBAAkB,EAAE,wBAAwB,IAAI,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAEvH,YAAY,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAEzH,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACtD,wBAAgB,cAAc,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,YAE9D"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CallOperationsContext.d.ts","sourceRoot":"","sources":["../../src/middlewares/CallOperationsContext.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CallOperationsContext.d.ts","sourceRoot":"","sources":["../../src/middlewares/CallOperationsContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAE7E,MAAM,MAAM,qBAAqB,GAAG;IACnC,aAAa,EAAE,0BAA0B,EAAE,CAAC;IAC5C,eAAe,EAAE,CAAC,0BAA0B,GAAG;QAC9C,QAAQ,EAAE,MAAM,CAAC;KACjB,CAAC,EAAE,CAAC;IAEL,gBAAgB,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;CAC9C,CAAC;AAEF,MAAM,MAAM,aAAa,GACtB,CAAC,0BAA0B,GAAG;IACzB,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC,GAAG,CAAC,0BAA0B,GAAG;IAC/B,IAAI,EAAE,QAAQ,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;CACpB,CAAC,CAAC;AAEP,wBAAgB,0BAA0B,CACzC,gBAAgB,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,EAC5C,gBAAgB,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,GAC3C,qBAAqB,CA2BvB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"findRemoteMatches.d.ts","sourceRoot":"","sources":["../../src/processes/findRemoteMatches.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"findRemoteMatches.d.ts","sourceRoot":"","sources":["../../src/processes/findRemoteMatches.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,YAAY,EAAiC,MAAM,kBAAkB,CAAC;AACvF,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAE9D,eAAO,MAAM,MAAM,0CAAoC,CAAC;AAmBxD,wBAAsB,iBAAiB,CACtC,QAAQ,EAAE,eAAe,EACzB,OAAO,EAAE,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,EACpC,aAAa,EAAE,WAAW,CAAC,MAAM,EAAE,YAAY,CAAC;;;;GAkEhD"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"joinClientProcess.d.ts","sourceRoot":"","sources":["../../src/processes/joinClientProcess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C,MAAM,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,0BAA0B,EAAE,CAAC;IAEtC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;CAC9C,CAAC;AAEF,wBAAgB,uBAAuB,CACtC,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,gBAAgB,GACvB,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"joinClientProcess.d.ts","sourceRoot":"","sources":["../../src/processes/joinClientProcess.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,6BAA6B,CAAC;AAG9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAE9D,OAAO,EAAE,0BAA0B,EAAE,MAAM,iCAAiC,CAAC;AAC7E,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAI3C,MAAM,MAAM,sBAAsB,GAAG;IACpC,OAAO,EAAE,0BAA0B,EAAE,CAAC;IAEtC,gBAAgB,CAAC,EAAE,QAAQ,CAAC,gBAAgB,CAAC,CAAC;CAC9C,CAAC;AAEF,wBAAgB,uBAAuB,CACtC,eAAe,EAAE,eAAe,EAChC,OAAO,EAAE,gBAAgB,GACvB,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAyGlD"}
|
|
@@ -56,6 +56,10 @@ function createJoinClientProcess(storageProvider, reports) {
|
|
|
56
56
|
continue;
|
|
57
57
|
}
|
|
58
58
|
call.clientIds.push(clientId);
|
|
59
|
+
// we can extract the lowest timestamp here
|
|
60
|
+
// const joinedTimestamp
|
|
61
|
+
// for (const observedCall of (evaluatorContext?.observedCalls.getObservedCall(callId)?.getObservedClient(clientId)?.samples() ?? [])) {
|
|
62
|
+
// }
|
|
59
63
|
newClients.set(clientId, new Models.Client({
|
|
60
64
|
serviceId,
|
|
61
65
|
mediaUnitId,
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@observertc/observer-js",
|
|
3
|
-
"version": "0.9.
|
|
3
|
+
"version": "0.9.17-beta",
|
|
4
4
|
"description": "Server Side NodeJS Library for processing ObserveRTC Samples",
|
|
5
5
|
"main": "lib/index.js",
|
|
6
6
|
"types": "lib/index.d.ts",
|
|
@@ -27,8 +27,8 @@
|
|
|
27
27
|
"license": "Apache-2.0",
|
|
28
28
|
"dependencies": {
|
|
29
29
|
"@bufbuild/protobuf": "^1.1.1",
|
|
30
|
-
"@observertc/report-schemas-js": "2.2.
|
|
31
|
-
"@observertc/sample-schemas-js": "2.2.
|
|
30
|
+
"@observertc/report-schemas-js": "2.2.9",
|
|
31
|
+
"@observertc/sample-schemas-js": "2.2.9",
|
|
32
32
|
"@types/events": "^3.0.0",
|
|
33
33
|
"@types/uuid": "^8.3.4",
|
|
34
34
|
"package-lock-only": "^0.0.4",
|
package/src/Observer.ts
CHANGED
|
@@ -9,9 +9,14 @@ import { ObservedClientSource, ObservedClientSourceConfig } from './sources/Obse
|
|
|
9
9
|
import { PartialBy } from './common/utils';
|
|
10
10
|
import { createLogger, LogLevel } from './common/logger';
|
|
11
11
|
import { ObservedSfuSource, ObservedSfuSourceConfig } from './sources/ObservedSfuSource';
|
|
12
|
+
import EventEmitter from 'events';
|
|
12
13
|
|
|
13
14
|
const logger = createLogger('Observer');
|
|
14
15
|
|
|
16
|
+
export type ObserverEvents = {
|
|
17
|
+
'close': undefined,
|
|
18
|
+
}
|
|
19
|
+
|
|
15
20
|
export type ObserverConfig = {
|
|
16
21
|
/**
|
|
17
22
|
*
|
|
@@ -67,6 +72,7 @@ export class Observer {
|
|
|
67
72
|
return new Observer(config, storages, semaphores);
|
|
68
73
|
}
|
|
69
74
|
|
|
75
|
+
private readonly _emitter = new EventEmitter();
|
|
70
76
|
private _sources: Sources;
|
|
71
77
|
private _sink: SinkImpl;
|
|
72
78
|
private _evaluator: Evaluator;
|
|
@@ -95,6 +101,21 @@ export class Observer {
|
|
|
95
101
|
logger.debug(`Observer is created with config`, this.config);
|
|
96
102
|
}
|
|
97
103
|
|
|
104
|
+
public on<K extends keyof ObserverEvents>(event: K, listener: (arg: ObserverEvents[K]) => void): this {
|
|
105
|
+
this._emitter.on(event, listener);
|
|
106
|
+
return this;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
public once<K extends keyof ObserverEvents>(event: K, listener: (arg: ObserverEvents[K]) => void): this {
|
|
110
|
+
this._emitter.once(event, listener);
|
|
111
|
+
return this;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
public off<K extends keyof ObserverEvents>(event: K, listener: (arg: ObserverEvents[K]) => void): this {
|
|
115
|
+
this._emitter.off(event, listener);
|
|
116
|
+
return this;
|
|
117
|
+
}
|
|
118
|
+
|
|
98
119
|
public createCallSource(
|
|
99
120
|
config: PartialBy<ObservedCallSourceConfig, 'serviceId' | 'mediaUnitId'>
|
|
100
121
|
): ObservedCallSource {
|
|
@@ -412,10 +433,12 @@ export class Observer {
|
|
|
412
433
|
|
|
413
434
|
public close() {
|
|
414
435
|
if (this._closed) {
|
|
415
|
-
logger.
|
|
436
|
+
logger.debug(`Attempted to close twice`);
|
|
416
437
|
return;
|
|
417
438
|
}
|
|
418
|
-
this._sources.close();
|
|
419
439
|
this._closed = true;
|
|
440
|
+
this._sources.close();
|
|
441
|
+
|
|
442
|
+
this._emitter.emit('close');
|
|
420
443
|
}
|
|
421
444
|
}
|
package/src/common/utils.ts
CHANGED
|
@@ -6,9 +6,9 @@ export function iteratorConverter<T>(generator: Generator<T, void, undefined>):
|
|
|
6
6
|
return {
|
|
7
7
|
[Symbol.iterator](): IterableIterator<T> {
|
|
8
8
|
return this;
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
},
|
|
10
|
+
next(): IteratorResult<T> {
|
|
11
11
|
return generator.next();
|
|
12
|
-
|
|
12
|
+
},
|
|
13
13
|
}
|
|
14
14
|
}
|
package/src/index.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { InboundAudioTrack, InboundVideoTrack } from "@observertc/sample-schemas-js";
|
|
2
1
|
import { createLogger } from "../common/logger";
|
|
3
2
|
import { Client, InboundTrack, OutboundTrack, PeerConnection } from "../models/Models";
|
|
4
3
|
import { StorageProvider } from "../storages/StorageProvider";
|
|
@@ -19,7 +18,7 @@ function groupToMap<T>(input: ReadonlyMap<string, T>, getGroupKey: (value: T) =>
|
|
|
19
18
|
group.push(value);
|
|
20
19
|
}
|
|
21
20
|
return result;
|
|
22
|
-
}
|
|
21
|
+
}
|
|
23
22
|
|
|
24
23
|
|
|
25
24
|
export async function findRemoteMatches(
|
|
@@ -24,7 +24,6 @@ export function createJoinClientProcess(
|
|
|
24
24
|
if (joinedClients.length < 1) {
|
|
25
25
|
return;
|
|
26
26
|
}
|
|
27
|
-
|
|
28
27
|
const { callStorage, clientStorage } = storageProvider;
|
|
29
28
|
|
|
30
29
|
const callIds = joinedClients.map((c) => c.callId);
|
|
@@ -49,6 +48,12 @@ export function createJoinClientProcess(
|
|
|
49
48
|
continue;
|
|
50
49
|
}
|
|
51
50
|
call.clientIds.push(clientId);
|
|
51
|
+
|
|
52
|
+
// we can extract the lowest timestamp here
|
|
53
|
+
// const joinedTimestamp
|
|
54
|
+
// for (const observedCall of (evaluatorContext?.observedCalls.getObservedCall(callId)?.getObservedClient(clientId)?.samples() ?? [])) {
|
|
55
|
+
|
|
56
|
+
// }
|
|
52
57
|
newClients.set(
|
|
53
58
|
clientId,
|
|
54
59
|
new Models.Client({
|