|  | 
| 1 |  | -# Change log | 
|  | 1 | +# Changelog | 
| 2 | 2 | 
 | 
| 3 |  | -## 1.9 | 
|  | 3 | +All notable changes to this project will be documented in this file. | 
| 4 | 4 | 
 | 
| 5 |  | -### 1.9.1 | 
|  | 5 | +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), | 
|  | 6 | +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). | 
| 6 | 7 | 
 | 
| 7 |  | -- Chore: deps | 
| 8 |  | -- Chore: require Node.js >=20 | 
|  | 8 | +## [1.9.2] - 2025-10-18 | 
| 9 | 9 | 
 | 
| 10 |  | -### 1.9.0 | 
|  | 10 | +### Changed | 
| 11 | 11 | 
 | 
| 12 |  | -- Feat: allow code generator for esp-idf | 
|  | 12 | +- Improved CLAUDE.md with detailed architecture information, processing pipeline details, and template system documentation | 
|  | 13 | +- Enhanced README.md with comprehensive updates: | 
|  | 14 | +  - Added Node.js >= 20 and npm >= 9 requirements | 
|  | 15 | +  - Added ESP-IDF native code usage example | 
|  | 16 | +  - Improved generated code examples with complete header structure | 
|  | 17 | +  - Enhanced engine descriptions with detailed use cases | 
|  | 18 | +  - Added PsychicHttpServer `max_uri_handlers` configuration note | 
|  | 19 | +  - Improved compression output examples with percentage ratios | 
|  | 20 | +  - Better Q&A explanations for PROGMEM usage and file size | 
|  | 21 | +  - Updated command line options table with clarifications | 
|  | 22 | +  - Fixed inaccuracies in MIME type package references | 
|  | 23 | +- Reformatted CHANGELOG.md to follow Keep a Changelog standard with proper categorization and GitHub comparison links | 
| 13 | 24 | 
 | 
| 14 |  | -## 1.8 | 
|  | 25 | +## [1.9.1] - 2024-09-13 | 
| 15 | 26 | 
 | 
| 16 |  | -### 1.8.1 | 
|  | 27 | +### Changed | 
| 17 | 28 | 
 | 
| 18 |  | -- Fix: http header casing | 
|  | 29 | +- Updated dependencies | 
|  | 30 | +- **BREAKING**: Require Node.js >= 20 and npm >= 9 | 
| 19 | 31 | 
 | 
| 20 |  | -### 1.8.0 | 
|  | 32 | +## [1.9.0] - 2024-03-31 | 
| 21 | 33 | 
 | 
| 22 |  | -- Using the new and maintained ESPAsyncWebserver available at https://github.com/ESP32Async/ESPAsyncWebServer, that has some deprecations. | 
|  | 34 | +### Added | 
| 23 | 35 | 
 | 
| 24 |  | -## 1.7 | 
|  | 36 | +- Code generator support for native ESP-IDF web server (`-e espidf`) | 
|  | 37 | +- New `src/cppCodeEspIdf.ts` module for ESP-IDF template generation | 
|  | 38 | +- ESP-IDF demo project in `demo/esp32idf/` | 
| 25 | 39 | 
 | 
| 26 |  | -### 1.7.1 | 
|  | 40 | +## [1.8.1] - 2023-12-XX | 
| 27 | 41 | 
 | 
| 28 |  | -- Due to ESM problems, we revert to using the **mime-types** npm module. | 
|  | 42 | +### Fixed | 
| 29 | 43 | 
 | 
| 30 |  | -### 1.7.0 | 
|  | 44 | +- HTTP header casing issues | 
| 31 | 45 | 
 | 
| 32 |  | -- Using the cachetime command line option, you can set whether the browser can cache pages. Together with the ETag switch, you can replace the default no-cache response with a max-age=xy response. | 
|  | 46 | +## [1.8.0] - 2023-XX-XX | 
| 33 | 47 | 
 | 
| 34 |  | -## 1.6 | 
|  | 48 | +### Changed | 
| 35 | 49 | 
 | 
| 36 |  | -### 1.6.1 | 
|  | 50 | +- Updated to use the new and maintained ESPAsyncWebServer from https://github.com/ESP32Async/ESPAsyncWebServer | 
|  | 51 | +- Adapted to ESPAsyncWebServer API deprecations | 
| 37 | 52 | 
 | 
| 38 |  | -- Chore: force publish npm | 
|  | 53 | +## [1.7.1] - 2023-XX-XX | 
| 39 | 54 | 
 | 
| 40 |  | -### 1.6.0 | 
|  | 55 | +### Fixed | 
| 41 | 56 | 
 | 
