|
2 | 2 |
|
3 | 3 | All notable changes to this project will be documented in this file. |
4 | 4 |
|
5 | | -## [0.3.1] - 2025-12-09 |
| 5 | +## [0.3.2] - 2025-12-10 |
6 | 6 |
|
7 | 7 | ### Changed |
8 | 8 |
|
9 | | -- **Build Process Simplification**: Removed wrapper script complexity in favor of direct SWC compilation |
10 | | -- **Postbuild Script**: Replaced `insert-shebang.sh` with lightweight `add-shebang.js` Node script |
11 | | -- **CJS Package Generation**: Now generated inline in build script instead of via wrapper |
12 | | -- **README**: Updated "How It Works" section to reflect simplified build architecture |
13 | | - |
14 | | -### Technical Details |
15 | | - |
16 | | -**Build Process (Simplified):** |
| 9 | +- **CI**: Main-only triggers, concurrency cancellation, Node 20/22 matrix, unit tests run with coverage |
| 10 | +- **Tests**: Unit and integration suites split into separate Vitest configs |
| 11 | +- **Build**: CI builds once (`build:ci`) before running integration tests; Codecov upload is best-effort |
17 | 12 |
|
18 | | -1. Prebuild: format:fix → lint → typecheck → clean |
19 | | -2. Compile: SWC compiles source to both `build/esm/src/` and `build/cjs/src/` |
20 | | -3. Path Resolution: `tsc-alias` transforms `@/` imports to relative paths |
21 | | -4. Executables: `add-shebang.js` adds shebangs and sets executable permissions |
22 | | -5. CJS Marker: `package.json` with `"type":"commonjs"` created in `build/cjs/` |
| 13 | +## [0.3.1] - 2025-12-09 |
23 | 14 |
|
24 | | -**Entry Points:** |
| 15 | +### Changed |
25 | 16 |
|
26 | | -- ESM: `build/esm/src/cli.js` (executable) |
27 | | -- CJS: `build/cjs/src/cli.js` (executable) |
| 17 | +- **Build**: Simplified to direct SWC outputs plus a lightweight `add-shebang.js` script |
| 18 | +- **Docs**: README "How It Works" refreshed for the new build shape |
| 19 | +- **CI**: Added GitHub Actions on Node 20/22 |
28 | 20 |
|
29 | 21 | ## [0.3.0] - 2025-12-09 |
30 | 22 |
|
31 | 23 | ### Added |
32 | 24 |
|
33 | | -- **Dual Build System**: Project compiles to both ESM (`build/esm/`) and CommonJS (`build/cjs/`) with proper module format markers |
34 | | -- **Path Aliases**: TypeScript path aliases (`@/*`) work throughout codebase and resolve to relative paths in output |
35 | | -- **Build Validation**: Code quality checks (format, lint, typecheck) run automatically in prebuild step |
36 | | -- **Source Maps**: Both ESM and CJS builds include source maps for debugging |
37 | | -- **ESM dirname Utility**: New `getDirname()` utility for ES module-compatible directory resolution |
38 | | -- **Comprehensive Tests**: 27 total tests (9 unit + 18 integration) with 100% code coverage |
39 | | -- **Integration Test Suite**: Dedicated `tests/integration/` with build output and module format validation |
40 | | -- **JSDoc Comments**: All functions documented for IDE support and clarity |
41 | | -- **Improved README**: Comprehensive documentation with features, usage, and architecture explanation |
| 25 | +- **Dual Outputs**: ESM and CJS builds with source maps and path alias resolution |
| 26 | +- **Tests**: 27 total (unit + integration) plus coverage; integration suite validates build outputs |
| 27 | +- **Docs**: README expanded; JSDoc coverage improved |
42 | 28 |
|
43 | 29 | ### Changed |
44 | 30 |
|
45 | | -- **Tooling Migration**: Replaced ESLint + Prettier with Biome for unified linting/formatting |
46 | | -- **Node Version**: Updated from 16+ to 20+ for stable ESM support without flags |
47 | | -- **Build Scripts**: Restructured with separate SWC configurations for ESM and CJS |
48 | | -- **CLI Implementation**: Enhanced with better error handling and version management |
49 | | -- **Testing Framework**: Upgraded from Vite test to dedicated Vitest with coverage |
50 | | -- **Project Structure**: Added utilities folder and proper test file organization |
| 31 | +- **Tooling**: ESLint/Prettier replaced by Biome; Vitest adopted with coverage |
| 32 | +- **Runtime**: Node requirement raised to 20+ for stable ESM; build scripts split per format |
51 | 33 |
|
52 | 34 | ### Removed |
53 | 35 |
|
54 | | -- ESLint configuration and plugins |
55 | | -- Prettier configuration |
56 | | -- Old single build configuration (`.swcrc`) |
57 | | -- Unreachable Node version check code |
| 36 | +- Legacy lint/format configs and the single `.swcrc` |
| 37 | +- Unreachable Node version guard |
58 | 38 |
|
59 | 39 | ### Fixed |
60 | 40 |
|
61 | | -- Test file exclusion from production builds |
62 | | -- Path alias transformation for both module formats |
63 | | -- Vitest configuration to prevent test discovery in build directory |
64 | | -- CJS module format declaration |
| 41 | +- Test files excluded from builds; aliases resolved correctly; build dir no longer scanned by tests |
65 | 42 |
|
66 | 43 | ### Dependencies Updated |
67 | 44 |
|
68 | | -- TypeScript: 4.9.5 → 5.9.3 |
69 | | -- SWC: 1.3.35 → 1.15.3 |
70 | | -- Commander: 10.0.0 → 14.0.2 |
71 | | -- Vitest: 0.28.5 → 4.0.15 |
72 | | -- Biome: 2.3.8 (new) |
73 | | -- tsc-alias: 1.8.16 (new) |
74 | | -- @vitest/coverage-v8: 4.0.15 (new) |
| 45 | +- TypeScript, SWC, Commander, Vitest, Biome, tsc-alias, @vitest/coverage-v8 |
75 | 46 |
|
76 | 47 | ### Breaking Changes |
77 | 48 |
|
78 | | -- Requires Node.js 20+ (was 16+) |
79 | | -- Dual ESM/CJS structure replaces single build output |
80 | | -- Package exports field specifies import/require conditions |
81 | | -- CLI now uses Biome instead of ESLint/Prettier |
| 49 | +- Requires Node 20+ and dual ESM/CJS outputs; exports now specify import/require conditions |
0 commit comments