@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.
- package/dist/cjs/MatterError.d.ts +5 -0
- package/dist/cjs/MatterError.d.ts.map +1 -1
- package/dist/cjs/MatterError.js +3 -0
- package/dist/cjs/MatterError.js.map +1 -1
- package/dist/cjs/crypto/MockCrypto.d.ts +4 -0
- package/dist/cjs/crypto/MockCrypto.d.ts.map +1 -1
- package/dist/cjs/crypto/MockCrypto.js +37 -18
- package/dist/cjs/crypto/MockCrypto.js.map +1 -1
- package/dist/cjs/crypto/StandardCrypto.d.ts.map +1 -1
- package/dist/cjs/crypto/StandardCrypto.js +20 -4
- package/dist/cjs/crypto/StandardCrypto.js.map +1 -1
- package/dist/cjs/log/Diagnostic.js +8 -1
- package/dist/cjs/log/Diagnostic.js.map +1 -1
- package/dist/cjs/net/UdpChannel.d.ts +6 -1
- package/dist/cjs/net/UdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/index.d.ts +1 -3
- package/dist/cjs/net/index.d.ts.map +1 -1
- package/dist/cjs/net/index.js +1 -3
- package/dist/cjs/net/index.js.map +1 -1
- package/dist/cjs/net/mock/MockNetwork.d.ts +8 -1
- package/dist/cjs/net/mock/MockNetwork.d.ts.map +1 -1
- package/dist/cjs/net/mock/MockNetwork.js +17 -8
- package/dist/cjs/net/mock/MockNetwork.js.map +1 -1
- package/dist/cjs/net/mock/MockRouter.d.ts +28 -0
- package/dist/cjs/net/mock/MockRouter.d.ts.map +1 -0
- package/dist/cjs/net/mock/MockRouter.js +46 -0
- package/dist/cjs/net/mock/MockRouter.js.map +6 -0
- package/dist/cjs/net/mock/MockUdpChannel.d.ts +6 -5
- package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.js +47 -21
- package/dist/cjs/net/mock/MockUdpChannel.js.map +1 -1
- package/dist/cjs/net/mock/NetworkSimulator.d.ts +6 -5
- package/dist/cjs/net/mock/NetworkSimulator.d.ts.map +1 -1
- package/dist/cjs/net/mock/NetworkSimulator.js +2 -37
- package/dist/cjs/net/mock/NetworkSimulator.js.map +1 -1
- package/dist/cjs/net/mock/index.d.ts +10 -0
- package/dist/cjs/net/mock/index.d.ts.map +1 -0
- package/dist/cjs/net/mock/index.js +27 -0
- package/dist/cjs/net/mock/index.js.map +6 -0
- package/dist/cjs/storage/StorageBackendMemory.d.ts.map +1 -1
- package/dist/cjs/storage/StorageBackendMemory.js +12 -6
- package/dist/cjs/storage/StorageBackendMemory.js.map +1 -1
- package/dist/cjs/time/Time.d.ts +7 -1
- package/dist/cjs/time/Time.d.ts.map +1 -1
- package/dist/cjs/time/Time.js +19 -7
- package/dist/cjs/time/Time.js.map +1 -1
- package/dist/cjs/util/Cancelable.d.ts +1 -1
- package/dist/cjs/util/Cancelable.d.ts.map +1 -1
- package/dist/cjs/util/Cancelable.js +1 -1
- package/dist/cjs/util/Cancelable.js.map +1 -1
- package/dist/cjs/util/Construction.d.ts +2 -0
- package/dist/cjs/util/Construction.d.ts.map +1 -1
- package/dist/cjs/util/Construction.js +9 -3
- package/dist/cjs/util/Construction.js.map +1 -1
- package/dist/cjs/util/Promises.d.ts +2 -3
- package/dist/cjs/util/Promises.d.ts.map +1 -1
- package/dist/cjs/util/Promises.js +1 -5
- package/dist/cjs/util/Promises.js.map +1 -1
- package/dist/cjs/util/String.d.ts +5 -0
- package/dist/cjs/util/String.d.ts.map +1 -1
- package/dist/cjs/util/String.js +51 -1
- package/dist/cjs/util/String.js.map +2 -2
- package/dist/esm/MatterError.d.ts +5 -0
- package/dist/esm/MatterError.d.ts.map +1 -1
- package/dist/esm/MatterError.js +3 -0
- package/dist/esm/MatterError.js.map +1 -1
- package/dist/esm/crypto/MockCrypto.d.ts +4 -0
- package/dist/esm/crypto/MockCrypto.d.ts.map +1 -1
- package/dist/esm/crypto/MockCrypto.js +37 -18
- package/dist/esm/crypto/MockCrypto.js.map +1 -1
- package/dist/esm/crypto/StandardCrypto.d.ts.map +1 -1
- package/dist/esm/crypto/StandardCrypto.js +20 -4
- package/dist/esm/crypto/StandardCrypto.js.map +1 -1
- package/dist/esm/log/Diagnostic.js +8 -1
- package/dist/esm/log/Diagnostic.js.map +1 -1
- package/dist/esm/net/UdpChannel.d.ts +6 -1
- package/dist/esm/net/UdpChannel.d.ts.map +1 -1
- package/dist/esm/net/index.d.ts +1 -3
- package/dist/esm/net/index.d.ts.map +1 -1
- package/dist/esm/net/index.js +1 -3
- package/dist/esm/net/index.js.map +1 -1
- package/dist/esm/net/mock/MockNetwork.d.ts +8 -1
- package/dist/esm/net/mock/MockNetwork.d.ts.map +1 -1
- package/dist/esm/net/mock/MockNetwork.js +18 -9
- package/dist/esm/net/mock/MockNetwork.js.map +1 -1
- package/dist/esm/net/mock/MockRouter.d.ts +28 -0
- package/dist/esm/net/mock/MockRouter.d.ts.map +1 -0
- package/dist/esm/net/mock/MockRouter.js +26 -0
- package/dist/esm/net/mock/MockRouter.js.map +6 -0
- package/dist/esm/net/mock/MockUdpChannel.d.ts +6 -5
- package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/esm/net/mock/MockUdpChannel.js +47 -21
- package/dist/esm/net/mock/MockUdpChannel.js.map +1 -1
- package/dist/esm/net/mock/NetworkSimulator.d.ts +6 -5
- package/dist/esm/net/mock/NetworkSimulator.d.ts.map +1 -1
- package/dist/esm/net/mock/NetworkSimulator.js +2 -37
- package/dist/esm/net/mock/NetworkSimulator.js.map +1 -1
- package/dist/esm/net/mock/index.d.ts +10 -0
- package/dist/esm/net/mock/index.d.ts.map +1 -0
- package/dist/esm/net/mock/index.js +10 -0
- package/dist/esm/net/mock/index.js.map +6 -0
- package/dist/esm/storage/StorageBackendMemory.d.ts.map +1 -1
- package/dist/esm/storage/StorageBackendMemory.js +12 -6
- package/dist/esm/storage/StorageBackendMemory.js.map +1 -1
- package/dist/esm/time/Time.d.ts +7 -1
- package/dist/esm/time/Time.d.ts.map +1 -1
- package/dist/esm/time/Time.js +19 -7
- package/dist/esm/time/Time.js.map +1 -1
- package/dist/esm/util/Cancelable.d.ts +1 -1
- package/dist/esm/util/Cancelable.d.ts.map +1 -1
- package/dist/esm/util/Cancelable.js +2 -2
- package/dist/esm/util/Cancelable.js.map +1 -1
- package/dist/esm/util/Construction.d.ts +2 -0
- package/dist/esm/util/Construction.d.ts.map +1 -1
- package/dist/esm/util/Construction.js +9 -3
- package/dist/esm/util/Construction.js.map +1 -1
- package/dist/esm/util/Promises.d.ts +2 -3
- package/dist/esm/util/Promises.d.ts.map +1 -1
- package/dist/esm/util/Promises.js +2 -6
- package/dist/esm/util/Promises.js.map +1 -1
- package/dist/esm/util/String.d.ts +5 -0
- package/dist/esm/util/String.d.ts.map +1 -1
- package/dist/esm/util/String.js +51 -1
- package/dist/esm/util/String.js.map +2 -2
- package/package.json +2 -2
- package/src/MatterError.ts +5 -0
- package/src/crypto/MockCrypto.ts +48 -20
- package/src/crypto/StandardCrypto.ts +22 -4
- package/src/log/Diagnostic.ts +10 -1
- package/src/net/UdpChannel.ts +7 -3
- package/src/net/index.ts +1 -3
- package/src/net/mock/MockNetwork.ts +19 -9
- package/src/net/mock/MockRouter.ts +48 -0
- package/src/net/mock/MockUdpChannel.ts +55 -26
- package/src/net/mock/NetworkSimulator.ts +2 -46
- package/src/net/mock/index.ts +10 -0
- package/src/storage/StorageBackendMemory.ts +14 -6
- package/src/time/Time.ts +17 -2
- package/src/util/Cancelable.ts +3 -3
- package/src/util/Construction.ts +18 -4
- package/src/util/Promises.ts +2 -7
- 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": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,qBAAqB;AAC9B,SAAS,eAAe;
|
|
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":"AAAA;;;;GAIG;AAKH,OAAO,EAAoD,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC7F,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAE7C;;GAEG;AACH,wBAAsB,QAAQ,CAAC,KAAK,CAAC,CAAC,SAAS,GAAG,EAAE,EAAE,KAAK,CAAC,CAAC,SAAS,KAAK,GAAG,IAAI,EAAE,CAAC,KAAK,aAAa,CAAC,GAAG,CAAC,EACxG,WAAW,EAAE,CAAC,EACd,GAAG,IAAI,EAAE,CAAC,GACX,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAc1B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,MAAM,WAAW,aAAa,CAAC,CAAC,GAAG,MAAM;IACrC,QAAQ,CAAC,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC,CAAC;CAC1C;AAED,yBAAiB,aAAa,CAAC;IAC3B;;;;;OAKG;IACH,UAAiB,QAAQ,CAAC,CAAC,EAAE,CAAC,SAAS,OAAO,EAAE,CAAE,SAAQ,aAAa,CAAC,CAAC,CAAC;QACtE;;WAEG;QACH,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,GAAG,IAAI,EAAE,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;KAC5D;IAED;;OAEG;IACH,UAAiB,YAAY;QACzB;;;;;;WAMG;QACH,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,YAAY,CAAC,IAAI,CAAC,CAAC;KACjD;CACJ;AAED;;GAEG;AACH,MAAM,WAAW,YAAY,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IAC/C;;OAEG;IACH,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IAEvB;;OAEG;IACH,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC;IAElC;;;OAGG;IACH,QAAQ,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC;IAEpE;;OAEG;IACH,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IAEjC;;;;;;;OAOG;IACH,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAE3B;;;;OAIG;IACH,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IAE5B;;;;;;OAMG;IACH,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,SAAS,OAAO,EAAE,EAAE,KAAK,CAAC,IAAI,SAAS,YAAY,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EACnG,IAAI,EAAE,IAAI,EACV,GAAG,IAAI,EAAE,CAAC,GACX,IAAI,CAAC;IAER
|
|
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
|
-
|
|
188
|
-
|
|
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": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AACvB,SAAS,2BAA2B;AACpC,SAAS,SAAS,eAAe;AACjC,SAAS,0BAA0B,wBAAwB,iBAAiB;AAC5E,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAK7B,eAAsB,SAClB,gBACG,MACqB;AACxB,QAAM,UAAU,IAAI,YAAY,GAAG,IAAI;AAIvC,MAAI,QAAQ,aAAa,WAAW,UAAU,OAAO,UAAU;AAC3D,UAAM,IAAI;AAAA,MACN,8BAA8B,YAAY,IAAI;AAAA,IAClD;AAAA,EACJ;AAEA,QAAM,QAAQ,aAAa;AAE3B,SAAO;AACX;
|
|
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 {
|
|
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
|
|
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,
|
|
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,
|
|
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
|
|
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,
|
|
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;
|
|
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"}
|
package/dist/esm/util/String.js
CHANGED
|
@@ -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": "AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
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.
|
|
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.
|
|
39
|
+
"@matter/testing": "0.15.2-alpha.0-20250703-2e16aba2b"
|
|
40
40
|
},
|
|
41
41
|
"files": [
|
|
42
42
|
"dist/**/*",
|
package/src/MatterError.ts
CHANGED
|
@@ -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
|
*/
|
package/src/crypto/MockCrypto.ts
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
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
|
-
|
|
54
|
-
|
|
55
|
-
|
|
49
|
+
set(newIndex: number) {
|
|
50
|
+
index = newIndex % 256;
|
|
51
|
+
},
|
|
56
52
|
},
|
|
57
53
|
|
|
58
|
-
|
|
59
|
-
|
|
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 ===
|
|
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
|
|
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
|
}
|
package/src/log/Diagnostic.ts
CHANGED
|
@@ -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
|
}
|
package/src/net/UdpChannel.ts
CHANGED
|
@@ -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/
|
|
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 #
|
|
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.#
|
|
24
|
-
|
|
25
|
-
|
|
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(
|
|
37
|
-
|
|
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
|
}
|