@matter/node 0.17.0 → 0.17.1-alpha.0-20260523-3fd1cc4b8

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.
@@ -1 +1 @@
1
- {"version":3,"file":"DescriptorServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/descriptor/DescriptorServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAKxE,OAAO,EAAa,YAAY,EAAkB,MAAM,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;;IACpD,OAAgB,YAAY,2BAAmB;IAEhC,UAAU,kBA+BxB;IAgCD;;;;OAIG;IACH,cAAc,CAAC,GAAG,WAAW,EAAE,CAAC,gBAAgB,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,QAoBtE;IAED;;;;OAIG;IACH,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,QAwBxB;IAED;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,YAAY,WAE/B;CAuIJ;AAED,yBAAiB,gBAAgB,CAAC,CAAC;IAC/B,KAAY,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;CAClD"}
1
+ {"version":3,"file":"DescriptorServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/descriptor/DescriptorServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAKxE,OAAO,EAAa,YAAY,EAAkB,MAAM,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;;IACpD,OAAgB,YAAY,2BAAmB;IAEhC,UAAU,kBA4BxB;IAgCD;;;;OAIG;IACH,cAAc,CAAC,GAAG,WAAW,EAAE,CAAC,gBAAgB,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,QAoBtE;IAED;;;;OAIG;IACH,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,QAwBxB;IAED;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,YAAY,WAE/B;CAuIJ;AAED,yBAAiB,gBAAgB,CAAC,CAAC;IAC/B,KAAY,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;CAClD"}
@@ -47,14 +47,11 @@ class DescriptorServer extends import_DescriptorBehavior.DescriptorBehavior {
47
47
  this.reactTo(this.endpoint.lifecycle.changed, this.#updateDescriptor);
48
48
  this.state.serverList = this.#serverList;
49
49
  this.state.clientList = this.#clientList;
50
- const mandatoryClients = this.endpoint.type.requirements.client?.mandatory;
51
- if (mandatoryClients) {
52
- const active = Object.keys(mandatoryClients).filter((k) => k in this.endpoint.type.clientClusters);
53
- if (active.length) {
54
- logger.debug(
55
- `Active mandatory client cluster(s) [${active.join(", ")}] for endpoint ${this.endpoint.id} (device type ${this.endpoint.type.name})`
56
- );
57
- }
50
+ const enabledClientClusters = Object.keys(this.endpoint.type.clientClusters ?? {});
51
+ if (enabledClientClusters.length) {
52
+ logger.debug(
53
+ `Enabled client cluster(s) [${enabledClientClusters.join(", ")}] for endpoint ${this.endpoint.id} (device type ${this.endpoint.type.name})`
54
+ );
58
55
  }
59
56
  this.#initializeDeviceTypeList();
60
57
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/behaviors/descriptor/DescriptorServer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["endpoint"]
6
6
  }
@@ -63,8 +63,9 @@ function inspectEndpoint(endpoint, properties) {
63
63
  }
64
64
  }
65
65
  const powerSourceFeatures = endpoint.maybeFeaturesOf(import_power_source.PowerSourceClient);
66
- if (powerSourceFeatures) {
67
- const status = endpoint.stateOf(import_power_source.PowerSourceClient).status;
66
+ const powerSourceState = powerSourceFeatures ? endpoint.maybeStateOf(import_power_source.PowerSourceClient) : void 0;
67
+ if (powerSourceFeatures && powerSourceState) {
68
+ const { status } = powerSourceState;
68
69
  if (powerSourceFeatures.wired) {
69
70
  if (status === import_power_source2.PowerSource.PowerSourceStatus.Active) {
70
71
  properties.isMainsPowered = true;
@@ -78,14 +79,14 @@ function inspectEndpoint(endpoint, properties) {
78
79
  }
79
80
  }
80
81
  const threadNetworkDiagnostics = endpoint.behaviors.typeFor(import_thread_network_diagnostics.ThreadNetworkDiagnosticsClient);
81
- if (threadNetworkDiagnostics) {
82
- const tnd = endpoint.stateOf(threadNetworkDiagnostics);
82
+ const tnd = threadNetworkDiagnostics ? endpoint.maybeStateOf(threadNetworkDiagnostics) : void 0;
83
+ if (tnd) {
83
84
  if (tnd.routingRole === import_thread_network_diagnostics2.ThreadNetworkDiagnostics.RoutingRole.SleepyEndDevice) {
84
85
  properties.isThreadSleepyEndDevice = true;
85
86
  }
86
87
  if (tnd.extendedPanId !== void 0 && tnd.extendedPanId !== null) {
87
88
  properties.threadActive = true;
88
- properties.threadPan = tnd.extendedPanId === void 0 ? void 0 : BigInt(tnd.extendedPanId);
89
+ properties.threadPan = BigInt(tnd.extendedPanId);
89
90
  properties.threadChannel = tnd.channel ?? void 0;
90
91
  } else {
91
92
  properties.threadActive = false;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/NodePhysicalProperties.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,wBAAiC;AACjC,mCAA2C;AAC3C,0BAAkC;AAClC,wCAA+C;AAE/C,wBAAmC;AAEnC,mBAA8B;AAG9B,IAAAA,uBAA4B;AAC5B,IAAAC,qCAAyC;AAjBzC;AAAA;AAAA;AAAA;AAAA;AAsBO,SAAS,uBAAuB,MAAY;AAC/C,QAAM,yBAAyB,CAAC,GAAI,KAAK,aAAa,kCAAgB,GAAG,cAAc,CAAC,CAAE;AAE1F,QAAM,aAAuC;AAAA,IACzC,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,kBAAkB;AAAA,IAClB;AAAA,IACA,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,2BAA2B,uBAAuB,SAAS,2BAAc,EAAe;AAAA,IACxF,yBAAyB;AAAA,EAC7B;AAEA,kBAAgB,MAAM,UAAU;AAEhC,SAAO;AACX;AAEA,SAAS,gBAAgB,UAAoB,YAAsC;AAE/E,QAAM,kBAAkB,SAAS,gBAAgB,uDAA0B;AAC3E,MAAI,iBAAiB;AACjB,QAAI,gBAAgB,sBAAsB;AACtC,iBAAW,eAAe;AAAA,IAC9B;AACA,QAAI,gBAAgB,wBAAwB;AACxC,iBAAW,iBAAiB;AAAA,IAChC;AACA,QAAI,gBAAgB,0BAA0B;AAC1C,iBAAW,mBAAmB;AAAA,IAClC;AAAA,EACJ;AAGA,QAAM,sBAAsB,SAAS,gBAAgB,qCAAiB;AACtE,MAAI,qBAAqB;AACrB,UAAM,SAAS,SAAS,QAAQ,qCAAiB,EAAE;AACnD,QAAI,oBAAoB,OAAO;AAC3B,UAAI,WAAW,iCAAY,kBAAkB,QAAQ;AAGjD,mBAAW,iBAAiB;AAAA,MAChC;AAAA,IACJ,WACI,oBAAoB;AAAA,IAEpB,CAAC,oBAAoB,SACrB,SAAS,UAAU,WAAW,qCAAiB,EAAE,WAAW,IAAI,gBAAgB,GAClF;AACE,UACI,WAAW,iCAAY,kBAAkB;AAAA,MAEzC,WAAW,iCAAY,kBAAkB,aAC3C;AACE,mBAAW,mBAAmB;AAAA,MAClC;AAAA,IACJ;AAAA,EACJ;AAGA,QAAM,2BAA2B,SAAS,UAAU,QAAQ,gEAA8B;AAC1F,MAAI,0BAA0B;AAC1B,UAAM,MAAM,SAAS,QAAQ,wBAAwB;AACrD,QAAI,IAAI,gBAAgB,4DAAyB,YAAY,iBAAiB;AAC1E,iBAAW,0BAA0B;AAAA,IACzC;AACA,QAAI,IAAI,kBAAkB,UAAa,IAAI,kBAAkB,MAAM;AAC/D,iBAAW,eAAe;AAC1B,iBAAW,YAAY,IAAI,kBAAkB,SAAY,SAAY,OAAO,IAAI,aAAa;AAC7F,iBAAW,gBAAgB,IAAI,WAAW;AAAA,IAC9C,OAAO;AACH,iBAAW,eAAe;AAAA,IAC9B;AAAA,EACJ;AAiBA,aAAW,QAAQ,SAAS,OAAO;AAC/B,QAAI,KAAK,WAAW,KAAK,KAAK,KAAK,eAAe,qCAAmB,YAAY;AAC7E;AAAA,IACJ;AACA,oBAAgB,MAAM,UAAU;AAAA,EACpC;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,wBAAiC;AACjC,mCAA2C;AAC3C,0BAAkC;AAClC,wCAA+C;AAE/C,wBAAmC;AAEnC,mBAA8B;AAG9B,IAAAA,uBAA4B;AAC5B,IAAAC,qCAAyC;AAjBzC;AAAA;AAAA;AAAA;AAAA;AAsBO,SAAS,uBAAuB,MAAY;AAC/C,QAAM,yBAAyB,CAAC,GAAI,KAAK,aAAa,kCAAgB,GAAG,cAAc,CAAC,CAAE;AAE1F,QAAM,aAAuC;AAAA,IACzC,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,kBAAkB;AAAA,IAClB;AAAA,IACA,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,2BAA2B,uBAAuB,SAAS,2BAAc,EAAe;AAAA,IACxF,yBAAyB;AAAA,EAC7B;AAEA,kBAAgB,MAAM,UAAU;AAEhC,SAAO;AACX;AAEA,SAAS,gBAAgB,UAAoB,YAAsC;AAE/E,QAAM,kBAAkB,SAAS,gBAAgB,uDAA0B;AAC3E,MAAI,iBAAiB;AACjB,QAAI,gBAAgB,sBAAsB;AACtC,iBAAW,eAAe;AAAA,IAC9B;AACA,QAAI,gBAAgB,wBAAwB;AACxC,iBAAW,iBAAiB;AAAA,IAChC;AACA,QAAI,gBAAgB,0BAA0B;AAC1C,iBAAW,mBAAmB;AAAA,IAClC;AAAA,EACJ;AAGA,QAAM,sBAAsB,SAAS,gBAAgB,qCAAiB;AACtE,QAAM,mBAAmB,sBAAsB,SAAS,aAAa,qCAAiB,IAAI;AAC1F,MAAI,uBAAuB,kBAAkB;AACzC,UAAM,EAAE,OAAO,IAAI;AACnB,QAAI,oBAAoB,OAAO;AAC3B,UAAI,WAAW,iCAAY,kBAAkB,QAAQ;AAGjD,mBAAW,iBAAiB;AAAA,MAChC;AAAA,IACJ,WACI,oBAAoB;AAAA,IAEpB,CAAC,oBAAoB,SACrB,SAAS,UAAU,WAAW,qCAAiB,EAAE,WAAW,IAAI,gBAAgB,GAClF;AACE,UACI,WAAW,iCAAY,kBAAkB;AAAA,MAEzC,WAAW,iCAAY,kBAAkB,aAC3C;AACE,mBAAW,mBAAmB;AAAA,MAClC;AAAA,IACJ;AAAA,EACJ;AAGA,QAAM,2BAA2B,SAAS,UAAU,QAAQ,gEAA8B;AAC1F,QAAM,MAAM,2BAA2B,SAAS,aAAa,wBAAwB,IAAI;AACzF,MAAI,KAAK;AACL,QAAI,IAAI,gBAAgB,4DAAyB,YAAY,iBAAiB;AAC1E,iBAAW,0BAA0B;AAAA,IACzC;AACA,QAAI,IAAI,kBAAkB,UAAa,IAAI,kBAAkB,MAAM;AAC/D,iBAAW,eAAe;AAC1B,iBAAW,YAAY,OAAO,IAAI,aAAa;AAC/C,iBAAW,gBAAgB,IAAI,WAAW;AAAA,IAC9C,OAAO;AACH,iBAAW,eAAe;AAAA,IAC9B;AAAA,EACJ;AAiBA,aAAW,QAAQ,SAAS,OAAO;AAC/B,QAAI,KAAK,WAAW,KAAK,KAAK,KAAK,eAAe,qCAAmB,YAAY;AAC7E;AAAA,IACJ;AACA,oBAAgB,MAAM,UAAU;AAAA,EACpC;AACJ;",
5
5
  "names": ["import_power_source", "import_thread_network_diagnostics"]
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ClientNodePhysicalProperties.d.ts","sourceRoot":"","sources":["../../../../src/node/client/ClientNodePhysicalProperties.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAK5D;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,UAAU,4BAyE5D"}
1
+ {"version":3,"file":"ClientNodePhysicalProperties.d.ts","sourceRoot":"","sources":["../../../../src/node/client/ClientNodePhysicalProperties.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAK5D;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,UAAU,4BA2F5D"}
@@ -23,6 +23,7 @@ __export(ClientNodePhysicalProperties_exports, {
23
23
  module.exports = __toCommonJS(ClientNodePhysicalProperties_exports);
24
24
  var import_EndpointInitializer = require("#endpoint/properties/EndpointInitializer.js");
25
25
  var import_NodePhysicalProperties = require("#node/NodePhysicalProperties.js");
26
+ var import_general = require("@matter/general");
26
27
  /**
27
28
  * @license
28
29
  * Copyright 2022-2026 Matter.js Authors
@@ -35,6 +36,7 @@ function ClientNodePhysicalProperties(node) {
35
36
  return existing;
36
37
  }
37
38
  let properties;
39
+ let frozen = false;
38
40
  const result = {
39
41
  get supportsThread() {
40
42
  return props().supportsThread;
@@ -72,8 +74,17 @@ function ClientNodePhysicalProperties(node) {
72
74
  };
73
75
  cache.set(node, result);
74
76
  const structure = node.env.get(import_EndpointInitializer.EndpointInitializer).structure;
75
- structure.changed.on(() => properties = void 0);
77
+ structure.changed.on(() => {
78
+ if (frozen) return;
79
+ properties = void 0;
80
+ });
81
+ node.lifecycle.goingOffline.on(() => freeze());
82
+ node.lifecycle.online.on(() => {
83
+ frozen = false;
84
+ properties = void 0;
85
+ });
76
86
  node.lifecycle.destroyed.once(() => {
87
+ freeze();
77
88
  cache.delete(node);
78
89
  });
79
90
  return result;
@@ -83,5 +94,10 @@ function ClientNodePhysicalProperties(node) {
83
94
  }
84
95
  return properties;
85
96
  }
97
+ function freeze() {
98
+ if (frozen) return;
99
+ properties = (0, import_general.deepCopy)(props());
100
+ frozen = true;
101
+ }
86
102
  }
87
103
  //# sourceMappingURL=ClientNodePhysicalProperties.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/client/ClientNodePhysicalProperties.ts"],
4
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,iCAAoC;AAEpC,oCAAuC;AARvC;AAAA;AAAA;AAAA;AAAA;AAYA,MAAM,QAAQ,oBAAI,QAA8C;AAKzD,SAAS,6BAA6B,MAAkB;AAC3D,QAAM,WAAW,MAAM,IAAI,IAAI;AAC/B,MAAI,UAAU;AACV,WAAO;AAAA,EACX;AAEA,MAAI;AAEJ,QAAM,SAAmC;AAAA,IACrC,IAAI,iBAAiB;AACjB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,eAAe;AACf,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,mBAAmB;AACnB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,yBAAyB;AACzB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,iBAAiB;AACjB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,mBAAmB;AACnB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,4BAA4B;AAC5B,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,0BAA0B;AAC1B,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,eAAe;AACf,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,YAAY;AACZ,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,gBAAgB;AAChB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,EACJ;AAEA,QAAM,IAAI,MAAM,MAAM;AAEtB,QAAM,YAAa,KAAK,IAAI,IAAI,8CAAmB,EAAgC;AACnF,YAAU,QAAQ,GAAG,MAAO,aAAa,MAAU;AAInD,OAAK,UAAU,UAAU,KAAK,MAAM;AAChC,UAAM,OAAO,IAAI;AAAA,EACrB,CAAC;AAED,SAAO;AAEP,WAAS,QAAQ;AACb,QAAI,eAAe,QAAW;AAC1B,uBAAa,sDAAuB,IAAI;AAAA,IAC5C;AACA,WAAO;AAAA,EACX;AACJ;",
4
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,iCAAoC;AAEpC,oCAAuC;AACvC,qBAAyB;AATzB;AAAA;AAAA;AAAA;AAAA;AAaA,MAAM,QAAQ,oBAAI,QAA8C;AAKzD,SAAS,6BAA6B,MAAkB;AAC3D,QAAM,WAAW,MAAM,IAAI,IAAI;AAC/B,MAAI,UAAU;AACV,WAAO;AAAA,EACX;AAEA,MAAI;AACJ,MAAI,SAAS;AAEb,QAAM,SAAmC;AAAA,IACrC,IAAI,iBAAiB;AACjB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,eAAe;AACf,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,mBAAmB;AACnB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,yBAAyB;AACzB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,iBAAiB;AACjB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,mBAAmB;AACnB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,4BAA4B;AAC5B,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,0BAA0B;AAC1B,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,eAAe;AACf,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,YAAY;AACZ,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,gBAAgB;AAChB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,EACJ;AAEA,QAAM,IAAI,MAAM,MAAM;AAEtB,QAAM,YAAa,KAAK,IAAI,IAAI,8CAAmB,EAAgC;AACnF,YAAU,QAAQ,GAAG,MAAM;AACvB,QAAI,OAAQ;AACZ,iBAAa;AAAA,EACjB,CAAC;AAGD,OAAK,UAAU,aAAa,GAAG,MAAM,OAAO,CAAC;AAC7C,OAAK,UAAU,OAAO,GAAG,MAAM;AAC3B,aAAS;AACT,iBAAa;AAAA,EACjB,CAAC;AAID,OAAK,UAAU,UAAU,KAAK,MAAM;AAChC,WAAO;AACP,UAAM,OAAO,IAAI;AAAA,EACrB,CAAC;AAED,SAAO;AAEP,WAAS,QAAQ;AACb,QAAI,eAAe,QAAW;AAC1B,uBAAa,sDAAuB,IAAI;AAAA,IAC5C;AACA,WAAO;AAAA,EACX;AAEA,WAAS,SAAS;AACd,QAAI,OAAQ;AACZ,qBAAa,yBAAS,MAAM,CAAC;AAC7B,aAAS;AAAA,EACb;AACJ;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"DescriptorServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/descriptor/DescriptorServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAKxE,OAAO,EAAa,YAAY,EAAkB,MAAM,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;;IACpD,OAAgB,YAAY,2BAAmB;IAEhC,UAAU,kBA+BxB;IAgCD;;;;OAIG;IACH,cAAc,CAAC,GAAG,WAAW,EAAE,CAAC,gBAAgB,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,QAoBtE;IAED;;;;OAIG;IACH,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,QAwBxB;IAED;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,YAAY,WAE/B;CAuIJ;AAED,yBAAiB,gBAAgB,CAAC,CAAC;IAC/B,KAAY,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;CAClD"}
1
+ {"version":3,"file":"DescriptorServer.d.ts","sourceRoot":"","sources":["../../../../src/behaviors/descriptor/DescriptorServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,yCAAyC,CAAC;AAKxE,OAAO,EAAa,YAAY,EAAkB,MAAM,EAAE,MAAM,eAAe,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,mCAAmC,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAI7D;;GAEG;AACH,qBAAa,gBAAiB,SAAQ,kBAAkB;;IACpD,OAAgB,YAAY,2BAAmB;IAEhC,UAAU,kBA4BxB;IAgCD;;;;OAIG;IACH,cAAc,CAAC,GAAG,WAAW,EAAE,CAAC,gBAAgB,CAAC,UAAU,GAAG,MAAM,CAAC,EAAE,QAoBtE;IAED;;;;OAIG;IACH,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,QAwBxB;IAED;;OAEG;IACH,aAAa,CAAC,IAAI,EAAE,YAAY,WAE/B;CAuIJ;AAED,yBAAiB,gBAAgB,CAAC,CAAC;IAC/B,KAAY,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;CAClD"}
@@ -24,14 +24,11 @@ class DescriptorServer extends DescriptorBehavior {
24
24
  this.reactTo(this.endpoint.lifecycle.changed, this.#updateDescriptor);
25
25
  this.state.serverList = this.#serverList;
26
26
  this.state.clientList = this.#clientList;
27
- const mandatoryClients = this.endpoint.type.requirements.client?.mandatory;
28
- if (mandatoryClients) {
29
- const active = Object.keys(mandatoryClients).filter((k) => k in this.endpoint.type.clientClusters);
30
- if (active.length) {
31
- logger.debug(
32
- `Active mandatory client cluster(s) [${active.join(", ")}] for endpoint ${this.endpoint.id} (device type ${this.endpoint.type.name})`
33
- );
34
- }
27
+ const enabledClientClusters = Object.keys(this.endpoint.type.clientClusters ?? {});
28
+ if (enabledClientClusters.length) {
29
+ logger.debug(
30
+ `Enabled client cluster(s) [${enabledClientClusters.join(", ")}] for endpoint ${this.endpoint.id} (device type ${this.endpoint.type.name})`
31
+ );
35
32
  }
36
33
  this.#initializeDeviceTypeList();
37
34
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/behaviors/descriptor/DescriptorServer.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,qBAAqB;AAE9B,SAAS,yBAAyB;AAClC,SAAS,qBAAqB,aAAa,cAAc;AACzD,SAAS,cAAc;AACvB,SAAoB,oBAA4C;AAEhE,SAAS,0BAA0B;AAEnC,MAAM,SAAS,OAAO,IAAI,kBAAkB;AAKrC,MAAM,yBAAyB,mBAAmB;AAAA,EACrD,OAAgB,eAAe,CAAC,aAAa;AAAA,EAE7C,MAAe,aAAa;AAExB,QAAI,KAAK,SAAS,UAAU,IAAI,aAAa,GAAG;AAG5C,WAAK,QAAQ,KAAK,MAAM,IAAI,aAAa,EAAE,OAAO,QAAQ,KAAK,gBAAgB;AAAA,IACnF,WAAW,KAAK,SAAS,UAAU;AAC/B,iBAAW,YAAY,KAAK,SAAS,OAAO;AACxC,aAAK,oBAAoB,QAAQ;AAAA,MACrC;AAAA,IACJ;AACA,UAAM,KAAK,iBAAiB;AAG5B,SAAK,QAAQ,KAAK,SAAS,UAAU,SAAS,KAAK,iBAAiB;AAEpE,SAAK,MAAM,aAAa,KAAK;AAC7B,SAAK,MAAM,aAAa,KAAK;AAE7B,UAAM,mBAAmB,KAAK,SAAS,KAAK,aAAa,QAAQ;AACjE,QAAI,kBAAkB;AAClB,YAAM,SAAS,OAAO,KAAK,gBAAgB,EAAE,OAAO,OAAK,KAAK,KAAK,SAAS,KAAK,cAAc;AAC/F,UAAI,OAAO,QAAQ;AACf,eAAO;AAAA,UACH,uCAAuC,OAAO,KAAK,IAAI,CAAC,kBAAkB,KAAK,SAAS,EAAE,iBAAiB,KAAK,SAAS,KAAK,IAAI;AAAA,QACtI;AAAA,MACJ;AAAA,IACJ;AAGA,SAAK,0BAA0B;AAAA,EACnC;AAAA;AAAA,EAGA,4BAA4B;AACxB,QAAI,CAAC,KAAK,MAAM,eAAe,QAAQ;AACnC,YAAM,WAAW,KAAK,SAAS;AAC/B,WAAK,MAAM,iBAAiB;AAAA,QACxB;AAAA,UACI,YAAY,SAAS;AAAA,UACrB,UAAU,SAAS;AAAA,QACvB;AAAA,MACJ;AAAA,IAkBJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,kBAAkB,aAAuD;AACrE,SAAK,0BAA0B;AAC/B,UAAM,OAAO,KAAK,MAAM;AAExB,cAAW,UAAS,iBAAiB,aAAa;AAC9C,UAAI,OAAO,kBAAkB,UAAU;AACnC,cAAM,KAAK,OAAO,YAAY,aAAa;AAC3C,YAAI,OAAO,QAAW;AAClB,gBAAM,IAAI,oBAAoB,eAAe,aAAa,YAAY;AAAA,QAC1E;AACA,wBAAgB,EAAE,YAAY,aAAa,GAAG,EAAE,GAAG,UAAU,GAAG,SAAS;AAAA,MAC7E;AAEA,iBAAW,sBAAsB,MAAM;AACnC,YAAI,YAAY,eAAe,kBAAkB,GAAG;AAChD,mBAAS;AAAA,QACb;AAAA,MACJ;AACA,WAAK,KAAK,aAAa;AAAA,IAC3B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,WAAW,MAAgB;AAEvB,QAAI,CAAC,KAAK,SAAS,SAAS;AACxB,YAAM,IAAI,oBAAoB,8DAA8D;AAAA,IAChG;AAEA,UAAM,OAAQ,KAAK,MAA2C;AAE9D,cAAW,YAAW,UAAU,MAAM;AAClC,iBAAW,eAAe,MAAM;AAC5B,YACI,YAAY,YAAY,OAAO,WAC/B,YAAY,gBAAgB,OAAO,eACnC,YAAY,QAAQ,OAAO,KAC7B;AACE,cAAI,YAAY,UAAU,OAAO,SAAS,OAAO,UAAU,QAAQ,OAAO,UAAU,QAAW;AAC3F,wBAAY,QAAQ,OAAO;AAC3B,qBAAS;AAAA,UACb;AAAA,QACJ;AAAA,MACJ;AAEA,WAAK,KAAK,MAAM;AAAA,IACpB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,cAAc,MAAoB;AAC9B,WAAO,KAAK,MAAM,eAAe,UAAU,QAAM,GAAG,eAAe,IAAI,MAAM;AAAA,EACjF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,kBAAkB,MAAgC,UAAoB;AACxE,YAAQ,MAAM;AAAA,MACV,KAAK,kBAAkB,OAAO;AAC1B,YAAI,CAAC,KAAK,SAAS,MAAM,IAAI,QAAQ,GAAG;AACpC;AAAA,QACJ;AACA,cAAM,KAAK,iBAAiB;AAC5B,YAAI,CAAC,KAAK,SAAS,UAAU,IAAI,aAAa,GAAG;AAC7C,eAAK,oBAAoB,QAAQ;AAAA,QACrC;AACA;AAAA,MAEJ,KAAK,kBAAkB,OAAO;AAC1B,YAAI,aAAa,KAAK,UAAU;AAC5B;AAAA,QACJ;AAEA,cAAM,KAAK,QAAQ,YAAY,aAAa,IAAI;AAChD,cAAM,KAAK,QAAQ,YAAY,MAAM;AACrC,aAAK,MAAM,aAAa,KAAK;AAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,MAeJ,KAAK,kBAAkB,OAAO;AAC1B,YAAI,aAAa,KAAK,UAAU;AAC5B;AAAA,QACJ;AAEA,cAAM,KAAK,aAAa,EAAE,SAAS,KAAK,iBAAiB,CAAC;AAC1D;AAAA,IACR;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,oBAAoB,UAAoB;AACpC,SAAK,QAAQ,SAAS,UAAU,WAAW,KAAK,gBAAgB;AAAA,EACpE;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,mBAAmB;AACrB,UAAM,WAAW,KAAK;AAEtB,QAAI;AAIJ,QAAI,KAAK,MAAM,IAAI,aAAa,GAAG;AAC/B,YAAM,QAAQ,KAAK,MAAM,IAAI,aAAa;AAC1C,gBAAU,OAAO,KAAK,MAAM,aAAa,EAAE,IAAI,OAAK,OAAO,SAAS,CAAC,CAAC;AAGtE,YAAM,MAAM,QAAQ,QAAQ,KAAK,SAAS,MAAM;AAChD,UAAI,QAAQ,IAAI;AACZ,gBAAQ,OAAO,KAAK,CAAC;AAAA,MACzB;AAAA,IACJ,WAAW,SAAS,UAAU;AAE1B,gBAAU,CAAC,GAAG,SAAS,KAAK,EACvB,IAAI,CAAAA,cAAaA,UAAS,UAAU,YAAYA,UAAS,SAAS,MAAU,EAC5E,OAAO,OAAK,MAAM,MAAS;AAAA,IACpC,OAAO;AAEH,gBAAU,CAAC;AAAA,IACf;AAEA,YAAQ,KAAK;AAIb,QAAI,KAAK,MAAM,UAAU,WAAW,QAAQ,QAAQ;AAChD,UAAI,IAAI,QAAQ;AAChB,aAAO,IAAI,QAAQ,QAAQ,KAAK;AAC5B,YAAI,KAAK,MAAM,UAAU,CAAC,MAAM,QAAQ,CAAC,GAAG;AACxC;AAAA,QACJ;AAAA,MACJ;AACA,UAAI,MAAM,QAAQ,QAAQ;AACtB;AAAA,MACJ;AAAA,IACJ;AAEA,UAAM,KAAK,QAAQ,YAAY,aAAa,IAAI;AAChD,UAAM,KAAK,QAAQ,YAAY,MAAM;AAErC,SAAK,MAAM,YAAY;AAAA,EAC3B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AACd,UAAM,OAAO,IAAI,MAAiB;AAClC,eAAW,QAAQ,OAAO,OAAO,KAAK,SAAS,UAAU,SAAS,GAAG;AACjE,YAAM,YAAa,KAA0C,SAAS;AACtE,UAAI,WAAW;AACX,aAAK,KAAK,SAAS;AAAA,MACvB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AACd,UAAM,OAAO,IAAI,MAAiB;AAClC,eAAW,QAAQ,OAAO,OAAO,KAAK,SAAS,KAAK,kBAAkB,CAAC,CAAC,GAAG;AACvE,YAAM,YAAa,KAA0C,SAAS;AACtE,UAAI,WAAW;AACX,aAAK,KAAK,SAAS;AAAA,MACvB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AACJ;",
4
+ "mappings": "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",
5
5
  "names": ["endpoint"]
6
6
  }
@@ -40,8 +40,9 @@ function inspectEndpoint(endpoint, properties) {
40
40
  }
41
41
  }
42
42
  const powerSourceFeatures = endpoint.maybeFeaturesOf(PowerSourceClient);
43
- if (powerSourceFeatures) {
44
- const status = endpoint.stateOf(PowerSourceClient).status;
43
+ const powerSourceState = powerSourceFeatures ? endpoint.maybeStateOf(PowerSourceClient) : void 0;
44
+ if (powerSourceFeatures && powerSourceState) {
45
+ const { status } = powerSourceState;
45
46
  if (powerSourceFeatures.wired) {
46
47
  if (status === PowerSource.PowerSourceStatus.Active) {
47
48
  properties.isMainsPowered = true;
@@ -55,14 +56,14 @@ function inspectEndpoint(endpoint, properties) {
55
56
  }
56
57
  }
57
58
  const threadNetworkDiagnostics = endpoint.behaviors.typeFor(ThreadNetworkDiagnosticsClient);
58
- if (threadNetworkDiagnostics) {
59
- const tnd = endpoint.stateOf(threadNetworkDiagnostics);
59
+ const tnd = threadNetworkDiagnostics ? endpoint.maybeStateOf(threadNetworkDiagnostics) : void 0;
60
+ if (tnd) {
60
61
  if (tnd.routingRole === ThreadNetworkDiagnostics.RoutingRole.SleepyEndDevice) {
61
62
  properties.isThreadSleepyEndDevice = true;
62
63
  }
63
64
  if (tnd.extendedPanId !== void 0 && tnd.extendedPanId !== null) {
64
65
  properties.threadActive = true;
65
- properties.threadPan = tnd.extendedPanId === void 0 ? void 0 : BigInt(tnd.extendedPanId);
66
+ properties.threadPan = BigInt(tnd.extendedPanId);
66
67
  properties.threadChannel = tnd.channel ?? void 0;
67
68
  } else {
68
69
  properties.threadActive = false;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/NodePhysicalProperties.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,wBAAwB;AACjC,SAAS,kCAAkC;AAC3C,SAAS,yBAAyB;AAClC,SAAS,sCAAsC;AAE/C,SAAS,0BAA0B;AAEnC,SAAS,qBAAqB;AAG9B,SAAS,mBAAmB;AAC5B,SAAS,gCAAgC;AAKlC,SAAS,uBAAuB,MAAY;AAC/C,QAAM,yBAAyB,CAAC,GAAI,KAAK,aAAa,gBAAgB,GAAG,cAAc,CAAC,CAAE;AAE1F,QAAM,aAAuC;AAAA,IACzC,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,kBAAkB;AAAA,IAClB;AAAA,IACA,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,2BAA2B,uBAAuB,SAAS,cAAc,EAAe;AAAA,IACxF,yBAAyB;AAAA,EAC7B;AAEA,kBAAgB,MAAM,UAAU;AAEhC,SAAO;AACX;AAEA,SAAS,gBAAgB,UAAoB,YAAsC;AAE/E,QAAM,kBAAkB,SAAS,gBAAgB,0BAA0B;AAC3E,MAAI,iBAAiB;AACjB,QAAI,gBAAgB,sBAAsB;AACtC,iBAAW,eAAe;AAAA,IAC9B;AACA,QAAI,gBAAgB,wBAAwB;AACxC,iBAAW,iBAAiB;AAAA,IAChC;AACA,QAAI,gBAAgB,0BAA0B;AAC1C,iBAAW,mBAAmB;AAAA,IAClC;AAAA,EACJ;AAGA,QAAM,sBAAsB,SAAS,gBAAgB,iBAAiB;AACtE,MAAI,qBAAqB;AACrB,UAAM,SAAS,SAAS,QAAQ,iBAAiB,EAAE;AACnD,QAAI,oBAAoB,OAAO;AAC3B,UAAI,WAAW,YAAY,kBAAkB,QAAQ;AAGjD,mBAAW,iBAAiB;AAAA,MAChC;AAAA,IACJ,WACI,oBAAoB;AAAA,IAEpB,CAAC,oBAAoB,SACrB,SAAS,UAAU,WAAW,iBAAiB,EAAE,WAAW,IAAI,gBAAgB,GAClF;AACE,UACI,WAAW,YAAY,kBAAkB;AAAA,MAEzC,WAAW,YAAY,kBAAkB,aAC3C;AACE,mBAAW,mBAAmB;AAAA,MAClC;AAAA,IACJ;AAAA,EACJ;AAGA,QAAM,2BAA2B,SAAS,UAAU,QAAQ,8BAA8B;AAC1F,MAAI,0BAA0B;AAC1B,UAAM,MAAM,SAAS,QAAQ,wBAAwB;AACrD,QAAI,IAAI,gBAAgB,yBAAyB,YAAY,iBAAiB;AAC1E,iBAAW,0BAA0B;AAAA,IACzC;AACA,QAAI,IAAI,kBAAkB,UAAa,IAAI,kBAAkB,MAAM;AAC/D,iBAAW,eAAe;AAC1B,iBAAW,YAAY,IAAI,kBAAkB,SAAY,SAAY,OAAO,IAAI,aAAa;AAC7F,iBAAW,gBAAgB,IAAI,WAAW;AAAA,IAC9C,OAAO;AACH,iBAAW,eAAe;AAAA,IAC9B;AAAA,EACJ;AAiBA,aAAW,QAAQ,SAAS,OAAO;AAC/B,QAAI,KAAK,WAAW,KAAK,KAAK,KAAK,eAAe,mBAAmB,YAAY;AAC7E;AAAA,IACJ;AACA,oBAAgB,MAAM,UAAU;AAAA,EACpC;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,wBAAwB;AACjC,SAAS,kCAAkC;AAC3C,SAAS,yBAAyB;AAClC,SAAS,sCAAsC;AAE/C,SAAS,0BAA0B;AAEnC,SAAS,qBAAqB;AAG9B,SAAS,mBAAmB;AAC5B,SAAS,gCAAgC;AAKlC,SAAS,uBAAuB,MAAY;AAC/C,QAAM,yBAAyB,CAAC,GAAI,KAAK,aAAa,gBAAgB,GAAG,cAAc,CAAC,CAAE;AAE1F,QAAM,aAAuC;AAAA,IACzC,gBAAgB;AAAA,IAChB,cAAc;AAAA,IACd,kBAAkB;AAAA,IAClB;AAAA,IACA,gBAAgB;AAAA,IAChB,kBAAkB;AAAA,IAClB,2BAA2B,uBAAuB,SAAS,cAAc,EAAe;AAAA,IACxF,yBAAyB;AAAA,EAC7B;AAEA,kBAAgB,MAAM,UAAU;AAEhC,SAAO;AACX;AAEA,SAAS,gBAAgB,UAAoB,YAAsC;AAE/E,QAAM,kBAAkB,SAAS,gBAAgB,0BAA0B;AAC3E,MAAI,iBAAiB;AACjB,QAAI,gBAAgB,sBAAsB;AACtC,iBAAW,eAAe;AAAA,IAC9B;AACA,QAAI,gBAAgB,wBAAwB;AACxC,iBAAW,iBAAiB;AAAA,IAChC;AACA,QAAI,gBAAgB,0BAA0B;AAC1C,iBAAW,mBAAmB;AAAA,IAClC;AAAA,EACJ;AAGA,QAAM,sBAAsB,SAAS,gBAAgB,iBAAiB;AACtE,QAAM,mBAAmB,sBAAsB,SAAS,aAAa,iBAAiB,IAAI;AAC1F,MAAI,uBAAuB,kBAAkB;AACzC,UAAM,EAAE,OAAO,IAAI;AACnB,QAAI,oBAAoB,OAAO;AAC3B,UAAI,WAAW,YAAY,kBAAkB,QAAQ;AAGjD,mBAAW,iBAAiB;AAAA,MAChC;AAAA,IACJ,WACI,oBAAoB;AAAA,IAEpB,CAAC,oBAAoB,SACrB,SAAS,UAAU,WAAW,iBAAiB,EAAE,WAAW,IAAI,gBAAgB,GAClF;AACE,UACI,WAAW,YAAY,kBAAkB;AAAA,MAEzC,WAAW,YAAY,kBAAkB,aAC3C;AACE,mBAAW,mBAAmB;AAAA,MAClC;AAAA,IACJ;AAAA,EACJ;AAGA,QAAM,2BAA2B,SAAS,UAAU,QAAQ,8BAA8B;AAC1F,QAAM,MAAM,2BAA2B,SAAS,aAAa,wBAAwB,IAAI;AACzF,MAAI,KAAK;AACL,QAAI,IAAI,gBAAgB,yBAAyB,YAAY,iBAAiB;AAC1E,iBAAW,0BAA0B;AAAA,IACzC;AACA,QAAI,IAAI,kBAAkB,UAAa,IAAI,kBAAkB,MAAM;AAC/D,iBAAW,eAAe;AAC1B,iBAAW,YAAY,OAAO,IAAI,aAAa;AAC/C,iBAAW,gBAAgB,IAAI,WAAW;AAAA,IAC9C,OAAO;AACH,iBAAW,eAAe;AAAA,IAC9B;AAAA,EACJ;AAiBA,aAAW,QAAQ,SAAS,OAAO;AAC/B,QAAI,KAAK,WAAW,KAAK,KAAK,KAAK,eAAe,mBAAmB,YAAY;AAC7E;AAAA,IACJ;AACA,oBAAgB,MAAM,UAAU;AAAA,EACpC;AACJ;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ClientNodePhysicalProperties.d.ts","sourceRoot":"","sources":["../../../../src/node/client/ClientNodePhysicalProperties.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAK5D;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,UAAU,4BAyE5D"}
1
+ {"version":3,"file":"ClientNodePhysicalProperties.d.ts","sourceRoot":"","sources":["../../../../src/node/client/ClientNodePhysicalProperties.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAGjD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAK5D;;GAEG;AACH,wBAAgB,4BAA4B,CAAC,IAAI,EAAE,UAAU,4BA2F5D"}
@@ -5,6 +5,7 @@
5
5
  */
6
6
  import { EndpointInitializer } from "#endpoint/properties/EndpointInitializer.js";
7
7
  import { NodePhysicalProperties } from "#node/NodePhysicalProperties.js";
8
+ import { deepCopy } from "@matter/general";
8
9
  const cache = /* @__PURE__ */ new WeakMap();
9
10
  function ClientNodePhysicalProperties(node) {
10
11
  const existing = cache.get(node);
@@ -12,6 +13,7 @@ function ClientNodePhysicalProperties(node) {
12
13
  return existing;
13
14
  }
14
15
  let properties;
16
+ let frozen = false;
15
17
  const result = {
16
18
  get supportsThread() {
17
19
  return props().supportsThread;
@@ -49,8 +51,17 @@ function ClientNodePhysicalProperties(node) {
49
51
  };
50
52
  cache.set(node, result);
51
53
  const structure = node.env.get(EndpointInitializer).structure;
52
- structure.changed.on(() => properties = void 0);
54
+ structure.changed.on(() => {
55
+ if (frozen) return;
56
+ properties = void 0;
57
+ });
58
+ node.lifecycle.goingOffline.on(() => freeze());
59
+ node.lifecycle.online.on(() => {
60
+ frozen = false;
61
+ properties = void 0;
62
+ });
53
63
  node.lifecycle.destroyed.once(() => {
64
+ freeze();
54
65
  cache.delete(node);
55
66
  });
56
67
  return result;
@@ -60,6 +71,11 @@ function ClientNodePhysicalProperties(node) {
60
71
  }
61
72
  return properties;
62
73
  }
74
+ function freeze() {
75
+ if (frozen) return;
76
+ properties = deepCopy(props());
77
+ frozen = true;
78
+ }
63
79
  }
64
80
  export {
65
81
  ClientNodePhysicalProperties
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/client/ClientNodePhysicalProperties.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AAEpC,SAAS,8BAA8B;AAIvC,MAAM,QAAQ,oBAAI,QAA8C;AAKzD,SAAS,6BAA6B,MAAkB;AAC3D,QAAM,WAAW,MAAM,IAAI,IAAI;AAC/B,MAAI,UAAU;AACV,WAAO;AAAA,EACX;AAEA,MAAI;AAEJ,QAAM,SAAmC;AAAA,IACrC,IAAI,iBAAiB;AACjB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,eAAe;AACf,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,mBAAmB;AACnB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,yBAAyB;AACzB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,iBAAiB;AACjB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,mBAAmB;AACnB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,4BAA4B;AAC5B,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,0BAA0B;AAC1B,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,eAAe;AACf,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,YAAY;AACZ,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,gBAAgB;AAChB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,EACJ;AAEA,QAAM,IAAI,MAAM,MAAM;AAEtB,QAAM,YAAa,KAAK,IAAI,IAAI,mBAAmB,EAAgC;AACnF,YAAU,QAAQ,GAAG,MAAO,aAAa,MAAU;AAInD,OAAK,UAAU,UAAU,KAAK,MAAM;AAChC,UAAM,OAAO,IAAI;AAAA,EACrB,CAAC;AAED,SAAO;AAEP,WAAS,QAAQ;AACb,QAAI,eAAe,QAAW;AAC1B,mBAAa,uBAAuB,IAAI;AAAA,IAC5C;AACA,WAAO;AAAA,EACX;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,2BAA2B;AAEpC,SAAS,8BAA8B;AACvC,SAAS,gBAAgB;AAIzB,MAAM,QAAQ,oBAAI,QAA8C;AAKzD,SAAS,6BAA6B,MAAkB;AAC3D,QAAM,WAAW,MAAM,IAAI,IAAI;AAC/B,MAAI,UAAU;AACV,WAAO;AAAA,EACX;AAEA,MAAI;AACJ,MAAI,SAAS;AAEb,QAAM,SAAmC;AAAA,IACrC,IAAI,iBAAiB;AACjB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,eAAe;AACf,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,mBAAmB;AACnB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,yBAAyB;AACzB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,iBAAiB;AACjB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,mBAAmB;AACnB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,4BAA4B;AAC5B,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,0BAA0B;AAC1B,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,eAAe;AACf,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,YAAY;AACZ,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,IAEA,IAAI,gBAAgB;AAChB,aAAO,MAAM,EAAE;AAAA,IACnB;AAAA,EACJ;AAEA,QAAM,IAAI,MAAM,MAAM;AAEtB,QAAM,YAAa,KAAK,IAAI,IAAI,mBAAmB,EAAgC;AACnF,YAAU,QAAQ,GAAG,MAAM;AACvB,QAAI,OAAQ;AACZ,iBAAa;AAAA,EACjB,CAAC;AAGD,OAAK,UAAU,aAAa,GAAG,MAAM,OAAO,CAAC;AAC7C,OAAK,UAAU,OAAO,GAAG,MAAM;AAC3B,aAAS;AACT,iBAAa;AAAA,EACjB,CAAC;AAID,OAAK,UAAU,UAAU,KAAK,MAAM;AAChC,WAAO;AACP,UAAM,OAAO,IAAI;AAAA,EACrB,CAAC;AAED,SAAO;AAEP,WAAS,QAAQ;AACb,QAAI,eAAe,QAAW;AAC1B,mBAAa,uBAAuB,IAAI;AAAA,IAC5C;AACA,WAAO;AAAA,EACX;AAEA,WAAS,SAAS;AACd,QAAI,OAAQ;AACZ,iBAAa,SAAS,MAAM,CAAC;AAC7B,aAAS;AAAA,EACb;AACJ;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/node",
3
- "version": "0.17.0",
3
+ "version": "0.17.1-alpha.0-20260523-3fd1cc4b8",
4
4
  "description": "API for building Matter nodes",
5
5
  "keywords": [
6
6
  "iot",
@@ -36,14 +36,14 @@
36
36
  "#*": "./src/*"
37
37
  },
38
38
  "dependencies": {
39
- "@matter/general": "0.17.0",
40
- "@matter/model": "0.17.0",
41
- "@matter/types": "0.17.0",
42
- "@matter/protocol": "0.17.0"
39
+ "@matter/general": "0.17.1-alpha.0-20260523-3fd1cc4b8",
40
+ "@matter/model": "0.17.1-alpha.0-20260523-3fd1cc4b8",
41
+ "@matter/types": "0.17.1-alpha.0-20260523-3fd1cc4b8",
42
+ "@matter/protocol": "0.17.1-alpha.0-20260523-3fd1cc4b8"
43
43
  },
44
44
  "devDependencies": {
45
45
  "@nacho-iot/js-tools": "^0.1.5",
46
- "@matter/testing": "0.17.0"
46
+ "@matter/testing": "0.17.1-alpha.0-20260523-3fd1cc4b8"
47
47
  },
48
48
  "files": [
49
49
  "dist/**/*",
@@ -40,14 +40,11 @@ export class DescriptorServer extends DescriptorBehavior {
40
40
  this.state.serverList = this.#serverList;
41
41
  this.state.clientList = this.#clientList;
42
42
 
43
- const mandatoryClients = this.endpoint.type.requirements.client?.mandatory;
44
- if (mandatoryClients) {
45
- const active = Object.keys(mandatoryClients).filter(k => k in this.endpoint.type.clientClusters);
46
- if (active.length) {
47
- logger.debug(
48
- `Active mandatory client cluster(s) [${active.join(", ")}] for endpoint ${this.endpoint.id} (device type ${this.endpoint.type.name})`,
49
- );
50
- }
43
+ const enabledClientClusters = Object.keys(this.endpoint.type.clientClusters ?? {});
44
+ if (enabledClientClusters.length) {
45
+ logger.debug(
46
+ `Enabled client cluster(s) [${enabledClientClusters.join(", ")}] for endpoint ${this.endpoint.id} (device type ${this.endpoint.type.name})`,
47
+ );
51
48
  }
52
49
 
53
50
  // Initialize DeviceTypeList
@@ -56,8 +56,9 @@ function inspectEndpoint(endpoint: Endpoint, properties: PhysicalDevicePropertie
56
56
 
57
57
  // Battery power
58
58
  const powerSourceFeatures = endpoint.maybeFeaturesOf(PowerSourceClient);
59
- if (powerSourceFeatures) {
60
- const status = endpoint.stateOf(PowerSourceClient).status;
59
+ const powerSourceState = powerSourceFeatures ? endpoint.maybeStateOf(PowerSourceClient) : undefined;
60
+ if (powerSourceFeatures && powerSourceState) {
61
+ const { status } = powerSourceState;
61
62
  if (powerSourceFeatures.wired) {
62
63
  if (status === PowerSource.PowerSourceStatus.Active) {
63
64
  // Should we only consider A/C "mains" powered? What is a DC adapter? What is an external battery?
@@ -82,14 +83,14 @@ function inspectEndpoint(endpoint: Endpoint, properties: PhysicalDevicePropertie
82
83
 
83
84
  // Sleepy thread device
84
85
  const threadNetworkDiagnostics = endpoint.behaviors.typeFor(ThreadNetworkDiagnosticsClient);
85
- if (threadNetworkDiagnostics) {
86
- const tnd = endpoint.stateOf(threadNetworkDiagnostics);
86
+ const tnd = threadNetworkDiagnostics ? endpoint.maybeStateOf(threadNetworkDiagnostics) : undefined;
87
+ if (tnd) {
87
88
  if (tnd.routingRole === ThreadNetworkDiagnostics.RoutingRole.SleepyEndDevice) {
88
89
  properties.isThreadSleepyEndDevice = true;
89
90
  }
90
91
  if (tnd.extendedPanId !== undefined && tnd.extendedPanId !== null) {
91
92
  properties.threadActive = true;
92
- properties.threadPan = tnd.extendedPanId === undefined ? undefined : BigInt(tnd.extendedPanId);
93
+ properties.threadPan = BigInt(tnd.extendedPanId);
93
94
  properties.threadChannel = tnd.channel ?? undefined;
94
95
  } else {
95
96
  properties.threadActive = false;
@@ -7,6 +7,7 @@
7
7
  import { EndpointInitializer } from "#endpoint/properties/EndpointInitializer.js";
8
8
  import { ClientNode } from "#node/ClientNode.js";
9
9
  import { NodePhysicalProperties } from "#node/NodePhysicalProperties.js";
10
+ import { deepCopy } from "@matter/general";
10
11
  import { PhysicalDeviceProperties } from "@matter/protocol";
11
12
  import { ClientEndpointInitializer } from "./ClientEndpointInitializer.js";
12
13
 
@@ -22,6 +23,7 @@ export function ClientNodePhysicalProperties(node: ClientNode) {
22
23
  }
23
24
 
24
25
  let properties: PhysicalDeviceProperties | undefined;
26
+ let frozen = false;
25
27
 
26
28
  const result: PhysicalDeviceProperties = {
27
29
  get supportsThread() {
@@ -72,11 +74,22 @@ export function ClientNodePhysicalProperties(node: ClientNode) {
72
74
  cache.set(node, result);
73
75
 
74
76
  const structure = (node.env.get(EndpointInitializer) as ClientEndpointInitializer).structure;
75
- structure.changed.on(() => (properties = undefined));
77
+ structure.changed.on(() => {
78
+ if (frozen) return;
79
+ properties = undefined;
80
+ });
81
+
82
+ // Snapshot before runtime close detaches behavior state; cleared again if the node comes back online.
83
+ node.lifecycle.goingOffline.on(() => freeze());
84
+ node.lifecycle.online.on(() => {
85
+ frozen = false;
86
+ properties = undefined;
87
+ });
76
88
 
77
89
  // WeakMap entries are GC'd automatically but appear as strong references in heap snapshots, causing false
78
- // positives in leak detection. Explicit deletion avoids this
90
+ // positives in leak detection. Explicit deletion avoids this.
79
91
  node.lifecycle.destroyed.once(() => {
92
+ freeze();
80
93
  cache.delete(node);
81
94
  });
82
95
 
@@ -88,4 +101,10 @@ export function ClientNodePhysicalProperties(node: ClientNode) {
88
101
  }
89
102
  return properties;
90
103
  }
104
+
105
+ function freeze() {
106
+ if (frozen) return;
107
+ properties = deepCopy(props());
108
+ frozen = true;
109
+ }
91
110
  }