Skip to content
Merged
Show file tree
Hide file tree
Changes from 40 commits
Commits
Show all changes
41 commits
Select commit Hold shift + click to select a range
989f144
feat: add verbose mode for detailed CLI output
j9t Oct 28, 2025
c8af2ef
test: add tests for verbose mode in CLI
j9t Oct 28, 2025
957e3f4
docs: reorganize and enhance README content
j9t Oct 28, 2025
deb733a
chore: bump version to 3.2.0
j9t Oct 28, 2025
2a9de14
docs: update changelog for 3.2.0 release
j9t Oct 28, 2025
349b183
feat: add test for CLI --version flag
j9t Oct 28, 2025
7018860
feat: update documentation and manuscript content
j9t Oct 28, 2025
6f1cd78
docs: update changelog with version flag documentation
j9t Oct 28, 2025
b8054cc
docs: update README with refined option descriptions
j9t Oct 28, 2025
82132e3
docs: update and refine README structure
j9t Oct 28, 2025
392f730
docs: update changelog for CLI option details
j9t Oct 28, 2025
d654bb2
feat: add progress indicator to file processing
j9t Oct 28, 2025
3c7d396
test: add tests for progress indicator behavior
j9t Oct 28, 2025
889dc2c
docs: update changelog for progress indicator addition
j9t Oct 28, 2025
2b8941f
test: update CLI tests for path compatibility
j9t Oct 28, 2025
fd0953f
docs: fix formatting issue in README table
j9t Oct 28, 2025
9929e2a
docs: refine README option formatting for consistency
j9t Oct 28, 2025
78d75c0
docs: merge badges in README title for compactness
j9t Oct 28, 2025
a37a9c4
feat: improve CLI option handling and progress tracking
j9t Oct 28, 2025
62200ab
docs: update changelog for ESM support and internal changes
j9t Oct 28, 2025
6664144
test: enhance CLI tests for edge case handling
j9t Oct 28, 2025
95f1929
docs: update changelog for expanded test coverage
j9t Oct 28, 2025
a906595
refactor: extract active options display into helper function
j9t Oct 28, 2025
8df8836
refactor: improve path truncation in progress display
j9t Oct 28, 2025
4bcebb9
refactor: centralize and reuse size calculation logic
j9t Oct 28, 2025
7f82290
test: add CLI tests for invalid numeric option values
j9t Oct 28, 2025
749ada6
docs: update changelog to note numeric option fix
j9t Oct 28, 2025
a607a37
docs: update changelog with refined additions and fixes
j9t Oct 28, 2025
8a3da9e
feat: refine progress indicator for directory processing
j9t Oct 28, 2025
62d8672
refactor: simplify progress update logic
j9t Oct 28, 2025
0e9a2b3
docs: update changelog for progress indicator adjustment
j9t Oct 28, 2025
51056ab
feat: improve progress indicator handling
j9t Oct 28, 2025
cc11948
refactor: clarify asynchronous progress handling
j9t Oct 28, 2025
0a91bef
docs: standardize formatting in README
j9t Oct 28, 2025
66aae36
refactor: modularize and enhance config handling
j9t Oct 28, 2025
2616044
refactor: standardize CLI error messages formatting
j9t Oct 28, 2025
4016ba3
docs: update CLI usage heading in README
j9t Oct 28, 2025
c5de17a
fix: resolve race condition in config file loading
j9t Oct 28, 2025
ff02fa8
fix: validate numeric options more thoroughly
j9t Oct 28, 2025
ff33ca3
fix: improve JSON option parsing and CLI output messages
j9t Oct 28, 2025
6569067
docs: refine changelog progress indicator description
j9t Oct 29, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
35 changes: 33 additions & 2 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,18 +4,49 @@ As of version 2.0.0, all notable changes to HTML Minifier Next are documented in

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and the project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [3.2.0] - 2025-10-28

### Added

- Added `--verbose`/`-v` flag to show active options and file statistics (also automatically enabled with `--dry`)
- Added progress indicator for directory processing in interactive terminals (shows file count and percentage completed); auto-disabled in non-TTY environments and when using `--verbose` or `--dry`
- Added ESM config file support via dynamic import fallback (`.mjs` files and modules with `"type": "module"`)
- Documented and added tests for `--version`/`-V` flag

### Changed

- Listed CLI options in documentation
- Verbose mode now displays explicitly provided disabled options (e.g., `--no-html5` shows as `no-html5`)

### Fixed

- Fixed numeric option validation to reject invalid input with clear error messages: now rejects non-numeric values (e.g., `--max-line-length=abc`), values with trailing characters (e.g., `--max-line-length=12abc`), and negative numbers (e.g., `--max-line-length=-50`) instead of silently accepting partial numeric prefixes
- Fixed JSON option parsing to properly detect and report malformed array-like inputs (e.g., `--minify-css=[bad, json]`) and JSON with leading whitespace
- Fixed race condition in config file loading by refactoring async option parser to synchronous path capture with explicit post-parse loading, ensuring config is fully loaded and normalized before any minification operations

### Internal

- Restructured README
- Improved return value consistency in `processFile` function (now always returns stats object)
- Added tests for edge cases: EPIPE handling when piping to `head`, output directory nested in input directory (skip traversal logic), and symbolic link handling

## [3.1.0] - 2025-10-27

### Added

- Added `--dry` / `-d` flag for dry run mode: process and report statistics without writing output files
- Expanded test coverage with CLI tests (STDIN/STDOUT pipe tests, `-o` flag combination tests, dry run error handling), minifier tests (`maxInputLength` security option, CSS/JS minification error handling, `<dialog>` and `<search>` element validation), and cross-platform CI testing (Ubuntu, macOS, Windows)
- Added `--dry`/`-d` flag for dry run mode: process and report statistics without writing output files

### Changed

- Improved CLI help text and enhanced README documentation for `-o, --output` flag, to clarify what it does and how it works
- Refactored CLI functionality by closing `-o` file streams, skipping symlinks and the output subtree in directory mode, and handling `EPIPE`

### Internal

- Expanded CLI test coverage: STDIN/STDOUT piping, `-o` flag combinations, dry run error handling
- Added minifier tests: `maxInputLength` security option, CSS/JS error handling, `<dialog>` and `<search>` elements
- Enabled cross-platform CI testing (Ubuntu, macOS, Windows)

## [3.0.0] - 2025-10-16

### Breaking Changes
Expand Down
Loading