@matter/general 0.16.0-alpha.0-20251004-92135c7df → 0.16.0-alpha.0-20251011-d8942d7d5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/codec/Base64Codec.js +2 -2
- package/dist/cjs/codec/Base64Codec.js.map +1 -1
- package/dist/cjs/environment/Environment.d.ts +12 -12
- package/dist/cjs/environment/Environment.d.ts.map +1 -1
- package/dist/cjs/environment/Environment.js.map +1 -1
- package/dist/cjs/environment/Environmental.d.ts +16 -2
- package/dist/cjs/environment/Environmental.d.ts.map +1 -1
- package/dist/cjs/log/Logger.js +1 -1
- package/dist/cjs/net/Network.d.ts +4 -0
- package/dist/cjs/net/Network.d.ts.map +1 -1
- package/dist/cjs/net/Network.js +6 -0
- package/dist/cjs/net/Network.js.map +1 -1
- package/dist/cjs/net/ServerAddress.d.ts +1 -0
- package/dist/cjs/net/ServerAddress.d.ts.map +1 -1
- package/dist/cjs/net/ServerAddress.js +13 -0
- package/dist/cjs/net/ServerAddress.js.map +1 -1
- package/dist/cjs/net/http/HttpEndpoint.d.ts +53 -0
- package/dist/cjs/net/http/HttpEndpoint.d.ts.map +1 -0
- package/dist/cjs/net/http/HttpEndpoint.js +22 -0
- package/dist/cjs/net/http/HttpEndpoint.js.map +6 -0
- package/dist/cjs/net/http/HttpEndpointFactory.d.ts +23 -0
- package/dist/cjs/net/http/HttpEndpointFactory.d.ts.map +1 -0
- package/dist/cjs/net/http/HttpEndpointFactory.js +39 -0
- package/dist/cjs/net/http/HttpEndpointFactory.js.map +6 -0
- package/dist/cjs/net/http/HttpEndpointGroup.d.ts +17 -0
- package/dist/cjs/net/http/HttpEndpointGroup.d.ts.map +1 -0
- package/dist/cjs/net/http/HttpEndpointGroup.js +56 -0
- package/dist/cjs/net/http/HttpEndpointGroup.js.map +6 -0
- package/dist/cjs/net/http/HttpService.d.ts +20 -0
- package/dist/cjs/net/http/HttpService.d.ts.map +1 -0
- package/dist/cjs/net/http/HttpService.js +83 -0
- package/dist/cjs/net/http/HttpService.js.map +6 -0
- package/dist/cjs/net/http/HttpSharedEndpoint.d.ts +16 -0
- package/dist/cjs/net/http/HttpSharedEndpoint.d.ts.map +1 -0
- package/dist/cjs/net/http/HttpSharedEndpoint.js +92 -0
- package/dist/cjs/net/http/HttpSharedEndpoint.js.map +6 -0
- package/dist/cjs/net/http/index.d.ts +11 -0
- package/dist/cjs/net/http/index.d.ts.map +1 -0
- package/dist/cjs/net/http/index.js +28 -0
- package/dist/cjs/net/http/index.js.map +6 -0
- package/dist/cjs/net/index.d.ts +2 -0
- package/dist/cjs/net/index.d.ts.map +1 -1
- package/dist/cjs/net/index.js +2 -0
- package/dist/cjs/net/index.js.map +1 -1
- package/dist/cjs/net/mqtt/MqttEndpoint.d.ts +39 -0
- package/dist/cjs/net/mqtt/MqttEndpoint.d.ts.map +1 -0
- package/dist/cjs/net/mqtt/MqttEndpoint.js +36 -0
- package/dist/cjs/net/mqtt/MqttEndpoint.js.map +6 -0
- package/dist/cjs/net/mqtt/MqttEndpointFactory.d.ts +15 -0
- package/dist/cjs/net/mqtt/MqttEndpointFactory.d.ts.map +1 -0
- package/dist/cjs/net/mqtt/MqttEndpointFactory.js +31 -0
- package/dist/cjs/net/mqtt/MqttEndpointFactory.js.map +6 -0
- package/dist/cjs/net/mqtt/MqttService.d.ts +19 -0
- package/dist/cjs/net/mqtt/MqttService.d.ts.map +1 -0
- package/dist/cjs/net/mqtt/MqttService.js +52 -0
- package/dist/cjs/net/mqtt/MqttService.js.map +6 -0
- package/dist/cjs/net/mqtt/index.d.ts +9 -0
- package/dist/cjs/net/mqtt/index.d.ts.map +1 -0
- package/dist/cjs/net/mqtt/index.js +26 -0
- package/dist/cjs/net/mqtt/index.js.map +6 -0
- package/dist/cjs/net/udp/UdpChannel.d.ts +31 -2
- package/dist/cjs/net/udp/UdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/udp/UdpMulticastServer.d.ts.map +1 -1
- package/dist/cjs/net/udp/UdpMulticastServer.js +6 -3
- package/dist/cjs/net/udp/UdpMulticastServer.js.map +1 -1
- package/dist/cjs/storage/StorageService.d.ts +5 -1
- package/dist/cjs/storage/StorageService.d.ts.map +1 -1
- package/dist/cjs/storage/StorageService.js +6 -1
- package/dist/cjs/storage/StorageService.js.map +1 -1
- package/dist/cjs/time/Duration.d.ts +1 -1
- package/dist/cjs/util/Abort.d.ts +4 -1
- package/dist/cjs/util/Abort.d.ts.map +1 -1
- package/dist/cjs/util/Abort.js +19 -3
- package/dist/cjs/util/Abort.js.map +1 -1
- package/dist/cjs/util/Construction.d.ts +1 -1
- package/dist/cjs/util/Multiplex.js +1 -1
- package/dist/cjs/util/Multiplex.js.map +1 -1
- package/dist/cjs/util/String.d.ts +5 -1
- package/dist/cjs/util/String.d.ts.map +1 -1
- package/dist/cjs/util/String.js +16 -0
- package/dist/cjs/util/String.js.map +1 -1
- package/dist/esm/codec/Base64Codec.js +2 -2
- package/dist/esm/codec/Base64Codec.js.map +1 -1
- package/dist/esm/environment/Environment.d.ts +12 -12
- package/dist/esm/environment/Environment.d.ts.map +1 -1
- package/dist/esm/environment/Environment.js.map +1 -1
- package/dist/esm/environment/Environmental.d.ts +16 -2
- package/dist/esm/environment/Environmental.d.ts.map +1 -1
- package/dist/esm/log/Logger.js +1 -1
- package/dist/esm/net/Network.d.ts +4 -0
- package/dist/esm/net/Network.d.ts.map +1 -1
- package/dist/esm/net/Network.js +6 -0
- package/dist/esm/net/Network.js.map +1 -1
- package/dist/esm/net/ServerAddress.d.ts +1 -0
- package/dist/esm/net/ServerAddress.d.ts.map +1 -1
- package/dist/esm/net/ServerAddress.js +13 -0
- package/dist/esm/net/ServerAddress.js.map +1 -1
- package/dist/esm/net/http/HttpEndpoint.d.ts +53 -0
- package/dist/esm/net/http/HttpEndpoint.d.ts.map +1 -0
- package/dist/esm/net/http/HttpEndpoint.js +6 -0
- package/dist/esm/net/http/HttpEndpoint.js.map +6 -0
- package/dist/esm/net/http/HttpEndpointFactory.d.ts +23 -0
- package/dist/esm/net/http/HttpEndpointFactory.d.ts.map +1 -0
- package/dist/esm/net/http/HttpEndpointFactory.js +19 -0
- package/dist/esm/net/http/HttpEndpointFactory.js.map +6 -0
- package/dist/esm/net/http/HttpEndpointGroup.d.ts +17 -0
- package/dist/esm/net/http/HttpEndpointGroup.d.ts.map +1 -0
- package/dist/esm/net/http/HttpEndpointGroup.js +36 -0
- package/dist/esm/net/http/HttpEndpointGroup.js.map +6 -0
- package/dist/esm/net/http/HttpService.d.ts +20 -0
- package/dist/esm/net/http/HttpService.d.ts.map +1 -0
- package/dist/esm/net/http/HttpService.js +63 -0
- package/dist/esm/net/http/HttpService.js.map +6 -0
- package/dist/esm/net/http/HttpSharedEndpoint.d.ts +16 -0
- package/dist/esm/net/http/HttpSharedEndpoint.d.ts.map +1 -0
- package/dist/esm/net/http/HttpSharedEndpoint.js +72 -0
- package/dist/esm/net/http/HttpSharedEndpoint.js.map +6 -0
- package/dist/esm/net/http/index.d.ts +11 -0
- package/dist/esm/net/http/index.d.ts.map +1 -0
- package/dist/esm/net/http/index.js +11 -0
- package/dist/esm/net/http/index.js.map +6 -0
- package/dist/esm/net/index.d.ts +2 -0
- package/dist/esm/net/index.d.ts.map +1 -1
- package/dist/esm/net/index.js +2 -0
- package/dist/esm/net/index.js.map +1 -1
- package/dist/esm/net/mqtt/MqttEndpoint.d.ts +39 -0
- package/dist/esm/net/mqtt/MqttEndpoint.d.ts.map +1 -0
- package/dist/esm/net/mqtt/MqttEndpoint.js +16 -0
- package/dist/esm/net/mqtt/MqttEndpoint.js.map +6 -0
- package/dist/esm/net/mqtt/MqttEndpointFactory.d.ts +15 -0
- package/dist/esm/net/mqtt/MqttEndpointFactory.d.ts.map +1 -0
- package/dist/esm/net/mqtt/MqttEndpointFactory.js +11 -0
- package/dist/esm/net/mqtt/MqttEndpointFactory.js.map +6 -0
- package/dist/esm/net/mqtt/MqttService.d.ts +19 -0
- package/dist/esm/net/mqtt/MqttService.d.ts.map +1 -0
- package/dist/esm/net/mqtt/MqttService.js +32 -0
- package/dist/esm/net/mqtt/MqttService.js.map +6 -0
- package/dist/esm/net/mqtt/index.d.ts +9 -0
- package/dist/esm/net/mqtt/index.d.ts.map +1 -0
- package/dist/esm/net/mqtt/index.js +9 -0
- package/dist/esm/net/mqtt/index.js.map +6 -0
- package/dist/esm/net/udp/UdpChannel.d.ts +31 -2
- package/dist/esm/net/udp/UdpChannel.d.ts.map +1 -1
- package/dist/esm/net/udp/UdpMulticastServer.d.ts.map +1 -1
- package/dist/esm/net/udp/UdpMulticastServer.js +6 -3
- package/dist/esm/net/udp/UdpMulticastServer.js.map +1 -1
- package/dist/esm/storage/StorageService.d.ts +5 -1
- package/dist/esm/storage/StorageService.d.ts.map +1 -1
- package/dist/esm/storage/StorageService.js +6 -1
- package/dist/esm/storage/StorageService.js.map +1 -1
- package/dist/esm/time/Duration.d.ts +1 -1
- package/dist/esm/util/Abort.d.ts +4 -1
- package/dist/esm/util/Abort.d.ts.map +1 -1
- package/dist/esm/util/Abort.js +19 -3
- package/dist/esm/util/Abort.js.map +1 -1
- package/dist/esm/util/Construction.d.ts +1 -1
- package/dist/esm/util/Multiplex.js +1 -1
- package/dist/esm/util/Multiplex.js.map +1 -1
- package/dist/esm/util/String.d.ts +5 -1
- package/dist/esm/util/String.d.ts.map +1 -1
- package/dist/esm/util/String.js +16 -0
- package/dist/esm/util/String.js.map +1 -1
- package/package.json +2 -2
- package/src/codec/Base64Codec.ts +2 -2
- package/src/environment/Environment.ts +15 -15
- package/src/environment/Environmental.ts +17 -2
- package/src/log/Logger.ts +1 -1
- package/src/net/Network.ts +4 -0
- package/src/net/ServerAddress.ts +16 -0
- package/src/net/http/HttpEndpoint.ts +60 -0
- package/src/net/http/HttpEndpointFactory.ts +27 -0
- package/src/net/http/HttpEndpointGroup.ts +43 -0
- package/src/net/http/HttpService.ts +75 -0
- package/src/net/http/HttpSharedEndpoint.ts +88 -0
- package/src/net/http/index.ts +11 -0
- package/src/net/index.ts +2 -0
- package/src/net/mqtt/MqttEndpoint.ts +50 -0
- package/src/net/mqtt/MqttEndpointFactory.ts +17 -0
- package/src/net/mqtt/MqttService.ts +40 -0
- package/src/net/mqtt/index.ts +9 -0
- package/src/net/udp/UdpChannel.ts +35 -2
- package/src/net/udp/UdpMulticastServer.ts +3 -0
- package/src/storage/StorageService.ts +14 -1
- package/src/time/Duration.ts +1 -1
- package/src/util/Abort.ts +28 -4
- package/src/util/Construction.ts +2 -2
- package/src/util/Multiplex.ts +1 -1
- package/src/util/String.ts +25 -6
package/src/util/Abort.ts
CHANGED
|
@@ -4,6 +4,10 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { TimeoutError } from "#MatterError.js";
|
|
8
|
+
import { Duration } from "#time/Duration.js";
|
|
9
|
+
import { Time, Timer } from "#time/Time.js";
|
|
10
|
+
|
|
7
11
|
/**
|
|
8
12
|
* Utilities for implementing abort logic.
|
|
9
13
|
*/
|
|
@@ -72,20 +76,40 @@ export namespace Abort {
|
|
|
72
76
|
* aborts.
|
|
73
77
|
*
|
|
74
78
|
* Closing the returned controller unregisters with the input controller. It does not perform an abort.
|
|
79
|
+
*
|
|
80
|
+
* {@link timeout} is a convenience for adding a timeout.
|
|
75
81
|
*/
|
|
76
|
-
export function subtask(signal: Signal | undefined): DisposableController {
|
|
82
|
+
export function subtask(signal: Signal | undefined, timeout?: Duration): DisposableController {
|
|
83
|
+
let timer: Timer | undefined;
|
|
84
|
+
|
|
77
85
|
if (signal && "signal" in signal) {
|
|
78
86
|
signal = signal.signal;
|
|
79
87
|
}
|
|
80
88
|
|
|
81
89
|
const controller = new AbortController() as DisposableController;
|
|
82
90
|
|
|
91
|
+
if (timeout) {
|
|
92
|
+
timer = Time.getPeriodicTimer("subtask timeout", timeout, () => {
|
|
93
|
+
if (controller.signal.aborted) {
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
controller.abort(new TimeoutError());
|
|
98
|
+
});
|
|
99
|
+
timer.start();
|
|
100
|
+
}
|
|
101
|
+
|
|
83
102
|
if (signal) {
|
|
84
|
-
const outerHandler = () => controller.abort();
|
|
103
|
+
const outerHandler = () => controller.abort(signal.reason);
|
|
85
104
|
signal.addEventListener("abort", outerHandler);
|
|
86
|
-
controller[Symbol.dispose] = () =>
|
|
105
|
+
controller[Symbol.dispose] = () => {
|
|
106
|
+
signal.removeEventListener("abort", outerHandler);
|
|
107
|
+
timer?.stop();
|
|
108
|
+
};
|
|
87
109
|
} else {
|
|
88
|
-
controller[Symbol.dispose] = () => {
|
|
110
|
+
controller[Symbol.dispose] = () => {
|
|
111
|
+
timer?.stop();
|
|
112
|
+
};
|
|
89
113
|
}
|
|
90
114
|
|
|
91
115
|
return controller;
|
package/src/util/Construction.ts
CHANGED
|
@@ -39,7 +39,7 @@ export async function asyncNew<const A extends any[], const C extends new (...ar
|
|
|
39
39
|
* Construction happens in the initializer parameter of {@link Construction} or via {@link Construction.construct} on
|
|
40
40
|
* the subject. You invoke in your constructor and place in a property called "construction".
|
|
41
41
|
*
|
|
42
|
-
*
|
|
42
|
+
* Destruction is optional and happens in the destructor parameter of {@link Construction#close} or via
|
|
43
43
|
* {@link Construction.destruct} on the subject. Typically you invoke in a "close" method of the subject.
|
|
44
44
|
*
|
|
45
45
|
* If construction or destruction is not asynchronous (does not return a Promise) then they complete synchronously,
|
|
@@ -430,7 +430,7 @@ export function Construction<const T extends Constructable>(
|
|
|
430
430
|
}
|
|
431
431
|
: invokeDestruct;
|
|
432
432
|
|
|
433
|
-
// Destruction phase 1 - move to
|
|
433
|
+
// Destruction phase 1 - move to destroying state
|
|
434
434
|
function beginDestruction() {
|
|
435
435
|
if (status === Lifecycle.Status.Destroying || status === Lifecycle.Status.Destroyed) {
|
|
436
436
|
return self.closed;
|
package/src/util/Multiplex.ts
CHANGED
|
@@ -43,7 +43,7 @@ export class BasicMultiplex implements PromiseLike<void> {
|
|
|
43
43
|
if (description) {
|
|
44
44
|
message = `${message} in ${description}`;
|
|
45
45
|
}
|
|
46
|
-
logger.error(message
|
|
46
|
+
logger.error(`${message}:`, e);
|
|
47
47
|
})
|
|
48
48
|
.finally(() => this.#workers.delete(entry)),
|
|
49
49
|
description,
|
package/src/util/String.ts
CHANGED
|
@@ -104,7 +104,7 @@ export function decamelize(name: string, separator = "-") {
|
|
|
104
104
|
/**
|
|
105
105
|
* Like JSON.stringify but targets well-formed JS and is slightly more readable.
|
|
106
106
|
*/
|
|
107
|
-
export function serialize(value:
|
|
107
|
+
export function serialize(value: unknown) {
|
|
108
108
|
const visited = new Set();
|
|
109
109
|
|
|
110
110
|
function asValidKey(key: string) {
|
|
@@ -114,15 +114,15 @@ export function serialize(value: any) {
|
|
|
114
114
|
return JSON.stringify(key);
|
|
115
115
|
}
|
|
116
116
|
|
|
117
|
-
function serializeOne(value:
|
|
117
|
+
function serializeOne(value: unknown): string | undefined {
|
|
118
118
|
if (value === undefined) {
|
|
119
119
|
return;
|
|
120
120
|
}
|
|
121
121
|
if (value === null) {
|
|
122
122
|
return "null";
|
|
123
123
|
}
|
|
124
|
-
if (value[serialize.SERIALIZE]) {
|
|
125
|
-
return value[serialize.SERIALIZE]();
|
|
124
|
+
if ((value as { [serialize.SERIALIZE](): string })[serialize.SERIALIZE]) {
|
|
125
|
+
return (value as { [serialize.SERIALIZE](): string })[serialize.SERIALIZE]();
|
|
126
126
|
}
|
|
127
127
|
if (typeof value === "function") {
|
|
128
128
|
return;
|
|
@@ -147,7 +147,7 @@ export function serialize(value: any) {
|
|
|
147
147
|
if (visited.has(value)) {
|
|
148
148
|
return;
|
|
149
149
|
}
|
|
150
|
-
if (value.toJSON) {
|
|
150
|
+
if ((value as { toJSON(): string }).toJSON) {
|
|
151
151
|
value = JSON.parse(JSON.stringify(value));
|
|
152
152
|
}
|
|
153
153
|
|
|
@@ -161,7 +161,7 @@ export function serialize(value: any) {
|
|
|
161
161
|
return "[]";
|
|
162
162
|
}
|
|
163
163
|
|
|
164
|
-
const entries = Object.entries(value)
|
|
164
|
+
const entries = Object.entries(value as {})
|
|
165
165
|
.map(([k, v]) => [k, serializeOne(v)])
|
|
166
166
|
.filter(([_k, v]) => v !== undefined)
|
|
167
167
|
.map(([k, v]) => `${asValidKey(k ?? "")}: ${v}`);
|
|
@@ -179,6 +179,25 @@ export function serialize(value: any) {
|
|
|
179
179
|
return serializeOne(value);
|
|
180
180
|
}
|
|
181
181
|
|
|
182
|
+
/**
|
|
183
|
+
* Like {@link JSON.stringify} but with support for additional standard objects.
|
|
184
|
+
*/
|
|
185
|
+
export function asJson(value: unknown, space?: number) {
|
|
186
|
+
return JSON.stringify(
|
|
187
|
+
value,
|
|
188
|
+
(_key, value) => {
|
|
189
|
+
if (typeof value === "bigint") {
|
|
190
|
+
return value.toString();
|
|
191
|
+
}
|
|
192
|
+
if (Bytes.isBytes(value)) {
|
|
193
|
+
return Bytes.toHex(value);
|
|
194
|
+
}
|
|
195
|
+
return value;
|
|
196
|
+
},
|
|
197
|
+
space,
|
|
198
|
+
);
|
|
199
|
+
}
|
|
200
|
+
|
|
182
201
|
export namespace serialize {
|
|
183
202
|
/**
|
|
184
203
|
* Custom serialization function key.
|