mb-service-linux 1.0.1-dev-20260210-7cfdbac → 1.0.2

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
@@ -19,6 +19,28 @@ If you like this project and find it useful, please consider giving it a star on
19
19
 
20
20
  <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="120"></a>
21
21
 
22
+ ## [1.0.2] - 2026-03-27
23
+
24
+ ### Changed
25
+
26
+ - [package]: Update dependencies.
27
+ - [package]: Update actions versions in workflows.
28
+ - [package]: Bump package to `automator` v.3.1.4.
29
+ - [package]: Bump `typescript` to v.6.0.2.
30
+ - [package]: Bump `typescript-eslint` to v.8.57.2.
31
+ - [package]: Bump `eslint` to v.10.1.0.
32
+ - [package]: Add `type checking` script for Jest tests.
33
+ - [package]: Add `CODE_OF_CONDUCT.md`.
34
+ - [package]: Add `@eslint/json`.
35
+ - [package]: Add `@eslint/markdown`.
36
+ - [package]: Add `CONTRIBUTING.md`.
37
+ - [package]: Add `STYLEGUIDE.md`.
38
+ - [package]: Replace `eslint-plugin-import` with `eslint-plugin-simple-import-sort`.
39
+ - [devcontainer]: Update `Dev Container` configuration.
40
+ - [devcontainer]: Add `postStartCommand` to the Dev Container configuration.
41
+
42
+ <a href="https://www.buymeacoffee.com/luligugithub"><img src="https://matterbridge.io/assets/bmc-button.svg" alt="Buy me a coffee" width="80"></a>
43
+
22
44
  ## [1.0.1] - 2026-02-10
23
45
 
24
46
  ### Changed
package/dist/module.js CHANGED
@@ -1,48 +1,14 @@
1
- /**
2
- * @description This file contains the main entry point for the mb-service command.
3
- * @file module.ts
4
- * @author Luca Liguori
5
- * @created 2024-07-14
6
- * @version 1.1.3
7
- * @license Apache-2.0
8
- *
9
- * Copyright 2024, 2025, 2026 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 n/no-process-exit */
24
- /* eslint-disable no-console */
25
- // console.warn('Loaded module.ts.');
26
- import { existsSync, writeFileSync } from 'node:fs';
27
1
  import { spawnSync } from 'node:child_process';
