@matter-server/ws-controller 0.2.0-alpha.0-00000000-000000000

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 (95) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +11 -0
  3. package/dist/esm/controller/AttributeDataCache.d.ts +49 -0
  4. package/dist/esm/controller/AttributeDataCache.d.ts.map +1 -0
  5. package/dist/esm/controller/AttributeDataCache.js +154 -0
  6. package/dist/esm/controller/AttributeDataCache.js.map +6 -0
  7. package/dist/esm/controller/ControllerCommandHandler.d.ts +118 -0
  8. package/dist/esm/controller/ControllerCommandHandler.d.ts.map +1 -0
  9. package/dist/esm/controller/ControllerCommandHandler.js +1015 -0
  10. package/dist/esm/controller/ControllerCommandHandler.js.map +6 -0
  11. package/dist/esm/controller/LegacyDataInjector.d.ts +95 -0
  12. package/dist/esm/controller/LegacyDataInjector.d.ts.map +1 -0
  13. package/dist/esm/controller/LegacyDataInjector.js +196 -0
  14. package/dist/esm/controller/LegacyDataInjector.js.map +6 -0
  15. package/dist/esm/controller/MatterController.d.ts +59 -0
  16. package/dist/esm/controller/MatterController.d.ts.map +1 -0
  17. package/dist/esm/controller/MatterController.js +212 -0
  18. package/dist/esm/controller/MatterController.js.map +6 -0
  19. package/dist/esm/controller/Nodes.d.ts +62 -0
  20. package/dist/esm/controller/Nodes.d.ts.map +1 -0
  21. package/dist/esm/controller/Nodes.js +85 -0
  22. package/dist/esm/controller/Nodes.js.map +6 -0
  23. package/dist/esm/controller/TestNodeCommandHandler.d.ts +84 -0
  24. package/dist/esm/controller/TestNodeCommandHandler.d.ts.map +1 -0
  25. package/dist/esm/controller/TestNodeCommandHandler.js +225 -0
  26. package/dist/esm/controller/TestNodeCommandHandler.js.map +6 -0
  27. package/dist/esm/data/VendorIDs.d.ts +7 -0
  28. package/dist/esm/data/VendorIDs.d.ts.map +1 -0
  29. package/dist/esm/data/VendorIDs.js +1237 -0
  30. package/dist/esm/data/VendorIDs.js.map +6 -0
  31. package/dist/esm/example/send-command.d.ts +7 -0
  32. package/dist/esm/example/send-command.d.ts.map +1 -0
  33. package/dist/esm/example/send-command.js +60 -0
  34. package/dist/esm/example/send-command.js.map +6 -0
  35. package/dist/esm/index.d.ts +21 -0
  36. package/dist/esm/index.d.ts.map +1 -0
  37. package/dist/esm/index.js +26 -0
  38. package/dist/esm/index.js.map +6 -0
  39. package/dist/esm/model/ModelMapper.d.ts +34 -0
  40. package/dist/esm/model/ModelMapper.d.ts.map +1 -0
  41. package/dist/esm/model/ModelMapper.js +62 -0
  42. package/dist/esm/model/ModelMapper.js.map +6 -0
  43. package/dist/esm/package.json +3 -0
  44. package/dist/esm/server/ConfigStorage.d.ts +29 -0
  45. package/dist/esm/server/ConfigStorage.d.ts.map +1 -0
  46. package/dist/esm/server/ConfigStorage.js +84 -0
  47. package/dist/esm/server/ConfigStorage.js.map +6 -0
  48. package/dist/esm/server/Converters.d.ts +53 -0
  49. package/dist/esm/server/Converters.d.ts.map +1 -0
  50. package/dist/esm/server/Converters.js +343 -0
  51. package/dist/esm/server/Converters.js.map +6 -0
  52. package/dist/esm/server/WebSocketControllerHandler.d.ts +21 -0
  53. package/dist/esm/server/WebSocketControllerHandler.d.ts.map +1 -0
  54. package/dist/esm/server/WebSocketControllerHandler.js +767 -0
  55. package/dist/esm/server/WebSocketControllerHandler.js.map +6 -0
  56. package/dist/esm/types/CommandHandler.d.ts +258 -0
  57. package/dist/esm/types/CommandHandler.d.ts.map +1 -0
  58. package/dist/esm/types/CommandHandler.js +6 -0
  59. package/dist/esm/types/CommandHandler.js.map +6 -0
  60. package/dist/esm/types/WebServer.d.ts +12 -0
  61. package/dist/esm/types/WebServer.d.ts.map +1 -0
  62. package/dist/esm/types/WebServer.js +6 -0
  63. package/dist/esm/types/WebServer.js.map +6 -0
  64. package/dist/esm/types/WebSocketMessageTypes.d.ts +478 -0
  65. package/dist/esm/types/WebSocketMessageTypes.d.ts.map +1 -0
  66. package/dist/esm/types/WebSocketMessageTypes.js +77 -0
  67. package/dist/esm/types/WebSocketMessageTypes.js.map +6 -0
  68. package/dist/esm/util/matterVersion.d.ts +12 -0
  69. package/dist/esm/util/matterVersion.d.ts.map +1 -0
  70. package/dist/esm/util/matterVersion.js +32 -0
  71. package/dist/esm/util/matterVersion.js.map +6 -0
  72. package/dist/esm/util/network.d.ts +14 -0
  73. package/dist/esm/util/network.d.ts.map +1 -0
  74. package/dist/esm/util/network.js +63 -0
  75. package/dist/esm/util/network.js.map +6 -0
  76. package/package.json +45 -0
  77. package/src/controller/AttributeDataCache.ts +194 -0
  78. package/src/controller/ControllerCommandHandler.ts +1256 -0
  79. package/src/controller/LegacyDataInjector.ts +314 -0
  80. package/src/controller/MatterController.ts +265 -0
  81. package/src/controller/Nodes.ts +115 -0
  82. package/src/controller/TestNodeCommandHandler.ts +305 -0
  83. package/src/data/VendorIDs.ts +1234 -0
  84. package/src/example/send-command.ts +82 -0
  85. package/src/index.ts +33 -0
  86. package/src/model/ModelMapper.ts +87 -0
  87. package/src/server/ConfigStorage.ts +112 -0
  88. package/src/server/Converters.ts +483 -0
  89. package/src/server/WebSocketControllerHandler.ts +917 -0
  90. package/src/tsconfig.json +7 -0
  91. package/src/types/CommandHandler.ts +270 -0
  92. package/src/types/WebServer.ts +14 -0
  93. package/src/types/WebSocketMessageTypes.ts +525 -0
  94. package/src/util/matterVersion.ts +45 -0
  95. package/src/util/network.ts +85 -0
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/data/VendorIDs.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMO,MAAM,YAAoC;AAAA,EAC7C,GAAQ;AAAA,EACR,GAAQ;AAAA,EACR,GAAQ;AAAA,EACR,GAAQ;AAAA,EACR,GAAQ;AAAA,EACR,GAAQ;AAAA,EACR,GAAQ;AAAA,EACR,GAAQ;AAAA,EACR,KAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,KAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,MAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AAAA,EACR,OAAQ;AACZ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,7 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export {};
7
+ //# sourceMappingURL=send-command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"send-command.d.ts","sourceRoot":"","sources":["../../../src/example/send-command.ts"],"names":[],"mappings":"AAAA;;;;GAIG"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import WebSocket from "ws";
7
+ const [, , url, command, argsJson] = process.argv;
8
+ if (!url || !command) {
9
+ console.error("Usage: send-command <url> <command> [args-json]");
10
+ console.error("");
11
+ console.error("Examples:");
12
+ console.error(" npx ts-node send-command.ts ws://localhost:5580/ws server_info");
13
+ console.error(` npx ts-node send-command.ts ws://localhost:5580/ws get_node '{"node_id": 1}'`);
14
+ console.error(" npx ts-node send-command.ts ws://localhost:5580/ws start_listening");
15
+ process.exit(1);
16
+ }
17
+ let args = void 0;
18
+ if (argsJson) {
19
+ try {
20
+ args = JSON.parse(argsJson);
21
+ } catch (e) {
22
+ console.error("Error parsing args JSON:", e.message);
23
+ process.exit(1);
24
+ }
25
+ }
26
+ console.log(`Connecting to ${url}...`);
27
+ const ws = new WebSocket(url);
28
+ ws.on("open", () => {
29
+ console.log("Connected!");
30
+ const message = {
31
+ message_id: `cmd-${Date.now()}`,
32
+ command,
33
+ ...args !== void 0 && { args }
34
+ };
35
+ console.log("Sending:", JSON.stringify(message, null, 2));
36
+ ws.send(JSON.stringify(message));
37
+ });
38
+ ws.on("message", (data) => {
39
+ try {
40
+ const parsed = JSON.parse(data.toString());
41
+ console.log("\n--- Received ---");
42
+ console.log(JSON.stringify(parsed, null, 2));
43
+ } catch {
44
+ console.log("\n--- Received (raw) ---");
45
+ console.log(data.toString());
46
+ }
47
+ });
48
+ ws.on("error", (error) => {
49
+ console.error("WebSocket error:", error.message);
50
+ });
51
+ ws.on("close", (code, reason) => {
52
+ console.log(`
53
+ Disconnected (code: ${code}, reason: ${reason.toString() || "none"})`);
54
+ process.exit(0);
55
+ });
56
+ process.on("SIGINT", () => {
57
+ console.log("\nClosing connection...");
58
+ ws.close();
59
+ });
60
+ //# sourceMappingURL=send-command.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/example/send-command.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAgBA,OAAO,eAAe;AAEtB,MAAM,CAAC,EAAE,EAAE,KAAK,SAAS,QAAQ,IAAI,QAAQ;AAE7C,IAAI,CAAC,OAAO,CAAC,SAAS;AAClB,UAAQ,MAAM,iDAAiD;AAC/D,UAAQ,MAAM,EAAE;AAChB,UAAQ,MAAM,WAAW;AACzB,UAAQ,MAAM,kEAAkE;AAChF,UAAQ,MAAM,gFAAkF;AAChG,UAAQ,MAAM,sEAAsE;AACpF,UAAQ,KAAK,CAAC;AAClB;AAEA,IAAI,OAAgB;AACpB,IAAI,UAAU;AACV,MAAI;AACA,WAAO,KAAK,MAAM,QAAQ;AAAA,EAC9B,SAAS,GAAG;AACR,YAAQ,MAAM,4BAA6B,EAAY,OAAO;AAC9D,YAAQ,KAAK,CAAC;AAAA,EAClB;AACJ;AAEA,QAAQ,IAAI,iBAAiB,GAAG,KAAK;AAErC,MAAM,KAAK,IAAI,UAAU,GAAG;AAE5B,GAAG,GAAG,QAAQ,MAAM;AAChB,UAAQ,IAAI,YAAY;AAExB,QAAM,UAAU;AAAA,IACZ,YAAY,OAAO,KAAK,IAAI,CAAC;AAAA,IAC7B;AAAA,IACA,GAAI,SAAS,UAAa,EAAE,KAAK;AAAA,EACrC;AAEA,UAAQ,IAAI,YAAY,KAAK,UAAU,SAAS,MAAM,CAAC,CAAC;AACxD,KAAG,KAAK,KAAK,UAAU,OAAO,CAAC;AACnC,CAAC;AAED,GAAG,GAAG,WAAW,CAAC,SAAyB;AACvC,MAAI;AACA,UAAM,SAAS,KAAK,MAAM,KAAK,SAAS,CAAC;AACzC,YAAQ,IAAI,oBAAoB;AAChC,YAAQ,IAAI,KAAK,UAAU,QAAQ,MAAM,CAAC,CAAC;AAAA,EAC/C,QAAQ;AACJ,YAAQ,IAAI,0BAA0B;AACtC,YAAQ,IAAI,KAAK,SAAS,CAAC;AAAA,EAC/B;AACJ,CAAC;AAED,GAAG,GAAG,SAAS,CAAC,UAAiB;AAC7B,UAAQ,MAAM,oBAAoB,MAAM,OAAO;AACnD,CAAC;AAED,GAAG,GAAG,SAAS,CAAC,MAAc,WAAmB;AAC7C,UAAQ,IAAI;AAAA,sBAAyB,IAAI,aAAa,OAAO,SAAS,KAAK,MAAM,GAAG;AACpF,UAAQ,KAAK,CAAC;AAClB,CAAC;AAGD,QAAQ,GAAG,UAAU,MAAM;AACvB,UAAQ,IAAI,yBAAyB;AACrC,KAAG,MAAM;AACb,CAAC;",
5
+ "names": []
6
+ }
@@ -0,0 +1,21 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ /**
7
+ * @matter-server/ws-controller - Matter controller Websocket library
8
+ */
9
+ export * from "./controller/ControllerCommandHandler.js";
10
+ export * from "./controller/LegacyDataInjector.js";
11
+ export * from "./controller/MatterController.js";
12
+ export * from "./model/ModelMapper.js";
13
+ export * from "./server/ConfigStorage.js";
14
+ export * from "./server/Converters.js";
15
+ export * from "./server/WebSocketControllerHandler.js";
16
+ export * from "./types/WebServer.js";
17
+ export * from "./types/CommandHandler.js";
18
+ export * from "./types/WebSocketMessageTypes.js";
19
+ export * from "./util/matterVersion.js";
20
+ export { Crypto, Environment, LogDestination, LogFormat, LogLevel, Logger } from "@matter/main";
21
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AAGH,cAAc,0CAA0C,CAAC;AACzD,cAAc,oCAAoC,CAAC;AACnD,cAAc,kCAAkC,CAAC;AAGjD,cAAc,wBAAwB,CAAC;AAGvC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,wBAAwB,CAAC;AACvC,cAAc,wCAAwC,CAAC;AACvD,cAAc,sBAAsB,CAAC;AAGrC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,kCAAkC,CAAC;AAGjD,cAAc,yBAAyB,CAAC;AAGxC,OAAO,EAAE,MAAM,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from "./controller/ControllerCommandHandler.js";
7
+ export * from "./controller/LegacyDataInjector.js";
8
+ export * from "./controller/MatterController.js";
9
+ export * from "./model/ModelMapper.js";
10
+ export * from "./server/ConfigStorage.js";
11
+ export * from "./server/Converters.js";
12
+ export * from "./server/WebSocketControllerHandler.js";
13
+ export * from "./types/WebServer.js";
14
+ export * from "./types/CommandHandler.js";
15
+ export * from "./types/WebSocketMessageTypes.js";
16
+ export * from "./util/matterVersion.js";
17
+ import { Crypto, Environment, LogDestination, LogFormat, LogLevel, Logger } from "@matter/main";
18
+ export {
19
+ Crypto,
20
+ Environment,
21
+ LogDestination,
22
+ LogFormat,
23
+ LogLevel,
24
+ Logger
25
+ };
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/index.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAWA,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;AAGd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AAGd,cAAc;AACd,cAAc;AAGd,cAAc;AAGd,SAAS,QAAQ,aAAa,gBAAgB,WAAW,UAAU,cAAc;",
5
+ "names": []
6
+ }
@@ -0,0 +1,34 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { ClusterId } from "@matter/main";
7
+ import { AttributeModel, ClusterModel, CommandModel, EventModel } from "@matter/model";
8
+ type AttributeDetails = {
9
+ readonly [key: string]: AttributeModel | undefined;
10
+ };
11
+ /** Metadata for Global attributes */
12
+ export declare const GlobalAttributes: AttributeDetails;
13
+ /**
14
+ * Metadata for all clusters collected in an optimized form for direct access with the incoming websocket requests.
15
+ * All names are just lowercased to prevent differences in camelize and decamelize handling.
16
+ */
17
+ export type ClusterMapEntry = {
18
+ readonly clusterId: ClusterId;
19
+ readonly model: ClusterModel;
20
+ readonly commands: {
21
+ readonly [key: string]: CommandModel | undefined;
22
+ };
23
+ readonly attributes: AttributeDetails;
24
+ readonly events: {
25
+ readonly [key: string]: EventModel | undefined;
26
+ };
27
+ };
28
+ export type ClusterMapType = {
29
+ readonly [key: string]: ClusterMapEntry | undefined;
30
+ };
31
+ /** Readonly map of all clusters frozen after initialization */
32
+ export declare const ClusterMap: ClusterMapType;
33
+ export {};
34
+ //# sourceMappingURL=ModelMapper.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ModelMapper.d.ts","sourceRoot":"","sources":["../../../src/model/ModelMapper.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAGH,cAAc,EACd,YAAY,EAEZ,YAAY,EACZ,UAAU,EAIb,MAAM,eAAe,CAAC;AAEvB,KAAK,gBAAgB,GAAG;IAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS,CAAA;CAAE,CAAC;AAE/E,qCAAqC;AACrC,eAAO,MAAM,gBAAgB,EAAE,gBAM7B,CAAC;AAEH;;;GAGG;AACH,MAAM,MAAM,eAAe,GAAG;IAC1B,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC;IAC7B,QAAQ,CAAC,QAAQ,EAAE;QAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAAA;KAAE,CAAC;IACxE,QAAQ,CAAC,UAAU,EAAE,gBAAgB,CAAC;IACtC,QAAQ,CAAC,MAAM,EAAE;QAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,GAAG,SAAS,CAAA;KAAE,CAAC;CACvE,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IACzB,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS,CAAC;CACvD,CAAC;AAwCF,+DAA+D;AAC/D,eAAO,MAAM,UAAU,EAAE,cAAiD,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { ClusterId } from "@matter/main";
7
+ import {
8
+ AcceptedCommandList,
9
+ AttributeList,
10
+ AttributeModel,
11
+ ClusterRevision,
12
+ CommandModel,
13
+ EventModel,
14
+ FeatureMap,
15
+ GeneratedCommandList,
16
+ MatterModel
17
+ } from "@matter/model";
18
+ const GlobalAttributes = Object.freeze({
19
+ clusterRevision: ClusterRevision,
20
+ featureMap: FeatureMap,
21
+ attributeList: AttributeList,
22
+ acceptedCommandList: AcceptedCommandList,
23
+ generatedCommandList: GeneratedCommandList
24
+ });
25
+ const clusterMapBuilder = {};
26
+ MatterModel.standard.clusters.forEach((cluster) => {
27
+ if (cluster.id === void 0) {
28
+ return;
29
+ }
30
+ const aces = cluster.allAces;
31
+ const commands = {};
32
+ const attributes = {};
33
+ const events = {};
34
+ aces.forEach((ace) => {
35
+ const name = ace.name.toLowerCase();
36
+ if (ace instanceof CommandModel) {
37
+ commands[name] = ace;
38
+ commands[ace.id] = ace;
39
+ } else if (ace instanceof AttributeModel) {
40
+ attributes[name] = ace;
41
+ attributes[ace.id] = ace;
42
+ } else if (ace instanceof EventModel) {
43
+ events[name] = ace;
44
+ events[ace.id] = ace;
45
+ }
46
+ });
47
+ const clusterData = Object.freeze({
48
+ clusterId: ClusterId(cluster.id),
49
+ model: cluster,
50
+ commands: Object.freeze(commands),
51
+ attributes: Object.freeze(attributes),
52
+ events: Object.freeze(events)
53
+ });
54
+ clusterMapBuilder[cluster.name.toLowerCase()] = clusterData;
55
+ clusterMapBuilder[cluster.id] = clusterData;
56
+ });
57
+ const ClusterMap = Object.freeze(clusterMapBuilder);
58
+ export {
59
+ ClusterMap,
60
+ GlobalAttributes
61
+ };
62
+ //# sourceMappingURL=ModelMapper.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/model/ModelMapper.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,iBAAiB;AAC1B;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AAKA,MAAM,mBAAqC,OAAO,OAAO;AAAA,EAC5D,iBAAiB;AAAA,EACjB,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,qBAAqB;AAAA,EACrB,sBAAsB;AAC1B,CAAC;AAmBD,MAAM,oBAAoE,CAAC;AAE3E,YAAY,SAAS,SAAS,QAAQ,aAAW;AAC7C,MAAI,QAAQ,OAAO,QAAW;AAC1B;AAAA,EACJ;AACA,QAAM,OAAO,QAAQ;AACrB,QAAM,WAAwD,CAAC;AAC/D,QAAM,aAA4D,CAAC;AACnE,QAAM,SAAoD,CAAC;AAE3D,OAAK,QAAQ,SAAO;AAChB,UAAM,OAAO,IAAI,KAAK,YAAY;AAClC,QAAI,eAAe,cAAc;AAC7B,eAAS,IAAI,IAAI;AACjB,eAAS,IAAI,EAAE,IAAI;AAAA,IACvB,WAAW,eAAe,gBAAgB;AACtC,iBAAW,IAAI,IAAI;AACnB,iBAAW,IAAI,EAAE,IAAI;AAAA,IACzB,WAAW,eAAe,YAAY;AAClC,aAAO,IAAI,IAAI;AACf,aAAO,IAAI,EAAE,IAAI;AAAA,IACrB;AAAA,EACJ,CAAC;AAED,QAAM,cAA+B,OAAO,OAAO;AAAA,IAC/C,WAAW,UAAU,QAAQ,EAAE;AAAA,IAC/B,OAAO;AAAA,IACP,UAAU,OAAO,OAAO,QAAQ;AAAA,IAChC,YAAY,OAAO,OAAO,UAAU;AAAA,IACpC,QAAQ,OAAO,OAAO,MAAM;AAAA,EAChC,CAAC;AAED,oBAAkB,QAAQ,KAAK,YAAY,CAAC,IAAI;AAChD,oBAAkB,QAAQ,EAAE,IAAI;AACpC,CAAC;AAGM,MAAM,aAA6B,OAAO,OAAO,iBAAiB;",
5
+ "names": []
6
+ }
@@ -0,0 +1,3 @@
1
+ {
2
+ "type": "module"
3
+ }
@@ -0,0 +1,29 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Environment, StorageService } from "@matter/main";
7
+ interface ConfigData {
8
+ fabricLabel: string;
9
+ nextNodeId: number;
10
+ wifiSsid?: string;
11
+ wifiCredentials?: string;
12
+ threadDataset?: string;
13
+ }
14
+ export declare class ConfigStorage {
15
+ #private;
16
+ static create(env: Environment): Promise<ConfigStorage>;
17
+ constructor(env: Environment);
18
+ get service(): StorageService;
19
+ open(): Promise<void>;
20
+ get fabricLabel(): string;
21
+ get nextNodeId(): number;
22
+ get wifiSsid(): string | undefined;
23
+ get wifiCredentials(): string | undefined;
24
+ get threadDataset(): string | undefined;
25
+ set(data: Partial<ConfigData>): Promise<void>;
26
+ close(): Promise<void>;
27
+ }
28
+ export {};
29
+ //# sourceMappingURL=ConfigStorage.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfigStorage.d.ts","sourceRoot":"","sources":["../../../src/server/ConfigStorage.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAA0C,cAAc,EAAE,MAAM,cAAc,CAAC;AAInG,UAAU,UAAU;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,aAAa,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,qBAAa,aAAa;;WAaT,MAAM,CAAC,GAAG,EAAE,WAAW;gBAMxB,GAAG,EAAE,WAAW;IAI5B,IAAI,OAAO,mBAKV;IAEK,IAAI;IA0BV,IAAI,WAAW,WAEd;IACD,IAAI,UAAU,WAEb;IACD,IAAI,QAAQ,uBAEX;IACD,IAAI,eAAe,uBAElB;IACD,IAAI,aAAa,uBAEhB;IAEK,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC;IAgB7B,KAAK;CAKd"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Logger, StorageService } from "@matter/main";
7
+ const logger = new Logger("ConfigStorage");
8
+ class ConfigStorage {
9
+ #env;
10
+ #storageService;
11
+ #storage;
12
+ #configStore;
13
+ #data = {
14
+ nextNodeId: 2,
15
+ // 2 because controller is Node Id 1
16
+ fabricLabel: "HomeAssistant",
17
+ wifiSsid: void 0,
18
+ wifiCredentials: void 0,
19
+ threadDataset: void 0
20
+ };
21
+ static async create(env) {
22
+ const instance = new ConfigStorage(env);
23
+ await instance.open();
24
+ return instance;
25
+ }
26
+ constructor(env) {
27
+ this.#env = env;
28
+ }
29
+ get service() {
30
+ if (this.#storageService === void 0) {
31
+ throw new Error("Storage not open");
32
+ }
33
+ return this.#storageService;
34
+ }
35
+ async open() {
36
+ this.#storageService = this.#env.get(StorageService);
37
+ logger.info(`Storage location: ${this.#storageService.location} (Directory)`);
38
+ this.#storage = await this.#storageService.open("config");
39
+ this.#configStore = this.#storage.createContext("values");
40
+ const fabricLabel = await this.#configStore.has("fabricLabel") ? await this.#configStore.get("fabricLabel") : this.#env.vars.string("fabricLabel") ?? this.#data.fabricLabel;
41
+ const nextNodeId = await this.#configStore.get("nextNodeId", this.#data.nextNodeId);
42
+ const wifiSsid = await this.#configStore.has("wifiSsid") ? await this.#configStore.get("wifiSsid", "") : void 0;
43
+ const wifiCredentials = await this.#configStore.has("wifiCredentials") ? await this.#configStore.get("wifiCredentials", "") : void 0;
44
+ const threadDataset = await this.#configStore.has("threadDataset") ? await this.#configStore.get("threadDataset", "") : void 0;
45
+ await this.set({ fabricLabel, nextNodeId, wifiSsid, wifiCredentials, threadDataset });
46
+ }
47
+ get fabricLabel() {
48
+ return this.#data.fabricLabel;
49
+ }
50
+ get nextNodeId() {
51
+ return this.#data.nextNodeId;
52
+ }
53
+ get wifiSsid() {
54
+ return this.#data.wifiSsid;
55
+ }
56
+ get wifiCredentials() {
57
+ return this.#data.wifiCredentials;
58
+ }
59
+ get threadDataset() {
60
+ return this.#data.threadDataset;
61
+ }
62
+ async set(data) {
63
+ if (!this.#configStore) {
64
+ throw new Error("Storage not open");
65
+ }
66
+ for (const key of Object.keys(data)) {
67
+ if (!(key in this.#data)) {
68
+ throw new Error(`Invalid key: ${key}`);
69
+ }
70
+ this.#data[key] = data[key];
71
+ logger.info(`Set config key ${key} to ${data[key]}`);
72
+ await this.#configStore.set(key, data[key]);
73
+ }
74
+ }
75
+ async close() {
76
+ if (this.#storage) {
77
+ await this.#storage.close();
78
+ }
79
+ }
80
+ }
81
+ export {
82
+ ConfigStorage
83
+ };
84
+ //# sourceMappingURL=ConfigStorage.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/server/ConfigStorage.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAsB,QAAwC,sBAAsB;AAEpF,MAAM,SAAS,IAAI,OAAO,eAAe;AAUlC,MAAM,cAAc;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACS,QAAoB;AAAA,IACzB,YAAY;AAAA;AAAA,IACZ,aAAa;AAAA,IACb,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB,eAAe;AAAA,EACnB;AAAA,EAEA,aAAa,OAAO,KAAkB;AAClC,UAAM,WAAW,IAAI,cAAc,GAAG;AACtC,UAAM,SAAS,KAAK;AACpB,WAAO;AAAA,EACX;AAAA,EAEA,YAAY,KAAkB;AAC1B,SAAK,OAAO;AAAA,EAChB;AAAA,EAEA,IAAI,UAAU;AACV,QAAI,KAAK,oBAAoB,QAAW;AACpC,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACtC;AACA,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,MAAM,OAAO;AACT,SAAK,kBAAkB,KAAK,KAAK,IAAI,cAAc;AAInD,WAAO,KAAK,qBAAqB,KAAK,gBAAgB,QAAQ,cAAc;AAC5E,SAAK,WAAW,MAAM,KAAK,gBAAgB,KAAK,QAAQ;AACxD,SAAK,eAAe,KAAK,SAAS,cAAc,QAAQ;AAExD,UAAM,cAAe,MAAM,KAAK,aAAa,IAAI,aAAa,IACxD,MAAM,KAAK,aAAa,IAAY,aAAa,IAChD,KAAK,KAAK,KAAK,OAAO,aAAa,KAAK,KAAK,MAAM;AAC1D,UAAM,aAAa,MAAM,KAAK,aAAa,IAAY,cAAc,KAAK,MAAM,UAAU;AAE1F,UAAM,WAAY,MAAM,KAAK,aAAa,IAAI,UAAU,IAClD,MAAM,KAAK,aAAa,IAAY,YAAY,EAAE,IAClD;AACN,UAAM,kBAAmB,MAAM,KAAK,aAAa,IAAI,iBAAiB,IAChE,MAAM,KAAK,aAAa,IAAY,mBAAmB,EAAE,IACzD;AACN,UAAM,gBAAiB,MAAM,KAAK,aAAa,IAAI,eAAe,IAC5D,MAAM,KAAK,aAAa,IAAY,iBAAiB,EAAE,IACvD;AACN,UAAM,KAAK,IAAI,EAAE,aAAa,YAAY,UAAU,iBAAiB,cAAc,CAAC;AAAA,EACxF;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EACA,IAAI,aAAa;AACb,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EACA,IAAI,WAAW;AACX,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EACA,IAAI,kBAAkB;AAClB,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EACA,IAAI,gBAAgB;AAChB,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EAEA,MAAM,IAAI,MAA2B;AACjC,QAAI,CAAC,KAAK,cAAc;AACpB,YAAM,IAAI,MAAM,kBAAkB;AAAA,IACtC;AAEA,eAAW,OAAO,OAAO,KAAK,IAAI,GAAG;AACjC,UAAI,EAAE,OAAO,KAAK,QAAQ;AACtB,cAAM,IAAI,MAAM,gBAAgB,GAAG,EAAE;AAAA,MACzC;AAEA,WAAK,MAAM,GAAG,IAAI,KAAK,GAAG;AAC1B,aAAO,KAAK,kBAAkB,GAAG,OAAO,KAAK,GAAuB,CAAC,EAAE;AACvE,YAAM,KAAK,aAAa,IAAI,KAAK,KAAK,GAAuB,CAAC;AAAA,IAClE;AAAA,EACJ;AAAA,EAEA,MAAM,QAAQ;AACV,QAAI,KAAK,UAAU;AACf,YAAM,KAAK,SAAS,MAAM;AAAA,IAC9B;AAAA,EACJ;AACJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,53 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2025-2026 Open Home Foundation
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { AttributeId, ClusterId } from "@matter/main";
7
+ import { ClusterModel, ValueModel } from "@matter/main/model";
8
+ import { EndpointNumber } from "@matter/main/types";
9
+ /** Convert stringified numbers in hex and normal style to either number or bigint. */
10
+ export declare function parseNumber(number: string): number | bigint;
11
+ /**
12
+ * Converts tag-based WebSocket data (with numeric keys) back to Matter.js data format (with camelCased names).
13
+ * This is the reverse of convertMatterToWebSocketTagBased.
14
+ */
15
+ export declare function convertWebSocketTagBasedToMatter(value: unknown, model: ValueModel | undefined, clusterModel: ClusterModel): unknown;
16
+ /**
17
+ * Converts camelized name-based WebSocket data to Matter.js data format. Mainly to ensure binary and epoch data
18
+ */
19
+ export declare function convertCommandDataToMatter(value: unknown, model: ValueModel | undefined, clusterModel: ClusterModel): unknown;
20
+ /**
21
+ * Uses the matter.js Model to convert the response data for read, subscribe and invoke into a tag-based response
22
+ * including conversion of data types.
23
+ */
24
+ export declare function convertMatterToWebSocketTagBased(value: unknown, model: ValueModel | undefined, clusterModel: ClusterModel | undefined): unknown;
25
+ /**
26
+ * Serialize to JSON with BigInt support.
27
+ * - BigInt values within safe integer range are converted to numbers
28
+ * - Large BigInt values are output as raw decimal numbers (not quoted strings)
29
+ */
30
+ export declare function toBigIntAwareJson(object: object, spaces?: number): string;
31
+ /**
32
+ * Parse JSON with BigInt support for large numbers that exceed JavaScript precision.
33
+ * Numbers with 15+ digits that exceed MAX_SAFE_INTEGER are converted to BigInt.
34
+ */
35
+ export declare function parseBigIntAwareJson(json: string): unknown;
36
+ /** Use the matter.js model to convert the incoming data for write and invoke commands into the expected format. */
37
+ export declare function convertWebsocketDataToMatter(value: any, model: ValueModel): any;
38
+ export declare function getDateAsString(date: Date): string;
39
+ export declare function buildAttributePath(endpointId: number, clusterId: number, attributeId: number): string;
40
+ /**
41
+ * Parse an attribute path string into its components.
42
+ * Supports wildcards (*) for endpoint, cluster, and attribute IDs.
43
+ * Non-numeric values are treated as wildcards and returned as undefined.
44
+ *
45
+ * @param path - Attribute path string in format "endpoint/cluster/attribute"
46
+ * @returns Object with endpointId, clusterId, attributeId - each undefined if wildcard
47
+ */
48
+ export declare function splitAttributePath(path: string): {
49
+ endpointId: EndpointNumber | undefined;
50
+ clusterId: ClusterId | undefined;
51
+ attributeId: AttributeId | undefined;
52
+ };
53
+ //# sourceMappingURL=Converters.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Converters.d.ts","sourceRoot":"","sources":["../../../src/server/Converters.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAmB,SAAS,EAAoB,MAAM,cAAc,CAAC;AACzF,OAAO,EAAE,YAAY,EAAc,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC1E,OAAO,EAAE,cAAc,EAAiD,MAAM,oBAAoB,CAAC;AAInG,sFAAsF;AACtF,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAM3D;AA0DD;;;GAGG;AACH,wBAAgB,gCAAgC,CAC5C,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,YAAY,EAAE,YAAY,GAC3B,OAAO,CAqCT;AAED;;GAEG;AACH,wBAAgB,0BAA0B,CACtC,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,YAAY,EAAE,YAAY,GAC3B,OAAO,CAoCT;AAED;;;GAGG;AACH,wBAAgB,gCAAgC,CAC5C,KAAK,EAAE,OAAO,EACd,KAAK,EAAE,UAAU,GAAG,SAAS,EAC7B,YAAY,EAAE,YAAY,GAAG,SAAS,GACvC,OAAO,CA4ET;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CA2BzE;AAKD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAmB1D;AAeD,mHAAmH;AACnH,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,GAAG,EAAE,KAAK,EAAE,UAAU,GAAG,GAAG,CA2G/E;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,UAWzC;AAED,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAErG;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG;IAC9C,UAAU,EAAE,cAAc,GAAG,SAAS,CAAC;IACvC,SAAS,EAAE,SAAS,GAAG,SAAS,CAAC;IACjC,WAAW,EAAE,WAAW,GAAG,SAAS,CAAC;CACxC,CAaA"}