| 42 |  | -- Using mime npm package instead of mime-types: I prefer to use standard text/javascript. It better meets today's requirements. | 
|  | 57 | +- Reverted to **mime-types** npm package due to ESM compatibility issues | 
| 43 | 58 | 
 | 
| 44 |  | -## 1.5 | 
|  | 59 | +## [1.7.0] - 2023-XX-XX | 
| 45 | 60 | 
 | 
| 46 |  | -### 1.5.2 | 
|  | 61 | +### Added | 
| 47 | 62 | 
 | 
| 48 |  | -- chore: In the psychicHttp generated code, the minimum setting of server.config.max_uri_handlers (20 by default) is displayed as a comment so that all files can be served. | 
|  | 63 | +- `--cachetime` command line option to control browser caching behavior | 
|  | 64 | +- Ability to set `max-age` cache control header value (in seconds) | 
|  | 65 | +- Works in conjunction with ETag to replace default `no-cache` response | 
| 49 | 66 | 
 | 
| 50 |  | -### 1.5.1 | 
|  | 67 | +## [1.6.1] - 2023-XX-XX | 
| 51 | 68 | 
 | 
| 52 |  | -- bugfix: It generated an error code if there was an @ sign in the file name. We tried to protect all possible characters: `!&()+./@{}~-` | 
|  | 69 | +### Changed | 
| 53 | 70 | 
 | 
| 54 |  | -### 1.5.0 | 
|  | 71 | +- Force publish to npm registry | 
| 55 | 72 | 
 | 
| 56 |  | -- New engine type (-e psychic2) for PsychicHttp v2 | 
|  | 73 | +## [1.6.0] - 2023-XX-XX | 
| 57 | 74 | 
 | 
| 58 |  | -- Run tests with github repos instead of packages | 
|  | 75 | +### Changed | 
| 59 | 76 | 
 | 
| 60 |  | -## 1.4 | 
|  | 77 | +- Switched to `mime-types` package for better MIME type handling | 
|  | 78 | +- Updated MIME type for JavaScript files to standard `text/javascript` (was `application/javascript`) | 
| 61 | 79 | 
 | 
| 62 |  | -### 1.4.1 | 
|  | 80 | +## [1.5.2] - 2023-XX-XX | 
| 63 | 81 | 
 | 
| 64 |  | -- Implemented a new function to **identify and log files with identical content**. | 
|  | 82 | +### Changed | 
| 65 | 83 | 
 | 
| 66 |  | -- Added support for multiple linting tools to ensure higher code standards. | 
|  | 84 | +- Added comment in PsychicHttpServer generated code suggesting minimum `server.config.max_uri_handlers` setting (default 20) to ensure all files can be served | 
| 67 | 85 | 
 | 
| 68 |  | -### 1.4.0 | 
|  | 86 | +## [1.5.1] - 2023-XX-XX | 
| 69 | 87 | 
 | 
| 70 |  | -- Breaking change: --no-gzip changed to --gzip | 
|  | 88 | +### Fixed | 
| 71 | 89 | 
 | 
| 72 |  | -- The etag and gzip compiler option: For Etag and Gzip switches, values true|false|compiler can be used. In the case of a compiler value, both variants can be found in the .h file and you can decide at compile time which one should be used. | 
|  | 90 | +- Fixed error when file names contain `@` character | 
|  | 91 | +- Enhanced character protection for file name conversion to C++ identifiers: `!&()+./@{}~-` | 
| 73 | 92 | 
 | 
| 74 |  | -- The created and version info: You can put the creation date and a version number in the .h file with the --created and --version options. | 
|  | 93 | +## [1.5.0] - 2023-XX-XX | 
| 75 | 94 | 
 | 
| 76 |  | -- 2x9 build and test system: We also run all possible parameter combinations (etag and gzip) for the Async and Psychic web servers. | 
|  | 95 | +### Added | 
| 77 | 96 | 
 | 
| 78 |  | -- Separated demo env | 
|  | 97 | +- New engine type `-e psychic2` for PsychicHttpServer V2 support | 
|  | 98 | +- PsychicHttpServer V2 template with updated API (response passed as parameter) | 
| 79 | 99 | 
 | 
| 80 |  | -- Proper svelte demo app | 
|  | 100 | +### Changed | 
| 81 | 101 | 
 | 
| 82 |  | -- Create output directory: If output folder not exists, it will be automatically created | 
|  | 102 | +- Test suite now uses GitHub repositories instead of npm packages | 
| 83 | 103 | 
 | 
| 84 |  | -- Detect precompressed files: If a.b and a.b.gz exist together, the .gz file is not used (gz, br, brottli) | 
|  | 104 | +## [1.4.1] - 2023-XX-XX | 
| 85 | 105 | 
 | 
