@matter-server/ws-controller 0.7.0-alpha.0-20260512-b404bea → 0.7.0

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 (35) hide show
  1. package/dist/esm/controller/ControllerCommandHandler.d.ts +10 -0
  2. package/dist/esm/controller/ControllerCommandHandler.d.ts.map +1 -1
  3. package/dist/esm/controller/ControllerCommandHandler.js +93 -24
  4. package/dist/esm/controller/ControllerCommandHandler.js.map +1 -1
  5. package/dist/esm/controller/MatterController.d.ts +7 -2
  6. package/dist/esm/controller/MatterController.d.ts.map +1 -1
  7. package/dist/esm/controller/MatterController.js +46 -3
  8. package/dist/esm/controller/MatterController.js.map +1 -1
  9. package/dist/esm/controller/Nodes.d.ts +7 -61
  10. package/dist/esm/controller/Nodes.d.ts.map +1 -1
  11. package/dist/esm/controller/Nodes.js +13 -77
  12. package/dist/esm/controller/Nodes.js.map +1 -1
  13. package/dist/esm/controller/WebRtcCallbackBridge.d.ts +9 -0
  14. package/dist/esm/controller/WebRtcCallbackBridge.d.ts.map +1 -0
  15. package/dist/esm/controller/WebRtcCallbackBridge.js +75 -0
  16. package/dist/esm/controller/WebRtcCallbackBridge.js.map +6 -0
  17. package/dist/esm/controller/behaviors/WebRtcTransportRequestorServer.d.ts +35 -0
  18. package/dist/esm/controller/behaviors/WebRtcTransportRequestorServer.d.ts.map +1 -0
  19. package/dist/esm/controller/behaviors/WebRtcTransportRequestorServer.js +123 -0
  20. package/dist/esm/controller/behaviors/WebRtcTransportRequestorServer.js.map +6 -0
  21. package/dist/esm/index.d.ts +2 -1
  22. package/dist/esm/index.d.ts.map +1 -1
  23. package/dist/esm/index.js +3 -1
  24. package/dist/esm/index.js.map +1 -1
  25. package/dist/esm/server/WebSocketControllerHandler.d.ts.map +1 -1
  26. package/dist/esm/server/WebSocketControllerHandler.js +17 -0
  27. package/dist/esm/server/WebSocketControllerHandler.js.map +1 -1
  28. package/package.json +22 -21
  29. package/src/controller/ControllerCommandHandler.ts +121 -42
  30. package/src/controller/MatterController.ts +54 -4
  31. package/src/controller/Nodes.ts +13 -78
  32. package/src/controller/WebRtcCallbackBridge.ts +79 -0
  33. package/src/controller/behaviors/WebRtcTransportRequestorServer.ts +149 -0
  34. package/src/index.ts +2 -1
  35. package/src/server/WebSocketControllerHandler.ts +24 -0
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/server/WebSocketControllerHandler.ts"],
4
- "mappings": "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",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,SAAS,gBAAgB,0BAA0B;AACnD,SAAS,kBAAkB;AAC3B,SAAS,uBAAuB;AAGhC,SAAS,8BAA8B;AACvC,SAAS,iBAAiB;AAC1B,SAAS,kBAAmC;AAG5C;AAAA,EAQI;AAAA,EACA;AAAA,OAGG;AACP,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAE/B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAEP,MAAM,SAAS,OAAO,IAAI,4BAA4B;AAGtD,MAAM,qBAAqB;AAG3B,IAAI,sBAAsB;AAM1B,SAAS,uBAA+B;AACpC,QAAM,KAAK;AACX,wBAAuB,sBAAsB,IAAK;AAClD,SAAO,GAAG,SAAS,EAAE;AACzB;AAEA,MAAM,iBAAiB;AAEvB,MAAM,6BAA6B,CAAC,iBAAiB;AAG9C,MAAM,2BAAuD;AAAA,EAChE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,mBAAmB,IAAI,cAAc;AAAA;AAAA,EAErC,gBAAmC,CAAC;AAAA;AAAA,EAEpC,sBAAsB,oBAAI,IAAkB;AAAA,EAE5C,YAAY,YAA8B,QAAuB,eAAuB;AACpF,SAAK,cAAc;AACnB,SAAK,kBAAkB,WAAW;AAClC,SAAK,mBAAmB,IAAI,uBAAuB;AACnD,SAAK,UAAU;AACf,SAAK,iBAAiB;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,SAAS;AACL,UAAM,gBAAgB,KAAK,gBAAgB,WAAW,EAAE;AACxD,UAAM,gBAAgB,KAAK,iBAAiB,SAAS,EAAE;AACvD,WAAO;AAAA,MACH,SAAS,KAAK;AAAA,MACd,YAAY,gBAAgB;AAAA,IAChC;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,QAA4E;AACpF,WAAO,uBAAuB,aAAa,MAAM,IAAI,KAAK,mBAAmB,KAAK;AAAA,EACtF;AAAA;AAAA;AAAA;AAAA,EAKA,mBAAmB,OAAwB;AACvC,SAAK,cAAc,KAAK,KAAK;AAC7B,QAAI,KAAK,cAAc,SAAS,oBAAoB;AAChD,WAAK,cAAc,MAAM;AAAA,IAC7B;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAqC;AACjC,WAAO,CAAC,GAAG,KAAK,aAAa;AAAA,EACjC;AAAA,EAEA,mBAAyB;AACrB,SAAK,gBAAgB;AAAA,EACzB;AAAA,EAEA,MAAM,SAAS,QAAoB;AAC/B,WAAO,KAAK,kCAAkC,KAAK,cAAc,eAAe,cAAc,GAAG;AACjG,UAAM,MAAO,KAAK,OAAO,IAAI,gBAAgB,EAAE,QAAgB,MAAM,MAAM,CAAC;AAI5E,SAAK,iBAAiB,GAAG,KAAK,gBAAgB,OAAO,gBAAgB,UAAQ;AACzE,WAAK,gBAAgB,mBAAmB,IAAI;AAAA,IAChD,CAAC;AAED,QAAI,GAAG,cAAc,QAAM;AACvB,UAAI,KAAK,WAAW,KAAK,eAAe;AACpC,YAAI;AACA,aAAG,MAAM,MAAM,sBAAsB;AAAA,QACzC,QAAQ;AAAA,QAER;AACA;AAAA,MACJ;AAEA,YAAM,SAAS,qBAAqB;AACpC,aAAO,KAAK,IAAI,MAAM,oCAAoC;AAE1D,UAAI,YAAY;AAChB,YAAM,YAAY,IAAI,cAAc;AAEpC,YAAM,uBAAuB,CAAuB,WAAc,WAAmB;AACjF,YAAI,KAAK,WAAW,KAAK,iBAAiB,CAAC,UAAW;AAEtD,gBAAQ,WAAW;AAAA,UACf,KAAK;AAAA,UACL,KAAK,gBAAgB;AACjB,gBAAI;AACA,oBAAM,cAAc,KAAK,oBAAoB,MAAM;AACnD,qBAAO;AAAA,gBACH,IAAI,MAAM,aAAa,SAAS,mBAAmB,KAAK,gBAAgB,WAAW,MAAM,CAAC;AAAA,cAC9F;AACA,iBAAG,KAAK,kBAAkB,EAAE,OAAO,WAAW,MAAM,YAAY,CAAC,CAAC;AAAA,YACtE,SAAS,KAAK;AACV,qBAAO;AAAA,gBACH,IAAI,MAAM,6CAA6C,KAAK,gBAAgB,WAAW,MAAM,CAAC;AAAA,gBAC9F;AAAA,cACJ;AAAA,YACJ;AACA;AAAA,UACJ;AAAA,UACA,KAAK;AACD,mBAAO;AAAA,cACH,IAAI,MAAM,yCAAyC,KAAK,gBAAgB,WAAW,MAAM,CAAC;AAAA,YAC9F;AACA,eAAG,KAAK,kBAAkB,EAAE,OAAO,WAAW,MAAM,OAAO,CAAC,CAAC;AAC7D;AAAA,QACR;AAAA,MACJ;AAGA,gBAAU,GAAG,KAAK,gBAAgB,OAAO,kBAAkB,CAAC,QAAQ,SAAS;AACzE,YAAI,KAAK,WAAW,KAAK,iBAAiB,CAAC,UAAW;AACtD,cAAM,EAAE,YAAY,WAAW,YAAY,IAAI,KAAK;AACpD,cAAM,UAAU,GAAG,UAAU,IAAI,SAAS,IAAI,WAAW;AACzD,cAAM,cAAc,WAAW,SAAS;AACxC,cAAM,QAAQ;AAAA,UACV,KAAK;AAAA,UACL,aAAa,WAAW,WAAW;AAAA,UACnC,aAAa;AAAA,QACjB;AACA,eAAO;AAAA,UACH,IAAI,MAAM,8CAA8C,KAAK,gBAAgB,WAAW,MAAM,CAAC;AAAA,UAC/F;AAAA,UACA;AAAA,QACJ;AACA,WAAG,KAAK,kBAAkB,EAAE,OAAO,qBAAqB,MAAM,CAAC,QAAQ,SAAS,KAAK,EAAE,CAAC,CAAC;AAAA,MAC7F,CAAC;AAED,gBAAU,GAAG,KAAK,gBAAgB,OAAO,cAAc,CAAC,QAAQ,SAAS;AACrE,YAAI,KAAK,WAAW,KAAK,iBAAiB,CAAC,UAAW;AACtD,cAAM,EAAE,MAAM,OAAO,IAAI;AACzB,cAAM,EAAE,YAAY,WAAW,QAAQ,IAAI;AAC3C,cAAM,cAAc,WAAW,SAAS;AAExC,mBAAW,SAAS,QAAQ;AACxB,cAAI;AACJ,cAAI;AAEJ,cAAI,MAAM,mBAAmB,QAAW;AACpC,wBAAY,MAAM;AAClB,4BAAgB;AAAA,UACpB,WAAW,MAAM,oBAAoB,QAAW;AAC5C,wBAAY,MAAM;AAClB,4BAAgB;AAAA,UACpB,OAAO;AACH,wBAAY,KAAK,IAAI;AACrB,4BAAgB;AAAA,UACpB;AAEA,gBAAM,aAAa,aAAa,OAAO,OAAO;AAC9C,gBAAM,gBACF,MAAM,SAAS,SACT,kCAAkC,MAAM,MAAM,YAAY,aAAa,KAAK,IAC5E;AAEV,gBAAM,YAA6B;AAAA,YAC/B,SAAS;AAAA,YACT,aAAa;AAAA,YACb,YAAY;AAAA,YACZ,UAAU;AAAA,YACV,cAAc,MAAM;AAAA,YACpB,UAAU,MAAM;AAAA,YAChB;AAAA,YACA,gBAAgB;AAAA,YAChB,MAAM;AAAA,UACV;AAGA,eAAK,mBAAmB,SAAS;AAEjC,iBAAO;AAAA,YACH,IAAI,MAAM,iCAAiC,KAAK,gBAAgB,WAAW,MAAM,CAAC;AAAA,YAClF;AAAA,UACJ;AACA,aAAG,KAAK,kBAAkB,EAAE,OAAO,cAAc,MAAM,UAAU,CAAC,CAAC;AAAA,QACvE;AAAA,MACJ,CAAC;AAED,gBAAU,GAAG,KAAK,gBAAgB,OAAO,WAAW,YAAU;AAC1D,6BAAqB,cAAc,MAAM;AAAA,MAC7C,CAAC;AAED,gBAAU,GAAG,KAAK,gBAAgB,OAAO,kBAAkB,CAAC,QAAQ,UAAU;AAE1E,YAAI,UAAU,WAAW,WAAW;AAChC,eAAK,oBAAoB,IAAI,QAAQ,oBAAI,KAAK,CAAC;AAAA,QACnD;AAAA,MAGJ,CAAC;AAGD,gBAAU,GAAG,KAAK,gBAAgB,OAAO,yBAAyB,CAAC,QAAQ,cAAc;AACrF,eAAO;AAAA,UACH,IAAI,MAAM,UAAU,KAAK,gBAAgB,WAAW,MAAM,CAAC,4BAA4B,SAAS;AAAA,QACpG;AACA,6BAAqB,gBAAgB,MAAM;AAAA,MAC/C,CAAC;AAED,gBAAU,GAAG,KAAK,gBAAgB,OAAO,sBAAsB,YAAU;AACrE,6BAAqB,gBAAgB,MAAM;AAAA,MAC/C,CAAC;AAED,gBAAU,GAAG,KAAK,gBAAgB,OAAO,oBAAoB,YAAU;AACnE,6BAAqB,gBAAgB,MAAM;AAAA,MAC/C,CAAC;AAED,gBAAU,GAAG,KAAK,gBAAgB,OAAO,mBAAmB,CAAC,QAAQ,eAAe;AAChF,YAAI,KAAK,WAAW,KAAK,iBAAiB,CAAC,UAAW;AACtD,eAAO;AAAA,UACH,IAAI,MAAM,2CAA2C,KAAK,gBAAgB,WAAW,MAAM,CAAC,aAAa,UAAU;AAAA,QACvH;AACA,WAAG;AAAA,UACC,kBAAkB,EAAE,OAAO,kBAAkB,MAAM,EAAE,SAAS,QAAQ,aAAa,WAAW,EAAE,CAAC;AAAA,QACrG;AAAA,MACJ,CAAC;AAED,gBAAU,GAAG,KAAK,gBAAgB,OAAO,qBAAqB,CAAC,QAAQ,eAAe;AAClF,YAAI,KAAK,WAAW,KAAK,iBAAiB,CAAC,UAAW;AACtD,eAAO;AAAA,UACH,IAAI,MAAM,6CAA6C,KAAK,gBAAgB,WAAW,MAAM,CAAC,aAAa,UAAU;AAAA,QACzH;AACA,WAAG;AAAA,UACC,kBAAkB;AAAA,YACd,OAAO;AAAA,YACP,MAAM,EAAE,SAAS,QAAQ,aAAa,WAAW;AAAA,UACrD,CAAC;AAAA,QACL;AAAA,MACJ,CAAC;AAGD,gBAAU,GAAG,KAAK,iBAAiB,WAAW,CAAC,SAAS,aAAa;AACjE,YAAI,KAAK,WAAW,KAAK,iBAAiB,CAAC,UAAW;AACtD,eAAO,KAAK,IAAI,MAAM,4CAA4C,SAAS,OAAO,EAAE;AACpF,WAAG,KAAK,kBAAkB,EAAE,OAAO,cAAc,MAAM,SAAS,CAAC,CAAC;AAAA,MACtE,CAAC;AAED,gBAAU,GAAG,KAAK,iBAAiB,aAAa,YAAU;AACtD,YAAI,KAAK,WAAW,KAAK,iBAAiB,CAAC,UAAW;AACtD,eAAO,KAAK,IAAI,MAAM,8CAA8C,aAAa,MAAM,CAAC,EAAE;AAC1F,WAAG,KAAK,kBAAkB,EAAE,OAAO,gBAAgB,MAAM,OAAO,CAAC,CAAC;AAAA,MACtE,CAAC;AAED,UAAI,mBAAmB;AACvB,YAAM,UAAU,MAAM;AAClB,YAAI,kBAAkB;AAClB;AAAA,QACJ;AACA,2BAAmB;AACnB,eAAO,KAAK,IAAI,MAAM,+BAA+B;AACrD,kBAAU,MAAM;AAAA,MACpB;AAEA,SAAG;AAAA,QACC;AAAA,QACA,UACI,KAAK,KAAK,wBAAwB,QAAQ,KAAK,SAAS,CAAC,EAAE;AAAA,UACvD,CAAC,EAAE,UAAU,gBAAgB,MAAM;AAC/B,gBAAI,KAAK,QAAS;AAClB,gBAAI,iBAAiB;AACjB,0BAAY;AAAA,YAChB;AACA,eAAG,KAAK,kBAAkB,QAAQ,CAAC;AAAA,UACvC;AAAA,UACA,SAAO,OAAO,MAAM,IAAI,MAAM,6BAA6B,GAAG;AAAA,QAClE;AAAA,MACR;AAEA,SAAG,GAAG,SAAS,OAAO;AACtB,SAAG,GAAG,SAAS,SAAO;AAClB,eAAO,MAAM,IAAI,MAAM,qBAAqB,GAAG;AAC/C,gBAAQ;AAAA,MACZ,CAAC;AAED,WAAK,eAAe,EAAE;AAAA,QAClB,cAAY;AACR,iBAAO,MAAM,IAAI,MAAM,uBAAuB;AAC9C,aAAG,KAAK,kBAAkB,QAAQ,CAAC;AAAA,QACvC;AAAA,QACA,SAAO,OAAO,MAAM,IAAI,MAAM,+BAA+B,GAAG;AAAA,MACpE;AAAA,IACJ,CAAC;AAID,UAAM,KAAK,gBAAgB,gBAAgB;AAAA,EAC/C;AAAA,EAEA,aAA4B;AACxB,QAAI,CAAC,KAAK,QAAQ,KAAK,SAAS;AAC5B,aAAO,QAAQ,QAAQ;AAAA,IAC3B;AAEA,SAAK,UAAU;AACf,SAAK,iBAAiB,MAAM;AAE5B,UAAM,kBAAkB,kBAAkB,EAAE,OAAO,mBAAmB,MAAM,CAAC,EAAE,CAAC;AAChF,SAAK,KAAK,QAAQ,QAAQ,YAAU;AAChC,UAAI,OAAO,eAAe,GAAwB;AAC9C,YAAI;AACA,iBAAO,KAAK,iBAAiB,MAAM;AAC/B,mBAAO,MAAM;AAAA,UACjB,CAAC;AAAA,QACL,SAAS,KAAK;AACV,iBAAO,KAAK,kDAAkD,GAAG;AAAA,QACrE;AAAA,MACJ;AAAA,IACJ,CAAC;AAED,UAAM,MAAM,KAAK;AAEjB,WAAO,IAAI,QAAc,CAAC,SAAS,WAAW;AAC1C,UAAI,MAAM,SAAO;AACb,YAAI,KAAK;AACL,iBAAO,GAAG;AAAA,QACd,OAAO;AACH,kBAAQ;AAAA,QACZ;AAAA,MACJ,CAAC;AAAA,IACL,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,wBACF,QACA,MAC2F;AAC3F,QAAI;AACJ,QAAI;AACJ,QAAI;AACA,aAAO,MAAM,IAAI,MAAM,uBAAuB,MAAM,IAAI;AACxD,YAAM,UAAU,qBAAqB,IAAI;AACzC,YAAM,EAAE,KAAK,IAAI;AACjB,kBAAY,QAAQ;AACpB,gBAAU,QAAQ;AAClB,UAAI;AACJ,UAAI,kBAAuC;AAC3C,cAAQ,SAAS;AAAA,QACb,KAAK;AACD,mBAAS,KAAK,sBAAsB,IAAI;AACxC,4BAAkB;AAClB;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,6BAA6B,IAAI;AACrD;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,0BAA0B,IAAI;AAClD;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,2BAA2B,IAAI;AACnD;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,eAAe,IAAI;AACvC;AAAA,QACJ,KAAK;AACD,mBAAS,KAAK,gBAAgB,IAAI;AAClC;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,0BAA0B,IAAI;AAClD;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,qBAAqB,IAAI;AAC7C;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,sBAAsB,IAAI;AAC9C;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,qBAAqB,IAAI;AAC7C;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,iCAAiC,IAAI;AACzD;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,sBAAsB,IAAI;AAC9C;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,qBAAqB,IAAI;AAC7C;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,gBAAgB,IAAI;AACxC;AAAA,QACJ,KAAK;AACD,mBAAS;AAAA,YACL,MAAM,MAAM,KAAK,eAAe;AAAA,YAChC,OAAO,KAAK,gBAAgB,IAAI;AAAA,YAChC,QAAQ,KAAK,gBAAgB;AAAA,UACjC;AACA;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,kBAAkB,IAAI;AAC1C;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,0BAA0B,IAAI;AAClD;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,wBAAwB,IAAI;AAChD;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,6BAA6B;AACjD;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,2BAA2B;AAC/C;AAAA,QACJ,KAAK;AACD,mBAAS,KAAK,YAAY,cAAc,KAAK;AAC7C;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,+BAA+B,IAAI;AACvD;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,mCAAmC,IAAI;AAC3D;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,wBAAwB,IAAI;AAChD;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,0BAA0B,IAAI;AAClD;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,mBAAmB,IAAI;AAC3C;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,sBAAsB,IAAI;AAC9C;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,sBAAsB,IAAI;AAC9C;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,uBAAuB,IAAI;AAC/C;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,kBAAkB,IAAI;AAC1C;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,eAAe;AACnC;AAAA,QACJ,KAAK;AACD,mBAAS,MAAM,KAAK,mCAAmC,CAAC,CAAC;AACzD;AAAA,QACJ,KAAK;AACD,mBAAS,KAAK,mBAAmB;AACjC;AAAA,QACJ,KAAK;AACD,mBAAS,KAAK,mBAAmB,IAAI;AACrC;AAAA,QACJ;AACI,gBAAM,YAAY,eAAe,OAAO;AAAA,MAChD;AACA,UAAI,WAAW,QAAW;AACtB,cAAM,YAAY,cAAc,sCAAsC;AAAA,MAC1E;AACA,UAAI,2BAA2B,SAAS,OAAO,GAAG;AAC9C,eAAO,MAAM,IAAI,MAAM,yBAAyB,OAAO,KAAK,SAAS;AAAA,MACzE,OAAO;AACH,eAAO,MAAM,IAAI,MAAM,yBAAyB,OAAO,KAAK,WAAW,MAAM;AAAA,MACjF;AACA,aAAO;AAAA,QACH,UAAU;AAAA,UACN,YAAY,aAAa;AAAA,UACzB;AAAA,QACJ;AAAA,QACA;AAAA,MACJ;AAAA,IACJ,SAAS,KAAK;AACV,aAAO,MAAM,IAAI,MAAM,+BAA+B,OAAO,KAAK,WAAW,GAAG;AAChF,YAAM,YAAY,eAAe,cAAc,IAAI,OAAO,gBAAgB;AAC1E,aAAO;AAAA,QACH,UAAU;AAAA,UACN,YAAY,aAAa;AAAA,UACzB,YAAY;AAAA,UACZ,SAAU,IAAc;AAAA,QAC5B;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,iBAA6C;AAC/C,UAAM,KAAK,gBAAgB,MAAM;AACjC,UAAM;AAAA,MACF,UAAU;AAAA,MACV,oBAAoB;AAAA,MACpB,aAAa;AAAA,IACjB,IAAI,MAAM,KAAK,gBAAgB,0BAA0B;AACzD,WAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA,gBAAgB;AAAA,MAChB,8BAA8B;AAAA,MAC9B,aAAa,iBAAiB,KAAK,cAAc,eAAe,cAAc;AAAA,MAC9E,sBAAsB,CAAC,EAAE,KAAK,QAAQ,YAAY,KAAK,QAAQ;AAAA,MAC/D,WAAW,KAAK,QAAQ,YAAY,KAAK,QAAQ,kBAAkB,KAAK,QAAQ,WAAW;AAAA,MAC3F,wBAAwB,CAAC,CAAC,KAAK,QAAQ;AAAA,MACvC,mBAAmB,KAAK,gBAAgB;AAAA,IAC5C;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,OAAe,MAAe;AAC1C,QAAI,CAAC,KAAK,QAAQ,KAAK,WAAW,KAAK,cAAe;AACtD,UAAM,UAAU,kBAAkB,EAAE,OAAO,KAAK,CAAC;AACjD,SAAK,KAAK,QAAQ,QAAQ,YAAU;AAChC,UAAI,OAAO,eAAe,GAAwB;AAC9C,YAAI;AACA,iBAAO,KAAK,OAAO;AAAA,QACvB,SAAS,KAAK;AACV,iBAAO,KAAK,uBAAuB,KAAK,oBAAoB,GAAG;AAAA,QACnE;AAAA,MACJ;AAAA,IACJ,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,8BAA8B;AAChC,UAAM,aAAa,MAAM,KAAK,eAAe;AAC7C,WAAO,KAAK,0CAA0C,UAAU;AAChE,SAAK,gBAAgB,uBAAuB,UAAU;AAAA,EAC1D;AAAA,EAEA,sBAAsB,OAAiE;AACnF,WAAO,KAAK,kCAAkC;AAC9C,UAAM,OAAO,KAAK,gBAAgB,CAAC,CAAC;AACpC,WAAO,KAAK,8CAA8C,KAAK,QAAQ,OAAO;AAC9E,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,6BACF,MAC+C;AAC/C,UAAM,EAAE,MAAM,IAAI;AAElB,QAAI,iBAAiB,SAAS,MAAM,KAAK,MAAM,KAAK,MAAM,KAAK,IAAI;AACnE,qBAAiB,eAAe,UAAU,GAAG,EAAE;AAC/C,UAAM,KAAK,QAAQ,IAAI,EAAE,aAAa,eAAe,CAAC;AACtD,UAAM,KAAK,gBAAgB,eAAe,cAAc;AACxD,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,0BAA0B,MAAmF;AAC/G,UAAM,EAAE,MAAM,aAAa,IAAI;AAC/B,UAAM,WAAW,KAAK,WAAW,KAAK;AAEtC,UAAM,aAAa,KAAK,QAAQ;AAEhC,QAAI,kBAAiF;AACrF,QAAI,oBAAqF;AACzF,QAAI,CAAC,gBAAgB,KAAK,gBAAgB,YAAY;AAClD,UAAI,KAAK,QAAQ,YAAY,KAAK,QAAQ,iBAAiB;AACvD,0BAAkB;AAAA,UACd,UAAU,KAAK,QAAQ;AAAA,UACvB,iBAAiB,KAAK,QAAQ;AAAA,QAClC;AAAA,MACJ;AACA,UAAI,KAAK,QAAQ,eAAe;AAC5B,4BAAoB;AAAA,UAChB,aAAa;AAAA;AAAA,UACb,oBAAoB,KAAK,QAAQ;AAAA,QACrC;AAAA,MACJ;AAAA,IACJ;AAGA,UAAM,KAAK,YAAY,mBAAmB;AAE1C,UAAM,KAAK,QAAQ,IAAI;AAAA,MACnB,YAAY,OAAO,eAAe,WAAW,aAAa,KAAK,aAAa;AAAA,IAChF,CAAC;AAED,UAAM,EAAE,OAAO,IAAI,MAAM,KAAK,gBAAgB,eAAe;AAAA,MACzD,QAAQ,OAAO,UAAU;AAAA,MACzB,eAAe;AAAA,MACf,GAAI,WAAW,EAAE,QAAQ,KAAK,IAAI,EAAE,YAAY,KAAK;AAAA,MACrD;AAAA,MACA;AAAA,IACJ,CAAC;AAED,WAAO,KAAK,oBAAoB,MAAM;AAAA,EAC1C;AAAA,EAEA,MAAM,2BACF,MAC4C;AAC5C,UAAM,EAAE,gBAAgB,aAAa,QAAQ,QAAQ,IAAI;AAEzD,UAAM,aAAa,KAAK,QAAQ;AAIhC,QAAI;AAEJ,UAAM,cAAc;AAAA,MAChB,QAAQ,OAAO,UAAU;AAAA,MACzB,eAAe;AAAA;AAAA;AAAA,MAEf,cAAc,WAAW,CAAC,QAAQ,WAAW,MAAM,IAAI,EAAE,IAAI,SAAS,MAAM,KAAK,IAAI;AAAA,IACzF;AAEA,YAAQ,aAAa;AAAA,MACjB,KAAK;AACD,YAAI,WAAW;AACX,gBAAM,YAAY,iBAAiB,yDAAyD;AAChG,4BAAoB,EAAE,GAAG,aAAa,UAAU,gBAAgB,oBAAoB,OAAO;AAC3F;AAAA,MACJ,KAAK;AACD,YAAI,WAAW;AACX,gBAAM,YAAY,iBAAiB,wDAAwD;AAC/F,4BAAoB,EAAE,GAAG,aAAa,UAAU,gBAAgB,mBAAmB,OAAO;AAC1F;AAAA,MACJ,KAAK;AACD,YAAI,WAAW;AACX,gBAAM,YAAY,iBAAiB,+CAA+C;AACtF,4BAAoB,EAAE,GAAG,aAAa,UAAU,gBAAgB,UAAU,QAAQ,WAAW,EAAE;AAC/F;AAAA,MACJ,KAAK;AAAA;AAAA,MACL,KAAK;AAAA;AAAA,MACL;AAEI,4BAAoB,EAAE,GAAG,aAAa,UAAU,eAAe;AAC/D;AAAA,IACR;AAGA,UAAM,KAAK,YAAY,mBAAmB;AAE1C,UAAM,KAAK,QAAQ,IAAI;AAAA,MACnB,YAAY,OAAO,eAAe,WAAW,aAAa,KAAK,aAAa;AAAA,IAChF,CAAC;AAED,UAAM,EAAE,OAAO,IAAI,MAAM,KAAK,gBAAgB,eAAe,iBAAiB;AAE9E,WAAO,KAAK,oBAAoB,MAAM;AAAA,EAC1C;AAAA,EAEA,gBAAgB,MAAoD;AAChE,UAAM,EAAE,iBAAiB,MAAM,IAAI,QAAQ,CAAC;AAC5C,UAAM,cAAc,IAAI,MAAkB;AAE1C,eAAW,QAAQ,KAAK,gBAAgB,WAAW,GAAG;AAClD,YAAM,UAAU,KAAK,oBAAoB,IAAI;AAC7C,UAAI,CAAC,kBAAkB,QAAQ,WAAW;AACtC,oBAAY,KAAK,OAAO;AAAA,MAC5B;AAAA,IACJ;AAEA,eAAW,YAAY,KAAK,iBAAiB,SAAS,GAAG;AACrD,UAAI,CAAC,kBAAkB,SAAS,WAAW;AACvC,oBAAY,KAAK,QAAQ;AAAA,MAC7B;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,eAAe,MAA2D;AAC5E,UAAM,EAAE,QAAQ,IAAI;AACpB,UAAM,SAAS,OAAO,OAAO;AAC7B,UAAM,UAAU,KAAK,YAAY,OAAO;AAExC,QAAI,CAAC,QAAQ,QAAQ,MAAM,GAAG;AAC1B,YAAM,YAAY,cAAc,OAAO;AAAA,IAC3C;AAGA,QAAI,YAAY,KAAK,iBAAiB;AAClC,aAAO,KAAK,gBAAgB,eAAe,QAAQ,KAAK,oBAAoB,IAAI,MAAM,CAAC;AAAA,IAC3F;AACA,WAAO,QAAQ,eAAe,MAAM;AAAA,EACxC;AAAA,EAEA,MAAM,0BACF,MAC4C;AAC5C,UAAM,EAAE,SAAS,cAAc,OAAO,IAAI;AAC1C,UAAM,SAAS,MAAM,KAAK,YAAY,OAAO,EAAE,mBAAmB,OAAO,OAAO,GAAG,YAAY;AAE/F,QAAI,QAAQ;AACR,aAAO;AAAA,IACX;AACA,WAAO,OAAO,IAAI,QAAO,GAAG,SAAS,GAAG,IAAI,GAAG,MAAM,GAAG,EAAE,CAAC,IAAI,EAAG;AAAA,EACtE;AAAA,EAEA,MAAM,qBAAqB,MAAuE;AAC9F,UAAM,EAAE,SAAS,QAAQ,gBAAgB,kBAAkB,MAAM,IAAI;AAGrE,UAAM,iBAAiB,MAAM,QAAQ,cAAc,IAAI,iBAAiB,CAAC,cAAc;AAEvF,UAAM,SAAS,MAAM,KAAK,YAAY,MAAM,EAAE;AAAA,MAC1C,OAAO,MAAM;AAAA,MACb;AAAA,MACA;AAAA,IACJ;AAEA,QAAI,OAAO,KAAK,MAAM,EAAE,WAAW,GAAG;AAClC,YAAM,YAAY,cAAc,8CAA8C;AAAA,IAClF;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,sBAAsB,MAAyE;AACjG,UAAM,EAAE,SAAS,QAAQ,gBAAgB,MAAM,IAAI;AACnD,UAAM,EAAE,YAAY,WAAW,YAAY,IAAI,mBAAmB,cAAc;AAGhF,QAAI,eAAe,UAAa,cAAc,UAAa,gBAAgB,QAAW;AAClF,YAAM,YAAY,iBAAiB,8DAA8D;AAAA,IACrG;AAEA,UAAM,EAAE,OAAO,IAAI,MAAM,KAAK,YAAY,MAAM,EAAE,qBAAqB;AAAA,MACnE,QAAQ,OAAO,MAAM;AAAA,MACrB;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IACJ,CAAC;AACD,WAAO;AAAA,MACH;AAAA,QACI,MAAM,EAAE,YAAY,YAAY,WAAW,WAAW,aAAa,YAAY;AAAA,QAC/E,QAAQ,UAAU;AAAA,MACtB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,sBAAsB,MAA2E;AACnG,UAAM,EAAE,eAAe,IAAI;AAG3B,UAAM,aAAa,MAAM,KAAK,YAAY,cAAc;AAGxD,UAAM,gBAA2C,CAAC;AAGlD,eAAW,CAAC,aAAa,UAAU,KAAK,OAAO,QAAQ,SAAS,GAAG;AAC/D,oBAAc,WAAW,IAAI;AAAA,IACjC;AAGA,eAAW,CAAC,UAAU,UAAU,KAAK,YAAY;AAC7C,oBAAc,QAAQ,IAAI,WAAW;AAAA,IACzC;AAGA,QAAI,CAAC,kBAAkB,CAAC,eAAe,QAAQ;AAC3C,aAAO;AAAA,IACX;AAGA,UAAM,SAAoC,CAAC;AAC3C,eAAW,YAAY,gBAAgB;AACnC,YAAM,aAAa,cAAc,QAAQ;AACzC,UAAI,YAAY;AACZ,eAAO,QAAQ,IAAI;AAAA,MACvB;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,qBAAqB,MAAuE;AAC9F,UAAM;AAAA,MACF,SAAS;AAAA,MACT,aAAa;AAAA,MACb,YAAY;AAAA,MACZ,cAAc;AAAA,MACd;AAAA,MACA,0BAA0B;AAAA,IAC9B,IAAI;AAEJ,UAAM,SAAS,MAAM,KAAK,YAAY,MAAM,EAAE,aAAa;AAAA,MACvD,QAAQ,OAAO,MAAM;AAAA,MACrB,YAAY,eAAe,UAAU;AAAA,MACrC,WAAW,UAAU,SAAS;AAAA,MAC9B,aAAa,SAAS,WAAW;AAAA,MACjC,MAAM;AAAA,MACN,2BACI,OAAO,8BAA8B,WAAW,OAAO,yBAAyB,IAAI;AAAA,IAC5F,CAAC;AAGD,QAAI,uBAAuB,aAAa,MAAM,GAAG;AAC7C,aAAO;AAAA,IACX;AACA,UAAM,YAAY,KAAK,+BAA+B,UAAU,SAAS,GAAG,aAAa,MAAM;AAC/F,QAAI,cAAc,QAAW;AACzB,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,iCACF,MACmD;AACnD,UAAM,EAAE,SAAS,aAAa,cAAc,QAAQ,IAAI;AACxD,WAAO,KAAK,gBAAgB,0BAA0B;AAAA,MAClD,QAAQ,OAAO,OAAO;AAAA,MACtB,YAAY,eAAe,WAAW;AAAA,MACtC,aAAa;AAAA,MACb;AAAA,IACJ,CAAC;AAAA,EACL;AAAA,EAEA,MAAM,qBAAqB,MAAuE;AAC9F,UAAM,EAAE,QAAQ,IAAI;AACpB,UAAM,SAAS,OAAO,OAAO;AAG7B,QAAI,uBAAuB,aAAa,MAAM,GAAG;AAC7C,YAAM,WAAW,KAAK,iBAAiB,QAAQ,MAAM;AACrD,UAAI,aAAa,QAAW;AACxB,cAAM,YAAY,cAAc,MAAM;AAAA,MAC1C;AACA,aAAO,MAAM,uCAAuC,aAAa,MAAM,CAAC,EAAE;AAE1E,eAAS,kBAAiB,oBAAI,KAAK,GAAE,YAAY,EAAE,QAAQ,KAAK,KAAK;AACrE,WAAK,gBAAgB,gBAAgB,QAAQ;AAC7C,aAAO;AAAA,IACX;AAEA,UAAM,KAAK,gBAAgB,cAAc,MAAM;AAG/C,SAAK,oBAAoB,IAAI,QAAQ,oBAAI,KAAK,CAAC;AAC/C,SAAK,gBAAgB,gBAAgB,KAAK,oBAAoB,MAAM,CAAC;AAErE,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,gBAAgB,MAA6D;AAC/E,UAAM,EAAE,SAAS,WAAW,EAAE,IAAI;AAClC,WAAO,MAAM,KAAK,YAAY,OAAO,EAAE,SAAS,OAAO,OAAO,GAAG,QAAQ;AAAA,EAC7E;AAAA,EAEA,MAAM,kBAAkB,MAAiE;AACrF,UAAM,EAAE,QAAQ,IAAI;AACpB,UAAM,KAAK,YAAY,OAAO,EAAE,WAAW,OAAO,OAAO,CAAC;AAC1D,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,0BAA0B,MAAmF;AAC/G,UAAM,EAAE,MAAM,YAAY,IAAI;AAC9B,UAAM,KAAK,QAAQ,IAAI,EAAE,UAAU,MAAM,iBAAiB,YAAY,CAAC;AAEvE,QAAI;AACA,YAAM,KAAK,4BAA4B;AAAA,IAC3C,SAAS,OAAO;AACZ,aAAO,KAAK,0CAA0C,KAAK;AAAA,IAC/D;AACA,WAAO,CAAC;AAAA,EACZ;AAAA,EAEA,MAAM,wBAAwB,MAA+E;AACzG,UAAM,EAAE,QAAQ,IAAI;AACpB,QAAI,CAAC,iBAAiB,KAAK,OAAO,KAAK,QAAQ,SAAS,MAAM,GAAG;AAC7D,YAAM,YAAY;AAAA,QACd;AAAA,MACJ;AAAA,IACJ;AACA,QAAI;AACA,YAAM,QAAQ,OAAO;AAAA,IACzB,SAAS,OAAO;AACZ,kBAAY,OAAO,KAAK;AACxB,YAAM,YAAY;AAAA,QACd,mEAAmE,WAAW,aAAa,KAAK,CAAC;AAAA,MACrG;AAAA,IACJ;AACA,UAAM,KAAK,QAAQ,IAAI,EAAE,eAAe,QAAQ,CAAC;AAEjD,QAAI;AACA,YAAM,KAAK,4BAA4B;AAAA,IAC3C,SAAS,OAAO;AACZ,aAAO,KAAK,0CAA0C,KAAK;AAAA,IAC/D;AACA,WAAO,CAAC;AAAA,EACZ;AAAA,EAEA,MAAM,+BAA+E;AACjF,UAAM,KAAK,QAAQ,sBAAsB;AACzC,QAAI;AACA,YAAM,KAAK,4BAA4B;AAAA,IAC3C,SAAS,OAAO;AACZ,aAAO,KAAK,0CAA0C,KAAK;AAAA,IAC/D;AACA,WAAO,CAAC;AAAA,EACZ;AAAA,EAEA,MAAM,6BAA2E;AAC7E,UAAM,KAAK,QAAQ,oBAAoB;AACvC,QAAI;AACA,YAAM,KAAK,4BAA4B;AAAA,IAC3C,SAAS,OAAO;AACZ,aAAO,KAAK,0CAA0C,KAAK;AAAA,IAC/D;AACA,WAAO,CAAC;AAAA,EACZ;AAAA,EAEA,MAAM,+BACF,MACgD;AAChD,UAAM;AAAA,MAAE;AAAA,MAAS;AAAA;AAAA,IAA+C,IAAI;AACpE,UAAM,SAAS,OAAO,OAAO;AAC7B,UAAM,EAAE,YAAY,OAAO,IAAI,MAAM,KAAK,gBAAgB,wBAAwB;AAAA,MAC9E;AAAA,MACA;AAAA,IACJ,CAAC;AACD,UAAM,mBAAmB,mBAAmB,OAAO,MAAM;AACzD,WAAO,EAAE,gBAAgB,iBAAiB,CAAC,EAAE,UAAU,mBAAmB,YAAY,eAAe,OAAO;AAAA,EAChH;AAAA,EAEA,MAAM,mCACF,OACoD;AACpD,UAAM,SAAS,MAAM,KAAK,gBAAgB,gBAAgB,CAAC,CAAC;AAC5D,WAAO,OAAO;AAAA,MACV,CAAC;AAAA,QACG;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA,QAEA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA;AAAA;AAAA;AAAA,QAIA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,MACJ,OAAO;AAAA,QACH,eAAe;AAAA,QACf,WAAW;AAAA;AAAA,QACX;AAAA,QACA,oBAAoB;AAAA,QACpB,WAAW;AAAA,QACX,YAAY;AAAA,QACZ,oBAAoB;AAAA,QACpB,aAAa;AAAA,QACb,aAAa;AAAA,QACb,qBAAqB;AAAA,QACrB,cAAc;AAAA,QACd,yBAAyB;AAAA,QACzB,2BAA2B;AAAA,QAC3B,cAAc;AAAA,QACd;AAAA,QACA,aAAa;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,wBAAwB,MAA+E;AACzG,UAAM,EAAE,QAAQ,IAAI;AACpB,UAAM,SAAS,OAAO,OAAO;AAC7B,UAAM,UAAU,MAAM,KAAK,gBAAgB,WAAW,MAAM;AAC5D,WAAO,QAAQ,IAAI,CAAC,EAAE,UAAU,UAAU,aAAa,MAAM,OAAO;AAAA,MAChE,WAAW;AAAA,MACX,WAAW;AAAA,MACX,cAAc;AAAA,MACd,cAAc;AAAA,MACd,aAAa,UAAU,QAAQ;AAAA,IACnC,EAAE;AAAA,EACN;AAAA,EAEA,MAAM,0BAA0B,MAAmF;AAC/G,UAAM,EAAE,SAAS,aAAa,IAAI;AAClC,UAAM,KAAK,gBAAgB,aAAa,OAAO,OAAO,GAAG,YAAY,YAAY,CAAC;AAClF,WAAO,CAAC;AAAA,EACZ;AAAA,EAEA,MAAM,mBAAmB,MAAqE;AAC1F,UAAM,EAAE,SAAS,MAAM,IAAI;AAC3B,WAAO,MAAM,KAAK,gBAAgB,YAAY,OAAO,OAAO,GAAG,KAAK;AAAA,EACxE;AAAA,EAEA,MAAM,sBAAsB,MAA2E;AACnG,UAAM,EAAE,SAAS,UAAU,SAAS,IAAI;AACxC,WAAO,MAAM,KAAK,gBAAgB,eAAe,OAAO,OAAO,GAAG,eAAe,QAAQ,GAAG,QAAQ;AAAA,EACxG;AAAA,EAEA,MAAM,sBAAsB,MAA2E;AACnG,UAAM,EAAE,KAAK,IAAI;AAGjB,SAAK,iBAAiB,gBAAgB,IAAI;AAC1C,WAAO;AAAA,EACX;AAAA,EAEA,MAAM,uBAAuB,MAA6E;AACtG,UAAM,EAAE,QAAQ,IAAI;AACpB,WAAO,MAAM,KAAK,gBAAgB,gBAAgB,OAAO,OAAO,CAAC;AAAA,EACrE;AAAA,EAEA,MAAM,kBAAkB,MAAiE;AACrF,UAAM,EAAE,SAAS,iBAAiB,IAAI;AACtC,UAAM,gBAAgB,OAAO,qBAAqB,WAAW,SAAS,kBAAkB,EAAE,IAAI;AAC9F,WAAO,MAAM,KAAK,gBAAgB,WAAW,OAAO,OAAO,GAAG,aAAa;AAAA,EAC/E;AAAA,EAEA,oBAAoB,QAA4B;AAC5C,UAAM,oBAAoB,KAAK,oBAAoB,IAAI,MAAM;AAC7D,WAAO,KAAK,gBAAgB,eAAe,QAAQ,iBAAiB;AAAA,EACxE;AAAA,EAEA,+BACI,WACA,aACA,OACA,aACF;AACE,QAAI,CAAC,aAAa;AACd,oBAAc,WAAW,SAAS;AAAA,IACtC;AAEA,QAAI,gBAAgB,UAAa,YAAY,SAAS,YAAY,YAAY,CAAC,MAAM,QAAW;AAC5F,aAAO;AAAA,QACH,WAAW,SAAS,0BAA0B,WAAW;AAAA,QACzD;AAAA,MACJ;AACA,aAAO,CAAC;AAAA,IACZ;AAEA,WAAO;AAAA,MACH;AAAA,MACA,YAAY,SAAS,YAAY,YAAY,CAAC,EAAG;AAAA,MACjD,YAAY;AAAA,IAChB;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,OAAiC;AAC/C,YAAQ,OAAO;AAAA,MACX,KAAK,SAAS;AACV,eAAO;AAAA,MACX,KAAK,SAAS;AACV,eAAO;AAAA,MACX,KAAK,SAAS;AACV,eAAO;AAAA,MACX,KAAK,SAAS;AACV,eAAO;AAAA,MACX,KAAK,SAAS;AACV,eAAO;AAAA,MACX;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,kBAAkB,OAAiC;AAC/C,YAAQ,OAAO;AAAA,MACX,KAAK;AACD,eAAO,SAAS;AAAA,MACpB,KAAK;AACD,eAAO,SAAS;AAAA,MACpB,KAAK;AACD,eAAO,SAAS;AAAA,MACpB,KAAK;AACD,eAAO,SAAS;AAAA,MACpB,KAAK;AACD,eAAO,SAAS;AAAA,MACpB;AACI,eAAO,SAAS;AAAA,IACxB;AAAA,EACJ;AAAA,EAEA,qBAAiD;AAE7C,UAAM,eACF,OAAO,OAAO,UAAU,WAAW,KAAK,kBAAkB,OAAO,KAAuB,IAAI,OAAO;AACvG,UAAM,eAAe,KAAK,kBAAkB,YAAY;AAGxD,QAAI,YAAmC;AACvC,QAAI;AACA,YAAM,kBAAkB,OAAO,aAAa;AAC5C,YAAM,iBACF,OAAO,gBAAgB,UAAU,WAC3B,KAAK,kBAAkB,gBAAgB,KAAuB,IAC9D,gBAAgB;AAC1B,kBAAY,KAAK,kBAAkB,cAAc;AAAA,IACrD,QAAQ;AAAA,IAER;AAEA,WAAO;AAAA,MACH,kBAAkB;AAAA,MAClB,eAAe;AAAA,IACnB;AAAA,EACJ;AAAA,EAEA,mBAAmB,MAA0D;AACzE,UAAM,EAAE,kBAAkB,cAAc,IAAI;AAG5C,QAAI,qBAAqB,QAAW;AAChC,aAAO,QAAQ,KAAK,kBAAkB,gBAAgB;AACtD,aAAO,KAAK,6BAA6B,gBAAgB,EAAE;AAAA,IAC/D;AAGA,QAAI,kBAAkB,QAAW;AAC7B,UAAI;AACA,cAAM,kBAAkB,OAAO,aAAa;AAC5C,wBAAgB,QAAQ,KAAK,kBAAkB,aAAa;AAC5D,eAAO,KAAK,0BAA0B,aAAa,EAAE;AAAA,MACzD,QAAQ;AAAA,MAER;AAAA,IACJ;AAGA,WAAO,KAAK,mBAAmB;AAAA,EACnC;AACJ;",
5
5
  "names": []
