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.
- package/CHANGELOG.md +69 -119
- package/README.md +195 -245
- package/dist/index.cjs.js +1 -1
- package/dist/index.es.js +1 -1
- package/dist/index.umd.js +1 -1
- package/dist/types/adapters/AlipayAdapter.d.ts +0 -14
- package/dist/types/adapters/BaiduAdapter.d.ts +0 -14
- package/dist/types/adapters/BaseAdapter.d.ts +15 -2
- package/dist/types/adapters/ByteDanceAdapter.d.ts +0 -14
- package/dist/types/adapters/QQAdapter.d.ts +0 -18
- package/dist/types/adapters/ReactNativeAdapter.d.ts +1 -2
- package/dist/types/adapters/TaroAdapter.d.ts +0 -14
- package/dist/types/core/BluetoothPrinter.d.ts +43 -287
- package/dist/types/core/EventEmitter.d.ts +5 -3
- package/dist/types/core/index.d.ts +3 -4
- package/dist/types/drivers/BarcodeHelpers.d.ts +33 -0
- package/dist/types/drivers/CpclDriver.d.ts +0 -16
- package/dist/types/drivers/{escPosDriver.d.ts → EscPosDriver.d.ts} +6 -0
- package/dist/types/drivers/GPrinterDriver.d.ts +1 -1
- package/dist/types/drivers/SprtDriver.d.ts +1 -1
- package/dist/types/drivers/XprinterDriver.d.ts +1 -1
- package/dist/types/drivers/ZplDriver.d.ts +0 -16
- package/dist/types/drivers/index.d.ts +1 -1
- package/dist/types/encoding/{gbk-lite.d.ts → GbkLite.d.ts} +1 -1
- package/dist/types/encoding/index.d.ts +2 -2
- package/dist/types/errors/{baseError.d.ts → BaseError.d.ts} +6 -0
- package/dist/types/errors/CommandBuildError.d.ts +3 -17
- package/dist/types/errors/ConnectionError.d.ts +3 -20
- package/dist/types/errors/PrintJobError.d.ts +2 -18
- package/dist/types/errors/index.d.ts +1 -1
- package/dist/types/factory/PrinterFactory.d.ts +4 -2
- package/dist/types/index.d.ts +3 -5
- package/dist/types/plugins/PluginManager.d.ts +2 -2
- package/dist/types/plugins/{types.d.ts → PluginTypes.d.ts} +1 -1
- package/dist/types/plugins/builtin/LoggingPlugin.d.ts +1 -1
- package/dist/types/plugins/builtin/RetryPlugin.d.ts +2 -2
- package/dist/types/plugins/index.d.ts +1 -1
- package/dist/types/preview/PreviewRenderer.d.ts +3 -7
- package/dist/types/services/CloudPrintManager.d.ts +0 -5
- package/dist/types/services/CommandBuilder.d.ts +8 -151
- package/dist/types/services/ConnectionManager.d.ts +6 -1
- package/dist/types/services/PrintHistory.d.ts +14 -27
- package/dist/types/services/PrintJobManager.d.ts +24 -135
- package/dist/types/services/PrintScheduler.d.ts +1 -0
- package/dist/types/services/PrintStatistics.d.ts +10 -0
- package/dist/types/services/QRCodeDiscoveryService.d.ts +1 -0
- package/dist/types/template/engines/TemplateRenderer.d.ts +12 -0
- package/dist/types/utils/BoundedOrderedMap.d.ts +47 -0
- package/dist/types/utils/image.d.ts +2 -0
- package/package.json +4 -2
- package/src/adapters/AdapterFactory.ts +1 -1
- package/src/adapters/AlipayAdapter.ts +3 -21
- package/src/adapters/BaiduAdapter.ts +3 -21
- package/src/adapters/BaseAdapter.ts +30 -7
- package/src/adapters/ByteDanceAdapter.ts +3 -21
- package/src/adapters/ChunkWriteStrategy.ts +1 -1
- package/src/adapters/QQAdapter.ts +3 -25
- package/src/adapters/ReactNativeAdapter.ts +17 -12
- package/src/adapters/TaroAdapter.ts +5 -20
- package/src/adapters/WebBluetoothAdapter.ts +1 -1
- package/src/config/PrinterConfigManager.ts +1 -1
- package/src/core/BluetoothPrinter.ts +114 -421
- package/src/core/EventEmitter.ts +43 -49
- package/src/core/index.ts +3 -9
- package/src/device/DeviceManager.ts +7 -11
- package/src/device/DiscoveryService.ts +6 -4
- package/src/device/MultiPrinterManager.ts +1 -1
- package/src/drivers/BarcodeHelpers.ts +52 -0
- package/src/drivers/CpclDriver.ts +2 -22
- package/src/drivers/{escPosDriver.ts → EscPosDriver.ts} +14 -15
- package/src/drivers/GPrinterDriver.ts +1 -1
- package/src/drivers/SprtDriver.ts +1 -1
- package/src/drivers/XprinterDriver.ts +1 -1
- package/src/drivers/ZplDriver.ts +2 -22
- package/src/drivers/index.ts +1 -1
- package/src/encoding/EncodingService.ts +2 -2
- package/src/encoding/GbkLite.ts +50 -0
- package/src/encoding/{gbk-table.ts → GbkTable.ts} +2 -2
- package/src/encoding/index.ts +2 -2
- package/src/errors/{baseError.ts → BaseError.ts} +9 -0
- package/src/errors/CommandBuildError.ts +19 -30
- package/src/errors/ConnectionError.ts +9 -37
- package/src/errors/PrintJobError.ts +10 -32
- package/src/errors/index.ts +1 -1
- package/src/factory/PrinterFactory.ts +5 -3
- package/src/index.ts +3 -44
- package/src/plugins/PluginManager.ts +9 -8
- package/src/plugins/{types.ts → PluginTypes.ts} +1 -1
- package/src/plugins/builtin/LoggingPlugin.ts +1 -1
- package/src/plugins/builtin/RetryPlugin.ts +2 -2
- package/src/plugins/index.ts +1 -1
- package/src/preview/PreviewRenderer.ts +60 -70
- package/src/queue/PrintQueue.ts +1 -1
- package/src/services/BatchPrintManager.ts +7 -6
- package/src/services/CloudPrintManager.ts +13 -5
- package/src/services/CommandBuilder.ts +35 -193
- package/src/services/ConnectionManager.ts +38 -24
- package/src/services/PrintHistory.ts +43 -120
- package/src/services/PrintJobManager.ts +154 -334
- package/src/services/PrintScheduler.ts +14 -5
- package/src/services/PrintStatistics.ts +46 -51
- package/src/services/PrinterStatus.ts +2 -1
- package/src/services/QRCodeDiscoveryService.ts +7 -2
- package/src/services/ScheduledRetryManager.ts +7 -2
- package/src/template/engines/TemplateRenderer.ts +79 -56
- package/src/utils/BoundedOrderedMap.ts +120 -0
- package/src/utils/image.ts +63 -54
- package/dist/types/core/di/Container.d.ts +0 -84
- package/dist/types/core/di/Tokens.d.ts +0 -29
- package/dist/types/core/di/index.d.ts +0 -3
- package/dist/types/core/event/EventBus.d.ts +0 -66
- package/dist/types/core/event/index.d.ts +0 -2
- package/dist/types/core/plugin/PluginManager.d.ts +0 -64
- package/dist/types/core/plugin/index.d.ts +0 -2
- package/dist/types/factory/di-factory.d.ts +0 -52
- package/dist/types/providers/ServiceProvider.d.ts +0 -56
- package/dist/types/providers/index.d.ts +0 -2
- package/dist/types/utils/errorHandler.d.ts +0 -78
- package/dist/types/utils/validation.d.ts +0 -8
- package/src/core/di/Container.ts +0 -321
- package/src/core/di/Tokens.ts +0 -45
- package/src/core/di/index.ts +0 -3
- package/src/core/event/EventBus.ts +0 -250
- package/src/core/event/index.ts +0 -2
- package/src/core/plugin/PluginManager.ts +0 -157
- package/src/core/plugin/index.ts +0 -2
- package/src/encoding/gbk-lite.ts +0 -113
- package/src/factory/di-factory.ts +0 -61
- package/src/providers/ServiceProvider.ts +0 -209
- package/src/providers/index.ts +0 -2
- package/src/utils/errorHandler.ts +0 -196
- package/src/utils/validation.ts +0 -9
- /package/dist/types/encoding/{gbk-data.d.ts → GbkData.d.ts} +0 -0
- /package/dist/types/encoding/{gbk-table.d.ts → GbkTable.d.ts} +0 -0
- /package/dist/types/encoding/{korean-japanese.d.ts → KoreanJapanese.d.ts} +0 -0
- /package/src/encoding/{gbk-data.ts → GbkData.ts} +0 -0
- /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.
|
|
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
|
-
- **
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
74
|
-
|
|
75
|
-
|
|
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
|
-
###
|
|
22
|
+
### Assets
|
|
78
23
|
|
|
79
|
-
|
|
80
|
-
|
|
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
|
-
###
|
|
34
|
+
### Documentation
|
|
83
35
|
|
|
84
|
-
-
|
|
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.
|
|
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
|
-
###
|
|
44
|
+
### Changed
|
|
110
45
|
|
|
111
|
-
-
|
|
112
|
-
|
|
113
|
-
|
|
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
|
-
|
|
116
|
-
- `queryStatus()` 中超时 timer 在正常返回后仍驻留至超时触发
|
|
117
|
-
- 修复:使用相同 timer 清理模式
|
|
55
|
+
### Removed
|
|
118
56
|
|
|
119
|
-
-
|
|
120
|
-
- 任务重试 `setTimeout` 未保存引用,`clear()` 时无法清理
|
|
121
|
-
- 修复:新增 `retryTimerId` 成员,`clear()` 时自动取消待执行的重试
|
|
57
|
+
- `src/utils/validation.ts` — deprecated 空 stub,无任何引用
|
|
122
58
|
|
|
123
|
-
###
|
|
59
|
+
### Renamed
|
|
124
60
|
|
|
125
|
-
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
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
|
-
###
|
|
68
|
+
### Refactoring Metrics
|
|
131
69
|
|
|
132
|
-
|
|
133
|
-
|
|
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
|
-
|
|
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
|
-
-
|
|
144
|
-
-
|
|
145
|
-
-
|
|
146
|
-
-
|
|
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
|