28
- /**
29
- * Main entry point for the mb-service command.
30
- * It is designed to manage the Matterbridge service on Linux systems.
31
- * It checks if the system is running on Linux and not inside a container.
32
- * If the conditions are met, it prints the help screen for mb-service if no command is given.
33
- */
2
+ import { existsSync, writeFileSync } from 'node:fs';
34
3
  export function main() {
35
- // Exit if not running on Linux
36
4
  if (process.platform !== 'linux') {
37
5
  console.error('This command is only available on Linux systems. Please use the mb-service for your platform.');
38
6
  return;
39
7
  }
40
- // Exit if running inside a container (check for /.dockerenv or /run/.containerenv)
41
8
  if (existsSync('/.dockerenv') || existsSync('/run/.containerenv')) {
42
9
  console.error('This command is not available inside a container. Please run it on a host system.');
43
10
  return;
44
11
  }
45
- // Exit if not running as root
46
12
  if (process.getuid && process.getuid() !== 0) {
47
13
  console.error('This command must be run as root. Please use sudo.');
48
14
  return;
@@ -122,9 +88,6 @@ export function main() {
122
88
  return;
123
89
  }
124
90
  }
125
- /**
126
- * Prints the help screen for mb-service, similar to hb-service for Homebridge.
127
- */
128
91
  function printHelp() {
129
92
  console.log(`Usage: mb-service [start|stop|restart|logs|status]\n\n` +
130
93
  ` Please provide a command:\n` +
@@ -142,9 +105,6 @@ function printHelp() {
142
105
  ` logs tails the matterbridge service logs\n` +
143
106
  ` status check if matterbridge is running\n`);
144
107
  }
145
- /**
146
- * Create the systemd service configuration for Matterbridge.
147
- */
148
108
  function createServiceConfig() {
149
109
  const user = process.env.SUDO_USER || process.env.USER;
150
110
  const config = `[Unit]\n` +
@@ -194,107 +154,66 @@ function createServiceConfig() {
194
154
  process.exit(1);
195
155
  }
196
156
  }
197
- /**
198
- * Start the matterbridge service using systemctl.
199
- */
200
157
  function startMatterbridgeService() {
201
158
  const result = spawnSync('systemctl', ['start', 'matterbridge'], { stdio: 'inherit' });
202
159
  if (result.error) {
203
160
  console.error('Failed to start matterbridge service:', result.error.message);
204
161
  }
205
162
  }
206
- /**
207
- * Stop the matterbridge service using systemctl.
208
- */
209
163
  function stopMatterbridgeService() {
210
164
  const result = spawnSync('systemctl', ['stop', 'matterbridge'], { stdio: 'inherit' });
211
165
  if (result.error) {
212
166
  console.error('Failed to stop matterbridge service:', result.error.message);
213
167
  }
214
168
  }
215
- /**
216
- * Restart the matterbridge service using systemctl.
217
- */
218
169
  function restartMatterbridgeService() {
219
170
  const result = spawnSync('systemctl', ['restart', 'matterbridge'], { stdio: 'inherit' });
220
171
  if (result.error) {
221
172
  console.error('Failed to restart matterbridge service:', result.error.message);
222
173
  }
223
174
  }
224
- /**
225
- * Enable the matterbridge service using systemctl.
226
- */
227
175
  function enableMatterbridgeService() {
228
176
  const result = spawnSync('systemctl', ['enable', 'matterbridge'], { stdio: 'inherit' });
229
177
  if (result.error) {
230
178
  console.error('Failed to enable matterbridge service:', result.error.message);
231
179
  }
232
180
  }
233
- /**
234
- * Disable the matterbridge service using systemctl.
235
- */
236
181
  function disableMatterbridgeService() {
237
182
  const result = spawnSync('systemctl', ['disable', 'matterbridge'], { stdio: 'inherit' });
238
183
  if (result.error) {
239
184
  console.error('Failed to disable matterbridge service:', result.error.message);
240
185
  }
241
186
  }
242
- /**
243
- * Install a global npm package (plugin) for Matterbridge.
244
- *
245
- * @param {string} pkg - The npm package name (and optional version) to install globally.
246
- */
247
187
  function installGlobalPackage(pkg) {
248
188
  const result = spawnSync('npm', ['install', pkg, '--global', '--omit=dev', '--verbose'], { stdio: 'inherit' });
249
189
  if (result.error) {
250
190
  console.error(`Failed to install ${pkg}:`, result.error.message);
251
191
  }
252
192
  }
253
- /**
254
- * Uninstall a global npm package (plugin) for Matterbridge.
255
- *
256
- * @param {string} pkg - The npm package name (and optional version) to uninstall globally.
257
- */
258
193
  function uninstallGlobalPackage(pkg) {
259
194
  const result = spawnSync('npm', ['uninstall', pkg, '--global', '--verbose'], { stdio: 'inherit' });
260
195
  if (result.error) {
261
196
  console.error(`Failed to uninstall ${pkg}:`, result.error.message);
262
197
  }
263
198
  }
264
- /**
265
- * Add a plugin to Matterbridge using 'matterbridge -add PLUGIN'.
266
- *
267
- * @param {string} plugin - The plugin name to add.
268
- */
269
199
  function addMatterbridgePlugin(plugin) {
270
200
  const result = spawnSync('matterbridge', ['-add', plugin], { stdio: 'inherit' });
271
201
  if (result.error) {
272
202
  console.error(`Failed to add plugin ${plugin}:`, result.error.message);
273
203
  }
274
204
  }
275
- /**
276
- * Remove a plugin from Matterbridge using 'matterbridge -remove PLUGIN'.
277
- *
278
- * @param {string} plugin - The plugin name to remove.
279
- */
280
205
  function removeMatterbridgePlugin(plugin) {
281
206
  const result = spawnSync('matterbridge', ['-remove', plugin], { stdio: 'inherit' });
282
207
  if (result.error) {
283
208
  console.error(`Failed to remove plugin ${plugin}:`, result.error.message);
284
209
  }
285
210
  }
286
- /**
287
- * Show the last 1000 lines of the Matterbridge service logs and follow new logs.
288
- */
289
211
  function showMatterbridgeLogs() {
290
212
  const result = spawnSync('journalctl', ['-u', 'matterbridge.service', '-n', '1000', '-f', '--output', 'cat'], { stdio: 'inherit' });
291
213
  if (result.error) {
292
214
  console.error('Failed to show logs:', result.error.message);
293
215
  }
294
216
  }
295
- /**
296
- * Show the status of the Matterbridge service using systemctl.
297
- */
298
217
  function showMatterbridgeStatus() {
299
218
  const result = spawnSync('systemctl', ['status', 'matterbridge', '--no-pager'], { stdio: 'inherit' });
300
219
  if (result.error) {
@@ -302,4 +221,3 @@ function showMatterbridgeStatus() {
302
221
  }
303
222
  }
304
223
  main();
305
- //# sourceMappingURL=module.js.map
@@ -1,18 +1,18 @@
1
1
  {
2
2
  "name": "mb-service-linux",
3
- "version": "1.0.1-dev-20260210-7cfdbac",
3
+ "version": "1.0.2",
4
4
  "lockfileVersion": 3,
5
5
  "requires": true,
6
6
  "packages": {
7
7
  "": {
8
8
  "name": "mb-service-linux",
9
- "version": "1.0.1-dev-20260210-7cfdbac",
9
+ "version": "1.0.2",
10
10
  "license": "Apache-2.0",
11
11
  "bin": {
12
12
  "mb-service": "bin/mb-service"
13
13
  },
14
14
  "engines": {
15
- "node": ">=20.0.0 <21.0.0 || >=22.0.0 <23.0.0 || >=24.0.0 <25.0.0"
15
+ "node": ">=20.19.0 <21.0.0 || >=22.13.0 <23.0.0 || >=24.0.0 <25.0.0"
16
16
  },
17
17
  "funding": {
18
18
  "type": "buymeacoffee",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mb-service-linux",
3
- "version": "1.0.1-dev-20260210-7cfdbac",
3
+ "version": "1.0.2",
4
4
  "description": "Matterbridge service command line interface",
5
5
  "author": "https://github.com/Luligu",
6
6
  "license": "Apache-2.0",
@@ -49,7 +49,7 @@
49
49
  }
50
50
  },
51
51
  "engines": {
52
- "node": ">=20.0.0 <21.0.0 || >=22.0.0 <23.0.0 || >=24.0.0 <25.0.0"
52
+ "node": ">=20.19.0 <21.0.0 || >=22.13.0 <23.0.0 || >=24.0.0 <25.0.0"
53
53
  },
54
54
  "bin": {
55
55
  "mb-service": "bin/mb-service"
@@ -59,5 +59,10 @@
59
59
  "dist",
60
60
  "npm-shrinkwrap.json",
61
61
  "CHANGELOG.md"
62
- ]
62
+ ],
63
+ "overrides": {
64
+ "typescript": "6.0.2",
65
+ "eslint": "10.1.0",
66
+ "@eslint/js": "10.0.1"
67
+ }
63
68
  }
package/dist/module.d.ts DELETED
@@ -1,30 +0,0 @@
1
- /**
2
- * @description This file contains the main entry point for the mb-service command.
3
- * @file module.ts
4
- * @author Luca Liguori
5
- * @created 2024-07-14
6
- * @version 1.1.3
7
- * @license Apache-2.0
8
- *
9
- * Copyright 2024, 2025, 2026 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
- /**
24
- * Main entry point for the mb-service command.
25
- * It is designed to manage the Matterbridge service on Linux systems.
26
- * It checks if the system is running on Linux and not inside a container.
27
- * If the conditions are met, it prints the help screen for mb-service if no command is given.
28
- */
29
- export declare function main(): void;
30
- //# sourceMappingURL=module.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"module.d.ts","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AASH;;;;;GAKG;AACH,wBAAgB,IAAI,SAgGnB"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"module.js","sourceRoot":"","sources":["../src/module.ts"],"names":[],"mappings":"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"}