6
6
  }
package/package.json CHANGED
@@ -1,17 +1,23 @@
1
1
  {
2
2
  "name": "@matter-server/ws-controller",
3
- "version": "0.7.0-alpha.0-20260512-b404bea",
4
- "type": "module",
3
+ "version": "0.7.0",
5
4
  "description": "matter.js based Matter controller library",
5
+ "homepage": "https://github.com/matter-js/matterjs-server",
6
6
  "bugs": {
7
7
  "url": "https://github.com/matter-js/matterjs-server/issues"
8
8
  },
9
- "homepage": "https://github.com/matter-js/matterjs-server",
9
+ "author": "Apollon77",
10
10
  "repository": {
11
11
  "type": "git",
12
12
  "url": "git+https://github.com/matter-js/matterjs-server.git"
13
13
  },
14
- "author": "Apollon77",
14
+ "files": [
15
+ "dist/**/*",
16
+ "src/**/*",
17
+ "LICENSE",
18
+ "README.md"
19
+ ],
20
+ "type": "module",
15
21
  "main": "dist/esm/index.js",
16
22
  "exports": {
17
23
  ".": {
@@ -21,35 +27,30 @@
21
27
  }
22
28
  }
23
29
  },
30
+ "publishConfig": {
31
+ "access": "public"
32
+ },
24
33
  "scripts": {
25
34
  "clean": "nacho-build clean",
26
35
  "build": "nacho-build",
27
36
  "build-clean": "nacho-build --clean",
28
37
  "test": "matter-test --force-exit"
29
38
  },
