@matter/nodejs 0.17.0-alpha.0-20260507-059f7763b → 0.17.0-alpha.0-20260508-29ff5ae9e

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 (273) hide show
  1. package/package.json +9 -9
  2. package/dist/cjs/behavior/index.d.ts +0 -7
  3. package/dist/cjs/behavior/index.d.ts.map +0 -1
  4. package/dist/cjs/behavior/index.js +0 -8
  5. package/dist/cjs/behavior/index.js.map +0 -6
  6. package/dist/cjs/behavior/instrumentation.d.ts +0 -11
  7. package/dist/cjs/behavior/instrumentation.d.ts.map +0 -1
  8. package/dist/cjs/behavior/instrumentation.js +0 -39
  9. package/dist/cjs/behavior/instrumentation.js.map +0 -6
  10. package/dist/cjs/behavior/register.d.ts +0 -7
  11. package/dist/cjs/behavior/register.d.ts.map +0 -1
  12. package/dist/cjs/behavior/register.js +0 -9
  13. package/dist/cjs/behavior/register.js.map +0 -6
  14. package/dist/cjs/config.d.ts +0 -98
  15. package/dist/cjs/config.d.ts.map +0 -1
  16. package/dist/cjs/config.js +0 -210
  17. package/dist/cjs/config.js.map +0 -6
  18. package/dist/cjs/crypto/NodeJsCrypto.d.ts +0 -13
  19. package/dist/cjs/crypto/NodeJsCrypto.d.ts.map +0 -1
  20. package/dist/cjs/crypto/NodeJsCrypto.js +0 -46
  21. package/dist/cjs/crypto/NodeJsCrypto.js.map +0 -6
  22. package/dist/cjs/crypto/index.d.ts +0 -7
  23. package/dist/cjs/crypto/index.d.ts.map +0 -1
  24. package/dist/cjs/crypto/index.js +0 -24
  25. package/dist/cjs/crypto/index.js.map +0 -6
  26. package/dist/cjs/environment/NodeJsEnvironment.d.ts +0 -77
  27. package/dist/cjs/environment/NodeJsEnvironment.d.ts.map +0 -1
  28. package/dist/cjs/environment/NodeJsEnvironment.js +0 -254
  29. package/dist/cjs/environment/NodeJsEnvironment.js.map +0 -6
  30. package/dist/cjs/environment/ProcessManager.d.ts +0 -48
  31. package/dist/cjs/environment/ProcessManager.d.ts.map +0 -1
  32. package/dist/cjs/environment/ProcessManager.js +0 -129
  33. package/dist/cjs/environment/ProcessManager.js.map +0 -6
  34. package/dist/cjs/environment/index.d.ts +0 -9
  35. package/dist/cjs/environment/index.d.ts.map +0 -1
  36. package/dist/cjs/environment/index.js +0 -26
  37. package/dist/cjs/environment/index.js.map +0 -6
  38. package/dist/cjs/environment/register.d.ts +0 -7
  39. package/dist/cjs/environment/register.d.ts.map +0 -1
  40. package/dist/cjs/environment/register.js +0 -10
  41. package/dist/cjs/environment/register.js.map +0 -6
  42. package/dist/cjs/fs/NodeJsDirectory.d.ts +0 -24
  43. package/dist/cjs/fs/NodeJsDirectory.d.ts.map +0 -1
  44. package/dist/cjs/fs/NodeJsDirectory.js +0 -102
  45. package/dist/cjs/fs/NodeJsDirectory.js.map +0 -6
  46. package/dist/cjs/fs/NodeJsFile.d.ts +0 -22
  47. package/dist/cjs/fs/NodeJsFile.d.ts.map +0 -1
  48. package/dist/cjs/fs/NodeJsFile.js +0 -248
  49. package/dist/cjs/fs/NodeJsFile.js.map +0 -6
  50. package/dist/cjs/fs/NodeJsFilesystem.d.ts +0 -27
  51. package/dist/cjs/fs/NodeJsFilesystem.d.ts.map +0 -1
  52. package/dist/cjs/fs/NodeJsFilesystem.js +0 -83
  53. package/dist/cjs/fs/NodeJsFilesystem.js.map +0 -6
  54. package/dist/cjs/fs/fs-utils.d.ts +0 -16
  55. package/dist/cjs/fs/fs-utils.d.ts.map +0 -1
  56. package/dist/cjs/fs/fs-utils.js +0 -154
  57. package/dist/cjs/fs/fs-utils.js.map +0 -6
  58. package/dist/cjs/fs/index.d.ts +0 -7
  59. package/dist/cjs/fs/index.d.ts.map +0 -1
  60. package/dist/cjs/fs/index.js +0 -24
  61. package/dist/cjs/fs/index.js.map +0 -6
  62. package/dist/cjs/fs/lock-utils.d.ts +0 -12
  63. package/dist/cjs/fs/lock-utils.d.ts.map +0 -1
  64. package/dist/cjs/fs/lock-utils.js +0 -132
  65. package/dist/cjs/fs/lock-utils.js.map +0 -6
  66. package/dist/cjs/index.d.ts +0 -14
  67. package/dist/cjs/index.d.ts.map +0 -1
  68. package/dist/cjs/index.js +0 -31
  69. package/dist/cjs/index.js.map +0 -6
  70. package/dist/cjs/log/FileLogger.d.ts +0 -12
  71. package/dist/cjs/log/FileLogger.d.ts.map +0 -1
  72. package/dist/cjs/log/FileLogger.js +0 -46
  73. package/dist/cjs/log/FileLogger.js.map +0 -6
  74. package/dist/cjs/log/index.d.ts +0 -7
  75. package/dist/cjs/log/index.d.ts.map +0 -1
  76. package/dist/cjs/log/index.js +0 -24
  77. package/dist/cjs/log/index.js.map +0 -6
  78. package/dist/cjs/net/NodeJsHttpEndpoint.d.ts +0 -38
  79. package/dist/cjs/net/NodeJsHttpEndpoint.d.ts.map +0 -1
  80. package/dist/cjs/net/NodeJsHttpEndpoint.js +0 -306
  81. package/dist/cjs/net/NodeJsHttpEndpoint.js.map +0 -6
  82. package/dist/cjs/net/NodeJsNetwork.d.ts +0 -37
  83. package/dist/cjs/net/NodeJsNetwork.d.ts.map +0 -1
  84. package/dist/cjs/net/NodeJsNetwork.js +0 -199
  85. package/dist/cjs/net/NodeJsNetwork.js.map +0 -6
  86. package/dist/cjs/net/NodeJsTcpConnection.d.ts +0 -24
  87. package/dist/cjs/net/NodeJsTcpConnection.d.ts.map +0 -1
  88. package/dist/cjs/net/NodeJsTcpConnection.js +0 -138
  89. package/dist/cjs/net/NodeJsTcpConnection.js.map +0 -6
  90. package/dist/cjs/net/NodeJsTcpListener.d.ts +0 -19
  91. package/dist/cjs/net/NodeJsTcpListener.d.ts.map +0 -1
  92. package/dist/cjs/net/NodeJsTcpListener.js +0 -100
  93. package/dist/cjs/net/NodeJsTcpListener.js.map +0 -6
  94. package/dist/cjs/net/NodeJsUdpSocket.d.ts +0 -23
  95. package/dist/cjs/net/NodeJsUdpSocket.d.ts.map +0 -1
  96. package/dist/cjs/net/NodeJsUdpSocket.js +0 -394
  97. package/dist/cjs/net/NodeJsUdpSocket.js.map +0 -6
  98. package/dist/cjs/net/WsAdapter.d.ts +0 -25
  99. package/dist/cjs/net/WsAdapter.d.ts.map +0 -1
  100. package/dist/cjs/net/WsAdapter.js +0 -33
  101. package/dist/cjs/net/WsAdapter.js.map +0 -6
  102. package/dist/cjs/net/index.d.ts +0 -12
  103. package/dist/cjs/net/index.d.ts.map +0 -1
  104. package/dist/cjs/net/index.js +0 -29
  105. package/dist/cjs/net/index.js.map +0 -6
  106. package/dist/cjs/package.json +0 -6
  107. package/dist/cjs/storage/fs/DirectoryBlobStorageDriver.d.ts +0 -29
  108. package/dist/cjs/storage/fs/DirectoryBlobStorageDriver.d.ts.map +0 -1
  109. package/dist/cjs/storage/fs/DirectoryBlobStorageDriver.js +0 -155
  110. package/dist/cjs/storage/fs/DirectoryBlobStorageDriver.js.map +0 -6
  111. package/dist/cjs/storage/fs/FileStorageDriver.d.ts +0 -44
  112. package/dist/cjs/storage/fs/FileStorageDriver.d.ts.map +0 -1
  113. package/dist/cjs/storage/fs/FileStorageDriver.js +0 -334
  114. package/dist/cjs/storage/fs/FileStorageDriver.js.map +0 -6
  115. package/dist/cjs/storage/fs/FlatFileBlobStorageDriver.d.ts +0 -30
  116. package/dist/cjs/storage/fs/FlatFileBlobStorageDriver.d.ts.map +0 -1
  117. package/dist/cjs/storage/fs/FlatFileBlobStorageDriver.js +0 -195
  118. package/dist/cjs/storage/fs/FlatFileBlobStorageDriver.js.map +0 -6
  119. package/dist/cjs/storage/fs/JsonFileStorageDriver.d.ts +0 -27
  120. package/dist/cjs/storage/fs/JsonFileStorageDriver.d.ts.map +0 -1
  121. package/dist/cjs/storage/fs/JsonFileStorageDriver.js +0 -128
  122. package/dist/cjs/storage/fs/JsonFileStorageDriver.js.map +0 -6
  123. package/dist/cjs/storage/fs/WalBlobStorageDriver.d.ts +0 -19
  124. package/dist/cjs/storage/fs/WalBlobStorageDriver.d.ts.map +0 -1
  125. package/dist/cjs/storage/fs/WalBlobStorageDriver.js +0 -44
  126. package/dist/cjs/storage/fs/WalBlobStorageDriver.js.map +0 -6
  127. package/dist/cjs/storage/fs/index.d.ts +0 -21
  128. package/dist/cjs/storage/fs/index.d.ts.map +0 -1
  129. package/dist/cjs/storage/fs/index.js +0 -40
  130. package/dist/cjs/storage/fs/index.js.map +0 -6
  131. package/dist/cjs/storage/index.d.ts +0 -8
  132. package/dist/cjs/storage/index.d.ts.map +0 -1
  133. package/dist/cjs/storage/index.js +0 -25
  134. package/dist/cjs/storage/index.js.map +0 -6
  135. package/dist/cjs/storage/sqlite/SqliteBlobStorageDriver.d.ts +0 -48
  136. package/dist/cjs/storage/sqlite/SqliteBlobStorageDriver.d.ts.map +0 -1
  137. package/dist/cjs/storage/sqlite/SqliteBlobStorageDriver.js +0 -217
  138. package/dist/cjs/storage/sqlite/SqliteBlobStorageDriver.js.map +0 -6
  139. package/dist/cjs/storage/sqlite/SqlitePlatform.d.ts +0 -23
  140. package/dist/cjs/storage/sqlite/SqlitePlatform.d.ts.map +0 -1
  141. package/dist/cjs/storage/sqlite/SqlitePlatform.js +0 -56
  142. package/dist/cjs/storage/sqlite/SqlitePlatform.js.map +0 -6
  143. package/dist/cjs/storage/sqlite/SqliteStorageDriver.d.ts +0 -102
  144. package/dist/cjs/storage/sqlite/SqliteStorageDriver.d.ts.map +0 -1
  145. package/dist/cjs/storage/sqlite/SqliteStorageDriver.js +0 -424
  146. package/dist/cjs/storage/sqlite/SqliteStorageDriver.js.map +0 -6
  147. package/dist/cjs/storage/sqlite/SqliteStorageDriverError.d.ts +0 -19
  148. package/dist/cjs/storage/sqlite/SqliteStorageDriverError.d.ts.map +0 -1
  149. package/dist/cjs/storage/sqlite/SqliteStorageDriverError.js +0 -41
  150. package/dist/cjs/storage/sqlite/SqliteStorageDriverError.js.map +0 -6
  151. package/dist/cjs/storage/sqlite/SqliteTypes.d.ts +0 -67
  152. package/dist/cjs/storage/sqlite/SqliteTypes.d.ts.map +0 -1
  153. package/dist/cjs/storage/sqlite/SqliteTypes.js +0 -35
  154. package/dist/cjs/storage/sqlite/SqliteTypes.js.map +0 -6
  155. package/dist/cjs/storage/sqlite/SqliteUtil.d.ts +0 -33
  156. package/dist/cjs/storage/sqlite/SqliteUtil.d.ts.map +0 -1
  157. package/dist/cjs/storage/sqlite/SqliteUtil.js +0 -64
  158. package/dist/cjs/storage/sqlite/SqliteUtil.js.map +0 -6
  159. package/dist/cjs/storage/sqlite/index.d.ts +0 -15
  160. package/dist/cjs/storage/sqlite/index.d.ts.map +0 -1
  161. package/dist/cjs/storage/sqlite/index.js +0 -37
  162. package/dist/cjs/storage/sqlite/index.js.map +0 -6
  163. package/dist/cjs/storage/sqlite/platform/BunSqlite.d.ts +0 -13
  164. package/dist/cjs/storage/sqlite/platform/BunSqlite.d.ts.map +0 -1
  165. package/dist/cjs/storage/sqlite/platform/BunSqlite.js +0 -61
  166. package/dist/cjs/storage/sqlite/platform/BunSqlite.js.map +0 -6
  167. package/dist/cjs/storage/sqlite/platform/NodeJsSqlite.d.ts +0 -8
  168. package/dist/cjs/storage/sqlite/platform/NodeJsSqlite.d.ts.map +0 -1
  169. package/dist/cjs/storage/sqlite/platform/NodeJsSqlite.js +0 -53
  170. package/dist/cjs/storage/sqlite/platform/NodeJsSqlite.js.map +0 -6
  171. package/dist/cjs/time/index.d.ts +0 -7
  172. package/dist/cjs/time/index.d.ts.map +0 -1
  173. package/dist/cjs/time/index.js +0 -8
  174. package/dist/cjs/time/index.js.map +0 -6
  175. package/dist/cjs/time/startup.d.ts +0 -7
  176. package/dist/cjs/time/startup.d.ts.map +0 -1
  177. package/dist/cjs/time/startup.js +0 -11
  178. package/dist/cjs/time/startup.js.map +0 -6
  179. package/dist/cjs/util/runtimeChecks.d.ts +0 -14
  180. package/dist/cjs/util/runtimeChecks.d.ts.map +0 -1
  181. package/dist/cjs/util/runtimeChecks.js +0 -45
  182. package/dist/cjs/util/runtimeChecks.js.map +0 -6
  183. package/dist/esm/behavior/index.js +0 -7
  184. package/dist/esm/behavior/index.js.map +0 -6
  185. package/dist/esm/behavior/instrumentation.js +0 -19
  186. package/dist/esm/behavior/instrumentation.js.map +0 -6
  187. package/dist/esm/behavior/register.js +0 -8
  188. package/dist/esm/behavior/register.js.map +0 -6
  189. package/dist/esm/config.js +0 -190
  190. package/dist/esm/config.js.map +0 -6
  191. package/dist/esm/crypto/NodeJsCrypto.js +0 -16
  192. package/dist/esm/crypto/NodeJsCrypto.js.map +0 -6
  193. package/dist/esm/crypto/index.js +0 -7
  194. package/dist/esm/crypto/index.js.map +0 -6
  195. package/dist/esm/environment/NodeJsEnvironment.js +0 -242
  196. package/dist/esm/environment/NodeJsEnvironment.js.map +0 -6
  197. package/dist/esm/environment/ProcessManager.js +0 -109
  198. package/dist/esm/environment/ProcessManager.js.map +0 -6
  199. package/dist/esm/environment/index.js +0 -9
  200. package/dist/esm/environment/index.js.map +0 -6
  201. package/dist/esm/environment/register.js +0 -9
  202. package/dist/esm/environment/register.js.map +0 -6
  203. package/dist/esm/fs/NodeJsDirectory.js +0 -82
  204. package/dist/esm/fs/NodeJsDirectory.js.map +0 -6
  205. package/dist/esm/fs/NodeJsFile.js +0 -232
  206. package/dist/esm/fs/NodeJsFile.js.map +0 -6
  207. package/dist/esm/fs/NodeJsFilesystem.js +0 -63
  208. package/dist/esm/fs/NodeJsFilesystem.js.map +0 -6
  209. package/dist/esm/fs/fs-utils.js +0 -137
  210. package/dist/esm/fs/fs-utils.js.map +0 -6
  211. package/dist/esm/fs/index.js +0 -7
  212. package/dist/esm/fs/index.js.map +0 -6
  213. package/dist/esm/fs/lock-utils.js +0 -112
  214. package/dist/esm/fs/lock-utils.js.map +0 -6
  215. package/dist/esm/index.js +0 -14
  216. package/dist/esm/index.js.map +0 -6
  217. package/dist/esm/log/FileLogger.js +0 -26
  218. package/dist/esm/log/FileLogger.js.map +0 -6
  219. package/dist/esm/log/index.js +0 -7
  220. package/dist/esm/log/index.js.map +0 -6
  221. package/dist/esm/net/NodeJsHttpEndpoint.js +0 -286
  222. package/dist/esm/net/NodeJsHttpEndpoint.js.map +0 -6
  223. package/dist/esm/net/NodeJsNetwork.js +0 -189
  224. package/dist/esm/net/NodeJsNetwork.js.map +0 -6
  225. package/dist/esm/net/NodeJsTcpConnection.js +0 -124
  226. package/dist/esm/net/NodeJsTcpConnection.js.map +0 -6
  227. package/dist/esm/net/NodeJsTcpListener.js +0 -86
  228. package/dist/esm/net/NodeJsTcpListener.js.map +0 -6
  229. package/dist/esm/net/NodeJsUdpSocket.js +0 -385
  230. package/dist/esm/net/NodeJsUdpSocket.js.map +0 -6
  231. package/dist/esm/net/WsAdapter.js +0 -13
  232. package/dist/esm/net/WsAdapter.js.map +0 -6
  233. package/dist/esm/net/index.js +0 -12
  234. package/dist/esm/net/index.js.map +0 -6
  235. package/dist/esm/package.json +0 -6
  236. package/dist/esm/storage/fs/DirectoryBlobStorageDriver.js +0 -140
  237. package/dist/esm/storage/fs/DirectoryBlobStorageDriver.js.map +0 -6
  238. package/dist/esm/storage/fs/FileStorageDriver.js +0 -323
  239. package/dist/esm/storage/fs/FileStorageDriver.js.map +0 -6
  240. package/dist/esm/storage/fs/FlatFileBlobStorageDriver.js +0 -180
  241. package/dist/esm/storage/fs/FlatFileBlobStorageDriver.js.map +0 -6
  242. package/dist/esm/storage/fs/JsonFileStorageDriver.js +0 -116
  243. package/dist/esm/storage/fs/JsonFileStorageDriver.js.map +0 -6
  244. package/dist/esm/storage/fs/WalBlobStorageDriver.js +0 -24
  245. package/dist/esm/storage/fs/WalBlobStorageDriver.js.map +0 -6
  246. package/dist/esm/storage/fs/index.js +0 -19
  247. package/dist/esm/storage/fs/index.js.map +0 -6
  248. package/dist/esm/storage/index.js +0 -8
  249. package/dist/esm/storage/index.js.map +0 -6
  250. package/dist/esm/storage/sqlite/SqliteBlobStorageDriver.js +0 -197
  251. package/dist/esm/storage/sqlite/SqliteBlobStorageDriver.js.map +0 -6
  252. package/dist/esm/storage/sqlite/SqlitePlatform.js +0 -26
  253. package/dist/esm/storage/sqlite/SqlitePlatform.js.map +0 -6
  254. package/dist/esm/storage/sqlite/SqliteStorageDriver.js +0 -409
  255. package/dist/esm/storage/sqlite/SqliteStorageDriver.js.map +0 -6
  256. package/dist/esm/storage/sqlite/SqliteStorageDriverError.js +0 -21
  257. package/dist/esm/storage/sqlite/SqliteStorageDriverError.js.map +0 -6
  258. package/dist/esm/storage/sqlite/SqliteTypes.js +0 -15
  259. package/dist/esm/storage/sqlite/SqliteTypes.js.map +0 -6
  260. package/dist/esm/storage/sqlite/SqliteUtil.js +0 -44
  261. package/dist/esm/storage/sqlite/SqliteUtil.js.map +0 -6
  262. package/dist/esm/storage/sqlite/index.js +0 -17
  263. package/dist/esm/storage/sqlite/index.js.map +0 -6
  264. package/dist/esm/storage/sqlite/platform/BunSqlite.js +0 -41
  265. package/dist/esm/storage/sqlite/platform/BunSqlite.js.map +0 -6
  266. package/dist/esm/storage/sqlite/platform/NodeJsSqlite.js +0 -33
  267. package/dist/esm/storage/sqlite/platform/NodeJsSqlite.js.map +0 -6
  268. package/dist/esm/time/index.js +0 -7
  269. package/dist/esm/time/index.js.map +0 -6
  270. package/dist/esm/time/startup.js +0 -10
  271. package/dist/esm/time/startup.js.map +0 -6
  272. package/dist/esm/util/runtimeChecks.js +0 -25
  273. package/dist/esm/util/runtimeChecks.js.map +0 -6
