matterbridge 3.5.0 → 3.5.1-dev-20260121-22e98b4
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/CHANGELOG.md +14 -0
- package/bin/mb_coap.js +1 -1
- package/bin/mb_mdns.js +1 -1
- package/dist/broadcastServer.d.ts +0 -115
- package/dist/broadcastServer.js +1 -119
- package/dist/broadcastServerTypes.d.ts +0 -43
- package/dist/broadcastServerTypes.js +0 -24
- package/dist/cli.d.ts +1 -26
- package/dist/cli.js +2 -102
- package/dist/cliEmitter.d.ts +0 -36
- package/dist/cliEmitter.js +0 -37
- package/dist/cliHistory.d.ts +0 -42
- package/dist/cliHistory.js +1 -39
- 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 +2 -114
- package/dist/devices/airConditioner.d.ts +0 -75
- package/dist/devices/airConditioner.js +0 -57
- package/dist/devices/batteryStorage.d.ts +0 -43
- package/dist/devices/batteryStorage.js +1 -48
- 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/frontend.d.ts +0 -187
- package/dist/frontend.js +39 -505
- package/dist/frontendTypes.d.ts +0 -57
- package/dist/frontendTypes.js +0 -45
- package/dist/helpers.d.ts +0 -43
- package/dist/helpers.js +1 -54
- package/dist/index.d.ts +0 -23
- package/dist/index.js +0 -25
- package/dist/jestutils/export.d.ts +0 -1
- package/dist/jestutils/export.js +0 -1
- package/dist/jestutils/jestHelpers.d.ts +0 -255
- package/dist/jestutils/jestHelpers.js +14 -372
- package/dist/logger/export.d.ts +0 -1
- package/dist/logger/export.js +0 -1
- 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 +9 -364
- package/dist/matterbridge.d.ts +0 -362
- package/dist/matterbridge.js +60 -860
- package/dist/matterbridgeAccessoryPlatform.d.ts +0 -36
- package/dist/matterbridgeAccessoryPlatform.js +0 -38
- package/dist/matterbridgeBehaviors.d.ts +0 -24
- package/dist/matterbridgeBehaviors.js +5 -68
- package/dist/matterbridgeDeviceTypes.d.ts +0 -649
- package/dist/matterbridgeDeviceTypes.js +6 -673
- package/dist/matterbridgeDynamicPlatform.d.ts +0 -36
- package/dist/matterbridgeDynamicPlatform.js +0 -38
- package/dist/matterbridgeEndpoint.d.ts +2 -1332
- package/dist/matterbridgeEndpoint.js +94 -1459
- package/dist/matterbridgeEndpointHelpers.d.ts +0 -425
- package/dist/matterbridgeEndpointHelpers.js +21 -486
- package/dist/matterbridgeEndpointTypes.d.ts +0 -70
- package/dist/matterbridgeEndpointTypes.js +0 -25
- package/dist/matterbridgePlatform.d.ts +0 -425
- package/dist/matterbridgePlatform.js +2 -453
- package/dist/matterbridgeTypes.d.ts +0 -46
- package/dist/matterbridgeTypes.js +0 -26
- package/dist/mb_coap.d.ts +1 -0
- package/dist/{dgram/mb_coap.js → mb_coap.js} +3 -41
- package/dist/mb_mdns.d.ts +1 -0
- package/dist/{dgram/mb_mdns.js → mb_mdns.js} +37 -81
- package/dist/pluginManager.d.ts +0 -305
- package/dist/pluginManager.js +8 -345
- package/dist/shelly.d.ts +0 -157
- package/dist/shelly.js +7 -178
- package/dist/spawn.d.ts +1 -0
- package/dist/{utils/spawn.js → spawn.js} +3 -73
- package/dist/storage/export.d.ts +0 -1
- package/dist/storage/export.js +0 -1
- package/dist/update.d.ts +0 -75
- package/dist/update.js +7 -100
- package/dist/utils/export.d.ts +1 -13
- package/dist/utils/export.js +1 -13
- package/dist/workerGlobalPrefix.d.ts +0 -24
- package/dist/workerGlobalPrefix.js +6 -40
- package/dist/workerTypes.d.ts +0 -25
- package/dist/workerTypes.js +0 -24
- package/dist/workers.d.ts +0 -61
- package/dist/workers.js +4 -68
- package/npm-shrinkwrap.json +35 -5
- package/package.json +5 -5
- package/dist/broadcastServer.d.ts.map +0 -1
- package/dist/broadcastServer.js.map +0 -1
- package/dist/broadcastServerTypes.d.ts.map +0 -1
- package/dist/broadcastServerTypes.js.map +0 -1
- 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/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/batteryStorage.d.ts.map +0 -1
- package/dist/devices/batteryStorage.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/coap.d.ts +0 -205
- package/dist/dgram/coap.d.ts.map +0 -1
- package/dist/dgram/coap.js +0 -365
- package/dist/dgram/coap.js.map +0 -1
- package/dist/dgram/dgram.d.ts +0 -144
- package/dist/dgram/dgram.d.ts.map +0 -1
- package/dist/dgram/dgram.js +0 -363
- package/dist/dgram/dgram.js.map +0 -1
- package/dist/dgram/mb_coap.d.ts +0 -24
- package/dist/dgram/mb_coap.d.ts.map +0 -1
- package/dist/dgram/mb_coap.js.map +0 -1
- package/dist/dgram/mb_mdns.d.ts +0 -24
- package/dist/dgram/mb_mdns.d.ts.map +0 -1
- package/dist/dgram/mb_mdns.js.map +0 -1
- package/dist/dgram/mdns.d.ts +0 -371
- package/dist/dgram/mdns.d.ts.map +0 -1
- package/dist/dgram/mdns.js +0 -934
- package/dist/dgram/mdns.js.map +0 -1
- package/dist/dgram/multicast.d.ts +0 -67
- package/dist/dgram/multicast.d.ts.map +0 -1
- package/dist/dgram/multicast.js +0 -179
- package/dist/dgram/multicast.js.map +0 -1
- package/dist/dgram/unicast.d.ts +0 -64
- package/dist/dgram/unicast.d.ts.map +0 -1
- package/dist/dgram/unicast.js +0 -100
- package/dist/dgram/unicast.js.map +0 -1
- package/dist/frontend.d.ts.map +0 -1
- package/dist/frontend.js.map +0 -1
- package/dist/frontendTypes.d.ts.map +0 -1
- package/dist/frontendTypes.js.map +0 -1
- package/dist/helpers.d.ts.map +0 -1
- package/dist/helpers.js.map +0 -1
- package/dist/index.d.ts.map +0 -1
- package/dist/index.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/logger/export.d.ts.map +0 -1
- package/dist/logger/export.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/matterbridgeTypes.d.ts.map +0 -1
- package/dist/matterbridgeTypes.js.map +0 -1
- package/dist/pluginManager.d.ts.map +0 -1
- package/dist/pluginManager.js.map +0 -1
- package/dist/shelly.d.ts.map +0 -1
- package/dist/shelly.js.map +0 -1
- package/dist/storage/export.d.ts.map +0 -1
- package/dist/storage/export.js.map +0 -1
- package/dist/update.d.ts.map +0 -1
- package/dist/update.js.map +0 -1
- package/dist/utils/colorUtils.d.ts +0 -101
- package/dist/utils/colorUtils.d.ts.map +0 -1
- package/dist/utils/colorUtils.js +0 -282
- package/dist/utils/colorUtils.js.map +0 -1
- package/dist/utils/commandLine.d.ts +0 -66
- package/dist/utils/commandLine.d.ts.map +0 -1
- package/dist/utils/commandLine.js +0 -123
- package/dist/utils/commandLine.js.map +0 -1
- package/dist/utils/copyDirectory.d.ts +0 -35
- package/dist/utils/copyDirectory.d.ts.map +0 -1
- package/dist/utils/copyDirectory.js +0 -76
- package/dist/utils/copyDirectory.js.map +0 -1
- package/dist/utils/createDirectory.d.ts +0 -34
- package/dist/utils/createDirectory.d.ts.map +0 -1
- package/dist/utils/createDirectory.js +0 -54
- package/dist/utils/createDirectory.js.map +0 -1
- package/dist/utils/createZip.d.ts +0 -39
- package/dist/utils/createZip.d.ts.map +0 -1
- package/dist/utils/createZip.js +0 -114
- package/dist/utils/createZip.js.map +0 -1
- package/dist/utils/deepCopy.d.ts +0 -32
- package/dist/utils/deepCopy.d.ts.map +0 -1
- package/dist/utils/deepCopy.js +0 -79
- package/dist/utils/deepCopy.js.map +0 -1
- package/dist/utils/deepEqual.d.ts +0 -54
- package/dist/utils/deepEqual.d.ts.map +0 -1
- package/dist/utils/deepEqual.js +0 -129
- package/dist/utils/deepEqual.js.map +0 -1
- package/dist/utils/error.d.ts +0 -45
- package/dist/utils/error.d.ts.map +0 -1
- package/dist/utils/error.js +0 -54
- package/dist/utils/error.js.map +0 -1
- package/dist/utils/export.d.ts.map +0 -1
- package/dist/utils/export.js.map +0 -1
- package/dist/utils/format.d.ts +0 -53
- package/dist/utils/format.d.ts.map +0 -1
- package/dist/utils/format.js +0 -78
- package/dist/utils/format.js.map +0 -1
- package/dist/utils/hex.d.ts +0 -89
- package/dist/utils/hex.d.ts.map +0 -1
- package/dist/utils/hex.js +0 -242
- package/dist/utils/hex.js.map +0 -1
- package/dist/utils/inspector.d.ts +0 -87
- package/dist/utils/inspector.d.ts.map +0 -1
- package/dist/utils/inspector.js +0 -268
- package/dist/utils/inspector.js.map +0 -1
- package/dist/utils/isValid.d.ts +0 -103
- package/dist/utils/isValid.d.ts.map +0 -1
- package/dist/utils/isValid.js +0 -162
- package/dist/utils/isValid.js.map +0 -1
- package/dist/utils/network.d.ts +0 -141
- package/dist/utils/network.d.ts.map +0 -1
- package/dist/utils/network.js +0 -314
- package/dist/utils/network.js.map +0 -1
- package/dist/utils/spawn.d.ts +0 -33
- package/dist/utils/spawn.d.ts.map +0 -1
- package/dist/utils/spawn.js.map +0 -1
- package/dist/utils/tracker.d.ts +0 -108
- package/dist/utils/tracker.d.ts.map +0 -1
- package/dist/utils/tracker.js +0 -264
- package/dist/utils/tracker.js.map +0 -1
- package/dist/utils/wait.d.ts +0 -54
- package/dist/utils/wait.d.ts.map +0 -1
- package/dist/utils/wait.js +0 -125
- package/dist/utils/wait.js.map +0 -1
- package/dist/workerGlobalPrefix.d.ts.map +0 -1
- package/dist/workerGlobalPrefix.js.map +0 -1
- package/dist/workerTypes.d.ts.map +0 -1
- package/dist/workerTypes.js.map +0 -1
- package/dist/workers.d.ts.map +0 -1
- package/dist/workers.js.map +0 -1
package/dist/cli.js
CHANGED
|
@@ -1,46 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the CLI entry point of Matterbridge.
|
|
3
|
-
*
|
|
4
|
-
* @file cli.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2023-12-29
|
|
7
|
-
* @version 3.0.0
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2023, 2024, 2025 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
|
-
/* eslint-disable no-console */
|
|
25
|
-
/* eslint-disable n/no-process-exit */
|
|
26
1
|
if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
27
2
|
console.log('\u001B[32mCli loaded.\u001B[40;0m');
|
|
28
|
-
// AnsiLogger module
|
|
29
3
|
import { AnsiLogger } from 'node-ansi-logger';
|
|
30
|
-
|
|
4
|
+
import { formatBytes, formatUptime, hasAnyParameter, hasParameter, Inspector, inspectError, Tracker } from '@matterbridge/utils';
|
|
31
5
|
import { cliEmitter } from './cliEmitter.js';
|
|
32
|
-
import { hasParameter, hasAnyParameter } from './utils/commandLine.js';
|
|
33
|
-
import { inspectError } from './utils/error.js';
|
|
34
|
-
import { Tracker } from './utils/tracker.js';
|
|
35
|
-
import { Inspector } from './utils/inspector.js';
|
|
36
|
-
import { formatBytes, formatUptime } from './utils/format.js';
|
|
37
6
|
export let instance;
|
|
38
7
|
export const tracker = new Tracker('Cli', false, false);
|
|
39
8
|
export const inspector = new Inspector('Cli', false, false);
|
|
40
|
-
const log = new AnsiLogger({ logName: 'Cli', logTimestampFormat: 4
|
|
41
|
-
/**
|
|
42
|
-
* Starts the CPU and memory tracker.
|
|
43
|
-
*/
|
|
9
|
+
const log = new AnsiLogger({ logName: 'Cli', logTimestampFormat: 4, logLevel: hasParameter('debug') ? "debug" : "info" });
|
|
44
10
|
function startCpuMemoryCheck() {
|
|
45
11
|
log.debug(`Cpu memory check starting...`);
|
|
46
12
|
tracker.start();
|
|
@@ -53,50 +19,26 @@ function startCpuMemoryCheck() {
|
|
|
53
19
|
});
|
|
54
20
|
log.debug(`Cpu memory check started`);
|
|
55
21
|
}
|
|
56
|
-
/**
|
|
57
|
-
* Stops the CPU and memory tracker.
|
|
58
|
-
*/
|
|
59
22
|
function stopCpuMemoryCheck() {
|
|
60
23
|
log.debug(`Cpu memory check stopping...`);
|
|
61
24
|
tracker.stop();
|
|
62
25
|
tracker.removeAllListeners();
|
|
63
26
|
log.debug(`Cpu memory check stopped`);
|
|
64
27
|
}
|
|
65
|
-
/**
|
|
66
|
-
* Starts the inspector for heap sampling.
|
|
67
|
-
* This function is called when the -inspect parameter is passed.
|
|
68
|
-
*/
|
|
69
28
|
async function startInspector() {
|
|
70
29
|
await inspector.start();
|
|
71
30
|
}
|
|
72
|
-
/**
|
|
73
|
-
* Stops the heap sampling and saves the profile.
|
|
74
|
-
* This function is called when the -inspect parameter is passed.
|
|
75
|
-
*/
|
|
76
31
|
async function stopInspector() {
|
|
77
32
|
await inspector.stop();
|
|
78
33
|
}
|
|
79
|
-
/**
|
|
80
|
-
* Takes a heap snapshot
|
|
81
|
-
*/
|
|
82
34
|
async function takeHeapSnapshot() {
|
|
83
35
|
await inspector.takeHeapSnapshot();
|
|
84
36
|
}
|
|
85
|
-
/**
|
|
86
|
-
* Triggers a manual garbage collection.
|
|
87
|
-
* This function is working only if the node process is started with --expose_gc.
|
|
88
|
-
*
|
|
89
|
-
* @remarks To check the effect of the garbage collection, add also --trace_gc or --trace_gc_verbose.
|
|
90
|
-
*/
|
|
91
37
|
function triggerGarbageCollection() {
|
|
92
38
|
inspector.runGarbageCollector();
|
|
93
39
|
}
|
|
94
|
-
/**
|
|
95
|
-
* Registers event handlers for the Matterbridge instance.
|
|
96
|
-
*/
|
|
97
40
|
function registerHandlers() {
|
|
98
41
|
log.debug('Registering event handlers...');
|
|
99
|
-
// istanbul ignore next cause registerHandlers is called only if instance is defined
|
|
100
42
|
if (!instance)
|
|
101
43
|
return;
|
|
102
44
|
instance.on('shutdown', () => shutdown());
|
|
@@ -110,9 +52,6 @@ function registerHandlers() {
|
|
|
110
52
|
instance.on('triggergarbagecollection', () => triggerGarbageCollection());
|
|
111
53
|
log.debug('Registered event handlers');
|
|
112
54
|
}
|
|
113
|
-
/**
|
|
114
|
-
* Shuts down the Matterbridge instance and exits the process.
|
|
115
|
-
*/
|
|
116
55
|
async function shutdown() {
|
|
117
56
|
log.debug('Received shutdown event, exiting...');
|
|
118
57
|
if (hasParameter('inspect'))
|
|
@@ -121,56 +60,26 @@ async function shutdown() {
|
|
|
121
60
|
cliEmitter.emit('shutdown');
|
|
122
61
|
process.exit(0);
|
|
123
62
|
}
|
|
124
|
-
/**
|
|
125
|
-
* Restarts the Matterbridge instance.
|
|
126
|
-
*/
|
|
127
63
|
async function restart() {
|
|
128
64
|
log.debug('Received restart event, loading...');
|
|
129
65
|
const { Matterbridge } = await import('./matterbridge.js');
|
|
130
66
|
instance = await Matterbridge.loadInstance(true);
|
|
131
67
|
registerHandlers();
|
|
132
68
|
}
|
|
133
|
-
/**
|
|
134
|
-
* Updates the Matterbridge instance.
|
|
135
|
-
*/
|
|
136
69
|
async function update() {
|
|
137
70
|
log.debug('Received update event, updating...');
|
|
138
|
-
// TODO: Implement update logic outside of matterbridge
|
|
139
71
|
const { Matterbridge } = await import('./matterbridge.js');
|
|
140
72
|
instance = await Matterbridge.loadInstance(true);
|
|
141
73
|
registerHandlers();
|
|
142
74
|
}
|
|
143
|
-
/**
|
|
144
|
-
* Starts the CPU and memory check when the -startmemorycheck parameter is passed.
|
|
145
|
-
*/
|
|
146
75
|
function start() {
|
|
147
76
|
log.debug('Received start memory check event');
|
|
148
77
|
startCpuMemoryCheck();
|
|
149
78
|
}
|
|
150
|
-
/**
|
|
151
|
-
* Stops the CPU and memory check when the -stopmemorycheck parameter is passed.
|
|
152
|
-
*/
|
|
153
79
|
function stop() {
|
|
154
80
|
log.debug('Received stop memory check event');
|
|
155
81
|
stopCpuMemoryCheck();
|
|
156
82
|
}
|
|
157
|
-
/**
|
|
158
|
-
* Main function that initializes the Matterbridge instance and starts the CLI.
|
|
159
|
-
*
|
|
160
|
-
* @remarks
|
|
161
|
-
*
|
|
162
|
-
* Debug parameters:
|
|
163
|
-
*
|
|
164
|
-
* --debug enables debug logging.
|
|
165
|
-
*
|
|
166
|
-
* --verbose enables verbose logging.
|
|
167
|
-
*
|
|
168
|
-
* --loader enables loader logging.
|
|
169
|
-
*
|
|
170
|
-
* --inspect enables the inspector for heap sampling.
|
|
171
|
-
*
|
|
172
|
-
* --snapshotinterval <milliseconds> can be used to set the heap snapshot interval. Default is undefined. Minimum is 30000 ms.
|
|
173
|
-
*/
|
|
174
83
|
async function main() {
|
|
175
84
|
log.debug(`Cli main() started`);
|
|
176
85
|
startCpuMemoryCheck();
|
|
@@ -180,7 +89,6 @@ async function main() {
|
|
|
180
89
|
const { Matterbridge } = await import('./matterbridge.js');
|
|
181
90
|
instance = await Matterbridge.loadInstance(true);
|
|
182
91
|
log.debug(`***Matterbridge.loadInstance(true) exited`);
|
|
183
|
-
// Check if the instance needs to shut down from parseCommandLine()
|
|
184
92
|
if (!instance || instance.shutdown) {
|
|
185
93
|
shutdown();
|
|
186
94
|
}
|
|
@@ -198,18 +106,11 @@ main().catch((error) => {
|
|
|
198
106
|
inspectError(log, 'Matterbridge.loadInstance() failed with error', error);
|
|
199
107
|
shutdown();
|
|
200
108
|
});
|
|
201
|
-
/**
|
|
202
|
-
* Displays the version.
|
|
203
|
-
*/
|
|
204
109
|
async function version() {
|
|
205
|
-
// Dynamic JSON import (Node >= 20) with import attributes
|
|
206
110
|
const { default: pkg } = await import('../package.json', { with: { type: 'json' } });
|
|
207
111
|
console.log(`Matterbridge version ${pkg.version}`);
|
|
208
112
|
process.exit(0);
|
|
209
113
|
}
|
|
210
|
-
/**
|
|
211
|
-
* Displays the help.
|
|
212
|
-
*/
|
|
213
114
|
function help() {
|
|
214
115
|
console.log(`
|
|
215
116
|
Usage: matterbridge [options] [command]
|
|
@@ -266,4 +167,3 @@ function help() {
|
|
|
266
167
|
`);
|
|
267
168
|
process.exit(0);
|
|
268
169
|
}
|
|
269
|
-
//# sourceMappingURL=cli.js.map
|
package/dist/cliEmitter.d.ts
CHANGED
|
@@ -1,26 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the CLI emitter.
|
|
3
|
-
*
|
|
4
|
-
* @file cliEmitter.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-07-04
|
|
7
|
-
* @version 1.0.2
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2025, 2026, 2027 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
1
|
import { EventEmitter } from 'node:events';
|
|
25
2
|
interface CliEvents {
|
|
26
3
|
shutdown: [];
|
|
@@ -32,19 +9,6 @@ interface CliEvents {
|
|
|
32
9
|
export declare const cliEmitter: EventEmitter<CliEvents>;
|
|
33
10
|
export declare let lastOsCpuUsage: number;
|
|
34
11
|
export declare let lastProcessCpuUsage: number;
|
|
35
|
-
/**
|
|
36
|
-
* Sets the last os CPU usage.
|
|
37
|
-
*
|
|
38
|
-
* @param {number} val - The os CPU usage percentage to set.
|
|
39
|
-
* @returns {void}
|
|
40
|
-
*/
|
|
41
12
|
export declare function setLastOsCpuUsage(val: number): void;
|
|
42
|
-
/**
|
|
43
|
-
* Sets the last process CPU usage.
|
|
44
|
-
*
|
|
45
|
-
* @param {number} val - The process CPU usage percentage to set.
|
|
46
|
-
* @returns {void}
|
|
47
|
-
*/
|
|
48
13
|
export declare function setLastProcessCpuUsage(val: number): void;
|
|
49
14
|
export {};
|
|
50
|
-
//# sourceMappingURL=cliEmitter.d.ts.map
|
package/dist/cliEmitter.js
CHANGED
|
@@ -1,49 +1,12 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the CLI emitter.
|
|
3
|
-
*
|
|
4
|
-
* @file cliEmitter.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-07-04
|
|
7
|
-
* @version 1.0.2
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2025, 2026, 2027 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
|
-
// eslint-disable-next-line no-console
|
|
25
1
|
if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
26
2
|
console.log('\u001B[32mCli emitter loaded.\u001B[40;0m');
|
|
27
3
|
import { EventEmitter } from 'node:events';
|
|
28
4
|
export const cliEmitter = new EventEmitter();
|
|
29
5
|
export let lastOsCpuUsage = 0;
|
|
30
6
|
export let lastProcessCpuUsage = 0;
|
|
31
|
-
/**
|
|
32
|
-
* Sets the last os CPU usage.
|
|
33
|
-
*
|
|
34
|
-
* @param {number} val - The os CPU usage percentage to set.
|
|
35
|
-
* @returns {void}
|
|
36
|
-
*/
|
|
37
7
|
export function setLastOsCpuUsage(val) {
|
|
38
8
|
lastOsCpuUsage = val;
|
|
39
9
|
}
|
|
40
|
-
/**
|
|
41
|
-
* Sets the last process CPU usage.
|
|
42
|
-
*
|
|
43
|
-
* @param {number} val - The process CPU usage percentage to set.
|
|
44
|
-
* @returns {void}
|
|
45
|
-
*/
|
|
46
10
|
export function setLastProcessCpuUsage(val) {
|
|
47
11
|
lastProcessCpuUsage = val;
|
|
48
12
|
}
|
|
49
|
-
//# sourceMappingURL=cliEmitter.js.map
|
package/dist/cliHistory.d.ts
CHANGED
|
@@ -1,48 +1,6 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the CLI history page generator.
|
|
3
|
-
*
|
|
4
|
-
* @file cliHistory.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-10-09
|
|
7
|
-
* @version 1.0.1
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2025, 2026, 2027 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
1
|
export type GenerateHistoryPageOptions = {
|
|
25
|
-
/**
|
|
26
|
-
* Full path (file name included) for the generated HTML file.
|
|
27
|
-
* Defaults to `<current working directory>/history.html`.
|
|
28
|
-
*/
|
|
29
2
|
outputPath?: string;
|
|
30
|
-
/**
|
|
31
|
-
* Title shown in the generated page and browser tab.
|
|
32
|
-
* Defaults to `Matterbridge CPU & Memory History`.
|
|
33
|
-
*/
|
|
34
3
|
pageTitle?: string;
|
|
35
|
-
/**
|
|
36
|
-
* Hostname shown in the generated page and browser tab.
|
|
37
|
-
*/
|
|
38
4
|
hostname?: string;
|
|
39
5
|
};
|
|
40
|
-
/**
|
|
41
|
-
* Generates a static HTML dashboard displaying CPU and memory history.
|
|
42
|
-
*
|
|
43
|
-
* @param {GenerateHistoryPageOptions} [options] - Optional configuration for output path, page title, and refresh interval.
|
|
44
|
-
*
|
|
45
|
-
* @returns {string | undefined} The absolute path to the generated HTML file, or undefined if no samples exist.
|
|
46
|
-
*/
|
|
47
6
|
export declare function generateHistoryPage(options?: GenerateHistoryPageOptions): string | undefined;
|
|
48
|
-
//# sourceMappingURL=cliHistory.d.ts.map
|
package/dist/cliHistory.js
CHANGED
|
@@ -1,40 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the CLI history page generator.
|
|
3
|
-
*
|
|
4
|
-
* @file cliHistory.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-10-09
|
|
7
|
-
* @version 1.0.1
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2025, 2026, 2027 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
|
-
// eslint-disable-next-line no-console
|
|
25
1
|
if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
26
2
|
console.log('\u001B[32mCli history loaded.\u001B[40;0m');
|
|
27
3
|
import { writeFileSync } from 'node:fs';
|
|
28
4
|
import path from 'node:path';
|
|
29
5
|
import os from 'node:os';
|
|
30
|
-
import { Tracker } from '
|
|
31
|
-
/**
|
|
32
|
-
* Generates a static HTML dashboard displaying CPU and memory history.
|
|
33
|
-
*
|
|
34
|
-
* @param {GenerateHistoryPageOptions} [options] - Optional configuration for output path, page title, and refresh interval.
|
|
35
|
-
*
|
|
36
|
-
* @returns {string | undefined} The absolute path to the generated HTML file, or undefined if no samples exist.
|
|
37
|
-
*/
|
|
6
|
+
import { Tracker } from '@matterbridge/utils';
|
|
38
7
|
export function generateHistoryPage(options = {}) {
|
|
39
8
|
const pageTitle = options.pageTitle ?? 'Matterbridge CPU & Memory History';
|
|
40
9
|
const hostname = options.hostname ?? os.hostname();
|
|
@@ -814,13 +783,6 @@ export function generateHistoryPage(options = {}) {
|
|
|
814
783
|
writeFileSync(outputPath, html, { encoding: 'utf-8' });
|
|
815
784
|
return outputPath;
|
|
816
785
|
}
|
|
817
|
-
/**
|
|
818
|
-
* Escapes HTML special characters to prevent breaking embedded markup.
|
|
819
|
-
*
|
|
820
|
-
* @param {string} input - The string to escape.
|
|
821
|
-
* @returns {string} The escaped string safe for HTML contexts.
|
|
822
|
-
*/
|
|
823
786
|
function escapeHtml(input) {
|
|
824
787
|
return input.replace(/&/g, '&').replace(/</g, '<').replace(/>/g, '>').replace(/"/g, '"').replace(/'/g, ''');
|
|
825
788
|
}
|
|
826
|
-
//# sourceMappingURL=cliHistory.js.map
|
package/dist/clusters/export.js
CHANGED
package/dist/deviceManager.d.ts
CHANGED
|
@@ -1,135 +1,27 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the DeviceManager class.
|
|
3
|
-
*
|
|
4
|
-
* @file devices.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2024-07-26
|
|
7
|
-
* @version 1.1.2
|
|
8
|
-
* @license Apache-2.0
|
|
9
|
-
*
|
|
10
|
-
* Copyright 2024, 2025, 2026 Luca Liguori.
|
|
11
|
-
*
|
|
12
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
13
|
-
* you may not use this file except in compliance with the License.
|
|
14
|
-
* You may obtain a copy of the License at
|
|
15
|
-
*
|
|
16
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
17
|
-
*
|
|
18
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
19
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
20
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
21
|
-
* See the License for the specific language governing permissions and
|
|
22
|
-
* limitations under the License.
|
|
23
|
-
*/
|
|
24
1
|
import { LogLevel } from 'node-ansi-logger';
|
|
25
2
|
import type { MatterbridgeEndpoint } from './matterbridgeEndpoint.js';
|
|
26
3
|
import { type BaseDevice } from './matterbridgeTypes.js';
|
|
27
|
-
/**
|
|
28
|
-
* Converts a MatterbridgeEndpoint to a BaseDevice.
|
|
29
|
-
*
|
|
30
|
-
* @param {MatterbridgeEndpoint} device The MatterbridgeEndpoint to convert.
|
|
31
|
-
* @returns {BaseDevice} The converted BaseDevice.
|
|
32
|
-
*/
|
|
33
4
|
export declare function toBaseDevice(device: MatterbridgeEndpoint | BaseDevice): BaseDevice;
|
|
34
|
-
/**
|
|
35
|
-
* Manages Matterbridge devices.
|
|
36
|
-
*/
|
|
37
5
|
export declare class DeviceManager {
|
|
38
6
|
private readonly _devices;
|
|
39
7
|
private readonly log;
|
|
40
8
|
private readonly server;
|
|
41
9
|
private readonly debug;
|
|
42
10
|
private readonly verbose;
|
|
43
|
-
/**
|
|
44
|
-
* Creates an instance of DeviceManager.
|
|
45
|
-
*/
|
|
46
11
|
constructor();
|
|
47
12
|
destroy(): void;
|
|
48
13
|
private msgHandler;
|
|
49
|
-
/**
|
|
50
|
-
* Gets the number of devices.
|
|
51
|
-
*
|
|
52
|
-
* @returns {number} The number of devices.
|
|
53
|
-
*/
|
|
54
14
|
get length(): number;
|
|
55
|
-
/**
|
|
56
|
-
* Gets the number of devices.
|
|
57
|
-
*
|
|
58
|
-
* @returns {number} The number of devices.
|
|
59
|
-
*/
|
|
60
15
|
get size(): number;
|
|
61
|
-
/**
|
|
62
|
-
* Checks if a device with the specified unique ID exists.
|
|
63
|
-
*
|
|
64
|
-
* @param {string} uniqueId - The unique ID of the device.
|
|
65
|
-
* @returns {boolean} True if the device exists, false otherwise.
|
|
66
|
-
*/
|
|
67
16
|
has(uniqueId: string): boolean;
|
|
68
|
-
/**
|
|
69
|
-
* Gets a device by its unique ID.
|
|
70
|
-
*
|
|
71
|
-
* @param {string} uniqueId - The unique ID of the device.
|
|
72
|
-
* @returns {MatterbridgeEndpoint | undefined} The device, or undefined if not found.
|
|
73
|
-
*/
|
|
74
17
|
get(uniqueId: string): MatterbridgeEndpoint | undefined;
|
|
75
|
-
/**
|
|
76
|
-
* Adds a device to the manager.
|
|
77
|
-
*
|
|
78
|
-
* @param {MatterbridgeEndpoint} device - The device to add.
|
|
79
|
-
* @returns {MatterbridgeEndpoint} The added device.
|
|
80
|
-
* @throws {Error} If the device does not have a unique ID.
|
|
81
|
-
*/
|
|
82
18
|
set(device: MatterbridgeEndpoint): MatterbridgeEndpoint;
|
|
83
|
-
/**
|
|
84
|
-
* Removes a device from the manager.
|
|
85
|
-
*
|
|
86
|
-
* @param {MatterbridgeEndpoint} device - The device to remove.
|
|
87
|
-
* @returns {boolean} True if the device was removed, false otherwise.
|
|
88
|
-
* @throws {Error} If the device does not have a unique ID.
|
|
89
|
-
*/
|
|
90
19
|
remove(device: MatterbridgeEndpoint): boolean;
|
|
91
|
-
/**
|
|
92
|
-
* Clears all devices from the manager.
|
|
93
|
-
*/
|
|
94
20
|
clear(): void;
|
|
95
|
-
/**
|
|
96
|
-
* Converts a MatterbridgeEndpoint to a BaseDevice.
|
|
97
|
-
*
|
|
98
|
-
* @param {MatterbridgeEndpoint} device The MatterbridgeEndpoint to convert.
|
|
99
|
-
* @returns {BaseDevice} The converted BaseDevice.
|
|
100
|
-
*/
|
|
101
21
|
private toBaseDevice;
|
|
102
|
-
/**
|
|
103
|
-
* Gets an array of all devices.
|
|
104
|
-
*
|
|
105
|
-
* @returns {MatterbridgeEndpoint[]} An array of all devices.
|
|
106
|
-
*/
|
|
107
22
|
array(): MatterbridgeEndpoint[];
|
|
108
|
-
/**
|
|
109
|
-
* Gets a base array of all devices suitable for serialization.
|
|
110
|
-
*
|
|
111
|
-
* @param {string} [pluginName] - Optional plugin name to filter devices.
|
|
112
|
-
* @returns {ApiDevices[]} A base array of all devices.
|
|
113
|
-
*/
|
|
114
23
|
baseArray(pluginName?: string): BaseDevice[];
|
|
115
|
-
/**
|
|
116
|
-
* Iterates over all devices.
|
|
117
|
-
*
|
|
118
|
-
* @returns {IterableIterator<MatterbridgeEndpoint>} An iterator for the devices.
|
|
119
|
-
*/
|
|
120
24
|
[Symbol.iterator](): MapIterator<MatterbridgeEndpoint>;
|
|
121
|
-
/**
|
|
122
|
-
* Asynchronously iterates over each device and calls the provided callback function.
|
|
123
|
-
*
|
|
124
|
-
* @param {(device: MatterbridgeEndpoint) => Promise<void>} callback - The callback function to call with each device.
|
|
125
|
-
* @returns {Promise<void>} A promise that resolves when all callbacks have been called.
|
|
126
|
-
*/
|
|
127
25
|
forEach(callback: (device: MatterbridgeEndpoint) => Promise<void>): Promise<void>;
|
|
128
|
-
/**
|
|
129
|
-
* Sets the log level.
|
|
130
|
-
*
|
|
131
|
-
* @param {LogLevel} logLevel - The log level to set.
|
|
132
|
-
*/
|
|
133
26
|
set logLevel(logLevel: LogLevel);
|
|
134
27
|
}
|
|
135
|
-
//# sourceMappingURL=deviceManager.d.ts.map
|