@matter/general 0.16.0-alpha.0-20250930-05e6cc3f8 → 0.16.0-alpha.0-20251003-dc6d5523d

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 (178) hide show
  1. package/dist/cjs/MatterError.d.ts +2 -2
  2. package/dist/cjs/MatterError.d.ts.map +1 -1
  3. package/dist/cjs/MatterError.js +0 -1
  4. package/dist/cjs/MatterError.js.map +1 -1
  5. package/dist/cjs/crypto/Crypto.d.ts +1 -1
  6. package/dist/cjs/crypto/Crypto.d.ts.map +1 -1
  7. package/dist/cjs/crypto/Crypto.js.map +1 -1
  8. package/dist/cjs/crypto/NodeJsStyleCrypto.d.ts +2 -1
  9. package/dist/cjs/crypto/NodeJsStyleCrypto.d.ts.map +1 -1
  10. package/dist/cjs/crypto/NodeJsStyleCrypto.js +19 -1
  11. package/dist/cjs/crypto/NodeJsStyleCrypto.js.map +1 -1
  12. package/dist/cjs/crypto/StandardCrypto.d.ts +1 -1
  13. package/dist/cjs/crypto/StandardCrypto.d.ts.map +1 -1
  14. package/dist/cjs/crypto/StandardCrypto.js +3 -0
  15. package/dist/cjs/crypto/StandardCrypto.js.map +1 -1
  16. package/dist/cjs/environment/Environment.d.ts +12 -0
  17. package/dist/cjs/environment/Environment.d.ts.map +1 -1
  18. package/dist/cjs/environment/Environment.js +48 -7
  19. package/dist/cjs/environment/Environment.js.map +1 -1
  20. package/dist/cjs/environment/Environmental.d.ts +1 -1
  21. package/dist/cjs/environment/Environmental.d.ts.map +1 -1
  22. package/dist/cjs/environment/RuntimeService.d.ts +9 -2
  23. package/dist/cjs/environment/RuntimeService.d.ts.map +1 -1
  24. package/dist/cjs/environment/RuntimeService.js +10 -1
  25. package/dist/cjs/environment/RuntimeService.js.map +1 -1
  26. package/dist/cjs/net/AppAddress.d.ts +46 -0
  27. package/dist/cjs/net/AppAddress.d.ts.map +1 -0
  28. package/dist/cjs/net/AppAddress.js +117 -0
  29. package/dist/cjs/net/AppAddress.js.map +6 -0
  30. package/dist/cjs/net/Channel.d.ts +2 -2
  31. package/dist/cjs/net/Channel.d.ts.map +1 -1
  32. package/dist/cjs/net/{TransportInterface.d.ts → ConnectionlessTransport.d.ts} +9 -8
  33. package/dist/cjs/net/ConnectionlessTransport.d.ts.map +1 -0
  34. package/dist/cjs/net/{TransportInterface.js → ConnectionlessTransport.js} +9 -8
  35. package/dist/cjs/net/ConnectionlessTransport.js.map +6 -0
  36. package/dist/cjs/net/Network.d.ts +2 -2
  37. package/dist/cjs/net/Network.d.ts.map +1 -1
  38. package/dist/cjs/net/ServerAddress.d.ts +7 -2
  39. package/dist/cjs/net/ServerAddress.d.ts.map +1 -1
  40. package/dist/cjs/net/ServerAddress.js +20 -5
  41. package/dist/cjs/net/ServerAddress.js.map +1 -1
  42. package/dist/cjs/net/index.d.ts +3 -5
  43. package/dist/cjs/net/index.d.ts.map +1 -1
  44. package/dist/cjs/net/index.js +3 -5
  45. package/dist/cjs/net/index.js.map +1 -1
  46. package/dist/cjs/net/mock/MockNetwork.d.ts +1 -1
  47. package/dist/cjs/net/mock/MockNetwork.d.ts.map +1 -1
  48. package/dist/cjs/net/mock/MockUdpChannel.d.ts +1 -1
  49. package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
  50. package/dist/cjs/net/mock/MockUdpChannel.js +1 -1
  51. package/dist/{esm/net → cjs/net/udp}/UdpChannel.d.ts +3 -3
  52. package/dist/cjs/net/udp/UdpChannel.d.ts.map +1 -0
  53. package/dist/cjs/net/{UdpChannel.js.map → udp/UdpChannel.js.map} +1 -1
  54. package/dist/{esm/net → cjs/net/udp}/UdpInterface.d.ts +9 -10
  55. package/dist/cjs/net/udp/UdpInterface.d.ts.map +1 -0
  56. package/dist/cjs/net/{UdpInterface.js → udp/UdpInterface.js} +2 -2
  57. package/dist/cjs/net/{UdpInterface.js.map → udp/UdpInterface.js.map} +2 -2
  58. package/dist/{esm/net → cjs/net/udp}/UdpMulticastServer.d.ts +1 -1
  59. package/dist/cjs/net/udp/UdpMulticastServer.d.ts.map +1 -0
  60. package/dist/cjs/net/{UdpMulticastServer.js → udp/UdpMulticastServer.js} +5 -5
  61. package/dist/cjs/net/{UdpMulticastServer.js.map → udp/UdpMulticastServer.js.map} +1 -1
  62. package/dist/cjs/net/udp/index.d.ts +9 -0
  63. package/dist/cjs/net/udp/index.d.ts.map +1 -0
  64. package/dist/cjs/net/udp/index.js +26 -0
  65. package/dist/cjs/net/udp/index.js.map +6 -0
  66. package/dist/cjs/time/Duration.d.ts.map +1 -1
  67. package/dist/cjs/time/Duration.js +4 -1
  68. package/dist/cjs/time/Duration.js.map +1 -1
  69. package/dist/esm/MatterError.d.ts +2 -2
  70. package/dist/esm/MatterError.d.ts.map +1 -1
  71. package/dist/esm/MatterError.js +0 -1
  72. package/dist/esm/MatterError.js.map +1 -1
  73. package/dist/esm/crypto/Crypto.d.ts +1 -1
  74. package/dist/esm/crypto/Crypto.d.ts.map +1 -1
  75. package/dist/esm/crypto/Crypto.js.map +1 -1
  76. package/dist/esm/crypto/NodeJsStyleCrypto.d.ts +2 -1
  77. package/dist/esm/crypto/NodeJsStyleCrypto.d.ts.map +1 -1
  78. package/dist/esm/crypto/NodeJsStyleCrypto.js +19 -1
  79. package/dist/esm/crypto/NodeJsStyleCrypto.js.map +1 -1
  80. package/dist/esm/crypto/StandardCrypto.d.ts +1 -1
  81. package/dist/esm/crypto/StandardCrypto.d.ts.map +1 -1
  82. package/dist/esm/crypto/StandardCrypto.js +4 -1
  83. package/dist/esm/crypto/StandardCrypto.js.map +1 -1
  84. package/dist/esm/environment/Environment.d.ts +12 -0
  85. package/dist/esm/environment/Environment.d.ts.map +1 -1
  86. package/dist/esm/environment/Environment.js +48 -7
  87. package/dist/esm/environment/Environment.js.map +1 -1
  88. package/dist/esm/environment/Environmental.d.ts +1 -1
  89. package/dist/esm/environment/Environmental.d.ts.map +1 -1
  90. package/dist/esm/environment/RuntimeService.d.ts +9 -2
  91. package/dist/esm/environment/RuntimeService.d.ts.map +1 -1
  92. package/dist/esm/environment/RuntimeService.js +10 -1
  93. package/dist/esm/environment/RuntimeService.js.map +1 -1
  94. package/dist/esm/net/AppAddress.d.ts +46 -0
  95. package/dist/esm/net/AppAddress.d.ts.map +1 -0
  96. package/dist/esm/net/AppAddress.js +97 -0
  97. package/dist/esm/net/AppAddress.js.map +6 -0
  98. package/dist/esm/net/Channel.d.ts +2 -2
  99. package/dist/esm/net/Channel.d.ts.map +1 -1
  100. package/dist/esm/net/{TransportInterface.d.ts → ConnectionlessTransport.d.ts} +9 -8
  101. package/dist/esm/net/ConnectionlessTransport.d.ts.map +1 -0
  102. package/dist/esm/net/{TransportInterface.js → ConnectionlessTransport.js} +6 -5
  103. package/dist/esm/net/ConnectionlessTransport.js.map +6 -0
  104. package/dist/esm/net/Network.d.ts +2 -2
  105. package/dist/esm/net/Network.d.ts.map +1 -1
  106. package/dist/esm/net/ServerAddress.d.ts +7 -2
  107. package/dist/esm/net/ServerAddress.d.ts.map +1 -1
  108. package/dist/esm/net/ServerAddress.js +20 -5
  109. package/dist/esm/net/ServerAddress.js.map +1 -1
  110. package/dist/esm/net/index.d.ts +3 -5
  111. package/dist/esm/net/index.d.ts.map +1 -1
  112. package/dist/esm/net/index.js +3 -5
  113. package/dist/esm/net/index.js.map +1 -1
  114. package/dist/esm/net/mock/MockNetwork.d.ts +1 -1
  115. package/dist/esm/net/mock/MockNetwork.d.ts.map +1 -1
  116. package/dist/esm/net/mock/MockUdpChannel.d.ts +1 -1
  117. package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
  118. package/dist/esm/net/mock/MockUdpChannel.js +1 -1
  119. package/dist/{cjs/net → esm/net/udp}/UdpChannel.d.ts +3 -3
  120. package/dist/esm/net/udp/UdpChannel.d.ts.map +1 -0
  121. package/dist/esm/net/{UdpChannel.js.map → udp/UdpChannel.js.map} +1 -1
  122. package/dist/{cjs/net → esm/net/udp}/UdpInterface.d.ts +9 -10
  123. package/dist/esm/net/udp/UdpInterface.d.ts.map +1 -0
  124. package/dist/esm/net/{UdpInterface.js → udp/UdpInterface.js} +2 -2
  125. package/dist/esm/net/{UdpInterface.js.map → udp/UdpInterface.js.map} +2 -2
  126. package/dist/{cjs/net → esm/net/udp}/UdpMulticastServer.d.ts +1 -1
  127. package/dist/esm/net/udp/UdpMulticastServer.d.ts.map +1 -0
  128. package/dist/esm/net/{UdpMulticastServer.js → udp/UdpMulticastServer.js} +5 -5
  129. package/dist/esm/net/{UdpMulticastServer.js.map → udp/UdpMulticastServer.js.map} +1 -1
  130. package/dist/esm/net/udp/index.d.ts +9 -0
  131. package/dist/esm/net/udp/index.d.ts.map +1 -0
  132. package/dist/esm/net/udp/index.js +9 -0
  133. package/dist/esm/net/udp/index.js.map +6 -0
  134. package/dist/esm/time/Duration.d.ts.map +1 -1
  135. package/dist/esm/time/Duration.js +4 -1
  136. package/dist/esm/time/Duration.js.map +1 -1
  137. package/package.json +2 -2
  138. package/src/MatterError.ts +6 -3
  139. package/src/crypto/Crypto.ts +3 -1
  140. package/src/crypto/NodeJsStyleCrypto.ts +24 -2
  141. package/src/crypto/StandardCrypto.ts +5 -2
  142. package/src/environment/Environment.ts +66 -8
  143. package/src/environment/Environmental.ts +1 -1
  144. package/src/environment/RuntimeService.ts +21 -2
  145. package/src/net/AppAddress.ts +136 -0
  146. package/src/net/Channel.ts +2 -2
  147. package/src/net/{TransportInterface.ts → ConnectionlessTransport.ts} +12 -8
  148. package/src/net/Network.ts +2 -2
  149. package/src/net/ServerAddress.ts +32 -7
  150. package/src/net/index.ts +3 -5
  151. package/src/net/mock/MockNetwork.ts +1 -1
  152. package/src/net/mock/MockUdpChannel.ts +1 -1
  153. package/src/net/{UdpChannel.ts → udp/UdpChannel.ts} +3 -3
  154. package/src/net/{UdpInterface.ts → udp/UdpInterface.ts} +7 -8
  155. package/src/net/{UdpMulticastServer.ts → udp/UdpMulticastServer.ts} +5 -5
  156. package/src/net/udp/index.ts +9 -0
  157. package/src/time/Duration.ts +8 -1
  158. package/dist/cjs/net/NetInterface.d.ts +0 -25
  159. package/dist/cjs/net/NetInterface.d.ts.map +0 -1
  160. package/dist/cjs/net/NetInterface.js +0 -42
  161. package/dist/cjs/net/NetInterface.js.map +0 -6
  162. package/dist/cjs/net/TransportInterface.d.ts.map +0 -1
  163. package/dist/cjs/net/TransportInterface.js.map +0 -6
  164. package/dist/cjs/net/UdpChannel.d.ts.map +0 -1
  165. package/dist/cjs/net/UdpInterface.d.ts.map +0 -1
  166. package/dist/cjs/net/UdpMulticastServer.d.ts.map +0 -1
  167. package/dist/esm/net/NetInterface.d.ts +0 -25
  168. package/dist/esm/net/NetInterface.d.ts.map +0 -1
  169. package/dist/esm/net/NetInterface.js +0 -22
  170. package/dist/esm/net/NetInterface.js.map +0 -6
  171. package/dist/esm/net/TransportInterface.d.ts.map +0 -1
  172. package/dist/esm/net/TransportInterface.js.map +0 -6
  173. package/dist/esm/net/UdpChannel.d.ts.map +0 -1
  174. package/dist/esm/net/UdpInterface.d.ts.map +0 -1
  175. package/dist/esm/net/UdpMulticastServer.d.ts.map +0 -1
  176. package/src/net/NetInterface.ts +0 -34
  177. /package/dist/cjs/net/{UdpChannel.js → udp/UdpChannel.js} +0 -0
  178. /package/dist/esm/net/{UdpChannel.js → udp/UdpChannel.js} +0 -0
