@matter-server/dashboard 0.6.2 → 0.6.3
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/dist/esm/pages/matter-network-view.d.ts +15 -0
- package/dist/esm/pages/matter-network-view.d.ts.map +1 -1
- package/dist/esm/pages/matter-network-view.js +171 -1
- package/dist/esm/pages/matter-network-view.js.map +1 -1
- package/dist/esm/pages/network/base-network-graph.d.ts +4 -0
- package/dist/esm/pages/network/base-network-graph.d.ts.map +1 -1
- package/dist/esm/pages/network/base-network-graph.js +9 -0
- package/dist/esm/pages/network/base-network-graph.js.map +1 -1
- package/dist/esm/pages/network/border-router-store.d.ts +20 -0
- package/dist/esm/pages/network/border-router-store.d.ts.map +1 -0
- package/dist/esm/pages/network/border-router-store.js +29 -0
- package/dist/esm/pages/network/border-router-store.js.map +6 -0
- package/dist/esm/pages/network/network-details.d.ts +40 -12
- package/dist/esm/pages/network/network-details.d.ts.map +1 -1
- package/dist/esm/pages/network/network-details.js +440 -112
- package/dist/esm/pages/network/network-details.js.map +1 -1
- package/dist/esm/pages/network/network-types.d.ts +76 -0
- package/dist/esm/pages/network/network-types.d.ts.map +1 -1
- package/dist/esm/pages/network/network-types.js.map +1 -1
- package/dist/esm/pages/network/network-utils.d.ts +89 -22
- package/dist/esm/pages/network/network-utils.d.ts.map +1 -1
- package/dist/esm/pages/network/network-utils.js +233 -95
- package/dist/esm/pages/network/network-utils.js.map +1 -1
- package/dist/esm/pages/network/thread-graph.d.ts +68 -9
- package/dist/esm/pages/network/thread-graph.d.ts.map +1 -1
- package/dist/esm/pages/network/thread-graph.js +388 -50
- package/dist/esm/pages/network/thread-graph.js.map +2 -2
- package/dist/esm/util/device-icons.d.ts +6 -0
- package/dist/esm/util/device-icons.d.ts.map +1 -1
- package/dist/esm/util/device-icons.js +6 -0
- package/dist/esm/util/device-icons.js.map +1 -1
- package/dist/web/js/{attribute-write-dialog-g4B6BoRt.js → attribute-write-dialog-DlMTUiLK.js} +1 -1
- package/dist/web/js/{command-invoke-dialog-D6G704VK.js → command-invoke-dialog-DO3IyFcm.js} +1 -1
- package/dist/web/js/{commission-node-dialog-Bg3oo5ub.js → commission-node-dialog-CMSvCm0i.js} +4 -4
- package/dist/web/js/{commission-node-existing-DO3g1aQJ.js → commission-node-existing-D08jghFu.js} +2 -2
- package/dist/web/js/{commission-node-thread-DM432aH1.js → commission-node-thread-D5waY758.js} +2 -2
- package/dist/web/js/{commission-node-wifi-Bx40FXij.js → commission-node-wifi-ClBlCFTZ.js} +2 -2
- package/dist/web/js/{dialog-box-DjyfULWB.js → dialog-box-D9vS2SmP.js} +1 -1
- package/dist/web/js/{fire_event-BstgNPuh.js → fire_event-BPhROjTC.js} +1 -1
- package/dist/web/js/main.js +1 -1
- package/dist/web/js/{matter-dashboard-app-Cj88TtbZ.js → matter-dashboard-app-C9zTE5uH.js} +1359 -302
- package/dist/web/js/{node-binding-dialog-9yy2LE3_.js → node-binding-dialog-B5p-gbim.js} +1 -1
- package/dist/web/js/{settings-dialog-Cs2xMsXb.js → settings-dialog-BMFhom0W.js} +1 -1
- package/package.json +4 -4
- package/src/pages/matter-network-view.ts +185 -1
- package/src/pages/network/base-network-graph.ts +10 -0
- package/src/pages/network/border-router-store.ts +38 -0
- package/src/pages/network/network-details.ts +535 -140
- package/src/pages/network/network-types.ts +76 -0
- package/src/pages/network/network-utils.ts +390 -171
- package/src/pages/network/thread-graph.ts +532 -73
- package/src/util/device-icons.ts +13 -0
|
@@ -4,11 +4,18 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import type { BorderRouterEntry } from "@matter-server/ws-client";
|
|
8
|
+
|
|
7
9
|
/**
|
|
8
10
|
* Network type detected from NetworkCommissioning cluster feature map.
|
|
9
11
|
*/
|
|
10
12
|
export type NetworkType = "thread" | "wifi" | "ethernet" | "unknown";
|
|
11
13
|
|
|
14
|
+
/**
|
|
15
|
+
* Classification of a Thread mesh link based on RSSI/LQI.
|
|
16
|
+
*/
|
|
17
|
+
export type SignalLevel = "strong" | "medium" | "weak";
|
|
18
|
+
|
|
12
19
|
/**
|
|
13
20
|
* Thread routing role from ThreadNetworkDiagnostics cluster.
|
|
14
21
|
* Attribute 0/53/1 (RoutingRole)
|
|
@@ -103,6 +110,8 @@ export interface ThreadConnection {
|
|
|
103
110
|
fromNodeId: number | string;
|
|
104
111
|
toNodeId: number | string;
|
|
105
112
|
signalColor: string;
|
|
113
|
+
/** Undefined when link strength is unknown (e.g. route-table entry without LQI). */
|
|
114
|
+
signalLevel?: SignalLevel;
|
|
106
115
|
lqi: number;
|
|
107
116
|
rssi: number | null;
|
|
108
117
|
/** Path cost from route table (1 = direct, higher = multi-hop). Only available for routers. */
|
|
@@ -113,10 +122,28 @@ export interface ThreadConnection {
|
|
|
113
122
|
fromRouteTable?: boolean;
|
|
114
123
|
}
|
|
115
124
|
|
|
125
|
+
/**
|
|
126
|
+
* A pair of Thread nodes with their directional edge data.
|
|
127
|
+
* Each connected pair has 0-2 edges (one per neighbor/route table direction).
|
|
128
|
+
*/
|
|
129
|
+
export interface ThreadEdgePair {
|
|
130
|
+
/** Canonical pair key (sorted node IDs joined by "|") */
|
|
131
|
+
pairKey: string;
|
|
132
|
+
/** First node ID (lexicographically smaller) */
|
|
133
|
+
nodeA: string;
|
|
134
|
+
/** Second node ID (lexicographically larger) */
|
|
135
|
+
nodeB: string;
|
|
136
|
+
/** Edge where nodeA reports nodeB as neighbor */
|
|
137
|
+
edgeAB?: ThreadConnection;
|
|
138
|
+
/** Edge where nodeB reports nodeA as neighbor */
|
|
139
|
+
edgeBA?: ThreadConnection;
|
|
140
|
+
}
|
|
141
|
+
|
|
116
142
|
/**
|
|
117
143
|
* Unknown Thread device seen in neighbor tables but not commissioned.
|
|
118
144
|
*/
|
|
119
145
|
export interface UnknownThreadDevice {
|
|
146
|
+
kind: "unknown";
|
|
120
147
|
/** Unique ID for the unknown device (prefixed with 'unknown_') */
|
|
121
148
|
id: string;
|
|
122
149
|
/** Extended address as hex string */
|
|
@@ -129,8 +156,46 @@ export interface UnknownThreadDevice {
|
|
|
129
156
|
isRouter: boolean;
|
|
130
157
|
/** Best signal strength seen */
|
|
131
158
|
bestRssi: number | null;
|
|
159
|
+
/**
|
|
160
|
+
* Extended PAN ID (16-char uppercase hex) inherited from the commissioned node that
|
|
161
|
+
* reports this neighbor. All Thread neighbors share the observing node's network.
|
|
162
|
+
*/
|
|
163
|
+
extendedPanIdHex?: string;
|
|
164
|
+
/**
|
|
165
|
+
* Friendly Thread network name resolved by joining {@link extendedPanIdHex} against the
|
|
166
|
+
* Border Router registry. Some BR vendors (e.g. Apple, Aqara) use a stable border-agent
|
|
167
|
+
* ID as the MeshCoP `xa` while the actual Thread radio MAC differs, so the BR can show
|
|
168
|
+
* up as both a known BR and an "unknown" router on the same network.
|
|
169
|
+
*/
|
|
170
|
+
networkName?: string;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
/**
|
|
174
|
+
* Thread Border Router enriched via mDNS.
|
|
175
|
+
*
|
|
176
|
+
* Same neighbor-table aggregate fields as UnknownThreadDevice (seenBy, isRouter, bestRssi),
|
|
177
|
+
* plus all BorderRouterEntry fields (network name, vendor, addresses, etc.).
|
|
178
|
+
*/
|
|
179
|
+
export interface KnownBorderRouter extends BorderRouterEntry {
|
|
180
|
+
kind: "br";
|
|
181
|
+
/** DOM/graph ID, formatted "br_<XAHEX>". */
|
|
182
|
+
id: string;
|
|
183
|
+
/** Convenience copy of extAddressHex as bigint, mirroring UnknownThreadDevice. */
|
|
184
|
+
extAddress: bigint;
|
|
185
|
+
/** Commissioned node IDs whose neighbor table sees this xa. */
|
|
186
|
+
seenBy: string[];
|
|
187
|
+
/** Inferred from neighbor entry. */
|
|
188
|
+
isRouter: boolean;
|
|
189
|
+
/** Best signal strength seen across observers. */
|
|
190
|
+
bestRssi: number | null;
|
|
132
191
|
}
|
|
133
192
|
|
|
193
|
+
/**
|
|
194
|
+
* External Thread device discriminated union — either a recognized Border Router
|
|
195
|
+
* or an unidentified neighbor.
|
|
196
|
+
*/
|
|
197
|
+
export type ThreadExternalDevice = KnownBorderRouter | UnknownThreadDevice;
|
|
198
|
+
|
|
134
199
|
/**
|
|
135
200
|
* Network graph node data for vis.js.
|
|
136
201
|
*/
|
|
@@ -147,6 +212,8 @@ export interface NetworkGraphNode {
|
|
|
147
212
|
isUnknown?: boolean;
|
|
148
213
|
/** Physics group: "connected" or "disconnected" */
|
|
149
214
|
group?: "connected" | "disconnected";
|
|
215
|
+
/** Whether the node should be hidden */
|
|
216
|
+
hidden?: boolean;
|
|
150
217
|
}
|
|
151
218
|
|
|
152
219
|
/**
|
|
@@ -164,4 +231,13 @@ export interface NetworkGraphEdge {
|
|
|
164
231
|
title?: string;
|
|
165
232
|
/** Whether to show as dashed line */
|
|
166
233
|
dashes?: boolean;
|
|
234
|
+
/** Whether the edge should be hidden */
|
|
235
|
+
hidden?: boolean;
|
|
236
|
+
/** vis.js arrow configuration: shorthand string ("to", "from", "") or
|
|
237
|
+
* object form for explicit head sizing on dashed edges. */
|
|
238
|
+
arrows?: string | { to?: { enabled: boolean; scaleFactor: number } };
|
|
239
|
+
/** The edge pair key this belongs to (Thread graph dedup/highlight) */
|
|
240
|
+
pairKey?: string;
|
|
241
|
+
/** Which node reported this connection from its neighbor/route table */
|
|
242
|
+
reportingNodeId?: number | string;
|
|
167
243
|
}
|