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/update.d.ts
CHANGED
|
@@ -1,84 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the check updates functions.
|
|
3
|
-
*
|
|
4
|
-
* @file update.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-02-24
|
|
7
|
-
* @version 2.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
|
import { AnsiLogger } from 'node-ansi-logger';
|
|
25
2
|
import { ApiPlugin, SharedMatterbridge } from './matterbridgeTypes.js';
|
|
26
3
|
import { BroadcastServer } from './broadcastServer.js';
|
|
27
|
-
/**
|
|
28
|
-
* Checks for updates for Matterbridge and its plugins.
|
|
29
|
-
* If the 'shelly' parameter is present, also checks for Shelly updates.
|
|
30
|
-
*
|
|
31
|
-
* @param {SharedMatterbridge} matterbridge - The Matterbridge instance.
|
|
32
|
-
* @returns {Promise<void>} A promise that resolves when the update checks are complete.
|
|
33
|
-
*/
|
|
34
4
|
export declare function checkUpdates(matterbridge: SharedMatterbridge): Promise<void>;
|
|
35
|
-
/**
|
|
36
|
-
* Checks for updates and logs from https://matterbridge.io/.
|
|
37
|
-
* If the update check fails, logs a warning message.
|
|
38
|
-
*
|
|
39
|
-
* @param {SharedMatterbridge} matterbridge - The Matterbridge instance.
|
|
40
|
-
* @param {AnsiLogger} log - The logger instance.
|
|
41
|
-
* @param {BroadcastServer} server - The broadcast server instance.
|
|
42
|
-
*/
|
|
43
5
|
export declare function checkUpdatesAndLog(matterbridge: SharedMatterbridge, log: AnsiLogger, server: BroadcastServer): Promise<void>;
|
|
44
|
-
/**
|
|
45
|
-
* Retrieves the latest version of Matterbridge and updates the matterbridgeLatestVersion property.
|
|
46
|
-
* If there is an error retrieving the latest version, logs an error message.
|
|
47
|
-
*
|
|
48
|
-
* @param {SharedMatterbridge} matterbridge - The Matterbridge instance.
|
|
49
|
-
* @param {AnsiLogger} log - The logger instance.
|
|
50
|
-
* @param {BroadcastServer} server - The broadcast server instance.
|
|
51
|
-
* @returns {Promise<string | undefined>} A promise that resolves when the latest version is retrieved.
|
|
52
|
-
*/
|
|
53
6
|
export declare function getMatterbridgeLatestVersion(matterbridge: SharedMatterbridge, log: AnsiLogger, server: BroadcastServer): Promise<string | undefined>;
|
|
54
|
-
/**
|
|
55
|
-
* Retrieves the latest dev version of Matterbridge and updates the matterbridgeDevVersion property.
|
|
56
|
-
* If there is an error retrieving the latest version, logs an error message.
|
|
57
|
-
*
|
|
58
|
-
* @param {SharedMatterbridge} matterbridge - The Matterbridge instance.
|
|
59
|
-
* @param {AnsiLogger} log - The logger instance.
|
|
60
|
-
* @param {BroadcastServer} server - The broadcast server instance.
|
|
61
|
-
* @returns {Promise<string | undefined>} A promise that resolves when the latest dev version is retrieved.
|
|
62
|
-
*/
|
|
63
7
|
export declare function getMatterbridgeDevVersion(matterbridge: SharedMatterbridge, log: AnsiLogger, server: BroadcastServer): Promise<string | undefined>;
|
|
64
|
-
/**
|
|
65
|
-
* Retrieves the latest version of a plugin and updates the plugin's latestVersion property.
|
|
66
|
-
* If there is an error retrieving the latest version, logs an error message.
|
|
67
|
-
*
|
|
68
|
-
* @param {AnsiLogger} log - The logger instance.
|
|
69
|
-
* @param {BroadcastServer} server - The broadcast server instance.
|
|
70
|
-
* @param {ApiPlugin} plugin - The plugin for which to retrieve the latest version.
|
|
71
|
-
* @returns {Promise<string | undefined>} A promise that resolves when the latest version is retrieved.
|
|
72
|
-
*/
|
|
73
8
|
export declare function getPluginLatestVersion(log: AnsiLogger, server: BroadcastServer, plugin: ApiPlugin): Promise<string | undefined>;
|
|
74
|
-
/**
|
|
75
|
-
* Retrieves the latest dev version of a plugin and updates the plugin's devVersion property.
|
|
76
|
-
* If there is an error retrieving the latest version, logs an error message.
|
|
77
|
-
*
|
|
78
|
-
* @param {AnsiLogger} log - The logger instance.
|
|
79
|
-
* @param {BroadcastServer} server - The broadcast server instance.
|
|
80
|
-
* @param {ApiPlugin} plugin - The plugin for which to retrieve the latest version.
|
|
81
|
-
* @returns {Promise<string | undefined>} A promise that resolves when the latest dev version is retrieved.
|
|
82
|
-
*/
|
|
83
9
|
export declare function getPluginDevVersion(log: AnsiLogger, server: BroadcastServer, plugin: ApiPlugin): Promise<string | undefined>;
|
|
84
|
-
//# sourceMappingURL=update.d.ts.map
|
package/dist/update.js
CHANGED
|
@@ -1,43 +1,9 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the check updates functions.
|
|
3
|
-
*
|
|
4
|
-
* @file update.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-02-24
|
|
7
|
-
* @version 2.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
|
-
// AnsiLogger module
|
|
25
1
|
import { AnsiLogger, db, debugStringify, nt, wr } from 'node-ansi-logger';
|
|
26
|
-
|
|
2
|
+
import { hasParameter, isValidString } from '@matterbridge/utils';
|
|
27
3
|
import { plg } from './matterbridgeTypes.js';
|
|
28
4
|
import { BroadcastServer } from './broadcastServer.js';
|
|
29
|
-
import { hasParameter } from './utils/commandLine.js';
|
|
30
|
-
import { isValidString } from './utils/isValid.js';
|
|
31
|
-
/**
|
|
32
|
-
* Checks for updates for Matterbridge and its plugins.
|
|
33
|
-
* If the 'shelly' parameter is present, also checks for Shelly updates.
|
|
34
|
-
*
|
|
35
|
-
* @param {SharedMatterbridge} matterbridge - The Matterbridge instance.
|
|
36
|
-
* @returns {Promise<void>} A promise that resolves when the update checks are complete.
|
|
37
|
-
*/
|
|
38
5
|
export async function checkUpdates(matterbridge) {
|
|
39
|
-
|
|
40
|
-
const log = new AnsiLogger({ logName: 'MatterbridgeUpdates', logTimestampFormat: 4 /* TimestampFormat.TIME_MILLIS */, logLevel: matterbridge.logLevel });
|
|
6
|
+
const log = new AnsiLogger({ logName: 'MatterbridgeUpdates', logTimestampFormat: 4, logLevel: matterbridge.logLevel });
|
|
41
7
|
const server = new BroadcastServer('updates', log);
|
|
42
8
|
const checkUpdatePromise = checkUpdatesAndLog(matterbridge, log, server);
|
|
43
9
|
const latestVersionPromise = getMatterbridgeLatestVersion(matterbridge, log, server);
|
|
@@ -58,16 +24,8 @@ export async function checkUpdates(matterbridge) {
|
|
|
58
24
|
await Promise.all([checkUpdatePromise, latestVersionPromise, devVersionPromise, ...pluginsVersionPromises, ...pluginsDevVersionPromises, ...shellyUpdatesPromises]);
|
|
59
25
|
server.close();
|
|
60
26
|
}
|
|
61
|
-
/**
|
|
62
|
-
* Checks for updates and logs from https://matterbridge.io/.
|
|
63
|
-
* If the update check fails, logs a warning message.
|
|
64
|
-
*
|
|
65
|
-
* @param {SharedMatterbridge} matterbridge - The Matterbridge instance.
|
|
66
|
-
* @param {AnsiLogger} log - The logger instance.
|
|
67
|
-
* @param {BroadcastServer} server - The broadcast server instance.
|
|
68
|
-
*/
|
|
69
27
|
export async function checkUpdatesAndLog(matterbridge, log, server) {
|
|
70
|
-
const { getGitHubUpdate } = await import('
|
|
28
|
+
const { getGitHubUpdate } = await import('@matterbridge/utils');
|
|
71
29
|
const branch = matterbridge.matterbridgeVersion.includes('-dev-') ? 'dev' : 'main';
|
|
72
30
|
try {
|
|
73
31
|
const updateJson = await getGitHubUpdate(branch, 'update.json', 5_000);
|
|
@@ -82,29 +40,17 @@ export async function checkUpdatesAndLog(matterbridge, log, server) {
|
|
|
82
40
|
dst: 'frontend',
|
|
83
41
|
params: { message: branch === 'main' ? updateJson.latestMessage : updateJson.devMessage, timeout: 0, severity: branch === 'main' ? updateJson.latestMessageSeverity : updateJson.devMessageSeverity },
|
|
84
42
|
});
|
|
85
|
-
// matterbridge.frontend.wssSendSnackbarMessage(branch === 'main' ? updateJson.latestMessage : updateJson.devMessage, 0, branch === 'main' ? updateJson.latestMessageSeverity : updateJson.devMessageSeverity);
|
|
86
43
|
}
|
|
87
44
|
}
|
|
88
45
|
catch (error) {
|
|
89
46
|
log.debug(`Error checking GitHub ${branch} updates: ${error instanceof Error ? error.message : error}`);
|
|
90
47
|
}
|
|
91
48
|
}
|
|
92
|
-
/**
|
|
93
|
-
* Retrieves the latest version of Matterbridge and updates the matterbridgeLatestVersion property.
|
|
94
|
-
* If there is an error retrieving the latest version, logs an error message.
|
|
95
|
-
*
|
|
96
|
-
* @param {SharedMatterbridge} matterbridge - The Matterbridge instance.
|
|
97
|
-
* @param {AnsiLogger} log - The logger instance.
|
|
98
|
-
* @param {BroadcastServer} server - The broadcast server instance.
|
|
99
|
-
* @returns {Promise<string | undefined>} A promise that resolves when the latest version is retrieved.
|
|
100
|
-
*/
|
|
101
49
|
export async function getMatterbridgeLatestVersion(matterbridge, log, server) {
|
|
102
|
-
const { getNpmPackageVersion } = await import('
|
|
50
|
+
const { getNpmPackageVersion } = await import('@matterbridge/utils');
|
|
103
51
|
try {
|
|
104
52
|
const version = await getNpmPackageVersion('matterbridge');
|
|
105
53
|
server.request({ type: 'matterbridge_latest_version', src: server.name, dst: 'matterbridge', params: { version } });
|
|
106
|
-
// matterbridge.matterbridgeLatestVersion = version;
|
|
107
|
-
// await matterbridge.nodeContext?.set<string>('matterbridgeLatestVersion', matterbridge.matterbridgeLatestVersion);
|
|
108
54
|
if (matterbridge.matterbridgeVersion !== version) {
|
|
109
55
|
log.notice(`Matterbridge is out of date. Current version: ${matterbridge.matterbridgeVersion}. Latest version: ${version}.`);
|
|
110
56
|
server.request({
|
|
@@ -113,11 +59,8 @@ export async function getMatterbridgeLatestVersion(matterbridge, log, server) {
|
|
|
113
59
|
dst: 'frontend',
|
|
114
60
|
params: { message: 'Matterbridge latest update available', timeout: 0, severity: 'info' },
|
|
115
61
|
});
|
|
116
|
-
// matterbridge.frontend.wssSendSnackbarMessage('Matterbridge latest update available', 0, 'info');
|
|
117
62
|
server.request({ type: 'frontend_updaterequired', src: server.name, dst: 'frontend', params: { devVersion: false } });
|
|
118
|
-
// matterbridge.frontend.wssSendUpdateRequired();
|
|
119
63
|
server.request({ type: 'frontend_refreshrequired', src: server.name, dst: 'frontend', params: { changed: 'settings' } });
|
|
120
|
-
// matterbridge.frontend.wssSendRefreshRequired('settings');
|
|
121
64
|
}
|
|
122
65
|
else {
|
|
123
66
|
log.debug(`Matterbridge is up to date. Current version: ${matterbridge.matterbridgeVersion}. Latest version: ${version}.`);
|
|
@@ -125,26 +68,14 @@ export async function getMatterbridgeLatestVersion(matterbridge, log, server) {
|
|
|
125
68
|
return version;
|
|
126
69
|
}
|
|
127
70
|
catch (error) {
|
|
128
|
-
// logError(matterbridge.log, `Error getting Matterbridge latest version`, error);
|
|
129
71
|
log.warn(`Error getting Matterbridge latest version: ${error instanceof Error ? error.message : error}`);
|
|
130
72
|
}
|
|
131
73
|
}
|
|
132
|
-
/**
|
|
133
|
-
* Retrieves the latest dev version of Matterbridge and updates the matterbridgeDevVersion property.
|
|
134
|
-
* If there is an error retrieving the latest version, logs an error message.
|
|
135
|
-
*
|
|
136
|
-
* @param {SharedMatterbridge} matterbridge - The Matterbridge instance.
|
|
137
|
-
* @param {AnsiLogger} log - The logger instance.
|
|
138
|
-
* @param {BroadcastServer} server - The broadcast server instance.
|
|
139
|
-
* @returns {Promise<string | undefined>} A promise that resolves when the latest dev version is retrieved.
|
|
140
|
-
*/
|
|
141
74
|
export async function getMatterbridgeDevVersion(matterbridge, log, server) {
|
|
142
|
-
const { getNpmPackageVersion } = await import('
|
|
75
|
+
const { getNpmPackageVersion } = await import('@matterbridge/utils');
|
|
143
76
|
try {
|
|
144
77
|
const version = await getNpmPackageVersion('matterbridge', 'dev');
|
|
145
78
|
server.request({ type: 'matterbridge_dev_version', src: server.name, dst: 'matterbridge', params: { version } });
|
|
146
|
-
// matterbridge.matterbridgeDevVersion = version;
|
|
147
|
-
// await matterbridge.nodeContext?.set<string>('matterbridgeDevVersion', version);
|
|
148
79
|
if (matterbridge.matterbridgeVersion.includes('-dev-') && matterbridge.matterbridgeVersion !== version) {
|
|
149
80
|
log.notice(`Matterbridge@dev is out of date. Current version: ${matterbridge.matterbridgeVersion}. Latest dev version: ${version}.`);
|
|
150
81
|
server.request({
|
|
@@ -153,11 +84,8 @@ export async function getMatterbridgeDevVersion(matterbridge, log, server) {
|
|
|
153
84
|
dst: 'frontend',
|
|
154
85
|
params: { message: 'Matterbridge dev update available', timeout: 0, severity: 'info' },
|
|
155
86
|
});
|
|
156
|
-
// matterbridge.frontend.wssSendSnackbarMessage('Matterbridge dev update available', 0, 'info');
|
|
157
87
|
server.request({ type: 'frontend_updaterequired', src: server.name, dst: 'frontend', params: { devVersion: true } });
|
|
158
|
-
// matterbridge.frontend.wssSendUpdateRequired(true);
|
|
159
88
|
server.request({ type: 'frontend_refreshrequired', src: server.name, dst: 'frontend', params: { changed: 'settings' } });
|
|
160
|
-
// matterbridge.frontend.wssSendRefreshRequired('settings');
|
|
161
89
|
}
|
|
162
90
|
else if (matterbridge.matterbridgeVersion.includes('-dev-') && matterbridge.matterbridgeVersion === version) {
|
|
163
91
|
log.debug(`Matterbridge@dev is up to date. Current version: ${matterbridge.matterbridgeVersion}. Latest dev version: ${version}.`);
|
|
@@ -168,17 +96,8 @@ export async function getMatterbridgeDevVersion(matterbridge, log, server) {
|
|
|
168
96
|
log.warn(`Error getting Matterbridge latest dev version: ${error instanceof Error ? error.message : error}`);
|
|
169
97
|
}
|
|
170
98
|
}
|
|
171
|
-
/**
|
|
172
|
-
* Retrieves the latest version of a plugin and updates the plugin's latestVersion property.
|
|
173
|
-
* If there is an error retrieving the latest version, logs an error message.
|
|
174
|
-
*
|
|
175
|
-
* @param {AnsiLogger} log - The logger instance.
|
|
176
|
-
* @param {BroadcastServer} server - The broadcast server instance.
|
|
177
|
-
* @param {ApiPlugin} plugin - The plugin for which to retrieve the latest version.
|
|
178
|
-
* @returns {Promise<string | undefined>} A promise that resolves when the latest version is retrieved.
|
|
179
|
-
*/
|
|
180
99
|
export async function getPluginLatestVersion(log, server, plugin) {
|
|
181
|
-
const { getNpmPackageVersion } = await import('
|
|
100
|
+
const { getNpmPackageVersion } = await import('@matterbridge/utils');
|
|
182
101
|
try {
|
|
183
102
|
const version = await getNpmPackageVersion(plugin.name);
|
|
184
103
|
plugin.latestVersion = version;
|
|
@@ -186,7 +105,6 @@ export async function getPluginLatestVersion(log, server, plugin) {
|
|
|
186
105
|
if (plugin.version !== plugin.latestVersion) {
|
|
187
106
|
log.notice(`The plugin ${plg}${plugin.name}${nt} is out of date. Current version: ${plugin.version}. Latest version: ${plugin.latestVersion}.`);
|
|
188
107
|
server.request({ type: 'frontend_refreshrequired', src: server.name, dst: 'frontend', params: { changed: 'plugins' } });
|
|
189
|
-
// matterbridge.frontend.wssSendRefreshRequired('plugins');
|
|
190
108
|
}
|
|
191
109
|
else {
|
|
192
110
|
log.debug(`The plugin ${plg}${plugin.name}${db} is up to date. Current version: ${plugin.version}. Latest version: ${plugin.latestVersion}.`);
|
|
@@ -197,17 +115,8 @@ export async function getPluginLatestVersion(log, server, plugin) {
|
|
|
197
115
|
log.warn(`Error getting plugin ${plg}${plugin.name}${wr} latest version: ${error instanceof Error ? error.message : error}`);
|
|
198
116
|
}
|
|
199
117
|
}
|
|
200
|
-
/**
|
|
201
|
-
* Retrieves the latest dev version of a plugin and updates the plugin's devVersion property.
|
|
202
|
-
* If there is an error retrieving the latest version, logs an error message.
|
|
203
|
-
*
|
|
204
|
-
* @param {AnsiLogger} log - The logger instance.
|
|
205
|
-
* @param {BroadcastServer} server - The broadcast server instance.
|
|
206
|
-
* @param {ApiPlugin} plugin - The plugin for which to retrieve the latest version.
|
|
207
|
-
* @returns {Promise<string | undefined>} A promise that resolves when the latest dev version is retrieved.
|
|
208
|
-
*/
|
|
209
118
|
export async function getPluginDevVersion(log, server, plugin) {
|
|
210
|
-
const { getNpmPackageVersion } = await import('
|
|
119
|
+
const { getNpmPackageVersion } = await import('@matterbridge/utils');
|
|
211
120
|
try {
|
|
212
121
|
const version = await getNpmPackageVersion(plugin.name, 'dev');
|
|
213
122
|
plugin.devVersion = version;
|
|
@@ -215,7 +124,6 @@ export async function getPluginDevVersion(log, server, plugin) {
|
|
|
215
124
|
if (plugin.version.includes('-dev-') && plugin.version !== plugin.devVersion) {
|
|
216
125
|
log.notice(`The plugin ${plg}${plugin.name}${nt} is out of date. Current version: ${plugin.version}. Latest dev version: ${plugin.devVersion}.`);
|
|
217
126
|
server.request({ type: 'frontend_refreshrequired', src: server.name, dst: 'frontend', params: { changed: 'plugins' } });
|
|
218
|
-
// matterbridge.frontend.wssSendRefreshRequired('plugins');
|
|
219
127
|
}
|
|
220
128
|
else if (plugin.version.includes('-dev-') && plugin.version === plugin.devVersion) {
|
|
221
129
|
log.debug(`The plugin ${plg}${plugin.name}${db} is up to date. Current version: ${plugin.version}. Latest dev version: ${plugin.devVersion}.`);
|
|
@@ -226,4 +134,3 @@ export async function getPluginDevVersion(log, server, plugin) {
|
|
|
226
134
|
log.debug(`Error getting plugin ${plg}${plugin.name}${db} latest dev version: ${error instanceof Error ? error.message : error}`);
|
|
227
135
|
}
|
|
228
136
|
}
|
|
229
|
-
//# sourceMappingURL=update.js.map
|
package/dist/utils/export.d.ts
CHANGED
|
@@ -1,13 +1 @@
|
|
|
1
|
-
export * from '
|
|
2
|
-
export * from './commandLine.js';
|
|
3
|
-
export * from './isValid.js';
|
|
4
|
-
export * from './colorUtils.js';
|
|
5
|
-
export * from './deepCopy.js';
|
|
6
|
-
export * from './deepEqual.js';
|
|
7
|
-
export * from './copyDirectory.js';
|
|
8
|
-
export * from './createDirectory.js';
|
|
9
|
-
export * from './createZip.js';
|
|
10
|
-
export * from './wait.js';
|
|
11
|
-
export * from './hex.js';
|
|
12
|
-
export * from './error.js';
|
|
13
|
-
//# sourceMappingURL=export.d.ts.map
|
|
1
|
+
export * from '@matterbridge/utils';
|
package/dist/utils/export.js
CHANGED
|
@@ -1,13 +1 @@
|
|
|
1
|
-
export * from '
|
|
2
|
-
export * from './commandLine.js';
|
|
3
|
-
export * from './isValid.js';
|
|
4
|
-
export * from './colorUtils.js';
|
|
5
|
-
export * from './deepCopy.js';
|
|
6
|
-
export * from './deepEqual.js';
|
|
7
|
-
export * from './copyDirectory.js';
|
|
8
|
-
export * from './createDirectory.js';
|
|
9
|
-
export * from './createZip.js';
|
|
10
|
-
export * from './wait.js';
|
|
11
|
-
export * from './hex.js';
|
|
12
|
-
export * from './error.js';
|
|
13
|
-
//# sourceMappingURL=export.js.map
|
|
1
|
+
export * from '@matterbridge/utils';
|
|
@@ -1,25 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the workerGlobalPrefix functions.
|
|
3
|
-
*
|
|
4
|
-
* @file workerGlobalPrefix.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-11-25
|
|
7
|
-
* @version 1.0.0
|
|
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 {};
|
|
25
|
-
//# sourceMappingURL=workerGlobalPrefix.d.ts.map
|
|
@@ -1,46 +1,17 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the workerGlobalPrefix functions.
|
|
3
|
-
*
|
|
4
|
-
* @file workerGlobalPrefix.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-11-25
|
|
7
|
-
* @version 1.0.0
|
|
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 { threadId, isMainThread, parentPort, workerData } from 'node:worker_threads';
|
|
25
2
|
import { AnsiLogger } from 'node-ansi-logger';
|
|
26
|
-
import { getGlobalNodeModules } from '
|
|
3
|
+
import { getGlobalNodeModules, hasParameter, inspectError } from '@matterbridge/utils';
|
|
27
4
|
import { BroadcastServer } from './broadcastServer.js';
|
|
28
|
-
import { inspectError } from './utils/error.js';
|
|
29
5
|
import { logWorkerInfo, parentLog, parentPost } from './workers.js';
|
|
30
|
-
import { hasParameter } from './utils/commandLine.js';
|
|
31
6
|
const debug = hasParameter('debug') || hasParameter('verbose');
|
|
32
7
|
const verbose = hasParameter('verbose');
|
|
33
|
-
// Send init message
|
|
34
|
-
// istanbul ignore next cause it's available only in worker threads
|
|
35
8
|
if (!isMainThread && parentPort) {
|
|
36
9
|
parentPost({ type: 'init', threadId, threadName: workerData.threadName, success: true });
|
|
37
10
|
if (debug)
|
|
38
|
-
parentLog('MatterbridgePrefix', "info"
|
|
11
|
+
parentLog('MatterbridgePrefix', "info", `Worker ${workerData.threadName}:${threadId} initialized.`);
|
|
39
12
|
}
|
|
40
|
-
|
|
41
|
-
const log = new AnsiLogger({ logName: 'MatterbridgePrefix', logTimestampFormat: 4 /* TimestampFormat.TIME_MILLIS */, logLevel: debug ? "debug" /* LogLevel.DEBUG */ : "info" /* LogLevel.INFO */ });
|
|
13
|
+
const log = new AnsiLogger({ logName: 'MatterbridgePrefix', logTimestampFormat: 4, logLevel: debug ? "debug" : "info" });
|
|
42
14
|
const server = new BroadcastServer('matterbridge', log);
|
|
43
|
-
// Log worker info
|
|
44
15
|
if (verbose)
|
|
45
16
|
logWorkerInfo(log, verbose);
|
|
46
17
|
let prefix;
|
|
@@ -51,21 +22,16 @@ try {
|
|
|
51
22
|
server.request({ type: 'matterbridge_global_prefix', src: `matterbridge`, dst: 'matterbridge', params: { prefix } });
|
|
52
23
|
success = true;
|
|
53
24
|
if (!isMainThread && parentPort)
|
|
54
|
-
parentLog('MatterbridgePrefix', "debug"
|
|
25
|
+
parentLog('MatterbridgePrefix', "debug", `Global node_modules Directory: ${prefix}`);
|
|
55
26
|
}
|
|
56
27
|
catch (error) {
|
|
57
|
-
// istanbul ignore next cause it's just an error log
|
|
58
28
|
const errorMessage = inspectError(log, `Failed to get global node modules`, error);
|
|
59
|
-
// istanbul ignore next cause it's just an error log
|
|
60
29
|
if (!isMainThread && parentPort)
|
|
61
|
-
parentLog('MatterbridgePrefix', "error"
|
|
30
|
+
parentLog('MatterbridgePrefix', "error", errorMessage);
|
|
62
31
|
}
|
|
63
32
|
server.close();
|
|
64
|
-
// Send exit message
|
|
65
|
-
// istanbul ignore next cause it's available only in worker threads
|
|
66
33
|
if (!isMainThread && parentPort) {
|
|
67
34
|
parentPost({ type: 'exit', threadId, threadName: workerData.threadName, success });
|
|
68
35
|
if (debug)
|
|
69
|
-
parentLog('MatterbridgePrefix', "info"
|
|
36
|
+
parentLog('MatterbridgePrefix', "info", `Worker ${workerData.threadName}:${threadId} exiting with success: ${success}.`);
|
|
70
37
|
}
|
|
71
|
-
//# sourceMappingURL=workerGlobalPrefix.js.map
|
package/dist/workerTypes.d.ts
CHANGED
|
@@ -1,28 +1,4 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the worker types.
|
|
3
|
-
*
|
|
4
|
-
* @file workerTypes.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-11-25
|
|
7
|
-
* @version 1.0.0
|
|
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 { LogLevel } from 'node-ansi-logger';
|
|
25
|
-
/** Control messages sent through parentPort manager <-> workers */
|
|
26
2
|
export type ParentPortMessage = {
|
|
27
3
|
type: 'init';
|
|
28
4
|
threadName: string | null;
|
|
@@ -49,4 +25,3 @@ export type ParentPortMessage = {
|
|
|
49
25
|
threadId: number;
|
|
50
26
|
success: boolean;
|
|
51
27
|
};
|
|
52
|
-
//# sourceMappingURL=workerTypes.d.ts.map
|
package/dist/workerTypes.js
CHANGED
|
@@ -1,25 +1 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the worker types.
|
|
3
|
-
*
|
|
4
|
-
* @file workerTypes.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-11-25
|
|
7
|
-
* @version 1.0.0
|
|
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 {};
|
|
25
|
-
//# sourceMappingURL=workerTypes.js.map
|
package/dist/workers.d.ts
CHANGED
|
@@ -1,69 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the worker functions.
|
|
3
|
-
*
|
|
4
|
-
* @file workers.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-11-25
|
|
7
|
-
* @version 1.0.0
|
|
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 { Worker } from 'node:worker_threads';
|
|
25
2
|
import { AnsiLogger, LogLevel } from 'node-ansi-logger';
|
|
26
3
|
import type { ParentPortMessage } from './workerTypes.js';
|
|
27
|
-
/**
|
|
28
|
-
* Sends a control message to the parent through parentPort
|
|
29
|
-
*
|
|
30
|
-
* @param {ControlMessage} message - The control message to send.
|
|
31
|
-
*/
|
|
32
4
|
export declare function parentPost(message: ParentPortMessage): void;
|
|
33
|
-
/**
|
|
34
|
-
* Sends a control message to the parent through parentPort to log a message.
|
|
35
|
-
*
|
|
36
|
-
* @param {string | undefined} logName - The name of the logger.
|
|
37
|
-
* @param {LogLevel} logLevel - The log level of the message.
|
|
38
|
-
* @param {string} message - The log message to send.
|
|
39
|
-
*/
|
|
40
5
|
export declare function parentLog(logName: string | undefined, logLevel: LogLevel, message: string): void;
|
|
41
|
-
/**
|
|
42
|
-
* Typed helper to create an ESM Worker.
|
|
43
|
-
*
|
|
44
|
-
* This function uses pathToFileURL to convert the relative path to a file URL,
|
|
45
|
-
* which is necessary for ESM modules. It also sets the worker type to 'module'.
|
|
46
|
-
*
|
|
47
|
-
* @param {string} name - name of the worker
|
|
48
|
-
* @param {string} relativePath - path to the worker file code: it must be an ESM module in javascript
|
|
49
|
-
* @param {Record<string, boolean | number | string | object>} [workerData] - optional data to pass to the worker
|
|
50
|
-
* @param {string[]} [argv] - optional command line arguments to pass to the worker. If not provided, inherits from the main thread.
|
|
51
|
-
* @param {NodeJS.ProcessEnv} [env] - optional environment variables to pass to the worker. If not provided, inherits from the main thread.
|
|
52
|
-
* @param {string[]} [execArgv] - optional execArgv to pass to the worker. If not provided no execArgv are passed.
|
|
53
|
-
* @returns {Worker} - the created Worker instance
|
|
54
|
-
*
|
|
55
|
-
* @example
|
|
56
|
-
* ```typescript
|
|
57
|
-
* createESMWorker('NpmCommand', './dist/npmCommand.js', { command: 'npm list --global --depth=0' });
|
|
58
|
-
* ```
|
|
59
|
-
*/
|
|
60
6
|
export declare function createESMWorker(name: string, relativePath: string, workerData?: Record<string, boolean | number | string | object>, argv?: string[], env?: NodeJS.ProcessEnv, execArgv?: string[]): Worker;
|
|
61
|
-
/**
|
|
62
|
-
* Log worker information.
|
|
63
|
-
*
|
|
64
|
-
* @param {AnsiLogger} log - The logger instance to use for logging.
|
|
65
|
-
* @param {boolean} [logEnv] - Whether to log environment variables. Defaults to false.
|
|
66
|
-
*/
|
|
67
7
|
export declare function logWorkerInfo(log: AnsiLogger, logEnv?: boolean): void;
|
|
68
8
|
export { ParentPortMessage };
|
|
69
|
-
//# sourceMappingURL=workers.d.ts.map
|
package/dist/workers.js
CHANGED
|
@@ -1,94 +1,31 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file contains the worker functions.
|
|
3
|
-
*
|
|
4
|
-
* @file workers.ts
|
|
5
|
-
* @author Luca Liguori
|
|
6
|
-
* @created 2025-11-25
|
|
7
|
-
* @version 1.0.0
|
|
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 { isMainThread, parentPort, threadId, Worker, workerData } from 'node:worker_threads';
|
|
25
2
|
import { pathToFileURL } from 'node:url';
|
|
26
3
|
import { resolve } from 'node:path';
|
|
27
4
|
import { inspect } from 'node:util';
|
|
28
|
-
/**
|
|
29
|
-
* Sends a control message to the parent through parentPort
|
|
30
|
-
*
|
|
31
|
-
* @param {ControlMessage} message - The control message to send.
|
|
32
|
-
*/
|
|
33
|
-
// istanbul ignore next cause it's available only in worker threads
|
|
34
5
|
export function parentPost(message) {
|
|
35
6
|
if (!parentPort)
|
|
36
7
|
throw new Error(`WorkerServer ${workerData.threadName}: parentPort is not available.`);
|
|
37
8
|
parentPort.postMessage(message);
|
|
38
9
|
}
|
|
39
|
-
/**
|
|
40
|
-
* Sends a control message to the parent through parentPort to log a message.
|
|
41
|
-
*
|
|
42
|
-
* @param {string | undefined} logName - The name of the logger.
|
|
43
|
-
* @param {LogLevel} logLevel - The log level of the message.
|
|
44
|
-
* @param {string} message - The log message to send.
|
|
45
|
-
*/
|
|
46
|
-
// istanbul ignore next cause it's available only in worker threads
|
|
47
10
|
export function parentLog(logName, logLevel, message) {
|
|
48
11
|
if (!parentPort)
|
|
49
12
|
throw new Error(`WorkerServer ${workerData.threadName}: parentPort is not available.`);
|
|
50
13
|
const logMessage = { type: 'log', threadId, threadName: workerData.threadName, logName, logLevel, message };
|
|
51
14
|
parentPort.postMessage(logMessage);
|
|
52
15
|
}
|
|
53
|
-
/**
|
|
54
|
-
* Typed helper to create an ESM Worker.
|
|
55
|
-
*
|
|
56
|
-
* This function uses pathToFileURL to convert the relative path to a file URL,
|
|
57
|
-
* which is necessary for ESM modules. It also sets the worker type to 'module'.
|
|
58
|
-
*
|
|
59
|
-
* @param {string} name - name of the worker
|
|
60
|
-
* @param {string} relativePath - path to the worker file code: it must be an ESM module in javascript
|
|
61
|
-
* @param {Record<string, boolean | number | string | object>} [workerData] - optional data to pass to the worker
|
|
62
|
-
* @param {string[]} [argv] - optional command line arguments to pass to the worker. If not provided, inherits from the main thread.
|
|
63
|
-
* @param {NodeJS.ProcessEnv} [env] - optional environment variables to pass to the worker. If not provided, inherits from the main thread.
|
|
64
|
-
* @param {string[]} [execArgv] - optional execArgv to pass to the worker. If not provided no execArgv are passed.
|
|
65
|
-
* @returns {Worker} - the created Worker instance
|
|
66
|
-
*
|
|
67
|
-
* @example
|
|
68
|
-
* ```typescript
|
|
69
|
-
* createESMWorker('NpmCommand', './dist/npmCommand.js', { command: 'npm list --global --depth=0' });
|
|
70
|
-
* ```
|
|
71
|
-
*/
|
|
72
16
|
export function createESMWorker(name, relativePath, workerData, argv, env, execArgv) {
|
|
73
17
|
const fileURL = pathToFileURL(resolve(relativePath));
|
|
74
18
|
const options = {
|
|
75
|
-
workerData: { ...workerData, threadName: name },
|
|
19
|
+
workerData: { ...workerData, threadName: name },
|
|
76
20
|
type: 'module',
|
|
77
21
|
name,
|
|
78
|
-
argv: argv ?? process.argv.slice(2),
|
|
79
|
-
env: env ?? process.env,
|
|
80
|
-
execArgv,
|
|
22
|
+
argv: argv ?? process.argv.slice(2),
|
|
23
|
+
env: env ?? process.env,
|
|
24
|
+
execArgv,
|
|
81
25
|
};
|
|
82
26
|
return new Worker(fileURL, options);
|
|
83
27
|
}
|
|
84
|
-
/**
|
|
85
|
-
* Log worker information.
|
|
86
|
-
*
|
|
87
|
-
* @param {AnsiLogger} log - The logger instance to use for logging.
|
|
88
|
-
* @param {boolean} [logEnv] - Whether to log environment variables. Defaults to false.
|
|
89
|
-
*/
|
|
90
28
|
export function logWorkerInfo(log, logEnv = false) {
|
|
91
|
-
// Log worker info
|
|
92
29
|
log.debug(`${isMainThread ? 'Main thread' : 'Worker thread'}: ${workerData?.threadName}:${threadId} Pid: ${process.pid}`);
|
|
93
30
|
log.debug(`ParentPort: ${parentPort ? 'active' : 'not active'}`);
|
|
94
31
|
log.debug(`WorkerData: ${workerData ? inspect(workerData, true, 10, true) : 'none'}`);
|
|
@@ -96,4 +33,3 @@ export function logWorkerInfo(log, logEnv = false) {
|
|
|
96
33
|
log.debug(`Argv: ${argv.length ? argv.join(' ') : 'none'}`);
|
|
97
34
|
log.debug(`Env: ${logEnv ? inspect(process.env, true, 10, true) : 'not logged'}`);
|
|
98
35
|
}
|
|
99
|
-
//# sourceMappingURL=workers.js.map
|