matterbridge 3.5.0-dev-20260119-f9ea00e → 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 +133 -117
- package/bin/mb_coap.js +1 -1
- package/bin/mb_mdns.js +1 -1
- package/dist/broadcastServer.js +1 -2
- package/dist/cli.d.ts +1 -2
- package/dist/cli.js +1 -5
- package/dist/cliHistory.js +1 -1
- package/dist/deviceManager.js +1 -1
- package/dist/frontend.js +2 -7
- package/dist/helpers.js +1 -1
- package/dist/matterNode.js +1 -5
- package/dist/matterbridge.js +14 -18
- package/dist/matterbridgeEndpoint.d.ts +2 -0
- package/dist/matterbridgeEndpoint.js +41 -2
- package/dist/matterbridgeEndpointHelpers.js +1 -3
- package/dist/matterbridgePlatform.js +1 -2
- package/dist/{dgram/mb_mdns.js → mb_mdns.js} +13 -1
- package/dist/pluginManager.js +3 -4
- package/dist/{utils/spawn.js → spawn.js} +2 -2
- package/dist/update.js +6 -7
- package/dist/utils/export.d.ts +1 -12
- package/dist/utils/export.js +1 -12
- package/dist/workerGlobalPrefix.js +1 -3
- package/frontend/build/assets/index.js +4 -4
- package/frontend/package.json +1 -1
- package/npm-shrinkwrap.json +2 -2
- package/package.json +5 -5
- package/dist/dgram/coap.d.ts +0 -34
- package/dist/dgram/coap.js +0 -252
- package/dist/dgram/dgram.d.ts +0 -45
- package/dist/dgram/dgram.js +0 -251
- package/dist/dgram/mdns.d.ts +0 -188
- package/dist/dgram/mdns.js +0 -702
- package/dist/dgram/multicast.d.ts +0 -18
- package/dist/dgram/multicast.js +0 -118
- package/dist/dgram/unicast.d.ts +0 -11
- package/dist/dgram/unicast.js +0 -40
- package/dist/utils/colorUtils.d.ts +0 -24
- package/dist/utils/colorUtils.js +0 -187
- package/dist/utils/commandLine.d.ts +0 -6
- package/dist/utils/commandLine.js +0 -63
- package/dist/utils/copyDirectory.d.ts +0 -2
- package/dist/utils/copyDirectory.js +0 -39
- package/dist/utils/createDirectory.d.ts +0 -2
- package/dist/utils/createDirectory.js +0 -21
- package/dist/utils/createZip.d.ts +0 -1
- package/dist/utils/createZip.js +0 -69
- package/dist/utils/deepCopy.d.ts +0 -1
- package/dist/utils/deepCopy.js +0 -40
- package/dist/utils/deepEqual.d.ts +0 -1
- package/dist/utils/deepEqual.js +0 -58
- package/dist/utils/error.d.ts +0 -3
- package/dist/utils/error.js +0 -12
- package/dist/utils/format.d.ts +0 -4
- package/dist/utils/format.js +0 -29
- package/dist/utils/hex.d.ts +0 -4
- package/dist/utils/hex.js +0 -118
- package/dist/utils/inspector.d.ts +0 -24
- package/dist/utils/inspector.js +0 -200
- package/dist/utils/isValid.d.ts +0 -10
- package/dist/utils/isValid.js +0 -69
- package/dist/utils/network.d.ts +0 -25
- package/dist/utils/network.js +0 -193
- package/dist/utils/tracker.d.ts +0 -52
- package/dist/utils/tracker.js +0 -201
- package/dist/utils/wait.d.ts +0 -3
- package/dist/utils/wait.js +0 -73
- /package/dist/{dgram/mb_coap.d.ts → mb_coap.d.ts} +0 -0
- /package/dist/{dgram/mb_coap.js → mb_coap.js} +0 -0
- /package/dist/{dgram/mb_mdns.d.ts → mb_mdns.d.ts} +0 -0
- /package/dist/{utils/spawn.d.ts → spawn.d.ts} +0 -0
package/bin/mb_coap.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import('../dist/
|
|
2
|
+
import('../dist/mb_coap.js');
|
package/bin/mb_mdns.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import('../dist/
|
|
2
|
+
import('../dist/mb_mdns.js');
|
package/dist/broadcastServer.js
CHANGED
|
@@ -3,8 +3,7 @@ if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
|
3
3
|
import { EventEmitter } from 'node:events';
|
|
4
4
|
import { BroadcastChannel } from 'node:worker_threads';
|
|
5
5
|
import { CYAN, db, debugStringify, er } from 'node-ansi-logger';
|
|
6
|
-
import { hasParameter } from '
|
|
7
|
-
import { logError } from './utils/error.js';
|
|
6
|
+
import { hasParameter, logError } from '@matterbridge/utils';
|
|
8
7
|
export class BroadcastServer extends EventEmitter {
|
|
9
8
|
name;
|
|
10
9
|
log;
|
package/dist/cli.d.ts
CHANGED
|
@@ -1,6 +1,5 @@
|
|
|
1
|
+
import { Inspector, Tracker } from '@matterbridge/utils';
|
|
1
2
|
import type { Matterbridge } from './matterbridge.js';
|
|
2
|
-
import { Tracker } from './utils/tracker.js';
|
|
3
|
-
import { Inspector } from './utils/inspector.js';
|
|
4
3
|
export declare let instance: Matterbridge | undefined;
|
|
5
4
|
export declare const tracker: Tracker;
|
|
6
5
|
export declare const inspector: Inspector;
|
package/dist/cli.js
CHANGED
|
@@ -1,12 +1,8 @@
|
|
|
1
1
|
if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
2
2
|
console.log('\u001B[32mCli loaded.\u001B[40;0m');
|
|
3
3
|
import { AnsiLogger } from 'node-ansi-logger';
|
|
4
|
+
import { formatBytes, formatUptime, hasAnyParameter, hasParameter, Inspector, inspectError, Tracker } from '@matterbridge/utils';
|
|
4
5
|
import { cliEmitter } from './cliEmitter.js';
|
|
5
|
-
import { hasParameter, hasAnyParameter } from './utils/commandLine.js';
|
|
6
|
-
import { inspectError } from './utils/error.js';
|
|
7
|
-
import { Tracker } from './utils/tracker.js';
|
|
8
|
-
import { Inspector } from './utils/inspector.js';
|
|
9
|
-
import { formatBytes, formatUptime } from './utils/format.js';
|
|
10
6
|
export let instance;
|
|
11
7
|
export const tracker = new Tracker('Cli', false, false);
|
|
12
8
|
export const inspector = new Inspector('Cli', false, false);
|
package/dist/cliHistory.js
CHANGED
|
@@ -3,7 +3,7 @@ if (process.argv.includes('--loader') || process.argv.includes('-loader'))
|
|
|
3
3
|
import { writeFileSync } from 'node:fs';
|
|
4
4
|
import path from 'node:path';
|
|
5
5
|
import os from 'node:os';
|
|
6
|
-
import { Tracker } from '
|
|
6
|
+
import { Tracker } from '@matterbridge/utils';
|
|
7
7
|
export function generateHistoryPage(options = {}) {
|
|
8
8
|
const pageTitle = options.pageTitle ?? 'Matterbridge CPU & Memory History';
|
|
9
9
|
const hostname = options.hostname ?? os.hostname();
|
package/dist/deviceManager.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { AnsiLogger, BLUE, CYAN, db, debugStringify, er } from 'node-ansi-logger';
|
|
2
|
+
import { hasParameter } from '@matterbridge/utils';
|
|
2
3
|
import { dev } from './matterbridgeTypes.js';
|
|
3
4
|
import { BroadcastServer } from './broadcastServer.js';
|
|
4
|
-
import { hasParameter } from './utils/commandLine.js';
|
|
5
5
|
export function toBaseDevice(device) {
|
|
6
6
|
return {
|
|
7
7
|
mode: device.mode,
|
package/dist/frontend.js
CHANGED
|
@@ -10,13 +10,8 @@ import { FabricIndex } from '@matter/types/datatype';
|
|
|
10
10
|
import { CommissioningOptions } from '@matter/types/commissioning';
|
|
11
11
|
import { BridgedDeviceBasicInformation } from '@matter/types/clusters/bridged-device-basic-information';
|
|
12
12
|
import { PowerSource } from '@matter/types/clusters/power-source';
|
|
13
|
+
import { createZip, formatBytes, formatPercent, formatUptime, getParameter, hasParameter, inspectError, isValidArray, isValidBoolean, isValidNumber, isValidObject, isValidString, wait, withTimeout } from '@matterbridge/utils';
|
|
13
14
|
import { MATTER_LOGGER_FILE, MATTER_STORAGE_NAME, MATTERBRIDGE_DIAGNOSTIC_FILE, MATTERBRIDGE_HISTORY_FILE, MATTERBRIDGE_LOGGER_FILE, NODE_STORAGE_DIR, plg } from './matterbridgeTypes.js';
|
|
14
|
-
import { isValidArray, isValidNumber, isValidObject, isValidString, isValidBoolean } from './utils/isValid.js';
|
|
15
|
-
import { createZip } from './utils/createZip.js';
|
|
16
|
-
import { hasParameter, getParameter } from './utils/commandLine.js';
|
|
17
|
-
import { withTimeout, wait } from './utils/wait.js';
|
|
18
|
-
import { inspectError } from './utils/error.js';
|
|
19
|
-
import { formatBytes, formatUptime, formatPercent } from './utils/format.js';
|
|
20
15
|
import { capitalizeFirstLetter, getAttribute } from './matterbridgeEndpointHelpers.js';
|
|
21
16
|
import { cliEmitter, lastOsCpuUsage, lastProcessCpuUsage } from './cliEmitter.js';
|
|
22
17
|
import { generateHistoryPage } from './cliHistory.js';
|
|
@@ -699,7 +694,7 @@ export class Frontend extends EventEmitter {
|
|
|
699
694
|
await fs.promises.rename(file.path, filePath);
|
|
700
695
|
this.log.info(`File ${plg}${filename}${nf} uploaded successfully`);
|
|
701
696
|
if (filename.endsWith('.tgz')) {
|
|
702
|
-
const { spawnCommand } = await import('./
|
|
697
|
+
const { spawnCommand } = await import('./spawn.js');
|
|
703
698
|
if (await spawnCommand('npm', ['install', '-g', filePath, '--omit=dev', '--verbose'], 'install', filename)) {
|
|
704
699
|
this.log.info(`Plugin package ${plg}${filename}${nf} installed successfully. Full restart required.`);
|
|
705
700
|
this.wssSendCloseSnackbarMessage(`Installing package ${filename}. Please wait...`);
|
package/dist/helpers.js
CHANGED
|
@@ -6,7 +6,7 @@ import { OnOffPlugInUnitDevice } from '@matter/node/devices/on-off-plug-in-unit'
|
|
|
6
6
|
import { MountedOnOffControlDevice } from '@matter/node/devices/mounted-on-off-control';
|
|
7
7
|
import { OnOffLightDevice } from '@matter/node/devices/on-off-light';
|
|
8
8
|
import { OnOffLightSwitchDevice } from '@matter/node/devices/on-off-light-switch';
|
|
9
|
-
import { hasParameter } from '
|
|
9
|
+
import { hasParameter } from '@matterbridge/utils';
|
|
10
10
|
export async function addVirtualDevice(aggregatorEndpoint, name, type, callback) {
|
|
11
11
|
let deviceType;
|
|
12
12
|
switch (type) {
|
package/dist/matterNode.js
CHANGED
|
@@ -11,13 +11,9 @@ import { ServerNode, Endpoint } from '@matter/node';
|
|
|
11
11
|
import { AggregatorEndpoint } from '@matter/node/endpoints/aggregator';
|
|
12
12
|
import { BasicInformationServer } from '@matter/node/behaviors/basic-information';
|
|
13
13
|
import { BridgedDeviceBasicInformationServer } from '@matter/node/behaviors/bridged-device-basic-information';
|
|
14
|
+
import { copyDirectory, getIntParameter, getParameter, hasParameter, inspectError, isValidNumber, isValidString, parseVersionString, wait, withTimeout } from '@matterbridge/utils';
|
|
14
15
|
import { dev, MATTER_LOGGER_FILE, MATTER_STORAGE_NAME, plg, NODE_STORAGE_DIR, MATTERBRIDGE_LOGGER_FILE } from './matterbridgeTypes.js';
|
|
15
16
|
import { bridge } from './matterbridgeDeviceTypes.js';
|
|
16
|
-
import { getIntParameter, getParameter, hasParameter } from './utils/commandLine.js';
|
|
17
|
-
import { copyDirectory } from './utils/copyDirectory.js';
|
|
18
|
-
import { isValidNumber, isValidString, parseVersionString } from './utils/isValid.js';
|
|
19
|
-
import { wait, withTimeout } from './utils/wait.js';
|
|
20
|
-
import { inspectError } from './utils/error.js';
|
|
21
17
|
import { BroadcastServer } from './broadcastServer.js';
|
|
22
18
|
import { toBaseDevice } from './deviceManager.js';
|
|
23
19
|
import { PluginManager } from './pluginManager.js';
|
package/dist/matterbridge.js
CHANGED
|
@@ -14,11 +14,7 @@ import { Endpoint, ServerNode } from '@matter/node';
|
|
|
14
14
|
import { DeviceTypeId, VendorId } from '@matter/types/datatype';
|
|
15
15
|
import { AggregatorEndpoint } from '@matter/node/endpoints';
|
|
16
16
|
import { BasicInformationServer } from '@matter/node/behaviors/basic-information';
|
|
17
|
-
import {
|
|
18
|
-
import { copyDirectory } from './utils/copyDirectory.js';
|
|
19
|
-
import { createDirectory } from './utils/createDirectory.js';
|
|
20
|
-
import { isValidString, parseVersionString, isValidNumber, isValidObject } from './utils/isValid.js';
|
|
21
|
-
import { formatBytes, formatPercent, formatUptime } from './utils/format.js';
|
|
17
|
+
import { copyDirectory, createDirectory, formatBytes, formatPercent, formatUptime, getIntParameter, getParameter, hasParameter, isValidNumber, isValidObject, isValidString, parseVersionString } from '@matterbridge/utils';
|
|
22
18
|
import { dev, MATTER_LOGGER_FILE, MATTER_STORAGE_NAME, MATTERBRIDGE_LOGGER_FILE, NODE_STORAGE_DIR, plg, typ } from './matterbridgeTypes.js';
|
|
23
19
|
import { PluginManager } from './pluginManager.js';
|
|
24
20
|
import { DeviceManager } from './deviceManager.js';
|
|
@@ -286,7 +282,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
286
282
|
this.log.info(`Pairing file ${CYAN}${pairingFilePath}${nf} found. Using passcode ${CYAN}${this.passcode}${nf} and discriminator ${CYAN}${this.discriminator}${nf} from pairing file.`);
|
|
287
283
|
}
|
|
288
284
|
if (pairingFileJson.privateKey && pairingFileJson.certificate && pairingFileJson.intermediateCertificate && pairingFileJson.declaration) {
|
|
289
|
-
const { hexToBuffer } = await import('
|
|
285
|
+
const { hexToBuffer } = await import('@matterbridge/utils');
|
|
290
286
|
this.certification = {
|
|
291
287
|
privateKey: hexToBuffer(pairingFileJson.privateKey),
|
|
292
288
|
certificate: hexToBuffer(pairingFileJson.certificate),
|
|
@@ -474,7 +470,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
474
470
|
for (const plugin of this.plugins) {
|
|
475
471
|
if (!fs.existsSync(plugin.path) && !hasParameter('add') && !hasParameter('remove') && !hasParameter('enable') && !hasParameter('disable') && !hasParameter('reset') && !hasParameter('factoryreset')) {
|
|
476
472
|
this.log.info(`Error parsing plugin ${plg}${plugin.name}${nf}. Trying to reinstall it from npm...`);
|
|
477
|
-
const { spawnCommand } = await import('./
|
|
473
|
+
const { spawnCommand } = await import('./spawn.js');
|
|
478
474
|
if (await spawnCommand('npm', ['install', '-g', `${plugin.name}${plugin.version.includes('-dev-') ? '@dev' : ''}`, '--omit=dev', '--verbose'], 'install', plugin.name)) {
|
|
479
475
|
this.log.info(`Plugin ${plg}${plugin.name}${nf} reinstalled.`);
|
|
480
476
|
plugin.error = false;
|
|
@@ -548,7 +544,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
548
544
|
return;
|
|
549
545
|
}
|
|
550
546
|
if (hasParameter('loginterfaces')) {
|
|
551
|
-
const { logInterfaces } = await import('
|
|
547
|
+
const { logInterfaces } = await import('@matterbridge/utils');
|
|
552
548
|
logInterfaces();
|
|
553
549
|
this.shutdown = true;
|
|
554
550
|
return;
|
|
@@ -652,13 +648,13 @@ export class Matterbridge extends EventEmitter {
|
|
|
652
648
|
await this.nodeContext?.set('bridgeMode', 'bridge');
|
|
653
649
|
}
|
|
654
650
|
if (hasParameter('delay') && os.uptime() <= 60 * 5) {
|
|
655
|
-
const { wait } = await import('
|
|
651
|
+
const { wait } = await import('@matterbridge/utils');
|
|
656
652
|
const delay = getIntParameter('delay') || 120;
|
|
657
653
|
this.log.warn('Delay switch found with system uptime less then 5 minutes. Waiting for ' + delay + ' seconds before starting matterbridge...');
|
|
658
654
|
await wait(delay * 1000, 'Race condition delay', true);
|
|
659
655
|
}
|
|
660
656
|
if (hasParameter('fixed_delay')) {
|
|
661
|
-
const { wait } = await import('
|
|
657
|
+
const { wait } = await import('@matterbridge/utils');
|
|
662
658
|
const delay = getIntParameter('fixed_delay') || 120;
|
|
663
659
|
this.log.warn('Fixed delay switch found. Waiting for ' + delay + ' seconds before starting matterbridge...');
|
|
664
660
|
await wait(delay * 1000, 'Fixed race condition delay', true);
|
|
@@ -827,7 +823,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
827
823
|
if (this.globalModulesDirectory === '') {
|
|
828
824
|
this.log.debug(`Getting global node_modules directory...`);
|
|
829
825
|
try {
|
|
830
|
-
const { getGlobalNodeModules } = await import('
|
|
826
|
+
const { getGlobalNodeModules } = await import('@matterbridge/utils');
|
|
831
827
|
this.globalModulesDirectory = await getGlobalNodeModules();
|
|
832
828
|
this.log.debug(`Global node_modules Directory: ${this.globalModulesDirectory}`);
|
|
833
829
|
await this.nodeContext?.set('globalModulesDirectory', this.globalModulesDirectory);
|
|
@@ -927,7 +923,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
927
923
|
}
|
|
928
924
|
async updateProcess() {
|
|
929
925
|
this.log.info('Updating matterbridge...');
|
|
930
|
-
const { spawnCommand } = await import('./
|
|
926
|
+
const { spawnCommand } = await import('./spawn.js');
|
|
931
927
|
if (await spawnCommand('npm', ['install', '-g', 'matterbridge', '--omit=dev', '--verbose'], 'install', 'matterbridge')) {
|
|
932
928
|
this.log.info('Matterbridge has been updated. Full restart required.');
|
|
933
929
|
}
|
|
@@ -938,7 +934,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
938
934
|
await this.cleanup('updating...', false);
|
|
939
935
|
}
|
|
940
936
|
async unregisterAndShutdownProcess(timeout = 1000) {
|
|
941
|
-
const { wait } = await import('
|
|
937
|
+
const { wait } = await import('@matterbridge/utils');
|
|
942
938
|
this.log.info('Unregistering all devices and shutting down...');
|
|
943
939
|
for (const plugin of this.plugins.array()) {
|
|
944
940
|
if (plugin.error || !plugin.enabled)
|
|
@@ -1001,7 +997,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
1001
997
|
}
|
|
1002
998
|
this.log.notice(`Stopping matter server nodes in ${this.bridgeMode} mode...`);
|
|
1003
999
|
if (pause > 0) {
|
|
1004
|
-
const { wait } = await import('
|
|
1000
|
+
const { wait } = await import('@matterbridge/utils');
|
|
1005
1001
|
this.log.debug(`Waiting ${pause}ms for the MessageExchange to finish...`);
|
|
1006
1002
|
await wait(pause, `Waiting ${pause}ms for the MessageExchange to finish...`, false);
|
|
1007
1003
|
}
|
|
@@ -1251,7 +1247,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
1251
1247
|
async startChildbridge(delay = 1000) {
|
|
1252
1248
|
if (!this.matterStorageManager)
|
|
1253
1249
|
throw new Error('No storage manager initialized');
|
|
1254
|
-
const { wait } = await import('
|
|
1250
|
+
const { wait } = await import('@matterbridge/utils');
|
|
1255
1251
|
this.log.debug('Loading all plugins in childbridge mode...');
|
|
1256
1252
|
await this.startPlugins(true, false);
|
|
1257
1253
|
this.log.debug('Creating server nodes for DynamicPlatform plugins and starting all plugins in childbridge mode...');
|
|
@@ -1562,7 +1558,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
1562
1558
|
await matterServerNode.start();
|
|
1563
1559
|
}
|
|
1564
1560
|
async stopServerNode(matterServerNode, timeout = 10000) {
|
|
1565
|
-
const { withTimeout } = await import('
|
|
1561
|
+
const { withTimeout } = await import('@matterbridge/utils');
|
|
1566
1562
|
if (!matterServerNode)
|
|
1567
1563
|
return;
|
|
1568
1564
|
this.log.notice(`Closing ${matterServerNode.id} server node`);
|
|
@@ -1614,7 +1610,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
1614
1610
|
}
|
|
1615
1611
|
}
|
|
1616
1612
|
async addBridgedEndpoint(pluginName, device) {
|
|
1617
|
-
const { waiter } = await import('
|
|
1613
|
+
const { waiter } = await import('@matterbridge/utils');
|
|
1618
1614
|
const plugin = this.plugins.get(pluginName);
|
|
1619
1615
|
if (!plugin) {
|
|
1620
1616
|
this.log.error(`Error adding bridged endpoint ${dev}${device.deviceName}${er} (${zb}${device.id}${er}) plugin ${plg}${pluginName}${er} not found`);
|
|
@@ -1755,7 +1751,7 @@ export class Matterbridge extends EventEmitter {
|
|
|
1755
1751
|
this.devices.remove(device);
|
|
1756
1752
|
}
|
|
1757
1753
|
async removeAllBridgedEndpoints(pluginName, delay = 0) {
|
|
1758
|
-
const { wait } = await import('
|
|
1754
|
+
const { wait } = await import('@matterbridge/utils');
|
|
1759
1755
|
this.log.debug(`Removing all bridged endpoints for plugin ${plg}${pluginName}${db}${delay > 0 ? ` with delay ${delay} ms` : ''}`);
|
|
1760
1756
|
for (const device of this.devices.array().filter((device) => device.plugin === pluginName)) {
|
|
1761
1757
|
await this.removeBridgedEndpoint(pluginName, device);
|
|
@@ -9,6 +9,7 @@ import { Identify } from '@matter/types/clusters/identify';
|
|
|
9
9
|
import { OnOff } from '@matter/types/clusters/on-off';
|
|
10
10
|
import { ColorControl } from '@matter/types/clusters/color-control';
|
|
11
11
|
import { WindowCovering } from '@matter/types/clusters/window-covering';
|
|
12
|
+
import { Thermostat } from '@matter/types/clusters/thermostat';
|
|
12
13
|
import { FanControl } from '@matter/types/clusters/fan-control';
|
|
13
14
|
import { DoorLock } from '@matter/types/clusters/door-lock';
|
|
14
15
|
import { ModeSelect } from '@matter/types/clusters/mode-select';
|
|
@@ -117,6 +118,7 @@ export declare class MatterbridgeEndpoint extends Endpoint {
|
|
|
117
118
|
setWindowCoveringTargetAndCurrentPosition(liftPosition: number, tiltPosition?: number): Promise<void>;
|
|
118
119
|
createDefaultThermostatClusterServer(localTemperature?: number, occupiedHeatingSetpoint?: number, occupiedCoolingSetpoint?: number, minSetpointDeadBand?: number, minHeatSetpointLimit?: number, maxHeatSetpointLimit?: number, minCoolSetpointLimit?: number, maxCoolSetpointLimit?: number, unoccupiedHeatingSetpoint?: number | undefined, unoccupiedCoolingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined): this;
|
|
119
120
|
createDefaultHeatingThermostatClusterServer(localTemperature?: number, occupiedHeatingSetpoint?: number, minHeatSetpointLimit?: number, maxHeatSetpointLimit?: number, unoccupiedHeatingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined): this;
|
|
121
|
+
createDefaultPresetsThermostatClusterServer(localTemperature?: number, occupiedHeatingSetpoint?: number, occupiedCoolingSetpoint?: number, minSetpointDeadBand?: number, minHeatSetpointLimit?: number, maxHeatSetpointLimit?: number, minCoolSetpointLimit?: number, maxCoolSetpointLimit?: number, unoccupiedHeatingSetpoint?: number | undefined, unoccupiedCoolingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined, activePresetHandle?: number | undefined, presetsList?: Thermostat.Preset[] | null | undefined, presetTypes?: Thermostat.PresetType[] | null | undefined): this;
|
|
120
122
|
createDefaultCoolingThermostatClusterServer(localTemperature?: number, occupiedCoolingSetpoint?: number, minCoolSetpointLimit?: number, maxCoolSetpointLimit?: number, unoccupiedCoolingSetpoint?: number | undefined, occupied?: boolean | undefined, outdoorTemperature?: number | null | undefined): this;
|
|
121
123
|
createDefaultThermostatUserInterfaceConfigurationClusterServer(temperatureDisplayMode?: ThermostatUserInterfaceConfiguration.TemperatureDisplayMode, keypadLockout?: ThermostatUserInterfaceConfiguration.KeypadLockout, scheduleProgrammingVisibility?: ThermostatUserInterfaceConfiguration.ScheduleProgrammingVisibility): this;
|
|
122
124
|
createDefaultFanControlClusterServer(fanMode?: FanControl.FanMode, fanModeSequence?: FanControl.FanModeSequence, percentSetting?: number, percentCurrent?: number): this;
|
|
@@ -60,10 +60,9 @@ import { RadonConcentrationMeasurementServer } from '@matter/node/behaviors/rado
|
|
|
60
60
|
import { TotalVolatileOrganicCompoundsConcentrationMeasurementServer } from '@matter/node/behaviors/total-volatile-organic-compounds-concentration-measurement';
|
|
61
61
|
import { FanControlServer } from '@matter/node/behaviors/fan-control';
|
|
62
62
|
import { ThermostatUserInterfaceConfigurationServer } from '@matter/node/behaviors/thermostat-user-interface-configuration';
|
|
63
|
-
import { isValidNumber, isValidObject, isValidString } from '
|
|
63
|
+
import { inspectError, isValidNumber, isValidObject, isValidString } from '@matterbridge/utils';
|
|
64
64
|
import { MatterbridgeServer, MatterbridgeIdentifyServer, MatterbridgeOnOffServer, MatterbridgeLevelControlServer, MatterbridgeColorControlServer, MatterbridgeLiftWindowCoveringServer, MatterbridgeLiftTiltWindowCoveringServer, MatterbridgeThermostatServer, MatterbridgeFanControlServer, MatterbridgeDoorLockServer, MatterbridgeModeSelectServer, MatterbridgeValveConfigurationAndControlServer, MatterbridgeSmokeCoAlarmServer, MatterbridgeBooleanStateConfigurationServer, MatterbridgeSwitchServer, MatterbridgeOperationalStateServer, MatterbridgeDeviceEnergyManagementModeServer, MatterbridgeDeviceEnergyManagementServer, MatterbridgeActivatedCarbonFilterMonitoringServer, MatterbridgeHepaFilterMonitoringServer, MatterbridgeEnhancedColorControlServer, MatterbridgePowerSourceServer, } from './matterbridgeBehaviors.js';
|
|
65
65
|
import { addClusterServers, addFixedLabel, addOptionalClusterServers, addRequiredClusterServers, addUserLabel, createUniqueId, getBehavior, getBehaviourTypesFromClusterClientIds, getBehaviourTypesFromClusterServerIds, getDefaultOperationalStateClusterServer, getDefaultFlowMeasurementClusterServer, getDefaultIlluminanceMeasurementClusterServer, getDefaultPressureMeasurementClusterServer, getDefaultRelativeHumidityMeasurementClusterServer, getDefaultTemperatureMeasurementClusterServer, getDefaultOccupancySensingClusterServer, getDefaultElectricalEnergyMeasurementClusterServer, getDefaultElectricalPowerMeasurementClusterServer, getApparentElectricalPowerMeasurementClusterServer, lowercaseFirstLetter, updateAttribute, getClusterId, getAttributeId, setAttribute, getAttribute, checkNotLatinCharacters, generateUniqueId, subscribeAttribute, invokeBehaviorCommand, triggerEvent, featuresFor, getDefaultPowerSourceWiredClusterServer, getDefaultPowerSourceReplaceableBatteryClusterServer, getDefaultPowerSourceRechargeableBatteryClusterServer, getDefaultDeviceEnergyManagementClusterServer, getDefaultDeviceEnergyManagementModeClusterServer, getDefaultPowerSourceBatteryClusterServer, } from './matterbridgeEndpointHelpers.js';
|
|
66
|
-
import { inspectError } from './utils/error.js';
|
|
67
66
|
export class MatterbridgeEndpoint extends Endpoint {
|
|
68
67
|
static logLevel = "info";
|
|
69
68
|
mode = undefined;
|
|
@@ -855,6 +854,46 @@ export class MatterbridgeEndpoint extends Endpoint {
|
|
|
855
854
|
});
|
|
856
855
|
return this;
|
|
857
856
|
}
|
|
857
|
+
createDefaultPresetsThermostatClusterServer(localTemperature = 23, occupiedHeatingSetpoint = 21, occupiedCoolingSetpoint = 25, minSetpointDeadBand = 2, minHeatSetpointLimit = 0, maxHeatSetpointLimit = 50, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50, unoccupiedHeatingSetpoint = undefined, unoccupiedCoolingSetpoint = undefined, occupied = undefined, outdoorTemperature = undefined, activePresetHandle = undefined, presetsList = undefined, presetTypes = undefined) {
|
|
858
|
+
this.behaviors.require(MatterbridgeThermostatServer.with(Thermostat.Feature.Heating, Thermostat.Feature.Cooling, Thermostat.Feature.AutoMode, ...(occupied !== undefined ? [Thermostat.Feature.Occupancy] : []), ...(presetsList !== undefined || presetTypes !== undefined ? [Thermostat.Feature.Presets] : [])), {
|
|
859
|
+
localTemperature: localTemperature * 100,
|
|
860
|
+
externalMeasuredIndoorTemperature: localTemperature * 100,
|
|
861
|
+
...(outdoorTemperature !== undefined ? { outdoorTemperature: outdoorTemperature !== null ? outdoorTemperature * 100 : outdoorTemperature } : {}),
|
|
862
|
+
systemMode: Thermostat.SystemMode.Auto,
|
|
863
|
+
controlSequenceOfOperation: Thermostat.ControlSequenceOfOperation.CoolingAndHeating,
|
|
864
|
+
occupiedHeatingSetpoint: occupiedHeatingSetpoint * 100,
|
|
865
|
+
minHeatSetpointLimit: minHeatSetpointLimit * 100,
|
|
866
|
+
maxHeatSetpointLimit: maxHeatSetpointLimit * 100,
|
|
867
|
+
absMinHeatSetpointLimit: minHeatSetpointLimit * 100,
|
|
868
|
+
absMaxHeatSetpointLimit: maxHeatSetpointLimit * 100,
|
|
869
|
+
occupiedCoolingSetpoint: occupiedCoolingSetpoint * 100,
|
|
870
|
+
minCoolSetpointLimit: minCoolSetpointLimit * 100,
|
|
871
|
+
maxCoolSetpointLimit: maxCoolSetpointLimit * 100,
|
|
872
|
+
absMinCoolSetpointLimit: minCoolSetpointLimit * 100,
|
|
873
|
+
absMaxCoolSetpointLimit: maxCoolSetpointLimit * 100,
|
|
874
|
+
minSetpointDeadBand: minSetpointDeadBand * 10,
|
|
875
|
+
thermostatRunningMode: Thermostat.ThermostatRunningMode.Off,
|
|
876
|
+
...(occupied !== undefined ? { unoccupiedHeatingSetpoint: unoccupiedHeatingSetpoint !== undefined ? unoccupiedHeatingSetpoint * 100 : 1900 } : {}),
|
|
877
|
+
...(occupied !== undefined ? { unoccupiedCoolingSetpoint: unoccupiedCoolingSetpoint !== undefined ? unoccupiedCoolingSetpoint * 100 : 2700 } : {}),
|
|
878
|
+
...(occupied !== undefined ? { occupancy: { occupied } } : {}),
|
|
879
|
+
numberOfPresets: Array.isArray(presetsList) ? presetsList.length : 0,
|
|
880
|
+
activePresetHandle: activePresetHandle !== undefined ? Uint8Array.from([activePresetHandle]) : null,
|
|
881
|
+
presets: (presetsList ?? []).map((p) => ({
|
|
882
|
+
presetHandle: Uint8Array.from(p.presetHandle || [0]),
|
|
883
|
+
presetScenario: p.presetScenario,
|
|
884
|
+
name: p.name,
|
|
885
|
+
coolingSetpoint: p.coolingSetpoint,
|
|
886
|
+
heatingSetpoint: p.heatingSetpoint,
|
|
887
|
+
builtIn: p.builtIn ?? true,
|
|
888
|
+
})),
|
|
889
|
+
presetTypes: (presetTypes ?? []).map((pt) => ({
|
|
890
|
+
...pt,
|
|
891
|
+
numberOfPresets: pt.numberOfPresets ?? 0,
|
|
892
|
+
presetTypeFeatures: pt.presetTypeFeatures ?? { automatic: false, supportsNames: true },
|
|
893
|
+
})),
|
|
894
|
+
});
|
|
895
|
+
return this;
|
|
896
|
+
}
|
|
858
897
|
createDefaultCoolingThermostatClusterServer(localTemperature = 23, occupiedCoolingSetpoint = 25, minCoolSetpointLimit = 0, maxCoolSetpointLimit = 50, unoccupiedCoolingSetpoint = undefined, occupied = undefined, outdoorTemperature = undefined) {
|
|
859
898
|
this.behaviors.require(MatterbridgeThermostatServer.with(Thermostat.Feature.Cooling, ...(occupied !== undefined ? [Thermostat.Feature.Occupancy] : [])), {
|
|
860
899
|
localTemperature: localTemperature * 100,
|
|
@@ -80,9 +80,7 @@ import { Pm25ConcentrationMeasurementServer } from '@matter/node/behaviors/pm25-
|
|
|
80
80
|
import { Pm10ConcentrationMeasurementServer } from '@matter/node/behaviors/pm10-concentration-measurement';
|
|
81
81
|
import { RadonConcentrationMeasurementServer } from '@matter/node/behaviors/radon-concentration-measurement';
|
|
82
82
|
import { TotalVolatileOrganicCompoundsConcentrationMeasurementServer } from '@matter/node/behaviors/total-volatile-organic-compounds-concentration-measurement';
|
|
83
|
-
import { deepCopy } from '
|
|
84
|
-
import { deepEqual } from './utils/deepEqual.js';
|
|
85
|
-
import { isValidArray } from './utils/isValid.js';
|
|
83
|
+
import { deepCopy, deepEqual, isValidArray } from '@matterbridge/utils';
|
|
86
84
|
import { MatterbridgeIdentifyServer, MatterbridgeOnOffServer, MatterbridgeLevelControlServer, MatterbridgeColorControlServer, MatterbridgeLiftWindowCoveringServer, MatterbridgeThermostatServer, MatterbridgeFanControlServer, MatterbridgeDoorLockServer, MatterbridgeModeSelectServer, MatterbridgeValveConfigurationAndControlServer, MatterbridgeSmokeCoAlarmServer, MatterbridgeBooleanStateConfigurationServer, MatterbridgeOperationalStateServer, MatterbridgePowerSourceServer, MatterbridgeDeviceEnergyManagementServer, MatterbridgeDeviceEnergyManagementModeServer, } from './matterbridgeBehaviors.js';
|
|
87
85
|
export function capitalizeFirstLetter(name) {
|
|
88
86
|
if (!name)
|
|
@@ -5,10 +5,9 @@ import { CYAN, db, er, nf, wr } from 'node-ansi-logger';
|
|
|
5
5
|
import { NodeStorageManager } from 'node-persist-manager';
|
|
6
6
|
import { Descriptor } from '@matter/types/clusters/descriptor';
|
|
7
7
|
import { BridgedDeviceBasicInformation } from '@matter/types/clusters/bridged-device-basic-information';
|
|
8
|
+
import { hasParameter, isValidArray, isValidObject, isValidString } from '@matterbridge/utils';
|
|
8
9
|
import { checkNotLatinCharacters } from './matterbridgeEndpointHelpers.js';
|
|
9
10
|
import { bridgedNode } from './matterbridgeDeviceTypes.js';
|
|
10
|
-
import { isValidArray, isValidObject, isValidString } from './utils/isValid.js';
|
|
11
|
-
import { hasParameter } from './utils/commandLine.js';
|
|
12
11
|
import { BroadcastServer } from './broadcastServer.js';
|
|
13
12
|
export class MatterbridgePlatform {
|
|
14
13
|
matterbridge;
|
|
@@ -46,7 +46,7 @@ Examples:
|
|
|
46
46
|
`);
|
|
47
47
|
process.exit(0);
|
|
48
48
|
}
|
|
49
|
-
const { default: pkg } = await import('
|
|
49
|
+
const { default: pkg } = await import('../package.json', { with: { type: 'json' } });
|
|
50
50
|
let mdnsIpv4QueryInterval;
|
|
51
51
|
let mdnsIpv6QueryInterval;
|
|
52
52
|
let mdnsIpv4AdvertiseInterval;
|
|
@@ -83,6 +83,18 @@ Examples:
|
|
|
83
83
|
{ name: '_mqtt._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
84
84
|
{ name: '_http._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
85
85
|
{ name: '_googlecast._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
86
|
+
{ name: '_airplay._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
87
|
+
{ name: '_amzn-alexa._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
88
|
+
{ name: '_companion-link._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
89
|
+
{ name: '_hap._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
90
|
+
{ name: '_hap._udp.local', type: 12, class: 1, unicastResponse: true },
|
|
91
|
+
{ name: '_ipp._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
92
|
+
{ name: '_ipps._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
93
|
+
{ name: '_meshcop._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
94
|
+
{ name: '_printer._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
95
|
+
{ name: '_raop._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
96
|
+
{ name: '_sleep-proxy._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
97
|
+
{ name: '_ssh._tcp.local', type: 12, class: 1, unicastResponse: true },
|
|
86
98
|
{ name: '_services._dns-sd._udp.local', type: 12, class: 1, unicastResponse: true },
|
|
87
99
|
]);
|
|
88
100
|
}
|
package/dist/pluginManager.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import EventEmitter from 'node:events';
|
|
2
2
|
import { AnsiLogger, UNDERLINE, UNDERLINEOFF, BLUE, db, er, nf, nt, rs, wr, debugStringify, CYAN } from 'node-ansi-logger';
|
|
3
|
+
import { hasParameter, inspectError, logError } from '@matterbridge/utils';
|
|
3
4
|
import { plg, typ } from './matterbridgeTypes.js';
|
|
4
|
-
import { inspectError, logError } from './utils/error.js';
|
|
5
|
-
import { hasParameter } from './utils/commandLine.js';
|
|
6
5
|
import { BroadcastServer } from './broadcastServer.js';
|
|
7
6
|
export class PluginManager extends EventEmitter {
|
|
8
7
|
matterbridge;
|
|
@@ -439,7 +438,7 @@ export class PluginManager extends EventEmitter {
|
|
|
439
438
|
}
|
|
440
439
|
async install(packageName) {
|
|
441
440
|
this.log.debug(`Installing plugin ${plg}${packageName}${db}...`);
|
|
442
|
-
const { spawnCommand } = await import('./
|
|
441
|
+
const { spawnCommand } = await import('./spawn.js');
|
|
443
442
|
if (await spawnCommand('npm', ['install', '-g', packageName, '--omit=dev', '--verbose'], 'install', packageName)) {
|
|
444
443
|
this.matterbridge.restartRequired = true;
|
|
445
444
|
this.matterbridge.fixedRestartRequired = true;
|
|
@@ -466,7 +465,7 @@ export class PluginManager extends EventEmitter {
|
|
|
466
465
|
}
|
|
467
466
|
async uninstall(packageName) {
|
|
468
467
|
this.log.debug(`Uninstalling plugin ${plg}${packageName}${db}...`);
|
|
469
|
-
const { spawnCommand } = await import('./
|
|
468
|
+
const { spawnCommand } = await import('./spawn.js');
|
|
470
469
|
packageName = packageName.replace(/@.*$/, '');
|
|
471
470
|
if (packageName === 'matterbridge')
|
|
472
471
|
return false;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { AnsiLogger } from 'node-ansi-logger';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { hasParameter } from '@matterbridge/utils';
|
|
3
|
+
import { BroadcastServer } from './broadcastServer.js';
|
|
4
4
|
export async function spawnCommand(command, args, packageCommand, packageName) {
|
|
5
5
|
const { spawn } = await import('node:child_process');
|
|
6
6
|
const debug = hasParameter('debug') || hasParameter('verbose');
|
package/dist/update.js
CHANGED
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { AnsiLogger, db, debugStringify, nt, wr } from 'node-ansi-logger';
|
|
2
|
+
import { hasParameter, isValidString } from '@matterbridge/utils';
|
|
2
3
|
import { plg } from './matterbridgeTypes.js';
|
|
3
4
|
import { BroadcastServer } from './broadcastServer.js';
|
|
4
|
-
import { hasParameter } from './utils/commandLine.js';
|
|
5
|
-
import { isValidString } from './utils/isValid.js';
|
|
6
5
|
export async function checkUpdates(matterbridge) {
|
|
7
6
|
const log = new AnsiLogger({ logName: 'MatterbridgeUpdates', logTimestampFormat: 4, logLevel: matterbridge.logLevel });
|
|
8
7
|
const server = new BroadcastServer('updates', log);
|
|
@@ -26,7 +25,7 @@ export async function checkUpdates(matterbridge) {
|
|
|
26
25
|
server.close();
|
|
27
26
|
}
|
|
28
27
|
export async function checkUpdatesAndLog(matterbridge, log, server) {
|
|
29
|
-
const { getGitHubUpdate } = await import('
|
|
28
|
+
const { getGitHubUpdate } = await import('@matterbridge/utils');
|
|
30
29
|
const branch = matterbridge.matterbridgeVersion.includes('-dev-') ? 'dev' : 'main';
|
|
31
30
|
try {
|
|
32
31
|
const updateJson = await getGitHubUpdate(branch, 'update.json', 5_000);
|
|
@@ -48,7 +47,7 @@ export async function checkUpdatesAndLog(matterbridge, log, server) {
|
|
|
48
47
|
}
|
|
49
48
|
}
|
|
50
49
|
export async function getMatterbridgeLatestVersion(matterbridge, log, server) {
|
|
51
|
-
const { getNpmPackageVersion } = await import('
|
|
50
|
+
const { getNpmPackageVersion } = await import('@matterbridge/utils');
|
|
52
51
|
try {
|
|
53
52
|
const version = await getNpmPackageVersion('matterbridge');
|
|
54
53
|
server.request({ type: 'matterbridge_latest_version', src: server.name, dst: 'matterbridge', params: { version } });
|
|
@@ -73,7 +72,7 @@ export async function getMatterbridgeLatestVersion(matterbridge, log, server) {
|
|
|
73
72
|
}
|
|
74
73
|
}
|
|
75
74
|
export async function getMatterbridgeDevVersion(matterbridge, log, server) {
|
|
76
|
-
const { getNpmPackageVersion } = await import('
|
|
75
|
+
const { getNpmPackageVersion } = await import('@matterbridge/utils');
|
|
77
76
|
try {
|
|
78
77
|
const version = await getNpmPackageVersion('matterbridge', 'dev');
|
|
79
78
|
server.request({ type: 'matterbridge_dev_version', src: server.name, dst: 'matterbridge', params: { version } });
|
|
@@ -98,7 +97,7 @@ export async function getMatterbridgeDevVersion(matterbridge, log, server) {
|
|
|
98
97
|
}
|
|
99
98
|
}
|
|
100
99
|
export async function getPluginLatestVersion(log, server, plugin) {
|
|
101
|
-
const { getNpmPackageVersion } = await import('
|
|
100
|
+
const { getNpmPackageVersion } = await import('@matterbridge/utils');
|
|
102
101
|
try {
|
|
103
102
|
const version = await getNpmPackageVersion(plugin.name);
|
|
104
103
|
plugin.latestVersion = version;
|
|
@@ -117,7 +116,7 @@ export async function getPluginLatestVersion(log, server, plugin) {
|
|
|
117
116
|
}
|
|
118
117
|
}
|
|
119
118
|
export async function getPluginDevVersion(log, server, plugin) {
|
|
120
|
-
const { getNpmPackageVersion } = await import('
|
|
119
|
+
const { getNpmPackageVersion } = await import('@matterbridge/utils');
|
|
121
120
|
try {
|
|
122
121
|
const version = await getNpmPackageVersion(plugin.name, 'dev');
|
|
123
122
|
plugin.devVersion = version;
|
package/dist/utils/export.d.ts
CHANGED
|
@@ -1,12 +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';
|
|
1
|
+
export * from '@matterbridge/utils';
|
package/dist/utils/export.js
CHANGED
|
@@ -1,12 +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';
|
|
1
|
+
export * from '@matterbridge/utils';
|
|
@@ -1,10 +1,8 @@
|
|
|
1
1
|
import { threadId, isMainThread, parentPort, workerData } from 'node:worker_threads';
|
|
2
2
|
import { AnsiLogger } from 'node-ansi-logger';
|
|
3
|
-
import { getGlobalNodeModules } from '
|
|
3
|
+
import { getGlobalNodeModules, hasParameter, inspectError } from '@matterbridge/utils';
|
|
4
4
|
import { BroadcastServer } from './broadcastServer.js';
|
|
5
|
-
import { inspectError } from './utils/error.js';
|
|
6
5
|
import { logWorkerInfo, parentLog, parentPost } from './workers.js';
|
|
7
|
-
import { hasParameter } from './utils/commandLine.js';
|
|
8
6
|
const debug = hasParameter('debug') || hasParameter('verbose');
|
|
9
7
|
const verbose = hasParameter('verbose');
|
|
10
8
|
if (!isMainThread && parentPort) {
|