@matter/general 0.16.0-alpha.0-20251004-92135c7df → 0.16.0-alpha.0-20251011-d8942d7d5

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 (188) hide show
  1. package/dist/cjs/codec/Base64Codec.js +2 -2
  2. package/dist/cjs/codec/Base64Codec.js.map +1 -1
  3. package/dist/cjs/environment/Environment.d.ts +12 -12
  4. package/dist/cjs/environment/Environment.d.ts.map +1 -1
  5. package/dist/cjs/environment/Environment.js.map +1 -1
  6. package/dist/cjs/environment/Environmental.d.ts +16 -2
  7. package/dist/cjs/environment/Environmental.d.ts.map +1 -1
  8. package/dist/cjs/log/Logger.js +1 -1
  9. package/dist/cjs/net/Network.d.ts +4 -0
  10. package/dist/cjs/net/Network.d.ts.map +1 -1
  11. package/dist/cjs/net/Network.js +6 -0
  12. package/dist/cjs/net/Network.js.map +1 -1
  13. package/dist/cjs/net/ServerAddress.d.ts +1 -0
  14. package/dist/cjs/net/ServerAddress.d.ts.map +1 -1
  15. package/dist/cjs/net/ServerAddress.js +13 -0
  16. package/dist/cjs/net/ServerAddress.js.map +1 -1
  17. package/dist/cjs/net/http/HttpEndpoint.d.ts +53 -0
  18. package/dist/cjs/net/http/HttpEndpoint.d.ts.map +1 -0
  19. package/dist/cjs/net/http/HttpEndpoint.js +22 -0
  20. package/dist/cjs/net/http/HttpEndpoint.js.map +6 -0
  21. package/dist/cjs/net/http/HttpEndpointFactory.d.ts +23 -0
  22. package/dist/cjs/net/http/HttpEndpointFactory.d.ts.map +1 -0
  23. package/dist/cjs/net/http/HttpEndpointFactory.js +39 -0
  24. package/dist/cjs/net/http/HttpEndpointFactory.js.map +6 -0
  25. package/dist/cjs/net/http/HttpEndpointGroup.d.ts +17 -0
  26. package/dist/cjs/net/http/HttpEndpointGroup.d.ts.map +1 -0
  27. package/dist/cjs/net/http/HttpEndpointGroup.js +56 -0
  28. package/dist/cjs/net/http/HttpEndpointGroup.js.map +6 -0
  29. package/dist/cjs/net/http/HttpService.d.ts +20 -0
  30. package/dist/cjs/net/http/HttpService.d.ts.map +1 -0
  31. package/dist/cjs/net/http/HttpService.js +83 -0
  32. package/dist/cjs/net/http/HttpService.js.map +6 -0
  33. package/dist/cjs/net/http/HttpSharedEndpoint.d.ts +16 -0
  34. package/dist/cjs/net/http/HttpSharedEndpoint.d.ts.map +1 -0
  35. package/dist/cjs/net/http/HttpSharedEndpoint.js +92 -0
  36. package/dist/cjs/net/http/HttpSharedEndpoint.js.map +6 -0
  37. package/dist/cjs/net/http/index.d.ts +11 -0
  38. package/dist/cjs/net/http/index.d.ts.map +1 -0
  39. package/dist/cjs/net/http/index.js +28 -0
  40. package/dist/cjs/net/http/index.js.map +6 -0
  41. package/dist/cjs/net/index.d.ts +2 -0
  42. package/dist/cjs/net/index.d.ts.map +1 -1
  43. package/dist/cjs/net/index.js +2 -0
  44. package/dist/cjs/net/index.js.map +1 -1
  45. package/dist/cjs/net/mqtt/MqttEndpoint.d.ts +39 -0
  46. package/dist/cjs/net/mqtt/MqttEndpoint.d.ts.map +1 -0
  47. package/dist/cjs/net/mqtt/MqttEndpoint.js +36 -0
  48. package/dist/cjs/net/mqtt/MqttEndpoint.js.map +6 -0
  49. package/dist/cjs/net/mqtt/MqttEndpointFactory.d.ts +15 -0
  50. package/dist/cjs/net/mqtt/MqttEndpointFactory.d.ts.map +1 -0
  51. package/dist/cjs/net/mqtt/MqttEndpointFactory.js +31 -0
  52. package/dist/cjs/net/mqtt/MqttEndpointFactory.js.map +6 -0
  53. package/dist/cjs/net/mqtt/MqttService.d.ts +19 -0
  54. package/dist/cjs/net/mqtt/MqttService.d.ts.map +1 -0
  55. package/dist/cjs/net/mqtt/MqttService.js +52 -0
  56. package/dist/cjs/net/mqtt/MqttService.js.map +6 -0
  57. package/dist/cjs/net/mqtt/index.d.ts +9 -0
  58. package/dist/cjs/net/mqtt/index.d.ts.map +1 -0
  59. package/dist/cjs/net/mqtt/index.js +26 -0
  60. package/dist/cjs/net/mqtt/index.js.map +6 -0
  61. package/dist/cjs/net/udp/UdpChannel.d.ts +31 -2
  62. package/dist/cjs/net/udp/UdpChannel.d.ts.map +1 -1
  63. package/dist/cjs/net/udp/UdpMulticastServer.d.ts.map +1 -1
  64. package/dist/cjs/net/udp/UdpMulticastServer.js +6 -3
  65. package/dist/cjs/net/udp/UdpMulticastServer.js.map +1 -1
  66. package/dist/cjs/storage/StorageService.d.ts +5 -1
  67. package/dist/cjs/storage/StorageService.d.ts.map +1 -1
  68. package/dist/cjs/storage/StorageService.js +6 -1
  69. package/dist/cjs/storage/StorageService.js.map +1 -1
  70. package/dist/cjs/time/Duration.d.ts +1 -1
  71. package/dist/cjs/util/Abort.d.ts +4 -1
  72. package/dist/cjs/util/Abort.d.ts.map +1 -1
  73. package/dist/cjs/util/Abort.js +19 -3
  74. package/dist/cjs/util/Abort.js.map +1 -1
  75. package/dist/cjs/util/Construction.d.ts +1 -1
  76. package/dist/cjs/util/Multiplex.js +1 -1
  77. package/dist/cjs/util/Multiplex.js.map +1 -1
  78. package/dist/cjs/util/String.d.ts +5 -1
  79. package/dist/cjs/util/String.d.ts.map +1 -1
  80. package/dist/cjs/util/String.js +16 -0
  81. package/dist/cjs/util/String.js.map +1 -1
  82. package/dist/esm/codec/Base64Codec.js +2 -2
  83. package/dist/esm/codec/Base64Codec.js.map +1 -1
  84. package/dist/esm/environment/Environment.d.ts +12 -12
  85. package/dist/esm/environment/Environment.d.ts.map +1 -1
  86. package/dist/esm/environment/Environment.js.map +1 -1
  87. package/dist/esm/environment/Environmental.d.ts +16 -2
  88. package/dist/esm/environment/Environmental.d.ts.map +1 -1
  89. package/dist/esm/log/Logger.js +1 -1
  90. package/dist/esm/net/Network.d.ts +4 -0
  91. package/dist/esm/net/Network.d.ts.map +1 -1
  92. package/dist/esm/net/Network.js +6 -0
  93. package/dist/esm/net/Network.js.map +1 -1
  94. package/dist/esm/net/ServerAddress.d.ts +1 -0
  95. package/dist/esm/net/ServerAddress.d.ts.map +1 -1
  96. package/dist/esm/net/ServerAddress.js +13 -0
  97. package/dist/esm/net/ServerAddress.js.map +1 -1
  98. package/dist/esm/net/http/HttpEndpoint.d.ts +53 -0
  99. package/dist/esm/net/http/HttpEndpoint.d.ts.map +1 -0
  100. package/dist/esm/net/http/HttpEndpoint.js +6 -0
  101. package/dist/esm/net/http/HttpEndpoint.js.map +6 -0
  102. package/dist/esm/net/http/HttpEndpointFactory.d.ts +23 -0
  103. package/dist/esm/net/http/HttpEndpointFactory.d.ts.map +1 -0
  104. package/dist/esm/net/http/HttpEndpointFactory.js +19 -0
  105. package/dist/esm/net/http/HttpEndpointFactory.js.map +6 -0
  106. package/dist/esm/net/http/HttpEndpointGroup.d.ts +17 -0
  107. package/dist/esm/net/http/HttpEndpointGroup.d.ts.map +1 -0
  108. package/dist/esm/net/http/HttpEndpointGroup.js +36 -0
  109. package/dist/esm/net/http/HttpEndpointGroup.js.map +6 -0
  110. package/dist/esm/net/http/HttpService.d.ts +20 -0
  111. package/dist/esm/net/http/HttpService.d.ts.map +1 -0
  112. package/dist/esm/net/http/HttpService.js +63 -0
  113. package/dist/esm/net/http/HttpService.js.map +6 -0
  114. package/dist/esm/net/http/HttpSharedEndpoint.d.ts +16 -0
  115. package/dist/esm/net/http/HttpSharedEndpoint.d.ts.map +1 -0
  116. package/dist/esm/net/http/HttpSharedEndpoint.js +72 -0
  117. package/dist/esm/net/http/HttpSharedEndpoint.js.map +6 -0
  118. package/dist/esm/net/http/index.d.ts +11 -0
  119. package/dist/esm/net/http/index.d.ts.map +1 -0
  120. package/dist/esm/net/http/index.js +11 -0
  121. package/dist/esm/net/http/index.js.map +6 -0
  122. package/dist/esm/net/index.d.ts +2 -0
  123. package/dist/esm/net/index.d.ts.map +1 -1
  124. package/dist/esm/net/index.js +2 -0
  125. package/dist/esm/net/index.js.map +1 -1
  126. package/dist/esm/net/mqtt/MqttEndpoint.d.ts +39 -0
  127. package/dist/esm/net/mqtt/MqttEndpoint.d.ts.map +1 -0
  128. package/dist/esm/net/mqtt/MqttEndpoint.js +16 -0
  129. package/dist/esm/net/mqtt/MqttEndpoint.js.map +6 -0
  130. package/dist/esm/net/mqtt/MqttEndpointFactory.d.ts +15 -0
  131. package/dist/esm/net/mqtt/MqttEndpointFactory.d.ts.map +1 -0
  132. package/dist/esm/net/mqtt/MqttEndpointFactory.js +11 -0
  133. package/dist/esm/net/mqtt/MqttEndpointFactory.js.map +6 -0
  134. package/dist/esm/net/mqtt/MqttService.d.ts +19 -0
  135. package/dist/esm/net/mqtt/MqttService.d.ts.map +1 -0
  136. package/dist/esm/net/mqtt/MqttService.js +32 -0
  137. package/dist/esm/net/mqtt/MqttService.js.map +6 -0
  138. package/dist/esm/net/mqtt/index.d.ts +9 -0
  139. package/dist/esm/net/mqtt/index.d.ts.map +1 -0
  140. package/dist/esm/net/mqtt/index.js +9 -0
  141. package/dist/esm/net/mqtt/index.js.map +6 -0
  142. package/dist/esm/net/udp/UdpChannel.d.ts +31 -2
  143. package/dist/esm/net/udp/UdpChannel.d.ts.map +1 -1
  144. package/dist/esm/net/udp/UdpMulticastServer.d.ts.map +1 -1
  145. package/dist/esm/net/udp/UdpMulticastServer.js +6 -3
  146. package/dist/esm/net/udp/UdpMulticastServer.js.map +1 -1
  147. package/dist/esm/storage/StorageService.d.ts +5 -1
  148. package/dist/esm/storage/StorageService.d.ts.map +1 -1
  149. package/dist/esm/storage/StorageService.js +6 -1
  150. package/dist/esm/storage/StorageService.js.map +1 -1
  151. package/dist/esm/time/Duration.d.ts +1 -1
  152. package/dist/esm/util/Abort.d.ts +4 -1
  153. package/dist/esm/util/Abort.d.ts.map +1 -1
  154. package/dist/esm/util/Abort.js +19 -3
  155. package/dist/esm/util/Abort.js.map +1 -1
  156. package/dist/esm/util/Construction.d.ts +1 -1
  157. package/dist/esm/util/Multiplex.js +1 -1
  158. package/dist/esm/util/Multiplex.js.map +1 -1
  159. package/dist/esm/util/String.d.ts +5 -1
  160. package/dist/esm/util/String.d.ts.map +1 -1
  161. package/dist/esm/util/String.js +16 -0
  162. package/dist/esm/util/String.js.map +1 -1
  163. package/package.json +2 -2
  164. package/src/codec/Base64Codec.ts +2 -2
  165. package/src/environment/Environment.ts +15 -15
  166. package/src/environment/Environmental.ts +17 -2
  167. package/src/log/Logger.ts +1 -1
  168. package/src/net/Network.ts +4 -0
  169. package/src/net/ServerAddress.ts +16 -0
  170. package/src/net/http/HttpEndpoint.ts +60 -0
  171. package/src/net/http/HttpEndpointFactory.ts +27 -0
  172. package/src/net/http/HttpEndpointGroup.ts +43 -0
  173. package/src/net/http/HttpService.ts +75 -0
  174. package/src/net/http/HttpSharedEndpoint.ts +88 -0
  175. package/src/net/http/index.ts +11 -0
  176. package/src/net/index.ts +2 -0
  177. package/src/net/mqtt/MqttEndpoint.ts +50 -0
  178. package/src/net/mqtt/MqttEndpointFactory.ts +17 -0
  179. package/src/net/mqtt/MqttService.ts +40 -0
  180. package/src/net/mqtt/index.ts +9 -0
  181. package/src/net/udp/UdpChannel.ts +35 -2
  182. package/src/net/udp/UdpMulticastServer.ts +3 -0
  183. package/src/storage/StorageService.ts +14 -1
  184. package/src/time/Duration.ts +1 -1
  185. package/src/util/Abort.ts +28 -4
  186. package/src/util/Construction.ts +2 -2
  187. package/src/util/Multiplex.ts +1 -1
  188. package/src/util/String.ts +25 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MqttService.d.ts","sourceRoot":"","sources":["../../../../src/net/mqtt/MqttService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAG9D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D;;GAEG;AACH,qBAAa,WAAW;;gBAGR,OAAO,EAAE,mBAAmB;IAIxC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAO9C,OAAO,CAAC,OAAO,EAAE,YAAY,CAAC,iBAAiB;CASlD"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ import { Environmental } from "#environment/Environmental.js";
