@matter/react-native 0.16.11-alpha.0-20260301-bae8468e3 → 0.16.11
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/ble/BleScanner.d.ts +43 -7
- package/dist/cjs/ble/BleScanner.d.ts.map +1 -1
- package/dist/cjs/ble/BleScanner.js +233 -3
- package/dist/cjs/ble/BleScanner.js.map +2 -2
- package/dist/cjs/ble/ReactNativeBleChannel.d.ts.map +1 -1
- package/dist/cjs/ble/ReactNativeBleChannel.js +3 -2
- package/dist/cjs/ble/ReactNativeBleChannel.js.map +1 -1
- package/dist/cjs/ble/ReactNativeBleClient.d.ts +1 -6
- package/dist/cjs/ble/ReactNativeBleClient.d.ts.map +1 -1
- package/dist/cjs/ble/ReactNativeBleClient.js +2 -5
- package/dist/cjs/ble/ReactNativeBleClient.js.map +1 -1
- package/dist/esm/ble/BleScanner.d.ts +43 -7
- package/dist/esm/ble/BleScanner.d.ts.map +1 -1
- package/dist/esm/ble/BleScanner.js +234 -4
- package/dist/esm/ble/BleScanner.js.map +1 -1
- package/dist/esm/ble/ReactNativeBleChannel.d.ts.map +1 -1
- package/dist/esm/ble/ReactNativeBleChannel.js +3 -2
- package/dist/esm/ble/ReactNativeBleChannel.js.map +1 -1
- package/dist/esm/ble/ReactNativeBleClient.d.ts +1 -6
- package/dist/esm/ble/ReactNativeBleClient.d.ts.map +1 -1
- package/dist/esm/ble/ReactNativeBleClient.js +2 -5
- package/dist/esm/ble/ReactNativeBleClient.js.map +1 -1
- package/package.json +8 -8
- package/src/ble/BleScanner.ts +306 -10
- package/src/ble/ReactNativeBleChannel.ts +3 -4
- package/src/ble/ReactNativeBleClient.ts +5 -13
|
@@ -3,13 +3,243 @@
|
|
|
3
3
|
* Copyright 2022-2026 Matter.js Authors
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
|
-
import {
|
|
7
|
-
|
|
6
|
+
import { Bytes, ChannelType, createPromise, Duration, Logger, Millis, Seconds, Time, Timespan } from "#general";
|
|
7
|
+
import { BleError, BtpCodec } from "#protocol";
|
|
8
|
+
import { VendorId } from "#types";
|
|
9
|
+
const logger = Logger.get("BleScanner");
|
|
10
|
+
class BleScanner {
|
|
8
11
|
constructor(bleClient) {
|
|
9
|
-
|
|
12
|
+
this.bleClient = bleClient;
|
|
13
|
+
this.bleClient.setDiscoveryCallback(
|
|
14
|
+
(address, manufacturerData) => this.handleDiscoveredDevice(address, manufacturerData)
|
|
15
|
+
);
|
|
10
16
|
}
|
|
17
|
+
get type() {
|
|
18
|
+
return ChannelType.BLE;
|
|
19
|
+
}
|
|
20
|
+
recordWaiters = /* @__PURE__ */ new Map();
|
|
21
|
+
discoveredMatterDevices = /* @__PURE__ */ new Map();
|
|
11
22
|
getDiscoveredDevice(address) {
|
|
12
|
-
|
|
23
|
+
const device = this.discoveredMatterDevices.get(address);
|
|
24
|
+
if (device === void 0) {
|
|
25
|
+
throw new BleError(`No device found for address ${address}`);
|
|
26
|
+
}
|
|
27
|
+
return device;
|
|
28
|
+
}
|
|
29
|
+
/**
|
|
30
|
+
* Registers a deferred promise for a specific queryId together with a timeout and return the promise.
|
|
31
|
+
* The promise will be resolved when the timer runs out latest.
|
|
32
|
+
*/
|
|
33
|
+
async registerWaiterPromise(queryId, timeout, resolveOnUpdatedRecords = true, cancelResolver) {
|
|
34
|
+
const { promise, resolver } = createPromise();
|
|
35
|
+
let timer;
|
|
36
|
+
if (timeout) {
|
|
37
|
+
timer = Time.getTimer("BLE query timeout", timeout, () => {
|
|
38
|
+
cancelResolver?.();
|
|
39
|
+
this.finishWaiter(queryId, true);
|
|
40
|
+
}).start();
|
|
41
|
+
}
|
|
42
|
+
this.recordWaiters.set(queryId, { resolver, timer, resolveOnUpdatedRecords, cancelResolver });
|
|
43
|
+
logger.debug(
|
|
44
|
+
`Registered waiter for query ${queryId} with timeout ${timeout === void 0 ? "(none)" : Duration.format(timeout)}${resolveOnUpdatedRecords ? "" : " (not resolving on updated records)"}`
|
|
45
|
+
);
|
|
46
|
+
await promise;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Remove a waiter promise for a specific queryId and stop the connected timer. If required also resolve the
|
|
50
|
+
* promise.
|
|
51
|
+
*/
|
|
52
|
+
finishWaiter(queryId, resolvePromise, isUpdatedRecord = false) {
|
|
53
|
+
const waiter = this.recordWaiters.get(queryId);
|
|
54
|
+
if (waiter === void 0) return;
|
|
55
|
+
const { timer, resolver, resolveOnUpdatedRecords } = waiter;
|
|
56
|
+
if (isUpdatedRecord && !resolveOnUpdatedRecords) return;
|
|
57
|
+
logger.debug(`Finishing waiter for query ${queryId}, resolving: ${resolvePromise}`);
|
|
58
|
+
timer?.stop();
|
|
59
|
+
if (resolvePromise) {
|
|
60
|
+
resolver();
|
|
61
|
+
}
|
|
62
|
+
this.recordWaiters.delete(queryId);
|
|
63
|
+
}
|
|
64
|
+
cancelCommissionableDeviceDiscovery(identifier, resolvePromise = true) {
|
|
65
|
+
const queryKey = this.buildCommissionableQueryIdentifier(identifier);
|
|
66
|
+
const { cancelResolver } = this.recordWaiters.get(queryKey) ?? {};
|
|
67
|
+
cancelResolver?.();
|
|
68
|
+
this.finishWaiter(queryKey, resolvePromise);
|
|
69
|
+
}
|
|
70
|
+
handleDiscoveredDevice(peripheral, manufacturerServiceData) {
|
|
71
|
+
logger.debug(
|
|
72
|
+
`Discovered device ${peripheral.id} "${peripheral.localName}" ${manufacturerServiceData === void 0 ? void 0 : Bytes.toHex(manufacturerServiceData)}`
|
|
73
|
+
);
|
|
74
|
+
try {
|
|
75
|
+
const { discriminator, vendorId, productId, hasAdditionalAdvertisementData } = BtpCodec.decodeBleAdvertisementServiceData(manufacturerServiceData);
|
|
76
|
+
const commissionableDevice = {
|
|
77
|
+
deviceIdentifier: peripheral.id,
|
|
78
|
+
D: discriminator,
|
|
79
|
+
SD: discriminator >> 8 & 15,
|
|
80
|
+
VP: `${vendorId}+${productId}`,
|
|
81
|
+
CM: 1,
|
|
82
|
+
// Can be no other mode,
|
|
83
|
+
addresses: [{ type: "ble", peripheralAddress: peripheral.id }]
|
|
84
|
+
};
|
|
85
|
+
logger.debug(`Discovered device ${peripheral.id} data: ${JSON.stringify(commissionableDevice)}`);
|
|
86
|
+
const deviceExisting = this.discoveredMatterDevices.has(peripheral.id);
|
|
87
|
+
this.discoveredMatterDevices.set(peripheral.id, {
|
|
88
|
+
deviceData: commissionableDevice,
|
|
89
|
+
peripheral,
|
|
90
|
+
hasAdditionalAdvertisementData
|
|
91
|
+
});
|
|
92
|
+
const queryKey = this.findCommissionableQueryIdentifier(commissionableDevice);
|
|
93
|
+
if (queryKey !== void 0) {
|
|
94
|
+
this.finishWaiter(queryKey, true, deviceExisting);
|
|
95
|
+
}
|
|
96
|
+
} catch (error) {
|
|
97
|
+
logger.debug(`Seems not to be a valid Matter device: Failed to decode device data: ${error}`);
|
|
98
|
+
}
|
|
99
|
+
}
|
|
100
|
+
findCommissionableQueryIdentifier(record) {
|
|
101
|
+
const longDiscriminatorQueryId = this.buildCommissionableQueryIdentifier({ longDiscriminator: record.D });
|
|
102
|
+
if (this.recordWaiters.has(longDiscriminatorQueryId)) {
|
|
103
|
+
return longDiscriminatorQueryId;
|
|
104
|
+
}
|
|
105
|
+
const shortDiscriminatorQueryId = this.buildCommissionableQueryIdentifier({ shortDiscriminator: record.SD });
|
|
106
|
+
if (this.recordWaiters.has(shortDiscriminatorQueryId)) {
|
|
107
|
+
return shortDiscriminatorQueryId;
|
|
108
|
+
}
|
|
109
|
+
if (record.VP !== void 0) {
|
|
110
|
+
const vendorIdQueryId = this.buildCommissionableQueryIdentifier({
|
|
111
|
+
vendorId: VendorId(parseInt(record.VP.split("+")[0]))
|
|
112
|
+
});
|
|
113
|
+
if (this.recordWaiters.has(vendorIdQueryId)) {
|
|
114
|
+
return vendorIdQueryId;
|
|
115
|
+
}
|
|
116
|
+
if (record.VP.includes("+")) {
|
|
117
|
+
const productIdQueryId = this.buildCommissionableQueryIdentifier({
|
|
118
|
+
vendorId: VendorId(parseInt(record.VP.split("+")[1]))
|
|
119
|
+
});
|
|
120
|
+
if (this.recordWaiters.has(productIdQueryId)) {
|
|
121
|
+
return productIdQueryId;
|
|
122
|
+
}
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
if (this.recordWaiters.has("*")) {
|
|
126
|
+
return "*";
|
|
127
|
+
}
|
|
128
|
+
return void 0;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Builds an identifier string for commissionable queries based on the given identifier object.
|
|
132
|
+
* Some identifiers are identical to the official DNS-SD identifiers, others are custom.
|
|
133
|
+
*/
|
|
134
|
+
buildCommissionableQueryIdentifier(identifier) {
|
|
135
|
+
if ("longDiscriminator" in identifier) {
|
|
136
|
+
return `D:${identifier.longDiscriminator}`;
|
|
137
|
+
} else if ("shortDiscriminator" in identifier) {
|
|
138
|
+
return `SD:${identifier.shortDiscriminator}`;
|
|
139
|
+
} else if ("vendorId" in identifier) {
|
|
140
|
+
return `V:${identifier.vendorId}`;
|
|
141
|
+
} else if ("productId" in identifier) {
|
|
142
|
+
return `P:${identifier.productId}`;
|
|
143
|
+
} else return "*";
|
|
144
|
+
}
|
|
145
|
+
getCommissionableDevices(identifier) {
|
|
146
|
+
const storedRecords = Array.from(this.discoveredMatterDevices.values());
|
|
147
|
+
const foundRecords = new Array();
|
|
148
|
+
if ("longDiscriminator" in identifier) {
|
|
149
|
+
foundRecords.push(...storedRecords.filter(({ deviceData: { D } }) => D === identifier.longDiscriminator));
|
|
150
|
+
} else if ("shortDiscriminator" in identifier) {
|
|
151
|
+
foundRecords.push(
|
|
152
|
+
...storedRecords.filter(({ deviceData: { SD } }) => SD === identifier.shortDiscriminator)
|
|
153
|
+
);
|
|
154
|
+
} else if ("vendorId" in identifier) {
|
|
155
|
+
foundRecords.push(
|
|
156
|
+
...storedRecords.filter(
|
|
157
|
+
({ deviceData: { VP } }) => VP === `${identifier.vendorId}` || VP?.startsWith(`${identifier.vendorId}+`)
|
|
158
|
+
)
|
|
159
|
+
);
|
|
160
|
+
} else if ("productId" in identifier) {
|
|
161
|
+
foundRecords.push(
|
|
162
|
+
...storedRecords.filter(({ deviceData: { VP } }) => VP?.endsWith(`+${identifier.productId}`))
|
|
163
|
+
);
|
|
164
|
+
} else {
|
|
165
|
+
foundRecords.push(...storedRecords.filter(({ deviceData: { CM } }) => CM === 1 || CM === 2));
|
|
166
|
+
}
|
|
167
|
+
return foundRecords;
|
|
168
|
+
}
|
|
169
|
+
async findOperationalDevice() {
|
|
170
|
+
logger.info(`skip BLE scan because scanning for operational devices is not supported`);
|
|
171
|
+
return void 0;
|
|
172
|
+
}
|
|
173
|
+
getDiscoveredOperationalDevice() {
|
|
174
|
+
logger.info(`skip BLE scan because scanning for operational devices is not supported`);
|
|
175
|
+
return void 0;
|
|
176
|
+
}
|
|
177
|
+
async findCommissionableDevices(identifier, timeout = Seconds(10), ignoreExistingRecords = false) {
|
|
178
|
+
let storedRecords = this.getCommissionableDevices(identifier);
|
|
179
|
+
if (ignoreExistingRecords) {
|
|
180
|
+
for (const record of storedRecords) {
|
|
181
|
+
this.discoveredMatterDevices.delete(record.peripheral.id);
|
|
182
|
+
}
|
|
183
|
+
storedRecords = [];
|
|
184
|
+
}
|
|
185
|
+
if (storedRecords.length === 0) {
|
|
186
|
+
const queryKey = this.buildCommissionableQueryIdentifier(identifier);
|
|
187
|
+
await this.bleClient.startScanning();
|
|
188
|
+
await this.registerWaiterPromise(queryKey, timeout);
|
|
189
|
+
storedRecords = this.getCommissionableDevices(identifier);
|
|
190
|
+
await this.bleClient.stopScanning();
|
|
191
|
+
}
|
|
192
|
+
return storedRecords.map(({ deviceData }) => deviceData);
|
|
193
|
+
}
|
|
194
|
+
async findCommissionableDevicesContinuously(identifier, callback, timeout, cancelSignal) {
|
|
195
|
+
const discoveredDevices = /* @__PURE__ */ new Set();
|
|
196
|
+
const discoveryEndTime = timeout ? Time.nowMs + timeout : void 0;
|
|
197
|
+
const queryKey = this.buildCommissionableQueryIdentifier(identifier);
|
|
198
|
+
await this.bleClient.startScanning();
|
|
199
|
+
let queryResolver;
|
|
200
|
+
if (cancelSignal === void 0) {
|
|
201
|
+
const { promise, resolver } = createPromise();
|
|
202
|
+
cancelSignal = promise;
|
|
203
|
+
queryResolver = resolver;
|
|
204
|
+
}
|
|
205
|
+
let canceled = false;
|
|
206
|
+
cancelSignal?.then(
|
|
207
|
+
() => {
|
|
208
|
+
canceled = true;
|
|
209
|
+
this.finishWaiter(queryKey, true);
|
|
210
|
+
},
|
|
211
|
+
(cause) => {
|
|
212
|
+
logger.error("Unexpected error canceling commissioning", cause);
|
|
213
|
+
}
|
|
214
|
+
);
|
|
215
|
+
while (!canceled) {
|
|
216
|
+
this.getCommissionableDevices(identifier).forEach(({ deviceData }) => {
|
|
217
|
+
const { deviceIdentifier } = deviceData;
|
|
218
|
+
if (!discoveredDevices.has(deviceIdentifier)) {
|
|
219
|
+
discoveredDevices.add(deviceIdentifier);
|
|
220
|
+
callback(deviceData);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
let remainingTime;
|
|
224
|
+
if (discoveryEndTime !== void 0) {
|
|
225
|
+
remainingTime = Millis.ceil(Timespan(Time.nowMs, discoveryEndTime).duration);
|
|
226
|
+
if (remainingTime <= 0) {
|
|
227
|
+
break;
|
|
228
|
+
}
|
|
229
|
+
}
|
|
230
|
+
await this.registerWaiterPromise(queryKey, remainingTime, false, queryResolver);
|
|
231
|
+
}
|
|
232
|
+
await this.bleClient.stopScanning();
|
|
233
|
+
return this.getCommissionableDevices(identifier).map(({ deviceData }) => deviceData);
|
|
234
|
+
}
|
|
235
|
+
getDiscoveredCommissionableDevices(identifier) {
|
|
236
|
+
return this.getCommissionableDevices(identifier).map(({ deviceData }) => deviceData);
|
|
237
|
+
}
|
|
238
|
+
async close() {
|
|
239
|
+
await this.bleClient.stopScanning();
|
|
240
|
+
[...this.recordWaiters.keys()].forEach(
|
|
241
|
+
(queryId) => this.finishWaiter(queryId, !!this.recordWaiters.get(queryId)?.timer)
|
|
242
|
+
);
|
|
13
243
|
}
|
|
14
244
|
}
|
|
15
245
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/ble/BleScanner.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactNativeBleChannel.d.ts","sourceRoot":"","sources":["../../../src/ble/ReactNativeBleChannel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,KAAK,EACL,OAAO,EACP,WAAW,EACX,uBAAuB,EAIvB,aAAa,EAGhB,MAAM,UAAU,CAAC;AAClB,OAAO,EASH,GAAG,EACH,UAAU,EAIV,iBAAiB,EACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAEH,cAAc,EACd,MAAM,EAGT,MAAM,sBAAsB,CAAC;AAK9B,qBAAa,8BAA+B,YAAW,uBAAuB;;gBAK9D,GAAG,EAAE,GAAG;IAId,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"ReactNativeBleChannel.d.ts","sourceRoot":"","sources":["../../../src/ble/ReactNativeBleChannel.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EACH,KAAK,EACL,OAAO,EACP,WAAW,EACX,uBAAuB,EAIvB,aAAa,EAGhB,MAAM,UAAU,CAAC;AAClB,OAAO,EASH,GAAG,EACH,UAAU,EAIV,iBAAiB,EACpB,MAAM,WAAW,CAAC;AACnB,OAAO,EAEH,cAAc,EACd,MAAM,EAGT,MAAM,sBAAsB,CAAC;AAK9B,qBAAa,8BAA+B,YAAW,uBAAuB;;gBAK9D,GAAG,EAAE,GAAG;IAId,WAAW,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IA8FlE,MAAM,CAAC,QAAQ,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,GAAG,uBAAuB,CAAC,QAAQ;IAO3F,KAAK;IAMX,QAAQ,CAAC,IAAI,EAAE,WAAW;CAG7B;AAED,qBAAa,qBAAsB,SAAQ,UAAU,CAAC,KAAK,CAAC;IA4GpD,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,UAAU;WA5GlB,MAAM,CACf,UAAU,EAAE,MAAM,EAClB,wBAAwB,EAAE,cAAc,EACxC,4BAA4B,EAAE,cAAc,EAC5C,uBAAuB,EAAE,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,KAAK,IAAI,EACtE,mCAAmC,CAAC,EAAE,KAAK,GAC5C,OAAO,CAAC,qBAAqB,CAAC;IAiGjC,OAAO,CAAC,SAAS,CAAQ;IACzB,OAAO,CAAC,sBAAsB,CAAe;gBAGxB,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,iBAAiB;IAWlD;;;;OAIG;IACG,IAAI,CAAC,IAAI,EAAE,KAAK;IAYtB,IAAI,IAAI,WAEP;IAEK,KAAK;CAMd"}
|
|
@@ -46,8 +46,9 @@ class ReactNativeBleCentralInterface {
|
|
|
46
46
|
if (this.#onMatterMessageListener === void 0) {
|
|
47
47
|
throw new InternalError(`Network Interface was not added to the system yet.`);
|
|
48
48
|
}
|
|
49
|
-
const { peripheral
|
|
50
|
-
|
|
49
|
+
const { peripheral, hasAdditionalAdvertisementData } = this.#ble.scanner.getDiscoveredDevice(
|
|
50
|
+
address.peripheralAddress
|
|
51
|
+
);
|
|
51
52
|
if (this.#openChannels.has(address)) {
|
|
52
53
|
throw new BleError(
|
|
53
54
|
`Peripheral ${address.peripheralAddress} is already connected. Only one connection supported right now.`
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/ble/ReactNativeBleChannel.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA;AAAA,EACI;AAAA,EAEA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,OACG;AACP;AAAA,EACI;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EAEA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,OACG;AACP;AAAA,EACI;AAAA,EAGA,YAAY;AAAA,OAET;AAGP,MAAM,SAAS,OAAO,IAAI,YAAY;AAE/B,MAAM,+BAAkE;AAAA,EAC3E;AAAA,EACA,gBAA4C,oBAAI,IAAI;AAAA,EACpD;AAAA,EAEA,YAAY,KAAU;AAClB,SAAK,OAAO;AAAA,EAChB;AAAA,EAEA,MAAM,YAAY,SAAiD;AAC/D,QAAI,QAAQ,SAAS,OAAO;AACxB,YAAM,IAAI,cAAc,4BAA4B,QAAQ,IAAI,GAAG;AAAA,IACvE;AACA,QAAI,KAAK,6BAA6B,QAAW;AAC7C,YAAM,IAAI,cAAc,oDAAoD;AAAA,IAChF;AAGA,UAAM,EAAE,YAAY
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": []
|
|
6
6
|
}
|
|
@@ -4,17 +4,12 @@
|
|
|
4
4
|
* SPDX-License-Identifier: Apache-2.0
|
|
5
5
|
*/
|
|
6
6
|
import { Bytes, MatterError } from "#general";
|
|
7
|
-
import { BlePeripheral } from "#protocol";
|
|
8
7
|
import { Device } from "react-native-ble-plx";
|
|
9
|
-
export interface ReactNativeBlePeripheral extends BlePeripheral {
|
|
10
|
-
readonly device: Device;
|
|
11
|
-
}
|
|
12
8
|
export declare class BluetoothUnauthorizedError extends MatterError {
|
|
13
9
|
}
|
|
14
10
|
export declare class BluetoothUnsupportedError extends MatterError {
|
|
15
11
|
}
|
|
16
12
|
export declare class ReactNativeBleClient {
|
|
17
|
-
#private;
|
|
18
13
|
private readonly bleManager;
|
|
19
14
|
private readonly discoveredPeripherals;
|
|
20
15
|
private shouldScan;
|
|
@@ -22,7 +17,7 @@ export declare class ReactNativeBleClient {
|
|
|
22
17
|
private bleState;
|
|
23
18
|
private deviceDiscoveredCallback;
|
|
24
19
|
constructor();
|
|
25
|
-
setDiscoveryCallback(callback: (peripheral:
|
|
20
|
+
setDiscoveryCallback(callback: (peripheral: Device, manufacturerData: Bytes) => void): void;
|
|
26
21
|
startScanning(): Promise<void>;
|
|
27
22
|
stopScanning(): Promise<void>;
|
|
28
23
|
private handleDiscoveredDevice;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ReactNativeBleClient.d.ts","sourceRoot":"","sources":["../../../src/ble/ReactNativeBleClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAsB,WAAW,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"ReactNativeBleClient.d.ts","sourceRoot":"","sources":["../../../src/ble/ReactNativeBleClient.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,KAAK,EAAsB,WAAW,EAAE,MAAM,UAAU,CAAC;AAElE,OAAO,EAA+D,MAAM,EAAE,MAAM,sBAAsB,CAAC;AAI3G,qBAAa,0BAA2B,SAAQ,WAAW;CAAG;AAC9D,qBAAa,yBAA0B,SAAQ,WAAW;CAAG;AAE7D,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;IAC/C,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAuE;IAC7G,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAA0B;IAC1C,OAAO,CAAC,wBAAwB,CAAsE;;IAqC/F,oBAAoB,CAAC,QAAQ,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,gBAAgB,EAAE,KAAK,KAAK,IAAI;IAO9E,aAAa;IAqCb,YAAY;IAOzB,OAAO,CAAC,sBAAsB;CA8BjC"}
|
|
@@ -54,7 +54,7 @@ class ReactNativeBleClient {
|
|
|
54
54
|
setDiscoveryCallback(callback) {
|
|
55
55
|
this.deviceDiscoveredCallback = callback;
|
|
56
56
|
for (const { peripheral, matterServiceData } of this.discoveredPeripherals.values()) {
|
|
57
|
-
this.deviceDiscoveredCallback(
|
|
57
|
+
this.deviceDiscoveredCallback(peripheral, matterServiceData);
|
|
58
58
|
}
|
|
59
59
|
}
|
|
60
60
|
async startScanning() {
|
|
@@ -122,10 +122,7 @@ class ReactNativeBleClient {
|
|
|
122
122
|
peripheral,
|
|
123
123
|
matterServiceData
|
|
124
124
|
});
|
|
125
|
-
this.deviceDiscoveredCallback?.(
|
|
126
|
-
}
|
|
127
|
-
#asBlePeripheral(device) {
|
|
128
|
-
return { device, address: device.id };
|
|
125
|
+
this.deviceDiscoveredCallback?.(peripheral, matterServiceData);
|
|
129
126
|
}
|
|
130
127
|
}
|
|
131
128
|
export {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/ble/ReactNativeBleClient.ts"],
|
|
4
|
-
"mappings": "AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,SAAS,OAAO,YAAY,QAAQ,mBAAmB;AACvD,SAAS,+
|
|
4
|
+
"mappings": "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",
|
|
5
5
|
"names": ["error"]
|
|
6
6
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@matter/react-native",
|
|
3
|
-
"version": "0.16.11
|
|
3
|
+
"version": "0.16.11",
|
|
4
4
|
"description": "Experimental React Native support for matter.js",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"iot",
|
|
@@ -36,19 +36,19 @@
|
|
|
36
36
|
},
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@craftzdog/react-native-buffer": "6.1.1",
|
|
39
|
-
"@matter/general": "0.16.11
|
|
40
|
-
"@matter/nodejs": "0.16.11
|
|
41
|
-
"@matter/protocol": "0.16.11
|
|
39
|
+
"@matter/general": "0.16.11",
|
|
40
|
+
"@matter/nodejs": "0.16.11",
|
|
41
|
+
"@matter/protocol": "0.16.11",
|
|
42
42
|
"@react-native-async-storage/async-storage": "^2.2.0",
|
|
43
43
|
"@react-native-community/netinfo": "^12.0.1",
|
|
44
|
-
"@types/node": "^25.
|
|
45
|
-
"react-native-ble-plx": "^3.5.
|
|
44
|
+
"@types/node": "^25.2.2",
|
|
45
|
+
"react-native-ble-plx": "^3.5.0",
|
|
46
46
|
"react-native-polyfill-globals": "^3.1.0",
|
|
47
|
-
"react-native-quick-crypto": "^1.0.
|
|
47
|
+
"react-native-quick-crypto": "^1.0.11",
|
|
48
48
|
"react-native-udp": "^4.1.7"
|
|
49
49
|
},
|
|
50
50
|
"devDependencies": {
|
|
51
|
-
"@matter/tools": "0.16.11
|
|
51
|
+
"@matter/tools": "0.16.11"
|
|
52
52
|
},
|
|
53
53
|
"overrides": {
|
|
54
54
|
"brorand": "npm:@matter.js/brorand@1.1.0"
|