# Change Log

All notable changes to this project will be documented in this file.
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.

## 7.4.3 (2026-09-09)

### Bug Fixes

- **email-comb:** decode HTML class lists and preserve exact IDs ([9207ee2](https://github.com/codsen/codsen/commit/9207ee2215c47e93b66c56925c7f4f3bbc9e0a12))
- **email-comb:** preserve CSS comment token boundaries ([941b75b](https://github.com/codsen/codsen/commit/941b75b3dc27af190805e241eb05692d2e1bcdd9))
- **email-comb:** respect CSS tokens and HTML boundaries ([495f518](https://github.com/codsen/codsen/commit/495f518bef4a2cc99c79bc3a3ea461b81c77254d))
- **email-comb:** serialize renamed selectors for their output context ([070c1f5](https://github.com/codsen/codsen/commit/070c1f512bb6491bc207aac6fef8d72cd0f54938))

## 7.4.1 (2026-09-06)

### Bug Fixes

- **email-comb:** use canonical HTML attribute reference decoding ([42987b9](https://github.com/codsen/codsen/commit/42987b92cd9e3202bb427c3c7af9260389e619ff))

## 7.4.0 (2026-09-03)

### Features

- **email-comb:** add selector uglify convenience API ([b28d47c](https://github.com/codsen/codsen/commit/b28d47c2768079a6d0e43dbc3abbcec94240421e))

### Performance Improvements

- Recorded a 90.84% higher normalized benchmark score than v7.2.2 (5.049597648183508 → 9.636775108104802).

## 7.3.0 (2026-09-01)

### Bug Fixes

- align range input and output types ([1a13db6](https://github.com/codsen/codsen/commit/1a13db665fe2f9e77c6b5fd509980c87e5a57baf))
- canonicalize encoded body selectors ([806ffc8](https://github.com/codsen/codsen/commit/806ffc855231c5634b513fdf9dd3c49ccb920c0f))
- match comment exclusions across case ([708fb0a](https://github.com/codsen/codsen/commit/708fb0a9e96d082eb2326fa2ba4e3fbfb872566b))
- parse body attributes within opening tags ([265528a](https://github.com/codsen/codsen/commit/265528a2ab7b13916443d2951725b869670e12b3))
- preserve text across blank lines ([ba963a7](https://github.com/codsen/codsen/commit/ba963a7c5d0842aa3f3e2c6193a734ebb0d0e3f6))
- tighten empty conditional comment matching ([fc6692c](https://github.com/codsen/codsen/commit/fc6692cc2c6fc0a3415dfc0d6e2c42cff4015805))

### Features

- expand HTML attribute selector support ([dce1556](https://github.com/codsen/codsen/commit/dce15563659efaee1b739570346919daaddb575d))

### Performance Improvements

- bound malformed opening tag scans ([bc75e27](https://github.com/codsen/codsen/commit/bc75e27fd189fdcb6a0e8b15cffa27c34ca34507))
- bound string uglify collisions ([f01b4ce](https://github.com/codsen/codsen/commit/f01b4ce7d763555f5576abb44255d94ec380004f))
- partition unused selectors linearly ([e4bd269](https://github.com/codsen/codsen/commit/e4bd269c2a8079b77de2c7e55701183817ffd7e3))
- refresh the email comb benchmark ([68b2b02](https://github.com/codsen/codsen/commit/68b2b02c6e3c4108a2519935b8d9ee8aec92dac2))

## 7.2.2 (2026-08-22)

### Performance Improvements

- optimise package hot paths and JSON editing ([f3112bd](https://github.com/codsen/codsen/commit/f3112bd7fc0d7c9bc09312d3744c950691d72ca5))

## 7.2.0 (2026-08-19)

### Bug Fixes

- harden email CSS and ID-reference parsing ([ab45754](https://github.com/codsen/codsen/commit/ab457548b31dd0fc583c529d8a52d6fa93a2750e)), closes [#91](https://github.com/codsen/codsen/issues/91) [#96](https://github.com/codsen/codsen/issues/96) [#105](https://github.com/codsen/codsen/issues/105) [#106](https://github.com/codsen/codsen/issues/106)
- harden options and progress reporting ([9aa04c9](https://github.com/codsen/codsen/commit/9aa04c942b741e40ababbbcffe86aa368b229421))
- make validation diagnostics safe ([7b01074](https://github.com/codsen/codsen/commit/7b0107476f12734aeb8e82852ba980b187280110))
- resolve various review findings ([b60e9ee](https://github.com/codsen/codsen/commit/b60e9eeb499af94685cfb87b4970fe025be1fc10))
- retire direct publish aliases ([f98e31e](https://github.com/codsen/codsen/commit/f98e31eb89bc185471225664e610b55f34fbf648))

### Features

- add codsen-glob and migrate glob consumers ([5595a2b](https://github.com/codsen/codsen/commit/5595a2b267eaa6cb60072d037aef00b7a28edd42))
- refresh the tooling and generate with the latest dependencies ([781f802](https://github.com/codsen/codsen/commit/781f802911066a82a4533b0e5a3fcbd742d0dd83))

## 7.0.24 (2025-02-28)

### Bug Fixes

- fix rogue comma leftover after certain conditions ([6ebd5cd](https://github.com/codsen/codsen/commit/6ebd5cd41863d04b99a9947223967e74292d5097)), closes [#102](https://github.com/codsen/codsen/issues/102)

## 7.0.16 (2023-07-14)

### Bug Fixes

- algorithm misinterpreting CSS comments in URL pattern in text ([0b8a520](https://github.com/codsen/codsen/commit/0b8a520fd68406a56e027d3886a5fa1a95fa9c69)), closes [#83](https://github.com/codsen/codsen/issues/83)

## 5.3.0 (2023-05-21)

### Features

- back-porting the latest v7.0.13 to CJS and releasing as non-pure ESM (no `type: module` in package.json).

## 7.0.13 (2023-05-15)

### Bug Fixes

- fix rogue trailing comma ([2554120](https://github.com/codsen/codsen/commit/2554120de7c2c9755805a694a10c98dc6e173277)), closes [#68](https://github.com/codsen/codsen/issues/68)

## 7.0.11 (2023-04-16)

### Bug Fixes

- trailing line break to be correctly set in CR files ([849ff16](https://github.com/codsen/codsen/commit/849ff161033f73e3e3057ce1543b0442930a31c0))

## 7.0.0 (2022-12-01)

### BREAKING CHANGES

- Minimum supported Node version is v14.18; we're dropping v12 support

## 6.3.0 (2022-08-18)

### Features

- fix result `log.originalLength` ([994b27d](https://github.com/codsen/codsen/commit/994b27d3c8431f222e52512c5fe65db42011dab2))

## 6.2.0 (2022-08-12)

### Features

- export types ([11b5fb9](https://github.com/codsen/codsen/commit/11b5fb936ce20e0a77c3a09806773e1cd7695c50))

## 6.1.22 (2022-08-04)

### Fixed

- export `Opts` and `Res` types ([398a7d1](https://github.com/codsen/codsen/commit/398a7d19e70322c629bf5d7cf9fb107e64aefc15))

## 6.1.18 (2022-07-13)

### Fixed

- fix a bug where selectors ending with colon were misinterpreted ([f279a19](https://github.com/codsen/codsen/commit/f279a197b4c314db57b59534ad8d0e356270da86))

## 6.1.14 (2022-04-18)

### Fixed

- tweak types ([a6acd6a](https://github.com/codsen/codsen/commit/a6acd6a49e3b7cef93c3a250493ca3064d86d61d))

## 6.1.8 (2022-01-11)

### Fixed

- add safeguards against inputs containing excessive whitespace ([4694257](https://github.com/codsen/codsen/commit/4694257a4d75825470a0f4da9603e52620aaf3a3)), closes [#35](https://github.com/codsen/codsen/issues/35)

## 6.1.0 (2021-11-04)

### Features

- extend `opts.whitelist` to match against the whole chunk ([52855ad](https://github.com/codsen/codsen/commit/52855ad3a51249d9f537a523212dcc1fb0714b4d)), closes [#27](https://github.com/codsen/codsen/issues/27)

## 6.0.0 (2021-09-09)

### Features

- migrate to ES Modules ([8c9d95d](https://github.com/codsen/codsen/commit/8c9d95d5dea0b769c2f070397141918a4893d575))

### BREAKING CHANGES

- programs now are in ES Modules and won't work with Common JS `require()`

## 5.0.14 (2021-04-04)

### Fixed

- recognise Nunjucks/Jinja within head CSS [@font-face](https://github.com/font-face) ([4fd803b](https://github.com/codsen/codsen/commit/4fd803bbb0734c192309e95bbafbd1d029e07571))

## 5.0.7 (2021-03-07)

### Fixed

- correct the name of the package in the throw messages ([2d1ad58](https://github.com/codsen/codsen/commit/2d1ad58a8d48c98d56abf88e351bae39fe8d9e42))

## 5.0.1 (2021-01-28)

### Fixed

- add `testStats` to npmignore ([f3c84e9](https://github.com/codsen/codsen/commit/f3c84e95afc5514214312f913692d85b2e12eb29))

## 5.0.0 (2021-01-23)

### Features

- rewrite in TS ([402f4a2](https://github.com/codsen/codsen/commit/402f4a2b2c30b98626c9fd918816c5bbcbcf33af))

### BREAKING CHANGES

- Now you must consume like `import { comb } from ...`

## 4.1.0 (2020-12-11)

### Features

- leave quote-less attributes intact, don't try to restore quotes ([cf591db](https://git.sr.ht/~royston/codsen/commit/cf591dbbb91251cdfcfe640bfab2b82b6dc95d74))

## 4.0.5 (2020-12-09)

### Fixed

- correct the typo in the `log.timeTakenInMilliseconds` ([ddc2dec](https://git.sr.ht/~royston/codsen/commit/ddc2decbe0997e0704db781e5bdc97f0b53d5054))

## 4.0.0 (2020-11-28)

Accidental version bump during migration to SourceHut. Sorry about that.

## 3.10.6 (2020-11-02)

### Fixed

- interpret `id=` or `class=` in URLs as text ([547cf93](https://gitlab.com/codsen/codsen/commit/547cf9345b7c9406f778d9988e0e3384aabb5d8b)), closes [#45](https://gitlab.com/codsen/codsen/issues/45)

## 3.10.0 (2020-09-15)

### Features

- leave the trailing line break condition as it comes in, unless it's excessive (trim then) ([f2dee90](https://gitlab.com/codsen/codsen/commit/f2dee90a155f0e40f5d813d9b3e863ad9d154449)), closes [#40](https://gitlab.com/codsen/codsen/issues/40)

## 3.9.20 (2020-08-08)

### Fixed

- fix a bug with consecutive style tags ignored first class' first char ([758ea97](https://gitlab.com/codsen/codsen/commit/758ea970cd0911f7c04f6c209a515ee680b75c60)), closes [#36](https://gitlab.com/codsen/codsen/issues/36)

## 3.9.17 (2020-05-24)

### Fixed

- stop removing `class` or `id` without following equals, completely (for now) ([c07cce5](https://gitlab.com/codsen/codsen/commit/c07cce56d8633ef72ea9451617d8b06d96efc5db)), closes [#27](https://gitlab.com/codsen/codsen/issues/27)

## 3.9.0 (2020-01-26)

### Features

- improvements to algorithm when class is joined with a known ESP tag ([366c13b](https://gitlab.com/codsen/codsen/commit/366c13ba291ca46cce96495ba1c1985f3e56e6fa))

## 3.8.0 (2019-09-17)

### Fixed

- correctly recognise single and double apostrophes within the text, outside tags ([5f7f428](https://gitlab.com/codsen/codsen/commit/5f7f428))

### Features

- recognise single-double-single/double-single-double quotes within attr values ([3eeaf1e](https://gitlab.com/codsen/codsen/commit/3eeaf1e))

## 3.7.1 (2019-09-11)

### Fixed

- remove leading spaces in cleaned like `class=" zz"` and tighten up `class`/`id` recognition ([a900e4e](https://gitlab.com/codsen/codsen/commit/a900e4e))

## 3.7.0 (2019-09-04)

### Features

- recognise bracket notation ([ce0a0b1](https://gitlab.com/codsen/codsen/commit/ce0a0b1))

## 3.6.0 (2019-08-24)

### Features

- support quoteless attributes that come out of other minifiers ([9129fad](https://gitlab.com/codsen/codsen/commit/9129fad))

## 3.5.0 (2019-08-08)

### Features

- support for liquid template engine _double curlies_ as CSS style values in head CSS ([819df36](https://gitlab.com/codsen/codsen/commit/819df36))

## 3.4.0 (2019-06-29)

### Features

- Add perf measurement, comparing and recording ([44f7a9e](https://gitlab.com/codsen/codsen/commit/44f7a9e))

## 3.3.0 (2019-06-25)

### Features

- Output object's new keys `countBeforeCleaning` and `countAfterCleaning` ([55b13e7](https://gitlab.com/codsen/codsen/commit/55b13e7))
- Uglification legend does not mention entries which were not uglified because of being whitelisted ([b6bacfc](https://gitlab.com/codsen/codsen/commit/b6bacfc))

## 3.2.0 (2019-06-21)

### Features

- `opts.removeCSSComments` ([b848d1c](https://gitlab.com/codsen/codsen/commit/b848d1c))
- Uglification based on class/id characters but not class/id position in the reference array ([c839977](https://gitlab.com/codsen/codsen/commit/c839977))

## 3.1.0 (2019-06-18)

### Features

- If uglification was turned on, output legend under `log.uglified` ([805ce2d](https://gitlab.com/codsen/codsen/commit/805ce2d))
- `opts.reportProgressFunc` ([f5935fb](https://gitlab.com/codsen/codsen/commit/f5935fb))
- `opts.reportProgressFuncFrom` and `opts.reportProgressFuncTo` ([8734cc5](https://gitlab.com/codsen/codsen/commit/8734cc5))

## 3.0.0 (2019-06-01)

### Features

- Change the default export to { comb } instead of function exported as default ([3db706e](https://gitlab.com/codsen/codsen/commit/3db706e))

### BREAKING CHANGES

- Now you must consume importing or requiring { comb } instead of assigning to any
  variable you like as before

## 2.0.10 (2019-03-22)

### Fixed

- The comma bug where unused chunk was sandwiched by used chunks ([cb6fa4c](https://gitlab.com/codsen/codsen/commit/cb6fa4c))

## 1.2.8 (2019-02-26)

### Fixed

- Empty media queries in tight scenarios not being removed completely ([d4f1d8e](https://gitlab.com/codsen/codsen/commit/d4f1d8e))

## 1.2.7 (2019-02-10)

### Fixed

- Fix the Create New Issue URLs ([c5ee4a6](https://gitlab.com/codsen/codsen/commit/c5ee4a6))

## 1.2.0 (2019-01-20)

- Various documentation and setup tweaks after we migrated to monorepo
- Setup refresh: updated dependencies and all config files using automated tools

## 1.0.0 (2018-12-15)

- Renaming `email-remove-unused-css` to `email-comb` and resetting versions to `1.0.0`
