@matter/nodejs-shell 0.17.2-alpha.0-20260607-8fc16b308 → 0.17.2-alpha.0-20260609-97109a2d3
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/shell/cmd_nodes.js +103 -5
- package/dist/esm/shell/cmd_nodes.js.map +1 -1
- package/package.json +9 -9
- package/src/shell/cmd_nodes.ts +122 -5
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { capitalize, ChannelType, decamelize, Diagnostic, ServerAddress } from "@matter/general";
|
|
7
|
-
import { NetworkClient, SoftwareUpdateManager } from "@matter/node";
|
|
7
|
+
import { CommissioningClient, NetworkClient, SoftwareUpdateManager } from "@matter/node";
|
|
8
8
|
import { PeerAddress, PeerSet } from "@matter/protocol";
|
|
9
9
|
import { FabricIndex, NodeId } from "@matter/types";
|
|
10
10
|
import { NodeStateInformation } from "@project-chip/matter.js/device";
|
|
@@ -46,6 +46,36 @@ function createDiagnosticCallbacks() {
|
|
|
46
46
|
}
|
|
47
47
|
};
|
|
48
48
|
}
|
|
49
|
+
function parseFallbackAddress(input) {
|
|
50
|
+
const match = /^(udp|tcp):\/\/(.+)$/i.exec(input);
|
|
51
|
+
if (!match) {
|
|
52
|
+
throw new Error(`Invalid address "${input}". Expected udp://<host>:<port> or tcp://<host>:<port>`);
|
|
53
|
+
}
|
|
54
|
+
const type = match[1].toLowerCase() === "tcp" ? "tcp" : "udp";
|
|
55
|
+
const rest = match[2];
|
|
56
|
+
let ip;
|
|
57
|
+
let portStr;
|
|
58
|
+
if (rest.startsWith("[")) {
|
|
59
|
+
const end = rest.indexOf("]");
|
|
60
|
+
if (end === -1 || rest[end + 1] !== ":") {
|
|
61
|
+
throw new Error(`Invalid IPv6 address "${input}". Expected ${type}://[<ipv6>]:<port>`);
|
|
62
|
+
}
|
|
63
|
+
ip = rest.slice(1, end);
|
|
64
|
+
portStr = rest.slice(end + 2);
|
|
65
|
+
} else {
|
|
66
|
+
const idx = rest.lastIndexOf(":");
|
|
67
|
+
if (idx === -1) {
|
|
68
|
+
throw new Error(`Missing port in "${input}". Expected ${type}://<host>:<port>`);
|
|
69
|
+
}
|
|
70
|
+
ip = rest.slice(0, idx);
|
|
71
|
+
portStr = rest.slice(idx + 1);
|
|
72
|
+
}
|
|
73
|
+
const port = Number(portStr);
|
|
74
|
+
if (!ip.length || !Number.isInteger(port) || port < 1 || port > 65535) {
|
|
75
|
+
throw new Error(`Invalid host/port in "${input}". Expected ${type}://<host>:<port> with port 1-65535`);
|
|
76
|
+
}
|
|
77
|
+
return { ip, port, type };
|
|
78
|
+
}
|
|
49
79
|
function commands(theNode) {
|
|
50
80
|
return {
|
|
51
81
|
command: ["nodes", "node"],
|
|
@@ -292,8 +322,8 @@ Peer Descriptor for node ${nodeIdStr}:`);
|
|
|
292
322
|
type: "string",
|
|
293
323
|
demandOption: true
|
|
294
324
|
}).positional("preference", {
|
|
295
|
-
describe: "tcp preference: on
|
|
296
|
-
choices: ["on", "off"],
|
|
325
|
+
describe: "tcp preference: on (prefer TCP) / off (prefer UDP) / clear (inherit controller default)",
|
|
326
|
+
choices: ["on", "off", "clear"],
|
|
297
327
|
demandOption: true,
|
|
298
328
|
type: "string"
|
|
299
329
|
});
|
|
@@ -306,16 +336,84 @@ Peer Descriptor for node ${nodeIdStr}:`);
|
|
|
306
336
|
}
|
|
307
337
|
const nodeId = NodeId(BigInt(nodeIdStr));
|
|
308
338
|
const node = await theNode.commissioningController.getNode(nodeId);
|
|
309
|
-
const pref = preference === "on" ? "tcp" : "udp";
|
|
339
|
+
const pref = preference === "on" ? "tcp" : preference === "off" ? "udp" : void 0;
|
|
310
340
|
await node.node.setStateOf(NetworkClient, { transportPreference: pref });
|
|
311
341
|
const peer = theNode.node.env.get(PeerSet).for(theNode.commissioningController.fabric.addressOf(nodeId));
|
|
312
342
|
if (peer) {
|
|
313
343
|
peer.transportPreference = pref === "tcp" ? ChannelType.TCP : void 0;
|
|
314
344
|
}
|
|
315
345
|
console.log(
|
|
316
|
-
`Transport preference for node ${nodeIdStr} set to ${pref
|
|
346
|
+
`Transport preference for node ${nodeIdStr} set to ${pref?.toUpperCase() ?? "CLEARED (inherit controller default)"}. Reconnect to the node to take effect.`
|
|
317
347
|
);
|
|
318
348
|
}
|
|
349
|
+
).command(
|
|
350
|
+
"fallback",
|
|
351
|
+
"Get or set the fallback (commissioning) addresses used to reach a node",
|
|
352
|
+
(yargs2) => yargs2.command(
|
|
353
|
+
"get <node-id>",
|
|
354
|
+
"Print the fallback addresses currently stored for a node",
|
|
355
|
+
(yargs3) => {
|
|
356
|
+
return yargs3.positional("node-id", {
|
|
357
|
+
describe: "node id",
|
|
358
|
+
type: "string",
|
|
359
|
+
demandOption: true
|
|
360
|
+
});
|
|
361
|
+
},
|
|
362
|
+
async (argv) => {
|
|
363
|
+
const { nodeId: nodeIdStr } = argv;
|
|
364
|
+
await theNode.start();
|
|
365
|
+
if (theNode.commissioningController === void 0) {
|
|
366
|
+
throw new Error("CommissioningController not initialized");
|
|
367
|
+
}
|
|
368
|
+
const nodeId = NodeId(BigInt(nodeIdStr));
|
|
369
|
+
const node = await theNode.commissioningController.getNode(nodeId);
|
|
370
|
+
const addresses = node.node.state.commissioning.addresses;
|
|
371
|
+
if (!addresses?.length) {
|
|
372
|
+
console.log(`Node ${nodeIdStr} has no fallback addresses stored`);
|
|
373
|
+
return;
|
|
374
|
+
}
|
|
375
|
+
console.log(`Fallback addresses for node ${nodeIdStr}:`);
|
|
376
|
+
for (const address of addresses) {
|
|
377
|
+
console.log(` ${ServerAddress.urlFor(address)}`);
|
|
378
|
+
}
|
|
379
|
+
}
|
|
380
|
+
).command(
|
|
381
|
+
"set <node-id> <address>",
|
|
382
|
+
"Set or drop the fallback address for a node (udp://host:port, tcp://host:port, or 'drop')",
|
|
383
|
+
(yargs3) => {
|
|
384
|
+
return yargs3.positional("node-id", {
|
|
385
|
+
describe: "node id",
|
|
386
|
+
type: "string",
|
|
387
|
+
demandOption: true
|
|
388
|
+
}).positional("address", {
|
|
389
|
+
describe: "udp://<host>:<port>, tcp://<host>:<port>, or 'drop' to remove",
|
|
390
|
+
type: "string",
|
|
391
|
+
demandOption: true
|
|
392
|
+
});
|
|
393
|
+
},
|
|
394
|
+
async (argv) => {
|
|
395
|
+
const { nodeId: nodeIdStr, address: addressStr } = argv;
|
|
396
|
+
await theNode.start();
|
|
397
|
+
if (theNode.commissioningController === void 0) {
|
|
398
|
+
throw new Error("CommissioningController not initialized");
|
|
399
|
+
}
|
|
400
|
+
const nodeId = NodeId(BigInt(nodeIdStr));
|
|
401
|
+
const node = await theNode.commissioningController.getNode(nodeId);
|
|
402
|
+
if (addressStr === "drop") {
|
|
403
|
+
await node.node.setStateOf(CommissioningClient, { addresses: void 0 });
|
|
404
|
+
console.log(`Fallback address for node ${nodeIdStr} dropped`);
|
|
405
|
+
return;
|
|
406
|
+
}
|
|
407
|
+
const address = parseFallbackAddress(addressStr);
|
|
408
|
+
await node.node.setStateOf(CommissioningClient, { addresses: [address] });
|
|
409
|
+
console.log(
|
|
410
|
+
`Fallback address for node ${nodeIdStr} set to ${ServerAddress.urlFor(address)}`
|
|
411
|
+
);
|
|
412
|
+
}
|
|
413
|
+
).demandCommand(1, "Please specify 'get' or 'set'"),
|
|
414
|
+
async (argv) => {
|
|
415
|
+
argv.unhandled = true;
|
|
416
|
+
}
|
|
319
417
|
).command(
|
|
320
418
|
"add [node-id]",
|
|
321
419
|
"Adds a node without commissioning and connects to it (means need to exist in the fabric and commissioned otherwise)",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/shell/cmd_nodes.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,YAAY,aAAa,YAAY,YAAY,qBAAqB;AAC/E,SAAqB,eAAe,6BAA6B;AACjE,SAAS,aAAa,eAAe;AACrC,SAAS,aAAa,cAAwB;AAC9C,SAA6C,4BAA4B;AAIlE,SAAS,4BAAyE;AACrF,SAAO;AAAA,IACH,0BAA0B,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,WAAW,YAAY,cAAc,GAAG,MAAM,MACnG,QAAQ;AAAA,MACJ,4BAA4B,UAAU,eAAe,MAAM,IAAI,UAAU,IAAI,SAAS,IAAI,aAAa,eAAe,WAAW;AAAA,QAC7H;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,IACJ,wBAAwB,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,WAAW,YAAY,UAAU,GAAG,OAAO,MAC9F,QAAQ;AAAA,MACJ,0BAA0B,UAAU,WAAW,MAAM,IAAI,UAAU,IAAI,SAAS,IAAI,SAAS,mBAAmB,WAAW;AAAA,QACvH;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,IACJ,0BAA0B,CAAC,YAAY,SAAS;AAC5C,cAAQ,MAAM;AAAA,QACV,KAAK,qBAAqB;AACtB,kBAAQ,IAAI,iCAAiC,UAAU,YAAY;AACnE;AAAA,QACJ,KAAK,qBAAqB;AACtB,kBAAQ,IAAI,iCAAiC,UAAU,eAAe;AACtE;AAAA,QACJ,KAAK,qBAAqB;AACtB,kBAAQ,IAAI,iCAAiC,UAAU,eAAe;AACtE;AAAA,QACJ,KAAK,qBAAqB;AACtB,kBAAQ;AAAA,YACJ,iCAAiC,UAAU;AAAA,UAC/C;AACA;AAAA,QACJ,KAAK,qBAAqB;AACtB,kBAAQ,IAAI,iCAAiC,UAAU,oBAAoB;AAC3E;AAAA,QACJ,KAAK,qBAAqB;AACtB,kBAAQ,IAAI,iCAAiC,UAAU,iBAAiB;AACxE;AAAA,MACR;AAAA,IACJ;AAAA,EACJ;AACJ;AAEe,SAAR,SAA0B,SAAqB;AAClD,SAAO;AAAA,IACH,SAAS,CAAC,SAAS,MAAM;AAAA,IACzB,UAAU;AAAA,IACV,SAAS,CAAC,UACN,MAEK;AAAA,MACG,CAAC,KAAK,eAAe;AAAA,MACrB;AAAA,MACA,CAAAA,WAAS;AACL,eAAOA,OAAM,WAAW,UAAU;AAAA,UAC9B,UAAU;AAAA,UACV,SAAS,CAAC,gBAAgB,WAAW;AAAA,UACrC,SAAS;AAAA,UACT,MAAM;AAAA,QACV,CAAC;AAAA,MACL;AAAA,MACA,OAAM,SAAQ;AACV,cAAM,EAAE,OAAO,IAAI;AACnB,cAAM,QAAQ,MAAM;AACpB,YAAI,QAAQ,4BAA4B,QAAW;AAC/C,gBAAM,IAAI,MAAM,yCAAyC;AAAA,QAC7D;AACA,gBAAQ,QAAQ;AAAA,UACZ,KAAK,gBAAgB;AACjB,kBAAM,UAAU,QAAQ,wBAAwB,4BAA4B;AAC5E,oBACK,IAAI,aAAW;AAAA,cACZ,GAAG;AAAA,cACH,QAAQ,OAAO,OAAO,SAAS;AAAA,YACnC,EAAE,EACD,QAAQ,YAAU;AACf,sBAAQ,IAAI,MAAM;AAAA,YACtB,CAAC;AACL;AAAA,UACJ;AAAA,UACA,KAAK,aAAa;AACd,kBAAM,UAAU,QAAQ,wBACnB,qBAAqB,EACrB,OAAO,YAAU,CAAC,CAAC,QAAQ,yBAAyB,cAAc,MAAM,CAAC;AAC9E,oBAAQ,IAAI,QAAQ,IAAI,YAAU,OAAO,SAAS,CAAC,CAAC;AACpD;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,EACC;AAAA,MACG;AAAA,MACA;AAAA,MACA,CAAAA,WAAS;AACL,eAAOA,OAAM,WAAW,WAAW;AAAA,UAC/B,UAAU;AAAA,UACV,SAAS;AAAA,UACT,MAAM;AAAA,QACV,CAAC;AAAA,MACL;AAAA,MACA,OAAM,SAAQ;AACV,cAAM,EAAE,OAAO,IAAI;AACnB,cAAM,QAAQ,MAAM,QAAQ,mBAAmB,MAAM,GAAG,CAAC;AAEzD,gBAAQ,IAAI,8BAA8B,KAAK,OAAO,SAAS,CAAC;AAChE,aAAK,aAAa;AAAA,MACtB;AAAA,IACJ,EACC;AAAA,MACG;AAAA,MACA;AAAA,MACA,CAAAA,WAAS;AACL,eAAOA,OAAM,WAAW,WAAW;AAAA,UAC/B,UAAU;AAAA,UACV,MAAM;AAAA,UACN,cAAc;AAAA,QAClB,CAAC;AAAA,MACL;AAAA,MACA,OAAM,SAAQ;AACV,cAAM,EAAE,QAAQ,UAAU,IAAI;AAC9B,cAAM,QAAQ,MAAM;AACpB,YAAI,QAAQ,4BAA4B,QAAW;AAC/C,gBAAM,IAAI,MAAM,yCAAyC;AAAA,QAC7D;AAEA,cAAM,SAAS,OAAO,OAAO,SAAS,CAAC;AACvC,cAAM,cAAc,QAAQ,wBAAwB,OAAO,UAAU,MAAM;AAC3E,cAAM,UAAU,QAAQ,KAAK,IAAI,IAAI,OAAO;AAC5C,cAAM,OAAO,QAAQ,IAAI,WAAW;AAEpC,YAAI,CAAC,MAAM;AACP,kBAAQ,IAAI,QAAQ,SAAS,YAAY;AACzC;AAAA,QACJ;AAEA,cAAM,OAAO,KAAK;AAClB,gBAAQ,IAAI;AAAA,2BAA8B,SAAS,GAAG;AACtD,gBAAQ,IAAI,2BAA2B,KAAK,OAAO,EAAE;AACrD,gBAAQ;AAAA,UACJ,2BAA2B,KAAK,qBAAqB,cAAc,OAAO,KAAK,kBAAkB,IAAI,WAAW;AAAA,QACpH;AACA,gBAAQ;AAAA,UACJ,2BAA2B,KAAK,wBAAwB,YAAY,MAAM,QAAQ,eAAe;AAAA,QACrG;AAEA,YAAI,KAAK,eAAe;AACpB,gBAAM,KAAK,KAAK;AAChB,kBAAQ,IAAI,mBAAmB;AAC/B,cAAI,GAAG,GAAI,SAAQ,IAAI,qBAAqB,GAAG,EAAE,EAAE;AACnD,cAAI,GAAG,GAAI,SAAQ,IAAI,qBAAqB,GAAG,EAAE,EAAE;AACnD,cAAI,GAAG,OAAO,OAAW,SAAQ,IAAI,qBAAqB,GAAG,EAAE,EAAE;AACjE,cAAI,GAAG,MAAM,QAAW;AACpB,oBAAQ,IAAI,4BAA4B,GAAG,EAAE,SAAS,YAAY,GAAG,EAAE,SAAS,EAAE;AAAA,UACtF,OAAO;AACH,oBAAQ,IAAI,kCAAkC;AAAA,UAClD;AACA,cAAI,GAAG,IAAK,SAAQ,IAAI,wBAAwB,GAAG,GAAG,IAAI;AAC1D,cAAI,GAAG,IAAK,SAAQ,IAAI,wBAAwB,GAAG,GAAG,IAAI;AAAA,QAC9D;AAEA,YAAI,KAAK,mBAAmB;AACxB,gBAAM,KAAK,KAAK;AAChB,kBAAQ,IAAI,uBAAuB;AACnC,kBAAQ,IAAI,6BAA6B,WAAW,KAAK,GAAG,mBAAmB,CAAC,EAAE;AAClF,cAAI,GAAG,sBAAsB,QAAW;AACpC,oBAAQ,IAAI,6BAA6B,GAAG,iBAAiB,EAAE;AAAA,UACnE;AAAA,QACJ;AAEA,cAAM,WAAW,CAAC,GAAG,KAAK,QAAQ;AAClC,YAAI,SAAS,QAAQ;AACjB,kBAAQ,IAAI,sBAAsB,SAAS,MAAM,EAAE;AACnD,qBAAW,WAAW,UAAU;AAC5B,oBAAQ,IAAI,OAAO,QAAQ,GAAG,KAAK,QAAQ,QAAQ,iBAAiB,IAAI,GAAG;AAAA,UAC/E;AAAA,QACJ,OAAO;AACH,kBAAQ,IAAI,yBAAyB;AAAA,QACzC;AACA,gBAAQ,IAAI;AAAA,MAChB;AAAA,IACJ,EACC;AAAA,MACG;AAAA,MACA;AAAA,MACA,CAAAA,WAAS;AACL,eAAOA,OACF,WAAW,WAAW;AAAA,UACnB,UAAU;AAAA,UACV,SAAS;AAAA,UACT,MAAM;AAAA,UACN,cAAc;AAAA,QAClB,CAAC,EACA,WAAW,6BAA6B;AAAA,UACrC,UACI;AAAA,UACJ,MAAM;AAAA,QACV,CAAC,EACA,WAAW,6BAA6B;AAAA,UACrC,UACI;AAAA,UACJ,MAAM;AAAA,QACV,CAAC;AAAA,MACT;AAAA,MACA,OAAM,SAAQ;AACV,cAAM,EAAE,QAAQ,WAAW,yBAAyB,wBAAwB,IAAI;AAChF,cAAM,QAAQ,MAAM;AACpB,YAAI,QAAQ,4BAA4B,QAAW;AAC/C,gBAAM,IAAI,MAAM,yCAAyC;AAAA,QAC7D;AACA,YAAI,UAAU,QAAQ,wBAAwB,qBAAqB;AACnE,YAAI,cAAc,OAAO;AACrB,gBAAM,YAAY,OAAO,OAAO,SAAS,CAAC;AAC1C,oBAAU,QAAQ,OAAO,YAAU,WAAW,SAAS;AACvD,cAAI,CAAC,QAAQ,QAAQ;AACjB,kBAAM,IAAI,MAAM,QAAQ,SAAS,mBAAmB;AAAA,UACxD;AAAA,QACJ;AAEA,cAAM,gBAAgB,4BAA4B;AAElD,mBAAW,mBAAmB,SAAS;AACnC,gBAAM,OAAO,MAAM,QAAQ,wBAAwB,QAAQ,eAAe;AAC1E,eAAK,QAAQ;AAAA,YACT;AAAA,YACA,kCAAkC,gBAAgB,0BAA0B;AAAA,YAC5E,oCAAoC,gBAAgB,0BAA0B;AAAA,YAC9E,GAAG,0BAA0B;AAAA,UACjC,CAAC;AAAA,QACL;AAAA,MACJ;AAAA,IACJ,EACC;AAAA,MACG;AAAA,MACA;AAAA,MACA,CAAAA,WAAS;AACL,eAAOA,OAAM,WAAW,WAAW;AAAA,UAC/B,UAAU;AAAA,UACV,SAAS;AAAA,UACT,MAAM;AAAA,QACV,CAAC;AAAA,MACL;AAAA,MACA,OAAM,SAAQ;AACV,cAAM,EAAE,QAAQ,UAAU,IAAI;AAC9B,YAAI,QAAQ,4BAA4B,QAAW;AAC/C,kBAAQ,IAAI,oDAAoD;AAChE;AAAA,QACJ;AAEA,YAAI,UAAU,QAAQ,wBAAwB,qBAAqB;AACnE,YAAI,cAAc,OAAO;AACrB,gBAAM,YAAY,OAAO,OAAO,SAAS,CAAC;AAC1C,oBAAU,QAAQ,OAAO,YAAU,WAAW,SAAS;AACvD,cAAI,CAAC,QAAQ,QAAQ;AACjB,kBAAM,IAAI,MAAM,QAAQ,SAAS,mBAAmB;AAAA,UACxD;AAAA,QACJ;AAEA,mBAAW,mBAAmB,SAAS;AACnC,gBAAM,OAAO,QAAQ,wBAAwB,cAAc,eAAe;AAC1E,cAAI,SAAS,QAAW;AACpB,oBAAQ,IAAI,QAAQ,eAAe,gBAAgB;AACnD;AAAA,UACJ;AACA,gBAAM,KAAK,WAAW;AAAA,QAC1B;AAAA,MACJ;AAAA,IACJ,EACC;AAAA,MACG;AAAA,MACA;AAAA,MACA,CAAAA,WAAS;AACL,eAAOA,OAAM,WAAW,YAAY;AAAA,UAChC,UACI;AAAA,UACJ,SAAS;AAAA,UACT,MAAM;AAAA,QACV,CAAC;AAAA,MACL;AAAA,MACA,OAAM,SAAQ;AACV,cAAM,EAAE,SAAS,UAAU,IAAI;AAC/B,cAAM,QAAQ,MAAM;AACpB,YAAI,QAAQ,4BAA4B,QAAW;AAC/C,gBAAM,IAAI,MAAM,yCAAyC;AAAA,QAC7D;AACA,YAAI,UAAU,QAAQ,wBAAwB,qBAAqB;AACnE,YAAI,cAAc,OAAO;AACrB,gBAAM,aAAa,UAAU,MAAM,GAAG,EAAE,IAAI,YAAU,OAAO,OAAO,MAAM,CAAC,CAAC;AAC5E,oBAAU,QAAQ,OAAO,YAAU,WAAW,SAAS,MAAM,CAAC;AAC9D,cAAI,CAAC,QAAQ,QAAQ;AACjB,kBAAM,IAAI,MAAM,QAAQ,SAAS,mBAAmB;AAAA,UACxD;AAAA,QACJ;AAEA,cAAM,cAAc,QAAQ,wBAAwB,4BAA4B;AAEhF,mBAAW,mBAAmB,SAAS;AACnC,gBAAM,OAAO,QAAQ,wBAAwB,cAAc,eAAe;AAC1E,cAAI,SAAS,QAAW;AACpB,kBAAM,UAAU,YAAY,KAAK,QAAM,GAAG,WAAW,eAAe;AACpE,oBAAQ;AAAA,cACJ,QAAQ,eAAe,oBAAoB,SAAS,YAAY,qBAAqB,SAAY,KAAK,QAAQ,WAAW,iBAAiB,UAAU,IAAI,QAAQ,WAAW,iBAAiB,WAAW,MAAM,EAAE;AAAA,YACnN;AAAA,UACJ,OAAO;AACH,kBAAM,YAAY,KAAK;AACvB,oBAAQ;AAAA,cACJ,QAAQ,eAAe,kBAAkB,WAAW,WAAW,qBAAqB,KAAK,eAAe,GAAG,GAAG,CAAC,CAAC,GAAG,cAAc,SAAY,KAAK,UAAU,UAAU,IAAI,UAAU,WAAW,MAAM,EAAE;AAAA,YAC3M;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ,EACC;AAAA,MACG;AAAA,MACA;AAAA,MACA,CAAAA,WAAS;AACL,eAAOA,OACF,WAAW,WAAW;AAAA,UACnB,UAAU;AAAA,UACV,MAAM;AAAA,UACN,cAAc;AAAA,QAClB,CAAC,EACA,WAAW,cAAc;AAAA,UACtB,UAAU;AAAA,UACV,SAAS,CAAC,MAAM,KAAK;AAAA,UACrB,cAAc;AAAA,UACd,MAAM;AAAA,QACV,CAAC;AAAA,MACT;AAAA,MACA,OAAM,SAAQ;AACV,cAAM,EAAE,QAAQ,WAAW,WAAW,IAAI;AAC1C,cAAM,QAAQ,MAAM;AACpB,YAAI,QAAQ,4BAA4B,QAAW;AAC/C,gBAAM,IAAI,MAAM,yCAAyC;AAAA,QAC7D;AAEA,cAAM,SAAS,OAAO,OAAO,SAAS,CAAC;AACvC,cAAM,OAAO,MAAM,QAAQ,wBAAwB,QAAQ,MAAM;AAEjE,cAAM,OAAO,eAAe,OAAO,QAAQ;AAC3C,cAAM,KAAK,KAAK,WAAW,eAAe,EAAE,qBAAqB,KAAK,CAAC;AAGvE,cAAM,OAAO,QAAQ,KAAK,IACrB,IAAI,OAAO,EACX,IAAI,QAAQ,wBAAwB,OAAO,UAAU,MAAM,CAAC;AACjE,YAAI,MAAM;AACN,eAAK,sBAAsB,SAAS,QAAQ,YAAY,MAAM;AAAA,QAClE;AAEA,gBAAQ;AAAA,UACJ,iCAAiC,SAAS,WAAW,KAAK,YAAY,CAAC;AAAA,QAC3E;AAAA,MACJ;AAAA,IACJ,EACC;AAAA,MACG;AAAA,MACA;AAAA,MACA,CAAAA,WAAS;AACL,eAAOA,OACF,WAAW,WAAW;AAAA,UACnB,UAAU;AAAA,UACV,SAAS;AAAA,UACT,MAAM;AAAA,UACN,cAAc;AAAA,QAClB,CAAC,EACA,WAAW,6BAA6B;AAAA,UACrC,UACI;AAAA,UACJ,MAAM;AAAA,QACV,CAAC,EACA,WAAW,6BAA6B;AAAA,UACrC,UACI;AAAA,UACJ,MAAM;AAAA,QACV,CAAC;AAAA,MACT;AAAA,MACA,OAAM,SAAQ;AACV,cAAM,EAAE,QAAQ,WAAW,yBAAyB,wBAAwB,IAAI;AAChF,cAAM,QAAQ,MAAM;AACpB,YAAI,QAAQ,4BAA4B,QAAW;AAC/C,gBAAM,IAAI,MAAM,yCAAyC;AAAA,QAC7D;AACA,YAAI,UAAU,QAAQ,wBAAwB,qBAAqB;AAEnE,cAAM,YAAY,OAAO,OAAO,SAAS,CAAC;AAC1C,kBAAU,QAAQ,OAAO,YAAU,WAAW,SAAS;AACvD,YAAI,QAAQ,QAAQ;AAChB,gBAAM,IAAI,MAAM,QAAQ,SAAS,gBAAgB;AAAA,QACrD;AAEA,cAAM,QAAQ,wBAAwB,KAAK,MAAM;AAAA,UAC7C,QAAQ,wBAAwB,OAAO,UAAU,SAAS;AAAA,QAC9D;AAEA,cAAM,gBAAgB,4BAA4B;AAElD,cAAM,OAAO,MAAM,QAAQ,wBAAwB,QAAQ,SAAS;AACpE,aAAK,QAAQ;AAAA,UACT;AAAA,UACA,kCAAkC,gBAAgB,0BAA0B;AAAA,UAC5E,oCAAoC,gBAAgB,0BAA0B;AAAA,UAC9E,GAAG,0BAA0B;AAAA,QACjC,CAAC;AAAA,MACL;AAAA,IACJ,EACC;AAAA,MACG;AAAA,MACA;AAAA,MACA,CAAAA,WACIA,OACK;AAAA,QACG;AAAA,QACA;AAAA,QACA,CAAAA,WAAS;AACL,iBAAOA,OACF,WAAW,WAAW;AAAA,YACnB,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS;AAAA,UACb,CAAC,EACA,OAAO,SAAS;AAAA,YACb,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS;AAAA,UACb,CAAC;AAAA,QACT;AAAA,QACA,OAAM,SAAQ;AACV,gBAAM,EAAE,QAAQ,WAAW,MAAM,IAAI;AAErC,gBAAM,QAAQ,MAAM;AACpB,cAAI,QAAQ,4BAA4B,QAAW;AAC/C,kBAAM,IAAI,MAAM,yCAAyC;AAAA,UAC7D;AAEA,cAAI,cAAsC;AAC1C,cAAI,cAAc,QAAW;AACzB,kBAAM,SAAS,OAAO,OAAO,SAAS,CAAC;AACvC,2BAAe,MAAM,QAAQ,wBAAwB,QAAQ,MAAM,IAAI;AAAA,UAC3E;AAEA,gBAAM,mBAAmB,MAAM,QAAQ,wBAAwB,YAAY;AAAA,YACvE,WACI,MACK,IAAI,qBAAqB,EACzB,aAAa,EAAE,aAAa,sBAAsB,MAAM,CAAC;AAAA,UACtE;AAEA,cAAI,iBAAiB,QAAQ;AACzB,oBAAQ,IAAI,6BAA6B,iBAAiB,MAAM,SAAS;AACzE,uBAAW,EAAE,aAAa,KAAK,KAAK,kBAAkB;AAClD,sBAAQ;AAAA,gBACJ,YAAY,SAAS;AAAA,gBACrB,kBAAkB,KAAK,eAAe,KAAK,KAAK,qBAAqB;AAAA,cACzE;AAAA,YACJ;AAAA,UACJ,OAAO;AACH,oBAAQ,IAAI,2BAA2B;AAAA,UAC3C;AAAA,QACJ;AAAA,MACJ,EACC;AAAA,QACG;AAAA,QACA;AAAA,QACA,CAAAA,WAAS;AACL,iBAAOA,OACF,WAAW,WAAW;AAAA,YACnB,UAAU;AAAA,YACV,MAAM;AAAA,YACN,cAAc;AAAA,UAClB,CAAC,EACA,OAAO,QAAQ;AAAA,YACZ,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS,CAAC,QAAQ,QAAQ,MAAM;AAAA,YAChC,SAAS;AAAA,UACb,CAAC,EACA,OAAO,SAAS;AAAA,YACb,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS;AAAA,UACb,CAAC;AAAA,QACT;AAAA,QACA,OAAM,SAAQ;AACV,gBAAM,EAAE,QAAQ,WAAW,MAAM,MAAM,IAAI;AAC3C,gBAAM,eAAe,SAAS,SAAS,OAAO,SAAS,SAAS,QAAQ;AAExE,gBAAM,QAAQ,MAAM;AACpB,cAAI,QAAQ,4BAA4B,QAAW;AAC/C,kBAAM,IAAI,MAAM,yCAAyC;AAAA,UAC7D;AAEA,gBAAM,SAAS,OAAO,OAAO,SAAS,CAAC;AACvC,gBAAM,cAAc,QAAQ,wBACvB,4BAA4B,EAC5B,KAAK,QAAM,GAAG,WAAW,MAAM;AACpC,gBAAM,YAAY,aAAa,YAAY;AAC3C,cAAI,CAAC,WAAW;AACZ,kBAAM,IAAI,MAAM,QAAQ,SAAS,qCAAqC;AAAA,UAC1E;AACA,cACI,UAAU,aAAa,UACvB,UAAU,cAAc,UACxB,UAAU,oBAAoB,QAChC;AACE,kBAAM,IAAI;AAAA,cACN,QAAQ,SAAS;AAAA,YACrB;AAAA,UACJ;AAEA,kBAAQ,IAAI,qCAAqC,SAAS,KAAK;AAC/D,kBAAQ;AAAA,YACJ,gBAAgB,WAAW,IAAI,UAAU,UAAsB,CAAC,EAAE,YAAY,CAAC;AAAA,UACnF;AACA,kBAAQ;AAAA,YACJ,iBAAiB,WAAW,IAAI,UAAU,WAAqB,CAAC,EAAE,YAAY,CAAC;AAAA,UACnF;AACA,kBAAQ;AAAA,YACJ,+BAA+B,UAAU,eAAe,KAAK,UAAU,qBAAqB;AAAA,UAChG;AACA,kBAAQ,IAAI,eAAe,IAAI;AAAA,CAAI;AAEnC,gBAAM,aAAa,OACf,MAAM,QAAQ,WAAW,GAC3B,eAAe;AAAA,YACb,UAAU,UAAU;AAAA,YACpB,WAAW,UAAU;AAAA,YACrB,wBAAwB,UAAU;AAAA,YAClC,sBAAsB;AAAA,YACtB;AAAA,UACJ,CAAC;AAED,cAAI,YAAY;AACZ,oBAAQ,IAAI,0BAAqB;AACjC,oBAAQ;AAAA,cACJ,kBAAkB,WAAW,eAAe,KAAK,WAAW,qBAAqB;AAAA,YACrF;AACA,oBAAQ,IAAI,cAAc,WAAW,MAAM,EAAE;AAC7C,gBAAI,WAAW,aAAa;AACxB,oBAAM,SAAS,OAAO,WAAW,WAAW,IAAI;AAChD,sBAAQ,IAAI,gBAAgB,OAAO,QAAQ,CAAC,CAAC,KAAK;AAAA,YACtD;AACA,gBAAI,WAAW,iBAAiB;AAC5B,sBAAQ,IAAI,oBAAoB,WAAW,eAAe,EAAE;AAAA,YAChE;AACA,oBAAQ;AAAA,cACJ;AAAA,0BAA6B,SAAS,GAAG,SAAS,SAAS,iBAAiB,EAAE;AAAA,YAClF;AAAA,UACJ,OAAO;AACH,oBAAQ,IAAI,oDAA+C;AAAA,UAC/D;AAAA,QACJ;AAAA,MACJ,EACC;AAAA,QACG;AAAA,QACA;AAAA,QACA,CAAAA,WAAS;AACL,iBAAOA,OACF,WAAW,WAAW;AAAA,YACnB,UAAU;AAAA,YACV,MAAM;AAAA,YACN,cAAc;AAAA,UAClB,CAAC,EACA,OAAO,QAAQ;AAAA,YACZ,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS,CAAC,QAAQ,QAAQ,MAAM;AAAA,YAChC,SAAS;AAAA,UACb,CAAC,EACA,OAAO,SAAS;AAAA,YACb,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS;AAAA,UACb,CAAC,EACA,OAAO,SAAS;AAAA,YACb,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS;AAAA,UACb,CAAC;AAAA,QACT;AAAA,QACA,OAAM,SAAQ;AACV,gBAAM,EAAE,QAAQ,WAAW,MAAM,OAAO,MAAM,IAAI;AAClD,gBAAM,eAAe,SAAS,SAAS,OAAO,SAAS,SAAS,QAAQ;AACxE,gBAAM,gBAAgB,UAAU;AAEhC,gBAAM,QAAQ,MAAM;AACpB,cAAI,QAAQ,4BAA4B,QAAW;AAC/C,kBAAM,IAAI,MAAM,yCAAyC;AAAA,UAC7D;AAEA,gBAAM,SAAS,OAAO,OAAO,SAAS,CAAC;AACvC,gBAAM,cAAc,QAAQ,wBACvB,4BAA4B,EAC5B,KAAK,QAAM,GAAG,WAAW,MAAM;AACpC,gBAAM,YAAY,aAAa,YAAY;AAC3C,cAAI,CAAC,WAAW;AACZ,kBAAM,IAAI,MAAM,QAAQ,SAAS,qCAAqC;AAAA,UAC1E;AACA,cACI,UAAU,aAAa,UACvB,UAAU,cAAc,UACxB,UAAU,oBAAoB,QAChC;AACE,kBAAM,IAAI;AAAA,cACN,QAAQ,SAAS;AAAA,YACrB;AAAA,UACJ;AAEA,kBAAQ,IAAI,qCAAqC,SAAS,KAAK;AAC/D,kBAAQ;AAAA,YACJ,gBAAgB,WAAW,IAAI,UAAU,UAAsB,CAAC,EAAE,YAAY,CAAC;AAAA,UACnF;AACA,kBAAQ;AAAA,YACJ,iBAAiB,WAAW,IAAI,UAAU,WAAqB,CAAC,EAAE,YAAY,CAAC;AAAA,UACnF;AACA,kBAAQ;AAAA,YACJ,+BAA+B,UAAU,eAAe,KAAK,UAAU,qBAAqB;AAAA,UAChG;AACA,kBAAQ,IAAI,eAAe,IAAI;AAAA,CAAI;AAEnC,gBAAM,aAAa,OACf,MAAM,QAAQ,WAAW,GAC3B,eAAe;AAAA,YACb,UAAU,UAAU;AAAA,YACpB,WAAW,UAAU;AAAA,YACrB,wBAAwB,UAAU;AAAA,YAClC,sBAAsB;AAAA,YACtB;AAAA,UACJ,CAAC;AAED,cAAI,CAAC,YAAY;AACb,oBAAQ,IAAI,6CAA6C;AACzD;AAAA,UACJ;AAEA,kBAAQ,IAAI,eAAe;AAC3B,kBAAQ;AAAA,YACJ,kBAAkB,WAAW,eAAe,KAAK,WAAW,qBAAqB;AAAA,UACrF;AACA,kBAAQ,IAAI,cAAc,WAAW,MAAM,EAAE;AAC7C,kBAAQ,IAAI,aAAa,WAAW,MAAM,EAAE;AAC5C,cAAI,WAAW,aAAa;AACxB,kBAAM,SAAS,OAAO,WAAW,WAAW,IAAI;AAChD,oBAAQ,IAAI,gBAAgB,OAAO,QAAQ,CAAC,CAAC,KAAK;AAAA,UACtD;AAEA,kBAAQ,IAAI,yBAAyB;AACrC,gBAAM,KAAK,OACP,MAAM,QAAQ,WAAW,GAC3B,eAAe,YAAY,aAAa;AAE1C,kBAAQ,IAAI,qDAAgD,GAAG,IAAI,EAAE;AACrE,kBAAQ;AAAA,YACJ;AAAA;AAAA,UACJ;AAAA,QACJ;AAAA,MACJ,EACC;AAAA,QACG;AAAA,QACA;AAAA,QACA,CAAAA,WAAS;AACL,iBAAOA,OACF,WAAW,WAAW;AAAA,YACnB,UAAU;AAAA,YACV,MAAM;AAAA,YACN,cAAc;AAAA,UAClB,CAAC,EACA,OAAO,QAAQ;AAAA,YACZ,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS,CAAC,QAAQ,QAAQ,MAAM;AAAA,YAChC,SAAS;AAAA,UACb,CAAC,EACA,OAAO,SAAS;AAAA,YACb,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS;AAAA,UACb,CAAC,EACA,OAAO,SAAS;AAAA,YACb,UAAU;AAAA,YACV,MAAM;AAAA,YACN,SAAS;AAAA,UACb,CAAC;AAAA,QACT;AAAA,QACA,OAAM,SAAQ;AACV,gBAAM,EAAE,QAAQ,WAAW,MAAM,OAAO,MAAM,IAAI;AAClD,gBAAM,eAAe,SAAS,SAAS,OAAO,SAAS,SAAS,QAAQ;AACxE,gBAAM,gBAAgB,UAAU;AAEhC,gBAAM,QAAQ,MAAM;AAEpB,cAAI,QAAQ,4BAA4B,QAAW;AAC/C,kBAAM,IAAI,MAAM,yCAAyC;AAAA,UAC7D;AAEA,gBAAM,SAAS,OAAO,OAAO,SAAS,CAAC;AACvC,gBAAM,cAAc,QAAQ,wBACvB,4BAA4B,EAC5B,KAAK,QAAM,GAAG,WAAW,MAAM;AACpC,gBAAM,YAAY,aAAa,YAAY;AAC3C,cAAI,CAAC,WAAW;AACZ,kBAAM,IAAI,MAAM,QAAQ,SAAS,qCAAqC;AAAA,UAC1E;AACA,cACI,UAAU,aAAa,UACvB,UAAU,cAAc,UACxB,UAAU,oBAAoB,QAChC;AACE,kBAAM,IAAI;AAAA,cACN,QAAQ,SAAS;AAAA,YACrB;AAAA,UACJ;AAEA,kBAAQ,IAAI,qCAAqC,SAAS,KAAK;AAC/D,kBAAQ;AAAA,YACJ,gBAAgB,WAAW,IAAI,UAAU,UAAsB,CAAC,EAAE,YAAY,CAAC;AAAA,UACnF;AACA,kBAAQ;AAAA,YACJ,iBAAiB,WAAW,IAAI,UAAU,WAAqB,CAAC,EAAE,YAAY,CAAC;AAAA,UACnF;AACA,kBAAQ;AAAA,YACJ,+BAA+B,UAAU,eAAe,KAAK,UAAU,qBAAqB;AAAA,UAChG;AACA,kBAAQ,IAAI,eAAe,IAAI;AAAA,CAAI;AAEnC,gBAAM,eAAe,OACjB,MAAM,QAAQ,WAAW,GAC3B,KAAK;AAAA,YACH,UAAU,UAAU;AAAA,YACpB,WAAW,UAAU;AAAA,YACrB,gBAAgB,UAAU;AAAA,UAC9B,CAAC;AAED,cAAI,SAAS,CAAC,aAAa,QAAQ;AAC/B,oBAAQ,IAAI,mDAAmD;AAC/D;AAAA,UACJ;AAEA,gBAAM,aAAa,OACf,MAAM,QAAQ,WAAW,GAC3B,eAAe;AAAA,YACb,UAAU,UAAU;AAAA,YACpB,WAAW,UAAU;AAAA,YACrB,wBAAwB,UAAU;AAAA,YAClC,sBAAsB;AAAA,YACtB;AAAA,UACJ,CAAC;AAED,cAAI;AACJ,cAAI,CAAC,cAAc,CAAC,OAAO;AACvB,oBAAQ,IAAI,oDAAoD;AAChE;AAAA,UACJ,WAAW,YAAY;AACnB,oBAAQ,IAAI,eAAe;AAC3B,oBAAQ;AAAA,cACJ,kBAAkB,WAAW,eAAe,KAAK,WAAW,qBAAqB;AAAA,YACrF;AACA,oBAAQ,IAAI,cAAc,WAAW,MAAM,EAAE;AAC7C,gBAAI,WAAW,aAAa;AACxB,oBAAM,SAAS,OAAO,WAAW,WAAW,IAAI;AAChD,sBAAQ,IAAI,gBAAgB,OAAO,QAAQ,CAAC,CAAC,KAAK;AAAA,YACtD;AAEA,oBAAQ,IAAI,yBAAyB;AACrC,kBAAM,KAAK,OACP,MAAM,QAAQ,WAAW,GAC3B,eAAe,YAAY,aAAa;AAE1C,4BAAgB,WAAW;AAE3B,oBAAQ;AAAA,cACJ,4BAAuB,aAAa,KAAK,WAAW,qBAAqB,yCAAyC,GAAG,IAAI;AAAA,YAC7H;AAAA,UACJ,OAAO;AACH,4BAAgB,aAAa,CAAC,EAAE;AAChC,oBAAQ;AAAA,cACJ,qBAAqB,aAAa,KAAK,aAAa,CAAC,EAAE,qBAAqB,6BAA6B,aAAa,CAAC,EAAE,QAAQ;AAAA,YACrI;AAAA,UACJ;AAEA,gBAAM,OAAO,QAAQ,wBAAwB,cAAc,MAAM;AACjE,cAAI,SAAS,QAAW;AACpB,kBAAM,IAAI,MAAM,QAAQ,SAAS,gBAAgB;AAAA,UACrD;AAEA,gBAAM,QAAQ,wBAAwB,YAAY,IAAI,WAAS;AAC3D,mBAAO,MACF,IAAI,qBAAqB,EACzB;AAAA,cACG,YAAY,EAAE,QAAQ,aAAa,YAAY,CAAC,EAAE,CAAC;AAAA,cACnD,UAAU;AAAA,cACV,UAAU;AAAA,cACV;AAAA,YACJ;AAAA,UACR,CAAC;AAAA,QACL;AAAA,MACJ,EACC,cAAc,GAAG,kCAAkC;AAAA,MAC5D,OAAO,SAAc;AACjB,aAAK,YAAY;AAAA,MACrB;AAAA,IACJ;AAAA,IACR,SAAS,OAAO,SAAc;AAC1B,WAAK,YAAY;AAAA,IACrB;AAAA,EACJ;AACJ;",
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["yargs"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/nodejs-shell",
|
|
3
|
-
"version": "0.17.2-alpha.0-
|
|
3
|
+
"version": "0.17.2-alpha.0-20260609-97109a2d3",
|
|
4
4
|
"description": "Shell app for Matter controller",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -34,14 +34,14 @@
|
|
|
34
34
|
"matter-shell": "dist/cjs/app.js"
|
|
35
35
|
},
|
|
36
36
|
"dependencies": {
|
|
37
|
-
"@matter/general": "0.17.2-alpha.0-
|
|
38
|
-
"@matter/model": "0.17.2-alpha.0-
|
|
39
|
-
"@matter/node": "0.17.2-alpha.0-
|
|
40
|
-
"@matter/nodejs": "0.17.2-alpha.0-
|
|
41
|
-
"@matter/nodejs-ble": "0.17.2-alpha.0-
|
|
42
|
-
"@matter/protocol": "0.17.2-alpha.0-
|
|
43
|
-
"@matter/types": "0.17.2-alpha.0-
|
|
44
|
-
"@project-chip/matter.js": "0.17.2-alpha.0-
|
|
37
|
+
"@matter/general": "0.17.2-alpha.0-20260609-97109a2d3",
|
|
38
|
+
"@matter/model": "0.17.2-alpha.0-20260609-97109a2d3",
|
|
39
|
+
"@matter/node": "0.17.2-alpha.0-20260609-97109a2d3",
|
|
40
|
+
"@matter/nodejs": "0.17.2-alpha.0-20260609-97109a2d3",
|
|
41
|
+
"@matter/nodejs-ble": "0.17.2-alpha.0-20260609-97109a2d3",
|
|
42
|
+
"@matter/protocol": "0.17.2-alpha.0-20260609-97109a2d3",
|
|
43
|
+
"@matter/types": "0.17.2-alpha.0-20260609-97109a2d3",
|
|
44
|
+
"@project-chip/matter.js": "0.17.2-alpha.0-20260609-97109a2d3",
|
|
45
45
|
"ws": "^8.21.0",
|
|
46
46
|
"yargs": "^18.0.0"
|
|
47
47
|
},
|
package/src/shell/cmd_nodes.ts
CHANGED
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { capitalize, ChannelType, decamelize, Diagnostic, ServerAddress } from "@matter/general";
|
|
8
|
-
import { ClientNode, NetworkClient, SoftwareUpdateManager } from "@matter/node";
|
|
8
|
+
import { ClientNode, CommissioningClient, NetworkClient, SoftwareUpdateManager } from "@matter/node";
|
|
9
9
|
import { PeerAddress, PeerSet } from "@matter/protocol";
|
|
10
10
|
import { FabricIndex, NodeId, VendorId } from "@matter/types";
|
|
11
11
|
import { CommissioningControllerNodeOptions, NodeStateInformation } from "@project-chip/matter.js/device";
|
|
@@ -53,6 +53,41 @@ export function createDiagnosticCallbacks(): Partial<CommissioningControllerNode
|
|
|
53
53
|
};
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
+
/** Parse a `udp://host:port` / `tcp://host:port` URL (IPv6 host in brackets) into a {@link ServerAddress}. */
|
|
57
|
+
function parseFallbackAddress(input: string): ServerAddress {
|
|
58
|
+
const match = /^(udp|tcp):\/\/(.+)$/i.exec(input);
|
|
59
|
+
if (!match) {
|
|
60
|
+
throw new Error(`Invalid address "${input}". Expected udp://<host>:<port> or tcp://<host>:<port>`);
|
|
61
|
+
}
|
|
62
|
+
const type = match[1].toLowerCase() === "tcp" ? "tcp" : "udp";
|
|
63
|
+
const rest = match[2];
|
|
64
|
+
|
|
65
|
+
let ip: string;
|
|
66
|
+
let portStr: string;
|
|
67
|
+
if (rest.startsWith("[")) {
|
|
68
|
+
const end = rest.indexOf("]");
|
|
69
|
+
if (end === -1 || rest[end + 1] !== ":") {
|
|
70
|
+
throw new Error(`Invalid IPv6 address "${input}". Expected ${type}://[<ipv6>]:<port>`);
|
|
71
|
+
}
|
|
72
|
+
ip = rest.slice(1, end);
|
|
73
|
+
portStr = rest.slice(end + 2);
|
|
74
|
+
} else {
|
|
75
|
+
const idx = rest.lastIndexOf(":");
|
|
76
|
+
if (idx === -1) {
|
|
77
|
+
throw new Error(`Missing port in "${input}". Expected ${type}://<host>:<port>`);
|
|
78
|
+
}
|
|
79
|
+
ip = rest.slice(0, idx);
|
|
80
|
+
portStr = rest.slice(idx + 1);
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
const port = Number(portStr);
|
|
84
|
+
if (!ip.length || !Number.isInteger(port) || port < 1 || port > 65535) {
|
|
85
|
+
throw new Error(`Invalid host/port in "${input}". Expected ${type}://<host>:<port> with port 1-65535`);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return { ip, port, type };
|
|
89
|
+
}
|
|
90
|
+
|
|
56
91
|
export default function commands(theNode: MatterNode) {
|
|
57
92
|
return {
|
|
58
93
|
command: ["nodes", "node"],
|
|
@@ -332,8 +367,9 @@ export default function commands(theNode: MatterNode) {
|
|
|
332
367
|
demandOption: true,
|
|
333
368
|
})
|
|
334
369
|
.positional("preference", {
|
|
335
|
-
describe:
|
|
336
|
-
|
|
370
|
+
describe:
|
|
371
|
+
"tcp preference: on (prefer TCP) / off (prefer UDP) / clear (inherit controller default)",
|
|
372
|
+
choices: ["on", "off", "clear"],
|
|
337
373
|
demandOption: true,
|
|
338
374
|
type: "string",
|
|
339
375
|
});
|
|
@@ -348,7 +384,7 @@ export default function commands(theNode: MatterNode) {
|
|
|
348
384
|
const nodeId = NodeId(BigInt(nodeIdStr));
|
|
349
385
|
const node = await theNode.commissioningController.getNode(nodeId);
|
|
350
386
|
|
|
351
|
-
const pref = preference === "on" ? "tcp" : "udp";
|
|
387
|
+
const pref = preference === "on" ? "tcp" : preference === "off" ? "udp" : undefined;
|
|
352
388
|
await node.node.setStateOf(NetworkClient, { transportPreference: pref });
|
|
353
389
|
|
|
354
390
|
// Also update the protocol-level peer preference
|
|
@@ -360,10 +396,91 @@ export default function commands(theNode: MatterNode) {
|
|
|
360
396
|
}
|
|
361
397
|
|
|
362
398
|
console.log(
|
|
363
|
-
`Transport preference for node ${nodeIdStr} set to ${pref
|
|
399
|
+
`Transport preference for node ${nodeIdStr} set to ${pref?.toUpperCase() ?? "CLEARED (inherit controller default)"}. Reconnect to the node to take effect.`,
|
|
364
400
|
);
|
|
365
401
|
},
|
|
366
402
|
)
|
|
403
|
+
.command(
|
|
404
|
+
"fallback",
|
|
405
|
+
"Get or set the fallback (commissioning) addresses used to reach a node",
|
|
406
|
+
yargs =>
|
|
407
|
+
yargs
|
|
408
|
+
.command(
|
|
409
|
+
"get <node-id>",
|
|
410
|
+
"Print the fallback addresses currently stored for a node",
|
|
411
|
+
yargs => {
|
|
412
|
+
return yargs.positional("node-id", {
|
|
413
|
+
describe: "node id",
|
|
414
|
+
type: "string",
|
|
415
|
+
demandOption: true,
|
|
416
|
+
});
|
|
417
|
+
},
|
|
418
|
+
async argv => {
|
|
419
|
+
const { nodeId: nodeIdStr } = argv;
|
|
420
|
+
await theNode.start();
|
|
421
|
+
if (theNode.commissioningController === undefined) {
|
|
422
|
+
throw new Error("CommissioningController not initialized");
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
const nodeId = NodeId(BigInt(nodeIdStr));
|
|
426
|
+
const node = await theNode.commissioningController.getNode(nodeId);
|
|
427
|
+
const addresses = node.node.state.commissioning.addresses;
|
|
428
|
+
|
|
429
|
+
if (!addresses?.length) {
|
|
430
|
+
console.log(`Node ${nodeIdStr} has no fallback addresses stored`);
|
|
431
|
+
return;
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
console.log(`Fallback addresses for node ${nodeIdStr}:`);
|
|
435
|
+
for (const address of addresses) {
|
|
436
|
+
console.log(` ${ServerAddress.urlFor(address)}`);
|
|
437
|
+
}
|
|
438
|
+
},
|
|
439
|
+
)
|
|
440
|
+
.command(
|
|
441
|
+
"set <node-id> <address>",
|
|
442
|
+
"Set or drop the fallback address for a node (udp://host:port, tcp://host:port, or 'drop')",
|
|
443
|
+
yargs => {
|
|
444
|
+
return yargs
|
|
445
|
+
.positional("node-id", {
|
|
446
|
+
describe: "node id",
|
|
447
|
+
type: "string",
|
|
448
|
+
demandOption: true,
|
|
449
|
+
})
|
|
450
|
+
.positional("address", {
|
|
451
|
+
describe: "udp://<host>:<port>, tcp://<host>:<port>, or 'drop' to remove",
|
|
452
|
+
type: "string",
|
|
453
|
+
demandOption: true,
|
|
454
|
+
});
|
|
455
|
+
},
|
|
456
|
+
async argv => {
|
|
457
|
+
const { nodeId: nodeIdStr, address: addressStr } = argv;
|
|
458
|
+
await theNode.start();
|
|
459
|
+
if (theNode.commissioningController === undefined) {
|
|
460
|
+
throw new Error("CommissioningController not initialized");
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
const nodeId = NodeId(BigInt(nodeIdStr));
|
|
464
|
+
const node = await theNode.commissioningController.getNode(nodeId);
|
|
465
|
+
|
|
466
|
+
if (addressStr === "drop") {
|
|
467
|
+
await node.node.setStateOf(CommissioningClient, { addresses: undefined });
|
|
468
|
+
console.log(`Fallback address for node ${nodeIdStr} dropped`);
|
|
469
|
+
return;
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
const address = parseFallbackAddress(addressStr);
|
|
473
|
+
await node.node.setStateOf(CommissioningClient, { addresses: [address] });
|
|
474
|
+
console.log(
|
|
475
|
+
`Fallback address for node ${nodeIdStr} set to ${ServerAddress.urlFor(address)}`,
|
|
476
|
+
);
|
|
477
|
+
},
|
|
478
|
+
)
|
|
479
|
+
.demandCommand(1, "Please specify 'get' or 'set'"),
|
|
480
|
+
async (argv: any) => {
|
|
481
|
+
argv.unhandled = true;
|
|
482
|
+
},
|
|
483
|
+
)
|
|
367
484
|
.command(
|
|
368
485
|
"add [node-id]",
|
|
369
486
|
"Adds a node without commissioning and connects to it (means need to exist in the fabric and commissioned otherwise)",
|