@matter-server/dashboard 0.3.3 → 0.3.5-alpha.0-20260203-66f5d74

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.
Files changed (84) hide show
  1. package/README.md +76 -0
  2. package/dist/esm/components/dialogs/binding/node-binding-dialog.d.ts.map +1 -1
  3. package/dist/esm/components/dialogs/binding/node-binding-dialog.js +44 -17
  4. package/dist/esm/components/dialogs/binding/node-binding-dialog.js.map +1 -1
  5. package/dist/esm/entrypoint/main.js +1 -1
  6. package/dist/esm/entrypoint/main.js.map +1 -1
  7. package/dist/esm/pages/components/node-details.js +1 -1
  8. package/dist/esm/pages/components/node-details.js.map +1 -1
  9. package/dist/esm/pages/matter-cluster-view.d.ts.map +1 -1
  10. package/dist/esm/pages/matter-cluster-view.js +9 -4
  11. package/dist/esm/pages/matter-cluster-view.js.map +1 -1
  12. package/dist/esm/pages/matter-endpoint-view.d.ts.map +1 -1
  13. package/dist/esm/pages/matter-endpoint-view.js +8 -2
  14. package/dist/esm/pages/matter-endpoint-view.js.map +1 -1
  15. package/dist/esm/pages/matter-network-view.d.ts +5 -0
  16. package/dist/esm/pages/matter-network-view.d.ts.map +1 -1
  17. package/dist/esm/pages/matter-network-view.js +96 -13
  18. package/dist/esm/pages/matter-network-view.js.map +1 -1
  19. package/dist/esm/pages/matter-node-view.d.ts.map +1 -1
  20. package/dist/esm/pages/matter-node-view.js +17 -3
  21. package/dist/esm/pages/matter-node-view.js.map +1 -1
  22. package/dist/esm/pages/network/base-network-graph.d.ts +34 -0
  23. package/dist/esm/pages/network/base-network-graph.d.ts.map +1 -1
  24. package/dist/esm/pages/network/base-network-graph.js +116 -25
  25. package/dist/esm/pages/network/base-network-graph.js.map +1 -1
  26. package/dist/esm/pages/network/device-icons.js +1 -1
  27. package/dist/esm/pages/network/network-details.d.ts +31 -1
  28. package/dist/esm/pages/network/network-details.d.ts.map +1 -1
  29. package/dist/esm/pages/network/network-details.js +233 -15
  30. package/dist/esm/pages/network/network-details.js.map +1 -1
  31. package/dist/esm/pages/network/network-types.d.ts +6 -0
  32. package/dist/esm/pages/network/network-types.d.ts.map +1 -1
  33. package/dist/esm/pages/network/network-utils.d.ts +26 -0
  34. package/dist/esm/pages/network/network-utils.d.ts.map +1 -1
  35. package/dist/esm/pages/network/network-utils.js +71 -3
  36. package/dist/esm/pages/network/network-utils.js.map +1 -1
  37. package/dist/esm/pages/network/thread-graph.d.ts.map +1 -1
  38. package/dist/esm/pages/network/thread-graph.js +5 -2
  39. package/dist/esm/pages/network/thread-graph.js.map +1 -1
  40. package/dist/esm/pages/network/update-connections-dialog.d.ts +55 -0
  41. package/dist/esm/pages/network/update-connections-dialog.d.ts.map +1 -0
  42. package/dist/esm/pages/network/update-connections-dialog.js +284 -0
  43. package/dist/esm/pages/network/update-connections-dialog.js.map +6 -0
  44. package/dist/esm/pages/network/wifi-graph.d.ts.map +1 -1
  45. package/dist/esm/pages/network/wifi-graph.js +5 -3
  46. package/dist/esm/pages/network/wifi-graph.js.map +1 -1
  47. package/dist/esm/util/format_hex.d.ts +18 -0
  48. package/dist/esm/util/format_hex.d.ts.map +1 -1
  49. package/dist/esm/util/format_hex.js +21 -1
  50. package/dist/esm/util/format_hex.js.map +1 -1
  51. package/dist/esm/util/matter-status.d.ts +49 -0
  52. package/dist/esm/util/matter-status.d.ts.map +1 -0
  53. package/dist/esm/util/matter-status.js +110 -0
  54. package/dist/esm/util/matter-status.js.map +6 -0
  55. package/dist/web/js/{commission-node-dialog-B1_khzZb.js → commission-node-dialog-DBugVQOl.js} +5 -5
  56. package/dist/web/js/{commission-node-existing-RpdajrwF.js → commission-node-existing-ts2MN2bQ.js} +2 -2
  57. package/dist/web/js/{commission-node-thread-5f2itkTG.js → commission-node-thread-CixfNuM3.js} +2 -2
  58. package/dist/web/js/{commission-node-wifi-DZ_pWqsa.js → commission-node-wifi-CWC30EYn.js} +2 -2
  59. package/dist/web/js/{dialog-box-DEUxM4B1.js → dialog-box-SeMuFiWx.js} +2 -2
  60. package/dist/web/js/{fire_event-BczBMT8E.js → fire_event-B63oGTcK.js} +1 -1
  61. package/dist/web/js/{log-level-dialog-Cr3PfX1X.js → log-level-dialog-J0gFiLLM.js} +2 -2
  62. package/dist/web/js/main.js +2 -2
  63. package/dist/web/js/{matter-dashboard-app-BuCe_Jxf.js → matter-dashboard-app-D7YWrgXj.js} +2041 -246
  64. package/dist/web/js/{node-binding-dialog-DMiHNDLA.js → node-binding-dialog-DSBwIJcQ.js} +147 -19
  65. package/dist/web/js/prevent_default-D-ohDGsN.js +8 -0
  66. package/package.json +4 -4
  67. package/src/components/dialogs/binding/node-binding-dialog.ts +45 -21
  68. package/src/entrypoint/main.ts +2 -0
  69. package/src/pages/components/node-details.ts +1 -1
  70. package/src/pages/matter-cluster-view.ts +11 -4
  71. package/src/pages/matter-endpoint-view.ts +10 -3
  72. package/src/pages/matter-network-view.ts +102 -13
  73. package/src/pages/matter-node-view.ts +19 -4
  74. package/src/pages/network/base-network-graph.ts +147 -33
  75. package/src/pages/network/device-icons.ts +1 -1
  76. package/src/pages/network/network-details.ts +281 -16
  77. package/src/pages/network/network-types.ts +6 -0
  78. package/src/pages/network/network-utils.ts +109 -0
  79. package/src/pages/network/thread-graph.ts +7 -1
  80. package/src/pages/network/update-connections-dialog.ts +327 -0
  81. package/src/pages/network/wifi-graph.ts +4 -3
  82. package/src/util/format_hex.ts +39 -0
  83. package/src/util/matter-status.ts +165 -0
  84. package/dist/web/js/prevent_default-D4FX_PIh.js +0 -774
