@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
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* @license
|
|
3
|
+
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
+
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
import { Diagnostic } from "#log/Diagnostic.js";
|
|
8
|
+
import { NetworkError } from "./Network.js";
|
|
9
|
+
|
|
10
|
+
export class InvalidAppAddress extends NetworkError {}
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* An application network address.
|
|
14
|
+
*
|
|
15
|
+
* This is an OSI layer 7 address representable as an object or URL.
|
|
16
|
+
*/
|
|
17
|
+
export class AppAddress extends URL {
|
|
18
|
+
constructor(definition: AppAddress.Definition) {
|
|
19
|
+
if (typeof definition === "object" && !(definition instanceof URL)) {
|
|
20
|
+
let protocol = definition.appProtocol;
|
|
21
|
+
let host;
|
|
22
|
+
if (definition.tls) {
|
|
23
|
+
protocol += "s";
|
|
24
|
+
}
|
|
25
|
+
if (definition.transport.kind === "unix") {
|
|
26
|
+
protocol += "+unix";
|
|
27
|
+
host = encodeURIComponent(definition.transport.path);
|
|
28
|
+
} else {
|
|
29
|
+
host = definition.transport.host;
|
|
30
|
+
if (definition.transport.port) {
|
|
31
|
+
host = `${host}:${definition.transport.port}`;
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
const path = definition.path ?? "/";
|
|
35
|
+
definition = `${protocol}://${host}${path}`;
|
|
36
|
+
}
|
|
37
|
+
try {
|
|
38
|
+
super(definition);
|
|
39
|
+
} catch (e) {
|
|
40
|
+
if (e instanceof SyntaxError) {
|
|
41
|
+
throw new InvalidAppAddress(`Invalid app address:${e.message}`);
|
|
42
|
+
}
|
|
43
|
+
throw e;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
get [Diagnostic.value]() {
|
|
48
|
+
return this.toString();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
get appProtocol() {
|
|
52
|
+
return this.protocol.replace(/[:+].*$/, "");
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
get isTls() {
|
|
56
|
+
switch (this.appProtocol) {
|
|
57
|
+
case "https":
|
|
58
|
+
case "mqtts":
|
|
59
|
+
case "wss":
|
|
60
|
+
return true;
|
|
61
|
+
|
|
62
|
+
case "mqtt":
|
|
63
|
+
// MQTT over WebSockets over TLS
|
|
64
|
+
return this.protocolModifiers.includes("wss");
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
get protocolModifiers() {
|
|
70
|
+
const segments = this.protocol.replace(/:$/, "").split("+");
|
|
71
|
+
segments.shift();
|
|
72
|
+
return segments;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
get transport(): AppAddress.TransportAddress {
|
|
76
|
+
if (this.protocolModifiers.includes("unix")) {
|
|
77
|
+
return {
|
|
78
|
+
kind: "unix",
|
|
79
|
+
path: decodeURIComponent(this.hostname),
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return {
|
|
84
|
+
kind: "ip",
|
|
85
|
+
host: this.hostname,
|
|
86
|
+
port: this.portNum,
|
|
87
|
+
};
|
|
88
|
+
}
|
|
89
|
+
|
|
90
|
+
get portNum() {
|
|
91
|
+
if (this.port !== "") {
|
|
92
|
+
return Number(this.port);
|
|
93
|
+
}
|
|
94
|
+
return 0;
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
get isWildcardHost() {
|
|
98
|
+
return this.host === "0.0.0.0" || this.host === "::";
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
get isWildcardPort() {
|
|
102
|
+
return this.port === "0";
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
static for(definition: AppAddress.Definition) {
|
|
106
|
+
if (definition instanceof AppAddress) {
|
|
107
|
+
return definition;
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
return new AppAddress(definition);
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
export namespace AppAddress {
|
|
115
|
+
export type Definition = Object | URL | string;
|
|
116
|
+
|
|
117
|
+
export type TransportAddress = IpTransportAddress | UnixSocketTransportAddress;
|
|
118
|
+
|
|
119
|
+
export interface IpTransportAddress {
|
|
120
|
+
kind: "ip";
|
|
121
|
+
host: string;
|
|
122
|
+
port: number;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
export interface UnixSocketTransportAddress {
|
|
126
|
+
kind: "unix";
|
|
127
|
+
path: string;
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
export interface Object {
|
|
131
|
+
appProtocol: string;
|
|
132
|
+
transport: TransportAddress;
|
|
133
|
+
tls?: boolean;
|
|
134
|
+
path?: string;
|
|
135
|
+
}
|
|
136
|
+
}
|
package/src/net/Channel.ts
CHANGED
|
@@ -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
|
import { isObject } from "#util/Type.js";
|
|
8
8
|
|
|
9
9
|
export enum ChannelType {
|
|
@@ -32,7 +32,7 @@ export interface Channel<T> {
|
|
|
32
32
|
}
|
|
33
33
|
|
|
34
34
|
export interface IpNetworkChannel<T> extends Channel<T> {
|
|
35
|
-
networkAddress:
|
|
35
|
+
networkAddress: ServerAddressUdp;
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
export function isIpNetworkChannel<T>(channel: Channel<T>): channel is IpNetworkChannel<T> {
|
|
@@ -9,18 +9,19 @@ import { Environmental } from "#environment/Environmental.js";
|
|
|
9
9
|
import { Bytes } from "#util/Bytes.js";
|
|
10
10
|
import { BasicSet } from "#util/Set.js";
|
|
11
11
|
import { Channel, ChannelType } from "./Channel.js";
|
|
12
|
+
import { ServerAddress } from "./ServerAddress.js";
|
|
12
13
|
|
|
13
14
|
/**
|
|
14
|
-
* A
|
|
15
|
-
* It cannot open new connections.
|
|
15
|
+
* A local network endpoint associated with a specific {@link ServerAddress} for a connectionless protocol.
|
|
16
16
|
*/
|
|
17
|
-
export interface
|
|
18
|
-
onData(listener: (socket: Channel<Bytes>, data: Bytes) => void):
|
|
17
|
+
export interface ConnectionlessTransport {
|
|
18
|
+
onData(listener: (socket: Channel<Bytes>, data: Bytes) => void): ConnectionlessTransport.Listener;
|
|
19
19
|
close(): Promise<void>;
|
|
20
20
|
supports(type: ChannelType, address?: string): boolean;
|
|
21
|
+
openChannel(address: ServerAddress): Promise<Channel<Bytes>>;
|
|
21
22
|
}
|
|
22
23
|
|
|
23
|
-
export namespace
|
|
24
|
+
export namespace ConnectionlessTransport {
|
|
24
25
|
export interface Listener {
|
|
25
26
|
close(): Promise<void>;
|
|
26
27
|
}
|
|
@@ -29,14 +30,16 @@ export namespace TransportInterface {
|
|
|
29
30
|
/**
|
|
30
31
|
* A collection of {@link TransportInterfaces} managed as a unit.
|
|
31
32
|
*/
|
|
32
|
-
export class
|
|
33
|
+
export class ConnectionlessTransportSet<
|
|
34
|
+
T extends ConnectionlessTransport = ConnectionlessTransport,
|
|
35
|
+
> extends BasicSet<T> {
|
|
33
36
|
constructor(...initialInterfaces: T[]) {
|
|
34
37
|
super(...initialInterfaces);
|
|
35
38
|
}
|
|
36
39
|
|
|
37
40
|
static [Environmental.create](env: Environment) {
|
|
38
|
-
const instance = new
|
|
39
|
-
env.set(
|
|
41
|
+
const instance = new ConnectionlessTransportSet();
|
|
42
|
+
env.set(ConnectionlessTransportSet, instance);
|
|
40
43
|
return instance;
|
|
41
44
|
}
|
|
42
45
|
|
|
@@ -47,6 +50,7 @@ export class TransportInterfaceSet<T extends TransportInterface = TransportInter
|
|
|
47
50
|
for (const transportInterface of this) {
|
|
48
51
|
await transportInterface.close();
|
|
49
52
|
}
|
|
53
|
+
this.clear();
|
|
50
54
|
}
|
|
51
55
|
|
|
52
56
|
/**
|
package/src/net/Network.ts
CHANGED
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { MatterError } from "../MatterError.js";
|
|
8
|
-
import { MaybePromise } from "../util/Promises.js";
|
|
9
|
-
import { UdpChannel, UdpChannelOptions } from "./UdpChannel.js";
|
|
8
|
+
import type { MaybePromise } from "../util/Promises.js";
|
|
9
|
+
import type { UdpChannel, UdpChannelOptions } from "./udp/UdpChannel.js";
|
|
10
10
|
|
|
11
11
|
export class NetworkError extends MatterError {}
|
|
12
12
|
|
package/src/net/ServerAddress.ts
CHANGED
|
@@ -9,12 +9,18 @@ import { Duration } from "#time/Duration.js";
|
|
|
9
9
|
import { Timestamp } from "#time/Timestamp.js";
|
|
10
10
|
import { Seconds } from "#time/TimeUnit.js";
|
|
11
11
|
|
|
12
|
-
export type
|
|
12
|
+
export type ServerAddressUdp = {
|
|
13
13
|
type: "udp";
|
|
14
14
|
ip: string;
|
|
15
15
|
port: number;
|
|
16
16
|
};
|
|
17
17
|
|
|
18
|
+
export type ServerAddressTcp = {
|
|
19
|
+
type: "tcp";
|
|
20
|
+
ip: string;
|
|
21
|
+
port: number;
|
|
22
|
+
};
|
|
23
|
+
|
|
18
24
|
export type ServerAddressBle = {
|
|
19
25
|
type: "ble";
|
|
20
26
|
peripheralAddress: string;
|
|
@@ -28,7 +34,7 @@ export interface Lifespan {
|
|
|
28
34
|
ttl: Duration;
|
|
29
35
|
}
|
|
30
36
|
|
|
31
|
-
export type ServerAddress = (
|
|
37
|
+
export type ServerAddress = (ServerAddressUdp | ServerAddressTcp | ServerAddressBle) & Partial<Lifespan>;
|
|
32
38
|
|
|
33
39
|
export function ServerAddress(definition: ServerAddress.Definition) {
|
|
34
40
|
return {
|
|
@@ -40,16 +46,35 @@ export function ServerAddress(definition: ServerAddress.Definition) {
|
|
|
40
46
|
|
|
41
47
|
export namespace ServerAddress {
|
|
42
48
|
export function urlFor(address: ServerAddress): string {
|
|
43
|
-
|
|
49
|
+
switch (address.type) {
|
|
50
|
+
case "udp":
|
|
51
|
+
case "tcp":
|
|
52
|
+
return `${address.type}://${address.ip}:${address.port}`;
|
|
53
|
+
|
|
54
|
+
case "ble":
|
|
55
|
+
return `ble://${address.peripheralAddress}`;
|
|
56
|
+
|
|
57
|
+
default:
|
|
58
|
+
return `${(address as any).type}://`;
|
|
59
|
+
}
|
|
44
60
|
}
|
|
45
61
|
|
|
46
62
|
export function diagnosticFor(address: ServerAddress) {
|
|
47
63
|
const diagnostic = Array<unknown>();
|
|
48
64
|
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
65
|
+
switch (address.type) {
|
|
66
|
+
case "udp":
|
|
67
|
+
case "tcp":
|
|
68
|
+
diagnostic.push(`${address.type}://`, Diagnostic.strong(address.ip), ":", address.port);
|
|
69
|
+
break;
|
|
70
|
+
|
|
71
|
+
case "ble":
|
|
72
|
+
diagnostic.push("ble://", Diagnostic.strong(address.peripheralAddress));
|
|
73
|
+
break;
|
|
74
|
+
|
|
75
|
+
default:
|
|
76
|
+
diagnostic.push(`${(address as any).type}://`);
|
|
77
|
+
break;
|
|
53
78
|
}
|
|
54
79
|
|
|
55
80
|
if ("ttl" in address && typeof address.ttl === "number") {
|
package/src/net/index.ts
CHANGED
|
@@ -4,13 +4,11 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
export * from "./AppAddress.js";
|
|
7
8
|
export * from "./Channel.js";
|
|
9
|
+
export * from "./ConnectionlessTransport.js";
|
|
8
10
|
export * from "./mock/index.js";
|
|
9
|
-
export * from "./NetInterface.js";
|
|
10
11
|
export * from "./Network.js";
|
|
11
12
|
export * from "./RetrySchedule.js";
|
|
12
13
|
export * from "./ServerAddress.js";
|
|
13
|
-
export * from "./
|
|
14
|
-
export * from "./UdpChannel.js";
|
|
15
|
-
export * from "./UdpInterface.js";
|
|
16
|
-
export * from "./UdpMulticastServer.js";
|
|
14
|
+
export * from "./udp/index.js";
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { ChannelType } from "#net/Channel.js";
|
|
8
8
|
import { isIPv4 } from "../../util/Ip.js";
|
|
9
9
|
import { Network, NetworkError, NetworkInterface, NetworkInterfaceDetails } from "../Network.js";
|
|
10
|
-
import { UdpChannelOptions } from "../UdpChannel.js";
|
|
10
|
+
import { UdpChannelOptions } from "../udp/UdpChannel.js";
|
|
11
11
|
import { MockRouter } from "./MockRouter.js";
|
|
12
12
|
import { MockUdpChannel } from "./MockUdpChannel.js";
|
|
13
13
|
import type { NetworkSimulator } from "./NetworkSimulator.js";
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
import { ChannelType } from "#net/Channel.js";
|
|
8
8
|
import { Bytes } from "#util/Bytes.js";
|
|
9
9
|
import { NetworkError } from "../Network.js";
|
|
10
|
-
import { MAX_UDP_MESSAGE_SIZE, UdpChannel, UdpChannelOptions } from "../UdpChannel.js";
|
|
10
|
+
import { MAX_UDP_MESSAGE_SIZE, UdpChannel, UdpChannelOptions } from "../udp/UdpChannel.js";
|
|
11
11
|
import { MockNetwork } from "./MockNetwork.js";
|
|
12
12
|
import { MockRouter } from "./MockRouter.js";
|
|
13
13
|
|
|
@@ -5,8 +5,8 @@
|
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
import { Bytes, MaybePromise } from "#util/index.js";
|
|
8
|
-
import { ChannelType } from "
|
|
9
|
-
import {
|
|
8
|
+
import { ChannelType } from "../Channel.js";
|
|
9
|
+
import { ConnectionlessTransport } from "../ConnectionlessTransport.js";
|
|
10
10
|
|
|
11
11
|
/** @see {@link MatterSpecification.v12.Core} § 4.4.4 */
|
|
12
12
|
export const MAX_UDP_MESSAGE_SIZE = 1280 - 48; // 48 bytes IP and UDP header size for IPv6
|
|
@@ -24,7 +24,7 @@ export interface UdpChannel {
|
|
|
24
24
|
maxPayloadSize: number;
|
|
25
25
|
addMembership(address: string): MaybePromise<void>;
|
|
26
26
|
dropMembership(address: string): MaybePromise<void>;
|
|
27
|
-
onData(listener: UdpChannel.Callback):
|
|
27
|
+
onData(listener: UdpChannel.Callback): ConnectionlessTransport.Listener;
|
|
28
28
|
send(host: string, port: number, data: Bytes): Promise<void>;
|
|
29
29
|
close(): Promise<void>;
|
|
30
30
|
get port(): number;
|
|
@@ -4,15 +4,14 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
|
+
import { Channel, ChannelType, IpNetworkChannel } from "#net/Channel.js";
|
|
8
|
+
import { ConnectionlessTransport } from "#net/ConnectionlessTransport.js";
|
|
9
|
+
import { Network, NetworkError } from "#net/Network.js";
|
|
7
10
|
import { Bytes } from "#util/Bytes.js";
|
|
8
|
-
import {
|
|
9
|
-
import { NetInterface } from "./NetInterface.js";
|
|
10
|
-
import { Network, NetworkError } from "./Network.js";
|
|
11
|
-
import { ServerAddress, ServerAddressIp } from "./ServerAddress.js";
|
|
12
|
-
import { TransportInterface } from "./TransportInterface.js";
|
|
11
|
+
import { ServerAddress, ServerAddressUdp } from "../ServerAddress.js";
|
|
13
12
|
import { UdpChannel } from "./UdpChannel.js";
|
|
14
13
|
|
|
15
|
-
export class UdpInterface implements
|
|
14
|
+
export class UdpInterface implements ConnectionlessTransport {
|
|
16
15
|
readonly #server: UdpChannel;
|
|
17
16
|
|
|
18
17
|
static async create(network: Network, type: "udp4" | "udp6", port?: number, host?: string, netInterface?: string) {
|
|
@@ -41,7 +40,7 @@ export class UdpInterface implements NetInterface {
|
|
|
41
40
|
return Promise.resolve(new UdpConnection(this.#server, ip, port));
|
|
42
41
|
}
|
|
43
42
|
|
|
44
|
-
onData(listener: (channel: Channel<Bytes>, messageBytes: Bytes) => void):
|
|
43
|
+
onData(listener: (channel: Channel<Bytes>, messageBytes: Bytes) => void): ConnectionlessTransport.Listener {
|
|
45
44
|
return this.#server.onData((_netInterface, peerHost, peerPort, data) =>
|
|
46
45
|
listener(new UdpConnection(this.#server, peerHost, peerPort), data),
|
|
47
46
|
);
|
|
@@ -89,7 +88,7 @@ export class UdpConnection implements IpNetworkChannel<Bytes> {
|
|
|
89
88
|
return `${this.type}://[${this.#peerAddress}]:${this.#peerPort}`;
|
|
90
89
|
}
|
|
91
90
|
|
|
92
|
-
get networkAddress():
|
|
91
|
+
get networkAddress(): ServerAddressUdp {
|
|
93
92
|
return { type: "udp", ip: this.#peerAddress, port: this.#peerPort };
|
|
94
93
|
}
|
|
95
94
|
|
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
import { MatterAggregateError } from "#MatterError.js";
|
|
8
8
|
import { Minutes } from "#time/TimeUnit.js";
|
|
9
9
|
import { Bytes } from "#util/Bytes.js";
|
|
10
|
-
import { Logger } from "
|
|
11
|
-
import { Cache } from "
|
|
12
|
-
import { asError } from "
|
|
13
|
-
import { isIPv4 } from "
|
|
14
|
-
import { Network, NoAddressAvailableError } from "
|
|
10
|
+
import { Logger } from "../../log/Logger.js";
|
|
11
|
+
import { Cache } from "../../util/Cache.js";
|
|
12
|
+
import { asError } from "../../util/Error.js";
|
|
13
|
+
import { isIPv4 } from "../../util/Ip.js";
|
|
14
|
+
import { Network, NoAddressAvailableError } from "../Network.js";
|
|
15
15
|
import { UdpChannel } from "./UdpChannel.js";
|
|
16
16
|
|
|
17
17
|
const logger = Logger.get("UdpMulticastServer");
|
package/src/time/Duration.ts
CHANGED
|
@@ -71,6 +71,9 @@ export namespace Duration {
|
|
|
71
71
|
export function format<T extends Duration | undefined>(
|
|
72
72
|
duration: T,
|
|
73
73
|
): T extends undefined ? string | undefined : string {
|
|
74
|
+
if (duration === undefined) {
|
|
75
|
+
return undefined as T extends undefined ? string | undefined : string;
|
|
76
|
+
}
|
|
74
77
|
let ms = duration as number;
|
|
75
78
|
|
|
76
79
|
if (typeof ms !== "number" || !Number.isFinite(ms)) {
|
|
@@ -177,5 +180,9 @@ export namespace Duration {
|
|
|
177
180
|
}
|
|
178
181
|
|
|
179
182
|
function toPrecision(number: number, precision: number) {
|
|
180
|
-
|
|
183
|
+
// Remove trailing zeros after a non-zero decimal digit, then remove any trailing '.0'
|
|
184
|
+
return number
|
|
185
|
+
.toPrecision(precision)
|
|
186
|
+
.replace(/(\.\d*?[1-9])0+$/, "$1")
|
|
187
|
+
.replace(/\.0+$/, "");
|
|
181
188
|
}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { Environment } from "#environment/Environment.js";
|
|
7
|
-
import { Environmental } from "#environment/Environmental.js";
|
|
8
|
-
import { Bytes } from "#util/Bytes.js";
|
|
9
|
-
import { Channel } from "./Channel.js";
|
|
10
|
-
import { ServerAddress } from "./ServerAddress.js";
|
|
11
|
-
import { TransportInterface, TransportInterfaceSet } from "./TransportInterface.js";
|
|
12
|
-
/**
|
|
13
|
-
* A Network interface enhances a TransportInterface with the ability to open a channel to a remote server.
|
|
14
|
-
*/
|
|
15
|
-
export interface NetInterface extends TransportInterface {
|
|
16
|
-
openChannel(address: ServerAddress): Promise<Channel<Bytes>>;
|
|
17
|
-
}
|
|
18
|
-
export declare function isNetworkInterface(obj: TransportInterface | NetInterface): obj is NetInterface;
|
|
19
|
-
/**
|
|
20
|
-
* A collection of {@link NetInterfaces} managed as a unit.
|
|
21
|
-
*/
|
|
22
|
-
export declare class NetInterfaceSet extends TransportInterfaceSet<NetInterface> {
|
|
23
|
-
static [Environmental.create](env: Environment): NetInterfaceSet;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=NetInterface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NetInterface.d.ts","sourceRoot":"","sources":["../../../src/net/NetInterface.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,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACpD,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;CAChE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB,GAAG,YAAY,GAAG,GAAG,IAAI,YAAY,CAE9F;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,qBAAqB,CAAC,YAAY,CAAC;WACpD,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;CAK1D"}
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
var __defProp = Object.defineProperty;
|
|
3
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
-
var __export = (target, all) => {
|
|
7
|
-
for (var name in all)
|
|
8
|
-
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
-
};
|
|
10
|
-
var __copyProps = (to, from, except, desc) => {
|
|
11
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
-
for (let key of __getOwnPropNames(from))
|
|
13
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
-
}
|
|
16
|
-
return to;
|
|
17
|
-
};
|
|
18
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
-
var NetInterface_exports = {};
|
|
20
|
-
__export(NetInterface_exports, {
|
|
21
|
-
NetInterfaceSet: () => NetInterfaceSet,
|
|
22
|
-
isNetworkInterface: () => isNetworkInterface
|
|
23
|
-
});
|
|
24
|
-
module.exports = __toCommonJS(NetInterface_exports);
|
|
25
|
-
var import_Environmental = require("#environment/Environmental.js");
|
|
26
|
-
var import_TransportInterface = require("./TransportInterface.js");
|
|
27
|
-
/**
|
|
28
|
-
* @license
|
|
29
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
30
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
31
|
-
*/
|
|
32
|
-
function isNetworkInterface(obj) {
|
|
33
|
-
return "openChannel" in obj;
|
|
34
|
-
}
|
|
35
|
-
class NetInterfaceSet extends import_TransportInterface.TransportInterfaceSet {
|
|
36
|
-
static [import_Environmental.Environmental.create](env) {
|
|
37
|
-
const instance = new NetInterfaceSet();
|
|
38
|
-
env.set(NetInterfaceSet, instance);
|
|
39
|
-
return instance;
|
|
40
|
-
}
|
|
41
|
-
}
|
|
42
|
-
//# sourceMappingURL=NetInterface.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/net/NetInterface.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,2BAA8B;AAI9B,gCAA0D;AAX1D;AAAA;AAAA;AAAA;AAAA;AAoBO,SAAS,mBAAmB,KAA6D;AAC5F,SAAO,iBAAiB;AAC5B;AAKO,MAAM,wBAAwB,gDAAoC;AAAA,EACrE,QAAiB,mCAAc,MAAM,EAAE,KAAkB;AACrD,UAAM,WAAW,IAAI,gBAAgB;AACrC,QAAI,IAAI,iBAAiB,QAAQ;AACjC,WAAO;AAAA,EACX;AACJ;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TransportInterface.d.ts","sourceRoot":"","sources":["../../../src/net/TransportInterface.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;AAEpD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC;IAC7F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1D;AAED,yBAAiB,kBAAkB,CAAC;IAChC,UAAiB,QAAQ;QACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KAC1B;CACJ;AAED;;GAEG;AACH,qBAAa,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;gBACzF,GAAG,iBAAiB,EAAE,CAAC,EAAE;IAIrC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C;;OAEG;IACG,KAAK;IAMX;;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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/net/TransportInterface.ts"],
|
|
4
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,2BAA8B;AAE9B,iBAAyB;AATzB;AAAA;AAAA;AAAA;AAAA;AA+BO,MAAM,8BAAiF,oBAAY;AAAA,EACtG,eAAe,mBAAwB;AACnC,UAAM,GAAG,iBAAiB;AAAA,EAC9B;AAAA,EAEA,QAAQ,mCAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,WAAW,IAAI,sBAAsB;AAC3C,QAAI,IAAI,uBAAuB,QAAQ;AACvC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,eAAW,sBAAsB,MAAM;AACnC,YAAM,mBAAmB,MAAM;AAAA,IACnC;AAAA,EACJ;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
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UdpChannel.d.ts","sourceRoot":"","sources":["../../../src/net/UdpChannel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,aAAa,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC;IACnE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1D;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,QAAQ;QACrB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;KAChG;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UdpInterface.d.ts","sourceRoot":"","sources":["../../../src/net/UdpInterface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,YAAa,YAAW,YAAY;;WAGhC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;gBAMpG,MAAM,EAAE,UAAU;IAI9B,SAAS,KAAK,MAAM,eAEnB;IAED,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;IAIrC,WAAW,CAAC,OAAO,EAAE,aAAa;IAQxC,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,KAAK,KAAK,IAAI,GAAG,kBAAkB,CAAC,QAAQ;IAMrG,IAAI,IAAI,WAEP;IAED,KAAK;IAIL,aAAa,CAAC,OAAO,EAAE,MAAM;IAI7B,cAAc,CAAC,OAAO,EAAE,MAAM;CAGjC;AAED,qBAAa,aAAc,YAAW,gBAAgB,CAAC,KAAK,CAAC;;IACzD,QAAQ,CAAC,UAAU,SAAS;IAC5B,QAAQ,CAAC,IAAI,mBAAmB;gBAKpB,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAMrE,IAAI,cAAc,WAEjB;IAED,IAAI,CAAC,IAAI,EAAE,KAAK;IAIhB,IAAI,IAAI,WAEP;IAED,IAAI,cAAc,IAAI,eAAe,CAEpC;IAEK,KAAK;CAGd"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UdpMulticastServer.d.ts","sourceRoot":"","sources":["../../../src/net/UdpMulticastServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC,OAAO,EAAE,OAAO,EAA2B,MAAM,cAAc,CAAC;AAKhE,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,kBAAkB;IAsDvB,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS;WA3DhC,MAAM,CAAC,EAChB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,OAAO,GACV,EAAE,yBAAyB;IAuC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAKhC;IAEF,OAAO;IAUP,IAAI,YAAY,YAEf;IAED,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI;IAiBjF,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;YA+C1D,sBAAsB;IAQ9B,KAAK;CAKd"}
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { Environment } from "#environment/Environment.js";
|
|
7
|
-
import { Environmental } from "#environment/Environmental.js";
|
|
8
|
-
import { Bytes } from "#util/Bytes.js";
|
|
9
|
-
import { Channel } from "./Channel.js";
|
|
10
|
-
import { ServerAddress } from "./ServerAddress.js";
|
|
11
|
-
import { TransportInterface, TransportInterfaceSet } from "./TransportInterface.js";
|
|
12
|
-
/**
|
|
13
|
-
* A Network interface enhances a TransportInterface with the ability to open a channel to a remote server.
|
|
14
|
-
*/
|
|
15
|
-
export interface NetInterface extends TransportInterface {
|
|
16
|
-
openChannel(address: ServerAddress): Promise<Channel<Bytes>>;
|
|
17
|
-
}
|
|
18
|
-
export declare function isNetworkInterface(obj: TransportInterface | NetInterface): obj is NetInterface;
|
|
19
|
-
/**
|
|
20
|
-
* A collection of {@link NetInterfaces} managed as a unit.
|
|
21
|
-
*/
|
|
22
|
-
export declare class NetInterfaceSet extends TransportInterfaceSet<NetInterface> {
|
|
23
|
-
static [Environmental.create](env: Environment): NetInterfaceSet;
|
|
24
|
-
}
|
|
25
|
-
//# sourceMappingURL=NetInterface.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"NetInterface.d.ts","sourceRoot":"","sources":["../../../src/net/NetInterface.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,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAC;AAEpF;;GAEG;AACH,MAAM,WAAW,YAAa,SAAQ,kBAAkB;IACpD,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;CAChE;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,kBAAkB,GAAG,YAAY,GAAG,GAAG,IAAI,YAAY,CAE9F;AAED;;GAEG;AACH,qBAAa,eAAgB,SAAQ,qBAAqB,CAAC,YAAY,CAAC;WACpD,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;CAK1D"}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* @license
|
|
3
|
-
* Copyright 2022-2025 Matter.js Authors
|
|
4
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
5
|
-
*/
|
|
6
|
-
import { Environmental } from "#environment/Environmental.js";
|
|
7
|
-
import { TransportInterfaceSet } from "./TransportInterface.js";
|
|
8
|
-
function isNetworkInterface(obj) {
|
|
9
|
-
return "openChannel" in obj;
|
|
10
|
-
}
|
|
11
|
-
class NetInterfaceSet extends TransportInterfaceSet {
|
|
12
|
-
static [Environmental.create](env) {
|
|
13
|
-
const instance = new NetInterfaceSet();
|
|
14
|
-
env.set(NetInterfaceSet, instance);
|
|
15
|
-
return instance;
|
|
16
|
-
}
|
|
17
|
-
}
|
|
18
|
-
export {
|
|
19
|
-
NetInterfaceSet,
|
|
20
|
-
isNetworkInterface
|
|
21
|
-
};
|
|
22
|
-
//# sourceMappingURL=NetInterface.js.map
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/net/NetInterface.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,qBAAqB;AAI9B,SAA6B,6BAA6B;AASnD,SAAS,mBAAmB,KAA6D;AAC5F,SAAO,iBAAiB;AAC5B;AAKO,MAAM,wBAAwB,sBAAoC;AAAA,EACrE,QAAiB,cAAc,MAAM,EAAE,KAAkB;AACrD,UAAM,WAAW,IAAI,gBAAgB;AACrC,QAAI,IAAI,iBAAiB,QAAQ;AACjC,WAAO;AAAA,EACX;AACJ;",
|
|
5
|
-
"names": []
|
|
6
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TransportInterface.d.ts","sourceRoot":"","sources":["../../../src/net/TransportInterface.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;AAEpD;;;GAGG;AACH,MAAM,WAAW,kBAAkB;IAC/B,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,kBAAkB,CAAC,QAAQ,CAAC;IAC7F,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1D;AAED,yBAAiB,kBAAkB,CAAC;IAChC,UAAiB,QAAQ;QACrB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;KAC1B;CACJ;AAED;;GAEG;AACH,qBAAa,qBAAqB,CAAC,CAAC,SAAS,kBAAkB,GAAG,kBAAkB,CAAE,SAAQ,QAAQ,CAAC,CAAC,CAAC;gBACzF,GAAG,iBAAiB,EAAE,CAAC,EAAE;IAIrC,MAAM,CAAC,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,WAAW;IAM9C;;OAEG;IACG,KAAK;IAMX;;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"}
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../../src/net/TransportInterface.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,SAAS,qBAAqB;AAE9B,SAAS,gBAAgB;AAsBlB,MAAM,8BAAiF,SAAY;AAAA,EACtG,eAAe,mBAAwB;AACnC,UAAM,GAAG,iBAAiB;AAAA,EAC9B;AAAA,EAEA,QAAQ,cAAc,MAAM,EAAE,KAAkB;AAC5C,UAAM,WAAW,IAAI,sBAAsB;AAC3C,QAAI,IAAI,uBAAuB,QAAQ;AACvC,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,MAAM,QAAQ;AACV,eAAW,sBAAsB,MAAM;AACnC,YAAM,mBAAmB,MAAM;AAAA,IACnC;AAAA,EACJ;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
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UdpChannel.d.ts","sourceRoot":"","sources":["../../../src/net/UdpChannel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,wDAAwD;AACxD,eAAO,MAAM,oBAAoB,QAAY,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG,MAAM,CAAC;AAE5C,MAAM,WAAW,iBAAiB;IAC9B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,IAAI,EAAE,aAAa,CAAC;IACpB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACnD,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IACpD,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC;IACnE,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC7D,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,IAAI,MAAM,CAAC;IACnB,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1D;AAED,yBAAiB,UAAU,CAAC;IACxB,UAAiB,QAAQ;QACrB,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,GAAG,IAAI,CAAC;KAChG;CACJ"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UdpInterface.d.ts","sourceRoot":"","sources":["../../../src/net/UdpInterface.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AACjD,OAAO,EAAE,OAAO,EAAgB,MAAM,cAAc,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACpE,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAC7D,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAE7C,qBAAa,YAAa,YAAW,YAAY;;WAGhC,MAAM,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,EAAE,YAAY,CAAC,EAAE,MAAM;gBAMpG,MAAM,EAAE,UAAU;IAI9B,SAAS,KAAK,MAAM,eAEnB;IAED,QAAQ,CAAC,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM;IAIrC,WAAW,CAAC,OAAO,EAAE,aAAa;IAQxC,MAAM,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,YAAY,EAAE,KAAK,KAAK,IAAI,GAAG,kBAAkB,CAAC,QAAQ;IAMrG,IAAI,IAAI,WAEP;IAED,KAAK;IAIL,aAAa,CAAC,OAAO,EAAE,MAAM;IAI7B,cAAc,CAAC,OAAO,EAAE,MAAM;CAGjC;AAED,qBAAa,aAAc,YAAW,gBAAgB,CAAC,KAAK,CAAC;;IACzD,QAAQ,CAAC,UAAU,SAAS;IAC5B,QAAQ,CAAC,IAAI,mBAAmB;gBAKpB,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM;IAMrE,IAAI,cAAc,WAEjB;IAED,IAAI,CAAC,IAAI,EAAE,KAAK;IAIhB,IAAI,IAAI,WAEP;IAED,IAAI,cAAc,IAAI,eAAe,CAEpC;IAEK,KAAK;CAGd"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UdpMulticastServer.d.ts","sourceRoot":"","sources":["../../../src/net/UdpMulticastServer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAKvC,OAAO,EAAE,OAAO,EAA2B,MAAM,cAAc,CAAC;AAKhE,MAAM,WAAW,yBAAyB;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,oBAAoB,EAAE,MAAM,CAAC;IAC7B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,qBAAa,kBAAkB;IAsDvB,QAAQ,CAAC,OAAO,EAAE,OAAO;IACzB,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,oBAAoB;IACrC,OAAO,CAAC,QAAQ,CAAC,aAAa;IAC9B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,QAAQ,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS;WA3DhC,MAAM,CAAC,EAChB,YAAY,EACZ,oBAAoB,EACpB,oBAAoB,EACpB,aAAa,EACb,OAAO,GACV,EAAE,yBAAyB;IAuC5B,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAKhC;IAEF,OAAO;IAUP,IAAI,YAAY,YAEf;IAED,SAAS,CAAC,QAAQ,EAAE,CAAC,OAAO,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,KAAK,IAAI;IAiBjF,IAAI,CAAC,OAAO,EAAE,KAAK,EAAE,YAAY,CAAC,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,MAAM;YA+C1D,sBAAsB;IAQ9B,KAAK;CAKd"}
|