@matter/nodejs-shell 0.17.0-alpha.0-20260507-059f7763b → 0.17.0-alpha.0-20260508-29ff5ae9e

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.
Files changed (49) hide show
  1. package/package.json +9 -9
  2. package/src/MatterNode.ts +13 -12
  3. package/src/shell/cmd_cert.ts +34 -0
  4. package/src/shell/cmd_commission.ts +24 -1
  5. package/src/shell/cmd_config.ts +140 -0
  6. package/src/shell/cmd_nodes.ts +1 -3
  7. package/dist/esm/MatterNode.js +0 -189
  8. package/dist/esm/MatterNode.js.map +0 -6
  9. package/dist/esm/app.js +0 -167
  10. package/dist/esm/app.js.map +0 -6
  11. package/dist/esm/package.json +0 -3
  12. package/dist/esm/shell/Shell.js +0 -201
  13. package/dist/esm/shell/Shell.js.map +0 -6
  14. package/dist/esm/shell/cmd_cert.js +0 -134
  15. package/dist/esm/shell/cmd_cert.js.map +0 -6
  16. package/dist/esm/shell/cmd_cluster-attributes.js +0 -295
  17. package/dist/esm/shell/cmd_cluster-attributes.js.map +0 -6
  18. package/dist/esm/shell/cmd_cluster-commands.js +0 -137
  19. package/dist/esm/shell/cmd_cluster-commands.js.map +0 -6
  20. package/dist/esm/shell/cmd_cluster-events.js +0 -77
  21. package/dist/esm/shell/cmd_cluster-events.js.map +0 -6
  22. package/dist/esm/shell/cmd_commission.js +0 -269
  23. package/dist/esm/shell/cmd_commission.js.map +0 -6
  24. package/dist/esm/shell/cmd_config.js +0 -462
  25. package/dist/esm/shell/cmd_config.js.map +0 -6
  26. package/dist/esm/shell/cmd_dcl.js +0 -178
  27. package/dist/esm/shell/cmd_dcl.js.map +0 -6
  28. package/dist/esm/shell/cmd_discover.js +0 -115
  29. package/dist/esm/shell/cmd_discover.js.map +0 -6
  30. package/dist/esm/shell/cmd_identify.js +0 -46
  31. package/dist/esm/shell/cmd_identify.js.map +0 -6
  32. package/dist/esm/shell/cmd_nodes.js +0 -688
  33. package/dist/esm/shell/cmd_nodes.js.map +0 -6
  34. package/dist/esm/shell/cmd_ota.js +0 -493
  35. package/dist/esm/shell/cmd_ota.js.map +0 -6
  36. package/dist/esm/shell/cmd_session.js +0 -23
  37. package/dist/esm/shell/cmd_session.js.map +0 -6
  38. package/dist/esm/shell/cmd_subscribe.js +0 -39
  39. package/dist/esm/shell/cmd_subscribe.js.map +0 -6
  40. package/dist/esm/shell/cmd_tlv.js +0 -167
  41. package/dist/esm/shell/cmd_tlv.js.map +0 -6
  42. package/dist/esm/shell/cmd_vendor.js +0 -135
  43. package/dist/esm/shell/cmd_vendor.js.map +0 -6
  44. package/dist/esm/util/CommandlineParser.js +0 -87
  45. package/dist/esm/util/CommandlineParser.js.map +0 -6
  46. package/dist/esm/util/Json.js +0 -45
  47. package/dist/esm/util/Json.js.map +0 -6
  48. package/dist/esm/web_plumbing.js +0 -140
  49. package/dist/esm/web_plumbing.js.map +0 -6
