taro-bluetooth-print 2.12.0 → 2.15.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 (137) hide show
  1. package/CHANGELOG.md +69 -119
  2. package/README.md +195 -245
  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/AlipayAdapter.d.ts +0 -14
  7. package/dist/types/adapters/BaiduAdapter.d.ts +0 -14
  8. package/dist/types/adapters/BaseAdapter.d.ts +15 -2
  9. package/dist/types/adapters/ByteDanceAdapter.d.ts +0 -14
  10. package/dist/types/adapters/QQAdapter.d.ts +0 -18
  11. package/dist/types/adapters/ReactNativeAdapter.d.ts +1 -2
  12. package/dist/types/adapters/TaroAdapter.d.ts +0 -14
  13. package/dist/types/core/BluetoothPrinter.d.ts +43 -287
  14. package/dist/types/core/EventEmitter.d.ts +5 -3
  15. package/dist/types/core/index.d.ts +3 -4
  16. package/dist/types/drivers/BarcodeHelpers.d.ts +33 -0
  17. package/dist/types/drivers/CpclDriver.d.ts +0 -16
  18. package/dist/types/drivers/{escPosDriver.d.ts → EscPosDriver.d.ts} +6 -0
  19. package/dist/types/drivers/GPrinterDriver.d.ts +1 -1
  20. package/dist/types/drivers/SprtDriver.d.ts +1 -1
  21. package/dist/types/drivers/XprinterDriver.d.ts +1 -1
  22. package/dist/types/drivers/ZplDriver.d.ts +0 -16
  23. package/dist/types/drivers/index.d.ts +1 -1
  24. package/dist/types/encoding/{gbk-lite.d.ts → GbkLite.d.ts} +1 -1
  25. package/dist/types/encoding/index.d.ts +2 -2
  26. package/dist/types/errors/{baseError.d.ts → BaseError.d.ts} +6 -0
  27. package/dist/types/errors/CommandBuildError.d.ts +3 -17
  28. package/dist/types/errors/ConnectionError.d.ts +3 -20
  29. package/dist/types/errors/PrintJobError.d.ts +2 -18
  30. package/dist/types/errors/index.d.ts +1 -1
  31. package/dist/types/factory/PrinterFactory.d.ts +4 -2
  32. package/dist/types/index.d.ts +3 -5
  33. package/dist/types/plugins/PluginManager.d.ts +2 -2
  34. package/dist/types/plugins/{types.d.ts → PluginTypes.d.ts} +1 -1
  35. package/dist/types/plugins/builtin/LoggingPlugin.d.ts +1 -1
  36. package/dist/types/plugins/builtin/RetryPlugin.d.ts +2 -2
  37. package/dist/types/plugins/index.d.ts +1 -1
  38. package/dist/types/preview/PreviewRenderer.d.ts +3 -7
  39. package/dist/types/services/CloudPrintManager.d.ts +0 -5
  40. package/dist/types/services/CommandBuilder.d.ts +8 -151
  41. package/dist/types/services/ConnectionManager.d.ts +6 -1
  42. package/dist/types/services/PrintHistory.d.ts +14 -27
  43. package/dist/types/services/PrintJobManager.d.ts +24 -135
  44. package/dist/types/services/PrintScheduler.d.ts +1 -0
  45. package/dist/types/services/PrintStatistics.d.ts +10 -0
  46. package/dist/types/services/QRCodeDiscoveryService.d.ts +1 -0
  47. package/dist/types/template/engines/TemplateRenderer.d.ts +12 -0
  48. package/dist/types/utils/BoundedOrderedMap.d.ts +47 -0
  49. package/dist/types/utils/image.d.ts +2 -0
  50. package/package.json +4 -2
  51. package/src/adapters/AdapterFactory.ts +1 -1
  52. package/src/adapters/AlipayAdapter.ts +3 -21
  53. package/src/adapters/BaiduAdapter.ts +3 -21
  54. package/src/adapters/BaseAdapter.ts +30 -7
  55. package/src/adapters/ByteDanceAdapter.ts +3 -21
  56. package/src/adapters/ChunkWriteStrategy.ts +1 -1
  57. package/src/adapters/QQAdapter.ts +3 -25
  58. package/src/adapters/ReactNativeAdapter.ts +17 -12
  59. package/src/adapters/TaroAdapter.ts +5 -20
  60. package/src/adapters/WebBluetoothAdapter.ts +1 -1
  61. package/src/config/PrinterConfigManager.ts +1 -1
  62. package/src/core/BluetoothPrinter.ts +114 -421
  63. package/src/core/EventEmitter.ts +43 -49
  64. package/src/core/index.ts +3 -9
  65. package/src/device/DeviceManager.ts +7 -11
  66. package/src/device/DiscoveryService.ts +6 -4
  67. package/src/device/MultiPrinterManager.ts +1 -1
  68. package/src/drivers/BarcodeHelpers.ts +52 -0
  69. package/src/drivers/CpclDriver.ts +2 -22
  70. package/src/drivers/{escPosDriver.ts → EscPosDriver.ts} +14 -15
  71. package/src/drivers/GPrinterDriver.ts +1 -1
  72. package/src/drivers/SprtDriver.ts +1 -1
  73. package/src/drivers/XprinterDriver.ts +1 -1
  74. package/src/drivers/ZplDriver.ts +2 -22
  75. package/src/drivers/index.ts +1 -1
  76. package/src/encoding/EncodingService.ts +2 -2
  77. package/src/encoding/GbkLite.ts +50 -0
  78. package/src/encoding/{gbk-table.ts → GbkTable.ts} +2 -2
  79. package/src/encoding/index.ts +2 -2
  80. package/src/errors/{baseError.ts → BaseError.ts} +9 -0
  81. package/src/errors/CommandBuildError.ts +19 -30
  82. package/src/errors/ConnectionError.ts +9 -37
  83. package/src/errors/PrintJobError.ts +10 -32
  84. package/src/errors/index.ts +1 -1
  85. package/src/factory/PrinterFactory.ts +5 -3
  86. package/src/index.ts +3 -44
  87. package/src/plugins/PluginManager.ts +9 -8
  88. package/src/plugins/{types.ts → PluginTypes.ts} +1 -1
  89. package/src/plugins/builtin/LoggingPlugin.ts +1 -1
  90. package/src/plugins/builtin/RetryPlugin.ts +2 -2
  91. package/src/plugins/index.ts +1 -1
  92. package/src/preview/PreviewRenderer.ts +60 -70
  93. package/src/queue/PrintQueue.ts +1 -1
  94. package/src/services/BatchPrintManager.ts +7 -6
  95. package/src/services/CloudPrintManager.ts +13 -5
  96. package/src/services/CommandBuilder.ts +35 -193
  97. package/src/services/ConnectionManager.ts +38 -24
  98. package/src/services/PrintHistory.ts +43 -120
  99. package/src/services/PrintJobManager.ts +154 -334
  100. package/src/services/PrintScheduler.ts +14 -5
  101. package/src/services/PrintStatistics.ts +46 -51
  102. package/src/services/PrinterStatus.ts +2 -1
  103. package/src/services/QRCodeDiscoveryService.ts +7 -2
  104. package/src/services/ScheduledRetryManager.ts +7 -2
  105. package/src/template/engines/TemplateRenderer.ts +79 -56
  106. package/src/utils/BoundedOrderedMap.ts +120 -0
  107. package/src/utils/image.ts +63 -54
  108. package/dist/types/core/di/Container.d.ts +0 -84
  109. package/dist/types/core/di/Tokens.d.ts +0 -29
  110. package/dist/types/core/di/index.d.ts +0 -3
  111. package/dist/types/core/event/EventBus.d.ts +0 -66
  112. package/dist/types/core/event/index.d.ts +0 -2
  113. package/dist/types/core/plugin/PluginManager.d.ts +0 -64
  114. package/dist/types/core/plugin/index.d.ts +0 -2
  115. package/dist/types/factory/di-factory.d.ts +0 -52
  116. package/dist/types/providers/ServiceProvider.d.ts +0 -56
  117. package/dist/types/providers/index.d.ts +0 -2
  118. package/dist/types/utils/errorHandler.d.ts +0 -78
  119. package/dist/types/utils/validation.d.ts +0 -8
  120. package/src/core/di/Container.ts +0 -321
  121. package/src/core/di/Tokens.ts +0 -45
  122. package/src/core/di/index.ts +0 -3
  123. package/src/core/event/EventBus.ts +0 -250
  124. package/src/core/event/index.ts +0 -2
  125. package/src/core/plugin/PluginManager.ts +0 -157
  126. package/src/core/plugin/index.ts +0 -2
  127. package/src/encoding/gbk-lite.ts +0 -113
  128. package/src/factory/di-factory.ts +0 -61
  129. package/src/providers/ServiceProvider.ts +0 -209
  130. package/src/providers/index.ts +0 -2
  131. package/src/utils/errorHandler.ts +0 -196
  132. package/src/utils/validation.ts +0 -9
  133. /package/dist/types/encoding/{gbk-data.d.ts → GbkData.d.ts} +0 -0
  134. /package/dist/types/encoding/{gbk-table.d.ts → GbkTable.d.ts} +0 -0
  135. /package/dist/types/encoding/{korean-japanese.d.ts → KoreanJapanese.d.ts} +0 -0
  136. /package/src/encoding/{gbk-data.ts → GbkData.ts} +0 -0
  137. /package/src/encoding/{korean-japanese.ts → KoreanJapanese.ts} +0 -0