30
- "engines": {
31
- "node": ">=20.19.0 <22.0.0 || >=22.13.0"
32
- },
33
- "optionalDependencies": {
34
- "@matter/nodejs-ble": "0.17.0-alpha.0-20260512-576f5796c"
35
- },
36
39
  "dependencies": {
37
- "@matter/main": "0.17.0-alpha.0-20260512-576f5796c",
38
- "@matter-server/ws-client": "0.7.0-alpha.0-20260512-b404bea",
39
- "@project-chip/matter.js": "0.17.0-alpha.0-20260512-576f5796c",
40
+ "@matter-server/ws-client": "0.7.0",
41
+ "@matter/dcl-data": ">=2026.5.1-5.1",
42
+ "@matter/main": "0.17.0-alpha.0-20260518-7f13c7285",
43
+ "@project-chip/matter.js": "0.17.0-alpha.0-20260518-7f13c7285",
40
44
  "ws": "^8.20.0"
41
45
  },
42
46
  "devDependencies": {
43
47
  "@types/node": "^25.6.0",
44
48
  "@types/ws": "^8.18.1"
45
49
  },
46
- "files": [
47
- "dist/**/*",
48
- "src/**/*",
49
- "LICENSE",
50
- "README.md"
51
- ],
52
- "publishConfig": {
53
- "access": "public"
50
+ "optionalDependencies": {
51
+ "@matter/nodejs-ble": "0.17.0-alpha.0-20260518-7f13c7285"
52
+ },
53
+ "engines": {
54
+ "node": ">=20.19.0 <22.0.0 || >=22.13.0"
54
55
  }
55
56
  }
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
+ import type { WebRtcCallbackData } from "@matter-server/ws-client";
7
8
  import {
8
9
  Abort,
9
10
  AsyncObservable,
@@ -36,6 +37,8 @@ import {
36
37
  GeneralCommissioning,
37
38
  OperationalCredentials,
38
39
  } from "@matter/main/clusters";
40
+ import { WebRtcTransportDefinitions } from "@matter/main/clusters/web-rtc-transport-definitions";
41
+ import { WebRtcTransportProvider } from "@matter/main/clusters/web-rtc-transport-provider";
39
42
  import {
40
43
  DecodedAttributeReportValue,
41
44
  DecodedEventReportValue,
@@ -59,6 +62,8 @@ import {
59
62
  StatusResponseError,
60
63
  VendorId,
61
64
  } from "@matter/main/types";
65
+ import { Endpoint } from "@matter/node";
66
+ import { CameraControllerDevice } from "@matter/node/devices/camera-controller";
62
67
  import { CommissioningController, NodeCommissioningOptions } from "@project-chip/matter.js";
63
68
  import { NodeStates } from "@project-chip/matter.js/device";
64
69
  import { ClusterMap, ClusterMapEntry, GlobalAttributes } from "../model/ModelMapper.js";
@@ -96,12 +101,14 @@ import {
96
101
  } from "../types/WebSocketMessageTypes.js";
97
102
  import { formatNodeId } from "../util/formatNodeId.js";
98
103
  import { pingIp } from "../util/network.js";
104
+ import { WebRtcTransportRequestorServer } from "./behaviors/WebRtcTransportRequestorServer.js";
99
105
  import { CustomClusterPoller } from "./CustomClusterPoller.js";
100
106
  import { Nodes } from "./Nodes.js";
107
+ import { attachWebRtcCallbackBridge } from "./WebRtcCallbackBridge.js";
101
108
 
102
109
  const logger = Logger.get("ControllerCommandHandler");
103
110
 
104
- /** After this duration in Reconnecting state, declare the node unavailable */
111
+ /** Grace period after leaving Connected before a node is declared unavailable. */
105
112
  const RECONNECT_TIMEOUT = Minutes(3);
106
113
 
107
114
  /**
@@ -171,6 +178,7 @@ export class ControllerCommandHandler {
171
178
  nodeDecommissioned: new Observable<[nodeId: NodeId]>(),
172
179
  nodeEndpointAdded: new Observable<[nodeId: NodeId, endpointId: EndpointNumber]>(),
173
180
  nodeEndpointRemoved: new Observable<[nodeId: NodeId, endpointId: EndpointNumber]>(),
181
+ webRtcCallback: new Observable<[WebRtcCallbackData]>(),
174
182
  };
175
183
  #peers?: PeerSet;
176
184
 
@@ -238,6 +246,7 @@ export class ControllerCommandHandler {
238
246
  }
239
247
 
240
248
  await this.events.started.emit();
249
+ await this.#setupWebRtcCallbackBridge();
241
250
  }
242
251
 
243
252
  /**
@@ -282,6 +291,88 @@ export class ControllerCommandHandler {
282
291
  }
283
292
  }
284
293
 
294
+ async #setupWebRtcCallbackBridge() {
295
+ try {
296
+ await this.#cameraControllerEndpoint().act(agent => {
297
+ attachWebRtcCallbackBridge(agent.get(WebRtcTransportRequestorServer).events, data =>
298
+ this.events.webRtcCallback.emit(data),
299
+ );
300
+ });
301
+ logger.info("WebRTC callback bridge wired");
302
+ } catch (error) {
303
+ logger.warn("Failed to setup WebRTC callback bridge:", error);
304
+ }
305
+ }
306
+
307
+ #cameraControllerEndpoint(): Endpoint<typeof CameraControllerDevice> {
308
+ return this.#controller.node.endpoints.for("camera-controller") as Endpoint<typeof CameraControllerDevice>;
309
+ }
310
+
311
+ /** `originatingEndpointId` is server-injected; any client-supplied value in `payload` is overwritten. */
312
+ async sendWebRtcProviderCommand(args: {
313
+ nodeId: NodeId;
314
+ endpointId: EndpointNumber;
315
+ commandName: "ProvideOffer" | "SolicitOffer";
316
+ payload: Record<string, unknown>;
317
+ }): Promise<WebRtcTransportProvider.ProvideOfferResponse | WebRtcTransportProvider.SolicitOfferResponse> {
318
+ const { nodeId, endpointId, commandName, payload } = args;
319
+
320
+ if (commandName !== "ProvideOffer" && commandName !== "SolicitOffer") {
321
+ throw ServerError.invalidArguments(
322
+ `Unsupported WebRTC provider command "${commandName}"; expected ProvideOffer or SolicitOffer`,
323
+ );
324
+ }
325
+
326
+ const requestorEndpoint = this.#cameraControllerEndpoint();
327
+ const originatingEndpointId = EndpointNumber(requestorEndpoint.number);
328
+ const fabricIndex = this.#controller.fabric.fabricIndex;
329
+
330
+ const node = this.#nodes.get(nodeId);
331
+
332
+ const fields: Record<string, unknown> = {
333
+ ...payload,
334
+ originatingEndpointId,
335
+ };
336
+ const command = commandName === "ProvideOffer" ? "provideOffer" : "solicitOffer";
337
+
338
+ const response = (await this.#invokeCommand(node.node, {
339
+ endpoint: endpointId,
340
+ cluster: WebRtcTransportProvider,
341
+ command,
342
+ fields,
343
+ })) as WebRtcTransportProvider.ProvideOfferResponse | WebRtcTransportProvider.SolicitOfferResponse | undefined;
344
+
345
+ if (response === undefined || typeof response.webRtcSessionId !== "number") {
346
+ throw ServerError.sdkStackError(
347
+ `${commandName} did not return a WebRTCSessionID for node ${this.formatNode(nodeId)}`,
348
+ );
349
+ }
350
+
351
+ const streamUsage = payload.streamUsage as WebRtcTransportDefinitions.WebRtcSession["streamUsage"];
352
+ const metadataEnabled = (payload.metadataEnabled as boolean | undefined) ?? false;
353
+ const videoStreams = response.videoStreamId != null ? [response.videoStreamId] : new Array<number>();
354
+ const audioStreams = response.audioStreamId != null ? [response.audioStreamId] : new Array<number>();
355
+ const session: WebRtcTransportDefinitions.WebRtcSession = {
356
+ id: response.webRtcSessionId,
357
+ peerNodeId: nodeId,
358
+ peerEndpointId: endpointId,
359
+ streamUsage,
360
+ metadataEnabled,
361
+ videoStreams,
362
+ audioStreams,
363
+ fabricIndex,
364
+ };
365
+
366
+ logger.info(
367
+ `upserting WebRTC session id=${session.id} peerNodeId=${nodeId} peerEndpointId=${endpointId} fabricIndex=${fabricIndex} streamUsage=${streamUsage} originatingEndpointId=${originatingEndpointId}`,
368
+ );
369
+ await requestorEndpoint.act(agent => {
370
+ agent.get(WebRtcTransportRequestorServer).upsertSession(session);
371
+ });
372
+
373
+ return response;
374
+ }
375
+
285
376
  async close() {
286
377
  for (const timer of this.#reconnectTimers.values()) {
287
378
  timer.stop();
@@ -298,16 +389,12 @@ export class ControllerCommandHandler {
298
389
  const node = await this.#controller.getNode(nodeId);
299
390
  const attributeCache = this.#nodes.attributeCache;
300
391
 
301
- // Wire all Events to the Event emitters
302
- // Track if a BasicInformation or BridgedDeviceBasicInformation attribute changed during
303
- // a subscription batch. When the batch ends (connectionAlive), emit a full node_updated.
392
+ // Defer the full node_updated until the subscription batch ends (connectionAlive)
393
+ // so consumers see one update per batch rather than one per attribute.
304
394
  let basicInfoChangedInBatch = false;
305
395
  node.events.attributeChanged.on(data => {
306
- // Update the attribute cache with the new value in WebSocket format
307
396
  attributeCache.updateAttribute(nodeId, data);
308
- // Then emit the event for listeners
309
397
  this.events.attributeChanged.emit(nodeId, data);
310
- // Mark for full node_updated if any BasicInformation cluster attribute changed
311
398
  if (FULL_UPDATE_CLUSTER_IDS.has(data.path.clusterId)) {
312
399
  basicInfoChangedInBatch = true;
313
400
  }
@@ -321,7 +408,6 @@ export class ControllerCommandHandler {
321
408
  });
322
409
  node.events.eventTriggered.on(data => this.events.eventChanged.emit(nodeId, data));
323
410
  node.events.stateChanged.on(state => {
324
- // Only refresh cache on Connected state
325
411
  if (state === NodeStates.Connected) {
326
412
  attributeCache.update(node);
327
413
  const attributes = attributeCache.get(nodeId);
@@ -330,35 +416,35 @@ export class ControllerCommandHandler {
330
416
  }
331
417
  }
332
418
 
333
- // Manage reconnect timer
334
- if (state === NodeStates.Reconnecting) {
335
- if (!this.#reconnectTimers.has(nodeId)) {
336
- const timer = Time.getTimer(`reconnect-timeout-${nodeId}`, RECONNECT_TIMEOUT, () => {
337
- this.#reconnectTimers.delete(nodeId);
338
- if (this.#nodes.forceUnavailable(nodeId)) {
339
- logger.info(
340
- `Node ${this.formatNode(nodeId)} still reconnecting after timeout, marking unavailable`,
341
- );
342
- this.events.nodeAvailabilityChanged.emit(nodeId, false);
343
- }
344
- });
345
- timer.utility = true;
346
- timer.start();
347
- this.#reconnectTimers.set(nodeId, timer);
348
- }
349
- } else {
350
- // Any non-Reconnecting state clears the timer
419
+ // Arm on Connected->Reconnecting only; keep running across later
420
+ // non-Connected states; cancel on return to Connected.
421
+ if (state === NodeStates.Connected) {
351
422
  this.#reconnectTimers.get(nodeId)?.stop();
352
423
  this.#reconnectTimers.delete(nodeId);
424
+ } else if (
425
+ state === NodeStates.Reconnecting &&
426
+ !this.#reconnectTimers.has(nodeId) &&
427
+ this.#nodes.isAvailable(nodeId)
428
+ ) {
429
+ const timer = Time.getTimer(`reconnect-timeout-${nodeId}`, RECONNECT_TIMEOUT, () => {
430
+ this.#reconnectTimers.delete(nodeId);
431
+ if (this.#nodes.forceUnavailable(nodeId)) {
432
+ logger.info(
433
+ `Node ${this.formatNode(nodeId)} offline grace period expired, marking unavailable`,
434
+ );
435
+ this.events.nodeAvailabilityChanged.emit(nodeId, false);
436
+ }
437
+ });
438
+ timer.utility = true;
439
+ timer.start();
440
+ this.#reconnectTimers.set(nodeId, timer);
353
441
  }
354
442
 
355
- // Process state change and check if availability changed
356
- const result = this.#nodes.processStateChange(nodeId, state);
443
+ const debouncePending = this.#reconnectTimers.has(nodeId);
444
+ const result = this.#nodes.processStateChange(nodeId, state, debouncePending);
357
445
 
358
- // Emit state changed event
359
446
  this.events.nodeStateChanged.emit(nodeId, state);
360
447
 
361
- // Emit availability changed if it actually changed
362
448
  if (result.availabilityChanged) {
363
449
  logger.info(
364
450
  `Node ${this.formatNode(nodeId)} availability changed to ${result.available} (state: ${NodeStates[state]})`,
@@ -367,13 +453,10 @@ export class ControllerCommandHandler {
367
453
  }
368
454
  });
369
455
  node.events.structureChanged.on(() => {
370
- // Structure changed means endpoints may have been added/removed, refresh cache
371
456
  if (node.isConnected) {
372
457
  attributeCache.update(node);
373
458
  }
374
459
  basicInfoChangedInBatch = false;
375
- // Emit node_updated first so consumers see the new endpoint in node.endpoints,
376
- // then drain any endpoint_added events queued since the previous structure change.
377
460
  this.events.nodeStructureChanged.emit(nodeId);
378
461
  for (const endpointId of this.#nodes.drainPendingEndpointAdds(nodeId)) {
379
462
  this.events.nodeEndpointAdded.emit(nodeId, endpointId);
@@ -386,15 +469,12 @@ export class ControllerCommandHandler {
386
469
  node.events.nodeEndpointAdded.on(endpointId => this.#nodes.queueEndpointAdded(nodeId, endpointId));
387
470
  node.events.nodeEndpointRemoved.on(endpointId => this.events.nodeEndpointRemoved.emit(nodeId, endpointId));
388
471
 
389
- // Store the node for direct access
390
472
  this.#nodes.set(nodeId, node);
391
473
 
392
474
  this.#nodes.seedState(nodeId, node.connectionState);
393
475
 
394
- // Initialize attribute cache if node is already initialized
395
476
  if (node.initialized) {
396
477
  attributeCache.add(node);
397
- // Register for custom cluster polling (e.g., Eve energy)
398
478
  const attributes = attributeCache.get(nodeId);
399
479
  if (attributes) {
400
480
  this.#customClusterPoller.registerNode(this.#peerOf(nodeId), attributes);
@@ -674,12 +754,11 @@ export class ControllerCommandHandler {
674
754
  request: Invoke.ConcreteCommandRequest<C>,
675
755
  options: Omit<Invoke.Definition, "commands"> = {},
676
756
  ) {
677
- for await (const data of node.interaction.invoke(
678
- Invoke({
679
- commands: [request],
680
- ...options,
681
- }),
682
- )) {
757
+ const invoke = Invoke({
758
+ commands: [request],
759
+ ...options,
760
+ });
761
+ for await (const data of node.interaction.invoke(invoke)) {
683
762
  for (const entry of data) {
684
763
  // We send only one command, so we only get one response back
685
764
  switch (entry.kind) {
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
+ import { cdSigners, paaRoots, vendors } from "@matter/dcl-data/node";
7
8
  import {
8
9
  Bytes,
9
10
  CommissioningClient,
@@ -15,14 +16,18 @@ import {
15
16
  Logger,
16
17
  MatterAggregateError,
17
18
  NodeId,
19
+ SharedEnvironmentServices,
18
20
  SoftwareUpdateManager,
19
21
  Timestamp,
20
22
  } from "@matter/main";
21
- import { VendorInfo, DclCertificateService } from "@matter/main/protocol";
23
+ import { VendorInfo, DclCertificateService, DclVendorInfoService } from "@matter/main/protocol";
22
24
  import { VendorId } from "@matter/main/types";
25
+ import { Endpoint } from "@matter/node";
26
+ import { CameraControllerDevice } from "@matter/node/devices/camera-controller";
23
27
  import { CommissioningController } from "@project-chip/matter.js";
24
28
  import { Readable } from "node:stream";
25
29
  import { ConfigStorage } from "../server/ConfigStorage.js";
30
+ import { WebRtcTransportRequestorServer } from "./behaviors/WebRtcTransportRequestorServer.js";
26
31
  import { BorderRouterDiscovery } from "./BorderRouterDiscovery.js";
27
32
  import { ControllerCommandHandler } from "./ControllerCommandHandler.js";
28
33
  import { LegacyDataInjector, LegacyServerData } from "./LegacyDataInjector.js";
@@ -62,6 +67,8 @@ export async function computeCompressedNodeId(
62
67
  export interface MatterControllerOptions {
63
68
  enableTestNetDcl?: boolean;
64
69
  disableOtaProvider?: boolean;
70
+ /** Disable bundled offline DCL seed data (PAA roots, CD signers, vendors). When true, only network DCL is used. */
71
+ disableDclSeed?: boolean;
65
72
  /** Server ID for storage. Default is "server", but may be "server-<hex(fabricId)>-<hex(vendorId)>" for multi-fabric support */
66
73
  serverId?: string;
67
74
  /** Server version string (e.g., "0.2.10" or "0.2.10-alpha.0"). Used for BasicInformation cluster. */
@@ -95,7 +102,10 @@ export class MatterController {
95
102
  #legacyCommissionedDates?: Map<string, Timestamp>;
96
103
  #enableTestNetDcl = false;
97
104
  #disableOtaProvider = true;
105
+ #disableDclSeed = false;
98
106
  readonly #borderRouterDiscovery: BorderRouterDiscovery;
107
+ #webRtcRequestor?: Endpoint<typeof CameraControllerDevice>;
108
+ #services: SharedEnvironmentServices;
99
109
 
100
110
  static async create(
101
111
  environment: Environment,
@@ -173,6 +183,8 @@ export class MatterController {
173
183
  this.#serverVersion = options.serverVersion ?? "0.0.0";
174
184
  this.#enableTestNetDcl = options.enableTestNetDcl ?? this.#enableTestNetDcl;
175
185
  this.#disableOtaProvider = options.disableOtaProvider ?? this.#disableOtaProvider;
186
+ this.#disableDclSeed = options.disableDclSeed ?? this.#disableDclSeed;
187
+ this.#services = this.#env.asDependent();
176
188
  }
177
189
 
178
190
  protected async initialize(
@@ -182,8 +194,24 @@ export class MatterController {
182
194
  ) {
183
195
  this.#legacyCommissionedDates = legacyCommissionedDates?.size ? legacyCommissionedDates : undefined;
184
196
 
185
- // Initialize the DclCertificateService on the root environment, will automatically be used
186
- new DclCertificateService(this.#env.root, { fetchTestCertificates: this.#enableTestNetDcl });
197
+ // Register DCL services on the root environment; DclBehavior picks them up.
198
+ // When seeding is enabled (default), pre-populate from the bundled offline snapshot so
199
+ // commissioning works without internet access.
200
+ const includeTest = this.#enableTestNetDcl;
201
+ if (this.#disableDclSeed) {
202
+ new DclCertificateService(this.#env.root, { fetchTestCertificates: includeTest });
203
+ } else {
204
+ new DclCertificateService(this.#env.root, {
205
+ fetchTestCertificates: includeTest,
206
+ seed: {
207
+ paaRoots: paaRoots({ includeTest }),
208
+ cdSigners: cdSigners({ includeTest }),
209
+ },
210
+ });
211
+ new DclVendorInfoService(this.#env.root, { seed: { vendors: vendors({ includeTest }) } });
212
+ this.#services.get(DclVendorInfoService);
213
+ }
214
+ this.#services.get(DclCertificateService);
187
215
 
188
216
  this.#controllerInstance = new CommissioningController({
189
217
  environment: {
@@ -242,6 +270,7 @@ export class MatterController {
242
270
  }
243
271
 
244
272
  initPromises.push(this.#borderRouterDiscovery.start());
273
+ initPromises.push(this.#enableWebRtcRequestor());
245
274
 
246
275
  try {
247
276
  await MatterAggregateError.allSettled(initPromises);
@@ -258,6 +287,27 @@ export class MatterController {
258
287
  return this.#borderRouterDiscovery;
259
288
  }
260
289
 
290
+ get webRtcRequestor(): Endpoint<typeof CameraControllerDevice> {
291
+ if (!this.#webRtcRequestor) {
292
+ throw new Error("WebRTC requestor endpoint not initialized");
293
+ }
294
+ return this.#webRtcRequestor;
295
+ }
296
+
297
+ async #enableWebRtcRequestor(): Promise<void> {
298
+ if (!this.#controllerInstance) {
299
+ throw new Error("Controller not started");
300
+ }
301
+ const node = this.#controllerInstance.node;
302
+ if (node.endpoints.has("camera-controller")) {
303
+ this.#webRtcRequestor = node.endpoints.for("camera-controller") as Endpoint<typeof CameraControllerDevice>;
304
+ return;
305
+ }
306
+ this.#webRtcRequestor = await node.add(
307
+ new Endpoint(CameraControllerDevice.with(WebRtcTransportRequestorServer), { id: "camera-controller" }),
308
+ );
309
+ }
310
+
261
311
  /**
262
312
  * Get the DCL vendor info service instance.
263
313
  * Lazily initializes the service if not already present.
@@ -331,9 +381,9 @@ export class MatterController {
331
381
  }
332
382
 
333
383
  async stop() {
334
- await this.certificateService(); // Ensure it was initialized so that shutdown works
335
384
  await this.#borderRouterDiscovery.stop();
336
385
  await this.#commandHandler?.close(); // This closes also the controller instance if started
386
+ await this.#services.close();
337
387
  }
338
388
 
339
389
  /**