mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-02-17 11:01:37 -05:00
Compare commits
3977 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
fe63123066 | ||
|
|
09915fe557 | ||
|
|
79f6382267 | ||
|
|
8e0754dc46 | ||
|
|
cfbadd1eae | ||
|
|
e27503dc5a | ||
|
|
8f3eff5066 | ||
|
|
baff602394 | ||
|
|
aa1cb31c2d | ||
|
|
f109afb242 | ||
|
|
4cba7ab81a | ||
|
|
c369613782 | ||
|
|
a9107a037b | ||
|
|
4e8b9ec9c1 | ||
|
|
810cd8c33b | ||
|
|
220d2379bc | ||
|
|
047c221834 | ||
|
|
f812e4fa5d | ||
|
|
e0af62ebbe | ||
|
|
2b39be8651 | ||
|
|
6ecaf97000 | ||
|
|
ee918e7b32 | ||
|
|
f50c111f06 | ||
|
|
2d989e1180 | ||
|
|
ecfac10949 | ||
|
|
a06a06bb58 | ||
|
|
3306f386f0 | ||
|
|
29509ccfbb | ||
|
|
fd29e35199 | ||
|
|
a4539daa62 | ||
|
|
d51bba8fe9 | ||
|
|
bd801ad8da | ||
|
|
d6768ba12e | ||
|
|
4c27001de5 | ||
|
|
f6b44865cc | ||
|
|
1e805a4156 | ||
|
|
2b5ae5e3a8 | ||
|
|
a1f600657a | ||
|
|
41315c6e0a | ||
|
|
b875d919d2 | ||
|
|
59b69311d7 | ||
|
|
1388493cc1 | ||
|
|
a8a7559229 | ||
|
|
a32f42d475 | ||
|
|
ef8205f918 | ||
|
|
749c42ce41 | ||
|
|
93a88e38fe | ||
|
|
6b8eafbf2e | ||
|
|
5d3178f649 | ||
|
|
476e3f7299 | ||
|
|
1f558dd2aa | ||
|
|
064ada1d2f | ||
|
|
e540096e07 | ||
|
|
061d3510b9 | ||
|
|
a9848a7a96 | ||
|
|
9dc7ca056f | ||
|
|
e452cd20d4 | ||
|
|
a3030aaf0d | ||
|
|
6870bdaf72 | ||
|
|
7ef8acf04e | ||
|
|
00fe535add | ||
|
|
8f6c5af94f | ||
|
|
8d7b3ef6ec | ||
|
|
dbf9d3426c | ||
|
|
6c86122aae | ||
|
|
fb52760be1 | ||
|
|
cdd3d1bf2a | ||
|
|
8e0050f2af | ||
|
|
770848850d | ||
|
|
dfa87eda86 | ||
|
|
fdef92ad6b | ||
|
|
283c64a29d | ||
|
|
710d0462d8 | ||
|
|
20c612d9fb | ||
|
|
2f90b56877 | ||
|
|
8c6d77e04d | ||
|
|
d58c15f98b | ||
|
|
da9e58485b | ||
|
|
c3fbce4b83 | ||
|
|
e1bbbf2c9e | ||
|
|
de263eacd1 | ||
|
|
561b881200 | ||
|
|
c2ef27cd68 | ||
|
|
c62394262a | ||
|
|
6f6bf3f3b3 | ||
|
|
00836e1890 | ||
|
|
2ba0de10df | ||
|
|
ca4ab55380 | ||
|
|
7080e3ec4e | ||
|
|
cf73cf5003 | ||
|
|
17621e4df3 | ||
|
|
c4a85bbd78 | ||
|
|
64dc9b365f | ||
|
|
9131653d71 | ||
|
|
74798f7cda | ||
|
|
a303144226 | ||
|
|
29bf016fb8 | ||
|
|
bcbf08122f | ||
|
|
0a61898303 | ||
|
|
a4a8beb6b4 | ||
|
|
cfbce96fe2 | ||
|
|
d0b71e116b | ||
|
|
98ff618efd | ||
|
|
c9c4ec2035 | ||
|
|
e01723f195 | ||
|
|
681e5f5077 | ||
|
|
637bc8d5ba | ||
|
|
06058d8925 | ||
|
|
87a7c659f2 | ||
|
|
47f91b8efb | ||
|
|
99d26fb769 | ||
|
|
74c2853f14 | ||
|
|
f278e2a7a2 | ||
|
|
c879d77b62 | ||
|
|
333ce37ae5 | ||
|
|
c4c23aa40d | ||
|
|
5e7071e466 | ||
|
|
a971aee5bd | ||
|
|
5168d3d975 | ||
|
|
340d8d37c9 | ||
|
|
6ad33aa879 | ||
|
|
eaf753f79e | ||
|
|
88fce764d3 | ||
|
|
935733d23c | ||
|
|
dc751dbde6 | ||
|
|
95107f1f61 | ||
|
|
77ba5a36aa | ||
|
|
8b68d524ee | ||
|
|
11e462796b | ||
|
|
487bd2693e | ||
|
|
4296a05d4f | ||
|
|
2242a80049 | ||
|
|
c86f301e0e | ||
|
|
691985af2d | ||
|
|
c390d62675 | ||
|
|
21fd8b22e7 | ||
|
|
fb4e400919 | ||
|
|
f725ee96b9 | ||
|
|
94bc0d9559 | ||
|
|
381a747b62 | ||
|
|
ad5c697f87 | ||
|
|
bacdaeecb6 | ||
|
|
1cf4478fc7 | ||
|
|
df1efc9e02 | ||
|
|
f13a5954a9 | ||
|
|
b922fc7d7a | ||
|
|
0c56e4a603 | ||
|
|
0f9f9c851e | ||
|
|
f02e2a4b72 | ||
|
|
4c82cf0ebb | ||
|
|
16c27baf10 | ||
|
|
127617402f | ||
|
|
0283d4d5ed | ||
|
|
d9e70731f4 | ||
|
|
ff8b03aa5e | ||
|
|
25c6bc9591 | ||
|
|
514b7f7743 | ||
|
|
a5cd755e41 | ||
|
|
2a1c422aef | ||
|
|
434d017a6b | ||
|
|
ddb210e971 | ||
|
|
26a00696d4 | ||
|
|
c9569d8573 | ||
|
|
233646330e | ||
|
|
70f65f45b5 | ||
|
|
960aa14027 | ||
|
|
3608e132cb | ||
|
|
83a8b13750 | ||
|
|
535e9d012a | ||
|
|
60c0ac6bd7 | ||
|
|
a7110d8916 | ||
|
|
46f72fef6a | ||
|
|
8db272cea4 | ||
|
|
4322234d0b | ||
|
|
a63bdfedd5 | ||
|
|
7b00e219ef | ||
|
|
a099b9e72a | ||
|
|
6b86cbdd6e | ||
|
|
f862d77f34 | ||
|
|
bb244e4b91 | ||
|
|
17164bdd26 | ||
|
|
168ef80d8f | ||
|
|
3f21caddb6 | ||
|
|
5ab6d3d07e | ||
|
|
5c6516cbb3 | ||
|
|
2ea85d12bb | ||
|
|
6f52977788 | ||
|
|
fe5b8157e1 | ||
|
|
c6d494e160 | ||
|
|
a940999c39 | ||
|
|
dff43687e2 | ||
|
|
d849ed9357 | ||
|
|
187667f4f1 | ||
|
|
6365bf515d | ||
|
|
24e6ed5075 | ||
|
|
6c68d742a7 | ||
|
|
6536896c7d | ||
|
|
684aedfffa | ||
|
|
1aab8aba34 | ||
|
|
02598621c3 | ||
|
|
59575aa305 | ||
|
|
c8a3fbca47 | ||
|
|
7687d6e22a | ||
|
|
22d7c9083e | ||
|
|
252c31bd5d | ||
|
|
75e3e4c8c9 | ||
|
|
57201fe6c7 | ||
|
|
5c6f334113 | ||
|
|
9ca17dbe7f | ||
|
|
d08a224550 | ||
|
|
06590ad0a2 | ||
|
|
3e5421dc43 | ||
|
|
193ecddb98 | ||
|
|
6e3d960d1d | ||
|
|
52a12f0d51 | ||
|
|
eafe659ec9 | ||
|
|
4339b5b7d3 | ||
|
|
72b2d9ef72 | ||
|
|
cf0f3b0426 | ||
|
|
48ec8e6dd8 | ||
|
|
3500ce08cc | ||
|
|
919275dadc | ||
|
|
d62bb1e9fc | ||
|
|
1f519024db | ||
|
|
acefe7b081 | ||
|
|
70af4cbe42 | ||
|
|
6b7c286891 | ||
|
|
258310ba81 | ||
|
|
cc3554e987 | ||
|
|
ce17a73ede | ||
|
|
e80aec586b | ||
|
|
fbe0f91a9f | ||
|
|
65a31de166 | ||
|
|
5d60254bb9 | ||
|
|
a68e74527e | ||
|
|
c903112451 | ||
|
|
3860f07cab | ||
|
|
61dce39f5a | ||
|
|
c4be667567 | ||
|
|
15d8e09491 | ||
|
|
2e4aee944c | ||
|
|
fb9ca4c021 | ||
|
|
f7c3484438 | ||
|
|
da41fda4bb | ||
|
|
4d6ec69eba | ||
|
|
d247af6619 | ||
|
|
2879da5ca5 | ||
|
|
c057dddb25 | ||
|
|
453f7fa5a4 | ||
|
|
0ac6a07c5f | ||
|
|
8fc8a79e26 | ||
|
|
3088c73e2b | ||
|
|
7305bdaec4 | ||
|
|
f2c3320f0e | ||
|
|
6816d2bd78 | ||
|
|
269318f7ef | ||
|
|
8b0b0a029e | ||
|
|
874717fee5 | ||
|
|
534eb3a6f8 | ||
|
|
678bbe3142 | ||
|
|
1d9c79aa1b | ||
|
|
7d53e744f3 | ||
|
|
28be33cfea | ||
|
|
84492049e8 | ||
|
|
7d31239e64 | ||
|
|
b2e0291a95 | ||
|
|
98ce3c74e6 | ||
|
|
d1b1550ce5 | ||
|
|
4f603888b9 | ||
|
|
5955953b4a | ||
|
|
0e0eb7f237 | ||
|
|
e9e2a0b8b4 | ||
|
|
1305743479 | ||
|
|
7e49eb85fb | ||
|
|
107b3171f2 | ||
|
|
8288360cc4 | ||
|
|
0d544660e0 | ||
|
|
6cf8f9ff35 | ||
|
|
3bcc2ce334 | ||
|
|
9db16c1f26 | ||
|
|
968f2d11f1 | ||
|
|
d59411c191 | ||
|
|
032b625ed1 | ||
|
|
e7f65f45f2 | ||
|
|
d49c1c9c2b | ||
|
|
f568ff82d8 | ||
|
|
e8dc0d15b7 | ||
|
|
fbb701d49c | ||
|
|
f49bfbc91b | ||
|
|
7496d09eb9 | ||
|
|
8f33e1c4c0 | ||
|
|
9a55b0275d | ||
|
|
f0d86f8acb | ||
|
|
690e3c582c | ||
|
|
62a0cb4dc9 | ||
|
|
65a4a56fd7 | ||
|
|
efb890697c | ||
|
|
ea80202cf7 | ||
|
|
14554f0d11 | ||
|
|
5f003d996f | ||
|
|
3dfc9ddf92 | ||
|
|
6d710c7144 | ||
|
|
5136a8b54c | ||
|
|
0ad7810ba0 | ||
|
|
76c80943ba | ||
|
|
b02b41815d | ||
|
|
d6b5489f93 | ||
|
|
d733cba35a | ||
|
|
f73d81bc13 | ||
|
|
c98eaaf5a1 | ||
|
|
283ffd7af6 | ||
|
|
21b650ba49 | ||
|
|
4763685237 | ||
|
|
e46521cafc | ||
|
|
d60b094e9b | ||
|
|
12ee13240a | ||
|
|
c70d68f889 | ||
|
|
47687ff6b2 | ||
|
|
0f10f44755 | ||
|
|
e0bdfc8b21 | ||
|
|
b83279c24c | ||
|
|
ef4ab4a59f | ||
|
|
452bd6a0cb | ||
|
|
ebf47224b7 | ||
|
|
dd697b337d | ||
|
|
1bcda64a1b | ||
|
|
1d1e21b579 | ||
|
|
b519d51052 | ||
|
|
19fab3fc9c | ||
|
|
9680b1e2cf | ||
|
|
aea772d631 | ||
|
|
abdd9af931 | ||
|
|
e95650da89 | ||
|
|
f934dea6ea | ||
|
|
8f7861deac | ||
|
|
e3218ade02 | ||
|
|
8eb67d58b3 | ||
|
|
0258b1727a | ||
|
|
d3e1675fc5 | ||
|
|
3212b06d49 | ||
|
|
35236a6107 | ||
|
|
18128d700d | ||
|
|
f550002d33 | ||
|
|
0ad2a351f8 | ||
|
|
dee02796c9 | ||
|
|
ddb9a806cc | ||
|
|
ab374e362a | ||
|
|
fc548be2c1 | ||
|
|
3fa0deed71 | ||
|
|
ff848b5903 | ||
|
|
eda25f72c1 | ||
|
|
f3d36c1b86 | ||
|
|
301ce1cf87 | ||
|
|
21e6ba92c2 | ||
|
|
264c34af97 | ||
|
|
923272f989 | ||
|
|
567c1be9fb | ||
|
|
3d2d791f18 | ||
|
|
f6e7b56946 | ||
|
|
2893659983 | ||
|
|
f220f6486a | ||
|
|
f94a9d0d58 | ||
|
|
9bcd7cdd80 | ||
|
|
5e1978e29f | ||
|
|
e4614582cd | ||
|
|
0fbc3d1cb6 | ||
|
|
3a70bea70d | ||
|
|
ea84e60fa0 | ||
|
|
10ac5fdfab | ||
|
|
1c621da4c7 | ||
|
|
6e5fc9c495 | ||
|
|
e3daec38c6 | ||
|
|
11636f8fc3 | ||
|
|
8c08d5117b | ||
|
|
fa62ec1f34 | ||
|
|
dac1970c43 | ||
|
|
e27a57715c | ||
|
|
e6ca724571 | ||
|
|
57d2ceec9d | ||
|
|
d87855cf1f | ||
|
|
1656a9c285 | ||
|
|
89a845d994 | ||
|
|
80901c9a7b | ||
|
|
0ace033a6f | ||
|
|
df5df38a55 | ||
|
|
4199cec393 | ||
|
|
9b296c9f42 | ||
|
|
dbb40d820c | ||
|
|
2ca6e7ae64 | ||
|
|
d7d13c7218 | ||
|
|
485e185270 | ||
|
|
8420d9f04e | ||
|
|
9a7810cbee | ||
|
|
0fd3b25ccd | ||
|
|
921e546fd7 | ||
|
|
5fe72d318b | ||
|
|
5105694fb3 | ||
|
|
53cb97af9b | ||
|
|
a7c4a259ad | ||
|
|
5498c1c3a9 | ||
|
|
3e5b7fd3e6 | ||
|
|
e3873828e0 | ||
|
|
db57eb9581 | ||
|
|
8d46aef40c | ||
|
|
cb2a02d82c | ||
|
|
52abcd68af | ||
|
|
5cb9b36329 | ||
|
|
13d2ce7d5d | ||
|
|
64c375a12d | ||
|
|
8449888db8 | ||
|
|
cebbd04d10 | ||
|
|
d7a425239b | ||
|
|
b4deca3b4b | ||
|
|
92e0b2e130 | ||
|
|
28230b67d4 | ||
|
|
af36d79c53 | ||
|
|
0999060827 | ||
|
|
0e6117f044 | ||
|
|
fdc21bfb9e | ||
|
|
d07455d2ea | ||
|
|
f8232be553 | ||
|
|
2a71032284 | ||
|
|
7ef753449f | ||
|
|
9ac9872533 | ||
|
|
0cae38f8ae | ||
|
|
93f35ca321 | ||
|
|
87e5239713 | ||
|
|
353115668c | ||
|
|
a9bfdf0fc9 | ||
|
|
0a3a0ec80f | ||
|
|
5b57b13005 | ||
|
|
7275641849 | ||
|
|
85b2e2ce6a | ||
|
|
04af41c424 | ||
|
|
046995f2a5 | ||
|
|
793f189a83 | ||
|
|
0bf569b2df | ||
|
|
750f6e6559 | ||
|
|
98f3f57f77 | ||
|
|
fb1fbb214d | ||
|
|
11f6790630 | ||
|
|
4ec281313f | ||
|
|
7b6d24c3c6 | ||
|
|
9d2f772380 | ||
|
|
8a6e918fff | ||
|
|
c818e7c391 | ||
|
|
335f6de8ac | ||
|
|
5aa8894686 | ||
|
|
e9339bb0d5 | ||
|
|
8370a24f8c | ||
|
|
53c726459e | ||
|
|
1d3568a2aa | ||
|
|
b202647090 | ||
|
|
4a87a12ac2 | ||
|
|
586c28bf79 | ||
|
|
c26bd3f8f7 | ||
|
|
e8959214fb | ||
|
|
c6f87ff088 | ||
|
|
89cf3ff515 | ||
|
|
6cd2d213ca | ||
|
|
98f2d5510f | ||
|
|
a1930bdc59 | ||
|
|
ce81a0a81c | ||
|
|
7f1d8fc32f | ||
|
|
3603f55d97 | ||
|
|
a018058169 | ||
|
|
1e8a9c47cb | ||
|
|
7633c810aa | ||
|
|
6a02287dc6 | ||
|
|
cde836641a | ||
|
|
fb67f9f860 | ||
|
|
ab97e38f91 | ||
|
|
eeb3cc5d8a | ||
|
|
b1081bb610 | ||
|
|
7bd1dfdf0f | ||
|
|
52f33cc587 | ||
|
|
8311c3985d | ||
|
|
9d1b99f1d3 | ||
|
|
f50ab4c6cd | ||
|
|
d88918ab40 | ||
|
|
883dcc9789 | ||
|
|
cd34236f30 | ||
|
|
92ea0c3f5a | ||
|
|
94da31569e | ||
|
|
a4ae2ca65f | ||
|
|
a34feb4448 | ||
|
|
4f1d4276a0 | ||
|
|
33e7641400 | ||
|
|
097289d94c | ||
|
|
15e592647e | ||
|
|
c11cb420cd | ||
|
|
25d72f8d5d | ||
|
|
4e1e116c83 | ||
|
|
dd6b958898 | ||
|
|
6f066e90ef | ||
|
|
cb26c1c409 | ||
|
|
67b6f6ffcd | ||
|
|
6200075624 | ||
|
|
08bb6414b1 | ||
|
|
0735f82548 | ||
|
|
5304d65586 | ||
|
|
b3492e3f57 | ||
|
|
05526bbaca | ||
|
|
ea310ff15d | ||
|
|
b02a5f9e49 | ||
|
|
9a5f5d224f | ||
|
|
b568b8509d | ||
|
|
530ec8c19d | ||
|
|
02ae1ecff8 | ||
|
|
2817316cf4 | ||
|
|
04ec347eeb | ||
|
|
07a65dd64f | ||
|
|
5b19fe7c67 | ||
|
|
e8bc6f8f6b | ||
|
|
8435dc468e | ||
|
|
51f47fbdee | ||
|
|
be8acb058a | ||
|
|
f44e78aef4 | ||
|
|
3566da328a | ||
|
|
5089b5c8bd | ||
|
|
9d9788d16f | ||
|
|
c649890398 | ||
|
|
97108bdeea | ||
|
|
e6d882c9b5 | ||
|
|
4e92c27189 | ||
|
|
916ac7c7d1 | ||
|
|
251fa220d5 | ||
|
|
a58d4d7d05 | ||
|
|
3cb49686a5 | ||
|
|
c728f23893 | ||
|
|
30607ec61b | ||
|
|
b6b72de706 | ||
|
|
e1f2f7479f | ||
|
|
3f77832e4b | ||
|
|
fac2982d7a | ||
|
|
4e69eabf52 | ||
|
|
37b14d83a6 | ||
|
|
bb7255b87e | ||
|
|
0cdda5ed1b | ||
|
|
fb1292426b | ||
|
|
b9b3c1071e | ||
|
|
fb524af850 | ||
|
|
2b2a275fb0 | ||
|
|
a8cf029633 | ||
|
|
fc70ddd104 | ||
|
|
84205831a8 | ||
|
|
d9b7711a2c | ||
|
|
3f08d5d714 | ||
|
|
8c491d36f4 | ||
|
|
3aa357629d | ||
|
|
15fc4517ee | ||
|
|
0382c561f3 | ||
|
|
e450369d5e | ||
|
|
b1a9c8418b | ||
|
|
ba41e926c4 | ||
|
|
3eab267da6 | ||
|
|
4856e0a978 | ||
|
|
8fd20c2069 | ||
|
|
e5cf13726e | ||
|
|
8ff53281f9 | ||
|
|
433049d1b2 | ||
|
|
06abda74a6 | ||
|
|
510c12677e | ||
|
|
23f1a08aa0 | ||
|
|
82f21faf79 | ||
|
|
59f440dfb4 | ||
|
|
c2e7324381 | ||
|
|
0de774eb75 | ||
|
|
238acb1468 | ||
|
|
db49a146b0 | ||
|
|
b93f43d1c2 | ||
|
|
ffdde0209b | ||
|
|
21964e15b0 | ||
|
|
8e164973ee | ||
|
|
c428a3aebf | ||
|
|
06c1db5417 | ||
|
|
1868a7d370 | ||
|
|
fca2344c2e | ||
|
|
ddaf9a7eb6 | ||
|
|
fd314ec030 | ||
|
|
6bc123d76b | ||
|
|
f056086662 | ||
|
|
d580c13be1 | ||
|
|
592801d74c | ||
|
|
63006e6e63 | ||
|
|
6d9f235704 | ||
|
|
c2b8fcde45 | ||
|
|
9819e97f7b | ||
|
|
9c876f869a | ||
|
|
51da14ddda | ||
|
|
1d22e23c2d | ||
|
|
4c01482a8f | ||
|
|
2247682863 | ||
|
|
19a11ba94b | ||
|
|
f95864ff82 | ||
|
|
11c34f36d7 | ||
|
|
39fdfa5cba | ||
|
|
a0eac49ae6 | ||
|
|
35f1a014d5 | ||
|
|
00cc0074f7 | ||
|
|
d5da2f921b | ||
|
|
a8c48fab78 | ||
|
|
d707b92fdc | ||
|
|
548c69e074 | ||
|
|
177a58c81d | ||
|
|
87b892d13f | ||
|
|
c102322594 | ||
|
|
ec46783e47 | ||
|
|
6e6649d006 | ||
|
|
589de854d5 | ||
|
|
ce12bae00f | ||
|
|
77db2d3ac0 | ||
|
|
a39792af17 | ||
|
|
fae73fe6ff | ||
|
|
223aa3fe0e | ||
|
|
41d21d799c | ||
|
|
dd56908a06 | ||
|
|
0bfbdc62ed | ||
|
|
0e27aaa61f | ||
|
|
f99f41b712 | ||
|
|
ee8f53fbbc | ||
|
|
5abfd80a64 | ||
|
|
fc726c1477 | ||
|
|
2b111c6bfd | ||
|
|
7ed66d0ae1 | ||
|
|
4500e887bb | ||
|
|
6b9184aa15 | ||
|
|
1203c3b211 | ||
|
|
d832839b23 | ||
|
|
e149c0580c | ||
|
|
b23413d944 | ||
|
|
d363ea33b5 | ||
|
|
bb135d6c67 | ||
|
|
cbc7d6fcac | ||
|
|
9b641490ea | ||
|
|
90277d627c | ||
|
|
9c842e7548 | ||
|
|
e1490b3536 | ||
|
|
a64304602e | ||
|
|
586ec50916 | ||
|
|
a8fd578d42 | ||
|
|
626fc7894b | ||
|
|
068e1488cf | ||
|
|
a9240f38f7 | ||
|
|
52f7ab121d | ||
|
|
be83b31e37 | ||
|
|
fa43e26650 | ||
|
|
bb6e4e5ff1 | ||
|
|
dfeaaf384f | ||
|
|
68510d54cb | ||
|
|
fd950391e4 | ||
|
|
f5d640e7d0 | ||
|
|
5c63419d0d | ||
|
|
2c05b07ee4 | ||
|
|
dd132a25e7 | ||
|
|
f5134198e2 | ||
|
|
685e0ccf7e | ||
|
|
4241ca523e | ||
|
|
7778721ac9 | ||
|
|
d4434016d0 | ||
|
|
ab82c04766 | ||
|
|
176edde2aa | ||
|
|
74b0dc28c4 | ||
|
|
c2228b9fe8 | ||
|
|
d810da9d87 | ||
|
|
6e5fbc9012 | ||
|
|
c0962d804b | ||
|
|
89ef1b0c2e | ||
|
|
29741d684e | ||
|
|
c15ac474d7 | ||
|
|
c35221c076 | ||
|
|
5a0dd18cba | ||
|
|
aff5f2786d | ||
|
|
df1b0c908e | ||
|
|
a7dbb68f7d | ||
|
|
a649461409 | ||
|
|
dd8fb9433b | ||
|
|
1520441b84 | ||
|
|
35b27f1304 | ||
|
|
5557929b08 | ||
|
|
4cb9009606 | ||
|
|
84f67f61c4 | ||
|
|
03ce5d1ba7 | ||
|
|
2cb77441ad | ||
|
|
166f0d164e | ||
|
|
e100b8f88e | ||
|
|
a884f6a39d | ||
|
|
ae1f3df490 | ||
|
|
502621e2e1 | ||
|
|
61831d8642 | ||
|
|
5ee7454793 | ||
|
|
1e1cd2f797 | ||
|
|
cc6cc2889a | ||
|
|
bd8c4a44c8 | ||
|
|
19dec78349 | ||
|
|
6c8a7dc97f | ||
|
|
fa6898ded7 | ||
|
|
a53b78c0c8 | ||
|
|
81e1b9a434 | ||
|
|
1affd5f728 | ||
|
|
5429850a98 | ||
|
|
0ad40c1baa | ||
|
|
b9ce15158d | ||
|
|
7ed072c44d | ||
|
|
0405658be7 | ||
|
|
11cf5654bf | ||
|
|
919b058175 | ||
|
|
13d2f39004 | ||
|
|
1e6f102352 | ||
|
|
64eb406fdc | ||
|
|
d6d33165f1 | ||
|
|
6a1037ab2d | ||
|
|
4a54f53ae3 | ||
|
|
71e72de792 | ||
|
|
dbd9e5be2d | ||
|
|
56851dedd2 | ||
|
|
8a548c2b56 | ||
|
|
1699dd0729 | ||
|
|
d5fdec5699 | ||
|
|
744e655dd3 | ||
|
|
a7e56d334f | ||
|
|
7658a5df28 | ||
|
|
6652801861 | ||
|
|
1a831f94ed | ||
|
|
f7360771f0 | ||
|
|
c9170aaf0e | ||
|
|
8196f86386 | ||
|
|
b5592959c7 | ||
|
|
a68a6b9e44 | ||
|
|
8745714c86 | ||
|
|
06cbde054d | ||
|
|
0226ad69da | ||
|
|
ba0d5feca3 | ||
|
|
c9a68ddc1e | ||
|
|
a27e60b6ad | ||
|
|
dbc20c1f67 | ||
|
|
edd396f0fe | ||
|
|
37042a24bc | ||
|
|
a2935fca3a | ||
|
|
96f0ae79ca | ||
|
|
7caeba8549 | ||
|
|
2c34e07064 | ||
|
|
4a3fdd1ad5 | ||
|
|
75cdc19715 | ||
|
|
ad472c80be | ||
|
|
324451ea22 | ||
|
|
4c3e48773d | ||
|
|
16fab722d5 | ||
|
|
de65cd84a9 | ||
|
|
a013f7d6ff | ||
|
|
0a117fbd00 | ||
|
|
268463b5c7 | ||
|
|
b02273de48 | ||
|
|
efc8294f70 | ||
|
|
3a1cd98856 | ||
|
|
80ed6131ce | ||
|
|
96935f2f87 | ||
|
|
1fb3faeda1 | ||
|
|
6e14f13753 | ||
|
|
3be3563b0d | ||
|
|
b017634431 | ||
|
|
964ff0119e | ||
|
|
86b92b9a87 | ||
|
|
9f9c65591d | ||
|
|
a93f5883b9 | ||
|
|
5578693635 | ||
|
|
9cc31bee62 | ||
|
|
6f17f0de58 | ||
|
|
20f7670b32 | ||
|
|
f3a255a7f7 | ||
|
|
e1a0835140 | ||
|
|
cfcee3287a | ||
|
|
0a9a0d3f46 | ||
|
|
34a7340a18 | ||
|
|
95f0ae32db | ||
|
|
2b427d8a62 | ||
|
|
c6447d3280 | ||
|
|
d363bfb0da | ||
|
|
2ac6852cf1 | ||
|
|
8f15c05d8a | ||
|
|
76cf10d23c | ||
|
|
673e5a85cb | ||
|
|
997e91f19c | ||
|
|
a93cc68e24 | ||
|
|
eb1218b651 | ||
|
|
df5a8dcb6a | ||
|
|
837404b2d6 | ||
|
|
9f62e2bf22 | ||
|
|
299568a506 | ||
|
|
47c77cc2a7 | ||
|
|
0f9d98730e | ||
|
|
ff0992510b | ||
|
|
9293d3654c | ||
|
|
886329cd67 | ||
|
|
00d0e4778b | ||
|
|
89786bea04 | ||
|
|
efab499f1f | ||
|
|
b5b65117a7 | ||
|
|
c1f6a67829 | ||
|
|
01db78f743 | ||
|
|
6383bc7ebd | ||
|
|
4c3d51aa52 | ||
|
|
5d13ebf0d2 | ||
|
|
70851716f7 | ||
|
|
c8bcd25832 | ||
|
|
2de3bd3209 | ||
|
|
1c9841c8e6 | ||
|
|
2448a109fc | ||
|
|
c05ff67622 | ||
|
|
d6b5d3c6b1 | ||
|
|
80baa4a732 | ||
|
|
2ae3810dac | ||
|
|
7d7a7e2e37 | ||
|
|
29cf1f898e | ||
|
|
924815353d | ||
|
|
6cf82d2611 | ||
|
|
73d9b7f22a | ||
|
|
412214e193 | ||
|
|
ff207859d6 | ||
|
|
067fcc8dfb | ||
|
|
d2892ff78b | ||
|
|
a9056bbba5 | ||
|
|
70352f94ea | ||
|
|
b1d58767c4 | ||
|
|
4a9c47d3d6 | ||
|
|
628fd8d74d | ||
|
|
d7ea1123ef | ||
|
|
eeae87ea32 | ||
|
|
1a639f83c4 | ||
|
|
933cfb21ef | ||
|
|
5982925ed7 | ||
|
|
9090143f9d | ||
|
|
10b681b3c8 | ||
|
|
de5f1eb780 | ||
|
|
c446cea3a0 | ||
|
|
41a90c01c3 | ||
|
|
1b78a9b1e0 | ||
|
|
c74bac3746 | ||
|
|
4c54b5dbac | ||
|
|
8fe0a13b61 | ||
|
|
2fc0e28e57 | ||
|
|
c6bc68f399 | ||
|
|
0cec223301 | ||
|
|
ab6fb810f8 | ||
|
|
7eef23f232 | ||
|
|
1d0f76d26a | ||
|
|
cec7753e3d | ||
|
|
161ea001c0 | ||
|
|
f2ffa6c7e5 | ||
|
|
5194ee2f9b | ||
|
|
1e308639e5 | ||
|
|
98584d32a7 | ||
|
|
5672500af2 | ||
|
|
d69cda80c3 | ||
|
|
47e716d3b2 | ||
|
|
6bd3ed72dd | ||
|
|
48c3702c7a | ||
|
|
506c6a5e5f | ||
|
|
873c6a39fe | ||
|
|
74b89a0a85 | ||
|
|
6b0332b2d1 | ||
|
|
2d70ff7f4e | ||
|
|
dd5c0ce08f | ||
|
|
71375808b9 | ||
|
|
0c56d44e4f | ||
|
|
321b41b7e1 | ||
|
|
2503b18d4b | ||
|
|
bbf6fcb0fc | ||
|
|
6e5b13ac8f | ||
|
|
30c8182f16 | ||
|
|
f10a504f45 | ||
|
|
844bf04c42 | ||
|
|
17bb895f7c | ||
|
|
e257612e82 | ||
|
|
3d8ed48bee | ||
|
|
73ea8b79b2 | ||
|
|
9af1f3b0eb | ||
|
|
fa3eaa59f5 | ||
|
|
fcec5f2b59 | ||
|
|
92fa296533 | ||
|
|
085752f111 | ||
|
|
0f934081e1 | ||
|
|
3a8b74a311 | ||
|
|
45341d786b | ||
|
|
eac05c85f1 | ||
|
|
c11c7d2f0e | ||
|
|
ac6a27b9c2 | ||
|
|
5d81d70a9a | ||
|
|
68061de010 | ||
|
|
2af13c18d2 | ||
|
|
8c61538a27 | ||
|
|
1a2381cc7c | ||
|
|
5283a7c874 | ||
|
|
ec0a7a29d3 | ||
|
|
aa22466c0f | ||
|
|
fe9ffddd3b | ||
|
|
39ac8498dc | ||
|
|
b4e30e17af | ||
|
|
32ac169906 | ||
|
|
df3f1768f7 | ||
|
|
343daf58fe | ||
|
|
8e67b104c3 | ||
|
|
4b2121e3f8 | ||
|
|
10d817b6b4 | ||
|
|
2208666eef | ||
|
|
9c7f844d59 | ||
|
|
86ad477c77 | ||
|
|
62df5359e2 | ||
|
|
5a2bbc0375 | ||
|
|
2cce8b21c8 | ||
|
|
56a6f70c0d | ||
|
|
c6689700f6 | ||
|
|
5b2c14f11a | ||
|
|
402d693885 | ||
|
|
7d751a20ab | ||
|
|
261e6fa89e | ||
|
|
637a33c7a7 | ||
|
|
56695be14a | ||
|
|
ddfdd43fc3 | ||
|
|
648287fa85 | ||
|
|
de27f2c2a5 | ||
|
|
8ff0ee59c5 | ||
|
|
a5a8c9761e | ||
|
|
89554e5c14 | ||
|
|
5618799305 | ||
|
|
32a89676f1 | ||
|
|
461dd79bc2 | ||
|
|
7ef3f003dd | ||
|
|
0c1edc1aeb | ||
|
|
2dfd75352f | ||
|
|
136a1d8cee | ||
|
|
5fd29d5ad8 | ||
|
|
64929de09d | ||
|
|
fefe1454de | ||
|
|
0eaee18dc4 | ||
|
|
28fff9ace8 | ||
|
|
a41073adbf | ||
|
|
379eae22ed | ||
|
|
f49fe59e1f | ||
|
|
9e61c468d1 | ||
|
|
7e0c7e35a1 | ||
|
|
b02bf17d1f | ||
|
|
510b84df3c | ||
|
|
2eebcab74a | ||
|
|
5ccc0fd97b | ||
|
|
76967d9467 | ||
|
|
eb0ee387ec | ||
|
|
bd7aac8ee0 | ||
|
|
977111eb21 | ||
|
|
5ccde42213 | ||
|
|
8b9aeb8679 | ||
|
|
308dfee963 | ||
|
|
f22dacadbe | ||
|
|
13d4ab22b1 | ||
|
|
968d570073 | ||
|
|
638eb151dd | ||
|
|
52e3c2f9c7 | ||
|
|
d517cf0c8c | ||
|
|
9acd757f6a | ||
|
|
167a9f991a | ||
|
|
5cebfb3013 | ||
|
|
4e5d001a9c | ||
|
|
09b578a169 | ||
|
|
d3105beb43 | ||
|
|
74c2d16660 | ||
|
|
c09e7b9e2f | ||
|
|
88126c68e7 | ||
|
|
455de9add6 | ||
|
|
2f6c944317 | ||
|
|
0059ffb777 | ||
|
|
12ba85ec33 | ||
|
|
c161f8d8ad | ||
|
|
206738db63 | ||
|
|
7ecb6b4427 | ||
|
|
0c47a4486b | ||
|
|
c79929fdd2 | ||
|
|
61cbc5eff0 | ||
|
|
fa4ad6cdb9 | ||
|
|
1b26dc0558 | ||
|
|
833313c72b | ||
|
|
8a0824c1c6 | ||
|
|
2d2376a2a6 | ||
|
|
774151b6e9 | ||
|
|
041f34beda | ||
|
|
b1526603cc | ||
|
|
6070922579 | ||
|
|
8cdb5b36a9 | ||
|
|
ad68fddbc9 | ||
|
|
dd8b12f805 | ||
|
|
c5d3251bb5 | ||
|
|
48b6dd796b | ||
|
|
362af3c153 | ||
|
|
fa2fcf2e40 | ||
|
|
8529b52e73 | ||
|
|
ef5ca7bc3a | ||
|
|
5b34dd2eee | ||
|
|
d647dbde09 | ||
|
|
d2e367c139 | ||
|
|
c3ddbba997 | ||
|
|
51ab435e5f | ||
|
|
4a8609c3ef | ||
|
|
03df1edcf8 | ||
|
|
5bd983e7a3 | ||
|
|
4293d53e79 | ||
|
|
ce10c3ac3f | ||
|
|
74caccdfe6 | ||
|
|
778a34a9d2 | ||
|
|
102d820935 | ||
|
|
4a4e6dd90c | ||
|
|
82a08d108b | ||
|
|
099916bf19 | ||
|
|
48dcb7258e | ||
|
|
e181cf2fcd | ||
|
|
746b4d7815 | ||
|
|
a67e3abb4c | ||
|
|
30d9e9c141 | ||
|
|
0fd870d156 | ||
|
|
768d333b35 | ||
|
|
2058682743 | ||
|
|
1c0f7c6702 | ||
|
|
9e0ba700c1 | ||
|
|
ea5f9be441 | ||
|
|
6b5c31410d | ||
|
|
8e4d0ad446 | ||
|
|
0a6dc2720d | ||
|
|
ef8c0e91e6 | ||
|
|
2f6c764869 | ||
|
|
73b9849dd5 | ||
|
|
64e217eac2 | ||
|
|
826e069b63 | ||
|
|
6e8a08c27a | ||
|
|
5a01218691 | ||
|
|
f45374bc30 | ||
|
|
ecbd8fb82c | ||
|
|
a42407b81a | ||
|
|
a622e4ac40 | ||
|
|
6816f2dabb | ||
|
|
a0c3f8f614 | ||
|
|
01b9754c80 | ||
|
|
cd8f26ae9d | ||
|
|
b650168704 | ||
|
|
9587edd867 | ||
|
|
642920504a | ||
|
|
67abc2f690 | ||
|
|
5bf85a2855 | ||
|
|
829717f5de | ||
|
|
866bfc61ba | ||
|
|
6638db1f35 | ||
|
|
f0dde491be | ||
|
|
994a2382ad | ||
|
|
856fec4243 | ||
|
|
d1c594cfd0 | ||
|
|
86da9852ca | ||
|
|
4ba6a979ba | ||
|
|
82974a2135 | ||
|
|
585c18ef4d | ||
|
|
7ec516d851 | ||
|
|
7e970d04ca | ||
|
|
808ce4366d | ||
|
|
8271226487 | ||
|
|
bbb7a67bd2 | ||
|
|
698b4fce41 | ||
|
|
302e8305ef | ||
|
|
659f392196 | ||
|
|
775a25d944 | ||
|
|
bceb766d28 | ||
|
|
36fd618ed4 | ||
|
|
99c473cdf6 | ||
|
|
88b55d0e06 | ||
|
|
184d4bbe27 | ||
|
|
4fc6f4a13e | ||
|
|
adad11c725 | ||
|
|
a1b5af0445 | ||
|
|
db4f512991 | ||
|
|
42ff30515c | ||
|
|
62565e0577 | ||
|
|
de177c0335 | ||
|
|
d614116b63 | ||
|
|
a7ff238653 | ||
|
|
6fb120f5dd | ||
|
|
6e8cc3aaca | ||
|
|
18ab73cc1d | ||
|
|
d1c7370f1c | ||
|
|
794f7a14c0 | ||
|
|
7cd2a6d6aa | ||
|
|
febf6b9e70 | ||
|
|
7201025a15 | ||
|
|
4787d7ba5c | ||
|
|
3de95af25c | ||
|
|
0bf4790a64 | ||
|
|
0d9353d99e | ||
|
|
a898c46e74 | ||
|
|
493e7087cf | ||
|
|
f5ce7fb2a5 | ||
|
|
a8818ab0df | ||
|
|
9691fab917 | ||
|
|
a7f5741608 | ||
|
|
c34869c243 | ||
|
|
ab94b9785e | ||
|
|
ee94524ab1 | ||
|
|
6cce532ca4 | ||
|
|
7f16a4d857 | ||
|
|
255ea1945b | ||
|
|
b38b53b658 | ||
|
|
82c60a23c0 | ||
|
|
c93ea20b75 | ||
|
|
6a4e4fc07b | ||
|
|
d358cdac1e | ||
|
|
4f8ced1f6b | ||
|
|
8cc60fde90 | ||
|
|
b8bc629970 | ||
|
|
9a83dfc022 | ||
|
|
d5e26527a6 | ||
|
|
c9226a07c5 | ||
|
|
d451528b36 | ||
|
|
48b2cbb0bf | ||
|
|
39e6b9933d | ||
|
|
d08fb1aee2 | ||
|
|
5235a1d029 | ||
|
|
3135b8525b | ||
|
|
0e9797c394 | ||
|
|
4145ecfb32 | ||
|
|
20e9b329b1 | ||
|
|
d1ccbf028f | ||
|
|
a1fc621e1b | ||
|
|
9ef6bec960 | ||
|
|
b631530753 | ||
|
|
d9997cebfc | ||
|
|
ffee69a765 | ||
|
|
7a38943412 | ||
|
|
c970173fc0 | ||
|
|
0979ce8de6 | ||
|
|
878bcc0d92 | ||
|
|
68b2f1a8e4 | ||
|
|
8cd06f74b9 | ||
|
|
43387f0d0b | ||
|
|
f3a6fc6f88 | ||
|
|
f2bc367e78 | ||
|
|
46a8410fc5 | ||
|
|
be7c26ede5 | ||
|
|
fb3b7be9e5 | ||
|
|
78731e0c8c | ||
|
|
6b67f27cac | ||
|
|
56182a53d1 | ||
|
|
66e1c01793 | ||
|
|
f0039a64a7 | ||
|
|
22501a09a1 | ||
|
|
c03cce7f60 | ||
|
|
98abf4a758 | ||
|
|
c19bc54877 | ||
|
|
e17d4e96ae | ||
|
|
b333788c3c | ||
|
|
632ca0685e | ||
|
|
52de2b4751 | ||
|
|
fc0c05c755 | ||
|
|
22b8ebd281 | ||
|
|
ec91d3eda0 | ||
|
|
7b31ee27d8 | ||
|
|
927120fa3b | ||
|
|
f1ca2a35ef | ||
|
|
1760af13d1 | ||
|
|
183cb84fbc | ||
|
|
019d5088ec | ||
|
|
15913e5e48 | ||
|
|
e6ffb97a7b | ||
|
|
8655044dfb | ||
|
|
f26c790736 | ||
|
|
7e553031ce | ||
|
|
164ec41fb1 | ||
|
|
8cd9097526 | ||
|
|
134b0b32c6 | ||
|
|
de4b7af1ad | ||
|
|
f976fc9418 | ||
|
|
55059907a3 | ||
|
|
8ca0082ec4 | ||
|
|
5b50696a1b | ||
|
|
840683e3f0 | ||
|
|
ee5dbdffb9 | ||
|
|
43f6a5576d | ||
|
|
8a44de27e7 | ||
|
|
fa9bbd4e1e | ||
|
|
66048f1d63 | ||
|
|
bafd9fd437 | ||
|
|
dae71c3bf4 | ||
|
|
ae8304fc33 | ||
|
|
d6ef42c8b0 | ||
|
|
131b0b93bf | ||
|
|
82185f75d7 | ||
|
|
3769b5066f | ||
|
|
ba8c331356 | ||
|
|
80248846bb | ||
|
|
cf5297958a | ||
|
|
22996cbce7 | ||
|
|
7563416754 | ||
|
|
02b1673c71 | ||
|
|
6ef87d7067 | ||
|
|
e3921c6d14 | ||
|
|
f9ef9d85f4 | ||
|
|
7a2c30e159 | ||
|
|
6438967202 | ||
|
|
63bf82ad84 | ||
|
|
18ab2ae799 | ||
|
|
86d6295bf0 | ||
|
|
3f306d2396 | ||
|
|
2f1f5b2376 | ||
|
|
62d7c71093 | ||
|
|
4f69ed5745 | ||
|
|
ddddf3beb4 | ||
|
|
0ae525cbd5 | ||
|
|
0520870754 | ||
|
|
8b17b77010 | ||
|
|
e2ef1f8a89 | ||
|
|
7f7052ad42 | ||
|
|
738ca479e4 | ||
|
|
34a274a7d1 | ||
|
|
b1496aa12f | ||
|
|
30acba7921 | ||
|
|
b5c0c37a23 | ||
|
|
ef0a92d83f | ||
|
|
b364e32beb | ||
|
|
7f51921176 | ||
|
|
efebd681b6 | ||
|
|
d635390b33 | ||
|
|
61f0d614ce | ||
|
|
27b80804f5 | ||
|
|
df0c505452 | ||
|
|
564f78b6f6 | ||
|
|
df6b6ded33 | ||
|
|
e801a04bcf | ||
|
|
3b1eaca58e | ||
|
|
22a427f934 | ||
|
|
4645a8ba6b | ||
|
|
1b88c10197 | ||
|
|
5a392dfd58 | ||
|
|
e49ff93122 | ||
|
|
399788ccc1 | ||
|
|
08fde8719d | ||
|
|
f7bef3f87b | ||
|
|
c70e7794eb | ||
|
|
9eb438bb24 | ||
|
|
38decaea90 | ||
|
|
ade68b184d | ||
|
|
3c702c15e2 | ||
|
|
76e8805a6b | ||
|
|
5dc7049f8c | ||
|
|
97f852c3d6 | ||
|
|
a8eed6114b | ||
|
|
6864d39f85 | ||
|
|
6f47c1fcda | ||
|
|
c2c64293f5 | ||
|
|
5bbc17be5c | ||
|
|
abbb1e54da | ||
|
|
08d81927b4 | ||
|
|
3d718068d1 | ||
|
|
1d31a6ef98 | ||
|
|
9c8f36e463 | ||
|
|
bd988f62a2 | ||
|
|
29a46b9f8b | ||
|
|
55acb36e33 | ||
|
|
a8b442a274 | ||
|
|
330f690628 | ||
|
|
7cc430d199 | ||
|
|
2558d6bff6 | ||
|
|
5aff7ef4c7 | ||
|
|
7569f7fa32 | ||
|
|
333f634e94 | ||
|
|
b62c0cf2ab | ||
|
|
572a83dac7 | ||
|
|
dbf834c00f | ||
|
|
24a6897836 | ||
|
|
23da6155dd | ||
|
|
ef9321ef2c | ||
|
|
836bf1d28a | ||
|
|
9eb319f392 | ||
|
|
79b6a14d64 | ||
|
|
0dec2ff9b5 | ||
|
|
dd270a78fc | ||
|
|
827e6162c7 | ||
|
|
9f54fbc8cc | ||
|
|
f8858a3511 | ||
|
|
82e5221024 | ||
|
|
004297aea6 | ||
|
|
f7b8a019cd | ||
|
|
a89788a020 | ||
|
|
62af81e88c | ||
|
|
ab736466cd | ||
|
|
6a6f30523c | ||
|
|
8e3fa0a26d | ||
|
|
72c088e137 | ||
|
|
ce5eb00177 | ||
|
|
5629356c66 | ||
|
|
6e7311ca87 | ||
|
|
d315ccff68 | ||
|
|
789ee4b133 | ||
|
|
428745e929 | ||
|
|
cea8d62051 | ||
|
|
fa79e5b016 | ||
|
|
15fd37e049 | ||
|
|
1dd4ea19a3 | ||
|
|
067af76904 | ||
|
|
a7f597c943 | ||
|
|
833adf3515 | ||
|
|
bd15a96b83 | ||
|
|
024bd00d93 | ||
|
|
eb1aafa639 | ||
|
|
bf6b68c614 | ||
|
|
a895f53029 | ||
|
|
78d3b9d555 | ||
|
|
42e1b28130 | ||
|
|
5590d60c5a | ||
|
|
d79423c728 | ||
|
|
d1a0ae43c8 | ||
|
|
e4b0371b2a | ||
|
|
e191556d3b | ||
|
|
5a269fc49a | ||
|
|
613cd58aa3 | ||
|
|
af9984f73b | ||
|
|
3b1c9e910d | ||
|
|
5b29aef5f3 | ||
|
|
b65a7795df | ||
|
|
c6a78456b8 | ||
|
|
f8067ffada | ||
|
|
f7059a2365 | ||
|
|
d013b594b1 | ||
|
|
c5d427ebb1 | ||
|
|
240b90610f | ||
|
|
5cfad825fc | ||
|
|
8918d1593c | ||
|
|
b1e0b7c1e3 | ||
|
|
3a5e4cbeac | ||
|
|
7bfa6e611e | ||
|
|
004c177f7b | ||
|
|
86cc3f77ee | ||
|
|
a33820ecdd | ||
|
|
7babd6f3d0 | ||
|
|
e28ecf44cb | ||
|
|
93685d3a09 | ||
|
|
d660405e73 | ||
|
|
684fb2566b | ||
|
|
696f6841cb | ||
|
|
cef60f3ae5 | ||
|
|
34fe2b44cc | ||
|
|
a16bfbfedd | ||
|
|
fb4fccf2d5 | ||
|
|
b53cad78bd | ||
|
|
a431ca7ef2 | ||
|
|
c2022cac57 | ||
|
|
806d807eae | ||
|
|
24e3b1c5e6 | ||
|
|
bbe3605317 | ||
|
|
06d67f5ad2 | ||
|
|
41f9f22e38 | ||
|
|
a94cbb528e | ||
|
|
4a68ab4659 | ||
|
|
4c24043cc8 | ||
|
|
2ca5d18855 | ||
|
|
37426b0794 | ||
|
|
a70ebeed1c | ||
|
|
8f2113e6b5 | ||
|
|
03cb0565d4 | ||
|
|
dd14f9b93d | ||
|
|
4dd15fb479 | ||
|
|
397f6afaf1 | ||
|
|
65fb77ef5c | ||
|
|
1e22f47304 | ||
|
|
7c9be74970 | ||
|
|
5efb2cf918 | ||
|
|
98505110a4 | ||
|
|
1a864584b6 | ||
|
|
8aa8dc29a1 | ||
|
|
06e86e57e7 | ||
|
|
6a375fdd8c | ||
|
|
b8ad7e3072 | ||
|
|
597a0cad6b | ||
|
|
a646af2ad2 | ||
|
|
143b70c6a8 | ||
|
|
c1e95a2246 | ||
|
|
53a081262d | ||
|
|
8b46143d48 | ||
|
|
a05edc619c | ||
|
|
6c5aa6b367 | ||
|
|
0246c3f895 | ||
|
|
e3ae5263c6 | ||
|
|
0bfb1aab7e | ||
|
|
d120102805 | ||
|
|
7e5b864299 | ||
|
|
4dd6db57ee | ||
|
|
a2f105a913 | ||
|
|
ab31a7b964 | ||
|
|
203ff3872f | ||
|
|
2ee3840650 | ||
|
|
fa80dbfb27 | ||
|
|
2237d286b6 | ||
|
|
4124f6b1ad | ||
|
|
23361d3d56 | ||
|
|
4c8f3ddfd3 | ||
|
|
f631a8aa9a | ||
|
|
bbc6460d3f | ||
|
|
09d78544cf | ||
|
|
a791aff0a2 | ||
|
|
ce318f123f | ||
|
|
9374056e61 | ||
|
|
5ef19affd0 | ||
|
|
d40abf4add | ||
|
|
86f8b3f9ec | ||
|
|
385d7f2803 | ||
|
|
2ee04e0cf0 | ||
|
|
9bdaba3b65 | ||
|
|
80d46fb8a4 | ||
|
|
268f9ef725 | ||
|
|
3813d9385b | ||
|
|
48bf72bfc4 | ||
|
|
fa1d5cc49d | ||
|
|
de5fd11155 | ||
|
|
cd30a8cbc0 | ||
|
|
ec1e54db9a | ||
|
|
82963ad075 | ||
|
|
b24671bbf6 | ||
|
|
2ab7a47353 | ||
|
|
5d4da455bd | ||
|
|
0b039830ea | ||
|
|
77e1ca59ed | ||
|
|
e8e8ee5941 | ||
|
|
23861bd369 | ||
|
|
4c946b21a9 | ||
|
|
e74538b40d | ||
|
|
b6ef5469de | ||
|
|
ee2850f2e2 | ||
|
|
3387a762c4 | ||
|
|
75388cc3af | ||
|
|
087f7fc43d | ||
|
|
5da0e16e44 | ||
|
|
eb465fde1a | ||
|
|
26ece1ee86 | ||
|
|
f18b65a690 | ||
|
|
6851b2091f | ||
|
|
74396c1558 | ||
|
|
d02c680dab | ||
|
|
888327f5bc | ||
|
|
2623e7da88 | ||
|
|
0d2a3bc2d7 | ||
|
|
5eeaa5710c | ||
|
|
92e1f83046 | ||
|
|
9a3f72591e | ||
|
|
12d824d791 | ||
|
|
613fef5e73 | ||
|
|
1d4babefba | ||
|
|
6e9e81e3a1 | ||
|
|
c292561eb1 | ||
|
|
248464191d | ||
|
|
f1cdfb768d | ||
|
|
777c188a3f | ||
|
|
bf00a6b695 | ||
|
|
b58927fea1 | ||
|
|
2aa7a145d4 | ||
|
|
4d618c5ef1 | ||
|
|
543e3e2c09 | ||
|
|
93c9426f25 | ||
|
|
d4feb903b0 | ||
|
|
5a1183a457 | ||
|
|
22774f28c0 | ||
|
|
1936e0dbbd | ||
|
|
df6e86554c | ||
|
|
33218bb0e5 | ||
|
|
f475c04ce3 | ||
|
|
0788796f1a | ||
|
|
3a01f960a7 | ||
|
|
d37105ada2 | ||
|
|
66fda57513 | ||
|
|
2fe82e4b2f | ||
|
|
eee7e52bd4 | ||
|
|
ecd76eb870 | ||
|
|
bcaa09e910 | ||
|
|
32df727ff9 | ||
|
|
e1bfe6cdda | ||
|
|
e4e71af597 | ||
|
|
749ddc30c7 | ||
|
|
c4965c7fe9 | ||
|
|
de72ab176c | ||
|
|
b453c3a48e | ||
|
|
857c658888 | ||
|
|
d91488da62 | ||
|
|
16fbd4abfd | ||
|
|
285f8bc28c | ||
|
|
3fb4877859 | ||
|
|
e25cbdf4b9 | ||
|
|
b1db9a8cf1 | ||
|
|
f418104b7a | ||
|
|
5454917569 | ||
|
|
effa50a9bd | ||
|
|
ac87346507 | ||
|
|
cacbcb5415 | ||
|
|
0b2a2ad0ed | ||
|
|
44bc7a89df | ||
|
|
bcb5384639 | ||
|
|
b23e577ccc | ||
|
|
96a28f2c4d | ||
|
|
826c4115a7 | ||
|
|
c95ea16a44 | ||
|
|
8e1a2248e4 | ||
|
|
6b29fd05bd | ||
|
|
080d9bbaa6 | ||
|
|
263d342a79 | ||
|
|
0d2dcb3d25 | ||
|
|
9dd35c8c0d | ||
|
|
e85f93abec | ||
|
|
18c12dac9a | ||
|
|
a0f1d68cfb | ||
|
|
37f651fe08 | ||
|
|
d2e4e94aec | ||
|
|
cf1a09aeaf | ||
|
|
32897d3e07 | ||
|
|
3f2a728ed0 | ||
|
|
af24a9d002 | ||
|
|
6582debd73 | ||
|
|
575d1c8543 | ||
|
|
08b78c3ca5 | ||
|
|
e0a867a184 | ||
|
|
2b8508574d | ||
|
|
b8976785fd | ||
|
|
79e2c56ec8 | ||
|
|
1ea09c7add | ||
|
|
7489a65bbe | ||
|
|
faabdb8d88 | ||
|
|
57c5d98bdc | ||
|
|
b5c249c25d | ||
|
|
60a244888d | ||
|
|
c4dfc5cf70 | ||
|
|
4c2ffdfc68 | ||
|
|
704c5174f9 | ||
|
|
b708b4a42b | ||
|
|
ee98ce5c18 | ||
|
|
7162272f1e | ||
|
|
faee6b45e0 | ||
|
|
aef69ab12a | ||
|
|
a712426185 | ||
|
|
19be0d0ff3 | ||
|
|
3202e46930 | ||
|
|
5b95d6777f | ||
|
|
084524cd2d | ||
|
|
6ab03053a0 | ||
|
|
9f065b2b5a | ||
|
|
5327ed84c1 | ||
|
|
4018a29a16 | ||
|
|
7cbc268c52 | ||
|
|
bca7c8e6bd | ||
|
|
d0fb6de390 | ||
|
|
63f3d9862f | ||
|
|
00f8dcb23e | ||
|
|
bc4165037c | ||
|
|
07109617b5 | ||
|
|
6385443a4c | ||
|
|
6ef415d0e6 | ||
|
|
ba8ba9f68d | ||
|
|
b30252021b | ||
|
|
db57171ece | ||
|
|
3688e9981d | ||
|
|
b4de26a801 | ||
|
|
2a15768a25 | ||
|
|
f971417746 | ||
|
|
33854d42e4 | ||
|
|
2d9f6dcd86 | ||
|
|
e3c347e148 | ||
|
|
f7c468d6f0 | ||
|
|
e6cac8cc14 | ||
|
|
79d0239362 | ||
|
|
a0e31fc723 | ||
|
|
6a6048d40f | ||
|
|
a29ae4d3b9 | ||
|
|
82b19614e1 | ||
|
|
49851daf0d | ||
|
|
d815ae0e83 | ||
|
|
cb50fae12d | ||
|
|
26072af82f | ||
|
|
89c1c4897a | ||
|
|
5e5563f974 | ||
|
|
5df68e5942 | ||
|
|
d895de0bc1 | ||
|
|
2ec4a0c8a8 | ||
|
|
5e3ec6ea39 | ||
|
|
6f06ab440a | ||
|
|
c3bb7a66e0 | ||
|
|
aadc871124 | ||
|
|
cb2cea4ebd | ||
|
|
6125e68c1f | ||
|
|
71b80e0817 | ||
|
|
ac6a4e590d | ||
|
|
1f61a2581c | ||
|
|
bf23a52ba4 | ||
|
|
db498db0a8 | ||
|
|
9d3d64eef3 | ||
|
|
e694e0273b | ||
|
|
ced882a2e5 | ||
|
|
754c643b1b | ||
|
|
6a136854b0 | ||
|
|
a584aca969 | ||
|
|
b3fbb29bf2 | ||
|
|
b7299e5eec | ||
|
|
510c45b9b7 | ||
|
|
aad9c0f965 | ||
|
|
373828d76f | ||
|
|
86a9a2c069 | ||
|
|
6e7e6ee434 | ||
|
|
6af544afde | ||
|
|
dca21bd3be | ||
|
|
9b82b101cd | ||
|
|
47a14bbbff | ||
|
|
094d6f2339 | ||
|
|
290dd9531f | ||
|
|
141226332c | ||
|
|
7e0a5205b2 | ||
|
|
c6c863cd84 | ||
|
|
28d453fced | ||
|
|
4d62983680 | ||
|
|
d3ea9c3168 | ||
|
|
603a79d094 | ||
|
|
16481927e8 | ||
|
|
6f06c18014 | ||
|
|
7868afb4fd | ||
|
|
66d4d5c73f | ||
|
|
075479274d | ||
|
|
bae797f975 | ||
|
|
ea0f9e6ce9 | ||
|
|
fa6c52699e | ||
|
|
209d7e48d8 | ||
|
|
0bd3e1b0e1 | ||
|
|
9229b26b9e | ||
|
|
29dbce079b | ||
|
|
86df538db9 | ||
|
|
d9c5b7ea9e | ||
|
|
c9128d56c0 | ||
|
|
888755e842 | ||
|
|
3ac096b3b1 | ||
|
|
7ebd1eb053 | ||
|
|
2128851bdf | ||
|
|
823d136a00 | ||
|
|
a67e62b2d0 | ||
|
|
d262ea21e3 | ||
|
|
aaf115a5c8 | ||
|
|
206c5146e1 | ||
|
|
abe917f3c1 | ||
|
|
0793e11b04 | ||
|
|
9df66deb81 | ||
|
|
9765b0ed8e | ||
|
|
83c9c3f618 | ||
|
|
dd5dd12ee6 | ||
|
|
b68fd91a02 | ||
|
|
4270547147 | ||
|
|
c4b90360a5 | ||
|
|
7d49e75e46 | ||
|
|
8db5bd438e | ||
|
|
f6f18b68b5 | ||
|
|
ab8a9509b8 | ||
|
|
4dda5ee549 | ||
|
|
5ae8017233 | ||
|
|
66cdbbb335 | ||
|
|
3e9b694e6f | ||
|
|
b1eef13bb0 | ||
|
|
82f93f7da5 | ||
|
|
119008d05d | ||
|
|
aeaac4bc17 | ||
|
|
789e26ae60 | ||
|
|
b813ace79c | ||
|
|
02f497712d | ||
|
|
fda4ba81c3 | ||
|
|
e7a9d34ecd | ||
|
|
485cb43a34 | ||
|
|
3281d28de7 | ||
|
|
856833dbc4 | ||
|
|
15f1945f31 | ||
|
|
b1f29a8c92 | ||
|
|
cbbd4ffbb6 | ||
|
|
e2ea397fb9 | ||
|
|
6a4c9b4108 | ||
|
|
a61c86bff5 | ||
|
|
35b09542e2 | ||
|
|
a57536be4b | ||
|
|
fbb2accacb | ||
|
|
0a393400b2 | ||
|
|
8b5ce753e4 | ||
|
|
f05b9396e8 | ||
|
|
6670fe8c1c | ||
|
|
b8518f5795 | ||
|
|
c94291af52 | ||
|
|
1d6f48806e | ||
|
|
4626f37671 | ||
|
|
33a7fe38e1 | ||
|
|
a5c824a318 | ||
|
|
30df1d8b0f | ||
|
|
97a583e965 | ||
|
|
f1f8ef4734 | ||
|
|
ee1d5680a7 | ||
|
|
b6e7ec51f0 | ||
|
|
2d6f69da1c | ||
|
|
f51f1989aa | ||
|
|
9b003ad285 | ||
|
|
947ac1fbf2 | ||
|
|
faf6eae535 | ||
|
|
40d5667e63 | ||
|
|
953bd064bc | ||
|
|
50a0b6e115 | ||
|
|
e96b1796b3 | ||
|
|
99350210d7 | ||
|
|
4e25bc9396 | ||
|
|
65b315bf4c | ||
|
|
4d19610c94 | ||
|
|
a27b759b10 | ||
|
|
1e217094a7 | ||
|
|
ae3b16024d | ||
|
|
04622d4cb3 | ||
|
|
0e9218ef5f | ||
|
|
8031f8b199 | ||
|
|
f6140ebd11 | ||
|
|
507bae90b7 | ||
|
|
edf470c8fa | ||
|
|
8eab999e52 | ||
|
|
323e62c967 | ||
|
|
83567d1a51 | ||
|
|
9acbf48635 | ||
|
|
f70ee0c229 | ||
|
|
eea9d13350 | ||
|
|
877a71d673 | ||
|
|
84b3e876d7 | ||
|
|
4afa282ef9 | ||
|
|
b1ebf60836 | ||
|
|
92a3acbfe8 | ||
|
|
023d06d114 | ||
|
|
5513f0badd | ||
|
|
82a80e7199 | ||
|
|
b9e3a468ae | ||
|
|
5b9a08359d | ||
|
|
d6950fa4b7 | ||
|
|
9b7a7bd9dc | ||
|
|
7f32473a10 | ||
|
|
9274f223f0 | ||
|
|
1a39fdae24 | ||
|
|
79af62f65b | ||
|
|
5b75061bf0 | ||
|
|
bb4248c459 | ||
|
|
658cf51887 | ||
|
|
1372cbaee1 | ||
|
|
faabcb43f9 | ||
|
|
82a8f09709 | ||
|
|
36244ed517 | ||
|
|
26a22fa00e | ||
|
|
7beddeb999 | ||
|
|
887b2bfd2b | ||
|
|
ab9c4e0cbd | ||
|
|
1a97313d19 | ||
|
|
5b94f8c4a7 | ||
|
|
8e070454c3 | ||
|
|
854508e940 | ||
|
|
09552c5f15 | ||
|
|
a8d831d32e | ||
|
|
985bfae8a0 | ||
|
|
d2ae0f0154 | ||
|
|
c107c154ef | ||
|
|
017ed93061 | ||
|
|
8e668b657c | ||
|
|
b075b035ab | ||
|
|
b731c56076 | ||
|
|
baa482bd79 | ||
|
|
85bf22322f | ||
|
|
3fde278ed2 | ||
|
|
ecb80f14f0 | ||
|
|
1f00249646 | ||
|
|
29c5977281 | ||
|
|
3fd487cfa2 | ||
|
|
8724944d26 | ||
|
|
b7b01fafd0 | ||
|
|
8fbbd5127c | ||
|
|
f64c2775b0 | ||
|
|
7bd8a6f2b1 | ||
|
|
c540e81108 | ||
|
|
54cf062737 | ||
|
|
949ea4b6c3 | ||
|
|
4fb53622bc | ||
|
|
9117b02c72 | ||
|
|
c513204501 | ||
|
|
23ed1e9123 | ||
|
|
77bf228809 | ||
|
|
986ad33678 | ||
|
|
87b0e08a6a | ||
|
|
0be1cf8b73 | ||
|
|
0a78a2e117 | ||
|
|
ed264aae81 | ||
|
|
7f6839d38e | ||
|
|
b4c2acb8d0 | ||
|
|
6f037ce064 | ||
|
|
41d8663b09 | ||
|
|
fb26126bcb | ||
|
|
4c24ea0f7d | ||
|
|
076aa51524 | ||
|
|
bae87a0a24 | ||
|
|
447f1ec616 | ||
|
|
1f1a720e01 | ||
|
|
f4d37a2bb8 | ||
|
|
6f297efb88 | ||
|
|
fb4e3c6a05 | ||
|
|
b05e35bdd7 | ||
|
|
314bd0e212 | ||
|
|
d4d11aa260 | ||
|
|
58bfba4b47 | ||
|
|
4966ed8b42 | ||
|
|
7b8530a21e | ||
|
|
fdac1d5382 | ||
|
|
51660b25ef | ||
|
|
52f8984a99 | ||
|
|
4e8c06f36d | ||
|
|
3bb70a7b1f | ||
|
|
e4e46b3e87 | ||
|
|
8287e0dda5 | ||
|
|
462b5d1d53 | ||
|
|
5528a90eaf | ||
|
|
82c1c57c76 | ||
|
|
a645a09f42 | ||
|
|
b5fdf8c2a7 | ||
|
|
f48b9e1b41 | ||
|
|
7008e88678 | ||
|
|
60bf331f19 | ||
|
|
e9c234a0ae | ||
|
|
1d52a83730 | ||
|
|
8e8b936da4 | ||
|
|
6fd4b5eaf2 | ||
|
|
bb010b2e53 | ||
|
|
7eba8c4c03 | ||
|
|
00250839fc | ||
|
|
1f6164a0ca | ||
|
|
b4df060362 | ||
|
|
e10cad21fe | ||
|
|
68d62f861b | ||
|
|
7e4c8bf8a0 | ||
|
|
d733525f2c | ||
|
|
2d2b61a001 | ||
|
|
f5e3b51151 | ||
|
|
c7f2967e5d | ||
|
|
edeab906bc | ||
|
|
70269a3890 | ||
|
|
32d0ca387b | ||
|
|
fb7ece006d | ||
|
|
b589abbea5 | ||
|
|
1dd3277985 | ||
|
|
1ff9a2ec4c | ||
|
|
7adb8dd74b | ||
|
|
0362b5d058 | ||
|
|
975e45061b | ||
|
|
1113425aa9 | ||
|
|
b6487e3d32 | ||
|
|
499ab4ee3d | ||
|
|
fd73fba1a7 | ||
|
|
8e36821c6b | ||
|
|
4f72118140 | ||
|
|
4fc062ffd7 | ||
|
|
b6cdd06d66 | ||
|
|
0509234362 | ||
|
|
308029c03c | ||
|
|
a0163c8625 | ||
|
|
c3b7485e3f | ||
|
|
e8ccc6575c | ||
|
|
2bb8806da6 | ||
|
|
2431bb8e37 | ||
|
|
0da17ee7e1 | ||
|
|
66adfb6524 | ||
|
|
65324f8bb3 | ||
|
|
db54bb874f | ||
|
|
8a6dc02e5b | ||
|
|
a5a37c97a9 | ||
|
|
f5184ba282 | ||
|
|
674351dc75 | ||
|
|
62d2fb534d | ||
|
|
402b50c03b | ||
|
|
7f5a72cdab | ||
|
|
605409635d | ||
|
|
5994269ca8 | ||
|
|
c4ab7f64e6 | ||
|
|
3a3c0ce1d7 | ||
|
|
08e480cc46 | ||
|
|
a4134daa3e | ||
|
|
9bfe8813b1 | ||
|
|
161c182a56 | ||
|
|
22bd1fdc55 | ||
|
|
bc4b527de0 | ||
|
|
2c79d49487 | ||
|
|
892a8b5ced | ||
|
|
3f5bdb86cd | ||
|
|
06e9a6e684 | ||
|
|
f68ed67e3a | ||
|
|
c1acf6ae93 | ||
|
|
c99ce4de07 | ||
|
|
2c12b95e17 | ||
|
|
6db84eefa3 | ||
|
|
2c8a22bb0d | ||
|
|
720a7fbfa2 | ||
|
|
86cde4c511 | ||
|
|
1d56a17f32 | ||
|
|
aacf1e7f1c | ||
|
|
371504358d | ||
|
|
8e40aa3306 | ||
|
|
d51bdbd094 | ||
|
|
5cffa7fe52 | ||
|
|
9f342ec9d5 | ||
|
|
aae1947b3f | ||
|
|
d9312d3e2b | ||
|
|
08b678b522 | ||
|
|
b2b2840990 | ||
|
|
69845b29ef | ||
|
|
6064904151 | ||
|
|
059e80003d | ||
|
|
a1a67b1a86 | ||
|
|
a92b2e0691 | ||
|
|
53ab31766c | ||
|
|
70e8c7f4c8 | ||
|
|
b3e8f466ec | ||
|
|
546f57b473 | ||
|
|
b23dc315d6 | ||
|
|
0c12afac74 | ||
|
|
a09bd7b7ab | ||
|
|
b350e43f3d | ||
|
|
15fc7a077a | ||
|
|
f2afacd8b2 | ||
|
|
7e98727d4c | ||
|
|
d976dad139 | ||
|
|
ab4b19f7c3 | ||
|
|
0246eec4ed | ||
|
|
638456e5b0 | ||
|
|
c86c6dbad8 | ||
|
|
521fc62708 | ||
|
|
b21435743d | ||
|
|
5c63f7bdb5 | ||
|
|
0606772514 | ||
|
|
b313cb58db | ||
|
|
62c40e4de5 | ||
|
|
5212d868d6 | ||
|
|
ee3663c1cd | ||
|
|
bf4815d364 | ||
|
|
c23738f935 | ||
|
|
45c13116de | ||
|
|
fab3c3a7c3 | ||
|
|
1fc3e6edbf | ||
|
|
d63b741666 | ||
|
|
0c5d5f1dd5 | ||
|
|
d74c2d6c8d | ||
|
|
089d7cb9f4 | ||
|
|
9807e28a24 | ||
|
|
3c499d31e8 | ||
|
|
2d73b6afb1 | ||
|
|
43bd7268e8 | ||
|
|
caff76b723 | ||
|
|
095a4b17f7 | ||
|
|
0b7e7ddbf9 | ||
|
|
f720ec642f | ||
|
|
76ebe8e84d | ||
|
|
969476e49e | ||
|
|
4bb3cdf114 | ||
|
|
f6a4189717 | ||
|
|
a706ff4d5b | ||
|
|
6606be998b | ||
|
|
210977f9cc | ||
|
|
f1f940f93d | ||
|
|
4f99785bdb | ||
|
|
ad805b993c | ||
|
|
758804e9cd | ||
|
|
3abc102253 | ||
|
|
df72d21cf2 | ||
|
|
1b01616a49 | ||
|
|
a9d3c78146 | ||
|
|
2d0b805549 | ||
|
|
5af09213a1 | ||
|
|
5bf62978eb | ||
|
|
7216560c1a | ||
|
|
120d3028c1 | ||
|
|
b9b5b3c528 | ||
|
|
5225b5dc55 | ||
|
|
aef74c6d5a | ||
|
|
930731423d | ||
|
|
8086eda151 | ||
|
|
b1cc95d0f9 | ||
|
|
dac3075fdd | ||
|
|
dccb79d8e8 | ||
|
|
86df1605a4 | ||
|
|
bdb59ecf0c | ||
|
|
d2d9187d66 | ||
|
|
341767365e | ||
|
|
6b501a1787 | ||
|
|
8473ace0a7 | ||
|
|
fa1aa39bd9 | ||
|
|
259f3f5892 | ||
|
|
47e3761159 | ||
|
|
cf4dd48784 | ||
|
|
1404133283 | ||
|
|
ecfcb92a89 | ||
|
|
10b066d300 | ||
|
|
8a8cb3ab27 | ||
|
|
f19f21d547 | ||
|
|
92fbfcdac9 | ||
|
|
4189e761ff | ||
|
|
a8b3f056a0 | ||
|
|
cc6dea0631 | ||
|
|
8c4f6f9e5f | ||
|
|
708461eab5 | ||
|
|
8ec1a05296 | ||
|
|
c4bf1b4180 | ||
|
|
495c9330f6 | ||
|
|
49619e5b39 | ||
|
|
7b88800c62 | ||
|
|
ecef90dc8b | ||
|
|
e8d4fba3c0 | ||
|
|
384d87f84d | ||
|
|
8b349dbcde | ||
|
|
7f5e00fd81 | ||
|
|
e5858dee52 | ||
|
|
bae573453a | ||
|
|
3e68c3ee0c | ||
|
|
e44e0a7c89 | ||
|
|
678b2737bd | ||
|
|
6b5193908c | ||
|
|
87f1f11509 | ||
|
|
0503c8d8fe | ||
|
|
bc7ac519d0 | ||
|
|
00c3758d86 | ||
|
|
e5256b0a61 | ||
|
|
eb3c6cadd2 | ||
|
|
d701a20cd5 | ||
|
|
095f35d07e | ||
|
|
53cd22f142 | ||
|
|
8cf4120c27 | ||
|
|
b34e3cbe90 | ||
|
|
4ef25ecf37 | ||
|
|
f5d647f05c | ||
|
|
7b6181de2a | ||
|
|
20bbaa3fe6 | ||
|
|
a2c9a0a1ae | ||
|
|
98c6af628b | ||
|
|
f39647f243 | ||
|
|
c2cec5d93f | ||
|
|
5a11cf1a6f | ||
|
|
b0b1b59147 | ||
|
|
77fb060fde | ||
|
|
caba5c9d26 | ||
|
|
97d36e2281 | ||
|
|
32235b0cb6 | ||
|
|
6142109bf5 | ||
|
|
144a7f941b | ||
|
|
f01c318c30 | ||
|
|
ac76302d6c | ||
|
|
a906a9c862 | ||
|
|
9a3daabeb4 | ||
|
|
9687159484 | ||
|
|
6a0ffdfa60 | ||
|
|
e3f26e8f12 | ||
|
|
cf85bb14f5 | ||
|
|
4fe81d8449 | ||
|
|
46b8d55280 | ||
|
|
08cf731c87 | ||
|
|
4c1af148c7 | ||
|
|
83410565da | ||
|
|
de81c37611 | ||
|
|
176719000d | ||
|
|
1411ad4503 | ||
|
|
77b351adf3 | ||
|
|
b37b14eabd | ||
|
|
578ac6cae5 | ||
|
|
72c3239d63 | ||
|
|
99614ecc8f | ||
|
|
1ececc3035 | ||
|
|
433e5633cf | ||
|
|
b9a0c9ce7e | ||
|
|
47cf496c36 | ||
|
|
32313c71e4 | ||
|
|
453caa92d4 | ||
|
|
7a689b93db | ||
|
|
639efbcfad | ||
|
|
1c706fdfca | ||
|
|
fab8de632d | ||
|
|
27cbd53253 | ||
|
|
d67fd038dc | ||
|
|
36fe725cf0 | ||
|
|
373c3488bb | ||
|
|
58e5e095e5 | ||
|
|
9e7282d16a | ||
|
|
561b7575ba | ||
|
|
cecc899949 | ||
|
|
59b0e6737f | ||
|
|
449cd9ea27 | ||
|
|
256ef072df | ||
|
|
26d8b32717 | ||
|
|
7a31d66d2c | ||
|
|
2ed9a93bae | ||
|
|
f494c7af4e | ||
|
|
363af2a85c | ||
|
|
6ff34d9894 | ||
|
|
a566fa9728 | ||
|
|
248f2f5071 | ||
|
|
a79f1ac830 | ||
|
|
073a372d4d | ||
|
|
6c69eaef4c | ||
|
|
b0fdaedfdb | ||
|
|
d089d6642a | ||
|
|
5aa730b5d4 | ||
|
|
0832dd2a45 | ||
|
|
a03507c998 | ||
|
|
f1e38b655e | ||
|
|
33a9f2e3e4 | ||
|
|
eaa5f504e3 | ||
|
|
5a7562a37b | ||
|
|
95a50b7892 | ||
|
|
86a3217e98 | ||
|
|
d15a3fcc98 | ||
|
|
ff38bc8143 | ||
|
|
14a6bf581c | ||
|
|
730ad4b814 | ||
|
|
f05260d95a | ||
|
|
673ecc3870 | ||
|
|
97a37e6834 | ||
|
|
d9b48bae80 | ||
|
|
cbaa0a132f | ||
|
|
4ad5520568 | ||
|
|
43457c0184 | ||
|
|
1150433c0a | ||
|
|
76a84a2cf4 | ||
|
|
68328f65b5 | ||
|
|
b7956c5fbf | ||
|
|
44d6bb66da | ||
|
|
7d67711336 | ||
|
|
f320deaa73 | ||
|
|
a518c4a529 | ||
|
|
da164cec0a | ||
|
|
bb470c3676 | ||
|
|
685a608518 | ||
|
|
5be2121a3e | ||
|
|
bf643cc85f | ||
|
|
eda96c046a | ||
|
|
137c78c04e | ||
|
|
d9e1aa57c9 | ||
|
|
912c80e496 | ||
|
|
7390dce536 | ||
|
|
67859ab139 | ||
|
|
540635c54f | ||
|
|
6197279e83 | ||
|
|
4ad226570a | ||
|
|
50242b2c35 | ||
|
|
9f7d96bad3 | ||
|
|
8d70544374 | ||
|
|
4b6214c9a4 | ||
|
|
aaa2ef3a97 | ||
|
|
639bd5a550 | ||
|
|
763080aea0 | ||
|
|
fb713e0762 | ||
|
|
a8d41a6717 | ||
|
|
34bc0efc1c | ||
|
|
23e4a30cd1 | ||
|
|
ba58b0f429 | ||
|
|
89e6e062ab | ||
|
|
33ff8ec5a3 | ||
|
|
9f4053d051 | ||
|
|
1bb9d142f1 | ||
|
|
b10bd70d67 | ||
|
|
dc2ff2295e | ||
|
|
f231d6945f | ||
|
|
8786caf630 | ||
|
|
5c520bc82e | ||
|
|
1ccf408654 | ||
|
|
76ebfe38a1 | ||
|
|
364206010b | ||
|
|
559c675164 | ||
|
|
1773dede25 | ||
|
|
fa52478ffa | ||
|
|
ae0603c041 | ||
|
|
a364af5c4c | ||
|
|
6b76611c93 | ||
|
|
d7df71c8ba | ||
|
|
ea464abaaf | ||
|
|
a026b682c4 | ||
|
|
8e3fa660fd | ||
|
|
c9257822ec | ||
|
|
783bb8bd92 | ||
|
|
bf19ab6ad9 | ||
|
|
c4e59027fc | ||
|
|
f9b7bc26c0 | ||
|
|
a197cd6158 | ||
|
|
ae5b506848 | ||
|
|
f8ab5fef78 | ||
|
|
0893ba33fc | ||
|
|
75ce8d6c20 | ||
|
|
6d56701b5b | ||
|
|
ea8aa92dd5 | ||
|
|
9fc634dfe0 | ||
|
|
4b1088edbc | ||
|
|
8e355a14e9 | ||
|
|
ef2b6f91f1 | ||
|
|
9cae7a0a49 | ||
|
|
9a55ca3021 | ||
|
|
e8b20c86c1 | ||
|
|
dc78a4af88 | ||
|
|
34273907f7 | ||
|
|
ca1c5899a1 | ||
|
|
0064f17ad4 | ||
|
|
f8ccafd2af | ||
|
|
d386311e54 | ||
|
|
0e2475aa72 | ||
|
|
b4cce9f147 | ||
|
|
3e8f25d864 | ||
|
|
4c68580e82 | ||
|
|
3bc82c10b1 | ||
|
|
c7d94055a4 | ||
|
|
34316b0ffd | ||
|
|
3d494dcd73 | ||
|
|
85b2c4de4a | ||
|
|
d0ce6bb066 | ||
|
|
38c6495fd8 | ||
|
|
bcc449b524 | ||
|
|
361ada4963 | ||
|
|
2e8d62d0ca | ||
|
|
fb97bf6041 | ||
|
|
6d9c95720d | ||
|
|
db5a0a892a | ||
|
|
7b01a6ca61 | ||
|
|
fbbf767700 | ||
|
|
776e2cf6e7 | ||
|
|
34ca0e8671 | ||
|
|
0d37047c37 | ||
|
|
25c8f60e6e | ||
|
|
aae1480e4f | ||
|
|
5e8a52bcc0 | ||
|
|
cf8f8907ee | ||
|
|
ca36f20c6b | ||
|
|
bdae02e51e | ||
|
|
2d7eb0dcb5 | ||
|
|
2e0756ad8d | ||
|
|
ef2bbce34b | ||
|
|
65e59dc57d | ||
|
|
2ca39b571a | ||
|
|
48a6157efb | ||
|
|
ab3a64604a | ||
|
|
e9ddf43c6c | ||
|
|
2549d91ddf | ||
|
|
81ae86ff79 | ||
|
|
7670104e4d | ||
|
|
3fc2ad5bc9 | ||
|
|
c84367e2ee | ||
|
|
77413ad25c | ||
|
|
c1f73255b5 | ||
|
|
fe7ec76cd5 | ||
|
|
0bc9849ad8 | ||
|
|
c9a4f8f664 | ||
|
|
1315b8e42a | ||
|
|
7a03da42ec | ||
|
|
8b9bb2a8fc | ||
|
|
162dfbaab0 | ||
|
|
71b6e35231 | ||
|
|
9268513128 | ||
|
|
5d44b6a6a7 | ||
|
|
586fe10525 | ||
|
|
a59d1d3c05 | ||
|
|
1fce604a11 | ||
|
|
8ea831c845 | ||
|
|
94061fa634 | ||
|
|
fe17955fa1 | ||
|
|
3158e9f63a | ||
|
|
fcb2b53bf8 | ||
|
|
5470702c16 | ||
|
|
8c05c6e122 | ||
|
|
cc397a012f | ||
|
|
e12827de3f | ||
|
|
02a646c7ea | ||
|
|
86986efb15 | ||
|
|
a718fb3cae | ||
|
|
48ba9ce175 | ||
|
|
be60ad6766 | ||
|
|
b1b58f2550 | ||
|
|
99d00e2057 | ||
|
|
7da0dddaa9 | ||
|
|
3ea45e4ef5 | ||
|
|
dbac187b44 | ||
|
|
43293b98c0 | ||
|
|
34eef8e97d | ||
|
|
5a48fd80cd | ||
|
|
5260afc15d | ||
|
|
66b4e08026 | ||
|
|
2b8e0cc6c4 | ||
|
|
a501214bfa | ||
|
|
2b9a8b9136 | ||
|
|
1cc3cb5408 | ||
|
|
7df793f208 | ||
|
|
ca2b7cc4bc | ||
|
|
9e0a74da3d | ||
|
|
da5076a4dc | ||
|
|
005808f003 | ||
|
|
1dd1919200 | ||
|
|
0a9db55dc4 | ||
|
|
4551ba5b7c | ||
|
|
0f25ad5676 | ||
|
|
c6564c0d84 | ||
|
|
a7e94d433f | ||
|
|
64480a35ac | ||
|
|
4f96d5caf2 | ||
|
|
7cca1b9f48 | ||
|
|
56ebbedbfd | ||
|
|
4e5b8ce875 | ||
|
|
5c5ee50983 | ||
|
|
0a67488447 | ||
|
|
022761aa4b | ||
|
|
b9d985b663 | ||
|
|
08ed9d285e | ||
|
|
ab0cd71d10 | ||
|
|
df7645e4e5 | ||
|
|
39f9c72390 | ||
|
|
0023714884 | ||
|
|
ec9fdc517f | ||
|
|
db387eb770 | ||
|
|
354ed22706 | ||
|
|
a69f194d8b | ||
|
|
f5d13319a2 | ||
|
|
9a0e691635 | ||
|
|
6c7cb185a1 | ||
|
|
ab22b93ce0 | ||
|
|
c7f5278430 | ||
|
|
56ad0dbaf2 | ||
|
|
74c92cd460 | ||
|
|
16ebb4322a | ||
|
|
fccd026812 | ||
|
|
b6e49f2bc0 | ||
|
|
188ccf849d | ||
|
|
1bfdce9642 | ||
|
|
495254b0be | ||
|
|
d209ff7b9a | ||
|
|
98eeb50060 | ||
|
|
8a68f0aaf9 | ||
|
|
039859213c | ||
|
|
a3c022aebf | ||
|
|
3a9b32b6e8 | ||
|
|
c1cb9000a9 | ||
|
|
104b99ffa0 | ||
|
|
a89d7f327a | ||
|
|
91bc4bde3c | ||
|
|
80da7ad496 | ||
|
|
64bf211a45 | ||
|
|
2558a66a48 | ||
|
|
df22eab4ec | ||
|
|
c2678cf818 | ||
|
|
f9af34b103 | ||
|
|
97cab22e00 | ||
|
|
64416e05c1 | ||
|
|
b21125ff2d | ||
|
|
e72d0d03ed | ||
|
|
0f12d15020 | ||
|
|
44a2d009c0 | ||
|
|
48682bacde | ||
|
|
f70369c2a6 | ||
|
|
f7fc94520a | ||
|
|
77c6f5c9a2 | ||
|
|
dffa47301b | ||
|
|
08f47e7e14 | ||
|
|
56342af140 | ||
|
|
aacc0eca67 | ||
|
|
02916aeffa | ||
|
|
e42bfada9d | ||
|
|
72fb114dec | ||
|
|
9ba1561386 | ||
|
|
39772c2dbe | ||
|
|
cbf3ca726f | ||
|
|
f1e21ebe9d | ||
|
|
49c36cc040 | ||
|
|
9b90400abd | ||
|
|
8cda364210 | ||
|
|
ca98ef879d | ||
|
|
bb9c85cd8f | ||
|
|
91b946bf3d | ||
|
|
64377000c6 | ||
|
|
23f4931a1d | ||
|
|
3625834028 | ||
|
|
705e7b30bc | ||
|
|
6528c0817d | ||
|
|
f3d7392af3 | ||
|
|
5d5f44ba11 | ||
|
|
34457880c7 | ||
|
|
d63f07d29a | ||
|
|
5c2cbc9d29 | ||
|
|
8dbfa10646 | ||
|
|
9e804089e0 | ||
|
|
51145903aa | ||
|
|
036c49f398 | ||
|
|
46b85ebc6b | ||
|
|
07bc5e2de9 | ||
|
|
e822091907 | ||
|
|
7d46e77922 | ||
|
|
ad528ad3d5 | ||
|
|
e8b4c03770 | ||
|
|
33aacc1798 | ||
|
|
58959ef35e | ||
|
|
c66b349cec | ||
|
|
5c90df092b | ||
|
|
32374f264f | ||
|
|
5e62229f25 | ||
|
|
1b24dff738 | ||
|
|
161135cd90 | ||
|
|
5fb583da06 | ||
|
|
8b40d20eab | ||
|
|
432034d2cb | ||
|
|
0e168e36fc | ||
|
|
f248260584 | ||
|
|
880e3e10da | ||
|
|
f33b95ee82 | ||
|
|
4a71eb9b90 | ||
|
|
3372a5ad4b | ||
|
|
8326f05f66 | ||
|
|
7ce921d449 | ||
|
|
31f7364f08 | ||
|
|
5119d28b9d | ||
|
|
a2a5fe3bee | ||
|
|
6222d8c977 | ||
|
|
d3699a261a | ||
|
|
9c0e56d640 | ||
|
|
ddd89fc52a | ||
|
|
b852f032d3 | ||
|
|
1fec26c6b3 | ||
|
|
d3483afaed | ||
|
|
910e4815fa | ||
|
|
ef118e3351 | ||
|
|
2beedb10d4 | ||
|
|
41bf10d989 | ||
|
|
ac3b6aef27 | ||
|
|
8956b591f7 | ||
|
|
2f8519cb6b | ||
|
|
15a19c044d | ||
|
|
ec47ff7479 | ||
|
|
82f707ee89 | ||
|
|
dfcab8db6a | ||
|
|
5c10127758 | ||
|
|
b376f36733 | ||
|
|
96c0f62cf5 | ||
|
|
a96f996b59 | ||
|
|
b75d0b6cb5 | ||
|
|
a5bc65fbfb | ||
|
|
dcdbc95ae7 | ||
|
|
72e7e5e025 | ||
|
|
57242a2e13 | ||
|
|
6dbf757385 | ||
|
|
c5a32d8373 | ||
|
|
34288435ec | ||
|
|
177b48c3f2 | ||
|
|
642f5d4405 | ||
|
|
92b1c59e48 | ||
|
|
cb1682542b | ||
|
|
9e56187c16 | ||
|
|
51851efda5 | ||
|
|
11e4b743e0 | ||
|
|
3349151d4c | ||
|
|
c8f6937166 | ||
|
|
ad36c1df3d | ||
|
|
a5b8924e2d | ||
|
|
bc898cc2c2 | ||
|
|
1247b6e8eb | ||
|
|
2111c3de1a | ||
|
|
bcea1b66be | ||
|
|
4f8d14ed3e | ||
|
|
442adfbbc3 | ||
|
|
fe12233954 | ||
|
|
c725f6f572 | ||
|
|
1870d83081 | ||
|
|
8315dacda4 | ||
|
|
18c54f41bd | ||
|
|
293f9c22c4 | ||
|
|
a74510544f | ||
|
|
9b053c50c2 | ||
|
|
88712f46bf | ||
|
|
d6df20b0e8 | ||
|
|
5dc37f7557 | ||
|
|
445d306586 | ||
|
|
d332ae1132 | ||
|
|
37f45b10a3 | ||
|
|
d9b6ec0654 | ||
|
|
f98428aea5 | ||
|
|
b3be1d79cd | ||
|
|
ea8f885f05 | ||
|
|
2de47c2a50 | ||
|
|
30b8e105f9 | ||
|
|
2a44fab8ba | ||
|
|
6a06a99e46 | ||
|
|
3670dfbebd | ||
|
|
daf929ecc7 | ||
|
|
f96a17c930 | ||
|
|
2fb06e7f4f | ||
|
|
4ece9b0085 | ||
|
|
a4bd31e96a | ||
|
|
8bdcc3267a | ||
|
|
9e9164c4ee | ||
|
|
5dc6a39652 | ||
|
|
ada0966832 | ||
|
|
e6faef27ab | ||
|
|
acc27d0829 | ||
|
|
ab54f7bb45 | ||
|
|
88161cc37d | ||
|
|
0975e6834e | ||
|
|
22ec1d5f0a | ||
|
|
01784dd186 | ||
|
|
02cf91c158 | ||
|
|
0532346f4f | ||
|
|
657adafb7d | ||
|
|
818c0789ea | ||
|
|
cb5bcf2248 | ||
|
|
9bd7e30d18 | ||
|
|
572010ded1 | ||
|
|
1f22326e78 | ||
|
|
504d5c91bc | ||
|
|
a34692b6f2 | ||
|
|
73b5d23210 | ||
|
|
e31de8b137 | ||
|
|
cef5bbb2be | ||
|
|
80a8e1a4da | ||
|
|
fcb8fe50fe | ||
|
|
5235c8aad6 | ||
|
|
5b67525211 | ||
|
|
fb697729c0 | ||
|
|
76fe0fef49 | ||
|
|
6295d03801 | ||
|
|
07166fb3cd | ||
|
|
219dfe66d0 | ||
|
|
22c62fb524 | ||
|
|
f8706abebe | ||
|
|
e83a6f9c2e | ||
|
|
63485c8c78 | ||
|
|
72ef024678 | ||
|
|
414c736655 | ||
|
|
fdbfbb9238 | ||
|
|
a766e5d334 | ||
|
|
2faf01eb9d | ||
|
|
a4c2463b2f | ||
|
|
ddbd8033f9 | ||
|
|
6da66cf367 | ||
|
|
c7bc37d010 | ||
|
|
e0ec3c5035 | ||
|
|
d4f287298f | ||
|
|
e70d5838a8 | ||
|
|
b04ca0fdbd | ||
|
|
a064da642d | ||
|
|
37ce37979a | ||
|
|
cb3cbd0d78 | ||
|
|
1415aa1c03 | ||
|
|
7eb17f6abc | ||
|
|
fdb471d506 | ||
|
|
e6785ffe95 | ||
|
|
cc2951265e | ||
|
|
ee413f3b24 | ||
|
|
fc664a850d | ||
|
|
55efe76b2e | ||
|
|
dd8922ce4d | ||
|
|
102b48c302 | ||
|
|
a360bebd9d | ||
|
|
37ab493b78 | ||
|
|
46b7afe558 | ||
|
|
eac3420583 | ||
|
|
e1e9c08242 | ||
|
|
5ac6cf3b74 | ||
|
|
d6a58136da | ||
|
|
819b7b93d1 | ||
|
|
bceeda1cfd | ||
|
|
0d8ef9583b | ||
|
|
b1393ae615 | ||
|
|
464109313b | ||
|
|
83c8baf8e3 | ||
|
|
1bac929ab3 | ||
|
|
b27417da41 | ||
|
|
ef1f72f69b | ||
|
|
784fd57410 | ||
|
|
1dd0afcf80 | ||
|
|
ddce7731b9 | ||
|
|
d00c3780a6 | ||
|
|
4a87a24235 | ||
|
|
f5c9174c2f | ||
|
|
8d5f676039 | ||
|
|
71db7e10b6 | ||
|
|
756f77063a | ||
|
|
5f637036bc | ||
|
|
24b5f41065 | ||
|
|
b00352570b | ||
|
|
0b44b7d384 | ||
|
|
82da64d66d | ||
|
|
ee5a76bb0c | ||
|
|
b65ee5b42e | ||
|
|
8298db7d13 | ||
|
|
5b0e86b179 | ||
|
|
ed2641ea02 | ||
|
|
66939636dc | ||
|
|
2c331d929a | ||
|
|
4472764f3a | ||
|
|
6cb7153bdd | ||
|
|
5142f69655 | ||
|
|
dfe23f7bfe | ||
|
|
6873353cd4 | ||
|
|
025c97673f | ||
|
|
c814b92557 | ||
|
|
87765e8673 | ||
|
|
833d197412 | ||
|
|
5e72cd12d1 | ||
|
|
330fb6dff5 | ||
|
|
6d7d485a38 | ||
|
|
0160901060 | ||
|
|
9313140c59 | ||
|
|
25b1d4b673 | ||
|
|
b9d0602f55 | ||
|
|
ec0a3bbc95 | ||
|
|
50f63a2f72 | ||
|
|
cb47cb7dbf | ||
|
|
c9ac49c758 | ||
|
|
c4e8aba1c9 | ||
|
|
ba6b8b1f69 | ||
|
|
09af2fc2cb | ||
|
|
5caf0b02f0 | ||
|
|
86bac90001 | ||
|
|
7d31575149 | ||
|
|
7223b28829 | ||
|
|
4014c1d0ab | ||
|
|
0bf0e795ca | ||
|
|
0bc3716f74 | ||
|
|
ca23ea0f69 | ||
|
|
efaa2c0e3f | ||
|
|
d91f4d5748 | ||
|
|
6f1a03587a | ||
|
|
7973f0f178 | ||
|
|
11f0ca371b | ||
|
|
0131746919 | ||
|
|
5774b1f69a | ||
|
|
34d36c1de1 | ||
|
|
cca84e6455 | ||
|
|
82ce1ace28 | ||
|
|
e59d5a766f | ||
|
|
98a8103f5a | ||
|
|
81a8593eb6 | ||
|
|
b6584c9ddf | ||
|
|
08d4cc9690 | ||
|
|
0565162fde | ||
|
|
31614247cf | ||
|
|
e9390dcd48 | ||
|
|
c9b3e2b156 | ||
|
|
ace6012c1c | ||
|
|
17901fbf3d | ||
|
|
2c7b5578e7 | ||
|
|
b2b7d18802 | ||
|
|
965da0535a | ||
|
|
ebd187ec06 | ||
|
|
b495fb7a37 | ||
|
|
58e5125cde | ||
|
|
dadfbd2ddb | ||
|
|
9fdeec6128 | ||
|
|
e783aeab66 | ||
|
|
53a94cc7bb | ||
|
|
839a9b6cb8 | ||
|
|
2557d77ae3 | ||
|
|
6a7df2f1ae | ||
|
|
2db83b3892 | ||
|
|
08c7cc0918 | ||
|
|
d555dcb6d7 | ||
|
|
7226f25c67 | ||
|
|
77a3be6fd7 | ||
|
|
2397df7f22 | ||
|
|
118d2c7273 | ||
|
|
b44d2b1bb3 | ||
|
|
9867d88067 | ||
|
|
037c49e2c6 | ||
|
|
1e989060f9 | ||
|
|
4d6271c161 | ||
|
|
c3900f6984 | ||
|
|
aa1a036f66 | ||
|
|
26274e6c5d | ||
|
|
bcfbe5a284 | ||
|
|
496243fbc7 | ||
|
|
036ffe595a | ||
|
|
2a903e9f03 | ||
|
|
36e5bbb752 | ||
|
|
96a976d826 | ||
|
|
ff514a0568 | ||
|
|
a4d99b78d5 | ||
|
|
029c69ecd3 | ||
|
|
9e1f04e476 | ||
|
|
c8bde41451 | ||
|
|
e16c01623d | ||
|
|
7de294a58e | ||
|
|
060343f096 | ||
|
|
addba0d007 | ||
|
|
68418f2c8f | ||
|
|
428dd17d54 | ||
|
|
7344b41f47 | ||
|
|
5f003b0dd7 | ||
|
|
b8f454b8ac | ||
|
|
b45e03a45a | ||
|
|
0a268f35bc | ||
|
|
e3709533b4 | ||
|
|
acc8d5f7b2 | ||
|
|
da06a96630 | ||
|
|
7eaf8cfd2f | ||
|
|
5248c8f78d | ||
|
|
f4365dbd3a | ||
|
|
2309b16bd4 | ||
|
|
c65af61a68 | ||
|
|
a48e9bc64c | ||
|
|
b4984d7f2d | ||
|
|
1017d62f0d | ||
|
|
ebc208cacd | ||
|
|
0236c8e7f8 | ||
|
|
db8a92f5c2 | ||
|
|
c1e5408492 | ||
|
|
84890eb1b4 | ||
|
|
220685a522 | ||
|
|
8ebf5dbcb4 | ||
|
|
dad807d62d | ||
|
|
8e52ffa30e | ||
|
|
18970ff0b9 | ||
|
|
630698459b | ||
|
|
f8e854a087 | ||
|
|
3b2274b0aa | ||
|
|
0d1ebce1a1 | ||
|
|
70d86ce9a2 | ||
|
|
291f591af3 | ||
|
|
5a48c52a95 | ||
|
|
5625ef956d | ||
|
|
969733ab77 | ||
|
|
12a1ac1a7d | ||
|
|
4da322a03f | ||
|
|
d5754c00e2 | ||
|
|
2e9b5f3a2b | ||
|
|
b11a8e9c0c | ||
|
|
e37533afbb | ||
|
|
4a476673ac | ||
|
|
fe5386cc08 | ||
|
|
8bfb1a9d39 | ||
|
|
109aafcbc0 | ||
|
|
e289c06d8d | ||
|
|
78c1c318c5 | ||
|
|
07983d75ea | ||
|
|
d0a4a4242d | ||
|
|
a71be2b193 | ||
|
|
779ca13d48 | ||
|
|
f3b0a50db7 | ||
|
|
c831596e02 | ||
|
|
2ae369fbdb | ||
|
|
f2c9d968a4 | ||
|
|
c3f02980a0 | ||
|
|
7d5ce7b5d7 | ||
|
|
8bb71eeb51 | ||
|
|
5a88598811 | ||
|
|
da3fbd386d | ||
|
|
1e915aad20 | ||
|
|
889d5e5b28 | ||
|
|
51cf2df2f8 | ||
|
|
e690285d9d | ||
|
|
81d6423f24 | ||
|
|
046dee7389 | ||
|
|
a33a24dddf | ||
|
|
636bdbd12c | ||
|
|
0ab3492afd | ||
|
|
666ae11639 | ||
|
|
826856c390 | ||
|
|
a764a481f3 | ||
|
|
e345090015 | ||
|
|
cc97198fe4 | ||
|
|
5a146e34fa | ||
|
|
70838c3e24 | ||
|
|
2dd71cbe26 | ||
|
|
32c013a72c | ||
|
|
db6e1ae558 | ||
|
|
4117da6e93 | ||
|
|
02b1ba03ed | ||
|
|
1f501f4553 | ||
|
|
0205d0afb5 | ||
|
|
ccf9bf4613 | ||
|
|
d4704e39ac | ||
|
|
4a82abc19b | ||
|
|
3ae32ab0a0 | ||
|
|
1cc6a108a7 | ||
|
|
d4ffe53dbd | ||
|
|
f43b3508e9 | ||
|
|
ea0c326d3d | ||
|
|
4843480fbf | ||
|
|
930e14e258 | ||
|
|
87bbb41fb6 | ||
|
|
e767f68f89 | ||
|
|
b4d304c21e | ||
|
|
db1f412dae | ||
|
|
a73f5e83ec | ||
|
|
49b2e98a8f | ||
|
|
b3a16fd0ce | ||
|
|
dd6735ec04 | ||
|
|
9ebf1436d2 | ||
|
|
0aa71b5237 | ||
|
|
7ef2d52efd | ||
|
|
a5c6dfe62b | ||
|
|
4a606e0cb2 | ||
|
|
27370c655d | ||
|
|
887f4e8985 | ||
|
|
c91c4b01f9 | ||
|
|
5f198dba08 | ||
|
|
67f9a7f5e4 | ||
|
|
62404721ed | ||
|
|
6d37329e74 | ||
|
|
0c316d3225 | ||
|
|
131644477d | ||
|
|
b964dd0895 | ||
|
|
7dd32ed44b | ||
|
|
0b6aedfc93 | ||
|
|
b692088c94 | ||
|
|
160ab8d0ae | ||
|
|
a599cb436a | ||
|
|
294aa81298 | ||
|
|
ddc4b3dd6e | ||
|
|
4c5bf3ad2b | ||
|
|
88c33214c6 | ||
|
|
393be65aa6 | ||
|
|
9ce9a1598f | ||
|
|
d9079fe18e | ||
|
|
3cde070d3b | ||
|
|
b2a5f65a77 | ||
|
|
69dff5a2cb | ||
|
|
40e0d5cfbf | ||
|
|
5a0100757f | ||
|
|
f9fe88898d | ||
|
|
a2d6955f79 | ||
|
|
8fa247145e | ||
|
|
04bb65dcf7 | ||
|
|
e4884c7835 | ||
|
|
8b9ce3e8de | ||
|
|
327a5f5fae | ||
|
|
50b971477b | ||
|
|
07c7eea2df | ||
|
|
42135d3e53 | ||
|
|
d74e5e6457 | ||
|
|
a2c7377134 | ||
|
|
0e54393d5a | ||
|
|
8cf8cefc92 | ||
|
|
098c40e9ac | ||
|
|
80c1c4c6c8 | ||
|
|
ef8afab7e8 | ||
|
|
84e0e08aec | ||
|
|
2fce771214 | ||
|
|
15929e8cf2 | ||
|
|
f1c8ec141a | ||
|
|
a62393e0ed | ||
|
|
a6defd9b62 | ||
|
|
374212beaa | ||
|
|
5132e62045 | ||
|
|
9504ede1f3 | ||
|
|
afb6e6b5ba | ||
|
|
60b2b92803 | ||
|
|
6113311fda | ||
|
|
ecac6201d0 | ||
|
|
90d8c37f91 | ||
|
|
c43085beab | ||
|
|
d9c383b2ef | ||
|
|
100938b0e5 | ||
|
|
83a6ee0a22 | ||
|
|
0dab7f02ed | ||
|
|
0e6f2eb1cd | ||
|
|
9a371f8998 | ||
|
|
8a7bbd1795 | ||
|
|
d1fef24723 | ||
|
|
3ddc5e7846 | ||
|
|
b439ea45ec | ||
|
|
5680785f86 | ||
|
|
e8eb7bec1b | ||
|
|
565b7404f9 | ||
|
|
9cffe4d476 | ||
|
|
43be88a37c | ||
|
|
ea67859de7 | ||
|
|
c8986464ec | ||
|
|
7804f94d8b | ||
|
|
bfa77aebfc | ||
|
|
487fb02313 | ||
|
|
ef64038107 | ||
|
|
5d336accbc | ||
|
|
99047b2866 | ||
|
|
f611cf3b5a | ||
|
|
4ad059605c | ||
|
|
dc2ff97dd8 | ||
|
|
2b5265c103 | ||
|
|
2e98fde053 | ||
|
|
d5176e0eb7 | ||
|
|
eb0b2a847b | ||
|
|
cff5482f69 | ||
|
|
afc37973d0 | ||
|
|
3eada6c6ab | ||
|
|
7c39268fe5 | ||
|
|
eb67b299de | ||
|
|
3e7a09c1e3 | ||
|
|
637dc9b9b2 | ||
|
|
1de16d4715 | ||
|
|
49090d774d | ||
|
|
9a695b5cdd | ||
|
|
e0339b50c0 | ||
|
|
d0c584672f | ||
|
|
27816acaeb | ||
|
|
4de3cc8a09 | ||
|
|
5c16ceb2fa | ||
|
|
9db3f73413 | ||
|
|
e0ceddce09 | ||
|
|
6dc4096299 | ||
|
|
1fa03b5c74 | ||
|
|
f8f57a93c3 | ||
|
|
960fe63312 | ||
|
|
7545b94128 | ||
|
|
1263a27c1c | ||
|
|
e1c084d365 | ||
|
|
7465ec0bbd | ||
|
|
17ed57836f | ||
|
|
d0acb51fd7 | ||
|
|
71c1ed6c49 | ||
|
|
bfb68254a4 | ||
|
|
18f7662209 | ||
|
|
a0d84f383c | ||
|
|
1f447ae681 | ||
|
|
8bd6691331 | ||
|
|
42afcf9322 | ||
|
|
3d3694bb8d | ||
|
|
589b913960 | ||
|
|
7ba4f42494 | ||
|
|
c96118d2b5 | ||
|
|
0285d8cd38 | ||
|
|
ee87604a4d | ||
|
|
2235ebaf20 | ||
|
|
954d0d954f | ||
|
|
e31747d087 | ||
|
|
fc581253a4 | ||
|
|
47c4609f23 | ||
|
|
2d52bc2a49 | ||
|
|
5367101330 | ||
|
|
db145b4999 | ||
|
|
7f950ddb80 | ||
|
|
50e2251e74 | ||
|
|
33d5455b6f | ||
|
|
ac018500cd | ||
|
|
3e661db283 | ||
|
|
18fb78b3ec | ||
|
|
58ff13d399 | ||
|
|
0ac0175bb1 | ||
|
|
f39007cd2d | ||
|
|
2349aa4df8 | ||
|
|
a93a173183 | ||
|
|
42e55dd2dd | ||
|
|
ca3146d38f | ||
|
|
7f6cd514a5 | ||
|
|
88e24e92b5 | ||
|
|
8b447e361f | ||
|
|
a92dd2d4e4 | ||
|
|
852ec44567 | ||
|
|
b6e32cdeb4 | ||
|
|
4bd264d9be | ||
|
|
4a4b8574d0 | ||
|
|
ded073edd9 | ||
|
|
568f95e7a3 | ||
|
|
5adcabc8de | ||
|
|
e3bce7172c | ||
|
|
96fb618390 | ||
|
|
2d4fdcb661 | ||
|
|
7a84cff5b4 | ||
|
|
2af627b704 | ||
|
|
77fdf18686 | ||
|
|
944a77fe42 | ||
|
|
049678b32e | ||
|
|
3325e4d854 | ||
|
|
1e90e88d4b | ||
|
|
8aeb33c98c | ||
|
|
3b08721835 | ||
|
|
5a30878599 | ||
|
|
c8a8935db0 | ||
|
|
ec196f57bb | ||
|
|
f7809ec3a7 | ||
|
|
71d3ec3616 | ||
|
|
4a7cf8d870 | ||
|
|
4bf8836c0a | ||
|
|
1ca36ee29c | ||
|
|
3446ff88cf | ||
|
|
de5a91a13f | ||
|
|
814cd73019 | ||
|
|
c21611661b | ||
|
|
8f817ce689 | ||
|
|
971b5111e7 | ||
|
|
07069a64ae | ||
|
|
6acea51f12 | ||
|
|
7aa2dab307 | ||
|
|
3091be8f67 | ||
|
|
487531cc52 | ||
|
|
58bfcb4273 | ||
|
|
8d8be27f22 | ||
|
|
27a978cba5 | ||
|
|
71b4e6afa4 | ||
|
|
e1f3b19c0c | ||
|
|
649c2aa5a6 | ||
|
|
cac8cc99e1 | ||
|
|
cb162b16f2 | ||
|
|
86e54ce145 | ||
|
|
efd809971f | ||
|
|
38ae14cc4d | ||
|
|
c7e33a90fe | ||
|
|
5add835750 | ||
|
|
734c614cba | ||
|
|
f6b347fa62 | ||
|
|
08d2f3125e | ||
|
|
385c48dcad | ||
|
|
0926057bfe | ||
|
|
6912e3893e | ||
|
|
d3052657df | ||
|
|
a5ca4d8edf | ||
|
|
afb1ebebd5 | ||
|
|
a04a9eb5ad | ||
|
|
027badd21f | ||
|
|
1affc760e6 | ||
|
|
3ca72b7398 | ||
|
|
702dbddd78 | ||
|
|
8fbecc0227 | ||
|
|
421271acfa | ||
|
|
98af76b3ac | ||
|
|
3952fdbe2d | ||
|
|
bc13beaa85 | ||
|
|
59b2e706ca | ||
|
|
8bf835c531 | ||
|
|
087ed7c132 | ||
|
|
4c075df327 | ||
|
|
9ea8baca05 | ||
|
|
9b6784720e | ||
|
|
3761e1dd60 | ||
|
|
b3eb809550 | ||
|
|
cb72865dcc | ||
|
|
d646b4729b | ||
|
|
a2dd903d0d | ||
|
|
28ed378ee7 | ||
|
|
15ae55136f | ||
|
|
b18abd954f | ||
|
|
b45f79a1f8 | ||
|
|
01a03b4c84 | ||
|
|
e48328af34 | ||
|
|
8925d44807 | ||
|
|
213283510f | ||
|
|
9f8190dc28 | ||
|
|
c32d4ee2f7 | ||
|
|
2c867a4b2c | ||
|
|
da5194bdcb | ||
|
|
bbb27aed10 | ||
|
|
c02fbaeae7 | ||
|
|
847218da73 | ||
|
|
90dc788893 | ||
|
|
f3525cc555 | ||
|
|
198f243181 | ||
|
|
8e049f4af5 | ||
|
|
ff465a59b6 | ||
|
|
68b4f3ca04 | ||
|
|
6b31f2b3f2 | ||
|
|
63cf0f1548 | ||
|
|
e607f68b3e | ||
|
|
db3bb82dbd | ||
|
|
5889c600fa | ||
|
|
d7d4c7236c | ||
|
|
f54d8ce36f | ||
|
|
43faa13cb5 | ||
|
|
85a2d994f3 | ||
|
|
d8cd78cd6b | ||
|
|
3e59a5bcd2 | ||
|
|
0efb89d6ff | ||
|
|
6697c075cb | ||
|
|
06660160e7 | ||
|
|
0b571737b7 | ||
|
|
0a486a280d | ||
|
|
bd53e685d0 | ||
|
|
a2bbf3f44e | ||
|
|
410bb62906 | ||
|
|
cbb4ac3e20 | ||
|
|
7508192ab9 | ||
|
|
bbf6cbd8fb | ||
|
|
9765269d27 | ||
|
|
61746b7ff7 | ||
|
|
e6066c2cb5 | ||
|
|
633a918590 | ||
|
|
71c14a0837 | ||
|
|
9bbed2c275 | ||
|
|
d9ba4d9130 | ||
|
|
ecd40de7ec | ||
|
|
e2bd6c06ec | ||
|
|
a26be76d79 | ||
|
|
3b68c1eb69 | ||
|
|
f7879bdbf9 | ||
|
|
dbb0fc519f | ||
|
|
b931ccfabf | ||
|
|
eeab048f46 | ||
|
|
5da89ac05b | ||
|
|
e2b446be1c | ||
|
|
5f2e17a738 | ||
|
|
399d6d0045 | ||
|
|
f36f3ffd21 | ||
|
|
3c785ae7d8 | ||
|
|
00cd772cbc | ||
|
|
d434724a54 | ||
|
|
b6c9a3bb89 | ||
|
|
fc3bf45a7f | ||
|
|
cbf6c06e4b | ||
|
|
cff21124da | ||
|
|
ce7893c2e5 | ||
|
|
f7dcaa38ff | ||
|
|
8ce1013a26 | ||
|
|
114d67b408 | ||
|
|
56c2d16560 | ||
|
|
2238c42432 | ||
|
|
64f6cf6747 | ||
|
|
c0e9f1ca43 | ||
|
|
7f66087d8c | ||
|
|
18671b7cca | ||
|
|
233156c744 | ||
|
|
ac0ffab99c | ||
|
|
5e964d2105 | ||
|
|
59e7a5fa4b | ||
|
|
8452f577d2 | ||
|
|
726eb8d0e1 | ||
|
|
2c0d6b93ee | ||
|
|
98d06b2892 | ||
|
|
533f2734f1 | ||
|
|
856c19fa17 | ||
|
|
3237507bb2 | ||
|
|
ff5a248240 | ||
|
|
fc3bdc9037 | ||
|
|
533c0bf0b1 | ||
|
|
afb6862035 | ||
|
|
92d9d04a78 | ||
|
|
0704e5ee67 | ||
|
|
7dfcd89a04 | ||
|
|
2859bee4c0 | ||
|
|
724c49f5c4 | ||
|
|
48c4a473df | ||
|
|
3d39272536 | ||
|
|
0a63966cbd | ||
|
|
89e959c2e3 | ||
|
|
c56dd2cdbd | ||
|
|
363f28a46b | ||
|
|
5549f51a13 | ||
|
|
972f857c71 | ||
|
|
d2eb1488fd | ||
|
|
82486ee22e | ||
|
|
29cc57f52a | ||
|
|
f7d92caae5 | ||
|
|
201174e293 | ||
|
|
dc2f6235a1 | ||
|
|
0824c779db | ||
|
|
e002ad3b6a | ||
|
|
8a570069f8 | ||
|
|
bfe44c1621 | ||
|
|
b17882a1c1 | ||
|
|
f309979126 | ||
|
|
5a0490e81f | ||
|
|
2c007115f7 | ||
|
|
508e4eac61 | ||
|
|
ac47fb84a8 | ||
|
|
7ba14a3925 | ||
|
|
67514ccc5f | ||
|
|
6ee3886ecf | ||
|
|
76282ed1ef | ||
|
|
fd1d807012 | ||
|
|
906c4c7f39 | ||
|
|
bfa9e8c495 | ||
|
|
425eecf692 | ||
|
|
ac1f7542a9 | ||
|
|
225d168fdd | ||
|
|
e073b2cf42 | ||
|
|
1cb366d822 | ||
|
|
c9c8e30ced | ||
|
|
c50941ac7d | ||
|
|
58f950ffbd | ||
|
|
a1341ba503 | ||
|
|
620f4a8bfb | ||
|
|
668e43f57c | ||
|
|
7f11d44130 | ||
|
|
5c77e752f6 | ||
|
|
6d260c195f | ||
|
|
fdfecbb3f7 | ||
|
|
1d8132bcaa | ||
|
|
5f1bde5885 | ||
|
|
0adb025573 | ||
|
|
f8e7623f23 | ||
|
|
9243cceb9a | ||
|
|
5a62035ed7 | ||
|
|
c3a81b5bf3 | ||
|
|
34f6811eea | ||
|
|
c800e70ec1 | ||
|
|
7aa2ee08bf | ||
|
|
933aa88dc7 | ||
|
|
4b79ecc3d9 | ||
|
|
0bd179c6ca | ||
|
|
70141bd049 | ||
|
|
65cc585697 | ||
|
|
bd39468b96 | ||
|
|
dad831bc8c | ||
|
|
8a8745701b | ||
|
|
48b899b5d0 | ||
|
|
210447cd37 | ||
|
|
e672fbf6e2 | ||
|
|
004464c699 | ||
|
|
6f39a37656 | ||
|
|
b097b54792 | ||
|
|
0693080630 | ||
|
|
75d27837c2 | ||
|
|
597f29e90a | ||
|
|
a77bb50b9e | ||
|
|
3f84e8e652 | ||
|
|
1df7f25cad | ||
|
|
a0c30517bd | ||
|
|
dc36a9c3e7 | ||
|
|
0e61ad27da | ||
|
|
b3009c3366 | ||
|
|
810073a79b | ||
|
|
79c69d03fa | ||
|
|
22996da737 | ||
|
|
82d0b6c9f0 | ||
|
|
77c997b91e | ||
|
|
bb5d52d72c | ||
|
|
1474bab34a | ||
|
|
05f6f4ea5b | ||
|
|
05feb39501 | ||
|
|
ce92c3329b | ||
|
|
216b6eecc0 | ||
|
|
c0917e9276 | ||
|
|
0bbcbf0d2d | ||
|
|
9b998e3fca | ||
|
|
d7d65cdf21 | ||
|
|
27925289d4 | ||
|
|
03ea265bab | ||
|
|
917f9eead3 | ||
|
|
08f2e72af8 | ||
|
|
a2fb0ec029 | ||
|
|
084042ad13 | ||
|
|
8da3defe24 | ||
|
|
58f9cd32a5 | ||
|
|
f7abf5a2d5 | ||
|
|
c8c6d072f6 | ||
|
|
4d9cc604b9 | ||
|
|
1dc76fa171 | ||
|
|
1d37b9ae9c | ||
|
|
26828602a8 | ||
|
|
e253f3ac89 | ||
|
|
4d59fdea1b | ||
|
|
98a313eb5b | ||
|
|
77e1cd8b32 | ||
|
|
dede5c5ef5 | ||
|
|
d156c0be3d | ||
|
|
dc0bc6e606 | ||
|
|
05040425df | ||
|
|
36f7c283b8 | ||
|
|
9fe4237033 | ||
|
|
b03c0a3e2d | ||
|
|
87946996ed | ||
|
|
cc55023440 | ||
|
|
1f19dfc50d | ||
|
|
950a440350 | ||
|
|
c92b88bfaf | ||
|
|
10875f26dc | ||
|
|
d62e809c18 | ||
|
|
d85bf4f6dd | ||
|
|
801e201cc3 | ||
|
|
e18e0da0c1 | ||
|
|
d046b0a412 | ||
|
|
72084b8fc1 | ||
|
|
2639b2bd2c | ||
|
|
82aa493dfd | ||
|
|
6c3c7c40b5 | ||
|
|
5616751c04 | ||
|
|
7d898ca34d | ||
|
|
e26556b21a | ||
|
|
89e6d363e2 | ||
|
|
c559ac7be9 | ||
|
|
b3fbe47f0a | ||
|
|
c73af4c480 | ||
|
|
8887fe1eac | ||
|
|
ed861a6c96 | ||
|
|
e63bb6a8ec | ||
|
|
8ec09d25ce | ||
|
|
a9a01ae479 | ||
|
|
31a3864789 | ||
|
|
a5c537197c | ||
|
|
4ea13bdbc0 | ||
|
|
b06ddf2dc7 | ||
|
|
2c45ac9df3 | ||
|
|
7735f68502 | ||
|
|
ffb0f5a1c7 | ||
|
|
80c7f9e855 | ||
|
|
709ef4e39f | ||
|
|
4ceb869420 | ||
|
|
432a209184 | ||
|
|
8444271c58 | ||
|
|
2bc97c23d4 | ||
|
|
9ea02bf125 | ||
|
|
2b4de52af4 | ||
|
|
d3492ebf2f | ||
|
|
ff8698f619 | ||
|
|
16bc218ea7 | ||
|
|
72d2920dc3 | ||
|
|
fb8de0d753 | ||
|
|
352afc9827 | ||
|
|
ce699a1c84 | ||
|
|
cde20d338e | ||
|
|
8ab22e9cc8 | ||
|
|
0f2442a7a5 | ||
|
|
ba91140ea5 | ||
|
|
10f05e75ce | ||
|
|
287811f4ab | ||
|
|
a68462c7cb | ||
|
|
005c28dd3a | ||
|
|
197e1c651f | ||
|
|
c01da0f263 | ||
|
|
81ff542d0b | ||
|
|
efee27559b | ||
|
|
dc5408f874 | ||
|
|
7cf9217158 | ||
|
|
401fc8161a | ||
|
|
be2f9a6099 | ||
|
|
21989aa88e | ||
|
|
461d041a50 | ||
|
|
de8662c52f | ||
|
|
0dbbbad370 | ||
|
|
2e05c0a7d9 | ||
|
|
f12f1cb392 | ||
|
|
b6891850a7 | ||
|
|
f147d799e0 | ||
|
|
534bbe9b9a | ||
|
|
b7f4f6af3a | ||
|
|
ac96919caf | ||
|
|
05cf06656d | ||
|
|
1356f0bcf6 | ||
|
|
ce0c955c29 | ||
|
|
0e7f89169e | ||
|
|
81329fa7fa | ||
|
|
3763278366 | ||
|
|
8600dbb04e | ||
|
|
b27f69aace | ||
|
|
8e0c19fc8d | ||
|
|
54ee1c23f0 | ||
|
|
39b33160c2 | ||
|
|
d94f86b44a | ||
|
|
4ae0daa17f | ||
|
|
8d548413bd | ||
|
|
f2e7a99b1e | ||
|
|
a8c31f68b3 | ||
|
|
db49b42e4a | ||
|
|
e77c2fc9bb | ||
|
|
5197ef591a | ||
|
|
898f8ec006 | ||
|
|
37ff96ba95 | ||
|
|
fa961832f3 | ||
|
|
b66ac2781c | ||
|
|
86a0f2d4a7 | ||
|
|
f5e2a67924 | ||
|
|
45cf626230 | ||
|
|
9717b7516d | ||
|
|
b92c23df2b | ||
|
|
df617f19e0 | ||
|
|
fb565c2548 | ||
|
|
2bfc3a6c85 | ||
|
|
4ab5d84b94 | ||
|
|
154213b705 | ||
|
|
4cce29ea9d | ||
|
|
9d5d00aa8f | ||
|
|
70d47c1757 | ||
|
|
befa34790f | ||
|
|
84da9d289b | ||
|
|
7a30d535e8 | ||
|
|
199701d26b | ||
|
|
3ac2cfa528 | ||
|
|
78d68aa1b9 | ||
|
|
8042b78f1e | ||
|
|
000d064276 | ||
|
|
600a78f35f | ||
|
|
6f5e4c30dc | ||
|
|
8e7457911e | ||
|
|
43b3207937 | ||
|
|
22f2151c21 | ||
|
|
7c744f2307 | ||
|
|
08d57fed86 | ||
|
|
6e8a0fe0ef | ||
|
|
6668ec4b5d | ||
|
|
08a8288293 | ||
|
|
3001640eec | ||
|
|
efa3658ced | ||
|
|
92bc253cf7 | ||
|
|
a190190843 | ||
|
|
9c40bd1a23 | ||
|
|
dc2193138d | ||
|
|
033c8cb8b1 | ||
|
|
21c4429c6e | ||
|
|
348a96b033 | ||
|
|
0c930d7c0f | ||
|
|
98aca2b988 | ||
|
|
8d7f497e0c | ||
|
|
1b6328b451 | ||
|
|
d10e08e63e | ||
|
|
a8f21b56f0 | ||
|
|
173842510c | ||
|
|
19c08fe0eb | ||
|
|
db817a7192 | ||
|
|
2c8e93cc96 | ||
|
|
44e9a97f09 | ||
|
|
298ddc4195 | ||
|
|
d9134d6085 | ||
|
|
b17b4ce880 | ||
|
|
2304c32453 | ||
|
|
2b68e4a7df | ||
|
|
8f06e72318 | ||
|
|
5fa740ead4 | ||
|
|
e5096e61e5 | ||
|
|
2a3195636e | ||
|
|
5fb9b8ccd3 | ||
|
|
7089e2299a | ||
|
|
b553cbb68c | ||
|
|
c712411e77 | ||
|
|
48d5cc554c | ||
|
|
39bfd69dc9 | ||
|
|
d690b80493 | ||
|
|
eb48a9f993 | ||
|
|
5a54abaf44 | ||
|
|
47c161f9f1 | ||
|
|
807f8e68f3 | ||
|
|
fba8536c33 | ||
|
|
36fc1bb71a | ||
|
|
ccaa96c81e | ||
|
|
ac2f279c88 | ||
|
|
91cb99b8c8 | ||
|
|
02b1a525e3 | ||
|
|
9bf4a4b18c | ||
|
|
8a01553c49 | ||
|
|
21b913845f | ||
|
|
220e4feb1d | ||
|
|
13884c0457 | ||
|
|
b3bb6ebc6e | ||
|
|
424eb90dd8 | ||
|
|
df804d0729 | ||
|
|
79269cdfd5 | ||
|
|
2a650d4d74 | ||
|
|
017b4ecdb3 | ||
|
|
9c84bf3fd5 | ||
|
|
397b54a8c3 | ||
|
|
cb3604c0a1 | ||
|
|
1a7f0673ea | ||
|
|
0d043207b9 | ||
|
|
f995dea971 | ||
|
|
49e20488bc | ||
|
|
3e47b27192 | ||
|
|
f4fa18ec05 | ||
|
|
c6d1fa2b7d | ||
|
|
c4df7667ff | ||
|
|
6a303cfa25 | ||
|
|
4ffa5cc1da | ||
|
|
172e1cf3bf | ||
|
|
e6a32e52f5 | ||
|
|
d2b6f6844d | ||
|
|
e9ef95ef1f | ||
|
|
10eeb5374f | ||
|
|
332951bc8e | ||
|
|
4daf3280ff | ||
|
|
87bb2c74d9 | ||
|
|
ba011853a0 | ||
|
|
461a158ac3 | ||
|
|
85f59f1103 | ||
|
|
335b9f445f | ||
|
|
7cda45c904 | ||
|
|
4159fdc1a3 | ||
|
|
190da30979 | ||
|
|
ed9c74b900 | ||
|
|
6783766c33 | ||
|
|
b27018b379 | ||
|
|
021d07e04a | ||
|
|
bf0baec392 | ||
|
|
923cbac400 | ||
|
|
ab938f2536 | ||
|
|
a55b1804e9 | ||
|
|
4bfa6b3a5d | ||
|
|
d20f24be18 | ||
|
|
8a17bae7a6 | ||
|
|
d14c73fad5 | ||
|
|
ce878e1def | ||
|
|
a64a0d1db6 | ||
|
|
feab43f16d | ||
|
|
0d60fe775f | ||
|
|
6680be6a73 | ||
|
|
e026ab85a7 | ||
|
|
e53c903205 | ||
|
|
03dbe8565f | ||
|
|
708793cb23 | ||
|
|
43ae4fb0aa | ||
|
|
6b1d552277 | ||
|
|
f24f576b72 | ||
|
|
c23328564f | ||
|
|
cd6dd3dafa | ||
|
|
4081e15bef | ||
|
|
b05e3813d1 | ||
|
|
3048311f40 | ||
|
|
1045392d91 | ||
|
|
7b23ca8ee7 | ||
|
|
4d67eca8bb | ||
|
|
74c4b7311e | ||
|
|
713c74adfd | ||
|
|
408a8a6f19 | ||
|
|
e1485e49d3 | ||
|
|
30b66934cd | ||
|
|
fd49c081c2 | ||
|
|
1327120024 | ||
|
|
d2b5043972 | ||
|
|
a0e55ea3fd | ||
|
|
1f32de29c1 | ||
|
|
12be06d682 | ||
|
|
27ca9b13f8 | ||
|
|
be45905830 | ||
|
|
05d0a89655 | ||
|
|
3ba575dcd0 | ||
|
|
3e200b7f0f | ||
|
|
cbce1f7008 | ||
|
|
e99101447e | ||
|
|
0ddb326e44 | ||
|
|
460446a15c | ||
|
|
4eea24997f | ||
|
|
0b1e9c7c66 | ||
|
|
d51a7a9eb7 | ||
|
|
0f0b959e14 | ||
|
|
b2ceb09e4d | ||
|
|
53953f5cda | ||
|
|
fbd5e819a2 | ||
|
|
bdc391d376 | ||
|
|
6b618fb121 | ||
|
|
1f3e59c9f9 | ||
|
|
1956078c8c | ||
|
|
11230f59fc | ||
|
|
21bad7a01f | ||
|
|
6f9a27ecc7 | ||
|
|
c504113d13 | ||
|
|
c92ff60592 | ||
|
|
e9013d1a2a | ||
|
|
9c4580fe40 | ||
|
|
cb060cb5db | ||
|
|
6c3d85cc45 | ||
|
|
14ae89e87c | ||
|
|
24c48f025d | ||
|
|
f0a556f004 | ||
|
|
fd4d6abb4d | ||
|
|
41cc839380 | ||
|
|
c2a4380b96 | ||
|
|
6f402ac79f | ||
|
|
bf7c1306b1 | ||
|
|
c1509cf09d | ||
|
|
014bca031c | ||
|
|
4f864fd5bd | ||
|
|
2da67567e4 | ||
|
|
5b19d2b1fc | ||
|
|
a6837dcd40 | ||
|
|
af80751a1f | ||
|
|
dd02597c3b | ||
|
|
2926a3cbd8 | ||
|
|
b02bb3bfd4 | ||
|
|
67a4683bb1 | ||
|
|
9baee1c22c | ||
|
|
8cb67b4f9d | ||
|
|
0cd47bc328 | ||
|
|
07fb58d5e1 | ||
|
|
2d80d5e611 | ||
|
|
4bd63b615b | ||
|
|
335f667507 | ||
|
|
1819036d7d | ||
|
|
4f76f116ac | ||
|
|
1eba7c7d2a | ||
|
|
83234dd52c | ||
|
|
bae23b7fce | ||
|
|
3db61eaa82 | ||
|
|
5cf85a0361 | ||
|
|
ffe27f5bde | ||
|
|
78bcd9d54c | ||
|
|
1a9797f0ff | ||
|
|
0de94ff8a4 | ||
|
|
472233d9a7 | ||
|
|
f69e31b0d5 | ||
|
|
60b696cc31 | ||
|
|
549037f744 | ||
|
|
ca5e1e6133 | ||
|
|
3e3ff163db | ||
|
|
ca755365ce | ||
|
|
ea979de19f | ||
|
|
473ddfcdf1 | ||
|
|
a627285a4c | ||
|
|
322847469d | ||
|
|
6c5fac997f | ||
|
|
1871fd383e | ||
|
|
f5b147ca4b | ||
|
|
9d2b206156 | ||
|
|
a372c76e07 | ||
|
|
b1ce07d3ae | ||
|
|
bc09fb30d8 | ||
|
|
c13f219318 | ||
|
|
6b018c5d06 | ||
|
|
e69158d9b2 | ||
|
|
520cfb780a | ||
|
|
e686fed209 | ||
|
|
80ab19ac23 | ||
|
|
25228fa58e | ||
|
|
676d35090f | ||
|
|
e1a36a356c | ||
|
|
3274c0b734 | ||
|
|
9c95e1289f | ||
|
|
ef29871b62 | ||
|
|
a2a87f8d2b | ||
|
|
83c01c6bcb | ||
|
|
c1d850804c | ||
|
|
6590d5f58a | ||
|
|
a225925bc4 | ||
|
|
ab39f1f44f | ||
|
|
8d89364d72 | ||
|
|
af2bc859d1 | ||
|
|
8e72fdaa52 | ||
|
|
e9661f90d0 | ||
|
|
30b111034d | ||
|
|
df18359309 | ||
|
|
03857e0afd | ||
|
|
eaf1e08752 | ||
|
|
d39ceffa94 | ||
|
|
406b171c66 | ||
|
|
6d89b9e203 | ||
|
|
733bb69d25 | ||
|
|
4609694141 | ||
|
|
3be0c5130a | ||
|
|
e50b512580 | ||
|
|
eb62d054de | ||
|
|
e870a309c0 | ||
|
|
3afd3b0ff3 | ||
|
|
e3a2ed95d4 | ||
|
|
20c4f085c8 | ||
|
|
02af7e9299 | ||
|
|
0ae9b36d93 | ||
|
|
2bbb2842e5 | ||
|
|
a5b4eeb932 | ||
|
|
44de602e52 | ||
|
|
63fb4e2827 | ||
|
|
0a839c7321 | ||
|
|
e9747a61ac | ||
|
|
43c3bf4d24 | ||
|
|
0bf642d200 | ||
|
|
b2b69376c4 | ||
|
|
38ad60478c | ||
|
|
cf6a7198f9 | ||
|
|
ac8a926a70 | ||
|
|
aef7244939 | ||
|
|
628e2adc64 | ||
|
|
0c58f09e59 | ||
|
|
e3baf5c443 | ||
|
|
f70bf590cd | ||
|
|
473a414bc3 | ||
|
|
9ad4ec6464 | ||
|
|
a15c315a1c | ||
|
|
58036bb364 | ||
|
|
8a3509e006 | ||
|
|
1d3ead4031 | ||
|
|
498bb47d7f | ||
|
|
f2df9f3917 | ||
|
|
0414ab6e6a | ||
|
|
14a7a5534f | ||
|
|
edc60e0ad1 | ||
|
|
1a97e3de06 | ||
|
|
f5b1bd0bc2 | ||
|
|
05d7e24e66 | ||
|
|
83842ee9e1 | ||
|
|
a13039b14b | ||
|
|
8fce79f385 | ||
|
|
2efea63000 | ||
|
|
c208abf0c5 | ||
|
|
1359354387 | ||
|
|
cd0f9b71c5 | ||
|
|
04ec9caad1 | ||
|
|
259306a8db | ||
|
|
36a8991682 | ||
|
|
1461929f86 | ||
|
|
4bfc549927 | ||
|
|
40db0d6f6f | ||
|
|
6aac0b6056 | ||
|
|
8e234d9b2d | ||
|
|
70819252a9 | ||
|
|
ba264d8311 | ||
|
|
5de002e5c1 | ||
|
|
0b771abad2 | ||
|
|
00041c8ecd | ||
|
|
0225d6d9f9 | ||
|
|
fb4260d71c | ||
|
|
fa253158f4 | ||
|
|
45e3c6ae49 | ||
|
|
d526fe0f7f | ||
|
|
5707b58fda | ||
|
|
1a9f72dfe0 | ||
|
|
078f3a2b54 | ||
|
|
5bcfb9ab32 | ||
|
|
9bd45cf66a | ||
|
|
89c48bbe75 | ||
|
|
6b549696c5 | ||
|
|
3aaf8a24bf | ||
|
|
41ffd6e8ae | ||
|
|
c0a6f3e012 | ||
|
|
eae8de0373 | ||
|
|
23ec6ac567 | ||
|
|
f4cfb4a5ef | ||
|
|
80a9c82813 | ||
|
|
bcd6178d67 | ||
|
|
f10e281ffc | ||
|
|
c2b32fd64a | ||
|
|
80f150dfb4 | ||
|
|
a5c5fcbde1 | ||
|
|
0d76e845d5 | ||
|
|
979d50eb0e | ||
|
|
7099922c35 | ||
|
|
b54b4a4445 | ||
|
|
03989a5af0 | ||
|
|
1847c2e322 | ||
|
|
f7371e9ed5 | ||
|
|
f696274740 | ||
|
|
1c48320ce0 | ||
|
|
96ecf79d32 | ||
|
|
6d243e0ac8 | ||
|
|
8bf60f133f | ||
|
|
3b9a3aba87 | ||
|
|
f0c986858a | ||
|
|
7ee13b4afb | ||
|
|
bca4102542 | ||
|
|
31ac8d6acc | ||
|
|
e82b7615b3 | ||
|
|
6f10f7a21a | ||
|
|
46fb68214f | ||
|
|
c2381424bc | ||
|
|
31328e79be | ||
|
|
96657e300a | ||
|
|
a2e6aa9e64 | ||
|
|
8c2d79e9cf | ||
|
|
cd140b5527 | ||
|
|
a0456bf4f7 | ||
|
|
55e3947cf7 | ||
|
|
db5156e4cd | ||
|
|
eece0677a7 | ||
|
|
24e8c20511 | ||
|
|
886717d330 | ||
|
|
26b27a616a | ||
|
|
0c663e5555 | ||
|
|
0f087915f6 | ||
|
|
a78fa9c0f2 | ||
|
|
b1752ea635 | ||
|
|
ec150917c2 | ||
|
|
7a9a69c439 | ||
|
|
9e9862c6f0 | ||
|
|
7b76d929cd | ||
|
|
1811dfa423 | ||
|
|
3abbc8fd97 | ||
|
|
4b88b67bed | ||
|
|
a2734807ca | ||
|
|
d0d4df313e | ||
|
|
1efd5e6502 | ||
|
|
b12cac0ac3 | ||
|
|
578aa6ccd2 | ||
|
|
3b90530717 | ||
|
|
f199c7a63c | ||
|
|
50a2526d1f | ||
|
|
7fb8a28b59 | ||
|
|
30a825438e | ||
|
|
f63da13210 | ||
|
|
08d73675d4 | ||
|
|
f0f6c00a0e | ||
|
|
965458ca74 | ||
|
|
b30f7ee41c | ||
|
|
a2eb53ce0b | ||
|
|
619c816e7f | ||
|
|
3d6fb7a8fa | ||
|
|
891624c085 | ||
|
|
a7c4686980 | ||
|
|
93aa052856 | ||
|
|
61d05f6782 | ||
|
|
60ccae48f1 | ||
|
|
4b454581fd | ||
|
|
f0aadebd2c | ||
|
|
d3f0ac7954 | ||
|
|
134f76c17f | ||
|
|
b9c877a109 | ||
|
|
aa243a8aae | ||
|
|
e5c1c6f544 | ||
|
|
9e9f85079e | ||
|
|
ae8e2e1f89 | ||
|
|
b2c70e9301 | ||
|
|
e022f4a0d1 | ||
|
|
8bc32e6371 | ||
|
|
f739c47984 | ||
|
|
13fb9fdfd2 | ||
|
|
9a5f51bfbf | ||
|
|
06bab6a38c | ||
|
|
c35a14d8fd | ||
|
|
b914073147 | ||
|
|
04ae18143b | ||
|
|
efe8e81b6e | ||
|
|
c33ddfabf9 | ||
|
|
8ec5451e64 | ||
|
|
20853ddf7e | ||
|
|
091d4cb924 | ||
|
|
cd0210c88a | ||
|
|
ed10f984b6 | ||
|
|
087a6a0810 | ||
|
|
495b4ee7c2 | ||
|
|
7833c28b7a | ||
|
|
bbfb68b082 | ||
|
|
b32e7a777c | ||
|
|
a327889d05 | ||
|
|
5ac89e5a49 | ||
|
|
849653927a | ||
|
|
3545483fc1 | ||
|
|
e5a1896414 | ||
|
|
bec8e72688 | ||
|
|
86748e6d69 | ||
|
|
596f09f754 | ||
|
|
563e25f073 | ||
|
|
1800d0baaf | ||
|
|
2182658301 | ||
|
|
3990719054 | ||
|
|
071b510fba | ||
|
|
d2d2ade9f7 | ||
|
|
d97d2e5c91 | ||
|
|
a6ba44e435 | ||
|
|
4967e630fb | ||
|
|
2508464fde | ||
|
|
782623cba9 | ||
|
|
36045c5381 | ||
|
|
7e49167530 | ||
|
|
a680a2a7dc | ||
|
|
4734451f5f | ||
|
|
dafb780987 | ||
|
|
5fba3e31b4 | ||
|
|
0315020cf0 | ||
|
|
6dca896768 | ||
|
|
90454fbe87 | ||
|
|
f9b2136494 | ||
|
|
3d1c1aefb3 | ||
|
|
e6a65599fd | ||
|
|
32ac907403 | ||
|
|
3af05d62b2 | ||
|
|
b5d8dfa509 | ||
|
|
612987d1e5 | ||
|
|
916598e029 | ||
|
|
c45c634938 | ||
|
|
1bed0d0733 | ||
|
|
e0075b7633 | ||
|
|
0029767561 | ||
|
|
93f9828d04 | ||
|
|
c484af0901 | ||
|
|
b2a96bbe50 | ||
|
|
2414f43757 | ||
|
|
22c54a9917 | ||
|
|
a14c0351ba | ||
|
|
31f75a46c8 | ||
|
|
08d1e9cd73 | ||
|
|
0da83b5d4b | ||
|
|
37d7266751 | ||
|
|
ddfb61b46a | ||
|
|
9a2e8cffed | ||
|
|
e9299d1991 | ||
|
|
08d97cc795 | ||
|
|
0de5d7a96a | ||
|
|
2f8f6064a1 | ||
|
|
d3526f8cf7 | ||
|
|
b045e536c1 | ||
|
|
ab91c88b34 | ||
|
|
f91010c398 | ||
|
|
cd0d0f911b | ||
|
|
bd67006f63 | ||
|
|
5aedd96276 | ||
|
|
751a89d839 | ||
|
|
a226e90c38 | ||
|
|
2eeb2b0d71 | ||
|
|
f2779f2a50 | ||
|
|
357bb1916e | ||
|
|
67a9ff3e16 | ||
|
|
7099b11651 | ||
|
|
27e9e8ec2b | ||
|
|
4d1e3263f4 | ||
|
|
cb1d630cfb | ||
|
|
d7b9e9ab78 | ||
|
|
cb7b8b956f | ||
|
|
a0608a51c1 | ||
|
|
217f5e7ee5 | ||
|
|
50c4fd79b7 | ||
|
|
4cfd9bdbc0 | ||
|
|
f76e8ae2c5 | ||
|
|
089577c5a8 | ||
|
|
c116f933e2 | ||
|
|
fe496ab03b | ||
|
|
3c3d8417e9 | ||
|
|
2b2672e4bd | ||
|
|
1bfc8c1914 | ||
|
|
2f854cce4a | ||
|
|
40550d0840 | ||
|
|
38bedea0bd | ||
|
|
75ab5c1a36 | ||
|
|
3d7c081068 | ||
|
|
c276bd8a37 | ||
|
|
890bece70c | ||
|
|
4a4fe584d5 | ||
|
|
bcd72d21c7 | ||
|
|
722f5e56cd | ||
|
|
f3c7b2416b | ||
|
|
383d74ceb4 | ||
|
|
64f61b2954 | ||
|
|
5c0002404a | ||
|
|
66f39fd3eb | ||
|
|
e79e3bdf1d | ||
|
|
9dd3ec9179 | ||
|
|
c06ab27d08 | ||
|
|
fab4185c1f | ||
|
|
bc4b399f87 | ||
|
|
52544fa953 | ||
|
|
8b2ea4f0a0 | ||
|
|
45b1ae1fb1 | ||
|
|
090ac6eab2 | ||
|
|
b7169f3da9 | ||
|
|
587c3ab436 | ||
|
|
80bbd9dbf3 | ||
|
|
c019175fff | ||
|
|
7f79ab47ac | ||
|
|
ba188189a8 | ||
|
|
8e6359b3a4 | ||
|
|
aac77ed982 | ||
|
|
1d284ea66a | ||
|
|
9f5268101d | ||
|
|
0bba972657 | ||
|
|
bab9fc01ea | ||
|
|
692ed02df8 | ||
|
|
2e67d03b56 | ||
|
|
56ca3406c4 | ||
|
|
94e8ce5185 | ||
|
|
bb54b0280a | ||
|
|
a99c34d817 | ||
|
|
c06f45cf0e | ||
|
|
8114498fb5 | ||
|
|
889b60a71b | ||
|
|
45023b2e71 | ||
|
|
1c08e64651 | ||
|
|
3432dac261 | ||
|
|
5adab4fafb | ||
|
|
d45aebcd19 | ||
|
|
6bf21e4340 | ||
|
|
7ee6dfa21e | ||
|
|
bd7341ddc2 | ||
|
|
f9d8f479b5 | ||
|
|
fdc956e116 | ||
|
|
a44df9adab | ||
|
|
dbc2ce0b3a | ||
|
|
51b8e02455 | ||
|
|
4f9dfe9afa | ||
|
|
db05ed840d | ||
|
|
8570910a43 | ||
|
|
8a9ee40524 | ||
|
|
c166ce112b | ||
|
|
cea52d2314 | ||
|
|
d1cc937f9d | ||
|
|
b61fbc806b | ||
|
|
dfc212369a | ||
|
|
47b855adf8 | ||
|
|
d1bffd0eb0 | ||
|
|
f1b64918ce | ||
|
|
005e3f1476 | ||
|
|
49d19a9ab8 | ||
|
|
f5a866aa42 | ||
|
|
f1ddea986a | ||
|
|
040549d264 | ||
|
|
4b51d9b386 | ||
|
|
73fbd787d8 | ||
|
|
b6f848eff1 | ||
|
|
6f21d6e27e | ||
|
|
af9c3d3872 | ||
|
|
7806a29bed | ||
|
|
0412b643d2 | ||
|
|
d7ee37a946 | ||
|
|
af53a13e6b | ||
|
|
98fa028ce5 | ||
|
|
ed4d4e33b5 | ||
|
|
6c83736626 | ||
|
|
959b4fbab5 | ||
|
|
3b7ff61000 | ||
|
|
cf283a9266 | ||
|
|
e28b86ea87 | ||
|
|
362664c4d8 | ||
|
|
c860a0edb2 |
17
.config/CredScanSuppressions.json
Normal file
17
.config/CredScanSuppressions.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"tool": "Credential Scanner",
|
||||
"suppressions": [
|
||||
{
|
||||
"file": "src\\vs\\base\\test\\common\\uri.test.ts",
|
||||
"_justification": "External code"
|
||||
},
|
||||
{
|
||||
"file": "build\\actions\\AutoLabel\\dist\\index.js",
|
||||
"_justification": "False positive from webpacked code"
|
||||
},
|
||||
{
|
||||
"file": "build\\actions\\AutoMerge\\dist\\index.js",
|
||||
"_justification": "False positive from webpacked code"
|
||||
}
|
||||
]
|
||||
}
|
||||
121
.devcontainer/Dockerfile
Normal file
121
.devcontainer/Dockerfile
Normal file
@@ -0,0 +1,121 @@
|
||||
#-------------------------------------------------------------------------------------------------------------
|
||||
# Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
# Licensed under the MIT License. See https://go.microsoft.com/fwlink/?linkid=2090316 for license information.
|
||||
#-------------------------------------------------------------------------------------------------------------
|
||||
|
||||
FROM mcr.microsoft.com/vscode/devcontainers/typescript-node:0-10
|
||||
|
||||
ARG TARGET_DISPLAY=":1"
|
||||
|
||||
# VNC options
|
||||
ARG MAX_VNC_RESOLUTION=1920x1080x16
|
||||
ARG TARGET_VNC_RESOLUTION=1920x1080
|
||||
ARG TARGET_VNC_DPI=72
|
||||
ARG TARGET_VNC_PORT=5901
|
||||
ARG VNC_PASSWORD="vscode"
|
||||
|
||||
# noVNC (VNC web client) options
|
||||
ARG INSTALL_NOVNC="true"
|
||||
ARG NOVNC_VERSION=1.1.0
|
||||
ARG TARGET_NOVNC_PORT=6080
|
||||
ARG WEBSOCKETIFY_VERSION=0.9.0
|
||||
|
||||
# Firefox is useful for testing things like browser launch events, but optional
|
||||
ARG INSTALL_FIREFOX="false"
|
||||
|
||||
# Expected non-root username from base image
|
||||
ARG USERNAME=node
|
||||
|
||||
# Core environment variables for X11, VNC, and fluxbox
|
||||
ENV DBUS_SESSION_BUS_ADDRESS="autolaunch:" \
|
||||
MAX_VNC_RESOLUTION="${MAX_VNC_RESOLUTION}" \
|
||||
VNC_RESOLUTION="${TARGET_VNC_RESOLUTION}" \
|
||||
VNC_DPI="${TARGET_VNC_DPI}" \
|
||||
VNC_PORT="${TARGET_VNC_PORT}" \
|
||||
NOVNC_PORT="${TARGET_NOVNC_PORT}" \
|
||||
DISPLAY="${TARGET_DISPLAY}" \
|
||||
LANG="en_US.UTF-8" \
|
||||
LANGUAGE="en_US.UTF-8" \
|
||||
VISUAL="nano" \
|
||||
EDITOR="nano"
|
||||
|
||||
# Configure apt and install packages
|
||||
RUN apt-get update \
|
||||
&& export DEBIAN_FRONTEND=noninteractive \
|
||||
#
|
||||
# Install the Cascadia Code fonts - https://github.com/microsoft/cascadia-code
|
||||
&& curl -sSL https://github.com/microsoft/cascadia-code/releases/download/v2004.30/CascadiaCode_2004.30.zip -o /tmp/cascadia-fonts.zip \
|
||||
&& unzip /tmp/cascadia-fonts.zip -d /tmp/cascadia-fonts \
|
||||
&& mkdir -p /usr/share/fonts/truetype/cascadia \
|
||||
&& mv /tmp/cascadia-fonts/ttf/* /usr/share/fonts/truetype/cascadia/ \
|
||||
&& rm -rf /tmp/cascadia-fonts.zip /tmp/cascadia-fonts \
|
||||
#
|
||||
# Install X11, fluxbox and VS Code dependencies
|
||||
&& apt-get -y install --no-install-recommends \
|
||||
xvfb \
|
||||
x11vnc \
|
||||
fluxbox \
|
||||
dbus-x11 \
|
||||
x11-utils \
|
||||
x11-xserver-utils \
|
||||
xdg-utils \
|
||||
fbautostart \
|
||||
xterm \
|
||||
eterm \
|
||||
gnome-terminal \
|
||||
gnome-keyring \
|
||||
seahorse \
|
||||
nautilus \
|
||||
libx11-dev \
|
||||
libxkbfile-dev \
|
||||
libsecret-1-dev \
|
||||
libnotify4 \
|
||||
libnss3 \
|
||||
libxss1 \
|
||||
libasound2 \
|
||||
xfonts-base \
|
||||
xfonts-terminus \
|
||||
fonts-noto \
|
||||
fonts-wqy-microhei \
|
||||
fonts-droid-fallback \
|
||||
vim-tiny \
|
||||
nano \
|
||||
#
|
||||
# [Optional] Install noVNC
|
||||
&& if [ "${INSTALL_NOVNC}" = "true" ]; then \
|
||||
mkdir -p /usr/local/novnc \
|
||||
&& curl -sSL https://github.com/novnc/noVNC/archive/v${NOVNC_VERSION}.zip -o /tmp/novnc-install.zip \
|
||||
&& unzip /tmp/novnc-install.zip -d /usr/local/novnc \
|
||||
&& cp /usr/local/novnc/noVNC-${NOVNC_VERSION}/vnc_lite.html /usr/local/novnc/noVNC-${NOVNC_VERSION}/index.html \
|
||||
&& rm /tmp/novnc-install.zip \
|
||||
&& curl -sSL https://github.com/novnc/websockify/archive/v${WEBSOCKETIFY_VERSION}.zip -o /tmp/websockify-install.zip \
|
||||
&& unzip /tmp/websockify-install.zip -d /usr/local/novnc \
|
||||
&& apt-get -y install --no-install-recommends python-numpy \
|
||||
&& ln -s /usr/local/novnc/websockify-${WEBSOCKETIFY_VERSION} /usr/local/novnc/noVNC-${NOVNC_VERSION}/utils/websockify \
|
||||
&& rm /tmp/websockify-install.zip; \
|
||||
fi \
|
||||
#
|
||||
# [Optional] Install Firefox
|
||||
&& if [ "${INSTALL_FIREFOX}" = "true" ]; then \
|
||||
apt-get -y install --no-install-recommends firefox-esr; \
|
||||
fi \
|
||||
#
|
||||
# Clean up
|
||||
&& apt-get autoremove -y \
|
||||
&& apt-get clean -y \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
COPY bin/init-dev-container.sh /usr/local/share/
|
||||
COPY bin/set-resolution /usr/local/bin/
|
||||
COPY fluxbox/* /root/.fluxbox/
|
||||
COPY fluxbox/* /home/${USERNAME}/.fluxbox/
|
||||
|
||||
# Update privs, owners of config files
|
||||
RUN mkdir -p /var/run/dbus /root/.vnc /home/${USERNAME}/.vnc \
|
||||
&& touch /root/.Xmodmap /home/${USERNAME}/.Xmodmap \
|
||||
&& echo "${VNC_PASSWORD}" | tee /root/.vnc/passwd > /home/${USERNAME}/.vnc/passwd \
|
||||
&& chown -R ${USERNAME}:${USERNAME} /home/${USERNAME}/.Xmodmap /home/${USERNAME}/.fluxbox /home/${USERNAME}/.vnc \
|
||||
&& chmod +x /usr/local/share/init-dev-container.sh /usr/local/bin/set-resolution
|
||||
|
||||
ENTRYPOINT ["/usr/local/share/init-dev-container.sh"]
|
||||
CMD ["sleep", "infinity"]
|
||||
82
.devcontainer/README.md
Normal file
82
.devcontainer/README.md
Normal file
@@ -0,0 +1,82 @@
|
||||
# Code - OSS Development Container
|
||||
|
||||
This repository includes configuration for a development container for working with Code - OSS in an isolated local container or using [Visual Studio Codespaces](https://aka.ms/vso).
|
||||
|
||||
> **Tip:** The default VNC password is `vscode`. The VNC server runs on port `5901` with a web client at `6080`. For better performance, we recommend using a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/). Applications like the macOS Screen Sharing app will not perform as well. [Chicken](https://sourceforge.net/projects/chicken/) is a good macOS alternative.
|
||||
|
||||
## Quick start - local
|
||||
|
||||
1. Install Docker Desktop or Docker on your local machine. (See [docs](https://aka.ms/vscode-remote/containers/getting-started) for additional details.)
|
||||
|
||||
2. [Docker Desktop] If you are not using the new WSL2 Docker Desktop engine, increase the resources allocated to Docker Desktop to at least **4 Cores and 4 GB of RAM (8 GB recommended)**. Right-click on the Docker status bar item, go to **Preferences/Settings > Resources > Advanced** to do so.
|
||||
|
||||
> **Note:** The [Resource Monitor](https://marketplace.visualstudio.com/items?itemName=mutantdino.resourcemonitor) extension is included in the container so you can keep an eye on CPU/Memory in the status bar.
|
||||
|
||||
3. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the [Remote - Containers](https://aka.ms/vscode-remote/download/containers) extension.
|
||||
|
||||

|
||||
|
||||
> Note that the Remote - Containers extension requires the Visual Studio Code distribution of Code - OSS. See the [FAQ](https://aka.ms/vscode-remote/faq/license) for details.
|
||||
|
||||
4. Press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> and select **Remote - Containers: Open Repository in Container...**.
|
||||
|
||||
> **Tip:** While you can use your local source tree instead, operations like `yarn install` can be slow on macOS or using the Hyper-V engine on Windows. We recommend the "open repository" approach instead since it uses "named volume" rather than the local filesystem.
|
||||
|
||||
5. Type `https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box and press <kbd>Enter</kbd>.
|
||||
|
||||
6. After the container is running, open a web browser and go to [http://localhost:6080](http://localhost:6080) or use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.
|
||||
|
||||
Anything you start in VS Code or the integrated terminal will appear here.
|
||||
|
||||
Next: **[Try it out!](#try-it)**
|
||||
|
||||
## Quick start - Codespaces
|
||||
|
||||
>Note that the Codespaces browser-based editor cannot currently access the desktop environment in this container (due to a [missing feature](https://github.com/MicrosoftDocs/vsonline/issues/117)). We recommend using Visual Studio Code from the desktop to connect instead in the near term.
|
||||
|
||||
1. Install [Visual Studio Code Stable](https://code.visualstudio.com/) or [Insiders](https://code.visualstudio.com/insiders/) and the [Visual Studio Codespaces](https://aka.ms/vscs-ext-vscode) extension.
|
||||
|
||||

|
||||
|
||||
> Note that the Visual Studio Codespaces extension requires the Visual Studio Code distribution of Code - OSS.
|
||||
|
||||
2. Sign in by pressing <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> and selecting **Codespaces: Sign In**. You may also need to use the **Codespaces: Create Plan** if you do not have a plan. See the [Codespaces docs](https://aka.ms/vso-docs/vscode) for details.
|
||||
|
||||
3. Press <kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>P</kbd> and select **Codespaces: Create New Codespace**.
|
||||
|
||||
4. Use default settings, select a plan, and then enter the repository URL `https://github.com/microsoft/vscode` (or a branch or PR URL) in the input box when prompted.
|
||||
|
||||
5. After the container is running, open a web browser and go to [http://localhost:6080](http://localhost:6080) or use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.
|
||||
|
||||
6. Anything you start in VS Code or the integrated terminal will appear here.
|
||||
|
||||
## Try it!
|
||||
|
||||
This container uses the [Fluxbox](http://fluxbox.org/) window manager to keep things lean. **Right-click on the desktop** to see menu options. It works with GNOME and GTK applications, so other tools can be installed if needed.
|
||||
|
||||
Note you can also set the resolution from the command line by typing `set-resolution`.
|
||||
|
||||
To start working with Code - OSS, follow these steps:
|
||||
|
||||
1. In your local VS Code, open a terminal (<kbd>Ctrl/Cmd</kbd> + <kbd>Shift</kbd> + <kbd>\`</kbd>) and type the following commands:
|
||||
|
||||
```bash
|
||||
yarn install
|
||||
bash scripts/code.sh
|
||||
```
|
||||
|
||||
2. After the build is complete, open a web browser and go to [http://localhost:6080](http://localhost:6080) or use a [VNC Viewer](https://www.realvnc.com/en/connect/download/viewer/) to connect to `localhost:5901` and enter `vscode` as the password.
|
||||
|
||||
3. You should now see Code - OSS!
|
||||
|
||||
Next, let's try debugging.
|
||||
|
||||
1. Shut down Code - OSS by clicking the box in the upper right corner of the Code - OSS window through your browser or VNC viewer.
|
||||
|
||||
2. Go to your local VS Code client, and use Run / Debug view to launch the **VS Code** configuration. (Typically the default, so you can likely just press <kbd>F5</kbd>).
|
||||
|
||||
> **Note:** If launching times out, you can increase the value of `timeout` in the "VS Code", "Attach Main Process", "Attach Extension Host", and "Attach to Shared Process" configurations in [launch.json](../.vscode/launch.json). However, running `scripts/code.sh` first will set up Electron which will usually solve timeout issues.
|
||||
|
||||
3. After a bit, Code - OSS will appear with the debugger attached!
|
||||
|
||||
Enjoy!
|
||||
91
.devcontainer/bin/init-dev-container.sh
Normal file
91
.devcontainer/bin/init-dev-container.sh
Normal file
@@ -0,0 +1,91 @@
|
||||
#!/bin/bash
|
||||
|
||||
NONROOT_USER=node
|
||||
LOG=/tmp/container-init.log
|
||||
|
||||
# Execute the command it not already running
|
||||
startInBackgroundIfNotRunning()
|
||||
{
|
||||
log "Starting $1."
|
||||
echo -e "\n** $(date) **" | sudoIf tee -a /tmp/$1.log > /dev/null
|
||||
if ! pidof $1 > /dev/null; then
|
||||
keepRunningInBackground "$@"
|
||||
while ! pidof $1 > /dev/null; do
|
||||
sleep 1
|
||||
done
|
||||
log "$1 started."
|
||||
else
|
||||
echo "$1 is already running." | sudoIf tee -a /tmp/$1.log > /dev/null
|
||||
log "$1 is already running."
|
||||
fi
|
||||
}
|
||||
|
||||
# Keep command running in background
|
||||
keepRunningInBackground()
|
||||
{
|
||||
($2 sh -c "while :; do echo [\$(date)] Process started.; $3; echo [\$(date)] Process exited!; sleep 5; done 2>&1" | sudoIf tee -a /tmp/$1.log > /dev/null & echo "$!" | sudoIf tee /tmp/$1.pid > /dev/null)
|
||||
}
|
||||
|
||||
# Use sudo to run as root when required
|
||||
sudoIf()
|
||||
{
|
||||
if [ "$(id -u)" -ne 0 ]; then
|
||||
sudo "$@"
|
||||
else
|
||||
"$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# Use sudo to run as non-root user if not already running
|
||||
sudoUserIf()
|
||||
{
|
||||
if [ "$(id -u)" -eq 0 ]; then
|
||||
sudo -u ${NONROOT_USER} "$@"
|
||||
else
|
||||
"$@"
|
||||
fi
|
||||
}
|
||||
|
||||
# Log messages
|
||||
log()
|
||||
{
|
||||
echo -e "[$(date)] $@" | sudoIf tee -a $LOG > /dev/null
|
||||
}
|
||||
|
||||
log "** SCRIPT START **"
|
||||
|
||||
# Start dbus.
|
||||
log 'Running "/etc/init.d/dbus start".'
|
||||
if [ -f "/var/run/dbus/pid" ] && ! pidof dbus-daemon > /dev/null; then
|
||||
sudoIf rm -f /var/run/dbus/pid
|
||||
fi
|
||||
sudoIf /etc/init.d/dbus start 2>&1 | sudoIf tee -a /tmp/dbus-daemon-system.log > /dev/null
|
||||
while ! pidof dbus-daemon > /dev/null; do
|
||||
sleep 1
|
||||
done
|
||||
|
||||
# Set up Xvfb.
|
||||
startInBackgroundIfNotRunning "Xvfb" sudoIf "Xvfb ${DISPLAY:-:1} +extension RANDR -screen 0 ${MAX_VNC_RESOLUTION:-1920x1080x16}"
|
||||
|
||||
# Start fluxbox as a light weight window manager.
|
||||
startInBackgroundIfNotRunning "fluxbox" sudoUserIf "dbus-launch startfluxbox"
|
||||
|
||||
# Start x11vnc
|
||||
startInBackgroundIfNotRunning "x11vnc" sudoIf "x11vnc -display ${DISPLAY:-:1} -rfbport ${VNC_PORT:-5901} -localhost -no6 -xkb -shared -forever -passwdfile $HOME/.vnc/passwd"
|
||||
|
||||
# Set resolution
|
||||
/usr/local/bin/set-resolution ${VNC_RESOLUTION:-1280x720} ${VNC_DPI:-72}
|
||||
|
||||
|
||||
# Spin up noVNC if installed and not runnning.
|
||||
if [ -d "/usr/local/novnc" ] && [ "$(ps -ef | grep /usr/local/novnc/noVNC*/utils/launch.sh | grep -v grep)" = "" ]; then
|
||||
keepRunningInBackground "noVNC" sudoIf "/usr/local/novnc/noVNC*/utils/launch.sh --listen ${NOVNC_PORT:-6080} --vnc localhost:${VNC_PORT:-5901}"
|
||||
log "noVNC started."
|
||||
else
|
||||
log "noVNC is already running or not installed."
|
||||
fi
|
||||
|
||||
# Run whatever was passed in
|
||||
log "Executing \"$@\"."
|
||||
"$@"
|
||||
log "** SCRIPT EXIT **"
|
||||
25
.devcontainer/bin/set-resolution
Normal file
25
.devcontainer/bin/set-resolution
Normal file
@@ -0,0 +1,25 @@
|
||||
#!/bin/bash
|
||||
RESOLUTION=${1:-${VNC_RESOLUTION:-1920x1080}}
|
||||
DPI=${2:-${VNC_DPI:-72}}
|
||||
if [ -z "$1" ]; then
|
||||
echo -e "**Current Settings **\n"
|
||||
xrandr
|
||||
echo -n -e "\nEnter new resolution (WIDTHxHEIGHT, blank for ${RESOLUTION}, Ctrl+C to abort).\n> "
|
||||
read NEW_RES
|
||||
if [ "${NEW_RES}" != "" ]; then
|
||||
RESOLUTION=${NEW_RES}
|
||||
fi
|
||||
if [ -z "$2" ]; then
|
||||
echo -n -e "\nEnter new DPI (blank for ${DPI}, Ctrl+C to abort).\n> "
|
||||
read NEW_DPI
|
||||
if [ "${NEW_DPI}" != "" ]; then
|
||||
DPI=${NEW_DPI}
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
|
||||
xrandr --fb ${RESOLUTION} --dpi ${DPI} > /dev/null 2>&1
|
||||
|
||||
echo -e "\n**New Settings **\n"
|
||||
xrandr
|
||||
echo
|
||||
41
.devcontainer/devcontainer.json
Normal file
41
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,41 @@
|
||||
{
|
||||
"name": "Code - OSS",
|
||||
"build": {
|
||||
"dockerfile": "Dockerfile",
|
||||
"args": {
|
||||
"MAX_VNC_RESOLUTION": "1920x1080x16",
|
||||
"TARGET_VNC_RESOLUTION": "1280x768",
|
||||
"TARGET_VNC_PORT": "5901",
|
||||
"TARGET_NOVNC_PORT": "6080",
|
||||
"VNC_PASSWORD": "vscode",
|
||||
"INSTALL_FIREFOX": "true"
|
||||
}
|
||||
},
|
||||
"overrideCommand": false,
|
||||
"runArgs": ["--init"],
|
||||
|
||||
"settings": {
|
||||
// zsh is also available
|
||||
"terminal.integrated.shell.linux": "/bin/bash",
|
||||
"resmon.show.battery": false,
|
||||
"resmon.show.cpufreq": false,
|
||||
"remote.extensionKind": {
|
||||
"ms-vscode.js-debug-nightly": "workspace",
|
||||
"msjsdiag.debugger-for-chrome": "workspace"
|
||||
},
|
||||
"debug.chrome.useV3": true
|
||||
},
|
||||
|
||||
// noVNC, VNC ports
|
||||
"forwardPorts": [6080, 5901],
|
||||
|
||||
"extensions": [
|
||||
"dbaeumer.vscode-eslint",
|
||||
"EditorConfig.EditorConfig",
|
||||
"msjsdiag.debugger-for-chrome",
|
||||
"mutantdino.resourcemonitor",
|
||||
"GitHub.vscode-pull-request-github"
|
||||
],
|
||||
|
||||
"remoteUser": "node"
|
||||
}
|
||||
9
.devcontainer/fluxbox/apps
Normal file
9
.devcontainer/fluxbox/apps
Normal file
@@ -0,0 +1,9 @@
|
||||
[app] (name=code-oss-dev)
|
||||
[Position] (CENTER) {0 0}
|
||||
[Maximized] {yes}
|
||||
[Dimensions] {100% 100%}
|
||||
[end]
|
||||
[transient] (role=GtkFileChooserDialog)
|
||||
[Position] (CENTER) {0 0}
|
||||
[Dimensions] {70% 70%}
|
||||
[end]
|
||||
9
.devcontainer/fluxbox/init
Normal file
9
.devcontainer/fluxbox/init
Normal file
@@ -0,0 +1,9 @@
|
||||
session.menuFile: ~/.fluxbox/menu
|
||||
session.keyFile: ~/.fluxbox/keys
|
||||
session.styleFile: /usr/share/fluxbox/styles//Squared_for_Debian
|
||||
session.configVersion: 13
|
||||
session.screen0.workspaces: 1
|
||||
session.screen0.workspacewarping: false
|
||||
session.screen0.toolbar.widthPercent: 100
|
||||
session.screen0.strftimeFormat: %d %b, %a %02k:%M:%S
|
||||
session.screen0.toolbar.tools: prevworkspace, workspacename, nextworkspace, clock, prevwindow, nextwindow, iconbar, systemtray
|
||||
16
.devcontainer/fluxbox/menu
Normal file
16
.devcontainer/fluxbox/menu
Normal file
@@ -0,0 +1,16 @@
|
||||
[begin] ( Code - OSS Development Container )
|
||||
[exec] (File Manager) { nautilus ~ } <>
|
||||
[exec] (Terminal) {/usr/bin/gnome-terminal --working-directory=~ } <>
|
||||
[exec] (Start Code - OSS) { x-terminal-emulator -T "Code - OSS Build" -e bash /workspaces/vscode*/scripts/code.sh } <>
|
||||
[submenu] (System >) {}
|
||||
[exec] (Set Resolution) { x-terminal-emulator -T "Set Resolution" -e bash /usr/local/bin/set-resolution } <>
|
||||
[exec] (Passwords and Keys) { seahorse } <>
|
||||
[exec] (Top) { x-terminal-emulator -T "Top" -e /usr/bin/top } <>
|
||||
[exec] (Editres) {editres} <>
|
||||
[exec] (Xfontsel) {xfontsel} <>
|
||||
[exec] (Xkill) {xkill} <>
|
||||
[exec] (Xrefresh) {xrefresh} <>
|
||||
[end]
|
||||
[config] (Configuration >)
|
||||
[workspaces] (Workspaces >)
|
||||
[end]
|
||||
@@ -1,4 +1,4 @@
|
||||
# EditorConfig is awesome: http://EditorConfig.org
|
||||
# EditorConfig is awesome: https://EditorConfig.org
|
||||
|
||||
# top-most EditorConfig file
|
||||
root = true
|
||||
@@ -6,7 +6,6 @@ root = true
|
||||
# Tab indentation
|
||||
[*]
|
||||
indent_style = tab
|
||||
indent_size = 4
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
# The indent size used in the `package.json` file cannot be changed
|
||||
|
||||
15
.eslintignore
Normal file
15
.eslintignore
Normal file
@@ -0,0 +1,15 @@
|
||||
**/vs/nls.build.js
|
||||
**/vs/nls.js
|
||||
**/vs/css.build.js
|
||||
**/vs/css.js
|
||||
**/vs/loader.js
|
||||
**/insane/**
|
||||
**/marked/**
|
||||
**/test/**/*.js
|
||||
**/node_modules/**
|
||||
**/vscode-api-tests/testWorkspace/**
|
||||
**/vscode-api-tests/testWorkspace2/**
|
||||
**/extensions/**/out/**
|
||||
**/extensions/**/build/**
|
||||
**/extensions/markdown-language-features/media/**
|
||||
**/extensions/typescript-basics/test/colorize-fixtures/**
|
||||
19
.eslintrc
19
.eslintrc
@@ -1,19 +0,0 @@
|
||||
{
|
||||
"env": {
|
||||
"node": true,
|
||||
"es6": true
|
||||
},
|
||||
"rules": {
|
||||
"no-console": 0,
|
||||
"no-cond-assign": 0,
|
||||
"no-unused-vars": 1,
|
||||
"no-extra-semi": "warn",
|
||||
"semi": "warn"
|
||||
},
|
||||
"extends": "eslint:recommended",
|
||||
"parserOptions": {
|
||||
"ecmaFeatures": {
|
||||
"experimentalObjectRestSpread": true
|
||||
}
|
||||
}
|
||||
}
|
||||
1010
.eslintrc.json
Normal file
1010
.eslintrc.json
Normal file
File diff suppressed because it is too large
Load Diff
20
.eslintrc.sql.ts.json
Normal file
20
.eslintrc.sql.ts.json
Normal file
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 6,
|
||||
"sourceType": "module",
|
||||
"project": "./tsconfig.sql.json"
|
||||
},
|
||||
"plugins": [
|
||||
"@typescript-eslint",
|
||||
"jsdoc"
|
||||
],
|
||||
"rules": {
|
||||
"@typescript-eslint/no-floating-promises": [
|
||||
"error",
|
||||
{
|
||||
"ignoreVoid": true
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
10
.gitattributes
vendored
Normal file
10
.gitattributes
vendored
Normal file
@@ -0,0 +1,10 @@
|
||||
* text=auto
|
||||
|
||||
LICENSE.txt eol=crlf
|
||||
ThirdPartyNotices.txt eol=crlf
|
||||
|
||||
*.bat eol=crlf
|
||||
*.cmd eol=crlf
|
||||
*.ps1 eol=lf
|
||||
*.sh eol=lf
|
||||
*.rtf -text
|
||||
19
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
19
.github/ISSUE_TEMPLATE/bug_report.md
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
<!-- ⚠️⚠️ Do Not Delete This! bug_report_template ⚠️⚠️ -->
|
||||
<!-- Please read our Rules of Conduct: https://opensource.microsoft.com/codeofconduct/ -->
|
||||
<!-- Please search existing issues to avoid creating duplicates. -->
|
||||
<!-- Also please test using the latest insiders build to make sure your issue has not already been fixed. -->
|
||||
|
||||
<!-- Use Help > Report Issue to prefill these. -->
|
||||
- Azure Data Studio Version:
|
||||
|
||||
Steps to Reproduce:
|
||||
|
||||
1.
|
||||
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
1
.github/ISSUE_TEMPLATE/config.yml
vendored
Normal file
@@ -0,0 +1 @@
|
||||
blank_issues_enabled: false
|
||||
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
20
.github/ISSUE_TEMPLATE/feature_request.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
**Describe the solution or feature you'd like**
|
||||
A clear and concise description of what you want to happen.
|
||||
|
||||
**Describe alternatives you've considered**
|
||||
A clear and concise description of any alternative solutions or features you've considered.
|
||||
|
||||
**Additional context**
|
||||
Add any other context or screenshots about the feature request here.
|
||||
39
.github/classifier.yml
vendored
Normal file
39
.github/classifier.yml
vendored
Normal file
@@ -0,0 +1,39 @@
|
||||
{
|
||||
perform: true,
|
||||
alwaysRequireAssignee: false,
|
||||
labelsRequiringAssignee: [],
|
||||
defaultLabel: 'Triage: Needed',
|
||||
defaultAssignee: '',
|
||||
autoAssignees: {
|
||||
Area - Acquisition: [],
|
||||
Area - Azure: [],
|
||||
Area - Backup\Restore: [],
|
||||
Area - Big Data Cluster: [ charles-gagnon ],
|
||||
Area - Charting\Insights: [],
|
||||
Area - Connection: [ ],
|
||||
Area - DacFX: [],
|
||||
Area - Dashboard: [],
|
||||
Area - Data Explorer: [],
|
||||
Area - Data Virtualization: [ charles-gagnon ],
|
||||
Area - Edit Data: [],
|
||||
Area - Extensibility: [],
|
||||
Area - External Table: [],
|
||||
Area - Fundamentals: [],
|
||||
Area - Language Service: [ charles-gagnon ],
|
||||
Area - Localization: [],
|
||||
Area - Notebooks: [ chlafreniere ],
|
||||
Area - Performance: [],
|
||||
Area - Query Editor: [ anthonydresser ],
|
||||
Area - Query History: [ charles-gagnon ],
|
||||
Area - Query Plan: [],
|
||||
Area - Reliability: [],
|
||||
Area - Resource Deployment: [],
|
||||
Area - Schema Compare: [],
|
||||
Area - Shell: [],
|
||||
Area - SQL Agent: [],
|
||||
Area - SQL Import: [],
|
||||
Area - SQL Profiler: [],
|
||||
Area - SQL 2019: [],
|
||||
Area - SSMS Integration: []
|
||||
}
|
||||
}
|
||||
11
.github/commands.yml
vendored
Normal file
11
.github/commands.yml
vendored
Normal file
@@ -0,0 +1,11 @@
|
||||
{
|
||||
perform: true,
|
||||
commands: [
|
||||
{
|
||||
type: 'label',
|
||||
name: 'Needs Logs',
|
||||
action: 'comment',
|
||||
comment: "We need more info to debug your particular issue. If you could attach your logs to the issue (ensure no private data is in them), it would help us fix the issue much faster.\n\nTo find your logs:\n\n- Open command palette (Click **View** -> **Command Palette**)\n- Run the command: **`Developer: Open Logs Folder`**\n\nThis will open the log file locally. Please include renderer.log"
|
||||
}
|
||||
]
|
||||
}
|
||||
5
.github/copycat.yml
vendored
Normal file
5
.github/copycat.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
perform: false,
|
||||
target_owner: 'anthonydresser',
|
||||
target_repo: 'testissues'
|
||||
}
|
||||
6
.github/locker.yml
vendored
Normal file
6
.github/locker.yml
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
daysAfterClose: 45,
|
||||
daysSinceLastUpdate: 3,
|
||||
ignoredLabels: ['A11y_ADS_OctTestPass', 'A11y_ADS_Schema_Dacpac_Backup', 'A11y_AzureDataStudio', 'A11yExclusion', 'A11yMAS', 'A11yResolved: Will Not Fix', 'A11yTCS'],
|
||||
perform: true
|
||||
}
|
||||
7
.github/mergers.json
vendored
Normal file
7
.github/mergers.json
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
[
|
||||
"kenvanhyning",
|
||||
"kburtram",
|
||||
"udeeshagautam",
|
||||
"qifahs",
|
||||
"chlafreniere"
|
||||
]
|
||||
6
.github/needs_more_info.yml
vendored
Normal file
6
.github/needs_more_info.yml
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
daysUntilClose: 7,
|
||||
needsMoreInfoLabel: 'needs more info',
|
||||
perform: true,
|
||||
closeComment: "This issue has been closed automatically because it needs more information and has not had recent activity in the last 7 days. If you have more info to help resolve the issue, leave a comment"
|
||||
}
|
||||
9
.github/pull_request_template.md
vendored
Normal file
9
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,9 @@
|
||||
<!-- Thank you for submitting a Pull Request. Please:
|
||||
* Read our Pull Request guidelines:
|
||||
https://github.com/Microsoft/azuredatastudio/wiki/How-to-Contribute#pull-requests.
|
||||
* Associate an issue with the Pull Request.
|
||||
* Ensure that the code is up-to-date with the `main` branch.
|
||||
* Include a description of the proposed changes and how to test them.
|
||||
-->
|
||||
|
||||
This PR fixes #
|
||||
5
.github/similarity.yml
vendored
Normal file
5
.github/similarity.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
perform: true,
|
||||
whenCreatedByTeam: true,
|
||||
comment: "Thanks for submitting this issue. Please also check if it is already covered by an existing one, like:\n${potentialDuplicates}"
|
||||
}
|
||||
6
.github/stale.yml
vendored
Normal file
6
.github/stale.yml
vendored
Normal file
@@ -0,0 +1,6 @@
|
||||
{
|
||||
perform: true,
|
||||
label: 'Stale PR',
|
||||
daysSinceLastUpdate: 7,
|
||||
ignoredLabels: ['Do Not Merge']
|
||||
}
|
||||
162
.github/workflows/ci.yml
vendored
Normal file
162
.github/workflows/ci.yml
vendored
Normal file
@@ -0,0 +1,162 @@
|
||||
name: CI
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- main
|
||||
- release/*
|
||||
pull_request:
|
||||
branches:
|
||||
- main
|
||||
- release/*
|
||||
|
||||
jobs:
|
||||
linux:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
CHILD_CONCURRENCY: "1"
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2.2.0
|
||||
# TODO: rename azure-pipelines/linux/xvfb.init to github-actions
|
||||
- run: |
|
||||
sudo apt-get update
|
||||
sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libkrb5-dev # {{SQL CARBON EDIT}} add kerberos dep
|
||||
sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
|
||||
sudo chmod +x /etc/init.d/xvfb
|
||||
sudo update-rc.d xvfb defaults
|
||||
sudo service xvfb start
|
||||
name: Setup Build Environment
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 10
|
||||
# TODO: cache node modules
|
||||
- run: yarn --frozen-lockfile
|
||||
name: Install Dependencies
|
||||
- run: yarn electron x64
|
||||
name: Download Electron
|
||||
- run: yarn gulp hygiene
|
||||
name: Run Hygiene Checks
|
||||
- run: yarn strict-vscode # {{SQL CARBON EDIT}} add step
|
||||
name: Run Strict Compile Options
|
||||
# - run: yarn monaco-compile-check {{SQL CARBON EDIT}} remove step
|
||||
# name: Run Monaco Editor Checks
|
||||
- run: yarn valid-layers-check
|
||||
name: Run Valid Layers Checks
|
||||
- run: yarn compile
|
||||
name: Compile Sources
|
||||
# - run: yarn download-builtin-extensions {{SQL CARBON EDIT}} remove step
|
||||
# name: Download Built-in Extensions
|
||||
- run: DISPLAY=:10 ./scripts/test.sh --tfs "Unit Tests" --coverage --runGlob "**/sql/**/*.test.js"
|
||||
name: Run Unit Tests (Electron)
|
||||
- run: DISPLAY=:10 ./scripts/test-extensions-unit.sh
|
||||
name: Run Extension Unit Tests (Electron)
|
||||
# {{SQL CARBON EDIT}} Add coveralls. We merge first to get around issue where parallel builds weren't being combined correctly
|
||||
- run: node test/combineCoverage
|
||||
name: Combine code coverage files
|
||||
- name: Upload Code Coverage
|
||||
uses: coverallsapp/github-action@v1.1.1
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
path-to-lcov: 'test/coverage/lcov.info'
|
||||
|
||||
# Fails with cryptic error (e.g. https://github.com/microsoft/vscode/pull/90292/checks?check_run_id=433681926#step:13:9)
|
||||
# - run: DISPLAY=:10 yarn test-browser --browser chromium
|
||||
# name: Run Unit Tests (Browser)
|
||||
# - run: DISPLAY=:10 ./scripts/test-integration.sh --tfs "Integration Tests" {{SQL CARBON EDIT}} remove step
|
||||
# name: Run Integration Tests (Electron)
|
||||
|
||||
windows:
|
||||
runs-on: windows-2016
|
||||
env:
|
||||
CHILD_CONCURRENCY: "1"
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2.2.0
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 10
|
||||
- uses: actions/setup-python@v1
|
||||
with:
|
||||
python-version: '2.x'
|
||||
- run: yarn --frozen-lockfile
|
||||
name: Install Dependencies
|
||||
- run: yarn electron
|
||||
name: Download Electron
|
||||
- run: yarn gulp hygiene
|
||||
name: Run Hygiene Checks
|
||||
- run: yarn strict-vscode # {{SQL CARBON EDIT}} add step
|
||||
name: Run Strict Compile Options
|
||||
# - run: yarn monaco-compile-check {{SQL CARBON EDIT}} remove step
|
||||
# name: Run Monaco Editor Checks
|
||||
- run: yarn valid-layers-check
|
||||
name: Run Valid Layers Checks
|
||||
- run: yarn compile
|
||||
name: Compile Sources
|
||||
# - run: yarn download-builtin-extensions {{SQL CARBON EDIT}} remove step
|
||||
# name: Download Built-in Extensions
|
||||
- run: .\scripts\test.bat --tfs "Unit Tests"
|
||||
name: Run Unit Tests (Electron)
|
||||
# - run: yarn test-browser --browser chromium {{SQL CARBON EDIT}} disable for now @TODO @anthonydresser
|
||||
# name: Run Unit Tests (Browser)
|
||||
# - run: .\scripts\test-integration.bat --tfs "Integration Tests" {{SQL CARBON EDIT}} remove step
|
||||
# name: Run Integration Tests (Electron)
|
||||
|
||||
darwin:
|
||||
runs-on: macos-latest
|
||||
env:
|
||||
CHILD_CONCURRENCY: "1"
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
steps:
|
||||
- uses: actions/checkout@v2.2.0
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 10
|
||||
- run: yarn --frozen-lockfile
|
||||
name: Install Dependencies
|
||||
- run: yarn electron x64
|
||||
name: Download Electron
|
||||
- run: yarn gulp hygiene
|
||||
name: Run Hygiene Checks
|
||||
- run: yarn strict-vscode # {{SQL CARBON EDIT}} add step
|
||||
name: Run Strict Compile Options
|
||||
# - run: yarn monaco-compile-check {{SQL CARBON EDIT}} remove step
|
||||
# name: Run Monaco Editor Checks
|
||||
- run: yarn valid-layers-check
|
||||
name: Run Valid Layers Checks
|
||||
- run: yarn compile
|
||||
name: Compile Sources
|
||||
# - run: yarn download-builtin-extensions {{SQL CARBON EDIT}} remove step
|
||||
# name: Download Built-in Extensions
|
||||
- run: ./scripts/test.sh --tfs "Unit Tests"
|
||||
name: Run Unit Tests (Electron)
|
||||
# - run: yarn test-browser --browser chromium --browser webkit
|
||||
# name: Run Unit Tests (Browser)
|
||||
# - run: ./scripts/test-integration.sh --tfs "Integration Tests"
|
||||
# name: Run Integration Tests (Electron)
|
||||
|
||||
# monaco:
|
||||
# runs-on: ubuntu-latest
|
||||
# env:
|
||||
# CHILD_CONCURRENCY: "1"
|
||||
# GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
# steps:
|
||||
# - uses: actions/checkout@v2.2.0
|
||||
# # TODO: rename azure-pipelines/linux/xvfb.init to github-actions
|
||||
# - run: |
|
||||
# sudo apt-get update
|
||||
# sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 libgbm1
|
||||
# sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb
|
||||
# sudo chmod +x /etc/init.d/xvfb
|
||||
# sudo update-rc.d xvfb defaults
|
||||
# sudo service xvfb start
|
||||
# name: Setup Build Environment
|
||||
# - uses: actions/setup-node@v1
|
||||
# with:
|
||||
# node-version: 10
|
||||
# - run: yarn --frozen-lockfile
|
||||
# name: Install Dependencies
|
||||
# - run: yarn monaco-compile-check
|
||||
# name: Run Monaco Editor Checks
|
||||
# - run: yarn gulp editor-esm-bundle
|
||||
# name: Editor Distro & ESM Bundle
|
||||
46
.github/workflows/codeql.yml
vendored
Normal file
46
.github/workflows/codeql.yml
vendored
Normal file
@@ -0,0 +1,46 @@
|
||||
name: "Code Scanning - Action"
|
||||
|
||||
on:
|
||||
push:
|
||||
schedule:
|
||||
- cron: '0 0 * * 0'
|
||||
|
||||
jobs:
|
||||
CodeQL-Build:
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
|
||||
|
||||
# CodeQL runs on ubuntu-latest, windows-latest, and macos-latest
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
# Override language selection by uncommenting this and choosing your languages
|
||||
# with:
|
||||
# languages: go, javascript, csharp, python, cpp, java
|
||||
|
||||
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||
# If this step fails, then you should remove it and run the build manually (see below).
|
||||
- name: Autobuild
|
||||
uses: github/codeql-action/autobuild@v1
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 https://git.io/JvXDl
|
||||
|
||||
# ✏️ If the Autobuild fails above, remove it and uncomment the following three lines
|
||||
# and modify them (or add more) to build your code if your project
|
||||
# uses a compiled language
|
||||
|
||||
#- run: |
|
||||
# make bootstrap
|
||||
# make release
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
||||
24
.github/workflows/on-issue-open.yml
vendored
Normal file
24
.github/workflows/on-issue-open.yml
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
name: On Issue Open
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
|
||||
jobs:
|
||||
main:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v2.2.0
|
||||
with:
|
||||
repository: 'microsoft/azuredatastudio'
|
||||
ref: main
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions/build/actions
|
||||
|
||||
- name: Run CopyCat
|
||||
uses: ./actions/build/actions/copycat
|
||||
with:
|
||||
token: ${{secrets.TRIAGE_PAT}}
|
||||
owner: anthonydresser
|
||||
repo: testissues
|
||||
23
.github/workflows/on-pr-open.yml
vendored
Normal file
23
.github/workflows/on-pr-open.yml
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
name: On PR Open
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- release/**
|
||||
|
||||
jobs:
|
||||
main:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Actions
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: 'microsoft/azuredatastudio'
|
||||
ref: main
|
||||
path: ./actions
|
||||
- name: Install Actions
|
||||
run: npm install --production --prefix ./actions/build/actions
|
||||
|
||||
- name: Run Port Labeler
|
||||
uses: ./actions/build/actions/auto-labeler
|
||||
with:
|
||||
label: "Port Request"
|
||||
20
.gitignore
vendored
20
.gitignore
vendored
@@ -1,16 +1,34 @@
|
||||
.DS_Store
|
||||
.cache
|
||||
npm-debug.log
|
||||
Thumbs.db
|
||||
node_modules/
|
||||
.build/
|
||||
extensions/**/dist/
|
||||
out/
|
||||
out-build/
|
||||
out-editor/
|
||||
out-editor-src/
|
||||
out-editor-build/
|
||||
out-editor-esm/
|
||||
out-editor-esm-bundle/
|
||||
out-editor-min/
|
||||
out-monaco-editor-core/
|
||||
out-vscode/
|
||||
out-vscode-min/
|
||||
out-vscode-reh/
|
||||
out-vscode-reh-min/
|
||||
out-vscode-reh-pkg/
|
||||
out-vscode-reh-web/
|
||||
out-vscode-reh-web-min/
|
||||
out-vscode-reh-web-pkg/
|
||||
out-vscode-web/
|
||||
out-vscode-web-min/
|
||||
src/vs/server
|
||||
resources/server
|
||||
build/node_modules
|
||||
coverage/
|
||||
test_data/
|
||||
yarn-error.log
|
||||
test-results/
|
||||
yarn-error.log
|
||||
*.vsix
|
||||
|
||||
33
.lgtm/javascript-queries/promises.ql
Normal file
33
.lgtm/javascript-queries/promises.ql
Normal file
@@ -0,0 +1,33 @@
|
||||
/**
|
||||
* @name No floating promises
|
||||
* @kind problem
|
||||
* @problem.severity error
|
||||
* @id js/experimental/floating-promise
|
||||
*/
|
||||
import javascript
|
||||
|
||||
private predicate isEscapingPromise(PromiseDefinition promise) {
|
||||
exists (DataFlow::Node escape | promise.flowsTo(escape) |
|
||||
escape = any(DataFlow::InvokeNode invk).getAnArgument()
|
||||
or
|
||||
escape = any(DataFlow::FunctionNode fun).getAReturn()
|
||||
or
|
||||
escape = any(ThrowStmt t).getExpr().flow()
|
||||
or
|
||||
escape = any(GlobalVariable v).getAnAssignedExpr().flow()
|
||||
or
|
||||
escape = any(DataFlow::PropWrite write).getRhs()
|
||||
or
|
||||
exists(WithStmt with, Assignment assign |
|
||||
with.mayAffect(assign.getLhs()) and
|
||||
assign.getRhs().flow() = escape
|
||||
)
|
||||
)
|
||||
}
|
||||
|
||||
from PromiseDefinition promise
|
||||
where
|
||||
not exists(promise.getAMethodCall(any(string m | m = "then" or m = "catch" or m = "finally"))) and
|
||||
not exists (AwaitExpr e | promise.flowsTo(e.getOperand().flow())) and
|
||||
not isEscapingPromise(promise)
|
||||
select promise, "This promise appears to be a floating promise"
|
||||
60
.travis.yml
60
.travis.yml
@@ -1,60 +0,0 @@
|
||||
sudo: false
|
||||
language: cpp
|
||||
|
||||
os:
|
||||
- linux
|
||||
- osx
|
||||
|
||||
cache:
|
||||
directories:
|
||||
- $HOME/.cache/yarn
|
||||
|
||||
notifications:
|
||||
email: false
|
||||
webhooks:
|
||||
- http://vscode-probot.westus.cloudapp.azure.com:3450/travis/notifications
|
||||
- http://vscode-test-probot.westus.cloudapp.azure.com:3450/travis/notifications
|
||||
|
||||
addons:
|
||||
apt:
|
||||
sources:
|
||||
- ubuntu-toolchain-r-test
|
||||
packages:
|
||||
- gcc-4.9
|
||||
- g++-4.9
|
||||
- gcc-4.9-multilib
|
||||
- g++-4.9-multilib
|
||||
- zip
|
||||
- libgtk2.0-0
|
||||
- libx11-dev
|
||||
- libxkbfile-dev
|
||||
- libsecret-1-dev
|
||||
|
||||
before_install:
|
||||
- git submodule update --init --recursive
|
||||
- git clone --depth 1 https://github.com/creationix/nvm.git ./.nvm
|
||||
- source ./.nvm/nvm.sh
|
||||
- nvm install 8.9.1
|
||||
- nvm use 8.9.1
|
||||
- npm i -g yarn
|
||||
# - npm config set python `which python`
|
||||
- if [ $TRAVIS_OS_NAME == "linux" ]; then
|
||||
export CXX="g++-4.9" CC="gcc-4.9" DISPLAY=:99.0;
|
||||
sh -e /etc/init.d/xvfb start;
|
||||
sleep 3;
|
||||
fi
|
||||
# Make npm logs less verbose
|
||||
# - npm config set depth 0
|
||||
# - npm config set loglevel warn
|
||||
|
||||
install:
|
||||
- yarn
|
||||
|
||||
script:
|
||||
- node_modules/.bin/gulp electron --silent
|
||||
- node_modules/.bin/gulp compile --silent --max_old_space_size=4096
|
||||
- node_modules/.bin/gulp optimize-vscode --silent --max_old_space_size=4096
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then ./scripts/test.sh --coverage --reporter dot; else ./scripts/test.sh --reporter dot; fi
|
||||
|
||||
after_success:
|
||||
- if [[ "$TRAVIS_OS_NAME" == "linux" ]]; then node_modules/.bin/coveralls < .build/coverage/lcov.info; fi
|
||||
61
.vscode/cglicenses.schema.json
vendored
Normal file
61
.vscode/cglicenses.schema.json
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
{
|
||||
"type": "array",
|
||||
"items": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"name",
|
||||
"prependLicenseText"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "The name of the dependency"
|
||||
},
|
||||
"fullLicenseText": {
|
||||
"type": "array",
|
||||
"description": "The complete license text of the dependency",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"prependLicenseText": {
|
||||
"type": "array",
|
||||
"description": "A piece of text to prepend to the auto-detected license text of the dependency",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"name",
|
||||
"fullLicenseText"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string",
|
||||
"description": "The name of the dependency"
|
||||
},
|
||||
"fullLicenseText": {
|
||||
"type": "array",
|
||||
"description": "The complete license text of the dependency",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
},
|
||||
"prependLicenseText": {
|
||||
"type": "array",
|
||||
"description": "A piece of text to prepend to the auto-detected license text of the dependency",
|
||||
"items": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
142
.vscode/cgmanifest.schema.json
vendored
Normal file
142
.vscode/cgmanifest.schema.json
vendored
Normal file
@@ -0,0 +1,142 @@
|
||||
{
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"registrations": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "object",
|
||||
"properties": {
|
||||
"component": {
|
||||
"oneOf": [
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"type",
|
||||
"git"
|
||||
],
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"git"
|
||||
]
|
||||
},
|
||||
"git": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"name",
|
||||
"repositoryUrl",
|
||||
"commitHash"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"repositoryUrl": {
|
||||
"type": "string"
|
||||
},
|
||||
"commitHash": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"type",
|
||||
"npm"
|
||||
],
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"npm"
|
||||
]
|
||||
},
|
||||
"npm": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"name",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "object",
|
||||
"required": [
|
||||
"type",
|
||||
"other"
|
||||
],
|
||||
"properties": {
|
||||
"type": {
|
||||
"type": "string",
|
||||
"enum": [
|
||||
"other"
|
||||
]
|
||||
},
|
||||
"other": {
|
||||
"type": "object",
|
||||
"required": [
|
||||
"name",
|
||||
"downloadUrl",
|
||||
"version"
|
||||
],
|
||||
"properties": {
|
||||
"name": {
|
||||
"type": "string"
|
||||
},
|
||||
"downloadUrl": {
|
||||
"type": "string"
|
||||
},
|
||||
"version": {
|
||||
"type": "string"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
"repositoryUrl": {
|
||||
"type": "string",
|
||||
"description": "The git url of the component"
|
||||
},
|
||||
"version": {
|
||||
"type": "string",
|
||||
"description": "The version of the component"
|
||||
},
|
||||
"license": {
|
||||
"type": "string",
|
||||
"description": "The name of the license"
|
||||
},
|
||||
"developmentDependency": {
|
||||
"type": "boolean",
|
||||
"description": "This component is inlined in the vscode repo and **is not shipped**."
|
||||
},
|
||||
"isOnlyProductionDependency": {
|
||||
"type": "boolean",
|
||||
"description": "This component is shipped and **is not inlined in the vscode repo**."
|
||||
},
|
||||
"licenseDetail": {
|
||||
"type": "array",
|
||||
"items": {
|
||||
"type": "string"
|
||||
},
|
||||
"description": "The license text"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
9
.vscode/extensions.json
vendored
9
.vscode/extensions.json
vendored
@@ -1,9 +1,10 @@
|
||||
{
|
||||
// See http://go.microsoft.com/fwlink/?LinkId=827846
|
||||
// See https://go.microsoft.com/fwlink/?LinkId=827846
|
||||
// for the documentation about the extensions.json format
|
||||
"recommendations": [
|
||||
"eg2.tslint",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"msjsdiag.debugger-for-chrome"
|
||||
"EditorConfig.EditorConfig",
|
||||
"msjsdiag.debugger-for-chrome",
|
||||
"ms-vscode.vscode-github-issue-notebooks"
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
282
.vscode/launch.json
vendored
282
.vscode/launch.json
vendored
@@ -1,7 +1,6 @@
|
||||
{
|
||||
"version": "0.1.0",
|
||||
"configurations": [
|
||||
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
@@ -9,46 +8,47 @@
|
||||
"program": "${workspaceFolder}/node_modules/gulp/bin/gulp.js",
|
||||
"stopOnEntry": true,
|
||||
"args": [
|
||||
"watch-extension:json-client"
|
||||
],
|
||||
"cwd": "${workspaceFolder}"
|
||||
"hygiene"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "attach",
|
||||
"name": "Attach to Extension Host",
|
||||
"protocol": "inspector",
|
||||
"port": 5870,
|
||||
"restart": true,
|
||||
"name": "Attach to Extension Host",
|
||||
"timeout": 30000,
|
||||
"port": 5870,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"type": "pwa-chrome",
|
||||
"request": "attach",
|
||||
"name": "Attach to Shared Process",
|
||||
"protocol": "inspector",
|
||||
"port": 5871,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
]
|
||||
"timeout": 30000,
|
||||
"port": 9222,
|
||||
"urlFilter": "*sharedProcess.html*",
|
||||
"presentation": {
|
||||
"hidden": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "attach",
|
||||
"protocol": "inspector",
|
||||
"name": "Attach to Search Process",
|
||||
"port": 5876,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
]
|
||||
],
|
||||
"presentation": {
|
||||
"hidden": true,
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "attach",
|
||||
"name": "Attach to CLI Process",
|
||||
"protocol": "inspector",
|
||||
"port": 5874,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
@@ -58,22 +58,26 @@
|
||||
"type": "node",
|
||||
"request": "attach",
|
||||
"name": "Attach to Main Process",
|
||||
"protocol": "inspector",
|
||||
"timeout": 30000,
|
||||
"port": 5875,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
]
|
||||
],
|
||||
"presentation": {
|
||||
"hidden": true,
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "chrome",
|
||||
"type": "pwa-chrome",
|
||||
"request": "attach",
|
||||
"name": "Attach to sqlops",
|
||||
"name": "Attach to azuredatastudio",
|
||||
"timeout": 50000,
|
||||
"port": 9222
|
||||
},
|
||||
{
|
||||
"type": "chrome",
|
||||
"type": "pwa-chrome",
|
||||
"request": "launch",
|
||||
"name": "Launch sqlops",
|
||||
"name": "Launch azuredatastudio",
|
||||
"windows": {
|
||||
"runtimeExecutable": "${workspaceFolder}/scripts/sql.bat"
|
||||
},
|
||||
@@ -83,54 +87,230 @@
|
||||
"linux": {
|
||||
"runtimeExecutable": "${workspaceFolder}/scripts/sql.sh"
|
||||
},
|
||||
"urlFilter": "*index.html*",
|
||||
"port": 9222,
|
||||
"timeout": 20000,
|
||||
"env": {
|
||||
"VSCODE_EXTHOST_WILL_SEND_SOCKET": null
|
||||
},
|
||||
"cleanUp": "wholeBrowser",
|
||||
"breakOnLoad": false,
|
||||
"urlFilter": "*workbench.html*",
|
||||
"runtimeArgs": [
|
||||
"--inspect=5875"
|
||||
"--inspect=5875",
|
||||
"--no-cached-data",
|
||||
],
|
||||
"webRoot": "${workspaceFolder}"
|
||||
"webRoot": "${workspaceFolder}",
|
||||
// Settings for js-debug:
|
||||
"userDataDir": false,
|
||||
"pauseForSourceMap": false,
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
],
|
||||
"browserLaunchLocation": "workspace"
|
||||
},
|
||||
{
|
||||
"type": "chrome",
|
||||
"request": "launch",
|
||||
"name": "Launch ADS (Web) (TBD)",
|
||||
"program": "${workspaceFolder}/resources/serverless/code-web.js",
|
||||
"presentation": {
|
||||
"group": "0_vscode",
|
||||
"order": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Unit Tests",
|
||||
"protocol": "inspector",
|
||||
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
|
||||
"runtimeExecutable": "${workspaceFolder}/.build/electron/SQL Operations Studio.app/Contents/MacOS/Electron",
|
||||
"name": "Main Process",
|
||||
"runtimeExecutable": "${workspaceFolder}/scripts/code.sh",
|
||||
"windows": {
|
||||
"runtimeExecutable": "${workspaceFolder}/.build/electron/sqlops.exe"
|
||||
"runtimeExecutable": "${workspaceFolder}/scripts/code.bat",
|
||||
},
|
||||
"linux": {
|
||||
"runtimeExecutable": "${workspaceFolder}/.build/electron/sqlops"
|
||||
},
|
||||
"stopOnEntry": false,
|
||||
"args": [
|
||||
"--delay",
|
||||
"--timeout",
|
||||
"2000"
|
||||
"runtimeArgs": [
|
||||
"--no-cached-data"
|
||||
],
|
||||
"cwd": "${workspaceFolder}",
|
||||
"env": {
|
||||
"ELECTRON_RUN_AS_NODE": "true"
|
||||
},
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
]
|
||||
}
|
||||
],
|
||||
"presentation": {
|
||||
"group": "1_vscode",
|
||||
"order": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "chrome",
|
||||
"request": "launch",
|
||||
"name": "Launch ADS (Web, Chrome) (TBD)",
|
||||
"url": "http://localhost:8080",
|
||||
"preLaunchTask": "Run web",
|
||||
"presentation": {
|
||||
"group": "0_vscode",
|
||||
"order": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "pwa-msedge",
|
||||
"request": "launch",
|
||||
"name": "VS Code (Web, Edge)",
|
||||
"url": "http://localhost:8080",
|
||||
"pauseForSourceMap": false,
|
||||
"preLaunchTask": "Run web",
|
||||
"presentation": {
|
||||
"group": "0_vscode",
|
||||
"order": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Git Unit Tests",
|
||||
"program": "${workspaceFolder}/extensions/git/node_modules/mocha/bin/_mocha",
|
||||
"stopOnEntry": false,
|
||||
"cwd": "${workspaceFolder}/extensions/git",
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/extensions/git/out/**/*.js"
|
||||
],
|
||||
"presentation": {
|
||||
"group": "5_tests",
|
||||
"order": 10
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Launch Smoke Test",
|
||||
"program": "${workspaceFolder}/test/smoke/test/index.js",
|
||||
"cwd": "${workspaceFolder}/test/smoke",
|
||||
"env": {
|
||||
"BUILD_ARTIFACTSTAGINGDIRECTORY": "${workspaceFolder}"
|
||||
},
|
||||
"presentation": {
|
||||
"group": "5_tests",
|
||||
"order": 8
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Run Unit Tests",
|
||||
"program": "${workspaceFolder}/test/unit/electron/index.js",
|
||||
"runtimeExecutable": "${workspaceFolder}/.build/electron/Azure Data Studio.app/Contents/MacOS/Electron",
|
||||
"windows": {
|
||||
"runtimeExecutable": "${workspaceFolder}/.build/electron/azuredatastudio.exe"
|
||||
},
|
||||
"linux": {
|
||||
"runtimeExecutable": "${workspaceFolder}/.build/electron/azuredatastudio"
|
||||
},
|
||||
"outputCapture": "std",
|
||||
"args": [
|
||||
"--remote-debugging-port=9222"
|
||||
],
|
||||
"cwd": "${workspaceFolder}",
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/out/**/*.js"
|
||||
],
|
||||
"env": {
|
||||
"MOCHA_COLORS": "true"
|
||||
},
|
||||
"presentation": {
|
||||
"hidden": true
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "chrome",
|
||||
"request": "launch",
|
||||
"name": "Run Extension Unit Tests",
|
||||
"windows": {
|
||||
"runtimeExecutable": "${workspaceFolder}/scripts/test-extensions-unit.bat"
|
||||
},
|
||||
"osx": {
|
||||
"runtimeExecutable": "${workspaceFolder}/scripts/test-extensions-unit.sh"
|
||||
},
|
||||
"linux": {
|
||||
"runtimeExecutable": "${workspaceFolder}/scripts/test-extensions-unit.sh"
|
||||
},
|
||||
"webRoot": "${workspaceFolder}",
|
||||
"timeout": 45000
|
||||
},
|
||||
{
|
||||
"type": "chrome",
|
||||
"request": "launch",
|
||||
"name": "Run Extension Integration Tests",
|
||||
"windows": {
|
||||
"runtimeExecutable": "${workspaceFolder}/scripts/sql-test-integration.bat"
|
||||
},
|
||||
"osx": {
|
||||
"runtimeExecutable": "${workspaceFolder}/scripts/sql-test-integration.sh"
|
||||
},
|
||||
"linux": {
|
||||
"runtimeExecutable": "${workspaceFolder}/scripts/sql-test-integration.sh"
|
||||
},
|
||||
"webRoot": "${workspaceFolder}",
|
||||
"timeout": 45000
|
||||
},
|
||||
],
|
||||
"compounds": [
|
||||
{
|
||||
"name": "Debug sqlops Main and Renderer",
|
||||
"name": "Debug Unit Tests",
|
||||
"configurations": [
|
||||
"Launch sqlops",
|
||||
"Attach to Main Process"
|
||||
"Attach to azuredatastudio",
|
||||
"Run Unit Tests"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Search and Renderer processes",
|
||||
"name": "Debug Extension Unit Tests",
|
||||
"configurations": [
|
||||
"Launch sqlops",
|
||||
"Attach to Search Process"
|
||||
"Attach to Extension Host",
|
||||
"Run Extension Unit Tests"
|
||||
]
|
||||
},
|
||||
{
|
||||
"name": "Azure Data Studio",
|
||||
"stopAll": true,
|
||||
"configurations": [
|
||||
"Launch azuredatastudio",
|
||||
"Attach to Main Process",
|
||||
"Attach to Extension Host",
|
||||
"Attach to Shared Process",
|
||||
],
|
||||
"presentation": {
|
||||
"group": "0_vscode",
|
||||
"order": 1
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Debug azuredatastudio Main, Renderer & Extension Host",
|
||||
"configurations": [
|
||||
"Launch azuredatastudio",
|
||||
"Attach to Main Process",
|
||||
"Attach to Extension Host"
|
||||
],
|
||||
"presentation": {
|
||||
"group": "1_vscode",
|
||||
"order": 3
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Debug Renderer and Extension Host processes",
|
||||
"configurations": [
|
||||
"Launch azuredatastudio",
|
||||
"Attach to Extension Host"
|
||||
],
|
||||
"presentation": {
|
||||
"group": "1_vscode",
|
||||
"order": 2
|
||||
}
|
||||
},
|
||||
{
|
||||
"name": "Attach Renderer and Extension Host",
|
||||
"configurations": [
|
||||
"Attach to azuredatastudio",
|
||||
"Attach to Extension Host"
|
||||
],
|
||||
"presentation": {
|
||||
"group": "1_vscode",
|
||||
"order": 2
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
38
.vscode/notebooks/inbox.github-issues
vendored
Normal file
38
.vscode/notebooks/inbox.github-issues
vendored
Normal file
@@ -0,0 +1,38 @@
|
||||
[
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "##### `Config`: defines the inbox query",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$inbox=repo:microsoft/vscode is:open no:assignee -label:feature-request -label:testplan-item -label:plan-item ",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "## Triage Inbox\n\nAll inbox issues but not those that need more information. These issues need to be triaged, e.g assigned to a user or ask for more information",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$inbox -label:\"needs more info\" -label:emmet",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "## Inbox\n\nAll issues that have no assignee and that have neither **feature requests** nor **test plan items** nor **plan items**.",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$inbox",
|
||||
"editable": false
|
||||
}
|
||||
]
|
||||
98
.vscode/notebooks/my-work.github-issues
vendored
Normal file
98
.vscode/notebooks/my-work.github-issues
vendored
Normal file
@@ -0,0 +1,98 @@
|
||||
[
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "##### `Config`: This should be changed every month/milestone",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "// list of repos we work in\n$repos=repo:microsoft/vscode repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks\n\n// current milestone name\n$milestone=milestone:\"June 2020\"",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "github-issues",
|
||||
"value": "## Milestone Work",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos $milestone assignee:@me is:open",
|
||||
"editable": false
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "github-issues",
|
||||
"value": "## Bugs, Debt, Features...",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "#### My Bugs",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos assignee:@me is:open label:bug",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "#### Debt & Engineering",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos assignee:@me is:open label:debt OR $repos assignee:@me is:open label:engineering",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "#### Performance 🐌 🔜 🏎",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos assignee:@me is:open label:perf OR $repos assignee:@me is:open label:perf-startup OR $repos assignee:@me is:open label:perf-bloat OR $repos assignee:@me is:open label:freeze-slow-crash-leak",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "#### Feature Requests",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos assignee:@me is:open label:feature-request milestone:Backlog sort:reactions-+1-desc",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos assignee:@me is:open milestone:\"Backlog Candidates\"",
|
||||
"editable": false
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "#### Not Actionable",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos assignee:@me is:open label:\"needs more info\"",
|
||||
"editable": false
|
||||
}
|
||||
]
|
||||
55
.vscode/notebooks/verification.github-issues
vendored
Normal file
55
.vscode/notebooks/verification.github-issues
vendored
Normal file
@@ -0,0 +1,55 @@
|
||||
[
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "### Bug Verification Queries\n\nBefore shipping we want to verify _all_ bugs. That means when a bug is fixed we check that the fix actually works. It's always best to start with bugs that you have filed and the proceed with bugs that have been filed from users outside the development team. ",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "#### Config: update list of `repos` and the `milestone`",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos=repo:microsoft/vscode repo:microsoft/vscode-internalbacklog repo:microsoft/vscode-remote-release repo:microsoft/vscode-js-debug repo:microsoft/vscode-pull-request-github repo:microsoft/vscode-github-issue-notebooks \n$milestone=milestone:\"June 2020\"",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "### Bugs You Filed",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos $milestone is:closed -assignee:@me label:bug -label:verified -label:*duplicate author:@me",
|
||||
"editable": false
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "### Bugs From Outside",
|
||||
"editable": true
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos $milestone is:closed -assignee:@me label:bug -label:verified -label:*duplicate -author:@me -assignee:@me label:bug -label:verified -author:@me -author:aeschli -author:alexdima -author:alexr00 -author:bpasero -author:chrisdias -author:chrmarti -author:connor4312 -author:dbaeumer -author:deepak1556 -author:eamodio -author:egamma -author:gregvanl -author:isidorn -author:JacksonKearl -author:joaomoreno -author:jrieken -author:lramos15 -author:lszomoru -author:misolori -author:mjbvz -author:rebornix -author:RMacfarlane -author:roblourens -author:sana-ajani -author:sandy081 -author:sbatten -author:Tyriar -author:weinand",
|
||||
"editable": false
|
||||
},
|
||||
{
|
||||
"kind": 1,
|
||||
"language": "markdown",
|
||||
"value": "### All"
|
||||
},
|
||||
{
|
||||
"kind": 2,
|
||||
"language": "github-issues",
|
||||
"value": "$repos $milestone is:closed -assignee:@me label:bug -label:verified -label:*duplicate",
|
||||
"editable": false
|
||||
}
|
||||
]
|
||||
86
.vscode/searches/es6.code-search
vendored
Normal file
86
.vscode/searches/es6.code-search
vendored
Normal file
@@ -0,0 +1,86 @@
|
||||
# Query: @deprecated ES6
|
||||
# Flags: CaseSensitive WordMatch
|
||||
# ContextLines: 2
|
||||
|
||||
16 results - 5 files
|
||||
|
||||
src/vs/base/browser/dom.ts:
|
||||
81 };
|
||||
82
|
||||
83: /** @deprecated ES6 - use classList*/
|
||||
84 export const hasClass: (node: HTMLElement | SVGElement, className: string) => boolean = _classList.hasClass.bind(_classList);
|
||||
85: /** @deprecated ES6 - use classList*/
|
||||
86 export const addClass: (node: HTMLElement | SVGElement, className: string) => void = _classList.addClass.bind(_classList);
|
||||
87: /** @deprecated ES6 - use classList*/
|
||||
88 export const addClasses: (node: HTMLElement | SVGElement, ...classNames: string[]) => void = _classList.addClasses.bind(_classList);
|
||||
89: /** @deprecated ES6 - use classList*/
|
||||
90 export const removeClass: (node: HTMLElement | SVGElement, className: string) => void = _classList.removeClass.bind(_classList);
|
||||
91: /** @deprecated ES6 - use classList*/
|
||||
92 export const removeClasses: (node: HTMLElement | SVGElement, ...classNames: string[]) => void = _classList.removeClasses.bind(_classList);
|
||||
93: /** @deprecated ES6 - use classList*/
|
||||
94 export const toggleClass: (node: HTMLElement | SVGElement, className: string, shouldHaveIt?: boolean) => void = _classList.toggleClass.bind(_classList);
|
||||
95
|
||||
|
||||
src/vs/base/common/arrays.ts:
|
||||
401
|
||||
402 /**
|
||||
403: * @deprecated ES6: use `Array.findIndex`
|
||||
404 */
|
||||
405 export function firstIndex<T>(array: ReadonlyArray<T>, fn: (item: T) => boolean): number {
|
||||
|
||||
417
|
||||
418 /**
|
||||
419: * @deprecated ES6: use `Array.find`
|
||||
420 */
|
||||
421 export function first<T>(array: ReadonlyArray<T>, fn: (item: T) => boolean, notFoundValue: T): T;
|
||||
|
||||
560
|
||||
561 /**
|
||||
562: * @deprecated ES6: use `Array.find`
|
||||
563 */
|
||||
564 export function find<T>(arr: ArrayLike<T>, predicate: (value: T, index: number, arr: ArrayLike<T>) => any): T | undefined {
|
||||
|
||||
src/vs/base/common/map.ts:
|
||||
11
|
||||
12 /**
|
||||
13: * @deprecated ES6: use `[...SetOrMap.values()]`
|
||||
14 */
|
||||
15 export function values<V = any>(set: Set<V>): V[];
|
||||
|
||||
22
|
||||
23 /**
|
||||
24: * @deprecated ES6: use `[...map.keys()]`
|
||||
25 */
|
||||
26 export function keys<K, V>(map: Map<K, V>): K[] {
|
||||
|
||||
src/vs/base/common/objects.ts:
|
||||
115
|
||||
116 /**
|
||||
117: * @deprecated ES6
|
||||
118 */
|
||||
119 export function assign<T>(destination: T): T;
|
||||
|
||||
src/vs/base/common/strings.ts:
|
||||
15
|
||||
16 /**
|
||||
17: * @deprecated ES6: use `String.padStart`
|
||||
18 */
|
||||
19 export function pad(n: number, l: number, char: string = '0'): string {
|
||||
|
||||
146
|
||||
147 /**
|
||||
148: * @deprecated ES6: use `String.startsWith`
|
||||
149 */
|
||||
150 export function startsWith(haystack: string, needle: string): boolean {
|
||||
|
||||
167
|
||||
168 /**
|
||||
169: * @deprecated ES6: use `String.endsWith`
|
||||
170 */
|
||||
171 export function endsWith(haystack: string, needle: string): boolean {
|
||||
|
||||
861
|
||||
862 /**
|
||||
863: * @deprecated ES6
|
||||
864 */
|
||||
865 export function repeat(s: string, count: number): string {
|
||||
167
.vscode/searches/strict-null.code-search
vendored
Normal file
167
.vscode/searches/strict-null.code-search
vendored
Normal file
@@ -0,0 +1,167 @@
|
||||
# Query: strict-null
|
||||
|
||||
76 results - 44 files
|
||||
|
||||
src\vs\base\browser\ui\tree\compressedObjectTreeModel.ts:
|
||||
455: return null; // {{SQL CARBON EDIT}} strict-null-check
|
||||
465: return null; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\platform\actions\common\menuService.ts:
|
||||
97: const toggledExpression: ContextKeyExpression = (item.command.toggled as { condition: ContextKeyExpression }).condition || item.command.toggled as ContextKeyExpression; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\platform\clipboard\browser\clipboardService.ts:
|
||||
57: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\platform\dialogs\electron-main\dialogs.ts:
|
||||
123: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\platform\driver\electron-main\driver.ts:
|
||||
214: const driver = instantiationService.createInstance(Driver as any, windowServer, { verbose }) as Driver; // {{SQL CARBON EDIT}} strict-null-check...i guess?
|
||||
|
||||
src\vs\platform\extensionManagement\node\extensionManagementService.ts:
|
||||
558: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\platform\quickinput\browser\pickerQuickAccess.ts:
|
||||
216: active: activePick as T || additionalActivePick as T // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\workbench\api\browser\mainThreadLanguageFeatures.ts:
|
||||
90: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
600: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
610: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\api\common\extHost.api.impl.ts:
|
||||
538: alignment = alignmentOrOptions as number; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\api\common\extHostComments.ts:
|
||||
410: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
|
||||
|
||||
src\vs\workbench\api\common\extHostTask.ts:
|
||||
583: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\api\common\extHostTerminalService.ts:
|
||||
279: this._onProcessExit.fire(e === void 0 ? undefined : e as number); // {{SQL CARBON EDIT}} strict-null-checks
|
||||
283: this._pty.onDidOverrideDimensions(e => this._onProcessOverrideDimensions.fire(e ? { cols: e.columns, rows: e.rows } : undefined)); // {{SQL CARBONEDIT}} strict-null-checks
|
||||
|
||||
src\vs\workbench\browser\actions\workspaceCommands.ts:
|
||||
87: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
|
||||
120: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
|
||||
|
||||
src\vs\workbench\browser\parts\editor\editorGroupView.ts:
|
||||
827: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\workbench\browser\parts\panel\panelPart.ts:
|
||||
151: (id: string, focus?: boolean) => <unknown>this.openPanel(id, focus) as Promise<IPaneComposite | undefined>, // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\workbench\browser\parts\sidebar\sidebarPart.ts:
|
||||
59: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
64: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\common\editor\editorGroup.ts:
|
||||
388: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
406: return undefined; // not found {{SQL CARBON EDIT}} strict-null-check
|
||||
433: return undefined; // not found {{SQL CARBON EDIT}} strict-null-check
|
||||
456: return undefined; // not found {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\contrib\callHierarchy\browser\callHierarchyPeek.ts:
|
||||
377: const root = <ITreeNode<callHTree.Call, FuzzyScore>>this._tree.getNode(model).children[0]; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\workbench\contrib\customEditor\browser\customEditorInput.ts:
|
||||
230: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\workbench\contrib\customEditor\browser\customEditors.ts:
|
||||
169: return undefined; // {{SQL CARBON EDIT}} strict-nulls
|
||||
468: return undefined; // {{SQL CARBON EDIT}} Strict-null-checks
|
||||
493: return undefined; // {{SQL CARBON EDIT}} Strict-null-checks
|
||||
505: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\contrib\extensions\browser\extensionsActions.ts:
|
||||
2203: return (<IExtensionsConfigContent>json.parse(content.value.toString()) || {}) as IExtensionsConfigContent; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\contrib\extensions\test\electron-browser\extensionRecommendationsService.test.ts:
|
||||
508: instantiationService.stub(IStorageService, <any>{ // {{SQL CARBON EDIT}} strict-null-checks?
|
||||
|
||||
src\vs\workbench\contrib\files\common\explorerService.ts:
|
||||
393: const configSortOrder = configuration?.explorer?.sortOrder || SortOrder.Default; // {{SQL CARBON EDIT}} strict-null-checks?
|
||||
|
||||
src\vs\workbench\contrib\notebook\browser\notebookEditor.ts:
|
||||
475: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\contrib\notebook\browser\notebookService.ts:
|
||||
204: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\contrib\notebook\browser\contrib\notebookActions.ts:
|
||||
412: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
417: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
479: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
484: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\contrib\notebook\test\testNotebookEditor.ts:
|
||||
186: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\contrib\remote\browser\remote.ts:
|
||||
544: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
563: return undefined; // {{SQL CARBON EDIT}} strict-null-check;
|
||||
|
||||
src\vs\workbench\contrib\remote\browser\tunnelView.ts:
|
||||
589: const node: ITunnelItem | null = treeEvent.element as ITunnelItem | null; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\contrib\search\browser\anythingQuickAccess.ts:
|
||||
631: return undefined; // {{SQL CARBON EDIT}} strict-null
|
||||
636: return undefined; // {{SQL CARBON EDIT}} strict-null
|
||||
641: return undefined; // {{SQL CARBON EDIT}} strict-null
|
||||
651: return undefined; // {{SQL CARBON EDIT}} strict-null
|
||||
663: return undefined; // {{SQL CARBON EDIT}} strict-null
|
||||
668: return undefined; // {{SQL CARBON EDIT}} strict-null
|
||||
698: return undefined; // {{SQL CARBON EDIT}} strict-null
|
||||
|
||||
src\vs\workbench\contrib\searchEditor\browser\searchEditor.ts:
|
||||
335: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\workbench\contrib\searchEditor\browser\searchEditorInput.ts:
|
||||
121: if ((await this.headerModel).isDisposed() || (await this.contentsModel).isDisposed()) { return undefined; } // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\contrib\tasks\browser\abstractTaskService.ts:
|
||||
565: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
586: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\workbench\contrib\tasks\browser\taskQuickPick.ts:
|
||||
204: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
207: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\workbench\contrib\webview\browser\webviewWorkbenchService.ts:
|
||||
148: return undefined; // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\workbench\electron-browser\desktop.main.ts:
|
||||
283: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
|
||||
|
||||
src\vs\workbench\services\dialogs\browser\simpleFileDialog.ts:
|
||||
496: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
|
||||
502: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
|
||||
|
||||
src\vs\workbench\services\dialogs\electron-browser\fileDialogService.ts:
|
||||
127: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
151: return undefined; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\services\extensions\common\abstractExtensionService.ts:
|
||||
235: result.push(new ExtensionPointContribution<T>(desc, desc.contributes[extPoint.name])); // {{SQL CARBON EDIT}} strict-null-checks
|
||||
376: value: desc.contributes[extensionPoint.name], // {{SQL CARBON EDIT}} strict-null-checks
|
||||
|
||||
src\vs\workbench\services\textfile\browser\textFileService.ts:
|
||||
221: return undefined; // user canceled // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\services\textfile\common\textFileEditorModel.ts:
|
||||
611: if ((this.saveSequentializer as TaskSequentializer).hasPending()) { // {{SQL CARBON EDIT}} strict-null-check
|
||||
619: (this.saveSequentializer as TaskSequentializer).cancelPending(); // {{SQL CARBON EDIT}} strict-null-check
|
||||
622: return (this.saveSequentializer as TaskSequentializer).setNext(() => this.doSave(options)); // {{SQL CARBON EDIT}} strict-null-check
|
||||
633: return (this.saveSequentializer as TaskSequentializer).setPending(versionId, (async () => { // {{SQL CARBON EDIT}} strict-null-checks
|
||||
667: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
|
||||
672: return undefined; // {{SQL CARBON EDIT}} @anthonydresser strict-null-check
|
||||
|
||||
src\vs\workbench\services\textfile\common\textfiles.ts:
|
||||
421: isDirty(): boolean; // {{SQL CARBON EDIT}} strict-null-check
|
||||
|
||||
src\vs\workbench\services\themes\browser\workbenchThemeService.ts:
|
||||
248: Theme(), initializeFileIconTheme(), initializeProductIconTheme()]) as Promise<[IWorkbenchColorTheme | null, IWorkbenchFileIconTheme | null, IWorkbenchProductIconTheme | null]>; // {{SQL CARBON EDIT}} strict-null-checks maybe?
|
||||
|
||||
src\vs\workbench\services\workspaces\browser\abstractWorkspaceEditingService.ts:
|
||||
56: return undefined; // canceled {{SQL CARBON EDIT}} strict-null-checks
|
||||
19
.vscode/searches/ts36031.code-search
vendored
Normal file
19
.vscode/searches/ts36031.code-search
vendored
Normal file
@@ -0,0 +1,19 @@
|
||||
# Query: \\w+\\?\\.\\w+![(.[]
|
||||
# Flags: RegExp
|
||||
# ContextLines: 2
|
||||
|
||||
2 results - 2 files
|
||||
|
||||
src/vs/base/browser/ui/tree/asyncDataTree.ts:
|
||||
243 } : () => 'treeitem',
|
||||
244 isChecked: options.accessibilityProvider!.isChecked ? (e) => {
|
||||
245: return !!(options.accessibilityProvider?.isChecked!(e.element as T));
|
||||
246 } : undefined,
|
||||
247 getAriaLabel(e) {
|
||||
|
||||
src/vs/workbench/contrib/debug/browser/debugConfigurationManager.ts:
|
||||
254
|
||||
255 return debugDynamicExtensions.map(e => {
|
||||
256: const type = e.contributes?.debuggers![0].type!;
|
||||
257 return {
|
||||
258 label: this.getDebuggerLabel(type)!,
|
||||
1160
.vscode/searches/vscodeedits.code-search
vendored
Normal file
1160
.vscode/searches/vscodeedits.code-search
vendored
Normal file
File diff suppressed because it is too large
Load Diff
52
.vscode/settings.json
vendored
52
.vscode/settings.json
vendored
@@ -1,6 +1,5 @@
|
||||
{
|
||||
"editor.insertSpaces": false,
|
||||
"files.eol": "\n",
|
||||
"files.trimTrailingWhitespace": true,
|
||||
"files.exclude": {
|
||||
".git": true,
|
||||
@@ -8,7 +7,11 @@
|
||||
"**/.DS_Store": true,
|
||||
"build/**/*.js": {
|
||||
"when": "$(basename).ts"
|
||||
}
|
||||
},
|
||||
"src/vs/server": false
|
||||
},
|
||||
"files.associations": {
|
||||
"cglicenses.json": "jsonc"
|
||||
},
|
||||
"search.exclude": {
|
||||
"**/node_modules": true,
|
||||
@@ -19,9 +22,13 @@
|
||||
"out-vscode/**": true,
|
||||
"i18n/**": true,
|
||||
"extensions/**/out/**": true,
|
||||
"test/smoke/out/**": true
|
||||
"test/smoke/out/**": true,
|
||||
"test/automation/out/**": true,
|
||||
"test/integration/browser/out/**": true,
|
||||
"src/vs/base/test/node/uri.test.data.txt": true,
|
||||
"src/vs/workbench/test/browser/api/extHostDocumentData.test.perf-data.ts": true,
|
||||
"src/vs/server": false
|
||||
},
|
||||
"tslint.enable": true,
|
||||
"lcov.path": [
|
||||
"./.build/coverage/lcov.info",
|
||||
"./.build/coverage-single/lcov.info"
|
||||
@@ -35,6 +42,39 @@
|
||||
}
|
||||
}
|
||||
],
|
||||
"eslint.options": {
|
||||
"rulePaths": [
|
||||
"./build/lib/eslint"
|
||||
]
|
||||
},
|
||||
"typescript.tsdk": "node_modules/typescript/lib",
|
||||
"git.ignoreLimitWarning": true
|
||||
}
|
||||
"npm.exclude": "**/extensions/**",
|
||||
"npm.packageManager": "yarn",
|
||||
"emmet.excludeLanguages": [],
|
||||
"typescript.preferences.importModuleSpecifier": "non-relative",
|
||||
"typescript.preferences.quoteStyle": "single",
|
||||
"json.schemas": [
|
||||
{
|
||||
"fileMatch": [
|
||||
"cgmanifest.json"
|
||||
],
|
||||
"url": "./.vscode/cgmanifest.schema.json"
|
||||
},
|
||||
{
|
||||
"fileMatch": [
|
||||
"cglicenses.json"
|
||||
],
|
||||
"url": "./.vscode/cglicenses.schema.json"
|
||||
}
|
||||
],
|
||||
"git.ignoreLimitWarning": true,
|
||||
"remote.extensionKind": {
|
||||
"msjsdiag.debugger-for-chrome": "workspace"
|
||||
},
|
||||
"gulp.autoDetect": "off",
|
||||
"files.insertFinalNewline": true,
|
||||
"[typescript]": {
|
||||
"editor.defaultFormatter": "vscode.typescript-language-features"
|
||||
},
|
||||
"typescript.tsc.autoDetect": "off"
|
||||
}
|
||||
|
||||
40
.vscode/shared.code-snippets
vendored
Normal file
40
.vscode/shared.code-snippets
vendored
Normal file
@@ -0,0 +1,40 @@
|
||||
{
|
||||
// Each snippet is defined under a snippet name and has a scope, prefix, body and
|
||||
// description. The scope defines in watch languages the snippet is applicable. The prefix is what is
|
||||
// used to trigger the snippet and the body will be expanded and inserted.Possible variables are:
|
||||
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
|
||||
// Placeholders with the same ids are connected.
|
||||
// Example:
|
||||
"MSFT Copyright Header": {
|
||||
"scope": "javascript,typescript,css",
|
||||
"prefix": [
|
||||
"header",
|
||||
"stub",
|
||||
"copyright"
|
||||
],
|
||||
"body": [
|
||||
"/*---------------------------------------------------------------------------------------------",
|
||||
" * Copyright (c) Microsoft Corporation. All rights reserved.",
|
||||
" * Licensed under the Source EULA. See License.txt in the project root for license information.",
|
||||
" *--------------------------------------------------------------------------------------------*/",
|
||||
"",
|
||||
"$0"
|
||||
],
|
||||
"description": "Insert Copyright Statement"
|
||||
},
|
||||
"TS -> Inject Service": {
|
||||
"scope": "typescript",
|
||||
"description": "Constructor Injection Pattern",
|
||||
"prefix": "@inject",
|
||||
"body": "@$1 private readonly _$2: ${1},$0"
|
||||
},
|
||||
"TS -> Event & Emitter": {
|
||||
"scope": "typescript",
|
||||
"prefix": "emitter",
|
||||
"description": "Add emitter and event properties",
|
||||
"body": [
|
||||
"private readonly _onDid$1 = new Emitter<$2>();",
|
||||
"readonly onDid$1: Event<$2> = this._onDid$1.event;"
|
||||
],
|
||||
}
|
||||
}
|
||||
100
.vscode/tasks.json
vendored
100
.vscode/tasks.json
vendored
@@ -3,8 +3,62 @@
|
||||
"tasks": [
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "watch",
|
||||
"script": "watchd",
|
||||
"label": "Build VS Code",
|
||||
"group": {
|
||||
"kind": "build",
|
||||
"isDefault": true
|
||||
},
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"reveal": "never"
|
||||
},
|
||||
"problemMatcher": {
|
||||
"owner": "typescript",
|
||||
"applyTo": "closedDocuments",
|
||||
"fileLocation": [
|
||||
"absolute"
|
||||
],
|
||||
"pattern": {
|
||||
"regexp": "Error: ([^(]+)\\((\\d+|\\d+,\\d+|\\d+,\\d+,\\d+,\\d+)\\): (.*)$",
|
||||
"file": 1,
|
||||
"location": 2,
|
||||
"message": 3
|
||||
},
|
||||
"background": {
|
||||
"beginsPattern": "\\[watch-client\\].*Starting compilation",
|
||||
"endsPattern": "\\[watch-client\\].*Finished compilation"
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "strict-vscode-watch",
|
||||
"label": "TS - Strict VSCode",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
"reveal": "never"
|
||||
},
|
||||
"problemMatcher": {
|
||||
"base": "$tsc-watch",
|
||||
"owner": "typescript-vscode",
|
||||
"applyTo": "allDocuments"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "kill-watchd",
|
||||
"label": "Kill Build VS Code",
|
||||
"group": "build",
|
||||
"presentation": {
|
||||
"reveal": "never"
|
||||
},
|
||||
"problemMatcher": "$tsc"
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "watch-webd",
|
||||
"label": "Build Web Extensions",
|
||||
"group": "build",
|
||||
"isBackground": true,
|
||||
"presentation": {
|
||||
@@ -29,12 +83,14 @@
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "gulp",
|
||||
"task": "tslint",
|
||||
"label": "Run tslint",
|
||||
"problemMatcher": [
|
||||
"$tslint5"
|
||||
]
|
||||
"type": "npm",
|
||||
"script": "kill-watch-webd",
|
||||
"label": "Kill Build Web Extensions",
|
||||
"group": "build",
|
||||
"presentation": {
|
||||
"reveal": "never",
|
||||
},
|
||||
"problemMatcher": "$tsc"
|
||||
},
|
||||
{
|
||||
"label": "Run tests",
|
||||
@@ -59,14 +115,40 @@
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"type": "gulp",
|
||||
"task": "electron",
|
||||
"type": "npm",
|
||||
"script": "electron",
|
||||
"label": "Download electron"
|
||||
},
|
||||
{
|
||||
"type": "gulp",
|
||||
"task": "hygiene",
|
||||
"problemMatcher": []
|
||||
},
|
||||
{
|
||||
"type": "shell",
|
||||
"command": "yarn web --no-launch",
|
||||
"label": "Run web",
|
||||
"isBackground": true,
|
||||
"problemMatcher": {
|
||||
"pattern": {
|
||||
"regexp": ""
|
||||
},
|
||||
"background": {
|
||||
"beginsPattern": ".*node .*",
|
||||
"endsPattern": "Web UI available at .*"
|
||||
}
|
||||
},
|
||||
"presentation": {
|
||||
"reveal": "never"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "npm",
|
||||
"script": "eslint",
|
||||
"problemMatcher": {
|
||||
"source": "eslint",
|
||||
"base": "$eslint-stylish"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
2
.yarnrc
2
.yarnrc
@@ -1,3 +1,3 @@
|
||||
disturl "https://atom.io/download/electron"
|
||||
target "1.7.11"
|
||||
target "7.3.2"
|
||||
runtime "electron"
|
||||
|
||||
486
CHANGELOG.md
486
CHANGELOG.md
@@ -1,5 +1,491 @@
|
||||
# Change Log
|
||||
|
||||
## Version 1.19.0
|
||||
* Release date: June 15, 2020
|
||||
* Release status: General Availability
|
||||
* Address issues in https://github.com/microsoft/azuredatastudio/milestone/55?closed=1
|
||||
* Bug fixes
|
||||
|
||||
## Version 1.18.1
|
||||
* Release date: May 27, 2020
|
||||
* Release status: General Availability
|
||||
* Hotfix for https://github.com/microsoft/azuredatastudio/issues/10538
|
||||
* Hotfix for https://github.com/microsoft/azuredatastudio/issues/10537
|
||||
|
||||
## Version 1.18.0
|
||||
* Release date: May 20, 2020
|
||||
* Release status: General Availability
|
||||
* Announcing Redgate SQL Prompt extension - This extension lets you manage formatting styles directly within Azure Data Studio, so you can create and edit your styles without leaving the IDE.
|
||||
* Announcing the new machine learning extension. This extension enables you to:
|
||||
* Manage Python and R packages with SQL Server machine learning services with Azure Data Studio.
|
||||
* Use ONNX model to make predictions in Azure SQL Edge.
|
||||
* View ONNX models in an Azure SQL Edge database.
|
||||
* Import ONNX models from a file or Azure Machine Learning into Azure SQL Edge database.
|
||||
* Create a notebook to run experiments.
|
||||
* New notebook features:
|
||||
* Added new Python dependencies wizard
|
||||
* Improvements to the notebook markdown toolbar
|
||||
* Added support for parameterization for Always Encrypted - Allows you to run queries that insert, update or filter by encrypted database columns.
|
||||
* Bug fixes
|
||||
|
||||
## Version 1.17.1
|
||||
* Release date: April 29, 2020
|
||||
* Release status: General Availability
|
||||
* Hotfix for https://github.com/microsoft/azuredatastudio/milestone/54?closed=1
|
||||
|
||||
## Version 1.17.0
|
||||
* Release date: April 27, 2020
|
||||
* Release status: General Availability
|
||||
* New Welcome Page
|
||||
* New Notebook features
|
||||
* New Markdown editor toolbar
|
||||
* Books viewlet now works with notebooks
|
||||
* Improved dashboard
|
||||
* Always encrypted support
|
||||
* Accessibility bugs
|
||||
* VS Code merge
|
||||
|
||||
## Version 1.16.0
|
||||
* Release date: March 18, 2020
|
||||
* Release status: General Availability
|
||||
* Notebooks:
|
||||
* Charting
|
||||
* Creating Jupyter books
|
||||
* Postgres extension update - Users can now authenticate to Azure Postgres servers with their linked Azure account
|
||||
* Accessibility bugs
|
||||
* VS Code merge
|
||||
* In the next release, GitHub releases will no longer contain the binary files to the latest version. Rather, they will contain links to the latest release. This will have no impact on users using the in-app update functionality.
|
||||
|
||||
## Version 1.15.1
|
||||
* Release date: February 19, 2020
|
||||
* Release status: General Availability
|
||||
* Resolved [#9145 Edit Data render the result grid incorrectly when using custom query](https://github.com/microsoft/azuredatastudio/issues/9145).
|
||||
* Resolved [#9149 Show Active Connections](https://github.com/microsoft/azuredatastudio/issues/9149).
|
||||
|
||||
## Version 1.15.0
|
||||
* Release date: February 13, 2020
|
||||
* Release status: General Availability
|
||||
* New Azure Sign-in improvement - Added improved Azure Sign-in experience, including removal of copy/paste of device code to make a more seamless connected experience.
|
||||
* Find in Notebook support - Users can now use Ctrl+F inside of a notebook. Find in Notebook support searches line by line through both code and text cells.
|
||||
* VS Code merge from 1.38 to 1.42 - This release includes updates to VS Code from the 3 previous VS Code releases. Read their [release notes](https://code.visualstudio.com/updates/v1_42) to learn more.
|
||||
* Fix for the ["white/blank screen"](https://github.com/microsoft/azuredatastudio/issues/8775) issue reported by many users.
|
||||
* Resolved [bugs and issues](https://github.com/microsoft/azuredatastudio/issues?q=is%3Aissue+label%3ABug+milestone%3A%22February+2020%22+is%3Aclosed).
|
||||
|
||||
## Version 1.14.1
|
||||
* Release date: December 26, 2019
|
||||
* Release status: General Availability
|
||||
* Hotfix for bug https://github.com/microsoft/azuredatastudio/issues/8768
|
||||
|
||||
## Version 1.14.0
|
||||
* Release date: December 19, 2019
|
||||
* Release status: General Availability
|
||||
* Added bigdatacluster.ignoreSslVerification setting to allow ignoring SSL verification errors when connecting to a BDC [#8129](https://github.com/microsoft/azuredatastudio/issues/8129)
|
||||
* Changed attach to connection dropdown in Notebooks to only list the currently active connection [#8582](https://github.com/microsoft/azuredatastudio/pull/8582)
|
||||
* Allow changing default language flavor for offline query editors [#8419](https://github.com/microsoft/azuredatastudio/pull/8419)
|
||||
* GA status for Big Data Cluster/SQL 2019 features [#8269](https://github.com/microsoft/azuredatastudio/issues/8269)
|
||||
* Resolved [bugs and issues](https://github.com/microsoft/azuredatastudio/milestone/44?closed=1).
|
||||
|
||||
## Contributions and "thank you"
|
||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||
|
||||
## Version 1.13.1
|
||||
* Release date: November 15, 2019
|
||||
* Release status: General Availability
|
||||
* Resolved [#8210 Copy/Paste results are out of order](https://github.com/microsoft/azuredatastudio/issues/8210).
|
||||
|
||||
## Version 1.13.0
|
||||
* Release date: November 4, 2019
|
||||
* Release status: General Availability
|
||||
* General Availability release for Schema Compare and DACPAC extensions
|
||||
* Resolved [bugs and issues](https://github.com/microsoft/azuredatastudio/milestone/43?closed=1).
|
||||
|
||||
## Contributions and "thank you"
|
||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||
* aspnerd for `Use selected DB for import wizard schema list` [#7878](https://github.com/microsoft/azuredatastudio/pull/7878)
|
||||
|
||||
## Version 1.12.2
|
||||
* Release date: October 11, 2019
|
||||
* Release status: General Availability
|
||||
* Hotfix release (1.12.2): `Disable automatically starting the EH in inspect mode` https://github.com/microsoft/azuredatastudio/commit/c9bef82ace6c67190d0e83820011a2bbd1f793c1
|
||||
|
||||
## Version 1.12.1
|
||||
* Release date: October 7, 2019
|
||||
* Release status: General Availability
|
||||
* Hotfix release: `Notebooks: Ensure quotes and backslashes are escaped properly in text editor model` https://github.com/microsoft/azuredatastudio/pull/7540
|
||||
|
||||
## Version 1.12.0
|
||||
* Release date: October 2, 2019
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* Announcing the Query History panel
|
||||
* Improved Query Results Grid copy selection support
|
||||
* TempDB page added to Server Reports extension
|
||||
* PowerShell extension update
|
||||
* Resolved [bugs and issues](https://github.com/microsoft/azuredatastudio/milestone/42?closed=1).
|
||||
|
||||
## Version 1.11.0
|
||||
* Release date: September 10, 2019
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* Resolved [bugs and issues](https://github.com/microsoft/azuredatastudio/milestone/41?closed=1).
|
||||
|
||||
## Version 1.10.0
|
||||
* Release date: August 14, 2019
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* [SandDance](https://github.com/microsoft/SandDance) integration — A new way to interact with data. Download the extension [here](https://docs.microsoft.com/sql/azure-data-studio/sanddance-extension)
|
||||
* Notebook improvements
|
||||
* Better loading performance
|
||||
* Ability to right click SQL results grid to save your results as CSV, JSON, etc.
|
||||
* Buttons to add code or text cells in-line
|
||||
* [Other fixes and improvements](https://github.com/microsoft/azuredatastudio/issues?q=is%3Aissue+label%3A%22Area%3A+Notebooks%22+milestone%3A%22August+2019+Release%22+is%3Aclosed)
|
||||
* SQL Server Dacpac extension can support Azure Active Directory authentication
|
||||
* Updated SQL Server 2019 extension
|
||||
* Visual Studio Code May Release Merge 1.37 - this includes changes from [1.36](https://code.visualstudio.com/updates/v1_37) and [1.37](https://code.visualstudio.com/updates/v1_37)
|
||||
* Resolved [bugs and issues](https://github.com/microsoft/azuredatastudio/milestone/39?closed=1).
|
||||
|
||||
## Version 1.9.0
|
||||
* Release date: July 11, 2019
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* Release of [SentryOne Plan Explorer Extension](https://www.sentryone.com/products/sentryone-plan-explorer-extension-azure-data-studio)
|
||||
* **Schema Compare**
|
||||
* Schema Compare File Support (.SCMP)
|
||||
* Cancel support
|
||||
* [Other fixes and improvements](https://github.com/Microsoft/azuredatastudio/issues?q=is%3Aissue+milestone%3A%22July+2019+Release%22+is%3Aclosed+label%3A%22Area%3A+Schema+Compare%22)
|
||||
* **Notebooks**
|
||||
* Plotly Support
|
||||
* Open Notebook from Browser
|
||||
* Python Package Management
|
||||
* Performance & Markdown Enhancements
|
||||
* Improved Keyboard Shortcuts
|
||||
* [Other fixes and improvements](https://github.com/Microsoft/azuredatastudio/issues?q=is%3Aissue+milestone%3A%22July+2019+Release%22+is%3Aclosed+label%3A%22Area%3A+Notebooks%22)
|
||||
* **SQL Server Profiler**
|
||||
* Filtering by Database Name
|
||||
* Copy & Paste Support
|
||||
* Save/Load Filter
|
||||
* SQL Server 2019 Support
|
||||
* New Language Packs Available
|
||||
* Visual Studio Code May Release Merge 1.35 - the latest improvements can be found [here](https://code.visualstudio.com/updates/v1_35)
|
||||
* Resolved [bugs and issues](https://github.com/microsoft/azuredatastudio/milestone/35?closed=1).
|
||||
|
||||
## Version 1.8.0
|
||||
* Release date: June 6, 2019
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* Initial release of the Database Admin Tool Extensions for Windows *Preview* extension
|
||||
* Initial release of the Central Management Servers extension
|
||||
* **Schema Compare**
|
||||
* Added Exclude/Include Options
|
||||
* Generate Script opens script after being generated
|
||||
* Removed double scroll bars
|
||||
* Formatting and layout improvements
|
||||
* Complete changes can be found [here](https://github.com/microsoft/azuredatastudio/issues?q=is%3Aissue+milestone%3A%22June+2019+Release%22+label%3A%22Area%3A+Schema+Compare%22+is%3Aclosed)
|
||||
* Messages panel moved into results panel - when users ran SQL queries, results and messages were in stacked panels. Now they are in separate tabs in a single panel similar to SSMS.
|
||||
* **Notebook**
|
||||
* Users can now choose to use their own Python 3 or Anaconda installs in notebooks
|
||||
* Multiple Stability + fit/finish fixes
|
||||
* View the full list of improvements and fixes [here](https://github.com/microsoft/azuredatastudio/issues?q=is%3Aissue+milestone%3A%22June+2019+Release%22+is%3Aclosed+label%3A%22Area%3A+Notebooks%22)
|
||||
* Visual Studio Code May Release Merge 1.34 - the latest improvements can be found [here](https://code.visualstudio.com/updates/v1_34)
|
||||
* Resolved [bugs and issues](https://github.com/microsoft/azuredatastudio/milestone/32?closed=1).
|
||||
|
||||
## Version 1.7.0
|
||||
* Release date: May 8, 2019
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* Announcing Schema Compare *Preview* extension
|
||||
* Tasks Panel UX improvement
|
||||
* Announcing new Welcome page
|
||||
* Resolved [bugs and issues](https://github.com/microsoft/azuredatastudio/milestone/31?closed=1).
|
||||
|
||||
## Contributions and "thank you"
|
||||
We would like to thank all our users who raised issues.
|
||||
|
||||
## Version 1.6.0
|
||||
* Release date: April 18, 2019
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* Align with latest VS Code editor platform (currently 1.33.1)
|
||||
* Resolved [bugs and issues](https://github.com/Microsoft/azuredatastudio/milestone/26?closed=1).
|
||||
|
||||
## Contributions and "thank you"
|
||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||
|
||||
* yamatoya for `fix the format (#4899)`
|
||||
|
||||
## Version 1.5.1
|
||||
* Release date: March 18, 2019
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* Announcing T-SQL Notebooks
|
||||
* Announcing PostgreSQL extension
|
||||
* Announcing SQL Server Dacpac extension
|
||||
* Resolved [bugs and issues](https://github.com/Microsoft/azuredatastudio/milestone/25?closed=1).
|
||||
|
||||
## Contributions and "thank you"
|
||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||
|
||||
* GeoffYoung for `Fix sqlDropColumn description #4422`
|
||||
|
||||
## Version 1.4.5
|
||||
* Release date: February 13, 2019
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* Added **Admin pack for SQL Server** extension pack to make it easier to install SQL Server admin-related extensions. This includes:
|
||||
* [SQL Server Agent](https://docs.microsoft.com/en-us/sql/azure-data-studio/sql-server-agent-extension?view=sql-server-2017)
|
||||
* [SQL Server Profiler](https://docs.microsoft.com/en-us/sql/azure-data-studio/sql-server-profiler-extension?view=sql-server-2017)
|
||||
* [SQL Server Import](https://docs.microsoft.com/en-us/sql/azure-data-studio/sql-server-import-extension?view=sql-server-2017)
|
||||
* Added filtering extended event support in Profiler extension
|
||||
* Added Save as XML feature that can save T-SQL results as XML
|
||||
* Added Data-Tier Application Wizard improvements
|
||||
* Added Generate script button
|
||||
* Added view to give warnings of possible data loss during deployment
|
||||
* Updates to the [SQL Server 2019 Preview extension](https://docs.microsoft.com/sql/azure-data-studio/sql-server-2019-extension?view=sql-server-ver15)
|
||||
* Results streaming enabled by default for long running queries
|
||||
* Resolved [bugs and issues](https://github.com/Microsoft/azuredatastudio/milestone/23?closed=1).
|
||||
|
||||
## Contributions and "thank you"
|
||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||
|
||||
* AlexFsmn for `Added context menu for DBs in explorer view to backup & restore db. #2277`
|
||||
* sadedil for `Missing feature request: Save as XML #3729`
|
||||
* gbritton1 for `Removed reference to object explorer #3463`
|
||||
|
||||
## Version 1.3.8
|
||||
* Release date: January 9, 2019
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* #13 Feature Request: Azure Active Directory Authentication
|
||||
* #1040 Stream initial query results as they become available
|
||||
* #3298 Сan't add an azure account.
|
||||
* #2387 Support Per-User Installer
|
||||
* SQL Server Import updates for DACPAC\BACPAC
|
||||
* SQL Server Profiler UI and UX improvements
|
||||
* Updates to [SQL Server 2019 extension](https://docs.microsoft.com/sql/azure-data-studio/sql-server-2019-extension?view=sql-server-ver15)
|
||||
* **sp_executesql to SQL** and **New Database** extensions
|
||||
|
||||
## Contributions and "thank you"
|
||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||
|
||||
* Tarig0 for `Add Routine_Type to CreateStoredProc fixes #3257 (#3286)`
|
||||
* oltruong for `typo fix #3025'`
|
||||
* Thomas-S-B for `Removed unnecessary IErrorDetectionStrategy #749`
|
||||
* Thomas-S-B for `Simplified code #750`
|
||||
|
||||
## Version 1.2.4
|
||||
* Release date: November 6, 2018
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* Update to the SQL Server 2019 Preview extension
|
||||
* Introducing Paste the Plan extension
|
||||
* Introducing High Color queries extension, including SSMS editor theme
|
||||
* Fixes in SQL Server Agent, Profiler, and Import extensions
|
||||
* Fix .Net Core Socket KeepAlive issue causing dropped inactive connections on macOS
|
||||
* Upgrade SQL Tools Service to .Net Core 2.2 Preview 3 (for eventual AAD support)
|
||||
* Fix customer reported GitHub issues
|
||||
|
||||
## Contributions and "thank you"
|
||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||
|
||||
* rdaniels6813 for `Add query plan theme support #3031`
|
||||
* Ruturaj123 for `Fixed some typos and grammatical errors #3027`
|
||||
* PromoFaux for `Use emoji shortcodes in CONTRIBUTING.md instead of <20> #3009`
|
||||
* ckaczor for `Fix: DATETIMEOFFSET data types should be ISO formatted #714`
|
||||
* hi-im-T0dd for `Fixed sync issue with my forked master so this commit is correct #2948`
|
||||
* hi-im-T0dd for `Fixed when right clicking and selecting Manage-correct name displays #2794`
|
||||
|
||||
## Version 1.1.3
|
||||
* Release date: October 18, 2018
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* Introducing the Azure Resource Explorer to browse Azure SQL Databases
|
||||
* Improve Object Explorer and Query Editor connectivity robustness
|
||||
* SQL Server 2019 and SQL Agent extension improvements
|
||||
|
||||
## Contributions and "thank you"
|
||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||
|
||||
* philoushka for `center the icon #2760`
|
||||
* anthonypants for `Typo #2775`
|
||||
* kstolte for `Fix Invalid Configuration in Launch.json #2789`
|
||||
* kstolte for `Fixing a reference to SQL Ops Studio #2788`
|
||||
|
||||
## Version 1.0.0
|
||||
* Release date: September 24, 2018
|
||||
* Release status: General Availability
|
||||
|
||||
## What's new in this version
|
||||
* Announcing the SQL Server 2019 Preview extension.
|
||||
* Support for SQL Server 2019 preview features including Big Data Cluster support.
|
||||
* Azure Data Studio Notebooks
|
||||
* The Azure Resource Explorer viewlets you browse data-related endpoints for your Azure accounts and create connections to them in Object Explorer. In this release Azure SQL Databases and servers are supported.
|
||||
* SQL Server Polybase Create External Table Wizard
|
||||
* Query Results Grid performance and UX improvements for large number of result sets.
|
||||
* Visual Studio Code source code refresh from 1.23 to 1.26.1 with Grid Layout and Improved Settings Editor (preview).
|
||||
* Accessibility improvements for screen reader, keyboard navigation and high-contrast.
|
||||
* Added Connection name option to provide an alternative display name in the Servers viewlet.
|
||||
|
||||
## Contributions and "thank you"
|
||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||
|
||||
* AlexFsmn `Feature: Ability to add connection name #2332`
|
||||
* AlexFsmn `Disabled connection name input when connecting to a server. #2566`
|
||||
|
||||
## Version 0.33.7
|
||||
* Release date: August 30, 2018
|
||||
* Release status: Public Preview
|
||||
|
||||
## What's new in this version
|
||||
* Announcing the SQL Server Import Extension
|
||||
* SQL Server Profiler Session management
|
||||
* SQL Server Agent improvements
|
||||
* New community extension: First Responder Kit
|
||||
* Quality of Life improvements: Connection strings
|
||||
* Fix many customer reported GitHub issues
|
||||
|
||||
## Contributions and "thank you"
|
||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||
|
||||
* SebastianPfliegel `Added more saveAsCsv options #2099`
|
||||
* ianychoi `Fixes a typo: Mimunum -> Minimum #1994`
|
||||
* AlexFsmn `Fixed bug where proper file extension wasn't appended to filename. #2151`
|
||||
* AlexFsmn `Added functionality for adding any file to import wizard #2329`
|
||||
* AlexFsmn `Fixed background issue when copying a chart to clipboard #2215`
|
||||
* AlexFsmn `Fixed problem where vertical charts didn't display labels correctly. #2263`
|
||||
* AlexFsmn `Fixed Initial values for charts to match visuals #2266`
|
||||
* AlexFsmn `Renamed chart option labels #2264`
|
||||
* AlexFsmn `Added feature for opening file after exporting to CSV/XLS/JSON & query files #2216`
|
||||
* AlexFsmm `Get Connection String should copy to clipboard #2175`
|
||||
|
||||
## Version 0.31.4
|
||||
* Release date: July 19, 2018
|
||||
* Release status: Public Preview
|
||||
|
||||
## What's new in this version
|
||||
* SQL Server Agent for Azure Data Studio extension improvements
|
||||
* Added view of Alerts, Operators, and Proxies and icons on left pane
|
||||
* Added dialogs for New Job, New Job Step, New Alert, and New Operator
|
||||
* Added Delete Job, Delete Alert, and Delete Operator (right-click)
|
||||
* Added Previous Runs visualization
|
||||
* Added Filters for each column name
|
||||
* SQL Server Profiler for Azure Data Studio extension improvements
|
||||
* Added Hotkeys to quickly launch and start/stop Profiler
|
||||
* Added 5 Default Templates to view Extended Events
|
||||
* Added Server/Database connection name
|
||||
* Added support for Azure SQL Database instances
|
||||
* Added suggestion to exit Profiler when tab is closed when Profiler is still running
|
||||
* Release of Combine Scripts Extension
|
||||
* Wizard and Dialog Extensibility
|
||||
* Fix GitHub Issues
|
||||
|
||||
## Version 0.30.6
|
||||
* Release date: June 20, 2018
|
||||
* Release status: Public Preview
|
||||
|
||||
## What's new in this version
|
||||
* **SQL Server Profiler for Azure Data Studio *Preview*** extension initial release
|
||||
* The new **SQL Data Warehouse** extension includes rich customizable dashboard widgets surfacing insights to your data warehouse. This unlocks key scenarios around managing and tuning your data warehouse to ensure it is optimized for consistent performance.
|
||||
* **Edit Data "Filtering and Sorting"** support
|
||||
* **SQL Server Agent for Azure Data Studio *Preview*** extension enhancements for Jobs and Job History views
|
||||
* Improved **Wizard & Dialog UI Builder Framework** extensibility APIs
|
||||
* Update VS Code Platform source code integrating [March 2018 (1.22)](https://code.visualstudio.com/updates/v1_22) and [April 2018 (1.23)](https://code.visualstudio.com/updates/v1_23) releases
|
||||
* Fix GitHub Issues
|
||||
|
||||
## Version 0.29.3
|
||||
* Release date: May 7, 2018
|
||||
* Release status: Public Preview
|
||||
|
||||
## What's new in this version
|
||||
The May release is focused on stabilization and bug fixes leading up to the Build conference. This build contains the following highlights.
|
||||
|
||||
* Announcing **Redgate SQL Search** extension available in Extension Manager
|
||||
* Community Localization available for 10 languages: **German, Spanish, French, Italian, Japanese, Korean, Portuguese, Russian, Simplified Chinese and Traditional Chinese!**
|
||||
* Reduced telemetry collection, improved [opt-out](https://github.com/Microsoft/azuredatastudio/wiki/How-to-Disable-Telemetry-Reporting) experience and in-product links to [Privacy Statement](https://privacy.microsoft.com/en-us/privacystatement)
|
||||
* Extension Manager has improved Marketplace experience to easily discover community extensions
|
||||
* SQL Agent extension Jobs and Job History view improvement
|
||||
* Updates for **whoisactive** and **Server Reports** extensions
|
||||
* Continue to fix GitHub issues
|
||||
|
||||
## Version 0.28.6
|
||||
* Release date: April 25, 2018
|
||||
* Release status: Public Preview
|
||||
|
||||
## What's new in this version
|
||||
The April Public Preview release contains some of the following highlights.
|
||||
|
||||
* Improvements to SQL Agent *Preview* extension
|
||||
* Accessibility improvements for keyboard navigation, screen reader support and high-contrast mode.
|
||||
* Improved large and protected file support for saving Admin protected and >256M files within SQL Ops Studio
|
||||
* Integrated Terminal splitting to work with multiple open terminals at once
|
||||
* Reduced installation on-disk file count foot print for faster installs and startup times
|
||||
* Improvements to Server Reports extension
|
||||
* Continue to fix GitHub issues
|
||||
|
||||
## Version 0.27.3
|
||||
* Release date: March 28, 2017
|
||||
* Release status: Public Preview
|
||||
|
||||
## What's new in this version
|
||||
The March Public Preview release enables some key aspects of the Azure Data Studio
|
||||
extensibility story. Here are some highlights in this release.
|
||||
|
||||
* Enhance the Manage Dashboard extensibility model to support tabbed Insights and Configuration panes
|
||||
* Dashboard Insights extensions for `sp_whoisactive` from [whoisactive.com](http://whoisactive.com)
|
||||
* Extension Manager enables simple acquisition of 1st-party and 3rd-party extensions
|
||||
* Add additional Extensibility APIs for `connection` and `objectexplorer` management
|
||||
* Community Localization open for 10 languages
|
||||
* Continue to fix important customer impacting GitHub issues
|
||||
|
||||
## Version 0.26.7
|
||||
* Release date: February 16, 2017
|
||||
* Release status: Public Preview Hotfix 1
|
||||
|
||||
## What's new in this version
|
||||
* Bug fix for `#717 Selecting partial query and hitting Cmd or Ctrl+C opens terminal with Error message`
|
||||
|
||||
## Version 0.26.6
|
||||
* Release date: February 15, 2017
|
||||
* Release status: Public Preview
|
||||
|
||||
## What's new in this version
|
||||
The February release fixes several important customer reported issues, as well as various feature improvements. We've also introduced auto-update support in February which will simplify keeping updated with the lastest changes.
|
||||
|
||||
Here's some of the highlights in the February release.
|
||||
|
||||
* Support Auto-Update installation on Windows and macOS
|
||||
* Publish RPM and DEB packages to offical Microsoft repos
|
||||
* Fix `#6 Keep connection and selected database when opening new query tabs`
|
||||
* Fix `#22 'Server Name' and 'Database Name' - Can these be drop downs instead of text` boxes?
|
||||
* Fix #481 Add "Check for updates" option.
|
||||
* SQL Editor colorization and auto-completion fixes
|
||||
* `#584 Keyword "FULL" not highlighted by IntelliSense`
|
||||
* `#345 Colorize SQL functions within the editor`
|
||||
* `#300 [#tempData] latest "]" will display green color`
|
||||
* `#225 Keyword color mismatch`
|
||||
* `#60 invalid sql syntax color highlighting when using temporary table in from clause`
|
||||
* Introduce Connection extensibility API
|
||||
* VS Code Editor 1.19 integration
|
||||
* Update JustinPealing/html-query-plan component to pick-up several Query Plan viewer improvements
|
||||
|
||||
## Contributions and "thank you"
|
||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||
|
||||
* SebastianPfliegel for `Add cursor snippet (#475)`
|
||||
* mikaoelitiana for fix: `revert README and CONTRIBUTING after last VSCode merge (#574)`
|
||||
* alextercete for `Reinstate menu item to install from VSIX (#682)`
|
||||
|
||||
## Version 0.25.4
|
||||
* Release date: January 17, 2017
|
||||
* Release status: Public Preview
|
||||
|
||||
@@ -1 +0,0 @@
|
||||
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
||||
@@ -1,13 +1,13 @@
|
||||
## Contributing Issues
|
||||
|
||||
### Before Submitting an Issue
|
||||
First, please do a search in [open issues](https://github.com/Microsoft/sqlopsstudio/issues) to see if the issue or feature request has already been filed. Use this [query](https://github.com/Microsoft/sqlopsstudio/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request+sort%3Areactions-%2B1-desc) to search for the most popular feature requests.
|
||||
First, please do a search in [open issues](https://github.com/Microsoft/azuredatastudio/issues) to see if the issue or feature request has already been filed. Use this [query](https://github.com/Microsoft/azuredatastudio/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request+sort%3Areactions-%2B1-desc) to search for the most popular feature requests.
|
||||
|
||||
If you find your issue already exists, make relevant comments and add your [reaction](https://github.com/blog/2119-add-reactions-to-pull-requests-issues-and-comments). Use a reaction in place of a "+1" comment.
|
||||
|
||||
👍 - upvote
|
||||
:+1: - upvote
|
||||
|
||||
👎 - downvote
|
||||
:-1: - downvote
|
||||
|
||||
If you cannot find an existing issue that describes your bug or feature, submit an issue using the guidelines below.
|
||||
|
||||
@@ -18,29 +18,33 @@ File a single issue per problem and feature request.
|
||||
* Do not enumerate multiple bugs or feature requests in the same issue.
|
||||
* Do not add your issue as a comment to an existing issue unless it's for the identical input. Many issues look similar, but have different causes.
|
||||
|
||||
The more information you can provide, the more likely someone will be successful reproducing the issue and finding a fix.
|
||||
The more information you can provide, the more likely someone will be successful at reproducing the issue and finding a fix.
|
||||
|
||||
Please include the following with each issue.
|
||||
The built-in tool for reporting an issue, which you can access by using `Report Issue` in Azure Data Studio's Help menu, can help streamline this process by automatically providing the version of Azure Data Studio, all your installed extensions, and your system info.
|
||||
|
||||
* Version of SQL Ops Studio
|
||||
Please include the following with each issue.
|
||||
|
||||
> **Tip:** You can easily create an issue using `Report Issues` from SQL Operations Studio Help menu.
|
||||
* Version of Azure Data Studio (formerly SQL Operations Studio)
|
||||
|
||||
* Reproducible steps (1... 2... 3...) and what you expected versus what you actually saw.
|
||||
* Images, animations, or a link to a video.
|
||||
* A code snippet that demonstrates the issue or a link to a code repository we can easily pull down onto our machine to recreate the issue.
|
||||
* Your operating system
|
||||
|
||||
> **Note:** Because we need to copy and paste the code snippet, including a code snippet as a media file (i.e. .gif) is not sufficient.
|
||||
> **Tip:** You can easily create an issue using `Report Issues` from Azure Data Studio Help menu.
|
||||
|
||||
* Reproducible steps (1... 2... 3...) and what you expected versus what you actually saw.
|
||||
* Images, animations, or a link to a video.
|
||||
* A code snippet that demonstrates the issue or a link to a code repository we can easily pull down onto our machine to recreate the issue.
|
||||
|
||||
> **Note:** Because we need to copy and paste the code snippet, including a code snippet as a media file (i.e. .gif) is not sufficient.
|
||||
|
||||
* Errors in the Dev Tools Console (Help | Toggle Developer Tools)
|
||||
|
||||
Please remember to do the following:
|
||||
|
||||
* Search the issue repository to see if there exists a duplicate.
|
||||
* Simplify your scripts around the issue so we can better isolate the problem.
|
||||
* Search the issue repository to see if there exists a duplicate.
|
||||
* Simplify your scripts around the issue so we can better isolate the problem.
|
||||
|
||||
Don't feel bad if we can't reproduce the issue and ask for more information!
|
||||
|
||||
## Contributing Fixes
|
||||
If you are interested in fixing issues and contributing directly to the code base,
|
||||
please see the document [How to Contribute](https://github.com/Microsoft/sqlopsstudio/wiki/How-to-Contribute).
|
||||
please see the document [How to Contribute](https://github.com/Microsoft/azuredatastudio/wiki/How-to-Contribute).
|
||||
|
||||
12
LICENSE.txt
12
LICENSE.txt
@@ -1,14 +1,14 @@
|
||||
MICROSOFT SOFTWARE LICENSE TERMS
|
||||
|
||||
MICROSOFT SQL OPERATIONS STUDIO
|
||||
MICROSOFT AZURE DATA STUDIO
|
||||
|
||||
Microsoft Corporation ("Microsoft") grants you a nonexclusive, perpetual,
|
||||
royalty-free right to use, copy, and modify the software code provided by us
|
||||
("Software Code"). You may not sublicense the Software Code or any use of it
|
||||
(except to your affiliates and to vendors to perform work on your behalf)
|
||||
through distribution, network access, service agreement, lease, rental, or
|
||||
otherwise. Unless applicable law gives you more rights, Microsoft reserves all
|
||||
other rights not expressly granted herein, whether by implication, estoppel or
|
||||
("Software Code"). You may not sublicense the Software Code or any use of it
|
||||
(except to your affiliates and to vendors to perform work on your behalf)
|
||||
through distribution, network access, service agreement, lease, rental, or
|
||||
otherwise. Unless applicable law gives you more rights, Microsoft reserves all
|
||||
other rights not expressly granted herein, whether by implication, estoppel or
|
||||
otherwise.
|
||||
|
||||
THE SOFTWARE CODE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY
|
||||
|
||||
812
OSSREADME.json
812
OSSREADME.json
@@ -1,812 +0,0 @@
|
||||
// Listing in here platform dependencies that come in at build time
|
||||
|
||||
[{
|
||||
"isLicense": true,
|
||||
"name": "async-each",
|
||||
"repositoryURL": "https://github.com/paulmillr/async-each",
|
||||
"license": "MIT",
|
||||
"licenseDetail": [
|
||||
"The MIT License (MIT)",
|
||||
"",
|
||||
"Copyright (c) 2016 Paul Miller [(paulmillr.com)](http://paulmillr.com)",
|
||||
"",
|
||||
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
||||
"of this software and associated documentation files (the “Software”), to deal",
|
||||
"in the Software without restriction, including without limitation the rights",
|
||||
"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell",
|
||||
"copies of the Software, and to permit persons to whom the Software is",
|
||||
"furnished to do so, subject to the following conditions:",
|
||||
"",
|
||||
"The above copyright notice and this permission notice shall be included in",
|
||||
"all copies or substantial portions of the Software.",
|
||||
"",
|
||||
"THE SOFTWARE IS PROVIDED “AS IS”, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
|
||||
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
|
||||
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
|
||||
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
|
||||
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,",
|
||||
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN",
|
||||
"THE SOFTWARE."
|
||||
],
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"isLicense": true,
|
||||
"name": "chokidar",
|
||||
"repositoryURL": "https://github.com/paulmillr/chokidar",
|
||||
"license": "MIT",
|
||||
"licenseDetail": [
|
||||
"The MIT license.",
|
||||
"",
|
||||
"Copyright (c) 2012 - 2016 Paul Miller [paulmillr.com](http://paulmillr.com) & Elan Shanker",
|
||||
"",
|
||||
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
|
||||
"this software and associated documentation files (the \"Software\"), to deal in",
|
||||
"the Software without restriction, including without limitation the rights to",
|
||||
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies",
|
||||
"of the Software, and to permit persons to whom the Software is furnished to do",
|
||||
"so, subject to the following conditions:",
|
||||
"",
|
||||
"The above copyright notice and this permission notice shall be included in all",
|
||||
"copies or substantial portions of the Software.",
|
||||
"",
|
||||
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
|
||||
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
|
||||
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
|
||||
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
|
||||
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,",
|
||||
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE",
|
||||
"SOFTWARE."
|
||||
],
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"name": "chromium",
|
||||
"version": "58.0.3029.110",
|
||||
"repositoryURL": "http://www.chromium.org/Home",
|
||||
"licenseDetail": [
|
||||
"BSD License",
|
||||
"",
|
||||
"Copyright 2015 The Chromium Authors. All rights reserved.",
|
||||
"",
|
||||
"Redistribution and use in source and binary forms, with or without modification,",
|
||||
"are permitted provided that the following conditions are met:",
|
||||
"",
|
||||
" * Redistributions of source code must retain the above copyright notice, this",
|
||||
" list of conditions and the following disclaimer.",
|
||||
"",
|
||||
" * Redistributions in binary form must reproduce the above copyright notice,",
|
||||
" this list of conditions and the following disclaimer in the documentation",
|
||||
" and/or other materials provided with the distribution.",
|
||||
"",
|
||||
" * Neither the name Google Inc. nor the names of its contributors may be used to",
|
||||
" endorse or promote products derived from this software without specific",
|
||||
" prior written permission.",
|
||||
"",
|
||||
"THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND",
|
||||
"ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED",
|
||||
"WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE",
|
||||
"DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR",
|
||||
"ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES",
|
||||
"(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;",
|
||||
"LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON",
|
||||
"ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT",
|
||||
"(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS",
|
||||
"SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
|
||||
],
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"name": "libchromiumcontent",
|
||||
"version": "58.0.3029.110",
|
||||
"license": "MIT",
|
||||
"repositoryURL": "https://github.com/electron/libchromiumcontent",
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"name": "nodejs",
|
||||
"version": "7.9.0",
|
||||
"repositoryURL": "https://github.com/nodejs/node",
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"name": "electron",
|
||||
"version": "1.7.3",
|
||||
"license": "MIT",
|
||||
"repositoryURL": "https://github.com/electron/electron",
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"name": "inno setup",
|
||||
"version": "5.5.6",
|
||||
"repositoryURL": "https://github.com/jrsoftware/issrc",
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"isLicense": true,
|
||||
"name": "ripgrep",
|
||||
"repositoryURL": "https://github.com/BurntSushi/ripgrep",
|
||||
"license": "MIT",
|
||||
"licenseDetail": [
|
||||
"The MIT License (MIT)",
|
||||
"",
|
||||
"Copyright (c) 2015 Andrew Gallant",
|
||||
"",
|
||||
"Permission is hereby granted, free of charge, to any person obtaining a copy of",
|
||||
"this software and associated documentation files (the \"Software\"), to deal in",
|
||||
"the Software without restriction, including without limitation the rights to",
|
||||
"use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies",
|
||||
"of the Software, and to permit persons to whom the Software is furnished to do",
|
||||
"so, subject to the following conditions:",
|
||||
"",
|
||||
"The above copyright notice and this permission notice shall be included in all",
|
||||
"copies or substantial portions of the Software.",
|
||||
"",
|
||||
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
|
||||
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
|
||||
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
|
||||
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
|
||||
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,",
|
||||
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE",
|
||||
"SOFTWARE."
|
||||
],
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"isLicense": true,
|
||||
"name": "jschardet",
|
||||
"repositoryURL": "https://github.com/aadsm/jschardet",
|
||||
"license": "LGPL",
|
||||
"licenseDetail": [
|
||||
"Chardet was originally ported from C++ by Mark Pilgrim. It is now maintained",
|
||||
" by Dan Blanchard and Ian Cordasco, and was formerly maintained by Erik Rose.",
|
||||
" JSChardet was ported from python to JavaScript by António Afonso ",
|
||||
" (https://github.com/aadsm/jschardet) and transformed into an npm package by ",
|
||||
"Markus Ast (https://github.com/brainafk)",
|
||||
"",
|
||||
"GNU LESSER GENERAL PUBLIC LICENSE",
|
||||
"\t\t Version 2.1, February 1999",
|
||||
"",
|
||||
" Copyright (C) 1991,",
|
||||
"1999 Free Software Foundation, Inc.",
|
||||
" 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA",
|
||||
" Everyone is permitted to copy and distribute verbatim copies",
|
||||
" of this license document, but changing it is not allowed.",
|
||||
"",
|
||||
"[This is the first released version of the Lesser GPL. It also counts",
|
||||
" as the successor of the GNU Library Public License, version 2, hence",
|
||||
" the version number 2.1.",
|
||||
"]",
|
||||
"",
|
||||
"\t\t\t Preamble",
|
||||
"",
|
||||
" The licenses for most software are designed to take away your",
|
||||
"freedom to share and change it. By contrast, the GNU General Public",
|
||||
"Licenses are intended to guarantee your freedom to share and change",
|
||||
"free software--to make sure the software is free for all its users.",
|
||||
"",
|
||||
" This license, the Lesser General Public License, applies to some",
|
||||
"specially designated software packages--typically libraries--of the",
|
||||
"Free Software Foundation and other authors who decide to use it. You",
|
||||
"can use it too, but we suggest you first think carefully about whether",
|
||||
"this license or the ordinary General Public License is the better",
|
||||
"strategy to use in any particular case, based on the explanations below.",
|
||||
"",
|
||||
" When we speak of free software, we are referring to freedom of use,",
|
||||
"not price. Our General Public Licenses are designed to make sure that",
|
||||
"you have the freedom to distribute copies of free software (and charge",
|
||||
"for this service if you wish); that you receive source code or can get",
|
||||
"it if you want it; that you can change the software and use pieces of",
|
||||
"it in new free programs; and that you are informed that you can do",
|
||||
"these things.",
|
||||
"",
|
||||
" To protect your rights, we need to make restrictions that forbid",
|
||||
"distributors to deny you these rights or to ask you to surrender these",
|
||||
"rights. These restrictions translate to certain responsibilities for",
|
||||
"you if you distribute copies of the library or if you modify it.",
|
||||
"",
|
||||
" For example, if you distribute copies of the library, whether gratis",
|
||||
"or for a fee, you must give the recipients all the rights that we gave",
|
||||
"you. You must make sure that they, too, receive or can get the source",
|
||||
"code. If you link other code with the library, you must provide",
|
||||
"complete object files to the recipients, so that they can relink them",
|
||||
"with the library after making changes to the library and recompiling",
|
||||
"it. And you must show them these terms so they know their rights.",
|
||||
"",
|
||||
" We protect your rights with a two-step method: (1) we copyright the",
|
||||
"library, and (2) we offer you this license, which gives you legal",
|
||||
"permission to copy, distribute and/or modify the library.",
|
||||
"",
|
||||
" To protect each distributor, we want to make it very clear that",
|
||||
"there is no warranty for the free library. Also, if the library is",
|
||||
"modified by someone else and passed on, the recipients should know",
|
||||
"that what they have is not the original version, so that the original",
|
||||
"author's reputation will not be affected by problems that might be",
|
||||
"introduced by others.",
|
||||
"",
|
||||
" Finally, software patents pose a constant threat to the existence of",
|
||||
"any free program. We wish to make sure that a company cannot",
|
||||
"effectively restrict the users of a free program by obtaining a",
|
||||
"restrictive license from a patent holder. Therefore, we insist that",
|
||||
"any patent license obtained for a version of the library must be",
|
||||
"consistent with the full freedom of use specified in this license.",
|
||||
"",
|
||||
" Most GNU software, including some libraries, is covered by the",
|
||||
"ordinary GNU General Public License. This license, the GNU Lesser",
|
||||
"General Public License, applies to certain designated libraries, and",
|
||||
"is quite different from the ordinary General Public License. We use",
|
||||
"this license for certain libraries in order to permit linking those",
|
||||
"libraries into non-free programs.",
|
||||
"",
|
||||
" When a program is linked with a library, whether statically or using",
|
||||
"a shared library, the combination of the two is legally speaking a",
|
||||
"combined work, a derivative of the original library. The ordinary",
|
||||
"General Public License therefore permits such linking only if the",
|
||||
"entire combination fits its criteria of freedom. The Lesser General",
|
||||
"Public License permits more lax criteria for linking other code with",
|
||||
"the library.",
|
||||
"",
|
||||
" We call this license the \"Lesser\" General Public License because it",
|
||||
"does Less to protect the user's freedom than the ordinary General",
|
||||
"Public License. It also provides other free software developers Less",
|
||||
"of an advantage over competing non-free programs. These disadvantages",
|
||||
"are the reason we use the ordinary General Public License for many",
|
||||
"libraries. However, the Lesser license provides advantages in certain",
|
||||
"special circumstances.",
|
||||
"",
|
||||
" For example, on rare occasions, there may be a special need to",
|
||||
"encourage the widest possible use of a certain library, so that it becomes",
|
||||
"a de-facto standard. To achieve this, non-free programs must be",
|
||||
"allowed to use the library. A more frequent case is that a free",
|
||||
"library does the same job as widely used non-free libraries. In this",
|
||||
"case, there is little to gain by limiting the free library to free",
|
||||
"software only, so we use the Lesser General Public License.",
|
||||
"",
|
||||
" In other cases, permission to use a particular library in non-free",
|
||||
"programs enables a greater number of people to use a large body of",
|
||||
"free software. For example, permission to use the GNU C Library in",
|
||||
"non-free programs enables many more people to use the whole GNU",
|
||||
"operating system, as well as its variant, the GNU/Linux operating",
|
||||
"system.",
|
||||
"",
|
||||
" Although the Lesser General Public License is Less protective of the",
|
||||
"users' freedom, it does ensure that the user of a program that is",
|
||||
"linked with the Library has the freedom and the wherewithal to run",
|
||||
"that program using a modified version of the Library.",
|
||||
"",
|
||||
" The precise terms and conditions for copying, distribution and",
|
||||
"modification follow. Pay close attention to the difference between a",
|
||||
"\"work based on the library\" and a \"work that uses the library\". The",
|
||||
"former contains code derived from the library, whereas the latter must",
|
||||
"be combined with the library in order to run.",
|
||||
"",
|
||||
"\t\t GNU LESSER GENERAL PUBLIC LICENSE",
|
||||
" TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION",
|
||||
"",
|
||||
" 0. This License Agreement applies to any software library or other",
|
||||
"program which contains a notice placed by the copyright holder or",
|
||||
"other authorized party saying it may be distributed under the terms of",
|
||||
"this Lesser General Public License (also called \"this License\").",
|
||||
"Each licensee is addressed as \"you\".",
|
||||
"",
|
||||
" A \"library\" means a collection of software functions and/or data",
|
||||
"prepared so as to be conveniently linked with application programs",
|
||||
"(which use some of those functions and data) to form executables.",
|
||||
"",
|
||||
" The \"Library\", below, refers to any such software library or work",
|
||||
"which has been distributed under these terms. A \"work based on the",
|
||||
"Library\" means either the Library or any derivative work under",
|
||||
"copyright law: that is to say, a work containing the Library or a",
|
||||
"portion of it, either verbatim or with modifications and/or translated",
|
||||
"straightforwardly into another language. (Hereinafter, translation is",
|
||||
"included without limitation in the term \"modification\".)",
|
||||
"",
|
||||
" \"Source code\" for a work means the preferred form of the work for",
|
||||
"making modifications to it. For a library, complete source code means",
|
||||
"all the source code for all modules it contains, plus any associated",
|
||||
"interface definition files, plus the scripts used to control compilation",
|
||||
"and installation of the library.",
|
||||
"",
|
||||
" Activities other than copying, distribution and modification are not",
|
||||
"covered by this License; they are outside its scope. The act of",
|
||||
"running a program using the Library is not restricted, and output from",
|
||||
"such a program is covered only if its contents constitute a work based",
|
||||
"on the Library (independent of the use of the Library in a tool for",
|
||||
"writing it). Whether that is true depends on what the Library does",
|
||||
"and what the program that uses the Library does.",
|
||||
"",
|
||||
" 1. You may copy and distribute verbatim copies of the Library's",
|
||||
"complete source code as you receive it, in any medium, provided that",
|
||||
"you conspicuously and appropriately publish on each copy an",
|
||||
"appropriate copyright notice and disclaimer of warranty; keep intact",
|
||||
"all the notices that refer to this License and to the absence of any",
|
||||
"warranty; and distribute a copy of this License along with the",
|
||||
"Library.",
|
||||
"",
|
||||
" You may charge a fee for the physical act of transferring a copy,",
|
||||
"and you may at your option offer warranty protection in exchange for a",
|
||||
"fee.",
|
||||
"",
|
||||
" 2. You may modify your copy or copies of the Library or any portion",
|
||||
"of it, thus forming a work based on the Library, and copy and",
|
||||
"distribute such modifications or work under the terms of Section 1",
|
||||
"above, provided that you also meet all of these conditions:",
|
||||
"",
|
||||
" a) The modified work must itself be a software library.",
|
||||
"",
|
||||
" b) You must cause the files modified to carry prominent notices",
|
||||
" stating that you changed the files and the date of any change.",
|
||||
"",
|
||||
" c) You must cause the whole of the work to be licensed at no",
|
||||
" charge to all third parties under the terms of this License.",
|
||||
"",
|
||||
" d) If a facility in the modified Library refers to a function or a",
|
||||
" table of data to be supplied by an application program that uses",
|
||||
" the facility, other than as an argument passed when the facility",
|
||||
" is invoked, then you must make a good faith effort to ensure that,",
|
||||
" in the event an application does not supply such function or",
|
||||
" table, the facility still operates, and performs whatever part of",
|
||||
" its purpose remains meaningful.",
|
||||
"",
|
||||
" (For example, a function in a library to compute square roots has",
|
||||
" a purpose that is entirely well-defined independent of the",
|
||||
" application. Therefore, Subsection 2d requires that any",
|
||||
" application-supplied function or table used by this function must",
|
||||
" be optional: if the application does not supply it, the square",
|
||||
" root function must still compute square roots.)",
|
||||
"",
|
||||
"These requirements apply to the modified work as a whole. If",
|
||||
"identifiable sections of that work are not derived from the Library,",
|
||||
"and can be reasonably considered independent and separate works in",
|
||||
"themselves, then this License, and its terms, do not apply to those",
|
||||
"sections when you distribute them as separate works. But when you",
|
||||
"distribute the same sections as part of a whole which is a work based",
|
||||
"on the Library, the distribution of the whole must be on the terms of",
|
||||
"this License, whose permissions for other licensees extend to the",
|
||||
"entire whole, and thus to each and every part regardless of who wrote",
|
||||
"it.",
|
||||
"",
|
||||
"Thus, it is not the intent of this section to claim rights or contest",
|
||||
"your rights to work written entirely by you; rather, the intent is to",
|
||||
"exercise the right to control the distribution of derivative or",
|
||||
"collective works based on the Library.",
|
||||
"",
|
||||
"In addition, mere aggregation of another work not based on the Library",
|
||||
"with the Library (or with a work based on the Library) on a volume of",
|
||||
"a storage or distribution medium does not bring the other work under",
|
||||
"the scope of this License.",
|
||||
"",
|
||||
" 3. You may opt to apply the terms of the ordinary GNU General Public",
|
||||
"License instead of this License to a given copy of the Library. To do",
|
||||
"this, you must alter all the notices that refer to this License, so",
|
||||
"that they refer to the ordinary GNU General Public License, version 2,",
|
||||
"instead of to this License. (If a newer version than version 2 of the",
|
||||
"ordinary GNU General Public License has appeared, then you can specify",
|
||||
"that version instead if you wish.) Do not make any other change in",
|
||||
"these notices.",
|
||||
"",
|
||||
" Once this change is made in a given copy, it is irreversible for",
|
||||
"that copy, so the ordinary GNU General Public License applies to all",
|
||||
"subsequent copies and derivative works made from that copy.",
|
||||
"",
|
||||
" This option is useful when you wish to copy part of the code of",
|
||||
"the Library into a program that is not a library.",
|
||||
"",
|
||||
" 4. You may copy and distribute the Library (or a portion or",
|
||||
"derivative of it, under Section 2) in object code or executable form",
|
||||
"under the terms of Sections 1 and 2 above provided that you accompany",
|
||||
"it with the complete corresponding machine-readable source code, which",
|
||||
"must be distributed under the terms of Sections 1 and 2 above on a",
|
||||
"medium customarily used for software interchange.",
|
||||
"",
|
||||
" If distribution of object code is made by offering access to copy",
|
||||
"from a designated place, then offering equivalent access to copy the",
|
||||
"source code from the same place satisfies the requirement to",
|
||||
"distribute the source code, even though third parties are not",
|
||||
"compelled to copy the source along with the object code.",
|
||||
"",
|
||||
" 5. A program that contains no derivative of any portion of the",
|
||||
"Library, but is designed to work with the Library by being compiled or",
|
||||
"linked with it, is called a \"work that uses the Library\". Such a",
|
||||
"work, in isolation, is not a derivative work of the Library, and",
|
||||
"therefore falls outside the scope of this License.",
|
||||
"",
|
||||
" However, linking a \"work that uses the Library\" with the Library",
|
||||
"creates an executable that is a derivative of the Library (because it",
|
||||
"contains portions of the Library), rather than a \"work that uses the",
|
||||
"library\". The executable is therefore covered by this License.",
|
||||
"Section 6 states terms for distribution of such executables.",
|
||||
"",
|
||||
" When a \"work that uses the Library\" uses material from a header file",
|
||||
"that is part of the Library, the object code for the work may be a",
|
||||
"derivative work of the Library even though the source code is not.",
|
||||
"Whether this is true is especially significant if the work can be",
|
||||
"linked without the Library, or if the work is itself a library. The",
|
||||
"threshold for this to be true is not precisely defined by law.",
|
||||
"",
|
||||
" If such an object file uses only numerical parameters, data",
|
||||
"structure layouts and accessors, and small macros and small inline",
|
||||
"functions (ten lines or less in length), then the use of the object",
|
||||
"file is unrestricted, regardless of whether it is legally a derivative",
|
||||
"work. (Executables containing this object code plus portions of the",
|
||||
"Library will still fall under Section 6.)",
|
||||
"",
|
||||
" Otherwise, if the work is a derivative of the Library, you may",
|
||||
"distribute the object code for the work under the terms of Section 6.",
|
||||
"Any executables containing that work also fall under Section 6,",
|
||||
"whether or not they are linked directly with the Library itself.",
|
||||
"",
|
||||
" 6. As an exception to the Sections above, you may also combine or",
|
||||
"link a \"work that uses the Library\" with the Library to produce a",
|
||||
"work containing portions of the Library, and distribute that work",
|
||||
"under terms of your choice, provided that the terms permit",
|
||||
"modification of the work for the customer's own use and reverse",
|
||||
"engineering for debugging such modifications.",
|
||||
"",
|
||||
" You must give prominent notice with each copy of the work that the",
|
||||
"Library is used in it and that the Library and its use are covered by",
|
||||
"this License. You must supply a copy of this License. If the work",
|
||||
"during execution displays copyright notices, you must include the",
|
||||
"copyright notice for the Library among them, as well as a reference",
|
||||
"directing the user to the copy of this License. Also, you must do one",
|
||||
"of these things:",
|
||||
"",
|
||||
" a) Accompany the work with the complete corresponding",
|
||||
" machine-readable source code for the Library including whatever",
|
||||
" changes were used in the work (which must be distributed under",
|
||||
" Sections 1 and 2 above); and, if the work is an executable linked",
|
||||
" with the Library, with the complete machine-readable \"work that",
|
||||
" uses the Library\", as object code and/or source code, so that the",
|
||||
" user can modify the Library and then relink to produce a modified",
|
||||
" executable containing the modified Library. (It is understood",
|
||||
" that the user who changes the contents of definitions files in the",
|
||||
" Library will not necessarily be able to recompile the application",
|
||||
" to use the modified definitions.)",
|
||||
"",
|
||||
" b) Use a suitable shared library mechanism for linking with the",
|
||||
" Library. A suitable mechanism is one that (1) uses at run time a",
|
||||
" copy of the library already present on the user's computer system,",
|
||||
" rather than copying library functions into the executable, and (2)",
|
||||
" will operate properly with a modified version of the library, if",
|
||||
" the user installs one, as long as the modified version is",
|
||||
" interface-compatible with the version that the work was made with.",
|
||||
"",
|
||||
" c) Accompany the work with a written offer, valid for at",
|
||||
" least three years, to give the same user the materials",
|
||||
" specified in Subsection 6a, above, for a charge no more",
|
||||
" than the cost of performing this distribution.",
|
||||
"",
|
||||
" d) If distribution of the work is made by offering access to copy",
|
||||
" from a designated place, offer equivalent access to copy the above",
|
||||
" specified materials from the same place.",
|
||||
"",
|
||||
" e) Verify that the user has already received a copy of these",
|
||||
" materials or that you have already sent this user a copy.",
|
||||
"",
|
||||
" For an executable, the required form of the \"work that uses the",
|
||||
"Library\" must include any data and utility programs needed for",
|
||||
"reproducing the executable from it. However, as a special exception,",
|
||||
"the materials to be distributed need not include anything that is",
|
||||
"normally distributed (in either source or binary form) with the major",
|
||||
"components (compiler, kernel, and so on) of the operating system on",
|
||||
"which the executable runs, unless that component itself accompanies",
|
||||
"the executable.",
|
||||
"",
|
||||
" It may happen that this requirement contradicts the license",
|
||||
"restrictions of other proprietary libraries that do not normally",
|
||||
"accompany the operating system. Such a contradiction means you cannot",
|
||||
"use both them and the Library together in an executable that you",
|
||||
"distribute.",
|
||||
"",
|
||||
" 7. You may place library facilities that are a work based on the",
|
||||
"Library side-by-side in a single library together with other library",
|
||||
"facilities not covered by this License, and distribute such a combined",
|
||||
"library, provided that the separate distribution of the work based on",
|
||||
"the Library and of the other library facilities is otherwise",
|
||||
"permitted, and provided that you do these two things:",
|
||||
"",
|
||||
" a) Accompany the combined library with a copy of the same work",
|
||||
" based on the Library, uncombined with any other library",
|
||||
" facilities. This must be distributed under the terms of the",
|
||||
" Sections above.",
|
||||
"",
|
||||
" b) Give prominent notice with the combined library of the fact",
|
||||
" that part of it is a work based on the Library, and explaining",
|
||||
" where to find the accompanying uncombined form of the same work.",
|
||||
"",
|
||||
" 8. You may not copy, modify, sublicense, link with, or distribute",
|
||||
"the Library except as expressly provided under this License. Any",
|
||||
"attempt otherwise to copy, modify, sublicense, link with, or",
|
||||
"distribute the Library is void, and will automatically terminate your",
|
||||
"rights under this License. However, parties who have received copies,",
|
||||
"or rights, from you under this License will not have their licenses",
|
||||
"terminated so long as such parties remain in full compliance.",
|
||||
"",
|
||||
" 9. You are not required to accept this License, since you have not",
|
||||
"signed it. However, nothing else grants you permission to modify or",
|
||||
"distribute the Library or its derivative works. These actions are",
|
||||
"prohibited by law if you do not accept this License. Therefore, by",
|
||||
"modifying or distributing the Library (or any work based on the",
|
||||
"Library), you indicate your acceptance of this License to do so, and",
|
||||
"all its terms and conditions for copying, distributing or modifying",
|
||||
"the Library or works based on it.",
|
||||
"",
|
||||
" 10. Each time you redistribute the Library (or any work based on the",
|
||||
"Library), the recipient automatically receives a license from the",
|
||||
"original licensor to copy, distribute, link with or modify the Library",
|
||||
"subject to these terms and conditions. You may not impose any further",
|
||||
"restrictions on the recipients' exercise of the rights granted herein.",
|
||||
"You are not responsible for enforcing compliance by third parties with",
|
||||
"this License.",
|
||||
"",
|
||||
" 11. If, as a consequence of a court judgment or allegation of patent",
|
||||
"infringement or for any other reason (not limited to patent issues),",
|
||||
"conditions are imposed on you (whether by court order, agreement or",
|
||||
"otherwise) that contradict the conditions of this License, they do not",
|
||||
"excuse you from the conditions of this License. If you cannot",
|
||||
"distribute so as to satisfy simultaneously your obligations under this",
|
||||
"License and any other pertinent obligations, then as a consequence you",
|
||||
"may not distribute the Library at all. For example, if a patent",
|
||||
"license would not permit royalty-free redistribution of the Library by",
|
||||
"all those who receive copies directly or indirectly through you, then",
|
||||
"the only way you could satisfy both it and this License would be to",
|
||||
"refrain entirely from distribution of the Library.",
|
||||
"",
|
||||
"If any portion of this section is held invalid or unenforceable under any",
|
||||
"particular circumstance, the balance of the section is intended to apply,",
|
||||
"and the section as a whole is intended to apply in other circumstances.",
|
||||
"",
|
||||
"It is not the purpose of this section to induce you to infringe any",
|
||||
"patents or other property right claims or to contest validity of any",
|
||||
"such claims; this section has the sole purpose of protecting the",
|
||||
"integrity of the free software distribution system which is",
|
||||
"implemented by public license practices. Many people have made",
|
||||
"generous contributions to the wide range of software distributed",
|
||||
"through that system in reliance on consistent application of that",
|
||||
"system; it is up to the author/donor to decide if he or she is willing",
|
||||
"to distribute software through any other system and a licensee cannot",
|
||||
"impose that choice.",
|
||||
"",
|
||||
"This section is intended to make thoroughly clear what is believed to",
|
||||
"be a consequence of the rest of this License.",
|
||||
"",
|
||||
" 12. If the distribution and/or use of the Library is restricted in",
|
||||
"certain countries either by patents or by copyrighted interfaces, the",
|
||||
"original copyright holder who places the Library under this License may add",
|
||||
"an explicit geographical distribution limitation excluding those countries,",
|
||||
"so that distribution is permitted only in or among countries not thus",
|
||||
"excluded. In such case, this License incorporates the limitation as if",
|
||||
"written in the body of this License.",
|
||||
"",
|
||||
" 13. The Free Software Foundation may publish revised and/or new",
|
||||
"versions of the Lesser General Public License from time to time.",
|
||||
"Such new versions will be similar in spirit to the present version,",
|
||||
"but may differ in detail to address new problems or concerns.",
|
||||
"",
|
||||
"Each version is given a distinguishing version number. If the Library",
|
||||
"specifies a version number of this License which applies to it and",
|
||||
"\"any later version\", you have the option of following the terms and",
|
||||
"conditions either of that version or of any later version published by",
|
||||
"the Free Software Foundation. If the Library does not specify a",
|
||||
"license version number, you may choose any version ever published by",
|
||||
"the Free Software Foundation.",
|
||||
"",
|
||||
" 14. If you wish to incorporate parts of the Library into other free",
|
||||
"programs whose distribution conditions are incompatible with these,",
|
||||
"write to the author to ask for permission. For software which is",
|
||||
"copyrighted by the Free Software Foundation, write to the Free",
|
||||
"Software Foundation; we sometimes make exceptions for this. Our",
|
||||
"decision will be guided by the two goals of preserving the free status",
|
||||
"of all derivatives of our free software and of promoting the sharing",
|
||||
"and reuse of software generally.",
|
||||
"",
|
||||
"\t\t\t NO WARRANTY",
|
||||
"",
|
||||
" 15. BECAUSE THE LIBRARY IS LICENSED FREE OF CHARGE, THERE IS NO",
|
||||
"WARRANTY FOR THE LIBRARY, TO THE EXTENT PERMITTED BY APPLICABLE LAW.",
|
||||
"EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR",
|
||||
"OTHER PARTIES PROVIDE THE LIBRARY \"AS IS\" WITHOUT WARRANTY OF ANY",
|
||||
"KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE",
|
||||
"IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR",
|
||||
"PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE",
|
||||
"LIBRARY IS WITH YOU. SHOULD THE LIBRARY PROVE DEFECTIVE, YOU ASSUME",
|
||||
"THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.",
|
||||
"",
|
||||
" 16. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN",
|
||||
"WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY",
|
||||
"AND/OR REDISTRIBUTE THE LIBRARY AS PERMITTED ABOVE, BE LIABLE TO YOU",
|
||||
"FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR",
|
||||
"CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE",
|
||||
"LIBRARY (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING",
|
||||
"RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A",
|
||||
"FAILURE OF THE LIBRARY TO OPERATE WITH ANY OTHER SOFTWARE), EVEN IF",
|
||||
"SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH",
|
||||
"DAMAGES.",
|
||||
"",
|
||||
"\t\t END OF TERMS AND CONDITIONS",
|
||||
"",
|
||||
" How to Apply These Terms to Your New Libraries",
|
||||
"",
|
||||
" If you develop a new library, and you want it to be of the greatest",
|
||||
"possible use to the public, we recommend making it free software that",
|
||||
"everyone can redistribute and change. You can do so by permitting",
|
||||
"redistribution under these terms (or, alternatively, under the terms of the",
|
||||
"ordinary General Public License).",
|
||||
"",
|
||||
" To apply these terms, attach the following notices to the library. It is",
|
||||
"safest to attach them to the start of each source file to most effectively",
|
||||
"convey the exclusion of warranty; and each file should have at least the",
|
||||
"\"copyright\" line and a pointer to where the full notice is found.",
|
||||
"",
|
||||
" <one line to give the library's name and a brief idea of what it does.>",
|
||||
" Copyright (C) <year> <name of author>",
|
||||
"",
|
||||
" This library is free software; you can redistribute it and/or",
|
||||
" modify it under the terms of the GNU Lesser General Public",
|
||||
" License as published by the Free Software Foundation; either",
|
||||
" version 2.1 of the License, or (at your option) any later version.",
|
||||
"",
|
||||
" This library is distributed in the hope that it will be useful,",
|
||||
" but WITHOUT ANY WARRANTY; without even the implied warranty of",
|
||||
" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU",
|
||||
" Lesser General Public License for more details.",
|
||||
"",
|
||||
" You should have received a copy of the GNU Lesser General Public",
|
||||
" License along with this library; if not, write to the Free Software",
|
||||
" Foundation, Inc.,",
|
||||
"51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA",
|
||||
"",
|
||||
"Also add information on how to contact you by electronic and paper mail.",
|
||||
"",
|
||||
"You should also get your employer (if you work as a programmer) or your",
|
||||
"school, if any, to sign a \"copyright disclaimer\" for the library, if",
|
||||
"necessary. Here is a sample; alter the names:",
|
||||
"",
|
||||
" Yoyodyne, Inc., hereby disclaims all copyright interest in the",
|
||||
" library `Frob' (a library for tweaking knobs) written by James Random Hacker.",
|
||||
"",
|
||||
" <signature of Ty Coon>,",
|
||||
"1 April 1990",
|
||||
" Ty Coon, President of Vice",
|
||||
"",
|
||||
"That's all there is to it!"
|
||||
],
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"isLicense": true,
|
||||
"name": "@types/node",
|
||||
"repositoryURL": "https://www.github.com/DefinitelyTyped/DefinitelyTyped",
|
||||
"license": "MIT",
|
||||
"licenseDetail": [
|
||||
"This project is licensed under the MIT license.",
|
||||
"Copyrights are respective of each contributor listed at the beginning of each definition file.",
|
||||
"",
|
||||
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:",
|
||||
"",
|
||||
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
|
||||
"",
|
||||
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
|
||||
],
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"isLicense": true,
|
||||
"name": "jsonfile",
|
||||
"repositoryURL": "https+ssh://git@github.com/jprichardson/node-jsonfile",
|
||||
"license": "MIT",
|
||||
"licenseDetail": [
|
||||
"(The MIT License)",
|
||||
"",
|
||||
"Copyright (c) 2012-2015, JP Richardson <jprichardson@gmail.com>",
|
||||
"",
|
||||
"Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files",
|
||||
"(the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify,",
|
||||
" merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is",
|
||||
" furnished to do so, subject to the following conditions:",
|
||||
"",
|
||||
"The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.",
|
||||
"",
|
||||
"THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE",
|
||||
"WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS",
|
||||
"OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,",
|
||||
" ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE."
|
||||
],
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"isLicense": true,
|
||||
"name": "string_decoder",
|
||||
"repositoryURL": "https://github.com/rvagg/string_decoder",
|
||||
"license": "MIT",
|
||||
"licenseDetail": [
|
||||
"The MIT License (MIT)",
|
||||
"",
|
||||
"Node.js is licensed for use as follows:",
|
||||
"",
|
||||
"\"\"\"",
|
||||
"Copyright Node.js contributors. All rights reserved.",
|
||||
"",
|
||||
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
||||
"of this software and associated documentation files (the \"Software\"), to",
|
||||
"deal in the Software without restriction, including without limitation the",
|
||||
"rights to use, copy, modify, merge, publish, distribute, sublicense, and/or",
|
||||
"sell copies of the Software, and to permit persons to whom the Software is",
|
||||
"furnished to do so, subject to the following conditions:",
|
||||
"",
|
||||
"The above copyright notice and this permission notice shall be included in",
|
||||
"all copies or substantial portions of the Software.",
|
||||
"",
|
||||
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
|
||||
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
|
||||
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
|
||||
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
|
||||
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
|
||||
"FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS",
|
||||
"IN THE SOFTWARE.",
|
||||
"\"\"\"",
|
||||
"",
|
||||
"This license applies to parts of Node.js originating from the",
|
||||
"https://github.com/joyent/node repository:",
|
||||
"",
|
||||
"\"\"\"",
|
||||
"Copyright Joyent, Inc. and other Node contributors. All rights reserved.",
|
||||
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
||||
"of this software and associated documentation files (the \"Software\"), to",
|
||||
"deal in the Software without restriction, including without limitation the",
|
||||
"rights to use, copy, modify, merge, publish, distribute, sublicense, and/or",
|
||||
"sell copies of the Software, and to permit persons to whom the Software is",
|
||||
"furnished to do so, subject to the following conditions:",
|
||||
"",
|
||||
"The above copyright notice and this permission notice shall be included in",
|
||||
"all copies or substantial portions of the Software.",
|
||||
"",
|
||||
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
|
||||
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
|
||||
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
|
||||
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
|
||||
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING",
|
||||
"FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS",
|
||||
"IN THE SOFTWARE.",
|
||||
"\"\"\""
|
||||
],
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"name": "spdlog original",
|
||||
"version": "0.14.0",
|
||||
"repositoryURL": "https://github.com/gabime/spdlog",
|
||||
"license": "MIT",
|
||||
"isProd": true
|
||||
},
|
||||
{
|
||||
"isLicense": true,
|
||||
"name": "spdlog",
|
||||
"version": "0.14.0",
|
||||
"repositoryURL": "https://github.com/gabime/spdlog",
|
||||
"license": "MIT",
|
||||
"licenseDetail": [
|
||||
"MIT License",
|
||||
"",
|
||||
"Copyright (c) Microsoft Corporation. All rights reserved.",
|
||||
"",
|
||||
"Permission is hereby granted, free of charge, to any person obtaining a copy",
|
||||
"of this software and associated documentation files (the \"Software\"), to deal",
|
||||
"in the Software without restriction, including without limitation the rights",
|
||||
"to use, copy, modify, merge, publish, distribute, sublicense, and/or sell",
|
||||
"copies of the Software, and to permit persons to whom the Software is",
|
||||
"furnished to do so, subject to the following conditions:",
|
||||
"",
|
||||
"The above copyright notice and this permission notice shall be included in all",
|
||||
"copies or substantial portions of the Software.",
|
||||
"",
|
||||
"THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR",
|
||||
"IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,",
|
||||
"FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE",
|
||||
"AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER",
|
||||
"LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,",
|
||||
"OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE",
|
||||
"SOFTWARE"
|
||||
]
|
||||
}
|
||||
]
|
||||
124
README.md
124
README.md
@@ -1,23 +1,36 @@
|
||||
# SQL Operations Studio
|
||||
# Azure Data Studio
|
||||
|
||||
SQL Operations Studio is a data management tool that enables you to work with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.
|
||||
[](https://gitter.im/Microsoft/sqlopsstudio?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)
|
||||
[](https://dev.azure.com/azuredatastudio/azuredatastudio/_build/latest?definitionId=4&branchName=main)
|
||||
[](https://twitter.com/azuredatastudio)
|
||||
|
||||
**Download SQL Operations Studio January Public Preview**
|
||||
Azure Data Studio is a data management tool that enables you to work with SQL Server, Azure SQL DB and SQL DW from Windows, macOS and Linux.
|
||||
|
||||
Platform | Link
|
||||
-- | --
|
||||
Windows Setup Installer | https://go.microsoft.com/fwlink/?linkid=866480
|
||||
Windows ZIP | https://go.microsoft.com/fwlink/?linkid=866479
|
||||
macOS ZIP | https://go.microsoft.com/fwlink/?linkid=866481
|
||||
Linux TAR.GZ | https://go.microsoft.com/fwlink/?linkid=866482
|
||||
Linux DEB | https://go.microsoft.com/fwlink/?linkid=866484
|
||||
Linux RPM | https://go.microsoft.com/fwlink/?linkid=866483
|
||||
## **Download the latest Azure Data Studio release**
|
||||
|
||||
Go to our [download page](https://aka.ms/sqlopsstudio) for more specific instructions.
|
||||
| Platform |
|
||||
| --------------------------------------- |
|
||||
| [Windows User Installer][win-user] |
|
||||
| [Windows System Installer][win-system] |
|
||||
| [Windows ZIP][win-zip] |
|
||||
| [macOS ZIP][osx-zip] |
|
||||
| [Linux TAR.GZ][linux-zip] |
|
||||
| [Linux RPM][linux-rpm] |
|
||||
| [Linux DEB][linux-deb] |
|
||||
|
||||
Try out the latest insiders build from `master` at https://github.com/Microsoft/sqlopsstudio/releases.
|
||||
|
||||
**Feature Highlights**
|
||||
Go to our [download page](https://aka.ms/azuredatastudio) for more specific instructions.
|
||||
|
||||
## Try out the latest insiders build from `main`:
|
||||
- [Windows User Installer - **Insiders build**](https://azuredatastudio-update.azurewebsites.net/latest/win32-x64-user/insider)
|
||||
- [Windows System Installer - **Insiders build**](https://azuredatastudio-update.azurewebsites.net/latest/win32-x64/insider)
|
||||
- [Windows ZIP - **Insiders build**](https://azuredatastudio-update.azurewebsites.net/latest/win32-x64-archive/insider)
|
||||
- [macOS ZIP - **Insiders build**](https://azuredatastudio-update.azurewebsites.net/latest/darwin/insider)
|
||||
- [Linux TAR.GZ - **Insiders build**](https://azuredatastudio-update.azurewebsites.net/latest/linux-x64/insider)
|
||||
|
||||
See the [change log](https://github.com/Microsoft/azuredatastudio/blob/main/CHANGELOG.md) for additional details of what's in this release.
|
||||
|
||||
## **Feature Highlights**
|
||||
|
||||
- Cross-Platform DB management for Windows, macOS and Linux with simple XCopy deployment
|
||||
- SQL Server Connection Management with Connection Dialog, Server Groups, Azure Integration and Registered Servers
|
||||
@@ -30,27 +43,96 @@ Try out the latest insiders build from `master` at https://github.com/Microsoft/
|
||||
- Task History window to view current task execution status, completion results with error messages and task T-SQL scripting
|
||||
- Scripting support to generate CREATE, SELECT, ALTER and DROP statements for database objects
|
||||
- Workspaces with full Git integration and Find In Files support to managing T-SQL script libraries
|
||||
- Modern light-weight shell with theming, user settings, full screen support, integrated terminal and numerous other features
|
||||
- Modern light-weight shell with theming, user settings, full-screen support, integrated terminal and numerous other features
|
||||
|
||||
Here's some of these features in action.
|
||||
Here are some of these features in action.
|
||||
|
||||
<img src='https://github.com/Microsoft/sqlopsstudio/blob/master/docs/overview_screen.jpg' width='800px'>
|
||||
<img src='https://github.com/Microsoft/azuredatastudio/blob/main/docs/overview_screen.jpg' width='800px'>
|
||||
|
||||
## Contributing
|
||||
If you are interested in fixing issues and contributing directly to the code base,
|
||||
please see the document [How to Contribute](https://github.com/Microsoft/sqlopsstudio/wiki/How-to-Contribute), which covers the following:
|
||||
please see the document [How to Contribute](https://github.com/Microsoft/azuredatastudio/wiki/How-to-Contribute), which covers the following:
|
||||
|
||||
* [How to build and run from source](https://github.com/Microsoft/sqlopsstudio/wiki/How-to-Contribute#Build-and-Run-From-Source)
|
||||
* [The development workflow, including debugging and running tests](https://github.com/Microsoft/sqlopsstudio/wiki/How-to-Contribute#development-workflow)
|
||||
* [Submitting pull requests](https://github.com/Microsoft/sqlopsstudio/wiki/How-to-Contribute#pull-requests)
|
||||
* [How to build and run from source](https://github.com/Microsoft/azuredatastudio/wiki/How-to-Contribute#Build-and-Run-From-Source)
|
||||
* [The development workflow, including debugging and running tests](https://github.com/Microsoft/azuredatastudio/wiki/How-to-Contribute#development-workflow)
|
||||
* [Submitting pull requests](https://github.com/Microsoft/azuredatastudio/wiki/How-to-Contribute#pull-requests)
|
||||
|
||||
This project has adopted the [Microsoft Open Source Code of Conduct](https://opensource.microsoft.com/codeofconduct/). For more information see the [Code of Conduct FAQ](https://opensource.microsoft.com/codeofconduct/faq/) or contact [opencode@microsoft.com](mailto:opencode@microsoft.com) with any additional questions or comments.
|
||||
|
||||
## Localization
|
||||
Azure Data Studio is localized into 10 languages: French, Italian, German, Spanish, Simplified Chinese, Traditional Chinese, Japanese, Korean, Russian, and Portuguese (Brazil). The language packs are available in the Extension Manager marketplace. Simply, search for the specific language using the extension marketplace and install. Once you install the selected language, Azure Data Studio will prompt you to restart with the new language.
|
||||
|
||||
## Privacy Statement
|
||||
The [Microsoft Enterprise and Developer Privacy Statement](https://privacy.microsoft.com/en-us/privacystatement) describes the privacy statement of this software.
|
||||
|
||||
## Contributions and "Thank You"
|
||||
We would like to thank all our users who raised issues, and in particular the following users who helped contribute fixes:
|
||||
|
||||
* eulercamposbarros for `Prevent connections from moving on click (#7528)`
|
||||
* AlexFsmn for `Fixed issue where task icons got hidden if text was too long`
|
||||
* jamesrod817 for `Tempdb (#7022)`
|
||||
* dzsquared for `fix(snippets): ads parenthesis to sqlcreateindex snippet #7020`
|
||||
* devmattrick for `Update row count as updates are received #6642`
|
||||
* mottykohn for `In Message panel onclick scroll to line #6417`
|
||||
* Stevoni for `Corrected Keyboard Shortcut Execution Issue #5480`
|
||||
* yamatoya for `fix the format #4899`
|
||||
* GeoffYoung for `Fix sqlDropColumn description #4422`
|
||||
* AlexFsmn for `Added context menu for DBs in explorer view to backup & restore db. #2277`
|
||||
* sadedil for `Missing feature request: Save as XML #3729`
|
||||
* gbritton1 for `Removed reference to object explorer #3463`
|
||||
* Tarig0 for `Add Routine_Type to CreateStoredProc fixes #3257 (#3286)`
|
||||
* oltruong for `typo fix #3025'`
|
||||
* Thomas-S-B for `Removed unnecessary IErrorDetectionStrategy #749`
|
||||
* Thomas-S-B for `Simplified code #750`
|
||||
* rdaniels6813 for `Add query plan theme support #3031`
|
||||
* Ruturaj123 for `Fixed some typos and grammatical errors #3027`
|
||||
* PromoFaux for `Use emoji shortcodes in CONTRIBUTING.md instead of <20> #3009`
|
||||
* ckaczor for `Fix: DATETIMEOFFSET data types should be ISO formatted #714`
|
||||
* hi-im-T0dd for `Fixed sync issue with my forked master so this commit is correct #2948`
|
||||
* hi-im-T0dd for `Fixed when right clicking and selecting Manage-correct name displays #2794`
|
||||
* philoushka for `center the icon #2760`
|
||||
* anthonypants for `Typo #2775`
|
||||
* kstolte for `Fix Invalid Configuration in Launch.json #2789`
|
||||
* kstolte for `Fixing a reference to SQL Ops Studio #2788`
|
||||
* AlexFsmn `Feature: Ability to add connection name #2332`
|
||||
* AlexFsmn `Disabled connection name input when connecting to a server. #2566`
|
||||
* SebastianPfliegel `Added more saveAsCsv options #2099`
|
||||
* ianychoi `Fixes a typo: Mimunum -> Minimum #1994`
|
||||
* AlexFsmn `Fixed bug where proper file extension wasn't appended to the filename. #2151`
|
||||
* AlexFsmn `Added functionality for adding any file to import wizard #2329`
|
||||
* AlexFsmn `Fixed background issue when copying a chart to clipboard #2215`
|
||||
* AlexFsmn `Fixed problem where vertical charts didn't display labels correctly. #2263`
|
||||
* AlexFsmn `Fixed Initial values for charts to match visuals #2266`
|
||||
* AlexFsmn `Renamed chart option labels #2264`
|
||||
* AlexFsmn `Added feature for the opening file after exporting to CSV/XLS/JSON & query files #2216`
|
||||
* AlexFsmm `Get Connection String should copy to clipboard #2175`
|
||||
* lanceklinger `Fix for double-clicking column handle in results table #1504`
|
||||
* westerncj for `Removed duplicate contribution from README.md (#753)`
|
||||
* ntovas for `Fix for duplicate extensions shown in "Save File" dialog. (#779)`
|
||||
* SebastianPfliegel for `Add cursor snippet (#475)`
|
||||
* mikaoelitiana for the fix: `revert README and CONTRIBUTING after last VSCode merge (#574)`
|
||||
* alextercete for `Reinstate menu item to install from VSIX (#682)`
|
||||
* alextercete for `Fix "No extension gallery service configured" error (#427)`
|
||||
* mwiedemeyer for `Fix #58: Default sort order for DB size widget (#111)`
|
||||
* AlexTroshkin for `Show disconnect in context menu only when connectionProfile connected (#150)`
|
||||
* AlexTroshkin for `Fix #138: Invalid syntax color highlighting (identity not highlighting) (#140))`
|
||||
* stebet for `Fix #153: Fixing sql snippets that failed on a DB with a case-sensitive collation. (#152)`
|
||||
* SebastianPfliegel `Remove sqlExtensionHelp (#312)`
|
||||
* olljanat for `Implemented npm version check (#314)`
|
||||
* Adam Machanic for helping with the `whoisactive` extension
|
||||
|
||||
And of course, we'd like to thank the authors of all upstream dependencies. Please see a full list in the [ThirdPartyNotices.txt](https://raw.githubusercontent.com/Microsoft/azuredatastudio/main/ThirdPartyNotices.txt)
|
||||
|
||||
## License
|
||||
|
||||
Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
|
||||
Licensed under the [Source EULA](LICENSE.txt).
|
||||
|
||||
[win-user]: https://go.microsoft.com/fwlink/?linkid=2132348
|
||||
[win-system]: https://go.microsoft.com/fwlink/?linkid=2132347
|
||||
[win-zip]: https://go.microsoft.com/fwlink/?linkid=2132518
|
||||
[osx-zip]: https://go.microsoft.com/fwlink/?linkid=2132519
|
||||
[linux-zip]: https://go.microsoft.com/fwlink/?linkid=2132349
|
||||
[linux-rpm]: https://go.microsoft.com/fwlink/?linkid=2132351
|
||||
[linux-deb]: https://go.microsoft.com/fwlink/?linkid=2132350
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
MICROSOFT SQL OPERATIONS STUDIO
|
||||
MICROSOFT Azure Data Studio
|
||||
|
||||
THIRD-PARTY SOFTWARE NOTICES AND INFORMATION
|
||||
Do Not Translate or Localize
|
||||
@@ -12,15 +12,19 @@ expressly granted herein, whether by implication, estoppel or otherwise.
|
||||
angular2-grid: https://github.com/BTMorton/angular2-grid
|
||||
angular2-slickgrid: https://github.com/Microsoft/angular2-slickgrid
|
||||
applicationinsights: https://github.com/Microsoft/ApplicationInsights-node.js
|
||||
axios: https://github.com/axios/axios
|
||||
bootstrap: https://github.com/twbs/bootstrap
|
||||
chart.js: https://github.com/Timer/chartjs
|
||||
chokidar: https://github.com/paulmillr/chokidar
|
||||
comment-json: https://github.com/kaelzhang/node-comment-json
|
||||
core-js: https://github.com/zloirock/core-js
|
||||
decompress: https://github.com/kevva/decompress
|
||||
emmet: https://github.com/emmetio/emmet
|
||||
error-ex: https://github.com/Qix-/node-error-ex
|
||||
escape-string-regexp: https://github.com/sindresorhus/escape-string-regexp
|
||||
fast-plist: https://github.com/Microsoft/node-fast-plist
|
||||
figures: https://github.com/sindresorhus/figures
|
||||
find-remove: https://www.npmjs.com/package/find-remove
|
||||
fs-extra: https://github.com/jprichardson/node-fs-extra
|
||||
gc-signals: https://github.com/Microsoft/node-gc-signals
|
||||
getmac: https://github.com/bevry/getmac
|
||||
@@ -33,39 +37,51 @@ expressly granted herein, whether by implication, estoppel or otherwise.
|
||||
jquery-ui: https://github.com/jquery/jquery-ui
|
||||
jquery.event.drag: https://github.com/devongovett/jquery.event.drag
|
||||
jschardet: https://github.com/aadsm/jschardet
|
||||
jupyter-powershell: https://github.com/vors/jupyter-powershell
|
||||
JupyterLab: https://github.com/jupyterlab/jupyterlab
|
||||
keytar: https://github.com/atom/node-keytar
|
||||
make-error: https://github.com/JsCommunity/make-error
|
||||
minimist: https://github.com/substack/minimist
|
||||
moment: https://github.com/moment/moment
|
||||
native-keymap: https://github.com/Microsoft/node-native-keymap
|
||||
native-watchdog: https://github.com/Microsoft/node-native-watchdog
|
||||
ng2-charts: https://github.com/valor-software/ng2-charts
|
||||
node-fetch: https://github.com/bitinn/node-fetch
|
||||
node-pty: https://github.com/Tyriar/node-pty
|
||||
nsfw: https://github.com/Axosoft/nsfw
|
||||
pretty-data: https://github.com/vkiryukhin/pretty-data
|
||||
optimist: https://github.com/substack/node-optimist
|
||||
primeng: https://github.com/primefaces/primeng
|
||||
process-nextick-args: https://github.com/calvinmetcalf/process-nextick-args
|
||||
pty.js: https://github.com/chjj/pty.js
|
||||
qs: https://github.com/ljharb/qs
|
||||
reflect-metadata: https://github.com/rbuckton/reflect-metadata
|
||||
request: https://github.com/request/request
|
||||
rxjs: https://github.com/ReactiveX/RxJS
|
||||
semver: https://github.com/npm/node-semver
|
||||
slickgrid: https://github.com/6pac/SlickGrid
|
||||
sqltoolsservice: https://github.com/Microsoft/sqltoolsservice
|
||||
svg.js: https://github.com/svgdotjs/svg.js
|
||||
systemjs: https://github.com/systemjs/systemjs
|
||||
temp-write: https://github.com/sindresorhus/temp-write
|
||||
underscore: https://github.com/jashkenas/underscore
|
||||
v8-profiler: https://github.com/node-inspector/v8-profiler
|
||||
vscode: https://github.com/microsoft/vscode
|
||||
vscode-debugprotocol: https://github.com/Microsoft/vscode-debugadapter-node
|
||||
vscode-languageclient: https://github.com/Microsoft/vscode-languageserver-node
|
||||
vscode-nls: https://github.com/Microsoft/vscode-nls
|
||||
vscode-ripgrep: https://github.com/roblourens/vscode-ripgrep
|
||||
vscode-textmate: https://github.com/Microsoft/vscode-textmate
|
||||
winreg: https://github.com/fresc81/node-winreg
|
||||
xmldom: https://github.com/xmldom/xmldom
|
||||
xml-formatter: https://github.com/chrisbottin/xml-formatter
|
||||
xterm: https://github.com/sourcelair/xterm.js
|
||||
yargs: https://github.com/yargs/yargs
|
||||
yauzl: https://github.com/thejoshwolfe/yauzl
|
||||
zone.js: https://www.npmjs.com/package/zone
|
||||
|
||||
Microsoft PROSE SDK: https://microsoft.github.io/prose
|
||||
|
||||
%% angular NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
The MIT License
|
||||
|
||||
Copyright (c) 2014-2017 Google, Inc. http://angular.io
|
||||
|
||||
@@ -291,6 +307,20 @@ THE SOFTWARE.
|
||||
=========================================
|
||||
END OF core-js NOTICES AND INFORMATION
|
||||
|
||||
%% decompress NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
MIT License
|
||||
|
||||
Copyright (c) Kevin Mårtensson <kevinmartensson@gmail.com> (github.com/kevva)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
=========================================
|
||||
END OF decompress NOTICES AND INFORMATION
|
||||
|
||||
%% emmet NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
The MIT License (MIT)
|
||||
@@ -320,32 +350,6 @@ END OF emmet NOTICES AND INFORMATION
|
||||
=========================================
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2015 JD Ballard
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
=========================================
|
||||
END OF error-ex NOTICES AND INFORMATION
|
||||
|
||||
%% escape-string-regexp NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
@@ -392,6 +396,20 @@ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEAL
|
||||
=========================================
|
||||
END OF fast-plist NOTICES AND INFORMATION
|
||||
|
||||
%% figures NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
MIT License
|
||||
|
||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
=========================================
|
||||
END OF figures NOTICES AND INFORMATION
|
||||
|
||||
%% fs-extra NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
(The MIT License)
|
||||
@@ -1165,6 +1183,71 @@ That's all there is to it!
|
||||
=========================================
|
||||
END OF jschardet NOTICES AND INFORMATION
|
||||
|
||||
%% jupyter-powershell NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 Sergei Vorobev
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
=========================================
|
||||
END OF jupyter-powershell NOTICES AND INFORMATION
|
||||
|
||||
%% JupyterLab NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
Copyright (c) 2015 Project Jupyter Contributors
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
1. Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
2. Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
3. Neither the name of the copyright holder nor the names of its
|
||||
contributors may be used to endorse or promote products derived from
|
||||
this software without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
||||
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
||||
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
|
||||
CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
|
||||
OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
|
||||
OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
Semver File License
|
||||
===================
|
||||
|
||||
The semver.py file is from https://github.com/podhmo/python-semver
|
||||
which is licensed under the "MIT" license. See the semver.py file for details.
|
||||
|
||||
END OF JupyterLab NOTICES AND INFORMATION
|
||||
|
||||
%% make-error NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
ISC © Julien Fontanet
|
||||
@@ -1296,6 +1379,32 @@ SOFTWARE.
|
||||
=========================================
|
||||
END OF ng2-charts NOTICES AND INFORMATION
|
||||
|
||||
%% node-fetch NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2016 David Frank
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
=========================================
|
||||
END OF node-fetch NOTICES AND INFORMATION
|
||||
|
||||
%% node-pty NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
Copyright (c) 2012-2015, Christopher Jeffrey (https://github.com/chjj/)
|
||||
@@ -1346,15 +1455,31 @@ SOFTWARE.
|
||||
=========================================
|
||||
END OF nsfw NOTICES AND INFORMATION
|
||||
|
||||
%% pretty-data NOTICES AND INFORMATION BEGIN HERE
|
||||
%% optimist NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
License: Dual licensed under the MIT and GPL licenses:
|
||||
Copyright 2010 James Halliday (mail@substack.net)
|
||||
|
||||
http://www.opensource.org/licenses/mit-license.php
|
||||
This project is free software released under the MIT/X11 license:
|
||||
|
||||
http://www.gnu.org/licenses/gpl.html
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
=========================================
|
||||
END OF pretty-data NOTICES AND INFORMATION
|
||||
END OF optimist NOTICES AND INFORMATION
|
||||
|
||||
%% primeng NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
@@ -1370,6 +1495,30 @@ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLI
|
||||
=========================================
|
||||
END OF primeng NOTICES AND INFORMATION
|
||||
|
||||
%% process-nextick-args NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
# Copyright (c) 2015 Calvin Metcalf
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
**THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.**
|
||||
=========================================
|
||||
END OF process-nextick-args NOTICES AND INFORMATION
|
||||
|
||||
%% pty.js NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
Copyright (c) 2012-2015, Christopher Jeffrey (https://github.com/chjj/)
|
||||
@@ -1454,6 +1603,66 @@ END OF TERMS AND CONDITIONS
|
||||
=========================================
|
||||
END OF reflect-metadata NOTICES AND INFORMATION
|
||||
|
||||
%% request NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
Apache License
|
||||
|
||||
Version 2.0, January 2004
|
||||
|
||||
http://www.apache.org/licenses/
|
||||
|
||||
TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
|
||||
|
||||
1. Definitions.
|
||||
|
||||
"License" shall mean the terms and conditions for use, reproduction, and distribution as defined by Sections 1 through 9 of this document.
|
||||
|
||||
"Licensor" shall mean the copyright owner or entity authorized by the copyright owner that is granting the License.
|
||||
|
||||
"Legal Entity" shall mean the union of the acting entity and all other entities that control, are controlled by, or are under common control with that entity. For the purposes of this definition, "control" means (i) the power, direct or indirect, to cause the direction or management of such entity, whether by contract or otherwise, or (ii) ownership of fifty percent (50%) or more of the outstanding shares, or (iii) beneficial ownership of such entity.
|
||||
|
||||
"You" (or "Your") shall mean an individual or Legal Entity exercising permissions granted by this License.
|
||||
|
||||
"Source" form shall mean the preferred form for making modifications, including but not limited to software source code, documentation source, and configuration files.
|
||||
|
||||
"Object" form shall mean any form resulting from mechanical transformation or translation of a Source form, including but not limited to compiled object code, generated documentation, and conversions to other media types.
|
||||
|
||||
"Work" shall mean the work of authorship, whether in Source or Object form, made available under the License, as indicated by a copyright notice that is included in or attached to the work (an example is provided in the Appendix below).
|
||||
|
||||
"Derivative Works" shall mean any work, whether in Source or Object form, that is based on (or derived from) the Work and for which the editorial revisions, annotations, elaborations, or other modifications represent, as a whole, an original work of authorship. For the purposes of this License, Derivative Works shall not include works that remain separable from, or merely link (or bind by name) to the interfaces of, the Work and Derivative Works thereof.
|
||||
|
||||
"Contribution" shall mean any work of authorship, including the original version of the Work and any modifications or additions to that Work or Derivative Works thereof, that is intentionally submitted to Licensor for inclusion in the Work by the copyright owner or by an individual or Legal Entity authorized to submit on behalf of the copyright owner. For the purposes of this definition, "submitted" means any form of electronic, verbal, or written communication sent to the Licensor or its representatives, including but not limited to communication on electronic mailing lists, source code control systems, and issue tracking systems that are managed by, or on behalf of, the Licensor for the purpose of discussing and improving the Work, but excluding communication that is conspicuously marked or otherwise designated in writing by the copyright owner as "Not a Contribution."
|
||||
|
||||
"Contributor" shall mean Licensor and any individual or Legal Entity on behalf of whom a Contribution has been received by Licensor and subsequently incorporated within the Work.
|
||||
|
||||
2. Grant of Copyright License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable copyright license to reproduce, prepare Derivative Works of, publicly display, publicly perform, sublicense, and distribute the Work and such Derivative Works in Source or Object form.
|
||||
|
||||
3. Grant of Patent License. Subject to the terms and conditions of this License, each Contributor hereby grants to You a perpetual, worldwide, non-exclusive, no-charge, royalty-free, irrevocable (except as stated in this section) patent license to make, have made, use, offer to sell, sell, import, and otherwise transfer the Work, where such license applies only to those patent claims licensable by such Contributor that are necessarily infringed by their Contribution(s) alone or by combination of their Contribution(s) with the Work to which such Contribution(s) was submitted. If You institute patent litigation against any entity (including a cross-claim or counterclaim in a lawsuit) alleging that the Work or a Contribution incorporated within the Work constitutes direct or contributory patent infringement, then any patent licenses granted to You under this License for that Work shall terminate as of the date such litigation is filed.
|
||||
|
||||
4. Redistribution. You may reproduce and distribute copies of the Work or Derivative Works thereof in any medium, with or without modifications, and in Source or Object form, provided that You meet the following conditions:
|
||||
|
||||
You must give any other recipients of the Work or Derivative Works a copy of this License; and
|
||||
|
||||
You must cause any modified files to carry prominent notices stating that You changed the files; and
|
||||
|
||||
You must retain, in the Source form of any Derivative Works that You distribute, all copyright, patent, trademark, and attribution notices from the Source form of the Work, excluding those notices that do not pertain to any part of the Derivative Works; and
|
||||
|
||||
If the Work includes a "NOTICE" text file as part of its distribution, then any Derivative Works that You distribute must include a readable copy of the attribution notices contained within such NOTICE file, excluding those notices that do not pertain to any part of the Derivative Works, in at least one of the following places: within a NOTICE text file distributed as part of the Derivative Works; within the Source form or documentation, if provided along with the Derivative Works; or, within a display generated by the Derivative Works, if and wherever such third-party notices normally appear. The contents of the NOTICE file are for informational purposes only and do not modify the License. You may add Your own attribution notices within Derivative Works that You distribute, alongside or as an addendum to the NOTICE text from the Work, provided that such additional attribution notices cannot be construed as modifying the License. You may add Your own copyright statement to Your modifications and may provide additional or different license terms and conditions for use, reproduction, or distribution of Your modifications, or for any such Derivative Works as a whole, provided Your use, reproduction, and distribution of the Work otherwise complies with the conditions stated in this License.
|
||||
|
||||
5. Submission of Contributions. Unless You explicitly state otherwise, any Contribution intentionally submitted for inclusion in the Work by You to the Licensor shall be under the terms and conditions of this License, without any additional terms or conditions. Notwithstanding the above, nothing herein shall supersede or modify the terms of any separate license agreement you may have executed with Licensor regarding such Contributions.
|
||||
|
||||
6. Trademarks. This License does not grant permission to use the trade names, trademarks, service marks, or product names of the Licensor, except as required for reasonable and customary use in describing the origin of the Work and reproducing the content of the NOTICE file.
|
||||
|
||||
7. Disclaimer of Warranty. Unless required by applicable law or agreed to in writing, Licensor provides the Work (and each Contributor provides its Contributions) on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied, including, without limitation, any warranties or conditions of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A PARTICULAR PURPOSE. You are solely responsible for determining the appropriateness of using or redistributing the Work and assume any risks associated with Your exercise of permissions under this License.
|
||||
|
||||
8. Limitation of Liability. In no event and under no legal theory, whether in tort (including negligence), contract, or otherwise, unless required by applicable law (such as deliberate and grossly negligent acts) or agreed to in writing, shall any Contributor be liable to You for damages, including any direct, indirect, special, incidental, or consequential damages of any character arising as a result of this License or out of the use or inability to use the Work (including but not limited to damages for loss of goodwill, work stoppage, computer failure or malfunction, or any and all other commercial damages or losses), even if such Contributor has been advised of the possibility of such damages.
|
||||
|
||||
9. Accepting Warranty or Additional Liability. While redistributing the Work or Derivative Works thereof, You may choose to offer, and charge a fee for, acceptance of support, warranty, indemnity, or other liability obligations and/or rights consistent with this License. However, in accepting such obligations, You may act only on Your own behalf and on Your sole responsibility, not on behalf of any other Contributor, and only if You agree to indemnify, defend, and hold each Contributor harmless for any liability incurred by, or claims asserted against, such Contributor by reason of your accepting any such warranty or additional liability.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
=========================================
|
||||
END OF request NOTICES AND INFORMATION
|
||||
|
||||
%% rxjs NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
Apache License
|
||||
@@ -1779,6 +1988,20 @@ ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEAL
|
||||
=========================================
|
||||
END OF systemjs NOTICES AND INFORMATION
|
||||
|
||||
%% temp-write NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
MIT License
|
||||
|
||||
Copyright (c) Sindre Sorhus <sindresorhus@gmail.com> (sindresorhus.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
=========================================
|
||||
END OF temp-write NOTICES AND INFORMATION
|
||||
|
||||
%% underscore NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
Copyright (c) 2009-2017 Jeremy Ashkenas, DocumentCloud and Investigative
|
||||
@@ -1881,6 +2104,50 @@ OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWA
|
||||
=========================================
|
||||
END OF vscode-debugprotocol NOTICES AND INFORMATION
|
||||
|
||||
%% vscode-languageclient NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
Copyright (c) Microsoft Corporation
|
||||
|
||||
All rights reserved.
|
||||
|
||||
MIT License
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
|
||||
is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
=========================================
|
||||
END OF vscode-languageclient NOTICES AND INFORMATION
|
||||
|
||||
%% vscode-nls NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) Microsoft Corporation
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy,
|
||||
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software
|
||||
is furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED *AS IS*, WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS
|
||||
BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT
|
||||
OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
=========================================
|
||||
END OF vscode-nls NOTICES AND INFORMATION
|
||||
|
||||
%% vscode-ripgrep NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
vscode-ripgrep
|
||||
@@ -1960,6 +2227,51 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
||||
=========================================
|
||||
END OF winreg NOTICES AND INFORMATION
|
||||
|
||||
%% xmldom NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
The MIT License (MIT)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of
|
||||
this software and associated documentation files (the "Software"), to deal in the
|
||||
Software without restriction, including without limitation the rights to use, copy,
|
||||
modify, merge, publish, distribute, sublicense, and/or sell copies of the Software,
|
||||
and to permit persons to whom the Software is furnished to do so, subject to the
|
||||
following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies
|
||||
or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED,
|
||||
INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR
|
||||
PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE
|
||||
FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
=========================================
|
||||
END OF xmldom NOTICES AND INFORMATION
|
||||
|
||||
%% xml-formatter NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright 2019 Chris Bottin (https://github.com/chrisbottin)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy of this software
|
||||
and associated documentation files (the "Software"), to deal in the Software without restriction,
|
||||
including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense,
|
||||
and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do
|
||||
so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT
|
||||
LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
||||
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
||||
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
=========================================
|
||||
END OF xml-formatter NOTICES AND INFORMATION
|
||||
|
||||
%% xterm NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
Copyright (c) 2014-2016, SourceLair Private Company (https://www.sourcelair.com)
|
||||
@@ -1985,6 +2297,32 @@ THE SOFTWARE.
|
||||
=========================================
|
||||
END OF xterm NOTICES AND INFORMATION
|
||||
|
||||
%% yargs NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
MIT License
|
||||
|
||||
Copyright 2010 James Halliday (mail@substack.net); Modified work Copyright 2014 Contributors (ben@npmjs.com)
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
=========================================
|
||||
END OF yargs NOTICES AND INFORMATION
|
||||
|
||||
%% yauzl NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
The MIT License (MIT)
|
||||
@@ -2039,4 +2377,188 @@ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
|
||||
THE SOFTWARE.
|
||||
=========================================
|
||||
END OF zone.js NOTICES AND INFORMATION
|
||||
END OF zone.js NOTICES AND INFORMATION
|
||||
|
||||
%% Microsoft.ProgramSynthesis.Common NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
NOTICES AND INFORMATION
|
||||
Do Not Translate or Localize
|
||||
|
||||
This software incorporates material from third parties. Microsoft makes certain
|
||||
open source code available at http://3rdpartysource.microsoft.com, or you may
|
||||
send a check or money order for US $5.00, including the product name, the open
|
||||
source component name, and version number, to:
|
||||
|
||||
Source Code Compliance Team
|
||||
Microsoft Corporation
|
||||
One Microsoft Way
|
||||
Redmond, WA 98052
|
||||
USA
|
||||
|
||||
Notwithstanding any other terms, you may reverse engineer this software to the
|
||||
extent required to debug changes to any libraries licensed under the GNU Lesser
|
||||
General Public License.
|
||||
|
||||
-------------------------------START OF THIRD-PARTY NOTICES-------------------------------------------
|
||||
|
||||
===================================CoreFx (BEGIN)
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) .NET Foundation and Contributors
|
||||
|
||||
All rights reserved.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
===================================CoreFx (END)
|
||||
|
||||
===================================CoreFxLab (BEGIN)
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) Microsoft Corporation
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
===================================CoreFxLab (END)
|
||||
|
||||
===================================Reactive Extensions (BEGIN)
|
||||
Copyright (c) .NET Foundation and Contributors
|
||||
All Rights Reserved
|
||||
|
||||
Licensed under the Apache License, Version 2.0 (the "License"); you
|
||||
may not use this file except in compliance with the License. You may
|
||||
obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing, software
|
||||
distributed under the License is distributed on an "AS IS" BASIS,
|
||||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
|
||||
implied. See the License for the specific language governing permissions
|
||||
and limitations under the License.
|
||||
|
||||
List of contributors to the Rx libraries
|
||||
|
||||
Rx and Ix.NET:
|
||||
Wes Dyer
|
||||
Jeffrey van Gogh
|
||||
Matthew Podwysocki
|
||||
Bart De Smet
|
||||
Danny van Velzen
|
||||
Erik Meijer
|
||||
Brian Beckman
|
||||
Aaron Lahman
|
||||
Georgi Chkodrov
|
||||
Arthur Watson
|
||||
Gert Drapers
|
||||
Mark Shields
|
||||
Eric Rozell
|
||||
|
||||
Rx.js and Ix.js:
|
||||
Matthew Podwysocki
|
||||
Jeffrey van Gogh
|
||||
Bart De Smet
|
||||
Brian Beckman
|
||||
Wes Dyer
|
||||
Erik Meijer
|
||||
|
||||
Tx:
|
||||
Georgi Chkodrov
|
||||
Bart De Smet
|
||||
Aaron Lahman
|
||||
Erik Meijer
|
||||
Brian Grunkemeyer
|
||||
Beysim Sezgin
|
||||
Tiho Tarnavski
|
||||
Collin Meek
|
||||
Sajay Anthony
|
||||
Karen Albrecht
|
||||
John Allen
|
||||
Zach Kramer
|
||||
|
||||
Rx++ and Ix++:
|
||||
Aaron Lahman
|
||||
===================================Reactive Extensions (END)
|
||||
|
||||
-------------------------------END OF THIRD-PARTY NOTICES-------------------------------------------
|
||||
=========================================
|
||||
END OF Microsoft.ProgramSynthesis.Common NOTICES AND INFORMATION
|
||||
|
||||
%% Microsoft.ProgramSynthesis.Detection NOTICES AND INFORMATION BEGIN HERE
|
||||
=========================================
|
||||
NOTICES AND INFORMATION
|
||||
Do Not Translate or Localize
|
||||
|
||||
This software incorporates material from third parties. Microsoft makes certain
|
||||
open source code available at http://3rdpartysource.microsoft.com, or you may
|
||||
send a check or money order for US $5.00, including the product name, the open
|
||||
source component name, and version number, to:
|
||||
|
||||
Source Code Compliance Team
|
||||
Microsoft Corporation
|
||||
One Microsoft Way
|
||||
Redmond, WA 98052
|
||||
USA
|
||||
|
||||
Notwithstanding any other terms, you may reverse engineer this software to the
|
||||
extent required to debug changes to any libraries licensed under the GNU Lesser
|
||||
General Public License.
|
||||
|
||||
-------------------------------START OF THIRD-PARTY NOTICES-------------------------------------------
|
||||
|
||||
The MIT License (MIT)
|
||||
|
||||
Copyright (c) 2014 ExcelDataReader
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
in the Software without restriction, including without limitation the rights
|
||||
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in all
|
||||
copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
||||
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
===================================ExcelDataReader (END)
|
||||
|
||||
-------------------------------END OF THIRD-PARTY NOTICES-------------------------------------------
|
||||
=========================================
|
||||
END OF Microsoft.ProgramSynthesis.Detection NOTICES AND INFORMATION
|
||||
|
||||
19
appveyor.yml
19
appveyor.yml
@@ -1,19 +0,0 @@
|
||||
environment:
|
||||
ELECTRON_RUN_AS_NODE: 1
|
||||
VSCODE_BUILD_VERBOSE: true
|
||||
|
||||
cache:
|
||||
- '%LOCALAPPDATA%\Yarn\cache'
|
||||
|
||||
install:
|
||||
- ps: Install-Product node 8.9.1 x64
|
||||
|
||||
build_script:
|
||||
- yarn
|
||||
- .\node_modules\.bin\gulp electron
|
||||
- npm run compile
|
||||
|
||||
test_script:
|
||||
- node --version
|
||||
- .\scripts\test.bat
|
||||
- .\scripts\test-integration.bat
|
||||
22
azure-pipelines.yml
Normal file
22
azure-pipelines.yml
Normal file
@@ -0,0 +1,22 @@
|
||||
trigger:
|
||||
- main
|
||||
- release/*
|
||||
|
||||
jobs:
|
||||
- job: Windows
|
||||
pool:
|
||||
vmImage: VS2017-Win2016
|
||||
steps:
|
||||
- template: build/azure-pipelines/win32/continuous-build-win32.yml
|
||||
|
||||
- job: Linux
|
||||
pool:
|
||||
vmImage: 'Ubuntu-16.04'
|
||||
steps:
|
||||
- template: build/azure-pipelines/linux/continuous-build-linux.yml
|
||||
|
||||
- job: macOS
|
||||
pool:
|
||||
vmImage: macOS-latest
|
||||
steps:
|
||||
- template: build/azure-pipelines/darwin/continuous-build-darwin.yml
|
||||
1
build/.cachesalt
Normal file
1
build/.cachesalt
Normal file
@@ -0,0 +1 @@
|
||||
2020-04-29T05:20:58.491Z
|
||||
124
build/.nativeignore
Normal file
124
build/.nativeignore
Normal file
@@ -0,0 +1,124 @@
|
||||
# cleanup rules for native node modules, .gitignore style
|
||||
|
||||
nan/**
|
||||
*/node_modules/nan/**
|
||||
|
||||
fsevents/binding.gyp
|
||||
fsevents/fsevents.cc
|
||||
fsevents/build/**
|
||||
fsevents/src/**
|
||||
fsevents/test/**
|
||||
!fsevents/**/*.node
|
||||
|
||||
vscode-sqlite3/binding.gyp
|
||||
vscode-sqlite3/benchmark/**
|
||||
vscode-sqlite3/cloudformation/**
|
||||
vscode-sqlite3/deps/**
|
||||
vscode-sqlite3/test/**
|
||||
vscode-sqlite3/build/**
|
||||
vscode-sqlite3/src/**
|
||||
!vscode-sqlite3/build/Release/*.node
|
||||
|
||||
windows-mutex/binding.gyp
|
||||
windows-mutex/build/**
|
||||
windows-mutex/src/**
|
||||
!windows-mutex/**/*.node
|
||||
|
||||
native-keymap/binding.gyp
|
||||
native-keymap/build/**
|
||||
native-keymap/src/**
|
||||
native-keymap/deps/**
|
||||
!native-keymap/build/Release/*.node
|
||||
|
||||
native-is-elevated/binding.gyp
|
||||
native-is-elevated/build/**
|
||||
native-is-elevated/src/**
|
||||
native-is-elevated/deps/**
|
||||
!native-is-elevated/build/Release/*.node
|
||||
|
||||
native-watchdog/binding.gyp
|
||||
native-watchdog/build/**
|
||||
native-watchdog/src/**
|
||||
!native-watchdog/build/Release/*.node
|
||||
|
||||
spdlog/binding.gyp
|
||||
spdlog/build/**
|
||||
spdlog/deps/**
|
||||
spdlog/src/**
|
||||
spdlog/test/**
|
||||
!spdlog/build/Release/*.node
|
||||
|
||||
jschardet/dist/**
|
||||
|
||||
windows-foreground-love/binding.gyp
|
||||
windows-foreground-love/build/**
|
||||
windows-foreground-love/src/**
|
||||
!windows-foreground-love/**/*.node
|
||||
|
||||
windows-process-tree/binding.gyp
|
||||
windows-process-tree/build/**
|
||||
windows-process-tree/src/**
|
||||
!windows-process-tree/**/*.node
|
||||
|
||||
keytar/binding.gyp
|
||||
keytar/build/**
|
||||
keytar/src/**
|
||||
keytar/script/**
|
||||
keytar/node_modules/**
|
||||
!keytar/**/*.node
|
||||
|
||||
node-pty/binding.gyp
|
||||
node-pty/build/**
|
||||
node-pty/src/**
|
||||
node-pty/tools/**
|
||||
node-pty/deps/**
|
||||
!node-pty/build/Release/*.exe
|
||||
!node-pty/build/Release/*.dll
|
||||
!node-pty/build/Release/*.node
|
||||
|
||||
# START SQL Modules
|
||||
|
||||
@angular/**/src/**
|
||||
@angular/**/testing/**
|
||||
|
||||
angular2-grid/components/**
|
||||
angular2-grid/directives/**
|
||||
angular2-grid/interfaces/**
|
||||
angular2-grid/modules/**
|
||||
|
||||
angular2-slickgrid/.vscode/**
|
||||
angular2-slickgrid/components/**
|
||||
angular2-slickgrid/examples/**
|
||||
|
||||
jquery-ui/external/**
|
||||
jquery-ui/demos/**
|
||||
|
||||
slickgrid/node_modules/**
|
||||
slickgrid/examples/**
|
||||
|
||||
kerberos/build/**
|
||||
|
||||
# END SQL Modules
|
||||
|
||||
vscode-nsfw/binding.gyp
|
||||
vscode-nsfw/build/**
|
||||
vscode-nsfw/src/**
|
||||
vscode-nsfw/openpa/**
|
||||
vscode-nsfw/includes/**
|
||||
!vscode-nsfw/build/Release/*.node
|
||||
!vscode-nsfw/**/*.a
|
||||
|
||||
vsda/build/**
|
||||
vsda/ci/**
|
||||
vsda/src/**
|
||||
vsda/.gitignore
|
||||
vsda/binding.gyp
|
||||
vsda/README.md
|
||||
vsda/targets
|
||||
!vsda/build/Release/vsda.node
|
||||
|
||||
vscode-windows-ca-certs/**/*
|
||||
!vscode-windows-ca-certs/package.json
|
||||
!vscode-windows-ca-certs/**/*.node
|
||||
|
||||
node-addon-api/**/*
|
||||
27
build/.webignore
Normal file
27
build/.webignore
Normal file
@@ -0,0 +1,27 @@
|
||||
# cleanup rules for web node modules, .gitignore style
|
||||
|
||||
**/*.txt
|
||||
**/*.json
|
||||
**/*.md
|
||||
**/*.d.ts
|
||||
**/*.js.map
|
||||
**/LICENSE
|
||||
**/CONTRIBUTORS
|
||||
|
||||
jschardet/index.js
|
||||
jschardet/src/**
|
||||
jschardet/dist/jschardet.js
|
||||
|
||||
vscode-textmate/webpack.config.js
|
||||
|
||||
xterm/src/**
|
||||
|
||||
xterm-addon-search/src/**
|
||||
xterm-addon-search/out/**
|
||||
xterm-addon-search/fixtures/**
|
||||
|
||||
xterm-addon-unicode11/src/**
|
||||
xterm-addon-unicode11/out/**
|
||||
|
||||
xterm-addon-webgl/src/**
|
||||
xterm-addon-webgl/out/**
|
||||
17
build/actions/.eslintrc.json
Normal file
17
build/actions/.eslintrc.json
Normal file
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"env": {
|
||||
"commonjs": true,
|
||||
"es6": true,
|
||||
"node": true
|
||||
},
|
||||
"extends": "eslint:recommended",
|
||||
"globals": {
|
||||
"Atomics": "readonly",
|
||||
"SharedArrayBuffer": "readonly"
|
||||
},
|
||||
"parserOptions": {
|
||||
"ecmaVersion": 2018
|
||||
},
|
||||
"rules": {
|
||||
}
|
||||
}
|
||||
2
build/actions/.gitignore
vendored
Normal file
2
build/actions/.gitignore
vendored
Normal file
@@ -0,0 +1,2 @@
|
||||
node_modules
|
||||
*.js.map
|
||||
6
build/actions/api/api.js
Normal file
6
build/actions/api/api.js
Normal file
@@ -0,0 +1,6 @@
|
||||
"use strict";
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
96
build/actions/api/api.ts
Normal file
96
build/actions/api/api.ts
Normal file
@@ -0,0 +1,96 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
export interface GitHub {
|
||||
query(query: Query): AsyncIterableIterator<GitHubIssue[]>
|
||||
|
||||
hasWriteAccess(user: User): Promise<boolean>
|
||||
|
||||
repoHasLabel(label: string): Promise<boolean>
|
||||
createLabel(label: string, color: string, description: string): Promise<void>
|
||||
deleteLabel(label: string): Promise<void>
|
||||
|
||||
readConfig(path: string): Promise<any>
|
||||
|
||||
createIssue(owner: string, repo: string, title: string, body: string): Promise<void>
|
||||
|
||||
releaseContainsCommit(release: string, commit: string): Promise<boolean>
|
||||
}
|
||||
|
||||
export interface GitHubIssue extends GitHub {
|
||||
getIssue(): Promise<Issue>
|
||||
|
||||
postComment(body: string): Promise<void>
|
||||
deleteComment(id: number): Promise<void>
|
||||
getComments(last?: boolean): AsyncIterableIterator<Comment[]>
|
||||
|
||||
closeIssue(): Promise<void>
|
||||
lockIssue(): Promise<void>
|
||||
|
||||
setMilestone(milestoneId: number): Promise<void>
|
||||
|
||||
addLabel(label: string): Promise<void>
|
||||
removeLabel(label: string): Promise<void>
|
||||
|
||||
addAssignee(assignee: string): Promise<void>
|
||||
|
||||
getClosingInfo(): Promise<{ hash: string | undefined; timestamp: number } | undefined>
|
||||
}
|
||||
|
||||
type SortVar =
|
||||
| 'comments'
|
||||
| 'reactions'
|
||||
| 'reactions-+1'
|
||||
| 'reactions--1'
|
||||
| 'reactions-smile'
|
||||
| 'reactions-thinking_face'
|
||||
| 'reactions-heart'
|
||||
| 'reactions-tada'
|
||||
| 'interactions'
|
||||
| 'created'
|
||||
| 'updated'
|
||||
type SortOrder = 'asc' | 'desc'
|
||||
export type Reactions = {
|
||||
'+1': number
|
||||
'-1': number
|
||||
laugh: number
|
||||
hooray: number
|
||||
confused: number
|
||||
heart: number
|
||||
rocket: number
|
||||
eyes: number
|
||||
}
|
||||
|
||||
export interface User {
|
||||
name: string
|
||||
isGitHubApp?: boolean
|
||||
}
|
||||
export interface Comment {
|
||||
author: User
|
||||
body: string
|
||||
id: number
|
||||
timestamp: number
|
||||
}
|
||||
export interface Issue {
|
||||
author: User
|
||||
body: string
|
||||
title: string
|
||||
labels: string[]
|
||||
open: boolean
|
||||
locked: boolean
|
||||
number: number
|
||||
numComments: number
|
||||
reactions: Reactions
|
||||
milestoneId: number | null
|
||||
assignee?: string
|
||||
createdAt: number
|
||||
updatedAt: number
|
||||
closedAt?: number
|
||||
}
|
||||
export interface Query {
|
||||
q: string
|
||||
sort?: SortVar
|
||||
order?: SortOrder
|
||||
}
|
||||
293
build/actions/api/octokit.js
Normal file
293
build/actions/api/octokit.js
Normal file
@@ -0,0 +1,293 @@
|
||||
"use strict";
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const core_1 = require("@actions/core");
|
||||
const github_1 = require("@actions/github");
|
||||
const child_process_1 = require("child_process");
|
||||
const utils_1 = require("../utils/utils");
|
||||
class OctoKit {
|
||||
constructor(token, params, options = { readonly: false }) {
|
||||
this.token = token;
|
||||
this.params = params;
|
||||
this.options = options;
|
||||
// when in readonly mode, record labels just-created so at to not throw unneccesary errors
|
||||
this.mockLabels = new Set();
|
||||
this.writeAccessCache = {};
|
||||
this.octokit = new github_1.GitHub(token);
|
||||
}
|
||||
async *query(query) {
|
||||
const q = query.q + ` repo:${this.params.owner}/${this.params.repo}`;
|
||||
console.log(`Querying for ${q}:`);
|
||||
const options = this.octokit.search.issuesAndPullRequests.endpoint.merge({
|
||||
...query,
|
||||
q,
|
||||
per_page: 100,
|
||||
headers: { Accept: 'application/vnd.github.squirrel-girl-preview+json' },
|
||||
});
|
||||
let pageNum = 0;
|
||||
const timeout = async () => {
|
||||
if (pageNum < 2) {
|
||||
/* pass */
|
||||
}
|
||||
else if (pageNum < 4) {
|
||||
await new Promise((resolve) => setTimeout(resolve, 3000));
|
||||
}
|
||||
else {
|
||||
await new Promise((resolve) => setTimeout(resolve, 30000));
|
||||
}
|
||||
};
|
||||
for await (const pageResponse of this.octokit.paginate.iterator(options)) {
|
||||
await timeout();
|
||||
await utils_1.logRateLimit(this.token);
|
||||
const page = pageResponse.data;
|
||||
console.log(`Page ${++pageNum}: ${page.map(({ number }) => number).join(' ')}`);
|
||||
yield page.map((issue) => new OctoKitIssue(this.token, this.params, this.octokitIssueToIssue(issue)));
|
||||
}
|
||||
}
|
||||
async createIssue(owner, repo, title, body) {
|
||||
core_1.debug(`Creating issue \`${title}\` on ${owner}/${repo}`);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.create({ owner, repo, title, body });
|
||||
}
|
||||
octokitIssueToIssue(issue) {
|
||||
var _a, _b, _c, _d, _e, _f;
|
||||
return {
|
||||
author: { name: issue.user.login, isGitHubApp: issue.user.type === 'Bot' },
|
||||
body: issue.body,
|
||||
number: issue.number,
|
||||
title: issue.title,
|
||||
labels: issue.labels.map((label) => label.name),
|
||||
open: issue.state === 'open',
|
||||
locked: issue.locked,
|
||||
numComments: issue.comments,
|
||||
reactions: issue.reactions,
|
||||
assignee: (_b = (_a = issue.assignee) === null || _a === void 0 ? void 0 : _a.login) !== null && _b !== void 0 ? _b : (_d = (_c = issue.assignees) === null || _c === void 0 ? void 0 : _c[0]) === null || _d === void 0 ? void 0 : _d.login,
|
||||
milestoneId: (_f = (_e = issue.milestone) === null || _e === void 0 ? void 0 : _e.number) !== null && _f !== void 0 ? _f : null,
|
||||
createdAt: +new Date(issue.created_at),
|
||||
updatedAt: +new Date(issue.updated_at),
|
||||
closedAt: issue.closed_at ? +new Date(issue.closed_at) : undefined,
|
||||
};
|
||||
}
|
||||
async hasWriteAccess(user) {
|
||||
if (user.name in this.writeAccessCache) {
|
||||
core_1.debug('Got permissions from cache for ' + user);
|
||||
return this.writeAccessCache[user.name];
|
||||
}
|
||||
core_1.debug('Fetching permissions for ' + user);
|
||||
const permissions = (await this.octokit.repos.getCollaboratorPermissionLevel({
|
||||
...this.params,
|
||||
username: user.name,
|
||||
})).data.permission;
|
||||
return (this.writeAccessCache[user.name] = permissions === 'admin' || permissions === 'write');
|
||||
}
|
||||
async repoHasLabel(name) {
|
||||
try {
|
||||
await this.octokit.issues.getLabel({ ...this.params, name });
|
||||
return true;
|
||||
}
|
||||
catch (err) {
|
||||
if (err.status === 404) {
|
||||
return this.options.readonly && this.mockLabels.has(name);
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
async createLabel(name, color, description) {
|
||||
core_1.debug('Creating label ' + name);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.createLabel({ ...this.params, color, description, name });
|
||||
else
|
||||
this.mockLabels.add(name);
|
||||
}
|
||||
async deleteLabel(name) {
|
||||
core_1.debug('Deleting label ' + name);
|
||||
try {
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.deleteLabel({ ...this.params, name });
|
||||
}
|
||||
catch (err) {
|
||||
if (err.status === 404) {
|
||||
return;
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
async readConfig(path) {
|
||||
core_1.debug('Reading config at ' + path);
|
||||
const repoPath = `.github/${path}.json`;
|
||||
const data = (await this.octokit.repos.getContents({ ...this.params, path: repoPath })).data;
|
||||
if ('type' in data && data.type === 'file') {
|
||||
if (data.encoding === 'base64' && data.content) {
|
||||
return JSON.parse(Buffer.from(data.content, 'base64').toString('utf-8'));
|
||||
}
|
||||
throw Error(`Could not read contents "${data.content}" in encoding "${data.encoding}"`);
|
||||
}
|
||||
throw Error('Found directory at config path when expecting file' + JSON.stringify(data));
|
||||
}
|
||||
async releaseContainsCommit(release, commit) {
|
||||
if (utils_1.getInput('commitReleasedDebuggingOverride')) {
|
||||
return true;
|
||||
}
|
||||
return new Promise((resolve, reject) => child_process_1.exec(`git -C ./repo merge-base --is-ancestor ${commit} ${release}`, (err) => !err || err.code === 1 ? resolve(!err) : reject(err)));
|
||||
}
|
||||
}
|
||||
exports.OctoKit = OctoKit;
|
||||
class OctoKitIssue extends OctoKit {
|
||||
constructor(token, params, issueData, options = { readonly: false }) {
|
||||
super(token, params, options);
|
||||
this.params = params;
|
||||
this.issueData = issueData;
|
||||
}
|
||||
async addAssignee(assignee) {
|
||||
core_1.debug('Adding assignee ' + assignee + ' to ' + this.issueData.number);
|
||||
if (!this.options.readonly) {
|
||||
await this.octokit.issues.addAssignees({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
assignees: [assignee],
|
||||
});
|
||||
}
|
||||
}
|
||||
async closeIssue() {
|
||||
core_1.debug('Closing issue ' + this.issueData.number);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.update({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
state: 'closed',
|
||||
});
|
||||
}
|
||||
async lockIssue() {
|
||||
core_1.debug('Locking issue ' + this.issueData.number);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.lock({ ...this.params, issue_number: this.issueData.number });
|
||||
}
|
||||
async getIssue() {
|
||||
if (isIssue(this.issueData)) {
|
||||
core_1.debug('Got issue data from query result ' + this.issueData.number);
|
||||
return this.issueData;
|
||||
}
|
||||
console.log('Fetching issue ' + this.issueData.number);
|
||||
const issue = (await this.octokit.issues.get({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
mediaType: { previews: ['squirrel-girl'] },
|
||||
})).data;
|
||||
return (this.issueData = this.octokitIssueToIssue(issue));
|
||||
}
|
||||
async postComment(body) {
|
||||
core_1.debug(`Posting comment ${body} on ${this.issueData.number}`);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.createComment({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
body,
|
||||
});
|
||||
}
|
||||
async deleteComment(id) {
|
||||
core_1.debug(`Deleting comment ${id} on ${this.issueData.number}`);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.deleteComment({
|
||||
owner: this.params.owner,
|
||||
repo: this.params.repo,
|
||||
comment_id: id,
|
||||
});
|
||||
}
|
||||
async setMilestone(milestoneId) {
|
||||
core_1.debug(`Setting milestone for ${this.issueData.number} to ${milestoneId}`);
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.update({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
milestone: milestoneId,
|
||||
});
|
||||
}
|
||||
async *getComments(last) {
|
||||
core_1.debug('Fetching comments for ' + this.issueData.number);
|
||||
const response = this.octokit.paginate.iterator(this.octokit.issues.listComments.endpoint.merge({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
per_page: 100,
|
||||
...(last ? { per_page: 1, page: (await this.getIssue()).numComments } : {}),
|
||||
}));
|
||||
for await (const page of response) {
|
||||
yield page.data.map((comment) => ({
|
||||
author: { name: comment.user.login, isGitHubApp: comment.user.type === 'Bot' },
|
||||
body: comment.body,
|
||||
id: comment.id,
|
||||
timestamp: +new Date(comment.created_at),
|
||||
}));
|
||||
}
|
||||
}
|
||||
async addLabel(name) {
|
||||
core_1.debug(`Adding label ${name} to ${this.issueData.number}`);
|
||||
if (!(await this.repoHasLabel(name))) {
|
||||
throw Error(`Action could not execute becuase label ${name} is not defined.`);
|
||||
}
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.addLabels({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
labels: [name],
|
||||
});
|
||||
}
|
||||
async removeLabel(name) {
|
||||
core_1.debug(`Removing label ${name} from ${this.issueData.number}`);
|
||||
try {
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.removeLabel({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
name,
|
||||
});
|
||||
}
|
||||
catch (err) {
|
||||
if (err.status === 404) {
|
||||
console.log(`Label ${name} not found on issue`);
|
||||
return;
|
||||
}
|
||||
throw err;
|
||||
}
|
||||
}
|
||||
async getClosingInfo() {
|
||||
var _a;
|
||||
if ((await this.getIssue()).open) {
|
||||
return;
|
||||
}
|
||||
const options = this.octokit.issues.listEventsForTimeline.endpoint.merge({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
});
|
||||
let closingCommit;
|
||||
for await (const event of this.octokit.paginate.iterator(options)) {
|
||||
const timelineEvents = event.data;
|
||||
for (const timelineEvent of timelineEvents) {
|
||||
if (timelineEvent.event === 'closed') {
|
||||
closingCommit = {
|
||||
hash: (_a = timelineEvent.commit_id) !== null && _a !== void 0 ? _a : undefined,
|
||||
timestamp: +new Date(timelineEvent.created_at),
|
||||
};
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(`Got ${closingCommit} as closing commit of ${this.issueData.number}`);
|
||||
return closingCommit;
|
||||
}
|
||||
}
|
||||
exports.OctoKitIssue = OctoKitIssue;
|
||||
function isIssue(object) {
|
||||
const isIssue = 'author' in object &&
|
||||
'body' in object &&
|
||||
'title' in object &&
|
||||
'labels' in object &&
|
||||
'open' in object &&
|
||||
'locked' in object &&
|
||||
'number' in object &&
|
||||
'numComments' in object &&
|
||||
'reactions' in object &&
|
||||
'milestoneId' in object;
|
||||
return isIssue;
|
||||
}
|
||||
336
build/actions/api/octokit.ts
Normal file
336
build/actions/api/octokit.ts
Normal file
@@ -0,0 +1,336 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { debug } from '@actions/core'
|
||||
import { GitHub as GitHubAPI } from '@actions/github'
|
||||
import { Octokit } from '@octokit/rest'
|
||||
import { exec } from 'child_process'
|
||||
import { getInput, logRateLimit } from '../utils/utils'
|
||||
import { Comment, GitHub, GitHubIssue, Issue, Query, User } from './api'
|
||||
|
||||
export class OctoKit implements GitHub {
|
||||
protected octokit: GitHubAPI
|
||||
// when in readonly mode, record labels just-created so at to not throw unneccesary errors
|
||||
protected mockLabels: Set<string> = new Set()
|
||||
|
||||
constructor(
|
||||
private token: string,
|
||||
protected params: { repo: string; owner: string },
|
||||
protected options: { readonly: boolean } = { readonly: false },
|
||||
) {
|
||||
this.octokit = new GitHubAPI(token)
|
||||
}
|
||||
|
||||
async *query(query: Query): AsyncIterableIterator<GitHubIssue[]> {
|
||||
const q = query.q + ` repo:${this.params.owner}/${this.params.repo}`
|
||||
console.log(`Querying for ${q}:`)
|
||||
|
||||
const options = this.octokit.search.issuesAndPullRequests.endpoint.merge({
|
||||
...query,
|
||||
q,
|
||||
per_page: 100,
|
||||
headers: { Accept: 'application/vnd.github.squirrel-girl-preview+json' },
|
||||
})
|
||||
|
||||
let pageNum = 0
|
||||
|
||||
const timeout = async () => {
|
||||
if (pageNum < 2) {
|
||||
/* pass */
|
||||
} else if (pageNum < 4) {
|
||||
await new Promise((resolve) => setTimeout(resolve, 3000))
|
||||
} else {
|
||||
await new Promise((resolve) => setTimeout(resolve, 30000))
|
||||
}
|
||||
}
|
||||
|
||||
for await (const pageResponse of this.octokit.paginate.iterator(options)) {
|
||||
await timeout()
|
||||
await logRateLimit(this.token)
|
||||
const page: Array<Octokit.SearchIssuesAndPullRequestsResponseItemsItem> = pageResponse.data
|
||||
console.log(`Page ${++pageNum}: ${page.map(({ number }) => number).join(' ')}`)
|
||||
yield page.map(
|
||||
(issue) => new OctoKitIssue(this.token, this.params, this.octokitIssueToIssue(issue)),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
async createIssue(owner: string, repo: string, title: string, body: string): Promise<void> {
|
||||
debug(`Creating issue \`${title}\` on ${owner}/${repo}`)
|
||||
if (!this.options.readonly) await this.octokit.issues.create({ owner, repo, title, body })
|
||||
}
|
||||
|
||||
protected octokitIssueToIssue(
|
||||
issue: Octokit.IssuesGetResponse | Octokit.SearchIssuesAndPullRequestsResponseItemsItem,
|
||||
): Issue {
|
||||
return {
|
||||
author: { name: issue.user.login, isGitHubApp: issue.user.type === 'Bot' },
|
||||
body: issue.body,
|
||||
number: issue.number,
|
||||
title: issue.title,
|
||||
labels: (issue.labels as Octokit.IssuesGetLabelResponse[]).map((label) => label.name),
|
||||
open: issue.state === 'open',
|
||||
locked: (issue as any).locked,
|
||||
numComments: issue.comments,
|
||||
reactions: (issue as any).reactions,
|
||||
assignee: issue.assignee?.login ?? (issue as any).assignees?.[0]?.login,
|
||||
milestoneId: issue.milestone?.number ?? null,
|
||||
createdAt: +new Date(issue.created_at),
|
||||
updatedAt: +new Date(issue.updated_at),
|
||||
closedAt: issue.closed_at ? +new Date((issue.closed_at as unknown) as string) : undefined,
|
||||
}
|
||||
}
|
||||
|
||||
private writeAccessCache: Record<string, boolean> = {}
|
||||
async hasWriteAccess(user: User): Promise<boolean> {
|
||||
if (user.name in this.writeAccessCache) {
|
||||
debug('Got permissions from cache for ' + user)
|
||||
return this.writeAccessCache[user.name]
|
||||
}
|
||||
debug('Fetching permissions for ' + user)
|
||||
const permissions = (
|
||||
await this.octokit.repos.getCollaboratorPermissionLevel({
|
||||
...this.params,
|
||||
username: user.name,
|
||||
})
|
||||
).data.permission
|
||||
return (this.writeAccessCache[user.name] = permissions === 'admin' || permissions === 'write')
|
||||
}
|
||||
|
||||
async repoHasLabel(name: string): Promise<boolean> {
|
||||
try {
|
||||
await this.octokit.issues.getLabel({ ...this.params, name })
|
||||
return true
|
||||
} catch (err) {
|
||||
if (err.status === 404) {
|
||||
return this.options.readonly && this.mockLabels.has(name)
|
||||
}
|
||||
throw err
|
||||
}
|
||||
}
|
||||
|
||||
async createLabel(name: string, color: string, description: string): Promise<void> {
|
||||
debug('Creating label ' + name)
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.createLabel({ ...this.params, color, description, name })
|
||||
else this.mockLabels.add(name)
|
||||
}
|
||||
|
||||
async deleteLabel(name: string): Promise<void> {
|
||||
debug('Deleting label ' + name)
|
||||
try {
|
||||
if (!this.options.readonly) await this.octokit.issues.deleteLabel({ ...this.params, name })
|
||||
} catch (err) {
|
||||
if (err.status === 404) {
|
||||
return
|
||||
}
|
||||
throw err
|
||||
}
|
||||
}
|
||||
|
||||
async readConfig(path: string): Promise<any> {
|
||||
debug('Reading config at ' + path)
|
||||
const repoPath = `.github/${path}.json`
|
||||
const data = (await this.octokit.repos.getContents({ ...this.params, path: repoPath })).data
|
||||
|
||||
if ('type' in data && data.type === 'file') {
|
||||
if (data.encoding === 'base64' && data.content) {
|
||||
return JSON.parse(Buffer.from(data.content, 'base64').toString('utf-8'))
|
||||
}
|
||||
throw Error(`Could not read contents "${data.content}" in encoding "${data.encoding}"`)
|
||||
}
|
||||
throw Error('Found directory at config path when expecting file' + JSON.stringify(data))
|
||||
}
|
||||
|
||||
async releaseContainsCommit(release: string, commit: string): Promise<boolean> {
|
||||
if (getInput('commitReleasedDebuggingOverride')) {
|
||||
return true
|
||||
}
|
||||
return new Promise((resolve, reject) =>
|
||||
exec(`git -C ./repo merge-base --is-ancestor ${commit} ${release}`, (err) =>
|
||||
!err || err.code === 1 ? resolve(!err) : reject(err),
|
||||
),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
export class OctoKitIssue extends OctoKit implements GitHubIssue {
|
||||
constructor(
|
||||
token: string,
|
||||
protected params: { repo: string; owner: string },
|
||||
private issueData: { number: number } | Issue,
|
||||
options: { readonly: boolean } = { readonly: false },
|
||||
) {
|
||||
super(token, params, options)
|
||||
}
|
||||
|
||||
async addAssignee(assignee: string): Promise<void> {
|
||||
debug('Adding assignee ' + assignee + ' to ' + this.issueData.number)
|
||||
if (!this.options.readonly) {
|
||||
await this.octokit.issues.addAssignees({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
assignees: [assignee],
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
async closeIssue(): Promise<void> {
|
||||
debug('Closing issue ' + this.issueData.number)
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.update({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
state: 'closed',
|
||||
})
|
||||
}
|
||||
|
||||
async lockIssue(): Promise<void> {
|
||||
debug('Locking issue ' + this.issueData.number)
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.lock({ ...this.params, issue_number: this.issueData.number })
|
||||
}
|
||||
|
||||
async getIssue(): Promise<Issue> {
|
||||
if (isIssue(this.issueData)) {
|
||||
debug('Got issue data from query result ' + this.issueData.number)
|
||||
return this.issueData
|
||||
}
|
||||
|
||||
console.log('Fetching issue ' + this.issueData.number)
|
||||
const issue = (
|
||||
await this.octokit.issues.get({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
mediaType: { previews: ['squirrel-girl'] },
|
||||
})
|
||||
).data
|
||||
return (this.issueData = this.octokitIssueToIssue(issue))
|
||||
}
|
||||
|
||||
async postComment(body: string): Promise<void> {
|
||||
debug(`Posting comment ${body} on ${this.issueData.number}`)
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.createComment({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
body,
|
||||
})
|
||||
}
|
||||
|
||||
async deleteComment(id: number): Promise<void> {
|
||||
debug(`Deleting comment ${id} on ${this.issueData.number}`)
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.deleteComment({
|
||||
owner: this.params.owner,
|
||||
repo: this.params.repo,
|
||||
comment_id: id,
|
||||
})
|
||||
}
|
||||
|
||||
async setMilestone(milestoneId: number) {
|
||||
debug(`Setting milestone for ${this.issueData.number} to ${milestoneId}`)
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.update({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
milestone: milestoneId,
|
||||
})
|
||||
}
|
||||
|
||||
async *getComments(last?: boolean): AsyncIterableIterator<Comment[]> {
|
||||
debug('Fetching comments for ' + this.issueData.number)
|
||||
|
||||
const response = this.octokit.paginate.iterator(
|
||||
this.octokit.issues.listComments.endpoint.merge({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
per_page: 100,
|
||||
...(last ? { per_page: 1, page: (await this.getIssue()).numComments } : {}),
|
||||
}),
|
||||
)
|
||||
|
||||
for await (const page of response) {
|
||||
yield (page.data as Octokit.IssuesListCommentsResponseItem[]).map((comment) => ({
|
||||
author: { name: comment.user.login, isGitHubApp: comment.user.type === 'Bot' },
|
||||
body: comment.body,
|
||||
id: comment.id,
|
||||
timestamp: +new Date(comment.created_at),
|
||||
}))
|
||||
}
|
||||
}
|
||||
|
||||
async addLabel(name: string): Promise<void> {
|
||||
debug(`Adding label ${name} to ${this.issueData.number}`)
|
||||
if (!(await this.repoHasLabel(name))) {
|
||||
throw Error(`Action could not execute becuase label ${name} is not defined.`)
|
||||
}
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.addLabels({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
labels: [name],
|
||||
})
|
||||
}
|
||||
|
||||
async removeLabel(name: string): Promise<void> {
|
||||
debug(`Removing label ${name} from ${this.issueData.number}`)
|
||||
try {
|
||||
if (!this.options.readonly)
|
||||
await this.octokit.issues.removeLabel({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
name,
|
||||
})
|
||||
} catch (err) {
|
||||
if (err.status === 404) {
|
||||
console.log(`Label ${name} not found on issue`)
|
||||
return
|
||||
}
|
||||
throw err
|
||||
}
|
||||
}
|
||||
|
||||
async getClosingInfo(): Promise<{ hash: string | undefined; timestamp: number } | undefined> {
|
||||
if ((await this.getIssue()).open) {
|
||||
return
|
||||
}
|
||||
|
||||
const options = this.octokit.issues.listEventsForTimeline.endpoint.merge({
|
||||
...this.params,
|
||||
issue_number: this.issueData.number,
|
||||
})
|
||||
let closingCommit: { hash: string | undefined; timestamp: number } | undefined
|
||||
for await (const event of this.octokit.paginate.iterator(options)) {
|
||||
const timelineEvents = event.data as Octokit.IssuesListEventsForTimelineResponseItem[]
|
||||
for (const timelineEvent of timelineEvents) {
|
||||
if (timelineEvent.event === 'closed') {
|
||||
closingCommit = {
|
||||
hash: timelineEvent.commit_id ?? undefined,
|
||||
timestamp: +new Date(timelineEvent.created_at),
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
console.log(`Got ${closingCommit} as closing commit of ${this.issueData.number}`)
|
||||
return closingCommit
|
||||
}
|
||||
}
|
||||
|
||||
function isIssue(object: any): object is Issue {
|
||||
const isIssue =
|
||||
'author' in object &&
|
||||
'body' in object &&
|
||||
'title' in object &&
|
||||
'labels' in object &&
|
||||
'open' in object &&
|
||||
'locked' in object &&
|
||||
'number' in object &&
|
||||
'numComments' in object &&
|
||||
'reactions' in object &&
|
||||
'milestoneId' in object
|
||||
|
||||
return isIssue
|
||||
}
|
||||
123
build/actions/api/testbed.js
Normal file
123
build/actions/api/testbed.js
Normal file
@@ -0,0 +1,123 @@
|
||||
"use strict";
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class Testbed {
|
||||
constructor(config) {
|
||||
var _a, _b, _c, _d, _e;
|
||||
this.config = {
|
||||
globalLabels: (_a = config === null || config === void 0 ? void 0 : config.globalLabels) !== null && _a !== void 0 ? _a : [],
|
||||
configs: (_b = config === null || config === void 0 ? void 0 : config.configs) !== null && _b !== void 0 ? _b : {},
|
||||
writers: (_c = config === null || config === void 0 ? void 0 : config.writers) !== null && _c !== void 0 ? _c : [],
|
||||
releasedCommits: (_d = config === null || config === void 0 ? void 0 : config.releasedCommits) !== null && _d !== void 0 ? _d : [],
|
||||
queryRunner: (_e = config === null || config === void 0 ? void 0 : config.queryRunner) !== null && _e !== void 0 ? _e : async function* () {
|
||||
yield [];
|
||||
},
|
||||
};
|
||||
}
|
||||
async *query(query) {
|
||||
for await (const page of this.config.queryRunner(query)) {
|
||||
yield page.map((issue) => issue instanceof TestbedIssue ? issue : new TestbedIssue(this.config, issue));
|
||||
}
|
||||
}
|
||||
async createIssue(_owner, _repo, _title, _body) {
|
||||
// pass...
|
||||
}
|
||||
async readConfig(path) {
|
||||
return JSON.parse(JSON.stringify(this.config.configs[path]));
|
||||
}
|
||||
async hasWriteAccess(user) {
|
||||
return this.config.writers.includes(user.name);
|
||||
}
|
||||
async repoHasLabel(label) {
|
||||
return this.config.globalLabels.includes(label);
|
||||
}
|
||||
async createLabel(label, _color, _description) {
|
||||
this.config.globalLabels.push(label);
|
||||
}
|
||||
async deleteLabel(labelToDelete) {
|
||||
this.config.globalLabels = this.config.globalLabels.filter((label) => label !== labelToDelete);
|
||||
}
|
||||
async releaseContainsCommit(_release, commit) {
|
||||
return this.config.releasedCommits.includes(commit);
|
||||
}
|
||||
}
|
||||
exports.Testbed = Testbed;
|
||||
class TestbedIssue extends Testbed {
|
||||
constructor(globalConfig, issueConfig) {
|
||||
var _a, _b, _c;
|
||||
super(globalConfig);
|
||||
issueConfig = issueConfig !== null && issueConfig !== void 0 ? issueConfig : {};
|
||||
issueConfig.comments = (_a = issueConfig === null || issueConfig === void 0 ? void 0 : issueConfig.comments) !== null && _a !== void 0 ? _a : [];
|
||||
issueConfig.labels = (_b = issueConfig === null || issueConfig === void 0 ? void 0 : issueConfig.labels) !== null && _b !== void 0 ? _b : [];
|
||||
issueConfig.issue = {
|
||||
author: { name: 'JacksonKearl' },
|
||||
body: 'issue body',
|
||||
locked: false,
|
||||
numComments: ((_c = issueConfig === null || issueConfig === void 0 ? void 0 : issueConfig.comments) === null || _c === void 0 ? void 0 : _c.length) || 0,
|
||||
number: 1,
|
||||
open: true,
|
||||
title: 'issue title',
|
||||
assignee: undefined,
|
||||
reactions: {
|
||||
'+1': 0,
|
||||
'-1': 0,
|
||||
confused: 0,
|
||||
eyes: 0,
|
||||
heart: 0,
|
||||
hooray: 0,
|
||||
laugh: 0,
|
||||
rocket: 0,
|
||||
},
|
||||
closedAt: undefined,
|
||||
createdAt: +new Date(),
|
||||
updatedAt: +new Date(),
|
||||
...issueConfig.issue,
|
||||
};
|
||||
this.issueConfig = issueConfig;
|
||||
}
|
||||
async addAssignee(assignee) {
|
||||
this.issueConfig.issue.assignee = assignee;
|
||||
}
|
||||
async setMilestone(milestoneId) {
|
||||
this.issueConfig.issue.milestoneId = milestoneId;
|
||||
}
|
||||
async getIssue() {
|
||||
const labels = [...this.issueConfig.labels];
|
||||
return { ...this.issueConfig.issue, labels };
|
||||
}
|
||||
async postComment(body, author) {
|
||||
this.issueConfig.comments.push({
|
||||
author: { name: author !== null && author !== void 0 ? author : 'bot' },
|
||||
body,
|
||||
id: Math.random(),
|
||||
timestamp: +new Date(),
|
||||
});
|
||||
}
|
||||
async deleteComment(id) {
|
||||
this.issueConfig.comments = this.issueConfig.comments.filter((comment) => comment.id !== id);
|
||||
}
|
||||
async *getComments(last) {
|
||||
yield last
|
||||
? [this.issueConfig.comments[this.issueConfig.comments.length - 1]]
|
||||
: this.issueConfig.comments;
|
||||
}
|
||||
async addLabel(label) {
|
||||
this.issueConfig.labels.push(label);
|
||||
}
|
||||
async removeLabel(labelToDelete) {
|
||||
this.issueConfig.labels = this.issueConfig.labels.filter((label) => label !== labelToDelete);
|
||||
}
|
||||
async closeIssue() {
|
||||
this.issueConfig.issue.open = false;
|
||||
}
|
||||
async lockIssue() {
|
||||
this.issueConfig.issue.locked = true;
|
||||
}
|
||||
async getClosingInfo() {
|
||||
return this.issueConfig.closingCommit;
|
||||
}
|
||||
}
|
||||
exports.TestbedIssue = TestbedIssue;
|
||||
170
build/actions/api/testbed.ts
Normal file
170
build/actions/api/testbed.ts
Normal file
@@ -0,0 +1,170 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { Comment, GitHub, GitHubIssue, Issue, Query, User } from './api'
|
||||
|
||||
type TestbedConfig = {
|
||||
globalLabels: string[]
|
||||
configs: Record<string, any>
|
||||
writers: string[]
|
||||
releasedCommits: string[]
|
||||
queryRunner: (query: Query) => AsyncIterableIterator<(TestbedIssueConstructorArgs | TestbedIssue)[]>
|
||||
}
|
||||
|
||||
export type TestbedConstructorArgs = Partial<TestbedConfig>
|
||||
|
||||
export class Testbed implements GitHub {
|
||||
public config: TestbedConfig
|
||||
|
||||
constructor(config?: TestbedConstructorArgs) {
|
||||
this.config = {
|
||||
globalLabels: config?.globalLabels ?? [],
|
||||
configs: config?.configs ?? {},
|
||||
writers: config?.writers ?? [],
|
||||
releasedCommits: config?.releasedCommits ?? [],
|
||||
queryRunner:
|
||||
config?.queryRunner ??
|
||||
async function* () {
|
||||
yield []
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
async *query(query: Query): AsyncIterableIterator<GitHubIssue[]> {
|
||||
for await (const page of this.config.queryRunner(query)) {
|
||||
yield page.map((issue) =>
|
||||
issue instanceof TestbedIssue ? issue : new TestbedIssue(this.config, issue),
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
async createIssue(_owner: string, _repo: string, _title: string, _body: string): Promise<void> {
|
||||
// pass...
|
||||
}
|
||||
|
||||
async readConfig(path: string): Promise<any> {
|
||||
return JSON.parse(JSON.stringify(this.config.configs[path]))
|
||||
}
|
||||
|
||||
async hasWriteAccess(user: User): Promise<boolean> {
|
||||
return this.config.writers.includes(user.name)
|
||||
}
|
||||
|
||||
async repoHasLabel(label: string): Promise<boolean> {
|
||||
return this.config.globalLabels.includes(label)
|
||||
}
|
||||
|
||||
async createLabel(label: string, _color: string, _description: string): Promise<void> {
|
||||
this.config.globalLabels.push(label)
|
||||
}
|
||||
|
||||
async deleteLabel(labelToDelete: string): Promise<void> {
|
||||
this.config.globalLabels = this.config.globalLabels.filter((label) => label !== labelToDelete)
|
||||
}
|
||||
|
||||
async releaseContainsCommit(_release: string, commit: string): Promise<boolean> {
|
||||
return this.config.releasedCommits.includes(commit)
|
||||
}
|
||||
}
|
||||
|
||||
type TestbedIssueConfig = {
|
||||
issue: Omit<Issue, 'labels'>
|
||||
comments: Comment[]
|
||||
labels: string[]
|
||||
closingCommit: { hash: string | undefined; timestamp: number } | undefined
|
||||
}
|
||||
|
||||
export type TestbedIssueConstructorArgs = Partial<Omit<TestbedIssueConfig, 'issue'>> & {
|
||||
issue?: Partial<Omit<Issue, 'labels'>>
|
||||
}
|
||||
|
||||
export class TestbedIssue extends Testbed implements GitHubIssue {
|
||||
public issueConfig: TestbedIssueConfig
|
||||
|
||||
constructor(globalConfig?: TestbedConstructorArgs, issueConfig?: TestbedIssueConstructorArgs) {
|
||||
super(globalConfig)
|
||||
issueConfig = issueConfig ?? {}
|
||||
issueConfig.comments = issueConfig?.comments ?? []
|
||||
issueConfig.labels = issueConfig?.labels ?? []
|
||||
issueConfig.issue = {
|
||||
author: { name: 'JacksonKearl' },
|
||||
body: 'issue body',
|
||||
locked: false,
|
||||
numComments: issueConfig?.comments?.length || 0,
|
||||
number: 1,
|
||||
open: true,
|
||||
title: 'issue title',
|
||||
assignee: undefined,
|
||||
reactions: {
|
||||
'+1': 0,
|
||||
'-1': 0,
|
||||
confused: 0,
|
||||
eyes: 0,
|
||||
heart: 0,
|
||||
hooray: 0,
|
||||
laugh: 0,
|
||||
rocket: 0,
|
||||
},
|
||||
closedAt: undefined,
|
||||
createdAt: +new Date(),
|
||||
updatedAt: +new Date(),
|
||||
...issueConfig.issue,
|
||||
}
|
||||
|
||||
this.issueConfig = issueConfig as TestbedIssueConfig
|
||||
}
|
||||
|
||||
async addAssignee(assignee: string): Promise<void> {
|
||||
this.issueConfig.issue.assignee = assignee
|
||||
}
|
||||
|
||||
async setMilestone(milestoneId: number): Promise<void> {
|
||||
this.issueConfig.issue.milestoneId = milestoneId
|
||||
}
|
||||
|
||||
async getIssue(): Promise<Issue> {
|
||||
const labels = [...this.issueConfig.labels]
|
||||
return { ...this.issueConfig.issue, labels }
|
||||
}
|
||||
|
||||
async postComment(body: string, author?: string): Promise<void> {
|
||||
this.issueConfig.comments.push({
|
||||
author: { name: author ?? 'bot' },
|
||||
body,
|
||||
id: Math.random(),
|
||||
timestamp: +new Date(),
|
||||
})
|
||||
}
|
||||
|
||||
async deleteComment(id: number): Promise<void> {
|
||||
this.issueConfig.comments = this.issueConfig.comments.filter((comment) => comment.id !== id)
|
||||
}
|
||||
|
||||
async *getComments(last?: boolean): AsyncIterableIterator<Comment[]> {
|
||||
yield last
|
||||
? [this.issueConfig.comments[this.issueConfig.comments.length - 1]]
|
||||
: this.issueConfig.comments
|
||||
}
|
||||
|
||||
async addLabel(label: string): Promise<void> {
|
||||
this.issueConfig.labels.push(label)
|
||||
}
|
||||
|
||||
async removeLabel(labelToDelete: string): Promise<void> {
|
||||
this.issueConfig.labels = this.issueConfig.labels.filter((label) => label !== labelToDelete)
|
||||
}
|
||||
|
||||
async closeIssue(): Promise<void> {
|
||||
this.issueConfig.issue.open = false
|
||||
}
|
||||
|
||||
async lockIssue(): Promise<void> {
|
||||
this.issueConfig.issue.locked = true
|
||||
}
|
||||
|
||||
async getClosingInfo(): Promise<{ hash: string | undefined; timestamp: number } | undefined> {
|
||||
return this.issueConfig.closingCommit
|
||||
}
|
||||
}
|
||||
12
build/actions/auto-labeler/action.yml
Normal file
12
build/actions/auto-labeler/action.yml
Normal file
@@ -0,0 +1,12 @@
|
||||
name: 'PR Labeler'
|
||||
description: 'Automatically add a Label to a PR'
|
||||
inputs:
|
||||
token:
|
||||
description: GitHub token with issue, comment, and label read/write permissions
|
||||
default: ${{ github.token }}
|
||||
label:
|
||||
description: Github label to add to the PR
|
||||
required: true
|
||||
runs:
|
||||
using: 'node12'
|
||||
main: 'index.js'
|
||||
22
build/actions/auto-labeler/index.js
Normal file
22
build/actions/auto-labeler/index.js
Normal file
@@ -0,0 +1,22 @@
|
||||
"use strict";
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const core = require("@actions/core");
|
||||
const github_1 = require("@actions/github");
|
||||
const octokit_1 = require("../api/octokit");
|
||||
const utils_1 = require("../utils/utils");
|
||||
const token = utils_1.getRequiredInput('token');
|
||||
const label = utils_1.getRequiredInput('label');
|
||||
async function main() {
|
||||
const pr = new octokit_1.OctoKitIssue(token, github_1.context.repo, { number: github_1.context.issue.number });
|
||||
pr.addLabel(label);
|
||||
}
|
||||
main()
|
||||
.then(() => utils_1.logRateLimit(token))
|
||||
.catch(async (error) => {
|
||||
core.setFailed(error.message);
|
||||
await utils_1.logErrorToIssue(error.message, true, token);
|
||||
});
|
||||
26
build/actions/auto-labeler/index.ts
Normal file
26
build/actions/auto-labeler/index.ts
Normal file
@@ -0,0 +1,26 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as core from '@actions/core'
|
||||
import { context } from '@actions/github'
|
||||
import { OctoKitIssue } from '../api/octokit'
|
||||
import { getRequiredInput, logErrorToIssue, logRateLimit } from '../utils/utils'
|
||||
|
||||
const token = getRequiredInput('token');
|
||||
const label = getRequiredInput('label');
|
||||
|
||||
async function main() {
|
||||
|
||||
const pr = new OctoKitIssue(token, context.repo, { number: context.issue.number });
|
||||
|
||||
pr.addLabel(label);
|
||||
}
|
||||
|
||||
main()
|
||||
.then(() => logRateLimit(token))
|
||||
.catch(async (error) => {
|
||||
core.setFailed(error.message)
|
||||
await logErrorToIssue(error.message, true, token)
|
||||
})
|
||||
15
build/actions/copycat/action.yml
Normal file
15
build/actions/copycat/action.yml
Normal file
@@ -0,0 +1,15 @@
|
||||
name: Copycat
|
||||
description: Copy all new issues to a different repo
|
||||
inputs:
|
||||
token:
|
||||
description: GitHub token with issue, comment, and label read/write permissions to both repos
|
||||
default: ${{ github.token }}
|
||||
owner:
|
||||
description: account/organization that owns the destination repo (the microsoft part of microsoft/vscode)
|
||||
required: true
|
||||
repo:
|
||||
description: name of the destination repo (the vscode part of microsoft/vscode)
|
||||
required: true
|
||||
runs:
|
||||
using: 'node12'
|
||||
main: 'index.js'
|
||||
19
build/actions/copycat/copyCat.js
Normal file
19
build/actions/copycat/copyCat.js
Normal file
@@ -0,0 +1,19 @@
|
||||
"use strict";
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
class CopyCat {
|
||||
constructor(github, owner, repo) {
|
||||
this.github = github;
|
||||
this.owner = owner;
|
||||
this.repo = repo;
|
||||
}
|
||||
async run() {
|
||||
const issue = await this.github.getIssue();
|
||||
console.log(`Mirroring issue \`${issue.title}\` to ${this.owner}/${this.repo}`);
|
||||
await this.github.createIssue(this.owner, this.repo, issue.title, issue.body.replace(/@|#|issues/g, '-'));
|
||||
}
|
||||
}
|
||||
exports.CopyCat = CopyCat;
|
||||
21
build/actions/copycat/copyCat.ts
Normal file
21
build/actions/copycat/copyCat.ts
Normal file
@@ -0,0 +1,21 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import { GitHubIssue } from '../api/api'
|
||||
|
||||
export class CopyCat {
|
||||
constructor(private github: GitHubIssue, private owner: string, private repo: string) {}
|
||||
|
||||
async run() {
|
||||
const issue = await this.github.getIssue()
|
||||
console.log(`Mirroring issue \`${issue.title}\` to ${this.owner}/${this.repo}`)
|
||||
await this.github.createIssue(
|
||||
this.owner,
|
||||
this.repo,
|
||||
issue.title,
|
||||
issue.body.replace(/@|#|issues/g, '-'),
|
||||
)
|
||||
}
|
||||
}
|
||||
21
build/actions/copycat/index.js
Normal file
21
build/actions/copycat/index.js
Normal file
@@ -0,0 +1,21 @@
|
||||
"use strict";
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const core = require("@actions/core");
|
||||
const github_1 = require("@actions/github");
|
||||
const octokit_1 = require("../api/octokit");
|
||||
const utils_1 = require("../utils/utils");
|
||||
const copyCat_1 = require("./copyCat");
|
||||
const token = utils_1.getRequiredInput('token');
|
||||
const main = async () => {
|
||||
await new copyCat_1.CopyCat(new octokit_1.OctoKitIssue(token, github_1.context.repo, { number: github_1.context.issue.number }), utils_1.getRequiredInput('owner'), utils_1.getRequiredInput('repo')).run();
|
||||
};
|
||||
main()
|
||||
.then(() => utils_1.logRateLimit(token))
|
||||
.catch(async (error) => {
|
||||
core.setFailed(error.message);
|
||||
await utils_1.logErrorToIssue(error.message, true, token);
|
||||
});
|
||||
27
build/actions/copycat/index.ts
Normal file
27
build/actions/copycat/index.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as core from '@actions/core'
|
||||
import { context } from '@actions/github'
|
||||
import { OctoKitIssue } from '../api/octokit'
|
||||
import { getRequiredInput, logErrorToIssue, logRateLimit } from '../utils/utils'
|
||||
import { CopyCat } from './copyCat'
|
||||
|
||||
const token = getRequiredInput('token')
|
||||
|
||||
const main = async () => {
|
||||
await new CopyCat(
|
||||
new OctoKitIssue(token, context.repo, { number: context.issue.number }),
|
||||
getRequiredInput('owner'),
|
||||
getRequiredInput('repo'),
|
||||
).run()
|
||||
}
|
||||
|
||||
main()
|
||||
.then(() => logRateLimit(token))
|
||||
.catch(async (error) => {
|
||||
core.setFailed(error.message)
|
||||
await logErrorToIssue(error.message, true, token)
|
||||
})
|
||||
24
build/actions/package.json
Normal file
24
build/actions/package.json
Normal file
@@ -0,0 +1,24 @@
|
||||
{
|
||||
"name": "github-actions",
|
||||
"version": "1.0.0",
|
||||
"description": "GitHub Actions",
|
||||
"scripts": {
|
||||
"test": "mocha -r ts-node/register **/*.test.ts",
|
||||
"build": "tsc -p ./tsconfig.json",
|
||||
"lint": "eslint -c .eslintrc --fix --ext .ts .",
|
||||
"watch-typecheck": "tsc --watch"
|
||||
},
|
||||
"repository": {
|
||||
"type": "git",
|
||||
"url": "git+https://github.com/microsoft/azuredatastudio.git"
|
||||
},
|
||||
"keywords": [],
|
||||
"author": "",
|
||||
"dependencies": {
|
||||
"@actions/core": "^1.2.3",
|
||||
"@actions/github": "^2.1.1",
|
||||
"axios": "^0.19.2",
|
||||
"ts-node": "^8.6.2",
|
||||
"typescript": "^3.8.3"
|
||||
}
|
||||
}
|
||||
19
build/actions/tsconfig.json
Normal file
19
build/actions/tsconfig.json
Normal file
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"compilerOptions": {
|
||||
"target": "es2019",
|
||||
"strict": true,
|
||||
"module": "commonjs",
|
||||
"moduleResolution": "node",
|
||||
"removeComments": false,
|
||||
"resolveJsonModule": true,
|
||||
"lib": [
|
||||
"es2020"
|
||||
],
|
||||
},
|
||||
"include": [
|
||||
"./**/*.ts"
|
||||
],
|
||||
"exclude": [
|
||||
"node_modules"
|
||||
]
|
||||
}
|
||||
72
build/actions/utils/utils.js
Normal file
72
build/actions/utils/utils.js
Normal file
@@ -0,0 +1,72 @@
|
||||
"use strict";
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
Object.defineProperty(exports, "__esModule", { value: true });
|
||||
const core = require("@actions/core");
|
||||
const github_1 = require("@actions/github");
|
||||
const axios_1 = require("axios");
|
||||
const octokit_1 = require("../api/octokit");
|
||||
exports.getInput = (name) => core.getInput(name) || undefined;
|
||||
exports.getRequiredInput = (name) => core.getInput(name, { required: true });
|
||||
exports.normalizeIssue = (issue) => {
|
||||
const { body, title } = issue;
|
||||
const isBug = body.includes('bug_report_template') || /Issue Type:.*Bug.*/.test(body);
|
||||
const isFeatureRequest = body.includes('feature_request_template') || /Issue Type:.*Feature Request.*/.test(body);
|
||||
const cleanse = (str) => str
|
||||
.toLowerCase()
|
||||
.replace(/<!--.*?-->/gu, '')
|
||||
.replace(/.* version: .*/gu, '')
|
||||
.replace(/issue type: .*/gu, '')
|
||||
.replace(/<details>(.|\s)*?<\/details>/gu, '')
|
||||
.replace(/vs ?code/gu, '')
|
||||
.replace(/we have written.*please paste./gu, '')
|
||||
.replace(/steps to reproduce:/gu, '')
|
||||
.replace(/does this issue occur when all extensions are disabled.*/gu, '')
|
||||
.replace(/```(.|\s)*?```/gu, '')
|
||||
.replace(/!?\[.*?\]\(.*?\)/gu, '')
|
||||
.replace(/\s+/gu, ' ');
|
||||
return {
|
||||
body: cleanse(body),
|
||||
title: cleanse(title),
|
||||
issueType: isBug ? 'bug' : isFeatureRequest ? 'feature_request' : 'unknown',
|
||||
};
|
||||
};
|
||||
exports.loadLatestRelease = async (quality) => (await axios_1.default.get(`https://vscode-update.azurewebsites.net/api/update/darwin/${quality}/latest`)).data;
|
||||
exports.daysAgoToTimestamp = (days) => +new Date(Date.now() - days * 24 * 60 * 60 * 1000);
|
||||
exports.daysAgoToHumanReadbleDate = (days) => new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString().replace(/\.\d{3}\w$/, '');
|
||||
exports.logRateLimit = async (token) => {
|
||||
const usageData = (await new github_1.GitHub(token).rateLimit.get()).data.resources;
|
||||
['core', 'graphql', 'search'].forEach(async (category) => {
|
||||
const usage = 1 - usageData[category].remaining / usageData[category].limit;
|
||||
const message = `Usage at ${usage} for ${category}`;
|
||||
if (usage > 0) {
|
||||
console.log(message);
|
||||
}
|
||||
if (usage > 0.5) {
|
||||
await exports.logErrorToIssue(message, false, token);
|
||||
}
|
||||
});
|
||||
};
|
||||
exports.logErrorToIssue = async (message, ping, token) => {
|
||||
// Attempt to wait out abuse detection timeout if present
|
||||
await new Promise((resolve) => setTimeout(resolve, 10000));
|
||||
const dest = github_1.context.repo.repo === 'vscode-internalbacklog'
|
||||
? { repo: 'vscode-internalbacklog', issue: 974 }
|
||||
: { repo: 'vscode', issue: 93814 };
|
||||
return new octokit_1.OctoKitIssue(token, { owner: 'Microsoft', repo: dest.repo }, { number: dest.issue })
|
||||
.postComment(`
|
||||
Workflow: ${github_1.context.workflow}
|
||||
|
||||
Error: ${message}
|
||||
|
||||
Issue: ${ping ? `${github_1.context.repo.owner}/${github_1.context.repo.repo}#` : ''}${github_1.context.issue.number}
|
||||
|
||||
Repo: ${github_1.context.repo.owner}/${github_1.context.repo.repo}
|
||||
|
||||
<!-- Context:
|
||||
${JSON.stringify(github_1.context, null, 2).replace(/<!--/gu, '<@--').replace(/-->/gu, '--@>')}
|
||||
-->
|
||||
`);
|
||||
};
|
||||
95
build/actions/utils/utils.ts
Normal file
95
build/actions/utils/utils.ts
Normal file
@@ -0,0 +1,95 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as core from '@actions/core'
|
||||
import { context, GitHub } from '@actions/github'
|
||||
import axios from 'axios'
|
||||
import { OctoKitIssue } from '../api/octokit'
|
||||
import { Issue } from '../api/api'
|
||||
|
||||
export const getInput = (name: string) => core.getInput(name) || undefined
|
||||
export const getRequiredInput = (name: string) => core.getInput(name, { required: true })
|
||||
|
||||
export const normalizeIssue = (
|
||||
issue: Issue,
|
||||
): { body: string; title: string; issueType: 'bug' | 'feature_request' | 'unknown' } => {
|
||||
const { body, title } = issue
|
||||
|
||||
const isBug = body.includes('bug_report_template') || /Issue Type:.*Bug.*/.test(body)
|
||||
const isFeatureRequest =
|
||||
body.includes('feature_request_template') || /Issue Type:.*Feature Request.*/.test(body)
|
||||
|
||||
const cleanse = (str: string) =>
|
||||
str
|
||||
.toLowerCase()
|
||||
.replace(/<!--.*?-->/gu, '')
|
||||
.replace(/.* version: .*/gu, '')
|
||||
.replace(/issue type: .*/gu, '')
|
||||
.replace(/<details>(.|\s)*?<\/details>/gu, '')
|
||||
.replace(/vs ?code/gu, '')
|
||||
.replace(/we have written.*please paste./gu, '')
|
||||
.replace(/steps to reproduce:/gu, '')
|
||||
.replace(/does this issue occur when all extensions are disabled.*/gu, '')
|
||||
.replace(/```(.|\s)*?```/gu, '')
|
||||
.replace(/!?\[.*?\]\(.*?\)/gu, '')
|
||||
.replace(/\s+/gu, ' ')
|
||||
|
||||
return {
|
||||
body: cleanse(body),
|
||||
title: cleanse(title),
|
||||
issueType: isBug ? 'bug' : isFeatureRequest ? 'feature_request' : 'unknown',
|
||||
}
|
||||
}
|
||||
|
||||
export interface Release {
|
||||
productVersion: string
|
||||
timestamp: number
|
||||
version: string
|
||||
}
|
||||
|
||||
export const loadLatestRelease = async (quality: 'stable' | 'insider'): Promise<Release | undefined> =>
|
||||
(await axios.get(`https://vscode-update.azurewebsites.net/api/update/darwin/${quality}/latest`)).data
|
||||
|
||||
export const daysAgoToTimestamp = (days: number): number => +new Date(Date.now() - days * 24 * 60 * 60 * 1000)
|
||||
|
||||
export const daysAgoToHumanReadbleDate = (days: number) =>
|
||||
new Date(Date.now() - days * 24 * 60 * 60 * 1000).toISOString().replace(/\.\d{3}\w$/, '')
|
||||
|
||||
export const logRateLimit = async (token: string) => {
|
||||
const usageData = (await new GitHub(token).rateLimit.get()).data.resources
|
||||
;(['core', 'graphql', 'search'] as const).forEach(async (category) => {
|
||||
const usage = 1 - usageData[category].remaining / usageData[category].limit
|
||||
const message = `Usage at ${usage} for ${category}`
|
||||
if (usage > 0) {
|
||||
console.log(message)
|
||||
}
|
||||
if (usage > 0.5) {
|
||||
await logErrorToIssue(message, false, token)
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
export const logErrorToIssue = async (message: string, ping: boolean, token: string): Promise<void> => {
|
||||
// Attempt to wait out abuse detection timeout if present
|
||||
await new Promise((resolve) => setTimeout(resolve, 10000))
|
||||
const dest =
|
||||
context.repo.repo === 'vscode-internalbacklog'
|
||||
? { repo: 'vscode-internalbacklog', issue: 974 }
|
||||
: { repo: 'vscode', issue: 93814 }
|
||||
return new OctoKitIssue(token, { owner: 'Microsoft', repo: dest.repo }, { number: dest.issue })
|
||||
.postComment(`
|
||||
Workflow: ${context.workflow}
|
||||
|
||||
Error: ${message}
|
||||
|
||||
Issue: ${ping ? `${context.repo.owner}/${context.repo.repo}#` : ''}${context.issue.number}
|
||||
|
||||
Repo: ${context.repo.owner}/${context.repo.repo}
|
||||
|
||||
<!-- Context:
|
||||
${JSON.stringify(context, null, 2).replace(/<!--/gu, '<@--').replace(/-->/gu, '--@>')}
|
||||
-->
|
||||
`)
|
||||
}
|
||||
435
build/actions/yarn.lock
Normal file
435
build/actions/yarn.lock
Normal file
@@ -0,0 +1,435 @@
|
||||
# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.
|
||||
# yarn lockfile v1
|
||||
|
||||
|
||||
"@actions/core@^1.2.3":
|
||||
version "1.2.3"
|
||||
resolved "https://registry.yarnpkg.com/@actions/core/-/core-1.2.3.tgz#e844b4fa0820e206075445079130868f95bfca95"
|
||||
integrity sha512-Wp4xnyokakM45Uuj4WLUxdsa8fJjKVl1fDTsPbTEcTcuu0Nb26IPQbOtjmnfaCPGcaoPOOqId8H9NapZ8gii4w==
|
||||
|
||||
"@actions/github@^2.1.1":
|
||||
version "2.1.1"
|
||||
resolved "https://registry.yarnpkg.com/@actions/github/-/github-2.1.1.tgz#bcabedff598196d953f58ba750d5e75549a75142"
|
||||
integrity sha512-kAgTGUx7yf5KQCndVeHSwCNZuDBvPyxm5xKTswW2lofugeuC1AZX73nUUVDNaysnM9aKFMHv9YCdVJbg7syEyA==
|
||||
dependencies:
|
||||
"@actions/http-client" "^1.0.3"
|
||||
"@octokit/graphql" "^4.3.1"
|
||||
"@octokit/rest" "^16.43.1"
|
||||
|
||||
"@actions/http-client@^1.0.3":
|
||||
version "1.0.8"
|
||||
resolved "https://registry.yarnpkg.com/@actions/http-client/-/http-client-1.0.8.tgz#8bd76e8eca89dc8bcf619aa128eba85f7a39af45"
|
||||
integrity sha512-G4JjJ6f9Hb3Zvejj+ewLLKLf99ZC+9v+yCxoYf9vSyH+WkzPLB2LuUtRMGNkooMqdugGBFStIKXOuvH1W+EctA==
|
||||
dependencies:
|
||||
tunnel "0.0.6"
|
||||
|
||||
"@octokit/auth-token@^2.4.0":
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/auth-token/-/auth-token-2.4.0.tgz#b64178975218b99e4dfe948253f0673cbbb59d9f"
|
||||
integrity sha512-eoOVMjILna7FVQf96iWc3+ZtE/ZT6y8ob8ZzcqKY1ibSQCnu4O/B7pJvzMx5cyZ/RjAff6DAdEb0O0Cjcxidkg==
|
||||
dependencies:
|
||||
"@octokit/types" "^2.0.0"
|
||||
|
||||
"@octokit/endpoint@^6.0.1":
|
||||
version "6.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/endpoint/-/endpoint-6.0.1.tgz#16d5c0e7a83e3a644d1ddbe8cded6c3d038d31d7"
|
||||
integrity sha512-pOPHaSz57SFT/m3R5P8MUu4wLPszokn5pXcB/pzavLTQf2jbU+6iayTvzaY6/BiotuRS0qyEUkx3QglT4U958A==
|
||||
dependencies:
|
||||
"@octokit/types" "^2.11.1"
|
||||
is-plain-object "^3.0.0"
|
||||
universal-user-agent "^5.0.0"
|
||||
|
||||
"@octokit/graphql@^4.3.1":
|
||||
version "4.3.1"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/graphql/-/graphql-4.3.1.tgz#9ee840e04ed2906c7d6763807632de84cdecf418"
|
||||
integrity sha512-hCdTjfvrK+ilU2keAdqNBWOk+gm1kai1ZcdjRfB30oA3/T6n53UVJb7w0L5cR3/rhU91xT3HSqCd+qbvH06yxA==
|
||||
dependencies:
|
||||
"@octokit/request" "^5.3.0"
|
||||
"@octokit/types" "^2.0.0"
|
||||
universal-user-agent "^4.0.0"
|
||||
|
||||
"@octokit/plugin-paginate-rest@^1.1.1":
|
||||
version "1.1.2"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/plugin-paginate-rest/-/plugin-paginate-rest-1.1.2.tgz#004170acf8c2be535aba26727867d692f7b488fc"
|
||||
integrity sha512-jbsSoi5Q1pj63sC16XIUboklNw+8tL9VOnJsWycWYR78TKss5PVpIPb1TUUcMQ+bBh7cY579cVAWmf5qG+dw+Q==
|
||||
dependencies:
|
||||
"@octokit/types" "^2.0.1"
|
||||
|
||||
"@octokit/plugin-request-log@^1.0.0":
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/plugin-request-log/-/plugin-request-log-1.0.0.tgz#eef87a431300f6148c39a7f75f8cfeb218b2547e"
|
||||
integrity sha512-ywoxP68aOT3zHCLgWZgwUJatiENeHE7xJzYjfz8WI0goynp96wETBF+d95b8g/uL4QmS6owPVlaxiz3wyMAzcw==
|
||||
|
||||
"@octokit/plugin-rest-endpoint-methods@2.4.0":
|
||||
version "2.4.0"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/plugin-rest-endpoint-methods/-/plugin-rest-endpoint-methods-2.4.0.tgz#3288ecf5481f68c494dd0602fc15407a59faf61e"
|
||||
integrity sha512-EZi/AWhtkdfAYi01obpX0DF7U6b1VRr30QNQ5xSFPITMdLSfhcBqjamE3F+sKcxPbD7eZuMHu3Qkk2V+JGxBDQ==
|
||||
dependencies:
|
||||
"@octokit/types" "^2.0.1"
|
||||
deprecation "^2.3.1"
|
||||
|
||||
"@octokit/request-error@^1.0.2":
|
||||
version "1.2.1"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-1.2.1.tgz#ede0714c773f32347576c25649dc013ae6b31801"
|
||||
integrity sha512-+6yDyk1EES6WK+l3viRDElw96MvwfJxCt45GvmjDUKWjYIb3PJZQkq3i46TwGwoPD4h8NmTrENmtyA1FwbmhRA==
|
||||
dependencies:
|
||||
"@octokit/types" "^2.0.0"
|
||||
deprecation "^2.0.0"
|
||||
once "^1.4.0"
|
||||
|
||||
"@octokit/request-error@^2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/request-error/-/request-error-2.0.0.tgz#94ca7293373654400fbb2995f377f9473e00834b"
|
||||
integrity sha512-rtYicB4Absc60rUv74Rjpzek84UbVHGHJRu4fNVlZ1mCcyUPPuzFfG9Rn6sjHrd95DEsmjSt1Axlc699ZlbDkw==
|
||||
dependencies:
|
||||
"@octokit/types" "^2.0.0"
|
||||
deprecation "^2.0.0"
|
||||
once "^1.4.0"
|
||||
|
||||
"@octokit/request@^5.2.0", "@octokit/request@^5.3.0":
|
||||
version "5.4.2"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/request/-/request-5.4.2.tgz#74f8e5bbd39dc738a1b127629791f8ad1b3193ee"
|
||||
integrity sha512-zKdnGuQ2TQ2vFk9VU8awFT4+EYf92Z/v3OlzRaSh4RIP0H6cvW1BFPXq4XYvNez+TPQjqN+0uSkCYnMFFhcFrw==
|
||||
dependencies:
|
||||
"@octokit/endpoint" "^6.0.1"
|
||||
"@octokit/request-error" "^2.0.0"
|
||||
"@octokit/types" "^2.11.1"
|
||||
deprecation "^2.0.0"
|
||||
is-plain-object "^3.0.0"
|
||||
node-fetch "^2.3.0"
|
||||
once "^1.4.0"
|
||||
universal-user-agent "^5.0.0"
|
||||
|
||||
"@octokit/rest@^16.43.1":
|
||||
version "16.43.1"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/rest/-/rest-16.43.1.tgz#3b11e7d1b1ac2bbeeb23b08a17df0b20947eda6b"
|
||||
integrity sha512-gfFKwRT/wFxq5qlNjnW2dh+qh74XgTQ2B179UX5K1HYCluioWj8Ndbgqw2PVqa1NnVJkGHp2ovMpVn/DImlmkw==
|
||||
dependencies:
|
||||
"@octokit/auth-token" "^2.4.0"
|
||||
"@octokit/plugin-paginate-rest" "^1.1.1"
|
||||
"@octokit/plugin-request-log" "^1.0.0"
|
||||
"@octokit/plugin-rest-endpoint-methods" "2.4.0"
|
||||
"@octokit/request" "^5.2.0"
|
||||
"@octokit/request-error" "^1.0.2"
|
||||
atob-lite "^2.0.0"
|
||||
before-after-hook "^2.0.0"
|
||||
btoa-lite "^1.0.0"
|
||||
deprecation "^2.0.0"
|
||||
lodash.get "^4.4.2"
|
||||
lodash.set "^4.3.2"
|
||||
lodash.uniq "^4.5.0"
|
||||
octokit-pagination-methods "^1.1.0"
|
||||
once "^1.4.0"
|
||||
universal-user-agent "^4.0.0"
|
||||
|
||||
"@octokit/types@^2.0.0", "@octokit/types@^2.0.1", "@octokit/types@^2.11.1":
|
||||
version "2.12.1"
|
||||
resolved "https://registry.yarnpkg.com/@octokit/types/-/types-2.12.1.tgz#4a26b4a85ec121043d3b0745b5798f9d8fd968ca"
|
||||
integrity sha512-LRLR1tjbcCfAmUElvTmMvLEzstpx6Xt/aQVTg2xvd+kHA2Ekp1eWl5t+gU7bcwjXHYEAzh4hH4WH+kS3vh+wRw==
|
||||
dependencies:
|
||||
"@types/node" ">= 8"
|
||||
|
||||
"@types/node@>= 8":
|
||||
version "13.13.2"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-13.13.2.tgz#160d82623610db590a64e8ca81784e11117e5a54"
|
||||
integrity sha512-LB2R1Oyhpg8gu4SON/mfforE525+Hi/M1ineICEDftqNVTyFg1aRIeGuTvXAoWHc4nbrFncWtJgMmoyRvuGh7A==
|
||||
|
||||
arg@^4.1.0:
|
||||
version "4.1.3"
|
||||
resolved "https://registry.yarnpkg.com/arg/-/arg-4.1.3.tgz#269fc7ad5b8e42cb63c896d5666017261c144089"
|
||||
integrity sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==
|
||||
|
||||
atob-lite@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/atob-lite/-/atob-lite-2.0.0.tgz#0fef5ad46f1bd7a8502c65727f0367d5ee43d696"
|
||||
integrity sha1-D+9a1G8b16hQLGVyfwNn1e5D1pY=
|
||||
|
||||
axios@^0.19.2:
|
||||
version "0.19.2"
|
||||
resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27"
|
||||
integrity sha512-fjgm5MvRHLhx+osE2xoekY70AhARk3a6hkN+3Io1jc00jtquGvxYlKlsFUhmUET0V5te6CcZI7lcv2Ym61mjHA==
|
||||
dependencies:
|
||||
follow-redirects "1.5.10"
|
||||
|
||||
before-after-hook@^2.0.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/before-after-hook/-/before-after-hook-2.1.0.tgz#b6c03487f44e24200dd30ca5e6a1979c5d2fb635"
|
||||
integrity sha512-IWIbu7pMqyw3EAJHzzHbWa85b6oud/yfKYg5rqB5hNE8CeMi3nX+2C2sj0HswfblST86hpVEOAb9x34NZd6P7A==
|
||||
|
||||
btoa-lite@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/btoa-lite/-/btoa-lite-1.0.0.tgz#337766da15801210fdd956c22e9c6891ab9d0337"
|
||||
integrity sha1-M3dm2hWAEhD92VbCLpxokaudAzc=
|
||||
|
||||
buffer-from@^1.0.0:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
|
||||
integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
|
||||
|
||||
cross-spawn@^6.0.0:
|
||||
version "6.0.5"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
|
||||
integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
|
||||
dependencies:
|
||||
nice-try "^1.0.4"
|
||||
path-key "^2.0.1"
|
||||
semver "^5.5.0"
|
||||
shebang-command "^1.2.0"
|
||||
which "^1.2.9"
|
||||
|
||||
debug@=3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261"
|
||||
integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==
|
||||
dependencies:
|
||||
ms "2.0.0"
|
||||
|
||||
deprecation@^2.0.0, deprecation@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/deprecation/-/deprecation-2.3.1.tgz#6368cbdb40abf3373b525ac87e4a260c3a700919"
|
||||
integrity sha512-xmHIy4F3scKVwMsQ4WnVaS8bHOx0DmVwRywosKhaILI0ywMDWPtBSku2HNxRvF7jtwDRsoEwYQSfbxj8b7RlJQ==
|
||||
|
||||
diff@^4.0.1:
|
||||
version "4.0.2"
|
||||
resolved "https://registry.yarnpkg.com/diff/-/diff-4.0.2.tgz#60f3aecb89d5fae520c11aa19efc2bb982aade7d"
|
||||
integrity sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==
|
||||
|
||||
end-of-stream@^1.1.0:
|
||||
version "1.4.4"
|
||||
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
|
||||
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
|
||||
dependencies:
|
||||
once "^1.4.0"
|
||||
|
||||
execa@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8"
|
||||
integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==
|
||||
dependencies:
|
||||
cross-spawn "^6.0.0"
|
||||
get-stream "^4.0.0"
|
||||
is-stream "^1.1.0"
|
||||
npm-run-path "^2.0.0"
|
||||
p-finally "^1.0.0"
|
||||
signal-exit "^3.0.0"
|
||||
strip-eof "^1.0.0"
|
||||
|
||||
follow-redirects@1.5.10:
|
||||
version "1.5.10"
|
||||
resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.5.10.tgz#7b7a9f9aea2fdff36786a94ff643ed07f4ff5e2a"
|
||||
integrity sha512-0V5l4Cizzvqt5D44aTXbFZz+FtyXV1vrDN6qrelxtfYQKW0KO0W2T/hkE8xvGa/540LkZlkaUjO4ailYTFtHVQ==
|
||||
dependencies:
|
||||
debug "=3.1.0"
|
||||
|
||||
get-stream@^4.0.0:
|
||||
version "4.1.0"
|
||||
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
|
||||
integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==
|
||||
dependencies:
|
||||
pump "^3.0.0"
|
||||
|
||||
is-plain-object@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-3.0.0.tgz#47bfc5da1b5d50d64110806c199359482e75a928"
|
||||
integrity sha512-tZIpofR+P05k8Aocp7UI/2UTa9lTJSebCXpFFoR9aibpokDj/uXBsJ8luUu0tTVYKkMU6URDUuOfJZ7koewXvg==
|
||||
dependencies:
|
||||
isobject "^4.0.0"
|
||||
|
||||
is-stream@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44"
|
||||
integrity sha1-EtSj3U5o4Lec6428hBc66A2RykQ=
|
||||
|
||||
isexe@^2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10"
|
||||
integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=
|
||||
|
||||
isobject@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/isobject/-/isobject-4.0.0.tgz#3f1c9155e73b192022a80819bacd0343711697b0"
|
||||
integrity sha512-S/2fF5wH8SJA/kmwr6HYhK/RI/OkhD84k8ntalo0iJjZikgq1XFvR5M8NPT1x5F7fBwCG3qHfnzeP/Vh/ZxCUA==
|
||||
|
||||
lodash.get@^4.4.2:
|
||||
version "4.4.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash.get/-/lodash.get-4.4.2.tgz#2d177f652fa31e939b4438d5341499dfa3825e99"
|
||||
integrity sha1-LRd/ZS+jHpObRDjVNBSZ36OCXpk=
|
||||
|
||||
lodash.set@^4.3.2:
|
||||
version "4.3.2"
|
||||
resolved "https://registry.yarnpkg.com/lodash.set/-/lodash.set-4.3.2.tgz#d8757b1da807dde24816b0d6a84bea1a76230b23"
|
||||
integrity sha1-2HV7HagH3eJIFrDWqEvqGnYjCyM=
|
||||
|
||||
lodash.uniq@^4.5.0:
|
||||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773"
|
||||
integrity sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=
|
||||
|
||||
macos-release@^2.2.0:
|
||||
version "2.3.0"
|
||||
resolved "https://registry.yarnpkg.com/macos-release/-/macos-release-2.3.0.tgz#eb1930b036c0800adebccd5f17bc4c12de8bb71f"
|
||||
integrity sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==
|
||||
|
||||
make-error@^1.1.1:
|
||||
version "1.3.6"
|
||||
resolved "https://registry.yarnpkg.com/make-error/-/make-error-1.3.6.tgz#2eb2e37ea9b67c4891f684a1394799af484cf7a2"
|
||||
integrity sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==
|
||||
|
||||
ms@2.0.0:
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8"
|
||||
integrity sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=
|
||||
|
||||
nice-try@^1.0.4:
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366"
|
||||
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
||||
|
||||
node-fetch@^2.3.0:
|
||||
version "2.6.0"
|
||||
resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.0.tgz#e633456386d4aa55863f676a7ab0daa8fdecb0fd"
|
||||
integrity sha512-8dG4H5ujfvFiqDmVu9fQ5bOHUC15JMjMY/Zumv26oOvvVJjM67KF8koCWIabKQ1GJIa9r2mMZscBq/TbdOcmNA==
|
||||
|
||||
npm-run-path@^2.0.0:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f"
|
||||
integrity sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=
|
||||
dependencies:
|
||||
path-key "^2.0.0"
|
||||
|
||||
octokit-pagination-methods@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/octokit-pagination-methods/-/octokit-pagination-methods-1.1.0.tgz#cf472edc9d551055f9ef73f6e42b4dbb4c80bea4"
|
||||
integrity sha512-fZ4qZdQ2nxJvtcasX7Ghl+WlWS/d9IgnBIwFZXVNNZUmzpno91SX5bc5vuxiuKoCtK78XxGGNuSCrDC7xYB3OQ==
|
||||
|
||||
once@^1.3.1, once@^1.4.0:
|
||||
version "1.4.0"
|
||||
resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1"
|
||||
integrity sha1-WDsap3WWHUsROsF9nFC6753Xa9E=
|
||||
dependencies:
|
||||
wrappy "1"
|
||||
|
||||
os-name@^3.1.0:
|
||||
version "3.1.0"
|
||||
resolved "https://registry.yarnpkg.com/os-name/-/os-name-3.1.0.tgz#dec19d966296e1cd62d701a5a66ee1ddeae70801"
|
||||
integrity sha512-h8L+8aNjNcMpo/mAIBPn5PXCM16iyPGjHNWo6U1YO8sJTMHtEtyczI6QJnLoplswm6goopQkqc7OAnjhWcugVg==
|
||||
dependencies:
|
||||
macos-release "^2.2.0"
|
||||
windows-release "^3.1.0"
|
||||
|
||||
p-finally@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae"
|
||||
integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=
|
||||
|
||||
path-key@^2.0.0, path-key@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40"
|
||||
integrity sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=
|
||||
|
||||
pump@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
|
||||
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
|
||||
dependencies:
|
||||
end-of-stream "^1.1.0"
|
||||
once "^1.3.1"
|
||||
|
||||
semver@^5.5.0:
|
||||
version "5.7.1"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
|
||||
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
|
||||
|
||||
shebang-command@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea"
|
||||
integrity sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=
|
||||
dependencies:
|
||||
shebang-regex "^1.0.0"
|
||||
|
||||
shebang-regex@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3"
|
||||
integrity sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=
|
||||
|
||||
signal-exit@^3.0.0:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
|
||||
integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==
|
||||
|
||||
source-map-support@^0.5.17:
|
||||
version "0.5.19"
|
||||
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
|
||||
integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
|
||||
dependencies:
|
||||
buffer-from "^1.0.0"
|
||||
source-map "^0.6.0"
|
||||
|
||||
source-map@^0.6.0:
|
||||
version "0.6.1"
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||
|
||||
strip-eof@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf"
|
||||
integrity sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=
|
||||
|
||||
ts-node@^8.6.2:
|
||||
version "8.9.0"
|
||||
resolved "https://registry.yarnpkg.com/ts-node/-/ts-node-8.9.0.tgz#d7bf7272dcbecd3a2aa18bd0b96c7d2f270c15d4"
|
||||
integrity sha512-rwkXfOs9zmoHrV8xE++dmNd6ZIS+nmHHCxcV53ekGJrxFLMbp+pizpPS07ARvhwneCIECPppOwbZHvw9sQtU4w==
|
||||
dependencies:
|
||||
arg "^4.1.0"
|
||||
diff "^4.0.1"
|
||||
make-error "^1.1.1"
|
||||
source-map-support "^0.5.17"
|
||||
yn "3.1.1"
|
||||
|
||||
tunnel@0.0.6:
|
||||
version "0.0.6"
|
||||
resolved "https://registry.yarnpkg.com/tunnel/-/tunnel-0.0.6.tgz#72f1314b34a5b192db012324df2cc587ca47f92c"
|
||||
integrity sha512-1h/Lnq9yajKY2PEbBadPXj3VxsDDu844OnaAo52UVmIzIvwwtBPIuNvkjuzBlTWpfJyUbG3ez0KSBibQkj4ojg==
|
||||
|
||||
typescript@^3.8.3:
|
||||
version "3.8.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.8.3.tgz#409eb8544ea0335711205869ec458ab109ee1061"
|
||||
integrity sha512-MYlEfn5VrLNsgudQTVJeNaQFUAI7DkhnOjdpAp4T+ku1TfQClewlbSuTVHiA+8skNBgaf02TL/kLOvig4y3G8w==
|
||||
|
||||
universal-user-agent@^4.0.0:
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-4.0.1.tgz#fd8d6cb773a679a709e967ef8288a31fcc03e557"
|
||||
integrity sha512-LnST3ebHwVL2aNe4mejI9IQh2HfZ1RLo8Io2HugSif8ekzD1TlWpHpColOB/eh8JHMLkGH3Akqf040I+4ylNxg==
|
||||
dependencies:
|
||||
os-name "^3.1.0"
|
||||
|
||||
universal-user-agent@^5.0.0:
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/universal-user-agent/-/universal-user-agent-5.0.0.tgz#a3182aa758069bf0e79952570ca757de3579c1d9"
|
||||
integrity sha512-B5TPtzZleXyPrUMKCpEHFmVhMN6EhmJYjG5PQna9s7mXeSqGTLap4OpqLl5FCEFUI3UBmllkETwKf/db66Y54Q==
|
||||
dependencies:
|
||||
os-name "^3.1.0"
|
||||
|
||||
which@^1.2.9:
|
||||
version "1.3.1"
|
||||
resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a"
|
||||
integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==
|
||||
dependencies:
|
||||
isexe "^2.0.0"
|
||||
|
||||
windows-release@^3.1.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/windows-release/-/windows-release-3.3.0.tgz#dce167e9f8be733f21c849ebd4d03fe66b29b9f0"
|
||||
integrity sha512-2HetyTg1Y+R+rUgrKeUEhAG/ZuOmTrI1NBb3ZyAGQMYmOJjBBPe4MTodghRkmLJZHwkuPi02anbeGP+Zf401LQ==
|
||||
dependencies:
|
||||
execa "^1.0.0"
|
||||
|
||||
wrappy@1:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
|
||||
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
|
||||
|
||||
yn@3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/yn/-/yn-3.1.1.tgz#1e87401a09d767c1d5eab26a6e4c185182d2eb50"
|
||||
integrity sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==
|
||||
45
build/azure-pipelines/common/copyArtifacts.ts
Normal file
45
build/azure-pipelines/common/copyArtifacts.ts
Normal file
@@ -0,0 +1,45 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import * as vfs from 'vinyl-fs';
|
||||
import * as path from 'path';
|
||||
import * as es from 'event-stream';
|
||||
import * as fs from 'fs';
|
||||
|
||||
const files = [
|
||||
'.build/extensions/**/*.vsix', // external extensions
|
||||
'.build/win32-x64/**/*.{exe,zip}', // windows binaries
|
||||
'.build/linux/sha256hashes.txt', // linux hashes
|
||||
'.build/linux/deb/amd64/deb/*.deb', // linux debs
|
||||
'.build/linux/rpm/x86_64/*.rpm', // linux rpms
|
||||
'.build/linux/server/*', // linux server
|
||||
'.build/linux/archive/*', // linux archive
|
||||
'.build/docker/*', // docker images
|
||||
'.build/darwin/*', // darwin binaries
|
||||
'.build/version.json' // version information
|
||||
];
|
||||
|
||||
async function main() {
|
||||
return new Promise((resolve, reject) => {
|
||||
const stream = vfs.src(files, { base: '.build', allowEmpty: true })
|
||||
.pipe(es.through(file => {
|
||||
const filePath = path.join(process.env.BUILD_ARTIFACTSTAGINGDIRECTORY!,
|
||||
//Preserve intermediate directories after .build folder
|
||||
file.path.substr(path.resolve('.build').length + 1));
|
||||
fs.mkdirSync(path.dirname(filePath), { recursive: true });
|
||||
fs.renameSync(file.path, filePath);
|
||||
}));
|
||||
|
||||
stream.on('end', () => resolve());
|
||||
stream.on('error', e => reject(e));
|
||||
});
|
||||
}
|
||||
|
||||
main().catch(err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
133
build/azure-pipelines/common/createAsset.ts
Normal file
133
build/azure-pipelines/common/createAsset.ts
Normal file
@@ -0,0 +1,133 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import * as fs from 'fs';
|
||||
import { Readable } from 'stream';
|
||||
import * as crypto from 'crypto';
|
||||
import * as azure from 'azure-storage';
|
||||
import * as mime from 'mime';
|
||||
import { CosmosClient } from '@azure/cosmos';
|
||||
|
||||
interface Asset {
|
||||
platform: string;
|
||||
type: string;
|
||||
url: string;
|
||||
mooncakeUrl?: string;
|
||||
hash: string;
|
||||
sha256hash: string;
|
||||
size: number;
|
||||
supportsFastUpdate?: boolean;
|
||||
}
|
||||
|
||||
if (process.argv.length !== 6) {
|
||||
console.error('Usage: node createAsset.js PLATFORM TYPE NAME FILE');
|
||||
process.exit(-1);
|
||||
}
|
||||
|
||||
function hashStream(hashName: string, stream: Readable): Promise<string> {
|
||||
return new Promise<string>((c, e) => {
|
||||
const shasum = crypto.createHash(hashName);
|
||||
|
||||
stream
|
||||
.on('data', shasum.update.bind(shasum))
|
||||
.on('error', e)
|
||||
.on('close', () => c(shasum.digest('hex')));
|
||||
});
|
||||
}
|
||||
|
||||
async function doesAssetExist(blobService: azure.BlobService, quality: string, blobName: string): Promise<boolean | undefined> {
|
||||
const existsResult = await new Promise<azure.BlobService.BlobResult>((c, e) => blobService.doesBlobExist(quality, blobName, (err, r) => err ? e(err) : c(r)));
|
||||
return existsResult.exists;
|
||||
}
|
||||
|
||||
async function uploadBlob(blobService: azure.BlobService, quality: string, blobName: string, filePath: string, fileName: string): Promise<void> {
|
||||
const blobOptions: azure.BlobService.CreateBlockBlobRequestOptions = {
|
||||
contentSettings: {
|
||||
contentType: mime.lookup(filePath),
|
||||
contentDisposition: `attachment; filename="${fileName}"`,
|
||||
cacheControl: 'max-age=31536000, public'
|
||||
}
|
||||
};
|
||||
|
||||
await new Promise((c, e) => blobService.createBlockBlobFromLocalFile(quality, blobName, filePath, blobOptions, err => err ? e(err) : c()));
|
||||
}
|
||||
|
||||
function getEnv(name: string): string {
|
||||
const result = process.env[name];
|
||||
|
||||
if (typeof result === 'undefined') {
|
||||
throw new Error('Missing env: ' + name);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
async function main(): Promise<void> {
|
||||
const [, , platform, type, fileName, filePath] = process.argv;
|
||||
const quality = getEnv('VSCODE_QUALITY');
|
||||
const commit = getEnv('BUILD_SOURCEVERSION');
|
||||
|
||||
console.log('Creating asset...');
|
||||
|
||||
const stat = await new Promise<fs.Stats>((c, e) => fs.stat(filePath, (err, stat) => err ? e(err) : c(stat)));
|
||||
const size = stat.size;
|
||||
|
||||
console.log('Size:', size);
|
||||
|
||||
const stream = fs.createReadStream(filePath);
|
||||
const [sha1hash, sha256hash] = await Promise.all([hashStream('sha1', stream), hashStream('sha256', stream)]);
|
||||
|
||||
console.log('SHA1:', sha1hash);
|
||||
console.log('SHA256:', sha256hash);
|
||||
|
||||
const blobName = commit + '/' + fileName;
|
||||
const storageAccount = process.env['AZURE_STORAGE_ACCOUNT_2']!;
|
||||
|
||||
const blobService = azure.createBlobService(storageAccount, process.env['AZURE_STORAGE_ACCESS_KEY_2']!)
|
||||
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
|
||||
|
||||
const blobExists = await doesAssetExist(blobService, quality, blobName);
|
||||
|
||||
if (blobExists) {
|
||||
console.log(`Blob ${quality}, ${blobName} already exists, not publishing again.`);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('Uploading blobs to Azure storage...');
|
||||
|
||||
await uploadBlob(blobService, quality, blobName, filePath, fileName);
|
||||
|
||||
console.log('Blobs successfully uploaded.');
|
||||
|
||||
const asset: Asset = {
|
||||
platform,
|
||||
type,
|
||||
url: `${process.env['AZURE_CDN_URL']}/${quality}/${blobName}`,
|
||||
hash: sha1hash,
|
||||
sha256hash,
|
||||
size
|
||||
};
|
||||
|
||||
// Remove this if we ever need to rollback fast updates for windows
|
||||
if (/win32/.test(platform)) {
|
||||
asset.supportsFastUpdate = true;
|
||||
}
|
||||
|
||||
console.log('Asset:', JSON.stringify(asset, null, ' '));
|
||||
|
||||
const client = new CosmosClient({ endpoint: process.env['AZURE_DOCUMENTDB_ENDPOINT']!, key: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||
const scripts = client.database('builds').container(quality).scripts;
|
||||
await scripts.storedProcedure('createAsset').execute('', [commit, asset, true]);
|
||||
}
|
||||
|
||||
main().then(() => {
|
||||
console.log('Asset successfully created');
|
||||
process.exit(0);
|
||||
}, err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
60
build/azure-pipelines/common/createBuild.ts
Normal file
60
build/azure-pipelines/common/createBuild.ts
Normal file
@@ -0,0 +1,60 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import { CosmosClient } from '@azure/cosmos';
|
||||
|
||||
if (process.argv.length !== 3) {
|
||||
console.error('Usage: node createBuild.js VERSION');
|
||||
process.exit(-1);
|
||||
}
|
||||
|
||||
function getEnv(name: string): string {
|
||||
const result = process.env[name];
|
||||
|
||||
if (typeof result === 'undefined') {
|
||||
throw new Error('Missing env: ' + name);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
async function main(): Promise<void> {
|
||||
const [, , _version] = process.argv;
|
||||
const quality = getEnv('VSCODE_QUALITY');
|
||||
const commit = getEnv('BUILD_SOURCEVERSION');
|
||||
const queuedBy = getEnv('BUILD_QUEUEDBY');
|
||||
const sourceBranch = getEnv('BUILD_SOURCEBRANCH');
|
||||
const version = _version + (quality === 'stable' ? '' : `-${quality}`);
|
||||
|
||||
console.log('Creating build...');
|
||||
console.log('Quality:', quality);
|
||||
console.log('Version:', version);
|
||||
console.log('Commit:', commit);
|
||||
|
||||
const build = {
|
||||
id: commit,
|
||||
timestamp: (new Date()).getTime(),
|
||||
version,
|
||||
isReleased: false,
|
||||
sourceBranch,
|
||||
queuedBy,
|
||||
assets: [],
|
||||
updates: {}
|
||||
};
|
||||
|
||||
const client = new CosmosClient({ endpoint: process.env['AZURE_DOCUMENTDB_ENDPOINT']!, key: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||
const scripts = client.database('builds').container(quality).scripts;
|
||||
await scripts.storedProcedure('createBuild').execute('', [{ ...build, _partitionKey: '' }]);
|
||||
}
|
||||
|
||||
main().then(() => {
|
||||
console.log('Build successfully created');
|
||||
process.exit(0);
|
||||
}, err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
19
build/azure-pipelines/common/extract-telemetry.sh
Executable file
19
build/azure-pipelines/common/extract-telemetry.sh
Executable file
@@ -0,0 +1,19 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
|
||||
cd $BUILD_STAGINGDIRECTORY
|
||||
mkdir extraction
|
||||
cd extraction
|
||||
git clone --depth 1 https://github.com/Microsoft/vscode-extension-telemetry.git
|
||||
git clone --depth 1 https://github.com/Microsoft/vscode-chrome-debug-core.git
|
||||
git clone --depth 1 https://github.com/Microsoft/vscode-node-debug2.git
|
||||
git clone --depth 1 https://github.com/Microsoft/vscode-node-debug.git
|
||||
git clone --depth 1 https://github.com/Microsoft/vscode-html-languageservice.git
|
||||
git clone --depth 1 https://github.com/Microsoft/vscode-json-languageservice.git
|
||||
node $BUILD_SOURCESDIRECTORY/build/node_modules/.bin/vscode-telemetry-extractor --sourceDir $BUILD_SOURCESDIRECTORY --excludedDir $BUILD_SOURCESDIRECTORY/extensions --outputDir . --applyEndpoints
|
||||
node $BUILD_SOURCESDIRECTORY/build/node_modules/.bin/vscode-telemetry-extractor --config $BUILD_SOURCESDIRECTORY/build/azure-pipelines/common/telemetry-config.json -o .
|
||||
mkdir -p $BUILD_SOURCESDIRECTORY/.build/telemetry
|
||||
mv declarations-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-core.json
|
||||
mv config-resolved.json $BUILD_SOURCESDIRECTORY/.build/telemetry/telemetry-extensions.json
|
||||
cd ..
|
||||
rm -rf extraction
|
||||
9
build/azure-pipelines/common/publish-webview.sh
Executable file
9
build/azure-pipelines/common/publish-webview.sh
Executable file
@@ -0,0 +1,9 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
REPO="$(pwd)"
|
||||
|
||||
# Publish webview contents
|
||||
PACKAGEJSON="$REPO/package.json"
|
||||
VERSION=$(node -p "require(\"$PACKAGEJSON\").version")
|
||||
|
||||
node build/azure-pipelines/common/publish-webview.js "$REPO/src/vs/workbench/contrib/webview/browser/pre/"
|
||||
87
build/azure-pipelines/common/publish-webview.ts
Normal file
87
build/azure-pipelines/common/publish-webview.ts
Normal file
@@ -0,0 +1,87 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
import * as azure from 'azure-storage';
|
||||
import * as mime from 'mime';
|
||||
import * as minimist from 'minimist';
|
||||
import { basename, join } from 'path';
|
||||
|
||||
const fileNames = [
|
||||
'fake.html',
|
||||
'host.js',
|
||||
'index.html',
|
||||
'main.js',
|
||||
'service-worker.js'
|
||||
];
|
||||
|
||||
async function assertContainer(blobService: azure.BlobService, container: string): Promise<void> {
|
||||
await new Promise((c, e) => blobService.createContainerIfNotExists(container, { publicAccessLevel: 'blob' }, err => err ? e(err) : c()));
|
||||
}
|
||||
|
||||
async function doesBlobExist(blobService: azure.BlobService, container: string, blobName: string): Promise<boolean | undefined> {
|
||||
const existsResult = await new Promise<azure.BlobService.BlobResult>((c, e) => blobService.doesBlobExist(container, blobName, (err, r) => err ? e(err) : c(r)));
|
||||
return existsResult.exists;
|
||||
}
|
||||
|
||||
async function uploadBlob(blobService: azure.BlobService, container: string, blobName: string, file: string): Promise<void> {
|
||||
const blobOptions: azure.BlobService.CreateBlockBlobRequestOptions = {
|
||||
contentSettings: {
|
||||
contentType: mime.lookup(file),
|
||||
cacheControl: 'max-age=31536000, public'
|
||||
}
|
||||
};
|
||||
|
||||
await new Promise((c, e) => blobService.createBlockBlobFromLocalFile(container, blobName, file, blobOptions, err => err ? e(err) : c()));
|
||||
}
|
||||
|
||||
async function publish(commit: string, files: readonly string[]): Promise<void> {
|
||||
|
||||
console.log('Publishing...');
|
||||
console.log('Commit:', commit);
|
||||
const storageAccount = process.env['AZURE_WEBVIEW_STORAGE_ACCOUNT']!;
|
||||
|
||||
const blobService = azure.createBlobService(storageAccount, process.env['AZURE_WEBVIEW_STORAGE_ACCESS_KEY']!)
|
||||
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
|
||||
|
||||
await assertContainer(blobService, commit);
|
||||
|
||||
for (const file of files) {
|
||||
const blobName = basename(file);
|
||||
const blobExists = await doesBlobExist(blobService, commit, blobName);
|
||||
if (blobExists) {
|
||||
console.log(`Blob ${commit}, ${blobName} already exists, not publishing again.`);
|
||||
continue;
|
||||
}
|
||||
console.log('Uploading blob to Azure storage...');
|
||||
await uploadBlob(blobService, commit, blobName, file);
|
||||
}
|
||||
|
||||
console.log('Blobs successfully uploaded.');
|
||||
}
|
||||
|
||||
function main(): void {
|
||||
const commit = process.env['BUILD_SOURCEVERSION'];
|
||||
|
||||
if (!commit) {
|
||||
console.warn('Skipping publish due to missing BUILD_SOURCEVERSION');
|
||||
return;
|
||||
}
|
||||
|
||||
const opts = minimist(process.argv.slice(2));
|
||||
const [directory] = opts._;
|
||||
|
||||
const files = fileNames.map(fileName => join(directory, fileName));
|
||||
|
||||
publish(commit, files).catch(err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
|
||||
if (process.argv.length < 3) {
|
||||
console.error('Usage: node publish.js <directory>');
|
||||
process.exit(-1);
|
||||
}
|
||||
main();
|
||||
270
build/azure-pipelines/common/publish.ts
Normal file
270
build/azure-pipelines/common/publish.ts
Normal file
@@ -0,0 +1,270 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import * as fs from 'fs';
|
||||
import { Readable } from 'stream';
|
||||
import * as crypto from 'crypto';
|
||||
import * as azure from 'azure-storage';
|
||||
import * as mime from 'mime';
|
||||
import * as minimist from 'minimist';
|
||||
import { DocumentClient, NewDocument } from 'documentdb';
|
||||
|
||||
// {{SQL CARBON EDIT}}
|
||||
if (process.argv.length < 9) {
|
||||
console.error('Usage: node publish.js <product_quality> <platform> <file_type> <file_name> <version> <is_update> <file> [commit_id]');
|
||||
process.exit(-1);
|
||||
}
|
||||
|
||||
function hashStream(hashName: string, stream: Readable): Promise<string> {
|
||||
return new Promise<string>((c, e) => {
|
||||
const shasum = crypto.createHash(hashName);
|
||||
|
||||
stream
|
||||
.on('data', shasum.update.bind(shasum))
|
||||
.on('error', e)
|
||||
.on('close', () => c(shasum.digest('hex')));
|
||||
});
|
||||
}
|
||||
|
||||
interface Config {
|
||||
id: string;
|
||||
frozen: boolean;
|
||||
}
|
||||
|
||||
function createDefaultConfig(quality: string): Config {
|
||||
return {
|
||||
id: quality,
|
||||
frozen: false
|
||||
};
|
||||
}
|
||||
|
||||
function getConfig(quality: string): Promise<Config> {
|
||||
const client = new DocumentClient(process.env['AZURE_DOCUMENTDB_ENDPOINT']!, { masterKey: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||
const collection = 'dbs/builds/colls/config';
|
||||
const query = {
|
||||
query: `SELECT TOP 1 * FROM c WHERE c.id = @quality`,
|
||||
parameters: [
|
||||
{ name: '@quality', value: quality }
|
||||
]
|
||||
};
|
||||
|
||||
return new Promise<Config>((c, e) => {
|
||||
client.queryDocuments(collection, query, { enableCrossPartitionQuery: true }).toArray((err, results) => {
|
||||
if (err && err.code !== 409) { return e(err); }
|
||||
|
||||
c(!results || results.length === 0 ? createDefaultConfig(quality) : results[0] as any as Config);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
interface Asset {
|
||||
platform: string;
|
||||
type: string;
|
||||
url: string;
|
||||
mooncakeUrl?: string;
|
||||
hash: string;
|
||||
sha256hash: string;
|
||||
size: number;
|
||||
supportsFastUpdate?: boolean;
|
||||
}
|
||||
|
||||
function createOrUpdate(commit: string, quality: string, platform: string, type: string, release: NewDocument, asset: Asset, isUpdate: boolean): Promise<void> {
|
||||
const client = new DocumentClient(process.env['AZURE_DOCUMENTDB_ENDPOINT']!, { masterKey: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||
const collection = 'dbs/builds/colls/' + quality;
|
||||
const updateQuery = {
|
||||
query: 'SELECT TOP 1 * FROM c WHERE c.id = @id',
|
||||
parameters: [{ name: '@id', value: commit }]
|
||||
};
|
||||
|
||||
let updateTries = 0;
|
||||
|
||||
function update(): Promise<void> {
|
||||
updateTries++;
|
||||
|
||||
return new Promise<void>((c, e) => {
|
||||
client.queryDocuments(collection, updateQuery, { enableCrossPartitionQuery: true }).toArray((err, results) => {
|
||||
if (err) { return e(err); }
|
||||
if (results.length !== 1) { return e(new Error('No documents')); }
|
||||
|
||||
const release = results[0];
|
||||
|
||||
release.assets = [
|
||||
...release.assets.filter((a: any) => !(a.platform === platform && a.type === type)),
|
||||
asset
|
||||
];
|
||||
|
||||
if (isUpdate) {
|
||||
release.updates[platform] = type;
|
||||
}
|
||||
|
||||
client.replaceDocument(release._self, release, err => {
|
||||
if (err && err.code === 409 && updateTries < 5) { return c(update()); }
|
||||
if (err) { return e(err); }
|
||||
|
||||
console.log('Build successfully updated.');
|
||||
c();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return new Promise<void>((c, e) => {
|
||||
client.createDocument(collection, release, err => {
|
||||
if (err && err.code === 409) { return c(update()); }
|
||||
if (err) { return e(err); }
|
||||
|
||||
console.log('Build successfully published.');
|
||||
c();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
async function assertContainer(blobService: azure.BlobService, quality: string): Promise<void> {
|
||||
await new Promise((c, e) => blobService.createContainerIfNotExists(quality, { publicAccessLevel: 'blob' }, err => err ? e(err) : c()));
|
||||
}
|
||||
|
||||
async function doesAssetExist(blobService: azure.BlobService, quality: string, blobName: string): Promise<boolean | undefined> {
|
||||
const existsResult = await new Promise<azure.BlobService.BlobResult>((c, e) => blobService.doesBlobExist(quality, blobName, (err, r) => err ? e(err) : c(r)));
|
||||
return existsResult.exists;
|
||||
}
|
||||
|
||||
async function uploadBlob(blobService: azure.BlobService, quality: string, blobName: string, file: string): Promise<void> {
|
||||
const blobOptions: azure.BlobService.CreateBlockBlobRequestOptions = {
|
||||
contentSettings: {
|
||||
contentType: mime.lookup(file),
|
||||
cacheControl: 'max-age=31536000, public'
|
||||
}
|
||||
};
|
||||
|
||||
await new Promise((c, e) => blobService.createBlockBlobFromLocalFile(quality, blobName, file, blobOptions, err => err ? e(err) : c()));
|
||||
}
|
||||
|
||||
interface PublishOptions {
|
||||
'upload-only': boolean;
|
||||
}
|
||||
|
||||
async function publish(commit: string, quality: string, platform: string, type: string, name: string, version: string, _isUpdate: string, file: string, opts: PublishOptions): Promise<void> {
|
||||
const isUpdate = _isUpdate === 'true';
|
||||
|
||||
const queuedBy = process.env['BUILD_QUEUEDBY']!;
|
||||
const sourceBranch = process.env['BUILD_SOURCEBRANCH']!;
|
||||
|
||||
console.log('Publishing...');
|
||||
console.log('Quality:', quality);
|
||||
console.log('Platform:', platform);
|
||||
console.log('Type:', type);
|
||||
console.log('Name:', name);
|
||||
console.log('Version:', version);
|
||||
console.log('Commit:', commit);
|
||||
console.log('Is Update:', isUpdate);
|
||||
console.log('File:', file);
|
||||
|
||||
const stat = await new Promise<fs.Stats>((c, e) => fs.stat(file, (err, stat) => err ? e(err) : c(stat)));
|
||||
const size = stat.size;
|
||||
|
||||
console.log('Size:', size);
|
||||
|
||||
const stream = fs.createReadStream(file);
|
||||
const [sha1hash, sha256hash] = await Promise.all([hashStream('sha1', stream), hashStream('sha256', stream)]);
|
||||
|
||||
console.log('SHA1:', sha1hash);
|
||||
console.log('SHA256:', sha256hash);
|
||||
|
||||
const blobName = commit + '/' + name;
|
||||
const storageAccount = process.env['AZURE_STORAGE_ACCOUNT_2']!;
|
||||
|
||||
const blobService = azure.createBlobService(storageAccount, process.env['AZURE_STORAGE_ACCESS_KEY_2']!)
|
||||
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
|
||||
|
||||
await assertContainer(blobService, quality);
|
||||
|
||||
const blobExists = await doesAssetExist(blobService, quality, blobName);
|
||||
|
||||
if (blobExists) {
|
||||
console.log(`Blob ${quality}, ${blobName} already exists, not publishing again.`);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log('Uploading blobs to Azure storage...');
|
||||
|
||||
await uploadBlob(blobService, quality, blobName, file);
|
||||
|
||||
console.log('Blobs successfully uploaded.');
|
||||
|
||||
const config = await getConfig(quality);
|
||||
|
||||
console.log('Quality config:', config);
|
||||
|
||||
const asset: Asset = {
|
||||
platform: platform,
|
||||
type: type,
|
||||
url: `${process.env['AZURE_CDN_URL']}/${quality}/${blobName}`,
|
||||
hash: sha1hash,
|
||||
sha256hash,
|
||||
size
|
||||
};
|
||||
|
||||
// Remove this if we ever need to rollback fast updates for windows
|
||||
if (/win32/.test(platform)) {
|
||||
asset.supportsFastUpdate = true;
|
||||
}
|
||||
|
||||
console.log('Asset:', JSON.stringify(asset, null, ' '));
|
||||
|
||||
// {{SQL CARBON EDIT}}
|
||||
// Insiders: nightly build from main
|
||||
const isReleased = (
|
||||
(
|
||||
(quality === 'insider' && /^main$|^refs\/heads\/main$/.test(sourceBranch)) ||
|
||||
(quality === 'rc1' && /^release\/|^refs\/heads\/release\//.test(sourceBranch))
|
||||
) &&
|
||||
/Project Collection Service Accounts|Microsoft.VisualStudio.Services.TFS/.test(queuedBy)
|
||||
);
|
||||
|
||||
const release = {
|
||||
id: commit,
|
||||
timestamp: (new Date()).getTime(),
|
||||
version,
|
||||
isReleased: isReleased,
|
||||
sourceBranch,
|
||||
queuedBy,
|
||||
assets: [] as Array<Asset>,
|
||||
updates: {} as any
|
||||
};
|
||||
|
||||
if (!opts['upload-only']) {
|
||||
release.assets.push(asset);
|
||||
|
||||
if (isUpdate) {
|
||||
release.updates[platform] = type;
|
||||
}
|
||||
}
|
||||
|
||||
await createOrUpdate(commit, quality, platform, type, release, asset, isUpdate);
|
||||
}
|
||||
|
||||
function main(): void {
|
||||
const commit = process.env['BUILD_SOURCEVERSION'];
|
||||
|
||||
if (!commit) {
|
||||
console.warn('Skipping publish due to missing BUILD_SOURCEVERSION');
|
||||
return;
|
||||
}
|
||||
|
||||
const opts = minimist<PublishOptions>(process.argv.slice(2), {
|
||||
boolean: ['upload-only']
|
||||
});
|
||||
|
||||
const [quality, platform, type, name, version, _isUpdate, file] = opts._;
|
||||
|
||||
publish(commit, quality, platform, type, name, version, _isUpdate, file, opts).catch(err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
|
||||
main();
|
||||
109
build/azure-pipelines/common/release.ts
Normal file
109
build/azure-pipelines/common/release.ts
Normal file
@@ -0,0 +1,109 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import { DocumentClient } from 'documentdb';
|
||||
|
||||
interface Config {
|
||||
id: string;
|
||||
frozen: boolean;
|
||||
}
|
||||
|
||||
function createDefaultConfig(quality: string): Config {
|
||||
return {
|
||||
id: quality,
|
||||
frozen: false
|
||||
};
|
||||
}
|
||||
|
||||
function getConfig(quality: string): Promise<Config> {
|
||||
const client = new DocumentClient(process.env['AZURE_DOCUMENTDB_ENDPOINT']!, { masterKey: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||
const collection = 'dbs/builds/colls/config';
|
||||
const query = {
|
||||
query: `SELECT TOP 1 * FROM c WHERE c.id = @quality`,
|
||||
parameters: [
|
||||
{ name: '@quality', value: quality }
|
||||
]
|
||||
};
|
||||
|
||||
return new Promise<Config>((c, e) => {
|
||||
client.queryDocuments(collection, query).toArray((err, results) => {
|
||||
if (err && err.code !== 409) { return e(err); }
|
||||
|
||||
c(!results || results.length === 0 ? createDefaultConfig(quality) : results[0] as any as Config);
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function doRelease(commit: string, quality: string): Promise<void> {
|
||||
const client = new DocumentClient(process.env['AZURE_DOCUMENTDB_ENDPOINT']!, { masterKey: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||
const collection = 'dbs/builds/colls/' + quality;
|
||||
const query = {
|
||||
query: 'SELECT TOP 1 * FROM c WHERE c.id = @id',
|
||||
parameters: [{ name: '@id', value: commit }]
|
||||
};
|
||||
|
||||
let updateTries = 0;
|
||||
|
||||
function update(): Promise<void> {
|
||||
updateTries++;
|
||||
|
||||
return new Promise<void>((c, e) => {
|
||||
client.queryDocuments(collection, query).toArray((err, results) => {
|
||||
if (err) { return e(err); }
|
||||
if (results.length !== 1) { return e(new Error('No documents')); }
|
||||
|
||||
const release = results[0];
|
||||
release.isReleased = true;
|
||||
|
||||
client.replaceDocument(release._self, release, err => {
|
||||
if (err && err.code === 409 && updateTries < 5) { return c(update()); }
|
||||
if (err) { return e(err); }
|
||||
|
||||
console.log('Build successfully updated.');
|
||||
c();
|
||||
});
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
return update();
|
||||
}
|
||||
|
||||
async function release(commit: string, quality: string): Promise<void> {
|
||||
const config = await getConfig(quality);
|
||||
|
||||
console.log('Quality config:', config);
|
||||
|
||||
if (config.frozen) {
|
||||
console.log(`Skipping release because quality ${quality} is frozen.`);
|
||||
return;
|
||||
}
|
||||
|
||||
await doRelease(commit, quality);
|
||||
}
|
||||
|
||||
function env(name: string): string {
|
||||
const result = process.env[name];
|
||||
|
||||
if (!result) {
|
||||
throw new Error(`Skipping release due to missing env: ${name}`);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
async function main(): Promise<void> {
|
||||
const commit = env('BUILD_SOURCEVERSION');
|
||||
const quality = env('VSCODE_QUALITY');
|
||||
|
||||
await release(commit, quality);
|
||||
}
|
||||
|
||||
main().catch(err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
70
build/azure-pipelines/common/releaseBuild.ts
Normal file
70
build/azure-pipelines/common/releaseBuild.ts
Normal file
@@ -0,0 +1,70 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import { CosmosClient } from '@azure/cosmos';
|
||||
|
||||
function getEnv(name: string): string {
|
||||
const result = process.env[name];
|
||||
|
||||
if (typeof result === 'undefined') {
|
||||
throw new Error('Missing env: ' + name);
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
interface Config {
|
||||
id: string;
|
||||
frozen: boolean;
|
||||
}
|
||||
|
||||
function createDefaultConfig(quality: string): Config {
|
||||
return {
|
||||
id: quality,
|
||||
frozen: false
|
||||
};
|
||||
}
|
||||
|
||||
async function getConfig(client: CosmosClient, quality: string): Promise<Config> {
|
||||
const query = `SELECT TOP 1 * FROM c WHERE c.id = "${quality}"`;
|
||||
|
||||
const res = await client.database('builds').container('config').items.query(query).fetchAll();
|
||||
|
||||
if (res.resources.length === 0) {
|
||||
return createDefaultConfig(quality);
|
||||
}
|
||||
|
||||
return res.resources[0] as Config;
|
||||
}
|
||||
|
||||
async function main(): Promise<void> {
|
||||
const commit = getEnv('BUILD_SOURCEVERSION');
|
||||
const quality = getEnv('VSCODE_QUALITY');
|
||||
|
||||
const client = new CosmosClient({ endpoint: process.env['AZURE_DOCUMENTDB_ENDPOINT']!, key: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||
const config = await getConfig(client, quality);
|
||||
|
||||
console.log('Quality config:', config);
|
||||
|
||||
if (config.frozen) {
|
||||
console.log(`Skipping release because quality ${quality} is frozen.`);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`Releasing build ${commit}...`);
|
||||
|
||||
const scripts = client.database('builds').container(quality).scripts;
|
||||
await scripts.storedProcedure('releaseBuild').execute('', [commit]);
|
||||
}
|
||||
|
||||
main().then(() => {
|
||||
console.log('Build successfully released');
|
||||
process.exit(0);
|
||||
}, err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
130
build/azure-pipelines/common/sync-mooncake.ts
Normal file
130
build/azure-pipelines/common/sync-mooncake.ts
Normal file
@@ -0,0 +1,130 @@
|
||||
/*---------------------------------------------------------------------------------------------
|
||||
* Copyright (c) Microsoft Corporation. All rights reserved.
|
||||
* Licensed under the Source EULA. See License.txt in the project root for license information.
|
||||
*--------------------------------------------------------------------------------------------*/
|
||||
|
||||
'use strict';
|
||||
|
||||
import * as url from 'url';
|
||||
import * as azure from 'azure-storage';
|
||||
import * as mime from 'mime';
|
||||
import { CosmosClient } from '@azure/cosmos';
|
||||
|
||||
function log(...args: any[]) {
|
||||
console.log(...[`[${new Date().toISOString()}]`, ...args]);
|
||||
}
|
||||
|
||||
function error(...args: any[]) {
|
||||
console.error(...[`[${new Date().toISOString()}]`, ...args]);
|
||||
}
|
||||
|
||||
if (process.argv.length < 3) {
|
||||
error('Usage: node sync-mooncake.js <quality>');
|
||||
process.exit(-1);
|
||||
}
|
||||
|
||||
interface Build {
|
||||
assets: Asset[];
|
||||
}
|
||||
|
||||
interface Asset {
|
||||
platform: string;
|
||||
type: string;
|
||||
url: string;
|
||||
mooncakeUrl: string;
|
||||
hash: string;
|
||||
sha256hash: string;
|
||||
size: number;
|
||||
supportsFastUpdate?: boolean;
|
||||
}
|
||||
|
||||
async function sync(commit: string, quality: string): Promise<void> {
|
||||
log(`Synchronizing Mooncake assets for ${quality}, ${commit}...`);
|
||||
|
||||
const client = new CosmosClient({ endpoint: process.env['AZURE_DOCUMENTDB_ENDPOINT']!, key: process.env['AZURE_DOCUMENTDB_MASTERKEY'] });
|
||||
const container = client.database('builds').container(quality);
|
||||
|
||||
const query = `SELECT TOP 1 * FROM c WHERE c.id = "${commit}"`;
|
||||
const res = await container.items.query<Build>(query, {}).fetchAll();
|
||||
|
||||
if (res.resources.length !== 1) {
|
||||
throw new Error(`No builds found for ${commit}`);
|
||||
}
|
||||
|
||||
const build = res.resources[0];
|
||||
|
||||
log(`Found build for ${commit}, with ${build.assets.length} assets`);
|
||||
|
||||
const storageAccount = process.env['AZURE_STORAGE_ACCOUNT_2']!;
|
||||
|
||||
const blobService = azure.createBlobService(storageAccount, process.env['AZURE_STORAGE_ACCESS_KEY_2']!)
|
||||
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
|
||||
|
||||
const mooncakeBlobService = azure.createBlobService(storageAccount, process.env['MOONCAKE_STORAGE_ACCESS_KEY']!, `${storageAccount}.blob.core.chinacloudapi.cn`)
|
||||
.withFilter(new azure.ExponentialRetryPolicyFilter(20));
|
||||
|
||||
// mooncake is fussy and far away, this is needed!
|
||||
blobService.defaultClientRequestTimeoutInMs = 10 * 60 * 1000;
|
||||
mooncakeBlobService.defaultClientRequestTimeoutInMs = 10 * 60 * 1000;
|
||||
|
||||
for (const asset of build.assets) {
|
||||
try {
|
||||
const blobPath = url.parse(asset.url).path;
|
||||
|
||||
if (!blobPath) {
|
||||
throw new Error(`Failed to parse URL: ${asset.url}`);
|
||||
}
|
||||
|
||||
const blobName = blobPath.replace(/^\/\w+\//, '');
|
||||
|
||||
log(`Found ${blobName}`);
|
||||
|
||||
if (asset.mooncakeUrl) {
|
||||
log(` Already in Mooncake ✔️`);
|
||||
continue;
|
||||
}
|
||||
|
||||
const readStream = blobService.createReadStream(quality, blobName, undefined!);
|
||||
const blobOptions: azure.BlobService.CreateBlockBlobRequestOptions = {
|
||||
contentSettings: {
|
||||
contentType: mime.lookup(blobPath),
|
||||
cacheControl: 'max-age=31536000, public'
|
||||
}
|
||||
};
|
||||
|
||||
const writeStream = mooncakeBlobService.createWriteStreamToBlockBlob(quality, blobName, blobOptions, undefined);
|
||||
|
||||
log(` Uploading to Mooncake...`);
|
||||
await new Promise((c, e) => readStream.pipe(writeStream).on('finish', c).on('error', e));
|
||||
|
||||
log(` Updating build in DB...`);
|
||||
const mooncakeUrl = `${process.env['MOONCAKE_CDN_URL']}${blobPath}`;
|
||||
await container.scripts.storedProcedure('setAssetMooncakeUrl')
|
||||
.execute('', [commit, asset.platform, asset.type, mooncakeUrl]);
|
||||
|
||||
log(` Done ✔️`);
|
||||
} catch (err) {
|
||||
error(err);
|
||||
}
|
||||
}
|
||||
|
||||
log(`All done ✔️`);
|
||||
}
|
||||
|
||||
function main(): void {
|
||||
const commit = process.env['BUILD_SOURCEVERSION'];
|
||||
|
||||
if (!commit) {
|
||||
error('Skipping publish due to missing BUILD_SOURCEVERSION');
|
||||
return;
|
||||
}
|
||||
|
||||
const quality = process.argv[2];
|
||||
|
||||
sync(commit, quality).catch(err => {
|
||||
error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
}
|
||||
|
||||
main();
|
||||
72
build/azure-pipelines/common/telemetry-config.json
Normal file
72
build/azure-pipelines/common/telemetry-config.json
Normal file
@@ -0,0 +1,72 @@
|
||||
[
|
||||
{
|
||||
"eventPrefix": "typescript-language-features/",
|
||||
"sourceDirs": [
|
||||
"../../s/extensions/typescript-language-features"
|
||||
],
|
||||
"excludedDirs": [],
|
||||
"applyEndpoints": true
|
||||
},
|
||||
{
|
||||
"eventPrefix": "git/",
|
||||
"sourceDirs": [
|
||||
"../../s/extensions/git"
|
||||
],
|
||||
"excludedDirs": [],
|
||||
"applyEndpoints": true
|
||||
},
|
||||
{
|
||||
"eventPrefix": "extension-telemetry/",
|
||||
"sourceDirs": [
|
||||
"vscode-extension-telemetry"
|
||||
],
|
||||
"excludedDirs": [],
|
||||
"applyEndpoints": true
|
||||
},
|
||||
{
|
||||
"eventPrefix": "vscode-markdown/",
|
||||
"sourceDirs": [
|
||||
"../../s/extensions/markdown-language-features"
|
||||
],
|
||||
"excludedDirs": [],
|
||||
"applyEndpoints": true
|
||||
},
|
||||
{
|
||||
"eventPrefix": "html-language-features/",
|
||||
"sourceDirs": [
|
||||
"../../s/extensions/html-language-features",
|
||||
"vscode-html-languageservice"
|
||||
],
|
||||
"excludedDirs": [],
|
||||
"applyEndpoints": true
|
||||
},
|
||||
{
|
||||
"eventPrefix": "json-language-features/",
|
||||
"sourceDirs": [
|
||||
"../../s/extensions/json-language-features",
|
||||
"vscode-json-languageservice"
|
||||
],
|
||||
"excludedDirs": [],
|
||||
"applyEndpoints": true
|
||||
},
|
||||
{
|
||||
"eventPrefix": "ms-vscode.node2/",
|
||||
"sourceDirs": [
|
||||
"vscode-chrome-debug-core",
|
||||
"vscode-node-debug2"
|
||||
],
|
||||
"excludedDirs": [],
|
||||
"applyEndpoints": true,
|
||||
"patchDebugEvents": true
|
||||
},
|
||||
{
|
||||
"eventPrefix": "ms-vscode.node/",
|
||||
"sourceDirs": [
|
||||
"vscode-chrome-debug-core",
|
||||
"vscode-node-debug"
|
||||
],
|
||||
"excludedDirs": [],
|
||||
"applyEndpoints": true,
|
||||
"patchDebugEvents": true
|
||||
}
|
||||
]
|
||||
12
build/azure-pipelines/darwin/app-entitlements.plist
Normal file
12
build/azure-pipelines/darwin/app-entitlements.plist
Normal file
@@ -0,0 +1,12 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-dyld-environment-variables</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
73
build/azure-pipelines/darwin/continuous-build-darwin.yml
Normal file
73
build/azure-pipelines/darwin/continuous-build-darwin.yml
Normal file
@@ -0,0 +1,73 @@
|
||||
steps:
|
||||
- task: NodeTool@0
|
||||
inputs:
|
||||
versionSpec: "12.13.0"
|
||||
|
||||
- task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@3 # {{SQL CARBON EDIT}} update version
|
||||
inputs:
|
||||
versionSpec: "1.x"
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1
|
||||
inputs:
|
||||
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
|
||||
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
|
||||
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
|
||||
|
||||
- script: |
|
||||
CHILD_CONCURRENCY=1 yarn --frozen-lockfile
|
||||
displayName: Install Dependencies
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1
|
||||
inputs:
|
||||
keyfile: 'build/.cachesalt, .yarnrc, remote/.yarnrc, **/yarn.lock, !**/node_modules/**/yarn.lock, !**/.*/**/yarn.lock, !samples/**/yarn.lock'
|
||||
targetfolder: '**/node_modules, !**/node_modules/**/node_modules, !samples/**/node_modules'
|
||||
vstsFeed: 'npm-cache' # {{SQL CARBON EDIT}} update build cache
|
||||
condition: and(succeeded(), ne(variables['CacheRestored'], 'true'))
|
||||
|
||||
- script: |
|
||||
yarn electron x64
|
||||
displayName: Download Electron
|
||||
|
||||
# - script: | {{SQL CARBON EDIT}} remove editor checks
|
||||
# yarn monaco-compile-check
|
||||
# displayName: Run Monaco Editor Checks
|
||||
|
||||
- script: |
|
||||
yarn valid-layers-check
|
||||
displayName: Run Valid Layers Checks
|
||||
|
||||
- script: |
|
||||
yarn compile
|
||||
displayName: Compile Sources
|
||||
|
||||
# - script: | {{SQL CARBON EDIT}} remove step
|
||||
# yarn download-builtin-extensions
|
||||
# displayName: Download Built-in Extensions
|
||||
|
||||
- script: |
|
||||
./scripts/test.sh --tfs "Unit Tests"
|
||||
displayName: Run Unit Tests (Electron)
|
||||
|
||||
# - script: | {{SQL CARBON EDIT}} disable
|
||||
# yarn test-browser --browser chromium --browser webkit --browser firefox
|
||||
# displayName: Run Unit Tests (Browser)
|
||||
|
||||
# - script: | {{SQL CARBON EDIT}} disable
|
||||
# ./scripts/test-integration.sh --tfs "Integration Tests"
|
||||
# displayName: Run Integration Tests (Electron)
|
||||
|
||||
- task: PublishPipelineArtifact@0
|
||||
inputs:
|
||||
artifactName: crash-dump-macos
|
||||
targetPath: .build/crashes
|
||||
displayName: 'Publish Crash Reports'
|
||||
continueOnError: true
|
||||
condition: failed()
|
||||
|
||||
- task: PublishTestResults@2
|
||||
displayName: Publish Tests Results
|
||||
inputs:
|
||||
testResultsFiles: '*-results.xml'
|
||||
searchFolder: '$(Build.ArtifactStagingDirectory)/test-results'
|
||||
condition: succeededOrFailed()
|
||||
11
build/azure-pipelines/darwin/createDrop.sh
Executable file
11
build/azure-pipelines/darwin/createDrop.sh
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/usr/bin/env bash
|
||||
set -e
|
||||
REPO="$(pwd)"
|
||||
|
||||
# ensure drop directories exist
|
||||
mkdir -p $REPO/.build/darwin/{archive,server}
|
||||
|
||||
# package Remote Extension Host
|
||||
pushd .. && mv azuredatastudio-reh-darwin azuredatastudio-server-darwin && zip -Xry $REPO/.build/darwin/server/azuredatastudio-server-darwin.zip azuredatastudio-server-darwin && popd
|
||||
|
||||
node build/azure-pipelines/common/copyArtifacts.js
|
||||
22
build/azure-pipelines/darwin/entitlements.xml
Normal file
22
build/azure-pipelines/darwin/entitlements.xml
Normal file
@@ -0,0 +1,22 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.allow-unsigned-executable-memory</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-executable-page-protection</key>
|
||||
<true/>
|
||||
<key>com.apple.security.cs.disable-library-validation</key>
|
||||
<true/>
|
||||
<key>com.apple.security.network.client</key>
|
||||
<true/>
|
||||
<key>com.apple.security.network.server</key>
|
||||
<true/>
|
||||
<key>com.apple.security.app-sandbox</key>
|
||||
<false/>
|
||||
<key>com.apple.security.automation.apple-events</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
@@ -0,0 +1,8 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>com.apple.security.cs.allow-jit</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</plist>
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user