@matterbridge/core 3.6.1-dev-20260310-7887380 → 3.6.1-dev-20260311-8b3e31c

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/dist/cli.js CHANGED
@@ -175,7 +175,7 @@ function help() {
175
175
  --delay [seconds]: set a delay in seconds before starting Matterbridge in the first 5 minutes from a reboot (default 120)
176
176
  --fixed_delay [seconds]: set a fixed delay in seconds before starting Matterbridge (default 120)
177
177
  --no-ansi: disable ANSI color output in the logs
178
- --no-reset-sessions: disable resetting of sessions and resumption records on shutdown
178
+ --reset-sessions: reset sessions and resumption records on shutdown (use only if your controller has issue reconnecting on restart)
179
179
  `);
180
180
  process.exit(0);
181
181
  }
@@ -71,7 +71,7 @@ export declare let log: AnsiLogger;
71
71
  export declare function setupTest(name: string, debug?: boolean): Promise<void>;
72
72
  export declare function setDebug(debug: boolean): Promise<void>;
73
73
  export declare function startMatterbridge(bridgeMode?: 'bridge' | 'childbridge' | 'controller' | '', frontendPort?: number, matterPort?: number, passcode?: number, discriminator?: number, pluginSize?: number, devicesSize?: number): Promise<Matterbridge>;
74
- export declare function stopMatterbridge(cleanupPause?: number, destroyPause?: number): Promise<void>;
74
+ export declare function stopMatterbridge(cleanupPause?: number, destroyPause?: number, closeMdns?: boolean): Promise<void>;
75
75
  export declare function createMatterbridgeEnvironment(name: string, createOnly?: boolean): Promise<Matterbridge>;
76
76
  export declare function startMatterbridgeEnvironment(port?: number, createOnly?: boolean): Promise<[ServerNode<ServerNode.RootEndpoint>, Endpoint<AggregatorEndpoint>]>;
77
77
  export declare function addMatterbridgePlatform(platform: MatterbridgePlatform, name?: string): void;
@@ -247,8 +247,8 @@ export async function startMatterbridge(bridgeMode = 'bridge', frontendPort = 82
247
247
  }
248
248
  return matterbridge;
249
249
  }
250
- export async function stopMatterbridge(cleanupPause = 10, destroyPause = 250) {
251
- await destroyMatterbridgeEnvironment(cleanupPause, destroyPause);
250
+ export async function stopMatterbridge(cleanupPause = 10, destroyPause = 250, closeMdns = true) {
251
+ await destroyMatterbridgeEnvironment(cleanupPause, destroyPause, closeMdns);
252
252
  }
253
253
  export async function createMatterbridgeEnvironment(name, createOnly = false) {
254
254
  log = new AnsiLogger({ logName: name, logTimestampFormat: 4, logLevel: "debug" });
@@ -333,7 +333,7 @@ export class MatterNode extends EventEmitter {
333
333
  await storageContext.set('productId', productId);
334
334
  await storageContext.set('productName', productName.slice(0, 32));
335
335
  await storageContext.set('nodeLabel', productName.slice(0, 32));
336
- await storageContext.set('productLabel', productName.slice(0, 32));
336
+ await storageContext.set('productLabel', productName.replace(vendorName, '').trim().slice(0, 32));
337
337
  await storageContext.set('serialNumber', await storageContext.get('serialNumber', serialNumber ? serialNumber.slice(0, 32) : 'SN' + random));
338
338
  await storageContext.set('uniqueId', await storageContext.get('uniqueId', uniqueId ? uniqueId.slice(0, 32) : 'UI' + random));
339
339
  await storageContext.set('softwareVersion', isValidNumber(parseVersionString(this.matterbridge.matterbridgeVersion), 0, UINT32_MAX) ? parseVersionString(this.matterbridge.matterbridgeVersion) : 1);
@@ -124,7 +124,7 @@ export class Matterbridge extends EventEmitter {
124
124
  aggregatorVendorId = VendorId(getIntParameter('vendorId') ?? 0xfff1);
125
125
  aggregatorVendorName = getParameter('vendorName') ?? 'Matterbridge';
126
126
  aggregatorProductId = getIntParameter('productId') ?? 0x8000;
127
- aggregatorProductName = getParameter('productName') ?? 'Matterbridge aggregator';
127
+ aggregatorProductName = getParameter('productName') ?? 'Matterbridge Aggregator';
128
128
  aggregatorDeviceType = DeviceTypeId(getIntParameter('deviceType') ?? bridge.code);
129
129
  aggregatorSerialNumber = getParameter('serialNumber');
130
130
  aggregatorUniqueId = getParameter('uniqueId');
@@ -132,7 +132,7 @@ export class Matterbridge extends EventEmitter {
132
132
  controllerVendorId = VendorId(getIntParameter('vendorId') ?? 0xfff1);
133
133
  controllerVendorName = getParameter('vendorName') ?? 'Matterbridge';
134
134
  controllerProductId = getIntParameter('productId') ?? 0x8000;
135
- controllerProductName = getParameter('productName') ?? 'Matterbridge controller';
135
+ controllerProductName = getParameter('productName') ?? 'Matterbridge Controller';
136
136
  advertisingNodes = new Map();
137
137
  server;
138
138
  verbose = hasParameter('verbose');
@@ -251,7 +251,8 @@ export class Matterbridge extends EventEmitter {
251
251
  if (msg.result && msg.result.success && msg.result.packageCommand === 'install') {
252
252
  this.restartRequired = true;
253
253
  this.fixedRestartRequired = true;
254
- if (msg.result.packageName === 'matterbridge') {
254
+ const packageName = msg.result.packageName.replace(/@.*$/, '');
255
+ if (packageName === 'matterbridge') {
255
256
  this.log.info('Matterbridge has been updated. Full restart required.');
256
257
  if (this.restartMode !== '')
257
258
  await this.cleanup('updating...', false);
@@ -1188,7 +1189,7 @@ export class Matterbridge extends EventEmitter {
1188
1189
  catch {
1189
1190
  }
1190
1191
  }
1191
- if (!hasParameter('no-reset-sessions')) {
1192
+ if (hasParameter('reset-sessions')) {
1192
1193
  this.log.debug(`Cleaning matter storage context for ${GREEN}Matterbridge${db}...`);
1193
1194
  unlinkSafe(path.join(this.matterbridgeDirectory, MATTER_STORAGE_NAME, 'Matterbridge', 'sessions.resumptionRecords'), this.log);
1194
1195
  unlinkSafe(path.join(this.matterbridgeDirectory, MATTER_STORAGE_NAME, 'Matterbridge', 'root.subscriptions.subscriptions'), this.log);
@@ -1515,7 +1516,7 @@ export class Matterbridge extends EventEmitter {
1515
1516
  await this.controllerContext.set('vendorName', this.controllerVendorName.slice(0, 32));
1516
1517
  await this.controllerContext.set('productId', this.controllerProductId);
1517
1518
  await this.controllerContext.set('productName', this.controllerProductName.slice(0, 32));
1518
- await this.controllerContext.set('productLabel', this.controllerProductName.slice(0, 32));
1519
+ await this.controllerContext.set('productLabel', this.controllerProductName.replace(this.controllerVendorName, '').trim().slice(0, 32));
1519
1520
  await this.controllerContext.set('nodeLabel', storeId.slice(0, 32));
1520
1521
  await this.controllerContext.set('serialNumber', await this.controllerContext.get('serialNumber', 'SN' + random));
1521
1522
  await this.controllerContext.set('uniqueId', await this.controllerContext.get('uniqueId', 'UI' + random));
@@ -1791,7 +1792,7 @@ export class Matterbridge extends EventEmitter {
1791
1792
  await storageContext.set('vendorName', vendorName.slice(0, 32));
1792
1793
  await storageContext.set('productId', productId);
1793
1794
  await storageContext.set('productName', productName.slice(0, 32));
1794
- await storageContext.set('productLabel', productName.slice(0, 32));
1795
+ await storageContext.set('productLabel', productName.replace(vendorName, '').trim().slice(0, 32));
1795
1796
  await storageContext.set('nodeLabel', deviceName.slice(0, 32));
1796
1797
  await storageContext.set('serialNumber', await storageContext.get('serialNumber', serialNumber ? serialNumber.slice(0, 32) : 'SN' + random));
1797
1798
  await storageContext.set('uniqueId', await storageContext.get('uniqueId', uniqueId ? uniqueId.slice(0, 32) : 'UI' + random));
@@ -1860,7 +1861,7 @@ export class Matterbridge extends EventEmitter {
1860
1861
  vendorName: await storageContext.get('vendorName'),
1861
1862
  productId: await storageContext.get('productId'),
1862
1863
  productName: await storageContext.get('productName'),
1863
- productLabel: await storageContext.get('productName'),
1864
+ productLabel: await storageContext.get('productLabel'),
1864
1865
  serialNumber: await storageContext.get('serialNumber'),
1865
1866
  uniqueId: await storageContext.get('uniqueId'),
1866
1867
  softwareVersion: await storageContext.get('softwareVersion'),
@@ -506,7 +506,7 @@ export class MatterbridgeEndpoint extends Endpoint {
506
506
  vendorName: vendorName.slice(0, 32),
507
507
  productName: productName.slice(0, 32),
508
508
  productUrl: this.productUrl.slice(0, 256),
509
- productLabel: productName.slice(0, 64),
509
+ productLabel: productName.replace(vendorName, '').trim().slice(0, 64),
510
510
  nodeLabel: deviceName.slice(0, 32),
511
511
  serialNumber: serialNumber.slice(0, 32),
512
512
  uniqueId: this.uniqueId.slice(0, 32),
@@ -238,17 +238,17 @@ export class PluginManager extends EventEmitter {
238
238
  case 'manager_spawn_response':
239
239
  if (msg.result && msg.result.packageCommand === 'install') {
240
240
  if (msg.result.success) {
241
- msg.result.packageName = msg.result.packageName.replace(/@.*$/, '');
242
- if (msg.result.packageName !== 'matterbridge') {
243
- if (!this.has(msg.result.packageName))
244
- await this.add(msg.result.packageName);
245
- const plugin = this.get(msg.result.packageName);
241
+ const packageName = msg.result.packageName.replace(/@.*$/, '');
242
+ if (packageName !== 'matterbridge') {
243
+ if (!this.has(packageName))
244
+ await this.add(packageName);
245
+ const plugin = this.get(packageName);
246
246
  if (plugin && !plugin.loaded) {
247
247
  await this.load(plugin);
248
248
  this.server.request({ type: 'frontend_refreshrequired', src: 'plugins', dst: 'frontend', params: { changed: 'plugins' } });
249
249
  }
250
250
  }
251
- this.log.info(`Installed plugin ${plg}${msg.result.packageName}${db} successfully`);
251
+ this.log.info(`Installed plugin ${plg}${packageName}${db} successfully`);
252
252
  }
253
253
  else {
254
254
  this.log.error(`Failed to install plugin ${plg}${msg.result.packageName}${er}`);
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matterbridge/core",
3
- "version": "3.6.1-dev-20260310-7887380",
3
+ "version": "3.6.1-dev-20260311-8b3e31c",
4
4
  "description": "Matterbridge core library",
5
5
  "author": "https://github.com/Luligu",
6
6
  "homepage": "https://matterbridge.io/",
@@ -121,11 +121,11 @@
121
121
  "CHANGELOG.md"
122
122
  ],
123
123
  "dependencies": {
124
- "@matter/main": "0.16.10",
125
- "@matterbridge/dgram": "3.6.1-dev-20260310-7887380",
126
- "@matterbridge/thread": "3.6.1-dev-20260310-7887380",
127
- "@matterbridge/types": "3.6.1-dev-20260310-7887380",
128
- "@matterbridge/utils": "3.6.1-dev-20260310-7887380",
124
+ "@matter/main": "0.17.0-alpha.0-20260309-33bcd9eab",
125
+ "@matterbridge/dgram": "3.6.1-dev-20260311-8b3e31c",
126
+ "@matterbridge/thread": "3.6.1-dev-20260311-8b3e31c",
127
+ "@matterbridge/types": "3.6.1-dev-20260311-8b3e31c",
128
+ "@matterbridge/utils": "3.6.1-dev-20260311-8b3e31c",
129
129
  "archiver": "7.0.1",
130
130
  "express": "5.2.1",
131
131
  "glob": "13.0.6",