package/CHANGELOG.md CHANGED
@@ -1,147 +1,97 @@
1
1
  # Changelog
2
2
 
3
- ## [2.11.0] - 2026-05-04
4
-
5
- ### Changed
6
- - **错误体系统一**: 将 14 处 `throw new Error()` 迁移为 `BluetoothPrintError` + `ErrorCode`,覆盖 ReactNativeAdapter、DeviceManager、PrinterConfigManager、PrinterFactory、PreviewRenderer、PrintQueue、CloudPrintManager、PrintJobManager、PrintScheduler、image.ts
7
- - **DiscoveryService.ts**: 移除顶部 3 条 eslint-disable 规则,清理注释代码
8
- - **TemplateRenderer.ts**: `itemData: any` → `Record<string, unknown>`,移除 3 处行内 eslint-disable
9
- - **outputLimiter.ts**: batchProcess 错误处理规范化(instanceof Error 守卫 + message 输出)
10
- - **魔数提取**: ChunkWriteStrategy 提取 7 个常量(CHUNK_SIZE_STEP、DELAY_BACKOFF_FACTOR 等),PrintHistory 提取 DEFAULT_MAX_ENTRIES,TemplateRenderer/TemplateEngine 提取 DEFAULT_PAPER_WIDTH
3
+ ## [2.15.0] - 2026-07-07
11
4
 
