@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.
@@ -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/off (on = prefer TCP, off = prefer UDP)",
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.toUpperCase()}. Reconnect to the node to take effect.`
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": "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",
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-20260607-8fc16b308",
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-20260607-8fc16b308",
38
- "@matter/model": "0.17.2-alpha.0-20260607-8fc16b308",
39
- "@matter/node": "0.17.2-alpha.0-20260607-8fc16b308",
40
- "@matter/nodejs": "0.17.2-alpha.0-20260607-8fc16b308",
41
- "@matter/nodejs-ble": "0.17.2-alpha.0-20260607-8fc16b308",
42
- "@matter/protocol": "0.17.2-alpha.0-20260607-8fc16b308",
43
- "@matter/types": "0.17.2-alpha.0-20260607-8fc16b308",
44
- "@project-chip/matter.js": "0.17.2-alpha.0-20260607-8fc16b308",
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
  },
@@ -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: "tcp preference: on/off (on = prefer TCP, off = prefer UDP)",
336
- choices: ["on", "off"],
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.toUpperCase()}. Reconnect to the node to take effect.`,
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)",