@@ -1,295 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Diagnostic } from "@matter/general";
7
- import { Matter } from "@matter/model";
8
- import { AttributeId, ClusterId, EndpointNumber, ValidationError } from "@matter/types";
9
- import { SupportedAttributeClient } from "@project-chip/matter.js/cluster";
10
- import { convertJsonDataWithModel } from "../util/Json.js";
11
- function generateAllAttributeHandlersForCluster(yargs, theNode) {
12
- Matter.clusters.forEach((cluster) => {
13
- yargs = generateClusterAttributeHandlers(yargs, cluster, theNode);
14
- });
15
- yargs = yargs.command(
16
- "by-id <cluster-id> read <attribute-id> <node-id> <endpoint-id>",
17
- `Read attributes by id`,
18
- (yargs2) => yargs2.positional("cluster-id", {
19
- describe: "cluster id to read from",
20
- type: "number",
21
- demandOption: true
22
- }).positional("attribute-id", {
23
- describe: "attribute id to read, use * to read all attributes of the given cluster",
24
- type: "string",
25
- demandOption: true
26
- }).positional("node-id", {
27
- describe: "node id to read",
28
- type: "string",
29
- demandOption: true
30
- }).positional("endpoint-id", {
31
- describe: "endpoint id to read",
32
- type: "number",
33
- demandOption: true
34
- }),
35
- async (argv) => {
36
- const { nodeId, endpointId, clusterId, attributeId: rawAttributeId } = argv;
37
- const attributeId = rawAttributeId === "*" ? void 0 : parseInt(rawAttributeId);
38
- const node = (await theNode.connectAndGetNodes(nodeId))[0];
39
- try {
40
- const interactionClient = await node.getInteractionClient();
41
- const result = await interactionClient.getMultipleAttributes({
42
- attributes: [
43
- {
44
- endpointId: EndpointNumber(endpointId),
45
- clusterId: ClusterId(clusterId),
46
- attributeId: attributeId !== void 0 ? AttributeId(attributeId) : void 0
47
- }
48
- ]
49
- });
50
- console.log(
51
- `Attribute values for cluster ${node.nodeId.toString()}/${endpointId}/${clusterId}/${attributeId}:`
52
- );
53
- for (const {
54
- path: { attributeId: attributeId2, attributeName },
55
- value
56
- } of result) {
57
- console.log(
58
- ` ${Diagnostic.hex(attributeId2)}${attributeName !== void 0 ? ` (${attributeName})` : ""}: ${Diagnostic.json(value)}`
59
- );
60
- }
61
- } catch (error) {
62
- console.log(
63
- `ERROR: Could not get attribute ${node.nodeId.toString()}/${endpointId}/${clusterId}/${attributeId}: ${error}`
64
- );
65
- }
66
- }
67
- );
68
- return yargs;
69
- }
70
- function generateClusterAttributeHandlers(yargs, cluster, theNode) {
71
- const clusterId = cluster.id;
72
- if (clusterId === void 0) {
73
- return yargs;
74
- }
75
- yargs = yargs.command(
76
- [cluster.name.toLowerCase(), `0x${clusterId.toString(16)}`],
77
- `Read/Write ${cluster.name} attributes`,
78
- (yargs2) => {
79
- yargs2 = yargs2.command(
80
- "read",
81
- `Reads attributes of ${cluster.name}`,
82
- (yargs3) => {
83
- yargs3 = yargs3.command(
84
- ["* <node-id> <endpoint-id>", "all"],
85
- `Read all attributes of ${cluster.name}`,
86
- (yargs4) => {
87
- return yargs4.positional("node-id", {
88
- describe: "node id to read",
89
- type: "string",
90
- demandOption: true
91
- }).positional("endpoint-id", {
92
- describe: "endpoint id to read",
93
- type: "number",
94
- demandOption: true
95
- }).options({
96
- remote: {
97
- describe: "request value always remote. Also ignores information about attribute existence on device",
98
- default: false,
99
- type: "boolean"
100
- }
101
- });
102
- },
103
- async (argv) => {
104
- const clusterId2 = cluster.id;
105
- const { nodeId, endpointId, remote } = argv;
106
- const requestRemote = remote ? true : void 0;
107
- const node = (await theNode.connectAndGetNodes(nodeId))[0];
108
- const clusterClient = node.getDeviceById(endpointId)?.getClusterClientById(ClusterId(clusterId2));
109
- if (clusterClient === void 0) {
110
- console.log(
111
- `ERROR: Cluster ${node.nodeId.toString()}/${endpointId}/${clusterId2} not found.`
112
- );
113
- return;
114
- }
115
- console.log(
116
- `Attribute values for cluster ${cluster.name} (${node.nodeId.toString()}/${endpointId}/${clusterId2}):`
117
- );
118
- for (const attribute of cluster.attributes) {
119
- const attributeName = attribute.propertyName;
120
- const attributeClient = clusterClient.attributes[attributeName];
121
- if (!remote && !(attributeClient instanceof SupportedAttributeClient)) {
122
- continue;
123
- }
124
- console.log(
125
- ` ${attributeName} (${attribute.id}): ${Diagnostic.json(await attributeClient.get(requestRemote))}`
126
- );
127
- }
128
- }
129
- );
130
- cluster.attributes.forEach((attribute) => {
131
- yargs3 = generateAttributeReadHandler(yargs3, clusterId, cluster.name, attribute, theNode);
132
- });
133
- return yargs3;
134
- },
135
- async (argv) => {
136
- argv.unhandled = true;
137
- }
138
- );
139
- if (cluster.attributes.some((attribute) => attribute.writable)) {
140
- yargs2 = yargs2.command(
141
- "write",
142
- `Writes attributes of ${cluster.name}`,
143
- (yargs3) => {
144
- cluster.attributes.forEach((attribute) => {
145
- if (!attribute.writable) {
146
- return;
147
- }
148
- yargs3 = generateAttributeWriteHandler(yargs3, clusterId, cluster.name, attribute, theNode);
149
- });
150
- return yargs3;
151
- },
152
- async (argv) => {
153
- argv.unhandled = true;
154
- }
155
- );
156
- }
157
- return yargs2;
158
- },
159
- async (argv) => {
160
- argv.unhandled = true;
161
- }
162
- );
163
- return yargs;
164
- }
165
- function generateAttributeReadHandler(yargs, clusterId, clusterName, attribute, theNode) {
166
- const attributeName = attribute.propertyName;
167
- return yargs.command(
168
- [`${attribute.name.toLowerCase()} <node-id> <endpoint-id>`, `0x${attribute.id.toString(16)}`],
169
- `Read ${clusterName}.${attribute.name} attribute`,
170
- (yargs2) => yargs2.positional("node-id", {
171
- describe: "node id to read",
172
- type: "string",
173
- demandOption: true
174
- }).positional("endpoint-id", {
175
- describe: "endpoint id to read",
176
- type: "number",
177
- demandOption: true
178
- }).options({
179
- remote: {
180
- describe: "request value always remote. Also ignores information about attribute existence on device",
181
- default: false,
182
- type: "boolean"
183
- }
184
- }),
185
- async (argv) => {
186
- const { nodeId, endpointId, remote } = argv;
187
- const requestRemote = remote ? true : void 0;
188
- const node = (await theNode.connectAndGetNodes(nodeId))[0];
189
- const clusterClient = node.getDeviceById(endpointId)?.getClusterClientById(ClusterId(clusterId));
190
- if (clusterClient === void 0) {
191
- console.log(`ERROR: Cluster ${node.nodeId.toString()}/${endpointId}/${clusterId} not found.`);
192
- return;
193
- }
194
- const attributeClient = clusterClient.attributes[attributeName];
195
- if (!remote && !(attributeClient instanceof SupportedAttributeClient)) {
196
- console.log(
197
- `ERROR: Attribute ${node.nodeId.toString()}/${endpointId}/${clusterId}/${attribute.id} not supported by the device.`
198
- );
199
- return;
200
- }
201
- try {
202
- console.log(
203
- `Attribute value for ${attributeName} ${node.nodeId.toString()}/${endpointId}/${clusterId}/${attribute.id}: ${Diagnostic.json(await attributeClient.get(requestRemote))}`
204
- );
205
- } catch (error) {
206
- console.log(`ERROR: Could not get attribute ${attribute.name}: ${error}`);
207
- }
208
- }
209
- );
210
- }
211
- function generateAttributeWriteHandler(yargs, clusterId, clusterName, attribute, theNode) {
212
- const attributeName = attribute.propertyName;
213
- const typeHint = `${attribute.type}${attribute.definingModel === void 0 ? "" : " as JSON string"}`;
214
- return yargs.command(
215
- [`${attribute.name.toLowerCase()} <value> <nodeId> <endpointId>`, `0x${attribute.id.toString(16)}`],
216
- `Write ${clusterName}.${attribute.name} attribute`,
217
- (yargs2) => yargs2.positional("value", {
218
- describe: `value to write (${typeHint})`,
219
- type: "string",
220
- demandOption: true
221
- }).positional("node-id", {
222
- describe: "node id to write t.",
223
- type: "string",
224
- demandOption: true
225
- }).positional("endpoint-id", {
226
- describe: "endpoint id to write to",
227
- type: "number",
228
- demandOption: true
229
- }).options({
230
- force: {
231
- describe: "ignore verification if attribute exists on device",
232
- default: false,
233
- type: "boolean"
234
- }
235
- }),
236
- async (argv) => {
237
- const { nodeId, endpointId, value, force } = argv;
238
- let parsedValue;
239
- try {
240
- parsedValue = JSON.parse(value);
241
- } catch (error) {
242
- try {
243
- parsedValue = JSON.parse(`"${value}"`);
244
- } catch (innerError) {
245
- console.log(`ERROR: Could not parse value ${value} as JSON.`);
246
- return;
247
- }
248
- }
249
- const node = (await theNode.connectAndGetNodes(nodeId))[0];
250
- const clusterClient = node.getDeviceById(endpointId)?.getClusterClientById(ClusterId(clusterId));
251
- if (clusterClient === void 0) {
252
- console.log(`ERROR: Cluster ${node.nodeId.toString()}/${endpointId}/${clusterId} not found.`);
253
- return;
254
- }
255
- const attributeClient = clusterClient.attributes[attributeName];
256
- if (!force && !(attributeClient instanceof SupportedAttributeClient)) {
257
- console.log(
258
- `ERROR: Attribute ${node.nodeId.toString()}/${endpointId}/${clusterId}/${attribute.id} not supported by the device.`
259
- );
260
- return;
261
- }
262
- try {
263
- parsedValue = convertJsonDataWithModel(attribute, parsedValue);
264
- await attributeClient.set(parsedValue);
265
- console.log(
266
- `Attribute ${attributeName} ${node.nodeId.toString()}/${endpointId}/${clusterId}/${attribute.id} set to ${Diagnostic.json(value)}`
267
- );
268
- } catch (error) {
269
- if (error instanceof ValidationError) {
270
- console.log(
271
- `ERROR: Could not validate data for attribute ${attribute.name} to ${Diagnostic.json(parsedValue)}: ${error}${error.fieldName !== void 0 ? ` in field ${error.fieldName}` : ""}`
272
- );
273
- } else {
274
- console.log(
275
- `ERROR: Could not set attribute ${attribute.name} to ${Diagnostic.json(parsedValue)}: ${error}`
276
- );
277
- }
278
- }
279
- }
280
- );
281
- }
282
- function cmdAttributes(theNode) {
283
- return {
284
- command: ["attributes", "a"],
285
- describe: "Read and Write attributes",
286
- builder: (yargs) => generateAllAttributeHandlersForCluster(yargs, theNode),
287
- handler: async (argv) => {
288
- argv.unhandled = true;
289
- }
290
- };
291
- }
292
- export {
293
- cmdAttributes as default
294
- };
295
- //# sourceMappingURL=cmd_cluster-attributes.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/shell/cmd_cluster-attributes.ts"],
4
- "mappings": "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",
5
- "names": ["yargs", "attributeId", "clusterId"]
6
- }
@@ -1,137 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Diagnostic } from "@matter/general";
7
- import { Matter } from "@matter/model";
8
- import { ClusterId, ValidationError } from "@matter/types";
9
- import { convertJsonDataWithModel } from "../util/Json.js";
10
- function generateAllCommandHandlersForCluster(yargs, theNode) {
11
- Matter.clusters.forEach((cluster) => {
12
- yargs = generateClusterCommandHandlers(yargs, cluster, theNode);
13
- });
14
- return yargs;
15
- }
16
- function generateClusterCommandHandlers(yargs, cluster, theNode) {
17
- const clusterId = cluster.id;
18
- if (clusterId === void 0) {
19
- return yargs;
20
- }
21
- yargs = yargs.command(
22
- [cluster.name.toLowerCase(), `0x${clusterId.toString(16)}`],
23
- `Invoke ${cluster.name} commands`,
24
- (yargs2) => {
25
- cluster.commands.forEach((command) => {
26
- yargs2 = generateCommandHandler(yargs2, clusterId, cluster.name, command, theNode);
27
- });
28
- return yargs2;
29
- },
30
- async (argv) => {
31
- argv.unhandled = true;
32
- }
33
- );
34
- return yargs;
35
- }
36
- function generateCommandHandler(yargs, clusterId, clusterName, command, theNode) {
37
- if (command.definingModel !== void 0) {
38
- return yargs.command(
39
- [`${command.name.toLowerCase()} <value> <nodeId> <endpointId>`, `0x${command.id.toString(16)}`],
40
- `Invoke ${clusterName}.${command.name} command`,
41
- (yargs2) => yargs2.positional("value", {
42
- describe: "value to write as JSON value",
43
- type: "string",
44
- demandOption: true
45
- }).positional("node-id", {
46
- describe: "node id to write t.",
47
- type: "string",
48
- demandOption: true
49
- }).positional("endpoint-id", {
50
- describe: "endpoint id to write to",
51
- type: "number",
52
- demandOption: true
53
- }),
54
- async (argv) => {
55
- const { nodeId, endpointId, value } = argv;
56
- let parsedValue;
57
- try {
58
- parsedValue = JSON.parse(value);
59
- } catch (error) {
60
- try {
61
- parsedValue = JSON.parse(`"${value}"`);
62
- } catch (innerError) {
63
- console.log(`ERROR: Could not parse value ${value} as JSON.`);
64
- return;
65
- }
66
- }
67
- await executeCommand(theNode, nodeId, endpointId, clusterId, command, parsedValue);
68
- }
69
- );
70
- }
71
- return yargs.command(
72
- [`${command.name.toLowerCase()} <nodeId> <endpointId>`, `0x${command.id.toString(16)}`],
73
- `Invoke ${clusterName}.${command.name} command`,
74
- (yargs2) => yargs2.positional("node-id", {
75
- describe: "node id to write t.",
76
- type: "string",
77
- demandOption: true
78
- }).positional("endpoint-id", {
79
- describe: "endpoint id to write to",
80
- type: "number",
81
- demandOption: true
82
- }),
83
- async (argv) => {
84
- const { nodeId, endpointId } = argv;
85
- await executeCommand(theNode, nodeId, endpointId, clusterId, command);
86
- }
87
- );
88
- }
89
- async function executeCommand(theNode, nodeId, endpointId, clusterId, command, requestData) {
90
- const commandName = command.propertyName;
91
- const node = (await theNode.connectAndGetNodes(nodeId))[0];
92
- const clusterClient = node.getDeviceById(endpointId)?.getClusterClientById(ClusterId(clusterId));
93
- if (clusterClient === void 0) {
94
- console.log(`ERROR: Cluster ${node.nodeId.toString()}/${endpointId}/${clusterId} not found.`);
95
- return;
96
- }
97
- if (clusterClient.commands[commandName] === void 0) {
98
- console.log(`ERROR: Command ${node.nodeId.toString()}/${endpointId}/${clusterId}/${command.id} not supported.`);
99
- return;
100
- }
101
- try {
102
- if (requestData !== void 0) {
103
- requestData = convertJsonDataWithModel(command, requestData);
104
- }
105
- const result = await clusterClient.commands[commandName](requestData);
106
- console.log(
107
- `Command ${command.name} ${node.nodeId.toString()}/${endpointId}/${clusterId}/${command.id} invoked ${requestData ? `with ${Diagnostic.json(requestData)}` : ""}`
108
- );
109
- if (result !== void 0) {
110
- console.log(`Result: ${Diagnostic.json(result)}`);
111
- }
112
- } catch (error) {
113
- if (error instanceof ValidationError) {
114
- console.log(
115
- `ERROR: Could not validate data for command ${command.name} with ${Diagnostic.json(requestData)}: ${error}${error.fieldName !== void 0 ? ` in field ${error.fieldName}` : ""}`
116
- );
117
- } else {
118
- console.log(
119
- `ERROR: Could not invoke command ${command.name} ${requestData ? `with ${Diagnostic.json(requestData)}` : ""}: ${error}`
120
- );
121
- }
122
- }
123
- }
124
- function cmdCommands(theNode) {
125
- return {
126
- command: ["commands", "c"],
127
- describe: "Invoke commands",
128
- builder: (yargs) => generateAllCommandHandlersForCluster(yargs, theNode),
129
- handler: async (argv) => {
130
- argv.unhandled = true;
131
- }
132
- };
133
- }
134
- export {
135
- cmdCommands as default
136
- };
137
- //# sourceMappingURL=cmd_cluster-commands.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/shell/cmd_cluster-commands.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAqC,cAAc;AACnD,SAAS,WAAW,uBAAuB;AAG3C,SAAS,gCAAgC;AAEzC,SAAS,qCAAqC,OAAa,SAAqB;AAC5E,SAAO,SAAS,QAAQ,aAAW;AAC/B,YAAQ,+BAA+B,OAAO,SAAS,OAAO;AAAA,EAClE,CAAC;AACD,SAAO;AACX;AAEA,SAAS,+BAA+B,OAAa,SAAuB,SAAqB;AAC7F,QAAM,YAAY,QAAQ;AAC1B,MAAI,cAAc,QAAW;AACzB,WAAO;AAAA,EACX;AAEA,UAAQ,MAAM;AAAA,IACV,CAAC,QAAQ,KAAK,YAAY,GAAG,KAAK,UAAU,SAAS,EAAE,CAAC,EAAE;AAAA,IAC1D,UAAU,QAAQ,IAAI;AAAA,IACtB,CAAAA,WAAS;AACL,cAAQ,SAAS,QAAQ,aAAW;AAChC,QAAAA,SAAQ,uBAAuBA,QAAO,WAAW,QAAQ,MAAM,SAAS,OAAO;AAAA,MACnF,CAAC;AACD,aAAOA;AAAA,IACX;AAAA,IACA,OAAO,SAAc;AACjB,WAAK,YAAY;AAAA,IACrB;AAAA,EACJ;AAEA,SAAO;AACX;AAEA,SAAS,uBACL,OACA,WACA,aACA,SACA,SACF;AAIE,MAAI,QAAQ,kBAAkB,QAAW;AAErC,WAAO,MAAM;AAAA,MACT,CAAC,GAAG,QAAQ,KAAK,YAAY,CAAC,kCAAkC,KAAK,QAAQ,GAAG,SAAS,EAAE,CAAC,EAAE;AAAA,MAC9F,UAAU,WAAW,IAAI,QAAQ,IAAI;AAAA,MACrC,CAAAA,WACIA,OACK,WAAW,SAAS;AAAA,QACjB,UAAU;AAAA,QACV,MAAM;AAAA,QACN,cAAc;AAAA,MAClB,CAAC,EACA,WAAW,WAAW;AAAA,QACnB,UAAU;AAAA,QACV,MAAM;AAAA,QACN,cAAc;AAAA,MAClB,CAAC,EACA,WAAW,eAAe;AAAA,QACvB,UAAU;AAAA,QACV,MAAM;AAAA,QACN,cAAc;AAAA,MAClB,CAAC;AAAA,MACT,OAAM,SAAQ;AACV,cAAM,EAAE,QAAQ,YAAY,MAAM,IAAI;AAEtC,YAAI;AACJ,YAAI;AACA,wBAAc,KAAK,MAAM,KAAK;AAAA,QAClC,SAAS,OAAO;AACZ,cAAI;AACA,0BAAc,KAAK,MAAM,IAAI,KAAK,GAAG;AAAA,UACzC,SAAS,YAAY;AACjB,oBAAQ,IAAI,gCAAgC,KAAK,WAAW;AAC5D;AAAA,UACJ;AAAA,QACJ;AAEA,cAAM,eAAe,SAAS,QAAQ,YAAY,WAAW,SAAS,WAAW;AAAA,MACrF;AAAA,IACJ;AAAA,EACJ;AAGA,SAAO,MAAM;AAAA,IACT,CAAC,GAAG,QAAQ,KAAK,YAAY,CAAC,0BAA0B,KAAK,QAAQ,GAAG,SAAS,EAAE,CAAC,EAAE;AAAA,IACtF,UAAU,WAAW,IAAI,QAAQ,IAAI;AAAA,IACrC,CAAAA,WACIA,OACK,WAAW,WAAW;AAAA,MACnB,UAAU;AAAA,MACV,MAAM;AAAA,MACN,cAAc;AAAA,IAClB,CAAC,EACA,WAAW,eAAe;AAAA,MACvB,UAAU;AAAA,MACV,MAAM;AAAA,MACN,cAAc;AAAA,IAClB,CAAC;AAAA,IACT,OAAM,SAAQ;AACV,YAAM,EAAE,QAAQ,WAAW,IAAI;AAC/B,YAAM,eAAe,SAAS,QAAQ,YAAY,WAAW,OAAO;AAAA,IACxE;AAAA,EACJ;AACJ;AAEA,eAAe,eACX,SACA,QACA,YACA,WACA,SACA,aACF;AACE,QAAM,cAAc,QAAQ;AAE5B,QAAM,QAAQ,MAAM,QAAQ,mBAAmB,MAAM,GAAG,CAAC;AAEzD,QAAM,gBAAgB,KAAK,cAAc,UAAU,GAAG,qBAAqB,UAAU,SAAS,CAAC;AAC/F,MAAI,kBAAkB,QAAW;AAC7B,YAAQ,IAAI,kBAAkB,KAAK,OAAO,SAAS,CAAC,IAAI,UAAU,IAAI,SAAS,aAAa;AAC5F;AAAA,EACJ;AACA,MAAI,cAAc,SAAS,WAAW,MAAM,QAAW;AACnD,YAAQ,IAAI,kBAAkB,KAAK,OAAO,SAAS,CAAC,IAAI,UAAU,IAAI,SAAS,IAAI,QAAQ,EAAE,iBAAiB;AAC9G;AAAA,EACJ;AACA,MAAI;AACA,QAAI,gBAAgB,QAAW;AAC3B,oBAAc,yBAAyB,SAAS,WAAW;AAAA,IAC/D;AAEA,UAAM,SAAS,MAAM,cAAc,SAAS,WAAW,EAAE,WAAW;AACpE,YAAQ;AAAA,MACJ,WAAW,QAAQ,IAAI,IAAI,KAAK,OAAO,SAAS,CAAC,IAAI,UAAU,IAAI,SAAS,IAAI,QAAQ,EAAE,YAAY,cAAc,QAAQ,WAAW,KAAK,WAAW,CAAC,KAAK,EAAE;AAAA,IACnK;AACA,QAAI,WAAW,QAAW;AACtB,cAAQ,IAAI,WAAW,WAAW,KAAK,MAAM,CAAC,EAAE;AAAA,IACpD;AAAA,EACJ,SAAS,OAAO;AACZ,QAAI,iBAAiB,iBAAiB;AAClC,cAAQ;AAAA,QACJ,8CAA8C,QAAQ,IAAI,SAAS,WAAW,KAAK,WAAW,CAAC,KAAK,KAAK,GAAG,MAAM,cAAc,SAAY,aAAa,MAAM,SAAS,KAAK,EAAE;AAAA,MACnL;AAAA,IACJ,OAAO;AACH,cAAQ;AAAA,QACJ,mCAAmC,QAAQ,IAAI,IAAI,cAAc,QAAQ,WAAW,KAAK,WAAW,CAAC,KAAK,EAAE,KAAK,KAAK;AAAA,MAC1H;AAAA,IACJ;AAAA,EACJ;AACJ;AAEe,SAAR,YAA6B,SAAqB;AACrD,SAAO;AAAA,IACH,SAAS,CAAC,YAAY,GAAG;AAAA,IACzB,UAAU;AAAA,IACV,SAAS,CAAC,UAAgB,qCAAqC,OAAO,OAAO;AAAA,IAC7E,SAAS,OAAO,SAAc;AAC1B,WAAK,YAAY;AAAA,IACrB;AAAA,EACJ;AACJ;",
5
- "names": ["yargs"]
6
- }
@@ -1,77 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Diagnostic } from "@matter/general";
7
- import { Matter } from "@matter/model";
8
- import { ClusterId } from "@matter/types";
9
- function generateAllEventHandlersForCluster(yargs, theNode) {
10
- Matter.clusters.forEach((cluster) => {
11
- yargs = generateClusterEventHandlers(yargs, cluster, theNode);
12
- });
13
- return yargs;
14
- }
15
- function generateClusterEventHandlers(yargs, cluster, theNode) {
16
- const clusterId = cluster.id;
17
- if (clusterId === void 0) {
18
- return yargs;
19
- }
20
- yargs = yargs.command(
21
- [cluster.name.toLowerCase(), `0x${clusterId.toString(16)}`],
22
- `Read ${cluster.name} events`,
23
- (yargs2) => {
24
- cluster.events.forEach((event) => {
25
- yargs2 = generateEventHandler(yargs2, clusterId, cluster.name, event, theNode);
26
- });
27
- return yargs2;
28
- },
29
- async (argv) => {
30
- argv.unhandled = true;
31
- }
32
- );
33
- return yargs;
34
- }
35
- function generateEventHandler(yargs, clusterId, clusterName, event, theNode) {
36
- const eventName = event.propertyName;
37
- return yargs.command(
38
- [`${event.name.toLowerCase()} <node-id> <endpoint-id>`, `0x${event.id.toString(16)}`],
39
- `Read ${clusterName}.${event.name} event`,
40
- (yargs2) => yargs2.positional("node-id", {
41
- describe: "node id to read",
42
- type: "string",
43
- demandOption: true
44
- }).positional("endpoint-id", {
45
- describe: "endpoint id to read",
46
- type: "number",
47
- demandOption: true
48
- }),
49
- async (argv) => {
50
- const { nodeId, endpointId } = argv;
51
- const node = (await theNode.connectAndGetNodes(nodeId))[0];
52
- const clusterClient = node.getDeviceById(endpointId)?.getClusterClientById(ClusterId(clusterId));
53
- if (clusterClient === void 0) {
54
- console.log(`ERROR: Cluster ${node.nodeId.toString()}/${endpointId}/${clusterId} not found.`);
55
- return;
56
- }
57
- const eventClient = clusterClient.events[eventName];
58
- console.log(
59
- `Event value for ${eventName} ${node.nodeId.toString()}/${endpointId}/${clusterId}/${event.id}: ${Diagnostic.json(await eventClient.get())}`
60
- );
61
- }
62
- );
63
- }
64
- function cmdEvents(theNode) {
65
- return {
66
- command: ["events", "e"],
67
- describe: "Read events",
68
- builder: (yargs) => generateAllEventHandlersForCluster(yargs, theNode),
69
- handler: async (argv) => {
70
- argv.unhandled = true;
71
- }
72
- };
73
- }
74
- export {
75
- cmdEvents as default
76
- };
77
- //# sourceMappingURL=cmd_cluster-events.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/shell/cmd_cluster-events.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAmC,cAAc;AACjD,SAAS,iBAAiB;AAI1B,SAAS,mCAAmC,OAAa,SAAqB;AAC1E,SAAO,SAAS,QAAQ,aAAW;AAC/B,YAAQ,6BAA6B,OAAO,SAAS,OAAO;AAAA,EAChE,CAAC;AACD,SAAO;AACX;AAEA,SAAS,6BAA6B,OAAa,SAAuB,SAAqB;AAC3F,QAAM,YAAY,QAAQ;AAC1B,MAAI,cAAc,QAAW;AACzB,WAAO;AAAA,EACX;AAEA,UAAQ,MAAM;AAAA,IACV,CAAC,QAAQ,KAAK,YAAY,GAAG,KAAK,UAAU,SAAS,EAAE,CAAC,EAAE;AAAA,IAC1D,QAAQ,QAAQ,IAAI;AAAA,IACpB,CAAAA,WAAS;AACL,cAAQ,OAAO,QAAQ,WAAS;AAC5B,QAAAA,SAAQ,qBAAqBA,QAAO,WAAW,QAAQ,MAAM,OAAO,OAAO;AAAA,MAC/E,CAAC;AACD,aAAOA;AAAA,IACX;AAAA,IACA,OAAO,SAAc;AACjB,WAAK,YAAY;AAAA,IACrB;AAAA,EACJ;AAEA,SAAO;AACX;AAEA,SAAS,qBACL,OACA,WACA,aACA,OACA,SACF;AAEE,QAAM,YAAY,MAAM;AACxB,SAAO,MAAM;AAAA,IACT,CAAC,GAAG,MAAM,KAAK,YAAY,CAAC,4BAA4B,KAAK,MAAM,GAAG,SAAS,EAAE,CAAC,EAAE;AAAA,IACpF,QAAQ,WAAW,IAAI,MAAM,IAAI;AAAA,IACjC,CAAAA,WACIA,OACK,WAAW,WAAW;AAAA,MACnB,UAAU;AAAA,MACV,MAAM;AAAA,MACN,cAAc;AAAA,IAClB,CAAC,EACA,WAAW,eAAe;AAAA,MACvB,UAAU;AAAA,MACV,MAAM;AAAA,MACN,cAAc;AAAA,IAClB,CAAC;AAAA,IACT,OAAM,SAAQ;AACV,YAAM,EAAE,QAAQ,WAAW,IAAI;AAC/B,YAAM,QAAQ,MAAM,QAAQ,mBAAmB,MAAM,GAAG,CAAC;AAEzD,YAAM,gBAAgB,KAAK,cAAc,UAAU,GAAG,qBAAqB,UAAU,SAAS,CAAC;AAC/F,UAAI,kBAAkB,QAAW;AAC7B,gBAAQ,IAAI,kBAAkB,KAAK,OAAO,SAAS,CAAC,IAAI,UAAU,IAAI,SAAS,aAAa;AAC5F;AAAA,MACJ;AACA,YAAM,cAAc,cAAc,OAAO,SAAS;AAClD,cAAQ;AAAA,QACJ,mBAAmB,SAAS,IAAI,KAAK,OAAO,SAAS,CAAC,IAAI,UAAU,IAAI,SAAS,IAAI,MAAM,EAAE,KAAK,WAAW,KAAK,MAAM,YAAY,IAAI,CAAC,CAAC;AAAA,MAC9I;AAAA,IACJ;AAAA,EACJ;AACJ;AAEe,SAAR,UAA2B,SAAqB;AACnD,SAAO;AAAA,IACH,SAAS,CAAC,UAAU,GAAG;AAAA,IACvB,UAAU;AAAA,IACV,SAAS,CAAC,UAAgB,mCAAmC,OAAO,OAAO;AAAA,IAC3E,SAAS,OAAO,SAAc;AAC1B,WAAK,YAAY;AAAA,IACrB;AAAA,EACJ;AACJ;",
5
- "names": ["yargs"]
6
- }