@matter/general 0.15.1-alpha.0-20250630-daa5888a0 → 0.15.2-alpha.0-20250703-2e16aba2b

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 (142) hide show
  1. package/dist/cjs/MatterError.d.ts +5 -0
  2. package/dist/cjs/MatterError.d.ts.map +1 -1
  3. package/dist/cjs/MatterError.js +3 -0
  4. package/dist/cjs/MatterError.js.map +1 -1
  5. package/dist/cjs/crypto/MockCrypto.d.ts +4 -0
  6. package/dist/cjs/crypto/MockCrypto.d.ts.map +1 -1
  7. package/dist/cjs/crypto/MockCrypto.js +37 -18
  8. package/dist/cjs/crypto/MockCrypto.js.map +1 -1
  9. package/dist/cjs/crypto/StandardCrypto.d.ts.map +1 -1
  10. package/dist/cjs/crypto/StandardCrypto.js +20 -4
  11. package/dist/cjs/crypto/StandardCrypto.js.map +1 -1
  12. package/dist/cjs/log/Diagnostic.js +8 -1
  13. package/dist/cjs/log/Diagnostic.js.map +1 -1
  14. package/dist/cjs/net/UdpChannel.d.ts +6 -1
  15. package/dist/cjs/net/UdpChannel.d.ts.map +1 -1
  16. package/dist/cjs/net/index.d.ts +1 -3
  17. package/dist/cjs/net/index.d.ts.map +1 -1
  18. package/dist/cjs/net/index.js +1 -3
  19. package/dist/cjs/net/index.js.map +1 -1
  20. package/dist/cjs/net/mock/MockNetwork.d.ts +8 -1
  21. package/dist/cjs/net/mock/MockNetwork.d.ts.map +1 -1
  22. package/dist/cjs/net/mock/MockNetwork.js +17 -8
  23. package/dist/cjs/net/mock/MockNetwork.js.map +1 -1
  24. package/dist/cjs/net/mock/MockRouter.d.ts +28 -0
  25. package/dist/cjs/net/mock/MockRouter.d.ts.map +1 -0
  26. package/dist/cjs/net/mock/MockRouter.js +46 -0
  27. package/dist/cjs/net/mock/MockRouter.js.map +6 -0
  28. package/dist/cjs/net/mock/MockUdpChannel.d.ts +6 -5
  29. package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
  30. package/dist/cjs/net/mock/MockUdpChannel.js +47 -21
  31. package/dist/cjs/net/mock/MockUdpChannel.js.map +1 -1
  32. package/dist/cjs/net/mock/NetworkSimulator.d.ts +6 -5
  33. package/dist/cjs/net/mock/NetworkSimulator.d.ts.map +1 -1
  34. package/dist/cjs/net/mock/NetworkSimulator.js +2 -37
  35. package/dist/cjs/net/mock/NetworkSimulator.js.map +1 -1
  36. package/dist/cjs/net/mock/index.d.ts +10 -0
  37. package/dist/cjs/net/mock/index.d.ts.map +1 -0
  38. package/dist/cjs/net/mock/index.js +27 -0
  39. package/dist/cjs/net/mock/index.js.map +6 -0
  40. package/dist/cjs/storage/StorageBackendMemory.d.ts.map +1 -1
  41. package/dist/cjs/storage/StorageBackendMemory.js +12 -6
  42. package/dist/cjs/storage/StorageBackendMemory.js.map +1 -1
  43. package/dist/cjs/time/Time.d.ts +7 -1
  44. package/dist/cjs/time/Time.d.ts.map +1 -1
  45. package/dist/cjs/time/Time.js +19 -7
  46. package/dist/cjs/time/Time.js.map +1 -1
  47. package/dist/cjs/util/Cancelable.d.ts +1 -1
  48. package/dist/cjs/util/Cancelable.d.ts.map +1 -1
  49. package/dist/cjs/util/Cancelable.js +1 -1
  50. package/dist/cjs/util/Cancelable.js.map +1 -1
  51. package/dist/cjs/util/Construction.d.ts +2 -0
  52. package/dist/cjs/util/Construction.d.ts.map +1 -1
  53. package/dist/cjs/util/Construction.js +9 -3
  54. package/dist/cjs/util/Construction.js.map +1 -1
  55. package/dist/cjs/util/Promises.d.ts +2 -3
  56. package/dist/cjs/util/Promises.d.ts.map +1 -1
  57. package/dist/cjs/util/Promises.js +1 -5
  58. package/dist/cjs/util/Promises.js.map +1 -1
  59. package/dist/cjs/util/String.d.ts +5 -0
  60. package/dist/cjs/util/String.d.ts.map +1 -1
  61. package/dist/cjs/util/String.js +51 -1
  62. package/dist/cjs/util/String.js.map +2 -2
  63. package/dist/esm/MatterError.d.ts +5 -0
  64. package/dist/esm/MatterError.d.ts.map +1 -1
  65. package/dist/esm/MatterError.js +3 -0
  66. package/dist/esm/MatterError.js.map +1 -1
  67. package/dist/esm/crypto/MockCrypto.d.ts +4 -0
  68. package/dist/esm/crypto/MockCrypto.d.ts.map +1 -1
  69. package/dist/esm/crypto/MockCrypto.js +37 -18
  70. package/dist/esm/crypto/MockCrypto.js.map +1 -1
  71. package/dist/esm/crypto/StandardCrypto.d.ts.map +1 -1
  72. package/dist/esm/crypto/StandardCrypto.js +20 -4
  73. package/dist/esm/crypto/StandardCrypto.js.map +1 -1
  74. package/dist/esm/log/Diagnostic.js +8 -1
  75. package/dist/esm/log/Diagnostic.js.map +1 -1
  76. package/dist/esm/net/UdpChannel.d.ts +6 -1
  77. package/dist/esm/net/UdpChannel.d.ts.map +1 -1
  78. package/dist/esm/net/index.d.ts +1 -3
  79. package/dist/esm/net/index.d.ts.map +1 -1
  80. package/dist/esm/net/index.js +1 -3
  81. package/dist/esm/net/index.js.map +1 -1
  82. package/dist/esm/net/mock/MockNetwork.d.ts +8 -1
  83. package/dist/esm/net/mock/MockNetwork.d.ts.map +1 -1
  84. package/dist/esm/net/mock/MockNetwork.js +18 -9
  85. package/dist/esm/net/mock/MockNetwork.js.map +1 -1
  86. package/dist/esm/net/mock/MockRouter.d.ts +28 -0
  87. package/dist/esm/net/mock/MockRouter.d.ts.map +1 -0
  88. package/dist/esm/net/mock/MockRouter.js +26 -0
  89. package/dist/esm/net/mock/MockRouter.js.map +6 -0
  90. package/dist/esm/net/mock/MockUdpChannel.d.ts +6 -5
  91. package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
  92. package/dist/esm/net/mock/MockUdpChannel.js +47 -21
  93. package/dist/esm/net/mock/MockUdpChannel.js.map +1 -1
  94. package/dist/esm/net/mock/NetworkSimulator.d.ts +6 -5
  95. package/dist/esm/net/mock/NetworkSimulator.d.ts.map +1 -1
  96. package/dist/esm/net/mock/NetworkSimulator.js +2 -37
  97. package/dist/esm/net/mock/NetworkSimulator.js.map +1 -1
  98. package/dist/esm/net/mock/index.d.ts +10 -0
  99. package/dist/esm/net/mock/index.d.ts.map +1 -0
  100. package/dist/esm/net/mock/index.js +10 -0
  101. package/dist/esm/net/mock/index.js.map +6 -0
  102. package/dist/esm/storage/StorageBackendMemory.d.ts.map +1 -1
  103. package/dist/esm/storage/StorageBackendMemory.js +12 -6
  104. package/dist/esm/storage/StorageBackendMemory.js.map +1 -1
  105. package/dist/esm/time/Time.d.ts +7 -1
  106. package/dist/esm/time/Time.d.ts.map +1 -1
  107. package/dist/esm/time/Time.js +19 -7
  108. package/dist/esm/time/Time.js.map +1 -1
  109. package/dist/esm/util/Cancelable.d.ts +1 -1
  110. package/dist/esm/util/Cancelable.d.ts.map +1 -1
  111. package/dist/esm/util/Cancelable.js +2 -2
  112. package/dist/esm/util/Cancelable.js.map +1 -1
  113. package/dist/esm/util/Construction.d.ts +2 -0
  114. package/dist/esm/util/Construction.d.ts.map +1 -1
  115. package/dist/esm/util/Construction.js +9 -3
  116. package/dist/esm/util/Construction.js.map +1 -1
  117. package/dist/esm/util/Promises.d.ts +2 -3
  118. package/dist/esm/util/Promises.d.ts.map +1 -1
  119. package/dist/esm/util/Promises.js +2 -6
  120. package/dist/esm/util/Promises.js.map +1 -1
  121. package/dist/esm/util/String.d.ts +5 -0
  122. package/dist/esm/util/String.d.ts.map +1 -1
  123. package/dist/esm/util/String.js +51 -1
  124. package/dist/esm/util/String.js.map +2 -2
  125. package/package.json +2 -2
  126. package/src/MatterError.ts +5 -0
  127. package/src/crypto/MockCrypto.ts +48 -20
  128. package/src/crypto/StandardCrypto.ts +22 -4
  129. package/src/log/Diagnostic.ts +10 -1
  130. package/src/net/UdpChannel.ts +7 -3
  131. package/src/net/index.ts +1 -3
  132. package/src/net/mock/MockNetwork.ts +19 -9
  133. package/src/net/mock/MockRouter.ts +48 -0
  134. package/src/net/mock/MockUdpChannel.ts +55 -26
  135. package/src/net/mock/NetworkSimulator.ts +2 -46
  136. package/src/net/mock/index.ts +10 -0
  137. package/src/storage/StorageBackendMemory.ts +14 -6
  138. package/src/time/Time.ts +17 -2
  139. package/src/util/Cancelable.ts +3 -3
  140. package/src/util/Construction.ts +18 -4
  141. package/src/util/Promises.ts +2 -7
  142. package/src/util/String.ts +66 -0
