@fww_123/uni-ble-scanner 1.0.0

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 (43) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +283 -0
  3. package/dist/core/base-scanner.d.ts +99 -0
  4. package/dist/core/base-scanner.d.ts.map +1 -0
  5. package/dist/factory.d.ts +44 -0
  6. package/dist/factory.d.ts.map +1 -0
  7. package/dist/index.d.ts +15 -0
  8. package/dist/index.d.ts.map +1 -0
  9. package/dist/index.esm.js +1791 -0
  10. package/dist/index.js +1818 -0
  11. package/dist/platforms/android-native.d.ts +30 -0
  12. package/dist/platforms/android-native.d.ts.map +1 -0
  13. package/dist/platforms/harmony-native.d.ts +24 -0
  14. package/dist/platforms/harmony-native.d.ts.map +1 -0
  15. package/dist/platforms/ios-native.d.ts +27 -0
  16. package/dist/platforms/ios-native.d.ts.map +1 -0
  17. package/dist/platforms/uniapp-scanner.d.ts +30 -0
  18. package/dist/platforms/uniapp-scanner.d.ts.map +1 -0
  19. package/dist/types.d.ts +170 -0
  20. package/dist/types.d.ts.map +1 -0
  21. package/dist/utils/data-parser.d.ts +32 -0
  22. package/dist/utils/data-parser.d.ts.map +1 -0
  23. package/dist/utils/errors.d.ts +27 -0
  24. package/dist/utils/errors.d.ts.map +1 -0
  25. package/dist/utils/permissions.d.ts +9 -0
  26. package/dist/utils/permissions.d.ts.map +1 -0
  27. package/dist/utils/platform.d.ts +18 -0
  28. package/dist/utils/platform.d.ts.map +1 -0
  29. package/package.json +58 -0
  30. package/src/core/base-scanner.ts +309 -0
  31. package/src/factory.ts +116 -0
  32. package/src/index.ts +54 -0
  33. package/src/platforms/android-native.ts +300 -0
  34. package/src/platforms/harmony-native.ts +267 -0
  35. package/src/platforms/ios-native.ts +264 -0
  36. package/src/platforms/uniapp-scanner.ts +171 -0
  37. package/src/types/global.d.ts +25 -0
  38. package/src/types/uni-types.d.ts +83 -0
  39. package/src/types.ts +178 -0
  40. package/src/utils/data-parser.ts +217 -0
  41. package/src/utils/errors.ts +105 -0
  42. package/src/utils/permissions.ts +244 -0
  43. package/src/utils/platform.ts +70 -0
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 uni-ble-scanner
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
package/README.md ADDED
@@ -0,0 +1,283 @@
1
+ # uni-ble-scanner
2
+
3
+ 跨平台蓝牙低功耗(BLE)扫描组件,支持 Android、HarmonyOS 和 iOS 三大平台。
4
+
5
+ ## 特性
6
+
7
+ - 🚀 **跨平台支持**:一套代码同时支持 Android、HarmonyOS 和 iOS
8
+ - 📱 **多模式扫描**:支持 UniApp 标准 API 和原生 API 两种模式
9
+ - 🔧 **灵活配置**:丰富的扫描选项和过滤器
10
+ - 🎯 **类型安全**:完整的 TypeScript 类型支持
11
+ - 📦 **轻量级**:无额外依赖,体积小巧
12
+ - 🔋 **低功耗优化**:支持低功耗扫描模式
13
+
14
+ ## 安装
15
+
16
+ ```bash
17
+ npm install uni-ble-scanner
18
+ ```
19
+
20
+ ## 快速开始
21
+
22
+ ### 1. 基础用法
23
+
24
+ ```typescript
25
+ import { createScanner, ScanState } from 'uni-ble-scanner';
26
+
27
+ // 创建扫描器
28
+ const scanner = createScanner();
29
+
30
+ // 初始化
31
+ await scanner.init();
32
+
33
+ // 开始扫描
34
+ await scanner.startScan(
35
+ {
36
+ timeout: 10000, // 扫描超时时间(毫秒)
37
+ allowDuplicates: false, // 是否允许重复上报
38
+ rssiThreshold: -80, // 信号强度阈值
39
+ },
40
+ {
41
+ onDeviceFound: (device) => {
42
+ console.log('发现设备:', device.name, device.deviceId, device.RSSI);
43
+ },
44
+ onScanStart: () => {
45
+ console.log('扫描开始');
46
+ },
47
+ onScanStop: () => {
48
+ console.log('扫描停止');
49
+ },
50
+ onTimeout: () => {
51
+ console.log('扫描超时');
52
+ },
53
+ onError: (error) => {
54
+ console.error('扫描错误:', error);
55
+ },
56
+ }
57
+ );
58
+
59
+ // 停止扫描
60
+ await scanner.stopScan();
61
+
62
+ // 获取已发现的设备
63
+ const devices = scanner.getDiscoveredDevices();
64
+
65
+ // 销毁扫描器
66
+ scanner.destroy();
67
+ ```
68
+
69
+ ### 2. 使用过滤器
70
+
71
+ ```typescript
72
+ await scanner.startScan(
73
+ {
74
+ // 按名称过滤
75
+ nameFilter: ['Device', /Sensor/],
76
+
77
+ // 按服务 UUID 过滤
78
+ services: ['0000180F-0000-1000-8000-00805F9B34FB'], // 电池服务
79
+
80
+ // 按制造商 ID 过滤
81
+ manufacturerFilter: [0x004C], // Apple
82
+
83
+ // 信号强度阈值
84
+ rssiThreshold: -70,
85
+ },
86
+ {
87
+ onDeviceFound: (device) => {
88
+ console.log('符合条件的设备:', device);
89
+ },
90
+ }
91
+ );
92
+ ```
93
+
94
+ ### 3. 平台特定配置
95
+
96
+ ```typescript
97
+ import { createScanner, Platform } from 'uni-ble-scanner';
98
+
99
+ const scanner = createScanner({
100
+ type: 'native', // 使用原生 API
101
+ platformConfig: {
102
+ // Android 配置
103
+ android: {
104
+ scanMode: 2, // SCAN_MODE_LOW_LATENCY
105
+ callbackType: 1, // CALLBACK_TYPE_ALL_MATCHES
106
+ },
107
+ // iOS 配置
108
+ ios: {
109
+ allowBackgroundScan: true,
110
+ restoreIdentifier: 'com.example.ble-scanner',
111
+ },
112
+ // 鸿蒙配置
113
+ harmony: {
114
+ // 鸿蒙特定配置
115
+ },
116
+ },
117
+ });
118
+ ```
119
+
120
+ ### 4. 权限处理
121
+
122
+ ```typescript
123
+ // 检查权限
124
+ const hasPermission = await scanner.checkPermissions();
125
+ if (!hasPermission) {
126
+ // 请求权限
127
+ const granted = await scanner.requestPermissions();
128
+ if (!granted) {
129
+ console.log('用户拒绝了蓝牙权限');
130
+ return;
131
+ }
132
+ }
133
+ ```
134
+
135
+ ### 5. 监听适配器状态
136
+
137
+ ```typescript
138
+ scanner.onAdapterStateChange((state) => {
139
+ console.log('蓝牙适配器状态:', state);
140
+ // state.available: 是否可用
141
+ // state.discovering: 是否正在扫描
142
+ });
143
+ ```
144
+
145
+ ## API 文档
146
+
147
+ ### createScanner(options?)
148
+
149
+ 创建蓝牙扫描器实例。
150
+
151
+ **参数:**
152
+
153
+ | 参数 | 类型 | 说明 |
154
+ |------|------|------|
155
+ | options.type | `'auto' \| 'uniapp' \| 'native'` | 扫描器类型,默认 `'auto'` |
156
+ | options.platformConfig | `PlatformConfig` | 平台特定配置 |
157
+
158
+ **返回值:** `IBLEScanner`
159
+
160
+ ### IBLEScanner 接口
161
+
162
+ #### 方法
163
+
164
+ | 方法 | 返回值 | 说明 |
165
+ |------|--------|------|
166
+ | `init()` | `Promise<void>` | 初始化蓝牙适配器 |
167
+ | `startScan(options?, callbacks?)` | `Promise<void>` | 开始扫描 |
168
+ | `stopScan()` | `Promise<void>` | 停止扫描 |
169
+ | `getDiscoveredDevices()` | `BLEDevice[]` | 获取已发现的设备列表 |
170
+ | `clearDevices()` | `void` | 清空设备列表 |
171
+ | `getState()` | `ScanState` | 获取当前扫描状态 |
172
+ | `getPlatform()` | `Platform` | 获取当前平台 |
173
+ | `checkPermissions()` | `Promise<boolean>` | 检查蓝牙权限 |
174
+ | `requestPermissions()` | `Promise<boolean>` | 请求蓝牙权限 |
175
+ | `onAdapterStateChange(callback)` | `void` | 监听适配器状态变化 |
176
+ | `destroy()` | `void` | 销毁扫描器 |
177
+
178
+ #### ScanOptions
179
+
180
+ | 属性 | 类型 | 默认值 | 说明 |
181
+ |------|------|--------|------|
182
+ | timeout | `number` | `10000` | 扫描超时时间(毫秒) |
183
+ | allowDuplicates | `boolean` | `false` | 是否允许重复上报同一设备 |
184
+ | services | `string[]` | - | 要扫描的服务 UUID 列表 |
185
+ | nameFilter | `string \| string[] \| RegExp` | - | 设备名称过滤器 |
186
+ | rssiThreshold | `number` | - | 信号强度阈值(dBm) |
187
+ | manufacturerFilter | `number \| number[]` | - | 制造商 ID 过滤器 |
188
+
189
+ #### BLEDevice
190
+
191
+ | 属性 | 类型 | 说明 |
192
+ |------|------|------|
193
+ | deviceId | `string` | 设备 ID(MAC 地址或 UUID) |
194
+ | name | `string` | 设备名称 |
195
+ | RSSI | `number` | 信号强度(dBm) |
196
+ | advertisData | `ArrayBuffer` | 广播数据 |
197
+ | advertisDataBase64 | `string` | 广播数据(Base64) |
198
+ | manufacturerData | `Record<string, ArrayBuffer>` | 制造商数据 |
199
+ | serviceUuids | `string[]` | 服务 UUID 列表 |
200
+ | localName | `string` | 本地名称 |
201
+ | isConnectable | `boolean` | 是否可连接 |
202
+ | txPowerLevel | `number` | 发射功率 |
203
+
204
+ ## 平台支持
205
+
206
+ | 平台 | UniApp API | 原生 API |
207
+ |------|------------|----------|
208
+ | Android | ✅ | ✅ |
209
+ | iOS | ✅ | ✅ |
210
+ | HarmonyOS | ✅ | ✅ |
211
+ | 微信小程序 | ✅ | ❌ |
212
+ | H5 | ⚠️ | ❌ |
213
+
214
+ ## 注意事项
215
+
216
+ ### Android
217
+
218
+ 1. **权限要求**:
219
+ - Android 12+ 需要 `BLUETOOTH_SCAN` 和 `BLUETOOTH_CONNECT` 权限
220
+ - Android 11 及以下需要 `BLUETOOTH` 和 `BLUETOOTH_ADMIN` 权限
221
+ - 所有版本都需要位置权限
222
+
223
+ 2. **配置 `manifest.json`**:
224
+ ```json
225
+ {
226
+ "permissions": {
227
+ "Bluetooth": {
228
+ "description": "使用蓝牙功能"
229
+ }
230
+ }
231
+ }
232
+ ```
233
+
234
+ ### iOS
235
+
236
+ 1. **Info.plist 配置**:
237
+ ```xml
238
+ <key>NSBluetoothAlwaysUsageDescription</key>
239
+ <string>需要使用蓝牙扫描设备</string>
240
+ <key>NSBluetoothPeripheralUsageDescription</key>
241
+ <string>需要使用蓝牙扫描设备</string>
242
+ ```
243
+
244
+ ### HarmonyOS
245
+
246
+ 1. **module.json5 配置**:
247
+ ```json
248
+ {
249
+ "requestPermissions": [
250
+ {
251
+ "name": "ohos.permission.ACCESS_BLUETOOTH"
252
+ },
253
+ {
254
+ "name": "ohos.permission.LOCATION"
255
+ }
256
+ ]
257
+ }
258
+ ```
259
+
260
+ ## 示例项目
261
+
262
+ 查看 `examples` 目录获取更多使用示例:
263
+
264
+ - `basic-scan` - 基础扫描示例
265
+ - `filtered-scan` - 带过滤器的扫描
266
+ - `multi-platform` - 多平台配置示例
267
+
268
+ ## 许可证
269
+
270
+ MIT License
271
+
272
+ ## 贡献
273
+
274
+ 欢迎提交 Issue 和 Pull Request!
275
+
276
+ ## 更新日志
277
+
278
+ ### v1.0.0
279
+
280
+ - 初始版本发布
281
+ - 支持 Android、HarmonyOS、iOS 三大平台
282
+ - 支持 UniApp 标准 API 和原生 API
283
+ - 提供完整的 TypeScript 类型支持
@@ -0,0 +1,99 @@
1
+ import { BLEDevice, ScanOptions, ScanState, ScanCallbacks, IBLEScanner, AdapterState, Platform, PlatformConfig } from '../types';
2
+ /**
3
+ * 扫描器基类
4
+ */
5
+ export declare abstract class BaseScanner implements IBLEScanner {
6
+ protected state: ScanState;
7
+ protected discoveredDevices: Map<string, BLEDevice>;
8
+ protected callbacks: ScanCallbacks;
9
+ protected options: ScanOptions;
10
+ protected platformConfig: PlatformConfig;
11
+ protected initialized: boolean;
12
+ protected timeoutId: number | null;
13
+ protected adapterStateListeners: ((state: AdapterState) => void)[];
14
+ /**
15
+ * 获取当前平台
16
+ */
17
+ abstract getPlatform(): Platform;
18
+ /**
19
+ * 初始化蓝牙适配器
20
+ */
21
+ abstract init(): Promise<void>;
22
+ /**
23
+ * 平台特定的开始扫描实现
24
+ */
25
+ protected abstract startScanInternal(): Promise<void>;
26
+ /**
27
+ * 平台特定的停止扫描实现
28
+ */
29
+ protected abstract stopScanInternal(): Promise<void>;
30
+ /**
31
+ * 检查蓝牙权限
32
+ */
33
+ abstract checkPermissions(): Promise<boolean>;
34
+ /**
35
+ * 请求蓝牙权限
36
+ */
37
+ abstract requestPermissions(): Promise<boolean>;
38
+ /**
39
+ * 监听适配器状态变化
40
+ */
41
+ abstract onAdapterStateChange(callback: (state: AdapterState) => void): void;
42
+ /**
43
+ * 开始扫描
44
+ */
45
+ startScan(options?: ScanOptions, callbacks?: ScanCallbacks): Promise<void>;
46
+ /**
47
+ * 停止扫描
48
+ */
49
+ stopScan(): Promise<void>;
50
+ /**
51
+ * 获取已发现的设备列表
52
+ */
53
+ getDiscoveredDevices(): BLEDevice[];
54
+ /**
55
+ * 清空设备列表
56
+ */
57
+ clearDevices(): void;
58
+ /**
59
+ * 获取当前扫描状态
60
+ */
61
+ getState(): ScanState;
62
+ /**
63
+ * 销毁扫描器
64
+ */
65
+ destroy(): void;
66
+ /**
67
+ * 处理发现的设备
68
+ */
69
+ protected handleDeviceFound(rawDevice: any): void;
70
+ /**
71
+ * 过滤设备
72
+ */
73
+ protected filterDevice(device: BLEDevice): boolean;
74
+ /**
75
+ * 处理超时
76
+ */
77
+ protected handleTimeout(): void;
78
+ /**
79
+ * 处理错误
80
+ */
81
+ protected handleError(error: any): void;
82
+ /**
83
+ * 设置状态
84
+ */
85
+ protected setState(state: ScanState): void;
86
+ /**
87
+ * 清除超时定时器
88
+ */
89
+ protected clearTimeout(): void;
90
+ /**
91
+ * 获取默认选项
92
+ */
93
+ protected getDefaultOptions(): ScanOptions;
94
+ /**
95
+ * 触发适配器状态变化
96
+ */
97
+ protected emitAdapterStateChange(state: AdapterState): void;
98
+ }
99
+ //# sourceMappingURL=base-scanner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base-scanner.d.ts","sourceRoot":"","sources":["../../src/core/base-scanner.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,SAAS,EACT,WAAW,EACX,SAAS,EACT,aAAa,EACb,WAAW,EACX,YAAY,EAEZ,QAAQ,EACR,cAAc,EAEf,MAAM,UAAU,CAAC;AAIlB;;GAEG;AACH,8BAAsB,WAAY,YAAW,WAAW;IACtD,SAAS,CAAC,KAAK,EAAE,SAAS,CAAkB;IAC5C,SAAS,CAAC,iBAAiB,EAAE,GAAG,CAAC,MAAM,EAAE,SAAS,CAAC,CAAa;IAChE,SAAS,CAAC,SAAS,EAAE,aAAa,CAAM;IACxC,SAAS,CAAC,OAAO,EAAE,WAAW,CAAM;IACpC,SAAS,CAAC,cAAc,EAAE,cAAc,CAAM;IAC9C,SAAS,CAAC,WAAW,UAAS;IAC9B,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAQ;IAC1C,SAAS,CAAC,qBAAqB,EAAE,CAAC,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,CAAC,EAAE,CAAM;IAExE;;OAEG;IACH,QAAQ,CAAC,WAAW,IAAI,QAAQ;IAEhC;;OAEG;IACH,QAAQ,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAE9B;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAErD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC;IAEpD;;OAEG;IACH,QAAQ,CAAC,gBAAgB,IAAI,OAAO,CAAC,OAAO,CAAC;IAE7C;;OAEG;IACH,QAAQ,CAAC,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAE/C;;OAEG;IACH,QAAQ,CAAC,oBAAoB,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,YAAY,KAAK,IAAI,GAAG,IAAI;IAE5E;;OAEG;IACG,SAAS,CAAC,OAAO,GAAE,WAAgB,EAAE,SAAS,GAAE,aAAkB,GAAG,OAAO,CAAC,IAAI,CAAC;IA6CxF;;OAEG;IACG,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAkB/B;;OAEG;IACH,oBAAoB,IAAI,SAAS,EAAE;IAInC;;OAEG;IACH,YAAY,IAAI,IAAI;IAIpB;;OAEG;IACH,QAAQ,IAAI,SAAS;IAIrB;;OAEG;IACH,OAAO,IAAI,IAAI;IASf;;OAEG;IACH,SAAS,CAAC,iBAAiB,CAAC,SAAS,EAAE,GAAG,GAAG,IAAI;IA2BjD;;OAEG;IACH,SAAS,CAAC,YAAY,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO;IA4DlD;;OAEG;IACH,SAAS,CAAC,aAAa,IAAI,IAAI;IAK/B;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,GAAG,GAAG,IAAI;IAMvC;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,SAAS,GAAG,IAAI;IAI1C;;OAEG;IACH,SAAS,CAAC,YAAY,IAAI,IAAI;IAO9B;;OAEG;IACH,SAAS,CAAC,iBAAiB,IAAI,WAAW;IAO1C;;OAEG;IACH,SAAS,CAAC,sBAAsB,CAAC,KAAK,EAAE,YAAY,GAAG,IAAI;CAG5D"}
@@ -0,0 +1,44 @@
1
+ import { IBLEScanner, Platform, PlatformConfig } from './types';
2
+ import { getPlatform, isApp } from './utils/platform';
3
+ /**
4
+ * 扫描器类型
5
+ */
6
+ export type ScannerType = 'auto' | 'uniapp' | 'native';
7
+ /**
8
+ * 创建扫描器的选项
9
+ */
10
+ export interface CreateScannerOptions {
11
+ /** 扫描器类型 */
12
+ type?: ScannerType;
13
+ /** 平台特定配置 */
14
+ platformConfig?: PlatformConfig;
15
+ }
16
+ /**
17
+ * 创建蓝牙扫描器
18
+ * @param options 创建选项
19
+ * @returns 蓝牙扫描器实例
20
+ */
21
+ export declare function createScanner(options?: CreateScannerOptions): IBLEScanner;
22
+ /**
23
+ * 创建 UniApp 扫描器
24
+ * 使用 UniApp 标准蓝牙 API,兼容所有平台
25
+ */
26
+ export declare function createUniAppScanner(platformConfig?: PlatformConfig): IBLEScanner;
27
+ /**
28
+ * 创建原生扫描器
29
+ * 使用平台原生 API,功能更强大但需要特定条件
30
+ */
31
+ export declare function createNativeScanner(platformConfig?: PlatformConfig): IBLEScanner;
32
+ /**
33
+ * 获取当前平台
34
+ */
35
+ export { getPlatform, Platform };
36
+ /**
37
+ * 检查当前环境是否支持蓝牙
38
+ */
39
+ export declare function isBluetoothSupported(): boolean;
40
+ /**
41
+ * 检查当前环境是否是 APP
42
+ */
43
+ export { isApp };
44
+ //# sourceMappingURL=factory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"factory.d.ts","sourceRoot":"","sources":["../src/factory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAKhE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AAEtD;;GAEG;AACH,MAAM,MAAM,WAAW,GAAG,MAAM,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAEvD;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,YAAY;IACZ,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,aAAa;IACb,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,GAAE,oBAAyB,GAAG,WAAW,CA2C7E;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,WAAW,CAEhF;AAED;;;GAGG;AACH,wBAAgB,mBAAmB,CAAC,cAAc,CAAC,EAAE,cAAc,GAAG,WAAW,CAEhF;AAED;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,QAAQ,EAAE,CAAC;AAEjC;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,OAAO,CAc9C;AAED;;GAEG;AACH,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ export type { BLEDevice, ScanOptions, ScanCallbacks, AdapterState, BLEError, IBLEScanner, PlatformConfig, DeviceFilter, CreateScannerOptions, } from './types';
2
+ export { ScanState, Platform } from './types';
3
+ export { createScanner, createUniAppScanner, createNativeScanner, getPlatform, isBluetoothSupported, isApp, } from './factory';
4
+ export { ErrorCodes, createError, Errors } from './utils/errors';
5
+ export { parseAdvertisementData, base64ToArrayBuffer, arrayBufferToBase64, formatUUID, matchUUID, } from './utils/data-parser';
6
+ export { checkPermissions, requestPermissions } from './utils/permissions';
7
+ export { isPlatform, getPlatformName } from './utils/platform';
8
+ export { BaseScanner } from './core/base-scanner';
9
+ export { UniAppScanner } from './platforms/uniapp-scanner';
10
+ export { AndroidNativeScanner } from './platforms/android-native';
11
+ export { IOSNativeScanner } from './platforms/ios-native';
12
+ export { HarmonyNativeScanner } from './platforms/harmony-native';
13
+ import { createScanner } from './factory';
14
+ export default createScanner;
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,YAAY,EACV,SAAS,EACT,WAAW,EACX,aAAa,EACb,YAAY,EACZ,QAAQ,EACR,WAAW,EACX,cAAc,EACd,YAAY,EACZ,oBAAoB,GACrB,MAAM,SAAS,CAAC;AAGjB,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAG9C,OAAO,EACL,aAAa,EACb,mBAAmB,EACnB,mBAAmB,EACnB,WAAW,EACX,oBAAoB,EACpB,KAAK,GACN,MAAM,WAAW,CAAC;AAGnB,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,gBAAgB,CAAC;AAGjE,OAAO,EACL,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,EACnB,UAAU,EACV,SAAS,GACV,MAAM,qBAAqB,CAAC;AAG7B,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG3E,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAG/D,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAGlE,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAC1C,eAAe,aAAa,CAAC"}