| 86 |  | -- Reduce .h file size: The size of the .h file has been reduced by 35-50%. | 
|  | 106 | +### Added | 
| 87 | 107 | 
 | 
| 88 |  | -- Skip gz under 1024: The gzip threshold increased to 1024 bytes. | 
|  | 108 | +- Duplicate file detection using SHA256 hashing | 
|  | 109 | +- Logging of files with identical content | 
|  | 110 | +- Support for multiple linting tools (ESLint with TypeScript, Prettier, Unicorn plugins) | 
| 89 | 111 | 
 | 
| 90 |  | -- Pipeline node version update | 
|  | 112 | +## [1.4.0] - 2023-XX-XX | 
| 91 | 113 | 
 | 
| 92 |  | -- Warning if not usable directive used | 
|  | 114 | +### Added | 
| 93 | 115 | 
 | 
| 94 |  | -- Colored console | 
|  | 116 | +- Three-state option support for `--etag` and `--gzip` parameters: `true|false|compiler` | 
|  | 117 | +  - `compiler` mode generates both variants in .h file with C++ preprocessor directives | 
|  | 118 | +  - Allows runtime configuration via `SVELTEESP32_ENABLE_ETAG` and `SVELTEESP32_ENABLE_GZIP` defines | 
|  | 119 | +- `--created` option to include creation timestamp in generated header | 
|  | 120 | +- `--version` option to include version string in generated header | 
|  | 121 | +- Comprehensive test system generating all parameter combinations (2×9 builds) | 
|  | 122 | +- Automatic output directory creation if it doesn't exist | 
|  | 123 | +- Pre-compressed file detection (skips `.gz`, `.br`, `.brottli` if original exists) | 
|  | 124 | +- Colored console output for better readability | 
|  | 125 | +- Warning messages when non-effective directives are used | 
| 95 | 126 | 
 | 
| 96 |  | -## 1.3 | 
|  | 127 | +### Changed | 
| 97 | 128 | 
 | 
| 98 |  | -### 1.3.1 | 
|  | 129 | +- **BREAKING**: Renamed `--no-gzip` to `--gzip` (inverted logic) | 
|  | 130 | +- Increased gzip threshold from default to 1024 bytes minimum | 
|  | 131 | +- Reduced generated .h file size by 35-50% through optimizations | 
|  | 132 | +- Separated demo environment | 
|  | 133 | +- Improved Svelte demo application | 
|  | 134 | +- Updated pipeline Node.js version | 
| 99 | 135 | 
 | 
| 100 |  | -- Filename directives are uppercased | 
|  | 136 | +## [1.3.1] - 2023-XX-XX | 
| 101 | 137 | 
 | 
| 102 |  | -- Filecount by extension | 
|  | 138 | +### Changed | 
| 103 | 139 | 
 | 
| 104 |  | -### 1.3.0 | 
|  | 140 | +- Filename C++ defines are now uppercased (e.g., `SVELTEESP32_FILE_INDEX_HTML`) | 
| 105 | 141 | 
 | 
| 106 |  | -- C++ defines can be used | 
|  | 142 | +### Added | 
| 107 | 143 | 
 | 
| 108 |  | -- C++ defines group by filetypes: Should we be able to check if a given file name or number of files is correct? For this, we should find C++ defines in the generated code. | 
|  | 144 | +- File count statistics grouped by extension (e.g., `SVELTEESP32_CSS_FILES`) | 
| 109 | 145 | 
 | 
| 110 |  | -## 1.2 | 
|  | 146 | +## [1.3.0] - 2023-XX-XX | 
| 111 | 147 | 
 | 
| 112 |  | -### 1.2.4 | 
|  | 148 | +### Added | 
| 113 | 149 | 
 | 
| 114 |  | -- Deps update | 
|  | 150 | +- C++ preprocessor defines for build-time validation: | 
|  | 151 | +  - `{PREFIX}_COUNT` - Total file count | 
|  | 152 | +  - `{PREFIX}_SIZE` - Total uncompressed size | 
|  | 153 | +  - `{PREFIX}_SIZE_GZIP` - Total gzip compressed size | 
|  | 154 | +  - `{PREFIX}_FILE_{FILENAME}` - Individual file markers | 
|  | 155 | +  - `{PREFIX}_{EXT}_FILES` - Count by file extension | 
|  | 156 | +- Ability to use `#ifndef` and `#error` for compile-time checks | 
| 115 | 157 | 
 | 
