matterbridge 3.4.3-dev-20251209-e6cb85f → 3.4.3
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 +2 -3
- package/dist/broadcastServer.d.ts +144 -0
- package/dist/broadcastServer.d.ts.map +1 -0
- package/dist/broadcastServer.js +119 -0
- package/dist/broadcastServer.js.map +1 -0
- package/dist/broadcastServerTypes.d.ts +841 -0
- package/dist/broadcastServerTypes.d.ts.map +1 -0
- package/dist/broadcastServerTypes.js +24 -0
- package/dist/broadcastServerTypes.js.map +1 -0
- package/dist/cli.d.ts +30 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +97 -1
- package/dist/cli.js.map +1 -0
- package/dist/cliEmitter.d.ts +50 -0
- package/dist/cliEmitter.d.ts.map +1 -0
- package/dist/cliEmitter.js +37 -0
- package/dist/cliEmitter.js.map +1 -0
- package/dist/cliHistory.d.ts +48 -0
- package/dist/cliHistory.d.ts.map +1 -0
- package/dist/cliHistory.js +38 -0
- package/dist/cliHistory.js.map +1 -0
- package/dist/clusters/export.d.ts +2 -0
- package/dist/clusters/export.d.ts.map +1 -0
- package/dist/clusters/export.js +2 -0
- package/dist/clusters/export.js.map +1 -0
- package/dist/deviceManager.d.ts +135 -0
- package/dist/deviceManager.d.ts.map +1 -0
- package/dist/deviceManager.js +113 -1
- package/dist/deviceManager.js.map +1 -0
- package/dist/devices/airConditioner.d.ts +98 -0
- package/dist/devices/airConditioner.d.ts.map +1 -0
- package/dist/devices/airConditioner.js +57 -0
- package/dist/devices/airConditioner.js.map +1 -0
- package/dist/devices/batteryStorage.d.ts +48 -0
- package/dist/devices/batteryStorage.d.ts.map +1 -0
- package/dist/devices/batteryStorage.js +48 -1
- package/dist/devices/batteryStorage.js.map +1 -0
- package/dist/devices/cooktop.d.ts +61 -0
- package/dist/devices/cooktop.d.ts.map +1 -0
- package/dist/devices/cooktop.js +56 -0
- package/dist/devices/cooktop.js.map +1 -0
- package/dist/devices/dishwasher.d.ts +71 -0
- package/dist/devices/dishwasher.d.ts.map +1 -0
- package/dist/devices/dishwasher.js +57 -0
- package/dist/devices/dishwasher.js.map +1 -0
- package/dist/devices/evse.d.ts +76 -0
- package/dist/devices/evse.d.ts.map +1 -0
- package/dist/devices/evse.js +74 -10
- package/dist/devices/evse.js.map +1 -0
- package/dist/devices/export.d.ts +17 -0
- package/dist/devices/export.d.ts.map +1 -0
- package/dist/devices/export.js +5 -0
- package/dist/devices/export.js.map +1 -0
- package/dist/devices/extractorHood.d.ts +46 -0
- package/dist/devices/extractorHood.d.ts.map +1 -0
- package/dist/devices/extractorHood.js +43 -0
- package/dist/devices/extractorHood.js.map +1 -0
- package/dist/devices/heatPump.d.ts +47 -0
- package/dist/devices/heatPump.d.ts.map +1 -0
- package/dist/devices/heatPump.js +50 -2
- package/dist/devices/heatPump.js.map +1 -0
- package/dist/devices/laundryDryer.d.ts +67 -0
- package/dist/devices/laundryDryer.d.ts.map +1 -0
- package/dist/devices/laundryDryer.js +62 -3
- package/dist/devices/laundryDryer.js.map +1 -0
- package/dist/devices/laundryWasher.d.ts +81 -0
- package/dist/devices/laundryWasher.d.ts.map +1 -0
- package/dist/devices/laundryWasher.js +70 -4
- package/dist/devices/laundryWasher.js.map +1 -0
- package/dist/devices/microwaveOven.d.ts +168 -0
- package/dist/devices/microwaveOven.d.ts.map +1 -0
- package/dist/devices/microwaveOven.js +88 -5
- package/dist/devices/microwaveOven.js.map +1 -0
- package/dist/devices/oven.d.ts +105 -0
- package/dist/devices/oven.d.ts.map +1 -0
- package/dist/devices/oven.js +85 -0
- package/dist/devices/oven.js.map +1 -0
- package/dist/devices/refrigerator.d.ts +118 -0
- package/dist/devices/refrigerator.d.ts.map +1 -0
- package/dist/devices/refrigerator.js +102 -0
- package/dist/devices/refrigerator.js.map +1 -0
- package/dist/devices/roboticVacuumCleaner.d.ts +112 -0
- package/dist/devices/roboticVacuumCleaner.d.ts.map +1 -0
- package/dist/devices/roboticVacuumCleaner.js +100 -9
- package/dist/devices/roboticVacuumCleaner.js.map +1 -0
- package/dist/devices/solarPower.d.ts +40 -0
- package/dist/devices/solarPower.d.ts.map +1 -0
- package/dist/devices/solarPower.js +38 -0
- package/dist/devices/solarPower.js.map +1 -0
- package/dist/devices/speaker.d.ts +87 -0
- package/dist/devices/speaker.d.ts.map +1 -0
- package/dist/devices/speaker.js +84 -0
- package/dist/devices/speaker.js.map +1 -0
- package/dist/devices/temperatureControl.d.ts +166 -0
- package/dist/devices/temperatureControl.d.ts.map +1 -0
- package/dist/devices/temperatureControl.js +24 -3
- package/dist/devices/temperatureControl.js.map +1 -0
- package/dist/devices/waterHeater.d.ts +111 -0
- package/dist/devices/waterHeater.d.ts.map +1 -0
- package/dist/devices/waterHeater.js +82 -2
- package/dist/devices/waterHeater.js.map +1 -0
- package/dist/dgram/coap.d.ts +205 -0
- package/dist/dgram/coap.d.ts.map +1 -0
- package/dist/dgram/coap.js +126 -13
- package/dist/dgram/coap.js.map +1 -0
- package/dist/dgram/dgram.d.ts +141 -0
- package/dist/dgram/dgram.d.ts.map +1 -0
- package/dist/dgram/dgram.js +114 -2
- package/dist/dgram/dgram.js.map +1 -0
- package/dist/dgram/mb_coap.d.ts +24 -0
- package/dist/dgram/mb_coap.d.ts.map +1 -0
- package/dist/dgram/mb_coap.js +41 -3
- package/dist/dgram/mb_coap.js.map +1 -0
- package/dist/dgram/mb_mdns.d.ts +24 -0
- package/dist/dgram/mb_mdns.d.ts.map +1 -0
- package/dist/dgram/mb_mdns.js +80 -15
- package/dist/dgram/mb_mdns.js.map +1 -0
- package/dist/dgram/mdns.d.ts +290 -0
- package/dist/dgram/mdns.d.ts.map +1 -0
- package/dist/dgram/mdns.js +299 -137
- package/dist/dgram/mdns.js.map +1 -0
- package/dist/dgram/multicast.d.ts +67 -0
- package/dist/dgram/multicast.d.ts.map +1 -0
- package/dist/dgram/multicast.js +62 -1
- package/dist/dgram/multicast.js.map +1 -0
- package/dist/dgram/unicast.d.ts +56 -0
- package/dist/dgram/unicast.d.ts.map +1 -0
- package/dist/dgram/unicast.js +54 -0
- package/dist/dgram/unicast.js.map +1 -0
- package/dist/frontend.d.ts +238 -0
- package/dist/frontend.d.ts.map +1 -0
- package/dist/frontend.js +455 -35
- package/dist/frontend.js.map +1 -0
- package/dist/frontendTypes.d.ts +529 -0
- package/dist/frontendTypes.d.ts.map +1 -0
- package/dist/frontendTypes.js +45 -0
- package/dist/frontendTypes.js.map +1 -0
- package/dist/helpers.d.ts +48 -0
- package/dist/helpers.d.ts.map +1 -0
- package/dist/helpers.js +53 -0
- package/dist/helpers.js.map +1 -0
- package/dist/index.d.ts +34 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +25 -0
- package/dist/index.js.map +1 -0
- package/dist/jestutils/export.d.ts +2 -0
- package/dist/jestutils/export.d.ts.map +1 -0
- package/dist/jestutils/export.js +1 -0
- package/dist/jestutils/export.js.map +1 -0
- package/dist/jestutils/jestHelpers.d.ts +345 -0
- package/dist/jestutils/jestHelpers.d.ts.map +1 -0
- package/dist/jestutils/jestHelpers.js +371 -14
- package/dist/jestutils/jestHelpers.js.map +1 -0
- package/dist/logger/export.d.ts +2 -0
- package/dist/logger/export.d.ts.map +1 -0
- package/dist/logger/export.js +1 -0
- package/dist/logger/export.js.map +1 -0
- package/dist/matter/behaviors.d.ts +2 -0
- package/dist/matter/behaviors.d.ts.map +1 -0
- package/dist/matter/behaviors.js +2 -0
- package/dist/matter/behaviors.js.map +1 -0
- package/dist/matter/clusters.d.ts +2 -0
- package/dist/matter/clusters.d.ts.map +1 -0
- package/dist/matter/clusters.js +2 -0
- package/dist/matter/clusters.js.map +1 -0
- package/dist/matter/devices.d.ts +2 -0
- package/dist/matter/devices.d.ts.map +1 -0
- package/dist/matter/devices.js +2 -0
- package/dist/matter/devices.js.map +1 -0
- package/dist/matter/endpoints.d.ts +2 -0
- package/dist/matter/endpoints.d.ts.map +1 -0
- package/dist/matter/endpoints.js +2 -0
- package/dist/matter/endpoints.js.map +1 -0
- package/dist/matter/export.d.ts +5 -0
- package/dist/matter/export.d.ts.map +1 -0
- package/dist/matter/export.js +3 -0
- package/dist/matter/export.js.map +1 -0
- package/dist/matter/types.d.ts +3 -0
- package/dist/matter/types.d.ts.map +1 -0
- package/dist/matter/types.js +3 -0
- package/dist/matter/types.js.map +1 -0
- package/dist/matterNode.d.ts +342 -0
- package/dist/matterNode.d.ts.map +1 -0
- package/dist/matterNode.js +369 -8
- package/dist/matterNode.js.map +1 -0
- package/dist/matterbridge.d.ts +492 -0
- package/dist/matterbridge.d.ts.map +1 -0
- package/dist/matterbridge.js +811 -46
- package/dist/matterbridge.js.map +1 -0
- package/dist/matterbridgeAccessoryPlatform.d.ts +41 -0
- package/dist/matterbridgeAccessoryPlatform.d.ts.map +1 -0
- package/dist/matterbridgeAccessoryPlatform.js +38 -0
- package/dist/matterbridgeAccessoryPlatform.js.map +1 -0
- package/dist/matterbridgeBehaviors.d.ts +2404 -0
- package/dist/matterbridgeBehaviors.d.ts.map +1 -0
- package/dist/matterbridgeBehaviors.js +68 -5
- package/dist/matterbridgeBehaviors.js.map +1 -0
- package/dist/matterbridgeDeviceTypes.d.ts +698 -0
- package/dist/matterbridgeDeviceTypes.d.ts.map +1 -0
- package/dist/matterbridgeDeviceTypes.js +635 -14
- package/dist/matterbridgeDeviceTypes.js.map +1 -0
- package/dist/matterbridgeDynamicPlatform.d.ts +41 -0
- package/dist/matterbridgeDynamicPlatform.d.ts.map +1 -0
- package/dist/matterbridgeDynamicPlatform.js +38 -0
- package/dist/matterbridgeDynamicPlatform.js.map +1 -0
- package/dist/matterbridgeEndpoint.d.ts +1507 -0
- package/dist/matterbridgeEndpoint.d.ts.map +1 -0
- package/dist/matterbridgeEndpoint.js +1444 -53
- package/dist/matterbridgeEndpoint.js.map +1 -0
- package/dist/matterbridgeEndpointHelpers.d.ts +787 -0
- package/dist/matterbridgeEndpointHelpers.d.ts.map +1 -0
- package/dist/matterbridgeEndpointHelpers.js +483 -20
- package/dist/matterbridgeEndpointHelpers.js.map +1 -0
- package/dist/matterbridgeEndpointTypes.d.ts +166 -0
- package/dist/matterbridgeEndpointTypes.d.ts.map +1 -0
- package/dist/matterbridgeEndpointTypes.js +25 -0
- package/dist/matterbridgeEndpointTypes.js.map +1 -0
- package/dist/matterbridgePlatform.d.ts +539 -0
- package/dist/matterbridgePlatform.d.ts.map +1 -0
- package/dist/matterbridgePlatform.js +451 -1
- package/dist/matterbridgePlatform.js.map +1 -0
- package/dist/matterbridgeTypes.d.ts +251 -0
- package/dist/matterbridgeTypes.d.ts.map +1 -0
- package/dist/matterbridgeTypes.js +26 -0
- package/dist/matterbridgeTypes.js.map +1 -0
- package/dist/pluginManager.d.ts +372 -0
- package/dist/pluginManager.d.ts.map +1 -0
- package/dist/pluginManager.js +341 -5
- package/dist/pluginManager.js.map +1 -0
- package/dist/shelly.d.ts +181 -0
- package/dist/shelly.d.ts.map +1 -0
- package/dist/shelly.js +178 -7
- package/dist/shelly.js.map +1 -0
- package/dist/storage/export.d.ts +2 -0
- package/dist/storage/export.d.ts.map +1 -0
- package/dist/storage/export.js +1 -0
- package/dist/storage/export.js.map +1 -0
- package/dist/update.d.ts +84 -0
- package/dist/update.d.ts.map +1 -0
- package/dist/update.js +93 -1
- package/dist/update.js.map +1 -0
- package/dist/utils/colorUtils.d.ts +101 -0
- package/dist/utils/colorUtils.d.ts.map +1 -0
- package/dist/utils/colorUtils.js +97 -2
- package/dist/utils/colorUtils.js.map +1 -0
- package/dist/utils/commandLine.d.ts +66 -0
- package/dist/utils/commandLine.d.ts.map +1 -0
- package/dist/utils/commandLine.js +60 -0
- package/dist/utils/commandLine.js.map +1 -0
- package/dist/utils/copyDirectory.d.ts +35 -0
- package/dist/utils/copyDirectory.d.ts.map +1 -0
- package/dist/utils/copyDirectory.js +37 -0
- package/dist/utils/copyDirectory.js.map +1 -0
- package/dist/utils/createDirectory.d.ts +34 -0
- package/dist/utils/createDirectory.d.ts.map +1 -0
- package/dist/utils/createDirectory.js +33 -0
- package/dist/utils/createDirectory.js.map +1 -0
- package/dist/utils/createZip.d.ts +39 -0
- package/dist/utils/createZip.d.ts.map +1 -0
- package/dist/utils/createZip.js +47 -2
- package/dist/utils/createZip.js.map +1 -0
- package/dist/utils/deepCopy.d.ts +32 -0
- package/dist/utils/deepCopy.d.ts.map +1 -0
- package/dist/utils/deepCopy.js +39 -0
- package/dist/utils/deepCopy.js.map +1 -0
- package/dist/utils/deepEqual.d.ts +54 -0
- package/dist/utils/deepEqual.d.ts.map +1 -0
- package/dist/utils/deepEqual.js +72 -1
- package/dist/utils/deepEqual.js.map +1 -0
- package/dist/utils/error.d.ts +45 -0
- package/dist/utils/error.d.ts.map +1 -0
- package/dist/utils/error.js +42 -0
- package/dist/utils/error.js.map +1 -0
- package/dist/utils/export.d.ts +13 -0
- package/dist/utils/export.d.ts.map +1 -0
- package/dist/utils/export.js +1 -0
- package/dist/utils/export.js.map +1 -0
- package/dist/utils/format.d.ts +53 -0
- package/dist/utils/format.d.ts.map +1 -0
- package/dist/utils/format.js +49 -0
- package/dist/utils/format.js.map +1 -0
- package/dist/utils/hex.d.ts +89 -0
- package/dist/utils/hex.d.ts.map +1 -0
- package/dist/utils/hex.js +124 -0
- package/dist/utils/hex.js.map +1 -0
- package/dist/utils/inspector.d.ts +87 -0
- package/dist/utils/inspector.d.ts.map +1 -0
- package/dist/utils/inspector.js +69 -1
- package/dist/utils/inspector.js.map +1 -0
- package/dist/utils/isvalid.d.ts +103 -0
- package/dist/utils/isvalid.d.ts.map +1 -0
- package/dist/utils/isvalid.js +101 -0
- package/dist/utils/isvalid.js.map +1 -0
- package/dist/utils/network.d.ts +111 -0
- package/dist/utils/network.d.ts.map +1 -0
- package/dist/utils/network.js +96 -5
- package/dist/utils/network.js.map +1 -0
- package/dist/utils/spawn.d.ts +33 -0
- package/dist/utils/spawn.d.ts.map +1 -0
- package/dist/utils/spawn.js +71 -1
- package/dist/utils/spawn.js.map +1 -0
- package/dist/utils/tracker.d.ts +108 -0
- package/dist/utils/tracker.d.ts.map +1 -0
- package/dist/utils/tracker.js +64 -1
- package/dist/utils/tracker.js.map +1 -0
- package/dist/utils/wait.d.ts +54 -0
- package/dist/utils/wait.d.ts.map +1 -0
- package/dist/utils/wait.js +60 -8
- package/dist/utils/wait.js.map +1 -0
- package/dist/workerGlobalPrefix.d.ts +25 -0
- package/dist/workerGlobalPrefix.d.ts.map +1 -0
- package/dist/workerGlobalPrefix.js +37 -5
- package/dist/workerGlobalPrefix.js.map +1 -0
- package/dist/workerTypes.d.ts +52 -0
- package/dist/workerTypes.d.ts.map +1 -0
- package/dist/workerTypes.js +24 -0
- package/dist/workerTypes.js.map +1 -0
- package/dist/workers.d.ts +69 -0
- package/dist/workers.d.ts.map +1 -0
- package/dist/workers.js +68 -4
- package/dist/workers.js.map +1 -0
- package/npm-shrinkwrap.json +2 -2
- package/package.json +2 -1
- package/scripts/data_model.mjs +2058 -0
package/dist/helpers.js
CHANGED
|
@@ -1,3 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file contains the helpers functions of Matterbridge.
|
|
3
|
+
*
|
|
4
|
+
* @file helpers.ts
|
|
5
|
+
* @author Luca Liguori
|
|
6
|
+
* @created 2025-05-12
|
|
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
|
+
// @matter module
|
|
1
25
|
import { OnOff } from '@matter/types/clusters/on-off';
|
|
2
26
|
import { Endpoint } from '@matter/node';
|
|
3
27
|
import { BridgedDeviceBasicInformationServer } from '@matter/node/behaviors/bridged-device-basic-information';
|
|
@@ -6,8 +30,24 @@ import { OnOffPlugInUnitDevice } from '@matter/node/devices/on-off-plug-in-unit'
|
|
|
6
30
|
import { MountedOnOffControlDevice } from '@matter/node/devices/mounted-on-off-control';
|
|
7
31
|
import { OnOffLightDevice } from '@matter/node/devices/on-off-light';
|
|
8
32
|
import { OnOffLightSwitchDevice } from '@matter/node/devices/on-off-light-switch';
|
|
33
|
+
// Matterbridge
|
|
9
34
|
import { hasParameter } from './utils/commandLine.js';
|
|
35
|
+
/**
|
|
36
|
+
* Adds a virtual device to the provided endpoint, sets up an event listener for device state changes,
|
|
37
|
+
* and ensures the device is initialized in the off state.
|
|
38
|
+
*
|
|
39
|
+
* @param {Endpoint<AggregatorEndpoint>} aggregatorEndpoint - The aggragator endpoint to which the virtual device will be added.
|
|
40
|
+
* @param {string} name - The name of the virtual device. Spaces in the name are removed to form the device ID.
|
|
41
|
+
* @param {'light' | 'outlet' | 'switch' | 'mounted_switch'} type - The type of the virtual device. Can be 'light', 'outlet', 'switch', or 'mounted_switch'.
|
|
42
|
+
* @param {() => Promise<void>} callback - A callback function that gets executed when the device's on/off state changes to true.
|
|
43
|
+
* @returns {Promise<Endpoint>} A promise that resolves with the created virtual device.
|
|
44
|
+
* @remarks The virtual device is created as an instance of `Endpoint` with the `OnOffPlugInUnitDevice` device type.
|
|
45
|
+
* The onOff state always reverts to false when the device is turned on.
|
|
46
|
+
*/
|
|
10
47
|
export async function addVirtualDevice(aggregatorEndpoint, name, type, callback) {
|
|
48
|
+
// Create a new virtual device by instantiating `Endpoint` with device information.
|
|
49
|
+
// The device ID is created by replacing all spaces in the name with an empty string.
|
|
50
|
+
// The node label of the bridged device basic information is set to the given name.
|
|
11
51
|
let deviceType;
|
|
12
52
|
switch (type) {
|
|
13
53
|
case 'light':
|
|
@@ -28,7 +68,9 @@ export async function addVirtualDevice(aggregatorEndpoint, name, type, callback)
|
|
|
28
68
|
bridgedDeviceBasicInformation: { nodeLabel: name.slice(0, 32) },
|
|
29
69
|
onOff: { onOff: false, startUpOnOff: OnOff.StartUpOnOff.Off },
|
|
30
70
|
});
|
|
71
|
+
// Set up an event listener for when the `onOff` state changes.
|
|
31
72
|
device.events.onOff.onOff$Changed.on((value) => {
|
|
73
|
+
// If the `onOff` state becomes true, turn off the virtual device and execute the callback.
|
|
32
74
|
if (value) {
|
|
33
75
|
callback();
|
|
34
76
|
process.nextTick(async () => {
|
|
@@ -36,14 +78,24 @@ export async function addVirtualDevice(aggregatorEndpoint, name, type, callback)
|
|
|
36
78
|
await device.setStateOf(OnOffBaseServer, { onOff: false });
|
|
37
79
|
}
|
|
38
80
|
catch (_error) {
|
|
81
|
+
// Not necessary to handle the error
|
|
39
82
|
}
|
|
40
83
|
});
|
|
41
84
|
}
|
|
42
85
|
});
|
|
86
|
+
// Add the created device to the given endpoint.
|
|
43
87
|
await aggregatorEndpoint.add(device);
|
|
88
|
+
// Initially set the state of the virtual device's `OnOffBaseServer` to false (off).
|
|
44
89
|
await device.setStateOf(OnOffBaseServer, { onOff: false });
|
|
45
90
|
return device;
|
|
46
91
|
}
|
|
92
|
+
/**
|
|
93
|
+
* Creates and add the virtual devices to the aggregator.
|
|
94
|
+
*
|
|
95
|
+
* @param {Matterbridge} matterbridge - The Matterbridge instance.
|
|
96
|
+
* @param {Endpoint<AggregatorEndpoint>} aggregatorEndpoint - The aggregator node to add the virtual devices to.
|
|
97
|
+
* @returns {Promise<void>} A promise that resolves when the virtual devices are added.
|
|
98
|
+
*/
|
|
47
99
|
export async function addVirtualDevices(matterbridge, aggregatorEndpoint) {
|
|
48
100
|
if (matterbridge.virtualMode !== 'disabled' && matterbridge.bridgeMode === 'bridge' && aggregatorEndpoint) {
|
|
49
101
|
matterbridge.log.notice(`Creating virtual devices for Matterbridge server node...`);
|
|
@@ -92,3 +144,4 @@ export async function addVirtualDevices(matterbridge, aggregatorEndpoint) {
|
|
|
92
144
|
}
|
|
93
145
|
}
|
|
94
146
|
}
|
|
147
|
+
//# sourceMappingURL=helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"helpers.js","sourceRoot":"","sources":["../src/helpers.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description This file contains the entry point of Matterbridge.
|
|
3
|
+
* @file index.ts
|
|
4
|
+
* @author Luca Liguori
|
|
5
|
+
* @created 2023-12-29
|
|
6
|
+
* @version 1.0.9
|
|
7
|
+
* @license Apache-2.0
|
|
8
|
+
*
|
|
9
|
+
* Copyright 2023, 2024, 2025 Luca Liguori.
|
|
10
|
+
*
|
|
11
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
+
* you may not use this file except in compliance with the License.
|
|
13
|
+
* You may obtain a copy of the License at
|
|
14
|
+
*
|
|
15
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
+
*
|
|
17
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
+
* See the License for the specific language governing permissions and
|
|
21
|
+
* limitations under the License.
|
|
22
|
+
*/
|
|
23
|
+
export * from './matterbridge.js';
|
|
24
|
+
export * from './matterbridgeTypes.js';
|
|
25
|
+
export * from './matterbridgeEndpoint.js';
|
|
26
|
+
export * from './matterbridgeEndpointHelpers.js';
|
|
27
|
+
export * from './matterbridgeEndpointTypes.js';
|
|
28
|
+
export * from './matterbridgeBehaviors.js';
|
|
29
|
+
export * from './matterbridgeDeviceTypes.js';
|
|
30
|
+
export * from './matterbridgePlatform.js';
|
|
31
|
+
export * from './matterbridgeAccessoryPlatform.js';
|
|
32
|
+
export * from './matterbridgeDynamicPlatform.js';
|
|
33
|
+
export { addVirtualDevice } from './helpers.js';
|
|
34
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAMH,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,5 +1,29 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description This file contains the entry point of Matterbridge.
|
|
3
|
+
* @file index.ts
|
|
4
|
+
* @author Luca Liguori
|
|
5
|
+
* @created 2023-12-29
|
|
6
|
+
* @version 1.0.9
|
|
7
|
+
* @license Apache-2.0
|
|
8
|
+
*
|
|
9
|
+
* Copyright 2023, 2024, 2025 Luca Liguori.
|
|
10
|
+
*
|
|
11
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
+
* you may not use this file except in compliance with the License.
|
|
13
|
+
* You may obtain a copy of the License at
|
|
14
|
+
*
|
|
15
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
+
*
|
|
17
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
+
* See the License for the specific language governing permissions and
|
|
21
|
+
* limitations under the License.
|
|
22
|
+
*/
|
|
23
|
+
// eslint-disable-next-line no-console
|
|
1
24
|
if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
2
25
|
console.log('\u001B[32mIndex loaded.\u001B[40;0m');
|
|
26
|
+
// Matterbridge
|
|
3
27
|
export * from './matterbridge.js';
|
|
4
28
|
export * from './matterbridgeTypes.js';
|
|
5
29
|
export * from './matterbridgeEndpoint.js';
|
|
@@ -11,3 +35,4 @@ export * from './matterbridgePlatform.js';
|
|
|
11
35
|
export * from './matterbridgeAccessoryPlatform.js';
|
|
12
36
|
export * from './matterbridgeDynamicPlatform.js';
|
|
13
37
|
export { addVirtualDevice } from './helpers.js';
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,sCAAsC;AACtC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC;IAAE,OAAO,CAAC,GAAG,CAAC,qCAAqC,CAAC,CAAC;AAE9H,eAAe;AACf,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AACjD,cAAc,gCAAgC,CAAC;AAC/C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,8BAA8B,CAAC;AAC7C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.d.ts","sourceRoot":"","sources":["../../src/jestutils/export.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
package/dist/jestutils/export.js
CHANGED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"export.js","sourceRoot":"","sources":["../../src/jestutils/export.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
|
|
@@ -0,0 +1,345 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @description This file contains the Jest helpers.
|
|
3
|
+
* @file src/helpers.test.ts
|
|
4
|
+
* @author Luca Liguori
|
|
5
|
+
* @created 2025-09-03
|
|
6
|
+
* @version 1.0.14
|
|
7
|
+
* @license Apache-2.0
|
|
8
|
+
*
|
|
9
|
+
* Copyright 2025, 2026, 2027 Luca Liguori.
|
|
10
|
+
*
|
|
11
|
+
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
12
|
+
* you may not use this file except in compliance with the License.
|
|
13
|
+
* You may obtain a copy of the License at
|
|
14
|
+
*
|
|
15
|
+
* http://www.apache.org/licenses/LICENSE-2.0
|
|
16
|
+
*
|
|
17
|
+
* Unless required by applicable law or agreed to in writing, software
|
|
18
|
+
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
19
|
+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
20
|
+
* See the License for the specific language governing permissions and
|
|
21
|
+
* limitations under the License.
|
|
22
|
+
*/
|
|
23
|
+
import type { jest } from '@jest/globals';
|
|
24
|
+
import { AnsiLogger } from 'node-ansi-logger';
|
|
25
|
+
import { Environment } from '@matter/general';
|
|
26
|
+
import { Endpoint, ServerNode } from '@matter/node';
|
|
27
|
+
import { DeviceTypeId } from '@matter/types/datatype';
|
|
28
|
+
import { AggregatorEndpoint } from '@matter/node/endpoints';
|
|
29
|
+
import { Matterbridge } from '../matterbridge.js';
|
|
30
|
+
import { MatterbridgePlatform } from '../matterbridgePlatform.js';
|
|
31
|
+
import { DeviceManager } from '../deviceManager.js';
|
|
32
|
+
import { PluginManager } from '../pluginManager.js';
|
|
33
|
+
import { Frontend } from '../frontend.js';
|
|
34
|
+
import { BroadcastServer } from '../broadcastServer.js';
|
|
35
|
+
import { MatterbridgeEndpoint } from '../matterbridgeEndpoint.js';
|
|
36
|
+
export declare const originalProcessArgv: readonly string[];
|
|
37
|
+
export declare const originalProcessEnv: Readonly<Record<string, string | undefined>>;
|
|
38
|
+
export declare let loggerLogSpy: jest.SpiedFunction<typeof AnsiLogger.prototype.log>;
|
|
39
|
+
export declare let loggerDebugSpy: jest.SpiedFunction<typeof AnsiLogger.prototype.debug>;
|
|
40
|
+
export declare let loggerInfoSpy: jest.SpiedFunction<typeof AnsiLogger.prototype.info>;
|
|
41
|
+
export declare let loggerNoticeSpy: jest.SpiedFunction<typeof AnsiLogger.prototype.notice>;
|
|
42
|
+
export declare let loggerWarnSpy: jest.SpiedFunction<typeof AnsiLogger.prototype.warn>;
|
|
43
|
+
export declare let loggerErrorSpy: jest.SpiedFunction<typeof AnsiLogger.prototype.error>;
|
|
44
|
+
export declare let loggerFatalSpy: jest.SpiedFunction<typeof AnsiLogger.prototype.fatal>;
|
|
45
|
+
export declare let consoleLogSpy: jest.SpiedFunction<typeof console.log>;
|
|
46
|
+
export declare let consoleDebugSpy: jest.SpiedFunction<typeof console.log>;
|
|
47
|
+
export declare let consoleInfoSpy: jest.SpiedFunction<typeof console.log>;
|
|
48
|
+
export declare let consoleWarnSpy: jest.SpiedFunction<typeof console.log>;
|
|
49
|
+
export declare let consoleErrorSpy: jest.SpiedFunction<typeof console.log>;
|
|
50
|
+
export declare let addBridgedEndpointSpy: jest.SpiedFunction<typeof Matterbridge.prototype.addBridgedEndpoint>;
|
|
51
|
+
export declare let removeBridgedEndpointSpy: jest.SpiedFunction<typeof Matterbridge.prototype.removeBridgedEndpoint>;
|
|
52
|
+
export declare let removeAllBridgedEndpointsSpy: jest.SpiedFunction<typeof Matterbridge.prototype.removeAllBridgedEndpoints>;
|
|
53
|
+
export declare let addVirtualEndpointSpy: jest.SpiedFunction<typeof Matterbridge.prototype.addVirtualEndpoint>;
|
|
54
|
+
export declare let setAttributeSpy: jest.SpiedFunction<typeof MatterbridgeEndpoint.prototype.setAttribute>;
|
|
55
|
+
export declare let updateAttributeSpy: jest.SpiedFunction<typeof MatterbridgeEndpoint.prototype.updateAttribute>;
|
|
56
|
+
export declare let triggerEventSpy: jest.SpiedFunction<typeof MatterbridgeEndpoint.prototype.triggerEvent>;
|
|
57
|
+
export declare let triggerSwitchEventSpy: jest.SpiedFunction<typeof MatterbridgeEndpoint.prototype.triggerSwitchEvent>;
|
|
58
|
+
export declare let installPluginSpy: jest.SpiedFunction<typeof PluginManager.prototype.install>;
|
|
59
|
+
export declare let uninstallPluginSpy: jest.SpiedFunction<typeof PluginManager.prototype.uninstall>;
|
|
60
|
+
export declare let addPluginSpy: jest.SpiedFunction<typeof PluginManager.prototype.add>;
|
|
61
|
+
export declare let loadPluginSpy: jest.SpiedFunction<typeof PluginManager.prototype.load>;
|
|
62
|
+
export declare let startPluginSpy: jest.SpiedFunction<typeof PluginManager.prototype.start>;
|
|
63
|
+
export declare let configurePluginSpy: jest.SpiedFunction<typeof PluginManager.prototype.configure>;
|
|
64
|
+
export declare let shutdownPluginSpy: jest.SpiedFunction<typeof PluginManager.prototype.shutdown>;
|
|
65
|
+
export declare let removePluginSpy: jest.SpiedFunction<typeof PluginManager.prototype.remove>;
|
|
66
|
+
export declare let enablePluginSpy: jest.SpiedFunction<typeof PluginManager.prototype.enable>;
|
|
67
|
+
export declare let disablePluginSpy: jest.SpiedFunction<typeof PluginManager.prototype.disable>;
|
|
68
|
+
export declare let wssSendSnackbarMessageSpy: jest.SpiedFunction<typeof Frontend.prototype.wssSendSnackbarMessage>;
|
|
69
|
+
export declare let wssSendCloseSnackbarMessageSpy: jest.SpiedFunction<typeof Frontend.prototype.wssSendCloseSnackbarMessage>;
|
|
70
|
+
export declare let wssSendUpdateRequiredSpy: jest.SpiedFunction<typeof Frontend.prototype.wssSendUpdateRequired>;
|
|
71
|
+
export declare let wssSendRefreshRequiredSpy: jest.SpiedFunction<typeof Frontend.prototype.wssSendRefreshRequired>;
|
|
72
|
+
export declare let wssSendRestartRequiredSpy: jest.SpiedFunction<typeof Frontend.prototype.wssSendRestartRequired>;
|
|
73
|
+
export declare let wssSendRestartNotRequiredSpy: jest.SpiedFunction<typeof Frontend.prototype.wssSendRestartNotRequired>;
|
|
74
|
+
export declare let broadcastServerIsWorkerRequestSpy: jest.SpiedFunction<typeof BroadcastServer.prototype.isWorkerRequest>;
|
|
75
|
+
export declare let broadcastServerIsWorkerResponseSpy: jest.SpiedFunction<typeof BroadcastServer.prototype.isWorkerResponse>;
|
|
76
|
+
export declare let broadcastServerBroadcastSpy: jest.SpiedFunction<typeof BroadcastServer.prototype.broadcast>;
|
|
77
|
+
export declare let broadcastServerRequestSpy: jest.SpiedFunction<typeof BroadcastServer.prototype.request>;
|
|
78
|
+
export declare let broadcastServerRespondSpy: jest.SpiedFunction<typeof BroadcastServer.prototype.respond>;
|
|
79
|
+
export declare let broadcastServerFetchSpy: jest.SpiedFunction<typeof BroadcastServer.prototype.fetch>;
|
|
80
|
+
export declare let broadcastMessageHandlerSpy: jest.SpiedFunction<(this: BroadcastServer, event: MessageEvent) => void>;
|
|
81
|
+
export declare let NAME: string;
|
|
82
|
+
export declare let HOMEDIR: string;
|
|
83
|
+
export declare let matterbridge: Matterbridge;
|
|
84
|
+
export declare let frontend: Frontend;
|
|
85
|
+
export declare let plugins: PluginManager;
|
|
86
|
+
export declare let devices: DeviceManager;
|
|
87
|
+
export declare let environment: Environment;
|
|
88
|
+
export declare let server: ServerNode<ServerNode.RootEndpoint>;
|
|
89
|
+
export declare let aggregator: Endpoint<AggregatorEndpoint>;
|
|
90
|
+
export declare let log: AnsiLogger;
|
|
91
|
+
/**
|
|
92
|
+
* Setup the Jest environment:
|
|
93
|
+
* - it will remove any existing home directory
|
|
94
|
+
* - setup the spies for logging
|
|
95
|
+
*
|
|
96
|
+
* @param {string} name The name of the test suite.
|
|
97
|
+
* @param {boolean} debug If true, the logging is not mocked.
|
|
98
|
+
*
|
|
99
|
+
* @example
|
|
100
|
+
* ```typescript
|
|
101
|
+
* import { consoleDebugSpy, consoleErrorSpy, consoleInfoSpy, consoleLogSpy, consoleWarnSpy, loggerLogSpy, setDebug, setupTest } from './jestutils/jestHelpers.js';
|
|
102
|
+
*
|
|
103
|
+
* // Setup the test environment
|
|
104
|
+
* await setupTest(NAME, false);
|
|
105
|
+
* ```
|
|
106
|
+
*/
|
|
107
|
+
export declare function setupTest(name: string, debug?: boolean): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* Set or unset the debug mode.
|
|
110
|
+
*
|
|
111
|
+
* @param {boolean} debug If true, the logging is not mocked.
|
|
112
|
+
* @returns {Promise<void>} A promise that resolves when the debug mode is set.
|
|
113
|
+
*
|
|
114
|
+
* @example
|
|
115
|
+
* ```typescript
|
|
116
|
+
* // Set the debug mode in test environment
|
|
117
|
+
* await setDebug(true);
|
|
118
|
+
* ```
|
|
119
|
+
*
|
|
120
|
+
* ```typescript
|
|
121
|
+
* // Reset the debug mode in test environment
|
|
122
|
+
* await setDebug(false);
|
|
123
|
+
* ```
|
|
124
|
+
*/
|
|
125
|
+
export declare function setDebug(debug: boolean): Promise<void>;
|
|
126
|
+
/**
|
|
127
|
+
* Create and start a fully initialized Matterbridge instance for testing.
|
|
128
|
+
*
|
|
129
|
+
* @param {('bridge' | 'childbridge' | 'controller' | '')} bridgeMode The bridge mode to start the Matterbridge instance in.
|
|
130
|
+
* @param {number} frontendPort The frontend port number.
|
|
131
|
+
* @param {number} matterPort The matter port number.
|
|
132
|
+
* @param {number} passcode The passcode number.
|
|
133
|
+
* @param {number} discriminator The discriminator number.
|
|
134
|
+
* @param {number} pluginSize The expected number of plugins.
|
|
135
|
+
* @param {number} devicesSize The expected number of devices.
|
|
136
|
+
* @returns {Promise<Matterbridge>} The Matterbridge instance.
|
|
137
|
+
*
|
|
138
|
+
* @example
|
|
139
|
+
* ```typescript
|
|
140
|
+
* // Create and start a fully initialized Matterbridge instance for testing.
|
|
141
|
+
* await startMatterbridge();
|
|
142
|
+
* ```
|
|
143
|
+
*/
|
|
144
|
+
export declare function startMatterbridge(bridgeMode?: 'bridge' | 'childbridge' | 'controller' | '', frontendPort?: number, matterPort?: number, passcode?: number, discriminator?: number, pluginSize?: number, devicesSize?: number): Promise<Matterbridge>;
|
|
145
|
+
/**
|
|
146
|
+
* Stop the fully initialized Matterbridge instance.
|
|
147
|
+
*
|
|
148
|
+
* @param {cleanupPause} cleanupPause The pause duration before cleanup. Default is 10 ms.
|
|
149
|
+
* @param {destroyPause} destroyPause The pause duration before destruction. Default is 250 ms.
|
|
150
|
+
*
|
|
151
|
+
* @example
|
|
152
|
+
* ```typescript
|
|
153
|
+
* // Stop the fully initialized Matterbridge instance.
|
|
154
|
+
* await stopMatterbridge();
|
|
155
|
+
* ```
|
|
156
|
+
*/
|
|
157
|
+
export declare function stopMatterbridge(cleanupPause?: number, destroyPause?: number): Promise<void>;
|
|
158
|
+
/**
|
|
159
|
+
* Create a Matterbridge instance for testing without initializing it.
|
|
160
|
+
*
|
|
161
|
+
* @param {string} name - Name for the environment (jest/name).
|
|
162
|
+
* @returns {Promise<Matterbridge>} The Matterbridge instance.
|
|
163
|
+
*
|
|
164
|
+
* @example
|
|
165
|
+
* ```typescript
|
|
166
|
+
* // Create Matterbridge environment
|
|
167
|
+
* await createMatterbridgeEnvironment(NAME);
|
|
168
|
+
* await startMatterbridgeEnvironment(MATTER_PORT);
|
|
169
|
+
* ```
|
|
170
|
+
*/
|
|
171
|
+
export declare function createMatterbridgeEnvironment(name: string): Promise<Matterbridge>;
|
|
172
|
+
/**
|
|
173
|
+
* Start the matterbridge environment.
|
|
174
|
+
* Only node storage, matter storage and the server and aggregator nodes are started.
|
|
175
|
+
*
|
|
176
|
+
* @param {number} port The matter server port.
|
|
177
|
+
* @returns {Promise<[ServerNode<ServerNode.RootEndpoint>, Endpoint<AggregatorEndpoint>]>} The started server and aggregator.
|
|
178
|
+
*
|
|
179
|
+
* @example
|
|
180
|
+
* ```typescript
|
|
181
|
+
* // Create Matterbridge environment
|
|
182
|
+
* await createMatterbridgeEnvironment(NAME);
|
|
183
|
+
* await startMatterbridgeEnvironment(MATTER_PORT);
|
|
184
|
+
* ```
|
|
185
|
+
*/
|
|
186
|
+
export declare function startMatterbridgeEnvironment(port?: number): Promise<[ServerNode<ServerNode.RootEndpoint>, Endpoint<AggregatorEndpoint>]>;
|
|
187
|
+
/**
|
|
188
|
+
* Add a matterbridge platform for testing.
|
|
189
|
+
*
|
|
190
|
+
* @param {MatterbridgePlatform} platform The platform to add.
|
|
191
|
+
* @param {string} [name] Optional name of the platform.
|
|
192
|
+
*
|
|
193
|
+
* @example
|
|
194
|
+
* ```typescript
|
|
195
|
+
* platform = new Platform(matterbridge, log, config);
|
|
196
|
+
* // Add the platform to the Matterbridge environment
|
|
197
|
+
* addMatterbridgePlatform(platform);
|
|
198
|
+
* ```
|
|
199
|
+
*/
|
|
200
|
+
export declare function addMatterbridgePlatform(platform: MatterbridgePlatform, name?: string): void;
|
|
201
|
+
/**
|
|
202
|
+
* Stop the matterbridge environment
|
|
203
|
+
*
|
|
204
|
+
* @example
|
|
205
|
+
* ```typescript
|
|
206
|
+
* // Destroy Matterbridge environment
|
|
207
|
+
* await stopMatterbridgeEnvironment();
|
|
208
|
+
* await destroyMatterbridgeEnvironment();
|
|
209
|
+
* ```
|
|
210
|
+
*/
|
|
211
|
+
export declare function stopMatterbridgeEnvironment(): Promise<void>;
|
|
212
|
+
/**
|
|
213
|
+
* Destroy the matterbridge environment
|
|
214
|
+
*
|
|
215
|
+
* @param {number} cleanupPause The timeout for the destroy operation (default 10ms).
|
|
216
|
+
* @param {number} destroyPause The pause duration after cleanup before destroying the instance (default 250ms).
|
|
217
|
+
*
|
|
218
|
+
* @example
|
|
219
|
+
* ```typescript
|
|
220
|
+
* // Destroy Matterbridge environment
|
|
221
|
+
* await stopMatterbridgeEnvironment();
|
|
222
|
+
* await destroyMatterbridgeEnvironment();
|
|
223
|
+
* ```
|
|
224
|
+
*/
|
|
225
|
+
export declare function destroyMatterbridgeEnvironment(cleanupPause?: number, destroyPause?: number): Promise<void>;
|
|
226
|
+
/**
|
|
227
|
+
* Destroy a matterbridge instance
|
|
228
|
+
*
|
|
229
|
+
* @param {Matterbridge} matterbridge The matterbridge instance to destroy.
|
|
230
|
+
* @param {number} cleanupPause The pause duration to wait for the cleanup to complete in milliseconds (default 10ms).
|
|
231
|
+
* @param {number} destroyPause The pause duration to wait after cleanup before destroying the instance in milliseconds (default 250ms).
|
|
232
|
+
*/
|
|
233
|
+
export declare function destroyInstance(matterbridge: Matterbridge, cleanupPause?: number, destroyPause?: number): Promise<void>;
|
|
234
|
+
/**
|
|
235
|
+
* Close the mDNS instance in the matterbridge environment.
|
|
236
|
+
*
|
|
237
|
+
* @param {Matterbridge} matterbridge The matterbridge instance.
|
|
238
|
+
* @returns {Promise<void>} A promise that resolves when the mDNS instance is closed.
|
|
239
|
+
*/
|
|
240
|
+
export declare function closeMdnsInstance(matterbridge: Matterbridge): Promise<void>;
|
|
241
|
+
/**
|
|
242
|
+
* Create a matter test environment for testing:
|
|
243
|
+
* - it will remove any existing home directory
|
|
244
|
+
* - setup the matter environment with name, debug logging and ANSI format
|
|
245
|
+
* - setup the mDNS service in the environment
|
|
246
|
+
*
|
|
247
|
+
* @param {string} name - Name for the environment (jest/name).
|
|
248
|
+
* @returns {Environment} - The default matter environment.
|
|
249
|
+
*/
|
|
250
|
+
export declare function createTestEnvironment(name: string): Environment;
|
|
251
|
+
/**
|
|
252
|
+
* Destroy the matter test environment by closing the mDNS service.
|
|
253
|
+
*
|
|
254
|
+
* @returns {Promise<void>} A promise that resolves when the test environment is destroyed.
|
|
255
|
+
*/
|
|
256
|
+
export declare function destroyTestEnvironment(): Promise<void>;
|
|
257
|
+
/**
|
|
258
|
+
* Advance the Node.js event loop deterministically to allow chained asynchronous work (Promises scheduled in
|
|
259
|
+
* microtasks and follow‑up macrotasks) to complete inside tests without adding arbitrary long timeouts.
|
|
260
|
+
*
|
|
261
|
+
* NOTE: This does not guarantee OS level network IO completion—only JavaScript task queue progression inside the
|
|
262
|
+
* current process.
|
|
263
|
+
*
|
|
264
|
+
* @param {number} ticks Number of macrotask (setImmediate) turns to yield (default 3).
|
|
265
|
+
* @param {number} microTurns Number of microtask drains (Promise.resolve chains) after macrotask yielding (default 10).
|
|
266
|
+
* @param {number} pause Final timer delay in ms; set 0 to disable (default 250ms).
|
|
267
|
+
* @returns {Promise<void>} Resolves after the requested event loop advancement has completed.
|
|
268
|
+
*/
|
|
269
|
+
export declare function flushAsync(ticks?: number, microTurns?: number, pause?: number): Promise<void>;
|
|
270
|
+
/**
|
|
271
|
+
* Summarize live libuv handles/requests inside a process.
|
|
272
|
+
*
|
|
273
|
+
* @param {AnsiLogger} log - Logger to use for output
|
|
274
|
+
*
|
|
275
|
+
* @returns {number} - The total number of active handles and requests
|
|
276
|
+
*/
|
|
277
|
+
export declare function logKeepAlives(log?: AnsiLogger): number;
|
|
278
|
+
/**
|
|
279
|
+
* Flush (await) the lazy endpoint number persistence mechanism used by matter.js.
|
|
280
|
+
*
|
|
281
|
+
* Background:
|
|
282
|
+
* assignNumber() batches persistence (store.saveNumber + updating __nextNumber__) via an internal promise (#numbersPersisted).
|
|
283
|
+
* Calling endpointStores.close() waits for the current batch only. If new endpoints were added in the same macrotask
|
|
284
|
+
* cycle additional micro/macro turns might be needed to ensure the batch started. We defensively yield macrotasks
|
|
285
|
+
* (setImmediate) and then await close() multiple rounds.
|
|
286
|
+
*
|
|
287
|
+
* @param {ServerNode} targetServer The server whose endpoint numbering persistence should be flushed.
|
|
288
|
+
* @param {number} rounds Number of macrotask + close cycles to run (2 is usually sufficient; 1 often works).
|
|
289
|
+
* @returns {Promise<void>} Resolves when pending number persistence batches have completed.
|
|
290
|
+
*/
|
|
291
|
+
export declare function flushAllEndpointNumberPersistence(targetServer: ServerNode, rounds?: number): Promise<void>;
|
|
292
|
+
/**
|
|
293
|
+
* Assert that every endpoint attached to the server has an assigned and (batch-)persisted endpoint number.
|
|
294
|
+
*
|
|
295
|
+
* This waits for any outstanding number persistence batch (endpointStores.close()), then traverses the endpoint
|
|
296
|
+
* graph and asserts:
|
|
297
|
+
* - Root endpoint: number is 0 (allowing undefined to coerce to 0 via nullish coalescing check).
|
|
298
|
+
* - All other endpoints: number > 0.
|
|
299
|
+
*
|
|
300
|
+
* @param {ServerNode} targetServer The server whose endpoint numbers are verified.
|
|
301
|
+
* @returns {Promise<void>} Resolves when assertions complete.
|
|
302
|
+
*/
|
|
303
|
+
export declare function assertAllEndpointNumbersPersisted(targetServer: ServerNode): Promise<number>;
|
|
304
|
+
/**
|
|
305
|
+
* Close the server node stores to flush any pending endpoint number persistence.
|
|
306
|
+
*
|
|
307
|
+
* @param {ServerNode} targetServer The server whose endpoint stores should be closed.
|
|
308
|
+
* @returns {Promise<void>} Resolves when the stores have been closed.
|
|
309
|
+
*/
|
|
310
|
+
export declare function closeServerNodeStores(targetServer?: ServerNode): Promise<void>;
|
|
311
|
+
/**
|
|
312
|
+
* Start a matter server node for testing.
|
|
313
|
+
*
|
|
314
|
+
* @param {string} name Name of the server (used for logging and product description).
|
|
315
|
+
* @param {number} port TCP port to listen on.
|
|
316
|
+
* @param {DeviceTypeId} deviceType Device type identifier for the server node.
|
|
317
|
+
* @returns {Promise<[ServerNode<ServerNode.RootEndpoint>, Endpoint<AggregatorEndpoint>]>} Resolves to an array containing the created ServerNode and its AggregatorNode.
|
|
318
|
+
*/
|
|
319
|
+
export declare function startServerNode(name: string, port: number, deviceType?: DeviceTypeId): Promise<[ServerNode<ServerNode.RootEndpoint>, Endpoint<AggregatorEndpoint>]>;
|
|
320
|
+
/**
|
|
321
|
+
* Stop a matter server node.
|
|
322
|
+
*
|
|
323
|
+
* @param {ServerNode<ServerNode.RootEndpoint>} server The server to stop.
|
|
324
|
+
* @returns {Promise<void>} Resolves when the server has stopped.
|
|
325
|
+
*/
|
|
326
|
+
export declare function stopServerNode(server: ServerNode<ServerNode.RootEndpoint>): Promise<void>;
|
|
327
|
+
/**
|
|
328
|
+
* Add a device (endpoint) to a matter server node or an aggregator.
|
|
329
|
+
*
|
|
330
|
+
* @param {ServerNode<ServerNode.RootEndpoint> | Endpoint<AggregatorEndpoint>} owner The server or aggregator to add the device to.
|
|
331
|
+
* @param {Endpoint} device The device to add.
|
|
332
|
+
* @param {number} pause The pause time in milliseconds after addition (default 10ms).
|
|
333
|
+
* @returns {Promise<void>} Resolves when the device has been added and is ready.
|
|
334
|
+
*/
|
|
335
|
+
export declare function addDevice(owner: ServerNode<ServerNode.RootEndpoint> | Endpoint<AggregatorEndpoint>, device: Endpoint, pause?: number): Promise<boolean>;
|
|
336
|
+
/**
|
|
337
|
+
* Delete a device (endpoint) from a matter server node or an aggregator.
|
|
338
|
+
*
|
|
339
|
+
* @param {ServerNode<ServerNode.RootEndpoint> | Endpoint<AggregatorEndpoint>} owner The server or aggregator to remove the device from.
|
|
340
|
+
* @param {Endpoint} device The device to remove.
|
|
341
|
+
* @param {number} pause The pause time in milliseconds after deletion (default 10ms).
|
|
342
|
+
* @returns {Promise<void>} Resolves when the device has been removed and is no longer ready.
|
|
343
|
+
*/
|
|
344
|
+
export declare function deleteDevice(owner: ServerNode<ServerNode.RootEndpoint> | Endpoint<AggregatorEndpoint>, device: Endpoint, pause?: number): Promise<boolean>;
|
|
345
|
+
//# sourceMappingURL=jestHelpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"jestHelpers.d.ts","sourceRoot":"","sources":["../../src/jestutils/jestHelpers.ts"],"names":[],"mappings":"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"}
|