7
+ import { ImplementationError } from "#MatterError.js";
8
+ import { AppAddress } from "#net/AppAddress.js";
9
+ import { MqttEndpointFactory } from "./MqttEndpointFactory.js";
10
+ class MqttService {
11
+ #factory;
12
+ constructor(factory) {
13
+ this.#factory = factory;
14
+ }
15
+ static [Environmental.create](env) {
16
+ const factory = env.get(MqttEndpointFactory);
17
+ const instance = new this(factory);
18
+ env.set(MqttService, instance);
19
+ return instance;
20
+ }
21
+ connect(options) {
22
+ const addr = AppAddress.for(options.address);
23
+ if (addr.appProtocol !== "mqtt") {
24
+ throw new ImplementationError(`Unsupported address ${addr} for MQTT connection`);
25
+ }
26
+ return this.#factory.connect(options);
27
+ }
28
+ }
29
+ export {
30
+ MqttService
31
+ };
32
+ //# sourceMappingURL=MqttService.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/net/mqtt/MqttService.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,qBAAqB;AAC9B,SAAS,2BAA2B;AACpC,SAAS,kBAAkB;AAE3B,SAAS,2BAA2B;AAK7B,MAAM,YAAY;AAAA,EACrB;AAAA,EAEA,YAAY,SAA8B;AACtC,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,UAAU,IAAI,IAAI,mBAAmB;AAC3C,UAAM,WAAW,IAAI,KAAK,OAAO;AACjC,QAAI,IAAI,aAAa,QAAQ;AAC7B,WAAO;AAAA,EACX;AAAA,EAEA,QAAQ,SAAyC;AAC7C,UAAM,OAAO,WAAW,IAAI,QAAQ,OAAO;AAE3C,QAAI,KAAK,gBAAgB,QAAQ;AAC7B,YAAM,IAAI,oBAAoB,uBAAuB,IAAI,sBAAsB;AAAA,IACnF;AAEA,WAAO,KAAK,SAAS,QAAQ,OAAO;AAAA,EACxC;AACJ;",
5
+ "names": []
6
+ }
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from "./MqttEndpoint.js";
7
+ export * from "./MqttEndpointFactory.js";
8
+ export * from "./MqttService.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/net/mqtt/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,mBAAmB,CAAC;AAClC,cAAc,0BAA0B,CAAC;AACzC,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,9 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2022-2025 Matter.js Authors
4
+ * SPDX-License-Identifier: Apache-2.0
5
+ */
6
+ export * from "./MqttEndpoint.js";
7
+ export * from "./MqttEndpointFactory.js";
8
+ export * from "./MqttService.js";
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/net/mqtt/index.ts"],
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;",
5
+ "names": []
6
+ }
@@ -8,12 +8,41 @@ import { ChannelType } from "../Channel.js";
8
8
  import { ConnectionlessTransport } from "../ConnectionlessTransport.js";
