mirror of
https://github.com/nestjs/nest.git
synced 2026-02-23 15:52:50 +00:00
Compare commits
853 Commits
feature/as
...
v6.2.2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ab8e02e33e | ||
|
|
79056a0483 | ||
|
|
eda8065e02 | ||
|
|
fb72dcc0fe | ||
|
|
cc0bc31bd4 | ||
|
|
11a85cd254 | ||
|
|
fc40f218a4 | ||
|
|
d6b31c3490 | ||
|
|
97afee965c | ||
|
|
7f5fac66e9 | ||
|
|
b920eb6641 | ||
|
|
a20d06239c | ||
|
|
33c3a4ce9b | ||
|
|
b4759ad00f | ||
|
|
7fcb4d524d | ||
|
|
fd5d28a2de | ||
|
|
1e6600b482 | ||
|
|
f6176378f4 | ||
|
|
b8b7a5d3f9 | ||
|
|
2aa9f2fbeb | ||
|
|
6ed25e4102 | ||
|
|
b3f1dc0e8c | ||
|
|
8db96f3545 | ||
|
|
2d12dd7219 | ||
|
|
472fe76701 | ||
|
|
54bc519b06 | ||
|
|
628ec3279e | ||
|
|
8d21314273 | ||
|
|
d058c9fc4b | ||
|
|
8a45e55352 | ||
|
|
cfc1874d9b | ||
|
|
53203ef378 | ||
|
|
7058acf0ca | ||
|
|
caf2322a96 | ||
|
|
4214fa8103 | ||
|
|
9b6a9a0d2f | ||
|
|
ed1d3e1539 | ||
|
|
6263ff75b9 | ||
|
|
e0cc9fb6ac | ||
|
|
9741885f5d | ||
|
|
f2fd6d72df | ||
|
|
043ce9b04f | ||
|
|
8be5181e67 | ||
|
|
43ca7fb5b1 | ||
|
|
5134f6f6ba | ||
|
|
d64274ff96 | ||
|
|
0ec4becd24 | ||
|
|
1a4837fa04 | ||
|
|
56951d15de | ||
|
|
178d34c831 | ||
|
|
0137ebce00 | ||
|
|
039d32271e | ||
|
|
390b214c24 | ||
|
|
a3500f4047 | ||
|
|
c2c3dab5aa | ||
|
|
43e5bdd93b | ||
|
|
1e29999ba7 | ||
|
|
b201ac34ed | ||
|
|
e664830d5e | ||
|
|
c60b1ace78 | ||
|
|
8bbf9419a3 | ||
|
|
ad81b4e4d7 | ||
|
|
ae5e7ca728 | ||
|
|
c6e9b23e45 | ||
|
|
e5a7de868d | ||
|
|
aaed3d1c14 | ||
|
|
e5dd459a88 | ||
|
|
3403ae7c54 | ||
|
|
65de083b6a | ||
|
|
228d43f9d6 | ||
|
|
74d9ad9fb4 | ||
|
|
e50f65e866 | ||
|
|
cbbbc9d257 | ||
|
|
5e2727bf90 | ||
|
|
5fce020f08 | ||
|
|
7a6c9c5a9d | ||
|
|
335dee25cb | ||
|
|
6c9bd5a58c | ||
|
|
2a9183f4da | ||
|
|
d8188306a5 | ||
|
|
61d699ead2 | ||
|
|
fab531c991 | ||
|
|
6c397ba344 | ||
|
|
67572b7eb7 | ||
|
|
e910ef7751 | ||
|
|
99af074f9d | ||
|
|
111deb3191 | ||
|
|
662213b003 | ||
|
|
21f9486f3e | ||
|
|
9d5a777d80 | ||
|
|
932f5d5d02 | ||
|
|
b183f1c783 | ||
|
|
89c7a3e1aa | ||
|
|
4c8ed7f295 | ||
|
|
74b4a13442 | ||
|
|
297eb65823 | ||
|
|
451e2ca7ea | ||
|
|
6338782546 | ||
|
|
783467b25a | ||
|
|
0bc04142dd | ||
|
|
8ab031784e | ||
|
|
bcf2fc49b8 | ||
|
|
d86c57eeea | ||
|
|
91cfc62032 | ||
|
|
64ed7ebc55 | ||
|
|
bf1de49dcd | ||
|
|
24e34a62d5 | ||
|
|
4592401c7d | ||
|
|
0ddf5b0060 | ||
|
|
1e9c3139b5 | ||
|
|
223501cb94 | ||
|
|
3c92750465 | ||
|
|
4b2fd75cf3 | ||
|
|
0f72500966 | ||
|
|
06ac009bb4 | ||
|
|
b355af9914 | ||
|
|
405bc9bd1b | ||
|
|
9325059885 | ||
|
|
8649c33030 | ||
|
|
9c3e7033bb | ||
|
|
3b2c740bd7 | ||
|
|
035d7d4d05 | ||
|
|
a9dcb9b33e | ||
|
|
06e9720186 | ||
|
|
d1b42e29c5 | ||
|
|
8a1eb31255 | ||
|
|
555dadeb36 | ||
|
|
27315975d3 | ||
|
|
7b2b74dcc6 | ||
|
|
c944ef8816 | ||
|
|
efa5d5886c | ||
|
|
f440366f3d | ||
|
|
4f1888f9a0 | ||
|
|
a50ec037ee | ||
|
|
3735556603 | ||
|
|
6754b96039 | ||
|
|
a48257c968 | ||
|
|
f472852d44 | ||
|
|
49e028c4fe | ||
|
|
f5d286b556 | ||
|
|
6966fd7df2 | ||
|
|
ce6110cf32 | ||
|
|
b1ecb73da6 | ||
|
|
efaeb40e52 | ||
|
|
1ad68cc0bc | ||
|
|
73b27cafa9 | ||
|
|
db616f7cee | ||
|
|
83afa42ee0 | ||
|
|
a5086dcb27 | ||
|
|
526445ab00 | ||
|
|
8206917d0e | ||
|
|
a92c57e53b | ||
|
|
27a02a7745 | ||
|
|
78a58ac69c | ||
|
|
ae4216361e | ||
|
|
c472a7556a | ||
|
|
e48c90e69e | ||
|
|
2f96c8568d | ||
|
|
803b408f0f | ||
|
|
6cdc31abd2 | ||
|
|
5c06f1528f | ||
|
|
cbb7022dc2 | ||
|
|
4a69ddefac | ||
|
|
e33ed082f0 | ||
|
|
7f49452516 | ||
|
|
f58e87ef4f | ||
|
|
94b884a0fa | ||
|
|
5a2216e58b | ||
|
|
4c9eb5a4ac | ||
|
|
6e4b19d0f7 | ||
|
|
dcb0ca77e8 | ||
|
|
c7e1d8e293 | ||
|
|
a026e4b564 | ||
|
|
21a2bdaee9 | ||
|
|
e4f1a1dde2 | ||
|
|
54530247d4 | ||
|
|
cbc9b987fb | ||
|
|
eeb260acde | ||
|
|
85fb17b32b | ||
|
|
78732403b8 | ||
|
|
4608b6e8e3 | ||
|
|
d01497c0cb | ||
|
|
ef6591674a | ||
|
|
808b6d0627 | ||
|
|
b36b0f0f03 | ||
|
|
8b6dd09ca5 | ||
|
|
f9a42cf442 | ||
|
|
6cd93a9918 | ||
|
|
95e2f7e9ed | ||
|
|
4a4fd2e0e0 | ||
|
|
980f98d6b9 | ||
|
|
1283fd3201 | ||
|
|
e59eb97585 | ||
|
|
13697371a4 | ||
|
|
ec14c921ad | ||
|
|
b12328d0b8 | ||
|
|
9783ac2437 | ||
|
|
7d463c64a4 | ||
|
|
5e8fd1e690 | ||
|
|
71c4bf31cb | ||
|
|
7149f96e11 | ||
|
|
68f33be063 | ||
|
|
4259eb409e | ||
|
|
1d0a9fdc01 | ||
|
|
c7ef4c8778 | ||
|
|
fb02c35e57 | ||
|
|
d78cd72164 | ||
|
|
fb96560cba | ||
|
|
c6e84b6ce3 | ||
|
|
371554a00e | ||
|
|
a9658634e0 | ||
|
|
cdd38dc018 | ||
|
|
bab370cf6d | ||
|
|
981a64ebae | ||
|
|
7f3f022d1c | ||
|
|
685a1ff2c6 | ||
|
|
4a66e75d62 | ||
|
|
4c775b7e24 | ||
|
|
7f1dd41cc6 | ||
|
|
8a7f4df9cb | ||
|
|
960dafcd33 | ||
|
|
dbe952bb1b | ||
|
|
1847f14840 | ||
|
|
57a7b7325d | ||
|
|
09eb4c14e3 | ||
|
|
f6252a49ac | ||
|
|
9a3c8af62c | ||
|
|
1f790a6f4c | ||
|
|
2f4c842c01 | ||
|
|
dfd87b43f7 | ||
|
|
c6d52e5be6 | ||
|
|
8d7375fa1c | ||
|
|
c5c4bf314e | ||
|
|
e888b65106 | ||
|
|
37fa9d529e | ||
|
|
5922e7ed9c | ||
|
|
efb4421280 | ||
|
|
85c2483d60 | ||
|
|
313bc08cda | ||
|
|
ce5d3793f8 | ||
|
|
5cd03dc720 | ||
|
|
baa475a98e | ||
|
|
9775b2c74a | ||
|
|
7b1f2b92fa | ||
|
|
669c110d45 | ||
|
|
348c1caa3e | ||
|
|
026bb027a9 | ||
|
|
9a6f2a96ad | ||
|
|
03fa137dc6 | ||
|
|
5e935e8aae | ||
|
|
cf6ce1f31c | ||
|
|
0c4818281f | ||
|
|
7311b956a5 | ||
|
|
f045eb2b09 | ||
|
|
71b35c1b63 | ||
|
|
5eb65422da | ||
|
|
3fd5e90b84 | ||
|
|
e7804eb8d8 | ||
|
|
292b9fbb25 | ||
|
|
c70f42c5ac | ||
|
|
18288965ca | ||
|
|
4ba700af7e | ||
|
|
10ea259ba0 | ||
|
|
c434a80e75 | ||
|
|
536f4db3c0 | ||
|
|
3898d4f199 | ||
|
|
9d44042d0b | ||
|
|
44c54ed93e | ||
|
|
1b6e07c907 | ||
|
|
e41a025fc5 | ||
|
|
d9e96208fb | ||
|
|
0ef55c0b65 | ||
|
|
7a72c1d4ec | ||
|
|
22a54d714f | ||
|
|
1dcb7aefbe | ||
|
|
82e52fc3e8 | ||
|
|
ea2d32669e | ||
|
|
d2cadc12c1 | ||
|
|
0363108120 | ||
|
|
107b243c8b | ||
|
|
758201cf94 | ||
|
|
205d737214 | ||
|
|
b83357e2e9 | ||
|
|
0712346adc | ||
|
|
d465d1b8eb | ||
|
|
f5f0ff48bd | ||
|
|
1dfc81459c | ||
|
|
22ec505ff6 | ||
|
|
868aa2d07d | ||
|
|
d8c241e64f | ||
|
|
bed8e0a7f5 | ||
|
|
48137df07d | ||
|
|
c687421c03 | ||
|
|
547615afd7 | ||
|
|
b04d2bbc91 | ||
|
|
f8a335dc11 | ||
|
|
32aa7f1507 | ||
|
|
85c290dda5 | ||
|
|
0ba5424af1 | ||
|
|
9e76f416c1 | ||
|
|
098eb3b4f6 | ||
|
|
c29144c5c0 | ||
|
|
4d267f643c | ||
|
|
ee8b112504 | ||
|
|
2fa9989072 | ||
|
|
21c22d5af3 | ||
|
|
1a64c893c7 | ||
|
|
8ce7cfd677 | ||
|
|
7d31f7a7ab | ||
|
|
e444600f4d | ||
|
|
24f67c911a | ||
|
|
dba1bb8d86 | ||
|
|
347d51d77f | ||
|
|
59267796ec | ||
|
|
4152540051 | ||
|
|
13d8b3e9fe | ||
|
|
af0c2085bb | ||
|
|
283de2ec40 | ||
|
|
bff7901078 | ||
|
|
59304b0856 | ||
|
|
253c959e88 | ||
|
|
b056a80ead | ||
|
|
6618badc23 | ||
|
|
422880f84e | ||
|
|
33f7e6f37b | ||
|
|
417b8a72cd | ||
|
|
e7c2a4e7b1 | ||
|
|
08ea60e620 | ||
|
|
6be6f14d7c | ||
|
|
85b166fc6d | ||
|
|
8e6fb080f9 | ||
|
|
00e121a702 | ||
|
|
8ebd26d586 | ||
|
|
40769fcca1 | ||
|
|
9311abb33f | ||
|
|
8a7bc79297 | ||
|
|
9ff511d6cd | ||
|
|
cf01bd29ed | ||
|
|
74a5bb5d1d | ||
|
|
6168c34607 | ||
|
|
54012efa82 | ||
|
|
7050f78851 | ||
|
|
a76e17c0ff | ||
|
|
629224b8a3 | ||
|
|
152140085b | ||
|
|
6415633097 | ||
|
|
3d6c0a4925 | ||
|
|
922bbc3e57 | ||
|
|
d5fce7845e | ||
|
|
13f44328d1 | ||
|
|
45e315741b | ||
|
|
2e895033f7 | ||
|
|
00f7c5746b | ||
|
|
be093f3f30 | ||
|
|
62004c1762 | ||
|
|
89b2f69a7e | ||
|
|
5d3d2f449d | ||
|
|
8c354e76c9 | ||
|
|
b3f69ed624 | ||
|
|
b1eac49ffc | ||
|
|
df6c27c634 | ||
|
|
37fd2caa98 | ||
|
|
12b11c38f1 | ||
|
|
feeedb44ee | ||
|
|
3588f67bef | ||
|
|
9497beb5cd | ||
|
|
d0fca77744 | ||
|
|
efacf4ad0f | ||
|
|
5ff04e756e | ||
|
|
ad07a26975 | ||
|
|
4acf1b83af | ||
|
|
e17594983b | ||
|
|
da252ca23d | ||
|
|
8293bfa519 | ||
|
|
482432d477 | ||
|
|
041f0ca992 | ||
|
|
66b13f42b9 | ||
|
|
f51d331cc2 | ||
|
|
24b0f5a583 | ||
|
|
156184ead7 | ||
|
|
0b0afac93c | ||
|
|
d1828d9026 | ||
|
|
20145b06e8 | ||
|
|
fd2854d832 | ||
|
|
20bc124e3d | ||
|
|
fd86e7e4a8 | ||
|
|
ed0dd2188c | ||
|
|
497e5fe3c3 | ||
|
|
61df77daef | ||
|
|
029082b11d | ||
|
|
5e45858c9c | ||
|
|
1988dc6bba | ||
|
|
f0caa89f5d | ||
|
|
0c511a8a42 | ||
|
|
815b66121f | ||
|
|
540abe91ac | ||
|
|
2bf4577212 | ||
|
|
ca62dc951d | ||
|
|
1a3d16a7ea | ||
|
|
de446dacfa | ||
|
|
a6743f1078 | ||
|
|
0fbc8f2860 | ||
|
|
54d5592c09 | ||
|
|
cf5e7ed3b1 | ||
|
|
2eb2a037b8 | ||
|
|
a37acf66c6 | ||
|
|
ca110dfdb8 | ||
|
|
cf7ff71694 | ||
|
|
70fa9f038b | ||
|
|
802be5c8eb | ||
|
|
69ba249337 | ||
|
|
48be3ef669 | ||
|
|
0a28c16b67 | ||
|
|
a6c0d19b1d | ||
|
|
78777bfd03 | ||
|
|
1f394247bf | ||
|
|
2ce08651bb | ||
|
|
3886e23ac9 | ||
|
|
59827181cb | ||
|
|
d9a28f2253 | ||
|
|
cf8950fd94 | ||
|
|
146c3e1fbc | ||
|
|
dbcac33499 | ||
|
|
c378b25ce4 | ||
|
|
bf5eaed54c | ||
|
|
6d9f15a2a8 | ||
|
|
ab8ce64fe8 | ||
|
|
654b746d55 | ||
|
|
349b39fb01 | ||
|
|
4cd4904b54 | ||
|
|
bf9d7c3ee1 | ||
|
|
17fa9a4b9e | ||
|
|
6489611725 | ||
|
|
3edc181150 | ||
|
|
ee2dc91357 | ||
|
|
c1b8f54104 | ||
|
|
612a18bb0e | ||
|
|
c4b7b4c016 | ||
|
|
9e05feb8c2 | ||
|
|
ffd24db6d2 | ||
|
|
c0cfb16175 | ||
|
|
d8a39a74c3 | ||
|
|
845c5df66f | ||
|
|
cd1d338d2c | ||
|
|
a39821a624 | ||
|
|
4fa54ffcdd | ||
|
|
9c3e15a902 | ||
|
|
9f5f1159ae | ||
|
|
aefdee3983 | ||
|
|
5f2a395158 | ||
|
|
01b06f3848 | ||
|
|
6d09f36cb0 | ||
|
|
01dd813f5c | ||
|
|
704fe4c700 | ||
|
|
568d321cfa | ||
|
|
be92334bb5 | ||
|
|
179a65f1ab | ||
|
|
9111d12f8a | ||
|
|
acd1a439c0 | ||
|
|
a54a5b90af | ||
|
|
4d691ce42e | ||
|
|
b0088db764 | ||
|
|
22889735cf | ||
|
|
92068f302c | ||
|
|
a09e8260cd | ||
|
|
50e91cfb44 | ||
|
|
e3a2378b9a | ||
|
|
15bbd74cf8 | ||
|
|
5ba9a94957 | ||
|
|
a79e192b55 | ||
|
|
4af5d81727 | ||
|
|
82910abca0 | ||
|
|
94d7ab0000 | ||
|
|
55970a1dff | ||
|
|
839fcb0f9c | ||
|
|
b318da43c8 | ||
|
|
2d56988e86 | ||
|
|
0e33860828 | ||
|
|
00a9aef722 | ||
|
|
38737c99d1 | ||
|
|
335c25512d | ||
|
|
9430e2b78d | ||
|
|
f2ef6e19c6 | ||
|
|
4cceae670e | ||
|
|
01b8f3dc11 | ||
|
|
28eb129900 | ||
|
|
213743c287 | ||
|
|
8089f18349 | ||
|
|
4241b744a0 | ||
|
|
97e7274bf7 | ||
|
|
9f618b8502 | ||
|
|
fc6e07a103 | ||
|
|
93ae488da4 | ||
|
|
5dbc306577 | ||
|
|
dc9db9d5b8 | ||
|
|
b087fb0041 | ||
|
|
87c736e0dd | ||
|
|
9f252794b9 | ||
|
|
847bb1cc18 | ||
|
|
92a017d7b6 | ||
|
|
715c25dfb6 | ||
|
|
5c4c8b58a1 | ||
|
|
f5f1181eb2 | ||
|
|
98533b8816 | ||
|
|
dc2bb08d80 | ||
|
|
fc4285ff6c | ||
|
|
72df09ef65 | ||
|
|
8db439ad95 | ||
|
|
f5a5ce8595 | ||
|
|
54357e23e5 | ||
|
|
5c91c38aa2 | ||
|
|
3c36ea9914 | ||
|
|
e0e2b5080d | ||
|
|
c10e8d01fb | ||
|
|
e24826286c | ||
|
|
6bc1829cf7 | ||
|
|
6d83b3a3da | ||
|
|
8013e8dfca | ||
|
|
3ab4eb86c5 | ||
|
|
fc0766aede | ||
|
|
5e25e2ba3c | ||
|
|
ed04ff25c3 | ||
|
|
ba7699771a | ||
|
|
ea53b9f95d | ||
|
|
9b29f1b5fc | ||
|
|
10f70be0be | ||
|
|
d1d756a717 | ||
|
|
211f4b15c6 | ||
|
|
ff2b81ae1e | ||
|
|
21fe68ee40 | ||
|
|
df45b5377d | ||
|
|
61728fa46a | ||
|
|
b7c66efd30 | ||
|
|
97acd2cf56 | ||
|
|
5f0643ccd0 | ||
|
|
81d8dae7cd | ||
|
|
bc9ced8d71 | ||
|
|
0015231e86 | ||
|
|
67e0c89980 | ||
|
|
6882bc7fbf | ||
|
|
bab88e328f | ||
|
|
aa088d63a7 | ||
|
|
55646f5ae2 | ||
|
|
96ba98d882 | ||
|
|
bf2b062711 | ||
|
|
e1b46b7cc7 | ||
|
|
fc4aaf29f7 | ||
|
|
7ee2f58513 | ||
|
|
ff69407263 | ||
|
|
f1d458ca28 | ||
|
|
2abfd741bd | ||
|
|
8e2280db05 | ||
|
|
b2722cec63 | ||
|
|
74feffb8e7 | ||
|
|
a74bd6bda1 | ||
|
|
e412b5567c | ||
|
|
a70e2b8e80 | ||
|
|
35e6723893 | ||
|
|
e2f59a15d6 | ||
|
|
17f2c697b2 | ||
|
|
a0f3581924 | ||
|
|
8c71e4b644 | ||
|
|
561b3dae5e | ||
|
|
7804cc454b | ||
|
|
2691fd3fb0 | ||
|
|
15d7829822 | ||
|
|
7bcc3ed284 | ||
|
|
1b00185e2e | ||
|
|
a42e4fdfc7 | ||
|
|
009de393d6 | ||
|
|
d9cc475ef5 | ||
|
|
dcf6047e66 | ||
|
|
b75c76733b | ||
|
|
8f2b6b6057 | ||
|
|
0879363302 | ||
|
|
51e644a990 | ||
|
|
547d587b7a | ||
|
|
3b63f9ea56 | ||
|
|
162e545b19 | ||
|
|
5861a0763c | ||
|
|
7cbfdbeafa | ||
|
|
003b1ea51b | ||
|
|
6ffa338c56 | ||
|
|
8d05f34d34 | ||
|
|
9f4d566e5b | ||
|
|
566fada699 | ||
|
|
dc34a29ff7 | ||
|
|
6f4eb4fba9 | ||
|
|
1674038bfa | ||
|
|
8d039d3099 | ||
|
|
d8b0a4a46e | ||
|
|
73098e5306 | ||
|
|
ee19d1eedb | ||
|
|
42f38c68af | ||
|
|
03e3d224a3 | ||
|
|
f1bfd130f6 | ||
|
|
18d2062702 | ||
|
|
40b6cf92c6 | ||
|
|
ab07cd5684 | ||
|
|
4bc38cf855 | ||
|
|
dc67e8ea4c | ||
|
|
08356946ac | ||
|
|
a2ac3153ea | ||
|
|
46ed4f09a6 | ||
|
|
653c1b83f0 | ||
|
|
6e4b319219 | ||
|
|
b5a6a349e5 | ||
|
|
b23daa9cda | ||
|
|
de5c6f72af | ||
|
|
bdf73cbb8e | ||
|
|
9729a308eb | ||
|
|
d616b60f83 | ||
|
|
74368cef06 | ||
|
|
2e850f48fa | ||
|
|
5c0388f76f | ||
|
|
b5971a3a94 | ||
|
|
8cfbeeafda | ||
|
|
d5d7dddee3 | ||
|
|
bdcb8bf861 | ||
|
|
8b796482e0 | ||
|
|
6ae8237642 | ||
|
|
8ccf3e4a4e | ||
|
|
81b8653183 | ||
|
|
aa6e50e7d4 | ||
|
|
8dd1c28a25 | ||
|
|
18563ca0fe | ||
|
|
8c98870e21 | ||
|
|
c07a467e62 | ||
|
|
c286ceb4fc | ||
|
|
1d1b0ad9d0 | ||
|
|
32ac9d3762 | ||
|
|
87fdef9e53 | ||
|
|
675124af1a | ||
|
|
ca3ab408cf | ||
|
|
dc51260804 | ||
|
|
e9affa9fb5 | ||
|
|
e47403e3b4 | ||
|
|
f33c3edfe8 | ||
|
|
5de0928c76 | ||
|
|
43d658edd9 | ||
|
|
bd74bfd347 | ||
|
|
d120b36f2c | ||
|
|
dec41760b6 | ||
|
|
dd1be8d448 | ||
|
|
28344d735c | ||
|
|
8e2f64d9b7 | ||
|
|
af175229e4 | ||
|
|
7695de1f0a | ||
|
|
e7f785b7c4 | ||
|
|
590f1e7646 | ||
|
|
cb0435d3ca | ||
|
|
dadc1e32fe | ||
|
|
5a2dd18645 | ||
|
|
585d6bf321 | ||
|
|
22533e9641 | ||
|
|
d9bbe7d756 | ||
|
|
6858710e11 | ||
|
|
1579ac75f9 | ||
|
|
3949e97b5b | ||
|
|
1a2cfd9d8a | ||
|
|
920daa3887 | ||
|
|
fddab68bec | ||
|
|
9e9b8b95bd | ||
|
|
161bbd8f5d | ||
|
|
19819f4669 | ||
|
|
3bbba1cfd1 | ||
|
|
ad75ce974c | ||
|
|
14768044e9 | ||
|
|
98cea88f32 | ||
|
|
07da047801 | ||
|
|
7818a4de18 | ||
|
|
6893bd68bf | ||
|
|
3dc5b374ff | ||
|
|
16f4611d0c | ||
|
|
6d798d5c18 | ||
|
|
3fa6625be2 | ||
|
|
4c22feb289 | ||
|
|
89e5a1de49 | ||
|
|
251a8a2dc5 | ||
|
|
46d930f48a | ||
|
|
5f0829d5db | ||
|
|
9265743035 | ||
|
|
cec89d285d | ||
|
|
3a75b00db0 | ||
|
|
d6b8e1f514 | ||
|
|
00ddc0aeeb | ||
|
|
3935279878 | ||
|
|
c4b92e9b16 | ||
|
|
91500ba35e | ||
|
|
83ec279f85 | ||
|
|
9f1a32cbfd | ||
|
|
d8c7ba3285 | ||
|
|
611924c4b2 | ||
|
|
a03b4b1f55 | ||
|
|
03377180a7 | ||
|
|
f54f123953 | ||
|
|
0cc1c4ebea | ||
|
|
fe316b864e | ||
|
|
c961d8559d | ||
|
|
20cbbaf296 | ||
|
|
f95b5ae6d1 | ||
|
|
40fb55abae | ||
|
|
b89651f5e6 | ||
|
|
276f696a21 | ||
|
|
449989e857 | ||
|
|
404afdca93 | ||
|
|
13e5bf6205 | ||
|
|
6cea5928de | ||
|
|
b6406c639c | ||
|
|
4a44d16211 | ||
|
|
af62405274 | ||
|
|
8a94279cd7 | ||
|
|
218ab96b0a | ||
|
|
758257291b | ||
|
|
251fddd005 | ||
|
|
a103dd27cb | ||
|
|
edf3ff3c9d | ||
|
|
e2cb7ee8a3 | ||
|
|
f58c5116f5 | ||
|
|
4fcc3731e1 | ||
|
|
ff80e52501 | ||
|
|
a9f38fab03 | ||
|
|
be9793c160 | ||
|
|
c32697b414 | ||
|
|
5c011a6328 | ||
|
|
414925e2f0 | ||
|
|
a5d3ce5070 | ||
|
|
b80c33aa55 | ||
|
|
3261bedb1a | ||
|
|
4930974042 | ||
|
|
72b84ec97c | ||
|
|
82bb7eff71 | ||
|
|
2e75680f3c | ||
|
|
d153872640 | ||
|
|
98b81598e6 | ||
|
|
059eba49af | ||
|
|
f801ad8214 | ||
|
|
8b32bc61e4 | ||
|
|
bd8705790e | ||
|
|
27d1c0fa7d | ||
|
|
df538d5025 | ||
|
|
fc85b32be6 | ||
|
|
8c03d84793 | ||
|
|
c5acf28c4b | ||
|
|
a833d08d1f | ||
|
|
5103278f0a | ||
|
|
3a757698ba | ||
|
|
8765b989c4 | ||
|
|
a301e95e82 | ||
|
|
a56896e7ba | ||
|
|
2bd7346bb8 | ||
|
|
672dd499c3 | ||
|
|
7c82521e54 | ||
|
|
69dfb3d03b | ||
|
|
1714b51375 | ||
|
|
0e788fd3db | ||
|
|
bf26d311d6 | ||
|
|
cb1e0bcd82 | ||
|
|
a975293d2e | ||
|
|
6ce05e117c | ||
|
|
3b681a8ff0 | ||
|
|
b2b5cb1005 | ||
|
|
f77ed908aa | ||
|
|
c05490ea61 | ||
|
|
3ce50b7f90 | ||
|
|
3159c402a2 | ||
|
|
0518c3c215 | ||
|
|
213be3645f | ||
|
|
b634e6182d | ||
|
|
36ce494f76 | ||
|
|
9bb6b15f42 | ||
|
|
7c772b2fd2 | ||
|
|
7edf59841a | ||
|
|
0848eeb53f | ||
|
|
7fa51c87e3 | ||
|
|
bf04704e11 | ||
|
|
b289daa83e | ||
|
|
843d16dfb8 | ||
|
|
233e7ad14f | ||
|
|
dbfa3a4caa | ||
|
|
93b3e0b313 | ||
|
|
7e93330162 | ||
|
|
8861f58bf5 | ||
|
|
4edcaf87e8 | ||
|
|
7b96d2dbfb | ||
|
|
74a21208ff | ||
|
|
ad6dd43e04 | ||
|
|
e4179eb380 | ||
|
|
8f66fd1321 | ||
|
|
c735dc646d | ||
|
|
1022bad2fb | ||
|
|
f5531822c3 | ||
|
|
40ce9e4a88 | ||
|
|
e019afa472 | ||
|
|
a32c7373cc | ||
|
|
79fc37f093 | ||
|
|
8eedff85bd | ||
|
|
159a947f1b | ||
|
|
5eee77ea20 | ||
|
|
c90b8e3d07 | ||
|
|
acf97a2e1d | ||
|
|
84c156356b | ||
|
|
9a3f760b6c | ||
|
|
d1ad94324b | ||
|
|
69fb434def | ||
|
|
c448e56611 | ||
|
|
b8e6553a06 | ||
|
|
6fc4826b30 | ||
|
|
2f888d3abe | ||
|
|
0db05f62f1 | ||
|
|
255ca7ef99 | ||
|
|
6744a8648d | ||
|
|
7a0808ed5b | ||
|
|
5940ec7d62 | ||
|
|
535c881a95 | ||
|
|
986ad4e746 | ||
|
|
6204fe1a09 | ||
|
|
3cb73111bf | ||
|
|
1b872d66b7 | ||
|
|
891de8eea8 | ||
|
|
b0de7ce6f3 | ||
|
|
0f788efd0c | ||
|
|
72491e7d62 | ||
|
|
4b74c275bd | ||
|
|
3939a67bd3 | ||
|
|
ea700d8bb2 | ||
|
|
1212c6034a | ||
|
|
4f767080bf | ||
|
|
c4eeb7bdb0 | ||
|
|
17fff02dbb | ||
|
|
d30c64d2a6 | ||
|
|
6f6cf0189f | ||
|
|
93536ac7c2 | ||
|
|
94679b2d79 | ||
|
|
83fc4c3bc4 | ||
|
|
69f2f3dd0b | ||
|
|
b49a9a1098 | ||
|
|
f0e9b40e2c | ||
|
|
aaad9ae742 | ||
|
|
443eccc11e | ||
|
|
385dabbaae | ||
|
|
58d407be6b | ||
|
|
5fc7999813 | ||
|
|
856141de55 | ||
|
|
2a5e22e2c6 | ||
|
|
84e4bdef1e | ||
|
|
da110d01dd | ||
|
|
d9434a2a9f | ||
|
|
bd3222ad62 | ||
|
|
595bc988ec | ||
|
|
ea26100ec3 | ||
|
|
ff2e310a18 | ||
|
|
8d41edadce |
5
.gitignore
vendored
5
.gitignore
vendored
@@ -26,6 +26,9 @@ yarn-error.log
|
||||
|
||||
# tests
|
||||
/test
|
||||
/benchmarks/memory
|
||||
/coverage
|
||||
/.nyc_output
|
||||
build/config\.gypi
|
||||
/packages/graphql
|
||||
/benchmarks/memory
|
||||
build/config\.gypi
|
||||
|
||||
@@ -1,8 +1,8 @@
|
||||
language: node_js
|
||||
node_js:
|
||||
- "8"
|
||||
- "9"
|
||||
- "10"
|
||||
- "11"
|
||||
cache:
|
||||
directories:
|
||||
- "node_modules"
|
||||
|
||||
@@ -94,7 +94,7 @@ We cannot accept code without this.
|
||||
|
||||
1. Create your patch, **including appropriate test cases**.
|
||||
1. Follow our [Coding Rules](#rules).
|
||||
1. Run the full Nest test suite, as described in the [developer documentation][dev-doc],
|
||||
1. Run the full Nest test suite (see [common scripts](#common-scripts)),
|
||||
and ensure that all tests pass.
|
||||
1. Commit your changes using a descriptive commit message that follows our
|
||||
[commit message conventions](#commit). Adherence to these conventions
|
||||
@@ -174,7 +174,7 @@ $ sh scripts/prepare.sh
|
||||
|
||||
That will compile fresh packages and afterward, move them to all `sample` directories as well as integration tests.
|
||||
|
||||
### Commonly used NPM scripts
|
||||
### <a name="common-scripts"></a>Commonly used NPM scripts
|
||||
|
||||
```bash
|
||||
# build all packages and put them near to their source .ts files
|
||||
|
||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
||||
(The MIT License)
|
||||
|
||||
Copyright (c) 2017 Kamil Myśliwiec <http://kamilmysliwiec.com>
|
||||
Copyright (c) 2017-2019 Kamil Myśliwiec <http://kamilmysliwiec.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
|
||||
61
Readme.md
61
Readme.md
@@ -7,28 +7,29 @@
|
||||
[linux-image]: https://img.shields.io/travis/nestjs/nest/master.svg?label=linux
|
||||
[linux-url]: https://travis-ci.org/nestjs/nest
|
||||
|
||||
<p align="center">A progressive <a href="http://nodejs.org" target="blank">Node.js</a> framework for building efficient and scalable server-side applications, heavily inspired by <a href="https://angular.io" target="blank">Angular</a>.</p>
|
||||
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications, heavily inspired by <a href="https://angular.io" target="blank">Angular</a>.</p>
|
||||
<p align="center">
|
||||
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
|
||||
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
|
||||
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/dm/@nestjs/core.svg" alt="NPM Downloads" /></a>
|
||||
<a href="https://travis-ci.org/nestjs/nest"><img src="https://api.travis-ci.org/nestjs/nest.svg?branch=master" alt="Travis" /></a>
|
||||
<a href="https://travis-ci.org/nestjs/nest"><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"><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"><img src="https://badges.gitter.im/nestjs/nestjs.svg" alt="Gitter" /></a>
|
||||
<a href="https://opencollective.com/nest#backer"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
|
||||
<a href="https://opencollective.com/nest#sponsor"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
|
||||
<a href="https://paypal.me/kamilmysliwiec"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
|
||||
<a href="https://twitter.com/nestframework"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a>
|
||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
|
||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
|
||||
<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#9" 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://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>
|
||||
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
|
||||
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a>
|
||||
</p>
|
||||
<!--[](https://opencollective.com/nest#backer)
|
||||
[](https://opencollective.com/nest#sponsor)-->
|
||||
|
||||
## Description
|
||||
|
||||
<p>Nest is a framework for building efficient, scalable <a href="http://nodejs.org" target="_blank">Node.js</a> server-side applications. It uses modern JavaScript, is built with <a href="http://www.typescriptlang.org" target="_blank">TypeScript</a> (preserves compatibility with pure JavaScript) and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).</p>
|
||||
Nest is a framework for building efficient, scalable <a href="http://nodejs.org" target="_blank">Node.js</a> server-side applications. It uses modern JavaScript, is built with <a href="http://www.typescriptlang.org" target="_blank">TypeScript</a> (preserves compatibility with pure JavaScript) and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).
|
||||
|
||||
<p>Under the hood, Nest makes use of <a href="https://expressjs.com/" target="_blank">Express</a>, but also, provides compatibility with a wide range of other libraries, like e.g. <a href="https://github.com/fastify/fastify" target="blank">Fastify</a>, allowing for easy use of the myriad third-party plugins which are available.</p>
|
||||
<p>Under the hood, Nest makes use of <a href="https://expressjs.com/" target="_blank">Express</a>, but also, provides compatibility with a wide range of other libraries, like e.g. <a href="https://github.com/fastify/fastify" target="_blank">Fastify</a>, allowing for easy use of the myriad third-party plugins which are available.</p>
|
||||
|
||||
## Philosophy
|
||||
|
||||
@@ -40,30 +41,44 @@
|
||||
* To check out the [guide](https://docs.nestjs.com), visit [docs.nestjs.com](https://docs.nestjs.com). :books:
|
||||
* 要查看中文 [指南](readme_zh.md), 请访问 [docs.nestjs.cn](https://docs.nestjs.cn). :books:
|
||||
|
||||
## Consulting
|
||||
|
||||
With official support, you can get expert help straight from Nest core team. We provide dedicated technical support, migration strategies, advice on best practices (and design decisions), PR reviews, and team augmentation. Read more about [support here](https://docs.nestjs.com/enterprise).
|
||||
|
||||
## Support
|
||||
|
||||
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
|
||||
|
||||
#### Principal Sponsor
|
||||
|
||||
<a href="https://valor-software.com/"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="320" /></a>
|
||||
|
||||
#### Gold Sponsors
|
||||
|
||||
<a href="http://xtremis.com/"><img src="https://nestjs.com/img/logo-xtremis.svg" width="220" /></a>
|
||||
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="320" /></a>
|
||||
|
||||
#### Silver Sponsors
|
||||
<a href="https://neoteric.eu/"><img src="https://nestjs.com/img/neoteric-cut.png" width="120" /></a>
|
||||
<a href="http://gojob.com"><img src="http://nestjs.com/img/gojob-logo.png" valign="bottom" height="95" /></a> <a href="https://www.swingdev.io"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="150" /> </a>
|
||||
<a href="https://neoteric.eu/" target="_blank"><img src="https://nestjs.com/img/neoteric-cut.png" width="120" valign="middle" /></a>
|
||||
<a href="http://gojob.com" target="_blank"><img src="http://nestjs.com/img/gojob-logo.png" valign="middle" height="95" /></a>
|
||||
<a href="https://trilon.io" target="_blank"><img src="https://nestjs.com/img/trilon.svg" width="150" valign="middle" /></a>
|
||||
<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"><img src="https://nestjs.com/img/scalio-logo.svg" width="110" /></a> <a href="http://angularity.io"><img src="http://angularity.io/media/logo.svg" height="30" /></a> <!--<a href="https://keycdn.com"><img src="https://nestjs.com/img/keycdn.svg" height="30" /></a> --> <a href="https://hostpresto.com"><img src="https://nestjs.com/img/hostpresto.png" height="30" /></a> <a href="https://genuinebee.com/"><img src="https://nestjs.com/img/genuinebee.svg" height="38" /></a> <a href="http://architectnow.net/"><img src="https://nestjs.com/img/architectnow.png" height="24" /></a> <a href="https://quander.io/"><img src="https://nestjs.com/img/quander.png" height="28" /></a>
|
||||
<a href="https://www.swingdev.io" target="_blank"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="125" valign="middle" /> </a> <a href="https://blueanchor.io/" target="_blank"><img src="https://nestjs.com/img/blueanchor.png" width="180" valign="middle" /></a>
|
||||
<a href="https://www.novologic.com/" target="_blank"><img src="https://nestjs.com/img/novologic.png" width="130" valign="middle" /></a>
|
||||
<a href="https://scal.io" target="_blank"><img src="https://nestjs.com/img/scalio-logo.svg" width="100" valign="middle" /></a> <a href="http://angularity.io" target="_blank"><img src="http://angularity.io/media/logo.svg" height="26" valign="middle" /></a> <!--<a href="https://keycdn.com"><img src="https://nestjs.com/img/keycdn.svg" height="30" /></a> --> <a href="https://hostpresto.com" target="_blank"><img src="https://nestjs.com/img/hostpresto.png" height="30" valign="middle" /></a>
|
||||
|
||||
<a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" height="36" valign="middle" /></a> <a href="http://architectnow.net/" target="_blank"><img src="https://nestjs.com/img/architectnow.png" height="24" valign="middle" /></a> <a href="https://quander.io/" target="_blank"><img src="https://nestjs.com/img/quander.png" height="28" valign="middle" /></a> <a href="https://mantro.net/" target="_blank"><img src="https://nestjs.com/img/mantro-logo.svg" height="20" valign="middle" /></a> <a href="https://triplebyte.com/" target="_blank"><img src="https://nestjs.com/img/triplebyte.png" height="30" valign="middle" /></a>
|
||||
<a href="https://ever.co/" target="_blank"><img src="https://nestjs.com/img/ever-logo.png" height="20" valign="middle" /></a>
|
||||
<a href="https://buddy.works/" target="_blank"><img src="https://nestjs.com/img/buddy-logo.svg" height="35" valign="middle" /></a>
|
||||
<a href="https://blokt.com" target="_blank"><img src="https://nestjs.com/img/blokt-logo.png" height="31" valign="middle" /></a>
|
||||
<a href="https://reposit.co.uk/" target="_blank"><img src="https://nestjs.com/img/reposit-logo.png" height="28" valign="middle" /></a> <a href="https://yakaz.com/" target="_blank"><img src="https://nestjs.com/img/yakaz.png" width="80" valign="middle" /></a>
|
||||
<a href="https://nearpod.com/" target="_blank"><img src="https://nestjs.com/img/nearpod-logo.svg" width="120" valign="middle" /></a>
|
||||
<a href="https://clay.global/" target="_blank"><img src="https://nestjs.com/img/clay-logo.svg" width="90" valign="middle" /></a>
|
||||
<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"><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
|
||||
|
||||
|
||||
@@ -1,9 +1,14 @@
|
||||
'use strict';
|
||||
Object.defineProperty(exports, '__esModule', { value: true });
|
||||
const core_1 = require('@nestjs/core');
|
||||
const fastify_platform_1 = require('@nestjs/platform-fastify');
|
||||
const app_module_1 = require('./nest/app.module');
|
||||
core_1.NestFactory.create(app_module_1.AppModule, new core_1.FastifyAdapter(), {
|
||||
logger: false,
|
||||
bodyParser: false,
|
||||
}).then(app => app.listen(3000));
|
||||
core_1.NestFactory.create(
|
||||
app_module_1.AppModule,
|
||||
new fastify_platform_1.FastifyAdapter(),
|
||||
{
|
||||
logger: false,
|
||||
bodyParser: false,
|
||||
},
|
||||
).then(app => app.listen(3000));
|
||||
//# sourceMappingURL=main.js.map
|
||||
|
||||
@@ -7,8 +7,8 @@ var __decorate =
|
||||
c < 3
|
||||
? target
|
||||
: desc === null
|
||||
? (desc = Object.getOwnPropertyDescriptor(target, key))
|
||||
: desc,
|
||||
? (desc = Object.getOwnPropertyDescriptor(target, key))
|
||||
: desc,
|
||||
d;
|
||||
if (typeof Reflect === 'object' && typeof Reflect.decorate === 'function')
|
||||
r = Reflect.decorate(decorators, target, key, desc);
|
||||
@@ -42,9 +42,6 @@ __decorate(
|
||||
'root',
|
||||
null,
|
||||
);
|
||||
AppController = __decorate(
|
||||
[common_1.Controller({ scope: common_1.Scope.REQUEST })],
|
||||
AppController,
|
||||
);
|
||||
AppController = __decorate([common_1.Controller()], AppController);
|
||||
exports.AppController = AppController;
|
||||
//# sourceMappingURL=app.controller.js.map
|
||||
|
||||
@@ -23,8 +23,7 @@ services:
|
||||
- "9001:9001"
|
||||
restart: always
|
||||
mysql:
|
||||
image: mysql:5.7.22
|
||||
restart: always
|
||||
image: mysql:5.7.26
|
||||
environment:
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
MYSQL_DATABASE: test
|
||||
@@ -43,4 +42,4 @@ services:
|
||||
ports:
|
||||
- "15672:15672"
|
||||
- "5672:5672"
|
||||
tty: true
|
||||
tty: true
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*import { INestApplication } from '@nestjs/common';
|
||||
import { INestApplication } from '@nestjs/common';
|
||||
import { NestFactory } from '@nestjs/core';
|
||||
import * as request from 'supertest';
|
||||
import { AsyncClassApplicationModule } from '../src/async-options-class.module';
|
||||
@@ -36,4 +36,3 @@ describe('GraphQL (async class)', () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*import { INestApplication } from '@nestjs/common';
|
||||
import { INestApplication } from '@nestjs/common';
|
||||
import { NestFactory } from '@nestjs/core';
|
||||
import * as request from 'supertest';
|
||||
import { AsyncExistingApplicationModule } from '../src/async-options-existing.module';
|
||||
@@ -36,4 +36,3 @@ describe('GraphQL (async existing)', () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
*/
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/*import { INestApplication } from '@nestjs/common';
|
||||
import { INestApplication } from '@nestjs/common';
|
||||
import { NestFactory } from '@nestjs/core';
|
||||
import * as request from 'supertest';
|
||||
import { AsyncApplicationModule } from '../src/async-options.module';
|
||||
@@ -34,4 +34,3 @@ describe('GraphQL (async configuration)', () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
*/
|
||||
|
||||
60
integration/graphql/e2e/graphql-request-scoped.spec.ts
Normal file
60
integration/graphql/e2e/graphql-request-scoped.spec.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
import { INestApplication } from '@nestjs/common';
|
||||
import { GraphQLModule } from '@nestjs/graphql';
|
||||
import { Test } from '@nestjs/testing';
|
||||
import { expect } from 'chai';
|
||||
import { join } from 'path';
|
||||
import * as request from 'supertest';
|
||||
import { CatsRequestScopedService } from '../src/cats/cats-request-scoped.service';
|
||||
import { CatsModule } from '../src/cats/cats.module';
|
||||
|
||||
describe('GraphQL request scoped', () => {
|
||||
let app: INestApplication;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module = await Test.createTestingModule({
|
||||
imports: [
|
||||
CatsModule.enableRequestScope(),
|
||||
GraphQLModule.forRoot({
|
||||
typePaths: [join(__dirname, '..', 'src', '**', '*.graphql')],
|
||||
}),
|
||||
],
|
||||
}).compile();
|
||||
|
||||
app = module.createNestApplication();
|
||||
await app.init();
|
||||
|
||||
const performHttpCall = end =>
|
||||
request(app.getHttpServer())
|
||||
.post('/graphql')
|
||||
.send({
|
||||
operationName: null,
|
||||
variables: {},
|
||||
query: '{\n getCats {\n id\n }\n}\n',
|
||||
})
|
||||
.expect(200, {
|
||||
data: {
|
||||
getCats: [
|
||||
{
|
||||
id: 1,
|
||||
},
|
||||
],
|
||||
},
|
||||
})
|
||||
.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 resolver for each incoming request`, () => {
|
||||
expect(CatsRequestScopedService.COUNTER).to.be.eql(3);
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
@@ -1,4 +1,4 @@
|
||||
/*import { INestApplication } from '@nestjs/common';
|
||||
import { INestApplication } from '@nestjs/common';
|
||||
import { Test } from '@nestjs/testing';
|
||||
import * as request from 'supertest';
|
||||
import { ApplicationModule } from '../src/app.module';
|
||||
@@ -38,4 +38,3 @@ describe('GraphQL', () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
*/
|
||||
|
||||
2834
integration/graphql/package-lock.json
generated
2834
integration/graphql/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -9,21 +9,21 @@
|
||||
"start:prod": "node dist/main.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/common": "^5.1.0",
|
||||
"@nestjs/core": "^5.1.0",
|
||||
"@nestjs/graphql": "^5.0.0",
|
||||
"apollo-server-express": "^2.0.4",
|
||||
"graphql": "^0.13.2",
|
||||
"graphql-tools": "^2.11.0",
|
||||
"reflect-metadata": "^0.1.12",
|
||||
"rxjs": "^6.0.0",
|
||||
"subscriptions-transport-ws": "^0.9.5",
|
||||
"typescript": "^3.1.0",
|
||||
"ws": "^4.0.0"
|
||||
"@nestjs/common": "6.2.0",
|
||||
"@nestjs/core": "6.2.0",
|
||||
"@nestjs/graphql": "6.2.1",
|
||||
"apollo-server-express": "2.5.0",
|
||||
"graphql": "14.3.0",
|
||||
"graphql-tools": "4.0.4",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rxjs": "6.5.2",
|
||||
"subscriptions-transport-ws": "0.9.16",
|
||||
"typescript": "3.4.5",
|
||||
"ws": "7.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^7.0.41",
|
||||
"ts-node": "^6.0.0",
|
||||
"tslint": "^5.9.1"
|
||||
"@types/node": "7.10.6",
|
||||
"ts-node": "8.1.0",
|
||||
"tslint": "5.16.0"
|
||||
}
|
||||
}
|
||||
|
||||
25
integration/graphql/src/cats/cats-request-scoped.service.ts
Normal file
25
integration/graphql/src/cats/cats-request-scoped.service.ts
Normal file
@@ -0,0 +1,25 @@
|
||||
import { Injectable, Scope } from '@nestjs/common';
|
||||
import { Cat } from './interfaces/cat.interface';
|
||||
|
||||
@Injectable({ scope: Scope.REQUEST })
|
||||
export class CatsRequestScopedService {
|
||||
static COUNTER = 0;
|
||||
private readonly cats: Cat[] = [{ id: 1, name: 'Cat', age: 5 }];
|
||||
|
||||
constructor() {
|
||||
CatsRequestScopedService.COUNTER++;
|
||||
}
|
||||
|
||||
create(cat: Cat): Cat {
|
||||
this.cats.push(cat);
|
||||
return cat;
|
||||
}
|
||||
|
||||
findAll(): Cat[] {
|
||||
return this.cats;
|
||||
}
|
||||
|
||||
findOneById(id: number): Cat {
|
||||
return this.cats.find(cat => cat.id === id);
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,22 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { CatsService } from './cats.service';
|
||||
import { DynamicModule, Module, Scope } from '@nestjs/common';
|
||||
import { CatsRequestScopedService } from './cats-request-scoped.service';
|
||||
import { CatsResolvers } from './cats.resolvers';
|
||||
import { CatsService } from './cats.service';
|
||||
|
||||
@Module({
|
||||
providers: [CatsService, CatsResolvers],
|
||||
})
|
||||
export class CatsModule {}
|
||||
export class CatsModule {
|
||||
static enableRequestScope(): DynamicModule {
|
||||
return {
|
||||
module: CatsModule,
|
||||
providers: [
|
||||
{
|
||||
provide: CatsService,
|
||||
useClass: CatsRequestScopedService,
|
||||
scope: Scope.REQUEST,
|
||||
},
|
||||
],
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
@@ -34,8 +34,6 @@ export class CatsResolvers {
|
||||
|
||||
@Subscription('catCreated')
|
||||
catCreated() {
|
||||
return {
|
||||
subscribe: () => pubSub.asyncIterator('catCreated'),
|
||||
};
|
||||
return pubSub.asyncIterator('catCreated');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,8 +3,13 @@ import { Cat } from './interfaces/cat.interface';
|
||||
|
||||
@Injectable()
|
||||
export class CatsService {
|
||||
static COUNTER = 0;
|
||||
private readonly cats: Cat[] = [{ id: 1, name: 'Cat', age: 5 }];
|
||||
|
||||
constructor() {
|
||||
CatsService.COUNTER++;
|
||||
}
|
||||
|
||||
create(cat: Cat): Cat {
|
||||
this.cats.push(cat);
|
||||
return cat;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import * as request from 'supertest';
|
||||
import { HttpStatus, INestApplication } from '@nestjs/common';
|
||||
import { Test } from '@nestjs/testing';
|
||||
import { INestApplication, HttpStatus } from '@nestjs/common';
|
||||
import * as request from 'supertest';
|
||||
import { ErrorsController } from '../src/errors/errors.controller';
|
||||
|
||||
describe('Error messages', () => {
|
||||
@@ -10,8 +10,7 @@ describe('Error messages', () => {
|
||||
beforeEach(async () => {
|
||||
const module = await Test.createTestingModule({
|
||||
controllers: [ErrorsController],
|
||||
})
|
||||
.compile();
|
||||
}).compile();
|
||||
|
||||
app = module.createNestApplication();
|
||||
server = app.getHttpServer();
|
||||
@@ -25,7 +24,7 @@ describe('Error messages', () => {
|
||||
.expect({
|
||||
statusCode: 400,
|
||||
error: 'Bad Request',
|
||||
message: 'Integration test'
|
||||
message: 'Integration test',
|
||||
});
|
||||
});
|
||||
|
||||
@@ -36,7 +35,7 @@ describe('Error messages', () => {
|
||||
.expect({
|
||||
statusCode: 400,
|
||||
error: 'Bad Request',
|
||||
message: 'Integration test'
|
||||
message: 'Integration test',
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,20 +1,20 @@
|
||||
import {
|
||||
FastifyAdapter,
|
||||
INestFastifyApplication,
|
||||
NestFastifyApplication,
|
||||
} from '@nestjs/platform-fastify';
|
||||
import { Test } from '@nestjs/testing';
|
||||
import { expect } from 'chai';
|
||||
import { ApplicationModule } from '../src/app.module';
|
||||
|
||||
describe('Hello world (fastify adapter)', () => {
|
||||
let app: INestFastifyApplication;
|
||||
let app: NestFastifyApplication;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module = await Test.createTestingModule({
|
||||
imports: [ApplicationModule],
|
||||
}).compile();
|
||||
|
||||
app = module.createNestApplication<INestFastifyApplication>(
|
||||
app = module.createNestApplication<NestFastifyApplication>(
|
||||
new FastifyAdapter(),
|
||||
);
|
||||
await app.init();
|
||||
|
||||
@@ -28,6 +28,34 @@ export class TransformInterceptor {
|
||||
}
|
||||
}
|
||||
|
||||
@Injectable()
|
||||
export class StatusInterceptor {
|
||||
constructor(private statusCode: number) {}
|
||||
|
||||
intercept(context: ExecutionContext, next: CallHandler) {
|
||||
const ctx = context.switchToHttp();
|
||||
const res = ctx.getResponse();
|
||||
res.status(this.statusCode);
|
||||
return next.handle().pipe(map(data => ({ data })));
|
||||
}
|
||||
}
|
||||
|
||||
@Injectable()
|
||||
export class HeaderInterceptor {
|
||||
constructor(private headers: object) {}
|
||||
|
||||
intercept(context: ExecutionContext, next: CallHandler) {
|
||||
const ctx = context.switchToHttp();
|
||||
const res = ctx.getResponse();
|
||||
for (const key in this.headers) {
|
||||
if (this.headers.hasOwnProperty(key)) {
|
||||
res.header(key, this.headers[key]);
|
||||
}
|
||||
}
|
||||
return next.handle().pipe(map(data => ({ data })));
|
||||
}
|
||||
}
|
||||
|
||||
function createTestModule(interceptor) {
|
||||
return Test.createTestingModule({
|
||||
imports: [ApplicationModule],
|
||||
@@ -87,6 +115,33 @@ describe('Interceptors', () => {
|
||||
.expect(200, { data: 'Hello world!' });
|
||||
});
|
||||
|
||||
it(`should modify response status`, async () => {
|
||||
app = (await createTestModule(
|
||||
new StatusInterceptor(400),
|
||||
)).createNestApplication();
|
||||
|
||||
await app.init();
|
||||
return request(app.getHttpServer())
|
||||
.get('/hello')
|
||||
.expect(400, { data: 'Hello world!' });
|
||||
});
|
||||
|
||||
it(`should modify Authorization header`, async () => {
|
||||
const customHeaders = {
|
||||
Authorization: 'jwt',
|
||||
};
|
||||
|
||||
app = (await createTestModule(
|
||||
new HeaderInterceptor(customHeaders),
|
||||
)).createNestApplication();
|
||||
|
||||
await app.init();
|
||||
return request(app.getHttpServer())
|
||||
.get('/hello')
|
||||
.expect(200)
|
||||
.expect('Authorization', 'jwt');
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
|
||||
60
integration/hello-world/e2e/middleware-class.spec.ts
Normal file
60
integration/hello-world/e2e/middleware-class.spec.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
import {
|
||||
Controller,
|
||||
Get,
|
||||
INestApplication,
|
||||
Injectable,
|
||||
MiddlewareConsumer,
|
||||
Module,
|
||||
} from '@nestjs/common';
|
||||
import { Test } from '@nestjs/testing';
|
||||
import * as request from 'supertest';
|
||||
import { ApplicationModule } from '../src/app.module';
|
||||
|
||||
const RETURN_VALUE = 'test';
|
||||
|
||||
@Injectable()
|
||||
class Middleware {
|
||||
use(req, res, next) {
|
||||
res.send(RETURN_VALUE);
|
||||
}
|
||||
}
|
||||
|
||||
@Controller()
|
||||
class TestController {
|
||||
@Get('test')
|
||||
test() {
|
||||
return 'test';
|
||||
}
|
||||
}
|
||||
|
||||
@Module({
|
||||
imports: [ApplicationModule],
|
||||
controllers: [TestController],
|
||||
})
|
||||
class TestModule {
|
||||
configure(consumer: MiddlewareConsumer) {
|
||||
consumer.apply(Middleware).forRoutes('*');
|
||||
}
|
||||
}
|
||||
|
||||
describe('Middleware (class)', () => {
|
||||
let app: INestApplication;
|
||||
|
||||
beforeEach(async () => {
|
||||
app = (await Test.createTestingModule({
|
||||
imports: [TestModule],
|
||||
}).compile()).createNestApplication();
|
||||
|
||||
await app.init();
|
||||
});
|
||||
|
||||
it(`forRoutes(*)`, () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/hello')
|
||||
.expect(200, RETURN_VALUE);
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
69
integration/hello-world/e2e/middleware-fastify.spec.ts
Normal file
69
integration/hello-world/e2e/middleware-fastify.spec.ts
Normal file
@@ -0,0 +1,69 @@
|
||||
import { Controller, Get, MiddlewareConsumer, Module } from '@nestjs/common';
|
||||
import {
|
||||
FastifyAdapter,
|
||||
NestFastifyApplication,
|
||||
} from '@nestjs/platform-fastify';
|
||||
import { Test } from '@nestjs/testing';
|
||||
import { expect } from 'chai';
|
||||
import { ApplicationModule } from '../src/app.module';
|
||||
|
||||
const RETURN_VALUE = 'test';
|
||||
const SCOPED_VALUE = 'test_scoped';
|
||||
|
||||
@Controller()
|
||||
class TestController {
|
||||
@Get('test')
|
||||
test() {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
@Module({
|
||||
imports: [ApplicationModule],
|
||||
controllers: [TestController],
|
||||
})
|
||||
class TestModule {
|
||||
configure(consumer: MiddlewareConsumer) {
|
||||
consumer
|
||||
.apply((req, res, next) => res.end(SCOPED_VALUE))
|
||||
.forRoutes(TestController)
|
||||
.apply((req, res, next) => res.end(RETURN_VALUE))
|
||||
.forRoutes('*');
|
||||
}
|
||||
}
|
||||
|
||||
describe('Middleware (FastifyAdapter)', () => {
|
||||
let app: NestFastifyApplication;
|
||||
|
||||
beforeEach(async () => {
|
||||
app = (await Test.createTestingModule({
|
||||
imports: [TestModule],
|
||||
}).compile()).createNestApplication<NestFastifyApplication>(
|
||||
new FastifyAdapter(),
|
||||
);
|
||||
|
||||
await app.init();
|
||||
});
|
||||
|
||||
it(`forRoutes(*)`, () => {
|
||||
return app
|
||||
.inject({
|
||||
method: 'GET',
|
||||
url: '/hello',
|
||||
})
|
||||
.then(({ payload }) => expect(payload).to.be.eql(RETURN_VALUE));
|
||||
});
|
||||
|
||||
it(`forRoutes(TestController)`, () => {
|
||||
return app
|
||||
.inject({
|
||||
method: 'GET',
|
||||
url: '/test',
|
||||
})
|
||||
.then(({ payload }) => expect(payload).to.be.eql(SCOPED_VALUE));
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
77
integration/hello-world/e2e/middleware.spec.ts
Normal file
77
integration/hello-world/e2e/middleware.spec.ts
Normal file
@@ -0,0 +1,77 @@
|
||||
import {
|
||||
Controller,
|
||||
Get,
|
||||
INestApplication,
|
||||
MiddlewareConsumer,
|
||||
Module,
|
||||
} from '@nestjs/common';
|
||||
import { Test } from '@nestjs/testing';
|
||||
import * as request from 'supertest';
|
||||
import { ApplicationModule } from '../src/app.module';
|
||||
|
||||
const RETURN_VALUE = 'test';
|
||||
const SCOPED_VALUE = 'test_scoped';
|
||||
const WILDCARD_VALUE = 'test_wildcard';
|
||||
|
||||
@Controller()
|
||||
class TestController {
|
||||
@Get('test')
|
||||
test() {
|
||||
return RETURN_VALUE;
|
||||
}
|
||||
|
||||
@Get('tests/wildcard_nested')
|
||||
wildcard_nested() {
|
||||
return RETURN_VALUE;
|
||||
}
|
||||
}
|
||||
|
||||
@Module({
|
||||
imports: [ApplicationModule],
|
||||
controllers: [TestController],
|
||||
})
|
||||
class TestModule {
|
||||
configure(consumer: MiddlewareConsumer) {
|
||||
consumer
|
||||
.apply((req, res, next) => res.send(WILDCARD_VALUE))
|
||||
.forRoutes('tests/*')
|
||||
.apply((req, res, next) => res.send(SCOPED_VALUE))
|
||||
.forRoutes(TestController)
|
||||
.apply((req, res, next) => res.send(RETURN_VALUE))
|
||||
.forRoutes('*');
|
||||
}
|
||||
}
|
||||
|
||||
describe('Middleware', () => {
|
||||
let app: INestApplication;
|
||||
|
||||
beforeEach(async () => {
|
||||
app = (await Test.createTestingModule({
|
||||
imports: [TestModule],
|
||||
}).compile()).createNestApplication();
|
||||
|
||||
await app.init();
|
||||
});
|
||||
|
||||
it(`forRoutes(*)`, () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/hello')
|
||||
.expect(200, RETURN_VALUE);
|
||||
});
|
||||
|
||||
it(`forRoutes(TestController)`, () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/test')
|
||||
.expect(200, SCOPED_VALUE);
|
||||
});
|
||||
|
||||
it(`forRoutes(tests/*)`, () => {
|
||||
return request(app.getHttpServer())
|
||||
.get('/tests/wildcard')
|
||||
.expect(200, WILDCARD_VALUE);
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
1473
integration/hello-world/package-lock.json
generated
1473
integration/hello-world/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -7,21 +7,21 @@
|
||||
"start": "ts-node src/main"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/common": "^5.0.0",
|
||||
"@nestjs/core": "^5.0.0",
|
||||
"@nestjs/microservices": "^5.0.0",
|
||||
"@nestjs/testing": "^5.0.0",
|
||||
"@nestjs/websockets": "^5.0.0",
|
||||
"class-transformer": "^0.1.7",
|
||||
"class-validator": "^0.7.2",
|
||||
"fastify": "^1.1.1",
|
||||
"reflect-metadata": "^0.1.12",
|
||||
"rxjs": "^6.0.0",
|
||||
"typescript": "^3.1.0"
|
||||
"@nestjs/common": "6.2.0",
|
||||
"@nestjs/core": "6.2.0",
|
||||
"@nestjs/microservices": "6.2.0",
|
||||
"@nestjs/testing": "6.2.0",
|
||||
"@nestjs/websockets": "6.2.0",
|
||||
"class-transformer": "0.2.2",
|
||||
"class-validator": "0.9.1",
|
||||
"fastify": "2.3.0",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rxjs": "6.5.2",
|
||||
"typescript": "3.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^7.0.41",
|
||||
"supertest": "^3.0.0",
|
||||
"ts-node": "^6.0.0"
|
||||
"@types/node": "7.10.6",
|
||||
"supertest": "4.0.2",
|
||||
"ts-node": "8.1.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
import { HelloService } from './hello.service';
|
||||
import { Controller, Get, Header, Param } from '@nestjs/common';
|
||||
import { Observable, of } from 'rxjs';
|
||||
import { HelloService } from './hello.service';
|
||||
import { UserByIdPipe } from './users/user-by-id.pipe';
|
||||
|
||||
@Controller('hello')
|
||||
|
||||
21
integration/hooks/.gitignore
vendored
Normal file
21
integration/hooks/.gitignore
vendored
Normal file
@@ -0,0 +1,21 @@
|
||||
# dependencies
|
||||
/node_modules
|
||||
|
||||
# IDE
|
||||
/.idea
|
||||
/.awcache
|
||||
/.vscode
|
||||
|
||||
# misc
|
||||
npm-debug.log
|
||||
|
||||
# example
|
||||
/quick-start
|
||||
|
||||
# tests
|
||||
/test
|
||||
/coverage
|
||||
/.nyc_output
|
||||
|
||||
# dist
|
||||
/dist
|
||||
43
integration/hooks/e2e/lifecycle-hook-order.spec.ts
Normal file
43
integration/hooks/e2e/lifecycle-hook-order.spec.ts
Normal file
@@ -0,0 +1,43 @@
|
||||
import { Test } from '@nestjs/testing';
|
||||
import { expect } from 'chai';
|
||||
import * as Sinon from 'sinon';
|
||||
import {
|
||||
Injectable,
|
||||
OnApplicationBootstrap,
|
||||
OnApplicationShutdown,
|
||||
OnModuleDestroy,
|
||||
OnModuleInit,
|
||||
} from '@nestjs/common';
|
||||
|
||||
@Injectable()
|
||||
class TestInjectable
|
||||
implements
|
||||
OnApplicationBootstrap,
|
||||
OnModuleInit,
|
||||
OnModuleDestroy,
|
||||
OnApplicationShutdown {
|
||||
onApplicationBootstrap = Sinon.spy();
|
||||
onApplicationShutdown = Sinon.spy();
|
||||
onModuleDestroy = Sinon.spy();
|
||||
onModuleInit = Sinon.spy();
|
||||
}
|
||||
|
||||
describe('Lifecycle Hook Order', () => {
|
||||
it('should call the lifecycle hooks in the correct order', async () => {
|
||||
const module = await Test.createTestingModule({
|
||||
providers: [TestInjectable],
|
||||
}).compile();
|
||||
|
||||
const app = module.createNestApplication();
|
||||
await app.init();
|
||||
await app.close();
|
||||
|
||||
const instance = module.get(TestInjectable);
|
||||
Sinon.assert.callOrder(
|
||||
instance.onModuleInit,
|
||||
instance.onApplicationBootstrap,
|
||||
instance.onModuleDestroy,
|
||||
instance.onApplicationShutdown,
|
||||
);
|
||||
});
|
||||
});
|
||||
22
integration/hooks/e2e/on-app-boostrap.spec.ts
Normal file
22
integration/hooks/e2e/on-app-boostrap.spec.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { Test } from '@nestjs/testing';
|
||||
import { expect } from 'chai';
|
||||
import * as Sinon from 'sinon';
|
||||
import { Injectable, OnApplicationBootstrap } from '@nestjs/common';
|
||||
|
||||
@Injectable()
|
||||
class TestInjectable implements OnApplicationBootstrap {
|
||||
onApplicationBootstrap = Sinon.spy();
|
||||
}
|
||||
|
||||
describe('OnApplicationBootstrap', () => {
|
||||
it('should call onApplicationBootstrap when application starts', async () => {
|
||||
const module = await Test.createTestingModule({
|
||||
providers: [TestInjectable],
|
||||
}).compile();
|
||||
|
||||
const app = module.createNestApplication();
|
||||
await app.init();
|
||||
const instance = module.get(TestInjectable);
|
||||
expect(instance.onApplicationBootstrap.called).to.be.true;
|
||||
});
|
||||
});
|
||||
48
integration/hooks/e2e/on-app-shutdown.spec.ts
Normal file
48
integration/hooks/e2e/on-app-shutdown.spec.ts
Normal file
@@ -0,0 +1,48 @@
|
||||
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 { join } from 'path';
|
||||
|
||||
@Injectable()
|
||||
class TestInjectable implements OnApplicationShutdown {
|
||||
onApplicationShutdown = Sinon.spy();
|
||||
}
|
||||
|
||||
describe('OnApplicationShutdown', () => {
|
||||
it('should call onApplicationShutdown when application closes', async () => {
|
||||
const module = await Test.createTestingModule({
|
||||
providers: [TestInjectable],
|
||||
}).compile();
|
||||
|
||||
const app = module.createNestApplication();
|
||||
await app.close();
|
||||
const instance = module.get(TestInjectable);
|
||||
expect(instance.onApplicationShutdown.called).to.be.true;
|
||||
});
|
||||
|
||||
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');
|
||||
done();
|
||||
});
|
||||
|
||||
it('should call onApplicationShutdown if a specific shutdown signal gets invoked', done => {
|
||||
const result = spawnSync('ts-node', [join(__dirname, '../src/main.ts'), 'SIGINT', 'SIGINT']);
|
||||
expect(result.stdout.toString().trim()).to.be.eq('Signal SIGINT');
|
||||
done();
|
||||
});
|
||||
|
||||
it('should ignore system signals which are not specified', done => {
|
||||
const result = spawnSync('ts-node', [join(__dirname, '../src/main.ts'), 'SIGINT', 'SIGHUP']);
|
||||
expect(result.stdout.toString().trim()).to.be.eq('');
|
||||
done();
|
||||
});
|
||||
|
||||
it('should ignore system signals if "enableShutdownHooks" was not called', done => {
|
||||
const result = spawnSync('ts-node', [join(__dirname, '../src/main.ts'), 'SIGINT', 'NONE']);
|
||||
expect(result.stdout.toString().trim()).to.be.eq('');
|
||||
done();
|
||||
});
|
||||
});
|
||||
22
integration/hooks/e2e/on-module-destroy.spec.ts
Normal file
22
integration/hooks/e2e/on-module-destroy.spec.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { Test } from '@nestjs/testing';
|
||||
import { expect } from 'chai';
|
||||
import * as Sinon from 'sinon';
|
||||
import { Injectable, OnModuleDestroy } from '@nestjs/common';
|
||||
|
||||
@Injectable()
|
||||
class TestInjectable implements OnModuleDestroy {
|
||||
onModuleDestroy = Sinon.spy();
|
||||
}
|
||||
|
||||
describe('OnModuleDestroy', () => {
|
||||
it('should call onModuleDestroy when application closes', async () => {
|
||||
const module = await Test.createTestingModule({
|
||||
providers: [TestInjectable],
|
||||
}).compile();
|
||||
|
||||
const app = module.createNestApplication();
|
||||
await app.close();
|
||||
const instance = module.get(TestInjectable);
|
||||
expect(instance.onModuleDestroy.called).to.be.true;
|
||||
});
|
||||
});
|
||||
22
integration/hooks/e2e/on-module-init.spec.ts
Normal file
22
integration/hooks/e2e/on-module-init.spec.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { Test } from '@nestjs/testing';
|
||||
import { expect } from 'chai';
|
||||
import * as Sinon from 'sinon';
|
||||
import { Injectable, OnModuleInit } from '@nestjs/common';
|
||||
|
||||
@Injectable()
|
||||
class TestInjectable implements OnModuleInit {
|
||||
onModuleInit = Sinon.spy();
|
||||
}
|
||||
|
||||
describe('OnModuleInit', () => {
|
||||
it('should call onModuleInit when application starts', async () => {
|
||||
const module = await Test.createTestingModule({
|
||||
providers: [TestInjectable],
|
||||
}).compile();
|
||||
|
||||
const app = module.createNestApplication();
|
||||
await app.init();
|
||||
const instance = module.get(TestInjectable);
|
||||
expect(instance.onModuleInit.called).to.be.true;
|
||||
});
|
||||
});
|
||||
568
integration/hooks/package-lock.json
generated
Normal file
568
integration/hooks/package-lock.json
generated
Normal file
@@ -0,0 +1,568 @@
|
||||
{
|
||||
"name": "nest-typescript-starter",
|
||||
"version": "1.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@nestjs/common": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.2.0.tgz",
|
||||
"integrity": "sha512-0svQuCrG6ofMYgHzk/GzJ+vpIkLq4vZmTeww1qLipggS40IjQ0+NzwEBOTr6TeHVDmsM2YDmIU1DJiaGy2o9Hw==",
|
||||
"requires": {
|
||||
"axios": "0.18.0",
|
||||
"cli-color": "1.4.0",
|
||||
"uuid": "3.3.2"
|
||||
}
|
||||
},
|
||||
"@nestjs/core": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.2.0.tgz",
|
||||
"integrity": "sha512-K5Wje2unjStkA7AG5sTSD9trx2BEf8asL5xOFT4DwG+ICB04JLebTwqwbQNi3RNZ3buL/pXNXIOOleOgqK7fGw==",
|
||||
"requires": {
|
||||
"@nuxtjs/opencollective": "0.2.1",
|
||||
"fast-safe-stringify": "2.0.6",
|
||||
"iterare": "1.1.2",
|
||||
"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==",
|
||||
"requires": {
|
||||
"chalk": "^2.4.1",
|
||||
"consola": "^2.3.0",
|
||||
"node-fetch": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "7.10.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.6.tgz",
|
||||
"integrity": "sha512-d0BOAicT0tEdbdVQlLGOVul1kvg6YvbaADRCThGCz5NJ0e9r00SofcR1x69hmlCyrHuB6jd4cKzL9bMLjPnpAA==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
||||
},
|
||||
"ansi-styles": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||
"requires": {
|
||||
"color-convert": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"arg": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz",
|
||||
"integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==",
|
||||
"dev": true
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
||||
"dev": true
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
|
||||
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
|
||||
"requires": {
|
||||
"follow-redirects": "^1.3.0",
|
||||
"is-buffer": "^1.1.5"
|
||||
}
|
||||
},
|
||||
"buffer-from": {
|
||||
"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
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
},
|
||||
"class-transformer": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.2.tgz",
|
||||
"integrity": "sha512-wRKNNvdrSTOYut0ksO1/PTXFPTscbuGRB5R85FfdUuydGI+nXGPYeAByoifrfHFwadI2G4a7IQ5MXp9gnWNjFQ=="
|
||||
},
|
||||
"class-validator": {
|
||||
"version": "0.9.1",
|
||||
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.9.1.tgz",
|
||||
"integrity": "sha512-3wApflrd3ywVZyx4jaasGoFt8pmo4aGLPPAEKCKCsTRWVGPilahD88q3jQjRQwja50rl9a7rsP5LAxJYwGK8/Q==",
|
||||
"requires": {
|
||||
"google-libphonenumber": "^3.1.6",
|
||||
"validator": "10.4.0"
|
||||
}
|
||||
},
|
||||
"cli-color": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz",
|
||||
"integrity": "sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==",
|
||||
"requires": {
|
||||
"ansi-regex": "^2.1.1",
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.46",
|
||||
"es6-iterator": "^2.0.3",
|
||||
"memoizee": "^0.4.14",
|
||||
"timers-ext": "^0.1.5"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
||||
"requires": {
|
||||
"color-name": "1.1.3"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
|
||||
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"component-emitter": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
|
||||
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
|
||||
"dev": true
|
||||
},
|
||||
"consola": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/consola/-/consola-2.6.1.tgz",
|
||||
"integrity": "sha512-vt35owQG6OxYDJVaViQ4aFgOK+b98hIvs+R5CWkKgpO8rTPyaYwlMadZ7oZcjnWz1/+u4czDnrcogFr5AtrRug=="
|
||||
},
|
||||
"cookiejar": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
|
||||
"integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==",
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
||||
"dev": true
|
||||
},
|
||||
"d": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
|
||||
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
|
||||
"requires": {
|
||||
"es5-ext": "^0.10.9"
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||
"dev": true
|
||||
},
|
||||
"diff": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
|
||||
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
|
||||
"dev": true
|
||||
},
|
||||
"es5-ext": {
|
||||
"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",
|
||||
"next-tick": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"es6-iterator": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
|
||||
"integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.35",
|
||||
"es6-symbol": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"es6-symbol": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
|
||||
"integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
},
|
||||
"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=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.14",
|
||||
"es6-iterator": "^2.0.1",
|
||||
"es6-symbol": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
|
||||
},
|
||||
"event-emitter": {
|
||||
"version": "0.3.5",
|
||||
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
|
||||
"integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-safe-stringify": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz",
|
||||
"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==",
|
||||
"requires": {
|
||||
"debug": "^3.2.6"
|
||||
}
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"formidable": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz",
|
||||
"integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==",
|
||||
"dev": true
|
||||
},
|
||||
"google-libphonenumber": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/google-libphonenumber/-/google-libphonenumber-3.2.2.tgz",
|
||||
"integrity": "sha512-ubjGeosYPeusjYbUHy76lCniGTTI0k1rIFc+uKBX+jHQLDmWOSUtlFUxaeoLJ+Y+PAMM6dWp+C1HjHx5BI8kEw=="
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
||||
"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=="
|
||||
},
|
||||
"is-promise": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
|
||||
"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=="
|
||||
},
|
||||
"lru-queue": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
|
||||
"integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
|
||||
"requires": {
|
||||
"es5-ext": "~0.10.2"
|
||||
}
|
||||
},
|
||||
"make-error": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
|
||||
"integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
|
||||
"dev": true
|
||||
},
|
||||
"memoizee": {
|
||||
"version": "0.4.14",
|
||||
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz",
|
||||
"integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.45",
|
||||
"es6-weak-map": "^2.0.2",
|
||||
"event-emitter": "^0.3.5",
|
||||
"is-promise": "^2.1",
|
||||
"lru-queue": "0.1",
|
||||
"next-tick": "1",
|
||||
"timers-ext": "^0.1.5"
|
||||
}
|
||||
},
|
||||
"methods": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
||||
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
|
||||
"dev": true
|
||||
},
|
||||
"mime": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
||||
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.38.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
|
||||
"integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.22",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
|
||||
"integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-db": "~1.38.0"
|
||||
}
|
||||
},
|
||||
"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=="
|
||||
},
|
||||
"next-tick": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
|
||||
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.5.0.tgz",
|
||||
"integrity": "sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw=="
|
||||
},
|
||||
"object-hash": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz",
|
||||
"integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="
|
||||
},
|
||||
"optional": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz",
|
||||
"integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw=="
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
|
||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
||||
"dev": true
|
||||
},
|
||||
"reflect-metadata": {
|
||||
"version": "0.1.13",
|
||||
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
|
||||
"integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
|
||||
},
|
||||
"rxjs": {
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map-support": {
|
||||
"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",
|
||||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"superagent": {
|
||||
"version": "3.8.3",
|
||||
"resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz",
|
||||
"integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"component-emitter": "^1.2.0",
|
||||
"cookiejar": "^2.1.0",
|
||||
"debug": "^3.1.0",
|
||||
"extend": "^3.0.0",
|
||||
"form-data": "^2.3.1",
|
||||
"formidable": "^1.2.0",
|
||||
"methods": "^1.1.1",
|
||||
"mime": "^1.4.1",
|
||||
"qs": "^6.5.1",
|
||||
"readable-stream": "^2.3.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
|
||||
"dev": true
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.6",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
||||
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~2.0.0",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.1.1",
|
||||
"util-deprecate": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"supertest": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/supertest/-/supertest-4.0.2.tgz",
|
||||
"integrity": "sha512-1BAbvrOZsGA3YTCWqbmh14L0YEq0EGICX/nBnfkfVJn7SrxQV1I3pMYjSzG9y/7ZU2V9dWqyqk2POwxlb09duQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"methods": "^1.1.2",
|
||||
"superagent": "^3.8.3"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"requires": {
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"timers-ext": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
|
||||
"integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
|
||||
"requires": {
|
||||
"es5-ext": "~0.10.46",
|
||||
"next-tick": "1"
|
||||
}
|
||||
},
|
||||
"ts-node": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.1.0.tgz",
|
||||
"integrity": "sha512-34jpuOrxDuf+O6iW1JpgTRDFynUZ1iEqtYruBqh35gICNjN8x+LpVcPAcwzLPi9VU6mdA3ym+x233nZmZp445A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"arg": "^4.1.0",
|
||||
"diff": "^3.1.0",
|
||||
"make-error": "^1.1.1",
|
||||
"source-map-support": "^0.5.6",
|
||||
"yn": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
|
||||
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
|
||||
},
|
||||
"typescript": {
|
||||
"version": "3.4.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz",
|
||||
"integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw=="
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
|
||||
"dev": true
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
|
||||
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
|
||||
},
|
||||
"validator": {
|
||||
"version": "10.4.0",
|
||||
"resolved": "https://registry.npmjs.org/validator/-/validator-10.4.0.tgz",
|
||||
"integrity": "sha512-Q/wBy3LB1uOyssgNlXSRmaf22NxjvDNZM2MtIQ4jaEOAB61xsh1TQxsq1CgzUMBV1lDrVMogIh8GjG1DYW0zLg=="
|
||||
},
|
||||
"yn": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz",
|
||||
"integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
23
integration/hooks/package.json
Normal file
23
integration/hooks/package.json
Normal file
@@ -0,0 +1,23 @@
|
||||
{
|
||||
"name": "nest-typescript-starter",
|
||||
"version": "1.0.0",
|
||||
"description": "Nest TypeScript starter repository",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"start": "ts-node src/main"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/common": "6.2.0",
|
||||
"@nestjs/core": "6.2.0",
|
||||
"class-transformer": "0.2.2",
|
||||
"class-validator": "0.9.1",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rxjs": "6.5.2",
|
||||
"typescript": "3.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "7.10.6",
|
||||
"supertest": "4.0.2",
|
||||
"ts-node": "8.1.0"
|
||||
}
|
||||
}
|
||||
31
integration/hooks/src/main.ts
Normal file
31
integration/hooks/src/main.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { Injectable, OnApplicationShutdown, Module } from '@nestjs/common';
|
||||
import { NestFactory } from '@nestjs/core';
|
||||
const SIGNAL = process.argv[2];
|
||||
const SIGNAL_TO_LISTEN = process.argv[3];
|
||||
|
||||
@Injectable()
|
||||
class TestInjectable implements OnApplicationShutdown {
|
||||
onApplicationShutdown(signal: string) {
|
||||
console.log('Signal ' + signal);
|
||||
}
|
||||
}
|
||||
|
||||
@Module({
|
||||
providers: [TestInjectable],
|
||||
})
|
||||
class AppModule { }
|
||||
|
||||
async function bootstrap() {
|
||||
const app = await NestFactory.create(AppModule, { logger: true });
|
||||
|
||||
if (SIGNAL_TO_LISTEN && SIGNAL_TO_LISTEN !== 'NONE') {
|
||||
app.enableShutdownHooks([SIGNAL_TO_LISTEN]);
|
||||
} else if (SIGNAL_TO_LISTEN !== 'NONE') {
|
||||
app.enableShutdownHooks();
|
||||
}
|
||||
|
||||
await app.listen(1800);
|
||||
process.kill(process.pid, SIGNAL);
|
||||
}
|
||||
|
||||
bootstrap();
|
||||
22
integration/hooks/tsconfig.json
Normal file
22
integration/hooks/tsconfig.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"declaration": false,
|
||||
"noImplicitAny": false,
|
||||
"removeComments": true,
|
||||
"noLib": false,
|
||||
"emitDecoratorMetadata": true,
|
||||
"experimentalDecorators": true,
|
||||
"target": "es6",
|
||||
"sourceMap": true,
|
||||
"allowJs": true,
|
||||
"outDir": "./dist"
|
||||
},
|
||||
"include": [
|
||||
"src/**/*",
|
||||
"e2e/**/*"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
]
|
||||
}
|
||||
53
integration/hooks/tslint.json
Normal file
53
integration/hooks/tslint.json
Normal file
@@ -0,0 +1,53 @@
|
||||
{
|
||||
"defaultSeverity": "error",
|
||||
"extends": [
|
||||
"tslint:recommended"
|
||||
],
|
||||
"jsRules": {
|
||||
"no-unused-expression": true
|
||||
},
|
||||
"rules": {
|
||||
"eofline": false,
|
||||
"quotemark": [
|
||||
true,
|
||||
"single"
|
||||
],
|
||||
"ordered-imports": [
|
||||
false
|
||||
],
|
||||
"max-line-length": [
|
||||
150
|
||||
],
|
||||
"member-ordering": [
|
||||
false
|
||||
],
|
||||
"curly": false,
|
||||
"interface-name": [
|
||||
false
|
||||
],
|
||||
"array-type": [
|
||||
false
|
||||
],
|
||||
"member-access": [
|
||||
false
|
||||
],
|
||||
"no-empty-interface": false,
|
||||
"no-empty": false,
|
||||
"arrow-parens": false,
|
||||
"object-literal-sort-keys": false,
|
||||
"no-unused-expression": false,
|
||||
"max-classes-per-file": [
|
||||
false
|
||||
],
|
||||
"variable-name": [
|
||||
false
|
||||
],
|
||||
"one-line": [
|
||||
false
|
||||
],
|
||||
"one-variable-per-declaration": [
|
||||
false
|
||||
]
|
||||
},
|
||||
"rulesDirectory": []
|
||||
}
|
||||
594
integration/injector/package-lock.json
generated
594
integration/injector/package-lock.json
generated
@@ -4,18 +4,596 @@
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"rxjs": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.0.0.tgz",
|
||||
"integrity": "sha512-2MgLQr1zvks8+Kip4T6hcJdiBhV+SIvxguoWjhwtSpNPTp/5e09HJbgclCwR/nW0yWzhubM+6Q0prl8G5RuoBA==",
|
||||
"@nestjs/common": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.2.0.tgz",
|
||||
"integrity": "sha512-0svQuCrG6ofMYgHzk/GzJ+vpIkLq4vZmTeww1qLipggS40IjQ0+NzwEBOTr6TeHVDmsM2YDmIU1DJiaGy2o9Hw==",
|
||||
"requires": {
|
||||
"tslib": "1.9.0"
|
||||
"axios": "0.18.0",
|
||||
"cli-color": "1.4.0",
|
||||
"uuid": "3.3.2"
|
||||
}
|
||||
},
|
||||
"@nestjs/core": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.2.0.tgz",
|
||||
"integrity": "sha512-K5Wje2unjStkA7AG5sTSD9trx2BEf8asL5xOFT4DwG+ICB04JLebTwqwbQNi3RNZ3buL/pXNXIOOleOgqK7fGw==",
|
||||
"requires": {
|
||||
"@nuxtjs/opencollective": "0.2.1",
|
||||
"fast-safe-stringify": "2.0.6",
|
||||
"iterare": "1.1.2",
|
||||
"object-hash": "1.3.1",
|
||||
"optional": "0.1.4",
|
||||
"uuid": "3.3.2"
|
||||
}
|
||||
},
|
||||
"@nestjs/microservices": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-6.2.0.tgz",
|
||||
"integrity": "sha512-F4DNhF9qfKBL7v2toz4rlgfeuy8dVXslBNj0lFWDDjoANsYN5WYQVW5ygLbRkyb2ldlA/yBwfx/ULSBUHAvjZg==",
|
||||
"requires": {
|
||||
"iterare": "1.1.2",
|
||||
"json-socket": "0.3.0",
|
||||
"optional": "0.1.4"
|
||||
}
|
||||
},
|
||||
"@nestjs/testing": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-6.2.0.tgz",
|
||||
"integrity": "sha512-sAdXmZugvhYyp6tze5FdcH6tuIoDI0R8l7nI+PFDXuwxUSvfm8eHOloRbmYRD8ULGfY6OEvmO5uzoz/73IcMMw==",
|
||||
"requires": {
|
||||
"optional": "0.1.4"
|
||||
}
|
||||
},
|
||||
"@nestjs/websockets": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-6.2.0.tgz",
|
||||
"integrity": "sha512-WMB97lgbrVy9XZAR5PiXcvGI8rIDA48/qlkuoeK5C64hDiM2F2C29PXidCR0AK+8PDkLTsp6tVJtkzpycQL5dw==",
|
||||
"requires": {
|
||||
"iterare": "1.1.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==",
|
||||
"requires": {
|
||||
"chalk": "^2.4.1",
|
||||
"consola": "^2.3.0",
|
||||
"node-fetch": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "7.10.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.6.tgz",
|
||||
"integrity": "sha512-d0BOAicT0tEdbdVQlLGOVul1kvg6YvbaADRCThGCz5NJ0e9r00SofcR1x69hmlCyrHuB6jd4cKzL9bMLjPnpAA==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
||||
},
|
||||
"ansi-styles": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||
"requires": {
|
||||
"color-convert": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"arg": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz",
|
||||
"integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==",
|
||||
"dev": true
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
||||
"dev": true
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
|
||||
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
|
||||
"requires": {
|
||||
"follow-redirects": "^1.3.0",
|
||||
"is-buffer": "^1.1.5"
|
||||
}
|
||||
},
|
||||
"buffer-from": {
|
||||
"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
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
},
|
||||
"class-transformer": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.2.tgz",
|
||||
"integrity": "sha512-wRKNNvdrSTOYut0ksO1/PTXFPTscbuGRB5R85FfdUuydGI+nXGPYeAByoifrfHFwadI2G4a7IQ5MXp9gnWNjFQ=="
|
||||
},
|
||||
"class-validator": {
|
||||
"version": "0.9.1",
|
||||
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.9.1.tgz",
|
||||
"integrity": "sha512-3wApflrd3ywVZyx4jaasGoFt8pmo4aGLPPAEKCKCsTRWVGPilahD88q3jQjRQwja50rl9a7rsP5LAxJYwGK8/Q==",
|
||||
"requires": {
|
||||
"google-libphonenumber": "^3.1.6",
|
||||
"validator": "10.4.0"
|
||||
}
|
||||
},
|
||||
"cli-color": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz",
|
||||
"integrity": "sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==",
|
||||
"requires": {
|
||||
"ansi-regex": "^2.1.1",
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.46",
|
||||
"es6-iterator": "^2.0.3",
|
||||
"memoizee": "^0.4.14",
|
||||
"timers-ext": "^0.1.5"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
||||
"requires": {
|
||||
"color-name": "1.1.3"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
|
||||
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"component-emitter": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
|
||||
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
|
||||
"dev": true
|
||||
},
|
||||
"consola": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/consola/-/consola-2.6.1.tgz",
|
||||
"integrity": "sha512-vt35owQG6OxYDJVaViQ4aFgOK+b98hIvs+R5CWkKgpO8rTPyaYwlMadZ7oZcjnWz1/+u4czDnrcogFr5AtrRug=="
|
||||
},
|
||||
"cookiejar": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
|
||||
"integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==",
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
||||
"dev": true
|
||||
},
|
||||
"d": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
|
||||
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
|
||||
"requires": {
|
||||
"es5-ext": "^0.10.9"
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||
"dev": true
|
||||
},
|
||||
"diff": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
|
||||
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
|
||||
"dev": true
|
||||
},
|
||||
"es5-ext": {
|
||||
"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",
|
||||
"next-tick": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"es6-iterator": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
|
||||
"integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.35",
|
||||
"es6-symbol": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"es6-symbol": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
|
||||
"integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
},
|
||||
"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=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.14",
|
||||
"es6-iterator": "^2.0.1",
|
||||
"es6-symbol": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
|
||||
},
|
||||
"event-emitter": {
|
||||
"version": "0.3.5",
|
||||
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
|
||||
"integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-safe-stringify": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz",
|
||||
"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==",
|
||||
"requires": {
|
||||
"debug": "^3.2.6"
|
||||
}
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"formidable": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz",
|
||||
"integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==",
|
||||
"dev": true
|
||||
},
|
||||
"google-libphonenumber": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/google-libphonenumber/-/google-libphonenumber-3.2.2.tgz",
|
||||
"integrity": "sha512-ubjGeosYPeusjYbUHy76lCniGTTI0k1rIFc+uKBX+jHQLDmWOSUtlFUxaeoLJ+Y+PAMM6dWp+C1HjHx5BI8kEw=="
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
||||
"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=="
|
||||
},
|
||||
"is-promise": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
|
||||
"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=="
|
||||
},
|
||||
"json-socket": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/json-socket/-/json-socket-0.3.0.tgz",
|
||||
"integrity": "sha512-jc8ZbUnYIWdxERFWQKVgwSLkGSe+kyzvmYxwNaRgx/c8NNyuHes4UHnPM3LUrAFXUx1BhNJ94n1h/KCRlbvV0g=="
|
||||
},
|
||||
"lru-queue": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
|
||||
"integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
|
||||
"requires": {
|
||||
"es5-ext": "~0.10.2"
|
||||
}
|
||||
},
|
||||
"make-error": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
|
||||
"integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
|
||||
"dev": true
|
||||
},
|
||||
"memoizee": {
|
||||
"version": "0.4.14",
|
||||
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz",
|
||||
"integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.45",
|
||||
"es6-weak-map": "^2.0.2",
|
||||
"event-emitter": "^0.3.5",
|
||||
"is-promise": "^2.1",
|
||||
"lru-queue": "0.1",
|
||||
"next-tick": "1",
|
||||
"timers-ext": "^0.1.5"
|
||||
}
|
||||
},
|
||||
"methods": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
||||
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
|
||||
"dev": true
|
||||
},
|
||||
"mime": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
||||
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.38.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
|
||||
"integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.22",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
|
||||
"integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-db": "~1.38.0"
|
||||
}
|
||||
},
|
||||
"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=="
|
||||
},
|
||||
"next-tick": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
|
||||
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.5.0.tgz",
|
||||
"integrity": "sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw=="
|
||||
},
|
||||
"object-hash": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz",
|
||||
"integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="
|
||||
},
|
||||
"optional": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz",
|
||||
"integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw=="
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
|
||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
||||
"dev": true
|
||||
},
|
||||
"reflect-metadata": {
|
||||
"version": "0.1.13",
|
||||
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
|
||||
"integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
|
||||
},
|
||||
"rxjs": {
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map-support": {
|
||||
"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",
|
||||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"superagent": {
|
||||
"version": "3.8.3",
|
||||
"resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz",
|
||||
"integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"component-emitter": "^1.2.0",
|
||||
"cookiejar": "^2.1.0",
|
||||
"debug": "^3.1.0",
|
||||
"extend": "^3.0.0",
|
||||
"form-data": "^2.3.1",
|
||||
"formidable": "^1.2.0",
|
||||
"methods": "^1.1.1",
|
||||
"mime": "^1.4.1",
|
||||
"qs": "^6.5.1",
|
||||
"readable-stream": "^2.3.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
|
||||
"dev": true
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.6",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
||||
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~2.0.0",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.1.1",
|
||||
"util-deprecate": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"supertest": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/supertest/-/supertest-4.0.2.tgz",
|
||||
"integrity": "sha512-1BAbvrOZsGA3YTCWqbmh14L0YEq0EGICX/nBnfkfVJn7SrxQV1I3pMYjSzG9y/7ZU2V9dWqyqk2POwxlb09duQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"methods": "^1.1.2",
|
||||
"superagent": "^3.8.3"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"requires": {
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"timers-ext": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
|
||||
"integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
|
||||
"requires": {
|
||||
"es5-ext": "~0.10.46",
|
||||
"next-tick": "1"
|
||||
}
|
||||
},
|
||||
"ts-node": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.1.0.tgz",
|
||||
"integrity": "sha512-34jpuOrxDuf+O6iW1JpgTRDFynUZ1iEqtYruBqh35gICNjN8x+LpVcPAcwzLPi9VU6mdA3ym+x233nZmZp445A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"arg": "^4.1.0",
|
||||
"diff": "^3.1.0",
|
||||
"make-error": "^1.1.1",
|
||||
"source-map-support": "^0.5.6",
|
||||
"yn": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz",
|
||||
"integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ=="
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
|
||||
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
|
||||
},
|
||||
"typescript": {
|
||||
"version": "3.4.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz",
|
||||
"integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw=="
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
|
||||
"dev": true
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
|
||||
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
|
||||
},
|
||||
"validator": {
|
||||
"version": "10.4.0",
|
||||
"resolved": "https://registry.npmjs.org/validator/-/validator-10.4.0.tgz",
|
||||
"integrity": "sha512-Q/wBy3LB1uOyssgNlXSRmaf22NxjvDNZM2MtIQ4jaEOAB61xsh1TQxsq1CgzUMBV1lDrVMogIh8GjG1DYW0zLg=="
|
||||
},
|
||||
"yn": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz",
|
||||
"integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,20 +7,20 @@
|
||||
"start": "ts-node src/main"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/common": "^5.0.0",
|
||||
"@nestjs/core": "^5.0.0",
|
||||
"@nestjs/microservices": "^5.0.0",
|
||||
"@nestjs/testing": "^5.0.0",
|
||||
"@nestjs/websockets": "^5.0.0",
|
||||
"class-transformer": "^0.1.7",
|
||||
"class-validator": "^0.7.2",
|
||||
"reflect-metadata": "^0.1.12",
|
||||
"rxjs": "^6.0.0",
|
||||
"typescript": "^3.1.0"
|
||||
"@nestjs/common": "6.2.0",
|
||||
"@nestjs/core": "6.2.0",
|
||||
"@nestjs/microservices": "6.2.0",
|
||||
"@nestjs/testing": "6.2.0",
|
||||
"@nestjs/websockets": "6.2.0",
|
||||
"class-transformer": "0.2.2",
|
||||
"class-validator": "0.9.1",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rxjs": "6.5.2",
|
||||
"typescript": "3.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^7.0.41",
|
||||
"supertest": "^3.0.0",
|
||||
"ts-node": "^6.0.0"
|
||||
"@types/node": "7.10.6",
|
||||
"supertest": "4.0.2",
|
||||
"ts-node": "8.1.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ describe('GRPC transport', () => {
|
||||
return request(server)
|
||||
.post('/')
|
||||
.send([1, 2, 3, 4, 5])
|
||||
.expect(200, { result: '15' });
|
||||
.expect(200, { result: 15 });
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
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 { MqttController } from '../src/mqtt/mqtt.controller';
|
||||
|
||||
@@ -70,6 +71,18 @@ describe('MQTT transport', () => {
|
||||
.expect(200, '15');
|
||||
});
|
||||
|
||||
it(`/POST (event notification)`, done => {
|
||||
request(server)
|
||||
.post('/notify')
|
||||
.send([1, 2, 3, 4, 5])
|
||||
.end(() => {
|
||||
setTimeout(() => {
|
||||
expect(MqttController.IS_NOTIFIED).to.be.true;
|
||||
done();
|
||||
}, 1000);
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
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 { NatsController } from '../src/nats/nats.controller';
|
||||
|
||||
@@ -82,6 +83,18 @@ describe('NATS transport', () => {
|
||||
});
|
||||
});
|
||||
|
||||
it(`/POST (event notification)`, done => {
|
||||
request(server)
|
||||
.post('/notify')
|
||||
.send([1, 2, 3, 4, 5])
|
||||
.end(() => {
|
||||
setTimeout(() => {
|
||||
expect(NatsController.IS_NOTIFIED).to.be.true;
|
||||
done();
|
||||
}, 1000);
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
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 { RedisController } from '../src/redis/redis.controller';
|
||||
|
||||
@@ -70,6 +71,18 @@ describe('REDIS transport', () => {
|
||||
.expect(200, '15');
|
||||
});
|
||||
|
||||
it(`/POST (event notification)`, done => {
|
||||
request(server)
|
||||
.post('/notify')
|
||||
.send([1, 2, 3, 4, 5])
|
||||
.end(() => {
|
||||
setTimeout(() => {
|
||||
expect(RedisController.IS_NOTIFIED).to.be.true;
|
||||
done();
|
||||
}, 1000);
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
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 { RMQController } from '../src/rmq/rmq.controller';
|
||||
|
||||
@@ -22,6 +23,7 @@ describe('RabbitMQ transport', () => {
|
||||
urls: [`amqp://localhost:5672`],
|
||||
queue: 'test',
|
||||
queueOptions: { durable: false },
|
||||
socketOptions: { noDelay: true },
|
||||
},
|
||||
});
|
||||
await app.startAllMicroservicesAsync();
|
||||
@@ -75,6 +77,18 @@ describe('RabbitMQ transport', () => {
|
||||
.expect(200, '15');
|
||||
});
|
||||
|
||||
it(`/POST (event notification)`, done => {
|
||||
request(server)
|
||||
.post('/notify')
|
||||
.send([1, 2, 3, 4, 5])
|
||||
.end(() => {
|
||||
setTimeout(() => {
|
||||
expect(RMQController.IS_NOTIFIED).to.be.true;
|
||||
done();
|
||||
}, 1000);
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
|
||||
@@ -1,7 +1,9 @@
|
||||
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 { AppController } from '../src/app.controller';
|
||||
import { ApplicationModule } from '../src/app.module';
|
||||
|
||||
describe('RPC transport', () => {
|
||||
@@ -76,6 +78,18 @@ describe('RPC transport', () => {
|
||||
.expect(500);
|
||||
});
|
||||
|
||||
it(`/POST (event notification)`, done => {
|
||||
request(server)
|
||||
.post('/notify')
|
||||
.send([1, 2, 3, 4, 5])
|
||||
.end(() => {
|
||||
setTimeout(() => {
|
||||
expect(AppController.IS_NOTIFIED).to.be.true;
|
||||
done();
|
||||
}, 1000);
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
|
||||
602
integration/microservices/package-lock.json
generated
602
integration/microservices/package-lock.json
generated
@@ -4,31 +4,609 @@
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"@nestjs/common": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.2.0.tgz",
|
||||
"integrity": "sha512-0svQuCrG6ofMYgHzk/GzJ+vpIkLq4vZmTeww1qLipggS40IjQ0+NzwEBOTr6TeHVDmsM2YDmIU1DJiaGy2o9Hw==",
|
||||
"requires": {
|
||||
"axios": "0.18.0",
|
||||
"cli-color": "1.4.0",
|
||||
"uuid": "3.3.2"
|
||||
}
|
||||
},
|
||||
"@nestjs/core": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.2.0.tgz",
|
||||
"integrity": "sha512-K5Wje2unjStkA7AG5sTSD9trx2BEf8asL5xOFT4DwG+ICB04JLebTwqwbQNi3RNZ3buL/pXNXIOOleOgqK7fGw==",
|
||||
"requires": {
|
||||
"@nuxtjs/opencollective": "0.2.1",
|
||||
"fast-safe-stringify": "2.0.6",
|
||||
"iterare": "1.1.2",
|
||||
"object-hash": "1.3.1",
|
||||
"optional": "0.1.4",
|
||||
"uuid": "3.3.2"
|
||||
}
|
||||
},
|
||||
"@nestjs/microservices": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-6.2.0.tgz",
|
||||
"integrity": "sha512-F4DNhF9qfKBL7v2toz4rlgfeuy8dVXslBNj0lFWDDjoANsYN5WYQVW5ygLbRkyb2ldlA/yBwfx/ULSBUHAvjZg==",
|
||||
"requires": {
|
||||
"iterare": "1.1.2",
|
||||
"json-socket": "0.3.0",
|
||||
"optional": "0.1.4"
|
||||
}
|
||||
},
|
||||
"@nestjs/testing": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-6.2.0.tgz",
|
||||
"integrity": "sha512-sAdXmZugvhYyp6tze5FdcH6tuIoDI0R8l7nI+PFDXuwxUSvfm8eHOloRbmYRD8ULGfY6OEvmO5uzoz/73IcMMw==",
|
||||
"requires": {
|
||||
"optional": "0.1.4"
|
||||
}
|
||||
},
|
||||
"@nestjs/websockets": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-6.2.0.tgz",
|
||||
"integrity": "sha512-WMB97lgbrVy9XZAR5PiXcvGI8rIDA48/qlkuoeK5C64hDiM2F2C29PXidCR0AK+8PDkLTsp6tVJtkzpycQL5dw==",
|
||||
"requires": {
|
||||
"iterare": "1.1.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==",
|
||||
"requires": {
|
||||
"chalk": "^2.4.1",
|
||||
"consola": "^2.3.0",
|
||||
"node-fetch": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "7.10.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.6.tgz",
|
||||
"integrity": "sha512-d0BOAicT0tEdbdVQlLGOVul1kvg6YvbaADRCThGCz5NJ0e9r00SofcR1x69hmlCyrHuB6jd4cKzL9bMLjPnpAA==",
|
||||
"dev": true
|
||||
},
|
||||
"amqp-connection-manager": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "https://registry.npmjs.org/amqp-connection-manager/-/amqp-connection-manager-2.2.0.tgz",
|
||||
"integrity": "sha512-wR7t4Gkq532yR+vjTSksKGVA9vVlFkXvXcKdw0/QIJaH/piL3pqJWlCbUI2srFArOb/wdTe7BZ5VViwOYEdihA==",
|
||||
"version": "2.3.1",
|
||||
"resolved": "https://registry.npmjs.org/amqp-connection-manager/-/amqp-connection-manager-2.3.1.tgz",
|
||||
"integrity": "sha512-5uld2vHfUZWfTjYhCsmWhrpNsESUxfq0K1RllUUavngULgwxLZcsm0PjhhwqNwEXRhkK1uDMS/rzjUGCZBVYaA==",
|
||||
"requires": {
|
||||
"promise-breaker": "^4.1.2"
|
||||
}
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
||||
},
|
||||
"ansi-styles": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||
"requires": {
|
||||
"color-convert": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"arg": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz",
|
||||
"integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==",
|
||||
"dev": true
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
||||
"dev": true
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
|
||||
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
|
||||
"requires": {
|
||||
"follow-redirects": "^1.3.0",
|
||||
"is-buffer": "^1.1.5"
|
||||
}
|
||||
},
|
||||
"buffer-from": {
|
||||
"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
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
},
|
||||
"class-transformer": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.2.tgz",
|
||||
"integrity": "sha512-wRKNNvdrSTOYut0ksO1/PTXFPTscbuGRB5R85FfdUuydGI+nXGPYeAByoifrfHFwadI2G4a7IQ5MXp9gnWNjFQ=="
|
||||
},
|
||||
"class-validator": {
|
||||
"version": "0.9.1",
|
||||
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.9.1.tgz",
|
||||
"integrity": "sha512-3wApflrd3ywVZyx4jaasGoFt8pmo4aGLPPAEKCKCsTRWVGPilahD88q3jQjRQwja50rl9a7rsP5LAxJYwGK8/Q==",
|
||||
"requires": {
|
||||
"google-libphonenumber": "^3.1.6",
|
||||
"validator": "10.4.0"
|
||||
}
|
||||
},
|
||||
"cli-color": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz",
|
||||
"integrity": "sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==",
|
||||
"requires": {
|
||||
"ansi-regex": "^2.1.1",
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.46",
|
||||
"es6-iterator": "^2.0.3",
|
||||
"memoizee": "^0.4.14",
|
||||
"timers-ext": "^0.1.5"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
||||
"requires": {
|
||||
"color-name": "1.1.3"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
|
||||
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"component-emitter": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
|
||||
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
|
||||
"dev": true
|
||||
},
|
||||
"consola": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/consola/-/consola-2.6.1.tgz",
|
||||
"integrity": "sha512-vt35owQG6OxYDJVaViQ4aFgOK+b98hIvs+R5CWkKgpO8rTPyaYwlMadZ7oZcjnWz1/+u4czDnrcogFr5AtrRug=="
|
||||
},
|
||||
"cookiejar": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
|
||||
"integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==",
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
||||
"dev": true
|
||||
},
|
||||
"d": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
|
||||
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
|
||||
"requires": {
|
||||
"es5-ext": "^0.10.9"
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||
"dev": true
|
||||
},
|
||||
"diff": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
|
||||
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
|
||||
"dev": true
|
||||
},
|
||||
"es5-ext": {
|
||||
"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",
|
||||
"next-tick": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"es6-iterator": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
|
||||
"integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.35",
|
||||
"es6-symbol": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"es6-symbol": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
|
||||
"integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
},
|
||||
"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=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.14",
|
||||
"es6-iterator": "^2.0.1",
|
||||
"es6-symbol": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
|
||||
},
|
||||
"event-emitter": {
|
||||
"version": "0.3.5",
|
||||
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
|
||||
"integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-safe-stringify": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz",
|
||||
"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==",
|
||||
"requires": {
|
||||
"debug": "^3.2.6"
|
||||
}
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"formidable": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz",
|
||||
"integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==",
|
||||
"dev": true
|
||||
},
|
||||
"google-libphonenumber": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/google-libphonenumber/-/google-libphonenumber-3.2.2.tgz",
|
||||
"integrity": "sha512-ubjGeosYPeusjYbUHy76lCniGTTI0k1rIFc+uKBX+jHQLDmWOSUtlFUxaeoLJ+Y+PAMM6dWp+C1HjHx5BI8kEw=="
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
||||
"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=="
|
||||
},
|
||||
"is-promise": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
|
||||
"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=="
|
||||
},
|
||||
"json-socket": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/json-socket/-/json-socket-0.3.0.tgz",
|
||||
"integrity": "sha512-jc8ZbUnYIWdxERFWQKVgwSLkGSe+kyzvmYxwNaRgx/c8NNyuHes4UHnPM3LUrAFXUx1BhNJ94n1h/KCRlbvV0g=="
|
||||
},
|
||||
"lru-queue": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
|
||||
"integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
|
||||
"requires": {
|
||||
"es5-ext": "~0.10.2"
|
||||
}
|
||||
},
|
||||
"make-error": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
|
||||
"integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
|
||||
"dev": true
|
||||
},
|
||||
"memoizee": {
|
||||
"version": "0.4.14",
|
||||
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz",
|
||||
"integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.45",
|
||||
"es6-weak-map": "^2.0.2",
|
||||
"event-emitter": "^0.3.5",
|
||||
"is-promise": "^2.1",
|
||||
"lru-queue": "0.1",
|
||||
"next-tick": "1",
|
||||
"timers-ext": "^0.1.5"
|
||||
}
|
||||
},
|
||||
"methods": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
||||
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
|
||||
"dev": true
|
||||
},
|
||||
"mime": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
||||
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.38.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
|
||||
"integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.22",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
|
||||
"integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-db": "~1.38.0"
|
||||
}
|
||||
},
|
||||
"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=="
|
||||
},
|
||||
"next-tick": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
|
||||
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.5.0.tgz",
|
||||
"integrity": "sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw=="
|
||||
},
|
||||
"object-hash": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz",
|
||||
"integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="
|
||||
},
|
||||
"optional": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz",
|
||||
"integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw=="
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
|
||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
|
||||
"dev": true
|
||||
},
|
||||
"promise-breaker": {
|
||||
"version": "4.1.11",
|
||||
"resolved": "https://registry.npmjs.org/promise-breaker/-/promise-breaker-4.1.11.tgz",
|
||||
"integrity": "sha512-pzp+uNPxHofRhgZ27y+94Kj87fNX2Mu9A9HGpTQQWdyzMpfYT419lhE32zWnqhUCQVrXmvYPDw76pnrwWc+BpQ=="
|
||||
"version": "4.1.13",
|
||||
"resolved": "https://registry.npmjs.org/promise-breaker/-/promise-breaker-4.1.13.tgz",
|
||||
"integrity": "sha512-+lGBqmBEgyvKweIrK4smdN1YxdYp5YjSL1us2XhTMBbZf98jdeGys/Edt5S1b1NXMVRQrvh4DrMgGpYPbXZf3g=="
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
||||
"dev": true
|
||||
},
|
||||
"reflect-metadata": {
|
||||
"version": "0.1.13",
|
||||
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
|
||||
"integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
|
||||
},
|
||||
"rxjs": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.0.0.tgz",
|
||||
"integrity": "sha512-2MgLQr1zvks8+Kip4T6hcJdiBhV+SIvxguoWjhwtSpNPTp/5e09HJbgclCwR/nW0yWzhubM+6Q0prl8G5RuoBA==",
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map-support": {
|
||||
"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",
|
||||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"superagent": {
|
||||
"version": "3.8.3",
|
||||
"resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz",
|
||||
"integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"component-emitter": "^1.2.0",
|
||||
"cookiejar": "^2.1.0",
|
||||
"debug": "^3.1.0",
|
||||
"extend": "^3.0.0",
|
||||
"form-data": "^2.3.1",
|
||||
"formidable": "^1.2.0",
|
||||
"methods": "^1.1.1",
|
||||
"mime": "^1.4.1",
|
||||
"qs": "^6.5.1",
|
||||
"readable-stream": "^2.3.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
|
||||
"dev": true
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.6",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
||||
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~2.0.0",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.1.1",
|
||||
"util-deprecate": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"supertest": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/supertest/-/supertest-4.0.2.tgz",
|
||||
"integrity": "sha512-1BAbvrOZsGA3YTCWqbmh14L0YEq0EGICX/nBnfkfVJn7SrxQV1I3pMYjSzG9y/7ZU2V9dWqyqk2POwxlb09duQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"methods": "^1.1.2",
|
||||
"superagent": "^3.8.3"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"requires": {
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"timers-ext": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
|
||||
"integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
|
||||
"requires": {
|
||||
"es5-ext": "~0.10.46",
|
||||
"next-tick": "1"
|
||||
}
|
||||
},
|
||||
"ts-node": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.1.0.tgz",
|
||||
"integrity": "sha512-34jpuOrxDuf+O6iW1JpgTRDFynUZ1iEqtYruBqh35gICNjN8x+LpVcPAcwzLPi9VU6mdA3ym+x233nZmZp445A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"arg": "^4.1.0",
|
||||
"diff": "^3.1.0",
|
||||
"make-error": "^1.1.1",
|
||||
"source-map-support": "^0.5.6",
|
||||
"yn": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz",
|
||||
"integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ=="
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
|
||||
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
|
||||
},
|
||||
"typescript": {
|
||||
"version": "3.4.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz",
|
||||
"integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw=="
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
|
||||
"dev": true
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
|
||||
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
|
||||
},
|
||||
"validator": {
|
||||
"version": "10.4.0",
|
||||
"resolved": "https://registry.npmjs.org/validator/-/validator-10.4.0.tgz",
|
||||
"integrity": "sha512-Q/wBy3LB1uOyssgNlXSRmaf22NxjvDNZM2MtIQ4jaEOAB61xsh1TQxsq1CgzUMBV1lDrVMogIh8GjG1DYW0zLg=="
|
||||
},
|
||||
"yn": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz",
|
||||
"integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,21 +7,21 @@
|
||||
"start": "ts-node src/main"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/common": "^5.0.0",
|
||||
"@nestjs/core": "^5.0.0",
|
||||
"@nestjs/microservices": "^5.0.0",
|
||||
"@nestjs/testing": "^5.0.0",
|
||||
"@nestjs/websockets": "^5.0.0",
|
||||
"amqp-connection-manager": "^2.2.0",
|
||||
"class-transformer": "^0.1.7",
|
||||
"class-validator": "^0.7.2",
|
||||
"reflect-metadata": "^0.1.12",
|
||||
"rxjs": "^6.0.0",
|
||||
"typescript": "^3.1.0"
|
||||
"@nestjs/common": "6.2.0",
|
||||
"@nestjs/core": "6.2.0",
|
||||
"@nestjs/microservices": "6.2.0",
|
||||
"@nestjs/testing": "6.2.0",
|
||||
"@nestjs/websockets": "6.2.0",
|
||||
"amqp-connection-manager": "2.3.1",
|
||||
"class-transformer": "0.2.2",
|
||||
"class-validator": "0.9.1",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rxjs": "6.5.2",
|
||||
"typescript": "3.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^7.0.41",
|
||||
"supertest": "^3.0.0",
|
||||
"ts-node": "^6.0.0"
|
||||
"@types/node": "7.10.6",
|
||||
"supertest": "4.0.2",
|
||||
"ts-node": "8.1.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
import { Controller, Post, Body, Query, HttpCode } from '@nestjs/common';
|
||||
import { Body, Controller, HttpCode, Post, Query } from '@nestjs/common';
|
||||
import {
|
||||
Client,
|
||||
MessagePattern,
|
||||
ClientProxy,
|
||||
EventPattern,
|
||||
MessagePattern,
|
||||
Transport,
|
||||
} from '@nestjs/microservices';
|
||||
import { Observable, of, from } from 'rxjs';
|
||||
import { from, Observable, of } from 'rxjs';
|
||||
import { scan } from 'rxjs/operators';
|
||||
|
||||
@Controller()
|
||||
export class AppController {
|
||||
static IS_NOTIFIED = false;
|
||||
|
||||
@Client({ transport: Transport.TCP })
|
||||
client: ClientProxy;
|
||||
|
||||
@@ -62,4 +65,14 @@ export class AppController {
|
||||
streaming(data: number[]): Observable<number> {
|
||||
return from(data);
|
||||
}
|
||||
|
||||
@Post('notify')
|
||||
async sendNotification(): Promise<any> {
|
||||
return this.client.emit<number>('notification', true);
|
||||
}
|
||||
|
||||
@EventPattern('notification')
|
||||
eventHandler(data: boolean) {
|
||||
AppController.IS_NOTIFIED = data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Body, Controller, HttpCode, Post, Query } from '@nestjs/common';
|
||||
import {
|
||||
Client,
|
||||
ClientProxy,
|
||||
EventPattern,
|
||||
MessagePattern,
|
||||
Transport,
|
||||
} from '@nestjs/microservices';
|
||||
@@ -10,6 +11,8 @@ import { scan } from 'rxjs/operators';
|
||||
|
||||
@Controller()
|
||||
export class MqttController {
|
||||
static IS_NOTIFIED = false;
|
||||
|
||||
@Client({ transport: Transport.MQTT })
|
||||
client: ClientProxy;
|
||||
|
||||
@@ -47,6 +50,16 @@ export class MqttController {
|
||||
.reduce(async (a, b) => (await a) && (await b));
|
||||
}
|
||||
|
||||
@Post('notify')
|
||||
async sendNotification(): Promise<any> {
|
||||
return this.client.emit<number>('notification', true);
|
||||
}
|
||||
|
||||
@EventPattern('notification')
|
||||
eventHandler(data: boolean) {
|
||||
MqttController.IS_NOTIFIED = true;
|
||||
}
|
||||
|
||||
@MessagePattern({ cmd: 'sum' })
|
||||
sum(data: number[]): number {
|
||||
return (data || []).reduce((a, b) => a + b);
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Body, Controller, Get, HttpCode, Post, Query } from '@nestjs/common';
|
||||
import {
|
||||
Client,
|
||||
ClientProxy,
|
||||
EventPattern,
|
||||
MessagePattern,
|
||||
RpcException,
|
||||
Transport,
|
||||
@@ -11,6 +12,8 @@ import { catchError, scan } from 'rxjs/operators';
|
||||
|
||||
@Controller()
|
||||
export class NatsController {
|
||||
static IS_NOTIFIED = false;
|
||||
|
||||
@Client({
|
||||
transport: Transport.NATS,
|
||||
options: {
|
||||
@@ -84,4 +87,14 @@ export class NatsController {
|
||||
throwError(): Observable<number> {
|
||||
return throwError(new RpcException('test'));
|
||||
}
|
||||
|
||||
@Post('notify')
|
||||
async sendNotification(): Promise<any> {
|
||||
return this.client.emit<number>('notification', true);
|
||||
}
|
||||
|
||||
@EventPattern('notification')
|
||||
eventHandler(data: boolean) {
|
||||
NatsController.IS_NOTIFIED = data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,15 +1,18 @@
|
||||
import { Controller, Post, Body, Query, HttpCode } from '@nestjs/common';
|
||||
import { Body, Controller, HttpCode, Post, Query } from '@nestjs/common';
|
||||
import {
|
||||
Client,
|
||||
MessagePattern,
|
||||
ClientProxy,
|
||||
EventPattern,
|
||||
MessagePattern,
|
||||
Transport,
|
||||
} from '@nestjs/microservices';
|
||||
import { Observable, of, from } from 'rxjs';
|
||||
import { from, Observable, of } from 'rxjs';
|
||||
import { scan } from 'rxjs/operators';
|
||||
|
||||
@Controller()
|
||||
export class RedisController {
|
||||
static IS_NOTIFIED = false;
|
||||
|
||||
@Client({ transport: Transport.REDIS })
|
||||
client: ClientProxy;
|
||||
|
||||
@@ -62,4 +65,14 @@ export class RedisController {
|
||||
streaming(data: number[]): Observable<number> {
|
||||
return from(data);
|
||||
}
|
||||
|
||||
@Post('notify')
|
||||
async sendNotification(): Promise<any> {
|
||||
return this.client.emit<number>('notification', true);
|
||||
}
|
||||
|
||||
@EventPattern('notification')
|
||||
eventHandler(data: boolean) {
|
||||
RedisController.IS_NOTIFIED = data;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -19,6 +19,7 @@ export class RMQBroadcastController {
|
||||
urls: [`amqp://localhost:5672`],
|
||||
queue: 'test_broadcast',
|
||||
queueOptions: { durable: false },
|
||||
socketOptions: { noDelay: true },
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ import { Body, Controller, HttpCode, Post, Query } from '@nestjs/common';
|
||||
import {
|
||||
ClientProxy,
|
||||
ClientProxyFactory,
|
||||
EventPattern,
|
||||
MessagePattern,
|
||||
Transport,
|
||||
} from '@nestjs/microservices';
|
||||
@@ -10,6 +11,8 @@ import { scan } from 'rxjs/operators';
|
||||
|
||||
@Controller()
|
||||
export class RMQController {
|
||||
static IS_NOTIFIED = false;
|
||||
|
||||
client: ClientProxy;
|
||||
|
||||
constructor() {
|
||||
@@ -19,6 +22,7 @@ export class RMQController {
|
||||
urls: [`amqp://localhost:5672`],
|
||||
queue: 'test',
|
||||
queueOptions: { durable: false },
|
||||
socketOptions: { noDelay: true },
|
||||
},
|
||||
});
|
||||
}
|
||||
@@ -72,4 +76,14 @@ export class RMQController {
|
||||
streaming(data: number[]): Observable<number> {
|
||||
return from(data);
|
||||
}
|
||||
|
||||
@Post('notify')
|
||||
async sendNotification(): Promise<any> {
|
||||
return this.client.emit<number>('notification', true);
|
||||
}
|
||||
|
||||
@EventPattern('notification')
|
||||
eventHandler(data: boolean) {
|
||||
RMQController.IS_NOTIFIED = data;
|
||||
}
|
||||
}
|
||||
|
||||
1225
integration/mongoose/package-lock.json
generated
1225
integration/mongoose/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -9,18 +9,18 @@
|
||||
"start:prod": "node dist/main.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/common": "^5.2.0",
|
||||
"@nestjs/core": "^5.2.0",
|
||||
"@nestjs/mongoose": "^5.2.0",
|
||||
"mongoose": "^5.0.1",
|
||||
"reflect-metadata": "^0.1.12",
|
||||
"rxjs": "^6.0.0",
|
||||
"typescript": "^3.1.0"
|
||||
"@nestjs/common": "6.2.0",
|
||||
"@nestjs/core": "6.2.0",
|
||||
"@nestjs/mongoose": "6.1.2",
|
||||
"mongoose": "5.5.9",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rxjs": "6.5.2",
|
||||
"typescript": "3.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/mongoose": "^4.7.23",
|
||||
"@types/node": "^7.0.41",
|
||||
"ts-node": "^6.0.0",
|
||||
"tslint": "^5.9.1"
|
||||
"@types/mongoose": "5.5.1",
|
||||
"@types/node": "7.10.6",
|
||||
"ts-node": "8.1.0",
|
||||
"tslint": "5.16.0"
|
||||
}
|
||||
}
|
||||
|
||||
1473
integration/scopes/package-lock.json
generated
1473
integration/scopes/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -7,21 +7,21 @@
|
||||
"start": "ts-node src/main"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/common": "^5.0.0",
|
||||
"@nestjs/core": "^5.0.0",
|
||||
"@nestjs/microservices": "^5.0.0",
|
||||
"@nestjs/testing": "^5.0.0",
|
||||
"@nestjs/websockets": "^5.0.0",
|
||||
"class-transformer": "^0.1.7",
|
||||
"class-validator": "^0.7.2",
|
||||
"fastify": "^1.1.1",
|
||||
"reflect-metadata": "^0.1.12",
|
||||
"rxjs": "^6.0.0",
|
||||
"typescript": "^3.1.0"
|
||||
"@nestjs/common": "6.2.0",
|
||||
"@nestjs/core": "6.2.0",
|
||||
"@nestjs/microservices": "6.2.0",
|
||||
"@nestjs/testing": "6.2.0",
|
||||
"@nestjs/websockets": "6.2.0",
|
||||
"class-transformer": "0.2.2",
|
||||
"class-validator": "0.9.1",
|
||||
"fastify": "2.3.0",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rxjs": "6.5.2",
|
||||
"typescript": "3.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^7.0.41",
|
||||
"supertest": "^3.0.0",
|
||||
"ts-node": "^6.0.0"
|
||||
"@types/node": "7.10.6",
|
||||
"supertest": "4.0.2",
|
||||
"ts-node": "8.1.0"
|
||||
}
|
||||
}
|
||||
|
||||
49
integration/typegraphql/e2e/guards-filters.spec.ts
Normal file
49
integration/typegraphql/e2e/guards-filters.spec.ts
Normal file
@@ -0,0 +1,49 @@
|
||||
import { INestApplication } from '@nestjs/common';
|
||||
import { Test } from '@nestjs/testing';
|
||||
import * as request from 'supertest';
|
||||
import { ApplicationModule } from '../src/app.module';
|
||||
|
||||
describe('GraphQL - Guards', () => {
|
||||
let app: INestApplication;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module = await Test.createTestingModule({
|
||||
imports: [ApplicationModule],
|
||||
}).compile();
|
||||
|
||||
app = module.createNestApplication();
|
||||
await app.init();
|
||||
});
|
||||
|
||||
it(`should throw an error`, () => {
|
||||
return request(app.getHttpServer())
|
||||
.post('/graphql')
|
||||
.send({
|
||||
operationName: null,
|
||||
variables: {},
|
||||
query: '{\n recipe(id: "3") {\n id\n }\n}\n',
|
||||
})
|
||||
.expect(200, {
|
||||
data: null,
|
||||
errors: [
|
||||
{
|
||||
message: 'Unauthorized error',
|
||||
locations: [
|
||||
{
|
||||
line: 2,
|
||||
column: 3,
|
||||
},
|
||||
],
|
||||
path: ['recipe'],
|
||||
extensions: {
|
||||
code: 'INTERNAL_SERVER_ERROR',
|
||||
},
|
||||
},
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
107
integration/typegraphql/e2e/pipes.spec.ts
Normal file
107
integration/typegraphql/e2e/pipes.spec.ts
Normal file
@@ -0,0 +1,107 @@
|
||||
import { INestApplication, ValidationPipe } from '@nestjs/common';
|
||||
import { Test } from '@nestjs/testing';
|
||||
import * as request from 'supertest';
|
||||
import { ApplicationModule } from '../src/app.module';
|
||||
|
||||
describe('GraphQL Pipes', () => {
|
||||
let app: INestApplication;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module = await Test.createTestingModule({
|
||||
imports: [ApplicationModule],
|
||||
}).compile();
|
||||
|
||||
app = module.createNestApplication();
|
||||
app.useGlobalPipes(new ValidationPipe());
|
||||
await app.init();
|
||||
});
|
||||
|
||||
it(`should throw an error`, () => {
|
||||
return request(app.getHttpServer())
|
||||
.post('/graphql')
|
||||
.send({
|
||||
operationName: null,
|
||||
variables: {},
|
||||
query:
|
||||
'mutation {\n addRecipe(newRecipeData: {title: "test", ingredients: []}) {\n id\n }\n}\n',
|
||||
})
|
||||
.expect(200, {
|
||||
data: null,
|
||||
errors: [
|
||||
{
|
||||
extensions: {
|
||||
code: 'INTERNAL_SERVER_ERROR',
|
||||
exception: {
|
||||
message: {
|
||||
error: 'Bad Request',
|
||||
message: [
|
||||
{
|
||||
children: [],
|
||||
constraints: {
|
||||
length:
|
||||
'description must be longer than or equal to 30 characters',
|
||||
},
|
||||
property: 'description',
|
||||
target: {
|
||||
ingredients: [],
|
||||
title: 'test',
|
||||
},
|
||||
},
|
||||
],
|
||||
statusCode: 400,
|
||||
},
|
||||
response: {
|
||||
error: 'Bad Request',
|
||||
message: [
|
||||
{
|
||||
children: [],
|
||||
constraints: {
|
||||
length:
|
||||
'description must be longer than or equal to 30 characters',
|
||||
},
|
||||
property: 'description',
|
||||
target: {
|
||||
ingredients: [],
|
||||
title: 'test',
|
||||
},
|
||||
},
|
||||
],
|
||||
statusCode: 400,
|
||||
},
|
||||
status: 400,
|
||||
},
|
||||
},
|
||||
locations: [
|
||||
{
|
||||
column: 3,
|
||||
line: 2,
|
||||
},
|
||||
],
|
||||
message: {
|
||||
error: 'Bad Request',
|
||||
message: [
|
||||
{
|
||||
children: [],
|
||||
constraints: {
|
||||
length:
|
||||
'description must be longer than or equal to 30 characters',
|
||||
},
|
||||
property: 'description',
|
||||
target: {
|
||||
ingredients: [],
|
||||
title: 'test',
|
||||
},
|
||||
},
|
||||
],
|
||||
statusCode: 400,
|
||||
},
|
||||
path: ['addRecipe'],
|
||||
},
|
||||
],
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
36
integration/typegraphql/e2e/typegraphql.spec.ts
Normal file
36
integration/typegraphql/e2e/typegraphql.spec.ts
Normal file
@@ -0,0 +1,36 @@
|
||||
import { INestApplication } from '@nestjs/common';
|
||||
import { Test } from '@nestjs/testing';
|
||||
import * as request from 'supertest';
|
||||
import { ApplicationModule } from '../src/app.module';
|
||||
|
||||
describe('TypeGraphQL', () => {
|
||||
let app: INestApplication;
|
||||
|
||||
beforeEach(async () => {
|
||||
const module = await Test.createTestingModule({
|
||||
imports: [ApplicationModule],
|
||||
}).compile();
|
||||
|
||||
app = module.createNestApplication();
|
||||
await app.init();
|
||||
});
|
||||
|
||||
it(`should return query result`, () => {
|
||||
return request(app.getHttpServer())
|
||||
.post('/graphql')
|
||||
.send({
|
||||
operationName: null,
|
||||
variables: {},
|
||||
query: '{\n recipes {\n id\n }\n}\n',
|
||||
})
|
||||
.expect(200, {
|
||||
data: {
|
||||
recipes: [],
|
||||
},
|
||||
});
|
||||
});
|
||||
|
||||
afterEach(async () => {
|
||||
await app.close();
|
||||
});
|
||||
});
|
||||
2961
integration/typegraphql/package-lock.json
generated
Normal file
2961
integration/typegraphql/package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
32
integration/typegraphql/package.json
Normal file
32
integration/typegraphql/package.json
Normal file
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"name": "nest-typescript-starter",
|
||||
"version": "1.0.0",
|
||||
"description": "Nest TypeScript starter repository",
|
||||
"license": "MIT",
|
||||
"scripts": {
|
||||
"start": "ts-node src/main",
|
||||
"prestart:prod": "tsc",
|
||||
"start:prod": "node dist/main.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/common": "6.2.0",
|
||||
"@nestjs/core": "6.2.0",
|
||||
"@nestjs/graphql": "6.2.1",
|
||||
"apollo-server-express": "2.5.0",
|
||||
"class-transformer": "0.2.2",
|
||||
"class-validator": "0.9.1",
|
||||
"graphql": "14.3.0",
|
||||
"graphql-tools": "4.0.4",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rxjs": "6.5.2",
|
||||
"subscriptions-transport-ws": "0.9.16",
|
||||
"type-graphql": "0.17.4",
|
||||
"typescript": "3.4.5",
|
||||
"ws": "7.0.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "7.10.6",
|
||||
"ts-node": "8.1.0",
|
||||
"tslint": "5.16.0"
|
||||
}
|
||||
}
|
||||
35
integration/typegraphql/schema.gql
Normal file
35
integration/typegraphql/schema.gql
Normal file
@@ -0,0 +1,35 @@
|
||||
# -----------------------------------------------
|
||||
# !!! THIS FILE WAS GENERATED BY TYPE-GRAPHQL !!!
|
||||
# !!! DO NOT MODIFY THIS FILE BY YOURSELF !!!
|
||||
# -----------------------------------------------
|
||||
|
||||
"""Date custom scalar type"""
|
||||
scalar Date
|
||||
|
||||
type Mutation {
|
||||
addRecipe(newRecipeData: NewRecipeInput!): Recipe!
|
||||
removeRecipe(id: String!): Boolean!
|
||||
}
|
||||
|
||||
input NewRecipeInput {
|
||||
title: String!
|
||||
description: String
|
||||
ingredients: [String!]!
|
||||
}
|
||||
|
||||
type Query {
|
||||
recipe(id: String!): Recipe!
|
||||
recipes(skip: Int = 0, take: Int = 25): [Recipe!]!
|
||||
}
|
||||
|
||||
type Recipe {
|
||||
id: ID!
|
||||
title: String!
|
||||
description: String
|
||||
creationDate: Date!
|
||||
ingredients: [String!]!
|
||||
}
|
||||
|
||||
type Subscription {
|
||||
recipeAdded: Recipe!
|
||||
}
|
||||
16
integration/typegraphql/src/app.module.ts
Normal file
16
integration/typegraphql/src/app.module.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { GraphQLModule } from '@nestjs/graphql';
|
||||
import { join } from 'path';
|
||||
import { RecipesModule } from './recipes/recipes.module';
|
||||
|
||||
@Module({
|
||||
imports: [
|
||||
RecipesModule,
|
||||
GraphQLModule.forRoot({
|
||||
debug: false,
|
||||
installSubscriptionHandlers: true,
|
||||
autoSchemaFile: join(process.cwd(), 'integration/typegraphql/schema.gql'),
|
||||
}),
|
||||
],
|
||||
})
|
||||
export class ApplicationModule {}
|
||||
@@ -0,0 +1,9 @@
|
||||
import { ArgumentsHost, Catch, UnauthorizedException } from '@nestjs/common';
|
||||
import { GqlExceptionFilter } from '@nestjs/graphql';
|
||||
|
||||
@Catch(UnauthorizedException)
|
||||
export class UnauthorizedFilter implements GqlExceptionFilter {
|
||||
catch(exception: any, host: ArgumentsHost) {
|
||||
return new Error('Unauthorized error');
|
||||
}
|
||||
}
|
||||
18
integration/typegraphql/src/common/guards/auth.guard.ts
Normal file
18
integration/typegraphql/src/common/guards/auth.guard.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import {
|
||||
CanActivate,
|
||||
ExecutionContext,
|
||||
Injectable,
|
||||
UnauthorizedException,
|
||||
} from '@nestjs/common';
|
||||
import { GqlExecutionContext } from '@nestjs/graphql';
|
||||
|
||||
@Injectable()
|
||||
export class AuthGuard implements CanActivate {
|
||||
async canActivate(context: ExecutionContext): Promise<boolean> {
|
||||
const gqlContext = GqlExecutionContext.create(context);
|
||||
if (gqlContext) {
|
||||
throw new UnauthorizedException();
|
||||
}
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,15 @@
|
||||
import {
|
||||
CallHandler,
|
||||
ExecutionContext,
|
||||
Injectable,
|
||||
NestInterceptor,
|
||||
} from '@nestjs/common';
|
||||
import { Observable } from 'rxjs';
|
||||
import { tap } from 'rxjs/operators';
|
||||
|
||||
@Injectable()
|
||||
export class DataInterceptor implements NestInterceptor {
|
||||
intercept(context: ExecutionContext, next: CallHandler): Observable<any> {
|
||||
return next.handle().pipe(tap(data => console.log(data)));
|
||||
}
|
||||
}
|
||||
22
integration/typegraphql/src/common/scalars/date.scalar.ts
Normal file
22
integration/typegraphql/src/common/scalars/date.scalar.ts
Normal file
@@ -0,0 +1,22 @@
|
||||
import { Scalar } from '@nestjs/graphql';
|
||||
import { Kind, ValueNode } from 'graphql';
|
||||
|
||||
@Scalar('Date', type => Date)
|
||||
export class DateScalar {
|
||||
description = 'Date custom scalar type';
|
||||
|
||||
parseValue(value: any) {
|
||||
return new Date(value); // value from the client
|
||||
}
|
||||
|
||||
serialize(value: any) {
|
||||
return value.getTime(); // value sent to the client
|
||||
}
|
||||
|
||||
parseLiteral(ast: ValueNode) {
|
||||
if (ast.kind === Kind.INT) {
|
||||
return parseInt(ast.value, 10); // ast value is always in string format
|
||||
}
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -1,8 +1,10 @@
|
||||
import { ValidationPipe } from '@nestjs/common';
|
||||
import { NestFactory } from '@nestjs/core';
|
||||
import { ApplicationModule } from './app.module';
|
||||
|
||||
async function bootstrap() {
|
||||
const app = await NestFactory.create(ApplicationModule);
|
||||
app.useGlobalPipes(new ValidationPipe());
|
||||
await app.listen(3000);
|
||||
}
|
||||
bootstrap();
|
||||
18
integration/typegraphql/src/recipes/dto/new-recipe.input.ts
Normal file
18
integration/typegraphql/src/recipes/dto/new-recipe.input.ts
Normal file
@@ -0,0 +1,18 @@
|
||||
import { Type } from 'class-transformer';
|
||||
import { Length, MaxLength } from 'class-validator';
|
||||
import { Field, InputType } from 'type-graphql';
|
||||
|
||||
@InputType()
|
||||
export class NewRecipeInput {
|
||||
@Field()
|
||||
@MaxLength(30)
|
||||
title: string;
|
||||
|
||||
@Field({ nullable: true })
|
||||
@Length(30, 255)
|
||||
description?: string;
|
||||
|
||||
@Type(() => String)
|
||||
@Field(type => [String])
|
||||
ingredients: string[];
|
||||
}
|
||||
14
integration/typegraphql/src/recipes/dto/recipes.args.ts
Normal file
14
integration/typegraphql/src/recipes/dto/recipes.args.ts
Normal file
@@ -0,0 +1,14 @@
|
||||
import { Max, Min } from 'class-validator';
|
||||
import { ArgsType, Field, Int } from 'type-graphql';
|
||||
|
||||
@ArgsType()
|
||||
export class RecipesArgs {
|
||||
@Field(type => Int)
|
||||
@Min(0)
|
||||
skip: number = 0;
|
||||
|
||||
@Field(type => Int)
|
||||
@Min(1)
|
||||
@Max(50)
|
||||
take: number = 25;
|
||||
}
|
||||
19
integration/typegraphql/src/recipes/models/recipe.ts
Normal file
19
integration/typegraphql/src/recipes/models/recipe.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { Field, ID, ObjectType } from 'type-graphql';
|
||||
|
||||
@ObjectType()
|
||||
export class Recipe {
|
||||
@Field(type => ID)
|
||||
id: string;
|
||||
|
||||
@Field()
|
||||
title: string;
|
||||
|
||||
@Field({ nullable: true })
|
||||
description?: string;
|
||||
|
||||
@Field()
|
||||
creationDate: Date;
|
||||
|
||||
@Field(type => [String])
|
||||
ingredients: string[];
|
||||
}
|
||||
19
integration/typegraphql/src/recipes/recipes.module.ts
Normal file
19
integration/typegraphql/src/recipes/recipes.module.ts
Normal file
@@ -0,0 +1,19 @@
|
||||
import { Module } from '@nestjs/common';
|
||||
import { APP_FILTER } from '@nestjs/core';
|
||||
import { UnauthorizedFilter } from '../common/filters/unathorized.filter';
|
||||
import { DateScalar } from '../common/scalars/date.scalar';
|
||||
import { RecipesResolver } from './recipes.resolver';
|
||||
import { RecipesService } from './recipes.service';
|
||||
|
||||
@Module({
|
||||
providers: [
|
||||
RecipesResolver,
|
||||
RecipesService,
|
||||
DateScalar,
|
||||
{
|
||||
provide: APP_FILTER,
|
||||
useClass: UnauthorizedFilter,
|
||||
},
|
||||
],
|
||||
})
|
||||
export class RecipesModule {}
|
||||
51
integration/typegraphql/src/recipes/recipes.resolver.ts
Normal file
51
integration/typegraphql/src/recipes/recipes.resolver.ts
Normal file
@@ -0,0 +1,51 @@
|
||||
import { NotFoundException, UseGuards, UseInterceptors } from '@nestjs/common';
|
||||
import { Args, Mutation, Query, Resolver, Subscription } from '@nestjs/graphql';
|
||||
import { PubSub } from 'apollo-server-express';
|
||||
import { AuthGuard } from '../common/guards/auth.guard';
|
||||
import { DataInterceptor } from '../common/interceptors/data.interceptor';
|
||||
import { NewRecipeInput } from './dto/new-recipe.input';
|
||||
import { RecipesArgs } from './dto/recipes.args';
|
||||
import { Recipe } from './models/recipe';
|
||||
import { RecipesService } from './recipes.service';
|
||||
|
||||
const pubSub = new PubSub();
|
||||
|
||||
@UseInterceptors(DataInterceptor)
|
||||
@Resolver(of => Recipe)
|
||||
export class RecipesResolver {
|
||||
constructor(private readonly recipesService: RecipesService) {}
|
||||
|
||||
@UseGuards(AuthGuard)
|
||||
@Query(returns => Recipe)
|
||||
async recipe(@Args('id') id: string): Promise<Recipe> {
|
||||
const recipe = await this.recipesService.findOneById(id);
|
||||
if (!recipe) {
|
||||
throw new NotFoundException(id);
|
||||
}
|
||||
return recipe;
|
||||
}
|
||||
|
||||
@Query(returns => [Recipe])
|
||||
recipes(@Args() recipesArgs: RecipesArgs): Promise<Recipe[]> {
|
||||
return this.recipesService.findAll(recipesArgs);
|
||||
}
|
||||
|
||||
@Mutation(returns => Recipe)
|
||||
async addRecipe(
|
||||
@Args('newRecipeData') newRecipeData: NewRecipeInput,
|
||||
): Promise<Recipe> {
|
||||
const recipe = await this.recipesService.create(newRecipeData);
|
||||
pubSub.publish('recipeAdded', { recipeAdded: recipe });
|
||||
return recipe;
|
||||
}
|
||||
|
||||
@Mutation(returns => Boolean)
|
||||
async removeRecipe(@Args('id') id: string) {
|
||||
return this.recipesService.remove(id);
|
||||
}
|
||||
|
||||
@Subscription(returns => Recipe)
|
||||
recipeAdded() {
|
||||
return pubSub.asyncIterator('recipeAdded');
|
||||
}
|
||||
}
|
||||
31
integration/typegraphql/src/recipes/recipes.service.ts
Normal file
31
integration/typegraphql/src/recipes/recipes.service.ts
Normal file
@@ -0,0 +1,31 @@
|
||||
import { Injectable } from '@nestjs/common';
|
||||
import { NewRecipeInput } from './dto/new-recipe.input';
|
||||
import { RecipesArgs } from './dto/recipes.args';
|
||||
import { Recipe } from './models/recipe';
|
||||
|
||||
@Injectable()
|
||||
export class RecipesService {
|
||||
/**
|
||||
* MOCK
|
||||
* Put some real business logic here
|
||||
* Left for demonstration purposes
|
||||
*/
|
||||
|
||||
async create(data: NewRecipeInput): Promise<Recipe> {
|
||||
return {
|
||||
id: 3,
|
||||
} as any;
|
||||
}
|
||||
|
||||
async findOneById(id: string): Promise<Recipe> {
|
||||
return {} as any;
|
||||
}
|
||||
|
||||
async findAll(recipesArgs: RecipesArgs): Promise<Recipe[]> {
|
||||
return [] as Recipe[];
|
||||
}
|
||||
|
||||
async remove(id: string): Promise<boolean> {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
22
integration/typegraphql/tsconfig.json
Normal file
22
integration/typegraphql/tsconfig.json
Normal file
@@ -0,0 +1,22 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"module": "commonjs",
|
||||
"declaration": false,
|
||||
"noImplicitAny": false,
|
||||
"removeComments": true,
|
||||
"noLib": false,
|
||||
"emitDecoratorMetadata": true,
|
||||
"experimentalDecorators": true,
|
||||
"target": "es6",
|
||||
"sourceMap": true,
|
||||
"allowJs": true,
|
||||
"outDir": "./dist"
|
||||
},
|
||||
"include": [
|
||||
"src/**/*"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules",
|
||||
"**/*.spec.ts"
|
||||
]
|
||||
}
|
||||
54
integration/typegraphql/tslint.json
Normal file
54
integration/typegraphql/tslint.json
Normal file
@@ -0,0 +1,54 @@
|
||||
{
|
||||
"defaultSeverity": "error",
|
||||
"extends": [
|
||||
"tslint:recommended"
|
||||
],
|
||||
"jsRules": {
|
||||
"no-unused-expression": true
|
||||
},
|
||||
"rules": {
|
||||
"eofline": false,
|
||||
"quotemark": [
|
||||
true,
|
||||
"single"
|
||||
],
|
||||
"indent": false,
|
||||
"ordered-imports": [
|
||||
false
|
||||
],
|
||||
"max-line-length": [
|
||||
150
|
||||
],
|
||||
"member-ordering": [
|
||||
false
|
||||
],
|
||||
"curly": false,
|
||||
"interface-name": [
|
||||
false
|
||||
],
|
||||
"array-type": [
|
||||
false
|
||||
],
|
||||
"member-access": [
|
||||
false
|
||||
],
|
||||
"no-empty-interface": false,
|
||||
"no-empty": false,
|
||||
"arrow-parens": false,
|
||||
"object-literal-sort-keys": false,
|
||||
"no-unused-expression": false,
|
||||
"max-classes-per-file": [
|
||||
false
|
||||
],
|
||||
"variable-name": [
|
||||
false
|
||||
],
|
||||
"one-line": [
|
||||
false
|
||||
],
|
||||
"one-variable-per-declaration": [
|
||||
false
|
||||
]
|
||||
},
|
||||
"rulesDirectory": []
|
||||
}
|
||||
1762
integration/typeorm/package-lock.json
generated
1762
integration/typeorm/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -9,18 +9,18 @@
|
||||
"start:prod": "node dist/main.js"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/common": "^5.2.0",
|
||||
"@nestjs/core": "^5.2.0",
|
||||
"@nestjs/typeorm": "^5.2.0",
|
||||
"mysql": "^2.15.0",
|
||||
"reflect-metadata": "^0.1.12",
|
||||
"rxjs": "^6.0.0",
|
||||
"typeorm": "^0.1.16",
|
||||
"typescript": "^3.1.0"
|
||||
"@nestjs/common": "6.2.0",
|
||||
"@nestjs/core": "6.2.0",
|
||||
"@nestjs/typeorm": "6.1.1",
|
||||
"mysql": "2.17.1",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rxjs": "6.5.2",
|
||||
"typeorm": "0.2.17",
|
||||
"typescript": "3.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^7.0.41",
|
||||
"ts-node": "^6.0.0",
|
||||
"tslint": "^5.9.1"
|
||||
"@types/node": "7.10.6",
|
||||
"ts-node": "8.1.0",
|
||||
"tslint": "5.16.0"
|
||||
}
|
||||
}
|
||||
|
||||
594
integration/websockets/package-lock.json
generated
594
integration/websockets/package-lock.json
generated
@@ -4,18 +4,596 @@
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
"rxjs": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.0.0.tgz",
|
||||
"integrity": "sha512-2MgLQr1zvks8+Kip4T6hcJdiBhV+SIvxguoWjhwtSpNPTp/5e09HJbgclCwR/nW0yWzhubM+6Q0prl8G5RuoBA==",
|
||||
"@nestjs/common": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/common/-/common-6.2.0.tgz",
|
||||
"integrity": "sha512-0svQuCrG6ofMYgHzk/GzJ+vpIkLq4vZmTeww1qLipggS40IjQ0+NzwEBOTr6TeHVDmsM2YDmIU1DJiaGy2o9Hw==",
|
||||
"requires": {
|
||||
"tslib": "1.9.0"
|
||||
"axios": "0.18.0",
|
||||
"cli-color": "1.4.0",
|
||||
"uuid": "3.3.2"
|
||||
}
|
||||
},
|
||||
"@nestjs/core": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/core/-/core-6.2.0.tgz",
|
||||
"integrity": "sha512-K5Wje2unjStkA7AG5sTSD9trx2BEf8asL5xOFT4DwG+ICB04JLebTwqwbQNi3RNZ3buL/pXNXIOOleOgqK7fGw==",
|
||||
"requires": {
|
||||
"@nuxtjs/opencollective": "0.2.1",
|
||||
"fast-safe-stringify": "2.0.6",
|
||||
"iterare": "1.1.2",
|
||||
"object-hash": "1.3.1",
|
||||
"optional": "0.1.4",
|
||||
"uuid": "3.3.2"
|
||||
}
|
||||
},
|
||||
"@nestjs/microservices": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/microservices/-/microservices-6.2.0.tgz",
|
||||
"integrity": "sha512-F4DNhF9qfKBL7v2toz4rlgfeuy8dVXslBNj0lFWDDjoANsYN5WYQVW5ygLbRkyb2ldlA/yBwfx/ULSBUHAvjZg==",
|
||||
"requires": {
|
||||
"iterare": "1.1.2",
|
||||
"json-socket": "0.3.0",
|
||||
"optional": "0.1.4"
|
||||
}
|
||||
},
|
||||
"@nestjs/testing": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/testing/-/testing-6.2.0.tgz",
|
||||
"integrity": "sha512-sAdXmZugvhYyp6tze5FdcH6tuIoDI0R8l7nI+PFDXuwxUSvfm8eHOloRbmYRD8ULGfY6OEvmO5uzoz/73IcMMw==",
|
||||
"requires": {
|
||||
"optional": "0.1.4"
|
||||
}
|
||||
},
|
||||
"@nestjs/websockets": {
|
||||
"version": "6.2.0",
|
||||
"resolved": "https://registry.npmjs.org/@nestjs/websockets/-/websockets-6.2.0.tgz",
|
||||
"integrity": "sha512-WMB97lgbrVy9XZAR5PiXcvGI8rIDA48/qlkuoeK5C64hDiM2F2C29PXidCR0AK+8PDkLTsp6tVJtkzpycQL5dw==",
|
||||
"requires": {
|
||||
"iterare": "1.1.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==",
|
||||
"requires": {
|
||||
"chalk": "^2.4.1",
|
||||
"consola": "^2.3.0",
|
||||
"node-fetch": "^2.3.0"
|
||||
}
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "7.10.6",
|
||||
"resolved": "https://registry.npmjs.org/@types/node/-/node-7.10.6.tgz",
|
||||
"integrity": "sha512-d0BOAicT0tEdbdVQlLGOVul1kvg6YvbaADRCThGCz5NJ0e9r00SofcR1x69hmlCyrHuB6jd4cKzL9bMLjPnpAA==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
|
||||
},
|
||||
"ansi-styles": {
|
||||
"version": "3.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
|
||||
"integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
|
||||
"requires": {
|
||||
"color-convert": "^1.9.0"
|
||||
}
|
||||
},
|
||||
"arg": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "https://registry.npmjs.org/arg/-/arg-4.1.0.tgz",
|
||||
"integrity": "sha512-ZWc51jO3qegGkVh8Hwpv636EkbesNV5ZNQPCtRa+0qytRYPEs9IYT9qITY9buezqUH5uqyzlWLcufrzU2rffdg==",
|
||||
"dev": true
|
||||
},
|
||||
"asynckit": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
|
||||
"integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=",
|
||||
"dev": true
|
||||
},
|
||||
"axios": {
|
||||
"version": "0.18.0",
|
||||
"resolved": "https://registry.npmjs.org/axios/-/axios-0.18.0.tgz",
|
||||
"integrity": "sha1-MtU+SFHv3AoRmTts0AB4nXDAUQI=",
|
||||
"requires": {
|
||||
"follow-redirects": "^1.3.0",
|
||||
"is-buffer": "^1.1.5"
|
||||
}
|
||||
},
|
||||
"buffer-from": {
|
||||
"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
|
||||
},
|
||||
"chalk": {
|
||||
"version": "2.4.2",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
|
||||
"integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
|
||||
"requires": {
|
||||
"ansi-styles": "^3.2.1",
|
||||
"escape-string-regexp": "^1.0.5",
|
||||
"supports-color": "^5.3.0"
|
||||
}
|
||||
},
|
||||
"class-transformer": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/class-transformer/-/class-transformer-0.2.2.tgz",
|
||||
"integrity": "sha512-wRKNNvdrSTOYut0ksO1/PTXFPTscbuGRB5R85FfdUuydGI+nXGPYeAByoifrfHFwadI2G4a7IQ5MXp9gnWNjFQ=="
|
||||
},
|
||||
"class-validator": {
|
||||
"version": "0.9.1",
|
||||
"resolved": "https://registry.npmjs.org/class-validator/-/class-validator-0.9.1.tgz",
|
||||
"integrity": "sha512-3wApflrd3ywVZyx4jaasGoFt8pmo4aGLPPAEKCKCsTRWVGPilahD88q3jQjRQwja50rl9a7rsP5LAxJYwGK8/Q==",
|
||||
"requires": {
|
||||
"google-libphonenumber": "^3.1.6",
|
||||
"validator": "10.4.0"
|
||||
}
|
||||
},
|
||||
"cli-color": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz",
|
||||
"integrity": "sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==",
|
||||
"requires": {
|
||||
"ansi-regex": "^2.1.1",
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.46",
|
||||
"es6-iterator": "^2.0.3",
|
||||
"memoizee": "^0.4.14",
|
||||
"timers-ext": "^0.1.5"
|
||||
}
|
||||
},
|
||||
"color-convert": {
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
|
||||
"integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
|
||||
"requires": {
|
||||
"color-name": "1.1.3"
|
||||
}
|
||||
},
|
||||
"color-name": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
|
||||
"integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
|
||||
},
|
||||
"combined-stream": {
|
||||
"version": "1.0.7",
|
||||
"resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.7.tgz",
|
||||
"integrity": "sha512-brWl9y6vOB1xYPZcpZde3N9zDByXTosAeMDo4p1wzo6UMOX4vumB+TP1RZ76sfE6Md68Q0NJSrE/gbezd4Ul+w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"delayed-stream": "~1.0.0"
|
||||
}
|
||||
},
|
||||
"component-emitter": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz",
|
||||
"integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=",
|
||||
"dev": true
|
||||
},
|
||||
"consola": {
|
||||
"version": "2.6.1",
|
||||
"resolved": "https://registry.npmjs.org/consola/-/consola-2.6.1.tgz",
|
||||
"integrity": "sha512-vt35owQG6OxYDJVaViQ4aFgOK+b98hIvs+R5CWkKgpO8rTPyaYwlMadZ7oZcjnWz1/+u4czDnrcogFr5AtrRug=="
|
||||
},
|
||||
"cookiejar": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/cookiejar/-/cookiejar-2.1.2.tgz",
|
||||
"integrity": "sha512-Mw+adcfzPxcPeI+0WlvRrr/3lGVO0bD75SxX6811cxSh1Wbxx7xZBGK1eVtDf6si8rg2lhnUjsVLMFMfbRIuwA==",
|
||||
"dev": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
|
||||
"integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=",
|
||||
"dev": true
|
||||
},
|
||||
"d": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/d/-/d-1.0.0.tgz",
|
||||
"integrity": "sha1-dUu1v+VUUdpppYuU1F9MWwRi1Y8=",
|
||||
"requires": {
|
||||
"es5-ext": "^0.10.9"
|
||||
}
|
||||
},
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"delayed-stream": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
|
||||
"integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=",
|
||||
"dev": true
|
||||
},
|
||||
"diff": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
|
||||
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
|
||||
"dev": true
|
||||
},
|
||||
"es5-ext": {
|
||||
"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",
|
||||
"next-tick": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"es6-iterator": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz",
|
||||
"integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.35",
|
||||
"es6-symbol": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"es6-symbol": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.1.tgz",
|
||||
"integrity": "sha1-vwDvT9q2uhtG7Le2KbTH7VcVzHc=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
},
|
||||
"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=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.14",
|
||||
"es6-iterator": "^2.0.1",
|
||||
"es6-symbol": "^3.1.1"
|
||||
}
|
||||
},
|
||||
"escape-string-regexp": {
|
||||
"version": "1.0.5",
|
||||
"resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
|
||||
"integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
|
||||
},
|
||||
"event-emitter": {
|
||||
"version": "0.3.5",
|
||||
"resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz",
|
||||
"integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "~0.10.14"
|
||||
}
|
||||
},
|
||||
"extend": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
|
||||
"integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==",
|
||||
"dev": true
|
||||
},
|
||||
"fast-safe-stringify": {
|
||||
"version": "2.0.6",
|
||||
"resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.6.tgz",
|
||||
"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==",
|
||||
"requires": {
|
||||
"debug": "^3.2.6"
|
||||
}
|
||||
},
|
||||
"form-data": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
|
||||
"integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"asynckit": "^0.4.0",
|
||||
"combined-stream": "^1.0.6",
|
||||
"mime-types": "^2.1.12"
|
||||
}
|
||||
},
|
||||
"formidable": {
|
||||
"version": "1.2.1",
|
||||
"resolved": "https://registry.npmjs.org/formidable/-/formidable-1.2.1.tgz",
|
||||
"integrity": "sha512-Fs9VRguL0gqGHkXS5GQiMCr1VhZBxz0JnJs4JmMp/2jL18Fmbzvv7vOFRU+U8TBkHEE/CX1qDXzJplVULgsLeg==",
|
||||
"dev": true
|
||||
},
|
||||
"google-libphonenumber": {
|
||||
"version": "3.2.2",
|
||||
"resolved": "https://registry.npmjs.org/google-libphonenumber/-/google-libphonenumber-3.2.2.tgz",
|
||||
"integrity": "sha512-ubjGeosYPeusjYbUHy76lCniGTTI0k1rIFc+uKBX+jHQLDmWOSUtlFUxaeoLJ+Y+PAMM6dWp+C1HjHx5BI8kEw=="
|
||||
},
|
||||
"has-flag": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
|
||||
"integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
|
||||
},
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz",
|
||||
"integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=",
|
||||
"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=="
|
||||
},
|
||||
"is-promise": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz",
|
||||
"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=="
|
||||
},
|
||||
"json-socket": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "https://registry.npmjs.org/json-socket/-/json-socket-0.3.0.tgz",
|
||||
"integrity": "sha512-jc8ZbUnYIWdxERFWQKVgwSLkGSe+kyzvmYxwNaRgx/c8NNyuHes4UHnPM3LUrAFXUx1BhNJ94n1h/KCRlbvV0g=="
|
||||
},
|
||||
"lru-queue": {
|
||||
"version": "0.1.0",
|
||||
"resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz",
|
||||
"integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=",
|
||||
"requires": {
|
||||
"es5-ext": "~0.10.2"
|
||||
}
|
||||
},
|
||||
"make-error": {
|
||||
"version": "1.3.5",
|
||||
"resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.5.tgz",
|
||||
"integrity": "sha512-c3sIjNUow0+8swNwVpqoH4YCShKNFkMaw6oH1mNS2haDZQqkeZFlHS3dhoeEbKKmJB4vXpJucU6oH75aDYeE9g==",
|
||||
"dev": true
|
||||
},
|
||||
"memoizee": {
|
||||
"version": "0.4.14",
|
||||
"resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz",
|
||||
"integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==",
|
||||
"requires": {
|
||||
"d": "1",
|
||||
"es5-ext": "^0.10.45",
|
||||
"es6-weak-map": "^2.0.2",
|
||||
"event-emitter": "^0.3.5",
|
||||
"is-promise": "^2.1",
|
||||
"lru-queue": "0.1",
|
||||
"next-tick": "1",
|
||||
"timers-ext": "^0.1.5"
|
||||
}
|
||||
},
|
||||
"methods": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz",
|
||||
"integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=",
|
||||
"dev": true
|
||||
},
|
||||
"mime": {
|
||||
"version": "1.4.1",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz",
|
||||
"integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-db": {
|
||||
"version": "1.38.0",
|
||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.38.0.tgz",
|
||||
"integrity": "sha512-bqVioMFFzc2awcdJZIzR3HjZFX20QhilVS7hytkKrv7xFAn8bM1gzc/FOX2awLISvWe0PV8ptFKcon+wZ5qYkg==",
|
||||
"dev": true
|
||||
},
|
||||
"mime-types": {
|
||||
"version": "2.1.22",
|
||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.22.tgz",
|
||||
"integrity": "sha512-aGl6TZGnhm/li6F7yx82bJiBZwgiEa4Hf6CNr8YO+r5UHr53tSTYZb102zyU50DOWWKeOv0uQLRL0/9EiKWCog==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mime-db": "~1.38.0"
|
||||
}
|
||||
},
|
||||
"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=="
|
||||
},
|
||||
"next-tick": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz",
|
||||
"integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw="
|
||||
},
|
||||
"node-fetch": {
|
||||
"version": "2.5.0",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.5.0.tgz",
|
||||
"integrity": "sha512-YuZKluhWGJwCcUu4RlZstdAxr8bFfOVHakc1mplwHkk8J+tqM1Y5yraYvIUpeX8aY7+crCwiELJq7Vl0o0LWXw=="
|
||||
},
|
||||
"object-hash": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.3.1.tgz",
|
||||
"integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA=="
|
||||
},
|
||||
"optional": {
|
||||
"version": "0.1.4",
|
||||
"resolved": "https://registry.npmjs.org/optional/-/optional-0.1.4.tgz",
|
||||
"integrity": "sha512-gtvrrCfkE08wKcgXaVwQVgwEQ8vel2dc5DDBn9RLQZ3YtmtkBss6A2HY6BnJH4N/4Ku97Ri/SF8sNWE2225WJw=="
|
||||
},
|
||||
"process-nextick-args": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz",
|
||||
"integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
||||
"dev": true
|
||||
},
|
||||
"reflect-metadata": {
|
||||
"version": "0.1.13",
|
||||
"resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz",
|
||||
"integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg=="
|
||||
},
|
||||
"rxjs": {
|
||||
"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"
|
||||
}
|
||||
},
|
||||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
|
||||
"integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map-support": {
|
||||
"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",
|
||||
"source-map": "^0.6.0"
|
||||
}
|
||||
},
|
||||
"superagent": {
|
||||
"version": "3.8.3",
|
||||
"resolved": "https://registry.npmjs.org/superagent/-/superagent-3.8.3.tgz",
|
||||
"integrity": "sha512-GLQtLMCoEIK4eDv6OGtkOoSMt3D+oq0y3dsxMuYuDvaNUvuT8eFBuLmfR0iYYzHC1e8hpzC6ZsxbuP6DIalMFA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"component-emitter": "^1.2.0",
|
||||
"cookiejar": "^2.1.0",
|
||||
"debug": "^3.1.0",
|
||||
"extend": "^3.0.0",
|
||||
"form-data": "^2.3.1",
|
||||
"formidable": "^1.2.0",
|
||||
"methods": "^1.1.1",
|
||||
"mime": "^1.4.1",
|
||||
"qs": "^6.5.1",
|
||||
"readable-stream": "^2.3.5"
|
||||
},
|
||||
"dependencies": {
|
||||
"isarray": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
|
||||
"integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=",
|
||||
"dev": true
|
||||
},
|
||||
"readable-stream": {
|
||||
"version": "2.3.6",
|
||||
"resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz",
|
||||
"integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"core-util-is": "~1.0.0",
|
||||
"inherits": "~2.0.3",
|
||||
"isarray": "~1.0.0",
|
||||
"process-nextick-args": "~2.0.0",
|
||||
"safe-buffer": "~5.1.1",
|
||||
"string_decoder": "~1.1.1",
|
||||
"util-deprecate": "~1.0.1"
|
||||
}
|
||||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-buffer": "~5.1.0"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"supertest": {
|
||||
"version": "4.0.2",
|
||||
"resolved": "https://registry.npmjs.org/supertest/-/supertest-4.0.2.tgz",
|
||||
"integrity": "sha512-1BAbvrOZsGA3YTCWqbmh14L0YEq0EGICX/nBnfkfVJn7SrxQV1I3pMYjSzG9y/7ZU2V9dWqyqk2POwxlb09duQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"methods": "^1.1.2",
|
||||
"superagent": "^3.8.3"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "5.5.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
|
||||
"integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
|
||||
"requires": {
|
||||
"has-flag": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"timers-ext": {
|
||||
"version": "0.1.7",
|
||||
"resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz",
|
||||
"integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==",
|
||||
"requires": {
|
||||
"es5-ext": "~0.10.46",
|
||||
"next-tick": "1"
|
||||
}
|
||||
},
|
||||
"ts-node": {
|
||||
"version": "8.1.0",
|
||||
"resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.1.0.tgz",
|
||||
"integrity": "sha512-34jpuOrxDuf+O6iW1JpgTRDFynUZ1iEqtYruBqh35gICNjN8x+LpVcPAcwzLPi9VU6mdA3ym+x233nZmZp445A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"arg": "^4.1.0",
|
||||
"diff": "^3.1.0",
|
||||
"make-error": "^1.1.1",
|
||||
"source-map-support": "^0.5.6",
|
||||
"yn": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"tslib": {
|
||||
"version": "1.9.0",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.0.tgz",
|
||||
"integrity": "sha512-f/qGG2tUkrISBlQZEjEqoZ3B2+npJjIf04H1wuAv9iA8i04Icp+61KRXxFdha22670NJopsZCIjhC3SnjPRKrQ=="
|
||||
"version": "1.9.3",
|
||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.9.3.tgz",
|
||||
"integrity": "sha512-4krF8scpejhaOgqzBEcGM7yDIEfi0/8+8zDRZhNZZ2kjmHJ4hv3zCbQWxoJGz1iw5U0Jl0nma13xzHXcncMavQ=="
|
||||
},
|
||||
"typescript": {
|
||||
"version": "3.4.5",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.4.5.tgz",
|
||||
"integrity": "sha512-YycBxUb49UUhdNMU5aJ7z5Ej2XGmaIBL0x34vZ82fn3hGvD+bgrMrVDpatgz2f7YxUMJxMkbWxJZeAvDxVe7Vw=="
|
||||
},
|
||||
"util-deprecate": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
|
||||
"integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=",
|
||||
"dev": true
|
||||
},
|
||||
"uuid": {
|
||||
"version": "3.3.2",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.2.tgz",
|
||||
"integrity": "sha512-yXJmeNaw3DnnKAOKJE51sL/ZaYfWJRl1pK9dr19YFCu0ObS231AB1/LbqTKRAQ5kw8A90rA6fr4riOUpTZvQZA=="
|
||||
},
|
||||
"validator": {
|
||||
"version": "10.4.0",
|
||||
"resolved": "https://registry.npmjs.org/validator/-/validator-10.4.0.tgz",
|
||||
"integrity": "sha512-Q/wBy3LB1uOyssgNlXSRmaf22NxjvDNZM2MtIQ4jaEOAB61xsh1TQxsq1CgzUMBV1lDrVMogIh8GjG1DYW0zLg=="
|
||||
},
|
||||
"yn": {
|
||||
"version": "3.1.0",
|
||||
"resolved": "https://registry.npmjs.org/yn/-/yn-3.1.0.tgz",
|
||||
"integrity": "sha512-kKfnnYkbTfrAdd0xICNFw7Atm8nKpLcLv9AZGEt+kczL/WQVai4e2V6ZN8U/O+iI6WrNuJjNNOyu4zfhl9D3Hg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -7,20 +7,20 @@
|
||||
"start": "ts-node src/main"
|
||||
},
|
||||
"dependencies": {
|
||||
"@nestjs/common": "^5.0.0",
|
||||
"@nestjs/core": "^5.0.0",
|
||||
"@nestjs/microservices": "^5.0.0",
|
||||
"@nestjs/testing": "^5.0.0",
|
||||
"@nestjs/websockets": "^5.0.0",
|
||||
"class-transformer": "^0.1.7",
|
||||
"class-validator": "^0.7.2",
|
||||
"reflect-metadata": "^0.1.12",
|
||||
"rxjs": "^6.0.0",
|
||||
"typescript": "^3.1.0"
|
||||
"@nestjs/common": "6.2.0",
|
||||
"@nestjs/core": "6.2.0",
|
||||
"@nestjs/microservices": "6.2.0",
|
||||
"@nestjs/testing": "6.2.0",
|
||||
"@nestjs/websockets": "6.2.0",
|
||||
"class-transformer": "0.2.2",
|
||||
"class-validator": "0.9.1",
|
||||
"reflect-metadata": "0.1.13",
|
||||
"rxjs": "6.5.2",
|
||||
"typescript": "3.4.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/node": "^7.0.41",
|
||||
"supertest": "^3.0.0",
|
||||
"ts-node": "^6.0.0"
|
||||
"@types/node": "7.10.6",
|
||||
"supertest": "4.0.2",
|
||||
"ts-node": "8.1.0"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3,5 +3,5 @@
|
||||
"packages": [
|
||||
"packages/*"
|
||||
],
|
||||
"version": "5.5.0"
|
||||
"version": "6.2.2"
|
||||
}
|
||||
|
||||
18435
package-lock.json
generated
18435
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
205
package.json
205
package.json
@@ -1,11 +1,10 @@
|
||||
{
|
||||
"name": "nestjs",
|
||||
"version": "5.4.1",
|
||||
"version": "6.2.1",
|
||||
"description": "Modern, fast, powerful node.js web framework",
|
||||
"scripts": {
|
||||
"coverage": "nyc report --reporter=text-lcov | coveralls",
|
||||
"precommit": "lint-staged",
|
||||
"test": "nyc --require ts-node/register mocha packages/**/*.spec.ts --reporter spec --require 'node_modules/reflect-metadata/Reflect.js'",
|
||||
"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'",
|
||||
"lint": "tslint -p tsconfig.json -c tslint.json \"packages/**/*.ts\" -e \"*.spec.ts\"",
|
||||
"format": "prettier **/**/*.ts --ignore-path ./.prettierignore --write && git status",
|
||||
@@ -15,11 +14,11 @@
|
||||
"build:dev": "gulp build --dist node_modules/@nestjs && gulp move",
|
||||
"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 --exact -m \"chore(@nestjs) publish %s release\"",
|
||||
"publish:rc": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --npm-tag=rc -m \"chore(@nestjs) publish %s release\"",
|
||||
"publish:next": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --npm-tag=next --skip-git -m \"chore(@nestjs) publish %s release\"",
|
||||
"publish:beta": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --npm-tag=beta -m \"chore(@nestjs) publish %s release\"",
|
||||
"publish:test": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --force-publish --npm-tag=test --skip-git -m \"chore(@nestjs) publish %s release\""
|
||||
"publish": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --force-publish --access public --exact -m \"chore(@nestjs) publish %s release\"",
|
||||
"publish:rc": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --npm-tag=rc --access public -m \"chore(@nestjs) publish %s release\"",
|
||||
"publish:next": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --npm-tag=next --access public --skip-git -m \"chore(@nestjs) publish %s release\"",
|
||||
"publish:beta": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --npm-tag=beta --access public -m \"chore(@nestjs) publish %s release\"",
|
||||
"publish:test": "npm run prerelease && npm run build && ./node_modules/.bin/lerna publish --force-publish --access public --npm-tag=test --skip-git -m \"chore(@nestjs) publish %s release\""
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8.9.0"
|
||||
@@ -31,99 +30,103 @@
|
||||
"author": "Kamil Mysliwiec",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@grpc/proto-loader": "^0.3.0",
|
||||
"@nestjs/common": "^5.5.0",
|
||||
"@nestjs/core": "^5.5.0",
|
||||
"@nestjs/microservices": "5.1.0",
|
||||
"@nestjs/testing": "5.1.0",
|
||||
"@nestjs/websockets": "5.1.0",
|
||||
"@nuxtjs/opencollective": "^0.1.0",
|
||||
"amqp-connection-manager": "^2.2.0",
|
||||
"amqplib": "^0.5.2",
|
||||
"axios": "^0.17.1",
|
||||
"cache-manager": "^2.9.0",
|
||||
"class-transformer": "^0.1.8",
|
||||
"class-validator": "^0.8.1",
|
||||
"cli-color": "^1.1.0",
|
||||
"connect": "^3.6.6",
|
||||
"cors": "^2.8.4",
|
||||
"engine.io-client": "^3.1.1",
|
||||
"express": "^4.16.2",
|
||||
"fast-json-stringify": "^1.5.4",
|
||||
"fast-safe-stringify": "^1.2.0",
|
||||
"fastify": "^1.1.1",
|
||||
"fastify-cors": "^0.2.0",
|
||||
"fastify-formbody": "^2.0.0",
|
||||
"fastify-multipart": "^0.4.1",
|
||||
"grpc": "^1.14.1",
|
||||
"http2": "^3.3.7",
|
||||
"iterare": "0.0.8",
|
||||
"json-socket": "^0.2.1",
|
||||
"mqtt": "^2.16.0",
|
||||
"multer": "^1.3.0",
|
||||
"nats": "^0.8.4",
|
||||
"object-hash": "^1.3.0",
|
||||
"optional": "^0.1.4",
|
||||
"path-to-regexp": "^2.2.1",
|
||||
"pump": "^3.0.0",
|
||||
"redis": "^2.7.1",
|
||||
"reflect-metadata": "^0.1.12",
|
||||
"rxjs": "^6.0.0",
|
||||
"rxjs-compat": "^6.0.0",
|
||||
"socket.io": "^2.1.1",
|
||||
"trouter": "^1.0.0",
|
||||
"ts-simple-ast": "^14.4.3",
|
||||
"uuid": "^3.3.2"
|
||||
"@grpc/proto-loader": "0.3.0",
|
||||
"@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.1",
|
||||
"amqp-connection-manager": "2.3.1",
|
||||
"amqplib": "0.5.3",
|
||||
"apollo-server-express": "2.5.0",
|
||||
"axios": "0.18.0",
|
||||
"cache-manager": "2.9.0",
|
||||
"class-transformer": "0.2.2",
|
||||
"class-validator": "0.9.1",
|
||||
"cli-color": "1.4.0",
|
||||
"connect": "3.7.0",
|
||||
"cors": "2.8.5",
|
||||
"engine.io-client": "3.3.2",
|
||||
"express": "4.17.0",
|
||||
"fast-json-stringify": "1.15.2",
|
||||
"fast-safe-stringify": "2.0.6",
|
||||
"fastify": "2.3.0",
|
||||
"fastify-cors": "2.1.3",
|
||||
"fastify-formbody": "3.1.0",
|
||||
"fastify-multipart": "0.8.2",
|
||||
"graphql": "14.3.0",
|
||||
"grpc": "1.20.0",
|
||||
"http2": "3.3.7",
|
||||
"iterare": "1.1.2",
|
||||
"merge-graphql-schemas": "1.5.8",
|
||||
"mqtt": "2.18.8",
|
||||
"multer": "1.4.1",
|
||||
"nats": "1.2.10",
|
||||
"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.5.2",
|
||||
"rxjs-compat": "6.5.2",
|
||||
"socket.io": "2.2.0",
|
||||
"ts-morph": "2.0.1",
|
||||
"uuid": "3.3.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/amqplib": "^0.5.7",
|
||||
"@types/cache-manager": "^1.2.6",
|
||||
"@types/chai": "^3.5.2",
|
||||
"@types/chai-as-promised": "0.0.31",
|
||||
"@types/cors": "^2.8.3",
|
||||
"@types/express": "^4.0.39",
|
||||
"@types/kafka-node": "^2.0.6",
|
||||
"@types/mocha": "^2.2.38",
|
||||
"@types/node": "^10.12.14",
|
||||
"@types/redis": "^0.12.36",
|
||||
"@types/amqplib": "0.5.11",
|
||||
"@types/cache-manager": "1.2.7",
|
||||
"@types/chai": "4.1.7",
|
||||
"@types/chai-as-promised": "7.1.0",
|
||||
"@types/cors": "2.8.5",
|
||||
"@types/express": "4.16.1",
|
||||
"@types/fastify-cors": "2.1.0",
|
||||
"@types/kafka-node": "2.0.8",
|
||||
"@types/mocha": "5.2.6",
|
||||
"@types/node": "10.14.7",
|
||||
"@types/redis": "2.8.12",
|
||||
"@types/reflect-metadata": "0.0.5",
|
||||
"@types/sinon": "^1.16.36",
|
||||
"@types/socket.io": "^1.4.32",
|
||||
"@types/ws": "^4.0.1",
|
||||
"awesome-typescript-loader": "^3.0.0-beta.18",
|
||||
"body-parser": "^1.18.3",
|
||||
"chai": "^3.5.0",
|
||||
"chai-as-promised": "^7.1.1",
|
||||
"clang-format": "^1.1.0",
|
||||
"concurrently": "^3.4.0",
|
||||
"conventional-changelog": "^1.1.15",
|
||||
"core-js": "^2.4.1",
|
||||
"coveralls": "^2.11.16",
|
||||
"delete-empty": "^2.0.0",
|
||||
"fastify-static": "^0.8.0",
|
||||
"gulp": "^4.0.0",
|
||||
"gulp-clang-format": "^1.0.23",
|
||||
"gulp-clean": "^0.4.0",
|
||||
"gulp-sourcemaps": "^2.6.4",
|
||||
"gulp-typescript": "^3.1.6",
|
||||
"gulp-watch": "^4.3.11",
|
||||
"husky": "^0.14.3",
|
||||
"imports-loader": "^0.7.0",
|
||||
"istanbul": "^0.4.5",
|
||||
"json-loader": "^0.5.4",
|
||||
"lerna": "^2.5.1",
|
||||
"lint-staged": "^7.2.2",
|
||||
"mocha": "^3.2.0",
|
||||
"nodemon": "^1.18.4",
|
||||
"nyc": "^10.1.2",
|
||||
"prettier": "^1.15.3",
|
||||
"sinon": "^2.1.0",
|
||||
"sinon-chai": "^2.8.0",
|
||||
"socket.io-client": "^2.0.4",
|
||||
"supertest": "^3.0.0",
|
||||
"ts-node": "^7.0.1",
|
||||
"tslint": "^5.11.0",
|
||||
"typescript": "^3.2.2"
|
||||
"@types/sinon": "7.0.11",
|
||||
"@types/socket.io": "2.1.2",
|
||||
"@types/ws": "6.0.1",
|
||||
"artillery": "1.6.0-28",
|
||||
"awesome-typescript-loader": "5.2.1",
|
||||
"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.1.8",
|
||||
"core-js": "3.0.1",
|
||||
"coveralls": "3.0.3",
|
||||
"csv-write-stream": "2.0.0",
|
||||
"delete-empty": "2.0.0",
|
||||
"fastify-static": "2.4.0",
|
||||
"gulp": "4.0.1",
|
||||
"gulp-clang-format": "1.0.27",
|
||||
"gulp-clean": "0.4.0",
|
||||
"gulp-sourcemaps": "2.6.5",
|
||||
"gulp-typescript": "5.0.1",
|
||||
"gulp-watch": "5.0.1",
|
||||
"husky": "1.3.1",
|
||||
"imports-loader": "0.8.0",
|
||||
"json-loader": "0.5.7",
|
||||
"lerna": "3.14.1",
|
||||
"lint-staged": "8.1.7",
|
||||
"memory-usage": "1.2.1",
|
||||
"mocha": "3.5.3",
|
||||
"nodemon": "1.19.0",
|
||||
"nyc": "14.1.1",
|
||||
"prettier": "1.17.1",
|
||||
"sinon": "7.3.2",
|
||||
"sinon-chai": "3.3.0",
|
||||
"socket.io-client": "2.2.0",
|
||||
"supertest": "4.0.2",
|
||||
"ts-node": "8.1.0",
|
||||
"tslint": "5.16.0",
|
||||
"typescript": "3.4.5"
|
||||
},
|
||||
"collective": {
|
||||
"type": "opencollective",
|
||||
@@ -141,6 +144,7 @@
|
||||
"packages/**/*.spec.ts",
|
||||
"packages/**/adapters/*.ts",
|
||||
"packages/**/nest-*.ts",
|
||||
"packages/**/test/**/*.ts",
|
||||
"packages/core/errors/**/*",
|
||||
"packages/common/exceptions/*.ts",
|
||||
"packages/common/http/*.ts",
|
||||
@@ -172,5 +176,10 @@
|
||||
"npm run format",
|
||||
"git add"
|
||||
]
|
||||
},
|
||||
"husky": {
|
||||
"hooks": {
|
||||
"pre-commit": "lint-staged"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
(The MIT License)
|
||||
|
||||
Copyright (c) 2018 Kamil Myśliwiec <https://kamilmysliwiec.com>
|
||||
Copyright (c) 2017-2019 Kamil Myśliwiec <http://kamilmysliwiec.com>
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of this software and associated documentation files (the
|
||||
|
||||
@@ -7,28 +7,29 @@
|
||||
[linux-image]: https://img.shields.io/travis/nestjs/nest/master.svg?label=linux
|
||||
[linux-url]: https://travis-ci.org/nestjs/nest
|
||||
|
||||
<p align="center">A progressive <a href="http://nodejs.org" target="blank">Node.js</a> framework for building efficient and scalable server-side applications, heavily inspired by <a href="https://angular.io" target="blank">Angular</a>.</p>
|
||||
<p align="center">A progressive <a href="http://nodejs.org" target="_blank">Node.js</a> framework for building efficient and scalable server-side applications, heavily inspired by <a href="https://angular.io" target="blank">Angular</a>.</p>
|
||||
<p align="center">
|
||||
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
|
||||
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
|
||||
<a href="https://www.npmjs.com/~nestjscore"><img src="https://img.shields.io/npm/dm/@nestjs/core.svg" alt="NPM Downloads" /></a>
|
||||
<a href="https://travis-ci.org/nestjs/nest"><img src="https://api.travis-ci.org/nestjs/nest.svg?branch=master" alt="Travis" /></a>
|
||||
<a href="https://travis-ci.org/nestjs/nest"><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"><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"><img src="https://badges.gitter.im/nestjs/nestjs.svg" alt="Gitter" /></a>
|
||||
<a href="https://opencollective.com/nest#backer"><img src="https://opencollective.com/nest/backers/badge.svg" alt="Backers on Open Collective" /></a>
|
||||
<a href="https://opencollective.com/nest#sponsor"><img src="https://opencollective.com/nest/sponsors/badge.svg" alt="Sponsors on Open Collective" /></a>
|
||||
<a href="https://paypal.me/kamilmysliwiec"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
|
||||
<a href="https://twitter.com/nestframework"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a>
|
||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/v/@nestjs/core.svg" alt="NPM Version" /></a>
|
||||
<a href="https://www.npmjs.com/~nestjscore" target="_blank"><img src="https://img.shields.io/npm/l/@nestjs/core.svg" alt="Package License" /></a>
|
||||
<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://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>
|
||||
<a href="https://paypal.me/kamilmysliwiec" target="_blank"><img src="https://img.shields.io/badge/Donate-PayPal-ff3f59.svg"/></a>
|
||||
<a href="https://twitter.com/nestframework" target="_blank"><img src="https://img.shields.io/twitter/follow/nestframework.svg?style=social&label=Follow"></a>
|
||||
</p>
|
||||
<!--[](https://opencollective.com/nest#backer)
|
||||
[](https://opencollective.com/nest#sponsor)-->
|
||||
|
||||
## Description
|
||||
|
||||
<p>Nest is a framework for building efficient, scalable <a href="http://nodejs.org" target="_blank">Node.js</a> server-side applications. It uses modern JavaScript, is built with <a href="http://www.typescriptlang.org" target="_blank">TypeScript</a> (preserves compatibility with pure JavaScript) and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).</p>
|
||||
Nest is a framework for building efficient, scalable <a href="http://nodejs.org" target="_blank">Node.js</a> server-side applications. It uses modern JavaScript, is built with <a href="http://www.typescriptlang.org" target="_blank">TypeScript</a> (preserves compatibility with pure JavaScript) and combines elements of OOP (Object Oriented Programming), FP (Functional Programming), and FRP (Functional Reactive Programming).
|
||||
|
||||
<p>Under the hood, Nest makes use of <a href="https://expressjs.com/" target="_blank">Express</a>, but also, provides compatibility with a wide range of other libraries, like e.g. <a href="https://github.com/fastify/fastify" target="blank">Fastify</a>, allowing for easy use of the myriad third-party plugins which are available.</p>
|
||||
<p>Under the hood, Nest makes use of <a href="https://expressjs.com/" target="_blank">Express</a>, but also, provides compatibility with a wide range of other libraries, like e.g. <a href="https://github.com/fastify/fastify" target="_blank">Fastify</a>, allowing for easy use of the myriad third-party plugins which are available.</p>
|
||||
|
||||
## Philosophy
|
||||
|
||||
@@ -40,30 +41,42 @@
|
||||
* To check out the [guide](https://docs.nestjs.com), visit [docs.nestjs.com](https://docs.nestjs.com). :books:
|
||||
* 要查看中文 [指南](readme_zh.md), 请访问 [docs.nestjs.cn](https://docs.nestjs.cn). :books:
|
||||
|
||||
## Consulting
|
||||
|
||||
With official support, you can get expert help straight from Nest core team. We provide dedicated technical support, migration strategies, advice on best practices (and design decisions), PR reviews, and team augmentation. Read more about [support here](https://docs.nestjs.com/enterprise).
|
||||
|
||||
## Support
|
||||
|
||||
Nest is an MIT-licensed open source project. It can grow thanks to the sponsors and support by the amazing backers. If you'd like to join them, please [read more here](https://docs.nestjs.com/support).
|
||||
|
||||
#### Principal Sponsor
|
||||
|
||||
<a href="https://valor-software.com/"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="320" /></a>
|
||||
|
||||
#### Gold Sponsors
|
||||
|
||||
<a href="http://xtremis.com/"><img src="https://nestjs.com/img/logo-xtremis.svg" width="220" /></a>
|
||||
<a href="https://valor-software.com/" target="_blank"><img src="https://docs.nestjs.com/assets/sponsors/valor-software.png" width="320" /></a>
|
||||
|
||||
#### Silver Sponsors
|
||||
<a href="https://neoteric.eu/"><img src="https://nestjs.com/img/neoteric-cut.png" width="120" /></a>
|
||||
<a href="http://gojob.com"><img src="http://nestjs.com/img/gojob-logo.png" valign="bottom" height="95" /></a> <a href="https://www.swingdev.io"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="150" /> </a>
|
||||
<a href="https://neoteric.eu/" target="_blank"><img src="https://nestjs.com/img/neoteric-cut.png" width="120" valign="middle" /></a>
|
||||
<a href="http://gojob.com" target="_blank"><img src="http://nestjs.com/img/gojob-logo.png" valign="middle" height="95" /></a>
|
||||
<a href="https://trilon.io" target="_blank"><img src="https://nestjs.com/img/trilon.svg" width="150" valign="middle" /></a>
|
||||
<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"><img src="https://nestjs.com/img/scalio-logo.svg" width="110" /></a> <a href="http://angularity.io"><img src="http://angularity.io/media/logo.svg" height="30" /></a> <!--<a href="https://keycdn.com"><img src="https://nestjs.com/img/keycdn.svg" height="30" /></a> --> <a href="https://hostpresto.com"><img src="https://nestjs.com/img/hostpresto.png" height="30" /></a> <a href="https://genuinebee.com/"><img src="https://nestjs.com/img/genuinebee.svg" height="38" /></a> <a href="http://architectnow.net/"><img src="https://nestjs.com/img/architectnow.png" height="24" /></a> <a href="https://quander.io/"><img src="https://nestjs.com/img/quander.png" height="28" /></a>
|
||||
<a href="https://www.swingdev.io" target="_blank"><img src="https://nestjs.com/img/swingdev-logo.svg#1" width="125" valign="middle" /> </a> <a href="https://blueanchor.io/" target="_blank"><img src="https://nestjs.com/img/blueanchor.png" width="180" valign="middle" /></a>
|
||||
<a href="https://www.novologic.com/" target="_blank"><img src="https://nestjs.com/img/novologic.png" width="130" valign="middle" /></a>
|
||||
<a href="https://scal.io" target="_blank"><img src="https://nestjs.com/img/scalio-logo.svg" width="110" valign="middle" /></a> <a href="http://angularity.io" target="_blank"><img src="http://angularity.io/media/logo.svg" height="26" valign="middle" /></a> <!--<a href="https://keycdn.com"><img src="https://nestjs.com/img/keycdn.svg" height="30" /></a> --> <a href="https://hostpresto.com" target="_blank"><img src="https://nestjs.com/img/hostpresto.png" height="30" valign="middle" /></a>
|
||||
|
||||
<a href="https://genuinebee.com/" target="_blank"><img src="https://nestjs.com/img/genuinebee.svg" height="36" valign="middle" /></a> <a href="http://architectnow.net/" target="_blank"><img src="https://nestjs.com/img/architectnow.png" height="24" valign="middle" /></a> <a href="https://quander.io/" target="_blank"><img src="https://nestjs.com/img/quander.png" height="28" valign="middle" /></a> <a href="https://mantro.net/" target="_blank"><img src="https://nestjs.com/img/mantro-logo.svg" height="20" valign="middle" /></a> <a href="https://triplebyte.com/" target="_blank"><img src="https://nestjs.com/img/triplebyte.png" height="30" valign="middle" /></a>
|
||||
<a href="https://ever.co/" target="_blank"><img src="https://nestjs.com/img/ever-logo.png" height="20" valign="middle" /></a>
|
||||
<a href="https://buddy.works/" target="_blank"><img src="https://nestjs.com/img/buddy-logo.svg" height="35" valign="middle" /></a>
|
||||
<a href="https://blokt.com" target="_blank"><img src="https://nestjs.com/img/blokt-logo.png" height="31" valign="middle" /></a>
|
||||
<a href="https://reposit.co.uk/" target="_blank"><img src="https://nestjs.com/img/reposit-logo.png" height="28" valign="middle" /></a> <a href="https://yakaz.com/" target="_blank"><img src="https://nestjs.com/img/yakaz.png" width="80" valign="middle" /></a>
|
||||
<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"><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
|
||||
|
||||
|
||||
4
packages/common/cache/cache.providers.ts
vendored
4
packages/common/cache/cache.providers.ts
vendored
@@ -8,7 +8,9 @@ export function createCacheManager(): Provider {
|
||||
return {
|
||||
provide: CACHE_MANAGER,
|
||||
useFactory: (options: CacheManagerOptions) => {
|
||||
const cacheManager = loadPackage('cache-manager', 'CacheModule');
|
||||
const cacheManager = loadPackage('cache-manager', 'CacheModule', () =>
|
||||
require('cache-manager'),
|
||||
);
|
||||
const memoryCache = cacheManager.caching({
|
||||
...defaultCacheOptions,
|
||||
...(options || {}),
|
||||
|
||||
@@ -1,5 +1,4 @@
|
||||
import { ReflectMetadata } from '../../decorators';
|
||||
import { SetMetadata } from '../../decorators';
|
||||
import { CACHE_KEY_METADATA } from '../cache.constants';
|
||||
|
||||
export const CacheKey = (key: string) =>
|
||||
ReflectMetadata(CACHE_KEY_METADATA, key);
|
||||
export const CacheKey = (key: string) => SetMetadata(CACHE_KEY_METADATA, key);
|
||||
|
||||
@@ -9,18 +9,18 @@ import {
|
||||
} from '../../interfaces';
|
||||
import { CACHE_KEY_METADATA, CACHE_MANAGER } from '../cache.constants';
|
||||
|
||||
const APPLICATION_REFERENCE_HOST = 'ApplicationReferenceHost';
|
||||
const HTTP_ADAPTER_HOST = 'HttpAdapterHost';
|
||||
const REFLECTOR = 'Reflector';
|
||||
|
||||
export interface ApplicationHost<T extends HttpServer = any> {
|
||||
applicationRef: T;
|
||||
export interface HttpAdapterHost<T extends HttpServer = any> {
|
||||
httpAdapter: T;
|
||||
}
|
||||
|
||||
@Injectable()
|
||||
export class CacheInterceptor implements NestInterceptor {
|
||||
@Optional()
|
||||
@Inject(APPLICATION_REFERENCE_HOST)
|
||||
protected readonly applicationRefHost: ApplicationHost;
|
||||
@Inject(HTTP_ADAPTER_HOST)
|
||||
protected readonly httpAdapterHost: HttpAdapterHost;
|
||||
|
||||
constructor(
|
||||
@Inject(CACHE_MANAGER) protected readonly cacheManager: any,
|
||||
@@ -49,16 +49,16 @@ export class CacheInterceptor implements NestInterceptor {
|
||||
}
|
||||
|
||||
trackBy(context: ExecutionContext): string | undefined {
|
||||
const httpServer = this.applicationRefHost.applicationRef;
|
||||
const isHttpApp = httpServer && !!httpServer.getRequestMethod;
|
||||
const httpAdapter = this.httpAdapterHost.httpAdapter;
|
||||
const isHttpApp = httpAdapter && !!httpAdapter.getRequestMethod;
|
||||
|
||||
if (!isHttpApp) {
|
||||
return this.reflector.get(CACHE_KEY_METADATA, context.getHandler());
|
||||
}
|
||||
const request = context.getArgByIndex(0);
|
||||
if (httpServer.getRequestMethod(request) !== 'GET') {
|
||||
if (httpAdapter.getRequestMethod(request) !== 'GET') {
|
||||
return undefined;
|
||||
}
|
||||
return httpServer.getRequestUrl(request);
|
||||
return httpAdapter.getRequestUrl(request);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,13 +1,30 @@
|
||||
import { PATH_METADATA } from '../../constants';
|
||||
import { isUndefined } from '../../utils/shared.utils';
|
||||
import { PATH_METADATA, SCOPE_OPTIONS_METADATA } from '../../constants';
|
||||
import { isString, isUndefined } from '../../utils/shared.utils';
|
||||
import { ScopeOptions } from './../../interfaces/scope-options.interface';
|
||||
|
||||
export interface ControllerOptions extends ScopeOptions {
|
||||
path?: string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Defines the controller. Controller can inject dependencies through constructor.
|
||||
* Those dependencies have to belong to the same module.
|
||||
*/
|
||||
export function Controller(prefix?: string): ClassDecorator {
|
||||
const path = isUndefined(prefix) ? '/' : prefix;
|
||||
export function Controller(): ClassDecorator;
|
||||
export function Controller(prefix: string): ClassDecorator;
|
||||
export function Controller(options: ControllerOptions): ClassDecorator;
|
||||
export function Controller(
|
||||
prefixOrOptions?: string | ControllerOptions,
|
||||
): ClassDecorator {
|
||||
const defaultPath = '/';
|
||||
const [path, scopeOptions] = isUndefined(prefixOrOptions)
|
||||
? [defaultPath, undefined]
|
||||
: isString(prefixOrOptions)
|
||||
? [prefixOrOptions, undefined]
|
||||
: [prefixOrOptions.path || defaultPath, { scope: prefixOrOptions.scope }];
|
||||
|
||||
return (target: object) => {
|
||||
Reflect.defineMetadata(PATH_METADATA, path, target);
|
||||
Reflect.defineMetadata(SCOPE_OPTIONS_METADATA, scopeOptions, target);
|
||||
};
|
||||
}
|
||||
|
||||
@@ -6,7 +6,7 @@ export * from './exception-filters.decorator';
|
||||
export * from './inject.decorator';
|
||||
export * from './injectable.decorator';
|
||||
export * from './optional.decorator';
|
||||
export * from './reflect-metadata.decorator';
|
||||
export * from './set-metadata.decorator';
|
||||
export * from './use-guards.decorator';
|
||||
export * from './use-interceptors.decorator';
|
||||
export * from './use-pipes.decorator';
|
||||
|
||||
@@ -1,8 +1,10 @@
|
||||
import { Logger } from './../../services/logger.service';
|
||||
|
||||
/**
|
||||
* Assigns the metadata to the class/function under specified `key`.
|
||||
* This metadata can be reflected using `Reflector` class.
|
||||
*/
|
||||
export const ReflectMetadata = <K = any, V = any>(
|
||||
export const SetMetadata = <K = any, V = any>(
|
||||
metadataKey: K,
|
||||
metadataValue: V,
|
||||
) => (target: object, key?: any, descriptor?: any) => {
|
||||
@@ -13,3 +15,17 @@ export const ReflectMetadata = <K = any, V = any>(
|
||||
Reflect.defineMetadata(metadataKey, metadataValue, target);
|
||||
return target;
|
||||
};
|
||||
|
||||
const logger = new Logger('ReflectMetadata');
|
||||
/**
|
||||
* @deprecated
|
||||
*/
|
||||
export const ReflectMetadata = <K = any, V = any>(
|
||||
metadataKey: K,
|
||||
metadataValue: V,
|
||||
) => {
|
||||
logger.warn(
|
||||
`DEPRECATED! The @ReflectMetadata() decorator has been deprecated within the 6.0.0 release. Please, use @SetMetadata() instead.`,
|
||||
);
|
||||
return SetMetadata(metadataKey, metadataValue);
|
||||
};
|
||||
@@ -1,6 +1,6 @@
|
||||
import { RequestMappingMetadata } from '../../interfaces/request-mapping-metadata.interface';
|
||||
import { METHOD_METADATA, PATH_METADATA } from '../../constants';
|
||||
import { RequestMethod } from '../../enums/request-method.enum';
|
||||
import { PATH_METADATA, METHOD_METADATA } from '../../constants';
|
||||
import { RequestMappingMetadata } from '../../interfaces/request-mapping-metadata.interface';
|
||||
|
||||
const defaultMetadata = {
|
||||
[PATH_METADATA]: '/',
|
||||
@@ -10,7 +10,8 @@ const defaultMetadata = {
|
||||
export const RequestMapping = (
|
||||
metadata: RequestMappingMetadata = defaultMetadata,
|
||||
): MethodDecorator => {
|
||||
const path = metadata[PATH_METADATA] || '/';
|
||||
const pathMetadata = metadata[PATH_METADATA];
|
||||
const path = pathMetadata && pathMetadata.length ? pathMetadata : '/';
|
||||
const requestMethod = metadata[METHOD_METADATA] || RequestMethod.GET;
|
||||
|
||||
return (target, key, descriptor: PropertyDescriptor) => {
|
||||
@@ -21,7 +22,7 @@ export const RequestMapping = (
|
||||
};
|
||||
|
||||
const createMappingDecorator = (method: RequestMethod) => (
|
||||
path?: string,
|
||||
path?: string | string[],
|
||||
): MethodDecorator => {
|
||||
return RequestMapping({
|
||||
[PATH_METADATA]: path,
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
export * from './request-method.enum';
|
||||
export * from './http-status.enum';
|
||||
export * from './shutdown-signal.enum';
|
||||
16
packages/common/enums/shutdown-signal.enum.ts
Normal file
16
packages/common/enums/shutdown-signal.enum.ts
Normal file
@@ -0,0 +1,16 @@
|
||||
/**
|
||||
* System signals which shut down a process
|
||||
*/
|
||||
export enum ShutdownSignal {
|
||||
SIGHUP = 'SIGHUP',
|
||||
SIGINT = 'SIGINT',
|
||||
SIGQUIT = 'SIGQUIT',
|
||||
SIGILL = 'SIGILL',
|
||||
SIGTRAP = 'SIGTRAP',
|
||||
SIGABRT = 'SIGABRT',
|
||||
SIGBUS = 'SIGBUS',
|
||||
SIGFPE = 'SIGFPE',
|
||||
SIGSEGV = 'SIGSEGV',
|
||||
SIGUSR2 = 'SIGUSR2',
|
||||
SIGTERM = 'SIGTERM',
|
||||
}
|
||||
@@ -2,7 +2,7 @@ export class HttpException extends Error {
|
||||
public readonly message: any;
|
||||
|
||||
/**
|
||||
* The base Nest Application exception, which is handled by the default Exceptions Handler.
|
||||
* Base Nest application exception, which is handled by the default Exceptions Handler.
|
||||
* If you throw an exception from your HTTP route handlers, Nest will map them to the appropriate HTTP response and send to the client.
|
||||
*
|
||||
* When `response` is an object:
|
||||
|
||||
@@ -47,6 +47,11 @@ export class HttpModule {
|
||||
imports: options.imports,
|
||||
providers: [
|
||||
...this.createAsyncProviders(options),
|
||||
{
|
||||
provide: AXIOS_INSTANCE_TOKEN,
|
||||
useFactory: (config: HttpModuleOptions) => Axios.create(config),
|
||||
inject: [HTTP_MODULE_OPTIONS],
|
||||
},
|
||||
{
|
||||
provide: HTTP_MODULE_ID,
|
||||
useValue: randomStringGenerator(),
|
||||
|
||||
@@ -9,8 +9,8 @@ export interface HttpModuleOptionsFactory {
|
||||
|
||||
export interface HttpModuleAsyncOptions
|
||||
extends Pick<ModuleMetadata, 'imports'> {
|
||||
useExisting?: Type<HttpModuleOptions>;
|
||||
useClass?: Type<HttpModuleOptions>;
|
||||
useExisting?: Type<HttpModuleOptionsFactory>;
|
||||
useClass?: Type<HttpModuleOptionsFactory>;
|
||||
useFactory?: (
|
||||
...args: any[]
|
||||
) => Promise<HttpModuleOptions> | HttpModuleOptions;
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user