@@ -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 "./UdpChannel.js";
7
+ export * from "./UdpInterface.js";
8
+ export * from "./UdpMulticastServer.js";
9
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/net/udp/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
15
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
16
+ var udp_exports = {};
17
+ module.exports = __toCommonJS(udp_exports);
18
+ __reExport(udp_exports, require("./UdpChannel.js"), module.exports);
19
+ __reExport(udp_exports, require("./UdpInterface.js"), module.exports);
20
+ __reExport(udp_exports, require("./UdpMulticastServer.js"), module.exports);
21
+ /**
22
+ * @license
23
+ * Copyright 2022-2025 Matter.js Authors
24
+ * SPDX-License-Identifier: Apache-2.0
25
+ */
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,6 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/net/udp/index.ts"],
4
+ "mappings": ";;;;;;;;;;;;;;;AAAA;AAAA;AAMA,wBAAc,4BANd;AAOA,wBAAc,8BAPd;AAQA,wBAAc,oCARd;AAAA;AAAA;AAAA;AAAA;AAAA;",
5
+ "names": []
6
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"Duration.d.ts","sourceRoot":"","sources":["../../../src/time/Duration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AAEvD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAazE;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB;CAAG;AAE/D,yBAAiB,QAAQ,CAAC;IACtB;;OAEG;IACH,SAAgB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,YAK3C;IAED;;OAEG;IACH,SAAgB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,YAK3C;IAED;;OAEG;IACH,SAAgB,MAAM,CAAC,CAAC,SAAS,QAAQ,GAAG,SAAS,EACjD,QAAQ,EAAE,CAAC,GACZ,CAAC,SAAS,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAmDnD;IAED;;OAEG;IACH,SAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GA8CX,QAAQ,CAC9B;CACJ"}
1
+ {"version":3,"file":"Duration.d.ts","sourceRoot":"","sources":["../../../src/time/Duration.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAE,MAAM,eAAe,CAAC;AAGxC;;;;;;;;;;GAUG;AACH,MAAM,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC;AAEvD;;GAEG;AACH,wBAAgB,QAAQ,CAAC,CAAC,SAAS,QAAQ,GAAG,MAAM,EAAE,MAAM,EAAE,CAAC,GAAG,QAAQ,CAazE;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,mBAAmB;CAAG;AAE/D,yBAAiB,QAAQ,CAAC;IACtB;;OAEG;IACH,SAAgB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,YAK3C;IAED;;OAEG;IACH,SAAgB,GAAG,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,EAAE,QAAQ,YAK3C;IAED;;OAEG;IACH,SAAgB,MAAM,CAAC,CAAC,SAAS,QAAQ,GAAG,SAAS,EACjD,QAAQ,EAAE,CAAC,GACZ,CAAC,SAAS,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,MAAM,CAsDnD;IAED;;OAEG;IACH,SAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,GA8CX,QAAQ,CAC9B;CACJ"}
@@ -58,6 +58,9 @@ class DurationFormatError extends import_MatterError.UnexpectedDataError {
58
58
  }
59
59
  Duration2.min = min;
60
60
  function format(duration) {
61
+ if (duration === void 0) {
62
+ return void 0;
63
+ }
61
64
  let ms = duration;
62
65
  if (typeof ms !== "number" || !Number.isFinite(ms)) {
63
66
  return "invalid";
@@ -140,6 +143,6 @@ class DurationFormatError extends import_MatterError.UnexpectedDataError {
140
143
  Duration2.parse = parse;
141
144
  })(Duration || (Duration = {}));
142
145
  function toPrecision(number, precision) {
143
- return number.toPrecision(precision).replace(/\.?0+/, "");
146
+ return number.toPrecision(precision).replace(/(\.\d*?[1-9])0+$/, "$1").replace(/\.0+$/, "");
144
147
  }
145
148
  //# sourceMappingURL=Duration.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/time/Duration.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["Duration"]
6
6
  }
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { MaybePromise } from "#util/Promises.js";
6
7
  declare const inspect: unique symbol;
7
8
  /**
8
9
  * Error base class for all errors thrown by this library.
@@ -119,9 +120,8 @@ export declare class MatterAggregateError extends AggregateError {
119
120
  /**
120
121
  * Wait for all promises to settle and throw an error if any of them reject as MatterAggregateError
121
122
  * (or extended class). Promise results are not returned.
122
- * TODO: Enhance the types between call and result to be better unwrapped
123
123
  */
124
- static allSettled(promises: Iterable<unknown>, message?: string): Promise<unknown[]>;
124
+ static allSettled<T = unknown>(promises: Iterable<MaybePromise<T>>, message?: string): Promise<T[]>;
125
125
  }
