@matter/general 0.16.0-alpha.0-20251001-7eb06da95 → 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.
- package/dist/cjs/MatterError.d.ts +2 -2
- package/dist/cjs/MatterError.d.ts.map +1 -1
- package/dist/cjs/MatterError.js +0 -1
- package/dist/cjs/MatterError.js.map +1 -1
- package/dist/cjs/environment/Environment.d.ts +12 -0
- package/dist/cjs/environment/Environment.d.ts.map +1 -1
- package/dist/cjs/environment/Environment.js +48 -7
- package/dist/cjs/environment/Environment.js.map +1 -1
- package/dist/cjs/environment/Environmental.d.ts +1 -1
- package/dist/cjs/environment/Environmental.d.ts.map +1 -1
- package/dist/cjs/environment/RuntimeService.d.ts +9 -2
- package/dist/cjs/environment/RuntimeService.d.ts.map +1 -1
- package/dist/cjs/environment/RuntimeService.js +10 -1
- package/dist/cjs/environment/RuntimeService.js.map +1 -1
- package/dist/cjs/net/AppAddress.d.ts +46 -0
- package/dist/cjs/net/AppAddress.d.ts.map +1 -0
- package/dist/cjs/net/AppAddress.js +117 -0
- package/dist/cjs/net/AppAddress.js.map +6 -0
- package/dist/cjs/net/Channel.d.ts +2 -2
- package/dist/cjs/net/Channel.d.ts.map +1 -1
- package/dist/cjs/net/{TransportInterface.d.ts → ConnectionlessTransport.d.ts} +9 -8
- package/dist/cjs/net/ConnectionlessTransport.d.ts.map +1 -0
- package/dist/cjs/net/{TransportInterface.js → ConnectionlessTransport.js} +9 -8
- package/dist/cjs/net/ConnectionlessTransport.js.map +6 -0
- package/dist/cjs/net/Network.d.ts +2 -2
- package/dist/cjs/net/Network.d.ts.map +1 -1
- package/dist/cjs/net/ServerAddress.d.ts +7 -2
- package/dist/cjs/net/ServerAddress.d.ts.map +1 -1
- package/dist/cjs/net/ServerAddress.js +20 -5
- package/dist/cjs/net/ServerAddress.js.map +1 -1
- package/dist/cjs/net/index.d.ts +3 -5
- package/dist/cjs/net/index.d.ts.map +1 -1
- package/dist/cjs/net/index.js +3 -5
- package/dist/cjs/net/index.js.map +1 -1
- package/dist/cjs/net/mock/MockNetwork.d.ts +1 -1
- package/dist/cjs/net/mock/MockNetwork.d.ts.map +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.d.ts +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/cjs/net/mock/MockUdpChannel.js +1 -1
- package/dist/{esm/net → cjs/net/udp}/UdpChannel.d.ts +3 -3
- package/dist/cjs/net/udp/UdpChannel.d.ts.map +1 -0
- package/dist/cjs/net/{UdpChannel.js.map → udp/UdpChannel.js.map} +1 -1
- package/dist/{esm/net → cjs/net/udp}/UdpInterface.d.ts +9 -10
- package/dist/cjs/net/udp/UdpInterface.d.ts.map +1 -0
- package/dist/cjs/net/{UdpInterface.js → udp/UdpInterface.js} +2 -2
- package/dist/cjs/net/{UdpInterface.js.map → udp/UdpInterface.js.map} +2 -2
- package/dist/{esm/net → cjs/net/udp}/UdpMulticastServer.d.ts +1 -1
- package/dist/cjs/net/udp/UdpMulticastServer.d.ts.map +1 -0
- package/dist/cjs/net/{UdpMulticastServer.js → udp/UdpMulticastServer.js} +5 -5
- package/dist/cjs/net/{UdpMulticastServer.js.map → udp/UdpMulticastServer.js.map} +1 -1
- package/dist/cjs/net/udp/index.d.ts +9 -0
- package/dist/cjs/net/udp/index.d.ts.map +1 -0
- package/dist/cjs/net/udp/index.js +26 -0
- package/dist/cjs/net/udp/index.js.map +6 -0
- package/dist/cjs/time/Duration.d.ts.map +1 -1
- package/dist/cjs/time/Duration.js +4 -1
- package/dist/cjs/time/Duration.js.map +1 -1
- package/dist/esm/MatterError.d.ts +2 -2
- package/dist/esm/MatterError.d.ts.map +1 -1
- package/dist/esm/MatterError.js +0 -1
- package/dist/esm/MatterError.js.map +1 -1
- package/dist/esm/environment/Environment.d.ts +12 -0
- package/dist/esm/environment/Environment.d.ts.map +1 -1
- package/dist/esm/environment/Environment.js +48 -7
- package/dist/esm/environment/Environment.js.map +1 -1
- package/dist/esm/environment/Environmental.d.ts +1 -1
- package/dist/esm/environment/Environmental.d.ts.map +1 -1
- package/dist/esm/environment/RuntimeService.d.ts +9 -2
- package/dist/esm/environment/RuntimeService.d.ts.map +1 -1
- package/dist/esm/environment/RuntimeService.js +10 -1
- package/dist/esm/environment/RuntimeService.js.map +1 -1
- package/dist/esm/net/AppAddress.d.ts +46 -0
- package/dist/esm/net/AppAddress.d.ts.map +1 -0
- package/dist/esm/net/AppAddress.js +97 -0
- package/dist/esm/net/AppAddress.js.map +6 -0
- package/dist/esm/net/Channel.d.ts +2 -2
- package/dist/esm/net/Channel.d.ts.map +1 -1
- package/dist/esm/net/{TransportInterface.d.ts → ConnectionlessTransport.d.ts} +9 -8
- package/dist/esm/net/ConnectionlessTransport.d.ts.map +1 -0
- package/dist/esm/net/{TransportInterface.js → ConnectionlessTransport.js} +6 -5
- package/dist/esm/net/ConnectionlessTransport.js.map +6 -0
- package/dist/esm/net/Network.d.ts +2 -2
- package/dist/esm/net/Network.d.ts.map +1 -1
- package/dist/esm/net/ServerAddress.d.ts +7 -2
- package/dist/esm/net/ServerAddress.d.ts.map +1 -1
- package/dist/esm/net/ServerAddress.js +20 -5
- package/dist/esm/net/ServerAddress.js.map +1 -1
- package/dist/esm/net/index.d.ts +3 -5
- package/dist/esm/net/index.d.ts.map +1 -1
- package/dist/esm/net/index.js +3 -5
- package/dist/esm/net/index.js.map +1 -1
- package/dist/esm/net/mock/MockNetwork.d.ts +1 -1
- package/dist/esm/net/mock/MockNetwork.d.ts.map +1 -1
- package/dist/esm/net/mock/MockUdpChannel.d.ts +1 -1
- package/dist/esm/net/mock/MockUdpChannel.d.ts.map +1 -1
- package/dist/esm/net/mock/MockUdpChannel.js +1 -1
- package/dist/{cjs/net → esm/net/udp}/UdpChannel.d.ts +3 -3
- package/dist/esm/net/udp/UdpChannel.d.ts.map +1 -0
- package/dist/esm/net/{UdpChannel.js.map → udp/UdpChannel.js.map} +1 -1
- package/dist/{cjs/net → esm/net/udp}/UdpInterface.d.ts +9 -10
- package/dist/esm/net/udp/UdpInterface.d.ts.map +1 -0
- package/dist/esm/net/{UdpInterface.js → udp/UdpInterface.js} +2 -2
- package/dist/esm/net/{UdpInterface.js.map → udp/UdpInterface.js.map} +2 -2
- package/dist/{cjs/net → esm/net/udp}/UdpMulticastServer.d.ts +1 -1
- package/dist/esm/net/udp/UdpMulticastServer.d.ts.map +1 -0
- package/dist/esm/net/{UdpMulticastServer.js → udp/UdpMulticastServer.js} +5 -5
- package/dist/esm/net/{UdpMulticastServer.js.map → udp/UdpMulticastServer.js.map} +1 -1
- package/dist/esm/net/udp/index.d.ts +9 -0
- package/dist/esm/net/udp/index.d.ts.map +1 -0
- package/dist/esm/net/udp/index.js +9 -0
- package/dist/esm/net/udp/index.js.map +6 -0
- package/dist/esm/time/Duration.d.ts.map +1 -1
- package/dist/esm/time/Duration.js +4 -1
- package/dist/esm/time/Duration.js.map +1 -1
- package/package.json +2 -2
- package/src/MatterError.ts +6 -3
- package/src/environment/Environment.ts +66 -8
- package/src/environment/Environmental.ts +1 -1
- package/src/environment/RuntimeService.ts +21 -2
- package/src/net/AppAddress.ts +136 -0
- package/src/net/Channel.ts +2 -2
- package/src/net/{TransportInterface.ts → ConnectionlessTransport.ts} +12 -8
- package/src/net/Network.ts +2 -2
- package/src/net/ServerAddress.ts +32 -7
- package/src/net/index.ts +3 -5
- package/src/net/mock/MockNetwork.ts +1 -1
- package/src/net/mock/MockUdpChannel.ts +1 -1
- package/src/net/{UdpChannel.ts → udp/UdpChannel.ts} +3 -3
- package/src/net/{UdpInterface.ts → udp/UdpInterface.ts} +7 -8
- package/src/net/{UdpMulticastServer.ts → udp/UdpMulticastServer.ts} +5 -5
- package/src/net/udp/index.ts +9 -0
- package/src/time/Duration.ts +8 -1
- package/dist/cjs/net/NetInterface.d.ts +0 -25
- package/dist/cjs/net/NetInterface.d.ts.map +0 -1
- package/dist/cjs/net/NetInterface.js +0 -42
- package/dist/cjs/net/NetInterface.js.map +0 -6
- package/dist/cjs/net/TransportInterface.d.ts.map +0 -1
- package/dist/cjs/net/TransportInterface.js.map +0 -6
- package/dist/cjs/net/UdpChannel.d.ts.map +0 -1
- package/dist/cjs/net/UdpInterface.d.ts.map +0 -1
- package/dist/cjs/net/UdpMulticastServer.d.ts.map +0 -1
- package/dist/esm/net/NetInterface.d.ts +0 -25
- package/dist/esm/net/NetInterface.d.ts.map +0 -1
- package/dist/esm/net/NetInterface.js +0 -22
- package/dist/esm/net/NetInterface.js.map +0 -6
- package/dist/esm/net/TransportInterface.d.ts.map +0 -1
- package/dist/esm/net/TransportInterface.js.map +0 -6
- package/dist/esm/net/UdpChannel.d.ts.map +0 -1
- package/dist/esm/net/UdpInterface.d.ts.map +0 -1
- package/dist/esm/net/UdpMulticastServer.d.ts.map +0 -1
- package/src/net/NetInterface.ts +0 -34
- /package/dist/cjs/net/{UdpChannel.js → udp/UdpChannel.js} +0 -0
- /package/dist/esm/net/{UdpChannel.js → udp/UdpChannel.js} +0 -0
|
@@ -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
|
-
|
|
43
|
-
if (
|
|
44
|
-
return
|
|
49
|
+
const mine = this.#services?.get(type);
|
|
50
|
+
if (mine !== void 0 && mine !== null) {
|
|
51
|
+
return mine;
|
|
45
52
|
}
|
|
46
|
-
if (
|
|
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
|
-
|
|
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
|
-
|
|
87
|
-
|
|
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": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,eAAe;AAExB,SAAS,wBAAwB;AACjC,SAAS,cAAc;AACvB,OAAO;AACP,SAAS,YAAY;AACrB,SAAuB,kCAAkC;AACzD,SAAS,kBAAkB;AAC3B,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAEhC,MAAM,SAAS,OAAO,IAAI,aAAa;AAehC,MAAM,YAAY;AAAA,EACrB;AAAA,EACA;AAAA,EACA;AAAA,EACA,SAAS,WAAsE;AAAA,EAC/E,WAAW,WAAsE;AAAA,EACjF,iBAAiB,oBAAI,IAA4E;AAAA,EAEjG,YAAY,MAAc,QAAsB;AAC5C,SAAK,QAAQ;AACb,SAAK,UAAU;AAAA,EACnB;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,MAAqD;AACrD,UAAM,OAAO,KAAK,WAAW,IAAI,IAAI;AAErC,QAAI,SAAS,MAAM;AACf,aAAO;AAAA,IACX;AAEA,WAAO,SAAS,WAAc,KAAK,SAAS,IAAI,IAAI,KAAK;AAAA,EAC7D;AAAA;AAAA;AAAA;AAAA,EAKA,
|
|
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;
|
|
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.
|
|
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;
|
|
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
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/environment/RuntimeService.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAS,wBAAwB;AACjC,SAAS,cAAc;AAEvB,SAAoC,iBAAiB;AAErD,SAAS,kBAAkB;AAE3B,SAAS,qBAAqB;AAE9B,MAAM,SAAS,OAAO,IAAI,SAAS;AAK5B,MAAM,eAAoC;AAAA,EAC7C;AAAA,EACA,WAAW,oBAAI,IAA2B;AAAA,EAC1C,aAAa,oBAAI,IAA2B;AAAA,EAC5C,iBAAiB,WAAe;AAAA,EAChC,YAAY;AAAA,EACZ,WAAW,WAAe;AAAA,EAC1B,WAAW,WAAe;AAAA,EAC1B,WAAW,WAAyB;AAAA,EAEpC,YAAY,aAA0B;AAClC,SAAK,OAAO;AACZ,gBAAY,IAAI,gBAAgB,IAAI;AACpC,qBAAiB,IAAI,IAAI;AAAA,EAC7B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAaA,IAAI,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["RuntimeService"]
|
|
6
6
|
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Diagnostic } from "#log/Diagnostic.js";
|
|
7
|
+
import { NetworkError } from "./Network.js";
|
|
8
|
+
export declare class InvalidAppAddress extends NetworkError {
|
|
9
|
+
}
|
|
10
|
+
/**
|
|
11
|
+
* An application network address.
|
|
12
|
+
*
|
|
13
|
+
* This is an OSI layer 7 address representable as an object or URL.
|
|
14
|
+
*/
|
|
15
|
+
export declare class AppAddress extends URL {
|
|
16
|
+
[Diagnostic.value]: string;
|
|
17
|
+
constructor(definition: AppAddress.Definition);
|
|
18
|
+
get appProtocol(): string;
|
|
19
|
+
get isTls(): boolean;
|
|
20
|
+
get protocolModifiers(): string[];
|
|
21
|
+
get transport(): AppAddress.TransportAddress;
|
|
22
|
+
get portNum(): number;
|
|
23
|
+
get isWildcardHost(): boolean;
|
|
24
|
+
get isWildcardPort(): boolean;
|
|
25
|
+
static for(definition: AppAddress.Definition): AppAddress;
|
|
26
|
+
}
|
|
27
|
+
export declare namespace AppAddress {
|
|
28
|
+
type Definition = Object | URL | string;
|
|
29
|
+
type TransportAddress = IpTransportAddress | UnixSocketTransportAddress;
|
|
30
|
+
interface IpTransportAddress {
|
|
31
|
+
kind: "ip";
|
|
32
|
+
host: string;
|
|
33
|
+
port: number;
|
|
34
|
+
}
|
|
35
|
+
interface UnixSocketTransportAddress {
|
|
36
|
+
kind: "unix";
|
|
37
|
+
path: string;
|
|
38
|
+
}
|
|
39
|
+
interface Object {
|
|
40
|
+
appProtocol: string;
|
|
41
|
+
transport: TransportAddress;
|
|
42
|
+
tls?: boolean;
|
|
43
|
+
path?: string;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
//# sourceMappingURL=AppAddress.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AppAddress.d.ts","sourceRoot":"","sources":["../../../src/net/AppAddress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,qBAAa,iBAAkB,SAAQ,YAAY;CAAG;AAEtD;;;;GAIG;AACH,qBAAa,UAAW,SAAQ,GAAG;IA8B3B,CAAC,UAAU,CAAC,KAAK,CAAC;gBA7BV,UAAU,EAAE,UAAU,CAAC,UAAU;IAiC7C,IAAI,WAAW,WAEd;IAED,IAAI,KAAK,YAYR;IAED,IAAI,iBAAiB,aAIpB;IAED,IAAI,SAAS,IAAI,UAAU,CAAC,gBAAgB,CAa3C;IAED,IAAI,OAAO,WAKV;IAED,IAAI,cAAc,YAEjB;IAED,IAAI,cAAc,YAEjB;IAED,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,UAAU,CAAC,UAAU;CAO/C;AAED,yBAAiB,UAAU,CAAC;IACxB,KAAY,UAAU,GAAG,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC;IAE/C,KAAY,gBAAgB,GAAG,kBAAkB,GAAG,0BAA0B,CAAC;IAE/E,UAAiB,kBAAkB;QAC/B,IAAI,EAAE,IAAI,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KAChB;IAED,UAAiB,0BAA0B;QACvC,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;KAChB;IAED,UAAiB,MAAM;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,SAAS,EAAE,gBAAgB,CAAC;QAC5B,GAAG,CAAC,EAAE,OAAO,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;KACjB;CACJ"}
|
|
@@ -0,0 +1,97 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
import { Diagnostic } from "#log/Diagnostic.js";
|
|
7
|
+
import { NetworkError } from "./Network.js";
|
|
8
|
+
class InvalidAppAddress extends NetworkError {
|
|
9
|
+
}
|
|
10
|
+
class AppAddress extends URL {
|
|
11
|
+
constructor(definition) {
|
|
12
|
+
if (typeof definition === "object" && !(definition instanceof URL)) {
|
|
13
|
+
let protocol = definition.appProtocol;
|
|
14
|
+
let host;
|
|
15
|
+
if (definition.tls) {
|
|
16
|
+
protocol += "s";
|
|
17
|
+
}
|
|
18
|
+
if (definition.transport.kind === "unix") {
|
|
19
|
+
protocol += "+unix";
|
|
20
|
+
host = encodeURIComponent(definition.transport.path);
|
|
21
|
+
} else {
|
|
22
|
+
host = definition.transport.host;
|
|
23
|
+
if (definition.transport.port) {
|
|
24
|
+
host = `${host}:${definition.transport.port}`;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
const path = definition.path ?? "/";
|
|
28
|
+
definition = `${protocol}://${host}${path}`;
|
|
29
|
+
}
|
|
30
|
+
try {
|
|
31
|
+
super(definition);
|
|
32
|
+
} catch (e) {
|
|
33
|
+
if (e instanceof SyntaxError) {
|
|
34
|
+
throw new InvalidAppAddress(`Invalid app address:${e.message}`);
|
|
35
|
+
}
|
|
36
|
+
throw e;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
get [Diagnostic.value]() {
|
|
40
|
+
return this.toString();
|
|
41
|
+
}
|
|
42
|
+
get appProtocol() {
|
|
43
|
+
return this.protocol.replace(/[:+].*$/, "");
|
|
44
|
+
}
|
|
45
|
+
get isTls() {
|
|
46
|
+
switch (this.appProtocol) {
|
|
47
|
+
case "https":
|
|
48
|
+
case "mqtts":
|
|
49
|
+
case "wss":
|
|
50
|
+
return true;
|
|
51
|
+
case "mqtt":
|
|
52
|
+
return this.protocolModifiers.includes("wss");
|
|
53
|
+
}
|
|
54
|
+
return false;
|
|
55
|
+
}
|
|
56
|
+
get protocolModifiers() {
|
|
57
|
+
const segments = this.protocol.replace(/:$/, "").split("+");
|
|
58
|
+
segments.shift();
|
|
59
|
+
return segments;
|
|
60
|
+
}
|
|
61
|
+
get transport() {
|
|
62
|
+
if (this.protocolModifiers.includes("unix")) {
|
|
63
|
+
return {
|
|
64
|
+
kind: "unix",
|
|
65
|
+
path: decodeURIComponent(this.hostname)
|
|
66
|
+
};
|
|
67
|
+
}
|
|
68
|
+
return {
|
|
69
|
+
kind: "ip",
|
|
70
|
+
host: this.hostname,
|
|
71
|
+
port: this.portNum
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
get portNum() {
|
|
75
|
+
if (this.port !== "") {
|
|
76
|
+
return Number(this.port);
|
|
77
|
+
}
|
|
78
|
+
return 0;
|
|
79
|
+
}
|
|
80
|
+
get isWildcardHost() {
|
|
81
|
+
return this.host === "0.0.0.0" || this.host === "::";
|
|
82
|
+
}
|
|
83
|
+
get isWildcardPort() {
|
|
84
|
+
return this.port === "0";
|
|
85
|
+
}
|
|
86
|
+
static for(definition) {
|
|
87
|
+
if (definition instanceof AppAddress) {
|
|
88
|
+
return definition;
|
|
89
|
+
}
|
|
90
|
+
return new AppAddress(definition);
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
export {
|
|
94
|
+
AppAddress,
|
|
95
|
+
InvalidAppAddress
|
|
96
|
+
};
|
|
97
|
+
//# sourceMappingURL=AppAddress.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/net/AppAddress.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAS,oBAAoB;AAEtB,MAAM,0BAA0B,aAAa;AAAC;AAO9C,MAAM,mBAAmB,IAAI;AAAA,EAChC,YAAY,YAAmC;AAC3C,QAAI,OAAO,eAAe,YAAY,EAAE,sBAAsB,MAAM;AAChE,UAAI,WAAW,WAAW;AAC1B,UAAI;AACJ,UAAI,WAAW,KAAK;AAChB,oBAAY;AAAA,MAChB;AACA,UAAI,WAAW,UAAU,SAAS,QAAQ;AACtC,oBAAY;AACZ,eAAO,mBAAmB,WAAW,UAAU,IAAI;AAAA,MACvD,OAAO;AACH,eAAO,WAAW,UAAU;AAC5B,YAAI,WAAW,UAAU,MAAM;AAC3B,iBAAO,GAAG,IAAI,IAAI,WAAW,UAAU,IAAI;AAAA,QAC/C;AAAA,MACJ;AACA,YAAM,OAAO,WAAW,QAAQ;AAChC,mBAAa,GAAG,QAAQ,MAAM,IAAI,GAAG,IAAI;AAAA,IAC7C;AACA,QAAI;AACA,YAAM,UAAU;AAAA,IACpB,SAAS,GAAG;AACR,UAAI,aAAa,aAAa;AAC1B,cAAM,IAAI,kBAAkB,uBAAuB,EAAE,OAAO,EAAE;AAAA,MAClE;AACA,YAAM;AAAA,IACV;AAAA,EACJ;AAAA,EAEA,KAAK,WAAW,KAAK,IAAI;AACrB,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,IAAI,cAAc;AACd,WAAO,KAAK,SAAS,QAAQ,WAAW,EAAE;AAAA,EAC9C;AAAA,EAEA,IAAI,QAAQ;AACR,YAAQ,KAAK,aAAa;AAAA,MACtB,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AACD,eAAO;AAAA,MAEX,KAAK;AAED,eAAO,KAAK,kBAAkB,SAAS,KAAK;AAAA,IACpD;AACA,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,oBAAoB;AACpB,UAAM,WAAW,KAAK,SAAS,QAAQ,MAAM,EAAE,EAAE,MAAM,GAAG;AAC1D,aAAS,MAAM;AACf,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,YAAyC;AACzC,QAAI,KAAK,kBAAkB,SAAS,MAAM,GAAG;AACzC,aAAO;AAAA,QACH,MAAM;AAAA,QACN,MAAM,mBAAmB,KAAK,QAAQ;AAAA,MAC1C;AAAA,IACJ;AAEA,WAAO;AAAA,MACH,MAAM;AAAA,MACN,MAAM,KAAK;AAAA,MACX,MAAM,KAAK;AAAA,IACf;AAAA,EACJ;AAAA,EAEA,IAAI,UAAU;AACV,QAAI,KAAK,SAAS,IAAI;AAClB,aAAO,OAAO,KAAK,IAAI;AAAA,IAC3B;AACA,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,SAAS,aAAa,KAAK,SAAS;AAAA,EACpD;AAAA,EAEA,IAAI,iBAAiB;AACjB,WAAO,KAAK,SAAS;AAAA,EACzB;AAAA,EAEA,OAAO,IAAI,YAAmC;AAC1C,QAAI,sBAAsB,YAAY;AAClC,aAAO;AAAA,IACX;AAEA,WAAO,IAAI,WAAW,UAAU;AAAA,EACpC;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
6
|
+
import { ServerAddressUdp } from "#net/ServerAddress.js";
|
|
7
7
|
export declare enum ChannelType {
|
|
8
8
|
UDP = "udp",
|
|
9
9
|
BLE = "ble",
|
|
@@ -23,7 +23,7 @@ export interface Channel<T> {
|
|
|
23
23
|
close(): Promise<void>;
|
|
24
24
|
}
|
|
25
25
|
export interface IpNetworkChannel<T> extends Channel<T> {
|
|
26
|
-
networkAddress:
|
|
26
|
+
networkAddress: ServerAddressUdp;
|
|
27
27
|
}
|
|
28
28
|
export declare function isIpNetworkChannel<T>(channel: Channel<T>): channel is IpNetworkChannel<T>;
|
|
29
29
|
//# sourceMappingURL=Channel.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/net/Channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Channel.d.ts","sourceRoot":"","sources":["../../../src/net/Channel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAGzD,oBAAY,WAAW;IACnB,GAAG,QAAQ;IACX,GAAG,QAAQ;IACX,GAAG,QAAQ;CACd;AAED,MAAM,WAAW,OAAO,CAAC,CAAC;IACtB,4CAA4C;IAC5C,cAAc,EAAE,MAAM,CAAC;IAEvB,8DAA8D;IAC9D,UAAU,EAAE,OAAO,CAAC;IAEpB,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;IAEb,IAAI,EAAE,WAAW,CAAC;IAElB,iDAAiD;IACjD,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE7B,kCAAkC;IAClC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB,CAAC,CAAC,CAAE,SAAQ,OAAO,CAAC,CAAC,CAAC;IACnD,cAAc,EAAE,gBAAgB,CAAC;CACpC;AAED,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,IAAI,gBAAgB,CAAC,CAAC,CAAC,CAEzF"}
|
|
@@ -8,16 +8,17 @@ import { Environmental } from "#environment/Environmental.js";
|
|
|
8
8
|
import { Bytes } from "#util/Bytes.js";
|
|
9
9
|
import { BasicSet } from "#util/Set.js";
|
|
10
10
|
import { Channel, ChannelType } from "./Channel.js";
|
|
11
|
+
import { ServerAddress } from "./ServerAddress.js";
|
|
11
12
|
/**
|
|
12
|
-
* A
|
|
13
|
-
* It cannot open new connections.
|
|
13
|
+
* A local network endpoint associated with a specific {@link ServerAddress} for a connectionless protocol.
|
|
14
14
|
*/
|
|
15
|
-
export interface
|
|
16
|
-
onData(listener: (socket: Channel<Bytes>, data: Bytes) => void):
|
|
15
|
+
export interface ConnectionlessTransport {
|
|
16
|
+
onData(listener: (socket: Channel<Bytes>, data: Bytes) => void): ConnectionlessTransport.Listener;
|
|
17
17
|
close(): Promise<void>;
|
|
18
18
|
supports(type: ChannelType, address?: string): boolean;
|
|
19
|
+
openChannel(address: ServerAddress): Promise<Channel<Bytes>>;
|
|
19
20
|
}
|
|
20
|
-
export declare namespace
|
|
21
|
+
export declare namespace ConnectionlessTransport {
|
|
21
22
|
interface Listener {
|
|
22
23
|
close(): Promise<void>;
|
|
23
24
|
}
|
|
@@ -25,9 +26,9 @@ export declare namespace TransportInterface {
|
|
|
25
26
|
/**
|
|
26
27
|
* A collection of {@link TransportInterfaces} managed as a unit.
|
|
27
28
|
*/
|
|
28
|
-
export declare class
|
|
29
|
+
export declare class ConnectionlessTransportSet<T extends ConnectionlessTransport = ConnectionlessTransport> extends BasicSet<T> {
|
|
29
30
|
constructor(...initialInterfaces: T[]);
|
|
30
|
-
static [Environmental.create](env: Environment):
|
|
31
|
+
static [Environmental.create](env: Environment): ConnectionlessTransportSet<ConnectionlessTransport>;
|
|
31
32
|
/**
|
|
32
33
|
* Closes all interfaces.
|
|
33
34
|
*/
|
|
@@ -41,4 +42,4 @@ export declare class TransportInterfaceSet<T extends TransportInterface = Transp
|
|
|
41
42
|
*/
|
|
42
43
|
hasInterfaceFor(type: ChannelType, address?: string): boolean;
|
|
43
44
|
}
|
|
44
|
-
//# sourceMappingURL=
|
|
45
|
+
//# sourceMappingURL=ConnectionlessTransport.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectionlessTransport.d.ts","sourceRoot":"","sources":["../../../src/net/ConnectionlessTransport.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,6BAA6B,CAAC;AAC1D,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACpC,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,uBAAuB,CAAC,QAAQ,CAAC;IAClG,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IACvD,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;CAChE;AAED,yBAAiB,uBAAuB,CAAC;IACrC,UAAiB,QAAQ;QACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KAC1B;CACJ;AAED;;GAEG;AACH,qBAAa,0BAA0B,CACnC,CAAC,SAAS,uBAAuB,GAAG,uBAAuB,CAC7D,SAAQ,QAAQ,CAAC,CAAC,CAAC;gBACL,GAAG,iBAAiB,EAAE,CAAC,EAAE;IAIrC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C;;OAEG;IACG,KAAK;IAOX;;OAEG;IACH,YAAY,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM;IAIhD;;OAEG;IACH,eAAe,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM;CAGtD"}
|
|
@@ -5,13 +5,13 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { Environmental } from "#environment/Environmental.js";
|
|
7
7
|
import { BasicSet } from "#util/Set.js";
|
|
8
|
-
class
|
|
8
|
+
class ConnectionlessTransportSet extends BasicSet {
|
|
9
9
|
constructor(...initialInterfaces) {
|
|
10
10
|
super(...initialInterfaces);
|
|
11
11
|
}
|
|
12
12
|
static [Environmental.create](env) {
|
|
13
|
-
const instance = new
|
|
14
|
-
env.set(
|
|
13
|
+
const instance = new ConnectionlessTransportSet();
|
|
14
|
+
env.set(ConnectionlessTransportSet, instance);
|
|
15
15
|
return instance;
|
|
16
16
|
}
|
|
17
17
|
/**
|
|
@@ -21,6 +21,7 @@ class TransportInterfaceSet extends BasicSet {
|
|
|
21
21
|
for (const transportInterface of this) {
|
|
22
22
|
await transportInterface.close();
|
|
23
23
|
}
|
|
24
|
+
this.clear();
|
|
24
25
|
}
|
|
25
26
|
/**
|
|
26
27
|
* Obtain an interface capable of routing an address.
|
|
@@ -36,6 +37,6 @@ class TransportInterfaceSet extends BasicSet {
|
|
|
36
37
|
}
|
|
37
38
|
}
|
|
38
39
|
export {
|
|
39
|
-
|
|
40
|
+
ConnectionlessTransportSet
|
|
40
41
|
};
|
|
41
|
-
//# sourceMappingURL=
|
|
42
|
+
//# sourceMappingURL=ConnectionlessTransport.js.map
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/net/ConnectionlessTransport.ts"],
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,qBAAqB;AAE9B,SAAS,gBAAgB;AAuBlB,MAAM,mCAEH,SAAY;AAAA,EAClB,eAAe,mBAAwB;AACnC,UAAM,GAAG,iBAAiB;AAAA,EAC9B;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,WAAW,IAAI,2BAA2B;AAChD,QAAI,IAAI,4BAA4B,QAAQ;AAC5C,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,eAAW,sBAAsB,MAAM;AACnC,YAAM,mBAAmB,MAAM;AAAA,IACnC;AACA,SAAK,MAAM;AAAA,EACf;AAAA;AAAA;AAAA;AAAA,EAKA,aAAa,MAAmB,SAAkB;AAC9C,WAAO,KAAK,KAAK,wBAAsB,mBAAmB,SAAS,MAAM,OAAO,CAAC;AAAA,EACrF;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,MAAmB,SAAkB;AACjD,WAAO,KAAK,aAAa,MAAM,OAAO,MAAM;AAAA,EAChD;AACJ;",
|
|
5
|
+
"names": []
|
|
6
|
+
}
|
|
@@ -4,8 +4,8 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { MatterError } from "../MatterError.js";
|
|
7
|
-
import { MaybePromise } from "../util/Promises.js";
|
|
8
|
-
import { UdpChannel, UdpChannelOptions } from "./UdpChannel.js";
|
|
7
|
+
import type { MaybePromise } from "../util/Promises.js";
|
|
8
|
+
import type { UdpChannel, UdpChannelOptions } from "./udp/UdpChannel.js";
|
|
9
9
|
export declare class NetworkError extends MatterError {
|
|
10
10
|
}
|
|
11
11
|
export declare class NoAddressAvailableError extends NetworkError {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Network.d.ts","sourceRoot":"","sources":["../../../src/net/Network.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"Network.d.ts","sourceRoot":"","sources":["../../../src/net/Network.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,KAAK,EAAE,UAAU,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAEzE,qBAAa,YAAa,SAAQ,WAAW;CAAG;AAEhD,qBAAa,uBAAwB,SAAQ,YAAY;CAAG;AAE5D,eAAO,MAAM,oBAAoB,OAAO,CAAC;AAEzC;;;GAGG;AACH,oBAAY,aAAa;IACrB;;OAEG;IACH,WAAW,IAAI;IAEf;;OAEG;IACH,IAAI,IAAI;IAER;;OAEG;IACH,QAAQ,IAAI;IAEZ;;OAEG;IACH,QAAQ,IAAI;IAEZ;;OAEG;IACH,MAAM,IAAI;CACb;AAED,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,aAAa,CAAC;CACxB,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IAClC,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;CAClB,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,gBAAgB,GAAG,uBAAuB,CAAC;AAClF,8BAAsB,OAAO;IACzB,QAAQ,CAAC,gBAAgB,CAAC,aAAa,CAAC,EAAE,gBAAgB,EAAE,GAAG,YAAY,CAAC,gBAAgB,EAAE,CAAC;IAC/F,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,YAAY,CAAC,uBAAuB,GAAG,SAAS,CAAC;IAC1F,QAAQ,CAAC,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC;IAEpE,KAAK;CAGd"}
|
|
@@ -6,11 +6,16 @@
|
|
|
6
6
|
import { Diagnostic } from "#log/Diagnostic.js";
|
|
7
7
|
import { Duration } from "#time/Duration.js";
|
|
8
8
|
import { Timestamp } from "#time/Timestamp.js";
|
|
9
|
-
export type
|
|
9
|
+
export type ServerAddressUdp = {
|
|
10
10
|
type: "udp";
|
|
11
11
|
ip: string;
|
|
12
12
|
port: number;
|
|
13
13
|
};
|
|
14
|
+
export type ServerAddressTcp = {
|
|
15
|
+
type: "tcp";
|
|
16
|
+
ip: string;
|
|
17
|
+
port: number;
|
|
18
|
+
};
|
|
14
19
|
export type ServerAddressBle = {
|
|
15
20
|
type: "ble";
|
|
16
21
|
peripheralAddress: string;
|
|
@@ -21,7 +26,7 @@ export interface Lifespan {
|
|
|
21
26
|
/** Length of lifespan, if known (seconds) */
|
|
22
27
|
ttl: Duration;
|
|
23
28
|
}
|
|
24
|
-
export type ServerAddress = (
|
|
29
|
+
export type ServerAddress = (ServerAddressUdp | ServerAddressTcp | ServerAddressBle) & Partial<Lifespan>;
|
|
25
30
|
export declare function ServerAddress(definition: ServerAddress.Definition): ServerAddress;
|
|
26
31
|
export declare namespace ServerAddress {
|
|
27
32
|
function urlFor(address: ServerAddress): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerAddress.d.ts","sourceRoot":"","sources":["../../../src/net/ServerAddress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"ServerAddress.d.ts","sourceRoot":"","sources":["../../../src/net/ServerAddress.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAG/C,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC3B,IAAI,EAAE,KAAK,CAAC;IACZ,iBAAiB,EAAE,MAAM,CAAC;CAC7B,CAAC;AAEF,MAAM,WAAW,QAAQ;IACrB,0DAA0D;IAC1D,YAAY,EAAE,SAAS,CAAC;IAExB,6CAA6C;IAC7C,GAAG,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,MAAM,aAAa,GAAG,CAAC,gBAAgB,GAAG,gBAAgB,GAAG,gBAAgB,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC,CAAC;AAEzG,wBAAgB,aAAa,CAAC,UAAU,EAAE,aAAa,CAAC,UAAU,GAKzD,aAAa,CACrB;AAED,yBAAiB,aAAa,CAAC;IAC3B,SAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CAYrD;IAED,SAAgB,aAAa,CAAC,OAAO,EAAE,aAAa,cAuBnD;IAED,SAAgB,YAAY,CAAC,OAAO,EAAE,aAAa,GAAG,UAAU,CAE/D;IAED,UAAiB,UAAW,SAAQ,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC;QAC1D,GAAG,CAAC,EAAE,QAAQ,CAAC;KAClB;CACJ"}
|
|
@@ -15,15 +15,30 @@ function ServerAddress(definition) {
|
|
|
15
15
|
}
|
|
16
16
|
((ServerAddress2) => {
|
|
17
17
|
function urlFor(address) {
|
|
18
|
-
|
|
18
|
+
switch (address.type) {
|
|
19
|
+
case "udp":
|
|
20
|
+
case "tcp":
|
|
21
|
+
return `${address.type}://${address.ip}:${address.port}`;
|
|
22
|
+
case "ble":
|
|
23
|
+
return `ble://${address.peripheralAddress}`;
|
|
24
|
+
default:
|
|
25
|
+
return `${address.type}://`;
|
|
26
|
+
}
|
|
19
27
|
}
|
|
20
28
|
ServerAddress2.urlFor = urlFor;
|
|
21
29
|
function diagnosticFor(address) {
|
|
22
30
|
const diagnostic = Array();
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
31
|
+
switch (address.type) {
|
|
32
|
+
case "udp":
|
|
33
|
+
case "tcp":
|
|
34
|
+
diagnostic.push(`${address.type}://`, Diagnostic.strong(address.ip), ":", address.port);
|
|
35
|
+
break;
|
|
36
|
+
case "ble":
|
|
37
|
+
diagnostic.push("ble://", Diagnostic.strong(address.peripheralAddress));
|
|
38
|
+
break;
|
|
39
|
+
default:
|
|
40
|
+
diagnostic.push(`${address.type}://`);
|
|
41
|
+
break;
|
|
27
42
|
}
|
|
28
43
|
if ("ttl" in address && typeof address.ttl === "number") {
|
|
29
44
|
diagnostic.push(" ttl ", Duration.format(address.ttl));
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/net/ServerAddress.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AAEzB,SAAS,eAAe;
|
|
4
|
+
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,kBAAkB;AAC3B,SAAS,gBAAgB;AAEzB,SAAS,eAAe;AA6BjB,SAAS,cAAc,YAAsC;AAChE,SAAO;AAAA,IACH,cAAc;AAAA,IACd,GAAG;AAAA,IACH,KAAK,QAAQ,WAAW,GAAG;AAAA,EAC/B;AACJ;AAAA,CAEO,CAAUA,mBAAV;AACI,WAAS,OAAO,SAAgC;AACnD,YAAQ,QAAQ,MAAM;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AACD,eAAO,GAAG,QAAQ,IAAI,MAAM,QAAQ,EAAE,IAAI,QAAQ,IAAI;AAAA,MAE1D,KAAK;AACD,eAAO,SAAS,QAAQ,iBAAiB;AAAA,MAE7C;AACI,eAAO,GAAI,QAAgB,IAAI;AAAA,IACvC;AAAA,EACJ;AAZO,EAAAA,eAAS;AAcT,WAAS,cAAc,SAAwB;AAClD,UAAM,aAAa,MAAe;AAElC,YAAQ,QAAQ,MAAM;AAAA,MAClB,KAAK;AAAA,MACL,KAAK;AACD,mBAAW,KAAK,GAAG,QAAQ,IAAI,OAAO,WAAW,OAAO,QAAQ,EAAE,GAAG,KAAK,QAAQ,IAAI;AACtF;AAAA,MAEJ,KAAK;AACD,mBAAW,KAAK,UAAU,WAAW,OAAO,QAAQ,iBAAiB,CAAC;AACtE;AAAA,MAEJ;AACI,mBAAW,KAAK,GAAI,QAAgB,IAAI,KAAK;AAC7C;AAAA,IACR;AAEA,QAAI,SAAS,WAAW,OAAO,QAAQ,QAAQ,UAAU;AACrD,iBAAW,KAAK,SAAS,SAAS,OAAO,QAAQ,GAAG,CAAC;AAAA,IACzD;AAEA,WAAO,WAAW,OAAO,GAAG,UAAU;AAAA,EAC1C;AAvBO,EAAAA,eAAS;AAyBT,WAAS,aAAa,SAAoC;AAC7D,WAAO;AAAA,EACX;AAFO,EAAAA,eAAS;AAAA,GAxCH;",
|
|
5
5
|
"names": ["ServerAddress"]
|
|
6
6
|
}
|
package/dist/esm/net/index.d.ts
CHANGED
|
@@ -3,14 +3,12 @@
|
|
|
3
3
|
* Copyright 2022-2025 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
+
export * from "./AppAddress.js";
|
|
6
7
|
export * from "./Channel.js";
|
|
8
|
+
export * from "./ConnectionlessTransport.js";
|
|
7
9
|
export * from "./mock/index.js";
|
|
8
|
-
export * from "./NetInterface.js";
|
|
9
10
|
export * from "./Network.js";
|
|
10
11
|
export * from "./RetrySchedule.js";
|
|
11
12
|
export * from "./ServerAddress.js";
|
|
12
|
-
export * from "./
|
|
13
|
-
export * from "./UdpChannel.js";
|
|
14
|
-
export * from "./UdpInterface.js";
|
|
15
|
-
export * from "./UdpMulticastServer.js";
|
|
13
|
+
export * from "./udp/index.js";
|
|
16
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/net/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/net/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,8BAA8B,CAAC;AAC7C,cAAc,iBAAiB,CAAC;AAChC,cAAc,cAAc,CAAC;AAC7B,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,gBAAgB,CAAC"}
|