9
9
  /** @see {@link MatterSpecification.v12.Core} § 4.4.4 */
10
10
  export declare const MAX_UDP_MESSAGE_SIZE: number;
11
- export type UdpSocketType = "udp4" | "udp6";
11
+ /**
12
+ * UDP socket address type.
13
+ *
14
+ * "udp4" and "udp6" are IPv4 and IPv6 exclusively. "udp" binds both IPv4 and IPv6 addresses.
15
+ */
16
+ export type UdpSocketType = "udp" | "udp4" | "udp6";
12
17
  export interface UdpChannelOptions {
13
- listeningPort?: number;
18
+ /**
19
+ * UDP channel type. "udp4" and "udp6" mean IPv4 and IPv6 respectively. "udp" is dual-mode IPv4/IPv6.
20
+ */
14
21
  type: UdpSocketType;
22
+ /**
23
+ * The port to listen on. undefined or 0 directs the operating system to select an open port.
24
+ */
25
+ listeningPort?: number;
26
+ /**
27
+ * The address to listen on, either a hostname or IP address in correct format based on {@link type}.
28
+ *
29
+ * undefined directs the operating system to listen on all addresses on the port. "0.0.0.0" is wildcard IPv4 and
30
+ * "::" is wildcard IPv6.
31
+ *
32
+ * "0.0.0.0" is not allowed if {@link type} is "udp".
33
+ */
15
34
  listeningAddress?: string;
35
+ /**
36
+ * Specifies a specific network interface.
37
+ *
38
+ * This is required for multicast sockets.
39
+ */
16
40
  netInterface?: string;
41
+ /**
42
+ * Address+port pairs are normally may normally only be opened by a single socket. This allows shared access to a
43
+ * port.
44
+ */
45
+ reuseAddress?: boolean;
17
46
  }
