smart-home-engine 1.2.0 → 1.3.0

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.
@@ -1,4 +1,4 @@
1
- import{m as O}from"./monaco-langs-BW2J83t5.js";import{t as I}from"./index-CY1IzFyN.js";/*!-----------------------------------------------------------------------------
1
+ import{m as O}from"./monaco-langs-BW2J83t5.js";import{t as I}from"./index-SmPJ7Vpm.js";/*!-----------------------------------------------------------------------------
2
2
  * Copyright (c) Microsoft Corporation. All rights reserved.
3
3
  * Version: 0.52.2(404545bded1df6ffa41ea0af4e8ddb219018c6c1)
4
4
  * Released under the MIT license
@@ -172,10 +172,10 @@
172
172
  }
173
173
  })();
174
174
  </script>
175
- <script type="module" crossorigin src="/assets/index-CY1IzFyN.js"></script>
175
+ <script type="module" crossorigin src="/assets/index-SmPJ7Vpm.js"></script>
176
176
  <link rel="modulepreload" crossorigin href="/assets/monaco-langs-BW2J83t5.js">
177
177
  <link rel="stylesheet" crossorigin href="/assets/monaco-langs-DyX1CsEw.css">
178
- <link rel="stylesheet" crossorigin href="/assets/index-CiR8cZ_Y.css">
178
+ <link rel="stylesheet" crossorigin href="/assets/index-BTdLG-cS.css">
179
179
  </head>
180
180
  <body>
181
181
  <div id="app"></div>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "smart-home-engine",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "Node.js based script runner for use in MQTT based Smart Home environments",
5
5
  "main": "src/index.js",
6
6
  "scripts": {
package/src/lib/dynsec.js CHANGED
@@ -343,6 +343,16 @@ function setDefaultACLAccess(acls) {
343
343
  return _request('setDefaultACLAccess', { acls });
344
344
  }
345
345
 
346
+ // ── Anonymous group ────────────────────────────────────────────────────────────
347
+
348
+ function getAnonymousGroup() {
349
+ return _request('getAnonymousGroup').then((r) => r.data?.group ?? r.group ?? null);
350
+ }
351
+
352
+ function setAnonymousGroup(groupname) {
353
+ return _request('setAnonymousGroup', { groupname });
354
+ }
355
+
346
356
  module.exports = {
347
357
  init,
348
358
  getStatus,
@@ -376,4 +386,7 @@ module.exports = {
376
386
  // Default ACLs
377
387
  getDefaultACLAccess,
378
388
  setDefaultACLAccess,
389
+ // Anonymous group
390
+ getAnonymousGroup,
391
+ setAnonymousGroup,
379
392
  };
@@ -490,6 +490,42 @@ router.get('/acl-defaults', async (req, res) => {
490
490
  }
491
491
  });
492
492
 
493
+ /** PUT /she/broker/acl-defaults */
494
+ router.put('/acl-defaults', async (req, res) => {
495
+ try {
496
+ const { acls } = req.body;
497
+ if (!Array.isArray(acls)) return res.status(400).json({ error: 'acls array required' });
498
+ await dynsec.setDefaultACLAccess(acls);
499
+ res.json({ ok: true });
500
+ } catch (err) {
501
+ handleError(res, err);
502
+ }
503
+ });
504
+
505
+ // ── dynsec: Anonymous group ───────────────────────────────────────────────────
506
+
507
+ /** GET /she/broker/anonymous-group */
508
+ router.get('/anonymous-group', async (req, res) => {
509
+ try {
510
+ const group = await dynsec.getAnonymousGroup();
511
+ res.json({ group });
512
+ } catch (err) {
513
+ handleError(res, err);
514
+ }
515
+ });
516
+
517
+ /** PUT /she/broker/anonymous-group */
518
+ router.put('/anonymous-group', async (req, res) => {
519
+ try {
520
+ const { groupname } = req.body;
521
+ if (typeof groupname !== 'string' && groupname !== null) return res.status(400).json({ error: 'groupname string or null required' });
522
+ await dynsec.setAnonymousGroup(groupname);
523
+ res.json({ ok: true });
524
+ } catch (err) {
525
+ handleError(res, err);
526
+ }
527
+ });
528
+
493
529
  // ── CA routes ─────────────────────────────────────────────────────────────────
494
530
 
495
531
  /** GET /she/broker/ca — CA cert info */