@@ -0,0 +1,110 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ const MatterStatusNames = {
7
+ 0: "Success",
8
+ 1: "Failure",
9
+ 125: "InvalidSubscription",
10
+ 126: "UnsupportedAccess",
11
+ 127: "UnsupportedEndpoint",
12
+ 128: "InvalidAction",
13
+ 129: "UnsupportedCommand",
14
+ 133: "InvalidCommand",
15
+ 134: "UnsupportedAttribute",
16
+ 135: "ConstraintError",
17
+ 136: "UnsupportedWrite",
18
+ 137: "ResourceExhausted",
19
+ 139: "NotFound",
20
+ 140: "UnreportableAttribute",
21
+ 141: "InvalidDataType",
22
+ 143: "UnsupportedRead",
23
+ 146: "DataVersionMismatch",
24
+ 148: "Timeout",
25
+ 155: "UnsupportedNode",
26
+ 156: "Busy",
27
+ 157: "AccessRestricted",
28
+ 195: "UnsupportedCluster",
29
+ 197: "NoUpstreamSubscription",
30
+ 198: "NeedsTimedInteraction",
31
+ 199: "UnsupportedEvent",
32
+ 200: "PathsExhausted",
33
+ 201: "TimedRequestMismatch",
34
+ 202: "FailsafeRequired",
35
+ 203: "InvalidInState",
36
+ 204: "NoCommandResponse",
37
+ 205: "TermsAndConditionsChanged",
38
+ 206: "MaintenanceRequired",
39
+ 207: "DynamicConstraintError",
40
+ 208: "AlreadyExists",
41
+ 209: "InvalidTransportType"
42
+ };
43
+ function getMatterStatusName(status) {
44
+ return MatterStatusNames[status] ?? `Unknown(${status})`;
45
+ }
46
+ function successResult() {
47
+ return { success: true, status: 0, statusName: "Success" };
48
+ }
49
+ function failureResult(status) {
50
+ return { success: false, status, statusName: getMatterStatusName(status) };
51
+ }
52
+ function resultFromStatus(status) {
53
+ const statusName = getMatterStatusName(status);
54
+ return { success: status === 0, status, statusName };
55
+ }
56
+ function analyzeBatchResults(results) {
57
+ if (!results || results.length === 0) {
58
+ return {
59
+ outcome: "all_failed",
60
+ successCount: 0,
61
+ failureCount: 0,
62
+ errorCounts: {},
63
+ message: "No response/results returned"
64
+ };
65
+ }
66
+ let successCount = 0;
67
+ let failureCount = 0;
68
+ const errorCounts = {};
69
+ for (const result of results) {
70
+ if (result.status === 0) {
71
+ successCount++;
72
+ } else {
73
+ failureCount++;
74
+ errorCounts[result.status] = (errorCounts[result.status] ?? 0) + 1;
75
+ }
76
+ }
77
+ let outcome;
78
+ if (failureCount === 0) {
79
+ outcome = "all_success";
80
+ } else if (successCount === 0) {
81
+ outcome = "all_failed";
82
+ } else {
83
+ outcome = "partial";
84
+ }
85
+ const message = formatBatchMessage(outcome, successCount, failureCount, errorCounts);
86
+ return { outcome, successCount, failureCount, errorCounts, message };
87
+ }
88
+ function formatBatchMessage(outcome, successCount, failureCount, errorCounts) {
89
+ const entryWord = (count) => count === 1 ? "entry" : "entries";
90
+ if (outcome === "all_success") {
91
+ return "Write successful";
92
+ }
93
+ const errorParts = Object.entries(errorCounts).map(([code, count]) => {
94
+ const statusCode = parseInt(code, 10);
95
+ return `${count}x ${getMatterStatusName(statusCode)} (${code})`;
96
+ }).join(", ");
97
+ if (outcome === "all_failed") {
98
+ return `All ${failureCount} ${entryWord(failureCount)} failed: ${errorParts}`;
99
+ }
100
+ return `Partial failure: ${successCount} ${entryWord(successCount)} succeeded, ${failureCount} failed (${errorParts}). Please verify.`;
101
+ }
102
+ export {
103
+ MatterStatusNames,
104
+ analyzeBatchResults,
105
+ failureResult,
106
+ getMatterStatusName,
107
+ resultFromStatus,
108
+ successResult
109
+ };
110
+ //# sourceMappingURL=matter-status.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/util/matter-status.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAUO,MAAM,oBAA4C;AAAA,EACrD,GAAG;AAAA,EACH,GAAG;AAAA,EACH,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AAAA,EACL,KAAK;AACT;AAGO,SAAS,oBAAoB,QAAwB;AACxD,SAAO,kBAAkB,MAAM,KAAK,WAAW,MAAM;AACzD;AA2BO,SAAS,gBAAuC;AACnD,SAAO,EAAE,SAAS,MAAM,QAAQ,GAAG,YAAY,UAAU;AAC7D;AAGO,SAAS,cAAc,QAAuC;AACjE,SAAO,EAAE,SAAS,OAAO,QAAQ,YAAY,oBAAoB,MAAM,EAAE;AAC7E;AAGO,SAAS,iBAAiB,QAAuC;AACpE,QAAM,aAAa,oBAAoB,MAAM;AAC7C,SAAO,EAAE,SAAS,WAAW,GAAG,QAAQ,WAAW;AACvD;AAQO,SAAS,oBAAoB,SAA0E;AAC1G,MAAI,CAAC,WAAW,QAAQ,WAAW,GAAG;AAClC,WAAO;AAAA,MACH,SAAS;AAAA,MACT,cAAc;AAAA,MACd,cAAc;AAAA,MACd,aAAa,CAAC;AAAA,MACd,SAAS;AAAA,IACb;AAAA,EACJ;AAEA,MAAI,eAAe;AACnB,MAAI,eAAe;AACnB,QAAM,cAAsC,CAAC;AAE7C,aAAW,UAAU,SAAS;AAC1B,QAAI,OAAO,WAAW,GAAG;AACrB;AAAA,IACJ,OAAO;AACH;AACA,kBAAY,OAAO,MAAM,KAAK,YAAY,OAAO,MAAM,KAAK,KAAK;AAAA,IACrE;AAAA,EACJ;AAEA,MAAI;AACJ,MAAI,iBAAiB,GAAG;AACpB,cAAU;AAAA,EACd,WAAW,iBAAiB,GAAG;AAC3B,cAAU;AAAA,EACd,OAAO;AACH,cAAU;AAAA,EACd;AAEA,QAAM,UAAU,mBAAmB,SAAS,cAAc,cAAc,WAAW;AAEnF,SAAO,EAAE,SAAS,cAAc,cAAc,aAAa,QAAQ;AACvE;AAGA,SAAS,mBACL,SACA,cACA,cACA,aACM;AACN,QAAM,YAAY,CAAC,UAAmB,UAAU,IAAI,UAAU;AAE9D,MAAI,YAAY,eAAe;AAC3B,WAAO;AAAA,EACX;AAGA,QAAM,aAAa,OAAO,QAAQ,WAAW,EACxC,IAAI,CAAC,CAAC,MAAM,KAAK,MAAM;AACpB,UAAM,aAAa,SAAS,MAAM,EAAE;AACpC,WAAO,GAAG,KAAK,KAAK,oBAAoB,UAAU,CAAC,KAAK,IAAI;AAAA,EAChE,CAAC,EACA,KAAK,IAAI;AAEd,MAAI,YAAY,cAAc;AAC1B,WAAO,OAAO,YAAY,IAAI,UAAU,YAAY,CAAC,YAAY,UAAU;AAAA,EAC/E;AAGA,SAAO,oBAAoB,YAAY,IAAI,UAAU,YAAY,CAAC,eAAe,YAAY,YAAY,UAAU;AACvH;",
5
+ "names": []
6
+ }
@@ -1,5 +1,5 @@
1
- import { r, n, t, i, j as b } from './matter-dashboard-app-BuCe_Jxf.js';
2
- import { p as preventDefault } from './prevent_default-D4FX_PIh.js';
1
+ import { r, n, t, i, j as b } from './matter-dashboard-app-D7YWrgXj.js';
2
+ import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
3
3
  import './main.js';