@@ -1,124 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import {
7
- Bytes,
8
- NetworkError,
9
- Seconds,
10
- TCP_KEEP_ALIVE_INITIAL_DELAY_MS,
11
- withTimeout
12
- } from "@matter/general";
13
- const TCP_CLOSE_TIMEOUT = Seconds(5);
14
- class NodeJsTcpConnection {
15
- remoteAddress;
16
- remotePort;
17
- localPort;
18
- #socket;
19
- #ended = false;
20
- /** Queued chunks waiting for the async iterator to consume. */
21
- #chunks = new Array();
22
- /** Resolver for a pending iterator next() call waiting for data. */
23
- #waiter;
24
- constructor(socket) {
25
- this.#socket = socket;
26
- socket.setNoDelay(true);
27
- socket.setKeepAlive(true, TCP_KEEP_ALIVE_INITIAL_DELAY_MS);
28
- this.remoteAddress = socket.remoteAddress ?? "";
29
- this.remotePort = socket.remotePort ?? 0;
30
- this.localPort = socket.localPort ?? 0;
31
- socket.on("data", (data) => {
32
- const chunk = new Uint8Array(data);
33
- if (this.#waiter) {
34
- const resolve = this.#waiter;
35
- this.#waiter = void 0;
36
- resolve({ value: chunk, done: false });
37
- } else {
38
- this.#chunks.push(chunk);
39
- if (this.#chunks.length > 1) {
40
- socket.pause();
41
- }
42
- }
43
- });
44
- socket.on("close", () => {
45
- this.#ended = true;
46
- this.#waiter?.({ value: void 0, done: true });
47
- this.#waiter = void 0;
48
- });
49
- socket.on("error", (_error) => {
50
- this.#ended = true;
51
- this.#waiter?.({ value: void 0, done: true });
52
- this.#waiter = void 0;
53
- });
54
- }
55
- [Symbol.asyncIterator]() {
56
- return {
57
- next: () => {
58
- if (this.#chunks.length > 0) {
59
- const chunk = this.#chunks.shift();
60
- if (this.#chunks.length === 0) {
61
- this.#socket.resume();
62
- }
63
- return Promise.resolve({ value: chunk, done: false });
64
- }
65
- if (this.#ended) {
66
- return Promise.resolve({ value: void 0, done: true });
67
- }
68
- this.#socket.resume();
69
- return new Promise((resolve) => {
70
- this.#waiter = resolve;
71
- });
72
- }
73
- };
74
- }
75
- send(data) {
76
- return new Promise((resolve, reject) => {
77
- this.#socket.write(Bytes.of(data), (error) => {
78
- if (error) {
79
- reject(new NetworkError(error.message));
80
- } else {
81
- resolve();
82
- }
83
- });
84
- });
85
- }
86
- onClose(listener) {
87
- this.#socket.on("close", listener);
88
- return {
89
- close: async () => {
90
- this.#socket.removeListener("close", listener);
91
- }
92
- };
93
- }
94
- onError(listener) {
95
- const handler = (error) => {
96
- listener(new NetworkError(error.message));
97
- };
98
- this.#socket.on("error", handler);
99
- return {
100
- close: async () => {
101
- this.#socket.removeListener("error", handler);
102
- }
103
- };
104
- }
105
- async close() {
106
- if (this.#socket.destroyed) {
107
- return;
108
- }
109
- this.#ended = true;
110
- this.#waiter?.({ value: void 0, done: true });
111
- this.#waiter = void 0;
112
- const closed = new Promise((resolve) => {
113
- this.#socket.once("close", () => resolve());
114
- this.#socket.end();
115
- });
116
- await withTimeout(TCP_CLOSE_TIMEOUT, closed, () => {
117
- this.#socket.destroy();
118
- });
119
- }
120
- }
121
- export {
122
- NodeJsTcpConnection
123
- };
124
- //# sourceMappingURL=NodeJsTcpConnection.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/net/NodeJsTcpConnection.ts"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,86 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import {
7
- Logger,
8
- NetworkError,
9
- Seconds,
10
- TCP_KEEP_ALIVE_INITIAL_DELAY_MS,
11
- withTimeout
12
- } from "@matter/general";
13
- import { createServer } from "node:net";
14
- import { NodeJsTcpConnection } from "./NodeJsTcpConnection.js";
15
- const logger = Logger.get("NodeJsTcpListener");
16
- const TCP_LISTEN_TIMEOUT = Seconds(10);
17
- function serverPort(server) {
18
- const addr = server.address();
19
- if (addr === null || typeof addr === "string") {
20
- throw new NetworkError(`TCP server address is not an IP address: ${addr}`);
21
- }
22
- return addr.port;
23
- }
24
- class NodeJsTcpListener {
25
- #server;
26
- #activeSockets = /* @__PURE__ */ new Set();
27
- static async create(options = {}) {
28
- const { listeningPort, listeningAddress } = options;
29
- const server = createServer({
30
- keepAlive: true,
31
- keepAliveInitialDelay: TCP_KEEP_ALIVE_INITIAL_DELAY_MS
32
- });
33
- const listening = new Promise((resolve, reject) => {
34
- const handleError = (error) => {
35
- server.removeListener("error", handleError);
36
- reject(new NetworkError(error.message));
37
- };
38
- server.on("error", handleError);
39
- server.listen(listeningPort ?? 0, listeningAddress, () => {
40
- server.removeListener("error", handleError);
41
- resolve();
42
- });
43
- });
44
- await withTimeout(TCP_LISTEN_TIMEOUT, listening, () => {
45
- server.close();
46
- throw new NetworkError("TCP server listen timeout");
47
- });
48
- const port = serverPort(server);
49
- logger.debug(`TCP server listening on ${listeningAddress ?? "all interfaces"} port ${port}`);
50
- return new NodeJsTcpListener(server);
51
- }
52
- constructor(server) {
53
- this.#server = server;
54
- server.on("connection", (socket) => {
55
- this.#activeSockets.add(socket);
56
- socket.once("close", () => this.#activeSockets.delete(socket));
57
- });
58
- }
59
- get port() {
60
- return serverPort(this.#server);
61
- }
62
- onConnection(listener) {
63
- const handler = (socket) => {
64
- listener(new NodeJsTcpConnection(socket));
65
- };
66
- this.#server.on("connection", handler);
67
- return {
68
- close: async () => {
69
- this.#server.removeListener("connection", handler);
70
- }
71
- };
72
- }
73
- async close() {
74
- for (const socket of this.#activeSockets) {
75
- socket.destroy();
76
- }
77
- this.#activeSockets.clear();
78
- await new Promise((resolve, reject) => {
79
- this.#server.close((error) => error ? reject(error) : resolve());
80
- });
81
- }
82
- }
83
- export {
84
- NodeJsTcpListener
85
- };
86
- //# sourceMappingURL=NodeJsTcpListener.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/net/NodeJsTcpListener.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAKA;AAAA,OACG;AACP,SAAS,oBAA8C;AACvD,SAAS,2BAA2B;AAEpC,MAAM,SAAS,OAAO,IAAI,mBAAmB;AAG7C,MAAM,qBAAqB,QAAQ,EAAE;AAErC,SAAS,WAAW,QAAwB;AACxC,QAAM,OAAO,OAAO,QAAQ;AAC5B,MAAI,SAAS,QAAQ,OAAO,SAAS,UAAU;AAC3C,UAAM,IAAI,aAAa,4CAA4C,IAAI,EAAE;AAAA,EAC7E;AACA,SAAO,KAAK;AAChB;AAMO,MAAM,kBAAyC;AAAA,EACzC;AAAA,EACA,iBAAiB,oBAAI,IAAY;AAAA,EAE1C,aAAa,OAAO,UAA8B,CAAC,GAA+B;AAC9E,UAAM,EAAE,eAAe,iBAAiB,IAAI;AAE5C,UAAM,SAAS,aAAa;AAAA,MACxB,WAAW;AAAA,MACX,uBAAuB;AAAA,IAC3B,CAAC;AAED,UAAM,YAAY,IAAI,QAAc,CAAC,SAAS,WAAW;AACrD,YAAM,cAAc,CAAC,UAAiB;AAClC,eAAO,eAAe,SAAS,WAAW;AAC1C,eAAO,IAAI,aAAa,MAAM,OAAO,CAAC;AAAA,MAC1C;AACA,aAAO,GAAG,SAAS,WAAW;AAC9B,aAAO,OAAO,iBAAiB,GAAG,kBAAkB,MAAM;AACtD,eAAO,eAAe,SAAS,WAAW;AAC1C,gBAAQ;AAAA,MACZ,CAAC;AAAA,IACL,CAAC;AAED,UAAM,YAAY,oBAAoB,WAAW,MAAM;AACnD,aAAO,MAAM;AACb,YAAM,IAAI,aAAa,2BAA2B;AAAA,IACtD,CAAC;AAED,UAAM,OAAO,WAAW,MAAM;AAC9B,WAAO,MAAM,2BAA2B,oBAAoB,gBAAgB,SAAS,IAAI,EAAE;AAE3F,WAAO,IAAI,kBAAkB,MAAM;AAAA,EACvC;AAAA,EAEQ,YAAY,QAAgB;AAChC,SAAK,UAAU;AAEf,WAAO,GAAG,cAAc,CAAC,WAAmB;AACxC,WAAK,eAAe,IAAI,MAAM;AAC9B,aAAO,KAAK,SAAS,MAAM,KAAK,eAAe,OAAO,MAAM,CAAC;AAAA,IACjE,CAAC;AAAA,EACL;AAAA,EAEA,IAAI,OAAe;AACf,WAAO,WAAW,KAAK,OAAO;AAAA,EAClC;AAAA,EAEA,aAAa,UAA+D;AACxE,UAAM,UAAU,CAAC,WAAmB;AAChC,eAAS,IAAI,oBAAoB,MAAM,CAAC;AAAA,IAC5C;AACA,SAAK,QAAQ,GAAG,cAAc,OAAO;AACrC,WAAO;AAAA,MACH,OAAO,YAAY;AACf,aAAK,QAAQ,eAAe,cAAc,OAAO;AAAA,MACrD;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,QAAuB;AAEzB,eAAW,UAAU,KAAK,gBAAgB;AACtC,aAAO,QAAQ;AAAA,IACnB;AACA,SAAK,eAAe,MAAM;AAE1B,UAAM,IAAI,QAAc,CAAC,SAAS,WAAW;AACzC,WAAK,QAAQ,MAAM,WAAU,QAAQ,OAAO,KAAK,IAAI,QAAQ,CAAE;AAAA,IACnE,CAAC;AAAA,EACL;AACJ;",
5
- "names": []
6
- }
@@ -1,385 +0,0 @@
1
- var __knownSymbol = (name, symbol) => (symbol = Symbol[name]) ? symbol : /* @__PURE__ */ Symbol.for("Symbol." + name);
2
- var __typeError = (msg) => {
3
- throw TypeError(msg);
4
- };
5
- var __using = (stack, value, async) => {
6
- if (value != null) {
7
- if (typeof value !== "object" && typeof value !== "function") __typeError("Object expected");
8
- var dispose, inner;
9
- if (async) dispose = value[__knownSymbol("asyncDispose")];
10
- if (dispose === void 0) {
11
- dispose = value[__knownSymbol("dispose")];
12
- if (async) inner = dispose;
13
- }
14
- if (typeof dispose !== "function") __typeError("Object not disposable");
15
- if (inner) dispose = function() {
16
- try {
17
- inner.call(this);
18
- } catch (e) {
19
- return Promise.reject(e);
20
- }
21
- };
22
- stack.push([async, dispose, value]);
23
- } else if (async) {
24
- stack.push([async]);
25
- }
26
- return value;
27
- };
28
- var __callDispose = (stack, error, hasError) => {
29
- var E = typeof SuppressedError === "function" ? SuppressedError : function(e, s, m, _) {
30
- return _ = Error(m), _.name = "SuppressedError", _.error = e, _.suppressed = s, _;
31
- };
32
- var fail = (e) => error = hasError ? new E(e, error, "An error was suppressed during disposal") : (hasError = true, e);
33
- var next = (it) => {
34
- while (it = stack.pop()) {
35
- try {
36
- var result = it[1] && it[1].call(it[2]);
37
- if (it[0]) return Promise.resolve(result).then(next, (e) => (fail(e), next()));
38
- } catch (e) {
39
- fail(e);
40
- }
41
- }
42
- if (hasError) throw error;
43
- };
44
- return next();
45
- };
46
- /**
47
- * @license
48
- * Copyright 2022-2026 Matter.js Authors
49
- * SPDX-License-Identifier: Apache-2.0
50
- */
51
- import {
52
- AddressInUseError,
53
- AddressUnreachableError,
54
- BindError,
55
- Bytes,
56
- ChannelType,
57
- createPromise,
58
- Diagnostic,
59
- ImplementationError,
60
- isIPv4,
61
- isIPv6,
62
- Lifetime,
63
- Logger,
64
- MAX_UDP_MESSAGE_SIZE,
65
- Millis,
66
- NetworkError,
67
- NetworkUnreachableError,
68
- NoAddressAvailableError,
69
- repackErrorAs,
70
- Seconds,
71
- Time
72
- } from "@matter/general";
73
- import * as dgram from "node:dgram";
74
- import { NodeJsNetwork } from "./NodeJsNetwork.js";
75
- const logger = Logger.get("NodejsChannel");
76
- const UDP_SEND_TIMEOUT_CHECK_INTERVAL = Seconds.one;
77
- function createDgramSocket(host, port, options) {
78
- const socket = dgram.createSocket(options);
79
- return new Promise((resolve, reject) => {
80
- const handleBindError = (error) => {
81
- try {
82
- socket.close();
83
- } catch (error2) {
84
- logger.debug("Error closing socket:", error2);
85
- }
86
- const code = error?.code;
87
- let desc = `${host ? host : options.type === "udp4" ? "0.0.0.0" : "{::}"}`;
88
- if (port !== void 0) {
89
- desc = `${desc}:${port}`;
90
- }
91
- switch (code) {
92
- case "EADDRINUSE":
93
- error = new AddressInUseError(`Cannot bind ${desc} because port is already in use`);
94
- break;
95
- default:
96
- error = new BindError(`Cannot bind to ${desc} (code ${code})`);
97
- break;
98
- }
99
- reject(error);
100
- };
101
- socket.on("error", handleBindError);
102
- socket.bind(port, host, () => {
103
- const { address: localHost, port: localPort } = socket.address();
104
- logger.debug(
105
- "Socket created and bound ",
106
- Diagnostic.dict({
107
- remoteAddress: `${host}:${port}`,
108
- localAddress: `${localHost}:${localPort}`
109
- })
110
- );
111
- socket.removeListener("error", handleBindError);
112
- socket.on("error", (error) => logger.error(error));
113
- resolve(socket);
114
- });
115
- });
116
- }
117
- class NodeJsUdpSocket {
118
- #lifetime;
119
- #type;
120
- #socket;
121
- #netInterface;
122
- #observedInterface;
123
- static async create({
124
- lifetime: lifetimeOwner,
125
- listeningPort,
126
- type,
127
- listeningAddress,
128
- netInterface,
129
- reuseAddress
130
- }) {
131
- var _stack2 = [];
132
- try {
133
- const name = `${listeningAddress?.includes(":") ? `[${listeningAddress}]` : listeningAddress ?? "*"}:${listeningPort}`;
134
- const lifetime = __using(_stack2, (lifetimeOwner ?? Lifetime.process).join("socket", Diagnostic.strong(name)));
135
- lifetime.details.intf = netInterface;
136
- let dgramType;
137
- switch (type) {
138
- case "udp":
139
- case "udp6":
140
- dgramType = "udp6";
141
- break;
142
- case "udp4":
143
- dgramType = "udp4";
144
- break;
145
- default:
146
- throw new ImplementationError(`Unrecognized UDP socket type ${type}`);
147
- }
148
- const socketOptions = { type: dgramType };
149
- if (type === "udp6") {
150
- socketOptions.ipv6Only = true;
151
- }
152
- if (reuseAddress) {
153
- socketOptions.reuseAddr = true;
154
- }
155
- let socket;
156
- {
157
- var _stack = [];
158
- try {
159
- const _creating = __using(_stack, lifetime.join("creating"));
160
- socket = await createDgramSocket(listeningAddress, listeningPort, socketOptions);
161
- } catch (_) {
162
- var _error = _, _hasError = true;
163
- } finally {
164
- __callDispose(_stack, _error, _hasError);
165
- }
166
- }
167
- socket.setBroadcast(true);
168
- let netInterfaceZone;
169
- if (netInterface === void 0 && listeningAddress !== void 0) {
170
- netInterfaceZone = NodeJsNetwork.getNetInterfaceForIp(listeningAddress) || void 0;
171
- }
172
- if (netInterface !== void 0) {
173
- netInterfaceZone = NodeJsNetwork.getNetInterfaceZoneIpv6(netInterface);
174
- let multicastInterface;
175
- if (type === "udp4") {
176
- multicastInterface = NodeJsNetwork.getMulticastInterfaceIpv4(netInterface);
177
- if (multicastInterface === void 0) {
178
- throw new NoAddressAvailableError(`No IPv4 addresses on interface "${netInterface}"`);
179
- }
180
- } else {
181
- if (netInterfaceZone === void 0) {
182
- throw new NoAddressAvailableError(`No IPv6 addresses on interface "${netInterface}"`);
183
- }
184
- multicastInterface = `::%${netInterfaceZone}`;
185
- }
186
- logger.debug(
187
- "Initialize multicast",
188
- Diagnostic.dict({
189
- address: `${multicastInterface}:${listeningPort}`,
190
- interface: netInterface,
191
- type
192
- })
193
- );
194
- socket.setMulticastInterface(multicastInterface);
195
- }
196
- return new NodeJsUdpSocket(lifetime, type, socket, netInterfaceZone);
197
- } catch (_2) {
198
- var _error2 = _2, _hasError2 = true;
199
- } finally {
200
- __callDispose(_stack2, _error2, _hasError2);
201
- }
202
- }
203
- maxPayloadSize = MAX_UDP_MESSAGE_SIZE;
204
- /**
205
- * Timer for a maximum interval to check for dangling send calls that are not completed.
206
- * The way it is implemented we ensure that any "send" is rejected latest after < 2s
207
- */
208
- #sendTimer = Time.getTimer(
209
- "UDPChannel.send timeout check",
210
- UDP_SEND_TIMEOUT_CHECK_INTERVAL,
211
- () => this.#rejectDanglingSends()
212
- );
213
- #sendsInProgress = /* @__PURE__ */ new Map();
214
- constructor(lifetime, type, socket, netInterface) {
215
- this.#lifetime = lifetime;
216
- this.#type = type;
217
- this.#socket = socket;
218
- this.#netInterface = netInterface;
219
- }
220
- addMembership(membershipAddress) {
221
- const multicastInterfaces = NodeJsNetwork.getMembershipMulticastInterfaces(
222
- this.#netInterface,
223
- this.#type === "udp4"
224
- );
225
- for (const multicastInterface of multicastInterfaces) {
226
- try {
227
- this.#socket.addMembership(membershipAddress, multicastInterface);
228
- } catch (error) {
229
- logger.warn(
230
- `Error adding membership for address ${membershipAddress}${multicastInterface ? ` with interface ${multicastInterface}` : ""}: ${error}`
231
- );
232
- }
233
- }
234
- }
235
- dropMembership(membershipAddress) {
236
- const multicastInterfaces = NodeJsNetwork.getMembershipMulticastInterfaces(
237
- this.#netInterface,
238
- this.#type === "udp4"
239
- );
240
- for (const multicastInterface of multicastInterfaces) {
241
- try {
242
- this.#socket.dropMembership(membershipAddress, multicastInterface);
243
- } catch (error) {
244
- logger.warn(
245
- `Error removing membership for address ${membershipAddress}${multicastInterface ? ` with interface ${multicastInterface}` : ""}: ${error}`
246
- );
247
- }
248
- }
249
- }
250
- onData(listener) {
251
- const messageListener = (data, { address, port }) => {
252
- const netInterface = this.#netInterface ?? NodeJsNetwork.getNetInterfaceForIp(address);
253
- if (netInterface && this.#observedInterface === void 0) {
254
- this.#observedInterface = netInterface;
255
- }
256
- listener(netInterface, address, port, data);
257
- };
258
- this.#socket.on("message", messageListener);
259
- return {
260
- close: async () => {
261
- this.#socket.removeListener("message", messageListener);
262
- }
263
- };
264
- }
265
- /**
266
- * At minimum once every second we check for dangling sends that are not completed. That means that a dangling send
267
- * is removed very latest after <2s.
268
- */
269
- #rejectDanglingSends() {
270
- if (this.#sendsInProgress.size === 0) {
271
- return;
272
- }
273
- const now = Time.nowMs;
274
- for (const [promise, { sendMs, rejecter }] of this.#sendsInProgress) {
275
- const elapsed = Millis(now - sendMs);
276
- if (elapsed >= UDP_SEND_TIMEOUT_CHECK_INTERVAL) {
277
- this.#sendsInProgress.delete(promise);
278
- rejecter(new NetworkError("UDP send timeout"));
279
- }
280
- }
281
- if (this.#sendsInProgress.size > 0) {
282
- this.#sendTimer.start();
283
- }
284
- }
285
- async send(host, port, data) {
286
- const { promise, resolver, rejecter } = createPromise();
287
- const rejectOrResolve = (error) => {
288
- if (!this.#sendsInProgress.has(promise)) {
289
- return;
290
- }
291
- this.#sendsInProgress.delete(promise);
292
- if (!error) {
293
- resolver();
294
- } else {
295
- let repackAs;
296
- if ("code" in error) {
297
- switch (error.code) {
298
- case "EHOSTUNREACH":
299
- repackAs = AddressUnreachableError;
300
- break;
301
- case "ENETUNREACH":
302
- repackAs = NetworkUnreachableError;
303
- break;
304
- default:
305
- repackAs = NetworkError;
306
- break;
307
- }
308
- } else {
309
- repackAs = NetworkError;
310
- }
311
- rejecter(repackErrorAs(error, repackAs));
312
- }
313
- };
314
- let sendHost = host;
315
- if (host.startsWith("ff") && !host.includes("%")) {
316
- let effectiveInterface = this.#netInterface ?? this.#observedInterface;
317
- if (!effectiveInterface) {
318
- const boundAddress = this.#socket.address();
319
- if ("address" in boundAddress && boundAddress.address !== "::") {
320
- effectiveInterface = NodeJsNetwork.getNetInterfaceForIp(boundAddress.address);
321
- }
322
- if (!effectiveInterface) {
323
- effectiveInterface = NodeJsNetwork.getDefaultNetInterface();
324
- }
325
- if (effectiveInterface) {
326
- this.#observedInterface = effectiveInterface;
327
- }
328
- }
329
- if (effectiveInterface) {
330
- sendHost = `${host}%${effectiveInterface}`;
331
- } else {
332
- throw new NetworkError(
333
- `Cannot send to multicast address ${host} without a known network interface. Configure network.listeningAddressIpv6 to bind to a specific interface.`
334
- );
335
- }
336
- }
337
- this.#sendsInProgress.set(promise, { sendMs: Time.nowMs, rejecter });
338
- if (!this.#sendTimer.isRunning) {
339
- this.#sendTimer.start();
340
- }
341
- try {
342
- this.#socket.send(Bytes.of(data), port, sendHost, (error) => rejectOrResolve(error));
343
- } catch (error) {
344
- rejectOrResolve(repackErrorAs(error, NetworkError));
345
- }
346
- return promise;
347
- }
348
- async close() {
349
- var _stack = [];
350
- try {
351
- const _closing = __using(_stack, this.#lifetime.closing());
352
- this.#sendTimer.stop();
353
- try {
354
- await new Promise((resolve) => this.#socket.close(resolve));
355
- } catch (error) {
356
- if (!(error instanceof Error) || error.message !== "Not running") {
357
- logger.debug("Error on closing socket", error);
358
- }
359
- }
360
- } catch (_) {
361
- var _error = _, _hasError = true;
362
- } finally {
363
- __callDispose(_stack, _error, _hasError);
364
- }
365
- }
366
- get port() {
367
- return this.#socket.address().port;
368
- }
369
- supports(type, address) {
370
- if (type !== ChannelType.UDP) {
371
- return false;
372
- }
373
- if (address === void 0) {
374
- return true;
375
- }
376
- if (this.#type === "udp4") {
377
- return isIPv4(address);
378
- }
379
- return isIPv6(address);
380
- }
381
- }
382
- export {
383
- NodeJsUdpSocket
384
- };
385
- //# sourceMappingURL=NodeJsUdpSocket.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/net/NodeJsUdpSocket.ts"],
4
- "mappings": "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",
5
- "names": ["error", "_stack", "_", "_error", "_hasError"]
6
- }
@@ -1,13 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- var WsAdapter;
7
- ((WsAdapter2) => {
8
- WsAdapter2.defaultFactory = void 0;
9
- })(WsAdapter || (WsAdapter = {}));
10
- export {
11
- WsAdapter
12
- };
13
- //# sourceMappingURL=WsAdapter.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/net/WsAdapter.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAsBO,IAAU;AAAA,CAAV,CAAUA,eAAV;AAEI,EAAIA,WAAA,iBAAiB;AAAA,GAFf;",
5
- "names": ["WsAdapter"]
6
- }
@@ -1,12 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export * from "./NodeJsHttpEndpoint.js";
7
- export * from "./NodeJsNetwork.js";
8
- export * from "./NodeJsTcpConnection.js";
9
- export * from "./NodeJsTcpListener.js";
10
- export * from "./NodeJsUdpSocket.js";
11
- export * from "./WsAdapter.js";
12
- //# sourceMappingURL=index.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/net/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
- "names": []
6
- }
@@ -1,6 +0,0 @@
1
- {
2
- "type": "module",
3
- "imports": {
4
- "#*": "./*"
5
- }
6
- }