| 1 | 1.8.1 / 2025-07-17
|
|---|
| 2 | ==========
|
|---|
| 3 |
|
|---|
| 4 | * deps: on-headers@~1.1.0
|
|---|
| 5 | - Fix [CVE-2025-7339](https://www.cve.org/CVERecord?id=CVE-2025-7339) ([GHSA-76c9-3jph-rj3q](https://github.com/expressjs/on-headers/security/advisories/GHSA-76c9-3jph-rj3q))
|
|---|
| 6 |
|
|---|
| 7 | 1.8.0 / 2025-02-10
|
|---|
| 8 | ==================
|
|---|
| 9 |
|
|---|
| 10 | * Use `res.headersSent` when available
|
|---|
| 11 | * Replace `_implicitHeader` with `writeHead` property
|
|---|
| 12 | * add brotli support for versions of node that support it
|
|---|
| 13 | * Add the enforceEncoding option for requests without `Accept-Encoding` header
|
|---|
| 14 |
|
|---|
| 15 | 1.7.5 / 2024-10-31
|
|---|
| 16 | ==================
|
|---|
| 17 |
|
|---|
| 18 | * deps: Replace accepts with negotiator@~0.6.4
|
|---|
| 19 | - Add preference option
|
|---|
| 20 | * deps: bytes@3.1.2
|
|---|
| 21 | - Add petabyte (`pb`) support
|
|---|
| 22 | - Fix "thousandsSeparator" incorrecting formatting fractional part
|
|---|
| 23 | - Fix return value for un-parsable strings
|
|---|
| 24 | * deps: compressible@~2.0.18
|
|---|
| 25 | - Mark `font/ttf` as compressible
|
|---|
| 26 | - Remove compressible from `multipart/mixed`
|
|---|
| 27 | - deps: mime-db@'>= 1.43.0 < 2'
|
|---|
| 28 | * deps: safe-buffer@5.2.1
|
|---|
| 29 |
|
|---|
| 30 | 1.7.4 / 2019-03-18
|
|---|
| 31 | ==================
|
|---|
| 32 |
|
|---|
| 33 | * deps: compressible@~2.0.16
|
|---|
| 34 | - Mark `text/less` as compressible
|
|---|
| 35 | - deps: mime-db@'>= 1.38.0 < 2'
|
|---|
| 36 | * deps: on-headers@~1.0.2
|
|---|
| 37 | - Fix `res.writeHead` patch missing return value
|
|---|
| 38 | * perf: prevent unnecessary buffer copy
|
|---|
| 39 |
|
|---|
| 40 | 1.7.3 / 2018-07-15
|
|---|
| 41 | ==================
|
|---|
| 42 |
|
|---|
| 43 | * deps: accepts@~1.3.5
|
|---|
| 44 | - deps: mime-types@~2.1.18
|
|---|
| 45 | * deps: compressible@~2.0.14
|
|---|
| 46 | - Mark all XML-derived types as compressible
|
|---|
| 47 | - deps: mime-db@'>= 1.34.0 < 2'
|
|---|
| 48 | * deps: safe-buffer@5.1.2
|
|---|
| 49 |
|
|---|
| 50 | 1.7.2 / 2018-02-18
|
|---|
| 51 | ==================
|
|---|
| 52 |
|
|---|
| 53 | * deps: compressible@~2.0.13
|
|---|
| 54 | - deps: mime-db@'>= 1.33.0 < 2'
|
|---|
| 55 |
|
|---|
| 56 | 1.7.1 / 2017-09-26
|
|---|
| 57 | ==================
|
|---|
| 58 |
|
|---|
| 59 | * deps: accepts@~1.3.4
|
|---|
| 60 | - deps: mime-types@~2.1.16
|
|---|
| 61 | * deps: bytes@3.0.0
|
|---|
| 62 | * deps: compressible@~2.0.11
|
|---|
| 63 | - deps: mime-db@'>= 1.29.0 < 2'
|
|---|
| 64 | * deps: debug@2.6.9
|
|---|
| 65 | * deps: vary@~1.1.2
|
|---|
| 66 | - perf: improve header token parsing speed
|
|---|
| 67 |
|
|---|
| 68 | 1.7.0 / 2017-07-10
|
|---|
| 69 | ==================
|
|---|
| 70 |
|
|---|
| 71 | * Use `safe-buffer` for improved Buffer API
|
|---|
| 72 | * deps: bytes@2.5.0
|
|---|
| 73 | * deps: compressible@~2.0.10
|
|---|
| 74 | - Fix regex fallback to not override `compressible: false` in db
|
|---|
| 75 | - deps: mime-db@'>= 1.27.0 < 2'
|
|---|
| 76 | * deps: debug@2.6.8
|
|---|
| 77 | - Allow colors in workers
|
|---|
| 78 | - Deprecated `DEBUG_FD` environment variable set to `3` or higher
|
|---|
| 79 | - Fix error when running under React Native
|
|---|
| 80 | - Fix `DEBUG_MAX_ARRAY_LENGTH`
|
|---|
| 81 | - Use same color for same namespace
|
|---|
| 82 | - deps: ms@2.0.0
|
|---|
| 83 | * deps: vary@~1.1.1
|
|---|
| 84 | - perf: hoist regular expression
|
|---|
| 85 |
|
|---|
| 86 | 1.6.2 / 2016-05-12
|
|---|
| 87 | ==================
|
|---|
| 88 |
|
|---|
| 89 | * deps: accepts@~1.3.3
|
|---|
| 90 | - deps: mime-types@~2.1.11
|
|---|
| 91 | - deps: negotiator@0.6.1
|
|---|
| 92 | * deps: bytes@2.3.0
|
|---|
| 93 | - Drop partial bytes on all parsed units
|
|---|
| 94 | - Fix parsing byte string that looks like hex
|
|---|
| 95 | - perf: hoist regular expressions
|
|---|
| 96 | * deps: compressible@~2.0.8
|
|---|
| 97 | - deps: mime-db@'>= 1.23.0 < 2'
|
|---|
| 98 |
|
|---|
| 99 | 1.6.1 / 2016-01-19
|
|---|
| 100 | ==================
|
|---|
| 101 |
|
|---|
| 102 | * deps: bytes@2.2.0
|
|---|
| 103 | * deps: compressible@~2.0.7
|
|---|
| 104 | - deps: mime-db@'>= 1.21.0 < 2'
|
|---|
| 105 | * deps: accepts@~1.3.1
|
|---|
| 106 | - deps: mime-types@~2.1.9
|
|---|
| 107 |
|
|---|
| 108 | 1.6.0 / 2015-09-29
|
|---|
| 109 | ==================
|
|---|
| 110 |
|
|---|
| 111 | * Skip compression when response has `Cache-Control: no-transform`
|
|---|
| 112 | * deps: accepts@~1.3.0
|
|---|
| 113 | - deps: mime-types@~2.1.7
|
|---|
| 114 | - deps: negotiator@0.6.0
|
|---|
| 115 | * deps: compressible@~2.0.6
|
|---|
| 116 | - deps: mime-db@'>= 1.19.0 < 2'
|
|---|
| 117 | * deps: on-headers@~1.0.1
|
|---|
| 118 | - perf: enable strict mode
|
|---|
| 119 | * deps: vary@~1.1.0
|
|---|
| 120 | - Only accept valid field names in the `field` argument
|
|---|
| 121 |
|
|---|
| 122 | 1.5.2 / 2015-07-30
|
|---|
| 123 | ==================
|
|---|
| 124 |
|
|---|
| 125 | * deps: accepts@~1.2.12
|
|---|
| 126 | - deps: mime-types@~2.1.4
|
|---|
| 127 | * deps: compressible@~2.0.5
|
|---|
| 128 | - deps: mime-db@'>= 1.16.0 < 2'
|
|---|
| 129 | * deps: vary@~1.0.1
|
|---|
| 130 | - Fix setting empty header from empty `field`
|
|---|
| 131 | - perf: enable strict mode
|
|---|
| 132 | - perf: remove argument reassignments
|
|---|
| 133 |
|
|---|
| 134 | 1.5.1 / 2015-07-05
|
|---|
| 135 | ==================
|
|---|
| 136 |
|
|---|
| 137 | * deps: accepts@~1.2.10
|
|---|
| 138 | - deps: mime-types@~2.1.2
|
|---|
| 139 | * deps: compressible@~2.0.4
|
|---|
| 140 | - deps: mime-db@'>= 1.14.0 < 2'
|
|---|
| 141 | - perf: enable strict mode
|
|---|
| 142 |
|
|---|
| 143 | 1.5.0 / 2015-06-09
|
|---|
| 144 | ==================
|
|---|
| 145 |
|
|---|
| 146 | * Fix return value from `.end` and `.write` after end
|
|---|
| 147 | * Improve detection of zero-length body without `Content-Length`
|
|---|
| 148 | * deps: accepts@~1.2.9
|
|---|
| 149 | - deps: mime-types@~2.1.1
|
|---|
| 150 | - perf: avoid argument reassignment & argument slice
|
|---|
| 151 | - perf: avoid negotiator recursive construction
|
|---|
| 152 | - perf: enable strict mode
|
|---|
| 153 | - perf: remove unnecessary bitwise operator
|
|---|
| 154 | * deps: bytes@2.1.0
|
|---|
| 155 | - Slight optimizations
|
|---|
| 156 | - Units no longer case sensitive when parsing
|
|---|
| 157 | * deps: compressible@~2.0.3
|
|---|
| 158 | - Fix regex fallback to work if type exists, but is undefined
|
|---|
| 159 | - deps: mime-db@'>= 1.13.0 < 2'
|
|---|
| 160 | - perf: hoist regex declaration
|
|---|
| 161 | - perf: use regex to extract mime
|
|---|
| 162 | * perf: enable strict mode
|
|---|
| 163 | * perf: remove flush reassignment
|
|---|
| 164 | * perf: simplify threshold detection
|
|---|
| 165 |
|
|---|
| 166 | 1.4.4 / 2015-05-11
|
|---|
| 167 | ==================
|
|---|
| 168 |
|
|---|
| 169 | * deps: accepts@~1.2.7
|
|---|
| 170 | - deps: mime-types@~2.0.11
|
|---|
| 171 | - deps: negotiator@0.5.3
|
|---|
| 172 | * deps: debug@~2.2.0
|
|---|
| 173 | - deps: ms@0.7.1
|
|---|
| 174 |
|
|---|
| 175 | 1.4.3 / 2015-03-14
|
|---|
| 176 | ==================
|
|---|
| 177 |
|
|---|
| 178 | * deps: accepts@~1.2.5
|
|---|
| 179 | - deps: mime-types@~2.0.10
|
|---|
| 180 | * deps: debug@~2.1.3
|
|---|
| 181 | - Fix high intensity foreground color for bold
|
|---|
| 182 | - deps: ms@0.7.0
|
|---|
| 183 |
|
|---|
| 184 | 1.4.2 / 2015-03-11
|
|---|
| 185 | ==================
|
|---|
| 186 |
|
|---|
| 187 | * Fix error when code calls `res.end(str, encoding)`
|
|---|
| 188 | - Specific to Node.js 0.8
|
|---|
| 189 | * deps: debug@~2.1.2
|
|---|
| 190 | - deps: ms@0.7.0
|
|---|
| 191 |
|
|---|
| 192 | 1.4.1 / 2015-02-15
|
|---|
| 193 | ==================
|
|---|
| 194 |
|
|---|
| 195 | * deps: accepts@~1.2.4
|
|---|
| 196 | - deps: mime-types@~2.0.9
|
|---|
| 197 | - deps: negotiator@0.5.1
|
|---|
| 198 |
|
|---|
| 199 | 1.4.0 / 2015-02-01
|
|---|
| 200 | ==================
|
|---|
| 201 |
|
|---|
| 202 | * Prefer `gzip` over `deflate` on the server
|
|---|
| 203 | - Not all clients agree on what "deflate" coding means
|
|---|
| 204 |
|
|---|
| 205 | 1.3.1 / 2015-01-31
|
|---|
| 206 | ==================
|
|---|
| 207 |
|
|---|
| 208 | * deps: accepts@~1.2.3
|
|---|
| 209 | - deps: mime-types@~2.0.8
|
|---|
| 210 | * deps: compressible@~2.0.2
|
|---|
| 211 | - deps: mime-db@'>= 1.1.2 < 2'
|
|---|
| 212 |
|
|---|
| 213 | 1.3.0 / 2014-12-30
|
|---|
| 214 | ==================
|
|---|
| 215 |
|
|---|
| 216 | * Export the default `filter` function for wrapping
|
|---|
| 217 | * deps: accepts@~1.2.2
|
|---|
| 218 | - deps: mime-types@~2.0.7
|
|---|
| 219 | - deps: negotiator@0.5.0
|
|---|
| 220 | * deps: debug@~2.1.1
|
|---|
| 221 |
|
|---|
| 222 | 1.2.2 / 2014-12-10
|
|---|
| 223 | ==================
|
|---|
| 224 |
|
|---|
| 225 | * Fix `.end` to only proxy to `.end`
|
|---|
| 226 | - Fixes an issue with Node.js 0.11.14
|
|---|
| 227 | * deps: accepts@~1.1.4
|
|---|
| 228 | - deps: mime-types@~2.0.4
|
|---|
| 229 |
|
|---|
| 230 | 1.2.1 / 2014-11-23
|
|---|
| 231 | ==================
|
|---|
| 232 |
|
|---|
| 233 | * deps: accepts@~1.1.3
|
|---|
| 234 | - deps: mime-types@~2.0.3
|
|---|
| 235 |
|
|---|
| 236 | 1.2.0 / 2014-10-16
|
|---|
| 237 | ==================
|
|---|
| 238 |
|
|---|
| 239 | * deps: debug@~2.1.0
|
|---|
| 240 | - Implement `DEBUG_FD` env variable support
|
|---|
| 241 |
|
|---|
| 242 | 1.1.2 / 2014-10-15
|
|---|
| 243 | ==================
|
|---|
| 244 |
|
|---|
| 245 | * deps: accepts@~1.1.2
|
|---|
| 246 | - Fix error when media type has invalid parameter
|
|---|
| 247 | - deps: negotiator@0.4.9
|
|---|
| 248 |
|
|---|
| 249 | 1.1.1 / 2014-10-12
|
|---|
| 250 | ==================
|
|---|
| 251 |
|
|---|
| 252 | * deps: accepts@~1.1.1
|
|---|
| 253 | - deps: mime-types@~2.0.2
|
|---|
| 254 | - deps: negotiator@0.4.8
|
|---|
| 255 | * deps: compressible@~2.0.1
|
|---|
| 256 | - deps: mime-db@1.x
|
|---|
| 257 |
|
|---|
| 258 | 1.1.0 / 2014-09-07
|
|---|
| 259 | ==================
|
|---|
| 260 |
|
|---|
| 261 | * deps: accepts@~1.1.0
|
|---|
| 262 | * deps: compressible@~2.0.0
|
|---|
| 263 | * deps: debug@~2.0.0
|
|---|
| 264 |
|
|---|
| 265 | 1.0.11 / 2014-08-10
|
|---|
| 266 | ===================
|
|---|
| 267 |
|
|---|
| 268 | * deps: on-headers@~1.0.0
|
|---|
| 269 | * deps: vary@~1.0.0
|
|---|
| 270 |
|
|---|
| 271 | 1.0.10 / 2014-08-05
|
|---|
| 272 | ===================
|
|---|
| 273 |
|
|---|
| 274 | * deps: compressible@~1.1.1
|
|---|
| 275 | - Fix upper-case Content-Type characters prevent compression
|
|---|
| 276 |
|
|---|
| 277 | 1.0.9 / 2014-07-20
|
|---|
| 278 | ==================
|
|---|
| 279 |
|
|---|
| 280 | * Add `debug` messages
|
|---|
| 281 | * deps: accepts@~1.0.7
|
|---|
| 282 | - deps: negotiator@0.4.7
|
|---|
| 283 |
|
|---|
| 284 | 1.0.8 / 2014-06-20
|
|---|
| 285 | ==================
|
|---|
| 286 |
|
|---|
| 287 | * deps: accepts@~1.0.5
|
|---|
| 288 | - use `mime-types`
|
|---|
| 289 |
|
|---|
| 290 | 1.0.7 / 2014-06-11
|
|---|
| 291 | ==================
|
|---|
| 292 |
|
|---|
| 293 | * use vary module for better `Vary` behavior
|
|---|
| 294 | * deps: accepts@1.0.3
|
|---|
| 295 | * deps: compressible@1.1.0
|
|---|
| 296 |
|
|---|
| 297 | 1.0.6 / 2014-06-03
|
|---|
| 298 | ==================
|
|---|
| 299 |
|
|---|
| 300 | * fix regression when negotiation fails
|
|---|
| 301 |
|
|---|
| 302 | 1.0.5 / 2014-06-03
|
|---|
| 303 | ==================
|
|---|
| 304 |
|
|---|
| 305 | * fix listeners for delayed stream creation
|
|---|
| 306 | - fixes regression for certain `stream.pipe(res)` situations
|
|---|
| 307 |
|
|---|
| 308 | 1.0.4 / 2014-06-03
|
|---|
| 309 | ==================
|
|---|
| 310 |
|
|---|
| 311 | * fix adding `Vary` when value stored as array
|
|---|
| 312 | * fix back-pressure behavior
|
|---|
| 313 | * fix length check for `res.end`
|
|---|
| 314 |
|
|---|
| 315 | 1.0.3 / 2014-05-29
|
|---|
| 316 | ==================
|
|---|
| 317 |
|
|---|
| 318 | * use `accepts` for negotiation
|
|---|
| 319 | * use `on-headers` to handle header checking
|
|---|
| 320 | * deps: bytes@1.0.0
|
|---|
| 321 |
|
|---|
| 322 | 1.0.2 / 2014-04-29
|
|---|
| 323 | ==================
|
|---|
| 324 |
|
|---|
| 325 | * only version compatible with node.js 0.8
|
|---|
| 326 | * support headers given to `res.writeHead`
|
|---|
| 327 | * deps: bytes@0.3.0
|
|---|
| 328 | * deps: negotiator@0.4.3
|
|---|
| 329 |
|
|---|
| 330 | 1.0.1 / 2014-03-08
|
|---|
| 331 | ==================
|
|---|
| 332 |
|
|---|
| 333 | * bump negotiator
|
|---|
| 334 | * use compressible
|
|---|
| 335 | * use .headersSent (drops 0.8 support)
|
|---|
| 336 | * handle identity;q=0 case
|
|---|