matterbridge 3.3.3-dev-20251012-feda0f1 → 3.3.3-dev-20251014-44bcdc0

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.
@@ -24,10 +24,10 @@ export class BroadcastServer extends EventEmitter {
24
24
  return Math.floor(Math.random() * (999999 - 100000 + 1)) + 100000;
25
25
  }
26
26
  isWorkerRequest(msg, type) {
27
- return typeof msg === 'object' && msg !== null && 'id' in msg && 'type' in msg && msg.type === type && !('response' in msg) && 'src' in msg && 'dst' in msg;
27
+ return typeof msg === 'object' && msg !== null && 'id' in msg && 'timestamp' in msg && 'type' in msg && msg.type === type && !('response' in msg) && 'src' in msg && 'dst' in msg;
28
28
  }
29
29
  isWorkerResponse(msg, type) {
30
- return typeof msg === 'object' && msg !== null && 'id' in msg && 'type' in msg && msg.type === type && 'response' in msg && 'src' in msg && 'dst' in msg;
30
+ return typeof msg === 'object' && msg !== null && 'id' in msg && 'timestamp' in msg && 'type' in msg && msg.type === type && 'response' in msg && 'src' in msg && 'dst' in msg;
31
31
  }
32
32
  broadcastMessageHandler(event) {
33
33
  const data = event.data;
@@ -38,6 +38,9 @@ export class BroadcastServer extends EventEmitter {
38
38
  if (message.id === undefined) {
39
39
  message.id = this.getUniqueId();
40
40
  }
41
+ if (message.timestamp === undefined) {
42
+ message.timestamp = Date.now();
43
+ }
41
44
  if (!this.isWorkerRequest(message, message.type)) {
42
45
  this.log.error(`Invalid request message format for broadcast: ${debugStringify(message)}`);
43
46
  return;
@@ -46,6 +49,9 @@ export class BroadcastServer extends EventEmitter {
46
49
  this.broadcastChannel.postMessage(message);
47
50
  }
48
51
  respond(message) {
52
+ if (message.timestamp === undefined) {
53
+ message.timestamp = Date.now();
54
+ }
49
55
  if (!this.isWorkerResponse(message, message.type)) {
50
56
  this.log.error(`Invalid response message format for broadcast: ${debugStringify(message)}`);
51
57
  return;
@@ -54,6 +60,12 @@ export class BroadcastServer extends EventEmitter {
54
60
  this.broadcastChannel.postMessage(message);
55
61
  }
56
62
  async fetch(message) {
63
+ if (message.id === undefined) {
64
+ message.id = this.getUniqueId();
65
+ }
66
+ if (message.timestamp === undefined) {
67
+ message.timestamp = Date.now();
68
+ }
57
69
  this.log.debug(`*Fetching message: ${debugStringify(message)}`);
58
70
  return new Promise((resolve, reject) => {
59
71
  const responseHandler = (msg) => {
@@ -16,36 +16,34 @@ export class DeviceManager {
16
16
  this.server.close();
17
17
  }
18
18
  async msgHandler(msg) {
19
- if (!this.server.isWorkerRequest(msg, msg.type))
20
- return;
21
- if (!msg.id || (msg.dst !== 'all' && msg.dst !== 'devices'))
22
- return;
23
- this.log.debug(`**Received request message ${CYAN}${msg.type}${db} from ${CYAN}${msg.src}${db}: ${debugStringify(msg)}${db}`);
24
- switch (msg.type) {
25
- case 'devices_length':
26
- this.server.respond({ ...msg, id: msg.id, response: { length: this.length } });
27
- break;
28
- case 'devices_size':
29
- this.server.respond({ ...msg, id: msg.id, response: { size: this.size } });
30
- break;
31
- case 'devices_has':
32
- this.server.respond({ ...msg, id: msg.id, response: { has: this.has(msg.params.uniqueId) } });
33
- break;
34
- case 'devices_get':
35
- this.server.respond({ ...msg, id: msg.id, response: { device: this.get(msg.params.uniqueId) } });
36
- break;
37
- case 'devices_set':
38
- this.server.respond({ ...msg, id: msg.id, response: { device: this.set(msg.params.device) } });
39
- break;
40
- case 'devices_remove':
41
- this.server.respond({ ...msg, id: msg.id, response: { success: this.remove(msg.params.device) } });
42
- break;
43
- case 'devices_clear':
44
- this.clear();
45
- this.server.respond({ ...msg, id: msg.id, response: { success: true } });
46
- break;
47
- default:
48
- this.log.warn(`Unknown broadcast message ${CYAN}${msg.type}${wr} from ${CYAN}${msg.src}${wr}`);
19
+ if (this.server.isWorkerRequest(msg, msg.type) && (msg.dst === 'all' || msg.dst === 'devices')) {
20
+ this.log.debug(`**Received request message ${CYAN}${msg.type}${db} from ${CYAN}${msg.src}${db}: ${debugStringify(msg)}${db}`);
21
+ switch (msg.type) {
22
+ case 'devices_length':
23
+ this.server.respond({ ...msg, response: { length: this.length } });
24
+ break;
25
+ case 'devices_size':
26
+ this.server.respond({ ...msg, response: { size: this.size } });
27
+ break;
28
+ case 'devices_has':
29
+ this.server.respond({ ...msg, response: { has: this.has(msg.params.uniqueId) } });
30
+ break;
31
+ case 'devices_get':
32
+ this.server.respond({ ...msg, response: { device: this.get(msg.params.uniqueId) } });
33
+ break;
34
+ case 'devices_set':
35
+ this.server.respond({ ...msg, response: { device: this.set(msg.params.device) } });
36
+ break;
37
+ case 'devices_remove':
38
+ this.server.respond({ ...msg, response: { success: this.remove(msg.params.device) } });
39
+ break;
40
+ case 'devices_clear':
41
+ this.clear();
42
+ this.server.respond({ ...msg, response: { success: true } });
43
+ break;
44
+ default:
45
+ this.log.warn(`Unknown broadcast message ${CYAN}${msg.type}${wr} from ${CYAN}${msg.src}${wr}`);
46
+ }
49
47
  }
50
48
  }
51
49
  get length() {
package/dist/frontend.js CHANGED
@@ -42,18 +42,16 @@ export class Frontend extends EventEmitter {
42
42
  this.server.close();
43
43
  }
44
44
  async msgHandler(msg) {
45
- if (this.server.isWorkerRequest(msg, msg.type)) {
46
- if (!msg.id || (msg.dst !== 'all' && msg.dst !== 'frontend'))
47
- return;
45
+ if (this.server.isWorkerRequest(msg, msg.type) && (msg.dst === 'all' || msg.dst === 'frontend')) {
48
46
  this.log.debug(`**Received broadcast request ${CYAN}${msg.type}${db} from ${CYAN}${msg.src}${db}: ${debugStringify(msg)}${db}`);
49
47
  switch (msg.type) {
50
48
  case 'frontend_start':
51
49
  await this.start(msg.params.port);
52
- this.server.respond({ ...msg, id: msg.id, response: { success: true } });
50
+ this.server.respond({ ...msg, response: { success: true } });
53
51
  break;
54
52
  case 'frontend_stop':
55
53
  await this.stop();
56
- this.server.respond({ ...msg, id: msg.id, response: { success: true } });
54
+ this.server.respond({ ...msg, response: { success: true } });
57
55
  break;
58
56
  default:
59
57
  this.log.warn(`Unknown broadcast request ${CYAN}${msg.type}${wr} from ${CYAN}${msg.src}${wr}`);
@@ -21,38 +21,36 @@ export class PluginManager extends EventEmitter {
21
21
  this.server.close();
22
22
  }
23
23
  async msgHandler(msg) {
24
- if (!this.server.isWorkerRequest(msg, msg.type))
25
- return;
26
- if (!msg.id || (msg.dst !== 'all' && msg.dst !== 'plugins'))
27
- return;
28
- this.log.debug(`**Received request message ${CYAN}${msg.type}${db} from ${CYAN}${msg.src}${db}: ${debugStringify(msg)}${db}`);
29
- switch (msg.type) {
30
- case 'plugins_length':
31
- this.server.respond({ ...msg, id: msg.id, response: { length: this.length } });
32
- break;
33
- case 'plugins_size':
34
- this.server.respond({ ...msg, id: msg.id, response: { size: this.size } });
35
- break;
36
- case 'plugins_has':
37
- this.server.respond({ ...msg, id: msg.id, response: { has: this.has(msg.params.name) } });
38
- break;
39
- case 'plugins_get':
40
- this.server.respond({ ...msg, id: msg.id, response: { plugin: this.get(msg.params.name) } });
41
- break;
42
- case 'plugins_set':
43
- this.server.respond({ ...msg, id: msg.id, response: { plugin: this.set(msg.params.plugin) } });
44
- break;
45
- case 'plugins_baseArray':
46
- this.server.respond({ ...msg, id: msg.id, response: { plugins: this.baseArray() } });
47
- break;
48
- case 'plugins_install':
49
- this.server.respond({ ...msg, id: msg.id, response: { packageName: msg.params.packageName, success: await this.install(msg.params.packageName) } });
50
- break;
51
- case 'plugins_uninstall':
52
- this.server.respond({ ...msg, id: msg.id, response: { packageName: msg.params.packageName, success: await this.uninstall(msg.params.packageName) } });
53
- break;
54
- default:
55
- this.log.warn(`Unknown broadcast message ${CYAN}${msg.type}${wr} from ${CYAN}${msg.src}${wr}`);
24
+ if (this.server.isWorkerRequest(msg, msg.type) && (msg.dst === 'all' || msg.dst === 'plugins')) {
25
+ this.log.debug(`**Received request message ${CYAN}${msg.type}${db} from ${CYAN}${msg.src}${db}: ${debugStringify(msg)}${db}`);
26
+ switch (msg.type) {
27
+ case 'plugins_length':
28
+ this.server.respond({ ...msg, response: { length: this.length } });
29
+ break;
30
+ case 'plugins_size':
31
+ this.server.respond({ ...msg, response: { size: this.size } });
32
+ break;
33
+ case 'plugins_has':
34
+ this.server.respond({ ...msg, response: { has: this.has(msg.params.name) } });
35
+ break;
36
+ case 'plugins_get':
37
+ this.server.respond({ ...msg, response: { plugin: this.get(msg.params.name) } });
38
+ break;
39
+ case 'plugins_set':
40
+ this.server.respond({ ...msg, response: { plugin: this.set(msg.params.plugin) } });
41
+ break;
42
+ case 'plugins_baseArray':
43
+ this.server.respond({ ...msg, response: { plugins: this.baseArray() } });
44
+ break;
45
+ case 'plugins_install':
46
+ this.server.respond({ ...msg, response: { packageName: msg.params.packageName, success: await this.install(msg.params.packageName) } });
47
+ break;
48
+ case 'plugins_uninstall':
49
+ this.server.respond({ ...msg, response: { packageName: msg.params.packageName, success: await this.uninstall(msg.params.packageName) } });
50
+ break;
51
+ default:
52
+ this.log.warn(`Unknown broadcast message ${CYAN}${msg.type}${wr} from ${CYAN}${msg.src}${wr}`);
53
+ }
56
54
  }
57
55
  }
58
56
  get length() {
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "matterbridge",
3
- "version": "3.3.3-dev-20251012-feda0f1",
3
+ "version": "3.3.3-dev-20251014-44bcdc0",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "matterbridge",
9
- "version": "3.3.3-dev-20251012-feda0f1",
9
+ "version": "3.3.3-dev-20251014-44bcdc0",
10
10
  "license": "Apache-2.0",
11
11
  "dependencies": {
12
12
  "@matter/main": "0.15.5",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "matterbridge",
3
- "version": "3.3.3-dev-20251012-feda0f1",
3
+ "version": "3.3.3-dev-20251014-44bcdc0",
4
4
  "description": "Matterbridge plugin manager for Matter",
5
5
  "author": "https://github.com/Luligu",
6
6
  "license": "Apache-2.0",