@matter/general 0.11.0-alpha.0-20241005-e3e4e4a7a

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 (692) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +3 -0
  3. package/dist/cjs/MatterError.d.ts +95 -0
  4. package/dist/cjs/MatterError.d.ts.map +1 -0
  5. package/dist/cjs/MatterError.js +177 -0
  6. package/dist/cjs/MatterError.js.map +6 -0
  7. package/dist/cjs/codec/Base64Codec.d.ts +23 -0
  8. package/dist/cjs/codec/Base64Codec.d.ts.map +1 -0
  9. package/dist/cjs/codec/Base64Codec.js +134 -0
  10. package/dist/cjs/codec/Base64Codec.js.map +6 -0
  11. package/dist/cjs/codec/DerCodec.d.ts +83 -0
  12. package/dist/cjs/codec/DerCodec.d.ts.map +1 -0
  13. package/dist/cjs/codec/DerCodec.js +286 -0
  14. package/dist/cjs/codec/DerCodec.js.map +6 -0
  15. package/dist/cjs/codec/DerTypes.d.ts +73 -0
  16. package/dist/cjs/codec/DerTypes.d.ts.map +1 -0
  17. package/dist/cjs/codec/DerTypes.js +132 -0
  18. package/dist/cjs/codec/DerTypes.js.map +6 -0
  19. package/dist/cjs/codec/DnsCodec.d.ts +86 -0
  20. package/dist/cjs/codec/DnsCodec.d.ts.map +1 -0
  21. package/dist/cjs/codec/DnsCodec.js +355 -0
  22. package/dist/cjs/codec/DnsCodec.js.map +6 -0
  23. package/dist/cjs/codec/index.d.ts +10 -0
  24. package/dist/cjs/codec/index.d.ts.map +1 -0
  25. package/dist/cjs/codec/index.js +27 -0
  26. package/dist/cjs/codec/index.js.map +6 -0
  27. package/dist/cjs/crypto/Crypto.d.ts +169 -0
  28. package/dist/cjs/crypto/Crypto.d.ts.map +1 -0
  29. package/dist/cjs/crypto/Crypto.js +103 -0
  30. package/dist/cjs/crypto/Crypto.js.map +6 -0
  31. package/dist/cjs/crypto/CryptoConstants.d.ts +19 -0
  32. package/dist/cjs/crypto/CryptoConstants.d.ts.map +1 -0
  33. package/dist/cjs/crypto/CryptoConstants.js +48 -0
  34. package/dist/cjs/crypto/CryptoConstants.js.map +6 -0
  35. package/dist/cjs/crypto/Key.d.ts +171 -0
  36. package/dist/cjs/crypto/Key.d.ts.map +1 -0
  37. package/dist/cjs/crypto/Key.js +356 -0
  38. package/dist/cjs/crypto/Key.js.map +6 -0
  39. package/dist/cjs/crypto/Spake2p.d.ts +40 -0
  40. package/dist/cjs/crypto/Spake2p.d.ts.map +1 -0
  41. package/dist/cjs/crypto/Spake2p.js +128 -0
  42. package/dist/cjs/crypto/Spake2p.js.map +6 -0
  43. package/dist/cjs/crypto/index.d.ts +10 -0
  44. package/dist/cjs/crypto/index.d.ts.map +1 -0
  45. package/dist/cjs/crypto/index.js +27 -0
  46. package/dist/cjs/crypto/index.js.map +6 -0
  47. package/dist/cjs/environment/Environment.d.ts +96 -0
  48. package/dist/cjs/environment/Environment.d.ts.map +1 -0
  49. package/dist/cjs/environment/Environment.js +199 -0
  50. package/dist/cjs/environment/Environment.js.map +6 -0
  51. package/dist/cjs/environment/Environmental.d.ts +52 -0
  52. package/dist/cjs/environment/Environmental.d.ts.map +1 -0
  53. package/dist/cjs/environment/Environmental.js +33 -0
  54. package/dist/cjs/environment/Environmental.js.map +6 -0
  55. package/dist/cjs/environment/RuntimeService.d.ts +107 -0
  56. package/dist/cjs/environment/RuntimeService.d.ts.map +1 -0
  57. package/dist/cjs/environment/RuntimeService.js +222 -0
  58. package/dist/cjs/environment/RuntimeService.js.map +6 -0
  59. package/dist/cjs/environment/VariableService.d.ts +58 -0
  60. package/dist/cjs/environment/VariableService.d.ts.map +1 -0
  61. package/dist/cjs/environment/VariableService.js +257 -0
  62. package/dist/cjs/environment/VariableService.js.map +6 -0
  63. package/dist/cjs/environment/index.d.ts +10 -0
  64. package/dist/cjs/environment/index.d.ts.map +1 -0
  65. package/dist/cjs/environment/index.js +27 -0
  66. package/dist/cjs/environment/index.js.map +6 -0
  67. package/dist/cjs/index.d.ts +17 -0
  68. package/dist/cjs/index.d.ts.map +1 -0
  69. package/dist/cjs/index.js +34 -0
  70. package/dist/cjs/index.js.map +6 -0
  71. package/dist/cjs/log/Diagnostic.d.ts +140 -0
  72. package/dist/cjs/log/Diagnostic.d.ts.map +1 -0
  73. package/dist/cjs/log/Diagnostic.js +297 -0
  74. package/dist/cjs/log/Diagnostic.js.map +6 -0
  75. package/dist/cjs/log/DiagnosticSource.d.ts +16 -0
  76. package/dist/cjs/log/DiagnosticSource.d.ts.map +1 -0
  77. package/dist/cjs/log/DiagnosticSource.js +45 -0
  78. package/dist/cjs/log/DiagnosticSource.js.map +6 -0
  79. package/dist/cjs/log/LogFormat.d.ts +33 -0
  80. package/dist/cjs/log/LogFormat.d.ts.map +1 -0
  81. package/dist/cjs/log/LogFormat.js +503 -0
  82. package/dist/cjs/log/LogFormat.js.map +6 -0
  83. package/dist/cjs/log/LogLevel.d.ts +18 -0
  84. package/dist/cjs/log/LogLevel.d.ts.map +1 -0
  85. package/dist/cjs/log/LogLevel.js +57 -0
  86. package/dist/cjs/log/LogLevel.js.map +6 -0
  87. package/dist/cjs/log/Logger.d.ts +220 -0
  88. package/dist/cjs/log/Logger.d.ts.map +1 -0
  89. package/dist/cjs/log/Logger.js +401 -0
  90. package/dist/cjs/log/Logger.js.map +6 -0
  91. package/dist/cjs/log/index.d.ts +11 -0
  92. package/dist/cjs/log/index.d.ts.map +1 -0
  93. package/dist/cjs/log/index.js +28 -0
  94. package/dist/cjs/log/index.js.map +6 -0
  95. package/dist/cjs/math/ReedSolomon.d.ts +11 -0
  96. package/dist/cjs/math/ReedSolomon.d.ts.map +1 -0
  97. package/dist/cjs/math/ReedSolomon.js +109 -0
  98. package/dist/cjs/math/ReedSolomon.js.map +6 -0
  99. package/dist/cjs/math/Verhoeff.d.ts +17 -0
  100. package/dist/cjs/math/Verhoeff.d.ts.map +1 -0
  101. package/dist/cjs/math/Verhoeff.js +64 -0
  102. package/dist/cjs/math/Verhoeff.js.map +6 -0
  103. package/dist/cjs/math/index.d.ts +8 -0
  104. package/dist/cjs/math/index.d.ts.map +1 -0
  105. package/dist/cjs/math/index.js +25 -0
  106. package/dist/cjs/math/index.js.map +6 -0
  107. package/dist/cjs/net/Channel.d.ts +24 -0
  108. package/dist/cjs/net/Channel.d.ts.map +1 -0
  109. package/dist/cjs/net/Channel.js +35 -0
  110. package/dist/cjs/net/Channel.js.map +6 -0
  111. package/dist/cjs/net/NetInterface.d.ts +24 -0
  112. package/dist/cjs/net/NetInterface.d.ts.map +1 -0
  113. package/dist/cjs/net/NetInterface.js +42 -0
  114. package/dist/cjs/net/NetInterface.js.map +6 -0
  115. package/dist/cjs/net/Network.d.ts +54 -0
  116. package/dist/cjs/net/Network.d.ts.map +1 -0
  117. package/dist/cjs/net/Network.js +50 -0
  118. package/dist/cjs/net/Network.js.map +6 -0
  119. package/dist/cjs/net/ServerAddress.d.ts +17 -0
  120. package/dist/cjs/net/ServerAddress.d.ts.map +1 -0
  121. package/dist/cjs/net/ServerAddress.js +32 -0
  122. package/dist/cjs/net/ServerAddress.js.map +6 -0
  123. package/dist/cjs/net/TransportInterface.d.ts +40 -0
  124. package/dist/cjs/net/TransportInterface.d.ts.map +1 -0
  125. package/dist/cjs/net/TransportInterface.js +55 -0
  126. package/dist/cjs/net/TransportInterface.js.map +6 -0
  127. package/dist/cjs/net/UdpChannel.d.ts +25 -0
  128. package/dist/cjs/net/UdpChannel.d.ts.map +1 -0
  129. package/dist/cjs/net/UdpChannel.js +30 -0
  130. package/dist/cjs/net/UdpChannel.js.map +6 -0
  131. package/dist/cjs/net/UdpInterface.d.ts +35 -0
  132. package/dist/cjs/net/UdpInterface.d.ts.map +1 -0
  133. package/dist/cjs/net/UdpInterface.js +82 -0
  134. package/dist/cjs/net/UdpInterface.js.map +6 -0
  135. package/dist/cjs/net/UdpMulticastServer.d.ts +30 -0
  136. package/dist/cjs/net/UdpMulticastServer.d.ts.map +1 -0
  137. package/dist/cjs/net/UdpMulticastServer.js +133 -0
  138. package/dist/cjs/net/UdpMulticastServer.js.map +6 -0
  139. package/dist/cjs/net/index.d.ts +17 -0
  140. package/dist/cjs/net/index.d.ts.map +1 -0
  141. package/dist/cjs/net/index.js +34 -0
  142. package/dist/cjs/net/index.js.map +6 -0
  143. package/dist/cjs/net/mock/MockNetwork.d.ts +19 -0
  144. package/dist/cjs/net/mock/MockNetwork.d.ts.map +1 -0
  145. package/dist/cjs/net/mock/MockNetwork.js +56 -0
  146. package/dist/cjs/net/mock/MockNetwork.js.map +6 -0
  147. package/dist/cjs/net/mock/MockUdpChannel.d.ts +27 -0
  148. package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -0
  149. package/dist/cjs/net/mock/MockUdpChannel.js +76 -0
  150. package/dist/cjs/net/mock/MockUdpChannel.js.map +6 -0
  151. package/dist/cjs/net/mock/NetworkSimulator.d.ts +18 -0
  152. package/dist/cjs/net/mock/NetworkSimulator.d.ts.map +1 -0
  153. package/dist/cjs/net/mock/NetworkSimulator.js +73 -0
  154. package/dist/cjs/net/mock/NetworkSimulator.js.map +6 -0
  155. package/dist/cjs/package.json +6 -0
  156. package/dist/cjs/polyfills/disposable.d.ts +7 -0
  157. package/dist/cjs/polyfills/disposable.d.ts.map +1 -0
  158. package/dist/cjs/polyfills/disposable.js +19 -0
  159. package/dist/cjs/polyfills/disposable.js.map +6 -0
  160. package/dist/cjs/polyfills/index.d.ts +7 -0
  161. package/dist/cjs/polyfills/index.d.ts.map +1 -0
  162. package/dist/cjs/polyfills/index.js +8 -0
  163. package/dist/cjs/polyfills/index.js.map +6 -0
  164. package/dist/cjs/storage/Storage.d.ts +54 -0
  165. package/dist/cjs/storage/Storage.d.ts.map +1 -0
  166. package/dist/cjs/storage/Storage.js +38 -0
  167. package/dist/cjs/storage/Storage.js.map +6 -0
  168. package/dist/cjs/storage/StorageBackendMemory.d.ts +27 -0
  169. package/dist/cjs/storage/StorageBackendMemory.d.ts.map +1 -0
  170. package/dist/cjs/storage/StorageBackendMemory.js +131 -0
  171. package/dist/cjs/storage/StorageBackendMemory.js.map +6 -0
  172. package/dist/cjs/storage/StorageContext.d.ts +26 -0
  173. package/dist/cjs/storage/StorageContext.d.ts.map +1 -0
  174. package/dist/cjs/storage/StorageContext.js +117 -0
  175. package/dist/cjs/storage/StorageContext.js.map +6 -0
  176. package/dist/cjs/storage/StorageManager.d.ts +17 -0
  177. package/dist/cjs/storage/StorageManager.d.ts.map +1 -0
  178. package/dist/cjs/storage/StorageManager.js +59 -0
  179. package/dist/cjs/storage/StorageManager.js.map +6 -0
  180. package/dist/cjs/storage/StorageService.d.ts +35 -0
  181. package/dist/cjs/storage/StorageService.d.ts.map +1 -0
  182. package/dist/cjs/storage/StorageService.js +82 -0
  183. package/dist/cjs/storage/StorageService.js.map +6 -0
  184. package/dist/cjs/storage/StringifyTools.d.ts +16 -0
  185. package/dist/cjs/storage/StringifyTools.d.ts.map +1 -0
  186. package/dist/cjs/storage/StringifyTools.js +105 -0
  187. package/dist/cjs/storage/StringifyTools.js.map +6 -0
  188. package/dist/cjs/storage/index.d.ts +12 -0
  189. package/dist/cjs/storage/index.d.ts.map +1 -0
  190. package/dist/cjs/storage/index.js +29 -0
  191. package/dist/cjs/storage/index.js.map +6 -0
  192. package/dist/cjs/time/Time.d.ts +66 -0
  193. package/dist/cjs/time/Time.d.ts.map +1 -0
  194. package/dist/cjs/time/Time.js +137 -0
  195. package/dist/cjs/time/Time.js.map +6 -0
  196. package/dist/cjs/time/index.d.ts +7 -0
  197. package/dist/cjs/time/index.d.ts.map +1 -0
  198. package/dist/cjs/time/index.js +24 -0
  199. package/dist/cjs/time/index.js.map +6 -0
  200. package/dist/cjs/tsconfig.tsbuildinfo +1 -0
  201. package/dist/cjs/util/Array.d.ts +12 -0
  202. package/dist/cjs/util/Array.d.ts.map +1 -0
  203. package/dist/cjs/util/Array.js +24 -0
  204. package/dist/cjs/util/Array.js.map +6 -0
  205. package/dist/cjs/util/Bytes.d.ts +23 -0
  206. package/dist/cjs/util/Bytes.d.ts.map +1 -0
  207. package/dist/cjs/util/Bytes.js +95 -0
  208. package/dist/cjs/util/Bytes.js.map +6 -0
  209. package/dist/cjs/util/Cache.d.ts +33 -0
  210. package/dist/cjs/util/Cache.d.ts.map +1 -0
  211. package/dist/cjs/util/Cache.js +114 -0
  212. package/dist/cjs/util/Cache.js.map +6 -0
  213. package/dist/cjs/util/Construction.d.ts +182 -0
  214. package/dist/cjs/util/Construction.d.ts.map +1 -0
  215. package/dist/cjs/util/Construction.js +417 -0
  216. package/dist/cjs/util/Construction.js.map +6 -0
  217. package/dist/cjs/util/DataReadQueue.d.ts +17 -0
  218. package/dist/cjs/util/DataReadQueue.d.ts.map +1 -0
  219. package/dist/cjs/util/DataReadQueue.js +76 -0
  220. package/dist/cjs/util/DataReadQueue.js.map +6 -0
  221. package/dist/cjs/util/DataReader.d.ts +32 -0
  222. package/dist/cjs/util/DataReader.d.ts.map +1 -0
  223. package/dist/cjs/util/DataReader.js +101 -0
  224. package/dist/cjs/util/DataReader.js.map +6 -0
  225. package/dist/cjs/util/DataWriter.d.ts +26 -0
  226. package/dist/cjs/util/DataWriter.d.ts.map +1 -0
  227. package/dist/cjs/util/DataWriter.js +114 -0
  228. package/dist/cjs/util/DataWriter.js.map +6 -0
  229. package/dist/cjs/util/DeepCopy.d.ts +12 -0
  230. package/dist/cjs/util/DeepCopy.d.ts.map +1 -0
  231. package/dist/cjs/util/DeepCopy.js +58 -0
  232. package/dist/cjs/util/DeepCopy.js.map +6 -0
  233. package/dist/cjs/util/DeepEqual.d.ts +7 -0
  234. package/dist/cjs/util/DeepEqual.d.ts.map +1 -0
  235. package/dist/cjs/util/DeepEqual.js +55 -0
  236. package/dist/cjs/util/DeepEqual.js.map +6 -0
  237. package/dist/cjs/util/Error.d.ts +12 -0
  238. package/dist/cjs/util/Error.d.ts.map +1 -0
  239. package/dist/cjs/util/Error.js +41 -0
  240. package/dist/cjs/util/Error.js.map +6 -0
  241. package/dist/cjs/util/GeneratedClass.d.ts +62 -0
  242. package/dist/cjs/util/GeneratedClass.d.ts.map +1 -0
  243. package/dist/cjs/util/GeneratedClass.js +117 -0
  244. package/dist/cjs/util/GeneratedClass.js.map +6 -0
  245. package/dist/cjs/util/Introspection.d.ts +38 -0
  246. package/dist/cjs/util/Introspection.d.ts.map +1 -0
  247. package/dist/cjs/util/Introspection.js +85 -0
  248. package/dist/cjs/util/Introspection.js.map +6 -0
  249. package/dist/cjs/util/Ip.d.ts +8 -0
  250. package/dist/cjs/util/Ip.d.ts.map +1 -0
  251. package/dist/cjs/util/Ip.js +90 -0
  252. package/dist/cjs/util/Ip.js.map +6 -0
  253. package/dist/cjs/util/Lifecycle.d.ts +97 -0
  254. package/dist/cjs/util/Lifecycle.d.ts.map +1 -0
  255. package/dist/cjs/util/Lifecycle.js +89 -0
  256. package/dist/cjs/util/Lifecycle.js.map +6 -0
  257. package/dist/cjs/util/Multiplex.d.ts +14 -0
  258. package/dist/cjs/util/Multiplex.d.ts.map +1 -0
  259. package/dist/cjs/util/Multiplex.js +22 -0
  260. package/dist/cjs/util/Multiplex.js.map +6 -0
  261. package/dist/cjs/util/Mutex.d.ts +34 -0
  262. package/dist/cjs/util/Mutex.d.ts.map +1 -0
  263. package/dist/cjs/util/Mutex.js +105 -0
  264. package/dist/cjs/util/Mutex.js.map +6 -0
  265. package/dist/cjs/util/NamedHandler.d.ts +21 -0
  266. package/dist/cjs/util/NamedHandler.d.ts.map +1 -0
  267. package/dist/cjs/util/NamedHandler.js +54 -0
  268. package/dist/cjs/util/NamedHandler.js.map +6 -0
  269. package/dist/cjs/util/Number.d.ts +37 -0
  270. package/dist/cjs/util/Number.d.ts.map +1 -0
  271. package/dist/cjs/util/Number.js +97 -0
  272. package/dist/cjs/util/Number.js.map +6 -0
  273. package/dist/cjs/util/Observable.d.ts +197 -0
  274. package/dist/cjs/util/Observable.d.ts.map +1 -0
  275. package/dist/cjs/util/Observable.js +340 -0
  276. package/dist/cjs/util/Observable.js.map +6 -0
  277. package/dist/cjs/util/PromiseQueue.d.ts +25 -0
  278. package/dist/cjs/util/PromiseQueue.d.ts.map +1 -0
  279. package/dist/cjs/util/PromiseQueue.js +107 -0
  280. package/dist/cjs/util/PromiseQueue.js.map +6 -0
  281. package/dist/cjs/util/Promises.d.ts +68 -0
  282. package/dist/cjs/util/Promises.d.ts.map +1 -0
  283. package/dist/cjs/util/Promises.js +199 -0
  284. package/dist/cjs/util/Promises.js.map +6 -0
  285. package/dist/cjs/util/Set.d.ts +60 -0
  286. package/dist/cjs/util/Set.d.ts.map +1 -0
  287. package/dist/cjs/util/Set.js +145 -0
  288. package/dist/cjs/util/Set.js.map +6 -0
  289. package/dist/cjs/util/Singleton.d.ts +7 -0
  290. package/dist/cjs/util/Singleton.d.ts.map +1 -0
  291. package/dist/cjs/util/Singleton.js +36 -0
  292. package/dist/cjs/util/Singleton.js.map +6 -0
  293. package/dist/cjs/util/Stream.d.ts +16 -0
  294. package/dist/cjs/util/Stream.d.ts.map +1 -0
  295. package/dist/cjs/util/Stream.js +38 -0
  296. package/dist/cjs/util/Stream.js.map +6 -0
  297. package/dist/cjs/util/String.d.ts +39 -0
  298. package/dist/cjs/util/String.d.ts.map +1 -0
  299. package/dist/cjs/util/String.js +208 -0
  300. package/dist/cjs/util/String.js.map +6 -0
  301. package/dist/cjs/util/Type.d.ts +84 -0
  302. package/dist/cjs/util/Type.d.ts.map +1 -0
  303. package/dist/cjs/util/Type.js +52 -0
  304. package/dist/cjs/util/Type.js.map +6 -0
  305. package/dist/cjs/util/index.d.ts +30 -0
  306. package/dist/cjs/util/index.d.ts.map +1 -0
  307. package/dist/cjs/util/index.js +47 -0
  308. package/dist/cjs/util/index.js.map +6 -0
  309. package/dist/esm/MatterError.d.ts +95 -0
  310. package/dist/esm/MatterError.d.ts.map +1 -0
  311. package/dist/esm/MatterError.js +157 -0
  312. package/dist/esm/MatterError.js.map +6 -0
  313. package/dist/esm/codec/Base64Codec.d.ts +23 -0
  314. package/dist/esm/codec/Base64Codec.d.ts.map +1 -0
  315. package/dist/esm/codec/Base64Codec.js +114 -0
  316. package/dist/esm/codec/Base64Codec.js.map +6 -0
  317. package/dist/esm/codec/DerCodec.d.ts +83 -0
  318. package/dist/esm/codec/DerCodec.d.ts.map +1 -0
  319. package/dist/esm/codec/DerCodec.js +266 -0
  320. package/dist/esm/codec/DerCodec.js.map +6 -0
  321. package/dist/esm/codec/DerTypes.d.ts +73 -0
  322. package/dist/esm/codec/DerTypes.d.ts.map +1 -0
  323. package/dist/esm/codec/DerTypes.js +122 -0
  324. package/dist/esm/codec/DerTypes.js.map +6 -0
  325. package/dist/esm/codec/DnsCodec.d.ts +86 -0
  326. package/dist/esm/codec/DnsCodec.d.ts.map +1 -0
  327. package/dist/esm/codec/DnsCodec.js +335 -0
  328. package/dist/esm/codec/DnsCodec.js.map +6 -0
  329. package/dist/esm/codec/index.d.ts +10 -0
  330. package/dist/esm/codec/index.d.ts.map +1 -0
  331. package/dist/esm/codec/index.js +10 -0
  332. package/dist/esm/codec/index.js.map +6 -0
  333. package/dist/esm/crypto/Crypto.d.ts +169 -0
  334. package/dist/esm/crypto/Crypto.d.ts.map +1 -0
  335. package/dist/esm/crypto/Crypto.js +73 -0
  336. package/dist/esm/crypto/Crypto.js.map +6 -0
  337. package/dist/esm/crypto/CryptoConstants.d.ts +19 -0
  338. package/dist/esm/crypto/CryptoConstants.d.ts.map +1 -0
  339. package/dist/esm/crypto/CryptoConstants.js +28 -0
  340. package/dist/esm/crypto/CryptoConstants.js.map +6 -0
  341. package/dist/esm/crypto/Key.d.ts +171 -0
  342. package/dist/esm/crypto/Key.d.ts.map +1 -0
  343. package/dist/esm/crypto/Key.js +336 -0
  344. package/dist/esm/crypto/Key.js.map +6 -0
  345. package/dist/esm/crypto/Spake2p.d.ts +40 -0
  346. package/dist/esm/crypto/Spake2p.d.ts.map +1 -0
  347. package/dist/esm/crypto/Spake2p.js +108 -0
  348. package/dist/esm/crypto/Spake2p.js.map +6 -0
  349. package/dist/esm/crypto/index.d.ts +10 -0
  350. package/dist/esm/crypto/index.d.ts.map +1 -0
  351. package/dist/esm/crypto/index.js +10 -0
  352. package/dist/esm/crypto/index.js.map +6 -0
  353. package/dist/esm/environment/Environment.d.ts +96 -0
  354. package/dist/esm/environment/Environment.d.ts.map +1 -0
  355. package/dist/esm/environment/Environment.js +179 -0
  356. package/dist/esm/environment/Environment.js.map +6 -0
  357. package/dist/esm/environment/Environmental.d.ts +52 -0
  358. package/dist/esm/environment/Environmental.d.ts.map +1 -0
  359. package/dist/esm/environment/Environmental.js +13 -0
  360. package/dist/esm/environment/Environmental.js.map +6 -0
  361. package/dist/esm/environment/RuntimeService.d.ts +107 -0
  362. package/dist/esm/environment/RuntimeService.d.ts.map +1 -0
  363. package/dist/esm/environment/RuntimeService.js +202 -0
  364. package/dist/esm/environment/RuntimeService.js.map +6 -0
  365. package/dist/esm/environment/VariableService.d.ts +58 -0
  366. package/dist/esm/environment/VariableService.d.ts.map +1 -0
  367. package/dist/esm/environment/VariableService.js +237 -0
  368. package/dist/esm/environment/VariableService.js.map +6 -0
  369. package/dist/esm/environment/index.d.ts +10 -0
  370. package/dist/esm/environment/index.d.ts.map +1 -0
  371. package/dist/esm/environment/index.js +10 -0
  372. package/dist/esm/environment/index.js.map +6 -0
  373. package/dist/esm/index.d.ts +17 -0
  374. package/dist/esm/index.d.ts.map +1 -0
  375. package/dist/esm/index.js +17 -0
  376. package/dist/esm/index.js.map +6 -0
  377. package/dist/esm/log/Diagnostic.d.ts +140 -0
  378. package/dist/esm/log/Diagnostic.d.ts.map +1 -0
  379. package/dist/esm/log/Diagnostic.js +277 -0
  380. package/dist/esm/log/Diagnostic.js.map +6 -0
  381. package/dist/esm/log/DiagnosticSource.d.ts +16 -0
  382. package/dist/esm/log/DiagnosticSource.d.ts.map +1 -0
  383. package/dist/esm/log/DiagnosticSource.js +25 -0
  384. package/dist/esm/log/DiagnosticSource.js.map +6 -0
  385. package/dist/esm/log/LogFormat.d.ts +33 -0
  386. package/dist/esm/log/LogFormat.d.ts.map +1 -0
  387. package/dist/esm/log/LogFormat.js +483 -0
  388. package/dist/esm/log/LogFormat.js.map +6 -0
  389. package/dist/esm/log/LogLevel.d.ts +18 -0
  390. package/dist/esm/log/LogLevel.d.ts.map +1 -0
  391. package/dist/esm/log/LogLevel.js +37 -0
  392. package/dist/esm/log/LogLevel.js.map +6 -0
  393. package/dist/esm/log/Logger.d.ts +220 -0
  394. package/dist/esm/log/Logger.d.ts.map +1 -0
  395. package/dist/esm/log/Logger.js +381 -0
  396. package/dist/esm/log/Logger.js.map +6 -0
  397. package/dist/esm/log/index.d.ts +11 -0
  398. package/dist/esm/log/index.d.ts.map +1 -0
  399. package/dist/esm/log/index.js +11 -0
  400. package/dist/esm/log/index.js.map +6 -0
  401. package/dist/esm/math/ReedSolomon.d.ts +11 -0
  402. package/dist/esm/math/ReedSolomon.d.ts.map +1 -0
  403. package/dist/esm/math/ReedSolomon.js +89 -0
  404. package/dist/esm/math/ReedSolomon.js.map +6 -0
  405. package/dist/esm/math/Verhoeff.d.ts +17 -0
  406. package/dist/esm/math/Verhoeff.d.ts.map +1 -0
  407. package/dist/esm/math/Verhoeff.js +44 -0
  408. package/dist/esm/math/Verhoeff.js.map +6 -0
  409. package/dist/esm/math/index.d.ts +8 -0
  410. package/dist/esm/math/index.d.ts.map +1 -0
  411. package/dist/esm/math/index.js +8 -0
  412. package/dist/esm/math/index.js.map +6 -0
  413. package/dist/esm/net/Channel.d.ts +24 -0
  414. package/dist/esm/net/Channel.d.ts.map +1 -0
  415. package/dist/esm/net/Channel.js +15 -0
  416. package/dist/esm/net/Channel.js.map +6 -0
  417. package/dist/esm/net/NetInterface.d.ts +24 -0
  418. package/dist/esm/net/NetInterface.d.ts.map +1 -0
  419. package/dist/esm/net/NetInterface.js +22 -0
  420. package/dist/esm/net/NetInterface.js.map +6 -0
  421. package/dist/esm/net/Network.d.ts +54 -0
  422. package/dist/esm/net/Network.d.ts.map +1 -0
  423. package/dist/esm/net/Network.js +30 -0
  424. package/dist/esm/net/Network.js.map +6 -0
  425. package/dist/esm/net/ServerAddress.d.ts +17 -0
  426. package/dist/esm/net/ServerAddress.d.ts.map +1 -0
  427. package/dist/esm/net/ServerAddress.js +12 -0
  428. package/dist/esm/net/ServerAddress.js.map +6 -0
  429. package/dist/esm/net/TransportInterface.d.ts +40 -0
  430. package/dist/esm/net/TransportInterface.d.ts.map +1 -0
  431. package/dist/esm/net/TransportInterface.js +35 -0
  432. package/dist/esm/net/TransportInterface.js.map +6 -0
  433. package/dist/esm/net/UdpChannel.d.ts +25 -0
  434. package/dist/esm/net/UdpChannel.d.ts.map +1 -0
  435. package/dist/esm/net/UdpChannel.js +10 -0
  436. package/dist/esm/net/UdpChannel.js.map +6 -0
  437. package/dist/esm/net/UdpInterface.d.ts +35 -0
  438. package/dist/esm/net/UdpInterface.d.ts.map +1 -0
  439. package/dist/esm/net/UdpInterface.js +62 -0
  440. package/dist/esm/net/UdpInterface.js.map +6 -0
  441. package/dist/esm/net/UdpMulticastServer.d.ts +30 -0
  442. package/dist/esm/net/UdpMulticastServer.d.ts.map +1 -0
  443. package/dist/esm/net/UdpMulticastServer.js +113 -0
  444. package/dist/esm/net/UdpMulticastServer.js.map +6 -0
  445. package/dist/esm/net/index.d.ts +17 -0
  446. package/dist/esm/net/index.d.ts.map +1 -0
  447. package/dist/esm/net/index.js +17 -0
  448. package/dist/esm/net/index.js.map +6 -0
  449. package/dist/esm/net/mock/MockNetwork.d.ts +19 -0
  450. package/dist/esm/net/mock/MockNetwork.d.ts.map +1 -0
  451. package/dist/esm/net/mock/MockNetwork.js +36 -0
  452. package/dist/esm/net/mock/MockNetwork.js.map +6 -0
  453. package/dist/esm/net/mock/MockUdpChannel.d.ts +27 -0
  454. package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -0
  455. package/dist/esm/net/mock/MockUdpChannel.js +56 -0
  456. package/dist/esm/net/mock/MockUdpChannel.js.map +6 -0
  457. package/dist/esm/net/mock/NetworkSimulator.d.ts +18 -0
  458. package/dist/esm/net/mock/NetworkSimulator.d.ts.map +1 -0
  459. package/dist/esm/net/mock/NetworkSimulator.js +53 -0
  460. package/dist/esm/net/mock/NetworkSimulator.js.map +6 -0
  461. package/dist/esm/package.json +6 -0
  462. package/dist/esm/polyfills/disposable.d.ts +7 -0
  463. package/dist/esm/polyfills/disposable.d.ts.map +1 -0
  464. package/dist/esm/polyfills/disposable.js +18 -0
  465. package/dist/esm/polyfills/disposable.js.map +6 -0
  466. package/dist/esm/polyfills/index.d.ts +7 -0
  467. package/dist/esm/polyfills/index.d.ts.map +1 -0
  468. package/dist/esm/polyfills/index.js +7 -0
  469. package/dist/esm/polyfills/index.js.map +6 -0
  470. package/dist/esm/storage/Storage.d.ts +54 -0
  471. package/dist/esm/storage/Storage.d.ts.map +1 -0
  472. package/dist/esm/storage/Storage.js +18 -0
  473. package/dist/esm/storage/Storage.js.map +6 -0
  474. package/dist/esm/storage/StorageBackendMemory.d.ts +27 -0
  475. package/dist/esm/storage/StorageBackendMemory.d.ts.map +1 -0
  476. package/dist/esm/storage/StorageBackendMemory.js +111 -0
  477. package/dist/esm/storage/StorageBackendMemory.js.map +6 -0
  478. package/dist/esm/storage/StorageContext.d.ts +26 -0
  479. package/dist/esm/storage/StorageContext.d.ts.map +1 -0
  480. package/dist/esm/storage/StorageContext.js +97 -0
  481. package/dist/esm/storage/StorageContext.js.map +6 -0
  482. package/dist/esm/storage/StorageManager.d.ts +17 -0
  483. package/dist/esm/storage/StorageManager.d.ts.map +1 -0
  484. package/dist/esm/storage/StorageManager.js +39 -0
  485. package/dist/esm/storage/StorageManager.js.map +6 -0
  486. package/dist/esm/storage/StorageService.d.ts +35 -0
  487. package/dist/esm/storage/StorageService.d.ts.map +1 -0
  488. package/dist/esm/storage/StorageService.js +62 -0
  489. package/dist/esm/storage/StorageService.js.map +6 -0
  490. package/dist/esm/storage/StringifyTools.d.ts +16 -0
  491. package/dist/esm/storage/StringifyTools.d.ts.map +1 -0
  492. package/dist/esm/storage/StringifyTools.js +85 -0
  493. package/dist/esm/storage/StringifyTools.js.map +6 -0
  494. package/dist/esm/storage/index.d.ts +12 -0
  495. package/dist/esm/storage/index.d.ts.map +1 -0
  496. package/dist/esm/storage/index.js +12 -0
  497. package/dist/esm/storage/index.js.map +6 -0
  498. package/dist/esm/time/Time.d.ts +66 -0
  499. package/dist/esm/time/Time.d.ts.map +1 -0
  500. package/dist/esm/time/Time.js +117 -0
  501. package/dist/esm/time/Time.js.map +6 -0
  502. package/dist/esm/time/index.d.ts +7 -0
  503. package/dist/esm/time/index.d.ts.map +1 -0
  504. package/dist/esm/time/index.js +7 -0
  505. package/dist/esm/time/index.js.map +6 -0
  506. package/dist/esm/tsconfig.tsbuildinfo +1 -0
  507. package/dist/esm/util/Array.d.ts +12 -0
  508. package/dist/esm/util/Array.d.ts.map +1 -0
  509. package/dist/esm/util/Array.js +8 -0
  510. package/dist/esm/util/Array.js.map +6 -0
  511. package/dist/esm/util/Bytes.d.ts +23 -0
  512. package/dist/esm/util/Bytes.d.ts.map +1 -0
  513. package/dist/esm/util/Bytes.js +75 -0
  514. package/dist/esm/util/Bytes.js.map +6 -0
  515. package/dist/esm/util/Cache.d.ts +33 -0
  516. package/dist/esm/util/Cache.d.ts.map +1 -0
  517. package/dist/esm/util/Cache.js +94 -0
  518. package/dist/esm/util/Cache.js.map +6 -0
  519. package/dist/esm/util/Construction.d.ts +182 -0
  520. package/dist/esm/util/Construction.d.ts.map +1 -0
  521. package/dist/esm/util/Construction.js +397 -0
  522. package/dist/esm/util/Construction.js.map +6 -0
  523. package/dist/esm/util/DataReadQueue.d.ts +17 -0
  524. package/dist/esm/util/DataReadQueue.d.ts.map +1 -0
  525. package/dist/esm/util/DataReadQueue.js +56 -0
  526. package/dist/esm/util/DataReadQueue.js.map +6 -0
  527. package/dist/esm/util/DataReader.d.ts +32 -0
  528. package/dist/esm/util/DataReader.d.ts.map +1 -0
  529. package/dist/esm/util/DataReader.js +81 -0
  530. package/dist/esm/util/DataReader.js.map +6 -0
  531. package/dist/esm/util/DataWriter.d.ts +26 -0
  532. package/dist/esm/util/DataWriter.d.ts.map +1 -0
  533. package/dist/esm/util/DataWriter.js +94 -0
  534. package/dist/esm/util/DataWriter.js.map +6 -0
  535. package/dist/esm/util/DeepCopy.d.ts +12 -0
  536. package/dist/esm/util/DeepCopy.d.ts.map +1 -0
  537. package/dist/esm/util/DeepCopy.js +38 -0
  538. package/dist/esm/util/DeepCopy.js.map +6 -0
  539. package/dist/esm/util/DeepEqual.d.ts +7 -0
  540. package/dist/esm/util/DeepEqual.d.ts.map +1 -0
  541. package/dist/esm/util/DeepEqual.js +35 -0
  542. package/dist/esm/util/DeepEqual.js.map +6 -0
  543. package/dist/esm/util/Error.d.ts +12 -0
  544. package/dist/esm/util/Error.d.ts.map +1 -0
  545. package/dist/esm/util/Error.js +21 -0
  546. package/dist/esm/util/Error.js.map +6 -0
  547. package/dist/esm/util/GeneratedClass.d.ts +62 -0
  548. package/dist/esm/util/GeneratedClass.d.ts.map +1 -0
  549. package/dist/esm/util/GeneratedClass.js +97 -0
  550. package/dist/esm/util/GeneratedClass.js.map +6 -0
  551. package/dist/esm/util/Introspection.d.ts +38 -0
  552. package/dist/esm/util/Introspection.d.ts.map +1 -0
  553. package/dist/esm/util/Introspection.js +65 -0
  554. package/dist/esm/util/Introspection.js.map +6 -0
  555. package/dist/esm/util/Ip.d.ts +8 -0
  556. package/dist/esm/util/Ip.d.ts.map +1 -0
  557. package/dist/esm/util/Ip.js +70 -0
  558. package/dist/esm/util/Ip.js.map +6 -0
  559. package/dist/esm/util/Lifecycle.d.ts +97 -0
  560. package/dist/esm/util/Lifecycle.d.ts.map +1 -0
  561. package/dist/esm/util/Lifecycle.js +69 -0
  562. package/dist/esm/util/Lifecycle.js.map +6 -0
  563. package/dist/esm/util/Multiplex.d.ts +14 -0
  564. package/dist/esm/util/Multiplex.d.ts.map +1 -0
  565. package/dist/esm/util/Multiplex.js +6 -0
  566. package/dist/esm/util/Multiplex.js.map +6 -0
  567. package/dist/esm/util/Mutex.d.ts +34 -0
  568. package/dist/esm/util/Mutex.d.ts.map +1 -0
  569. package/dist/esm/util/Mutex.js +85 -0
  570. package/dist/esm/util/Mutex.js.map +6 -0
  571. package/dist/esm/util/NamedHandler.d.ts +21 -0
  572. package/dist/esm/util/NamedHandler.d.ts.map +1 -0
  573. package/dist/esm/util/NamedHandler.js +34 -0
  574. package/dist/esm/util/NamedHandler.js.map +6 -0
  575. package/dist/esm/util/Number.d.ts +37 -0
  576. package/dist/esm/util/Number.d.ts.map +1 -0
  577. package/dist/esm/util/Number.js +77 -0
  578. package/dist/esm/util/Number.js.map +6 -0
  579. package/dist/esm/util/Observable.d.ts +197 -0
  580. package/dist/esm/util/Observable.d.ts.map +1 -0
  581. package/dist/esm/util/Observable.js +320 -0
  582. package/dist/esm/util/Observable.js.map +6 -0
  583. package/dist/esm/util/PromiseQueue.d.ts +25 -0
  584. package/dist/esm/util/PromiseQueue.d.ts.map +1 -0
  585. package/dist/esm/util/PromiseQueue.js +87 -0
  586. package/dist/esm/util/PromiseQueue.js.map +6 -0
  587. package/dist/esm/util/Promises.d.ts +68 -0
  588. package/dist/esm/util/Promises.d.ts.map +1 -0
  589. package/dist/esm/util/Promises.js +179 -0
  590. package/dist/esm/util/Promises.js.map +6 -0
  591. package/dist/esm/util/Set.d.ts +60 -0
  592. package/dist/esm/util/Set.d.ts.map +1 -0
  593. package/dist/esm/util/Set.js +125 -0
  594. package/dist/esm/util/Set.js.map +6 -0
  595. package/dist/esm/util/Singleton.d.ts +7 -0
  596. package/dist/esm/util/Singleton.d.ts.map +1 -0
  597. package/dist/esm/util/Singleton.js +16 -0
  598. package/dist/esm/util/Singleton.js.map +6 -0
  599. package/dist/esm/util/Stream.d.ts +16 -0
  600. package/dist/esm/util/Stream.d.ts.map +1 -0
  601. package/dist/esm/util/Stream.js +18 -0
  602. package/dist/esm/util/Stream.js.map +6 -0
  603. package/dist/esm/util/String.d.ts +39 -0
  604. package/dist/esm/util/String.d.ts.map +1 -0
  605. package/dist/esm/util/String.js +188 -0
  606. package/dist/esm/util/String.js.map +6 -0
  607. package/dist/esm/util/Type.d.ts +84 -0
  608. package/dist/esm/util/Type.d.ts.map +1 -0
  609. package/dist/esm/util/Type.js +32 -0
  610. package/dist/esm/util/Type.js.map +6 -0
  611. package/dist/esm/util/index.d.ts +30 -0
  612. package/dist/esm/util/index.d.ts.map +1 -0
  613. package/dist/esm/util/index.js +30 -0
  614. package/dist/esm/util/index.js.map +6 -0
  615. package/package.json +76 -0
  616. package/src/MatterError.ts +205 -0
  617. package/src/codec/Base64Codec.ts +137 -0
  618. package/src/codec/DerCodec.ts +300 -0
  619. package/src/codec/DerTypes.ts +145 -0
  620. package/src/codec/DnsCodec.ts +393 -0
  621. package/src/codec/index.ts +10 -0
  622. package/src/crypto/Crypto.ts +136 -0
  623. package/src/crypto/CryptoConstants.ts +19 -0
  624. package/src/crypto/Key.ts +600 -0
  625. package/src/crypto/Spake2p.ts +128 -0
  626. package/src/crypto/index.ts +10 -0
  627. package/src/environment/Environment.ts +215 -0
  628. package/src/environment/Environmental.ts +60 -0
  629. package/src/environment/RuntimeService.ts +301 -0
  630. package/src/environment/VariableService.ts +308 -0
  631. package/src/environment/index.ts +10 -0
  632. package/src/index.ts +17 -0
  633. package/src/log/Diagnostic.ts +454 -0
  634. package/src/log/DiagnosticSource.ts +30 -0
  635. package/src/log/LogFormat.ts +646 -0
  636. package/src/log/LogLevel.ts +36 -0
  637. package/src/log/Logger.ts +474 -0
  638. package/src/log/index.ts +11 -0
  639. package/src/math/ReedSolomon.ts +100 -0
  640. package/src/math/Verhoeff.ts +47 -0
  641. package/src/math/index.ts +8 -0
  642. package/src/net/Channel.ts +30 -0
  643. package/src/net/NetInterface.ts +33 -0
  644. package/src/net/Network.ts +70 -0
  645. package/src/net/ServerAddress.ts +22 -0
  646. package/src/net/TransportInterface.ts +56 -0
  647. package/src/net/UdpChannel.ts +30 -0
  648. package/src/net/UdpInterface.ts +75 -0
  649. package/src/net/UdpMulticastServer.ts +138 -0
  650. package/src/net/index.ts +17 -0
  651. package/src/net/mock/MockNetwork.ts +42 -0
  652. package/src/net/mock/MockUdpChannel.ts +69 -0
  653. package/src/net/mock/NetworkSimulator.ts +63 -0
  654. package/src/polyfills/disposable.ts +24 -0
  655. package/src/polyfills/index.ts +7 -0
  656. package/src/storage/Storage.ts +61 -0
  657. package/src/storage/StorageBackendMemory.ts +131 -0
  658. package/src/storage/StorageContext.ts +111 -0
  659. package/src/storage/StorageManager.ts +39 -0
  660. package/src/storage/StorageService.ts +73 -0
  661. package/src/storage/StringifyTools.ts +107 -0
  662. package/src/storage/index.ts +12 -0
  663. package/src/time/Time.ts +179 -0
  664. package/src/time/index.ts +7 -0
  665. package/src/tsconfig.json +10 -0
  666. package/src/util/Array.ts +15 -0
  667. package/src/util/Bytes.ts +73 -0
  668. package/src/util/Cache.ts +111 -0
  669. package/src/util/Construction.ts +717 -0
  670. package/src/util/DataReadQueue.ts +55 -0
  671. package/src/util/DataReader.ts +100 -0
  672. package/src/util/DataWriter.ts +109 -0
  673. package/src/util/DeepCopy.ts +47 -0
  674. package/src/util/DeepEqual.ts +49 -0
  675. package/src/util/Error.ts +32 -0
  676. package/src/util/GeneratedClass.ts +204 -0
  677. package/src/util/Introspection.ts +93 -0
  678. package/src/util/Ip.ts +71 -0
  679. package/src/util/Lifecycle.ts +135 -0
  680. package/src/util/Multiplex.ts +14 -0
  681. package/src/util/Mutex.ts +100 -0
  682. package/src/util/NamedHandler.ts +52 -0
  683. package/src/util/Number.ts +71 -0
  684. package/src/util/Observable.ts +550 -0
  685. package/src/util/PromiseQueue.ts +102 -0
  686. package/src/util/Promises.ts +278 -0
  687. package/src/util/Set.ts +189 -0
  688. package/src/util/Singleton.ts +13 -0
  689. package/src/util/Stream.ts +19 -0
  690. package/src/util/String.ts +248 -0
  691. package/src/util/Type.ts +145 -0
  692. package/src/util/index.ts +30 -0