@@ -4,7 +4,7 @@
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
6
  import { CanceledError } from "#MatterError.js";
7
- import { errorOf } from "./Error.js";
7
+ import { asError, errorOf } from "./Error.js";
8
8
  import { createPromise, MaybePromise } from "./Promises.js";
9
9
  class CancelablePromise {
10
10
  #reject;
@@ -57,7 +57,7 @@ class CancelablePromise {
57
57
  return;
58
58
  }
59
59
  try {
60
- this.onCancel(reason);
60
+ this.onCancel(asError(reason));
61
61
  } catch (e) {
62
62
  this.#reject(e);
63
63
  }
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/Cancelable.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["cancelable"]
6
6
  }
@@ -112,6 +112,8 @@ export interface Construction<T> extends Promise<T> {
112
112
  *
113
113
  * - Ensures the subject is fully initialized before closing.
114
114
  *
115
+ * - Guards against closing multiple times; tertiary closes will wait for destruction.
116
+ *
115
117
  * - Handles and logs errors, ensuring close() always completes successfully.
116
118
  *
117
119
  * - Makes destruction observable via {@link change} and {@link closed}.
@@ -1 +1 @@
1
- {"version":3,"file":"Construction.d.ts","sourceRoot":"","sources":["../../../src/util/Construction.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Construction.d.ts","sourceRoot":"","sources":["../../../src/util/Construction.ts"],"names":[],"mappings":"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"}
@@ -184,10 +184,16 @@ function Construction(subject, initializer) {
184
184
  setStatus(Lifecycle.Status.Destroying);
185
185
  return invokeDestructor();
186
186
  }
187
- if (status === Lifecycle.Status.Initializing) {
188
- return this.then(beginDestruction, beginDestruction);
187
+ switch (status) {
188
+ case Lifecycle.Status.Initializing:
189
+ return this.then(beginDestruction, beginDestruction);
190
+ case Lifecycle.Status.Destroying:
191
+ return this.closed;
192
+ case Lifecycle.Status.Destroyed:
193
+ return;
194
+ default:
195
+ return beginDestruction();
189
196
  }
190
- return beginDestruction();
191
197
  },
192
198
  finally(onfinally) {
193
199
  return Promise.prototype.finally.call(this, onfinally);
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/Construction.ts"],
4
- "mappings": "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",
4
+ "mappings": "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",
5
5
  "names": ["error", "invokeDestruct", "invokeDestructor", "initializer", "Construction"]
6
6
  }
@@ -5,7 +5,7 @@
5
5
  * Copyright 2022-2025 Matter.js Authors
6
6
  * SPDX-License-Identifier: Apache-2.0
7
7
  */
8
- import { MatterError } from "../MatterError.js";
8
+ import { TimeoutError } from "../MatterError.js";
9
9
  /**
10
10
  * Obtain a promise with functions to resolve and reject.
11
11
  */
@@ -22,8 +22,7 @@ export declare function anyPromise<T>(promises: ((() => Promise<T>) | Promise<T>
22
22
  /**
23
23
  * Thrown when a timed promise times out.
24
24
  */
25
- export declare class PromiseTimeoutError extends MatterError {
26
- constructor(message?: string);
25
+ export declare class PromiseTimeoutError extends TimeoutError {
27
26
  }
28
27
  /**
29
28
  * Create a promise with a timeout.
@@ -1 +1 @@
1
- {"version":3,"file":"Promises.d.ts","sourceRoot":"","sources":["../../../src/util/Promises.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAiB,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAG/D;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,KAAK;IAChC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CACpC,CAiBA;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAsBvF;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,WAAW;gBACpC,OAAO,SAAwB;CAG9C;AAED;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,MAAM,CAAC,EAAE,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,GACxC,OAAO,CAAC,CAAC,CAAC,CAoDZ;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE5D,eAAO,MAAM,YAAY;IACrB;;OAEG;OACA,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC;IAUtD;;;OAGG;SACE,CAAC,EAAE,EAAE,UAAU,EAAE,oBACR,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,YACzC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,WACxC,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GACnD,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;IAsCxB;;OAEG;UACG,CAAC,EAAE,OAAO,oBACF,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,eACtC,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI;IAKhE;;OAEG;YACK,CAAC,YACK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,cACvC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAC9C,YAAY,CAAC,CAAC,CAAC;;CA4DrB,CAAC"}
1
+ {"version":3,"file":"Promises.d.ts","sourceRoot":"","sources":["../../../src/util/Promises.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,OAAO,EAAiB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGhE;;GAEG;AACH,wBAAgB,aAAa,CAAC,CAAC,KAAK;IAChC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,IAAI,CAAC;IAC7B,QAAQ,EAAE,CAAC,MAAM,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;CACpC,CAiBA;AAED;;;GAGG;AACH,wBAAgB,UAAU,CAAC,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC,MAAM,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,CAAC,CAAC,CAsBvF;AAED;;GAEG;AACH,qBAAa,mBAAoB,SAAQ,YAAY;CAAG;AAExD;;;;;;;;GAQG;AACH,wBAAsB,WAAW,CAAC,CAAC,EAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,EACnB,MAAM,CAAC,EAAE,eAAe,GAAG,CAAC,MAAM,IAAI,CAAC,GACxC,OAAO,CAAC,CAAC,CAAC,CAmDZ;AAED;;;;GAIG;AACH,MAAM,MAAM,YAAY,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAExD;;GAEG;AACH,MAAM,MAAM,gBAAgB,CAAC,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC;AAE5D,eAAO,MAAM,YAAY;IACrB;;OAEG;OACA,CAAC,SAAS,YAAY,CAAC,CAAC,CAAC,GAAG,KAAK,IAAI,WAAW,CAAC,CAAC,CAAC;IAUtD;;;OAGG;SACE,CAAC,EAAE,EAAE,UAAU,EAAE,oBACR,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,YACzC,CAAC,CAAC,KAAK,EAAE,CAAC,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,WACxC,CAAC,CAAC,KAAK,EAAE,GAAG,KAAK,YAAY,CAAC,EAAE,CAAC,CAAC,GAAG,IAAI,GACnD,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;IAsCxB;;OAEG;UACG,CAAC,EAAE,OAAO,oBACF,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,eACtC,CAAC,CAAC,MAAM,EAAE,GAAG,KAAK,YAAY,CAAC,OAAO,CAAC,CAAC,GAAG,IAAI;IAKhE;;OAEG;YACK,CAAC,YACK,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC,MAAM,YAAY,CAAC,CAAC,CAAC,CAAC,cACvC,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,IAAI,GAC9C,YAAY,CAAC,CAAC,CAAC;;CA4DrB,CAAC"}
@@ -6,7 +6,7 @@
6
6
  * SPDX-License-Identifier: Apache-2.0
7
7
  */
8
8
  import { asError } from "#util/Error.js";
9
- import { InternalError, MatterError } from "../MatterError.js";
9
+ import { InternalError, TimeoutError } from "../MatterError.js";
10
10
  import { Time } from "../time/Time.js";
11
11
  function createPromise() {
12
12
  let resolver, rejecter;
@@ -43,10 +43,7 @@ function anyPromise(promises) {
43
43
  }
44
44
  });
45
45
  }
46
- class PromiseTimeoutError extends MatterError {
47
- constructor(message = "Operation timed out") {
48
- super(message);
49
- }
46
+ class PromiseTimeoutError extends TimeoutError {
50
47
  }
51
48
  async function withTimeout(timeoutMs, promise, cancel) {
52
49
  let cancelFn;
@@ -68,7 +65,6 @@ async function withTimeout(timeoutMs, promise, cancel) {
68
65
  reject(asError(e));
69
66
  return;
70
67
  }
71
- reject(new Error("Timer canceled promise, but no error was thrown"));
72
68
  });
73
69
  cancelTimer = () => {
74
70
  timer.stop();
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/Promises.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAQA,SAAS,eAAe;AACxB,SAAS,eAAe,mBAAmB;AAC3C,SAAS,YAAY;AAKd,SAAS,gBAId;AACE,MAAI,UAAU;AACd,QAAM,UAAU,IAAI,QAAW,CAAC,SAAS,WAAW;AAChD,eAAW;AACX,eAAW;AAAA,EACf,CAAC;AAED,MAAI,CAAC,YAAY,CAAC,UAAU;AAExB,UAAM,IAAI,cAAc,uDAAuD;AAAA,EACnF;AAEA,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,EACJ;AACJ;AAMO,SAAS,WAAc,UAA2D;AACrF,SAAO,IAAI,QAAQ,CAAC,SAAS,WAAW;AACpC,QAAI,iBAAiB;AACrB,QAAI,cAAc;AAClB,eAAW,SAAS,UAAU;AAC1B,YAAM,UAAU,OAAO,UAAU,aAAa,MAAM,IAAI;AACxD,cACK,KAAK,WAAS;AACX,YAAI,CAAC,aAAa;AACd,wBAAc;AACd,kBAAQ,KAAK;AAAA,QACjB;AAAA,MACJ,CAAC,EACA,MAAM,YAAU;AACb;AACA,YAAI,CAAC,eAAe,mBAAmB,SAAS,QAAQ;AAEpD,iBAAO,MAAM;AAAA,QACjB;AAAA,MACJ,CAAC;AAAA,IACT;AAAA,EACJ,CAAC;AACL;AAKO,MAAM,4BAA4B,YAAY;AAAA,EACjD,YAAY,UAAU,uBAAuB;AACzC,UAAM,OAAO;AAAA,EACjB;AACJ;AAWA,eAAsB,YAClB,WACA,SACA,QACU;AACV,MAAI;AACJ,MAAI,OAAO,WAAW,YAAY;AAC9B,eAAW;AAAA,EACf,WAAW,OAAO,QAAQ,UAAU,YAAY;AAC5C,eAAW,MAAM,OAAO,MAAM;AAAA,EAClC,OAAO;AACH,eAAW,MAAM;AACb,YAAM,IAAI,oBAAoB;AAAA,IAClC;AAAA,EACJ;AAEA,MAAI;AAGJ,QAAM,UAAU,IAAI,QAAc,CAAC,SAAS,WAAW;AACnD,UAAM,QAAQ,KAAK,SAAS,mBAAmB,WAAW,MAAM;AAC5D,UAAI;AACA,iBAAS;AAAA,MACb,SAAS,GAAG;AACR,eAAO,QAAQ,CAAC,CAAC;AACjB;AAAA,MACJ;AACA,aAAO,IAAI,MAAM,iDAAiD,CAAC;AAAA,IACvE,CAAC;AAED,kBAAc,MAAM;AAChB,YAAM,KAAK;AACX,cAAQ;AAAA,IACZ;AAEA,UAAM,MAAM;AAAA,EAChB,CAAC;AAED,MAAI;AAGJ,QAAM,WAAW,QAAQ;AAAA,IACrB,OAAK;AACD,oBAAc;AACd,eAAS;AAAA,IACb;AAAA,IACA,OAAK;AACD,oBAAc;AACd,YAAM;AAAA,IACV;AAAA,EACJ;AAGA,QAAM,QAAQ,IAAI,CAAC,SAAS,QAAQ,CAAC;AAErC,SAAO;AACX;AAcO,MAAM,eAAe;AAAA;AAAA;AAAA;AAAA,EAIxB,GAAM,OAAiD;AAEnD,WACI,OAAO,UAAU,YACjB,UAAU,QACV,OAAQ,MAA6B,SAAS,cAC9C,UAAU;AAAA,EAElB;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,KACI,UACA,SACA,QACqB;AACrB,QAAI,WAAW;AAEf,QAAI;AACA,UAAI;AACJ,UAAI,oBAAoB,UAAU;AAC9B,gBAAQ,SAAS;AAAA,MACrB,OAAO;AACH,gBAAQ;AAAA,MACZ;AACA,UAAI,aAAa,GAAG,KAAK,GAAG;AACxB,eAAO,MAAM;AAAA,UACT;AAAA,UACA,SACM,WAAS;AAGL,uBAAW;AAEX,mBAAO,SAAS,KAAK;AAAA,UACzB,IACA;AAAA,QACV;AAAA,MACJ;AACA,UAAI,SAAS;AACT,eAAO,QAAQ,KAAK;AAAA,MACxB;AAAA,IACJ,SAAS,GAAG;AACR,UAAI,UAAU,CAAC,UAAU;AACrB,eAAO,OAAO,CAAC;AAAA,MACnB;AACA,YAAM;AAAA,IACV;AAGA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,MACI,UACA,YACF;AACE,WAAO,KAAK,KAAK,UAAU,QAAW,UAAU;AAAA,EACpD;AAAA;AAAA;AAAA;AAAA,EAKA,QACI,UACA,WACe;AACf,QAAI;AACJ,QAAI;AACA,UAAI,OAAO,aAAa,YAAY;AAChC,iBAAU,SAAmC;AAAA,MACjD,OAAO;AACH,iBAAS;AAAA,MACb;AAAA,IACJ,UAAE;AACE,UAAI,aAAa,GAAG,MAAM,GAAG;AAEzB,YAAI,OAAQ,OAAwB,YAAY,YAAY;AAkBxD,mBAAU,OAAsB,QAAQ,SAAS;AAAA,QACrD,OAAO;AACH,mBAAS,OAAO;AAAA,YACZ,WACI,aAAa;AAAA,cACT,MAAM,YAAY;AAAA,cAClB,MAAM;AAAA,YACV;AAAA,YACJ,WACI,aAAa;AAAA,cACT,MAAM,YAAY;AAAA,cAClB,MAAM;AACF,sBAAM;AAAA,cACV;AAAA,YACJ;AAAA,UACR;AAAA,QACJ;AAAA,MACJ,OAAO;AAGH,cAAM,gBAAgB,YAAY;AAClC,YAAI,aAAa,GAAG,aAAa,GAAG;AAChC,gBAAM,eAAe;AACrB,mBAAS,cAAc,KAAK,MAAM,YAAY;AAAA,QAClD;AAAA,MACJ;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,CAAC,OAAO,WAAW,GAAG;AAC1B;AAEA,aAAa,WAAW,MAAM;",
4
+ "mappings": "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",
5
5
  "names": []
6
6
  }
@@ -36,4 +36,9 @@ export declare namespace serialize {
36
36
  * Create a human readable version of a list of items.
37
37
  */
38
38
  export declare function describeList(setType: "and" | "or", ...entries: string[]): string;
39
+ /**
40
+ * Serialize a structure to JS code that will recreate it. Supports a limited number of JS types. Makes no effort at
41
+ * pretty printing.
42
+ */
43
+ export declare function serializeToJs(value: unknown): string;
39
44
  //# sourceMappingURL=String.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"String.d.ts","sourceRoot":"","sources":["../../../src/util/String.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,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,sBA8EnC;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"}
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,sBA8EnC;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"}
@@ -3,6 +3,9 @@
3
3
  * Copyright 2022-2025 Matter.js Authors
4
4
  * SPDX-License-Identifier: Apache-2.0
5
5
  */
6
+ import { ImplementationError } from "#MatterError.js";
7
+ import { Bytes } from "./Bytes.js";
8
+ import { isObject } from "./Type.js";
6
9
  function capitalize(text) {
7
10
  return text[0].toUpperCase() + text.slice(1);
8
11
  }
@@ -178,11 +181,58 @@ function describeList(setType, ...entries) {
178
181
  }
179
182
  return text.join(" ");
180
183
  }
184
+ function serializeToJs(value) {
185
+ switch (typeof value) {
186
+ case "bigint":
187
+ return `0x${value.toString(16)}n`;
188
+ case "boolean":
189
+ return `${value}`;
190
+ case "number":
191
+ if (Number.isSafeInteger(value) && value > 10) {
192
+ return `0x${value.toString(16)}`;
193
+ }
194
+ return `${value}`;
195
+ case "string":
196
+ return JSON.stringify(value);
197
+ case "undefined":
198
+ return "undefined";
199
+ case "function":
200
+ case "symbol":
201
+ throw new ImplementationError(`Cannot serialize a ${typeof value}`);
202
+ }
203
+ if (value instanceof Date) {
204
+ return `new Date(${JSON.stringify(value.toISOString)})`;
205
+ }
206
+ if (value instanceof Uint8Array) {
207
+ return `b$\`${Bytes.toHex(value)}\``;
208
+ }
209
+ if (value === null) {
210
+ return "null";
211
+ }
212
+ if (Array.isArray(value)) {
213
+ const parts2 = ["["];
214
+ for (const item of value) {
215
+ parts2.push(serializeToJs(item), ",");
216
+ }
217
+ parts2.push("]");
218
+ return parts2.join("");
219
+ }
220
+ if (!isObject(value)) {
221
+ throw new ImplementationError(`Cannot serialize a ${value.constructor.name}`);
222
+ }
223
+ const parts = ["{"];
224
+ for (const key in value) {
225
+ parts.push(key, ":", serializeToJs(value[key]), ",");
226
+ }
227
+ parts.push("}");
228
+ return parts.join("");
229
+ }
181
230
  export {
182
231
  camelize,
183
232
  capitalize,
184
233
  decamelize,
185
234
  describeList,
186
- serialize
235
+ serialize,
236
+ serializeToJs
187
237
  };
188
238
  //# sourceMappingURL=String.js.map
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/util/String.ts"],
4
- "mappings": "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",
5
- "names": ["value", "serialize"]
4
+ "mappings": "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",
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.15.1-alpha.0-20250630-daa5888a0",
3
+ "version": "0.15.2-alpha.0-20250703-2e16aba2b",
4
4
  "description": "Non-Matter support for Matter.js",
5
5
  "keywords": [
6
6
  "iot",
@@ -36,7 +36,7 @@
36
36
  "@noble/curves": "^1.9.2"
37
37
  },
38
38
  "devDependencies": {
39
- "@matter/testing": "0.15.1-alpha.0-20250630-daa5888a0"
39
+ "@matter/testing": "0.15.2-alpha.0-20250703-2e16aba2b"
40
40
  },
41
41
  "files": [
42
42
  "dist/**/*",
@@ -170,6 +170,11 @@ export class UnexpectedDataError extends MatterError {}
170
170
  */
171
171
  export class ImplementationError extends MatterError {}
172
172
 
173
+ /**
174
+ * Thrown when a dynamic component cannot be loaded.
175
+ */
176
+ export class ImportError extends MatterError {}
177
+
173
178
  /**
174
179
  * Thrown for write attempts against immutable data.
175
180
  */
@@ -24,6 +24,11 @@ export interface MockCrypto extends Crypto {
24
24
  * The index of the random space. May be modified to adjust computations going forward.
25
25
  */
26
26
  index: number;
27
+
28
+ /**
29
+ * Control whether the implementation supplies normal randomness (false by default).
30
+ */
31
+ entropic: boolean;
27
32
  }
28
33
 
29
34
  export function MockCrypto(index: number = 0x80, implementation: new () => Crypto = StandardCrypto) {
@@ -33,32 +38,55 @@ export function MockCrypto(index: number = 0x80, implementation: new () => Crypt
33
38
 
34
39
  const crypto = new implementation();
35
40
 
36
- // Create random data consisting of index repeated
37
- crypto.randomBytes = function getRandomDataNONENTROPIC(length) {
38
- const result = new Uint8Array(length);
39
- result.fill(index);
40
- return result;
41
- };
41
+ const { randomBytes, createKeyPair } = crypto;
42
42
 
43
- // Ensure EC key generation uses our own "entropy" source rather than the platform's
44
- crypto.createKeyPair = function getRandomDataNONENTROPIC() {
45
- const privateBits = ec.mapHashToField(new Uint8Array(crypto.randomBytes(48)), ec.p256.CURVE.n);
46
- return Key({
47
- kty: KeyType.EC,
48
- crv: CurveType.p256,
49
- privateBits,
50
- }) as PrivateKey;
51
- };
43
+ Object.defineProperties(crypto, {
44
+ index: {
45
+ get() {
46
+ return index;
47
+ },
52
48
 
53
- Object.defineProperty(crypto, "index", {
54
- get() {
55
- return index;
49
+ set(newIndex: number) {
50
+ index = newIndex % 256;
51
+ },
56
52
  },
57
53
 
58
- set(newIndex: number) {
59
- index = newIndex % 256;
54
+ entropic: {
55
+ get() {
56
+ return crypto.randomBytes === randomBytes;
57
+ },
58
+
59
+ set(entropic: boolean) {
60
+ if (entropic) {
61
+ crypto.randomBytes = randomBytes;
62
+ crypto.createKeyPair = createKeyPair;
63
+ } else {
64
+ disableEntropy();
65
+ }
66
+ },
60
67
  },
61
68
  });
62
69
 
70
+ disableEntropy();
71
+
63
72
  return crypto as MockCrypto;
73
+
74
+ function disableEntropy() {
75
+ // Create random data consisting of index repeated
76
+ crypto.randomBytes = function getRandomDataNONENTROPIC(length) {
77
+ const result = new Uint8Array(length);
78
+ result.fill(index);
79
+ return result;
80
+ };
81
+
82
+ // Ensure EC key generation uses our own "entropy" source rather than the platform's
83
+ crypto.createKeyPair = function getRandomDataNONENTROPIC() {
84
+ const privateBits = ec.mapHashToField(new Uint8Array(crypto.randomBytes(48)), ec.p256.CURVE.n);
85
+ return Key({
86
+ kty: KeyType.EC,
87
+ crv: CurveType.p256,
88
+ privateBits,
89
+ }) as PrivateKey;
90
+ };
91
+ }
64
92
  }
@@ -9,6 +9,7 @@ import { DerBigUint, DerCodec, DerError } from "#codec/DerCodec.js";
9
9
  import { Environment } from "#environment/Environment.js";
10
10
  import { ImplementationError } from "#MatterError.js";
11
11
  import { Bytes } from "#util/Bytes.js";
12
+ import { describeList } from "#util/String.js";
12
13
  import { Ccm } from "./aes/Ccm.js";
13
14
  import { Crypto, CRYPTO_SYMMETRIC_KEY_LENGTH, CryptoDsaEncoding } from "./Crypto.js";
14
15
  import { CryptoVerifyError, KeyInputError } from "./CryptoError.js";
@@ -20,6 +21,16 @@ const SIGNATURE_ALGORITHM = <EcdsaParams>{
20
21
  hash: { name: "SHA-256" },
21
22
  };
22
23
 
24
+ const requiredSubtleMethods: Array<keyof SubtleCrypto> = [
25
+ "digest",
26
+ "deriveBits",
27
+ "sign",
28
+ "verify",
29
+ "generateKey",
30
+ "exportKey",
31
+ "importKey",
32
+ ];
33
+
23
34
  /**
24
35
  * A {@link Crypto} implementation that uses only JS standards.
25
36
  *
@@ -33,13 +44,20 @@ export class StandardCrypto extends Crypto {
33
44
  implementationName = "JS";
34
45
  #subtle: SubtleCrypto;
35
46
 
36
- constructor(subtle: SubtleCrypto = crypto?.subtle) {
37
- if (subtle === undefined) {
47
+ constructor(subtle: SubtleCrypto = globalThis.crypto?.subtle) {
48
+ if (typeof subtle !== "object" || subtle === null) {
38
49
  throw new ImplementationError(
39
50
  "You cannot instantiate StandardCrypto in this runtime because crypto.subtle is not present",
40
51
  );
41
52
  }
42
53
 
54
+ const missingMethods = requiredSubtleMethods.filter(name => typeof subtle[name] !== "function");
55
+ if (missingMethods.length) {
56
+ throw new ImplementationError(
57
+ `SubtleCrypto implementation is missing required method${missingMethods.length === 1 ? "" : "s"} ${describeList("and", ...missingMethods)}`,
58
+ );
59
+ }
60
+
43
61
  super();
44
62
 
45
63
  this.#subtle = subtle;
@@ -258,6 +276,6 @@ export class StandardCrypto extends Crypto {
258
276
 
259
277
  // If available, unconditionally add to Environment as it has not been exported yet so there can be no other
260
278
  // implementation present
261
- if (crypto?.subtle !== undefined) {
262
- Environment.default.set(Crypto, new StandardCrypto(crypto.subtle));
279
+ if ("crypto" in globalThis && globalThis.crypto?.subtle) {
280
+ Environment.default.set(Crypto, new StandardCrypto(globalThis.crypto.subtle));
263
281
  }
@@ -569,8 +569,12 @@ function formatError(error: any, options: { messagePrefix?: string; parentStack?
569
569
  Diagnostic(Diagnostic.Presentation.Error, Diagnostic.squash(...messageDiagnostic)),
570
570
  );
571
571
 
572
- let cause, errors;
572
+ let cause, errors, secondary;
573
573
  if (typeof error === "object" && error !== null) {
574
+ if ("error" in error && "suppressed" in error) {
575
+ secondary = error.error;
576
+ error = error.suppressed;
577
+ }
574
578
  ({ cause, errors } = error);
575
579
  }
576
580
 
@@ -618,5 +622,10 @@ function formatError(error: any, options: { messagePrefix?: string; parentStack?
618
622
  );
619
623
  }
620
624
 
625
+ // We also render secondary errors from suppressed errors as subordinate to the parent.
626
+ if (secondary) {
627
+ list.push(Diagnostic.list([formatError(secondary, { messagePrefix: "Secondary error during disposal:" })]));
628
+ }
629
+
621
630
  return list as Diagnostic;
622
631
  }
@@ -24,11 +24,15 @@ export interface UdpChannel {
24
24
  maxPayloadSize: number;
25
25
  addMembership(address: string): MaybePromise<void>;
26
26
  dropMembership(address: string): MaybePromise<void>;
27
- onData(
28
- listener: (netInterface: string | undefined, peerAddress: string, peerPort: number, data: Uint8Array) => void,
29
- ): TransportInterface.Listener;
27
+ onData(listener: UdpChannel.Callback): TransportInterface.Listener;
30
28
  send(host: string, port: number, data: Uint8Array): Promise<void>;
31
29
  close(): Promise<void>;
32
30
  get port(): number;
33
31
  supports(type: ChannelType, address?: string): boolean;
34
32
  }
33
+
34
+ export namespace UdpChannel {
35
+ export interface Callback {
36
+ (netInterface: string | undefined, peerAddress: string, peerPort: number, data: Uint8Array): void;
37
+ }
38
+ }
package/src/net/index.ts CHANGED
@@ -5,9 +5,7 @@
5
5
  */
6
6
 
7
7
  export * from "./Channel.js";
8
- export * from "./mock/MockNetwork.js";
9
- export * from "./mock/MockUdpChannel.js";
10
- export * from "./mock/NetworkSimulator.js";
8
+ export * from "./mock/index.js";
11
9
  export * from "./NetInterface.js";
12
10
  export * from "./Network.js";
13
11
  export * from "./ServerAddress.js";
@@ -6,23 +6,26 @@
6
6
 
7
7
  import { ChannelType } from "#net/Channel.js";
8
8
  import { isIPv4 } from "../../util/Ip.js";
9
- import { Network, NetworkInterface, NetworkInterfaceDetails } from "../Network.js";
9
+ import { Network, NetworkError, NetworkInterface, NetworkInterfaceDetails } from "../Network.js";
10
10
  import { UdpChannelOptions } from "../UdpChannel.js";
11
+ import { MockRouter } from "./MockRouter.js";
11
12
  import { MockUdpChannel } from "./MockUdpChannel.js";
12
13
  import type { NetworkSimulator } from "./NetworkSimulator.js";
13
14
 
14
15
  export class MockNetwork extends Network {
16
+ readonly router = MockRouter();
15
17
  readonly #simulator: NetworkSimulator;
16
- readonly #mac: string;
17
- readonly #ipV4: string[];
18
- readonly #ipV6: string[];
18
+ readonly #intf: NetworkInterfaceDetails;
19
19
 
20
20
  constructor(simulator: NetworkSimulator, mac: string, ips: string[]) {
21
21
  super();
22
22
  this.#simulator = simulator;
23
- this.#mac = mac;
24
- this.#ipV4 = ips.filter(ip => isIPv4(ip));
25
- this.#ipV6 = ips.filter(ip => !isIPv4(ip));
23
+ this.#intf = {
24
+ mac,
25
+ ipV4: ips.filter(ip => isIPv4(ip)),
26
+ ipV6: ips.filter(ip => !isIPv4(ip)),
27
+ };
28
+ this.#simulator.router.add(this.router);
26
29
  }
27
30
 
28
31
  get simulator() {
@@ -33,8 +36,11 @@ export class MockNetwork extends Network {
33
36
  return [{ name: "fake0" }];
34
37
  }
35
38
 
36
- getIpMac(_netInterface: string): NetworkInterfaceDetails {
37
- return { mac: this.#mac, ipV4: this.#ipV4, ipV6: this.#ipV6 };
39
+ getIpMac(name: string): NetworkInterfaceDetails {
40
+ if (name !== "fake0") {
41
+ throw new NetworkError(`No such interface ${name}`);
42
+ }
43
+ return this.#intf;
38
44
  }
39
45
 
40
46
  override createUdpChannel(options: UdpChannelOptions) {
@@ -44,4 +50,8 @@ export class MockNetwork extends Network {
44
50
  supports(type: ChannelType, _address: string) {
45
51
  return type === ChannelType.UDP;
46
52
  }
53
+
54
+ override async close() {
55
+ this.#simulator.router.delete(this.router);
56
+ }
47
57
  }