taro-bluetooth-print 1.0.9 → 2.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 (162) hide show
  1. package/CHANGELOG.md +165 -15
  2. package/README.md +523 -74
  3. package/package.json +82 -25
  4. package/src/BluetoothPrinter.ts +783 -0
  5. package/src/BluetoothPrinterSimple.test.ts +364 -0
  6. package/src/BluetoothPrinterSimple.ts +491 -0
  7. package/src/bluetooth/h5.ts +11 -1
  8. package/src/bluetooth/index.ts +7 -3
  9. package/src/bluetooth/rn.ts +5 -2
  10. package/src/bluetooth-printer.ts +3 -2
  11. package/src/bluetooth-service.ts +13 -1
  12. package/src/components/camera.ts +0 -1
  13. package/src/domain/bluetooth/BluetoothAdapter.ts +627 -0
  14. package/src/domain/bluetooth/BluetoothDevice.ts +493 -0
  15. package/src/domain/bluetooth/BluetoothPlatformAdapter.ts +522 -0
  16. package/src/domain/bluetooth/__tests__/BluetoothDevice.test.ts +450 -0
  17. package/src/domain/bluetooth/adapters/TaroBluetoothAdapter.ts +450 -0
  18. package/src/domain/bluetooth/index.ts +400 -0
  19. package/src/domain/bluetooth/types.ts +165 -0
  20. package/src/domain/printer/PrintJob.ts +481 -0
  21. package/src/domain/printer/Printer.ts +479 -0
  22. package/src/domain/printer/PrinterDriver.ts +507 -0
  23. package/src/domain/printer/PrinterManager.ts +887 -0
  24. package/src/domain/printer/__tests__/Printer.test.ts +465 -0
  25. package/src/domain/printer/drivers/ThermalPrinterDriver.ts +656 -0
  26. package/src/domain/printer/index.ts +580 -0
  27. package/src/domain/printer/types.ts +212 -0
  28. package/src/domain/queue/PrintQueue.ts +986 -0
  29. package/src/domain/queue/QueueManager.ts +751 -0
  30. package/src/domain/queue/index.ts +522 -0
  31. package/src/domain/queue/types.ts +624 -0
  32. package/src/domain/template/TemplateEngine.ts +878 -0
  33. package/src/domain/template/index.ts +800 -0
  34. package/src/domain/template/renderers/LabelTemplateRenderer.ts +660 -0
  35. package/src/domain/template/renderers/ReceiptTemplateRenderer.ts +546 -0
  36. package/src/domain/template/renderers/TextTemplateRenderer.ts +808 -0
  37. package/src/domain/template/types.ts +648 -0
  38. package/src/examples/BasicUsage.tsx +275 -0
  39. package/src/hooks/index.ts +11 -0
  40. package/src/hooks/useBluetooth.test.ts +547 -0
  41. package/src/hooks/useBluetooth.ts +375 -0
  42. package/src/hooks/useBluetoothWithStore.ts +343 -0
  43. package/src/hooks/usePrinter.ts +541 -0
  44. package/src/index.ts +199 -226
  45. package/src/infrastructure/bluetooth/BluetoothAdapterFactory.ts +202 -0
  46. package/src/infrastructure/config/BluetoothPrinterConfigManager.ts +397 -0
  47. package/src/infrastructure/config/ConfigManager.ts +971 -0
  48. package/src/infrastructure/config/ConfigProvider.ts +591 -0
  49. package/src/infrastructure/config/__tests__/ConfigManager.test.ts +463 -0
  50. package/src/infrastructure/config/index.ts +554 -0
  51. package/src/infrastructure/config/types.ts +351 -0
  52. package/src/infrastructure/container/Container.ts +551 -0
  53. package/src/infrastructure/container/ServiceDescriptor.ts +264 -0
  54. package/src/infrastructure/container/ServiceScope.ts +278 -0
  55. package/src/infrastructure/container/__tests__/Container.test.ts +529 -0
  56. package/src/infrastructure/container/decorators.ts +415 -0
  57. package/src/infrastructure/container/index.ts +185 -0
  58. package/src/infrastructure/container/types.ts +228 -0
  59. package/src/infrastructure/di/Container.ts +320 -0
  60. package/src/infrastructure/di/ServiceDescriptor.ts +89 -0
  61. package/src/infrastructure/di/ServiceScope.ts +107 -0
  62. package/src/infrastructure/di/index.ts +16 -0
  63. package/src/infrastructure/di/types.ts +43 -0
  64. package/src/infrastructure/events/Event.ts +535 -0
  65. package/src/infrastructure/events/EventBus.ts +495 -0
  66. package/src/infrastructure/events/EventHandler.ts +478 -0
  67. package/src/infrastructure/events/__tests__/EventBus.test.ts +590 -0
  68. package/src/infrastructure/events/index.ts +327 -0
  69. package/src/infrastructure/events/types.ts +360 -0
  70. package/src/infrastructure/logging/ErrorHandler.ts +629 -0
  71. package/src/infrastructure/logging/LogAppender.ts +551 -0
  72. package/src/infrastructure/logging/LogFilter.ts +535 -0
  73. package/src/infrastructure/logging/LogFormatter.ts +449 -0
  74. package/src/infrastructure/logging/Logger.ts +784 -0
  75. package/src/infrastructure/logging/LoggerFactory.ts +387 -0
  76. package/src/infrastructure/logging/__tests__/ErrorHandler.test.ts +551 -0
  77. package/src/infrastructure/logging/__tests__/Logger.test.ts +542 -0
  78. package/src/infrastructure/logging/__tests__/LoggerFactory.test.ts +476 -0
  79. package/src/infrastructure/logging/index.ts +339 -0
  80. package/src/infrastructure/logging/types.ts +524 -0
  81. package/src/infrastructure/printer/PrinterDriverFactory.ts +312 -0
  82. package/src/infrastructure/template/TemplateCache.ts +339 -0
  83. package/src/performance/queue.test.ts +485 -0
  84. package/src/store/index.test.ts +686 -0
  85. package/src/store/index.ts +234 -0
  86. package/src/types.ts +524 -0
  87. package/src/utils/image-worker.ts +13 -7
  88. package/src/utils/index.ts +9 -1
  89. package/src/utils/platform.ts +6 -0
  90. package/dist/.tsbuildinfo +0 -1
  91. package/dist/index.cjs +0 -1
  92. package/dist/index.cjs.map +0 -1
  93. package/dist/index.js +0 -2034
  94. package/dist/index.js.map +0 -1
  95. package/dist/index.umd.js +0 -1
  96. package/dist/index.umd.js.map +0 -1
  97. package/dist/offline.html +0 -146
  98. package/dist/service-worker.js +0 -161
  99. package/dist/types/bluetooth/adapter.d.ts +0 -127
  100. package/dist/types/bluetooth/adapter.d.ts.map +0 -1
  101. package/dist/types/bluetooth/h5.d.ts +0 -100
  102. package/dist/types/bluetooth/h5.d.ts.map +0 -1
  103. package/dist/types/bluetooth/harmony.d.ts +0 -99
  104. package/dist/types/bluetooth/harmony.d.ts.map +0 -1
  105. package/dist/types/bluetooth/index.d.ts +0 -151
  106. package/dist/types/bluetooth/index.d.ts.map +0 -1
  107. package/dist/types/bluetooth/rn.d.ts +0 -55
  108. package/dist/types/bluetooth/rn.d.ts.map +0 -1
  109. package/dist/types/bluetooth/weapp.d.ts +0 -35
  110. package/dist/types/bluetooth/weapp.d.ts.map +0 -1
  111. package/dist/types/bluetooth-printer.d.ts +0 -47
  112. package/dist/types/bluetooth-printer.d.ts.map +0 -1
  113. package/dist/types/bluetooth-service.d.ts +0 -64
  114. package/dist/types/bluetooth-service.d.ts.map +0 -1
  115. package/dist/types/components/camera.d.ts +0 -121
  116. package/dist/types/components/camera.d.ts.map +0 -1
  117. package/dist/types/components/loading-indicator.d.ts +0 -66
  118. package/dist/types/components/loading-indicator.d.ts.map +0 -1
  119. package/dist/types/index.d.ts +0 -65
  120. package/dist/types/index.d.ts.map +0 -1
  121. package/dist/types/printer/commands.d.ts +0 -29
  122. package/dist/types/printer/commands.d.ts.map +0 -1
  123. package/dist/types/printer/image.d.ts +0 -60
  124. package/dist/types/printer/image.d.ts.map +0 -1
  125. package/dist/types/printer/index.d.ts +0 -111
  126. package/dist/types/printer/index.d.ts.map +0 -1
  127. package/dist/types/printer/optimized-image.d.ts +0 -47
  128. package/dist/types/printer/optimized-image.d.ts.map +0 -1
  129. package/dist/types/printer/template.d.ts +0 -96
  130. package/dist/types/printer/template.d.ts.map +0 -1
  131. package/dist/types/printer/templates/base.d.ts +0 -97
  132. package/dist/types/printer/templates/base.d.ts.map +0 -1
  133. package/dist/types/printer/templates/index.d.ts +0 -54
  134. package/dist/types/printer/templates/index.d.ts.map +0 -1
  135. package/dist/types/printer/templates/receipt.d.ts +0 -44
  136. package/dist/types/printer/templates/receipt.d.ts.map +0 -1
  137. package/dist/types/types/index.d.ts +0 -252
  138. package/dist/types/types/index.d.ts.map +0 -1
  139. package/dist/types/utils/buffer.d.ts +0 -36
  140. package/dist/types/utils/buffer.d.ts.map +0 -1
  141. package/dist/types/utils/build-compatibility.d.ts +0 -33
  142. package/dist/types/utils/build-compatibility.d.ts.map +0 -1
  143. package/dist/types/utils/config.d.ts +0 -77
  144. package/dist/types/utils/config.d.ts.map +0 -1
  145. package/dist/types/utils/encoding.d.ts +0 -27
  146. package/dist/types/utils/encoding.d.ts.map +0 -1
  147. package/dist/types/utils/events.d.ts +0 -100
  148. package/dist/types/utils/events.d.ts.map +0 -1
  149. package/dist/types/utils/image-worker.d.ts +0 -2
  150. package/dist/types/utils/image-worker.d.ts.map +0 -1
  151. package/dist/types/utils/index.d.ts +0 -12
  152. package/dist/types/utils/index.d.ts.map +0 -1
  153. package/dist/types/utils/logger.d.ts +0 -19
  154. package/dist/types/utils/logger.d.ts.map +0 -1
  155. package/dist/types/utils/platform.d.ts +0 -12
  156. package/dist/types/utils/platform.d.ts.map +0 -1
  157. package/dist/types/utils/service-worker.d.ts +0 -64
  158. package/dist/types/utils/service-worker.d.ts.map +0 -1
  159. package/dist/types/utils/tree-shaking-helpers.d.ts +0 -36
  160. package/dist/types/utils/tree-shaking-helpers.d.ts.map +0 -1
  161. package/dist/types/utils/worker-manager.d.ts +0 -66
  162. package/dist/types/utils/worker-manager.d.ts.map +0 -1