4
4
 
5
5
  var __defProp = Object.defineProperty;
@@ -44,18 +44,18 @@ let ComissionNodeDialog = class extends i {
44
44
  if (!this.client.serverInfo.bluetooth_enabled) {
45
45
  return;
46
46
  }
47
- import('./commission-node-wifi-DZ_pWqsa.js');
47
+ import('./commission-node-wifi-CWC30EYn.js');
48
48
  this._mode = "wifi";
49
49
  }
50
50
  _commissionThread() {
51
51
  if (!this.client.serverInfo.bluetooth_enabled) {
52
52
  return;
53
53
  }
54
- import('./commission-node-thread-5f2itkTG.js');
54
+ import('./commission-node-thread-CixfNuM3.js');
55
55
  this._mode = "thread";
56
56
  }
57
57
  _commissionExisting() {
58
- import('./commission-node-existing-RpdajrwF.js');
58
+ import('./commission-node-existing-ts2MN2bQ.js');
59
59
  this._mode = "existing";
60
60
  }
61
61
  _nodeCommissioned(ev) {
@@ -1,5 +1,5 @@
1
- import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-BuCe_Jxf.js';
2
- import { f as fireEvent } from './fire_event-BczBMT8E.js';
1
+ import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-D7YWrgXj.js';
2
+ import { f as fireEvent } from './fire_event-B63oGTcK.js';
3
3
  import './main.js';
4
4
 
5
5
  var __defProp = Object.defineProperty;
@@ -1,5 +1,5 @@
1
- import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-BuCe_Jxf.js';
2
- import { f as fireEvent } from './fire_event-BczBMT8E.js';
1
+ import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-D7YWrgXj.js';
2
+ import { f as fireEvent } from './fire_event-B63oGTcK.js';
3
3
  import './main.js';
4
4
 
5
5
  var __defProp = Object.defineProperty;
@@ -1,5 +1,5 @@
1
- import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-BuCe_Jxf.js';
2
- import { f as fireEvent } from './fire_event-BczBMT8E.js';
1
+ import { r, G as c, H as clientContext, n, a as e, t, i, A, F as handleAsync, j as b } from './matter-dashboard-app-D7YWrgXj.js';
2
+ import { f as fireEvent } from './fire_event-B63oGTcK.js';
3
3
  import './main.js';
4
4
 
5
5
  var __defProp = Object.defineProperty;
@@ -1,5 +1,5 @@
1
- import { n, t, i, j as b } from './matter-dashboard-app-BuCe_Jxf.js';
2
- import { p as preventDefault } from './prevent_default-D4FX_PIh.js';
1
+ import { n, t, i, j as b } from './matter-dashboard-app-D7YWrgXj.js';
2
+ import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
3
3
  import './main.js';
4
4
 
5
5
  var __defProp = Object.defineProperty;
@@ -1,4 +1,4 @@
1
- import { m as mixinDelegatesAria, i, _ as __decorate, n, A, f as e, j as b, k as i$1, t } from './matter-dashboard-app-BuCe_Jxf.js';
1
+ import { m as mixinDelegatesAria, i, _ as __decorate, n, A, f as e, j as b, k as i$1, t } from './matter-dashboard-app-D7YWrgXj.js';
2
2
 
3
3
  /**
4
4
  * @license
@@ -1,5 +1,5 @@
1
- import { e, N as NavigableKeys, _ as __decorate, a as e$1, n as n$1, o, r, i, c as createAnimationSignal, L as ListController, g as getActiveItem, b as getLastActivatableItem, d as getFirstActivatableItem, A, f as e$2, h as o$1, j as b, E as EASING, k as i$1, t, V as Validator, D, m as mixinDelegatesAria, l as mixinOnReportValidity, p as mixinConstraintValidation, q as mixinFormAssociated, s as mixinElementInternals, u as onReportValidity, v as u, w as redispatchEvent, x as getFormValue, y as createValidator, z as getValidityAnchor, B as i$2, C as fireAndForget, F as handleAsync } from './matter-dashboard-app-BuCe_Jxf.js';
2
- import { p as preventDefault } from './prevent_default-D4FX_PIh.js';
1
+ import { e, N as NavigableKeys, _ as __decorate, a as e$1, n as n$1, o, r, i, c as createAnimationSignal, L as ListController, g as getActiveItem, b as getLastActivatableItem, d as getFirstActivatableItem, A, f as e$2, h as o$1, j as b, E as EASING, k as i$1, t, V as Validator, D, m as mixinDelegatesAria, l as mixinOnReportValidity, p as mixinConstraintValidation, q as mixinFormAssociated, s as mixinElementInternals, u as onReportValidity, v as u, w as redispatchEvent, x as getFormValue, y as createValidator, z as getValidityAnchor, B as i$2, C as fireAndForget, F as handleAsync } from './matter-dashboard-app-D7YWrgXj.js';
2
+ import { p as preventDefault } from './prevent_default-D-ohDGsN.js';
3
3
  import './main.js';
4
4
 
5
5
  /**
@@ -748,9 +748,9 @@ const ThemeService = new ThemeServiceImpl();
748
748
  * SPDX-License-Identifier: Apache-2.0
749
749
  */
750
750
  async function main() {
751
- import('./matter-dashboard-app-BuCe_Jxf.js').then(function (n) { return n.I; });
751
+ import('./matter-dashboard-app-D7YWrgXj.js').then(function (n) { return n.I; });
752
752
  let url = "";
753
- const isProductionServer = location.origin.includes(":5580") || location.href.includes("hassio_ingress") || location.href.includes("/api/ingress/");
753
+ const isProductionServer = window.__MATTERJS_PRODUCTION_MODE__ === true || location.origin.includes(":5580") || location.href.includes("hassio_ingress") || location.href.includes("/api/ingress/");
754
754
  if (!isProductionServer) {
755
755
  let storageUrl = localStorage.getItem("matterURL");
756
756
  if (!storageUrl) {