timing-provider-server 3.0.13 → 4.0.2
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/es2020/app.js +12 -4
- package/build/es2020/app.js.map +1 -1
- package/build/node/app.js +27 -26
- package/package.json +15 -15
- package/src/app.ts +13 -4
package/build/es2020/app.js
CHANGED
|
@@ -17,24 +17,32 @@ if (commandLineArguments instanceof Promise) {
|
|
|
17
17
|
const { port } = commandLineArguments;
|
|
18
18
|
const activeConnections = new Map();
|
|
19
19
|
const server = new WebSocketServer({ port });
|
|
20
|
+
let origin = 0;
|
|
20
21
|
server.on('connection', (connection) => {
|
|
21
22
|
const id = generateUniqueNumber(activeConnections);
|
|
22
23
|
const sendMessage = (message) => connection.send(JSON.stringify(message));
|
|
23
24
|
activeConnections.set(id, sendMessage);
|
|
25
|
+
sendMessage({ origin, type: 'init' });
|
|
26
|
+
origin += 1;
|
|
24
27
|
connection.on('message', (message) => {
|
|
25
28
|
const parsedMessage = JSON.parse(message.toString());
|
|
26
29
|
const sendMessageToActiveConnection = activeConnections.get(parsedMessage.client.id);
|
|
27
30
|
if (sendMessageToActiveConnection !== undefined) {
|
|
28
|
-
sendMessageToActiveConnection({ client: { id }
|
|
31
|
+
sendMessageToActiveConnection({ ...parsedMessage, client: { id } });
|
|
29
32
|
}
|
|
30
33
|
});
|
|
31
34
|
connection.on('close', () => activeConnections.delete(id));
|
|
32
35
|
for (const activeConnection of activeConnections) {
|
|
33
36
|
if (activeConnection[0] !== id) {
|
|
34
|
-
const
|
|
37
|
+
const ids = [id, activeConnection[0]].sort();
|
|
38
|
+
const label = ids.join('-');
|
|
35
39
|
const type = 'request';
|
|
36
|
-
|
|
37
|
-
|
|
40
|
+
if (ids[0] === id) {
|
|
41
|
+
sendMessage({ client: { id: activeConnection[0] }, label, type });
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
activeConnection[1]({ client: { id }, label, type });
|
|
45
|
+
}
|
|
38
46
|
}
|
|
39
47
|
}
|
|
40
48
|
});
|
package/build/es2020/app.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,oBAAoB,GAAuC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE;KACjF,IAAI,EAAE;KACN,MAAM,CAAC,MAAM,EAAE;IACZ,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,wDAAwD;IAClE,IAAI,EAAE,QAAQ;CACjB,CAAC;KACD,MAAM,EAAE,CAAC,IAAI,CAAC;AAEnB,IAAI,oBAAoB,YAAY,OAAO,EAAE;IACzC,MAAM,IAAI,SAAS,CAAC,sEAAsE,CAAC,CAAC;CAC/F;AAED,MAAM,EAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC;AACtC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAqC,CAAC;AACvE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAE7C,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE;IACnC,MAAM,EAAE,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAElF,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"app.js","sourceRoot":"","sources":["../../src/app.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,IAAI,EAAE,MAAM,SAAS,CAAC;AAC/B,OAAO,EAAE,oBAAoB,EAAE,MAAM,qBAAqB,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,MAAM,IAAI,CAAC;AACrC,OAAO,KAAK,MAAM,OAAO,CAAC;AAG1B,MAAM,oBAAoB,GAAuC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAE;KACjF,IAAI,EAAE;KACN,MAAM,CAAC,MAAM,EAAE;IACZ,OAAO,EAAE,IAAI;IACb,QAAQ,EAAE,wDAAwD;IAClE,IAAI,EAAE,QAAQ;CACjB,CAAC;KACD,MAAM,EAAE,CAAC,IAAI,CAAC;AAEnB,IAAI,oBAAoB,YAAY,OAAO,EAAE;IACzC,MAAM,IAAI,SAAS,CAAC,sEAAsE,CAAC,CAAC;CAC/F;AAED,MAAM,EAAE,IAAI,EAAE,GAAG,oBAAoB,CAAC;AACtC,MAAM,iBAAiB,GAAG,IAAI,GAAG,EAAqC,CAAC;AACvE,MAAM,MAAM,GAAG,IAAI,eAAe,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC;AAE7C,IAAI,MAAM,GAAG,CAAC,CAAC;AAEf,MAAM,CAAC,EAAE,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,EAAE;IACnC,MAAM,EAAE,GAAG,oBAAoB,CAAC,iBAAiB,CAAC,CAAC;IACnD,MAAM,WAAW,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAC,CAAC;IAElF,iBAAiB,CAAC,GAAG,CAAC,EAAE,EAAE,WAAW,CAAC,CAAC;IACvC,WAAW,CAAC,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC;IAEtC,MAAM,IAAI,CAAC,CAAC;IAEZ,UAAU,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC,OAAO,EAAE,EAAE;QACjC,MAAM,aAAa,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;QACrD,MAAM,6BAA6B,GAAG,iBAAiB,CAAC,GAAG,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;QAErF,IAAI,6BAA6B,KAAK,SAAS,EAAE;YAC7C,6BAA6B,CAAC,EAAE,GAAG,aAAa,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAC;SACvE;IACL,CAAC,CAAC,CAAC;IAEH,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,iBAAiB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAE3D,KAAK,MAAM,gBAAgB,IAAI,iBAAiB,EAAE;QAC9C,IAAI,gBAAgB,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;YAC5B,MAAM,GAAG,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;YAC7C,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAC5B,MAAM,IAAI,GAAG,SAAS,CAAC;YAEvB,IAAI,GAAG,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;gBACf,WAAW,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;aACrE;iBAAM;gBACH,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;aACxD;SACJ;KACJ;AACL,CAAC,CAAC,CAAC"}
|
package/build/node/app.js
CHANGED
|
@@ -20,22 +20,27 @@ const activeConnections = new Map();
|
|
|
20
20
|
const server = new WebSocketServer({
|
|
21
21
|
port
|
|
22
22
|
});
|
|
23
|
+
let origin = 0;
|
|
23
24
|
server.on('connection', connection => {
|
|
24
25
|
const id = generateUniqueNumber(activeConnections);
|
|
25
26
|
|
|
26
27
|
const sendMessage = message => connection.send(JSON.stringify(message));
|
|
27
28
|
|
|
28
29
|
activeConnections.set(id, sendMessage);
|
|
30
|
+
sendMessage({
|
|
31
|
+
origin,
|
|
32
|
+
type: 'init'
|
|
33
|
+
});
|
|
34
|
+
origin += 1;
|
|
29
35
|
connection.on('message', message => {
|
|
30
36
|
const parsedMessage = JSON.parse(message.toString());
|
|
31
37
|
const sendMessageToActiveConnection = activeConnections.get(parsedMessage.client.id);
|
|
32
38
|
|
|
33
39
|
if (sendMessageToActiveConnection !== undefined) {
|
|
34
|
-
sendMessageToActiveConnection({
|
|
40
|
+
sendMessageToActiveConnection({ ...parsedMessage,
|
|
35
41
|
client: {
|
|
36
42
|
id
|
|
37
|
-
}
|
|
38
|
-
message: parsedMessage.message
|
|
43
|
+
}
|
|
39
44
|
});
|
|
40
45
|
}
|
|
41
46
|
});
|
|
@@ -43,31 +48,27 @@ server.on('connection', connection => {
|
|
|
43
48
|
|
|
44
49
|
for (const activeConnection of activeConnections) {
|
|
45
50
|
if (activeConnection[0] !== id) {
|
|
46
|
-
const
|
|
51
|
+
const ids = [id, activeConnection[0]].sort();
|
|
52
|
+
const label = ids.join('-');
|
|
47
53
|
const type = 'request';
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
54
|
+
|
|
55
|
+
if (ids[0] === id) {
|
|
56
|
+
sendMessage({
|
|
57
|
+
client: {
|
|
58
|
+
id: activeConnection[0]
|
|
59
|
+
},
|
|
51
60
|
label,
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
mask: {
|
|
64
|
-
client: {
|
|
65
|
-
id
|
|
66
|
-
}
|
|
67
|
-
}
|
|
68
|
-
},
|
|
69
|
-
type
|
|
70
|
-
});
|
|
61
|
+
type
|
|
62
|
+
});
|
|
63
|
+
} else {
|
|
64
|
+
activeConnection[1]({
|
|
65
|
+
client: {
|
|
66
|
+
id
|
|
67
|
+
},
|
|
68
|
+
label,
|
|
69
|
+
type
|
|
70
|
+
});
|
|
71
|
+
}
|
|
71
72
|
}
|
|
72
73
|
}
|
|
73
74
|
});
|
package/package.json
CHANGED
|
@@ -18,35 +18,35 @@
|
|
|
18
18
|
}
|
|
19
19
|
],
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"fast-unique-numbers": "^6.0.
|
|
22
|
-
"tslib": "^2.
|
|
23
|
-
"typescript": "^4.6.
|
|
24
|
-
"ws": "^8.
|
|
21
|
+
"fast-unique-numbers": "^6.0.15",
|
|
22
|
+
"tslib": "^2.4.0",
|
|
23
|
+
"typescript": "^4.6.4",
|
|
24
|
+
"ws": "^8.6.0",
|
|
25
25
|
"yargs": "^17.4.1"
|
|
26
26
|
},
|
|
27
27
|
"description": "A command line tool to spin up a server which can be used with the timing-provider.",
|
|
28
28
|
"devDependencies": {
|
|
29
|
-
"@babel/cli": "^7.17.
|
|
30
|
-
"@babel/core": "^7.17.
|
|
31
|
-
"@babel/preset-env": "^7.
|
|
29
|
+
"@babel/cli": "^7.17.10",
|
|
30
|
+
"@babel/core": "^7.17.10",
|
|
31
|
+
"@babel/preset-env": "^7.17.10",
|
|
32
32
|
"@babel/register": "^7.17.7",
|
|
33
|
-
"@commitlint/cli": "^16.2.
|
|
34
|
-
"@commitlint/config-angular": "^16.2.
|
|
33
|
+
"@commitlint/cli": "^16.2.4",
|
|
34
|
+
"@commitlint/config-angular": "^16.2.4",
|
|
35
35
|
"@types/ws": "^8.5.3",
|
|
36
36
|
"@types/yargs": "^17.0.10",
|
|
37
37
|
"chai": "^4.3.6",
|
|
38
38
|
"commitizen": "^4.2.4",
|
|
39
39
|
"cz-conventional-changelog": "^3.3.0",
|
|
40
|
-
"eslint": "^8.
|
|
41
|
-
"eslint-config-holy-grail": "^52.0.
|
|
40
|
+
"eslint": "^8.14.0",
|
|
41
|
+
"eslint-config-holy-grail": "^52.0.10",
|
|
42
42
|
"husky": "^7.0.4",
|
|
43
|
-
"mocha": "^
|
|
43
|
+
"mocha": "^10.0.0",
|
|
44
44
|
"prettier": "^2.6.2",
|
|
45
45
|
"pretty-quick": "^3.1.3",
|
|
46
46
|
"rimraf": "^3.0.2",
|
|
47
|
-
"sinon": "^13.0.
|
|
47
|
+
"sinon": "^13.0.2",
|
|
48
48
|
"sinon-chai": "^3.7.0",
|
|
49
|
-
"tsconfig-holy-grail": "^11.1.
|
|
49
|
+
"tsconfig-holy-grail": "^11.1.30"
|
|
50
50
|
},
|
|
51
51
|
"engines": {
|
|
52
52
|
"node": ">=12.20.1"
|
|
@@ -85,5 +85,5 @@
|
|
|
85
85
|
"test:unit": "if [ \"$TYPE\" = \"\" -o \"$TYPE\" = \"unit\" ]; then mocha --bail --parallel --recursive --require config/mocha/config-unit.js test/unit; fi"
|
|
86
86
|
},
|
|
87
87
|
"type": "module",
|
|
88
|
-
"version": "
|
|
88
|
+
"version": "4.0.2"
|
|
89
89
|
}
|
package/src/app.ts
CHANGED
|
@@ -23,18 +23,23 @@ const { port } = commandLineArguments;
|
|
|
23
23
|
const activeConnections = new Map<number, (message: object) => void>();
|
|
24
24
|
const server = new WebSocketServer({ port });
|
|
25
25
|
|
|
26
|
+
let origin = 0;
|
|
27
|
+
|
|
26
28
|
server.on('connection', (connection) => {
|
|
27
29
|
const id = generateUniqueNumber(activeConnections);
|
|
28
30
|
const sendMessage = (message: object) => connection.send(JSON.stringify(message));
|
|
29
31
|
|
|
30
32
|
activeConnections.set(id, sendMessage);
|
|
33
|
+
sendMessage({ origin, type: 'init' });
|
|
34
|
+
|
|
35
|
+
origin += 1;
|
|
31
36
|
|
|
32
37
|
connection.on('message', (message) => {
|
|
33
38
|
const parsedMessage = JSON.parse(message.toString());
|
|
34
39
|
const sendMessageToActiveConnection = activeConnections.get(parsedMessage.client.id);
|
|
35
40
|
|
|
36
41
|
if (sendMessageToActiveConnection !== undefined) {
|
|
37
|
-
sendMessageToActiveConnection({ client: { id }
|
|
42
|
+
sendMessageToActiveConnection({ ...parsedMessage, client: { id } });
|
|
38
43
|
}
|
|
39
44
|
});
|
|
40
45
|
|
|
@@ -42,11 +47,15 @@ server.on('connection', (connection) => {
|
|
|
42
47
|
|
|
43
48
|
for (const activeConnection of activeConnections) {
|
|
44
49
|
if (activeConnection[0] !== id) {
|
|
45
|
-
const
|
|
50
|
+
const ids = [id, activeConnection[0]].sort();
|
|
51
|
+
const label = ids.join('-');
|
|
46
52
|
const type = 'request';
|
|
47
53
|
|
|
48
|
-
|
|
49
|
-
|
|
54
|
+
if (ids[0] === id) {
|
|
55
|
+
sendMessage({ client: { id: activeConnection[0] }, label, type });
|
|
56
|
+
} else {
|
|
57
|
+
activeConnection[1]({ client: { id }, label, type });
|
|
58
|
+
}
|
|
50
59
|
}
|
|
51
60
|
}
|
|
52
61
|
});
|