18
47
  export interface UdpChannel {
19
48
  maxPayloadSize: number;
@@ -1 +1 @@
1
- {"version":3,"file":"UdpChannel.d.ts","sourceRoot":"","sources":["../../../../src/net/udp/UdpChannel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,aAAa,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC;IACxE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1D;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,QAAQ;QACrB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;KAChG;CACJ"}
1
+ {"version":3,"file":"UdpChannel.d.ts","sourceRoot":"","sources":["../../../../src/net/udp/UdpChannel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,uBAAuB,EAAE,MAAM,+BAA+B,CAAC;AAExE,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAE9C;;;;GAIG;AACH,MAAM,MAAM,aAAa,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,iBAAiB;IAC9B;;OAEG;IACH,IAAI,EAAE,aAAa,CAAC;IAEpB;;OAEG;IACH,aAAa,CAAC,EAAE,MAAM,CAAC;IAEvB;;;;;;;OAOG;IACH,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAE1B;;;;OAIG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,GAAG,uBAAuB,CAAC,QAAQ,CAAC;IACxE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1D;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,QAAQ;QACrB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;KAChG;CACJ"}
@@ -1 +1 @@
1
- {"version":3,"file":"UdpMulticastServer.d.ts","sourceRoot":"","sources":["../../../../src/net/udp/UdpMulticastServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC,OAAO,EAAE,OAAO,EAA2B,MAAM,eAAe,CAAC;AAKjE,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,kBAAkB;IAsDvB,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS;WA3DhC,MAAM,CAAC,EAChB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,OAAO,GACV,EAAE,yBAAyB;IAuC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAKhC;IAEF,OAAO;IAUP,IAAI,YAAY,YAEf;IAED,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI;IAiBjF,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;YA+C1D,sBAAsB;IAQ9B,KAAK;CAKd"}
1
+ {"version":3,"file":"UdpMulticastServer.d.ts","sourceRoot":"","sources":["../../../../src/net/udp/UdpMulticastServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC,OAAO,EAAE,OAAO,EAA2B,MAAM,eAAe,CAAC;AAKjE,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,kBAAkB;IAwDvB,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS;WA7DhC,MAAM,CAAC,EAChB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,OAAO,GACV,EAAE,yBAAyB;IAyC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAKhC;IAEF,OAAO;IAUP,IAAI,YAAY,YAEf;IAED,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI;IAiBjF,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;YA+C1D,sBAAsB;IAS9B,KAAK;CAKd"}
@@ -34,7 +34,8 @@ class UdpMulticastServer {
34
34
  ipv4UdpChannel = await network.createUdpChannel({
35
35
  type: "udp4",
36
36
  netInterface,
37
- listeningPort
37
+ listeningPort,
38
+ reuseAddress: true
38
39
  });
39
40
  await ipv4UdpChannel.addMembership(broadcastAddressIpv4);
40
41
  } catch (error) {
@@ -46,7 +47,8 @@ class UdpMulticastServer {
46
47
  const ipv6UdpChannel = await network.createUdpChannel({
47
48
  type: "udp6",
48
49
  netInterface,
49
- listeningPort
50
+ listeningPort,
51
+ reuseAddress: true
50
52
  });
51
53
  await ipv6UdpChannel.addMembership(broadcastAddressIpv6);
52
54
  return new UdpMulticastServer(
@@ -129,7 +131,8 @@ class UdpMulticastServer {
129
131
  return await this.network.createUdpChannel({
130
132
  type: iPv4 ? "udp4" : "udp6",
131
133
  listeningPort: this.broadcastPort,
132
- netInterface
134
+ netInterface,
135
+ reuseAddress: true
133
136
  });
134
137
  }
135
138
  async close() {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/net/udp/UdpMulticastServer.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["netInterface"]
6
6
  }
@@ -14,7 +14,7 @@ import { StorageManager } from "./StorageManager.js";
14
14
  export declare class StorageService {
15
15
  #private;
16
16
  [Diagnostic.value]: () => (string | (Record<string, unknown> & Diagnostic))[];
17
- constructor(environment: Environment, factory?: (namespace: string) => Storage);
17
+ constructor(environment: Environment, factory?: (namespace: string) => Storage, resolver?: (...paths: string[]) => string);
18
18
  static [Environmental.create](environment: Environment): StorageService;
19
19
  /**
20
20
  * Open storage. The storage is initialized but the caller must take ownership.
@@ -31,5 +31,9 @@ export declare class StorageService {
31
31
  */
32
32
  get location(): string | undefined;
33
33
  set location(location: string | undefined);
34
+ /**
35
+ * Join one or more relative paths to some platform-dependent notion of an absolute storage path.
36
+ */
37
+ resolve: (...paths: string[]) => string;
34
38
  }
35
39
  //# sourceMappingURL=StorageService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StorageService.d.ts","sourceRoot":"","sources":["../../../src/storage/StorageService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,qBAAa,cAAc;;IA+CvB,CAAC,UAAU,CAAC,KAAK,CAAC;gBA3CN,WAAW,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO;IAK9E,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW;IAItD;;;;OAIG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM;IAW5B;;OAEG;IACH,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,EAElD;IAED;;OAEG;IACH,IAAI,QAAQ,IAIW,MAAM,GAAG,SAAS,CAFxC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAExC;CAWJ"}
1
+ {"version":3,"file":"StorageService.d.ts","sourceRoot":"","sources":["../../../src/storage/StorageService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,iCAAiC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAErD;;GAEG;AACH,qBAAa,cAAc;;IA4DvB,CAAC,UAAU,CAAC,KAAK,CAAC;gBAvDd,WAAW,EAAE,WAAW,EACxB,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,EACxC,QAAQ,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM;IAU7C,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW;IAItD;;;;OAIG;IACG,IAAI,CAAC,SAAS,EAAE,MAAM;IAW5B;;OAEG;IACH,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,EAElD;IAED;;OAEG;IACH,IAAI,QAAQ,IAIW,MAAM,GAAG,SAAS,CAFxC;IAED,IAAI,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAExC;IAED;;OAEG;IACH,OAAO,EAAE,CAAC,GAAG,KAAK,EAAE,MAAM,EAAE,KAAK,MAAM,CAAC;CAW3C"}
@@ -10,9 +10,10 @@ import { StorageManager } from "./StorageManager.js";
10
10
  class StorageService {
11
11
  #factory;
12
12
  #location;
13
- constructor(environment, factory) {
13
+ constructor(environment, factory, resolver) {
14
14
  environment.set(StorageService, this);
15
15
  this.#factory = factory;
16
+ this.resolve = resolver ?? ((...paths) => paths.join("/"));
16
17
  }
17
18
  static [Environmental.create](environment) {
18
19
  return new this(environment);
@@ -46,6 +47,10 @@ class StorageService {
46
47
  set location(location2) {
47
48
  this.#location = location2;
48
49
  }
50
+ /**
51
+ * Join one or more relative paths to some platform-dependent notion of an absolute storage path.
52
+ */
53
+ resolve;
49
54
  [Diagnostic.value]() {
50
55
  return [
51
56
  "Persistence",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/storage/StorageService.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,uBAAuB;AAEhC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAE3B,SAAS,sBAAsB;AAKxB,MAAM,eAAe;AAAA,EACxB;AAAA,EACA;AAAA,EAEA,YAAY,aAA0B,SAA0C;AAC5E,gBAAY,IAAI,gBAAgB,IAAI;AACpC,SAAK,WAAW;AAAA,EACpB;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,aAA0B;AACpD,WAAO,IAAI,KAAK,WAAW;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,KAAK,WAAmB;AAC1B,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI,gBAAgB,wEAAwE;AAAA,IACtG;AAEA,UAAM,UAAU,KAAK,SAAS,SAAS;AACvC,UAAM,UAAU,IAAI,eAAe,OAAO;AAC1C,UAAM,QAAQ,WAAW;AACzB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAQ,SAAyC;AACjD,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,SAASA,WAA8B;AACvC,SAAK,YAAYA;AAAA,EACrB;AAAA,EAEA,CAAC,WAAW,KAAK,IAAI;AACjB,WAAO;AAAA,MACH;AAAA,MACA,WAAW,KAAK;AAAA,QACZ,UAAU,YAAY;AAAA,QACtB,WAAW,CAAC,CAAC,KAAK;AAAA,MACtB,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,uBAAuB;AAEhC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAE3B,SAAS,sBAAsB;AAKxB,MAAM,eAAe;AAAA,EACxB;AAAA,EACA;AAAA,EAEA,YACI,aACA,SACA,UACF;AACE,gBAAY,IAAI,gBAAgB,IAAI;AACpC,SAAK,WAAW;AAIhB,SAAK,UAAU,aAAa,IAAI,UAAc,MAAM,KAAK,GAAG;AAAA,EAChE;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,aAA0B;AACpD,WAAO,IAAI,KAAK,WAAW;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,MAAM,KAAK,WAAmB;AAC1B,QAAI,KAAK,aAAa,QAAW;AAC7B,YAAM,IAAI,gBAAgB,wEAAwE;AAAA,IACtG;AAEA,UAAM,UAAU,KAAK,SAAS,SAAS;AACvC,UAAM,UAAU,IAAI,eAAe,OAAO;AAC1C,UAAM,QAAQ,WAAW;AACzB,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,QAAQ,SAAyC;AACjD,SAAK,WAAW;AAAA,EACpB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,WAAW;AACX,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,SAASA,WAA8B;AACvC,SAAK,YAAYA;AAAA,EACrB;AAAA;AAAA;AAAA;AAAA,EAKA;AAAA,EAEA,CAAC,WAAW,KAAK,IAAI;AACjB,WAAO;AAAA,MACH;AAAA,MACA,WAAW,KAAK;AAAA,QACZ,UAAU,YAAY;AAAA,QACtB,WAAW,CAAC,CAAC,KAAK;AAAA,MACtB,CAAC;AAAA,IACL;AAAA,EACJ;AACJ;",
5
5
  "names": ["location"]
6
6
  }
@@ -16,7 +16,7 @@ import { Branded } from "#util/Type.js";
16
16
  * Math operators always result in millisecond values and can thus be converted back to an interval using
17
17
  * {@link Millis}. For example, `Millisecs(Hours(1) + Minutes(30))` would produce a 90 minute {@link Duration}.
18
18
  */
19
- export type Duration = Branded<number, "Interval"> | 0;
19
+ export type Duration = Branded<number, "Duration"> | 0;
20
20
  /**
21
21
  * Create an interval from a number or string.
22
22
  */
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { Duration } from "#time/Duration.js";
6
7
  /**
7
8
  * Utilities for implementing abort logic.
8
9
  */
@@ -33,7 +34,9 @@ export declare namespace Abort {
33
34
  * aborts.
34
35
  *
35
36
  * Closing the returned controller unregisters with the input controller. It does not perform an abort.
37
+ *
38
+ * {@link timeout} is a convenience for adding a timeout.
36
39
  */
37
- function subtask(signal: Signal | undefined): DisposableController;
40
+ function subtask(signal: Signal | undefined, timeout?: Duration): DisposableController;
38
41
  }
39
42
  //# sourceMappingURL=Abort.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Abort.d.ts","sourceRoot":"","sources":["../../../src/util/Abort.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH;;GAEG;AACH,yBAAiB,KAAK,CAAC;IACnB;;OAEG;IACH,KAAY,MAAM,GAAG,eAAe,GAAG,WAAW,CAAC;IAEnD;;OAEG;IACH,UAAiB,oBAAqB,SAAQ,eAAe;QACzD,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;KAC5B;IAED;;OAEG;IACH,SAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,uBAU5C;IAED;;;;;OAKG;IACH,SAAgB,IAAI,CAAC,CAAC,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAqB5B;IAED;;;;;OAKG;IACH,SAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,GAAG,oBAAoB,CAgBxE;CACJ"}
1
+ {"version":3,"file":"Abort.d.ts","sourceRoot":"","sources":["../../../src/util/Abort.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAG7C;;GAEG;AACH,yBAAiB,KAAK,CAAC;IACnB;;OAEG;IACH,KAAY,MAAM,GAAG,eAAe,GAAG,WAAW,CAAC;IAEnD;;OAEG;IACH,UAAiB,oBAAqB,SAAQ,eAAe;QACzD,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC;KAC5B;IAED;;OAEG;IACH,SAAgB,EAAE,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,uBAU5C;IAED;;;;;OAKG;IACH,SAAgB,IAAI,CAAC,CAAC,EAClB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,GAAG,QAAQ,EAAE,KAAK,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,GACvC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAqB5B;IAED;;;;;;;OAOG;IACH,SAAgB,OAAO,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,EAAE,OAAO,CAAC,EAAE,QAAQ,GAAG,oBAAoB,CAkC5F;CACJ"}
@@ -3,6 +3,8 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { TimeoutError } from "#MatterError.js";
7
+ import { Time } from "#time/Time.js";
6
8
  var Abort;
7
9
  ((Abort2) => {
8
10
  function is(signal) {
@@ -34,17 +36,31 @@ var Abort;
34
36
  return Promise.race(promises);
35
37
  }
36
38
  Abort2.race = race;
37
- function subtask(signal) {
39
+ function subtask(signal, timeout) {
40
+ let timer;
38
41
  if (signal && "signal" in signal) {
39
42
  signal = signal.signal;
40
43
  }
41
44
  const controller = new AbortController();
45
+ if (timeout) {
46
+ timer = Time.getPeriodicTimer("subtask timeout", timeout, () => {
47
+ if (controller.signal.aborted) {
48
+ return;
49
+ }
50
+ controller.abort(new TimeoutError());
51
+ });
52
+ timer.start();
53
+ }
42
54
  if (signal) {
43
- const outerHandler = () => controller.abort();
55
+ const outerHandler = () => controller.abort(signal.reason);
44
56
  signal.addEventListener("abort", outerHandler);
45
- controller[Symbol.dispose] = () => signal.removeEventListener("abort", outerHandler);
57
+ controller[Symbol.dispose] = () => {
58
+ signal.removeEventListener("abort", outerHandler);
59
+ timer?.stop();
60
+ };
46
61
  } else {
47
62
  controller[Symbol.dispose] = () => {
63
+ timer?.stop();
48
64
  };
49
65
  }
50
66
  return controller;
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/Abort.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AASO,IAAU;AAAA,CAAV,CAAUA,WAAV;AAgBI,WAAS,GAAG,QAA4B;AAC3C,QAAI,CAAC,QAAQ;AACT;AAAA,IACJ;AAEA,QAAI,YAAY,QAAQ;AACpB,eAAS,OAAO;AAAA,IACpB;AAEA,WAAO,OAAO;AAAA,EAClB;AAVO,EAAAA,OAAS;AAkBT,WAAS,KACZ,WACG,UACuB;AAC1B,QAAI,QAAQ;AACR,UAAI,YAAY,QAAQ;AACpB,iBAAS,OAAO;AAAA,MACpB;AAEA,UAAI;AACJ,YAAM,UAAU,IAAI,QAAc,aAAW;AACzC,cAAM,UAAU,MAAM,QAAQ;AAC9B,QAAC,OAAuB,iBAAiB,SAAS,OAAO;AACzD,cAAM,MAAO,OAAuB,oBAAoB,SAAS,OAAO;AAAA,MAC5E,CAAC;AAED,aAAO,QAAQ,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,QAAQ,GAAI;AAAA,IAC5D;AAEA,QAAI,SAAS,WAAW,GAAG;AACvB,aAAO,QAAQ,QAAQ,SAAS,CAAC,CAAC;AAAA,IACtC;AAEA,WAAO,QAAQ,KAAK,QAAQ;AAAA,EAChC;AAxBO,EAAAA,OAAS;AAgCT,WAAS,QAAQ,QAAkD;AACtE,QAAI,UAAU,YAAY,QAAQ;AAC9B,eAAS,OAAO;AAAA,IACpB;AAEA,UAAM,aAAa,IAAI,gBAAgB;AAEvC,QAAI,QAAQ;AACR,YAAM,eAAe,MAAM,WAAW,MAAM;AAC5C,aAAO,iBAAiB,SAAS,YAAY;AAC7C,iBAAW,OAAO,OAAO,IAAI,MAAM,OAAO,oBAAoB,SAAS,YAAY;AAAA,IACvF,OAAO;AACH,iBAAW,OAAO,OAAO,IAAI,MAAM;AAAA,MAAC;AAAA,IACxC;AAEA,WAAO;AAAA,EACX;AAhBO,EAAAA,OAAS;AAAA,GAlEH;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,oBAAoB;AAE7B,SAAS,YAAmB;AAKrB,IAAU;AAAA,CAAV,CAAUA,WAAV;AAgBI,WAAS,GAAG,QAA4B;AAC3C,QAAI,CAAC,QAAQ;AACT;AAAA,IACJ;AAEA,QAAI,YAAY,QAAQ;AACpB,eAAS,OAAO;AAAA,IACpB;AAEA,WAAO,OAAO;AAAA,EAClB;AAVO,EAAAA,OAAS;AAkBT,WAAS,KACZ,WACG,UACuB;AAC1B,QAAI,QAAQ;AACR,UAAI,YAAY,QAAQ;AACpB,iBAAS,OAAO;AAAA,MACpB;AAEA,UAAI;AACJ,YAAM,UAAU,IAAI,QAAc,aAAW;AACzC,cAAM,UAAU,MAAM,QAAQ;AAC9B,QAAC,OAAuB,iBAAiB,SAAS,OAAO;AACzD,cAAM,MAAO,OAAuB,oBAAoB,SAAS,OAAO;AAAA,MAC5E,CAAC;AAED,aAAO,QAAQ,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC,EAAE,QAAQ,GAAI;AAAA,IAC5D;AAEA,QAAI,SAAS,WAAW,GAAG;AACvB,aAAO,QAAQ,QAAQ,SAAS,CAAC,CAAC;AAAA,IACtC;AAEA,WAAO,QAAQ,KAAK,QAAQ;AAAA,EAChC;AAxBO,EAAAA,OAAS;AAkCT,WAAS,QAAQ,QAA4B,SAA0C;AAC1F,QAAI;AAEJ,QAAI,UAAU,YAAY,QAAQ;AAC9B,eAAS,OAAO;AAAA,IACpB;AAEA,UAAM,aAAa,IAAI,gBAAgB;AAEvC,QAAI,SAAS;AACT,cAAQ,KAAK,iBAAiB,mBAAmB,SAAS,MAAM;AAC5D,YAAI,WAAW,OAAO,SAAS;AAC3B;AAAA,QACJ;AAEA,mBAAW,MAAM,IAAI,aAAa,CAAC;AAAA,MACvC,CAAC;AACD,YAAM,MAAM;AAAA,IAChB;AAEA,QAAI,QAAQ;AACR,YAAM,eAAe,MAAM,WAAW,MAAM,OAAO,MAAM;AACzD,aAAO,iBAAiB,SAAS,YAAY;AAC7C,iBAAW,OAAO,OAAO,IAAI,MAAM;AAC/B,eAAO,oBAAoB,SAAS,YAAY;AAChD,eAAO,KAAK;AAAA,MAChB;AAAA,IACJ,OAAO;AACH,iBAAW,OAAO,OAAO,IAAI,MAAM;AAC/B,eAAO,KAAK;AAAA,MAChB;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAlCO,EAAAA,OAAS;AAAA,GApEH;",
5
5
  "names": ["Abort"]
6
6
  }
@@ -16,7 +16,7 @@ export declare function asyncNew<const A extends any[], const C extends new (...
16
16
  * Construction happens in the initializer parameter of {@link Construction} or via {@link Construction.construct} on
17
17
  * the subject. You invoke in your constructor and place in a property called "construction".
18
18
  *
19
- * Destruciton is optional and happens in the destructor parameter of {@link Construction#close} or via
19
+ * Destruction is optional and happens in the destructor parameter of {@link Construction#close} or via
20
20
  * {@link Construction.destruct} on the subject. Typically you invoke in a "close" method of the subject.
21
21
  *
22
22
  * If construction or destruction is not asynchronous (does not return a Promise) then they complete synchronously,
@@ -20,7 +20,7 @@ class BasicMultiplex {
20
20
  if (description) {
21
21
  message = `${message} in ${description}`;
22
22
  }
23
- logger.error(message, e);
23
+ logger.error(`${message}:`, e);
24
24
  }).finally(() => this.#workers.delete(entry)),
25
25
  description
26
26
  };
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/Multiplex.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AACvB,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AAEzB,MAAM,SAAS,OAAO,IAAI,WAAW;AAmB9B,MAAM,eAA4C;AAAA,EACrD,WAAW,IAAI,SAAsB;AAAA,EAErC,IAAI,QAA+B,aAAsB;AACrD,QAAI,CAAC,aAAa,GAAG,MAAM,GAAG;AAC1B;AAAA,IACJ;AAEA,UAAM,QAAQ;AAAA,MACV,MAAM,QAAQ,QAAQ,MAAM,EACvB,MAAM,OAAK;AACR,YAAI,UAAU;AACd,YAAI,aAAa;AACb,oBAAU,GAAG,OAAO,OAAO,WAAW;AAAA,QAC1C;AACA,eAAO,MAAM,SAAS,CAAC;AAAA,MAC3B,CAAC,EACA,QAAQ,MAAM,KAAK,SAAS,OAAO,KAAK,CAAC;AAAA,MAC9C;AAAA,IACJ;AAEA,SAAK,SAAS,IAAI,KAAK;AAAA,EAC3B;AAAA,EAEA,MAAM,QAAQ;AACV,WAAO,KAAK,SAAS,MAAM;AACvB,YAAM,qBAAqB,WAAW,CAAC,GAAG,KAAK,QAAQ,EAAE,IAAI,WAAS,MAAM,IAAI,CAAC;AAAA,IACrF;AAAA,EACJ;AAAA,EAEA,KACI,aACA,YACgC;AAChC,WAAO,KAAK,MAAM,EAAE,KAAK,aAAa,UAAU;AAAA,EACpD;AAAA,EAEA,CAAC,OAAO,YAAY,IAAI,KAAK,MAAM,KAAK,IAAI;AAChD;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AACvB,SAAS,4BAA4B;AACrC,SAAS,oBAAoB;AAC7B,SAAS,gBAAgB;AAEzB,MAAM,SAAS,OAAO,IAAI,WAAW;AAmB9B,MAAM,eAA4C;AAAA,EACrD,WAAW,IAAI,SAAsB;AAAA,EAErC,IAAI,QAA+B,aAAsB;AACrD,QAAI,CAAC,aAAa,GAAG,MAAM,GAAG;AAC1B;AAAA,IACJ;AAEA,UAAM,QAAQ;AAAA,MACV,MAAM,QAAQ,QAAQ,MAAM,EACvB,MAAM,OAAK;AACR,YAAI,UAAU;AACd,YAAI,aAAa;AACb,oBAAU,GAAG,OAAO,OAAO,WAAW;AAAA,QAC1C;AACA,eAAO,MAAM,GAAG,OAAO,KAAK,CAAC;AAAA,MACjC,CAAC,EACA,QAAQ,MAAM,KAAK,SAAS,OAAO,KAAK,CAAC;AAAA,MAC9C;AAAA,IACJ;AAEA,SAAK,SAAS,IAAI,KAAK;AAAA,EAC3B;AAAA,EAEA,MAAM,QAAQ;AACV,WAAO,KAAK,SAAS,MAAM;AACvB,YAAM,qBAAqB,WAAW,CAAC,GAAG,KAAK,QAAQ,EAAE,IAAI,WAAS,MAAM,IAAI,CAAC;AAAA,IACrF;AAAA,EACJ;AAAA,EAEA,KACI,aACA,YACgC;AAChC,WAAO,KAAK,MAAM,EAAE,KAAK,aAAa,UAAU;AAAA,EACpD;AAAA,EAEA,CAAC,OAAO,YAAY,IAAI,KAAK,MAAM,KAAK,IAAI;AAChD;",
5
5
  "names": []
6
6
  }
@@ -16,7 +16,11 @@ export declare function decamelize(name: string, separator?: string): string;
16
16
  /**
17
17
  * Like JSON.stringify but targets well-formed JS and is slightly more readable.
18
18
  */
19
- export declare function serialize(value: any): string | undefined;
19
+ export declare function serialize(value: unknown): string | undefined;
20
+ /**
21
+ * Like {@link JSON.stringify} but with support for additional standard objects.
22
+ */
23
+ export declare function asJson(value: unknown, space?: number): string;
20
24
  export declare namespace serialize {
21
25
  /**
22
26
  * Custom serialization function key.
@@ -1 +1 @@
1
- {"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../../src/util/String.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GACE,UAAU,CAAC,CAAC,CAAC,CAClE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,UAAQ,UA8DxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,UAgBvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,GAAG,sBAyEnC;AAED,yBAAiB,SAAS,CAAC;IACvB;;OAEG;IACI,MAAM,SAAS,eAAsB,CAAC;IAE7C;;;OAGG;IACH,SAAgB,IAAI,CAAC,KAAK,EAAE,GAAG,OAU9B;IAED;;OAEG;IACH,SAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,WAgBrC;CACJ;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAkBvE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,UAwD3C"}
1
+ {"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../../src/util/String.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,wBAAgB,UAAU,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,GACE,UAAU,CAAC,CAAC,CAAC,CAClE;AAED;;;GAGG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,UAAQ,UA8DxD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,UAgBvD;AAED;;GAEG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,OAAO,sBAyEvC;AAED;;GAEG;AACH,wBAAgB,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,UAcpD;AAED,yBAAiB,SAAS,CAAC;IACvB;;OAEG;IACI,MAAM,SAAS,eAAsB,CAAC;IAE7C;;;OAGG;IACH,SAAgB,IAAI,CAAC,KAAK,EAAE,GAAG,OAU9B;IAED;;OAEG;IACH,SAAgB,WAAW,CAAC,KAAK,EAAE,GAAG,WAgBrC;CACJ;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,OAAO,EAAE,MAAM,EAAE,UAkBvE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,UAwD3C"}
@@ -135,6 +135,21 @@ function serialize(value) {
135
135
  }
136
136
  return serializeOne(value);
137
137
  }
138
+ function asJson(value, space) {
139
+ return JSON.stringify(
140
+ value,
141
+ (_key, value2) => {
142
+ if (typeof value2 === "bigint") {
143
+ return value2.toString();
144
+ }
145
+ if (Bytes.isBytes(value2)) {
146
+ return Bytes.toHex(value2);
147
+ }
148
+ return value2;
149
+ },
150
+ space
151
+ );
152
+ }
138
153
  ((serialize2) => {
139
154
  serialize2.SERIALIZE = Symbol("SERIALIZE");
140
155
  function asIs(value) {
@@ -223,6 +238,7 @@ function serializeToJs(value) {
223
238
  return parts.join("");
224
239
  }
225
240
  export {
241
+ asJson,
226
242
  camelize,
227
243
  capitalize,
228
244
  decamelize,
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/String.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["value", "serialize", "parts"]
6
6
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@matter/general",
3
- "version": "0.16.0-alpha.0-20251004-92135c7df",
3
+ "version": "0.16.0-alpha.0-20251011-d8942d7d5",
4
4
  "description": "Non-Matter support for Matter.js",
5
5
  "keywords": [
6
6
  "iot",
@@ -36,7 +36,7 @@
36
36
  "@noble/curves": "^2.0.1"
37
37
  },
38
38
  "devDependencies": {
39
- "@matter/testing": "0.16.0-alpha.0-20251004-92135c7df"
39
+ "@matter/testing": "0.16.0-alpha.0-20251011-d8942d7d5"
40
40
  },
41
41
  "files": [
42
42
  "dist/**/*",
@@ -103,7 +103,7 @@ export namespace Base64 {
103
103
  outLength += 1;
104
104
  break;
105
105
  case 1:
106
- throw new Error("Invalid base-64 encoding");
106
+ throw new SyntaxError("Invalid base-64 encoding");
107
107
  }
108
108
 
109
109
  const out = new Uint8Array(outLength);
@@ -113,7 +113,7 @@ export namespace Base64 {
113
113
  if (inPos >= inputLength) return 0;
114
114
  const v = A2B[input.codePointAt(inPos++) ?? -1];
115
115
  if (v === undefined) {
116
- throw new Error("Invalid base-64 encoding");
116
+ throw new SyntaxError("Invalid base-64 encoding");
117
117
  }
118
118
  return v;
119
119
  }
@@ -33,12 +33,12 @@ const logger = Logger.get("Environment");
33
33
  * TODO - could remove global singletons by moving here
34
34
  */
35
35
  export class Environment {
36
- #services?: Map<abstract new (...args: any[]) => any, Environmental.Service | null>;
36
+ #services?: Map<Environmental.ServiceType, Environmental.Service | null>;
37
37
  #name: string;
38
38
  #parent?: Environment;
39
- #added = Observable<[type: abstract new (...args: any[]) => {}, instance: {}]>();
40
- #deleted = Observable<[type: abstract new (...args: any[]) => {}, instance: {}]>();
41
- #serviceEvents = new Map<abstract new (...args: any[]) => any, Environmental.ServiceEvents<any>>();
39
+ #added = Observable<[type: Environmental.ServiceType, instance: {}]>();
40
+ #deleted = Observable<[type: Environmental.ServiceType, instance: {}]>();
41
+ #serviceEvents = new Map<Environmental.ServiceType, Environmental.ServiceEvents<any>>();
42
42
 
43
43
  constructor(name: string, parent?: Environment) {
44
44
  this.#name = name;
@@ -48,7 +48,7 @@ export class Environment {
48
48
  /**
49
49
  * Determine if an environmental service is available.
50
50
  */
51
- has(type: abstract new (...args: any[]) => any): boolean {
51
+ has(type: Environmental.ServiceType): boolean {
52
52
  const mine = this.#services?.get(type);
53
53
 
54
54
  if (mine === null) {
@@ -61,14 +61,14 @@ export class Environment {
61
61
  /**
62
62
  * Determine if an environmental services is owned by this environment (not an ancestor).
63
63
  */
64
- owns(type: abstract new (...args: any[]) => any): boolean {
64
+ owns(type: Environmental.ServiceType): boolean {
65
65
  return !!this.#services?.get(type);
66
66
  }
67
67
 
68
68
  /**
69
69
  * Access an environmental service.
70
70
  */
71
- get<T extends object>(type: abstract new (...args: any[]) => T): T {
71
+ get<T extends object>(type: Environmental.ServiceType<T>): T {
72
72
  const mine = this.#services?.get(type);
73
73
 
74
74
  if (mine !== undefined && mine !== null) {
@@ -100,7 +100,7 @@ export class Environment {
100
100
  /**
101
101
  * Access an environmental service that may not exist.
102
102
  */
103
- maybeGet<T extends object>(type: abstract new (...args: any[]) => T): T | undefined {
103
+ maybeGet<T extends object>(type: Environmental.ServiceType<T>): T | undefined {
104
104
  if (this.has(type)) {
105
105
  return this.get(type);
106
106
  }
@@ -112,7 +112,7 @@ export class Environment {
112
112
  * @param type the class of the service to remove
113
113
  * @param instance optional instance expected, if existing instance does not match it is not deleted
114
114
  */
115
- delete(type: abstract new (...args: any[]) => any, instance?: any) {
115
+ delete(type: Environmental.ServiceType, instance?: any) {
116
116
  if (instance !== undefined && this.#services?.get(type) !== instance) {
117
117
  return;
118
118
  }
@@ -132,7 +132,7 @@ export class Environment {
132
132
  *
133
133
  * @param type the class of the service to block
134
134
  */
135
- block(type: abstract new (...args: any[]) => any) {
135
+ block(type: Environmental.ServiceType) {
136
136
  const instance = this.#services?.get(type);
137
137
 
138
138
  if (instance !== undefined && instance !== null) {
@@ -153,7 +153,7 @@ export class Environment {
153
153
  * Remove and close an environmental service.
154
154
  */
155
155
  close<T extends object>(
156
- type: abstract new (...args: any[]) => T,
156
+ type: Environmental.ServiceType<T>,
157
157
  ): T extends { close: () => MaybePromise<void> } ? MaybePromise<void> : void {
158
158
  const instance = this.maybeGet(type);
159
159
  if (instance !== undefined) {
@@ -176,7 +176,7 @@ export class Environment {
176
176
  /**
177
177
  * Install a preinitialized version of an environmental service.
178
178
  */
179
- set<T extends {}>(type: abstract new (...args: any[]) => T, instance: T) {
179
+ set<T extends {}>(type: Environmental.ServiceType<T>, instance: T) {
180
180
  if (!this.#services) {
181
181
  this.#services = new Map();
182
182
  }
@@ -222,7 +222,7 @@ export class Environment {
222
222
  *
223
223
  * This is a more convenient way to observe a specific service than {@link added} and {@link deleted}.
224
224
  */
225
- eventsFor<T extends Environmental.Factory<any>>(type: T) {
225
+ eventsFor<T extends Environmental.ServiceType>(type: T) {
226
226
  let events = this.#serviceEvents.get(type);
227
227
  if (events === undefined) {
228
228
  events = {
@@ -241,8 +241,8 @@ export class Environment {
241
241
  * {@link added} in the future if the service is added or replaced and/or {@link deleted} if the service is replaced
242
242
  * or deleted.
243
243
  */
244
- applyTo<T extends Environmental.Factory<any>>(
245
- type: T,
244
+ applyTo<T extends object>(
245
+ type: Environmental.ServiceType<T>,
246
246
  added?: (env: Environment, service: T) => MaybePromise<void>,
247
247
  deleted?: (env: Environment, service: T) => MaybePromise<void>,
248
248
  ) {