@matter/nodejs-shell 0.13.0-alpha.0-20250318-c1aa38b08 → 0.13.0-alpha.0-20250322-f085fa576

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.
@@ -67,11 +67,6 @@ class MatterNode {
67
67
  await controllerStore.erase();
68
68
  }
69
69
  this.storageContext = controllerStore.storage.createContext("Node");
70
- if (await this.Store.has("ControllerFabricLabel")) {
71
- await this.commissioningController.updateFabricLabel(
72
- await this.Store.get("ControllerFabricLabel", "matter.js Shell")
73
- );
74
- }
75
70
  const storageService = this.#environment.get(import_general.StorageService);
76
71
  const baseLocation = storageService.location;
77
72
  if (baseLocation !== void 0) {
@@ -109,6 +104,11 @@ class MatterNode {
109
104
  logger.info(`matter.js shell controller started for node ${this.nodeNum}`);
110
105
  if (this.commissioningController !== void 0) {
111
106
  await this.commissioningController.start();
107
+ if (await this.Store.has("ControllerFabricLabel")) {
108
+ await this.commissioningController.updateFabricLabel(
109
+ await this.Store.get("ControllerFabricLabel", "matter.js Shell")
110
+ );
111
+ }
112
112
  } else {
113
113
  throw new Error("No controller initialized");
114
114
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/MatterNode.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,qBAAoE;AACpE,kBAAgC;AAGhC,mBAAuB;AACvB,oBAAwC;AAExC,uBAAqB;AAdrB;AAAA;AAAA;AAAA;AAAA;AAgBA,MAAM,SAAS,sBAAO,IAAI,MAAM;AAEzB,MAAM,WAAW;AAAA,EASpB,YACqB,SACA,cACnB;AAFmB;AACA;AAEjB,SAAK,eAAe,2BAAY;AAAA,EACpC;AAAA,EAbA;AAAA,EACQ;AAAA,EACA;AAAA,EAER;AAAA,EACA;AAAA,EACQ,UAAU;AAAA,EASlB,IAAI,kBAAkB;AAClB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,WAAW,cAAuB;AAQpC,QAAI,KAAK,cAAc;AACnB,UAAI,KAAK,iBAAiB,QAAW;AACjC,aAAK,aAAa,KAAK,IAAI,yBAAyB,KAAK,YAAY;AAAA,MACzE;AAEA,YAAM,KAAK,SAAS,KAAK,QAAQ,SAAS,CAAC;AAC3C,WAAK,0BAA0B,IAAI,sCAAwB;AAAA,QACvD,aAAa;AAAA,UACT,aAAa,KAAK;AAAA,UAClB;AAAA,QACJ;AAAA,QACA,aAAa;AAAA,QACb,kBAAkB;AAAA,MACtB,CAAC;AACD,YAAM,KAAK,wBAAwB,0BAA0B;AAE7D,YAAM,kBAAkB,KAAK,aAAa,IAAI,2BAAe;AAC7D,UAAI,cAAc;AACd,cAAM,gBAAgB,MAAM;AAAA,MAChC;AACA,WAAK,iBAAiB,gBAAgB,QAAQ,cAAc,MAAM;AAElE,UAAI,MAAM,KAAK,MAAM,IAAI,uBAAuB,GAAG;AAC/C,cAAM,KAAK,wBAAwB;AAAA,UAC/B,MAAM,KAAK,MAAM,IAAY,yBAAyB,iBAAiB;AAAA,QAC3E;AAAA,MACJ;AAEA,YAAM,iBAAiB,KAAK,aAAa,IAAI,6BAAc;AAC3D,YAAM,eAAe,eAAe;AACpC,UAAI,iBAAiB,QAAW;AAC5B,aAAK,uBAAmB,uBAAK,cAAc,EAAE;AAAA,MACjD;AAAA,IACJ,OAAO;AACH,cAAQ;AAAA,QACJ;AAAA,MACJ;AACA,cAAQ,KAAK,CAAC;AAAA,IAClB;AAAA,EACJ;AAAA,EAEA,IAAI,QAAQ;AACR,QAAI,CAAC,KAAK,gBAAgB;AACtB,YAAM,IAAI,MAAM,uBAAuB;AAAA,IAC3C;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,QAAQ;AACV,UAAM,KAAK,yBAAyB,MAAM;AAC1C,UAAM,KAAK,aAAa;AAAA,EAC5B;AAAA,EAEA,MAAM,eAAe;AACjB,QAAI;AACA,YAAM,KAAK,SAAS,MAAM;AAC1B,cAAQ,KAAK,CAAC;AAAA,IAClB,QAAQ;AACJ,cAAQ,KAAK,CAAC;AAAA,IAClB;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ;AACV,QAAI,KAAK,SAAS;AACd;AAAA,IACJ;AACA,WAAO,KAAK,+CAA+C,KAAK,OAAO,EAAE;AAEzE,QAAI,KAAK,4BAA4B,QAAW;AAC5C,YAAM,KAAK,wBAAwB,MAAM;AAAA,IAC7C,OAAO;AACH,YAAM,IAAI,MAAM,2BAA2B;AAAA,IAC/C;AACA,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,MAAM,mBAAmB,WAAoB,gBAAqD;AAC9F,UAAM,KAAK,MAAM;AACjB,UAAM,SAAS,cAAc,aAAY,qBAAO,OAAO,SAAS,CAAC,IAAI;AAErE,QAAI,KAAK,4BAA4B,QAAW;AAC5C,YAAM,IAAI,MAAM,yCAAyC;AAAA,IAC7D;AAEA,QAAI,WAAW,QAAW;AACtB,aAAO,MAAM,KAAK,wBAAwB,QAAQ,cAAc;AAAA,IACpE;AAEA,UAAM,OAAO,MAAM,KAAK,wBAAwB,YAAY,QAAQ,cAAc;AAClF,QAAI,CAAC,KAAK,aAAa;AACnB,YAAM,KAAK,OAAO;AAAA,IACtB;AACA,WAAO,CAAC,IAAI;AAAA,EAChB;AAAA,EAEA,IAAI,aAAa;AACb,QAAI,KAAK,4BAA4B,QAAW;AAC5C,YAAM,IAAI,MAAM,sDAAsD;AAAA,IAC1E;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,mBACF,OACA,UACA,YACF;AACE,eAAW,QAAQ,OAAO;AACtB,UAAI,UAAU,KAAK,WAAW;AAC9B,UAAI,eAAe,QAAW;AAC1B,kBAAU,QAAQ,OAAO,YAAU,OAAO,WAAW,UAAU;AAAA,MACnE;AAEA,iBAAW,UAAU,SAAS;AAC1B,cAAM,SAAS,QAAQ,IAAI;AAAA,MAC/B;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,kBAAkB,OAAe;AAC7B,WAAO,KAAK,yBAAyB,kBAAkB,KAAK;AAAA,EAChE;AACJ;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -56,18 +56,51 @@ function commands(theNode) {
56
56
  async (argv) => {
57
57
  const {
58
58
  pairingCode,
59
+ qrCode,
59
60
  nodeId: nodeIdStr,
60
61
  ipPort,
61
62
  ip,
62
63
  ble = false,
63
64
  instanceId
64
65
  } = argv;
65
- let { setupPinCode, discriminator, shortDiscriminator } = argv;
66
- if (typeof pairingCode === "string") {
66
+ let { setupPinCode, discriminator, shortDiscriminator, qrCodeIndex } = argv;
67
+ if (typeof pairingCode === "string" && pairingCode.length > 0) {
67
68
  const { shortDiscriminator: pairingCodeShortDiscriminator, passcode } = import_types.ManualPairingCodeCodec.decode(pairingCode);
68
69
  shortDiscriminator = pairingCodeShortDiscriminator;
69
70
  setupPinCode = passcode;
70
71
  discriminator = void 0;
72
+ } else if (typeof qrCode === "string" && qrCode.length > 0) {
73
+ const pairingCodeCodec = import_types.QrPairingCodeCodec.decode(qrCode);
74
+ if (typeof qrCodeIndex !== "number") {
75
+ if (!Number.isFinite(qrCodeIndex)) {
76
+ console.log("Invalid QR-Code index provided. Using first.");
77
+ qrCodeIndex = 1;
78
+ }
79
+ }
80
+ let qrIndex = Number(qrCodeIndex);
81
+ if (pairingCodeCodec.length > 1) {
82
+ if (qrIndex < 1 || qrIndex > pairingCodeCodec.length) {
83
+ console.log(
84
+ `Multiple (${pairingCodeCodec.length}) pairing codes found in the provided QR-Code. Using first.`
85
+ );
86
+ qrIndex = 1;
87
+ } else {
88
+ console.log(
89
+ `Multiple (${pairingCodeCodec.length}) pairing codes found in the provided QR-Code. Using index ${qrIndex}`
90
+ );
91
+ }
92
+ } else {
93
+ qrIndex = 1;
94
+ }
95
+ const qrResult = pairingCodeCodec[qrIndex - 1];
96
+ discriminator = qrResult.discriminator;
97
+ shortDiscriminator = void 0;
98
+ setupPinCode = qrResult.passcode;
99
+ if (import_types.DiscoveryCapabilitiesSchema.decode(qrResult.discoveryCapabilities).ble && !ble) {
100
+ console.log(
101
+ "QR-Code contains BLE discovery capabilities, but BLE is disabled. Please enable if device is not already on network."
102
+ );
103
+ }
71
104
  } else if (discriminator === void 0 && shortDiscriminator === void 0) {
72
105
  discriminator = 3840;
73
106
  }
@@ -136,6 +169,16 @@ function commands(theNode) {
136
169
  default: void 0,
137
170
  type: "string"
138
171
  },
172
+ qrCode: {
173
+ describe: "QR code string (MT:...)",
174
+ default: void 0,
175
+ type: "string"
176
+ },
177
+ qrCodeIndex: {
178
+ describe: "Index of QR code entry if multiple (1..n)",
179
+ default: 1,
180
+ type: "number"
181
+ },
139
182
  setupPinCode: {
140
183
  describe: "setup pin code",
141
184
  default: 20202021,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/shell/cmd_commission.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.13.0-alpha.0-20250318-c1aa38b08",
3
+ "version": "0.13.0-alpha.0-20250322-f085fa576",
4
4
  "description": "Shell app for Matter controller",
5
5
  "keywords": [
6
6
  "iot",
@@ -36,11 +36,11 @@
36
36
  "#types": "@matter/types"
37
37
  },
38
38
  "dependencies": {
39
- "@matter/general": "0.13.0-alpha.0-20250318-c1aa38b08",
40
- "@matter/nodejs": "0.13.0-alpha.0-20250318-c1aa38b08",
41
- "@matter/nodejs-ble": "0.13.0-alpha.0-20250318-c1aa38b08",
42
- "@matter/tools": "0.13.0-alpha.0-20250318-c1aa38b08",
43
- "@project-chip/matter.js": "0.13.0-alpha.0-20250318-c1aa38b08",
39
+ "@matter/general": "0.13.0-alpha.0-20250322-f085fa576",
40
+ "@matter/nodejs": "0.13.0-alpha.0-20250322-f085fa576",
41
+ "@matter/nodejs-ble": "0.13.0-alpha.0-20250322-f085fa576",
42
+ "@matter/tools": "0.13.0-alpha.0-20250322-f085fa576",
43
+ "@project-chip/matter.js": "0.13.0-alpha.0-20250322-f085fa576",
44
44
  "yargs": "^17.7.2"
45
45
  },
46
46
  "engines": {
package/src/MatterNode.ts CHANGED
@@ -66,12 +66,6 @@ export class MatterNode {
66
66
  }
67
67
  this.storageContext = controllerStore.storage.createContext("Node");
68
68
 
69
- if (await this.Store.has("ControllerFabricLabel")) {
70
- await this.commissioningController.updateFabricLabel(
71
- await this.Store.get<string>("ControllerFabricLabel", "matter.js Shell"),
72
- );
73
- }
74
-
75
69
  const storageService = this.#environment.get(StorageService);
76
70
  const baseLocation = storageService.location;
77
71
  if (baseLocation !== undefined) {
@@ -114,6 +108,12 @@ export class MatterNode {
114
108
 
115
109
  if (this.commissioningController !== undefined) {
116
110
  await this.commissioningController.start();
111
+
112
+ if (await this.Store.has("ControllerFabricLabel")) {
113
+ await this.commissioningController.updateFabricLabel(
114
+ await this.Store.get<string>("ControllerFabricLabel", "matter.js Shell"),
115
+ );
116
+ }
117
117
  } else {
118
118
  throw new Error("No controller initialized");
119
119
  }
@@ -5,7 +5,7 @@
5
5
  */
6
6
 
7
7
  import { Logger, MatterError } from "@matter/general";
8
- import { ManualPairingCodeCodec, NodeId, QrCode } from "@matter/types";
8
+ import { DiscoveryCapabilitiesSchema, ManualPairingCodeCodec, NodeId, QrCode, QrPairingCodeCodec } from "@matter/types";
9
9
  import { BasicInformationCluster, DescriptorCluster, GeneralCommissioning } from "@matter/types/clusters";
10
10
  import { NodeCommissioningOptions } from "@project-chip/matter.js";
11
11
  import type { Argv } from "yargs";
@@ -47,20 +47,56 @@ export default function commands(theNode: MatterNode) {
47
47
  async argv => {
48
48
  const {
49
49
  pairingCode,
50
+ qrCode,
50
51
  nodeId: nodeIdStr,
51
52
  ipPort,
52
53
  ip,
53
54
  ble = false,
54
55
  instanceId,
55
56
  } = argv;
56
- let { setupPinCode, discriminator, shortDiscriminator } = argv;
57
+ let { setupPinCode, discriminator, shortDiscriminator, qrCodeIndex } = argv;
57
58
 
58
- if (typeof pairingCode === "string") {
59
+ if (typeof pairingCode === "string" && pairingCode.length > 0) {
59
60
  const { shortDiscriminator: pairingCodeShortDiscriminator, passcode } =
60
61
  ManualPairingCodeCodec.decode(pairingCode);
61
62
  shortDiscriminator = pairingCodeShortDiscriminator;
62
63
  setupPinCode = passcode;
63
64
  discriminator = undefined;
65
+ } else if (typeof qrCode === "string" && qrCode.length > 0) {
66
+ const pairingCodeCodec = QrPairingCodeCodec.decode(qrCode);
67
+ if (typeof qrCodeIndex !== "number") {
68
+ if (!Number.isFinite(qrCodeIndex)) {
69
+ console.log("Invalid QR-Code index provided. Using first.");
70
+ qrCodeIndex = 1;
71
+ }
72
+ }
73
+ let qrIndex = Number(qrCodeIndex);
74
+ if (pairingCodeCodec.length > 1) {
75
+ if (qrIndex < 1 || qrIndex > pairingCodeCodec.length) {
76
+ console.log(
77
+ `Multiple (${pairingCodeCodec.length}) pairing codes found in the provided QR-Code. Using first.`,
78
+ );
79
+ qrIndex = 1;
80
+ } else {
81
+ console.log(
82
+ `Multiple (${pairingCodeCodec.length}) pairing codes found in the provided QR-Code. Using index ${qrIndex}`,
83
+ );
84
+ }
85
+ } else {
86
+ qrIndex = 1;
87
+ }
88
+ const qrResult = pairingCodeCodec[qrIndex - 1];
89
+ discriminator = qrResult.discriminator;
90
+ shortDiscriminator = undefined;
91
+ setupPinCode = qrResult.passcode;
92
+ if (
93
+ DiscoveryCapabilitiesSchema.decode(qrResult.discoveryCapabilities).ble &&
94
+ !ble
95
+ ) {
96
+ console.log(
97
+ "QR-Code contains BLE discovery capabilities, but BLE is disabled. Please enable if device is not already on network.",
98
+ );
99
+ }
64
100
  } else if (discriminator === undefined && shortDiscriminator === undefined) {
65
101
  discriminator = 3840;
66
102
  }
@@ -161,6 +197,16 @@ export default function commands(theNode: MatterNode) {
161
197
  default: undefined,
162
198
  type: "string",
163
199
  },
200
+ qrCode: {
201
+ describe: "QR code string (MT:...)",
202
+ default: undefined,
203
+ type: "string",
204
+ },
205
+ qrCodeIndex: {
206
+ describe: "Index of QR code entry if multiple (1..n)",
207
+ default: 1,
208
+ type: "number",
209
+ },
164
210
  setupPinCode: {
165
211
  describe: "setup pin code",
166
212
  default: 20202021,