Compare commits
3675 Commits
13.0.0-bet
...
2024.2.0-b
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
5e307e472d | ||
|
|
e0ad066382 | ||
|
|
99fe03bd4d | ||
|
|
850d38414e | ||
|
|
d380ed36de | ||
|
|
5c8888d6a8 | ||
|
|
4af3640bd3 | ||
|
|
94e282b612 | ||
|
|
259992c65f | ||
|
|
67f6157d42 | ||
|
|
0cfeb42786 | ||
|
|
a431dde537 | ||
|
|
4f95b8d9d2 | ||
|
|
9eb0468cd2 | ||
|
|
1a01a85182 | ||
|
|
3ff229af6f | ||
|
|
3784b39a5f | ||
|
|
676ee87963 | ||
|
|
b52fe6cc86 | ||
|
|
f4657eb16f | ||
|
|
90e0a6e2c3 | ||
|
|
0580ba1fb5 | ||
|
|
fb309f3d4f | ||
|
|
4c87e98e12 | ||
|
|
b3cc17ea0d | ||
|
|
6039f27bd5 | ||
|
|
4de77784c9 | ||
|
|
a17251d913 | ||
|
|
576484835e | ||
|
|
fcd7ffe956 | ||
|
|
7d57487026 | ||
|
|
c48d9cca0f | ||
|
|
3cb543f75d | ||
|
|
c115b8e322 | ||
|
|
f6b7754fb1 | ||
|
|
3bf3ba450c | ||
|
|
094c6e32ff | ||
|
|
cb74b61755 | ||
|
|
1de29e5566 | ||
|
|
b9a81edae5 | ||
|
|
f86d0186d2 | ||
|
|
151e3bc940 | ||
|
|
44b8ac135f | ||
|
|
272590ef94 | ||
|
|
79eac66d39 | ||
|
|
e2985cf122 | ||
|
|
bc7b2f1876 | ||
|
|
91522381b6 | ||
|
|
952386ba8f | ||
|
|
7881f06be0 | ||
|
|
a637b4e282 | ||
|
|
678dba9245 | ||
|
|
b17eb8e537 | ||
|
|
8be977b32b | ||
|
|
3ad2732375 | ||
|
|
d85085d16f | ||
|
|
43401210c3 | ||
|
|
c1019a006b | ||
|
|
67a41c09ae | ||
|
|
fc7cd636a3 | ||
|
|
1e237a7df5 | ||
|
|
1dcf25c24f | ||
|
|
9a40b366a3 | ||
|
|
945d6a2b09 | ||
|
|
0283142d0e | ||
|
|
bcb4560f0d | ||
|
|
8db800ed98 | ||
|
|
acab9ccb81 | ||
|
|
bc5aebe956 | ||
|
|
c971edd2dd | ||
|
|
8b0fdfcd69 | ||
|
|
3d83c1aaba | ||
|
|
d92aaf81c4 | ||
|
|
0ea8e0c25c | ||
|
|
ec4e57bb67 | ||
|
|
12142a221a | ||
|
|
79a9defa0c | ||
|
|
fc4c868269 | ||
|
|
27dc0d3530 | ||
|
|
57017f2747 | ||
|
|
bc8a741e14 | ||
|
|
4846ab077b | ||
|
|
920888ed2a | ||
|
|
c26c01c7a0 | ||
|
|
d792f4f348 | ||
|
|
79370aaee2 | ||
|
|
18a5e377f4 | ||
|
|
19fe32bd7e | ||
|
|
d246f6c360 | ||
|
|
5503ad9d1a | ||
|
|
7b0f5b50fc | ||
|
|
6177fcb2f5 | ||
|
|
c33f56e3ed | ||
|
|
b13410df02 | ||
|
|
87ffc672dd | ||
|
|
5672ead957 | ||
|
|
0aefebf02a | ||
|
|
271407312e | ||
|
|
c2a9a7b69e | ||
|
|
b920435068 | ||
|
|
1aeede97f5 | ||
|
|
a5ea7c976b | ||
|
|
d2063df78d | ||
|
|
be57ff4985 | ||
|
|
cf54c2ba47 | ||
|
|
762fa6a8d8 | ||
|
|
36fd7d17cf | ||
|
|
5c786cace8 | ||
|
|
c1c363bf08 | ||
|
|
4bd9f664d7 | ||
|
|
3d9e42efca | ||
|
|
138a248a6c | ||
|
|
6bae440f39 | ||
|
|
f5b864df7b | ||
|
|
7e52ea4818 | ||
|
|
358dc6289b | ||
|
|
1063d39de8 | ||
|
|
14aedc17ae | ||
|
|
0d7f9308cc | ||
|
|
34088ecd27 | ||
|
|
0f9e3bccef | ||
|
|
64de87438e | ||
|
|
5dcd8c827b | ||
|
|
35ec41fc1e | ||
|
|
618e2ba1d2 | ||
|
|
04f9147db6 | ||
|
|
0ed2a220f4 | ||
|
|
e9c3fe1228 | ||
|
|
0c2118e963 | ||
|
|
145d28a8e4 | ||
|
|
6a02dfdd3b | ||
|
|
831131864f | ||
|
|
1bd7693416 | ||
|
|
5251cd3aad | ||
|
|
0e536bdd86 | ||
|
|
fd519f5def | ||
|
|
0d830d720a | ||
|
|
0d49e94982 | ||
|
|
e6022c0d51 | ||
|
|
5e71418d5c | ||
|
|
c6a4caa8be | ||
|
|
1d1780081e | ||
|
|
622a09f8ed | ||
|
|
00e195f50b | ||
|
|
8bf6d31334 | ||
|
|
2a9db983fc | ||
|
|
4ea030d669 | ||
|
|
f2dee7b25e | ||
|
|
a0976772b3 | ||
|
|
0815a5235d | ||
|
|
9eae82de1d | ||
|
|
746367004e | ||
|
|
072f67d6e7 | ||
|
|
b55a6a80e1 | ||
|
|
24645e3d3d | ||
|
|
d415fd29a3 | ||
|
|
7768385be2 | ||
|
|
2177792a3c | ||
|
|
9e20065496 | ||
|
|
2cd32b2248 | ||
|
|
fa9c4a19b9 | ||
|
|
ea41cc6ec0 | ||
|
|
9716ea0324 | ||
|
|
02978d0247 | ||
|
|
6598d320d6 | ||
|
|
f8d5a46dbf | ||
|
|
da154c8209 | ||
|
|
b46f431a2e | ||
|
|
30c3f6a222 | ||
|
|
30311aca18 | ||
|
|
a9127e3ecd | ||
|
|
58469c0a69 | ||
|
|
9c5559a570 | ||
|
|
3187c6b28d | ||
|
|
09aba4cf16 | ||
|
|
5498ec57d0 | ||
|
|
4893cce43c | ||
|
|
a40ededf6b | ||
|
|
379079ee42 | ||
|
|
1d5a0d0777 | ||
|
|
2a33981811 | ||
|
|
c0466d1585 | ||
|
|
30594dde18 | ||
|
|
7948018e6a | ||
|
|
8fb8d7c10c | ||
|
|
7ca0af9e7e | ||
|
|
ac2bace764 | ||
|
|
d97924890d | ||
|
|
6b4f57781a | ||
|
|
c525394989 | ||
|
|
8753f9ef06 | ||
|
|
35fd0a7fc2 | ||
|
|
f8261a1957 | ||
|
|
47558a6648 | ||
|
|
2a5c9e6002 | ||
|
|
9d5fc4ca17 | ||
|
|
a598baaf01 | ||
|
|
e0040f5da3 | ||
|
|
cc659721fb | ||
|
|
6439c7b64b | ||
|
|
8904e0a12b | ||
|
|
9410bc046b | ||
|
|
ad346b6f36 | ||
|
|
c96bc36fed | ||
|
|
d87fecda7f | ||
|
|
6855079811 | ||
|
|
9022b05fea | ||
|
|
75034d9240 | ||
|
|
a9b42765f9 | ||
|
|
eb23798c9f | ||
|
|
4f247a0784 | ||
|
|
95547da5a5 | ||
|
|
b0799089cd | ||
|
|
8ed7c7486c | ||
|
|
fd040c50b1 | ||
|
|
237fe242ad | ||
|
|
0009aa332b | ||
|
|
bf45c23098 | ||
|
|
7167bb397e | ||
|
|
0393d8f53c | ||
|
|
cae40e68e4 | ||
|
|
36701f8a7c | ||
|
|
6fce36374d | ||
|
|
316ffcea54 | ||
|
|
471c8ec050 | ||
|
|
2f425aa03f | ||
|
|
e852f4b60d | ||
|
|
f43599552f | ||
|
|
8caf2b0a4a | ||
|
|
59b47b8623 | ||
|
|
30cf5c3ab0 | ||
|
|
1716c6562c | ||
|
|
6e4894c165 | ||
|
|
98734af9a7 | ||
|
|
2c7d07bca6 | ||
|
|
5b5a537f56 | ||
|
|
b3c4f7eddc | ||
|
|
6254954957 | ||
|
|
9c04749359 | ||
|
|
6b7a810b8e | ||
|
|
5eb944ecde | ||
|
|
3d4af18327 | ||
|
|
179cb1d813 | ||
|
|
6d4aa316ac | ||
|
|
d68214bd46 | ||
|
|
52b94dbc4a | ||
|
|
433d46e57f | ||
|
|
79ca93cefb | ||
|
|
07d4632cd7 | ||
|
|
f88ed4dd1a | ||
|
|
f480287657 | ||
|
|
ffa0470cf8 | ||
|
|
c92508a575 | ||
|
|
b2254a66d3 | ||
|
|
757dee5664 | ||
|
|
c307dd4fe8 | ||
|
|
b3ab96b5ee | ||
|
|
15b0d2aff2 | ||
|
|
d14eb20122 | ||
|
|
4175b7809b | ||
|
|
10d4ae107b | ||
|
|
21882b69ec | ||
|
|
ea41df538e | ||
|
|
eeedef59c4 | ||
|
|
4e2d802967 | ||
|
|
f6ff3b1f1a | ||
|
|
38b82b8582 | ||
|
|
6b39ba918f | ||
|
|
13990279c3 | ||
|
|
507d436699 | ||
|
|
8a9f4ef441 | ||
|
|
6672e9efdd | ||
|
|
d995bf0326 | ||
|
|
5150053275 | ||
|
|
24261f6eb3 | ||
|
|
67824cfc89 | ||
|
|
776eea736a | ||
|
|
c167f20643 | ||
|
|
6df9c79bb7 | ||
|
|
2ecc0299b4 | ||
|
|
742da2f1e9 | ||
|
|
8c218397bc | ||
|
|
d7d9304a49 | ||
|
|
fda5147d06 | ||
|
|
17065418cf | ||
|
|
b1a7dcb05b | ||
|
|
390602837b | ||
|
|
9f49b9f4d2 | ||
|
|
3e256eee2c | ||
|
|
1260e8b74b | ||
|
|
617ff00a45 | ||
|
|
b5c319b2c7 | ||
|
|
272dc208b4 | ||
|
|
c41924399b | ||
|
|
eacc2040a1 | ||
|
|
bd4d8694dd | ||
|
|
5cc3d3c873 | ||
|
|
417852779f | ||
|
|
239507d7d6 | ||
|
|
386fcedf35 | ||
|
|
a2a6a94614 | ||
|
|
76d1ed39a1 | ||
|
|
d7766162d6 | ||
|
|
f7eef546a6 | ||
|
|
b9318d09ee | ||
|
|
0c0b7d77b3 | ||
|
|
8416329f40 | ||
|
|
8ff87176f8 | ||
|
|
a92795d90f | ||
|
|
364efbe58b | ||
|
|
aedc1d0ee9 | ||
|
|
b33fe53047 | ||
|
|
5cee481083 | ||
|
|
2cfe64e9e6 | ||
|
|
fbf1f74e12 | ||
|
|
839b7483ac | ||
|
|
eeed67ecac | ||
|
|
37820ad572 | ||
|
|
2b3a5f16d1 | ||
|
|
17f894348f | ||
|
|
71bb181472 | ||
|
|
5472f4b934 | ||
|
|
daea5a39ad | ||
|
|
06ca63f9c2 | ||
|
|
aad573a1d7 | ||
|
|
7f85d7a1f9 | ||
|
|
564a23c0b5 | ||
|
|
b691126bff | ||
|
|
ebdb443180 | ||
|
|
2217d0c050 | ||
|
|
4c135a5ca1 | ||
|
|
025afe88b4 | ||
|
|
b72f9186b5 | ||
|
|
dd332b3515 | ||
|
|
b7bdd45dba | ||
|
|
319267e096 | ||
|
|
fcf0f5f6b5 | ||
|
|
6c1f839cbe | ||
|
|
2c6fc0ba63 | ||
|
|
d10048edac | ||
|
|
ab5d2eca1f | ||
|
|
c54d1cdde2 | ||
|
|
712e5447b8 | ||
|
|
b760db13bc | ||
|
|
e38af60fd0 | ||
|
|
ac4089f37d | ||
|
|
f80ae7f686 | ||
|
|
9059b837fa | ||
|
|
b0039f0946 | ||
|
|
e6d01e33e6 | ||
|
|
bcf6b7f5ee | ||
|
|
1d3ef7b42f | ||
|
|
e926411812 | ||
|
|
406b4bdbe7 | ||
|
|
e42c91dee7 | ||
|
|
00b11b1f75 | ||
|
|
ad60e43ae4 | ||
|
|
8866c530c4 | ||
|
|
920e521176 | ||
|
|
9c90ff7d06 | ||
|
|
e90ad09551 | ||
|
|
bb38e62ae6 | ||
|
|
33034b0e02 | ||
|
|
18109fcef7 | ||
|
|
b2c4973cda | ||
|
|
55c8ec80ed | ||
|
|
5e1d872404 | ||
|
|
af15f8d09d | ||
|
|
34223f3da4 | ||
|
|
e17d741f4b | ||
|
|
b4a83a22a1 | ||
|
|
5bf7813b2d | ||
|
|
2eb86e0619 | ||
|
|
c68d87538a | ||
|
|
4de4a2e143 | ||
|
|
5ccd61b1f8 | ||
|
|
336416261a | ||
|
|
92029ac325 | ||
|
|
238e8ce939 | ||
|
|
a631b976c9 | ||
|
|
cf3d45e7c8 | ||
|
|
8968bfd309 | ||
|
|
c190b720d3 | ||
|
|
b6b838416d | ||
|
|
b37e8ffa69 | ||
|
|
da0ecb650e | ||
|
|
43c9ab2072 | ||
|
|
a5f0b5ec74 | ||
|
|
c927d6824c | ||
|
|
5cd4c36cad | ||
|
|
ca424df80e | ||
|
|
e500fe2586 | ||
|
|
b05d71fabf | ||
|
|
22d6fa1fdf | ||
|
|
4f6e098542 | ||
|
|
47a10f6a6d | ||
|
|
28cb0fc70b | ||
|
|
98e1af28b8 | ||
|
|
413f7bfb44 | ||
|
|
37cff405ed | ||
|
|
c41d03018c | ||
|
|
ea1a2dc8db | ||
|
|
d5deef5699 | ||
|
|
4e882414b2 | ||
|
|
3b3b908ccd | ||
|
|
ec04c76ee5 | ||
|
|
4e5b7768dc | ||
|
|
d58ec4e65b | ||
|
|
2d0253bc42 | ||
|
|
51cf906b25 | ||
|
|
2a451ebb57 | ||
|
|
8f1da036f4 | ||
|
|
6acaded898 | ||
|
|
01d06e7121 | ||
|
|
780b120c64 | ||
|
|
d60f645d1d | ||
|
|
c9503da8f8 | ||
|
|
ccb951f11e | ||
|
|
755ca97857 | ||
|
|
5bdae9f6d0 | ||
|
|
d32631d159 | ||
|
|
2ee48ae04d | ||
|
|
7a494b2aa7 | ||
|
|
3e0231d995 | ||
|
|
c8b85a98b8 | ||
|
|
95095ee8d1 | ||
|
|
ccdb8ce7fc | ||
|
|
da3064343b | ||
|
|
252efe8252 | ||
|
|
9c84055f50 | ||
|
|
536f08c401 | ||
|
|
f7bdf5a2c0 | ||
|
|
06ed64f26f | ||
|
|
97c10ed1e5 | ||
|
|
30b443de55 | ||
|
|
521db37ca7 | ||
|
|
bf2d2ff0ca | ||
|
|
cba66c921e | ||
|
|
44a378c46e | ||
|
|
ed6f866a4f | ||
|
|
4a2a44831b | ||
|
|
864827f788 | ||
|
|
ded328fb43 | ||
|
|
b15f293b82 | ||
|
|
c284d41b5b | ||
|
|
a4f8863786 | ||
|
|
c6ed06d783 | ||
|
|
18bdec9641 | ||
|
|
4b13179ff9 | ||
|
|
481bca4cf2 | ||
|
|
b3d1cc9525 | ||
|
|
b5be0e5780 | ||
|
|
77ac51a680 | ||
|
|
8bd9077f77 | ||
|
|
2ec3227012 | ||
|
|
cd2131c4b5 | ||
|
|
ed0cc443ea | ||
|
|
e0de86359c | ||
|
|
02b0adf31f | ||
|
|
cbebe85ccf | ||
|
|
b65fd34981 | ||
|
|
2f7d10bf23 | ||
|
|
2b6f789a5b | ||
|
|
30dc6e691d | ||
|
|
af668b15c4 | ||
|
|
0a73973a7c | ||
|
|
83ea0395f6 | ||
|
|
f007890e84 | ||
|
|
76ccae8a2f | ||
|
|
04709cf256 | ||
|
|
850b834758 | ||
|
|
08b3662bb8 | ||
|
|
4a7ccf6deb | ||
|
|
4b3f9bd9a6 | ||
|
|
5f5712a3ee | ||
|
|
1518c5ddb0 | ||
|
|
4f9922d46c | ||
|
|
a9a743dab9 | ||
|
|
4d1a2bad17 | ||
|
|
cbab3affc9 | ||
|
|
f89a827aa9 | ||
|
|
43cb2d478c | ||
|
|
b517d76084 | ||
|
|
5ab7e03804 | ||
|
|
89389ad744 | ||
|
|
1eb769dbe8 | ||
|
|
9d78a1a8b3 | ||
|
|
838c70192e | ||
|
|
38d6580a36 | ||
|
|
ca81f0ddbb | ||
|
|
be6778ac61 | ||
|
|
7d24b29eb8 | ||
|
|
44c0b5fd6f | ||
|
|
0aa3201480 | ||
|
|
96f1728573 | ||
|
|
6cc0685f2a | ||
|
|
04075ee0be | ||
|
|
aa6d0d4359 | ||
|
|
3939360e55 | ||
|
|
d790d658ad | ||
|
|
5cb24e8470 | ||
|
|
d2906d4628 | ||
|
|
dd533eb948 | ||
|
|
dfe4992e35 | ||
|
|
65c5626b65 | ||
|
|
30bb24d18c | ||
|
|
2d2eefe3d4 | ||
|
|
a059dbe41b | ||
|
|
1361bdfbf2 | ||
|
|
31174d6b79 | ||
|
|
c541ced3ab | ||
|
|
e1cc95d308 | ||
|
|
cec02966ad | ||
|
|
0dd3cac8d9 | ||
|
|
50430e310a | ||
|
|
f635a48f64 | ||
|
|
689b88b942 | ||
|
|
253c0c42e2 | ||
|
|
54870d067b | ||
|
|
7701bf0642 | ||
|
|
28e394eddc | ||
|
|
e2cac3d949 | ||
|
|
879f2d2b7e | ||
|
|
b02f724475 | ||
|
|
2834e54e78 | ||
|
|
828749be64 | ||
|
|
bfca457510 | ||
|
|
f72228f428 | ||
|
|
bb76ee2c0e | ||
|
|
2c836ba71f | ||
|
|
8f49c5cd48 | ||
|
|
66cecfaefd | ||
|
|
2cce28533f | ||
|
|
c2ddb649f8 | ||
|
|
bdbb3266ae | ||
|
|
56401ed91c | ||
|
|
8372e547eb | ||
|
|
94a20205eb | ||
|
|
b7d3c5f4f0 | ||
|
|
47851025a6 | ||
|
|
fc0ea0ddac | ||
|
|
3733cbf818 | ||
|
|
1e737dbb94 | ||
|
|
3642a2b625 | ||
|
|
5e9f6a90df | ||
|
|
ca1cda0db0 | ||
|
|
e88a9702d0 | ||
|
|
b92b704592 | ||
|
|
39f7318048 | ||
|
|
67414e0181 | ||
|
|
ef8a65e6ff | ||
|
|
a656447aa5 | ||
|
|
a8e976d72f | ||
|
|
e893494b48 | ||
|
|
fe90888e95 | ||
|
|
4226657aa2 | ||
|
|
8366984b2b | ||
|
|
8ddbe91462 | ||
|
|
c31d2e2563 | ||
|
|
470a1c30e8 | ||
|
|
afd3b5d472 | ||
|
|
57d72c0db5 | ||
|
|
39a3f4ae98 | ||
|
|
4631e6cd4a | ||
|
|
ee191169f5 | ||
|
|
24e629ca5c | ||
|
|
025ae436b5 | ||
|
|
1729307fcf | ||
|
|
3e00b32fae | ||
|
|
0efacdfcf0 | ||
|
|
79346272f8 | ||
|
|
82526ad4f3 | ||
|
|
7f5ad5badb | ||
|
|
5f888809e9 | ||
|
|
f1903b26a5 | ||
|
|
3739b87537 | ||
|
|
d20f778bd0 | ||
|
|
e333e7ced8 | ||
|
|
ed699b4aed | ||
|
|
d0d32e8846 | ||
|
|
cd0b6c1729 | ||
|
|
3b272b43ec | ||
|
|
f62ad3ed3e | ||
|
|
c7129d5190 | ||
|
|
6a73f7c108 | ||
|
|
c54baf873b | ||
|
|
e88dbad3cf | ||
|
|
5772de2a62 | ||
|
|
821633f878 | ||
|
|
9b073e5fe6 | ||
|
|
77db652bff | ||
|
|
e632a84431 | ||
|
|
7ed2a5fc1b | ||
|
|
5fb6847419 | ||
|
|
e85b8217c0 | ||
|
|
d6fe897923 | ||
|
|
bf01c1ee64 | ||
|
|
7d3721dded | ||
|
|
735f22c1c5 | ||
|
|
cf026e4c72 | ||
|
|
e2f34e3db6 | ||
|
|
7c692283ad | ||
|
|
e6e5bf1da4 | ||
|
|
a35fe29ef4 | ||
|
|
56c5da97e6 | ||
|
|
af779ebff9 | ||
|
|
4eab3c07fd | ||
|
|
359f3d5ef5 | ||
|
|
d45b2dd3a7 | ||
|
|
b4dd61a016 | ||
|
|
4f180ad45c | ||
|
|
52dbab56a4 | ||
|
|
7015cc937b | ||
|
|
50b16e36c7 | ||
|
|
e512f8c56d | ||
|
|
183e5cef8b | ||
|
|
38c163d67c | ||
|
|
20f70f1c39 | ||
|
|
c239058624 | ||
|
|
117db08880 | ||
|
|
2de4d3329d | ||
|
|
8f01757a7f | ||
|
|
d9cfea8b10 | ||
|
|
cb1449be09 | ||
|
|
9ad48dae04 | ||
|
|
59cc101752 | ||
|
|
aefc941df3 | ||
|
|
2da55f70a7 | ||
|
|
0fc36d11d7 | ||
|
|
7436e0da18 | ||
|
|
a161a9c1e7 | ||
|
|
1a8243f1ca | ||
|
|
feedad7d8b | ||
|
|
b627978d00 | ||
|
|
2a61a0c026 | ||
|
|
5887c5da6c | ||
|
|
9ec667a87c | ||
|
|
a91d2ba625 | ||
|
|
e73e21851e | ||
|
|
481db8aba4 | ||
|
|
a8dc6d08b1 | ||
|
|
12ab905440 | ||
|
|
abe78a277a | ||
|
|
aa31b6c65b | ||
|
|
c37616de72 | ||
|
|
e5ff8d8445 | ||
|
|
8a2309ba7d | ||
|
|
a8ee67cace | ||
|
|
5e76675a0c | ||
|
|
1d9b5ae1ba | ||
|
|
dc0582739f | ||
|
|
024546206d | ||
|
|
4dd4a11cef | ||
|
|
afb37f0b03 | ||
|
|
0c730968a3 | ||
|
|
7e15f71916 | ||
|
|
b22066b9a2 | ||
|
|
9caae8a10a | ||
|
|
9d0648ed35 | ||
|
|
9c79f0b45a | ||
|
|
c59973d9c0 | ||
|
|
4a832e87c0 | ||
|
|
9dcccbc8e1 | ||
|
|
e6c54de814 | ||
|
|
5a39c1a8eb | ||
|
|
c9ae5d0e51 | ||
|
|
805a2c027e | ||
|
|
fdeee5dd05 | ||
|
|
796265fc50 | ||
|
|
9221cbf42b | ||
|
|
230b4318bd | ||
|
|
5dc0463323 | ||
|
|
8091e8b900 | ||
|
|
1aeae6217e | ||
|
|
5cd98804a2 | ||
|
|
7e80b3d4d4 | ||
|
|
18fb7a2080 | ||
|
|
983b1e63df | ||
|
|
ce09a35b03 | ||
|
|
4eaa02d25f | ||
|
|
4b295088fd | ||
|
|
69795e74bf | ||
|
|
72327716ca | ||
|
|
fd8d253e1e | ||
|
|
845713bdbf | ||
|
|
2697826007 | ||
|
|
f51bca41c5 | ||
|
|
722584bf72 | ||
|
|
12fe09c6e7 | ||
|
|
2c0a139da6 | ||
|
|
101e5d622d | ||
|
|
b397a72b28 | ||
|
|
3b9983cfc2 | ||
|
|
e6873fb259 | ||
|
|
f4970c7d2f | ||
|
|
6d6ddbc35e | ||
|
|
3e5c55c14e | ||
|
|
42a3489bcb | ||
|
|
df957f7afe | ||
|
|
b394328eb1 | ||
|
|
21986a2168 | ||
|
|
18af290b18 | ||
|
|
d962ea3889 | ||
|
|
683b71fc7e | ||
|
|
216b20d2db | ||
|
|
6ff5bfd2bc | ||
|
|
4a7c6e261a | ||
|
|
e5598da7a2 | ||
|
|
cc256f117e | ||
|
|
d9241df84d | ||
|
|
84a9e4a27b | ||
|
|
7b361224f8 | ||
|
|
3c3d05ba2e | ||
|
|
991fa054a6 | ||
|
|
9afcdd10ed | ||
|
|
721cbe085b | ||
|
|
93d3501c90 | ||
|
|
431d8c7802 | ||
|
|
f85a655915 | ||
|
|
5891adc5cf | ||
|
|
30efd932a5 | ||
|
|
ec45db7870 | ||
|
|
428d39a460 | ||
|
|
f9549e1f1b | ||
|
|
1671575d5d | ||
|
|
4d1d25e02f | ||
|
|
2dfbf97db4 | ||
|
|
fcc4864080 | ||
|
|
de6e15e36d | ||
|
|
01f294bd91 | ||
|
|
92b49b6ebb | ||
|
|
524b669f5a | ||
|
|
5b244cc6eb | ||
|
|
ae1e276085 | ||
|
|
6b5ee43800 | ||
|
|
6b7efb6f1d | ||
|
|
3c5bcdd7b3 | ||
|
|
6cc02fee99 | ||
|
|
2a88d8ee2d | ||
|
|
52a82ac193 | ||
|
|
d82b3a08e2 | ||
|
|
f6e1ee1d40 | ||
|
|
0bddd0ceae | ||
|
|
53099cad5a | ||
|
|
145c5c8b2b | ||
|
|
5a3c6575dd | ||
|
|
e9db0680c4 | ||
|
|
5686e1d2d0 | ||
|
|
9338ab461e | ||
|
|
7e4562d50a | ||
|
|
5efd01ba70 | ||
|
|
1966876320 | ||
|
|
3ebed5aa3e | ||
|
|
6a321ba340 | ||
|
|
34d1b463a4 | ||
|
|
24437a04d4 | ||
|
|
1fa1d31696 | ||
|
|
15706c8c2b | ||
|
|
5117818f6f | ||
|
|
3f4ee98405 | ||
|
|
329830e2c3 | ||
|
|
061e389340 | ||
|
|
096fa16c4c | ||
|
|
04908bc90c | ||
|
|
87c9870447 | ||
|
|
34eeccf908 | ||
|
|
c2e177e37a | ||
|
|
7b6b3ad821 | ||
|
|
7132958948 | ||
|
|
a26d9ea132 | ||
|
|
566cb35370 | ||
|
|
cf3624a54f | ||
|
|
8a302a9af4 | ||
|
|
7a8d5e5840 | ||
|
|
1f0c27edf2 | ||
|
|
26b7112b20 | ||
|
|
854ac95511 | ||
|
|
51b6a012a5 | ||
|
|
085bcf24da | ||
|
|
66940d6cf1 | ||
|
|
61ff98c8dd | ||
|
|
43fe0cfda8 | ||
|
|
57b794edfb | ||
|
|
47de264478 | ||
|
|
373c2af46a | ||
|
|
f5e72f7d3e | ||
|
|
d81c833775 | ||
|
|
cf6e53b2ac | ||
|
|
9dd0f8c39b | ||
|
|
d94380780f | ||
|
|
af1087aed4 | ||
|
|
9f33ce1cd0 | ||
|
|
4eb9e50a36 | ||
|
|
8ab3640291 | ||
|
|
fc777be7bc | ||
|
|
edf847d966 | ||
|
|
457b880eba | ||
|
|
13dbfef9f8 | ||
|
|
11c9e193a4 | ||
|
|
0bb0c32908 | ||
|
|
aafe80c121 | ||
|
|
7473b2854f | ||
|
|
04971ca565 | ||
|
|
6ff98846e6 | ||
|
|
7066d61730 | ||
|
|
b3d6334b5c | ||
|
|
0680ea3a78 | ||
|
|
0f367da84b | ||
|
|
19a507633e | ||
|
|
3a4039e2e1 | ||
|
|
4f20c87186 | ||
|
|
a2d3544a08 | ||
|
|
1564651bf6 | ||
|
|
fce557715b | ||
|
|
ca07459f5e | ||
|
|
457b4cf608 | ||
|
|
5601ed0914 | ||
|
|
ca022cbbdf | ||
|
|
c78b4a7597 | ||
|
|
274c21e2cc | ||
|
|
4bbfc98883 | ||
|
|
9240db35f3 | ||
|
|
774bf6a55e | ||
|
|
f37a3eff79 | ||
|
|
bb9f04d586 | ||
|
|
8e0fb23068 | ||
|
|
308745f6de | ||
|
|
cd8fda50c8 | ||
|
|
2859cbab91 | ||
|
|
7cd9a90f26 | ||
|
|
04c8a7077f | ||
|
|
6d5e18aa8d | ||
|
|
986623dbdc | ||
|
|
8c684d5391 | ||
|
|
69de8cad7c | ||
|
|
fb3338029b | ||
|
|
aae1034d62 | ||
|
|
dc435fb8ee | ||
|
|
0fe8c0134c | ||
|
|
5e8c0deab3 | ||
|
|
d6ef28d4ca | ||
|
|
93bd34113c | ||
|
|
c8d7a5ae76 | ||
|
|
71edc65d0d | ||
|
|
3a7558f36c | ||
|
|
4a595153dc | ||
|
|
10e50f71d1 | ||
|
|
d49e5b19e1 | ||
|
|
873a93fea3 | ||
|
|
e4345679dc | ||
|
|
11e657bdd7 | ||
|
|
691fe711ff | ||
|
|
a5b6e807bb | ||
|
|
adf9d9c969 | ||
|
|
8c663f65a8 | ||
|
|
481ca4ec03 | ||
|
|
e6ca53c5e1 | ||
|
|
95dc70021f | ||
|
|
fd3295eba4 | ||
|
|
a76cebd897 | ||
|
|
7d289c1b77 | ||
|
|
0bdbdba9f8 | ||
|
|
4489ca3c74 | ||
|
|
87416710c3 | ||
|
|
132b01461d | ||
|
|
dab205edb8 | ||
|
|
e4dcab8671 | ||
|
|
780721e9a2 | ||
|
|
ee483f2dee | ||
|
|
2a7bc847b0 | ||
|
|
2333bdb98a | ||
|
|
979741ce09 | ||
|
|
5b00fa6f82 | ||
|
|
d2bb35bcf3 | ||
|
|
e4ade46a2d | ||
|
|
89e4f28d06 | ||
|
|
0dbf5175df | ||
|
|
55c14aec2c | ||
|
|
fb63fc1213 | ||
|
|
ca515d5a7e | ||
|
|
6ebea82dba | ||
|
|
05d1f5e564 | ||
|
|
ee70f05a86 | ||
|
|
fb6a5c8356 | ||
|
|
a997b7bdcc | ||
|
|
bcbcaa9c60 | ||
|
|
6b0f1d0cc1 | ||
|
|
b40329887f | ||
|
|
cc4fd6b5c5 | ||
|
|
3dd84f7824 | ||
|
|
610b68c8ff | ||
|
|
a40734d417 | ||
|
|
be81c1a6d6 | ||
|
|
17b83ff4c1 | ||
|
|
5fd0cb31f6 | ||
|
|
f3e09af35b | ||
|
|
cd8a8e204d | ||
|
|
a511d8eddc | ||
|
|
0f6ee7dc1c | ||
|
|
6277a5545c | ||
|
|
5ee93dc4a2 | ||
|
|
10ae0b329a | ||
|
|
000abcd2f0 | ||
|
|
e00fdc2d59 | ||
|
|
6840434661 | ||
|
|
09dfb9bde3 | ||
|
|
b0714cbd7b | ||
|
|
d0917aac1a | ||
|
|
ff6600da2e | ||
|
|
7e74cff126 | ||
|
|
e53749773e | ||
|
|
392de4df36 | ||
|
|
cc6a96e1c9 | ||
|
|
0e681f3cc4 | ||
|
|
a512915a84 | ||
|
|
5edc885c22 | ||
|
|
e5c339b86a | ||
|
|
d92e2b6ae0 | ||
|
|
eb38f08e13 | ||
|
|
f269841a83 | ||
|
|
b55ffa2cbe | ||
|
|
0b0e58d405 | ||
|
|
b349d0baf8 | ||
|
|
961f5a0caa | ||
|
|
ac19b055c7 | ||
|
|
eb23fd4e60 | ||
|
|
fbab67df35 | ||
|
|
2529830bca | ||
|
|
c01731f091 | ||
|
|
9771f1c435 | ||
|
|
424bb78387 | ||
|
|
9c448055a3 | ||
|
|
b9da1415a5 | ||
|
|
4216a67462 | ||
|
|
7ce86a6196 | ||
|
|
2438c047a7 | ||
|
|
c106db89e1 | ||
|
|
a388e25f3e | ||
|
|
63c6a9bb80 | ||
|
|
772d2432b6 | ||
|
|
eb740e2c72 | ||
|
|
d854942a1f | ||
|
|
ce1218a2b2 | ||
|
|
d860e53b67 | ||
|
|
055464a624 | ||
|
|
9d0c077311 | ||
|
|
440f3144ae | ||
|
|
5ad0906c89 | ||
|
|
2039e244c5 | ||
|
|
bd19d75c9c | ||
|
|
ee44f35fea | ||
|
|
89edf8f81e | ||
|
|
ece5469277 | ||
|
|
576158e883 | ||
|
|
dcaea66dbf | ||
|
|
5318532a8d | ||
|
|
646a8d1a54 | ||
|
|
dc8ab01168 | ||
|
|
281369d8c5 | ||
|
|
65aef45050 | ||
|
|
48314a39e0 | ||
|
|
fe570fe16b | ||
|
|
cf573add27 | ||
|
|
4a7f6e6de4 | ||
|
|
00659220a5 | ||
|
|
51546ad1ce | ||
|
|
80d52f65eb | ||
|
|
841e6ff901 | ||
|
|
82a51d49a0 | ||
|
|
30b231225c | ||
|
|
d05563c448 | ||
|
|
03c868b727 | ||
|
|
8d2fb99662 | ||
|
|
20689638db | ||
|
|
2b561d2648 | ||
|
|
509cea511c | ||
|
|
72075314a8 | ||
|
|
7a3ddc869e | ||
|
|
eb7c65ccb3 | ||
|
|
8e5a90589d | ||
|
|
ed983a5baf | ||
|
|
2ad3b1fd74 | ||
|
|
ed53b5f9bc | ||
|
|
19bc9c20a6 | ||
|
|
fdf149cf52 | ||
|
|
76c4fedb7f | ||
|
|
c3ccec723f | ||
|
|
7893da4d99 | ||
|
|
531c61ed2b | ||
|
|
b60b214c0c | ||
|
|
10924fd229 | ||
|
|
9e4d3ebe5f | ||
|
|
ba6e85482e | ||
|
|
504541a158 | ||
|
|
5a4cf059ee | ||
|
|
d8a023063d | ||
|
|
8f77350089 | ||
|
|
063d24ad4f | ||
|
|
cac1c2f1e9 | ||
|
|
ad8ddbf12f | ||
|
|
e8a098af62 | ||
|
|
c25d66316c | ||
|
|
98209be01a | ||
|
|
1924bd20bb | ||
|
|
3085739e0e | ||
|
|
d2ae80dd21 | ||
|
|
f748c9144c | ||
|
|
526b3ae0e4 | ||
|
|
90a5511a54 | ||
|
|
032b6c6afb | ||
|
|
ee83b9542e | ||
|
|
3bbc2e55b1 | ||
|
|
7dc9fe4e24 | ||
|
|
c836157edb | ||
|
|
eca8c7a52f | ||
|
|
03b5acf17f | ||
|
|
e3f151e230 | ||
|
|
f195fa4ab9 | ||
|
|
51c3ef5561 | ||
|
|
b654446f93 | ||
|
|
e41619775f | ||
|
|
1250309a69 | ||
|
|
6459eadcf1 | ||
|
|
1dddc68709 | ||
|
|
f9916d216a | ||
|
|
9abda93811 | ||
|
|
8e2d47b2e8 | ||
|
|
b9c6992aac | ||
|
|
cb026a7512 | ||
|
|
fa13b815ef | ||
|
|
5d65e34078 | ||
|
|
0183d24786 | ||
|
|
053da10e94 | ||
|
|
c3db55b5b6 | ||
|
|
bb460a1785 | ||
|
|
bb0b2df37e | ||
|
|
934e4be658 | ||
|
|
09c00d0a1b | ||
|
|
e98fbfeec1 | ||
|
|
578b0ebe0c | ||
|
|
b0f6c44f36 | ||
|
|
299c9c4118 | ||
|
|
bec338aa00 | ||
|
|
5c48878dc5 | ||
|
|
44985ae858 | ||
|
|
aa80cfdb81 | ||
|
|
25ae4bca9c | ||
|
|
350ebbadba | ||
|
|
1b463d9c31 | ||
|
|
a2d58d9f48 | ||
|
|
3d61ca818b | ||
|
|
60f3cc6f07 | ||
|
|
52ec1b3fde | ||
|
|
0dca6afa1f | ||
|
|
0260a6af85 | ||
|
|
fba08c6310 | ||
|
|
f7c6932a83 | ||
|
|
907d519da3 | ||
|
|
5c6b7991ef | ||
|
|
9eb2bc1987 | ||
|
|
5488a8fe88 | ||
|
|
ba59355716 | ||
|
|
814e28459e | ||
|
|
d2831c612f | ||
|
|
1eebf3c921 | ||
|
|
a692acec1e | ||
|
|
6cf466e5d1 | ||
|
|
cf7c6558ae | ||
|
|
efa66ae89a | ||
|
|
6124772a5f | ||
|
|
d28fe24d0b | ||
|
|
ba28f90fd1 | ||
|
|
0d505f8131 | ||
|
|
d869481db9 | ||
|
|
3456680e1d | ||
|
|
42c7aad251 | ||
|
|
f9fc743c05 | ||
|
|
25e030a707 | ||
|
|
cd6428715e | ||
|
|
98e40e666c | ||
|
|
74faa01db8 | ||
|
|
7bd0a5b7cb | ||
|
|
c0838c473f | ||
|
|
85078601c2 | ||
|
|
b434beb5e2 | ||
|
|
295665a177 | ||
|
|
fd7d7318a7 | ||
|
|
054ba3fea5 | ||
|
|
8749716700 | ||
|
|
55d392818c | ||
|
|
19b10ca803 | ||
|
|
cd7ab326cd | ||
|
|
ff9a65e8fa | ||
|
|
bc52d7a4fb | ||
|
|
af7e129b1e | ||
|
|
90b058e226 | ||
|
|
c2383fac16 | ||
|
|
b449f3e7a8 | ||
|
|
32f5949935 | ||
|
|
4c3935bf80 | ||
|
|
dc1a91a5b2 | ||
|
|
fd70a700f8 | ||
|
|
d8dc10829c | ||
|
|
b1efc298f7 | ||
|
|
98462ccbaf | ||
|
|
ca00a08e6e | ||
|
|
54c6fb762a | ||
|
|
22d966e92d | ||
|
|
bf303238f0 | ||
|
|
b0eae49eaa | ||
|
|
2ccef59b63 | ||
|
|
59ab4af7ca | ||
|
|
46b0eb46b3 | ||
|
|
c5af9e371c | ||
|
|
8f56bff0bb | ||
|
|
1beaac8e2d | ||
|
|
7dfd98a0ef | ||
|
|
2630513c83 | ||
|
|
7258888e76 | ||
|
|
f53cffaeb2 | ||
|
|
e7d30c8eb4 | ||
|
|
1f7a81aae7 | ||
|
|
2db63d1a55 | ||
|
|
a53727f1a5 | ||
|
|
db2f49cda4 | ||
|
|
724ed47e5f | ||
|
|
f75ee1eef0 | ||
|
|
23102a2c08 | ||
|
|
f12cdf1260 | ||
|
|
257c4fccf1 | ||
|
|
39d9172a2f | ||
|
|
f5a5d59155 | ||
|
|
39eb86f5af | ||
|
|
e82c2e7cf9 | ||
|
|
717dffe61e | ||
|
|
cb80dff7df | ||
|
|
3f08581ae8 | ||
|
|
79db6bd70e | ||
|
|
1f7a4b092d | ||
|
|
70a7800927 | ||
|
|
77f18f4250 | ||
|
|
5758ea463a | ||
|
|
f664f941a2 | ||
|
|
49fc4cce3c | ||
|
|
e8ff281db0 | ||
|
|
388448f298 | ||
|
|
50ec129b87 | ||
|
|
b60ff1f1ce | ||
|
|
2939e8131d | ||
|
|
8038049068 | ||
|
|
bf6158ca71 | ||
|
|
af806352a1 | ||
|
|
750085ffd5 | ||
|
|
3eacbe6b6d | ||
|
|
c9aeccb2ab | ||
|
|
e6032a03b6 | ||
|
|
60fe5d6824 | ||
|
|
ba16abb9f3 | ||
|
|
dd1783f984 | ||
|
|
792622aead | ||
|
|
9264ca336b | ||
|
|
c3fd848750 | ||
|
|
ab58b651f7 | ||
|
|
bbef2a953e | ||
|
|
a8d7b69fbd | ||
|
|
9487856495 | ||
|
|
2896fc6cb4 | ||
|
|
8b7f54df66 | ||
|
|
f3bbf8417c | ||
|
|
748d4ebaae | ||
|
|
5aada8bbe2 | ||
|
|
9eccdfbc63 | ||
|
|
f5985d53e5 | ||
|
|
34d5440f3a | ||
|
|
71ca6fe7b5 | ||
|
|
6b21b142bd | ||
|
|
43b376e4d0 | ||
|
|
827616f630 | ||
|
|
29278bd400 | ||
|
|
dc8a130570 | ||
|
|
41ba242c9c | ||
|
|
e6f3dd81ba | ||
|
|
ec229dbd3b | ||
|
|
f6a3f6f5f1 | ||
|
|
b26e4dc505 | ||
|
|
43375409f7 | ||
|
|
db5046ed3a | ||
|
|
722a731c26 | ||
|
|
1d557089e9 | ||
|
|
2fb31a520a | ||
|
|
b43906705c | ||
|
|
e11320dbb7 | ||
|
|
2217a3c549 | ||
|
|
c5b8766a18 | ||
|
|
79966d33b5 | ||
|
|
8a6791da3f | ||
|
|
b465bcd601 | ||
|
|
8a72a05958 | ||
|
|
2b4c8c9e0f | ||
|
|
4aed5968f6 | ||
|
|
007ed5c929 | ||
|
|
61c9b0757e | ||
|
|
62e347c270 | ||
|
|
bdf390eb7e | ||
|
|
a52f63ec6a | ||
|
|
5096be06ac | ||
|
|
339086995f | ||
|
|
bbd618a258 | ||
|
|
ab3cd7b837 | ||
|
|
8b74d1530e | ||
|
|
eb7b5f905a | ||
|
|
c2370a1be6 | ||
|
|
b6790a4320 | ||
|
|
cb0fa9a8ab | ||
|
|
5083458071 | ||
|
|
78b502bcab | ||
|
|
324d18983a | ||
|
|
71b016b293 | ||
|
|
090253c2d2 | ||
|
|
cf3ac3c0be | ||
|
|
b8360b1b5a | ||
|
|
09f37fc9e5 | ||
|
|
926f208fcf | ||
|
|
037c2e9332 | ||
|
|
65cc3c5fce | ||
|
|
e5ac864077 | ||
|
|
76018b4a1b | ||
|
|
bc927b8f75 | ||
|
|
dc452bf89a | ||
|
|
92337b0504 | ||
|
|
e5fce15ba5 | ||
|
|
c59a9c6f84 | ||
|
|
545b5cab96 | ||
|
|
fe13755be8 | ||
|
|
9208cfd5f3 | ||
|
|
81ba841fb8 | ||
|
|
0404d9c103 | ||
|
|
c1a19ff900 | ||
|
|
ac6a8edf0b | ||
|
|
8851e90316 | ||
|
|
fca6ae9403 | ||
|
|
4f4f15a6a4 | ||
|
|
7097d553e4 | ||
|
|
b8973a6f19 | ||
|
|
50de2e76b4 | ||
|
|
40c5699d93 | ||
|
|
a87dd5ddec | ||
|
|
561683f097 | ||
|
|
c9b9db13c7 | ||
|
|
a8cd8ed99e | ||
|
|
b3358f0a8b | ||
|
|
af2368bd2b | ||
|
|
2cb8e8a748 | ||
|
|
c40f52b262 | ||
|
|
2801946226 | ||
|
|
0d2e3df061 | ||
|
|
64c142b1ca | ||
|
|
df2b61fcc6 | ||
|
|
509e3f979e | ||
|
|
b546d4108f | ||
|
|
46f86a9146 | ||
|
|
2191479c76 | ||
|
|
0a06eb27da | ||
|
|
47b684100d | ||
|
|
7d6ea74288 | ||
|
|
8e11a30c36 | ||
|
|
5dc8f63a07 | ||
|
|
e6fca72171 | ||
|
|
d2c942348c | ||
|
|
21277952ca | ||
|
|
dc93a418c0 | ||
|
|
51b02ef23e | ||
|
|
32430a0dba | ||
|
|
8e46fade07 | ||
|
|
871027fa0c | ||
|
|
2ddf575cdc | ||
|
|
8a058876a3 | ||
|
|
1df259a7b2 | ||
|
|
1e40088d98 | ||
|
|
5e53b41f2d | ||
|
|
5f5c4fc44f | ||
|
|
ad9bb773c5 | ||
|
|
59934f9767 | ||
|
|
bf9e74ca05 | ||
|
|
5280a5e5c6 | ||
|
|
8c77153c04 | ||
|
|
c50b952ff9 | ||
|
|
b0b0ecb857 | ||
|
|
9d145d33cb | ||
|
|
54c0ed2ed7 | ||
|
|
269cd560c7 | ||
|
|
e6db7b9fa7 | ||
|
|
698e8c9a14 | ||
|
|
e410b8a03b | ||
|
|
9fc3e19582 | ||
|
|
ade43b1f95 | ||
|
|
28510ed673 | ||
|
|
5dab918999 | ||
|
|
4f22176b8f | ||
|
|
9f9498c4f0 | ||
|
|
d01fba9a8d | ||
|
|
07e96b734a | ||
|
|
421b0b7057 | ||
|
|
be595ebd62 | ||
|
|
df5480668d | ||
|
|
ad5fd626c7 | ||
|
|
29f84a072b | ||
|
|
20c2fa4c58 | ||
|
|
4417412787 | ||
|
|
96cde67b2c | ||
|
|
545371011a | ||
|
|
d5f30ecb86 | ||
|
|
f96ed9a3f3 | ||
|
|
b392f44b81 | ||
|
|
9d5dd7201e | ||
|
|
9a5bc78eb4 | ||
|
|
07a225c2a0 | ||
|
|
c926a61e07 | ||
|
|
54625914c5 | ||
|
|
8f196fc67c | ||
|
|
52b440357f | ||
|
|
866e3f0432 | ||
|
|
9e330c9e38 | ||
|
|
02957a1b5d | ||
|
|
1c82e97350 | ||
|
|
2b6dbd4fcb | ||
|
|
c0dbc3b53f | ||
|
|
af30959cb9 | ||
|
|
35ffe3c52f | ||
|
|
c13fd42015 | ||
|
|
a72ef70770 | ||
|
|
9a391bd863 | ||
|
|
12456b22c5 | ||
|
|
e35a370af0 | ||
|
|
b6a432fd7b | ||
|
|
cd9affd568 | ||
|
|
b97694b083 | ||
|
|
9845ccec5b | ||
|
|
cf3e39178b | ||
|
|
48d3341462 | ||
|
|
791ae608a5 | ||
|
|
f4d1fcaf67 | ||
|
|
239ea39d6f | ||
|
|
63e21a4ee3 | ||
|
|
1a096c557e | ||
|
|
53b1684c39 | ||
|
|
9dd53527ca | ||
|
|
59046d583d | ||
|
|
6ba9805536 | ||
|
|
5059d4d7e1 | ||
|
|
74a05ec739 | ||
|
|
60366a4558 | ||
|
|
7ec07d5fd2 | ||
|
|
5b8fa25a12 | ||
|
|
51df3de66d | ||
|
|
246d167c81 | ||
|
|
d2764944cf | ||
|
|
ac6d6fdeb8 | ||
|
|
6a015341ef | ||
|
|
3796da6836 | ||
|
|
36d5deeb61 | ||
|
|
e40a0b98e4 | ||
|
|
0fbb46c981 | ||
|
|
081a14d6f3 | ||
|
|
b056e8f5eb | ||
|
|
15683370f0 | ||
|
|
644023316e | ||
|
|
c2d7008cff | ||
|
|
bd843863d0 | ||
|
|
8ec96ad1e0 | ||
|
|
4f876c9e8d | ||
|
|
3c6175d959 | ||
|
|
1f181536ae | ||
|
|
383d6a2485 | ||
|
|
588465566b | ||
|
|
b318789354 | ||
|
|
0b8e0fa91b | ||
|
|
8daca59ca6 | ||
|
|
d84796588c | ||
|
|
4c879b3a33 | ||
|
|
eacc90debc | ||
|
|
2606167f0d | ||
|
|
f76b3edbdd | ||
|
|
aef7b0238b | ||
|
|
cbb58b1cfc | ||
|
|
bc4d27410c | ||
|
|
d5c4e77c44 | ||
|
|
e987af4e4f | ||
|
|
bc61f37faa | ||
|
|
c065b97140 | ||
|
|
0137af892a | ||
|
|
06bf5c1ff1 | ||
|
|
9e955d20c4 | ||
|
|
165c53a547 | ||
|
|
3597da5c49 | ||
|
|
4a7da723b3 | ||
|
|
d2f8ed95aa | ||
|
|
6b2c92cb68 | ||
|
|
dc8763215a | ||
|
|
9959f5bd04 | ||
|
|
be143f91b2 | ||
|
|
ac4245dce1 | ||
|
|
1ab9f096c3 | ||
|
|
8f94b36732 | ||
|
|
22227fa641 | ||
|
|
92d9946f59 | ||
|
|
526fa8bf3f | ||
|
|
aa92df4e50 | ||
|
|
61e7eb8ff1 | ||
|
|
84d3a06637 | ||
|
|
60cddf87d8 | ||
|
|
6157616b37 | ||
|
|
af3258dc79 | ||
|
|
734c41aba5 | ||
|
|
a1327fa9e1 | ||
|
|
1b1f82a2e2 | ||
|
|
d48172e9d1 | ||
|
|
58a898dfe0 | ||
|
|
d23ad8b511 | ||
|
|
8099bc24e1 | ||
|
|
ef354e94f2 | ||
|
|
7bb8c71543 | ||
|
|
a2c0573f84 | ||
|
|
5d922e3084 | ||
|
|
f0b5860b9c | ||
|
|
fd4c43786a | ||
|
|
60cc7f62e6 | ||
|
|
dc27ba6f03 | ||
|
|
3fe1c862f6 | ||
|
|
33a2c0b59e | ||
|
|
e8c5117b2d | ||
|
|
e2261b63e9 | ||
|
|
8c7bcdf998 | ||
|
|
f5dfb64a52 | ||
|
|
fa7fd9ce25 | ||
|
|
63971f1cd8 | ||
|
|
b1313fbca8 | ||
|
|
f1b0c54f6e | ||
|
|
94c09f1441 | ||
|
|
46222d0258 | ||
|
|
c59a30ec09 | ||
|
|
f3a16bcd6d | ||
|
|
f69627939b | ||
|
|
e8420ad90b | ||
|
|
6182a1cb2c | ||
|
|
308ab8f177 | ||
|
|
359fbd78c1 | ||
|
|
dd733ec1d0 | ||
|
|
5e680500e5 | ||
|
|
0465e74521 | ||
|
|
34a32a8334 | ||
|
|
3941c73db0 | ||
|
|
703f3a8e37 | ||
|
|
6032c2be1c | ||
|
|
13870c63b0 | ||
|
|
88083925ce | ||
|
|
95b2148bfe | ||
|
|
8ccf954065 | ||
|
|
e456c6a9c1 | ||
|
|
68c5426fd5 | ||
|
|
29856a9129 | ||
|
|
f4943bc5bb | ||
|
|
aeb8955ca2 | ||
|
|
981e6f996e | ||
|
|
8263cc0094 | ||
|
|
fa051a2a5f | ||
|
|
ce252143c3 | ||
|
|
259be258aa | ||
|
|
2d5bb40ad0 | ||
|
|
db7fb1c688 | ||
|
|
6b0685a25c | ||
|
|
618d07158a | ||
|
|
a63a417fd4 | ||
|
|
4443dba717 | ||
|
|
565c502bbf | ||
|
|
9e716fd813 | ||
|
|
34e1b52b38 | ||
|
|
0cb3c7481c | ||
|
|
db623dda22 | ||
|
|
1177528c25 | ||
|
|
a7abf941c0 | ||
|
|
5230ec883e | ||
|
|
482b00df77 | ||
|
|
91d790bbb6 | ||
|
|
40295ae57d | ||
|
|
3857cd589f | ||
|
|
9eaca966a4 | ||
|
|
8bdf0dd135 | ||
|
|
eedc8049db | ||
|
|
23f272cc7d | ||
|
|
15450b18e8 | ||
|
|
50aeaf7498 | ||
|
|
861bfa06a8 | ||
|
|
3b30ee3130 | ||
|
|
f6830885d7 | ||
|
|
ff56511638 | ||
|
|
337dd97b49 | ||
|
|
146e89edd0 | ||
|
|
cd82748889 | ||
|
|
2c0b10b0ee | ||
|
|
6c09361ec6 | ||
|
|
3089a86c8e | ||
|
|
ec2f05d4f7 | ||
|
|
31a8129cb9 | ||
|
|
8cc6c2c864 | ||
|
|
a4de927df8 | ||
|
|
a2c77a0944 | ||
|
|
d8a564c6a0 | ||
|
|
ff94b64c91 | ||
|
|
1cc616b86c | ||
|
|
6addf9002c | ||
|
|
6dd219b6c7 | ||
|
|
a535142e82 | ||
|
|
9521519cb8 | ||
|
|
e11f82c300 | ||
|
|
aba0755880 | ||
|
|
821bb1c476 | ||
|
|
14da0a65f7 | ||
|
|
8e5d31eb5c | ||
|
|
f8f3304164 | ||
|
|
d7efdd7123 | ||
|
|
4256e20a7f | ||
|
|
f2d9e3105d | ||
|
|
a6cd97ca9a | ||
|
|
a4a171781b | ||
|
|
8e8e3dbe4e | ||
|
|
de71845b35 | ||
|
|
a3a47b8d35 | ||
|
|
f091007882 | ||
|
|
8f14b42e81 | ||
|
|
8b33a70fc4 | ||
|
|
dc031b1d07 | ||
|
|
f551b6d15e | ||
|
|
0a2ac58b82 | ||
|
|
3c07d3fc08 | ||
|
|
c6ea7f754c | ||
|
|
101e8d7adb | ||
|
|
19b96ff650 | ||
|
|
bd66a3f148 | ||
|
|
7f235275c9 | ||
|
|
3097bb6c7d | ||
|
|
f469f555e8 | ||
|
|
115167e6da | ||
|
|
a1200ad886 | ||
|
|
25d1b66ca4 | ||
|
|
c5f9b1c224 | ||
|
|
8c66fad96b | ||
|
|
afa4cd9112 | ||
|
|
f930eaee02 | ||
|
|
b35b9bc27f | ||
|
|
4790ddfad6 | ||
|
|
b6f21b6edb | ||
|
|
fd7b77c542 | ||
|
|
7cbd852fe5 | ||
|
|
a80003cde5 | ||
|
|
fb54c58a66 | ||
|
|
3a924f3dc6 | ||
|
|
11d22c7b73 | ||
|
|
a879607479 | ||
|
|
98aef974df | ||
|
|
cf46816687 | ||
|
|
eee1e74174 | ||
|
|
8050f89d7e | ||
|
|
406e5d297b | ||
|
|
10634b3615 | ||
|
|
fd03e2e1a7 | ||
|
|
6cc86272f3 | ||
|
|
06b1250d47 | ||
|
|
31a7350a10 | ||
|
|
4129ac157a | ||
|
|
30cb791e93 | ||
|
|
1c57983bfd | ||
|
|
bdf08c8a54 | ||
|
|
0513ff8b4e | ||
|
|
62fe3bfb54 | ||
|
|
38a1d6693a | ||
|
|
d2eec3a9e4 | ||
|
|
1de774fa3d | ||
|
|
ed902658a9 | ||
|
|
acdcd7c623 | ||
|
|
b0344e07c4 | ||
|
|
9a6ce1e867 | ||
|
|
22a6bd6b22 | ||
|
|
38e6f3f776 | ||
|
|
ca75afe065 | ||
|
|
915ed39715 | ||
|
|
81fd94e635 | ||
|
|
05507a4bea | ||
|
|
d177f97928 | ||
|
|
30cb03a40d | ||
|
|
c685989e67 | ||
|
|
ee3f408c7d | ||
|
|
1eb35dd5bc | ||
|
|
15db0b8812 | ||
|
|
1b78c6a309 | ||
|
|
c713af8e23 | ||
|
|
bd6666173a | ||
|
|
02715f5d14 | ||
|
|
acd5e0b8f6 | ||
|
|
be2142bb13 | ||
|
|
4a703d7cf6 | ||
|
|
95470a40a7 | ||
|
|
56d4658b36 | ||
|
|
f68008b002 | ||
|
|
6a5ef5b6f2 | ||
|
|
95b9284e79 | ||
|
|
8317772436 | ||
|
|
0c0ae6ff90 | ||
|
|
d63b943116 | ||
|
|
dddbc1c894 | ||
|
|
f68c743f39 | ||
|
|
59255e11b8 | ||
|
|
3804c6e7ad | ||
|
|
527a13b77d | ||
|
|
a3423bad60 | ||
|
|
e3f9144608 | ||
|
|
231506772a | ||
|
|
db1098a180 | ||
|
|
7ce569424a | ||
|
|
9b5b3a4d1b | ||
|
|
6173cebdca | ||
|
|
6bb82cda37 | ||
|
|
dd60f1a533 | ||
|
|
45263f4cd0 | ||
|
|
747d323584 | ||
|
|
e707aadbcc | ||
|
|
7b012967d9 | ||
|
|
e126083e10 | ||
|
|
cbca48846c | ||
|
|
ca2ed0a59b | ||
|
|
5d22e113b2 | ||
|
|
ed3c137543 | ||
|
|
a35f0d43e4 | ||
|
|
153eed7d71 | ||
|
|
0d8e1c5421 | ||
|
|
d10d5a8d53 | ||
|
|
23f106a0c1 | ||
|
|
a7ee4aabcb | ||
|
|
d867fc00b6 | ||
|
|
60f504bbe2 | ||
|
|
f4e6d73a8a | ||
|
|
c066013c57 | ||
|
|
86f952e659 | ||
|
|
d36e44bc57 | ||
|
|
93629fb29d | ||
|
|
9ff088a830 | ||
|
|
55190e6b8b | ||
|
|
38391010af | ||
|
|
3d94dec7a9 | ||
|
|
636428c72e | ||
|
|
0717afc312 | ||
|
|
3d4a90b08a | ||
|
|
7cc555fd28 | ||
|
|
238d0fa667 | ||
|
|
30ff4592cc | ||
|
|
a979fb9207 | ||
|
|
f15f60d5b9 | ||
|
|
8c97c54cfa | ||
|
|
89a3195dfd | ||
|
|
1eaf287b9c | ||
|
|
9166a58c5f | ||
|
|
eef368abd0 | ||
|
|
f983e44d9e | ||
|
|
5be6438bbc | ||
|
|
d2e6b17a26 | ||
|
|
d1c2e4aaa0 | ||
|
|
6f1994c665 | ||
|
|
055dc6bb66 | ||
|
|
f06339b970 | ||
|
|
3370419b0a | ||
|
|
9bd4ad0fc1 | ||
|
|
23994d8f4e | ||
|
|
bb3c85d3a1 | ||
|
|
8328a66104 | ||
|
|
909ec8c38d | ||
|
|
b01a1b3c17 | ||
|
|
cbb779f60c | ||
|
|
8ddae83c40 | ||
|
|
1cc106b8de | ||
|
|
16eedb86a5 | ||
|
|
2b26a2f5e4 | ||
|
|
a65fa684ce | ||
|
|
0758c56c53 | ||
|
|
3c0dccc8b9 | ||
|
|
e18feb4183 | ||
|
|
9e464eaa63 | ||
|
|
8b352e4e56 | ||
|
|
26d85c8bed | ||
|
|
df924d18f1 | ||
|
|
177359689e | ||
|
|
b380dc53e1 | ||
|
|
8c30ca50a8 | ||
|
|
69afd0480e | ||
|
|
6d4d9f417b | ||
|
|
11ea1a2811 | ||
|
|
c15b75e477 | ||
|
|
ea9a95cd98 | ||
|
|
ed634b4b3d | ||
|
|
f9f115b66d | ||
|
|
02059fdee4 | ||
|
|
37c119e1f5 | ||
|
|
d75a7fd421 | ||
|
|
adf66154d2 | ||
|
|
9557579b67 | ||
|
|
341c42ebb9 | ||
|
|
574cfdfda6 | ||
|
|
0729678398 | ||
|
|
b545146bf9 | ||
|
|
7ae1d6511a | ||
|
|
0c4c4e7202 | ||
|
|
6a25015a78 | ||
|
|
ae5a72a2df | ||
|
|
baa45859c1 | ||
|
|
461f761aa6 | ||
|
|
6894e42674 | ||
|
|
22d6c7fe8a | ||
|
|
9e70b02648 | ||
|
|
64f5b2daa2 | ||
|
|
b2f6c67aa9 | ||
|
|
1c0ec222b4 | ||
|
|
80619260c1 | ||
|
|
e382f74bb3 | ||
|
|
c8343b2750 | ||
|
|
7feca2a60a | ||
|
|
aa28ddf762 | ||
|
|
5c54e12099 | ||
|
|
b16d7cc6c4 | ||
|
|
8f36a80775 | ||
|
|
a6e7c196ee | ||
|
|
a531b8aeee | ||
|
|
3510768fd5 | ||
|
|
34e958c3a7 | ||
|
|
65a597a35d | ||
|
|
66da7e18c9 | ||
|
|
7c8ca260ce | ||
|
|
2a92e3c1c9 | ||
|
|
f8ed6b1a54 | ||
|
|
8709487cd5 | ||
|
|
41e9aa6f9b | ||
|
|
1a96425768 | ||
|
|
6fd63c1fb6 | ||
|
|
b271d02660 | ||
|
|
85a4c8dbb1 | ||
|
|
d5e92c3822 | ||
|
|
151586ab60 | ||
|
|
5c80d9093b | ||
|
|
b565df6882 | ||
|
|
b8b91b39f4 | ||
|
|
44ba2fd7cb | ||
|
|
f94f3dae8b | ||
|
|
4dfe2c15b0 | ||
|
|
7d1dde0f04 | ||
|
|
63a0b7353a | ||
|
|
f82810cf1b | ||
|
|
853f9dca31 | ||
|
|
d526cd70fd | ||
|
|
9016573736 | ||
|
|
be7b11e1bb | ||
|
|
4da22b85a0 | ||
|
|
448a933f77 | ||
|
|
8310d929dc | ||
|
|
963aa4939f | ||
|
|
8957a89024 | ||
|
|
95a2de8d54 | ||
|
|
50985b2ffd | ||
|
|
61c12290fd | ||
|
|
8a9cc0e711 | ||
|
|
95e7e003fd | ||
|
|
29a84230b0 | ||
|
|
6ad9a9677a | ||
|
|
1ff23d7a9d | ||
|
|
84beecd27f | ||
|
|
78273f9f0d | ||
|
|
119f02540d | ||
|
|
3401ab0128 | ||
|
|
39becdb576 | ||
|
|
8c4e918431 | ||
|
|
484dfb6a01 | ||
|
|
1a4b4348a9 | ||
|
|
0735ca0853 | ||
|
|
732d714c96 | ||
|
|
63be1ee8c0 | ||
|
|
0a59407a3c | ||
|
|
521bb9b506 | ||
|
|
d17c2892d6 | ||
|
|
e36f9599d2 | ||
|
|
10ff379b4c | ||
|
|
bd1c2abffc | ||
|
|
c7d4264ecf | ||
|
|
30bc59c943 | ||
|
|
39748ea0c3 | ||
|
|
5dfbce7571 | ||
|
|
3a105024c7 | ||
|
|
ae21b75687 | ||
|
|
4a72941eda | ||
|
|
14e364a74a | ||
|
|
e1bc832c0d | ||
|
|
2d84e04240 | ||
|
|
be226ec187 | ||
|
|
6db37d4fcb | ||
|
|
b3b8ee46f0 | ||
|
|
b45bc3fd5d | ||
|
|
5c08f2b93b | ||
|
|
5f62cefe31 | ||
|
|
8dab46470e | ||
|
|
8c70bbe74d | ||
|
|
9ee002285d | ||
|
|
febb9f388c | ||
|
|
2cfed3395e | ||
|
|
53498991bb | ||
|
|
ae80dc9b1e | ||
|
|
2c606028b3 | ||
|
|
1f9f63df7c | ||
|
|
dbc24ce587 | ||
|
|
58c3fc6cd2 | ||
|
|
363eb73fb3 | ||
|
|
43593603f1 | ||
|
|
bcd123371b | ||
|
|
f3e43a0fc6 | ||
|
|
b3ec47c3f4 | ||
|
|
a2e475f2e8 | ||
|
|
379c5a8091 | ||
|
|
8dc5edde76 | ||
|
|
e9ba896431 | ||
|
|
cbd183a7a9 | ||
|
|
d535ec21a2 | ||
|
|
0cbdbf24f1 | ||
|
|
4495969d7f | ||
|
|
f5e9886c70 | ||
|
|
1631e62739 | ||
|
|
e48926b01d | ||
|
|
25580e8afc | ||
|
|
5b7482d8f4 | ||
|
|
5f4d20ac1d | ||
|
|
7de59a80a2 | ||
|
|
d28866f71a | ||
|
|
149ddebf16 | ||
|
|
351bee325b | ||
|
|
0ab50f87a2 | ||
|
|
09764b909b | ||
|
|
2d3d986d13 | ||
|
|
87657d0acf | ||
|
|
9d5911d4e4 | ||
|
|
e2d9c0efe2 | ||
|
|
8fb5457c01 | ||
|
|
0ad7869249 | ||
|
|
e8177ee311 | ||
|
|
8fbca63cec | ||
|
|
5124db57d2 | ||
|
|
6e0f998fb2 | ||
|
|
52a1d96218 | ||
|
|
a986203b38 | ||
|
|
2aa75f5489 | ||
|
|
b9b9cd0c78 | ||
|
|
b2a28ad9d4 | ||
|
|
f3206d094d | ||
|
|
59dc9516d0 | ||
|
|
62af89d433 | ||
|
|
b57ee4dd96 | ||
|
|
8876ae09ed | ||
|
|
34492f3c9a | ||
|
|
918a96da24 | ||
|
|
e461fb169e | ||
|
|
5ddffa728a | ||
|
|
eb0e2ceef7 | ||
|
|
2718d86171 | ||
|
|
d437e148db | ||
|
|
eacdc0136f | ||
|
|
5a7a1d0be9 | ||
|
|
9145302b3a | ||
|
|
ca49ac28b8 | ||
|
|
7b721c2124 | ||
|
|
87ff004c73 | ||
|
|
18df1c7a52 | ||
|
|
1dac961784 | ||
|
|
8b833c88ad | ||
|
|
4054f9cccf | ||
|
|
5cae078e5e | ||
|
|
8dc60cd327 | ||
|
|
af738d9ca9 | ||
|
|
40debf20d8 | ||
|
|
3af99d075e | ||
|
|
795cb1ecf4 | ||
|
|
e89d0aa815 | ||
|
|
206baa13e6 | ||
|
|
7cc797062d | ||
|
|
67d218fe2b | ||
|
|
dc8a3f210b | ||
|
|
e1f9ab77f8 | ||
|
|
0f7defc14a | ||
|
|
323af09ae9 | ||
|
|
d868f8f356 | ||
|
|
8c9cb9ee15 | ||
|
|
3a61af326e | ||
|
|
f5c502a436 | ||
|
|
b8dacaaac8 | ||
|
|
65ff2c2498 | ||
|
|
b26807b59b | ||
|
|
471b836a44 | ||
|
|
aa289c9cb0 | ||
|
|
614f12386e | ||
|
|
cc27c1486d | ||
|
|
d2d17847dc | ||
|
|
fa60f54bc5 | ||
|
|
0ddc79bb91 | ||
|
|
9ad250bbb8 | ||
|
|
d2aba9b693 | ||
|
|
6c5b5f59dd | ||
|
|
973e70bacc | ||
|
|
15761a0fa8 | ||
|
|
38fdc73d01 | ||
|
|
bcbf06ac8c | ||
|
|
98383b2aa9 | ||
|
|
5a8748b2b0 | ||
|
|
69adbdef15 | ||
|
|
da0c295114 | ||
|
|
83d0f819be | ||
|
|
c47a0f78ff | ||
|
|
7d3b7986e5 | ||
|
|
9469b26eb2 | ||
|
|
168fe0e376 | ||
|
|
14f30afd3c | ||
|
|
a67439981b | ||
|
|
5f67ca434d | ||
|
|
21dfce2cbb | ||
|
|
47c7b4b9cc | ||
|
|
55c10d0d88 | ||
|
|
93dcd1c98e | ||
|
|
2423fb8d38 | ||
|
|
463446795d | ||
|
|
dffefdad95 | ||
|
|
e014c91899 | ||
|
|
5cac1515fd | ||
|
|
97abfd48ce | ||
|
|
605f149235 | ||
|
|
7d11cf8ec9 | ||
|
|
9bb6c536c0 | ||
|
|
2a7ba37996 | ||
|
|
3f57119aea | ||
|
|
ddb1ab7fae | ||
|
|
8913e561db | ||
|
|
dcbaca4260 | ||
|
|
6839441ac6 | ||
|
|
62b6c4d09b | ||
|
|
1a7e5fb865 | ||
|
|
78a2feb24c | ||
|
|
04511ac141 | ||
|
|
4c0ef07f6f | ||
|
|
3ff5a5ae29 | ||
|
|
6ea057f8f8 | ||
|
|
b7d056fb22 | ||
|
|
e3aeab8122 | ||
|
|
72031e49fc | ||
|
|
d06d1e8682 | ||
|
|
5c3a4a8224 | ||
|
|
49749b46c4 | ||
|
|
5d56799070 | ||
|
|
81d2c5a4a7 | ||
|
|
0db88a5a3b | ||
|
|
f9720e0e6e | ||
|
|
77f91d67b4 | ||
|
|
da83322200 | ||
|
|
b463490d9f | ||
|
|
5002effd65 | ||
|
|
35613fd642 | ||
|
|
5cabbd0eef | ||
|
|
8b509f6c36 | ||
|
|
2612bcd738 | ||
|
|
de0577bc38 | ||
|
|
b192dc0774 | ||
|
|
43eee54f2d | ||
|
|
59ca0d21a1 | ||
|
|
92356d02b9 | ||
|
|
c10d591bd0 | ||
|
|
3a90bcc03c | ||
|
|
f6dc100748 | ||
|
|
0702f9775a | ||
|
|
838625edcd | ||
|
|
83bcdb8ede | ||
|
|
567c66567e | ||
|
|
da64273b43 | ||
|
|
6a23ffcce5 | ||
|
|
511dab0618 | ||
|
|
48e2523081 | ||
|
|
e0431aed28 | ||
|
|
29c9a7d71a | ||
|
|
eba42230ee | ||
|
|
f8315a40b4 | ||
|
|
b5724d06b4 | ||
|
|
70a06e30d5 | ||
|
|
3ec060f0dc | ||
|
|
39cf80e19f | ||
|
|
b56f4b27ee | ||
|
|
2b19e1f732 | ||
|
|
59d0d507d5 | ||
|
|
86de46debf | ||
|
|
1057da1556 | ||
|
|
9feb6b0f5b | ||
|
|
269d1e72cb | ||
|
|
31ff3a22b7 | ||
|
|
b9d022f164 | ||
|
|
087da7643e | ||
|
|
cb3a84adb4 | ||
|
|
004ace396d | ||
|
|
9ae2e87a46 | ||
|
|
ad4006738b | ||
|
|
f794f3ad0a | ||
|
|
b7ed3ddfdd | ||
|
|
038365bf2d | ||
|
|
64597a2dab | ||
|
|
d76220cc80 | ||
|
|
7a33c5d2ee | ||
|
|
e58b357918 | ||
|
|
789689e759 | ||
|
|
2321214c98 | ||
|
|
50a9b29c48 | ||
|
|
c5ccd826c8 | ||
|
|
ad9f72291f | ||
|
|
1c158dc510 | ||
|
|
cd915b6939 | ||
|
|
a7455035c5 | ||
|
|
5cd93834d1 | ||
|
|
6892e9fbb7 | ||
|
|
abe73c9904 | ||
|
|
cc57fc041a | ||
|
|
90df0d87ae | ||
|
|
95f670e3ec | ||
|
|
66342337ef | ||
|
|
59693bcb65 | ||
|
|
a432f53d6c | ||
|
|
e72d6c9f2c | ||
|
|
e23cf77f86 | ||
|
|
0f328e8472 | ||
|
|
7636536973 | ||
|
|
975e79fa3b | ||
|
|
eefa06622b | ||
|
|
9114c8cb8e | ||
|
|
132feea1fa | ||
|
|
33e9428510 | ||
|
|
1aa8f09b95 | ||
|
|
65584f21bb | ||
|
|
b697f948df | ||
|
|
551b00302b | ||
|
|
05aa0fa11a | ||
|
|
008e3fb37e | ||
|
|
68e8892f61 | ||
|
|
25ebb73756 | ||
|
|
fa67fb42b1 | ||
|
|
40b3041608 | ||
|
|
e3b8e8746e | ||
|
|
33bce49ee8 | ||
|
|
44a4faebc0 | ||
|
|
79f198e4f1 | ||
|
|
eb30976ae6 | ||
|
|
abda3b6c8c | ||
|
|
191ed3c814 | ||
|
|
7da2ca1862 | ||
|
|
cb39db100a | ||
|
|
e3f4c9bcf6 | ||
|
|
ed4a100e96 | ||
|
|
1377ea4178 | ||
|
|
6e1ae7b242 | ||
|
|
930724f9de | ||
|
|
3bbeec70ec | ||
|
|
69828e8dac | ||
|
|
58c8d21348 | ||
|
|
1e3fb5531b | ||
|
|
239d3f2dbf | ||
|
|
ff6d9d2860 | ||
|
|
f4588f3907 | ||
|
|
a561b83070 | ||
|
|
88f22da052 | ||
|
|
89c12948a1 | ||
|
|
f8cdab6d02 | ||
|
|
521eb95dbc | ||
|
|
c29f21ac56 | ||
|
|
de9d136a3f | ||
|
|
a0d5e2469d | ||
|
|
b38811af7c | ||
|
|
bc5be83e29 | ||
|
|
52011610c6 | ||
|
|
a2e022631d | ||
|
|
a574d0fbcb | ||
|
|
e9165a0d95 | ||
|
|
73203a3d72 | ||
|
|
437de6417e | ||
|
|
fd05826187 | ||
|
|
bd142b8fe5 | ||
|
|
384a3bed09 | ||
|
|
3c04fef8d1 | ||
|
|
9629929977 | ||
|
|
e76d3e72db | ||
|
|
19349b930a | ||
|
|
10c3c15f06 | ||
|
|
3b3f683f8c | ||
|
|
516a791bf4 | ||
|
|
2650a7a5b8 | ||
|
|
712c60106a | ||
|
|
41aafdea00 | ||
|
|
0bb882c9d4 | ||
|
|
3f3eca7d3a | ||
|
|
62efe2b4d5 | ||
|
|
6798effbab | ||
|
|
d739aeee32 | ||
|
|
a093c373c4 | ||
|
|
288cce4a22 | ||
|
|
28647de196 | ||
|
|
cf6a302f8f | ||
|
|
1c3d9a5df0 | ||
|
|
f44504097c | ||
|
|
625fed8838 | ||
|
|
3f39fc90fc | ||
|
|
7bd0001e76 | ||
|
|
ecaf152b4a | ||
|
|
7f3afac0a2 | ||
|
|
a5f76c064e | ||
|
|
d6e04da20b | ||
|
|
55652a7a18 | ||
|
|
7e845ebbc2 | ||
|
|
6954a6300c | ||
|
|
30d6992684 | ||
|
|
c25d89ef9c | ||
|
|
38d0b62167 | ||
|
|
b91d831e82 | ||
|
|
8a0201fe9c | ||
|
|
ce1fb06ce8 | ||
|
|
14591aa8f2 | ||
|
|
38b9fc4f25 | ||
|
|
32149f5122 | ||
|
|
211682d7ec | ||
|
|
b3b64d8525 | ||
|
|
2acb655c0f | ||
|
|
8d90e88e16 | ||
|
|
9b004248a9 | ||
|
|
b303a80491 | ||
|
|
b1b871aebf | ||
|
|
58f3a2ee94 | ||
|
|
8a9847b06a | ||
|
|
da6b30c5dd | ||
|
|
92ddebb3fd | ||
|
|
b53d6c7f8c | ||
|
|
c032dd1214 | ||
|
|
4f9f625e65 | ||
|
|
a46bfc7c14 | ||
|
|
4f7ba294d9 | ||
|
|
902d7c5538 | ||
|
|
3877b366b3 | ||
|
|
423a67fb06 | ||
|
|
3ab2a008f2 | ||
|
|
a61fe9023f | ||
|
|
36e8988ff7 | ||
|
|
a0c3dede8e | ||
|
|
dfb6df018a | ||
|
|
d6b1e5be2f | ||
|
|
ddb1635a46 | ||
|
|
9946ba0f08 | ||
|
|
29c63adfb4 | ||
|
|
d57a504cac | ||
|
|
e4f6fac460 | ||
|
|
f9693d1fad | ||
|
|
252fe24e8d | ||
|
|
5143f3372c | ||
|
|
5ab02cbeea | ||
|
|
faf827a50a | ||
|
|
a217344315 | ||
|
|
388ecfb1ea | ||
|
|
9982ead9e6 | ||
|
|
903d0bd3e2 | ||
|
|
edeabac8f7 | ||
|
|
3f4d93a287 | ||
|
|
b9289c397b | ||
|
|
97e7f7efcc | ||
|
|
fc76829eb4 | ||
|
|
8b30a0d641 | ||
|
|
97731705ba | ||
|
|
b0fa9f3809 | ||
|
|
20fb266a93 | ||
|
|
7256b1f8d3 | ||
|
|
0f334f900c | ||
|
|
88981e9d5b | ||
|
|
ec8905f81c | ||
|
|
65f20de821 | ||
|
|
e7a15b5604 | ||
|
|
4521e61ae2 | ||
|
|
f39b5be064 | ||
|
|
0960d61ce2 | ||
|
|
1521bb088c | ||
|
|
38b153ca94 | ||
|
|
f5fd59d656 | ||
|
|
f7bc442ba5 | ||
|
|
139dade62c | ||
|
|
3f1a87d1ad | ||
|
|
f3a29cbb0d | ||
|
|
f246699f38 | ||
|
|
bc5e457a63 | ||
|
|
9224b6635f | ||
|
|
5667f0f839 | ||
|
|
d300f4a87b | ||
|
|
f16a7cbcf2 | ||
|
|
c6d12c21db | ||
|
|
2b831da1d1 | ||
|
|
7a8a756789 | ||
|
|
a47f4b8955 | ||
|
|
c823cbe63b | ||
|
|
5605b03ce4 | ||
|
|
671ce6a531 | ||
|
|
14977ed2b7 | ||
|
|
13a406b6cf | ||
|
|
a9f0bea60c | ||
|
|
152247bfda | ||
|
|
6a4d56c81c | ||
|
|
85f50f3875 | ||
|
|
558d73b21a | ||
|
|
bf9846a269 | ||
|
|
70fc25aac1 | ||
|
|
9bc5d52e41 | ||
|
|
f0a70a70c3 | ||
|
|
3cb0cc7989 | ||
|
|
5d94062581 | ||
|
|
a23b25bff7 | ||
|
|
98fd6b5879 | ||
|
|
5393436403 | ||
|
|
d1c5556724 | ||
|
|
3db0147392 | ||
|
|
26068a3a8f | ||
|
|
0398787520 | ||
|
|
dccf03ffc2 | ||
|
|
6d78162323 | ||
|
|
74e0824b1d | ||
|
|
231b54a889 | ||
|
|
d7fbef0a55 | ||
|
|
ea6f9f1e7d | ||
|
|
ffbe896f28 | ||
|
|
e9769c937b | ||
|
|
e03d5a86a4 | ||
|
|
bb2b33f2c9 | ||
|
|
0fa9f945cf | ||
|
|
5c80ad8fe9 | ||
|
|
cee1d5e2d0 | ||
|
|
49d4c538fe | ||
|
|
c1d9e23171 | ||
|
|
8963e36aa2 | ||
|
|
4d3f0be419 | ||
|
|
07cfab0489 | ||
|
|
453574644c | ||
|
|
a529b0e5a3 | ||
|
|
bc6d576a4e | ||
|
|
356fd72603 | ||
|
|
225a8e11a9 | ||
|
|
4a0995a175 | ||
|
|
6fe12b52fd | ||
|
|
31cc188bbd | ||
|
|
772e05e835 | ||
|
|
abdb43c440 | ||
|
|
efb5e1d1cc | ||
|
|
3b524f32bf | ||
|
|
899c6241c3 | ||
|
|
8ca9621d42 | ||
|
|
b56d173f8a | ||
|
|
2bce064ada | ||
|
|
5be54451a8 | ||
|
|
458b9feb62 | ||
|
|
8332c03bd8 | ||
|
|
723cff0205 | ||
|
|
bd7cc6ac38 | ||
|
|
e7fc998459 | ||
|
|
da2483f7fe | ||
|
|
31f3f5f0f0 | ||
|
|
09a846a45c | ||
|
|
4edc7d8956 | ||
|
|
6a29b182ee | ||
|
|
46f99755db | ||
|
|
05cba6d357 | ||
|
|
c4e536ddbf | ||
|
|
d42c35cae7 | ||
|
|
8a1ccd123d | ||
|
|
cabed6098d | ||
|
|
5f52b13325 | ||
|
|
e438091113 | ||
|
|
4a17906530 | ||
|
|
ab26a8016d | ||
|
|
972963913b | ||
|
|
f01e6ef6bf | ||
|
|
7f9a41b05c | ||
|
|
41d1b1b8c9 | ||
|
|
48a97d25e5 | ||
|
|
c2d8759812 | ||
|
|
658901a47f | ||
|
|
050787238b | ||
|
|
fb42721160 | ||
|
|
573634706d | ||
|
|
c6fc9af77a | ||
|
|
2474c7f4cb | ||
|
|
d2f9798894 | ||
|
|
38815f6214 | ||
|
|
640ad17854 | ||
|
|
24a3a0bbff | ||
|
|
78a3d78a7f | ||
|
|
9a40a4e315 | ||
|
|
7331de0bce | ||
|
|
bf5fff879f | ||
|
|
1d0ca7eecf | ||
|
|
5ced8aef27 | ||
|
|
49f8bb4974 | ||
|
|
cc3fbefc83 | ||
|
|
bf527cd6e7 | ||
|
|
0ac4d744fd | ||
|
|
bdbbb92ff6 | ||
|
|
2eecb8e876 | ||
|
|
75888a55c3 | ||
|
|
dac4fbcb1e | ||
|
|
5e1014c072 | ||
|
|
21b10603fe | ||
|
|
54630edb0f | ||
|
|
2ec608fdba | ||
|
|
ca7d2081a2 | ||
|
|
3907cb51d6 | ||
|
|
be7b71a2f5 | ||
|
|
6e21147ff6 | ||
|
|
a19c560e7b | ||
|
|
0dcb99df19 | ||
|
|
eb5781465b | ||
|
|
3014e3e5f8 | ||
|
|
e152047912 | ||
|
|
3d6aaa7aaa | ||
|
|
32c60c774c | ||
|
|
bf5706ef6e | ||
|
|
1d6f43aa30 | ||
|
|
91e0e498eb | ||
|
|
1dfcca7b9c | ||
|
|
4a989f7ebb | ||
|
|
866aded6bc | ||
|
|
e542a030e4 | ||
|
|
2e051c5871 | ||
|
|
37b8f40151 | ||
|
|
3b3086510c | ||
|
|
8b1b3e3b54 | ||
|
|
459d3053d3 | ||
|
|
15d9c0f74c | ||
|
|
c091d9e6d5 | ||
|
|
4d73080da1 | ||
|
|
497ffde233 | ||
|
|
793dacef19 | ||
|
|
7699b49d33 | ||
|
|
8571c692ba | ||
|
|
3757d3ab88 | ||
|
|
68906395ba | ||
|
|
ac66550666 | ||
|
|
e5ad37e6d0 | ||
|
|
ed51209172 | ||
|
|
2be93b1fe6 | ||
|
|
ac0e0122f6 | ||
|
|
b644567735 | ||
|
|
8ae9d2eaa8 | ||
|
|
a9bc22e4e6 | ||
|
|
89e2c302dd | ||
|
|
0944c1cd6f | ||
|
|
9cc58fd3bc | ||
|
|
925cc06aea | ||
|
|
6da6c4dd45 | ||
|
|
f9cdcc9bc6 | ||
|
|
63068fc0c2 | ||
|
|
7ff467e8e0 | ||
|
|
a8bd3e8e53 | ||
|
|
58fc17e3b6 | ||
|
|
42833cd921 | ||
|
|
c05c504c86 | ||
|
|
3cb669a852 | ||
|
|
850addc619 | ||
|
|
7887ccc993 | ||
|
|
191233143f | ||
|
|
1a62ca52a0 | ||
|
|
5d1ccb9bdc | ||
|
|
7f16b50e73 | ||
|
|
b18df999cd | ||
|
|
0d2bee787d | ||
|
|
44213812b8 | ||
|
|
7e9d3d9b2f | ||
|
|
a43398ce1d | ||
|
|
dff0bee748 | ||
|
|
ba98abc97b | ||
|
|
4215a11d9a | ||
|
|
8ac5c35f09 | ||
|
|
7c2d8d73ce | ||
|
|
57cac0aa23 | ||
|
|
31488da40c | ||
|
|
1ea4469bec | ||
|
|
4e7e377987 | ||
|
|
88e3d3e8cb | ||
|
|
cc7fd2f68a | ||
|
|
488754437d | ||
|
|
4094ab58aa | ||
|
|
0ac1fc846b | ||
|
|
65b1524f92 | ||
|
|
e13202a452 | ||
|
|
787404638a | ||
|
|
533fe2d607 | ||
|
|
c12e3c46ff | ||
|
|
99f3f0917f | ||
|
|
258bd3c905 | ||
|
|
5de8930058 | ||
|
|
b7c26dc29d | ||
|
|
66aef2e716 | ||
|
|
c0bad443ff | ||
|
|
a81ebc5966 | ||
|
|
c717f1f3a9 | ||
|
|
3f53cbd8f6 | ||
|
|
e0b7633a7a | ||
|
|
caf646fcb0 | ||
|
|
228c92f2ca | ||
|
|
89393aaf95 | ||
|
|
5888da19b8 | ||
|
|
ef773520e6 | ||
|
|
dc49a24f07 | ||
|
|
fcb6e0adb9 | ||
|
|
93ea9c2033 | ||
|
|
c75afad64a | ||
|
|
a4ca127ebd | ||
|
|
4835f0fb43 | ||
|
|
6607b39235 | ||
|
|
9d1a874ddc | ||
|
|
965433bea9 | ||
|
|
7fd17232cc | ||
|
|
aad70a97db | ||
|
|
97a43bc30f | ||
|
|
116dd097bd | ||
|
|
dd6569a1bb | ||
|
|
4c2f7c64cc | ||
|
|
8bf6911d4b | ||
|
|
6fe13f1a63 | ||
|
|
4f0bb70118 | ||
|
|
b20703c185 | ||
|
|
0554dd8375 | ||
|
|
1ef6bec133 | ||
|
|
6feead5185 | ||
|
|
60c1af674f | ||
|
|
3ecb863372 | ||
|
|
2b884ba338 | ||
|
|
d90a98a8a7 | ||
|
|
5651353c27 | ||
|
|
31f9ea31b9 | ||
|
|
5ccbeda86a | ||
|
|
f20abb4ee5 | ||
|
|
7852815fc3 | ||
|
|
6778111891 | ||
|
|
b719f6cd1c | ||
|
|
6bb11492fa | ||
|
|
87d0f56dc7 | ||
|
|
824398509d | ||
|
|
b1c173ec4f | ||
|
|
8c9c89a137 | ||
|
|
353b1cc682 | ||
|
|
9f73c23b38 | ||
|
|
517a7f96c8 | ||
|
|
e844710ef2 | ||
|
|
d6d0b9659f | ||
|
|
4480fa1efe | ||
|
|
f8ab34734c | ||
|
|
65d7c47647 | ||
|
|
428046e710 | ||
|
|
1641ae1d96 | ||
|
|
b23407807c | ||
|
|
2bb0a5ac6e | ||
|
|
aa01ba7cce | ||
|
|
b4835c7e01 | ||
|
|
f5b63d8287 | ||
|
|
8e8c2b40f9 | ||
|
|
ad43011fb8 | ||
|
|
7b8e1e6913 | ||
|
|
d53a177e7b | ||
|
|
85d93133d3 | ||
|
|
4cf3bc53c2 | ||
|
|
ae7d17d121 | ||
|
|
b9a3b2c165 | ||
|
|
ba2630c615 | ||
|
|
8e5e6f90cb | ||
|
|
f6c6ffaf64 | ||
|
|
5c88c17d15 | ||
|
|
68ab056b3c | ||
|
|
c54712233c | ||
|
|
ccdac0ca96 | ||
|
|
c36e7d1a07 | ||
|
|
72b315491b | ||
|
|
6dd9374b99 | ||
|
|
1711ae7156 | ||
|
|
320c2bf771 | ||
|
|
3f507241ca | ||
|
|
2d551a8598 | ||
|
|
49f0837729 | ||
|
|
e4fc9ea816 | ||
|
|
b303d65450 | ||
|
|
dcd4d80869 | ||
|
|
aee7ed992b | ||
|
|
7e8700514f | ||
|
|
c8aa55636f | ||
|
|
1fed0ff564 | ||
|
|
ad7ecbaf37 | ||
|
|
a7c82eeabc | ||
|
|
da3fcf178e | ||
|
|
5d46c1c9bb | ||
|
|
1b33653f1b | ||
|
|
af24011eec | ||
|
|
87c6d0cbee | ||
|
|
3066a133ac | ||
|
|
436190966c | ||
|
|
b4e96181f5 | ||
|
|
61215e50ff | ||
|
|
53987fadd7 | ||
|
|
8a561bdb78 | ||
|
|
452a48e7f4 | ||
|
|
5248395fc5 | ||
|
|
cf8a7f93d5 | ||
|
|
187a698d54 | ||
|
|
ebd7b27075 | ||
|
|
dad915e522 | ||
|
|
896400a6c9 | ||
|
|
fdf7605074 | ||
|
|
ea1cff499a | ||
|
|
b392564165 | ||
|
|
39e41d7424 | ||
|
|
afa9c1f6f0 | ||
|
|
47b1b09b21 | ||
|
|
44058f8b85 | ||
|
|
6d82371449 | ||
|
|
830fabef12 | ||
|
|
c34e7e6e08 | ||
|
|
78d66d3806 | ||
|
|
44f041587c | ||
|
|
d0bbeeee52 | ||
|
|
9e5278d276 | ||
|
|
064a6bf065 | ||
|
|
1c5291f818 | ||
|
|
7c3a390763 | ||
|
|
83a67606a9 | ||
|
|
c1e69e7a53 | ||
|
|
570f331477 | ||
|
|
ffe3386e5b | ||
|
|
c63447e194 | ||
|
|
17d0bde50e | ||
|
|
4ea978000d | ||
|
|
12932d2831 | ||
|
|
1ba848e5f5 | ||
|
|
a6ea9de4b9 | ||
|
|
746770ac3b | ||
|
|
ab7a8a2dae | ||
|
|
b60c985203 | ||
|
|
785c67ea8d | ||
|
|
647a018362 | ||
|
|
81e6a21fe0 | ||
|
|
d8dcce807b | ||
|
|
103dc32dce | ||
|
|
b7e72cfb7e | ||
|
|
cf950224de | ||
|
|
02d7ffd305 | ||
|
|
9f8c9dd881 | ||
|
|
d019c1c440 | ||
|
|
a56898df94 | ||
|
|
f78c519ae5 | ||
|
|
dc9ef87c44 | ||
|
|
a78a839841 | ||
|
|
67ca7ee4ec | ||
|
|
76f3bdcdf9 | ||
|
|
9234ffc927 | ||
|
|
cc149e2f46 | ||
|
|
cedfb85b60 | ||
|
|
302af7099c | ||
|
|
1bdde6bd5c | ||
|
|
2acdd933c0 | ||
|
|
72888b4814 | ||
|
|
60342ed3fa | ||
|
|
504baa9de2 | ||
|
|
16ac03322c | ||
|
|
52d86275b6 | ||
|
|
18dbcfa0b0 | ||
|
|
991945ea26 | ||
|
|
dbd9d11d67 | ||
|
|
b468330ed9 | ||
|
|
209d8b4f39 | ||
|
|
ea04778649 | ||
|
|
24553eb69a | ||
|
|
86eab355c6 | ||
|
|
e7a1046b87 | ||
|
|
3c01c0cbf2 | ||
|
|
a683278fb8 | ||
|
|
5bea4feac8 | ||
|
|
64be363adc | ||
|
|
68e53f1526 | ||
|
|
dd3a65b52b | ||
|
|
cc8d60e53b | ||
|
|
1c9c9745f5 | ||
|
|
8b30c0c0cd | ||
|
|
0ec5327474 | ||
|
|
0691901345 | ||
|
|
a7943dceca | ||
|
|
c4429ca65e | ||
|
|
b7961b00fe | ||
|
|
759c4a8976 | ||
|
|
e4336f5b76 | ||
|
|
5c989ed18f | ||
|
|
d1d3b48e51 | ||
|
|
8856d68571 | ||
|
|
9edd0d25c2 | ||
|
|
6b52403d05 | ||
|
|
55cc6b8dee | ||
|
|
e211d4e0cb | ||
|
|
320e5dba83 | ||
|
|
9cc08ab3d8 | ||
|
|
390369498b | ||
|
|
9c787a578e | ||
|
|
e516a63272 | ||
|
|
d564202355 | ||
|
|
ff8437c378 | ||
|
|
ec092579a6 | ||
|
|
a1f3bd6865 | ||
|
|
c925e3d281 | ||
|
|
ca99468970 | ||
|
|
8a5c6240b4 | ||
|
|
fca820c90c | ||
|
|
becc4d2e54 | ||
|
|
c645f9f99f | ||
|
|
a5341cbd7d | ||
|
|
3dd363a6c5 | ||
|
|
e630803922 | ||
|
|
cb3b167d61 | ||
|
|
774b7fed1f | ||
|
|
cbf526b043 | ||
|
|
48331bc851 | ||
|
|
bda3d69539 | ||
|
|
71900e0231 | ||
|
|
694f08c79b | ||
|
|
c328584bb6 | ||
|
|
4c01198811 | ||
|
|
7781497b42 | ||
|
|
cde0eb621d | ||
|
|
474b8789a7 | ||
|
|
2189acdde1 | ||
|
|
c174f23389 | ||
|
|
4e23500732 | ||
|
|
b965f5e4a9 | ||
|
|
d1a69abf81 | ||
|
|
d2ef0efbff | ||
|
|
ce5c78d0d2 | ||
|
|
28bea88da0 | ||
|
|
a2e6f459e7 | ||
|
|
0026c45fe0 | ||
|
|
424292f335 | ||
|
|
8ca2f24df6 | ||
|
|
fb7e5a3fac | ||
|
|
5dd24e44d1 | ||
|
|
f7c6ea93d7 | ||
|
|
7658351041 | ||
|
|
833e2869e7 | ||
|
|
5b3a07ee9e | ||
|
|
3dfe3aa9a4 | ||
|
|
f68e13d905 | ||
|
|
3157d81e95 | ||
|
|
bd13ea3d2c | ||
|
|
f0cb587c89 | ||
|
|
84e2ee220b | ||
|
|
a7977c6642 | ||
|
|
1dfcd45704 | ||
|
|
8013cd2e79 | ||
|
|
9c69501404 | ||
|
|
0c8d874e3a | ||
|
|
0fb9c372dd | ||
|
|
3bb7afe544 | ||
|
|
29399e1ddc | ||
|
|
dfc1410bb0 | ||
|
|
9b72e02da3 | ||
|
|
5ec07ede7c | ||
|
|
72d4ad4c45 | ||
|
|
a6fb6150a3 | ||
|
|
b9ee14fe5b | ||
|
|
6e68a78d6a | ||
|
|
870f7608be | ||
|
|
69869307bf | ||
|
|
b161f38710 | ||
|
|
a7f464147d | ||
|
|
8eb87c8e4d | ||
|
|
7925b130e8 | ||
|
|
16e3cb01ca | ||
|
|
543ba2b3b7 | ||
|
|
beb9cd5710 | ||
|
|
b5fa8767da | ||
|
|
f846b207b6 | ||
|
|
c6b07acdcc | ||
|
|
b055f516c0 | ||
|
|
716ffcace6 | ||
|
|
980bf1306e | ||
|
|
ea92254b73 | ||
|
|
16ba1b3708 | ||
|
|
47b6f466ec | ||
|
|
2e76fcdf6f | ||
|
|
7ce0f79f7f | ||
|
|
0c59dd3da7 | ||
|
|
8c64f999dc | ||
|
|
cf2b1c1e00 | ||
|
|
2aa73fdf6c | ||
|
|
cd5615d354 | ||
|
|
8c883653c9 | ||
|
|
36170a11f5 | ||
|
|
194d656bb4 | ||
|
|
0f546b47d1 | ||
|
|
60df819c60 | ||
|
|
0e1b5d6f14 | ||
|
|
bde22208fe | ||
|
|
d4eb1def61 | ||
|
|
14cff15c89 | ||
|
|
e8c5307f66 | ||
|
|
dd52be3a01 | ||
|
|
8f9ce23e52 | ||
|
|
7c5fc2c423 | ||
|
|
63df2c851e | ||
|
|
4db787c4ee | ||
|
|
839a626716 | ||
|
|
ef7ad05c0b | ||
|
|
e24b0ceb80 | ||
|
|
71c42bef9b | ||
|
|
8caf288ac1 | ||
|
|
8f2049bcd2 | ||
|
|
d0aba46ee3 | ||
|
|
57c94a5cf0 | ||
|
|
c1f1e0ee7c | ||
|
|
192ea9738d | ||
|
|
37b849ad1f | ||
|
|
4e68126c06 | ||
|
|
c7fbf5637f | ||
|
|
5cf5b66696 | ||
|
|
7436a58ea1 | ||
|
|
b7b8fd4b59 | ||
|
|
55d4d3418e | ||
|
|
1c8419cea0 | ||
|
|
e8d4f3eac3 | ||
|
|
1b21bad202 | ||
|
|
30f600e03e | ||
|
|
f34f9f6ea5 | ||
|
|
8d4c5deb8d | ||
|
|
2f41f12aea | ||
|
|
9f0e0dc8ce | ||
|
|
a71682f6f0 | ||
|
|
5d3d5cd59c | ||
|
|
451bc0b444 | ||
|
|
d7a2d59f41 | ||
|
|
7deb4691fb | ||
|
|
9965bc8f94 | ||
|
|
317770fb23 | ||
|
|
19c204ea03 | ||
|
|
b9feacab85 | ||
|
|
56c7359a0c | ||
|
|
a7c1afffc6 | ||
|
|
fdb745b4a8 | ||
|
|
b3d8134c7a | ||
|
|
0879ab50b8 | ||
|
|
c5ef6bf38a | ||
|
|
b427bf70a8 | ||
|
|
c75fc266e9 | ||
|
|
e98740c285 | ||
|
|
56b23a64a3 | ||
|
|
ee5b417354 | ||
|
|
2f48d109dd | ||
|
|
784fc7b3f5 | ||
|
|
b55d26387b | ||
|
|
9ddf62d8b7 | ||
|
|
a8feed1eff | ||
|
|
f5bfc6f0c1 | ||
|
|
ee03ab8d2c | ||
|
|
3c7e1ff92e | ||
|
|
ac7e2ecb59 | ||
|
|
f28aea9e30 | ||
|
|
1ac7c154d7 | ||
|
|
ef860a8f84 | ||
|
|
f6f269194f | ||
|
|
e1d41063cd | ||
|
|
5d02405a98 | ||
|
|
998c2b692a | ||
|
|
19c0027605 | ||
|
|
9349f72227 | ||
|
|
5af8b77d28 | ||
|
|
f74d9c7ed0 | ||
|
|
7d9c273dac | ||
|
|
f2da79ad43 | ||
|
|
73a1372940 | ||
|
|
0138c3b00e | ||
|
|
6f33be6c75 | ||
|
|
3004fe573d | ||
|
|
040f9927dd | ||
|
|
abc1bdf218 | ||
|
|
e73e56be8f | ||
|
|
b0616b52ea | ||
|
|
6b6b767199 | ||
|
|
e1bdecb9c1 | ||
|
|
a32c6267be | ||
|
|
54df243b90 | ||
|
|
b44597d5d8 | ||
|
|
7b70b6c3cd | ||
|
|
5cc0219ff2 | ||
|
|
4a0b0b135a | ||
|
|
8bd2d6328a | ||
|
|
9351fb9617 | ||
|
|
13a2d16eab | ||
|
|
7b29e36d64 | ||
|
|
9cc36ef32d | ||
|
|
000f876084 | ||
|
|
2d11c558fa | ||
|
|
ac6b02af40 | ||
|
|
7d91912cfd | ||
|
|
3c504b4b08 | ||
|
|
adad4bcfe3 | ||
|
|
b3e8671dd9 | ||
|
|
0f8c890761 | ||
|
|
512e451f24 | ||
|
|
ca0d53ec5d | ||
|
|
686a709e87 | ||
|
|
83fb629f0b | ||
|
|
35eeeb25e3 | ||
|
|
19035c676c | ||
|
|
61ffe7417c | ||
|
|
7651353f39 | ||
|
|
3f5b81060f | ||
|
|
63dc66769f | ||
|
|
e0fc8cbf8f | ||
|
|
f9d1bc340e | ||
|
|
0b269e79fd | ||
|
|
6159cfd138 | ||
|
|
6a5bbd335b | ||
|
|
39e269db8c | ||
|
|
70fe23a3ce | ||
|
|
a6a8a7fb85 | ||
|
|
6641b13b4c | ||
|
|
5136b05c9b | ||
|
|
803c2144f4 | ||
|
|
b69a079514 | ||
|
|
2aa800cd55 | ||
|
|
6e61a36d05 | ||
|
|
f80bf1fb1c | ||
|
|
d465e85239 | ||
|
|
deed25a2ff | ||
|
|
a486716520 | ||
|
|
2361e11e98 | ||
|
|
cd1f2adca7 | ||
|
|
a558767b7a | ||
|
|
399ce9b999 | ||
|
|
a94a0b5b0b | ||
|
|
76faec2115 | ||
|
|
33c4e57994 | ||
|
|
bc23496998 | ||
|
|
d35ad95c18 | ||
|
|
5facd11592 | ||
|
|
e1e885d6b2 | ||
|
|
5b6695114f | ||
|
|
71dd7f89e9 | ||
|
|
21331e53fe | ||
|
|
7afee5977f | ||
|
|
d195b0dec7 | ||
|
|
8a95e850ad | ||
|
|
a4d74d7d7e | ||
|
|
256e0db36d | ||
|
|
d593c1358a | ||
|
|
1ff14d81c1 | ||
|
|
4369d12eec | ||
|
|
91cc033eb5 | ||
|
|
57543e6b44 | ||
|
|
a1b8cd15c4 | ||
|
|
73f06e591a | ||
|
|
6f7cfa82b5 | ||
|
|
ff97a003d1 | ||
|
|
53c92e3e23 | ||
|
|
13d13bc2f6 | ||
|
|
03744a25ed | ||
|
|
eac3bf8bff | ||
|
|
2e1fbb5b16 | ||
|
|
98b3517d36 | ||
|
|
dee662705e | ||
|
|
0da0cc80b9 | ||
|
|
650187deaf | ||
|
|
2e565cac2c | ||
|
|
ac7537278c | ||
|
|
f9a2e98831 | ||
|
|
54f789bd55 | ||
|
|
5ac9d13516 | ||
|
|
2be1a39d13 | ||
|
|
f3c5edc852 | ||
|
|
30704e6de8 | ||
|
|
41932ac409 | ||
|
|
9843c596d8 | ||
|
|
baf65bfa69 | ||
|
|
6501f80fc7 | ||
|
|
b037f6566b | ||
|
|
0ec8ebeba3 | ||
|
|
af1c9251fc | ||
|
|
4ad399c593 | ||
|
|
55a9646f23 | ||
|
|
46017f5725 | ||
|
|
c20ce12f86 | ||
|
|
1e28db2396 | ||
|
|
5f3640c7fd | ||
|
|
d65e5f6794 | ||
|
|
e67d7bc0ea | ||
|
|
1139632f95 | ||
|
|
b51a8c3f82 | ||
|
|
0d7256678e | ||
|
|
eea33d07fd | ||
|
|
f599337320 | ||
|
|
7df019db0e | ||
|
|
04f92bd688 | ||
|
|
505ecf6c1f | ||
|
|
c9ec08704e | ||
|
|
6a3039f7b7 | ||
|
|
868c8fffb3 | ||
|
|
faed3b438e | ||
|
|
6c982629ea | ||
|
|
110bbbc7dc | ||
|
|
4ad0345f20 | ||
|
|
9d84214462 | ||
|
|
3f199c7113 | ||
|
|
e9417fb741 | ||
|
|
ee74df6823 | ||
|
|
26630bae81 | ||
|
|
9bde9edcf6 | ||
|
|
a12f07c42b | ||
|
|
e7334c4fb0 | ||
|
|
38f9d1e764 | ||
|
|
2dfed75402 | ||
|
|
0c12e80106 | ||
|
|
b7522f69e7 | ||
|
|
24705a7e39 | ||
|
|
8add8025a0 | ||
|
|
32fa79d928 | ||
|
|
534be6ff25 | ||
|
|
f684c07567 | ||
|
|
788ae2f6ca | ||
|
|
572000f868 | ||
|
|
57f5df2d22 | ||
|
|
b2a67ba5ca | ||
|
|
d78e15cc1a | ||
|
|
ceab34f5f3 | ||
|
|
3a62625bbc | ||
|
|
ad6844ac4a | ||
|
|
a8c252a613 | ||
|
|
1d39f785f1 | ||
|
|
4b8b29b862 | ||
|
|
0d148bd23b | ||
|
|
ebedb81e3f | ||
|
|
d195406fdc | ||
|
|
5173ed37f9 | ||
|
|
825551d64f | ||
|
|
449761bada | ||
|
|
5859df389f | ||
|
|
562b02310f | ||
|
|
65ed702d87 | ||
|
|
c559a9843f | ||
|
|
88c3957085 | ||
|
|
01778e11dc | ||
|
|
9d9e8a3c4e | ||
|
|
ed3e035ad6 | ||
|
|
07f885fea8 | ||
|
|
2cc98226ca | ||
|
|
8a6f73c5ff | ||
|
|
00e3453ce1 | ||
|
|
16646dd77a | ||
|
|
1f39d1fe26 | ||
|
|
e8f3c587c9 | ||
|
|
4b43745e7c | ||
|
|
9db2f60053 | ||
|
|
4610d8dfe3 | ||
|
|
fa296efdf6 | ||
|
|
d9d98f84bf | ||
|
|
7c3143b8e5 | ||
|
|
387fcd5c5d | ||
|
|
ebc6437977 | ||
|
|
4922cb92e0 | ||
|
|
cc6a2670c8 | ||
|
|
dbc23b5d20 | ||
|
|
843f1aed4f | ||
|
|
e42938cad6 | ||
|
|
2a41f6c383 | ||
|
|
671d21a2c1 | ||
|
|
515692d7a6 | ||
|
|
00d28826b9 | ||
|
|
5b38f76254 | ||
|
|
ca7dbd6010 | ||
|
|
133644e5a9 | ||
|
|
04d60426c7 | ||
|
|
8282bbd07c | ||
|
|
7190bd00c9 | ||
|
|
44b9539818 | ||
|
|
b2ed4c9508 | ||
|
|
c7b5c8b19e | ||
|
|
f4bee24ccf | ||
|
|
e9cb18c5aa | ||
|
|
d8f33bc0af | ||
|
|
663999556f | ||
|
|
c5a12ca2c7 | ||
|
|
7af0e38dd3 | ||
|
|
7d9d1ae7c2 | ||
|
|
cef448f0f2 | ||
|
|
67d64c9365 | ||
|
|
269af9d6b9 | ||
|
|
d37a734379 | ||
|
|
7cb13cf839 | ||
|
|
d7dda8f6e3 | ||
|
|
6670c72f8b | ||
|
|
b21064ffa4 | ||
|
|
1959cb462b | ||
|
|
1d6767ef0c | ||
|
|
4735ae6451 | ||
|
|
452bd6db25 | ||
|
|
f5d6b84381 | ||
|
|
34f5d81d1f | ||
|
|
aa8adc07aa | ||
|
|
d87bb807c3 | ||
|
|
7646d6ed47 | ||
|
|
41a6ed0de0 | ||
|
|
ec8074cd49 | ||
|
|
7131eb1827 | ||
|
|
605b0f27e4 | ||
|
|
80d2e157f6 | ||
|
|
1e3447bccb | ||
|
|
5ffa106cc1 | ||
|
|
fc641c9b96 | ||
|
|
5f49ac1b11 | ||
|
|
9ffecf25dc | ||
|
|
35fd523edf | ||
|
|
6721d4216c | ||
|
|
e3275e916b | ||
|
|
3ba5541a66 | ||
|
|
945c50db1f | ||
|
|
30dce42e03 | ||
|
|
d4fb201d05 | ||
|
|
2a2e8d0cf6 | ||
|
|
520ed8cb4d | ||
|
|
8cab16c824 | ||
|
|
ae63a1f494 | ||
|
|
117ac53505 | ||
|
|
2c379732d2 | ||
|
|
9ca1197759 | ||
|
|
8d3283e2a5 | ||
|
|
6589e8a390 | ||
|
|
b62894ff56 | ||
|
|
da274cd458 | ||
|
|
a2268a95be | ||
|
|
9fd1b35d95 | ||
|
|
869854eae7 | ||
|
|
238f923b41 | ||
|
|
a5df2b0293 | ||
|
|
e6eae558d3 | ||
|
|
083fa53d9c | ||
|
|
7b73dd2d62 | ||
|
|
7028b7331b | ||
|
|
eefebab530 | ||
|
|
683ddbef3e | ||
|
|
bd23522c76 | ||
|
|
c1dfbe2623 | ||
|
|
ed9facbb33 | ||
|
|
26fbb3a560 | ||
|
|
93dd0638ad | ||
|
|
0d44129ae3 | ||
|
|
0cffe60abc | ||
|
|
8a6750278e | ||
|
|
d347f0a087 | ||
|
|
226e0c4714 | ||
|
|
0b2f945bb6 | ||
|
|
2f6c45e118 | ||
|
|
a5f54580a9 | ||
|
|
70df8c77fa | ||
|
|
2c52655b17 | ||
|
|
6c4c071ae9 | ||
|
|
b19dba80f4 | ||
|
|
a8b19f4aa8 | ||
|
|
09f4b9e546 | ||
|
|
2e6d8c792b | ||
|
|
e6338a555d | ||
|
|
313a489ba0 | ||
|
|
b906ff3fed | ||
|
|
ede96eca28 | ||
|
|
42f3d9188b | ||
|
|
a35e0e9261 | ||
|
|
80a400a67c | ||
|
|
7a6534f30b | ||
|
|
68a523ec6d | ||
|
|
97d6c1ee86 | ||
|
|
19c93151ce | ||
|
|
039a2af3ab | ||
|
|
945129c371 | ||
|
|
da32be3ef3 | ||
|
|
468ec36830 | ||
|
|
492fb9a115 | ||
|
|
bd8b624bae | ||
|
|
9dacf11702 | ||
|
|
26ae2dfc0f | ||
|
|
a7f43d5312 | ||
|
|
7fdf298bd4 | ||
|
|
7d7167df6d | ||
|
|
aa339be2ab | ||
|
|
1217d6fbb4 | ||
|
|
ccb22539e1 | ||
|
|
957eff0e63 | ||
|
|
363d727c55 | ||
|
|
31dcf713cc | ||
|
|
7800a12e52 | ||
|
|
d6ff50a30b | ||
|
|
ead931211c | ||
|
|
a3aafa03ad | ||
|
|
307a882649 | ||
|
|
3e112da486 | ||
|
|
bd469420fa | ||
|
|
38fde26d60 | ||
|
|
dc4fd3e505 | ||
|
|
4dc00ee72a | ||
|
|
bd3d75df6b | ||
|
|
69bb377cb1 | ||
|
|
80bfa02831 | ||
|
|
8631740ca4 | ||
|
|
4b75c68753 | ||
|
|
3bf775c9a8 | ||
|
|
8dc0e0abbb | ||
|
|
2b377a3dc5 | ||
|
|
9d367882fb | ||
|
|
951ab90b1a | ||
|
|
7e89e70934 | ||
|
|
0b4a7e8166 | ||
|
|
59748f07d1 | ||
|
|
65cd605b73 | ||
|
|
b8afabde2c | ||
|
|
02b6595d76 | ||
|
|
336d8fe785 | ||
|
|
ed9a49687e | ||
|
|
a160b01cff | ||
|
|
d05ffc0a7c | ||
|
|
afc0be6790 | ||
|
|
85f3df4c0e | ||
|
|
eea47ca2e8 | ||
|
|
57b1fe44d4 | ||
|
|
79212bbd37 | ||
|
|
d456308653 | ||
|
|
424919ffd0 | ||
|
|
d75225e23b | ||
|
|
8f0c598772 | ||
|
|
fe4fbafcf0 | ||
|
|
0db2abd56c | ||
|
|
c62a4d6282 | ||
|
|
0de41063da | ||
|
|
d79478c265 | ||
|
|
4f62f6f288 | ||
|
|
f8d0902080 | ||
|
|
a69c78e709 | ||
|
|
84b8ffb7d0 | ||
|
|
3feaf39294 | ||
|
|
fe98ad8849 | ||
|
|
65577e43c8 | ||
|
|
890564e1da | ||
|
|
002f98987d | ||
|
|
43956f3ffb | ||
|
|
f2a9194c79 | ||
|
|
4cd70df7f4 | ||
|
|
21e4c3dfe9 | ||
|
|
d56fc41865 | ||
|
|
9d64ac6d6f | ||
|
|
e13434c2f0 | ||
|
|
5416a295c1 | ||
|
|
119c650406 | ||
|
|
57386f46d2 | ||
|
|
77e491f52c | ||
|
|
6f1243f722 | ||
|
|
fe0bb21b37 | ||
|
|
60d9bb0218 | ||
|
|
956375e2e8 | ||
|
|
0fa602a184 | ||
|
|
d600296360 | ||
|
|
c9f5e60f43 | ||
|
|
d513848f65 | ||
|
|
ae6af6aefd | ||
|
|
a0ae9f7593 | ||
|
|
dace5b6940 | ||
|
|
2d8b97287e | ||
|
|
ec63a50de2 | ||
|
|
6e2d7e9792 | ||
|
|
39349dcba5 | ||
|
|
a5b1fe5d16 | ||
|
|
91bbb67e4a | ||
|
|
f368bce9d5 | ||
|
|
fbfe42d6f0 | ||
|
|
f3c5ca6cf4 | ||
|
|
0022267072 | ||
|
|
30fced38c4 | ||
|
|
7e5f3dbf11 | ||
|
|
9f0dfb5517 | ||
|
|
678c7d9502 | ||
|
|
91a3c3943d | ||
|
|
c46b45a467 | ||
|
|
9385767b12 | ||
|
|
7795ff0c95 | ||
|
|
a9acd72eb7 | ||
|
|
67d366c3ca | ||
|
|
1f8f051ee2 | ||
|
|
94004b7a3f | ||
|
|
3e9f88506e | ||
|
|
81f11d8f86 | ||
|
|
518b3e2f73 | ||
|
|
d0157b3bfd | ||
|
|
7fc8d2e6d5 | ||
|
|
fb0f9711ba | ||
|
|
92136272b0 | ||
|
|
e1159e9ef2 | ||
|
|
a2e61c6708 | ||
|
|
726959911c | ||
|
|
d59914b959 | ||
|
|
07025caee9 | ||
|
|
1c0289e490 | ||
|
|
275fcd8bbc | ||
|
|
0c0aa93668 | ||
|
|
bfcd5ea440 | ||
|
|
3ff43cca02 | ||
|
|
6bd536c526 | ||
|
|
7738a36014 | ||
|
|
daddec8362 | ||
|
|
a3832d73fd | ||
|
|
cedb4267ba | ||
|
|
9c6629d582 | ||
|
|
4ee4e70ee0 | ||
|
|
bb7867351c | ||
|
|
fea7460930 | ||
|
|
1bf2bf1773 | ||
|
|
3d668ad10d | ||
|
|
2801338a3c | ||
|
|
b66f4ebba1 | ||
|
|
9ee1b5f30a | ||
|
|
0f31a0548c | ||
|
|
ffc29aa6f5 | ||
|
|
d23aa94b41 | ||
|
|
c1b6378951 | ||
|
|
bb5d2bda51 | ||
|
|
d075471b2d | ||
|
|
199d98bf79 | ||
|
|
3ae798d526 | ||
|
|
e1bd61c70e | ||
|
|
0296f841c3 | ||
|
|
bd1f4b8d98 | ||
|
|
dc19f20153 | ||
|
|
f5cd809f62 | ||
|
|
09d5a7806a | ||
|
|
4606f23ed8 | ||
|
|
8451e08aaa | ||
|
|
2047449294 | ||
|
|
d61eee695f | ||
|
|
73b62797cd | ||
|
|
170cfc6a0e | ||
|
|
6bf1d7e398 | ||
|
|
e46e7f5252 | ||
|
|
5952f1ac24 | ||
|
|
a08369fe36 | ||
|
|
6cb9612943 | ||
|
|
76c049522e | ||
|
|
c41879c542 | ||
|
|
99bdb11d24 | ||
|
|
c2009acb2d | ||
|
|
46d2a8726e | ||
|
|
7df3ca7388 | ||
|
|
51b8d4ae3e | ||
|
|
ab1124abba | ||
|
|
3db84a2e8f | ||
|
|
9a78bbf0f1 | ||
|
|
efbec444e8 | ||
|
|
2f06f2a6da | ||
|
|
b8da51e08c | ||
|
|
af6a578fa6 | ||
|
|
73d735a1f7 | ||
|
|
b8b1899a9f | ||
|
|
d52f0617a1 | ||
|
|
c730973294 | ||
|
|
2c2e064871 | ||
|
|
e3c39d4b52 | ||
|
|
5da74897ae | ||
|
|
4b1009b34e | ||
|
|
203a7ad073 | ||
|
|
34a7b52105 | ||
|
|
30fc166c08 | ||
|
|
c84d86b368 | ||
|
|
1e5d4db0a1 | ||
|
|
5e02f0d325 | ||
|
|
ce5506f331 | ||
|
|
91105845d8 | ||
|
|
2bedc084a3 | ||
|
|
027ef1ea4a | ||
|
|
668aa17eef | ||
|
|
ebf8ef22e4 | ||
|
|
bcb5182e86 | ||
|
|
f45059b7b1 | ||
|
|
d0aee58599 | ||
|
|
68e65ed5df | ||
|
|
367ccb9971 | ||
|
|
4151087d3c | ||
|
|
39c058a4bb | ||
|
|
d1807ee5dc | ||
|
|
e6a76b31be | ||
|
|
98469117bf | ||
|
|
a5becfc042 | ||
|
|
d2204fd5c8 | ||
|
|
519a08f8b5 | ||
|
|
303519a1bd | ||
|
|
161da24841 | ||
|
|
6e40024660 | ||
|
|
73c78d4c38 | ||
|
|
2654936c17 | ||
|
|
23810e3e1e | ||
|
|
d6c89bf003 | ||
|
|
49ab2a5f93 | ||
|
|
bc0b8afb1f | ||
|
|
b250456814 | ||
|
|
0a6e237d09 | ||
|
|
54ff4e53cb | ||
|
|
002ccbb5f0 | ||
|
|
7b7faf1e84 | ||
|
|
9936088200 | ||
|
|
990f4b52bd | ||
|
|
4c21d83639 | ||
|
|
d43a4a2d46 | ||
|
|
8d2c3bb18d | ||
|
|
4e39e690b6 | ||
|
|
6458239a7c | ||
|
|
a5aaa032ca | ||
|
|
71bbef69c7 | ||
|
|
c5c40a73b7 | ||
|
|
74910f8d70 | ||
|
|
e00003edff | ||
|
|
bedb98185e | ||
|
|
da6f955d58 | ||
|
|
6bdccea26b | ||
|
|
b2117ba3a1 | ||
|
|
ba349fc62f | ||
|
|
b2c79a5f2c | ||
|
|
3e415e733d | ||
|
|
a5e84e5de9 | ||
|
|
8673353029 | ||
|
|
4579d02296 | ||
|
|
978a9bbb3b | ||
|
|
2470afaa2e | ||
|
|
60e545b2fd | ||
|
|
6555644b88 | ||
|
|
df56bd6d57 | ||
|
|
e51432a461 | ||
|
|
90e2186872 | ||
|
|
3043b2f619 | ||
|
|
d2fc5a248b | ||
|
|
e6d666e1ee | ||
|
|
c5cfbd99d0 | ||
|
|
33b22a323c | ||
|
|
f032fb628a | ||
|
|
7761eb8897 | ||
|
|
58fa8c4a01 | ||
|
|
789d61d175 | ||
|
|
b52fd72727 | ||
|
|
d79905e141 | ||
|
|
cd6b1290cb | ||
|
|
c382497167 | ||
|
|
a8fb578854 | ||
|
|
ff00c90a88 | ||
|
|
d0755b5ce8 | ||
|
|
17fa5667b8 | ||
|
|
01d5e385ec | ||
|
|
af80fee899 | ||
|
|
6b37c09274 | ||
|
|
1453a0f5cf | ||
|
|
1688083e9a | ||
|
|
616594d3cd | ||
|
|
6783178dc3 | ||
|
|
3f033d6ab7 | ||
|
|
d10e000883 | ||
|
|
ce528ff22e | ||
|
|
5e4e02235a | ||
|
|
e4179336e4 | ||
|
|
7823ba494f | ||
|
|
7bdff90415 | ||
|
|
f3c0af7e23 | ||
|
|
72dfbfcf35 | ||
|
|
9cbe878d0b | ||
|
|
618405c4d3 | ||
|
|
0b08fcac4a | ||
|
|
eac6ebb239 | ||
|
|
194fb14e07 | ||
|
|
c2d05b507a | ||
|
|
4df43a9107 | ||
|
|
0da7fcdbed | ||
|
|
1e50b2688a | ||
|
|
c1cd018626 | ||
|
|
b588e8b60b | ||
|
|
06f55ffb37 | ||
|
|
02df6a28cd | ||
|
|
d64abedf9f | ||
|
|
fc921d8c1d | ||
|
|
4d39d1caf6 | ||
|
|
d06f61f23f | ||
|
|
c179d6f735 | ||
|
|
3bc0cdbfb7 | ||
|
|
b04155e7ba | ||
|
|
014c97fa85 | ||
|
|
96ccf550b1 | ||
|
|
8f28ff63f1 | ||
|
|
b7dec6e87d | ||
|
|
1bb2c22493 | ||
|
|
39c3995c74 | ||
|
|
8cc80faf20 | ||
|
|
4d66077f85 | ||
|
|
3ece2dc990 | ||
|
|
6071e962f4 | ||
|
|
ed43369797 | ||
|
|
c65957853b | ||
|
|
6a18360269 | ||
|
|
c438bd2e27 | ||
|
|
462acc9eee | ||
|
|
e4144a17a4 | ||
|
|
3cfd017538 | ||
|
|
403849805a | ||
|
|
402b234d15 | ||
|
|
eba6b326fa | ||
|
|
4c9b93a12f | ||
|
|
dfee79f841 | ||
|
|
962373cf06 | ||
|
|
13aa4b64b4 | ||
|
|
5ce56886a1 | ||
|
|
2817ca03f5 | ||
|
|
e633c3b84b | ||
|
|
8524e9d735 | ||
|
|
91ced90fb2 | ||
|
|
2acb3917ba | ||
|
|
dd78ac089c | ||
|
|
10e526ba56 | ||
|
|
7ed905f76b | ||
|
|
5d13e2744f | ||
|
|
1d7e0293a8 | ||
|
|
8977d87021 | ||
|
|
809400ff23 | ||
|
|
4c8dbcc20d | ||
|
|
416dcf884d | ||
|
|
09d3ce444a | ||
|
|
27c2ca5048 | ||
|
|
fceeb1b108 | ||
|
|
b442c38f41 | ||
|
|
7c2d2676f7 | ||
|
|
1f6a41cea7 | ||
|
|
0d7ee20a77 | ||
|
|
dcca2350dd | ||
|
|
1cfdd4c41a | ||
|
|
25f4ee7030 | ||
|
|
5320f23017 | ||
|
|
4ffbbbe6d8 | ||
|
|
132e45dff4 | ||
|
|
01652b72b3 | ||
|
|
8b1fdb5a3b | ||
|
|
192add376c | ||
|
|
244ea9593a | ||
|
|
f20d7cba74 | ||
|
|
a3e282bc75 | ||
|
|
49a95c34bf | ||
|
|
ecbefce2aa | ||
|
|
91356b1805 | ||
|
|
2e2ed1385f | ||
|
|
49f3090edd | ||
|
|
4594fb11de | ||
|
|
b93e56d2e5 | ||
|
|
c550dafb81 | ||
|
|
8709574f3d | ||
|
|
1b7043fa79 | ||
|
|
55ef2393fb | ||
|
|
7769095efb | ||
|
|
b8248bdd65 | ||
|
|
6f4ad581dc | ||
|
|
aec94920ab | ||
|
|
155ca39063 | ||
|
|
58bfb4dca4 | ||
|
|
49a0b6c48b | ||
|
|
799a653b44 | ||
|
|
d09e1f4925 | ||
|
|
cac784af8a | ||
|
|
d7e0ddcbca | ||
|
|
8c0811a442 | ||
|
|
bab6f75260 | ||
|
|
54e3fccd87 | ||
|
|
6a992b6982 | ||
|
|
ecd6fc1db8 | ||
|
|
d99be6697e | ||
|
|
d2d77b5dc1 | ||
|
|
91503405b4 | ||
|
|
c336201084 | ||
|
|
0f3399753d | ||
|
|
5ec89ea0c3 | ||
|
|
a42b03c154 | ||
|
|
4b181a30da | ||
|
|
70805e00eb | ||
|
|
3551ac328e | ||
|
|
e36e5df635 | ||
|
|
3e7d8b5f17 | ||
|
|
5846198eee | ||
|
|
c14063a921 | ||
|
|
457670e730 | ||
|
|
513cef50a2 | ||
|
|
88c64ece78 | ||
|
|
fcabc99303 | ||
|
|
fccd9c32e8 | ||
|
|
58a3a0b7d4 | ||
|
|
c89374c321 | ||
|
|
6a87f4ade9 | ||
|
|
a2a1636c10 | ||
|
|
46ec0303b7 | ||
|
|
3b1669fb6b | ||
|
|
09591fa4ae | ||
|
|
85ce00adc0 | ||
|
|
f25518af91 | ||
|
|
b796aacf7f | ||
|
|
ff24811676 | ||
|
|
4c8a1867f0 | ||
|
|
bce48dfee9 | ||
|
|
c20311b8a7 | ||
|
|
fb14ac50b8 | ||
|
|
84d984bd31 | ||
|
|
1bc856c451 | ||
|
|
c17c42fa05 | ||
|
|
5531a1fdf2 | ||
|
|
78ee600752 | ||
|
|
bc9525c665 | ||
|
|
b41c1fe3af | ||
|
|
84dffdf510 | ||
|
|
8ab9b92f60 | ||
|
|
287f595239 | ||
|
|
cbce1242b9 | ||
|
|
f3640add23 | ||
|
|
a05f47d5cc | ||
|
|
6c990f3ce7 | ||
|
|
a4b14d54f2 | ||
|
|
2c079a9608 | ||
|
|
233ffe46d5 | ||
|
|
231ac8e323 | ||
|
|
755189f6f3 | ||
|
|
d2b634c349 | ||
|
|
4ff49b0a3f | ||
|
|
2bf63b158c | ||
|
|
de81437248 | ||
|
|
043ffe3a2e | ||
|
|
43d9149c8a | ||
|
|
f08a840d7d | ||
|
|
714753d001 | ||
|
|
7f3943f794 | ||
|
|
80ef07222d | ||
|
|
510a1408a2 | ||
|
|
34afa60aff | ||
|
|
71f35d90c5 | ||
|
|
8ba56df54e | ||
|
|
227e603194 | ||
|
|
4021c3c61a | ||
|
|
d549879cd4 | ||
|
|
b7fd9e8c55 | ||
|
|
f278390012 | ||
|
|
fa98dabeec | ||
|
|
1243e6a655 | ||
|
|
7a148e9ffa | ||
|
|
a526f75a3e | ||
|
|
b1b90185c4 | ||
|
|
ab391870ed | ||
|
|
3e6ad67d59 | ||
|
|
39668a21d7 | ||
|
|
85eb00b0a6 | ||
|
|
0c61d052d2 | ||
|
|
e6e339cc3e | ||
|
|
8ea124b999 | ||
|
|
7ee3b4536c | ||
|
|
99fa6e3cd0 | ||
|
|
32ff71a67d | ||
|
|
2ffff0fa61 | ||
|
|
51ca78d496 | ||
|
|
677ed40b40 | ||
|
|
0616534af7 | ||
|
|
7a41dc2a7a | ||
|
|
65f0b195a2 | ||
|
|
170e84360c | ||
|
|
42b611de9b | ||
|
|
015d169423 | ||
|
|
56958d2397 | ||
|
|
b11c00ccdc | ||
|
|
dfc8a09f44 | ||
|
|
127a1320a8 | ||
|
|
4e93f2f360 | ||
|
|
76d0a9cc5d | ||
|
|
99dc38c6e0 | ||
|
|
fe1c8b882a | ||
|
|
0acaa2f3b0 | ||
|
|
78861f8a31 | ||
|
|
05a902f3a5 | ||
|
|
0bab055441 | ||
|
|
adb168dfdc | ||
|
|
8bc7daa3f3 | ||
|
|
b6df8cc1f5 | ||
|
|
b95775041c | ||
|
|
36bfaeba12 | ||
|
|
e40f0800a0 | ||
|
|
154e0fe94a | ||
|
|
c6285944a1 | ||
|
|
037f68858d | ||
|
|
873f24618c | ||
|
|
17c9f6eace | ||
|
|
2a84e5034e | ||
|
|
bc3b3bb1c0 | ||
|
|
b729000687 | ||
|
|
64cf49c378 | ||
|
|
f894d978df | ||
|
|
ce12fc2b67 | ||
|
|
091ef2e240 | ||
|
|
1d17516aa8 | ||
|
|
b5a01217b1 | ||
|
|
b9056a9fd9 | ||
|
|
aa9182bd50 | ||
|
|
c75ff55bbc | ||
|
|
1e7219b043 | ||
|
|
5431f4fb86 | ||
|
|
1cdf9e19a0 | ||
|
|
5e6e1084cf | ||
|
|
a1f2dd7846 | ||
|
|
b2549d98f9 | ||
|
|
b1934d95f2 | ||
|
|
d9fbddc26c | ||
|
|
b818da3b1c | ||
|
|
509dc30ae6 | ||
|
|
8c08be47cb | ||
|
|
691f0d07b9 | ||
|
|
a61507e971 | ||
|
|
70aaf34094 | ||
|
|
d311f74349 | ||
|
|
893fa691a7 | ||
|
|
39270c782a | ||
|
|
adae7cf2ec | ||
|
|
6ae5f76250 | ||
|
|
ca655c0628 | ||
|
|
8d3f9d7e34 | ||
|
|
e7eac5baa7 | ||
|
|
08f673802f | ||
|
|
bdb592539e | ||
|
|
3557741f13 | ||
|
|
9d89314afa | ||
|
|
83b86c745d | ||
|
|
c6088a1cb3 | ||
|
|
88c1874943 | ||
|
|
ec50d657bb | ||
|
|
e8c856924c | ||
|
|
e1317ce098 | ||
|
|
a385bd0227 | ||
|
|
99276028ae | ||
|
|
d7d02cd2bc | ||
|
|
bd52ff905f | ||
|
|
49a655f78e | ||
|
|
c27340eddc | ||
|
|
57c6e7f823 | ||
|
|
6c938905f9 | ||
|
|
767df5967a | ||
|
|
2f8f6431d1 | ||
|
|
aace7a1900 | ||
|
|
00bbd9c7bb | ||
|
|
1bd75619dd | ||
|
|
c7d5da4ec5 | ||
|
|
1cfa30b982 | ||
|
|
f5fcc130bf | ||
|
|
c7bfdea17b | ||
|
|
460e23c2e7 | ||
|
|
a4d5faa789 | ||
|
|
148730dac3 | ||
|
|
e43a8bf88a | ||
|
|
502ccea980 | ||
|
|
deab5bce91 | ||
|
|
6dc01cd109 | ||
|
|
eacb5fea9f | ||
|
|
92c170d540 | ||
|
|
32b0679472 | ||
|
|
71d89fb33e | ||
|
|
81289762bc | ||
|
|
cb0e275db9 | ||
|
|
b53a6bfe0c | ||
|
|
8d7e6ee769 |
@@ -2,3 +2,4 @@
|
||||
POSTGRES_PASSWORD=example-misskey-pass
|
||||
POSTGRES_USER=example-misskey-user
|
||||
POSTGRES_DB=misskey
|
||||
DATABASE_URL="postgres://${POSTGRES_USER}:${POSTGRES_PASSWORD}@db:5432/${POSTGRES_DB}"
|
||||
|
||||
195
.config/docker_example.yml
Normal file
195
.config/docker_example.yml
Normal file
@@ -0,0 +1,195 @@
|
||||
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
# Misskey configuration
|
||||
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
# ┌─────┐
|
||||
#───┘ URL └─────────────────────────────────────────────────────
|
||||
|
||||
# Final accessible URL seen by a user.
|
||||
url: https://example.tld/
|
||||
|
||||
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
|
||||
# URL SETTINGS AFTER THAT!
|
||||
|
||||
# ┌───────────────────────┐
|
||||
#───┘ Port and TLS settings └───────────────────────────────────
|
||||
|
||||
#
|
||||
# Misskey requires a reverse proxy to support HTTPS connections.
|
||||
#
|
||||
# +----- https://example.tld/ ------------+
|
||||
# +------+ |+-------------+ +----------------+|
|
||||
# | User | ---> || Proxy (443) | ---> | Misskey (3000) ||
|
||||
# +------+ |+-------------+ +----------------+|
|
||||
# +---------------------------------------+
|
||||
#
|
||||
# You need to set up a reverse proxy. (e.g. nginx)
|
||||
# An encrypted connection with HTTPS is highly recommended
|
||||
# because tokens may be transferred in GET requests.
|
||||
|
||||
# The port that your Misskey server should listen on.
|
||||
port: 3000
|
||||
|
||||
# ┌──────────────────────────┐
|
||||
#───┘ PostgreSQL configuration └────────────────────────────────
|
||||
|
||||
db:
|
||||
host: db
|
||||
port: 5432
|
||||
|
||||
# Database name
|
||||
db: misskey
|
||||
|
||||
# Auth
|
||||
user: example-misskey-user
|
||||
pass: example-misskey-pass
|
||||
|
||||
# Whether disable Caching queries
|
||||
#disableCache: true
|
||||
|
||||
# Extra Connection options
|
||||
#extra:
|
||||
# ssl: true
|
||||
|
||||
dbReplications: false
|
||||
|
||||
# You can configure any number of replicas here
|
||||
#dbSlaves:
|
||||
# -
|
||||
# host:
|
||||
# port:
|
||||
# db:
|
||||
# user:
|
||||
# pass:
|
||||
# -
|
||||
# host:
|
||||
# port:
|
||||
# db:
|
||||
# user:
|
||||
# pass:
|
||||
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Redis configuration └─────────────────────────────────────
|
||||
|
||||
redis:
|
||||
host: redis
|
||||
port: 6379
|
||||
#family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
#pass: example-pass
|
||||
#prefix: example-prefix
|
||||
#db: 1
|
||||
|
||||
#redisForPubsub:
|
||||
# host: redis
|
||||
# port: 6379
|
||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
# #pass: example-pass
|
||||
# #prefix: example-prefix
|
||||
# #db: 1
|
||||
|
||||
#redisForJobQueue:
|
||||
# host: redis
|
||||
# port: 6379
|
||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
# #pass: example-pass
|
||||
# #prefix: example-prefix
|
||||
# #db: 1
|
||||
|
||||
#redisForTimelines:
|
||||
# host: redis
|
||||
# port: 6379
|
||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
# #pass: example-pass
|
||||
# #prefix: example-prefix
|
||||
# #db: 1
|
||||
|
||||
# ┌───────────────────────────┐
|
||||
#───┘ MeiliSearch configuration └─────────────────────────────
|
||||
|
||||
# You can set scope to local (default value) or global
|
||||
# (include notes from remote).
|
||||
|
||||
#meilisearch:
|
||||
# host: meilisearch
|
||||
# port: 7700
|
||||
# apiKey: ''
|
||||
# ssl: true
|
||||
# index: ''
|
||||
# scope: local
|
||||
|
||||
# ┌───────────────┐
|
||||
#───┘ ID generation └───────────────────────────────────────────
|
||||
|
||||
# You can select the ID generation method.
|
||||
# You don't usually need to change this setting, but you can
|
||||
# change it according to your preferences.
|
||||
|
||||
# Available methods:
|
||||
# aid ... Short, Millisecond accuracy
|
||||
# aidx ... Millisecond accuracy
|
||||
# meid ... Similar to ObjectID, Millisecond accuracy
|
||||
# ulid ... Millisecond accuracy
|
||||
# objectid ... This is left for backward compatibility
|
||||
|
||||
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
|
||||
# ID SETTINGS AFTER THAT!
|
||||
|
||||
id: 'aidx'
|
||||
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Other configuration └─────────────────────────────────────
|
||||
|
||||
# Whether disable HSTS
|
||||
#disableHsts: true
|
||||
|
||||
# Number of worker processes
|
||||
#clusterLimit: 1
|
||||
|
||||
# Job concurrency per worker
|
||||
# deliverJobConcurrency: 128
|
||||
# inboxJobConcurrency: 16
|
||||
|
||||
# Job rate limiter
|
||||
# deliverJobPerSec: 128
|
||||
# inboxJobPerSec: 32
|
||||
|
||||
# Job attempts
|
||||
# deliverJobMaxAttempts: 12
|
||||
# inboxJobMaxAttempts: 8
|
||||
|
||||
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
||||
#outgoingAddressFamily: ipv4
|
||||
|
||||
# Proxy for HTTP/HTTPS
|
||||
#proxy: http://127.0.0.1:3128
|
||||
|
||||
proxyBypassHosts:
|
||||
- api.deepl.com
|
||||
- api-free.deepl.com
|
||||
- www.recaptcha.net
|
||||
- hcaptcha.com
|
||||
- challenges.cloudflare.com
|
||||
|
||||
# Proxy for SMTP/SMTPS
|
||||
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
|
||||
#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
|
||||
#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5
|
||||
|
||||
# Media Proxy
|
||||
#mediaProxy: https://example.com/proxy
|
||||
|
||||
# Proxy remote files (default: true)
|
||||
proxyRemoteFiles: true
|
||||
|
||||
# Sign to ActivityPub GET request (default: true)
|
||||
signToActivityPubGet: true
|
||||
|
||||
# For security reasons, uploading attachments from the intranet is prohibited,
|
||||
# but exceptions can be made from the following settings. Default value is "undefined".
|
||||
# Read changelog to learn more (Improvements of 12.90.0 (2021/09/04)).
|
||||
#allowedPrivateNetworks: [
|
||||
# '127.0.0.1/32'
|
||||
#]
|
||||
|
||||
# Upload or download file size limits (bytes)
|
||||
#maxFileSize: 262144000
|
||||
@@ -30,6 +30,10 @@ url: https://example.tld/
|
||||
# The port that your Misskey server should listen on.
|
||||
port: 3000
|
||||
|
||||
# You can also use UNIX domain socket.
|
||||
# socket: /path/to/misskey.sock
|
||||
# chmodSocket: '777'
|
||||
|
||||
# ┌──────────────────────────┐
|
||||
#───┘ PostgreSQL configuration └────────────────────────────────
|
||||
|
||||
@@ -51,6 +55,23 @@ db:
|
||||
#extra:
|
||||
# ssl: true
|
||||
|
||||
dbReplications: false
|
||||
|
||||
# You can configure any number of replicas here
|
||||
#dbSlaves:
|
||||
# -
|
||||
# host:
|
||||
# port:
|
||||
# db:
|
||||
# user:
|
||||
# pass:
|
||||
# -
|
||||
# host:
|
||||
# port:
|
||||
# db:
|
||||
# user:
|
||||
# pass:
|
||||
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Redis configuration └─────────────────────────────────────
|
||||
|
||||
@@ -61,16 +82,52 @@ redis:
|
||||
#pass: example-pass
|
||||
#prefix: example-prefix
|
||||
#db: 1
|
||||
# You can specify more ioredis options...
|
||||
#username: example-username
|
||||
|
||||
# ┌─────────────────────────────┐
|
||||
#───┘ Elasticsearch configuration └─────────────────────────────
|
||||
|
||||
#elasticsearch:
|
||||
#redisForPubsub:
|
||||
# host: localhost
|
||||
# port: 9200
|
||||
# ssl: false
|
||||
# user:
|
||||
# pass:
|
||||
# port: 6379
|
||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
# #pass: example-pass
|
||||
# #prefix: example-prefix
|
||||
# #db: 1
|
||||
# # You can specify more ioredis options...
|
||||
# #username: example-username
|
||||
|
||||
#redisForJobQueue:
|
||||
# host: localhost
|
||||
# port: 6379
|
||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
# #pass: example-pass
|
||||
# #prefix: example-prefix
|
||||
# #db: 1
|
||||
# # You can specify more ioredis options...
|
||||
# #username: example-username
|
||||
|
||||
#redisForTimelines:
|
||||
# host: localhost
|
||||
# port: 6379
|
||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
# #pass: example-pass
|
||||
# #prefix: example-prefix
|
||||
# #db: 1
|
||||
# # You can specify more ioredis options...
|
||||
# #username: example-username
|
||||
|
||||
# ┌───────────────────────────┐
|
||||
#───┘ MeiliSearch configuration └─────────────────────────────
|
||||
|
||||
# You can set scope to local (default value) or global
|
||||
# (include notes from remote).
|
||||
|
||||
#meilisearch:
|
||||
# host: localhost
|
||||
# port: 7700
|
||||
# apiKey: ''
|
||||
# ssl: true
|
||||
# index: ''
|
||||
# scope: local
|
||||
|
||||
# ┌───────────────┐
|
||||
#───┘ ID generation └───────────────────────────────────────────
|
||||
@@ -81,6 +138,7 @@ redis:
|
||||
|
||||
# Available methods:
|
||||
# aid ... Short, Millisecond accuracy
|
||||
# aidx ... Millisecond accuracy
|
||||
# meid ... Similar to ObjectID, Millisecond accuracy
|
||||
# ulid ... Millisecond accuracy
|
||||
# objectid ... This is left for backward compatibility
|
||||
@@ -88,7 +146,7 @@ redis:
|
||||
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
|
||||
# ID SETTINGS AFTER THAT!
|
||||
|
||||
id: 'aid'
|
||||
id: 'aidx'
|
||||
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Other configuration └─────────────────────────────────────
|
||||
@@ -100,32 +158,36 @@ id: 'aid'
|
||||
#clusterLimit: 1
|
||||
|
||||
# Job concurrency per worker
|
||||
# deliverJobConcurrency: 128
|
||||
# inboxJobConcurrency: 16
|
||||
#deliverJobConcurrency: 128
|
||||
#inboxJobConcurrency: 16
|
||||
#relashionshipJobConcurrency: 16
|
||||
# What's relashionshipJob?:
|
||||
# Follow, unfollow, block and unblock(ings) while following-imports, etc. or account migrations.
|
||||
|
||||
# Job rate limiter
|
||||
# deliverJobPerSec: 128
|
||||
# inboxJobPerSec: 16
|
||||
#deliverJobPerSec: 128
|
||||
#inboxJobPerSec: 32
|
||||
#relashionshipJobPerSec: 64
|
||||
|
||||
# Job attempts
|
||||
# deliverJobMaxAttempts: 12
|
||||
# inboxJobMaxAttempts: 8
|
||||
#deliverJobMaxAttempts: 12
|
||||
#inboxJobMaxAttempts: 8
|
||||
|
||||
# Local address used for outgoing requests
|
||||
#outgoingAddress: 127.0.0.1
|
||||
|
||||
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
||||
#outgoingAddressFamily: ipv4
|
||||
|
||||
# Syslog option
|
||||
#syslog:
|
||||
# host: localhost
|
||||
# port: 514
|
||||
|
||||
# Proxy for HTTP/HTTPS
|
||||
#proxy: http://127.0.0.1:3128
|
||||
|
||||
#proxyBypassHosts: [
|
||||
# 'example.com',
|
||||
# '192.0.2.8'
|
||||
#]
|
||||
proxyBypassHosts:
|
||||
- api.deepl.com
|
||||
- api-free.deepl.com
|
||||
- www.recaptcha.net
|
||||
- hcaptcha.com
|
||||
- challenges.cloudflare.com
|
||||
|
||||
# Proxy for SMTP/SMTPS
|
||||
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
|
||||
@@ -133,17 +195,33 @@ id: 'aid'
|
||||
#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5
|
||||
|
||||
# Media Proxy
|
||||
# Reference Implementation: https://github.com/misskey-dev/media-proxy
|
||||
# * Deliver a common cache between instances
|
||||
# * Perform image compression (on a different server resource than the main process)
|
||||
#mediaProxy: https://example.com/proxy
|
||||
|
||||
# Proxy remote files (default: false)
|
||||
#proxyRemoteFiles: true
|
||||
# Proxy remote files (default: true)
|
||||
# Proxy remote files by this instance or mediaProxy to prevent remote files from running in remote domains.
|
||||
proxyRemoteFiles: true
|
||||
|
||||
# Movie Thumbnail Generation URL
|
||||
# There is no reference implementation.
|
||||
# For example, Misskey will point to the following URL:
|
||||
# https://example.com/thumbnail.webp?thumbnail=1&url=https%3A%2F%2Fstorage.example.com%2Fpath%2Fto%2Fvideo.mp4
|
||||
#videoThumbnailGenerator: https://example.com
|
||||
|
||||
# Sign to ActivityPub GET request (default: true)
|
||||
signToActivityPubGet: true
|
||||
|
||||
# For security reasons, uploading attachments from the intranet is prohibited,
|
||||
# but exceptions can be made from the following settings. Default value is "undefined".
|
||||
# Read changelog to learn more (Improvements of 12.90.0 (2021/09/04)).
|
||||
#allowedPrivateNetworks: [
|
||||
# '127.0.0.1/32'
|
||||
#]
|
||||
|
||||
# Upload or download file size limits (bytes)
|
||||
#maxFileSize: 262144000
|
||||
|
||||
# PID File of master process
|
||||
#pidFile: /tmp/misskey.pid
|
||||
|
||||
1
.devcontainer/Dockerfile
Normal file
1
.devcontainer/Dockerfile
Normal file
@@ -0,0 +1 @@
|
||||
FROM mcr.microsoft.com/devcontainers/javascript-node:0-18
|
||||
29
.devcontainer/devcontainer.json
Normal file
29
.devcontainer/devcontainer.json
Normal file
@@ -0,0 +1,29 @@
|
||||
{
|
||||
"name": "Misskey",
|
||||
"dockerComposeFile": "docker-compose.yml",
|
||||
"service": "app",
|
||||
"workspaceFolder": "/workspace",
|
||||
"features": {
|
||||
"ghcr.io/devcontainers-contrib/features/pnpm:2": {
|
||||
"version": "8.9.2"
|
||||
},
|
||||
"ghcr.io/devcontainers/features/node:1": {
|
||||
"version": "20.10.0"
|
||||
}
|
||||
},
|
||||
"forwardPorts": [3000],
|
||||
"postCreateCommand": "sudo chmod 755 .devcontainer/init.sh && .devcontainer/init.sh",
|
||||
"customizations": {
|
||||
"vscode": {
|
||||
"extensions": [
|
||||
"editorconfig.editorconfig",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"Vue.volar",
|
||||
"Vue.vscode-typescript-vue-plugin",
|
||||
"Orta.vscode-jest",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"mrmlnc.vscode-json5"
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
188
.devcontainer/devcontainer.yml
Normal file
188
.devcontainer/devcontainer.yml
Normal file
@@ -0,0 +1,188 @@
|
||||
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
# Misskey configuration
|
||||
#━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
||||
|
||||
# ┌─────┐
|
||||
#───┘ URL └─────────────────────────────────────────────────────
|
||||
|
||||
# Final accessible URL seen by a user.
|
||||
url: http://127.0.0.1:3000/
|
||||
|
||||
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
|
||||
# URL SETTINGS AFTER THAT!
|
||||
|
||||
# ┌───────────────────────┐
|
||||
#───┘ Port and TLS settings └───────────────────────────────────
|
||||
|
||||
#
|
||||
# Misskey requires a reverse proxy to support HTTPS connections.
|
||||
#
|
||||
# +----- https://example.tld/ ------------+
|
||||
# +------+ |+-------------+ +----------------+|
|
||||
# | User | ---> || Proxy (443) | ---> | Misskey (3000) ||
|
||||
# +------+ |+-------------+ +----------------+|
|
||||
# +---------------------------------------+
|
||||
#
|
||||
# You need to set up a reverse proxy. (e.g. nginx)
|
||||
# An encrypted connection with HTTPS is highly recommended
|
||||
# because tokens may be transferred in GET requests.
|
||||
|
||||
# The port that your Misskey server should listen on.
|
||||
port: 3000
|
||||
|
||||
# ┌──────────────────────────┐
|
||||
#───┘ PostgreSQL configuration └────────────────────────────────
|
||||
|
||||
db:
|
||||
host: db
|
||||
port: 5432
|
||||
|
||||
# Database name
|
||||
db: misskey
|
||||
|
||||
# Auth
|
||||
user: postgres
|
||||
pass: postgres
|
||||
|
||||
# Whether disable Caching queries
|
||||
#disableCache: true
|
||||
|
||||
# Extra Connection options
|
||||
#extra:
|
||||
# ssl: true
|
||||
|
||||
dbReplications: false
|
||||
|
||||
# You can configure any number of replicas here
|
||||
#dbSlaves:
|
||||
# -
|
||||
# host:
|
||||
# port:
|
||||
# db:
|
||||
# user:
|
||||
# pass:
|
||||
# -
|
||||
# host:
|
||||
# port:
|
||||
# db:
|
||||
# user:
|
||||
# pass:
|
||||
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Redis configuration └─────────────────────────────────────
|
||||
|
||||
redis:
|
||||
host: redis
|
||||
port: 6379
|
||||
#family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
#pass: example-pass
|
||||
#prefix: example-prefix
|
||||
#db: 1
|
||||
|
||||
#redisForPubsub:
|
||||
# host: redis
|
||||
# port: 6379
|
||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
# #pass: example-pass
|
||||
# #prefix: example-prefix
|
||||
# #db: 1
|
||||
|
||||
#redisForJobQueue:
|
||||
# host: redis
|
||||
# port: 6379
|
||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
# #pass: example-pass
|
||||
# #prefix: example-prefix
|
||||
# #db: 1
|
||||
|
||||
#redisForTimelines:
|
||||
# host: redis
|
||||
# port: 6379
|
||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
# #pass: example-pass
|
||||
# #prefix: example-prefix
|
||||
# #db: 1
|
||||
|
||||
# ┌───────────────────────────┐
|
||||
#───┘ MeiliSearch configuration └─────────────────────────────
|
||||
|
||||
#meilisearch:
|
||||
# host: meilisearch
|
||||
# port: 7700
|
||||
# apiKey: ''
|
||||
# ssl: true
|
||||
# index: ''
|
||||
|
||||
# ┌───────────────┐
|
||||
#───┘ ID generation └───────────────────────────────────────────
|
||||
|
||||
# You can select the ID generation method.
|
||||
# You don't usually need to change this setting, but you can
|
||||
# change it according to your preferences.
|
||||
|
||||
# Available methods:
|
||||
# aid ... Short, Millisecond accuracy
|
||||
# aidx ... Millisecond accuracy
|
||||
# meid ... Similar to ObjectID, Millisecond accuracy
|
||||
# ulid ... Millisecond accuracy
|
||||
# objectid ... This is left for backward compatibility
|
||||
|
||||
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
|
||||
# ID SETTINGS AFTER THAT!
|
||||
|
||||
id: 'aidx'
|
||||
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Other configuration └─────────────────────────────────────
|
||||
|
||||
# Whether disable HSTS
|
||||
#disableHsts: true
|
||||
|
||||
# Number of worker processes
|
||||
#clusterLimit: 1
|
||||
|
||||
# Job concurrency per worker
|
||||
# deliverJobConcurrency: 128
|
||||
# inboxJobConcurrency: 16
|
||||
|
||||
# Job rate limiter
|
||||
# deliverJobPerSec: 128
|
||||
# inboxJobPerSec: 32
|
||||
|
||||
# Job attempts
|
||||
# deliverJobMaxAttempts: 12
|
||||
# inboxJobMaxAttempts: 8
|
||||
|
||||
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
||||
#outgoingAddressFamily: ipv4
|
||||
|
||||
# Proxy for HTTP/HTTPS
|
||||
#proxy: http://127.0.0.1:3128
|
||||
|
||||
proxyBypassHosts:
|
||||
- api.deepl.com
|
||||
- api-free.deepl.com
|
||||
- www.recaptcha.net
|
||||
- hcaptcha.com
|
||||
- challenges.cloudflare.com
|
||||
|
||||
# Proxy for SMTP/SMTPS
|
||||
#proxySmtp: http://127.0.0.1:3128 # use HTTP/1.1 CONNECT
|
||||
#proxySmtp: socks4://127.0.0.1:1080 # use SOCKS4
|
||||
#proxySmtp: socks5://127.0.0.1:1080 # use SOCKS5
|
||||
|
||||
# Media Proxy
|
||||
#mediaProxy: https://example.com/proxy
|
||||
|
||||
# Proxy remote files (default: true)
|
||||
proxyRemoteFiles: true
|
||||
|
||||
# Sign to ActivityPub GET request (default: true)
|
||||
signToActivityPubGet: true
|
||||
|
||||
allowedPrivateNetworks: [
|
||||
'127.0.0.1/32'
|
||||
]
|
||||
|
||||
# Upload or download file size limits (bytes)
|
||||
#maxFileSize: 262144000
|
||||
53
.devcontainer/docker-compose.yml
Normal file
53
.devcontainer/docker-compose.yml
Normal file
@@ -0,0 +1,53 @@
|
||||
version: '3.8'
|
||||
|
||||
services:
|
||||
app:
|
||||
build:
|
||||
context: .
|
||||
dockerfile: Dockerfile
|
||||
|
||||
volumes:
|
||||
- ../:/workspace:cached
|
||||
|
||||
command: sleep infinity
|
||||
|
||||
networks:
|
||||
- internal_network
|
||||
- external_network
|
||||
|
||||
redis:
|
||||
restart: unless-stopped
|
||||
image: redis:7-alpine
|
||||
networks:
|
||||
- internal_network
|
||||
volumes:
|
||||
- redis-data:/data
|
||||
healthcheck:
|
||||
test: "redis-cli ping"
|
||||
interval: 5s
|
||||
retries: 20
|
||||
|
||||
db:
|
||||
restart: unless-stopped
|
||||
image: postgres:15-alpine
|
||||
networks:
|
||||
- internal_network
|
||||
environment:
|
||||
POSTGRES_USER: postgres
|
||||
POSTGRES_PASSWORD: postgres
|
||||
POSTGRES_DB: misskey
|
||||
volumes:
|
||||
- postgres-data:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
|
||||
interval: 5s
|
||||
retries: 20
|
||||
|
||||
volumes:
|
||||
postgres-data:
|
||||
redis-data:
|
||||
|
||||
networks:
|
||||
internal_network:
|
||||
internal: true
|
||||
external_network:
|
||||
11
.devcontainer/init.sh
Executable file
11
.devcontainer/init.sh
Executable file
@@ -0,0 +1,11 @@
|
||||
#!/bin/bash
|
||||
|
||||
set -xe
|
||||
|
||||
sudo chown -R node /workspace
|
||||
git submodule update --init
|
||||
pnpm config set store-dir /home/node/.local/share/pnpm/store
|
||||
pnpm install --frozen-lockfile
|
||||
cp .devcontainer/devcontainer.yml .config/default.yml
|
||||
pnpm build
|
||||
pnpm migrate
|
||||
@@ -8,7 +8,6 @@ build/
|
||||
built/
|
||||
db/
|
||||
docker-compose.yml
|
||||
elasticsearch/
|
||||
node_modules/
|
||||
packages/*/node_modules
|
||||
redis/
|
||||
@@ -16,9 +15,17 @@ files/
|
||||
misskey-assets/
|
||||
fluent-emojis/
|
||||
.pnp.*
|
||||
|
||||
# .yarn関連
|
||||
.yarn/*
|
||||
!.yarn/patches
|
||||
!.yarn/plugins
|
||||
!.yarn/releases
|
||||
!.yarn/sdks
|
||||
!.yarn/versions
|
||||
|
||||
.pnpm-store
|
||||
|
||||
.idea/
|
||||
packages/*/.vscode/
|
||||
packages/backend/test/docker-compose.yml
|
||||
|
||||
3
.dockleignore
Normal file
3
.dockleignore
Normal file
@@ -0,0 +1,3 @@
|
||||
DKL-DI-0005
|
||||
DKL-DI-0006
|
||||
DKL-LI-0003
|
||||
@@ -5,6 +5,11 @@ indent_style = tab
|
||||
indent_size = 2
|
||||
charset = utf-8
|
||||
insert_final_newline = true
|
||||
end_of_line = lf
|
||||
trim_trailing_whitespace = true
|
||||
|
||||
[*.yml]
|
||||
[*.md]
|
||||
trim_trailing_whitespace = false
|
||||
|
||||
[*.{yml,yaml}]
|
||||
indent_style = space
|
||||
|
||||
1
.gitattributes
vendored
1
.gitattributes
vendored
@@ -5,3 +5,4 @@
|
||||
*.glb -diff -text
|
||||
*.blend -diff -text
|
||||
*.afdesign -diff -text
|
||||
* text=auto eol=lf
|
||||
|
||||
43
.github/ISSUE_TEMPLATE/01_bug-report.md
vendored
43
.github/ISSUE_TEMPLATE/01_bug-report.md
vendored
@@ -1,43 +0,0 @@
|
||||
---
|
||||
name: 🐛 Bug Report
|
||||
about: Create a report to help us improve
|
||||
title: ''
|
||||
labels: ⚠️bug?
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
<!--
|
||||
Thanks for reporting!
|
||||
First, in order to avoid duplicate Issues, please search to see if the problem you found has already been reported.
|
||||
Also, If you are NOT owner/admin of server, PLEASE DONT REPORT SERVER SPECIFIC ISSUES TO HERE! (e.g. feature XXX is not working in misskey.example) Please try with another misskey servers, and if your issue is only reproducible with specific server, contact your server's owner/admin first.
|
||||
-->
|
||||
|
||||
## 💡 Summary
|
||||
|
||||
<!-- Tell us what the bug is -->
|
||||
|
||||
## 🥰 Expected Behavior
|
||||
|
||||
<!--- Tell us what should happen -->
|
||||
|
||||
## 🤬 Actual Behavior
|
||||
|
||||
<!--
|
||||
Tell us what happens instead of the expected behavior.
|
||||
Please include errors from the developer console and/or server log files if you have access to them.
|
||||
-->
|
||||
|
||||
## 📝 Steps to Reproduce
|
||||
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
|
||||
## 📌 Environment
|
||||
|
||||
<!-- Tell us where on the platform it happens -->
|
||||
|
||||
Misskey version:
|
||||
Your OS:
|
||||
Your browser:
|
||||
97
.github/ISSUE_TEMPLATE/01_bug-report.yml
vendored
Normal file
97
.github/ISSUE_TEMPLATE/01_bug-report.yml
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
name: 🐛 Bug Report
|
||||
description: Create a report to help us improve
|
||||
labels: ["⚠️bug?"]
|
||||
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for reporting!
|
||||
First, in order to avoid duplicate Issues, please search to see if the problem you found has already been reported.
|
||||
Also, If you are NOT owner/admin of server, PLEASE DONT REPORT SERVER SPECIFIC ISSUES TO HERE! (e.g. feature XXX is not working in misskey.example) Please try with another misskey servers, and if your issue is only reproducible with specific server, contact your server's owner/admin first.
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: 💡 Summary
|
||||
description: Tell us what the bug is
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: 🥰 Expected Behavior
|
||||
description: Tell us what should happen
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: 🤬 Actual Behavior
|
||||
description: |
|
||||
Tell us what happens instead of the expected behavior.
|
||||
Please include errors from the developer console and/or server log files if you have access to them.
|
||||
validations:
|
||||
required: true
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: 📝 Steps to Reproduce
|
||||
placeholder: |
|
||||
1.
|
||||
2.
|
||||
3.
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: 💻 Frontend Environment
|
||||
description: |
|
||||
Tell us where on the platform it happens
|
||||
DO NOT WRITE "latest". Please provide the specific version.
|
||||
|
||||
Examples:
|
||||
* Model and OS of the device(s): MacBook Pro (14inch, 2021), macOS Ventura 13.4
|
||||
* Browser: Chrome 113.0.5672.126
|
||||
* Server URL: misskey.io
|
||||
* Misskey: 13.x.x
|
||||
value: |
|
||||
* Model and OS of the device(s):
|
||||
* Browser:
|
||||
* Server URL:
|
||||
* Misskey:
|
||||
render: markdown
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: 🛰 Backend Environment (for server admin)
|
||||
description: |
|
||||
Tell us where on the platform it happens
|
||||
DO NOT WRITE "latest". Please provide the specific version.
|
||||
If you are using a managed service, put that after the version.
|
||||
|
||||
Examples:
|
||||
* Installation Method or Hosting Service: docker compose, k8s/docker, systemd, "Misskey install shell script", development environment
|
||||
* Misskey: 13.x.x
|
||||
* Node: 20.x.x
|
||||
* PostgreSQL: 15.x.x
|
||||
* Redis: 7.x.x
|
||||
* OS and Architecture: Ubuntu 22.04.2 LTS aarch64
|
||||
value: |
|
||||
* Installation Method or Hosting Service:
|
||||
* Misskey:
|
||||
* Node:
|
||||
* PostgreSQL:
|
||||
* Redis:
|
||||
* OS and Architecture:
|
||||
render: markdown
|
||||
validations:
|
||||
required: false
|
||||
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Do you want to address this bug yourself?
|
||||
options:
|
||||
- label: Yes, I will patch the bug myself and send a pull request
|
||||
12
.github/ISSUE_TEMPLATE/02_feature-request.md
vendored
12
.github/ISSUE_TEMPLATE/02_feature-request.md
vendored
@@ -1,12 +0,0 @@
|
||||
---
|
||||
name: ✨ Feature Request
|
||||
about: Suggest an idea for this project
|
||||
title: ''
|
||||
labels: ✨Feature
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
## Summary
|
||||
|
||||
<!-- Tell us what the suggestion is -->
|
||||
22
.github/ISSUE_TEMPLATE/02_feature-request.yml
vendored
Normal file
22
.github/ISSUE_TEMPLATE/02_feature-request.yml
vendored
Normal file
@@ -0,0 +1,22 @@
|
||||
name: ✨ Feature Request
|
||||
description: Suggest an idea for this project
|
||||
labels: ["✨Feature"]
|
||||
|
||||
body:
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Summary
|
||||
description: Tell us what the suggestion is
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Purpose
|
||||
description: Describe the specific problem or need you think this feature will solve, and who it will help.
|
||||
validations:
|
||||
required: true
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Do you want to implement this feature yourself?
|
||||
options:
|
||||
- label: Yes, I will implement this by myself and send a pull request
|
||||
3
.github/ISSUE_TEMPLATE/config.yml
vendored
3
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,7 +1,4 @@
|
||||
contact_links:
|
||||
- name: 👪 Misskey Forum
|
||||
url: https://forum.misskey.io/
|
||||
about: Ask questions and share knowledge
|
||||
- name: 💬 Misskey official Discord
|
||||
url: https://discord.gg/Wp8gVStHW3
|
||||
about: Chat freely about Misskey
|
||||
|
||||
@@ -4,14 +4,20 @@ Thank you for your PR! Before creating a PR, please check the contribution guide
|
||||
https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md
|
||||
-->
|
||||
|
||||
# What
|
||||
## What
|
||||
<!-- このPRで何をしたのか? どう変わるのか? -->
|
||||
<!-- What did you do with this PR? How will it change things? -->
|
||||
|
||||
# Why
|
||||
## Why
|
||||
<!-- なぜそうするのか? どういう意図なのか? 何が困っているのか? -->
|
||||
<!-- Why do you do it? What are your intentions? What is the problem? -->
|
||||
|
||||
# Additional info (optional)
|
||||
## Additional info (optional)
|
||||
<!-- テスト観点など -->
|
||||
<!-- Test perspective, etc -->
|
||||
|
||||
## Checklist
|
||||
- [ ] Read the [contribution guide](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)
|
||||
- [ ] Test working in a local environment
|
||||
- [ ] (If needed) Update CHANGELOG.md
|
||||
- [ ] (If possible) Add tests
|
||||
23
.github/PULL_REQUEST_TEMPLATE/02_enhance.md
vendored
Normal file
23
.github/PULL_REQUEST_TEMPLATE/02_enhance.md
vendored
Normal file
@@ -0,0 +1,23 @@
|
||||
<!-- ℹ お読みください / README
|
||||
PRありがとうございます! PRを作成する前に、コントリビューションガイドをご確認ください:
|
||||
Thank you for your PR! Before creating a PR, please check the contribution guide:
|
||||
https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md
|
||||
-->
|
||||
|
||||
## What
|
||||
<!-- このPRで何をしたのか? どう変わるのか? -->
|
||||
<!-- What did you do with this PR? How will it change things? -->
|
||||
|
||||
## Why
|
||||
<!-- なぜそうするのか? どういう意図なのか? 何が困っているのか? -->
|
||||
<!-- Why do you do it? What are your intentions? What is the problem? -->
|
||||
|
||||
## Additional info (optional)
|
||||
<!-- テスト観点など -->
|
||||
<!-- Test perspective, etc -->
|
||||
|
||||
## Checklist
|
||||
- [ ] Read the [contribution guide](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)
|
||||
- [ ] Test working in a local environment
|
||||
- [ ] (If needed) Update CHANGELOG.md
|
||||
- [ ] (If possible) Add tests
|
||||
20
.github/PULL_REQUEST_TEMPLATE/03_release.md
vendored
Normal file
20
.github/PULL_REQUEST_TEMPLATE/03_release.md
vendored
Normal file
@@ -0,0 +1,20 @@
|
||||
## Summary
|
||||
This is a release PR.
|
||||
|
||||
For more information on the release instructions, please see:
|
||||
https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md#release
|
||||
|
||||
## For reviewers
|
||||
- CHANGELOGに抜け漏れは無いか
|
||||
- バージョンの上げ方は適切か
|
||||
- 他にこのリリースに含めなければならない変更は無いか
|
||||
- 全体的な変更内容を俯瞰し問題は無いか
|
||||
- レビューされていないコミットがある場合は、それが問題ないか
|
||||
- 最終的な動作確認を行い問題は無いか
|
||||
|
||||
などを確認し、リリースする準備が整っていると思われる場合は approve してください。
|
||||
|
||||
## Checklist
|
||||
- [ ] package.jsonのバージョンが正しく更新されている
|
||||
- [ ] CHANGELOGが過不足無く更新されている
|
||||
- [ ] CIが全て通っている
|
||||
48
.github/dependabot.yml
vendored
48
.github/dependabot.yml
vendored
@@ -5,18 +5,44 @@
|
||||
|
||||
version: 2
|
||||
updates:
|
||||
- package-ecosystem: github-actions
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 100
|
||||
|
||||
# Add only the root, not each workspace item
|
||||
# https://github.com/dependabot/dependabot-core/issues/4993#issuecomment-1289133027
|
||||
- package-ecosystem: npm
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 0
|
||||
- package-ecosystem: npm
|
||||
directory: "/packages/backend"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 0
|
||||
- package-ecosystem: npm
|
||||
directory: "/packages/frontend"
|
||||
schedule:
|
||||
interval: daily
|
||||
open-pull-requests-limit: 0
|
||||
open-pull-requests-limit: 10
|
||||
# List dependencies required to be updated together, sharing the same version numbers.
|
||||
# Those who simply have the common owner (e.g. @fastify) don't need to be listed.
|
||||
groups:
|
||||
aws-sdk:
|
||||
patterns:
|
||||
- "@aws-sdk/*"
|
||||
bull-board:
|
||||
patterns:
|
||||
- "@bull-board/*"
|
||||
nestjs:
|
||||
patterns:
|
||||
- "@nestjs/*"
|
||||
slacc:
|
||||
patterns:
|
||||
- "slacc-*"
|
||||
storybook:
|
||||
patterns:
|
||||
- "storybook*"
|
||||
- "@storybook/*"
|
||||
swc-core:
|
||||
patterns:
|
||||
- "@swc/core*"
|
||||
typescript-eslint:
|
||||
patterns:
|
||||
- "@typescript-eslint/*"
|
||||
tensorflow:
|
||||
patterns:
|
||||
- "@tensorflow/*"
|
||||
|
||||
40
.github/labeler.yml
vendored
40
.github/labeler.yml
vendored
@@ -1,12 +1,34 @@
|
||||
'⚙️Server':
|
||||
- packages/backend/**/*
|
||||
'packages/backend':
|
||||
- any:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: ['packages/backend/**/*']
|
||||
|
||||
'🖥️Client':
|
||||
- packages/frontend/**/*
|
||||
'packages/backend:test':
|
||||
- any:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: ['packages/backend/test/**/*']
|
||||
|
||||
'🧪Test':
|
||||
- cypress/**/*
|
||||
- packages/backend/test/**/*
|
||||
'packages/frontend':
|
||||
- any:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: ['packages/frontend/**/*']
|
||||
|
||||
'‼️ wrong locales':
|
||||
- any: ['locales/*.yml', '!locales/ja-JP.yml']
|
||||
'packages/frontend:test':
|
||||
- any:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: ['cypress/**/*']
|
||||
|
||||
'packages/sw':
|
||||
- any:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: ['packages/sw/**/*']
|
||||
|
||||
'packages/misskey-js':
|
||||
- any:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: ['packages/misskey-js/**/*']
|
||||
|
||||
'packages/misskey-js:test':
|
||||
- any:
|
||||
- changed-files:
|
||||
- any-glob-to-any-file: ['packages/misskey-js/test/**/*', 'packages/misskey-js/test-d/**/*']
|
||||
|
||||
2
.github/misskey/test.yml
vendored
2
.github/misskey/test.yml
vendored
@@ -12,4 +12,4 @@ db:
|
||||
redis:
|
||||
host: 127.0.0.1
|
||||
port: 56312
|
||||
id: aid
|
||||
id: aidx
|
||||
|
||||
24
.github/pull_request_template.md
vendored
Normal file
24
.github/pull_request_template.md
vendored
Normal file
@@ -0,0 +1,24 @@
|
||||
<!-- ℹ お読みください / README
|
||||
PRありがとうございます! PRを作成する前に、コントリビューションガイドをご確認ください:
|
||||
Thank you for your PR! Before creating a PR, please check the contribution guide:
|
||||
https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md
|
||||
-->
|
||||
|
||||
## What
|
||||
<!-- このPRで何をしたのか? どう変わるのか? -->
|
||||
<!-- What did you do with this PR? How will it change things? -->
|
||||
|
||||
## Why
|
||||
<!-- なぜそうするのか? どういう意図なのか? 何が困っているのか? -->
|
||||
<!-- Why do you do it? What are your intentions? What is the problem? -->
|
||||
|
||||
## Additional info (optional)
|
||||
<!-- テスト観点など -->
|
||||
<!-- Test perspective, etc -->
|
||||
|
||||
## Checklist
|
||||
- [ ] Read the [contribution guide](https://github.com/misskey-dev/misskey/blob/develop/CONTRIBUTING.md)
|
||||
- [ ] Test working in a local environment
|
||||
- [ ] (If needed) Add story of storybook
|
||||
- [ ] (If needed) Update CHANGELOG.md
|
||||
- [ ] (If possible) Add tests
|
||||
42
.github/workflows/api-misskey-js.yml
vendored
Normal file
42
.github/workflows/api-misskey-js.yml
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
name: API report (misskey.js)
|
||||
|
||||
on:
|
||||
push:
|
||||
paths:
|
||||
- packages/misskey-js/**
|
||||
pull_request:
|
||||
paths:
|
||||
- packages/misskey-js/**
|
||||
|
||||
jobs:
|
||||
report:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- run: corepack enable
|
||||
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm i --frozen-lockfile
|
||||
|
||||
- name: Build
|
||||
run: pnpm --filter misskey-js build
|
||||
|
||||
- name: Check files
|
||||
run: ls packages/misskey-js/built
|
||||
|
||||
- name: API report
|
||||
run: pnpm --filter misskey-js api-prod
|
||||
|
||||
- name: Show report
|
||||
if: always()
|
||||
run: cat packages/misskey-js/temp/misskey-js.api.md
|
||||
43
.github/workflows/changelog-check.yml
vendored
Normal file
43
.github/workflows/changelog-check.yml
vendored
Normal file
@@ -0,0 +1,43 @@
|
||||
name: Check the description in CHANGELOG.md
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
|
||||
jobs:
|
||||
check-changelog:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Checkout head
|
||||
uses: actions/checkout@v4.1.1
|
||||
- name: Setup Node.js
|
||||
uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
|
||||
- name: Checkout base
|
||||
run: |
|
||||
mkdir _base
|
||||
cp -r .git _base/.git
|
||||
cd _base
|
||||
git fetch --depth 1 origin ${{ github.base_ref }}
|
||||
git checkout origin/${{ github.base_ref }} CHANGELOG.md
|
||||
|
||||
- name: Copy to Checker directory for CHANGELOG-base.md
|
||||
run: cp _base/CHANGELOG.md scripts/changelog-checker/CHANGELOG-base.md
|
||||
- name: Copy to Checker directory for CHANGELOG-head.md
|
||||
run: cp CHANGELOG.md scripts/changelog-checker/CHANGELOG-head.md
|
||||
- name: diff
|
||||
continue-on-error: true
|
||||
run: diff -u CHANGELOG-base.md CHANGELOG-head.md
|
||||
working-directory: scripts/changelog-checker
|
||||
|
||||
- name: Setup Checker
|
||||
run: npm install
|
||||
working-directory: scripts/changelog-checker
|
||||
- name: Run Checker
|
||||
run: npm run run
|
||||
working-directory: scripts/changelog-checker
|
||||
127
.github/workflows/check-misskey-js-autogen.yml
vendored
Normal file
127
.github/workflows/check-misskey-js-autogen.yml
vendored
Normal file
@@ -0,0 +1,127 @@
|
||||
name: Check Misskey JS autogen
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
paths:
|
||||
- packages/backend/**
|
||||
|
||||
jobs:
|
||||
check-misskey-js-autogen:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
env:
|
||||
api_json_names: "api-base.json api-head.json"
|
||||
|
||||
steps:
|
||||
- name: checkout
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
submodules: true
|
||||
|
||||
- name: setup pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
|
||||
- name: setup node
|
||||
id: setup-node
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: pnpm
|
||||
|
||||
- name: install dependencies
|
||||
run: pnpm i --frozen-lockfile
|
||||
|
||||
- name: wait get-api-diff
|
||||
uses: lewagon/wait-on-check-action@v1.3.3
|
||||
with:
|
||||
ref: ${{ github.event.pull_request.head.sha }}
|
||||
check-regexp: get-from-misskey .+
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
wait-interval: 30
|
||||
|
||||
- name: Download artifact
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const fs = require('fs');
|
||||
|
||||
const workflows = await github.rest.actions.listWorkflowRunsForRepo({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
head_sha: `${{ github.event.pull_request.head.sha }}`
|
||||
}).then(x => x.data.workflow_runs);
|
||||
|
||||
console.log(workflows.map(x => ({name: x.name, title: x.display_title})));
|
||||
|
||||
const run_id = workflows.find(x => x.name.includes("Get api.json from Misskey")).id;
|
||||
|
||||
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
run_id: run_id,
|
||||
});
|
||||
|
||||
let matchArtifacts = allArtifacts.data.artifacts.filter((artifact) => {
|
||||
return artifact.name.startsWith("api-artifact-") || artifact.name == "api-artifact"
|
||||
});
|
||||
|
||||
await Promise.all(matchArtifacts.map(async (artifact) => {
|
||||
let download = await github.rest.actions.downloadArtifact({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
artifact_id: artifact.id,
|
||||
archive_format: 'zip',
|
||||
});
|
||||
await fs.promises.writeFile(`${process.env.GITHUB_WORKSPACE}/${artifact.name}.zip`, Buffer.from(download.data));
|
||||
}));
|
||||
|
||||
- name: unzip artifacts
|
||||
run: |-
|
||||
find . -mindepth 1 -maxdepth 1 -type f -name '*.zip' -exec unzip {} -d . ';'
|
||||
ls -la
|
||||
|
||||
- name: build autogen
|
||||
run: |-
|
||||
for name in $(echo $api_json_names)
|
||||
do
|
||||
checksum=$(mktemp)
|
||||
mv $name packages/misskey-js/generator/api.json
|
||||
|
||||
cd packages/misskey-js/generator
|
||||
pnpm run generate
|
||||
find built -type f -exec sh -c 'echo $(sed -E "s/^\s+\*\s+generatedAt:.+$//" {} | sha256sum | cut -d" " -f 1) {}' \; > $checksum
|
||||
cd ../../..
|
||||
cp $checksum ${name}_checksum
|
||||
done
|
||||
|
||||
- name: check update for type definitions
|
||||
run: diff $(echo -n ${api_json_names} | awk -v RS=" " '{ printf "%s_checksum ", $0 }')
|
||||
|
||||
- name: send message
|
||||
if: failure()
|
||||
uses: thollander/actions-comment-pull-request@v2
|
||||
with:
|
||||
comment_tag: check-misskey-js-autogen
|
||||
message: |-
|
||||
Thank you for sending us a great Pull Request! 👍
|
||||
Please regenerate misskey-js type definitions! 🙏
|
||||
|
||||
example:
|
||||
```sh
|
||||
pnpm run build-misskey-js-with-types
|
||||
```
|
||||
|
||||
- name: send message
|
||||
if: success()
|
||||
uses: thollander/actions-comment-pull-request@v2
|
||||
with:
|
||||
comment_tag: check-misskey-js-autogen
|
||||
mode: delete
|
||||
message: "Thank you!"
|
||||
18
.github/workflows/check_copyright_year.yml
vendored
Normal file
18
.github/workflows/check_copyright_year.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
||||
name: Check copyright year
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
|
||||
jobs:
|
||||
check_copyright_year:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- run: |
|
||||
if [ "$(grep Copyright COPYING | sed -e 's/.*2014-\([0-9]*\) .*/\1/g')" -ne "$(date +%Y)" ]; then
|
||||
echo "Please change copyright year!"
|
||||
exit 1
|
||||
fi
|
||||
20
.github/workflows/docker-develop.yml
vendored
20
.github/workflows/docker-develop.yml
vendored
@@ -10,24 +10,34 @@ jobs:
|
||||
push_to_registry:
|
||||
name: Push Docker image to Docker Hub
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
if: github.repository == 'misskey-dev/misskey'
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4.1.1
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.0.0
|
||||
with:
|
||||
platforms: linux/amd64,linux/arm64
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: misskey/misskey
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build and Push to Docker Hub
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
builder: ${{ steps.buildx.outputs.name }}
|
||||
context: .
|
||||
push: true
|
||||
platforms: ${{ steps.buildx.outputs.platforms }}
|
||||
provenance: false
|
||||
tags: misskey/misskey:develop
|
||||
labels: develop
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
|
||||
18
.github/workflows/docker.yml
vendored
18
.github/workflows/docker.yml
vendored
@@ -12,10 +12,15 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Check out the repo
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4.1.1
|
||||
- name: Set up Docker Buildx
|
||||
id: buildx
|
||||
uses: docker/setup-buildx-action@v3.0.0
|
||||
with:
|
||||
platforms: linux/amd64,linux/arm64
|
||||
- name: Docker meta
|
||||
id: meta
|
||||
uses: docker/metadata-action@v3
|
||||
uses: docker/metadata-action@v5
|
||||
with:
|
||||
images: misskey/misskey
|
||||
tags: |
|
||||
@@ -26,14 +31,19 @@ jobs:
|
||||
type=semver,pattern={{major}}.{{minor}}
|
||||
type=semver,pattern={{major}}
|
||||
- name: Log in to Docker Hub
|
||||
uses: docker/login-action@v1
|
||||
uses: docker/login-action@v3
|
||||
with:
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build and Push to Docker Hub
|
||||
uses: docker/build-push-action@v2
|
||||
uses: docker/build-push-action@v5
|
||||
with:
|
||||
builder: ${{ steps.buildx.outputs.name }}
|
||||
context: .
|
||||
push: true
|
||||
platforms: ${{ steps.buildx.outputs.platforms }}
|
||||
provenance: false
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
labels: ${{ steps.meta.outputs.labels }}
|
||||
cache-from: type=gha
|
||||
cache-to: type=gha,mode=max
|
||||
|
||||
30
.github/workflows/dockle.yml
vendored
Normal file
30
.github/workflows/dockle.yml
vendored
Normal file
@@ -0,0 +1,30 @@
|
||||
---
|
||||
name: Dockle
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
dockle:
|
||||
runs-on: ubuntu-latest
|
||||
env:
|
||||
DOCKER_CONTENT_TRUST: 1
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
- run: |
|
||||
curl -L -o dockle.deb "https://github.com/goodwithtech/dockle/releases/download/v0.4.10/dockle_0.4.10_Linux-64bit.deb"
|
||||
sudo dpkg -i dockle.deb
|
||||
- run: |
|
||||
cp .config/docker_example.env .config/docker.env
|
||||
cp ./docker-compose_example.yml ./docker-compose.yml
|
||||
- run: |
|
||||
docker compose up -d web
|
||||
docker tag "$(docker compose images web | awk 'OFS=":" {print $4}' | tail -n +2)" misskey-web:latest
|
||||
- run: |
|
||||
cmd="dockle --exit-code 1 misskey-web:latest ${image_name}"
|
||||
echo "> ${cmd}"
|
||||
eval "${cmd}"
|
||||
73
.github/workflows/get-api-diff.yml
vendored
Normal file
73
.github/workflows/get-api-diff.yml
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
# this name is used in report-api-diff.yml so be careful when change name
|
||||
name: Get api.json from Misskey
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
paths:
|
||||
- packages/backend/**
|
||||
- .github/workflows/get-api-diff.yml
|
||||
|
||||
jobs:
|
||||
get-from-misskey:
|
||||
runs-on: ubuntu-latest
|
||||
permissions:
|
||||
contents: read
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [20.10.0]
|
||||
api-json-name: [api-base.json, api-head.json]
|
||||
include:
|
||||
- api-json-name: api-base.json
|
||||
ref: ${{ github.base_ref }}
|
||||
- api-json-name: api-head.json
|
||||
ref: refs/pull/${{ github.event.number }}/merge
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
ref: ${{ matrix.ref }}
|
||||
submodules: true
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
run_install: false
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'pnpm'
|
||||
- run: corepack enable
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- name: Check pnpm-lock.yaml
|
||||
run: git diff --exit-code pnpm-lock.yaml
|
||||
- name: Copy Configure
|
||||
run: cp .config/example.yml .config/default.yml
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
- name: Generate API JSON
|
||||
run: pnpm --filter backend generate-api-json
|
||||
- name: Copy API.json
|
||||
run: cp packages/backend/built/api.json ${{ matrix.api-json-name }}
|
||||
- name: Upload Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: api-artifact-${{ matrix.api-json-name }}
|
||||
path: ${{ matrix.api-json-name }}
|
||||
|
||||
save-pr-number:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Save PR number
|
||||
env:
|
||||
PR_NUMBER: ${{ github.event.number }}
|
||||
run: |
|
||||
echo "$PR_NUMBER" > ./pr_number
|
||||
- uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: api-artifact-pr-number
|
||||
path: pr_number
|
||||
2
.github/workflows/labeler.yml
vendored
2
.github/workflows/labeler.yml
vendored
@@ -11,6 +11,6 @@ jobs:
|
||||
pull-requests: write
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/labeler@v4
|
||||
- uses: actions/labeler@v5
|
||||
with:
|
||||
repo-token: "${{ secrets.GITHUB_TOKEN }}"
|
||||
|
||||
143
.github/workflows/lint.yml
vendored
143
.github/workflows/lint.yml
vendored
@@ -1,46 +1,97 @@
|
||||
name: Lint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
yarn_install:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
- uses: actions/setup-node@v3.2.0
|
||||
with:
|
||||
node-version: 18.x
|
||||
cache: 'yarn'
|
||||
- run: corepack enable
|
||||
- run: yarn install --immutable
|
||||
|
||||
lint:
|
||||
needs: [yarn_install]
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
strategy:
|
||||
matrix:
|
||||
workspace:
|
||||
- backend
|
||||
- frontend
|
||||
- sw
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
- uses: actions/setup-node@v3.2.0
|
||||
with:
|
||||
node-version: 18.x
|
||||
cache: 'yarn'
|
||||
- run: corepack enable
|
||||
- run: yarn install --immutable
|
||||
- run: yarn workspace ${{ matrix.workspace }} run lint
|
||||
name: Lint
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
paths:
|
||||
- packages/backend/**
|
||||
- packages/frontend/**
|
||||
- packages/sw/**
|
||||
- packages/misskey-js/**
|
||||
- packages/shared/.eslintrc.js
|
||||
pull_request:
|
||||
paths:
|
||||
- packages/backend/**
|
||||
- packages/frontend/**
|
||||
- packages/sw/**
|
||||
- packages/misskey-js/**
|
||||
- packages/shared/.eslintrc.js
|
||||
|
||||
jobs:
|
||||
pnpm_install:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
run_install: false
|
||||
- uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
- run: corepack enable
|
||||
- run: pnpm i --frozen-lockfile
|
||||
|
||||
lint:
|
||||
needs: [pnpm_install]
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
strategy:
|
||||
matrix:
|
||||
workspace:
|
||||
- backend
|
||||
- frontend
|
||||
- sw
|
||||
- misskey-js
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7
|
||||
run_install: false
|
||||
- uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
- run: corepack enable
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- run: pnpm --filter ${{ matrix.workspace }} run eslint
|
||||
|
||||
typecheck:
|
||||
needs: [pnpm_install]
|
||||
runs-on: ubuntu-latest
|
||||
continue-on-error: true
|
||||
strategy:
|
||||
matrix:
|
||||
workspace:
|
||||
- backend
|
||||
- misskey-js
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
fetch-depth: 0
|
||||
submodules: true
|
||||
- uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7
|
||||
run_install: false
|
||||
- uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version-file: '.node-version'
|
||||
cache: 'pnpm'
|
||||
- run: corepack enable
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- run: pnpm --filter misskey-js run build
|
||||
if: ${{ matrix.workspace == 'backend' }}
|
||||
- run: pnpm --filter misskey-reversi run build
|
||||
if: ${{ matrix.workspace == 'backend' }}
|
||||
- run: pnpm --filter ${{ matrix.workspace }} run typecheck
|
||||
|
||||
4
.github/workflows/ok-to-test.yml
vendored
4
.github/workflows/ok-to-test.yml
vendored
@@ -17,13 +17,13 @@ jobs:
|
||||
# See app.yml for an example app manifest
|
||||
- name: Generate token
|
||||
id: generate_token
|
||||
uses: tibdex/github-app-token@v1
|
||||
uses: tibdex/github-app-token@v2
|
||||
with:
|
||||
app_id: ${{ secrets.DEPLOYBOT_APP_ID }}
|
||||
private_key: ${{ secrets.DEPLOYBOT_PRIVATE_KEY }}
|
||||
|
||||
- name: Slash Command Dispatch
|
||||
uses: peter-evans/slash-command-dispatch@v1
|
||||
uses: peter-evans/slash-command-dispatch@v3
|
||||
env:
|
||||
TOKEN: ${{ steps.generate_token.outputs.token }}
|
||||
with:
|
||||
|
||||
11
.github/workflows/pr-preview-deploy.yml
vendored
11
.github/workflows/pr-preview-deploy.yml
vendored
@@ -1,7 +1,5 @@
|
||||
# Run secret-dependent integration tests only after /deploy approval
|
||||
on:
|
||||
pull_request:
|
||||
types: [opened, reopened, synchronize]
|
||||
repository_dispatch:
|
||||
types: [deploy-command]
|
||||
|
||||
@@ -12,11 +10,10 @@ jobs:
|
||||
deploy-preview-environment:
|
||||
runs-on: ubuntu-latest
|
||||
if:
|
||||
github.event_name == 'repository_dispatch' &&
|
||||
github.event.client_payload.slash_command.sha != '' &&
|
||||
contains(github.event.client_payload.pull_request.head.sha, github.event.client_payload.slash_command.sha)
|
||||
steps:
|
||||
- uses: actions/github-script@v5
|
||||
- uses: actions/github-script@v7
|
||||
id: check-id
|
||||
env:
|
||||
number: ${{ github.event.client_payload.pull_request.number }}
|
||||
@@ -40,7 +37,7 @@ jobs:
|
||||
|
||||
return check[0].id;
|
||||
|
||||
- uses: actions/github-script@v5
|
||||
- uses: actions/github-script@v7
|
||||
env:
|
||||
check_id: ${{ steps.check-id.outputs.result }}
|
||||
details_url: ${{ github.server_url }}/${{ github.repository }}/runs/${{ github.run_id }}
|
||||
@@ -56,7 +53,7 @@ jobs:
|
||||
|
||||
# Check out merge commit
|
||||
- name: Fork based /deploy checkout
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
ref: 'refs/pull/${{ github.event.client_payload.pull_request.number }}/merge'
|
||||
|
||||
@@ -75,7 +72,7 @@ jobs:
|
||||
timeout: 15m
|
||||
|
||||
# Update check run called "integration-fork"
|
||||
- uses: actions/github-script@v5
|
||||
- uses: actions/github-script@v7
|
||||
id: update-check-run
|
||||
if: ${{ always() }}
|
||||
env:
|
||||
|
||||
33
.github/workflows/pr-preview-destroy.yml
vendored
33
.github/workflows/pr-preview-destroy.yml
vendored
@@ -10,12 +10,45 @@ jobs:
|
||||
destroy-preview-environment:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/github-script@v7
|
||||
id: check-conclusion
|
||||
env:
|
||||
number: ${{ github.event.number }}
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
result-encoding: string
|
||||
script: |
|
||||
const { data: pull } = await github.rest.pulls.get({
|
||||
...context.repo,
|
||||
pull_number: process.env.number
|
||||
});
|
||||
const ref = pull.head.sha;
|
||||
|
||||
const { data: checks } = await github.rest.checks.listForRef({
|
||||
...context.repo,
|
||||
ref
|
||||
});
|
||||
|
||||
const check = checks.check_runs.filter(c => c.name === 'deploy-preview-environment');
|
||||
|
||||
if (check.length === 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
const { data: result } = await github.rest.checks.get({
|
||||
...context.repo,
|
||||
check_run_id: check[0].id,
|
||||
});
|
||||
|
||||
return result.conclusion;
|
||||
- name: Context
|
||||
if: steps.check-conclusion.outputs.result == 'success'
|
||||
uses: okteto/context@latest
|
||||
with:
|
||||
token: ${{ secrets.OKTETO_TOKEN }}
|
||||
|
||||
- name: Destroy preview environment
|
||||
if: steps.check-conclusion.outputs.result == 'success'
|
||||
uses: okteto/destroy-preview@latest
|
||||
with:
|
||||
name: pr-${{ github.event.number }}-syuilo
|
||||
|
||||
97
.github/workflows/report-api-diff.yml
vendored
Normal file
97
.github/workflows/report-api-diff.yml
vendored
Normal file
@@ -0,0 +1,97 @@
|
||||
name: Report API Diff
|
||||
|
||||
on:
|
||||
workflow_run:
|
||||
types: [completed]
|
||||
workflows:
|
||||
- Get api.json from Misskey # get-api-diff.yml
|
||||
|
||||
jobs:
|
||||
compare-diff:
|
||||
runs-on: ubuntu-latest
|
||||
if: ${{ github.event.workflow_run.conclusion == 'success' }}
|
||||
permissions:
|
||||
pull-requests: write
|
||||
|
||||
# api-artifact
|
||||
steps:
|
||||
- name: Download artifact
|
||||
uses: actions/github-script@v7
|
||||
with:
|
||||
script: |
|
||||
const fs = require('fs');
|
||||
let allArtifacts = await github.rest.actions.listWorkflowRunArtifacts({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
run_id: context.payload.workflow_run.id,
|
||||
});
|
||||
let matchArtifacts = allArtifacts.data.artifacts.filter((artifact) => {
|
||||
return artifact.name.startsWith("api-artifact-") || artifact.name == "api-artifact"
|
||||
});
|
||||
await Promise.all(matchArtifacts.map(async (artifact) => {
|
||||
let download = await github.rest.actions.downloadArtifact({
|
||||
owner: context.repo.owner,
|
||||
repo: context.repo.repo,
|
||||
artifact_id: artifact.id,
|
||||
archive_format: 'zip',
|
||||
});
|
||||
await fs.promises.writeFile(`${process.env.GITHUB_WORKSPACE}/${artifact.name}.zip`, Buffer.from(download.data));
|
||||
}));
|
||||
- name: Extract all artifacts
|
||||
run: |
|
||||
find . -mindepth 1 -maxdepth 1 -type f -name '*.zip' -exec unzip {} -d artifacts ';'
|
||||
ls -la
|
||||
- name: Load PR Number
|
||||
id: load-pr-num
|
||||
run: echo "pr-number=$(cat artifacts/pr_number)" >> "$GITHUB_OUTPUT"
|
||||
|
||||
- name: Output base
|
||||
run: cat ./artifacts/api-base.json
|
||||
- name: Output head
|
||||
run: cat ./artifacts/api-head.json
|
||||
- name: Arrange json files
|
||||
run: |
|
||||
jq '.' ./artifacts/api-base.json > ./api-base.json
|
||||
jq '.' ./artifacts/api-head.json > ./api-head.json
|
||||
- name: Get diff of 2 files
|
||||
run: diff -u --label=base --label=head ./api-base.json ./api-head.json | cat > api.json.diff
|
||||
- name: Get full diff
|
||||
run: diff --label=base --label=head --new-line-format='+%L' --old-line-format='-%L' --unchanged-line-format=' %L' ./api-base.json ./api-head.json | cat > api-full.json.diff
|
||||
- name: Echo full diff
|
||||
run: cat ./api-full.json.diff
|
||||
- name: Upload full diff to Artifact
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: api-artifact
|
||||
path: |
|
||||
api-full.json.diff
|
||||
api-base.json
|
||||
api-head.json
|
||||
- id: out-diff
|
||||
name: Build diff Comment
|
||||
run: |
|
||||
cat <<- EOF > ./output.md
|
||||
このPRによるapi.jsonの差分
|
||||
<details>
|
||||
<summary>差分はこちら</summary>
|
||||
|
||||
\`\`\`diff
|
||||
$(cat ./api.json.diff)
|
||||
\`\`\`
|
||||
</details>
|
||||
|
||||
[Get diff files from Workflow Page](https://github.com/${GITHUB_REPOSITORY}/actions/runs/${GITHUB_RUN_ID})
|
||||
EOF
|
||||
- uses: thollander/actions-comment-pull-request@v2
|
||||
with:
|
||||
pr_number: ${{ steps.load-pr-num.outputs.pr-number }}
|
||||
comment_tag: show_diff
|
||||
filePath: ./output.md
|
||||
- name: Tell error to PR
|
||||
uses: thollander/actions-comment-pull-request@v2
|
||||
if: failure() && steps.load-pr-num.outputs.pr-number
|
||||
with:
|
||||
pr_number: ${{ steps.load-pr-num.outputs.pr-number }}
|
||||
comment_tag: show_diff_error
|
||||
message: |
|
||||
api.jsonの差分作成中にエラーが発生しました。詳細は[Workflowのログ](https://github.com/${{ github.repository }}/actions/runs/${{ github.run_id }})を確認してください。
|
||||
117
.github/workflows/test-backend.yml
vendored
Normal file
117
.github/workflows/test-backend.yml
vendored
Normal file
@@ -0,0 +1,117 @@
|
||||
name: Test (backend)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
paths:
|
||||
- packages/backend/**
|
||||
# for permissions
|
||||
- packages/misskey-js/**
|
||||
pull_request:
|
||||
paths:
|
||||
- packages/backend/**
|
||||
# for permissions
|
||||
- packages/misskey-js/**
|
||||
|
||||
jobs:
|
||||
unit:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [20.10.0]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:15
|
||||
ports:
|
||||
- 54312:5432
|
||||
env:
|
||||
POSTGRES_DB: test-misskey
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
redis:
|
||||
image: redis:7
|
||||
ports:
|
||||
- 56312:6379
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
submodules: true
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
run_install: false
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'pnpm'
|
||||
- run: corepack enable
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- name: Check pnpm-lock.yaml
|
||||
run: git diff --exit-code pnpm-lock.yaml
|
||||
- name: Copy Configure
|
||||
run: cp .github/misskey/test.yml .config
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
- name: Test
|
||||
run: pnpm --filter backend test-and-coverage
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v3
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
files: ./packages/backend/coverage/coverage-final.json
|
||||
|
||||
e2e:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [20.10.0]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:15
|
||||
ports:
|
||||
- 54312:5432
|
||||
env:
|
||||
POSTGRES_DB: test-misskey
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
redis:
|
||||
image: redis:7
|
||||
ports:
|
||||
- 56312:6379
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
submodules: true
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
run_install: false
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'pnpm'
|
||||
- run: corepack enable
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- name: Check pnpm-lock.yaml
|
||||
run: git diff --exit-code pnpm-lock.yaml
|
||||
- name: Copy Configure
|
||||
run: cp .github/misskey/test.yml .config
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
- name: Test
|
||||
run: pnpm --filter backend test-and-coverage:e2e
|
||||
- name: Upload to Codecov
|
||||
uses: codecov/codecov-action@v3
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
files: ./packages/backend/coverage/coverage-final.json
|
||||
@@ -1,58 +1,62 @@
|
||||
name: Test
|
||||
name: Test (frontend)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
paths:
|
||||
- packages/frontend/**
|
||||
# for permissions
|
||||
- packages/misskey-js/**
|
||||
# for e2e
|
||||
- packages/backend/**
|
||||
|
||||
pull_request:
|
||||
paths:
|
||||
- packages/frontend/**
|
||||
# for permissions
|
||||
- packages/misskey-js/**
|
||||
# for e2e
|
||||
- packages/backend/**
|
||||
|
||||
jobs:
|
||||
jest:
|
||||
vitest:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [18.x]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:13
|
||||
ports:
|
||||
- 54312:5432
|
||||
env:
|
||||
POSTGRES_DB: test-misskey
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
YARN_CHECKSUM_BEHAVIOR: update
|
||||
redis:
|
||||
image: redis:6
|
||||
ports:
|
||||
- 56312:6379
|
||||
node-version: [20.10.0]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
submodules: true
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
run_install: false
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v3.2.0
|
||||
uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'yarn'
|
||||
cache: 'pnpm'
|
||||
- run: corepack enable
|
||||
- run: yarn install --immutable
|
||||
- name: Check yarn.lock
|
||||
run: git diff --exit-code yarn.lock
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- name: Check pnpm-lock.yaml
|
||||
run: git diff --exit-code pnpm-lock.yaml
|
||||
- name: Copy Configure
|
||||
run: cp .github/misskey/test.yml .config
|
||||
- name: Build
|
||||
run: yarn build
|
||||
run: pnpm build
|
||||
- name: Test
|
||||
run: yarn jest-and-coverage
|
||||
run: pnpm --filter frontend test-and-coverage
|
||||
- name: Upload Coverage
|
||||
uses: codecov/codecov-action@v3
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
files: ./packages/backend/coverage/coverage-final.json
|
||||
files: ./packages/frontend/coverage/coverage-final.json
|
||||
|
||||
e2e:
|
||||
runs-on: ubuntu-latest
|
||||
@@ -60,24 +64,24 @@ jobs:
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
node-version: [18.x]
|
||||
node-version: [20.10.0]
|
||||
browser: [chrome]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:13
|
||||
image: postgres:15
|
||||
ports:
|
||||
- 54312:5432
|
||||
env:
|
||||
POSTGRES_DB: test-misskey
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
redis:
|
||||
image: redis:6
|
||||
image: redis:7
|
||||
ports:
|
||||
- 56312:6379
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
submodules: true
|
||||
# https://github.com/cypress-io/cypress-docker-images/issues/150
|
||||
@@ -86,36 +90,43 @@ jobs:
|
||||
# if: ${{ matrix.browser == 'firefox' }}
|
||||
#- uses: browser-actions/setup-firefox@latest
|
||||
# if: ${{ matrix.browser == 'firefox' }}
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 7
|
||||
run_install: false
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v3.2.0
|
||||
uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'yarn'
|
||||
cache: 'pnpm'
|
||||
- run: corepack enable
|
||||
- run: yarn install --immutable
|
||||
env:
|
||||
YARN_CHECKSUM_BEHAVIOR: update
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- name: Copy Configure
|
||||
run: cp .github/misskey/test.yml .config
|
||||
- name: Build
|
||||
run: yarn build
|
||||
run: pnpm build
|
||||
# https://github.com/cypress-io/cypress/issues/4351#issuecomment-559489091
|
||||
- name: ALSA Env
|
||||
run: echo -e 'pcm.!default {\n type hw\n card 0\n}\n\nctl.!default {\n type hw\n card 0\n}' > ~/.asoundrc
|
||||
# XXX: This tries reinstalling Cypress if the binary is not cached
|
||||
# Remove this when the cache issue is fixed
|
||||
- name: Cypress install
|
||||
run: pnpm exec cypress install
|
||||
- name: Cypress run
|
||||
uses: cypress-io/github-action@v4
|
||||
uses: cypress-io/github-action@v6
|
||||
with:
|
||||
install: false
|
||||
start: yarn start:test
|
||||
start: pnpm start:test
|
||||
wait-on: 'http://localhost:61812'
|
||||
headless: false
|
||||
headed: true
|
||||
browser: ${{ matrix.browser }}
|
||||
- uses: actions/upload-artifact@v2
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: failure()
|
||||
with:
|
||||
name: ${{ matrix.browser }}-cypress-screenshots
|
||||
path: cypress/screenshots
|
||||
- uses: actions/upload-artifact@v2
|
||||
- uses: actions/upload-artifact@v4
|
||||
if: always()
|
||||
with:
|
||||
name: ${{ matrix.browser }}-cypress-videos
|
||||
56
.github/workflows/test-misskey-js.yml
vendored
Normal file
56
.github/workflows/test-misskey-js.yml
vendored
Normal file
@@ -0,0 +1,56 @@
|
||||
# This workflow will do a clean install of node dependencies, build the source code and run tests across different versions of node
|
||||
# For more information see: https://help.github.com/actions/language-and-framework-guides/using-nodejs-with-github-actions
|
||||
|
||||
name: Test (misskey.js)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches: [ develop ]
|
||||
paths:
|
||||
- packages/misskey-js/**
|
||||
pull_request:
|
||||
branches: [ develop ]
|
||||
paths:
|
||||
- packages/misskey-js/**
|
||||
|
||||
jobs:
|
||||
test:
|
||||
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [20.10.0]
|
||||
# See supported Node.js release schedule at https://nodejs.org/en/about/releases/
|
||||
|
||||
steps:
|
||||
- name: Checkout
|
||||
uses: actions/checkout@v4.1.1
|
||||
|
||||
- run: corepack enable
|
||||
|
||||
- name: Setup Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Install dependencies
|
||||
run: pnpm i --frozen-lockfile
|
||||
|
||||
- name: Check pnpm-lock.yaml
|
||||
run: git diff --exit-code pnpm-lock.yaml
|
||||
|
||||
- name: Build
|
||||
run: pnpm --filter misskey-js build
|
||||
|
||||
- name: Test
|
||||
run: pnpm --filter misskey-js test
|
||||
env:
|
||||
CI: true
|
||||
|
||||
- name: Upload Coverage
|
||||
uses: codecov/codecov-action@v3
|
||||
with:
|
||||
token: ${{ secrets.CODECOV_TOKEN }}
|
||||
files: ./packages/misskey-js/coverage/coverage-final.json
|
||||
42
.github/workflows/test-production.yml
vendored
Normal file
42
.github/workflows/test-production.yml
vendored
Normal file
@@ -0,0 +1,42 @@
|
||||
name: Test (production install and build)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
|
||||
env:
|
||||
NODE_ENV: production
|
||||
|
||||
jobs:
|
||||
production:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [20.10.0]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
submodules: true
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
run_install: false
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'pnpm'
|
||||
- run: corepack enable
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- name: Check pnpm-lock.yaml
|
||||
run: git diff --exit-code pnpm-lock.yaml
|
||||
- name: Copy Configure
|
||||
run: cp .github/misskey/test.yml .config/default.yml
|
||||
- name: Build
|
||||
run: pnpm build
|
||||
47
.github/workflows/validate-api-json.yml
vendored
Normal file
47
.github/workflows/validate-api-json.yml
vendored
Normal file
@@ -0,0 +1,47 @@
|
||||
name: Test (backend)
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
paths:
|
||||
- packages/backend/**
|
||||
pull_request:
|
||||
paths:
|
||||
- packages/backend/**
|
||||
|
||||
jobs:
|
||||
validate-api-json:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [20.10.0]
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v4.1.1
|
||||
with:
|
||||
submodules: true
|
||||
- name: Install pnpm
|
||||
uses: pnpm/action-setup@v2
|
||||
with:
|
||||
version: 8
|
||||
run_install: false
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v4.0.1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
cache: 'pnpm'
|
||||
- name: Install Redocly CLI
|
||||
run: npm i -g @redocly/cli
|
||||
- run: corepack enable
|
||||
- run: pnpm i --frozen-lockfile
|
||||
- name: Check pnpm-lock.yaml
|
||||
run: git diff --exit-code pnpm-lock.yaml
|
||||
- name: Copy Configure
|
||||
run: cp .config/example.yml .config/default.yml
|
||||
- name: Build and generate
|
||||
run: pnpm build && pnpm --filter backend generate-api-json
|
||||
- name: Validation
|
||||
run: npx @redocly/cli lint --extends=minimal ./packages/backend/built/api.json
|
||||
15
.gitignore
vendored
15
.gitignore
vendored
@@ -20,6 +20,9 @@ packages/frontend/.yarn/cache
|
||||
packages/backend/.yarn/cache
|
||||
packages/sw/.yarn/cache
|
||||
|
||||
# pnpm
|
||||
.pnpm-store
|
||||
|
||||
# Cypress
|
||||
cypress/screenshots
|
||||
cypress/videos
|
||||
@@ -30,15 +33,19 @@ coverage
|
||||
# config
|
||||
/.config/*
|
||||
!/.config/example.yml
|
||||
!/.config/docker_example.yml
|
||||
!/.config/docker_example.env
|
||||
docker-compose.yml
|
||||
!/.devcontainer/docker-compose.yml
|
||||
|
||||
# misskey
|
||||
/build
|
||||
built
|
||||
built-test
|
||||
/data
|
||||
/.cache-loader
|
||||
/db
|
||||
/elasticsearch
|
||||
/meili_data
|
||||
npm-debug.log
|
||||
*.pem
|
||||
run.bat
|
||||
@@ -49,6 +56,9 @@ api-docs.json
|
||||
.DS_Store
|
||||
/files
|
||||
ormconfig.json
|
||||
temp
|
||||
/packages/frontend/src/**/*.stories.ts
|
||||
tsdoc-metadata.json
|
||||
|
||||
# blender backups
|
||||
*.blend1
|
||||
@@ -56,3 +66,6 @@ ormconfig.json
|
||||
*.blend3
|
||||
*.blend4
|
||||
*.blend5
|
||||
|
||||
# VSCode addon
|
||||
.favorites.json
|
||||
|
||||
@@ -1 +1 @@
|
||||
v18.12.1
|
||||
20.10.0
|
||||
|
||||
6
.vscode/extensions.json
vendored
6
.vscode/extensions.json
vendored
@@ -1,9 +1,11 @@
|
||||
{
|
||||
"recommendations": [
|
||||
"editorconfig.editorconfig",
|
||||
"eg2.vscode-npm-script",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"Vue.volar",
|
||||
"Vue.vscode-typescript-vue-plugin"
|
||||
"Vue.vscode-typescript-vue-plugin",
|
||||
"Orta.vscode-jest",
|
||||
"dbaeumer.vscode-eslint",
|
||||
"mrmlnc.vscode-json5"
|
||||
]
|
||||
}
|
||||
|
||||
15
.vscode/settings.json
vendored
Normal file
15
.vscode/settings.json
vendored
Normal file
@@ -0,0 +1,15 @@
|
||||
{
|
||||
"search.exclude": {
|
||||
"**/node_modules": true
|
||||
},
|
||||
"typescript.tsdk": "node_modules/typescript/lib",
|
||||
"files.associations": {
|
||||
"*.test.ts": "typescript"
|
||||
},
|
||||
"jest.jestCommandLine": "pnpm run jest",
|
||||
"jest.autoRun": "off",
|
||||
"editor.codeActionsOnSave": {
|
||||
"source.fixAll": "explicit"
|
||||
},
|
||||
"editor.formatOnSave": false
|
||||
}
|
||||
546
.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
vendored
546
.yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
vendored
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
807
.yarn/releases/yarn-3.3.0.cjs
vendored
807
.yarn/releases/yarn-3.3.0.cjs
vendored
File diff suppressed because one or more lines are too long
42
.yarnrc.yml
42
.yarnrc.yml
@@ -1,42 +0,0 @@
|
||||
httpTimeout: 600000
|
||||
|
||||
nmHoistingLimits: none
|
||||
|
||||
nodeLinker: pnpm
|
||||
|
||||
packageExtensions:
|
||||
"@bull-board/api@*":
|
||||
peerDependencies:
|
||||
"@bull-board/ui": "*"
|
||||
"@tensorflow/tfjs@*":
|
||||
dependencies:
|
||||
long: "*"
|
||||
chartjs-adapter-date-fns@*:
|
||||
peerDependencies:
|
||||
date-fns: "*"
|
||||
consolidate@*:
|
||||
dependencies:
|
||||
ejs: "*"
|
||||
# these are needed to extend fastify types
|
||||
"@fastify/accepts@*":
|
||||
peerDependencies:
|
||||
fastify: "*"
|
||||
"@fastify/cookie@*":
|
||||
peerDependencies:
|
||||
fastify: "*"
|
||||
"@fastify/static@*":
|
||||
peerDependencies:
|
||||
fastify: "*"
|
||||
"@fastify/view@*":
|
||||
peerDependencies:
|
||||
fastify: "*"
|
||||
|
||||
plugins:
|
||||
- path: .yarn/plugins/@yarnpkg/plugin-interactive-tools.cjs
|
||||
spec: "@yarnpkg/plugin-interactive-tools"
|
||||
- path: .yarn/plugins/@yarnpkg/plugin-workspace-tools.cjs
|
||||
spec: "@yarnpkg/plugin-workspace-tools"
|
||||
|
||||
progressBarStyle: patrick
|
||||
|
||||
yarnPath: .yarn/releases/yarn-3.3.0.cjs
|
||||
1430
CHANGELOG.md
1430
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
@@ -2,45 +2,131 @@
|
||||
|
||||
## Our Pledge
|
||||
|
||||
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
|
||||
We as members, contributors, and leaders pledge to make participation in our
|
||||
community a harassment-free experience for everyone, regardless of age, body
|
||||
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||
identity and expression, level of experience, education, socio-economic status,
|
||||
nationality, personal appearance, race, caste, color, religion, or sexual
|
||||
identity and orientation.
|
||||
|
||||
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||
diverse, inclusive, and healthy community.
|
||||
|
||||
## Our Standards
|
||||
|
||||
Examples of behavior that contributes to creating a positive environment include:
|
||||
Examples of behavior that contributes to a positive environment for our
|
||||
community include:
|
||||
|
||||
* Using welcoming and inclusive language
|
||||
* Being respectful of differing viewpoints and experiences
|
||||
* Gracefully accepting constructive criticism
|
||||
* Focusing on what is best for the community
|
||||
* Showing empathy towards other community members
|
||||
* Demonstrating empathy and kindness toward other people
|
||||
* Being respectful of differing opinions, viewpoints, and experiences
|
||||
* Giving and gracefully accepting constructive feedback
|
||||
* Accepting responsibility and apologizing to those affected by our mistakes,
|
||||
and learning from the experience
|
||||
* Focusing on what is best not just for us as individuals, but for the overall
|
||||
community
|
||||
|
||||
Examples of unacceptable behavior by participants include:
|
||||
Examples of unacceptable behavior include:
|
||||
|
||||
* The use of sexualized language or imagery and unwelcome sexual attention or advances
|
||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
||||
* The use of sexualized language or imagery, and sexual attention or advances of
|
||||
any kind
|
||||
* Trolling, insulting or derogatory comments, and personal or political attacks
|
||||
* Public or private harassment
|
||||
* Publishing others' private information, such as a physical or electronic address, without explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a professional setting
|
||||
* Publishing others' private information, such as a physical or email address,
|
||||
without their explicit permission
|
||||
* Other conduct which could reasonably be considered inappropriate in a
|
||||
professional setting
|
||||
|
||||
## Our Responsibilities
|
||||
## Enforcement Responsibilities
|
||||
|
||||
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
|
||||
Community leaders are responsible for clarifying and enforcing our standards of
|
||||
acceptable behavior and will take appropriate and fair corrective action in
|
||||
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||
or harmful.
|
||||
|
||||
Project maintainers have the right and responsibility to remove, edit, or reject comments, commits, code, wiki edits, issues, and other contributions that are not aligned to this Code of Conduct, or to ban temporarily or permanently any contributor for other behaviors that they deem inappropriate, threatening, offensive, or harmful.
|
||||
Community leaders have the right and responsibility to remove, edit, or reject
|
||||
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||
decisions when appropriate.
|
||||
|
||||
## Scope
|
||||
|
||||
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. Examples of representing a project or community include using an official project e-mail address, posting via an official social media account, or acting as an appointed representative at an online or offline event. Representation of a project may be further defined and clarified by project maintainers.
|
||||
This Code of Conduct applies within all community spaces, and also applies when
|
||||
an individual is officially representing the community in public spaces.
|
||||
Examples of representing our community include using an official e-mail address,
|
||||
posting via an official social media account, or acting as an appointed
|
||||
representative at an online or offline event.
|
||||
|
||||
## Enforcement
|
||||
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at syuilotan@yahoo.co.jp. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
|
||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||
reported to the community leaders responsible for enforcement at
|
||||
<syuilotan@yahoo.co.jp>.
|
||||
All complaints will be reviewed and investigated promptly and fairly.
|
||||
|
||||
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
|
||||
All community leaders are obligated to respect the privacy and security of the
|
||||
reporter of any incident.
|
||||
|
||||
## Enforcement Guidelines
|
||||
|
||||
Community leaders will follow these Community Impact Guidelines in determining
|
||||
the consequences for any action they deem in violation of this Code of Conduct:
|
||||
|
||||
### 1. Correction
|
||||
|
||||
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||
unprofessional or unwelcome in the community.
|
||||
|
||||
**Consequence**: A private, written warning from community leaders, providing
|
||||
clarity around the nature of the violation and an explanation of why the
|
||||
behavior was inappropriate. A public apology may be requested.
|
||||
|
||||
### 2. Warning
|
||||
|
||||
**Community Impact**: A violation through a single incident or series of
|
||||
actions.
|
||||
|
||||
**Consequence**: A warning with consequences for continued behavior. No
|
||||
interaction with the people involved, including unsolicited interaction with
|
||||
those enforcing the Code of Conduct, for a specified period of time. This
|
||||
includes avoiding interactions in community spaces as well as external channels
|
||||
like social media. Violating these terms may lead to a temporary or permanent
|
||||
ban.
|
||||
|
||||
### 3. Temporary Ban
|
||||
|
||||
**Community Impact**: A serious violation of community standards, including
|
||||
sustained inappropriate behavior.
|
||||
|
||||
**Consequence**: A temporary ban from any sort of interaction or public
|
||||
communication with the community for a specified period of time. No public or
|
||||
private interaction with the people involved, including unsolicited interaction
|
||||
with those enforcing the Code of Conduct, is allowed during this period.
|
||||
Violating these terms may lead to a permanent ban.
|
||||
|
||||
### 4. Permanent Ban
|
||||
|
||||
**Community Impact**: Demonstrating a pattern of violation of community
|
||||
standards, including sustained inappropriate behavior, harassment of an
|
||||
individual, or aggression toward or disparagement of classes of individuals.
|
||||
|
||||
**Consequence**: A permanent ban from any sort of public interaction within the
|
||||
community.
|
||||
|
||||
## Attribution
|
||||
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
|
||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||
version 2.1, available at
|
||||
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
|
||||
|
||||
[homepage]: http://contributor-covenant.org
|
||||
[version]: http://contributor-covenant.org/version/1/4/
|
||||
Community Impact Guidelines were inspired by
|
||||
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
|
||||
|
||||
For answers to common questions about this code of conduct, see the FAQ at
|
||||
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
|
||||
[https://www.contributor-covenant.org/translations][translations].
|
||||
|
||||
[homepage]: https://www.contributor-covenant.org
|
||||
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
|
||||
[Mozilla CoC]: https://github.com/mozilla/diversity
|
||||
[FAQ]: https://www.contributor-covenant.org/faq
|
||||
[translations]: https://www.contributor-covenant.org/translations
|
||||
|
||||
193
CONTRIBUTING.md
193
CONTRIBUTING.md
@@ -15,7 +15,7 @@ Before creating an issue, please check the following:
|
||||
- To avoid duplication, please search for similar issues before creating a new issue.
|
||||
- Do not use Issues to ask questions or troubleshooting.
|
||||
- Issues should only be used to feature requests, suggestions, and bug tracking.
|
||||
- Please ask questions or troubleshooting in the [Misskey Forum](https://forum.misskey.io/) or [Discord](https://discord.gg/Wp8gVStHW3).
|
||||
- Please ask questions or troubleshooting in [GitHub Discussions](https://github.com/misskey-dev/misskey/discussions) or [Discord](https://discord.gg/Wp8gVStHW3).
|
||||
|
||||
> **Warning**
|
||||
> Do not close issues that are about to be resolved. It should remain open until a commit that actually resolves it is merged.
|
||||
@@ -44,7 +44,7 @@ Thank you for your PR! Before creating a PR, please check the following:
|
||||
- Check if there are any documents that need to be created or updated due to this change.
|
||||
- If you have added a feature or fixed a bug, please add a test case if possible.
|
||||
- Please make sure that tests and Lint are passed in advance.
|
||||
- You can run it with `yarn test` and `yarn lint`. [See more info](#testing)
|
||||
- You can run it with `pnpm test` and `pnpm lint`. [See more info](#testing)
|
||||
- If this PR includes UI changes, please attach a screenshot in the text.
|
||||
|
||||
Thanks for your cooperation 🤗
|
||||
@@ -83,11 +83,18 @@ An actual domain will be assigned so you can test the federation.
|
||||
- The title must be in the format `Release: x.y.z`.
|
||||
- `x.y.z` is the new version you are trying to release.
|
||||
3. Deploy and perform a simple QA check. Also verify that the tests passed.
|
||||
4. Merge it.
|
||||
4. Merge it. (Do not squash commit)
|
||||
5. Create a [release of GitHub](https://github.com/misskey-dev/misskey/releases)
|
||||
- The target branch must be `master`
|
||||
- The tag name must be the version
|
||||
|
||||
> **Note**
|
||||
> Why this instruction is necessary:
|
||||
> - To perform final QA checks
|
||||
> - To distribute responsibility
|
||||
> - To check direct commits to develop
|
||||
> - To celebrate the release together 🎉
|
||||
|
||||
## Localization (l10n)
|
||||
Misskey uses [Crowdin](https://crowdin.com/project/misskey) for localization management.
|
||||
You can improve our translations with your Crowdin account.
|
||||
@@ -99,10 +106,10 @@ If your language is not listed in Crowdin, please open an issue.
|
||||

|
||||
|
||||
## Development
|
||||
During development, it is useful to use the
|
||||
During development, it is useful to use the
|
||||
|
||||
```
|
||||
yarn dev
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
command.
|
||||
@@ -110,9 +117,33 @@ command.
|
||||
- Server-side source files and automatically builds them if they are modified. Automatically start the server process(es).
|
||||
- Vite HMR (just the `vite` command) is available. The behavior may be different from production.
|
||||
- Service Worker is watched by esbuild.
|
||||
- The front end can be viewed by accessing `http://localhost:5173`.
|
||||
- The backend listens on the port configured with `port` in .config/default.yml.
|
||||
If you have not changed it from the default, it will be "http://localhost:3000".
|
||||
If "port" in .config/default.yml is set to something other than 3000, you need to change the proxy settings in packages/frontend/vite.config.local-dev.ts.
|
||||
|
||||
### Dev Container
|
||||
Instead of running `pnpm` locally, you can use Dev Container to set up your development environment.
|
||||
To use Dev Container, open the project directory on VSCode with Dev Containers installed.
|
||||
**Note:** If you are using Windows, please clone the repository with WSL. Using Git for Windows will result in broken files due to the difference in how newlines are handled.
|
||||
|
||||
It will run the following command automatically inside the container.
|
||||
``` bash
|
||||
git submodule update --init
|
||||
pnpm install --frozen-lockfile
|
||||
cp .devcontainer/devcontainer.yml .config/default.yml
|
||||
pnpm build
|
||||
pnpm migrate
|
||||
```
|
||||
|
||||
After finishing the migration, run the `pnpm dev` command to start the development server.
|
||||
|
||||
``` bash
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
## Testing
|
||||
- Test codes are located in [`/test`](/test).
|
||||
- Test codes are located in [`/packages/backend/test`](/packages/backend/test).
|
||||
|
||||
### Run test
|
||||
Create a config file.
|
||||
@@ -121,23 +152,28 @@ cp .github/misskey/test.yml .config/
|
||||
```
|
||||
Prepare DB/Redis for testing.
|
||||
```
|
||||
docker-compose -f packages/backend/test/docker-compose.yml up
|
||||
docker compose -f packages/backend/test/docker-compose.yml up
|
||||
```
|
||||
Alternatively, prepare an empty (data can be erased) DB and edit `.config/test.yml`.
|
||||
Alternatively, prepare an empty (data can be erased) DB and edit `.config/test.yml`.
|
||||
|
||||
Run all test.
|
||||
```
|
||||
yarn test
|
||||
pnpm test
|
||||
```
|
||||
|
||||
#### Run specify test
|
||||
```
|
||||
yarn jest -- foo.ts
|
||||
pnpm jest -- foo.ts
|
||||
```
|
||||
|
||||
### e2e tests
|
||||
TODO
|
||||
|
||||
## Environment Variable
|
||||
|
||||
- `MISSKEY_CONFIG_YML`: Specify the file path of config.yml instead of default.yml (e.g. `2nd.yml`).
|
||||
- `MISSKEY_WEBFINGER_USE_HTTP`: If it's set true, WebFinger requests will be http instead of https, useful for testing federation between servers in localhost. NEVER USE IN PRODUCTION.
|
||||
|
||||
## Continuous integration
|
||||
Misskey uses GitHub Actions for executing automated tests.
|
||||
Configuration files are located in [`/.github/workflows`](/.github/workflows).
|
||||
@@ -176,10 +212,108 @@ niraxは、Misskeyで使用しているオリジナルのフロントエンド
|
||||
vue-routerとの最大の違いは、niraxは複数のルーターが存在することを許可している点です。
|
||||
これにより、アプリ内ウィンドウでブラウザとは個別にルーティングすることなどが可能になります。
|
||||
|
||||
## Notes
|
||||
### How to resolve conflictions occurred at yarn.lock?
|
||||
## Storybook
|
||||
|
||||
Just execute `yarn` to fix it.
|
||||
Misskey uses [Storybook](https://storybook.js.org/) for UI development.
|
||||
|
||||
### Setup & Run
|
||||
|
||||
#### Setup
|
||||
|
||||
```bash
|
||||
pnpm --filter misskey-js build
|
||||
```
|
||||
|
||||
#### Run
|
||||
|
||||
```bash
|
||||
pnpm --filter frontend storybook-dev
|
||||
```
|
||||
|
||||
### Usage
|
||||
|
||||
When you create a new component (in this example, `MyComponent.vue`), the story file (`MyComponent.stories.ts`) will be automatically generated by the `.storybook/generate.js` script.
|
||||
You can override the default story by creating a impl story file (`MyComponent.stories.impl.ts`).
|
||||
|
||||
```ts
|
||||
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
||||
import { StoryObj } from '@storybook/vue3';
|
||||
import MyComponent from './MyComponent.vue';
|
||||
export const Default = {
|
||||
render(args) {
|
||||
return {
|
||||
components: {
|
||||
MyComponent,
|
||||
},
|
||||
setup() {
|
||||
return {
|
||||
args,
|
||||
};
|
||||
},
|
||||
computed: {
|
||||
props() {
|
||||
return {
|
||||
...this.args,
|
||||
};
|
||||
},
|
||||
},
|
||||
template: '<MyComponent v-bind="props" />',
|
||||
};
|
||||
},
|
||||
args: {
|
||||
foo: 'bar',
|
||||
},
|
||||
parameters: {
|
||||
layout: 'centered',
|
||||
},
|
||||
} satisfies StoryObj<typeof MkAvatar>;
|
||||
```
|
||||
|
||||
If you want to opt-out from the automatic generation, create a `MyComponent.stories.impl.ts` file and add the following line to the file.
|
||||
|
||||
```ts
|
||||
import MyComponent from './MyComponent.vue';
|
||||
void MyComponent;
|
||||
```
|
||||
|
||||
You can override the component meta by creating a meta story file (`MyComponent.stories.meta.ts`).
|
||||
|
||||
```ts
|
||||
export const argTypes = {
|
||||
scale: {
|
||||
control: {
|
||||
type: 'range',
|
||||
min: 1,
|
||||
max: 4,
|
||||
},
|
||||
};
|
||||
```
|
||||
|
||||
Also, you can use msw to mock API requests in the storybook. Creating a `MyComponent.stories.msw.ts` file to define the mock handlers.
|
||||
|
||||
```ts
|
||||
import { rest } from 'msw';
|
||||
export const handlers = [
|
||||
rest.post('/api/notes/timeline', (req, res, ctx) => {
|
||||
return res(
|
||||
ctx.json([]),
|
||||
);
|
||||
}),
|
||||
];
|
||||
```
|
||||
|
||||
Don't forget to re-run the `.storybook/generate.js` script after adding, editing, or removing the above files.
|
||||
|
||||
## Notes
|
||||
|
||||
### Misskeyのドメイン固有の概念は`Mi`をprefixする
|
||||
例えばGoogleが自社サービスをMap、Earth、DriveではなくGoogle Map、Google Earth、Google Driveのように命名するのと同じ
|
||||
コード上でMisskeyのドメイン固有の概念には`Mi`をprefixすることで、他のドメインの同様の概念と区別できるほか、名前の衝突を防ぐ。
|
||||
ただし、文脈上Misskeyのものを指すことが明らかであり、名前の衝突の恐れがない場合は、一時的なローカル変数に限って`Mi`を省略してもよい。
|
||||
|
||||
### How to resolve conflictions occurred at pnpm-lock.yaml?
|
||||
|
||||
Just execute `pnpm` to fix it.
|
||||
|
||||
### INSERTするときにはsaveではなくinsertを使用する
|
||||
#6441
|
||||
@@ -258,19 +392,41 @@ SQLでは配列のインデックスは**1始まり**。
|
||||
### null IN
|
||||
nullが含まれる可能性のあるカラムにINするときは、そのままだとおかしくなるのでORなどでnullのハンドリングをしよう。
|
||||
|
||||
### `undefined`にご用心
|
||||
MongoDBの時とは違い、findOneでレコードを取得する時に対象レコードが存在しない場合 **`undefined`** が返ってくるので注意。
|
||||
MongoDBは`null`で返してきてたので、その感覚で`if (x === null)`とか書くとバグる。代わりに`if (x == null)`と書いてください
|
||||
### enumの削除は気をつける
|
||||
enumの列挙の内容の削除は、その値をもつレコードを全て削除しないといけない
|
||||
|
||||
削除が重たかったり不可能だったりする場合は、削除しないでおく
|
||||
|
||||
### Migration作成方法
|
||||
packages/backendで:
|
||||
```sh
|
||||
yarn dlx typeorm migration:generate -d ormconfig.js -o <migration name>
|
||||
pnpm dlx typeorm migration:generate -d ormconfig.js -o <migration name>
|
||||
```
|
||||
|
||||
- 生成後、ファイルをmigration下に移してください
|
||||
- 作成されたスクリプトは不必要な変更を含むため除去してください
|
||||
|
||||
### JSON SchemaのobjectでanyOfを使うとき
|
||||
JSON Schemaで、objectに対してanyOfを使う場合、anyOfの中でpropertiesを定義しないこと。
|
||||
バリデーションが効かないため。(SchemaTypeもそのように作られており、objectのanyOf内のpropertiesは捨てられます)
|
||||
https://github.com/misskey-dev/misskey/pull/10082
|
||||
|
||||
テキストhogeおよびfugaについて、片方を必須としつつ両方の指定もありうる場合:
|
||||
|
||||
```
|
||||
export const paramDef = {
|
||||
type: 'object',
|
||||
properties: {
|
||||
hoge: { type: 'string', minLength: 1 },
|
||||
fuga: { type: 'string', minLength: 1 },
|
||||
},
|
||||
anyOf: [
|
||||
{ required: ['hoge'] },
|
||||
{ required: ['fuga'] },
|
||||
],
|
||||
} as const;
|
||||
```
|
||||
|
||||
### コネクションには`markRaw`せよ
|
||||
**Vueのコンポーネントのdataオプションとして**misskey.jsのコネクションを設定するとき、必ず`markRaw`でラップしてください。インスタンスが不必要にリアクティブ化されることで、misskey.js内の処理で不具合が発生するとともに、パフォーマンス上の問題にも繋がる。なお、Composition APIを使う場合はこの限りではない(リアクティブ化はマニュアルなため)。
|
||||
|
||||
@@ -284,3 +440,6 @@ marginはそのコンポーネントを使う側が設定する
|
||||
## その他
|
||||
### HTMLのクラス名で follow という単語は使わない
|
||||
広告ブロッカーで誤ってブロックされる
|
||||
|
||||
### indexというファイル名を使うな
|
||||
ESMではディレクトリインポートは廃止されているのと、ディレクトリインポートせずともファイル名が index だと何故か一部のライブラリ?でディレクトリインポートだと見做されてエラーになる
|
||||
|
||||
2
COPYING
2
COPYING
@@ -1,5 +1,5 @@
|
||||
Unless otherwise stated this repository is
|
||||
Copyright © 2014-2022 syuilo and contributers
|
||||
Copyright © 2014-2024 syuilo and contributors
|
||||
|
||||
And is distributed under The GNU Affero General Public License Version 3, you should have received a copy of the license file as LICENSE.
|
||||
|
||||
|
||||
115
Dockerfile
115
Dockerfile
@@ -1,45 +1,100 @@
|
||||
FROM node:18.12.1-bullseye AS builder
|
||||
# syntax = docker/dockerfile:1.4
|
||||
|
||||
ARG NODE_VERSION=20.10.0-bullseye
|
||||
|
||||
# build assets & compile TypeScript
|
||||
|
||||
FROM --platform=$BUILDPLATFORM node:${NODE_VERSION} AS native-builder
|
||||
|
||||
RUN --mount=type=cache,target=/var/cache/apt,sharing=locked \
|
||||
--mount=type=cache,target=/var/lib/apt,sharing=locked \
|
||||
rm -f /etc/apt/apt.conf.d/docker-clean \
|
||||
; echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' > /etc/apt/apt.conf.d/keep-cache \
|
||||
&& apt-get update \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
build-essential
|
||||
|
||||
RUN corepack enable
|
||||
|
||||
WORKDIR /misskey
|
||||
|
||||
COPY --link ["pnpm-lock.yaml", "pnpm-workspace.yaml", "package.json", "./"]
|
||||
COPY --link ["scripts", "./scripts"]
|
||||
COPY --link ["packages/backend/package.json", "./packages/backend/"]
|
||||
COPY --link ["packages/frontend/package.json", "./packages/frontend/"]
|
||||
COPY --link ["packages/sw/package.json", "./packages/sw/"]
|
||||
COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
|
||||
COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"]
|
||||
COPY --link ["packages/misskey-bubble-game/package.json", "./packages/misskey-bubble-game/"]
|
||||
|
||||
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
|
||||
pnpm i --frozen-lockfile --aggregate-output
|
||||
|
||||
COPY --link . ./
|
||||
|
||||
ARG NODE_ENV=production
|
||||
|
||||
RUN git submodule update --init
|
||||
RUN pnpm build
|
||||
RUN rm -rf .git/
|
||||
|
||||
# build native dependencies for target platform
|
||||
|
||||
FROM --platform=$TARGETPLATFORM node:${NODE_VERSION} AS target-builder
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
&& apt-get install -yqq --no-install-recommends \
|
||||
build-essential
|
||||
|
||||
WORKDIR /misskey
|
||||
|
||||
COPY [".yarnrc.yml", "package.json", "yarn.lock", "./"]
|
||||
COPY [".yarn", "./.yarn"]
|
||||
COPY ["scripts", "./scripts"]
|
||||
COPY ["packages/backend/package.json", "./packages/backend/"]
|
||||
COPY ["packages/frontend/package.json", "./packages/frontend/"]
|
||||
COPY ["packages/sw/package.json", "./packages/sw/"]
|
||||
|
||||
RUN yarn install --immutable
|
||||
|
||||
COPY . ./
|
||||
|
||||
RUN git submodule update --init
|
||||
RUN yarn build
|
||||
|
||||
FROM node:18.12.1-bullseye-slim AS runner
|
||||
RUN corepack enable
|
||||
|
||||
WORKDIR /misskey
|
||||
|
||||
COPY --link ["pnpm-lock.yaml", "pnpm-workspace.yaml", "package.json", "./"]
|
||||
COPY --link ["scripts", "./scripts"]
|
||||
COPY --link ["packages/backend/package.json", "./packages/backend/"]
|
||||
COPY --link ["packages/misskey-js/package.json", "./packages/misskey-js/"]
|
||||
COPY --link ["packages/misskey-reversi/package.json", "./packages/misskey-reversi/"]
|
||||
COPY --link ["packages/misskey-bubble-game/package.json", "./packages/misskey-bubble-game/"]
|
||||
|
||||
RUN --mount=type=cache,target=/root/.local/share/pnpm/store,sharing=locked \
|
||||
pnpm i --frozen-lockfile --aggregate-output
|
||||
|
||||
FROM --platform=$TARGETPLATFORM node:${NODE_VERSION}-slim AS runner
|
||||
|
||||
ARG UID="991"
|
||||
ARG GID="991"
|
||||
|
||||
RUN apt-get update \
|
||||
&& apt-get install -y --no-install-recommends \
|
||||
ffmpeg tini \
|
||||
&& apt-get -y clean \
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
ffmpeg tini curl libjemalloc-dev libjemalloc2 \
|
||||
&& ln -s /usr/lib/$(uname -m)-linux-gnu/libjemalloc.so.2 /usr/local/lib/libjemalloc.so \
|
||||
&& corepack enable \
|
||||
&& groupadd -g "${GID}" misskey \
|
||||
&& useradd -l -u "${UID}" -g "${GID}" -m -d /misskey misskey \
|
||||
&& find / -type d -path /sys -prune -o -type d -path /proc -prune -o -type f -perm /u+s -ignore_readdir_race -exec chmod u-s {} \; \
|
||||
&& find / -type d -path /sys -prune -o -type d -path /proc -prune -o -type f -perm /g+s -ignore_readdir_race -exec chmod g-s {} \; \
|
||||
&& apt-get clean \
|
||||
&& rm -rf /var/lib/apt/lists
|
||||
|
||||
COPY --from=builder /misskey/.yarn/install-state.gz ./.yarn/install-state.gz
|
||||
COPY --from=builder /misskey/node_modules ./node_modules
|
||||
COPY --from=builder /misskey/built ./built
|
||||
COPY --from=builder /misskey/packages/backend/node_modules ./packages/backend/node_modules
|
||||
COPY --from=builder /misskey/packages/backend/built ./packages/backend/built
|
||||
COPY --from=builder /misskey/packages/frontend/node_modules ./packages/frontend/node_modules
|
||||
COPY . ./
|
||||
USER misskey
|
||||
WORKDIR /misskey
|
||||
|
||||
COPY --chown=misskey:misskey --from=target-builder /misskey/node_modules ./node_modules
|
||||
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/backend/node_modules ./packages/backend/node_modules
|
||||
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/misskey-js/node_modules ./packages/misskey-js/node_modules
|
||||
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/misskey-reversi/node_modules ./packages/misskey-reversi/node_modules
|
||||
COPY --chown=misskey:misskey --from=target-builder /misskey/packages/misskey-bubble-game/node_modules ./packages/misskey-bubble-game/node_modules
|
||||
COPY --chown=misskey:misskey --from=native-builder /misskey/built ./built
|
||||
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/misskey-js/built ./packages/misskey-js/built
|
||||
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/misskey-reversi/built ./packages/misskey-reversi/built
|
||||
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/misskey-bubble-game/built ./packages/misskey-bubble-game/built
|
||||
COPY --chown=misskey:misskey --from=native-builder /misskey/packages/backend/built ./packages/backend/built
|
||||
COPY --chown=misskey:misskey --from=native-builder /misskey/fluent-emojis /misskey/fluent-emojis
|
||||
COPY --chown=misskey:misskey . ./
|
||||
|
||||
ENV LD_PRELOAD=/usr/local/lib/libjemalloc.so
|
||||
ENV NODE_ENV=production
|
||||
HEALTHCHECK --interval=5s --retries=20 CMD ["/bin/bash", "/misskey/healthcheck.sh"]
|
||||
ENTRYPOINT ["/usr/bin/tini", "--"]
|
||||
CMD ["yarn", "run", "migrateandstart"]
|
||||
CMD ["pnpm", "run", "migrateandstart"]
|
||||
|
||||
33
README.md
33
README.md
@@ -2,15 +2,15 @@
|
||||
<a href="https://misskey-hub.net">
|
||||
<img src="./assets/title_float.svg" alt="Misskey logo" style="border-radius:50%" width="400"/>
|
||||
</a>
|
||||
|
||||
|
||||
**🌎 **[Misskey](https://misskey-hub.net/)** is an open source, decentralized social media platform that's free forever! 🚀**
|
||||
|
||||
|
||||
---
|
||||
|
||||
<a href="https://misskey-hub.net/instances.html">
|
||||
<a href="https://misskey-hub.net/servers/">
|
||||
<img src="https://custom-icon-badges.herokuapp.com/badge/find_an-instance-acea31?logoColor=acea31&style=for-the-badge&logo=misskey&labelColor=363B40" alt="find an instance"/></a>
|
||||
|
||||
<a href="https://misskey-hub.net/docs/install.html">
|
||||
<a href="https://misskey-hub.net/docs/for-admin/install/guides/">
|
||||
<img src="https://custom-icon-badges.herokuapp.com/badge/create_an-instance-FBD53C?logoColor=FBD53C&style=for-the-badge&logo=server&labelColor=363B40" alt="create an instance"/></a>
|
||||
|
||||
<a href="./CONTRIBUTING.md">
|
||||
@@ -21,9 +21,11 @@
|
||||
|
||||
<a href="https://www.patreon.com/syuilo">
|
||||
<img src="https://custom-icon-badges.herokuapp.com/badge/become_a-patron-F96854?logoColor=F96854&style=for-the-badge&logo=patreon&labelColor=363B40" alt="become a patron"/></a>
|
||||
|
||||
|
||||
---
|
||||
|
||||
[](https://codecov.io/gh/misskey-dev/misskey)
|
||||
|
||||
</div>
|
||||
|
||||
<div>
|
||||
@@ -49,9 +51,28 @@ With Misskey's built in drive, you get cloud storage right in your social media,
|
||||
|
||||
## Documentation
|
||||
|
||||
Misskey Documentation can be found at [Misskey Hub](https://misskey-hub.net/), some of the links and graphics above also lead to specific portions of it.
|
||||
Misskey Documentation can be found at [Misskey Hub](https://misskey-hub.net/docs/), some of the links and graphics above also lead to specific portions of it.
|
||||
|
||||
## Sponsors
|
||||
|
||||
<div align="center">
|
||||
<a class="rss3" title="RSS3" href="https://rss3.io/" target="_blank"><img src="https://rss3.mypinata.cloud/ipfs/QmUG6H3Z7D5P511shn7sB4CPmpjH5uZWu4m5mWX7U3Gqbu" alt="RSS3" height="60"></a>
|
||||
</div>
|
||||
|
||||
## Thanks
|
||||
|
||||
<a href="https://www.chromatic.com/"><img src="https://user-images.githubusercontent.com/321738/84662277-e3db4f80-af1b-11ea-88f5-91d67a5e59f6.png" height="30" alt="Chromatic" /></a>
|
||||
|
||||
Thanks to [Chromatic](https://www.chromatic.com/) for providing the visual testing platform that helps us review UI changes and catch visual regressions.
|
||||
|
||||
<a href="https://about.codecov.io/for/open-source/"><img src="https://about.codecov.io/wp-content/themes/codecov/assets/brand/sentry-cobranding/logos/codecov-by-sentry-logo.svg" height="30" alt="Codecov" /></a>
|
||||
|
||||
Thanks to [Codecov](https://about.codecov.io/for/open-source/) for providing the code coverage platform that helps us improve our test coverage.
|
||||
|
||||
<a href="https://crowdin.com/"><img src="https://user-images.githubusercontent.com/20679825/230709597-1299a011-171a-4294-a91e-355a9b37c672.svg" height="30" alt="Crowdin" /></a>
|
||||
|
||||
Thanks to [Crowdin](https://crowdin.com/) for providing the localization platform that helps us translate Misskey into many languages.
|
||||
|
||||
<a href="https://hub.docker.com/"><img src="https://user-images.githubusercontent.com/20679825/230148221-f8e73a32-a49b-47c3-9029-9a15c3824f92.png" height="30" alt="Docker" /></a>
|
||||
|
||||
Thanks to [Docker](https://hub.docker.com/) for providing the container platform that helps us run Misskey in production.
|
||||
|
||||
14
ROADMAP.md
14
ROADMAP.md
@@ -5,17 +5,15 @@ Also, the later tasks are more indefinite and are subject to change as developme
|
||||
## (1) Improve maintainability \<current phase\>
|
||||
This is the phase we are at now. We need to make a high-maintenance environment that can withstand future development.
|
||||
|
||||
- Make the number of type errors zero (backend)
|
||||
- Probably need to switch some libraries to others that make it difficult to reduce type errors
|
||||
- e.g. koa to fastify https://github.com/misskey-dev/misskey/issues/7537
|
||||
- ~~Make the number of type errors zero (backend)~~ → Done ✔️
|
||||
- Make the number of type errors zero (frontend)
|
||||
- Improve CI
|
||||
- Fix tests
|
||||
- mocha, jest, etc. do not support the combination of `TypeScript + ESM + Path alias`, and the tests currently do not work.
|
||||
- ~~Fix tests~~ → Done ✔️
|
||||
- Fix random test failures - https://github.com/misskey-dev/misskey/issues/7985 and https://github.com/misskey-dev/misskey/issues/7986
|
||||
- Add more tests
|
||||
- May need to implement a mechanism that allows for DI
|
||||
- ~~May need to implement a mechanism that allows for DI~~ → Done ✔️
|
||||
- https://github.com/misskey-dev/misskey/pull/9085
|
||||
- Measure coverage
|
||||
- ~~Measure coverage~~ → Done ✔️
|
||||
- https://github.com/misskey-dev/misskey/pull/9081
|
||||
- Improve documentation
|
||||
- Refactoring
|
||||
@@ -25,7 +23,7 @@ This is the phase we are at now. We need to make a high-maintenance environment
|
||||
Once Phase 1 is complete and an environment conducive to the development of a stable system is in place, the implementation of new functions can begin gradually.
|
||||
|
||||
- Improve features for moderation
|
||||
- OAuth2 support https://github.com/misskey-dev/misskey/issues/8262
|
||||
- ~~OAuth2 support https://github.com/misskey-dev/misskey/issues/8262~~ → Done ✔️
|
||||
- GraphQL support?
|
||||
|
||||
## (3) Improve scalability
|
||||
|
||||
@@ -1,7 +1,6 @@
|
||||
# Reporting Security Issues
|
||||
|
||||
If you discover a security issue in Misskey, please report it by sending an
|
||||
email to [syuilotan@yahoo.co.jp](mailto:syuilotan@yahoo.co.jp).
|
||||
If you discover a security issue in Misskey, please report it by **[this form](https://github.com/misskey-dev/misskey/security/advisories/new)**.
|
||||
|
||||
This will allow us to assess the risk, and make a fix available before we add a
|
||||
bug report to the GitHub repository.
|
||||
|
||||
@@ -23,13 +23,13 @@
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<style>
|
||||
#g8 {
|
||||
#g8 {
|
||||
animation-name: floating;
|
||||
animation-duration: 3s;
|
||||
animation-iteration-count: infinite;
|
||||
animation-timing-function: ease-in-out;
|
||||
}
|
||||
|
||||
|
||||
@keyframes floating {
|
||||
0% { transform: translate(0, 0px); }
|
||||
50% { transform: translate(0, -5px); }
|
||||
|
||||
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 6.1 KiB |
@@ -1,3 +1,4 @@
|
||||
apiVersion: v2
|
||||
name: misskey
|
||||
version: 0.0.0
|
||||
description: This chart is created for the purpose of previewing Pull Requests. Do not use this for production use.
|
||||
|
||||
@@ -72,25 +72,67 @@ db:
|
||||
#extra:
|
||||
# ssl: true
|
||||
|
||||
dbReplications: false
|
||||
|
||||
# You can configure any number of replicas here
|
||||
#dbSlaves:
|
||||
# -
|
||||
# host:
|
||||
# port:
|
||||
# db:
|
||||
# user:
|
||||
# pass:
|
||||
# -
|
||||
# host:
|
||||
# port:
|
||||
# db:
|
||||
# user:
|
||||
# pass:
|
||||
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Redis configuration └─────────────────────────────────────
|
||||
|
||||
redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
#family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
#pass: example-pass
|
||||
#prefix: example-prefix
|
||||
#db: 1
|
||||
|
||||
# ┌─────────────────────────────┐
|
||||
#───┘ Elasticsearch configuration └─────────────────────────────
|
||||
|
||||
#elasticsearch:
|
||||
#redisForPubsub:
|
||||
# host: localhost
|
||||
# port: 9200
|
||||
# ssl: false
|
||||
# user:
|
||||
# pass:
|
||||
# port: 6379
|
||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
# #pass: example-pass
|
||||
# #prefix: example-prefix
|
||||
# #db: 1
|
||||
|
||||
#redisForJobQueue:
|
||||
# host: localhost
|
||||
# port: 6379
|
||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
# #pass: example-pass
|
||||
# #prefix: example-prefix
|
||||
# #db: 1
|
||||
|
||||
#redisForTimelines:
|
||||
# host: redis
|
||||
# port: 6379
|
||||
# #family: 0 # 0=Both, 4=IPv4, 6=IPv6
|
||||
# #pass: example-pass
|
||||
# #prefix: example-prefix
|
||||
# #db: 1
|
||||
|
||||
# ┌───────────────────────────┐
|
||||
#───┘ MeiliSearch configuration └─────────────────────────────
|
||||
|
||||
#meilisearch:
|
||||
# host: localhost
|
||||
# port: 7700
|
||||
# apiKey: ''
|
||||
# ssl: true
|
||||
# index: ''
|
||||
|
||||
# ┌───────────────┐
|
||||
#───┘ ID generation └───────────────────────────────────────────
|
||||
@@ -101,6 +143,7 @@ redis:
|
||||
|
||||
# Available methods:
|
||||
# aid ... Short, Millisecond accuracy
|
||||
# aidx ... Millisecond accuracy
|
||||
# meid ... Similar to ObjectID, Millisecond accuracy
|
||||
# ulid ... Millisecond accuracy
|
||||
# objectid ... This is left for backward compatibility
|
||||
@@ -108,7 +151,7 @@ redis:
|
||||
# ONCE YOU HAVE STARTED THE INSTANCE, DO NOT CHANGE THE
|
||||
# ID SETTINGS AFTER THAT!
|
||||
|
||||
id: "aid"
|
||||
id: "aidx"
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Other configuration └─────────────────────────────────────
|
||||
|
||||
@@ -124,7 +167,7 @@ id: "aid"
|
||||
|
||||
# Job rate limiter
|
||||
# deliverJobPerSec: 128
|
||||
# inboxJobPerSec: 16
|
||||
# inboxJobPerSec: 32
|
||||
|
||||
# Job attempts
|
||||
# deliverJobMaxAttempts: 12
|
||||
@@ -133,11 +176,6 @@ id: "aid"
|
||||
# IP address family used for outgoing request (ipv4, ipv6 or dual)
|
||||
#outgoingAddressFamily: ipv4
|
||||
|
||||
# Syslog option
|
||||
#syslog:
|
||||
# host: localhost
|
||||
# port: 514
|
||||
|
||||
# Proxy for HTTP/HTTPS
|
||||
#proxy: http://127.0.0.1:3128
|
||||
|
||||
|
||||
@@ -3,16 +3,16 @@ kind: Deployment
|
||||
metadata:
|
||||
name: {{ include "misskey.fullname" . }}
|
||||
labels:
|
||||
{{- include "misskey.labels" . | nindent 4 }}
|
||||
{{- include "misskey.labels" . | nindent 4 }}
|
||||
spec:
|
||||
selector:
|
||||
matchLabels:
|
||||
{{- include "misskey.selectorLabels" . | nindent 6 }}
|
||||
{{- include "misskey.selectorLabels" . | nindent 6 }}
|
||||
replicas: 1
|
||||
template:
|
||||
metadata:
|
||||
labels:
|
||||
{{- include "misskey.selectorLabels" . | nindent 8 }}
|
||||
{{- include "misskey.selectorLabels" . | nindent 8 }}
|
||||
spec:
|
||||
containers:
|
||||
- name: misskey
|
||||
@@ -27,7 +27,7 @@ spec:
|
||||
ports:
|
||||
- containerPort: 3000
|
||||
- name: postgres
|
||||
image: postgres:14-alpine
|
||||
image: postgres:15-alpine
|
||||
env:
|
||||
- name: POSTGRES_USER
|
||||
value: "example-misskey-user"
|
||||
@@ -38,7 +38,7 @@ spec:
|
||||
ports:
|
||||
- containerPort: 5432
|
||||
- name: redis
|
||||
image: redis:alpine
|
||||
image: redis:7-alpine
|
||||
ports:
|
||||
- containerPort: 6379
|
||||
volumes:
|
||||
|
||||
@@ -11,4 +11,4 @@ spec:
|
||||
protocol: TCP
|
||||
name: http
|
||||
selector:
|
||||
{{- include "misskey.selectorLabels" . | nindent 4 }}
|
||||
{{- include "misskey.selectorLabels" . | nindent 4 }}
|
||||
|
||||
4
codecov.yml
Normal file
4
codecov.yml
Normal file
@@ -0,0 +1,4 @@
|
||||
coverage:
|
||||
status:
|
||||
project: false
|
||||
patch: false
|
||||
@@ -10,14 +10,14 @@ describe('Before setup instance', () => {
|
||||
});
|
||||
|
||||
it('successfully loads', () => {
|
||||
cy.visit('/');
|
||||
cy.visitHome();
|
||||
});
|
||||
|
||||
it('setup instance', () => {
|
||||
cy.visit('/');
|
||||
cy.visitHome();
|
||||
|
||||
cy.intercept('POST', '/api/admin/accounts/create').as('signup');
|
||||
|
||||
|
||||
cy.get('[data-cy-admin-username] input').type('admin');
|
||||
cy.get('[data-cy-admin-password] input').type('admin1234');
|
||||
cy.get('[data-cy-admin-ok]').click();
|
||||
@@ -43,22 +43,51 @@ describe('After setup instance', () => {
|
||||
});
|
||||
|
||||
it('successfully loads', () => {
|
||||
cy.visit('/');
|
||||
cy.visitHome();
|
||||
});
|
||||
|
||||
it('signup', () => {
|
||||
cy.visit('/');
|
||||
cy.visitHome();
|
||||
|
||||
cy.intercept('POST', '/api/signup').as('signup');
|
||||
|
||||
cy.get('[data-cy-signup]').click();
|
||||
cy.get('[data-cy-signup-rules-continue]').should('be.disabled');
|
||||
cy.get('[data-cy-signup-rules-notes-agree] [data-cy-switch-toggle]').click();
|
||||
cy.get('[data-cy-modal-dialog-ok]').click();
|
||||
cy.get('[data-cy-signup-rules-continue]').should('not.be.disabled');
|
||||
cy.get('[data-cy-signup-rules-continue]').click();
|
||||
|
||||
cy.get('[data-cy-signup-submit]').should('be.disabled');
|
||||
cy.get('[data-cy-signup-username] input').type('alice');
|
||||
cy.get('[data-cy-signup-submit]').should('be.disabled');
|
||||
cy.get('[data-cy-signup-password] input').type('alice1234');
|
||||
cy.get('[data-cy-signup-submit]').should('be.disabled');
|
||||
cy.get('[data-cy-signup-password-retype] input').type('alice1234');
|
||||
cy.get('[data-cy-signup-submit]').should('not.be.disabled');
|
||||
cy.get('[data-cy-signup-submit]').click();
|
||||
|
||||
cy.wait('@signup');
|
||||
});
|
||||
|
||||
it('signup with duplicated username', () => {
|
||||
cy.registerUser('alice', 'alice1234');
|
||||
|
||||
cy.visitHome();
|
||||
|
||||
// ユーザー名が重複している場合の挙動確認
|
||||
cy.get('[data-cy-signup]').click();
|
||||
cy.get('[data-cy-signup-rules-continue]').should('be.disabled');
|
||||
cy.get('[data-cy-signup-rules-notes-agree] [data-cy-switch-toggle]').click();
|
||||
cy.get('[data-cy-modal-dialog-ok]').click();
|
||||
cy.get('[data-cy-signup-rules-continue]').should('not.be.disabled');
|
||||
cy.get('[data-cy-signup-rules-continue]').click();
|
||||
|
||||
cy.get('[data-cy-signup-username] input').type('alice');
|
||||
cy.get('[data-cy-signup-password] input').type('alice1234');
|
||||
cy.get('[data-cy-signup-password-retype] input').type('alice1234');
|
||||
cy.get('[data-cy-signup-submit]').should('be.disabled');
|
||||
});
|
||||
});
|
||||
|
||||
describe('After user signup', () => {
|
||||
@@ -79,11 +108,11 @@ describe('After user signup', () => {
|
||||
});
|
||||
|
||||
it('successfully loads', () => {
|
||||
cy.visit('/');
|
||||
cy.visitHome();
|
||||
});
|
||||
|
||||
it('signin', () => {
|
||||
cy.visit('/');
|
||||
cy.visitHome();
|
||||
|
||||
cy.intercept('POST', '/api/signin').as('signin');
|
||||
|
||||
@@ -101,7 +130,7 @@ describe('After user signup', () => {
|
||||
userId: this.alice.id,
|
||||
});
|
||||
|
||||
cy.visit('/');
|
||||
cy.visitHome();
|
||||
|
||||
cy.get('[data-cy-signin]').click();
|
||||
cy.get('[data-cy-signin-username] input').type('alice');
|
||||
@@ -112,7 +141,7 @@ describe('After user signup', () => {
|
||||
});
|
||||
});
|
||||
|
||||
describe('After user singed in', () => {
|
||||
describe('After user signed in', () => {
|
||||
beforeEach(() => {
|
||||
cy.resetState();
|
||||
|
||||
@@ -132,15 +161,80 @@ describe('After user singed in', () => {
|
||||
});
|
||||
|
||||
it('successfully loads', () => {
|
||||
cy.get('[data-cy-open-post-form]').should('be.visible');
|
||||
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
|
||||
cy.get('[data-cy-user-setup-continue]', { timeout: 12000 }).should('be.visible');
|
||||
});
|
||||
|
||||
it('account setup wizard', () => {
|
||||
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
|
||||
cy.get('[data-cy-user-setup-continue]', { timeout: 12000 }).click();
|
||||
|
||||
cy.get('[data-cy-user-setup-user-name] input').type('ありす');
|
||||
cy.get('[data-cy-user-setup-user-description] textarea').type('ほげ');
|
||||
// TODO: アイコン設定テスト
|
||||
|
||||
cy.get('[data-cy-user-setup-continue]').click();
|
||||
|
||||
// プライバシー設定
|
||||
|
||||
cy.get('[data-cy-user-setup-continue]').click();
|
||||
|
||||
// フォローはスキップ
|
||||
|
||||
cy.get('[data-cy-user-setup-continue]').click();
|
||||
|
||||
// プッシュ通知設定はスキップ
|
||||
|
||||
cy.get('[data-cy-user-setup-continue]').click();
|
||||
|
||||
cy.get('[data-cy-user-setup-continue]').click();
|
||||
});
|
||||
});
|
||||
|
||||
describe('After user setup', () => {
|
||||
beforeEach(() => {
|
||||
cy.resetState();
|
||||
|
||||
// インスタンス初期セットアップ
|
||||
cy.registerUser('admin', 'pass', true);
|
||||
|
||||
// ユーザー作成
|
||||
cy.registerUser('alice', 'alice1234');
|
||||
|
||||
cy.login('alice', 'alice1234');
|
||||
|
||||
// アカウント初期設定ウィザード
|
||||
// 表示に時間がかかるのでデフォルト秒数だとタイムアウトする
|
||||
cy.get('[data-cy-user-setup] [data-cy-modal-window-close]', { timeout: 12000 }).click();
|
||||
cy.get('[data-cy-modal-dialog-ok]').click();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
// テスト終了直前にページ遷移するようなテストケース(例えばアカウント作成)だと、たぶんCypressのバグでブラウザの内容が次のテストケースに引き継がれてしまう(例えばアカウントが作成し終わった段階からテストが始まる)。
|
||||
// waitを入れることでそれを防止できる
|
||||
cy.wait(1000);
|
||||
});
|
||||
|
||||
it('note', () => {
|
||||
cy.get('[data-cy-open-post-form]').should('be.visible');
|
||||
cy.get('[data-cy-open-post-form]').click();
|
||||
cy.get('[data-cy-post-form-text]').type('Hello, Misskey!');
|
||||
cy.get('[data-cy-open-post-form-submit]').click();
|
||||
|
||||
cy.contains('Hello, Misskey!');
|
||||
});
|
||||
|
||||
it('open note form with hotkey', () => {
|
||||
// Wait until the page loads
|
||||
cy.get('[data-cy-open-post-form]').should('be.visible');
|
||||
// Use trigger() to give different `code` to test if hotkeys also work on non-QWERTY keyboards.
|
||||
cy.document().trigger("keydown", { eventConstructor: 'KeyboardEvent', key: "n", code: "KeyL" });
|
||||
// See if the form is opened
|
||||
cy.get('[data-cy-post-form-text]').should('be.visible');
|
||||
// Close it
|
||||
cy.focused().trigger("keydown", { eventConstructor: 'KeyboardEvent', key: "Escape", code: "Escape" });
|
||||
// See if the form is closed
|
||||
cy.get('[data-cy-post-form-text]').should('not.be.visible');
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
@@ -1,3 +1,4 @@
|
||||
/* flaky
|
||||
describe('After user signed in', () => {
|
||||
beforeEach(() => {
|
||||
cy.resetState();
|
||||
@@ -10,6 +11,10 @@ describe('After user signed in', () => {
|
||||
cy.registerUser('alice', 'alice1234');
|
||||
|
||||
cy.login('alice', 'alice1234');
|
||||
|
||||
// アカウント初期設定ウィザード
|
||||
cy.get('[data-cy-user-setup] [data-cy-modal-window-close]').click();
|
||||
cy.get('[data-cy-modal-dialog-ok]').click();
|
||||
});
|
||||
|
||||
afterEach(() => {
|
||||
@@ -19,27 +24,27 @@ describe('After user signed in', () => {
|
||||
});
|
||||
|
||||
it('widget edit toggle is visible', () => {
|
||||
cy.get('.mk-widget-edit').should('be.visible');
|
||||
cy.get('[data-cy-widget-edit]').should('be.visible');
|
||||
});
|
||||
|
||||
it('widget select should be visible in edit mode', () => {
|
||||
cy.get('.mk-widget-edit').click();
|
||||
cy.get('.mk-widget-select').should('be.visible');
|
||||
cy.get('[data-cy-widget-edit]').click();
|
||||
cy.get('[data-cy-widget-select]').should('be.visible');
|
||||
});
|
||||
|
||||
it('first widget should be removed', () => {
|
||||
cy.get('.mk-widget-edit').click();
|
||||
cy.get('.customize-container:first-child .remove._button').click();
|
||||
cy.get('.customize-container').should('have.length', 2);
|
||||
cy.get('[data-cy-widget-edit]').click();
|
||||
cy.get('[data-cy-customize-container]:first-child [data-cy-customize-container-remove]._button').click();
|
||||
cy.get('[data-cy-customize-container]').should('have.length', 2);
|
||||
});
|
||||
|
||||
function buildWidgetTest(widgetName) {
|
||||
it(`${widgetName} widget should get added`, () => {
|
||||
cy.get('.mk-widget-edit').click();
|
||||
cy.get('.mk-widget-select select').select(widgetName, { force: true });
|
||||
cy.get('.bg._modalBg.transparent').click({ multiple: true, force: true });
|
||||
cy.get('.mk-widget-add').click({ force: true });
|
||||
cy.get(`.mkw-${widgetName}`).should('exist');
|
||||
cy.get('[data-cy-widget-edit]').click();
|
||||
cy.get('[data-cy-widget-select] select').select(widgetName, { force: true });
|
||||
cy.get('[data-cy-bg]._modalBg[data-cy-transparent]').click({ multiple: true, force: true });
|
||||
cy.get('[data-cy-widget-add]').click({ force: true });
|
||||
cy.get(`[data-cy-mkw-${widgetName}]`).should('exist');
|
||||
});
|
||||
}
|
||||
|
||||
@@ -63,3 +68,4 @@ describe('After user signed in', () => {
|
||||
buildWidgetTest('aiscript');
|
||||
buildWidgetTest('aichan');
|
||||
});
|
||||
*/
|
||||
|
||||
@@ -24,6 +24,11 @@
|
||||
// -- This will overwrite an existing command --
|
||||
// Cypress.Commands.overwrite('visit', (originalFn, url, options) => { ... })
|
||||
|
||||
Cypress.Commands.add('visitHome', () => {
|
||||
cy.visit('/');
|
||||
cy.get('button', { timeout: 30000 }).should('be.visible');
|
||||
})
|
||||
|
||||
Cypress.Commands.add('resetState', () => {
|
||||
cy.window(win => {
|
||||
win.indexedDB.deleteDatabase('keyval-store');
|
||||
@@ -43,7 +48,7 @@ Cypress.Commands.add('registerUser', (username, password, isAdmin = false) => {
|
||||
});
|
||||
|
||||
Cypress.Commands.add('login', (username, password) => {
|
||||
cy.visit('/');
|
||||
cy.visitHome();
|
||||
|
||||
cy.intercept('POST', '/api/signin').as('signin');
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ import './commands'
|
||||
|
||||
Cypress.on('uncaught:exception', (err, runnable) => {
|
||||
if ([
|
||||
'The source image cannot be decoded',
|
||||
|
||||
// Chrome
|
||||
'ResizeObserver loop limit exceeded',
|
||||
|
||||
|
||||
42
docker-compose.local-db.yml
Normal file
42
docker-compose.local-db.yml
Normal file
@@ -0,0 +1,42 @@
|
||||
version: "3"
|
||||
|
||||
# このconfigは、 dockerでMisskey本体を起動せず、 redisとpostgresql などだけを起動します
|
||||
|
||||
services:
|
||||
redis:
|
||||
restart: always
|
||||
image: redis:7-alpine
|
||||
ports:
|
||||
- "6379:6379"
|
||||
volumes:
|
||||
- ./redis:/data
|
||||
healthcheck:
|
||||
test: "redis-cli ping"
|
||||
interval: 5s
|
||||
retries: 20
|
||||
|
||||
db:
|
||||
restart: always
|
||||
image: postgres:15-alpine
|
||||
ports:
|
||||
- "5432:5432"
|
||||
env_file:
|
||||
- .config/docker.env
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
|
||||
interval: 5s
|
||||
retries: 20
|
||||
|
||||
# meilisearch:
|
||||
# restart: always
|
||||
# image: getmeili/meilisearch:v1.3.4
|
||||
# environment:
|
||||
# - MEILI_NO_ANALYTICS=true
|
||||
# - MEILI_ENV=production
|
||||
# env_file:
|
||||
# - .config/meilisearch.env
|
||||
# volumes:
|
||||
# - ./meili_data:/meili_data
|
||||
|
||||
@@ -1,52 +0,0 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
web:
|
||||
build: .
|
||||
restart: always
|
||||
links:
|
||||
- db
|
||||
- redis
|
||||
# - es
|
||||
ports:
|
||||
- "3000:3000"
|
||||
networks:
|
||||
- internal_network
|
||||
- external_network
|
||||
volumes:
|
||||
- ./files:/misskey/files
|
||||
- ./.config:/misskey/.config:ro
|
||||
|
||||
redis:
|
||||
restart: always
|
||||
image: redis:4.0-alpine
|
||||
networks:
|
||||
- internal_network
|
||||
volumes:
|
||||
- ./redis:/data
|
||||
|
||||
db:
|
||||
restart: always
|
||||
image: postgres:12.2-alpine
|
||||
networks:
|
||||
- internal_network
|
||||
env_file:
|
||||
- .config/docker.env
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
|
||||
# es:
|
||||
# restart: always
|
||||
# image: docker.elastic.co/elasticsearch/elasticsearch-oss:6.4.2
|
||||
# environment:
|
||||
# - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
|
||||
# - "TAKE_FILE_OWNERSHIP=111"
|
||||
# networks:
|
||||
# - internal_network
|
||||
# volumes:
|
||||
# - ./elasticsearch:/usr/share/elasticsearch/data
|
||||
|
||||
networks:
|
||||
internal_network:
|
||||
internal: true
|
||||
external_network:
|
||||
98
docker-compose_example.yml
Normal file
98
docker-compose_example.yml
Normal file
@@ -0,0 +1,98 @@
|
||||
version: "3"
|
||||
|
||||
services:
|
||||
web:
|
||||
build: .
|
||||
restart: always
|
||||
links:
|
||||
- db
|
||||
- redis
|
||||
# - mcaptcha
|
||||
# - meilisearch
|
||||
depends_on:
|
||||
db:
|
||||
condition: service_healthy
|
||||
redis:
|
||||
condition: service_healthy
|
||||
ports:
|
||||
- "3000:3000"
|
||||
networks:
|
||||
- internal_network
|
||||
- external_network
|
||||
volumes:
|
||||
- ./files:/misskey/files
|
||||
- ./.config:/misskey/.config:ro
|
||||
|
||||
redis:
|
||||
restart: always
|
||||
image: redis:7-alpine
|
||||
networks:
|
||||
- internal_network
|
||||
volumes:
|
||||
- ./redis:/data
|
||||
healthcheck:
|
||||
test: "redis-cli ping"
|
||||
interval: 5s
|
||||
retries: 20
|
||||
|
||||
db:
|
||||
restart: always
|
||||
image: postgres:15-alpine
|
||||
networks:
|
||||
- internal_network
|
||||
env_file:
|
||||
- .config/docker.env
|
||||
volumes:
|
||||
- ./db:/var/lib/postgresql/data
|
||||
healthcheck:
|
||||
test: "pg_isready -U $$POSTGRES_USER -d $$POSTGRES_DB"
|
||||
interval: 5s
|
||||
retries: 20
|
||||
|
||||
# mcaptcha:
|
||||
# restart: always
|
||||
# image: mcaptcha/mcaptcha:latest
|
||||
# networks:
|
||||
# internal_network:
|
||||
# external_network:
|
||||
# aliases:
|
||||
# - localhost
|
||||
# ports:
|
||||
# - 7493:7493
|
||||
# env_file:
|
||||
# - .config/docker.env
|
||||
# environment:
|
||||
# PORT: 7493
|
||||
# MCAPTCHA_redis_URL: "redis://mcaptcha_redis/"
|
||||
# depends_on:
|
||||
# db:
|
||||
# condition: service_healthy
|
||||
# mcaptcha_redis:
|
||||
# condition: service_healthy
|
||||
#
|
||||
# mcaptcha_redis:
|
||||
# image: mcaptcha/cache:latest
|
||||
# networks:
|
||||
# - internal_network
|
||||
# healthcheck:
|
||||
# test: "redis-cli ping"
|
||||
# interval: 5s
|
||||
# retries: 20
|
||||
|
||||
# meilisearch:
|
||||
# restart: always
|
||||
# image: getmeili/meilisearch:v1.3.4
|
||||
# environment:
|
||||
# - MEILI_NO_ANALYTICS=true
|
||||
# - MEILI_ENV=production
|
||||
# env_file:
|
||||
# - .config/meilisearch.env
|
||||
# networks:
|
||||
# - internal_network
|
||||
# volumes:
|
||||
# - ./meili_data:/meili_data
|
||||
|
||||
networks:
|
||||
internal_network:
|
||||
internal: true
|
||||
external_network:
|
||||
@@ -1,25 +0,0 @@
|
||||
DONATORS
|
||||
========
|
||||
The list of people who have sent donation for Misskey.
|
||||
|
||||
(In random order, honorific titles are omitted.)
|
||||
|
||||
* らふぁ
|
||||
* 俺様
|
||||
* なぎうり
|
||||
* スルメ https://surume.tk/
|
||||
* 藍
|
||||
* 音船 https://otofune.me/
|
||||
* aqz https://misskey.xyz/aqz
|
||||
* kotodu "虚無創作中"
|
||||
* Maya Minatsuki
|
||||
* Knzk https://knzk.me/@Knzk
|
||||
* ねじりわさび https://knzk.me/@y
|
||||
* NCLS https://knzk.me/@imncls]
|
||||
* こじま @skoji@sandbox.skoji.jp
|
||||
|
||||
:heart: Thanks for donating, guys!
|
||||
|
||||
---
|
||||
|
||||
If your name is missing, please contact us!
|
||||
65
gulpfile.js
65
gulpfile.js
@@ -1,65 +0,0 @@
|
||||
/**
|
||||
* Gulp tasks
|
||||
*/
|
||||
|
||||
const fs = require('fs');
|
||||
const gulp = require('gulp');
|
||||
const replace = require('gulp-replace');
|
||||
const terser = require('gulp-terser');
|
||||
const cssnano = require('gulp-cssnano');
|
||||
|
||||
const locales = require('./locales');
|
||||
const meta = require('./package.json');
|
||||
|
||||
gulp.task('copy:backend:views', () =>
|
||||
gulp.src('./packages/backend/src/server/web/views/**/*').pipe(gulp.dest('./packages/backend/built/server/web/views'))
|
||||
);
|
||||
|
||||
gulp.task('copy:frontend:fonts', () =>
|
||||
gulp.src('./packages/frontend/node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/_frontend_dist_/fonts/'))
|
||||
);
|
||||
|
||||
gulp.task('copy:frontend:tabler-icons', () =>
|
||||
gulp.src('./packages/frontend/node_modules/@tabler/icons/iconfont/**/*').pipe(gulp.dest('./built/_frontend_dist_/tabler-icons/'))
|
||||
);
|
||||
|
||||
gulp.task('copy:frontend:locales', cb => {
|
||||
fs.mkdirSync('./built/_frontend_dist_/locales', { recursive: true });
|
||||
|
||||
const v = { '_version_': meta.version };
|
||||
|
||||
for (const [lang, locale] of Object.entries(locales)) {
|
||||
fs.writeFileSync(`./built/_frontend_dist_/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
|
||||
}
|
||||
|
||||
cb();
|
||||
});
|
||||
|
||||
gulp.task('build:backend:script', () => {
|
||||
return gulp.src(['./packages/backend/src/server/web/boot.js', './packages/backend/src/server/web/bios.js', './packages/backend/src/server/web/cli.js'])
|
||||
.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
|
||||
.pipe(terser({
|
||||
toplevel: true
|
||||
}))
|
||||
.pipe(gulp.dest('./packages/backend/built/server/web/'));
|
||||
});
|
||||
|
||||
gulp.task('build:backend:style', () => {
|
||||
return gulp.src(['./packages/backend/src/server/web/style.css', './packages/backend/src/server/web/bios.css', './packages/backend/src/server/web/cli.css'])
|
||||
.pipe(cssnano({
|
||||
zindex: false
|
||||
}))
|
||||
.pipe(gulp.dest('./packages/backend/built/server/web/'));
|
||||
});
|
||||
|
||||
gulp.task('build', gulp.parallel(
|
||||
'copy:frontend:locales', 'copy:backend:views', 'build:backend:script', 'build:backend:style', 'copy:frontend:fonts', 'copy:frontend:tabler-icons'
|
||||
));
|
||||
|
||||
gulp.task('default', gulp.task('build'));
|
||||
|
||||
gulp.task('watch', () => {
|
||||
gulp.watch([
|
||||
'./packages/*/src/**/*',
|
||||
], { ignoreInitial: false }, gulp.task('build'));
|
||||
});
|
||||
7
healthcheck.sh
Normal file
7
healthcheck.sh
Normal file
@@ -0,0 +1,7 @@
|
||||
#!/bin/bash
|
||||
|
||||
# SPDX-FileCopyrightText: syuilo and other misskey contributors
|
||||
# SPDX-License-Identifier: AGPL-3.0-only
|
||||
|
||||
PORT=$(grep '^port:' /misskey/.config/default.yml | awk 'NR==1{print $2; exit}')
|
||||
curl -s -S -o /dev/null "http://localhost:${PORT}"
|
||||
@@ -2,6 +2,7 @@
|
||||
_lang_: "العربية"
|
||||
headlineMisskey: "شبكة مرتبطة بالملاحظات"
|
||||
introMisskey: "اهلا بك! ميسكي هو منصة تدوين مصغر لا مركزية ومفتوحة المصدر.\nيمكنك مشاركة \"ملاحظات\" عن ما يجري حولك، وإخبار الجميع عن نفسك 📡\nتسمح لك \"الانفعالات\" بتعبير عن شعورك حول ملاحظات الآخرين 👍\nاكتشف عالمًا جديدًا 🚀"
|
||||
poweredByMisskeyDescription: "{name} هو إحدى الخِدمات التي تستخدم المنصة مفتوحة المصدر <b>ميسكي</b> (يشار إليه كمثيل ميسكي)"
|
||||
monthAndDay: "{day}/{month}"
|
||||
search: "البحث"
|
||||
notifications: "الإشعارات"
|
||||
@@ -19,6 +20,7 @@ noNotes: "لم يُعثر على أية ملاحظات"
|
||||
noNotifications: "ليس هناك أية اشعارات"
|
||||
instance: "مثيل الخادم"
|
||||
settings: "الاعدادات"
|
||||
notificationSettings: "إعدادات الإشعارات"
|
||||
basicSettings: "الاعدادات الأساسية"
|
||||
otherSettings: "إعدادات أخرى"
|
||||
openInWindow: "افتح في نافذة جديدة"
|
||||
@@ -39,16 +41,23 @@ unfavorite: "إزالة من المفضلة"
|
||||
favorited: "أُضيف إلى المفضلة."
|
||||
alreadyFavorited: "تمت إضافته بالفعل إلى المفضلة."
|
||||
cantFavorite: "تعذرت الإضافة إلى المفضلة."
|
||||
pin: "دبّسها على الصفحة الشخصية"
|
||||
unpin: "ألغ تدبيسها من ملفك الشخصي"
|
||||
pin: "ثبتها على الصفحة الشخصية"
|
||||
unpin: "فكها من ملفك الشخصي"
|
||||
copyContent: "انسخ المحتوى"
|
||||
copyLink: "انسخ الرابط"
|
||||
delete: "حذف"
|
||||
deleteAndEdit: "إزالة وإعادة الصياغة"
|
||||
deleteAndEditConfirm: "أمتأكد من حذف الملاحظة؟ ستفقد كل مشاركاتها، والتفاعلات، والردود عليها."
|
||||
addToList: "أضفه إلى قائمة"
|
||||
addToAntenna: "أضف إلى هوائي"
|
||||
sendMessage: "أرسل رسالة"
|
||||
copyRSS: "انسخ رابط RSS"
|
||||
copyUsername: "انسخ اسم المستخدم"
|
||||
copyUserId: "انسخ معرف المستخدم"
|
||||
copyNoteId: "انسخ معرف الملاحظة"
|
||||
copyFileId: "انسخ معرّف الملف"
|
||||
copyFolderId: "انسخ معرّف المجلد"
|
||||
copyProfileUrl: "انسخ رابط الملف الشخصي"
|
||||
searchUser: "ابحث عن مستخدمين"
|
||||
reply: "رد"
|
||||
loadMore: "عرض المزيد"
|
||||
@@ -101,14 +110,16 @@ renoted: "أُعيد نشره"
|
||||
cantRenote: "لا يمكن إعادة نشر الملاحظة"
|
||||
cantReRenote: "لا يمكنك إعادة نشر ملاحظة معاد نشرها"
|
||||
quote: "اقتبس"
|
||||
pinnedNote: "ملاحظة مدبسة"
|
||||
pinned: "دبّسها على الصفحة الشخصية"
|
||||
inChannelRenote: "إعادة نشر في قناة"
|
||||
inChannelQuote: "اقتباس في قناة"
|
||||
pinnedNote: "ملاحظة مثبتة"
|
||||
pinned: "ثبتها على الصفحة الشخصية"
|
||||
you: "أنت"
|
||||
clickToShow: "اضغط للعرض"
|
||||
sensitive: "محتوى حساس"
|
||||
add: "إضافة"
|
||||
reaction: "التفاعلات"
|
||||
reactionSetting: "التفاعلات المراد عرضها في منتقي التفاعلات."
|
||||
reactions: "التفاعلات"
|
||||
reactionSettingDescription2: "اسحب لترتيب ، انقر للحذف ، استخدم \"+\" للإضافة."
|
||||
rememberNoteVisibility: "تذكر إعدادت مدى رؤية الملاحظات"
|
||||
attachCancel: "أزل المرفق"
|
||||
@@ -117,6 +128,8 @@ unmarkAsSensitive: "ألغ تعيينه كمحتوى حساس"
|
||||
enterFileName: "ادخل اسم الملف"
|
||||
mute: "اكتم"
|
||||
unmute: "إلغاء الكتم"
|
||||
renoteMute: "اكتم إعادة النشر"
|
||||
renoteUnmute: "ارفع الكتم عن إعادة النشر"
|
||||
block: "احجب"
|
||||
unblock: "إلغاء الحجب"
|
||||
suspend: "علِق"
|
||||
@@ -126,7 +139,10 @@ unblockConfirm: "أمتأكد من إلغاء حجب هذا الحساب؟"
|
||||
suspendConfirm: "أمتأكد من تعليق الحساب؟"
|
||||
unsuspendConfirm: "أمتأكد من إلغاء تعليق؟"
|
||||
selectList: "اختر قائمة"
|
||||
editList: "عدّل القائمة"
|
||||
selectChannel: "اختر قناة"
|
||||
selectAntenna: "اختر هوائيًا"
|
||||
editAntenna: "عدّل الهوائي"
|
||||
selectWidget: "اختر ودجة"
|
||||
editWidgets: "عدّل الودجات"
|
||||
editWidgetsExit: "تم"
|
||||
@@ -138,6 +154,7 @@ emojiUrl: "رابط الإيموجي"
|
||||
addEmoji: "إضافة إيموجي"
|
||||
settingGuide: "الإعدادات المستحسنة"
|
||||
cacheRemoteFiles: "خزن مؤقتا الملفات البعيدة"
|
||||
cacheRemoteFilesDescription: "إذا عُطل هذا الإعداد، ستُحمل الملفات من المثيل البعيد، هذا سيقلل من المساحة المستغلة على القرص لكن سيزيد حجم تدفق البيانات وهذا لأن الصور المصغرة لن تولّد."
|
||||
flagAsBot: "علّمه كحساب آلي"
|
||||
flagAsBotDescription: "فعّل هذا الخيار إذا كان هذا الحساب يُدار عبر برمجية. إذا فُعل فسيكون بمثابة علامة للمطورين الآخرين لتجنب سلاسل لا متناهية من التفاعل بين حسابات الآلية وضبط أنظمة ميسكي للتعامل مع هذا الحساب كآلي."
|
||||
flagAsCat: "علّم هذا الحساب كحساب قط"
|
||||
@@ -196,7 +213,7 @@ blockedUsers: "الحسابات المحجوبة"
|
||||
noUsers: "ليس هناك مستخدمون"
|
||||
editProfile: "تعديل الملف التعريفي"
|
||||
noteDeleteConfirm: "هل تريد حذف هذه الملاحظة؟"
|
||||
pinLimitExceeded: "لا يمكنك تدبيس الملاحظات بعد الآن."
|
||||
pinLimitExceeded: "لا يمكنك تثبيت الملاحظات بعد الآن."
|
||||
intro: "لقد انتهت عملية تنصيب Misskey. الرجاء إنشاء حساب إداري."
|
||||
done: "تمّ"
|
||||
processing: "المعالجة جارية"
|
||||
@@ -249,12 +266,16 @@ noMoreHistory: "لا يوجد المزيد من التاريخ"
|
||||
startMessaging: "ابدأ محادثة"
|
||||
nUsersRead: "قرأه {n}"
|
||||
agreeTo: "اوافق على {0}"
|
||||
tos: "شروط الخدمة"
|
||||
agree: "أقبل"
|
||||
agreeBelow: "أقبل ما يلي"
|
||||
basicNotesBeforeCreateAccount: "ملاحظات مهمة"
|
||||
termsOfService: "شروط الخدمة"
|
||||
start: "البداية"
|
||||
home: "الرئيسي"
|
||||
remoteUserCaution: "هذه المعلومات قد لا تكون مكتملة بما أن المستخدم من مثيل بعيد."
|
||||
activity: "النشاط"
|
||||
images: "الصور"
|
||||
images: "صور"
|
||||
image: "صور"
|
||||
birthday: "تاريخ الميلاد"
|
||||
yearsOld: "{age} سنة"
|
||||
registeredDate: "انضم في"
|
||||
@@ -291,7 +312,7 @@ copyUrl: "انسخ الرابط"
|
||||
rename: "إعادة التسمية"
|
||||
avatar: "الصورة الرمزية"
|
||||
banner: "الصورة الرأسية"
|
||||
nsfw: "محتوى حساس"
|
||||
displayOfSensitiveMedia: "عرض المحتوى الحساس"
|
||||
whenServerDisconnected: "عند فقدان الاتصال بالخادم"
|
||||
disconnectedFromServer: "قُطِع الإتصال بالخادم"
|
||||
reload: "انعش"
|
||||
@@ -326,20 +347,21 @@ invite: "دعوة"
|
||||
driveCapacityPerLocalAccount: "حصة التخزين لكل مستخدم محلي"
|
||||
driveCapacityPerRemoteAccount: "حصة التخزين لكل مستخدم بعيد"
|
||||
inMb: "بالميغابايت"
|
||||
iconUrl: "رابط الأيقونة"
|
||||
bannerUrl: "رابط صورة اللافتة"
|
||||
backgroundImageUrl: "رابط صورة الخلفية"
|
||||
basicInfo: "المعلومات الأساسية "
|
||||
pinnedUsers: "المستخدمون المدبسون"
|
||||
pinnedUsersDescription: "قائمة المستخدمين المدبسين في لسان \"استكشف\" ، اجعل كل اسم مستخدم في سطر لوحده."
|
||||
pinnedPages: "الصفحات المدبسة"
|
||||
pinnedPagesDescription: "أدخل مسار الصفحات التي تريد تدبيسها في أعلى هذا الموقع، اجعل كل مسار في سطر لوحده."
|
||||
pinnedClipId: "معرّف المشبك المدبس"
|
||||
pinnedNotes: "ملاحظة مدبسة"
|
||||
pinnedUsers: "المستخدمون المثبتون"
|
||||
pinnedUsersDescription: "قائمة المستخدمين المثبتين في لسان \"استكشف\" ، اجعل كل اسم مستخدم في سطر لوحده."
|
||||
pinnedPages: "الصفحات المثبتة"
|
||||
pinnedPagesDescription: "أدخل مسار الصفحات التي تريد تثبيتها في أعلى هذا الموقع، اجعل كل مسار في سطر لوحده."
|
||||
pinnedClipId: "معرّف المشبك المثبت"
|
||||
pinnedNotes: "ملاحظة مثبتة"
|
||||
hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "فعّل hCaptcha"
|
||||
hcaptchaSiteKey: "مفتاح الموقع"
|
||||
hcaptchaSecretKey: "المفتاح السري"
|
||||
mcaptchaSiteKey: "مفتاح الموقع"
|
||||
mcaptchaSecretKey: "المفتاح السري"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "تمكين reCAPTCHA"
|
||||
recaptchaSiteKey: "مفتاح الموقع"
|
||||
@@ -356,6 +378,7 @@ antennaExcludeKeywords: "الكلمات المفتاحية المستثناة"
|
||||
antennaKeywordsDescription: "افصل بينهم بمسافة لاستخدام معامل \"و\" أو بسطر لاستخدام معامل \"أو\""
|
||||
notifyAntenna: "نبهني بصول ملاحظات جديدة"
|
||||
withFileAntenna: "ملاحظات تحوي ملفات فقط"
|
||||
enableServiceworker: "فعّل إرسال الإشعارات للمتصفح"
|
||||
antennaUsersDescription: "اكتب اسم مستخدم لكل سطر"
|
||||
caseSensitive: "حساسية حالة الأحرف"
|
||||
withReplies: "بالردود"
|
||||
@@ -378,14 +401,15 @@ about: "عن"
|
||||
aboutMisskey: "عن Misskey"
|
||||
administrator: "المدير"
|
||||
token: "الرمز المميز"
|
||||
twoStepAuthentication: "الإستيثاق بعاملَيْن"
|
||||
2fa: "الاستيثاق بعاملَيْن"
|
||||
totp: "تطبيق استيثاق"
|
||||
moderator: "مشرِف"
|
||||
moderation: "الإشراف"
|
||||
nUsersMentioned: "{n} مستخدمين أُشير إليهم"
|
||||
securityKeyAndPasskey: "الأمن ومفاتيح الأمان"
|
||||
securityKey: "مفتاح الأمان"
|
||||
securityKeyName: "اسم المفتاح"
|
||||
registerSecurityKey: "سجل مفتاح أمان"
|
||||
lastUsed: "آخر استخدام"
|
||||
lastUsedAt: "آخر استخدام: {t}"
|
||||
unregister: "إلغاء التسجيل"
|
||||
passwordLessLogin: "لِج مِن دون كلمة سرية"
|
||||
resetPassword: "أعد تعيين كلمتك السرية"
|
||||
@@ -395,31 +419,21 @@ share: "شارِك"
|
||||
notFound: "غير موجود"
|
||||
notFoundDescription: "تعذر العثور على صفحة يقود إليها هذا الرابط."
|
||||
uploadFolder: "المجلد الافتراضي للرفع"
|
||||
cacheClear: "مسح ذاكرة التخزين المؤقت"
|
||||
markAsReadAllNotifications: "وضع جميع الإشعارات كأنها مقروءة"
|
||||
markAsReadAllUnreadNotes: "علّم جميع الملاحظات كمقروءة"
|
||||
markAsReadAllTalkMessages: "علّم جميع الرسائل كمقروءة"
|
||||
help: "المساعدة"
|
||||
inputMessageHere: "اكتب رسالتك هنا"
|
||||
close: "اغلق"
|
||||
group: "الفريق"
|
||||
groups: "الفِرَق"
|
||||
createGroup: "انشئ فريقًا"
|
||||
ownedGroups: "فِرقي"
|
||||
joinedGroups: "الفِرق المُنضم إليها"
|
||||
invites: "دعوة"
|
||||
groupName: "اسم الفريق"
|
||||
members: "الأعضاء"
|
||||
transfer: "نقل"
|
||||
messagingWithUser: "تحدث مع مستخدم"
|
||||
messagingWithGroup: "محادثة جماعية"
|
||||
title: "العنوان"
|
||||
text: "النص"
|
||||
enable: "تشغيل"
|
||||
next: "التالية"
|
||||
retype: "أعد الكتابة"
|
||||
noteOf: "ملاحظات {user}"
|
||||
inviteToGroup: "دعوة إلى فريق"
|
||||
quoteAttached: "اِقتُبسَ"
|
||||
quoteQuestion: "أتريد تضمينها كاقتباس"
|
||||
noMessagesYet: "ليس هناك رسائل بعد"
|
||||
@@ -441,14 +455,12 @@ passwordMatched: "التطابق صحيح!"
|
||||
passwordNotMatched: "غير متطابقتان"
|
||||
signinWith: "الولوج عبر {x}"
|
||||
signinFailed: "فشل الولوج، خطأ في اسم المستخدم أو كلمة المرور."
|
||||
tapSecurityKey: "أنقر مفتاح الأمان"
|
||||
or: "أو"
|
||||
language: "اللغة"
|
||||
uiLanguage: "لغة واجهة المستخدم"
|
||||
groupInvited: "دُعيت إلى فريقٍ"
|
||||
aboutX: "عن {x}"
|
||||
youHaveNoGroups: "لا تمتلك أية فِرَق"
|
||||
joinOrCreateGroup: "احصل على دعوة لفريق أو أنشئ واحدًا."
|
||||
emojiStyle: "نمط الوجوه التعبيرية"
|
||||
showNoteActionsOnlyHover: "أظهر الإجراءات عند التمرير فوق الملاحظة"
|
||||
noHistory: "السجل فارغ"
|
||||
signinHistory: "تاريخ تسجيل الدخول"
|
||||
doing: "انتظر لحظة"
|
||||
@@ -459,6 +471,7 @@ createAccount: "أنشئ حسابًا"
|
||||
existingAccount: "الحسابات الموجودة"
|
||||
regenerate: "أعِد التوليد"
|
||||
fontSize: "حجم الخط"
|
||||
limitTo: "سقفهُ لـ{x}"
|
||||
noFollowRequests: "ليس لديك طلبات متابعة معلقة"
|
||||
openImageInNewTab: "إفتح الصورة بصفحة جديدة"
|
||||
dashboard: "لوحة التحكم"
|
||||
@@ -480,13 +493,16 @@ objectStoragePrefix: "البادئة"
|
||||
objectStoragePrefixDesc: "ستُحفظ الملفات في مجلدات تحوي اسماءها هذه البادئة."
|
||||
objectStorageEndpoint: "نقطة النهاية"
|
||||
objectStorageRegion: "المنطقة"
|
||||
objectStorageRegionDesc: "حدد منطقة مثل \"xx-east-1\". إذا كانت خدمتك لا تميز بين المناطق استخدم \"us-east-1\" أو اتركها فارغة إذا كنت تستخدم متغيرات البيئة أو ملفات ضبط AWS."
|
||||
objectStorageUseSSL: "استخدم SSL"
|
||||
objectStorageUseSSLDesc: "عطل هذا الخيار إذا لم ترد استخدام API عبر HTTPS"
|
||||
objectStorageUseProxy: "اتصل عبر وكيل"
|
||||
objectStorageUseProxyDesc: "عطل هذا الخيار إذا لم ترد استخدام API عبر وكيل"
|
||||
objectStorageSetPublicRead: "عينها ك\"علنية\" عند الرفع"
|
||||
serverLogs: "سجلات الخادم"
|
||||
deleteAll: "حذف الكل"
|
||||
showFixedPostForm: "أظهر نموذج الكتابة في أعلى الصفحة"
|
||||
showFixedPostFormInChannel: "أظهر نموذج الكتابة في أعلى الخط الزمني (قنوات)"
|
||||
newNoteRecived: "هناك ملاحظات جديدة"
|
||||
sounds: "الرنات"
|
||||
sound: "الرنات"
|
||||
@@ -521,9 +537,12 @@ userSuspended: "عُلق هذا المستخدم."
|
||||
userSilenced: "كُتم هذا المستخدم."
|
||||
yourAccountSuspendedTitle: "هذا الحساب معلق"
|
||||
yourAccountSuspendedDescription: "عُلق الحساب بسبب انتهاك شروط خدمة المثيل و ما شابه. إذا أردت معرفة التفصيل تواصل مع مدير المثيل. رجاءً لا تنشئ حساب جديد."
|
||||
accountDeleted: "حُذف الحساب"
|
||||
accountDeletedDescription: "حُذف هذا الحساب."
|
||||
menu: "القائمة"
|
||||
divider: "فاصل"
|
||||
addItem: "إضافة عنصر"
|
||||
rearrange: "أعد الترتيب"
|
||||
relays: "المُرَحلات"
|
||||
addRelay: "إضافة مُرحّل"
|
||||
inboxUrl: "رابط صندوق الوارد"
|
||||
@@ -546,6 +565,8 @@ author: "الكاتب"
|
||||
leaveConfirm: "لديك تغييرات غير محفوظة. أتريد المتابعة دون حفظها؟"
|
||||
manage: "إدارة "
|
||||
plugins: "الإضافات"
|
||||
preferencesBackups: "النُسخ الاحتياطية للإعدادات"
|
||||
useBlurEffectForModal: "استخدم تأثير الطمس في المشروط"
|
||||
useFullReactionPicker: "استخدم الحجم الكامل لمنتقي التفاعلات"
|
||||
width: "العرض"
|
||||
height: "الإرتفاع"
|
||||
@@ -560,7 +581,6 @@ tokenRequested: "منح حق الوصول إلى الحساب"
|
||||
pluginTokenRequestedDescription: "ستتمكن الإضافة من استخدام هذه الأذونات."
|
||||
notificationType: "أنواع الإشعارات"
|
||||
edit: "التعديل"
|
||||
useStarForReactionFallback: "استخدم ★ كبديل إذا كان التفاعل مجهولًا"
|
||||
emailServer: "خادم البريد الإلكتروني"
|
||||
emailConfigInfo: "يستخدم لتأكيد عنوان بريدك الإلكتروني ولإعادة تعيين كلمة المرور إن نسيتها."
|
||||
email: "البريد الإلكتروني "
|
||||
@@ -622,7 +642,9 @@ clip: "مِشبك"
|
||||
createNew: "أنشِئ جديد"
|
||||
optional: "اختياري"
|
||||
createNewClip: "أنشئ مِشبكَا جديدًا"
|
||||
confirmToUnclipAlreadyClippedNote: "هذه الملاحظة تنتمي للمشبك {name} سلفًا، أتريد حذفها منه⸮"
|
||||
public: "علني"
|
||||
private: "خاص"
|
||||
i18nInfo: "يترجم متطوعون ميسكي إلى عدة لغات، يمكنك المساعدة عبر {link}"
|
||||
manageAccessTokens: "إدارة رموز الوصول"
|
||||
accountInfo: "معلومات الحساب"
|
||||
@@ -643,6 +665,7 @@ driveFilesCount: "عدد الملفات في قرص التخزين"
|
||||
driveUsage: "المستغل من قرص التخزين"
|
||||
noCrawle: "ارفض فهرسة زاحف الويب"
|
||||
noCrawleDescription: "يطلب من محركات البحث ألّا يُفهرسوا ملفك الشخصي وملاحظات وصفحاتك وما شابه."
|
||||
lockedAccountInfo: "ستكون هذه الملاحظة مرئية للجميع مالم تحدد مرئتيها إلى \"للمتابعين فقط\""
|
||||
alwaysMarkSensitive: "علّم افتراضيًا جميع ملاحظاتي كذات محتوى حساس"
|
||||
loadRawImages: "حمّل الصور الأصلية بدلًا من المصغرات"
|
||||
disableShowingAnimatedImages: "لا تشغّل الصور المتحركة"
|
||||
@@ -656,10 +679,13 @@ contact: "التواصل"
|
||||
useSystemFont: "استخدم الخط الافتراضية للنظام"
|
||||
clips: "مشابك"
|
||||
experimentalFeatures: "ميّزات اختبارية"
|
||||
experimental: "اختباري"
|
||||
developer: "المطور"
|
||||
makeExplorable: "أظهر الحساب في صفحة \"استكشاف\""
|
||||
makeExplorableDescription: "بتعطيل هذا الخيار لن يظهر حسابك في صفحة \"استكشاف\""
|
||||
showGapBetweenNotesInTimeline: "أظهر فجوات بين المشاركات في الخيط الزمني"
|
||||
left: "يسار"
|
||||
center: "وسط"
|
||||
wide: "عريض"
|
||||
narrow: "رفيع"
|
||||
reloadToApplySetting: "سيُطبق هذا الإعداد بعد إعادة تحميل الصفحة، أتريد إعادة تحميلها الآن؟"
|
||||
@@ -677,6 +703,7 @@ accentColor: "طابع لوني"
|
||||
textColor: "لون النص"
|
||||
saveAs: "احفظ كـ..."
|
||||
advanced: "متقدم"
|
||||
advancedSettings: "إعدادات متقدمة"
|
||||
value: "القيمة"
|
||||
createdAt: "أُنشئ في"
|
||||
updatedAt: "حُدّث في"
|
||||
@@ -696,6 +723,7 @@ editCode: "حرر الشفرة"
|
||||
apply: "تطبيق"
|
||||
receiveAnnouncementFromInstance: "استلم إشعارات من هذا المثيل"
|
||||
emailNotification: "إشعارات البريد الكتروني"
|
||||
publish: "علني"
|
||||
inChannelSearch: "ابحث عن قناة"
|
||||
useReactionPickerForContextMenu: "افتح منتقي التفاعلات عند النقر بالزر الأيمن"
|
||||
typingUsers: "{users} يكتب(ون)..."
|
||||
@@ -708,7 +736,7 @@ unlikeConfirm: "أتريد إلغاء إعجابك؟"
|
||||
fullView: "ملء الشاشة"
|
||||
quitFullView: "اخرج من وضع ملء للشاشة"
|
||||
addDescription: "أضف وصفًا"
|
||||
userPagePinTip: "لعرض ملاحظة هنا اختر \"دبسها على الصفحة الشخصية\" من قائمة تلك الملاحظة."
|
||||
userPagePinTip: "لعرض ملاحظة هنا اختر \"ثبتها على الصفحة الشخصية\" من قائمة تلك الملاحظة."
|
||||
notSpecifiedMentionWarning: "في الملاحظة ذكر لمستخدمين لن يستلموها."
|
||||
info: "عن"
|
||||
userInfo: "معلومات المستخدم"
|
||||
@@ -735,12 +763,14 @@ noMaintainerInformationWarning: "لم تُضبط معلومات المدير"
|
||||
noBotProtectionWarning: "لم تضبط الحماية من الحسابات الآلية"
|
||||
configure: "اضبط"
|
||||
postToGallery: "انشر في المعرض"
|
||||
postToHashtag: "انشر بهذا الوسم"
|
||||
gallery: "المعرض"
|
||||
recentPosts: "المشاركات الحديثة"
|
||||
popularPosts: "المشاركات المتداولة"
|
||||
shareWithNote: "شاركه في ملاحظة"
|
||||
ads: "الإعلانات"
|
||||
expiration: "ينتهي استطلاع الرأي في"
|
||||
startingperiod: "ابدأ"
|
||||
memo: "تذكير"
|
||||
priority: "الأولوية"
|
||||
high: "عالية"
|
||||
@@ -766,13 +796,18 @@ translate: "ترجم"
|
||||
translatedFrom: "تُرجم من {x}"
|
||||
accountDeletionInProgress: "حذف الحساب جارٍ"
|
||||
usernameInfo: "الاسم الذي يميزك عن بافي مستخدمي هذا الخادم، يمكنك استخدام الحروف اللاتينية (a~z, A~Z) والأرقام (0~9) والشرطة السفلية (_). لا يمكنك تغييره بعد تسجيله."
|
||||
devMode: "وضع المُطوّر"
|
||||
keepCw: "أبقِ على تحذيرات المحتوى"
|
||||
pubSub: "حسابات Pub/Sub"
|
||||
lastCommunication: "آخر تواصل"
|
||||
resolved: "عولج"
|
||||
unresolved: "لم يعالج"
|
||||
breakFollow: "إلغاء الاشتراك"
|
||||
breakFollowConfirm: "أمتأكد من إزالة المتابِع ؟"
|
||||
itsOn: "مفعّل"
|
||||
itsOff: "معطّل"
|
||||
on: "مفعل"
|
||||
off: "معطل"
|
||||
emailRequiredForSignup: "عنوان البريد الإلكتروني إلزامي للتسجيل"
|
||||
unread: "غير مقروءة"
|
||||
filter: "رشّح"
|
||||
@@ -783,14 +818,11 @@ makeReactionsPublicDescription: "هذا سيجعل قائمة تفاعلاتك
|
||||
classic: "تقليدي"
|
||||
muteThread: "اكتم النقاش"
|
||||
unmuteThread: "ارفع الكتم عن النقاش"
|
||||
ffVisibility: "مرئية المتابِعين/المتابَعين"
|
||||
ffVisibilityDescription: "يسمح لك بتحديد من يمكنهم رؤية متابِعيك ومتابَعيك."
|
||||
continueThread: "اعرض بقية النقاش"
|
||||
deleteAccountConfirm: "سيحذف حسابك نهائيًا، أتريد المتابعة؟"
|
||||
incorrectPassword: "كلمة السر خاطئة."
|
||||
voteConfirm: "متيقِّن من تصويتك لـ {choice}؟"
|
||||
hide: "إخفاء"
|
||||
leaveGroup: "مغادرة الفريق"
|
||||
leaveGroupConfirm: "متيقن من مغادرة \"{name}\"؟"
|
||||
welcomeBackWithName: "مرحبًا بك مجددًا {name}"
|
||||
clickToFinishEmailVerification: "انقر [{ok}] لاستيثاق بريدك الإلكتروني."
|
||||
overridedDeviceKind: "نوع الجهاز"
|
||||
@@ -802,21 +834,284 @@ size: "الحجم"
|
||||
numberOfColumn: "عدد الأعمدة"
|
||||
searchByGoogle: "غوغل"
|
||||
mutePeriod: "مدة الكتم"
|
||||
period: "ينتهي استطلاع الرأي في"
|
||||
indefinitely: "أبدًا"
|
||||
tenMinutes: "10 دقائق"
|
||||
oneHour: "ساعة"
|
||||
oneDay: "يوم"
|
||||
oneWeek: "أسبوع"
|
||||
oneMonth: "شهر"
|
||||
failedToFetchAccountInformation: "تعذر جلب معلومات الحساب"
|
||||
cropImage: "اقتصاص الصورة"
|
||||
cropImageAsk: "أتريد اقتصاص هذه الصورة"
|
||||
cropYes: "اقتص"
|
||||
cropNo: "استخدمها كما هي"
|
||||
file: "الملفات"
|
||||
recentNHours: "آخر {n} ساعة"
|
||||
recentNDays: "آخر {n} أيام"
|
||||
noEmailServerWarning: "خادم البريد غير مضبوط."
|
||||
thereIsUnresolvedAbuseReportWarning: "توجد بلاغات غير معالجة."
|
||||
recommended: "مقترح"
|
||||
check: "التحقق"
|
||||
driveCapOverrideLabel: "غيّر حجم قرص التخزين لهذا المستخدم"
|
||||
driveCapOverrideCaption: "أعد الحجم إلى القيمة الافتراضية بإدخال 0 أو أقل."
|
||||
requireAdminForView: "لاستعراض هذه الصفحة وجب عليك الولوج كمدير."
|
||||
isSystemAccount: "حساب أنشأه النظام ويُدار من قِبله."
|
||||
typeToConfirm: "أدخل {x} للتأكيد"
|
||||
deleteAccount: "احذف الحساب"
|
||||
document: "التوثيق"
|
||||
numberOfPageCache: "عدد الصفحات المخزنة مؤقتًا"
|
||||
numberOfPageCacheDescription: "رفع الرقم سيسحن تجربة المستخدم لكن سيرفع استهلاك الذاكرة."
|
||||
logoutConfirm: "أتريد الخروج؟"
|
||||
lastActiveDate: "آخر استخدام"
|
||||
statusbar: "شريط الحالة"
|
||||
pleaseSelect: "حدد خيارًا"
|
||||
reverse: "اقلب"
|
||||
colored: "ملوّن"
|
||||
refreshInterval: "مهلة التحديث"
|
||||
label: "التسمية"
|
||||
type: "نوع"
|
||||
speed: "سرعة"
|
||||
slow: "بطيء"
|
||||
fast: "سريع"
|
||||
sensitiveMediaDetection: "التعرف على المحتوى الحساس"
|
||||
localOnly: "المحلي فقط"
|
||||
remoteOnly: "بُعدي فقط"
|
||||
failedToUpload: "فشل الرفع"
|
||||
cannotUploadBecauseInappropriate: "تعذر رفع الملف لوجود محتوى حساس فيه."
|
||||
cannotUploadBecauseNoFreeSpace: "تعذر رفع الملف لنقص مساحة التخزين."
|
||||
cannotUploadBecauseExceedsFileSizeLimit: "تعذر رفع الملف بسبب تجاوز حجمه للحد المسموح"
|
||||
beta: "بيتا"
|
||||
enableAutoSensitive: "تعيين تلقائي كمحتوى حساس NSFW"
|
||||
enableAutoSensitiveDescription: "عند الاستطاعة يسمح باكتشاف المحتوى حساس NSFW تلقائيًا في الوسائط باستخدام تعلم الآلة ووسمها تبعًا لذلك. قد يكون هذا الخيار مفعلا من جهة الخادم وسيعمل حتى وان عُطل."
|
||||
activeEmailValidationDescription: "يتحقق من صحة عنوان البريد الإلكتروني بشكل أكثر حزمًا وذلك عبر تحديد ما إذا كان عنوان بريد إلكتروني مؤقت وإمكانية التواصل معه. إذا لم يحدد هذا الخيار فسيتحقق من نسق عنوان البريد الإلكتروني."
|
||||
navbar: "شريط التنقل"
|
||||
shuffle: "خلط"
|
||||
account: "الحسابات"
|
||||
move: "أنقل"
|
||||
pushNotification: "إرسال الإشعارات"
|
||||
subscribePushNotification: "فعّل إرسال الإشعارات"
|
||||
unsubscribePushNotification: "عطل إرسال الإشعارات"
|
||||
pushNotificationAlreadySubscribed: "إرسال الإشعارات مفعل سلفًا"
|
||||
pushNotificationNotSupported: "متصفحك لا يدعم إرسال الإشعارات أو المثيل لا يدعمها."
|
||||
sendPushNotificationReadMessage: "احذف الإشعارات فور قراءتها"
|
||||
sendPushNotificationReadMessageCaption: "هذا قد يزيد من معدل استهلاك الطاقة لجهازك."
|
||||
windowMaximize: "املأ الشاشة"
|
||||
windowRestore: "استرجاع"
|
||||
caption: "التعليق التوضيحي"
|
||||
loggedInAsBot: "والج كآلي"
|
||||
tools: "أدوات"
|
||||
cannotLoad: "تعذر التحميل"
|
||||
numberOfProfileView: "مشاهدات الملف الشخصي"
|
||||
like: "أعجبني"
|
||||
unlike: "ألغِ الإعجاب"
|
||||
numberOfLikes: "الإعجابات"
|
||||
show: "المظهر"
|
||||
neverShow: "لا تظهره مجددًا"
|
||||
remindMeLater: "ربما لاحقا"
|
||||
didYouLikeMisskey: "هل أعجبك ميسكي؟"
|
||||
pleaseDonate: "يستخدم {host} البرمجية الحرة ميسكي. نتمنى أن تتبرعوا للمشروع مما سيسمح لنا متابعة تطويره!"
|
||||
roles: "الأدوار"
|
||||
role: "الدور"
|
||||
noRole: "لم يُعثر على دور"
|
||||
normalUser: "مستخدم عادي"
|
||||
undefined: "غير معرّف"
|
||||
assign: "أسند"
|
||||
unassign: "ألغ الإسناد"
|
||||
color: "اللون"
|
||||
manageCustomEmojis: "إدارة الإيموجي المخصصة"
|
||||
youCannotCreateAnymore: "وصلت لسقف الإنشاء."
|
||||
cannotPerformTemporary: "غير متاح مؤقتاً"
|
||||
invalidParamError: "معاملات غير صالحة"
|
||||
permissionDeniedError: "رُفضة العملية"
|
||||
preset: "إعدادات مسبقة"
|
||||
selectFromPresets: "اختر من الإعدادات المسبقة"
|
||||
achievements: "الإنجازات"
|
||||
gotInvalidResponseError: "استجابة غير متوقعة من الخادم"
|
||||
gotInvalidResponseErrorDescription: "يتعذر الوصول إلى الخادم أوأنه يُصان، رجاءً حاول لاحقًا."
|
||||
thisPostMayBeAnnoying: "هذا قد يزعج الآخرين."
|
||||
thisPostMayBeAnnoyingHome: "أنشر في الخط الزمني الرئيس"
|
||||
thisPostMayBeAnnoyingCancel: "ألغِ"
|
||||
internalServerError: "خطأ داخلي في الخادم"
|
||||
internalServerErrorDescription: "واجه الخادم خطأ غي متوقع."
|
||||
copyErrorInfo: "انسخ تفاصيل الخطأ"
|
||||
joinThisServer: "سجل في هذا المثيل"
|
||||
exploreOtherServers: "اعثر على مثيل آخر"
|
||||
disableFederationOk: "عطّل"
|
||||
invitationRequiredToRegister: "هذا المثيل للمدعوين فقط. لتسجيل فيه تحتاج رمزًا صالحًا."
|
||||
postToTheChannel: "انشر في قناة"
|
||||
cannotBeChangedLater: "لا يمكن تغييره لاحقًا."
|
||||
reactionAcceptance: "قبول التفاعلات"
|
||||
rolesAssignedToMe: "الأدوار المسندة إلي"
|
||||
resetPasswordConfirm: "هل تريد إعادة تعيين كلمة السر؟"
|
||||
license: "الرخصة"
|
||||
unfavoriteConfirm: "أتريد إزالتها من المفضلة؟"
|
||||
reactionsDisplaySize: "حجم التفاعلات"
|
||||
limitWidthOfReaction: "تصغير حجم التفاعلات"
|
||||
noteIdOrUrl: "معرف الملاحظة أو رابطها"
|
||||
video: "فيديو"
|
||||
videos: "فيديوهات"
|
||||
dataSaver: "موفر البيانات"
|
||||
accountMigration: "ترحيل الحساب"
|
||||
accountMoved: "نقل هذا المستخدم حسابه:"
|
||||
accountMovedShort: "رُحل هذا الحساب."
|
||||
operationForbidden: "عملية ممنوعة"
|
||||
forceShowAds: "أظهر الإعلانات التجارية دائما"
|
||||
reactionsList: "التفاعلات"
|
||||
renotesList: "إعادات النشر"
|
||||
notificationDisplay: "إشعارات"
|
||||
leftTop: "أعلى اليسار"
|
||||
rightTop: "أعلى اليمين"
|
||||
leftBottom: "أسفل اليسار"
|
||||
rightBottom: "أسفل اليمين"
|
||||
stackAxis: "اتجاه التكديس"
|
||||
vertical: "عمودي"
|
||||
horizontal: "جانبي"
|
||||
position: "الموضع"
|
||||
serverRules: "قوانين الخادم"
|
||||
pleaseConfirmBelowBeforeSignup: "رجاءً وافق على ما يلي قبل التسجيل."
|
||||
pleaseAgreeAllToContinue: "للمتابعة وافق على الحقول أعلاه."
|
||||
continue: "متابعة"
|
||||
preservedUsernames: "أسماء المستخدمين المحجوزة"
|
||||
preservedUsernamesDescription: "قائمة بأسماء المستخدمين المحجوزة كلٌ في سطر. لن يُقبل التسجيل بهذه الأسماء وستبقى محصورة على التسجيل اليدوي بواسطة المديرين. لن يتأثر المستخدمون الذين يملكون هذه الأسماء سلفًا."
|
||||
createNoteFromTheFile: "أنشئ ملاحظة من هذا الملف"
|
||||
archive: "الأرشيف"
|
||||
channelArchiveConfirmTitle: "أتريد أرشفت {name}؟"
|
||||
channelArchiveConfirmDescription: "لن يمكنك نشر ملاحظات في القناة المأرشفة ولن تظهر في قائمة القنوات ولا في نتائج البحث."
|
||||
thisChannelArchived: "أُرشفت هذه القناة."
|
||||
displayOfNote: "عرض الملاحظة"
|
||||
initialAccountSetting: "إعداد الملف الشخصي"
|
||||
youFollowing: "متابَع"
|
||||
preventAiLearning: "منع استخدام البيانات في تعليم الآلة"
|
||||
options: "خيارات"
|
||||
specifyUser: "مستخدم محدد"
|
||||
failedToPreviewUrl: "تتعذر المعاينة"
|
||||
update: "حدِّث"
|
||||
rolesThatCanBeUsedThisEmojiAsReaction: "الأدوار التي يُسمح لأصحابها استخدام هذا اإيموجي في اللتفاعل"
|
||||
rolesThatCanBeUsedThisEmojiAsReactionEmptyDescription: "إذا لم تحدد دورًا يمكن للجميع استخدام هذا الإيموجي في التفاعل."
|
||||
rolesThatCanBeUsedThisEmojiAsReactionPublicRoleWarn: "يجب أن تكون الأدوار علنية."
|
||||
cancelReactionConfirm: "أتريد حذف تفاعلك؟"
|
||||
changeReactionConfirm: "أتريد تعديل تفاعلك؟"
|
||||
later: "لاحقاً"
|
||||
goToMisskey: "لميسكي"
|
||||
additionalEmojiDictionary: "قواميس إيموجي إضافية"
|
||||
installed: "مُثبت"
|
||||
enableServerMachineStats: "نشر إحصائيات عتاد الخادم"
|
||||
turnOffToImprovePerformance: "تفعيله قد يزيد الأداء."
|
||||
createInviteCode: "ولِّد دعوة"
|
||||
inviteCodeCreated: "ولِّدت دعوة"
|
||||
inviteLimitExceeded: "وصلتَ لحد عدد الدعوات المسموح لك توليدها."
|
||||
createLimitRemaining: "حد عدد الدعوات: {limit} دعوة"
|
||||
expirationDate: "تاريخ انتهاء الصلاحية"
|
||||
noExpirationDate: "لا نهاية لصلاحيتها"
|
||||
inviteCodeUsedAt: "اُستخدم رمز الدعوة في"
|
||||
registeredUserUsingInviteCode: "اِستخدم رمز الدعوة"
|
||||
unused: "غير مستعمَل"
|
||||
expired: "منتهية صلاحيته"
|
||||
icon: "الصورة الرمزية"
|
||||
replies: "رد"
|
||||
renotes: "أعد النشر"
|
||||
flip: "اقلب"
|
||||
lastNDays: "آخر {n} أيام"
|
||||
_initialAccountSetting:
|
||||
accountCreated: "نجح إنشاء حسابك!"
|
||||
letsStartAccountSetup: "إذا كنت جديدًا لنعدّ حسابك الشخصي."
|
||||
letsFillYourProfile: "أولًا لنعد ملفك الشخصي."
|
||||
profileSetting: "إعدادات الملف الشخصي"
|
||||
privacySetting: "إعدادات الخصوصية"
|
||||
theseSettingsCanEditLater: "يمكنك تغيير هذه الإعدادات لاحقًا."
|
||||
skipAreYouSure: "أتريد تخطي إعداد الملف الشخصي؟"
|
||||
laterAreYouSure: "أتريد إعداد الملف الشخصي لاحقًا؟"
|
||||
_serverRules:
|
||||
description: "مجموعة من القواعد لعرضها عند التسجيل، من المستحسن كتابة ملخصٍ للشروط الخدمة."
|
||||
_accountMigration:
|
||||
moveFrom: "انقل حسابًا آخر لهذا الحساب"
|
||||
moveFromLabel: "الحساب الأصلي #{n}"
|
||||
moveTo: "انقل هذا الحساب لحساب آخر"
|
||||
moveToLabel: "الحساب الوجهة:"
|
||||
moveCannotBeUndone: "لا يمكن التراجع عن نقل الحساب."
|
||||
movedTo: "الحساب الوجهة:"
|
||||
_achievements:
|
||||
_types:
|
||||
_notes1:
|
||||
description: "انشر ملاحظتك الأولى"
|
||||
flavor: "تمتع باستخدام ميسكي!"
|
||||
_notes10:
|
||||
title: "بعض الملاحظات"
|
||||
description: "انشر 10 ملاحظات"
|
||||
_notes100:
|
||||
title: "كثير من الملاحظات"
|
||||
description: "انشر 100 ملاحظة"
|
||||
_notes500:
|
||||
description: "انشر 500 ملاحظة"
|
||||
_notes1000:
|
||||
title: "جبل ملاحظات"
|
||||
description: "انشر 1000 ملاحظة"
|
||||
_notes5000:
|
||||
description: "انشر 5000 ملاحظة"
|
||||
_notes10000:
|
||||
description: "انشر 10000 ملاحظة"
|
||||
_notes20000:
|
||||
title: "أريد...ملاحظات...أكثر"
|
||||
description: "انشر 20000 ملاحظة"
|
||||
_notes30000:
|
||||
title: "ملاحظات وملاحظات وملاحظات"
|
||||
description: "انشر 30000 ملاحظة"
|
||||
_notes40000:
|
||||
title: "مصنع ملاحظات"
|
||||
description: "انشر 40000 ملاحظة"
|
||||
_notes50000:
|
||||
title: "كوكب ملاحظات"
|
||||
description: "انشر 50000 ملاحظة"
|
||||
_notes60000:
|
||||
title: "نجم ملاحظات"
|
||||
description: "انشر 60000 ملاحظة"
|
||||
_notes70000:
|
||||
title: "ثقب أسود للملاحظات"
|
||||
description: "انشر 70000 ملاحظة"
|
||||
_notes80000:
|
||||
title: "مجرة ملاحظات"
|
||||
description: "انشر 80000 ملاحظة"
|
||||
_notes90000:
|
||||
title: "كوْن ملاحظات"
|
||||
description: "انشر 90000 ملاحظة"
|
||||
_notes100000:
|
||||
title: "كل ملاحظاتك لنا"
|
||||
description: "انشر 100000 ملاحظة"
|
||||
flavor: "حقًا لديك الكثير من القصص"
|
||||
_login3:
|
||||
title: "مبتدأ I"
|
||||
_noteFavorited1:
|
||||
description: "فضًِل ملاحظتك الأولى"
|
||||
_myNoteFavorited1:
|
||||
title: "ساعٍ للنجوم"
|
||||
description: "أعجب شخص آخر بإحدى ملاحظاتك"
|
||||
_profileFilled:
|
||||
title: "مستعد"
|
||||
description: "أعدّ حسابك"
|
||||
_markedAsCat:
|
||||
title: "أنا قط"
|
||||
_role:
|
||||
new: "دور جديد"
|
||||
edit: "حرر الأدوار"
|
||||
name: "اسم الدور"
|
||||
description: "وصف الدور"
|
||||
permission: "أذونات الدور"
|
||||
assignTarget: "نوع الإسناد"
|
||||
condition: "الشرط"
|
||||
options: "خيارات"
|
||||
policies: "السياسة العامة"
|
||||
priority: "الأولوية"
|
||||
_priority:
|
||||
low: "منخفضة"
|
||||
middle: "متوسط"
|
||||
high: "عالية"
|
||||
_options:
|
||||
canManageCustomEmojis: "إدارة الإيموجي المخصصة"
|
||||
pinMax: "حد عدد الملاحظات المثبتة"
|
||||
_condition:
|
||||
isLocal: "مستخدم محلي"
|
||||
isRemote: "مستخدم بعيد"
|
||||
_emailUnavailable:
|
||||
used: "هذا البريد الإلكتروني مستخدم"
|
||||
format: "صيغة البريد الإلكتروني غير صالحة"
|
||||
@@ -840,6 +1135,7 @@ _accountDelete:
|
||||
_ad:
|
||||
back: "رجوع"
|
||||
reduceFrequencyOfThisAd: "قلل عرض هذا الإعلان"
|
||||
hide: "لا تظهره بتاتًا"
|
||||
_forgotPassword:
|
||||
enterEmail: "أدخل البريد الإلكتروني المرتبط بحسابك لكي يرسل إليك رابط لإعادة تعيين كلمة المرور."
|
||||
ifNoEmail: "إذا لم تربط حسابك ببريد إلكتروني سيتوجب عليك التواصل مع مدير الموقع."
|
||||
@@ -858,6 +1154,10 @@ _plugin:
|
||||
install: "ثبّت إضافات"
|
||||
installWarn: "رجاءً لا تثبت إضافات غير موثوقة."
|
||||
manage: "إدارة الإضافات"
|
||||
viewSource: "اظهر المصدر"
|
||||
_preferencesBackups:
|
||||
createdAt: "تم إنشاؤه: {date} {time}"
|
||||
updatedAt: "آخر تحديث: {date} {time}"
|
||||
_registry:
|
||||
scope: "الحيّز"
|
||||
key: "مفتاح"
|
||||
@@ -873,60 +1173,6 @@ _aboutMisskey:
|
||||
donate: "تبرع لميسكي"
|
||||
morePatrons: "نحن نقدر الدعم الذي قدمه العديد من الأشخاص الذين لم نذكرهم. شكرًا لكم 🥰"
|
||||
patrons: "الداعمون"
|
||||
_nsfw:
|
||||
respect: "اخف الوسائط ذات المحتوى الحساس"
|
||||
ignore: "اعرض الوسائط ذات المحتوى الحساس"
|
||||
force: "اخف كل الوسائط"
|
||||
_mfm:
|
||||
cheatSheet: "مرجع ملخص عن MFM"
|
||||
intro: "MFM هي لغة ترميزية مخصصة يمكن استخدامها في عدّة أماكن في ميسكي. يمكنك مراجعة كل تعابيرها مع كيفية استخدامها هنا."
|
||||
mention: "أشر الى"
|
||||
mentionDescription: "يمكنك الإشارة لمستخدم معيّن من خلال كتابة @ متبوعة باسم مستخدم."
|
||||
hashtag: "الوسوم"
|
||||
hashtagDescription: "يمكنك تعيين وسم من خلال كتابة # متبوعة بالنص المطلوب."
|
||||
url: "الرابط"
|
||||
urlDescription: "يمكن عرض الروابط"
|
||||
link: "رابط"
|
||||
bold: "عريض"
|
||||
boldDescription: "جعل الحروف أثخن لإبرازها."
|
||||
small: "صغير"
|
||||
smallDescription: "يعرض المحتوى صغيرًا ورفيعًا."
|
||||
center: "وسط"
|
||||
centerDescription: "يمركز المحتوى في الوَسَط."
|
||||
quote: "اقتبس"
|
||||
quoteDescription: "يعرض المحتوى كاقتباس"
|
||||
emoji: "إيموجي مخصص"
|
||||
emojiDescription: "إحاطة اسم الإيموجي بنقطتي تفسير سيستبدله بصورة الإيموجي."
|
||||
search: "البحث"
|
||||
searchDescription: "يعرض نصًا في صندوق البحث"
|
||||
flip: "اقلب"
|
||||
flipDescription: "يقلب المحتوى عموديًا أو أفقيًا"
|
||||
jelly: "تأثير (هلام)"
|
||||
jellyDescription: "يمنح المحتوى حركة هلامية."
|
||||
tada: "تأثير (تادا)"
|
||||
tadaDescription: "يمنح للمحتوى تأثير تادا"
|
||||
jump: "تأثير (قفز)"
|
||||
jumpDescription: "يمنح للمحتوى حركة قفز."
|
||||
bounce: "تأثير (ارتداد)"
|
||||
bounceDescription: "يمنح للمحتوى حركة ارتدادية"
|
||||
shake: "تأثير (اهتزاز)"
|
||||
shakeDescription: "يمنح المحتوى حركة اهتزازية."
|
||||
spin: "تأثير (دوران)"
|
||||
spinDescription: "يمنح المحتوى حركة دورانية."
|
||||
x2: "كبير"
|
||||
x2Description: "يُكبر المحتوى"
|
||||
x3: "كبير جداً"
|
||||
x3Description: "يُضخم المحتوى"
|
||||
x4: "هائل"
|
||||
x4Description: "يُضخم المحتوى أكثر مما سبق."
|
||||
blur: "طمس"
|
||||
blurDescription: "يطمس المحتوى، لكن بالتمرير فوقه سيظهر بوضوح."
|
||||
font: "الخط"
|
||||
fontDescription: "الخط المستخدم لعرض المحتوى."
|
||||
rainbow: "قوس قزح"
|
||||
rainbowDescription: "اجعل المحتوى يظهر بألوان الطيف"
|
||||
rotate: "تدوير"
|
||||
rotateDescription: "يُدير المحتوى بزاوية معيّنة."
|
||||
_instanceTicker:
|
||||
none: "لا تظهره بتاتًا"
|
||||
remote: "أظهر للمستخدمين البِعاد"
|
||||
@@ -952,11 +1198,6 @@ _wordMute:
|
||||
muteWords: "الكلمات المحظورة"
|
||||
muteWordsDescription: "افصل بينهم بمسافة لاستخدام معامل \"و\" أو بسطر لاستخدام معامل \"أو\"."
|
||||
muteWordsDescription2: "احصر الكلمات المفتاحية بين بين شرطتين مائلتين لاستخدامها كتعابير نمطية"
|
||||
softDescription: "اخف الملاحظات التي تستوف الشروط من الخيط الزمني."
|
||||
hardDescription: "اخف الملاحظات التي تستوف الشروط من الخيط الزمني.بالإضافة إلى أن هذه الملاحظات ستبقى مخفية حتى وإن تغيرت الشروط."
|
||||
soft: "لينة"
|
||||
hard: "قاسية"
|
||||
mutedNotes: "الملاحظات المكتومة"
|
||||
_instanceMute:
|
||||
instanceMuteDescription: "هذه سيحجب كل ملاحظات الخوادم المحجوبة ومشاركاتها والردود على تلك الملاحظات حتى وإن كانت من خادم غير محجوب."
|
||||
instanceMuteDescription2: "مدخلة لكل سطر"
|
||||
@@ -1016,8 +1257,6 @@ _sfx:
|
||||
note: "الملاحظات"
|
||||
noteMy: "ملاحظتي"
|
||||
notification: "الإشعارات"
|
||||
chat: "المحادثة"
|
||||
chatBg: "المحادثة (الخلفية)"
|
||||
antenna: "الهوائيات"
|
||||
channel: "إشعارات القنات"
|
||||
_ago:
|
||||
@@ -1030,42 +1269,19 @@ _ago:
|
||||
weeksAgo: "منذ {n} أسابيع"
|
||||
monthsAgo: "منذ {n} أشهر"
|
||||
yearsAgo: "منذ {n} سنوات"
|
||||
invalid: "لا يوجد شيء هنا"
|
||||
_time:
|
||||
second: "ثا"
|
||||
minute: "د"
|
||||
hour: "سا"
|
||||
day: "ي"
|
||||
_tutorial:
|
||||
title: "كيف تستخدم Misskey"
|
||||
step1_1: "مرحبًا!"
|
||||
step1_2: "تدعى هذه الصفحة 'الخيط الزمني' وهي تحوي ملاحظات الأشخاص الذي تتابعهم مرتبة حسب تاريخ نشرها."
|
||||
step1_3: "خيطك الزمني فارغ حاليًا بما أنك لا تتابع أي شخص ولم تنشر أي ملاحظة."
|
||||
step2_1: "لننهي إعداد ملفك الشخصي قبل كتابة ملاحظة أو متابعة أشخاص."
|
||||
step2_2: "أعطاء معلومات عن شخصيتك يمنح من له نفس إهتماماتك فرصة متابعتك والتفاعل مع ملاحظاتك."
|
||||
step3_1: "هل أنهيت إعداد حسابك؟"
|
||||
step3_2: "إذا تاليًا لتنشر ملاحظة. أنقر على أيقونة القلم في أعلى الشاشة"
|
||||
step3_3: "املأ النموذج وانقر الزرّ الموجود في أعلى اليمين للإرسال."
|
||||
step3_4: "ليس لديك ما تقوله؟ إذا اكتب \"بدأتُ استخدم ميسكي\"."
|
||||
step4_1: "هل نشرت ملاحظتك الأولى؟"
|
||||
step4_2: "مرحى! يمكنك الآن رؤية ملاحظتك في الخيط الزمني."
|
||||
step5_1: "والآن، لنجعل الخيط الزمني أكثر حيوية وذلك بمتابعة بعض المستخدمين."
|
||||
step5_2: "تعرض صفحة {features} الملاحظات المتداولة في هذا المثيل ويتيح لك {Explore} العثور على المستخدمين الرائدين. اعثر على الأشخاص الذين يثيرون إهتمامك وتابعهم!"
|
||||
step5_3: "لمتابعة مستخدمين ادخل ملفهم الشخصي بالنقر على صورتهم الشخصية ثم اضغط زر 'تابع'."
|
||||
step5_4: "إذا كان لدى المستخدم رمز قفل بجوار اسمه ، وجب عليك انتظاره ليقبل طلب المتابعة يدويًا."
|
||||
step6_1: "الآن ستتمكن من رؤية ملاحظات المستخدمين المتابَعين في الخيط الزمني."
|
||||
step6_2: "يمكنك التفاعل بسرعة مع الملاحظات عن طريق إضافة \"تفاعل\"."
|
||||
step6_3: "لإضافة تفاعل لملاحظة ، انقر فوق علامة \"+\" أسفل للملاحظة واختر الإيموجي المطلوب."
|
||||
step7_1: "مبارك ! أنهيت الدورة التعليمية الأساسية لاستخدام ميسكي."
|
||||
step7_2: "إذا أردت معرفة المزيد عن ميسكي زر {help}."
|
||||
step7_3: "حظًا سعيدًا واستمتع بوقتك مع ميسكي! 🚀"
|
||||
_2fa:
|
||||
alreadyRegistered: "سجلت سلفًا جهازًا للاستيثاق بعاملين."
|
||||
registerDevice: "سجّل جهازًا جديدًا"
|
||||
registerKey: "تسجيل مفتاح أمان جديد"
|
||||
step1: "أولًا ثبّت تطبيق استيثاق على جهازك (مثل {a} و{b})."
|
||||
step2: "امسح رمز الاستجابة السريعة الموجد على الشاشة."
|
||||
step3: "أدخل الرمز الموجود في تطبيقك لإكمال التثبيت."
|
||||
step4: "من هذه اللحظة أثناء ولوجك سيُطلب منك الرمز."
|
||||
renewTOTPCancel: "ليس اﻵن"
|
||||
_permissions:
|
||||
"read:account": "اعرض معلومات حسابك"
|
||||
"write:account": "تعديل معلومات حسابك"
|
||||
@@ -1117,6 +1333,8 @@ _weekday:
|
||||
friday: "الجمعة"
|
||||
saturday: "السبت"
|
||||
_widgets:
|
||||
profile: "الملف التعريفي"
|
||||
instanceInfo: "معلومات مثيل الخادم"
|
||||
memo: "ملاحظة لاصقة"
|
||||
notifications: "الإشعارات"
|
||||
timeline: "الخيط الزمني"
|
||||
@@ -1134,6 +1352,7 @@ _widgets:
|
||||
onlineUsers: "المتّصلون"
|
||||
jobQueue: "قائمة الانتظار"
|
||||
serverMetric: "إحصائيات الخادم"
|
||||
userList: "قائمة المستخدمين"
|
||||
_userList:
|
||||
chooseList: "اختر قائمة"
|
||||
_cw:
|
||||
@@ -1172,8 +1391,6 @@ _visibility:
|
||||
followersDescription: "اجعلها مرئية لمتابِعيك فقط"
|
||||
specified: "مباشرة"
|
||||
specifiedDescription: "اجعلها مرئية لمستخدمين محددين"
|
||||
localOnly: "المحلي فقط"
|
||||
localOnlyDescription: "ليس مرئيًا للمستخدمين البِعاد"
|
||||
_postForm:
|
||||
replyPlaceholder: "رد على هذه الملاحظة…"
|
||||
quotePlaceholder: "اقتبس هذه الملاحظة…"
|
||||
@@ -1199,6 +1416,8 @@ _profile:
|
||||
changeBanner: "غيّر اللافتة"
|
||||
_exportOrImport:
|
||||
allNotes: "كل الملاحظات"
|
||||
favoritedNotes: " الملاحظات المفضلة"
|
||||
clips: "مِشبك"
|
||||
followingList: "المتابَعون"
|
||||
muteList: "المستخدمون المكتومون"
|
||||
blockingList: "المستخدمون المحجوبون"
|
||||
@@ -1217,6 +1436,8 @@ _charts:
|
||||
notesTotal: "إجمالي الملاحظات"
|
||||
filesIncDec: "تباين عدد الملفات"
|
||||
filesTotal: "العدد الإجمالي للملفات"
|
||||
storageUsageIncDec: "التباين في استغلال مساحة التخزين"
|
||||
storageUsageTotal: "اجمالي مساحة التخزين المستغلة"
|
||||
_instanceCharts:
|
||||
requests: "الطلبات"
|
||||
users: "تباين عدد المستخدمين"
|
||||
@@ -1262,7 +1483,7 @@ _pages:
|
||||
url: "رابط الصفحة"
|
||||
summary: "ملخص الصفحة"
|
||||
alignCenter: "توسيط العناصر"
|
||||
hideTitleWhenPinned: "اخف عنوان الصفحة عند تدبيسها في ملف الشخصي"
|
||||
hideTitleWhenPinned: "اخف عنوان الصفحة عند تثبيتها في ملف الشخصي"
|
||||
font: "الخط"
|
||||
fontSerif: "Serif"
|
||||
fontSansSerif: "Sans Serif"
|
||||
@@ -1277,7 +1498,7 @@ _pages:
|
||||
text: "نص"
|
||||
textarea: "حقل نصي"
|
||||
section: "قسم"
|
||||
image: "الصور"
|
||||
image: "صور"
|
||||
button: "زرّ"
|
||||
note: "ملاحظة مضمّنة"
|
||||
_note:
|
||||
@@ -1292,49 +1513,58 @@ _notification:
|
||||
fileUploaded: "نجح رفع الملف"
|
||||
youGotMention: "{name} أشار إليك"
|
||||
youGotReply: "ردّ عليك {name}"
|
||||
youGotQuote: "اقتبس منك {name}"
|
||||
youRenoted: "إعادت نشر من {name}"
|
||||
youGotPoll: "شارك {name} في استطلاع الرأي"
|
||||
youGotMessagingMessageFromUser: "لقد تلقيت رسالة مِن {name}"
|
||||
youGotMessagingMessageFromGroup: "لقد أرسِلَت رسالة إلى الفريق {name}"
|
||||
youGotQuote: "اقتبس {name} منشورك"
|
||||
youRenoted: "أعاد {name} نشر منشورك"
|
||||
youWereFollowed: "يتابعك"
|
||||
youReceivedFollowRequest: "تلقيتَ طلب متابعة"
|
||||
yourFollowRequestAccepted: "قُبل طلب المتابعة"
|
||||
youWereInvitedToGroup: "دُعيت إلى فريقٍ"
|
||||
pollEnded: "ظهرت نتائج الاستطلاع"
|
||||
pollEnded: "انتهى الاستطلاع"
|
||||
unreadAntennaNote: "هوائي {name}"
|
||||
_types:
|
||||
all: "الكل"
|
||||
follow: "متابِعون جدد"
|
||||
mention: "الإشارات"
|
||||
reply: "الردود"
|
||||
renote: "أعد النشر"
|
||||
renote: "أعاد النشر"
|
||||
quote: "الاقتباسات"
|
||||
reaction: "التفاعلات"
|
||||
pollVote: "مصوِت شارك في الاستطلاع"
|
||||
receiveFollowRequest: "طلبات المتابعة المتلقاة"
|
||||
reaction: "التفاعل"
|
||||
receiveFollowRequest: "طلبات المتابعة"
|
||||
followRequestAccepted: "طلبات المتابعة المقبولة"
|
||||
groupInvited: "دعوات الفريق"
|
||||
app: "إشعارات التطبيقات المرتبطة"
|
||||
_actions:
|
||||
followBack: "تابعك بالمثل"
|
||||
reply: "رد"
|
||||
renote: "أعد النشر"
|
||||
_deck:
|
||||
alwaysShowMainColumn: "أظهر العمود الرئيسي دائمًا"
|
||||
columnAlign: "حاذِ الأعمدة"
|
||||
addColumn: "أضف عمودًا"
|
||||
swapLeft: "حرّك لليسار"
|
||||
swapRight: "حرّك لليمين"
|
||||
swapUp: "حرّك لأعلى"
|
||||
swapDown: "حرّك لأسفل"
|
||||
profile: "الملف الشخصي"
|
||||
alwaysShowMainColumn: "أظهر العمود الأساسي دائمًا"
|
||||
columnAlign: "محاذاة الأعمدة"
|
||||
addColumn: "إضافة عمود"
|
||||
swapLeft: "التحريك إلى اليسار"
|
||||
swapRight: "التحريك إلى اليمين"
|
||||
swapUp: "التحريك إلى الأعلى"
|
||||
swapDown: "التحريك إلى الأسفل"
|
||||
profile: "حسابي الشخصي"
|
||||
newProfile: "ملف تعريفي جديد"
|
||||
deleteProfile: "حذف الملف التعريفي"
|
||||
_columns:
|
||||
main: "الرئيسي"
|
||||
widgets: "الودجات"
|
||||
main: "الرئيسية"
|
||||
widgets: "التطبيقات المُصغّرة"
|
||||
notifications: "الإشعارات"
|
||||
tl: "الخيط الزمني"
|
||||
tl: "الخط الزمني"
|
||||
antenna: "الهوائيات"
|
||||
list: "القوائم"
|
||||
channel: "القنوات"
|
||||
mentions: "الإشارات"
|
||||
direct: "مباشرة"
|
||||
_webhookSettings:
|
||||
name: "الاسم"
|
||||
active: "مُفعّل"
|
||||
_events:
|
||||
reaction: "عند التفاعل"
|
||||
_moderationLogTypes:
|
||||
suspend: "علِق"
|
||||
resetPassword: "أعد تعيين كلمتك السرية"
|
||||
createInvitation: "ولِّد دعوة"
|
||||
_reversi:
|
||||
total: "المجموع"
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
_lang_: "বাংলা"
|
||||
headlineMisskey: "নোট ব্যাবহার করে সংযুক্ত নেটওয়ার্ক"
|
||||
introMisskey: "স্বাগতম! মিসকি একটি ওপেন সোর্স, ডিসেন্ট্রালাইজড মাইক্রোব্লগিং পরিষেবা। \n\"নোট\" তৈরির মাধ্যমে যা ঘটছে তা সবার সাথে শেয়ার করুন 📡\n\"রিঅ্যাকশন\" গুলির মাধ্যমে যেকোনো নোট সম্পর্কে আপনার অনুভূতি ব্যাক্ত করতে পারেন 👍\nএকটি নতুন দুনিয়া ঘুরে দেখুন 🚀\n"
|
||||
poweredByMisskeyDescription: "{name} হল ওপেন সোর্স প্ল্যাটফর্ম <b>Misskey</b>-এর সার্ভারগুলির একটি৷"
|
||||
monthAndDay: "{day}/{month}"
|
||||
search: "খুঁজুন"
|
||||
notifications: "বিজ্ঞপ্তি"
|
||||
@@ -12,12 +13,14 @@ fetchingAsApObject: "ফেডিভার্স থেকে খবর আন
|
||||
ok: "ঠিক"
|
||||
gotIt: "বুঝেছি"
|
||||
cancel: "বাতিল"
|
||||
noThankYou: "না, ধন্যবাদ"
|
||||
enterUsername: "ইউজারনেম লিখুন"
|
||||
renotedBy: "{user} রিনোট করেছেন"
|
||||
noNotes: "কোন নোট নেই"
|
||||
noNotifications: "কোনো বিজ্ঞপ্তি নেই"
|
||||
instance: "ইন্সট্যান্স"
|
||||
settings: "সেটিংস"
|
||||
notificationSettings: "বিজ্ঞপ্তির সেটিংস"
|
||||
basicSettings: "সাধারণ সেটিংস"
|
||||
otherSettings: "অন্যান্য সেটিংস"
|
||||
openInWindow: "নতুন উইন্ডোতে খুলা"
|
||||
@@ -42,12 +45,20 @@ pin: "পিন করা"
|
||||
unpin: "পিন সরান"
|
||||
copyContent: "বিষয়বস্তু কপি করুন"
|
||||
copyLink: "লিঙ্ক কপি করুন"
|
||||
copyLinkRenote: "রিনোট লিঙ্ক কপি করুন"
|
||||
delete: "মুছুন"
|
||||
deleteAndEdit: "মুছুন এবং সম্পাদনা করুন"
|
||||
deleteAndEditConfirm: "আপনি কি এই নোটটি মুছে এটি সম্পাদনা করার বিষয়ে নিশ্চিত? আপনি এটির সমস্ত রিঅ্যাকশন, রিনোট এবং জবাব হারাবেন।"
|
||||
addToList: "লিস্ট এ যোগ করুন"
|
||||
addToAntenna: "অ্যান্টেনা এ যোগ করুন"
|
||||
sendMessage: "একটি বার্তা পাঠান"
|
||||
copyRSS: "RSS কপি করুন"
|
||||
copyUsername: "ব্যবহারকারীর নাম কপি করুন"
|
||||
copyUserId: "ব্যবহারকারীর ID কপি করুন"
|
||||
copyNoteId: "নোটের ID কপি করুন"
|
||||
copyFileId: "ফাইল ID কপি করুন"
|
||||
copyFolderId: "ফোল্ডার ID কপি করুন"
|
||||
copyProfileUrl: "প্রোফাইল URL কপি করুন"
|
||||
searchUser: "ব্যবহারকারী খুঁজুন..."
|
||||
reply: "জবাব"
|
||||
loadMore: "আরও দেখুন"
|
||||
@@ -100,6 +111,8 @@ renoted: "রিনোট করা হয়েছে"
|
||||
cantRenote: "এই নোটটি রিনোট করা যাবে না।"
|
||||
cantReRenote: "রিনোটকে রিনোট করা যাবে না।"
|
||||
quote: "উদ্ধৃতি"
|
||||
inChannelRenote: "চ্যানেলে রিনোট"
|
||||
inChannelQuote: "চ্যানেলে উদ্ধৃতি"
|
||||
pinnedNote: "পিন করা নোট"
|
||||
pinned: "পিন করা"
|
||||
you: "আপনি"
|
||||
@@ -107,7 +120,11 @@ clickToShow: "দেখার জন্য ক্লিক করুন"
|
||||
sensitive: "সংবেদনশীল বিষয়বস্তু"
|
||||
add: "যুক্ত করুন"
|
||||
reaction: "প্রতিক্রিয়া"
|
||||
reactionSetting: "রিঅ্যাকশন পিকারে যেসকল প্রতিক্রিয়া দেখানো হবে"
|
||||
reactions: "প্রতিক্রিয়া"
|
||||
emojiPicker: "ইমোজি পিকার"
|
||||
pinnedEmojisForReactionSettingDescription: "রিঅ্যাকশন দেয়ার সময় আপনি ইমোজিটিকে পিন করা এবং প্রদর্শিত হওয়ার জন্য সেট করতে পারেন।"
|
||||
pinnedEmojisSettingDescription: "ইমোজি ইনপুট দেয়ার সময় আপনি ইমোজিটিকে পিন করা এবং প্রদর্শিত হওয়ার জন্য সেট করতে পারেন।"
|
||||
emojiPickerDisplay: "পিকার ডিসপ্লে"
|
||||
reactionSettingDescription2: "পুনরায় সাজাতে টেনে আনুন, মুছতে ক্লিক করুন, যোগ করতে + টিপুন।"
|
||||
rememberNoteVisibility: "নোটের দৃশ্যমান্যতার সেটিংস মনে রাখুন"
|
||||
attachCancel: "অ্যাটাচমেন্ট সরান "
|
||||
@@ -251,12 +268,12 @@ noMoreHistory: "আর কোন ইতিহাস নেই"
|
||||
startMessaging: "চ্যাট শুরু করুন"
|
||||
nUsersRead: "{n} জন পড়েছেন"
|
||||
agreeTo: "{0} এর প্রতি আমি সম্মত"
|
||||
tos: "পরিষেবার শর্তাদি"
|
||||
start: "শুরু করুন"
|
||||
home: "মূল পাতা"
|
||||
remoteUserCaution: "এই ব্যাবহারকারী রিমোট ইন্সট্যান্সের, নিম্নক্ত তথ্য অসম্পূর্ণ হতে পারে।"
|
||||
activity: "কার্যকলাপ"
|
||||
images: "ছবি"
|
||||
image: "ছবি"
|
||||
birthday: "জন্মদিন"
|
||||
yearsOld: "{age} বছর"
|
||||
registeredDate: "যোগদানের তারিখ"
|
||||
@@ -293,7 +310,6 @@ copyUrl: "URL কপি করুন"
|
||||
rename: "পুনঃনামকরণ"
|
||||
avatar: "প্রোফাইল ছবি"
|
||||
banner: "ব্যানার"
|
||||
nsfw: "সংবেদনশীল বিষয়বস্তু"
|
||||
whenServerDisconnected: "সার্ভারের সাথে সংযোগ বিচ্ছিন্ন হয়ে গেলে"
|
||||
disconnectedFromServer: "সার্ভার থেকে সংযোগ বিচ্ছিন্ন হয়েছে"
|
||||
reload: "আবার লোড করুন"
|
||||
@@ -328,7 +344,6 @@ invite: "আমন্ত্রণ"
|
||||
driveCapacityPerLocalAccount: "প্রত্যেক স্থানীয় ব্যাবহারকারীর জন্য ড্রাইভের জায়গা"
|
||||
driveCapacityPerRemoteAccount: "প্রত্যেক রিমোট ব্যাবহারকারীর জন্য ড্রাইভের জায়গা"
|
||||
inMb: "মেগাবাইটে লিখুন"
|
||||
iconUrl: "আইকনের URL (ফ্যাভিকন, ইত্যাদি)"
|
||||
bannerUrl: "ব্যানার ছবির URL"
|
||||
backgroundImageUrl: "পটভূমির চিত্রের URL"
|
||||
basicInfo: "আপনার ব্যক্তিগত তথ্য"
|
||||
@@ -342,6 +357,8 @@ hcaptcha: "hCaptcha"
|
||||
enableHcaptcha: "hCaptcha চালু করুন"
|
||||
hcaptchaSiteKey: "সাইট কী"
|
||||
hcaptchaSecretKey: "সিক্রেট কী"
|
||||
mcaptchaSiteKey: "সাইট কী"
|
||||
mcaptchaSecretKey: "সিক্রেট কী"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "reCAPTCHA চালু করুন"
|
||||
recaptchaSiteKey: "সাইট কী"
|
||||
@@ -381,12 +398,9 @@ about: "আপনার সম্পর্কে"
|
||||
aboutMisskey: "Misskey সম্পর্কে"
|
||||
administrator: "প্রশাসক"
|
||||
token: "টোকেন"
|
||||
twoStepAuthentication: "২-ধাপ প্রমাণীকরণ"
|
||||
moderator: "মডারেটর"
|
||||
nUsersMentioned: "{n} জনকে উল্লেখ করা হয়েছে"
|
||||
securityKey: "সিকিউরিটি কী"
|
||||
securityKeyName: "কী'র নাম"
|
||||
registerSecurityKey: "সিকিউরিটি কী নিবন্ধন করুন"
|
||||
lastUsed: "শেষ ব্যাবহার করা হয়েছে"
|
||||
unregister: "নিবন্ধনমুক্ত হন"
|
||||
passwordLessLogin: "পাসওয়ার্ড-বিহীন লগইন সেট আপ করুন"
|
||||
@@ -397,31 +411,21 @@ share: "শেয়ার"
|
||||
notFound: "পাওয়া যায়নি"
|
||||
notFoundDescription: "এই URL-এর সাথে সম্পর্কিত কোনো পৃষ্ঠা নেই।"
|
||||
uploadFolder: "আপলোডের জন্য ডিফল্ট ফোল্ডার"
|
||||
cacheClear: "ক্যাশ পরিষ্কার করুন"
|
||||
markAsReadAllNotifications: "সমস্ত বিজ্ঞপ্তিগুলি পঠিত হিসাবে চিহ্নিত করুন"
|
||||
markAsReadAllUnreadNotes: "সমস্ত নোটগুলি পঠিত হিসাবে চিহ্নিত করুন"
|
||||
markAsReadAllTalkMessages: "সমস্ত মেসেজ পঠিত হিসাবে চিহ্নিত করুন"
|
||||
help: "সহায়তা"
|
||||
inputMessageHere: "এখানে মেসেজ লিখুন"
|
||||
close: "বন্ধ"
|
||||
group: "গ্রুপ"
|
||||
groups: "গ্রুপসমূহ"
|
||||
createGroup: "গ্রুপ তৈরী করুন"
|
||||
ownedGroups: "আপনার গ্রুপগুলি"
|
||||
joinedGroups: "যেসব গ্রুপে আপনি আছেন"
|
||||
invites: "আমন্ত্রণ"
|
||||
groupName: "গ্রুপের নাম"
|
||||
members: "সদস্যবৃন্দ"
|
||||
transfer: "হস্তান্তর"
|
||||
messagingWithUser: "প্রাইভেট চ্যাট"
|
||||
messagingWithGroup: "গ্রুপ চ্যাট"
|
||||
title: "শিরোনাম"
|
||||
text: "পাঠ্য"
|
||||
enable: "সক্রিয়"
|
||||
next: "পরবর্তী"
|
||||
retype: "পুনঃ প্রবেশ"
|
||||
noteOf: "{user} এর নোট"
|
||||
inviteToGroup: "গ্রুপে আমন্ত্রণ জানান"
|
||||
quoteAttached: "উদ্ধৃত"
|
||||
quoteQuestion: "উদ্ধৃতি হিসাবে সংযুক্ত করবেন?"
|
||||
noMessagesYet: "কোন মেসেজ নেই"
|
||||
@@ -443,18 +447,13 @@ passwordMatched: "মিলেছে"
|
||||
passwordNotMatched: "মিলেনি"
|
||||
signinWith: "{x} এর সাহায্যে সাইন ইন করুন"
|
||||
signinFailed: "লগ ইন করা যায়নি। আপনার ব্যবহারকারীর নাম এবং পাসওয়ার্ড চেক করুন."
|
||||
tapSecurityKey: "সিকিউরিটি কী স্পর্শ করুন"
|
||||
or: "অথবা"
|
||||
language: "ভাষা"
|
||||
uiLanguage: "UI এর ভাষা"
|
||||
groupInvited: "আপনি একটি গ্রুপে আমন্ত্রিত হয়েছেন"
|
||||
aboutX: "{x} সম্পর্কে"
|
||||
disableDrawer: "ড্রয়ার মেনু প্রদর্শন করবেন না"
|
||||
youHaveNoGroups: "আপনার কোন গ্রুপ নেই "
|
||||
joinOrCreateGroup: "একটি বিদ্যমান গ্রুপের আমন্ত্রণ পান বা একটি নতুন গ্রুপ তৈরি করুন৷"
|
||||
noHistory: "কোনো ইতিহাস নেই"
|
||||
signinHistory: "প্রবেশ করার ইতিহাস"
|
||||
disableAnimatedMfm: "অ্যানিমেটেড MFM অক্ষম করুন"
|
||||
doing: "প্রক্রিয়া করছে..."
|
||||
category: "বিভাগ"
|
||||
tags: "ট্যাগসমূহ"
|
||||
@@ -578,7 +577,6 @@ tokenRequested: "অ্যাকাউন্টে অ্যাক্সেস
|
||||
pluginTokenRequestedDescription: "এই প্লাগইনটি এখানে দেওয়া অনুমুতিসমূহ ব্যাবহার করবে"
|
||||
notificationType: "বিজ্ঞপ্তির ধরন"
|
||||
edit: "সম্পাদনা"
|
||||
useStarForReactionFallback: "রিঅ্যাকশনের ইমোজি না জানলে ★ ব্যবহার করুন"
|
||||
emailServer: "ইমেইল সার্ভার"
|
||||
enableEmail: "ইমেইল বিতরণ চালু করুন"
|
||||
emailConfigInfo: "আপনার ইমেল ঠিকানা নিশ্চিত করতে এবং আপনার পাসওয়ার্ড পুনরায় সেট করতে ব্যবহৃত হয়"
|
||||
@@ -646,6 +644,7 @@ createNew: "নতুন"
|
||||
optional: "প্রয়োজনীয় নয়"
|
||||
createNewClip: "নতুন ক্লিপ তৈরি করুন"
|
||||
public: "সর্বজনীন"
|
||||
private: "ব্যাক্তিগত"
|
||||
i18nInfo: "Misskey স্বেচ্ছাসেবকদের দ্বারা বিভিন্ন ভাষায় অনুবাদ করা হচ্ছে। আপনি {link} এ গিয়ে অনুবাদে সহযোগিতা করতে পারেন।"
|
||||
manageAccessTokens: "অ্যাক্সেস টোকেন পরিচালনা করুন"
|
||||
accountInfo: "অ্যাকাউন্টের তথ্য"
|
||||
@@ -813,15 +812,11 @@ makeReactionsPublicDescription: "আপনার পূর্ববর্তী
|
||||
classic: "ক্লাসিক"
|
||||
muteThread: "থ্রেড মিউট করুন"
|
||||
unmuteThread: "থ্রেড আনমিউট করুন"
|
||||
ffVisibility: "অনুসরণ/অনুসরণকারীদের দৃশ্যমান্যতা"
|
||||
ffVisibilityDescription: "আপনি কাকে অনুসরণ করেন এবং কে আপনাকে অনুসরণ করে, সেটা কারা দেখতে পাবে তা নির্ধারণ করে।"
|
||||
continueThread: "আরো থ্রেড দেখুন"
|
||||
deleteAccountConfirm: "আপনার অ্যাকাউন্ট মুছে ফেলা হবে। ঠিক আছে?"
|
||||
incorrectPassword: "আপনার দেওয়া পাসওয়ার্ডটি ভুল।"
|
||||
voteConfirm: "\"{choice}\" এ ভোট দিতে চান?"
|
||||
hide: "লুকান"
|
||||
leaveGroup: "গ্রুপ ছেড়ে চলে যান"
|
||||
leaveGroupConfirm: "\"{name}\" গ্রুপ ছেড়ে চলে যেতে চান?"
|
||||
useDrawerReactionPickerForMobile: "মোবাইলে রিঅ্যাকশন পিকারকে ড্রয়ারে প্রদর্শন করুন"
|
||||
welcomeBackWithName: "আবার স্বাগতম, {name}"
|
||||
clickToFinishEmailVerification: " [{ok}] ক্লিক করার মাধ্যমে আপনার ইমেল ঠিকানা নিশ্চিত করুন।"
|
||||
@@ -837,6 +832,7 @@ instanceDefaultLightTheme: "ইন্সট্যান্সের ডিফল
|
||||
instanceDefaultDarkTheme: "ইন্সট্যান্সের ডিফল্ট ডার্ক থিম"
|
||||
instanceDefaultThemeDescription: "অবজেক্ট ফরম্যাটে থিম কোড লিখুন"
|
||||
mutePeriod: "মিউটের সময়কাল"
|
||||
period: "পোলের সময়সীমা"
|
||||
indefinitely: "অনির্দিষ্ট"
|
||||
tenMinutes: "১০ মিনিট"
|
||||
oneHour: "১ ঘণ্টা"
|
||||
@@ -853,6 +849,19 @@ localOnly: "শুধুমাত্র লোকাল"
|
||||
account: "অ্যাকাউন্টগুলি"
|
||||
like: "পছন্দ করা"
|
||||
show: "প্রদর্শন"
|
||||
color: "রং"
|
||||
horizontal: "পাশে"
|
||||
youFollowing: "অনুসরণ করা হচ্ছে"
|
||||
icon: "প্রোফাইল ছবি"
|
||||
replies: "জবাব"
|
||||
renotes: "রিনোট"
|
||||
flip: "উল্টান"
|
||||
_role:
|
||||
priority: "অগ্রাধিকার"
|
||||
_priority:
|
||||
low: "নিম্ন"
|
||||
middle: "মাঝারি"
|
||||
high: "উচ্চ"
|
||||
_emailUnavailable:
|
||||
used: "এই ইমেইল ঠিকানাটি ইতোমধ্যে ব্যবহৃত হয়েছে"
|
||||
format: "এই ইমেল ঠিকানাটি সঠিকভাবে লিখা হয়নি"
|
||||
@@ -877,6 +886,7 @@ _accountDelete:
|
||||
_ad:
|
||||
back: "পিছনে"
|
||||
reduceFrequencyOfThisAd: "এই বিজ্ঞাপনটি কম দেখান"
|
||||
hide: "দেখাবেন না"
|
||||
_forgotPassword:
|
||||
enterEmail: "আপনি আপনার অ্যাকাউন্টের জন্য নিবন্ধিত ইমেল ঠিকানা লিখুন. সেই ঠিকানায় একটি পাসওয়ার্ড রিসেট লিঙ্ক পাঠানো হবে।"
|
||||
ifNoEmail: "আপনি যদি নিবন্ধনের সময় ই-মেইল ঠিকানা না দিয়ে থাকেন, তাহলে অনুগ্রহ করে প্রশাসকের সাথে যোগাযোগ করুন।"
|
||||
@@ -895,6 +905,7 @@ _plugin:
|
||||
install: "প্লাগইন ইন্সটল করুন"
|
||||
installWarn: "অবিশ্বস্ত প্লাগইন ইনস্টল করবেন না।"
|
||||
manage: "প্লাগইন ম্যানেজ করুন"
|
||||
viewSource: "উৎস দেখুন"
|
||||
_registry:
|
||||
scope: "স্কোপ"
|
||||
key: "কী"
|
||||
@@ -910,74 +921,6 @@ _aboutMisskey:
|
||||
donate: "Misskey তে দান করুন"
|
||||
morePatrons: "আরও অনেকে আমাদের সাহায্য করছেন। তাদের সবাইকে ধন্যবাদ 🥰"
|
||||
patrons: "সমর্থনকারী"
|
||||
_nsfw:
|
||||
respect: "স্পর্শকাতর মিডিয়া লুকান"
|
||||
ignore: "স্পর্শকাতর মিডিয়া লুকাবেন না"
|
||||
force: "সকল মিডিয়া লুকান"
|
||||
_mfm:
|
||||
cheatSheet: "MFM চিটশিট"
|
||||
intro: "MFM একটি মার্কআপ ভাষা যা Misskey-এর মধ্যে বিভিন্ন জায়গায় ব্যবহার করা যেতে পারে। এখানে আপনি MFM-এর সিনট্যাক্সগুলির একটি তালিকা দেখতে পারবেন।"
|
||||
dummy: "মিসকি ফেডিভার্সের বিশ্বকে প্রসারিত করে"
|
||||
mention: "উল্লেখ"
|
||||
mentionDescription: "@ চিহ্ন + ব্যবহারকারীর নাম একটি নির্দিষ্ট ব্যবহারকারীকে নির্দেশ করতে ব্যবহার করা যায়।"
|
||||
hashtag: "হ্যাশট্যাগ"
|
||||
hashtagDescription: "আপনি একটি # চিহ্ন + ট্যাগ সহ একটি হ্যাশট্যাগ নির্দেশ করতে পারেন।"
|
||||
url: "URL"
|
||||
urlDescription: "URL দেখানো সম্ভব।"
|
||||
link: "লিংক"
|
||||
linkDescription: "আপনি পাঠ্যের একটি নির্দিষ্ট অংশকে URL হিসাবে দেখাতে পারেন৷"
|
||||
bold: "গাঢ়"
|
||||
boldDescription: "অক্ষরগুলিকে মোটাকরে প্রদর্শন করা হবে।"
|
||||
small: "ছোট"
|
||||
smallDescription: "লেখা ছোট এবং পাতলা করে দেখানো হবে।"
|
||||
center: "সেন্টার"
|
||||
centerDescription: "লেখা মাঝ বরাবর দেখানো হবে"
|
||||
inlineCode: "কোড (ইনলাইন)"
|
||||
inlineCodeDescription: " প্রোগ্রামের কোডের জন্য ইনলাইন সিনট্যাক্স হাইলাইটিং করা হবে"
|
||||
blockCode: "কোড (ব্লক)"
|
||||
blockCodeDescription: "মাল্টি-লাইন প্রোগ্রামের কোডের জন্য সিনট্যাক্স হাইলাইট করে।"
|
||||
inlineMath: "গাণিতিক সূত্র (ইনলাইন)"
|
||||
inlineMathDescription: "গাণিতিক সূত্র প্রদর্শন করুন (KaTeX) ইনলাইন।"
|
||||
blockMath: "গাণিতিক সূত্র (ব্লক)"
|
||||
blockMathDescription: "একটি ব্লকে একাধিক লাইনের গাণিতিক সূত্র প্রদর্শন করুন (KaTeX)।"
|
||||
quote: "উদ্ধৃতি"
|
||||
quoteDescription: "বিষয়বস্তুকে একটি উদ্ধৃতি হিসাবে দেখানো হবে।"
|
||||
emoji: "স্বনির্ধারিত ইমোজিগুলি"
|
||||
emojiDescription: "আপনি একটি কাস্টম ইমোজির নাম কোলনে আবদ্ধ করে কাস্টম ইমোজিটি দেখাতে পারেন৷"
|
||||
search: "খুঁজুন"
|
||||
searchDescription: "পূর্ব-টাইপ করা পাঠ্য সহ একটি অনুসন্ধান বাক্স প্রদর্শন করে।"
|
||||
flip: "উল্টান"
|
||||
flipDescription: "বিষয়বস্তু উপরে/নীচে বা বাম/ডানে উল্টান।"
|
||||
jelly: "অ্যানিমেশন (জেলি)"
|
||||
jellyDescription: "জেলির মত অ্যানিমেশন দেখায়।"
|
||||
tada: "অ্যানিমেশন (টাডা)"
|
||||
tadaDescription: "\"টাডা!\" এর মত অ্যানিমেশন দেখায়।"
|
||||
jump: "অ্যানিমেশন (লাফ)"
|
||||
jumpDescription: "বিষয়বস্তুতে লাফ মারার মত অ্যানিমেশন দেখায়।"
|
||||
bounce: "অ্যানিমেশন (তিড়িং বিড়িং)"
|
||||
bounceDescription: "তিড়িং বিড়িং করার মত অ্যানিমেশন দেখায়।"
|
||||
shake: "অ্যানিমেশন (ঝাঁকি)"
|
||||
shakeDescription: "ঝাঁকির মত অ্যানিমেশন দেখায়।"
|
||||
twitch: "অ্যানিমেশন (মোচড়ানো)"
|
||||
twitchDescription: "মোচড়ানোর মত অ্যানিমেশন দেখায়।"
|
||||
spin: "অ্যানিমেশন (ঘুরা)"
|
||||
spinDescription: "ঘুরার মত অ্যানিমেশন দেখায়।"
|
||||
x2: "বড়"
|
||||
x2Description: "বিষয়বস্তু বড় করে দেখায়।"
|
||||
x3: "অনেক বড়"
|
||||
x3Description: "বিষয়বস্তু আরও বড় করে দেখায়।"
|
||||
x4: "অস্বাভাবিক বড়"
|
||||
x4Description: "বিষয়বস্তুকে আগের থেকেও আরও বড় করে দেখায়।"
|
||||
blur: "ব্লার"
|
||||
blurDescription: "বিষয়বস্তুকে ব্লার করতে পারেন। আপনি এর উপর মাউস কার্সার রাখলে, এটি পরিষ্কারভাবে দেখতে পাবেন।"
|
||||
font: "ফন্ট"
|
||||
fontDescription: "বিষয়বস্তুকে কোন ফন্টে দেখানো হবে তা নির্ধারণ করে।"
|
||||
rainbow: "রেইনবো"
|
||||
rainbowDescription: "বিষয়বস্তুকে রংধনুর রং গুলিতে প্রদর্শন করে।"
|
||||
sparkle: "চিক চিক"
|
||||
sparkleDescription: "বিষয়বস্তুকে একটি চিকচিকে কণা প্রভাব দেয়।"
|
||||
rotate: "ঘুরান"
|
||||
rotateDescription: "বিষয়বস্তুকে একটি নির্দিষ্ট কোনে ঘুরায়।"
|
||||
_instanceTicker:
|
||||
none: "দেখাবেন না"
|
||||
remote: "রিমোট ব্যাবহারকারীদের জন্য দেখান"
|
||||
@@ -1005,11 +948,6 @@ _wordMute:
|
||||
muteWords: "নিঃশব্দ করা শব্দগুলি"
|
||||
muteWordsDescription: "স্পেস দিয়ে আলাদা করলে AND শর্ত তৈরি হবে এবং আলাদা লাইনে লিখলে OR শর্ত তৈরি হবে।"
|
||||
muteWordsDescription2: "রেগুলার এক্সপ্রেশন ব্যবহার করতে স্ল্যাশ দিয়ে কীওয়ার্ডকে ঘিরে রাখুন।"
|
||||
softDescription: "টাইমলাইন থেকে নির্দিষ্ট শর্তানুযায়ী নোট লুকিয়ে রাখে।"
|
||||
hardDescription: "নির্দিষ্ট শর্তানুযায়ী নোটগুলিকে টাইমলাইন থেকে বাদ দেয়। আপনি শর্ত পরিবর্তন করলেও যে নোটগুলি যোগ করা হয়নি সেগুলি বাদ দেওয়া হবে।"
|
||||
soft: "নমনীয়"
|
||||
hard: "কঠোর"
|
||||
mutedNotes: "মিউট করা নোটগুলি"
|
||||
_instanceMute:
|
||||
instanceMuteDescription: "কনফিগার করা ইন্সট্যান্সের সব নোট এবং রিনোট মিউট করুন, মিউট করা ইন্সট্যান্সের ব্যবহারকারীদের উত্তর সহ।"
|
||||
instanceMuteDescription2: "প্রতিটিকে আলাদা লাইনে লিখুন"
|
||||
@@ -1073,9 +1011,6 @@ _theme:
|
||||
infoFg: "তথ্যের পাঠ্য"
|
||||
infoWarnBg: "ওয়ার্নিং এর পটভূমি"
|
||||
infoWarnFg: "ওয়ার্নিং এর পাঠ্য"
|
||||
cwBg: "CW বাটনের পটভূমি"
|
||||
cwFg: "CW বাটনের পাঠ্য"
|
||||
cwHoverBg: "CW বাটনের পটভূমি (হভার)"
|
||||
toastBg: "বিজ্ঞপ্তির পটভূমি"
|
||||
toastFg: "বিজ্ঞপ্তির পাঠ্য"
|
||||
buttonBg: "বাটনের পটভূমি"
|
||||
@@ -1093,8 +1028,6 @@ _sfx:
|
||||
note: "নোটগুলি"
|
||||
noteMy: "নোট (আপনার)"
|
||||
notification: "বিজ্ঞপ্তি"
|
||||
chat: "চ্যাট"
|
||||
chatBg: "চ্যাট (ব্যাকগ্রাউন্ড)"
|
||||
antenna: "অ্যান্টেনাগুলি"
|
||||
channel: "চ্যানেলের বিজ্ঞপ্তি"
|
||||
_ago:
|
||||
@@ -1107,44 +1040,20 @@ _ago:
|
||||
weeksAgo: "{n} সপ্তাহ আগে"
|
||||
monthsAgo: "{n} মাস আগে"
|
||||
yearsAgo: "{n} বছর আগে"
|
||||
invalid: "এখানে কিছুই নাই"
|
||||
_time:
|
||||
second: "সেকেন্ড"
|
||||
minute: "মিনিট"
|
||||
hour: "ঘণ্টা"
|
||||
day: "দিন"
|
||||
_tutorial:
|
||||
title: "Misskey কিভাবে ব্যাবহার করবেন"
|
||||
step1_1: "স্বাগতম!"
|
||||
step1_2: "এই স্ক্রীনটিকে \"টাইমলাইন\" বলা হয় এবং কালানুক্রমিক ক্রমে আপনার এবং আপনি যাদের \"অনুসরণ করেন\" তাদের \"নোটগুলি\" দেখায়৷"
|
||||
step1_3: "আপনি আপনার টাইমলাইনে কিছু দেখতে পাবেন না কারণ আপনি এখনও কোনো নোট পোস্ট করেননি এবং আপনি কাউকে অনুসরণ করছেন না৷"
|
||||
step2_1: "নোট তৈরি করার আগে বা কাউকে অনুসরণ করার আগে প্রথমে আপনার প্রোফাইলটি সম্পূর্ণ করুন।"
|
||||
step2_2: "আপনি কে তা জানা অনেক লোকের জন্য আপনার নোটগুলি দেখা এবং অনুসরণ করাকে সহজ করে তোলে৷"
|
||||
step3_1: "আপনি কি সফলভাবে আপনার প্রোফাইল সেট আপ করেছেন?"
|
||||
step3_2: "এখন, কিছু নোট পোস্ট করার চেষ্টা করুন। পোস্ট ফর্ম খুলতে পেন্সিল চিহ্নযুক্ত বাটনে ক্লিক করুন।"
|
||||
step3_3: "বিষয়বস্তু লেখার পরে, আপনি ফর্মের উপরের ডানদিকের বাটনে ক্লিক করে পোস্ট করতে পারেন।"
|
||||
step3_4: "পোস্ট করার মত কিছু মনে পরছে না? \"আমি মিসকি সেট আপ করছি\" বললে কেমন হয়?"
|
||||
step4_1: "পোস্ট করেছেন?"
|
||||
step4_2: "সাবাশ! এখন আপনার নোট টাইমলাইনে দেখা যাবে।"
|
||||
step5_1: "এখন অন্যদেরকে অনুসরণ করে আপনার টাইমলাইনকে প্রাণবন্ত করে তুলুন।"
|
||||
step5_2: "আপনি {featured}-এ জনপ্রিয় নোটগুলি দেখতে পারেন, যাতে আপনি যে ব্যক্তিকে পছন্দ করেন তাকে বেছে নিতে এবং অনুসরণ করতে পারেন, অথবা {explore}-এ জনপ্রিয় ব্যবহারকারীদের দেখতে পারেন৷"
|
||||
step5_3: "একজন ব্যবহারকারীকে অনুসরণ করতে, ব্যবহারকারীর আইকনে ক্লিক করুন এবং ব্যবহারকারীর পৃষ্ঠাতে \"অনুসরণ করুন\" বাটনে ক্লিক করুন।"
|
||||
step5_4: "যদি ব্যবহারকারীর নামের পাশে একটি লক আইকন থাকে তাহলে আপনার অনুসরণের অনুরোধ গ্রহণ করার জন্য তারা কিছু সময় নিতে পারে।"
|
||||
step6_1: "সবকিছু ঠিক থাকলে আপনি টাইমলাইনে অন্য ব্যবহারকারীদের নোট দেখতে পাবেন।"
|
||||
step6_2: "আপনি সহজেই আপনার প্রতিক্রিয়া জানাতে অন্য ব্যক্তির নোটে \"রিঅ্যাকশন\" যোগ করতে পারেন।"
|
||||
step6_3: "একটি রিঅ্যাকশন যোগ করতে, নোটে \"+\" চিহ্নে ক্লিক করুন এবং আপনার পছন্দের রিঅ্যাকশন নির্বাচন করুন।"
|
||||
step7_1: "অভিনন্দন! আপনি এখন Misskey-র প্রাথমিক টিউটোরিয়ালটি শেষ করেছেন।"
|
||||
step7_2: "আপনি যদি Misskey সম্পর্কে আরও জানতে চান, তাহলে {help} এ দেখুন।"
|
||||
step7_3: "এখন Misskey উপভোগ করুন 🚀"
|
||||
_2fa:
|
||||
alreadyRegistered: "আপনি ইতিমধ্যে একটি 2-ফ্যাক্টর অথেনটিকেশন ডিভাইস নিবন্ধন করেছেন৷"
|
||||
registerDevice: "নতুন ডিভাইস নিবন্ধন করুন"
|
||||
registerKey: "সিকিউরিটি কী নিবন্ধন করুন"
|
||||
step1: "প্রথমে, আপনার ডিভাইসে {a} বা {b} এর মতো একটি অথেনটিকেশন অ্যাপ ইনস্টল করুন৷"
|
||||
step2: "এরপরে, অ্যাপের সাহায্যে প্রদর্শিত QR কোডটি স্ক্যান করুন।"
|
||||
step2Url: "ডেস্কটপ অ্যাপে, নিম্নলিখিত URL লিখুন:"
|
||||
step3: "অ্যাপে প্রদর্শিত টোকেনটি লিখুন এবং আপনার কাজ শেষ।"
|
||||
step4: "আপনাকে এখন থেকে লগ ইন করার সময়, এইভাবে টোকেন লিখতে হবে।"
|
||||
securityKeyInfo: "আপনি একটি হার্ডওয়্যার সিকিউরিটি কী ব্যবহার করে লগ ইন করতে পারেন যা FIDO2 বা ডিভাইসের ফিঙ্গারপ্রিন্ট সেন্সর বা পিন সমর্থন করে৷"
|
||||
renewTOTPCancel: "না, ধন্যবাদ"
|
||||
_permissions:
|
||||
"read:account": "অ্যাকাউন্টের তথ্য দেখুন"
|
||||
"write:account": "অ্যাকাউন্টের তথ্য সম্পাদন করুন"
|
||||
@@ -1190,7 +1099,6 @@ _antennaSources:
|
||||
homeTimeline: "আপনি অনুসরণ করছেন, এমন ব্যবহারকারীদের নোট"
|
||||
users: "এক বা একাধিক নির্দিষ্ট ব্যবহারকারীর নোট"
|
||||
userList: "নির্দিষ্ট তালিকায় নাম থাকা ব্যবহারকারীদের নোট"
|
||||
userGroup: "নির্দিষ্ট গ্রুপে থাকা ব্যবহারকারীদের নোট"
|
||||
_weekday:
|
||||
sunday: "রবিবার"
|
||||
monday: "সোমবার"
|
||||
@@ -1200,6 +1108,8 @@ _weekday:
|
||||
friday: "শুক্রবার"
|
||||
saturday: "শনিবার"
|
||||
_widgets:
|
||||
profile: "প্রোফাইল"
|
||||
instanceInfo: "ইন্সট্যান্সের তথ্য"
|
||||
memo: "স্টিকি নোট"
|
||||
notifications: "বিজ্ঞপ্তি"
|
||||
timeline: "টাইমলাইন"
|
||||
@@ -1257,8 +1167,6 @@ _visibility:
|
||||
followersDescription: "শুধুমাত্র আপনার অনুসরণকারীদের নিকট পোস্ট করুন"
|
||||
specified: "ডাইরেক্ট নোট"
|
||||
specifiedDescription: "শুধুমাত্র নির্দিষ্ট ব্যাবহারকারীর নিকট পাঠান"
|
||||
localOnly: "শুধুমাত্র লোকাল"
|
||||
localOnlyDescription: "রিমোট ব্যাবহারকারীদের নিকট দৃশ্যমান নয়"
|
||||
_postForm:
|
||||
replyPlaceholder: "নোটটির জবাব দিন..."
|
||||
quotePlaceholder: "নোটটিকে উদ্ধৃত করুন..."
|
||||
@@ -1284,6 +1192,7 @@ _profile:
|
||||
changeBanner: "ব্যানার পরিবর্তন করুন"
|
||||
_exportOrImport:
|
||||
allNotes: "সকল নোট"
|
||||
clips: "ক্লিপ"
|
||||
followingList: "অনুসরণ করা হচ্ছে"
|
||||
muteList: "মিউট"
|
||||
blockingList: "ব্লক"
|
||||
@@ -1386,13 +1295,9 @@ _notification:
|
||||
youGotReply: "{name} আপনাকে জবাব দিয়েছে"
|
||||
youGotQuote: "{name} আপনাকে উদ্ধৃত করেছে"
|
||||
youRenoted: "{name} এর Renote"
|
||||
youGotPoll: "{name} আপনার পোলে ভোট দিয়েছে"
|
||||
youGotMessagingMessageFromUser: "{name} আপনাকে মেসেজ করেছে"
|
||||
youGotMessagingMessageFromGroup: "{name} গ্রুপে একটি নতুন মেসেজ আছে"
|
||||
youWereFollowed: "আপনাকে অনুসরণ করছে"
|
||||
youReceivedFollowRequest: "অনুসরণ করার জন্য অনুরোধ পাওয়া গেছে"
|
||||
yourFollowRequestAccepted: "আপনার অনুসরণ করার অনুরোধ গৃহীত হয়েছে"
|
||||
youWereInvitedToGroup: "আপনি একটি গ্রুপে আমন্ত্রিত হয়েছেন"
|
||||
pollEnded: "পোলের ফলাফল দেখা যাবে"
|
||||
emptyPushNotificationMessage: "আপডেট করা পুশ বিজ্ঞপ্তি"
|
||||
_types:
|
||||
@@ -1403,11 +1308,9 @@ _notification:
|
||||
renote: "রিনোট"
|
||||
quote: "উদ্ধৃতি"
|
||||
reaction: "প্রতিক্রিয়া"
|
||||
pollVote: "পোলে ভোট আছে"
|
||||
pollEnded: "পোল শেষ"
|
||||
receiveFollowRequest: "প্রাপ্ত অনুসরণের অনুরোধসমূহ"
|
||||
followRequestAccepted: "গৃহীত অনুসরণের অনুরোধসমূহ"
|
||||
groupInvited: "গ্রুপের আমন্ত্রনসমূহ"
|
||||
app: "লিঙ্ক করা অ্যাপ থেকে বিজ্ঞপ্তি"
|
||||
_actions:
|
||||
followBack: "ফলো ব্যাক করেছে"
|
||||
@@ -1432,5 +1335,15 @@ _deck:
|
||||
tl: "টাইমলাইন"
|
||||
antenna: "অ্যান্টেনা"
|
||||
list: "লিস্ট"
|
||||
channel: "চ্যানেলগুলি"
|
||||
mentions: "উল্লেখসমূহ"
|
||||
direct: "ডাইরেক্ট নোটগুলি"
|
||||
_webhookSettings:
|
||||
name: "নাম"
|
||||
active: "চালু"
|
||||
_moderationLogTypes:
|
||||
suspend: "স্থগিত করা"
|
||||
resetPassword: "পাসওয়ার্ড রিসেট করুন"
|
||||
_reversi:
|
||||
total: "মোট"
|
||||
|
||||
|
||||
File diff suppressed because it is too large
Load Diff
1298
locales/cs-CZ.yml
1298
locales/cs-CZ.yml
File diff suppressed because it is too large
Load Diff
@@ -1,2 +1,3 @@
|
||||
---
|
||||
_lang_: "Dansk"
|
||||
|
||||
|
||||
1042
locales/de-DE.yml
1042
locales/de-DE.yml
File diff suppressed because it is too large
Load Diff
@@ -1,6 +1,6 @@
|
||||
---
|
||||
_lang_: "Ελληνικά"
|
||||
monthAndDay: "{μήνας}/{ημέρα}"
|
||||
monthAndDay: "{day}/{month}"
|
||||
search: "Αναζήτηση"
|
||||
notifications: "Ειδοποιήσεις"
|
||||
username: "Όνομα μέλους"
|
||||
@@ -103,7 +103,7 @@ you: "Εσύ"
|
||||
clickToShow: "Κάντε κλικ για εμφάνιση"
|
||||
add: "Προσθέστε"
|
||||
reaction: "Αντιδράσεις"
|
||||
reactionSetting: "Αντιδράσεις για εμφάνιση στην επιλογή αντίδρασης"
|
||||
reactions: "Αντιδράσεις"
|
||||
reactionSettingDescription2: "Σύρετε για να αλλάξετε τη σειρά, κάντε κλικ για να διαγράψετε, πατήστε \"+\" για να προσθέσετε."
|
||||
rememberNoteVisibility: "Θυμήσου τις ρυθμίσεις ορατότητας σημειώματος"
|
||||
attachCancel: "Διαγραφή αρχείου"
|
||||
@@ -171,11 +171,11 @@ explore: "Εξερευνήστε"
|
||||
messageRead: "Διαβάστηκε"
|
||||
startMessaging: "Ξεκινήστε μία συνομιλία"
|
||||
nUsersRead: "διαβάστηκε από {n}"
|
||||
tos: "Όροι χρήσης"
|
||||
start: "Ας αρχίσουμε"
|
||||
home: "Κεντρικό"
|
||||
activity: "Δραστηριότητα"
|
||||
images: "Εικόνες"
|
||||
image: "Εικόνες"
|
||||
birthday: "Γενέθλια"
|
||||
registeredDate: "Έγινε μέλος στις"
|
||||
location: "Τοποθεσία"
|
||||
@@ -227,23 +227,14 @@ userList: "Λίστες"
|
||||
about: "Πληροφορίες"
|
||||
moderator: "Συντονιστής"
|
||||
moderation: "Συντονισμός"
|
||||
cacheClear: "Εκκαθάριση προσωρινής μνήμης"
|
||||
markAsReadAllNotifications: "Όλες οι ειδοποιήσεις διαβάστηκαν"
|
||||
group: "Ομάδα"
|
||||
groups: "Ομάδες"
|
||||
createGroup: "Δημιουργία ομάδας"
|
||||
ownedGroups: "Οι ομάδες σας"
|
||||
groupName: "Όνομα ομάδας"
|
||||
members: "Μέλη"
|
||||
transfer: "Μεταφορά"
|
||||
messagingWithUser: "Ιδιωτική συνομιλία"
|
||||
messagingWithGroup: "Ομαδική συνομιλία"
|
||||
title: "Τίτλος"
|
||||
text: "Κείμενο"
|
||||
enable: "Ενεργοποίηση"
|
||||
next: "Επόμενο"
|
||||
noteOf: "Σημείωμα από {user}"
|
||||
inviteToGroup: "Πρόσκληση στην ομάδα"
|
||||
quoteAttached: "Παράθεση"
|
||||
signinRequired: "Παρακαλούμε δημιουργήστε λογαριασμό ή συνδεθείτε πριν συνεχίσετε"
|
||||
category: "Κατηγορία"
|
||||
@@ -294,14 +285,12 @@ searchByGoogle: "Αναζήτηση"
|
||||
file: "Αρχεία"
|
||||
recommended: "Προτεινόμενα"
|
||||
cannotUploadBecauseNoFreeSpace: "Το ανέβασμα απέτυχε λόγω ανεπαρκούς Αποθηκευτικού Χώρου"
|
||||
icon: "Εικονίδιο"
|
||||
replies: "Απάντηση"
|
||||
renotes: "Κοινοποίηση σημειώματος"
|
||||
_email:
|
||||
_follow:
|
||||
title: "Έχετε ένα νέο ακόλουθο"
|
||||
_mfm:
|
||||
mention: "Επισήμανση"
|
||||
quote: "Παράθεση"
|
||||
emoji: "Επιπλέον emoji"
|
||||
search: "Αναζήτηση"
|
||||
_channel:
|
||||
featured: "Δημοφιλή"
|
||||
_theme:
|
||||
@@ -312,8 +301,6 @@ _theme:
|
||||
_sfx:
|
||||
note: "Σημειώματα"
|
||||
notification: "Ειδοποιήσεις"
|
||||
chat: "Συνομιλία"
|
||||
chatBg: "Συνομιλία (Παρασκήνιο)"
|
||||
antenna: "Αντένες"
|
||||
channel: "Ειδοποιήσεις καναλιών"
|
||||
_ago:
|
||||
@@ -341,8 +328,9 @@ _antennaSources:
|
||||
homeTimeline: "Σημειώματα από μέλη που ακολουθείτε"
|
||||
users: "Σημειώματα από συγκεκριμένα μέλη"
|
||||
userList: "Σημειώματα από καθορισμένη λίστα μελών"
|
||||
userGroup: "Σημειώματα από μέλη καθορισμένης ομάδας"
|
||||
_widgets:
|
||||
profile: "Προφίλ"
|
||||
instanceInfo: "Πληροφορίες του instance"
|
||||
notifications: "Ειδοποιήσεις"
|
||||
timeline: "Χρονολόγιο"
|
||||
calendar: "Ημερολόγιο"
|
||||
@@ -368,6 +356,7 @@ _profile:
|
||||
username: "Όνομα μέλους"
|
||||
_exportOrImport:
|
||||
allNotes: "Όλα τα σημειώματα"
|
||||
clips: "Κλιπ"
|
||||
followingList: "Ακολουθεί"
|
||||
muteList: "Μέλη σε σίγαση"
|
||||
blockingList: "Μπλοκαρισμένα μέλη"
|
||||
@@ -384,7 +373,6 @@ _pages:
|
||||
blocks:
|
||||
image: "Εικόνες"
|
||||
_notification:
|
||||
youGotMessagingMessageFromUser: "{name} σάς έστειλε ένα μήνυμα συνομιλίας"
|
||||
youWereFollowed: "σε ακολούθησε"
|
||||
_types:
|
||||
follow: "Νέοι ακόλουθοι"
|
||||
@@ -404,3 +392,10 @@ _deck:
|
||||
antenna: "Αντένες"
|
||||
list: "Λίστα"
|
||||
mentions: "Επισημάνσεις"
|
||||
_webhookSettings:
|
||||
name: "Όνομα"
|
||||
_moderationLogTypes:
|
||||
suspend: "Αποβολή"
|
||||
_reversi:
|
||||
total: "Σύνολο"
|
||||
|
||||
|
||||
1150
locales/en-US.yml
1150
locales/en-US.yml
File diff suppressed because it is too large
Load Diff
1216
locales/es-ES.yml
1216
locales/es-ES.yml
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
230
locales/generateDTS.js
Normal file
230
locales/generateDTS.js
Normal file
@@ -0,0 +1,230 @@
|
||||
import * as fs from 'node:fs';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import { dirname } from 'node:path';
|
||||
import * as yaml from 'js-yaml';
|
||||
import ts from 'typescript';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = dirname(__filename);
|
||||
const parameterRegExp = /\{(\w+)\}/g;
|
||||
|
||||
function createMemberType(item) {
|
||||
if (typeof item !== 'string') {
|
||||
return ts.factory.createTypeLiteralNode(createMembers(item));
|
||||
}
|
||||
const parameters = Array.from(
|
||||
item.matchAll(parameterRegExp),
|
||||
([, parameter]) => parameter,
|
||||
);
|
||||
return parameters.length
|
||||
? ts.factory.createTypeReferenceNode(
|
||||
ts.factory.createIdentifier('ParameterizedString'),
|
||||
[
|
||||
ts.factory.createUnionTypeNode(
|
||||
parameters.map((parameter) =>
|
||||
ts.factory.createStringLiteral(parameter),
|
||||
),
|
||||
),
|
||||
],
|
||||
)
|
||||
: ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword);
|
||||
}
|
||||
|
||||
function createMembers(record) {
|
||||
return Object.entries(record).map(([k, v]) => {
|
||||
const node = ts.factory.createPropertySignature(
|
||||
undefined,
|
||||
ts.factory.createStringLiteral(k),
|
||||
undefined,
|
||||
createMemberType(v),
|
||||
);
|
||||
if (typeof v === 'string') {
|
||||
ts.addSyntheticLeadingComment(
|
||||
node,
|
||||
ts.SyntaxKind.MultiLineCommentTrivia,
|
||||
`*
|
||||
* ${v.replace(/\n/g, '\n * ')}
|
||||
`,
|
||||
true,
|
||||
);
|
||||
}
|
||||
return node;
|
||||
});
|
||||
}
|
||||
|
||||
export default function generateDTS() {
|
||||
const locale = yaml.load(fs.readFileSync(`${__dirname}/ja-JP.yml`, 'utf-8'));
|
||||
const members = createMembers(locale);
|
||||
const elements = [
|
||||
ts.factory.createVariableStatement(
|
||||
[ts.factory.createToken(ts.SyntaxKind.DeclareKeyword)],
|
||||
ts.factory.createVariableDeclarationList(
|
||||
[
|
||||
ts.factory.createVariableDeclaration(
|
||||
ts.factory.createIdentifier('kParameters'),
|
||||
undefined,
|
||||
ts.factory.createTypeOperatorNode(
|
||||
ts.SyntaxKind.UniqueKeyword,
|
||||
ts.factory.createKeywordTypeNode(ts.SyntaxKind.SymbolKeyword),
|
||||
),
|
||||
undefined,
|
||||
),
|
||||
],
|
||||
ts.NodeFlags.Const,
|
||||
),
|
||||
),
|
||||
ts.factory.createInterfaceDeclaration(
|
||||
[ts.factory.createToken(ts.SyntaxKind.ExportKeyword)],
|
||||
ts.factory.createIdentifier('ParameterizedString'),
|
||||
[
|
||||
ts.factory.createTypeParameterDeclaration(
|
||||
undefined,
|
||||
ts.factory.createIdentifier('T'),
|
||||
ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
|
||||
ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
|
||||
),
|
||||
],
|
||||
undefined,
|
||||
[
|
||||
ts.factory.createPropertySignature(
|
||||
undefined,
|
||||
ts.factory.createComputedPropertyName(
|
||||
ts.factory.createIdentifier('kParameters'),
|
||||
),
|
||||
undefined,
|
||||
ts.factory.createTypeReferenceNode(
|
||||
ts.factory.createIdentifier('T'),
|
||||
undefined,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
ts.factory.createInterfaceDeclaration(
|
||||
[ts.factory.createToken(ts.SyntaxKind.ExportKeyword)],
|
||||
ts.factory.createIdentifier('ILocale'),
|
||||
undefined,
|
||||
undefined,
|
||||
[
|
||||
ts.factory.createIndexSignature(
|
||||
undefined,
|
||||
[
|
||||
ts.factory.createParameterDeclaration(
|
||||
undefined,
|
||||
undefined,
|
||||
ts.factory.createIdentifier('_'),
|
||||
undefined,
|
||||
ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
|
||||
undefined,
|
||||
),
|
||||
],
|
||||
ts.factory.createUnionTypeNode([
|
||||
ts.factory.createKeywordTypeNode(ts.SyntaxKind.StringKeyword),
|
||||
ts.factory.createTypeReferenceNode(
|
||||
ts.factory.createIdentifier('ParameterizedString'),
|
||||
),
|
||||
ts.factory.createTypeReferenceNode(
|
||||
ts.factory.createIdentifier('ILocale'),
|
||||
undefined,
|
||||
),
|
||||
]),
|
||||
),
|
||||
],
|
||||
),
|
||||
ts.factory.createInterfaceDeclaration(
|
||||
[ts.factory.createToken(ts.SyntaxKind.ExportKeyword)],
|
||||
ts.factory.createIdentifier('Locale'),
|
||||
undefined,
|
||||
[
|
||||
ts.factory.createHeritageClause(ts.SyntaxKind.ExtendsKeyword, [
|
||||
ts.factory.createExpressionWithTypeArguments(
|
||||
ts.factory.createIdentifier('ILocale'),
|
||||
undefined,
|
||||
),
|
||||
]),
|
||||
],
|
||||
members,
|
||||
),
|
||||
ts.factory.createVariableStatement(
|
||||
[ts.factory.createToken(ts.SyntaxKind.DeclareKeyword)],
|
||||
ts.factory.createVariableDeclarationList(
|
||||
[
|
||||
ts.factory.createVariableDeclaration(
|
||||
ts.factory.createIdentifier('locales'),
|
||||
undefined,
|
||||
ts.factory.createTypeLiteralNode([
|
||||
ts.factory.createIndexSignature(
|
||||
undefined,
|
||||
[
|
||||
ts.factory.createParameterDeclaration(
|
||||
undefined,
|
||||
undefined,
|
||||
ts.factory.createIdentifier('lang'),
|
||||
undefined,
|
||||
ts.factory.createKeywordTypeNode(
|
||||
ts.SyntaxKind.StringKeyword,
|
||||
),
|
||||
undefined,
|
||||
),
|
||||
],
|
||||
ts.factory.createTypeReferenceNode(
|
||||
ts.factory.createIdentifier('Locale'),
|
||||
undefined,
|
||||
),
|
||||
),
|
||||
]),
|
||||
undefined,
|
||||
),
|
||||
],
|
||||
ts.NodeFlags.Const,
|
||||
),
|
||||
),
|
||||
ts.factory.createFunctionDeclaration(
|
||||
[ts.factory.createModifier(ts.SyntaxKind.ExportKeyword)],
|
||||
undefined,
|
||||
ts.factory.createIdentifier('build'),
|
||||
undefined,
|
||||
[],
|
||||
ts.factory.createTypeReferenceNode(
|
||||
ts.factory.createIdentifier('Locale'),
|
||||
undefined,
|
||||
),
|
||||
undefined,
|
||||
),
|
||||
ts.factory.createExportDefault(ts.factory.createIdentifier('locales')),
|
||||
];
|
||||
ts.addSyntheticLeadingComment(
|
||||
elements[0],
|
||||
ts.SyntaxKind.MultiLineCommentTrivia,
|
||||
' eslint-disable ',
|
||||
true,
|
||||
);
|
||||
ts.addSyntheticLeadingComment(
|
||||
elements[0],
|
||||
ts.SyntaxKind.SingleLineCommentTrivia,
|
||||
' This file is generated by locales/generateDTS.js',
|
||||
true,
|
||||
);
|
||||
ts.addSyntheticLeadingComment(
|
||||
elements[0],
|
||||
ts.SyntaxKind.SingleLineCommentTrivia,
|
||||
' Do not edit this file directly.',
|
||||
true,
|
||||
);
|
||||
const printed = ts
|
||||
.createPrinter({
|
||||
newLine: ts.NewLineKind.LineFeed,
|
||||
})
|
||||
.printList(
|
||||
ts.ListFormat.MultiLine,
|
||||
ts.factory.createNodeArray(elements),
|
||||
ts.createSourceFile(
|
||||
'index.d.ts',
|
||||
'',
|
||||
ts.ScriptTarget.ESNext,
|
||||
true,
|
||||
ts.ScriptKind.TS,
|
||||
),
|
||||
);
|
||||
|
||||
fs.writeFileSync(`${__dirname}/index.d.ts`, printed, 'utf-8');
|
||||
}
|
||||
@@ -1 +1,6 @@
|
||||
---
|
||||
_lang_: "japanski"
|
||||
ok: "OK"
|
||||
gotIt: "Razumijem"
|
||||
cancel: "otkazati"
|
||||
|
||||
|
||||
@@ -1 +1,19 @@
|
||||
---
|
||||
_lang_: "Japonè"
|
||||
password: "modpas"
|
||||
ok: "OK"
|
||||
gotIt: "Konprann"
|
||||
cancel: "anile"
|
||||
noThankYou: "Sispann"
|
||||
instance: "sèvè"
|
||||
profile: "pwofil"
|
||||
save: "kenbe"
|
||||
delete: "efase"
|
||||
instances: "sèvè"
|
||||
remove: "efase"
|
||||
smtpPass: "modpas"
|
||||
_2fa:
|
||||
renewTOTPCancel: "Sispann"
|
||||
_widgets:
|
||||
profile: "pwofil"
|
||||
|
||||
|
||||
105
locales/hu-HU.yml
Normal file
105
locales/hu-HU.yml
Normal file
@@ -0,0 +1,105 @@
|
||||
---
|
||||
_lang_: "Japán"
|
||||
monthAndDay: "{month}.{day}."
|
||||
search: "Keresés"
|
||||
notifications: "Értesítések"
|
||||
username: "Felhasználónév"
|
||||
password: "Jelszó"
|
||||
forgotPassword: "Elfelejtett jelszó"
|
||||
ok: "OK"
|
||||
gotIt: "Rendben"
|
||||
cancel: "Mégse"
|
||||
noThankYou: "Nem, köszönöm"
|
||||
enterUsername: "Felhasználónév megadása"
|
||||
renotedBy: "{user} Renotolta"
|
||||
noNotes: "Nincs Note"
|
||||
noNotifications: "Nincs értesítés"
|
||||
instance: "Szerver"
|
||||
settings: "Beállítások"
|
||||
notificationSettings: "Értesítés beállításai"
|
||||
basicSettings: "Alapbeállítás"
|
||||
otherSettings: "Egyéb beállítások"
|
||||
openInWindow: "Megnyitás ablakban"
|
||||
profile: "Saját profil"
|
||||
timeline: "Idővonal"
|
||||
noAccountDescription: "Nincs leírás"
|
||||
login: "Bejelentkezés"
|
||||
loggingIn: "Belépés"
|
||||
logout: "Kijelentkezés"
|
||||
signup: "Regisztráció"
|
||||
uploading: "Feltöltés"
|
||||
save: "Mentés"
|
||||
users: "Felhasználók"
|
||||
addUser: "Felhasználó hozzáadása"
|
||||
favorite: "Kedvencek"
|
||||
favorites: "Kedvencek"
|
||||
unfavorite: "Törlés a kedvencek közül."
|
||||
favorited: "Kedvencek közé rakva."
|
||||
alreadyFavorited: "Már a kedvencek között van."
|
||||
cantFavorite: "Nem sikerült a kedvencek közé rakni."
|
||||
pin: "Rögzítés"
|
||||
unpin: "Rögzítés feloldása"
|
||||
copyContent: "Tartalom másolása"
|
||||
copyLink: "Hivatkozás Másolása"
|
||||
delete: "Törlés"
|
||||
deleteAndEdit: "Törlés és szerkesztés"
|
||||
deleteAndEditConfirm: "Biztosan törlöd ezt a jegyzetet és újrafogalmazza? Így eveszíted az összes reakciót, renote-ot és választ."
|
||||
addToList: "Hozzáadás a listákhoz"
|
||||
privacy: "Adatvédelem"
|
||||
makeFollowManuallyApprove: "Csak jóváhagyással követhetnek"
|
||||
defaultNoteVisibility: "Alapértelmezett láthatóság"
|
||||
follow: "Követés"
|
||||
followRequest: "Követés kérése"
|
||||
followRequests: "Követési kérések"
|
||||
unfollow: "Követés visszavonása"
|
||||
followRequestPending: "Függőben levő követési kérés"
|
||||
enterEmoji: "Írj egy emoji-t"
|
||||
renote: "Renote"
|
||||
unrenote: "Renote visszavonása"
|
||||
renoted: "Renotolva"
|
||||
cantRenote: "Nem lehet Renotolni"
|
||||
cantReRenote: "A Renote nem renotálható"
|
||||
quote: "Idézet"
|
||||
inChannelRenote: "Csak csatornán bellüli Renote"
|
||||
inChannelQuote: "Csak csatornán bellüli idézet"
|
||||
pinnedNote: "Csatolt jegyzet"
|
||||
pinned: "Rögzítés"
|
||||
you: "Te"
|
||||
clickToShow: "Kattints ide"
|
||||
sensitive: "Érzékeny"
|
||||
add: "Hozzáad"
|
||||
reaction: "Reakciók"
|
||||
reactions: "Reakciók"
|
||||
instances: "Szerver"
|
||||
remove: "Törlés"
|
||||
pinnedNotes: "Csatolt jegyzet"
|
||||
smtpUser: "Felhasználónév"
|
||||
smtpPass: "Jelszó"
|
||||
user: "Felhasználók"
|
||||
searchByGoogle: "Keresés"
|
||||
renotes: "Renote"
|
||||
_theme:
|
||||
keys:
|
||||
renote: "Renote"
|
||||
_sfx:
|
||||
notification: "Értesítések"
|
||||
_2fa:
|
||||
renewTOTPCancel: "Nem, köszönöm"
|
||||
_widgets:
|
||||
profile: "Saját profil"
|
||||
notifications: "Értesítések"
|
||||
timeline: "Idővonal"
|
||||
_profile:
|
||||
username: "Felhasználónév"
|
||||
_notification:
|
||||
_types:
|
||||
renote: "Renote"
|
||||
quote: "Idézet"
|
||||
reaction: "Reakciók"
|
||||
_actions:
|
||||
renote: "Renote"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "Értesítések"
|
||||
tl: "Idővonal"
|
||||
|
||||
1327
locales/id-ID.yml
1327
locales/id-ID.yml
File diff suppressed because it is too large
Load Diff
9605
locales/index.d.ts
vendored
9605
locales/index.d.ts
vendored
File diff suppressed because it is too large
Load Diff
@@ -2,8 +2,8 @@
|
||||
* Languages Loader
|
||||
*/
|
||||
|
||||
const fs = require('fs');
|
||||
const yaml = require('js-yaml');
|
||||
import * as fs from 'node:fs';
|
||||
import * as yaml from 'js-yaml';
|
||||
|
||||
const merge = (...args) => args.reduce((a, c) => ({
|
||||
...a,
|
||||
@@ -34,6 +34,7 @@ const languages = [
|
||||
'pt-PT',
|
||||
'ru-RU',
|
||||
'sk-SK',
|
||||
'th-TH',
|
||||
'ug-CN',
|
||||
'uk-UA',
|
||||
'vi-VN',
|
||||
@@ -50,20 +51,37 @@ const primaries = {
|
||||
// 何故か文字列にバックスペース文字が混入することがあり、YAMLが壊れるので取り除く
|
||||
const clean = (text) => text.replace(new RegExp(String.fromCodePoint(0x08), 'g'), '');
|
||||
|
||||
const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(`${__dirname}/${c}.yml`, 'utf-8'))) || {}, a), {});
|
||||
export function build() {
|
||||
const locales = languages.reduce((a, c) => (a[c] = yaml.load(clean(fs.readFileSync(new URL(`${c}.yml`, import.meta.url), 'utf-8'))) || {}, a), {});
|
||||
|
||||
module.exports = Object.entries(locales)
|
||||
.reduce((a, [k ,v]) => (a[k] = (() => {
|
||||
const [lang] = k.split('-');
|
||||
switch (k) {
|
||||
case 'ja-JP': return v;
|
||||
case 'ja-KS':
|
||||
case 'en-US': return merge(locales['ja-JP'], v);
|
||||
default: return merge(
|
||||
locales['ja-JP'],
|
||||
locales['en-US'],
|
||||
locales[`${lang}-${primaries[lang]}`] || {},
|
||||
v
|
||||
);
|
||||
// 空文字列が入ることがあり、フォールバックが動作しなくなるのでプロパティごと消す
|
||||
const removeEmpty = (obj) => {
|
||||
for (const [k, v] of Object.entries(obj)) {
|
||||
if (v === '') {
|
||||
delete obj[k];
|
||||
} else if (typeof v === 'object') {
|
||||
removeEmpty(v);
|
||||
}
|
||||
}
|
||||
})(), a), {});
|
||||
return obj;
|
||||
};
|
||||
removeEmpty(locales);
|
||||
|
||||
return Object.entries(locales)
|
||||
.reduce((a, [k, v]) => (a[k] = (() => {
|
||||
const [lang] = k.split('-');
|
||||
switch (k) {
|
||||
case 'ja-JP': return v;
|
||||
case 'ja-KS':
|
||||
case 'en-US': return merge(locales['ja-JP'], v);
|
||||
default: return merge(
|
||||
locales['ja-JP'],
|
||||
locales['en-US'],
|
||||
locales[`${lang}-${primaries[lang]}`] ?? {},
|
||||
v
|
||||
);
|
||||
}
|
||||
})(), a), {});
|
||||
}
|
||||
|
||||
export default build();
|
||||
|
||||
1536
locales/it-IT.yml
1536
locales/it-IT.yml
File diff suppressed because it is too large
Load Diff
1368
locales/ja-JP.yml
1368
locales/ja-JP.yml
File diff suppressed because it is too large
Load Diff
1596
locales/ja-KS.yml
1596
locales/ja-KS.yml
File diff suppressed because it is too large
Load Diff
@@ -1 +1,4 @@
|
||||
---
|
||||
_lang_: "la .lojban."
|
||||
headlineMisskey: "lo se tcana noi jorne fi loi notci"
|
||||
|
||||
|
||||
@@ -39,10 +39,8 @@ remove: "Kkes"
|
||||
connectService: "Qqen"
|
||||
userList: "Tibdarin"
|
||||
securityKey: "Tasarutt n tɣellist"
|
||||
securityKeyName: "Isem n tsarutt"
|
||||
signinRequired: "Ttxil jerred"
|
||||
signinWith: "Tuqqna s {x}"
|
||||
tapSecurityKey: "Sekcem tasarutt-ik·im n tɣellist"
|
||||
uiLanguage: "Tutlayt n wegrudem"
|
||||
accountSettings: "Iɣewwaṛen n umiḍan"
|
||||
plugins: "Izegrar"
|
||||
@@ -58,13 +56,10 @@ accounts: "Imiḍan"
|
||||
searchByGoogle: "Nadi"
|
||||
file: "Ifuyla"
|
||||
account: "Imiḍan"
|
||||
replies: "Err"
|
||||
_email:
|
||||
_follow:
|
||||
title: "Yeṭṭafaṛ-ik·em-id"
|
||||
_mfm:
|
||||
mention: "Bder"
|
||||
search: "Nadi"
|
||||
font: "Tasefsit"
|
||||
_theme:
|
||||
keys:
|
||||
mention: "Bder"
|
||||
@@ -73,6 +68,7 @@ _sfx:
|
||||
_permissions:
|
||||
"write:account": "Ẓreg talɣut n umiḍan-ik·im"
|
||||
_widgets:
|
||||
profile: "Amaɣnu"
|
||||
notifications: "Ilɣuyen"
|
||||
_userList:
|
||||
chooseList: "Fren tabdart"
|
||||
@@ -108,3 +104,4 @@ _deck:
|
||||
_columns:
|
||||
notifications: "Ilɣuyen"
|
||||
list: "Tibdarin"
|
||||
|
||||
|
||||
@@ -61,14 +61,14 @@ smtpPass: "ಗುಪ್ತಪದ"
|
||||
user: "ಬಳಕೆದಾರ"
|
||||
searchByGoogle: "ಹುಡುಕು"
|
||||
file: "ಕಡತಗಳು"
|
||||
replies: "ಉತ್ತರಿಸು"
|
||||
_email:
|
||||
_follow:
|
||||
title: "ಹಿಂಬಾಲಿಸಿದರು"
|
||||
_mfm:
|
||||
search: "ಹುಡುಕು"
|
||||
_sfx:
|
||||
notification: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
_widgets:
|
||||
profile: "ಪ್ರೊಫೈಲು"
|
||||
notifications: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
timeline: "ಸಮಯಸಾಲು"
|
||||
_cw:
|
||||
@@ -84,3 +84,4 @@ _deck:
|
||||
notifications: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
tl: "ಸಮಯಸಾಲು"
|
||||
mentions: "ಹೆಸರಿಸಿದ"
|
||||
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user