koa 2.14.0 → 2.14.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -69,7 +69,6 @@ module.exports = class Application extends Emitter {
69
69
  const { AsyncLocalStorage } = require('async_hooks');
70
70
  assert(AsyncLocalStorage, 'Requires node 12.17.0 or higher to enable asyncLocalStorage');
71
71
  this.ctxStorage = new AsyncLocalStorage();
72
- this.use(createAsyncCtxStorage(this));
73
72
  }
74
73
  }
75
74
 
@@ -154,7 +153,12 @@ module.exports = class Application extends Emitter {
154
153
 
155
154
  const handleRequest = (req, res) => {
156
155
  const ctx = this.createContext(req, res);
157
- return this.handleRequest(ctx, fn);
156
+ if (!this.ctxStorage) {
157
+ return this.handleRequest(ctx, fn);
158
+ }
159
+ return this.ctxStorage.run(ctx, async() => {
160
+ return await this.handleRequest(ctx, fn);
161
+ });
158
162
  };
159
163
 
160
164
  return handleRequest;
@@ -234,15 +238,16 @@ module.exports = class Application extends Emitter {
234
238
  static get default() {
235
239
  return Application;
236
240
  }
237
- };
238
241
 
239
- function createAsyncCtxStorage(app) {
240
- return async function asyncCtxStorage(ctx, next) {
241
- await app.ctxStorage.run(ctx, async() => {
242
- return await next();
243
- });
244
- };
245
- }
242
+ createAsyncCtxStorageMiddleware() {
243
+ const app = this;
244
+ return async function asyncCtxStorage(ctx, next) {
245
+ await app.ctxStorage.run(ctx, async() => {
246
+ return await next();
247
+ });
248
+ };
249
+ }
250
+ };
246
251
 
