taro-bluetooth-print 2.9.6 → 2.10.1

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 (45) hide show
  1. package/CHANGELOG.md +42 -0
  2. package/README.md +2 -1
  3. package/dist/index.cjs.js +1 -1
  4. package/dist/index.es.js +1 -1
  5. package/dist/index.umd.js +1 -1
  6. package/dist/types/adapters/BaseAdapter.d.ts +6 -5
  7. package/dist/types/adapters/ChunkWriteStrategy.d.ts +99 -0
  8. package/dist/types/adapters/ReactNativeAdapter.d.ts +1 -0
  9. package/dist/types/cache/OfflineCache.d.ts +8 -34
  10. package/dist/types/device/DeviceManager.d.ts +10 -35
  11. package/dist/types/device/MultiPrinterManager.d.ts +15 -22
  12. package/dist/types/queue/PrintQueue.d.ts +9 -34
  13. package/dist/types/services/BatchPrintManager.d.ts +18 -53
  14. package/dist/types/services/ScheduledRetryManager.d.ts +8 -27
  15. package/dist/types/utils/encoding.d.ts +2 -1
  16. package/dist/types/utils/index.d.ts +1 -0
  17. package/dist/types/utils/normalizeError.d.ts +50 -0
  18. package/dist/types/utils/withTimeout.d.ts +28 -0
  19. package/package.json +1 -1
  20. package/src/adapters/BaseAdapter.ts +101 -150
  21. package/src/adapters/ChunkWriteStrategy.ts +248 -0
  22. package/src/adapters/ReactNativeAdapter.ts +96 -143
  23. package/src/adapters/WebBluetoothAdapter.ts +9 -8
  24. package/src/cache/OfflineCache.ts +10 -63
  25. package/src/config/PrinterConfigManager.ts +1 -0
  26. package/src/core/BluetoothPrinter.ts +9 -4
  27. package/src/core/event/EventBus.ts +3 -1
  28. package/src/device/DeviceManager.ts +8 -58
  29. package/src/device/DiscoveryService.ts +2 -1
  30. package/src/device/MultiPrinterManager.ts +11 -58
  31. package/src/factory/PrinterFactory.ts +10 -3
  32. package/src/queue/PrintQueue.ts +13 -52
  33. package/src/services/BatchPrintManager.ts +12 -62
  34. package/src/services/CloudPrintManager.ts +2 -1
  35. package/src/services/ConnectionManager.ts +19 -23
  36. package/src/services/PrintJobManager.ts +12 -3
  37. package/src/services/PrintScheduler.ts +7 -4
  38. package/src/services/PrinterStatus.ts +3 -13
  39. package/src/services/QRCodeDiscoveryService.ts +3 -1
  40. package/src/services/ScheduledRetryManager.ts +7 -63
  41. package/src/utils/encoding.ts +2 -1
  42. package/src/utils/index.ts +1 -0
  43. package/src/utils/normalizeError.ts +68 -0
  44. package/src/utils/outputLimiter.ts +9 -2
  45. package/src/utils/withTimeout.ts +49 -0
package/CHANGELOG.md CHANGED
@@ -7,6 +7,48 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
7
7
 
8
8
  ---
9
9
 
10
+ ## [2.10.1] - 2026-05-01
11
+
12
+ ### Fixed
13
+
14
+ - **npm publish 版本冲突** — `v2.10.0` 因旧 tag 提前发布导致新内容无法覆盖。bump 至 `2.10.1` 重新发布。
15
+
16
+ ---
17
+
18
+ ## [2.10.0] - 2026-05-01
19
+
20
+ ### Added
21
+
22
+ - **`ChunkWriteStrategy` 自适应分块写入抽象基类** (#R4)
23
+ - Template Method 模式:将 MiniProgramAdapter 与 ReactNativeAdapter 共用的自适应分块写入逻辑提取到统一基类
24
+ - 子类仅需实现 `writeSingleChunk()` 平台特定的单块写入操作
25
+ - 公共框架包括:自适应分块大小调整、指数退避重试、连接状态周期性检查、单块超时、分块间 BLE 拥塞控制延迟
26
+ - `MiniProgramWriteStrategy` — 封装 Taro/微信/支付宝/百度/字节/QQ 小程序 BLE API
27
+ - `ReactNativeWriteStrategy` — 封装 react-native-ble-plx,含 withResponse/withoutResponse 降级回退
28
+
29
+ - **`withTimeout()` 工具函数集成** (#R5)
30
+ - 提取 Promise race + setTimeout 重复模式到 `src/utils/withTimeout.ts`
31
+ - 已集成至 `BaseAdapter.connect()`、`ReactNativeAdapter.connect()`、`ConnectionManager.connect()`、`PrinterStatus.queryStatus()`
32
+ - 减少约 40 行重复的手动 timer 管理代码,消除遗漏 clearTimeout 的风险
33
+
34
+ ### Changed
35
+
36
+ - **适配器代码重构**
37
+ - `MiniProgramBLEApi.writeBLECharacteristicValue` 参数类型从 `ArrayBuffer` 扩展为 `ArrayBuffer | ArrayBufferLike`,消除 `chunk.buffer` 的类型兼容性 warning
38
+ - `ReactNativeAdapter.arrayBufferToBase64` 同理扩展参数类型
39
+ - `ChunkWriteStrategy.logger` 类型修正为 `ReturnType<typeof Logger.scope>`,修复 Logger 实例类型不匹配
40
+
41
+ ### Fixed
42
+
43
+ - **`ChunkWriteStrategy.ts` 缺少 Logger 导入** — 导致 5 个适配器测试失败(TaroAdapter、AlipayAdapter、BaiduAdapter、ByteDanceAdapter、QQAdapter)
44
+ - **`chunk.buffer` 类型兼容性** — `Uint8Array.buffer` 返回 `ArrayBufferLike`,原 `ArrayBuffer` 参数类型导致 TypeScript 编译错误
45
+
46
+ ### Security
47
+
48
+ - `withTimeout()` 统一使用 try/finally 模式的 timer 清理,消除所有手动 `Promise.race` + `setTimeout` 模式中遗漏 `clearTimeout` 的风险
49
+
50
+ ---
51
+
10
52
  ## [2.9.6] - 2026-04-30
11
53
 
12
54
  ### Added
package/README.md CHANGED
@@ -287,7 +287,8 @@ try {
287
287
  | 包体积(gzip) | **~226 KB**(含全部驱动,无外部依赖) |
288
288
  | Tree-shaking | ✅ 支持,按需引入 |
289
289
  | 编码懒加载 | ✅ 未用到的字符集不进入产物 |
290
- | 测试用例 | ✅ **879** 个测试用例,**877** 通过(95.7%),覆盖阈值 70%+ |
290
+ | 测试用例 | ✅ **879** 个测试用例,**879** 通过(95.7%),覆盖阈值 70%+ |
291
+ | 架构模式 | Template Method (ChunkWriteStrategy)、EventEmitter 统一、withTimeout 工具函数 |
291
292
  | 构建工具 | Vite + Vitest |
292
293
 
293
294
  ---