126
126
  /**
127
127
  * It's never reasonable to fail to present error information so we include this rudimentary fallback error formatter.
@@ -1 +1 @@
1
- {"version":3,"file":"MatterError.d.ts","sourceRoot":"","sources":["../../src/MatterError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH,QAAA,MAAM,OAAO,eAA2C,CAAC;AAIzD;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAClC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,GAAE,OAAO,GAAG,MAAM,GAAG,MAAgB,EAAE,OAAO,SAAI,GAgB1C,MAAM;IAG3B;;OAEG;IACH,IAAI,EAAE,WAEL;IAED;;OAEG;IACH,MAAM,KAAK,EAAE,WAEZ;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAwBnC;;;;;;;OAOG;IACH,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;IAcjE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC;IAOzG;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAMnC;;OAEG;IACH,MAAM,CAAC,uBAAuB,iCAA2B;IAEzD;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAClD;CAU3C;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;CAAG;AAEnD;;;GAGG;AACH,qBAAa,aAAc,SAAQ,WAAW;CAAG;AAEjD,qFAAqF;AACrF,qBAAa,mBAAoB,SAAQ,aAAa;CAAG;AAEzD,yGAAyG;AACzG,qBAAa,eAAgB,SAAQ,WAAW;CAAG;AAEnD,sFAAsF;AACtF,qBAAa,mBAAoB,SAAQ,WAAW;CAAG;AAEvD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;CAAG;AAEvD;;GAEG;AACH,qBAAa,WAAY,SAAQ,WAAW;CAAG;AAE/C;;GAEG;AACH,qBAAa,aAAc,SAAQ,mBAAmB;gBACtC,OAAO,SAA2B;CAGjD;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;gBACxC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM;IAQvD;;OAEG;IACH,IAAI,EAAE,WAEL;IAED;;OAEG;IACH,MAAM,KAAK,EAAE,WAEZ;IAED;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK;WAMT,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,OAAO;IAOtD;;;;OAIG;WACU,UAAU,CAAC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,SAAoB,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;CASxG;AAOD;;GAEG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAAI,UA2CrD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,WAAW;gBAC9B,OAAO,SAAuB,EAAE,OAAO,CAAC,EAAE,YAAY;CAGrE;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,WAAW;gBAC7B,OAAO,SAAwB,EAAE,OAAO,CAAC,EAAE,YAAY;CAGtE"}
1
+ {"version":3,"file":"MatterError.d.ts","sourceRoot":"","sources":["../../src/MatterError.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,QAAA,MAAM,OAAO,eAA2C,CAAC;AAIzD;;GAEG;AACH,qBAAa,WAAY,SAAQ,KAAK;IAClC;;;;;OAKG;IACH,MAAM,CAAC,MAAM,GAAE,OAAO,GAAG,MAAM,GAAG,MAAgB,EAAE,OAAO,SAAI,GAgB1C,MAAM;IAG3B;;OAEG;IACH,IAAI,EAAE,WAEL;IAED;;OAEG;IACH,MAAM,KAAK,EAAE,WAEZ;IAED;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE;IAwBnC;;;;;;;OAOG;IACH,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,MAAM,EAAE,iBAAiB,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,OAAO,CAAA;KAAE;IAcjE;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,CAAC,SAAS,WAAW,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,KAAK,IAAI,CAAC;IAOzG;;OAEG;IACH,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,IAAI;IAMnC;;OAEG;IACH,MAAM,CAAC,uBAAuB,iCAA2B;IAEzD;;OAEG;IACH,MAAM,CAAC,YAAY,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,EAAE,MAAM,KAAK,OAAO,CAClD;CAU3C;AAED;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,WAAW;CAAG;AAEnD;;;GAGG;AACH,qBAAa,aAAc,SAAQ,WAAW;CAAG;AAEjD,qFAAqF;AACrF,qBAAa,mBAAoB,SAAQ,aAAa;CAAG;AAEzD,yGAAyG;AACzG,qBAAa,eAAgB,SAAQ,WAAW;CAAG;AAEnD,sFAAsF;AACtF,qBAAa,mBAAoB,SAAQ,WAAW;CAAG;AAEvD;;;GAGG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;CAAG;AAEvD;;GAEG;AACH,qBAAa,WAAY,SAAQ,WAAW;CAAG;AAE/C;;GAEG;AACH,qBAAa,aAAc,SAAQ,mBAAmB;gBACtC,OAAO,SAA2B;CAGjD;AAED;;GAEG;AACH,qBAAa,oBAAqB,SAAQ,cAAc;gBACxC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,EAAE,OAAO,CAAC,EAAE,MAAM;IAQvD;;OAEG;IACH,IAAI,EAAE,WAEL;IAED;;OAEG;IACH,MAAM,KAAK,EAAE,WAEZ;IAED;;;;;OAKG;IACH,YAAY,CAAC,KAAK,EAAE,KAAK;WAMT,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,QAAQ,EAAE,OAAO;IAOtD;;;OAGG;WACU,UAAU,CAAC,CAAC,GAAG,OAAO,EAC/B,QAAQ,EAAE,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EACnC,OAAO,SAAoB,GAC5B,OAAO,CAAC,CAAC,EAAE,CAAC;CASlB;AAOD;;GAEG;AACH,iBAAS,iBAAiB,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,SAAI,UA2CrD;AAED;;GAEG;AACH,qBAAa,aAAc,SAAQ,WAAW;gBAC9B,OAAO,SAAuB,EAAE,OAAO,CAAC,EAAE,YAAY;CAGrE;AAED;;GAEG;AACH,qBAAa,YAAa,SAAQ,WAAW;gBAC7B,OAAO,SAAwB,EAAE,OAAO,CAAC,EAAE,YAAY;CAGtE"}
@@ -173,7 +173,6 @@ class MatterAggregateError extends AggregateError {
173
173
  /**
174
174
  * Wait for all promises to settle and throw an error if any of them reject as MatterAggregateError
175
175
  * (or extended class). Promise results are not returned.
176
- * TODO: Enhance the types between call and result to be better unwrapped
177
176
  */