@@ -0,0 +1,474 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { ImplementationError, NotImplementedError } from "../MatterError.js";
8
+ import { Time } from "../time/Time.js";
9
+ import { Bytes } from "../util/Bytes.js";
10
+ import { Diagnostic } from "./Diagnostic.js";
11
+ import { LogFormat } from "./LogFormat.js";
12
+ import { LogLevel } from "./LogLevel.js";
13
+
14
+ /**
15
+ * Log messages to the console. This is the default logging mechanism.
16
+ */
17
+ export function consoleLogger(level: LogLevel, formattedLog: string) {
18
+ const console = (<any>consoleLogger).console;
19
+ switch (level) {
20
+ case LogLevel.DEBUG:
21
+ console.debug(formattedLog);
22
+ break;
23
+ case LogLevel.INFO:
24
+ console.info(formattedLog);
25
+ break;
26
+ case LogLevel.NOTICE:
27
+ console.info(formattedLog);
28
+ break;
29
+ case LogLevel.WARN:
30
+ console.warn(formattedLog);
31
+ break;
32
+ case LogLevel.ERROR:
33
+ console.error(formattedLog);
34
+ break;
35
+ case LogLevel.FATAL:
36
+ console.error(formattedLog);
37
+ break;
38
+ }
39
+ }
40
+
41
+ const globalConsole = console;
42
+ export namespace consoleLogger {
43
+ /**
44
+ * The target for consoleLogger.
45
+ */
46
+ // eslint-disable-next-line prefer-const
47
+ export let console = globalConsole;
48
+ }
49
+
50
+ /**
51
+ * Create a log formatter for a given format.
52
+ */
53
+ function logFormatterFor(formatName: string): LoggerDefinition["logFormatter"] {
54
+ const format = LogFormat(formatName);
55
+
56
+ return (now, level, facility, prefix, ...values) =>
57
+ format(Diagnostic.message({ now, level, facility, prefix, values }));
58
+ }
59
+
60
+ /**
61
+ * Definition of one registered Logger.
62
+ */
63
+ type LoggerDefinition = {
64
+ logIdentifier: string;
65
+ logFormatter: (now: Date, level: LogLevel, facility: string, prefix: string, ...values: any[]) => string;
66
+ log: (level: LogLevel, formattedLog: string) => void;
67
+ defaultLogLevel: LogLevel;
68
+ logLevels: { [facility: string]: LogLevel };
69
+ };
70
+
71
+ /**
72
+ * Logger that can be used to emit traces.
73
+ *
74
+ * The class supports adding multiple loggers for different targets. A default logger (identifier "default") is added on
75
+ * startup which logs to "console".
76
+ *
77
+ * Usage:
78
+ *
79
+ * const facility = Logger.get("loggerName");
80
+ * facility.debug("My debug message", "my extra value to log");
81
+ *
82
+ * The configuration of the default logger can be adjusted by using the static properties of the Logger class:
83
+ *
84
+ * - Logger.defaultLogLevel sets the default log level for all the facility
85
+ * - Logger.logLevels = { loggerName: Level.DEBUG } can set the level for the specific loggers
86
+ * - Logger.format = Format.ANSI enables colorization via ANSI escape sequences in default formatter
87
+ *
88
+ * For additional loggers, use Logger.addLogger() to add a new logger with a specific identifier. Afterwards the
89
+ * configuration of these can be adjusted using static methods with the identifier as first parameter:
90
+ *
91
+ * - Logger.setFormatForLogger("loggerName", Format.ANSI)
92
+ * - Logger.setLogLevelsForLogger("loggerName", { loggerName: Level.DEBUG })
93
+ * - Logger.setDefaultLoglevelForLogger("loggerName", Level.DEBUG)
94
+ */
95
+ export class Logger {
96
+ static logger = new Array<LoggerDefinition>({
97
+ logIdentifier: "default",
98
+ logFormatter: LogFormat.plain,
99
+ log: consoleLogger,
100
+ defaultLogLevel: LogLevel.DEBUG,
101
+ logLevels: {},
102
+ });
103
+ static nestingLevel = 0;
104
+
105
+ /** Add additional logger to the list of loggers including the default configuration. */
106
+ public static addLogger(
107
+ identifier: string,
108
+ logger: (level: LogLevel, formattedLog: string) => void,
109
+ options?: {
110
+ defaultLogLevel?: LogLevel;
111
+ logLevels?: { [facility: string]: LogLevel };
112
+ logFormat?: string;
113
+ },
114
+ ) {
115
+ if (Logger.logger.some(logger => logger.logIdentifier === identifier)) {
116
+ throw new NotImplementedError(`Logger "${identifier}" already exists`);
117
+ }
118
+ Logger.logger.push({
119
+ logIdentifier: identifier,
120
+ logFormatter: logFormatterFor(options?.logFormat ?? LogFormat.PLAIN),
121
+ log: logger,
122
+ defaultLogLevel: options?.defaultLogLevel ?? LogLevel.DEBUG,
123
+ logLevels: options?.logLevels ?? {},
124
+ });
125
+ }
126
+
127
+ public static removeLogger(identifier: string) {
128
+ const index = Logger.logger.findIndex(logger => logger.logIdentifier === identifier);
129
+ if (index === -1) {
130
+ throw new NotImplementedError(`Logger "${identifier}" does not exist`);
131
+ }
132
+ Logger.logger.splice(index, 1);
133
+ }
134
+
135
+ /**
136
+ * Get the logger with the matching identifier.
137
+ * @param identifier The identifier of the logger
138
+ */
139
+ public static getLoggerforIdentifier(identifier: string) {
140
+ const logger = Logger.logger.find(logger => logger.logIdentifier === identifier);
141
+ if (logger === undefined) {
142
+ throw new NotImplementedError(`Unknown logger "${identifier}"`);
143
+ }
144
+ return logger;
145
+ }
146
+
147
+ /**
148
+ * Set log level using configuration-style level name for the default logger.
149
+ */
150
+ static set level(level: number | string) {
151
+ if (level === undefined) {
152
+ level = LogLevel.DEBUG;
153
+ }
154
+
155
+ let levelNum;
156
+ if (typeof level === "string") {
157
+ if (level.match(/^[0-9]+$/)) {
158
+ levelNum = Number.parseInt(level);
159
+ } else {
160
+ levelNum = (LogLevel as unknown as Record<string, number | undefined>)[level.toUpperCase()];
161
+ if (levelNum === undefined) {
162
+ throw new ImplementationError(`Unsupported log level "${level}"`);
163
+ }
164
+ }
165
+ } else {
166
+ levelNum = level;
167
+ }
168
+
169
+ if (LogLevel[levelNum] === undefined) {
170
+ throw new ImplementationError(`Unsupported log level "${level}"`);
171
+ }
172
+
173
+ Logger.defaultLogLevel = levelNum;
174
+ }
175
+
176
+ /**
177
+ * Set logFormatter using configuration-style format name.
178
+ *
179
+ * @param format the name of the formatter (see Format enum)
180
+ */
181
+ static set format(format: string) {
182
+ Logger.setLogFormatterForLogger("default", logFormatterFor(format));
183
+ }
184
+
185
+ /**
186
+ * Set facility loglevels for the default logger.
187
+ * @param levels The levels to set
188
+ */
189
+ public static set logLevels(levels: { [facility: string]: LogLevel }) {
190
+ Logger.setLogLevelsForLogger("default", levels);
191
+ }
192
+
193
+ /**
194
+ * Get facility loglevels for the default logger.
195
+ */
196
+ public static get logLevels() {
197
+ return Logger.getLoggerforIdentifier("default").logLevels;
198
+ }
199
+
200
+ /**
201
+ * Set default loglevel for the default logger.
202
+ *
203
+ * @param level The level to set
204
+ */
205
+ public static set defaultLogLevel(level: LogLevel) {
206
+ Logger.setDefaultLoglevelForLogger("default", level);
207
+ }
208
+
209
+ /**
210
+ * Get default loglevel for the default logger.
211
+ */
212
+ public static get defaultLogLevel() {
213
+ return Logger.getLoggerforIdentifier("default").defaultLogLevel;
214
+ }
215
+
216
+ /**
217
+ * Set the log function for the default logger.
218
+ *
219
+ * @param log The log function to set
220
+ */
221
+ public static set log(log: (level: LogLevel, formattedLog: string) => void) {
222
+ Logger.setLogger("default", log);
223
+ }
224
+
225
+ /**
226
+ * Get the log function for the default logger.
227
+ */
228
+ public static get log() {
229
+ return Logger.getLoggerforIdentifier("default").log;
230
+ }
231
+
232
+ /**
233
+ * Set the log formatter for the default logger.
234
+ *
235
+ * @param logFormatter
236
+ */
237
+ public static set logFormatter(
238
+ logFormatter: (now: Date, level: LogLevel, facility: string, nestingPrefix: string, values: any[]) => string,
239
+ ) {
240
+ Logger.setLogFormatterForLogger("default", logFormatter);
241
+ }
242
+
243
+ /**
244
+ * Get the log formatter for the default logger.
245
+ */
246
+ public static get logFormatter() {
247
+ return Logger.getLoggerforIdentifier("default").logFormatter;
248
+ }
249
+
250
+ /**
251
+ * Set logFormatter using configuration-style format name for the logger with the matching identifier.
252
+ *
253
+ * @param identifier The identifier of the logger
254
+ * @param format the name of the formatter (see Format enum)
255
+ */
256
+ public static setFormatForLogger(identifier: string, format: string) {
257
+ const logger = Logger.logger.find(logger => logger.logIdentifier === identifier);
258
+ if (logger) {
259
+ logger.logFormatter = logFormatterFor(format);
260
+ } else {
261
+ throw new NotImplementedError(`Unknown logger "${identifier}"`);
262
+ }
263
+ }
264
+
265
+ /**
266
+ * Set default loglevel for the logger with the matching identifier.
267
+ *
268
+ * @param identifier The identifier of the logger
269
+ * @param level The level to set
270
+ */
271
+ public static setDefaultLoglevelForLogger(identifier: string, level: LogLevel) {
272
+ const logger = Logger.logger.find(logger => logger.logIdentifier === identifier);
273
+ if (logger) {
274
+ logger.defaultLogLevel = level;
275
+ } else {
276
+ throw new NotImplementedError(`Unknown logger "${identifier}"`);
277
+ }
278
+ }
279
+
280
+ /**
281
+ * Set facility loglevels for the logger with the matching identifier.
282
+ *
283
+ * @param identifier The identifier of the logger
284
+ * @param levels The levels to set
285
+ */
286
+ public static setLogLevelsForLogger(identifier: string, levels: { [facility: string]: LogLevel }) {
287
+ const logger = Logger.logger.find(logger => logger.logIdentifier === identifier);
288
+ if (logger) {
289
+ logger.logLevels = levels;
290
+ } else {
291
+ throw new NotImplementedError(`Unknown logger "${identifier}"`);
292
+ }
293
+ }
294
+
295
+ /**
296
+ * Set the log function for the logger with the matching identifier.
297
+ *
298
+ * @param identifier The identifier of the logger
299
+ * @param log The log function to set
300
+ */
301
+ public static setLogger(identifier: string, log: (level: LogLevel, formattedLog: string) => void) {
302
+ const logger = Logger.logger.find(logger => logger.logIdentifier === identifier);
303
+ if (logger) {
304
+ logger.log = log;
305
+ } else {
306
+ throw new NotImplementedError(`Unknown logger "${identifier}"`);
307
+ }
308
+ }
309
+
310
+ /**
311
+ * Set the log formatter for the logger with the matching identifier.
312
+ *
313
+ * @param identifier The identifier of the logger
314
+ * @param logFormatter The log formatter to set
315
+ */
316
+ static setLogFormatterForLogger(
317
+ identifier: string,
318
+ logFormatter: (now: Date, level: LogLevel, facility: string, nestingPrefix: string, values: any[]) => string,
319
+ ) {
320
+ const logger = Logger.logger.find(logger => logger.logIdentifier === identifier);
321
+ if (logger) {
322
+ logger.logFormatter = logFormatter;
323
+ } else {
324
+ throw new NotImplementedError(`Unknown logger "${identifier}"`);
325
+ }
326
+ }
327
+
328
+ /**
329
+ * Create a new facility.
330
+ *
331
+ * @param name the name of the facility
332
+ * @returns a new facility
333
+ */
334
+ static get(name: string) {
335
+ return new Logger(name);
336
+ }
337
+
338
+ /**
339
+ * Stringify a value (BigInt aware) as JSON.
340
+ *
341
+ * @param data the value to stringify
342
+ * @returns the stringified value
343
+ */
344
+ static toJSON(data: any) {
345
+ return JSON.stringify(data, (_, value) => {
346
+ if (typeof value === "bigint") {
347
+ return value.toString();
348
+ }
349
+ if (value instanceof Uint8Array) {
350
+ return Bytes.toHex(value);
351
+ }
352
+ if (value === undefined) {
353
+ return "undefined";
354
+ }
355
+ return value;
356
+ });
357
+ }
358
+
359
+ /**
360
+ * Mask a string with a given character. If unmaskedLength is provided then these number of characters will be
361
+ * shown unmasked.
362
+ *
363
+ * @param str String to mask
364
+ * @param maskChar character to mask with
365
+ * @param unmaskedLength number of characters to show unmasked in the beginning
366
+ */
367
+ static maskString(str: string, maskChar = "*", unmaskedLength?: number) {
368
+ return str.substring(0, unmaskedLength ?? 0) + str.substring(unmaskedLength ?? 0).replace(/./g, maskChar);
369
+ }
370
+
371
+ /**
372
+ * Perform operations in a nested logging context. Messages will be
373
+ * indented while the context executes.
374
+ */
375
+ static nest<T>(context: () => T): T {
376
+ this.nestingLevel++;
377
+ try {
378
+ return context();
379
+ } finally {
380
+ this.nestingLevel--;
381
+ }
382
+ }
383
+
384
+ /**
385
+ * Async version of nest().
386
+ */
387
+ static async nestAsync(context: () => Promise<any>) {
388
+ this.nestingLevel++;
389
+ try {
390
+ return await context();
391
+ } finally {
392
+ this.nestingLevel--;
393
+ }
394
+ }
395
+
396
+ /**
397
+ * Unhandled error reporter.
398
+ *
399
+ * Some environments do not report full error details such as {@link Error#cause} and {@link AggregateError#errors}.
400
+ *
401
+ * To ensure these details are always recorded somewhere, unhandled errors may be reported here.
402
+ *
403
+ * To disable this behavior replace this function.
404
+ */
405
+ static reportUnhandledError(error: Error) {
406
+ try {
407
+ Logger.get("Logger").fatal("Unhandled error detected:", error);
408
+ } catch (e) {
409
+ // We do not want to cause yet another error so if logging fails for any reason it goes unreported
410
+ }
411
+ }
412
+
413
+ /**
414
+ * Invoke logic and return any log messages produced.
415
+ */
416
+ static capture(fn: () => void, fromLogger = "default") {
417
+ if (!Logger) {
418
+ throw new Error("No logger loaded, cannot capture logs");
419
+ }
420
+ const logger = Logger.getLoggerforIdentifier(fromLogger);
421
+ const actualLogSettings = {
422
+ logFormatter: logger.logFormatter,
423
+ log: logger.log,
424
+ defaultLogLevel: logger.defaultLogLevel,
425
+ logLevels: { ...logger.logLevels },
426
+ };
427
+
428
+ try {
429
+ Logger.setFormatForLogger(fromLogger, LogFormat.PLAIN);
430
+ const captured = new Array<{ level: LogLevel; message: string }>();
431
+ Logger.setLogger(fromLogger, (level, message) =>
432
+ captured.push({
433
+ level,
434
+ message: message.replace(/\d{4}-\d\d-\d\d \d\d:\d\d:\d\d\.\d\d\d/, "xxxx-xx-xx xx:xx:xx.xxx"),
435
+ }),
436
+ );
437
+ fn();
438
+ return captured;
439
+ } finally {
440
+ Logger.setLogFormatterForLogger(fromLogger, actualLogSettings.logFormatter);
441
+ Logger.setDefaultLoglevelForLogger(fromLogger, actualLogSettings.defaultLogLevel);
442
+ Logger.setLogLevelsForLogger(fromLogger, actualLogSettings.logLevels);
443
+ Logger.setLogger(fromLogger, actualLogSettings.log);
444
+ }
445
+ }
446
+
447
+ constructor(private readonly name: string) {}
448
+
449
+ debug = (...values: any[]) => this.log(LogLevel.DEBUG, values);
450
+ info = (...values: any[]) => this.log(LogLevel.INFO, values);
451
+ notice = (...values: any[]) => this.log(LogLevel.NOTICE, values);
452
+ warn = (...values: any[]) => this.log(LogLevel.WARN, values);
453
+ error = (...values: any[]) => this.log(LogLevel.ERROR, values);
454
+ fatal = (...values: any[]) => this.log(LogLevel.FATAL, values);
455
+
456
+ private log(level: LogLevel, values: any[]) {
457
+ Logger.logger.forEach(logger => {
458
+ if (level < (logger.logLevels[this.name] ?? logger.defaultLogLevel)) return;
459
+ logger.log(level, logger.logFormatter(Time.now(), level, this.name, nestingPrefix(), values));
460
+ });
461
+ }
462
+ }
463
+
464
+ // Hook for testing frameworks
465
+ if (typeof MatterHooks !== "undefined") {
466
+ MatterHooks.loggerSetup?.(Logger);
467
+ }
468
+
469
+ function nestingPrefix() {
470
+ if (Logger.nestingLevel) {
471
+ return "⎸".padEnd(Logger.nestingLevel * 2);
472
+ }
473
+ return "";
474
+ }
@@ -0,0 +1,11 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ export * from "./Diagnostic.js";
8
+ export * from "./DiagnosticSource.js";
9
+ export * from "./LogFormat.js";
10
+ export * from "./Logger.js";
11
+ export * from "./LogLevel.js";
@@ -0,0 +1,100 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { UnexpectedDataError } from "../MatterError.js";
8
+
9
+ class GaloisField {
10
+ private readonly exp = new Array<number>();
11
+ private readonly log = new Array<number>();
12
+ readonly size: number;
13
+
14
+ constructor(
15
+ private readonly prime = 0x11d,
16
+ generator = 2,
17
+ c_exp = 8,
18
+ ) {
19
+ this.size = Math.floor(Math.pow(2, c_exp) - 1);
20
+ let x = 1;
21
+ for (let i = 0; i < this.size; i++) {
22
+ this.exp[i] = x;
23
+ this.log[x] = i;
24
+ x = this.multiplyNoLut(x, generator);
25
+ }
26
+
27
+ for (let i = this.size; i < this.size * 2; i++) {
28
+ this.exp[i] = this.exp[i - this.size];
29
+ }
30
+ }
31
+
32
+ public multiply(x: number, y: number) {
33
+ if (x === 0 || y === 0) return 0;
34
+ return this.exp[(this.log[x] + this.log[y]) % this.size];
35
+ }
36
+
37
+ public multiplyPolynom(p: number[], q: number[]) {
38
+ const result = new Array<number>();
39
+ const logP = new Array<number>();
40
+ for (let i = 0; i < p.length; i++) {
41
+ logP[i] = this.log[p[i]];
42
+ }
43
+ for (let j = 0; j < q.length; j++) {
44
+ if (q[j] === 0) continue;
45
+ const lq = this.log[q[j]];
46
+ for (let i = 0; i < p.length; i++) {
47
+ if (p[i] === 0) continue;
48
+ result[i + j] ^= this.exp[logP[i] + lq];
49
+ }
50
+ }
51
+ return result;
52
+ }
53
+
54
+ public power(x: number, power: number) {
55
+ return this.exp[(this.log[x] * power) % this.size];
56
+ }
57
+
58
+ private multiplyNoLut(x: number, y: number) {
59
+ let result = 0;
60
+ while (y > 0) {
61
+ if ((y & 1) !== 0) result = result ^ x;
62
+ y = y >> 1;
63
+ x = x << 1;
64
+ if (x > this.size) {
65
+ x = x ^ this.prime;
66
+ }
67
+ }
68
+ return result;
69
+ }
70
+ }
71
+
72
+ export class ReedSolomon {
73
+ private readonly galoisField = new GaloisField();
74
+
75
+ computeErrorCorrection(data: Uint8Array, ecLength: number) {
76
+ const { length } = data;
77
+ if (length + ecLength > this.galoisField.size) throw new UnexpectedDataError("Message is too long");
78
+
79
+ const generator = this.generatePolynom(ecLength);
80
+ const { length: generatorLength } = generator;
81
+ const buffer = new Uint8Array(length + generatorLength - 1);
82
+ buffer.set(data, 0);
83
+ for (let i = 0; i < length; i++) {
84
+ const coef = buffer[i];
85
+ if (coef === 0) continue;
86
+ for (let j = 0; j < generatorLength; j++) {
87
+ buffer[i + j] ^= this.galoisField.multiply(generator[j], coef);
88
+ }
89
+ }
90
+ return buffer.slice(length);
91
+ }
92
+
93
+ private generatePolynom(ecLength: number) {
94
+ let result = [1];
95
+ for (let i = 0; i < ecLength; i++) {
96
+ result = this.galoisField.multiplyPolynom(result, [1, this.galoisField.power(2, i)]);
97
+ }
98
+ return result;
99
+ }
100
+ }
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ /**
8
+ * Verhoeff algorithm to compute a checksum.
9
+ *
10
+ * @see {@link https://en.wikipedia.org/wiki/Verhoeff_algorithm}
11
+ */
12
+ export class Verhoeff {
13
+ // This is rarely used so no need to keep those constants in memory
14
+ private readonly multiply = [
15
+ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
16
+ [1, 2, 3, 4, 0, 6, 7, 8, 9, 5],
17
+ [2, 3, 4, 0, 1, 7, 8, 9, 5, 6],
18
+ [3, 4, 0, 1, 2, 8, 9, 5, 6, 7],
19
+ [4, 0, 1, 2, 3, 9, 5, 6, 7, 8],
20
+ [5, 9, 8, 7, 6, 0, 4, 3, 2, 1],
21
+ [6, 5, 9, 8, 7, 1, 0, 4, 3, 2],
22
+ [7, 6, 5, 9, 8, 2, 1, 0, 4, 3],
23
+ [8, 7, 6, 5, 9, 3, 2, 1, 0, 4],
24
+ [9, 8, 7, 6, 5, 4, 3, 2, 1, 0],
25
+ ];
26
+ private readonly inverse = [0, 4, 3, 2, 1, 5, 6, 7, 8, 9];
27
+ private readonly permute = [
28
+ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9],
29
+ [1, 5, 7, 6, 2, 8, 3, 0, 9, 4],
30
+ [5, 8, 0, 3, 7, 9, 6, 1, 4, 2],
31
+ [8, 9, 1, 6, 0, 4, 3, 5, 2, 7],
32
+ [9, 4, 5, 3, 1, 2, 6, 8, 7, 0],
33
+ [4, 2, 8, 6, 5, 7, 3, 9, 0, 1],
34
+ [2, 7, 9, 3, 8, 0, 6, 4, 1, 5],
35
+ [7, 0, 4, 6, 9, 1, 3, 2, 5, 8],
36
+ ];
37
+
38
+ computeChecksum(digits: string) {
39
+ const { length } = digits;
40
+ let checksum = 0;
41
+ for (let i = 1; i <= length; i++) {
42
+ const digit = Number.parseInt(digits[length - i]);
43
+ checksum = this.multiply[checksum][this.permute[i % 8][digit]];
44
+ }
45
+ return this.inverse[checksum];
46
+ }
47
+ }
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ export * from "./ReedSolomon.js";
8
+ export * from "./Verhoeff.js";
@@ -0,0 +1,30 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ export enum ChannelType {
8
+ UDP = "udp",
9
+ BLE = "ble",
10
+ TCP = "tcp",
11
+ }
12
+
13
+ export interface Channel<T> {
14
+ /** Maximum Payload size for this channel */
15
+ maxPayloadSize: number;
16
+
17
+ /** Is the transport Reliable? UDP is not, TCP and BTP are. */
18
+ isReliable: boolean;
19
+
20
+ /** Channel name */
21
+ name: string;
22
+
23
+ type: ChannelType;
24
+
25
+ /** Method to send data to the remote endpoint */
26
+ send(data: T): Promise<void>;
27
+
28
+ /** Method to close the channel */
29
+ close(): Promise<void>;
30
+ }
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2024 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+
7
+ import { Environment } from "#environment/Environment.js";
8
+ import { Environmental } from "#environment/Environmental.js";
9
+ import { Channel } from "./Channel.js";
10
+ import { ServerAddress } from "./ServerAddress.js";
11
+ import { TransportInterface, TransportInterfaceSet } from "./TransportInterface.js";
12
+
13
+ /**
14
+ * A Network interface enhances a TransportInterface with the ability to open a channel to a remote server.
15
+ */
16
+ export interface NetInterface extends TransportInterface {
17
+ openChannel(address: ServerAddress): Promise<Channel<Uint8Array>>;
18
+ }
19
+
20
+ export function isNetworkInterface(obj: TransportInterface | NetInterface): obj is NetInterface {
21
+ return "openChannel" in obj;
22
+ }
23
+
24
+ /**
25
+ * A collection of {@link NetInterfaces} managed as a unit.
26
+ */
27
+ export class NetInterfaceSet extends TransportInterfaceSet<NetInterface> {
28
+ [Environmental.create](env: Environment) {
29
+ const instance = new NetInterfaceSet();
30
+ env.set(NetInterfaceSet, this);
31
+ return instance;
32
+ }
33
+ }