@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,18 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { BleScanner as BaseBleScanner } from "@matter/protocol";
7
- class BleScanner extends BaseBleScanner {
8
- constructor(bleClient) {
9
- super(bleClient);
10
- }
11
- getDiscoveredDevice(address) {
12
- return super.getDiscoveredDevice(address);
13
- }
14
- }
15
- export {
16
- BleScanner
17
- };
18
- //# sourceMappingURL=BleScanner.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/ble/BleScanner.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc,sBAA2C;AAS3D,MAAM,mBAAmB,eAAe;AAAA,EAC3C,YAAY,WAAiC;AACzC,UAAM,SAAS;AAAA,EACnB;AAAA,EAES,oBAAoB,SAAiD;AAC1E,WAAO,MAAM,oBAAoB,OAAO;AAAA,EAC5C;AACJ;",
5
- "names": []
6
- }
@@ -1,38 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { ChannelType, ImplementationError } from "@matter/general";
7
- import { Ble } from "@matter/protocol";
8
- import { BleScanner } from "./BleScanner.js";
9
- import { ReactNativeBleCentralInterface } from "./ReactNativeBleChannel.js";
10
- import { ReactNativeBleClient } from "./ReactNativeBleClient.js";
11
- class ReactNativeBle extends Ble {
12
- bleCentral;
13
- constructor() {
14
- super();
15
- }
16
- get centralInterface() {
17
- if (this.bleCentral === void 0) {
18
- this.bleCentral = new ReactNativeBleClient();
19
- }
20
- return new ReactNativeBleCentralInterface(this);
21
- }
22
- get scanner() {
23
- if (this.bleCentral === void 0) {
24
- this.bleCentral = new ReactNativeBleClient();
25
- }
26
- return new BleScanner(this.bleCentral);
27
- }
28
- get peripheralInterface() {
29
- throw new ImplementationError("React Native can only act as a central device, not a peripheral.");
30
- }
31
- supports(type) {
32
- return type === ChannelType.BLE;
33
- }
34
- }
35
- export {
36
- ReactNativeBle
37
- };
38
- //# sourceMappingURL=ReactNativeBle.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/ble/ReactNativeBle.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,aAAa,2BAAsC;AAC5D,SAAS,WAA4C;AACrD,SAAS,kBAAkB;AAC3B,SAAS,sCAAsC;AAC/C,SAAS,4BAA4B;AAE9B,MAAM,uBAAuB,IAAI;AAAA,EAC5B;AAAA,EAER,cAAc;AACV,UAAM;AAAA,EACV;AAAA,EAEA,IAAI,mBAA8B;AAC9B,QAAI,KAAK,eAAe,QAAW;AAC/B,WAAK,aAAa,IAAI,qBAAqB;AAAA,IAC/C;AACA,WAAO,IAAI,+BAA+B,IAAI;AAAA,EAClD;AAAA,EAEA,IAAI,UAAmB;AACnB,QAAI,KAAK,eAAe,QAAW;AAC/B,WAAK,aAAa,IAAI,qBAAqB;AAAA,IAC/C;AACA,WAAO,IAAI,WAAW,KAAK,UAAU;AAAA,EACzC;AAAA,EAEA,IAAI,sBAA8C;AAC9C,UAAM,IAAI,oBAAoB,kEAAkE;AAAA,EACpG;AAAA,EAEA,SAAS,MAAmB;AACxB,WAAO,SAAS,YAAY;AAAA,EAChC;AACJ;",
5
- "names": []
6
- }
@@ -1,321 +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
- ChannelType,
9
- Diagnostic,
10
- InternalError,
11
- Logger,
12
- ServerAddress,
13
- Time,
14
- createPromise
15
- } from "@matter/general";
16
- import { BleChannel, BleError, BtpCodec, BtpFlowError, BtpSessionHandler, MatterBle } from "@matter/protocol";
17
- import {
18
- BleErrorCode,
19
- BleError as ReactNativeBleError
20
- } from "react-native-ble-plx";
21
- const logger = Logger.get("BleChannel");
22
- class ReactNativeBleCentralInterface {
23
- #ble;
24
- #openChannels = /* @__PURE__ */ new Map();
25
- #onMatterMessageListener;
26
- constructor(ble) {
27
- this.#ble = ble;
28
- }
29
- async openChannel(address) {
30
- if (!ServerAddress.isBle(address)) {
31
- throw new InternalError(`Unsupported address type for BLE channel.`);
32
- }
33
- if (this.#onMatterMessageListener === void 0) {
34
- throw new InternalError(`Network Interface was not added to the system yet.`);
35
- }
36
- const { peripheral: blePeripheral, hasAdditionalAdvertisementData } = this.#ble.scanner.getDiscoveredDevice(address.peripheralAddress);
37
- const peripheral = blePeripheral.device;
38
- if (this.#openChannels.has(address.peripheralAddress)) {
39
- throw new BleError(
40
- `Peripheral ${address.peripheralAddress} is already connected. Only one connection supported right now.`
41
- );
42
- }
43
- logger.debug(`Connect to Peripheral now`);
44
- let device;
45
- try {
46
- device = await peripheral.connect();
47
- await device.requestMTU(MatterBle.MAXIMUM_BTP_MTU);
48
- } catch (error) {
49
- if (error instanceof ReactNativeBleError && error.errorCode === BleErrorCode.DeviceAlreadyConnected) {
50
- device = peripheral;
51
- } else {
52
- throw new BleError(`Error connecting to peripheral: ${error.message}`);
53
- }
54
- }
55
- logger.debug(`Peripheral connected successfully, MTU = ${device.mtu}`);
56
- device = await device.discoverAllServicesAndCharacteristics();
57
- const services = await device.services();
58
- for (const service of services) {
59
- logger.debug(`found service: ${service.uuid}`);
60
- if (!MatterBle.isServiceUuid(service.uuid)) continue;
61
- const characteristics = await device.characteristicsForService(service.uuid);
62
- let characteristicC1ForWrite;
63
- let characteristicC2ForSubscribe;
64
- let additionalCommissioningRelatedData;
65
- for (const characteristic of characteristics) {
66
- logger.debug("found characteristic:", characteristic.uuid);
67
- switch (characteristic.uuid.toUpperCase()) {
68
- case MatterBle.C1_CHARACTERISTIC_UUID:
69
- logger.debug("found C1 characteristic");
70
- characteristicC1ForWrite = characteristic;
71
- break;
72
- case MatterBle.C2_CHARACTERISTIC_UUID:
73
- logger.debug("found C2 characteristic");
74
- characteristicC2ForSubscribe = characteristic;
75
- break;
76
- case MatterBle.C3_CHARACTERISTIC_UUID:
77
- logger.debug("found C3 characteristic");
78
- if (hasAdditionalAdvertisementData) {
79
- logger.debug("reading additional commissioning related data");
80
- const characteristicWithValue = await service.readCharacteristic(characteristic.uuid);
81
- if (characteristicWithValue.value !== null) {
82
- additionalCommissioningRelatedData = Bytes.fromBase64(characteristicWithValue.value);
83
- } else {
84
- logger.debug("no value in characteristic C3");
85
- }
86
- }
87
- }
88
- }
89
- if (!characteristicC1ForWrite || !characteristicC2ForSubscribe) {
90
- logger.debug("missing characteristics");
91
- continue;
92
- }
93
- this.#openChannels.set(address.peripheralAddress, device);
94
- const disconnectSub = device.onDisconnected(() => {
95
- this.#openChannels.delete(address.peripheralAddress);
96
- disconnectSub.remove();
97
- });
98
- try {
99
- return await ReactNativeBleChannel.create(
100
- device,
101
- characteristicC1ForWrite,
102
- characteristicC2ForSubscribe,
103
- this.#onMatterMessageListener,
104
- additionalCommissioningRelatedData
105
- );
106
- } catch (error) {
107
- this.#openChannels.delete(address.peripheralAddress);
108
- disconnectSub.remove();
109
- throw error;
110
- }
111
- }
112
- throw new BleError(`No Matter service found on peripheral ${device.id}`);
113
- }
114
- onData(listener) {
115
- this.#onMatterMessageListener = listener;
116
- return {
117
- close: async () => await this.close()
118
- };
119
- }
120
- async close() {
121
- const peripherals = [...this.#openChannels.values()];
122
- this.#openChannels.clear();
123
- for (const peripheral of peripherals) {
124
- await peripheral.cancelConnection();
125
- }
126
- }
127
- supports(type) {
128
- return type === ChannelType.BLE;
129
- }
130
- }
131
- class ReactNativeBleChannel extends BleChannel {
132
- constructor(peripheral, btpSession) {
133
- super();
134
- this.peripheral = peripheral;
135
- this.btpSession = btpSession;
136
- this.disconnectSubscription = peripheral.onDisconnected((error) => {
137
- logger.debug(`Disconnected from peripheral ${peripheral.id}: ${error}`);
138
- this.connected = false;
139
- this.disconnectSubscription.remove();
140
- this.#terminateIterator();
141
- for (const listener of this.#closeListeners) {
142
- listener();
143
- }
144
- this.btpSession.close().catch((error2) => {
145
- logger.debug(`Error closing BTP session on disconnect`, error2);
146
- });
147
- this.emitClosed();
148
- });
149
- this.btpSession.closed.on(() => this.emitClosed());
150
- }
151
- peripheral;
152
- btpSession;
153
- static async create(peripheral, characteristicC1ForWrite, characteristicC2ForSubscribe, onMatterMessageListener, _additionalCommissioningRelatedData) {
154
- let mtu = peripheral.mtu ?? 0;
155
- if (mtu > MatterBle.MAXIMUM_BTP_MTU) {
156
- mtu = MatterBle.MAXIMUM_BTP_MTU;
157
- }
158
- logger.debug(`Using MTU=${mtu} (Peripheral MTU=${peripheral.mtu})`);
159
- const btpHandshakeRequest = BtpCodec.encodeBtpHandshakeRequest({
160
- versions: MatterBle.BTP_SUPPORTED_VERSIONS,
161
- attMtu: mtu,
162
- clientWindowSize: MatterBle.BTP_MAXIMUM_WINDOW_SIZE
163
- });
164
- logger.debug(`sending BTP handshake request: ${Diagnostic.json(btpHandshakeRequest)}`);
165
- characteristicC1ForWrite = await characteristicC1ForWrite.writeWithResponse(
166
- Bytes.toBase64(btpHandshakeRequest)
167
- );
168
- const btpHandshakeTimeout = Time.getTimer("BLE handshake timeout", MatterBle.BTP_CONN_RSP_TIMEOUT, () => {
169
- characteristicSubscribe.remove();
170
- peripheral.cancelConnection().catch((error) => logger.debug("Error cancelling connection on handshake timeout", error));
171
- logger.debug("Handshake Response not received. Disconnected from peripheral");
172
- rejecter(new BleError("Handshake Response not received"));
173
- }).start();
174
- logger.debug("subscribing to C2 characteristic");
175
- const { promise: handshakeResponseReceivedPromise, resolver, rejecter } = createPromise();
176
- let handshakeReceived = false;
177
- let btpSession = void 0;
178
- const characteristicSubscribe = characteristicC2ForSubscribe.monitor((error, characteristic) => {
179
- if (error !== null || characteristic === null) {
180
- if (error instanceof ReactNativeBleError && error.errorCode === 2) {
181
- return;
182
- }
183
- if (!handshakeReceived) {
184
- btpHandshakeTimeout.stop();
185
- rejecter(new BleError(`BLE error during handshake: ${error?.message ?? "unknown"}`));
186
- }
187
- logger.debug("Error while monitoring C2 characteristic.", error?.message);
188
- return;
189
- }
190
- const characteristicData = characteristic.value;
191
- if (characteristicData === null) {
192
- logger.debug("C2 characteristic value is null");
193
- return;
194
- }
195
- const data = Bytes.fromBase64(characteristicData);
196
- logger.debug(`received data on C2: ${Bytes.toHex(data)}`);
197
- if (!handshakeReceived) {
198
- const _data = Bytes.of(data);
199
- if (_data[0] === 101 && _data[1] === 108 && _data.length === 6) {
200
- logger.info(`Received Matter handshake response: ${Bytes.toHex(_data)}.`);
201
- btpHandshakeTimeout.stop();
202
- handshakeReceived = true;
203
- resolver(_data);
204
- }
205
- return;
206
- }
207
- if (btpSession) {
208
- btpSession.handleIncomingBleData(data).catch((error2) => {
209
- logger.info("Error handling incoming BLE data", error2);
210
- });
211
- }
212
- });
213
- const handshakeResponse = await handshakeResponseReceivedPromise;
214
- try {
215
- btpSession = await BtpSessionHandler.createAsCentral(
216
- handshakeResponse,
217
- // callback to write data to characteristic C1
218
- async (data) => {
219
- characteristicC1ForWrite = await characteristicC1ForWrite.writeWithResponse(Bytes.toBase64(data));
220
- },
221
- // callback to disconnect the BLE connection
222
- async () => {
223
- characteristicSubscribe.remove();
224
- if (await peripheral.isConnected()) {
225
- await peripheral.cancelConnection();
226
- }
227
- logger.debug("disconnected from peripheral");
228
- },
229
- // callback to forward decoded and de-assembled Matter messages
230
- async (data) => {
231
- if (onMatterMessageListener === void 0) {
232
- throw new InternalError(`No listener registered for Matter messages`);
233
- }
234
- bleChannel.#pushMessage(data);
235
- onMatterMessageListener(bleChannel, data);
236
- }
237
- );
238
- const bleChannel = new ReactNativeBleChannel(peripheral, btpSession);
239
- return bleChannel;
240
- } catch (error) {
241
- characteristicSubscribe.remove();
242
- btpHandshakeTimeout.stop();
243
- throw error;
244
- }
245
- }
246
- connected = true;
247
- disconnectSubscription;
248
- #closeListeners = /* @__PURE__ */ new Set();
249
- #iteratorQueue = new Array();
250
- #iteratorWaiter;
251
- #iteratorDone = false;
252
- /**
253
- * Send a Matter message to the connected device - need to do BTP assembly first.
254
- *
255
- * @param data
256
- */
257
- async send(data) {
258
- if (!this.connected) {
259
- logger.debug("Cannot send data because not connected to peripheral.");
260
- return;
261
- }
262
- if (this.btpSession === void 0) {
263
- throw new BtpFlowError(`Cannot send data, no BTP session initialized`);
264
- }
265
- await this.btpSession.sendMatterMessage(data);
266
- }
267
- // Channel<Bytes>
268
- get name() {
269
- return `ble://${this.peripheral.id}`;
270
- }
271
- onClose(listener) {
272
- this.#closeListeners.add(listener);
273
- return {
274
- close: async () => {
275
- this.#closeListeners.delete(listener);
276
- }
277
- };
278
- }
279
- [Symbol.asyncIterator]() {
280
- return {
281
- next: () => {
282
- if (this.#iteratorQueue.length > 0) {
283
- return Promise.resolve({ value: this.#iteratorQueue.shift(), done: false });
284
- }
285
- if (this.#iteratorDone || !this.connected) {
286
- return Promise.resolve({ value: void 0, done: true });
287
- }
288
- return new Promise((resolve) => {
289
- this.#iteratorWaiter = resolve;
290
- });
291
- }
292
- };
293
- }
294
- #pushMessage(message) {
295
- if (this.#iteratorWaiter) {
296
- const resolve = this.#iteratorWaiter;
297
- this.#iteratorWaiter = void 0;
298
- resolve({ value: message, done: false });
299
- } else if (!this.#iteratorDone) {
300
- this.#iteratorQueue.push(message);
301
- }
302
- }
303
- #terminateIterator() {
304
- if (!this.#iteratorDone) {
305
- this.#iteratorDone = true;
306
- this.#iteratorWaiter?.({ value: void 0, done: true });
307
- this.#iteratorWaiter = void 0;
308
- }
309
- }
310
- async close() {
311
- this.#terminateIterator();
312
- this.disconnectSubscription.remove();
313
- await this.btpSession.close();
314
- this.emitClosed();
315
- }
316
- }
317
- export {
318
- ReactNativeBleCentralInterface,
319
- ReactNativeBleChannel
320
- };
321
- //# sourceMappingURL=ReactNativeBleChannel.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/ble/ReactNativeBleChannel.ts"],
4
- "mappings": "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",
5
- "names": ["error"]
6
- }
@@ -1,136 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Bytes, Diagnostic, Logger, MatterError } from "@matter/general";
7
- import { MatterBle } from "@matter/protocol";
8
- import { BleError, BleErrorCode, BleManager, State as BluetoothState } from "react-native-ble-plx";
9
- const logger = Logger.get("ReactNativeBleClient");
10
- class BluetoothUnauthorizedError extends MatterError {
11
- }
12
- class BluetoothUnsupportedError extends MatterError {
13
- }
14
- class ReactNativeBleClient {
15
- bleManager = new BleManager();
16
- discoveredPeripherals = /* @__PURE__ */ new Map();
17
- shouldScan = false;
18
- isScanning = false;
19
- bleState = BluetoothState.Unknown;
20
- deviceDiscoveredCallback;
21
- constructor() {
22
- const subscription = this.bleManager.onStateChange((state) => {
23
- this.bleState = state;
24
- logger.debug(`BLE state changed to ${state}`);
25
- switch (state) {
26
- case BluetoothState.PoweredOff:
27
- this.bleManager.enable().catch((error) => {
28
- subscription.remove();
29
- if (error instanceof BleError && error.errorCode === BleErrorCode.BluetoothUnauthorized) {
30
- throw new BluetoothUnauthorizedError("Bluetooth is unauthorized");
31
- }
32
- throw error;
33
- });
34
- break;
35
- case BluetoothState.PoweredOn:
36
- subscription.remove();
37
- if (this.shouldScan) {
38
- void this.startScanning();
39
- }
40
- break;
41
- case BluetoothState.Unauthorized:
42
- subscription.remove();
43
- throw new BluetoothUnauthorizedError("Bluetooth is unauthorized");
44
- case BluetoothState.Unsupported:
45
- subscription.remove();
46
- throw new BluetoothUnsupportedError("Bluetooth is unsupported");
47
- default:
48
- logger.error("Unexpected BLE state", state);
49
- subscription.remove();
50
- void this.stopScanning();
51
- }
52
- }, true);
53
- }
54
- setDiscoveryCallback(callback) {
55
- this.deviceDiscoveredCallback = callback;
56
- for (const { peripheral, matterServiceData } of this.discoveredPeripherals.values()) {
57
- this.deviceDiscoveredCallback(this.#asBlePeripheral(peripheral), matterServiceData);
58
- }
59
- }
60
- async startScanning() {
61
- if (this.isScanning) return;
62
- this.shouldScan = true;
63
- if (this.bleState === BluetoothState.PoweredOn) {
64
- logger.debug("Start BLE scanning for Matter Services ...");
65
- this.isScanning = true;
66
- await this.bleManager.startDeviceScan(
67
- null,
68
- {
69
- allowDuplicates: false,
70
- scanMode: 2,
71
- // Low Latency
72
- callbackType: 1
73
- // All matches
74
- },
75
- (error, peripheral) => {
76
- if (error !== null || peripheral === null) {
77
- this.isScanning = false;
78
- logger.error("Error while scanning for BLE devices", error);
79
- if (this.shouldScan) {
80
- this.startScanning().catch(
81
- (error2) => logger.error("Error while restarting scanning after error", error2)
82
- );
83
- } else {
84
- this.stopScanning().catch(
85
- (error2) => logger.error("Error while stopping scanning after error", error2)
86
- );
87
- }
88
- return;
89
- }
90
- this.handleDiscoveredDevice(peripheral);
91
- }
92
- );
93
- } else {
94
- logger.debug("ble state is not poweredOn ... delay scanning till poweredOn");
95
- }
96
- }
97
- async stopScanning() {
98
- this.shouldScan = false;
99
- logger.debug("Stop BLE scanning for Matter Services ...");
100
- await this.bleManager.stopDeviceScan();
101
- this.isScanning = false;
102
- }
103
- handleDiscoveredDevice(peripheral) {
104
- logger.debug(
105
- `Found peripheral ${peripheral.id} (${peripheral.localName}) with serviceData ${Diagnostic.json(peripheral.serviceData)}`
106
- );
107
- if (!peripheral.isConnectable) {
108
- logger.debug(`Peripheral ${peripheral.id} is not connectable ... ignoring`);
109
- return;
110
- }
111
- const matterServiceDataBase64 = peripheral.serviceData?.[MatterBle.SERVICE_UUID] ?? peripheral.serviceData?.[MatterBle.SERVICE_UUID_SHORT];
112
- if (matterServiceDataBase64 === void 0) {
113
- logger.info(`Peripheral ${peripheral.id} does not advertise Matter Service ... ignoring`);
114
- return;
115
- }
116
- const matterServiceData = Bytes.fromBase64(matterServiceDataBase64);
117
- if (matterServiceData.byteLength !== 8) {
118
- logger.info(`Peripheral ${peripheral.id} does not advertise Matter Service ... ignoring`);
119
- return;
120
- }
121
- this.discoveredPeripherals.set(peripheral.id, {
122
- peripheral,
123
- matterServiceData
124
- });
125
- this.deviceDiscoveredCallback?.(this.#asBlePeripheral(peripheral), matterServiceData);
126
- }
127
- #asBlePeripheral(device) {
128
- return { device, address: device.id };
129
- }
130
- }
131
- export {
132
- BluetoothUnauthorizedError,
133
- BluetoothUnsupportedError,
134
- ReactNativeBleClient
135
- };
136
- //# sourceMappingURL=ReactNativeBleClient.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/ble/ReactNativeBleClient.ts"],
4
- "mappings": "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",
5
- "names": ["error"]
6
- }
@@ -1,10 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export * from "./BleScanner.js";
7
- export * from "./ReactNativeBle.js";
8
- export * from "./ReactNativeBleChannel.js";
9
- export * from "./ReactNativeBleClient.js";
10
- //# sourceMappingURL=index.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/ble/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;AACd,cAAc;AACd,cAAc;AACd,cAAc;",
5
- "names": []
6
- }
@@ -1,27 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { Buffer } from "@craftzdog/react-native-buffer";
7
- import { Crypto, Entropy, Environment, StandardCrypto } from "@matter/general";
8
- import QuickCrypto from "react-native-quick-crypto";
9
- const crypto = QuickCrypto;
10
- if (!("Buffer" in globalThis)) {
11
- globalThis.Buffer = Buffer;
12
- }
13
- class ReactNativeCrypto extends StandardCrypto {
14
- implementationName = "ReactNativeCrypto";
15
- static provider() {
16
- return new ReactNativeCrypto(crypto);
17
- }
18
- }
19
- {
20
- const rnCrypto = new ReactNativeCrypto(crypto);
21
- Environment.default.set(Entropy, rnCrypto);
22
- Environment.default.set(Crypto, rnCrypto);
23
- }
24
- export {
25
- ReactNativeCrypto
26
- };
27
- //# sourceMappingURL=ReactNativeCrypto.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/crypto/ReactNativeCrypto.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,cAAc;AACvB,SAAS,QAAQ,SAAS,aAAa,sBAAiC;AACxE,OAAO,iBAAiB;AAIxB,MAAM,SAAS;AAIf,IAAI,EAAE,YAAY,aAAa;AAC3B,EAAC,WAAoD,SAAS;AAClE;AAKO,MAAM,0BAA0B,eAAe;AAAA,EACzC,qBAAqB;AAAA,EAE9B,OAAgB,WAAW;AACvB,WAAO,IAAI,kBAAkB,MAA8B;AAAA,EAC/D;AACJ;AAEA;AACI,QAAM,WAAW,IAAI,kBAAkB,MAA8B;AACrE,cAAY,QAAQ,IAAI,SAAS,QAAQ;AACzC,cAAY,QAAQ,IAAI,QAAQ,QAAQ;AAC5C;",
5
- "names": []
6
- }
@@ -1,7 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- export * from "./ReactNativeCrypto.js";
7
- //# sourceMappingURL=index.js.map
@@ -1,6 +0,0 @@
1
- {
2
- "version": 3,
3
- "sources": ["../../../src/crypto/index.ts"],
4
- "mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,cAAc;",
5
- "names": []
6
- }
@@ -1,44 +0,0 @@
1
- /**
2
- * @license
3
- * Copyright 2022-2026 Matter.js Authors
4
- * SPDX-License-Identifier: Apache-2.0
5
- */
6
- import { ReactNativeBle } from "#ble/ReactNativeBle.js";
7
- import { Environment, Network, StorageService } from "@matter/general";
8
- import { Ble } from "@matter/protocol";
9
- import { NetworkReactNative } from "../net/NetworkReactNative.js";
10
- import { ReactNativeWebStorageDriver } from "../storage/ReactNativeWebStorageDriver.js";
11
- function ReactNativeEnvironment() {
12
- const env = new Environment("default");
13
- loadVariables(env);
14
- configureStorage(env);
15
- configureNetwork(env);
16
- configureBle(env);
17
- return env;
18
- }
19
- function loadVariables(env) {
20
- const vars = env.vars;
21
- vars.addConfigStyle(getDefaults(vars));
22
- }
23
- function configureStorage(env) {
24
- const service = env.get(StorageService);
25
- service.registerDriver(ReactNativeWebStorageDriver);
26
- service.defaultDriver = "async-storage";
27
- }
28
- function configureNetwork(env) {
29
- env.set(Network, new NetworkReactNative());
30
- }
31
- function configureBle(env) {
32
- env.set(Ble, new ReactNativeBle());
33
- }
34
- function getDefaults(vars) {
35
- const envName = vars.get("environment", "default");
36
- return {
37
- environment: envName
38
- };
39
- }
40
- export {
41
- ReactNativeEnvironment,
42
- getDefaults
43
- };
44
- //# sourceMappingURL=ReactNativeEnvironment.js.map