@matter/node 0.15.2-alpha.0-20250703-2e16aba2b → 0.15.2-alpha.0-20250708-b8eb61a5e

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 (76) hide show
  1. package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts +35 -11
  2. package/dist/cjs/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  3. package/dist/cjs/behavior/system/commissioning/CommissioningClient.js +67 -10
  4. package/dist/cjs/behavior/system/commissioning/CommissioningClient.js.map +2 -2
  5. package/dist/cjs/behavior/system/controller/discovery/CommissioningDiscovery.d.ts +2 -2
  6. package/dist/cjs/behavior/system/controller/discovery/CommissioningDiscovery.d.ts.map +1 -1
  7. package/dist/cjs/behavior/system/controller/discovery/CommissioningDiscovery.js +3 -1
  8. package/dist/cjs/behavior/system/controller/discovery/CommissioningDiscovery.js.map +1 -1
  9. package/dist/cjs/behavior/system/controller/discovery/Discovery.d.ts +9 -0
  10. package/dist/cjs/behavior/system/controller/discovery/Discovery.d.ts.map +1 -1
  11. package/dist/cjs/behavior/system/controller/discovery/Discovery.js +1 -0
  12. package/dist/cjs/behavior/system/controller/discovery/Discovery.js.map +1 -1
  13. package/dist/cjs/behavior/system/controller/discovery/InstanceDiscovery.d.ts +1 -1
  14. package/dist/cjs/behavior/system/controller/discovery/InstanceDiscovery.d.ts.map +1 -1
  15. package/dist/cjs/behavior/system/controller/discovery/InstanceDiscovery.js.map +1 -1
  16. package/dist/cjs/behavior/system/product-description/ProductDescriptionServer.d.ts.map +1 -1
  17. package/dist/cjs/behavior/system/product-description/ProductDescriptionServer.js +5 -6
  18. package/dist/cjs/behavior/system/product-description/ProductDescriptionServer.js.map +1 -1
  19. package/dist/cjs/endpoint/properties/Behaviors.d.ts.map +1 -1
  20. package/dist/cjs/endpoint/properties/Behaviors.js +8 -3
  21. package/dist/cjs/endpoint/properties/Behaviors.js.map +1 -1
  22. package/dist/cjs/endpoint/properties/EndpointContainer.d.ts +1 -1
  23. package/dist/cjs/endpoint/properties/EndpointContainer.d.ts.map +1 -1
  24. package/dist/cjs/endpoint/properties/EndpointContainer.js +11 -3
  25. package/dist/cjs/endpoint/properties/EndpointContainer.js.map +1 -1
  26. package/dist/cjs/node/ClientNode.d.ts +14 -0
  27. package/dist/cjs/node/ClientNode.d.ts.map +1 -1
  28. package/dist/cjs/node/ClientNode.js +25 -0
  29. package/dist/cjs/node/ClientNode.js.map +1 -1
  30. package/dist/cjs/node/client/ClientNodes.d.ts +1 -1
  31. package/dist/cjs/node/client/ClientNodes.d.ts.map +1 -1
  32. package/dist/cjs/node/client/ClientNodes.js +1 -1
  33. package/dist/cjs/node/client/ClientNodes.js.map +1 -1
  34. package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts +35 -11
  35. package/dist/esm/behavior/system/commissioning/CommissioningClient.d.ts.map +1 -1
  36. package/dist/esm/behavior/system/commissioning/CommissioningClient.js +70 -11
  37. package/dist/esm/behavior/system/commissioning/CommissioningClient.js.map +1 -1
  38. package/dist/esm/behavior/system/controller/discovery/CommissioningDiscovery.d.ts +2 -2
  39. package/dist/esm/behavior/system/controller/discovery/CommissioningDiscovery.d.ts.map +1 -1
  40. package/dist/esm/behavior/system/controller/discovery/CommissioningDiscovery.js +3 -1
  41. package/dist/esm/behavior/system/controller/discovery/CommissioningDiscovery.js.map +1 -1
  42. package/dist/esm/behavior/system/controller/discovery/Discovery.d.ts +9 -0
  43. package/dist/esm/behavior/system/controller/discovery/Discovery.d.ts.map +1 -1
  44. package/dist/esm/behavior/system/controller/discovery/Discovery.js +1 -0
  45. package/dist/esm/behavior/system/controller/discovery/Discovery.js.map +1 -1
  46. package/dist/esm/behavior/system/controller/discovery/InstanceDiscovery.d.ts +1 -1
  47. package/dist/esm/behavior/system/controller/discovery/InstanceDiscovery.d.ts.map +1 -1
  48. package/dist/esm/behavior/system/controller/discovery/InstanceDiscovery.js.map +1 -1
  49. package/dist/esm/behavior/system/product-description/ProductDescriptionServer.d.ts.map +1 -1
  50. package/dist/esm/behavior/system/product-description/ProductDescriptionServer.js +6 -7
  51. package/dist/esm/behavior/system/product-description/ProductDescriptionServer.js.map +1 -1
  52. package/dist/esm/endpoint/properties/Behaviors.d.ts.map +1 -1
  53. package/dist/esm/endpoint/properties/Behaviors.js +8 -3
  54. package/dist/esm/endpoint/properties/Behaviors.js.map +1 -1
  55. package/dist/esm/endpoint/properties/EndpointContainer.d.ts +1 -1
  56. package/dist/esm/endpoint/properties/EndpointContainer.d.ts.map +1 -1
  57. package/dist/esm/endpoint/properties/EndpointContainer.js +11 -3
  58. package/dist/esm/endpoint/properties/EndpointContainer.js.map +1 -1
  59. package/dist/esm/node/ClientNode.d.ts +14 -0
  60. package/dist/esm/node/ClientNode.d.ts.map +1 -1
  61. package/dist/esm/node/ClientNode.js +25 -0
  62. package/dist/esm/node/ClientNode.js.map +1 -1
  63. package/dist/esm/node/client/ClientNodes.d.ts +1 -1
  64. package/dist/esm/node/client/ClientNodes.d.ts.map +1 -1
  65. package/dist/esm/node/client/ClientNodes.js +1 -1
  66. package/dist/esm/node/client/ClientNodes.js.map +1 -1
  67. package/package.json +7 -7
  68. package/src/behavior/system/commissioning/CommissioningClient.ts +112 -27
  69. package/src/behavior/system/controller/discovery/CommissioningDiscovery.ts +5 -3
  70. package/src/behavior/system/controller/discovery/Discovery.ts +11 -0
  71. package/src/behavior/system/controller/discovery/InstanceDiscovery.ts +1 -1
  72. package/src/behavior/system/product-description/ProductDescriptionServer.ts +6 -7
  73. package/src/endpoint/properties/Behaviors.ts +9 -3
  74. package/src/endpoint/properties/EndpointContainer.ts +12 -4
  75. package/src/node/ClientNode.ts +33 -0
  76. package/src/node/client/ClientNodes.ts +2 -2
@@ -318,9 +318,14 @@ class Behaviors {
318
318
  await transaction.commit();
319
319
  }
320
320
  };
321
- await OfflineContext.act(`close<${this.#endpoint}>`, dispose, {
322
- activity: this.#endpoint.env.get(NodeActivity)
323
- });
321
+ await OfflineContext.act(
322
+ `close<${this.#endpoint}>`,
323
+ dispose
324
+ // Note - do not close in an activity because this can cause deadlock
325
+ //, {
326
+ // activity: this.#endpoint.env.get(NodeActivity),
327
+ //},
328
+ );
324
329
  }
