@matter/nodejs-shell 0.17.9 → 0.18.0-alpha.0-20260807-335c3291b

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 (52) hide show
  1. package/README.md +11 -1
  2. package/dist/esm/MatterNode.js +237 -134
  3. package/dist/esm/MatterNode.js.map +1 -1
  4. package/dist/esm/app.js +13 -7
  5. package/dist/esm/app.js.map +1 -1
  6. package/dist/esm/shell/cmd_cluster-attributes.js +64 -45
  7. package/dist/esm/shell/cmd_cluster-attributes.js.map +2 -2
  8. package/dist/esm/shell/cmd_cluster-commands.js +11 -9
  9. package/dist/esm/shell/cmd_cluster-commands.js.map +1 -1
  10. package/dist/esm/shell/cmd_cluster-events.js +36 -9
  11. package/dist/esm/shell/cmd_cluster-events.js.map +1 -1
  12. package/dist/esm/shell/cmd_commission.js +119 -93
  13. package/dist/esm/shell/cmd_commission.js.map +1 -1
  14. package/dist/esm/shell/cmd_discover.js +23 -21
  15. package/dist/esm/shell/cmd_discover.js.map +1 -1
  16. package/dist/esm/shell/cmd_icd.js +46 -30
  17. package/dist/esm/shell/cmd_icd.js.map +1 -1
  18. package/dist/esm/shell/cmd_identify.js +11 -7
  19. package/dist/esm/shell/cmd_identify.js.map +1 -1
  20. package/dist/esm/shell/cmd_nodes.js +189 -168
  21. package/dist/esm/shell/cmd_nodes.js.map +1 -1
  22. package/dist/esm/shell/cmd_session.js +3 -4
  23. package/dist/esm/shell/cmd_session.js.map +1 -1
  24. package/dist/esm/shell/cmd_subscribe.js +26 -12
  25. package/dist/esm/shell/cmd_subscribe.js.map +1 -1
  26. package/dist/esm/util/ClusterEndpoint.js +61 -0
  27. package/dist/esm/util/ClusterEndpoint.js.map +6 -0
  28. package/dist/esm/util/awaitSeeded.js +31 -0
  29. package/dist/esm/util/awaitSeeded.js.map +6 -0
  30. package/dist/esm/util/diagnosticLogging.js +99 -0
  31. package/dist/esm/util/diagnosticLogging.js.map +6 -0
  32. package/dist/esm/util/legacyStorageMigration.js +188 -0
  33. package/dist/esm/util/legacyStorageMigration.js.map +6 -0
  34. package/package.json +10 -11
  35. package/src/MatterNode.ts +298 -159
  36. package/src/app.ts +17 -9
  37. package/src/shell/cmd_cluster-attributes.ts +77 -53
  38. package/src/shell/cmd_cluster-commands.ts +12 -13
  39. package/src/shell/cmd_cluster-events.ts +38 -11
  40. package/src/shell/cmd_commission.ts +136 -113
  41. package/src/shell/cmd_discover.ts +36 -22
  42. package/src/shell/cmd_icd.ts +52 -32
  43. package/src/shell/cmd_identify.ts +11 -7
  44. package/src/shell/cmd_nodes.ts +226 -199
  45. package/src/shell/cmd_session.ts +3 -5
  46. package/src/shell/cmd_subscribe.ts +37 -14
  47. package/src/shell/webassets/index.html +1 -1
  48. package/src/tsconfig.json +0 -3
  49. package/src/util/ClusterEndpoint.ts +107 -0
  50. package/src/util/awaitSeeded.ts +43 -0
  51. package/src/util/diagnosticLogging.ts +117 -0
  52. package/src/util/legacyStorageMigration.ts +275 -0
@@ -3,10 +3,14 @@
3
3
  * Copyright 2022-2026 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { Diagnostic } from "@matter/general";
6
+ import { Diagnostic, ImplementationError } from "@matter/general";
7
7
  import { Matter } from "@matter/model";
8
- import { AttributeId, ClusterId, EndpointNumber, ValidationError } from "@matter/types";
9
- import { SupportedAttributeClient } from "@project-chip/matter.js/cluster";
8
+ import { AttributeId, ClusterId, ClusterLookup, EndpointNumber, ValidationError } from "@matter/types";
9
+ import {
10
+ elementKnownUnsupported,
11
+ readAttributesRemote,
12
+ resolveClusterEndpoint
13
+ } from "../util/ClusterEndpoint.js";
10
14
  import { convertJsonDataWithModel } from "../util/Json.js";
