@matter/node 0.16.0-alpha.0-20251001-7eb06da95 → 0.16.0-alpha.0-20251004-92135c7df

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 (103) hide show
  1. package/dist/cjs/behavior/internal/BehaviorBacking.d.ts +4 -0
  2. package/dist/cjs/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  3. package/dist/cjs/behavior/internal/BehaviorBacking.js +6 -0
  4. package/dist/cjs/behavior/internal/BehaviorBacking.js.map +1 -1
  5. package/dist/cjs/behavior/internal/Reactors.d.ts +1 -1
  6. package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  7. package/dist/cjs/behavior/system/commissioning/CommissioningClient.js +15 -0
  8. package/dist/cjs/behavior/system/commissioning/CommissioningClient.js.map +1 -1
  9. package/dist/cjs/behavior/system/controller/ControllerBehavior.d.ts.map +1 -1
  10. package/dist/cjs/behavior/system/controller/ControllerBehavior.js +2 -16
  11. package/dist/cjs/behavior/system/controller/ControllerBehavior.js.map +1 -1
  12. package/dist/cjs/behavior/system/network/ServerNetworkRuntime.d.ts +4 -4
  13. package/dist/cjs/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
  14. package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js +5 -6
  15. package/dist/cjs/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
  16. package/dist/cjs/behavior/system/subscriptions/SubscriptionsServer.js.map +1 -1
  17. package/dist/cjs/endpoint/Endpoint.d.ts +13 -2
  18. package/dist/cjs/endpoint/Endpoint.d.ts.map +1 -1
  19. package/dist/cjs/endpoint/Endpoint.js +26 -16
  20. package/dist/cjs/endpoint/Endpoint.js.map +1 -1
  21. package/dist/cjs/endpoint/properties/Behaviors.d.ts +5 -1
  22. package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
  23. package/dist/cjs/endpoint/properties/Behaviors.js +7 -0
  24. package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
  25. package/dist/cjs/node/ClientNode.d.ts +2 -0
  26. package/dist/cjs/node/ClientNode.d.ts.map +1 -1
  27. package/dist/cjs/node/ClientNode.js +14 -0
  28. package/dist/cjs/node/ClientNode.js.map +1 -1
  29. package/dist/cjs/node/Node.d.ts.map +1 -1
  30. package/dist/cjs/node/Node.js +3 -0
  31. package/dist/cjs/node/Node.js.map +1 -1
  32. package/dist/cjs/node/NodeLifecycle.d.ts +3 -0
  33. package/dist/cjs/node/NodeLifecycle.d.ts.map +1 -1
  34. package/dist/cjs/node/NodeLifecycle.js +10 -0
  35. package/dist/cjs/node/NodeLifecycle.js.map +1 -1
  36. package/dist/cjs/node/ServerNode.js +1 -1
  37. package/dist/cjs/node/ServerNode.js.map +1 -1
  38. package/dist/cjs/node/client/NodePeerAddressStore.js.map +1 -1
  39. package/dist/cjs/node/server/InteractionServer.d.ts +2 -2
  40. package/dist/cjs/node/server/InteractionServer.d.ts.map +1 -1
  41. package/dist/cjs/storage/client/ClientEndpointStore.d.ts +4 -0
  42. package/dist/cjs/storage/client/ClientEndpointStore.d.ts.map +1 -1
  43. package/dist/cjs/storage/client/ClientEndpointStore.js +6 -0
  44. package/dist/cjs/storage/client/ClientEndpointStore.js.map +1 -1
  45. package/dist/esm/behavior/internal/BehaviorBacking.d.ts +4 -0
  46. package/dist/esm/behavior/internal/BehaviorBacking.d.ts.map +1 -1
  47. package/dist/esm/behavior/internal/BehaviorBacking.js +6 -0
  48. package/dist/esm/behavior/internal/BehaviorBacking.js.map +1 -1
  49. package/dist/esm/behavior/internal/Reactors.d.ts +1 -1
  50. package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  51. package/dist/esm/behavior/system/commissioning/CommissioningClient.js +19 -1
  52. package/dist/esm/behavior/system/commissioning/CommissioningClient.js.map +1 -1
  53. package/dist/esm/behavior/system/controller/ControllerBehavior.d.ts.map +1 -1
  54. package/dist/esm/behavior/system/controller/ControllerBehavior.js +3 -17
  55. package/dist/esm/behavior/system/controller/ControllerBehavior.js.map +1 -1
  56. package/dist/esm/behavior/system/network/ServerNetworkRuntime.d.ts +4 -4
  57. package/dist/esm/behavior/system/network/ServerNetworkRuntime.d.ts.map +1 -1
  58. package/dist/esm/behavior/system/network/ServerNetworkRuntime.js +6 -8
  59. package/dist/esm/behavior/system/network/ServerNetworkRuntime.js.map +1 -1
  60. package/dist/esm/behavior/system/subscriptions/SubscriptionsServer.js.map +1 -1
  61. package/dist/esm/endpoint/Endpoint.d.ts +13 -2
  62. package/dist/esm/endpoint/Endpoint.d.ts.map +1 -1
  63. package/dist/esm/endpoint/Endpoint.js +26 -16
  64. package/dist/esm/endpoint/Endpoint.js.map +1 -1
  65. package/dist/esm/endpoint/properties/Behaviors.d.ts +5 -1
  66. package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
  67. package/dist/esm/endpoint/properties/Behaviors.js +7 -0
  68. package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
  69. package/dist/esm/node/ClientNode.d.ts +2 -0
  70. package/dist/esm/node/ClientNode.d.ts.map +1 -1
  71. package/dist/esm/node/ClientNode.js +16 -2
  72. package/dist/esm/node/ClientNode.js.map +1 -1
  73. package/dist/esm/node/Node.d.ts.map +1 -1
  74. package/dist/esm/node/Node.js +3 -0
  75. package/dist/esm/node/Node.js.map +1 -1
  76. package/dist/esm/node/NodeLifecycle.d.ts +3 -0
  77. package/dist/esm/node/NodeLifecycle.d.ts.map +1 -1
  78. package/dist/esm/node/NodeLifecycle.js +10 -0
  79. package/dist/esm/node/NodeLifecycle.js.map +1 -1
  80. package/dist/esm/node/ServerNode.js +1 -1
  81. package/dist/esm/node/ServerNode.js.map +1 -1
  82. package/dist/esm/node/client/NodePeerAddressStore.js.map +1 -1
  83. package/dist/esm/node/server/InteractionServer.d.ts +2 -2
  84. package/dist/esm/node/server/InteractionServer.d.ts.map +1 -1
  85. package/dist/esm/storage/client/ClientEndpointStore.d.ts +4 -0
  86. package/dist/esm/storage/client/ClientEndpointStore.d.ts.map +1 -1
  87. package/dist/esm/storage/client/ClientEndpointStore.js +6 -0
  88. package/dist/esm/storage/client/ClientEndpointStore.js.map +1 -1
  89. package/package.json +7 -7
  90. package/src/behavior/internal/BehaviorBacking.ts +7 -0
  91. package/src/behavior/system/commissioning/CommissioningClient.ts +22 -0
  92. package/src/behavior/system/controller/ControllerBehavior.ts +3 -21
  93. package/src/behavior/system/network/ServerNetworkRuntime.ts +10 -12
  94. package/src/behavior/system/subscriptions/SubscriptionsServer.ts +2 -2
  95. package/src/endpoint/Endpoint.ts +37 -14
  96. package/src/endpoint/properties/Behaviors.ts +9 -0
  97. package/src/node/ClientNode.ts +28 -2
  98. package/src/node/Node.ts +3 -0
  99. package/src/node/NodeLifecycle.ts +13 -0
  100. package/src/node/ServerNode.ts +2 -2
  101. package/src/node/client/NodePeerAddressStore.ts +2 -2
  102. package/src/node/server/InteractionServer.ts +2 -2
  103. package/src/storage/client/ClientEndpointStore.ts +7 -0