| 116 |  | -### 1.2.2 | 
|  | 158 | +## [1.2.4] - 2023-XX-XX | 
| 117 | 159 | 
 | 
| 118 |  | -- Necessary C++ includes | 
|  | 160 | +### Changed | 
| 119 | 161 | 
 | 
| 120 |  | -### 1.2.1 | 
|  | 162 | +- Updated dependencies | 
| 121 | 163 | 
 | 
| 122 |  | -- Windows paths | 
|  | 164 | +## [1.2.2] - 2023-XX-XX | 
| 123 | 165 | 
 | 
| 124 |  | -### 1.2.0 | 
|  | 166 | +### Added | 
| 125 | 167 | 
 | 
| 126 |  | -- ESP8266/ESP8285 is also supported | 
|  | 168 | +- Necessary C++ includes in generated headers | 
| 127 | 169 | 
 | 
| 128 |  | -## 1.1 | 
|  | 170 | +## [1.2.1] - 2023-XX-XX | 
| 129 | 171 | 
 | 
| 130 |  | -### 1.1.0 | 
|  | 172 | +### Fixed | 
| 131 | 173 | 
 | 
| 132 |  | -- ETag available | 
|  | 174 | +- Windows path handling | 
|  | 175 | + | 
|  | 176 | +## [1.2.0] - 2023-XX-XX | 
|  | 177 | + | 
|  | 178 | +### Added | 
|  | 179 | + | 
|  | 180 | +- ESP8266/ESP8285 support | 
|  | 181 | +- PROGMEM directive usage for ESPAsyncWebServer engine | 
|  | 182 | + | 
|  | 183 | +## [1.1.0] - 2023-XX-XX | 
|  | 184 | + | 
|  | 185 | +### Added | 
|  | 186 | + | 
|  | 187 | +- ETag HTTP header support for cache validation | 
|  | 188 | +- MD5 hash generation for ETag values | 
|  | 189 | +- HTTP 304 Not Modified response handling | 
|  | 190 | +- `--etag` command line option | 
|  | 191 | + | 
|  | 192 | +## [1.0.0] - 2023-XX-XX | 
|  | 193 | + | 
|  | 194 | +### Added | 
|  | 195 | + | 
|  | 196 | +- Initial release | 
|  | 197 | +- Support for PsychicHttpServer (ESP32) | 
|  | 198 | +- Support for ESPAsyncWebServer (ESP32/ESP8266) | 
|  | 199 | +- Automatic gzip compression for files >1024 bytes with >15% size reduction | 
|  | 200 | +- Binary data embedding as const arrays | 
|  | 201 | +- MIME type detection | 
|  | 202 | +- Handlebars-based C++ code generation | 
|  | 203 | +- CLI interface with `-s`, `-e`, `-o` options | 
|  | 204 | +- `index.html` automatic default route handling | 
|  | 205 | + | 
|  | 206 | +[1.9.2]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.9.1...v1.9.2 | 
|  | 207 | +[1.9.1]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.9.0...v1.9.1 | 
|  | 208 | +[1.9.0]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.8.1...v1.9.0 | 
|  | 209 | +[1.8.1]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.8.0...v1.8.1 | 
|  | 210 | +[1.8.0]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.7.1...v1.8.0 | 
|  | 211 | +[1.7.1]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.7.0...v1.7.1 | 
|  | 212 | +[1.7.0]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.6.1...v1.7.0 | 
|  | 213 | +[1.6.1]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.6.0...v1.6.1 | 
|  | 214 | +[1.6.0]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.5.2...v1.6.0 | 
|  | 215 | +[1.5.2]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.5.1...v1.5.2 | 
|  | 216 | +[1.5.1]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.5.0...v1.5.1 | 
|  | 217 | +[1.5.0]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.4.1...v1.5.0 | 
|  | 218 | +[1.4.1]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.4.0...v1.4.1 | 
|  | 219 | +[1.4.0]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.3.1...v1.4.0 | 
|  | 220 | +[1.3.1]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.3.0...v1.3.1 | 
|  | 221 | +[1.3.0]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.2.4...v1.3.0 | 
|  | 222 | +[1.2.4]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.2.2...v1.2.4 | 
|  | 223 | +[1.2.2]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.2.1...v1.2.2 | 
|  | 224 | +[1.2.1]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.2.0...v1.2.1 | 
|  | 225 | +[1.2.0]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.1.0...v1.2.0 | 
|  | 226 | +[1.1.0]: https://github.com/BCsabaEngine/svelteesp32/compare/v1.0.0...v1.1.0 | 
|  | 227 | +[1.0.0]: https://github.com/BCsabaEngine/svelteesp32/releases/tag/v1.0.0 | 
0 commit comments