11
15
  function generateAllAttributeHandlersForCluster(yargs, theNode) {
12
16
  Matter.clusters.forEach((cluster) => {
@@ -43,31 +47,32 @@ function generateAllAttributeHandlersForCluster(yargs, theNode) {
43
47
  const attributeId = rawAttributeId === "*" ? void 0 : parseInt(rawAttributeId);
44
48
  const node = (await theNode.connectAndGetNodes(nodeId))[0];
45
49
  try {
46
- const interactionClient = await node.getInteractionClient();
47
- const result = await interactionClient.getMultipleAttributes({
48
- attributes: [
50
+ const values = await readAttributesRemote(
51
+ node,
52
+ [
49
53
  {
50
54
  endpointId: EndpointNumber(endpointId),
51
55
  clusterId: ClusterId(clusterId),
52
56
  attributeId: attributeId !== void 0 ? AttributeId(attributeId) : void 0
53
57
  }
54
58
  ],
55
- isFabricFiltered: fabricFiltered
56
- });
59
+ fabricFiltered
60
+ );
57
61
  console.log(
58
- `Attribute values for cluster ${node.nodeId.toString()}/${endpointId}/${clusterId}/${attributeId}:`
62
+ `Attribute values for cluster ${node.peerAddress?.nodeId}/${endpointId}/${clusterId}/${attributeId}:`
59
63
  );
60
64
  for (const {
61
- path: { attributeId: attributeId2, attributeName },
65
+ path: { attributeId: id },
62
66
  value
63
- } of result) {
67
+ } of values) {
68
+ const attributeName = ClusterLookup.attributeName(ClusterId(clusterId), id, node.matter);
64
69
  console.log(
65
- ` ${Diagnostic.hex(attributeId2)}${attributeName !== void 0 ? ` (${attributeName})` : ""}: ${Diagnostic.json(value)}`
70
+ ` ${Diagnostic.hex(id)}${attributeName !== void 0 ? ` (${attributeName})` : ""}: ${Diagnostic.json(value)}`
66
71
  );
67
72
  }
68
73
  } catch (error) {
69
74
  console.log(
70
- `ERROR: Could not get attribute ${node.nodeId.toString()}/${endpointId}/${clusterId}/${attributeId}: ${error}`
75
+ `ERROR: Could not get attribute ${node.peerAddress?.nodeId}/${endpointId}/${clusterId}/${attributeId}: ${error}`
71
76
  );
72
77
  }
73
78
  }
@@ -113,29 +118,27 @@ function generateClusterAttributeHandlers(yargs, cluster, theNode) {
113
118
  });
114
119
  },
115
120
  async (argv) => {
116
- const clusterId2 = cluster.id;
117
121
  const { nodeId, endpointId, remote, fabricFiltered } = argv;
118
- const requestRemote = remote ? true : void 0;
119
- const node = (await theNode.connectAndGetNodes(nodeId))[0];
120
- const clusterClient = node.getDeviceById(endpointId)?.getClusterClientById(ClusterId(clusterId2));
121
- if (clusterClient === void 0) {
122
- console.log(
123
- `ERROR: Cluster ${node.nodeId.toString()}/${endpointId}/${clusterId2} not found.`
124
- );
122
+ const resolved = await resolveClusterEndpoint(theNode, nodeId, endpointId, clusterId);
123
+ if (resolved === void 0) {
125
124
  return;
126
125
  }
126
+ const { node, endpoint, behaviorType } = resolved;
127
127
  console.log(
128
- `Attribute values for cluster ${cluster.name} (${node.nodeId.toString()}/${endpointId}/${clusterId2}):`
128
+ `Attribute values for cluster ${cluster.name} (${node.peerAddress?.nodeId}/${endpointId}/${clusterId}):`
129
129
  );
130
130
  for (const attribute of cluster.attributes) {
131
131
  const attributeName = attribute.propertyName;
132
- const attributeClient = clusterClient.attributes[attributeName];
133
- if (attributeClient === void 0 || !remote && !(attributeClient instanceof SupportedAttributeClient)) {
132
+ if (!remote && elementKnownUnsupported(endpoint, behaviorType, "attributes", attributeName)) {
134
133
  continue;
135
134
  }
136
- console.log(
137
- ` ${attributeName} (${attribute.id}): ${Diagnostic.json(await attributeClient.get(requestRemote, fabricFiltered))}`
138
- );
135
+ try {
136
+ console.log(
137
+ ` ${attributeName} (${attribute.id}): ${Diagnostic.json(await getAttributeValue(resolved, clusterId, attribute, remote, fabricFiltered))}`
138
+ );
139
+ } catch (error) {
140
+ console.log(` ${attributeName} (${attribute.id}): ERROR: ${error}`);
141
+ }
139
142
  }
140
143
  }
141
144
  );
@@ -174,6 +177,27 @@ function generateClusterAttributeHandlers(yargs, cluster, theNode) {
174
177
  );
175
178
  return yargs;
176
179
  }
180
+ async function getAttributeValue(resolved, clusterId, attribute, requestRemote, fabricFiltered) {
181
+ const { node, endpoint, behaviorType } = resolved;
182
+ if (requestRemote) {
183
+ const values = await readAttributesRemote(
184
+ node,
185
+ [
186
+ {
187
+ endpointId: endpoint.number,
188
+ clusterId: ClusterId(clusterId),
189
+ attributeId: AttributeId(attribute.id)
190
+ }
191
+ ],
192
+ fabricFiltered
193
+ );
194
+ if (values.length === 0) {
195
+ throw new ImplementationError(`No value returned for attribute ${attribute.propertyName}`);
196
+ }
197
+ return values[0].value;
198
+ }
199
+ return endpoint.stateOf(behaviorType.id)[attribute.propertyName];
200
+ }
177
201
  function generateAttributeReadHandler(yargs, clusterId, clusterName, attribute, theNode) {
178
202
  const attributeName = attribute.propertyName;
179
203
  return yargs.command(
@@ -201,23 +225,20 @@ function generateAttributeReadHandler(yargs, clusterId, clusterName, attribute,
201
225
  }),
202
226
  async (argv) => {
203
227
  const { nodeId, endpointId, remote, fabricFiltered } = argv;
204
- const requestRemote = remote ? true : void 0;
205
- const node = (await theNode.connectAndGetNodes(nodeId))[0];
206
- const clusterClient = node.getDeviceById(endpointId)?.getClusterClientById(ClusterId(clusterId));
207
- if (clusterClient === void 0) {
208
- console.log(`ERROR: Cluster ${node.nodeId.toString()}/${endpointId}/${clusterId} not found.`);
228
+ const resolved = await resolveClusterEndpoint(theNode, nodeId, endpointId, clusterId);
229
+ if (resolved === void 0) {
209
230
  return;
210
231
  }
211
- const attributeClient = clusterClient.attributes[attributeName];
212
- if (attributeClient === void 0 || !remote && !(attributeClient instanceof SupportedAttributeClient)) {
232
+ const { node, endpoint, behaviorType } = resolved;
233
+ if (!remote && elementKnownUnsupported(endpoint, behaviorType, "attributes", attributeName)) {
213
234
  console.log(
214
- `ERROR: Attribute ${node.nodeId.toString()}/${endpointId}/${clusterId}/${attribute.id} not supported by the device.`
235
+ `ERROR: Attribute ${node.peerAddress?.nodeId}/${endpointId}/${clusterId}/${attribute.id} not supported by the device.`
215
236
  );
216
237
  return;
217
238
  }
218
239
  try {
219
240
  console.log(
220
- `Attribute value for ${attributeName} ${node.nodeId.toString()}/${endpointId}/${clusterId}/${attribute.id}: ${Diagnostic.json(await attributeClient.get(requestRemote, fabricFiltered))}`
241
+ `Attribute value for ${attributeName} ${node.peerAddress?.nodeId}/${endpointId}/${clusterId}/${attribute.id}: ${Diagnostic.json(await getAttributeValue(resolved, clusterId, attribute, remote, fabricFiltered))}`
221
242
  );
222
243
  } catch (error) {
223
244
  console.log(`ERROR: Could not get attribute ${attribute.name}: ${error}`);
@@ -263,24 +284,22 @@ function generateAttributeWriteHandler(yargs, clusterId, clusterName, attribute,
263
284
  return;
264
285
  }
265
286
  }
266
- const node = (await theNode.connectAndGetNodes(nodeId))[0];
267
- const clusterClient = node.getDeviceById(endpointId)?.getClusterClientById(ClusterId(clusterId));
268
- if (clusterClient === void 0) {
269
- console.log(`ERROR: Cluster ${node.nodeId.toString()}/${endpointId}/${clusterId} not found.`);
287
+ const resolved = await resolveClusterEndpoint(theNode, nodeId, endpointId, clusterId);
288
+ if (resolved === void 0) {
270
289
  return;
271
290
  }
272
- const attributeClient = clusterClient.attributes[attributeName];
273
- if (!force && !(attributeClient instanceof SupportedAttributeClient)) {
291
+ const { node, endpoint, behaviorType } = resolved;
292
+ if (!force && elementKnownUnsupported(endpoint, behaviorType, "attributes", attributeName)) {
274
293
  console.log(
275
- `ERROR: Attribute ${node.nodeId.toString()}/${endpointId}/${clusterId}/${attribute.id} not supported by the device.`
294
+ `ERROR: Attribute ${node.peerAddress?.nodeId}/${endpointId}/${clusterId}/${attribute.id} not supported by the device.`
276
295
  );
277
296
  return;
278
297
  }
279
298
  try {
280
299
  parsedValue = convertJsonDataWithModel(attribute, parsedValue);
281
- await attributeClient.set(parsedValue);
300
+ await endpoint.setStateOf(behaviorType.id, { [attributeName]: parsedValue });
282
301
  console.log(
283
- `Attribute ${attributeName} ${node.nodeId.toString()}/${endpointId}/${clusterId}/${attribute.id} set to ${Diagnostic.json(value)}`
302
+ `Attribute ${attributeName} ${node.peerAddress?.nodeId}/${endpointId}/${clusterId}/${attribute.id} set to ${Diagnostic.json(value)}`
284
303
  );
285
304
  } catch (error) {
286
305
  if (error instanceof ValidationError) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/shell/cmd_cluster-attributes.ts"],
4
- "mappings": "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",
5
- "names": ["yargs", "attributeId", "clusterId"]
4
+ "mappings": "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",
5
+ "names": ["yargs"]
6
6
  }
@@ -5,7 +5,8 @@
5
5
  */
6
6
  import { Diagnostic } from "@matter/general";
7
7
  import { Matter } from "@matter/model";
8
- import { ClusterId, ValidationError } from "@matter/types";
8
+ import { ValidationError } from "@matter/types";
9
+ import { elementKnownUnsupported, resolveClusterEndpoint } from "../util/ClusterEndpoint.js";
9
10
  import { convertJsonDataWithModel } from "../util/Json.js";
10
11
  function generateAllCommandHandlersForCluster(yargs, theNode) {
11
12
  Matter.clusters.forEach((cluster) => {
@@ -88,23 +89,24 @@ function generateCommandHandler(yargs, clusterId, clusterName, command, theNode)
88
89
  }
89
90
  async function executeCommand(theNode, nodeId, endpointId, clusterId, command, requestData) {
90
91
  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.`);
92
+ const resolved = await resolveClusterEndpoint(theNode, nodeId, endpointId, clusterId);
93
+ if (resolved === void 0) {
95
94
  return;
96
95
  }
97
- if (clusterClient.commands[commandName] === void 0) {
98
- console.log(`ERROR: Command ${node.nodeId.toString()}/${endpointId}/${clusterId}/${command.id} not supported.`);
96
+ const { node, endpoint, behaviorType } = resolved;
97
+ if (elementKnownUnsupported(endpoint, behaviorType, "commands", commandName)) {
98
+ console.log(
99
+ `ERROR: Command ${node.peerAddress?.nodeId}/${endpointId}/${clusterId}/${command.id} not supported.`
100
+ );
99
101
  return;
100
102
  }
101
103
  try {
102
104
  if (requestData !== void 0) {
103
105
  requestData = convertJsonDataWithModel(command, requestData);
104
106
  }
105
- const result = await clusterClient.commands[commandName](requestData);
107
+ const result = await endpoint.commandsOf(behaviorType.id)[commandName](requestData);
106
108
  console.log(
107
- `Command ${command.name} ${node.nodeId.toString()}/${endpointId}/${clusterId}/${command.id} invoked ${requestData ? `with ${Diagnostic.json(requestData)}` : ""}`
109
+ `Command ${command.name} ${node.peerAddress?.nodeId}/${endpointId}/${clusterId}/${command.id} invoked ${requestData ? `with ${Diagnostic.json(requestData)}` : ""}`
108
110
  );
109
111
  if (result !== void 0) {
110
112
  console.log(`Result: ${Diagnostic.json(result)}`);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/shell/cmd_cluster-commands.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["yargs"]
6
6
  }
@@ -5,7 +5,8 @@
5
5
  */
6
6
  import { Diagnostic } from "@matter/general";
7
7
  import { Matter } from "@matter/model";
8
- import { ClusterId } from "@matter/types";
8
+ import { ClusterId, EventId } from "@matter/types";
9
+ import { readEventsRemote, resolveClusterEndpoint } from "../util/ClusterEndpoint.js";
9
10
  function generateAllEventHandlersForCluster(yargs, theNode) {
10
11
  Matter.clusters.forEach((cluster) => {
11
12
  yargs = generateClusterEventHandlers(yargs, cluster, theNode);
@@ -48,16 +49,42 @@ function generateEventHandler(yargs, clusterId, clusterName, event, theNode) {
48
49
  }),
49
50
  async (argv) => {
50
51
  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.`);
52
+ const resolved = await resolveClusterEndpoint(theNode, nodeId, endpointId, clusterId);
53
+ if (resolved === void 0) {
55
54
  return;
56
55
  }
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
- );
56
+ const { node, endpoint } = resolved;
57
+ try {
58
+ const reports = await readEventsRemote(
59
+ node,
60
+ [{ endpointId: endpoint.number, clusterId: ClusterId(clusterId), eventId: EventId(event.id) }],
61
+ true
62
+ );
63
+ const events = reports.map(
64
+ ({
65
+ number,
66
+ priority,
67
+ epochTimestamp,
68
+ systemTimestamp,
69
+ deltaEpochTimestamp,
70
+ deltaSystemTimestamp,
71
+ value
72
+ }) => ({
73
+ eventNumber: number,
74
+ priority,
75
+ epochTimestamp,
76
+ systemTimestamp,
77
+ deltaEpochTimestamp,
78
+ deltaSystemTimestamp,
79
+ data: value
80
+ })
81
+ );
82
+ console.log(
83
+ `Event value for ${eventName} ${node.peerAddress?.nodeId}/${endpointId}/${clusterId}/${event.id}: ${Diagnostic.json(events)}`
84
+ );
85
+ } catch (error) {
86
+ console.log(`ERROR: Could not get event ${event.name}: ${error}`);
87
+ }
61
88
  }
62
89
  );
63
90
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
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;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAmC,cAAc;AACjD,SAAS,WAAW,eAAe;AAGnC,SAAS,kBAAkB,8BAA8B;AAEzD,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;AACE,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,WAAW,MAAM,uBAAuB,SAAS,QAAQ,YAAY,SAAS;AACpF,UAAI,aAAa,QAAW;AACxB;AAAA,MACJ;AACA,YAAM,EAAE,MAAM,SAAS,IAAI;AAE3B,UAAI;AAEA,cAAM,UAAU,MAAM;AAAA,UAClB;AAAA,UACA,CAAC,EAAE,YAAY,SAAS,QAAQ,WAAW,UAAU,SAAS,GAAG,SAAS,QAAQ,MAAM,EAAE,EAAE,CAAC;AAAA,UAC7F;AAAA,QACJ;AACA,cAAM,SAAS,QAAQ;AAAA,UACnB,CAAC;AAAA,YACG;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,UACJ,OAAO;AAAA,YACH,aAAa;AAAA,YACb;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA;AAAA,YACA,MAAM;AAAA,UACV;AAAA,QACJ;AACA,gBAAQ;AAAA,UACJ,mBAAmB,SAAS,IAAI,KAAK,aAAa,MAAM,IAAI,UAAU,IAAI,SAAS,IAAI,MAAM,EAAE,KAAK,WAAW,KAAK,MAAM,CAAC;AAAA,QAC/H;AAAA,MACJ,SAAS,OAAO;AACZ,gBAAQ,IAAI,8BAA8B,MAAM,IAAI,KAAK,KAAK,EAAE;AAAA,MACpE;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
5
  "names": ["yargs"]
6
6
  }