@@ -1 +1 @@
1
- {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../../src/node/Node.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Node.d.ts","sourceRoot":"","sources":["../../../src/node/Node.ts"],"names":[],"mappings":"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"}
@@ -117,6 +117,7 @@ class Node extends Endpoint {
117
117
  if (this.lifecycle.isOnline) {
118
118
  return;
119
119
  }
120
+ this.lifecycle.targetState = "online";
120
121
  await this.lifecycle.mutex.produce(this.startWithMutex.bind(this));
121
122
  }
122
123
  async startWithMutex() {
@@ -156,6 +157,7 @@ class Node extends Endpoint {
156
157
  * Once the node is offline you may use {@link start} to bring the node online again.
157
158
  */
158
159
  async cancel() {
160
+ this.lifecycle.targetState = "offline";
159
161
  await this.lifecycle.mutex.produce(this.cancelWithMutex.bind(this));
160
162
  }
161
163
  /**
@@ -179,6 +181,7 @@ class Node extends Endpoint {
179
181
  this.#runtime = void 0;
180
182
  }
181
183
  async close() {
184
+ this.lifecycle.targetState = "offline";
182
185
  await this.lifecycle.mutex.produce(this.closeWithMutex.bind(this));
183
186
  }
184
187
  async closeWithMutex() {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/Node.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["Node"]
6
6
  }
@@ -59,5 +59,8 @@ export declare class NodeLifecycle extends EndpointLifecycle {
59
59
  * that requires the mutex without causing deadlock.
60
60
  */
61
61
  get mutex(): Mutex;
62
+ set targetState(state: "online" | "offline");
63
+ get shouldBeOnline(): boolean;
64
+ get shouldBeOffline(): boolean;
62
65
  }
63
66
  //# sourceMappingURL=NodeLifecycle.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"NodeLifecycle.d.ts","sourceRoot":"","sources":["../../../src/node/NodeLifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9D;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;;gBAWpC,QAAQ,EAAE,QAAQ;IAsB9B;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED;;OAEG;IACH,IAAI,QAAQ,qBAEX;IAED;;OAEG;IACH,IAAI,MAAM,oDAET;IAED;;OAEG;IACH,IAAI,WAAW,gDAEd;IAED;;OAEG;IACH,IAAI,YAAY,oDAEf;IAED;;OAEG;IACH,IAAI,OAAO,+CAEV;IAED;;OAEG;IACH,IAAI,cAAc,YAEjB;IAED;;OAEG;IACH,IAAI,YAAY,+CAEf;IAED;;OAEG;IACH,IAAI,cAAc,+CAEjB;IAED;;;;;;;;OAQG;IACH,IAAI,KAAK,UAER;CACJ"}
1
+ {"version":3,"file":"NodeLifecycle.d.ts","sourceRoot":"","sources":["../../../src/node/NodeLifecycle.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AACjD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAC9E,OAAO,EAAE,eAAe,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAE9D;;GAEG;AACH,qBAAa,aAAc,SAAQ,iBAAiB;;gBAYpC,QAAQ,EAAE,QAAQ;IAsB9B;;OAEG;IACH,IAAI,QAAQ,YAEX;IAED;;OAEG;IACH,IAAI,QAAQ,qBAEX;IAED;;OAEG;IACH,IAAI,MAAM,oDAET;IAED;;OAEG;IACH,IAAI,WAAW,gDAEd;IAED;;OAEG;IACH,IAAI,YAAY,oDAEf;IAED;;OAEG;IACH,IAAI,OAAO,+CAEV;IAED;;OAEG;IACH,IAAI,cAAc,YAEjB;IAED;;OAEG;IACH,IAAI,YAAY,+CAEf;IAED;;OAEG;IACH,IAAI,cAAc,+CAEjB;IAED;;;;;;;;OAQG;IACH,IAAI,KAAK,UAER;IAED,IAAI,WAAW,CAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,EAE1C;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,eAAe,YAElB;CACJ"}
@@ -15,6 +15,7 @@ class NodeLifecycle extends EndpointLifecycle {
15
15
  #onlineAt;
16
16
  #isCommissioned = false;
17
17
  #mutex;
18
+ #targetState = "offline";
18
19
  constructor(endpoint) {
19
20
  super(endpoint);
20
21
  this.#mutex = new Mutex(endpoint);
@@ -100,6 +101,15 @@ class NodeLifecycle extends EndpointLifecycle {
100
101
  get mutex() {
101
102
  return this.#mutex;
102
103
  }
104
+ set targetState(state) {
105
+ this.#targetState = state;
106
+ }
107
+ get shouldBeOnline() {
108
+ return this.#targetState === "online";
109
+ }
110
+ get shouldBeOffline() {
111
+ return this.#targetState === "offline";
112
+ }
103
113
  }
104
114
  export {
105
115
  NodeLifecycle
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/NodeLifecycle.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,yBAAyB;AAClC,SAAS,iBAAiB,OAAO,kBAAkB;AAK5C,MAAM,sBAAsB,kBAAkB;AAAA,EACjD,UAAU,gBAA0C;AAAA,EACpD,gBAAgB,gBAA0C;AAAA,EAC1D,WAAW,WAAqC;AAAA,EAChD,gBAAgB,WAAqC;AAAA,EACrD,kBAAkB,WAAqC;AAAA,EACvD,eAAe,WAAsC;AAAA,EACrD;AAAA,EACA,kBAAkB;AAAA,EAClB;AAAA,EAEA,YAAY,UAAoB;AAC5B,UAAM,QAAQ;AAEd,SAAK,SAAS,IAAI,MAAM,QAAQ;AAEhC,SAAK,QAAQ,GAAG,MAAM;AAClB,WAAK,YAAY,oBAAI,KAAK;AAAA,IAC9B,CAAC;AACD,SAAK,SAAS,GAAG,MAAM;AACnB,WAAK,YAAY;AAAA,IACrB,CAAC;AACD,SAAK,cAAc,GAAG,MAAM;AACxB,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AACD,SAAK,gBAAgB,GAAG,MAAM;AAC1B,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AACD,SAAK,aAAa,GAAG,oBAAkB;AACnC,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,KAAK,cAAc;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,yBAAyB;AAClC,SAAS,iBAAiB,OAAO,kBAAkB;AAK5C,MAAM,sBAAsB,kBAAkB;AAAA,EACjD,UAAU,gBAA0C;AAAA,EACpD,gBAAgB,gBAA0C;AAAA,EAC1D,WAAW,WAAqC;AAAA,EAChD,gBAAgB,WAAqC;AAAA,EACrD,kBAAkB,WAAqC;AAAA,EACvD,eAAe,WAAsC;AAAA,EACrD;AAAA,EACA,kBAAkB;AAAA,EAClB;AAAA,EACA,eAAqC;AAAA,EAErC,YAAY,UAAoB;AAC5B,UAAM,QAAQ;AAEd,SAAK,SAAS,IAAI,MAAM,QAAQ;AAEhC,SAAK,QAAQ,GAAG,MAAM;AAClB,WAAK,YAAY,oBAAI,KAAK;AAAA,IAC9B,CAAC;AACD,SAAK,SAAS,GAAG,MAAM;AACnB,WAAK,YAAY;AAAA,IACrB,CAAC;AACD,SAAK,cAAc,GAAG,MAAM;AACxB,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AACD,SAAK,gBAAgB,GAAG,MAAM;AAC1B,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AACD,SAAK,aAAa,GAAG,oBAAkB;AACnC,WAAK,kBAAkB;AAAA,IAC3B,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,KAAK,cAAc;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AACd,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,UAAU;AACV,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,eAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,iBAAiB;AACjB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,IAAI,QAAQ;AACR,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,YAAY,OAA6B;AACzC,SAAK,eAAe;AAAA,EACxB;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,iBAAiB;AAAA,EACjC;AAAA,EAEA,IAAI,kBAAkB;AAClB,WAAO,KAAK,iBAAiB;AAAA,EACjC;AACJ;",
5
5
  "names": []
6
6
  }
@@ -65,7 +65,7 @@ class ServerNode extends Node {
65
65
  await this.resetWithMutex();
66
66
  await this.resetStorage();
67
67
  this.construction.start();
68
- if (isOnline) {
68
+ if (isOnline && this.lifecycle.shouldBeOnline) {
69
69
  await this.startWithMutex();
70
70
  } else {
71
71
  await this.construction.ready;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/ServerNode.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["ServerNode"]
6
6
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/client/NodePeerAddressStore.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,wBAAwB;AAEjC,SAAS,uBAAuB;AAEhC,SAA0B,aAAa,gBAAgB,wBAAwB;AAC/E,SAAsB,cAAc;AACpC,SAAS,QAAQ,qBAAsC;AAKhD,MAAM,6BAA6B,iBAAiB;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,qBAAqB,IAAI,eAA2B;AAAA,EAEpD,YAAY,OAAmB;AAC3B,UAAM;AACN,SAAK,SAAS;AAId,UAAM,kBAAkB,MAAM,IAAI,IAAI,eAAe;AACrD,oBAAgB,oBAAoB,KAAK,iBAAiB,KAAK,IAAI;AACnE,oBAAgB,qBAAqB,KAAK,WAAW,KAAK,IAAI;AAAA,EAClE;AAAA,EAEA,iBAAiB,MAAkB,aAA0B,QAAiB;AAC1E,WAAO,WAAW,QAAW;AACzB,eAAS,OAAO,wBAAwB,KAAK,OAAO,IAAI,IAAI,MAAM,CAAC;AACnE,UAAI,KAAK,mBAAmB,IAAI,EAAE,aAAa,OAAO,CAAC,GAAG;AACtD,iBAAS;AAAA,MACb;AAAA,IACJ;AAEA,UAAM,UAAU,YAAY,EAAE,aAAa,OAAO,CAAC;AAEnD,SAAK,mBAAmB,IAAI,SAAS,IAAI;AAEzC,WAAO;AAAA,EACX;AAAA,EAEA,YAA+B;AAC3B,SAAK,qBAAqB,IAAI,eAAe;AAC7C,WAAO,CAAC,GAAG,KAAK,OAAO,KAAK,EACvB,IAAI,UAAQ;AACT,YAAM,gBAAgB,KAAK,MAAM;AACjC,UAAI,CAAC,cAAc,aAAa;AAC5B;AAAA,MACJ;AAEA,WAAK,mBAAmB,IAAI,cAAc,aAAa,IAAI;AAE3D,YAAM,OAAO,cAAc,WAAW,KAAK,CAAAA,UAAQA,MAAK,SAAS,KAAK;AAEtE,aAAO;AAAA,QACH,SAAS,cAAc;AAAA,QACvB,oBAAoB,QAAS,cAAc,IAAI;AAAA,QAC/C,eAAe,iBAAiB,aAAa,aAAa;AAAA,MAC9D;AAAA,IACJ,CAAC,EACA,OAAO,UAAQ,SAAS,MAAS;AAAA,EAC1C;AAAA,EAEA,MAAM,WAAW,MAAuB;AACpC,UAAM,OAAO,KAAK,OAAO,MAAM,IAAI,KAAK,OAAO;AAC/C,QAAI,CAAC,MAAM;AACP;AAAA,IACJ;AAEA,UAAM,KAAK,IAAI,WAAS;AACpB,YAAM,QAAQ,MAAM,cAAc;AAClC,uBAAiB,WAAW,KAAK,eAAe,KAAK;AACrD,UAAI,KAAK,oBAAoB;AAEzB,cAAM,YAAY,CAAC,KAAK,kBAAkB;AAAA,MAC9C;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,WAAW,SAAsB;AAC7B,SAAK,mBAAmB,OAAO,OAAO;AAAA,EAC1C;AAAA,EAEA,kBAA6B;AAAA,EAAC;AAClC;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,wBAAwB;AAEjC,SAAS,uBAAuB;AAEhC,SAA0B,aAAa,gBAAgB,wBAAwB;AAC/E,SAAsB,cAAc;AACpC,SAAS,QAAQ,qBAAuC;AAKjD,MAAM,6BAA6B,iBAAiB;AAAA,EACvD;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,qBAAqB,IAAI,eAA2B;AAAA,EAEpD,YAAY,OAAmB;AAC3B,UAAM;AACN,SAAK,SAAS;AAId,UAAM,kBAAkB,MAAM,IAAI,IAAI,eAAe;AACrD,oBAAgB,oBAAoB,KAAK,iBAAiB,KAAK,IAAI;AACnE,oBAAgB,qBAAqB,KAAK,WAAW,KAAK,IAAI;AAAA,EAClE;AAAA,EAEA,iBAAiB,MAAkB,aAA0B,QAAiB;AAC1E,WAAO,WAAW,QAAW;AACzB,eAAS,OAAO,wBAAwB,KAAK,OAAO,IAAI,IAAI,MAAM,CAAC;AACnE,UAAI,KAAK,mBAAmB,IAAI,EAAE,aAAa,OAAO,CAAC,GAAG;AACtD,iBAAS;AAAA,MACb;AAAA,IACJ;AAEA,UAAM,UAAU,YAAY,EAAE,aAAa,OAAO,CAAC;AAEnD,SAAK,mBAAmB,IAAI,SAAS,IAAI;AAEzC,WAAO;AAAA,EACX;AAAA,EAEA,YAA+B;AAC3B,SAAK,qBAAqB,IAAI,eAAe;AAC7C,WAAO,CAAC,GAAG,KAAK,OAAO,KAAK,EACvB,IAAI,UAAQ;AACT,YAAM,gBAAgB,KAAK,MAAM;AACjC,UAAI,CAAC,cAAc,aAAa;AAC5B;AAAA,MACJ;AAEA,WAAK,mBAAmB,IAAI,cAAc,aAAa,IAAI;AAE3D,YAAM,OAAO,cAAc,WAAW,KAAK,CAAAA,UAAQA,MAAK,SAAS,KAAK;AAEtE,aAAO;AAAA,QACH,SAAS,cAAc;AAAA,QACvB,oBAAoB,QAAS,cAAc,IAAI;AAAA,QAC/C,eAAe,iBAAiB,aAAa,aAAa;AAAA,MAC9D;AAAA,IACJ,CAAC,EACA,OAAO,UAAQ,SAAS,MAAS;AAAA,EAC1C;AAAA,EAEA,MAAM,WAAW,MAAuB;AACpC,UAAM,OAAO,KAAK,OAAO,MAAM,IAAI,KAAK,OAAO;AAC/C,QAAI,CAAC,MAAM;AACP;AAAA,IACJ;AAEA,UAAM,KAAK,IAAI,WAAS;AACpB,YAAM,QAAQ,MAAM,cAAc;AAClC,uBAAiB,WAAW,KAAK,eAAe,KAAK;AACrD,UAAI,KAAK,oBAAoB;AAEzB,cAAM,YAAY,CAAC,KAAK,kBAAkB;AAAA,MAC9C;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,WAAW,SAAsB;AAC7B,SAAK,mBAAmB,OAAO,OAAO;AAAA,EAC1C;AAAA,EAEA,kBAA6B;AAAA,EAAC;AAClC;",
5
5
  "names": ["addr"]
6
6
  }
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { AccessControlServer } from "#behaviors/access-control";
7
- import { Duration, Observable, ServerAddressIp } from "#general";
7
+ import { Duration, Observable, ServerAddressUdp } from "#general";
8
8
  import { DataReport, DataReportPayloadIterator, ExchangeManager, InteractionRecipient, InteractionServerMessenger, InvokeRequest, Message, MessageExchange, NodeSession, PeerAddress, ProtocolHandler, ReadRequest, SessionManager, SubscribeRequest, TimedRequest, WriteRequest, WriteResponse } from "#protocol";
9
9
  import { TlvAttributePath, TlvEventPath, TypeFromSchema } from "#types";
10
10
  import { ServerNode } from "../ServerNode.js";
@@ -19,7 +19,7 @@ export interface PeerSubscription {
19
19
  isFabricFiltered: boolean;
20
20
  maxInterval: Duration;
21
21
  sendInterval: Duration;
22
- operationalAddress?: ServerAddressIp;
22
+ operationalAddress?: ServerAddressUdp;
23
23
  }
24
24
  /**
25
25
  * Interfaces {@link InteractionServer} with other components.
@@ -1 +1 @@
1
- {"version":3,"file":"InteractionServer.d.ts","sourceRoot":"","sources":["../../../../src/node/server/InteractionServer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"InteractionServer.d.ts","sourceRoot":"","sources":["../../../../src/node/server/InteractionServer.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,10 @@ export declare class ClientEndpointStore extends EndpointStore {
11
11
  #private;
12
12
  constructor(owner: ClientNodeStore, number: EndpointNumber, storage: StorageContext);
13
13
  get number(): EndpointNumber;
14
+ /**
15
+ * Shortcut to persisted peer address so we can use in logging prior to full initialization.
16
+ */
17
+ get peerAddress(): unknown;
14
18
  participantFor(transaction: Transaction): import("#general").Participant;
15
19
  /**
16
20
  * Create a {@link Datasource.ExternallyMutableStore} for a behavior.
@@ -1 +1 @@
1
- {"version":3,"file":"ClientEndpointStore.d.ts","sourceRoot":"","sources":["../../../../src/storage/client/ClientEndpointStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D,qBAAa,mBAAoB,SAAQ,aAAa;;gBAItC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc;IAMnF,IAAI,MAAM,mBAET;IAED,cAAc,CAAC,WAAW,EAAE,WAAW;IASvC;;OAEG;IACH,sBAAsB,CAAC,UAAU,EAAE,MAAM;IAKzC;;OAEG;IACH,2BAA2B,CAAC,UAAU,EAAE,MAAM;CAIjD"}
1
+ {"version":3,"file":"ClientEndpointStore.d.ts","sourceRoot":"","sources":["../../../../src/storage/client/ClientEndpointStore.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvD,OAAO,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAE1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AAC7C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAI5D,qBAAa,mBAAoB,SAAQ,aAAa;;gBAItC,KAAK,EAAE,eAAe,EAAE,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,cAAc;IAMnF,IAAI,MAAM,mBAET;IAED;;OAEG;IACH,IAAI,WAAW,YAEd;IAED,cAAc,CAAC,WAAW,EAAE,WAAW;IASvC;;OAEG;IACH,sBAAsB,CAAC,UAAU,EAAE,MAAM;IAKzC;;OAEG;IACH,2BAA2B,CAAC,UAAU,EAAE,MAAM;CAIjD"}
@@ -18,6 +18,12 @@ class ClientEndpointStore extends EndpointStore {
18
18
  get number() {
19
19
  return this.#number;
20
20
  }
21
+ /**
22
+ * Shortcut to persisted peer address so we can use in logging prior to full initialization.
23
+ */
24
+ get peerAddress() {
25
+ return this.initialValues.get("commissioning")?.["peerAddress"];
26
+ }
21
27
  participantFor(transaction) {
22
28
  let participant = transaction.getParticipant(this.#owner);
23
29
  if (participant === void 0) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/storage/client/ClientEndpointStore.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAGhC,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AAEhC,MAAM,4BAA4B,cAAc;AAAA,EACnD;AAAA,EACA;AAAA,EAEA,YAAY,OAAwB,QAAwB,SAAyB;AACjF,UAAM,OAAO;AACb,SAAK,SAAS;AACd,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,eAAe,aAA0B;AACrC,QAAI,cAAc,YAAY,eAAe,KAAK,MAAM;AACxD,QAAI,gBAAgB,QAAW;AAC3B,oBAAc,IAAI,uBAAuB,KAAK,MAAM;AACpD,kBAAY,gBAAgB,WAAW;AAAA,IAC3C;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAuB,YAAoB;AACvC,UAAM,gBAAgB,KAAK,qBAAqB,UAAU;AAC1D,WAAO,gBAAgB,MAAM,YAAY,aAAa;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA,EAKA,4BAA4B,YAAoB;AAC5C,UAAM,gBAAgB,KAAK,qBAAqB,UAAU;AAC1D,WAAO,gBAAgB,MAAM,YAAY,aAAa;AAAA,EAC1D;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAGhC,SAAS,uBAAuB;AAChC,SAAS,8BAA8B;AAEhC,MAAM,4BAA4B,cAAc;AAAA,EACnD;AAAA,EACA;AAAA,EAEA,YAAY,OAAwB,QAAwB,SAAyB;AACjF,UAAM,OAAO;AACb,SAAK,SAAS;AACd,SAAK,UAAU;AAAA,EACnB;AAAA,EAEA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,cAAc;AACd,WAAO,KAAK,cAAc,IAAI,eAAe,IAAI,aAAa;AAAA,EAClE;AAAA,EAEA,eAAe,aAA0B;AACrC,QAAI,cAAc,YAAY,eAAe,KAAK,MAAM;AACxD,QAAI,gBAAgB,QAAW;AAC3B,oBAAc,IAAI,uBAAuB,KAAK,MAAM;AACpD,kBAAY,gBAAgB,WAAW;AAAA,IAC3C;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,uBAAuB,YAAoB;AACvC,UAAM,gBAAgB,KAAK,qBAAqB,UAAU;AAC1D,WAAO,gBAAgB,MAAM,YAAY,aAAa;AAAA,EAC1D;AAAA;AAAA;AAAA;AAAA,EAKA,4BAA4B,YAAoB;AAC5C,UAAM,gBAAgB,KAAK,qBAAqB,UAAU;AAC1D,WAAO,gBAAgB,MAAM,YAAY,aAAa;AAAA,EAC1D;AACJ;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/node",
3
- "version": "0.16.0-alpha.0-20251001-7eb06da95",
3
+ "version": "0.16.0-alpha.0-20251004-92135c7df",
4
4
  "description": "API for building Matter nodes",
5
5
  "keywords": [
6
6
  "iot",
@@ -42,14 +42,14 @@
42
42
  "#*": "./src/*"
43
43
  },
44
44
  "dependencies": {
45
- "@matter/general": "0.16.0-alpha.0-20251001-7eb06da95",
46
- "@matter/model": "0.16.0-alpha.0-20251001-7eb06da95",
47
- "@matter/types": "0.16.0-alpha.0-20251001-7eb06da95",
48
- "@matter/protocol": "0.16.0-alpha.0-20251001-7eb06da95"
45
+ "@matter/general": "0.16.0-alpha.0-20251004-92135c7df",
46
+ "@matter/model": "0.16.0-alpha.0-20251004-92135c7df",
47
+ "@matter/types": "0.16.0-alpha.0-20251004-92135c7df",
48
+ "@matter/protocol": "0.16.0-alpha.0-20251004-92135c7df"
49
49
  },
50
50
  "devDependencies": {
51
- "@matter/tools": "0.16.0-alpha.0-20251001-7eb06da95",
52
- "@matter/testing": "0.16.0-alpha.0-20251001-7eb06da95"
51
+ "@matter/tools": "0.16.0-alpha.0-20251004-92135c7df",
52
+ "@matter/testing": "0.16.0-alpha.0-20251004-92135c7df"
53
53
  },
54
54
  "files": [
55
55
  "dist/**/*",
@@ -189,6 +189,13 @@ export abstract class BehaviorBacking {
189
189
  return this.#datasource;
190
190
  }
191
191
 
192
+ /**
193
+ * Access the datasource if present.
194
+ */
195
+ get maybeDatasource() {
196
+ return this.#datasource;
197
+ }
198
+
192
199
  protected get datasourceOptions(): Datasource.Options {
193
200
  return {
194
201
  crypto: this.#endpoint.env.get(Crypto),
@@ -8,8 +8,10 @@ import { Behavior } from "#behavior/Behavior.js";
8
8
  import { Events as BaseEvents } from "#behavior/Events.js";
9
9
  import { OperationalCredentialsClient } from "#behaviors/operational-credentials";
10
10
  import {
11
+ Diagnostic,
11
12
  Duration,
12
13
  ImplementationError,
14
+ Logger,
13
15
  NotImplementedError,
14
16
  Observable,
15
17
  ServerAddress,
@@ -45,6 +47,8 @@ import { ControllerBehavior } from "../controller/ControllerBehavior.js";
45
47
  import { NetworkClient } from "../network/NetworkClient.js";
46
48
  import { RemoteDescriptor } from "./RemoteDescriptor.js";
47
49
 
50
+ const logger = Logger.get("CommissioningClient");
51
+
48
52
  /**
49
53
  * Client functionality related to commissioning.
50
54
  *
@@ -155,6 +159,13 @@ export class CommissioningClient extends Behavior {
155
159
  network.state.startupSubscription = opts.startupSubscription;
156
160
  network.state.caseAuthenticatedTags = opts.caseAuthenticatedTags;
157
161
 
162
+ logger.notice(
163
+ "Commissioned",
164
+ Diagnostic.strong(this.endpoint.id),
165
+ "as",
166
+ Diagnostic.strong(this.endpoint.identity),
167
+ );
168
+
158
169
  node.lifecycle.commissioned.emit(this.context);
159
170
 
160
171
  await node.start();
@@ -177,11 +188,22 @@ export class CommissioningClient extends Behavior {
177
188
  throw new ImplementationError("Cannot decommission node that is not commissioned");
178
189
  }
179
190
 
191
+ const formerAddress = PeerAddress(peerAddress).toString();
192
+
180
193
  const opcreds = this.agent.get(OperationalCredentialsClient);
181
194
 
182
195
  await opcreds.removeFabric({ fabricIndex: opcreds.state.currentFabricIndex });
183
196
 
184
197
  this.state.peerAddress = undefined;
198
+
199
+ await this.context.transaction.commit();
200
+
201
+ logger.info(
202
+ "Decommissioned",
203
+ Diagnostic.strong(this.endpoint.id),
204
+ "formerly",
205
+ Diagnostic.strong(formerAddress),
206
+ );
185
207
  }
186
208
 
187
209
  /**
@@ -6,7 +6,7 @@
6
6
 
7
7
  import { Behavior } from "#behavior/Behavior.js";
8
8
  import { BasicInformationBehavior } from "#behaviors/basic-information";
9
- import { ImplementationError, isNetworkInterface, NetInterfaceSet, TransportInterfaceSet } from "#general";
9
+ import { ConnectionlessTransportSet, ImplementationError } from "#general";
10
10
  import { Node } from "#node/Node.js";
11
11
  import { InteractionServer } from "#node/server/InteractionServer.js";
12
12
  import {
@@ -110,15 +110,9 @@ export class ControllerBehavior extends Behavior {
110
110
 
111
111
  #nodeOnline() {
112
112
  // Configure network connections
113
- const netInterfaces = this.env.get(NetInterfaceSet);
114
- const netTransports = this.env.get(TransportInterfaceSet);
115
- for (const transport of netTransports) {
116
- if (isNetworkInterface(transport)) {
117
- netInterfaces.add(transport);
118
- }
119
- }
113
+ const netTransports = this.env.get(ConnectionlessTransportSet);
120
114
  if (this.state.ble) {
121
- netInterfaces.add(this.env.get(Ble).centralInterface);
115
+ netTransports.add(this.env.get(Ble).centralInterface);
122
116
  }
123
117
 
124
118
  // Install handler to receive data reports for subscriptions
@@ -147,18 +141,6 @@ export class ControllerBehavior extends Behavior {
147
141
 
148
142
  async #nodeGoingOffline() {
149
143
  await this.env.close(ClientSubscriptions);
150
-
151
- const netInterfaces = this.env.get(NetInterfaceSet);
152
- const netTransports = this.env.get(TransportInterfaceSet);
153
-
154
- // Remove "transports" from the net interface set so they are not closed twice
155
- for (const intf of netInterfaces) {
156
- if (netTransports.has(intf)) {
157
- netInterfaces.delete(intf);
158
- }
159
- }
160
-
161
- await this.env.close(NetInterfaceSet);
162
144
  }
163
145
 
164
146
  #enableScanningForFabric(fabric: Fabric) {
@@ -5,17 +5,16 @@
5
5
  */
6
6
 
7
7
  import {
8
+ ConnectionlessTransport,
9
+ ConnectionlessTransportSet,
8
10
  Crypto,
9
11
  InterfaceType,
10
12
  Logger,
11
- NetInterfaceSet,
12
13
  Network,
13
14
  NetworkInterface,
14
15
  NetworkInterfaceDetailed,
15
16
  NoAddressAvailableError,
16
17
  ObserverGroup,
17
- TransportInterface,
18
- TransportInterfaceSet,
19
18
  UdpInterface,
20
19
  } from "#general";
21
20
  import type { ServerNode } from "#node/ServerNode.js";
@@ -60,7 +59,7 @@ function convertNetworkEnvironmentType(type: string | number) {
60
59
  export class ServerNetworkRuntime extends NetworkRuntime {
61
60
  #mdnsAdvertiser?: MdnsAdvertiser;
62
61
  #bleAdvertiser?: BleAdvertiser;
63
- #bleTransport?: TransportInterface;
62
+ #bleTransport?: ConnectionlessTransport;
64
63
  #ipv6UdpInterface?: UdpInterface;
65
64
  #observers = new ObserverGroup(this);
66
65
  #groupNetworking?: ServerGroupNetworking;
@@ -132,9 +131,9 @@ export class ServerNetworkRuntime extends NetworkRuntime {
132
131
  }
133
132
 
134
133
  /**
135
- * Add transports to the {@link TransportInterfaceSet}.
134
+ * Add transports to the {@link ConnectionlessTransportSet}.
136
135
  */
137
- protected async addTransports(interfaces: TransportInterfaceSet) {
136
+ protected async addTransports(interfaces: ConnectionlessTransportSet) {
138
137
  const netconf = this.owner.state.network;
139
138
 
140
139
  const port = this.owner.state.network.port;
@@ -237,9 +236,9 @@ export class ServerNetworkRuntime extends NetworkRuntime {
237
236
  await device.deleteAdvertiser(advertiser);
238
237
  }
239
238
 
240
- async #deleteTransport(transport: TransportInterface) {
241
- const transportInterfaces = this.owner.env.get(TransportInterfaceSet);
242
- transportInterfaces.delete(transport);
239
+ async #deleteTransport(transport: ConnectionlessTransport) {
240
+ const netInterfaces = this.owner.env.get(ConnectionlessTransportSet);
241
+ netInterfaces.delete(transport);
243
242
  await transport.close();
244
243
  }
245
244
 
@@ -252,9 +251,8 @@ export class ServerNetworkRuntime extends NetworkRuntime {
252
251
  const { env } = owner;
253
252
 
254
253
  // Configure network
255
- const interfaces = env.get(TransportInterfaceSet);
254
+ const interfaces = env.get(ConnectionlessTransportSet);
256
255
  await this.addTransports(interfaces);
257
- env.set(NetInterfaceSet, interfaces);
258
256
 
259
257
  // Initialize MDNS
260
258
  const mdns = await owner.env.load(MdnsService);
@@ -327,7 +325,7 @@ export class ServerNetworkRuntime extends NetworkRuntime {
327
325
 
328
326
  await env.close(ExchangeManager);
329
327
  await env.close(SecureChannelProtocol);
330
- await env.close(TransportInterfaceSet);
328
+ await env.close(ConnectionlessTransportSet);
331
329
  await env.close(InteractionServer);
332
330
  }
333
331
 
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { deepCopy, isIpNetworkChannel, Logger, MatterError, MaybePromise, Seconds, ServerAddressIp } from "#general";
7
+ import { deepCopy, isIpNetworkChannel, Logger, MatterError, MaybePromise, Seconds, ServerAddressUdp } from "#general";
8
8
  import { DatatypeModel, FieldElement } from "#model";
9
9
  import { InteractionServer, PeerSubscription } from "#node/server/InteractionServer.js";
10
10
  import { ServerSubscription } from "#node/server/ServerSubscription.js";
@@ -151,7 +151,7 @@ export class SubscriptionsBehavior extends Behavior {
151
151
  const { fabricIndex, nodeId } = peerAddress;
152
152
 
153
153
  // TODO Remove when we store peer addresses also for operational nodes
154
- let operationalAddress: ServerAddressIp | undefined;
154
+ let operationalAddress: ServerAddressUdp | undefined;
155
155
  try {
156
156
  const channel = this.env.get(ChannelManager).getChannel(peerAddress, session).channel;
157
157
  operationalAddress = isIpNetworkChannel(channel) ? channel.networkAddress : undefined;
@@ -24,6 +24,7 @@ import { DataModelPath } from "#model";
24
24
  import type { Node } from "#node/Node.js";
25
25
  import { IdentityService } from "#node/server/IdentityService.js";
26
26
  import { ProtocolService } from "#node/server/ProtocolService.js";
27
+ import { Val } from "#protocol";
27
28
  import { EndpointNumber } from "#types";
28
29
  import { RootEndpoint } from "../endpoints/root.js";
29
30
  import { Agent } from "./Agent.js";
@@ -170,14 +171,28 @@ export class Endpoint<T extends EndpointType = EndpointType.Empty> {
170
171
  return this.#stateView;
171
172
  }
172
173
 
174
+ /**
175
+ * Current state for a specific behavior ID.
176
+ */
177
+ stateOf(type: string): Immutable<Val.Struct>;
178
+
173
179
  /**
174
180
  * Current state for a specific behavior.
175
181
  */
176
- stateOf<T extends Behavior.Type>(type: T) {
177
- if (!this.behaviors.has(type)) {
178
- throw new ImplementationError(`Behavior ${type.id} is not supported by ${this}`);
182
+ stateOf<T extends Behavior.Type>(type: T): Immutable<Behavior.StateOf<T>>;
183
+
184
+ stateOf(type: Behavior.Type | string) {
185
+ if (typeof type === "string") {
186
+ if (!(type in this.#stateView)) {
187
+ throw new ImplementationError(`Behavior ${type} is not supported by ${this}`);
188
+ }
189
+ } else {
190
+ if (!this.behaviors.has(type)) {
191
+ throw new ImplementationError(`Behavior ${type.id} is not supported by ${this}`);
192
+ }
193
+ type = type.id;
179
194
  }
180
- return (this.#stateView as Record<string, unknown>)[type.id] as Immutable<Behavior.StateOf<T>>;
195
+ return (this.#stateView as Record<string, unknown>)[type];
181
196
  }
182
197
 
183
198
  /**
@@ -658,7 +673,7 @@ export class Endpoint<T extends EndpointType = EndpointType.Empty> {
658
673
  }
659
674
 
660
675
  /**
661
- * Erase all persisted data and destroy the node.
676
+ * Erase all persisted data and destroy the endpoint.
662
677
  */
663
678
  async delete() {
664
679
  await this.erase();
@@ -719,20 +734,28 @@ export class Endpoint<T extends EndpointType = EndpointType.Empty> {
719
734
  * Path identifying the endpoint in the Matter data model.
720
735
  */
721
736
  get path(): DataModelPath {
722
- let ident;
737
+ if (this.#owner) {
738
+ return this.#owner.path.at(this.identity, this.#type.name);
739
+ }
740
+
741
+ return DataModelPath(this.identity, this.type?.name);
742
+ }
743
+
744
+ /**
745
+ * Diagnostic identity.
746
+ *
747
+ * This is an unqualified path segment.
748
+ */
749
+ get identity() {
723
750
  if (this.lifecycle?.hasId) {
724
- ident = this.id;
725
- } else if (this.lifecycle?.hasNumber) {
726
- ident = this.number;
727
- } else {
728
- ident = "?";
751
+ return this.id;
729
752
  }
730
753
 
731
- if (this.#owner) {
732
- return this.#owner.path.at(ident, this.#type.name);
754
+ if (this.lifecycle?.hasNumber) {
755
+ return this.number;
733
756
  }
734
757
 
735
- return DataModelPath(ident, this.type?.name);
758
+ return "?";
736
759
  }
737
760
 
738
761
  /**
@@ -19,6 +19,7 @@ import {
19
19
  describeList,
20
20
  Diagnostic,
21
21
  EventEmitter,
22
+ Immutable,
22
23
  ImplementationError,
23
24
  Lifecycle,
24
25
  Logger,
@@ -557,6 +558,14 @@ export class Behaviors {
557
558
  return elements;
558
559
  }
559
560
 
561
+ /**
562
+ * Access the state view of a behavior if loaded.
563
+ */
564
+ maybeStateOf(behaviorId: string): Immutable<Val.Struct> | undefined {
565
+ const backing = this.#backings[behaviorId];
566
+ return backing?.maybeDatasource?.view;
567
+ }
568
+
560
569
  [Symbol.iterator]() {
561
570
  return Object.values(this.#supported)[Symbol.iterator]();
562
571
  }
@@ -11,8 +11,8 @@ import { NetworkClient } from "#behavior/system/network/NetworkClient.js";
11
11
  import { NetworkRuntime } from "#behavior/system/network/NetworkRuntime.js";
12
12
  import { Agent } from "#endpoint/Agent.js";
13
13
  import { EndpointInitializer } from "#endpoint/properties/EndpointInitializer.js";
14
- import { Identity, Lifecycle, MaybePromise } from "#general";
15
- import { Interactable, OccurrenceManager } from "#protocol";
14
+ import { Diagnostic, Identity, Lifecycle, Logger, MaybePromise } from "#general";
15
+ import { Interactable, OccurrenceManager, PeerAddress } from "#protocol";
16
16
  import { ClientNodeStore } from "#storage/client/ClientNodeStore.js";
17
17
  import { RemoteWriter } from "#storage/client/RemoteWriter.js";
18
18
  import { ServerNodeStore } from "#storage/server/ServerNodeStore.js";
@@ -22,6 +22,8 @@ import { ClientNodeInteraction } from "./client/ClientNodeInteraction.js";
22
22
  import { Node } from "./Node.js";
23
23
  import type { ServerNode } from "./ServerNode.js";
24
24
 
25
+ const logger = Logger.get("ClientNode");
26
+
25
27
  /**
26
28
  * A remote Matter {@link Node}.
27
29
  *
@@ -188,6 +190,30 @@ export class ClientNode extends Node<ClientNode.RootEndpoint> {
188
190
 
189
191
  return this.#interaction;
190
192
  }
193
+
194
+ override get identity() {
195
+ // If commissioned, use the peer address for logging purposes
196
+ let address = this.behaviors.maybeStateOf("commissioning")?.peerAddress as PeerAddress | undefined;
197
+
198
+ // During early initialization commissioning state may not be loaded, so check directly in storage too
199
+ if (!address) {
200
+ address = this.env.get(ClientNodeStore).storeForEndpoint(this).peerAddress as PeerAddress | undefined;
201
+ }
202
+
203
+ // Use the peer address as a log identifier if present
204
+ if (address) {
205
+ return PeerAddress(address).toString();
206
+ }
207
+
208
+ // Fall back to persistence ID
209
+ return super.identity;
210
+ }
211
+
212
+ protected override statusUpdate(message: string): void {
213
+ // Log client node status updates as info rather than notice and change the log facility to make clear it's a
214
+ // client
215
+ logger.info(Diagnostic.strong(this.toString()), message);
216
+ }
191
217
  }
192
218
 
193
219
  export namespace ClientNode {