325
330
  /**
326
331
  * Add support for an additional behavior statically. Should only be invoked prior to initialization.
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/endpoint/properties/Behaviors.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,gBAAgB;AAEzB,SAAS,kDAAkD;AAE3D,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAI/B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAChC,SAA8B,qBAA0B;AACxD,SAAsB,kBAAkB;AAGxC,SAAS,+BAA+B;AACxC,SAAS,6BAA6B,8BAA8B;AACpE,SAAS,2BAA2B;AACpC,SAAS,yBAAyB;AAGlC,MAAM,SAAS,OAAO,IAAI,WAAW;AAW9B,MAAM,UAAU;AAAA,EACnB;AAAA,EACA;AAAA,EACA,YAA6C,CAAC;AAAA,EAC9C;AAAA,EACA;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAY;AACZ,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,SAAS;AACT,UAAM,SAAS,CAAC;AAChB,eAAW,OAAO,KAAK,YAAY;AAC/B,aAAO,GAAG,IAAI,KAAK,UAAU,GAAG,GAAG,UAAU,UAAU,OAAO;AAAA,IAClE;AACA,WAAO;AAAA,EACX;AAAA,EAEA,KAAK,WAAW,KAAK,IAAI;AACrB,WAAO,WAAW,cAAc,KAAK,MAAM;AAAA,EAC/C;AAAA,EAEA,IAAI,qBAAqB;AACrB,WAAO,OAAO,QAAQ,KAAK,UAAU,EAAE,IAAI,CAAC,CAAC,MAAM,IAAI,MAAM;AACzD,YAAM,UAAU,KAAK,UAAU,IAAI;AAEnC,YAAM,UAAU,UAAU,IAAI;AAE9B,YAAM,SAAS;AAAA,QACX,WAAW,SAAS,UAAU,UAAU,OAAO,UAAU,IAAI;AAAA,QAC7D,WAAW,KAAK;AAAA,UACZ,IAAI,UAAU,WAAW,IAAI,QAAQ,EAAE,IAAI;AAAA,QAC/C,CAAC;AAAA,MACL;AAEA,UAAI,CAAC,SAAS;AACV,eAAO;AAAA,MACX;AAEA,YAAM,WAAW,KAAK,WAAW,IAAI;AACrC,YAAM,oBAAoB,MAAe;AAEzC,YAAM,WAAW,IAAI,WAAW,QAAQ,iBAAiB;AACzD,UAAI,SAAS,MAAM;AACf,0BAAkB,KAAK,CAAC,WAAW,OAAO,UAAU,GAAG,QAAQ,CAAC;AAAA,MACpE;AAEA,UAAI,SAAS,WAAW,MAAM;AAC1B,cAAM,eAAe,IAAI,MAAe;AACxC,mBAAW,iBAAiB,SAAS,YAAY;AAC7C,gBAAM,OAAO,QAAQ,WAAW,aAAa;AAC7C,uBAAa,KAAK;AAAA,YACd;AAAA,YACA,WAAW,KAAK;AAAA,cACZ,IAAI,WAAW,IAAI,KAAK,EAAE;AAAA,cAC1B,MAAM,SAAS,WAAyB,aAAa;AAAA,cACrD,OAAO,WAAW,QAAQ;AAAA,gBACtB,cAAc,KAAK;AAAA,cACvB,CAAC;AAAA,YACL,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AACA,0BAAkB,KAAK,CAAC,WAAW,OAAO,YAAY,GAAG,WAAW,KAAK,YAAY,CAAC,CAAC;AAAA,MAC3F;AACA,UAAI,SAAS,SAAS,MAAM;AACxB,0BAAkB,KAAK;AAAA,UACnB,WAAW,OAAO,UAAU;AAAA,UAC5B,WAAW;AAAA,YACP,CAAC,GAAG,SAAS,QAAQ,EAAE,IAAI,CAAAA,UAAQ;AAAA,cAC/BA;AAAA,cACA,WAAW;AAAA,gBACP,IAAI,WAAW,IAAI,QAAQ,SAASA,KAAI,EAAE,SAAS,CAAC,GAAG,QAAQ,SAASA,KAAI,EAAE,0BAA0B,aAAa,KAAK,IAAI,WAAW,IAAI,QAAQ,SAASA,KAAI,EAAE,UAAU,CAAC,EAAE;AAAA,cACrL;AAAA,YACJ,CAAC;AAAA,UACL;AAAA,QACJ,CAAC;AAAA,MACL;AACA,UAAI,SAAS,OAAO,MAAM;AACtB,0BAAkB;AAAA,UACd,WAAW,OAAO,QAAQ;AAAA,UAC1B,WAAW,KAAK;AAAA,YACZ,CAAC,GAAG,SAAS,MAAM,EAAE,IAAI,CAAAA,UAAQ;AAAA,cAC7BA;AAAA,cACA,WAAW,KAAK,IAAI,WAAW,IAAI,QAAQ,OAAOA,KAAI,EAAE,EAAE,CAAC,GAAG;AAAA,YAClE,CAAC;AAAA,UACL,CAAC;AAAA,QACL;AAAA,MACJ;AAEA,UAAI,kBAAkB,QAAQ;AAC1B,eAAO,KAAK,WAAW,KAAK,iBAAiB,CAAC;AAAA,MAClD;AAEA,aAAO;AAAA,IACX,CAAC;AAAA,EACL;AAAA,EAEA,YAAY,UAAoB,SAA6C;AACzE,UAAM,EAAE,KAAK,IAAI;AACjB,QAAI,OAAO,MAAM,cAAc,UAAU;AACrC,YAAM,IAAI,oBAAoB,sEAAsE;AAAA,IACxG;AAEA,SAAK,YAAY;AACjB,SAAK,aAAa,KAAK;AACvB,SAAK,WAAW;AAEhB,eAAW,MAAM,KAAK,YAAY;AAC9B,YAAMC,QAAO,KAAK,WAAW,EAAE;AAC/B,UAAI,EAAEA,MAAK,qBAAqB,WAAW;AACvC,cAAM,IAAI,oBAAoB,GAAG,QAAQ,IAAI,EAAE,0BAA0B;AAAA,MAC7E;AACA,UAAI,OAAOA,MAAK,OAAO,UAAU;AAC7B,cAAM,IAAI,oBAAoB,GAAG,QAAQ,IAAI,EAAE,YAAY;AAAA,MAC/D;AACA,WAAK,iBAAiBA,KAAI;AAAA,IAC9B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,aAA2B;AAEvB,QAAI,CAAC,KAAK,UAAU,UAAU,aAAa;AACvC,YAAM,IAAI,oBAAoB,+DAA+D;AAAA,IACjG;AAGA,UAAM,sBAAsB,CAAC,YAAyC;AAClE,YAAM,QAAQ,QAAQ,SAAS,KAAK,SAAS;AAK7C,iBAAW,QAAQ,OAAO,OAAO,KAAK,SAAS,GAAG;AAC9C,YAAI,KAAK,OAAO;AACZ,eAAK,SAAS,MAAM,KAAK;AAAA,QAC7B;AAAA,MACJ;AAGA,UAAIC,WAAU,aAAa;AAAA,QACvB;AAAA,UACI,CAAC,OAAO,QAAQ,GAAG,MAAM;AACrB,mBAAO,OAAO,OAAO,KAAK,SAAS,EAAE,OAAO,QAAQ,EAAE;AAAA,UAC1D;AAAA,QACJ;AAAA,QAEA,YAAU,IAAI,uBAAuB,MAAM;AAAA,MAC/C;AAGA,YAAM,sBAAsB,KAAK,UAAU,IAAI,IAAI,mBAAmB;AACtE,UAAIA,UAAS;AACT,QAAAA,WAAUA,SAAQ,KAAK,MAAM,oBAAoB,qBAAqB,KAAK,CAAC;AAAA,MAChF,OAAO;AACH,QAAAA,WAAU,oBAAoB,qBAAqB,KAAK;AAAA,MAC5D;AAEA,UAAI,KAAK,UAAU,IAAI,IAAI,aAAa,GAAG;AACvC,cAAM,gBAAgB,KAAK,UAAU,IAAI,IAAI,aAAa,EAAE,QAAQ,IAAI,YAAU,OAAO,WAAW;AACpG,YAAI,cAAc,SAAS,GAAG;AAE1B,iBAAO,aAAa;AAAA,YAAKA;AAAA,YAAS,MAC9B,2CAA2C,KAAK,WAAW,aAAa;AAAA,UAC5E;AAAA,QACJ;AAAA,MACJ;AAEA,aAAOA;AAAA,IACX;AAGA,UAAM,WAAW,KAAK,UAAU,IAAI,IAAI,YAAY;AAGpD,QAAI,UAAU,eAAe,IAAI,cAAc,KAAK,SAAS,KAAK,qBAAqB,EAAE,SAAS,CAAC;AAGnG,UAAM,UAAU,MAAM;AAClB,WAAK,UAAU,UAAU,OAAO,kBAAkB,OAAO,KAAK;AAAA,IAClE;AACA,QAAI,SAAS;AACT,gBAAU,QAAQ,KAAK,OAAO;AAAA,IAClC,OAAO;AACH,cAAQ;AAAA,IACZ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAA6B,MAAS;AAClC,UAAM,SAAS,KAAK,WAAW,KAAK,EAAE;AACtC,WAAO,WAAW,QAAQ,QAAQ,SAAS,IAAI;AAAA,EACnD;AAAA;AAAA;AAAA;AAAA,EAKA,QAAiC,MAAS,SAA+B;AACrE,QAAI,KAAK,WAAW,KAAK,EAAE,GAAG;AAC1B,UAAI,CAAC,KAAK,IAAI,IAAI,GAAG;AACjB,cAAM,IAAI;AAAA,UACN,kBAAkB,KAAK,SAAS,IAAI,KAAK,EAAE;AAAA,QAC/C;AAAA,MACJ;AACA;AAAA,IACJ;AAEA,SAAK,OAAO,MAAM,OAAO;AAEzB,SAAK,UAAU,UAAU,OAAO,kBAAkB,OAAO,cAAc;AAEvE,QAAI,KAAK,SAAS,KAAK,UAAU,UAAU,aAAa;AACpD,WAAK,cAAc,IAAI;AAAA,IAC3B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,MAAqB,OAAc;AAC1C,UAAM,WAAW,KAAK,iBAAiB,MAAM,KAAK;AAElD,QAAI,aAAa,GAAG,QAAQ,GAAG;AAC3B,YAAM,IAAI;AAAA,QACN,yBAAyB,KAAK,SAAS,IAAI,KAAK,EAAE;AAAA,MACtD;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,YAAY,MAAqB,OAAc;AACjD,WAAO,aAAa;AAAA,MAChB,MAAM,KAAK,iBAAiB,MAAM,KAAK;AAAA,MACvC;AAAA,MACA,OAAK;AAGD,cAAM,UAAU,KAAK,UAAU,KAAK,EAAE;AACtC,YAAI,CAAC,SAAS;AACV,gBAAM;AAAA,QACV;AACA,gBAAQ,aAAa,OAAO,QAAQ,SAAS,CAAC;AAAA,MAClD;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,iBAAiB,MAAqB,OAAsC;AACxE,SAAK,SAAS,MAAM,KAAK;AACzB,UAAM,UAAU,KAAK,UAAU,KAAK,EAAE;AAItC,UAAM,cAAc,MAAM;AACtB,UAAI,MAAM,SAAS,IAAI,GAAG;AACtB,eAAO,MAAM,IAAI,IAAI;AAAA,MACzB;AACA,aAAO,QAAQ,eAAe,OAAO,IAAI;AAAA,IAC7C;AAGA,QAAI,QAAQ,aAAa,WAAW,UAAU,OAAO,cAAc;AAC/D,aAAO,QAAQ,aACV,KAAK,MAAM,YAAY,CAAC,EACxB,MAAM,MAAM;AAET,gBAAQ,aAAa,OAAO,QAAQ,SAAS,CAAC;AAG9C,eAAO,YAAY;AAAA,MACvB,CAAC;AAAA,IACT;AAGA,YAAQ,aAAa,OAAO,QAAQ,SAAS,CAAC;AAG9C,WAAO,YAAY;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EASA,SAAS,MAAqB,OAAc;AACxC,QAAI,CAAC,KAAK,UAAU,KAAK,EAAE,GAAG;AAC1B,WAAK,eAAe,MAAM,KAAK;AAAA,IACnC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,SAAS,MAAqB;AAC1B,UAAM,UAAU,KAAK,UAAU,KAAK,EAAE;AACtC,WAAO,CAAC,CAAC,WAAW,QAAQ,KAAK,SAAS,IAAI;AAAA,EAClD;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,UAAM,UAAU,OAAO,YAA2B;AAC9C,YAAM,QAAQ,QAAQ,SAAS,KAAK,SAAS;AAE7C,UAAI,aAAa,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;AACpD,aAAO,WAAW,MAAM;AACpB,mBAAW,OAAO,KAAK,WAAW;AAC9B,gBAAM,eAAe,KAAK,UAAU,GAAG,EAAE,KAAK;AAE9C,cAAI,CAAC,cAAc;AACf;AAAA,UACJ;AAEA,qBAAW,QAAQ,cAAc;AAC7B,uBAAW,OAAO,KAAK,EAAE;AAAA,UAC7B;AAEA,cAAI,CAAC,WAAW,MAAM;AAClB,kBAAM,IAAI,oBAAoB,qDAAqD;AAAA,UACvF;AAAA,QACJ;AAEA,mBAAW,MAAM,YAAY;AACzB,gBAAM,UAAU,KAAK,UAAU,EAAE;AACjC,eAAK,WAAW,cAAc,OAAO;AACrC,gBAAM,KAAK,UAAU,EAAE,EAAE,MAAM,KAAK;AACpC,iBAAO,KAAK,UAAU,EAAE;AAAA,QAC5B;AAEA,qBAAa,IAAI,IAAI,OAAO,KAAK,KAAK,SAAS,CAAC;AAAA,MACpD;AAGA,YAAM,cAAc,MAAM,QAAQ;AAClC,UAAI,YAAY,WAAW,YAAY,OAAO,WAAW;AACrD,cAAM,YAAY,OAAO;AAAA,MAC7B;AAAA,IACJ;AAEA,UAAM,eAAe;AAAA,MACjB,SAAS,KAAK,SAAS;AAAA,MACvB;AAAA;AAAA;AAAA;AAAA;AAAA,IAMJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,MAAqB,SAA4B;AACpD,QAAI,SAAS;AACT,WAAK,SAAS,KAAK,EAAE,IAAI;AAAA,IAC7B;AAEA,QAAI,KAAK,eAAe,KAAK,UAAU,KAAK,WAAW;AACnD,WAAK,aAAa,EAAE,GAAG,KAAK,WAAW;AAAA,IAC3C;AACA,SAAK,WAAW,KAAK,EAAE,IAAI;AAE3B,SAAK,iBAAiB,IAAI;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,cAAmC;AACpD,QAAI,CAAC,cAAc;AACf;AAAA,IACJ;AAEA,UAAM,UAAU,MAAc;AAC9B,eAAW,eAAe,OAAO,OAAO,YAAY,GAAG;AACnD,UAAI,OAAO,SAAS,YAAY,MAAM,IAAI;AAE1C,UAAI,KAAK,UAAU,UAAU,IAAI,WAAW,GAAG;AAC3C;AAAA,MACJ;AAIA,YAAM,UAAU,UAAU,WAAW;AACrC,UAAI,SAAS;AACT,cAAM,QAAQ,KAAK,UAAU,UAAU,UAAU,YAAY,EAAE;AAE/D,YAAI,UAAU,KAAK,GAAG,OAAO,QAAQ,IAAI;AACrC;AAAA,QACJ;AAEA,eAAO,GAAG,IAAI,KAAK,WAAW,IAAI,QAAQ,EAAE,CAAC;AAAA,MACjD;AAEA,cAAQ,KAAK,IAAI;AAAA,IACrB;AAEA,QAAI,QAAQ,QAAQ;AAChB,YAAM,IAAI;AAAA,QACN,GAAG,KAAK,SAAS,mCAAmC,aAAa,OAAO,GAAG,OAAO,CAAC;AAAA,MACvF;AAAA,IACJ;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,MAAqB;AAC7B,QAAI;AAGJ,UAAM,UAAU,KAAK,SAAS,KAAK,EAAE;AACrC,QAAI,SAAS;AACT,iBAAW,OAAO,KAAK,UAAU;AAC7B,YAAI,OAAO,SAAS;AAChB,cAAI,CAAC,UAAU;AACX,uBAAW,CAAC;AAAA,UAChB;AACA,mBAAS,GAAG,IAAK,QAAuB,GAAG;AAAA,QAC/C;AAAA,MACJ;AAAA,IACJ;AAGA,UAAM,aAAa,KAAK,UAAU,IAAI,IAAI,uBAAuB;AACjE,UAAM,OAAO,WAAW,oBAAoB,KAAK,WAAW,IAAI;AAChE,QAAI,SAAS,QAAW;AACpB,iBAAW,EAAE,GAAG,UAAU,GAAI,KAAK,WAAW,KAAK,IAAI,EAAiB;AAAA,IAC5E;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,MAAqB;AAC5B,WAAO,KAAK,SAAS,KAAK,EAAE;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAWA,YAAqC,MAAS;AAC1C,UAAM,UAAU,KAAK,YAAY,IAAI;AACrC,WAAO,QAAQ,YAAY;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,MAAqB;AAC3B,UAAM,UAAU,KAAK,YAAY,IAAI;AACrC,WAAO,QAAQ,WAAW;AAAA,EAC9B;AAAA;AAAA;AAAA;AAAA,EAKA,WAAW,MAAwC;AAC/C,QAAI,CAAC,KAAK,IAAI,IAAI,GAAG;AACjB,YAAM,IAAI,oBAAoB,YAAY,KAAK,SAAS,8BAA8B,KAAK,EAAE,EAAE;AAAA,IACnG;AAEA,UAAM,WAAW,KAAK,YAAY,IAAI,EAAE;AACxC,QAAI,aAAa,QAAW;AACxB,YAAM,IAAI;AAAA,QACN,YAAY,KAAK,SAAS,aAAa,KAAK,EAAE;AAAA,MAClD;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,CAAC,OAAO,QAAQ,IAAI;AAChB,WAAO,OAAO,OAAO,KAAK,UAAU,EAAE,OAAO,QAAQ,EAAE;AAAA,EAC3D;AAAA,EAEA,cAAc,MAAqB;AAC/B,UAAM,SAAS,eAAe;AAAA,MAC1B;AAAA,MACA,aAAW;AACP,aAAK,SAAS,MAAM,QAAQ,SAAS,KAAK,SAAS,CAAC;AAGpD,cAAM,UAAU,KAAK,YAAY,IAAI;AACrC,eAAO,QAAQ,aAAa;AAAA,MAChC;AAAA,MACA,EAAE,UAAU,KAAK,UAAU,IAAI,IAAI,YAAY,EAAE;AAAA,IACrD;AAEA,QAAI,aAAa,GAAG,MAAM,GAAG;AACzB,aAAO,KAAK,QAAW,WAAS;AAI5B,cAAM,UAAU,KAAK,UAAU,KAAK,EAAE;AACtC,YAAI,iBAAiB,6BAA6B;AAC9C,iBAAO,MAAM,KAAK;AAAA,QACtB,WAAW,SAAS;AAChB,iBAAO,MAAM,sBAAsB,OAAO,KAAK,KAAK;AAAA,QACxD,OAAO;AACH,iBAAO,MAAM,qCAAqC,KAAK,IAAI,KAAK,KAAK;AAAA,QACzE;AAAA,MACJ,CAAC;AAAA,IACL;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,MAAqB;AAClC,WAAO,KAAK,YAAY,IAAI,EAAE;AAAA,EAClC;AAAA;AAAA;AAAA;AAAA,EAKA,YAAY,MAAqB;AAE7B,QAAI,KAAK,UAAU,aAAa,WAAW,UAAU,OAAO,cAAc;AACtE,WAAK,UAAU,aAAa,OAAO,KAAK,UAAU,SAAS,GAAG,YAAY,KAAK,EAAE,EAAE;AAAA,IACvF;AAGA,QAAI,UAAU,KAAK,UAAU,KAAK,EAAE;AAGpC,QAAI,CAAC,SAAS;AACV,WAAK,cAAc,IAAI;AACvB,gBAAU,KAAK,UAAU,KAAK,EAAE;AAChC,UAAI,YAAY,QAAW;AACvB,cAAM,IAAI,4BAA4B,GAAG,KAAK,SAAS,IAAI,KAAK,EAAE,IAAI,uBAAuB;AAAA,MACjG;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,eAAe,MAAqB,OAAc;AAG9C,UAAM,SAAS,KAAK,iBAAiB,IAAI;AACzC,QAAI,CAAC,QAAQ;AACT,YAAM,IAAI,4BAA4B,gBAAgB,KAAK,SAAS,IAAI,KAAK,EAAE,wBAAwB;AAAA,IAC3G;AAEA,UAAM,UAAU,KAAK,UAAU,IAAI,IAAI,mBAAmB,EAAE,cAAc,KAAK,WAAW,MAAM;AAChG,SAAK,UAAU,KAAK,EAAE,IAAI;AAC1B,QAAI,CAAC,KAAK,WAAW;AACjB,WAAK,YAAY,KAAK,UAAU,IAAI,IAAI,eAAe;AAAA,IAC3D;AACA,YAAQ,qBAAqB;AAC7B,YAAQ,aAAa,MAAM,KAAK;AAChC,WAAO;AAAA,EACX;AAAA,EAEA,iBAAiB,MAAqB;AAClC,UAAM,SAAS,KAAK,WAAW,KAAK,EAAE;AAEtC,QAAI,WAAW,QAAW;AACtB,aAAO;AAAA,IACX;AAEA,QAAI,OAAO,WAAW,cAAc,EAAE,OAAO,qBAAqB,WAAW;AACzE,YAAM,IAAI,oBAAoB,sBAAsB,KAAK,EAAE,oCAAoC;AAAA,IACnG;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,MAAqB;AAClC,UAAM,MAAM,MAAM,KAAK,YAAY,IAAI,EAAE;AACzC,WAAO,eAAe,KAAK,UAAU,OAAO,KAAK,IAAI,EAAE,KAAK,YAAY,KAAK,CAAC;AAC9E,QAAI,KAAK,QAAQ,OAAO,QAAW;AAC/B,aAAO,eAAe,KAAK,UAAU,OAAO,KAAK,OAAO,IAAI,EAAE,IAAI,CAAC;AAAA,IACvE;AAEA,QAAI;AACJ,WAAO,eAAe,KAAK,UAAU,QAAQ,KAAK,IAAI;AAAA,MAClD,KAAK,MAAM;AACP,YAAI,CAAC,QAAQ;AACT,mBAAS,IAAI,KAAK,OAAO;AAEzB,cAAI,OAAQ,OAAkB,eAAe,YAAY;AACrD,YAAC,OAAkB,WAAW,KAAK,WAAW,IAAI;AAAA,UACtD;AAAA,QACJ;AACA,eAAO;AAAA,MACX;AAAA,MAEA,YAAY;AAAA,IAChB,CAAC;AAAA,EACL;AACJ;AAEA,SAAS,UAAU,UAAmD;AAClE,SAAQ,UAAmC;AAC/C;",
5
5
  "names": ["name", "type", "promise"]
6
6
  }
@@ -11,7 +11,7 @@ import { Endpoint } from "../Endpoint.js";
11
11
  export declare class EndpointContainer<T extends Endpoint = Endpoint> implements ImmutableSet<T>, MutableSet<T, T>, ObservableSet<T> {
12
12
  #private;
13
13
  constructor(endpoint: Endpoint);
14
- get(id: string): T | undefined;
14
+ get(id: string | number): T | undefined;
15
15
  add(endpoint: T): void;
16
16
  delete(endpoint: T): boolean;
17
17
  clear(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"EndpointContainer.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/properties/EndpointContainer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAwB,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAErG,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CACxD,YAAW,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;;gBAKlD,QAAQ,EAAE,QAAQ;IAI9B,GAAG,CAAC,EAAE,EAAE,MAAM;IAQd,GAAG,CAAC,QAAQ,EAAE,CAAC;IAef,MAAM,CAAC,QAAQ,EAAE,CAAC;IAIlB,KAAK;IAIL,GAAG,CAAC,QAAQ,EAAE,CAAC;IAIf,IAAI,KAAK,6CAER;IAED,IAAI,OAAO,6CAEV;IAED,IAAI,IAAI,WAEP;IAED,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;IAI3B,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO;IAItC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO;IAIpC,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO;IAIhC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB;;OAEG;IACG,KAAK;IAMX;;OAEG;IACG,KAAK;IAMX;;OAEG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAOhD,SAAS,KAAK,KAAK,uDAElB;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAErB;CACJ"}
1
+ {"version":3,"file":"EndpointContainer.d.ts","sourceRoot":"","sources":["../../../../src/endpoint/properties/EndpointContainer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAwB,UAAU,EAAE,YAAY,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAErG,OAAO,EAAE,QAAQ,EAAE,MAAM,gBAAgB,CAAC;AAE1C;;GAEG;AACH,qBAAa,iBAAiB,CAAC,CAAC,SAAS,QAAQ,GAAG,QAAQ,CACxD,YAAW,YAAY,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,aAAa,CAAC,CAAC,CAAC;;gBAKlD,QAAQ,EAAE,QAAQ;IAI9B,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM;IAgBvB,GAAG,CAAC,QAAQ,EAAE,CAAC;IAef,MAAM,CAAC,QAAQ,EAAE,CAAC;IAIlB,KAAK;IAIL,GAAG,CAAC,QAAQ,EAAE,CAAC;IAIf,IAAI,KAAK,6CAER;IAED,IAAI,OAAO,6CAEV;IAED,IAAI,IAAI,WAEP;IAED,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,EAAE;IAI3B,MAAM,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO;IAItC,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO;IAIpC,OAAO,CAAC,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,OAAO;IAIhC,CAAC,MAAM,CAAC,QAAQ,CAAC;IAIjB;;OAEG;IACG,KAAK;IAMX;;OAEG;IACG,KAAK;IAMX;;OAEG;IACH,iBAAiB,CAAC,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ;IAOhD,SAAS,KAAK,KAAK,uDAElB;IAED,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,eAErB;CACJ"}
@@ -12,9 +12,17 @@ class EndpointContainer {
12
12
  this.#owner = endpoint;
13
13
  }
14
14
  get(id) {
15
- for (const child of this) {
16
- if (child.maybeId === id) {
17
- return child;
15
+ if (typeof id === "number") {
16
+ for (const child of this) {
17
+ if (child.maybeNumber === id) {
18
+ return child;
19
+ }
20
+ }
21
+ } else {
22
+ for (const child of this) {
23
+ if (child.maybeId === id) {
24
+ return child;
25
+ }
18
26
  }
19
27
  }
20
28
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/endpoint/properties/EndpointContainer.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,UAAU,YAAY,kBAA2D;AAC1F,SAAS,6BAA6B;AAM/B,MAAM,kBAEb;AAAA,EACI,YAAY,IAAI,SAAY;AAAA,EAC5B;AAAA,EAEA,YAAY,UAAoB;AAC5B,SAAK,SAAS;AAAA,EAClB;AAAA,EAEA,IAAI,IAAY;AACZ,eAAW,SAAS,MAAM;AACtB,UAAI,MAAM,YAAY,IAAI;AACtB,eAAO;AAAA,MACX;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,IAAI,UAAa;AACb,QAAI,SAAS,UAAU,OAAO;AAC1B,WAAK,kBAAkB,SAAS,IAAI,QAAQ;AAAA,IAChD;AAEA,SAAK,UAAU,IAAI,QAAQ;AAC3B,aAAS,QAAQ,KAAK;AAEtB,aAAS,UAAU,UAAU,KAAK,MAAM;AACpC,WAAK,OAAO,QAAQ;AAAA,IACxB,CAAC;AAED,SAAK,UAAU,IAAI,QAAQ;AAAA,EAC/B;AAAA,EAEA,OAAO,UAAa;AAChB,WAAO,KAAK,UAAU,OAAO,QAAQ;AAAA,EACzC;AAAA,EAEA,QAAQ;AACJ,SAAK,UAAU,MAAM;AAAA,EACzB;AAAA,EAEA,IAAI,UAAa;AACb,WAAO,KAAK,UAAU,IAAI,QAAQ;AAAA,EACtC;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA,EAEA,IAAQ,IAAqB;AACzB,WAAO,KAAK,UAAU,IAAI,EAAE;AAAA,EAChC;AAAA,EAEA,OAAO,WAAiC;AACpC,WAAO,KAAK,UAAU,OAAO,SAAS;AAAA,EAC1C;AAAA,EAEA,KAAK,WAAiC;AAClC,WAAO,KAAK,UAAU,KAAK,SAAS;AAAA,EACxC;AAAA,EAEA,QAAQ,IAA0B;AAC9B,KAAC,GAAG,KAAK,SAAS,EAAE,QAAQ,EAAE;AAAA,EAClC;AAAA,EAEA,CAAC,OAAO,QAAQ,IAAI;AAChB,WAAO,KAAK,UAAU,OAAO,QAAQ,EAAE;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,eAAW,YAAY,MAAM;AACzB,YAAM,SAAS,MAAM;AAAA,IACzB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,eAAW,YAAY,MAAM;AACzB,YAAM,SAAS,MAAM;AAAA,IACzB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,IAAY,UAAoB;AAC9C,UAAM,QAAQ,KAAK,IAAI,EAAE;AACzB,QAAI,SAAS,UAAU,UAAU;AAC7B,YAAM,IAAI,sBAAsB,GAAG,KAAK,gEAAgE;AAAA,IAC5G;AAAA,EACJ;AAAA,EAEA,IAAc,QAAQ;AAClB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,KAAK,WAAW,KAAK,IAAI;AACrB,WAAO,WAAW,KAAK,CAAC,WAAW,KAAK,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC;AAAA,EACvE;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,UAAU,YAAY,kBAA2D;AAC1F,SAAS,6BAA6B;AAM/B,MAAM,kBAEb;AAAA,EACI,YAAY,IAAI,SAAY;AAAA,EAC5B;AAAA,EAEA,YAAY,UAAoB;AAC5B,SAAK,SAAS;AAAA,EAClB;AAAA,EAEA,IAAI,IAAqB;AACrB,QAAI,OAAO,OAAO,UAAU;AACxB,iBAAW,SAAS,MAAM;AACtB,YAAI,MAAM,gBAAgB,IAAI;AAC1B,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ,OAAO;AACH,iBAAW,SAAS,MAAM;AACtB,YAAI,MAAM,YAAY,IAAI;AACtB,iBAAO;AAAA,QACX;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,IAAI,UAAa;AACb,QAAI,SAAS,UAAU,OAAO;AAC1B,WAAK,kBAAkB,SAAS,IAAI,QAAQ;AAAA,IAChD;AAEA,SAAK,UAAU,IAAI,QAAQ;AAC3B,aAAS,QAAQ,KAAK;AAEtB,aAAS,UAAU,UAAU,KAAK,MAAM;AACpC,WAAK,OAAO,QAAQ;AAAA,IACxB,CAAC;AAED,SAAK,UAAU,IAAI,QAAQ;AAAA,EAC/B;AAAA,EAEA,OAAO,UAAa;AAChB,WAAO,KAAK,UAAU,OAAO,QAAQ;AAAA,EACzC;AAAA,EAEA,QAAQ;AACJ,SAAK,UAAU,MAAM;AAAA,EACzB;AAAA,EAEA,IAAI,UAAa;AACb,WAAO,KAAK,UAAU,IAAI,QAAQ;AAAA,EACtC;AAAA,EAEA,IAAI,QAAQ;AACR,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA,EAEA,IAAI,UAAU;AACV,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA,EAEA,IAAI,OAAO;AACP,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA,EAEA,IAAQ,IAAqB;AACzB,WAAO,KAAK,UAAU,IAAI,EAAE;AAAA,EAChC;AAAA,EAEA,OAAO,WAAiC;AACpC,WAAO,KAAK,UAAU,OAAO,SAAS;AAAA,EAC1C;AAAA,EAEA,KAAK,WAAiC;AAClC,WAAO,KAAK,UAAU,KAAK,SAAS;AAAA,EACxC;AAAA,EAEA,QAAQ,IAA0B;AAC9B,KAAC,GAAG,KAAK,SAAS,EAAE,QAAQ,EAAE;AAAA,EAClC;AAAA,EAEA,CAAC,OAAO,QAAQ,IAAI;AAChB,WAAO,KAAK,UAAU,OAAO,QAAQ,EAAE;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,eAAW,YAAY,MAAM;AACzB,YAAM,SAAS,MAAM;AAAA,IACzB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,eAAW,YAAY,MAAM;AACzB,YAAM,SAAS,MAAM;AAAA,IACzB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,IAAY,UAAoB;AAC9C,UAAM,QAAQ,KAAK,IAAI,EAAE;AACzB,QAAI,SAAS,UAAU,UAAU;AAC7B,YAAM,IAAI,sBAAsB,GAAG,KAAK,gEAAgE;AAAA,IAC5G;AAAA,EACJ;AAAA,EAEA,IAAc,QAAQ;AAClB,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,KAAK,WAAW,KAAK,IAAI;AACrB,WAAO,WAAW,KAAK,CAAC,WAAW,KAAK,YAAY,IAAI,GAAG,GAAG,IAAI,CAAC;AAAA,EACvE;AACJ;",
5
5
  "names": []
6
6
  }
@@ -31,7 +31,21 @@ export declare class ClientNode extends Node<ClientNode.RootEndpoint> {
31
31
  initialize(): MaybePromise;
32
32
  get owner(): ServerNode | undefined;
33
33
  set owner(owner: ServerNode);
34
+ /**
35
+ * Add this node to a fabric.
36
+ */
34
37
  commission(options: CommissioningClient.CommissioningOptions): Promise<void>;
