History.md 33 KB

2.13.4 / 2021-10-19

fixes

  • [dbc9c5a] - fix: Do not response Content-Length if Transfer-Encoding is defined (#1602) (Yiyu He <>)
  • 2.13.3 / 2021-09-24

    fixes

    2.13.2 / 2021-09-24

    fixes

    • [04acf02] - fix: nodejs deprecated api (#1585) (#1588) (hyj1991 <yeekwanvong@gmail.com>)
    • others

      • [3435e78] - lint++ (jongleberry <jonathanrichardong@gmail.com>)
      • [2cd6618] - Fix grammar mistake (#1527) (Matheus Souza <37983247+souzasmatheus@users.noreply.github.com>)
      • [16ab46e] - chore: upgrade koa-convert dependency to ^2.0.0 (#1535) (Christian Rodemeyer <atombrenner@users.noreply.github.com>)
      • [65113ca] - Fix jsdoc types for constructor (#1541) (Piotr Kuczynski <piotr.kuczynski@gmail.com>)
      • [03e6317] - :arrow_up: debug (jongleberry <jonathanrichardong@gmail.com>)
      • [b37a2d0] - :arrow_up: eslint dependencies (jongleberry <jonathanrichardong@gmail.com>)
      • [4a410cc] - migrate assert.deepEqual => .deepStrictEqual (jongleberry <jonathanrichardong@gmail.com>)
      • [4545b59] - test: switch tests to jest (jongleberry <jonathanrichardong@gmail.com>)
      • [596cfd5] - migrate assert.strict => .strictEqual (jongleberry <jonathanrichardong@gmail.com>)
      • [be3e8b6] - test: switch to github actions (jongleberry <jonathanrichardong@gmail.com>)
      • [a2570e3] - package: update bench scripts (jongleberry <jonathanrichardong@gmail.com>)
      • [000acf0] - npm: enable package-lock (jongleberry <jonathanrichardong@gmail.com>)
      • [47fdbca] - delete benchmarks (jongleberry <jonathanrichardong@gmail.com>)
      • [0056f90] - Create dependabot.yml (jongleberry <jonathanrichardong@gmail.com>)
      • [698ce0a] - test: fix typo in status.js (Ikko Ashimine <eltociear@gmail.com>)
      • [eb51cf5] - doc: app.keys needs to be long enought and random (#1520) (Yiyu He <>)
      • 2.13.1 / 2021-01-04

        fixes

        others

        • [b4398f5] - correct verb tense in doc (#1512) (Matan Shavit <71092861+matanshavit@users.noreply.github.com>)
        • [39e1a5a] - fixed multiple grammatical errors in docs. (#1497) (Hridayesh Sharma <vyasriday7@gmail.com>)
        • [aeb5d19] - docs: added niftylettuce@gmail.com to vulnerability disclosure (niftylettuce <niftylettuce@gmail.com>)
        • [6e1093b] - docs: remove babel from readme (#1494) (miwnwski <m@iwnw.ski>)
        • [38cb591] - docs: update specific for auto response status (AlbertAZ1992 <ziyuximing@163.com>)
        • [2224cd9] - docs: remove babel ref. (#1488) (Imed Jaberi <>)
        • [d51f983] - docs: fix assert example for response (#1489) (Imed Jaberi <>)
        • [f8b49b8] - chore: fix grammatical and spelling errors in comments and tests (#1490) (Matt Kubej <mkubej@gmail.com>)
        • [d1c9263] - deps: update depd >> v2.0.0 (#1482) (imed jaberi <>)
        • 2.13.0 / 2020-06-21

          features

          others

          • [20e58cf] - test: imporve coverage to 100% (dead-horse <>)
          • [4a40d63] - build: use prepare instead of prepublish (dead-horse <>)
          • [226ba8c] - build: use prepublish instead of prepack (dead-horse <>)
          • 2.12.1 / 2020-06-13

            fixes

            others

            2.12.0 / 2020-05-18

            features

            others

            2.11.0 / 2019-10-28

            features

            • [422e539] - feat: support app.proxyIPHeader and app.maxIpsCount to make ctx.ips more security (Yiyu He <>)
            • [d48d88e] - feat: implement response.has (#1397) (Konstantin Vyatkin <tino@vtkn.io>)
            • others

              2.10.0 / 2019-10-12

              features

              2.9.0 / 2019-10-12

              features

              others

              2.8.2 / 2019-09-28

              fixes

              others

              2.8.1 / 2019-08-19

              fixes

              • [287e589] - fix: make options more compatibility (dead-horse <>)
              • 2.8.0 / 2019-08-19

                features

                fixes

                others

                • [3b23865] - docs: parameter of request.get is case-insensitive (#1373) (Gunnlaugur Thor Briem <gunnlaugur@gmail.com>)
                • [a245d18] - docs: Update response.socket (#1357) (Jeff <jeff.tian@outlook.com>)
                • [d1d65dd] - chore(deps): install egg-bin, mm as devDeps not deps (#1366) (Edvard Chen <pigeon73101@gmail.com>)
                • [2c86b10] - test: remove jest and use egg-bin(mocha) (#1363) (Yiyu He <>)
                • [219bf22] - docs(context): update link (#1354) (Peng Jie <bivinity.pengzjie@gmail.com>)
                • [52a6737] - chore: ignore Intellij IDEA project files (#1361) (Imon-Haque <38266345+Imon-Haque@users.noreply.github.com>)
                • [b9e3546] - docs(api): fix keygrip link (#1350) (Peng Jie <bivinity.pengzjie@gmail.com>)
                • [d4bdb5e] - chore: update eslint and fix lint errors (dead-horse <>)
                • [12960c4] - build: test on 8/10/12 (dead-horse <>)
                • [00e8f7a] - docs: ctx.type aliases ctx.response, not ctx.request (#1343) (Alex Berk <berkalexanderc@gmail.com>)
                • [62f29eb] - docs(context): update cookies link (#1348) (Peng Jie <dean.leehom@gmail.com>)
                • [b7fc526] - docs: fix typo in cookie path default value docs (#1340) (Igor Adamenko <igoradamenko@users.noreply.github.com>)
                • [23f7f54] - chore: simplify variable (#1332) (kzhang <godky@users.noreply.github.com>)
                • [132c9ee] - docs: Clarify the format of request.headers (#1325) (Dobes Vandermeer <dobesv@gmail.com>)
                • [5810f27] - docs: Removed Document in Progress note in Koa vs Express (#1336) (Andrew Peterson <andrew@andpeterson.com>)
                • [75233d9] - chore: Consider removing this return statement; it will be ignored. (#1322) (Vern Brandl <tkvern@users.noreply.github.com>)
                • [04e07fd] - test: Buffer() is deprecated due to security and usability issues. so use the Buffer.alloc() instead (#1321) (Vern Brandl <tkvern@users.noreply.github.com>)
                • [130e363] - docs: use 'fs-extra' instead of 'fs-promise' (#1309) (rosald <35028438+rosald@users.noreply.github.com>)
                • [2f2078b] - chore: Update PR-welcome badge url (#1299) (James George <jamesgeorge998001@gmail.com>)
                • 2.7.0 / 2019-01-28

                  features

                  others

                  • [72f325b] - chore: add pr welcoming badge (#1291) (James George <jamesgeorge998001@gmail.com>)
                  • [b15115b] - chore: Reduce unnecessary variable declarations (#1298) (call me saisai <1457358080@qq.com>)
                  • [ad91ce2] - chore: license 2019 (dead-horse <>)
                  • [b25e79d] - Mark two examples as live for the corresponding documentation change in https://github.com/koajs/koajs.com/pull/38. (#1031) (Francisco Ryan Tolmasky I <tolmasky@gmail.com>)
                  • [d9ef603] - chore: Optimize array split (#1295) (Mikhail Bodrov <connormiha1@gmail.com>)
                  • [9be8583] - chore: replace ~~ with Math.trunc in res.length (option) (#1288) (jeremiG <gendronjeremi@gmail.com>)
                  • [7e46c20] - docs: add link to the license file (#1290) (James George <jamesgeorge998001@gmail.com>)
                  • [48993ad] - docs: Document other body types (#1285) (Douglas Wade <douglas.b.wade@gmail.com>)
                  • [acb388b] - docs: Add security vulnerability disclosure instructions to the Readme (#1283) (Douglas Wade <douglas.b.wade@gmail.com>)
                  • [a007198] - docs: Document ctx.app.emit (#1284) (Douglas Wade <douglas.b.wade@gmail.com>)
                  • [f90e825] - docs: response.set(fields) won't overwrites previous header fields(#1282) (Douglas Wade <douglas.b.wade@gmail.com>)
                  • [fc93c05] - docs: update readme to add babel 7 instructions (#1274) (Vikram Rangaraj <vik120@icloud.com>)
                  • [5560f72] - chore: use the ability of content-type lib directly (#1276) (Jordan <mingmingwon@gmail.com>)
                  • 2.6.2 / 2018-11-10

                    fixes

                    others

                    2.6.1 / 2018-10-23

                    fixes

                    2.6.0 / 2018-10-23

                    features

                    • [9c5c58b] - feat: use :authority header of http2 requests as host (#1262) (Martin Michaelis <code@mgjm.de>)
                    • [9146024] - feat: response.attachment append a parameter: options from contentDisposition (#1240) (小雷 <863837949@qq.com>)

                    others

                    2.5.3 / 2018-09-11

                    fixes

                    others

                    2.5.2 / 2018-07-12

                    • deps: upgrade all dependencies
                    • perf: avoid stringify when set header (#1220)
                    • perf: cache content type's result (#1218)
                    • perf: lazy init cookies and ip when first time use it (#1216)
                    • chore: fix comment & approve cov (#1214)
                    • docs: fix grammar
                    • test&cov: add test case (#1211)
                    • Lazily initialize request.accept and delegate context.accept (#1209)
                    • fix: use non deprecated custom inspect (#1198)
                    • Simplify processes in the getter request.protocol (#1203)
                    • docs: better demonstrate middleware flow (#1195)
                    • fix: Throw a TypeError instead of a AssertionError (#1199)
                    • chore: mistake in a comment (#1201)
                    • chore: use this.res.socket insteadof this.ctx.req.socket (#1177)
                    • chore: Using "listenerCount" instead of "listeners" (#1184)

                    2.5.1 / 2018-04-27

                    • test: node v10 on travis (#1182)
                    • fix tests: remove unnecessary assert doesNotThrow and api calls (#1170)
                    • use this.response insteadof this.ctx.response (#1163)
                    • deps: remove istanbul (#1151)
                    • Update guide.md (#1150)

                    2.5.0 / 2018-02-11

                    • feat: ignore set header/status when header sent (#1137)
                    • run coverage using --runInBand (#1141)
                    • [Update] license year to 2018 (#1130)
                    • docs: small grammatical fix in api docs index (#1111)
                    • docs: fixed typo (#1112)
                    • docs: capitalize K in word koa (#1126)
                    • Error handling: on non-error throw try to stringify if error is an object (#1113)
                    • Use eslint-config-koa (#1105)
                    • Update mgol's name in AUTHORS, add .mailmap (#1100)
                    • Avoid generating package locks instead of ignoring them (#1108)
                    • chore: update copyright year to 2017 (#1095)

                    2.4.1 / 2017-11-06

                    • fix bad merge w/ 2.4.0

                    2.4.0 / 2017-11-06

                    UNPUBLISHED

                    • update package.engines.node to be more strict
                    • update fresh@^0.5.2
                    • fix: inspect() no longer crashes context
                    • fix: gated res.statusMessage for HTTP/2
                    • added: app.handleRequest() is exposed

                    2.3.0 / 2017-06-20

                    • fix: use Buffer.from()
                    • test on node 7 & 8
                    • add package-lock.json to .gitignore
                    • run lint --fix
                    • add request.header in addition to request.headers
                    • add IPv6 hostname support

                    2.2.0 / 2017-03-14

                    • fix: drop package.engines.node requirement to >= 6.0.0
                      • this fixes yarn, which errors when this semver range is not satisfied
                    • bump cookies@~0.7.0
                    • bump fresh@^0.5.0

                    2.1.0 / 2017-03-07

                    • added: return middleware chain promise from callback() #848
                    • added: node v7.7+ res.getHeaderNames() support #930
                    • added: err.headerSent in error handling #919
                    • added: lots of docs!

                    2.0.1 / 2017-02-25

                    NOTE: we hit a versioning snafu. v2.0.0 was previously released, so v2.0.1 is released as the first v2.x with a latest tag.

                    • upgrade mocha #900
                    • add names to application's request and response handlers #805
                    • breaking: remove unused app.name #899
                    • breaking: drop official support for node < 7.6

                    2.0.0 / ??????????

                    • Fix malformed content-type header causing exception on charset get (#898)
                    • fix: subdomains should be [] if the host is an ip (#808)
                    • don't pre-bound onerror breaking change
                    • fix ctx.flushHeaders() to use res.flushHeaders() instead of res.writeHead() (#795)
                    • fix(response): correct response.writable logic (#782)
                    • merge v1.1.2 and v1.2.0 changes
                    • include koa-convert so that generator functions still work
                      • NOTE: generator functions are deprecated in v2 and will be removed in v3
                    • improve linting
                    • improve docs

                    2.0.0-alpha.8 / 2017-02-13

                    • Fix malformed content-type header causing exception on charset get (#898)

                    2.0.0-alpha.7 / 2016-09-07

                    • fix: subdomains should be [] if the host is an ip (#808)

                    2.0.0-alpha.6 / 2016-08-29

                    • don't pre-bound onerror [breaking change]

                    2.0.0-alpha.5 / 2016-08-10

                    • fix ctx.flushHeaders() to use res.flushHeaders() instead of res.writeHead()

                    2.0.0-alpha.4 / 2016-07-23

                    • fix response.writeable during pipelined requests

                    1.2.0 / 2016-03-03

                    1.1.2 / 2015-11-05

                    • ensure parseurl always working as expected
                    • fix Application.inspect() – missing .proxy value.

                    2.0.0-alpha.3 / 2015-11-05

                    • ensure parseurl always working as expected. #586
                    • fix Application.inspect() – missing .proxy value. Closes #563

                    2.0.0-alpha.2 / 2015-10-27

                    • remove co and generator support completely
                    • improved documentation
                    • more refactoring into ES6

                    2.0.0-alpha.1 / 2015-10-22

                    • change the middleware signature to async (ctx, next) => await next()
                    • drop node < 4 support and rewrite the codebase in ES6

                    1.1.1 / 2015-10-22

                    • do not send a content-type when the type is unknown #536

                    1.1.0 / 2015-10-11

                    • add app.silent=<Boolean> to toggle error logging @tejasmanohar #486
                    • add ctx.origin @chentsulin #480
                    • various refactoring
                      • add use strict everywhere

                    1.0.0 / 2015-08-22

                    • add this.req check for querystring()
                    • don't log errors with err.expose
                    • koa now follows semver!

                    0.21.0 / 2015-05-23

                    • empty request.query objects are now always the same instance
                    • bump fresh@0.3.0

                    0.20.0 / 2015-04-30

                    Breaking change if you're using this.get('ua') === undefined etc. For more details please checkout #438.

                    • make sure helpers return strict string
                    • feat: alias response.headers to response.header

                    0.19.1 / 2015-04-14

                    • non-error thrown, fixed #432

                    0.19.0 / 2015-04-05

                    • req.host and req.hostname now always return a string (semi-breaking change)
                    • improved test coverage

                    0.18.1 / 2015-03-01

                    • move babel to devDependencies

                    0.18.0 / 2015-02-14

                    • experimental es7 async function support via app.experimental = true
                    • use content-type instead of media-typer

                    0.17.0 / 2015-02-05

                    Breaking change if you're using an old version of node v0.11! Otherwise, you should have no trouble upgrading.

                    • official iojs support
                    • drop support for node.js >= 0.11.0 < 0.11.16
                    • use Object.setPrototypeOf() instead of __proto__
                    • update dependencies

                    0.16.0 / 2015-01-27

                    • add res.append()
                    • fix path usage for node@0.11.15

                    0.15.0 / 2015-01-18

                    • add this.href

                    0.14.0 / 2014-12-15

                    • remove x-powered-by response header
                    • fix the content type on plain-text redirects
                    • add ctx.state
                    • bump co@4
                    • bump dependencies

                    0.13.0 / 2014-10-17

                    • add this.message
                    • custom status support via statuses

                    0.12.2 / 2014-09-28

                    • use wider semver ranges for dependencies koa maintainers also maintain

                    0.12.1 / 2014-09-21

                    • bump content-disposition
                    • bump statuses

                    0.12.0 / 2014-09-20

                    • add this.assert()
                    • use content-disposition

                    0.11.0 / 2014-09-08

                    • fix app.use() assertion #337
                    • bump a lot of dependencies

                    0.10.0 / 2014-08-12

                    • add ctx.throw(err, object) support
                    • add ctx.throw(err, status, object) support

                    0.9.0 / 2014-08-07

                    • add: do not set err.expose to true when err.status not a valid http status code
                    • add: alias request.headers as request.header
                    • add context.inspect(), cleanup app.inspect()
                    • update cookies
                    • fix err.status invalid lead to uncaughtException
                    • fix middleware gif, close #322

                    0.8.2 / 2014-07-27

                    • bump co
                    • bump parseurl

                    0.8.1 / 2014-06-24

                    • bump type-is

                    0.8.0 / 2014-06-13

                    • add this.response.is()`
                    • remove .status=string and res.statusString #298

                    0.7.0 / 2014-06-07

                    • add this.lastModified and this.etag as both getters and setters for ubiquity #292. See koajs/koa@4065bf7 for an explanation.
                    • refactor this.response.vary() to use vary #291
                    • remove this.response.append() #291

                    0.6.3 / 2014-06-06

                    • fix res.type= when the extension is unknown
                    • assert when non-error is passed to app.onerror #287
                    • bump finished

                    0.6.2 / 2014-06-03

                    • switch from set-type to mime-types

                    0.6.1 / 2014-05-11

                    • bump type-is
                    • bump koa-compose

                    0.6.0 / 2014-05-01

                    • add nicer error formatting
                    • add: assert object type in ctx.onerror
                    • change .status default to 404. Closes #263
                    • remove .outputErrors, suppress output when handled by the dev. Closes #272
                    • fix content-length when body is re-assigned. Closes #267

                    0.5.5 / 2014-04-14

                    • fix length when .body is missing
                    • fix: make sure all intermediate stream bodies will be destroyed

                    0.5.4 / 2014-04-12

                    • fix header stripping in a few cases

                    0.5.3 / 2014-04-09

                    • change res.type= to always default charset. Closes #252
                    • remove ctx.inspect() implementation. Closes #164

                    0.5.2 / 2014-03-23

                    • fix: inspection of app and app.toJSON()
                    • fix: let this.thrown errors provide their own status
                    • fix: overwriting of content-type w/ HEAD requests
                    • refactor: use statuses
                    • refactor: use escape-html
                    • bump dev deps

                    0.5.1 / 2014-03-06

                    • add request.hostname(getter). Closes #224
                    • remove response.charset and ctx.charset (too confusing in relation to ctx.type) [breaking change]
                    • fix a debug() name

                    0.5.0 / 2014-02-19

                    • add context.charset
                    • add context.charset=
                    • add request.charset
                    • add response.charset
                    • add response.charset=
                    • fix response.body= html content sniffing
                    • change ctx.length and ctx.type to always delegate to response object [breaking change]

                    0.4.0 / 2014-02-11

                    • remove app.jsonSpaces settings - moved to koa-json
                    • add this.response=false to bypass koa's response handling
                    • fix response handling after body has been sent
                    • changed ctx.throw() to no longer .expose 5xx errors
                    • remove app.keys getter/setter, update cookies, and remove keygrip deps
                    • update fresh
                    • update koa-compose

                    0.3.0 / 2014-01-17

                    • add ctx.host= delegate
                    • add req.host=
                    • add: context.throw supports Error instances
                    • update co
                    • update cookies

                    0.2.1 / 2013-12-30

                    • add better 404 handling
                    • add check for fn._name in debug() output
                    • add explicit .toJSON() calls to ctx.toJSON()

                    0.2.0 / 2013-12-28

                    • add support for .throw(status, msg). Closes #130
                    • add GeneratorFunction assertion for app.use(). Closes #120
                    • refactor: move .is() to type-is
                    • refactor: move content negotiation to "accepts"
                    • refactor: allow any streams with .pipe method
                    • remove next in callback for now

                    0.1.2 / 2013-12-21

                    • update co, koa-compose, keygrip
                    • use on-socket-error
                    • add throw(status, msg) support
                    • assert middleware is GeneratorFunction
                    • ducktype stream checks
                    • remove next is app.callback()

                    0.1.1 / 2013-12-19

                    • fix: cleanup socker error handler on response