@matter/nodejs-shell 0.17.0-alpha.0-20260309-33bcd9eab → 0.17.0-alpha.0-20260311-3dbb8a732

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.
@@ -6,11 +6,11 @@
6
6
  import {
7
7
  Environment,
8
8
  Logger,
9
+ MaybePromise,
9
10
  ObserverGroup,
10
11
  StorageService
11
12
  } from "@matter/general";
12
- import { SoftwareUpdateManager } from "@matter/node";
13
- import { DclCertificateService, DclOtaUpdateService, DclVendorInfoService } from "@matter/protocol";
13
+ import { DclBehavior, SoftwareUpdateManager } from "@matter/node";
14
14
  import { NodeId } from "@matter/types";
15
15
  import { CommissioningController } from "@project-chip/matter.js";
16
16
  import { join } from "node:path";
@@ -25,7 +25,6 @@ class MatterNode {
25
25
  #nodeNum;
26
26
  #netInterface;
27
27
  #dclFetchTestCertificates = false;
28
- #services;
29
28
  #observers;
30
29
  constructor(nodeNum, netInterface) {
31
30
  this.#environment = Environment.default;
@@ -39,12 +38,6 @@ class MatterNode {
39
38
  get environment() {
40
39
  return this.#environment;
41
40
  }
42
- get services() {
43
- if (!this.#services) {
44
- this.#services = this.#environment.asDependent();
45
- }
46
- return this.#services;
47
- }
48
41
  get node() {
49
42
  if (this.commissioningController === void 0) {
50
43
  throw new Error("CommissioningController not initialized. Start first");
@@ -52,22 +45,25 @@ class MatterNode {
52
45
  return this.commissioningController.node;
53
46
  }
54
47
  get otaService() {
55
- if (!this.environment.has(DclOtaUpdateService)) {
56
- new DclOtaUpdateService(this.environment);
48
+ const service = this.node.act((agent) => agent.get(DclBehavior).otaUpdateService);
49
+ if (MaybePromise.is(service)) {
50
+ throw new Error("OTA service not initialized");
57
51
  }
58
- return this.services.get(DclOtaUpdateService);
52
+ return service;
59
53
  }
60
54
  get certificateService() {
61
- if (!this.environment.has(DclCertificateService)) {
62
- new DclCertificateService(this.environment, { fetchTestCertificates: this.#dclFetchTestCertificates });
55
+ const service = this.node.act((agent) => agent.get(DclBehavior).certificateService);
56
+ if (MaybePromise.is(service)) {
57
+ throw new Error("Certificate service not initialized");
63
58
  }
64
- return this.services.get(DclCertificateService);
59
+ return service;
65
60
  }
66
61
  get vendorInfoService() {
67
- if (!this.environment.has(DclVendorInfoService)) {
68
- new DclVendorInfoService(this.environment);
62
+ const service = this.node.act((agent) => agent.get(DclBehavior).vendorInfoService);
63
+ if (MaybePromise.is(service)) {
64
+ throw new Error("VendorInformation service not initialized");
69
65
  }
70
- return this.services.get(DclVendorInfoService);
66
+ return service;
71
67
  }
72
68
  async initialize(resetStorage) {
73
69
  if (this.#environment) {
@@ -113,7 +109,6 @@ class MatterNode {
113
109
  }
114
110
  async close() {
115
111
  await this.commissioningController?.close();
116
- await this.#services?.close();
117
112
  this.#observers?.close();
118
113
  await this.#storageManager?.close();
119
114
  }
@@ -124,6 +119,9 @@ class MatterNode {
124
119
  logger.info(`matter.js shell controller started for node ${this.#nodeNum}`);
125
120
  if (this.commissioningController !== void 0) {
126
121
  await this.commissioningController.start();
122
+ this.commissioningController.node.behaviors.require(DclBehavior, {
123
+ fetchTestCertificates: this.#dclFetchTestCertificates
124
+ });
127
125
  if (await this.Store.has("ControllerFabricLabel")) {
128
126
  await this.commissioningController.updateFabricLabel(
129
127
  await this.Store.get("ControllerFabricLabel", "matter.js Shell")
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/MatterNode.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -54,6 +54,7 @@ function commands(theNode) {
54
54
  async (argv) => {
55
55
  const { file } = argv;
56
56
  const fileArg = file;
57
+ await theNode.start();
57
58
  let updateInfo;
58
59
  if (fileArg.startsWith("file://")) {
59
60
  const filePath = fileArg.slice(7);
@@ -137,6 +138,7 @@ Payload extracted successfully!`);
137
138
  const crypto = Environment.default.get(Crypto);
138
139
  console.log(`Verifying OTA image: ${fileArg}
139
140
  `);
141
+ await theNode.start();
140
142
  let header;
141
143
  let source;
142
144
  if (fileArg.startsWith("file://")) {
@@ -193,6 +195,7 @@ Payload extracted successfully!`);
193
195
  },
194
196
  async (argv) => {
195
197
  const { vid, pid, mode } = argv;
198
+ await theNode.start();
196
199
  if (pid && !vid) {
197
200
  console.error("Error: --pid requires --vid to be specified");
198
201
  process.exit(1);
@@ -238,6 +241,7 @@ Payload extracted successfully!`);
238
241
  async (argv) => {
239
242
  const { file } = argv;
240
243
  let filePath = file;
244
+ await theNode.start();
241
245
  if (filePath.startsWith("file://")) {
242
246
  filePath = filePath.slice(7);
243
247
  } else if (!filePath.startsWith("/")) {
@@ -308,6 +312,7 @@ OTA image added to storage successfully: ${fd.text}`);
308
312
  },
309
313
  async (argv) => {
310
314
  const { keyname, vid, pid, mode } = argv;
315
+ await theNode.start();
311
316
  if (keyname) {
312
317
  await theNode.otaService.delete({
313
318
  filename: keyname
@@ -363,6 +368,7 @@ OTA image added to storage successfully: ${fd.text}`);
363
368
  const { source, target, pid, mode } = argv;
364
369
  const sourceArg = source;
365
370
  const targetArg = target;
371
+ await theNode.start();
366
372
  let keyname;
367
373
  if (pid && mode) {
368
374
  const vendorId = parseHexId(sourceArg, "vendor");
@@ -438,6 +444,7 @@ OTA image added to storage successfully: ${fd.text}`);
438
444
  },
439
445
  async (argv) => {
440
446
  const { vendorId: vendorIdStr, productId: productIdStr, softwareVersion, mode, local } = argv;
447
+ await theNode.start();
441
448
  const vendorId = parseHexId(vendorIdStr, "vendor");
442
449
  const productId = parseHexId(productIdStr, "product");
443
450
  const isProduction = mode === "prod" ? true : mode === "test" ? false : void 0;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/shell/cmd_ota.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["yargs"]
6
6
  }
@@ -15,7 +15,9 @@ function commands(theNode) {
15
15
  },
16
16
  async () => {
17
17
  await theNode.start();
18
- const vendors = [...theNode.vendorInfoService.vendors.values()];
18
+ const vendorService = theNode.vendorInfoService;
19
+ await vendorService.construction;
20
+ const vendors = [...vendorService.vendors.values()];
19
21
  if (vendors.length === 0) {
20
22
  console.log("No vendor information found in storage.");
21
23
  return;
@@ -74,12 +76,12 @@ Found ${vendors.length} vendor(s):
74
76
  },
75
77
  async () => {
76
78
  await theNode.start();
79
+ const vendorService = theNode.vendorInfoService;
80
+ await vendorService.construction;
77
81
  console.log("Updating vendor information from DCL...");
78
82
  try {
79
- await theNode.vendorInfoService.update();
80
- console.log(
81
- `Successfully updated. ${theNode.vendorInfoService.vendors.size} vendor(s) now available.`
82
- );
83
+ await vendorService.update();
84
+ console.log(`Successfully updated. ${vendorService.vendors.size} vendor(s) now available.`);
83
85
  } catch (error) {
84
86
  console.error(
85
87
  `Failed to update vendor information: ${error instanceof Error ? error.message : error}`
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/shell/cmd_vendor.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAIZ,SAAR,SAA0B,SAAqB;AAClD,SAAO;AAAA,IACH,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,CAAC,UACN,MACK;AAAA,MACG,CAAC,KAAK,MAAM;AAAA,MACZ;AAAA,MACA,MAAM;AAAA,MAAC;AAAA,MACP,YAAY;AACR,cAAM,QAAQ,MAAM;AACpB,cAAM,UAAU,CAAC,GAAG,QAAQ,kBAAkB,QAAQ,OAAO,CAAC;AAE9D,YAAI,QAAQ,WAAW,GAAG;AACtB,kBAAQ,IAAI,yCAAyC;AACrD;AAAA,QACJ;AAEA,gBAAQ,IAAI;AAAA,QAAW,QAAQ,MAAM;AAAA,CAAe;AAGpD,gBAAQ,KAAK,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ;AAE9C,gBAAQ,QAAQ,YAAU;AACtB,kBAAQ;AAAA,YACJ,cAAc,OAAO,QAAQ,OAAO,OAAO,SAAS,SAAS,EAAE,EAAE,YAAY,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,UACnG;AACA,kBAAQ,IAAI,WAAW,OAAO,UAAU,EAAE;AAC1C,kBAAQ,IAAI,iBAAiB,OAAO,gBAAgB,EAAE;AACtD,kBAAQ,IAAI,qBAAqB,OAAO,oBAAoB,EAAE;AAC9D,kBAAQ,IAAI,mBAAmB,OAAO,oBAAoB,EAAE;AAC5D,kBAAQ,IAAI,EAAE;AAAA,QAClB,CAAC;AAAA,MACL;AAAA,IACJ,EACC;AAAA,MACG;AAAA,MACA;AAAA,MACA,CAAAA,WAAS;AACL,eAAOA,OAAM,WAAW,aAAa;AAAA,UACjC,UAAU;AAAA,UACV,MAAM;AAAA,UACN,cAAc;AAAA,QAClB,CAAC;AAAA,MACL;AAAA,MACA,OAAM,SAAQ;AACV,cAAM,EAAE,UAAU,YAAY,IAAI;AAElC,YAAI;AACJ,YAAI,YAAY,WAAW,IAAI,GAAG;AAC9B,gBAAM,SAAS,YAAY,QAAQ,QAAQ,EAAE;AAC7C,qBAAW,SAAS,QAAQ,EAAE;AAAA,QAClC,OAAO;AACH,qBAAW,SAAS,aAAa,EAAE;AAAA,QACvC;AAEA,YAAI,CAAC,SAAS,QAAQ,GAAG;AACrB,kBAAQ,MAAM,6BAA6B,WAAW,GAAG;AACzD;AAAA,QACJ;AAEA,cAAM,QAAQ,MAAM;AACpB,cAAM,SAAS,QAAQ,kBAAkB,QAAQ,QAAQ;AACzD,YAAI,CAAC,QAAQ;AACT,kBAAQ,MAAM,kBAAkB,WAAW,YAAY;AACvD;AAAA,QACJ;AAEA,gBAAQ,IAAI,mBAAmB;AAC/B,gBAAQ,IAAI,WAAW,KAAK,MAAM,CAAC;AAAA,MACvC;AAAA,IACJ,EACC;AAAA,MACG;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MAAC;AAAA,MACP,YAAY;AACR,cAAM,QAAQ,MAAM;AACpB,gBAAQ,IAAI,yCAAyC;AAErD,YAAI;AACA,gBAAM,QAAQ,kBAAkB,OAAO;AACvC,kBAAQ;AAAA,YACJ,yBAAyB,QAAQ,kBAAkB,QAAQ,IAAI;AAAA,UACnE;AAAA,QACJ,SAAS,OAAO;AACZ,kBAAQ;AAAA,YACJ,wCAAwC,iBAAiB,QAAQ,MAAM,UAAU,KAAK;AAAA,UAC1F;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,IACR,SAAS,OAAO,SAAc;AAC1B,WAAK,YAAY;AAAA,IACrB;AAAA,EACJ;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAIZ,SAAR,SAA0B,SAAqB;AAClD,SAAO;AAAA,IACH,SAAS;AAAA,IACT,UAAU;AAAA,IACV,SAAS,CAAC,UACN,MACK;AAAA,MACG,CAAC,KAAK,MAAM;AAAA,MACZ;AAAA,MACA,MAAM;AAAA,MAAC;AAAA,MACP,YAAY;AACR,cAAM,QAAQ,MAAM;AACpB,cAAM,gBAAgB,QAAQ;AAC9B,cAAM,cAAc;AACpB,cAAM,UAAU,CAAC,GAAG,cAAc,QAAQ,OAAO,CAAC;AAElD,YAAI,QAAQ,WAAW,GAAG;AACtB,kBAAQ,IAAI,yCAAyC;AACrD;AAAA,QACJ;AAEA,gBAAQ,IAAI;AAAA,QAAW,QAAQ,MAAM;AAAA,CAAe;AAGpD,gBAAQ,KAAK,CAAC,GAAG,MAAM,EAAE,WAAW,EAAE,QAAQ;AAE9C,gBAAQ,QAAQ,YAAU;AACtB,kBAAQ;AAAA,YACJ,cAAc,OAAO,QAAQ,OAAO,OAAO,SAAS,SAAS,EAAE,EAAE,YAAY,EAAE,SAAS,GAAG,GAAG,CAAC;AAAA,UACnG;AACA,kBAAQ,IAAI,WAAW,OAAO,UAAU,EAAE;AAC1C,kBAAQ,IAAI,iBAAiB,OAAO,gBAAgB,EAAE;AACtD,kBAAQ,IAAI,qBAAqB,OAAO,oBAAoB,EAAE;AAC9D,kBAAQ,IAAI,mBAAmB,OAAO,oBAAoB,EAAE;AAC5D,kBAAQ,IAAI,EAAE;AAAA,QAClB,CAAC;AAAA,MACL;AAAA,IACJ,EACC;AAAA,MACG;AAAA,MACA;AAAA,MACA,CAAAA,WAAS;AACL,eAAOA,OAAM,WAAW,aAAa;AAAA,UACjC,UAAU;AAAA,UACV,MAAM;AAAA,UACN,cAAc;AAAA,QAClB,CAAC;AAAA,MACL;AAAA,MACA,OAAM,SAAQ;AACV,cAAM,EAAE,UAAU,YAAY,IAAI;AAElC,YAAI;AACJ,YAAI,YAAY,WAAW,IAAI,GAAG;AAC9B,gBAAM,SAAS,YAAY,QAAQ,QAAQ,EAAE;AAC7C,qBAAW,SAAS,QAAQ,EAAE;AAAA,QAClC,OAAO;AACH,qBAAW,SAAS,aAAa,EAAE;AAAA,QACvC;AAEA,YAAI,CAAC,SAAS,QAAQ,GAAG;AACrB,kBAAQ,MAAM,6BAA6B,WAAW,GAAG;AACzD;AAAA,QACJ;AAEA,cAAM,QAAQ,MAAM;AACpB,cAAM,SAAS,QAAQ,kBAAkB,QAAQ,QAAQ;AACzD,YAAI,CAAC,QAAQ;AACT,kBAAQ,MAAM,kBAAkB,WAAW,YAAY;AACvD;AAAA,QACJ;AAEA,gBAAQ,IAAI,mBAAmB;AAC/B,gBAAQ,IAAI,WAAW,KAAK,MAAM,CAAC;AAAA,MACvC;AAAA,IACJ,EACC;AAAA,MACG;AAAA,MACA;AAAA,MACA,MAAM;AAAA,MAAC;AAAA,MACP,YAAY;AACR,cAAM,QAAQ,MAAM;AACpB,cAAM,gBAAgB,QAAQ;AAC9B,cAAM,cAAc;AACpB,gBAAQ,IAAI,yCAAyC;AAErD,YAAI;AACA,gBAAM,cAAc,OAAO;AAC3B,kBAAQ,IAAI,yBAAyB,cAAc,QAAQ,IAAI,2BAA2B;AAAA,QAC9F,SAAS,OAAO;AACZ,kBAAQ;AAAA,YACJ,wCAAwC,iBAAiB,QAAQ,MAAM,UAAU,KAAK;AAAA,UAC1F;AAAA,QACJ;AAAA,MACJ;AAAA,IACJ;AAAA,IACR,SAAS,OAAO,SAAc;AAC1B,WAAK,YAAY;AAAA,IACrB;AAAA,EACJ;AACJ;",
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.0-alpha.0-20260309-33bcd9eab",
3
+ "version": "0.17.0-alpha.0-20260311-3dbb8a732",
4
4
  "description": "Shell app for Matter controller",
5
5
  "keywords": [
6
6
  "iot",
@@ -34,15 +34,15 @@
34
34
  "matter-shell": "dist/cjs/app.js"
35
35
  },
36
36
  "dependencies": {
37
- "@matter/general": "0.17.0-alpha.0-20260309-33bcd9eab",
38
- "@matter/model": "0.17.0-alpha.0-20260309-33bcd9eab",
39
- "@matter/node": "0.17.0-alpha.0-20260309-33bcd9eab",
40
- "@matter/nodejs": "0.17.0-alpha.0-20260309-33bcd9eab",
41
- "@matter/nodejs-ble": "0.17.0-alpha.0-20260309-33bcd9eab",
42
- "@matter/protocol": "0.17.0-alpha.0-20260309-33bcd9eab",
43
- "@matter/tools": "0.17.0-alpha.0-20260309-33bcd9eab",
44
- "@matter/types": "0.17.0-alpha.0-20260309-33bcd9eab",
45
- "@project-chip/matter.js": "0.17.0-alpha.0-20260309-33bcd9eab",
37
+ "@matter/general": "0.17.0-alpha.0-20260311-3dbb8a732",
38
+ "@matter/model": "0.17.0-alpha.0-20260311-3dbb8a732",
39
+ "@matter/node": "0.17.0-alpha.0-20260311-3dbb8a732",
40
+ "@matter/nodejs": "0.17.0-alpha.0-20260311-3dbb8a732",
41
+ "@matter/nodejs-ble": "0.17.0-alpha.0-20260311-3dbb8a732",
42
+ "@matter/protocol": "0.17.0-alpha.0-20260311-3dbb8a732",
43
+ "@matter/tools": "0.17.0-alpha.0-20260311-3dbb8a732",
44
+ "@matter/types": "0.17.0-alpha.0-20260311-3dbb8a732",
45
+ "@project-chip/matter.js": "0.17.0-alpha.0-20260311-3dbb8a732",
46
46
  "ws": "^8.19.0",
47
47
  "yargs": "^18.0.0"
48
48
  },
package/src/MatterNode.ts CHANGED
@@ -8,13 +8,13 @@
8
8
  import {
9
9
  Environment,
10
10
  Logger,
11
+ MaybePromise,
11
12
  ObserverGroup,
12
- SharedEnvironmentServices,
13
13
  StorageContext,
14
14
  StorageManager,
15
15
  StorageService,
16
16
  } from "@matter/general";
17
- import { ServerNode, SoftwareUpdateManager } from "@matter/node";
17
+ import { DclBehavior, ServerNode, SoftwareUpdateManager } from "@matter/node";
18
18
  import { DclCertificateService, DclOtaUpdateService, DclVendorInfoService } from "@matter/protocol";
19
19
  import { NodeId } from "@matter/types";
20
20
  import { CommissioningController } from "@project-chip/matter.js";
@@ -33,7 +33,6 @@ export class MatterNode {
33
33
  readonly #nodeNum: number;
34
34
  readonly #netInterface?: string;
35
35
  #dclFetchTestCertificates = false;
36
- #services?: SharedEnvironmentServices;
37
36
  #observers?: ObserverGroup;
38
37
 
39
38
  constructor(nodeNum: number, netInterface?: string) {
@@ -51,13 +50,6 @@ export class MatterNode {
51
50
  return this.#environment;
52
51
  }
53
52
 
54
- protected get services() {
55
- if (!this.#services) {
56
- this.#services = this.#environment.asDependent();
57
- }
58
- return this.#services;
59
- }
60
-
61
53
  get node(): ServerNode {
62
54
  if (this.commissioningController === undefined) {
63
55
  throw new Error("CommissioningController not initialized. Start first");
@@ -66,24 +58,27 @@ export class MatterNode {
66
58
  }
67
59
 
68
60
  get otaService() {
69
- if (!this.environment.has(DclOtaUpdateService)) {
70
- new DclOtaUpdateService(this.environment); // Adds itself to the environment
61
+ const service = this.node.act(agent => agent.get(DclBehavior).otaUpdateService);
62
+ if (MaybePromise.is(service)) {
63
+ throw new Error("OTA service not initialized");
71
64
  }
72
- return this.services.get(DclOtaUpdateService);
65
+ return service as DclOtaUpdateService;
73
66
  }
74
67
 
75
68
  get certificateService() {
76
- if (!this.environment.has(DclCertificateService)) {
77
- new DclCertificateService(this.environment, { fetchTestCertificates: this.#dclFetchTestCertificates });
69
+ const service = this.node.act(agent => agent.get(DclBehavior).certificateService);
70
+ if (MaybePromise.is(service)) {
71
+ throw new Error("Certificate service not initialized");
78
72
  }
79
- return this.services.get(DclCertificateService);
73
+ return service as DclCertificateService;
80
74
  }
81
75
 
82
76
  get vendorInfoService() {
83
- if (!this.environment.has(DclVendorInfoService)) {
84
- new DclVendorInfoService(this.environment); // Adds itself to the environment
77
+ const service = this.node.act(agent => agent.get(DclBehavior).vendorInfoService);
78
+ if (MaybePromise.is(service)) {
79
+ throw new Error("VendorInformation service not initialized");
85
80
  }
86
- return this.services.get(DclVendorInfoService);
81
+ return service as DclVendorInfoService;
87
82
  }
88
83
 
89
84
  async initialize(resetStorage: boolean) {
@@ -148,7 +143,6 @@ export class MatterNode {
148
143
 
149
144
  async close() {
150
145
  await this.commissioningController?.close();
151
- await this.#services?.close();
152
146
  this.#observers?.close();
153
147
  await this.#storageManager?.close();
154
148
  }
@@ -162,6 +156,10 @@ export class MatterNode {
162
156
  if (this.commissioningController !== undefined) {
163
157
  await this.commissioningController.start();
164
158
 
159
+ this.commissioningController.node.behaviors.require(DclBehavior, {
160
+ fetchTestCertificates: this.#dclFetchTestCertificates,
161
+ });
162
+
165
163
  if (await this.Store.has("ControllerFabricLabel")) {
166
164
  await this.commissioningController.updateFabricLabel(
167
165
  await this.Store.get<string>("ControllerFabricLabel", "matter.js Shell"),
@@ -69,6 +69,8 @@ export default function commands(theNode: MatterNode) {
69
69
  const { file } = argv;
70
70
  const fileArg = file;
71
71
 
72
+ await theNode.start();
73
+
72
74
  let updateInfo;
73
75
 
74
76
  if (fileArg.startsWith("file://")) {
@@ -183,6 +185,8 @@ export default function commands(theNode: MatterNode) {
183
185
 
184
186
  console.log(`Verifying OTA image: ${fileArg}\n`);
185
187
 
188
+ await theNode.start();
189
+
186
190
  let header;
187
191
  let source: string;
188
192
 
@@ -253,6 +257,8 @@ export default function commands(theNode: MatterNode) {
253
257
  async argv => {
254
258
  const { vid, pid, mode } = argv;
255
259
 
260
+ await theNode.start();
261
+
256
262
  // Validate filter options
257
263
  if (pid && !vid) {
258
264
  console.error("Error: --pid requires --vid to be specified");
@@ -318,6 +324,8 @@ export default function commands(theNode: MatterNode) {
318
324
  const { file } = argv;
319
325
  let filePath = file;
320
326
 
327
+ await theNode.start();
328
+
321
329
  if (filePath.startsWith("file://")) {
322
330
  filePath = filePath.slice(7); // Remove the "file://" prefix
323
331
  } else if (!filePath.startsWith("/")) {
@@ -402,6 +410,8 @@ export default function commands(theNode: MatterNode) {
402
410
  async argv => {
403
411
  const { keyname, vid, pid, mode } = argv;
404
412
 
413
+ await theNode.start();
414
+
405
415
  if (keyname) {
406
416
  // Delete by keyname
407
417
  await theNode.otaService.delete({
@@ -467,6 +477,8 @@ export default function commands(theNode: MatterNode) {
467
477
  const sourceArg = source;
468
478
  const targetArg = target;
469
479
 
480
+ await theNode.start();
481
+
470
482
  let keyname: string;
471
483
 
472
484
  if (pid && mode) {
@@ -567,6 +579,8 @@ export default function commands(theNode: MatterNode) {
567
579
  async argv => {
568
580
  const { vendorId: vendorIdStr, productId: productIdStr, softwareVersion, mode, local } = argv;
569
581
 
582
+ await theNode.start();
583
+
570
584
  const vendorId = parseHexId(vendorIdStr, "vendor");
571
585
  const productId = parseHexId(productIdStr, "product");
572
586
  const isProduction = mode === "prod" ? true : mode === "test" ? false : undefined;
@@ -20,7 +20,9 @@ export default function commands(theNode: MatterNode) {
20
20
  () => {},
21
21
  async () => {
22
22
  await theNode.start();
23
- const vendors = [...theNode.vendorInfoService.vendors.values()];
23
+ const vendorService = theNode.vendorInfoService;
24
+ await vendorService.construction;
25
+ const vendors = [...vendorService.vendors.values()];
24
26
 
25
27
  if (vendors.length === 0) {
26
28
  console.log("No vendor information found in storage.");
@@ -87,13 +89,13 @@ export default function commands(theNode: MatterNode) {
87
89
  () => {},
88
90
  async () => {
89
91
  await theNode.start();
92
+ const vendorService = theNode.vendorInfoService;
93
+ await vendorService.construction;
90
94
  console.log("Updating vendor information from DCL...");
91
95
 
92
96
  try {
93
- await theNode.vendorInfoService.update();
94
- console.log(
95
- `Successfully updated. ${theNode.vendorInfoService.vendors.size} vendor(s) now available.`,
96
- );
97
+ await vendorService.update();
98
+ console.log(`Successfully updated. ${vendorService.vendors.size} vendor(s) now available.`);
97
99
  } catch (error) {
98
100
  console.error(
99
101
  `Failed to update vendor information: ${error instanceof Error ? error.message : error}`,