38
+ /**
39
+ * Remove this node from the fabric (if commissioned) and locally.
40
+ */
41
+ delete(): Promise<void>;
42
+ /**
43
+ * Force-remove the node without first decommissioning.
44
+ *
45
+ * If the node is still available you should use {@link delete} to remove it from the fabric.
46
+ */
47
+ erase(): Promise<void>;
48
+ protected eraseWithMutex(): Promise<void>;
35
49
  protected createRuntime(): NetworkRuntime;
36
50
  prepareRuntimeShutdown(): Promise<void>;
37
51
  protected get container(): import("./index.js").ClientNodes | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"ClientNode.d.ts","sourceRoot":"","sources":["../../../src/node/ClientNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAa,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAAU,WAAW,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;;gBAI7C,OAAO,EAAE,UAAU,CAAC,OAAO;IAevC;;;;OAIG;IACH,IAAI,MAAM,gBAET;IAEQ,UAAU;IAanB,IAAa,KAAK,IAAI,UAAU,GAAG,SAAS,CAE3C;IAED,IAAa,KAAK,CAAC,KAAK,EAAE,UAAU,EAEnC;IAEK,UAAU,CAAC,OAAO,EAAE,mBAAmB,CAAC,oBAAoB;IAIlE,SAAS,CAAC,aAAa,IAAI,cAAc;IAInC,sBAAsB;IAE5B,cAAuB,SAAS,iDAE/B;IAEQ,GAAG,CAAC,CAAC,EACV,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,GAC3E,YAAY,CAAC,CAAC,CAAC;IAET,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAiB5G,IAAI,WAAW,IAAI,YAAY,CAAC,aAAa,CAAC,CAM7C;CACJ;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,OAAQ,SAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACvD,MAAM,CAAC,EAAE,WAAW,CAAC;KACxB;IAEM,MAAM,YAAY;;;;;;;;;;;;;oEAAmE,CAAC;IAE7F,UAAiB,YAAa,SAAQ,QAAQ,CAAC,OAAO,YAAY,CAAC;KAAG;CACzE"}
