@matterbridge/core 3.5.3 → 3.5.4-dev-20260211-c4f9359
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/README.md +1 -1
- package/dist/cli.d.ts +0 -24
- package/dist/cli.js +1 -97
- package/dist/cliEmitter.d.ts +0 -36
- package/dist/cliEmitter.js +0 -37
- package/dist/cliHistory.d.ts +0 -42
- package/dist/cliHistory.js +0 -38
- package/dist/clusters/export.d.ts +0 -1
- package/dist/clusters/export.js +0 -2
- package/dist/deviceManager.d.ts +0 -108
- package/dist/deviceManager.js +1 -114
- package/dist/devices/airConditioner.d.ts +0 -75
- package/dist/devices/airConditioner.js +0 -57
- package/dist/devices/basicVideoPlayer.d.ts +0 -58
- package/dist/devices/basicVideoPlayer.js +1 -56
- package/dist/devices/batteryStorage.d.ts +0 -43
- package/dist/devices/batteryStorage.js +1 -48
- package/dist/devices/castingVideoPlayer.d.ts +0 -63
- package/dist/devices/castingVideoPlayer.js +2 -65
- package/dist/devices/cooktop.d.ts +0 -55
- package/dist/devices/cooktop.js +0 -56
- package/dist/devices/dishwasher.d.ts +0 -55
- package/dist/devices/dishwasher.js +0 -57
- package/dist/devices/evse.d.ts +0 -57
- package/dist/devices/evse.js +10 -74
- package/dist/devices/export.d.ts +0 -1
- package/dist/devices/export.js +0 -5
- package/dist/devices/extractorHood.d.ts +0 -41
- package/dist/devices/extractorHood.js +0 -43
- package/dist/devices/heatPump.d.ts +0 -43
- package/dist/devices/heatPump.js +2 -50
- package/dist/devices/laundryDryer.d.ts +0 -58
- package/dist/devices/laundryDryer.js +3 -62
- package/dist/devices/laundryWasher.d.ts +0 -64
- package/dist/devices/laundryWasher.js +4 -70
- package/dist/devices/microwaveOven.d.ts +1 -77
- package/dist/devices/microwaveOven.js +5 -88
- package/dist/devices/oven.d.ts +0 -82
- package/dist/devices/oven.js +0 -85
- package/dist/devices/refrigerator.d.ts +0 -100
- package/dist/devices/refrigerator.js +0 -102
- package/dist/devices/roboticVacuumCleaner.d.ts +0 -83
- package/dist/devices/roboticVacuumCleaner.js +9 -100
- package/dist/devices/solarPower.d.ts +0 -36
- package/dist/devices/solarPower.js +0 -38
- package/dist/devices/speaker.d.ts +0 -79
- package/dist/devices/speaker.js +0 -84
- package/dist/devices/temperatureControl.d.ts +0 -21
- package/dist/devices/temperatureControl.js +3 -24
- package/dist/devices/waterHeater.d.ts +0 -74
- package/dist/devices/waterHeater.js +2 -82
- package/dist/dgram/export.d.ts +0 -1
- package/dist/dgram/export.js +0 -1
- package/dist/export.d.ts +0 -23
- package/dist/export.js +0 -28
- package/dist/frontend.d.ts +0 -187
- package/dist/frontend.js +38 -539
- package/dist/helpers.d.ts +0 -43
- package/dist/helpers.js +0 -86
- package/dist/jestutils/export.d.ts +0 -1
- package/dist/jestutils/export.js +0 -1
- package/dist/jestutils/jestHelpers.d.ts +0 -259
- package/dist/jestutils/jestHelpers.js +14 -395
- package/dist/matter/behaviors.d.ts +0 -1
- package/dist/matter/behaviors.js +0 -2
- package/dist/matter/clusters.d.ts +0 -1
- package/dist/matter/clusters.js +0 -2
- package/dist/matter/devices.d.ts +0 -1
- package/dist/matter/devices.js +0 -2
- package/dist/matter/endpoints.d.ts +0 -1
- package/dist/matter/endpoints.js +0 -2
- package/dist/matter/export.d.ts +0 -1
- package/dist/matter/export.js +0 -2
- package/dist/matter/types.d.ts +0 -1
- package/dist/matter/types.js +0 -2
- package/dist/matterNode.d.ts +0 -258
- package/dist/matterNode.js +8 -356
- package/dist/matterbridge.d.ts +0 -389
- package/dist/matterbridge.js +48 -878
- package/dist/matterbridgeAccessoryPlatform.d.ts +0 -42
- package/dist/matterbridgeAccessoryPlatform.js +0 -50
- package/dist/matterbridgeBehaviors.d.ts +0 -24
- package/dist/matterbridgeBehaviors.js +5 -65
- package/dist/matterbridgeDeviceTypes.d.ts +0 -649
- package/dist/matterbridgeDeviceTypes.js +6 -673
- package/dist/matterbridgeDynamicPlatform.d.ts +0 -42
- package/dist/matterbridgeDynamicPlatform.js +0 -50
- package/dist/matterbridgeEndpoint.d.ts +0 -1369
- package/dist/matterbridgeEndpoint.js +56 -1514
- package/dist/matterbridgeEndpointHelpers.d.ts +0 -425
- package/dist/matterbridgeEndpointHelpers.js +20 -483
- package/dist/matterbridgeEndpointTypes.d.ts +0 -70
- package/dist/matterbridgeEndpointTypes.js +0 -25
- package/dist/matterbridgePlatform.d.ts +0 -434
- package/dist/matterbridgePlatform.js +1 -473
- package/dist/mb_coap.d.ts +0 -23
- package/dist/mb_coap.js +3 -41
- package/dist/mb_health.d.ts +0 -67
- package/dist/mb_health.js +0 -70
- package/dist/mb_mdns.d.ts +0 -23
- package/dist/mb_mdns.js +36 -94
- package/dist/pluginManager.d.ts +0 -307
- package/dist/pluginManager.js +6 -346
- package/dist/spawn.d.ts +0 -32
- package/dist/spawn.js +1 -71
- package/dist/utils/export.d.ts +0 -1
- package/dist/utils/export.js +0 -1
- package/package.json +27 -6
- package/dist/cli.d.ts.map +0 -1
- package/dist/cli.js.map +0 -1
- package/dist/cliEmitter.d.ts.map +0 -1
- package/dist/cliEmitter.js.map +0 -1
- package/dist/cliHistory.d.ts.map +0 -1
- package/dist/cliHistory.js.map +0 -1
- package/dist/clusters/export.d.ts.map +0 -1
- package/dist/clusters/export.js.map +0 -1
- package/dist/crypto/attestationDecoder.d.ts +0 -180
- package/dist/crypto/attestationDecoder.d.ts.map +0 -1
- package/dist/crypto/attestationDecoder.js +0 -176
- package/dist/crypto/attestationDecoder.js.map +0 -1
- package/dist/crypto/declarationDecoder.d.ts +0 -72
- package/dist/crypto/declarationDecoder.d.ts.map +0 -1
- package/dist/crypto/declarationDecoder.js +0 -241
- package/dist/crypto/declarationDecoder.js.map +0 -1
- package/dist/crypto/extract/342/200/220cert/342/200/220extensions.d.ts +0 -9
- package/dist/crypto/extract/342/200/220cert/342/200/220extensions.d.ts.map +0 -1
- package/dist/crypto/extract/342/200/220cert/342/200/220extensions.js +0 -120
- package/dist/crypto/extract/342/200/220cert/342/200/220extensions.js.map +0 -1
- package/dist/crypto/read-extensions.d.ts +0 -2
- package/dist/crypto/read-extensions.d.ts.map +0 -1
- package/dist/crypto/read-extensions.js +0 -81
- package/dist/crypto/read-extensions.js.map +0 -1
- package/dist/crypto/testData.d.ts +0 -31
- package/dist/crypto/testData.d.ts.map +0 -1
- package/dist/crypto/testData.js +0 -131
- package/dist/crypto/testData.js.map +0 -1
- package/dist/crypto/walk-der.d.ts +0 -2
- package/dist/crypto/walk-der.d.ts.map +0 -1
- package/dist/crypto/walk-der.js +0 -165
- package/dist/crypto/walk-der.js.map +0 -1
- package/dist/deviceManager.d.ts.map +0 -1
- package/dist/deviceManager.js.map +0 -1
- package/dist/devices/airConditioner.d.ts.map +0 -1
- package/dist/devices/airConditioner.js.map +0 -1
- package/dist/devices/basicVideoPlayer.d.ts.map +0 -1
- package/dist/devices/basicVideoPlayer.js.map +0 -1
- package/dist/devices/batteryStorage.d.ts.map +0 -1
- package/dist/devices/batteryStorage.js.map +0 -1
- package/dist/devices/castingVideoPlayer.d.ts.map +0 -1
- package/dist/devices/castingVideoPlayer.js.map +0 -1
- package/dist/devices/cooktop.d.ts.map +0 -1
- package/dist/devices/cooktop.js.map +0 -1
- package/dist/devices/dishwasher.d.ts.map +0 -1
- package/dist/devices/dishwasher.js.map +0 -1
- package/dist/devices/evse.d.ts.map +0 -1
- package/dist/devices/evse.js.map +0 -1
- package/dist/devices/export.d.ts.map +0 -1
- package/dist/devices/export.js.map +0 -1
- package/dist/devices/extractorHood.d.ts.map +0 -1
- package/dist/devices/extractorHood.js.map +0 -1
- package/dist/devices/heatPump.d.ts.map +0 -1
- package/dist/devices/heatPump.js.map +0 -1
- package/dist/devices/laundryDryer.d.ts.map +0 -1
- package/dist/devices/laundryDryer.js.map +0 -1
- package/dist/devices/laundryWasher.d.ts.map +0 -1
- package/dist/devices/laundryWasher.js.map +0 -1
- package/dist/devices/microwaveOven.d.ts.map +0 -1
- package/dist/devices/microwaveOven.js.map +0 -1
- package/dist/devices/oven.d.ts.map +0 -1
- package/dist/devices/oven.js.map +0 -1
- package/dist/devices/refrigerator.d.ts.map +0 -1
- package/dist/devices/refrigerator.js.map +0 -1
- package/dist/devices/roboticVacuumCleaner.d.ts.map +0 -1
- package/dist/devices/roboticVacuumCleaner.js.map +0 -1
- package/dist/devices/solarPower.d.ts.map +0 -1
- package/dist/devices/solarPower.js.map +0 -1
- package/dist/devices/speaker.d.ts.map +0 -1
- package/dist/devices/speaker.js.map +0 -1
- package/dist/devices/temperatureControl.d.ts.map +0 -1
- package/dist/devices/temperatureControl.js.map +0 -1
- package/dist/devices/waterHeater.d.ts.map +0 -1
- package/dist/devices/waterHeater.js.map +0 -1
- package/dist/dgram/export.d.ts.map +0 -1
- package/dist/dgram/export.js.map +0 -1
- package/dist/export.d.ts.map +0 -1
- package/dist/export.js.map +0 -1
- package/dist/frontend.d.ts.map +0 -1
- package/dist/frontend.js.map +0 -1
- package/dist/helpers.d.ts.map +0 -1
- package/dist/helpers.js.map +0 -1
- package/dist/jestutils/export.d.ts.map +0 -1
- package/dist/jestutils/export.js.map +0 -1
- package/dist/jestutils/jestHelpers.d.ts.map +0 -1
- package/dist/jestutils/jestHelpers.js.map +0 -1
- package/dist/matter/behaviors.d.ts.map +0 -1
- package/dist/matter/behaviors.js.map +0 -1
- package/dist/matter/clusters.d.ts.map +0 -1
- package/dist/matter/clusters.js.map +0 -1
- package/dist/matter/devices.d.ts.map +0 -1
- package/dist/matter/devices.js.map +0 -1
- package/dist/matter/endpoints.d.ts.map +0 -1
- package/dist/matter/endpoints.js.map +0 -1
- package/dist/matter/export.d.ts.map +0 -1
- package/dist/matter/export.js.map +0 -1
- package/dist/matter/types.d.ts.map +0 -1
- package/dist/matter/types.js.map +0 -1
- package/dist/matterNode.d.ts.map +0 -1
- package/dist/matterNode.js.map +0 -1
- package/dist/matterbridge.d.ts.map +0 -1
- package/dist/matterbridge.js.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +0 -1
- package/dist/matterbridgeAccessoryPlatform.js.map +0 -1
- package/dist/matterbridgeBehaviors.d.ts.map +0 -1
- package/dist/matterbridgeBehaviors.js.map +0 -1
- package/dist/matterbridgeDeviceTypes.d.ts.map +0 -1
- package/dist/matterbridgeDeviceTypes.js.map +0 -1
- package/dist/matterbridgeDynamicPlatform.d.ts.map +0 -1
- package/dist/matterbridgeDynamicPlatform.js.map +0 -1
- package/dist/matterbridgeEndpoint.d.ts.map +0 -1
- package/dist/matterbridgeEndpoint.js.map +0 -1
- package/dist/matterbridgeEndpointHelpers.d.ts.map +0 -1
- package/dist/matterbridgeEndpointHelpers.js.map +0 -1
- package/dist/matterbridgeEndpointTypes.d.ts.map +0 -1
- package/dist/matterbridgeEndpointTypes.js.map +0 -1
- package/dist/matterbridgePlatform.d.ts.map +0 -1
- package/dist/matterbridgePlatform.js.map +0 -1
- package/dist/mb_coap.d.ts.map +0 -1
- package/dist/mb_coap.js.map +0 -1
- package/dist/mb_health.d.ts.map +0 -1
- package/dist/mb_health.js.map +0 -1
- package/dist/mb_mdns.d.ts.map +0 -1
- package/dist/mb_mdns.js.map +0 -1
- package/dist/pluginManager.d.ts.map +0 -1
- package/dist/pluginManager.js.map +0 -1
- package/dist/spawn.d.ts.map +0 -1
- package/dist/spawn.js.map +0 -1
- package/dist/utils/export.d.ts.map +0 -1
- package/dist/utils/export.js.map +0 -1
- package/dist/workers/brand.d.ts +0 -25
- package/dist/workers/brand.d.ts.map +0 -1
- package/dist/workers/brand.extend.d.ts +0 -10
- package/dist/workers/brand.extend.d.ts.map +0 -1
- package/dist/workers/brand.extend.js +0 -15
- package/dist/workers/brand.extend.js.map +0 -1
- package/dist/workers/brand.invalid.d.ts +0 -9
- package/dist/workers/brand.invalid.d.ts.map +0 -1
- package/dist/workers/brand.invalid.js +0 -19
- package/dist/workers/brand.invalid.js.map +0 -1
- package/dist/workers/brand.js +0 -67
- package/dist/workers/brand.js.map +0 -1
- package/dist/workers/clusterTypes.d.ts +0 -47
- package/dist/workers/clusterTypes.d.ts.map +0 -1
- package/dist/workers/clusterTypes.js +0 -57
- package/dist/workers/clusterTypes.js.map +0 -1
- package/dist/workers/frontendWorker.d.ts +0 -2
- package/dist/workers/frontendWorker.d.ts.map +0 -1
- package/dist/workers/frontendWorker.js +0 -90
- package/dist/workers/frontendWorker.js.map +0 -1
- package/dist/workers/helloWorld.d.ts +0 -2
- package/dist/workers/helloWorld.d.ts.map +0 -1
- package/dist/workers/helloWorld.js +0 -135
- package/dist/workers/helloWorld.js.map +0 -1
- package/dist/workers/matterWorker.d.ts +0 -2
- package/dist/workers/matterWorker.d.ts.map +0 -1
- package/dist/workers/matterWorker.js +0 -104
- package/dist/workers/matterWorker.js.map +0 -1
- package/dist/workers/matterbridgeWorker.d.ts +0 -2
- package/dist/workers/matterbridgeWorker.d.ts.map +0 -1
- package/dist/workers/matterbridgeWorker.js +0 -75
- package/dist/workers/matterbridgeWorker.js.map +0 -1
- package/dist/workers/messageLab.d.ts +0 -134
- package/dist/workers/messageLab.d.ts.map +0 -1
- package/dist/workers/messageLab.js +0 -129
- package/dist/workers/messageLab.js.map +0 -1
- package/dist/workers/testWorker.d.ts +0 -2
- package/dist/workers/testWorker.d.ts.map +0 -1
- package/dist/workers/testWorker.js +0 -45
- package/dist/workers/testWorker.js.map +0 -1
- package/dist/workers/usage.d.ts +0 -19
- package/dist/workers/usage.d.ts.map +0 -1
- package/dist/workers/usage.js +0 -140
- package/dist/workers/usage.js.map +0 -1
- package/dist/workers/workerManager.d.ts +0 -115
- package/dist/workers/workerManager.d.ts.map +0 -1
- package/dist/workers/workerManager.js +0 -464
- package/dist/workers/workerManager.js.map +0 -1
- package/dist/workers/workerServer.d.ts +0 -126
- package/dist/workers/workerServer.d.ts.map +0 -1
- package/dist/workers/workerServer.js +0 -340
- package/dist/workers/workerServer.js.map +0 -1
- package/dist/workers/workerTypes.d.ts +0 -23
- package/dist/workers/workerTypes.d.ts.map +0 -1
- package/dist/workers/workerTypes.js +0 -3
- package/dist/workers/workerTypes.js.map +0 -1
|
@@ -1,340 +0,0 @@
|
|
|
1
|
-
import { threadId, isMainThread } from 'node:worker_threads';
|
|
2
|
-
import { EventEmitter } from 'node:events';
|
|
3
|
-
import { AnsiLogger, CYAN, db, debugStringify, er, REVERSE, REVERSEOFF } from 'node-ansi-logger';
|
|
4
|
-
import { hasParameter, logError, Tracker } from '@matterbridge/utils';
|
|
5
|
-
export class WorkerServer extends EventEmitter {
|
|
6
|
-
log;
|
|
7
|
-
name;
|
|
8
|
-
matterbridge;
|
|
9
|
-
color;
|
|
10
|
-
parentPort;
|
|
11
|
-
managerPort;
|
|
12
|
-
broadcastChannel = new BroadcastChannel('broadcast-channel');
|
|
13
|
-
debug = hasParameter('debug') || hasParameter('verbose');
|
|
14
|
-
verbose = hasParameter('verbose');
|
|
15
|
-
tracker;
|
|
16
|
-
constructor(name, parentPort, workerData) {
|
|
17
|
-
super();
|
|
18
|
-
this.name = name;
|
|
19
|
-
if (!parentPort)
|
|
20
|
-
throw new Error(`WorkerServer ${name}: parentPort is not available. This worker must be started by a parent.`);
|
|
21
|
-
this.parentPort = parentPort;
|
|
22
|
-
if (!workerData.managerPort)
|
|
23
|
-
throw new Error('MatterbridgeWorker: managerPort is not available in WorkerData.');
|
|
24
|
-
this.managerPort = workerData.managerPort;
|
|
25
|
-
if (!workerData.matterbridge)
|
|
26
|
-
throw new Error('MatterbridgeWorker: matterbridge is not available in WorkerData.');
|
|
27
|
-
this.matterbridge = workerData.matterbridge;
|
|
28
|
-
this.color = workerData.color;
|
|
29
|
-
this.debug = workerData.debug || false;
|
|
30
|
-
this.log = new AnsiLogger({
|
|
31
|
-
logName: name + REVERSE + '#' + threadId + REVERSEOFF,
|
|
32
|
-
logTimestampFormat: 4 /* TimestampFormat.TIME_MILLIS */,
|
|
33
|
-
logLevel: this.debug ? "debug" /* LogLevel.DEBUG */ : "info" /* LogLevel.INFO */,
|
|
34
|
-
});
|
|
35
|
-
if (this.color)
|
|
36
|
-
this.log.logNameColor = `\x1b[38;5;${this.color}m`;
|
|
37
|
-
this.tracker = new Tracker(name, this.debug, false);
|
|
38
|
-
// @ts-expect-error accessing private property
|
|
39
|
-
this.tracker.log.logNameColor = this.log.logNameColor;
|
|
40
|
-
this.log.debug(`WorkerServer creating ${name} threadId ${CYAN}${threadId}${db} and pid ${CYAN}${process.pid}${db} (${isMainThread ? 'main' : 'worker'} thread)...`);
|
|
41
|
-
// this.log.debug(`WorkerServer creating ${name} with argv ${debugStringify(process.argv)}${db}...`);
|
|
42
|
-
// this.log.debug(`WorkerServer creating ${name} with env ${debugStringify(process.env)}${db}...`);
|
|
43
|
-
// Listen for control messages from manager (parentPort)
|
|
44
|
-
this.parentPort.on('message', this.controlMessageHandler.bind(this));
|
|
45
|
-
// Listen for worker messages from manager (managerPort)
|
|
46
|
-
this.managerPort.on('message', this.managerMessageHandler.bind(this));
|
|
47
|
-
// Listen for broadcast messages from other workers (broadcastChannel)
|
|
48
|
-
this.broadcastChannel.onmessage = this.broadcastMessageHandler.bind(this);
|
|
49
|
-
this.log.debug(`WorkerServer created ${name}`);
|
|
50
|
-
}
|
|
51
|
-
controlMessageHandler(msg) {
|
|
52
|
-
// this.log.debug(`WorkerServer ${this.name} received control message: ${debugStringify(msg)}`);
|
|
53
|
-
switch (msg.type) {
|
|
54
|
-
case 'init':
|
|
55
|
-
this.log.debug(`WorkerServer ${this.name} received init`);
|
|
56
|
-
this.tracker.start();
|
|
57
|
-
break;
|
|
58
|
-
case 'ping':
|
|
59
|
-
// this.log.debug(`WorkerServer ${this.name}: received ping`);
|
|
60
|
-
this.parentPost({ type: 'pong' });
|
|
61
|
-
this.tracker.runGarbageCollector('major');
|
|
62
|
-
this.tracker.runGarbageCollector('minor');
|
|
63
|
-
break;
|
|
64
|
-
case 'exit':
|
|
65
|
-
this.log.debug(`WorkerServer ${this.name} received exit`);
|
|
66
|
-
this.tracker.stop();
|
|
67
|
-
break;
|
|
68
|
-
}
|
|
69
|
-
this.emit('control_message', msg);
|
|
70
|
-
}
|
|
71
|
-
managerMessageHandler(message) {
|
|
72
|
-
// this.log.debug(`WorkerServer ${this.name} received manager message: ${debugStringify(message)}`);
|
|
73
|
-
this.emit('manager_message', message);
|
|
74
|
-
}
|
|
75
|
-
broadcastMessageHandler(event) {
|
|
76
|
-
// this.log.debug(`WorkerServer ${this.name} received broadcast message: ${debugStringify(event.data)}`);
|
|
77
|
-
this.emit('broadcast_message', event.data);
|
|
78
|
-
}
|
|
79
|
-
/**
|
|
80
|
-
* Generate a pseudo-random identifier between 100,000,000 and 999,999,999.
|
|
81
|
-
*
|
|
82
|
-
* @returns {number} A nine-digit identifier.
|
|
83
|
-
*/
|
|
84
|
-
getUniqueId() {
|
|
85
|
-
return Math.floor(Math.random() * 900000000) + 100000000;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Type guard to verify a value matches the WorkerMessageRequest structure.
|
|
89
|
-
*
|
|
90
|
-
* @param {unknown} value Value to test.
|
|
91
|
-
* @returns {value is WorkerMessageRequest} True when the value looks like a request message.
|
|
92
|
-
*/
|
|
93
|
-
isWorkerRequest(value) {
|
|
94
|
-
if (typeof value !== 'object' || value === null) {
|
|
95
|
-
return false;
|
|
96
|
-
}
|
|
97
|
-
const message = value;
|
|
98
|
-
if (typeof message.type !== 'string' ||
|
|
99
|
-
typeof message.src !== 'string' ||
|
|
100
|
-
typeof message.dst !== 'string' ||
|
|
101
|
-
typeof message.id !== 'number' ||
|
|
102
|
-
typeof message.timestamp !== 'number') {
|
|
103
|
-
return false;
|
|
104
|
-
}
|
|
105
|
-
return message.result === undefined && message.error === undefined;
|
|
106
|
-
}
|
|
107
|
-
/**
|
|
108
|
-
* Type guard to verify a value matches a specific WorkerMessageRequest structure.
|
|
109
|
-
*
|
|
110
|
-
* @param {unknown} value Value to test.
|
|
111
|
-
* @param {K} type Worker message type to match.
|
|
112
|
-
* @returns {value is WorkerMessageRequest<K>} True when the value looks like a request message of the requested type.
|
|
113
|
-
*/
|
|
114
|
-
isWorkerRequestOfType(value, type) {
|
|
115
|
-
return this.isWorkerRequest(value) && value.type === type;
|
|
116
|
-
}
|
|
117
|
-
/**
|
|
118
|
-
* Type guard to verify a value matches the WorkerMessageResponse structure.
|
|
119
|
-
*
|
|
120
|
-
* @param {unknown} value Value to test.
|
|
121
|
-
* @returns {value is WorkerMessageResponse} True when the value looks like a response message.
|
|
122
|
-
*/
|
|
123
|
-
isWorkerResponse(value) {
|
|
124
|
-
if (typeof value !== 'object' || value === null) {
|
|
125
|
-
return false;
|
|
126
|
-
}
|
|
127
|
-
const message = value;
|
|
128
|
-
if (typeof message.type !== 'string' ||
|
|
129
|
-
typeof message.src !== 'string' ||
|
|
130
|
-
typeof message.dst !== 'string' ||
|
|
131
|
-
typeof message.id !== 'number' ||
|
|
132
|
-
typeof message.timestamp !== 'number') {
|
|
133
|
-
return false;
|
|
134
|
-
}
|
|
135
|
-
const hasError = typeof message.error === 'string';
|
|
136
|
-
const hasResult = message.result !== undefined;
|
|
137
|
-
return hasError !== hasResult;
|
|
138
|
-
}
|
|
139
|
-
/**
|
|
140
|
-
* Type guard to verify a value matches a specific WorkerMessageResponse structure.
|
|
141
|
-
*
|
|
142
|
-
* @param {unknown} value Value to test.
|
|
143
|
-
* @param {K} type Worker message type to match.
|
|
144
|
-
* @returns {value is WorkerMessageResponse<K>} True when the value looks like a response message of the requested type.
|
|
145
|
-
*/
|
|
146
|
-
isWorkerResponseOfType(value, type) {
|
|
147
|
-
return this.isWorkerResponse(value) && value.type === type;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Exits the worker process.
|
|
151
|
-
*
|
|
152
|
-
* This method sends an exit message to the parent, closes all ports and channels, and then exits the process with the given code.
|
|
153
|
-
*
|
|
154
|
-
* @param {number} code - The exit code (0 for success, non-zero for failure).
|
|
155
|
-
*/
|
|
156
|
-
exit(code) {
|
|
157
|
-
this.log.debug(`WorkerServer ${this.name} exiting...`);
|
|
158
|
-
this.parentPost({ type: 'exit', success: true });
|
|
159
|
-
this.parentPort?.close();
|
|
160
|
-
this.managerPort.close();
|
|
161
|
-
this.broadcastChannel.close();
|
|
162
|
-
setTimeout(() => {
|
|
163
|
-
if (WorkerServer.logKeepAlives(this.log)) {
|
|
164
|
-
this.log.warn(`WorkerServer ${this.name} has active handles/requests. Forcing exit.`);
|
|
165
|
-
// eslint-disable-next-line n/no-process-exit
|
|
166
|
-
process.exit(code);
|
|
167
|
-
}
|
|
168
|
-
}, 100);
|
|
169
|
-
}
|
|
170
|
-
/**
|
|
171
|
-
* Sends a control message to the parent through parentPort
|
|
172
|
-
*
|
|
173
|
-
* @param {ControlMessage} message - The control message to send.
|
|
174
|
-
*/
|
|
175
|
-
parentPost(message) {
|
|
176
|
-
if (!this.parentPort)
|
|
177
|
-
throw new Error(`WorkerServer ${this.name}: parentPort is not available.`);
|
|
178
|
-
this.parentPort.postMessage(message);
|
|
179
|
-
}
|
|
180
|
-
/**
|
|
181
|
-
* Sends a message to the manager
|
|
182
|
-
*
|
|
183
|
-
* @param {WorkerMessage} message - The message to send.
|
|
184
|
-
*/
|
|
185
|
-
managerPost(message) {
|
|
186
|
-
this.managerPort.postMessage(message);
|
|
187
|
-
}
|
|
188
|
-
/**
|
|
189
|
-
* Broadcast a message to all workers.
|
|
190
|
-
*
|
|
191
|
-
* @param {WorkerMessage} message - The message to broadcast.
|
|
192
|
-
*/
|
|
193
|
-
broadcast(message) {
|
|
194
|
-
if (this.verbose)
|
|
195
|
-
this.log.debug(`Broadcasting message: ${debugStringify(message)}`);
|
|
196
|
-
this.broadcastChannel.postMessage(message);
|
|
197
|
-
}
|
|
198
|
-
/**
|
|
199
|
-
* Send a request message from the worker implementation.
|
|
200
|
-
*
|
|
201
|
-
* @template K
|
|
202
|
-
* @param {WorkerMessageRequest<K>} message The request message to send.
|
|
203
|
-
* @returns {void}
|
|
204
|
-
*/
|
|
205
|
-
request(message) {
|
|
206
|
-
if (message.id === undefined) {
|
|
207
|
-
message.id = this.getUniqueId();
|
|
208
|
-
}
|
|
209
|
-
if (message.timestamp === undefined) {
|
|
210
|
-
message.timestamp = Date.now();
|
|
211
|
-
}
|
|
212
|
-
if (!this.isWorkerRequest(message)) {
|
|
213
|
-
this.log.error(`Invalid request message format for broadcast: ${debugStringify(message)}`);
|
|
214
|
-
return;
|
|
215
|
-
}
|
|
216
|
-
if (this.verbose)
|
|
217
|
-
this.log.debug(`Broadcasting request message: ${debugStringify(message)}`);
|
|
218
|
-
try {
|
|
219
|
-
this.broadcastChannel.postMessage(message);
|
|
220
|
-
}
|
|
221
|
-
catch (error) {
|
|
222
|
-
logError(this.log, `Failed to broadcast request message ${debugStringify(message)}${er}`, error);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
/**
|
|
226
|
-
* Send a response message from the worker implementation.
|
|
227
|
-
*
|
|
228
|
-
* @template K
|
|
229
|
-
* @param {WorkerMessageResponse<K>} message The response message to send.
|
|
230
|
-
* @returns {void}
|
|
231
|
-
*/
|
|
232
|
-
respond(message) {
|
|
233
|
-
if (typeof message.timestamp === 'number') {
|
|
234
|
-
message.elapsed = Date.now() - message.timestamp;
|
|
235
|
-
}
|
|
236
|
-
if (message.timestamp === undefined) {
|
|
237
|
-
message.timestamp = Date.now();
|
|
238
|
-
}
|
|
239
|
-
if (!this.isWorkerResponse(message)) {
|
|
240
|
-
this.log.error(`Invalid response message format for broadcast: ${debugStringify(message)}`);
|
|
241
|
-
return;
|
|
242
|
-
}
|
|
243
|
-
if (this.verbose)
|
|
244
|
-
this.log.debug(`Broadcasting response message: ${debugStringify(message)}`);
|
|
245
|
-
try {
|
|
246
|
-
this.broadcastChannel.postMessage(message);
|
|
247
|
-
}
|
|
248
|
-
catch (error) {
|
|
249
|
-
logError(this.log, `Failed to broadcast response message ${debugStringify(message)}${er}`, error);
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Fetch data from a worker.
|
|
254
|
-
* It broadcasts a request message and waits for a valid response with the same id.
|
|
255
|
-
*
|
|
256
|
-
* @template K
|
|
257
|
-
* @param {WorkerMessageRequest<K>} message - The typed request message to fetch.
|
|
258
|
-
* @param {number} timeout - The timeout in milliseconds to wait for a response. Default is 250ms.
|
|
259
|
-
* @returns {Promise<WorkerMessageResponseSuccess<K>>} A promise that resolves with the successful response from the worker or rejects on timeout.
|
|
260
|
-
* @throws {Error} If the fetch operation times out after 250ms or if an error response is received or if the response is malformed.
|
|
261
|
-
*/
|
|
262
|
-
async fetch(message, timeout = 250) {
|
|
263
|
-
if (message.id === undefined) {
|
|
264
|
-
message.id = this.getUniqueId();
|
|
265
|
-
}
|
|
266
|
-
if (message.timestamp === undefined) {
|
|
267
|
-
message.timestamp = Date.now();
|
|
268
|
-
}
|
|
269
|
-
if (this.verbose)
|
|
270
|
-
this.log.debug(`Fetching message: ${debugStringify(message)}`);
|
|
271
|
-
return new Promise((resolve, reject) => {
|
|
272
|
-
const responseHandler = (msg) => {
|
|
273
|
-
if (this.isWorkerResponseOfType(msg, message.type) && msg.id === message.id) {
|
|
274
|
-
clearTimeout(timeoutId);
|
|
275
|
-
this.off('broadcast_message', responseHandler);
|
|
276
|
-
if (this.verbose)
|
|
277
|
-
this.log.debug(`Fetch response: ${debugStringify(msg)}`);
|
|
278
|
-
if ('error' in msg && typeof msg.error === 'string') {
|
|
279
|
-
reject(new Error(`Fetch received error response ${msg.error} to message type ${message.type} id ${message.id} from ${message.src} to ${message.dst}`));
|
|
280
|
-
}
|
|
281
|
-
else if ('result' in msg) {
|
|
282
|
-
resolve(msg);
|
|
283
|
-
}
|
|
284
|
-
else {
|
|
285
|
-
reject(new Error(`Fetch received malformed response for message type ${message.type} id ${message.id} from ${message.src} to ${message.dst}`));
|
|
286
|
-
}
|
|
287
|
-
return;
|
|
288
|
-
}
|
|
289
|
-
};
|
|
290
|
-
this.on('broadcast_message', responseHandler);
|
|
291
|
-
this.request(message);
|
|
292
|
-
const timeoutId = setTimeout(() => {
|
|
293
|
-
this.off('broadcast_message', responseHandler);
|
|
294
|
-
reject(new Error(`Fetch timeout after ${timeout}ms for message type ${message.type} id ${message.id} from ${message.src} to ${message.dst}`));
|
|
295
|
-
}, timeout);
|
|
296
|
-
});
|
|
297
|
-
}
|
|
298
|
-
/**
|
|
299
|
-
* Summarize live libuv handles/requests inside a process.
|
|
300
|
-
*
|
|
301
|
-
* @param {AnsiLogger} log - Logger to use for output
|
|
302
|
-
*
|
|
303
|
-
* @returns {number} - The total number of active handles and requests
|
|
304
|
-
*/
|
|
305
|
-
static logKeepAlives(log) {
|
|
306
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
307
|
-
const handles = process._getActiveHandles?.() ?? [];
|
|
308
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
309
|
-
const requests = process._getActiveRequests?.() ?? [];
|
|
310
|
-
const fmtHandle = (h, i) => {
|
|
311
|
-
const ctor = h?.constructor?.name ?? 'Unknown';
|
|
312
|
-
// Timer-like?
|
|
313
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
314
|
-
const hasRef = typeof h?.hasRef === 'function' ? h.hasRef() : undefined;
|
|
315
|
-
// MessagePort?
|
|
316
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
317
|
-
const isPort = h?.constructor?.name?.includes('MessagePort');
|
|
318
|
-
// Socket/Server?
|
|
319
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
320
|
-
const fd = h?.fd ?? h?._handle?.fd;
|
|
321
|
-
return { i, type: ctor, hasRef, isPort, fd };
|
|
322
|
-
};
|
|
323
|
-
const fmtReq = (r, i) => {
|
|
324
|
-
const ctor = r?.constructor?.name ?? 'Unknown';
|
|
325
|
-
return { i, type: ctor };
|
|
326
|
-
};
|
|
327
|
-
const summary = {
|
|
328
|
-
handles: handles.map(fmtHandle),
|
|
329
|
-
requests: requests.map(fmtReq),
|
|
330
|
-
};
|
|
331
|
-
if (summary.handles.length === 0 && summary.requests.length === 0) {
|
|
332
|
-
log.debug('KeepAlive: no active handles or requests.');
|
|
333
|
-
}
|
|
334
|
-
else {
|
|
335
|
-
log.debug('KeepAlive:\n', JSON.stringify(summary, null, 2));
|
|
336
|
-
}
|
|
337
|
-
return summary.handles.length + summary.requests.length;
|
|
338
|
-
}
|
|
339
|
-
}
|
|
340
|
-
//# sourceMappingURL=workerServer.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workerServer.js","sourceRoot":"","sources":["../../src/workers/workerServer.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,23 +0,0 @@
|
|
|
1
|
-
import type { MessagePort } from 'node:worker_threads';
|
|
2
|
-
import type { Matterbridge } from '../matterbridge.js';
|
|
3
|
-
/** Data passed to each worker on creation */
|
|
4
|
-
export interface WorkerData {
|
|
5
|
-
name: string;
|
|
6
|
-
managerPort: MessagePort;
|
|
7
|
-
matterbridge: Matterbridge;
|
|
8
|
-
color?: number;
|
|
9
|
-
debug?: boolean;
|
|
10
|
-
}
|
|
11
|
-
/** Control messages sent from manager to workers */
|
|
12
|
-
export type ControlMessage = {
|
|
13
|
-
type: 'init';
|
|
14
|
-
success?: boolean;
|
|
15
|
-
} | {
|
|
16
|
-
type: 'ping';
|
|
17
|
-
} | {
|
|
18
|
-
type: 'pong';
|
|
19
|
-
} | {
|
|
20
|
-
type: 'exit';
|
|
21
|
-
success?: boolean;
|
|
22
|
-
};
|
|
23
|
-
//# sourceMappingURL=workerTypes.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workerTypes.d.ts","sourceRoot":"","sources":["../../src/workers/workerTypes.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAEvD,6CAA6C;AAC7C,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,WAAW,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,oDAAoD;AACpD,MAAM,MAAM,cAAc,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"workerTypes.js","sourceRoot":"","sources":["../../src/workers/workerTypes.ts"],"names":[],"mappings":"AAAA,iBAAiB"}
|