12
5
  ### Added
13
- - 新增 ErrorCode: `QUEUE_FULL`、`QUEUE_JOB_NOT_FOUND`、`PREVIEW_FAILED`
14
-
15
- ### Testing
16
- - 985 tests passed, 38 skipped, 0 regressions
17
- - type-check: 0 errors
18
- - lint: 0 errors
19
-
20
-
21
-
22
- All notable changes to this project will be documented in this file.
23
-
24
- The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
25
- and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
26
-
27
- ---
28
-
29
- ## [2.10.2] - 2026-05-02
30
-
31
- ### Fixed
32
-
33
- - **代码质量优化 — 消除所有 ESLint 错误** (#37 → 0)
34
- - 移除 3 个文件顶部 `eslint-disable`(共 18 条规则绕过)
35
- - 修复所有非空断言 (`!`) — `Uint8Array[i]!`、`parts[x]!`、`job.nextRunTime!` 等
36
- - 修复所有 `any` 类型绕过 — `as string` 改为 `typeof` 运行时检查
37
- - JSON.parse 结果改用 `as Record<string, unknown>` + 类型守卫访问
38
- - 异步方法 `void` → `await`,消除 `require-await` 错误
39
- - `Record<string, any>` → `Record<string, unknown>`
40
- - 消除 `no-base-to-string`:`String(value)` → `JSON.stringify(value)`
41
- - 消除 `no-unused-vars`:废弃变量改为 `void timeout`
42
- - **零 ESLint 警告/错误、零非空断言、零行内 eslint-disable 残留**
43
-
44
- ---
45
-
46
- ## [2.10.1] - 2026-05-01
47
-
48
- ### Fixed
49
6
 
50
- - **npm publish 版本冲突**`v2.10.0` 因旧 tag 提前发布导致新内容无法覆盖。bump `2.10.1` 重新发布。
51
-
52
- ---
53
-
54
- ## [2.10.0] - 2026-05-01
55
-
56
- ### Added
57
-
58
- - **`ChunkWriteStrategy` 自适应分块写入抽象基类** (#R4)
59
- - Template Method 模式:将 MiniProgramAdapter 与 ReactNativeAdapter 共用的自适应分块写入逻辑提取到统一基类
60
- - 子类仅需实现 `writeSingleChunk()` 平台特定的单块写入操作
61
- - 公共框架包括:自适应分块大小调整、指数退避重试、连接状态周期性检查、单块超时、分块间 BLE 拥塞控制延迟
62
- - `MiniProgramWriteStrategy` — 封装 Taro/微信/支付宝/百度/字节/QQ 小程序 BLE API
63
- - `ReactNativeWriteStrategy` — 封装 react-native-ble-plx,含 withResponse/withoutResponse 降级回退
64
-
65
- - **`withTimeout()` 工具函数集成** (#R5)
66
- - 提取 Promise race + setTimeout 重复模式到 `src/utils/withTimeout.ts`
67
- - 已集成至 `BaseAdapter.connect()`、`ReactNativeAdapter.connect()`、`ConnectionManager.connect()`、`PrinterStatus.queryStatus()`
68
- - 减少约 40 行重复的手动 timer 管理代码,消除遗漏 clearTimeout 的风险
7
+ - **Professional Documentation Redesign**Complete visual overhaul of docs site with custom brand identity
8
+ - 6 new SVG logo variants (primary, mark, dark, wordmark, OG cover, hero banner)
9
+ - Reimagined docs landing page with hero banner, feature cards, and compatibility matrix
10
+ - Full Mermaid architecture diagrams (6-layer system, connection sequence, print flow)
11
+ - **Online Documentation Link** — `homepage` and `documentation` fields added to `package.json`
12
+ - Live docs: https://agions.github.io/taro-bluetooth-print/
69
13
 
70
14
  ### Changed
71
15
 
72
- - **适配器代码重构**
73
- - `MiniProgramBLEApi.writeBLECharacteristicValue` 参数类型从 `ArrayBuffer` 扩展为 `ArrayBuffer | ArrayBufferLike`,消除 `chunk.buffer` 的类型兼容性 warning
74
- - `ReactNativeAdapter.arrayBufferToBase64` 同理扩展参数类型
75
- - `ChunkWriteStrategy.logger` 类型修正为 `ReturnType<typeof Logger.scope>`,修复 Logger 实例类型不匹配
16
+ - **README.md** — Hero section with brand badges, 4 why-choose cards, architecture mermaid diagram, 8×7 platform compatibility matrix, error handling pattern guide, and plugin ecosystem section (360 → 443 lines)
17
+ - **docs/index.md** VitePress hero with `hero-banner.svg`, 6 feature cards, full protocol×platform matrix, 6 highlight cards with hover effects (154 → 305 lines)
18
+ - **docs/guide/architecture.md** — Added mermaid `flowchart TD` (6-layer architecture), `sequenceDiagram` (connection flow + print flow), detailed layer responsibility table
19
+ - **docs/.vitepress/config.ts** — Updated SEO meta tags, OG image (`og-cover.svg`), brand theme color (`#6366f1`)
20
+ - **Brand Identity** — Unified design language: indigo → cyan gradient (`#4338ca` → `#6366f1` → `#0891b2`), rounded-receipt motif, Bluetooth waveform arcs, 7×7 QR matrix
76
21
 
77
- ### Fixed
22
+ ### Assets
78
23
 
79
- - **`ChunkWriteStrategy.ts` 缺少 Logger 导入** 导致 5 个适配器测试失败(TaroAdapter、AlipayAdapter、BaiduAdapter、ByteDanceAdapter、QQAdapter)
80
- - **`chunk.buffer` 类型兼容性** — `Uint8Array.buffer` 返回 `ArrayBufferLike`,原 `ArrayBuffer` 参数类型导致 TypeScript 编译错误
24
+ | File | Size | Purpose |
25
+ |:---|:---|:---|
26
+ | `docs/public/logo.svg` | 240×240 | Primary logo (gradient plate + receipt + BT arcs) |
27
+ | `docs/public/logo-mark.svg` | 64×64 | Compact icon-only variant |
28
+ | `docs/public/logo-dark.svg` | 240×240 | Dark background variant |
29
+ | `docs/public/wordmark.svg` | 560×96 | Horizontal logo with tagline |
30
+ | `docs/public/og-cover.svg` | 1200×630 | Social sharing card |
31
+ | `docs/public/hero-banner.svg` | 1600×400 | Docs landing page hero |
32
+ | `docs/public/favicon.svg` | 32×32 | Browser tab favicon (redesigned) |
81
33
 
82
- ### Security
34
+ ### Documentation
83
35
 
84
- - `withTimeout()` 统一使用 try/finally 模式的 timer 清理,消除所有手动 `Promise.race` + `setTimeout` 模式中遗漏 `clearTimeout` 的风险
36
+ - All SVG assets are inline-path (0 external dependencies)
37
+ - Docs build time: 19.3s, 0 errors
38
+ - Mermaid diagrams render correctly in VitePress
85
39
 
86
40
  ---
87
41
 
88
- ## [2.9.6] - 2026-04-30
89
-
90
- ### Added
91
-
92
- - **`ZplDriver.image()` — ZPL 图像编码实现** (#1)
93
- - 使用 ZPL `^GFA` (Graphic Field) 命令编码 1-bit 黑白位图
94
- - 支持 x/y 定位、字节校验、十六进制数据编码
95
- - 适用于 Zebra ZD420、GT800、ZM400 等标签打印机
96
- - [之前为 TODO 占位方法]
97
-
98
- - **`CpclDriver.downloadLogo()` — CPCL Logo 下载实现** (#2)
99
- - 使用 CPCL `CG` (Compressed Graphic) 命令编码 1-bit 位图
100
- - 宏定义存储 (`! DF`),位图大小自动推断(可选传参)
101
- - 向后兼容:签名保持 `(logoName, bitmap, options?)`
102
- - 适用于 HP IR3222、霍尼韦尔等移动打印机
103
- - [之前为 TODO 占位方法]
104
-
105
- - **单元测试覆盖**
106
- - ZPL 图像编码:链式调用验证 (`^FO` / `^GFA` / `^FS` 命令输出断言)
107
- - ZPL 空 bitmap 边界处理
42
+ ## [2.14.0] - 2026-07-07
108
43
 
109
- ### Fixed
44
+ ### Changed
110
45
 
111
- - **`ConnectionManager` 连接超时 Timer 泄漏** (#3)
112
- - `connect()` `setTimeout` 创建的连接超时 timer 在成功连接后未清理
113
- - 修复:保存 timeoutId 引用,`Promise.race` 成功后显式 `clearTimeout()`
46
+ - **核心引擎解耦**: `BluetoothPrinter` 抽出 `handleError()` `resolveConnectionManager()` helper,消除 4 处 try/catch 模板
47
+ - **命令构建器精简**: `CommandBuilder` 抽出 `pushCommands()` helper,消除 7 处 `buffer.push + invalidateCache` 重复
48
+ - **适配器分层**: 5 mini-program adapter(Taro / Alipay / Baidu / ByteDance / QQ)精简为薄壳类(-69% 平均)
49
+ - **服务层去重**: `ConnectionManager.classifyConnectError()`、`PrintJobManager.wrapError()` 抽离,消除嵌套三元
50
+ - **错误类去重**: `ConnectionError` / `PrintJobError` 移除冗余 mapping 表(基于字符串值与 `ErrorCode` 完全一致);`CommandBuildError` 仅保留 DRIVER_ERROR 单条映射
51
+ - **类型黑洞修复**: `PluginManager.executeHook()` 移除 `@ts-expect-error`,改用显式类型守卫
52
+ - **命名规范统一**: 冻结 PascalCase(类文件)/ camelCase(工具文件)/ `I`-prefix(接口)/ 0 下划线前缀 4 条规则
53
+ - **API 表面补完**: `src/index.ts` 新增 `QQAdapter` 导出
114
54
 
115
- - **`PrinterStatus` 状态查询超时 Timer 泄漏** (#4)
116
- - `queryStatus()` 中超时 timer 在正常返回后仍驻留至超时触发
117
- - 修复:使用相同 timer 清理模式
55
+ ### Removed
118
56
 
119
- - **`PrintQueue` 重试定时器泄漏** (#5)
120
- - 任务重试 `setTimeout` 未保存引用,`clear()` 时无法清理
121
- - 修复:新增 `retryTimerId` 成员,`clear()` 时自动取消待执行的重试
57
+ - `src/utils/validation.ts` deprecated 空 stub,无任何引用
122
58
 
123
- ### Changed
59
+ ### Renamed
124
60
 
125
- - **README 文档更新**
126
- - 「高级打印」新增 ZPL 图像编码、CPCL Logo 下载条目
127
- - 「打印机驱动」新增功能状态列,明确标注各驱动支持程度
128
- - 「性能指标」测试用例数更新为 879(95.7% 通过率)
61
+ - `drivers/escPosDriver.ts` → `drivers/EscPosDriver.ts`
62
+ - `drivers/barcode-helpers.ts` `drivers/BarcodeHelpers.ts`
63
+ - `errors/baseError.ts` → `errors/BaseError.ts`
64
+ - `plugins/types.ts` → `plugins/PluginTypes.ts`
65
+ - `encoding/gbk-{table,lite,data}.ts` → `encoding/Gbk{Table,Lite,Data}.ts`
66
+ - `encoding/korean-japanese.ts` → `encoding/KoreanJapanese.ts`
129
67
 
130
- ### Security
68
+ ### Refactoring Metrics
131
69
 
132
- - 消除了所有已识别的 `setTimeout` 泄漏风险点(共 3 处)
133
- - 资源清理路径审计通过:`disconnect` / `destroy` / `clear` 均能正确清理关联定时器
70
+ | 指标 | Before | After | Δ |
71
+ |---|---:|---:|---:|
72
+ | `BluetoothPrinter.ts` | 433 行 | 277 行 | **-36%** |
73
+ | `CommandBuilder.ts` | 315 行 | 158 行 | **-50%** |
74
+ | `PrintJobManager.ts` | 539 行 | 386 行 | **-28%** |
75
+ | 5 mini-program adapters | ~200 行 | ~62 行 | **-69%** |
76
+ | 3 error classes | 225 行 | 142 行 | **-37%** |
77
+ | **Total** | **23,355 行** | **22,567 行** | **-788 / -3.4%** |
134
78
 
135
- ---
79
+ ### Testing
136
80
 
137
- ## [2.9.5] - 初始发布
81
+ - 1,102 tests passed, 38 skipped, 0 regressions
82
+ - type-check: 0 errors (strict + noUncheckedIndexedAccess 全开)
83
+ - eslint: 0 errors / 0 warnings
84
+ - vite build: 22.84s · 230.91 KB gzip(基线 22.25s · 230.58 KB gzip)
85
+ - GitHub Actions CI: ✅ success (Run #28835694715)
138
86
 
139
- 初始发布版本,包含完整的跨平台蓝牙打印功能支持。
87
+ ### Commits
140
88
 
141
- ### 核心能力
89
+ 7 个 conventional commits 落地 (`be2fbdc..06f5ede`):
142
90
 
143
- - 7 大平台适配器:微信 / 支付宝 / 百度 / 字节跳动 / QQ 小程序 + H5 + React Native
144
- - 8 种打印机驱动:ESC/POS、TSPL、ZPL、CPCL、STAR、佳博、芯烨、思普瑞特
145
- - 完整打印生命周期:扫描 连接 打印 断开
146
- - 丰富的打印特性:图片(Floyd-Steinberg 抖动)、QR/条码(10+ 格式)、模板引擎
147
- - 运维体系:离线缓存、打印队列、多设备管理、历史统计、定时重试、插件系统
91
+ - `2fc1f2d` refactor(core): simplify BluetoothPrinter & CommandBuilder
92
+ - `27fdd6a` refactor(services): dedup ConnectionManager + PrintJobManager
93
+ - `c6adaf6` refactor(adapters): deduplicate mini-program adapters and BaseAdapter imports
94
+ - `2bf28f6` refactor: enforce PascalCase file naming for class-bearing modules
95
+ - `6dfe1c5` refactor: remove @ts-expect-error and dead code
96
+ - `8e9193d` refactor(errors): deduplicate error-code mapping tables
97
+ - `06f5ede` chore: update import paths after PascalCase file renames