@matter-server/ws-controller 0.5.9 → 0.5.11

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 (30) hide show
  1. package/dist/esm/controller/AttributeDataCache.d.ts.map +1 -1
  2. package/dist/esm/controller/AttributeDataCache.js +18 -14
  3. package/dist/esm/controller/AttributeDataCache.js.map +1 -1
  4. package/dist/esm/controller/ControllerCommandHandler.d.ts +2 -14
  5. package/dist/esm/controller/ControllerCommandHandler.d.ts.map +1 -1
  6. package/dist/esm/controller/ControllerCommandHandler.js +17 -74
  7. package/dist/esm/controller/ControllerCommandHandler.js.map +1 -1
  8. package/dist/esm/controller/LegacyDataInjector.d.ts.map +1 -1
  9. package/dist/esm/controller/LegacyDataInjector.js +2 -3
  10. package/dist/esm/controller/LegacyDataInjector.js.map +1 -1
  11. package/dist/esm/controller/MatterController.d.ts.map +1 -1
  12. package/dist/esm/controller/MatterController.js +30 -27
  13. package/dist/esm/controller/MatterController.js.map +1 -1
  14. package/dist/esm/controller/Nodes.d.ts +1 -1
  15. package/dist/esm/controller/Nodes.d.ts.map +1 -1
  16. package/dist/esm/controller/Nodes.js.map +1 -1
  17. package/dist/esm/controller/ServerIdResolver.d.ts.map +1 -1
  18. package/dist/esm/controller/ServerIdResolver.js +35 -25
  19. package/dist/esm/controller/ServerIdResolver.js.map +1 -1
  20. package/dist/esm/server/WebSocketControllerHandler.d.ts.map +1 -1
  21. package/dist/esm/server/WebSocketControllerHandler.js +26 -1
  22. package/dist/esm/server/WebSocketControllerHandler.js.map +1 -1
  23. package/package.json +5 -5
  24. package/src/controller/AttributeDataCache.ts +18 -14
  25. package/src/controller/ControllerCommandHandler.ts +20 -84
  26. package/src/controller/LegacyDataInjector.ts +2 -3
  27. package/src/controller/MatterController.ts +35 -33
  28. package/src/controller/Nodes.ts +2 -2
  29. package/src/controller/ServerIdResolver.ts +38 -28
  30. package/src/server/WebSocketControllerHandler.ts +26 -1
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/controller/Nodes.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,SAAS,kBAA8B;AACvC,SAAS,mBAAmB;AAC5B,SAAS,0BAA0B;AAY5B,MAAM,MAAM;AAAA,EACf,SAAS,oBAAI,IAAwB;AAAA,EACrC,kBAAkB,IAAI,mBAAmB;AAAA;AAAA,EAEzC,kBAAkB,oBAAI,IAAwB;AAAA;AAAA;AAAA;AAAA,EAK9C,IAAI,iBAAqC;AACrC,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,SAAmB;AACf,WAAO,MAAM,KAAK,KAAK,OAAO,KAAK,CAAC;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,QAA4B;AAC5B,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,QAAI,SAAS,QAAW;AACpB,YAAM,YAAY,cAAc,MAAM;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAyB;AACzB,WAAO,KAAK,OAAO,IAAI,MAAM;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAgB,MAAwB;AACxC,SAAK,OAAO,IAAI,QAAQ,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,QAAsB;AACzB,SAAK,OAAO,OAAO,MAAM;AACzB,SAAK,gBAAgB,OAAO,MAAM;AAClC,SAAK,gBAAgB,OAAO,MAAM;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,QAAwC;AACrD,WAAO,KAAK,gBAAgB,IAAI,MAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAiB,QAAgB,OAAyB;AACtD,SAAK,gBAAgB,IAAI,QAAQ,KAAK;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,gBAAgB,cAA0B,eAAqC;AAC3E,QAAI,iBAAiB,WAAW,WAAW;AACvC,aAAO;AAAA,IACX;AAEA,QAAI,iBAAiB,WAAW,gBAAgB,kBAAkB,WAAW,WAAW;AACpF,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,QAAyB;AACjC,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,QAAI,SAAS,QAAW;AACpB,aAAO;AAAA,IACX;AACA,UAAM,eAAe,KAAK;AAC1B,UAAM,gBAAgB,KAAK,gBAAgB,IAAI,MAAM;AACrD,WAAO,KAAK,gBAAgB,cAAc,aAAa;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,QAAmC;AACpD,WAAO,KAAK,IAAI,MAAM,EAAE,qBAAqB;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,qBAAqB,QAAgB,YAA4B,WAA6C;AAC1G,UAAM,OAAO,KAAK,IAAI,MAAM;AAE5B,UAAM,WAAW,eAAe,IAAI,KAAK,gBAAgB,IAAI,KAAK,cAAc,UAAU;AAE1F,QAAI,aAAa,QAAW;AACxB,YAAM,YAAY,iBAAiB,YAAY,UAAU,YAAY,MAAM,YAAY;AAAA,IAC3F;AAEA,UAAM,SAAS,SAAS,qBAAqB,SAAS;AAEtD,QAAI,WAAW,QAAW;AACtB,YAAM,YAAY;AAAA,QACd,WAAW,SAAS,gBAAgB,UAAU,YAAY,MAAM;AAAA,MACpE;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,iBACI,QACA,YACA,SACmB;AACnB,WAAO,KAAK,qBAAqB,QAAQ,YAAY,QAAQ,EAAE;AAAA,EACnE;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAUA,SAAS,kBAA8B;AACvC,SAAS,mBAAmB;AAC5B,SAAS,0BAA0B;AAY5B,MAAM,MAAM;AAAA,EACf,SAAS,oBAAI,IAAwB;AAAA,EACrC,kBAAkB,IAAI,mBAAmB;AAAA;AAAA,EAEzC,kBAAkB,oBAAI,IAAwB;AAAA;AAAA;AAAA;AAAA,EAK9C,IAAI,iBAAqC;AACrC,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA;AAAA;AAAA,EAKA,SAAmB;AACf,WAAO,MAAM,KAAK,KAAK,OAAO,KAAK,CAAC;AAAA,EACxC;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,IAAI,QAA4B;AAC5B,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,QAAI,SAAS,QAAW;AACpB,YAAM,YAAY,cAAc,MAAM;AAAA,IAC1C;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAyB;AACzB,WAAO,KAAK,OAAO,IAAI,MAAM;AAAA,EACjC;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAgB,MAAwB;AACxC,SAAK,OAAO,IAAI,QAAQ,IAAI;AAAA,EAChC;AAAA;AAAA;AAAA;AAAA,EAKA,OAAO,QAAsB;AACzB,SAAK,OAAO,OAAO,MAAM;AACzB,SAAK,gBAAgB,OAAO,MAAM;AAClC,SAAK,gBAAgB,OAAO,MAAM;AAAA,EACtC;AAAA;AAAA;AAAA;AAAA,EAKA,iBAAiB,QAAwC;AACrD,WAAO,KAAK,gBAAgB,IAAI,MAAM;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,iBAAiB,QAAgB,OAAyB;AACtD,SAAK,gBAAgB,IAAI,QAAQ,KAAK;AAAA,EAC1C;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,gBAAgB,cAA0B,eAAqC;AAC3E,QAAI,iBAAiB,WAAW,WAAW;AACvC,aAAO;AAAA,IACX;AAEA,QAAI,iBAAiB,WAAW,gBAAgB,kBAAkB,WAAW,WAAW;AACpF,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAAY,QAAyB;AACjC,UAAM,OAAO,KAAK,OAAO,IAAI,MAAM;AACnC,QAAI,SAAS,QAAW;AACpB,aAAO;AAAA,IACX;AACA,UAAM,eAAe,KAAK;AAC1B,UAAM,gBAAgB,KAAK,gBAAgB,IAAI,MAAM;AACrD,WAAO,KAAK,gBAAgB,cAAc,aAAa;AAAA,EAC3D;AAAA;AAAA;AAAA;AAAA,EAKA,qBAAqB,QAAmC;AACpD,WAAO,KAAK,IAAI,MAAM,EAAE,qBAAqB;AAAA,EACjD;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,qBAAqB,QAAgB,YAA4B,WAA6C;AAC1G,UAAM,OAAO,KAAK,IAAI,MAAM;AAE5B,UAAM,WAAW,eAAe,IAAI,KAAK,gBAAgB,IAAI,KAAK,cAAc,UAAU;AAE1F,QAAI,aAAa,QAAW;AACxB,YAAM,YAAY,iBAAiB,YAAY,UAAU,YAAY,MAAM,YAAY;AAAA,IAC3F;AAEA,UAAM,SAAS,SAAS,qBAAqB,SAAS;AAEtD,QAAI,WAAW,QAAW;AACtB,YAAM,YAAY;AAAA,QACd,WAAW,SAAS,gBAAgB,UAAU,YAAY,MAAM;AAAA,MACpE;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,iBACI,QACA,YACA,SAC6B;AAC7B,WAAO,KAAK,qBAAqB,QAAQ,YAAY,QAAQ,EAAG;AAAA,EACpE;AACJ;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ServerIdResolver.d.ts","sourceRoot":"","sources":["../../../src/controller/ServerIdResolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAI7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAI3D,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWvG;AAED,sCAAsC;AACtC,MAAM,WAAW,sBAAsB;IACnC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACjC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAC3B,OAAO,CAAC,MAAM,CAAC,CAwEjB"}
1
+ {"version":3,"file":"ServerIdResolver.d.ts","sourceRoot":"","sources":["../../../src/controller/ServerIdResolver.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;;;;;;;GAQG;AAEH,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAI7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAI3D,mDAAmD;AACnD,eAAO,MAAM,iBAAiB,WAAW,CAAC;AAE1C;;;GAGG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAEnF;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,WAAW,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAWvG;AAED,sCAAsC;AACtC,MAAM,WAAW,sBAAsB;IACnC,2DAA2D;IAC3D,QAAQ,CAAC,EAAE,MAAM,CAAC;CACrB;AAED;;;;;;;;;;;;GAYG;AACH,wBAAsB,eAAe,CACjC,GAAG,EAAE,WAAW,EAChB,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,sBAAsB,EAC/B,QAAQ,CAAC,EAAE,MAAM,EACjB,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,GAC3B,OAAO,CAAC,MAAM,CAAC,CAkFjB"}
@@ -42,35 +42,45 @@ async function resolveServerId(env, config, options, vendorId, fabricId) {
42
42
  if (await storageExists(storagePath, DEFAULT_SERVER_ID)) {
43
43
  try {
44
44
  const baseStorage = await config.service.open(DEFAULT_SERVER_ID);
45
- const fabricsContext = baseStorage.createContext("fabrics");
46
- const fabrics = await fabricsContext.get("fabrics", []);
47
- if (fabrics.length === 1) {
48
- const fabricData = fabrics[0];
49
- const storedFabricId = fabricData.fabricId;
50
- const storedVendorId = fabricData.rootVendorId;
51
- if (storedFabricId === FabricId(fabricId) && storedVendorId === vendorId) {
52
- await baseStorage.close();
53
- if (storagePath !== void 0) {
54
- const oldPath = join(storagePath, DEFAULT_SERVER_ID);
55
- const newPath = join(storagePath, candidateId);
56
- try {
57
- await rename(oldPath, newPath);
58
- logger.info(`Renamed storage "${DEFAULT_SERVER_ID}" to "${candidateId}"`);
59
- return candidateId;
60
- } catch (renameErr) {
61
- logger.error(
62
- `Failed to rename storage from "${DEFAULT_SERVER_ID}" to "${candidateId}"`,
63
- renameErr
64
- );
65
- return DEFAULT_SERVER_ID;
45
+ let closed = false;
46
+ try {
47
+ const fabricsContext = baseStorage.createContext("fabrics");
48
+ const fabrics = await fabricsContext.get(
49
+ "fabrics",
50
+ []
51
+ );
52
+ if (fabrics.length === 1) {
53
+ const fabricData = fabrics[0];
54
+ const storedFabricId = fabricData.fabricId;
55
+ const storedVendorId = fabricData.rootVendorId;
56
+ if (storedFabricId === FabricId(fabricId) && storedVendorId === vendorId) {
57
+ await baseStorage.close();
58
+ closed = true;
59
+ if (storagePath !== void 0) {
60
+ const oldPath = join(storagePath, DEFAULT_SERVER_ID);
61
+ const newPath = join(storagePath, candidateId);
62
+ try {
63
+ await rename(oldPath, newPath);
64
+ logger.info(`Renamed storage "${DEFAULT_SERVER_ID}" to "${candidateId}"`);
65
+ return candidateId;
66
+ } catch (renameErr) {
67
+ logger.error(
68
+ `Failed to rename storage from "${DEFAULT_SERVER_ID}" to "${candidateId}"`,
69
+ renameErr
70
+ );
71
+ return DEFAULT_SERVER_ID;
72
+ }
66
73
  }
74
+ return DEFAULT_SERVER_ID;
67
75
  }
68
- return DEFAULT_SERVER_ID;
76
+ } else {
77
+ logger.error(`Multiple fabrics found, using new storage`, fabrics);
78
+ }
79
+ } finally {
80
+ if (!closed) {
81
+ await baseStorage.close();
69
82
  }
70
- } else {
71
- logger.error(`Multiple fabrics found, using new storage`, fabrics);
72
83
  }
73
- await baseStorage.close();
74
84
  logger.info(`Existing "server" storage does not match fabric config, using new ID: ${candidateId}`);
75
85
  } catch (err) {
76
86
  logger.debug(`Could not verify "server" storage: ${err}`);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/controller/ServerIdResolver.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,SAAsB,UAAU,cAAc;AAE9C,SAAS,QAAQ,cAAc;AAC/B,SAAS,YAAY;AAGrB,MAAM,SAAS,OAAO,IAAI,kBAAkB;AAGrC,MAAM,oBAAoB;AAM1B,SAAS,gBAAgB,UAA2B,UAA0B;AACjF,SAAO,UAAU,SAAS,QAAQ,EAAE,SAAS,EAAE,CAAC,IAAI,SAAS,SAAS,EAAE,CAAC;AAC7E;AAKA,eAAsB,cAAc,aAAiC,UAAoC;AACrG,MAAI,gBAAgB,QAAW;AAC3B,WAAO;AAAA,EACX;AACA,MAAI;AACA,UAAM,WAAW,KAAK,aAAa,QAAQ;AAC3C,UAAM,OAAO,QAAQ;AACrB,WAAO;AAAA,EACX,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ;AAqBA,eAAsB,gBAClB,KACA,QACA,SACA,UACA,UACe;AACf,QAAM,oBAAoB,QAAQ,YAAY;AAG9C,MAAI,sBAAsB,mBAAmB;AACzC,WAAO,KAAK,6BAA6B,iBAAiB,EAAE;AAC5D,WAAO;AAAA,EACX;AAIA,MAAI,aAAa,UAAa,aAAa,QAAW;AAClD,WAAO,KAAK,+CAA+C,iBAAiB,EAAE;AAC9E,WAAO;AAAA,EACX;AAEA,QAAM,cAAc,IAAI,KAAK,IAAY,cAAc;AACvD,QAAM,cAAc,gBAAgB,UAAU,QAAQ;AAGtD,MAAI,MAAM,cAAc,aAAa,WAAW,GAAG;AAC/C,WAAO,KAAK,yCAAyC,WAAW,EAAE;AAClE,WAAO;AAAA,EACX;AAGA,MAAI,MAAM,cAAc,aAAa,iBAAiB,GAAG;AAErD,QAAI;AACA,YAAM,cAAc,MAAM,OAAO,QAAQ,KAAK,iBAAiB;AAC/D,YAAM,iBAAiB,YAAY,cAAc,SAAS;AAG1D,YAAM,UAAU,MAAM,eAAe,IAAsD,WAAW,CAAC,CAAC;AACxG,UAAI,QAAQ,WAAW,GAAG;AAEtB,cAAM,aAAa,QAAQ,CAAC;AAC5B,cAAM,iBAAiB,WAAW;AAClC,cAAM,iBAAiB,WAAW;AAClC,YAAI,mBAAmB,SAAS,QAAQ,KAAK,mBAAmB,UAAU;AAEtE,gBAAM,YAAY,MAAM;AACxB,cAAI,gBAAgB,QAAW;AAC3B,kBAAM,UAAU,KAAK,aAAa,iBAAiB;AACnD,kBAAM,UAAU,KAAK,aAAa,WAAW;AAC7C,gBAAI;AACA,oBAAM,OAAO,SAAS,OAAO;AAC7B,qBAAO,KAAK,oBAAoB,iBAAiB,SAAS,WAAW,GAAG;AACxE,qBAAO;AAAA,YACX,SAAS,WAAW;AAChB,qBAAO;AAAA,gBACH,kCAAkC,iBAAiB,SAAS,WAAW;AAAA,gBACvE;AAAA,cACJ;AACA,qBAAO;AAAA,YACX;AAAA,UACJ;AACA,iBAAO;AAAA,QACX;AAAA,MACJ,OAAO;AACH,eAAO,MAAM,6CAA6C,OAAO;AAAA,MACrE;AACA,YAAM,YAAY,MAAM;AACxB,aAAO,KAAK,yEAAyE,WAAW,EAAE;AAAA,IACtG,SAAS,KAAK;AACV,aAAO,MAAM,sCAAsC,GAAG,EAAE;AAAA,IAC5D;AAAA,EACJ;AAGA,SAAO,KAAK,+BAA+B,WAAW,EAAE;AACxD,SAAO;AACX;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,SAAsB,UAAU,cAAc;AAE9C,SAAS,QAAQ,cAAc;AAC/B,SAAS,YAAY;AAGrB,MAAM,SAAS,OAAO,IAAI,kBAAkB;AAGrC,MAAM,oBAAoB;AAM1B,SAAS,gBAAgB,UAA2B,UAA0B;AACjF,SAAO,UAAU,SAAS,QAAQ,EAAE,SAAS,EAAE,CAAC,IAAI,SAAS,SAAS,EAAE,CAAC;AAC7E;AAKA,eAAsB,cAAc,aAAiC,UAAoC;AACrG,MAAI,gBAAgB,QAAW;AAC3B,WAAO;AAAA,EACX;AACA,MAAI;AACA,UAAM,WAAW,KAAK,aAAa,QAAQ;AAC3C,UAAM,OAAO,QAAQ;AACrB,WAAO;AAAA,EACX,QAAQ;AACJ,WAAO;AAAA,EACX;AACJ;AAqBA,eAAsB,gBAClB,KACA,QACA,SACA,UACA,UACe;AACf,QAAM,oBAAoB,QAAQ,YAAY;AAG9C,MAAI,sBAAsB,mBAAmB;AACzC,WAAO,KAAK,6BAA6B,iBAAiB,EAAE;AAC5D,WAAO;AAAA,EACX;AAIA,MAAI,aAAa,UAAa,aAAa,QAAW;AAClD,WAAO,KAAK,+CAA+C,iBAAiB,EAAE;AAC9E,WAAO;AAAA,EACX;AAEA,QAAM,cAAc,IAAI,KAAK,IAAY,cAAc;AACvD,QAAM,cAAc,gBAAgB,UAAU,QAAQ;AAGtD,MAAI,MAAM,cAAc,aAAa,WAAW,GAAG;AAC/C,WAAO,KAAK,yCAAyC,WAAW,EAAE;AAClE,WAAO;AAAA,EACX;AAGA,MAAI,MAAM,cAAc,aAAa,iBAAiB,GAAG;AAErD,QAAI;AACA,YAAM,cAAc,MAAM,OAAO,QAAQ,KAAK,iBAAiB;AAC/D,UAAI,SAAS;AACb,UAAI;AACA,cAAM,iBAAiB,YAAY,cAAc,SAAS;AAG1D,cAAM,UAAU,MAAM,eAAe;AAAA,UACjC;AAAA,UACA,CAAC;AAAA,QACL;AACA,YAAI,QAAQ,WAAW,GAAG;AAEtB,gBAAM,aAAa,QAAQ,CAAC;AAC5B,gBAAM,iBAAiB,WAAW;AAClC,gBAAM,iBAAiB,WAAW;AAClC,cAAI,mBAAmB,SAAS,QAAQ,KAAK,mBAAmB,UAAU;AAEtE,kBAAM,YAAY,MAAM;AACxB,qBAAS;AACT,gBAAI,gBAAgB,QAAW;AAC3B,oBAAM,UAAU,KAAK,aAAa,iBAAiB;AACnD,oBAAM,UAAU,KAAK,aAAa,WAAW;AAC7C,kBAAI;AACA,sBAAM,OAAO,SAAS,OAAO;AAC7B,uBAAO,KAAK,oBAAoB,iBAAiB,SAAS,WAAW,GAAG;AACxE,uBAAO;AAAA,cACX,SAAS,WAAW;AAChB,uBAAO;AAAA,kBACH,kCAAkC,iBAAiB,SAAS,WAAW;AAAA,kBACvE;AAAA,gBACJ;AACA,uBAAO;AAAA,cACX;AAAA,YACJ;AACA,mBAAO;AAAA,UACX;AAAA,QACJ,OAAO;AACH,iBAAO,MAAM,6CAA6C,OAAO;AAAA,QACrE;AAAA,MACJ,UAAE;AACE,YAAI,CAAC,QAAQ;AACT,gBAAM,YAAY,MAAM;AAAA,QAC5B;AAAA,MACJ;AACA,aAAO,KAAK,yEAAyE,WAAW,EAAE;AAAA,IACtG,SAAS,KAAK;AACV,aAAO,MAAM,sCAAsC,GAAG,EAAE;AAAA,IAC5D;AAAA,EACJ;AAGA,SAAO,KAAK,+BAA+B,WAAW,EAAE;AACxD,SAAO;AACX;",
5
5
  "names": []
6
6
  }
@@ -1 +1 @@
1
- {"version":3,"file":"WebSocketControllerHandler.d.ts","sourceRoot":"","sources":["../../../src/server/WebSocketControllerHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAKrE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAMH,eAAe,EAMlB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA+BnD,yDAAyD;AACzD,qBAAa,0BAA2B,YAAW,gBAAgB;;gBAanD,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM;IAQtF;;;OAGG;IACH,MAAM;;;;IA2BN;;OAEG;IACH,eAAe,IAAI,eAAe,EAAE;IAI9B,QAAQ,CAAC,MAAM,EAAE,UAAU;IA4NjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CAgwB9B"}
1
+ {"version":3,"file":"WebSocketControllerHandler.d.ts","sourceRoot":"","sources":["../../../src/server/WebSocketControllerHandler.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAoBH,OAAO,EAAE,gBAAgB,EAAE,MAAM,mCAAmC,CAAC;AAKrE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAMH,eAAe,EAMlB,MAAM,mCAAmC,CAAC;AAG3C,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AA+BnD,yDAAyD;AACzD,qBAAa,0BAA2B,YAAW,gBAAgB;;gBAanD,UAAU,EAAE,gBAAgB,EAAE,MAAM,EAAE,aAAa,EAAE,aAAa,EAAE,MAAM;IAQtF;;;OAGG;IACH,MAAM;;;;IA2BN;;OAEG;IACH,eAAe,IAAI,eAAe,EAAE;IAI9B,QAAQ,CAAC,MAAM,EAAE,UAAU;IA4NjC,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;CA6wB9B"}
@@ -3,7 +3,19 @@
3
3
  * Copyright 2025-2026 Open Home Foundation
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
- import { camelize, ClusterId, FabricIndex, Logger, LogLevel, Millis, NodeId, ObserverGroup } from "@matter/main";
6
+ import {
7
+ MatterError,
8
+ Diagnostic,
9
+ Bytes,
10
+ camelize,
11
+ ClusterId,
12
+ FabricIndex,
13
+ Logger,
14
+ LogLevel,
15
+ Millis,
16
+ NodeId,
17
+ ObserverGroup
18
+ } from "@matter/main";
7
19
  import { EndpointNumber, QrPairingCodeCodec } from "@matter/main/types";
8
20
  import { NodeStates } from "@project-chip/matter.js/device";
9
21
  import { WebSocketServer } from "ws";
@@ -715,6 +727,19 @@ class WebSocketControllerHandler {
715
727
  }
716
728
  async #handleSetThreadDataset(args) {
717
729
  const { dataset } = args;
730
+ if (!/^[0-9a-fA-F]*$/.test(dataset) || dataset.length % 2 !== 0) {
731
+ throw ServerError.invalidArguments(
732
+ "Invalid Thread operational dataset: must be a hex string with even length (each byte is two hex characters)"
733
+ );
734
+ }
735
+ try {
736
+ Bytes.fromHex(dataset);
737
+ } catch (error) {
738
+ MatterError.accept(error);
739
+ throw ServerError.invalidArguments(
740
+ `Invalid Thread operational dataset: failed to parse hex string: ${Diagnostic.errorMessage(error)}`
741
+ );
742
+ }
718
743
  await this.#config.set({ threadDataset: dataset });
719
744
  try {
720
745
  await this.#broadcastServerInfoUpdated();
@@ -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;AAAA,EAEV,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,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;AAC5E,QAAI,GAAG,cAAc,QAAM;AACvB,UAAI,KAAK,QAAS;AAElB,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,CAAC,UAAW;AAEhC,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,CAAC,UAAW;AAChC,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,CAAC,UAAW;AAChC,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,CAAC,UAAW;AAChC,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,CAAC,UAAW;AAChC,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,CAAC,UAAW;AAChC,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,CAAC,UAAW;AAChC,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;AAEf,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;AACA,aAAO,MAAM,IAAI,MAAM,uBAAuB,MAAM,IAAI;AACxD,YAAM,UAAU,qBAAqB,IAAI;AACzC,YAAM,EAAE,SAAS,KAAK,IAAI;AAC1B,kBAAY,QAAQ;AACpB,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,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,+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,wCAAwC,GAAG;AAClE,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,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,QAAS;AAChC,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;AAEA,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,MACf,cAAc,UAAU,EAAE,IAAI,SAAS,MAAM,KAAK,IAAI;AAAA,IAC1D;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;AAEA,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,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,+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,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter-server/ws-controller",
3
- "version": "0.5.9",
3
+ "version": "0.5.11",
4
4
  "type": "module",
5
5
  "description": "matter.js based Matter controller library",
6
6
  "bugs": {
@@ -22,12 +22,12 @@
22
22
  "node": ">=20.19.0 <22.0.0 || >=22.13.0"
23
23
  },
24
24
  "optionalDependencies": {
25
- "@matter/nodejs-ble": "0.17.0-alpha.0-20260326-42b6f59b7"
25
+ "@matter/nodejs-ble": "0.17.0-alpha.0-20260401-1edc54c9a"
26
26
  },
27
27
  "dependencies": {
28
- "@matter/main": "0.17.0-alpha.0-20260326-42b6f59b7",
29
- "@matter-server/ws-client": "0.5.9",
30
- "@project-chip/matter.js": "0.17.0-alpha.0-20260326-42b6f59b7",
28
+ "@matter/main": "0.17.0-alpha.0-20260401-1edc54c9a",
29
+ "@matter-server/ws-client": "0.5.11",
30
+ "@project-chip/matter.js": "0.17.0-alpha.0-20260401-1edc54c9a",
31
31
  "ws": "^8.20.0"
32
32
  },
33
33
  "devDependencies": {
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
 
7
- import { ClientNode, ClusterBehavior, Logger, NodeId } from "@matter/main";
7
+ import { ClientNode, ClusterBehavior, Diagnostic, Logger, MatterError, NodeId } from "@matter/main";
8
8
  import { DecodedAttributeReportValue } from "@matter/main/protocol";
9
9
  import { PairedNode } from "@project-chip/matter.js/device";
10
10
  import { ClusterMap } from "../model/ModelMapper.js";
@@ -126,20 +126,24 @@ export class AttributeDataCache {
126
126
  const clusterData = ClusterMap[cluster.id];
127
127
  const clusterState = endpoint.stateOf(behavior) as Record<string, unknown>;
128
128
 
129
- for (const attributeName in cluster.attributes) {
130
- const attribute = cluster.attributes[attributeName];
131
- if (attribute === undefined) {
132
- continue;
129
+ for (const attribute of cluster.schema.attributes) {
130
+ try {
131
+ const convertedValue = convertMatterToWebSocketTagBased(
132
+ clusterState[attribute.propertyName],
133
+ clusterData?.attributes[attribute.id],
134
+ clusterData?.model,
135
+ );
136
+ if (convertedValue === undefined) {
137
+ continue;
138
+ }
139
+ attributes[buildAttributePath(endpointId, cluster.id, attribute.id)] = convertedValue;
140
+ } catch (error) {
141
+ MatterError.accept(error);
142
+ logger.debug(
143
+ `Ignoring Attribute ${attribute.propertyName} because of`,
144
+ Diagnostic.errorMessage(error),
145
+ );
133
146
  }
134
- const convertedValue = convertMatterToWebSocketTagBased(
135
- clusterState[attributeName],
136
- clusterData?.attributes[attribute.id],
137
- clusterData?.model,
138
- );
139
- if (convertedValue === undefined) {
140
- continue;
141
- }
142
- attributes[buildAttributePath(endpointId, cluster.id, attribute.id)] = convertedValue;
143
147
  }
144
148
  }
145
149
  }
@@ -40,34 +40,22 @@ import {
40
40
  Invoke,
41
41
  PeerAddress,
42
42
  Read,
43
+ Specifier,
43
44
  SupportedTransportsSchema,
44
45
  PeerSet,
45
46
  } from "@matter/main/protocol";
46
47
  import {
47
- Attribute,
48
48
  AttributeId,
49
49
  ClusterId,
50
50
  ClusterType,
51
- Command,
52
51
  DeviceTypeId,
53
52
  EndpointNumber,
54
- getClusterById,
55
53
  GroupId,
56
54
  ManualPairingCodeCodec,
57
55
  QrPairingCodeCodec,
58
56
  SpecificationVersion,
59
57
  Status,
60
58
  StatusResponseError,
61
- TlvAny,
62
- TlvBoolean,
63
- TlvByteString,
64
- TlvInt32,
65
- TlvNoResponse,
66
- TlvNullable,
67
- TlvObject,
68
- TlvString,
69
- TlvUInt64,
70
- TlvVoid,
71
59
  VendorId,
72
60
  } from "@matter/main/types";
73
61
  import { CommissioningController, NodeCommissioningOptions } from "@project-chip/matter.js";
@@ -89,7 +77,6 @@ import {
89
77
  CommissioningResponse,
90
78
  DiscoveryRequest,
91
79
  DiscoveryResponse,
92
- InvokeByIdRequest,
93
80
  InvokeRequest,
94
81
  MatterNodeData,
95
82
  OpenCommissioningWindowRequest,
@@ -100,7 +87,6 @@ import {
100
87
  SubscribeAttributeResponse,
101
88
  SubscribeEventRequest,
102
89
  SubscribeEventResponse,
103
- WriteAttributeByIdRequest,
104
90
  WriteAttributeRequest,
105
91
  } from "../types/CommandHandler.js";
106
92
  import {
@@ -287,7 +273,9 @@ export class ControllerCommandHandler {
287
273
  }
288
274
 
289
275
  async close() {
290
- if (!this.#started) return;
276
+ if (!this.#started) {
277
+ return;
278
+ }
291
279
  await this.#customClusterPoller.stop();
292
280
  return this.#controller.close();
293
281
  }
@@ -754,7 +742,7 @@ export class ControllerCommandHandler {
754
742
  }
755
743
 
756
744
  // TODO improve response typing
757
- async #invokeCommand<const C extends ClusterType>(
745
+ async #invokeCommand<const C extends Specifier.ClusterLike>(
758
746
  node: ClientNode,
759
747
  request: Invoke.ConcreteCommandRequest<C>,
760
748
  options: Omit<Invoke.Definition, "commands"> = {},
@@ -791,22 +779,25 @@ export class ControllerCommandHandler {
791
779
  } = data;
792
780
  let { data: commandData } = data;
793
781
 
794
- const cluster = getClusterById(clusterId);
782
+ const clusterEntry = ClusterMap[clusterId];
783
+ if (!clusterEntry) {
784
+ throw ServerError.invalidArguments(`Cluster Id "${clusterId}" unknown`);
785
+ }
786
+ const clusterName = clusterEntry.model.propertyName;
795
787
  const commandName = camelize(data.commandName);
796
788
  const commands = (
797
789
  this.#nodes.get(nodeId).node.endpoints.for(endpointId).commands as Record<string, Record<string, unknown>>
798
- )[camelize(cluster.name)];
790
+ )[clusterName];
799
791
  if (!commands[commandName]) {
800
- throw ServerError.invalidArguments(`Command "${commandName}" does not exist on cluster "${cluster.name}"`);
792
+ throw ServerError.invalidArguments(`Command "${commandName}" does not exist on cluster "${clusterName}"`);
801
793
  }
802
794
 
803
795
  if (isObject(commandData)) {
804
796
  if (Object.keys(commandData).length === 0) {
805
797
  commandData = undefined;
806
798
  } else {
807
- const clusterEntry = ClusterMap[clusterId];
808
- const model = clusterEntry?.commands[commandName.toLowerCase()];
809
- if (cluster && model) {
799
+ const model = clusterEntry.commands[commandName.toLowerCase()];
800
+ if (model) {
810
801
  commandData = convertCommandDataToMatter(commandData, model, clusterEntry.model);
811
802
  }
812
803
  }
@@ -820,11 +811,14 @@ export class ControllerCommandHandler {
820
811
  const existing = this.#inFlightInvokes.get(dedupKey);
821
812
  if (existing !== undefined) {
822
813
  logger.warn(
823
- `Duplicate command detected for ${this.formatNode(nodeId)}/${endpointId}/${cluster.name}/${commandName} - coalescing with in-flight request`,
814
+ `Duplicate command detected for ${this.formatNode(nodeId)}/${endpointId}/${clusterName}/${commandName} - coalescing with in-flight request`,
824
815
  );
825
816
  return existing;
826
817
  }
827
818
 
819
+ // Resolve cluster namespace with command definitions for typed invoke
820
+ const cluster = ClusterType(clusterEntry.model) as Specifier.ClusterLike;
821
+
828
822
  // Execute and track the command
829
823
  const invokePromise = this.#invokeCommand(
830
824
  this.#nodes.get(nodeId).node,
@@ -849,65 +843,6 @@ export class ControllerCommandHandler {
849
843
  });
850
844
  }
851
845
 
852
- /** InvokeById minimalistic handler because only used for error testing */
853
- async handleInvokeById(data: InvokeByIdRequest): Promise<void> {
854
- const { nodeId, endpointId, clusterId, commandId, data: commandData, timedInteractionTimeoutMs } = data;
855
- const client = this.#nodes.interactionClientFor(nodeId);
856
- await client.invoke<Command<any, any, any>>({
857
- endpointId,
858
- clusterId: clusterId,
859
- command: Command(commandId, TlvAny, 0x00, TlvNoResponse, {
860
- timed: timedInteractionTimeoutMs !== undefined,
861
- }),
862
- request: commandData === undefined ? TlvVoid.encodeTlv() : TlvObject({}).encodeTlv(commandData as any),
863
- asTimedRequest: timedInteractionTimeoutMs !== undefined,
864
- timedRequestTimeout: Millis(timedInteractionTimeoutMs),
865
- skipValidation: true,
866
- });
867
- }
868
-
869
- async handleWriteAttributeById(data: WriteAttributeByIdRequest): Promise<void> {
870
- const { nodeId, endpointId, clusterId, attributeId, value } = data;
871
-
872
- const client = this.#nodes.interactionClientFor(nodeId);
873
-
874
- logger.info("Writing attribute", attributeId, "with value", value);
875
-
876
- let tlvValue: any;
877
-
878
- if (value === null) {
879
- tlvValue = TlvNullable(TlvBoolean).encodeTlv(value); // Boolean is just a placeholder here
880
- } else if (value instanceof Uint8Array) {
881
- tlvValue = TlvByteString.encodeTlv(value);
882
- } else {
883
- switch (typeof value) {
884
- case "boolean":
885
- tlvValue = TlvBoolean.encodeTlv(value);
886
- break;
887
- case "number":
888
- tlvValue = TlvInt32.encodeTlv(value);
889
- break;
890
- case "bigint":
891
- tlvValue = TlvUInt64.encodeTlv(value);
892
- break;
893
- case "string":
894
- tlvValue = TlvString.encodeTlv(value);
895
- break;
896
- default:
897
- throw ServerError.invalidArguments(`Unsupported value type "${typeof value}" for Any encoding`);
898
- }
899
- }
900
-
901
- await client.setAttribute({
902
- attributeData: {
903
- endpointId,
904
- clusterId,
905
- attribute: Attribute(attributeId, TlvAny),
906
- value: tlvValue,
907
- },
908
- });
909
- }
910
-
911
846
  #determineCommissionOptions(data: CommissioningRequest): NodeCommissioningOptions {
912
847
  let passcode: number | undefined = undefined;
913
848
  let shortDiscriminator: number | undefined = undefined;
@@ -957,7 +892,7 @@ export class ControllerCommandHandler {
957
892
  }
958
893
 
959
894
  const { onNetworkOnly, wifiCredentials: wifiNetwork, threadCredentials: threadNetwork } = data;
960
- return {
895
+ const options = {
961
896
  commissioning: {
962
897
  nodeId: data.nodeId,
963
898
  regulatoryLocation: GeneralCommissioning.RegulatoryLocationType.IndoorOutdoor,
@@ -982,6 +917,7 @@ export class ControllerCommandHandler {
982
917
  },
983
918
  passcode,
984
919
  };
920
+ return options;
985
921
  }
986
922
 
987
923
  async commissionNode(data: CommissioningRequest): Promise<CommissioningResponse> {
@@ -20,9 +20,8 @@ import {
20
20
  SupportedStorageTypes,
21
21
  Time,
22
22
  } from "@matter/main";
23
- import { DescriptorCluster } from "@matter/main/clusters";
24
23
  import { CertificateAuthority, Fabric, FabricBuilder, Noc, PeerAddress } from "@matter/main/protocol";
25
- import { VendorId } from "@matter/main/types";
24
+ import { Global, VendorId } from "@matter/main/types";
26
25
  import { ClusterMap } from "../model/ModelMapper.js";
27
26
  import { convertWebSocketTagBasedToMatter } from "../server/Converters.js";
28
27
 
@@ -31,7 +30,7 @@ const logger = Logger.get("LegacyDataInjector");
31
30
  /* eslint-disable regexp/no-unused-capturing-group */
32
31
  const BASE64_REGEX = /^([0-9a-z+/]{4})*(([0-9a-z+/]{2}==)|([0-9a-z+/]{3}=))?$/i;
33
32
 
34
- const FEATUREMAP_ID = DescriptorCluster.attributes.featureMap.id.toString();
33
+ const FEATUREMAP_ID = Global.attributes.featureMap.id.toString();
35
34
 
36
35
  /**
37
36
  * Fabric configuration data extracted from chip.json.
@@ -97,43 +97,45 @@ export class MatterController {
97
97
  if (legacyData !== undefined) {
98
98
  const crypto = environment.get(Crypto);
99
99
  const baseStorage = await config.service.open(serverId);
100
- if (legacyData.credentials && legacyData.fabricId) {
101
- await LegacyDataInjector.injectCredentials(
102
- baseStorage.createContext("credentials"),
103
- baseStorage.createContext("fabrics"),
104
- crypto,
105
- legacyData.credentials,
106
- legacyData.fabric,
107
- );
108
- }
109
- if (
110
- (await LegacyDataInjector.injectNodeData(
111
- baseStorage,
112
- legacyData.nodeData,
113
- legacyData.fabric?.fabricIndex,
114
- )) &&
115
- legacyData.nodeData !== undefined
116
- ) {
117
- for (const [nodeIdStr, data] of Object.entries(legacyData.nodeData.nodes)) {
118
- const { date_commissioned: commissionedAt } = data;
119
- commissionedDates.set(nodeIdStr, Timestamp(new Date(commissionedAt).getTime()));
100
+ try {
101
+ if (legacyData.credentials && legacyData.fabricId) {
102
+ await LegacyDataInjector.injectCredentials(
103
+ baseStorage.createContext("credentials"),
104
+ baseStorage.createContext("fabrics"),
105
+ crypto,
106
+ legacyData.credentials,
107
+ legacyData.fabric,
108
+ );
109
+ }
110
+ if (
111
+ (await LegacyDataInjector.injectNodeData(
112
+ baseStorage,
113
+ legacyData.nodeData,
114
+ legacyData.fabric?.fabricIndex,
115
+ )) &&
116
+ legacyData.nodeData !== undefined
117
+ ) {
118
+ for (const [nodeIdStr, data] of Object.entries(legacyData.nodeData.nodes)) {
119
+ const { date_commissioned: commissionedAt } = data;
120
+ commissionedDates.set(nodeIdStr, Timestamp(new Date(commissionedAt).getTime()));
121
+ }
120
122
  }
121
- }
122
123
 
123
- // Check if the nextNodeId needs to be updated based on legacy data
124
- const lastNodeId = legacyData.nodeData?.last_node_id;
125
- if (typeof lastNodeId === "number" || typeof lastNodeId === "bigint") {
126
- // Compare as BigInt to safely handle both number and bigint types
127
- if (BigInt(config.nextNodeId) <= BigInt(lastNodeId)) {
128
- const newNextNodeId = BigInt(lastNodeId) + 10n;
129
- logger.info(
130
- `Updating nextNodeId from ${config.nextNodeId} to ${newNextNodeId} (legacy last_node_id: ${lastNodeId})`,
131
- );
132
- await config.set({ nextNodeId: newNextNodeId });
124
+ // Check if the nextNodeId needs to be updated based on legacy data
125
+ const lastNodeId = legacyData.nodeData?.last_node_id;
126
+ if (typeof lastNodeId === "number" || typeof lastNodeId === "bigint") {
127
+ // Compare as BigInt to safely handle both number and bigint types
128
+ if (BigInt(config.nextNodeId) <= BigInt(lastNodeId)) {
129
+ const newNextNodeId = BigInt(lastNodeId) + 10n;
130
+ logger.info(
131
+ `Updating nextNodeId from ${config.nextNodeId} to ${newNextNodeId} (legacy last_node_id: ${lastNodeId})`,
132
+ );
133
+ await config.set({ nextNodeId: newNextNodeId });
134
+ }
133
135
  }
136
+ } finally {
137
+ await baseStorage.close();
134
138
  }
135
-
136
- await baseStorage.close();
137
139
  }
138
140
 
139
141
  await instance.initialize(legacyData?.vendorId, legacyData?.fabricId, commissionedDates);