1
+ {"version":3,"file":"ClientNode.d.ts","sourceRoot":"","sources":["../../../src/node/ClientNode.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uDAAuD,CAAC;AAE5F,OAAO,EAAE,aAAa,EAAE,MAAM,2CAA2C,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAE,MAAM,4CAA4C,CAAC;AAC5E,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAE3C,OAAO,EAAE,QAAQ,EAAa,YAAY,EAAE,MAAM,UAAU,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAIzC,OAAO,EAAU,WAAW,EAAE,MAAM,eAAe,CAAC;AAGpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAElD;;;;;GAKG;AACH,qBAAa,UAAW,SAAQ,IAAI,CAAC,UAAU,CAAC,YAAY,CAAC;;gBAI7C,OAAO,EAAE,UAAU,CAAC,OAAO;IAevC;;;;OAIG;IACH,IAAI,MAAM,gBAET;IAEQ,UAAU;IAanB,IAAa,KAAK,IAAI,UAAU,GAAG,SAAS,CAE3C;IAED,IAAa,KAAK,CAAC,KAAK,EAAE,UAAU,EAEnC;IAED;;OAEG;IACG,UAAU,CAAC,OAAO,EAAE,mBAAmB,CAAC,oBAAoB;IAIlE;;OAEG;IACY,MAAM;IAUrB;;;;OAIG;IACY,KAAK;cAIJ,cAAc;IAQ9B,SAAS,CAAC,aAAa,IAAI,cAAc;IAInC,sBAAsB;IAE5B,cAAuB,SAAS,iDAE/B;IAEQ,GAAG,CAAC,CAAC,EACV,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,GAC3E,YAAY,CAAC,CAAC,CAAC;IAET,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,YAAY,CAAC,CAAC,CAAC,GAAG,YAAY,CAAC,CAAC,CAAC;IAiB5G,IAAI,WAAW,IAAI,YAAY,CAAC,aAAa,CAAC,CAM7C;CACJ;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,OAAQ,SAAQ,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACvD,MAAM,CAAC,EAAE,WAAW,CAAC;KACxB;IAEM,MAAM,YAAY;;;;;;;;;;;;;oEAAmE,CAAC;IAE7F,UAAiB,YAAa,SAAQ,QAAQ,CAAC,OAAO,YAAY,CAAC;KAAG;CACzE"}
@@ -52,9 +52,34 @@ class ClientNode extends Node {
52
52
  set owner(owner) {
53
53
  super.owner = owner;
54
54
  }
55
+ /**
56
+ * Add this node to a fabric.
57
+ */
55
58
  async commission(options) {
56
59
  await this.act("commission", (agent) => agent.commissioning.commission(options));
57
60
  }
61
+ /**
62
+ * Remove this node from the fabric (if commissioned) and locally.
63
+ */
64
+ async delete() {
65
+ if (this.lifecycle.isCommissioned) {
66
+ this.statusUpdate("decommissioning");
67
+ await this.act("decommission", (agent) => agent.commissioning.decommission());
68
+ }
69
+ await super.delete();
70
+ }
71
+ /**
72
+ * Force-remove the node without first decommissioning.
73
+ *
74
+ * If the node is still available you should use {@link delete} to remove it from the fabric.
75
+ */
76
+ async erase() {
77
+ await this.lifecycle.mutex.produce(this.eraseWithMutex.bind(this));
78
+ }
79
+ async eraseWithMutex() {
80
+ await this.cancelWithMutex();
81
+ await this.resetWithMutex();
82
+ }
58
83
  createRuntime() {
59
84
  return new ClientNetworkRuntime(this);
60
85
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/ClientNode.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,2BAA2B;AACpC,SAAS,4BAA4B;AACrC,SAAS,qBAAqB;AAG9B,SAAS,2BAA2B;AACpC,SAAmB,iBAA+B;AAElD,SAAS,uBAAuB;AAChC,SAAS,iBAAiB;AAC1B,SAAS,uBAAuB;AAChC,SAAS,cAA2B;AACpC,SAAS,iCAAiC;AAC1C,SAAS,6BAA6B;AACtC,SAAS,YAAY;AASd,MAAM,mBAAmB,KAA8B;AAAA,EAC1D;AAAA,EACA;AAAA,EAEA,YAAY,SAA6B;AACrC,UAAM,OAAO;AAAA,MACT,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,MAAM,WAAW;AAAA,IACrB;AAEA,UAAM,IAAI;AAEV,SAAK,IAAI,IAAI,MAAM,IAAI;AACvB,SAAK,IAAI,IAAI,YAAY,IAAI;AAE7B,SAAK,UAAU,QAAQ,UAAU;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAES,aAAa;AAClB,UAAM,QAAQ,KAAK,IAAI,IAAI,eAAe,EAAE,aAAa,aAAa,IAAI;AAC1E,SAAK,IAAI,IAAI,WAAW,KAAK;AAC7B,SAAK,IAAI,IAAI,iBAAiB,KAAK;AAEnC,UAAM,cAAc,IAAI,0BAA0B,IAAI;AACtD,SAAK,IAAI,IAAI,qBAAqB,WAAW;AAE7C,gBAAY,UAAU,UAAU;AAEhC,WAAO,MAAM,WAAW;AAAA,EAC5B;AAAA,EAEA,IAAa,QAAgC;AACzC,WAAO,MAAM;AAAA,EACjB;AAAA,EAEA,IAAa,MAAM,OAAmB;AAClC,UAAM,QAAQ;AAAA,EAClB;AAAA,EAEA,MAAM,WAAW,SAAmD;AAChE,UAAM,KAAK,IAAI,cAAc,WAAS,MAAM,cAAc,WAAW,OAAO,CAAC;AAAA,EACjF;AAAA,EAEU,gBAAgC;AACtC,WAAO,IAAI,qBAAqB,IAAI;AAAA,EACxC;AAAA,EAEA,MAAM,yBAAyB;AAAA,EAAC;AAAA,EAEhC,IAAuB,YAAY;AAC/B,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EASS,IACL,gBACA,OACe;AACf,QAAI,KAAK,aAAa,WAAW,UAAU,OAAO,UAAU;AACxD,WAAK,aAAa,MAAM;AAAA,IAC5B;AAEA,QAAI,KAAK,aAAa,WAAW,UAAU,OAAO,cAAc;AAC5D,aAAO,KAAK,aAAa,KAAK,MAAO,MAAM,IAAY,gBAAgB,KAAK,CAAC;AAAA,IACjF;AAEA,WAAQ,MAAM,IAAY,gBAAgB,KAAK;AAAA,EACnD;AAAA,EAEA,IAAI,cAA2C;AAC3C,QAAI,KAAK,iBAAiB,QAAW;AACjC,WAAK,eAAe,IAAI,sBAAsB,IAAI;AAAA,IACtD;AAEA,WAAO,KAAK;AAAA,EAChB;AACJ;AAAA,CAEO,CAAUA,gBAAV;AAKI,EAAMA,YAAA,eAAe,KAAK,mBAAmB,KAAK,qBAAqB,aAAa;AAAA,GAL9E;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,2BAA2B;AACpC,SAAS,4BAA4B;AACrC,SAAS,qBAAqB;AAG9B,SAAS,2BAA2B;AACpC,SAAmB,iBAA+B;AAElD,SAAS,uBAAuB;AAChC,SAAS,iBAAiB;AAC1B,SAAS,uBAAuB;AAChC,SAAS,cAA2B;AACpC,SAAS,iCAAiC;AAC1C,SAAS,6BAA6B;AACtC,SAAS,YAAY;AASd,MAAM,mBAAmB,KAA8B;AAAA,EAC1D;AAAA,EACA;AAAA,EAEA,YAAY,SAA6B;AACrC,UAAM,OAAO;AAAA,MACT,GAAG;AAAA,MACH,QAAQ;AAAA,MACR,MAAM,WAAW;AAAA,IACrB;AAEA,UAAM,IAAI;AAEV,SAAK,IAAI,IAAI,MAAM,IAAI;AACvB,SAAK,IAAI,IAAI,YAAY,IAAI;AAE7B,SAAK,UAAU,QAAQ,UAAU;AAAA,EACrC;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,SAAS;AACT,WAAO,KAAK;AAAA,EAChB;AAAA,EAES,aAAa;AAClB,UAAM,QAAQ,KAAK,IAAI,IAAI,eAAe,EAAE,aAAa,aAAa,IAAI;AAC1E,SAAK,IAAI,IAAI,WAAW,KAAK;AAC7B,SAAK,IAAI,IAAI,iBAAiB,KAAK;AAEnC,UAAM,cAAc,IAAI,0BAA0B,IAAI;AACtD,SAAK,IAAI,IAAI,qBAAqB,WAAW;AAE7C,gBAAY,UAAU,UAAU;AAEhC,WAAO,MAAM,WAAW;AAAA,EAC5B;AAAA,EAEA,IAAa,QAAgC;AACzC,WAAO,MAAM;AAAA,EACjB;AAAA,EAEA,IAAa,MAAM,OAAmB;AAClC,UAAM,QAAQ;AAAA,EAClB;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,WAAW,SAAmD;AAChE,UAAM,KAAK,IAAI,cAAc,WAAS,MAAM,cAAc,WAAW,OAAO,CAAC;AAAA,EACjF;AAAA;AAAA;AAAA;AAAA,EAKA,MAAe,SAAS;AACpB,QAAI,KAAK,UAAU,gBAAgB;AAC/B,WAAK,aAAa,iBAAiB;AAEnC,YAAM,KAAK,IAAI,gBAAgB,WAAS,MAAM,cAAc,aAAa,CAAC;AAAA,IAC9E;AAEA,UAAM,MAAM,OAAO;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAe,QAAQ;AACnB,UAAM,KAAK,UAAU,MAAM,QAAQ,KAAK,eAAe,KAAK,IAAI,CAAC;AAAA,EACrE;AAAA,EAEA,MAAgB,iBAAiB;AAE7B,UAAM,KAAK,gBAAgB;AAG3B,UAAM,KAAK,eAAe;AAAA,EAC9B;AAAA,EAEU,gBAAgC;AACtC,WAAO,IAAI,qBAAqB,IAAI;AAAA,EACxC;AAAA,EAEA,MAAM,yBAAyB;AAAA,EAAC;AAAA,EAEhC,IAAuB,YAAY;AAC/B,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA,EASS,IACL,gBACA,OACe;AACf,QAAI,KAAK,aAAa,WAAW,UAAU,OAAO,UAAU;AACxD,WAAK,aAAa,MAAM;AAAA,IAC5B;AAEA,QAAI,KAAK,aAAa,WAAW,UAAU,OAAO,cAAc;AAC5D,aAAO,KAAK,aAAa,KAAK,MAAO,MAAM,IAAY,gBAAgB,KAAK,CAAC;AAAA,IACjF;AAEA,WAAQ,MAAM,IAAY,gBAAgB,KAAK;AAAA,EACnD;AAAA,EAEA,IAAI,cAA2C;AAC3C,QAAI,KAAK,iBAAiB,QAAW;AACjC,WAAK,eAAe,IAAI,sBAAsB,IAAI;AAAA,IACtD;AAEA,WAAO,KAAK;AAAA,EAChB;AACJ;AAAA,CAEO,CAAUA,gBAAV;AAKI,EAAMA,YAAA,eAAe,KAAK,mBAAmB,KAAK,qBAAqB,aAAa;AAAA,GAL9E;",
5
5
  "names": ["ClientNode"]
6
6
  }
@@ -38,7 +38,7 @@ export declare class ClientNodes extends EndpointContainer<ClientNode> {
38
38
  * Find a specific commissionable node and commission.
39
39
  */
40
40
  commission(options: CommissioningDiscovery.Options): CommissioningDiscovery;
41
- get(id: string | PeerAddress): ClientNode | undefined;
41
+ get(id: number | string | PeerAddress): ClientNode | undefined;
42
42
  get owner(): ServerNode;
43
43
  add(node: ClientNode): void;
44
44
  close(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"ClientNodes.d.ts","sourceRoot":"","sources":["../../../../src/node/client/ClientNodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,8DAA8D,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAoB,MAAM,WAAW,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AASnD;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,iBAAiB,CAAC,UAAU,CAAC;;gBAK9C,KAAK,EAAE,UAAU;IAa7B;;OAEG;IACH,UAAU;IAcV;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAIlC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAIpC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO;IAIzC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW;IAerC,IAAa,KAAK,IACQ,UAAU,CACnC;IAEQ,GAAG,CAAC,IAAI,EAAE,UAAU;IAMd,KAAK;CAgGvB"}
1
+ {"version":3,"file":"ClientNodes.d.ts","sourceRoot":"","sources":["../../../../src/node/client/ClientNodes.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,sBAAsB,EAAE,MAAM,iEAAiE,CAAC;AACzG,OAAO,EAAE,mBAAmB,EAAE,MAAM,8DAA8D,CAAC;AACnG,OAAO,EAAE,SAAS,EAAE,MAAM,oDAAoD,CAAC;AAC/E,OAAO,EAAE,iBAAiB,EAAE,MAAM,4DAA4D,CAAC;AAC/F,OAAO,EAAE,iBAAiB,EAAE,MAAM,2CAA2C,CAAC;AAE9E,OAAO,EAAE,WAAW,EAAoB,MAAM,WAAW,CAAC;AAE1D,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAC9C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AASnD;;;;GAIG;AACH,qBAAa,WAAY,SAAQ,iBAAiB,CAAC,UAAU,CAAC;;gBAK9C,KAAK,EAAE,UAAU;IAa7B;;OAEG;IACH,UAAU;IAcV;;OAEG;IACH,MAAM,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAIlC;;;;;OAKG;IACH,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,OAAO;IAIpC;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,sBAAsB,CAAC,OAAO;IAIzC,GAAG,CAAC,EAAE,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW;IAe9C,IAAa,KAAK,IACQ,UAAU,CACnC;IAEQ,GAAG,CAAC,IAAI,EAAE,UAAU;IAMd,KAAK;CAgGvB"}
@@ -67,7 +67,7 @@ class ClientNodes extends EndpointContainer {
67
67
  return new CommissioningDiscovery(this.owner, options);
68
68
  }
69
69
  get(id) {
70
- if (typeof id !== "string") {
70
+ if (typeof id !== "string" && typeof id !== "number") {
71
71
  const address = PeerAddress(id);
72
72
  for (const node of this) {
73
73
  const nodeAddress = node.state.commissioning.peerAddress;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/client/ClientNodes.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["freshestExp"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/node",
3
- "version": "0.15.2-alpha.0-20250703-2e16aba2b",
3
+ "version": "0.15.2-alpha.0-20250708-b8eb61a5e",
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.15.2-alpha.0-20250703-2e16aba2b",
46
- "@matter/model": "0.15.2-alpha.0-20250703-2e16aba2b",
47
- "@matter/types": "0.15.2-alpha.0-20250703-2e16aba2b",
48
- "@matter/protocol": "0.15.2-alpha.0-20250703-2e16aba2b"
45
+ "@matter/general": "0.15.2-alpha.0-20250708-b8eb61a5e",
46
+ "@matter/model": "0.15.2-alpha.0-20250708-b8eb61a5e",
47
+ "@matter/types": "0.15.2-alpha.0-20250708-b8eb61a5e",
48
+ "@matter/protocol": "0.15.2-alpha.0-20250708-b8eb61a5e"
49
49
  },
50
50
  "devDependencies": {
51
- "@matter/tools": "0.15.2-alpha.0-20250703-2e16aba2b",
52
- "@matter/testing": "0.15.2-alpha.0-20250703-2e16aba2b"
51
+ "@matter/tools": "0.15.2-alpha.0-20250708-b8eb61a5e",
52
+ "@matter/testing": "0.15.2-alpha.0-20250708-b8eb61a5e"
53
53
  },
54
54
  "files": [
55
55
  "dist/**/*",
@@ -5,7 +5,9 @@
5
5
  */
6
6
 
7
7
  import { Behavior } from "#behavior/Behavior.js";
8
- import { ImplementationError, NotImplementedError, ServerAddress, Time } from "#general";
8
+ import { Events as BaseEvents } from "#behavior/Events.js";
9
+ import { OperationalCredentialsClient } from "#behaviors/operational-credentials";
10
+ import { ImplementationError, NotImplementedError, Observable, ServerAddress, Time } from "#general";
9
11
  import { DatatypeModel, FieldElement } from "#model";
10
12
  import type { ClientNode } from "#node/ClientNode.js";
11
13
  import type { Node } from "#node/Node.js";
@@ -22,7 +24,14 @@ import {
22
24
  SessionParameters,
23
25
  Subscribe,
24
26
  } from "#protocol";
25
- import { DeviceTypeId, DiscoveryCapabilitiesBitmap, NodeId, TypeFromPartialBitSchema, VendorId } from "#types";
27
+ import {
28
+ DeviceTypeId,
29
+ DiscoveryCapabilitiesBitmap,
30
+ ManualPairingCodeCodec,
31
+ NodeId,
32
+ TypeFromPartialBitSchema,
33
+ VendorId,
34
+ } from "#types";
26
35
  import { ControllerBehavior } from "../controller/ControllerBehavior.js";
27
36
  import { NetworkClient } from "../network/NetworkClient.js";
28
37
  import { RemoteDescriptor } from "./RemoteDescriptor.js";
@@ -34,6 +43,7 @@ import { RemoteDescriptor } from "./RemoteDescriptor.js";
34
43
  */
35
44
  export class CommissioningClient extends Behavior {
36
45
  declare state: CommissioningClient.State;
46
+ declare events: CommissioningClient.Events;
37
47
 
38
48
  static override readonly early = true;
39
49
 
@@ -49,19 +59,29 @@ export class CommissioningClient extends Behavior {
49
59
  }
50
60
 
51
61
  this.reactTo((this.endpoint as Node).lifecycle.partsReady, this.#initializeNode);
62
+ this.reactTo(this.events.peerAddress$Changed, this.#peerAddressChanged);
52
63
  }
53
64
 
54
65
  commission(passcode: number): Promise<ClientNode>;
55
66
 
56
67
  commission(options: CommissioningClient.CommissioningOptions): Promise<ClientNode>;
57
68
 
58
- async commission(options: number | CommissioningClient.CommissioningOptions) {
59
- if (typeof options !== "object") {
69
+ async commission(options: number | string | CommissioningClient.CommissioningOptions) {
70
+ // Commissioning can only happen once
71
+ const node = this.endpoint as ClientNode;
72
+ if (this.state.peerAddress !== undefined) {
73
+ throw new ImplementationError(`${node} is already commissioned`);
74
+ }
75
+
76
+ if (typeof options === "number") {
60
77
  options = { passcode: options };
78
+ } else if (typeof options === "string") {
79
+ options = { pairingCode: options };
61
80
  }
81
+ const opts = CommissioningClient.PasscodeOptions(options) as CommissioningClient.PasscodeOptions;
62
82
 
63
83
  // Validate passcode
64
- let { passcode } = options;
84
+ let { passcode } = opts;
65
85
  if (typeof passcode !== "number" || Number.isNaN(passcode)) {
66
86
  passcode = Number.parseInt(passcode as unknown as string);
67
87
  if (Number.isNaN(passcode)) {
@@ -69,18 +89,12 @@ export class CommissioningClient extends Behavior {
69
89
  }
70
90
  }
71
91
 
72
- // Commissioning can only happen once
73
- const node = this.endpoint as ClientNode;
74
- if (this.state.peerAddress !== undefined) {
75
- throw new ImplementationError(`${node} is already commissioned`);
76
- }
77
-
78
92
  // Ensure controller is initialized
79
93
  await node.owner?.act(agent => agent.load(ControllerBehavior));
80
94
 
81
95
  // Obtain the fabric we will commission into
82
- const fabricAuthority = options.fabricAuthority || this.env.get(FabricAuthority);
83
- let { fabric } = options;
96
+ const fabricAuthority = opts.fabricAuthority || this.env.get(FabricAuthority);
97
+ let { fabric } = opts;
84
98
  if (fabric === undefined) {
85
99
  if (this.context.fabric === undefined) {
86
100
  fabric = await fabricAuthority.defaultFabric();
@@ -103,7 +117,7 @@ export class CommissioningClient extends Behavior {
103
117
  const commissioner = node.env.get(ControllerCommissioner);
104
118
 
105
119
  const identityService = node.env.get(IdentityService);
106
- const address = identityService.assignNodeAddress(node, fabric.fabricIndex, options.nodeId);
120
+ const address = identityService.assignNodeAddress(node, fabric.fabricIndex, opts.nodeId);
107
121
 
108
122
  const commissioningOptions: LocatedNodeCommissioningOptions = {
109
123
  addresses,
@@ -128,7 +142,7 @@ export class CommissioningClient extends Behavior {
128
142
  await this.context.transaction.commit();
129
143
 
130
144
  const network = this.agent.get(NetworkClient);
131
- network.state.startupSubscription = options.startupSubscription;
145
+ network.state.startupSubscription = opts.startupSubscription;
132
146
 
133
147
  node.lifecycle.commissioned.emit(this.context);
134
148
 
@@ -137,6 +151,28 @@ export class CommissioningClient extends Behavior {
137
151
  return node;
138
152
  }
139
153
 
154
+ /**
155
+ * Remove this node from the fabric.
156
+ *
157
+ * After removal the {@link ClientNode} remains intact. You can use {@link ClientNode#delete} to remove the node
158
+ * permanently.
159
+ *
160
+ * Only legal if this node controls the peer's fabric.
161
+ */
162
+ async decommission() {
163
+ const { peerAddress } = this.state;
164
+
165
+ if (peerAddress === undefined) {
166
+ throw new ImplementationError("Cannot decommission node that is not commissioned");
167
+ }
168
+
169
+ const opcreds = this.agent.get(OperationalCredentialsClient);
170
+
171
+ await opcreds.removeFabric({ fabricIndex: opcreds.state.currentFabricIndex });
172
+
173
+ this.state.peerAddress = undefined;
174
+ }
175
+
140
176
  /**
141
177
  * Override to implement CASE commissioning yourself.
142
178
  *
@@ -160,6 +196,16 @@ export class CommissioningClient extends Behavior {
160
196
  endpoint.lifecycle.initialized.emit(this.state.peerAddress !== undefined);
161
197
  }
162
198
 
199
+ #peerAddressChanged(addr?: PeerAddress) {
200
+ const node = this.endpoint as ClientNode;
201
+
202
+ if (addr) {
203
+ node.lifecycle.commissioned.emit(this.context);
204
+ } else {
205
+ node.lifecycle.decommissioned.emit(this.context);
206
+ }
207
+ }
208
+
163
209
  /**
164
210
  * Define logical schema. This enables runtime validation, make fields persistent and makes subfields editable.
165
211
  */
@@ -323,27 +369,21 @@ export namespace CommissioningClient {
323
369
  longIdleTimeOperatingMode?: boolean;
324
370
  }
325
371
 
372
+ export class Events extends BaseEvents {
373
+ peerAddress$Changed = new Observable<[value: PeerAddress | undefined, oldValue: PeerAddress | undefined]>();
374
+ }
375
+
326
376
  /**
327
377
  * Options that control commissioning.
328
378
  */
329
- export interface CommissioningOptions {
330
- /**
331
- * The device's passcode.
332
- */
333
- passcode: number;
334
-
335
- /**
336
- * The device's long discriminator.
337
- */
338
- discriminator?: number;
339
-
379
+ export interface BaseCommissioningOptions {
340
380
  /**
341
381
  * The ID to assign the node during commissioning. By default the node receives the next available ID.
342
382
  */
343
383
  nodeId?: NodeId;
344
384
 
345
385
  /**
346
- * The fabric the joins upon commissioning. Defaults to the default fabric of the assigned
386
+ * The fabric the node joins upon commissioning. Defaults to the default fabric of the assigned
347
387
  * {@link FabricAuthority}.
348
388
  */
349
389
  fabric?: Fabric;
@@ -384,4 +424,49 @@ export namespace CommissioningClient {
384
424
  */
385
425
  startupSubscription?: Subscribe | null;
386
426
  }
427
+
428
+ export interface PasscodeOptions extends BaseCommissioningOptions {
429
+ /**
430
+ * The device's passcode.
431
+ */
432
+ passcode: number;
433
+
434
+ /**
435
+ * The device's long discriminator.
436
+ */
437
+ discriminator?: number;
438
+ }
439
+
440
+ export interface PairingCodeOptions extends BaseCommissioningOptions {
441
+ /**
442
+ * The device's pairing code.
443
+ */
444
+ pairingCode: string;
445
+ }
446
+
447
+ export type CommissioningOptions = PasscodeOptions | PairingCodeOptions;
448
+
449
+ export function PasscodeOptions<T extends CommissioningOptions>(options: T) {
450
+ let opts: T & PasscodeOptions;
451
+
452
+ if ("pairingCode" in options) {
453
+ const decoded = ManualPairingCodeCodec.decode(options.pairingCode);
454
+ opts = {
455
+ ...options,
456
+ ...decoded,
457
+ };
458
+ } else {
459
+ opts = options as T & PasscodeOptions;
460
+ }
461
+
462
+ let { passcode } = opts;
463
+ if (typeof passcode !== "number" || Number.isNaN(passcode)) {
464
+ passcode = Number.parseInt(passcode as unknown as string);
465
+ if (Number.isNaN(passcode)) {
466
+ throw new ImplementationError("You must provide a pairing code or passcode to pair a node");
467
+ }
468
+ }
469
+
470
+ return opts;
471
+ }
387
472
  }
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import type { CommissioningClient } from "#behavior/system/commissioning/CommissioningClient.js";
7
+ import { CommissioningClient } from "#behavior/system/commissioning/CommissioningClient.js";
8
8
  import type { ServerNode } from "#node/ServerNode.js";
9
9
  import type { Discovery } from "./Discovery.js";
10
10
  import { InstanceDiscovery } from "./InstanceDiscovery.js";
@@ -16,7 +16,9 @@ export class CommissioningDiscovery extends InstanceDiscovery {
16
16
  #options: CommissioningDiscovery.Options;
17
17
 
18
18
  constructor(owner: ServerNode, options: CommissioningDiscovery.Options) {
19
- const { discriminator } = options;
19
+ const opts = CommissioningClient.PasscodeOptions(options);
20
+
21
+ const { discriminator } = opts;
20
22
  if (discriminator !== undefined) {
21
23
  options = { ...options, longDiscriminator: discriminator };
22
24
  }
@@ -37,5 +39,5 @@ export class CommissioningDiscovery extends InstanceDiscovery {
37
39
  }
38
40
 
39
41
  export namespace CommissioningDiscovery {
40
- export type Options = Discovery.Options & CommissioningClient.CommissioningOptions;
42
+ export type Options = Discovery.InstanceOptions & CommissioningClient.CommissioningOptions;
41
43
  }
@@ -208,6 +208,7 @@ export abstract class Discovery<T = unknown> extends CancelablePromise<T> {
208
208
  } else {
209
209
  // This node is new to us
210
210
  node = factory.create({
211
+ id: (this.#options as Discovery.InstanceOptions).id,
211
212
  environment: this.#owner.env,
212
213
  commissioning: { descriptor },
213
214
  });
@@ -261,4 +262,14 @@ export namespace Discovery {
261
262
  export type Options = CommissionableDeviceIdentifiers & {
262
263
  timeoutSeconds?: number;
263
264
  };
265
+
266
+ export type InstanceOptions = Options & {
267
+ /**
268
+ * The local ID to assign the node if newly discovered. This is the stable identifier used for the node's "id"
269
+ * property.
270
+ *
271
+ * By default matter.js assigns an ID of the form "nodeN".
272
+ */
273
+ id?: string;
274
+ };
264
275
  }
@@ -18,7 +18,7 @@ import { DiscoveryError } from "./DiscoveryError.js";
18
18
  export class InstanceDiscovery extends Discovery<ClientNode> {
19
19
  #result?: ClientNode;
20
20
 
21
- constructor(owner: ServerNode, options?: Discovery.Options) {
21
+ constructor(owner: ServerNode, options?: Discovery.InstanceOptions) {
22
22
  super(owner, options);
23
23
  }
24
24
 
@@ -5,13 +5,10 @@
5
5
  */
6
6
 
7
7
  import { Agent } from "#endpoint/Agent.js";
8
- import { DeviceClassification } from "#model";
8
+ import { AggregatorDt, BridgedNodeDt, DeviceClassification, RootNodeDt } from "#model";
9
9
  import { DeviceTypeId, ProductDescription, VendorId } from "#types";
10
10
  import { BasicInformationBehavior } from "../../../behaviors/basic-information/BasicInformationBehavior.js";
11
11
  import { DescriptorBehavior } from "../../../behaviors/descriptor/DescriptorBehavior.js";
12
- import { AggregatorEndpoint } from "../../../endpoints/aggregator.js";
13
- import { BridgedNodeEndpoint } from "../../../endpoints/bridged-node.js";
14
- import { RootEndpoint } from "../../../endpoints/root.js";
15
12
  import { Behavior } from "../../Behavior.js";
16
13
 
17
14
  /**
@@ -99,9 +96,11 @@ function inferDeviceType(agent: Agent): DeviceTypeId | undefined {
99
96
  let recurse = false;
100
97
  for (const dt of agent.get(DescriptorBehavior).state.deviceTypeList) {
101
98
  switch (dt.deviceType) {
102
- case RootEndpoint.deviceType:
103
- case BridgedNodeEndpoint.deviceType:
104
- case AggregatorEndpoint.deviceType:
99
+ // Note - retrieve IDs from the model rather than the endpoint files because referencing the endpoints will
100
+ // create a big wad of circular deps
101
+ case RootNodeDt.id:
102
+ case BridgedNodeDt.id:
103
+ case AggregatorDt.id:
105
104
  recurse = true;
106
105
  break;
107
106
 
@@ -414,9 +414,15 @@ export class Behaviors {
414
414
  }
415
415
  };
416
416
 
417
- await OfflineContext.act(`close<${this.#endpoint}>`, dispose, {
418
- activity: this.#endpoint.env.get(NodeActivity),
419
- });
417
+ await OfflineContext.act(
418
+ `close<${this.#endpoint}>`,
419
+ dispose,
420
+
421
+ // Note - do not close in an activity because this can cause deadlock
422
+ //, {
423
+ // activity: this.#endpoint.env.get(NodeActivity),
424
+ //},
425
+ );
420
426
  }
421
427
 
422
428
  /**