matterbridge 3.1.8-dev-20250727-c823a89 → 3.1.8-dev-20250727-b8987de

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 CHANGED
@@ -16,11 +16,13 @@ If you like this project and find it useful, please consider giving it a star on
16
16
  - [certification]: Improved certification management in pairing.json. Added pemToBuffer function for converting PEM strings to Uint8Array.
17
17
  - [certification]: Improved certification management in pairing.json. Added extractPrivateKeyRaw function for extrating the raw part of PEM private key to Uint8Array.
18
18
  - [workflow]: Update permissions and change GitHub token for Docker build triggers.
19
+ - [update]: Added support for retrieving and logging plugin development versions.
19
20
  - [frontend]: Improved test units on Frontend class (total coverage 100%).
20
21
  - [frontend]: Bump version 2.7.1.
21
22
  - [frontend]: Added Changelog button that appears in the frontend when a new version is installed and the frontend needs to be updated (page refresh).
22
23
  - [frontend]: Added restart plugin in childbridge mode.
23
- - [frontend]: Added update to stable and update to dev banner. The update to dev pops up only if you are on the dev.
24
+ - [frontend]: Added update to stable and update to dev banner. The update to new appears only if you are on the dev and there is a new dev version.
25
+ - [frontend]: Added update to stable and update to dev banner for plugins. The update to new dev appears only if you are on the dev and there is a new dev version.
24
26
  - [frontend]: Added new menu item for manual update check.
25
27
 
26
28
  ### Changed
package/dist/frontend.js CHANGED
@@ -800,6 +800,7 @@ export class Frontend extends EventEmitter {
800
800
  changelog: plugin.changelog,
801
801
  funding: plugin.funding,
802
802
  latestVersion: plugin.latestVersion,
803
+ devVersion: plugin.devVersion,
803
804
  serialNumber: plugin.serialNumber,
804
805
  locked: plugin.locked,
805
806
  error: plugin.error,
package/dist/update.js CHANGED
@@ -5,10 +5,13 @@ export async function checkUpdates(matterbridge) {
5
5
  const latestVersion = getMatterbridgeLatestVersion(matterbridge);
6
6
  const devVersion = getMatterbridgeDevVersion(matterbridge);
7
7
  const pluginsVersions = [];
8
+ const pluginsDevVersions = [];
8
9
  const shellyUpdates = [];
9
10
  for (const plugin of matterbridge.plugins) {
10
11
  const pluginVersion = getPluginLatestVersion(matterbridge, plugin);
11
12
  pluginsVersions.push(pluginVersion);
13
+ const pluginDevVersion = getPluginDevVersion(matterbridge, plugin);
14
+ pluginsDevVersions.push(pluginDevVersion);
12
15
  }
13
16
  if (hasParameter('shelly')) {
14
17
  const { getShellySysUpdate, getShellyMainUpdate } = await import('./shelly.js');
@@ -17,7 +20,7 @@ export async function checkUpdates(matterbridge) {
17
20
  const mainUpdate = getShellyMainUpdate(matterbridge);
18
21
  shellyUpdates.push(mainUpdate);
19
22
  }
20
- await Promise.all([latestVersion, devVersion, ...pluginsVersions, ...shellyUpdates]);
23
+ await Promise.all([latestVersion, devVersion, ...pluginsVersions, ...pluginsDevVersions, ...shellyUpdates]);
21
24
  }
22
25
  export async function getMatterbridgeLatestVersion(matterbridge) {
23
26
  const { getNpmPackageVersion } = await import('./utils/network.js');
@@ -79,3 +82,21 @@ export async function getPluginLatestVersion(matterbridge, plugin) {
79
82
  matterbridge.log.warn(`Error getting plugin ${plg}${plugin.name}${wr} latest version: ${error instanceof Error ? error.message : error}`);
80
83
  }
81
84
  }
85
+ export async function getPluginDevVersion(matterbridge, plugin) {
86
+ const { getNpmPackageVersion } = await import('./utils/network.js');
87
+ try {
88
+ const version = await getNpmPackageVersion(plugin.name, 'dev');
89
+ plugin.devVersion = version;
90
+ if (plugin.version.includes('-dev-') && plugin.version !== plugin.devVersion) {
91
+ matterbridge.log.notice(`The plugin ${plg}${plugin.name}${nt} is out of date. Current version: ${plugin.version}. Latest dev version: ${plugin.devVersion}.`);
92
+ matterbridge.frontend.wssSendRefreshRequired('plugins');
93
+ }
94
+ else if (plugin.version.includes('-dev-') && plugin.version === plugin.devVersion) {
95
+ matterbridge.log.debug(`The plugin ${plg}${plugin.name}${db} is up to date. Current version: ${plugin.version}. Latest dev version: ${plugin.devVersion}.`);
96
+ }
97
+ return version;
98
+ }
99
+ catch (error) {
100
+ matterbridge.log.debug(`Error getting plugin ${plg}${plugin.name}${db} latest dev version: ${error instanceof Error ? error.message : error}`);
101
+ }
102
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "files": {
3
3
  "main.css": "./static/css/main.944b63c3.css",
4
- "main.js": "./static/js/main.4611e8da.js",
4
+ "main.js": "./static/js/main.dd4772c9.js",
5
5
  "static/js/453.d855a71b.chunk.js": "./static/js/453.d855a71b.chunk.js",
6
6
  "static/media/roboto-latin-700-normal.woff2": "./static/media/roboto-latin-700-normal.c4d6cab43bec89049809.woff2",
7
7
  "static/media/roboto-latin-500-normal.woff2": "./static/media/roboto-latin-500-normal.599f66a60bdf974e578e.woff2",
@@ -77,11 +77,11 @@
77
77
  "static/media/roboto-greek-ext-300-normal.woff": "./static/media/roboto-greek-ext-300-normal.60729cafbded24073dfb.woff",
78
78
  "index.html": "./index.html",
79
79
  "main.944b63c3.css.map": "./static/css/main.944b63c3.css.map",
80
- "main.4611e8da.js.map": "./static/js/main.4611e8da.js.map",
80
+ "main.dd4772c9.js.map": "./static/js/main.dd4772c9.js.map",
81
81
  "453.d855a71b.chunk.js.map": "./static/js/453.d855a71b.chunk.js.map"
82
82
  },
83
83
  "entrypoints": [
84
84
  "static/css/main.944b63c3.css",
85
- "static/js/main.4611e8da.js"
85
+ "static/js/main.dd4772c9.js"
86
86
  ]
87
87
  }
@@ -1 +1 @@
1
- <!doctype html><html lang="en"><head><meta charset="utf-8"/><base href="./"><link rel="icon" href="./matterbridge 32x32.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><title>Matterbridge</title><link rel="manifest" href="./manifest.json"/><script defer="defer" src="./static/js/main.4611e8da.js"></script><link href="./static/css/main.944b63c3.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>
1
+ <!doctype html><html lang="en"><head><meta charset="utf-8"/><base href="./"><link rel="icon" href="./matterbridge 32x32.png"/><meta name="viewport" content="width=device-width,initial-scale=1"/><meta name="theme-color" content="#000000"/><title>Matterbridge</title><link rel="manifest" href="./manifest.json"/><script defer="defer" src="./static/js/main.dd4772c9.js"></script><link href="./static/css/main.944b63c3.css" rel="stylesheet"></head><body><noscript>You need to enable JavaScript to run this app.</noscript><div id="root"></div></body></html>