@matter/react-native 0.17.0-alpha.0-20260507-059f7763b → 0.17.0-alpha.0-20260508-29ff5ae9e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (123) hide show
  1. package/package.json +4 -4
  2. package/dist/cjs/ble/BleScanner.d.ts +0 -16
  3. package/dist/cjs/ble/BleScanner.d.ts.map +0 -1
  4. package/dist/cjs/ble/BleScanner.js +0 -38
  5. package/dist/cjs/ble/BleScanner.js.map +0 -6
  6. package/dist/cjs/ble/ReactNativeBle.d.ts +0 -16
  7. package/dist/cjs/ble/ReactNativeBle.d.ts.map +0 -1
  8. package/dist/cjs/ble/ReactNativeBle.js +0 -58
  9. package/dist/cjs/ble/ReactNativeBle.js.map +0 -6
  10. package/dist/cjs/ble/ReactNativeBleChannel.d.ts +0 -36
  11. package/dist/cjs/ble/ReactNativeBleChannel.d.ts.map +0 -1
  12. package/dist/cjs/ble/ReactNativeBleChannel.js +0 -329
  13. package/dist/cjs/ble/ReactNativeBleChannel.js.map +0 -6
  14. package/dist/cjs/ble/ReactNativeBleClient.d.ts +0 -30
  15. package/dist/cjs/ble/ReactNativeBleClient.d.ts.map +0 -1
  16. package/dist/cjs/ble/ReactNativeBleClient.js +0 -156
  17. package/dist/cjs/ble/ReactNativeBleClient.js.map +0 -6
  18. package/dist/cjs/ble/index.d.ts +0 -10
  19. package/dist/cjs/ble/index.d.ts.map +0 -1
  20. package/dist/cjs/ble/index.js +0 -27
  21. package/dist/cjs/ble/index.js.map +0 -6
  22. package/dist/cjs/crypto/ReactNativeCrypto.d.ts +0 -14
  23. package/dist/cjs/crypto/ReactNativeCrypto.d.ts.map +0 -1
  24. package/dist/cjs/crypto/ReactNativeCrypto.js +0 -57
  25. package/dist/cjs/crypto/ReactNativeCrypto.js.map +0 -6
  26. package/dist/cjs/crypto/index.d.ts +0 -7
  27. package/dist/cjs/crypto/index.d.ts.map +0 -1
  28. package/dist/cjs/crypto/index.js +0 -24
  29. package/dist/cjs/crypto/index.js.map +0 -6
  30. package/dist/cjs/environment/ReactNativeEnvironment.d.ts +0 -16
  31. package/dist/cjs/environment/ReactNativeEnvironment.d.ts.map +0 -1
  32. package/dist/cjs/environment/ReactNativeEnvironment.js +0 -64
  33. package/dist/cjs/environment/ReactNativeEnvironment.js.map +0 -6
  34. package/dist/cjs/environment/index.d.ts +0 -8
  35. package/dist/cjs/environment/index.d.ts.map +0 -1
  36. package/dist/cjs/environment/index.js +0 -25
  37. package/dist/cjs/environment/index.js.map +0 -6
  38. package/dist/cjs/environment/register.d.ts +0 -7
  39. package/dist/cjs/environment/register.d.ts.map +0 -1
  40. package/dist/cjs/environment/register.js +0 -14
  41. package/dist/cjs/environment/register.js.map +0 -6
  42. package/dist/cjs/index.d.ts +0 -11
  43. package/dist/cjs/index.d.ts.map +0 -1
  44. package/dist/cjs/index.js +0 -28
  45. package/dist/cjs/index.js.map +0 -6
  46. package/dist/cjs/net/NetworkReactNative.d.ts +0 -22
  47. package/dist/cjs/net/NetworkReactNative.d.ts.map +0 -1
  48. package/dist/cjs/net/NetworkReactNative.js +0 -179
  49. package/dist/cjs/net/NetworkReactNative.js.map +0 -6
  50. package/dist/cjs/net/TcpConnectionReactNative.d.ts +0 -26
  51. package/dist/cjs/net/TcpConnectionReactNative.d.ts.map +0 -1
  52. package/dist/cjs/net/TcpConnectionReactNative.js +0 -148
  53. package/dist/cjs/net/TcpConnectionReactNative.js.map +0 -6
  54. package/dist/cjs/net/TcpListenerReactNative.d.ts +0 -19
  55. package/dist/cjs/net/TcpListenerReactNative.d.ts.map +0 -1
  56. package/dist/cjs/net/TcpListenerReactNative.js +0 -102
  57. package/dist/cjs/net/TcpListenerReactNative.js.map +0 -6
  58. package/dist/cjs/net/UdpSocketReactNative.d.ts +0 -40
  59. package/dist/cjs/net/UdpSocketReactNative.d.ts.map +0 -1
  60. package/dist/cjs/net/UdpSocketReactNative.js +0 -194
  61. package/dist/cjs/net/UdpSocketReactNative.js.map +0 -6
  62. package/dist/cjs/net/index.d.ts +0 -10
  63. package/dist/cjs/net/index.d.ts.map +0 -1
  64. package/dist/cjs/net/index.js +0 -39
  65. package/dist/cjs/net/index.js.map +0 -6
  66. package/dist/cjs/net/react-native-tcp-socket.d.js +0 -2
  67. package/dist/cjs/net/react-native-tcp-socket.d.js.map +0 -6
  68. package/dist/cjs/net/react-native-tcp-socket.d.ts +0 -71
  69. package/dist/cjs/package.json +0 -6
  70. package/dist/cjs/storage/ReactNativeWebStorageDriver.d.ts +0 -23
  71. package/dist/cjs/storage/ReactNativeWebStorageDriver.d.ts.map +0 -1
  72. package/dist/cjs/storage/ReactNativeWebStorageDriver.js +0 -42
  73. package/dist/cjs/storage/ReactNativeWebStorageDriver.js.map +0 -6
  74. package/dist/cjs/storage/ReactNativeWebStorageDriverV2.d.ts +0 -22
  75. package/dist/cjs/storage/ReactNativeWebStorageDriverV2.d.ts.map +0 -1
  76. package/dist/cjs/storage/ReactNativeWebStorageDriverV2.js +0 -108
  77. package/dist/cjs/storage/ReactNativeWebStorageDriverV2.js.map +0 -6
  78. package/dist/cjs/storage/index.d.ts +0 -18
  79. package/dist/cjs/storage/index.d.ts.map +0 -1
  80. package/dist/cjs/storage/index.js +0 -37
  81. package/dist/cjs/storage/index.js.map +0 -6
  82. package/dist/esm/ble/BleScanner.js +0 -18
  83. package/dist/esm/ble/BleScanner.js.map +0 -6
  84. package/dist/esm/ble/ReactNativeBle.js +0 -38
  85. package/dist/esm/ble/ReactNativeBle.js.map +0 -6
  86. package/dist/esm/ble/ReactNativeBleChannel.js +0 -321
  87. package/dist/esm/ble/ReactNativeBleChannel.js.map +0 -6
  88. package/dist/esm/ble/ReactNativeBleClient.js +0 -136
  89. package/dist/esm/ble/ReactNativeBleClient.js.map +0 -6
  90. package/dist/esm/ble/index.js +0 -10
  91. package/dist/esm/ble/index.js.map +0 -6
  92. package/dist/esm/crypto/ReactNativeCrypto.js +0 -27
  93. package/dist/esm/crypto/ReactNativeCrypto.js.map +0 -6
  94. package/dist/esm/crypto/index.js +0 -7
  95. package/dist/esm/crypto/index.js.map +0 -6
  96. package/dist/esm/environment/ReactNativeEnvironment.js +0 -44
  97. package/dist/esm/environment/ReactNativeEnvironment.js.map +0 -6
  98. package/dist/esm/environment/index.js +0 -8
  99. package/dist/esm/environment/index.js.map +0 -6
  100. package/dist/esm/environment/register.js +0 -13
  101. package/dist/esm/environment/register.js.map +0 -6
  102. package/dist/esm/index.js +0 -11
  103. package/dist/esm/index.js.map +0 -6
  104. package/dist/esm/net/NetworkReactNative.js +0 -158
  105. package/dist/esm/net/NetworkReactNative.js.map +0 -6
  106. package/dist/esm/net/TcpConnectionReactNative.js +0 -135
  107. package/dist/esm/net/TcpConnectionReactNative.js.map +0 -6
  108. package/dist/esm/net/TcpListenerReactNative.js +0 -88
  109. package/dist/esm/net/TcpListenerReactNative.js.map +0 -6
  110. package/dist/esm/net/UdpSocketReactNative.js +0 -174
  111. package/dist/esm/net/UdpSocketReactNative.js.map +0 -6
  112. package/dist/esm/net/index.js +0 -18
  113. package/dist/esm/net/index.js.map +0 -6
  114. package/dist/esm/net/react-native-tcp-socket.d.js +0 -1
  115. package/dist/esm/net/react-native-tcp-socket.d.js.map +0 -6
  116. package/dist/esm/net/react-native-tcp-socket.d.ts +0 -71
  117. package/dist/esm/package.json +0 -6
  118. package/dist/esm/storage/ReactNativeWebStorageDriver.js +0 -22
  119. package/dist/esm/storage/ReactNativeWebStorageDriver.js.map +0 -6
  120. package/dist/esm/storage/ReactNativeWebStorageDriverV2.js +0 -78
  121. package/dist/esm/storage/ReactNativeWebStorageDriverV2.js.map +0 -6
  122. package/dist/esm/storage/index.js +0 -16
  123. package/dist/esm/storage/index.js.map +0 -6
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/environment/ReactNativeEnvironment.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,sBAAsB;AAC/B,SAAS,aAAa,SAAS,sBAAuC;AACtE,SAAS,WAAW;AACpB,SAAS,0BAA0B;AACnC,SAAS,mCAAmC;AAOrC,SAAS,yBAAyB;AACrC,QAAM,MAAM,IAAI,YAAY,SAAS;AAErC,gBAAc,GAAG;AACjB,mBAAiB,GAAG;AACpB,mBAAiB,GAAG;AACpB,eAAa,GAAG;AAEhB,SAAO;AACX;AAEA,SAAS,cAAc,KAAkB;AACrC,QAAM,OAAO,IAAI;AAGjB,OAAK,eAAe,YAAY,IAAI,CAAC;AACzC;AAEA,SAAS,iBAAiB,KAAkB;AACxC,QAAM,UAAU,IAAI,IAAI,cAAc;AACtC,UAAQ,eAAe,2BAA2B;AAClD,UAAQ,gBAAgB;AAC5B;AAEA,SAAS,iBAAiB,KAAkB;AACxC,MAAI,IAAI,SAAS,IAAI,mBAAmB,CAAC;AAC7C;AAEA,SAAS,aAAa,KAAkB;AACpC,MAAI,IAAI,KAAK,IAAI,eAAe,CAAC;AACrC;AAEO,SAAS,YAAY,MAAuB;AAC/C,QAAM,UAAU,KAAK,IAAI,eAAe,SAAS;AAEjD,SAAO;AAAA,IACH,aAAa;AAAA,EACjB;AACJ;",
5
- "names": []
6
- }
@@ -1,8 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import "./register.js";
7
- export * from "./ReactNativeEnvironment.js";
8
- //# sourceMappingURL=index.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/environment/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,OAAO;AAEP,cAAc;",
5
- "names": []
6
- }
@@ -1,13 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Boot, Environment } from "@matter/general";
7
- import { ReactNativeEnvironment } from "./ReactNativeEnvironment.js";
8
- import { polyfill } from "react-native-polyfill-globals/src/encoding";
9
- polyfill();
10
- Boot.init(() => {
11
- Environment.default = ReactNativeEnvironment();
12
- });
13
- //# sourceMappingURL=register.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/environment/register.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,MAAM,mBAAmB;AAClC,SAAS,8BAA8B;AAIvC,SAAS,gBAAgB;AAEzB,SAAS;AAET,KAAK,KAAK,MAAM;AACZ,cAAY,UAAU,uBAAuB;AACjD,CAAC;",
5
- "names": []
6
- }
package/dist/esm/index.js DELETED
@@ -1,11 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export * from "./ble/index.js";
7
- export * from "./crypto/index.js";
8
- export * from "./environment/index.js";
9
- export * from "./net/index.js";
10
- export * from "./storage/index.js";
11
- //# sourceMappingURL=index.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../src/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
- "names": []
6
- }
@@ -1,158 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import dgram from "react-native-udp";
7
- global.dgram = dgram;
8
- const rnDGramCreateSocket = dgram.createSocket;
9
- dgram.createSocket = (...args) => {
10
- const socket = rnDGramCreateSocket(...args);
11
- socket.setMulticastInterface = () => {
12
- };
13
- return socket;
14
- };
15
- import {
16
- AsyncCache,
17
- InterfaceType,
18
- isIPv6,
19
- Logger,
20
- Minutes,
21
- Network,
22
- NetworkError,
23
- onSameNetwork
24
- } from "@matter/general";
25
- import { fetch as fetchNetworkInfo } from "@react-native-community/netinfo";
26
- import { connectReactNativeTcp } from "./TcpConnectionReactNative.js";
27
- import { TcpListenerReactNative } from "./TcpListenerReactNative.js";
28
- import { UdpSocketReactNative } from "./UdpSocketReactNative.js";
29
- const logger = Logger.get("NetworkReactNative");
30
- async function networkInterfaces() {
31
- const netInfo = [await fetchNetworkInfo("wifi"), await fetchNetworkInfo("ethernet")];
32
- const networkInterfaces2 = {};
33
- netInfo.forEach(({ type, isConnected, details }) => {
34
- if (!details || !isConnected) return;
35
- const ipAddress = "ipAddress" in details ? details.ipAddress : void 0;
36
- const subnet = "subnet" in details ? details.subnet : void 0;
37
- if (!ipAddress || !subnet) return;
38
- networkInterfaces2[type] = [
39
- {
40
- address: ipAddress,
41
- family: isIPv6(ipAddress) ? "IPv6" : "IPv4",
42
- netmask: subnet,
43
- internal: false
44
- }
45
- ];
46
- });
47
- return networkInterfaces2;
48
- }
49
- class NetworkReactNative extends Network {
50
- static async getMulticastInterfaceIpv4(netInterface) {
51
- const netInterfaceInfo = (await networkInterfaces())[netInterface];
52
- if (netInterfaceInfo === void 0) throw new NetworkError(`Unknown interface: ${netInterface}`);
53
- for (const { address, family } of netInterfaceInfo) {
54
- if (family === "IPv4") {
55
- return address;
56
- }
57
- }
58
- return void 0;
59
- }
60
- static async getMembershipMulticastInterfaces(netInterface, ipv4) {
61
- if (ipv4) {
62
- return [void 0];
63
- } else {
64
- let networkInterfaceEntries = Object.entries(await networkInterfaces());
65
- if (netInterface !== void 0) {
66
- networkInterfaceEntries = networkInterfaceEntries.filter(([name]) => name === netInterface);
67
- }
68
- const multicastInterfaces = networkInterfaceEntries.flatMap(([netInterface2, netInterfaceInfo]) => {
69
- if (netInterfaceInfo === void 0) return [];
70
- const zone = netInterface2;
71
- return zone === void 0 ? [] : [`::%${zone}`];
72
- });
73
- if (multicastInterfaces.length === 0) {
74
- logger.warn(
75
- `No IPv6 multicast interface found${netInterface !== void 0 ? ` for interface ${netInterface}` : ""}.`
76
- );
77
- }
78
- return multicastInterfaces;
79
- }
80
- }
81
- static getNetInterfaceForIp(ip) {
82
- return this.netInterfaces.get(ip);
83
- }
84
- static netInterfaces = new AsyncCache(
85
- "Network interface",
86
- (ip) => this.getNetInterfaceForRemoteAddress(ip),
87
- Minutes(5)
88
- );
89
- async close() {
90
- await NetworkReactNative.netInterfaces.close();
91
- }
92
- static async getNetInterfaceForRemoteAddress(ip) {
93
- if (ip.includes("%")) {
94
- return ip.split("%")[1];
95
- } else {
96
- const interfaces = await networkInterfaces();
97
- for (const name in interfaces) {
98
- const netInterfaces = interfaces[name];
99
- for (const { address, netmask } of netInterfaces) {
100
- if (onSameNetwork(ip, address, netmask)) {
101
- return name;
102
- }
103
- }
104
- }
105
- if (isIPv6(ip)) {
106
- if (ip.startsWith("fd")) {
107
- return "";
108
- }
109
- }
110
- return void 0;
111
- }
112
- }
113
- /**
114
- * Get all network interfaces.
115
- * The optional configuration parameter allows to map interface names to types if this mapping is known.
116
- * Each network interface which has no mapped type is returned as Ethernet for now.
117
- *
118
- * @param configuration - An array of objects with the name and type properties.
119
- */
120
- async getNetInterfaces(configuration = []) {
121
- const result = new Array();
122
- const interfaces = await networkInterfaces();
123
- for (const name in interfaces) {
124
- const netInterfaces = interfaces[name];
125
- if (netInterfaces.length === 0) continue;
126
- if (netInterfaces[0].internal) continue;
127
- let type = InterfaceType.Ethernet;
128
- if (configuration.length > 0) {
129
- const nameType = configuration.find(({ name: mapName }) => name === mapName);
130
- if (nameType !== void 0 && nameType.type !== void 0) {
131
- type = nameType.type;
132
- }
133
- }
134
- result.push({ name, type });
135
- }
136
- return result;
137
- }
138
- async getIpMac(netInterface) {
139
- const netInterfaceInfo = (await networkInterfaces())[netInterface];
140
- if (netInterfaceInfo === void 0) return void 0;
141
- const ipV4 = netInterfaceInfo.filter(({ family }) => family === "IPv4").map(({ address }) => address);
142
- const ipV6 = netInterfaceInfo.filter(({ family }) => family === "IPv6").map(({ address }) => address);
143
- return { mac: "00:00:00:00:00:00", ipV4, ipV6 };
144
- }
145
- createUdpSocket(options) {
146
- return UdpSocketReactNative.create(options);
147
- }
148
- async createTcpListener(options) {
149
- return TcpListenerReactNative.create(options);
150
- }
151
- async connectTcp(host, port) {
152
- return connectReactNativeTcp(host, port);
153
- }
154
- }
155
- export {
156
- NetworkReactNative
157
- };
158
- //# sourceMappingURL=NetworkReactNative.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/net/NetworkReactNative.ts"],
4
- "mappings": "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",
5
- "names": ["networkInterfaces", "netInterface"]
6
- }
@@ -1,135 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import {
7
- Bytes,
8
- NetworkError,
9
- Seconds,
10
- TCP_CONNECTION_TIMEOUT_MS,
11
- TCP_KEEP_ALIVE_INITIAL_DELAY_MS,
12
- withTimeout
13
- } from "@matter/general";
14
- import { createConnection } from "react-native-tcp-socket";
15
- const TCP_CONNECT_TIMEOUT = Seconds(TCP_CONNECTION_TIMEOUT_MS / 1e3);
16
- class TcpConnectionReactNative {
17
- remoteAddress;
18
- remotePort;
19
- localPort;
20
- #socket;
21
- #ended = false;
22
- #chunks = new Array();
23
- #waiter;
24
- constructor(socket) {
25
- this.#socket = socket;
26
- this.remoteAddress = socket.remoteAddress ?? "";
27
- this.remotePort = socket.remotePort ?? 0;
28
- this.localPort = socket.localPort ?? 0;
29
- socket.setNoDelay(true);
30
- socket.setKeepAlive(true, TCP_KEEP_ALIVE_INITIAL_DELAY_MS);
31
- socket.on("data", (data) => {
32
- const bytes = typeof data === "string" ? Buffer.from(data) : new Uint8Array(data);
33
- if (this.#waiter) {
34
- const resolve = this.#waiter;
35
- this.#waiter = void 0;
36
- resolve({ value: bytes, done: false });
37
- } else {
38
- this.#chunks.push(bytes);
39
- }
40
- });
41
- socket.on("close", () => {
42
- this.#ended = true;
43
- this.#waiter?.({ value: void 0, done: true });
44
- this.#waiter = void 0;
45
- });
46
- socket.on("error", () => {
47
- this.#ended = true;
48
- this.#waiter?.({ value: void 0, done: true });
49
- this.#waiter = void 0;
50
- });
51
- }
52
- [Symbol.asyncIterator]() {
53
- return {
54
- next: () => {
55
- if (this.#chunks.length > 0) {
56
- return Promise.resolve({ value: this.#chunks.shift(), done: false });
57
- }
58
- if (this.#ended) {
59
- return Promise.resolve({ value: void 0, done: true });
60
- }
61
- return new Promise((resolve) => {
62
- this.#waiter = resolve;
63
- });
64
- }
65
- };
66
- }
67
- send(data) {
68
- return new Promise((resolve, reject) => {
69
- this.#socket.write(Buffer.from(Bytes.of(data)), (error) => {
70
- if (error) {
71
- reject(new NetworkError(error.message));
72
- } else {
73
- resolve();
74
- }
75
- });
76
- });
77
- }
78
- onClose(listener) {
79
- this.#socket.on("close", listener);
80
- return {
81
- close: async () => {
82
- this.#socket.off("close", listener);
83
- }
84
- };
85
- }
86
- onError(listener) {
87
- const handler = (error) => listener(new NetworkError(error.message));
88
- this.#socket.on("error", handler);
89
- return {
90
- close: async () => {
91
- this.#socket.off("error", handler);
92
- }
93
- };
94
- }
95
- async close() {
96
- if (this.#ended) return;
97
- this.#ended = true;
98
- this.#waiter?.({ value: void 0, done: true });
99
- this.#waiter = void 0;
100
- const closed = new Promise((resolve) => {
101
- this.#socket.on("close", () => resolve());
102
- this.#socket.end();
103
- });
104
- await withTimeout(Seconds(5), closed, () => {
105
- this.#socket.destroy();
106
- });
107
- }
108
- }
109
- function connectReactNativeTcp(host, port) {
110
- let socket;
111
- const connected = new Promise((resolve, reject) => {
112
- let settled = false;
113
- const settle = (fn) => {
114
- if (!settled) {
115
- settled = true;
116
- fn();
117
- }
118
- };
119
- socket = createConnection({ host, port }, () => {
120
- settle(() => resolve(new TcpConnectionReactNative(socket)));
121
- });
122
- socket.on("error", (err) => {
123
- settle(() => reject(new NetworkError(err.message)));
124
- });
125
- });
126
- return withTimeout(TCP_CONNECT_TIMEOUT, connected, () => {
127
- socket?.destroy();
128
- throw new NetworkError("TCP connection timeout");
129
- });
130
- }
131
- export {
132
- TcpConnectionReactNative,
133
- connectReactNativeTcp
134
- };
135
- //# sourceMappingURL=TcpConnectionReactNative.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/net/TcpConnectionReactNative.ts"],
4
- "mappings": "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",
5
- "names": []
6
- }
@@ -1,88 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import {
7
- Logger,
8
- NetworkError,
9
- Seconds,
10
- TCP_KEEP_ALIVE_INITIAL_DELAY_MS,
11
- withTimeout
12
- } from "@matter/general";
13
- import { createServer } from "react-native-tcp-socket";
14
- import { TcpConnectionReactNative } from "./TcpConnectionReactNative.js";
15
- const logger = Logger.get("TcpListenerReactNative");
16
- const TCP_LISTEN_TIMEOUT = Seconds(10);
17
- const TCP_CLOSE_TIMEOUT = Seconds(5);
18
- class TcpListenerReactNative {
19
- #server;
20
- #port;
21
- #activeSockets = /* @__PURE__ */ new Set();
22
- static async create(options = {}) {
23
- const server = createServer({
24
- keepAlive: true,
25
- keepAliveInitialDelay: TCP_KEEP_ALIVE_INITIAL_DELAY_MS
26
- });
27
- const listening = new Promise((resolve, reject) => {
28
- const handleError = (error) => {
29
- server.removeListener("error", handleError);
30
- reject(new NetworkError(error.message));
31
- };
32
- server.on("error", handleError);
33
- server.listen({ port: options.listeningPort ?? 0, host: options.listeningAddress ?? "0.0.0.0" }, () => {
34
- server.removeListener("error", handleError);
35
- const addr = server.address();
36
- const port = typeof addr === "object" && addr !== null ? addr.port : 0;
37
- if (port === 0) {
38
- reject(new NetworkError("TCP server failed to obtain a port"));
39
- return;
40
- }
41
- logger.debug(`TCP server listening on port ${port}`);
42
- resolve(new TcpListenerReactNative(server, port));
43
- });
44
- });
45
- return withTimeout(TCP_LISTEN_TIMEOUT, listening, () => {
46
- server.close();
47
- throw new NetworkError("TCP server listen timeout");
48
- });
49
- }
50
- constructor(server, port) {
51
- this.#server = server;
52
- this.#port = port;
53
- server.on("connection", (socket) => {
54
- this.#activeSockets.add(socket);
55
- socket.on("close", () => this.#activeSockets.delete(socket));
56
- });
57
- }
58
- get port() {
59
- return this.#port;
60
- }
61
- onConnection(listener) {
62
- const handler = (socket) => {
63
- listener(new TcpConnectionReactNative(socket));
64
- };
65
- this.#server.on("connection", handler);
66
- return {
67
- close: async () => {
68
- this.#server.off("connection", handler);
69
- }
70
- };
71
- }
72
- async close() {
73
- for (const socket of this.#activeSockets) {
74
- socket.destroy();
75
- }
76
- this.#activeSockets.clear();
77
- const closed = new Promise((resolve) => {
78
- this.#server.close(() => resolve());
79
- });
80
- await withTimeout(TCP_CLOSE_TIMEOUT, closed, () => {
81
- logger.debug("TCP server close timeout, forcing");
82
- });
83
- }
84
- }
85
- export {
86
- TcpListenerReactNative
87
- };
88
- //# sourceMappingURL=TcpListenerReactNative.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/net/TcpListenerReactNative.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,OAIG;AACP,SAAS,oBAAsE;AAC/E,SAAS,gCAAgC;AAEzC,MAAM,SAAS,OAAO,IAAI,wBAAwB;AAGlD,MAAM,qBAAqB,QAAQ,EAAE;AAGrC,MAAM,oBAAoB,QAAQ,CAAC;AAM5B,MAAM,uBAA8C;AAAA,EAC9C;AAAA,EACA;AAAA,EACA,iBAAiB,oBAAI,IAAc;AAAA,EAE5C,aAAa,OAAO,UAA8B,CAAC,GAAoC;AACnF,UAAM,SAAS,aAAa;AAAA,MACxB,WAAW;AAAA,MACX,uBAAuB;AAAA,IAC3B,CAAC;AAED,UAAM,YAAY,IAAI,QAAgC,CAAC,SAAS,WAAW;AACvE,YAAM,cAAc,CAAC,UAAiB;AAClC,eAAO,eAAe,SAAS,WAAW;AAC1C,eAAO,IAAI,aAAa,MAAM,OAAO,CAAC;AAAA,MAC1C;AACA,aAAO,GAAG,SAAS,WAAW;AAC9B,aAAO,OAAO,EAAE,MAAM,QAAQ,iBAAiB,GAAG,MAAM,QAAQ,oBAAoB,UAAU,GAAG,MAAM;AACnG,eAAO,eAAe,SAAS,WAAW;AAC1C,cAAM,OAAO,OAAO,QAAQ;AAC5B,cAAM,OAAO,OAAO,SAAS,YAAY,SAAS,OAAO,KAAK,OAAO;AACrE,YAAI,SAAS,GAAG;AACZ,iBAAO,IAAI,aAAa,oCAAoC,CAAC;AAC7D;AAAA,QACJ;AACA,eAAO,MAAM,gCAAgC,IAAI,EAAE;AACnD,gBAAQ,IAAI,uBAAuB,QAAQ,IAAI,CAAC;AAAA,MACpD,CAAC;AAAA,IACL,CAAC;AAED,WAAO,YAAY,oBAAoB,WAAW,MAAM;AACpD,aAAO,MAAM;AACb,YAAM,IAAI,aAAa,2BAA2B;AAAA,IACtD,CAAC;AAAA,EACL;AAAA,EAEQ,YAAY,QAAkB,MAAc;AAChD,SAAK,UAAU;AACf,SAAK,QAAQ;AAEb,WAAO,GAAG,cAAc,CAAC,WAAqB;AAC1C,WAAK,eAAe,IAAI,MAAM;AAC9B,aAAO,GAAG,SAAS,MAAM,KAAK,eAAe,OAAO,MAAM,CAAC;AAAA,IAC/D,CAAC;AAAA,EACL;AAAA,EAEA,IAAI,OAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,aAAa,UAA+D;AACxE,UAAM,UAAU,CAAC,WAAqB;AAClC,eAAS,IAAI,yBAAyB,MAAM,CAAC;AAAA,IACjD;AACA,SAAK,QAAQ,GAAG,cAAc,OAAO;AACrC,WAAO;AAAA,MACH,OAAO,YAAY;AACf,aAAK,QAAQ,IAAI,cAAc,OAAO;AAAA,MAC1C;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,MAAM,QAAuB;AACzB,eAAW,UAAU,KAAK,gBAAgB;AACtC,aAAO,QAAQ;AAAA,IACnB;AACA,SAAK,eAAe,MAAM;AAE1B,UAAM,SAAS,IAAI,QAAc,aAAW;AACxC,WAAK,QAAQ,MAAM,MAAM,QAAQ,CAAC;AAAA,IACtC,CAAC;AAED,UAAM,YAAY,mBAAmB,QAAQ,MAAM;AAC/C,aAAO,MAAM,mCAAmC;AAAA,IACpD,CAAC;AAAA,EACL;AACJ;",
5
- "names": []
6
- }
@@ -1,174 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import dgram from "react-native-udp";
7
- import {
8
- ChannelType,
9
- Diagnostic,
10
- isIPv4,
11
- isIPv6,
12
- Logger,
13
- MAX_UDP_MESSAGE_SIZE,
14
- NetworkError,
15
- NoAddressAvailableError,
16
- repackErrorAs
17
- } from "@matter/general";
18
- import { Platform } from "react-native";
19
- import { NetworkReactNative } from "./NetworkReactNative.js";
20
- const logger = Logger.get("UdpSocketNode");
21
- function createDgramSocket(host, port, options) {
22
- const socket = dgram.createSocket({
23
- ...options,
24
- reusePort: options.reuseAddr
25
- });
26
- return new Promise((resolve, reject) => {
27
- const handleBindError = (error) => {
28
- try {
29
- socket.close();
30
- } catch (error2) {
31
- logger.debug("Error on closing socket", error2);
32
- }
33
- reject(error);
34
- };
35
- socket.on("error", handleBindError);
36
- socket.bind(port, host, (error) => {
37
- if (error) return;
38
- const { address: localHost, port: localPort } = socket.address();
39
- logger.debug(
40
- "Socket created and bound ",
41
- Diagnostic.dict({
42
- remoteAddress: `${host}:${port}`,
43
- localAddress: `${localHost}:${localPort}`
44
- })
45
- );
46
- socket.removeListener("error", handleBindError);
47
- socket.on("error", (error2) => logger.error(error2));
48
- resolve(socket);
49
- });
50
- });
51
- }
52
- class UdpSocketReactNative {
53
- #type;
54
- #socket;
55
- #netInterface;
56
- static async create({ listeningPort, type, listeningAddress, netInterface }) {
57
- const socketOptions = { type, reuseAddr: true };
58
- if (type === "udp6") {
59
- socketOptions.ipv6Only = true;
60
- }
61
- const socket = await createDgramSocket(listeningAddress, listeningPort, socketOptions);
62
- if (Platform.OS !== "android") {
63
- socket.setBroadcast(true);
64
- }
65
- let netInterfaceZone;
66
- if (netInterface !== void 0) {
67
- netInterfaceZone = netInterface;
68
- let multicastInterface;
69
- if (type === "udp4") {
70
- multicastInterface = await NetworkReactNative.getMulticastInterfaceIpv4(netInterface);
71
- if (multicastInterface === void 0) {
72
- throw new NoAddressAvailableError(`No IPv4 addresses on interface "${netInterface}"`);
73
- }
74
- } else {
75
- multicastInterface = "::";
76
- }
77
- logger.debug(
78
- "Initialize multicast",
79
- Diagnostic.dict({
80
- type,
81
- address: `${multicastInterface}:${listeningPort}`,
82
- interface: netInterface
83
- })
84
- );
85
- socket.setMulticastInterface(multicastInterface);
86
- }
87
- return new UdpSocketReactNative(type, socket, netInterfaceZone);
88
- }
89
- maxPayloadSize = MAX_UDP_MESSAGE_SIZE;
90
- constructor(type, socket, netInterface) {
91
- this.#type = type;
92
- this.#socket = socket;
93
- this.#netInterface = netInterface;
94
- }
95
- async addMembership(membershipAddress) {
96
- const multicastInterfaces = await NetworkReactNative.getMembershipMulticastInterfaces(
97
- this.#netInterface,
98
- this.#type === "udp4"
99
- );
100
- for (const multicastInterface of multicastInterfaces) {
101
- try {
102
- this.#socket.addMembership(membershipAddress, multicastInterface);
103
- } catch (error) {
104
- logger.warn(
105
- `Error adding membership for address ${membershipAddress}${multicastInterface ? ` with interface ${multicastInterface}` : ""}: ${error}`
106
- );
107
- }
108
- }
109
- }
110
- async dropMembership(membershipAddress) {
111
- const multicastInterfaces = await NetworkReactNative.getMembershipMulticastInterfaces(
112
- this.#netInterface,
113
- this.#type === "udp4"
114
- );
115
- for (const multicastInterface of multicastInterfaces) {
116
- try {
117
- this.#socket.dropMembership(membershipAddress, multicastInterface);
118
- } catch (error) {
119
- logger.warn(
120
- `Error removing membership for address ${membershipAddress}${multicastInterface ? ` with interface ${multicastInterface}` : ""}: ${error}`
121
- );
122
- }
123
- }
124
- }
125
- onData(listener) {
126
- const messageListener = async (data, { address, port }) => {
127
- const netInterface = this.#netInterface ?? await NetworkReactNative.getNetInterfaceForIp(address);
128
- listener(netInterface, address, port, data);
129
- };
130
- this.#socket.on("message", messageListener);
131
- return {
132
- close: async () => {
133
- this.#socket.removeListener("message", messageListener);
134
- }
135
- };
136
- }
137
- async send(host, port, data) {
138
- return new Promise((resolve, reject) => {
139
- this.#socket.send(data, 0, data.byteLength, port, host, (error) => {
140
- if (error) {
141
- reject(repackErrorAs(error, NetworkError));
142
- return;
143
- }
144
- resolve();
145
- });
146
- });
147
- }
148
- async close() {
149
- try {
150
- this.#socket.close();
151
- } catch (error) {
152
- logger.debug("Error on closing socket", error);
153
- }
154
- }
155
- get port() {
156
- return this.#socket.address().port;
157
- }
158
- supports(type, address) {
159
- if (type !== ChannelType.UDP) {
160
- return false;
161
- }
162
- if (address === void 0) {
163
- return true;
164
- }
165
- if (this.#type === "udp4") {
166
- return isIPv4(address);
167
- }
168
- return isIPv6(address);
169
- }
170
- }
171
- export {
172
- UdpSocketReactNative
173
- };
174
- //# sourceMappingURL=UdpSocketReactNative.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/net/UdpSocketReactNative.ts"],
4
- "mappings": "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",
5
- "names": ["error"]
6
- }