matterbridge 3.3.1-dev-20251012-b3546f8 → 3.3.2-dev-20251012-0a89052
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 +34 -10
- package/dist/cli.js +11 -2
- package/dist/cliHistory.js +2 -2
- package/dist/frontend.js +2 -2
- package/npm-shrinkwrap.json +14 -6
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -23,7 +23,27 @@ Advantages:
|
|
|
23
23
|
- isolation between threads;
|
|
24
24
|
- individual plugin isolation in childbridge mode;
|
|
25
25
|
|
|
26
|
-
## [3.3.
|
|
26
|
+
## [3.3.3] - Not released
|
|
27
|
+
|
|
28
|
+
### Changed
|
|
29
|
+
|
|
30
|
+
- [package]: Updated dependencies.
|
|
31
|
+
|
|
32
|
+
<a href="https://www.buymeacoffee.com/luligugithub">
|
|
33
|
+
<img src="bmc-button.svg" alt="Buy me a coffee" width="80">
|
|
34
|
+
</a>
|
|
35
|
+
|
|
36
|
+
## [3.3.2] - 2025-10-13
|
|
37
|
+
|
|
38
|
+
### Fixed
|
|
39
|
+
|
|
40
|
+
- [frontend]: Fixed update to latest.
|
|
41
|
+
|
|
42
|
+
<a href="https://www.buymeacoffee.com/luligugithub">
|
|
43
|
+
<img src="bmc-button.svg" alt="Buy me a coffee" width="80">
|
|
44
|
+
</a>
|
|
45
|
+
|
|
46
|
+
## [3.3.1] - 2025-10-12
|
|
27
47
|
|
|
28
48
|
### Breaking Changes
|
|
29
49
|
|
|
@@ -41,8 +61,8 @@ Advantages:
|
|
|
41
61
|
- [cli]: Added cpu and memory peaks history to cli.
|
|
42
62
|
- [cli]: Added host cpu and process cpu to cli.
|
|
43
63
|
- [frontend]: Added process cpu to SystemInformation.
|
|
44
|
-
- [frontend]: Added under 'View' menu the item 'Matterbridge diagnostic log'. It shows the complete matter server nodes.
|
|
45
|
-
- [frontend]: Added under 'View' menu the item 'Matterbridge system history'. It shows the graph page of the last
|
|
64
|
+
- [frontend]: Added under 'View' menu the item 'Matterbridge diagnostic log'. It shows the complete matter server nodes. The page is static and data are embedded so it can be sent for debug.
|
|
65
|
+
- [frontend]: Added under 'View' menu the item 'Matterbridge system history'. It shows the graph page of the last 12h of host cpu, process cpu and memory usage (rss, heap used, heap total with peaks). The page is static and data are embedded so it can be sent for debug.
|
|
46
66
|
|
|
47
67
|
### Changed
|
|
48
68
|
|
|
@@ -84,11 +104,15 @@ This change, necessary to achieve plugin isolation, will require all plugins to
|
|
|
84
104
|
- require matterbridge 3.3.0:
|
|
85
105
|
|
|
86
106
|
```typescript
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
107
|
+
if (
|
|
108
|
+
this.verifyMatterbridgeVersion === undefined ||
|
|
109
|
+
typeof this.verifyMatterbridgeVersion !== "function" ||
|
|
110
|
+
!this.verifyMatterbridgeVersion("3.3.0")
|
|
111
|
+
) {
|
|
112
|
+
throw new Error(
|
|
113
|
+
`This plugin requires Matterbridge version >= "3.3.0". Please update Matterbridge from ${this.matterbridge.matterbridgeVersion} to the latest version."`
|
|
114
|
+
);
|
|
115
|
+
}
|
|
92
116
|
```
|
|
93
117
|
|
|
94
118
|
- check that you are not using any matterbridge calls directly (this should not be the case).
|
|
@@ -108,8 +132,8 @@ export type PlatformMatterbridge = {
|
|
|
108
132
|
readonly matterbridgeVersion: string;
|
|
109
133
|
readonly matterbridgeLatestVersion: string;
|
|
110
134
|
readonly matterbridgeDevVersion: string;
|
|
111
|
-
readonly bridgeMode:
|
|
112
|
-
readonly restartMode:
|
|
135
|
+
readonly bridgeMode: "bridge" | "childbridge" | "controller" | "";
|
|
136
|
+
readonly restartMode: "service" | "docker" | "";
|
|
113
137
|
readonly aggregatorVendorId: VendorId;
|
|
114
138
|
readonly aggregatorVendorName: string;
|
|
115
139
|
readonly aggregatorProductId: number;
|
package/dist/cli.js
CHANGED
|
@@ -258,6 +258,7 @@ async function takeHeapSnapshot() {
|
|
|
258
258
|
log.error('No active inspector session.');
|
|
259
259
|
return;
|
|
260
260
|
}
|
|
261
|
+
triggerGarbageCollection();
|
|
261
262
|
log.debug(`Taking heap snapshot...`);
|
|
262
263
|
const chunks = [];
|
|
263
264
|
const chunksListener = (notification) => {
|
|
@@ -269,21 +270,29 @@ async function takeHeapSnapshot() {
|
|
|
269
270
|
if (!err) {
|
|
270
271
|
session?.off('HeapProfiler.addHeapSnapshotChunk', chunksListener);
|
|
271
272
|
writeFileSync(filename, Buffer.concat(chunks));
|
|
273
|
+
chunks.length = 0;
|
|
272
274
|
log.debug(`***Heap sampling snapshot saved to ${CYAN}${filename}${db}`);
|
|
273
275
|
triggerGarbageCollection();
|
|
274
276
|
resolve();
|
|
275
277
|
}
|
|
276
278
|
else {
|
|
277
279
|
session?.off('HeapProfiler.addHeapSnapshotChunk', chunksListener);
|
|
280
|
+
chunks.length = 0;
|
|
278
281
|
log.error(`***Failed to take heap snapshot: ${err instanceof Error ? err.message : err}`);
|
|
282
|
+
triggerGarbageCollection();
|
|
279
283
|
resolve();
|
|
280
284
|
}
|
|
281
285
|
});
|
|
282
286
|
});
|
|
283
287
|
}
|
|
284
288
|
function triggerGarbageCollection() {
|
|
285
|
-
if (typeof global.gc === 'function') {
|
|
286
|
-
|
|
289
|
+
if (global.gc && typeof global.gc === 'function') {
|
|
290
|
+
try {
|
|
291
|
+
global.gc({ type: 'major', execution: 'sync' });
|
|
292
|
+
}
|
|
293
|
+
catch {
|
|
294
|
+
global.gc();
|
|
295
|
+
}
|
|
287
296
|
log.debug('Manual garbage collection triggered via global.gc().');
|
|
288
297
|
}
|
|
289
298
|
else {
|
package/dist/cliHistory.js
CHANGED
|
@@ -371,9 +371,9 @@ export function generateHistoryPage(options = {}) {
|
|
|
371
371
|
}, 0);
|
|
372
372
|
const memoryMaxYAxis = Number.isFinite(memoryMaxMb) && memoryMaxMb > 0 ? memoryMaxMb * 1.05 : undefined;
|
|
373
373
|
|
|
374
|
-
|
|
374
|
+
renderCharts();
|
|
375
375
|
|
|
376
|
-
|
|
376
|
+
function renderCharts() {
|
|
377
377
|
cleanup();
|
|
378
378
|
|
|
379
379
|
function draw() {
|
package/dist/frontend.js
CHANGED
|
@@ -1049,7 +1049,7 @@ export class Frontend extends EventEmitter {
|
|
|
1049
1049
|
}
|
|
1050
1050
|
}
|
|
1051
1051
|
else if (data.method === '/api/install') {
|
|
1052
|
-
if (isValidString(data.params.packageName,
|
|
1052
|
+
if (isValidString(data.params.packageName, 12) && isValidBoolean(data.params.restart)) {
|
|
1053
1053
|
this.wssSendSnackbarMessage(`Installing package ${data.params.packageName}...`, 0);
|
|
1054
1054
|
this.server.request({ type: 'plugins_install', src: this.server.name, dst: 'plugins', params: { packageName: data.params.packageName } });
|
|
1055
1055
|
sendResponse({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, success: true });
|
|
@@ -1059,7 +1059,7 @@ export class Frontend extends EventEmitter {
|
|
|
1059
1059
|
}
|
|
1060
1060
|
}
|
|
1061
1061
|
else if (data.method === '/api/uninstall') {
|
|
1062
|
-
if (isValidString(data.params.packageName,
|
|
1062
|
+
if (isValidString(data.params.packageName, 12)) {
|
|
1063
1063
|
this.wssSendSnackbarMessage(`Uninstalling package ${data.params.packageName}...`, 0);
|
|
1064
1064
|
this.server.request({ type: 'plugins_uninstall', src: this.server.name, dst: 'plugins', params: { packageName: data.params.packageName } });
|
|
1065
1065
|
sendResponse({ id: data.id, method: data.method, src: 'Matterbridge', dst: data.src, success: true });
|
package/npm-shrinkwrap.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "matterbridge",
|
|
3
|
-
"version": "3.3.
|
|
3
|
+
"version": "3.3.2-dev-20251012-0a89052",
|
|
4
4
|
"lockfileVersion": 3,
|
|
5
5
|
"requires": true,
|
|
6
6
|
"packages": {
|
|
7
7
|
"": {
|
|
8
8
|
"name": "matterbridge",
|
|
9
|
-
"version": "3.3.
|
|
9
|
+
"version": "3.3.2-dev-20251012-0a89052",
|
|
10
10
|
"license": "Apache-2.0",
|
|
11
11
|
"dependencies": {
|
|
12
12
|
"@matter/main": "0.15.5",
|
|
@@ -367,10 +367,18 @@
|
|
|
367
367
|
"license": "MIT"
|
|
368
368
|
},
|
|
369
369
|
"node_modules/bare-events": {
|
|
370
|
-
"version": "2.
|
|
371
|
-
"resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.
|
|
372
|
-
"integrity": "sha512-
|
|
373
|
-
"license": "Apache-2.0"
|
|
370
|
+
"version": "2.8.0",
|
|
371
|
+
"resolved": "https://registry.npmjs.org/bare-events/-/bare-events-2.8.0.tgz",
|
|
372
|
+
"integrity": "sha512-AOhh6Bg5QmFIXdViHbMc2tLDsBIRxdkIaIddPslJF9Z5De3APBScuqGP2uThXnIpqFrgoxMNC6km7uXNIMLHXA==",
|
|
373
|
+
"license": "Apache-2.0",
|
|
374
|
+
"peerDependencies": {
|
|
375
|
+
"bare-abort-controller": "*"
|
|
376
|
+
},
|
|
377
|
+
"peerDependenciesMeta": {
|
|
378
|
+
"bare-abort-controller": {
|
|
379
|
+
"optional": true
|
|
380
|
+
}
|
|
381
|
+
}
|
|
374
382
|
},
|
|
375
383
|
"node_modules/base64-js": {
|
|
376
384
|
"version": "1.5.1",
|
package/package.json
CHANGED