Compare commits

...

852 Commits

Author SHA1 Message Date
Kamil Myśliwiec
2b2d5782b8 chore(@nestjs) publish v6.5.3 release 2019-07-18 10:52:37 +02:00
Kamil Myśliwiec
c6890e59e6 chore(): publish 6.5.3 release 2019-07-18 10:51:14 +02:00
Kamil Mysliwiec
2b2c78a46b Merge pull request #2548 from williamdclt/patch-1
bugfix(common): export AnyFilesInterceptor
2019-07-18 10:50:36 +02:00
Kamil Mysliwiec
623555d018 Merge pull request #2607 from nestjs/renovate/ts-morph-3.x
fix(deps): update dependency ts-morph to v3.1.3
2019-07-18 10:50:15 +02:00
Kamil Myśliwiec
72ca19b973 perf(): improve pipes performance (reduce overhead) 2019-07-18 10:49:56 +02:00
Renovate Bot
00adefad42 fix(deps): update dependency ts-morph to v3.1.3 2019-07-18 08:45:10 +00:00
Kamil Myśliwiec
4585670b96 Merge branch 'master' of https://github.com/nestjs/nest 2019-07-18 08:30:24 +02:00
Kamil Myśliwiec
0dcd010bc9 tests(): fix unit test, disable redis integration test 2019-07-18 08:30:07 +02:00
Kamil Mysliwiec
865b0317fa Merge pull request #2606 from nestjs/renovate/nestjs-graphql-6.x
fix(deps): update dependency @nestjs/graphql to v6.4.2
2019-07-17 23:06:38 +02:00
Renovate Bot
ad549e7846 fix(deps): update dependency @nestjs/graphql to v6.4.2 2019-07-17 21:04:17 +00:00
Kamil Mysliwiec
694360cdbd Merge pull request #2573 from nestjs/renovate/webpack-cli-3.x
chore(deps): update dependency webpack-cli to v3.3.6
2019-07-17 22:38:14 +02:00
Kamil Mysliwiec
8838e814fb Merge pull request #2592 from nestjs/renovate/nestjs-graphql-6.x
fix(deps): update dependency @nestjs/graphql to v6.4.1
2019-07-17 22:37:58 +02:00
Renovate Bot
16b3fb7e1c fix(deps): update dependency @nestjs/graphql to v6.4.1 2019-07-17 20:19:46 +00:00
Renovate Bot
3aa52d43c4 chore(deps): update dependency webpack-cli to v3.3.6 2019-07-17 20:18:56 +00:00
Kamil Mysliwiec
7e964b973e Merge pull request #2590 from nestjs/renovate/ts-morph-3.x
fix(deps): update dependency ts-morph to v3.1.2
2019-07-17 22:18:15 +02:00
Kamil Mysliwiec
842d2617c7 Merge pull request #2598 from nestjs/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.36.1
2019-07-17 22:16:50 +02:00
Kamil Mysliwiec
1985ebb52c Merge pull request #2602 from nestjs/renovate/node-10.x
chore(deps): update dependency @types/node to v10.14.13
2019-07-17 22:16:37 +02:00
Kamil Mysliwiec
38d56c2c50 Merge pull request #2603 from nestjs/renovate/node-7.x
chore(deps): update dependency @types/node to v7.10.7
2019-07-17 22:16:26 +02:00
Kamil Mysliwiec
d3a1c3ff7e Merge pull request #2605 from nestjs/renovate/apollo-graphql-packages
fix(deps): update dependency apollo-server-express to v2.7.0
2019-07-17 22:15:54 +02:00
Kamil Mysliwiec
9cef5fa108 Merge pull request #2604 from nestjs/renovate/node-8.x
chore(deps): update dependency @types/node to v8.10.51
2019-07-17 22:15:45 +02:00
Renovate Bot
fa57cca223 fix(deps): update dependency ts-morph to v3.1.2 2019-07-17 20:11:18 +00:00
Renovate Bot
eff133265e fix(deps): update dependency apollo-server-express to v2.7.0 2019-07-17 20:09:11 +00:00
Renovate Bot
a0803904be chore(deps): update dependency webpack to v4.36.1 2019-07-17 20:05:03 +00:00
Renovate Bot
e69d709f59 chore(deps): update dependency @types/node to v8.10.51 2019-07-17 20:04:12 +00:00
Renovate Bot
9db1c013ff chore(deps): update dependency @types/node to v7.10.7 2019-07-17 20:03:46 +00:00
Renovate Bot
a5ebf54618 chore(deps): update dependency @types/node to v10.14.13 2019-07-17 20:02:48 +00:00
Kamil Myśliwiec
fc6b35fe13 resolve conflicts 2019-07-17 22:01:09 +02:00
Kamil Myśliwiec
d613799453 test(): increase the timeout for redis integration test 2019-07-17 21:58:42 +02:00
Kamil Mysliwiec
0d29b63c07 Merge pull request #2600 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.6.5
2019-07-17 21:53:05 +02:00
Kamil Mysliwiec
54a2890946 Merge pull request #2588 from nestjs/renovate/node-12.x
chore(deps): update dependency @types/node to v12.6.8
2019-07-17 21:51:02 +02:00
Kamil Mysliwiec
404e2a4fb1 Merge pull request #2577 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.10.1
2019-07-17 21:50:15 +02:00
Kamil Mysliwiec
6195174748 Merge pull request #2593 from nestjs/renovate/multer-1.x
fix(deps): update dependency multer to v1.4.2
2019-07-17 21:49:59 +02:00
Renovate Bot
3e121891dd chore(deps): update dependency @types/node to v12.6.8 2019-07-17 19:26:30 +00:00
Renovate Bot
4fceae6bec fix(deps): update dependency mongoose to v5.6.5 2019-07-17 17:13:29 +00:00
Renovate Bot
370d0f76af fix(deps): update dependency multer to v1.4.2 2019-07-16 10:20:44 +00:00
Kamil Mysliwiec
fc99ccdb30 Merge pull request #2583 from nestjs/renovate/nestjs-swagger-3.x
fix(deps): update dependency @nestjs/swagger to v3.1.0
2019-07-15 10:57:44 +02:00
Renovate Bot
c94322d094 fix(deps): update dependency @nestjs/swagger to v3.1.0 2019-07-15 08:33:30 +00:00
Renovate Bot
dd19f15b89 fix(deps): update dependency sequelize to v5.10.1 2019-07-14 17:51:09 +00:00
Kamil Mysliwiec
bfe182d965 Merge pull request #2564 from nestjs/renovate/nestjs-graphql-6.x
fix(deps): update dependency @nestjs/graphql to v6.4.0
2019-07-14 19:36:26 +02:00
Kamil Mysliwiec
8ed4cce9f7 Merge pull request #2574 from nestjs/renovate/nestjs-typeorm-6.x
fix(deps): update dependency @nestjs/typeorm to v6.1.3
2019-07-14 19:36:17 +02:00
Renovate Bot
0db528e2aa fix(deps): update dependency @nestjs/typeorm to v6.1.3 2019-07-14 13:57:57 +00:00
Renovate Bot
32a8f90c71 fix(deps): update dependency @nestjs/graphql to v6.4.0 2019-07-14 10:30:43 +00:00
Kamil Mysliwiec
c0f70fd769 Merge pull request #2568 from nestjs/renovate/ts-morph-3.x
fix(deps): update dependency ts-morph to v3.1.1
2019-07-14 09:33:30 +02:00
Renovate Bot
d5b2bee830 fix(deps): update dependency ts-morph to v3.1.1 2019-07-13 18:45:47 +00:00
Kamil Mysliwiec
525e642286 Merge pull request #2561 from nestjs/renovate/supertest-4.x
chore(deps): update dependency supertest to v4
2019-07-12 10:22:53 +02:00
Kamil Mysliwiec
9df178f12a Merge pull request #2556 from nestjs/renovate/typescript-3.x
chore(deps): update dependency typescript to v3.5.3
2019-07-12 10:19:05 +02:00
Renovate Bot
8660043776 chore(deps): update dependency supertest to v4 2019-07-12 08:13:30 +00:00
Renovate Bot
6ff7a7f266 chore(deps): update dependency typescript to v3.5.3 2019-07-12 08:13:18 +00:00
Kamil Mysliwiec
7eafc150f0 Merge pull request #2558 from nestjs/renovate/cache-manager-2.x
fix(deps): update dependency cache-manager to v2.10.0
2019-07-12 10:12:14 +02:00
Kamil Mysliwiec
9eef47c4bf Merge pull request #2559 from nestjs/renovate/coveralls-3.x
chore(deps): update dependency coveralls to v3.0.5
2019-07-12 10:12:05 +02:00
Kamil Mysliwiec
51987bb43b Merge pull request #2555 from nestjs/renovate/pin-dependencies
fix(deps): pin dependencies
2019-07-12 10:11:44 +02:00
Renovate Bot
fdfe0ed02e chore(deps): update dependency coveralls to v3.0.5 2019-07-12 02:31:38 +00:00
Renovate Bot
c06bbbed97 fix(deps): update dependency cache-manager to v2.10.0 2019-07-11 22:15:07 +00:00
Renovate Bot
e834118914 fix(deps): pin dependencies 2019-07-11 21:38:53 +00:00
Kamil Myśliwiec
ef199730c1 build(): fix samples 2019-07-11 23:02:44 +02:00
Kamil Myśliwiec
6980da363b sample(): remove old auth sample 2019-07-11 22:41:22 +02:00
Kamil Mysliwiec
f899064410 Merge pull request #2417 from johnbiundo/auth-example
sample(auth): matches new auth chapter
2019-07-11 22:39:37 +02:00
Kamil Mysliwiec
7a50e50dbf Update users.service.ts 2019-07-11 22:39:15 +02:00
Kamil Mysliwiec
7c8f9d901c Update app.controller.ts 2019-07-11 22:38:28 +02:00
Kamil Mysliwiec
9a8de91bb9 Merge pull request #2554 from nestjs/renovate/apollo-server-monorepo
fix(deps): update dependency apollo-server-express to v2.6.9
2019-07-11 22:11:49 +02:00
Kamil Mysliwiec
6c22219605 Merge pull request #2552 from ArrivalDistributionPlatform/close-fix-missing-await
bugfix(core): fix missing await in NestApplication.close()
2019-07-11 22:05:55 +02:00
Renovate Bot
6a031f0d63 fix(deps): update dependency apollo-server-express to v2.6.9 2019-07-11 18:36:01 +00:00
weekens
d5f86c5ba4 bugfix(core): fix missing await in NestApplication.close()
NestApplication.close() was not always closing the port after promise resolve, because of the missing `await` in implementation. This commit fixes the problem.
2019-07-11 17:23:24 +03:00
Kamil Mysliwiec
b55367646c Merge pull request #2550 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.10.0
2019-07-11 14:41:11 +02:00
Kamil Mysliwiec
b7986bcaf0 Merge pull request #2543 from nestjs/renovate/grpc-1.x
fix(deps): update dependency grpc to v1.22.2
2019-07-11 14:21:18 +02:00
Renovate Bot
94781480ed fix(deps): update dependency sequelize to v5.10.0 2019-07-11 11:36:48 +00:00
Renovate Bot
aa1d192b6a fix(deps): update dependency grpc to v1.22.2 2019-07-11 11:36:38 +00:00
Kamil Mysliwiec
4bc15d483c Merge pull request #2541 from nestjs/renovate/nestjs-graphql-6.x
fix(deps): update dependency @nestjs/graphql to v6.2.5
2019-07-11 13:32:10 +02:00
Kamil Mysliwiec
1b84dda4de Merge pull request #2542 from nestjs/renovate/lint-staged-9.x
chore(deps): update dependency lint-staged to v9.2.0
2019-07-11 13:32:02 +02:00
Kamil Mysliwiec
db5bbece3a Merge pull request #2545 from nestjs/renovate/pin-dependencies
chore(deps): pin dependency fancy-log to 1.3.3
2019-07-11 13:31:53 +02:00
Kamil Mysliwiec
9fd16f7478 Merge pull request #2547 from nestjs/renovate/node-12.x
chore(deps): update dependency @types/node to v12.6.2
2019-07-11 13:31:45 +02:00
Kamil Mysliwiec
a0fd983ce1 Update Readme.md 2019-07-11 13:31:14 +02:00
Kamil Mysliwiec
445717cf15 Update Readme.md 2019-07-11 13:30:59 +02:00
Kamil Mysliwiec
f92892423f Update Readme.md 2019-07-11 13:30:02 +02:00
Kamil Mysliwiec
9830b0071c Update Readme.md 2019-07-11 13:29:35 +02:00
Duclot William
f582625bcf Platform-express: export AnyFilesInterceptor
This interceptor is referenced in the doc, it should be exported properly
2019-07-10 22:58:08 +01:00
Renovate Bot
e0d2209a06 chore(deps): update dependency @types/node to v12.6.2 2019-07-10 21:38:53 +00:00
Renovate Bot
b89133c2e7 chore(deps): pin dependency fancy-log to 1.3.3 2019-07-10 19:50:44 +00:00
Kamil Mysliwiec
6bbfd7b54f Merge pull request #2527 from BrunnerLivio/ci/build-samples
ci(): build samples in pipeline
2019-07-10 18:56:51 +02:00
Renovate Bot
5ed1edf262 chore(deps): update dependency lint-staged to v9.2.0 2019-07-10 16:32:28 +00:00
Livio
64e69cd2b5 ci(): Build samples with TravisCI 2019-07-10 17:59:39 +02:00
Livio
aabe0295c6 sample(): Fix samples build processes 2019-07-10 17:59:31 +02:00
Livio
6a6c62d430 build(): Add build:samples script 2019-07-10 15:51:33 +02:00
Renovate Bot
fded926042 fix(deps): update dependency @nestjs/graphql to v6.2.5 2019-07-10 10:44:59 +00:00
Kamil Mysliwiec
fc3dd675fa Merge pull request #2539 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v6.5.2
2019-07-10 12:30:14 +02:00
Renovate Bot
744a070658 fix(deps): update nest monorepo to v6.5.2 2019-07-10 09:54:52 +00:00
Kamil Myśliwiec
ef4ab89b0d chore(@nestjs) publish v6.5.2 release 2019-07-10 11:43:48 +02:00
Kamil Myśliwiec
3774fed640 bugfix(microservices): fix pattern regression 2019-07-10 11:42:18 +02:00
Kamil Myśliwiec
6ff7859976 chore(): publish 6.5.1 release 2019-07-10 09:37:15 +02:00
Kamil Myśliwiec
8718f4763e chore(@nestjs) publish v6.5.1 release 2019-07-10 09:35:51 +02:00
Kamil Myśliwiec
4cbebed909 Merge branch 'master' of https://github.com/nestjs/nest 2019-07-10 09:33:24 +02:00
Kamil Myśliwiec
b1388b136c fix(microservices): remove event emitter reference 2019-07-10 09:33:13 +02:00
Kamil Mysliwiec
499c94792a Merge pull request #2533 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v6.5.0
2019-07-10 08:40:13 +02:00
Renovate Bot
c93d7e4ab0 fix(deps): update nest monorepo to v6.5.0 2019-07-10 06:05:44 +00:00
Kamil Mysliwiec
2ec291cf4c Merge pull request #2537 from nestjs/renovate/mongoose-5.x
chore(deps): update dependency @types/mongoose to v5.5.8
2019-07-10 07:58:49 +02:00
Kamil Mysliwiec
e25e3c1e92 Merge pull request #2538 from nestjs/renovate/apollo-server-monorepo
fix(deps): update dependency apollo-server-express to v2.6.8
2019-07-10 07:58:39 +02:00
Renovate Bot
2655d19aa5 fix(deps): update dependency apollo-server-express to v2.6.8 2019-07-09 22:40:42 +00:00
Renovate Bot
da45d58982 chore(deps): update dependency @types/mongoose to v5.5.8 2019-07-09 20:06:07 +00:00
Kamil Myśliwiec
82db8a3743 chore(@nestjs) publish v6.5.0 release 2019-07-09 15:15:30 +02:00
Kamil Myśliwiec
bc71cb4eca chore(): publish 6.5.0 release 2019-07-09 15:14:26 +02:00
Kamil Myśliwiec
35fff662df Merge branch 'master' of https://github.com/nestjs/nest 2019-07-09 15:13:47 +02:00
Kamil Myśliwiec
531073957f Merge branch 'csidell-earny-master' 2019-07-09 15:13:40 +02:00
Kamil Myśliwiec
41e4e853f6 refactor(): adjust to the codebase guidelines 2019-07-09 15:13:26 +02:00
Kamil Myśliwiec
9166d40ade Merge branch 'master' of https://github.com/csidell-earny/nest into csidell-earny-master 2019-07-09 15:05:39 +02:00
Kamil Mysliwiec
8a9af18e3b Merge pull request #2496 from Samox/add-any-files-multer-interceptor
feat(platform-express): add any file interceptor (multer)
2019-07-09 15:05:14 +02:00
Kamil Myśliwiec
9b5ddceb1f Merge branch 'master' of https://github.com/nestjs/nest 2019-07-09 15:03:36 +02:00
Kamil Myśliwiec
704230eb56 bugfix(core): fix global request enhancers #1916 2019-07-09 15:03:26 +02:00
Kamil Mysliwiec
d150650a7a Merge pull request #2528 from jbpionnier/refactor_module_decorator
refactor(common): module decorator (metadata validation)
2019-07-09 08:57:38 +02:00
Kamil Mysliwiec
6f6d8a4a12 Merge pull request #2530 from nestjs/renovate/typescript-3.x
fix(deps): update dependency typescript to v3.5.3
2019-07-09 08:57:16 +02:00
Kamil Mysliwiec
cbcdeb2e5f Merge pull request #2526 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.6.4
2019-07-09 08:56:14 +02:00
Kamil Mysliwiec
978dd180b4 Merge pull request #2523 from nestjs/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.35.3
2019-07-09 08:56:05 +02:00
Kamil Mysliwiec
8b84c63f19 Merge pull request #2531 from nestjs/renovate/grpc-1.x
fix(deps): update dependency grpc to v1.22.0
2019-07-09 08:50:07 +02:00
Renovate Bot
573d53d6a6 fix(deps): update dependency grpc to v1.22.0 2019-07-09 00:00:39 +00:00
Renovate Bot
c0641abf40 fix(deps): update dependency typescript to v3.5.3 2019-07-08 22:36:21 +00:00
Jean-Baptiste Pionnier
f3314a280d refactor: module decorator 2019-07-08 23:23:21 +02:00
Renovate Bot
5f7605a264 fix(deps): update dependency mongoose to v5.6.4 2019-07-08 17:58:53 +00:00
Kamil Mysliwiec
a2b61f3622 Merge pull request #2525 from nestjs/renovate/ws-7.x
fix(deps): update dependency ws to v7.1.0
2019-07-08 19:27:33 +02:00
Renovate Bot
6a38c24ffc fix(deps): update dependency ws to v7.1.0 2019-07-08 16:17:04 +00:00
Renovate Bot
6b322e725e chore(deps): update dependency webpack to v4.35.3 2019-07-08 13:58:17 +00:00
Sammy Teillet
b25754da3f feature(common): Add file interceptor for multer 2019-07-08 15:20:38 +02:00
Kamil Mysliwiec
5044deaf85 Merge pull request #2499 from nestjs/renovate/lint-staged-9.x
chore(deps): update dependency lint-staged to v9.1.0
2019-07-07 18:27:35 +02:00
Kamil Mysliwiec
140a9f28ef Merge pull request #2510 from BrunnerLivio/remove-gitter-badge
chore(): Remove Gitter badge
2019-07-07 18:27:23 +02:00
Kamil Mysliwiec
b72fdf80b8 Merge pull request #2508 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v6.4.1
2019-07-07 18:26:51 +02:00
Renovate Bot
a2ad323b1e fix(deps): update nest monorepo to v6.4.1 2019-07-07 16:22:56 +00:00
Renovate Bot
c2e7d7b28f chore(deps): update dependency lint-staged to v9.1.0 2019-07-07 16:19:44 +00:00
Kamil Mysliwiec
292cf57cba Merge pull request #2519 from nestjs/renovate/pin-dependencies
chore(deps): pin dependency lerna to 2.11.0
2019-07-07 18:17:33 +02:00
Kamil Mysliwiec
bb5b881fc3 Merge pull request #2494 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.9.4
2019-07-07 18:17:10 +02:00
Kamil Mysliwiec
96e48ce3d0 Merge pull request #2495 from nestjs/renovate/swagger-ui-express-4.x
fix(deps): update dependency swagger-ui-express to v4.0.7
2019-07-07 18:17:02 +02:00
Kamil Mysliwiec
38a2649ffb Merge pull request #2505 from nestjs/renovate/node-10.x
chore(deps): update dependency @types/node to v10.14.12
2019-07-07 18:16:29 +02:00
Kamil Mysliwiec
8a59c4841b Merge pull request #2507 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.6.3
2019-07-07 18:16:13 +02:00
Renovate Bot
6ca85a3b33 chore(deps): pin dependency lerna to 2.11.0 2019-07-07 16:14:41 +00:00
Kamil Mysliwiec
1d96cd4e1c Merge pull request #2498 from nestjs/renovate/ts-morph-3.x
fix(deps): update dependency ts-morph to v3.1.0
2019-07-07 18:13:21 +02:00
Kamil Mysliwiec
f55c27d3b1 Merge pull request #2503 from nestjs/renovate/graphql-14.x
fix(deps): update dependency graphql to v14.4.2
2019-07-07 18:13:03 +02:00
Kamil Mysliwiec
d528c1054e Merge pull request #2506 from nestjs/renovate/node-8.x
chore(deps): update dependency @types/node to v8.10.50
2019-07-07 18:12:52 +02:00
Kamil Mysliwiec
42a288eef0 Merge pull request #2509 from nestjs/renovate/pin-dependencies
chore(deps): pin dependency lerna to 2.11.0
2019-07-07 18:12:37 +02:00
Kamil Mysliwiec
3c8875468d Merge pull request #2514 from nestjs/renovate/amqp-connection-manager-3.x
fix(deps): update dependency amqp-connection-manager to v3
2019-07-07 18:12:09 +02:00
Kamil Mysliwiec
378fdcd58c Merge pull request #2516 from BrunnerLivio/build/travis-jobs
ci(): run integration tests with TravisCI
2019-07-07 18:11:18 +02:00
Renovate Bot
9deb0df42d fix(deps): update dependency sequelize to v5.9.4 2019-07-06 08:33:35 +00:00
Livio
1318641259 build(): Run integration test with TravisCI 2019-07-05 18:39:43 +02:00
Livio
3c34111770 build(): Use travis build jobs 2019-07-05 18:17:16 +02:00
Chris Sidell
987012610d Address styling concerns 2019-07-04 10:51:01 -07:00
csidell-earny
8a80de3017 Add typing target for getErrorString 2019-07-04 10:45:28 -07:00
Renovate Bot
a70e5369a4 fix(deps): update dependency amqp-connection-manager to v3 2019-07-04 13:35:48 +00:00
Chris Sidell
fd8e490d34 Fix linting error 2019-07-03 18:37:20 -07:00
Chris Sidell
ccb69d728b Add WsException serialization 2019-07-03 18:29:56 -07:00
Chris Sidell
609878628c Make RpcExceptions serializable 2019-07-03 18:27:29 -07:00
Chris Sidell
40cd722eaf Change name to not collide with duplicate definition in RpcException 2019-07-03 18:22:08 -07:00
Chris Sidell
724ddd8d23 Make errors serializable by default 2019-07-03 18:11:42 -07:00
Livio
73e573fdbb chore(): Remove Gitter badge 2019-07-04 01:07:54 +02:00
Renovate Bot
68d84d95bb chore(deps): pin dependency lerna to 2.11.0 2019-07-03 21:12:37 +00:00
Kamil Myśliwiec
acbeb1cd33 deps(): downgrade lerna version 2019-07-03 23:02:10 +02:00
Kamil Myśliwiec
3d4b423fd6 chore(@nestjs) publish v6.4.1 release 2019-07-03 23:01:06 +02:00
Renovate Bot
92ad5d26f4 fix(deps): update dependency mongoose to v5.6.3 2019-07-03 18:10:17 +00:00
Renovate Bot
ace9a237ed chore(deps): update dependency @types/node to v10.14.12 2019-07-03 17:34:41 +00:00
Renovate Bot
1ea450d511 chore(deps): update dependency @types/node to v8.10.50 2019-07-03 17:14:38 +00:00
Renovate Bot
29953ab96d fix(deps): update dependency graphql to v14.4.2 2019-07-03 15:11:12 +00:00
Renovate Bot
3b28b51bc2 fix(deps): update dependency ts-morph to v3.1.0 2019-07-03 01:17:29 +00:00
Renovate Bot
90a0c3b0f5 fix(deps): update dependency swagger-ui-express to v4.0.7 2019-07-02 18:58:54 +00:00
Kamil Myśliwiec
a4383966e1 chore(): publish 6.4.1 release 2019-07-02 15:00:18 +02:00
Kamil Mysliwiec
e4121d6eb4 Merge pull request #2491 from nestjs/renovate/lint-staged-9.x
chore(deps): update dependency lint-staged to v9.0.1
2019-07-02 13:52:32 +02:00
Kamil Mysliwiec
670c33e8b4 Merge pull request #2492 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.9.1
2019-07-02 13:52:24 +02:00
Kamil Myśliwiec
5ef764abb5 Merge branch 'master' of https://github.com/nestjs/nest 2019-07-02 13:51:44 +02:00
Kamil Myśliwiec
7a93b0d91f fix(microservices): fix request scoped enhancers #2489 2019-07-02 13:51:33 +02:00
Renovate Bot
7be5d14642 fix(deps): update dependency sequelize to v5.9.1 2019-07-02 11:05:15 +00:00
Renovate Bot
88f9473ad7 chore(deps): update dependency lint-staged to v9.0.1 2019-07-02 11:05:04 +00:00
Kamil Mysliwiec
e46169aeaa Merge pull request #2485 from nestjs/renovate/lint-staged-9.x
chore(deps): update dependency lint-staged to v9
2019-07-02 09:48:37 +02:00
Kamil Myśliwiec
791b1ceaa6 Merge branch 'master' of https://github.com/nestjs/nest 2019-07-02 08:53:42 +02:00
Kamil Myśliwiec
0d2f78542d tests(): fix integration tests 2019-07-02 08:49:56 +02:00
Renovate Bot
90e92cdb9e chore(deps): update dependency lint-staged to v9 2019-07-02 06:20:32 +00:00
Kamil Mysliwiec
a0b04c71dc Merge pull request #2490 from nestjs/renovate/delete-empty-3.x
chore(deps): update dependency delete-empty to v3
2019-07-02 08:12:45 +02:00
Kamil Mysliwiec
a9aac4560c Merge pull request #2487 from nestjs/renovate/mongoose-5.x
chore(deps): update dependency @types/mongoose to v5.5.7
2019-07-02 08:12:25 +02:00
Renovate Bot
3715946e16 chore(deps): update dependency delete-empty to v3 2019-07-02 05:52:48 +00:00
Renovate Bot
da63a3fd18 chore(deps): update dependency @types/mongoose to v5.5.7 2019-07-01 20:31:18 +00:00
Kamil Myśliwiec
0fb20e1e53 Merge branch 'master' of https://github.com/nestjs/nest 2019-07-01 22:13:37 +02:00
Kamil Myśliwiec
2487ab855e feat(microservice): register modules on init call #2350 2019-07-01 22:13:08 +02:00
Kamil Mysliwiec
eccd5d2b0c Merge pull request #2483 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v6.4.0
2019-07-01 22:03:44 +02:00
Kamil Myśliwiec
e8a66ea35b test(): increase test coverage (unit tests) 2019-07-01 21:33:34 +02:00
Renovate Bot
093ccfe7b7 fix(deps): update nest monorepo to v6.4.0 2019-07-01 14:58:35 +00:00
Kamil Myśliwiec
8bd4fe2718 deps(): remove needless dependency 2019-07-01 15:26:19 +02:00
Kamil Myśliwiec
dd6d28972a deps(): update to latest grpc packages 2019-07-01 15:14:45 +02:00
Kamil Myśliwiec
e2cb91df99 chore(@nestjs) publish v6.4.0 release 2019-07-01 14:48:59 +02:00
Kamil Myśliwiec
50c352f005 chore(): publish 6.4.0 release 2019-07-01 14:47:53 +02:00
Kamil Myśliwiec
8b10990867 Merge branch 'SPIRIT-21-master' 2019-07-01 14:41:29 +02:00
Kamil Myśliwiec
54cccd08cd sample(swagger): fix typings, Cat class 2019-07-01 14:41:11 +02:00
Kamil Myśliwiec
5936218b02 Merge branch 'master' of https://github.com/SPIRIT-21/nest into SPIRIT-21-master 2019-07-01 14:39:31 +02:00
Kamil Myśliwiec
51ac79ac91 Merge branch 'master' of https://github.com/nestjs/nest 2019-07-01 14:38:25 +02:00
Kamil Myśliwiec
75c541ad30 fix(microservices): fix redis retrying strategy (recover) 2019-07-01 14:37:36 +02:00
Kamil Myśliwiec
77a8027fef feat(core): use static exception filters for request-scope 2019-07-01 14:16:48 +02:00
Kamil Mysliwiec
48f32577ee Merge pull request #2482 from nestjs/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.35.2
2019-07-01 13:54:26 +02:00
Renovate Bot
fe35120b24 chore(deps): update dependency webpack to v4.35.2 2019-07-01 09:33:09 +00:00
Kamil Myśliwiec
ec5dd3634d improvement(core): throw error when recursion happens 2019-07-01 10:52:55 +02:00
Kamil Myśliwiec
4dddcdf67d Merge branch 'master' of https://github.com/nestjs/nest 2019-07-01 09:28:58 +02:00
Kamil Myśliwiec
bb1675a18d Merge branch 'underfin-exection-context-next' 2019-07-01 09:28:38 +02:00
Kamil Myśliwiec
a7a8dc4f55 Merge branch 'exection-context-next' of https://github.com/underfin/nest into underfin-exection-context-next 2019-07-01 09:19:41 +02:00
Kamil Mysliwiec
0d4fedb22e Merge pull request #2480 from nestjs/renovate/pin-dependencies
fix(deps): pin dependencies
2019-07-01 08:54:20 +02:00
Renovate Bot
89bb7ca7b2 fix(deps): pin dependencies 2019-07-01 06:40:53 +00:00
Kamil Mysliwiec
2e6e3a41e2 Merge pull request #2471 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.6.2
2019-07-01 08:38:44 +02:00
Kamil Mysliwiec
6f360bf74f Merge pull request #2472 from nestjs/renovate/graphql-14.x
fix(deps): update dependency graphql to v14.4.1
2019-07-01 08:37:21 +02:00
Kamil Mysliwiec
dcb9038af4 Merge pull request #2475 from nestjs/renovate/ts-morph-3.x
fix(deps): update dependency ts-morph to v3
2019-07-01 08:37:09 +02:00
Kamil Mysliwiec
a70c46b320 Merge pull request #2479 from myeveryheart/patch-1
sample(): fix missing "swagger-ui-express" package
2019-07-01 08:36:52 +02:00
Mario
5bed57702d The "swagger-ui-express" package is missing.
fix The "swagger-ui-express" package is missing.
2019-07-01 12:00:00 +08:00
Renovate Bot
6997c16173 fix(deps): update dependency ts-morph to v3 2019-06-29 17:25:17 +00:00
Renovate Bot
7418cd34db fix(deps): update dependency graphql to v14.4.1 2019-06-28 22:49:34 +00:00
Renovate Bot
ac5107d194 fix(deps): update dependency mongoose to v5.6.2 2019-06-28 21:26:41 +00:00
Kamil Myśliwiec
5b552209a5 Merge branch 'Geass1000-pattern-to-route' 2019-06-28 13:58:06 +02:00
Kamil Myśliwiec
5084c56e3a integration(): fix ws not opened issue (tests) 2019-06-28 13:56:08 +02:00
Kamil Myśliwiec
fd62211230 refactor(): adjust to the repo coding guidelines 2019-06-28 13:29:34 +02:00
Kamil Myśliwiec
18bd0fd110 Merge branch 'pattern-to-route' of https://github.com/Geass1000/nest into Geass1000-pattern-to-route 2019-06-28 12:51:19 +02:00
Kamil Myśliwiec
1d6c5ad559 Merge branch 'master' of https://github.com/nestjs/nest 2019-06-28 12:46:40 +02:00
Kamil Myśliwiec
436528d39a Merge branch 'BrunnerLivio-feature/application-config-injectable' 2019-06-28 12:46:28 +02:00
Kamil Myśliwiec
a6b1720d3c refactor(): remove needless metatype property 2019-06-28 12:45:47 +02:00
Kamil Mysliwiec
f9979897bc Merge pull request #2368 from nestjs/renovate/prisma-binding-2.x
fix(deps): update dependency prisma-binding to v2.3.15
2019-06-28 12:40:06 +02:00
Kamil Myśliwiec
12568772f6 Merge branch 'feature/application-config-injectable' of https://github.com/BrunnerLivio/nest into BrunnerLivio-feature/application-config-injectable 2019-06-28 12:33:55 +02:00
Kamil Myśliwiec
499c0b1390 hotfix(): fix integration tests typing issue 2019-06-28 12:33:24 +02:00
Kamil Myśliwiec
5fe51f7cdb Merge branch 'zenozen-module-token-factory-replacer' 2019-06-28 11:56:08 +02:00
Kamil Myśliwiec
0cab179e7a docs(core): add comment to the replacer function 2019-06-28 11:55:53 +02:00
Kamil Myśliwiec
db9f95b340 Merge branch 'module-token-factory-replacer' of https://github.com/zenozen/nest into zenozen-module-token-factory-replacer 2019-06-28 11:52:16 +02:00
Kamil Myśliwiec
dc219bf0a6 Merge branch 'master' of https://github.com/nestjs/nest 2019-06-28 11:51:58 +02:00
Kamil Myśliwiec
6e99ef3a1e refactor(core): use initial value in scanner 2019-06-28 11:51:47 +02:00
Kamil Mysliwiec
9008adb4e2 Merge pull request #2448 from nestjs/renovate/fastify-multipart-1.x
fix(deps): update dependency fastify-multipart to v1.0.1
2019-06-28 11:48:52 +02:00
Kamil Mysliwiec
9ca902c748 Merge pull request #2465 from nestjs/renovate/cache-manager-1.x
chore(deps): update dependency @types/cache-manager to v1.2.8
2019-06-28 11:42:06 +02:00
Kamil Mysliwiec
daa6739189 Merge pull request #2468 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.9.0
2019-06-28 11:41:46 +02:00
Kamil Mysliwiec
7886cad8a1 Merge pull request #2449 from nestjs/renovate/apollo-server-monorepo
fix(deps): update dependency apollo-server-express to v2.6.7
2019-06-28 11:41:32 +02:00
Renovate Bot
7f30326f7d fix(deps): update dependency sequelize to v5.9.0 2019-06-28 05:11:54 +00:00
Renovate Bot
dc8e94f076 fix(deps): update dependency fastify-multipart to v1.0.1 2019-06-27 21:19:25 +00:00
Renovate Bot
ee08f4e2dc fix(deps): update dependency apollo-server-express to v2.6.7 2019-06-27 21:15:41 +00:00
Renovate Bot
eada57b13c chore(deps): update dependency @types/cache-manager to v1.2.8 2019-06-27 21:08:54 +00:00
Kamil Mysliwiec
4cf9ba6cca Merge pull request #2452 from nestjs/renovate/amqp-connection-manager-2.x
fix(deps): update dependency amqp-connection-manager to v2.3.3
2019-06-27 23:05:19 +02:00
Kamil Mysliwiec
607cd30e2c Merge pull request #2451 from nestjs/renovate/fastify-2.x
fix(deps): update dependency fastify to v2.6.0
2019-06-27 23:05:02 +02:00
Kamil Mysliwiec
d7102e316b Merge pull request #2453 from nestjs/renovate/concurrently-4.x
chore(deps): update dependency concurrently to v4.1.1
2019-06-27 23:04:49 +02:00
Kamil Mysliwiec
c0327241bc Merge pull request #2459 from nestjs/renovate/graphql-14.x
fix(deps): update dependency graphql to v14.4.0
2019-06-27 23:04:37 +02:00
Kamil Mysliwiec
2e28d6a89b Merge pull request #2463 from nestjs/renovate/amqplib-0.x
chore(deps): update dependency @types/amqplib to v0.5.13
2019-06-27 23:03:26 +02:00
Renovate Bot
79554c8ab6 chore(deps): update dependency @types/amqplib to v0.5.13 2019-06-27 16:34:37 +00:00
Renovate Bot
7fc3db8a58 fix(deps): update dependency graphql to v14.4.0 2019-06-26 18:39:16 +00:00
Zeno
5fca17341a fix(core) add a replacer to handle functions/classes when creating module tokens 2019-06-26 15:46:17 +00:00
Renovate Bot
b08bd60793 chore(deps): update dependency concurrently to v4.1.1 2019-06-25 20:57:55 +00:00
Renovate Bot
2e8d5f558a fix(deps): update dependency amqp-connection-manager to v2.3.3 2019-06-25 20:03:09 +00:00
Renovate Bot
16530e5fad fix(deps): update dependency fastify to v2.6.0 2019-06-25 18:21:42 +00:00
Kamil Mysliwiec
0ba0811488 Merge pull request #2441 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.6.1
2019-06-24 21:06:42 +02:00
Renovate Bot
6846e51e09 fix(deps): update dependency mongoose to v5.6.1 2019-06-24 18:41:52 +00:00
Andrey
52caa020fd refactor(microservices): use MsPattern interface instead of any type 2019-06-24 11:15:24 +03:00
Andrey
5763e2fc56 refactor(microservices): use equalTest function instead of repeated tests 2019-06-24 11:01:00 +03:00
Andrey
ed18eacebd test(microservices): rework tests for number values 2019-06-24 11:01:00 +03:00
Andrey
2faca6634e feature(microservices): add handling of fields with number type 2019-06-24 11:01:00 +03:00
Andrey
ff6c46e0fe refactor(microservices): use MsPattern interface instead of any 2019-06-24 11:01:00 +03:00
Andrey
49bda5c807 feature(microservices): add interface for pattern 2019-06-24 10:44:24 +03:00
Kamil Mysliwiec
1818bc9726 Merge pull request #2435 from nestjs/renovate/webpack-cli-3.x
chore(deps): update dependency webpack-cli to v3.3.5
2019-06-23 16:04:24 +02:00
Kamil Mysliwiec
239452b1f8 Merge pull request #2432 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v6.3.2
2019-06-23 16:04:14 +02:00
Renovate Bot
7dae9079dd chore(deps): update dependency webpack-cli to v3.3.5 2019-06-23 12:56:50 +00:00
Renovate Bot
5ac3cde757 fix(deps): update nest monorepo to v6.3.2 2019-06-22 21:45:23 +00:00
Kamil Myśliwiec
661d08d0cd chore(): publish 6.3.2 release 2019-06-22 23:41:19 +02:00
Kamil Myśliwiec
43d2068828 chore(@nestjs) publish v6.3.2 release 2019-06-22 23:40:29 +02:00
Kamil Mysliwiec
564d43d6d8 Merge pull request #2431 from tychota/fix/grpc-credentials-client
Fix "Channel options must be an object with (...) string values"
2019-06-22 23:38:36 +02:00
Kamil Myśliwiec
41dae583fb fix(common): add type guard to isNil util #2418 2019-06-22 23:37:52 +02:00
Kamil Myśliwiec
5166629ea8 fix(microservices): add missing user option to NATS #2426 2019-06-22 23:37:33 +02:00
TychoTa
44126e9636 bugfix(microservices) remove credentials from options to fix TypeError
I use to have the following exception:
```
(node:19) UnhandledPromiseRejectionWarning: TypeError: Channel options must be an object with string keys and integer or string values
```
I was passing down a credential object to the options like this:
```
const credentials = grpc.credentials.createSsl(
  readFileSync('/srv/certs/rootCA.pem'),
  readFileSync('/srv/certs/server.key'),
  readFileSync('/srv/certs/server.crt')
  );

// later
  @Client({
    transport: Transport.GRPC,
    options: {
      url: 'ms-proxy:50051',
      package: 'hero',
      protoPath: join(__dirname, '..', 'proto/hero.proto'),
      credentials,
    },
  })
``
2019-06-22 17:18:53 +02:00
Kamil Mysliwiec
ae904fd85b Merge pull request #2380 from nestjs/renovate/node-10.x
chore(deps): update dependency @types/node to v10.14.10
2019-06-22 17:08:05 +02:00
Renovate Bot
64b6269d7d fix(deps): update dependency prisma-binding to v2.3.15 2019-06-22 15:07:48 +00:00
Renovate Bot
2f1c6f20da chore(deps): update dependency @types/node to v10.14.10 2019-06-22 15:07:34 +00:00
Kamil Mysliwiec
cae1633010 Merge pull request #2364 from nestjs/renovate/webpack-cli-3.x
chore(deps): update dependency webpack-cli to v3.3.4
2019-06-22 17:00:54 +02:00
Kamil Mysliwiec
86c723c730 Merge pull request #2371 from nestjs/renovate/lerna-monorepo
chore(deps): update dependency lerna to v3.15.0
2019-06-22 17:00:22 +02:00
Kamil Mysliwiec
9a622ea33c Merge pull request #2423 from nestjs/renovate/ts-loader-6.x
chore(deps): update dependency ts-loader to v6.0.4
2019-06-22 16:59:52 +02:00
Kamil Mysliwiec
317f642c3e Merge pull request #2424 from nestjs/renovate/graphql-tools-4.x
fix(deps): update dependency graphql-tools to v4.0.5
2019-06-22 16:59:37 +02:00
Kamil Mysliwiec
d69542238c Merge pull request #2425 from nestjs/renovate/pug-2.x
fix(deps): update dependency pug to v2.0.4
2019-06-22 16:59:06 +02:00
Kamil Mysliwiec
b54a1b311d Merge pull request #2427 from nestjs/renovate/ws-7.x
fix(deps): update dependency ws to v7.0.1
2019-06-22 16:57:42 +02:00
Kamil Mysliwiec
520977d0d2 Merge pull request #2429 from nestjs/renovate/tslint-5.x
chore(deps): update dependency tslint to v5.18.0
2019-06-22 16:57:31 +02:00
Kamil Mysliwiec
81dd385aaf Merge pull request #2430 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.8.12
2019-06-22 16:57:09 +02:00
Kamil Mysliwiec
cb2ca9efeb Merge pull request #2363 from nestjs/renovate/prettier-1.x
chore(deps): update dependency prettier to v1.18.2
2019-06-22 16:56:53 +02:00
Renovate Bot
de260afda0 fix(deps): update dependency sequelize to v5.8.12 2019-06-22 14:05:35 +00:00
Kamil Mysliwiec
6625bfda89 Update Readme.md 2019-06-22 13:51:09 +02:00
Renovate Bot
144a5306f0 chore(deps): update dependency tslint to v5.18.0 2019-06-21 15:29:33 +00:00
Renovate Bot
ef782ff98e chore(deps): update dependency ts-loader to v6.0.4 2019-06-21 10:43:15 +00:00
Andrey
5ddd8cb74e style(microservices): change indentation to space (2) 2019-06-21 13:35:48 +03:00
Renovate Bot
18d020b201 fix(deps): update dependency ws to v7.0.1 2019-06-21 09:57:09 +00:00
Renovate Bot
6af9fad092 chore(deps): update dependency webpack-cli to v3.3.4 2019-06-21 08:34:42 +00:00
Renovate Bot
49ebc2b4cd chore(deps): update dependency prettier to v1.18.2 2019-06-21 08:33:57 +00:00
Renovate Bot
eb3b1766b2 chore(deps): update dependency lerna to v3.15.0 2019-06-21 08:32:00 +00:00
Renovate Bot
8b0db0d19f fix(deps): update dependency pug to v2.0.4 2019-06-21 08:06:33 +00:00
Renovate Bot
b6c80a0113 fix(deps): update dependency graphql-tools to v4.0.5 2019-06-21 08:05:59 +00:00
Kamil Mysliwiec
0a4b29a5eb Merge pull request #2362 from nestjs/renovate/apollo-server-monorepo
fix(deps): update dependency apollo-server-express to v2.6.4
2019-06-21 09:59:09 +02:00
Kamil Mysliwiec
1400f18b14 Merge pull request #2365 from nestjs/renovate/iterare-1.x
fix(deps): update dependency iterare to v1.2.0
2019-06-21 09:58:56 +02:00
Kamil Mysliwiec
2c5de9e3c8 Merge pull request #2367 from nestjs/renovate/nats-1.x
fix(deps): update dependency nats to v1.3.0
2019-06-21 09:58:39 +02:00
Kamil Mysliwiec
aa855df73b Merge pull request #2370 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.6.0
2019-06-21 09:58:13 +02:00
Kamil Mysliwiec
4a94436a85 Merge pull request #2372 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.8.11
2019-06-21 09:58:02 +02:00
Kamil Mysliwiec
7afc3f78d1 Merge pull request #2382 from nestjs/renovate/fastify-2.x
fix(deps): update dependency fastify to v2.5.0
2019-06-21 09:57:46 +02:00
Kamil Mysliwiec
3f68e239da Merge pull request #2385 from nestjs/renovate/sinon-7.x
chore(deps): update dependency @types/sinon to v7.0.13
2019-06-21 09:57:20 +02:00
Kamil Mysliwiec
96fd31d73f Merge pull request #2386 from nestjs/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.35.0
2019-06-21 09:57:11 +02:00
Kamil Mysliwiec
645080ef1d Merge pull request #2388 from nestjs/renovate/jest-24.x
chore(deps): update dependency @types/jest to v24.0.15
2019-06-21 09:56:07 +02:00
Kamil Mysliwiec
c3c736ec4e Merge pull request #2391 from nestjs/renovate/typescript-3.x
fix(deps): update dependency typescript to v3.5.2
2019-06-21 09:55:51 +02:00
Kamil Mysliwiec
c14322116e Merge pull request #2392 from nestjs/renovate/lint-staged-8.x
chore(deps): update dependency lint-staged to v8.2.1
2019-06-21 09:55:36 +02:00
Kamil Mysliwiec
2ce5c57e9a Merge pull request #2402 from nestjs/renovate/ts-node-8.x
chore(deps): update dependency ts-node to v8.3.0
2019-06-21 09:55:18 +02:00
Kamil Mysliwiec
6343ca569e Merge pull request #2403 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.1.4
2019-06-21 09:55:07 +02:00
Kamil Mysliwiec
caa08567be Merge pull request #2409 from nestjs/renovate/fastify-static-2.x
chore(deps): update dependency fastify-static to v2.5.0
2019-06-21 09:54:13 +02:00
Renovate Bot
93d9c5ce1e fix(deps): update dependency sequelize to v5.8.11 2019-06-21 05:41:53 +00:00
Renovate Bot
8d52b9f942 fix(deps): update dependency apollo-server-express to v2.6.4 2019-06-20 21:00:49 +00:00
Andrey
4349b142cc test(microservices): add tests for new pattern-route logic 2019-06-20 18:47:36 +03:00
Andrey
0fa72b6f14 feature(microservices): use MsvcUtil as a class property 2019-06-20 18:28:36 +03:00
Andrey
4003514763 test(microservices): add tests for new pattern-route logic 2019-06-20 18:17:51 +03:00
Andrey
16ee6cc4d7 feature(microservices): use MsvcUtil in addHandler instead of getRouteFromPattern 2019-06-20 18:17:51 +03:00
Andrey
0bc3684497 feature(microservices): use MsvcUtil as a class property 2019-06-20 18:17:51 +03:00
Andrey
4156166098 test(microservices): regroup test suites 2019-06-20 18:17:20 +03:00
Andrey
58214a1017 test(microservices): add tests for transformPatternToRoute utility method 2019-06-20 18:17:20 +03:00
Andrey
1bebe98af8 feature(microservices): use braces to divide route by scope 2019-06-20 18:17:20 +03:00
Andrey
9e45797c3b feature(microservices): use recursion for nested pattern object 2019-06-20 18:16:59 +03:00
Andrey
43b85aa49d feature(microservices): add logic to transform patterns to routes 2019-06-20 18:16:15 +03:00
Andrey
df9f6ec5c9 feature(microservices): add index reexport file 2019-06-20 18:16:15 +03:00
Andrey
216645f105 feature(microservices): add transformPatternToRoute utility 2019-06-20 18:16:02 +03:00
Renovate Bot
7ffad07595 chore(deps): update dependency webpack to v4.35.0 2019-06-20 04:53:32 +00:00
John Biundo
4a7bb39c94 sample(new auth sample): matches new auth chapter 2019-06-19 12:26:20 -07:00
John Biundo
fb7f79383d Merge pull request #1 from nestjs/master
merge upstream
2019-06-19 12:08:57 -07:00
Livio
f076ac020b test(): Add integration test for core injectables 2019-06-18 00:12:51 +02:00
Livio
26e4b1038b test(): Add integration test for ApplicationConfig 2019-06-18 00:08:04 +02:00
Livio
94949fee6e feat(core): Add ApplicationConfig as core provider
- Exposes the `ApplicationConfig` class to the public API
- Resolves #2410
2019-06-18 00:07:23 +02:00
Renovate Bot
2e4e6f398a chore(deps): update dependency fastify-static to v2.5.0 2019-06-17 11:02:56 +00:00
Kamil Myśliwiec
a3304441f8 Merge branch 'master' of https://github.com/nestjs/nest 2019-06-17 10:50:17 +02:00
Kamil Myśliwiec
82513b0c96 sample(): fix microservice sample code 2019-06-17 10:49:40 +02:00
Renovate Bot
c0b4c4a0a6 chore(deps): update dependency @types/jest to v24.0.15 2019-06-16 06:26:01 +00:00
Renovate Bot
a99ded1e16 chore(deps): update dependency core-js to v3.1.4 2019-06-15 12:04:30 +00:00
Renovate Bot
d60d171633 chore(deps): update dependency ts-node to v8.3.0 2019-06-15 01:05:29 +00:00
Renovate Bot
1dcf047474 fix(deps): update dependency mongoose to v5.6.0 2019-06-14 21:17:15 +00:00
Renovate Bot
0683cc7823 chore(deps): update dependency lint-staged to v8.2.1 2019-06-13 18:54:30 +00:00
Renovate Bot
ffd38c534d fix(deps): update dependency typescript to v3.5.2 2019-06-13 17:54:23 +00:00
Renovate Bot
91e88e8e89 chore(deps): update dependency @types/sinon to v7.0.13 2019-06-12 19:16:42 +00:00
Renovate Bot
8452e068dd fix(deps): update dependency fastify to v2.5.0 2019-06-12 10:52:29 +00:00
likui
1161a7a0ee feat(@nestjs/core): support getNext after swithToHttp from ExecutionContext. #1484 2019-06-08 20:56:33 +08:00
Renovate Bot
2296f129b7 fix(deps): update dependency nats to v1.3.0 2019-06-07 15:39:06 +00:00
Renovate Bot
ef42ca91a3 fix(deps): update dependency iterare to v1.2.0 2019-06-07 12:37:49 +00:00
Kamil Mysliwiec
56071d0765 Merge pull request #2351 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v6.3.1
2019-06-06 21:33:53 +02:00
Renovate Bot
fe89046b79 fix(deps): update nest monorepo to v6.3.1 2019-06-06 19:16:45 +00:00
Kamil Mysliwiec
7041d05e4a Merge pull request #2352 from nestjs/renovate/nestjs-graphql-6.x
fix(deps): update dependency @nestjs/graphql to v6.2.4
2019-06-06 21:12:45 +02:00
Kamil Mysliwiec
7a313e4425 Merge pull request #2353 from nestjs/renovate/lint-staged-8.x
chore(deps): update dependency lint-staged to v8.2.0
2019-06-06 21:08:55 +02:00
Kamil Mysliwiec
4e1590d0a0 Update package.json 2019-06-06 21:05:32 +02:00
Kamil Mysliwiec
70b7cc083b Merge pull request #2358 from mkaufmaner/patch-1
chore(): fix github sponsor link
2019-06-06 15:56:36 +02:00
Michael Kaufman
1068aa33d6 Fixes Funding Link
chore() Fixes broken funding link for open collective
2019-06-06 09:20:03 -04:00
Renovate Bot
7e8ebeafc8 chore(deps): update dependency lint-staged to v8.2.0 2019-06-06 08:52:01 +00:00
Renovate Bot
440587a0fb fix(deps): update dependency @nestjs/graphql to v6.2.4 2019-06-06 08:21:58 +00:00
Kamil Mysliwiec
6f9fcaf52f Update package.json 2019-06-06 09:23:13 +02:00
Kamil Mysliwiec
f6aa7b233a Merge pull request #2349 from nestjs/renovate/coveralls-3.x
chore(deps): update dependency coveralls to v3.0.4
2019-06-06 09:18:33 +02:00
Kamil Mysliwiec
5b22f54939 Merge pull request #2340 from nestjs/renovate/nestjs-graphql-6.x
fix(deps): update dependency @nestjs/graphql to v6.2.3
2019-06-06 09:18:27 +02:00
Kamil Mysliwiec
e0af8d5d3a Merge pull request #2342 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.5.13
2019-06-06 09:18:19 +02:00
Kamil Myśliwiec
4be19db0ec chore(@nestjs) publish v6.3.1 release 2019-06-06 09:14:19 +02:00
Kamil Myśliwiec
78f9800088 update lerna.json 2019-06-06 09:12:17 +02:00
Kamil Myśliwiec
a3a016e57a Merge branch 'master' of https://github.com/nestjs/nest 2019-06-06 09:10:52 +02:00
Kamil Myśliwiec
bbb3f9475c chore(@nestjs) publish v6.3.1 release 2019-06-06 09:10:11 +02:00
Renovate Bot
6e14da40ad chore(deps): update dependency coveralls to v3.0.4 2019-06-05 23:56:50 +00:00
Kamil Myśliwiec
f210ebca2f fix(core): invalid scopes on module re-export #2341 2019-06-05 22:21:55 +02:00
Renovate Bot
b113d3257e fix(deps): update dependency mongoose to v5.5.13 2019-06-05 15:39:11 +00:00
Renovate Bot
936f7dd283 fix(deps): update dependency @nestjs/graphql to v6.2.3 2019-06-05 11:24:11 +00:00
Kamil Mysliwiec
5c84a78f02 Merge pull request #2339 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v6.3.0
2019-06-05 10:53:55 +02:00
Renovate Bot
020c0fce0d fix(deps): update nest monorepo to v6.3.0 2019-06-05 08:40:18 +00:00
Kamil Myśliwiec
1167450310 chore(): publish 6.3.0 release 2019-06-05 10:37:01 +02:00
Kamil Myśliwiec
13feee14ab chore(@nestjs) publish v6.3.0 release 2019-06-05 10:35:48 +02:00
Kamil Myśliwiec
3ea9193708 Merge branch 'master' of https://github.com/nestjs/nest 2019-06-05 10:34:17 +02:00
Kamil Myśliwiec
2016fd04ab chore(): publish 6.3.0 release 2019-06-05 10:34:07 +02:00
Kamil Mysliwiec
99eb93d88e Merge pull request #2314 from nestjs/renovate/node-10.x
chore(deps): update dependency @types/node to v10.14.8
2019-06-05 09:58:13 +02:00
Renovate Bot
90fe90f158 chore(deps): update dependency @types/node to v10.14.8 2019-06-05 07:56:52 +00:00
Kamil Mysliwiec
366bcaf432 Merge pull request #2311 from nestjs/renovate/axios-0.x
fix(deps): update dependency axios to v0.19.0
2019-06-05 09:51:59 +02:00
Kamil Mysliwiec
1824a9fe59 Merge pull request #2262 from underfin/provider-useExisting
feat(core): support useExisting provider #2415
2019-06-05 09:51:44 +02:00
Kamil Mysliwiec
6a606b027f Merge pull request #2332 from nestjs/renovate/mongoose-5.x
chore(deps): update dependency @types/mongoose to v5.5.5
2019-06-05 09:49:29 +02:00
Kamil Mysliwiec
da854518fd Merge pull request #2333 from nestjs/renovate/mongodb-3.x
fix(deps): update dependency mongodb to v3.2.7
2019-06-05 09:49:20 +02:00
Kamil Mysliwiec
b8fb5edd8d Merge pull request #2334 from nestjs/renovate/typeorm-0.x
fix(deps): update dependency typeorm to v0.2.18
2019-06-05 09:48:58 +02:00
Kamil Mysliwiec
cf1a911525 Merge pull request #2335 from nestjs/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.33.0
2019-06-05 09:48:45 +02:00
Kamil Mysliwiec
ff39013882 Merge pull request #2336 from nestjs/renovate/express-4.x
chore(deps): update dependency @types/express to v4.17.0
2019-06-05 09:48:36 +02:00
Kamil Myśliwiec
d856a5570c feature(microservices): add RequestContext to request scoped 2019-06-05 09:48:03 +02:00
Kamil Myśliwiec
999da7655d refactor(common): simplify isUUID helper function 2019-06-05 09:47:40 +02:00
Renovate Bot
7db09f0679 chore(deps): update dependency @types/express to v4.17.0 2019-06-04 20:51:51 +00:00
Renovate Bot
7957a63930 chore(deps): update dependency webpack to v4.33.0 2019-06-04 19:49:06 +00:00
Renovate Bot
f0d49435c1 fix(deps): update dependency typeorm to v0.2.18 2019-06-04 18:42:17 +00:00
Renovate Bot
1565d85e66 fix(deps): update dependency mongodb to v3.2.7 2019-06-04 18:18:09 +00:00
Renovate Bot
355cde1d52 chore(deps): update dependency @types/mongoose to v5.5.5 2019-06-03 23:53:45 +00:00
Renovate Bot
250c3d0099 fix(deps): update dependency axios to v0.19.0 2019-06-03 20:38:20 +00:00
Kamil Mysliwiec
4624a24199 Merge pull request #2313 from nestjs/renovate/mocha-5.x
chore(deps): update dependency @types/mocha to v5.2.7
2019-06-03 22:29:17 +02:00
Kamil Mysliwiec
75f391a536 Merge pull request #2318 from nestjs/renovate/sequelize-4.x
chore(deps): update dependency @types/sequelize to v4.28.3
2019-06-03 22:28:44 +02:00
Kamil Mysliwiec
ca021b9390 Merge pull request #2319 from nestjs/renovate/tslint-5.x
chore(deps): update dependency tslint to v5.17.0
2019-06-03 22:27:03 +02:00
Kamil Mysliwiec
7b669e3668 Merge pull request #2321 from nestjs/renovate/ts-loader-6.x
chore(deps): update dependency ts-loader to v6.0.2
2019-06-03 22:26:45 +02:00
Kamil Mysliwiec
b7e2bb7663 Merge pull request #2324 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.5.12
2019-06-03 22:26:28 +02:00
Kamil Mysliwiec
4d11d1fbf5 Merge pull request #2325 from nestjs/renovate/apollo-server-monorepo
fix(deps): update dependency apollo-server-express to v2.6.1
2019-06-03 22:26:19 +02:00
Kamil Mysliwiec
354793c272 Merge pull request #2330 from nestjs/renovate/nestjs-typeorm-6.x
fix(deps): update dependency @nestjs/typeorm to v6.1.2
2019-06-03 21:52:33 +02:00
Renovate Bot
bff1199255 fix(deps): update dependency @nestjs/typeorm to v6.1.2 2019-06-03 19:41:40 +00:00
Renovate Bot
f94d3a43c9 fix(deps): update dependency apollo-server-express to v2.6.1 2019-05-31 23:56:13 +00:00
Renovate Bot
8f80407b91 fix(deps): update dependency mongoose to v5.5.12 2019-05-31 10:51:39 +00:00
Renovate Bot
61e0b27200 chore(deps): update dependency ts-loader to v6.0.2 2019-05-31 04:45:39 +00:00
likui
0ff1612111 feat(@nestjs/core): support useExisting provider #2415 2019-05-31 11:13:14 +08:00
Renovate Bot
44198f1dd0 chore(deps): update dependency tslint to v5.17.0 2019-05-30 20:23:35 +00:00
Renovate Bot
1d26de5fd4 chore(deps): update dependency @types/sequelize to v4.28.3 2019-05-30 19:53:45 +00:00
Renovate Bot
6618b43019 chore(deps): update dependency @types/mocha to v5.2.7 2019-05-30 18:27:52 +00:00
Kamil Myśliwiec
343fb310ce Merge branch 'master' of https://github.com/nestjs/nest 2019-05-30 16:45:20 +02:00
Kamil Myśliwiec
d4f1bc7bb7 Merge branch 'Hossein-s-fix-create-param-decorator' 2019-05-30 16:44:45 +02:00
Kamil Mysliwiec
d1189a7348 Merge pull request #2106 from nestjs/renovate/ts-morph-2.x
fix(deps): update dependency ts-morph to v2.3.0
2019-05-30 16:42:48 +02:00
Kamil Myśliwiec
3ee0650433 merge changes 2019-05-30 16:41:54 +02:00
Kamil Myśliwiec
8d367c415b Merge branch 'underfin-rmq-options-noack' 2019-05-30 16:40:24 +02:00
Kamil Myśliwiec
1981830bbe refactor(microservices): adjust code style (ClientRMQ) 2019-05-30 16:39:56 +02:00
Kamil Myśliwiec
19e55fe2df Merge branch 'rmq-options-noack' of https://github.com/underfin/nest into underfin-rmq-options-noack 2019-05-30 16:38:20 +02:00
Kamil Myśliwiec
4de5400083 Merge branch 'master' of https://github.com/nestjs/nest 2019-05-30 16:35:33 +02:00
Kamil Mysliwiec
ee487dbfc3 Merge pull request #2254 from FSM1/fsm1-allow-class-transformer-enableImplicitConversion
class-transformer enableImplicitConversion flag added
2019-05-30 16:34:53 +02:00
Kamil Mysliwiec
31d53cda6c Merge pull request #2304 from TheNoim/allow-validation-for-custom-decorators
feature(common): add option to allow validation of custom decorators
2019-05-30 16:33:58 +02:00
Kamil Myśliwiec
e6a19c37f1 Merge branch 'master' of https://github.com/nestjs/nest 2019-05-30 16:32:51 +02:00
Kamil Myśliwiec
cd65de5d31 Merge branch 'gperdomor-uuid-pipes' 2019-05-30 16:32:08 +02:00
Kamil Myśliwiec
336c9b44c5 refactor(common): adjust code style (ParseUUIDPipe) 2019-05-30 16:31:24 +02:00
Kamil Myśliwiec
bbc53dc28b Merge branch 'uuid-pipes' of https://github.com/gperdomor/nest into gperdomor-uuid-pipes 2019-05-30 16:21:25 +02:00
Kamil Mysliwiec
dddf7b9a00 Merge pull request #2240 from BrunnerLivio/feature/client-proxy-factory-overload
feature(microservices): Return correct client type in ClientProxyFactory
2019-05-30 15:39:34 +02:00
Kamil Mysliwiec
524e78f362 Merge pull request #2272 from reegnz/bugfix/disable-opencollective-message-in-ci
bugfix(core): Upgrade opencollective dependency
2019-05-30 15:39:00 +02:00
Kamil Mysliwiec
19bafaeceb Merge pull request #2307 from nestjs/renovate/apollo-server-monorepo
fix(deps): update dependency apollo-server-express to v2.5.1
2019-05-30 15:38:12 +02:00
Kamil Myśliwiec
d88b920dba refactor(microservices): move client options for every client 2019-05-30 15:36:34 +02:00
Renovate Bot
230ae4da95 fix(deps): update dependency apollo-server-express to v2.5.1 2019-05-30 13:24:58 +00:00
Kamil Myśliwiec
8664505d82 refactor(core): provider types refactor 2019-05-30 15:12:33 +02:00
Kamil Myśliwiec
275a97a84d feat(grpc): add more options to grpcClient (max message length) 2019-05-30 14:53:19 +02:00
Kamil Myśliwiec
aed28959b8 bugfix(core): ensure that injectables array is a set of unique values 2019-05-30 14:52:46 +02:00
Kamil Myśliwiec
9acb208dbe fix(): remove duplicated isInitalized property of NestApplication 2019-05-30 14:08:43 +02:00
Kamil Myśliwiec
fd45cdca46 Merge branch 'BrunnerLivio-feature/public-init' 2019-05-30 13:58:20 +02:00
Kamil Myśliwiec
6d2a8c8861 refactor(): resolve conflicts, remove duplicated init() 2019-05-30 13:57:59 +02:00
Kamil Myśliwiec
637ada0600 Merge branch 'AlexDaSoul-master' 2019-05-30 13:49:47 +02:00
Kamil Myśliwiec
9d07884c0c feat(grpc): add catchError to duplex method factory 2019-05-30 13:49:30 +02:00
Nils Bergmann
971d92e7fd feature(common): add option to allow validation of custom decorators
No matter what the reason is to not validate custom decorators, you should be able to at least provide an option
2019-05-30 13:38:14 +02:00
Kamil Myśliwiec
67dacc31a0 integration(): fix grpc port conflict 2019-05-30 13:06:39 +02:00
Kamil Myśliwiec
fca5411430 Merge branch 'grpc-proto-tests-upgrade' of https://github.com/anton-alation/nest into anton-alation-grpc-proto-tests-upgrade 2019-05-30 12:18:34 +02:00
Kamil Myśliwiec
a3ad69df40 Merge branch 'anton-alation-grpc-stream-duplex-decorator' 2019-05-30 11:45:51 +02:00
Kamil Myśliwiec
3264196c4c Merge branch '6.3.0' into anton-alation-grpc-stream-duplex-decorator 2019-05-30 11:41:46 +02:00
Kamil Mysliwiec
31525dff26 Merge pull request #2300 from nestjs/renovate/nestjs-jwt-6.x
fix(deps): update dependency @nestjs/jwt to v6.1.1
2019-05-30 08:38:20 +02:00
Kamil Mysliwiec
efb8a1ea3b Merge pull request #2301 from nestjs/renovate/typescript-3.x
fix(deps): update dependency typescript to v3.5.1
2019-05-30 08:38:04 +02:00
Renovate Bot
47326e7a5d fix(deps): update dependency ts-morph to v2.3.0 2019-05-30 01:00:33 +00:00
Renovate Bot
4f8b216c85 fix(deps): update dependency typescript to v3.5.1 2019-05-29 16:39:42 +00:00
Renovate Bot
b8db3bbeb8 fix(deps): update dependency @nestjs/jwt to v6.1.1 2019-05-29 15:52:47 +00:00
Kamil Mysliwiec
bca3268a89 Merge pull request #2297 from nestjs/renovate/redis-2.x
chore(deps): update dependency @types/redis to v2.8.13
2019-05-29 11:52:20 +02:00
Kamil Mysliwiec
01f4a3bae5 Merge pull request #2298 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.8.7
2019-05-29 11:51:42 +02:00
Kamil Mysliwiec
ab592581b9 Merge pull request #2265 from nestjs/renovate/graphql-14.x
fix(deps): update dependency graphql to v14.3.1
2019-05-29 11:47:29 +02:00
Kamil Mysliwiec
ae8aee6bb5 Merge pull request #2275 from nestjs/renovate/ts-node-8.x
chore(deps): update dependency ts-node to v8.2.0
2019-05-29 11:44:28 +02:00
Kamil Mysliwiec
b937c1dd2b Merge pull request #2280 from nestjs/renovate/express-4.x
fix(deps): update dependency express to v4.17.1
2019-05-29 11:44:07 +02:00
Renovate Bot
2141e118e7 fix(deps): update dependency sequelize to v5.8.7 2019-05-29 02:31:40 +00:00
Renovate Bot
19e2c73bcc chore(deps): update dependency @types/redis to v2.8.13 2019-05-28 19:19:30 +00:00
Renovate Bot
82a983a1c7 fix(deps): update dependency graphql to v14.3.1 2019-05-28 18:36:17 +00:00
Renovate Bot
a486245c8d chore(deps): update dependency ts-node to v8.2.0 2019-05-28 18:32:55 +00:00
Renovate Bot
a7342eed59 fix(deps): update dependency express to v4.17.1 2019-05-28 18:26:51 +00:00
Kamil Mysliwiec
069ccb1b46 Merge pull request #2258 from nestjs/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.32.2
2019-05-28 20:22:49 +02:00
Kamil Mysliwiec
3aeeab39eb Merge pull request #2257 from nestjs/renovate/fastify-multipart-1.x
fix(deps): update dependency fastify-multipart to v1
2019-05-28 20:22:26 +02:00
Kamil Mysliwiec
c7adccfa7c Merge pull request #2263 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.5.11
2019-05-28 20:22:16 +02:00
Kamil Mysliwiec
4baa96e649 Merge pull request #2266 from nestjs/renovate/grpc-1.x
fix(deps): update dependency grpc to v1.21.1
2019-05-28 20:21:54 +02:00
Kamil Mysliwiec
509592f3c1 Merge pull request #2267 from mfazer/master
bugfix(@nestjs/nest): Update gitter URL in CONTRIBUTING.md
2019-05-28 20:21:20 +02:00
Kamil Mysliwiec
57b405a3a1 Merge pull request #2269 from nestjs/renovate/mongodb-3.x
fix(deps): update dependency mongodb to v3.2.6
2019-05-28 20:21:03 +02:00
Kamil Mysliwiec
d5b8ea2444 Merge pull request #2276 from nestjs/renovate/prisma-binding-2.x
fix(deps): update dependency prisma-binding to v2.3.11
2019-05-28 20:20:52 +02:00
Kamil Mysliwiec
bab2d383b4 Merge pull request #2273 from nestjs/renovate/amqplib-0.x
chore(deps): update dependency @types/amqplib to v0.5.12
2019-05-28 20:20:41 +02:00
Kamil Mysliwiec
3164eebb11 Merge pull request #2274 from nestjs/renovate/sequelize-4.x
chore(deps): update dependency @types/sequelize to v4.28.2
2019-05-28 20:20:32 +02:00
Kamil Mysliwiec
5f42b03234 Merge pull request #2287 from nestjs/renovate/point-of-view-3.x
fix(deps): update dependency point-of-view to v3.5.0
2019-05-28 20:20:18 +02:00
Kamil Mysliwiec
9b362a067e Merge pull request #2278 from nestjs/renovate/nodemon-1.x
chore(deps): update dependency nodemon to v1.19.1
2019-05-28 20:20:02 +02:00
Kamil Mysliwiec
c386487dae Merge pull request #2279 from nestjs/renovate/sinon-7.x
chore(deps): update dependency @types/sinon to v7.0.12
2019-05-28 20:19:36 +02:00
Kamil Mysliwiec
f64827ed1b Merge pull request #2284 from nestjs/renovate/mqtt-3.x
fix(deps): update dependency mqtt to v3
2019-05-28 20:19:23 +02:00
Kamil Mysliwiec
e8d4888e89 Merge pull request #2288 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.1.3
2019-05-28 20:19:05 +02:00
Kamil Mysliwiec
7c9a548125 Merge pull request #2294 from nestjs/renovate/fast-json-stringify-1.x
fix(deps): update dependency fast-json-stringify to v1.15.3
2019-05-28 20:18:55 +02:00
Kamil Mysliwiec
95bb4cd711 Merge pull request #2296 from nestjs/renovate/cache-manager-2.x
fix(deps): update dependency cache-manager to v2.9.1
2019-05-28 20:18:42 +02:00
Renovate Bot
151f0edbed fix(deps): update dependency cache-manager to v2.9.1 2019-05-28 16:59:33 +00:00
Renovate Bot
885ac139b4 fix(deps): update dependency fast-json-stringify to v1.15.3 2019-05-28 12:16:21 +00:00
Renovate Bot
d78ecb4c59 chore(deps): update dependency core-js to v3.1.3 2019-05-27 13:11:38 +00:00
Renovate Bot
2869253468 fix(deps): update dependency point-of-view to v3.5.0 2019-05-27 12:31:16 +00:00
Renovate Bot
fadc1797fd fix(deps): update dependency mqtt to v3 2019-05-27 08:33:59 +00:00
Renovate Bot
910fb31d04 chore(deps): update dependency @types/sinon to v7.0.12 2019-05-25 21:40:33 +00:00
Renovate Bot
ca91e01426 chore(deps): update dependency nodemon to v1.19.1 2019-05-25 18:41:04 +00:00
Kamil Mysliwiec
f3e3679793 Update package.json 2019-05-25 12:27:53 +02:00
Kamil Mysliwiec
90487cc9a3 Update package.json 2019-05-25 12:25:40 +02:00
Renovate Bot
40ad3e418c fix(deps): update dependency prisma-binding to v2.3.11 2019-05-25 03:49:34 +00:00
Renovate Bot
79076b139e fix(deps): update dependency mongoose to v5.5.11 2019-05-24 23:08:59 +00:00
Renovate Bot
267ee1004c chore(deps): update dependency @types/sequelize to v4.28.2 2019-05-24 21:13:45 +00:00
Renovate Bot
c385e88e2a chore(deps): update dependency @types/amqplib to v0.5.12 2019-05-24 21:06:31 +00:00
Renovate Bot
5e6b10b9c7 fix(deps): update dependency grpc to v1.21.1 2019-05-24 19:55:02 +00:00
Zoltán Reegn
7276451fc9 bugfix(core): Upgrade opencollective dependency
In v0.2.2 it is now possible to suppress the opencollective message
properly with multiple kinds of environment variables.

Fixes #2264
2019-05-24 16:35:24 +02:00
Kamil Myśliwiec
e01111d9e3 chore(): add FUNDING.yml 2019-05-24 11:06:54 +02:00
Kamil Myśliwiec
d85a6ff15c chore(): remove .github funding 2019-05-24 11:06:35 +02:00
Kamil Myśliwiec
fbb6147303 chore(): hotfix 2019-05-24 09:59:42 +02:00
Kamil Myśliwiec
a23b5bd793 Merge branch 'master' of https://github.com/nestjs/nest 2019-05-24 09:59:08 +02:00
Kamil Myśliwiec
2fe8081c68 chore(): add FUNDING.md 2019-05-24 09:58:27 +02:00
Kamil Mysliwiec
b04f1f4cfd Update Bug_report.md 2019-05-24 08:56:14 +02:00
Renovate Bot
a24391fcca fix(deps): update dependency mongodb to v3.2.6 2019-05-24 00:22:26 +00:00
Mateusz
15f11c95a2 Fix: Update gitter URL in CONTRIBUTING.md
Mistake fixed.
2019-05-24 00:05:20 +02:00
Renovate Bot
e866a8f423 chore(deps): update dependency webpack to v4.32.2 2019-05-22 23:20:23 +00:00
Kamil Mysliwiec
09bba36e58 Merge pull request #2245 from BrunnerLivio/feature/issue-templates
chore(): add issue templates
2019-05-22 21:29:24 +02:00
Renovate Bot
322af6494d fix(deps): update dependency fastify-multipart to v1 2019-05-22 18:34:53 +00:00
Livio
17cb7ff2a4 feature(microservices): ClientProxyFactory return GRPC client type
Add overload to the ClientProxyFactory for better type security.
This allows the user to not cast the GRPC client to any
after creating it using the factory.
2019-05-22 18:45:42 +02:00
Livio
f9d70391e1 chore(): Add needs triage label to issue templates
Adds the 'need triage' label automatically
when creating an issue from the
issue templates
2019-05-22 18:42:31 +02:00
Gustavo Perdomo
8d42c0d3d0 add exception factory 2019-05-22 11:33:20 -04:00
Kamil Mysliwiec
8ac98630e1 Merge pull request #2243 from saarw/fix-jwt-deprecation
fix(sample): update sample to avoid deprecated secretOrPrivateKey
2019-05-22 13:35:33 +02:00
william
416f710573 fix(sample): Update sample to avoid deprecated secretOrPrivateKey 2019-05-22 13:27:30 +02:00
Kamil Mysliwiec
fdf3d8942d Merge pull request #2255 from nestjs/renovate/fastify-2.x
fix(deps): update dependency fastify to v2.4.1
2019-05-22 12:26:57 +02:00
Renovate Bot
22a299b195 fix(deps): update dependency fastify to v2.4.1 2019-05-22 10:07:07 +00:00
Michael Yankelev
cd86c5b66b enableImplicitConversion flag added 2019-05-22 11:56:11 +02:00
Kamil Mysliwiec
a144121463 Merge pull request #2231 from nestjs/renovate/core-js-3.x
chore(deps): update dependency core-js to v3.1.2
2019-05-22 11:34:06 +02:00
Kamil Mysliwiec
1bb39c15b9 Merge pull request #2233 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v6.2.4
2019-05-22 11:33:15 +02:00
Kamil Mysliwiec
845a615cf6 Merge pull request #2251 from nestjs/renovate/fastify-2.x
fix(deps): update dependency fastify to v2.4.0
2019-05-22 11:32:50 +02:00
Renovate Bot
7a38d5bdca fix(deps): update nest monorepo to v6.2.4 2019-05-22 09:31:26 +00:00
Kamil Mysliwiec
bbaa1d523c Merge pull request #2242 from nestjs/renovate/class-transformer-0.x
fix(deps): update dependency class-transformer to v0.2.3
2019-05-22 11:27:52 +02:00
Renovate Bot
c1cd3e87d7 fix(deps): update dependency fastify to v2.4.0 2019-05-22 08:55:10 +00:00
Renovate Bot
1b24762cab fix(deps): update dependency class-transformer to v0.2.3 2019-05-22 08:53:40 +00:00
Renovate Bot
e5b80381d7 chore(deps): update dependency core-js to v3.1.2 2019-05-22 08:51:41 +00:00
Kamil Mysliwiec
43cf264026 Merge pull request #2114 from nestjs/renovate/grpc-1.x
fix(deps): update dependency grpc to v1.20.3
2019-05-22 10:36:40 +02:00
Kamil Mysliwiec
06a9b2252e Merge pull request #2234 from nestjs/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.32.1
2019-05-22 10:35:53 +02:00
Kamil Mysliwiec
49cae3abb7 Merge pull request #2241 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.5.10
2019-05-22 10:35:42 +02:00
Kamil Mysliwiec
fc1d4f0395 Merge pull request #2247 from nestjs/renovate/amqp-connection-manager-2.x
fix(deps): update dependency amqp-connection-manager to v2.3.2
2019-05-22 10:31:14 +02:00
Renovate Bot
0305a693d7 chore(deps): update dependency webpack to v4.32.1 2019-05-22 07:44:50 +00:00
Kamil Myśliwiec
c687b5bcda chore(@nestjs) publish v6.2.4 release 2019-05-21 23:05:30 +02:00
Kamil Myśliwiec
eca9a486e1 chore(): publish 6.2.4 release 2019-05-21 23:04:37 +02:00
Kamil Myśliwiec
72edae181e Merge branch 'SeWaS-fix-validation-pipe-bug' 2019-05-21 23:04:05 +02:00
Kamil Myśliwiec
e2f93ef226 refactor(): move condition to filter function 2019-05-21 23:03:46 +02:00
Renovate Bot
a5832be647 fix(deps): update dependency amqp-connection-manager to v2.3.2 2019-05-21 19:49:38 +00:00
Livio
418da4f097 chore(): Add issue templates 2019-05-21 17:16:21 +02:00
Renovate Bot
4242531b27 fix(deps): update dependency mongoose to v5.5.10 2019-05-20 18:31:10 +00:00
Sebastian Walter
4b73ca638e bugfix(common) Stripping proto properties works with null values
If an optional property has an allowed null value it is now considered when stripping proto props.
2019-05-20 16:32:21 +02:00
Kamil Myśliwiec
1425635190 chore(@nestjs) publish v6.2.3 release 2019-05-20 10:43:19 +02:00
Kamil Myśliwiec
ded6710d37 Merge branch 'master' of https://github.com/nestjs/nest 2019-05-20 10:42:10 +02:00
Kamil Myśliwiec
b3f51cc9c1 hotfix(): fix validation pipe (strip proto properties) 2019-05-20 10:41:56 +02:00
Kamil Mysliwiec
d7f2e4abbf Merge pull request #2228 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v6.2.2
2019-05-19 18:25:47 +02:00
Renovate Bot
3b06632a37 fix(deps): update nest monorepo to v6.2.2 2019-05-19 16:12:56 +00:00
Kamil Myśliwiec
f3330223e8 chore(): publish 6.2.2 release 2019-05-19 18:11:10 +02:00
Kamil Myśliwiec
1ce763b167 chore(): publish 6.2.2 release 2019-05-19 18:09:55 +02:00
Kamil Myśliwiec
ab8e02e33e chore(@nestjs) publish v6.2.2 release 2019-05-19 18:09:22 +02:00
Kamil Myśliwiec
79056a0483 fix(core): hotfix - override factory provider in e2e tests 2019-05-19 18:08:21 +02:00
Kamil Myśliwiec
eda8065e02 test(): fix unit tests (module replace) 2019-05-19 15:18:27 +02:00
Kamil Myśliwiec
fb72dcc0fe Merge branch 'master' of https://github.com/nestjs/nest 2019-05-19 14:02:20 +02:00
Kamil Myśliwiec
cc0bc31bd4 chore(): bump version to 6.2.1 2019-05-19 14:02:15 +02:00
Kamil Myśliwiec
11a85cd254 chore(@nestjs) publish v6.2.1 release 2019-05-19 14:00:53 +02:00
Kamil Myśliwiec
fc40f218a4 fix(platform-ws): trigger client disconnected hook #2226 2019-05-19 13:59:11 +02:00
Kamil Myśliwiec
d6b31c3490 fix(): fix interceptors in combination with events #2209 2019-05-19 13:58:43 +02:00
Kamil Myśliwiec
97afee965c fix(core): fix override and replace logic #2070 2019-05-19 13:58:18 +02:00
Kamil Mysliwiec
7f5fac66e9 Update Readme.md 2019-05-19 12:26:39 +02:00
Kamil Mysliwiec
b920eb6641 Merge pull request #2221 from nestjs/renovate/node-10.x
chore(deps): update dependency @types/node to v10.14.7
2019-05-19 11:38:26 +02:00
Renovate Bot
a20d06239c chore(deps): update dependency @types/node to v10.14.7 2019-05-19 09:22:35 +00:00
Kamil Mysliwiec
33c3a4ce9b Merge pull request #2212 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.5.9
2019-05-19 11:15:19 +02:00
Kamil Mysliwiec
b4759ad00f Merge pull request #2215 from nestjs/renovate/express-4.x
fix(deps): update dependency express to v4.17.0
2019-05-19 11:15:07 +02:00
Kamil Mysliwiec
7fcb4d524d Merge pull request #2220 from nestjs/renovate/mongodb-3.x
fix(deps): update dependency mongodb to v3.2.5
2019-05-19 11:14:49 +02:00
Kamil Mysliwiec
fd5d28a2de Merge pull request #2222 from nestjs/renovate/connect-3.x
fix(deps): update dependency connect to v3.7.0
2019-05-19 11:14:37 +02:00
Kamil Mysliwiec
1e6600b482 Merge pull request #2223 from nestjs/renovate/sequelize-typescript-0.x
fix(deps): update dependency sequelize-typescript to v0.6.11
2019-05-19 11:14:28 +02:00
Kamil Mysliwiec
f6176378f4 Merge pull request #2224 from nestjs/renovate/ts-loader-6.x
chore(deps): update dependency ts-loader to v6.0.1
2019-05-19 11:14:19 +02:00
Renovate Bot
b8b7a5d3f9 chore(deps): update dependency ts-loader to v6.0.1 2019-05-19 02:19:29 +00:00
Renovate Bot
2aa9f2fbeb fix(deps): update dependency sequelize-typescript to v0.6.11 2019-05-18 16:43:08 +00:00
Renovate Bot
6ed25e4102 fix(deps): update dependency connect to v3.7.0 2019-05-18 01:05:27 +00:00
Renovate Bot
b3f1dc0e8c fix(deps): update dependency mongodb to v3.2.5 2019-05-17 18:08:37 +00:00
Renovate Bot
8db96f3545 fix(deps): update dependency express to v4.17.0 2019-05-17 02:10:37 +00:00
Renovate Bot
2d12dd7219 fix(deps): update dependency mongoose to v5.5.9 2019-05-16 18:16:54 +00:00
Kamil Mysliwiec
472fe76701 Merge pull request #2204 from nestjs/renovate/point-of-view-3.x
fix(deps): update dependency point-of-view to v3.4.0
2019-05-16 11:16:33 +02:00
Kamil Mysliwiec
54bc519b06 Merge pull request #2205 from nestjs/renovate/fastify-multipart-0.x
fix(deps): update dependency fastify-multipart to v0.8.2
2019-05-16 11:16:21 +02:00
Kamil Mysliwiec
628ec3279e Merge pull request #2206 from nestjs/renovate/lerna-monorepo
chore(deps): update dependency lerna to v3.14.1
2019-05-16 11:16:03 +02:00
Renovate Bot
8d21314273 chore(deps): update dependency lerna to v3.14.1 2019-05-15 18:15:59 +00:00
Renovate Bot
d058c9fc4b fix(deps): update dependency fastify-multipart to v0.8.2 2019-05-15 17:40:43 +00:00
Renovate Bot
8a45e55352 fix(deps): update dependency point-of-view to v3.4.0 2019-05-15 17:24:57 +00:00
Kamil Mysliwiec
cfc1874d9b Merge pull request #2200 from nestjs/renovate/sequelize-4.x
chore(deps): update dependency @types/sequelize to v4.28.1
2019-05-15 10:35:19 +02:00
Kamil Mysliwiec
53203ef378 Merge pull request #2201 from nestjs/renovate/lerna-monorepo
chore(deps): update dependency lerna to v3.14.0
2019-05-15 10:35:10 +02:00
Renovate Bot
7058acf0ca chore(deps): update dependency lerna to v3.14.0 2019-05-15 08:33:05 +00:00
Kamil Mysliwiec
caf2322a96 Merge pull request #2202 from nestjs/renovate/lint-staged-8.x
chore(deps): update dependency lint-staged to v8.1.7
2019-05-15 10:26:55 +02:00
Renovate Bot
4214fa8103 chore(deps): update dependency lint-staged to v8.1.7 2019-05-15 05:22:12 +00:00
Renovate Bot
9b6a9a0d2f chore(deps): update dependency @types/sequelize to v4.28.1 2019-05-14 22:02:45 +00:00
Kamil Mysliwiec
ed1d3e1539 Merge pull request #2198 from nestjs/renovate/nestjs-graphql-6.x
fix(deps): update dependency @nestjs/graphql to v6.2.1
2019-05-14 21:59:22 +02:00
Renovate Bot
6263ff75b9 fix(deps): update dependency @nestjs/graphql to v6.2.1 2019-05-14 16:09:54 +00:00
Kamil Mysliwiec
e0cc9fb6ac Merge pull request #2194 from nestjs/renovate/nestjs-passport-6.x
fix(deps): update dependency @nestjs/passport to v6.1.0
2019-05-14 14:25:22 +02:00
Renovate Bot
9741885f5d fix(deps): update dependency @nestjs/passport to v6.1.0 2019-05-14 12:12:17 +00:00
Kamil Mysliwiec
f2fd6d72df Merge pull request #2188 from nestjs/renovate/sequelize-4.x
chore(deps): update dependency @types/sequelize to v4.28.0
2019-05-14 12:55:14 +02:00
Kamil Mysliwiec
043ce9b04f Merge pull request #2186 from nestjs/renovate/jest-24.x
chore(deps): update dependency @types/jest to v24.0.13
2019-05-14 12:55:06 +02:00
Kamil Mysliwiec
8be5181e67 Merge pull request #2185 from nestjs/renovate/mongoose-5.x
chore(deps): update dependency @types/mongoose to v5.5.1
2019-05-14 12:54:57 +02:00
Kamil Mysliwiec
43ca7fb5b1 Merge pull request #2191 from nestjs/renovate/nestjs-graphql-6.x
fix(deps): update dependency @nestjs/graphql to v6.2.0
2019-05-14 12:54:34 +02:00
Kamil Mysliwiec
5134f6f6ba Merge pull request #2192 from nestjs/renovate/nestjs-jwt-6.x
fix(deps): update dependency @nestjs/jwt to v6.1.0
2019-05-14 12:54:21 +02:00
Renovate Bot
d64274ff96 fix(deps): update dependency @nestjs/jwt to v6.1.0 2019-05-14 10:44:29 +00:00
Renovate Bot
0ec4becd24 fix(deps): update dependency @nestjs/graphql to v6.2.0 2019-05-14 09:57:53 +00:00
Renovate Bot
1a4837fa04 chore(deps): update dependency @types/sequelize to v4.28.0 2019-05-14 00:54:11 +00:00
Renovate Bot
56951d15de chore(deps): update dependency @types/jest to v24.0.13 2019-05-13 23:34:48 +00:00
Renovate Bot
178d34c831 chore(deps): update dependency @types/mongoose to v5.5.1 2019-05-13 23:12:47 +00:00
Kamil Mysliwiec
0137ebce00 Merge pull request #2180 from nestjs/renovate/type-graphql-0.x
fix(deps): update dependency type-graphql to v0.17.4
2019-05-13 20:06:02 +02:00
Kamil Mysliwiec
039d32271e Merge pull request #2182 from nestjs/renovate/prettier-1.x
chore(deps): update dependency prettier to v1.17.1
2019-05-13 20:05:44 +02:00
Kamil Mysliwiec
390b214c24 Merge pull request #2183 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.5.8
2019-05-13 20:05:34 +02:00
Renovate Bot
a3500f4047 fix(deps): update dependency mongoose to v5.5.8 2019-05-13 18:03:55 +00:00
Renovate Bot
c2c3dab5aa chore(deps): update dependency prettier to v1.17.1 2019-05-13 14:23:35 +00:00
Renovate Bot
43e5bdd93b fix(deps): update dependency type-graphql to v0.17.4 2019-05-12 20:28:31 +00:00
Kamil Mysliwiec
1e29999ba7 Merge pull request #2179 from nestjs/renovate/nestjs-typeorm-6.x
fix(deps): update dependency @nestjs/typeorm to v6.1.1
2019-05-12 14:58:27 +02:00
Renovate Bot
b201ac34ed fix(deps): update dependency @nestjs/typeorm to v6.1.1 2019-05-12 11:15:11 +00:00
Kamil Mysliwiec
e664830d5e Update Readme.md 2019-05-12 12:36:46 +02:00
Kamil Myśliwiec
c60b1ace78 Merge branch 'master' of https://github.com/nestjs/nest 2019-05-12 12:26:12 +02:00
Kamil Myśliwiec
8bbf9419a3 test(): cover missing branches in module testing file 2019-05-12 12:25:58 +02:00
Kamil Mysliwiec
ad81b4e4d7 Merge pull request #2166 from nestjs/renovate/rxjs-6.x
fix(deps): update dependency rxjs to v6.5.2
2019-05-12 11:30:01 +02:00
Kamil Myśliwiec
ae5e7ca728 Merge branch 'master' of https://github.com/nestjs/nest 2019-05-12 11:29:33 +02:00
Kamil Myśliwiec
c6e9b23e45 test(): update unit tests to increase coverage 2019-05-12 11:29:14 +02:00
Kamil Mysliwiec
e5a7de868d Merge pull request #2177 from zuohuadong/patch-2
chore(renovate):  use semanticCommits
2019-05-12 11:24:26 +02:00
huadong zuo
aaed3d1c14 chore(renovate): use semanticCommits 2019-05-12 17:16:33 +08:00
Renovate Bot
e5dd459a88 Update dependency rxjs to v6.5.2 2019-05-12 09:10:17 +00:00
Kamil Mysliwiec
3403ae7c54 Merge pull request #2168 from nestjs/renovate/nyc-14.x
chore(deps): update dependency nyc to v14.1.1
2019-05-12 10:58:20 +02:00
Kamil Mysliwiec
65de083b6a Merge pull request #2167 from nestjs/renovate/rxjs-compat-6.x
fix(deps): update dependency rxjs-compat to v6.5.2
2019-05-12 10:58:07 +02:00
Kamil Mysliwiec
228d43f9d6 Merge pull request #2171 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v6.2.0
2019-05-12 10:57:57 +02:00
Kamil Mysliwiec
74d9ad9fb4 Merge pull request #2176 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.8.6
2019-05-12 10:57:35 +02:00
Renovate Bot
e50f65e866 fix(deps): update dependency sequelize to v5.8.6 2019-05-12 04:33:44 +00:00
Renovate Bot
cbbbc9d257 Update nest monorepo to v6.2.0 2019-05-11 11:59:32 +00:00
Kamil Myśliwiec
5e2727bf90 chore(): publish 6.2.0 release 2019-05-11 13:56:09 +02:00
Kamil Myśliwiec
5fce020f08 chore(@nestjs) publish v6.2.0 release 2019-05-11 13:55:32 +02:00
Renovate Bot
7a6c9c5a9d Update dependency nyc to v14.1.1 2019-05-10 02:37:13 +00:00
Renovate Bot
335dee25cb Update dependency rxjs-compat to v6.5.2 2019-05-10 00:40:44 +00:00
Kamil Myśliwiec
6c9bd5a58c Merge branch 'master' of https://github.com/nestjs/nest 2019-05-10 00:16:34 +02:00
Kamil Mysliwiec
2a9183f4da Merge pull request #2158 from nestjs/renovate/apollo-server-monorepo
Update dependency apollo-server-express to v2.5.0
2019-05-09 23:51:47 +02:00
Kamil Mysliwiec
d8188306a5 Merge pull request #2165 from nestjs/renovate/mongoose-5.x
Update dependency mongoose to v5.5.7
2019-05-09 23:51:18 +02:00
Renovate Bot
61d699ead2 Update dependency mongoose to v5.5.7 2019-05-09 16:54:45 +00:00
Kamil Mysliwiec
fab531c991 Merge pull request #2164 from nestjs/renovate/webpack-4.x
Update dependency webpack to v4.31.0
2019-05-09 10:22:53 +02:00
Renovate Bot
6c397ba344 Update dependency webpack to v4.31.0 2019-05-09 08:03:20 +00:00
Renovate Bot
6aff08a643 Update dependency grpc to v1.20.3 2019-05-09 08:01:33 +00:00
Renovate Bot
67572b7eb7 Update dependency apollo-server-express to v2.5.0 2019-05-09 07:59:18 +00:00
Kamil Mysliwiec
e910ef7751 Merge pull request #2148 from nestjs/renovate/ts-loader-6.x
Update dependency ts-loader to v6
2019-05-09 09:55:59 +02:00
Kamil Mysliwiec
99af074f9d Merge pull request #2152 from nestjs/renovate/mongoose-5.x
Update dependency mongoose to v5.5.6
2019-05-09 09:55:50 +02:00
Kamil Mysliwiec
111deb3191 Merge pull request #2156 from nestjs/renovate/graphql-14.x
Update dependency graphql to v14.3.0
2019-05-09 09:55:34 +02:00
Kamil Mysliwiec
662213b003 Merge pull request #2160 from nestjs/renovate/class-transformer-0.x
Update dependency class-transformer to v0.2.2
2019-05-09 09:55:21 +02:00
Kamil Mysliwiec
21f9486f3e Merge pull request #2162 from nestjs/renovate/mongodb-3.x
Update dependency mongodb to v3.2.4
2019-05-09 09:54:21 +02:00
Renovate Bot
9d5a777d80 Update dependency mongodb to v3.2.4 2019-05-08 23:51:35 +00:00
Kamil Mysliwiec
932f5d5d02 Update Readme.md 2019-05-08 13:49:32 +02:00
Renovate Bot
b183f1c783 Update dependency class-transformer to v0.2.2 2019-05-08 00:36:27 +00:00
Renovate Bot
89c7a3e1aa Update dependency mongoose to v5.5.6 2019-05-07 17:58:07 +00:00
Renovate Bot
4c8ed7f295 Update dependency graphql to v14.3.0 2019-05-07 10:24:37 +00:00
Gustavo Perdomo
b2cd7507b6 revert package lock 2019-05-06 21:37:10 -04:00
Renovate Bot
74b4a13442 Update dependency ts-loader to v6 2019-05-06 17:24:32 +00:00
Gustavo Perdomo
7440d946ca remove validator deps 2019-05-06 08:49:47 -04:00
Kamil Mysliwiec
297eb65823 Update Readme.md 2019-05-05 19:42:51 +02:00
Kamil Mysliwiec
451e2ca7ea Merge pull request #2057 from nestjs/renovate/rxjs-6.x
fix(deps): update dependency rxjs to v6.5.1
2019-05-05 19:37:32 +02:00
Renovate Bot
6338782546 fix(deps): update dependency rxjs to v6.5.1 2019-05-05 17:35:42 +00:00
Kamil Mysliwiec
783467b25a Merge pull request #2124 from nestjs/renovate/nodemon-1.x
chore(deps): update dependency nodemon to v1.19.0
2019-05-05 19:33:25 +02:00
Renovate Bot
0bc04142dd chore(deps): update dependency nodemon to v1.19.0 2019-05-05 17:32:27 +00:00
Kamil Mysliwiec
8ab031784e Merge pull request #2141 from nestjs/renovate/conventional-changelog-3.x
chore(deps): update dependency conventional-changelog to v3.1.8
2019-05-05 19:28:50 +02:00
Kamil Mysliwiec
bcf2fc49b8 Merge pull request #2105 from nestjs/renovate/artillery-1.x
chore(deps): update dependency artillery to v1.6.0-28
2019-05-05 19:28:31 +02:00
Kamil Mysliwiec
d86c57eeea Merge pull request #2113 from nestjs/renovate/sequelize-5.x
Update dependency sequelize to v5.8.5
2019-05-05 19:28:20 +02:00
Kamil Mysliwiec
91cfc62032 Merge pull request #2107 from nestjs/renovate/jest-24.x
chore(deps): update dependency @types/jest to v24.0.12
2019-05-05 19:28:04 +02:00
Kamil Mysliwiec
64ed7ebc55 Merge pull request #2117 from nestjs/renovate/node-7.x
chore(deps): update dependency @types/node to v7.10.6
2019-05-05 19:27:55 +02:00
Renovate Bot
bf1de49dcd chore(deps): update dependency conventional-changelog to v3.1.8 2019-05-05 17:27:48 +00:00
Kamil Mysliwiec
24e34a62d5 Merge pull request #2118 from nestjs/renovate/node-8.x
chore(deps): update dependency @types/node to v8.10.48
2019-05-05 19:25:27 +02:00
Kamil Mysliwiec
4592401c7d Merge pull request #2121 from nestjs/renovate/mongoose-5.x
Update dependency mongoose to v5.5.5
2019-05-05 19:25:18 +02:00
Kamil Mysliwiec
0ddf5b0060 Merge pull request #2120 from nestjs/renovate/ws-7.x
Update dependency ws to v7
2019-05-05 19:25:12 +02:00
Kamil Mysliwiec
1e9c3139b5 Merge pull request #2123 from nestjs/renovate/ts-loader-5.x
Update dependency ts-loader to v5.4.5
2019-05-05 19:25:03 +02:00
Kamil Mysliwiec
223501cb94 Merge pull request #2126 from nestjs/renovate/fastify-cors-2.x
Update dependency fastify-cors to v2.1.3
2019-05-05 19:24:54 +02:00
Kamil Mysliwiec
3c92750465 Merge pull request #2127 from nestjs/renovate/typeorm-0.x
Update dependency typeorm to v0.2.17
2019-05-05 19:24:37 +02:00
Kamil Mysliwiec
4b2fd75cf3 Merge pull request #2133 from nestjs/renovate/lint-staged-8.x
Update dependency lint-staged to v8.1.6
2019-05-05 19:24:27 +02:00
Kamil Mysliwiec
0f72500966 Merge pull request #2129 from nestjs/renovate/nyc-14.x
Update dependency nyc to v14.1.0
2019-05-05 19:24:15 +02:00
Kamil Mysliwiec
06ac009bb4 Merge pull request #2132 from nestjs/renovate/sequelize-4.x
Update dependency @types/sequelize to v4.27.49
2019-05-05 19:24:04 +02:00
Kamil Mysliwiec
b355af9914 Merge pull request #2138 from nestjs/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.2
2019-05-05 19:23:54 +02:00
Kamil Mysliwiec
405bc9bd1b Merge pull request #2139 from nestjs/renovate/jest-monorepo
Update dependency jest to v24.8.0
2019-05-05 19:23:42 +02:00
Kamil Mysliwiec
9325059885 Update Readme.md 2019-05-05 17:12:01 +02:00
Kamil Mysliwiec
8649c33030 Update Readme.md 2019-05-05 16:01:33 +02:00
Kamil Mysliwiec
9c3e7033bb Update Readme.md 2019-05-05 15:59:25 +02:00
Kamil Mysliwiec
3b2c740bd7 Update Readme.md 2019-05-05 15:54:50 +02:00
Kamil Mysliwiec
035d7d4d05 Update Readme.md 2019-05-05 15:53:53 +02:00
Renovate Bot
a9dcb9b33e fix(deps): update dependency sequelize to v5.8.5 2019-05-05 02:45:58 +00:00
Renovate Bot
06e9720186 chore(deps): update dependency jest to v24.8.0 2019-05-05 02:32:23 +00:00
Renovate Bot
d1b42e29c5 chore(deps): update dependency webpack-cli to v3.3.2 2019-05-04 20:21:33 +00:00
Renovate Bot
8a1eb31255 chore(deps): update dependency lint-staged to v8.1.6 2019-05-03 07:48:44 +00:00
Renovate Bot
555dadeb36 chore(deps): update dependency @types/sequelize to v4.27.49 2019-05-03 03:07:45 +00:00
Renovate Bot
27315975d3 chore(deps): update dependency nyc to v14.1.0 2019-05-02 13:02:40 +00:00
Renovate Bot
7b2b74dcc6 fix(deps): update dependency typeorm to v0.2.17 2019-05-01 19:35:03 +00:00
Renovate Bot
c944ef8816 fix(deps): update dependency fastify-cors to v2.1.3 2019-05-01 18:36:56 +00:00
Renovate Bot
efa5d5886c chore(deps): update dependency ts-loader to v5.4.5 2019-05-01 05:20:06 +00:00
Renovate Bot
f440366f3d fix(deps): update dependency mongoose to v5.5.5 2019-04-30 17:07:44 +00:00
Renovate Bot
4f1888f9a0 fix(deps): update dependency ws to v7 2019-04-30 16:18:24 +00:00
Renovate Bot
a50ec037ee chore(deps): update dependency @types/node to v8.10.48 2019-04-30 00:03:20 +00:00
Renovate Bot
3735556603 chore(deps): update dependency @types/node to v7.10.6 2019-04-30 00:02:46 +00:00
Renovate Bot
6754b96039 chore(deps): update dependency @types/jest to v24.0.12 2019-04-29 06:33:11 +00:00
Renovate Bot
a48257c968 chore(deps): update dependency artillery to v1.6.0-28 2019-04-28 21:24:19 +00:00
Kamil Mysliwiec
f472852d44 Merge pull request #2098 from nestjs/renovate/nestjs-typeorm-6.x
fix(deps): update dependency @nestjs/typeorm to v6.1.0
2019-04-28 21:23:49 +02:00
Renovate Bot
49e028c4fe fix(deps): update dependency @nestjs/typeorm to v6.1.0 2019-04-27 13:26:51 +00:00
Kamil Mysliwiec
f5d286b556 Merge pull request #2091 from nestjs/renovate/node-10.x
chore(deps): update dependency @types/node to v10.14.6
2019-04-27 14:59:46 +02:00
Renovate Bot
6966fd7df2 chore(deps): update dependency @types/node to v10.14.6 2019-04-27 12:44:12 +00:00
Kamil Mysliwiec
ce6110cf32 Merge pull request #2092 from nestjs/renovate/node-8.x
chore(deps): update dependency @types/node to v8.10.47
2019-04-27 14:35:51 +02:00
Kamil Mysliwiec
b1ecb73da6 Merge pull request #2090 from nestjs/renovate/ts-loader-5.x
chore(deps): update dependency ts-loader to v5.4.4
2019-04-27 14:35:43 +02:00
Kamil Mysliwiec
efaeb40e52 Merge pull request #2093 from nestjs/renovate/mongoose-5.x
chore(deps): update dependency @types/mongoose to v5.3.27
2019-04-27 14:35:25 +02:00
Renovate Bot
1ad68cc0bc chore(deps): update dependency @types/mongoose to v5.3.27 2019-04-26 20:01:07 +00:00
Renovate Bot
73b27cafa9 chore(deps): update dependency @types/node to v8.10.47 2019-04-26 19:50:37 +00:00
Renovate Bot
db616f7cee chore(deps): update dependency ts-loader to v5.4.4 2019-04-26 17:41:41 +00:00
Kamil Mysliwiec
83afa42ee0 Merge pull request #2063 from nestjs/renovate/typescript-3.x
fix(deps): update dependency typescript to v3.4.5
2019-04-26 08:12:36 +02:00
Kamil Mysliwiec
a5086dcb27 Merge pull request #2082 from nestjs/renovate/cors-2.x
chore(deps): update dependency @types/cors to v2.8.5
2019-04-26 08:09:32 +02:00
Kamil Mysliwiec
526445ab00 Merge pull request #2084 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.7.6
2019-04-26 08:09:25 +02:00
Kamil Mysliwiec
8206917d0e Merge pull request #2085 from nestjs/renovate/body-parser-1.x
fix(deps): update dependency body-parser to v1.19.0
2019-04-26 08:09:13 +02:00
Renovate Bot
a92c57e53b fix(deps): update dependency body-parser to v1.19.0 2019-04-26 03:37:12 +00:00
Renovate Bot
27a02a7745 fix(deps): update dependency sequelize to v5.7.6 2019-04-26 02:31:52 +00:00
Renovate Bot
78a58ac69c chore(deps): update dependency @types/cors to v2.8.5 2019-04-25 22:30:51 +00:00
Renovate Bot
ae4216361e fix(deps): update dependency typescript to v3.4.5 2019-04-25 22:20:15 +00:00
Kamil Mysliwiec
c472a7556a Merge pull request #2047 from nestjs/renovate/gulp-4.x
Update dependency gulp to v4.0.1
2019-04-26 00:09:55 +02:00
Kamil Mysliwiec
e48c90e69e Merge pull request #2054 from nestjs/renovate/ts-loader-5.x
Update dependency ts-loader to v5.4.3
2019-04-26 00:09:20 +02:00
Kamil Mysliwiec
2f96c8568d Merge pull request #2048 from nestjs/renovate/webpack-cli-3.x
Update dependency webpack-cli to v3.3.1
2019-04-26 00:09:09 +02:00
Kamil Mysliwiec
803b408f0f Merge pull request #2051 from nestjs/renovate/sequelize-5.x
Update dependency sequelize to v5.7.5
2019-04-26 00:09:02 +02:00
Kamil Mysliwiec
6cdc31abd2 Merge pull request #2055 from nestjs/renovate/mongoose-5.x
Update dependency mongoose to v5.5.4
2019-04-26 00:08:47 +02:00
Kamil Mysliwiec
5c06f1528f Merge pull request #2056 from nestjs/renovate/fast-json-stringify-1.x
Update dependency fast-json-stringify to v1.15.2
2019-04-26 00:08:38 +02:00
Kamil Mysliwiec
cbb7022dc2 Merge pull request #2058 from nestjs/renovate/rxjs-compat-6.x
Update dependency rxjs-compat to v6.5.1
2019-04-26 00:05:50 +02:00
Kamil Mysliwiec
4a69ddefac Merge pull request #2064 from nestjs/renovate/type-graphql-0.x
Update dependency type-graphql to v0.17.3
2019-04-26 00:05:30 +02:00
Kamil Mysliwiec
e33ed082f0 Merge pull request #2074 from nestjs/renovate/conventional-changelog-3.x
Update dependency conventional-changelog to v3.1.4
2019-04-26 00:05:16 +02:00
Kamil Mysliwiec
7f49452516 Merge pull request #2076 from nestjs/renovate/lerna-monorepo
Update dependency lerna to v3.13.4
2019-04-26 00:04:22 +02:00
Kamil Mysliwiec
f58e87ef4f Merge pull request #2077 from nestjs/renovate/docker-mysql-5.x
Update mysql Docker tag to v5.7.26
2019-04-26 00:03:13 +02:00
Kamil Mysliwiec
94b884a0fa Merge pull request #2078 from nestjs/renovate/point-of-view-3.x
Update dependency point-of-view to v3.3.0
2019-04-26 00:03:01 +02:00
Renovate Bot
5a2216e58b Update dependency mongoose to v5.5.4 2019-04-25 19:32:12 +00:00
Renovate Bot
4c9eb5a4ac Update dependency point-of-view to v3.3.0 2019-04-25 05:56:57 +00:00
Renovate Bot
6e4b19d0f7 Update mysql Docker tag to v5.7.26 2019-04-25 01:43:43 +00:00
Renovate Bot
dcb0ca77e8 Update dependency lerna to v3.13.4 2019-04-25 00:11:25 +00:00
Renovate Bot
c7e1d8e293 Update dependency conventional-changelog to v3.1.4 2019-04-24 22:04:21 +00:00
Renovate Bot
a026e4b564 Update dependency type-graphql to v0.17.3 2019-04-24 17:50:50 +00:00
Renovate Bot
21a2bdaee9 Update dependency sequelize to v5.7.5 2019-04-24 06:02:25 +00:00
Gustavo Perdomo
3319e62d62 uuid pipes 2019-04-23 13:10:02 -04:00
Kamil Mysliwiec
e4f1a1dde2 Update Readme.md 2019-04-23 09:05:53 +02:00
Renovate Bot
54530247d4 fix(deps): update dependency rxjs-compat to v6.5.1 2019-04-23 04:43:17 +00:00
Renovate Bot
cbc9b987fb fix(deps): update dependency fast-json-stringify to v1.15.2 2019-04-23 03:00:20 +00:00
Anton Repin
bf17608fd7 Handler added for test GRPC Call for Advamced GRPC protobuf case 2019-04-22 14:16:31 -07:00
Anton Repin
ad7da8f493 GRPC controller definition for advanced proto case updated 2019-04-22 14:14:10 -07:00
Renovate Bot
eeb260acde chore(deps): update dependency ts-loader to v5.4.3 2019-04-22 19:09:58 +00:00
Anton Repin
62dc446a60 E2E test added to support advanced GRPC + Protobuf case 2019-04-21 23:59:38 -07:00
Anton Repin
81eaca0193 Controller for advanced GRPC tests added 2019-04-21 23:59:04 -07:00
Anton Repin
8f7aad1a84 Set of namespaced proto files added 2019-04-21 23:58:40 -07:00
Renovate Bot
85fb17b32b chore(deps): update dependency webpack-cli to v3.3.1 2019-04-21 19:54:35 +00:00
Renovate Bot
78732403b8 chore(deps): update dependency gulp to v4.0.1 2019-04-21 17:54:15 +00:00
Kamil Mysliwiec
4608b6e8e3 Merge pull request #2031 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.7.1
2019-04-21 12:45:54 +02:00
Kamil Mysliwiec
d01497c0cb Merge pull request #2033 from nestjs/renovate/mysql-2.x
fix(deps): update dependency mysql to v2.17.1
2019-04-21 12:45:48 +02:00
Kamil Mysliwiec
ef6591674a Merge pull request #2034 from nestjs/renovate/typescript-3.x
fix(deps): update dependency typescript to v3.4.4
2019-04-21 12:45:40 +02:00
Kamil Mysliwiec
808b6d0627 Merge pull request #2038 from nestjs/renovate/fastify-multipart-0.x
fix(deps): update dependency fastify-multipart to v0.8.1
2019-04-21 12:45:32 +02:00
Kamil Mysliwiec
b36b0f0f03 Merge pull request #2039 from nestjs/renovate/node-10.x
chore(deps): update dependency @types/node to v10.14.5
2019-04-21 12:45:22 +02:00
Kamil Mysliwiec
8b6dd09ca5 Merge pull request #2040 from nestjs/renovate/node-8.x
chore(deps): update dependency @types/node to v8.10.46
2019-04-21 12:44:41 +02:00
Kamil Mysliwiec
f9a42cf442 Merge pull request #2043 from nestjs/renovate/ts-morph-2.x
fix(deps): update dependency ts-morph to v2
2019-04-21 12:44:34 +02:00
Renovate Bot
6cd93a9918 fix(deps): update dependency ts-morph to v2 2019-04-20 23:30:36 +00:00
Renovate Bot
95e2f7e9ed fix(deps): update dependency sequelize to v5.7.1 2019-04-20 09:39:55 +00:00
likui
675fd079ac refromat code
I does not consciousness change code with `import`.
2019-04-20 15:48:05 +08:00
likui
102a345077 feat(@nestjs/microservices): ack queue message make option in rabbitMQ microservice #1583 2019-04-20 11:39:58 +08:00
Renovate Bot
4a4fd2e0e0 chore(deps): update dependency @types/node to v8.10.46 2019-04-19 20:51:58 +00:00
Renovate Bot
980f98d6b9 chore(deps): update dependency @types/node to v10.14.5 2019-04-19 20:51:37 +00:00
Renovate Bot
1283fd3201 fix(deps): update dependency fastify-multipart to v0.8.1 2019-04-19 18:45:22 +00:00
Renovate Bot
e59eb97585 fix(deps): update dependency typescript to v3.4.4 2019-04-18 23:47:30 +00:00
Renovate Bot
13697371a4 fix(deps): update dependency mysql to v2.17.1 2019-04-18 20:49:37 +00:00
Kamil Mysliwiec
ec14c921ad Merge pull request #2024 from nestjs/renovate/mysql-2.x
fix(deps): update dependency mysql to v2.17.0
2019-04-18 13:37:28 +02:00
Kamil Mysliwiec
b12328d0b8 Merge pull request #2026 from nestjs/renovate/fastify-2.x
fix(deps): update dependency fastify to v2.3.0
2019-04-18 13:37:20 +02:00
Renovate Bot
9783ac2437 fix(deps): update dependency fastify to v2.3.0 2019-04-18 08:09:43 +00:00
Renovate Bot
7d463c64a4 fix(deps): update dependency mysql to v2.17.0 2019-04-18 02:17:58 +00:00
Kamil Mysliwiec
5e8fd1e690 Merge pull request #2021 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.6.1
2019-04-17 22:35:05 +02:00
Kamil Mysliwiec
71c4bf31cb Merge pull request #2023 from nestjs/renovate/grpc-1.x
fix(deps): update dependency grpc to v1.20.0
2019-04-17 22:34:27 +02:00
Kamil Mysliwiec
7149f96e11 Merge pull request #2022 from nestjs/renovate/sinon-7.x
chore(deps): update dependency sinon to v7.3.2
2019-04-17 22:34:20 +02:00
Renovate Bot
68f33be063 fix(deps): update dependency grpc to v1.20.0 2019-04-17 19:34:32 +00:00
Renovate Bot
4259eb409e chore(deps): update dependency sinon to v7.3.2 2019-04-17 16:23:41 +00:00
Renovate Bot
1d0a9fdc01 fix(deps): update dependency sequelize to v5.6.1 2019-04-17 10:54:59 +00:00
Kamil Mysliwiec
c7ef4c8778 Merge pull request #2011 from nestjs/renovate/nestjs-mongoose-6.x
fix(deps): update dependency @nestjs/mongoose to v6.1.2
2019-04-17 11:58:45 +02:00
Renovate Bot
fb02c35e57 fix(deps): update dependency @nestjs/mongoose to v6.1.2 2019-04-17 09:58:24 +00:00
Kamil Mysliwiec
d78cd72164 Merge pull request #2008 from nestjs/renovate/point-of-view-3.x
fix(deps): update dependency point-of-view to v3.2.0
2019-04-17 11:57:56 +02:00
Kamil Mysliwiec
fb96560cba Merge pull request #2009 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.6.0
2019-04-17 11:57:49 +02:00
Kamil Mysliwiec
c6e84b6ce3 Merge pull request #2012 from nestjs/renovate/fast-json-stringify-1.x
fix(deps): update dependency fast-json-stringify to v1.15.1
2019-04-17 11:57:30 +02:00
Kamil Mysliwiec
371554a00e Merge pull request #2013 from nestjs/renovate/nyc-14.x
chore(deps): update dependency nyc to v14
2019-04-17 11:57:19 +02:00
Kamil Mysliwiec
a9658634e0 Merge pull request #2016 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.5.2
2019-04-17 11:57:05 +02:00
Kamil Mysliwiec
cdd38dc018 Merge pull request #2017 from nestjs/renovate/sequelize-4.x
chore(deps): update dependency @types/sequelize to v4.27.48
2019-04-17 11:56:55 +02:00
Kamil Mysliwiec
bab370cf6d Merge pull request #2018 from nestjs/renovate/tslint-5.x
chore(deps): update dependency tslint to v5.16.0
2019-04-17 11:56:35 +02:00
Kamil Mysliwiec
981a64ebae Merge pull request #2019 from nestjs/renovate/lerna-monorepo
chore(deps): update dependency lerna to v3.13.3
2019-04-17 11:56:20 +02:00
Renovate Bot
7f3f022d1c chore(deps): update dependency lerna to v3.13.3 2019-04-17 01:18:41 +00:00
Renovate Bot
685a1ff2c6 chore(deps): update dependency tslint to v5.16.0 2019-04-16 22:23:04 +00:00
Renovate Bot
4a66e75d62 chore(deps): update dependency @types/sequelize to v4.27.48 2019-04-16 20:34:54 +00:00
Renovate Bot
4c775b7e24 fix(deps): update dependency mongoose to v5.5.2 2019-04-16 14:41:03 +00:00
Renovate Bot
7f1dd41cc6 chore(deps): update dependency nyc to v14 2019-04-16 10:21:22 +00:00
Renovate Bot
8a7f4df9cb fix(deps): update dependency fast-json-stringify to v1.15.1 2019-04-16 09:57:26 +00:00
Renovate Bot
960dafcd33 fix(deps): update dependency sequelize to v5.6.0 2019-04-16 08:04:18 +00:00
Renovate Bot
dbe952bb1b fix(deps): update dependency point-of-view to v3.2.0 2019-04-15 21:51:32 +00:00
Kamil Mysliwiec
1847f14840 Merge pull request #2006 from nestjs/renovate/nestjs-mongoose-6.x
fix(deps): update dependency @nestjs/mongoose to v6.1.1
2019-04-15 23:14:48 +02:00
Renovate Bot
57a7b7325d fix(deps): update dependency @nestjs/mongoose to v6.1.1 2019-04-15 15:43:53 +00:00
Kamil Mysliwiec
09eb4c14e3 Merge pull request #2004 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.5.0
2019-04-15 17:00:14 +02:00
Renovate Bot
f6252a49ac fix(deps): update dependency sequelize to v5.5.0 2019-04-15 14:53:42 +00:00
Kamil Myśliwiec
9a3c8af62c fix(): fix invalid mysql image 2019-04-15 14:22:36 +02:00
Kamil Mysliwiec
1f790a6f4c Merge pull request #2003 from nestjs/renovate/nestjs-mongoose-6.x
fix(deps): update dependency @nestjs/mongoose to v6.1.0
2019-04-15 13:43:28 +02:00
Renovate Bot
2f4c842c01 fix(deps): update dependency @nestjs/mongoose to v6.1.0 2019-04-15 11:33:35 +00:00
Kamil Mysliwiec
dfd87b43f7 Merge pull request #2002 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v6.1.1
2019-04-15 12:22:08 +02:00
Renovate Bot
c6d52e5be6 fix(deps): update nest monorepo to v6.1.1 2019-04-15 10:13:44 +00:00
Kamil Myśliwiec
8d7375fa1c chore(@nestjs) publish v6.1.1 release 2019-04-15 12:03:45 +02:00
Kamil Myśliwiec
c5c4bf314e chore(): publish 6.1.1 release 2019-04-15 12:02:49 +02:00
Kamil Mysliwiec
e888b65106 Merge pull request #1970 from rokerkony/bug/fix-bc-on-http-exception
bugfix(common): fix breaking change on http exception
2019-04-15 12:01:44 +02:00
Kamil Myśliwiec
37fa9d529e Merge branch 'master' of https://github.com/nestjs/nest 2019-04-15 12:01:29 +02:00
Kamil Myśliwiec
5922e7ed9c bugfix(core): invalid injection context #1987 2019-04-15 12:01:08 +02:00
Kamil Mysliwiec
efb4421280 Merge pull request #2000 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.4.0
2019-04-15 11:50:48 +02:00
Renovate Bot
85c2483d60 fix(deps): update dependency sequelize to v5.4.0 2019-04-15 08:32:39 +00:00
Kamil Mysliwiec
313bc08cda Merge pull request #1982 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.5.1
2019-04-15 09:39:38 +02:00
Kamil Mysliwiec
ce5d3793f8 Merge pull request #1984 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.3.5
2019-04-15 09:38:26 +02:00
Kamil Mysliwiec
5cd03dc720 Merge pull request #1991 from nestjs/renovate/prettier-1.x
chore(deps): update dependency prettier to v1.17.0
2019-04-15 09:38:20 +02:00
Kamil Mysliwiec
baa475a98e Merge pull request #1999 from nestjs/renovate/fast-json-stringify-1.x
fix(deps): update dependency fast-json-stringify to v1.15.0
2019-04-15 09:38:10 +02:00
Renovate Bot
9775b2c74a fix(deps): update dependency fast-json-stringify to v1.15.0 2019-04-15 07:07:40 +00:00
Renovate Bot
7b1f2b92fa fix(deps): update dependency sequelize to v5.3.5 2019-04-15 06:47:30 +00:00
Renovate Bot
669c110d45 chore(deps): update dependency prettier to v1.17.0 2019-04-15 06:47:16 +00:00
Kamil Mysliwiec
348c1caa3e Merge pull request #1983 from nestjs/renovate/conventional-changelog-3.x
chore(deps): update dependency conventional-changelog to v3.1.3
2019-04-15 08:41:23 +02:00
Kamil Mysliwiec
026bb027a9 Merge pull request #1990 from nestjs/renovate/webpack-4.x
chore(deps): update dependency webpack to v4.30.0
2019-04-15 08:41:11 +02:00
Kamil Mysliwiec
9a6f2a96ad Merge pull request #1992 from nestjs/renovate/handlebars-4.x
fix(deps): update dependency handlebars to v4.1.2
2019-04-15 08:41:01 +02:00
Kamil Mysliwiec
03fa137dc6 Merge pull request #1995 from nestjs/renovate/sequelize-typescript-0.x
fix(deps): update dependency sequelize-typescript to v0.6.10
2019-04-15 08:40:48 +02:00
Kamil Mysliwiec
5e935e8aae Merge pull request #1996 from nestjs/renovate/ts-node-8.x
chore(deps): update dependency ts-node to v8.1.0
2019-04-15 08:40:39 +02:00
Kamil Mysliwiec
cf6ce1f31c Merge pull request #1997 from nestjs/renovate/hbs-4.x
fix(deps): update dependency hbs to v4.0.4
2019-04-15 08:40:28 +02:00
Kamil Myśliwiec
0c4818281f Merge branch 'master' of https://github.com/nestjs/nest 2019-04-15 08:33:25 +02:00
Kamil Myśliwiec
7311b956a5 sample(): fix typeorm configuration (production start) 2019-04-15 08:30:07 +02:00
Renovate Bot
f045eb2b09 fix(deps): update dependency hbs to v4.0.4 2019-04-15 02:10:40 +00:00
Renovate Bot
71b35c1b63 chore(deps): update dependency ts-node to v8.1.0 2019-04-15 02:01:21 +00:00
Renovate Bot
5eb65422da fix(deps): update dependency sequelize-typescript to v0.6.10 2019-04-14 17:59:44 +00:00
Renovate Bot
3fd5e90b84 fix(deps): update dependency handlebars to v4.1.2 2019-04-13 14:23:50 +00:00
Renovate Bot
e7804eb8d8 chore(deps): update dependency webpack to v4.30.0 2019-04-12 20:22:27 +00:00
Kamil Mysliwiec
292b9fbb25 Merge pull request #1985 from nestjs/renovate/sequelize-4.x
chore(deps): update dependency @types/sequelize to v4.27.47
2019-04-12 10:12:20 +02:00
Kamil Myśliwiec
c70f42c5ac Merge branch 'master' of https://github.com/nestjs/nest 2019-04-12 10:11:39 +02:00
Kamil Myśliwiec
18288965ca test(): reorder unit tests in client-proxy 2019-04-12 10:11:29 +02:00
Renovate Bot
4ba700af7e chore(deps): update dependency @types/sequelize to v4.27.47 2019-04-12 00:27:01 +00:00
Renovate Bot
10ea259ba0 chore(deps): update dependency conventional-changelog to v3.1.3 2019-04-11 23:10:57 +00:00
Renovate Bot
c434a80e75 fix(deps): update dependency mongoose to v5.5.1 2019-04-11 16:15:38 +00:00
Kamil Mysliwiec
536f4db3c0 Merge pull request #1971 from nestjs/renovate/nest-monorepo
fix(deps): update nest monorepo to v6.1.0
2019-04-11 09:01:55 +02:00
Kamil Mysliwiec
3898d4f199 Merge pull request #1972 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.3.1
2019-04-11 09:01:42 +02:00
Kamil Mysliwiec
9d44042d0b Merge pull request #1976 from nestjs/renovate/mongoose-5.x
chore(deps): update dependency @types/mongoose to v5.3.26
2019-04-11 09:01:35 +02:00
Kamil Mysliwiec
44c54ed93e Merge pull request #1979 from nestjs/renovate/nats-1.x
fix(deps): update dependency nats to v1.2.10
2019-04-11 09:00:55 +02:00
Renovate Bot
1b6e07c907 fix(deps): update dependency sequelize to v5.3.1 2019-04-11 04:45:05 +00:00
Renovate Bot
e41a025fc5 fix(deps): update dependency nats to v1.2.10 2019-04-10 23:23:51 +00:00
Renovate Bot
d9e96208fb chore(deps): update dependency @types/mongoose to v5.3.26 2019-04-10 17:45:26 +00:00
Konrad Cerny
0ef55c0b65 Added another test case when a message is undefined 2019-04-10 13:48:07 +02:00
Renovate Bot
7a72c1d4ec fix(deps): update nest monorepo to v6.1.0 2019-04-10 11:14:39 +00:00
Kamil Myśliwiec
22a54d714f chore(@nestjs) publish v6.1.0 release 2019-04-10 13:08:16 +02:00
Kamil Myśliwiec
1dcb7aefbe chore(): publish 6.1.0 release 2019-04-10 13:06:33 +02:00
Kamil Myśliwiec
82e52fc3e8 Merge branch 'Upperfoot-feature/socket-options' 2019-04-10 12:59:58 +02:00
Kamil Myśliwiec
ea2d32669e refactor(): remove generic type 2019-04-10 12:59:43 +02:00
Kamil Myśliwiec
d2cadc12c1 Merge branch 'master' into Upperfoot-feature/socket-options 2019-04-10 12:58:13 +02:00
Kamil Myśliwiec
0363108120 Merge branch 'feature/socket-options' of https://github.com/Upperfoot/nest into Upperfoot-feature/socket-options 2019-04-10 12:57:44 +02:00
Kamil Mysliwiec
107b243c8b Merge pull request #1891 from jiayihu/patch-1
fix(microservices): export ClientRMQ and ServerRMQ with correct types
2019-04-10 12:56:54 +02:00
Kamil Mysliwiec
758201cf94 Merge branch 'master' into patch-1 2019-04-10 12:54:13 +02:00
Kamil Myśliwiec
205d737214 Merge branch 'master' of https://github.com/nestjs/nest 2019-04-10 12:53:38 +02:00
Kamil Myśliwiec
b83357e2e9 Merge branch 'ToonvanStrijp-feature/change-http-code-interceptor' 2019-04-10 12:53:10 +02:00
Kamil Mysliwiec
d465d1b8eb Merge pull request #1963 from nestjs/renovate/nats-1.x
fix(deps): update dependency nats to v1.2.8
2019-04-10 12:48:16 +02:00
Kamil Mysliwiec
f5f0ff48bd Merge pull request #1968 from nestjs/renovate/typescript-3.x
fix(deps): update dependency typescript to v3.4.3
2019-04-10 12:48:02 +02:00
Kamil Mysliwiec
22ec505ff6 Merge pull request #1961 from nestjs/renovate/lerna-monorepo
chore(deps): update dependency lerna to v3.13.2
2019-04-10 12:37:27 +02:00
Kamil Mysliwiec
868aa2d07d Merge pull request #1960 from nestjs/renovate/nodemon-1.x
chore(deps): update dependency nodemon to v1.18.11
2019-04-10 12:36:26 +02:00
Kamil Mysliwiec
d8c241e64f Merge pull request #1958 from nestjs/renovate/sequelize-5.x
fix(deps): update dependency sequelize to v5.2.15
2019-04-10 12:36:21 +02:00
Kamil Mysliwiec
bed8e0a7f5 Merge pull request #1956 from nestjs/renovate/mongoose-5.x
fix(deps): update dependency mongoose to v5.5.0
2019-04-10 12:36:12 +02:00
Konrad Cerny
547615afd7 bugfix(common): fix breaking change on http exception 2019-04-10 11:38:36 +02:00
Renovate Bot
f8a335dc11 fix(deps): update dependency typescript to v3.4.3 2019-04-09 23:52:00 +00:00
Renovate Bot
32aa7f1507 fix(deps): update dependency sequelize to v5.2.15 2019-04-09 15:39:59 +00:00
Renovate Bot
85c290dda5 fix(deps): update dependency nats to v1.2.8 2019-04-08 22:59:23 +00:00
Renovate Bot
0ba5424af1 chore(deps): update dependency lerna to v3.13.2 2019-04-08 21:41:44 +00:00
Renovate Bot
9e76f416c1 chore(deps): update dependency nodemon to v1.18.11 2019-04-08 21:23:57 +00:00
Renovate Bot
4d267f643c Update dependency mongoose to v5.5.0 2019-04-08 16:40:24 +00:00
Jiayi Hu
ee8b112504 fix(microservices): use correct server options type 2019-04-06 16:10:54 +02:00
Jiayi Hu
2fa9989072 fix(microservices): export ClientRMQ and ServerRMQ 2019-04-06 15:50:52 +02:00
Kamil Myśliwiec
769d7559d0 test(): add missing unit tests, resolve conflicts 2019-03-31 17:11:50 +02:00
Hossein Sadeghi
f4488781e4 bugfix(common) allow classes as data parameter in createParamDecorator function 2019-03-20 15:44:09 +03:30
Craig Whiteside
b0088db764 Removed reference to class var 2019-03-20 10:49:18 +00:00
Craig Whiteside
22889735cf Removed class variable for socketOptions 2019-03-20 10:48:42 +00:00
Craig Whiteside
92068f302c Removed RQM_DEFAULT_SOCKET_OPTIONS from Constants 2019-03-20 10:47:44 +00:00
Craig Whiteside
a09e8260cd Removed class var and default socket options. 2019-03-20 10:46:55 +00:00
Anton Repin
c26bbbb9bc Updated tests for Pattern decorator 2019-03-11 11:13:59 -07:00
Anton Repin
0e9dbee56d GRPC Streaming tests updated with support both Streaming decorators
- RX Streaming test
- Call streaming test
2019-03-10 23:39:08 -07:00
Anton Repin
9f10e08abb Pattern decorator test updated with additional naming 2019-03-10 23:38:11 -07:00
Anton Repin
8dbb31a0b8 Test for Server GRPC updated to handle Streaming cases 2019-03-10 23:37:34 -07:00
Anton Repin
487309c12b GRPC Server now updated with support of both GrpcStream and GrpcStreamCall
- Pattern updated
- Handler selector updated
- Duplex RX dispatch added
- Duplex call dispatch added
2019-03-10 23:36:38 -07:00
Anton Repin
a1d23d6af8 Pattern decorators updated to have new naming and additional decorator
- GrpcStream now renamed to GrpcStreamMethod
- Grpc call passthrough now GrpcStreamCall
2019-03-10 23:31:51 -07:00
Livio
6c5108bf1e feat(@nestjs/core): Add init function on NestApplicationContext to API 2019-03-01 20:16:15 +01:00
Anton Repin
2e7f9cbe2e GRPC Server unit-test updated
Create pattern signature test updated to handle new signature for patterns.
2019-02-17 22:53:03 -08:00
Anton Repin
ac994fdda3 Integration test for GRPC Stream handle updated
- Result calculation updated for Controller
- Test file updated with Test and expectations
- GRPC Raw Stream connection added to test
2019-02-17 19:02:55 -08:00
Anton Repin
cf733999d2 GRPC integration test Proto and Controller updated with streaming definitions to test 2019-02-13 18:26:08 -08:00
Anton Repin
da240312fa Pattern decorator test updated with new Pattern signature 2019-02-13 18:24:23 -08:00
Anton Repin
78cac3a086 GRPC server support for Streaming call handlers added
- createService method updated to differentiate handler depending on type of GRPC method definition
- stream pass-through method added
- explanatory comments added
2019-02-13 13:04:54 -08:00
Anton Repin
5721aab084 GRPC patterns expanded with Streaming annotation
- GRPC Method added with definition of streaming parameter for mapping it to appropriate service
- GRPC Stream annotation added
- Commentary added
2019-02-13 13:02:14 -08:00
Craig Whiteside
c5acf28c4b Add socket options to Server 2019-02-12 12:12:28 +00:00
Craig Whiteside
a833d08d1f Added socketOptions to RmqOptions Interface 2019-02-12 12:01:05 +00:00
Craig Whiteside
5103278f0a Add socket options to interface for RMQ 2019-02-12 11:50:22 +00:00
Craig Whiteside
3a757698ba Pass socketOptions to connect method 2019-02-12 11:33:48 +00:00
Craig Whiteside
8765b989c4 Add socketOptions to RMQ sum test 2019-02-12 11:25:48 +00:00
Craig Whiteside
a301e95e82 Add socketOptions to RMQ controller test 2019-02-12 11:25:01 +00:00
Craig Whiteside
a56896e7ba Add socketOptions to RMQ broadcast test 2019-02-12 11:24:32 +00:00
Craig Whiteside
2bd7346bb8 Pass socket options to connect method 2019-02-12 11:22:58 +00:00
Craig Whiteside
672dd499c3 Added Default Socket Options for RMQ 2019-02-12 11:17:56 +00:00
Anton Repin
21a6b5e4fd Merge pull request #1 from nestjs/master
Up to date with the latest master release
2019-02-05 21:59:54 -08:00
Lukas
6897a7e3a5 Merge remote-tracking branch 'upstream/master' 2019-02-05 19:57:24 +01:00
Lukas
8037acfbfb refactor(sample/11) Update the Code to only use the Cat Model 2019-02-05 19:23:13 +01:00
LukvonStrom
0686c39e1c refactor(sample/11) change sample to reflect real world usage + typed responses 2019-01-29 16:01:50 +01:00
290 changed files with 16491 additions and 18508 deletions

3
.github/FUNDING.yml vendored Normal file
View File

@@ -0,0 +1,3 @@
# These are supported funding model platforms
open_collective: nest

View File

@@ -1,46 +0,0 @@
<!--
PLEASE HELP US PROCESS GITHUB ISSUES FASTER BY PROVIDING THE FOLLOWING INFORMATION.
ISSUES MISSING IMPORTANT INFORMATION MAY BE CLOSED WITHOUT INVESTIGATION.
-->
## I'm submitting a...
<!--
Please search GitHub for a similar issue or PR before submitting.
Check one of the following options with "x" -->
<pre><code>
[ ] Regression <!--(a behavior that used to work and stopped working in a new release)-->
[ ] Bug report
[ ] Feature request
[ ] Documentation issue or request
[ ] Support request => Please do not submit support request here, instead post your question on Stack Overflow.
</code></pre>
## Current behavior
<!-- Describe how the issue manifests. -->
## Expected behavior
<!-- Describe what the desired behavior would be. -->
## Minimal reproduction of the problem with instructions
<!-- Please share a repo, a gist, or step-by-step instructions. -->
## What is the motivation / use case for changing the behavior?
<!-- Describe the motivation or the concrete use case. -->
## Environment
<pre><code>
Nest version: X.Y.Z
<!-- Check whether this is still an issue in the most recent Nest version -->
For Tooling issues:
- Node version: XX <!-- run `node --version` -->
- Platform: <!-- Mac, Linux, Windows -->
Others:
<!-- Anything else relevant? Operating system version, IDE, package manager, ... -->
</code></pre>

41
.github/ISSUE_TEMPLATE/Bug_report.md vendored Normal file
View File

@@ -0,0 +1,41 @@
---
name: "\U0001F41B Bug Report"
about: "If something isn't working as expected \U0001F914."
title: ''
labels: 'type: potential issue :broken_heart:,needs triage'
assignees: ''
---
## Bug Report
## Current behavior
<!-- Describe how the issue manifests. -->
## Input Code
<!-- REPL or Repo link if applicable: -->
```ts
const your = (code) => here;
```
## Expected behavior
<!-- A clear and concise description of what you expected to happen (or code). -->
## Possible Solution
<!--- Only if you have suggestions on a fix for the bug -->
## Environment
<pre><code>
Nest version: X.Y.Z
<!-- Check whether this is still an issue in the most recent Nest version -->
For Tooling issues:
- Node version: XX <!-- run `node --version` -->
- Platform: <!-- Mac, Linux, Windows -->
Others:
<!-- Anything else relevant? Operating system version, IDE, package manager, ... -->
</code></pre>

View File

@@ -0,0 +1,22 @@
---
name: "\U0001F680 Feature Request"
about: "I have a suggestion \U0001F63B!"
title: ''
labels: 'type: enhancement :wolf:,needs triage'
assignees: ''
---
## Feature Request
## Is your feature request related to a problem? Please describe.
<!-- A clear and concise description of what the problem is. Ex. I have an issue when [...] -->
## Describe the solution you'd like
<!-- A clear and concise description of what you want to happen. Add any considered drawbacks. -->
## Teachability, Documentation, Adoption, Migration Strategy
<!-- If you can, explain how users will be able to use this and possibly write out a version the docs. Maybe a screenshot or design? -->
## What is the motivation / use case for changing the behavior?
<!-- Describe the motivation or the concrete use case. -->

40
.github/ISSUE_TEMPLATE/Regression.md vendored Normal file
View File

@@ -0,0 +1,40 @@
---
name: "\U0001F4A5 Regression"
about: Report an unexpected while upgrading your Nest application!
title: ''
labels: 'type: bug :sob:,needs triage'
assignees: ''
---
## Regression
<!-- First check out: https://docs.nestjs.com/migration-guide -->
## Potential Commit/PR that introduced the regression**
<!-- If you have time to investigate, what PR/date introduced this issue. -->
## Describe the regression
<!-- A clear and concise description of what the regression is. -->
## Input Code
<!--- If you have link to our REPL or a standalone repo please link that! -->
```ts
const your = (code) => here;
```
## Expected behavior/code
<!-- A clear and concise description of what you expected to happen (or code). -->
## Environment
<pre><code>
Nest version: A.B.C -> X.Y.Z
For Tooling issues:
- Node version: XX <!-- run `node --version` -->
- Platform: <!-- Mac, Linux, Windows -->
Others:
<!-- Anything else relevant? Operating system version, IDE, package manager, ... -->
</code></pre>

View File

@@ -0,0 +1,14 @@
---
name: "\U0001F917 Support Question"
about: "If you have a question \U0001F4AC, please check out our Discord or StackOverflow!"
title: ''
labels: 'type: question 🙌,needs triage'
assignees: ''
---
<!-- We primarily use GitHub as an issue tracker; for usage and support questions, please check out these resources below. Thanks! 😁. -->
* Discord Community Chat: https://discord.gg/G7Qnnhy
* StackOverflow: https://stackoverflow.com/questions/tagged/nestjs using the tag `nestjs`
* Twitter: If it's just a quick question you can ping our Twitter: https://twitter.com/nestframework

View File

@@ -1,24 +1,63 @@
language: node_js
node_js:
- "8"
- "10"
- "11"
cache:
directories:
- "node_modules"
git:
depth: 5
addons:
firefox: "latest"
before_script:
- export DISPLAY=:99.0
- sh -e /etc/init.d/xvfb start
before_install:
- npm i -g npm@latest
install:
- npm ci
- npm run build:dev
script:
- npm run lint
- npm test
after_success: npm run coverage
jobs:
include:
- state: "Test"
name: "Unit Test Node v12"
script: npm test
node_js: 12
after_success: npm run coverage
- state: "Test"
name: "Unit Test Node v10"
script: npm test
node_js: 10
- state: "Test"
name: "Unit Test Node v8"
script: npm test
node_js: 8
- state: "Test"
name: "Integration Test"
install: skip
before_install: skip
before_script: skip
addons: skip
script:
sudo service mysql stop &&
bash ./scripts/prepare.sh &&
npm run integration-test
node_js: 12
- stage: "Test"
name: "Lint"
script: npm run lint
node_js: 12
- stage: "Test"
name: "Build samples"
script: npm run build:samples
node_js: 12

View File

@@ -320,7 +320,7 @@ changes to be accepted, the CLA must be signed. It's a quick process, we promise
[corporate-cla]: http://code.google.com/legal/corporate-cla-v1.0.html
[dev-doc]: https://github.com/nestjs/nest/blob/master/docs/DEVELOPER.md
[github]: https://github.com/nestjs/nest
[gitter]: https://gitter.im/nestjs/nest
[gitter]: https://gitter.im/nestjs/nestjs
[individual-cla]: http://code.google.com/legal/individual-cla-v1.0.html
[js-style-guide]: https://google.github.io/styleguide/jsguide.html
[jsfiddle]: http://jsfiddle.net

View File

@@ -14,8 +14,7 @@
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/core.svg" alt="NPM Downloads" /></a>
<a href="https://travis-ci.org/nestjs/nest" target="_blank"><img src="https://api.travis-ci.org/nestjs/nest.svg?branch=master" alt="Travis" /></a>
<a href="https://travis-ci.org/nestjs/nest" target="_blank"><img src="https://img.shields.io/travis/nestjs/nest/master.svg?label=linux" alt="Linux" /></a>
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#8" alt="Coverage" /></a>
<a href="https://gitter.im/nestjs/nestjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge" target="_blank"><img src="https://badges.gitter.im/nestjs/nestjs.svg" alt="Gitter" /></a>
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
@@ -53,30 +52,31 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="320" /></a>
#### Base Sponsor
<a href="https://blueanchor.io/" target="_blank"><img src="https://nestjs.com/img/blueanchor.png" width="300" /></a> &nbsp;
<a href="https://www.novologic.com/" target="_blank"><img src="https://nestjs.com/img/novologic.png" width="200" /></a>
#### Silver Sponsors
<a href="https://neoteric.eu/" target="_blank"><img src="https://nestjs.com/img/neoteric-cut.png" width="120" valign="middle" /></a> &nbsp;
<a href="http://gojob.com" target="_blank"><img src="http://nestjs.com/img/gojob-logo.png" valign="middle" height="95" /></a> &nbsp; <a href="https://www.swingdev.io" target="_blank"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="150" valign="middle" /> </a> &nbsp; &nbsp;
<a href="https://yakaz.com/" target="_blank"><img src="https://nestjs.com/img/yakaz.png" width="100" valign="middle" /></a> &nbsp;
<a href="https://trilon.io" target="_blank"><img src="https://nestjs.com/img/trilon.svg" width="150" valign="middle" /></a>
<a href="http://xtremis.com/" target="_blank"><img src="https://nestjs.com/img/logo-xtremis.svg" width="150" valign="middle" /></a>
<a href="http://gojob.com" target="_blank"><img src="http://nestjs.com/img/gojob-logo.png" valign="middle" height="95" /></a> &nbsp;
<a href="https://trilon.io" target="_blank"><img src="https://nestjs.com/img/trilon.svg" width="150" valign="middle" /></a> &nbsp;
<a href="http://www.leogistics.com" target="_blank"><img src="https://nestjs.com/img/leogistics-logo.jpeg" width="150" valign="middle" /></a>
#### Sponsors
<a href="https://scal.io" target="_blank"><img src="https://nestjs.com/img/scalio-logo.svg" width="110" valign="middle" /></a> &nbsp; <a href="http://angularity.io" target="_blank"><img src="http://angularity.io/media/logo.svg" height="26" valign="middle" /></a> &nbsp; <!--<a href="https://keycdn.com"><img src="https://nestjs.com/img/keycdn.svg" height="30" /></a> &nbsp;--> <a href="https://hostpresto.com" target="_blank"><img src="https://nestjs.com/img/hostpresto.png" height="30" valign="middle" /></a> &nbsp; <a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" height="36" valign="middle" /></a> &nbsp; <a href="http://architectnow.net/" target="_blank"><img src="https://nestjs.com/img/architectnow.png" height="24" valign="middle" /></a> &nbsp; <a href="https://quander.io/" target="_blank"><img src="https://nestjs.com/img/quander.png" height="28" valign="middle" /></a> &nbsp; <a href="https://mantro.net/" target="_blank"><img src="https://nestjs.com/img/mantro-logo.svg" height="20" valign="middle" /></a> &nbsp;
<a href="https://triplebyte.com/" target="_blank"><img src="https://nestjs.com/img/triplebyte.png" height="30" valign="middle" /></a> &nbsp;
<a href="https://ever.co/" target="_blank"><img src="https://nestjs.com/img/ever-logo.png" height="20" valign="middle" /></a> &nbsp;
<a href="https://buddy.works/" target="_blank"><img src="https://nestjs.com/img/buddy-logo.svg" height="35" valign="middle" /></a>
<a href="https://www.swingdev.io" target="_blank"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="110" valign="middle" /> </a> &nbsp; <a href="https://blueanchor.io/" target="_blank"><img src="https://nestjs.com/img/blueanchor.png" width="150" valign="middle" /></a> &nbsp;
<a href="https://www.novologic.com/" target="_blank"><img src="https://nestjs.com/img/novologic.png" width="110" valign="middle" /></a> &nbsp;
<a href="https://scal.io" target="_blank"><img src="https://nestjs.com/img/scalio-logo.svg" width="80" valign="middle" /></a> &nbsp; <a href="http://angularity.io" target="_blank"><img src="http://angularity.io/media/logo.svg" height="22" valign="middle" /></a> &nbsp; <!--<a href="https://keycdn.com"><img src="https://nestjs.com/img/keycdn.svg" height="30" /></a> &nbsp;--> <a href="https://hostpresto.com" target="_blank"><img src="https://nestjs.com/img/hostpresto.png" height="24" valign="middle" /></a>
<a href="https://ever.co/" target="_blank"><img src="https://nestjs.com/img/ever-logo.png" height="14" valign="middle" /></a> &nbsp;
<a href="https://buddy.works/" target="_blank"><img src="https://nestjs.com/img/buddy-logo.svg" height="25" valign="middle" /></a> &nbsp;
<a href="https://blokt.com" target="_blank"><img src="https://nestjs.com/img/blokt-logo.png" height="25" valign="middle" /></a> &nbsp; <a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" height="24" valign="middle" /></a> &nbsp; <a href="http://architectnow.net/" target="_blank"><img src="https://nestjs.com/img/architectnow.png" height="20" valign="middle" /></a> &nbsp; <a href="https://quander.io/" target="_blank"><img src="https://nestjs.com/img/quander.png" height="22" valign="middle" /></a> &nbsp; <a href="https://mantro.net/" target="_blank"><img src="https://nestjs.com/img/mantro-logo.svg" height="19" valign="middle" /></a> &nbsp; <a href="https://triplebyte.com/" target="_blank"><img src="https://nestjs.com/img/triplebyte.png" height="20" valign="middle" /></a> &nbsp;
<a href="https://reposit.co.uk/" target="_blank"><img src="https://nestjs.com/img/reposit-logo.png" height="18" valign="middle" /></a> &nbsp; &nbsp; <a href="https://yakaz.com/" target="_blank"><img src="https://nestjs.com/img/yakaz.png" width="70" valign="middle" /></a> &nbsp;
<a href="https://nearpod.com/" target="_blank"><img src="https://nestjs.com/img/nearpod-logo.svg" width="100" valign="middle" /></a> &nbsp;
<a href="https://clay.global/" target="_blank"><img src="https://nestjs.com/img/clay-logo.svg" width="75" valign="middle" /></a> &nbsp;
<a href="https://firesticktricks.com" target="_blank"><img src="https://nestjs.com/img/firesticktricks-logo.png" width="120" valign="middle" /></a> &nbsp;
<a href="https://www.codeguesser.co.uk" target="_blank"><img src="https://nestjs.com/img/codeguesser-logo.svg" width="120" valign="middle" /></a> &nbsp;
<a href="https://tekhattan.com" target="_blank"><img src="https://nestjs.com/img/tekhattan-logo.png" width="110" valign="middle" /></a>
## Backers
<a href="https://opencollective.com/nest" target="_blank"><img src="https://opencollective.com/nest/backers.svg?width=890"></a>
<a href="https://opencollective.com/nest" target="_blank"><img src="https://opencollective.com/nest/backers.svg?width=1000"></a>
## Stay in touch

View File

@@ -5,6 +5,15 @@ const ts = require('gulp-typescript');
const sourcemaps = require('gulp-sourcemaps');
const clean = require('gulp-clean');
const deleteEmpty = require('delete-empty');
const childProcess = require('child_process');
const log = require('fancy-log');
const clc = require('cli-color');
const { promisify } = require('util');
const exec = promisify(childProcess.exec);
const SAMPLE = path.join(__dirname, 'sample');
const packages = {
common: ts.createProject('packages/common/tsconfig.json'),
@@ -101,9 +110,49 @@ function getFolders(dir) {
return fs.statSync(path.join(dir, file)).isDirectory();
});
}
gulp.task('move', function() {
const getDirs = base => getFolders(base).map(path => `${base}/${path}`);
const getDirs = base => getFolders(base).map(path => `${base}/${path}`);
gulp.task('install:samples', async () => {
const directories = getDirs(SAMPLE);
const promises = directories.map(async dir => {
log.info(
`Installing dependencies of ${clc.magenta(dir.replace(__dirname, ''))}`,
);
try {
await exec(`npm install --no-shrinkwrap --prefix ${dir}`);
} catch (err) {
log.error(`Failed installing dependencies of ${dir}`);
throw err;
}
});
await Promise.all(promises);
});
gulp.task('build:samples', async () => {
const directories = getDirs(SAMPLE);
const promises = directories.map(async dir => {
log.info(
`Building ${clc.magenta(dir.replace(__dirname, ''))}`,
);
try {
await exec(`npm run build --prefix ${dir}`);
} catch (err) {
log.error(`Failed building ${clc.magenta(dir)}:`);
if(err.stdout) {
log.error(err.stdout);
}
throw err;
}
});
return await Promise.all(promises);
});
gulp.task('move', function() {
const examplesDirs = getDirs('sample');
const integrationDirs = getDirs('integration');
const directories = examplesDirs.concat(integrationDirs);

View File

@@ -23,7 +23,7 @@ services:
- "9001:9001"
restart: always
mysql:
image: mysql:5.7.25
image: mysql:5.7.26
environment:
MYSQL_ROOT_PASSWORD: root
MYSQL_DATABASE: test

File diff suppressed because it is too large Load Diff

View File

@@ -9,21 +9,21 @@
"start:prod": "node dist/main.js"
},
"dependencies": {
"@nestjs/common": "6.0.5",
"@nestjs/core": "6.0.5",
"@nestjs/graphql": "6.0.5",
"apollo-server-express": "2.4.8",
"graphql": "14.2.1",
"graphql-tools": "4.0.4",
"@nestjs/common": "6.5.2",
"@nestjs/core": "6.5.2",
"@nestjs/graphql": "6.4.2",
"apollo-server-express": "2.7.0",
"graphql": "14.4.2",
"graphql-tools": "4.0.5",
"reflect-metadata": "0.1.13",
"rxjs": "6.4.0",
"rxjs": "6.5.2",
"subscriptions-transport-ws": "0.9.16",
"typescript": "3.4.2",
"ws": "6.2.1"
"typescript": "3.5.3",
"ws": "7.1.0"
},
"devDependencies": {
"@types/node": "7.10.5",
"ts-node": "8.0.3",
"tslint": "5.15.0"
"@types/node": "7.10.7",
"ts-node": "8.3.0",
"tslint": "5.18.0"
}
}

View File

@@ -10,7 +10,8 @@
"target": "es6",
"sourceMap": true,
"allowJs": true,
"outDir": "./dist"
"outDir": "./dist",
"skipLibCheck": true
},
"include": [
"src/**/*"

View File

@@ -5,58 +5,58 @@
"requires": true,
"dependencies": {
"@nestjs/common": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.0.5.tgz",
"integrity": "sha512-CbXtgBW/irevfUZF+rURDLFjhmT0Q6dmzbEYkuMg8bSjPmvgG6VzOBG6PwoPZbd+8PrPc2XLjN2A2Hg9mImp7A==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.5.2.tgz",
"integrity": "sha512-vkB6JLPPckjS35usLMV3Q6vljkgzhN3jgQ+U1VY6cKriyjnkIcUKo37tNQSPYkaAGe1pOLK4IkmwMTSyhNieyg==",
"requires": {
"axios": "0.18.0",
"axios": "0.19.0",
"cli-color": "1.4.0",
"uuid": "3.3.2"
}
},
"@nestjs/core": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.0.5.tgz",
"integrity": "sha512-diLLr9qb9vGKyvfkt8JFGox21rpgj4YiToCRb3Tbdab0bvssLopznh/f7cdEBNmk5Adtl3IvXjtdVRj+XH7VCw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.5.2.tgz",
"integrity": "sha512-LTRCl4oaFP43DcPHbvVO0sH72M+N0uGwnqc0UxhJ7ovJMX6xhahSot1QTkBb56V2AIfmzaRbGpuA4qhIgBXj6A==",
"requires": {
"@nuxtjs/opencollective": "0.2.1",
"@nuxtjs/opencollective": "0.2.2",
"fast-safe-stringify": "2.0.6",
"iterare": "1.1.2",
"iterare": "1.2.0",
"object-hash": "1.3.1",
"optional": "0.1.4",
"uuid": "3.3.2"
}
},
"@nestjs/microservices": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-6.0.5.tgz",
"integrity": "sha512-lUyxzYQ3E5U7aQaY4bKVnGxizTl2cE2Rrey0ylmeVE4ae9Y7/z/7mdsfB4DVnuMVuRpyClUJ+zrQ4tJAIvL/nQ==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-6.5.2.tgz",
"integrity": "sha512-edKXp11ma0kAUhXlkDmQ3ytHSKMbZQCyhVFRAOUdDQBhtTRXr7j9UNbMR+xBZq7KdiW09kNHFmYRACTrUsnItQ==",
"requires": {
"iterare": "1.1.2",
"iterare": "1.2.0",
"json-socket": "0.3.0",
"optional": "0.1.4"
}
},
"@nestjs/testing": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-6.0.5.tgz",
"integrity": "sha512-LrPBckONn/ZalBC8GU5LxvgIS8DJNrdwZE4gMJz0ugodwl0c1IL3e2gIukBkUJtHYPtzN12nYevnaGYT/V1aDQ==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-6.5.2.tgz",
"integrity": "sha512-wyob7CkuCdq+NBhq78JyX5Llk4tQv2fS1jcVqhvHp96zc9RxemOMvN1GUHTXo4SNVxE+hlUV1smvcsPPsmlj8Q==",
"requires": {
"optional": "0.1.4"
}
},
"@nestjs/websockets": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-6.0.5.tgz",
"integrity": "sha512-cA4Z6dM/Q8WqzgDyC6HiCdFvcDVAv7TyGkzthuuCn9xHDeLjtyzCL1koogkZ0FmLWhNmCskc/yJb2IjApGtzvQ==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-6.5.2.tgz",
"integrity": "sha512-VguS7Fy3AcZS8CzuvdOxOWW+9VecGJ/AwJWbG76d0iRCsqpJu+qAoPNpo9qruB1lQ0MXYHlwGgxaTcF8PzrliQ==",
"requires": {
"iterare": "1.1.2"
"iterare": "1.2.0"
}
},
"@nuxtjs/opencollective": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.1.tgz",
"integrity": "sha512-pzSib8NKquaTt/ns5Cc2G0BGRVJXaD+p1qfF6q7vNIMvRysorn/VF3y7gAuQpcxfF7wBbGE+dXjhIieWOUsWSw==",
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.2.tgz",
"integrity": "sha512-69gFVDs7mJfNjv9Zs5DFVD+pvBW+k1TaHSOqUWqAyTTfLcKI/EMYQgvEvziRd+zAFtUOoye6MfWh0qvinGISPw==",
"requires": {
"chalk": "^2.4.1",
"consola": "^2.3.0",
@@ -64,9 +64,9 @@
}
},
"@types/node": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.5.tgz",
"integrity": "sha512-RYkagUUbxQBss46ElbEa+j4q4X3GR12QwB7a/PM5hmVuVkYoW1jENT1+taspKUv8ibwW8cw+kRFbOaTc/Key3w==",
"version": "7.10.7",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.7.tgz",
"integrity": "sha512-4I7+hXKyq7e1deuzX9udu0hPIYqSSkdKXtjow6fMnQ3OR9qkxIErGHbGY08YrfZJrCS1ajK8lOuzd0k3n2WM4A==",
"dev": true
},
"abstract-logging": {
@@ -134,26 +134,21 @@
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"axios": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
"version": "0.19.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
"integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
"requires": {
"follow-redirects": "^1.3.0",
"is-buffer": "^1.1.5"
"follow-redirects": "1.5.10",
"is-buffer": "^2.0.2"
}
},
"bourne": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/bourne/-/bourne-1.1.2.tgz",
"integrity": "sha512-b2dgVkTZhkQirNMohgC00rWfpVqEi9y5tKM1k3JvoNx05ODtfQoPPd4js9CYFQoY0IM8LAmnJulEuWv74zjUOg=="
},
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@@ -171,9 +166,9 @@
}
},
"class-transformer": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.0.tgz",
"integrity": "sha512-6N/5WkEmLZCKxyC2CAPYQIJt3pDZzDFag7AExpyWRm7CjaS/U62VDRU+Z2AUrQaNpnuiXRlli0so4PJUqGSVZQ=="
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.3.tgz",
"integrity": "sha512-qsP+0xoavpOlJHuYsQJsN58HXSl8Jvveo+T37rEvCEeRfMWoytAyR0Ua/YsFgpM6AZYZ/og2PJwArwzJl1aXtQ=="
},
"class-validator": {
"version": "0.9.1",
@@ -226,9 +221,9 @@
"dev": true
},
"consola": {
"version": "2.5.8",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.5.8.tgz",
"integrity": "sha512-fYv1M0rNJw4h0CZUx8PX02Px7xQhA+vNHpV8DBCGMoozp2Io/vrSXhhEothaRnSt7VMR0rj2pt9KKLXa5amrCw=="
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.9.0.tgz",
"integrity": "sha512-34Iue+LRcWbndFIfZc5boNizWlsrRjqIBJZTe591vImgbnq7nx2EzlrLtANj9TH2Fxm7puFJBJAOk5BhvZOddQ=="
},
"cookiejar": {
"version": "2.1.2",
@@ -243,26 +238,26 @@
"dev": true
},
"d": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
"integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
"requires": {
"es5-ext": "^0.10.9"
"es5-ext": "^0.10.50",
"type": "^1.0.1"
}
},
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
},
"deepmerge": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz",
"integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow=="
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
"integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA=="
},
"delayed-stream": {
"version": "1.0.0",
@@ -271,15 +266,15 @@
"dev": true
},
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
"integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
"dev": true
},
"es5-ext": {
"version": "0.10.49",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz",
"integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==",
"version": "0.10.50",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
"integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
"requires": {
"es6-iterator": "~2.0.3",
"es6-symbol": "~3.1.1",
@@ -306,13 +301,13 @@
}
},
"es6-weak-map": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
"integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
"integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
"requires": {
"d": "1",
"es5-ext": "^0.10.14",
"es6-iterator": "^2.0.1",
"es5-ext": "^0.10.46",
"es6-iterator": "^2.0.3",
"es6-symbol": "^3.1.1"
}
},
@@ -352,9 +347,9 @@
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
},
"fast-json-stringify": {
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-1.14.0.tgz",
"integrity": "sha512-3VSblXsVxIE46E/YzRYHapyIeM3/igeA/kyzdL5xfAIYNnCLd8Oy+scrURnqZIRXMmtx0hfyp+okN5+r4W+GMQ==",
"version": "1.15.3",
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-1.15.3.tgz",
"integrity": "sha512-p+ucnySTbrUQ9M7u8ygFIxrmpG8B+8O4/PvLDdh+RqMMgj/h6OoDb7U2lP+kqg3PDclQBFbSIArRhkorFwZLLg==",
"requires": {
"ajv": "^6.8.1",
"deepmerge": "^3.0.0"
@@ -371,23 +366,23 @@
"integrity": "sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg=="
},
"fastify": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/fastify/-/fastify-2.2.0.tgz",
"integrity": "sha512-U6W101N+8Hyz2uiN3XqdSdTiaWYiJ0lCJmC3tO42PNttjCZQp8EPIhZ0QkVQWLrrP0ijjgomwaYrj9eMzqWyDw==",
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/fastify/-/fastify-2.6.0.tgz",
"integrity": "sha512-3GxGV2P8731o2S5T6ng5NMJ9S7vFpZA4mk2mJEbMbhQ5aj1HhNGBOe39TYa2gWRrJVJuXxYYYIlY/5cFhiHpNg==",
"requires": {
"abstract-logging": "^1.0.0",
"ajv": "^6.9.2",
"avvio": "^6.1.1",
"bourne": "^1.1.2",
"fast-json-stringify": "^1.11.2",
"fast-json-stringify": "^1.15.0",
"find-my-way": "^2.0.0",
"flatstr": "^1.0.9",
"flatstr": "^1.0.12",
"light-my-request": "^3.2.0",
"middie": "^4.0.1",
"pino": "^5.11.1",
"proxy-addr": "^2.0.4",
"readable-stream": "^3.1.1",
"rfdc": "^1.1.2",
"secure-json-parse": "^1.0.0",
"tiny-lru": "^6.0.1"
}
},
@@ -400,9 +395,9 @@
}
},
"find-my-way": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-2.0.1.tgz",
"integrity": "sha512-c+YnWk4LKcWSNu743wfoqNOZTYQ6kZ/kzZCjALGblLpzbEAv3INakGMZ1K/by+Wmf/NP3+3LpOQMOFw6/q52wQ==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-2.1.0.tgz",
"integrity": "sha512-Hdx6ctcrzkZH5y9EREHtXryXAgc5Bc8z5Cvoa61y9kaoYj2KU4yXD6h8b6u0NUkYPVmQQeRdf0AtG1kQxQ+ukQ==",
"requires": {
"fast-decode-uri-component": "^1.0.0",
"safe-regex2": "^2.0.0",
@@ -410,31 +405,16 @@
}
},
"flatstr": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.9.tgz",
"integrity": "sha512-qFlJnOBWDfIaunF54/lBqNKmXOI0HqNhu+mHkLmbaBXlS71PUd9OjFOdyevHt/aHoHB1+eW7eKHgRKOG5aHSpw=="
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz",
"integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw=="
},
"follow-redirects": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
"integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"requires": {
"debug": "^3.2.6"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
"ms": "^2.1.1"
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
"debug": "=3.1.0"
}
},
"form-data": {
@@ -475,14 +455,14 @@
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ipaddr.js": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
"integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4="
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
"integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
},
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
"integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw=="
},
"is-promise": {
"version": "2.1.0",
@@ -490,9 +470,9 @@
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
"iterare": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/iterare/-/iterare-1.1.2.tgz",
"integrity": "sha512-25rVYmj/dDvTR6zOa9jY1Ihd6USLa0J508Ub2iy7Aga+xu9JMbjDds2Uh03ReDGbva/YN3s3Ybi+Do0nOX6wAg=="
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.0.tgz",
"integrity": "sha512-RxMV9p/UzdK0Iplnd8mVgRvNdXlsTOiuDrqMRnDi3wIhbT+JP4xDquAX9ay13R3CH72NBzQ91KWe0+C168QAyQ=="
},
"json-schema-traverse": {
"version": "0.4.1",
@@ -505,9 +485,9 @@
"integrity": "sha512-jc8ZbUnYIWdxERFWQKVgwSLkGSe+kyzvmYxwNaRgx/c8NNyuHes4UHnPM3LUrAFXUx1BhNJ94n1h/KCRlbvV0g=="
},
"light-my-request": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-3.3.0.tgz",
"integrity": "sha512-dLtwhjzbuHJ+KMMUBSlVid6Iqxx+KKvULWLnBD06WMgPHxiPkEh1cVyj+Xc8HGU64hULlSw/sZVCdFsvjNQeNA==",
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-3.4.0.tgz",
"integrity": "sha512-zIEl4lKwATE5uPmxEZkVIIAr/JGrHEngf9MDZ7a1TodLZ93kROYkKkoqSCmQIJ01FXrzyYMnmtemBO/b1HFt0Q==",
"requires": {
"ajv": "^6.8.1",
"readable-stream": "^3.1.1"
@@ -581,8 +561,7 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"next-tick": {
"version": "1.0.0",
@@ -590,9 +569,9 @@
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
"node-fetch": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz",
"integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA=="
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
},
"object-hash": {
"version": "1.3.1",
@@ -610,9 +589,9 @@
"integrity": "sha512-ZOtfhPttCrqp2M1PBBH4X13XlvnfhIwD7yCLx+GoGoXRPQyxGOTdQMpIzPSPKXAJT/JQrdfFrgdJOyAzvgpQ9A=="
},
"pino": {
"version": "5.12.2",
"resolved": "https://registry.npmjs.org/pino/-/pino-5.12.2.tgz",
"integrity": "sha512-EunVRDkw/eQzgAudJiZuqzEQ20hDezixLRLrdxUMBzavvt5ot3vep7K8swRvXSgj2bKtbOmoHnrRMtYzRjfITQ==",
"version": "5.12.6",
"resolved": "https://registry.npmjs.org/pino/-/pino-5.12.6.tgz",
"integrity": "sha512-LM5ug2b27uymIIkaBw54ncF+9DSf8S4z1uzw+Y5I94dRu3Z+lFuB13j0kg1InAeyxy+CsLGnWHKy9+zgTreFOg==",
"requires": {
"fast-redact": "^1.4.4",
"fast-safe-stringify": "^2.0.6",
@@ -623,9 +602,9 @@
}
},
"pino-std-serializers": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.3.0.tgz",
"integrity": "sha512-klfGoOsP6sJH7ON796G4xoUSx2fkpFgKHO4YVVO2zmz31jR+etzc/QzGJILaOIiCD6HTCFgkPx+XN8nk+ruqPw=="
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.4.2.tgz",
"integrity": "sha512-WaL504dO8eGs+vrK+j4BuQQq6GLKeCCcHaMB2ItygzVURcL1CycwNEUHTD/lHFHs/NL5qAz2UKrjYWXKSf4aMQ=="
},
"process-nextick-args": {
"version": "2.0.0",
@@ -634,12 +613,12 @@
"dev": true
},
"proxy-addr": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
"integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
"integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
"requires": {
"forwarded": "~0.1.2",
"ipaddr.js": "1.8.0"
"ipaddr.js": "1.9.0"
}
},
"punycode": {
@@ -659,9 +638,9 @@
"integrity": "sha512-FXTaCkwvpIlkdKeGDNgcq07SXWS383noQUuZjvdE1QcTt+eLuqof6/BDiEPqB59FWLie/l91+HtlJSw7iCViSA=="
},
"readable-stream": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz",
"integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==",
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
"integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -684,14 +663,14 @@
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
},
"rfdc": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.2.tgz",
"integrity": "sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA=="
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz",
"integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug=="
},
"rxjs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
"integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
"integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
"requires": {
"tslib": "^1.9.0"
}
@@ -709,15 +688,20 @@
"ret": "~0.2.0"
}
},
"secure-json-parse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-1.0.0.tgz",
"integrity": "sha512-kMg4jXttRQzVyLebIDc+MRxCueJ/zsmHpCn59BRd0mZUCd+V02wNd7/Pds8Nyhv7jfLHo1KkUOzdIF7cRMU4LQ=="
},
"semver-store": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz",
"integrity": "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg=="
},
"sonic-boom": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-0.7.3.tgz",
"integrity": "sha512-A9EyoIeLD+g9vMLYQKjNCatJtAKdBQMW03+L8ZWWX/A6hq+srRCwdqHrBD1R8oSMLXov3oHN13dljtZf12q2Ow==",
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-0.7.4.tgz",
"integrity": "sha512-8JRAJg0RxZtFLQMxolwETvWd2JSlH3ZGo/Z4xPxMbpqF14xCgVYPVeFCFOR3zyr3pcfG82QDVj6537Sx5ZWdNw==",
"requires": {
"flatstr": "^1.0.9"
}
@@ -729,9 +713,9 @@
"dev": true
},
"source-map-support": {
"version": "0.5.11",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz",
"integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==",
"version": "0.5.12",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
"integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
@@ -829,13 +813,13 @@
"integrity": "sha512-k/vdHz+bFALjmik0URLWBYNuO0hCABTL5dullbZBXvFDdlL8RrKaeLR6YuHfX+6ZXOLkHw+HpNLCUA7DtLMQmg=="
},
"ts-node": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.0.3.tgz",
"integrity": "sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA==",
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
"integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==",
"dev": true,
"requires": {
"arg": "^4.1.0",
"diff": "^3.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"source-map-support": "^0.5.6",
"yn": "^3.0.0"
@@ -846,10 +830,15 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
},
"type": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz",
"integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw=="
},
"typescript": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.2.tgz",
"integrity": "sha512-Og2Vn6Mk7JAuWA1hQdDQN/Ekm/SchX80VzLhjKN9ETYrIepBFAd8PkOdOTK2nKt0FCkmMZKBJvQ1dV1gIxPu/A=="
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
"integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g=="
},
"uri-js": {
"version": "4.2.2",
@@ -875,9 +864,9 @@
"integrity": "sha512-Q/wBy3LB1uOyssgNlXSRmaf22NxjvDNZM2MtIQ4jaEOAB61xsh1TQxsq1CgzUMBV1lDrVMogIh8GjG1DYW0zLg=="
},
"yn": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.0.0.tgz",
"integrity": "sha512-+Wo/p5VRfxUgBUGy2j/6KX2mj9AYJWOHuhMjMcbBFc3y54o9/4buK1ksBvuiK01C3kby8DH9lSmJdSxw+4G/2Q==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz",
"integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==",
"dev": true
}
}

View File

@@ -7,21 +7,21 @@
"start": "ts-node src/main"
},
"dependencies": {
"@nestjs/common": "6.0.5",
"@nestjs/core": "6.0.5",
"@nestjs/microservices": "6.0.5",
"@nestjs/testing": "6.0.5",
"@nestjs/websockets": "6.0.5",
"class-transformer": "0.2.0",
"@nestjs/common": "6.5.2",
"@nestjs/core": "6.5.2",
"@nestjs/microservices": "6.5.2",
"@nestjs/testing": "6.5.2",
"@nestjs/websockets": "6.5.2",
"class-transformer": "0.2.3",
"class-validator": "0.9.1",
"fastify": "2.2.0",
"fastify": "2.6.0",
"reflect-metadata": "0.1.13",
"rxjs": "6.4.0",
"typescript": "3.4.2"
"rxjs": "6.5.2",
"typescript": "3.5.3"
},
"devDependencies": {
"@types/node": "7.10.5",
"@types/node": "7.10.7",
"supertest": "4.0.2",
"ts-node": "8.0.3"
"ts-node": "8.3.0"
}
}

View File

@@ -1,9 +1,9 @@
import { Injectable, OnApplicationShutdown } from '@nestjs/common';
import { Test } from '@nestjs/testing';
import { expect } from 'chai';
import * as Sinon from 'sinon';
import { Injectable, OnApplicationShutdown, ShutdownSignal } from '@nestjs/common';
import { spawn, spawnSync } from 'child_process';
import { spawnSync } from 'child_process';
import { join } from 'path';
import * as Sinon from 'sinon';
@Injectable()
class TestInjectable implements OnApplicationShutdown {
@@ -23,26 +23,41 @@ describe('OnApplicationShutdown', () => {
});
it('should call onApplicationShutdown if any shutdown signal gets invoked', done => {
const result = spawnSync('ts-node', [join(__dirname, '../src/main.ts'), 'SIGHUP']);
expect(result.stdout.toString().trim()).to.be.eq('Signal SIGHUP');
const result = spawnSync('ts-node', [
join(__dirname, '../src/main.ts'),
'SIGHUP',
]);
expect(result.stdout.toString().trim() === 'Signal SIGHUP').to.be.true;
done();
});
}).timeout(5000);
it('should call onApplicationShutdown if a specific shutdown signal gets invoked', done => {
const result = spawnSync('ts-node', [join(__dirname, '../src/main.ts'), 'SIGINT', 'SIGINT']);
const result = spawnSync('ts-node', [
join(__dirname, '../src/main.ts'),
'SIGINT',
'SIGINT',
]);
expect(result.stdout.toString().trim()).to.be.eq('Signal SIGINT');
done();
});
}).timeout(5000);
it('should ignore system signals which are not specified', done => {
const result = spawnSync('ts-node', [join(__dirname, '../src/main.ts'), 'SIGINT', 'SIGHUP']);
const result = spawnSync('ts-node', [
join(__dirname, '../src/main.ts'),
'SIGINT',
'SIGHUP',
]);
expect(result.stdout.toString().trim()).to.be.eq('');
done();
});
}).timeout(5000);
it('should ignore system signals if "enableShutdownHooks" was not called', done => {
const result = spawnSync('ts-node', [join(__dirname, '../src/main.ts'), 'SIGINT', 'NONE']);
const result = spawnSync('ts-node', [
join(__dirname, '../src/main.ts'),
'SIGINT',
'NONE',
]);
expect(result.stdout.toString().trim()).to.be.eq('');
done();
});
}).timeout(5000);
});

View File

@@ -5,32 +5,32 @@
"requires": true,
"dependencies": {
"@nestjs/common": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.0.5.tgz",
"integrity": "sha512-CbXtgBW/irevfUZF+rURDLFjhmT0Q6dmzbEYkuMg8bSjPmvgG6VzOBG6PwoPZbd+8PrPc2XLjN2A2Hg9mImp7A==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.5.2.tgz",
"integrity": "sha512-vkB6JLPPckjS35usLMV3Q6vljkgzhN3jgQ+U1VY6cKriyjnkIcUKo37tNQSPYkaAGe1pOLK4IkmwMTSyhNieyg==",
"requires": {
"axios": "0.18.0",
"axios": "0.19.0",
"cli-color": "1.4.0",
"uuid": "3.3.2"
}
},
"@nestjs/core": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.0.5.tgz",
"integrity": "sha512-diLLr9qb9vGKyvfkt8JFGox21rpgj4YiToCRb3Tbdab0bvssLopznh/f7cdEBNmk5Adtl3IvXjtdVRj+XH7VCw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.5.2.tgz",
"integrity": "sha512-LTRCl4oaFP43DcPHbvVO0sH72M+N0uGwnqc0UxhJ7ovJMX6xhahSot1QTkBb56V2AIfmzaRbGpuA4qhIgBXj6A==",
"requires": {
"@nuxtjs/opencollective": "0.2.1",
"@nuxtjs/opencollective": "0.2.2",
"fast-safe-stringify": "2.0.6",
"iterare": "1.1.2",
"iterare": "1.2.0",
"object-hash": "1.3.1",
"optional": "0.1.4",
"uuid": "3.3.2"
}
},
"@nuxtjs/opencollective": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.1.tgz",
"integrity": "sha512-pzSib8NKquaTt/ns5Cc2G0BGRVJXaD+p1qfF6q7vNIMvRysorn/VF3y7gAuQpcxfF7wBbGE+dXjhIieWOUsWSw==",
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.2.tgz",
"integrity": "sha512-69gFVDs7mJfNjv9Zs5DFVD+pvBW+k1TaHSOqUWqAyTTfLcKI/EMYQgvEvziRd+zAFtUOoye6MfWh0qvinGISPw==",
"requires": {
"chalk": "^2.4.1",
"consola": "^2.3.0",
@@ -38,9 +38,9 @@
}
},
"@types/node": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.5.tgz",
"integrity": "sha512-RYkagUUbxQBss46ElbEa+j4q4X3GR12QwB7a/PM5hmVuVkYoW1jENT1+taspKUv8ibwW8cw+kRFbOaTc/Key3w==",
"version": "7.10.7",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.7.tgz",
"integrity": "sha512-4I7+hXKyq7e1deuzX9udu0hPIYqSSkdKXtjow6fMnQ3OR9qkxIErGHbGY08YrfZJrCS1ajK8lOuzd0k3n2WM4A==",
"dev": true
},
"ansi-regex": {
@@ -69,12 +69,12 @@
"dev": true
},
"axios": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
"version": "0.19.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
"integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
"requires": {
"follow-redirects": "^1.3.0",
"is-buffer": "^1.1.5"
"follow-redirects": "1.5.10",
"is-buffer": "^2.0.2"
}
},
"buffer-from": {
@@ -94,9 +94,9 @@
}
},
"class-transformer": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.0.tgz",
"integrity": "sha512-6N/5WkEmLZCKxyC2CAPYQIJt3pDZzDFag7AExpyWRm7CjaS/U62VDRU+Z2AUrQaNpnuiXRlli0so4PJUqGSVZQ=="
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.3.tgz",
"integrity": "sha512-qsP+0xoavpOlJHuYsQJsN58HXSl8Jvveo+T37rEvCEeRfMWoytAyR0Ua/YsFgpM6AZYZ/og2PJwArwzJl1aXtQ=="
},
"class-validator": {
"version": "0.9.1",
@@ -149,9 +149,9 @@
"dev": true
},
"consola": {
"version": "2.5.8",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.5.8.tgz",
"integrity": "sha512-fYv1M0rNJw4h0CZUx8PX02Px7xQhA+vNHpV8DBCGMoozp2Io/vrSXhhEothaRnSt7VMR0rj2pt9KKLXa5amrCw=="
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.9.0.tgz",
"integrity": "sha512-34Iue+LRcWbndFIfZc5boNizWlsrRjqIBJZTe591vImgbnq7nx2EzlrLtANj9TH2Fxm7puFJBJAOk5BhvZOddQ=="
},
"cookiejar": {
"version": "2.1.2",
@@ -166,17 +166,19 @@
"dev": true
},
"d": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
"integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
"requires": {
"es5-ext": "^0.10.9"
"es5-ext": "^0.10.50",
"type": "^1.0.1"
}
},
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
@@ -188,15 +190,15 @@
"dev": true
},
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
"integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
"dev": true
},
"es5-ext": {
"version": "0.10.49",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz",
"integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==",
"version": "0.10.50",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
"integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
"requires": {
"es6-iterator": "~2.0.3",
"es6-symbol": "~3.1.1",
@@ -223,13 +225,13 @@
}
},
"es6-weak-map": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
"integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
"integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
"requires": {
"d": "1",
"es5-ext": "^0.10.14",
"es6-iterator": "^2.0.1",
"es5-ext": "^0.10.46",
"es6-iterator": "^2.0.3",
"es6-symbol": "^3.1.1"
}
},
@@ -259,11 +261,26 @@
"integrity": "sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg=="
},
"follow-redirects": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
"integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"requires": {
"debug": "^3.2.6"
"debug": "=3.1.0"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"form-data": {
@@ -300,9 +317,9 @@
"dev": true
},
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
"integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw=="
},
"is-promise": {
"version": "2.1.0",
@@ -310,9 +327,9 @@
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
"iterare": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/iterare/-/iterare-1.1.2.tgz",
"integrity": "sha512-25rVYmj/dDvTR6zOa9jY1Ihd6USLa0J508Ub2iy7Aga+xu9JMbjDds2Uh03ReDGbva/YN3s3Ybi+Do0nOX6wAg=="
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.0.tgz",
"integrity": "sha512-RxMV9p/UzdK0Iplnd8mVgRvNdXlsTOiuDrqMRnDi3wIhbT+JP4xDquAX9ay13R3CH72NBzQ91KWe0+C168QAyQ=="
},
"lru-queue": {
"version": "0.1.0",
@@ -373,7 +390,8 @@
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"dev": true
},
"next-tick": {
"version": "1.0.0",
@@ -381,9 +399,9 @@
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
"node-fetch": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz",
"integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA=="
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
},
"object-hash": {
"version": "1.3.1",
@@ -413,9 +431,9 @@
"integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
},
"rxjs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
"integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
"integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
"requires": {
"tslib": "^1.9.0"
}
@@ -433,9 +451,9 @@
"dev": true
},
"source-map-support": {
"version": "0.5.11",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz",
"integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==",
"version": "0.5.12",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
"integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
@@ -520,13 +538,13 @@
}
},
"ts-node": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.0.3.tgz",
"integrity": "sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA==",
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
"integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==",
"dev": true,
"requires": {
"arg": "^4.1.0",
"diff": "^3.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"source-map-support": "^0.5.6",
"yn": "^3.0.0"
@@ -537,10 +555,15 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
},
"type": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz",
"integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw=="
},
"typescript": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.2.tgz",
"integrity": "sha512-Og2Vn6Mk7JAuWA1hQdDQN/Ekm/SchX80VzLhjKN9ETYrIepBFAd8PkOdOTK2nKt0FCkmMZKBJvQ1dV1gIxPu/A=="
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
"integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g=="
},
"util-deprecate": {
"version": "1.0.2",
@@ -559,9 +582,9 @@
"integrity": "sha512-Q/wBy3LB1uOyssgNlXSRmaf22NxjvDNZM2MtIQ4jaEOAB61xsh1TQxsq1CgzUMBV1lDrVMogIh8GjG1DYW0zLg=="
},
"yn": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.0.0.tgz",
"integrity": "sha512-+Wo/p5VRfxUgBUGy2j/6KX2mj9AYJWOHuhMjMcbBFc3y54o9/4buK1ksBvuiK01C3kby8DH9lSmJdSxw+4G/2Q==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz",
"integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==",
"dev": true
}
}

View File

@@ -7,17 +7,17 @@
"start": "ts-node src/main"
},
"dependencies": {
"@nestjs/common": "6.0.5",
"@nestjs/core": "6.0.5",
"class-transformer": "0.2.0",
"@nestjs/common": "6.5.2",
"@nestjs/core": "6.5.2",
"class-transformer": "0.2.3",
"class-validator": "0.9.1",
"reflect-metadata": "0.1.13",
"rxjs": "6.4.0",
"typescript": "3.4.2"
"rxjs": "6.5.2",
"typescript": "3.5.3"
},
"devDependencies": {
"@types/node": "7.10.5",
"@types/node": "7.10.7",
"supertest": "4.0.2",
"ts-node": "8.0.3"
"ts-node": "8.3.0"
}
}

View File

@@ -0,0 +1,37 @@
import { Test, TestingModule } from '@nestjs/testing';
import { expect } from 'chai';
import { CoreInjectablesModule } from '../src/core-injectables/core-injectables.module';
import { ApplicationConfig, ModuleRef } from '@nestjs/core';
describe('Core Injectables', () => {
let testingModule: TestingModule;
beforeEach(async () => {
const builder = Test.createTestingModule({
imports: [CoreInjectablesModule],
});
testingModule = await builder.compile();
});
it('should provide ApplicationConfig as core injectable', () => {
const applicationConfig = testingModule.get<ApplicationConfig>(
ApplicationConfig,
);
applicationConfig.setGlobalPrefix('/api');
expect(applicationConfig).to.not.be.undefined;
expect(applicationConfig.getGlobalPrefix()).to.be.eq('/api');
});
it('should provide ModuleRef as core injectable', () => {
const moduleRef = testingModule.get<ModuleRef>(ModuleRef);
expect(moduleRef).to.not.be.undefined;
});
it('should provide the current Module as provider', () => {
const module = testingModule.get<CoreInjectablesModule>(CoreInjectablesModule);
expect(module).to.not.be.undefined;
expect(module.constructor.name).to.be.eq('CoreInjectablesModule');
});
});

View File

@@ -5,58 +5,58 @@
"requires": true,
"dependencies": {
"@nestjs/common": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.0.5.tgz",
"integrity": "sha512-CbXtgBW/irevfUZF+rURDLFjhmT0Q6dmzbEYkuMg8bSjPmvgG6VzOBG6PwoPZbd+8PrPc2XLjN2A2Hg9mImp7A==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.5.2.tgz",
"integrity": "sha512-vkB6JLPPckjS35usLMV3Q6vljkgzhN3jgQ+U1VY6cKriyjnkIcUKo37tNQSPYkaAGe1pOLK4IkmwMTSyhNieyg==",
"requires": {
"axios": "0.18.0",
"axios": "0.19.0",
"cli-color": "1.4.0",
"uuid": "3.3.2"
}
},
"@nestjs/core": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.0.5.tgz",
"integrity": "sha512-diLLr9qb9vGKyvfkt8JFGox21rpgj4YiToCRb3Tbdab0bvssLopznh/f7cdEBNmk5Adtl3IvXjtdVRj+XH7VCw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.5.2.tgz",
"integrity": "sha512-LTRCl4oaFP43DcPHbvVO0sH72M+N0uGwnqc0UxhJ7ovJMX6xhahSot1QTkBb56V2AIfmzaRbGpuA4qhIgBXj6A==",
"requires": {
"@nuxtjs/opencollective": "0.2.1",
"@nuxtjs/opencollective": "0.2.2",
"fast-safe-stringify": "2.0.6",
"iterare": "1.1.2",
"iterare": "1.2.0",
"object-hash": "1.3.1",
"optional": "0.1.4",
"uuid": "3.3.2"
}
},
"@nestjs/microservices": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-6.0.5.tgz",
"integrity": "sha512-lUyxzYQ3E5U7aQaY4bKVnGxizTl2cE2Rrey0ylmeVE4ae9Y7/z/7mdsfB4DVnuMVuRpyClUJ+zrQ4tJAIvL/nQ==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-6.5.2.tgz",
"integrity": "sha512-edKXp11ma0kAUhXlkDmQ3ytHSKMbZQCyhVFRAOUdDQBhtTRXr7j9UNbMR+xBZq7KdiW09kNHFmYRACTrUsnItQ==",
"requires": {
"iterare": "1.1.2",
"iterare": "1.2.0",
"json-socket": "0.3.0",
"optional": "0.1.4"
}
},
"@nestjs/testing": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-6.0.5.tgz",
"integrity": "sha512-LrPBckONn/ZalBC8GU5LxvgIS8DJNrdwZE4gMJz0ugodwl0c1IL3e2gIukBkUJtHYPtzN12nYevnaGYT/V1aDQ==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-6.5.2.tgz",
"integrity": "sha512-wyob7CkuCdq+NBhq78JyX5Llk4tQv2fS1jcVqhvHp96zc9RxemOMvN1GUHTXo4SNVxE+hlUV1smvcsPPsmlj8Q==",
"requires": {
"optional": "0.1.4"
}
},
"@nestjs/websockets": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-6.0.5.tgz",
"integrity": "sha512-cA4Z6dM/Q8WqzgDyC6HiCdFvcDVAv7TyGkzthuuCn9xHDeLjtyzCL1koogkZ0FmLWhNmCskc/yJb2IjApGtzvQ==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-6.5.2.tgz",
"integrity": "sha512-VguS7Fy3AcZS8CzuvdOxOWW+9VecGJ/AwJWbG76d0iRCsqpJu+qAoPNpo9qruB1lQ0MXYHlwGgxaTcF8PzrliQ==",
"requires": {
"iterare": "1.1.2"
"iterare": "1.2.0"
}
},
"@nuxtjs/opencollective": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.1.tgz",
"integrity": "sha512-pzSib8NKquaTt/ns5Cc2G0BGRVJXaD+p1qfF6q7vNIMvRysorn/VF3y7gAuQpcxfF7wBbGE+dXjhIieWOUsWSw==",
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.2.tgz",
"integrity": "sha512-69gFVDs7mJfNjv9Zs5DFVD+pvBW+k1TaHSOqUWqAyTTfLcKI/EMYQgvEvziRd+zAFtUOoye6MfWh0qvinGISPw==",
"requires": {
"chalk": "^2.4.1",
"consola": "^2.3.0",
@@ -64,9 +64,9 @@
}
},
"@types/node": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.5.tgz",
"integrity": "sha512-RYkagUUbxQBss46ElbEa+j4q4X3GR12QwB7a/PM5hmVuVkYoW1jENT1+taspKUv8ibwW8cw+kRFbOaTc/Key3w==",
"version": "7.10.7",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.7.tgz",
"integrity": "sha512-4I7+hXKyq7e1deuzX9udu0hPIYqSSkdKXtjow6fMnQ3OR9qkxIErGHbGY08YrfZJrCS1ajK8lOuzd0k3n2WM4A==",
"dev": true
},
"ansi-regex": {
@@ -95,12 +95,12 @@
"dev": true
},
"axios": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
"version": "0.19.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
"integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
"requires": {
"follow-redirects": "^1.3.0",
"is-buffer": "^1.1.5"
"follow-redirects": "1.5.10",
"is-buffer": "^2.0.2"
}
},
"buffer-from": {
@@ -120,9 +120,9 @@
}
},
"class-transformer": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.0.tgz",
"integrity": "sha512-6N/5WkEmLZCKxyC2CAPYQIJt3pDZzDFag7AExpyWRm7CjaS/U62VDRU+Z2AUrQaNpnuiXRlli0so4PJUqGSVZQ=="
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.3.tgz",
"integrity": "sha512-qsP+0xoavpOlJHuYsQJsN58HXSl8Jvveo+T37rEvCEeRfMWoytAyR0Ua/YsFgpM6AZYZ/og2PJwArwzJl1aXtQ=="
},
"class-validator": {
"version": "0.9.1",
@@ -175,9 +175,9 @@
"dev": true
},
"consola": {
"version": "2.5.8",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.5.8.tgz",
"integrity": "sha512-fYv1M0rNJw4h0CZUx8PX02Px7xQhA+vNHpV8DBCGMoozp2Io/vrSXhhEothaRnSt7VMR0rj2pt9KKLXa5amrCw=="
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.9.0.tgz",
"integrity": "sha512-34Iue+LRcWbndFIfZc5boNizWlsrRjqIBJZTe591vImgbnq7nx2EzlrLtANj9TH2Fxm7puFJBJAOk5BhvZOddQ=="
},
"cookiejar": {
"version": "2.1.2",
@@ -192,17 +192,19 @@
"dev": true
},
"d": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
"integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
"requires": {
"es5-ext": "^0.10.9"
"es5-ext": "^0.10.50",
"type": "^1.0.1"
}
},
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
@@ -214,15 +216,15 @@
"dev": true
},
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
"integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
"dev": true
},
"es5-ext": {
"version": "0.10.49",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz",
"integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==",
"version": "0.10.50",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
"integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
"requires": {
"es6-iterator": "~2.0.3",
"es6-symbol": "~3.1.1",
@@ -249,13 +251,13 @@
}
},
"es6-weak-map": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
"integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
"integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
"requires": {
"d": "1",
"es5-ext": "^0.10.14",
"es6-iterator": "^2.0.1",
"es5-ext": "^0.10.46",
"es6-iterator": "^2.0.3",
"es6-symbol": "^3.1.1"
}
},
@@ -285,11 +287,26 @@
"integrity": "sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg=="
},
"follow-redirects": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
"integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"requires": {
"debug": "^3.2.6"
"debug": "=3.1.0"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"form-data": {
@@ -326,9 +343,9 @@
"dev": true
},
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
"integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw=="
},
"is-promise": {
"version": "2.1.0",
@@ -336,9 +353,9 @@
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
"iterare": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/iterare/-/iterare-1.1.2.tgz",
"integrity": "sha512-25rVYmj/dDvTR6zOa9jY1Ihd6USLa0J508Ub2iy7Aga+xu9JMbjDds2Uh03ReDGbva/YN3s3Ybi+Do0nOX6wAg=="
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.0.tgz",
"integrity": "sha512-RxMV9p/UzdK0Iplnd8mVgRvNdXlsTOiuDrqMRnDi3wIhbT+JP4xDquAX9ay13R3CH72NBzQ91KWe0+C168QAyQ=="
},
"json-socket": {
"version": "0.3.0",
@@ -404,7 +421,8 @@
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"dev": true
},
"next-tick": {
"version": "1.0.0",
@@ -412,9 +430,9 @@
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
"node-fetch": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz",
"integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA=="
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
},
"object-hash": {
"version": "1.3.1",
@@ -444,9 +462,9 @@
"integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
},
"rxjs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
"integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
"integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
"requires": {
"tslib": "^1.9.0"
}
@@ -464,9 +482,9 @@
"dev": true
},
"source-map-support": {
"version": "0.5.11",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz",
"integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==",
"version": "0.5.12",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
"integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
@@ -551,13 +569,13 @@
}
},
"ts-node": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.0.3.tgz",
"integrity": "sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA==",
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
"integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==",
"dev": true,
"requires": {
"arg": "^4.1.0",
"diff": "^3.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"source-map-support": "^0.5.6",
"yn": "^3.0.0"
@@ -568,10 +586,15 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
},
"type": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz",
"integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw=="
},
"typescript": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.2.tgz",
"integrity": "sha512-Og2Vn6Mk7JAuWA1hQdDQN/Ekm/SchX80VzLhjKN9ETYrIepBFAd8PkOdOTK2nKt0FCkmMZKBJvQ1dV1gIxPu/A=="
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
"integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g=="
},
"util-deprecate": {
"version": "1.0.2",
@@ -590,9 +613,9 @@
"integrity": "sha512-Q/wBy3LB1uOyssgNlXSRmaf22NxjvDNZM2MtIQ4jaEOAB61xsh1TQxsq1CgzUMBV1lDrVMogIh8GjG1DYW0zLg=="
},
"yn": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.0.0.tgz",
"integrity": "sha512-+Wo/p5VRfxUgBUGy2j/6KX2mj9AYJWOHuhMjMcbBFc3y54o9/4buK1ksBvuiK01C3kby8DH9lSmJdSxw+4G/2Q==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz",
"integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==",
"dev": true
}
}

View File

@@ -7,20 +7,20 @@
"start": "ts-node src/main"
},
"dependencies": {
"@nestjs/common": "6.0.5",
"@nestjs/core": "6.0.5",
"@nestjs/microservices": "6.0.5",
"@nestjs/testing": "6.0.5",
"@nestjs/websockets": "6.0.5",
"class-transformer": "0.2.0",
"@nestjs/common": "6.5.2",
"@nestjs/core": "6.5.2",
"@nestjs/microservices": "6.5.2",
"@nestjs/testing": "6.5.2",
"@nestjs/websockets": "6.5.2",
"class-transformer": "0.2.3",
"class-validator": "0.9.1",
"reflect-metadata": "0.1.13",
"rxjs": "6.4.0",
"typescript": "3.4.2"
"rxjs": "6.5.2",
"typescript": "3.5.3"
},
"devDependencies": {
"@types/node": "7.10.5",
"@types/node": "7.10.7",
"supertest": "4.0.2",
"ts-node": "8.0.3"
"ts-node": "8.3.0"
}
}

View File

@@ -0,0 +1,4 @@
import { Module } from '@nestjs/common';
@Module({})
export class CoreInjectablesModule {}

View File

@@ -0,0 +1,169 @@
import * as ProtoLoader from '@grpc/proto-loader';
import { INestApplication } from '@nestjs/common';
import { Transport } from '@nestjs/microservices';
import { ExpressAdapter } from '@nestjs/platform-express';
import { Test } from '@nestjs/testing';
import { fail } from 'assert';
import { expect } from 'chai';
import * as express from 'express';
import * as GRPC from 'grpc';
import { join } from 'path';
import * as request from 'supertest';
import { AdvancedGrpcController } from '../src/grpc-advanced/advanced.grpc.controller';
describe('Advanced GRPC transport', () => {
let server;
let app: INestApplication;
let client: any;
before(async () => {
const module = await Test.createTestingModule({
controllers: [AdvancedGrpcController],
}).compile();
// Create gRPC + HTTP server
server = express();
app = module.createNestApplication(new ExpressAdapter(server));
/*
* Create microservice configuration
*/
app.connectMicroservice({
transport: Transport.GRPC,
options: {
url: 'localhost:5001',
package: 'proto_example',
protoPath: 'root.proto',
loader: {
includeDirs: [join(__dirname, '../src/grpc-advanced/proto')],
keepCase: true,
},
},
});
// Start gRPC microservice
await app.startAllMicroservicesAsync();
await app.init();
// Load proto-buffers for test gRPC dispatch
const proto = ProtoLoader.loadSync('root.proto', {
includeDirs: [join(__dirname, '../src/grpc-advanced/proto')],
}) as any;
// Create Raw gRPC client object
const protoGRPC = GRPC.loadPackageDefinition(proto) as any;
// Create client connected to started services at standard 5000 port
client = new protoGRPC.proto_example.orders.OrderService(
'localhost:5001',
GRPC.credentials.createInsecure(),
);
});
it(`GRPC Sending and Receiving HTTP POST`, () => {
return request(server)
.post('/')
.send('1')
.expect(200, {
id: 1,
itemTypes: [1],
shipmentType: {
from: 'test',
to: 'test1',
carrier: 'test-carrier',
},
});
});
it('GRPC Sending and receiving message', async () => {
// Execute find in Promise
return new Promise(resolve => {
client.find(
{
id: 1,
},
(err, result) => {
// Compare results
expect(err).to.be.null;
expect(result).to.eql({
id: 1,
itemTypes: [1],
shipmentType: {
from: 'test',
to: 'test1',
carrier: 'test-carrier',
},
});
// Resolve after checkups
resolve();
},
);
});
});
it('GRPC Sending and receiving Stream from RX handler', async () => {
const callHandler = client.sync();
callHandler.on('data', (msg: number) => {
// Do deep comparison (to.eql)
expect(msg).to.eql({
id: 1,
itemTypes: [1],
shipmentType: {
from: 'test',
to: 'test1',
carrier: 'test-carrier',
},
});
});
callHandler.on('error', (err: any) => {
// We want to fail only on real errors while Cancellation error
// is expected
if (
String(err)
.toLowerCase()
.indexOf('cancelled') === -1
) {
fail('gRPC Stream error happened, error: ' + err);
}
});
return new Promise((resolve, reject) => {
callHandler.write({
id: 1,
});
setTimeout(() => resolve(), 1000);
});
});
it('GRPC Sending and receiving Stream from Call handler', async () => {
const callHandler = client.syncCall();
callHandler.on('data', (msg: number) => {
// Do deep comparison (to.eql)
expect(msg).to.eql({
id: 1,
itemTypes: [1],
shipmentType: {
from: 'test',
to: 'test1',
carrier: 'test-carrier',
},
});
});
callHandler.on('error', (err: any) => {
// We want to fail only on real errors while Cancellation error
// is expected
if (
String(err)
.toLowerCase()
.indexOf('cancelled') === -1
) {
fail('gRPC Stream error happened, error: ' + err);
}
});
return new Promise((resolve, reject) => {
callHandler.write({
id: 1,
});
setTimeout(() => resolve(), 1000);
});
});
});

View File

@@ -1,6 +1,10 @@
import * as ProtoLoader from '@grpc/proto-loader';
import { INestApplication } from '@nestjs/common';
import { Transport } from '@nestjs/microservices';
import { Test } from '@nestjs/testing';
import { fail } from 'assert';
import { expect } from 'chai';
import * as GRPC from 'grpc';
import { join } from 'path';
import * as request from 'supertest';
import { GrpcController } from '../src/grpc/grpc.controller';
@@ -8,8 +12,9 @@ import { GrpcController } from '../src/grpc/grpc.controller';
describe('GRPC transport', () => {
let server;
let app: INestApplication;
let client: any;
beforeEach(async () => {
before(async () => {
const module = await Test.createTestingModule({
controllers: [GrpcController],
}).compile();
@@ -24,18 +29,83 @@ describe('GRPC transport', () => {
protoPath: join(__dirname, '../src/grpc/math.proto'),
},
});
// Start gRPC microservice
await app.startAllMicroservicesAsync();
await app.init();
// Load proto-buffers for test gRPC dispatch
const proto = ProtoLoader.loadSync(
join(__dirname, '../src/grpc/math.proto'),
) as any;
// Create Raw gRPC client object
const protoGRPC = GRPC.loadPackageDefinition(proto) as any;
// Create client connected to started services at standard 5000 port
client = new protoGRPC.math.Math(
'localhost:5000',
GRPC.credentials.createInsecure(),
);
});
it(`/POST`, () => {
it(`GRPC Sending and Receiving HTTP POST`, () => {
return request(server)
.post('/')
.send([1, 2, 3, 4, 5])
.expect(200, { result: 15 });
});
afterEach(async () => {
it('GRPC Sending and receiving Stream from RX handler', async () => {
const callHandler = client.SumStream();
callHandler.on('data', (msg: number) => {
expect(msg).to.eql({ result: 15 });
callHandler.cancel();
});
callHandler.on('error', (err: any) => {
// We want to fail only on real errors while Cancellation error
// is expected
if (
String(err)
.toLowerCase()
.indexOf('cancelled') === -1
) {
fail('gRPC Stream error happened, error: ' + err);
}
});
return new Promise((resolve, reject) => {
callHandler.write({ data: [1, 2, 3, 4, 5] });
setTimeout(() => resolve(), 1000);
});
});
it('GRPC Sending and receiving Stream from Call Passthrough handler', async () => {
const callHandler = client.SumStreamPass();
callHandler.on('data', (msg: number) => {
expect(msg).to.eql({ result: 15 });
callHandler.cancel();
});
callHandler.on('error', (err: any) => {
// We want to fail only on real errors while Cancellation error
// is expected
if (
String(err)
.toLowerCase()
.indexOf('cancelled') === -1
) {
fail('gRPC Stream error happened, error: ' + err);
}
});
return new Promise((resolve, reject) => {
callHandler.write({ data: [1, 2, 3, 4, 5] });
setTimeout(() => resolve(), 1000);
});
});
after(async () => {
await app.close();
client.close();
});
});

View File

@@ -46,6 +46,7 @@ describe('REDIS transport', () => {
.expect(200, '15');
});
/* CI/CD issues
it(`/POST (concurrent)`, () => {
return request(server)
.post('/concurrent')
@@ -62,7 +63,7 @@ describe('REDIS transport', () => {
Array.from({ length: 10 }, (v, k) => k + 91),
])
.expect(200, 'true');
});
}).timeout(5000); */
it(`/POST (streaming)`, () => {
return request(server)

View File

@@ -23,6 +23,7 @@ describe('RabbitMQ transport', () => {
urls: [`amqp://localhost:5672`],
queue: 'test',
queueOptions: { durable: false },
socketOptions: { noDelay: true },
},
});
await app.startAllMicroservicesAsync();

File diff suppressed because it is too large Load Diff

View File

@@ -7,21 +7,22 @@
"start": "ts-node src/main"
},
"dependencies": {
"@nestjs/common": "6.0.5",
"@nestjs/core": "6.0.5",
"@nestjs/microservices": "6.0.5",
"@nestjs/testing": "6.0.5",
"@nestjs/websockets": "6.0.5",
"amqp-connection-manager": "2.3.1",
"class-transformer": "0.2.0",
"@nestjs/common": "6.5.2",
"@nestjs/core": "6.5.2",
"@nestjs/microservices": "6.5.2",
"@nestjs/platform-express": "6.5.2",
"@nestjs/testing": "6.5.2",
"@nestjs/websockets": "6.5.2",
"amqp-connection-manager": "3.0.0",
"class-transformer": "0.2.3",
"class-validator": "0.9.1",
"reflect-metadata": "0.1.13",
"rxjs": "6.4.0",
"typescript": "3.4.2"
"rxjs": "6.5.2",
"typescript": "3.5.3"
},
"devDependencies": {
"@types/node": "7.10.5",
"@types/node": "7.10.7",
"supertest": "4.0.2",
"ts-node": "8.0.3"
"ts-node": "8.3.0"
}
}

View File

@@ -16,16 +16,17 @@ export class DisconnectedClientController {
const client = ClientProxyFactory.create(options);
return client.send<number, number[]>({ cmd: 'none' }, [1, 2, 3]).pipe(
/*tap(
console.log.bind(console, 'data'),
console.error.bind(console, 'error'),
),*/
catchError(({ code }) =>
throwError(
console.log.bind(console, 'data'),
console.error.bind(console, 'error'),
),*/
catchError(error => {
const { code } = error || { code: 'CONN_ERR' };
return throwError(
code === 'ECONNREFUSED' || code === 'CONN_ERR'
? new RequestTimeoutException('ECONNREFUSED')
: new InternalServerErrorException(),
),
),
);
}),
);
}
}

View File

@@ -0,0 +1,100 @@
import { Body, Controller, HttpCode, Post } from '@nestjs/common';
import {
Client,
ClientGrpc,
GrpcMethod,
GrpcStreamCall,
GrpcStreamMethod,
Transport,
} from '@nestjs/microservices';
import { join } from 'path';
import { Observable, of, Subject } from 'rxjs';
@Controller()
export class AdvancedGrpcController {
/*
* HTTP Proxy Client defines loading pattern
*/
@Client({
transport: Transport.GRPC,
options: {
url: 'localhost:5001',
package: 'proto_example.orders',
protoPath: 'root.proto',
loader: {
includeDirs: [join(__dirname, './proto')],
keepCase: true,
},
},
})
client: ClientGrpc;
/**
* HTTP Proxy entry for support non-stream find method
* @param id
*/
@Post()
@HttpCode(200)
call(@Body() id: number): Observable<number> {
const svc = this.client.getService<any>('OrderService');
return svc.find({ id });
}
/**
* GRPC stub for Find method
* @param id
*/
@GrpcMethod('orders.OrderService')
async find({ id }: { id: number }): Promise<any> {
return of({
id: 1,
itemTypes: [1],
shipmentType: {
from: 'test',
to: 'test1',
carrier: 'test-carrier',
},
});
}
/**
* GRPC stub implementation for sync stream method
* @param messages
*/
@GrpcStreamMethod('orders.OrderService')
async sync(messages: Observable<any>): Promise<any> {
const s = new Subject();
const o = s.asObservable();
messages.subscribe(msg => {
s.next({
id: 1,
itemTypes: [1],
shipmentType: {
from: 'test',
to: 'test1',
carrier: 'test-carrier',
},
});
});
return o;
}
/**
* GRPC stub implementation for syncCall stream method (implemented through call)
* @param stream
*/
@GrpcStreamCall('orders.OrderService')
async syncCall(stream: any) {
stream.on('data', (msg: any) => {
stream.write({
id: 1,
itemTypes: [1],
shipmentType: {
from: 'test',
to: 'test1',
carrier: 'test-carrier',
},
});
});
}
}

View File

@@ -0,0 +1,8 @@
syntax = "proto3";
package proto_example.common.items;
enum ItemType {
DEFAULT = 0;
SUPERIOR = 1;
FLAWLESS = 2;
}

View File

@@ -0,0 +1,8 @@
syntax = "proto3";
package proto_example.common.shipments;
message ShipmentType {
string from = 1;
string to = 2;
string carrier = 3;
}

View File

@@ -0,0 +1,11 @@
syntax = "proto3";
package proto_example.orders;
import public "common/item_types.proto";
import public "common/shipment_types.proto";
message Order {
int32 id = 1;
repeated common.items.ItemType itemTypes = 2;
common.shipments.ShipmentType shipmentType = 3;
}

View File

@@ -0,0 +1,9 @@
syntax = "proto3";
import "orders/message.proto";
package proto_example.orders;
service OrderService {
rpc Find(Order) returns (Order);
rpc Sync(stream Order) returns (stream Order);
rpc SyncCall(stream Order) returns (stream Order);
}

View File

@@ -0,0 +1,3 @@
syntax = "proto3";
package proto_example;
import public "orders/service.proto";

View File

@@ -1,5 +1,12 @@
import { Body, Controller, HttpCode, Post } from '@nestjs/common';
import { Client, ClientGrpc, GrpcMethod, Transport } from '@nestjs/microservices';
import {
Client,
ClientGrpc,
GrpcMethod,
GrpcStreamCall,
GrpcStreamMethod,
Transport,
} from '@nestjs/microservices';
import { join } from 'path';
import { Observable, of } from 'rxjs';
@@ -27,4 +34,27 @@ export class GrpcController {
result: data.reduce((a, b) => a + b),
});
}
@GrpcStreamMethod('Math')
async sumStream(messages: Observable<any>): Promise<any> {
return new Promise<any>((resolve, reject) => {
messages.subscribe(
msg => {
resolve({
result: msg.data.reduce((a, b) => a + b),
});
},
err => {
reject(err);
},
);
});
}
@GrpcStreamCall('Math')
async sumStreamPass(stream: any) {
stream.on('data', (msg: any) => {
stream.write({ result: msg.data.reduce((a, b) => a + b) });
});
}
}

View File

@@ -3,7 +3,9 @@ syntax = "proto3";
package math;
service Math {
rpc Sum (RequestSum) returns (SumResult) {}
rpc Sum (RequestSum) returns (SumResult);
rpc SumStream(stream RequestSum) returns(stream SumResult);
rpc SumStreamPass(stream RequestSum) returns(stream SumResult);
}
message SumResult {

View File

@@ -19,6 +19,7 @@ export class RMQBroadcastController {
urls: [`amqp://localhost:5672`],
queue: 'test_broadcast',
queueOptions: { durable: false },
socketOptions: { noDelay: true },
},
});
}

View File

@@ -22,6 +22,7 @@ export class RMQController {
urls: [`amqp://localhost:5672`],
queue: 'test',
queueOptions: { durable: false },
socketOptions: { noDelay: true },
},
});
}

View File

@@ -4,38 +4,58 @@
"lockfileVersion": 1,
"requires": true,
"dependencies": {
"@nestjs/common": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.0.5.tgz",
"integrity": "sha512-CbXtgBW/irevfUZF+rURDLFjhmT0Q6dmzbEYkuMg8bSjPmvgG6VzOBG6PwoPZbd+8PrPc2XLjN2A2Hg9mImp7A==",
"@babel/code-frame": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.0.0.tgz",
"integrity": "sha512-OfC2uemaknXr87bdLUkWog7nYuliM9Ij5HUcajsVcMCpQrcLmtxRbVFTIqmcSkSeYRBFBRxs2FiUqFJDLdiebA==",
"dev": true,
"requires": {
"axios": "0.18.0",
"@babel/highlight": "^7.0.0"
}
},
"@babel/highlight": {
"version": "7.0.0",
"resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.0.0.tgz",
"integrity": "sha512-UFMC4ZeFC48Tpvj7C8UgLvtkaUuovQX+5xNWrsIoMG8o2z+XFKjKaN9iVmS84dPwVN00W4wPmqvYoZF3EGAsfw==",
"dev": true,
"requires": {
"chalk": "^2.0.0",
"esutils": "^2.0.2",
"js-tokens": "^4.0.0"
}
},
"@nestjs/common": {
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.5.2.tgz",
"integrity": "sha512-vkB6JLPPckjS35usLMV3Q6vljkgzhN3jgQ+U1VY6cKriyjnkIcUKo37tNQSPYkaAGe1pOLK4IkmwMTSyhNieyg==",
"requires": {
"axios": "0.19.0",
"cli-color": "1.4.0",
"uuid": "3.3.2"
}
},
"@nestjs/core": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.0.5.tgz",
"integrity": "sha512-diLLr9qb9vGKyvfkt8JFGox21rpgj4YiToCRb3Tbdab0bvssLopznh/f7cdEBNmk5Adtl3IvXjtdVRj+XH7VCw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.5.2.tgz",
"integrity": "sha512-LTRCl4oaFP43DcPHbvVO0sH72M+N0uGwnqc0UxhJ7ovJMX6xhahSot1QTkBb56V2AIfmzaRbGpuA4qhIgBXj6A==",
"requires": {
"@nuxtjs/opencollective": "0.2.1",
"@nuxtjs/opencollective": "0.2.2",
"fast-safe-stringify": "2.0.6",
"iterare": "1.1.2",
"iterare": "1.2.0",
"object-hash": "1.3.1",
"optional": "0.1.4",
"uuid": "3.3.2"
}
},
"@nestjs/mongoose": {
"version": "6.0.0",
"resolved": "https://registry.npmjs.org/@nestjs/mongoose/-/mongoose-6.0.0.tgz",
"integrity": "sha512-2iag6pGVAQ5ww92KRsVZmtpkcQ1LgaKyLs3LlUFDRXNfXqTvcHdpK0H4nVR19X9IMm0N57+MbQosvTFJDkbK+A=="
"version": "6.1.2",
"resolved": "https://registry.npmjs.org/@nestjs/mongoose/-/mongoose-6.1.2.tgz",
"integrity": "sha512-BkbkguvaPPGbL/41lK6P22DaQodBC9Yv9rUAmNlQVShChtwss7/cGj68AKC3jEoidrx75wCyDO3P8Tp6pggE4w=="
},
"@nuxtjs/opencollective": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.1.tgz",
"integrity": "sha512-pzSib8NKquaTt/ns5Cc2G0BGRVJXaD+p1qfF6q7vNIMvRysorn/VF3y7gAuQpcxfF7wBbGE+dXjhIieWOUsWSw==",
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.2.tgz",
"integrity": "sha512-69gFVDs7mJfNjv9Zs5DFVD+pvBW+k1TaHSOqUWqAyTTfLcKI/EMYQgvEvziRd+zAFtUOoye6MfWh0qvinGISPw==",
"requires": {
"chalk": "^2.4.1",
"consola": "^2.3.0",
@@ -52,9 +72,9 @@
}
},
"@types/mongodb": {
"version": "3.1.22",
"resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.1.22.tgz",
"integrity": "sha512-hvNR0txBlJJAy1eZOeIDshW4dnQaC694COou4eHHaMdIcteCfoCQATD7sYNlXxNxfTc1iIbHUi7A8CAhQe08uA==",
"version": "3.1.28",
"resolved": "https://registry.npmjs.org/@types/mongodb/-/mongodb-3.1.28.tgz",
"integrity": "sha512-tG+QqJ/hir2p0069ee28t2O9tlGRJKDq1WFZC2QYMlU47LGdldLL8tepfTq6aFLvP58OpwSoxaJ/qjW93ob1NQ==",
"dev": true,
"requires": {
"@types/bson": "*",
@@ -62,9 +82,9 @@
}
},
"@types/mongoose": {
"version": "5.3.24",
"resolved": "https://registry.npmjs.org/@types/mongoose/-/mongoose-5.3.24.tgz",
"integrity": "sha512-Txa5C/veUJJG2o1sRbl8z1M7GhPjJz6J3JJQV76eYN0PyI9F2NO3gbVUj059ND5nlbvQjRhXuFLaqN6NH8nMNQ==",
"version": "5.5.8",
"resolved": "https://registry.npmjs.org/@types/mongoose/-/mongoose-5.5.8.tgz",
"integrity": "sha512-PtKUS5IC72F/5dwaUaCleYlXuaXXLDUL2wUGSnteq7ifUDQRqNji/vEpK8KQR+uHiRih1l90g4doOAZOc9veUg==",
"dev": true,
"requires": {
"@types/mongodb": "*",
@@ -72,9 +92,9 @@
}
},
"@types/node": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.5.tgz",
"integrity": "sha512-RYkagUUbxQBss46ElbEa+j4q4X3GR12QwB7a/PM5hmVuVkYoW1jENT1+taspKUv8ibwW8cw+kRFbOaTc/Key3w==",
"version": "7.10.7",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.7.tgz",
"integrity": "sha512-4I7+hXKyq7e1deuzX9udu0hPIYqSSkdKXtjow6fMnQ3OR9qkxIErGHbGY08YrfZJrCS1ajK8lOuzd0k3n2WM4A==",
"dev": true
},
"ansi-regex": {
@@ -106,58 +126,20 @@
}
},
"async": {
"version": "2.6.1",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.1.tgz",
"integrity": "sha512-fNEiL2+AZt6AlAw/29Cr0UDe4sRAHCpEHh54WMz+Bb7QfNcFw4h3loofyJpLeQs4Yx7yuqu/2dLgM5hKOs6HlQ==",
"version": "2.6.2",
"resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
"integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
"requires": {
"lodash": "^4.17.10"
"lodash": "^4.17.11"
}
},
"axios": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
"version": "0.19.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
"integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
"requires": {
"follow-redirects": "^1.3.0",
"is-buffer": "^1.1.5"
}
},
"babel-code-frame": {
"version": "6.26.0",
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
"dev": true,
"requires": {
"chalk": "^1.1.3",
"esutils": "^2.0.2",
"js-tokens": "^3.0.2"
},
"dependencies": {
"ansi-styles": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
"dev": true
},
"chalk": {
"version": "1.1.3",
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
"dev": true,
"requires": {
"ansi-styles": "^2.2.1",
"escape-string-regexp": "^1.0.2",
"has-ansi": "^2.0.0",
"strip-ansi": "^3.0.0",
"supports-color": "^2.0.0"
}
},
"supports-color": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
"dev": true
}
"follow-redirects": "1.5.10",
"is-buffer": "^2.0.2"
}
},
"balanced-match": {
@@ -187,9 +169,9 @@
"integrity": "sha512-jCGVYLoYMHDkOsbwJZBCqwMHyH4c+wzgI9hG7Z6SZJRXWr+x58pdIbm2i9a/jFGCkRJqRUr8eoI7lDWa0hTkxg=="
},
"buffer-from": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.0.0.tgz",
"integrity": "sha512-83apNb8KK0Se60UE1+4Ukbe3HbfELJ6UlI4ldtOGs7So4KD26orJM8hIY9lxdzP+UpItH1Yh/Y8GUvNFWFFRxA==",
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
"integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==",
"dev": true
},
"builtin-modules": {
@@ -235,9 +217,9 @@
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
},
"commander": {
"version": "2.19.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz",
"integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==",
"version": "2.20.0",
"resolved": "https://registry.npmjs.org/commander/-/commander-2.20.0.tgz",
"integrity": "sha512-7j2y+40w61zy6YC2iRNpUe/NwhNyoXrYpHMrSunaMG64nRnaf96zO/KMQR4OyN/UnE5KLyEBnKHd4aG3rskjpQ==",
"dev": true
},
"concat-map": {
@@ -247,24 +229,32 @@
"dev": true
},
"consola": {
"version": "2.5.8",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.5.8.tgz",
"integrity": "sha512-fYv1M0rNJw4h0CZUx8PX02Px7xQhA+vNHpV8DBCGMoozp2Io/vrSXhhEothaRnSt7VMR0rj2pt9KKLXa5amrCw=="
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.9.0.tgz",
"integrity": "sha512-34Iue+LRcWbndFIfZc5boNizWlsrRjqIBJZTe591vImgbnq7nx2EzlrLtANj9TH2Fxm7puFJBJAOk5BhvZOddQ=="
},
"d": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
"integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
"requires": {
"es5-ext": "^0.10.9"
"es5-ext": "^0.10.50",
"type": "^1.0.1"
}
},
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "^2.1.1"
"ms": "2.0.0"
},
"dependencies": {
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"diff": {
@@ -274,9 +264,9 @@
"dev": true
},
"es5-ext": {
"version": "0.10.49",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz",
"integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==",
"version": "0.10.50",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
"integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
"requires": {
"es6-iterator": "~2.0.3",
"es6-symbol": "~3.1.1",
@@ -303,13 +293,13 @@
}
},
"es6-weak-map": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
"integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
"integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
"requires": {
"d": "1",
"es5-ext": "^0.10.14",
"es6-iterator": "^2.0.1",
"es5-ext": "^0.10.46",
"es6-iterator": "^2.0.3",
"es6-symbol": "^3.1.1"
}
},
@@ -345,11 +335,11 @@
"integrity": "sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg=="
},
"follow-redirects": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
"integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"requires": {
"debug": "^3.2.6"
"debug": "=3.1.0"
}
},
"fs.realpath": {
@@ -359,9 +349,9 @@
"dev": true
},
"glob": {
"version": "7.1.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
"integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
"version": "7.1.4",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.1.4.tgz",
"integrity": "sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
@@ -372,15 +362,6 @@
"path-is-absolute": "^1.0.0"
}
},
"has-ansi": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz",
"integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
}
},
"has-flag": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
@@ -397,15 +378,15 @@
}
},
"inherits": {
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
"integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw=="
},
"is-promise": {
"version": "2.1.0",
@@ -413,20 +394,20 @@
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
"iterare": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/iterare/-/iterare-1.1.2.tgz",
"integrity": "sha512-25rVYmj/dDvTR6zOa9jY1Ihd6USLa0J508Ub2iy7Aga+xu9JMbjDds2Uh03ReDGbva/YN3s3Ybi+Do0nOX6wAg=="
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.0.tgz",
"integrity": "sha512-RxMV9p/UzdK0Iplnd8mVgRvNdXlsTOiuDrqMRnDi3wIhbT+JP4xDquAX9ay13R3CH72NBzQ91KWe0+C168QAyQ=="
},
"js-tokens": {
"version": "3.0.2",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
"version": "4.0.0",
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
"integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
"dev": true
},
"js-yaml": {
"version": "3.13.0",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.0.tgz",
"integrity": "sha512-pZZoSxcCYco+DIKBTimr67J6Hy+EYGZDY/HCWC+iAEA9h1ByhMXAIVUXMcMFpOCxQ/xjXmPI2MkDL5HRm5eFrQ==",
"version": "3.13.1",
"resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
"integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
"dev": true,
"requires": {
"argparse": "^1.0.7",
@@ -439,9 +420,9 @@
"integrity": "sha512-6hHxsp9e6zQU8nXsP+02HGWXwTkOEw6IROhF2ZA28cYbUk4eJ6QbtZvdqZOdD9YPKghG3apk5eOCvs+tLl3lRg=="
},
"lodash": {
"version": "4.17.11",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.11.tgz",
"integrity": "sha512-cQKh8igo5QUhZ7lg38DYWAxMvjSAKG0A8wGSVimP07SIUEK2UO+arSRKbRZWtelMtN5V0Hkwh5ryOto/SshYIg=="
"version": "4.17.14",
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.14.tgz",
"integrity": "sha512-mmKYbW3GLuJeX+iGP+Y7Gp1AiGHGbXHCOh/jZmrawMmsE7MS4znI3RL2FsjbqOyMayHInjOeykW7PEajUk1/xw=="
},
"lru-queue": {
"version": "0.1.0",
@@ -503,41 +484,42 @@
}
},
"mongodb": {
"version": "3.1.13",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.1.13.tgz",
"integrity": "sha512-sz2dhvBZQWf3LRNDhbd30KHVzdjZx9IKC0L+kSZ/gzYquCF5zPOgGqRz6sSCqYZtKP2ekB4nfLxhGtzGHnIKxA==",
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/mongodb/-/mongodb-3.2.7.tgz",
"integrity": "sha512-2YdWrdf1PJgxcCrT1tWoL6nHuk6hCxhddAAaEh8QJL231ci4+P9FLyqopbTm2Z2sAU6mhCri+wd9r1hOcHdoMw==",
"requires": {
"mongodb-core": "3.1.11",
"mongodb-core": "3.2.7",
"safe-buffer": "^5.1.2"
}
},
"mongodb-core": {
"version": "3.1.11",
"resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.1.11.tgz",
"integrity": "sha512-rD2US2s5qk/ckbiiGFHeu+yKYDXdJ1G87F6CG3YdaZpzdOm5zpoAZd/EKbPmFO6cQZ+XVXBXBJ660sSI0gc6qg==",
"version": "3.2.7",
"resolved": "https://registry.npmjs.org/mongodb-core/-/mongodb-core-3.2.7.tgz",
"integrity": "sha512-WypKdLxFNPOH/Jy6i9z47IjG2wIldA54iDZBmHMINcgKOUcWJh8og+Wix76oGd7EyYkHJKssQ2FAOw5Su/n4XQ==",
"requires": {
"bson": "^1.1.0",
"bson": "^1.1.1",
"require_optional": "^1.0.1",
"safe-buffer": "^5.1.2",
"saslprep": "^1.0.0"
}
},
"mongoose": {
"version": "5.4.22",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.4.22.tgz",
"integrity": "sha512-rbtmFmXe5YJfBrVfOpSW2xeSAKFtnJ5RLQjl4ULzT1icmY/SUHtJ5b+mW4SMCEk7whm/w+2oHO9qMBr8UI1xIw==",
"version": "5.6.5",
"resolved": "https://registry.npmjs.org/mongoose/-/mongoose-5.6.5.tgz",
"integrity": "sha512-c8bIo8mxbf1ybwo9jgPKcJRICQBlIMKwDWt2A+M7h0AutroQ5EqzRAYOK1vrHwwwq00EcJyVwjVBW2wv8E9Wfw==",
"requires": {
"async": "2.6.1",
"bson": "~1.1.0",
"async": "2.6.2",
"bson": "~1.1.1",
"kareem": "2.3.0",
"mongodb": "3.1.13",
"mongodb-core": "3.1.11",
"mongodb": "3.2.7",
"mongodb-core": "3.2.7",
"mongoose-legacy-pluralize": "1.0.2",
"mpath": "0.5.1",
"mquery": "3.2.0",
"ms": "2.1.1",
"regexp-clone": "0.0.1",
"mpath": "0.6.0",
"mquery": "3.2.1",
"ms": "2.1.2",
"regexp-clone": "1.0.0",
"safe-buffer": "5.1.2",
"sift": "7.0.1",
"sliced": "1.0.1"
}
},
@@ -547,41 +529,26 @@
"integrity": "sha512-Yo/7qQU4/EyIS8YDFSeenIvXxZN+ld7YdV9LqFVQJzTLye8unujAWPZ4NWKfFA+RNjh+wvTWKY9Z3E5XM6ZZiQ=="
},
"mpath": {
"version": "0.5.1",
"resolved": "https://registry.npmjs.org/mpath/-/mpath-0.5.1.tgz",
"integrity": "sha512-H8OVQ+QEz82sch4wbODFOz+3YQ61FYz/z3eJ5pIdbMEaUzDqA268Wd+Vt4Paw9TJfvDgVKaayC0gBzMIw2jhsg=="
"version": "0.6.0",
"resolved": "https://registry.npmjs.org/mpath/-/mpath-0.6.0.tgz",
"integrity": "sha512-i75qh79MJ5Xo/sbhxrDrPSEG0H/mr1kcZXJ8dH6URU5jD/knFxCVqVC/gVSW7GIXL/9hHWlT9haLbCXWOll3qw=="
},
"mquery": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.0.tgz",
"integrity": "sha512-qPJcdK/yqcbQiKoemAt62Y0BAc0fTEKo1IThodBD+O5meQRJT/2HSe5QpBNwaa4CjskoGrYWsEyjkqgiE0qjhg==",
"version": "3.2.1",
"resolved": "https://registry.npmjs.org/mquery/-/mquery-3.2.1.tgz",
"integrity": "sha512-kY/K8QToZWTTocm0U+r8rqcJCp5PRl6e8tPmoDs5OeSO3DInZE2rAL6AYH+V406JTo8305LdASOQcxRDqHojyw==",
"requires": {
"bluebird": "3.5.1",
"debug": "3.1.0",
"regexp-clone": "0.0.1",
"regexp-clone": "^1.0.0",
"safe-buffer": "5.1.2",
"sliced": "1.0.1"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
},
"next-tick": {
"version": "1.0.0",
@@ -589,9 +556,9 @@
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
"node-fetch": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz",
"integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA=="
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
},
"object-hash": {
"version": "1.3.1",
@@ -630,9 +597,9 @@
"integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
},
"regexp-clone": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-0.0.1.tgz",
"integrity": "sha1-p8LgmJH9vzj7sQ03b7cwA+aKxYk="
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/regexp-clone/-/regexp-clone-1.0.0.tgz",
"integrity": "sha512-TuAasHQNamyyJ2hb97IuBEif4qBHGjPHBS64sZwytpLEqtBQ1gPJTnOaQ6qmpET16cK14kkjbazl6+p0RRv0yw=="
},
"require_optional": {
"version": "1.0.1",
@@ -644,9 +611,9 @@
}
},
"resolve": {
"version": "1.10.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.10.0.tgz",
"integrity": "sha512-3sUr9aq5OfSg2S9pNtPA9hL1FVEAjvfOC4leW0SNf/mpnaakz2a9femSd6LqAww2RaFctwyf1lCqnTHuF1rxDg==",
"version": "1.11.0",
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.11.0.tgz",
"integrity": "sha512-WL2pBDjqT6pGUNSUzMw00o4T7If+z4H2x3Gz893WoUQ5KW8Vr9txp00ykiP16VBaZF5+j/OcXJHZ9+PCvdiDKw==",
"dev": true,
"requires": {
"path-parse": "^1.0.6"
@@ -658,9 +625,9 @@
"integrity": "sha1-lICrIOlP+h2egKgEx+oUdhGWa1c="
},
"rxjs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
"integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
"integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
"requires": {
"tslib": "^1.9.0"
}
@@ -671,9 +638,9 @@
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
},
"saslprep": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.2.tgz",
"integrity": "sha512-4cDsYuAjXssUSjxHKRe4DTZC0agDwsCqcMqtJAQPzC74nJ7LfAJflAtC1Zed5hMzEQKj82d3tuzqdGNRsLJ4Gw==",
"version": "1.0.3",
"resolved": "https://registry.npmjs.org/saslprep/-/saslprep-1.0.3.tgz",
"integrity": "sha512-/MY/PEMbk2SuY5sScONwhUDsV2p77Znkb/q3nSVstq/yQzYJOH/Azh29p9oJLsl3LnQwSvZDKagDGBsBwSooag==",
"optional": true,
"requires": {
"sparse-bitfield": "^3.0.3"
@@ -684,6 +651,11 @@
"resolved": "https://registry.npmjs.org/semver/-/semver-5.5.0.tgz",
"integrity": "sha512-4SJ3dm0WAwWy/NVeioZh5AntkdJoWKxHxcmyP622fOkgHa4z3R0TdBJICINyaSDE6uNwVc8gZr+ZinwZAH4xIA=="
},
"sift": {
"version": "7.0.1",
"resolved": "https://registry.npmjs.org/sift/-/sift-7.0.1.tgz",
"integrity": "sha512-oqD7PMJ+uO6jV9EQCl0LrRw1OwsiPsiFQR5AR30heR+4Dl7jBBbDLnNvWiak20tzZlSE1H7RB30SX/1j/YYT7g=="
},
"sliced": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/sliced/-/sliced-1.0.1.tgz",
@@ -696,9 +668,9 @@
"dev": true
},
"source-map-support": {
"version": "0.5.11",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz",
"integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==",
"version": "0.5.12",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
"integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
@@ -720,15 +692,6 @@
"integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
"dev": true
},
"strip-ansi": {
"version": "3.0.1",
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
"dev": true,
"requires": {
"ansi-regex": "^2.0.0"
}
},
"supports-color": {
"version": "5.4.0",
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz",
@@ -747,16 +710,24 @@
}
},
"ts-node": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.0.3.tgz",
"integrity": "sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA==",
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
"integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==",
"dev": true,
"requires": {
"arg": "^4.1.0",
"diff": "^3.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"source-map-support": "^0.5.6",
"yn": "^3.0.0"
},
"dependencies": {
"diff": {
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
"integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
"dev": true
}
}
},
"tslib": {
@@ -765,18 +736,18 @@
"integrity": "sha512-avfPS28HmGLLc2o4elcc2EIq2FcH++Yo5YxpBZi9Yw93BCTGFthI4HPE4Rpep6vSYQaK8e69PelM44tPj+RaQg=="
},
"tslint": {
"version": "5.15.0",
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.15.0.tgz",
"integrity": "sha512-6bIEujKR21/3nyeoX2uBnE8s+tMXCQXhqMmaIPJpHmXJoBJPTLcI7/VHRtUwMhnLVdwLqqY3zmd8Dxqa5CVdJA==",
"version": "5.18.0",
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz",
"integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==",
"dev": true,
"requires": {
"babel-code-frame": "^6.22.0",
"@babel/code-frame": "^7.0.0",
"builtin-modules": "^1.1.1",
"chalk": "^2.3.0",
"commander": "^2.12.1",
"diff": "^3.2.0",
"glob": "^7.1.1",
"js-yaml": "^3.13.0",
"js-yaml": "^3.13.1",
"minimatch": "^3.0.4",
"mkdirp": "^0.5.1",
"resolve": "^1.3.2",
@@ -794,10 +765,15 @@
"tslib": "^1.8.1"
}
},
"type": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz",
"integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw=="
},
"typescript": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.2.tgz",
"integrity": "sha512-Og2Vn6Mk7JAuWA1hQdDQN/Ekm/SchX80VzLhjKN9ETYrIepBFAd8PkOdOTK2nKt0FCkmMZKBJvQ1dV1gIxPu/A=="
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
"integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g=="
},
"uuid": {
"version": "3.3.2",
@@ -811,9 +787,9 @@
"dev": true
},
"yn": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.0.0.tgz",
"integrity": "sha512-+Wo/p5VRfxUgBUGy2j/6KX2mj9AYJWOHuhMjMcbBFc3y54o9/4buK1ksBvuiK01C3kby8DH9lSmJdSxw+4G/2Q==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz",
"integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==",
"dev": true
}
}

View File

@@ -9,18 +9,18 @@
"start:prod": "node dist/main.js"
},
"dependencies": {
"@nestjs/common": "6.0.5",
"@nestjs/core": "6.0.5",
"@nestjs/mongoose": "6.0.0",
"mongoose": "5.4.22",
"@nestjs/common": "6.5.2",
"@nestjs/core": "6.5.2",
"@nestjs/mongoose": "6.1.2",
"mongoose": "5.6.5",
"reflect-metadata": "0.1.13",
"rxjs": "6.4.0",
"typescript": "3.4.2"
"rxjs": "6.5.2",
"typescript": "3.5.3"
},
"devDependencies": {
"@types/mongoose": "5.3.24",
"@types/node": "7.10.5",
"ts-node": "8.0.3",
"tslint": "5.15.0"
"@types/mongoose": "5.5.8",
"@types/node": "7.10.7",
"ts-node": "8.3.0",
"tslint": "5.18.0"
}
}

View File

@@ -0,0 +1,81 @@
import { INestApplication } from '@nestjs/common';
import { Transport } from '@nestjs/microservices';
import { Test } from '@nestjs/testing';
import { expect } from 'chai';
import * as request from 'supertest';
import { Guard } from '../src/msvc/guards/request-scoped.guard';
import { HelloController } from '../src/msvc/hello.controller';
import { HelloModule } from '../src/msvc/hello.module';
import { Interceptor } from '../src/msvc/interceptors/logging.interceptor';
import { UsersService } from '../src/msvc/users/users.service';
class Meta {
static COUNTER = 0;
constructor() {
Meta.COUNTER++;
}
}
describe('Request scope (microservices)', () => {
let server;
let app: INestApplication;
before(async () => {
const module = await Test.createTestingModule({
imports: [
HelloModule.forRoot({
provide: 'META',
useClass: Meta,
}),
],
}).compile();
app = module.createNestApplication();
app.connectMicroservice({ transport: Transport.TCP });
server = app.getHttpServer();
await app.init();
await app.startAllMicroservicesAsync();
});
describe('when one service is request scoped', () => {
before(async () => {
const performHttpCall = end =>
request(server)
.get('/hello')
.end((err, res) => {
if (err) return end(err);
end();
});
await new Promise(resolve => performHttpCall(resolve));
await new Promise(resolve => performHttpCall(resolve));
await new Promise(resolve => performHttpCall(resolve));
});
it(`should create controller for each request`, async () => {
expect(HelloController.COUNTER).to.be.eql(3);
});
it(`should create service for each request`, async () => {
expect(UsersService.COUNTER).to.be.eql(3);
});
it(`should share static provider across requests`, async () => {
expect(Meta.COUNTER).to.be.eql(1);
});
it(`should create request scoped interceptor for each request`, async () => {
expect(Interceptor.COUNTER).to.be.eql(3);
expect(Interceptor.REQUEST_SCOPED_DATA).to.deep.equal([1, 1, 1]);
});
it(`should create request scoped guard for each request`, async () => {
expect(Guard.COUNTER).to.be.eql(3);
expect(Guard.REQUEST_SCOPED_DATA).to.deep.equal([1, 1, 1]);
});
});
after(async () => {
await app.close();
});
});

View File

@@ -63,14 +63,17 @@ describe('Request scope', () => {
it(`should create request scoped pipe for each request`, async () => {
expect(UserByIdPipe.COUNTER).to.be.eql(3);
expect(UserByIdPipe.REQUEST_SCOPED_DATA).to.deep.equal([1, 1, 1]);
});
it(`should create request scoped interceptor for each request`, async () => {
expect(Interceptor.COUNTER).to.be.eql(3);
expect(Interceptor.REQUEST_SCOPED_DATA).to.deep.equal([1, 1, 1]);
});
it(`should create request scoped guard for each request`, async () => {
expect(Guard.COUNTER).to.be.eql(3);
expect(Guard.REQUEST_SCOPED_DATA).to.deep.equal([1, 1, 1]);
});
});

View File

@@ -5,58 +5,58 @@
"requires": true,
"dependencies": {
"@nestjs/common": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.0.5.tgz",
"integrity": "sha512-CbXtgBW/irevfUZF+rURDLFjhmT0Q6dmzbEYkuMg8bSjPmvgG6VzOBG6PwoPZbd+8PrPc2XLjN2A2Hg9mImp7A==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.5.2.tgz",
"integrity": "sha512-vkB6JLPPckjS35usLMV3Q6vljkgzhN3jgQ+U1VY6cKriyjnkIcUKo37tNQSPYkaAGe1pOLK4IkmwMTSyhNieyg==",
"requires": {
"axios": "0.18.0",
"axios": "0.19.0",
"cli-color": "1.4.0",
"uuid": "3.3.2"
}
},
"@nestjs/core": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.0.5.tgz",
"integrity": "sha512-diLLr9qb9vGKyvfkt8JFGox21rpgj4YiToCRb3Tbdab0bvssLopznh/f7cdEBNmk5Adtl3IvXjtdVRj+XH7VCw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.5.2.tgz",
"integrity": "sha512-LTRCl4oaFP43DcPHbvVO0sH72M+N0uGwnqc0UxhJ7ovJMX6xhahSot1QTkBb56V2AIfmzaRbGpuA4qhIgBXj6A==",
"requires": {
"@nuxtjs/opencollective": "0.2.1",
"@nuxtjs/opencollective": "0.2.2",
"fast-safe-stringify": "2.0.6",
"iterare": "1.1.2",
"iterare": "1.2.0",
"object-hash": "1.3.1",
"optional": "0.1.4",
"uuid": "3.3.2"
}
},
"@nestjs/microservices": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-6.0.5.tgz",
"integrity": "sha512-lUyxzYQ3E5U7aQaY4bKVnGxizTl2cE2Rrey0ylmeVE4ae9Y7/z/7mdsfB4DVnuMVuRpyClUJ+zrQ4tJAIvL/nQ==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-6.5.2.tgz",
"integrity": "sha512-edKXp11ma0kAUhXlkDmQ3ytHSKMbZQCyhVFRAOUdDQBhtTRXr7j9UNbMR+xBZq7KdiW09kNHFmYRACTrUsnItQ==",
"requires": {
"iterare": "1.1.2",
"iterare": "1.2.0",
"json-socket": "0.3.0",
"optional": "0.1.4"
}
},
"@nestjs/testing": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-6.0.5.tgz",
"integrity": "sha512-LrPBckONn/ZalBC8GU5LxvgIS8DJNrdwZE4gMJz0ugodwl0c1IL3e2gIukBkUJtHYPtzN12nYevnaGYT/V1aDQ==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-6.5.2.tgz",
"integrity": "sha512-wyob7CkuCdq+NBhq78JyX5Llk4tQv2fS1jcVqhvHp96zc9RxemOMvN1GUHTXo4SNVxE+hlUV1smvcsPPsmlj8Q==",
"requires": {
"optional": "0.1.4"
}
},
"@nestjs/websockets": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-6.0.5.tgz",
"integrity": "sha512-cA4Z6dM/Q8WqzgDyC6HiCdFvcDVAv7TyGkzthuuCn9xHDeLjtyzCL1koogkZ0FmLWhNmCskc/yJb2IjApGtzvQ==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-6.5.2.tgz",
"integrity": "sha512-VguS7Fy3AcZS8CzuvdOxOWW+9VecGJ/AwJWbG76d0iRCsqpJu+qAoPNpo9qruB1lQ0MXYHlwGgxaTcF8PzrliQ==",
"requires": {
"iterare": "1.1.2"
"iterare": "1.2.0"
}
},
"@nuxtjs/opencollective": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.1.tgz",
"integrity": "sha512-pzSib8NKquaTt/ns5Cc2G0BGRVJXaD+p1qfF6q7vNIMvRysorn/VF3y7gAuQpcxfF7wBbGE+dXjhIieWOUsWSw==",
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.2.tgz",
"integrity": "sha512-69gFVDs7mJfNjv9Zs5DFVD+pvBW+k1TaHSOqUWqAyTTfLcKI/EMYQgvEvziRd+zAFtUOoye6MfWh0qvinGISPw==",
"requires": {
"chalk": "^2.4.1",
"consola": "^2.3.0",
@@ -64,9 +64,9 @@
}
},
"@types/node": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.5.tgz",
"integrity": "sha512-RYkagUUbxQBss46ElbEa+j4q4X3GR12QwB7a/PM5hmVuVkYoW1jENT1+taspKUv8ibwW8cw+kRFbOaTc/Key3w==",
"version": "7.10.7",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.7.tgz",
"integrity": "sha512-4I7+hXKyq7e1deuzX9udu0hPIYqSSkdKXtjow6fMnQ3OR9qkxIErGHbGY08YrfZJrCS1ajK8lOuzd0k3n2WM4A==",
"dev": true
},
"abstract-logging": {
@@ -134,26 +134,21 @@
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
"version": "2.1.2",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
"integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
}
}
},
"axios": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
"version": "0.19.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
"integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
"requires": {
"follow-redirects": "^1.3.0",
"is-buffer": "^1.1.5"
"follow-redirects": "1.5.10",
"is-buffer": "^2.0.2"
}
},
"bourne": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/bourne/-/bourne-1.1.2.tgz",
"integrity": "sha512-b2dgVkTZhkQirNMohgC00rWfpVqEi9y5tKM1k3JvoNx05ODtfQoPPd4js9CYFQoY0IM8LAmnJulEuWv74zjUOg=="
},
"buffer-from": {
"version": "1.1.1",
"resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz",
@@ -171,9 +166,9 @@
}
},
"class-transformer": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.0.tgz",
"integrity": "sha512-6N/5WkEmLZCKxyC2CAPYQIJt3pDZzDFag7AExpyWRm7CjaS/U62VDRU+Z2AUrQaNpnuiXRlli0so4PJUqGSVZQ=="
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.3.tgz",
"integrity": "sha512-qsP+0xoavpOlJHuYsQJsN58HXSl8Jvveo+T37rEvCEeRfMWoytAyR0Ua/YsFgpM6AZYZ/og2PJwArwzJl1aXtQ=="
},
"class-validator": {
"version": "0.9.1",
@@ -226,9 +221,9 @@
"dev": true
},
"consola": {
"version": "2.5.8",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.5.8.tgz",
"integrity": "sha512-fYv1M0rNJw4h0CZUx8PX02Px7xQhA+vNHpV8DBCGMoozp2Io/vrSXhhEothaRnSt7VMR0rj2pt9KKLXa5amrCw=="
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.9.0.tgz",
"integrity": "sha512-34Iue+LRcWbndFIfZc5boNizWlsrRjqIBJZTe591vImgbnq7nx2EzlrLtANj9TH2Fxm7puFJBJAOk5BhvZOddQ=="
},
"cookiejar": {
"version": "2.1.2",
@@ -243,26 +238,26 @@
"dev": true
},
"d": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
"integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
"requires": {
"es5-ext": "^0.10.9"
"es5-ext": "^0.10.50",
"type": "^1.0.1"
}
},
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"dev": true,
"requires": {
"ms": "2.0.0"
}
},
"deepmerge": {
"version": "3.2.0",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.2.0.tgz",
"integrity": "sha512-6+LuZGU7QCNUnAJyX8cIrlzoEgggTM6B7mm+znKOX4t5ltluT9KLjN6g61ECMS0LTsLW7yDpNoxhix5FZcrIow=="
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/deepmerge/-/deepmerge-3.3.0.tgz",
"integrity": "sha512-GRQOafGHwMHpjPx9iCvTgpu9NojZ49q794EEL94JVEw6VaeA8XTUyBKvAkOOjBX9oJNiV6G3P+T+tihFjo2TqA=="
},
"delayed-stream": {
"version": "1.0.0",
@@ -271,15 +266,15 @@
"dev": true
},
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
"integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
"dev": true
},
"es5-ext": {
"version": "0.10.49",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz",
"integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==",
"version": "0.10.50",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
"integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
"requires": {
"es6-iterator": "~2.0.3",
"es6-symbol": "~3.1.1",
@@ -306,13 +301,13 @@
}
},
"es6-weak-map": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
"integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
"integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
"requires": {
"d": "1",
"es5-ext": "^0.10.14",
"es6-iterator": "^2.0.1",
"es5-ext": "^0.10.46",
"es6-iterator": "^2.0.3",
"es6-symbol": "^3.1.1"
}
},
@@ -352,9 +347,9 @@
"integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
},
"fast-json-stringify": {
"version": "1.14.0",
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-1.14.0.tgz",
"integrity": "sha512-3VSblXsVxIE46E/YzRYHapyIeM3/igeA/kyzdL5xfAIYNnCLd8Oy+scrURnqZIRXMmtx0hfyp+okN5+r4W+GMQ==",
"version": "1.15.3",
"resolved": "https://registry.npmjs.org/fast-json-stringify/-/fast-json-stringify-1.15.3.tgz",
"integrity": "sha512-p+ucnySTbrUQ9M7u8ygFIxrmpG8B+8O4/PvLDdh+RqMMgj/h6OoDb7U2lP+kqg3PDclQBFbSIArRhkorFwZLLg==",
"requires": {
"ajv": "^6.8.1",
"deepmerge": "^3.0.0"
@@ -371,23 +366,23 @@
"integrity": "sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg=="
},
"fastify": {
"version": "2.2.0",
"resolved": "https://registry.npmjs.org/fastify/-/fastify-2.2.0.tgz",
"integrity": "sha512-U6W101N+8Hyz2uiN3XqdSdTiaWYiJ0lCJmC3tO42PNttjCZQp8EPIhZ0QkVQWLrrP0ijjgomwaYrj9eMzqWyDw==",
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/fastify/-/fastify-2.6.0.tgz",
"integrity": "sha512-3GxGV2P8731o2S5T6ng5NMJ9S7vFpZA4mk2mJEbMbhQ5aj1HhNGBOe39TYa2gWRrJVJuXxYYYIlY/5cFhiHpNg==",
"requires": {
"abstract-logging": "^1.0.0",
"ajv": "^6.9.2",
"avvio": "^6.1.1",
"bourne": "^1.1.2",
"fast-json-stringify": "^1.11.2",
"fast-json-stringify": "^1.15.0",
"find-my-way": "^2.0.0",
"flatstr": "^1.0.9",
"flatstr": "^1.0.12",
"light-my-request": "^3.2.0",
"middie": "^4.0.1",
"pino": "^5.11.1",
"proxy-addr": "^2.0.4",
"readable-stream": "^3.1.1",
"rfdc": "^1.1.2",
"secure-json-parse": "^1.0.0",
"tiny-lru": "^6.0.1"
}
},
@@ -400,9 +395,9 @@
}
},
"find-my-way": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-2.0.1.tgz",
"integrity": "sha512-c+YnWk4LKcWSNu743wfoqNOZTYQ6kZ/kzZCjALGblLpzbEAv3INakGMZ1K/by+Wmf/NP3+3LpOQMOFw6/q52wQ==",
"version": "2.1.0",
"resolved": "https://registry.npmjs.org/find-my-way/-/find-my-way-2.1.0.tgz",
"integrity": "sha512-Hdx6ctcrzkZH5y9EREHtXryXAgc5Bc8z5Cvoa61y9kaoYj2KU4yXD6h8b6u0NUkYPVmQQeRdf0AtG1kQxQ+ukQ==",
"requires": {
"fast-decode-uri-component": "^1.0.0",
"safe-regex2": "^2.0.0",
@@ -410,31 +405,16 @@
}
},
"flatstr": {
"version": "1.0.9",
"resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.9.tgz",
"integrity": "sha512-qFlJnOBWDfIaunF54/lBqNKmXOI0HqNhu+mHkLmbaBXlS71PUd9OjFOdyevHt/aHoHB1+eW7eKHgRKOG5aHSpw=="
"version": "1.0.12",
"resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz",
"integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw=="
},
"follow-redirects": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
"integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"requires": {
"debug": "^3.2.6"
},
"dependencies": {
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"requires": {
"ms": "^2.1.1"
}
},
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
}
"debug": "=3.1.0"
}
},
"form-data": {
@@ -475,14 +455,14 @@
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4="
},
"ipaddr.js": {
"version": "1.8.0",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.8.0.tgz",
"integrity": "sha1-6qM9bd16zo9/b+DJygRA5wZzix4="
"version": "1.9.0",
"resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.0.tgz",
"integrity": "sha512-M4Sjn6N/+O6/IXSJseKqHoFc+5FdGJ22sXqnjTpdZweHK64MzEPAyQZyEU3R/KRv2GLoa7nNtg/C2Ev6m7z+eA=="
},
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
"integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw=="
},
"is-promise": {
"version": "2.1.0",
@@ -490,9 +470,9 @@
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
"iterare": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/iterare/-/iterare-1.1.2.tgz",
"integrity": "sha512-25rVYmj/dDvTR6zOa9jY1Ihd6USLa0J508Ub2iy7Aga+xu9JMbjDds2Uh03ReDGbva/YN3s3Ybi+Do0nOX6wAg=="
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.0.tgz",
"integrity": "sha512-RxMV9p/UzdK0Iplnd8mVgRvNdXlsTOiuDrqMRnDi3wIhbT+JP4xDquAX9ay13R3CH72NBzQ91KWe0+C168QAyQ=="
},
"json-schema-traverse": {
"version": "0.4.1",
@@ -505,9 +485,9 @@
"integrity": "sha512-jc8ZbUnYIWdxERFWQKVgwSLkGSe+kyzvmYxwNaRgx/c8NNyuHes4UHnPM3LUrAFXUx1BhNJ94n1h/KCRlbvV0g=="
},
"light-my-request": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-3.3.0.tgz",
"integrity": "sha512-dLtwhjzbuHJ+KMMUBSlVid6Iqxx+KKvULWLnBD06WMgPHxiPkEh1cVyj+Xc8HGU64hULlSw/sZVCdFsvjNQeNA==",
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-3.4.0.tgz",
"integrity": "sha512-zIEl4lKwATE5uPmxEZkVIIAr/JGrHEngf9MDZ7a1TodLZ93kROYkKkoqSCmQIJ01FXrzyYMnmtemBO/b1HFt0Q==",
"requires": {
"ajv": "^6.8.1",
"readable-stream": "^3.1.1"
@@ -581,8 +561,7 @@
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=",
"dev": true
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
},
"next-tick": {
"version": "1.0.0",
@@ -590,9 +569,9 @@
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
"node-fetch": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz",
"integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA=="
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
},
"object-hash": {
"version": "1.3.1",
@@ -610,9 +589,9 @@
"integrity": "sha512-ZOtfhPttCrqp2M1PBBH4X13XlvnfhIwD7yCLx+GoGoXRPQyxGOTdQMpIzPSPKXAJT/JQrdfFrgdJOyAzvgpQ9A=="
},
"pino": {
"version": "5.12.2",
"resolved": "https://registry.npmjs.org/pino/-/pino-5.12.2.tgz",
"integrity": "sha512-EunVRDkw/eQzgAudJiZuqzEQ20hDezixLRLrdxUMBzavvt5ot3vep7K8swRvXSgj2bKtbOmoHnrRMtYzRjfITQ==",
"version": "5.12.6",
"resolved": "https://registry.npmjs.org/pino/-/pino-5.12.6.tgz",
"integrity": "sha512-LM5ug2b27uymIIkaBw54ncF+9DSf8S4z1uzw+Y5I94dRu3Z+lFuB13j0kg1InAeyxy+CsLGnWHKy9+zgTreFOg==",
"requires": {
"fast-redact": "^1.4.4",
"fast-safe-stringify": "^2.0.6",
@@ -623,9 +602,9 @@
}
},
"pino-std-serializers": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.3.0.tgz",
"integrity": "sha512-klfGoOsP6sJH7ON796G4xoUSx2fkpFgKHO4YVVO2zmz31jR+etzc/QzGJILaOIiCD6HTCFgkPx+XN8nk+ruqPw=="
"version": "2.4.2",
"resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.4.2.tgz",
"integrity": "sha512-WaL504dO8eGs+vrK+j4BuQQq6GLKeCCcHaMB2ItygzVURcL1CycwNEUHTD/lHFHs/NL5qAz2UKrjYWXKSf4aMQ=="
},
"process-nextick-args": {
"version": "2.0.0",
@@ -634,12 +613,12 @@
"dev": true
},
"proxy-addr": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.4.tgz",
"integrity": "sha512-5erio2h9jp5CHGwcybmxmVqHmnCBZeewlfJ0pex+UW7Qny7OOZXTtH56TGNyBizkgiOwhJtMKrVzDTeKcySZwA==",
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.5.tgz",
"integrity": "sha512-t/7RxHXPH6cJtP0pRG6smSr9QJidhB+3kXu0KgXnbGYMgzEnUxRQ4/LDdfOwZEMyIh3/xHb8PX3t+lfL9z+YVQ==",
"requires": {
"forwarded": "~0.1.2",
"ipaddr.js": "1.8.0"
"ipaddr.js": "1.9.0"
}
},
"punycode": {
@@ -659,9 +638,9 @@
"integrity": "sha512-FXTaCkwvpIlkdKeGDNgcq07SXWS383noQUuZjvdE1QcTt+eLuqof6/BDiEPqB59FWLie/l91+HtlJSw7iCViSA=="
},
"readable-stream": {
"version": "3.3.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.3.0.tgz",
"integrity": "sha512-EsI+s3k3XsW+fU8fQACLN59ky34AZ14LoeVZpYwmZvldCFo0r0gnelwF2TcMjLor/BTL5aDJVBMkss0dthToPw==",
"version": "3.4.0",
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.4.0.tgz",
"integrity": "sha512-jItXPLmrSR8jmTRmRWJXCnGJsfy85mB3Wd/uINMXA65yrnFo0cPClFIUWzo2najVNSl+mx7/4W8ttlLWJe99pQ==",
"requires": {
"inherits": "^2.0.3",
"string_decoder": "^1.1.1",
@@ -684,14 +663,14 @@
"integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw=="
},
"rfdc": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.2.tgz",
"integrity": "sha512-92ktAgvZhBzYTIK0Mja9uen5q5J3NRVMoDkJL2VMwq6SXjVCgqvQeVP2XAaUY6HT+XpQYeLSjb3UoitBryKmdA=="
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.1.4.tgz",
"integrity": "sha512-5C9HXdzK8EAqN7JDif30jqsBzavB7wLpaubisuQIGHWf2gUXSpzy6ArX/+Da8RjFpagWsCn+pIgxTMAmKw9Zug=="
},
"rxjs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
"integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
"integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
"requires": {
"tslib": "^1.9.0"
}
@@ -709,15 +688,20 @@
"ret": "~0.2.0"
}
},
"secure-json-parse": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/secure-json-parse/-/secure-json-parse-1.0.0.tgz",
"integrity": "sha512-kMg4jXttRQzVyLebIDc+MRxCueJ/zsmHpCn59BRd0mZUCd+V02wNd7/Pds8Nyhv7jfLHo1KkUOzdIF7cRMU4LQ=="
},
"semver-store": {
"version": "0.3.0",
"resolved": "https://registry.npmjs.org/semver-store/-/semver-store-0.3.0.tgz",
"integrity": "sha512-TcZvGMMy9vodEFSse30lWinkj+JgOBvPn8wRItpQRSayhc+4ssDs335uklkfvQQJgL/WvmHLVj4Ycv2s7QCQMg=="
},
"sonic-boom": {
"version": "0.7.3",
"resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-0.7.3.tgz",
"integrity": "sha512-A9EyoIeLD+g9vMLYQKjNCatJtAKdBQMW03+L8ZWWX/A6hq+srRCwdqHrBD1R8oSMLXov3oHN13dljtZf12q2Ow==",
"version": "0.7.4",
"resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-0.7.4.tgz",
"integrity": "sha512-8JRAJg0RxZtFLQMxolwETvWd2JSlH3ZGo/Z4xPxMbpqF14xCgVYPVeFCFOR3zyr3pcfG82QDVj6537Sx5ZWdNw==",
"requires": {
"flatstr": "^1.0.9"
}
@@ -729,9 +713,9 @@
"dev": true
},
"source-map-support": {
"version": "0.5.11",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz",
"integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==",
"version": "0.5.12",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
"integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
@@ -829,13 +813,13 @@
"integrity": "sha512-k/vdHz+bFALjmik0URLWBYNuO0hCABTL5dullbZBXvFDdlL8RrKaeLR6YuHfX+6ZXOLkHw+HpNLCUA7DtLMQmg=="
},
"ts-node": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.0.3.tgz",
"integrity": "sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA==",
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
"integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==",
"dev": true,
"requires": {
"arg": "^4.1.0",
"diff": "^3.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"source-map-support": "^0.5.6",
"yn": "^3.0.0"
@@ -846,10 +830,15 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
},
"type": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz",
"integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw=="
},
"typescript": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.2.tgz",
"integrity": "sha512-Og2Vn6Mk7JAuWA1hQdDQN/Ekm/SchX80VzLhjKN9ETYrIepBFAd8PkOdOTK2nKt0FCkmMZKBJvQ1dV1gIxPu/A=="
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
"integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g=="
},
"uri-js": {
"version": "4.2.2",
@@ -875,9 +864,9 @@
"integrity": "sha512-Q/wBy3LB1uOyssgNlXSRmaf22NxjvDNZM2MtIQ4jaEOAB61xsh1TQxsq1CgzUMBV1lDrVMogIh8GjG1DYW0zLg=="
},
"yn": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.0.0.tgz",
"integrity": "sha512-+Wo/p5VRfxUgBUGy2j/6KX2mj9AYJWOHuhMjMcbBFc3y54o9/4buK1ksBvuiK01C3kby8DH9lSmJdSxw+4G/2Q==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz",
"integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==",
"dev": true
}
}

View File

@@ -7,21 +7,21 @@
"start": "ts-node src/main"
},
"dependencies": {
"@nestjs/common": "6.0.5",
"@nestjs/core": "6.0.5",
"@nestjs/microservices": "6.0.5",
"@nestjs/testing": "6.0.5",
"@nestjs/websockets": "6.0.5",
"class-transformer": "0.2.0",
"@nestjs/common": "6.5.2",
"@nestjs/core": "6.5.2",
"@nestjs/microservices": "6.5.2",
"@nestjs/testing": "6.5.2",
"@nestjs/websockets": "6.5.2",
"class-transformer": "0.2.3",
"class-validator": "0.9.1",
"fastify": "2.2.0",
"fastify": "2.6.0",
"reflect-metadata": "0.1.13",
"rxjs": "6.4.0",
"typescript": "3.4.2"
"rxjs": "6.5.2",
"typescript": "3.5.3"
},
"devDependencies": {
"@types/node": "7.10.5",
"@types/node": "7.10.7",
"supertest": "4.0.2",
"ts-node": "8.0.3"
"ts-node": "8.3.0"
}
}

View File

@@ -1,6 +1,7 @@
import {
CanActivate,
ExecutionContext,
Inject,
Injectable,
Scope,
} from '@nestjs/common';
@@ -9,13 +10,16 @@ import { Observable } from 'rxjs';
@Injectable({ scope: Scope.REQUEST })
export class Guard implements CanActivate {
static COUNTER = 0;
constructor() {
static REQUEST_SCOPED_DATA = [];
constructor(@Inject('REQUEST_ID') private requestId: number) {
Guard.COUNTER++;
}
canActivate(
context: ExecutionContext,
): boolean | Promise<boolean> | Observable<boolean> {
Guard.REQUEST_SCOPED_DATA.push(this.requestId);
return true;
}
}

View File

@@ -1,11 +1,19 @@
import { DynamicModule, Inject, Module, Provider } from '@nestjs/common';
import { DynamicModule, Inject, Module, Provider, Scope } from '@nestjs/common';
import { HelloController } from './hello.controller';
import { HelloService } from './hello.service';
import { UsersService } from './users/users.service';
@Module({
controllers: [HelloController],
providers: [HelloService, UsersService],
providers: [
HelloService,
UsersService,
{
provide: 'REQUEST_ID',
useFactory: () => 1,
scope: Scope.REQUEST,
},
],
})
export class HelloModule {
constructor(@Inject('META') private readonly meta) {}

View File

@@ -1,6 +1,7 @@
import {
CallHandler,
ExecutionContext,
Inject,
Injectable,
NestInterceptor,
Scope,
@@ -10,10 +11,14 @@ import { Observable } from 'rxjs';
@Injectable({ scope: Scope.REQUEST })
export class Interceptor implements NestInterceptor {
static COUNTER = 0;
constructor() {
static REQUEST_SCOPED_DATA = [];
constructor(@Inject('REQUEST_ID') private requestId: number) {
Interceptor.COUNTER++;
}
intercept(context: ExecutionContext, call: CallHandler): Observable<any> {
Interceptor.REQUEST_SCOPED_DATA.push(this.requestId);
return call.handle();
}
}

View File

@@ -1,14 +1,25 @@
import { ArgumentMetadata, Injectable, PipeTransform } from '@nestjs/common';
import {
ArgumentMetadata,
Inject,
Injectable,
PipeTransform,
} from '@nestjs/common';
import { UsersService } from './users.service';
@Injectable()
export class UserByIdPipe implements PipeTransform<string> {
static COUNTER = 0;
constructor(private readonly usersService: UsersService) {
static REQUEST_SCOPED_DATA = [];
constructor(
@Inject('REQUEST_ID') private requestId: number,
private readonly usersService: UsersService,
) {
UserByIdPipe.COUNTER++;
}
transform(value: string, metadata: ArgumentMetadata) {
UserByIdPipe.REQUEST_SCOPED_DATA.push(this.requestId);
return this.usersService.findById(value);
}
}

View File

@@ -0,0 +1,10 @@
import { IsString, IsNotEmpty, IsNumber } from 'class-validator';
export class TestDto {
@IsString()
@IsNotEmpty()
string: string;
@IsNumber()
number: number;
}

View File

@@ -0,0 +1,25 @@
import {
CanActivate,
ExecutionContext,
Inject,
Injectable,
Scope,
} from '@nestjs/common';
import { Observable } from 'rxjs';
@Injectable({ scope: Scope.REQUEST })
export class Guard implements CanActivate {
static COUNTER = 0;
static REQUEST_SCOPED_DATA = [];
constructor(@Inject('REQUEST_ID') private requestId: number) {
Guard.COUNTER++;
}
canActivate(
context: ExecutionContext,
): boolean | Promise<boolean> | Observable<boolean> {
Guard.REQUEST_SCOPED_DATA.push(this.requestId);
return true;
}
}

View File

@@ -0,0 +1,24 @@
import { Controller, UseGuards, UseInterceptors } from '@nestjs/common';
import { MessagePattern } from '@nestjs/microservices';
import { Guard } from './guards/request-scoped.guard';
import { HelloService } from './hello.service';
import { Interceptor } from './interceptors/logging.interceptor';
import { UsersService } from './users/users.service';
@Controller()
export class HelloController {
static COUNTER = 0;
constructor(
private readonly helloService: HelloService,
private readonly usersService: UsersService,
) {
HelloController.COUNTER++;
}
@UseGuards(Guard)
@UseInterceptors(Interceptor)
@MessagePattern('test')
greeting(): string {
return this.helloService.greeting();
}
}

View File

@@ -0,0 +1,28 @@
import { DynamicModule, Inject, Module, Provider, Scope } from '@nestjs/common';
import { HelloController } from './hello.controller';
import { HelloService } from './hello.service';
import { HttpController } from './http.controller';
import { UsersService } from './users/users.service';
@Module({
controllers: [HelloController, HttpController],
providers: [
HelloService,
UsersService,
{
provide: 'REQUEST_ID',
useFactory: () => 1,
scope: Scope.REQUEST,
},
],
})
export class HelloModule {
constructor(@Inject('META') private readonly meta) {}
static forRoot(meta: Provider): DynamicModule {
return {
module: HelloModule,
providers: [meta],
};
}
}

View File

@@ -0,0 +1,10 @@
import { Inject, Injectable, Scope } from '@nestjs/common';
@Injectable({ scope: Scope.REQUEST })
export class HelloService {
constructor(@Inject('META') private readonly meta) {}
greeting(): string {
return 'Hello world!';
}
}

View File

@@ -0,0 +1,13 @@
import { Controller, Get } from '@nestjs/common';
import { ClientProxyFactory, Transport } from '@nestjs/microservices';
@Controller()
export class HttpController {
@Get('hello')
testMsvc() {
const client = ClientProxyFactory.create({
transport: Transport.TCP,
});
return client.send('test', { test: true });
}
}

View File

@@ -0,0 +1,24 @@
import {
CallHandler,
ExecutionContext,
Inject,
Injectable,
NestInterceptor,
Scope,
} from '@nestjs/common';
import { Observable } from 'rxjs';
@Injectable({ scope: Scope.REQUEST })
export class Interceptor implements NestInterceptor {
static COUNTER = 0;
static REQUEST_SCOPED_DATA = [];
constructor(@Inject('REQUEST_ID') private requestId: number) {
Interceptor.COUNTER++;
}
intercept(context: ExecutionContext, call: CallHandler): Observable<any> {
Interceptor.REQUEST_SCOPED_DATA.push(this.requestId);
return call.handle();
}
}

View File

@@ -0,0 +1,13 @@
import { Inject, Injectable, Scope } from '@nestjs/common';
@Injectable({ scope: Scope.REQUEST })
export class UsersService {
static COUNTER = 0;
constructor(@Inject('META') private readonly meta) {
UsersService.COUNTER++;
}
findById(id: string) {
return { id };
}
}

View File

@@ -3,7 +3,7 @@ import { Test } from '@nestjs/testing';
import * as request from 'supertest';
import { ApplicationModule } from '../src/app.module';
describe('GraphQL - Pipes', () => {
describe('GraphQL Pipes', () => {
let app: INestApplication;
beforeEach(async () => {
@@ -32,20 +32,24 @@ describe('GraphQL - Pipes', () => {
extensions: {
code: 'INTERNAL_SERVER_ERROR',
exception: {
message: [
{
children: [],
constraints: {
length:
'description must be longer than or equal to 30 characters',
message: {
error: 'Bad Request',
message: [
{
children: [],
constraints: {
length:
'description must be longer than or equal to 30 characters',
},
property: 'description',
target: {
ingredients: [],
title: 'test',
},
},
property: 'description',
target: {
ingredients: [],
title: 'test',
},
},
],
],
statusCode: 400,
},
response: {
error: 'Bad Request',
message: [
@@ -73,20 +77,24 @@ describe('GraphQL - Pipes', () => {
line: 2,
},
],
message: [
{
children: [],
constraints: {
length:
'description must be longer than or equal to 30 characters',
message: {
error: 'Bad Request',
message: [
{
children: [],
constraints: {
length:
'description must be longer than or equal to 30 characters',
},
property: 'description',
target: {
ingredients: [],
title: 'test',
},
},
property: 'description',
target: {
ingredients: [],
title: 'test',
},
},
],
],
statusCode: 400,
},
path: ['addRecipe'],
},
],

File diff suppressed because it is too large Load Diff

View File

@@ -9,24 +9,24 @@
"start:prod": "node dist/main.js"
},
"dependencies": {
"@nestjs/common": "6.0.5",
"@nestjs/core": "6.0.5",
"@nestjs/graphql": "6.0.5",
"apollo-server-express": "2.4.8",
"class-transformer": "0.2.0",
"@nestjs/common": "6.5.2",
"@nestjs/core": "6.5.2",
"@nestjs/graphql": "6.4.2",
"apollo-server-express": "2.7.0",
"class-transformer": "0.2.3",
"class-validator": "0.9.1",
"graphql": "14.2.1",
"graphql-tools": "4.0.4",
"graphql": "14.4.2",
"graphql-tools": "4.0.5",
"reflect-metadata": "0.1.13",
"rxjs": "6.4.0",
"rxjs": "6.5.2",
"subscriptions-transport-ws": "0.9.16",
"type-graphql": "0.17.1",
"typescript": "3.4.2",
"ws": "6.2.1"
"type-graphql": "0.17.4",
"typescript": "3.5.3",
"ws": "7.1.0"
},
"devDependencies": {
"@types/node": "7.10.5",
"ts-node": "8.0.3",
"tslint": "5.15.0"
"@types/node": "7.10.7",
"ts-node": "8.3.0",
"tslint": "5.18.0"
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -9,18 +9,18 @@
"start:prod": "node dist/main.js"
},
"dependencies": {
"@nestjs/common": "6.0.5",
"@nestjs/core": "6.0.5",
"@nestjs/typeorm": "6.0.0",
"mysql": "2.16.0",
"@nestjs/common": "6.5.2",
"@nestjs/core": "6.5.2",
"@nestjs/typeorm": "6.1.3",
"mysql": "2.17.1",
"reflect-metadata": "0.1.13",
"rxjs": "6.4.0",
"typeorm": "0.2.16",
"typescript": "3.4.2"
"rxjs": "6.5.2",
"typeorm": "0.2.18",
"typescript": "3.5.3"
},
"devDependencies": {
"@types/node": "7.10.5",
"ts-node": "8.0.3",
"tslint": "5.15.0"
"@types/node": "7.10.7",
"ts-node": "8.3.0",
"tslint": "5.18.0"
}
}

View File

@@ -12,7 +12,7 @@ async function createNestApp(...gateways): Promise<INestApplication> {
providers: gateways,
}).compile();
const app = await testingModule.createNestApplication();
app.useWebSocketAdapter(new WsAdapter(app));
app.useWebSocketAdapter(new WsAdapter(app) as any);
return app;
}
@@ -70,6 +70,9 @@ describe('WebSocketGateway (WsAdapter)', () => {
app = await createNestApp(ApplicationGateway, CoreGateway);
await app.listenAsync(3000);
// open websockets delay
await new Promise(resolve => setTimeout(resolve, 1000));
ws = new WebSocket('ws://localhost:8080');
ws2 = new WebSocket('ws://localhost:8090');

View File

@@ -5,58 +5,58 @@
"requires": true,
"dependencies": {
"@nestjs/common": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.0.5.tgz",
"integrity": "sha512-CbXtgBW/irevfUZF+rURDLFjhmT0Q6dmzbEYkuMg8bSjPmvgG6VzOBG6PwoPZbd+8PrPc2XLjN2A2Hg9mImp7A==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.5.2.tgz",
"integrity": "sha512-vkB6JLPPckjS35usLMV3Q6vljkgzhN3jgQ+U1VY6cKriyjnkIcUKo37tNQSPYkaAGe1pOLK4IkmwMTSyhNieyg==",
"requires": {
"axios": "0.18.0",
"axios": "0.19.0",
"cli-color": "1.4.0",
"uuid": "3.3.2"
}
},
"@nestjs/core": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.0.5.tgz",
"integrity": "sha512-diLLr9qb9vGKyvfkt8JFGox21rpgj4YiToCRb3Tbdab0bvssLopznh/f7cdEBNmk5Adtl3IvXjtdVRj+XH7VCw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.5.2.tgz",
"integrity": "sha512-LTRCl4oaFP43DcPHbvVO0sH72M+N0uGwnqc0UxhJ7ovJMX6xhahSot1QTkBb56V2AIfmzaRbGpuA4qhIgBXj6A==",
"requires": {
"@nuxtjs/opencollective": "0.2.1",
"@nuxtjs/opencollective": "0.2.2",
"fast-safe-stringify": "2.0.6",
"iterare": "1.1.2",
"iterare": "1.2.0",
"object-hash": "1.3.1",
"optional": "0.1.4",
"uuid": "3.3.2"
}
},
"@nestjs/microservices": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-6.0.5.tgz",
"integrity": "sha512-lUyxzYQ3E5U7aQaY4bKVnGxizTl2cE2Rrey0ylmeVE4ae9Y7/z/7mdsfB4DVnuMVuRpyClUJ+zrQ4tJAIvL/nQ==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-6.5.2.tgz",
"integrity": "sha512-edKXp11ma0kAUhXlkDmQ3ytHSKMbZQCyhVFRAOUdDQBhtTRXr7j9UNbMR+xBZq7KdiW09kNHFmYRACTrUsnItQ==",
"requires": {
"iterare": "1.1.2",
"iterare": "1.2.0",
"json-socket": "0.3.0",
"optional": "0.1.4"
}
},
"@nestjs/testing": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-6.0.5.tgz",
"integrity": "sha512-LrPBckONn/ZalBC8GU5LxvgIS8DJNrdwZE4gMJz0ugodwl0c1IL3e2gIukBkUJtHYPtzN12nYevnaGYT/V1aDQ==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-6.5.2.tgz",
"integrity": "sha512-wyob7CkuCdq+NBhq78JyX5Llk4tQv2fS1jcVqhvHp96zc9RxemOMvN1GUHTXo4SNVxE+hlUV1smvcsPPsmlj8Q==",
"requires": {
"optional": "0.1.4"
}
},
"@nestjs/websockets": {
"version": "6.0.5",
"resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-6.0.5.tgz",
"integrity": "sha512-cA4Z6dM/Q8WqzgDyC6HiCdFvcDVAv7TyGkzthuuCn9xHDeLjtyzCL1koogkZ0FmLWhNmCskc/yJb2IjApGtzvQ==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-6.5.2.tgz",
"integrity": "sha512-VguS7Fy3AcZS8CzuvdOxOWW+9VecGJ/AwJWbG76d0iRCsqpJu+qAoPNpo9qruB1lQ0MXYHlwGgxaTcF8PzrliQ==",
"requires": {
"iterare": "1.1.2"
"iterare": "1.2.0"
}
},
"@nuxtjs/opencollective": {
"version": "0.2.1",
"resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.1.tgz",
"integrity": "sha512-pzSib8NKquaTt/ns5Cc2G0BGRVJXaD+p1qfF6q7vNIMvRysorn/VF3y7gAuQpcxfF7wBbGE+dXjhIieWOUsWSw==",
"version": "0.2.2",
"resolved": "https://registry.npmjs.org/@nuxtjs/opencollective/-/opencollective-0.2.2.tgz",
"integrity": "sha512-69gFVDs7mJfNjv9Zs5DFVD+pvBW+k1TaHSOqUWqAyTTfLcKI/EMYQgvEvziRd+zAFtUOoye6MfWh0qvinGISPw==",
"requires": {
"chalk": "^2.4.1",
"consola": "^2.3.0",
@@ -64,9 +64,9 @@
}
},
"@types/node": {
"version": "7.10.5",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.5.tgz",
"integrity": "sha512-RYkagUUbxQBss46ElbEa+j4q4X3GR12QwB7a/PM5hmVuVkYoW1jENT1+taspKUv8ibwW8cw+kRFbOaTc/Key3w==",
"version": "7.10.7",
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.7.tgz",
"integrity": "sha512-4I7+hXKyq7e1deuzX9udu0hPIYqSSkdKXtjow6fMnQ3OR9qkxIErGHbGY08YrfZJrCS1ajK8lOuzd0k3n2WM4A==",
"dev": true
},
"ansi-regex": {
@@ -95,12 +95,12 @@
"dev": true
},
"axios": {
"version": "0.18.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
"version": "0.19.0",
"resolved": "https://registry.npmjs.org/axios/-/axios-0.19.0.tgz",
"integrity": "sha512-1uvKqKQta3KBxIz14F2v06AEHZ/dIoeKfbTRkK1E5oqjDnuEerLmYTgJB5AiQZHJcljpg1TuRzdjDR06qNk0DQ==",
"requires": {
"follow-redirects": "^1.3.0",
"is-buffer": "^1.1.5"
"follow-redirects": "1.5.10",
"is-buffer": "^2.0.2"
}
},
"buffer-from": {
@@ -120,9 +120,9 @@
}
},
"class-transformer": {
"version": "0.2.0",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.0.tgz",
"integrity": "sha512-6N/5WkEmLZCKxyC2CAPYQIJt3pDZzDFag7AExpyWRm7CjaS/U62VDRU+Z2AUrQaNpnuiXRlli0so4PJUqGSVZQ=="
"version": "0.2.3",
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.3.tgz",
"integrity": "sha512-qsP+0xoavpOlJHuYsQJsN58HXSl8Jvveo+T37rEvCEeRfMWoytAyR0Ua/YsFgpM6AZYZ/og2PJwArwzJl1aXtQ=="
},
"class-validator": {
"version": "0.9.1",
@@ -175,9 +175,9 @@
"dev": true
},
"consola": {
"version": "2.5.8",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.5.8.tgz",
"integrity": "sha512-fYv1M0rNJw4h0CZUx8PX02Px7xQhA+vNHpV8DBCGMoozp2Io/vrSXhhEothaRnSt7VMR0rj2pt9KKLXa5amrCw=="
"version": "2.9.0",
"resolved": "https://registry.npmjs.org/consola/-/consola-2.9.0.tgz",
"integrity": "sha512-34Iue+LRcWbndFIfZc5boNizWlsrRjqIBJZTe591vImgbnq7nx2EzlrLtANj9TH2Fxm7puFJBJAOk5BhvZOddQ=="
},
"cookiejar": {
"version": "2.1.2",
@@ -192,17 +192,19 @@
"dev": true
},
"d": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz",
"integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==",
"requires": {
"es5-ext": "^0.10.9"
"es5-ext": "^0.10.50",
"type": "^1.0.1"
}
},
"debug": {
"version": "3.2.6",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
"integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
"dev": true,
"requires": {
"ms": "^2.1.1"
}
@@ -214,15 +216,15 @@
"dev": true
},
"diff": {
"version": "3.5.0",
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
"version": "4.0.1",
"resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz",
"integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==",
"dev": true
},
"es5-ext": {
"version": "0.10.49",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.49.tgz",
"integrity": "sha512-3NMEhi57E31qdzmYp2jwRArIUsj1HI/RxbQ4bgnSB+AIKIxsAmTiK83bYMifIcpWvEc3P1X30DhUKOqEtF/kvg==",
"version": "0.10.50",
"resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.50.tgz",
"integrity": "sha512-KMzZTPBkeQV/JcSQhI5/z6d9VWJ3EnQ194USTUwIYZ2ZbpN8+SGXQKt1h68EX44+qt+Fzr8DO17vnxrw7c3agw==",
"requires": {
"es6-iterator": "~2.0.3",
"es6-symbol": "~3.1.1",
@@ -249,13 +251,13 @@
}
},
"es6-weak-map": {
"version": "2.0.2",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.2.tgz",
"integrity": "sha1-XjqzIlH/0VOKH45f+hNXdy+S2W8=",
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz",
"integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==",
"requires": {
"d": "1",
"es5-ext": "^0.10.14",
"es6-iterator": "^2.0.1",
"es5-ext": "^0.10.46",
"es6-iterator": "^2.0.3",
"es6-symbol": "^3.1.1"
}
},
@@ -285,11 +287,26 @@
"integrity": "sha512-q8BZ89jjc+mz08rSxROs8VsrBBcn1SIw1kq9NjolL509tkABRk9io01RAjSaEv1Xb2uFLt8VtRiZbGp5H8iDtg=="
},
"follow-redirects": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.7.0.tgz",
"integrity": "sha512-m/pZQy4Gj287eNy94nivy5wchN3Kp+Q5WgUPNy5lJSZ3sgkVKSYV/ZChMAQVIgx1SqfZ2zBZtPA2YlXIWxxJOQ==",
"version": "1.5.10",
"resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.5.10.tgz",
"integrity": "sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==",
"requires": {
"debug": "^3.2.6"
"debug": "=3.1.0"
},
"dependencies": {
"debug": {
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz",
"integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==",
"requires": {
"ms": "2.0.0"
}
},
"ms": {
"version": "2.0.0",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz",
"integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g="
}
}
},
"form-data": {
@@ -326,9 +343,9 @@
"dev": true
},
"is-buffer": {
"version": "1.1.6",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz",
"integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w=="
"version": "2.0.3",
"resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.3.tgz",
"integrity": "sha512-U15Q7MXTuZlrbymiz95PJpZxu8IlipAp4dtS3wOdgPXx3mqBnslrWU14kxfHB+Py/+2PVKSr37dMAgM2A4uArw=="
},
"is-promise": {
"version": "2.1.0",
@@ -336,9 +353,9 @@
"integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o="
},
"iterare": {
"version": "1.1.2",
"resolved": "https://registry.npmjs.org/iterare/-/iterare-1.1.2.tgz",
"integrity": "sha512-25rVYmj/dDvTR6zOa9jY1Ihd6USLa0J508Ub2iy7Aga+xu9JMbjDds2Uh03ReDGbva/YN3s3Ybi+Do0nOX6wAg=="
"version": "1.2.0",
"resolved": "https://registry.npmjs.org/iterare/-/iterare-1.2.0.tgz",
"integrity": "sha512-RxMV9p/UzdK0Iplnd8mVgRvNdXlsTOiuDrqMRnDi3wIhbT+JP4xDquAX9ay13R3CH72NBzQ91KWe0+C168QAyQ=="
},
"json-socket": {
"version": "0.3.0",
@@ -404,7 +421,8 @@
"ms": {
"version": "2.1.1",
"resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg=="
"integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
"dev": true
},
"next-tick": {
"version": "1.0.0",
@@ -412,9 +430,9 @@
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
},
"node-fetch": {
"version": "2.3.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.3.0.tgz",
"integrity": "sha512-MOd8pV3fxENbryESLgVIeaGKrdl+uaYhCSSVkjeOb/31/njTpcis5aWfdqgNlHIrKOLRbMnfPINPOML2CIFeXA=="
"version": "2.6.0",
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.0.tgz",
"integrity": "sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA=="
},
"object-hash": {
"version": "1.3.1",
@@ -444,9 +462,9 @@
"integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
},
"rxjs": {
"version": "6.4.0",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.4.0.tgz",
"integrity": "sha512-Z9Yfa11F6B9Sg/BK9MnqnQ+aQYicPLtilXBp2yUtDt2JRCE0h26d33EnfO3ZxoNxG0T92OUucP3Ct7cpfkdFfw==",
"version": "6.5.2",
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.2.tgz",
"integrity": "sha512-HUb7j3kvb7p7eCUHE3FqjoDsC1xfZQ4AHFWfTKSpZ+sAhhz5X1WX0ZuUqWbzB2QhSLp3DoLUG+hMdEDKqWo2Zg==",
"requires": {
"tslib": "^1.9.0"
}
@@ -464,9 +482,9 @@
"dev": true
},
"source-map-support": {
"version": "0.5.11",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.11.tgz",
"integrity": "sha512-//sajEx/fGL3iw6fltKMdPvy8kL3kJ2O3iuYlRoT3k9Kb4BjOoZ+BZzaNHeuaruSt+Kf3Zk9tnfAQg9/AJqUVQ==",
"version": "0.5.12",
"resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.12.tgz",
"integrity": "sha512-4h2Pbvyy15EE02G+JOZpUCmqWJuqrs+sEkzewTm++BPi7Hvn/HwcqLAcNxYAyI0x13CpPPn+kMjl+hplXMHITQ==",
"dev": true,
"requires": {
"buffer-from": "^1.0.0",
@@ -551,13 +569,13 @@
}
},
"ts-node": {
"version": "8.0.3",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.0.3.tgz",
"integrity": "sha512-2qayBA4vdtVRuDo11DEFSsD/SFsBXQBRZZhbRGSIkmYmVkWjULn/GGMdG10KVqkaGndljfaTD8dKjWgcejO8YA==",
"version": "8.3.0",
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz",
"integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==",
"dev": true,
"requires": {
"arg": "^4.1.0",
"diff": "^3.1.0",
"diff": "^4.0.1",
"make-error": "^1.1.1",
"source-map-support": "^0.5.6",
"yn": "^3.0.0"
@@ -568,10 +586,15 @@
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
},
"type": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/type/-/type-1.0.1.tgz",
"integrity": "sha512-MAM5dBMJCJNKs9E7JXo4CXRAansRfG0nlJxW7Wf6GZzSOvH31zClSaHdIMWLehe/EGMBkqeC55rrkaOr5Oo7Nw=="
},
"typescript": {
"version": "3.4.2",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.2.tgz",
"integrity": "sha512-Og2Vn6Mk7JAuWA1hQdDQN/Ekm/SchX80VzLhjKN9ETYrIepBFAd8PkOdOTK2nKt0FCkmMZKBJvQ1dV1gIxPu/A=="
"version": "3.5.3",
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.5.3.tgz",
"integrity": "sha512-ACzBtm/PhXBDId6a6sDJfroT2pOWt/oOnk4/dElG5G33ZL776N3Y6/6bKZJBFpd+b05F3Ct9qDjMeJmRWtE2/g=="
},
"util-deprecate": {
"version": "1.0.2",
@@ -590,9 +613,9 @@
"integrity": "sha512-Q/wBy3LB1uOyssgNlXSRmaf22NxjvDNZM2MtIQ4jaEOAB61xsh1TQxsq1CgzUMBV1lDrVMogIh8GjG1DYW0zLg=="
},
"yn": {
"version": "3.0.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.0.0.tgz",
"integrity": "sha512-+Wo/p5VRfxUgBUGy2j/6KX2mj9AYJWOHuhMjMcbBFc3y54o9/4buK1ksBvuiK01C3kby8DH9lSmJdSxw+4G/2Q==",
"version": "3.1.0",
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz",
"integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==",
"dev": true
}
}

View File

@@ -7,20 +7,20 @@
"start": "ts-node src/main"
},
"dependencies": {
"@nestjs/common": "6.0.5",
"@nestjs/core": "6.0.5",
"@nestjs/microservices": "6.0.5",
"@nestjs/testing": "6.0.5",
"@nestjs/websockets": "6.0.5",
"class-transformer": "0.2.0",
"@nestjs/common": "6.5.2",
"@nestjs/core": "6.5.2",
"@nestjs/microservices": "6.5.2",
"@nestjs/testing": "6.5.2",
"@nestjs/websockets": "6.5.2",
"class-transformer": "0.2.3",
"class-validator": "0.9.1",
"reflect-metadata": "0.1.13",
"rxjs": "6.4.0",
"typescript": "3.4.2"
"rxjs": "6.5.2",
"typescript": "3.5.3"
},
"devDependencies": {
"@types/node": "7.10.5",
"@types/node": "7.10.7",
"supertest": "4.0.2",
"ts-node": "8.0.3"
"ts-node": "8.3.0"
}
}

View File

@@ -3,5 +3,5 @@
"packages": [
"packages/*"
],
"version": "6.0.5"
"version": "6.5.3"
}

8074
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@@ -1,17 +1,18 @@
{
"name": "nestjs",
"version": "6.0.5",
"name": "@nestjs/core",
"version": "6.5.3",
"description": "Modern, fast, powerful node.js web framework",
"scripts": {
"coverage": "nyc report --reporter=text-lcov | coveralls",
"test": "nyc --require ts-node/register mocha packages/**/*.spec.ts --reporter spec --retries 3 --require 'node_modules/reflect-metadata/Reflect.js'",
"integration-test": "mocha integration/**/*.spec.ts --reporter spec --require ts-node/register --require 'node_modules/reflect-metadata/Reflect.js'",
"integration-test": "mocha \"integration/*/{,!(node_modules)/**/}/*.spec.ts\" --reporter spec --require ts-node/register --require 'node_modules/reflect-metadata/Reflect.js'",
"lint": "tslint -p tsconfig.json -c tslint.json \"packages/**/*.ts\" -e \"*.spec.ts\"",
"format": "prettier **/**/*.ts --ignore-path ./.prettierignore --write && git status",
"clean": "gulp clean:bundle",
"build": "npm run clean && gulp build",
"prebuild:dev": "rm -rf node_modules/@nestjs",
"build:dev": "gulp build --dist node_modules/@nestjs && gulp move",
"build:samples": "gulp install:samples && npm run build:dev && gulp build:samples",
"postinstall": "opencollective",
"prerelease": "gulp copy-misc && gulp build --dist node_modules/@nestjs",
"publish": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --force-publish --access public --exact -m \"chore(@nestjs) publish %s release\"",
@@ -30,81 +31,82 @@
"author": "Kamil Mysliwiec",
"license": "MIT",
"dependencies": {
"@grpc/proto-loader": "0.3.0",
"@nestjs/common": "6.0.5",
"@nestjs/core": "6.0.5",
"@nestjs/microservices": "6.0.5",
"@nestjs/testing": "6.0.5",
"@nestjs/websockets": "6.0.5",
"@nuxtjs/opencollective": "0.2.1",
"amqp-connection-manager": "2.3.1",
"@grpc/proto-loader": "0.5.1",
"@nestjs/common": "6.1.1",
"@nestjs/core": "6.1.1",
"@nestjs/microservices": "6.1.1",
"@nestjs/testing": "6.1.1",
"@nestjs/websockets": "6.1.1",
"@nuxtjs/opencollective": "0.2.2",
"amqp-connection-manager": "3.0.0",
"amqplib": "0.5.3",
"apollo-server-express": "2.4.8",
"axios": "0.18.0",
"cache-manager": "2.9.0",
"class-transformer": "0.2.0",
"apollo-server-express": "2.7.0",
"axios": "0.19.0",
"cache-manager": "2.10.0",
"class-transformer": "0.2.3",
"class-validator": "0.9.1",
"cli-color": "1.4.0",
"connect": "3.6.6",
"connect": "3.7.0",
"cors": "2.8.5",
"engine.io-client": "3.3.2",
"express": "4.16.4",
"fast-json-stringify": "1.14.0",
"express": "4.17.1",
"fast-json-stringify": "1.15.3",
"fast-safe-stringify": "2.0.6",
"fastify": "2.2.0",
"fastify-cors": "2.1.2",
"fastify": "2.6.0",
"fastify-cors": "2.1.3",
"fastify-formbody": "3.1.0",
"fastify-multipart": "0.8.0",
"graphql": "14.2.1",
"grpc": "1.19.0",
"fastify-multipart": "1.0.1",
"graphql": "14.4.2",
"grpc": "1.22.2",
"http2": "3.3.7",
"iterare": "1.1.2",
"iterare": "1.2.0",
"merge-graphql-schemas": "1.5.8",
"mqtt": "2.18.8",
"multer": "1.4.1",
"nats": "1.2.6",
"mqtt": "3.0.0",
"multer": "1.4.2",
"nats": "1.3.0",
"object-hash": "1.3.1",
"optional": "0.1.4",
"path-to-regexp": "3.0.0",
"pump": "3.0.0",
"redis": "2.8.0",
"reflect-metadata": "0.1.13",
"rxjs": "6.4.0",
"rxjs-compat": "6.4.0",
"rxjs": "6.5.2",
"rxjs-compat": "6.5.2",
"socket.io": "2.2.0",
"ts-morph": "1.3.3",
"ts-morph": "3.1.3",
"uuid": "3.3.2"
},
"devDependencies": {
"@types/amqplib": "0.5.11",
"@types/cache-manager": "1.2.7",
"@types/amqplib": "0.5.13",
"@types/cache-manager": "1.2.8",
"@types/chai": "4.1.7",
"@types/chai-as-promised": "7.1.0",
"@types/cors": "2.8.4",
"@types/express": "4.16.1",
"@types/cors": "2.8.5",
"@types/express": "4.17.0",
"@types/fastify-cors": "2.1.0",
"@types/kafka-node": "2.0.8",
"@types/mocha": "5.2.6",
"@types/node": "10.14.4",
"@types/redis": "2.8.12",
"@types/mocha": "5.2.7",
"@types/node": "10.14.13",
"@types/redis": "2.8.13",
"@types/reflect-metadata": "0.0.5",
"@types/sinon": "7.0.11",
"@types/sinon": "7.0.13",
"@types/socket.io": "2.1.2",
"@types/ws": "6.0.1",
"artillery": "1.6.0-27",
"artillery": "1.6.0-28",
"awesome-typescript-loader": "5.2.1",
"body-parser": "1.18.3",
"body-parser": "1.19.0",
"chai": "4.2.0",
"chai-as-promised": "7.1.1",
"clang-format": "1.2.4",
"concurrently": "4.1.0",
"conventional-changelog": "3.0.6",
"core-js": "3.0.1",
"coveralls": "3.0.3",
"concurrently": "4.1.1",
"conventional-changelog": "3.1.8",
"core-js": "3.1.4",
"coveralls": "3.0.5",
"csv-write-stream": "2.0.0",
"delete-empty": "2.0.0",
"fastify-static": "2.4.0",
"gulp": "4.0.0",
"delete-empty": "3.0.0",
"fancy-log": "1.3.3",
"fastify-static": "2.5.0",
"gulp": "4.0.1",
"gulp-clang-format": "1.0.27",
"gulp-clean": "0.4.0",
"gulp-sourcemaps": "2.6.5",
@@ -113,20 +115,19 @@
"husky": "1.3.1",
"imports-loader": "0.8.0",
"json-loader": "0.5.7",
"lerna": "3.13.1",
"lint-staged": "8.1.5",
"memory-usage": "1.2.1",
"lerna": "2.11.0",
"lint-staged": "9.2.0",
"mocha": "3.5.3",
"nodemon": "1.18.10",
"nyc": "13.3.0",
"prettier": "1.16.4",
"sinon": "7.3.1",
"nodemon": "1.19.1",
"nyc": "14.1.1",
"prettier": "1.18.2",
"sinon": "7.3.2",
"sinon-chai": "3.3.0",
"socket.io-client": "2.2.0",
"supertest": "4.0.2",
"ts-node": "8.0.3",
"tslint": "5.15.0",
"typescript": "3.4.2"
"ts-node": "8.3.0",
"tslint": "5.18.0",
"typescript": "3.5.3"
},
"collective": {
"type": "opencollective",
@@ -141,9 +142,11 @@
],
"exclude": [
"node_modules/",
"packages/**/test/**",
"packages/**/*.spec.ts",
"packages/**/adapters/*.ts",
"packages/**/nest-*.ts",
"packages/**/test/**/*.ts",
"packages/core/errors/**/*",
"packages/common/exceptions/*.ts",
"packages/common/http/*.ts",

View File

@@ -14,8 +14,7 @@
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/core.svg" alt="NPM Downloads" /></a>
<a href="https://travis-ci.org/nestjs/nest" target="_blank"><img src="https://api.travis-ci.org/nestjs/nest.svg?branch=master" alt="Travis" /></a>
<a href="https://travis-ci.org/nestjs/nest" target="_blank"><img src="https://img.shields.io/travis/nestjs/nest/master.svg?label=linux" alt="Linux" /></a>
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#8" alt="Coverage" /></a>
<a href="https://gitter.im/nestjs/nestjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge" target="_blank"><img src="https://badges.gitter.im/nestjs/nestjs.svg" alt="Gitter" /></a>
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
@@ -53,30 +52,33 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="320" /></a>
#### Base Sponsor
<a href="https://blueanchor.io/" target="_blank"><img src="https://nestjs.com/img/blueanchor.png" width="300" /></a> &nbsp;
<a href="https://www.novologic.com/" target="_blank"><img src="https://nestjs.com/img/novologic.png" width="200" /></a>
#### Silver Sponsors
<a href="https://neoteric.eu/" target="_blank"><img src="https://nestjs.com/img/neoteric-cut.png" width="120" valign="middle" /></a> &nbsp;
<a href="http://gojob.com" target="_blank"><img src="http://nestjs.com/img/gojob-logo.png" valign="middle" height="95" /></a> &nbsp; <a href="https://www.swingdev.io" target="_blank"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="150" valign="middle" /> </a> &nbsp; &nbsp;
<a href="https://yakaz.com/" target="_blank"><img src="https://nestjs.com/img/yakaz.png" width="100" valign="middle" /></a> &nbsp;
<a href="https://trilon.io" target="_blank"><img src="https://nestjs.com/img/trilon.svg" width="150" valign="middle" /></a>
<a href="http://xtremis.com/" target="_blank"><img src="https://nestjs.com/img/logo-xtremis.svg" width="150" valign="middle" /></a>
<a href="http://gojob.com" target="_blank"><img src="http://nestjs.com/img/gojob-logo.png" valign="middle" height="95" /></a> &nbsp;
<a href="https://trilon.io" target="_blank"><img src="https://nestjs.com/img/trilon.svg" width="150" valign="middle" /></a> &nbsp;
<a href="http://www.leogistics.com" target="_blank"><img src="https://nestjs.com/img/leogistics-logo.jpeg" width="150" valign="middle" /></a>
#### Sponsors
<a href="https://scal.io" target="_blank"><img src="https://nestjs.com/img/scalio-logo.svg" width="110" valign="middle" /></a> &nbsp; <a href="http://angularity.io" target="_blank"><img src="http://angularity.io/media/logo.svg" height="26" valign="middle" /></a> &nbsp; <!--<a href="https://keycdn.com"><img src="https://nestjs.com/img/keycdn.svg" height="30" /></a> &nbsp;--> <a href="https://hostpresto.com" target="_blank"><img src="https://nestjs.com/img/hostpresto.png" height="30" valign="middle" /></a> &nbsp; <a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" height="36" valign="middle" /></a> &nbsp; <a href="http://architectnow.net/" target="_blank"><img src="https://nestjs.com/img/architectnow.png" height="24" valign="middle" /></a> &nbsp; <a href="https://quander.io/" target="_blank"><img src="https://nestjs.com/img/quander.png" height="28" valign="middle" /></a> &nbsp; <a href="https://mantro.net/" target="_blank"><img src="https://nestjs.com/img/mantro-logo.svg" height="20" valign="middle" /></a> &nbsp;
<a href="https://www.swingdev.io" target="_blank"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="125" valign="middle" /> </a> &nbsp; <a href="https://blueanchor.io/" target="_blank"><img src="https://nestjs.com/img/blueanchor.png" width="180" valign="middle" /></a> &nbsp;
<a href="https://www.novologic.com/" target="_blank"><img src="https://nestjs.com/img/novologic.png" width="130" valign="middle" /></a> &nbsp;
<a href="https://scal.io" target="_blank"><img src="https://nestjs.com/img/scalio-logo.svg" width="100" valign="middle" /></a> &nbsp; <a href="http://angularity.io" target="_blank"><img src="http://angularity.io/media/logo.svg" height="26" valign="middle" /></a> &nbsp; <!--<a href="https://keycdn.com"><img src="https://nestjs.com/img/keycdn.svg" height="30" /></a> &nbsp;--> <a href="https://hostpresto.com" target="_blank"><img src="https://nestjs.com/img/hostpresto.png" height="30" valign="middle" /></a>
<a href="https://triplebyte.com/" target="_blank"><img src="https://nestjs.com/img/triplebyte.png" height="30" valign="middle" /></a> &nbsp;
&nbsp; <a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" height="36" valign="middle" /></a> &nbsp; <a href="http://architectnow.net/" target="_blank"><img src="https://nestjs.com/img/architectnow.png" height="24" valign="middle" /></a> &nbsp; <a href="https://quander.io/" target="_blank"><img src="https://nestjs.com/img/quander.png" height="28" valign="middle" /></a> &nbsp; <a href="https://mantro.net/" target="_blank"><img src="https://nestjs.com/img/mantro-logo.svg" height="20" valign="middle" /></a> &nbsp; <a href="https://triplebyte.com/" target="_blank"><img src="https://nestjs.com/img/triplebyte.png" height="30" valign="middle" /></a> &nbsp;
<a href="https://ever.co/" target="_blank"><img src="https://nestjs.com/img/ever-logo.png" height="20" valign="middle" /></a> &nbsp;
<a href="https://buddy.works/" target="_blank"><img src="https://nestjs.com/img/buddy-logo.svg" height="35" valign="middle" /></a>
<a href="https://buddy.works/" target="_blank"><img src="https://nestjs.com/img/buddy-logo.svg" height="35" valign="middle" /></a> &nbsp;
<a href="https://blokt.com" target="_blank"><img src="https://nestjs.com/img/blokt-logo.png" height="31" valign="middle" /></a> &nbsp;
<a href="https://reposit.co.uk/" target="_blank"><img src="https://nestjs.com/img/reposit-logo.png" height="28" valign="middle" /></a> &nbsp; &nbsp; <a href="https://yakaz.com/" target="_blank"><img src="https://nestjs.com/img/yakaz.png" width="80" valign="middle" /></a> &nbsp;
<a href="https://nearpod.com/" target="_blank"><img src="https://nestjs.com/img/nearpod-logo.svg" width="120" valign="middle" /></a> &nbsp;
<a href="https://clay.global/" target="_blank"><img src="https://nestjs.com/img/clay-logo.svg" width="90" valign="middle" /></a> &nbsp;
<a href="https://firesticktricks.com" target="_blank"><img src="https://nestjs.com/img/firesticktricks-logo.png" width="145" valign="middle" /></a> &nbsp;
<a href="http://xtremis.com/" target="_blank"><img src="https://nestjs.com/img/logo-xtremis.svg" width="145" valign="middle" /></a>
## Backers
<a href="https://opencollective.com/nest" target="_blank"><img src="https://opencollective.com/nest/backers.svg?width=890"></a>
<a href="https://opencollective.com/nest" target="_blank"><img src="https://opencollective.com/nest/backers.svg?width=1600"></a>
## Stay in touch

View File

@@ -48,7 +48,8 @@ export function createParamDecorator(
const isPipe = (pipe: any) =>
pipe &&
((isFunction(pipe) && pipe.prototype) || isFunction(pipe.transform));
((isFunction(pipe) && pipe.prototype && isFunction(pipe.prototype.transform)) ||
isFunction(pipe.transform));
const hasParamData = isNil(data) || !isPipe(data);
const paramData = hasParamData ? data : undefined;

View File

@@ -10,11 +10,9 @@ const metadataKeys = [
];
const validateKeys = (keys: string[]) => {
const isKeyInvalid = (key: string) =>
metadataKeys.findIndex(k => k === key) < 0;
const validateKey = (key: string) => {
if (!isKeyInvalid(key)) {
if (metadataKeys.includes(key)) {
return;
}
throw new InvalidModuleConfigException(key);
@@ -28,7 +26,7 @@ const validateKeys = (keys: string[]) => {
* - `controllers` - the list of controllers (e.g. HTTP controllers)
* - `providers` - the list of providers that belong to this module. They can be injected between themselves.
* - `exports` - the set of components, which should be available for modules, which imports this module
* @param options {ModuleMetadata} Module metadata
* @param metadata {ModuleMetadata} Module metadata
*/
export function Module(metadata: ModuleMetadata): ClassDecorator {
const propsKeys = Object.keys(metadata);

View File

@@ -1,4 +1,4 @@
import { isObject } from '../utils/shared.utils';
import { isString } from '../utils/shared.utils';
export class HttpException extends Error {
public readonly message: any;
@@ -22,9 +22,7 @@ export class HttpException extends Error {
private readonly status: number,
) {
super();
this.message =
(isObject(response) && (response as { message?: string }).message) ||
response;
this.message = response;
}
public getResponse(): string | object {
@@ -34,4 +32,13 @@ export class HttpException extends Error {
public getStatus(): number {
return this.status;
}
public toString(): string {
const message = this.getErrorString(this.message);
return `Error: ${message}`;
}
private getErrorString(target: string | object): string {
return isString(target) ? target : JSON.stringify(target);
}
}

View File

@@ -1,7 +0,0 @@
import { NestInterceptor } from './features/nest-interceptor.interface';
import { CanActivate } from './features/can-activate.interface';
export interface ConfigurationProvider {
getGlobalInterceptors(): NestInterceptor[];
getGlobalGuards(): CanActivate[];
}

View File

@@ -38,4 +38,8 @@ export interface ClassTransformOptions {
* This option is useful when you know for sure that your types might have a circular dependency.
*/
enableCircularCheck?: boolean;
/**
* If set to true class-transformer will attempt conversion based on TS reflected type
*/
enableImplicitConversion?: boolean;
}

View File

@@ -2,6 +2,7 @@
export interface HttpArgumentsHost {
getRequest<T = any>(): T;
getResponse<T = any>(): T;
getNext<T = any>(): T;
}
export interface WsArgumentsHost {
@@ -19,4 +20,4 @@ export interface ArgumentsHost {
switchToRpc(): RpcArgumentsHost;
switchToHttp(): HttpArgumentsHost;
switchToWs(): WsArgumentsHost;
}
}

View File

@@ -72,6 +72,7 @@ export interface NatsOptions {
options?: {
url?: string;
name?: string;
user?: string;
pass?: string;
maxReconnectAttempts?: number;
reconnectTimeWait?: number;
@@ -89,5 +90,6 @@ export interface RmqOptions {
prefetchCount?: number;
isGlobalPrefetchCount?: boolean;
queueOptions?: any;
socketOptions?: any;
};
}

View File

@@ -6,7 +6,8 @@ export type Provider<T = any> =
| Type<any>
| ClassProvider<T>
| ValueProvider<T>
| FactoryProvider<T>;
| FactoryProvider<T>
| ExistingProvider<T>;
export interface ClassProvider<T = any> {
provide: string | symbol | Type<any> | Abstract<any> | Function;
@@ -22,6 +23,11 @@ export interface ValueProvider<T = any> {
export interface FactoryProvider<T = any> {
provide: string | symbol | Type<any> | Abstract<any> | Function;
useFactory: (...args: any[]) => T;
inject?: Array<Type<any> | string | any>;
inject?: Array<Type<any> | string | symbol | Abstract<any> | Function>;
scope?: Scope;
}
export interface ExistingProvider<T = any> {
provide: string | symbol | Type<any> | Abstract<any> | Function;
useExisting: any;
}

View File

@@ -1,7 +1,7 @@
import { ShutdownSignal } from '../enums/shutdown-signal.enum';
import { LoggerService } from '../services/logger.service';
import { Abstract } from './abstract.interface';
import { Type } from './type.interface';
import { ShutdownSignal } from '../enums/shutdown-signal.enum';
export interface INestApplicationContext {
/**
@@ -39,4 +39,13 @@ export interface INestApplicationContext {
* @returns {this} The Nest application context instance
*/
enableShutdownHooks(signals?: ShutdownSignal[] | string[]): this;
/**
* Initalizes the Nest application.
* Calls the Nest lifecycle events.
* It isn't mandatory to call this method directly.
*
* @returns {Promise<this>} The NestApplicationContext instance as Promise
*/
init(): Promise<this>;
}

View File

@@ -8,13 +8,6 @@ import { INestApplicationContext } from './nest-application-context.interface';
import { WebSocketAdapter } from './websockets/web-socket-adapter.interface';
export interface INestApplication extends INestApplicationContext {
/**
* Initializes application. It is not mandatory to call this method directly.
*
* @returns {Promise}
*/
init(): Promise<this>;
/**
* A wrapper function around HTTP adapter method: `adapter.use()`.
* Example `app.use(cors())`

View File

@@ -1,6 +1,6 @@
{
"name": "@nestjs/common",
"version": "6.0.5",
"version": "6.5.3",
"description": "Nest - modern, fast, powerful node.js web framework (@common)",
"author": "Kamil Mysliwiec",
"repository": {
@@ -12,7 +12,7 @@
},
"license": "MIT",
"dependencies": {
"axios": "0.18.0",
"axios": "0.19.0",
"cli-color": "1.4.0",
"uuid": "3.3.2"
},

View File

@@ -1,2 +1,3 @@
export * from './validation.pipe';
export * from './parse-int.pipe';
export * from './parse-uuid.pipe';
export * from './validation.pipe';

View File

@@ -0,0 +1,31 @@
import { Optional } from '../decorators';
import { ArgumentMetadata, BadRequestException, Injectable } from '../index';
import { PipeTransform } from '../interfaces/features/pipe-transform.interface';
import { isUUID } from '../utils/is-uuid';
export interface ParseUUIDPipeOptions {
version?: '3' | '4' | '5';
exceptionFactory?: (errors: string) => any;
}
@Injectable()
export class ParseUUIDPipe implements PipeTransform<string> {
private readonly version: '3' | '4' | '5';
protected exceptionFactory: (errors: string) => any;
constructor(@Optional() options?: ParseUUIDPipeOptions) {
options = options || {};
this.version = options.version;
this.exceptionFactory =
options.exceptionFactory || (error => new BadRequestException(error));
}
async transform(value: string, metadata: ArgumentMetadata): Promise<string> {
if (!isUUID(value, this.version)) {
throw this.exceptionFactory(
`Validation failed (uuid v${this.version} is expected)`,
);
}
return value;
}
}

View File

@@ -1,6 +1,10 @@
import { Optional } from '../decorators';
import { Injectable } from '../decorators/core';
import { ArgumentMetadata, BadRequestException, ValidationError } from '../index';
import {
ArgumentMetadata,
BadRequestException,
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';
@@ -12,6 +16,7 @@ export interface ValidationPipeOptions extends ValidatorOptions {
disableErrorMessages?: boolean;
transformOptions?: ClassTransformOptions;
exceptionFactory?: (errors: ValidationError[]) => any;
validateCustomDecorators?: boolean;
}
let classValidator: any = {};
@@ -24,6 +29,7 @@ export class ValidationPipe implements PipeTransform<any> {
protected validatorOptions: ValidatorOptions;
protected transformOptions: ClassTransformOptions;
protected exceptionFactory: (errors: ValidationError[]) => any;
protected validateCustomDecorators: boolean;
constructor(@Optional() options?: ValidationPipeOptions) {
options = options || {};
@@ -31,12 +37,14 @@ export class ValidationPipe implements PipeTransform<any> {
transform,
disableErrorMessages,
transformOptions,
validateCustomDecorators,
...validatorOptions
} = options;
this.isTransformEnabled = !!transform;
this.validatorOptions = validatorOptions;
this.transformOptions = transformOptions;
this.isDetailedOutputDisabled = disableErrorMessages;
this.validateCustomDecorators = validateCustomDecorators || false;
this.exceptionFactory =
options.exceptionFactory ||
(errors =>
@@ -57,10 +65,13 @@ export class ValidationPipe implements PipeTransform<any> {
if (!metatype || !this.toValidate(metadata)) {
return value;
}
value = this.toEmptyIfNil(value);
this.stripProtoKeys(value);
const entity = classTransformer.plainToClass(
metatype,
this.toEmptyIfNil(value),
this.transformOptions
value,
this.transformOptions,
);
const errors = await classValidator.validate(entity, this.validatorOptions);
if (errors.length > 0) {
@@ -69,20 +80,28 @@ export class ValidationPipe implements PipeTransform<any> {
return this.isTransformEnabled
? entity
: Object.keys(this.validatorOptions).length > 0
? classTransformer.classToPlain(entity, this.transformOptions)
: value;
? classTransformer.classToPlain(entity, this.transformOptions)
: value;
}
private toValidate(metadata: ArgumentMetadata): boolean {
const { metatype, type } = metadata;
if (type === 'custom') {
if (type === 'custom' && !this.validateCustomDecorators) {
return false;
}
const types = [String, Boolean, Number, Array, Object];
return !types.some(t => metatype === t) && !isNil(metatype);
}
toEmptyIfNil<T = any, R = any>(value: T): R | {} {
private toEmptyIfNil<T = any, R = any>(value: T): R | {} {
return isNil(value) ? {} : value;
}
private stripProtoKeys(value: Record<string, any>) {
delete value.__proto__;
const keys = Object.keys(value);
keys
.filter(key => typeof value[key] === 'object' && value[key])
.forEach(key => this.stripProtoKeys(value[key]));
}
}

View File

@@ -88,5 +88,24 @@ describe('createParamDecorator', () => {
});
});
});
describe('when class type passed as data', () => {
class Data { }
class Test {
public test(
@Decorator(Data) prop,
) { }
}
it('should return class type as data parameter', () => {
const metadata = Reflect.getMetadata(
ROUTE_ARGS_METADATA,
Test,
'test',
);
const key = Object.keys(metadata)[0];
expect(metadata[key].data).to.equal(Data);
});
});
});
});

View File

@@ -0,0 +1,72 @@
import { expect } from 'chai';
import { BadRequestException, HttpException, NotFoundException } from '../../exceptions';
describe('HttpException', () => {
it('should return a message as a string when input is a string', () => {
const message: string = 'My error message';
expect(new HttpException(message, 404).message).to.be.eql('My error message');
});
it('should return a message as an object when input is an object', () => {
const message: object = {
msg: 'My error message',
reason: 'this can be a human readable reason',
anything: 'else',
};
expect(new HttpException(message, 404).message).to.be.eql(message);
});
it('should return a message from a built-in exception as an object', () => {
const message: string = 'My error message';
expect(new BadRequestException(message).message).to.be.eql({
statusCode: 400,
error: 'Bad Request',
message: 'My error message',
});
});
it('should return an object even when the message is undefined', () => {
expect(new BadRequestException().message).to.be.eql({statusCode: 400, error: 'Bad Request'});
});
it('should return a status code', () => {
expect(new BadRequestException().getStatus()).to.be.eql(400);
expect(new NotFoundException().getStatus()).to.be.eql(404);
});
it('should return a response', () => {
expect(new BadRequestException().getResponse()).to.be.eql({
error: 'Bad Request',
statusCode: 400,
});
expect(new NotFoundException().getResponse()).to.be.eql({
error: 'Not Found',
statusCode: 404,
});
});
it('should inherit from error', () => {
const error = new HttpException('', 400);
expect(error instanceof Error).to.be.true;
});
it('should be serializable', () => {
const message = 'Some Error';
const error = new HttpException(message, 400);
expect(`${error}`).to.be.eql(`Error: ${message}`);
});
describe('when "message" is an object', () => {
it('should serialize an object', () => {
const obj = { foo: 'bar' };
const error = new HttpException(obj, 400);
expect(`${error}`).to.be.eql(`Error: ${JSON.stringify(obj)}`);
expect(`${error}`.includes('[object Object]')).to.not.be.true;
});
it('should serialize sub errors', () => {
const error = new NotFoundException();
expect(`${error}`.includes('Not Found')).to.be.true;
});
});
});

View File

@@ -0,0 +1,66 @@
import { expect } from 'chai';
import * as sinon from 'sinon';
import { ArgumentMetadata } from '../../interfaces';
import { ParseUUIDPipe } from '../../pipes/parse-uuid.pipe';
describe('ParseUUIDPipe', () => {
let target: ParseUUIDPipe;
describe('transform', () => {
const v3 = 'e8b5a51d-11c8-3310-a6ab-367563f20686';
const v4 = '10ba038e-48da-487b-96e8-8d3b99b6d18a';
const v5 = '630eb68f-e0fa-5ecc-887a-7c7a62614681';
describe('when validation passes', () => {
it('should return string if value is uuid v3, v4 or v5', async () => {
target = new ParseUUIDPipe();
expect(await target.transform(v3, {} as ArgumentMetadata)).to.equal(v3);
expect(await target.transform(v4, {} as ArgumentMetadata)).to.equal(v4);
expect(await target.transform(v5, {} as ArgumentMetadata)).to.equal(v5);
});
it('should return string if value is uuid v3', async () => {
target = new ParseUUIDPipe({ version: '3' });
expect(await target.transform(v3, {} as ArgumentMetadata)).to.equal(v3);
});
it('should return string if value is uuid v4', async () => {
target = new ParseUUIDPipe({ version: '4' });
expect(await target.transform(v4, {} as ArgumentMetadata)).to.equal(v4);
});
it('should return string if value is uuid v5', async () => {
target = new ParseUUIDPipe({ version: '5' });
expect(await target.transform(v5, {} as ArgumentMetadata)).to.equal(v5);
});
});
describe('when validation fails', () => {
it('should throw an error', async () => {
target = new ParseUUIDPipe();
expect(target.transform('123a', {} as ArgumentMetadata)).to.be.rejected;
});
it('should throw an error - v3', async () => {
target = new ParseUUIDPipe({ version: '3' });
expect(target.transform('123a', {} as ArgumentMetadata)).to.be.rejected;
expect(target.transform(v4, {} as ArgumentMetadata)).to.be.rejected;
expect(target.transform(v5, {} as ArgumentMetadata)).to.be.rejected;
});
it('should throw an error - v4', async () => {
target = new ParseUUIDPipe({ version: '4' });
expect(target.transform('123a', {} as ArgumentMetadata)).to.be.rejected;
expect(target.transform(v3, {} as ArgumentMetadata)).to.be.rejected;
expect(target.transform(v5, {} as ArgumentMetadata)).to.be.rejected;
});
it('should throw an error - v5 ', async () => {
target = new ParseUUIDPipe({ version: '4' });
expect(target.transform('123a', {} as ArgumentMetadata)).to.be.rejected;
expect(target.transform(v3, {} as ArgumentMetadata)).to.be.rejected;
expect(target.transform(v4, {} as ArgumentMetadata)).to.be.rejected;
});
});
});
});

View File

@@ -26,6 +26,10 @@ class TestModel {
@IsString() public prop1: string;
@IsString() public prop2: string;
@IsOptional()
@IsString()
public optionalProp: string;
}
describe('ValidationPipe', () => {
@@ -46,13 +50,34 @@ describe('ValidationPipe', () => {
beforeEach(() => {
target = new ValidationPipe();
});
it('should return the value unchanged', async () => {
it('should return the value unchanged if optional value is not defined', async () => {
const testObj = { prop1: 'value1', prop2: 'value2' };
expect(await target.transform(testObj, {} as any)).to.equal(testObj);
expect(
await target.transform(testObj, metadata as any),
).to.not.be.instanceOf(TestModel);
});
it('should return the value unchanged if optional value is set undefined', async () => {
const testObj = { prop1: 'value1', prop2: 'value2', optionalProp: undefined };
expect(await target.transform(testObj, {} as any)).to.equal(testObj);
expect(
await target.transform(testObj, metadata as any),
).to.not.be.instanceOf(TestModel);
});
it('should return the value unchanged if optional value is null', async () => {
const testObj = { prop1: 'value1', prop2: 'value2', optionalProp: null };
expect(await target.transform(testObj, {} as any)).to.equal(testObj);
expect(
await target.transform(testObj, metadata as any),
).to.not.be.instanceOf(TestModel);
});
it('should return the value unchanged if optional value is set', async () => {
const testObj = { prop1: 'value1', prop2: 'value2', optionalProp: 'optional value' };
expect(await target.transform(testObj, {} as any)).to.equal(testObj);
expect(
await target.transform(testObj, metadata as any),
).to.not.be.instanceOf(TestModel);
});
});
describe('when validation fails', () => {
beforeEach(() => {
@@ -134,6 +159,48 @@ describe('ValidationPipe', () => {
expect(
await target.transform(testObj, metadata),
).to.not.have.property('prop3');
expect(
await target.transform(testObj, metadata),
).to.not.have.property('optionalProp');
});
it('should return a plain object without extra properties if optional prop is defined', async () => {
target = new ValidationPipe({ transform: false, whitelist: true });
const testObj = { prop1: 'value1', prop2: 'value2', prop3: 'value3', optionalProp: 'optional value' };
expect(
await target.transform(testObj, metadata),
).to.not.be.instanceOf(TestModel);
expect(
await target.transform(testObj, metadata),
).to.not.have.property('prop3');
expect(
await target.transform(testObj, metadata),
).to.have.property('optionalProp');
});
it('should return a plain object without extra properties if optional prop is undefined', async () => {
target = new ValidationPipe({ transform: false, whitelist: true });
const testObj = { prop1: 'value1', prop2: 'value2', prop3: 'value3', optionalProp: undefined };
expect(
await target.transform(testObj, metadata),
).to.not.be.instanceOf(TestModel);
expect(
await target.transform(testObj, metadata),
).to.not.have.property('prop3');
expect(
await target.transform(testObj, metadata),
).to.have.property('optionalProp');
});
it('should return a plain object without extra properties if optional prop is null', async () => {
target = new ValidationPipe({ transform: false, whitelist: true });
const testObj = { prop1: 'value1', prop2: 'value2', prop3: 'value3', optionalProp: null };
expect(
await target.transform(testObj, metadata),
).to.not.be.instanceOf(TestModel);
expect(
await target.transform(testObj, metadata),
).to.not.have.property('prop3');
expect(
await target.transform(testObj, metadata),
).to.have.property('optionalProp');
});
});
describe('when validation rejects', () => {

View File

@@ -0,0 +1,16 @@
import { BadRequestException } from '../exceptions';
const uuid = {
3: /^[0-9A-F]{8}-[0-9A-F]{4}-3[0-9A-F]{3}-[0-9A-F]{4}-[0-9A-F]{12}$/i,
4: /^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
5: /^[0-9A-F]{8}-[0-9A-F]{4}-5[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i,
all: /^[0-9A-F]{8}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{4}-[0-9A-F]{12}$/i,
};
export function isUUID(str: any, version = 'all') {
if (typeof str !== 'string') {
throw new BadRequestException('The value passed as UUID is not a string');
}
const pattern = uuid[version];
return pattern && pattern.test(str);
}

View File

@@ -7,6 +7,7 @@ export const validatePath = (path?: string): string =>
export const isFunction = (fn: any): boolean => typeof fn === 'function';
export const isString = (fn: any): fn is string => typeof fn === 'string';
export const isConstructor = (fn: any): boolean => fn === 'constructor';
export const isNil = (obj: any): boolean => isUndefined(obj) || obj === null;
export const isNil = (obj: any): obj is null | undefined =>
isUndefined(obj) || obj === null;
export const isEmpty = (array: any): boolean => !(array && array.length > 0);
export const isSymbol = (fn: any): fn is symbol => typeof fn === 'symbol';

View File

@@ -14,8 +14,7 @@
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/dm/@nestjs/core.svg" alt="NPM Downloads" /></a>
<a href="https://travis-ci.org/nestjs/nest" target="_blank"><img src="https://api.travis-ci.org/nestjs/nest.svg?branch=master" alt="Travis" /></a>
<a href="https://travis-ci.org/nestjs/nest" target="_blank"><img src="https://img.shields.io/travis/nestjs/nest/master.svg?label=linux" alt="Linux" /></a>
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#8" alt="Coverage" /></a>
<a href="https://gitter.im/nestjs/nestjs?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=body_badge" target="_blank"><img src="https://badges.gitter.im/nestjs/nestjs.svg" alt="Gitter" /></a>
<a href="https://coveralls.io/github/nestjs/nest?branch=master" target="_blank"><img src="https://coveralls.io/repos/github/nestjs/nest/badge.svg?branch=master#9" alt="Coverage" /></a>
<a href="https://discord.gg/G7Qnnhy" target="_blank"><img src="https://img.shields.io/badge/discord-online-brightgreen.svg" alt="Discord"/></a>
<a href="https://opencollective.com/nest#backer" target="_blank"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
<a href="https://opencollective.com/nest#sponsor" target="_blank"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
@@ -53,30 +52,33 @@ Nest is an MIT-licensed open source project. It can grow thanks to the sponsors
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="320" /></a>
#### Base Sponsor
<a href="https://blueanchor.io/" target="_blank"><img src="https://nestjs.com/img/blueanchor.png" width="300" /></a> &nbsp;
<a href="https://www.novologic.com/" target="_blank"><img src="https://nestjs.com/img/novologic.png" width="200" /></a>
#### Silver Sponsors
<a href="https://neoteric.eu/" target="_blank"><img src="https://nestjs.com/img/neoteric-cut.png" width="120" valign="middle" /></a> &nbsp;
<a href="http://gojob.com" target="_blank"><img src="http://nestjs.com/img/gojob-logo.png" valign="middle" height="95" /></a> &nbsp; <a href="https://www.swingdev.io" target="_blank"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="150" valign="middle" /> </a> &nbsp; &nbsp;
<a href="https://yakaz.com/" target="_blank"><img src="https://nestjs.com/img/yakaz.png" width="100" valign="middle" /></a> &nbsp;
<a href="https://trilon.io" target="_blank"><img src="https://nestjs.com/img/trilon.svg" width="150" valign="middle" /></a>
<a href="http://xtremis.com/" target="_blank"><img src="https://nestjs.com/img/logo-xtremis.svg" width="150" valign="middle" /></a>
<a href="http://gojob.com" target="_blank"><img src="http://nestjs.com/img/gojob-logo.png" valign="middle" height="95" /></a> &nbsp;
<a href="https://trilon.io" target="_blank"><img src="https://nestjs.com/img/trilon.svg" width="150" valign="middle" /></a> &nbsp;
<a href="http://www.leogistics.com" target="_blank"><img src="https://nestjs.com/img/leogistics-logo.jpeg" width="150" valign="middle" /></a>
#### Sponsors
<a href="https://scal.io" target="_blank"><img src="https://nestjs.com/img/scalio-logo.svg" width="110" valign="middle" /></a> &nbsp; <a href="http://angularity.io" target="_blank"><img src="http://angularity.io/media/logo.svg" height="26" valign="middle" /></a> &nbsp; <!--<a href="https://keycdn.com"><img src="https://nestjs.com/img/keycdn.svg" height="30" /></a> &nbsp;--> <a href="https://hostpresto.com" target="_blank"><img src="https://nestjs.com/img/hostpresto.png" height="30" valign="middle" /></a> &nbsp; <a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" height="36" valign="middle" /></a> &nbsp; <a href="http://architectnow.net/" target="_blank"><img src="https://nestjs.com/img/architectnow.png" height="24" valign="middle" /></a> &nbsp; <a href="https://quander.io/" target="_blank"><img src="https://nestjs.com/img/quander.png" height="28" valign="middle" /></a> &nbsp; <a href="https://mantro.net/" target="_blank"><img src="https://nestjs.com/img/mantro-logo.svg" height="20" valign="middle" /></a> &nbsp;
<a href="https://www.swingdev.io" target="_blank"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="125" valign="middle" /> </a> &nbsp; <a href="https://blueanchor.io/" target="_blank"><img src="https://nestjs.com/img/blueanchor.png" width="180" valign="middle" /></a> &nbsp;
<a href="https://www.novologic.com/" target="_blank"><img src="https://nestjs.com/img/novologic.png" width="130" valign="middle" /></a> &nbsp;
<a href="https://scal.io" target="_blank"><img src="https://nestjs.com/img/scalio-logo.svg" width="100" valign="middle" /></a> &nbsp; <a href="http://angularity.io" target="_blank"><img src="http://angularity.io/media/logo.svg" height="26" valign="middle" /></a> &nbsp; <!--<a href="https://keycdn.com"><img src="https://nestjs.com/img/keycdn.svg" height="30" /></a> &nbsp;--> <a href="https://hostpresto.com" target="_blank"><img src="https://nestjs.com/img/hostpresto.png" height="30" valign="middle" /></a>
<a href="https://triplebyte.com/" target="_blank"><img src="https://nestjs.com/img/triplebyte.png" height="30" valign="middle" /></a> &nbsp;
&nbsp; <a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" height="36" valign="middle" /></a> &nbsp; <a href="http://architectnow.net/" target="_blank"><img src="https://nestjs.com/img/architectnow.png" height="24" valign="middle" /></a> &nbsp; <a href="https://quander.io/" target="_blank"><img src="https://nestjs.com/img/quander.png" height="28" valign="middle" /></a> &nbsp; <a href="https://mantro.net/" target="_blank"><img src="https://nestjs.com/img/mantro-logo.svg" height="20" valign="middle" /></a> &nbsp; <a href="https://triplebyte.com/" target="_blank"><img src="https://nestjs.com/img/triplebyte.png" height="30" valign="middle" /></a> &nbsp;
<a href="https://ever.co/" target="_blank"><img src="https://nestjs.com/img/ever-logo.png" height="20" valign="middle" /></a> &nbsp;
<a href="https://buddy.works/" target="_blank"><img src="https://nestjs.com/img/buddy-logo.svg" height="35" valign="middle" /></a>
<a href="https://buddy.works/" target="_blank"><img src="https://nestjs.com/img/buddy-logo.svg" height="35" valign="middle" /></a> &nbsp;
<a href="https://blokt.com" target="_blank"><img src="https://nestjs.com/img/blokt-logo.png" height="31" valign="middle" /></a> &nbsp;
<a href="https://reposit.co.uk/" target="_blank"><img src="https://nestjs.com/img/reposit-logo.png" height="28" valign="middle" /></a> &nbsp; &nbsp; <a href="https://yakaz.com/" target="_blank"><img src="https://nestjs.com/img/yakaz.png" width="80" valign="middle" /></a> &nbsp;
<a href="https://nearpod.com/" target="_blank"><img src="https://nestjs.com/img/nearpod-logo.svg" width="120" valign="middle" /></a> &nbsp;
<a href="https://clay.global/" target="_blank"><img src="https://nestjs.com/img/clay-logo.svg" width="90" valign="middle" /></a> &nbsp;
<a href="https://firesticktricks.com" target="_blank"><img src="https://nestjs.com/img/firesticktricks-logo.png" width="145" valign="middle" /></a> &nbsp;
<a href="http://xtremis.com/" target="_blank"><img src="https://nestjs.com/img/logo-xtremis.svg" width="145" valign="middle" /></a>
## Backers
<a href="https://opencollective.com/nest" target="_blank"><img src="https://opencollective.com/nest/backers.svg?width=890"></a>
<a href="https://opencollective.com/nest" target="_blank"><img src="https://opencollective.com/nest/backers.svg?width=1600"></a>
## Stay in touch

View File

@@ -5,14 +5,22 @@ import {
PipeTransform,
WebSocketAdapter,
} from '@nestjs/common';
import { ConfigurationProvider } from '@nestjs/common/interfaces/configuration-provider.interface';
import { InstanceWrapper } from './injector/instance-wrapper';
export class ApplicationConfig implements ConfigurationProvider {
private globalPipes: PipeTransform<any>[] = [];
export class ApplicationConfig {
private globalPrefix = '';
private globalPipes: PipeTransform[] = [];
private globalFilters: ExceptionFilter[] = [];
private globalInterceptors: NestInterceptor[] = [];
private globalGuards: CanActivate[] = [];
private globalPrefix = '';
private readonly globalRequestPipes: InstanceWrapper<PipeTransform>[] = [];
private readonly globalRequestFilters: InstanceWrapper<
ExceptionFilter
>[] = [];
private readonly globalRequestInterceptors: InstanceWrapper<
NestInterceptor
>[] = [];
private readonly globalRequestGuards: InstanceWrapper<CanActivate>[] = [];
constructor(private ioAdapter: WebSocketAdapter | null = null) {}
@@ -79,4 +87,38 @@ export class ApplicationConfig implements ConfigurationProvider {
public useGlobalGuards(...guards: CanActivate[]) {
this.globalGuards = this.globalGuards.concat(guards);
}
public addGlobalRequestInterceptor(
wrapper: InstanceWrapper<NestInterceptor>,
) {
this.globalRequestInterceptors.push(wrapper);
}
public getGlobalRequestInterceptors(): InstanceWrapper<NestInterceptor>[] {
return this.globalRequestInterceptors;
}
public addGlobalRequestPipe(wrapper: InstanceWrapper<PipeTransform>) {
this.globalRequestPipes.push(wrapper);
}
public getGlobalRequestPipes(): InstanceWrapper<PipeTransform>[] {
return this.globalRequestPipes;
}
public addGlobalRequestFilter(wrapper: InstanceWrapper<ExceptionFilter>) {
this.globalRequestFilters.push(wrapper);
}
public getGlobalRequestFilters(): InstanceWrapper<ExceptionFilter>[] {
return this.globalRequestFilters;
}
public addGlobalRequestGuard(wrapper: InstanceWrapper<CanActivate>) {
this.globalRequestGuards.push(wrapper);
}
public getGlobalRequestGuards(): InstanceWrapper<CanActivate>[] {
return this.globalRequestGuards;
}
}

View File

@@ -1,24 +1,31 @@
import { ExceptionHandler } from './exception-handler';
import { UNHANDLED_RUNTIME_EXCEPTION } from './messages';
const DEFAULT_TEARDOWN = () => process.exit(1);
export class ExceptionsZone {
private static readonly exceptionHandler = new ExceptionHandler();
public static run(fn: () => void) {
public static run(
callback: () => void,
teardown: (err: any) => void = DEFAULT_TEARDOWN,
) {
try {
fn();
callback();
} catch (e) {
this.exceptionHandler.handle(e);
throw UNHANDLED_RUNTIME_EXCEPTION;
teardown(e);
}
}
public static async asyncRun(fn: () => Promise<void>) {
public static async asyncRun(
callback: () => Promise<void>,
teardown: (err: any) => void = DEFAULT_TEARDOWN,
) {
try {
await fn();
await callback();
} catch (e) {
this.exceptionHandler.handle(e);
throw UNHANDLED_RUNTIME_EXCEPTION;
teardown(e);
}
}
}

View File

@@ -2,6 +2,7 @@ import { EXCEPTION_FILTERS_METADATA } from '@nestjs/common/constants';
import { Controller } from '@nestjs/common/interfaces';
import { isEmpty } from '@nestjs/common/utils/shared.utils';
import { STATIC_CONTEXT } from '../injector/constants';
import { InstanceWrapper } from '../injector/instance-wrapper';
import { RouterProxyCallback } from '../router/router-proxy';
import { ApplicationConfig } from './../application-config';
import { NestContainer } from './../injector/container';
@@ -40,10 +41,23 @@ export class ExternalExceptionFilterContext extends BaseExceptionFilterContext {
return exceptionHandler;
}
public getGlobalMetadata<T extends any[]>(): T {
public getGlobalMetadata<T extends any[]>(
contextId = STATIC_CONTEXT,
inquirerId?: string,
): T {
if (!this.config) {
return [] as T;
}
return this.config.getGlobalFilters() as T;
const globalFilters = this.config.getGlobalFilters() as T;
if (contextId === STATIC_CONTEXT && !inquirerId) {
return globalFilters;
}
const scopedFilterWrappers = this.config.getGlobalRequestFilters() as InstanceWrapper[];
const scopedFilters = scopedFilterWrappers
.map(wrapper => wrapper.getInstanceByContextId(contextId, inquirerId))
.filter(host => host)
.map(host => host.instance);
return globalFilters.concat(scopedFilters) as T;
}
}

View File

@@ -1,9 +1,9 @@
import { CanActivate } from '@nestjs/common';
import { GUARDS_METADATA } from '@nestjs/common/constants';
import { Controller } from '@nestjs/common/interfaces';
import { ConfigurationProvider } from '@nestjs/common/interfaces/configuration-provider.interface';
import { isEmpty, isFunction } from '@nestjs/common/utils/shared.utils';
import iterate from 'iterare';
import { ApplicationConfig } from '../application-config';
import { ContextCreator } from '../helpers/context-creator';
import { STATIC_CONTEXT } from '../injector/constants';
import { NestContainer } from '../injector/container';
@@ -14,7 +14,7 @@ export class GuardsContextCreator extends ContextCreator {
constructor(
private readonly container: NestContainer,
private readonly config?: ConfigurationProvider,
private readonly config?: ApplicationConfig,
) {
super();
}
@@ -86,10 +86,23 @@ export class GuardsContextCreator extends ContextCreator {
return injectables.get(guard.name);
}
public getGlobalMetadata<T extends any[]>(): T {
public getGlobalMetadata<T extends any[]>(
contextId = STATIC_CONTEXT,
inquirerId?: string,
): T {
if (!this.config) {
return [] as T;
}
return this.config.getGlobalGuards() as T;
const globalGuards = this.config.getGlobalGuards() as T;
if (contextId === STATIC_CONTEXT && !inquirerId) {
return globalGuards;
}
const scopedGuardWrappers = this.config.getGlobalRequestGuards() as InstanceWrapper[];
const scopedGuards = scopedGuardWrappers
.map(wrapper => wrapper.getInstanceByContextId(contextId, inquirerId))
.filter(host => host)
.map(host => host.instance);
return globalGuards.concat(scopedGuards) as T;
}
}

View File

@@ -8,7 +8,10 @@ export abstract class ContextCreator {
contextId?: ContextId,
inquirerId?: string,
): R;
public getGlobalMetadata?<T extends any[]>(): T;
public getGlobalMetadata?<T extends any[]>(
contextId?: ContextId,
inquirerId?: string,
): T;
public createContext<T extends any[], R extends any[]>(
instance: Controller,
@@ -18,7 +21,8 @@ export abstract class ContextCreator {
inquirerId?: string,
): R {
const globalMetadata =
this.getGlobalMetadata && this.getGlobalMetadata<T>();
this.getGlobalMetadata &&
this.getGlobalMetadata<T>(contextId, inquirerId);
const classMetadata = this.reflectClassMetadata<T>(instance, metadataKey);
const methodMetadata = this.reflectMethodMetadata<T>(callback, metadataKey);
return [

View File

@@ -39,6 +39,7 @@ export class ExecutionContextHost implements ExecutionContext {
return Object.assign(this, {
getRequest: () => this.getArgByIndex(0),
getResponse: () => this.getArgByIndex(1),
getNext: () => this.getArgByIndex(2)
});
}

View File

@@ -1,7 +1,7 @@
import { ForbiddenException, ParamData } from '@nestjs/common';
import { CUSTOM_ROUTE_AGRS_METADATA } from '@nestjs/common/constants';
import { Controller, Transform } from '@nestjs/common/interfaces';
import { isFunction } from '@nestjs/common/utils/shared.utils';
import { Controller, PipeTransform } from '@nestjs/common/interfaces';
import { isEmpty, isFunction } from '@nestjs/common/utils/shared.utils';
import { FORBIDDEN_MESSAGE } from '../guards/constants';
import { GuardsConsumer } from '../guards/guards-consumer';
import { GuardsContextCreator } from '../guards/guards-context-creator';
@@ -40,6 +40,12 @@ export interface ExternalHandlerMetadata {
) => (ParamProperties & { metatype?: any })[];
}
export interface ExternalContextOptions {
guards?: boolean;
interceptors?: boolean;
filters?: boolean;
}
export class ExternalContextCreator {
private readonly contextUtils = new ContextUtils();
private readonly externalErrorProxy = new ExternalErrorProxy();
@@ -98,6 +104,11 @@ export class ExternalContextCreator {
paramsFactory?: ParamsFactory,
contextId = STATIC_CONTEXT,
inquirerId?: string,
options: ExternalContextOptions = {
interceptors: true,
guards: true,
filters: true,
},
) {
const module = this.findContextModuleName(instance.constructor);
const { argsLength, paramtypes, getParamsMetadata } = this.getMetadata<T>(
@@ -106,7 +117,6 @@ export class ExternalContextCreator {
metadataKey,
paramsFactory,
);
const pipes = this.pipesContextCreator.create(
instance,
callback,
@@ -114,7 +124,6 @@ export class ExternalContextCreator {
contextId,
inquirerId,
);
const guards = this.guardsContextCreator.create(
instance,
callback,
@@ -122,13 +131,6 @@ export class ExternalContextCreator {
contextId,
inquirerId,
);
const interceptors = this.interceptorsContextCreator.create(
instance,
callback,
module,
contextId,
inquirerId,
);
const exceptionFilter = this.filtersContextCreator.create(
instance,
callback,
@@ -136,12 +138,24 @@ export class ExternalContextCreator {
contextId,
inquirerId,
);
const interceptors = options.interceptors
? this.interceptorsContextCreator.create(
instance,
callback,
module,
contextId,
inquirerId,
)
: [];
const paramsMetadata = getParamsMetadata(module, contextId, inquirerId);
const paramsOptions = paramsMetadata
? this.contextUtils.mergeParamsMetatypes(paramsMetadata, paramtypes)
: [];
const fnCanActivate = options.guards
? this.createGuardsFn(guards, instance, callback)
: null;
const fnApplyPipes = this.createPipesFn(pipes, paramsOptions);
const handler = (initialArgs: any[], ...args: any[]) => async () => {
if (fnApplyPipes) {
@@ -153,15 +167,8 @@ export class ExternalContextCreator {
const target = async (...args: any[]) => {
const initialArgs = this.contextUtils.createNullArray(argsLength);
const canActivate = await this.guardsConsumer.tryActivate(
guards,
args,
instance,
callback,
);
if (!canActivate) {
throw new ForbiddenException(FORBIDDEN_MESSAGE);
}
fnCanActivate && (await fnCanActivate(args));
const result = await this.interceptorsConsumer.intercept(
interceptors,
args,
@@ -171,7 +178,9 @@ export class ExternalContextCreator {
);
return this.transformToResult(result);
};
return this.externalErrorProxy.createProxy(target, exceptionFilter);
return options.filters
? this.externalErrorProxy.createProxy(target, exceptionFilter)
: target;
}
public getMetadata<T>(
@@ -283,7 +292,7 @@ export class ExternalContextCreator {
}
public createPipesFn(
pipes: any[],
pipes: PipeTransform[],
paramsOptions: (ParamProperties & { metatype?: any })[],
) {
const pipesFn = async (args: any[], ...params: any[]) => {
@@ -313,13 +322,11 @@ export class ExternalContextCreator {
public async getParamValue<T>(
value: T,
{ metatype, type, data }: { metatype: any; type: any; data: any },
transforms: Transform<any>[],
pipes: PipeTransform[],
): Promise<any> {
return this.pipesConsumer.apply(
value,
{ metatype, type, data },
transforms,
);
return isEmpty(pipes)
? value
: this.pipesConsumer.apply(value, { metatype, type, data }, pipes);
}
public async transformToResult(resultOrDeffered: any) {
@@ -328,4 +335,23 @@ export class ExternalContextCreator {
}
return resultOrDeffered;
}
public createGuardsFn(
guards: any[],
instance: Controller,
callback: (...args: any[]) => any,
): Function | null {
const canActivateFn = async (args: any[]) => {
const canActivate = await this.guardsConsumer.tryActivate(
guards,
args,
instance,
callback,
);
if (!canActivate) {
throw new ForbiddenException(FORBIDDEN_MESSAGE);
}
};
return guards.length ? canActivateFn : null;
}
}

View File

@@ -14,6 +14,7 @@ export * from './injector';
export * from './middleware';
export * from './nest-application';
export * from './nest-application-context';
export * from './application-config';
export { NestFactory } from './nest-factory';
export * from './router';
export * from './services';

View File

@@ -1,4 +1,4 @@
import { DynamicModule } from '@nestjs/common';
import { DynamicModule, Provider } from '@nestjs/common';
import { GLOBAL_MODULE_METADATA } from '@nestjs/common/constants';
import { Injectable } from '@nestjs/common/interfaces/injectable.interface';
import { Type } from '@nestjs/common/interfaces/type.interface';
@@ -129,7 +129,7 @@ export class NestContainer {
module.addRelatedModule(related);
}
public addProvider(provider: Type<any>, token: string): string {
public addProvider(provider: Provider, token: string): string {
if (!provider) {
throw new CircularDependencyException();
}
@@ -141,9 +141,9 @@ export class NestContainer {
}
public addInjectable(
injectable: Type<any>,
injectable: Provider,
token: string,
host: Type<Injectable>,
host?: Type<Injectable>,
) {
if (!this.modules.has(token)) {
throw new UnknownModuleException();

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