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.
@@ -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 }, message: parsedMessage.message });
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 label = [id, activeConnection[0]].sort().join('-');
37
+ const ids = [id, activeConnection[0]].sort();
38
+ const label = ids.join('-');
35
39
  const type = 'request';
36
- sendMessage({ message: { isActive: true, label, mask: { client: { id: activeConnection[0] } } }, type });
37
- activeConnection[1]({ message: { isActive: false, mask: { client: { id } } }, type });
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
  });
@@ -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;IAEvC,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,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC;SACrF;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,KAAK,GAAG,CAAC,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YACzD,MAAM,IAAI,GAAG,SAAS,CAAC;YAEvB,WAAW,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,gBAAgB,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;YACzG,gBAAgB,CAAC,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC;SACzF;KACJ;AACL,CAAC,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 label = [id, activeConnection[0]].sort().join('-');
51
+ const ids = [id, activeConnection[0]].sort();
52
+ const label = ids.join('-');
47
53
  const type = 'request';
48
- sendMessage({
49
- message: {
50
- isActive: true,
54
+
55
+ if (ids[0] === id) {
56
+ sendMessage({
57
+ client: {
58
+ id: activeConnection[0]
59
+ },
51
60
  label,
52
- mask: {
53
- client: {
54
- id: activeConnection[0]
55
- }
56
- }
57
- },
58
- type
59
- });
60
- activeConnection[1]({
61
- message: {
62
- isActive: false,
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.14",
22
- "tslib": "^2.3.1",
23
- "typescript": "^4.6.3",
24
- "ws": "^8.5.0",
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.6",
30
- "@babel/core": "^7.17.9",
31
- "@babel/preset-env": "^7.16.11",
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.3",
34
- "@commitlint/config-angular": "^16.2.3",
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.13.0",
41
- "eslint-config-holy-grail": "^52.0.4",
40
+ "eslint": "^8.14.0",
41
+ "eslint-config-holy-grail": "^52.0.10",
42
42
  "husky": "^7.0.4",
43
- "mocha": "^9.2.2",
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.1",
47
+ "sinon": "^13.0.2",
48
48
  "sinon-chai": "^3.7.0",
49
- "tsconfig-holy-grail": "^11.1.28"
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": "3.0.13"
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 }, message: parsedMessage.message });
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 label = [id, activeConnection[0]].sort().join('-');
50
+ const ids = [id, activeConnection[0]].sort();
51
+ const label = ids.join('-');
46
52
  const type = 'request';
47
53
 
48
- sendMessage({ message: { isActive: true, label, mask: { client: { id: activeConnection[0] } } }, type });
49
- activeConnection[1]({ message: { isActive: false, mask: { client: { id } } }, type });
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
  });