178
177
  static async allSettled(promises, message = "Errors happened") {
179
178
  const results = await Promise.allSettled(promises);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/MatterError.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["value", "indents"]
6
6
  }
@@ -104,7 +104,7 @@ export declare abstract class Crypto {
104
104
  /**
105
105
  * Compute the SHA-256 hash of a buffer.
106
106
  */
107
- abstract computeSha256(data: Bytes | Bytes[]): MaybePromise<Bytes>;
107
+ abstract computeSha256(data: Bytes | Bytes[] | ReadableStreamDefaultReader<Bytes> | AsyncIterator<Bytes>): MaybePromise<Bytes>;
108
108
  /**
109
109
  * Create a key from a secret using PBKDF2.
110
110
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/Crypto.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Crypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/Crypto.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/crypto/Crypto.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AACvB,SAAS,aAAa;AAEtB,YAAY,SAAS;AACrB,SAAS,YAAY;AACrB,YAAY,WAAW;AAGhB,MAAM,KAAK;AAAA,EACd;AAAA,EACA,GAAG;AAAA,EACH,GAAG;AACP;AAEO,MAAM,2BAA2B;AACjC,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AACxB,MAAM,sBAAsB;AAC5B,MAAM,yBAAyB;AAC/B,MAAM,8BAA8B;AAG3C,MAAM,SAAS,OAAO,IAAI,QAAQ;AAa3B,MAAe,OAAO;AAAA,EAsEzB,IAAI,cAAc;AACd,WAAO,MAAM,GAAG,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC;AAAA,EAC1C;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,MAAM,WAAW,KAAK,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC;AAAA,EAC5D;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,MAAM,WAAW,KAAK,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC;AAAA,EAC5D;AAAA,EAEA,IAAI,kBAAkB;AAClB,WAAO,MAAM,WAAW,KAAK,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC;AAAA,EAC/D;AAAA,EAEA,aAAa,MAAc,UAAmB;AAC1C,QAAI,aAAa,QAAW;AACxB,aAAO,MAAM,SAAS,KAAK,YAAY,IAAI,CAAC;AAAA,IAChD;AAEA,WAAO,MAAM;AACT,YAAM,SAAS,MAAM,SAAS,KAAK,YAAY,IAAI,CAAC;AACpD,UAAI,SAAS,SAAU,QAAO;AAAA,IAClC;AAAA,EACJ;AAAA,EAEA,YAAY,WAAoB;AAC5B,UAAM,UAAU,CAAC,SAAS,WAAW,OAAO,KAAK,kBAAkB,GAAG,uBAAuB;AAC7F,QAAI,WAAW;AACX,cAAQ,KAAK,OAAO,SAAS;AAAA,IACjC;AACA,WAAO,MAAM,GAAG,OAAO;AAAA,EAC3B;AACJ;",
4
+ "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,kBAAkB;AAC3B,SAAS,cAAc;AACvB,SAAS,aAAa;AAEtB,YAAY,SAAS;AACrB,SAAS,YAAY;AACrB,YAAY,WAAW;AAGhB,MAAM,KAAK;AAAA,EACd;AAAA,EACA,GAAG;AAAA,EACH,GAAG;AACP;AAEO,MAAM,2BAA2B;AACjC,MAAM,wBAAwB;AAC9B,MAAM,kBAAkB;AACxB,MAAM,sBAAsB;AAC5B,MAAM,yBAAyB;AAC/B,MAAM,8BAA8B;AAG3C,MAAM,SAAS,OAAO,IAAI,QAAQ;AAa3B,MAAe,OAAO;AAAA,EAwEzB,IAAI,cAAc;AACd,WAAO,MAAM,GAAG,KAAK,YAAY,CAAC,CAAC,EAAE,CAAC;AAAA,EAC1C;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,MAAM,WAAW,KAAK,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC;AAAA,EAC5D;AAAA,EAEA,IAAI,eAAe;AACf,WAAO,MAAM,WAAW,KAAK,YAAY,CAAC,CAAC,EAAE,UAAU,CAAC;AAAA,EAC5D;AAAA,EAEA,IAAI,kBAAkB;AAClB,WAAO,MAAM,WAAW,KAAK,YAAY,CAAC,CAAC,EAAE,aAAa,CAAC;AAAA,EAC/D;AAAA,EAEA,aAAa,MAAc,UAAmB;AAC1C,QAAI,aAAa,QAAW;AACxB,aAAO,MAAM,SAAS,KAAK,YAAY,IAAI,CAAC;AAAA,IAChD;AAEA,WAAO,MAAM;AACT,YAAM,SAAS,MAAM,SAAS,KAAK,YAAY,IAAI,CAAC;AACpD,UAAI,SAAS,SAAU,QAAO;AAAA,IAClC;AAAA,EACJ;AAAA,EAEA,YAAY,WAAoB;AAC5B,UAAM,UAAU,CAAC,SAAS,WAAW,OAAO,KAAK,kBAAkB,GAAG,uBAAuB;AAC7F,QAAI,WAAW;AACX,cAAQ,KAAK,OAAO,SAAS;AAAA,IACjC;AACA,WAAO,MAAM,GAAG,OAAO;AAAA,EAC3B;AACJ;",
5
5
  "names": []
6
6
  }
@@ -4,6 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { Bytes } from "#util/Bytes.js";
7
+ import { MaybePromise } from "#util/Promises.js";
7
8
  import { Identity } from "#util/Type.js";
8
9
  import { Crypto, CryptoDsaEncoding } from "./Crypto.js";
9
10
  import { PrivateKey, PublicKey } from "./Key.js";
@@ -37,7 +38,7 @@ export declare class NodeJsStyleCrypto extends Crypto {
37
38
  publicKey: Bytes;
38
39
  sharedSecret: Bytes;
39
40
  };
40
- computeSha256(data: Bytes | Bytes[]): Bytes;
41
+ computeSha256(data: Bytes | Bytes[] | ReadableStreamDefaultReader<Bytes> | AsyncIterator<Bytes>): MaybePromise<Bytes>;
41
42
  createPbkdf2Key(secret: Bytes, salt: Bytes, iteration: number, keyLength: number): Promise<Bytes>;
42
43
  createHkdfKey(secret: Bytes, salt: Bytes, info: Bytes, length?: number): Promise<Bytes>;
43
44
  signHmac(key: Bytes, data: Bytes): Bytes;
@@ -1 +1 @@
1
- {"version":3,"file":"NodeJsStyleCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/NodeJsStyleCrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACH,MAAM,EAON,iBAAiB,EACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGjD,OAAO,KAAK,KAAK,eAAe,MAAM,aAAa,CAAC;AAKpD;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,QAAQ,CAAC,OAAO,eAAe,CAAC;CAAG;AAEhF;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,SAAQ,MAAM;;IACzC,kBAAkB,SAAa;gBAInB,MAAM,EAAE,mBAAmB;IAMvC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK;IAYlE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK;IAmBvE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK;IAIlC,qBAAqB,IAAI;QAAE,SAAS,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;IAMxD,8BAA8B,CAAC,aAAa,EAAE,KAAK,GAAG;QAClD,SAAS,EAAE,KAAK,CAAC;QACjB,YAAY,EAAE,KAAK,CAAC;KACvB;IASD,aAAa,CAAC,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,KAAK;IAU3C,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAgBjG,aAAa,CACT,MAAM,EAAE,KAAK,EACb,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,EACX,MAAM,GAAE,MAAoC,GAC7C,OAAO,CAAC,KAAK,CAAC;IAgBjB,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK;IAMxC,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,WAAW,GAAE,iBAAgC,GAAG,KAAK;IAiB9G,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAE,iBAAgC;IAe/G,aAAa;IAcb,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK;CAM/D"}
1
+ {"version":3,"file":"NodeJsStyleCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/NodeJsStyleCrypto.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAEvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACH,MAAM,EAON,iBAAiB,EACpB,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAGjD,OAAO,KAAK,KAAK,eAAe,MAAM,aAAa,CAAC;AAKpD;;GAEG;AACH,MAAM,WAAW,mBAAoB,SAAQ,QAAQ,CAAC,OAAO,eAAe,CAAC;CAAG;AAEhF;;;;;;;;GAQG;AACH,qBAAa,iBAAkB,SAAQ,MAAM;;IACzC,kBAAkB,SAAa;gBAInB,MAAM,EAAE,mBAAmB;IAMvC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK;IAYlE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,KAAK,GAAG,KAAK;IAmBvE,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK;IAIlC,qBAAqB,IAAI;QAAE,SAAS,EAAE,KAAK,CAAC;QAAC,IAAI,EAAE,GAAG,CAAA;KAAE;IAMxD,8BAA8B,CAAC,aAAa,EAAE,KAAK,GAAG;QAClD,SAAS,EAAE,KAAK,CAAC;QACjB,YAAY,EAAE,KAAK,CAAC;KACvB;IAiBD,aAAa,CACT,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,GAClF,YAAY,CAAC,KAAK,CAAC;IAoBtB,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC;IAgBjG,aAAa,CACT,MAAM,EAAE,KAAK,EACb,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,EACX,MAAM,GAAE,MAAoC,GAC7C,OAAO,CAAC,KAAK,CAAC;IAgBjB,QAAQ,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK;IAMxC,SAAS,CAAC,UAAU,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,WAAW,GAAE,iBAAgC,GAAG,KAAK;IAiB9G,WAAW,CAAC,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,GAAE,iBAAgC;IAe/G,aAAa;IAcb,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,KAAK;CAM/D"}
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { ImplementationError } from "#MatterError.js";
6
7
  import { Bytes } from "#util/Bytes.js";
7
8
  import { asError } from "#util/Error.js";
8
9
  import {
@@ -68,12 +69,29 @@ class NodeJsStyleCrypto extends Crypto {
68
69
  sharedSecret: Bytes.of(ecdh.computeSecret(Bytes.of(peerPublicKey)))
69
70
  };
70
71
  }
72
+ async #hashAsyncIteratorData(hasher, iteratorFunc) {
73
+ while (true) {
74
+ const { value, done } = await iteratorFunc();
75
+ if (value === void 0 || done) break;
76
+ hasher.update(Bytes.of(value));
77
+ }
78
+ }
71
79
  computeSha256(data) {
72
80
  const hasher = this.#crypto.createHash(CRYPTO_HASH_ALGORITHM);
73
81
  if (Array.isArray(data)) {
74
82
  data.forEach((chunk) => hasher.update(Bytes.of(chunk)));
75
- } else {
83
+ } else if (Bytes.isBytes(data)) {
76
84
  hasher.update(Bytes.of(data));
85
+ } else {
86
+ let iteratorFunc;
87
+ if ("read" in data && typeof data.read === "function") {
88
+ iteratorFunc = data.read.bind(data);
89
+ } else if ("next" in data && typeof data.next === "function") {
90
+ iteratorFunc = data.next.bind(data);
91
+ } else {
92
+ throw new ImplementationError("Invalid data type for computeSha256");
93
+ }
94
+ return this.#hashAsyncIteratorData(hasher, iteratorFunc).then(() => Bytes.of(hasher.digest()));
77
95
  }
78
96
  return Bytes.of(hasher.digest());
79
97
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/crypto/NodeJsStyleCrypto.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -27,7 +27,7 @@ export declare class StandardCrypto extends Crypto {
27
27
  randomBytes(length: number): Bytes;
28
28
  encrypt(key: Bytes, data: Bytes, nonce: Bytes, associatedData?: Bytes): AllowSharedBufferSource;
29
29
  decrypt(key: Bytes, data: Bytes, nonce: Bytes, associatedData?: Bytes): AllowSharedBufferSource;
30
- computeSha256(buffer: Bytes | Bytes[]): Promise<ArrayBuffer>;
30
+ computeSha256(buffer: Bytes | Bytes[] | ReadableStreamDefaultReader<Bytes> | AsyncIterator<Bytes>): Promise<ArrayBuffer>;
31
31
  createPbkdf2Key(secret: Bytes, salt: Bytes, iteration: number, keyLength: number): Promise<ArrayBuffer>;
32
32
  createHkdfKey(secret: Bytes, salt: Bytes, info: Bytes, length?: number): Promise<Bytes>;
33
33
  signHmac(secret: Bytes, data: Bytes): MaybePromise<Bytes>;
@@ -1 +1 @@
1
- {"version":3,"file":"StandardCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/StandardCrypto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,MAAM,EAA+B,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAA2B,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAuB3C;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,MAAM;;IACtC,kBAAkB,SAAQ;gBAId,MAAM,GAAE,SAA6B;IAYjD,SAAS,KAAK,MAAM,iBAEnB;IAED,MAAM,CAAC,QAAQ;IAIf,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK;IAMlC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK;IASrE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK;IASrE,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE;IAO/B,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAchF,aAAa,CACf,MAAM,EAAE,KAAK,EACb,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,EACX,MAAM,GAAE,MAAoC,GAC7C,OAAO,CAAC,KAAK,CAAC;IAcjB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IAMnD,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,WAAW,CAAC,EAAE,iBAAiB;IA+BjF,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,iBAAiB;IAgC3F,aAAa;cAaH,WAAW;IAkBrB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;cAiC3D,SAAS,CACrB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,GAAG,KAAK,EAC3B,SAAS,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,EAC/G,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;CAQzC"}
1
+ {"version":3,"file":"StandardCrypto.d.ts","sourceRoot":"","sources":["../../../src/crypto/StandardCrypto.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,EAAE,MAAM,EAA+B,iBAAiB,EAAE,MAAM,aAAa,CAAC;AAErF,OAAO,EAA2B,UAAU,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC1E,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAuB3C;;;;;;;;GAQG;AACH,qBAAa,cAAe,SAAQ,MAAM;;IACtC,kBAAkB,SAAQ;gBAId,MAAM,GAAE,SAA6B;IAYjD,SAAS,KAAK,MAAM,iBAEnB;IAED,MAAM,CAAC,QAAQ;IAIf,WAAW,CAAC,MAAM,EAAE,MAAM,GAAG,KAAK;IAMlC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK;IASrE,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,CAAC,EAAE,KAAK;IASrE,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,KAAK,EAAE,GAAG,2BAA2B,CAAC,KAAK,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC;IAU3F,eAAe,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;IAchF,aAAa,CACf,MAAM,EAAE,KAAK,EACb,IAAI,EAAE,KAAK,EACX,IAAI,EAAE,KAAK,EACX,MAAM,GAAE,MAAoC,GAC7C,OAAO,CAAC,KAAK,CAAC;IAcjB,QAAQ,CAAC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,GAAG,YAAY,CAAC,KAAK,CAAC;IAMnD,SAAS,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE,EAAE,WAAW,CAAC,EAAE,iBAAiB;IA+BjF,WAAW,CAAC,GAAG,EAAE,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE,WAAW,CAAC,EAAE,iBAAiB;IAgC3F,aAAa;cAaH,WAAW;IAkBrB,gBAAgB,CAAC,GAAG,EAAE,UAAU,EAAE,OAAO,EAAE,SAAS,GAAG,OAAO,CAAC,KAAK,CAAC;cAiC3D,SAAS,CACrB,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,UAAU,GAAG,KAAK,EAC3B,SAAS,EAAE,mBAAmB,GAAG,qBAAqB,GAAG,iBAAiB,GAAG,gBAAgB,GAAG,eAAe,EAC/G,WAAW,EAAE,OAAO,EACpB,SAAS,EAAE,aAAa,CAAC,QAAQ,CAAC;CAQzC"}
@@ -6,7 +6,7 @@
6
6
  */
7
7
  import { DerBigUint, DerCodec, DerError } from "#codec/DerCodec.js";
8
8
  import { Environment } from "#environment/Environment.js";
9
- import { ImplementationError } from "#MatterError.js";
9
+ import { ImplementationError, NotImplementedError } from "#MatterError.js";
10
10
  import { Bytes } from "#util/Bytes.js";
11
11
  import { describeList } from "#util/String.js";
12
12
  import { Ccm } from "./aes/Ccm.js";
@@ -71,6 +71,9 @@ class StandardCrypto extends Crypto {
71
71
  if (Array.isArray(buffer)) {
72
72
  buffer = Bytes.concat(...buffer);
73
73
  }
74
+ if (!Bytes.isBytes(buffer)) {
75
+ throw new NotImplementedError("Streamed SHA-256 computation is not supported in StandardCrypto");
76
+ }
74
77
  return this.#subtle.digest("SHA-256", Bytes.exclusive(buffer));
75
78
  }
76
79
  async createPbkdf2Key(secret, salt, iteration, keyLength) {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/crypto/StandardCrypto.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["name"]
6
6
  }
@@ -29,6 +29,10 @@ export declare class Environment {
29
29
  * Determine if an environmental service is available.
30
30
  */
31
31
  has(type: abstract new (...args: any[]) => any): boolean;
32
+ /**
33
+ * Determine if an environmental services is owned by this environment (not an ancestor).
34
+ */
35
+ owns(type: abstract new (...args: any[]) => any): boolean;
32
36
  /**
33
37
  * Access an environmental service.
34
38
  */
@@ -87,6 +91,14 @@ export declare class Environment {
87
91
  * This is a more convenient way to observe a specific service than {@link added} and {@link deleted}.
88
92
  */
89
93
  eventsFor<T extends Environmental.Factory<any>>(type: T): Environmental.ServiceEvents<T>;
94
+ /**
95
+ * Apply functions to a specific service type automatically.
96
+ *
97
+ * The environment invokes {@link added} immediately if the service is currently present. It then invokes
98
+ * {@link added} in the future if the service is added or replaced and/or {@link deleted} if the service is replaced
99
+ * or deleted.
100
+ */
101
+ applyTo<T extends Environmental.Factory<any>>(type: T, added?: (env: Environment, service: T) => MaybePromise<void>, deleted?: (env: Environment, service: T) => MaybePromise<void>): void;
90
102
  /**
91
103
  * The default environment.
92
104
  *
@@ -1 +1 @@
1
- {"version":3,"file":"Environment.d.ts","sourceRoot":"","sources":["../../../src/environment/Environment.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGjD,OAAO,4BAA4B,CAAC;AAGpC,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AAIvD;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAW;;gBAQR,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW;IAK9C;;OAEG;IACH,GAAG,CAAC,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,GAAG,OAAO;IAUxD;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;IAiBlE;;OAEG;IACH,QAAQ,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,GAAG,SAAS;IAMnF;;;;;OAKG;IACH,MAAM,CAAC,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAAE,QAAQ,CAAC,EAAE,GAAG;IAejE;;;;OAIG;IACH,KAAK,CAAC,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG;IAQhD;;OAEG;IACH,KAAK,CAAC,CAAC,SAAS,MAAM,EAClB,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GACzC,CAAC,SAAS;QAAE,KAAK,EAAE,MAAM,YAAY,CAAC,IAAI,CAAC,CAAA;KAAE,GAAG,YAAY,CAAC,IAAI,CAAC,GAAG,IAAI;IAU5E;;OAEG;IACG,IAAI,CAAC,CAAC,SAAS,aAAa,CAAC,OAAO,EAAE,IAAI,EAAE,aAAa,CAAC,OAAO,CAAC,CAAC,CAAC;IAM1E;;OAEG;IACH,GAAG,CAAC,CAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IAYvE;;OAEG;IACH,IAAI,IAAI,WAEP;IAED,IAAI,IAAI,IAAI,WAAW,CAEtB;IAED;;;;OAIG;IACH,IAAI,KAAK,6CA5IyC,GAAG,EAAE,KAAK,EAAE,uBA8I7D;IAED;;;;OAIG;IACH,IAAI,OAAO,6CApJyC,GAAG,EAAE,KAAK,EAAE,uBAsJ/D;IAED;;;;OAIG;IACH,SAAS,CAAC,CAAC,SAAS,aAAa,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,IAAI,EAAE,CAAC,GASlC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;IAGnD;;;;OAIG;IACH,MAAM,KAAK,OAAO,IAOM,WAAW,CALlC;IAED;;OAEG;IACH,MAAM,KAAK,OAAO,CAAC,GAAG,EAAE,WAAW,EAYlC;IAED;;OAEG;IACH,IAAI,IAAI,oBAEP;IAED;;OAEG;IACH,IAAI,OAAO,mBAEV;IAED;;OAEG;IACH,QAAQ;IAUR,SAAS,CAAC,aAAa,IAAI,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAGjD"}
1
+ {"version":3,"file":"Environment.d.ts","sourceRoot":"","sources":["../../../src/environment/Environment.ts"],"names":[],"mappings":"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"}
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { InternalError } from "#MatterError.js";
6
7
  import { Instant } from "#time/TimeUnit.js";
7
8
  import { DiagnosticSource } from "../log/DiagnosticSource.js";
8
9
  import { Logger } from "../log/Logger.js";
@@ -35,17 +36,31 @@ class Environment {
35
36
  }
36
37
  return mine !== void 0 || (this.#parent?.has(type) ?? false);
37
38
  }
39
+ /**
40
+ * Determine if an environmental services is owned by this environment (not an ancestor).
41
+ */
42
+ owns(type) {
43
+ return !!this.#services?.get(type);
44
+ }
38
45
  /**
39
46
  * Access an environmental service.
40
47
  */
41
48
  get(type) {
42
- let instance = this.#services?.get(type) ?? this.#parent?.maybeGet(type);
43
- if (instance !== void 0 && instance !== null) {
44
- return instance;
49
+ const mine = this.#services?.get(type);
50
+ if (mine !== void 0 && mine !== null) {
51
+ return mine;
45
52
  }
46
- if (instance !== null) {
53
+ if (mine === void 0) {
54
+ let instance = this.#parent?.maybeGet(type);
55
+ if (instance !== void 0 && instance !== null) {
56
+ return instance;
57
+ }
47
58
  if (type[Environmental.create]) {
48
- this.set(type, instance = type[Environmental.create](this));
59
+ instance = type[Environmental.create](this);
60
+ if (!(instance instanceof type)) {
61
+ throw new InternalError(`Service creation did not produce instance of ${type.name}`);
62
+ }
63
+ this.set(type, instance);
49
64
  return instance;
50
65
  }
51
66
  }
@@ -83,8 +98,14 @@ class Environment {
83
98
  * @param type the class of the service to block
84
99
  */
85
100
  block(type) {
86
- if (this.has(type)) {
87
- this.delete(type);
101
+ const instance = this.#services?.get(type);
102
+ if (instance !== void 0 && instance !== null) {
103
+ this.#services?.delete(type);
104
+ this.#deleted.emit(type, instance);
105
+ const serviceEvents = this.#serviceEvents.get(type);
106
+ if (serviceEvents) {
107
+ serviceEvents.deleted.emit(instance);
108
+ }
88
109
  }
89
110
  this.#services?.set(type, null);
90
111
  }
@@ -161,6 +182,26 @@ class Environment {
161
182
  }
162
183
  return events;
163
184
  }
185
+ /**
186
+ * Apply functions to a specific service type automatically.
187
+ *
188
+ * The environment invokes {@link added} immediately if the service is currently present. It then invokes
189
+ * {@link added} in the future if the service is added or replaced and/or {@link deleted} if the service is replaced
190
+ * or deleted.
191
+ */
192
+ applyTo(type, added, deleted) {
193
+ const events = this.eventsFor(type);
194
+ if (added) {
195
+ const existing = this.maybeGet(type);
196
+ if (existing) {
197
+ added(this, existing);
198
+ }
199
+ events.added.on((service) => this.runtime.add(() => added(this, service)));
200
+ }
201
+ if (deleted) {
202
+ events.deleted.on((service) => this.runtime.add(() => deleted(this, service)));
203
+ }
204
+ }
164
205
  /**
165
206
  * The default environment.
166
207
  *
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/environment/Environment.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -23,7 +23,7 @@ export declare namespace Environmental {
23
23
  *
24
24
  * A "factory" is just a class with a static {@link create} method that performs instantiation.
25
25
  */
26
- interface Factory<T extends object> {
26
+ interface Factory<T extends object = object> {
27
27
  new (...args: any[]): T;
28
28
  /**
29
29
  * Method the environment uses to instantiate the service.
@@ -1 +1 @@
1
- {"version":3,"file":"Environmental.d.ts","sourceRoot":"","sources":["../../../src/environment/Environmental.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,yBAAiB,aAAa,CAAC;IACpB,MAAM,MAAM,eAAmB,CAAC;IAEvC;;;;OAIG;IACH,UAAiB,OAAO;QACpB;;WAEG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;KAC/B;IAED;;;;OAIG;IACH,UAAiB,OAAO,CAAC,CAAC,SAAS,MAAM;QACrC,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAExB;;;;;WAKG;QACH,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,CAAC,CAAC;KAC7C;IAED;;OAEG;IACH,UAAiB,aAAa,CAAC,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;QACvE,KAAK,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACpD;CACJ"}
1
+ {"version":3,"file":"Environmental.d.ts","sourceRoot":"","sources":["../../../src/environment/Environmental.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAEpD,yBAAiB,aAAa,CAAC;IACpB,MAAM,MAAM,eAAmB,CAAC;IAEvC;;;;OAIG;IACH,UAAiB,OAAO;QACpB;;WAEG;QACH,YAAY,CAAC,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;KAC/B;IAED;;;;OAIG;IACH,UAAiB,OAAO,CAAC,CAAC,SAAS,MAAM,GAAG,MAAM;QAC9C,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,CAAC,CAAC;QAExB;;;;;WAKG;QACH,CAAC,MAAM,CAAC,EAAE,CAAC,WAAW,EAAE,WAAW,KAAK,CAAC,CAAC;KAC7C;IAED;;OAEG;IACH,UAAiB,aAAa,CAAC,CAAC,SAAS,QAAQ,MAAM,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC;QACvE,KAAK,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/C,OAAO,EAAE,UAAU,CAAC,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;KACpD;CACJ"}
@@ -18,7 +18,7 @@ export declare class RuntimeService implements Multiplex {
18
18
  [Diagnostic.value]: unknown[];
19
19
  constructor(environment: Environment);
20
20
  /**
21
- * Add a {@link Worker}.
21
+ * Add a {@link Worker}, either directly or by invoking an {@link Initiator}.
22
22
  *
23
23
  * The runtime considers itself "active" if there are one or more workers installed.
24
24
  *
@@ -28,7 +28,7 @@ export declare class RuntimeService implements Multiplex {
28
28
  * Once added, the {@link worker} is owned by the RuntimeService until closed, resolved or removed via
29
29
  * {@link delete}.
30
30
  */
31
- add(worker: RuntimeService.Worker | void): void;
31
+ add(worker: RuntimeService.NewWorker): void;
32
32
  /**
33
33
  * Remove a worker.
34
34
  */
@@ -105,5 +105,12 @@ export declare namespace RuntimeService {
105
105
  */
106
106
  [label]?: unknown;
107
107
  }
108
+ /**
109
+ * A function that initiates work.
110
+ */
111
+ interface Initiator {
112
+ (env: Environment): NewWorker;
113
+ }
114
+ type NewWorker = Worker | Initiator | void;
108
115
  }
109
116
  //# sourceMappingURL=RuntimeService.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RuntimeService.d.ts","sourceRoot":"","sources":["../../../src/environment/RuntimeService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAsB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAa,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;GAEG;AACH,qBAAa,cAAe,YAAW,SAAS;;IAkLxC,CAAC,UAAU,CAAC,KAAK,CAAC;gBAxKV,WAAW,EAAE,WAAW;IAMpC;;;;;;;;;;OAUG;IACH,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM,GAAG,IAAI;IAsCxC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM;IAsBpC;;OAEG;IACH,IAAI,OAAO,yBAEV;IAED;;OAEG;IACH,IAAI,OAAO,yBAEV;IAED;;OAEG;IACH,IAAI,OAAO,mCAEV;IAED,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW;IAItD;;;;OAIG;IACH,MAAM;IAeN;;;;OAIG;IACH,SAAS;IAQT;;OAEG;IACH,IAAI,QAAQ,kBAcX;IAEK,KAAK;IAOX,CAAC,MAAM,CAAC,YAAY,CAAC;CAgExB;AAED,yBAAiB,cAAc,CAAC;IACrB,MAAM,KAAK,eAAkB,CAAC;IAErC;;;;;;;OAOG;IACH,UAAiB,MAAO,SAAQ,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;QAClG;;;;;;;WAOG;QACH,YAAY,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAEjC;;;;;;;;;WASG;QACH,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnD;;WAEG;QACH,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC;QAE9B;;WAEG;QACH,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;KACrB;CACJ"}
1
+ {"version":3,"file":"RuntimeService.d.ts","sourceRoot":"","sources":["../../../src/environment/RuntimeService.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAsB,MAAM,yBAAyB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,YAAY,EAAa,MAAM,sBAAsB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAInD;;GAEG;AACH,qBAAa,cAAe,YAAW,SAAS;;IA2LxC,CAAC,UAAU,CAAC,KAAK,CAAC;gBAjLV,WAAW,EAAE,WAAW;IAMpC;;;;;;;;;;OAUG;IACH,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,SAAS;IA+CpC;;OAEG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,MAAM;IAsBpC;;OAEG;IACH,IAAI,OAAO,yBAEV;IAED;;OAEG;IACH,IAAI,OAAO,yBAEV;IAED;;OAEG;IACH,IAAI,OAAO,mCAEV;IAED,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,WAAW,EAAE,WAAW;IAItD;;;;OAIG;IACH,MAAM;IAeN;;;;OAIG;IACH,SAAS;IAQT;;OAEG;IACH,IAAI,QAAQ,kBAcX;IAEK,KAAK;IAOX,CAAC,MAAM,CAAC,YAAY,CAAC;CAgExB;AAED,yBAAiB,cAAc,CAAC;IACrB,MAAM,KAAK,eAAkB,CAAC;IAErC;;;;;;;OAOG;IACH,UAAiB,MAAO,SAAQ,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,YAAY,CAAC;QAClG;;;;;;;WAOG;QACH,YAAY,CAAC,EAAE,YAAY,CAAC,GAAG,CAAC,CAAC;QAEjC;;;;;;;;;WASG;QACH,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAEnD;;WAEG;QACH,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,EAAE,MAAM,IAAI,CAAC;QAE9B;;WAEG;QACH,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC;KACrB;IAED;;OAEG;IACH,UAAiB,SAAS;QACtB,CAAC,GAAG,EAAE,WAAW,GAAG,SAAS,CAAC;KACjC;IAED,KAAY,SAAS,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC;CACrD"}
@@ -3,6 +3,7 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { asError } from "#util/Error.js";
6
7
  import { Diagnostic } from "../log/Diagnostic.js";
7
8
  import { DiagnosticSource } from "../log/DiagnosticSource.js";
8
9
  import { Logger } from "../log/Logger.js";
@@ -25,7 +26,7 @@ class RuntimeService {
25
26
  DiagnosticSource.add(this);
26
27
  }
27
28
  /**
28
- * Add a {@link Worker}.
29
+ * Add a {@link Worker}, either directly or by invoking an {@link Initiator}.
29
30
  *
30
31
  * The runtime considers itself "active" if there are one or more workers installed.
31
32
  *
@@ -39,6 +40,14 @@ class RuntimeService {
39
40
  if (!worker) {
40
41
  return;
41
42
  }
43
+ if (typeof worker === "function") {
44
+ try {
45
+ this.add(worker(this.#env));
46
+ } catch (e) {
47
+ this.#crash(asError(e));
48
+ }
49
+ return;
50
+ }
42
51
  if (this.#workers.has(worker)) {
43
52
  return;
44
53
  }