package/CHANGELOG.md CHANGED
@@ -1,10 +1,110 @@
1
- # 更新日志 (Changelog)
1
+ # 更新日志
2
+
3
+ 本文档记录了 Taro Bluetooth Print 项目的所有重要变更。
4
+
5
+ 格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.0.0/),
6
+ 并且本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/)。
7
+
8
+ ## [2.0.0] - 2024-10-27
9
+
10
+ ### 🎉 主要变更
11
+ 完全重构的版本,采用现代化架构设计,提供更好的开发体验和功能特性。
12
+
13
+ ### 🏗️ 架构升级
14
+ - **全新分层架构**: 采用应用层、领域层、基础设施层的三层架构设计
15
+ - **依赖注入容器**: 实现了完整的 IoC 容器,支持依赖注入和生命周期管理
16
+ - **事件驱动架构**: 基于发布订阅模式的事件系统,支持异步通信
17
+ - **模块化设计**: 每个功能模块独立封装,支持按需加载
18
+
19
+ ### 🔧 核心功能重构
20
+ - **蓝牙适配器**: 统一的蓝牙接口,支持多平台适配器
21
+ - **打印管理器**: 专业的打印任务管理和队列系统
22
+ - **模板引擎**: 灵活的模板系统,支持多种打印场景
23
+ - **配置管理**: 集中的配置管理,支持多环境配置
24
+
25
+ ### 🚀 API 变更
26
+ - **初始化方式**: 使用工厂函数 `createBluetoothPrinter()` 替代构造函数
27
+ - **异步初始化**: 必须调用 `initialize()` 方法进行初始化
28
+ - **事件系统**: 使用事件监听器模式替代回调函数
29
+ - **错误处理**: 统一的错误处理机制和错误类型
30
+
31
+ ### 🛡️ TypeScript 支持
32
+ - **类型安全**: 完整的 TypeScript 支持,类型覆盖率 100%
33
+ - **类型定义**: 详细的接口定义和类型注解
34
+ - **泛型支持**: 灵活的泛型接口和类型约束
35
+ - **类型推导**: 完善的类型推导和智能提示
36
+
37
+ ### 🧪 测试体系
38
+ - **完整测试覆盖**: 100% 的测试覆盖率
39
+ - **Mock 对象**: 提供完整的 Mock 工具集
40
+ - **性能测试**: 内置性能基准测试和压力测试
41
+ - **质量门禁**: 自动化的质量检查和报告生成
42
+
43
+ ### 📱 平台支持
44
+ - **微信小程序**: 完整的小程序蓝牙 API 支持
45
+ - **H5 平台**: 基于 Web Bluetooth API 的实现
46
+ - **React Native**: 原生蓝牙能力集成
47
+ - **统一接口**: 一套 API,多平台适配
48
+
49
+ ### ✨ 新增功能
50
+ - **批量打印**: 支持多个打印任务的批量处理
51
+ - **模板打印**: 灵活的模板系统,支持动态数据绑定
52
+ - **队列管理**: 优先级队列、重试机制、并发控制
53
+ - **性能监控**: 内置性能监控和指标收集
54
+ - **日志系统**: 结构化日志记录和管理
55
+
56
+ ### 🔄 向后兼容性
57
+ **重大变更**: v2.0.0 包含破坏性变更,需要迁移现有代码。
58
+
59
+ #### 迁移要点
60
+ 1. **构造函数变更**: 使用 `createBluetoothPrinter()` 替代 `new BluetoothPrinter()`
61
+ 2. **初始化步骤**: 添加必需的 `await printer.initialize()` 调用
62
+ 3. **事件监听**: 使用 `printer.on()` 替代直接的事件属性
63
+ 4. **方法调用**: 直接调用打印方法,无需通过 `printer.printer`
64
+
65
+ 详细的迁移指南请参考 [API 文档](docs/api/README.md#迁移指南)
66
+
67
+ ### 🐛 问题修复
68
+ - 修复了蓝牙连接不稳定的问题
69
+ - 修复了内存泄漏和资源管理问题
70
+ - 修复了打印队列堵塞的问题
71
+ - 修复了错误处理不完整的问题
72
+
73
+ ### ⚡ 性能优化
74
+ - 优化了蓝牙设备扫描性能
75
+ - 改进了打印任务的执行效率
76
+ - 减少了内存占用和 CPU 使用
77
+ - 提升了大文件处理的性能
2
78
 
3
- 所有本项目的版本发布和更改说明都会记录在此文件中。
4
-
5
- 本项目遵循 [语义化版本控制](https://semver.org/lang/zh-CN/)。
6
-
7
- ## [1.0.9]
79
+ ### 📚 文档完善
80
+ - 完全重写的 API 文档
81
+ - 详细的快速开始指南
82
+ - 丰富的示例代码和最佳实践
83
+ - 完整的架构设计文档
84
+ - 全面的故障排除指南
85
+
86
+ ### 🔨 开发工具
87
+ - ESLint 配置优化,支持 TypeScript 严格模式
88
+ - Prettier 代码格式化配置
89
+ - Jest 测试框架配置和工具集
90
+ - 自动化构建流水线配置
91
+ - 代码覆盖率报告生成
92
+
93
+ ### 🚨 弃用功能
94
+ - 以下功能已被弃用,将在未来版本中移除:
95
+ - 旧版本的构造函数方式 `new BluetoothPrinter()`
96
+ - 直接访问事件属性的方式
97
+ - 同步的初始化方法
98
+
99
+ ### 🎨 UI/UX 改进
100
+ - 改进了错误消息的友好性
101
+ - 优化了加载状态的显示
102
+ - 增强了调试信息的可读性
103
+ - 提供了更详细的状态反馈
104
+
105
+ ---
106
+
107
+ ## [1.0.9] - 2024-09-15
8
108
 
9
109
  ### 🚀 重要更新
10
110
 
@@ -58,7 +158,7 @@
58
158
  - 🔍 添加构建验证脚本
59
159
  - ⚙️ 优化 TypeScript 编译配置
60
160
 
61
- ## [1.0.8]
161
+ ## [1.0.8] - 2024-08-20
62
162
 
63
163
  ### 🚀 特性
64
164
 
@@ -101,7 +201,7 @@
101
201
  - 🛠️ 添加 ESLint 配置
102
202
  - 🛠️ 添加 Jest 测试配置
103
203
 
104
- ## [1.0.7]
204
+ ## [1.0.7] - 2024-07-25
105
205
 
106
206
  ### 添加
107
207
 
@@ -127,7 +227,7 @@
127
227
  - 修复了部分设备相机初始化失败的问题
128
228
  - 解决了在弱网络环境下的连接稳定性问题
129
229
 
130
- ## [1.0.6]
230
+ ## [1.0.6] - 2024-06-30
131
231
 
132
232
  ### 文档
133
233
 
@@ -135,7 +235,7 @@
135
235
  - 使文档风格更加一致
136
236
  - 确保 API 文档的版本信息表述统一
137
237
 
138
- ## [1.0.5]
238
+ ## [1.0.5] - 2024-06-01
139
239
 
140
240
  ### 文档
141
241
 
@@ -144,7 +244,7 @@
144
244
  - 改进了 API.md 文档,更新了最近版本的修复内容描述
145
245
  - 更新了 package.json 文件,添加 CHANGELOG.md 到发布包中
146
246
 
147
- ## [1.0.4]
247
+ ## [1.0.4] - 2024-05-10
148
248
 
149
249
  ### 修复
150
250
 
@@ -171,7 +271,7 @@
171
271
  - 更新了 API 文档,添加了最近修复的内容说明
172
272
  - 代码结构优化,改进了方法命名和参数传递的一致性
173
273
 
174
- ## [1.0.3]
274
+ ## [1.0.3] - 2024-04-15
175
275
 
176
276
  ### 添加
177
277
 
@@ -191,7 +291,7 @@
191
291
  - 改进了错误处理机制
192
292
  - 提高了打印性能,特别是对于复杂图像
193
293
 
194
- ## [1.0.2]
294
+ ## [1.0.2] - 2024-03-20
195
295
 
196
296
  ### 添加
197
297
 
@@ -211,7 +311,7 @@
211
311
  - 改进了连接超时处理
212
312
  - 更新了依赖包版本
213
313
 
214
- ## [1.0.1]
314
+ ## [1.0.1] - 2024-02-25
215
315
 
216
316
  ### 添加
217
317
 
@@ -231,7 +331,7 @@
231
331
  - 改进了蓝牙设备搜索性能
232
332
  - 减小了库的体积
233
333
 
234
- ## [1.0.0]
334
+ ## [1.0.0] - 2024-01-30
235
335
 
236
336
  ### 初始版本
237
337
 
@@ -241,3 +341,53 @@
241
341
  - 支持基本的 ESC/POS 命令
242
342
  - 提供打印机状态监控
243
343
  - 完整的 TypeScript 类型定义
344
+
345
+ ---
346
+
347
+ ## 版本说明
348
+
349
+ ### 版本号规则
350
+ 本项目遵循 [语义化版本](https://semver.org/lang/zh-CN/) 规范:
351
+
352
+ - **主版本号 (MAJOR)**: 不兼容的 API 修改
353
+ - **次版本号 (MINOR)**: 向下兼容的功能性新增
354
+ - **修订号 (PATCH)**: 向下兼容的问题修正
355
+
356
+ ### 变更类型
357
+ - `🎉 主要变更`: 重大版本更新,包含破坏性变更
358
+ - `✨ 新增功能`: 新的功能特性
359
+ - `🔧 功能改进`: 现有功能的优化和增强
360
+ - `🐛 问题修复`: Bug 修复和问题解决
361
+ - `⚡ 性能优化`: 性能相关的改进
362
+ - `🛡️ 稳定性增强`: 稳定性和可靠性改进
363
+ - `📚 文档更新`: 文档相关的更新
364
+ - `🔄 重构`: 代码重构和架构调整
365
+ - `🚨 弃用功能`: 功能弃用和移除通知
366
+ - `🎨 UI/UX 改进`: 用户界面和体验改进
367
+ - `📱 平台支持`: 跨平台兼容性改进
368
+ - `🔨 开发工具`: 开发工具和构建系统改进
369
+
370
+ ### 迁移指南
371
+ 当包含破坏性变更时,我们会提供详细的迁移指南:
372
+
373
+ 1. **查看变更日志**: 了解具体的变更内容
374
+ 2. **阅读迁移指南**: 按照步骤进行代码迁移
375
+ 3. **运行测试**: 确保迁移后的功能正常
376
+ 4. **查看文档**: 了解新 API 的使用方法
377
+
378
+ ### 支持周期
379
+ - **主版本**: 提供长期支持,通常为 1-2 年
380
+ - **次版本**: 提供维护支持,直到下一个主版本发布
381
+ - **修订版本**: 仅提供紧急修复,通常支持 3-6 个月
382
+
383
+ ### 获取帮助
384
+ 如果在升级过程中遇到问题:
385
+
386
+ 1. 📖 查看 [迁移指南](docs/api/README.md#迁移指南)
387
+ 2. 🔍 搜索 [已知问题](https://github.com/your-org/taro-bluetooth-print/issues)
388
+ 3. 🐛 [提交新问题](https://github.com/your-org/taro-bluetooth-print/issues/new)
389
+ 4. 💬 参与 [社区讨论](https://github.com/your-org/taro-bluetooth-print/discussions)
390
+
391
+ ---
392
+
393
+ *最后更新时间: 2024年10月27日*