|
1 | 1 | # Changelog |
2 | 2 |
|
3 | | -## 0.1.0 (2026-02-25) |
| 3 | +All notable changes to this project will be documented in this file. |
| 4 | + |
| 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), |
| 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). |
| 7 | + |
| 8 | +## [0.10.1] - 2026-02-27 |
| 9 | + |
| 10 | +### Fixed |
| 11 | +- **VitePress docs deployment**: Added `ignoreDeadLinks` for `/api/` paths to fix dead link errors caused by TypeDoc-generated pages and `cleanUrls` mode |
| 12 | +- **VitePress config**: Updated GitHub repository URLs from placeholder to `ABCrimson/modern-pdf-lib` |
| 13 | +- **VitePress config**: Corrected copyright year to 2026 |
| 14 | + |
| 15 | +### Changed |
| 16 | +- **GitHub Actions**: Updated all action versions to latest releases: |
| 17 | + - `actions/checkout` v4 → v6 (Node.js 24 runtime, improved credential persistence) |
| 18 | + - `actions/setup-node` v4 → v6 (Node.js 24 runtime, npm-only auto-caching) |
| 19 | + - `actions/cache` v4 → v5 (Node.js 24 runtime) |
| 20 | + - `actions/upload-artifact` v4 → v7 (direct upload support, ESM migration) |
| 21 | + - `actions/download-artifact` v4 → v8 (enforced hash verification, ESM migration) |
| 22 | + - `actions/upload-pages-artifact` v3 → v4 (runtime alignment) |
| 23 | + - `softprops/action-gh-release` v2 → v2.5.0 (bug fixes) |
| 24 | + |
| 25 | +## [0.10.0] - 2026-02-27 |
| 26 | + |
| 27 | +### Changed |
| 28 | +- **Node.js requirement**: Bumped minimum from 22 to 25.7 to support native `Uint8Array.toHex()`, `fromHex()`, `toBase64()`, and `fromBase64()` APIs used throughout the codebase |
| 29 | + |
| 30 | +### Fixed |
| 31 | +- **CI peer dependency conflict**: Added `--legacy-peer-deps` to `npm ci` in all workflow jobs — resolves `tsdown@0.21.0-beta.2` requiring `typescript@^5.0.0` while we use TypeScript 6.0 |
| 32 | +- **WASM build**: Made WASM compilation non-blocking (`continue-on-error: true`) in the release workflow since WASM modules are optional with pure-JS fallbacks |
| 33 | + |
| 34 | +### Infrastructure |
| 35 | +- **npm trusted publishing**: Switched from `NPM_TOKEN` secret to OIDC-based trusted publishing — no secrets to manage, GitHub Actions authenticates directly with npm via OpenID Connect |
| 36 | +- **npm provenance**: Added explicit `id-token: write` permission on the publish job for cryptographic provenance attestation |
| 37 | +- **Bundle path fix**: Corrected `ci.yml` bundle-size check to reference `dist/index.mjs` instead of the non-existent `dist/index.js` |
| 38 | + |
| 39 | +## [0.9.0] - 2026-02-27 |
| 40 | + |
| 41 | +First public release on npm as `modern-pdf-lib`. |
| 42 | + |
| 43 | +### Changed |
| 44 | +- **Renamed** from `modern-pdf` to `modern-pdf-lib` (v0.9.0) |
| 45 | +- **Package exports**: Fixed conditional exports to use correct `.mjs`/`.d.mts`/`.d.cts` extensions matching tsdown output |
| 46 | +- **Package size**: Reduced from 1.3 MB to 589 KB by excluding source map files from the published tarball |
| 47 | +- **ESNext modernization**: Replaced manual implementations with native APIs: |
| 48 | + - `Uint8Array.toHex()` / `Uint8Array.fromHex()` for hex conversions |
| 49 | + - `Uint8Array.toBase64()` / `Uint8Array.fromBase64()` for Base64 |
| 50 | + - `Map.groupBy()` for grouping operations |
| 51 | + - `TextDecoder('latin1')` for Latin-1 decoding |
| 52 | + - `concatBytes()` utility for Uint8Array concatenation |
| 53 | + - Iterator helpers (`.keys().toArray()`, `.values().toArray()`) |
| 54 | + |
| 55 | +### Added |
| 56 | +- **README**: Comprehensive, visually striking README with dark/light mode badges, feature comparison table (18 rows vs pdf-lib), collapsible API examples, runtime table, WASM acceleration table |
| 57 | +- **`prepublishOnly` script**: Runs typecheck + tests + build before every publish |
| 58 | +- **Repository metadata**: Added `homepage`, `bugs`, and corrected `repository` URLs in package.json |
| 59 | +- **GitHub release**: Created v0.9.0 release with release notes |
| 60 | + |
| 61 | +### Fixed |
| 62 | +- **TypeScript strict mode errors**: |
| 63 | + - `accessibilityChecker.ts`: Fixed `noUncheckedIndexedAccess` errors with `Map.groupBy` by extracting array elements to local variables |
| 64 | + - `pdfDocument.ts`: Fixed `exactOptionalPropertyTypes` error by adding `| undefined` to optional property type |
| 65 | +- **Test assertions**: Updated 3 tests to use generic `.toThrow()` instead of regex patterns that didn't match native API error messages |
| 66 | + |
| 67 | +## [0.1.0] - 2026-02-25 |
| 68 | + |
| 69 | +Initial development release. |
4 | 70 |
|
5 | 71 | ### Features |
6 | 72 | - **PDF Creation**: Full document creation with text, fonts (standard 14 + TrueType), images (PNG/JPEG), shapes, colors, opacity |
|
0 commit comments