247
252
  /**
248
253
  * Response helper.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "koa",
3
- "version": "2.14.0",
3
+ "version": "2.14.2",
4
4
  "description": "Koa web app framework",
5
5
  "main": "lib/application.js",
6
6
  "exports": {
package/History.md DELETED
@@ -1,690 +0,0 @@
1
-
2
- 2.14.0 / 2022-12-06
3
- ==================
4
-
5
- **features**
6
- * [[`a293122`](http://github.com/koajs/koa/commit/a29312212839c6f0418152d2a2cd3bf3fd3ee5e4)] - feat: support asyncLocalStorage (#1721) (fengmk2 <<fengmk2@gmail.com>>)
7
-
8
- 2.13.4 / 2021-10-19
9
- ==================
10
-
11
- **fixes**
12
- * [[`dbc9c5a`](http://github.com/koajs/koa/commit/dbc9c5a47e2b2799cab403186fdb010df5df6f67)] - fix: Do not response Content-Length if Transfer-Encoding is defined (#1602) (Yiyu He <<dead_horse@qq.com>>)
13
-
14
- 2.13.3 / 2021-09-24
15
- ==================
16
-
17
- **fixes**
18
- * [[`a37a2e5`](http://github.com/koajs/koa/commit/a37a2e5eec8997661a35ca10210f1d9950976041)] - fix: compatible with node-v12.19.0 & earlier (#1590) (hyj1991 <<yeekwanvong@gmail.com>>)
19
-
20
- 2.13.2 / 2021-09-24
21
- ==================
22
-
23
- **fixes**
24
- * [[`04acf02`](http://github.com/koajs/koa/commit/04acf0281a5dcb3fd463d4c8537984c686d0b96f)] - fix: nodejs deprecated api <DEP0148> (#1585) (#1588) (hyj1991 <<yeekwanvong@gmail.com>>)
25
-
26
- **others**
27
- * [[`3435e78`](http://github.com/koajs/koa/commit/3435e7864a59cca2835ebaad96c4eda801b99b24)] - lint++ (jongleberry <<jonathanrichardong@gmail.com>>)
28
- * [[`2cd6618`](http://github.com/koajs/koa/commit/2cd66182f46965f1d824c24826e85df251cca3d2)] - Fix grammar mistake (#1527) (Matheus Souza <<37983247+souzasmatheus@users.noreply.github.com>>)
29
- * [[`16ab46e`](http://github.com/koajs/koa/commit/16ab46e9f2b5411fd1c50312ac03719f0a90df61)] - chore: upgrade koa-convert dependency to ^2.0.0 (#1535) (Christian Rodemeyer <<atombrenner@users.noreply.github.com>>)
30
- * [[`65113ca`](http://github.com/koajs/koa/commit/65113ca38af634e4b1002d5bc40917cc09a7b7c6)] - Fix jsdoc types for constructor (#1541) (Piotr Kuczynski <<piotr.kuczynski@gmail.com>>)
31
- * [[`03e6317`](http://github.com/koajs/koa/commit/03e6317df24d2dce0c1f08869326149f766f1e41)] - :arrow_up: debug (jongleberry <<jonathanrichardong@gmail.com>>)
32
- * [[`b37a2d0`](http://github.com/koajs/koa/commit/b37a2d09c137d9a553a0bdf8589b60c7f6425160)] - :arrow_up: eslint dependencies (jongleberry <<jonathanrichardong@gmail.com>>)
33
- * [[`4a410cc`](http://github.com/koajs/koa/commit/4a410cc2fbd923868cac6a622f12cc652586abee)] - migrate assert.deepEqual => .deepStrictEqual (jongleberry <<jonathanrichardong@gmail.com>>)
34
- * [[`4545b59`](http://github.com/koajs/koa/commit/4545b59aa521e377a4ebb0ccbb8abec01981fbf4)] - test: switch tests to jest (jongleberry <<jonathanrichardong@gmail.com>>)
35
- * [[`596cfd5`](http://github.com/koajs/koa/commit/596cfd542ccd1d89d97453e29cf499d49a82e743)] - migrate assert.strict => .strictEqual (jongleberry <<jonathanrichardong@gmail.com>>)
36
- * [[`be3e8b6`](http://github.com/koajs/koa/commit/be3e8b68ab58d469f0f450284528dbef32e2d7ba)] - test: switch to github actions (jongleberry <<jonathanrichardong@gmail.com>>)
37
- * [[`a2570e3`](http://github.com/koajs/koa/commit/a2570e3ee622cfa5214c2f756ea03b3b7143dbf7)] - package: update bench scripts (jongleberry <<jonathanrichardong@gmail.com>>)
38
- * [[`000acf0`](http://github.com/koajs/koa/commit/000acf06ab3e37006569addc8ace5c0a4365daa1)] - npm: enable package-lock (jongleberry <<jonathanrichardong@gmail.com>>)
39
- * [[`47fdbca`](http://github.com/koajs/koa/commit/47fdbca8b1c3999c5726f54531f8b47640a65a6f)] - delete benchmarks (jongleberry <<jonathanrichardong@gmail.com>>)
40
- * [[`0056f90`](http://github.com/koajs/koa/commit/0056f901e89fd0781067b2c9592fd5909f9ba94a)] - Create dependabot.yml (jongleberry <<jonathanrichardong@gmail.com>>)
41
- * [[`698ce0a`](http://github.com/koajs/koa/commit/698ce0afbfac6480400625729a4b8fc4b4203fdc)] - test: fix typo in status.js (Ikko Ashimine <<eltociear@gmail.com>>)
42
- * [[`eb51cf5`](http://github.com/koajs/koa/commit/eb51cf5fb35b39592a050b25fd261a574f547cfa)] - doc: app.keys needs to be long enought and random (#1520) (Yiyu He <<dead_horse@qq.com>>)
43
-
44
- 2.13.1 / 2021-01-04
45
- ==================
46
-
47
- **fixes**
48
- * [[`b5472f4`](http://github.com/koajs/koa/commit/b5472f4cbb87349becae36b4a9ad5f76a825abb8)] - fix: make ESM transpiled CommonJS play nice for TS folks, fix #1513 (#1518) (miwnwski <<m@iwnw.ski>>)
49
- * [[`68d97d6`](http://github.com/koajs/koa/commit/68d97d69e4536065504bf9ef1e348a66b3f35709)] - fix: fixed order of vulnerability disclosure addresses (niftylettuce <<niftylettuce@gmail.com>>)
50
-
51
- **others**
52
- * [[`b4398f5`](http://github.com/koajs/koa/commit/b4398f5d68f9546167419f394a686afdcb5e10e2)] - correct verb tense in doc (#1512) (Matan Shavit <<71092861+matanshavit@users.noreply.github.com>>)
53
- * [[`39e1a5a`](http://github.com/koajs/koa/commit/39e1a5a380aa2bbc4e2d164e8e4bf37cfd512516)] - fixed multiple grammatical errors in docs. (#1497) (Hridayesh Sharma <<vyasriday7@gmail.com>>)
54
- * [[`aeb5d19`](http://github.com/koajs/koa/commit/aeb5d1984dcc5f8e3386f8f9724807ae6f3aa1c4)] - docs: added niftylettuce@gmail.com to vulnerability disclosure (niftylettuce <<niftylettuce@gmail.com>>)
55
- * [[`6e1093b`](http://github.com/koajs/koa/commit/6e1093be27b41135c8e67fce108743d54e9cab67)] - docs: remove babel from readme (#1494) (miwnwski <<m@iwnw.ski>>)
56
- * [[`38cb591`](http://github.com/koajs/koa/commit/38cb591254ff5f65a04e8fb57be293afe697c46e)] - docs: update specific for auto response status (AlbertAZ1992 <<ziyuximing@163.com>>)
57
- * [[`2224cd9`](http://github.com/koajs/koa/commit/2224cd9b6a648e7ac2eb27eac332e7d6de7db26c)] - docs: remove babel ref. (#1488) (Imed Jaberi <<imed_jebari@hotmail.fr>>)
58
- * [[`d51f983`](http://github.com/koajs/koa/commit/d51f98328c3b84493cc6bda0732aabb69e20e3a1)] - docs: fix assert example for response (#1489) (Imed Jaberi <<imed_jebari@hotmail.fr>>)
59
- * [[`f8b49b8`](http://github.com/koajs/koa/commit/f8b49b859363ad6c3d9ea5c11ee62341407ceafd)] - chore: fix grammatical and spelling errors in comments and tests (#1490) (Matt Kubej <<mkubej@gmail.com>>)
60
- * [[`d1c9263`](http://github.com/koajs/koa/commit/d1c92638c95d799df2fdff5576b96fc43a62813f)] - deps: update depd >> v2.0.0 (#1482) (imed jaberi <<imed_jebari@hotmail.fr>>)
61
-
62
- 2.13.0 / 2020-06-21
63
- ==================
64
-
65
- **features**
66
- * [[`bbcde76`](http://github.com/koajs/koa/commit/bbcde76f5cb5b67bbcd3201791cf0ef648fd3a8b)] - feat: support esm (#1474) (ZYSzys <<zhangyongsheng@youzan.com>>)
67
-
68
- **others**
69
- * [[`20e58cf`](http://github.com/koajs/koa/commit/20e58cf3e4f20fc5d5886df1d0ac6dd8c33bd202)] - test: imporve coverage to 100% (dead-horse <<dead_horse@qq.com>>)
70
- * [[`4a40d63`](http://github.com/koajs/koa/commit/4a40d633c4b4a203c6656078f9952ccef65c5875)] - build: use prepare instead of prepublish (dead-horse <<dead_horse@qq.com>>)
71
- * [[`226ba8c`](http://github.com/koajs/koa/commit/226ba8c8e81e83da48e7bf137be3f146d03f40b8)] - build: use prepublish instead of prepack (dead-horse <<dead_horse@qq.com>>)
72
-
73
- 2.12.1 / 2020-06-13
74
- ==================
75
-
76
- **fixes**
77
- * [[`e2030c7`](http://github.com/koajs/koa/commit/e2030c7249c7ae24e28158d8eae405a02fefc9f8)] - fix: Improve checks for Error in onerror handlers (#1468) (Julien Wajsberg <<felash@gmail.com>>)
78
-
79
- **others**
80
- * [[`5208c5e`](http://github.com/koajs/koa/commit/5208c5e15d35b3653fce6b8ed68d09865abea843)] - chore: Use single console.error() statement in error handler (#1471) (Mike Vosseller <<michael.vosseller@gmail.com>>)
81
-
82
- 2.12.0 / 2020-05-18
83
- ==================
84
-
85
- **features**
86
- * [[`0d2f421`](http://github.com/koajs/koa/commit/0d2f421c265350d3d84e1bc261572954479f27d3)] - feat: error handler treat err.statusCode as the same as err.status (#1460) (Vijay Krishnavanshi <<vijaykrishnavanshi@gmail.com>>)
87
- * [[`8d52105`](http://github.com/koajs/koa/commit/8d52105a34234be9e771ff3b76b43e4e30328943)] - feat: allow bodyless responses for non empty status codes (#1447) (ejose19 <<8742215+ejose19@users.noreply.github.com>>)
88
-
89
- **others**
90
- * [[`faeaff5`](http://github.com/koajs/koa/commit/faeaff5c149a81a188ab8e5af0b994029e45acbb)] - fox: remove `error-inject` and fix error handling (#1409) (Konstantin Vyatkin <<tino@vtkn.io>>)
91
- * [[`f7c732f`](http://github.com/koajs/koa/commit/f7c732fd06f724505e9090add4d977e667da55a8)] - docs: fixed incorrect onerror example (#1459) (Paul Annekov <<paul.annekov@gmail.com>>)
92
- * [[`143d8f7`](http://github.com/koajs/koa/commit/143d8f72f2a232b4c97eac00e7811015911e4f7c)] - Always use strict equality. (#1225) (Yazan Medanat <<medanat@gmail.com>>)
93
- * [[`6b6b0dd`](http://github.com/koajs/koa/commit/6b6b0ddf7aff073e65493c6efaffab8331c0331c)] - docs(api): add app.use chainability note (#1449) (Zac Anger <<zac@zacanger.com>>)
94
- * [[`8ddab48`](http://github.com/koajs/koa/commit/8ddab48cbdbca1e6d1cc8c3ddae45491db524d51)] - docs: Document response status with empty body (#1445) (Marc-Aurèle DARCHE <<152407+madarche@users.noreply.github.com>>)
95
- * [[`7deedb2`](http://github.com/koajs/koa/commit/7deedb235274223f1b9da46dee296545b23598de)] - docs: Updating context.md with the latest cookies opts (#1433) (Brad Ito <<phlogisticfugu@users.noreply.github.com>>)
96
- * [[`3e97a10`](http://github.com/koajs/koa/commit/3e97a106bb846d9337737011bb85149ddd797229)] - docs(links): remove Google+ link (#1439) (laffachan <<45162759+laffachan@users.noreply.github.com>>)
97
- * [[`eda2760`](http://github.com/koajs/koa/commit/eda27608f7d39ede86d7b402aae64b1867ce31c6)] - build: Drop unused Travis sudo: false directive (#1416) (Olle Jonsson <<olle.jonsson@gmail.com>>)
98
-
99
- 2.11.0 / 2019-10-28
100
- ==================
101
-
102
- **features**
103
- * [[`422e539`](http://github.com/koajs/koa/commit/422e539e8989e65ba43ecc39ddbaa3c4f755d465)] - feat: support app.proxyIPHeader and app.maxIpsCount to make ctx.ips more security (Yiyu He <<dead_horse@qq.com>>)
104
- * [[`d48d88e`](http://github.com/koajs/koa/commit/d48d88ee17b780c02123e6d657274cab456e943e)] - feat: implement response.has (#1397) (Konstantin Vyatkin <<tino@vtkn.io>>)
105
-
106
- **others**
107
- * [[`4dc56f6`](http://github.com/koajs/koa/commit/4dc56f6d04e8f5fe12ba53a8a776653b3d7b60ed)] - chore: update ESLint and plugins/configs (#1407) (Konstantin Vyatkin <<tino@vtkn.io>>)
108
- * [[`be7d334`](http://github.com/koajs/koa/commit/be7d334778481639294cdf87f5c359a230aeb65b)] - chore: removes code duplication at handling HEAD method (#1400) (Konstantin Vyatkin <<tino@vtkn.io>>)
109
- * [[`f155785`](http://github.com/koajs/koa/commit/f155785e2bb42b5ddf0a8156401c6dafdf57ba8b)] - chore: support `writableEnded` (#1402) (Konstantin Vyatkin <<tino@vtkn.io>>)
110
- * [[`b968688`](http://github.com/koajs/koa/commit/b968688afe2c727ae141f50aa983d481dbc1dbbf)] - chore: add FUNDING.yml (#1403) (Konstantin Vyatkin <<tino@vtkn.io>>)
111
- * [[`4f96829`](http://github.com/koajs/koa/commit/4f968298f97394e488297ec32c8e927a3a322076)] - chore: remove isJSON in res.length (#1399) (Konstantin Vyatkin <<tino@vtkn.io>>)
112
- * [[`8be5626`](http://github.com/koajs/koa/commit/8be5626bbb54e6c899a1b71d22411709126d9fea)] - build: enable codecov partial coverage and use bash uploader (#1396) (Konstantin Vyatkin <<tino@vtkn.io>>)
113
- * [[`ef5c43b`](http://github.com/koajs/koa/commit/ef5c43bcbcf31819e032c3b7ae7654b7f8e9358b)] - chore: use rest params (#1393) (Konstantin Vyatkin <<tino@vtkn.io>>)
114
-
115
- 2.10.0 / 2019-10-12
116
- ==================
117
-
118
- **features**
119
- * [[`d7f7f77`](http://github.com/koajs/koa/commit/d7f7f77689e2eaef050686be2bdf3e72881a79ac)] - feat: support sameSite=none cookies (bump cookies dependency) (#1390) (Filip Skokan <<panva.ip@gmail.com>>)
120
-
121
- 2.9.0 / 2019-10-12
122
- ==================
123
-
124
- **features**
125
- * [[`2d1c598`](http://github.com/koajs/koa/commit/2d1c5981869e0fe6f5bc71b5c5582accfd125cc6)] - feat: export HttpError from http-errors library (Micheal Hill <<micheal.hill@trunkplatform.com>>)
126
-
127
- **others**
128
- * [[`cf70dbc`](http://github.com/koajs/koa/commit/cf70dbc6d2ba62bf1eb12b563dd5ecd27af6e2be)] - Chore: Use https in readme (#1389) (谭九鼎 <<109224573@qq.com>>)
129
-
130
- 2.8.2 / 2019-09-28
131
- ==================
132
-
133
- **fixes**
134
- * [[`54e8fab`](http://github.com/koajs/koa/commit/54e8fab3e3d907bbb264caf3e28a24773d0d6fdb)] - fix: encode redirect url if not already encoded (#1384) (fengmk2 <<fengmk2@gmail.com>>)
135
-
136
- **others**
137
- * [[`817b498`](http://github.com/koajs/koa/commit/817b49830571b45a8aec6b1fc1525434f5798c58)] - test: fix body test (#1375) (Robert Nagy <<ronagy@icloud.com>>)
138
- * [[`f75d445`](http://github.com/koajs/koa/commit/f75d4455359ecdf30eeb676e2c7f31d4cf7b42ed)] - test: fix end after end (#1374) (Robert Nagy <<ronagy@icloud.com>>)
139
-
140
- 2.8.1 / 2019-08-19
141
- ==================
142
-
143
- **fixes**
144
- * [[`287e589`](http://github.com/koajs/koa/commit/287e589ac773d3738b2aa7d40e0b6d43dde5261b)] - fix: make options more compatibility (dead-horse <<dead_horse@qq.com>>)
145
-
146
- 2.8.0 / 2019-08-19
147
- ==================
148
-
149
- **features**
150
- * [[`5afff89`](http://github.com/koajs/koa/commit/5afff89eca0efe7081309dc2d123309e825df221)] - feat: accept options in the Application constructor (#1372) (Jake <<djakelambert@gmail.com>>)
151
-
152
- **fixes**
153
- * [[`ff70bdc`](http://github.com/koajs/koa/commit/ff70bdc75a30a37f63fc1f7d8cbae3204df3d982)] - fix: typo on document (#1355) (Jeff <<jeff.tian@outlook.com>>)
154
-
155
- **others**
156
- * [[`3b23865`](http://github.com/koajs/koa/commit/3b23865340cfba075f61f7dba0ea31fcc27260ec)] - docs: parameter of request.get is case-insensitive (#1373) (Gunnlaugur Thor Briem <<gunnlaugur@gmail.com>>)
157
- * [[`a245d18`](http://github.com/koajs/koa/commit/a245d18a131341feec4f87659746954e78cae780)] - docs: Update response.socket (#1357) (Jeff <<jeff.tian@outlook.com>>)
158
- * [[`d1d65dd`](http://github.com/koajs/koa/commit/d1d65dd29d7bbaf9ea42eaa5fcb0da3fb4df98e9)] - chore(deps): install egg-bin, mm as devDeps not deps (#1366) (Edvard Chen <<pigeon73101@gmail.com>>)
159
- * [[`2c86b10`](http://github.com/koajs/koa/commit/2c86b10feafd868ebd071dda3a222e6f51972b5d)] - test: remove jest and use egg-bin(mocha) (#1363) (Yiyu He <<dead_horse@qq.com>>)
160
- * [[`219bf22`](http://github.com/koajs/koa/commit/219bf22237b11bc375e2e110b93db512f1acfdd4)] - docs(context): update link (#1354) (Peng Jie <<bivinity.pengzjie@gmail.com>>)
161
- * [[`52a6737`](http://github.com/koajs/koa/commit/52a673703a87a93c0f6a8552e6bd73caba66d2eb)] - chore: ignore Intellij IDEA project files (#1361) (Imon-Haque <<38266345+Imon-Haque@users.noreply.github.com>>)
162
- * [[`b9e3546`](http://github.com/koajs/koa/commit/b9e35469d3bbd0a1ee92e0a815ce2512904d4a18)] - docs(api): fix keygrip link (#1350) (Peng Jie <<bivinity.pengzjie@gmail.com>>)
163
- * [[`d4bdb5e`](http://github.com/koajs/koa/commit/d4bdb5ed9e2fe06ec44698b66c029f624135a0ab)] - chore: update eslint and fix lint errors (dead-horse <<dead_horse@qq.com>>)
164
- * [[`12960c4`](http://github.com/koajs/koa/commit/12960c437cc25c53e682cfe5bff06d74a5bb1eb9)] - build: test on 8/10/12 (dead-horse <<dead_horse@qq.com>>)
165
- * [[`00e8f7a`](http://github.com/koajs/koa/commit/00e8f7a1b7603aabdb7fb3567f485cb1c2076702)] - docs: ctx.type aliases ctx.response, not ctx.request (#1343) (Alex Berk <<berkalexanderc@gmail.com>>)
166
- * [[`62f29eb`](http://github.com/koajs/koa/commit/62f29eb0c4dee01170a5511615e5bcc9faca26ca)] - docs(context): update cookies link (#1348) (Peng Jie <<dean.leehom@gmail.com>>)
167
- * [[`b7fc526`](http://github.com/koajs/koa/commit/b7fc526ea49894f366153bd32997e02568c0b8a6)] - docs: fix typo in cookie path default value docs (#1340) (Igor Adamenko <<igoradamenko@users.noreply.github.com>>)
168
- * [[`23f7f54`](http://github.com/koajs/koa/commit/23f7f545abfe1fb6499cd61cc8ff41fd86cef4a0)] - chore: simplify variable (#1332) (kzhang <<godky@users.noreply.github.com>>)
169
- * [[`132c9ee`](http://github.com/koajs/koa/commit/132c9ee63f92a586a120ed3bd6b7ef023badb8bb)] - docs: Clarify the format of request.headers (#1325) (Dobes Vandermeer <<dobesv@gmail.com>>)
170
- * [[`5810f27`](http://github.com/koajs/koa/commit/5810f279a4caeda115f39e429c9671795613abf8)] - docs: Removed Document in Progress note in Koa vs Express (#1336) (Andrew Peterson <<andrew@andpeterson.com>>)
171
- * [[`75233d9`](http://github.com/koajs/koa/commit/75233d974a30af6e3b8ab38a73e5ede67172fc1c)] - chore: Consider removing this return statement; it will be ignored. (#1322) (Vern Brandl <<tkvern@users.noreply.github.com>>)
172
- * [[`04e07fd`](http://github.com/koajs/koa/commit/04e07fdc620841068f12b8edf36f27e6592a0a18)] - test: Buffer() is deprecated due to security and usability issues. so use the Buffer.alloc() instead (#1321) (Vern Brandl <<tkvern@users.noreply.github.com>>)
173
- * [[`130e363`](http://github.com/koajs/koa/commit/130e363856747b487652f04b5550056d7778e43a)] - docs: use 'fs-extra' instead of 'fs-promise' (#1309) (rosald <<35028438+rosald@users.noreply.github.com>>)
174
- * [[`2f2078b`](http://github.com/koajs/koa/commit/2f2078bf998bd3f44289ebd17eeccf5e12e4c134)] - chore: Update PR-welcome badge url (#1299) (James George <<jamesgeorge998001@gmail.com>>)
175
-
176
- 2.7.0 / 2019-01-28
177
- ==================
178
-
179
- **features**
180
- * [[`b7bfa71`](http://github.com/koajs/koa/commit/b7bfa7113b8d1af49a57ab767f24a599ed92044f)] - feat: change set status assert, allowing valid custom statuses (#1308) (Martin Iwanowski <<martin@iwanowski.se>>)
181
-
182
- **others**
183
- * [[`72f325b`](http://github.com/koajs/koa/commit/72f325b78edd0dc2aac940a76ce5f644005ce4c3)] - chore: add pr welcoming badge (#1291) (James George <<jamesgeorge998001@gmail.com>>)
184
- * [[`b15115b`](http://github.com/koajs/koa/commit/b15115b2cbfffe15827cd5e4368267d417b72f08)] - chore: Reduce unnecessary variable declarations (#1298) (call me saisai <<1457358080@qq.com>>)
185
- * [[`ad91ce2`](http://github.com/koajs/koa/commit/ad91ce2346cb34e5d5a49d07dd952d15f6c832a3)] - chore: license 2019 (dead-horse <<dead_horse@qq.com>>)
186
- * [[`b25e79d`](http://github.com/koajs/koa/commit/b25e79dfb599777a38157bd419395bd28369ee86)] - 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>>)
187
- * [[`d9ef603`](http://github.com/koajs/koa/commit/d9ef60398e88f2c2f958ab2b159d38052ffe7f8a)] - chore: Optimize array split (#1295) (Mikhail Bodrov <<connormiha1@gmail.com>>)
188
- * [[`9be8583`](http://github.com/koajs/koa/commit/9be858312553002841725b617050aaff3c48951d)] - chore: replace ~~ with Math.trunc in res.length (option) (#1288) (jeremiG <<gendronjeremi@gmail.com>>)
189
- * [[`7e46c20`](http://github.com/koajs/koa/commit/7e46c2058cb5994809eab5f4dbb12f21e937c72b)] - docs: add link to the license file (#1290) (James George <<jamesgeorge998001@gmail.com>>)
190
- * [[`48993ad`](http://github.com/koajs/koa/commit/48993ade9b0831fbce28d94b3b0963a4b0dccbdd)] - docs: Document other body types (#1285) (Douglas Wade <<douglas.b.wade@gmail.com>>)
191
- * [[`acb388b`](http://github.com/koajs/koa/commit/acb388bc0546b48fca11dce8aa7a595af2cda5e2)] - docs: Add security vulnerability disclosure instructions to the Readme (#1283) (Douglas Wade <<douglas.b.wade@gmail.com>>)
192
- * [[`a007198`](http://github.com/koajs/koa/commit/a007198fa23c19902b1f3ffb81498629e0e9c875)] - docs: Document ctx.app.emit (#1284) (Douglas Wade <<douglas.b.wade@gmail.com>>)
193
- * [[`f90e825`](http://github.com/koajs/koa/commit/f90e825da9d505c11b4262c50cd54553f979c300)] - docs: response.set(fields) won't overwrites previous header fields(#1282) (Douglas Wade <<douglas.b.wade@gmail.com>>)
194
- * [[`fc93c05`](http://github.com/koajs/koa/commit/fc93c05f68398f30abc46fd16ae6c673a1eee099)] - docs: update readme to add babel 7 instructions (#1274) (Vikram Rangaraj <<vik120@icloud.com>>)
195
- * [[`5560f72`](http://github.com/koajs/koa/commit/5560f729124f022ffed00085aafea43dded7fb03)] - chore: use the ability of `content-type` lib directly (#1276) (Jordan <<mingmingwon@gmail.com>>)
196
-
197
- 2.6.2 / 2018-11-10
198
- ==================
199
-
200
- **fixes**
201
- * [[`9905199`](http://github.com/koajs/koa/commit/99051992a9f45eb0dd79e062681d6f5d366deb41)] - fix: Status message is not supported on HTTP/2 (#1264) (André Cruz <<andre@cabine.org>>)
202
-
203
- **others**
204
- * [[`325792a`](http://github.com/koajs/koa/commit/325792aee92de0ba6fea306657933fc63dc00474)] - docs: add table of contents for guide.md (#1267) (ZYSzys <<zyszys98@gmail.com>>)
205
- * [[`71aaa29`](http://github.com/koajs/koa/commit/71aaa29591d6681f8579486f18d32ba1ee651a5b)] - docs: fix spelling in throw docs (#1269) (Martin Iwanowski <<martin@iwanowski.se>>)
206
- * [[`bc81ca9`](http://github.com/koajs/koa/commit/bc81ca9414296234c764b7306a19ba72b2e59b52)] - chore: use res instead of this.res (#1271) (Jordan <<mingmingwon@gmail.com>>)
207
- * [[`0251b38`](http://github.com/koajs/koa/commit/0251b38a8405471892c5eeaba7c8d54bd7028214)] - test: node v11 on travis (#1265) (Martin Iwanowski <<martin@iwanowski.se>>)
208
- * [[`88b92b4`](http://github.com/koajs/koa/commit/88b92b43153f21609aee71d47abcd4dc27a6586d)] - doc: updated docs for throw() to pass status as first param. (#1268) (Waleed Ashraf <<waleedashraf@outlook.com>>)
209
-
210
- 2.6.1 / 2018-10-23
211
- ==================
212
-
213
- **fixes**
214
- * [[`4964242`](http://github.com/koajs/koa/commit/49642428342e5f291eb9d690802e83ed830623b5)] - fix: use X-Forwarded-Host first on app.proxy present (#1263) (fengmk2 <<fengmk2@gmail.com>>)
215
-
216
- 2.6.0 / 2018-10-23
217
- ==================
218
-
219
- **features**
220
- * [[`9c5c58b`](http://github.com/koajs/koa/commit/9c5c58b18363494976185e7ddc790ac63de840ed)] - feat: use :authority header of http2 requests as host (#1262) (Martin Michaelis <<code@mgjm.de>>)
221
- * [[`9146024`](http://github.com/koajs/koa/commit/9146024e1094e8bb871ab15d1b7fc556a710732f)] - feat: response.attachment append a parameter: options from contentDisposition (#1240) (小雷 <<863837949@qq.com>>)
222
-
223
- **others**
224
- * [[`d32623b`](http://github.com/koajs/koa/commit/d32623baa7a6273d47be67d587ad4ea0ecffc5de)] - docs: Update error-handling.md (#1239) (urugator <<j.placek@centrum.cz>>)
225
-
226
- 2.5.3 / 2018-09-11
227
- ==================
228
-
229
- **fixes**
230
- * [[`2ee32f5`](http://github.com/koajs/koa/commit/2ee32f50b88b383317e33cc0a4bfaa5f2eadead7)] - fix: pin debug@~3.1.0 avoid deprecated warnning (#1245) (fengmk2 <<fengmk2@gmail.com>>)
231
-
232
- **others**
233
- * [[`2180839`](http://github.com/koajs/koa/commit/2180839eda2cb16edcfda46ccfe24711680af850)] - docs: Update koa-vs-express.md (#1230) (Clayton Ray <<iamclaytonray@gmail.com>>)
234
-
235
- 2.5.2 / 2018-07-12
236
- ==================
237
-
238
- * deps: upgrade all dependencies
239
- * perf: avoid stringify when set header (#1220)
240
- * perf: cache content type's result (#1218)
241
- * perf: lazy init cookies and ip when first time use it (#1216)
242
- * chore: fix comment & approve cov (#1214)
243
- * docs: fix grammar
244
- * test&cov: add test case (#1211)
245
- * Lazily initialize `request.accept` and delegate `context.accept` (#1209)
246
- * fix: use non deprecated custom inspect (#1198)
247
- * Simplify processes in the getter `request.protocol` (#1203)
248
- * docs: better demonstrate middleware flow (#1195)
249
- * fix: Throw a TypeError instead of a AssertionError (#1199)
250
- * chore: mistake in a comment (#1201)
251
- * chore: use this.res.socket insteadof this.ctx.req.socket (#1177)
252
- * chore: Using "listenerCount" instead of "listeners" (#1184)
253
-
254
- 2.5.1 / 2018-04-27
255
- ==================
256
-
257
- * test: node v10 on travis (#1182)
258
- * fix tests: remove unnecessary assert doesNotThrow and api calls (#1170)
259
- * use this.response insteadof this.ctx.response (#1163)
260
- * deps: remove istanbul (#1151)
261
- * Update guide.md (#1150)
262
-
263
- 2.5.0 / 2018-02-11
264
- ==================
265
-
266
- * feat: ignore set header/status when header sent (#1137)
267
- * run coverage using --runInBand (#1141)
268
- * [Update] license year to 2018 (#1130)
269
- * docs: small grammatical fix in api docs index (#1111)
270
- * docs: fixed typo (#1112)
271
- * docs: capitalize K in word koa (#1126)
272
- * Error handling: on non-error throw try to stringify if error is an object (#1113)
273
- * Use eslint-config-koa (#1105)
274
- * Update mgol's name in AUTHORS, add .mailmap (#1100)
275
- * Avoid generating package locks instead of ignoring them (#1108)
276
- * chore: update copyright year to 2017 (#1095)
277
-
278
-
279
- 2.4.1 / 2017-11-06
280
- ==================
281
-
282
- * fix bad merge w/ 2.4.0
283
-
284
- 2.4.0 / 2017-11-06
285
- ==================
286
-
287
- UNPUBLISHED
288
-
289
- * update `package.engines.node` to be more strict
290
- * update `fresh@^0.5.2`
291
- * fix: `inspect()` no longer crashes `context`
292
- * fix: gated `res.statusMessage` for HTTP/2
293
- * added: `app.handleRequest()` is exposed
294
-
295
- 2.3.0 / 2017-06-20
296
- ==================
297
-
298
- * fix: use `Buffer.from()`
299
- * test on node 7 & 8
300
- * add `package-lock.json` to `.gitignore`
301
- * run `lint --fix`
302
- * add `request.header` in addition to `request.headers`
303
- * add IPv6 hostname support
304
-
305
- 2.2.0 / 2017-03-14
306
- ==================
307
-
308
- * fix: drop `package.engines.node` requirement to >= 6.0.0
309
- * this fixes `yarn`, which errors when this semver range is not satisfied
310
- * bump `cookies@~0.7.0`
311
- * bump `fresh@^0.5.0`
312
-
313
- 2.1.0 / 2017-03-07
314
- ==================
315
-
316
- * added: return middleware chain promise from `callback()` #848
317
- * added: node v7.7+ `res.getHeaderNames()` support #930
318
- * added: `err.headerSent` in error handling #919
319
- * added: lots of docs!
320
-
321
- 2.0.1 / 2017-02-25
322
- ==================
323
-
324
- NOTE: we hit a versioning snafu. `v2.0.0` was previously released,
325
- so `v2.0.1` is released as the first `v2.x` with a `latest` tag.
326
-
327
- * upgrade mocha #900
328
- * add names to `application`'s request and response handlers #805
329
- * breaking: remove unused `app.name` #899
330
- * breaking: drop official support for node < 7.6
331
-
332
- 2.0.0 / ??????????
333
- ==================
334
-
335
- * Fix malformed content-type header causing exception on charset get (#898)
336
- * fix: subdomains should be [] if the host is an ip (#808)
337
- * don't pre-bound onerror [breaking change] (#800)
338
- * fix `ctx.flushHeaders()` to use `res.flushHeaders()` instead of `res.writeHead()` (#795)
339
- * fix(response): correct response.writable logic (#782)
340
- * merge v1.1.2 and v1.2.0 changes
341
- * include `koa-convert` so that generator functions still work
342
- * NOTE: generator functions are deprecated in v2 and will be removed in v3
343
- * improve linting
344
- * improve docs
345
-
346
- 2.0.0-alpha.8 / 2017-02-13
347
- ==================
348
-
349
- * Fix malformed content-type header causing exception on charset get (#898)
350
-
351
- 2.0.0-alpha.7 / 2016-09-07
352
- ==================
353
-
354
- * fix: subdomains should be [] if the host is an ip (#808)
355
-
356
- 2.0.0-alpha.6 / 2016-08-29
357
- ==================
358
-
359
- * don't pre-bound onerror [breaking change]
360
-
361
- 2.0.0-alpha.5 / 2016-08-10
362
- ==================
363
-
364
- * fix `ctx.flushHeaders()` to use `res.flushHeaders()` instead of `res.writeHead()`
365
-
366
- 2.0.0-alpha.4 / 2016-07-23
367
- ==================
368
-
369
- * fix `response.writeable` during pipelined requests
370
-
371
- 1.2.0 / 2016-03-03
372
- ==================
373
-
374
- * add support for `err.headers` in `ctx.onerror()`
375
- - see: https://github.com/koajs/koa/pull/668
376
- - note: you should set these headers in your custom error handlers as well
377
- - docs: https://github.com/koajs/koa/blob/master/docs/error-handling.md
378
- * fix `cookies`' detection of http/https
379
- - see: https://github.com/koajs/koa/pull/614
380
- * deprecate `app.experimental = true`. Koa v2 does not use this signature.
381
- * add a code of conduct
382
- * test against the latest version of node
383
- * add a lot of docs
384
-
385
- 1.1.2 / 2015-11-05
386
- ==================
387
-
388
- * ensure parseurl always working as expected
389
- * fix Application.inspect() – missing .proxy value.
390
-
391
- 2.0.0-alpha.3 / 2015-11-05
392
- ==================
393
-
394
- * ensure parseurl always working as expected. #586
395
- * fix Application.inspect() – missing .proxy value. Closes #563
396
-
397
- 2.0.0-alpha.2 / 2015-10-27
398
- ==================
399
-
400
- * remove `co` and generator support completely
401
- * improved documentation
402
- * more refactoring into ES6
403
-
404
- 2.0.0-alpha.1 / 2015-10-22
405
- ==================
406
-
407
- * change the middleware signature to `async (ctx, next) => await next()`
408
- * drop node < 4 support and rewrite the codebase in ES6
409
-
410
- 1.1.1 / 2015-10-22
411
- ==================
412
-
413
- * do not send a content-type when the type is unknown #536
414
-
415
- 1.1.0 / 2015-10-11
416
- ==================
417
-
418
- * add `app.silent=<Boolean>` to toggle error logging @tejasmanohar #486
419
- * add `ctx.origin` @chentsulin #480
420
- * various refactoring
421
- - add `use strict` everywhere
422
-
423
- 1.0.0 / 2015-08-22
424
- ==================
425
-
426
- * add `this.req` check for `querystring()`
427
- * don't log errors with `err.expose`
428
- * `koa` now follows semver!
429
-
430
- 0.21.0 / 2015-05-23
431
- ==================
432
-
433
- * empty `request.query` objects are now always the same instance
434
- * bump `fresh@0.3.0`
435
-
436
- 0.20.0 / 2015-04-30
437
- ==================
438
-
439
- Breaking change if you're using `this.get('ua') === undefined` etc.
440
- For more details please checkout [#438](https://github.com/koajs/koa/pull/438).
441
-
442
- * make sure helpers return strict string
443
- * feat: alias response.headers to response.header
444
-
445
- 0.19.1 / 2015-04-14
446
- ==================
447
-
448
- * non-error thrown, fixed #432
449
-
450
- 0.19.0 / 2015-04-05
451
- ==================
452
-
453
- * `req.host` and `req.hostname` now always return a string (semi-breaking change)
454
- * improved test coverage
455
-
456
- 0.18.1 / 2015-03-01
457
- ==================
458
-
459
- * move babel to `devDependencies`
460
-
461
- 0.18.0 / 2015-02-14
462
- ==================
463
-
464
- * experimental es7 async function support via `app.experimental = true`
465
- * use `content-type` instead of `media-typer`
466
-
467
- 0.17.0 / 2015-02-05
468
- ==================
469
-
470
- Breaking change if you're using an old version of node v0.11!
471
- Otherwise, you should have no trouble upgrading.
472
-
473
- * official iojs support
474
- * drop support for node.js `>= 0.11.0 < 0.11.16`
475
- * use `Object.setPrototypeOf()` instead of `__proto__`
476
- * update dependencies
477
-
478
- 0.16.0 / 2015-01-27
479
- ==================
480
-
481
- * add `res.append()`
482
- * fix path usage for node@0.11.15
483
-
484
- 0.15.0 / 2015-01-18
485
- ==================
486
-
487
- * add `this.href`
488
-
489
- 0.14.0 / 2014-12-15
490
- ==================
491
-
492
- * remove `x-powered-by` response header
493
- * fix the content type on plain-text redirects
494
- * add ctx.state
495
- * bump `co@4`
496
- * bump dependencies
497
-
498
- 0.13.0 / 2014-10-17
499
- ==================
500
-
501
- * add this.message
502
- * custom status support via `statuses`
503
-
504
- 0.12.2 / 2014-09-28
505
- ==================
506
-
507
- * use wider semver ranges for dependencies koa maintainers also maintain
508
-
509
- 0.12.1 / 2014-09-21
510
- ==================
511
-
512
- * bump content-disposition
513
- * bump statuses
514
-
515
- 0.12.0 / 2014-09-20
516
- ==================
517
-
518
- * add this.assert()
519
- * use content-disposition
520
-
521
- 0.11.0 / 2014-09-08
522
- ==================
523
-
524
- * fix app.use() assertion #337
525
- * bump a lot of dependencies
526
-
527
- 0.10.0 / 2014-08-12
528
- ==================
529
-
530
- * add `ctx.throw(err, object)` support
531
- * add `ctx.throw(err, status, object)` support
532
-
533
- 0.9.0 / 2014-08-07
534
- ==================
535
-
536
- * add: do not set `err.expose` to true when err.status not a valid http status code
537
- * add: alias `request.headers` as `request.header`
538
- * add context.inspect(), cleanup app.inspect()
539
- * update cookies
540
- * fix `err.status` invalid lead to uncaughtException
541
- * fix middleware gif, close #322
542
-
543
- 0.8.2 / 2014-07-27
544
- ==================
545
-
546
- * bump co
547
- * bump parseurl
548
-
549
- 0.8.1 / 2014-06-24
550
- ==================
551
-
552
- * bump type-is
553
-
554
- 0.8.0 / 2014-06-13
555
- ==================
556
-
557
- * add `this.response.is()``
558
- * remove `.status=string` and `res.statusString` #298
559
-
560
- 0.7.0 / 2014-06-07
561
- ==================
562
-
563
- * add `this.lastModified` and `this.etag` as both getters and setters for ubiquity #292.
564
- See koajs/koa@4065bf7 for an explanation.
565
- * refactor `this.response.vary()` to use [vary](https://github.com/expressjs/vary) #291
566
- * remove `this.response.append()` #291
567
-
568
- 0.6.3 / 2014-06-06
569
- ==================
570
-
571
- * fix res.type= when the extension is unknown
572
- * assert when non-error is passed to app.onerror #287
573
- * bump finished
574
-
575
- 0.6.2 / 2014-06-03
576
- ==================
577
-
578
- * switch from set-type to mime-types
579
-
580
- 0.6.1 / 2014-05-11
581
- ==================
582
-
583
- * bump type-is
584
- * bump koa-compose
585
-
586
- 0.6.0 / 2014-05-01
587
- ==================
588
-
589
- * add nicer error formatting
590
- * add: assert object type in ctx.onerror
591
- * change .status default to 404. Closes #263
592
- * remove .outputErrors, suppress output when handled by the dev. Closes #272
593
- * fix content-length when body is re-assigned. Closes #267
594
-
595
- 0.5.5 / 2014-04-14
596
- ==================
597
-
598
- * fix length when .body is missing
599
- * fix: make sure all intermediate stream bodies will be destroyed
600
-
601
- 0.5.4 / 2014-04-12
602
- ==================
603
-
604
- * fix header stripping in a few cases
605
-
606
- 0.5.3 / 2014-04-09
607
- ==================
608
-
609
- * change res.type= to always default charset. Closes #252
610
- * remove ctx.inspect() implementation. Closes #164
611
-
612
- 0.5.2 / 2014-03-23
613
- ==================
614
-
615
- * fix: inspection of `app` and `app.toJSON()`
616
- * fix: let `this.throw`n errors provide their own status
617
- * fix: overwriting of `content-type` w/ `HEAD` requests
618
- * refactor: use statuses
619
- * refactor: use escape-html
620
- * bump dev deps
621
-
622
- 0.5.1 / 2014-03-06
623
- ==================
624
-
625
- * add request.hostname(getter). Closes #224
626
- * remove response.charset and ctx.charset (too confusing in relation to ctx.type) [breaking change]
627
- * fix a debug() name
628
-
629
- 0.5.0 / 2014-02-19
630
- ==================
631
-
632
- * add context.charset
633
- * add context.charset=
634
- * add request.charset
635
- * add response.charset
636
- * add response.charset=
637
- * fix response.body= html content sniffing
638
- * change ctx.length and ctx.type to always delegate to response object [breaking change]
639
-
640
- 0.4.0 / 2014-02-11
641
- ==================
642
-
643
- * remove app.jsonSpaces settings - moved to [koa-json](https://github.com/koajs/json)
644
- * add this.response=false to bypass koa's response handling
645
- * fix response handling after body has been sent
646
- * changed ctx.throw() to no longer .expose 5xx errors
647
- * remove app.keys getter/setter, update cookies, and remove keygrip deps
648
- * update fresh
649
- * update koa-compose
650
-
651
- 0.3.0 / 2014-01-17
652
- ==================
653
-
654
- * add ctx.host= delegate
655
- * add req.host=
656
- * add: context.throw supports Error instances
657
- * update co
658
- * update cookies
659
-
660
- 0.2.1 / 2013-12-30
661
- ==================
662
-
663
- * add better 404 handling
664
- * add check for fn._name in debug() output
665
- * add explicit .toJSON() calls to ctx.toJSON()
666
-
667
- 0.2.0 / 2013-12-28
668
- ==================
669
-
670
- * add support for .throw(status, msg). Closes #130
671
- * add GeneratorFunction assertion for app.use(). Closes #120
672
- * refactor: move `.is()` to `type-is`
673
- * refactor: move content negotiation to "accepts"
674
- * refactor: allow any streams with .pipe method
675
- * remove `next` in callback for now
676
-
677
- 0.1.2 / 2013-12-21
678
- ==================
679
-
680
- * update co, koa-compose, keygrip
681
- * use on-socket-error
682
- * add throw(status, msg) support
683
- * assert middleware is GeneratorFunction
684
- * ducktype stream checks
685
- * remove `next` is `app.callback()`
686
-
687
- 0.1.1 / 2013-12-19
688
- ==================
689
-
690
- * fix: cleanup socker error handler on response