Compare commits

...

485 Commits

Author SHA1 Message Date
Kamil Myśliwiec
9c468e3eb4 chore(@nestjs) publish v7.4.4 release 2020-08-31 12:42:41 +02:00
Kamil Myśliwiec
ba61c790e6 Merge branch 'master' of https://github.com/nestjs/nest 2020-08-31 11:53:10 +02:00
Kamil Myśliwiec
ce606e768d fix(platform-fastify): fix exception filter issue (reply ctor) 2020-08-31 11:53:03 +02:00
Kamil Mysliwiec
4d1c1279ae Merge pull request #5349 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.10.2
2020-08-31 10:03:36 +02:00
Renovate Bot
1f8a953f31 fix(deps): update dependency mongoose to v5.10.2 2020-08-31 07:11:39 +00:00
Kamil Mysliwiec
2d9d912c61 Merge pull request #5357 from nestjs/renovate/confluentinc-cp-kafka-5.x
chore(deps): update confluentinc/cp-kafka docker tag to v5.5.1
2020-08-31 09:03:16 +02:00
Kamil Mysliwiec
0eacce32ea Merge pull request #5351 from nestjs/renovate/mocha-8.x
chore(deps): update dependency mocha to v8.1.3
2020-08-31 09:01:47 +02:00
Kamil Mysliwiec
97efd2b9f7 Merge pull request #5350 from nestjs/renovate/fastify-multipart-3.x
chore(deps): update dependency fastify-multipart to v3.1.0
2020-08-31 09:01:34 +02:00
Kamil Mysliwiec
7eee395044 Merge pull request #5346 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v7.4.3
2020-08-31 09:01:22 +02:00
Renovate Bot
23008d5b5c chore(deps): update confluentinc/cp-kafka docker tag to v5.5.1 2020-08-31 06:48:24 +00:00
Renovate Bot
eab0cccd4b chore(deps): update dependency mocha to v8.1.3 2020-08-28 21:06:09 +00:00
Renovate Bot
9a2f1e9492 chore(deps): update dependency fastify-multipart to v3.1.0 2020-08-28 15:54:10 +00:00
Kamil Mysliwiec
9bc184cd23 Merge pull request #5348 from nestjs/fix/missing-await-5347
fix(core): add missing await when dynamic modules metadata is stored
2020-08-28 15:19:38 +02:00
Kamil Myśliwiec
4257f04550 fix(core): add missing await when dynamic modules metadata is stored 2020-08-28 15:03:55 +02:00
Renovate Bot
76bf2030d3 fix(deps): update nest monorepo to v7.4.3 2020-08-28 08:54:40 +00:00
Kamil Myśliwiec
e70196b8c2 chore(): update README files 2020-08-28 10:30:06 +02:00
Kamil Myśliwiec
b0094dfb69 chore(@nestjs) publish v7.4.3 release 2020-08-28 10:29:15 +02:00
Kamil Mysliwiec
9fbd535e90 Merge pull request #5343 from nestjs/renovate/fastify-formbody-5.x
fix(deps): update dependency fastify-formbody to v5
2020-08-28 10:28:14 +02:00
Renovate Bot
5a6de920a2 fix(deps): update dependency fastify-formbody to v5 2020-08-28 06:24:32 +00:00
Kamil Mysliwiec
11890547bb Merge pull request #5338 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.10.1
2020-08-28 08:21:25 +02:00
Kamil Mysliwiec
ac413cd045 Merge pull request #5344 from nestjs/renovate/apollo-graphql-packages
fix(deps): update apollo graphql packages to v2.17.0
2020-08-28 08:21:05 +02:00
Renovate Bot
869446a65e fix(deps): update apollo graphql packages to v2.17.0 2020-08-27 18:49:34 +00:00
Renovate Bot
917b09ba52 fix(deps): update dependency mongoose to v5.10.1 2020-08-26 19:33:51 +00:00
Kamil Myśliwiec
9c86cb4086 Merge branch 'master' of https://github.com/nestjs/nest 2020-08-26 15:11:50 +02:00
Kamil Myśliwiec
351e810d69 feat(platform-fastify): use require for dependencies instead of load package util 2020-08-26 15:11:40 +02:00
Kamil Mysliwiec
509c380962 Merge pull request #5333 from nestjs/renovate/graphql-tools-monorepo
fix(deps): update dependency graphql-tools to v6.1.0
2020-08-26 14:44:19 +02:00
Kamil Mysliwiec
6a51e73746 Merge pull request #5331 from nestjs/renovate/ts-jest-26.x
chore(deps): update dependency ts-jest to v26.3.0
2020-08-26 14:44:06 +02:00
Kamil Mysliwiec
163b410144 Merge pull request #5334 from nestjs/renovate/fastify-multipart-3.x
chore(deps): update dependency fastify-multipart to v3
2020-08-26 14:43:50 +02:00
Renovate Bot
a555fdab0c chore(deps): update dependency fastify-multipart to v3 2020-08-26 10:34:55 +00:00
Renovate Bot
65a7c3c29c fix(deps): update dependency graphql-tools to v6.1.0 2020-08-26 10:33:05 +00:00
Renovate Bot
48926107d4 chore(deps): update dependency ts-jest to v26.3.0 2020-08-26 07:31:24 +00:00
Kamil Mysliwiec
7ee2b34ae8 Merge pull request #5324 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v3.10.1
2020-08-26 09:21:34 +02:00
Kamil Mysliwiec
17a9ba9486 Merge pull request #5326 from nestjs/renovate/lint-staged-10.x
chore(deps): update dependency lint-staged to v10.2.13
2020-08-26 09:20:41 +02:00
Kamil Mysliwiec
cd33e4bcba Merge pull request #5328 from nestjs/renovate/fastify-3.x
fix(deps): update dependency fastify to v3.3.0
2020-08-26 09:19:46 +02:00
Kamil Mysliwiec
725f5c0b9b Merge pull request #5329 from nestjs/renovate/mocha-8.x
chore(deps): update dependency mocha to v8.1.2
2020-08-26 09:19:35 +02:00
Kamil Mysliwiec
8b7472ac6d Merge pull request #5330 from nestjs/renovate/prettier-2.x
chore(deps): update dependency prettier to v2.1.1
2020-08-26 09:19:17 +02:00
Kamil Mysliwiec
11e0f33052 Update Readme.md 2020-08-26 09:18:18 +02:00
Renovate Bot
24463c9daa chore(deps): update dependency prettier to v2.1.1 2020-08-26 07:07:23 +00:00
Renovate Bot
f30061c03c chore(deps): update dependency mocha to v8.1.2 2020-08-25 19:48:32 +00:00
Renovate Bot
69e05d288f chore(deps): update dependency lint-staged to v10.2.13 2020-08-25 15:53:18 +00:00
Renovate Bot
2bd3382a72 fix(deps): update dependency fastify to v3.3.0 2020-08-25 14:06:32 +00:00
Renovate Bot
84a1ed1e7a chore(deps): update typescript-eslint monorepo to v3.10.1 2020-08-25 10:43:47 +00:00
Kamil Mysliwiec
24aaf88052 Merge pull request #5319 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v3.10.0
2020-08-25 09:15:10 +02:00
Kamil Mysliwiec
c03390094c Merge pull request #5321 from nestjs/renovate/mqtt-4.x
chore(deps): update dependency mqtt to v4.2.1
2020-08-25 09:15:03 +02:00
Kamil Mysliwiec
4cdddfcad4 Merge pull request #5322 from nestjs/renovate/ts-morph-8.x
chore(deps): update dependency ts-morph to v8.1.0
2020-08-25 09:14:52 +02:00
Renovate Bot
b003c3fc6a chore(deps): update dependency ts-morph to v8.1.0 2020-08-25 01:51:55 +00:00
Renovate Bot
b0e7f26698 chore(deps): update dependency mqtt to v4.2.1 2020-08-24 21:07:44 +00:00
Renovate Bot
5c4a84a294 chore(deps): update typescript-eslint monorepo to v3.10.0 2020-08-24 19:01:12 +00:00
Kamil Mysliwiec
5e933bd00d Merge pull request #5317 from nestjs/renovate/ts-loader-8.x
chore(deps): update dependency ts-loader to v8.0.3
2020-08-24 14:25:51 +02:00
Kamil Mysliwiec
87be70393c Merge pull request #5318 from nestjs/renovate/prettier-2.x
chore(deps): update dependency prettier to v2.1.0
2020-08-24 14:21:16 +02:00
Renovate Bot
2b84ed43c6 chore(deps): update dependency prettier to v2.1.0 2020-08-24 12:04:05 +00:00
Renovate Bot
4bb4831166 chore(deps): update dependency ts-loader to v8.0.3 2020-08-24 10:21:35 +00:00
Kamil Mysliwiec
6769e66c20 Merge pull request #5315 from nestjs/renovate/nestjs-typeorm-7.x
fix(deps): update dependency @nestjs/typeorm to v7.1.1
2020-08-24 12:00:43 +02:00
Kamil Mysliwiec
258c90af5b Merge pull request #5316 from nestjs/renovate/point-of-view-4.x
fix(deps): update dependency point-of-view to v4.4.0
2020-08-24 12:00:07 +02:00
Kamil Mysliwiec
e3983ccc12 Merge pull request #5300 from nestjs/renovate/ts-morph-8.x
chore(deps): update dependency ts-morph to v8
2020-08-24 11:47:14 +02:00
Kamil Mysliwiec
dc60e13f00 Merge pull request #5310 from nestjs/renovate/nest-monorepo
chore(deps): update dependency @nestjs/cli to v7.5.1
2020-08-24 11:46:35 +02:00
Renovate Bot
4344e3a7f6 chore(deps): update dependency ts-morph to v8 2020-08-24 09:13:33 +00:00
Renovate Bot
8bb1d94f65 fix(deps): update dependency point-of-view to v4.4.0 2020-08-24 09:11:29 +00:00
Renovate Bot
bf2446759e fix(deps): update dependency @nestjs/typeorm to v7.1.1 2020-08-24 09:08:37 +00:00
Renovate Bot
6fafaf7241 chore(deps): update dependency @nestjs/cli to v7.5.1 2020-08-24 09:04:48 +00:00
Kamil Mysliwiec
5d340d743e Merge pull request #5296 from nestjs/renovate/nestjs-swagger-4.x
fix(deps): update dependency @nestjs/swagger to v4.6.0
2020-08-24 09:10:59 +02:00
Kamil Mysliwiec
b5d4b2b7c2 Merge pull request #5298 from nestjs/renovate/typescript-4.x
chore(deps): update dependency typescript to v4
2020-08-24 09:10:47 +02:00
Kamil Mysliwiec
973788db8a Merge pull request #5299 from nestjs/renovate/babel-monorepo
chore(deps): update dependency @babel/core to v7.11.4
2020-08-24 09:10:38 +02:00
Kamil Mysliwiec
d3e2c6f487 Merge pull request #5301 from nestjs/renovate/axios-0.x
fix(deps): update dependency axios to v0.20.0
2020-08-24 09:10:26 +02:00
Kamil Mysliwiec
8cb59a6a49 Merge pull request #5303 from nestjs/renovate/redis-2.x
chore(deps): update dependency @types/redis to v2.8.26
2020-08-24 09:10:18 +02:00
Kamil Mysliwiec
e8226fa13a Merge pull request #5304 from nestjs/renovate/ts-node-9.x
chore(deps): update dependency ts-node to v9
2020-08-24 09:10:12 +02:00
Kamil Mysliwiec
7d1fd33563 Merge pull request #5305 from nestjs/renovate/sinon-9.x
chore(deps): update dependency @types/sinon to v9.0.5
2020-08-24 09:10:03 +02:00
Kamil Mysliwiec
0690dd8bf0 Merge pull request #5312 from nestjs/renovate/bull-3.x
chore(deps): update dependency @types/bull to v3.14.2
2020-08-24 09:09:49 +02:00
Kamil Mysliwiec
5220531702 Merge pull request #5311 from nestjs/renovate/nestjs-schematics-7.x
chore(deps): update dependency @nestjs/schematics to v7.1.1
2020-08-24 09:09:42 +02:00
Kamil Mysliwiec
89a3cbafa0 Merge pull request #5313 from nestjs/renovate/jest-monorepo
chore(deps): update dependency jest to v26.4.2
2020-08-24 09:09:24 +02:00
Renovate Bot
a0591f9eab chore(deps): update dependency jest to v26.4.2 2020-08-24 03:19:25 +00:00
Renovate Bot
3f05bf472d chore(deps): update dependency @types/bull to v3.14.2 2020-08-24 01:22:04 +00:00
Renovate Bot
0669f371ae chore(deps): update dependency @nestjs/schematics to v7.1.1 2020-08-24 01:20:19 +00:00
Renovate Bot
b2f2852fdf chore(deps): update dependency @types/sinon to v9.0.5 2020-08-21 18:58:43 +00:00
Renovate Bot
d468e05d40 chore(deps): update dependency ts-node to v9 2020-08-21 18:32:24 +00:00
Renovate Bot
1296dffeb9 chore(deps): update dependency @types/redis to v2.8.26 2020-08-21 16:38:42 +00:00
Kamil Mysliwiec
6e2638291e Merge pull request #5302 from nestjs/renovate/nestjs-sequelize-0.x
fix(deps): update dependency @nestjs/sequelize to v0.1.1
2020-08-21 10:50:01 +02:00
Renovate Bot
b9f7234ed7 fix(deps): update dependency @nestjs/sequelize to v0.1.1 2020-08-21 08:38:23 +00:00
Renovate Bot
b2d1d46446 fix(deps): update dependency axios to v0.20.0 2020-08-21 03:30:37 +00:00
Renovate Bot
7dc62436dc chore(deps): update dependency @babel/core to v7.11.4 2020-08-20 19:05:44 +00:00
Renovate Bot
2434dc299b chore(deps): update dependency typescript to v4 2020-08-20 17:08:44 +00:00
Renovate Bot
0732ecca0b fix(deps): update dependency @nestjs/swagger to v4.6.0 2020-08-20 11:07:39 +00:00
Kamil Mysliwiec
ed8cd61cca Merge pull request #5275 from nestjs/renovate/eslint-7.x
chore(deps): update dependency eslint to v7.7.0
2020-08-20 11:36:05 +02:00
Kamil Mysliwiec
cf042c08ad Merge pull request #5294 from nestjs/renovate/jest-monorepo
chore(deps): update dependency jest to v26.4.1
2020-08-20 11:35:46 +02:00
Renovate Bot
84c934361d chore(deps): update dependency jest to v26.4.1 2020-08-20 09:19:03 +00:00
Renovate Bot
b7b1075c25 chore(deps): update dependency eslint to v7.7.0 2020-08-19 12:41:44 +00:00
Kamil Mysliwiec
18af5289e0 Merge pull request #5269 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.18.0
2020-08-19 11:58:53 +02:00
Kamil Mysliwiec
f1b6c864a1 Merge pull request #5270 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.10.0
2020-08-19 11:58:45 +02:00
Kamil Mysliwiec
f680471a48 Merge pull request #5276 from nestjs/renovate/jest-26.x
chore(deps): update dependency @types/jest to v26.0.10
2020-08-19 11:58:21 +02:00
Kamil Mysliwiec
97d9ccb0d5 Merge pull request #5280 from nestjs/renovate/commitlint-monorepo
chore(deps): update commitlint monorepo to v9.1.2
2020-08-19 11:58:09 +02:00
Kamil Mysliwiec
29fb923608 Merge pull request #5282 from nestjs/renovate/subscriptions-transport-ws-0.x
chore(deps): update dependency subscriptions-transport-ws to v0.9.18
2020-08-19 11:58:02 +02:00
Kamil Mysliwiec
dfb8eeeaf1 Merge pull request #5284 from nestjs/renovate/fastify-3.x
fix(deps): update dependency fastify to v3.2.1
2020-08-19 11:57:55 +02:00
Kamil Mysliwiec
d11fdc4ad7 Merge pull request #5285 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v3.9.1
2020-08-19 11:57:47 +02:00
Kamil Mysliwiec
87679c3394 Merge pull request #5286 from nestjs/renovate/mocha-8.x
chore(deps): update dependency @types/mocha to v8.0.3
2020-08-19 11:57:35 +02:00
Renovate Bot
621984b555 chore(deps): update dependency @types/mocha to v8.0.3 2020-08-17 20:16:30 +00:00
Renovate Bot
22969a7089 chore(deps): update typescript-eslint monorepo to v3.9.1 2020-08-17 17:53:49 +00:00
Renovate Bot
c827e1ee17 fix(deps): update dependency fastify to v3.2.1 2020-08-17 16:31:51 +00:00
Renovate Bot
563aa9b290 chore(deps): update dependency subscriptions-transport-ws to v0.9.18 2020-08-17 11:51:58 +00:00
Renovate Bot
b9d7a6e98a chore(deps): update commitlint monorepo to v9.1.2 2020-08-17 00:18:10 +00:00
Renovate Bot
9bafe7ee3e fix(deps): update dependency bull to v3.18.0 2020-08-16 19:16:52 +00:00
Renovate Bot
e587f53503 chore(deps): update dependency @types/jest to v26.0.10 2020-08-15 00:00:42 +00:00
Renovate Bot
a1dc03f067 fix(deps): update dependency mongoose to v5.10.0 2020-08-14 16:49:46 +00:00
Kamil Mysliwiec
a361df48c4 Merge pull request #5268 from nestjs/dependabot/npm_and_yarn/sample/01-cats-app/minimist-1.2.5
chore(deps): bump minimist from 1.2.0 to 1.2.5 in /sample/01-cats-app
2020-08-13 14:55:27 +02:00
dependabot[bot]
8ea697bdc1 chore(deps): bump minimist from 1.2.0 to 1.2.5 in /sample/01-cats-app
Bumps [minimist](https://github.com/substack/minimist) from 1.2.0 to 1.2.5.
- [Release notes](https://github.com/substack/minimist/releases)
- [Commits](https://github.com/substack/minimist/compare/1.2.0...1.2.5)

Signed-off-by: dependabot[bot] <support@github.com>
2020-08-13 11:20:32 +00:00
Kamil Mysliwiec
b0f817c1a5 Merge pull request #5246 from nestjs/renovate/sinon-9.x
chore(deps): update dependency sinon to v9.0.3
2020-08-13 13:17:27 +02:00
Kamil Mysliwiec
5aeebd3218 Merge pull request #5247 from nestjs/renovate/light-my-request-4.x
fix(deps): update dependency light-my-request to v4.0.2
2020-08-13 13:17:21 +02:00
Kamil Mysliwiec
1979db4e32 Merge pull request #5259 from nestjs/renovate/conventional-changelog-3.x
chore(deps): update dependency conventional-changelog to v3.1.23
2020-08-13 13:17:15 +02:00
Kamil Mysliwiec
a9e7ad8812 Merge pull request #5262 from nestjs/renovate/mqtt-4.x
chore(deps): update dependency mqtt to v4.2.0
2020-08-13 13:17:08 +02:00
Kamil Mysliwiec
dac26b5003 Merge pull request #5265 from nestjs/renovate/jest-monorepo
chore(deps): update dependency jest to v26.4.0
2020-08-13 13:17:03 +02:00
Kamil Mysliwiec
317273e5c5 Merge pull request #5266 from nestjs/renovate/graphql-query-complexity-0.x
fix(deps): update dependency graphql-query-complexity to v0.7.0
2020-08-13 13:16:53 +02:00
Renovate Bot
27314f2efc fix(deps): update dependency graphql-query-complexity to v0.7.0 2020-08-12 23:22:55 +00:00
Renovate Bot
4486abe26b chore(deps): update dependency jest to v26.4.0 2020-08-12 21:40:35 +00:00
Renovate Bot
540d8bb40f chore(deps): update dependency mqtt to v4.2.0 2020-08-12 17:52:21 +00:00
Renovate Bot
8d4429949c chore(deps): update dependency conventional-changelog to v3.1.23 2020-08-12 13:07:15 +00:00
Renovate Bot
7c16462059 fix(deps): update dependency light-my-request to v4.0.2 2020-08-12 12:36:58 +00:00
Renovate Bot
f509871249 chore(deps): update dependency sinon to v9.0.3 2020-08-12 12:35:03 +00:00
Kamil Mysliwiec
e5e23e19e6 Merge pull request #5248 from nestjs/renovate/socket.io-2.x
chore(deps): update dependency @types/socket.io to v2.1.11
2020-08-12 14:31:49 +02:00
Kamil Mysliwiec
8962c5931c Merge pull request #5250 from nestjs/renovate/graphql-tools-monorepo
fix(deps): update dependency graphql-tools to v6.0.18
2020-08-12 14:31:42 +02:00
Kamil Mysliwiec
1433910a85 Merge pull request #5251 from nestjs/renovate/ts-morph-7.x
chore(deps): update dependency ts-morph to v7.3.0
2020-08-12 14:31:35 +02:00
Kamil Mysliwiec
46c71fda41 Merge pull request #5254 from nestjs/renovate/mocha-8.x
chore(deps): update dependency @types/mocha to v8.0.2
2020-08-12 14:31:27 +02:00
Kamil Mysliwiec
f4487c5fd1 Merge pull request #5261 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.17.0
2020-08-12 14:31:18 +02:00
Renovate Bot
d199c9c895 fix(deps): update dependency bull to v3.17.0 2020-08-12 12:16:30 +00:00
Renovate Bot
06cd72a847 chore(deps): update dependency @types/mocha to v8.0.2 2020-08-11 19:26:45 +00:00
Renovate Bot
3333469cdb chore(deps): update dependency ts-morph to v7.3.0 2020-08-11 15:52:49 +00:00
Renovate Bot
a0b5e243ae fix(deps): update dependency graphql-tools to v6.0.18 2020-08-11 13:31:40 +00:00
Kamil Mysliwiec
da321fcb51 Merge pull request #5249 from nestjs/renovate/ts-jest-26.x
chore(deps): update dependency ts-jest to v26.2.0
2020-08-11 13:28:11 +02:00
Renovate Bot
cea43d323a chore(deps): update dependency ts-jest to v26.2.0 2020-08-11 11:07:26 +00:00
Renovate Bot
a830d47e77 chore(deps): update dependency @types/socket.io to v2.1.11 2020-08-11 09:58:54 +00:00
Kamil Mysliwiec
e0aa10012e Merge pull request #5239 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v3.9.0
2020-08-11 08:52:29 +02:00
Kamil Mysliwiec
8551406dd0 Merge pull request #5242 from nestjs/renovate/graphql-tools-monorepo
fix(deps): update dependency graphql-tools to v6.0.17
2020-08-11 08:52:15 +02:00
Renovate Bot
06e1b433e8 fix(deps): update dependency graphql-tools to v6.0.17 2020-08-10 21:54:34 +00:00
Renovate Bot
d553fb1a82 chore(deps): update typescript-eslint monorepo to v3.9.0 2020-08-10 17:39:12 +00:00
Kamil Mysliwiec
bbcb7ae6cd Merge pull request #5238 from nestjs/renovate/jest-monorepo
chore(deps): update dependency jest to v26.3.0
2020-08-10 14:52:19 +02:00
Renovate Bot
18039adc5a chore(deps): update dependency jest to v26.3.0 2020-08-10 12:36:23 +00:00
Kamil Mysliwiec
b4dd52be45 Merge pull request #5236 from nestjs/renovate/ts-morph-7.x
chore(deps): update dependency ts-morph to v7.2.0
2020-08-10 08:31:56 +02:00
Renovate Bot
53db786a3b chore(deps): update dependency ts-morph to v7.2.0 2020-08-10 00:05:11 +00:00
Kamil Mysliwiec
3d10c328c5 Merge pull request #5233 from nestjs/renovate/nats-1.x
chore(deps): update dependency nats to v1.4.12
2020-08-09 11:23:57 +02:00
Kamil Mysliwiec
546fca4eda Merge pull request #5232 from AdamHavlicek/patch-2
Update invalid-kafka-client-topic-partition.exception.ts
2020-08-09 11:23:10 +02:00
Kamil Mysliwiec
ca589d6ad1 Merge pull request #5231 from nestjs/renovate/concurrently-5.x
chore(deps): update dependency concurrently to v5.3.0
2020-08-09 11:19:08 +02:00
Kamil Mysliwiec
f74b55e629 Merge pull request #5230 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.9.28
2020-08-09 11:13:21 +02:00
Renovate Bot
0edff9bab7 fix(deps): update dependency mongoose to v5.9.28 2020-08-07 20:42:57 +00:00
Renovate Bot
8025ddbeb8 chore(deps): update dependency nats to v1.4.12 2020-08-07 18:13:23 +00:00
AdamHavlicek
f0ca20aaba Update invalid-kafka-client-topic-partition.exception.ts
typo
2020-08-07 16:04:40 +02:00
Renovate Bot
631e0da3a6 chore(deps): update dependency concurrently to v5.3.0 2020-08-07 13:59:14 +00:00
Kamil Mysliwiec
6e0581d31d Merge pull request #5228 from nestjs/renovate/tslib-2.x
fix(deps): update dependency tslib to v2.0.1
2020-08-07 08:42:56 +02:00
Renovate Bot
be562b90a0 fix(deps): update dependency tslib to v2.0.1 2020-08-06 22:43:54 +00:00
Kamil Mysliwiec
dda30809dd Merge pull request #5222 from nestjs/renovate/fastify-3.x
fix(deps): update dependency fastify to v3.2.0
2020-08-06 22:11:48 +02:00
Renovate Bot
d4790bea22 fix(deps): update dependency fastify to v3.2.0 2020-08-06 12:57:24 +00:00
Kamil Mysliwiec
c044b388f3 Merge pull request #5217 from nestjs/renovate/mongoose-5.x
chore(deps): update dependency @types/mongoose to v5.7.35
2020-08-06 10:07:46 +02:00
Kamil Mysliwiec
4b2d0b8cc7 Merge pull request #5212 from nestjs/renovate/babel-monorepo
chore(deps): update dependency @babel/runtime to v7.11.2
2020-08-06 09:57:03 +02:00
Renovate Bot
b27287fda7 chore(deps): update dependency @types/mongoose to v5.7.35 2020-08-06 07:25:25 +00:00
Renovate Bot
2d8e56f646 chore(deps): update dependency @babel/runtime to v7.11.2 2020-08-06 06:45:39 +00:00
Kamil Mysliwiec
57cf2ac7bf Merge pull request #5216 from nestjs/renovate/jest-26.x
chore(deps): update dependency @types/jest to v26.0.9
2020-08-06 08:43:52 +02:00
Kamil Mysliwiec
34cdf675d7 Merge pull request #5209 from nestjs/renovate/graphql-tools-monorepo
fix(deps): update dependency graphql-tools to v6.0.16
2020-08-06 08:43:42 +02:00
Kamil Mysliwiec
84a6af1542 Merge pull request #5213 from nestjs/renovate/point-of-view-4.x
fix(deps): update dependency point-of-view to v4.3.0
2020-08-06 08:43:29 +02:00
Renovate Bot
3edc0efa97 chore(deps): update dependency @types/jest to v26.0.9 2020-08-06 00:25:38 +00:00
Renovate Bot
40061ea60a fix(deps): update dependency point-of-view to v4.3.0 2020-08-05 16:00:42 +00:00
Renovate Bot
e52e48da18 fix(deps): update dependency graphql-tools to v6.0.16 2020-08-05 09:04:21 +00:00
Kamil Mysliwiec
60bcd23d67 Merge pull request #5204 from nestjs/renovate/mocha-8.x
chore(deps): update dependency mocha to v8.1.1
2020-08-05 08:56:52 +02:00
Kamil Mysliwiec
0d834c6f1d Merge pull request #5207 from nestjs/renovate/babel-monorepo
chore(deps): update babel monorepo to v7.11.1
2020-08-05 08:56:19 +02:00
Renovate Bot
1d1ab44545 chore(deps): update babel monorepo to v7.11.1 2020-08-04 22:16:45 +00:00
Renovate Bot
f8a01d6a28 chore(deps): update dependency mocha to v8.1.1 2020-08-04 19:33:35 +00:00
Kamil Mysliwiec
9fb0204f75 Merge pull request #5196 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v3.8.0
2020-08-04 09:10:49 +02:00
Renovate Bot
6e4ebd8b68 chore(deps): update typescript-eslint monorepo to v3.8.0 2020-08-03 17:44:16 +00:00
Kamil Mysliwiec
c82b871689 Merge pull request #5170 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v7.4.2
2020-08-03 10:37:08 +02:00
Renovate Bot
00f74fc9d4 fix(deps): update nest monorepo to v7.4.2 2020-08-03 08:28:50 +00:00
Kamil Mysliwiec
6c884011a0 Merge pull request #5175 from nestjs/renovate/mocha-8.x
chore(deps): update dependency mocha to v8.1.0
2020-08-03 10:05:54 +02:00
Kamil Mysliwiec
28a56a6987 Merge pull request #5176 from nestjs/renovate/babel-monorepo
chore(deps): update babel monorepo to v7.11.0
2020-08-03 10:01:31 +02:00
Renovate Bot
b7a618dae9 chore(deps): update dependency mocha to v8.1.0 2020-08-03 07:24:31 +00:00
Renovate Bot
ab2c8f5271 chore(deps): update babel monorepo to v7.11.0 2020-08-03 07:22:23 +00:00
Kamil Mysliwiec
f2b7d2ba62 Merge pull request #5174 from nestjs/renovate/mongodb-3.x
fix(deps): update dependency mongodb to v3.6.0
2020-08-03 09:16:28 +02:00
Kamil Mysliwiec
8b2401cc4b Merge pull request #5188 from nestjs/renovate/eslint-7.x
chore(deps): update dependency eslint to v7.6.0
2020-08-03 09:16:12 +02:00
Kamil Mysliwiec
4464d62e8b Merge pull request #5179 from nestjs/renovate/rxjs-compat-6.x
chore(deps): update dependency rxjs-compat to v6.6.2
2020-08-03 09:15:55 +02:00
Kamil Mysliwiec
1ae1f8a5ed Merge pull request #5180 from nestjs/renovate/rxjs-6.x
fix(deps): update dependency rxjs to v6.6.2
2020-08-03 09:15:48 +02:00
Kamil Mysliwiec
e1c9409207 Merge pull request #5182 from nestjs/renovate/jest-26.x
chore(deps): update dependency @types/jest to v26.0.8
2020-08-03 09:15:39 +02:00
Kamil Mysliwiec
4b8f6770be Merge pull request #5184 from nestjs/renovate/jest-monorepo
chore(deps): update dependency jest to v26.2.2
2020-08-03 09:15:32 +02:00
Kamil Mysliwiec
cd2a162bfb Merge pull request #5185 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.9.27
2020-08-03 09:15:24 +02:00
Kamil Mysliwiec
39702b4dde Merge pull request #5187 from nestjs/renovate/cors-2.x
chore(deps): update dependency @types/cors to v2.8.7
2020-08-03 09:15:17 +02:00
Kamil Mysliwiec
9a9a555571 Merge pull request #5192 from nestjs/renovate/ts-loader-8.x
chore(deps): update dependency ts-loader to v8.0.2
2020-08-03 09:15:05 +02:00
Renovate Bot
cdee982963 chore(deps): update dependency ts-loader to v8.0.2 2020-08-03 02:35:16 +00:00
Renovate Bot
145d1fefaf chore(deps): update dependency eslint to v7.6.0 2020-08-01 00:08:26 +00:00
Renovate Bot
86e147c857 chore(deps): update dependency @types/cors to v2.8.7 2020-07-31 20:48:33 +00:00
Renovate Bot
7316280d12 fix(deps): update dependency mongoose to v5.9.27 2020-07-31 15:52:48 +00:00
Renovate Bot
2bfeba4ed9 chore(deps): update dependency jest to v26.2.2 2020-07-31 11:47:59 +00:00
Renovate Bot
8931d58064 chore(deps): update dependency @types/jest to v26.0.8 2020-07-31 05:20:41 +00:00
Renovate Bot
ac751c630d fix(deps): update dependency rxjs to v6.6.2 2020-07-31 02:43:11 +00:00
Renovate Bot
db0b2026f2 chore(deps): update dependency rxjs-compat to v6.6.2 2020-07-31 01:31:45 +00:00
Renovate Bot
eb0025da5d fix(deps): update dependency mongodb to v3.6.0 2020-07-30 18:18:36 +00:00
Kamil Myśliwiec
087e2cbfa5 chore(@nestjs) publish v7.4.2 release 2020-07-30 16:34:39 +02:00
Kamil Myśliwiec
eea77b720a Merge branch 'master' of https://github.com/nestjs/nest 2020-07-30 16:31:53 +02:00
Kamil Mysliwiec
1ade11ede4 Merge pull request #5161 from mkaufmaner/5126-change-kafka-visibility
fix(microservices): Changed visibility of Kafka variables for extension
2020-07-30 16:31:09 +02:00
Kamil Mysliwiec
b93812978c Merge pull request #5169 from nestjs/renovate/jest-monorepo
chore(deps): update dependency jest to v26.2.1
2020-07-30 16:30:44 +02:00
Kamil Mysliwiec
306adfb751 Merge pull request #5166 from nestjs/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.44.1
2020-07-30 16:30:34 +02:00
Kamil Mysliwiec
0241aa0a68 Merge pull request #5163 from dkantereivin/feat/case-insensitive-headers
feat(core): case insensitive headers
2020-07-30 16:30:07 +02:00
Kamil Myśliwiec
9bbe4f11a1 Merge branch 'master' of https://github.com/nestjs/nest 2020-07-30 16:29:12 +02:00
Kamil Myśliwiec
7ecc6c7807 fix(platform-fastify): fix constructor signature, fallback to any 2020-07-30 16:29:01 +02:00
Kamil Mysliwiec
5dd7abb9fc Merge pull request #5168 from KASOGIT/17-mvc-fastify-add-missing-package-fastify-static
fix(sample): Add missing package fastify-static
2020-07-30 15:35:42 +02:00
Renovate Bot
ffb36a9309 chore(deps): update dependency jest to v26.2.1 2020-07-30 12:13:59 +00:00
Adam
44bbff494c fix(sample): Add missing package fastify-static 2020-07-30 12:06:16 +02:00
Renovate Bot
04d76ff4b2 chore(deps): update dependency webpack to v4.44.1 2020-07-30 08:24:10 +00:00
Kamil Mysliwiec
ea70f0348c Merge pull request #5159 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v7.4.1
2020-07-30 09:55:17 +02:00
Renovate Bot
3f52b32a75 fix(deps): update nest monorepo to v7.4.1 2020-07-30 07:21:42 +00:00
Kamil Mysliwiec
54434e75c5 Merge pull request #5164 from nestjs/renovate/class-transformer-0.x
fix(deps): update dependency class-transformer to v0.3.1
2020-07-30 08:56:06 +02:00
Renovate Bot
26f1ffa265 fix(deps): update dependency class-transformer to v0.3.1 2020-07-29 22:26:02 +00:00
D. Kanter
08d29be41d feat(core): case insensitive headers
@Headers(param) is now lowercased in order to match raw headers that are lower-cased by node https://nodejs.org/api/http.html#http_http
2020-07-29 14:25:55 -04:00
Kamil Mysliwiec
5cbe2404dc Merge pull request #5160 from nestjs/renovate/nestjs-graphql-7.x
fix(deps): update dependency @nestjs/graphql to v7.6.0
2020-07-29 18:15:29 +02:00
Kamil Myśliwiec
c4f94df2e7 chore(@nestjs) publish v7.4.1 release 2020-07-29 18:13:57 +02:00
Kamil Myśliwiec
b10b60a9b3 fix(platform-fastify): use external interfaces 2020-07-29 18:11:29 +02:00
Michael Kaufman
b9007dd93f fix(microservices): Changed visibility of Kafka variables for extension 2020-07-29 11:51:29 -04:00
Renovate Bot
9d5bc076ff fix(deps): update dependency @nestjs/graphql to v7.6.0 2020-07-29 13:04:40 +00:00
Kamil Myśliwiec
50c709c4d5 chore(): update package.json 2020-07-29 14:29:01 +02:00
Kamil Myśliwiec
2166af0eeb chore(@nestjs) publish v7.4.0 release 2020-07-29 14:27:43 +02:00
Kamil Mysliwiec
c91317e91c Merge pull request #5088 from nestjs/renovate/fastify-3.x
fix(deps): update dependency fastify to v3.1.1
2020-07-29 13:57:26 +02:00
Kamil Mysliwiec
5ec7246c18 Merge pull request #5112 from nestjs/renovate/fast-json-stringify-2.x
fix(deps): update dependency fast-json-stringify to v2.2.3
2020-07-29 13:30:45 +02:00
Renovate Bot
6df9595b35 fix(deps): update dependency fastify to v3.1.1 2020-07-29 11:09:24 +00:00
Kamil Mysliwiec
7b5e05e082 Merge pull request #5049 from nestjs/renovate/point-of-view-4.x
fix(deps): update dependency point-of-view to v4
2020-07-29 13:06:28 +02:00
Kamil Mysliwiec
c09028c60d Merge pull request #5047 from nestjs/renovate/fastify-cors-4.x
fix(deps): update dependency fastify-cors to v4.1.0
2020-07-29 13:06:14 +02:00
Kamil Mysliwiec
b013847b42 Merge pull request #5050 from nestjs/renovate/fastify-static-3.x
chore(deps): update dependency fastify-static to v3.2.0
2020-07-29 12:50:35 +02:00
Renovate Bot
fc37771375 fix(deps): update dependency point-of-view to v4 2020-07-29 10:09:42 +00:00
Renovate Bot
a749e0c53e fix(deps): update dependency fastify-cors to v4.1.0 2020-07-29 10:08:44 +00:00
Renovate Bot
2625b8829d fix(deps): update dependency fast-json-stringify to v2.2.3 2020-07-29 10:06:59 +00:00
Renovate Bot
6eda39b8f4 chore(deps): update dependency fastify-static to v3.2.0 2020-07-29 10:05:19 +00:00
Kamil Myśliwiec
4c816a7efd Merge branch 'master' of https://github.com/nestjs/nest 2020-07-29 11:53:40 +02:00
Kamil Myśliwiec
9ac0cf1457 style(): fix linter issues 2020-07-29 11:53:31 +02:00
Kamil Mysliwiec
645075750e Merge pull request #5097 from mikicho/explicit-validation-type
feat(common) add expected type option to validation pipe
2020-07-29 11:42:48 +02:00
Kamil Myśliwiec
f0e7597635 Merge branch 'master' of https://github.com/nestjs/nest 2020-07-29 11:34:25 +02:00
Kamil Myśliwiec
77e2f395e7 Merge branch 'hongyiweiwu-fastify3.0' 2020-07-29 11:34:17 +02:00
Kamil Myśliwiec
7a749add7c feat(platform-fastify): support middleware with fastify adapter 2020-07-29 11:33:46 +02:00
Kamil Mysliwiec
c420898cfa Merge pull request #5136 from danielscw/fix/microservice-on-module-init-error-handling
fix(microservice): handle promise return by 'registerModules' properly
2020-07-29 11:01:11 +02:00
Kamil Myśliwiec
0006d31ffe fix(): resolve merge conflicts 2020-07-29 10:19:51 +02:00
Kamil Mysliwiec
752033edac Merge pull request #5116 from dsebastien/feature/preconditionfailed
feat(common): add precondition failed exception
2020-07-29 10:16:50 +02:00
Kamil Mysliwiec
63d0693360 Update packages/microservices/nest-microservice.ts 2020-07-29 10:15:55 +02:00
Kamil Myśliwiec
443da3993b Merge branch 'master' of https://github.com/nestjs/nest 2020-07-29 10:11:31 +02:00
Kamil Myśliwiec
1e3b5f5f51 Merge branch 'Zorato-microservice-dispose-fix' 2020-07-29 10:11:16 +02:00
Kamil Myśliwiec
74f89a737f fix(microservices): close socket module on dispose 2020-07-29 10:01:09 +02:00
Kamil Mysliwiec
33912c8613 Merge pull request #5138 from nestjs/renovate/chai-4.x
chore(deps): update dependency @types/chai to v4.2.12
2020-07-29 09:24:09 +02:00
Kamil Mysliwiec
f6982aa2a3 Create codeql-analysis.yml 2020-07-29 09:07:14 +02:00
Kamil Mysliwiec
c56b1ae778 Merge pull request #5153 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.9.26
2020-07-29 08:54:12 +02:00
Kamil Mysliwiec
c516135c9a Merge pull request #5151 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v3.7.1
2020-07-28 21:17:52 +02:00
Kamil Mysliwiec
aa93a69158 Merge pull request #5152 from nestjs/renovate/uuid-8.x
fix(deps): update dependency uuid to v8.3.0
2020-07-28 21:17:33 +02:00
Kamil Mysliwiec
0a3a36377b Merge pull request #5111 from nestjs/renovate/apollo-graphql-packages
fix(deps): update apollo graphql packages to v2.16.1
2020-07-28 21:17:10 +02:00
Kamil Mysliwiec
1901a623ac Merge pull request #5157 from nestjs/renovate/ts-jest-26.x
chore(deps): update dependency ts-jest to v26.1.4
2020-07-28 21:17:00 +02:00
Renovate Bot
046ff4ccb4 fix(deps): update dependency mongoose to v5.9.26 2020-07-28 19:10:21 +00:00
Renovate Bot
a794f27dd1 chore(deps): update dependency ts-jest to v26.1.4 2020-07-28 09:20:19 +00:00
Alexey Rehov
1796109481 fix(microservices): add microservice dispose to close server on shutdown 2020-07-28 11:48:33 +03:00
Renovate Bot
936aae57e0 fix(deps): update apollo graphql packages to v2.16.1 2020-07-27 20:57:25 +00:00
Renovate Bot
e4c7628e6b fix(deps): update dependency uuid to v8.3.0 2020-07-27 19:08:51 +00:00
Renovate Bot
3c235176ed chore(deps): update typescript-eslint monorepo to v3.7.1 2020-07-27 17:55:41 +00:00
Kamil Mysliwiec
288b01a774 Merge pull request #5146 from nestjs/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.44.0
2020-07-27 08:57:05 +02:00
Renovate Bot
0fc2270092 chore(deps): update dependency webpack to v4.44.0 2020-07-24 17:36:58 +00:00
Kamil Mysliwiec
61ab2053de Merge pull request #5137 from nestjs/renovate/jest-26.x
chore(deps): update dependency @types/jest to v26.0.7
2020-07-24 11:35:10 +02:00
Renovate Bot
9023429dce chore(deps): update dependency @types/jest to v26.0.7 2020-07-24 00:25:25 +00:00
Renovate Bot
402b916d84 chore(deps): update dependency @types/chai to v4.2.12 2020-07-23 18:29:57 +00:00
danielscw
cbd3971c7d fix(microservice): handle promise return by 'registerModules' properly 2020-07-23 22:11:00 +08:00
Kamil Mysliwiec
1b43bac548 Merge pull request #5120 from nestjs/renovate/socket.io-2.x
chore(deps): update dependency @types/socket.io to v2.1.10
2020-07-23 14:26:35 +02:00
Kamil Mysliwiec
5f2027dc1e Merge pull request #5122 from nestjs/renovate/ts-morph-7.x
chore(deps): update dependency ts-morph to v7.1.3
2020-07-23 14:26:26 +02:00
Kamil Mysliwiec
a93d7d5d18 Merge pull request #5123 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v3.7.0
2020-07-23 14:26:19 +02:00
Kamil Mysliwiec
c23afcd643 Merge pull request #5132 from nestjs/renovate/graphql-tools-monorepo
fix(deps): update dependency graphql-tools to v6.0.15
2020-07-23 14:26:08 +02:00
Renovate Bot
91d5c6ec53 fix(deps): update dependency graphql-tools to v6.0.15 2020-07-22 20:15:16 +00:00
Renovate Bot
646fd79d67 chore(deps): update dependency @types/socket.io to v2.1.10 2020-07-21 19:02:15 +00:00
Renovate Bot
c120503e46 chore(deps): update typescript-eslint monorepo to v3.7.0 2020-07-20 20:51:00 +00:00
Renovate Bot
ff86d1bd22 chore(deps): update dependency ts-morph to v7.1.3 2020-07-20 19:33:40 +00:00
Kamil Mysliwiec
89d8592388 Merge pull request #5118 from nestjs/renovate/jest-26.x
chore(deps): update dependency @types/jest to v26.0.5
2020-07-20 08:59:35 +02:00
Kamil Mysliwiec
e277b3bc3a Merge pull request #5119 from nestjs/renovate/eslint-7.x
chore(deps): update dependency eslint to v7.5.0
2020-07-20 08:59:24 +02:00
Renovate Bot
535755c925 chore(deps): update dependency eslint to v7.5.0 2020-07-20 00:53:43 +00:00
Renovate Bot
fdd3da241a chore(deps): update dependency @types/jest to v26.0.5 2020-07-20 00:31:45 +00:00
Kamil Mysliwiec
c3d2add2de Merge pull request #5066 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.9.25
2020-07-19 21:13:27 +02:00
Seb
85b0dc8495 feat(common): add precondition failed exception
closes #5113
2020-07-18 07:32:46 +02:00
Renovate Bot
f21ebbc346 fix(deps): update dependency mongoose to v5.9.25 2020-07-17 18:57:21 +00:00
Kamil Mysliwiec
b39cf9f210 Merge pull request #5098 from wayou/master
fix #5093
2020-07-17 15:39:35 +02:00
Kamil Mysliwiec
be50e6d834 Merge pull request #5103 from nestjs/renovate/graphql-tools-monorepo
fix(deps): update dependency graphql-tools to v6.0.14
2020-07-17 12:46:24 +02:00
Renovate Bot
c2fec010dc fix(deps): update dependency graphql-tools to v6.0.14 2020-07-17 07:43:27 +00:00
Kamil Mysliwiec
a792e88989 Merge pull request #5067 from nestjs/renovate/grpc-proto-loader-0.x
fix(deps): update dependency @grpc/proto-loader to v0.5.5
2020-07-17 09:40:38 +02:00
Kamil Mysliwiec
9cc3b149f4 Merge pull request #5105 from nestjs/renovate/typescript-3.x
chore(deps): update dependency typescript to v3.9.7
2020-07-17 09:40:22 +02:00
Kamil Mysliwiec
6f49c76f04 Merge pull request #5106 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.16.0
2020-07-17 09:39:22 +02:00
Kamil Mysliwiec
0f7f413931 Merge pull request #5109 from nestjs/renovate/ts-jest-26.x
chore(deps): update dependency ts-jest to v26.1.3
2020-07-17 09:39:11 +02:00
Renovate Bot
c5b4e78a34 chore(deps): update dependency ts-jest to v26.1.3 2020-07-17 05:46:05 +00:00
Renovate Bot
75545d132e fix(deps): update dependency bull to v3.16.0 2020-07-16 20:50:45 +00:00
Renovate Bot
e79941fae2 chore(deps): update dependency typescript to v3.9.7 2020-07-16 20:47:43 +00:00
Kamil Mysliwiec
50a7d35f4c Merge pull request #5101 from nestjs/renovate/amqplib-0.x
chore(deps): update dependency amqplib to v0.6.0
2020-07-16 12:26:17 +02:00
Kamil Mysliwiec
b9242f7283 Merge pull request #5077 from nestjs/renovate/ts-jest-26.x
chore(deps): update dependency ts-jest to v26.1.2
2020-07-16 11:47:39 +02:00
Renovate Bot
4307da2f92 fix(deps): update dependency @grpc/proto-loader to v0.5.5 2020-07-16 09:32:44 +00:00
Kamil Mysliwiec
833f0f5532 Merge pull request #5075 from nestjs/renovate/commitlint-monorepo
chore(deps): update commitlint monorepo to v9.1.1
2020-07-16 11:26:31 +02:00
Kamil Mysliwiec
c970b50291 Merge pull request #5073 from nestjs/renovate/subscriptions-transport-ws-0.x
chore(deps): update dependency subscriptions-transport-ws to v0.9.17
2020-07-16 11:26:06 +02:00
Wayou Liu
9f80222fdc correct the type for name in another location 2020-07-16 17:07:18 +08:00
Renovate Bot
cbf2c3cf42 chore(deps): update dependency amqplib to v0.6.0 2020-07-16 08:38:07 +00:00
Renovate Bot
6cf9db941b chore(deps): update dependency ts-jest to v26.1.2 2020-07-16 08:07:26 +00:00
Kamil Mysliwiec
5a8b7bc3a0 Merge pull request #5063 from nestjs/renovate/nestjs-graphql-7.x
fix(deps): update dependency @nestjs/graphql to v7.5.5
2020-07-16 09:42:39 +02:00
Renovate Bot
ee01e60a95 chore(deps): update dependency subscriptions-transport-ws to v0.9.17 2020-07-16 07:17:07 +00:00
Kamil Mysliwiec
79ea8d2a79 Merge pull request #5099 from nestjs/dependabot/npm_and_yarn/sample/13-mongo-typeorm/lodash-4.17.19
chore(deps): bump lodash from 4.17.15 to 4.17.19 in /sample/13-mongo-typeorm
2020-07-16 09:10:25 +02:00
Kamil Mysliwiec
9b54ccb229 Merge pull request #5100 from nestjs/dependabot/npm_and_yarn/sample/01-cats-app/lodash-4.17.19
chore(deps): bump lodash from 4.17.15 to 4.17.19 in /sample/01-cats-app
2020-07-16 09:10:19 +02:00
Kamil Mysliwiec
ebe8255379 Merge pull request #5064 from nestjs/renovate/redis-2.x
chore(deps): update dependency @types/redis to v2.8.25
2020-07-16 09:09:51 +02:00
Kamil Mysliwiec
46db75dd79 Merge pull request #5074 from nestjs/renovate/mocha-8.x
chore(deps): update dependency @types/mocha to v8
2020-07-16 09:09:40 +02:00
dependabot[bot]
070df5a52b chore(deps): bump lodash from 4.17.15 to 4.17.19 in /sample/01-cats-app
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-16 07:09:37 +00:00
dependabot[bot]
445b296b76 chore(deps): bump lodash in /sample/13-mongo-typeorm
Bumps [lodash](https://github.com/lodash/lodash) from 4.17.15 to 4.17.19.
- [Release notes](https://github.com/lodash/lodash/releases)
- [Commits](https://github.com/lodash/lodash/compare/4.17.15...4.17.19)

Signed-off-by: dependabot[bot] <support@github.com>
2020-07-16 07:09:32 +00:00
Kamil Mysliwiec
408aa39c2e Merge pull request #5078 from Hwan-seok/update-webpack-sample
sample(webpack): update webpack-node-externals option property name
2020-07-16 09:09:23 +02:00
Kamil Mysliwiec
3a2ee4296a Merge pull request #5080 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v3.6.1
2020-07-16 09:09:10 +02:00
Kamil Mysliwiec
42a84cda48 Merge pull request #5081 from nestjs/renovate/docker-mysql-5.x
chore(deps): update mysql docker tag to v5.7.31
2020-07-16 09:09:01 +02:00
Kamil Mysliwiec
6e84e2f425 Merge pull request #5086 from nestjs/renovate/graphql-tools-monorepo
fix(deps): update dependency graphql-tools to v6.0.13
2020-07-16 09:08:54 +02:00
Kamil Mysliwiec
58ca5771a1 Merge pull request #5087 from nestjs/renovate/fastify-2.x
fix(deps): update dependency fastify to v2.15.2
2020-07-16 09:08:46 +02:00
Kamil Mysliwiec
4da3b5812a Merge pull request #5089 from nestjs/renovate/babel-monorepo
chore(deps): update babel monorepo to v7.10.5
2020-07-16 09:08:38 +02:00
Kamil Mysliwiec
44c8555402 Merge pull request #5091 from nestjs/renovate/ts-loader-8.x
chore(deps): update dependency ts-loader to v8.0.1
2020-07-16 09:08:23 +02:00
Wayou Liu
7e9fcc231d correct the type 2020-07-16 10:18:47 +08:00
Wayou Liu
0fb9778dad fix #5093 2020-07-16 09:43:14 +08:00
Michael Solomon
c1467c5c16 feat(common) add expected type option to validation pipe
It's possible to have multiple pipes for a single parameter, so the argument type won't necessary will be same as the original type and we need to explicitly set the type for the validation pipe
see discussion:
https://discord.com/channels/520622812742811698/520649487924985885/732209853854122055
2020-07-15 22:40:25 +03:00
Renovate Bot
77d9a9b9c4 chore(deps): update dependency ts-loader to v8.0.1 2020-07-15 06:09:10 +00:00
Renovate Bot
0b91ce9da8 chore(deps): update babel monorepo to v7.10.5 2020-07-14 18:44:35 +00:00
Renovate Bot
2af96b578e fix(deps): update dependency fastify to v2.15.2 2020-07-14 13:02:01 +00:00
Renovate Bot
7fa5082fa6 fix(deps): update dependency graphql-tools to v6.0.13 2020-07-14 11:18:40 +00:00
Renovate Bot
75216f4794 chore(deps): update mysql docker tag to v5.7.31 2020-07-14 03:24:08 +00:00
Renovate Bot
614ed4ff2f chore(deps): update typescript-eslint monorepo to v3.6.1 2020-07-13 17:37:55 +00:00
hwanseok
71cc3c0f8f sample(webpack): update webpack-node-externals option property name 2020-07-14 00:03:50 +09:00
Renovate Bot
92eef778e6 chore(deps): update commitlint monorepo to v9.1.1 2020-07-13 03:27:11 +00:00
Renovate Bot
8c59111764 chore(deps): update dependency @types/mocha to v8 2020-07-13 00:42:56 +00:00
hongyiweiwu
668e7bc80f fix(platform-fastify): sync package-lock.json 2020-07-11 13:17:11 -04:00
hongyiweiwu
a839a07713 fix(platform-fastify): added fastify-express package 2020-07-11 13:09:50 -04:00
hongyiweiwu
82021d876b fix(platform-fastify): fixed import of fastify plugins 2020-07-11 12:56:14 -04:00
hongyiweiwu
02baf5eac9 fix(fastify-adapter): added default constructor to the adapter 2020-07-11 00:33:09 -04:00
hongyiweiwu
42683d5008 fix(platform-fastify): updated version of fastify-multipart 2020-07-11 00:14:23 -04:00
hongyiweiwu
7fbe1f2c3f fix(platform-fastify): cleaned up fastify-related dependencies in root 2020-07-11 00:09:51 -04:00
hongyiweiwu
d355bc8464 fix(platform-fastify): updated dependencies in root package.json 2020-07-11 00:04:28 -04:00
hongyiweiwu
f11455d9c9 refactor(platform-fastify): supports fastify 3.0 2020-07-10 22:41:46 -04:00
Renovate Bot
d233c2fb35 chore(deps): update dependency @types/redis to v2.8.25 2020-07-10 13:43:16 +00:00
Renovate Bot
ac2827b090 fix(deps): update dependency @nestjs/graphql to v7.5.5 2020-07-10 11:59:51 +00:00
Kamil Mysliwiec
f81d65af58 Merge pull request #5061 from nestjs/renovate/nestjs-graphql-7.x
fix(deps): update dependency @nestjs/graphql to v7.5.3
2020-07-09 22:10:10 +02:00
Renovate Bot
285b14e127 fix(deps): update dependency @nestjs/graphql to v7.5.3 2020-07-09 11:45:15 +00:00
Kamil Mysliwiec
cc85f59869 Merge pull request #5059 from nestjs/renovate/nestjs-bull-0.x
fix(deps): update dependency @nestjs/bull to v0.1.2
2020-07-09 11:29:51 +02:00
Kamil Mysliwiec
3bc77d2c50 Merge pull request #5060 from nestjs/renovate/nestjs-jwt-7.x
fix(deps): update dependency @nestjs/jwt to v7.1.0
2020-07-09 11:12:23 +02:00
Renovate Bot
e158fbed4b fix(deps): update dependency @nestjs/jwt to v7.1.0 2020-07-09 08:57:32 +00:00
Renovate Bot
0d2870aeb6 fix(deps): update dependency @nestjs/bull to v0.1.2 2020-07-09 08:54:03 +00:00
Kamil Mysliwiec
54863260c8 Merge pull request #5056 from nestjs/renovate/fast-json-stringify-2.x
fix(deps): update dependency fast-json-stringify to v2.2.2
2020-07-09 10:21:51 +02:00
Kamil Mysliwiec
80b11f1cd8 Merge pull request #5058 from nestjs/renovate/ts-loader-8.x
chore(deps): update dependency ts-loader to v8
2020-07-09 10:21:09 +02:00
Kamil Mysliwiec
e3adee8249 Merge pull request #5054 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v7.3.2
2020-07-09 10:18:38 +02:00
Kamil Mysliwiec
be20f8f1bc Merge pull request #5040 from nestjs/renovate/jest-26.x
chore(deps): update dependency @types/jest to v26.0.4
2020-07-09 10:17:27 +02:00
Renovate Bot
39e0024a96 chore(deps): update dependency ts-loader to v8 2020-07-08 21:12:40 +00:00
Renovate Bot
a3cdf2ad05 fix(deps): update dependency fast-json-stringify to v2.2.2 2020-07-08 14:42:47 +00:00
Renovate Bot
52acdc5ae3 fix(deps): update nest monorepo to v7.3.2 2020-07-08 13:35:39 +00:00
Kamil Myśliwiec
d071c99a9c chore(): update README files 2020-07-08 14:52:42 +02:00
Kamil Myśliwiec
b85844c316 chore(@nestjs) publish v7.3.2 release 2020-07-08 14:49:38 +02:00
Kamil Myśliwiec
daeb99f858 Merge branch 'master' of https://github.com/nestjs/nest 2020-07-08 14:48:35 +02:00
Kamil Myśliwiec
3dca681a08 fix(core): instance links host should return the last instance 2020-07-08 14:48:24 +02:00
Kamil Myśliwiec
442e2f66a1 fix(testing): allow passing abstract http server 2020-07-08 14:48:07 +02:00
Kamil Myśliwiec
659c52f8bc fix(common): fix nan values for default value pipe 2020-07-08 14:47:50 +02:00
Kamil Mysliwiec
835e4ed94d Merge pull request #5038 from fuergaosi233/enhanceRMQGenerality
feat(microservices): ServerRMQ
2020-07-08 14:47:09 +02:00
Renovate Bot
5642ca7f5f chore(deps): update dependency @types/jest to v26.0.4 2020-07-08 12:25:24 +00:00
Kamil Mysliwiec
d9cfdd0846 Merge pull request #5039 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v3.6.0
2020-07-08 14:18:07 +02:00
Kamil Mysliwiec
83251e3a45 Merge pull request #5042 from nestjs/renovate/chai-as-promised-7.x
chore(deps): update dependency @types/chai-as-promised to v7.1.3
2020-07-08 14:17:39 +02:00
Kamil Mysliwiec
eef373c93f Merge pull request #5041 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.9.22
2020-07-08 14:16:50 +02:00
Kamil Mysliwiec
83b3b6d9d5 Merge pull request #5043 from nestjs/renovate/express-4.x
chore(deps): update dependency @types/express to v4.17.7
2020-07-08 14:12:09 +02:00
Kamil Mysliwiec
0ac56fd62a Merge pull request #5029 from getspooky/my-branch-dev
feat(packages/common/exception): Export http-version-not-supported
2020-07-08 14:11:55 +02:00
Kamil Mysliwiec
8b97f94c38 Merge pull request #5053 from nestjs/renovate/nestjs-mongoose-7.x
fix(deps): update dependency @nestjs/mongoose to v7.0.2
2020-07-08 14:11:37 +02:00
Renovate Bot
b5a7a6cda4 fix(deps): update dependency @nestjs/mongoose to v7.0.2 2020-07-08 11:44:43 +00:00
Kamil Mysliwiec
2ce40138b9 Update Readme.md 2020-07-08 13:11:46 +02:00
Renovate Bot
53070f07f3 chore(deps): update dependency @types/express to v4.17.7 2020-07-07 00:55:52 +00:00
Renovate Bot
60c92fe5a8 chore(deps): update dependency @types/chai-as-promised to v7.1.3 2020-07-07 00:34:19 +00:00
Renovate Bot
c51984e440 fix(deps): update dependency mongoose to v5.9.22 2020-07-06 23:01:21 +00:00
Renovate Bot
05cc5b83f8 chore(deps): update typescript-eslint monorepo to v3.6.0 2020-07-06 18:58:34 +00:00
Holegots
28fcfe6647 feat(microservices): ServerRMQ 2020-07-07 01:39:09 +08:00
Kamil Mysliwiec
2fc29847f3 Merge pull request #5026 from nestjs/renovate/eslint-7.x
chore(deps): update dependency eslint to v7.4.0
2020-07-06 08:43:06 +02:00
Kamil Mysliwiec
1c846e46f9 Merge pull request #5033 from nestjs/renovate/graphql-15.x
fix(deps): update dependency graphql to v15.3.0
2020-07-06 08:42:57 +02:00
Kamil Mysliwiec
42fedbb81b Merge pull request #5032 from nestjs/renovate/redis-2.x
chore(deps): update dependency @types/redis to v2.8.24
2020-07-06 08:42:31 +02:00
Kamil Mysliwiec
7f2c35174d Merge pull request #5034 from nestjs/renovate/ws-7.x
fix(deps): update dependency ws to v7.3.1
2020-07-06 08:42:09 +02:00
Renovate Bot
1931283e75 fix(deps): update dependency ws to v7.3.1 2020-07-06 02:05:17 +00:00
Renovate Bot
dcabde2fb5 fix(deps): update dependency graphql to v15.3.0 2020-07-06 02:02:41 +00:00
Renovate Bot
b4f3cdc73b chore(deps): update dependency @types/redis to v2.8.24 2020-07-06 00:55:17 +00:00
yasser
32ed43b390 feat(packages/common/exception): Export http-version-not-supported 2020-07-04 13:21:43 +02:00
Renovate Bot
9d781cde22 chore(deps): update dependency eslint to v7.4.0 2020-07-03 21:20:37 +00:00
Kamil Mysliwiec
aed62cc7bd Merge pull request #5010 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v7.3.1
2020-07-03 09:18:54 +02:00
Renovate Bot
a4252b4285 fix(deps): update nest monorepo to v7.3.1 2020-07-03 06:31:01 +00:00
Kamil Mysliwiec
171cc9d392 Merge pull request #5012 from nestjs/renovate/typescript-3.x
chore(deps): update dependency typescript to v3.9.6
2020-07-03 08:07:55 +02:00
Kamil Mysliwiec
64b7237c23 Merge pull request #5018 from nestjs/renovate/nestjs-graphql-7.x
fix(deps): update dependency @nestjs/graphql to v7.5.1
2020-07-03 08:07:48 +02:00
Kamil Mysliwiec
c97e495c11 Merge pull request #5020 from nestjs/renovate/graphql-tools-monorepo
fix(deps): update dependency graphql-tools to v6.0.12
2020-07-03 08:07:41 +02:00
Kamil Mysliwiec
1534cf5d0a Merge pull request #5022 from nestjs/renovate/redis-2.x
chore(deps): update dependency @types/redis to v2.8.23
2020-07-03 08:06:20 +02:00
Renovate Bot
8436c27a65 fix(deps): update dependency @nestjs/graphql to v7.5.1 2020-07-02 19:41:50 +00:00
Renovate Bot
ab0b29b627 chore(deps): update dependency @types/redis to v2.8.23 2020-07-02 16:41:05 +00:00
Renovate Bot
6d034f5c1f fix(deps): update dependency graphql-tools to v6.0.12 2020-07-02 14:49:44 +00:00
Renovate Bot
1ddab1b2bb chore(deps): update dependency typescript to v3.9.6 2020-07-02 08:11:49 +00:00
Kamil Mysliwiec
364a963426 Merge pull request #5013 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.9.21
2020-07-02 09:06:33 +02:00
Kamil Mysliwiec
72ff7ae40e Merge pull request #5014 from nestjs/renovate/rxjs-compat-6.x
chore(deps): update dependency rxjs-compat to v6.6.0
2020-07-02 09:06:25 +02:00
Kamil Mysliwiec
184fffe043 Merge pull request #5015 from nestjs/renovate/rxjs-6.x
fix(deps): update dependency rxjs to v6.6.0
2020-07-02 09:06:19 +02:00
Kamil Myśliwiec
d92e85f297 chore(@nestjs) publish v7.3.1 release 2020-07-02 09:05:07 +02:00
Kamil Myśliwiec
acce5e953d fix(platform-fastify): catch close errors when server is closed already 2020-07-02 09:04:00 +02:00
Kamil Myśliwiec
dfd7846779 fix(common): use is nil in cache interceptor to prevent breaking changes 2020-07-02 09:03:41 +02:00
Renovate Bot
d895c367fe fix(deps): update dependency rxjs to v6.6.0 2020-07-02 02:43:33 +00:00
Renovate Bot
b9cf26708e chore(deps): update dependency rxjs-compat to v6.6.0 2020-07-02 02:16:36 +00:00
Renovate Bot
18979b3b46 fix(deps): update dependency mongoose to v5.9.21 2020-07-01 22:10:06 +00:00
Kamil Mysliwiec
877cc3e4d6 Merge pull request #4909 from Amorites/feat/client-registerAsync
feat(microservices): ClientsModule.registerAsync
2020-07-01 14:41:22 +02:00
Kamil Mysliwiec
feeed43c56 Merge pull request #4896 from nestjs/renovate/mocha-8.x
chore(deps): update dependency mocha to v8
2020-07-01 14:21:30 +02:00
Kamil Myśliwiec
a10bb787b8 chore(): update README files 2020-07-01 14:17:35 +02:00
Kamil Myśliwiec
ca7e348478 chore(@nestjs) publish v7.3.0 release 2020-07-01 14:14:39 +02:00
Kamil Myśliwiec
67e15afbf3 Merge branch 'master' of https://github.com/nestjs/nest 2020-07-01 14:05:42 +02:00
Kamil Myśliwiec
d59c7b87bd feat(core): add instance links, introspection and expose request provider 2020-07-01 14:05:32 +02:00
Kamil Mysliwiec
cf5e5bceca Merge pull request #5005 from nestjs/renovate/apollo-graphql-packages
fix(deps): update apollo graphql packages to v2.15.1
2020-07-01 12:11:24 +02:00
Renovate Bot
b5e8197500 fix(deps): update apollo graphql packages to v2.15.1 2020-07-01 09:36:55 +00:00
Kamil Mysliwiec
17969748e9 Merge pull request #5004 from nestjs/renovate/bull-3.x
fix(deps): update dependency bull to v3.15.0
2020-07-01 10:10:10 +02:00
Kamil Mysliwiec
8836251c88 Merge pull request #5006 from nestjs/renovate/babel-monorepo
chore(deps): update babel monorepo to v7.10.4
2020-07-01 10:09:59 +02:00
Kamil Mysliwiec
d74e173e59 Merge pull request #5007 from nestjs/renovate/fast-json-stringify-2.x
fix(deps): update dependency fast-json-stringify to v2.2.1
2020-07-01 10:09:50 +02:00
Kamil Mysliwiec
9511984f2c Merge pull request #5009 from nestjs/renovate/artillery-1.x
chore(deps): update dependency artillery to v1.6.1
2020-07-01 10:09:40 +02:00
Renovate Bot
eb7decd35c chore(deps): update dependency artillery to v1.6.1 2020-06-30 16:46:14 +00:00
Renovate Bot
cd6555edd3 fix(deps): update dependency fast-json-stringify to v2.2.1 2020-06-30 13:38:35 +00:00
Renovate Bot
5b15dbfbaa chore(deps): update babel monorepo to v7.10.4 2020-06-30 13:36:32 +00:00
Renovate Bot
8dcced7256 fix(deps): update dependency bull to v3.15.0 2020-06-30 11:22:18 +00:00
Kamil Mysliwiec
cf10752f40 Merge pull request #5000 from nestjs/renovate/supertest-2.x
chore(deps): update dependency @types/supertest to v2.0.10
2020-06-30 08:55:56 +02:00
Kamil Mysliwiec
1789753248 Merge pull request #5001 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v3.5.0
2020-06-30 08:55:44 +02:00
Kamil Mysliwiec
fb62ffe48c Merge pull request #5003 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.22.3
2020-06-30 08:55:36 +02:00
Renovate Bot
f38223ade4 fix(deps): update dependency sequelize to v5.22.3 2020-06-30 06:35:28 +00:00
Renovate Bot
f95b219a3c chore(deps): update typescript-eslint monorepo to v3.5.0 2020-06-29 21:12:27 +00:00
Renovate Bot
b4adc2c771 chore(deps): update dependency @types/supertest to v2.0.10 2020-06-29 20:00:39 +00:00
Kamil Mysliwiec
d56267fb99 Merge pull request #4992 from nestjs/renovate/nestjs-passport-7.x
fix(deps): update dependency @nestjs/passport to v7.1.0
2020-06-29 21:40:50 +02:00
Kamil Mysliwiec
2971ba6a3c Merge pull request #4994 from nestjs/renovate/fastify-2.x
fix(deps): update dependency fastify to v2.15.1
2020-06-29 21:40:44 +02:00
Kamil Mysliwiec
f7e4885c2d Merge pull request #4995 from nestjs/renovate/graphql-15.x
fix(deps): update dependency graphql to v15.2.0
2020-06-29 21:40:32 +02:00
Kamil Mysliwiec
cce0bc6407 Merge pull request #4998 from nestjs/renovate/mongoose-5.x
chore(deps): update dependency @types/mongoose to v5.7.29
2020-06-29 21:40:25 +02:00
Kamil Mysliwiec
ed4becbe99 Merge pull request #4999 from nestjs/renovate/ws-7.x
chore(deps): update dependency @types/ws to v7.2.6
2020-06-29 21:40:10 +02:00
Renovate Bot
3cac1ca2b2 chore(deps): update dependency @types/ws to v7.2.6 2020-06-29 17:26:41 +00:00
Renovate Bot
9059c3d5ac chore(deps): update dependency @types/mongoose to v5.7.29 2020-06-29 17:18:49 +00:00
Renovate Bot
3433ab06f4 fix(deps): update dependency graphql to v15.2.0 2020-06-29 14:28:31 +00:00
Renovate Bot
55bd8ab1c7 fix(deps): update dependency fastify to v2.15.1 2020-06-29 14:24:19 +00:00
Kamil Mysliwiec
2e5eb4b8e9 Merge pull request #4993 from nestjs/renovate/nestjs-swagger-4.x
fix(deps): update dependency @nestjs/swagger to v4.5.12
2020-06-29 14:23:27 +02:00
Renovate Bot
59ad650c8f fix(deps): update dependency @nestjs/swagger to v4.5.12 2020-06-29 12:12:52 +00:00
Renovate Bot
764d26b28e fix(deps): update dependency @nestjs/passport to v7.1.0 2020-06-29 12:11:57 +00:00
Kamil Mysliwiec
2f29d7790b Merge pull request #4989 from nestjs/renovate/eslint-plugin-import-2.x
chore(deps): update dependency eslint-plugin-import to v2.22.0
2020-06-29 13:10:21 +02:00
Kamil Mysliwiec
6a53d1e131 Merge pull request #4951 from nestjs/renovate/jest-monorepo
chore(deps): update dependency jest to v26.1.0
2020-06-29 13:09:37 +02:00
Kamil Mysliwiec
d37f68d05e Merge pull request #4972 from rraziel/module-metadata-export
chore(common): export the ModuleMetadata type
2020-06-29 13:09:25 +02:00
Renovate Bot
72c16ccd9a chore(deps): update dependency eslint-plugin-import to v2.22.0 2020-06-29 00:59:57 +00:00
Kamil Mysliwiec
3f9be96815 Update Readme.md 2020-06-27 10:17:16 +02:00
Kamil Mysliwiec
7bcf90cb8c Merge pull request #4943 from nestjs/renovate/typescript-eslint-monorepo
chore(deps): update typescript-eslint monorepo to v3.4.0
2020-06-27 09:50:45 +02:00
Kamil Mysliwiec
f4f85f254c Merge pull request #4978 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.22.2
2020-06-27 09:50:32 +02:00
Renovate Bot
fc625f2957 fix(deps): update dependency sequelize to v5.22.2 2020-06-27 05:21:02 +00:00
Renovate Bot
61b6c7df25 chore(deps): update dependency jest to v26.1.0 2020-06-26 16:53:05 +00:00
Kamil Mysliwiec
79caf671ea Merge pull request #4977 from nestjs/revert-4958-renovate/sequelize-6.x
Revert "fix(deps): update dependency sequelize to v6"
2020-06-26 17:22:15 +02:00
Kamil Mysliwiec
e24f23d030 Revert "fix(deps): update dependency sequelize to v6" 2020-06-26 17:22:02 +02:00
Renovate Bot
d184f906ff chore(deps): update typescript-eslint monorepo to v3.4.0 2020-06-26 13:06:26 +00:00
Kamil Mysliwiec
7efc27c186 Merge pull request #4960 from nestjs/renovate/nestjs-graphql-7.x
fix(deps): update dependency @nestjs/graphql to v7.4.6
2020-06-26 14:26:33 +02:00
Kamil Mysliwiec
27de22fdfb Merge pull request #4966 from nestjs/renovate/mongoose-5.x
chore(deps): update dependency @types/mongoose to v5.7.28
2020-06-26 14:26:25 +02:00
Renovate Bot
2342c65efc chore(deps): update dependency @types/mongoose to v5.7.28 2020-06-26 11:47:44 +00:00
Renovate Bot
7d03b2d78d fix(deps): update dependency @nestjs/graphql to v7.4.6 2020-06-26 11:42:03 +00:00
Kamil Mysliwiec
c0e6139419 Merge pull request #4973 from nestjs/renovate/graphql-tools-monorepo
fix(deps): update dependency graphql-tools to v6.0.11
2020-06-26 13:34:18 +02:00
Kamil Mysliwiec
f574663414 Merge pull request #4964 from nestjs/renovate/imports-loader-1.x
chore(deps): update dependency imports-loader to v1.1.0
2020-06-26 13:34:05 +02:00
Kamil Mysliwiec
7f3a9955be Merge pull request #4961 from nestjs/renovate/jest-26.x
chore(deps): update dependency @types/jest to v26.0.3
2020-06-26 13:33:55 +02:00
Kamil Mysliwiec
cc828d493a Merge pull request #4958 from nestjs/renovate/sequelize-6.x
fix(deps): update dependency sequelize to v6
2020-06-26 13:33:38 +02:00
Kamil Mysliwiec
dda9d52c4c Merge pull request #4925 from nestjs/renovate/nest-monorepo
chore(deps): update nest monorepo
2020-06-26 13:33:27 +02:00
Renovate Bot
1194fbae9f fix(deps): update dependency sequelize to v6 2020-06-26 08:39:46 +00:00
Renovate Bot
b3542806d8 fix(deps): update dependency graphql-tools to v6.0.11 2020-06-26 00:01:03 +00:00
Raziel
3991fb9525 chore(common): export the ModuleMetadata type 2020-06-26 01:19:23 +02:00
Renovate Bot
91cf3190b3 chore(deps): update dependency @types/jest to v26.0.3 2020-06-24 17:10:49 +00:00
Renovate Bot
1ddeaa2aad chore(deps): update dependency imports-loader to v1.1.0 2020-06-24 16:49:23 +00:00
Kamil Mysliwiec
2bdcdb5814 Merge pull request #4957 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.22.0
2020-06-24 12:26:49 +02:00
Kamil Mysliwiec
bb4ed69b0e Merge pull request #4959 from nestjs/renovate/jest-26.x
chore(deps): update dependency @types/jest to v26.0.1
2020-06-24 12:26:37 +02:00
Renovate Bot
b69f3be0aa chore(deps): update dependency @types/jest to v26.0.1 2020-06-24 09:45:10 +00:00
Renovate Bot
96136f72e7 fix(deps): update dependency sequelize to v5.22.0 2020-06-24 08:30:18 +00:00
Renovate Bot
724403067b chore(deps): update nest monorepo 2020-06-24 08:29:13 +00:00
Kamil Mysliwiec
12b807f149 Merge pull request #4950 from nestjs/renovate/nestjs-graphql-7.x
fix(deps): update dependency @nestjs/graphql to v7.4.2
2020-06-24 08:33:47 +02:00
Kamil Mysliwiec
07237a07c7 Merge pull request #4955 from nestjs/renovate/uuid-8.x
fix(deps): update dependency uuid to v8.2.0
2020-06-24 08:33:37 +02:00
Renovate Bot
0e7197c828 fix(deps): update dependency uuid to v8.2.0 2020-06-23 21:13:04 +00:00
Renovate Bot
7c64c77031 fix(deps): update dependency @nestjs/graphql to v7.4.2 2020-06-23 13:41:01 +00:00
Renovate Bot
6e2033ba7e chore(deps): update dependency mocha to v8 2020-06-23 13:09:26 +00:00
Kamil Mysliwiec
ba2bdea524 Merge pull request #4942 from nestjs/renovate/nestjs-serve-static-2.x
fix(deps): update dependency @nestjs/serve-static to v2.1.3
2020-06-23 13:23:25 +02:00
Kamil Mysliwiec
12b9940b65 Update config.yml 2020-06-23 12:59:41 +02:00
Kamil Mysliwiec
8a02e39001 Merge pull request #4926 from nestjs/renovate/ts-morph-7.x
chore(deps): update dependency ts-morph to v7.1.2
2020-06-23 12:58:26 +02:00
Kamil Mysliwiec
b82f6f6b5b Merge pull request #4947 from nestjs/renovate/fast-json-stringify-2.x
fix(deps): update dependency fast-json-stringify to v2.2.0
2020-06-23 12:58:12 +02:00
Kamil Mysliwiec
6a754515a1 Merge pull request #4893 from nestjs/renovate/jest-26.x
chore(deps): update dependency @types/jest to v26
2020-06-23 12:57:49 +02:00
Kamil Mysliwiec
517cad59e9 Merge pull request #4933 from nestjs/renovate/babel-monorepo
chore(deps): update babel monorepo to v7.10.3
2020-06-23 12:57:36 +02:00
Kamil Mysliwiec
2714f57fcf Merge pull request #4936 from nestjs/renovate/fastify-2.x
fix(deps): update dependency fastify to v2.15.0
2020-06-23 12:57:30 +02:00
Kamil Mysliwiec
e91d1b1ced Merge pull request #4937 from nestjs/renovate/major-commitlint-monorepo
chore(deps): update commitlint monorepo to v9 (major)
2020-06-23 12:57:23 +02:00
Kamil Mysliwiec
6e49223e4c Merge pull request #4940 from nestjs/renovate/ts-jest-26.x
chore(deps): update dependency ts-jest to v26.1.1
2020-06-23 12:57:18 +02:00
Kamil Mysliwiec
0b33f8fe31 Merge pull request #4941 from nestjs/renovate/nestjs-swagger-4.x
fix(deps): update dependency @nestjs/swagger to v4.5.11
2020-06-23 12:57:08 +02:00
Kamil Mysliwiec
b315162269 Merge pull request #4946 from nestjs/renovate/eslint-7.x
chore(deps): update dependency eslint to v7.3.1
2020-06-23 12:56:53 +02:00
Kamil Mysliwiec
cd21b2ff93 Merge pull request #4948 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.9.20
2020-06-23 12:56:44 +02:00
Renovate Bot
4a1eed1e44 chore(deps): update dependency eslint to v7.3.1 2020-06-23 03:49:43 +00:00
Renovate Bot
09a3ad2950 fix(deps): update dependency mongoose to v5.9.20 2020-06-22 21:32:52 +00:00
Renovate Bot
5e9d5c57ed fix(deps): update dependency fast-json-stringify to v2.2.0 2020-06-22 19:52:58 +00:00
Renovate Bot
d7c69707f6 fix(deps): update dependency @nestjs/serve-static to v2.1.3 2020-06-22 15:19:22 +00:00
Renovate Bot
f6114abea9 fix(deps): update dependency @nestjs/swagger to v4.5.11 2020-06-22 15:13:19 +00:00
Renovate Bot
33d6c393e0 chore(deps): update dependency ts-jest to v26.1.1 2020-06-22 08:02:08 +00:00
Renovate Bot
97edbe0c2a chore(deps): update commitlint monorepo to v9 2020-06-22 00:39:35 +00:00
Renovate Bot
2e9fcb1a42 fix(deps): update dependency fastify to v2.15.0 2020-06-22 00:37:44 +00:00
Renovate Bot
2581903818 chore(deps): update babel monorepo to v7.10.3 2020-06-19 21:25:56 +00:00
Renovate Bot
ab4295ed02 chore(deps): update dependency ts-morph to v7.1.2 2020-06-18 22:05:21 +00:00
Kamil Mysliwiec
f05786d8c1 Merge pull request #4924 from nestjs/renovate/webpack-cli-3.x
chore(deps): update dependency webpack-cli to v3.3.12
2020-06-18 16:17:50 +02:00
Kamil Mysliwiec
772e589327 Merge pull request #4923 from nestjs/renovate/mongoose-5.x
chore(deps): update dependency @types/mongoose to v5.7.27
2020-06-18 16:17:40 +02:00
Kamil Myśliwiec
82d0171bcf Merge branch 'elsangedy-patch-1' 2020-06-18 16:05:06 +02:00
Renovate Bot
7d209e3d8f chore(deps): update dependency webpack-cli to v3.3.12 2020-06-18 14:03:39 +00:00
Renovate Bot
a718809f30 chore(deps): update dependency @types/mongoose to v5.7.27 2020-06-18 13:58:39 +00:00
Renovate Bot
25ba42cca2 chore(deps): update dependency @types/jest to v26 2020-06-18 13:51:52 +00:00
amorites
d03830e998 feat(microservices): ClientsModule.registerAsync 2020-06-18 21:18:38 +08:00
135 changed files with 84383 additions and 44855 deletions

View File

@@ -70,10 +70,10 @@ jobs:
docker:
- image: circleci/node:10
test_node_8:
test_node_14:
<<: *unit-tests-template
docker:
- image: circleci/node:8
- image: circleci/node:14
lint:
working_directory: ~/nest
@@ -160,15 +160,15 @@ workflows:
build-and-test:
jobs:
- build
- test_node_14:
requires:
- build
- test_node_12:
requires:
- build
- test_node_10:
requires:
- build
- test_node_8:
requires:
- build
- lint:
requires:
- build

54
.github/workflows/codeql-analysis.yml vendored Normal file
View File

@@ -0,0 +1,54 @@
name: "CodeQL"
on:
push:
branches: [master, ]
pull_request:
# The branches below must be a subset of the branches above
branches: [master]
schedule:
- cron: '0 17 * * 4'
jobs:
analyse:
name: Analyse
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v2
with:
# We must fetch at least the immediate parents so that if this is
# a pull request then we can checkout the head.
fetch-depth: 2
# If this run was triggered by a pull request event, then checkout
# the head of the pull request instead of the merge commit.
- run: git checkout HEAD^2
if: ${{ github.event_name == 'pull_request' }}
# Initializes the CodeQL tools for scanning.
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
# Override language selection by uncommenting this and choosing your languages
# with:
# languages: go, javascript, csharp, python, cpp, java
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
# If this step fails, then you should remove it and run the build manually (see below)
- name: Autobuild
uses: github/codeql-action/autobuild@v1
# Command-line programs to run using the OS shell.
# 📚 https://git.io/JvXDl
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
# and modify them (or add more) to build your code if your project
# uses a compiled language
#- run: |
# make bootstrap
# make release
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1

View File

@@ -54,9 +54,11 @@ With official support, you can get expert help straight from Nest core team. We
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
#### Principal Sponsor
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="220" /></a>
#### Principal Sponsors
<table style="text-align:center;"><tr><td>
<a href="https://github.com/Sanofi-IADC" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/sanofi.png" width="180" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="180" valign="middle" /></a></td>
</tr></table>
#### Silver Sponsors
@@ -84,7 +86,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://www.codeguesser.co.uk" target="_blank"><img src="https://nestjs.com/img/codeguesser-logo.svg" width="120" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://tekhattan.com" target="_blank"><img src="https://nestjs.com/img/tekhattan-logo.png" width="110" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://f-a.nz/" target="_blank"><img src="https://nestjs.com/img/franz.svg" width="80" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td></tr></table>
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td>
<td align="center" valign="middle">
<a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" width="97" valign="middle" /></a> </td></tr>
<tr><td align="center" valign="middle"><a href="https://sanyodigital.com/" target="_blank"><img src="https://nestjs.com/img/sanyo-digital.png" width="130" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://vpn-review.com/vpn-for-torrenting" target="_blank"><img src="https://nestjs.com/img/vpn-review-logo.png" width="85" valign="middle" /></a></td>
</tr></table>
## Backers

View File

@@ -23,7 +23,7 @@ services:
- "9001:9001"
restart: always
mysql:
image: mysql:5.7.30
image: mysql:5.7.31
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test
@@ -57,7 +57,7 @@ services:
kafka:
container_name: test-kafka
hostname: kafka
image: confluentinc/cp-kafka:5.3.2
image: confluentinc/cp-kafka:5.5.1
depends_on:
- zookeeper
ports:

View File

@@ -3,7 +3,6 @@ import {
NestFastifyApplication,
} from '@nestjs/platform-fastify';
import { Test } from '@nestjs/testing';
import { fail } from 'assert';
import { expect } from 'chai';
import { ApplicationModule } from '../src/app.module';
@@ -54,19 +53,14 @@ describe('Hello world (fastify adapter)', () => {
method: 'GET',
url: '/host',
})
.then(
({ payload }) => {
fail(`Unexpected success: ${payload}`);
},
err => {
expect(err.getResponse()).to.be.eql({
error: 'Internal Server Error',
message:
'HTTP adapter does not support filtering on host: ":tenant.example.com"',
statusCode: 500,
});
},
);
.then(({ payload }) => {
expect(JSON.parse(payload)).to.be.eql({
error: 'Internal Server Error',
message:
'HTTP adapter does not support filtering on host: ":tenant.example.com"',
statusCode: 500,
});
});
});
afterEach(async () => {

View File

@@ -0,0 +1,34 @@
import { Scope } from '@nestjs/common';
import { ModuleRef } from '@nestjs/core';
import { Test, TestingModule } from '@nestjs/testing';
import { expect } from 'chai';
import { ScopedModule, STATIC_FACTORY } from '../src/scoped/scoped.module';
import { ScopedService } from '../src/scoped/scoped.service';
import { TransientService } from '../src/scoped/transient.service';
describe('Providers introspection', () => {
let testingModule: TestingModule;
let moduleRef: ModuleRef;
beforeEach(async () => {
testingModule = await Test.createTestingModule({
imports: [ScopedModule],
}).compile();
moduleRef = testingModule.get(ModuleRef);
});
it('should properly introspect a transient provider', async () => {
const introspectionResult = moduleRef.introspect(TransientService);
expect(introspectionResult.scope).to.be.equal(Scope.TRANSIENT);
});
it('should properly introspect a singleton provider', async () => {
const introspectionResult = moduleRef.introspect(STATIC_FACTORY);
expect(introspectionResult.scope).to.be.equal(Scope.DEFAULT);
});
it('should properly introspect a request-scoped provider', async () => {
const introspectionResult = moduleRef.introspect(ScopedService);
expect(introspectionResult.scope).to.be.equal(Scope.REQUEST);
});
});

View File

@@ -54,13 +54,19 @@ describe('Scoped Instances', () => {
it('should dynamically resolve request-scoped provider', async () => {
const request1 = await testingModule.resolve(ScopedService);
const request2 = await testingModule.resolve(ScopedService);
const request3 = await testingModule.resolve(ScopedService, { id: 1 });
const ctxId = { id: 1 };
const requestProvider = { host: 'localhost' };
testingModule.registerRequestByContextId(requestProvider, ctxId);
const request3 = await testingModule.resolve(ScopedService, ctxId);
const requestFactory = await testingModule.resolve(REQUEST_SCOPED_FACTORY);
expect(request1).to.be.instanceOf(ScopedService);
expect(request2).to.be.instanceOf(ScopedService);
expect(request3).to.not.be.equal(request2);
expect(requestFactory).to.be.true;
expect(request3.request).to.be.equal(requestProvider);
});
it('should dynamically resolve request-scoped controller', async () => {

View File

@@ -1,4 +1,7 @@
import { Injectable, Scope } from '@nestjs/common';
import { Inject, Injectable, Scope } from '@nestjs/common';
import { REQUEST } from '@nestjs/core';
@Injectable({ scope: Scope.REQUEST })
export class ScopedService {}
export class ScopedService {
constructor(@Inject(REQUEST) public readonly request) {}
}

View File

@@ -50,6 +50,20 @@ describe('RPC transport', () => {
.expect(200, '15');
});
it(`/POST (useFactory client)`, () => {
return request(server)
.post('/useFactory?command=sum')
.send([1, 2, 3, 4, 5])
.expect(200, '15');
});
it(`/POST (useClass client)`, () => {
return request(server)
.post('/useClass?command=sum')
.send([1, 2, 3, 4, 5])
.expect(200, '15');
});
it(`/POST (concurrent)`, () => {
return request(server)
.post('/concurrent')

View File

@@ -1,4 +1,11 @@
import { Body, Controller, HttpCode, Post, Query } from '@nestjs/common';
import {
Body,
Controller,
HttpCode,
Inject,
Post,
Query,
} from '@nestjs/common';
import {
Client,
ClientProxy,
@@ -11,6 +18,10 @@ import { scan } from 'rxjs/operators';
@Controller()
export class AppController {
constructor(
@Inject('USE_CLASS_CLIENT') private useClassClient: ClientProxy,
@Inject('USE_FACTORY_CLIENT') private useFactoryClient: ClientProxy,
) {}
static IS_NOTIFIED = false;
@Client({ transport: Transport.TCP })
@@ -22,6 +33,24 @@ export class AppController {
return this.client.send<number>({ cmd }, data);
}
@Post('useFactory')
@HttpCode(200)
callWithClientUseFactory(
@Query('command') cmd,
@Body() data: number[],
): Observable<number> {
return this.useFactoryClient.send<number>({ cmd }, data);
}
@Post('useClass')
@HttpCode(200)
callWithClientUseClass(
@Query('command') cmd,
@Body() data: number[],
): Observable<number> {
return this.useClassClient.send<number>({ cmd }, data);
}
@Post('stream')
@HttpCode(200)
stream(@Body() data: number[]): Observable<number> {

View File

@@ -1,7 +1,59 @@
import { Module } from '@nestjs/common';
import { Module, Injectable } from '@nestjs/common';
import { AppController } from './app.controller';
import {
ClientsModule,
Transport,
ClientsModuleOptionsFactory,
ClientOptions,
} from '@nestjs/microservices';
@Injectable()
class ConfigService {
private readonly config = {
transport: Transport.TCP,
};
get(key: string) {
return this.config[key];
}
}
@Module({
providers: [ConfigService],
exports: [ConfigService],
})
class ConfigModule {}
@Injectable()
class ClientOptionService implements ClientsModuleOptionsFactory {
constructor(private readonly configService: ConfigService) {}
createClientOptions(): Promise<ClientOptions> | ClientOptions {
return {
transport: this.configService.get('transport'),
options: {},
};
}
}
@Module({
imports: [
ClientsModule.registerAsync([
{
imports: [ConfigModule],
name: 'USE_FACTORY_CLIENT',
useFactory: (configService: ConfigService) => ({
transport: configService.get('transport'),
options: {},
}),
inject: [ConfigService],
},
{
imports: [ConfigModule],
name: 'USE_CLASS_CLIENT',
useClass: ClientOptionService,
inject: [ConfigService],
},
]),
],
controllers: [AppController],
})
export class ApplicationModule {}

View File

@@ -3,5 +3,5 @@
"packages": [
"packages/*"
],
"version": "7.2.0"
"version": "7.4.4"
}

6803
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/core",
"version": "7.0.11",
"version": "7.4.0",
"description": "Modern, fast, powerful node.js web framework",
"homepage": "https://nestjs.com",
"repository": {
@@ -52,54 +52,53 @@
},
"dependencies": {
"@nuxtjs/opencollective": "0.2.2",
"axios": "0.19.2",
"class-transformer": "0.2.3",
"axios": "0.20.0",
"class-transformer": "0.3.1",
"class-validator": "0.12.2",
"cli-color": "2.0.0",
"cors": "2.8.5",
"express": "4.17.1",
"fast-json-stringify": "2.1.0",
"fast-json-stringify": "2.2.3",
"fast-safe-stringify": "2.0.7",
"iterare": "1.2.1",
"object-hash": "2.0.3",
"path-to-regexp": "3.2.0",
"reflect-metadata": "0.1.13",
"rxjs": "6.5.5",
"rxjs": "6.6.2",
"socket.io": "2.3.0",
"uuid": "8.1.0",
"tslib": "2.0.0"
"uuid": "8.3.0",
"tslib": "2.0.1"
},
"devDependencies": {
"@codechecks/client": "0.1.10",
"@commitlint/cli": "8.3.5",
"@commitlint/config-angular": "8.3.4",
"@grpc/proto-loader": "0.5.4",
"@nestjs/graphql": "7.4.1",
"@nestjs/mongoose": "7.0.1",
"@nestjs/typeorm": "7.1.0",
"@commitlint/cli": "9.1.2",
"@commitlint/config-angular": "9.1.2",
"@grpc/proto-loader": "0.5.5",
"@nestjs/graphql": "7.6.0",
"@nestjs/mongoose": "7.0.2",
"@nestjs/typeorm": "7.1.1",
"@types/amqplib": "0.5.13",
"@types/bytes": "3.1.0",
"@types/cache-manager": "2.10.3",
"@types/chai": "4.2.11",
"@types/chai-as-promised": "7.1.2",
"@types/cors": "2.8.6",
"@types/express": "4.17.6",
"@types/fastify-cors": "2.1.0",
"@types/chai": "4.2.12",
"@types/chai-as-promised": "7.1.3",
"@types/cors": "2.8.7",
"@types/express": "4.17.7",
"@types/gulp": "4.0.6",
"@types/mocha": "7.0.2",
"@types/mongoose": "5.7.26",
"@types/mocha": "8.0.3",
"@types/mongoose": "5.7.36",
"@types/node": "10.17.3",
"@types/redis": "2.8.22",
"@types/redis": "2.8.26",
"@types/reflect-metadata": "0.0.5",
"@types/sinon": "9.0.4",
"@types/socket.io": "2.1.8",
"@types/ws": "7.2.5",
"@typescript-eslint/eslint-plugin": "3.3.0",
"@typescript-eslint/parser": "3.3.0",
"@types/sinon": "9.0.5",
"@types/socket.io": "2.1.11",
"@types/ws": "7.2.6",
"@typescript-eslint/eslint-plugin": "3.10.1",
"@typescript-eslint/parser": "3.10.1",
"amqp-connection-manager": "3.2.0",
"amqplib": "0.5.6",
"apollo-server-express": "2.15.0",
"artillery": "1.6.0",
"amqplib": "0.6.0",
"apollo-server-express": "2.17.0",
"artillery": "1.6.1",
"awesome-typescript-loader": "5.2.1",
"body-parser": "1.19.0",
"bytes": "3.1.0",
@@ -108,23 +107,23 @@
"chai-as-promised": "7.1.1",
"clang-format": "1.4.0",
"commitlint-circle": "1.0.0",
"concurrently": "5.2.0",
"conventional-changelog": "3.1.21",
"concurrently": "5.3.0",
"conventional-changelog": "3.1.23",
"core-js": "3.6.5",
"coveralls": "3.1.0",
"delete-empty": "3.0.0",
"engine.io-client": "3.4.3",
"eslint": "7.2.0",
"eslint": "7.7.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-import": "2.21.2",
"eslint-plugin-import": "2.22.0",
"fancy-log": "1.3.3",
"fastify": "2.14.1",
"fastify-cors": "3.0.3",
"fastify-formbody": "3.2.0",
"fastify-multipart": "1.0.6",
"fastify-static": "2.7.0",
"graphql": "15.1.0",
"graphql-tools": "6.0.10",
"fastify": "3.3.0",
"fastify-cors": "4.1.0",
"fastify-formbody": "5.0.0",
"fastify-multipart": "3.1.0",
"fastify-static": "3.2.0",
"graphql": "15.3.0",
"graphql-tools": "6.1.0",
"grpc": "1.24.3",
"gulp": "4.0.2",
"gulp-clang-format": "1.0.27",
@@ -133,35 +132,38 @@
"gulp-typescript": "5.0.1",
"gulp-watch": "5.0.1",
"husky": "4.2.5",
"imports-loader": "1.0.0",
"imports-loader": "1.1.0",
"json-loader": "0.5.7",
"kafkajs": "1.12.0",
"lerna": "2.11.0",
"lint-staged": "10.2.11",
"light-my-request": "4.0.2",
"lint-staged": "10.2.13",
"markdown-table": "2.0.0",
"merge-graphql-schemas": "1.7.8",
"mocha": "7.1.2",
"mongoose": "5.9.19",
"mqtt": "4.1.0",
"middie": "5.1.0",
"mocha": "8.1.3",
"mongoose": "5.10.2",
"mqtt": "4.2.1",
"multer": "1.4.2",
"mysql": "2.18.1",
"nats": "1.4.9",
"nats": "1.4.12",
"nodemon": "2.0.4",
"nyc": "15.1.0",
"prettier": "2.0.5",
"point-of-view": "4.4.0",
"prettier": "2.1.1",
"redis": "3.0.2",
"rxjs-compat": "6.5.5",
"sinon": "9.0.2",
"rxjs-compat": "6.6.2",
"sinon": "9.0.3",
"sinon-chai": "3.5.0",
"socket.io-client": "2.3.0",
"subscriptions-transport-ws": "0.9.16",
"subscriptions-transport-ws": "0.9.18",
"supertest": "4.0.2",
"ts-morph": "7.1.1",
"ts-node": "8.10.2",
"ts-morph": "8.1.0",
"ts-node": "9.0.0",
"typeorm": "0.2.25",
"typescript": "3.9.5",
"typescript": "4.0.2",
"wrk": "1.2.0",
"ws": "7.3.0"
"ws": "7.3.1"
},
"engines": {
"node": ">= 10.13.0"
@@ -192,7 +194,7 @@
"packages/microservices/microservices-module.ts",
"packages/core/middleware/middleware-module.ts",
"packages/core/injector/module-ref.ts",
"packages/core/injector/container-scanner.ts",
"packages/core/injector/instance-links-host.ts",
"packages/common/cache/**/*",
"packages/common/serializer/**/*",
"packages/common/services/logger.service.ts"

View File

@@ -54,9 +54,11 @@ With official support, you can get expert help straight from Nest core team. We
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
#### Principal Sponsor
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="220" /></a>
#### Principal Sponsors
<table style="text-align:center;"><tr><td>
<a href="https://github.com/Sanofi-IADC" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/sanofi.png" width="180" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="180" valign="middle" /></a></td>
</tr></table>
#### Silver Sponsors
@@ -84,7 +86,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://www.codeguesser.co.uk" target="_blank"><img src="https://nestjs.com/img/codeguesser-logo.svg" width="120" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://tekhattan.com" target="_blank"><img src="https://nestjs.com/img/tekhattan-logo.png" width="110" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://f-a.nz/" target="_blank"><img src="https://nestjs.com/img/franz.svg" width="80" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td></tr></table>
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td>
<td align="center" valign="middle">
<a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" width="97" valign="middle" /></a> </td></tr>
<tr><td align="center" valign="middle"><a href="https://sanyodigital.com/" target="_blank"><img src="https://nestjs.com/img/sanyo-digital.png" width="130" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://vpn-review.com/vpn-for-torrenting" target="_blank"><img src="https://nestjs.com/img/vpn-review-logo.png" width="85" valign="middle" /></a></td>
</tr></table>
## Backers

View File

@@ -45,7 +45,7 @@ export class CacheInterceptor implements NestInterceptor {
}
try {
const value = await this.cacheManager.get(key);
if (value) {
if (!isNil(value)) {
return of(value);
}

View File

@@ -13,7 +13,9 @@ export * from './unsupported-media-type.exception';
export * from './unprocessable-entity.exception';
export * from './internal-server-error.exception';
export * from './not-implemented.exception';
export * from './http-version-not-supported.exception';
export * from './bad-gateway.exception';
export * from './service-unavailable.exception';
export * from './gateway-timeout.exception';
export * from './im-a-teapot.exception';
export * from './precondition-failed.exception';

View File

@@ -0,0 +1,49 @@
import { HttpStatus } from '../enums/http-status.enum';
import { HttpException } from './http.exception';
/**
* Defines an HTTP exception for *Precondition Failed* type errors.
*
* @see [Base Exceptions](https://docs.nestjs.com/exception-filters#base-exceptions)
*
* @publicApi
*/
export class PreconditionFailedException extends HttpException {
/**
* Instantiate a `PreconditionFailedException` Exception.
*
* @example
* `throw new PreconditionFailedException()`
*
* @usageNotes
* The HTTP response status code will be 412.
* - The `objectOrError` argument defines the JSON response body or the message string.
* - The `description` argument contains a short description of the HTTP error.
*
* By default, the JSON response body contains two properties:
* - `statusCode`: this will be the value 412.
* - `message`: the string `'Precondition Failed'` by default; override this by supplying
* a string in the `objectOrError` parameter.
*
* If the parameter `objectOrError` is a string, the response body will contain an
* additional property, `error`, with a short description of the HTTP error. To override the
* entire JSON response body, pass an object instead. Nest will serialize the object
* and return it as the JSON response body.
*
* @param objectOrError string or object describing the error condition.
* @param description a short description of the HTTP error.
*/
constructor(
objectOrError?: string | object | any,
description = 'Precondition Failed',
) {
super(
HttpException.createBody(
objectOrError,
description,
HttpStatus.PRECONDITION_FAILED,
),
HttpStatus.PRECONDITION_FAILED,
);
}
}

View File

@@ -30,12 +30,14 @@ export {
INestApplication,
INestApplicationContext,
INestMicroservice,
IntrospectionResult,
MiddlewareConsumer,
ModuleMetadata,
NestApplicationOptions,
NestHybridApplicationOptions,
NestInterceptor,
NestMiddleware,
NestModule,
NestHybridApplicationOptions,
OnApplicationBootstrap,
OnApplicationShutdown,
OnModuleDestroy,

View File

@@ -54,7 +54,9 @@ export interface HttpServer<TRequest = any, TResponse = any> {
setViewEngine?(engineOrOptions: any): this;
createMiddlewareFactory(
method: RequestMethod,
): (path: string, callback: Function) => any;
):
| ((path: string, callback: Function) => any)
| Promise<(path: string, callback: Function) => any>;
getRequestHostname?(request: TRequest): string;
getRequestMethod?(request: TRequest): string;
getRequestUrl?(request: TResponse): string;
@@ -65,4 +67,5 @@ export interface HttpServer<TRequest = any, TResponse = any> {
initHttpServer(options: NestApplicationOptions): void;
close(): any;
getType(): string;
init?(): Promise<void>;
}

View File

@@ -15,12 +15,9 @@ export * from './features/pipe-transform.interface';
export * from './hooks';
export * from './http/http-server.interface';
export * from './injectable.interface';
export * from './microservices/nest-hybrid-application-options.interface';
export * from './middleware';
export * from './modules/dynamic-module.interface';
export * from './modules/forward-reference.interface';
export * from './modules/module-metadata.interface';
export * from './modules/nest-module.interface';
export * from './modules/provider.interface';
export * from './modules';
export * from './nest-application-context.interface';
export * from './nest-application-options.interface';
export * from './nest-application.interface';
@@ -28,4 +25,3 @@ export * from './nest-microservice.interface';
export * from './scope-options.interface';
export * from './type.interface';
export * from './websockets/web-socket-adapter.interface';
export * from './microservices/nest-hybrid-application-options.interface';

View File

@@ -1,5 +1,6 @@
export * from './dynamic-module.interface';
export * from './forward-reference.interface';
export * from './introspection-result.interface';
export * from './module-metadata.interface';
export * from './nest-module.interface';
export * from './provider.interface';

View File

@@ -0,0 +1,11 @@
import { Scope } from '../scope-options.interface';
/**
* @publicApi
*/
export interface IntrospectionResult {
/**
* Enum defining lifetime of host class or factory.
*/
scope: Scope;
}

View File

@@ -34,6 +34,15 @@ export interface INestApplicationContext {
options?: { strict: boolean },
): Promise<TResult>;
/**
* Registers the request/context object for a given context ID (DI container sub-tree).
* @returns {void}
*/
registerRequestByContextId<T = any>(
request: T,
contextId: { id: number },
): void;
/**
* Terminates the application
* @returns {Promise<void>}

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/common",
"version": "7.2.0",
"version": "7.4.4",
"description": "Nest - modern, fast, powerful node.js web framework (@common)",
"author": "Kamil Mysliwiec",
"homepage": "https://nestjs.com",
@@ -17,11 +17,11 @@
},
"license": "MIT",
"dependencies": {
"axios": "0.19.2",
"axios": "0.20.0",
"cli-color": "2.0.0",
"iterare": "1.2.1",
"tslib": "2.0.0",
"uuid": "8.1.0"
"tslib": "2.0.1",
"uuid": "8.3.0"
},
"peerDependencies": {
"reflect-metadata": "^0.1.12",

View File

@@ -14,7 +14,10 @@ export class DefaultValuePipe<T = any, R = any>
constructor(private readonly defaultValue: R) {}
transform(value?: T, _metadata?: ArgumentMetadata): T | R {
if (isNil(value)) {
if (
isNil(value) ||
(typeof value === 'number' && isNaN((value as unknown) as number))
) {
return this.defaultValue;
}
return value;

View File

@@ -6,6 +6,7 @@ import { ArgumentMetadata, ValidationError } from '../index';
import { ClassTransformOptions } from '../interfaces/external/class-transform-options.interface';
import { ValidatorOptions } from '../interfaces/external/validator-options.interface';
import { PipeTransform } from '../interfaces/features/pipe-transform.interface';
import { Type } from '../interfaces/type.interface';
import {
ErrorHttpStatusCode,
HttpErrorByCode,
@@ -20,6 +21,7 @@ export interface ValidationPipeOptions extends ValidatorOptions {
errorHttpStatusCode?: ErrorHttpStatusCode;
exceptionFactory?: (errors: ValidationError[]) => any;
validateCustomDecorators?: boolean;
expectedType?: Type<any>;
}
let classValidator: any = {};
@@ -32,6 +34,7 @@ export class ValidationPipe implements PipeTransform<any> {
protected validatorOptions: ValidatorOptions;
protected transformOptions: ClassTransformOptions;
protected errorHttpStatusCode: ErrorHttpStatusCode;
protected expectedType: Type<any>;
protected exceptionFactory: (errors: ValidationError[]) => any;
protected validateCustomDecorators: boolean;
@@ -41,6 +44,7 @@ export class ValidationPipe implements PipeTransform<any> {
transform,
disableErrorMessages,
errorHttpStatusCode,
expectedType,
transformOptions,
validateCustomDecorators,
...validatorOptions
@@ -52,6 +56,7 @@ export class ValidationPipe implements PipeTransform<any> {
this.isDetailedOutputDisabled = disableErrorMessages;
this.validateCustomDecorators = validateCustomDecorators || false;
this.errorHttpStatusCode = errorHttpStatusCode || HttpStatus.BAD_REQUEST;
this.expectedType = expectedType;
this.exceptionFactory =
options.exceptionFactory || this.createExceptionFactory();
@@ -64,7 +69,7 @@ export class ValidationPipe implements PipeTransform<any> {
}
public async transform(value: any, metadata: ArgumentMetadata) {
const { metatype } = metadata;
const metatype = this.expectedType || metadata.metatype;
if (!metatype || !this.toValidate(metadata)) {
return this.isTransformEnabled
? this.transformPrimitive(value, metadata)

View File

@@ -396,4 +396,31 @@ describe('ValidationPipe', () => {
});
});
});
describe('option: "expectedType"', () => {
class TestModel2 {
@IsString()
public prop1: string;
@IsBoolean()
public prop2: string;
@IsOptional()
@IsString()
public optionalProp: string;
}
it('should validate against the expected type if presented', async () => {
const m: ArgumentMetadata = {
type: 'body',
metatype: TestModel2,
data: '',
};
target = new ValidationPipe({ expectedType: TestModel });
const testObj = { prop1: 'value1', prop2: 'value2' };
expect(await target.transform(testObj, m)).to.equal(testObj);
});
});
});

View File

@@ -13,6 +13,7 @@ import {
NotFoundException,
NotImplementedException,
PayloadTooLargeException,
PreconditionFailedException,
RequestTimeoutException,
ServiceUnavailableException,
UnauthorizedException,
@@ -35,6 +36,7 @@ export type ErrorHttpStatusCode =
| HttpStatus.NOT_FOUND
| HttpStatus.NOT_IMPLEMENTED
| HttpStatus.PAYLOAD_TOO_LARGE
| HttpStatus.PRECONDITION_FAILED
| HttpStatus.REQUEST_TIMEOUT
| HttpStatus.SERVICE_UNAVAILABLE
| HttpStatus.UNAUTHORIZED
@@ -55,6 +57,7 @@ export const HttpErrorByCode: Record<ErrorHttpStatusCode, Type<unknown>> = {
[HttpStatus.NOT_FOUND]: NotFoundException,
[HttpStatus.NOT_IMPLEMENTED]: NotImplementedException,
[HttpStatus.PAYLOAD_TOO_LARGE]: PayloadTooLargeException,
[HttpStatus.PRECONDITION_FAILED]: PreconditionFailedException,
[HttpStatus.REQUEST_TIMEOUT]: RequestTimeoutException,
[HttpStatus.SERVICE_UNAVAILABLE]: ServiceUnavailableException,
[HttpStatus.UNAUTHORIZED]: UnauthorizedException,

View File

@@ -54,9 +54,11 @@ With official support, you can get expert help straight from Nest core team. We
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
#### Principal Sponsor
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="220" /></a>
#### Principal Sponsors
<table style="text-align:center;"><tr><td>
<a href="https://github.com/Sanofi-IADC" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/sanofi.png" width="180" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="180" valign="middle" /></a></td>
</tr></table>
#### Silver Sponsors
@@ -84,7 +86,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://www.codeguesser.co.uk" target="_blank"><img src="https://nestjs.com/img/codeguesser-logo.svg" width="120" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://tekhattan.com" target="_blank"><img src="https://nestjs.com/img/tekhattan-logo.png" width="110" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://f-a.nz/" target="_blank"><img src="https://nestjs.com/img/franz.svg" width="80" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td></tr></table>
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td>
<td align="center" valign="middle">
<a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" width="97" valign="middle" /></a> </td></tr>
<tr><td align="center" valign="middle"><a href="https://sanyodigital.com/" target="_blank"><img src="https://nestjs.com/img/sanyo-digital.png" width="130" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://vpn-review.com/vpn-for-torrenting" target="_blank"><img src="https://nestjs.com/img/vpn-review-logo.png" width="85" valign="middle" /></a></td>
</tr></table>
## Backers

View File

@@ -15,6 +15,9 @@ export abstract class AbstractHttpAdapter<
constructor(protected readonly instance: any) {}
// eslint-disable-next-line @typescript-eslint/no-empty-function
public async init() {}
public use(...args: any[]) {
return this.instance.use(...args);
}
@@ -97,6 +100,8 @@ export abstract class AbstractHttpAdapter<
abstract enableCors(options: CorsOptions, prefix?: string);
abstract createMiddlewareFactory(
requestMethod: RequestMethod,
): (path: string, callback: Function) => any;
):
| ((path: string, callback: Function) => any)
| Promise<(path: string, callback: Function) => any>;
abstract getType(): string;
}

View File

@@ -1,7 +1,8 @@
import { RuntimeException } from './runtime.exception';
export class UnknownElementException extends RuntimeException {
constructor(name?: string) {
constructor(name?: string | symbol) {
name = name && name.toString();
super(
`Nest could not find ${
name || 'given'

View File

@@ -1,12 +1,12 @@
import { BeforeApplicationShutdown } from '@nestjs/common';
import { isNil } from '@nestjs/common/utils/shared.utils';
import { iterate } from 'iterare';
import { InstanceWrapper } from '../injector/instance-wrapper';
import { Module } from '../injector/module';
import {
getNonTransientInstances,
getTransientInstances,
} from '../injector/transient-instances';
} from '../injector/helpers/transient-instances';
import { InstanceWrapper } from '../injector/instance-wrapper';
import { Module } from '../injector/module';
/**
* Checks if the given instance has the `beforeApplicationShutdown` function

View File

@@ -1,12 +1,12 @@
import { OnApplicationBootstrap } from '@nestjs/common';
import { isNil } from '@nestjs/common/utils/shared.utils';
import { iterate } from 'iterare';
import { InstanceWrapper } from '../injector/instance-wrapper';
import { Module } from '../injector/module';
import {
getNonTransientInstances,
getTransientInstances,
} from '../injector/transient-instances';
} from '../injector/helpers/transient-instances';
import { InstanceWrapper } from '../injector/instance-wrapper';
import { Module } from '../injector/module';
/**
* Checks if the given instance has the `onApplicationBootstrap` function

View File

@@ -1,12 +1,12 @@
import { OnApplicationShutdown } from '@nestjs/common';
import { isNil } from '@nestjs/common/utils/shared.utils';
import { iterate } from 'iterare';
import { InstanceWrapper } from '../injector/instance-wrapper';
import { Module } from '../injector/module';
import {
getNonTransientInstances,
getTransientInstances,
} from '../injector/transient-instances';
} from '../injector/helpers/transient-instances';
import { InstanceWrapper } from '../injector/instance-wrapper';
import { Module } from '../injector/module';
/**
* Checks if the given instance has the `onApplicationShutdown` function

View File

@@ -1,12 +1,12 @@
import { OnModuleDestroy } from '@nestjs/common';
import { isNil } from '@nestjs/common/utils/shared.utils';
import { iterate } from 'iterare';
import { InstanceWrapper } from '../injector/instance-wrapper';
import { Module } from '../injector/module';
import {
getNonTransientInstances,
getTransientInstances,
} from '../injector/transient-instances';
} from '../injector/helpers/transient-instances';
import { InstanceWrapper } from '../injector/instance-wrapper';
import { Module } from '../injector/module';
/**
* Returns true or false if the given instance has a `onModuleDestroy` function

View File

@@ -1,12 +1,12 @@
import { OnModuleInit } from '@nestjs/common';
import { isNil } from '@nestjs/common/utils/shared.utils';
import { iterate } from 'iterare';
import { InstanceWrapper } from '../injector/instance-wrapper';
import { Module } from '../injector/module';
import {
getNonTransientInstances,
getTransientInstances,
} from '../injector/transient-instances';
} from '../injector/helpers/transient-instances';
import { InstanceWrapper } from '../injector/instance-wrapper';
import { Module } from '../injector/module';
/**
* Returns true or false if the given instance has a `onModuleInit` function

View File

@@ -1,118 +0,0 @@
import { Type } from '@nestjs/common';
import { Abstract, Scope } from '@nestjs/common/interfaces';
import { isFunction } from '@nestjs/common/utils/shared.utils';
import { InvalidClassScopeException } from '../errors/exceptions/invalid-class-scope.exception';
import { UnknownElementException } from '../errors/exceptions/unknown-element.exception';
import { NestContainer } from './container';
import { InstanceWrapper } from './instance-wrapper';
import { Module } from './module';
type HostCollection = 'providers' | 'controllers' | 'injectables';
export class ContainerScanner {
private flatContainer: Partial<Module>;
constructor(private readonly container: NestContainer) {}
public find<TInput = any, TResult = TInput>(
typeOrToken: Type<TInput> | Abstract<TInput> | string | symbol,
): TResult {
this.initFlatContainer();
return this.findInstanceByToken<TInput, TResult>(
typeOrToken,
this.flatContainer,
);
}
public getWrapperCollectionPair<TInput = any, TResult = TInput>(
typeOrToken: Type<TInput> | Abstract<TInput> | string | symbol,
): [InstanceWrapper<TResult>, Map<string, InstanceWrapper>] {
this.initFlatContainer();
return this.getWrapperCollectionPairByHost<TInput, TResult>(
typeOrToken,
this.flatContainer,
);
}
public findInstanceByToken<TInput = any, TResult = TInput>(
metatypeOrToken: Type<TInput> | Abstract<TInput> | string | symbol,
contextModule: Partial<Module>,
): TResult {
const [instanceWrapper] = this.getWrapperCollectionPairByHost(
metatypeOrToken,
contextModule,
);
if (
instanceWrapper.scope === Scope.REQUEST ||
instanceWrapper.scope === Scope.TRANSIENT
) {
throw new InvalidClassScopeException(metatypeOrToken);
}
return (instanceWrapper.instance as unknown) as TResult;
}
public getWrapperCollectionPairByHost<TInput = any, TResult = TInput>(
metatypeOrToken: Type<TInput> | Abstract<TInput> | string | symbol,
contextModule: Partial<Module>,
): [InstanceWrapper<TResult>, Map<string, InstanceWrapper>] {
const name = isFunction(metatypeOrToken)
? (metatypeOrToken as Function).name
: metatypeOrToken;
const collectionName = this.getHostCollection(
name as string,
contextModule,
);
const instanceWrapper = contextModule[collectionName].get(name as string);
if (!instanceWrapper) {
throw new UnknownElementException(name && name.toString());
}
return [
instanceWrapper as InstanceWrapper<TResult>,
contextModule[collectionName],
];
}
private initFlatContainer() {
if (this.flatContainer) {
return;
}
const modules = this.container.getModules();
const initialValue: Record<string, any[]> = {
providers: [],
controllers: [],
injectables: [],
};
const merge = <T = unknown>(
initial: Map<string, T> | T[],
arr: Map<string, T>,
) => [...initial, ...arr];
const partialModule = ([...modules.values()].reduce(
(current, next) => ({
providers: merge(current.providers, next.providers),
controllers: merge(current.controllers, next.controllers),
injectables: merge(current.injectables, next.injectables),
}),
initialValue,
) as any) as Partial<Module>;
this.flatContainer = {
providers: new Map(partialModule.providers),
controllers: new Map(partialModule.controllers),
injectables: new Map(partialModule.injectables),
};
}
private getHostCollection(
token: string,
{ providers, controllers }: Partial<Module>,
): HostCollection {
if (providers.has(token)) {
return 'providers';
}
if (controllers.has(token)) {
return 'controllers';
}
return 'injectables';
}
}

View File

@@ -68,7 +68,12 @@ export class NestContainer {
}
const moduleRef = new Module(type, this);
this.modules.set(token, moduleRef);
this.addDynamicMetadata(token, dynamicMetadata, [].concat(scope, type));
await this.addDynamicMetadata(
token,
dynamicMetadata,
[].concat(scope, type),
);
if (this.isGlobalModule(type, dynamicMetadata)) {
this.addGlobalModule(moduleRef);
@@ -76,7 +81,7 @@ export class NestContainer {
return moduleRef;
}
public addDynamicMetadata(
public async addDynamicMetadata(
token: string,
dynamicModuleMetadata: Partial<DynamicModule>,
scope: Type<any>[],
@@ -87,14 +92,14 @@ export class NestContainer {
this.dynamicModulesMetadata.set(token, dynamicModuleMetadata);
const { imports } = dynamicModuleMetadata;
this.addDynamicModules(imports, scope);
await this.addDynamicModules(imports, scope);
}
public addDynamicModules(modules: any[], scope: Type<any>[]) {
public async addDynamicModules(modules: any[], scope: Type<any>[]) {
if (!modules) {
return;
}
modules.forEach(module => this.addModule(module, scope));
await Promise.all(modules.map(module => this.addModule(module, scope)));
}
public isGlobalModule(
@@ -196,7 +201,7 @@ export class NestContainer {
}
public bindGlobalModuleToModule(target: Module, globalModule: Module) {
if (target === globalModule) {
if (target === globalModule || target === this.internalCoreModule) {
return;
}
target.addRelatedModule(globalModule);
@@ -205,7 +210,7 @@ export class NestContainer {
public getDynamicMetadataByToken(
token: string,
metadataKey: keyof DynamicModule,
): any[] {
) {
const metadata = this.dynamicModulesMetadata.get(token);
if (metadata && metadata[metadataKey]) {
return metadata[metadataKey] as any[];

View File

@@ -1,6 +1,5 @@
import { iterate } from 'iterare';
import { InstanceWrapper } from './instance-wrapper';
import { InstanceWrapper } from '../instance-wrapper';
/**
* Returns the instances which are transient

View File

@@ -0,0 +1,79 @@
import { Abstract, Type } from '@nestjs/common';
import { isFunction } from '@nestjs/common/utils/shared.utils';
import { UnknownElementException } from '../errors/exceptions/unknown-element.exception';
import { NestContainer } from './container';
import { InstanceWrapper } from './instance-wrapper';
import { Module } from './module';
type InstanceToken = string | symbol | Type<any> | Abstract<any> | Function;
type HostCollection = 'providers' | 'controllers' | 'injectables';
export interface InstanceLink<T = any> {
token: InstanceToken;
wrapperRef: InstanceWrapper<T>;
collection: Map<any, InstanceWrapper>;
moduleId: string;
}
export class InstanceLinksHost {
private readonly instanceLinks = new Map<InstanceToken, InstanceLink[]>();
constructor(private readonly container: NestContainer) {
this.initialize();
}
get<T = any>(token: InstanceToken, moduleId?: string): InstanceLink<T> {
const name = isFunction(token)
? (token as Function).name
: (token as string | symbol);
const modulesMap = this.instanceLinks.get(name);
if (!modulesMap) {
throw new UnknownElementException(name);
}
const instanceLink = moduleId
? modulesMap.find(item => item.moduleId === moduleId)
: modulesMap[modulesMap.length - 1];
if (!instanceLink) {
throw new UnknownElementException(name);
}
return instanceLink;
}
private initialize() {
const modules = this.container.getModules();
modules.forEach(moduleRef => {
const { providers, injectables, controllers } = moduleRef;
providers.forEach((wrapper, token) =>
this.addLink(wrapper, token, moduleRef, 'providers'),
);
injectables.forEach((wrapper, token) =>
this.addLink(wrapper, token, moduleRef, 'injectables'),
);
controllers.forEach((wrapper, token) =>
this.addLink(wrapper, token, moduleRef, 'controllers'),
);
});
}
private addLink(
wrapper: InstanceWrapper,
token: InstanceToken,
moduleRef: Module,
collectionName: HostCollection,
) {
const instanceLink: InstanceLink = {
moduleId: moduleRef.id,
wrapperRef: wrapper,
collection: moduleRef[collectionName],
token,
};
const existingLinks = this.instanceLinks.get(token);
if (!existingLinks) {
this.instanceLinks.set(token, [instanceLink]);
} else {
existingLinks.push(instanceLink);
}
}
}

View File

@@ -1,20 +1,26 @@
import { Type } from '@nestjs/common';
import { IntrospectionResult, Scope, Type } from '@nestjs/common';
import { InvalidClassScopeException } from '../errors/exceptions/invalid-class-scope.exception';
import { UnknownElementException } from '../errors/exceptions/unknown-element.exception';
import { getClassScope } from '../helpers/get-class-scope';
import { NestContainer } from './container';
import { ContainerScanner } from './container-scanner';
import { Injector } from './injector';
import { InstanceLinksHost } from './instance-links-host';
import { ContextId, InstanceWrapper } from './instance-wrapper';
import { Module } from './module';
export abstract class ModuleRef {
private readonly injector = new Injector();
private readonly containerScanner: ContainerScanner;
private _instanceLinksHost: InstanceLinksHost;
constructor(protected readonly container: NestContainer) {
this.containerScanner = new ContainerScanner(container);
private get instanceLinksHost() {
if (!this._instanceLinksHost) {
this._instanceLinksHost = new InstanceLinksHost(this.container);
}
return this._instanceLinksHost;
}
constructor(protected readonly container: NestContainer) {}
public abstract get<TInput = any, TResult = TInput>(
typeOrToken: Type<TInput> | string | symbol,
options?: { strict: boolean },
@@ -26,10 +32,70 @@ export abstract class ModuleRef {
): Promise<TResult>;
public abstract create<T = any>(type: Type<T>): Promise<T>;
public introspect<T = any>(
token: Type<T> | string | symbol,
): IntrospectionResult {
const { wrapperRef } = this.instanceLinksHost.get(token);
let scope = Scope.DEFAULT;
if (!wrapperRef.isDependencyTreeStatic()) {
scope = Scope.REQUEST;
} else if (wrapperRef.isTransient) {
scope = Scope.TRANSIENT;
}
return { scope };
}
public registerRequestByContextId<T = any>(request: T, contextId: ContextId) {
this.container.registerRequestProvider(request, contextId);
}
protected find<TInput = any, TResult = TInput>(
typeOrToken: Type<TInput> | string | symbol,
contextModule?: Module,
): TResult {
return this.containerScanner.find<TInput, TResult>(typeOrToken);
const moduleId = contextModule && contextModule.id;
const { wrapperRef } = this.instanceLinksHost.get<TResult>(
typeOrToken,
moduleId,
);
if (
wrapperRef.scope === Scope.REQUEST ||
wrapperRef.scope === Scope.TRANSIENT
) {
throw new InvalidClassScopeException(typeOrToken);
}
return wrapperRef.instance;
}
protected async resolvePerContext<TInput = any, TResult = TInput>(
typeOrToken: Type<TInput> | string | symbol,
contextModule: Module,
contextId: ContextId,
options?: { strict: boolean },
): Promise<TResult> {
const isStrictModeEnabled = options && options.strict;
const instanceLink = isStrictModeEnabled
? this.instanceLinksHost.get(typeOrToken, contextModule.id)
: this.instanceLinksHost.get(typeOrToken);
const { wrapperRef, collection } = instanceLink;
if (wrapperRef.isDependencyTreeStatic() && !wrapperRef.isTransient) {
return this.get(typeOrToken);
}
const ctorHost = wrapperRef.instance || { constructor: typeOrToken };
const instance = await this.injector.loadPerContext(
ctorHost,
wrapperRef.host,
collection,
contextId,
wrapperRef,
);
if (!instance) {
throw new UnknownElementException();
}
return instance;
}
protected async instantiateClass<T = any>(
@@ -65,54 +131,4 @@ export abstract class ModuleRef {
}
});
}
protected findInstanceByToken<TInput = any, TResult = TInput>(
metatypeOrToken: Type<TInput> | string | symbol,
contextModule: Module,
): TResult {
return this.containerScanner.findInstanceByToken<TInput, TResult>(
metatypeOrToken,
contextModule,
);
}
protected async resolvePerContext<TInput = any, TResult = TInput>(
typeOrToken: Type<TInput> | string | symbol,
contextModule: Module,
contextId: ContextId,
options?: { strict: boolean },
): Promise<TResult> {
let wrapper: InstanceWrapper, collection: Map<string, InstanceWrapper>;
const isStrictModeEnabled = options && options.strict;
if (!isStrictModeEnabled) {
[wrapper, collection] = this.containerScanner.getWrapperCollectionPair(
typeOrToken,
);
} else {
[
wrapper,
collection,
] = this.containerScanner.getWrapperCollectionPairByHost(
typeOrToken,
contextModule,
);
}
if (wrapper.isDependencyTreeStatic() && !wrapper.isTransient) {
return this.get(typeOrToken);
}
const ctorHost = wrapper.instance || { constructor: typeOrToken };
const instance = await this.injector.loadPerContext(
ctorHost,
wrapper.host,
collection,
contextId,
wrapper,
);
if (!instance) {
throw new UnknownElementException();
}
return instance;
}
}

View File

@@ -479,7 +479,7 @@ export class Module {
return [...this._providers].filter(([_, wrapper]) => !wrapper.isAlias);
}
public createModuleReferenceType(): any {
public createModuleReferenceType(): Type<ModuleRef> {
// eslint-disable-next-line @typescript-eslint/no-this-alias
const self = this;
return class extends ModuleRef {
@@ -491,10 +491,9 @@ export class Module {
typeOrToken: Type<TInput> | string | symbol,
options: { strict: boolean } = { strict: true },
): TResult {
if (!(options && options.strict)) {
return this.find<TInput, TResult>(typeOrToken);
}
return this.findInstanceByToken<TInput, TResult>(typeOrToken, self);
return !(options && options.strict)
? this.find<TInput, TResult>(typeOrToken)
: this.find<TInput, TResult>(typeOrToken, self);
}
public resolve<TInput = any, TResult = TInput>(

View File

@@ -196,7 +196,7 @@ export class MiddlewareModule {
if (isUndefined(instance.use)) {
throw new InvalidMiddlewareException(metatype.name);
}
const router = applicationRef.createMiddlewareFactory(method);
const router = await applicationRef.createMiddlewareFactory(method);
const isStatic = wrapper.isDependencyTreeStatic();
if (isStatic) {
const proxy = await this.createProxy(instance);

View File

@@ -4,11 +4,12 @@ import {
LoggerService,
ShutdownSignal,
} from '@nestjs/common';
import { Abstract } from '@nestjs/common/interfaces';
import { Abstract, Scope } from '@nestjs/common/interfaces';
import { Type } from '@nestjs/common/interfaces/type.interface';
import { isEmpty } from '@nestjs/common/utils/shared.utils';
import { iterate } from 'iterare';
import { MESSAGES } from './constants';
import { InvalidClassScopeException } from './errors/exceptions/invalid-class-scope.exception';
import { UnknownElementException } from './errors/exceptions/unknown-element.exception';
import { UnknownModuleException } from './errors/exceptions/unknown-module.exception';
import { createContextId } from './helpers';
@@ -21,9 +22,8 @@ import {
} from './hooks';
import { ContextId } from './injector';
import { NestContainer } from './injector/container';
import { ContainerScanner } from './injector/container-scanner';
import { Injector } from './injector/injector';
import { InstanceWrapper } from './injector/instance-wrapper';
import { InstanceLinksHost } from './injector/instance-links-host';
import { Module } from './injector/module';
/**
@@ -34,15 +34,20 @@ export class NestApplicationContext implements INestApplicationContext {
protected readonly injector = new Injector();
private shutdownCleanupRef?: (...args: unknown[]) => unknown;
private readonly activeShutdownSignals = new Array<string>();
private readonly containerScanner: ContainerScanner;
private _instanceLinksHost: InstanceLinksHost;
private get instanceLinksHost() {
if (!this._instanceLinksHost) {
this._instanceLinksHost = new InstanceLinksHost(this.container);
}
return this._instanceLinksHost;
}
constructor(
protected readonly container: NestContainer,
private readonly scope = new Array<Type<any>>(),
private contextModule: Module = null,
) {
this.containerScanner = new ContainerScanner(container);
}
) {}
public selectContextModule() {
const modules = this.container.getModules().values();
@@ -67,13 +72,9 @@ export class NestApplicationContext implements INestApplicationContext {
typeOrToken: Type<TInput> | Abstract<TInput> | string | symbol,
options: { strict: boolean } = { strict: false },
): TResult {
if (!(options && options.strict)) {
return this.find<TInput, TResult>(typeOrToken);
}
return this.findInstanceByToken<TInput, TResult>(
typeOrToken,
this.contextModule,
);
return !(options && options.strict)
? this.find<TInput, TResult>(typeOrToken)
: this.find<TInput, TResult>(typeOrToken, this.contextModule);
}
public resolve<TInput = any, TResult = TInput>(
@@ -89,6 +90,10 @@ export class NestApplicationContext implements INestApplicationContext {
);
}
public registerRequestByContextId<T = any>(request: T, contextId: ContextId) {
this.container.registerRequestProvider(request, contextId);
}
/**
* Initalizes the Nest application.
* Calls the Nest lifecycle events.
@@ -111,7 +116,7 @@ export class NestApplicationContext implements INestApplicationContext {
await this.callBeforeShutdownHook();
await this.dispose();
await this.callShutdownHook();
await this.unsubscribeFromProcessSignals();
this.unsubscribeFromProcessSignals();
}
public useLogger(logger: LoggerService) {
@@ -255,18 +260,20 @@ export class NestApplicationContext implements INestApplicationContext {
protected find<TInput = any, TResult = TInput>(
typeOrToken: Type<TInput> | Abstract<TInput> | string | symbol,
contextModule?: Module,
): TResult {
return this.containerScanner.find<TInput, TResult>(typeOrToken);
}
protected findInstanceByToken<TInput = any, TResult = TInput>(
metatypeOrToken: Type<TInput> | Abstract<TInput> | string | symbol,
contextModule: Partial<Module>,
): TResult {
return this.containerScanner.findInstanceByToken<TInput, TResult>(
metatypeOrToken,
contextModule,
const moduleId = contextModule && contextModule.id;
const { wrapperRef } = this.instanceLinksHost.get<TResult>(
typeOrToken,
moduleId,
);
if (
wrapperRef.scope === Scope.REQUEST ||
wrapperRef.scope === Scope.TRANSIENT
) {
throw new InvalidClassScopeException(typeOrToken);
}
return wrapperRef.instance;
}
protected async resolvePerContext<TInput = any, TResult = TInput>(
@@ -275,30 +282,20 @@ export class NestApplicationContext implements INestApplicationContext {
contextId: ContextId,
options?: { strict: boolean },
): Promise<TResult> {
let wrapper: InstanceWrapper, collection: Map<string, InstanceWrapper>;
const isStrictModeEnabled = options && options.strict;
if (!isStrictModeEnabled) {
[wrapper, collection] = this.containerScanner.getWrapperCollectionPair(
typeOrToken,
);
} else {
[
wrapper,
collection,
] = this.containerScanner.getWrapperCollectionPairByHost(
typeOrToken,
contextModule,
);
}
if (wrapper.isDependencyTreeStatic() && !wrapper.isTransient) {
const instanceLink = isStrictModeEnabled
? this.instanceLinksHost.get(typeOrToken, contextModule.id)
: this.instanceLinksHost.get(typeOrToken);
const { wrapperRef, collection } = instanceLink;
if (wrapperRef.isDependencyTreeStatic() && !wrapperRef.isTransient) {
return this.get(typeOrToken);
}
const ctorHost = wrapper.instance || { constructor: typeOrToken };
const ctorHost = wrapperRef.instance || { constructor: typeOrToken };
const instance = await this.injector.loadPerContext(
ctorHost,
wrapper.host,
wrapperRef.host,
collection,
contextId,
);

View File

@@ -138,6 +138,7 @@ export class NestApplication extends NestApplicationContext
public async init(): Promise<this> {
this.applyOptions();
await this.httpAdapter?.init();
const useBodyParser =
this.appOptions && this.appOptions.bodyParser !== false;

View File

@@ -147,12 +147,15 @@ export class NestFactoryStatic {
httpServer: HttpServer = null,
) {
const instanceLoader = new InstanceLoader(container);
const metadataScanner = new MetadataScanner();
const dependenciesScanner = new DependenciesScanner(
container,
new MetadataScanner(),
metadataScanner,
config,
);
container.setHttpAdapter(httpServer);
await httpServer?.init();
try {
this.logger.log(MESSAGES.APPLICATION_START);
await ExceptionsZone.asyncRun(async () => {

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/core",
"version": "7.2.0",
"version": "7.4.4",
"description": "Nest - modern, fast, powerful node.js web framework (@core)",
"author": "Kamil Mysliwiec",
"license": "MIT",
@@ -32,11 +32,11 @@
"iterare": "1.2.1",
"object-hash": "2.0.3",
"path-to-regexp": "3.2.0",
"tslib": "2.0.0",
"uuid": "8.1.0"
"tslib": "2.0.1",
"uuid": "8.3.0"
},
"devDependencies": {
"@nestjs/common": "7.2.0"
"@nestjs/common": "7.4.4"
},
"peerDependencies": {
"@nestjs/common": "^7.0.0",

View File

@@ -28,7 +28,7 @@ export class RouteParamsFactory implements IRouteParamsFactory {
case RouteParamtypes.QUERY:
return data ? req.query[data] : req.query;
case RouteParamtypes.HEADERS:
return data ? req.headers[data] : req.headers;
return data ? req.headers[data.toLowerCase()] : req.headers;
case RouteParamtypes.SESSION:
return req.session;
case RouteParamtypes.FILE:

View File

@@ -54,9 +54,11 @@ With official support, you can get expert help straight from Nest core team. We
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
#### Principal Sponsor
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="220" /></a>
#### Principal Sponsors
<table style="text-align:center;"><tr><td>
<a href="https://github.com/Sanofi-IADC" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/sanofi.png" width="180" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="180" valign="middle" /></a></td>
</tr></table>
#### Silver Sponsors
@@ -84,7 +86,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://www.codeguesser.co.uk" target="_blank"><img src="https://nestjs.com/img/codeguesser-logo.svg" width="120" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://tekhattan.com" target="_blank"><img src="https://nestjs.com/img/tekhattan-logo.png" width="110" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://f-a.nz/" target="_blank"><img src="https://nestjs.com/img/franz.svg" width="80" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td></tr></table>
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td>
<td align="center" valign="middle">
<a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" width="97" valign="middle" /></a> </td></tr>
<tr><td align="center" valign="middle"><a href="https://sanyodigital.com/" target="_blank"><img src="https://nestjs.com/img/sanyo-digital.png" width="130" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://vpn-review.com/vpn-for-torrenting" target="_blank"><img src="https://nestjs.com/img/vpn-review-logo.png" width="85" valign="middle" /></a></td>
</tr></table>
## Backers

View File

@@ -43,13 +43,13 @@ export class ClientKafka extends ClientProxy {
protected client: Kafka = null;
protected consumer: Consumer = null;
protected producer: Producer = null;
protected readonly logger = new Logger(ClientKafka.name);
protected readonly responsePatterns: string[] = [];
protected logger = new Logger(ClientKafka.name);
protected responsePatterns: string[] = [];
protected consumerAssignments: { [key: string]: number[] } = {};
private readonly brokers: string[];
private readonly clientId: string;
private readonly groupId: string;
protected brokers: string[];
protected clientId: string;
protected groupId: string;
constructor(protected readonly options: KafkaOptions['options']) {
super();

View File

@@ -31,6 +31,7 @@ export class ClientRMQ extends ClientProxy {
protected queue: string;
protected queueOptions: any;
protected responseEmitter: EventEmitter;
protected replyQueue: string;
constructor(protected readonly options: RmqOptions['options']) {
super();
@@ -40,7 +41,8 @@ export class ClientRMQ extends ClientProxy {
this.queueOptions =
this.getOptionsProp(this.options, 'queueOptions') ||
RQM_DEFAULT_QUEUE_OPTIONS;
this.replyQueue =
this.getOptionsProp(this.options, 'replyQueue') || REPLY_QUEUE;
loadPackage('amqplib', ClientRMQ.name, () => require('amqplib'));
rqmPackage = loadPackage('amqp-connection-manager', ClientRMQ.name, () =>
require('amqp-connection-manager'),
@@ -61,7 +63,7 @@ export class ClientRMQ extends ClientProxy {
const noAck = this.getOptionsProp(this.options, 'noAck', RQM_DEFAULT_NOACK);
this.channel.addSetup((channel: any) =>
channel.consume(
REPLY_QUEUE,
this.replyQueue,
(msg: any) =>
this.responseEmitter.emit(msg.properties.correlationId, msg),
{
@@ -183,7 +185,7 @@ export class ClientRMQ extends ClientProxy {
this.queue,
Buffer.from(JSON.stringify(serializedPacket)),
{
replyTo: REPLY_QUEUE,
replyTo: this.replyQueue,
correlationId,
},
);

View File

@@ -3,7 +3,7 @@ import { RuntimeException } from '@nestjs/core/errors/exceptions/runtime.excepti
export class InvalidKafkaClientTopicPartitionException extends RuntimeException {
constructor(topic?: string) {
super(
`The client consumer subscribed to the topic (${topic}) whcih is not assigned to any partitions.`,
`The client consumer subscribed to the topic (${topic}) which is not assigned to any partitions.`,
);
}
}

View File

@@ -128,6 +128,7 @@ export interface RmqOptions {
noAck?: boolean;
serializer?: Serializer;
deserializer?: Deserializer;
replyQueue?: string;
};
}

View File

@@ -1,6 +1,11 @@
import { DynamicModule, Module } from '@nestjs/common';
import { DynamicModule, Module, Provider } from '@nestjs/common';
import { ClientProxyFactory } from '../client';
import { ClientsModuleOptions } from './interfaces/clients-module.interface';
import {
ClientsModuleAsyncOptions,
ClientsModuleOptions,
ClientsModuleOptionsFactory,
ClientsProviderAsyncOptions,
} from './interfaces';
@Module({})
export class ClientsModule {
@@ -15,4 +20,71 @@ export class ClientsModule {
exports: clients,
};
}
static registerAsync(options: ClientsModuleAsyncOptions): DynamicModule {
const providers: Provider[] = options.reduce(
(accProviders: Provider[], item) =>
accProviders
.concat(this.createAsyncProviders(item))
.concat(item.extraProviders || []),
[],
);
const imports = options.reduce(
(accImports, option) =>
option.imports && !accImports.includes(option.imports)
? accImports.concat(option.imports)
: accImports,
[],
);
return {
module: ClientsModule,
imports,
providers: providers,
exports: providers,
};
}
private static createAsyncProviders(
options: ClientsProviderAsyncOptions,
): Provider[] {
if (options.useExisting || options.useFactory) {
return [this.createAsyncOptionsProvider(options)];
}
return [
this.createAsyncOptionsProvider(options),
{
provide: options.useClass,
useClass: options.useClass,
},
];
}
private static createAsyncOptionsProvider(
options: ClientsProviderAsyncOptions,
): Provider {
if (options.useFactory) {
return {
provide: options.name,
useFactory: this.createFactoryWrapper(options.useFactory),
inject: options.inject || [],
};
}
return {
provide: options.name,
useFactory: this.createFactoryWrapper(
(optionsFactory: ClientsModuleOptionsFactory) =>
optionsFactory.createClientOptions(),
),
inject: [options.useExisting || options.useClass],
};
}
private static createFactoryWrapper(
useFactory: ClientsProviderAsyncOptions['useFactory'],
) {
return async (...args: any[]) => {
const clientOptions = await useFactory(...args);
return ClientProxyFactory.create(clientOptions);
};
}
}

View File

@@ -1 +1,2 @@
export * from './clients.module';
export * from './interfaces';

View File

@@ -1,7 +1,24 @@
import { ClientOptions } from '../../interfaces';
import { Type, Provider, ModuleMetadata } from '@nestjs/common/interfaces';
export type ClientProviderOptions = ClientOptions & {
name: string;
name: string | symbol;
};
export type ClientsModuleOptions = Array<ClientProviderOptions>;
export interface ClientsModuleOptionsFactory {
createClientOptions(): Promise<ClientOptions> | ClientOptions;
}
export interface ClientsProviderAsyncOptions
extends Pick<ModuleMetadata, 'imports'> {
useExisting?: Type<ClientsModuleOptionsFactory>;
useClass?: Type<ClientsModuleOptionsFactory>;
useFactory?: (...args: any[]) => Promise<ClientOptions> | ClientOptions;
inject?: any[];
extraProviders?: Provider[];
name: string | symbol;
}
export type ClientsModuleAsyncOptions = Array<ClientsProviderAsyncOptions>;

View File

@@ -0,0 +1 @@
export * from './clients-module.interface';

View File

@@ -115,14 +115,14 @@ export class NestMicroservice extends NestApplicationContext
}
public listen(callback: () => void) {
!this.isInitialized && this.registerModules();
this.logger.log(MESSAGES.MICROSERVICE_READY);
this.server.listen(callback);
this.listenAsync().then(callback);
}
public async listenAsync(): Promise<any> {
return new Promise(resolve => this.listen(resolve));
!this.isInitialized && (await this.registerModules());
this.logger.log(MESSAGES.MICROSERVICE_READY);
return new Promise(resolve => this.server.listen(resolve));
}
public async close(): Promise<any> {
@@ -151,4 +151,12 @@ export class NestMicroservice extends NestApplicationContext
await super.close();
this.setIsTerminated(true);
}
protected async dispose(): Promise<void> {
await this.server.close();
if (this.isTerminated) {
return;
}
this.socketModule && (await this.socketModule.close());
}
}

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/microservices",
"version": "7.2.0",
"version": "7.4.4",
"description": "Nest - modern, fast, powerful node.js web framework (@microservices)",
"author": "Kamil Mysliwiec",
"license": "MIT",
@@ -19,11 +19,11 @@
"dependencies": {
"iterare": "1.2.1",
"json-socket": "0.3.0",
"tslib": "2.0.0"
"tslib": "2.0.1"
},
"devDependencies": {
"@nestjs/common": "7.2.0",
"@nestjs/core": "7.2.0"
"@nestjs/common": "7.4.4",
"@nestjs/core": "7.4.4"
},
"peerDependencies": {
"@nestjs/common": "^7.0.0",

View File

@@ -33,13 +33,14 @@ let kafkaPackage: any = {};
export class ServerKafka extends Server implements CustomTransportStrategy {
public readonly transportId = Transport.KAFKA;
protected readonly logger = new Logger(ServerKafka.name);
protected logger = new Logger(ServerKafka.name);
protected client: Kafka = null;
protected consumer: Consumer = null;
protected producer: Producer = null;
private readonly brokers: string[];
private readonly clientId: string;
private readonly groupId: string;
protected brokers: string[];
protected clientId: string;
protected groupId: string;
constructor(private readonly options: KafkaOptions['options']) {
super();

View File

@@ -1,27 +1,118 @@
import { DynamicModule } from '@nestjs/common';
import { DynamicModule, FactoryProvider, Injectable } from '@nestjs/common';
import { expect } from 'chai';
import * as sinon from 'sinon';
import { ClientProxyFactory } from '../../client';
import { ClientsModule } from '../../module';
import { ClientsModule, ClientsModuleOptionsFactory } from '../../module';
import { ClientOptions } from '../../interfaces';
import { Transport } from '../../enums';
describe('ClientsModule', () => {
let dynamicModule: DynamicModule;
beforeEach(() => {
dynamicModule = ClientsModule.register([
{
name: 'test',
options: {},
},
]);
describe('register', () => {
beforeEach(() => {
dynamicModule = ClientsModule.register([
{
name: 'test',
options: {},
},
]);
});
it('should return an expected module ref', () => {
expect(dynamicModule.module).to.be.eql(ClientsModule);
});
it('should return an expected providers array', () => {
expect(dynamicModule.providers).to.be.deep.eq([
{
provide: 'test',
useValue: ClientProxyFactory.create({}),
},
]);
});
});
it('should return an expected module ref', () => {
expect(dynamicModule.module).to.be.eql(ClientsModule);
});
it('should return an expected providers array', () => {
expect(dynamicModule.providers).to.be.deep.eq([
{
provide: 'test',
useValue: ClientProxyFactory.create({}),
},
]);
describe('registerAsync', () => {
const useFactory = () => ({
options: {},
});
const registerOption = {
name: 'test',
useFactory,
};
it('should return an expected module ref', () => {
dynamicModule = ClientsModule.registerAsync([registerOption]);
expect(dynamicModule.module).to.be.eql(ClientsModule);
});
describe('when useFactory', () => {
it('should return an expected providers array with useFactory', () => {
dynamicModule = ClientsModule.registerAsync([registerOption]);
expect(dynamicModule.imports).to.be.deep.eq([]);
expect(dynamicModule.exports).to.be.eq(dynamicModule.providers);
expect(dynamicModule.providers).to.be.have.length(1);
const provider = dynamicModule.providers[0] as FactoryProvider;
expect(provider.provide).to.be.eql('test');
expect(provider.inject).to.be.deep.eq([]);
expect(provider.useFactory).to.be.an.instanceOf(Function);
});
});
describe('when useClass', () => {
it('should return an expected providers array with useClass', () => {
@Injectable()
class ClientOptionService implements ClientsModuleOptionsFactory {
createClientOptions(): Promise<ClientOptions> | ClientOptions {
return {
transport: Transport.TCP,
options: {},
};
}
}
const useClassOption = {
name: 'classTest',
useClass: ClientOptionService,
};
dynamicModule = ClientsModule.registerAsync([useClassOption]);
expect(dynamicModule.imports).to.be.deep.eq([]);
expect(dynamicModule.providers).to.be.have.length(2);
const classTestProvider = dynamicModule.providers[0] as FactoryProvider;
expect(classTestProvider.provide).to.be.eql('classTest');
expect(classTestProvider.inject).to.be.deep.eq([ClientOptionService]);
expect(classTestProvider.useFactory).to.be.an.instanceOf(Function);
});
it('provider should call "createClientOptions"', async () => {
const asyncOptions = {
useClass: Object,
};
const dynamicModule = ClientsModule.registerAsync([
asyncOptions as any,
]);
const optionsFactory = {
createClientOptions: sinon.spy(),
};
try {
await ((dynamicModule.providers[0] as any).useFactory as any)(
optionsFactory,
);
} catch (e) {
console.log(e);
}
expect(optionsFactory.createClientOptions.called).to.be.true;
});
});
describe('when useExisting', () => {
it('should provide an options', () => {
const asyncOptions = {
useExisting: Object,
};
dynamicModule = ClientsModule.registerAsync([asyncOptions as any]);
expect(dynamicModule.providers).to.have.length(1);
expect(dynamicModule.imports).to.be.deep.eq([]);
const classTestProvider = dynamicModule.providers[0] as FactoryProvider;
expect(classTestProvider.useFactory).to.be.an.instanceOf(Function);
});
});
});
});

View File

@@ -54,9 +54,11 @@ With official support, you can get expert help straight from Nest core team. We
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
#### Principal Sponsor
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="220" /></a>
#### Principal Sponsors
<table style="text-align:center;"><tr><td>
<a href="https://github.com/Sanofi-IADC" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/sanofi.png" width="180" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="180" valign="middle" /></a></td>
</tr></table>
#### Silver Sponsors
@@ -84,7 +86,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://www.codeguesser.co.uk" target="_blank"><img src="https://nestjs.com/img/codeguesser-logo.svg" width="120" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://tekhattan.com" target="_blank"><img src="https://nestjs.com/img/tekhattan-logo.png" width="110" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://f-a.nz/" target="_blank"><img src="https://nestjs.com/img/franz.svg" width="80" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td></tr></table>
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td>
<td align="center" valign="middle">
<a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" width="97" valign="middle" /></a> </td></tr>
<tr><td align="center" valign="middle"><a href="https://sanyodigital.com/" target="_blank"><img src="https://nestjs.com/img/sanyo-digital.png" width="130" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://vpn-review.com/vpn-for-torrenting" target="_blank"><img src="https://nestjs.com/img/vpn-review-logo.png" width="85" valign="middle" /></a></td>
</tr></table>
## Backers

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/platform-express",
"version": "7.2.0",
"version": "7.4.4",
"description": "Nest - modern, fast, powerful node.js web framework (@platform-express)",
"author": "Kamil Mysliwiec",
"license": "MIT",
@@ -21,11 +21,11 @@
"cors": "2.8.5",
"express": "4.17.1",
"multer": "1.4.2",
"tslib": "2.0.0"
"tslib": "2.0.1"
},
"devDependencies": {
"@nestjs/common": "7.2.0",
"@nestjs/core": "7.2.0"
"@nestjs/common": "7.4.4",
"@nestjs/core": "7.4.4"
},
"peerDependencies": {
"@nestjs/common": "^7.0.0",

View File

@@ -54,9 +54,11 @@ With official support, you can get expert help straight from Nest core team. We
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
#### Principal Sponsor
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="220" /></a>
#### Principal Sponsors
<table style="text-align:center;"><tr><td>
<a href="https://github.com/Sanofi-IADC" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/sanofi.png" width="180" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="180" valign="middle" /></a></td>
</tr></table>
#### Silver Sponsors
@@ -84,7 +86,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://www.codeguesser.co.uk" target="_blank"><img src="https://nestjs.com/img/codeguesser-logo.svg" width="120" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://tekhattan.com" target="_blank"><img src="https://nestjs.com/img/tekhattan-logo.png" width="110" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://f-a.nz/" target="_blank"><img src="https://nestjs.com/img/franz.svg" width="80" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td></tr></table>
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td>
<td align="center" valign="middle">
<a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" width="97" valign="middle" /></a> </td></tr>
<tr><td align="center" valign="middle"><a href="https://sanyodigital.com/" target="_blank"><img src="https://nestjs.com/img/sanyo-digital.png" width="130" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://vpn-review.com/vpn-for-torrenting" target="_blank"><img src="https://nestjs.com/img/vpn-review-logo.png" width="85" valign="middle" /></a></td>
</tr></table>
## Backers

View File

@@ -1,163 +1,265 @@
import { HttpStatus, RequestMethod } from '@nestjs/common';
/* eslint-disable @typescript-eslint/no-var-requires */
import { HttpStatus, Logger, RequestMethod } from '@nestjs/common';
import { CorsOptions } from '@nestjs/common/interfaces/external/cors-options.interface';
import { NestApplicationOptions } from '@nestjs/common/interfaces/nest-application-options.interface';
import { loadPackage } from '@nestjs/common/utils/load-package.util';
import { AbstractHttpAdapter } from '@nestjs/core/adapters/http-adapter';
import * as fastify from 'fastify';
import * as cors from 'fastify-cors';
import * as formBody from 'fastify-formbody';
import {
fastify,
FastifyInstance,
FastifyLoggerInstance,
FastifyPlugin,
FastifyPluginOptions,
FastifyRegisterOptions,
FastifyReply,
FastifyRequest,
FastifyServerOptions,
RawReplyDefaultExpression,
RawRequestDefaultExpression,
RawServerBase,
RawServerDefault,
RequestGenericInterface,
} from 'fastify';
import * as Reply from 'fastify/lib/reply';
import * as http2 from 'http2';
import * as https from 'https';
import { InjectOptions } from 'light-my-request';
import * as pathToRegexp from 'path-to-regexp';
import {
FastifyStaticOptions,
PointOfViewOptions,
} from '../interfaces/external';
type FastifyHttp2SecureOptions<
Server extends http2.Http2SecureServer,
Logger extends FastifyLoggerInstance = FastifyLoggerInstance
> = FastifyServerOptions<Server, Logger> & {
http2: true;
https: http2.SecureServerOptions;
};
type FastifyHttp2Options<
Server extends http2.Http2Server,
Logger extends FastifyLoggerInstance = FastifyLoggerInstance
> = FastifyServerOptions<Server, Logger> & {
http2: true;
http2SessionTimeout?: number;
};
type FastifyHttpsOptions<
Server extends https.Server,
Logger extends FastifyLoggerInstance = FastifyLoggerInstance
> = FastifyServerOptions<Server, Logger> & {
https: https.ServerOptions;
};
export class FastifyAdapter<
TServer extends RawServerBase = RawServerDefault,
TRawRequest extends RawRequestDefaultExpression<
TServer
> = RawRequestDefaultExpression<TServer>,
TRawResponse extends RawReplyDefaultExpression<
TServer
> = RawReplyDefaultExpression<TServer>
> extends AbstractHttpAdapter<
TServer,
FastifyRequest<RequestGenericInterface, TServer, TRawRequest>,
FastifyReply<TServer, TRawRequest, TRawResponse>
> {
protected readonly instance: FastifyInstance<
TServer,
TRawRequest,
TRawResponse
>;
private isMiddieRegistered: boolean;
export class FastifyAdapter<TInstance = any> extends AbstractHttpAdapter {
constructor(
instanceOrOptions:
| TInstance
| fastify.ServerOptions
| fastify.ServerOptionsAsHttp
| fastify.ServerOptionsAsHttp2
| fastify.ServerOptionsAsSecure
| fastify.ServerOptionsAsSecureHttp
| fastify.ServerOptionsAsSecureHttp2 = fastify() as any,
| FastifyInstance<TServer>
| FastifyHttp2Options<TServer>
| FastifyHttp2SecureOptions<any>
| FastifyHttpsOptions<any>
| FastifyServerOptions<TServer> = fastify() as any,
) {
const instance =
instanceOrOptions &&
(instanceOrOptions as fastify.FastifyInstance<any, any, any>).server
(instanceOrOptions as FastifyInstance<TServer>).server
? instanceOrOptions
: fastify((instanceOrOptions as any) as fastify.ServerOptions);
: fastify(instanceOrOptions as FastifyServerOptions);
super(instance);
}
public listen(port: string | number, callback?: () => void);
public listen(port: string | number, hostname: string, callback?: () => void);
public listen(port: any, ...args: any[]) {
public async init() {
if (this.isMiddieRegistered) {
return;
}
await this.registerMiddie();
}
public listen(port: string | number, callback?: () => void): void;
public listen(
port: string | number,
hostname: string,
callback?: () => void,
): void;
public listen(port: string | number, ...args: any[]): Promise<string> {
if (typeof port === 'string') {
port = parseInt(port);
}
return this.instance.listen(port, ...args);
}
public reply(response: any, body: any, statusCode?: number) {
const isNativeResponse = typeof response.status !== 'function';
if (isNativeResponse) {
const fastifyContext = {
preSerialization: null,
preValidation: [],
preHandler: [],
onSend: [],
onError: [],
};
response = new Reply(response, fastifyContext, {});
}
public reply(
response: TRawResponse | FastifyReply,
body: any,
statusCode?: number,
) {
const fastifyReply: FastifyReply = this.isNativeResponse(response)
? new Reply(
response,
{
context: {
preSerialization: null,
preValidation: [],
preHandler: [],
onSend: [],
onError: [],
},
},
{},
)
: response;
if (statusCode) {
response.status(statusCode);
fastifyReply.status(statusCode);
}
return response.send(body);
return fastifyReply.send(body);
}
public status(response: any, statusCode: number) {
const isNativeResponse = typeof response.code !== 'function';
if (isNativeResponse) {
public status(response: TRawResponse | FastifyReply, statusCode: number) {
if (this.isNativeResponse(response)) {
response.statusCode = statusCode;
return response;
}
return response.code(statusCode);
}
public render(response: any, view: string, options: any) {
return response.view(view, options);
public render(
response: FastifyReply & { view: Function },
view: string,
options: any,
) {
return response && response.view(view, options);
}
public redirect(response: any, statusCode: number, url: string) {
const code = statusCode ? statusCode : HttpStatus.FOUND;
public redirect(response: FastifyReply, statusCode: number, url: string) {
const code = statusCode ?? HttpStatus.FOUND;
return response.status(code).redirect(url);
}
public setErrorHandler(
handler: Parameters<fastify.FastifyInstance['setErrorHandler']>[0],
prefix?: string,
handler: Parameters<
FastifyInstance<TServer, TRawRequest, TRawResponse>['setErrorHandler']
>[0],
) {
return this.instance.setErrorHandler(handler);
}
public setNotFoundHandler(
handler: Parameters<fastify.FastifyInstance['setNotFoundHandler']>[0],
prefix?: string,
handler: Parameters<
FastifyInstance<TServer, TRawRequest, TRawResponse>['setNotFoundHandler']
>[0],
) {
return this.instance.setNotFoundHandler(handler);
}
public getHttpServer<TServer = any>(): TServer {
return this.instance.server as TServer;
public getHttpServer<T = TServer>(): T {
return (this.instance.server as unknown) as T;
}
public getInstance<TServer = any>(): TServer {
return this.instance as TServer;
public getInstance<
T = FastifyInstance<TServer, TRawRequest, TRawResponse>
>(): T {
return (this.instance as unknown) as T;
}
public register(...args: any[]) {
return this.instance.register(...args);
public register<Options extends FastifyPluginOptions>(
plugin: FastifyPlugin<Options>,
opts?: FastifyRegisterOptions<Options>,
) {
return this.instance.register(plugin, opts);
}
public inject(...args: any[]) {
return this.instance.inject(...args);
public async inject(opts: InjectOptions | string) {
return await this.instance.inject(opts);
}
public close() {
return this.instance.close();
public async close() {
try {
return await this.instance.close();
} catch (err) {
// Check if server is still running
if (err.code !== 'ERR_SERVER_NOT_RUNNING') {
throw err;
}
return;
}
}
public initHttpServer(options: NestApplicationOptions) {
public initHttpServer() {
this.httpServer = this.instance.server;
}
public useStaticAssets(options: {
root: string;
prefix?: string;
setHeaders?: Function;
send?: any;
}) {
public useStaticAssets(options: FastifyStaticOptions) {
return this.register(
loadPackage('fastify-static', 'FastifyAdapter.useStaticAssets()', () =>
require('fastify-static'),
),
loadPackage('fastify-static', 'FastifyAdapter.useStaticAssets()'),
options,
);
}
public setViewEngine(options: any) {
public setViewEngine(options: PointOfViewOptions | string) {
if (typeof options === 'string') {
new Logger('FastifyAdapter').error(
"setViewEngine() doesn't support a string argument.",
);
process.exit(1);
}
return this.register(
loadPackage('point-of-view', 'FastifyAdapter.setViewEngine()'),
options,
() => require('point-of-view'),
);
}
public setHeader(response: any, name: string, value: string) {
public setHeader(response: FastifyReply, name: string, value: string) {
return response.header(name, value);
}
public getRequestHostname(request: any): string {
public getRequestHostname(request: FastifyRequest): string {
return request.hostname;
}
public getRequestMethod(request: any): string {
public getRequestMethod(request: FastifyRequest): string {
return request.raw ? request.raw.method : request.method;
}
public getRequestUrl(request: any): string {
public getRequestUrl(request: FastifyRequest): string {
return request.raw ? request.raw.url : request.url;
}
public enableCors(options: CorsOptions) {
this.register(cors, options);
this.register(require('fastify-cors'), options);
}
public registerParserMiddleware() {
this.register(formBody);
this.register(require('fastify-formbody'));
}
public createMiddlewareFactory(
public async createMiddlewareFactory(
requestMethod: RequestMethod,
): (path: string, callback: Function) => any {
): Promise<(path: string, callback: Function) => any> {
if (!this.isMiddieRegistered) {
await this.registerMiddie();
}
return (path: string, callback: Function) => {
const re = pathToRegexp(path);
const normalizedPath = path === '/*' ? '' : path;
@@ -190,10 +292,18 @@ export class FastifyAdapter<TInstance = any> extends AbstractHttpAdapter {
return 'fastify';
}
protected registerWithPrefix<T extends fastify.Plugin<any, any, any, any>>(
factory: T,
prefix = '/',
): ReturnType<fastify.FastifyInstance['register']> {
protected registerWithPrefix(factory: FastifyPlugin, prefix = '/') {
return this.instance.register(factory, { prefix });
}
private isNativeResponse(
response: TRawResponse | FastifyReply,
): response is TRawResponse {
return !('status' in response);
}
private async registerMiddie() {
this.isMiddieRegistered = true;
await this.register(require('middie'));
}
}

View File

@@ -0,0 +1,48 @@
/**
* "fastify-static" interfaces
* @see https://github.com/fastify/fastify-static/blob/master/index.d.ts
*/
interface ListDir {
href: string;
name: string;
}
interface ListFile {
href: string;
name: string;
}
interface ListRender {
(dirs: ListDir[], files: ListFile[]): string;
}
interface ListOptions {
format: 'json' | 'html';
names: string[];
render: ListRender;
}
export interface FastifyStaticOptions {
root: string;
prefix?: string;
prefixAvoidTrailingSlash?: boolean;
serve?: boolean;
decorateReply?: boolean;
schemaHide?: boolean;
setHeaders?: (...args: any[]) => void;
redirect?: boolean;
wildcard?: boolean | string;
list?: boolean | ListOptions;
// Passed on to `send`
acceptRanges?: boolean;
cacheControl?: boolean;
dotfiles?: boolean;
etag?: boolean;
extensions?: string[];
immutable?: boolean;
index?: string[];
lastModified?: boolean;
maxAge?: string | number;
}

View File

@@ -0,0 +1,2 @@
export * from './fastify-static-options.interface';
export * from './point-of-view-options.interface';

View File

@@ -0,0 +1,26 @@
/**
* @see https://github.com/fastify/point-of-view/blob/master/index.d.ts
*/
export interface PointOfViewOptions {
engine: {
ejs?: any;
nunjucks?: any;
pug?: any;
handlebars?: any;
marko?: any;
mustache?: any;
'art-template'?: any;
twig?: any;
};
templates?: string;
includeViewExtension?: boolean;
options?: object;
charset?: string;
maxCache?: number;
production?: boolean;
defaultContext?: object;
layout?: string;
root?: string;
viewExt?: string;
}

View File

@@ -1,5 +1,14 @@
import { INestApplication } from '@nestjs/common';
import { HTTPInjectOptions, HTTPInjectResponse } from 'fastify';
import {
FastifyPlugin,
FastifyPluginOptions,
FastifyRegisterOptions,
} from 'fastify';
import {
InjectOptions,
Response as LightMyRequestResponse,
} from 'light-my-request';
import { FastifyStaticOptions, PointOfViewOptions } from './external';
export interface NestFastifyApplication extends INestApplication {
/**
@@ -8,7 +17,10 @@ export interface NestFastifyApplication extends INestApplication {
*
* @returns {this}
*/
register(...args: any[]): this;
register<Options extends FastifyPluginOptions>(
plugin: FastifyPlugin<Options>,
opts?: FastifyRegisterOptions<Options>,
): this;
/**
* Sets a base directory for public assets.
@@ -16,25 +28,21 @@ export interface NestFastifyApplication extends INestApplication {
*
* @returns {this}
*/
useStaticAssets(options: {
root: string;
prefix?: string;
setHeaders?: Function;
send?: any;
}): this;
useStaticAssets(options: FastifyStaticOptions): this;
/**
* Sets a view engine for templates (views), for example: `pug`, `handlebars`, or `ejs`.
*
* Don't pass in a string. The string type in the argument is for compatibilility reason and will cause an exception.
* @returns {this}
*/
setViewEngine(options: any): this;
setViewEngine(options: PointOfViewOptions | string): this;
/**
* A wrapper function around native `fastify.inject()` method.
* @returns {void}
*/
inject(opts: HTTPInjectOptions | string): Promise<HTTPInjectResponse>;
inject(opts: InjectOptions | string): Promise<LightMyRequestResponse>;
/**
* Starts the application.

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/platform-fastify",
"version": "7.2.0",
"version": "7.4.4",
"description": "Nest - modern, fast, powerful node.js web framework (@platform-fastify)",
"author": "Kamil Mysliwiec",
"license": "MIT",
@@ -17,11 +17,13 @@
"access": "public"
},
"dependencies": {
"fastify": "2.14.1",
"fastify-cors": "3.0.3",
"fastify-formbody": "3.2.0",
"fastify": "3.3.0",
"fastify-cors": "4.1.0",
"fastify-formbody": "5.0.0",
"light-my-request": "4.0.2",
"middie": "5.1.0",
"path-to-regexp": "3.2.0",
"tslib": "2.0.0"
"tslib": "2.0.1"
},
"peerDependencies": {
"@nestjs/common": "^7.0.0",

View File

@@ -54,9 +54,11 @@ With official support, you can get expert help straight from Nest core team. We
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
#### Principal Sponsor
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="220" /></a>
#### Principal Sponsors
<table style="text-align:center;"><tr><td>
<a href="https://github.com/Sanofi-IADC" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/sanofi.png" width="180" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="180" valign="middle" /></a></td>
</tr></table>
#### Silver Sponsors
@@ -84,7 +86,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://www.codeguesser.co.uk" target="_blank"><img src="https://nestjs.com/img/codeguesser-logo.svg" width="120" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://tekhattan.com" target="_blank"><img src="https://nestjs.com/img/tekhattan-logo.png" width="110" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://f-a.nz/" target="_blank"><img src="https://nestjs.com/img/franz.svg" width="80" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td></tr></table>
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td>
<td align="center" valign="middle">
<a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" width="97" valign="middle" /></a> </td></tr>
<tr><td align="center" valign="middle"><a href="https://sanyodigital.com/" target="_blank"><img src="https://nestjs.com/img/sanyo-digital.png" width="130" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://vpn-review.com/vpn-for-torrenting" target="_blank"><img src="https://nestjs.com/img/vpn-review-logo.png" width="85" valign="middle" /></a></td>
</tr></table>
## Backers

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/platform-socket.io",
"version": "7.2.0",
"version": "7.4.4",
"description": "Nest - modern, fast, powerful node.js web framework (@platform-socket.io)",
"author": "Kamil Mysliwiec",
"license": "MIT",
@@ -18,7 +18,7 @@
},
"dependencies": {
"socket.io": "2.3.0",
"tslib": "2.0.0"
"tslib": "2.0.1"
},
"peerDependencies": {
"@nestjs/common": "^7.0.0",

View File

@@ -54,9 +54,11 @@ With official support, you can get expert help straight from Nest core team. We
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
#### Principal Sponsor
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="220" /></a>
#### Principal Sponsors
<table style="text-align:center;"><tr><td>
<a href="https://github.com/Sanofi-IADC" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/sanofi.png" width="180" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="180" valign="middle" /></a></td>
</tr></table>
#### Silver Sponsors
@@ -84,7 +86,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://www.codeguesser.co.uk" target="_blank"><img src="https://nestjs.com/img/codeguesser-logo.svg" width="120" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://tekhattan.com" target="_blank"><img src="https://nestjs.com/img/tekhattan-logo.png" width="110" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://f-a.nz/" target="_blank"><img src="https://nestjs.com/img/franz.svg" width="80" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td></tr></table>
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td>
<td align="center" valign="middle">
<a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" width="97" valign="middle" /></a> </td></tr>
<tr><td align="center" valign="middle"><a href="https://sanyodigital.com/" target="_blank"><img src="https://nestjs.com/img/sanyo-digital.png" width="130" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://vpn-review.com/vpn-for-torrenting" target="_blank"><img src="https://nestjs.com/img/vpn-review-logo.png" width="85" valign="middle" /></a></td>
</tr></table>
## Backers

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/platform-ws",
"version": "7.2.0",
"version": "7.4.4",
"description": "Nest - modern, fast, powerful node.js web framework (@platform-ws)",
"author": "Kamil Mysliwiec",
"license": "MIT",
@@ -17,8 +17,8 @@
"access": "public"
},
"dependencies": {
"tslib": "2.0.0",
"ws": "7.3.0"
"tslib": "2.0.1",
"ws": "7.3.1"
},
"peerDependencies": {
"@nestjs/common": "^7.0.0",

View File

@@ -54,9 +54,11 @@ With official support, you can get expert help straight from Nest core team. We
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
#### Principal Sponsor
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="220" /></a>
#### Principal Sponsors
<table style="text-align:center;"><tr><td>
<a href="https://github.com/Sanofi-IADC" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/sanofi.png" width="180" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="180" valign="middle" /></a></td>
</tr></table>
#### Silver Sponsors
@@ -84,7 +86,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://www.codeguesser.co.uk" target="_blank"><img src="https://nestjs.com/img/codeguesser-logo.svg" width="120" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://tekhattan.com" target="_blank"><img src="https://nestjs.com/img/tekhattan-logo.png" width="110" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://f-a.nz/" target="_blank"><img src="https://nestjs.com/img/franz.svg" width="80" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td></tr></table>
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td>
<td align="center" valign="middle">
<a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" width="97" valign="middle" /></a> </td></tr>
<tr><td align="center" valign="middle"><a href="https://sanyodigital.com/" target="_blank"><img src="https://nestjs.com/img/sanyo-digital.png" width="130" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://vpn-review.com/vpn-for-torrenting" target="_blank"><img src="https://nestjs.com/img/vpn-review-logo.png" width="85" valign="middle" /></a></td>
</tr></table>
## Backers

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/testing",
"version": "7.2.0",
"version": "7.4.4",
"description": "Nest - modern, fast, powerful node.js web framework (@testing)",
"author": "Kamil Mysliwiec",
"license": "MIT",
@@ -18,7 +18,7 @@
},
"dependencies": {
"optional": "0.1.4",
"tslib": "2.0.0"
"tslib": "2.0.1"
},
"peerDependencies": {
"@nestjs/common": "^7.0.0",

View File

@@ -3,13 +3,17 @@ import {
INestApplication,
INestMicroservice,
Logger,
NestApplicationOptions,
Type,
} from '@nestjs/common';
import { NestMicroserviceOptions } from '@nestjs/common/interfaces/microservices/nest-microservice-options.interface';
import { NestApplicationContextOptions } from '@nestjs/common/interfaces/nest-application-context-options.interface';
import { NestApplicationOptions } from '@nestjs/common/interfaces/nest-application-options.interface';
import { Type } from '@nestjs/common/interfaces/type.interface';
import { loadPackage } from '@nestjs/common/utils/load-package.util';
import { NestApplication, NestApplicationContext } from '@nestjs/core';
import {
AbstractHttpAdapter,
NestApplication,
NestApplicationContext,
} from '@nestjs/core';
import { ApplicationConfig } from '@nestjs/core/application-config';
import { NestContainer } from '@nestjs/core/injector/container';
import { Module } from '@nestjs/core/injector/module';
@@ -25,7 +29,7 @@ export class TestingModule extends NestApplicationContext {
}
public createNestApplication<T extends INestApplication = INestApplication>(
httpAdapter?: HttpServer,
httpAdapter?: HttpServer | AbstractHttpAdapter,
options?: NestApplicationOptions,
): T {
httpAdapter = httpAdapter || this.createHttpAdapter();
@@ -58,7 +62,7 @@ export class TestingModule extends NestApplicationContext {
);
}
private createHttpAdapter<T = any>(httpServer?: T): HttpServer {
private createHttpAdapter<T = any>(httpServer?: T): AbstractHttpAdapter {
const { ExpressAdapter } = loadPackage(
'@nestjs/platform-express',
'NestFactory',

View File

@@ -54,9 +54,11 @@ With official support, you can get expert help straight from Nest core team. We
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
#### Principal Sponsor
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="220" /></a>
#### Principal Sponsors
<table style="text-align:center;"><tr><td>
<a href="https://github.com/Sanofi-IADC" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/sanofi.png" width="180" valign="middle" /></a></td><td>
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="180" valign="middle" /></a></td>
</tr></table>
#### Silver Sponsors
@@ -84,7 +86,11 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://www.codeguesser.co.uk" target="_blank"><img src="https://nestjs.com/img/codeguesser-logo.svg" width="120" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://tekhattan.com" target="_blank"><img src="https://nestjs.com/img/tekhattan-logo.png" width="110" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://f-a.nz/" target="_blank"><img src="https://nestjs.com/img/franz.svg" width="80" valign="middle" /></a> </td><td align="center" valign="middle">
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td></tr></table>
<a href="https://sparkfabrik.com/" target="_blank"><img src="https://nestjs.com/img/sparkfabrik-logo.png" width="120" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://www.thebigphonestore.co.uk/" target="_blank"><img src="https://nestjs.com/img/the-big-phone-store-logo.png" width="65" valign="middle" /></a></td>
<td align="center" valign="middle">
<a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" width="97" valign="middle" /></a> </td></tr>
<tr><td align="center" valign="middle"><a href="https://sanyodigital.com/" target="_blank"><img src="https://nestjs.com/img/sanyo-digital.png" width="130" valign="middle" /></a></td><td align="center" valign="middle"><a href="https://vpn-review.com/vpn-for-torrenting" target="_blank"><img src="https://nestjs.com/img/vpn-review-logo.png" width="85" valign="middle" /></a></td>
</tr></table>
## Backers

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/websockets",
"version": "7.2.0",
"version": "7.4.4",
"description": "Nest - modern, fast, powerful node.js web framework (@websockets)",
"author": "Kamil Mysliwiec",
"license": "MIT",
@@ -13,11 +13,11 @@
},
"dependencies": {
"iterare": "1.2.1",
"tslib": "2.0.0"
"tslib": "2.0.1"
},
"devDependencies": {
"@nestjs/common": "7.2.0",
"@nestjs/core": "7.2.0"
"@nestjs/common": "7.4.4",
"@nestjs/core": "7.4.4"
},
"peerDependencies": {
"@nestjs/common": "^7.0.0",

File diff suppressed because it is too large Load Diff

View File

@@ -19,36 +19,36 @@
"test:e2e": "jest --config ./e2e/jest-e2e.json"
},
"dependencies": {
"@nestjs/common": "7.1.3",
"@nestjs/core": "7.1.3",
"@nestjs/platform-express": "7.1.3",
"class-transformer": "0.2.3",
"@nestjs/common": "7.4.3",
"@nestjs/core": "7.4.3",
"@nestjs/platform-express": "7.4.3",
"class-transformer": "0.3.1",
"class-validator": "0.12.2",
"reflect-metadata": "0.1.13",
"rimraf": "3.0.2",
"rxjs": "6.5.5"
"rxjs": "6.6.2"
},
"devDependencies": {
"@nestjs/cli": "7.2.0",
"@nestjs/schematics": "7.0.1",
"@nestjs/testing": "7.1.3",
"@types/express": "4.17.6",
"@types/jest": "25.2.1",
"@nestjs/cli": "7.5.1",
"@nestjs/schematics": "7.1.1",
"@nestjs/testing": "7.4.3",
"@types/express": "4.17.7",
"@types/jest": "26.0.10",
"@types/node": "10.17.3",
"@types/supertest": "2.0.9",
"jest": "26.0.1",
"prettier": "2.0.5",
"@types/supertest": "2.0.10",
"jest": "26.4.2",
"prettier": "2.1.1",
"supertest": "4.0.2",
"ts-jest": "26.1.0",
"ts-loader": "7.0.5",
"ts-node": "8.10.2",
"ts-jest": "26.3.0",
"ts-loader": "8.0.3",
"ts-node": "9.0.0",
"tsconfig-paths": "3.9.0",
"@typescript-eslint/eslint-plugin": "3.3.0",
"@typescript-eslint/parser": "3.3.0",
"eslint": "7.2.0",
"@typescript-eslint/eslint-plugin": "3.10.1",
"@typescript-eslint/parser": "3.10.1",
"eslint": "7.7.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-import": "2.21.2",
"typescript": "3.9.5"
"eslint-plugin-import": "2.22.0",
"typescript": "4.0.2"
},
"jest": {
"moduleFileExtensions": [

File diff suppressed because it is too large Load Diff

View File

@@ -19,40 +19,40 @@
"test:e2e": "echo 'No e2e tests implemented yet.'"
},
"dependencies": {
"@nestjs/common": "7.1.3",
"@nestjs/core": "7.1.3",
"@nestjs/platform-express": "7.1.3",
"@nestjs/platform-socket.io": "7.1.3",
"@nestjs/websockets": "7.1.3",
"class-transformer": "0.2.3",
"@nestjs/common": "7.4.3",
"@nestjs/core": "7.4.3",
"@nestjs/platform-express": "7.4.3",
"@nestjs/platform-socket.io": "7.4.3",
"@nestjs/websockets": "7.4.3",
"class-transformer": "0.3.1",
"class-validator": "0.12.2",
"reflect-metadata": "0.1.13",
"rimraf": "3.0.2",
"rxjs": "6.5.5",
"rxjs": "6.6.2",
"socket.io-redis": "5.3.0"
},
"devDependencies": {
"@types/socket.io": "2.1.8",
"@types/socket.io": "2.1.11",
"@types/socket.io-redis": "1.0.26",
"@types/ws": "7.2.5",
"@nestjs/cli": "7.2.0",
"@nestjs/schematics": "7.0.1",
"@nestjs/testing": "7.1.3",
"@types/express": "4.17.6",
"@types/ws": "7.2.6",
"@nestjs/cli": "7.5.1",
"@nestjs/schematics": "7.1.1",
"@nestjs/testing": "7.4.3",
"@types/express": "4.17.7",
"@types/node": "7.10.9",
"@types/supertest": "2.0.9",
"jest": "26.0.1",
"prettier": "2.0.5",
"@types/supertest": "2.0.10",
"jest": "26.4.2",
"prettier": "2.1.1",
"supertest": "4.0.2",
"ts-jest": "26.1.0",
"ts-loader": "7.0.5",
"ts-node": "8.10.2",
"ts-jest": "26.3.0",
"ts-loader": "8.0.3",
"ts-node": "9.0.0",
"tsconfig-paths": "3.9.0",
"@typescript-eslint/eslint-plugin": "3.3.0",
"@typescript-eslint/parser": "3.3.0",
"eslint": "7.2.0",
"@typescript-eslint/eslint-plugin": "3.10.1",
"@typescript-eslint/parser": "3.10.1",
"eslint": "7.7.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-import": "2.21.2",
"typescript": "3.9.5"
"eslint-plugin-import": "2.22.0",
"typescript": "4.0.2"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -19,36 +19,36 @@
"test:e2e": "echo 'No e2e tests implemented yet.'"
},
"dependencies": {
"@nestjs/common": "7.1.3",
"@nestjs/core": "7.1.3",
"@nestjs/microservices": "7.1.3",
"@nestjs/platform-express": "7.1.3",
"class-transformer": "0.2.3",
"@nestjs/common": "7.4.3",
"@nestjs/core": "7.4.3",
"@nestjs/microservices": "7.4.3",
"@nestjs/platform-express": "7.4.3",
"class-transformer": "0.3.1",
"class-validator": "0.12.2",
"reflect-metadata": "0.1.13",
"rimraf": "3.0.2",
"rxjs": "6.5.5"
"rxjs": "6.6.2"
},
"devDependencies": {
"@nestjs/cli": "7.2.0",
"@nestjs/schematics": "7.0.1",
"@nestjs/testing": "7.1.3",
"@nestjs/cli": "7.5.1",
"@nestjs/schematics": "7.1.1",
"@nestjs/testing": "7.4.3",
"@types/amqplib": "0.5.13",
"@types/express": "4.17.6",
"@types/express": "4.17.7",
"@types/node": "12.12.31",
"@types/supertest": "2.0.9",
"jest": "26.0.1",
"prettier": "2.0.5",
"@types/supertest": "2.0.10",
"jest": "26.4.2",
"prettier": "2.1.1",
"supertest": "4.0.2",
"ts-jest": "26.1.0",
"ts-loader": "7.0.5",
"ts-node": "8.10.2",
"ts-jest": "26.3.0",
"ts-loader": "8.0.3",
"ts-node": "9.0.0",
"tsconfig-paths": "3.9.0",
"@typescript-eslint/eslint-plugin": "3.3.0",
"@typescript-eslint/parser": "3.3.0",
"eslint": "7.2.0",
"@typescript-eslint/eslint-plugin": "3.10.1",
"@typescript-eslint/parser": "3.10.1",
"eslint": "7.7.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-import": "2.21.2",
"typescript": "3.9.5"
"eslint-plugin-import": "2.22.0",
"typescript": "4.0.2"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -19,37 +19,37 @@
"test:e2e": "echo 'No e2e tests implemented yet.'"
},
"dependencies": {
"@grpc/proto-loader": "0.5.4",
"@nestjs/common": "7.1.3",
"@nestjs/core": "7.1.3",
"@nestjs/microservices": "7.1.3",
"class-transformer": "0.2.3",
"@grpc/proto-loader": "0.5.5",
"@nestjs/common": "7.4.3",
"@nestjs/core": "7.4.3",
"@nestjs/microservices": "7.4.3",
"class-transformer": "0.3.1",
"class-validator": "0.12.2",
"grpc": "1.24.3",
"reflect-metadata": "0.1.13",
"rimraf": "3.0.2",
"rxjs": "6.5.5"
"rxjs": "6.6.2"
},
"devDependencies": {
"@nestjs/cli": "7.2.0",
"@nestjs/schematics": "7.0.1",
"@nestjs/testing": "7.1.3",
"@types/express": "4.17.6",
"@nestjs/cli": "7.5.1",
"@nestjs/schematics": "7.1.1",
"@nestjs/testing": "7.4.3",
"@types/express": "4.17.7",
"@types/node": "10.17.3",
"@types/supertest": "2.0.9",
"@types/ws": "7.2.5",
"jest": "26.0.1",
"prettier": "2.0.5",
"@types/supertest": "2.0.10",
"@types/ws": "7.2.6",
"jest": "26.4.2",
"prettier": "2.1.1",
"supertest": "4.0.2",
"ts-jest": "26.1.0",
"ts-loader": "7.0.5",
"ts-node": "8.10.2",
"ts-jest": "26.3.0",
"ts-loader": "8.0.3",
"ts-node": "9.0.0",
"tsconfig-paths": "3.9.0",
"@typescript-eslint/eslint-plugin": "3.3.0",
"@typescript-eslint/parser": "3.3.0",
"eslint": "7.2.0",
"@typescript-eslint/eslint-plugin": "3.10.1",
"@typescript-eslint/parser": "3.10.1",
"eslint": "7.7.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-import": "2.21.2",
"typescript": "3.9.5"
"eslint-plugin-import": "2.22.0",
"typescript": "4.0.2"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -19,36 +19,36 @@
"test:e2e": "echo 'No e2e tests implemented yet.'"
},
"dependencies": {
"@nestjs/common": "7.1.3",
"@nestjs/core": "7.1.3",
"@nestjs/platform-express": "7.1.3",
"@nestjs/typeorm": "7.1.0",
"@nestjs/common": "7.4.3",
"@nestjs/core": "7.4.3",
"@nestjs/platform-express": "7.4.3",
"@nestjs/typeorm": "7.1.1",
"mysql": "2.18.1",
"reflect-metadata": "0.1.13",
"rimraf": "3.0.2",
"rxjs": "6.5.5",
"rxjs": "6.6.2",
"typeorm": "0.2.25"
},
"devDependencies": {
"@nestjs/cli": "7.2.0",
"@nestjs/schematics": "7.0.1",
"@nestjs/testing": "7.1.3",
"@types/express": "4.17.6",
"@nestjs/cli": "7.5.1",
"@nestjs/schematics": "7.1.1",
"@nestjs/testing": "7.4.3",
"@types/express": "4.17.7",
"@types/node": "7.10.9",
"@types/supertest": "2.0.9",
"@types/ws": "7.2.5",
"jest": "26.0.1",
"prettier": "2.0.5",
"@types/supertest": "2.0.10",
"@types/ws": "7.2.6",
"jest": "26.4.2",
"prettier": "2.1.1",
"supertest": "4.0.2",
"ts-jest": "26.1.0",
"ts-loader": "7.0.5",
"ts-node": "8.10.2",
"ts-jest": "26.3.0",
"ts-loader": "8.0.3",
"ts-node": "9.0.0",
"tsconfig-paths": "3.9.0",
"@typescript-eslint/eslint-plugin": "3.3.0",
"@typescript-eslint/parser": "3.3.0",
"eslint": "7.2.0",
"@typescript-eslint/eslint-plugin": "3.10.1",
"@typescript-eslint/parser": "3.10.1",
"eslint": "7.7.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-import": "2.21.2",
"typescript": "3.9.5"
"eslint-plugin-import": "2.22.0",
"typescript": "4.0.2"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -19,36 +19,36 @@
"test:e2e": "echo 'No e2e tests implemented yet.'"
},
"dependencies": {
"@nestjs/common": "7.1.3",
"@nestjs/core": "7.1.3",
"@nestjs/mongoose": "7.0.1",
"@nestjs/platform-express": "7.1.3",
"mongoose": "5.9.19",
"@nestjs/common": "7.4.3",
"@nestjs/core": "7.4.3",
"@nestjs/mongoose": "7.0.2",
"@nestjs/platform-express": "7.4.3",
"mongoose": "5.10.2",
"reflect-metadata": "0.1.13",
"rimraf": "3.0.2",
"rxjs": "6.5.5"
"rxjs": "6.6.2"
},
"devDependencies": {
"@types/mongoose": "5.7.26",
"@nestjs/cli": "7.2.0",
"@nestjs/schematics": "7.0.1",
"@nestjs/testing": "7.1.3",
"@types/express": "4.17.6",
"@types/mongoose": "5.7.36",
"@nestjs/cli": "7.5.1",
"@nestjs/schematics": "7.1.1",
"@nestjs/testing": "7.4.3",
"@types/express": "4.17.7",
"@types/node": "12.12.31",
"@types/supertest": "2.0.9",
"@types/ws": "7.2.5",
"jest": "26.0.1",
"prettier": "2.0.5",
"@types/supertest": "2.0.10",
"@types/ws": "7.2.6",
"jest": "26.4.2",
"prettier": "2.1.1",
"supertest": "4.0.2",
"ts-jest": "26.1.0",
"ts-loader": "7.0.5",
"ts-node": "8.10.2",
"ts-jest": "26.3.0",
"ts-loader": "8.0.3",
"ts-node": "9.0.0",
"tsconfig-paths": "3.9.0",
"@typescript-eslint/eslint-plugin": "3.3.0",
"@typescript-eslint/parser": "3.3.0",
"eslint": "7.2.0",
"@typescript-eslint/eslint-plugin": "3.10.1",
"@typescript-eslint/parser": "3.10.1",
"eslint": "7.7.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-import": "2.21.2",
"typescript": "3.9.5"
"eslint-plugin-import": "2.22.0",
"typescript": "4.0.2"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -19,39 +19,39 @@
"test:e2e": "echo 'No e2e tests implemented yet.'"
},
"dependencies": {
"@nestjs/common": "7.1.3",
"@nestjs/core": "7.1.3",
"@nestjs/platform-express": "7.1.3",
"@nestjs/sequelize": "0.1.0",
"@nestjs/common": "7.4.3",
"@nestjs/core": "7.4.3",
"@nestjs/platform-express": "7.4.3",
"@nestjs/sequelize": "0.1.1",
"mysql2": "2.1.0",
"reflect-metadata": "0.1.13",
"rimraf": "3.0.2",
"rxjs": "6.5.5",
"sequelize": "5.21.13",
"rxjs": "6.6.2",
"sequelize": "5.22.3",
"sequelize-typescript": "1.1.0",
"typescript": "3.9.5"
"typescript": "4.0.2"
},
"devDependencies": {
"@types/sequelize": "4.28.9",
"@nestjs/cli": "7.2.0",
"@nestjs/schematics": "7.0.1",
"@nestjs/testing": "7.1.3",
"@types/express": "4.17.6",
"@nestjs/cli": "7.5.1",
"@nestjs/schematics": "7.1.1",
"@nestjs/testing": "7.4.3",
"@types/express": "4.17.7",
"@types/node": "12.12.31",
"@types/supertest": "2.0.9",
"@types/ws": "7.2.5",
"jest": "26.0.1",
"prettier": "2.0.5",
"@types/supertest": "2.0.10",
"@types/ws": "7.2.6",
"jest": "26.4.2",
"prettier": "2.1.1",
"supertest": "4.0.2",
"ts-jest": "26.1.0",
"ts-loader": "7.0.5",
"ts-node": "8.10.2",
"ts-jest": "26.3.0",
"ts-loader": "8.0.3",
"ts-node": "9.0.0",
"tsconfig-paths": "3.9.0",
"@typescript-eslint/eslint-plugin": "3.3.0",
"@typescript-eslint/parser": "3.3.0",
"eslint": "7.2.0",
"@typescript-eslint/eslint-plugin": "3.10.1",
"@typescript-eslint/parser": "3.10.1",
"eslint": "7.7.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-import": "2.21.2",
"typescript": "3.9.5"
"eslint-plugin-import": "2.22.0",
"typescript": "4.0.2"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -11,25 +11,25 @@
"test:e2e": "echo 'No e2e tests implemented yet.'"
},
"dependencies": {
"@nestjs/common": "7.1.3",
"@nestjs/core": "7.1.3",
"@nestjs/platform-express": "7.1.3",
"@nestjs/common": "7.4.3",
"@nestjs/core": "7.4.3",
"@nestjs/platform-express": "7.4.3",
"reflect-metadata": "0.1.13",
"rxjs": "6.5.5",
"typescript": "3.9.5"
"rxjs": "6.6.2",
"typescript": "4.0.2"
},
"devDependencies": {
"@types/node": "12.12.31",
"@typescript-eslint/eslint-plugin": "3.3.0",
"@typescript-eslint/parser": "3.3.0",
"eslint": "7.2.0",
"@typescript-eslint/eslint-plugin": "3.10.1",
"@typescript-eslint/parser": "3.10.1",
"eslint": "7.7.0",
"eslint-config-prettier": "6.11.0",
"eslint-plugin-import": "2.21.2",
"eslint-plugin-import": "2.22.0",
"start-server-webpack-plugin": "2.2.5",
"ts-loader": "7.0.5",
"ts-node": "8.10.2",
"webpack": "4.43.0",
"webpack-cli": "3.3.11",
"ts-loader": "8.0.3",
"ts-node": "9.0.0",
"webpack": "4.44.1",
"webpack-cli": "3.3.12",
"webpack-node-externals": "1.7.2"
}
}

View File

@@ -9,7 +9,7 @@ module.exports = function(options) {
watch: true,
externals: [
nodeExternals({
whitelist: ['webpack/hot/poll?100'],
allowlist: ['webpack/hot/poll?100'],
}),
],
plugins: [

File diff suppressed because it is too large Load Diff

View File

@@ -13,27 +13,27 @@
"test:e2e": "echo 'No e2e tests implemented yet.'"
},
"dependencies": {
"@nestjs/common": "7.1.3",
"@nestjs/core": "7.1.3",
"@nestjs/platform-express": "7.1.3",
"@nestjs/microservices": "7.1.3",
"@nestjs/websockets": "7.1.3",
"@nestjs/common": "7.4.3",
"@nestjs/core": "7.4.3",
"@nestjs/platform-express": "7.4.3",
"@nestjs/microservices": "7.4.3",
"@nestjs/websockets": "7.4.3",
"reflect-metadata": "0.1.13",
"rxjs": "6.5.5"
"rxjs": "6.6.2"
},
"devDependencies": {
"@babel/cli": "7.10.1",
"@babel/core": "7.10.2",
"@babel/node": "7.10.1",
"@babel/plugin-proposal-decorators": "7.10.1",
"@babel/plugin-transform-runtime": "7.10.1",
"@babel/preset-env": "7.10.2",
"@babel/register": "7.10.1",
"@babel/runtime": "7.10.2",
"@nestjs/testing": "7.1.3",
"jest": "26.0.1",
"@babel/cli": "7.10.5",
"@babel/core": "7.11.4",
"@babel/node": "7.10.5",
"@babel/plugin-proposal-decorators": "7.10.5",
"@babel/plugin-transform-runtime": "7.11.0",
"@babel/preset-env": "7.11.0",
"@babel/register": "7.10.5",
"@babel/runtime": "7.11.2",
"@nestjs/testing": "7.4.3",
"jest": "26.4.2",
"nodemon": "2.0.4",
"prettier": "2.0.5",
"prettier": "2.1.1",
"supertest": "4.0.2"
},
"jest": {

File diff suppressed because it is too large Load Diff

Some files were not shown because too many files have changed in this diff Show More