Compare commits
2506 commits
chore/code
...
main
Author | SHA1 | Date | |
---|---|---|---|
![]() |
dbb0e4a974 | ||
![]() |
5c02435ee4 | ||
![]() |
0a1e555b13 | ||
![]() |
be668d7d7a | ||
![]() |
87e50ec941 | ||
![]() |
6d7ca1b926 | ||
![]() |
00bfaaa53d | ||
![]() |
f939caf2d9 | ||
![]() |
0f3615ee65 | ||
![]() |
567bcf26b5 | ||
![]() |
9d49764b84 | ||
![]() |
5c9f493b67 | ||
![]() |
4fe8e9a79f | ||
![]() |
f975dd9697 | ||
![]() |
10832f7001 | ||
![]() |
86b050865f | ||
![]() |
6f07aaf87a | ||
![]() |
634e8bd2d0 | ||
![]() |
6853dfbf66 | ||
![]() |
136cf252a1 | ||
![]() |
cad28ebba5 | ||
![]() |
460fdf9eaf | ||
![]() |
bec1b502ad | ||
![]() |
70bbf11db5 | ||
![]() |
c00c7becae | ||
![]() |
89dc6c19bf | ||
![]() |
972a91d59f | ||
![]() |
045358ddbf | ||
![]() |
c7217a92ba | ||
![]() |
3da7a21cde | ||
![]() |
351e18f638 | ||
![]() |
4f2129c4e0 | ||
![]() |
d7a1c667dd | ||
![]() |
4de0bfa36d | ||
![]() |
0443de88ce | ||
![]() |
f830bac873 | ||
![]() |
517ae5ded9 | ||
![]() |
6062f85000 | ||
![]() |
e2205c3849 | ||
![]() |
0b46eff16e | ||
![]() |
df67982bca | ||
![]() |
d44866b3c0 | ||
![]() |
6ee18bffe6 | ||
![]() |
a881dd2d79 | ||
![]() |
b767e1f072 | ||
![]() |
e3cb1faba4 | ||
![]() |
5c5f988055 | ||
![]() |
c7d2adf091 | ||
![]() |
a4ad37f309 | ||
![]() |
73c2cc1222 | ||
![]() |
9380900aaf | ||
![]() |
02f4d5c717 | ||
![]() |
1f4b26d269 | ||
![]() |
e253825da6 | ||
![]() |
2bddd947ba | ||
![]() |
b7173346d2 | ||
![]() |
01641975c0 | ||
![]() |
7abd80cdba | ||
![]() |
aeb5ea1874 | ||
![]() |
d2a371b92c | ||
![]() |
3ea3b24bb6 | ||
![]() |
0c3bc0cae6 | ||
![]() |
d56410984a | ||
![]() |
4dd2eb9349 | ||
![]() |
709aec5eeb | ||
![]() |
f1aa431c22 | ||
![]() |
86d0e565ed | ||
![]() |
92bb447cac | ||
![]() |
08966e7af7 | ||
![]() |
2c732ff713 | ||
![]() |
1493b7c478 | ||
![]() |
efd816a627 | ||
![]() |
f24c4c27fc | ||
![]() |
88a5de766c | ||
![]() |
a0e523e64c | ||
![]() |
69ce3eb2a8 | ||
![]() |
99b8273e2d | ||
![]() |
a95b6d61e7 | ||
![]() |
1a349e1641 | ||
![]() |
f1b6fa55df | ||
![]() |
6c95ab8a1c | ||
![]() |
5987b0899c | ||
![]() |
664a92132b | ||
![]() |
26b13ed6d4 | ||
![]() |
be7c66b145 | ||
![]() |
7e8d7f6874 | ||
![]() |
c1805ee2ac | ||
![]() |
eff1d642cf | ||
![]() |
a05d7afe00 | ||
![]() |
c2650646d1 | ||
![]() |
f73e4adf5a | ||
![]() |
7c67a5a0f9 | ||
![]() |
6dde9209af | ||
![]() |
264fd4c36e | ||
![]() |
4c0bc82090 | ||
![]() |
f3598fa5a1 | ||
![]() |
8097d7239d | ||
![]() |
7962b245b5 | ||
![]() |
ce0450becf | ||
![]() |
0762ed1127 | ||
![]() |
3563a0b64a | ||
![]() |
0342cdcfc0 | ||
![]() |
b1cb6a1d21 | ||
![]() |
615e4184f6 | ||
![]() |
54091f23da | ||
![]() |
e4a8324db2 | ||
![]() |
01bb55be39 | ||
![]() |
e551a364f6 | ||
![]() |
7e65f85377 | ||
![]() |
e6a21606a3 | ||
![]() |
f275b48770 | ||
![]() |
de4fcf9a4c | ||
![]() |
a1455d281f | ||
![]() |
cfbe2bbac6 | ||
![]() |
398c10ce4b | ||
![]() |
c7d21b092d | ||
![]() |
031fa71e7d | ||
![]() |
948e843ad6 | ||
![]() |
7b0ea0a069 | ||
![]() |
8887b6e642 | ||
![]() |
597ff13393 | ||
![]() |
4ab61b94a4 | ||
![]() |
e19652d62a | ||
![]() |
a341e78909 | ||
![]() |
48e52ac48c | ||
![]() |
6dbb87708f | ||
![]() |
d15d51eae6 | ||
![]() |
0058368681 | ||
![]() |
746c821698 | ||
![]() |
3f2d8c902c | ||
![]() |
3637db2563 | ||
![]() |
8ac84c59af | ||
![]() |
a2b1323568 | ||
![]() |
d35391288d | ||
![]() |
d5c1b76de0 | ||
![]() |
4600a49e88 | ||
![]() |
96a2a67aa6 | ||
![]() |
bb380b5794 | ||
![]() |
47004fd20a | ||
![]() |
c9bf024109 | ||
![]() |
529795d393 | ||
![]() |
79ae07623f | ||
![]() |
6bdb524489 | ||
![]() |
480693fb9f | ||
![]() |
e150930072 | ||
![]() |
edd92ef81a | ||
![]() |
49cd5be352 | ||
![]() |
b1665779b5 | ||
![]() |
a82192db42 | ||
![]() |
589b740f49 | ||
![]() |
3c10de3e5d | ||
![]() |
41a04062c9 | ||
![]() |
db9d10c302 | ||
![]() |
5596d04040 | ||
![]() |
341f69e301 | ||
![]() |
ef0464690b | ||
![]() |
199ebeb4ea | ||
![]() |
c949670d4c | ||
![]() |
9dcd583b58 | ||
![]() |
097e320490 | ||
![]() |
c9bfda91f4 | ||
![]() |
2d6a3ebf45 | ||
![]() |
d0d4bd23fb | ||
![]() |
edb0a768d0 | ||
![]() |
4cc647ac07 | ||
![]() |
bcd1d830e6 | ||
![]() |
2597324876 | ||
![]() |
69b404f5d4 | ||
![]() |
e94b0d0b02 | ||
![]() |
ed1bf37287 | ||
![]() |
3946f56261 | ||
![]() |
fc53dab007 | ||
![]() |
e836abdef7 | ||
![]() |
826482b1f0 | ||
![]() |
45bd00919c | ||
![]() |
4e1bae6daf | ||
![]() |
8f23c8ab3f | ||
![]() |
4d32f26631 | ||
![]() |
c11abe1bd3 | ||
![]() |
4d12566b0d | ||
![]() |
2200dca69d | ||
![]() |
d41dd3bdda | ||
![]() |
c5c24b3ac9 | ||
![]() |
462ade2145 | ||
![]() |
bfef16ce37 | ||
![]() |
aa4351c8e9 | ||
![]() |
2dff6a2ed3 | ||
![]() |
7808cc8ed2 | ||
![]() |
5b84f078c6 | ||
![]() |
cf5f44a4a5 | ||
![]() |
ed05ea553f | ||
![]() |
4418c38878 | ||
![]() |
6391a01b57 | ||
![]() |
9dbcec198d | ||
![]() |
78fbeb595f | ||
![]() |
d894a87e87 | ||
![]() |
4f62cac213 | ||
![]() |
ce081274da | ||
![]() |
fd997f4849 | ||
![]() |
3ddd671c47 | ||
![]() |
c19de13cac | ||
![]() |
f65809ef30 | ||
![]() |
2823ed8612 | ||
![]() |
420bf9ec54 | ||
![]() |
5f67e5efda | ||
![]() |
daed1a77a0 | ||
![]() |
b39eb09d91 | ||
![]() |
f6ec8626e5 | ||
![]() |
97b12f2131 | ||
![]() |
8e4e36513a | ||
![]() |
c8bf4ab3a0 | ||
![]() |
3fa01a328b | ||
![]() |
60686dcdbd | ||
![]() |
fddd17e531 | ||
![]() |
f99750169f | ||
![]() |
daad76d0dd | ||
![]() |
b3542e2fab | ||
![]() |
a9b1543e20 | ||
![]() |
e6d8e5c5f2 | ||
![]() |
c24353cc24 | ||
![]() |
4855e1d5f5 | ||
![]() |
5d3fb9a537 | ||
![]() |
b55d80a7cd | ||
![]() |
16f92bdc99 | ||
![]() |
4c5738416a | ||
![]() |
45d4920e0f | ||
![]() |
94e738532a | ||
![]() |
c4ae12d53f | ||
![]() |
4ff78452f9 | ||
![]() |
9465f2ecd8 | ||
![]() |
93c2f1f12f | ||
![]() |
ca8a3fc77d | ||
![]() |
00936e06bc | ||
![]() |
a6dea50d74 | ||
![]() |
28b04e6a4a | ||
![]() |
d228a86f48 | ||
![]() |
0cb234aa47 | ||
![]() |
6b554c28b7 | ||
![]() |
8a0accd8ea | ||
![]() |
d66ae62cf4 | ||
![]() |
b01d1c659d | ||
![]() |
751f3b2547 | ||
![]() |
11514e3836 | ||
![]() |
71689c1497 | ||
![]() |
2742075edc | ||
![]() |
7f16232f8b | ||
![]() |
0b0703e6d1 | ||
![]() |
3e376c44e3 | ||
![]() |
bfe2d4bb4a | ||
![]() |
7253a0a1d9 | ||
![]() |
f2c5810023 | ||
![]() |
2e5b9105b8 | ||
![]() |
d14411d72e | ||
![]() |
5226513b26 | ||
![]() |
334449f8aa | ||
![]() |
7f43d0c69d | ||
![]() |
6f18276e7a | ||
![]() |
9ff18a18a5 | ||
![]() |
999e72fb1f | ||
![]() |
4733e663a3 | ||
![]() |
b48eeb16c3 | ||
![]() |
0aa2584e82 | ||
![]() |
eb8c704d84 | ||
![]() |
e93fa14703 | ||
![]() |
16a6815b69 | ||
![]() |
b08e9731b8 | ||
![]() |
9bd4fb2d79 | ||
![]() |
647aeda1de | ||
![]() |
78ff748d91 | ||
![]() |
31f8cf1169 | ||
![]() |
14bcf7b6c9 | ||
![]() |
74adddd1e7 | ||
![]() |
0e43bc0042 | ||
![]() |
b40d539611 | ||
![]() |
654663d17f | ||
![]() |
75830c3a98 | ||
![]() |
1b5078eb96 | ||
![]() |
a5e019e290 | ||
![]() |
a812f3400a | ||
![]() |
15af5635f0 | ||
![]() |
cee6d62791 | ||
![]() |
6aee51bd45 | ||
![]() |
599a84e634 | ||
![]() |
1c3d19cca4 | ||
![]() |
9986e8e7ce | ||
![]() |
e19f7a7b7f | ||
![]() |
d570146378 | ||
![]() |
8a9e4370e5 | ||
![]() |
ce357679e9 | ||
![]() |
acab402747 | ||
![]() |
e385926046 | ||
![]() |
e9b8d0ceb7 | ||
![]() |
a2c1ebe675 | ||
![]() |
3ef8e9ea24 | ||
![]() |
c99334889c | ||
![]() |
7ce9aba517 | ||
![]() |
46257a058b | ||
![]() |
979dc35cfc | ||
![]() |
c99a447a04 | ||
![]() |
6dd9fd5abd | ||
![]() |
0d37cb293c | ||
![]() |
27d04c95a1 | ||
![]() |
cd830cdf25 | ||
![]() |
5b06ea94f9 | ||
![]() |
aba4f90485 | ||
![]() |
350621ed52 | ||
![]() |
69b4324c78 | ||
![]() |
b2be0a7c0b | ||
![]() |
cab0dfba39 | ||
![]() |
296ca47d63 | ||
![]() |
1cad18a681 | ||
![]() |
bdd052f90c | ||
![]() |
32fe8d0a85 | ||
![]() |
31338066ef | ||
![]() |
07398169c8 | ||
![]() |
1632c83217 | ||
![]() |
0c29ff1ab4 | ||
![]() |
2a8029ba02 | ||
![]() |
337eae73c6 | ||
![]() |
0a90502658 | ||
![]() |
1246af2551 | ||
![]() |
e0b19ef011 | ||
![]() |
63201934a5 | ||
![]() |
4a6f90b95b | ||
![]() |
a747f4fc46 | ||
![]() |
b782cedc85 | ||
![]() |
7435a7ebba | ||
![]() |
48c6d97d69 | ||
![]() |
9a45aeb3e6 | ||
![]() |
72c9b28ebe | ||
![]() |
9cf271a5f2 | ||
![]() |
1d280028a6 | ||
![]() |
5f24b59025 | ||
![]() |
9169e2bf3f | ||
![]() |
13467d52cf | ||
![]() |
af5ebb25e7 | ||
![]() |
25a875cbbc | ||
![]() |
78b13261bf | ||
![]() |
6356fcaeed | ||
![]() |
443235a861 | ||
![]() |
95fccb0822 | ||
![]() |
1fa476d1f9 | ||
![]() |
88b888cd25 | ||
![]() |
e3eede72cf | ||
![]() |
efb341eb99 | ||
![]() |
dae7dc9541 | ||
![]() |
29e573e9b5 | ||
![]() |
3df14149f0 | ||
![]() |
6ba1867781 | ||
![]() |
1026ce383c | ||
![]() |
2795cefc1b | ||
![]() |
637593c1bc | ||
![]() |
08f7c5447b | ||
![]() |
051b6e3093 | ||
![]() |
250c1f069b | ||
![]() |
3e4a1e9645 | ||
![]() |
4629580650 | ||
![]() |
c29f6b9c6f | ||
![]() |
036317e333 | ||
![]() |
4afe32650f | ||
![]() |
c021bb3d7c | ||
![]() |
783fd9e2c6 | ||
![]() |
d789c67649 | ||
![]() |
3ab29569db | ||
![]() |
099c6e10c6 | ||
![]() |
76ae6f5a88 | ||
![]() |
9bd2b0c953 | ||
![]() |
3fc07a5b60 | ||
![]() |
94e18ab36b | ||
![]() |
1c54d18c3c | ||
![]() |
d2efa73fd7 | ||
![]() |
b47c80cccd | ||
![]() |
b72e515931 | ||
![]() |
65fcc657a7 | ||
![]() |
65ced2cc7b | ||
![]() |
af17698334 | ||
![]() |
5e930d08eb | ||
![]() |
0c89d8bd2d | ||
![]() |
cb23506c1f | ||
![]() |
bf9072dbd4 | ||
![]() |
6abdd73a31 | ||
![]() |
421b5c5487 | ||
![]() |
465530841f | ||
![]() |
0057a5d6ff | ||
![]() |
b736dab3c1 | ||
![]() |
951d965304 | ||
![]() |
29e8de3238 | ||
![]() |
eeeacabaa8 | ||
![]() |
51ca8229b8 | ||
![]() |
a6a19a391e | ||
![]() |
f6cdb7916c | ||
![]() |
eafb064d79 | ||
![]() |
ba050681f7 | ||
![]() |
4780629549 | ||
![]() |
79a44aa51f | ||
![]() |
dd72769841 | ||
![]() |
d8f1c66fd5 | ||
![]() |
afe9967d26 | ||
![]() |
27bea444cc | ||
![]() |
7a571dec0a | ||
![]() |
8c57f505be | ||
![]() |
973612bf4f | ||
![]() |
702a1286eb | ||
![]() |
a45b5b69b5 | ||
![]() |
321353f26c | ||
![]() |
db4607d4aa | ||
![]() |
f0531d68cb | ||
![]() |
8a00d159a6 | ||
![]() |
d244cc0d5f | ||
![]() |
6a2aa4b148 | ||
![]() |
3ee49416f8 | ||
![]() |
ae1e86e19f | ||
![]() |
9f76e389e2 | ||
![]() |
6e2240e60c | ||
![]() |
cd37c951bb | ||
![]() |
c4c3dfb823 | ||
![]() |
c4b6f17ebc | ||
![]() |
71ce938cb1 | ||
![]() |
dc76113915 | ||
![]() |
6583ff6cd9 | ||
![]() |
69ea947857 | ||
![]() |
eab78b3a95 | ||
![]() |
3097f7f063 | ||
![]() |
126989df82 | ||
![]() |
a25eb178c5 | ||
![]() |
18dae26b8e | ||
![]() |
5bc8157d4d | ||
![]() |
f29826e917 | ||
![]() |
ba7cbb989b | ||
![]() |
d4579ce21e | ||
![]() |
ed14d2dfb7 | ||
![]() |
64f1fe59c2 | ||
![]() |
207ef9f3e5 | ||
![]() |
3ea0435459 | ||
![]() |
7668713dd6 | ||
![]() |
f6bc1c3084 | ||
![]() |
4203ff9a0c | ||
![]() |
0281724196 | ||
![]() |
94bd319279 | ||
![]() |
373cfad1f7 | ||
![]() |
59107f8553 | ||
![]() |
e066b6a126 | ||
![]() |
a0e4926135 | ||
![]() |
b1b244a2cf | ||
![]() |
b4a38d9dcc | ||
![]() |
71e2a4187e | ||
![]() |
c94f9c1a60 | ||
![]() |
b9907924be | ||
![]() |
d4c188c096 | ||
![]() |
2ccaf490df | ||
![]() |
cd893b41d7 | ||
![]() |
3838358081 | ||
![]() |
1a388f00c3 | ||
![]() |
bd71422fab | ||
![]() |
3e1697f47f | ||
![]() |
032cde7723 | ||
![]() |
34b956b482 | ||
![]() |
681e0378ae | ||
![]() |
609e85f926 | ||
![]() |
e4ca310707 | ||
![]() |
d606493356 | ||
![]() |
5ef6c5c14a | ||
![]() |
0188f290f9 | ||
![]() |
676cf36f8d | ||
![]() |
f8aef6c8ef | ||
![]() |
5bf8cf49c1 | ||
![]() |
51cd0a4dad | ||
![]() |
1d06ffe9d5 | ||
![]() |
dbf532f55e | ||
![]() |
ca6dbc0053 | ||
![]() |
1bb5980b45 | ||
![]() |
a02a28774b | ||
![]() |
2d9b3578b6 | ||
![]() |
3d5e747590 | ||
![]() |
94467747ac | ||
![]() |
cebab59a02 | ||
![]() |
09e1a892ca | ||
![]() |
7b1eec21e5 | ||
![]() |
a58262d584 | ||
![]() |
a8f03e157b | ||
![]() |
a401962bcd | ||
![]() |
9759814f63 | ||
![]() |
c7cf53722c | ||
![]() |
8cb33dc906 | ||
![]() |
1d73e4f072 | ||
![]() |
0a0f82ea3d | ||
![]() |
f9b1f40ddf | ||
![]() |
0562b0a621 | ||
![]() |
15ed1fd789 | ||
![]() |
5001496c7b | ||
![]() |
0a1080ce2a | ||
![]() |
4802d7e876 | ||
![]() |
bcd95cdbe9 | ||
![]() |
d50c4440c2 | ||
![]() |
921c30f641 | ||
![]() |
22540ee834 | ||
![]() |
4f4443a882 | ||
![]() |
80dbacf933 | ||
![]() |
dc77ff3e45 | ||
![]() |
6515dcf487 | ||
![]() |
d0fd6b98df | ||
![]() |
345efacb44 | ||
![]() |
d0dba1b66d | ||
![]() |
da119af8b2 | ||
![]() |
a5da42bddd | ||
![]() |
12767237d2 | ||
![]() |
230c96dcf1 | ||
![]() |
e2696fcd1a | ||
![]() |
a621cf1e3b | ||
![]() |
db35b9fcab | ||
![]() |
880db1038a | ||
![]() |
414b090efb | ||
![]() |
41e2136bc0 | ||
![]() |
378ecedfcc | ||
![]() |
06d4200909 | ||
![]() |
22a8cc90f1 | ||
![]() |
5cf84e31b0 | ||
![]() |
31e7aaf253 | ||
![]() |
8ec3d37c18 | ||
![]() |
857c6af946 | ||
![]() |
de081fe786 | ||
![]() |
0aeeb2d1cf | ||
![]() |
e589029722 | ||
![]() |
b265a39b63 | ||
![]() |
ed5cfd86db | ||
![]() |
a1a3e9f586 | ||
![]() |
a40b17b141 | ||
![]() |
18181ed9df | ||
![]() |
0ae028db73 | ||
![]() |
79971be672 | ||
![]() |
e4fcd738c3 | ||
![]() |
6827e5e218 | ||
![]() |
b91cd7e232 | ||
![]() |
735d89cdaa | ||
![]() |
e8db412bc2 | ||
![]() |
bf855bb26e | ||
![]() |
41cd377145 | ||
![]() |
d798864caf | ||
![]() |
cef1998f0e | ||
![]() |
c2cbf44594 | ||
![]() |
de2e167582 | ||
![]() |
547a79e231 | ||
![]() |
5a3afb3b17 | ||
![]() |
66ef4be656 | ||
![]() |
c5d0d63ddd | ||
![]() |
36f07c691a | ||
![]() |
ac0390e7c3 | ||
![]() |
0477507a6a | ||
![]() |
3e7856c895 | ||
![]() |
6778a80f21 | ||
![]() |
d4d49454a6 | ||
![]() |
04b52e6773 | ||
![]() |
2a1859e4be | ||
![]() |
dd9a9c68cb | ||
![]() |
9147ff5d49 | ||
![]() |
503b84531b | ||
![]() |
fe8ca828fb | ||
![]() |
03a4a3f2ab | ||
![]() |
3a8607d146 | ||
![]() |
93b6e65554 | ||
![]() |
5984e4c3e7 | ||
![]() |
b4257c10ea | ||
![]() |
c164bde847 | ||
![]() |
883df939dd | ||
![]() |
c7807d0f9e | ||
![]() |
fc90343aaa | ||
![]() |
fbcb45c3a2 | ||
![]() |
179d8eaaa1 | ||
![]() |
38685c1861 | ||
![]() |
cdf42fbe2d | ||
![]() |
9be4c002b7 | ||
![]() |
a16c5307a0 | ||
![]() |
d5536f5430 | ||
![]() |
b1d88b15be | ||
![]() |
ff78285e43 | ||
![]() |
1a26221385 | ||
![]() |
54113abe2a | ||
![]() |
afe385aed4 | ||
![]() |
f055e52e06 | ||
![]() |
fab5d18064 | ||
![]() |
a1e654a0d0 | ||
![]() |
aa835268ea | ||
![]() |
74b4312928 | ||
![]() |
e91a832152 | ||
![]() |
4f95bbee3f | ||
![]() |
b9c9f74d0c | ||
![]() |
e535cd504c | ||
![]() |
db0360860a | ||
![]() |
aa2b5f3b74 | ||
![]() |
6241661e27 | ||
![]() |
25047bf46d | ||
![]() |
a1820ed212 | ||
![]() |
0a1d1624e8 | ||
![]() |
7367de6832 | ||
![]() |
f0abfe89fc | ||
![]() |
d1244d165a | ||
![]() |
106d8f9192 | ||
![]() |
1d86ba8fcb | ||
![]() |
f20a947f8a | ||
![]() |
19b9de05ae | ||
![]() |
1d751c0fbe | ||
![]() |
fa2564e164 | ||
![]() |
330bff0124 | ||
![]() |
ca57c8e7b5 | ||
![]() |
a82b9a0c8a | ||
![]() |
ea7e9d73c4 | ||
![]() |
117b7b4b99 | ||
![]() |
b4bf11d9da | ||
![]() |
0306e10469 | ||
![]() |
0ab47013f2 | ||
![]() |
836883b82d | ||
![]() |
ed671be9c5 | ||
![]() |
9676a2586c | ||
![]() |
e95ba61c7f | ||
![]() |
a0718aea26 | ||
![]() |
156fa7a618 | ||
![]() |
8d006ece30 | ||
![]() |
037c994040 | ||
![]() |
a164ba291d | ||
![]() |
610fba2601 | ||
![]() |
398338c8f8 | ||
![]() |
34be157d8e | ||
![]() |
76372fe357 | ||
![]() |
46879c336b | ||
![]() |
aef9e936bd | ||
![]() |
8cb92d9678 | ||
![]() |
52db89de81 | ||
![]() |
c5af8dfc05 | ||
![]() |
27ad8e6959 | ||
![]() |
c4a1502f70 | ||
![]() |
d1d6c753c4 | ||
![]() |
3bd63f7674 | ||
![]() |
376466d9b2 | ||
![]() |
e100c52bbc | ||
![]() |
d4830dec01 | ||
![]() |
7e11821021 | ||
![]() |
4715e019a2 | ||
![]() |
794cd8734a | ||
![]() |
14d42b26bb | ||
![]() |
6bb44afd91 | ||
![]() |
c82345aeeb | ||
![]() |
72ab08a0d0 | ||
![]() |
f2d1b47e40 | ||
![]() |
d9ee2c5be2 | ||
![]() |
eb59902cf7 | ||
![]() |
002074e4d1 | ||
![]() |
45b55068f9 | ||
![]() |
157eee5d93 | ||
![]() |
d5f2b4f6eb | ||
![]() |
a7a93497e8 | ||
![]() |
8f96f0ed7a | ||
![]() |
3f064176f2 | ||
![]() |
c7b0c7dfa8 | ||
![]() |
df20dd46db | ||
![]() |
6dfd09989e | ||
![]() |
fc821709e2 | ||
![]() |
e986abaab5 | ||
![]() |
a006fb3119 | ||
![]() |
2af812eaf1 | ||
![]() |
d13c975f94 | ||
![]() |
1f7e4dd184 | ||
![]() |
8b04216998 | ||
![]() |
27ff25b70e | ||
![]() |
dc3a41e4bb | ||
![]() |
94448bb5d8 | ||
![]() |
9a568b0f73 | ||
![]() |
a1ee491dc5 | ||
![]() |
e5c118c262 | ||
![]() |
1bef1279e6 | ||
![]() |
c511f259c7 | ||
![]() |
f77ed8ef94 | ||
![]() |
a4929af2ee | ||
![]() |
095811dda9 | ||
![]() |
480d5879ba | ||
![]() |
c0722b173b | ||
![]() |
f07c8e4bd4 | ||
![]() |
baf4b2c1d2 | ||
![]() |
a6039bd99a | ||
![]() |
7c0010c902 | ||
![]() |
596a0f1a02 | ||
![]() |
efda3df09b | ||
![]() |
ec35f46d45 | ||
![]() |
c64fa2f47c | ||
![]() |
6ce42a0101 | ||
![]() |
d40c74c072 | ||
![]() |
d722206916 | ||
![]() |
19e4c8bf5e | ||
![]() |
ee656b868b | ||
![]() |
5e79d28bbf | ||
![]() |
25ffd6b803 | ||
![]() |
a08fe8087f | ||
![]() |
fe273a9107 | ||
![]() |
06170d8d7d | ||
![]() |
62d231ae41 | ||
![]() |
4a72097921 | ||
![]() |
23b8cdc4a1 | ||
![]() |
2646b756a9 | ||
![]() |
28e058c6e8 | ||
![]() |
8dea171115 | ||
![]() |
aef9254713 | ||
![]() |
31b7396006 | ||
![]() |
be0a2649da | ||
![]() |
bf8f91f83d | ||
![]() |
effdfebc19 | ||
![]() |
f4816e6c9a | ||
![]() |
152a5cbd27 | ||
![]() |
1488763115 | ||
![]() |
bbb35d16fc | ||
![]() |
ef07045ee9 | ||
![]() |
3ba673b424 | ||
![]() |
9c4032ebea | ||
![]() |
05bb12c978 | ||
![]() |
df957f07e3 | ||
![]() |
b510284e01 | ||
![]() |
205a1ed637 | ||
![]() |
2073c735a5 | ||
![]() |
34085ac6fb | ||
![]() |
3d6559921b | ||
![]() |
15a7f0e71a | ||
![]() |
3e56243d6f | ||
![]() |
032fcb938d | ||
![]() |
e98393452b | ||
![]() |
302b624504 | ||
![]() |
e00d9d2ca0 | ||
![]() |
9ab4601c8d | ||
![]() |
19e43bdb1a | ||
![]() |
49832e7944 | ||
![]() |
916e98936a | ||
![]() |
31d1eef7f7 | ||
![]() |
2648d9a813 | ||
![]() |
b24b576209 | ||
![]() |
faee38bffd | ||
![]() |
65f3503fe8 | ||
![]() |
054023b791 | ||
![]() |
383c3a68fa | ||
![]() |
7d22b1c15c | ||
![]() |
c71e7cd926 | ||
![]() |
83ad069c5d | ||
![]() |
081108d9ba | ||
![]() |
8f3df56a2b | ||
![]() |
d02124f4e5 | ||
![]() |
09e351fedb | ||
![]() |
ad4b85b095 | ||
![]() |
0bf7d8beae | ||
![]() |
1ae7cca394 | ||
![]() |
bc1c7a8ae1 | ||
![]() |
c22c5e4584 | ||
![]() |
ac3646836c | ||
![]() |
7a31ab75d6 | ||
![]() |
c49dc35ab5 | ||
![]() |
06cedd11d8 | ||
![]() |
f496376fb3 | ||
![]() |
091e2a57e8 | ||
![]() |
0d40ef6796 | ||
![]() |
1be33ba4c3 | ||
![]() |
aaeb311928 | ||
![]() |
a7a38c07ac | ||
![]() |
56f49752b4 | ||
![]() |
892d8b6fe2 | ||
![]() |
cec2005436 | ||
![]() |
0eb86c0096 | ||
![]() |
b8e39d76c1 | ||
![]() |
1c3ff526b7 | ||
![]() |
373767248c | ||
![]() |
d7965b2748 | ||
![]() |
cbcd2ec87a | ||
![]() |
c74d37fc48 | ||
![]() |
66f9352a06 | ||
![]() |
e5eef3aba0 | ||
![]() |
d261c81cd0 | ||
![]() |
634e3bbb67 | ||
![]() |
f8c9e67063 | ||
![]() |
18eddea6f8 | ||
![]() |
c6d655c5f5 | ||
![]() |
46867c1a4d | ||
![]() |
d29903bab6 | ||
![]() |
3415cae093 | ||
![]() |
408fd5a0c6 | ||
![]() |
0a16ee64fe | ||
![]() |
22b00479b4 | ||
![]() |
5311e74266 | ||
![]() |
5be7db7788 | ||
![]() |
3bd1547ce3 | ||
![]() |
a1fe15f7a9 | ||
![]() |
19b8921f28 | ||
![]() |
6b7879ba15 | ||
![]() |
bd5f492a73 | ||
![]() |
67311cc002 | ||
![]() |
f39d3aca5b | ||
![]() |
8e47491e3c | ||
![]() |
0036d527bd | ||
![]() |
f565f1d950 | ||
![]() |
8e35dfa4b7 | ||
![]() |
f911473be9 | ||
![]() |
71624f1897 | ||
![]() |
17de6ea7e1 | ||
![]() |
6aad7cd207 | ||
![]() |
63af335877 | ||
![]() |
8cd7a138ab | ||
![]() |
f69cdc7b03 | ||
![]() |
2ca649cf31 | ||
![]() |
f2ada08201 | ||
![]() |
54ba1f69e5 | ||
![]() |
f13a99f5fd | ||
![]() |
e9bba6fd3a | ||
![]() |
f0d1a70c87 | ||
![]() |
56f0aef21d | ||
![]() |
75e266cb9e | ||
![]() |
b9bb83c0ce | ||
![]() |
da645c5ab3 | ||
![]() |
318af5757d | ||
![]() |
b1cc156a25 | ||
![]() |
79d71ca161 | ||
![]() |
cedd50b366 | ||
![]() |
0d5dcdd8ec | ||
![]() |
d2b0fb144b | ||
![]() |
053852b46c | ||
![]() |
6ad349d379 | ||
![]() |
f7d33c7164 | ||
![]() |
b53b67328f | ||
![]() |
573ffbfcf3 | ||
![]() |
501ac0e99f | ||
![]() |
959a11293a | ||
![]() |
fee1f1a3a7 | ||
![]() |
b0fbe0bb58 | ||
![]() |
0087c70007 | ||
![]() |
36e496dd7c | ||
![]() |
f2e2030e85 | ||
![]() |
0c3737dc19 | ||
![]() |
f7471119e1 | ||
![]() |
9bd97b95e9 | ||
![]() |
b7400c198f | ||
![]() |
f87036e3a8 | ||
![]() |
a43e5ef724 | ||
![]() |
913ced70b0 | ||
![]() |
6ffce30a36 | ||
![]() |
f5a57d886c | ||
![]() |
e8ba49ecca | ||
![]() |
c79a5dc94b | ||
![]() |
4db83ae678 | ||
![]() |
84ceb7ffd2 | ||
![]() |
e215ac4343 | ||
![]() |
bc8048790f | ||
![]() |
886ccf84c1 | ||
![]() |
c067cb9fe4 | ||
![]() |
6b2389cdc3 | ||
![]() |
d93916b159 | ||
![]() |
c34f548e45 | ||
![]() |
6fcd56cc86 | ||
![]() |
8f88a87c93 | ||
![]() |
f8c2f84322 | ||
![]() |
46c4947871 | ||
![]() |
64759ec2da | ||
![]() |
5f7e768e64 | ||
![]() |
4bc189f1c5 | ||
![]() |
71721ab198 | ||
![]() |
5536a48966 | ||
![]() |
f77e29d3c9 | ||
![]() |
4b1fc718a2 | ||
![]() |
1708c3f8a0 | ||
![]() |
352e02028d | ||
![]() |
1bbb639c83 | ||
![]() |
c14265f103 | ||
![]() |
c030a6b3d8 | ||
![]() |
af997ea658 | ||
![]() |
efa4d7fc60 | ||
![]() |
f714aaa0e9 | ||
![]() |
aee6e60583 | ||
![]() |
4e602687d5 | ||
![]() |
d026152ac8 | ||
![]() |
3f21a358d2 | ||
![]() |
dc55e47c98 | ||
![]() |
3b804e2321 | ||
![]() |
b32f851a90 | ||
![]() |
479d20e76f | ||
![]() |
fae4553fc8 | ||
![]() |
cb74b23e45 | ||
![]() |
af8f12c33a | ||
![]() |
a148c4d1f6 | ||
![]() |
f7190c0c9c | ||
![]() |
c00d7765a9 | ||
![]() |
2b651d86e2 | ||
![]() |
9be3517093 | ||
![]() |
fcfedaf7e7 | ||
![]() |
0b82794e9c | ||
![]() |
2a52e398cb | ||
![]() |
c31e882ad2 | ||
![]() |
2f0903e0eb | ||
![]() |
2396053bc1 | ||
![]() |
17fd12305e | ||
![]() |
425ea4374d | ||
![]() |
c076c3c74a | ||
![]() |
547cdfd8ec | ||
![]() |
a0af8f0025 | ||
![]() |
c970b1ea68 | ||
![]() |
4d1e2dec26 | ||
![]() |
108408a944 | ||
![]() |
18d07d431f | ||
![]() |
cbc024f67a | ||
![]() |
55ec5970da | ||
![]() |
58bdca6659 | ||
![]() |
ef49b0d3f8 | ||
![]() |
9cb691e5ad | ||
![]() |
04d09582d4 | ||
![]() |
8f90dc172b | ||
![]() |
f759261919 | ||
![]() |
2606f6d929 | ||
![]() |
c288e5d8dc | ||
![]() |
4b76d4b71e | ||
![]() |
72310130d2 | ||
![]() |
f9e51ef06e | ||
![]() |
92a5eb0d98 | ||
![]() |
77d2ea1a1f | ||
![]() |
92f96ddb84 | ||
![]() |
15a914e25e | ||
![]() |
912a29d091 | ||
![]() |
b2c32ce70e | ||
![]() |
ed1a708c40 | ||
![]() |
e905128d45 | ||
![]() |
fd598f372a | ||
![]() |
7a3946a9e2 | ||
![]() |
cbdd2584d0 | ||
![]() |
f3161c2712 | ||
![]() |
148542dd5a | ||
![]() |
d2b2c339f2 | ||
![]() |
d2578c48f0 | ||
![]() |
fecfd54728 | ||
![]() |
17e4162d3e | ||
![]() |
742209d773 | ||
![]() |
1fa4b7cf27 | ||
![]() |
5dc5507039 | ||
![]() |
3035a20b9f | ||
![]() |
04b3bb034f | ||
![]() |
bf84be0136 | ||
![]() |
890cf48749 | ||
![]() |
2b3436c6ce | ||
![]() |
4df8c3b2e5 | ||
![]() |
25a2696c32 | ||
![]() |
52f879f842 | ||
![]() |
4f70fa156d | ||
![]() |
38e77f04be | ||
![]() |
060206ddd4 | ||
![]() |
0bc0909386 | ||
![]() |
667d528a8c | ||
![]() |
fa7fbe26e7 | ||
![]() |
ba422a29d0 | ||
![]() |
d220ec5bf7 | ||
![]() |
7baf5492bc | ||
![]() |
d5a8409bb5 | ||
![]() |
f58f90667c | ||
![]() |
a388e1a802 | ||
![]() |
8811d10a73 | ||
![]() |
c7a394cd1a | ||
![]() |
b7615a7f2e | ||
![]() |
1ca70c1e50 | ||
![]() |
253cbb1d0c | ||
![]() |
e38a16404c | ||
![]() |
f17a1f875c | ||
![]() |
2237e0f5df | ||
![]() |
0df471585f | ||
![]() |
95aac1a7bf | ||
![]() |
c078bc958d | ||
![]() |
49c27924ea | ||
![]() |
c9dd8e7338 | ||
![]() |
5ef90cc75b | ||
![]() |
063c61d96c | ||
![]() |
0cb5e36b20 | ||
![]() |
319bab5b34 | ||
![]() |
90a4f2111f | ||
![]() |
3aba202970 | ||
![]() |
c8974b7fa2 | ||
![]() |
3654a19586 | ||
![]() |
5f0929c1aa | ||
![]() |
c0fa83bce6 | ||
![]() |
c201ee42a0 | ||
![]() |
e6a4cc3098 | ||
![]() |
39f2fe2ba1 | ||
![]() |
72ce190996 | ||
![]() |
527dd1b61b | ||
![]() |
af8feaadfe | ||
![]() |
3164f76662 | ||
![]() |
d6e531d4b6 | ||
![]() |
af76878dad | ||
![]() |
28cce39fe7 | ||
![]() |
a8b806af08 | ||
![]() |
fa0b0294b4 | ||
![]() |
58ab410b0a | ||
![]() |
51c8b20506 | ||
![]() |
1e62a3760e | ||
![]() |
2f569d4104 | ||
![]() |
f23e444ed0 | ||
![]() |
e6e9a32f03 | ||
![]() |
8237df33a7 | ||
![]() |
624b574013 | ||
![]() |
d762bc89d1 | ||
![]() |
f0cbec07b8 | ||
![]() |
8c1f583968 | ||
![]() |
b28636fa73 | ||
![]() |
092054fd44 | ||
![]() |
9391917d08 | ||
![]() |
5cf008f53d | ||
![]() |
231194bd53 | ||
![]() |
2707e87554 | ||
![]() |
4b40c59e7e | ||
![]() |
f2e8579f95 | ||
![]() |
57118c85e3 | ||
![]() |
8ddc7b0a58 | ||
![]() |
bc63d0aeea | ||
![]() |
9def26e809 | ||
![]() |
74ac709bb5 | ||
![]() |
1f749fad49 | ||
![]() |
13c85d4331 | ||
![]() |
77d2099cdb | ||
![]() |
56a312f217 | ||
![]() |
aa2b3dac49 | ||
![]() |
1a8daef79d | ||
![]() |
a83d133f93 | ||
![]() |
b0d01dffd9 | ||
![]() |
b74e7ce86d | ||
![]() |
671f7a7074 | ||
![]() |
55fd873b37 | ||
![]() |
32c667b22d | ||
![]() |
a6b062f638 | ||
![]() |
f9183b4c62 | ||
![]() |
c7d575a0ff | ||
![]() |
a575e62519 | ||
![]() |
3761d60f41 | ||
![]() |
fd629d43ba | ||
![]() |
76b1cb0f5a | ||
![]() |
2f94abc9f7 | ||
![]() |
c70040fe5d | ||
![]() |
4b8a9e448a | ||
![]() |
1e4c7d0f31 | ||
![]() |
ec75795a02 | ||
![]() |
ad26b64b28 | ||
![]() |
9e4715ebbd | ||
![]() |
cc612296d0 | ||
![]() |
1148b3948c | ||
![]() |
c7e605fd60 | ||
![]() |
4ab32c670e | ||
![]() |
2d810568a8 | ||
![]() |
b8353aa817 | ||
![]() |
7924f63e28 | ||
![]() |
b3b617ea0b | ||
![]() |
18a5071618 | ||
![]() |
fea58029b9 | ||
![]() |
e748723209 | ||
![]() |
8a47d81936 | ||
![]() |
7ae9f5694d | ||
![]() |
9031379469 | ||
![]() |
dc71e6777f | ||
![]() |
89eb798fa8 | ||
![]() |
4304e068b9 | ||
![]() |
126bc6de6a | ||
![]() |
c2b9107f13 | ||
![]() |
1471f4a839 | ||
![]() |
b0b3c6671d | ||
![]() |
6ddb8fb6c2 | ||
![]() |
66da49b0df | ||
![]() |
750cd26c36 | ||
![]() |
4c15589663 | ||
![]() |
62a0e89748 | ||
![]() |
b9603240d0 | ||
![]() |
85d87bb45e | ||
![]() |
3193308d8d | ||
![]() |
7fe90c2a1a | ||
![]() |
e917b19f22 | ||
![]() |
7d47d6a752 | ||
![]() |
8fbb94d15a | ||
![]() |
9fcadf8fbb | ||
![]() |
f5ac8ac5e9 | ||
![]() |
0a0b8aafaf | ||
![]() |
097a7eae7e | ||
![]() |
c0e43a0cf0 | ||
![]() |
d7926dd9d1 | ||
![]() |
da474741e6 | ||
![]() |
a1e16031e0 | ||
![]() |
a229093b60 | ||
![]() |
1a64a1c34d | ||
![]() |
b8f49d2d45 | ||
![]() |
990140c392 | ||
![]() |
542b296018 | ||
![]() |
c6122d33b9 | ||
![]() |
8c71066660 | ||
![]() |
a748164bf2 | ||
![]() |
c427fa8790 | ||
![]() |
093cc07c39 | ||
![]() |
30f14820c6 | ||
![]() |
c8ea2ab199 | ||
![]() |
d56bbacc0b | ||
![]() |
bb468a8b7e | ||
![]() |
7e99f4b078 | ||
![]() |
14ce6dd818 | ||
![]() |
063a3e425d | ||
![]() |
0900dc75ac | ||
![]() |
aa8bd1f8dc | ||
![]() |
c71f7ff8ad | ||
![]() |
fe18420913 | ||
![]() |
97124928df | ||
![]() |
c108bfb12f | ||
![]() |
5fe6ed1462 | ||
![]() |
df5fcce769 | ||
![]() |
8f57ece7b8 | ||
![]() |
8a10d201c5 | ||
![]() |
9d7e63a7a7 | ||
![]() |
87c1ae2ac0 | ||
![]() |
56c922e715 | ||
![]() |
a29ac8e68f | ||
![]() |
03f9c6039c | ||
![]() |
73d81df8cb | ||
![]() |
484f554339 | ||
![]() |
2ad864e68e | ||
![]() |
723ff44151 | ||
![]() |
04e11cbbf7 | ||
![]() |
3aef5998df | ||
![]() |
34018ae7eb | ||
![]() |
2f9d8e776f | ||
![]() |
9503f0d963 | ||
![]() |
32aff3e3f4 | ||
![]() |
9b9f10d4ca | ||
![]() |
e4f0cc6b37 | ||
![]() |
d211249086 | ||
![]() |
0fc5db8aee | ||
![]() |
0a2abef979 | ||
![]() |
8242f13aff | ||
![]() |
7516ba7028 | ||
![]() |
3417407cbe | ||
![]() |
720d046c00 | ||
![]() |
b88f560b07 | ||
![]() |
51b264ca13 | ||
![]() |
0309aeab34 | ||
![]() |
aca8d2948d | ||
![]() |
09596d2181 | ||
![]() |
e87f7e1674 | ||
![]() |
4ad1cccc33 | ||
![]() |
5d12648669 | ||
![]() |
7e989720bf | ||
![]() |
f8a2892811 | ||
![]() |
eaab23ec19 | ||
![]() |
36dcdf256f | ||
![]() |
10a596db65 | ||
![]() |
c76302cf98 | ||
![]() |
176cf608ef | ||
![]() |
f69073ba02 | ||
![]() |
09ecf9262a | ||
![]() |
a3fc0d9120 | ||
![]() |
0d5c3283d3 | ||
![]() |
7b486348ef | ||
![]() |
25f752d6b5 | ||
![]() |
74e35a2d65 | ||
![]() |
3532289575 | ||
![]() |
7db9ba03f3 | ||
![]() |
b0baaf9ea6 | ||
![]() |
b7c6dab3ad | ||
![]() |
2daa145867 | ||
![]() |
4bd5fb22b4 | ||
![]() |
78533a6045 | ||
![]() |
e1c533a15e | ||
![]() |
b6c2bb8023 | ||
![]() |
c45653a50a | ||
![]() |
d827513b73 | ||
![]() |
ad183ca621 | ||
![]() |
1d11c5a186 | ||
![]() |
e84e78ec55 | ||
![]() |
f91e4316ff | ||
![]() |
d54b812881 | ||
![]() |
28dc5ba2a4 | ||
![]() |
979a320ca6 | ||
![]() |
c46186b237 | ||
![]() |
27cf093f85 | ||
![]() |
ec0fb7e0b9 | ||
![]() |
90029456fe | ||
![]() |
b167b00075 | ||
![]() |
b13fab76f3 | ||
![]() |
782a9d310d | ||
![]() |
537b1f2a29 | ||
![]() |
2fad6b62cb | ||
![]() |
bf173b4ede | ||
![]() |
c52f038c76 | ||
![]() |
b12ba98a5c | ||
![]() |
dbccdf342b | ||
![]() |
49b6d029c4 | ||
![]() |
d6469954ce | ||
![]() |
5f40550ad4 | ||
![]() |
79ccbdf100 | ||
![]() |
1983cfcab2 | ||
![]() |
753f86707f | ||
![]() |
16d0ed505b | ||
![]() |
9de09c55f8 | ||
![]() |
c3d7a33aa2 | ||
![]() |
a9cc00a478 | ||
![]() |
ec035ba648 | ||
![]() |
5446f3cae4 | ||
![]() |
6a550092c2 | ||
![]() |
1b691f6bcd | ||
![]() |
98f45cc4c2 | ||
![]() |
edc4a20859 | ||
![]() |
74e1380df8 | ||
![]() |
dfa5187ff7 | ||
![]() |
c99c4425cd | ||
![]() |
2d8919a079 | ||
![]() |
f638287213 | ||
![]() |
991d885b63 | ||
![]() |
bb17efa817 | ||
![]() |
deec29c1b4 | ||
![]() |
9d872008a7 | ||
![]() |
145b4401af | ||
![]() |
17bd50c263 | ||
![]() |
4cb79de685 | ||
![]() |
28ab0b8e46 | ||
![]() |
6911802b87 | ||
![]() |
5b98924561 | ||
![]() |
f13944badc | ||
![]() |
af41e6497d | ||
![]() |
b1122a3da5 | ||
![]() |
b17fddda63 | ||
![]() |
20dc020596 | ||
![]() |
b53291650f | ||
![]() |
b83d84e519 | ||
![]() |
14794d1a5f | ||
![]() |
6b130ef045 | ||
![]() |
25a6126ef4 | ||
![]() |
a2df09fb5b | ||
![]() |
465b2741fb | ||
![]() |
724dc5c86c | ||
![]() |
f4208c19a7 | ||
![]() |
6fed293716 | ||
![]() |
29ffaf04c4 | ||
![]() |
bc9182f214 | ||
![]() |
91c70a51a0 | ||
![]() |
dfe30d7f5e | ||
![]() |
815d5460e7 | ||
![]() |
8a63c6768b | ||
![]() |
f7c29848f1 | ||
![]() |
78b9426c1c | ||
![]() |
87b22ac684 | ||
![]() |
46c30d197a | ||
![]() |
36b8354350 | ||
![]() |
b6702c7182 | ||
![]() |
09d7f608cd | ||
![]() |
d023a27377 | ||
![]() |
190595febf | ||
![]() |
b25edec26c | ||
![]() |
85d0c12dad | ||
![]() |
25c98ef078 | ||
![]() |
af51baea9a | ||
![]() |
e97b16606c | ||
![]() |
5ff9e43899 | ||
![]() |
d3a49e109c | ||
![]() |
e3dbff6996 | ||
![]() |
d9f5410afd | ||
![]() |
0568c8f563 | ||
![]() |
16043a7d68 | ||
![]() |
f24ee61d11 | ||
![]() |
881a6967ac | ||
![]() |
a93f66c6ac | ||
![]() |
fdf4b29ae2 | ||
![]() |
d5f6ca0d2e | ||
![]() |
12d9ccf28c | ||
![]() |
ffc270cc6f | ||
![]() |
61e2e58297 | ||
![]() |
b68ede1f63 | ||
![]() |
d333c1393c | ||
![]() |
35d6f2f961 | ||
![]() |
3d619a0c61 | ||
![]() |
bda812f170 | ||
![]() |
826719bb67 | ||
![]() |
631101eae5 | ||
![]() |
fa0b9bf935 | ||
![]() |
708af5e83c | ||
![]() |
993d31167b | ||
![]() |
ac5fc7d28a | ||
![]() |
73f3fad13d | ||
![]() |
85e0e2165f | ||
![]() |
89ee103303 | ||
![]() |
6b313947c3 | ||
![]() |
fba8e6ce35 | ||
![]() |
622c024547 | ||
![]() |
2c51d92bab | ||
![]() |
11ef2ef708 | ||
![]() |
df793e07fd | ||
![]() |
bae6eea3aa | ||
![]() |
be17b67cc1 | ||
![]() |
645a24d29b | ||
![]() |
64962ce632 | ||
![]() |
5120883691 | ||
![]() |
0b4570ebee | ||
![]() |
5bbdc7e426 | ||
![]() |
a1d60630a0 | ||
![]() |
e96fd6d69e | ||
![]() |
1423b3fc35 | ||
![]() |
fd10b4d585 | ||
![]() |
8a79437668 | ||
![]() |
85a87dc40a | ||
![]() |
95aa0a0024 | ||
![]() |
d0c44d1376 | ||
![]() |
b0e31ff305 | ||
![]() |
f11569ac53 | ||
![]() |
fbf7a61bc9 | ||
![]() |
2265165fa3 | ||
![]() |
b216b17ef5 | ||
![]() |
b2c7b924ac | ||
![]() |
1349f950c9 | ||
![]() |
f1c398a3a4 | ||
![]() |
369231ff11 | ||
![]() |
271dee5be6 | ||
![]() |
a0c8f40e7b | ||
![]() |
4db0aef0ff | ||
![]() |
5ed9bd243f | ||
![]() |
2c53306f5a | ||
![]() |
a3624357dc | ||
![]() |
afe0be31f2 | ||
![]() |
71854b704d | ||
![]() |
0907773d6f | ||
![]() |
787eedc8af | ||
![]() |
040a2b5e5f | ||
![]() |
347ee275fa | ||
![]() |
1c0a9e6726 | ||
![]() |
c4f038ab9a | ||
![]() |
3746ac5fc1 | ||
![]() |
5c4353dd0c | ||
![]() |
f64caed220 | ||
![]() |
863d590292 | ||
![]() |
0dcf64c82b | ||
![]() |
48fd5c5ff6 | ||
![]() |
84fa374072 | ||
![]() |
2313b0b450 | ||
![]() |
4fa6f579af | ||
![]() |
08c1328932 | ||
![]() |
4586308210 | ||
![]() |
5aa561dcb2 | ||
![]() |
e07612fe24 | ||
![]() |
c9289204c4 | ||
![]() |
51bb1081a6 | ||
![]() |
25066bb33c | ||
![]() |
bfdb176445 | ||
![]() |
42233fa756 | ||
![]() |
55de4319ed | ||
![]() |
306f6edd4e | ||
![]() |
bf55bbccd9 | ||
![]() |
6e26c0a0be | ||
![]() |
11bcd318ab | ||
![]() |
2f6d19dc91 | ||
![]() |
989e1ce175 | ||
![]() |
1c2fd46401 | ||
![]() |
b7967b34d1 | ||
![]() |
44dfa37852 | ||
![]() |
a06e3c7e74 | ||
![]() |
b54c331bef | ||
![]() |
8216fe5e36 | ||
![]() |
b5c9c4b188 | ||
![]() |
86bd617933 | ||
![]() |
eb771e7932 | ||
![]() |
5ea91aeafc | ||
![]() |
3c67290aeb | ||
![]() |
f9f6c2f9be | ||
![]() |
a92e8f61bc | ||
![]() |
e739683bb6 | ||
![]() |
f4a743593d | ||
![]() |
f93e49ecf3 | ||
![]() |
d6325a42ea | ||
![]() |
ef997be219 | ||
![]() |
b6eadfcebc | ||
![]() |
e4c65ca631 | ||
![]() |
2d2342f9ee | ||
![]() |
60838a1b7e | ||
![]() |
63401b7640 | ||
![]() |
6a5b669ec4 | ||
![]() |
ca201447d2 | ||
![]() |
f1d3117518 | ||
![]() |
8559948a5a | ||
![]() |
a3b4aa3b4a | ||
![]() |
0347fa381f | ||
![]() |
3d475cc779 | ||
![]() |
ceec74fb70 | ||
![]() |
f5296a947e | ||
![]() |
5b5fcd9372 | ||
![]() |
c38817c62e | ||
![]() |
ba08c6a707 | ||
![]() |
1797bc8181 | ||
![]() |
657aaf75ec | ||
![]() |
dac3c733b3 | ||
![]() |
d02b6b67b5 | ||
![]() |
52ce5f3a2f | ||
![]() |
1d316e17cb | ||
![]() |
6193f4b87a | ||
![]() |
de5a30e46c | ||
![]() |
973acd22ca | ||
![]() |
e235293070 | ||
![]() |
07ab67faa8 | ||
![]() |
e6fce8cbc7 | ||
![]() |
589f8e62f4 | ||
![]() |
27f45f7cf6 | ||
![]() |
48af4ac79c | ||
![]() |
9b6baab1e0 | ||
![]() |
3ba4e712dc | ||
![]() |
5bf3ecdf42 | ||
![]() |
bd6fd472a6 | ||
![]() |
7f4776b52b | ||
![]() |
d20f03127a | ||
![]() |
4b6c7774e0 | ||
![]() |
d02bca8879 | ||
![]() |
5e654ccf94 | ||
![]() |
7d3e5c22fb | ||
![]() |
23eb61ee5f | ||
![]() |
2cded4b2d1 | ||
![]() |
ba7662fc1e | ||
![]() |
832a48ac76 | ||
![]() |
2db0c125fe | ||
![]() |
20d9624bc6 | ||
![]() |
f20ee68f50 | ||
![]() |
cbf45ce3eb | ||
![]() |
2e7fdd93dd | ||
![]() |
8ce38f82b5 | ||
![]() |
ec5429eeec | ||
![]() |
4b17c4045d | ||
![]() |
aaf42e4693 | ||
![]() |
0e3cbfc40b | ||
![]() |
a95ca05c10 | ||
![]() |
56b600dbdc | ||
![]() |
80a013d0a3 | ||
![]() |
7ef59bb74c | ||
![]() |
9cf1a9e25c | ||
![]() |
0fce6c0cd4 | ||
![]() |
2d444e9aa0 | ||
![]() |
7c393b1125 | ||
![]() |
78ab4dc94d | ||
![]() |
6a5904cfaa | ||
![]() |
a6061ec2a9 | ||
![]() |
51c777304b | ||
![]() |
fbd535f2c5 | ||
![]() |
7d456671c2 | ||
![]() |
dd4924c925 | ||
![]() |
f73129cd7e | ||
![]() |
4983c8741e | ||
![]() |
c5798640ff | ||
![]() |
5803a8018a | ||
![]() |
e2aae8ac8a | ||
![]() |
2917aeeb32 | ||
![]() |
9377c03c3f | ||
![]() |
9b926fbad6 | ||
![]() |
8db19c3e2b | ||
![]() |
ca970781c7 | ||
![]() |
e7beee2788 | ||
![]() |
d266eada88 | ||
![]() |
11b8b078b4 | ||
![]() |
37912fa29a | ||
![]() |
b97dafe6f3 | ||
![]() |
2a29151395 | ||
![]() |
8b988d89c0 | ||
![]() |
c0908f1b58 | ||
![]() |
bb46044f7c | ||
![]() |
60b3dd6138 | ||
![]() |
22c1f936c3 | ||
![]() |
e899874b04 | ||
![]() |
04c6888cf6 | ||
![]() |
29c56c6919 | ||
![]() |
c98ed9cc85 | ||
![]() |
88f7530c13 | ||
![]() |
bb820437af | ||
![]() |
d1a4bd38e0 | ||
![]() |
d18f6ccd32 | ||
![]() |
aa317c964e | ||
![]() |
7ae8845ae9 | ||
![]() |
123a6dbe0c | ||
![]() |
dda8d79526 | ||
![]() |
de5293955a | ||
![]() |
96669bff5b | ||
![]() |
a99762f004 | ||
![]() |
1fc3c9b83e | ||
![]() |
af86b6f664 | ||
![]() |
a0208dd5b3 | ||
![]() |
1c5c8b81d5 | ||
![]() |
79c3e33434 | ||
![]() |
5ab8729a31 | ||
![]() |
db0baf92f1 | ||
![]() |
a8974094db | ||
![]() |
13c5c97ba7 | ||
![]() |
894ebb3edd | ||
![]() |
cac899a7e5 | ||
![]() |
901e0dd93b | ||
![]() |
a360231fd0 | ||
![]() |
6ccc6ee42f | ||
![]() |
9c72ad85a0 | ||
![]() |
fa6d80a753 | ||
![]() |
f6ab2ca9ba | ||
![]() |
ba1e1ad5ad | ||
![]() |
02705ea3ad | ||
![]() |
df6e3f06a6 | ||
![]() |
1cb5ee9fd6 | ||
![]() |
893d6176c3 | ||
![]() |
2c1b512e40 | ||
![]() |
de50d76800 | ||
![]() |
401b78e477 | ||
![]() |
01837eaea9 | ||
![]() |
7df699353c | ||
![]() |
5455972be2 | ||
![]() |
57488bcd16 | ||
![]() |
b6fda901ef | ||
![]() |
14669df890 | ||
![]() |
64525a65f2 | ||
![]() |
61fc7efecb | ||
![]() |
8c7c1e4745 | ||
![]() |
f64d30ec88 | ||
![]() |
384dfc8da4 | ||
![]() |
841784ae8c | ||
![]() |
f5683cfd94 | ||
![]() |
0a420ce30e | ||
![]() |
a5e7132d3c | ||
![]() |
6dfb2be4a2 | ||
![]() |
d81cbad550 | ||
![]() |
51ad06b303 | ||
![]() |
27048ad95c | ||
![]() |
fa9bf0b448 | ||
![]() |
305190b64e | ||
![]() |
98e3d18335 | ||
![]() |
72e398956b | ||
![]() |
1e69a13a97 | ||
![]() |
7f9e6e2f44 | ||
![]() |
d3c6c0d48e | ||
![]() |
6c83476fd2 | ||
![]() |
9cdf7e2c51 | ||
![]() |
599119e14e | ||
![]() |
a2c484e0f3 | ||
![]() |
97ff4d5ac2 | ||
![]() |
5255cfbb25 | ||
![]() |
780358368b | ||
![]() |
cf0b918913 | ||
![]() |
4ea690204e | ||
![]() |
14eb775749 | ||
![]() |
bf4a3be6d9 | ||
![]() |
b9e1e47871 | ||
![]() |
ff532ecb22 | ||
![]() |
eb21872db1 | ||
![]() |
8e3df184dc | ||
![]() |
b34bbcac8b | ||
![]() |
226965a1d7 | ||
![]() |
17b2ea126c | ||
![]() |
59fc4a089c | ||
![]() |
ef26dc8cbb | ||
![]() |
8a0fbb28b0 | ||
![]() |
618d8d5b1a | ||
![]() |
3a936dc9c1 | ||
![]() |
031fcd75ee | ||
![]() |
c8cd23cb32 | ||
![]() |
a3049938a3 | ||
![]() |
b23488e862 | ||
![]() |
c8203cf04c | ||
![]() |
4f2616ef0a | ||
![]() |
04ffc69e00 | ||
![]() |
5b4bb6e7a7 | ||
![]() |
2e953ba998 | ||
![]() |
ed5a4eb960 | ||
![]() |
31b2c05084 | ||
![]() |
6e1662038c | ||
![]() |
df78d88f79 | ||
![]() |
addedb3091 | ||
![]() |
2ea17b2dea | ||
![]() |
85d2f42f47 | ||
![]() |
cdb655c1bd | ||
![]() |
3064d03aa9 | ||
![]() |
6af6417ca2 | ||
![]() |
a35271fbb3 | ||
![]() |
63aef71f60 | ||
![]() |
0f8457534c | ||
![]() |
2984582e62 | ||
![]() |
147d8fd9af | ||
![]() |
c12d354900 | ||
![]() |
8bcb552783 | ||
![]() |
f504a8288c | ||
![]() |
79f5b54228 | ||
![]() |
669a9855e6 | ||
![]() |
e3b96c3a1f | ||
![]() |
7e0d4bef20 | ||
![]() |
0bd0f48df3 | ||
![]() |
ae56126585 | ||
![]() |
6dcf0ac124 | ||
![]() |
63e2ce43c2 | ||
![]() |
f27aa21eb5 | ||
![]() |
42926c663b | ||
![]() |
d38116183c | ||
![]() |
9ca373e208 | ||
![]() |
4084f2f5ec | ||
![]() |
684ffbadbc | ||
![]() |
1c4d4c57de | ||
![]() |
d83111a199 | ||
![]() |
f10fa839fb | ||
![]() |
1f20395ff3 | ||
![]() |
bfe6f4255a | ||
![]() |
b9032f3012 | ||
![]() |
ce53c459e6 | ||
![]() |
6df42fb0d5 | ||
![]() |
1e2b496f4f | ||
![]() |
528c1b0d57 | ||
![]() |
22fba8ba80 | ||
![]() |
6f26261ebe | ||
![]() |
4b1fe3ba91 | ||
![]() |
9f95262bd4 | ||
![]() |
2ec28e541e | ||
![]() |
4764d4b19a | ||
![]() |
9b27547dae | ||
![]() |
a96f2c9153 | ||
![]() |
225e0aaf88 | ||
![]() |
f0c85910bc | ||
![]() |
124c443528 | ||
![]() |
37c7f8d39f | ||
![]() |
c419f1ce22 | ||
![]() |
4949cdfe2f | ||
![]() |
cd101b96ea | ||
![]() |
40d0e4631f | ||
![]() |
a55a995660 | ||
![]() |
1d576d48ad | ||
![]() |
4ff8030f87 | ||
![]() |
c15e2e2c8f | ||
![]() |
41d31a8d75 | ||
![]() |
10e2a26352 | ||
![]() |
6e547f77d0 | ||
![]() |
530a426601 | ||
![]() |
642d6bab77 | ||
![]() |
7980af3d82 | ||
![]() |
2980c42e88 | ||
![]() |
b03994f9db | ||
![]() |
41906ec2f9 | ||
![]() |
4d1e7ff2a5 | ||
![]() |
7f18fcfc13 | ||
![]() |
ff02ce0747 | ||
![]() |
a6056600eb | ||
![]() |
24c94326d5 | ||
![]() |
48c0cb5e62 | ||
![]() |
9968efe1b2 | ||
![]() |
6368342149 | ||
![]() |
b5f73db210 | ||
![]() |
22d6a02d04 | ||
![]() |
4e0bcfcccf | ||
![]() |
104313c15d | ||
![]() |
814289af46 | ||
![]() |
3096cd98d5 | ||
![]() |
45dfefbc7a | ||
![]() |
20d92149a8 | ||
![]() |
9c01fffca5 | ||
![]() |
61c1cfff4b | ||
![]() |
7e74261f62 | ||
![]() |
32601f34f1 | ||
![]() |
aef69a1a96 | ||
![]() |
130f90bdb6 | ||
![]() |
851c7de87f | ||
![]() |
118156c62d | ||
![]() |
cdad3143c9 | ||
![]() |
00fe32136e | ||
![]() |
52f56eeb68 | ||
![]() |
b595264e31 | ||
![]() |
bf04262170 | ||
![]() |
fd589922bb | ||
![]() |
fb7029f5c1 | ||
![]() |
cc4b4f9bf8 | ||
![]() |
b048d6d7e3 | ||
![]() |
cffc1f442f | ||
![]() |
91fe710741 | ||
![]() |
5a1eb9fdac | ||
![]() |
a64ef6e750 | ||
![]() |
47d2012b3d | ||
![]() |
2c99cd2e21 | ||
![]() |
435cd2f66a | ||
![]() |
372b12dfc2 | ||
![]() |
3a12f5c1c4 | ||
![]() |
781de224b6 | ||
![]() |
eff09454c3 | ||
![]() |
473feba6a8 | ||
![]() |
e9f0704fb0 | ||
![]() |
8c99469d88 | ||
![]() |
8ec1311dfc | ||
![]() |
e48cca6b45 | ||
![]() |
d660721f95 | ||
![]() |
c52bb93d79 | ||
![]() |
ffb6bfd0c9 | ||
![]() |
6e0855f9b3 | ||
![]() |
ec9e9ec387 | ||
![]() |
fa75aa40f0 | ||
![]() |
b865953c22 | ||
![]() |
2542cf6f9a | ||
![]() |
cb9499b87f | ||
![]() |
c351f01f67 | ||
![]() |
c87561fca7 | ||
![]() |
a363c143fa | ||
![]() |
fb81d2b926 | ||
![]() |
05b1b8f079 | ||
![]() |
7848dc06d4 | ||
![]() |
3a005719b7 | ||
![]() |
6928988f78 | ||
![]() |
a521894d7c | ||
![]() |
b7fb1d9c08 | ||
![]() |
5f67e45911 | ||
![]() |
fddf9fccbd | ||
![]() |
2bedbd7bd2 | ||
![]() |
02f3c85796 | ||
![]() |
3b5bd6a47f | ||
![]() |
06fd404d44 | ||
![]() |
d931c52508 | ||
![]() |
800fe9e4c8 | ||
![]() |
8b3d78678f | ||
![]() |
2351cd3ad6 | ||
![]() |
dd86c5bcdf | ||
![]() |
d0c00e306e | ||
![]() |
6cd68ddd6a | ||
![]() |
02639cddb2 | ||
![]() |
0f67aa4058 | ||
![]() |
78c3403d5f | ||
![]() |
fc8f8c574d | ||
![]() |
3972ee580d | ||
![]() |
b0a994d5be | ||
![]() |
80df28a0c4 | ||
![]() |
1c6c6a9296 | ||
![]() |
7bb698e442 | ||
![]() |
784728cd54 | ||
![]() |
4b883b68de | ||
![]() |
dec2cc2aaf | ||
![]() |
b4e8971ad2 | ||
![]() |
84e436265e | ||
![]() |
ac8a69f8d4 | ||
![]() |
b912e050ea | ||
![]() |
284561d093 | ||
![]() |
efc355982c | ||
![]() |
8907879a19 | ||
![]() |
86f6057207 | ||
![]() |
4c92698c73 | ||
![]() |
8407c3b649 | ||
![]() |
ed8f82617d | ||
![]() |
31d040d1b6 | ||
![]() |
25a6796e63 | ||
![]() |
ff091918aa | ||
![]() |
91b76edce1 | ||
![]() |
5ae5c83bf5 | ||
![]() |
9d90f276de | ||
![]() |
245f091e22 | ||
![]() |
ae2f8f086b | ||
![]() |
5e5eb7f937 | ||
![]() |
748630e1f1 | ||
![]() |
43064c8c55 | ||
![]() |
4559a3047c | ||
![]() |
de8064ee5c | ||
![]() |
48c8dba342 | ||
![]() |
31a515b2f1 | ||
![]() |
294f56e189 | ||
![]() |
70596a0aac | ||
![]() |
74bc79116b | ||
![]() |
e6bd50ae77 | ||
![]() |
308662550f | ||
![]() |
d94a7e7157 | ||
![]() |
630b264754 | ||
![]() |
5f2be44b85 | ||
![]() |
f68ece68af | ||
![]() |
70c829a2c9 | ||
![]() |
e3b6ac4874 | ||
![]() |
a762d5a22c | ||
![]() |
3686a26019 | ||
![]() |
80daec748d | ||
![]() |
94359f1299 | ||
![]() |
59dda1bb99 | ||
![]() |
806a732cbc | ||
![]() |
7816be7ba7 | ||
![]() |
5f3bd5137f | ||
![]() |
6c9fc5fb86 | ||
![]() |
f7e0b68643 | ||
![]() |
b283bbaca9 | ||
![]() |
92ba759b1c | ||
![]() |
0acc9d8d68 | ||
![]() |
daa7a9ff61 | ||
![]() |
455f35e0c1 | ||
![]() |
1fa655b56e | ||
![]() |
e553222b4b | ||
![]() |
f1b6f48926 | ||
![]() |
14ab1cae69 | ||
![]() |
5f9cf90b16 | ||
![]() |
97b367d4ee | ||
![]() |
47119fb346 | ||
![]() |
d77eb7f5f1 | ||
![]() |
1b0a2bb34c | ||
![]() |
a363039fa1 | ||
![]() |
32c740b58e | ||
![]() |
822ee890af | ||
![]() |
b0406dd8aa | ||
![]() |
8d152ddfcb | ||
![]() |
1a16d2e4f4 | ||
![]() |
1ca8531305 | ||
![]() |
6190e7d092 | ||
![]() |
a6542dd638 | ||
![]() |
840777a851 | ||
![]() |
5c9dff38c9 | ||
![]() |
abfbacb8c2 | ||
![]() |
03afdbf431 | ||
![]() |
507d43b328 | ||
![]() |
be214c0599 | ||
![]() |
91f36c3a3f | ||
![]() |
f60c15ed2e | ||
![]() |
1ec072373d | ||
![]() |
a7d039082e | ||
![]() |
d5c06bfa58 | ||
![]() |
c8f3a0ce7b | ||
![]() |
edbedc181b | ||
![]() |
94afa34780 | ||
![]() |
74dd0ab6cd | ||
![]() |
6c43a331d0 | ||
![]() |
67835ba0c0 | ||
![]() |
fe1b2a0e07 | ||
![]() |
2e82be47ed | ||
![]() |
15dfd6dcba | ||
![]() |
dfd38943b0 | ||
![]() |
500756d582 | ||
![]() |
f855f541d8 | ||
![]() |
590ec6643d | ||
![]() |
b9efd35b50 | ||
![]() |
3be1bfe58a | ||
![]() |
bfbd2de778 | ||
![]() |
50f7ae338a | ||
![]() |
280fdc89c1 | ||
![]() |
0f94e2ad0c | ||
![]() |
d0036600e9 | ||
![]() |
f766fefbf0 | ||
![]() |
2178ed2a31 | ||
![]() |
79511aea5f | ||
![]() |
19bb77273b | ||
![]() |
7ca377f1b8 | ||
![]() |
6f5e9b7b5a | ||
![]() |
f03a58079d | ||
![]() |
8715fe1822 | ||
![]() |
e10cb9adaf | ||
![]() |
3030832711 | ||
![]() |
7c638ef28a | ||
![]() |
447a4b5e04 | ||
![]() |
dd1ba6e302 | ||
![]() |
08556b751f | ||
![]() |
11d2190310 | ||
![]() |
46519bb710 | ||
![]() |
7b9290382d | ||
![]() |
85e55cf0e4 | ||
![]() |
7016854b7f | ||
![]() |
01a4151763 | ||
![]() |
311f758cd8 | ||
![]() |
3bba36742a | ||
![]() |
ea52ba51ca | ||
![]() |
7e404ae71a | ||
![]() |
3ad95afa84 | ||
![]() |
1a13861647 | ||
![]() |
6d84c819c0 | ||
![]() |
36ec39d2fb | ||
![]() |
eaafc12c8a | ||
![]() |
a03c5bceea | ||
![]() |
53c51fd204 | ||
![]() |
9b593f2a6b | ||
![]() |
363609cb1b | ||
![]() |
68e6d30093 | ||
![]() |
c53a40ef8d | ||
![]() |
3c2ac05c60 | ||
![]() |
bffab433f6 | ||
![]() |
200b6ce01f | ||
![]() |
0d29dc1012 | ||
![]() |
b92c4ae650 | ||
![]() |
e15d1e52bd | ||
![]() |
ce3e259bde | ||
![]() |
87361f90b1 | ||
![]() |
81be06598c | ||
![]() |
9492da6789 | ||
![]() |
fce47a0a37 | ||
![]() |
92ba682198 | ||
![]() |
8df0482eb4 | ||
![]() |
37a5cb347d | ||
![]() |
77e50655f6 | ||
![]() |
eacd2abc00 | ||
![]() |
7393954ff6 | ||
![]() |
68744379a6 | ||
![]() |
90aef905af | ||
![]() |
c7cbc8966e | ||
![]() |
89502bed63 | ||
![]() |
4952b48db6 | ||
![]() |
52a257abb1 | ||
![]() |
7480fb089b | ||
![]() |
0f65c051ab | ||
![]() |
7b62c7a967 | ||
![]() |
5c3db2cb29 | ||
![]() |
7008cbd363 | ||
![]() |
cdb7fcf831 | ||
![]() |
628aafdd42 | ||
![]() |
9d3ef24ba9 | ||
![]() |
4189f11fd7 | ||
![]() |
5ea9941519 | ||
![]() |
7a64494d07 | ||
![]() |
4928685198 | ||
![]() |
0103233d4a | ||
![]() |
ee7075fe60 | ||
![]() |
49feadd32a | ||
![]() |
45758bf554 | ||
![]() |
535d566a94 | ||
![]() |
ff1d5db12c | ||
![]() |
77a06b2fe7 | ||
![]() |
6359030030 | ||
![]() |
006f1fccec | ||
![]() |
c0f5817d47 | ||
![]() |
3da952fa52 | ||
![]() |
f1834d58d2 | ||
![]() |
b0cde4ab75 | ||
![]() |
197c9914ca | ||
![]() |
d7ef6898be | ||
![]() |
2aa57f1f0d | ||
![]() |
dcc0e38707 | ||
![]() |
037fb2398a | ||
![]() |
182512d07c | ||
![]() |
a3be4b063d | ||
![]() |
a97be4c342 | ||
![]() |
5902cbb621 | ||
![]() |
afc26d42ca | ||
![]() |
51b12d05d4 | ||
![]() |
3fe7b4ae24 | ||
![]() |
2720a7c827 | ||
![]() |
8d89b8ef12 | ||
![]() |
5383e0cf52 | ||
![]() |
7b05bf8991 | ||
![]() |
b4c5b5a84e | ||
![]() |
e115523acd | ||
![]() |
35611fbc07 | ||
![]() |
034aa38153 | ||
![]() |
795728ab31 | ||
![]() |
262d295121 | ||
![]() |
4e5ac0a47b | ||
![]() |
51b8cbdab2 | ||
![]() |
f315b1ac5c | ||
![]() |
2feaa8d956 | ||
![]() |
5329f2a2fb | ||
![]() |
5d9d2d0c8d | ||
![]() |
34e11fd5b0 | ||
![]() |
dc1f19ed04 | ||
![]() |
ff7c52a05e | ||
![]() |
d5684326b1 | ||
![]() |
017c55d190 | ||
![]() |
2504887e8d | ||
![]() |
805e63379c | ||
![]() |
dcb20e6ea6 | ||
![]() |
786b94380b | ||
![]() |
460d6a8d0f | ||
![]() |
0dbc929c8e | ||
![]() |
0c5305acf6 | ||
![]() |
34139efafb | ||
![]() |
eb53c3896f | ||
![]() |
2af4c6fb55 | ||
![]() |
d66f784538 | ||
![]() |
f127241857 | ||
![]() |
5b0d9dd394 | ||
![]() |
ee29d18484 | ||
![]() |
2255f856f9 | ||
![]() |
f2415527f0 | ||
![]() |
59eb70ce62 | ||
![]() |
1d18725bc5 | ||
![]() |
d4af1d743e | ||
![]() |
9d1a357b5b | ||
![]() |
5160cc36dd | ||
![]() |
f05e1dbdf0 | ||
![]() |
7b797f0cba | ||
![]() |
f823826044 | ||
![]() |
9589403c9d | ||
![]() |
2757b18e17 | ||
![]() |
6e8481bb2f | ||
![]() |
72760d942e | ||
![]() |
88d4d211b8 | ||
![]() |
abfa373083 | ||
![]() |
23b05caea2 | ||
![]() |
d3f4027c3c | ||
![]() |
f8433c106f | ||
![]() |
39d7a09cdf | ||
![]() |
771a555b4f | ||
![]() |
4ea7309001 | ||
![]() |
126e6a3c2f | ||
![]() |
53be3a2f83 | ||
![]() |
655409d078 | ||
![]() |
43f68900ff | ||
![]() |
01597a2518 | ||
![]() |
fd7a38ead1 | ||
![]() |
f777e1f168 | ||
![]() |
23ced9427f | ||
![]() |
c9fd718af4 | ||
![]() |
072c2770b1 | ||
![]() |
54e4775ca3 | ||
![]() |
d4849cb4c2 | ||
![]() |
38cd19281f | ||
![]() |
1eaaa31c4e | ||
![]() |
256f070700 | ||
![]() |
400f3593b2 | ||
![]() |
475a9559cf | ||
![]() |
cbf7d8c7a4 | ||
![]() |
2d7cee9d14 | ||
![]() |
ef05946832 | ||
![]() |
24a9078b22 | ||
![]() |
c5d19ad0b2 | ||
![]() |
f004653286 | ||
![]() |
4850807ac1 | ||
![]() |
526a21dde3 | ||
![]() |
9a3ab6d1c1 | ||
![]() |
6bde0ec7ab | ||
![]() |
5b1d755670 | ||
![]() |
e58d2ec233 | ||
![]() |
6742655a04 | ||
![]() |
02b36a1c11 | ||
![]() |
363c236d3e | ||
![]() |
c49634ae18 | ||
![]() |
8fd06c4c8c | ||
![]() |
935661ed35 | ||
![]() |
6764250f6d | ||
![]() |
403189c9e9 | ||
![]() |
b66d8f9d0d | ||
![]() |
1c8a9f1dc9 | ||
![]() |
f1e63de661 | ||
![]() |
fd92866ba1 | ||
![]() |
745c0b5f73 | ||
![]() |
b6f3954e24 | ||
![]() |
4ef97ee058 | ||
![]() |
6af8ff700e | ||
![]() |
7c323a915c | ||
![]() |
365d316878 | ||
![]() |
c40f1312ca | ||
![]() |
528cd829fd | ||
![]() |
fd170f3bad | ||
![]() |
17388d252b | ||
![]() |
d232e71683 | ||
![]() |
d11928dee7 | ||
![]() |
0cacc8efa0 | ||
![]() |
63b2436d81 | ||
![]() |
faacf92ba3 | ||
![]() |
f0f3dad082 | ||
![]() |
d2fcc761ad | ||
![]() |
79c00b0e7a | ||
![]() |
219b1baa41 | ||
![]() |
c0cb7f7a92 | ||
![]() |
86379eb96d | ||
![]() |
f7762a97e3 | ||
![]() |
86ae4a59a3 | ||
![]() |
863e8555ae | ||
![]() |
4e21edce6b | ||
![]() |
5663841145 | ||
![]() |
2f7ef497ab | ||
![]() |
ace63cfcc1 | ||
![]() |
d28c268e86 | ||
![]() |
6f43726a3b | ||
![]() |
4f6a2a83d3 | ||
![]() |
937ce5a157 | ||
![]() |
0c1a779ef0 | ||
![]() |
e01d1f44d0 | ||
![]() |
cea9021c16 | ||
![]() |
3039f58b5a | ||
![]() |
e2326190d4 | ||
![]() |
095d13f8bb | ||
![]() |
1292d1d898 | ||
![]() |
8bc92616d2 | ||
![]() |
ae45fafaee | ||
![]() |
f74227067b | ||
![]() |
5f76d25ec3 | ||
![]() |
ba9d3bfe46 | ||
![]() |
3dc6babfca | ||
![]() |
ace2b6936a | ||
![]() |
712e874bfe | ||
![]() |
266adda45b | ||
![]() |
f5ebe4a69e | ||
![]() |
15d960d47b | ||
![]() |
f700b04b8f | ||
![]() |
6f9683c41a | ||
![]() |
0ad605c906 | ||
![]() |
db4c49c57b | ||
![]() |
b5c72dda8f | ||
![]() |
e06cc3ba80 | ||
![]() |
8a72a1a559 | ||
![]() |
3f61d3163e | ||
![]() |
34b3c7ce16 | ||
![]() |
0ce4185379 | ||
![]() |
1f7989dbed | ||
![]() |
0ea88ad202 | ||
![]() |
2d41742c34 | ||
![]() |
447d600dbe | ||
![]() |
3f6db48f83 | ||
![]() |
156ab65272 | ||
![]() |
a986ee1ccb | ||
![]() |
868b7d149a | ||
![]() |
b1763b539e | ||
![]() |
d21517abe6 | ||
![]() |
7ef6765d5b | ||
![]() |
11492977c9 | ||
![]() |
4c45f1d2e5 | ||
![]() |
55702bfcfa | ||
![]() |
1236a594b5 | ||
![]() |
9cf746f6af | ||
![]() |
44a9ade3fc | ||
![]() |
7064bd4c4c | ||
![]() |
a02a26ebdc | ||
![]() |
b92af6cec6 | ||
![]() |
3091177700 | ||
![]() |
be8838d338 | ||
![]() |
84e8a5cc6e | ||
![]() |
d5db578bfd | ||
![]() |
7429f5c8e9 | ||
![]() |
8c6cf9651d | ||
![]() |
8668fec33d | ||
![]() |
76e34131fb | ||
![]() |
3c40ee4b4a | ||
![]() |
5abd7ae32c | ||
![]() |
09b3f9a0d7 | ||
![]() |
19455ba6a7 | ||
![]() |
7d042689f0 | ||
![]() |
f43fbf1584 | ||
![]() |
24c0cb8366 | ||
![]() |
2236cc3828 | ||
![]() |
039d44718a | ||
![]() |
f075cd8c4d | ||
![]() |
ea0f3e8999 | ||
![]() |
e7736bba25 | ||
![]() |
fdf8809e13 | ||
![]() |
6a9d479f71 | ||
![]() |
82c9637f37 | ||
![]() |
dfab849f48 | ||
![]() |
ad60b95537 | ||
![]() |
8a98f746eb | ||
![]() |
27cfd0ccf6 | ||
![]() |
82bb85174d | ||
![]() |
8ceef4acbf | ||
![]() |
b6118c17e1 | ||
![]() |
a7fb622e69 | ||
![]() |
39337c1c4f | ||
![]() |
1f970aaf69 | ||
![]() |
0a5b7e13cd | ||
![]() |
1ce2b9eb44 | ||
![]() |
477f146725 | ||
![]() |
d7b02c4da9 | ||
![]() |
40e673379b | ||
![]() |
6ce9a4e834 | ||
![]() |
c5a07a888a | ||
![]() |
55587f6207 | ||
![]() |
0d6b45c795 | ||
![]() |
95f64d9952 | ||
![]() |
54da5def4b | ||
![]() |
d2fc1e057d | ||
![]() |
0a90d98c71 | ||
![]() |
cc269e3b35 | ||
![]() |
b19093179b | ||
![]() |
e2cc0bc003 | ||
![]() |
644c52ae36 | ||
![]() |
2554273a3f | ||
![]() |
a8ee149d7a | ||
![]() |
dcf92d58f9 | ||
![]() |
053092031c | ||
![]() |
c12e3eb3ec | ||
![]() |
07def20f6b | ||
![]() |
6c2cca66bd | ||
![]() |
6efd336f34 | ||
![]() |
81eb4be200 | ||
![]() |
76cee6dbad | ||
![]() |
dcc35a5738 | ||
![]() |
5628de6445 | ||
![]() |
53bea47727 | ||
![]() |
d6cf8d400a | ||
![]() |
b58cc335f2 | ||
![]() |
03d1bc611c | ||
![]() |
a48b09cefe | ||
![]() |
d3f36c05df | ||
![]() |
488ade25ab | ||
![]() |
413a276d20 | ||
![]() |
65675a21d6 | ||
![]() |
d35de38289 | ||
![]() |
83e1baa978 | ||
![]() |
875edce5b1 | ||
![]() |
1baa504728 | ||
![]() |
965ae79414 | ||
![]() |
7a8448c116 | ||
![]() |
d935157ee8 | ||
![]() |
9313e6b568 | ||
![]() |
8033177f48 | ||
![]() |
11011fa15d | ||
![]() |
c2e9f3e72b | ||
![]() |
f0fb7fd1cd | ||
![]() |
15e342fd51 | ||
![]() |
dfa7e06f87 | ||
![]() |
a9aef5521b | ||
![]() |
a628bdc44e | ||
![]() |
db6f966045 | ||
![]() |
9b602ed405 | ||
![]() |
db15457ce4 | ||
![]() |
719d8558a3 | ||
![]() |
c207c3fc84 | ||
![]() |
4bde4758c3 | ||
![]() |
5eb957c82a | ||
![]() |
0b38617acf | ||
![]() |
377d32c449 | ||
![]() |
cdfb0c2603 | ||
![]() |
d85152429c | ||
![]() |
422e596fc7 | ||
![]() |
89334c9022 | ||
![]() |
f5a0e88ab9 | ||
![]() |
a59ba08339 | ||
![]() |
2641056c51 | ||
![]() |
5d812befc4 | ||
![]() |
1c592d6f96 | ||
![]() |
531f13fe1f | ||
![]() |
4757cc8dae | ||
![]() |
ecdfe9ecc0 | ||
![]() |
d19cb08e9c | ||
![]() |
f45320e5ed | ||
![]() |
93ded34de9 | ||
![]() |
dd13e2eaf7 | ||
![]() |
1405c6f260 | ||
![]() |
0dab31f993 | ||
![]() |
d133c5aacd | ||
![]() |
8070c70152 | ||
![]() |
c3ebb321cf | ||
![]() |
e54deb594a | ||
![]() |
432d071ec8 | ||
![]() |
b9c06f1f5d | ||
![]() |
52cc6462a6 | ||
![]() |
35c2afef67 | ||
![]() |
339c86fca0 | ||
![]() |
0afd3de977 | ||
![]() |
e699569d46 | ||
![]() |
ced852d9db | ||
![]() |
a63612613e | ||
![]() |
c9ec7b492a | ||
![]() |
bf8ffc07ee | ||
![]() |
73e1ea7f93 | ||
![]() |
5979b99398 | ||
![]() |
50ddb918cc | ||
![]() |
6b19eb8876 | ||
![]() |
47be0841fc | ||
![]() |
99c7bb70fc | ||
![]() |
f139bb0036 | ||
![]() |
23f592ca24 | ||
![]() |
fe4821d4f7 | ||
![]() |
c338d4fec5 | ||
![]() |
d7e6758089 | ||
![]() |
0ad62636b9 | ||
![]() |
f872c7dfe9 | ||
![]() |
c5fdd59eb1 | ||
![]() |
7132dc3ac0 | ||
![]() |
956d5be959 | ||
![]() |
936591d40b | ||
![]() |
686e4f8ddf | ||
![]() |
b61825235e | ||
![]() |
8157f324a0 | ||
![]() |
132b617aaa | ||
![]() |
25b1f3e9ea | ||
![]() |
f94c8fc26e | ||
![]() |
d149f46cf6 | ||
![]() |
6a24ba5d56 | ||
![]() |
db8333a858 | ||
![]() |
3af254d7c7 | ||
![]() |
8151bb108a | ||
![]() |
3b18769c2d | ||
![]() |
2883cac6d4 | ||
![]() |
d7ae2f0625 | ||
![]() |
318f6d0986 | ||
![]() |
2ca430f40c | ||
![]() |
fd65060a8e | ||
![]() |
cb81f819ba | ||
![]() |
61c7040e4b | ||
![]() |
fa10827443 | ||
![]() |
bcee779e74 | ||
![]() |
34315c91d7 | ||
![]() |
8d3bf6c4a5 | ||
![]() |
0c176b70f8 | ||
![]() |
87a5854357 | ||
![]() |
9c2d51d718 | ||
![]() |
e618f046ea | ||
![]() |
a36cb925ff | ||
![]() |
9e2aea2793 | ||
![]() |
ef1e2bb5ed | ||
![]() |
6a457281ea | ||
![]() |
41c512798d | ||
![]() |
ffa0f51305 | ||
![]() |
e0cec9e24a | ||
![]() |
f6b359a772 | ||
![]() |
648eb89c7c | ||
![]() |
ba22e085b8 | ||
![]() |
35373db1d3 | ||
![]() |
932cfa7200 | ||
![]() |
932ef933fc | ||
![]() |
4f1293525c | ||
![]() |
dd6bec8a0c | ||
![]() |
1abca64765 | ||
![]() |
dbe55d89ec | ||
![]() |
dcb3ad661c | ||
![]() |
1e1f6cb4a3 | ||
![]() |
83d96fd71d | ||
![]() |
7dc4670028 | ||
![]() |
dc88e2413b | ||
![]() |
b7f7c3f164 | ||
![]() |
f7def38e20 | ||
![]() |
cf49e1ff74 | ||
![]() |
38de2d6b30 | ||
![]() |
4b3de264ef | ||
![]() |
4bb785c7f0 | ||
![]() |
2fb904d2cb | ||
![]() |
ee79347e27 | ||
![]() |
3477c81d37 | ||
![]() |
930789316c | ||
![]() |
01a08eae58 | ||
![]() |
d73c9833ab | ||
![]() |
1841597405 | ||
![]() |
8003e5ce43 | ||
![]() |
d0023a6c92 | ||
![]() |
a9293f6ce1 | ||
![]() |
58c5b586a9 | ||
![]() |
21d224da22 | ||
![]() |
43d957c8d3 | ||
![]() |
917fad510a | ||
![]() |
269eef7ef3 | ||
![]() |
b811f4527b | ||
![]() |
67378e4535 | ||
![]() |
dad9033482 | ||
![]() |
32c8333564 | ||
![]() |
4d074e7f9a | ||
![]() |
c61b615da6 | ||
![]() |
fba6cfd62c | ||
![]() |
1ba5ba5ff6 | ||
![]() |
31b6988f17 | ||
![]() |
16076382ba | ||
![]() |
666c919b70 | ||
![]() |
dea5fd717d | ||
![]() |
02a4b6f721 | ||
![]() |
815a6c4e3b | ||
![]() |
ac26024990 | ||
![]() |
f67be9d3ba | ||
![]() |
bb85e3ef11 | ||
![]() |
edd254531d | ||
![]() |
0f1ff97a60 | ||
![]() |
24e439f017 | ||
![]() |
0a01fd58eb | ||
![]() |
f25195b2c1 | ||
![]() |
29674b02e6 | ||
![]() |
572ea3febe | ||
![]() |
f8334cf9d2 | ||
![]() |
0ffec66bea | ||
![]() |
becb386d10 | ||
![]() |
0b9524eb26 | ||
![]() |
ff5cd0128a | ||
![]() |
b9225cd9b6 | ||
![]() |
8f0ed3c5b3 | ||
![]() |
12e3a768dd | ||
![]() |
a04ab5b0e8 | ||
![]() |
845f08b060 | ||
![]() |
31c849cc2d | ||
![]() |
977757d346 | ||
![]() |
f2c549158d | ||
![]() |
a36764f1b0 | ||
![]() |
033bc25d8f | ||
![]() |
31bd253a73 | ||
![]() |
2f4977be63 | ||
![]() |
35f931a708 | ||
![]() |
3e23d8d5d5 | ||
![]() |
004de0a655 | ||
![]() |
47a1af4be1 | ||
![]() |
7b17c4caa8 | ||
![]() |
fa29885b3f | ||
![]() |
beece69f9e | ||
![]() |
600ff1d62b | ||
![]() |
094dc192a9 | ||
![]() |
939bf30138 | ||
![]() |
d203ce188a | ||
![]() |
268fed19f9 | ||
![]() |
04bf414de4 | ||
![]() |
28e1c65631 | ||
![]() |
e936ac4ce1 | ||
![]() |
13201e7a9e | ||
![]() |
9740b28764 | ||
![]() |
1fa94efa02 | ||
![]() |
44172e1a8e | ||
![]() |
4ab0d24d24 | ||
![]() |
049e66770a | ||
![]() |
bf12687f63 | ||
![]() |
10389d9029 | ||
![]() |
40996f9d48 | ||
![]() |
3d284461f3 | ||
![]() |
6642641c11 | ||
![]() |
3e637a482e | ||
![]() |
6374248132 | ||
![]() |
b9661d74ee | ||
![]() |
0a5b956cb9 | ||
![]() |
be88fd941d | ||
![]() |
48af9e7c1c | ||
![]() |
71684350e9 | ||
![]() |
9a1924b7c6 | ||
![]() |
fc20697d81 | ||
![]() |
e7dda207fa | ||
![]() |
7fd97fa194 | ||
![]() |
ccbadfbd69 | ||
![]() |
e2f2d6c5d8 | ||
![]() |
8b64e95845 | ||
![]() |
a7e528cdbb | ||
![]() |
e23291359f | ||
![]() |
2cd557c000 | ||
![]() |
a42ff6523f | ||
![]() |
62eaf3280d | ||
![]() |
f25fa4ba1c | ||
![]() |
7d498d4b75 | ||
![]() |
ec0fb98b72 | ||
![]() |
9689be445c | ||
![]() |
adba3ce0b5 | ||
![]() |
ee43cecaaf | ||
![]() |
56fb33999e | ||
![]() |
a421630a2d | ||
![]() |
7e95eea337 | ||
![]() |
eec76a7ec3 | ||
![]() |
4184843e1d | ||
![]() |
84bb0d6bec | ||
![]() |
54f769c6db | ||
![]() |
b7eed64074 | ||
![]() |
0134553cbb | ||
![]() |
f0b42c77c2 | ||
![]() |
40b0f937bd | ||
![]() |
48c2c5af65 | ||
![]() |
4384ba2f47 | ||
![]() |
11c2e08353 | ||
![]() |
dc55bd1fb9 | ||
![]() |
f7c04bc35f | ||
![]() |
ca801e321e | ||
![]() |
a3359e8c77 | ||
![]() |
ab0ad2b26a | ||
![]() |
4900b21047 | ||
![]() |
0ee852aa84 | ||
![]() |
2de4362f8e | ||
![]() |
400913aaac | ||
![]() |
f0d736cd1d | ||
![]() |
54d1758eee | ||
![]() |
36bb98e2af | ||
![]() |
c3015493fc | ||
![]() |
24c036836e | ||
![]() |
46be435e1a | ||
![]() |
c2847eff5e | ||
![]() |
d17b696fc5 | ||
![]() |
11a047c3a6 | ||
![]() |
e3ed797983 | ||
![]() |
c5e41e65aa | ||
![]() |
7e343d25e6 | ||
![]() |
a6a9ddbe46 | ||
![]() |
8d501660a4 | ||
![]() |
bb877069d5 | ||
![]() |
48d65cebf9 | ||
![]() |
9e7e8df387 | ||
![]() |
8a44970965 | ||
![]() |
e551541d57 | ||
![]() |
a091e8d2bf | ||
![]() |
4d1e8b48e6 | ||
![]() |
13307cf7bd | ||
![]() |
03548d17ff | ||
![]() |
c3de4fcbab | ||
![]() |
82495fa724 | ||
![]() |
741262d031 | ||
![]() |
5a60961470 | ||
![]() |
3462b60e47 | ||
![]() |
239d4ce4ec | ||
![]() |
fc5cea11b5 | ||
![]() |
c54d721694 | ||
![]() |
88d16d5392 | ||
![]() |
f1b22415c3 | ||
![]() |
b4fae4b800 | ||
![]() |
b172177142 | ||
![]() |
3fc11c5381 | ||
![]() |
13cf896fe2 | ||
![]() |
84ff915a56 | ||
![]() |
74aedbccfe | ||
![]() |
6e49298aea | ||
![]() |
c1ba290e41 | ||
![]() |
60e8974580 | ||
![]() |
033eeda50a | ||
![]() |
e7e34f3e16 | ||
![]() |
7e1fcebdd8 | ||
![]() |
fd4ee2123d | ||
![]() |
62caa840ef | ||
![]() |
565e890973 | ||
![]() |
84c4642ced | ||
![]() |
699164eba5 | ||
![]() |
d86928f1b4 | ||
![]() |
06fc077f1b | ||
![]() |
97ba31f345 | ||
![]() |
a8795defc1 | ||
![]() |
1b35cf7a39 | ||
![]() |
ed62ed516f | ||
![]() |
b4f1c6f7f8 | ||
![]() |
14e4ca70b4 | ||
![]() |
12fa94539b | ||
![]() |
e40a2459c0 | ||
![]() |
cffa6dc494 | ||
![]() |
d818799418 | ||
![]() |
808d18e7cd | ||
![]() |
d40c4ac0ed | ||
![]() |
caaad9205c | ||
![]() |
8a47c4bb41 | ||
![]() |
f7b3b9c4eb | ||
![]() |
099430c764 | ||
![]() |
deca3ebd64 | ||
![]() |
79dd3d02e3 | ||
![]() |
f49299fa91 | ||
![]() |
250f408228 | ||
![]() |
26f8b75bed | ||
![]() |
f541c2f7c1 | ||
![]() |
997ffc02a3 | ||
![]() |
fa6335d6ac | ||
![]() |
57694bdc14 | ||
![]() |
eed243d43b | ||
![]() |
37e21f6505 | ||
![]() |
d25e14147c | ||
![]() |
1d4bce7309 | ||
![]() |
8c0c56930e | ||
![]() |
2e9255344e | ||
![]() |
346a7cabe1 | ||
![]() |
4a430b2701 |
4102 changed files with 137644 additions and 55637 deletions
13
.dockerignore
Normal file
13
.dockerignore
Normal file
|
@ -0,0 +1,13 @@
|
|||
dist
|
||||
coverage
|
||||
|
||||
.yarn/*
|
||||
!.yarn/cache
|
||||
!.yarn/patches
|
||||
!.yarn/plugins
|
||||
!.yarn/releases
|
||||
!.yarn/unplugged
|
||||
!.yarn/sdks
|
||||
!.yarn/versions
|
||||
|
||||
data/*
|
20
.env.sample
20
.env.sample
|
@ -1,6 +1,26 @@
|
|||
######
|
||||
# DB #
|
||||
######
|
||||
|
||||
DB_HOST=db
|
||||
DB_PORT=3306
|
||||
DB_USERNAME=std_notes_user
|
||||
DB_PASSWORD=changeme123
|
||||
DB_DATABASE=standard_notes_db
|
||||
DB_TYPE=mysql
|
||||
|
||||
#########
|
||||
# CACHE #
|
||||
#########
|
||||
|
||||
REDIS_PORT=6379
|
||||
REDIS_HOST=cache
|
||||
CACHE_TYPE=redis
|
||||
|
||||
########
|
||||
# KEYS #
|
||||
########
|
||||
|
||||
AUTH_JWT_SECRET=
|
||||
AUTH_SERVER_ENCRYPTION_SERVER_KEY=
|
||||
VALET_TOKEN_SECRET=
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{
|
||||
"root": true,
|
||||
"parser": "@typescript-eslint/parser",
|
||||
"parserOptions": {
|
||||
"project": "./tsconfig.json"
|
||||
},
|
||||
|
|
32
.github/ci.env
vendored
Normal file
32
.github/ci.env
vendored
Normal file
|
@ -0,0 +1,32 @@
|
|||
PUBLIC_FILES_SERVER_URL=http://localhost:3125
|
||||
DB_HOST=db
|
||||
DB_USERNAME=std_notes_user
|
||||
DB_PASSWORD=changeme123
|
||||
DB_DATABASE=standard_notes_db
|
||||
DB_PORT=3306
|
||||
DB_DEBUG_LEVEL=all
|
||||
DB_SQLITE_DATABASE_PATH=standard_notes_db
|
||||
REDIS_PORT=6379
|
||||
REDIS_HOST=cache
|
||||
AUTH_SERVER_ACCESS_TOKEN_AGE=4
|
||||
AUTH_SERVER_REFRESH_TOKEN_AGE=10
|
||||
AUTH_SERVER_EPHEMERAL_SESSION_AGE=300
|
||||
SYNCING_SERVER_REVISIONS_FREQUENCY=2
|
||||
AUTH_SERVER_LOG_LEVEL=debug
|
||||
SYNCING_SERVER_LOG_LEVEL=debug
|
||||
FILES_SERVER_LOG_LEVEL=debug
|
||||
REVISIONS_SERVER_LOG_LEVEL=debug
|
||||
API_GATEWAY_LOG_LEVEL=debug
|
||||
|
||||
MYSQL_DATABASE=standard_notes_db
|
||||
MYSQL_USER=std_notes_user
|
||||
MYSQL_PASSWORD=changeme123
|
||||
MYSQL_ROOT_PASSWORD=changeme123
|
||||
|
||||
AUTH_JWT_SECRET=f95259c5e441f5a4646d76422cfb3df4c4488842901aa50b6c51b8be2e0040e9
|
||||
AUTH_SERVER_ENCRYPTION_SERVER_KEY=1087415dfde3093797f9a7ca93a49e7d7aa1861735eb0d32aae9c303b8c3d060
|
||||
VALET_TOKEN_SECRET=4b886819ebe1e908077c6cae96311b48a8416bd60cc91c03060e15bdf6b30d1f
|
||||
|
||||
SYNCING_SERVER_CONTENT_SIZE_TRANSFER_LIMIT=100000
|
||||
|
||||
HTTP_REQUEST_PAYLOAD_LIMIT_MEGABYTES=1
|
144
.github/dependabot.yml
vendored
Normal file
144
.github/dependabot.yml
vendored
Normal file
|
@ -0,0 +1,144 @@
|
|||
# To get started with Dependabot version updates, you'll need to specify which
|
||||
# package ecosystems to update and where the package manifests are located.
|
||||
# Please see the documentation for all configuration options:
|
||||
# https://docs.github.com/github/administering-a-repository/configuration-options-for-dependency-updates
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/analytics"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/api-gateway"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/auth"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/common"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/domain-core"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/domain-events"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/domain-events-infra"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/files"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/home-server"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/predicates"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/revisions"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/scheduler"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/security"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/settings"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/sncrypto-node"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/syncing-server"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/time"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "npm"
|
||||
directory: "/packages/websockets"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
allow:
|
||||
- dependency-type: "direct"
|
||||
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
22
.github/workflows/analytics.yml
vendored
Normal file
22
.github/workflows/analytics.yml
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
name: Analytics Server
|
||||
|
||||
concurrency:
|
||||
group: analytics
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/analytics*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
call_server_application_workflow:
|
||||
name: Server Application
|
||||
uses: standardnotes/server/.github/workflows/common-server-application.yml@main
|
||||
with:
|
||||
service_name: analytics
|
||||
workspace_name: "@standardnotes/analytics"
|
||||
deploy_web: false
|
||||
package_path: packages/analytics
|
||||
secrets: inherit
|
141
.github/workflows/api-gateway.release.yml
vendored
141
.github/workflows/api-gateway.release.yml
vendored
|
@ -1,141 +0,0 @@
|
|||
name: Api Gateway
|
||||
|
||||
concurrency:
|
||||
group: api_gateway
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/api-gateway*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.x'
|
||||
- run: yarn lint:api-gateway
|
||||
|
||||
publish-aws-ecr:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:api-gateway
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@v1
|
||||
- name: Build, tag, and push image to Amazon ECR
|
||||
id: build-image
|
||||
env:
|
||||
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
|
||||
ECR_REPOSITORY: api-gateway
|
||||
IMAGE_TAG: ${{ github.sha }}
|
||||
run: |
|
||||
yarn docker build @standardnotes/api-gateway -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest
|
||||
|
||||
publish-docker-hub:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:api-gateway
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build, tag, and push image to Docker Hub
|
||||
run: |
|
||||
yarn docker build @standardnotes/api-gateway -t standardnotes/api-gateway:${{ github.sha }}
|
||||
docker push standardnotes/api-gateway:${{ github.sha }}
|
||||
docker tag standardnotes/api-gateway:${{ github.sha }} standardnotes/api-gateway:latest
|
||||
docker push standardnotes/api-gateway:latest
|
||||
|
||||
deploy-web:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: DEV - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition api-gateway-dev --query taskDefinition > task-definition.json
|
||||
- name: DEV - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="api-gateway-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: DEV - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-dev
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: api-gateway-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/api-gateway:${{ github.sha }}
|
||||
- name: DEV - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-dev.outputs.task-definition }}
|
||||
service: api-gateway-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
- name: PROD - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition api-gateway-prod --query taskDefinition > task-definition.json
|
||||
- name: PROD - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="api-gateway-prod") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: PROD - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-prod
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: api-gateway-prod
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/api-gateway:${{ github.sha }}
|
||||
- name: PROD - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-prod.outputs.task-definition }}
|
||||
service: api-gateway-prod
|
||||
cluster: prod
|
||||
wait-for-service-stability: true
|
||||
|
||||
newrelic:
|
||||
needs: deploy-web
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Create New Relic deployment marker for Web
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_API_GATEWAY_WEB_PROD }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
22
.github/workflows/api-gateway.yml
vendored
Normal file
22
.github/workflows/api-gateway.yml
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
name: Api Gateway
|
||||
|
||||
concurrency:
|
||||
group: api_gateway
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/api-gateway*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
call_server_application_workflow:
|
||||
name: Server Application
|
||||
uses: standardnotes/server/.github/workflows/common-server-application.yml@main
|
||||
with:
|
||||
service_name: api-gateway
|
||||
workspace_name: "@standardnotes/api-gateway"
|
||||
deploy_worker: false
|
||||
package_path: packages/api-gateway
|
||||
secrets: inherit
|
204
.github/workflows/auth.release.yml
vendored
204
.github/workflows/auth.release.yml
vendored
|
@ -1,204 +0,0 @@
|
|||
name: Auth Server
|
||||
|
||||
concurrency:
|
||||
group: auth
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/auth-server*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.x'
|
||||
- run: yarn lint:auth
|
||||
- run: yarn test:auth
|
||||
|
||||
publish-aws-ecr:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:auth
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@v1
|
||||
- name: Build, tag, and push image to Amazon ECR
|
||||
id: build-image
|
||||
env:
|
||||
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
|
||||
ECR_REPOSITORY: auth
|
||||
IMAGE_TAG: ${{ github.sha }}
|
||||
run: |
|
||||
yarn docker build @standardnotes/auth-server -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest
|
||||
|
||||
publish-docker-hub:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:auth
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build, tag, and push image to Docker Hub
|
||||
run: |
|
||||
yarn docker build @standardnotes/auth-server -t standardnotes/auth:${{ github.sha }}
|
||||
docker push standardnotes/auth:${{ github.sha }}
|
||||
docker tag standardnotes/auth:${{ github.sha }} standardnotes/auth:latest
|
||||
docker push standardnotes/auth:latest
|
||||
|
||||
deploy-web:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: DEV - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition auth-dev --query taskDefinition > task-definition.json
|
||||
- name: DEV - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="auth-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: DEV - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-dev
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: auth-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/auth:${{ github.sha }}
|
||||
- name: DEV - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-dev.outputs.task-definition }}
|
||||
service: auth-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
- name: PROD - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition auth-prod --query taskDefinition > task-definition.json
|
||||
- name: PROD - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="auth-prod") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: PROD - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-prod
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: auth-prod
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/auth:${{ github.sha }}
|
||||
- name: PROD - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-prod.outputs.task-definition }}
|
||||
service: auth-prod
|
||||
cluster: prod
|
||||
wait-for-service-stability: true
|
||||
|
||||
deploy-worker:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: DEV - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition auth-worker-dev --query taskDefinition > task-definition.json
|
||||
- name: DEV - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="auth-worker-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: DEV - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-dev
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: auth-worker-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/auth:${{ github.sha }}
|
||||
- name: DEV - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-dev.outputs.task-definition }}
|
||||
service: auth-worker-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
- name: PROD - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition auth-worker-prod --query taskDefinition > task-definition.json
|
||||
- name: PROD - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="auth-worker-prod") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: PROD - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-prod
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: auth-worker-prod
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/auth:${{ github.sha }}
|
||||
- name: PROD - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-prod.outputs.task-definition }}
|
||||
service: auth-worker-prod
|
||||
cluster: prod
|
||||
wait-for-service-stability: true
|
||||
|
||||
newrelic:
|
||||
needs: [ deploy-web, deploy-worker ]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Create New Relic deployment marker for Web
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_AUTH_WEB_PROD }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
||||
- name: Create New Relic deployment marker for Worker
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_AUTH_WORKER_PROD }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
21
.github/workflows/auth.yml
vendored
Normal file
21
.github/workflows/auth.yml
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
name: Auth Server
|
||||
|
||||
concurrency:
|
||||
group: auth
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/auth-server*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
call_server_application_workflow:
|
||||
name: Server Application
|
||||
uses: standardnotes/server/.github/workflows/common-server-application.yml@main
|
||||
with:
|
||||
service_name: auth
|
||||
workspace_name: "@standardnotes/auth-server"
|
||||
package_path: packages/auth
|
||||
secrets: inherit
|
72
.github/workflows/codeql-analysis.yml
vendored
72
.github/workflows/codeql-analysis.yml
vendored
|
@ -1,72 +0,0 @@
|
|||
# For most projects, this workflow file will not need changing; you simply need
|
||||
# to commit it to your repository.
|
||||
#
|
||||
# You may wish to alter this file to override the set of languages analyzed,
|
||||
# or to provide custom queries or build logic.
|
||||
#
|
||||
# ******** NOTE ********
|
||||
# We have attempted to detect the languages in your repository. Please check
|
||||
# the `language` matrix defined below to confirm you have the correct set of
|
||||
# supported CodeQL languages.
|
||||
#
|
||||
name: "CodeQL"
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ "main" ]
|
||||
pull_request:
|
||||
# The branches below must be a subset of the branches above
|
||||
branches: [ "main" ]
|
||||
schedule:
|
||||
- cron: '44 8 * * 2'
|
||||
|
||||
jobs:
|
||||
analyze:
|
||||
name: Analyze
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
actions: read
|
||||
contents: read
|
||||
security-events: write
|
||||
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
language: [ 'javascript' ]
|
||||
# CodeQL supports [ 'cpp', 'csharp', 'go', 'java', 'javascript', 'python', 'ruby' ]
|
||||
# Learn more about CodeQL language support at https://aka.ms/codeql-docs/language-support
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
# Initializes the CodeQL tools for scanning.
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: ${{ matrix.language }}
|
||||
# If you wish to specify custom queries, you can do so here or in a config file.
|
||||
# By default, queries listed here will override any specified in a config file.
|
||||
# Prefix the list here with "+" to use these queries and those in the config file.
|
||||
|
||||
# Details on CodeQL's query packs refer to : https://docs.github.com/en/code-security/code-scanning/automatically-scanning-your-code-for-vulnerabilities-and-errors/configuring-code-scanning#using-queries-in-ql-packs
|
||||
# queries: security-extended,security-and-quality
|
||||
|
||||
|
||||
# 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@v2
|
||||
|
||||
# ℹ️ Command-line programs to run using the OS shell.
|
||||
# 📚 See https://docs.github.com/en/actions/using-workflows/workflow-syntax-for-github-actions#jobsjob_idstepsrun
|
||||
|
||||
# If the Autobuild fails above, remove it and uncomment the following three lines.
|
||||
# modify them (or add more) to build your code if your project, please refer to the EXAMPLE below for guidance.
|
||||
|
||||
# - run: |
|
||||
# echo "Run, Build Application using script"
|
||||
# ./location_of_script_within_repo/buildscript.sh
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v2
|
55
.github/workflows/common-deploy.yml
vendored
Normal file
55
.github/workflows/common-deploy.yml
vendored
Normal file
|
@ -0,0 +1,55 @@
|
|||
name: Reusable Server Application Deployment Workflow
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
service_name:
|
||||
required: true
|
||||
type: string
|
||||
docker_image:
|
||||
required: true
|
||||
type: string
|
||||
secrets:
|
||||
AWS_ACCESS_KEY_ID:
|
||||
required: true
|
||||
AWS_SECRET_ACCESS_KEY:
|
||||
required: true
|
||||
AWS_ECR_REGISTRY:
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v3
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
|
||||
- name: Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition ${{ inputs.service_name }}-prod --query taskDefinition > task-definition.json
|
||||
|
||||
- name: Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="${{ inputs.service_name }}-prod") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
|
||||
- name: Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-prod
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: ${{ inputs.service_name }}-prod
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/${{ inputs.docker_image }}
|
||||
|
||||
- name: Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-prod.outputs.task-definition }}
|
||||
service: ${{ inputs.service_name }}
|
||||
cluster: prod
|
||||
wait-for-service-stability: true
|
95
.github/workflows/common-docker-image.yml
vendored
Normal file
95
.github/workflows/common-docker-image.yml
vendored
Normal file
|
@ -0,0 +1,95 @@
|
|||
name: Reusable Publish Docker Image Workflow
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
service_name:
|
||||
required: true
|
||||
type: string
|
||||
package_path:
|
||||
required: true
|
||||
type: string
|
||||
workspace_name:
|
||||
required: true
|
||||
type: string
|
||||
secrets:
|
||||
DOCKER_USERNAME:
|
||||
required: true
|
||||
DOCKER_PASSWORD:
|
||||
required: true
|
||||
AWS_ACCESS_KEY_ID:
|
||||
required: true
|
||||
AWS_SECRET_ACCESS_KEY:
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- uses: actions/setup-python@v4
|
||||
with:
|
||||
python-version: '3.11'
|
||||
|
||||
- name: Cache build
|
||||
id: cache-build
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
packages/**/dist
|
||||
key: ${{ runner.os }}-${{ inputs.service_name }}-build-${{ github.sha }}
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install dependencies
|
||||
run: yarn install --immutable
|
||||
|
||||
- name: Build
|
||||
if: steps.cache-build.outputs.cache-hit != 'true'
|
||||
run: yarn build
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v3
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@v2
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@master
|
||||
with:
|
||||
platforms: all
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@master
|
||||
|
||||
- name: Publish Docker image
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
builder: ${{ steps.buildx.outputs.name }}
|
||||
context: .
|
||||
file: ${{ inputs.package_path }}/Dockerfile
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: |
|
||||
standardnotes/${{ inputs.service_name }}:latest
|
||||
standardnotes/${{ inputs.service_name }}:${{ github.sha }}
|
||||
${{ steps.login-ecr.outputs.registry }}/${{ inputs.service_name }}:${{ github.sha }}
|
||||
${{ steps.login-ecr.outputs.registry }}/${{ inputs.service_name }}:latest
|
26
.github/workflows/common-e2e.yml
vendored
Normal file
26
.github/workflows/common-e2e.yml
vendored
Normal file
|
@ -0,0 +1,26 @@
|
|||
name: Reusable Run E2E Test Suite Workflow
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
snjs_image_tag:
|
||||
type: string
|
||||
default: latest
|
||||
description: The Docker image tag used for SNJS container
|
||||
suite:
|
||||
type: string
|
||||
default: all
|
||||
description: The test suite to run
|
||||
|
||||
jobs:
|
||||
e2e-self-hosted:
|
||||
uses: standardnotes/server/.github/workflows/e2e-self-hosted.yml@main
|
||||
with:
|
||||
snjs_image_tag: ${{ inputs.snjs_image_tag }}
|
||||
suite: ${{ inputs.suite }}
|
||||
|
||||
e2e-home-server:
|
||||
uses: standardnotes/server/.github/workflows/e2e-home-server.yml@main
|
||||
with:
|
||||
snjs_image_tag: ${{ inputs.snjs_image_tag }}
|
||||
suite: ${{ inputs.suite }}
|
47
.github/workflows/common-self-hosting.yml
vendored
Normal file
47
.github/workflows/common-self-hosting.yml
vendored
Normal file
|
@ -0,0 +1,47 @@
|
|||
name: Reusable Publish Docker Self Hosting Image Workflow
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
secrets:
|
||||
DOCKER_USERNAME:
|
||||
required: true
|
||||
DOCKER_PASSWORD:
|
||||
required: true
|
||||
AWS_ACCESS_KEY_ID:
|
||||
required: true
|
||||
AWS_SECRET_ACCESS_KEY:
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@master
|
||||
with:
|
||||
platforms: all
|
||||
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@master
|
||||
|
||||
- name: Publish Docker image
|
||||
uses: docker/build-push-action@v4
|
||||
with:
|
||||
builder: ${{ steps.buildx.outputs.name }}
|
||||
context: .
|
||||
file: Dockerfile
|
||||
platforms: linux/amd64,linux/arm64
|
||||
push: true
|
||||
tags: |
|
||||
standardnotes/server:latest
|
||||
standardnotes/server:${{ github.sha }}
|
67
.github/workflows/common-server-application.yml
vendored
Normal file
67
.github/workflows/common-server-application.yml
vendored
Normal file
|
@ -0,0 +1,67 @@
|
|||
name: Reusable Server Application Workflow
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
service_name:
|
||||
required: true
|
||||
type: string
|
||||
workspace_name:
|
||||
required: true
|
||||
type: string
|
||||
deploy_web:
|
||||
required: false
|
||||
default: true
|
||||
type: boolean
|
||||
deploy_worker:
|
||||
required: false
|
||||
default: true
|
||||
type: boolean
|
||||
package_path:
|
||||
required: true
|
||||
type: string
|
||||
secrets:
|
||||
DOCKER_USERNAME:
|
||||
required: true
|
||||
DOCKER_PASSWORD:
|
||||
required: true
|
||||
CI_PAT_TOKEN:
|
||||
required: true
|
||||
AWS_ACCESS_KEY_ID:
|
||||
required: true
|
||||
AWS_SECRET_ACCESS_KEY:
|
||||
required: true
|
||||
|
||||
jobs:
|
||||
publish:
|
||||
name: Publish Docker Image
|
||||
uses: standardnotes/server/.github/workflows/common-docker-image.yml@main
|
||||
with:
|
||||
service_name: ${{ inputs.service_name }}
|
||||
package_path: ${{ inputs.package_path }}
|
||||
workspace_name: ${{ inputs.workspace_name }}
|
||||
secrets: inherit
|
||||
|
||||
# deploy-web:
|
||||
# if: ${{ inputs.deploy_web }}
|
||||
|
||||
# needs: publish
|
||||
|
||||
# name: Deploy Web
|
||||
# uses: standardnotes/server/.github/workflows/common-deploy.yml@main
|
||||
# with:
|
||||
# service_name: ${{ inputs.service_name }}
|
||||
# docker_image: ${{ inputs.service_name }}:${{ github.sha }}
|
||||
# secrets: inherit
|
||||
|
||||
# deploy-worker:
|
||||
# if: ${{ inputs.deploy_worker }}
|
||||
|
||||
# needs: publish
|
||||
|
||||
# name: Deploy Worker
|
||||
# uses: standardnotes/server/.github/workflows/common-deploy.yml@main
|
||||
# with:
|
||||
# service_name: ${{ inputs.service_name }}-worker
|
||||
# docker_image: ${{ inputs.service_name }}:${{ github.sha }}
|
||||
# secrets: inherit
|
106
.github/workflows/e2e-home-server.yml
vendored
Normal file
106
.github/workflows/e2e-home-server.yml
vendored
Normal file
|
@ -0,0 +1,106 @@
|
|||
name: E2E Home Server Test Suite
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
snjs_image_tag:
|
||||
type: string
|
||||
default: latest
|
||||
description: The Docker image tag used for SNJS container
|
||||
suite:
|
||||
type: string
|
||||
default: all
|
||||
description: The test suite to run
|
||||
|
||||
jobs:
|
||||
e2e-home-server:
|
||||
name: (Home Server) E2E Test Suite
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
db_type: [mysql, sqlite]
|
||||
cache_type: [redis, memory]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
services:
|
||||
snjs:
|
||||
image: standardnotes/snjs:${{ inputs.snjs_image_tag }}
|
||||
ports:
|
||||
- 9001:9001
|
||||
cache:
|
||||
image: redis
|
||||
ports:
|
||||
- 6379:6379
|
||||
db:
|
||||
image: mysql
|
||||
ports:
|
||||
- 3306:3306
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: root
|
||||
MYSQL_DATABASE: standardnotes
|
||||
MYSQL_USER: standardnotes
|
||||
MYSQL_PASSWORD: standardnotes
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install Dependencies
|
||||
run: yarn install --immutable
|
||||
|
||||
- name: Build
|
||||
run: yarn build
|
||||
|
||||
- name: Copy dotenv file
|
||||
run: cp packages/home-server/.env.sample packages/home-server/.env
|
||||
|
||||
- name: Fill in env variables
|
||||
run: |
|
||||
sed -i "s/JWT_SECRET=/JWT_SECRET=$(openssl rand -hex 32)/g" packages/home-server/.env
|
||||
sed -i "s/AUTH_JWT_SECRET=/AUTH_JWT_SECRET=$(openssl rand -hex 32)/g" packages/home-server/.env
|
||||
sed -i "s/ENCRYPTION_SERVER_KEY=/ENCRYPTION_SERVER_KEY=$(openssl rand -hex 32)/g" packages/home-server/.env
|
||||
sed -i "s/PSEUDO_KEY_PARAMS_KEY=/PSEUDO_KEY_PARAMS_KEY=$(openssl rand -hex 32)/g" packages/home-server/.env
|
||||
sed -i "s/VALET_TOKEN_SECRET=/VALET_TOKEN_SECRET=$(openssl rand -hex 32)/g" packages/home-server/.env
|
||||
echo "ACCESS_TOKEN_AGE=4" >> packages/home-server/.env
|
||||
echo "REFRESH_TOKEN_AGE=10" >> packages/home-server/.env
|
||||
echo "REVISIONS_FREQUENCY=2" >> packages/home-server/.env
|
||||
echo "CONTENT_SIZE_TRANSFER_LIMIT=100000" >> packages/home-server/.env
|
||||
echo "HTTP_REQUEST_PAYLOAD_LIMIT_MEGABYTES=1" >> packages/home-server/.env
|
||||
echo "DB_HOST=localhost" >> packages/home-server/.env
|
||||
echo "DB_PORT=3306" >> packages/home-server/.env
|
||||
echo "DB_DATABASE=standardnotes" >> packages/home-server/.env
|
||||
echo "DB_SQLITE_DATABASE_PATH=homeserver.db" >> packages/home-server/.env
|
||||
echo "DB_USERNAME=standardnotes" >> packages/home-server/.env
|
||||
echo "DB_PASSWORD=standardnotes" >> packages/home-server/.env
|
||||
echo "DB_TYPE=${{ matrix.db_type }}" >> packages/home-server/.env
|
||||
echo "DB_DEBUG_LEVEL=all" >> packages/home-server/.env
|
||||
echo "REDIS_URL=redis://localhost:6379" >> packages/home-server/.env
|
||||
echo "CACHE_TYPE=${{ matrix.cache_type }}" >> packages/home-server/.env
|
||||
echo "FILES_SERVER_URL=http://localhost:3123" >> packages/home-server/.env
|
||||
echo "E2E_TESTING=true" >> packages/home-server/.env
|
||||
|
||||
- name: Run Server
|
||||
run: nohup yarn workspace @standardnotes/home-server start > logs/output.log 2>&1 &
|
||||
env:
|
||||
PORT: 3123
|
||||
|
||||
- name: Wait for server to start
|
||||
run: for i in {1..30}; do curl -s http://localhost:3123/healthcheck && break || sleep 1; done
|
||||
|
||||
- name: Run E2E Test Suite
|
||||
run: yarn dlx mocha-headless-chrome --timeout 3600000 -f http://localhost:9001/mocha/test.html?suite=${{ inputs.suite }}
|
||||
|
||||
- name: Archive failed run logs
|
||||
if: ${{ failure() }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: home-server-failure-logs-${{ inputs.suite }}-${{ matrix.db_type }}-${{ matrix.cache_type }}
|
||||
retention-days: 5
|
||||
path: |
|
||||
logs/output.log
|
70
.github/workflows/e2e-self-hosted.yml
vendored
Normal file
70
.github/workflows/e2e-self-hosted.yml
vendored
Normal file
|
@ -0,0 +1,70 @@
|
|||
name: E2E Self Hosted Test Suite
|
||||
|
||||
on:
|
||||
workflow_call:
|
||||
inputs:
|
||||
snjs_image_tag:
|
||||
type: string
|
||||
default: latest
|
||||
description: The Docker image tag used for SNJS container
|
||||
suite:
|
||||
type: string
|
||||
default: all
|
||||
description: The test suite to run
|
||||
|
||||
jobs:
|
||||
e2e:
|
||||
name: (Self Hosting) E2E Test Suite
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
service_proxy_type: [http, grpc]
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
services:
|
||||
snjs:
|
||||
image: standardnotes/snjs:${{ inputs.snjs_image_tag }}
|
||||
ports:
|
||||
- 9001:9001
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install
|
||||
run: yarn install --immutable
|
||||
|
||||
- name: Run Server
|
||||
run: docker compose -f docker-compose.ci.yml up -d
|
||||
env:
|
||||
DB_TYPE: mysql
|
||||
CACHE_TYPE: redis
|
||||
SERVICE_PROXY_TYPE: ${{ matrix.service_proxy_type }}
|
||||
|
||||
- name: Output Server Logs to File
|
||||
run: docker compose -f docker-compose.ci.yml logs -f > logs/docker-compose.log 2>&1 &
|
||||
env:
|
||||
DB_TYPE: mysql
|
||||
CACHE_TYPE: redis
|
||||
SERVICE_PROXY_TYPE: ${{ matrix.service_proxy_type }}
|
||||
|
||||
- name: Wait for server to start
|
||||
run: docker/is-available.sh http://localhost:3123 $(pwd)/logs
|
||||
|
||||
- name: Run E2E Test Suite
|
||||
run: yarn dlx mocha-headless-chrome --timeout 3600000 -f http://localhost:9001/mocha/test.html?suite=${{ inputs.suite }}
|
||||
|
||||
- name: Archive failed run logs
|
||||
if: ${{ failure() }}
|
||||
uses: actions/upload-artifact@v3
|
||||
with:
|
||||
name: self-hosted-failure-logs-${{ inputs.suite }}
|
||||
retention-days: 5
|
||||
path: |
|
||||
logs/*.err
|
||||
logs/*.log
|
33
.github/workflows/e2e-test-suite.yml
vendored
Normal file
33
.github/workflows/e2e-test-suite.yml
vendored
Normal file
|
@ -0,0 +1,33 @@
|
|||
name: E2E Test Suite
|
||||
|
||||
run-name: E2E ${{ inputs.suite }} Test Suite against ${{ inputs.ref_name }} by ${{ inputs.author }}
|
||||
|
||||
on:
|
||||
schedule:
|
||||
- cron: '0 */12 * * *'
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
snjs_image_tag:
|
||||
type: string
|
||||
default: latest
|
||||
description: The Docker image tag used for SNJS container
|
||||
suite:
|
||||
type: string
|
||||
default: all
|
||||
description: The test suite to run
|
||||
author:
|
||||
type: string
|
||||
default: unknown
|
||||
description: The author that triggered the workflow
|
||||
ref_name:
|
||||
type: string
|
||||
default: unknown
|
||||
description: The ref name from which the workflow was triggered
|
||||
|
||||
jobs:
|
||||
e2e:
|
||||
name: E2E
|
||||
uses: standardnotes/server/.github/workflows/common-e2e.yml@main
|
||||
with:
|
||||
snjs_image_tag: ${{ inputs.snjs_image_tag || 'latest' }}
|
||||
suite: ${{ inputs.suite || 'all' }}
|
204
.github/workflows/files.release.yml
vendored
204
.github/workflows/files.release.yml
vendored
|
@ -1,204 +0,0 @@
|
|||
name: Files Server
|
||||
|
||||
concurrency:
|
||||
group: files
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/files-server*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.x'
|
||||
- run: yarn lint:files
|
||||
- run: yarn test:files
|
||||
|
||||
publish-aws-ecr:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:files
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@v1
|
||||
- name: Build, tag, and push image to Amazon ECR
|
||||
id: build-image
|
||||
env:
|
||||
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
|
||||
ECR_REPOSITORY: files
|
||||
IMAGE_TAG: ${{ github.sha }}
|
||||
run: |
|
||||
yarn docker build @standardnotes/files-server -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest
|
||||
|
||||
publish-docker-hub:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:files
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build, tag, and push image to Docker Hub
|
||||
run: |
|
||||
yarn docker build @standardnotes/files-server -t standardnotes/files:${{ github.sha }}
|
||||
docker push standardnotes/files:${{ github.sha }}
|
||||
docker tag standardnotes/files:${{ github.sha }} standardnotes/files:latest
|
||||
docker push standardnotes/files:latest
|
||||
|
||||
deploy-web:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: DEV - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition files-dev --query taskDefinition > task-definition.json
|
||||
- name: DEV - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="files-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: DEV - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-dev
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: files-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/files:${{ github.sha }}
|
||||
- name: DEV - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-dev.outputs.task-definition }}
|
||||
service: files-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
- name: PROD - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition files-prod --query taskDefinition > task-definition.json
|
||||
- name: PROD - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="files-prod") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: PROD - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-prod
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: files-prod
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/files:${{ github.sha }}
|
||||
- name: PROD - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-prod.outputs.task-definition }}
|
||||
service: files-prod
|
||||
cluster: prod
|
||||
wait-for-service-stability: true
|
||||
|
||||
deploy-worker:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: DEV - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition files-worker-dev --query taskDefinition > task-definition.json
|
||||
- name: DEV - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="files-worker-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: DEV - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-dev
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: files-worker-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/files:${{ github.sha }}
|
||||
- name: DEV - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-dev.outputs.task-definition }}
|
||||
service: files-worker-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
- name: PROD - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition files-worker-prod --query taskDefinition > task-definition.json
|
||||
- name: PROD - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="files-worker-prod") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: PROD - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-prod
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: files-worker-prod
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/files:${{ github.sha }}
|
||||
- name: PROD - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-prod.outputs.task-definition }}
|
||||
service: files-worker-prod
|
||||
cluster: prod
|
||||
wait-for-service-stability: true
|
||||
|
||||
newrelic:
|
||||
needs: [ deploy-web, deploy-worker ]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Create New Relic deployment marker for Web
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_FILES_WEB_PROD }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
||||
- name: Create New Relic deployment marker for Worker
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_FILES_WORKER_PROD }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
21
.github/workflows/files.yml
vendored
Normal file
21
.github/workflows/files.yml
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
name: Files Server
|
||||
|
||||
concurrency:
|
||||
group: files
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/files-server*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
call_server_application_workflow:
|
||||
name: Server Application
|
||||
uses: standardnotes/server/.github/workflows/common-server-application.yml@main
|
||||
with:
|
||||
service_name: files
|
||||
workspace_name: "@standardnotes/files-server"
|
||||
package_path: packages/files
|
||||
secrets: inherit
|
113
.github/workflows/pr.yml
vendored
113
.github/workflows/pr.yml
vendored
|
@ -6,16 +6,107 @@ on:
|
|||
- main
|
||||
|
||||
jobs:
|
||||
test:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
- name: Install dependencies
|
||||
run: yarn install --immutable
|
||||
- name: ESLint
|
||||
run: yarn lint
|
||||
- name: Build
|
||||
run: yarn build
|
||||
- name: Test
|
||||
run: yarn test
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Cache build
|
||||
id: cache-build
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
packages/**/dist
|
||||
key: ${{ runner.os }}-build-${{ github.sha }}
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install
|
||||
run: yarn install
|
||||
|
||||
- name: Build
|
||||
run: yarn build
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Cache build
|
||||
id: cache-build
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
packages/**/dist
|
||||
key: ${{ runner.os }}-build-${{ github.sha }}
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install
|
||||
run: yarn install
|
||||
|
||||
- name: Build
|
||||
if: steps.cache-build.outputs.cache-hit != 'true'
|
||||
run: yarn build
|
||||
|
||||
- name: Lint
|
||||
run: yarn lint
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Cache build
|
||||
id: cache-build
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
packages/**/dist
|
||||
key: ${{ runner.os }}-build-${{ github.sha }}
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install
|
||||
run: yarn install
|
||||
|
||||
- name: Build
|
||||
if: steps.cache-build.outputs.cache-hit != 'true'
|
||||
run: yarn build
|
||||
|
||||
- name: Test
|
||||
run: yarn test
|
||||
|
||||
e2e-base:
|
||||
needs: build
|
||||
name: E2E Base Suite
|
||||
uses: standardnotes/server/.github/workflows/common-e2e.yml@main
|
||||
with:
|
||||
snjs_image_tag: 'latest'
|
||||
suite: 'base'
|
||||
|
||||
e2e-vaults:
|
||||
needs: build
|
||||
name: E2E Vaults Suite
|
||||
uses: standardnotes/server/.github/workflows/common-e2e.yml@main
|
||||
with:
|
||||
snjs_image_tag: 'latest'
|
||||
suite: 'vaults'
|
||||
|
|
177
.github/workflows/publish.yml
vendored
Normal file
177
.github/workflows/publish.yml
vendored
Normal file
|
@ -0,0 +1,177 @@
|
|||
name: Publish Packages
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
|
||||
permissions:
|
||||
id-token: write
|
||||
|
||||
jobs:
|
||||
build:
|
||||
if: contains(github.event.head_commit.message, 'chore(release)') == false
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Cache build
|
||||
id: cache-build
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
packages/**/dist
|
||||
key: ${{ runner.os }}-build-${{ github.sha }}
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install
|
||||
run: yarn install --immutable
|
||||
|
||||
- name: Build
|
||||
run: yarn build
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Cache build
|
||||
id: cache-build
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
packages/**/dist
|
||||
key: ${{ runner.os }}-build-${{ github.sha }}
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install
|
||||
run: yarn install --immutable
|
||||
|
||||
- name: Build
|
||||
if: steps.cache-build.outputs.cache-hit != 'true'
|
||||
run: yarn build
|
||||
|
||||
- name: Lint
|
||||
run: yarn lint
|
||||
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
needs: build
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Cache build
|
||||
id: cache-build
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
packages/**/dist
|
||||
key: ${{ runner.os }}-build-${{ github.sha }}
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install
|
||||
run: yarn install --immutable
|
||||
|
||||
- name: Build
|
||||
if: steps.cache-build.outputs.cache-hit != 'true'
|
||||
run: yarn build
|
||||
|
||||
- name: Test
|
||||
run: yarn test
|
||||
|
||||
# e2e-base:
|
||||
# needs: build
|
||||
# name: E2E Base Suite
|
||||
# uses: standardnotes/server/.github/workflows/common-e2e.yml@main
|
||||
# with:
|
||||
# snjs_image_tag: 'latest'
|
||||
# suite: 'base'
|
||||
|
||||
# e2e-vaults:
|
||||
# needs: build
|
||||
# name: E2E Vaults Suite
|
||||
# uses: standardnotes/server/.github/workflows/common-e2e.yml@main
|
||||
# with:
|
||||
# snjs_image_tag: 'latest'
|
||||
# suite: 'vaults'
|
||||
|
||||
publish-self-hosting:
|
||||
# needs: [ test, lint, e2e-base, e2e-vaults ]
|
||||
needs: [ test, lint ]
|
||||
name: Publish Self Hosting Docker Image
|
||||
uses: standardnotes/server/.github/workflows/common-self-hosting.yml@main
|
||||
secrets: inherit
|
||||
|
||||
publish-services:
|
||||
# needs: [ test, lint, e2e-base, e2e-vaults ]
|
||||
needs: [ test, lint ]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
token: ${{ secrets.CI_PAT_TOKEN }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Cache build
|
||||
id: cache-build
|
||||
uses: actions/cache@v3
|
||||
with:
|
||||
path: |
|
||||
packages/**/dist
|
||||
key: ${{ runner.os }}-build-${{ github.sha }}
|
||||
|
||||
- name: Setup git config
|
||||
run: |
|
||||
git config --global user.name "standardci"
|
||||
git config --global user.email "ci@standardnotes.com"
|
||||
|
||||
- name: Import GPG key
|
||||
uses: crazy-max/ghaction-import-gpg@v6
|
||||
with:
|
||||
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||
passphrase: ${{ secrets.PASSPHRASE }}
|
||||
git_user_signingkey: true
|
||||
git_commit_gpgsign: true
|
||||
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
node-version-file: '.nvmrc'
|
||||
|
||||
- name: Install
|
||||
run: yarn install --immutable
|
||||
|
||||
- name: Build
|
||||
if: steps.cache-build.outputs.cache-hit != 'true'
|
||||
run: yarn build
|
||||
|
||||
- name: Bump version
|
||||
run: yarn release
|
||||
|
||||
- name: Publish
|
||||
run: yarn publish
|
||||
env:
|
||||
NODE_AUTH_TOKEN: ${{ secrets.CI_NPM_TOKEN }}
|
21
.github/workflows/revisions.yml
vendored
Normal file
21
.github/workflows/revisions.yml
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
name: Revisions Server
|
||||
|
||||
concurrency:
|
||||
group: revisions_server
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/revisions-server*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
call_server_application_workflow:
|
||||
name: Server Application
|
||||
uses: standardnotes/server/.github/workflows/common-server-application.yml@main
|
||||
with:
|
||||
service_name: revisions
|
||||
workspace_name: "@standardnotes/revisions-server"
|
||||
package_path: packages/revisions
|
||||
secrets: inherit
|
143
.github/workflows/scheduler.release.yml
vendored
143
.github/workflows/scheduler.release.yml
vendored
|
@ -1,143 +0,0 @@
|
|||
name: Scheduler Server
|
||||
|
||||
concurrency:
|
||||
group: scheduler
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/scheduler-server*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.x'
|
||||
- run: yarn lint:scheduler
|
||||
- run: yarn test:scheduler
|
||||
|
||||
publish-aws-ecr:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:scheduler
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@v1
|
||||
- name: Build, tag, and push image to Amazon ECR
|
||||
id: build-image
|
||||
env:
|
||||
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
|
||||
ECR_REPOSITORY: scheduler-worker
|
||||
IMAGE_TAG: ${{ github.sha }}
|
||||
run: |
|
||||
yarn docker build @standardnotes/scheduler-server -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest
|
||||
|
||||
publish-docker-hub:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:scheduler
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build, tag, and push image to Docker Hub
|
||||
run: |
|
||||
yarn docker build @standardnotes/scheduler-server -t standardnotes/scheduler:${{ github.sha }}
|
||||
docker push standardnotes/scheduler:${{ github.sha }}
|
||||
docker tag standardnotes/scheduler:${{ github.sha }} standardnotes/scheduler:latest
|
||||
docker push standardnotes/scheduler:latest
|
||||
|
||||
deploy-worker:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: DEV - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition scheduler-worker-dev --query taskDefinition > task-definition.json
|
||||
- name: DEV - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="scheduler-worker-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: DEV - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-dev
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: scheduler-worker-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/scheduler-worker:${{ github.sha }}
|
||||
- name: DEV - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-dev.outputs.task-definition }}
|
||||
service: scheduler-worker-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
- name: PROD - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition scheduler-worker-prod --query taskDefinition > task-definition.json
|
||||
- name: PROD - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="scheduler-worker-prod") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: PROD - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-prod
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: scheduler-worker-prod
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/scheduler-worker:${{ github.sha }}
|
||||
- name: PROD - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-prod.outputs.task-definition }}
|
||||
service: scheduler-worker-prod
|
||||
cluster: prod
|
||||
wait-for-service-stability: true
|
||||
|
||||
newrelic:
|
||||
needs: [ deploy-worker ]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Create New Relic deployment marker for Worker
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_SCHEDULER_WORKER_PROD }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
22
.github/workflows/scheduler.yml
vendored
Normal file
22
.github/workflows/scheduler.yml
vendored
Normal file
|
@ -0,0 +1,22 @@
|
|||
name: Scheduler Server
|
||||
|
||||
concurrency:
|
||||
group: scheduler
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/scheduler-server*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
call_server_application_workflow:
|
||||
name: Server Application
|
||||
uses: standardnotes/server/.github/workflows/common-server-application.yml@main
|
||||
with:
|
||||
service_name: scheduler
|
||||
workspace_name: "@standardnotes/scheduler-server"
|
||||
deploy_web: false
|
||||
package_path: packages/scheduler
|
||||
secrets: inherit
|
46
.github/workflows/snjs.upgrade.event.yml
vendored
46
.github/workflows/snjs.upgrade.event.yml
vendored
|
@ -1,46 +0,0 @@
|
|||
name: Update SNJS Packages
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
repository_dispatch:
|
||||
types: [snjs-updated-event]
|
||||
|
||||
jobs:
|
||||
SNJSUpdateEvent:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
ref: main
|
||||
token: ${{ secrets.CI_PAT_TOKEN }}
|
||||
- uses: actions/setup-node@v3
|
||||
with:
|
||||
registry-url: 'https://registry.npmjs.org'
|
||||
- name: Setup git config
|
||||
run: |
|
||||
git config --global user.name "standardci"
|
||||
git config --global user.email "ci@standardnotes.com"
|
||||
- name: Import GPG key
|
||||
uses: crazy-max/ghaction-import-gpg@v4
|
||||
with:
|
||||
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||
passphrase: ${{ secrets.PASSPHRASE }}
|
||||
git_user_signingkey: true
|
||||
git_commit_gpgsign: true
|
||||
|
||||
- run: yarn install
|
||||
- run: |
|
||||
yarn upgrade:snjs
|
||||
yarn install --no-immutable
|
||||
|
||||
- name: Create Pull Request
|
||||
uses: peter-evans/create-pull-request@v4
|
||||
with:
|
||||
token: ${{ secrets.CI_PAT_TOKEN }}
|
||||
title: "${{ 'chore(deps): upgrade snjs' }}"
|
||||
body: Updates all packages prefixed with "@standardnotes/"
|
||||
commit-message: "${{ 'chore(deps): upgrade snjs' }}"
|
||||
delete-branch: true
|
||||
committer: standardci <ci@standardnotes.com>
|
||||
author: standardci <ci@standardnotes.com>
|
205
.github/workflows/syncing-server.release.yml
vendored
205
.github/workflows/syncing-server.release.yml
vendored
|
@ -1,205 +0,0 @@
|
|||
name: Syncing Server
|
||||
|
||||
concurrency:
|
||||
group: syncing_server
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/syncing-server*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.x'
|
||||
- run: yarn install --immutable
|
||||
- run: yarn lint:syncing-server
|
||||
- run: yarn test:syncing-server
|
||||
|
||||
publish-aws-ecr:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:syncing-server
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: Login to Amazon ECR
|
||||
id: login-ecr
|
||||
uses: aws-actions/amazon-ecr-login@v1
|
||||
- name: Build, tag, and push image to Amazon ECR
|
||||
id: build-image
|
||||
env:
|
||||
ECR_REGISTRY: ${{ steps.login-ecr.outputs.registry }}
|
||||
ECR_REPOSITORY: syncing-server-js
|
||||
IMAGE_TAG: ${{ github.sha }}
|
||||
run: |
|
||||
yarn docker build @standardnotes/syncing-server -t $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG
|
||||
docker tag $ECR_REGISTRY/$ECR_REPOSITORY:$IMAGE_TAG $ECR_REGISTRY/$ECR_REPOSITORY:latest
|
||||
docker push $ECR_REGISTRY/$ECR_REPOSITORY:latest
|
||||
|
||||
publish-docker-hub:
|
||||
needs: test
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- name: Build locally
|
||||
run: yarn build:syncing-server
|
||||
- name: Login to Docker Hub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build, tag, and push image to Docker Hub
|
||||
run: |
|
||||
yarn docker build @standardnotes/syncing-server -t standardnotes/syncing-server-js:${{ github.sha }}
|
||||
docker push standardnotes/syncing-server-js:${{ github.sha }}
|
||||
docker tag standardnotes/syncing-server-js:${{ github.sha }} standardnotes/syncing-server-js:latest
|
||||
docker push standardnotes/syncing-server-js:latest
|
||||
|
||||
deploy-web:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: DEV - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition syncing-server-js-dev --query taskDefinition > task-definition.json
|
||||
- name: DEV - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="syncing-server-js-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: DEV - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-dev
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: syncing-server-js-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/syncing-server-js:${{ github.sha }}
|
||||
- name: DEV - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-dev.outputs.task-definition }}
|
||||
service: syncing-server-js-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
- name: PROD - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition syncing-server-js-prod --query taskDefinition > task-definition.json
|
||||
- name: PROD - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="syncing-server-js-prod") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: PROD - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-prod
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: syncing-server-js-prod
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/syncing-server-js:${{ github.sha }}
|
||||
- name: PROD - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-prod.outputs.task-definition }}
|
||||
service: syncing-server-js-prod
|
||||
cluster: prod
|
||||
wait-for-service-stability: true
|
||||
|
||||
deploy-worker:
|
||||
needs: publish-aws-ecr
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Configure AWS credentials
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
aws-region: us-east-1
|
||||
- name: DEV - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition syncing-server-js-worker-dev --query taskDefinition > task-definition.json
|
||||
- name: DEV - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="syncing-server-js-worker-dev") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: DEV - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-dev
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: syncing-server-js-worker-dev
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/syncing-server-js:${{ github.sha }}
|
||||
- name: DEV - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-dev.outputs.task-definition }}
|
||||
service: syncing-server-js-worker-dev
|
||||
cluster: dev
|
||||
wait-for-service-stability: true
|
||||
- name: PROD - Download task definition
|
||||
run: |
|
||||
aws ecs describe-task-definition --task-definition syncing-server-js-worker-prod --query taskDefinition > task-definition.json
|
||||
- name: PROD - Fill in the new version in the Amazon ECS task definition
|
||||
run: |
|
||||
jq '(.containerDefinitions[] | select(.name=="syncing-server-js-worker-prod") | .environment[] | select(.name=="VERSION")).value = "${{ github.sha }}"' task-definition.json > tmp.json && mv tmp.json task-definition.json
|
||||
- name: PROD - Fill in the new image ID in the Amazon ECS task definition
|
||||
id: task-def-prod
|
||||
uses: aws-actions/amazon-ecs-render-task-definition@v1
|
||||
with:
|
||||
task-definition: task-definition.json
|
||||
container-name: syncing-server-js-worker-prod
|
||||
image: ${{ secrets.AWS_ECR_REGISTRY }}/syncing-server-js:${{ github.sha }}
|
||||
- name: PROD - Deploy Amazon ECS task definition
|
||||
uses: aws-actions/amazon-ecs-deploy-task-definition@v1
|
||||
with:
|
||||
task-definition: ${{ steps.task-def-prod.outputs.task-definition }}
|
||||
service: syncing-server-js-worker-prod
|
||||
cluster: prod
|
||||
wait-for-service-stability: true
|
||||
|
||||
newrelic:
|
||||
needs: [ deploy-web, deploy-worker ]
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Create New Relic deployment marker for Web
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_SYNCING_SERVER_WEB_PROD }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
||||
- name: Create New Relic deployment marker for Worker
|
||||
uses: newrelic/deployment-marker-action@v1
|
||||
with:
|
||||
accountId: ${{ secrets.NEW_RELIC_ACCOUNT_ID }}
|
||||
apiKey: ${{ secrets.NEW_RELIC_API_KEY }}
|
||||
applicationId: ${{ secrets.NEW_RELIC_APPLICATION_ID_SYNCING_SERVER_WORKER_PROD }}
|
||||
revision: "${{ github.sha }}"
|
||||
description: "Automated Deployment via Github Actions"
|
||||
user: "${{ github.actor }}"
|
21
.github/workflows/syncing-server.yml
vendored
Normal file
21
.github/workflows/syncing-server.yml
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
name: Syncing Server
|
||||
|
||||
concurrency:
|
||||
group: syncing_server
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/syncing-server*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
call_server_application_workflow:
|
||||
name: Server Application
|
||||
uses: standardnotes/server/.github/workflows/common-server-application.yml@main
|
||||
with:
|
||||
service_name: syncing-server-js
|
||||
workspace_name: "@standardnotes/syncing-server"
|
||||
package_path: packages/syncing-server
|
||||
secrets: inherit
|
39
.github/workflows/version-bump.yml
vendored
39
.github/workflows/version-bump.yml
vendored
|
@ -1,39 +0,0 @@
|
|||
name: Version Bump
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ main ]
|
||||
|
||||
jobs:
|
||||
bump:
|
||||
if: contains(github.event.head_commit.message, 'chore(release)') == false
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout code
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
token: ${{ secrets.CI_PAT_TOKEN }}
|
||||
fetch-depth: 0
|
||||
|
||||
- name: Setup git config
|
||||
run: |
|
||||
git config --global user.name "standardci"
|
||||
git config --global user.email "ci@standardnotes.com"
|
||||
|
||||
- name: Import GPG key
|
||||
uses: crazy-max/ghaction-import-gpg@v5
|
||||
with:
|
||||
gpg_private_key: ${{ secrets.GPG_PRIVATE_KEY }}
|
||||
passphrase: ${{ secrets.PASSPHRASE }}
|
||||
git_user_signingkey: true
|
||||
git_commit_gpgsign: true
|
||||
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: '16.x'
|
||||
|
||||
- name: Install locally
|
||||
run: yarn install --immutable
|
||||
|
||||
- name: Bump Version
|
||||
run: yarn release:prod
|
21
.github/workflows/websockets.yml
vendored
Normal file
21
.github/workflows/websockets.yml
vendored
Normal file
|
@ -0,0 +1,21 @@
|
|||
name: Websockets Server
|
||||
|
||||
concurrency:
|
||||
group: websockets
|
||||
cancel-in-progress: true
|
||||
|
||||
on:
|
||||
push:
|
||||
tags:
|
||||
- '*standardnotes/websockets-server*'
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
call_server_application_workflow:
|
||||
name: Server Application
|
||||
uses: standardnotes/server/.github/workflows/common-server-application.yml@main
|
||||
with:
|
||||
service_name: websockets
|
||||
workspace_name: "@standardnotes/websockets-server"
|
||||
package_path: packages/websockets
|
||||
secrets: inherit
|
12
.gitignore
vendored
12
.gitignore
vendored
|
@ -1,23 +1,29 @@
|
|||
.eslintcache
|
||||
.DS_Store
|
||||
.idea
|
||||
node_modules
|
||||
dist
|
||||
coverage
|
||||
.env
|
||||
newrelic_agent.log
|
||||
|
||||
.yarn/*
|
||||
!.yarn/cache
|
||||
!.yarn/patches
|
||||
!.yarn/plugins
|
||||
!.yarn/releases
|
||||
!.yarn/unplugged
|
||||
!.yarn/sdks
|
||||
!.yarn/versions
|
||||
|
||||
yarn.build-error.log
|
||||
|
||||
packages/files/uploads/*
|
||||
!packages/files/uploads/.gitkeep
|
||||
|
||||
data/*
|
||||
!data/.gitkeep
|
||||
|
||||
packages/**/data/*
|
||||
|
||||
logs/*
|
||||
!logs/.gitkeep
|
||||
|
||||
docker-compose.yml
|
||||
|
|
2
.nvmrc
2
.nvmrc
|
@ -1 +1 @@
|
|||
16.15.1
|
||||
20.10.0
|
||||
|
|
41598
.pnp.cjs
generated
41598
.pnp.cjs
generated
File diff suppressed because one or more lines are too long
2033
.pnp.loader.mjs
generated
2033
.pnp.loader.mjs
generated
File diff suppressed because it is too large
Load diff
6
.prettierrc
Normal file
6
.prettierrc
Normal file
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"singleQuote": true,
|
||||
"trailingComma": "all",
|
||||
"printWidth": 120,
|
||||
"semi": false
|
||||
}
|
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
|
@ -6,5 +6,6 @@
|
|||
"eslint.nodePath": ".yarn/sdks",
|
||||
"prettier.prettierPath": ".yarn/sdks/prettier/index.js",
|
||||
"typescript.tsdk": ".yarn/sdks/typescript/lib",
|
||||
"typescript.enablePromptUseWorkspaceTsdk": true
|
||||
"typescript.enablePromptUseWorkspaceTsdk": true,
|
||||
"terraform.languageServer.enable": false
|
||||
}
|
||||
|
|
Binary file not shown.
BIN
.yarn/cache/@ampproject-remapping-npm-2.2.1-3da3d624be-e15fecbf3b.zip
vendored
Normal file
BIN
.yarn/cache/@ampproject-remapping-npm-2.2.1-3da3d624be-e15fecbf3b.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-crypto-crc32-npm-3.0.0-10d83e85b0-672d593fd9.zip
vendored
Normal file
BIN
.yarn/cache/@aws-crypto-crc32-npm-3.0.0-10d83e85b0-672d593fd9.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-crypto-crc32c-npm-3.0.0-79c813b90d-3e604ad7a8.zip
vendored
Normal file
BIN
.yarn/cache/@aws-crypto-crc32c-npm-3.0.0-79c813b90d-3e604ad7a8.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-crypto-ie11-detection-npm-3.0.0-71f24dcf6a-f5aee4a11a.zip
vendored
Normal file
BIN
.yarn/cache/@aws-crypto-ie11-detection-npm-3.0.0-71f24dcf6a-f5aee4a11a.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-crypto-sha1-browser-npm-3.0.0-f8218a7691-8c30fa1e42.zip
vendored
Normal file
BIN
.yarn/cache/@aws-crypto-sha1-browser-npm-3.0.0-f8218a7691-8c30fa1e42.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-crypto-sha256-browser-npm-3.0.0-467f48a447-4e075906c4.zip
vendored
Normal file
BIN
.yarn/cache/@aws-crypto-sha256-browser-npm-3.0.0-467f48a447-4e075906c4.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-crypto-sha256-js-npm-3.0.0-2ba1013fd6-f9fc2d5163.zip
vendored
Normal file
BIN
.yarn/cache/@aws-crypto-sha256-js-npm-3.0.0-2ba1013fd6-f9fc2d5163.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-crypto-supports-web-crypto-npm-3.0.0-55222d294a-8a48788d28.zip
vendored
Normal file
BIN
.yarn/cache/@aws-crypto-supports-web-crypto-npm-3.0.0-55222d294a-8a48788d28.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-crypto-util-npm-3.0.0-6c4b38c78e-92c835b83d.zip
vendored
Normal file
BIN
.yarn/cache/@aws-crypto-util-npm-3.0.0-6c4b38c78e-92c835b83d.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-apigatewaymanagementapi-npm-3.484.0-93b1df90f3-98de54d618.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-apigatewaymanagementapi-npm-3.484.0-93b1df90f3-98de54d618.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-cloudwatch-npm-3.485.0-afe4ac001f-0e02739ef1.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-cloudwatch-npm-3.485.0-afe4ac001f-0e02739ef1.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-s3-npm-3.484.0-681638ab7a-701523f3b3.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-s3-npm-3.484.0-681638ab7a-701523f3b3.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-sns-npm-3.484.0-9b2324ab20-22085f4087.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-sns-npm-3.484.0-9b2324ab20-22085f4087.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-sns-npm-3.490.0-2cd839225d-4d8875521c.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-sns-npm-3.490.0-2cd839225d-4d8875521c.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-sqs-npm-3.462.0-b5a0620ba3-2d09272c5e.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-sqs-npm-3.462.0-b5a0620ba3-2d09272c5e.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-sqs-npm-3.484.0-33759d74cc-1fe91d60c4.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-sqs-npm-3.484.0-33759d74cc-1fe91d60c4.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-sso-npm-3.460.0-105b35ffb2-88506ab10d.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-sso-npm-3.460.0-105b35ffb2-88506ab10d.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-sso-npm-3.484.0-f5e5a564ba-2a63f49f74.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-sso-npm-3.484.0-f5e5a564ba-2a63f49f74.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-sso-npm-3.485.0-5f6733bd23-635de0e310.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-sso-npm-3.485.0-5f6733bd23-635de0e310.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-sso-npm-3.490.0-26ec4a8978-785147e3c2.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-sso-npm-3.490.0-26ec4a8978-785147e3c2.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-sts-npm-3.462.0-ae696980b2-066fe4913a.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-sts-npm-3.462.0-ae696980b2-066fe4913a.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-sts-npm-3.484.0-5ea7bc6077-3d81f5b9cc.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-sts-npm-3.484.0-5ea7bc6077-3d81f5b9cc.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-sts-npm-3.485.0-cc69ab3505-98c7f4d722.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-sts-npm-3.485.0-cc69ab3505-98c7f4d722.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-client-sts-npm-3.490.0-f3cd7f7c70-19d1b98694.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-client-sts-npm-3.490.0-f3cd7f7c70-19d1b98694.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-core-npm-3.451.0-cf30d69a73-6f1fd70ef3.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-core-npm-3.451.0-cf30d69a73-6f1fd70ef3.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-core-npm-3.481.0-26466cae44-0bc324627f.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-core-npm-3.481.0-26466cae44-0bc324627f.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-core-npm-3.485.0-77ed30ee18-b84dafb213.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-core-npm-3.485.0-77ed30ee18-b84dafb213.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-core-npm-3.490.0-3725a806be-3e81f37825.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-core-npm-3.490.0-3725a806be-3e81f37825.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-env-npm-3.460.0-9195fdd390-b2a2e84046.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-env-npm-3.460.0-9195fdd390-b2a2e84046.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-env-npm-3.468.0-c10d791ad8-5e8fe5c7a9.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-env-npm-3.468.0-c10d791ad8-5e8fe5c7a9.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-env-npm-3.485.0-0fda7f74e0-b8346ea6f5.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-env-npm-3.485.0-0fda7f74e0-b8346ea6f5.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-env-npm-3.489.0-e86b20f5e4-95ab96ee49.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-env-npm-3.489.0-e86b20f5e4-95ab96ee49.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-ini-npm-3.460.0-0801b5a18f-7ab592ef92.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-ini-npm-3.460.0-0801b5a18f-7ab592ef92.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-ini-npm-3.484.0-1ac0286a6e-0c5440bc8f.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-ini-npm-3.484.0-1ac0286a6e-0c5440bc8f.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-ini-npm-3.485.0-bec3aaa989-3176b03ee1.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-ini-npm-3.485.0-bec3aaa989-3176b03ee1.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-ini-npm-3.490.0-51f9d0faff-4e4cd2633a.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-ini-npm-3.490.0-51f9d0faff-4e4cd2633a.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-node-npm-3.460.0-f11139cc8a-9e8ef3c25a.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-node-npm-3.460.0-f11139cc8a-9e8ef3c25a.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-node-npm-3.484.0-34d535702b-cdbe0b61b8.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-node-npm-3.484.0-34d535702b-cdbe0b61b8.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-node-npm-3.485.0-9f40e4a3cf-d31e5a95ea.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-node-npm-3.485.0-9f40e4a3cf-d31e5a95ea.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-node-npm-3.490.0-3cbe0ec5e6-2f8141c3e1.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-node-npm-3.490.0-3cbe0ec5e6-2f8141c3e1.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-process-npm-3.460.0-ed3352d712-962a4e3b04.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-process-npm-3.460.0-ed3352d712-962a4e3b04.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-process-npm-3.468.0-b7b56db295-7a345716ac.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-process-npm-3.468.0-b7b56db295-7a345716ac.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-process-npm-3.485.0-62d3460338-e740fb949e.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-process-npm-3.485.0-62d3460338-e740fb949e.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-process-npm-3.489.0-9370bfd061-42f4f5f21d.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-process-npm-3.489.0-9370bfd061-42f4f5f21d.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-sso-npm-3.460.0-0ac01b44fc-5882906132.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-sso-npm-3.460.0-0ac01b44fc-5882906132.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-sso-npm-3.484.0-716e7ba5ab-e6b1a40862.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-sso-npm-3.484.0-716e7ba5ab-e6b1a40862.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-sso-npm-3.485.0-42db25db09-7269315797.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-sso-npm-3.485.0-42db25db09-7269315797.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-sso-npm-3.490.0-9acb6828c0-ef2eff8fbc.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-sso-npm-3.490.0-9acb6828c0-ef2eff8fbc.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-web-identity-npm-3.460.0-48e9cb2a6d-138b22389a.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-web-identity-npm-3.460.0-48e9cb2a6d-138b22389a.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-web-identity-npm-3.468.0-27b7ef7b56-a5fac59563.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-web-identity-npm-3.468.0-27b7ef7b56-a5fac59563.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-web-identity-npm-3.485.0-420b04bcce-33125ce0b7.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-web-identity-npm-3.485.0-420b04bcce-33125ce0b7.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-credential-provider-web-identity-npm-3.489.0-002a8c8ade-911bc3fd28.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-credential-provider-web-identity-npm-3.489.0-002a8c8ade-911bc3fd28.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-middleware-bucket-endpoint-npm-3.484.0-479003f9eb-f801171542.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-middleware-bucket-endpoint-npm-3.484.0-479003f9eb-f801171542.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-middleware-expect-continue-npm-3.468.0-cd9cff215c-0a34c9ca88.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-middleware-expect-continue-npm-3.468.0-cd9cff215c-0a34c9ca88.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-middleware-flexible-checksums-npm-3.468.0-480c797bd4-458260d6bb.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-middleware-flexible-checksums-npm-3.468.0-480c797bd4-458260d6bb.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-middleware-host-header-npm-3.460.0-ebcb33a6e8-729ba3b0de.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-middleware-host-header-npm-3.460.0-ebcb33a6e8-729ba3b0de.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-middleware-host-header-npm-3.468.0-553e3b4841-d511dea932.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-middleware-host-header-npm-3.468.0-553e3b4841-d511dea932.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-middleware-host-header-npm-3.485.0-2e625f9614-9ca3da2a26.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-middleware-host-header-npm-3.485.0-2e625f9614-9ca3da2a26.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-middleware-host-header-npm-3.489.0-10c65ea2e3-3f80f71691.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-middleware-host-header-npm-3.489.0-10c65ea2e3-3f80f71691.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-middleware-location-constraint-npm-3.468.0-e2f386f988-18efae21e5.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-middleware-location-constraint-npm-3.468.0-e2f386f988-18efae21e5.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-middleware-logger-npm-3.460.0-d724453084-92a3692c1e.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-middleware-logger-npm-3.460.0-d724453084-92a3692c1e.zip
vendored
Normal file
Binary file not shown.
BIN
.yarn/cache/@aws-sdk-middleware-logger-npm-3.468.0-772d7d281b-75dba345d9.zip
vendored
Normal file
BIN
.yarn/cache/@aws-sdk-middleware-logger-npm-3.468.0-772d7d281b-75dba345d9.zip
vendored
Normal file
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Reference in a new issue