Compare commits
2323 Commits
Author | SHA1 | Date | |
---|---|---|---|
629b765abc | |||
63a89fa84a | |||
a3f89236a0 | |||
01560abafb | |||
b5698026ba | |||
6258ce75b7 | |||
6f34c74027 | |||
8add4f359b | |||
d8933c135f | |||
eb350e8d6c | |||
615fedd64d | |||
25bd82ecaa | |||
e0938e5e3a | |||
ec5e6c8443 | |||
25d8077474 | |||
06083f40d9 | |||
ec203f7f79 | |||
1b30d7d47a | |||
d9be9c958f | |||
ed09796e0d | |||
4bfa29c0ab | |||
4804bbb211 | |||
749102f9c2 | |||
0bcb1434b0 | |||
2e537e618c | |||
fe3b7a2ad3 | |||
90db793fd0 | |||
7bd2a6ad61 | |||
745f4d2439 | |||
254cfaea28 | |||
d4da5a1eea | |||
c0f8297414 | |||
834cb2ea1a | |||
d82769abd4 | |||
adf01ed4a4 | |||
09c007b3aa | |||
526ff177aa | |||
0e40d4e796 | |||
172ebab7bd | |||
aa4493fe5c | |||
a68a88f79e | |||
1de7dc94e1 | |||
59cb7992e2 | |||
87b15df47b | |||
6932d86240 | |||
87f61e714a | |||
5762e2d9ba | |||
f0691c8a4f | |||
6d7e4fe2a1 | |||
7dc789f470 | |||
190d1bbf3c | |||
a755dd5f9e | |||
0846a7b94e | |||
d8be0511f1 | |||
fb07116a4c | |||
fe453c15e3 | |||
059aeef6a0 | |||
30e25451d6 | |||
7f0fd55c9a | |||
0e9b496deb | |||
8294c18e70 | |||
39575b4696 | |||
29e9801d5c | |||
eaf83bffb0 | |||
bb25ece745 | |||
754b5629e4 | |||
ee63403548 | |||
87edeb41da | |||
41fe804587 | |||
02466acc4b | |||
8470a64e6b | |||
9939e0f9a9 | |||
ce5f552d0c | |||
7d4c535233 | |||
57cd0fb93f | |||
a15299ae53 | |||
1df7abfbb9 | |||
85a0f696bc | |||
ba3c62bf9c | |||
c17e97b6a6 | |||
2d80cd0e7b | |||
eedc572f0c | |||
2de1df3514 | |||
2d96af1255 | |||
163325ef89 | |||
23979bf09a | |||
7199e6f4e0 | |||
a40f38b2b5 | |||
00a17ed5d4 | |||
b594366f06 | |||
e9284930df | |||
ea7504f564 | |||
c1f6d996f6 | |||
df71dbb024 | |||
f104e9b6cc | |||
e29b5c2326 | |||
925868dcdb | |||
d7df26d92b | |||
42d1c67d56 | |||
c2d7929391 | |||
5864b52a81 | |||
493d32b3dc | |||
ed141338fb | |||
95db488c48 | |||
d5e1e523b6 | |||
cd0f8a4ef9 | |||
6dac505af9 | |||
9d398040cb | |||
aa55acedc9 | |||
eb70d6f226 | |||
36f0963d78 | |||
c3c111529e | |||
2dbab66cfe | |||
01238d6b1a | |||
c34f302b1c | |||
6870262f8d | |||
c54d5e7040 | |||
0ace009a54 | |||
48e8ee440b | |||
9855405b89 | |||
122076e8ea | |||
7c5ac2cbb4 | |||
ccda2181c1 | |||
b5fe4ba9be | |||
fd9c7d525a | |||
080574e13d | |||
ee0a445590 | |||
bb342c7601 | |||
ed17636fb9 | |||
c59d7d941a | |||
377377595a | |||
d63aef9963 | |||
e9b28fa3c0 | |||
be255dc583 | |||
18eb7c6087 | |||
cf29e69813 | |||
132da7e3c0 | |||
26df23bb64 | |||
76389ad619 | |||
7cde8cfbf2 | |||
4eb2ddac4e | |||
dc51eef27c | |||
bff8a23cbc | |||
9c5efb9da0 | |||
48b8320e5e | |||
9b2ed96c1c | |||
69d9aa71f2 | |||
13683780cd | |||
d780e5b251 | |||
917d3d0bd3 | |||
4b19c53697 | |||
2d40a15d2b | |||
2bdcd22ad4 | |||
f73a4e1304 | |||
b265cdbd84 | |||
a04d8b95c2 | |||
0e9a8c0cd4 | |||
5ae8a3c7e8 | |||
70ee172128 | |||
b9febc00f9 | |||
0112e2f7ec | |||
60736bab2a | |||
fb7c4ee21a | |||
e93c06cd00 | |||
0a99345909 | |||
3d08ff7cb4 | |||
057ce73ba1 | |||
66b07578c5 | |||
de3b365563 | |||
7bb8d8b27e | |||
9008664606 | |||
7374905c28 | |||
718e20de60 | |||
73d166323d | |||
3589fc6f4f | |||
feed6c7acc | |||
2522e7388d | |||
09cfd620bb | |||
362e95263d | |||
c6837b9fdf | |||
71878f93e4 | |||
f5d43b1f25 | |||
770e7378be | |||
b9a8620d2f | |||
d1c8b2993e | |||
01e9b3c2f6 | |||
57203de4cb | |||
74d0e83a8a | |||
9eee5644b9 | |||
9fe6f9417e | |||
e7de5f6051 | |||
60d81d74e3 | |||
2701a7e85f | |||
31a0afdaab | |||
9f87545901 | |||
9f94f60ede | |||
0ca3c0bca1 | |||
27611cef77 | |||
30df8ea121 | |||
595ad04ddb | |||
6b8354ccbf | |||
1b9d316e7c | |||
a8adc46f3b | |||
0efa969a15 | |||
14b7f05af4 | |||
cf43dd6ec5 | |||
b5a1fdd4c7 | |||
b32737cdff | |||
8e9717a5fc | |||
3e28b296e3 | |||
056fef70da | |||
55be9cc9d1 | |||
3f2ffcea97 | |||
b07d037cb5 | |||
4feccdfd92 | |||
f1ef85b636 | |||
cf9266eab9 | |||
4a1552fb3c | |||
e5863c2867 | |||
58211fc6a7 | |||
bd54e44b35 | |||
e1f2e364a4 | |||
186b26e103 | |||
74706a8d2c | |||
7e2b6b6369 | |||
1a2de1a051 | |||
83900cbca6 | |||
166bc19131 | |||
da874f3383 | |||
9c30b23358 | |||
b8350d5093 | |||
58f7af8927 | |||
c3b9c7b74b | |||
9415618992 | |||
1c200c9b94 | |||
ce8fa8e423 | |||
a4b7a9db03 | |||
280eeb9d75 | |||
3f71b14637 | |||
705d40ab37 | |||
b39850de01 | |||
b9c5e95b85 | |||
0c1de7b1b6 | |||
0a4499fd03 | |||
b663a47331 | |||
eb275a62a6 | |||
e18caa3396 | |||
eb15d31ebf | |||
e7f1ab2d01 | |||
9d3beb3174 | |||
b6c3399abe | |||
b505874613 | |||
0a28573845 | |||
937df577f1 | |||
e54fd6c2cb | |||
3caea9d33e | |||
b9e9631195 | |||
76bded455a | |||
c94d9210ed | |||
0f5db9558c | |||
35a8c37922 | |||
6ff84a1061 | |||
aae9bc4cf4 | |||
426c2fa5d1 | |||
dab728278c | |||
7555ab097a | |||
5b5b64d251 | |||
eb84445796 | |||
364bd9ae74 | |||
d4b0761549 | |||
f8e06f12fd | |||
320352bf4b | |||
3c66990263 | |||
7cbe95a1cf | |||
c89abda3fb | |||
90348f4ac7 | |||
08293f368f | |||
d5378dab27 | |||
91648d1bd4 | |||
66d6e71f06 | |||
a0ea5776ab | |||
9b73e897df | |||
debc0086fa | |||
065ec8e170 | |||
11f8d742eb | |||
adf4f5410a | |||
8ff2694cad | |||
191c064611 | |||
d327bb8ff1 | |||
80bebea9e6 | |||
cf3fc97202 | |||
5b28d7bf90 | |||
5f8fb43cc9 | |||
6eff6ee451 | |||
c2ab3a15f4 | |||
a100e13a18 | |||
a591a334ed | |||
ca2e53bd6e | |||
d4b4b61535 | |||
440deb4624 | |||
bbb0130522 | |||
b6a4061097 | |||
48c94907c2 | |||
4fd06369d3 | |||
27a17b467d | |||
c25cf7f89a | |||
ade11aa447 | |||
3799708daf | |||
462204e204 | |||
752669bf5e | |||
b08e3f59d3 | |||
443b45e509 | |||
b2bed61088 | |||
be516d3c1e | |||
f5b41e1fbf | |||
e9afc1d867 | |||
a891f7e862 | |||
b715ea4621 | |||
ea13efe495 | |||
37f862947b | |||
ecb0861be4 | |||
624c9f3418 | |||
1b75984046 | |||
157f1c66dc | |||
cb41391bae | |||
acc88825fc | |||
233a837e35 | |||
9e4456ac1b | |||
83e1068da3 | |||
1fd345f563 | |||
37c16e5b45 | |||
ca25b9acc1 | |||
c3022d38f7 | |||
3599f16d22 | |||
3f78f6f6bb | |||
41f66e4299 | |||
0d36b144cf | |||
aa652aac8a | |||
8dbdab4a47 | |||
90c07a220f | |||
23e2a870cc | |||
dc8eb7d4fe | |||
fd363f5617 | |||
1726ff3977 | |||
93aba74463 | |||
99955f0af9 | |||
30cf154542 | |||
f2c33b06cf | |||
f12473e677 | |||
e845db01bf | |||
7f76a73eee | |||
3c2d94ace3 | |||
1e2239f527 | |||
1851daf9fd | |||
f378f26e5e | |||
cda6bc3404 | |||
071c7e6a58 | |||
010e1b3ba4 | |||
66de51c1ca | |||
265d6bda15 | |||
fecb12bae1 | |||
83ec906ee7 | |||
d44fbf58c9 | |||
9c4a789a4e | |||
bfa1705bad | |||
2876f2188c | |||
579c0043c3 | |||
0fa57957a4 | |||
05cb0b0ec5 | |||
4b24e96dfb | |||
c7eab37177 | |||
c7d0b6cb29 | |||
22ee087bb9 | |||
2480fcdc53 | |||
7e093aee5e | |||
dd8413a485 | |||
925f2912a9 | |||
ed00ea0865 | |||
3f19d221b7 | |||
808271838b | |||
ac0950fdef | |||
38f306ba73 | |||
5c1748d63d | |||
c00cddf5b0 | |||
baf3274748 | |||
9e0515e563 | |||
9c0404c407 | |||
0b85177690 | |||
7ec28ced40 | |||
19ae3b66ec | |||
0118dee3e5 | |||
9201714313 | |||
8b9c1efd7e | |||
111eb43fd9 | |||
f2964101d1 | |||
6b2c289029 | |||
fd2573c068 | |||
df0e9d75fe | |||
2bc86756c8 | |||
fb91ab4080 | |||
0b4d29ed1e | |||
2a8c65e2c3 | |||
ffc7f42efc | |||
7c38cda8ee | |||
d3f5001679 | |||
83d9a4b6d9 | |||
9760e08af4 | |||
8d48e4c76e | |||
a1e0c866aa | |||
8380222baf | |||
eda7d60c26 | |||
ddf92c3e2c | |||
9bb528eb6e | |||
9756957ac1 | |||
af0205b77d | |||
3f0da5453d | |||
923c3071f0 | |||
a8584973e2 | |||
886766cca5 | |||
974abbe826 | |||
61bdf51e90 | |||
9bee9d20f7 | |||
7aee3b88eb | |||
d08184f5fe | |||
ae08232bfb | |||
2b5e4b57bd | |||
35ae13a490 | |||
74f55b4d3f | |||
abe9440021 | |||
6a95b94aaa | |||
21ee38d813 | |||
9681a906d5 | |||
2ca760bee6 | |||
da9f916daa | |||
bc05b83a24 | |||
620e0a9df6 | |||
38ad4f7098 | |||
05c7cacdd1 | |||
baa49271df | |||
e2cbe70966 | |||
6a98301cc9 | |||
81f1df7472 | |||
abc296cdcc | |||
4df5ec82ce | |||
3963ed8ff7 | |||
11141c878c | |||
b1a2046a7f | |||
e44322c9bf | |||
2e6462bf1b | |||
667d9c2be3 | |||
34a86229db | |||
7dd8dbeb5b | |||
b5fb98f01a | |||
f6cfa5cbb4 | |||
c1b95838f6 | |||
6cee608c91 | |||
d979fb6dc0 | |||
ca2a33edc9 | |||
ea80d5eac2 | |||
51cf0970b3 | |||
9c8eb93446 | |||
3ac3a45aa5 | |||
36fcc0d5f6 | |||
6667b86650 | |||
9244efe351 | |||
538ca2a7c7 | |||
c5dd9439d5 | |||
2170c27b62 | |||
61582a0a33 | |||
65efe1f42c | |||
b2d3d43c97 | |||
4ce330c59e | |||
4ea60d36e5 | |||
95111ef8a1 | |||
145389768d | |||
be183206e6 | |||
8b853b7970 | |||
5450b78f71 | |||
a3283c71ef | |||
7231f5ff0b | |||
38a68ea946 | |||
bf9486edc2 | |||
aadfafaef9 | |||
c102978dd5 | |||
9784ade84f | |||
677f06961a | |||
57c3ea3dbe | |||
c01210d4fe | |||
64bbfed432 | |||
a482d9b078 | |||
08456dbb89 | |||
ea662b5c49 | |||
58a8fff895 | |||
bb302a90a6 | |||
99e34e9ee2 | |||
f1417c6bb1 | |||
729db347a2 | |||
f2465ca11f | |||
0294061c00 | |||
71e5892308 | |||
a1597047b4 | |||
d6a8889d84 | |||
070f1f3c6e | |||
234294d564 | |||
d1be8b43f6 | |||
0ed94ee52e | |||
f07564a452 | |||
37419886a1 | |||
b9f0a9ed88 | |||
d0f68bb5d1 | |||
11a350a114 | |||
778ac79c44 | |||
766c00c305 | |||
97cdfa662e | |||
4a08d5295e | |||
b77788b947 | |||
729116c9e5 | |||
d57d55a226 | |||
4cccdb8a98 | |||
54045f95ca | |||
ee6c7cbc59 | |||
00508dc778 | |||
a3ff1bfda7 | |||
f57888eb4b | |||
b2c703c173 | |||
9053b9635e | |||
b5e87a46b0 | |||
ddbdb94ba6 | |||
304e3d58ea | |||
ca6a70e555 | |||
9a611b24f3 | |||
77adf26236 | |||
805472482e | |||
01411327b8 | |||
9daa900793 | |||
b862c055ae | |||
7860839220 | |||
e17e8bbb6f | |||
136d0683b0 | |||
0eded8f5a9 | |||
f62eb0fee9 | |||
077bf11e45 | |||
ebdbd6a84a | |||
69975c2fdd | |||
9aac6a65c6 | |||
7d7c206f24 | |||
15690d853c | |||
14ddca3875 | |||
a8b4df6eae | |||
0683fa6b97 | |||
808c680184 | |||
2bb0a61a89 | |||
dfa129febf | |||
3b49d233f8 | |||
f08d7df419 | |||
cd94d79cbb | |||
2314133112 | |||
06a47a7bd3 | |||
05a785ebd0 | |||
2ee5835186 | |||
19e1abe110 | |||
d19441f3ae | |||
6e3ee05cb6 | |||
51476ad06f | |||
1f998168e2 | |||
e72011f1da | |||
0df3e22e51 | |||
5a9530ccd4 | |||
0a4d119d86 | |||
2ee0e07bb6 | |||
533c9a4fe1 | |||
30c000116f | |||
dc649fe420 | |||
4a8ec173ae | |||
26d6fe9a4e | |||
46f5175a0d | |||
f704e7a602 | |||
8cefcaa55f | |||
164c6505f2 | |||
0a1b83c70f | |||
e60048eb96 | |||
8957eec475 | |||
e790af566c | |||
43fe0cd62e | |||
e22a296dc7 | |||
ac19ebc850 | |||
1e0060193a | |||
72271d905d | |||
8d39283d46 | |||
4364122804 | |||
3b6dbd6dc3 | |||
7c61fc37c5 | |||
f530b5237d | |||
9b9b6ade64 | |||
e184c1cdfb | |||
e0e4b43707 | |||
1d70b33894 | |||
44ea1be930 | |||
a1bf54fe16 | |||
88c57359b3 | |||
050564f717 | |||
75d59a9c9b | |||
9139c863bf | |||
84a1ec01bc | |||
36e59c5b5f | |||
5389b16c59 | |||
da3008af1c | |||
6637766554 | |||
2bc63631a4 | |||
5215721942 | |||
d02e14cb94 | |||
fa75b40dfd | |||
f32d8b7069 | |||
90e8527556 | |||
66377d3f27 | |||
c6ae93df80 | |||
55e9099091 | |||
c6ace29446 | |||
b0b885aacd | |||
3615b5d353 | |||
74c71e6283 | |||
9b07c5af05 | |||
cda1803e59 | |||
96eab7e12b | |||
916512fd47 | |||
58d3a37908 | |||
a19e252c9e | |||
63225ed0fd | |||
11cc9cbc7c | |||
36b9a0d42f | |||
e7da10ae58 | |||
f07047d1e8 | |||
c62aff76af | |||
1c20de4e9c | |||
4903eb4a4a | |||
b5981ab544 | |||
00e1dbfdfb | |||
df69ca4d56 | |||
cb631d4abb | |||
3c351d8300 | |||
ca66acac2b | |||
9fcf94b197 | |||
aa34000f0b | |||
d3c0f3c251 | |||
bb7edfee04 | |||
caa14c70ef | |||
3a0f72867f | |||
10d72742f5 | |||
1b9f8a87d3 | |||
d4a630902d | |||
fef5ec874b | |||
f2e347fec1 | |||
cd3c2484ee | |||
6a396ef5e3 | |||
eec1af1f52 | |||
99fc77b678 | |||
8bb311df51 | |||
a77df249c2 | |||
2883bca257 | |||
dd3af6886b | |||
33bcf2d1ea | |||
795fb0eb60 | |||
9e9d378bf1 | |||
4a6b0edce6 | |||
356225af14 | |||
331305e6c7 | |||
917b9475a5 | |||
e895fc954b | |||
6d3e18a6a1 | |||
79354f4faf | |||
28f8933c3c | |||
10356b4041 | |||
6a732ab1cd | |||
47322b35ff | |||
4c6d0386b9 | |||
a448172952 | |||
244ef0cb8f | |||
cc66a1f9c7 | |||
e2183400e5 | |||
afc531bd26 | |||
02cc1891f2 | |||
09e3ddbd57 | |||
d0fff562ea | |||
8ce5366e80 | |||
bfcda7cc02 | |||
c52aeb6618 | |||
f5ebfdca61 | |||
db93838729 | |||
bb835a6e8a | |||
52feba0e3a | |||
a1076c3108 | |||
bad068b20e | |||
ec41d461c0 | |||
a826cd6845 | |||
a950b6193a | |||
2cc4de2b23 | |||
03ef6996ff | |||
d1e5def30e | |||
02fbda2154 | |||
c21694a24a | |||
cb98336b0a | |||
97d25bc6a3 | |||
b36a1a9d0e | |||
cd44ff0aaa | |||
032571c326 | |||
6b890e3f82 | |||
9998845b21 | |||
7ee4385deb | |||
695277c9eb | |||
f014a79f8d | |||
1a6d47a633 | |||
12eed8f859 | |||
549092d9aa | |||
b245393bc4 | |||
dcd43a17ba | |||
b8088dc01a | |||
8e1b90ab43 | |||
614a1d74dd | |||
9ea1ed8559 | |||
3e1e234799 | |||
62f5ecd278 | |||
27733e2119 | |||
6be127e18b | |||
4bf1c23b3c | |||
608b8bb741 | |||
ef01eec36e | |||
5dbdd0e685 | |||
5273050ab3 | |||
fae3b02e5a | |||
3489e4af1e | |||
8e9bd0bbd5 | |||
3725b5bc34 | |||
998a59aa5e | |||
86c017674a | |||
cbae87cd11 | |||
5bc1f8d468 | |||
d3a355e164 | |||
45413c9d28 | |||
082ee8836f | |||
2f5bd5e6d7 | |||
639e0137cc | |||
2f898aa037 | |||
a43a225740 | |||
833c39969b | |||
e25dea27e7 | |||
dac962580b | |||
b12bf78c6d | |||
a44b005f7c | |||
4ea65dbe41 | |||
90ba51ee9c | |||
ecf44084dc | |||
9f49c663f8 | |||
c8c9a67485 | |||
837358df66 | |||
498bc7cebe | |||
9c3a4eb947 | |||
de1ecbaef4 | |||
4eb05efa7c | |||
ffa40227ec | |||
b44e1820a2 | |||
eb461481ed | |||
92f47cc9cb | |||
f82c6f7ab4 | |||
9f32e46921 | |||
eba96282d6 | |||
dd8423fbb5 | |||
76f992906d | |||
402d6de02d | |||
43e3ce1ed5 | |||
15050018f2 | |||
71d6394bc8 | |||
1d6791e4c2 | |||
7f0084a7ed | |||
1374a12f89 | |||
92937b8b3c | |||
d0ed5a8b59 | |||
2b318a1021 | |||
903e93ae01 | |||
06c7fe669c | |||
e2c0ee66e4 | |||
c6c62f956b | |||
8fa27fea6c | |||
03c56f388c | |||
4090922e7e | |||
8061dedba1 | |||
da2112b659 | |||
ed5386771a | |||
d248828523 | |||
fc0b86fe19 | |||
346036ec88 | |||
a5e1ce0e0b | |||
67b39b1a98 | |||
6fb7721798 | |||
0018fd469e | |||
019f7480e8 | |||
8e0b088deb | |||
452005381f | |||
9722ed99a3 | |||
ee6311e83d | |||
1471e52307 | |||
f1fc12d9cc | |||
ebbc42bebc | |||
4785ee8c32 | |||
ab40756c1a | |||
c88e737a84 | |||
def5ea7978 | |||
e69ab45044 | |||
25d0b4bbf1 | |||
f86f5ac6cc | |||
07ce365bfd | |||
f31c94e2ea | |||
933638d035 | |||
b0151afa9a | |||
5bbd4ae703 | |||
f2f7f532a0 | |||
80eedf7449 | |||
1b48e0d6e0 | |||
0420c548da | |||
6e98b75d13 | |||
e772cb00d1 | |||
b5d5275e9b | |||
a2d3d22b6e | |||
1ad8603cc2 | |||
aeaf535ea2 | |||
917726fecc | |||
49a5b4eb14 | |||
8946f3ea18 | |||
1947835c51 | |||
c7c537c8b8 | |||
4e2f954683 | |||
abb0184329 | |||
ee483ecfd3 | |||
99384b4c22 | |||
65503bc68d | |||
ec6aadb5ce | |||
5f642886d9 | |||
4c26e3c54d | |||
3ca3712bae | |||
a471e4b783 | |||
20ac7e62e9 | |||
3e61aa0835 | |||
c18f6fde80 | |||
8b9397a0ce | |||
678ff17d0f | |||
ea2016c208 | |||
b5bdf266d3 | |||
2309680c38 | |||
e99bf569c5 | |||
d3fd0f810a | |||
484dc9b08a | |||
3bd827d7da | |||
d425c72134 | |||
969cd16638 | |||
569be15705 | |||
03f54c5b02 | |||
06ddc8ec50 | |||
1528935008 | |||
7121bdef6b | |||
f6c376f20d | |||
241769d6fc | |||
7727651871 | |||
ce331826ac | |||
ae92c52d61 | |||
54aef5fe6f | |||
d22148b418 | |||
5dc75c9cea | |||
200e82decb | |||
50359dbaf4 | |||
7165f21a62 | |||
8aab828c65 | |||
c9f8c12f5b | |||
a347f8fa49 | |||
2d76bdd0f8 | |||
c5cdd56edb | |||
6901ab39ed | |||
b851b7f431 | |||
ccaa99115c | |||
813de15e85 | |||
fa33181fa9 | |||
d4324dc0cb | |||
ccc27bcc14 | |||
014c1673c6 | |||
3a3319ff52 | |||
5b54ec8fb5 | |||
e690556286 | |||
660956917f | |||
3a5201747b | |||
b338e8a83f | |||
5584d56b6a | |||
c925498120 | |||
75615cf503 | |||
39f708b0fc | |||
ac32077221 | |||
a5902acacd | |||
c7c08b7511 | |||
7de915d47b | |||
9107547501 | |||
95dc76ca19 | |||
49c2a9b372 | |||
b378cabfc7 | |||
4263dbef31 | |||
32fc6ae2eb | |||
238cb0077f | |||
f5a06b6494 | |||
2c01329085 | |||
502de89ab1 | |||
128de6750c | |||
e59e2d9f0b | |||
2504b8391b | |||
330ea7d210 | |||
1edd173a29 | |||
98d873a7f9 | |||
09175b84df | |||
177e19632a | |||
8e6207f3e9 | |||
ff3a97f6cf | |||
b8e155ab40 | |||
b8e7df198d | |||
34311e3181 | |||
46115d3f04 | |||
c1d25d2394 | |||
880cea5a56 | |||
e7205d9cc2 | |||
f456feb3ff | |||
3f83beedb7 | |||
e6c9b1d9bd | |||
b46114f4fa | |||
8d77e2ba22 | |||
cb3900921f | |||
ae2021583d | |||
36cd88e6b7 | |||
517b0908da | |||
b23b3e4d21 | |||
883fc5dde0 | |||
9d044329f6 | |||
d1e9e74cb8 | |||
98a87ee75f | |||
331491077d | |||
913c3a6636 | |||
fbaf5fe355 | |||
804c932f60 | |||
cef6d1d1b6 | |||
e4e7ab1135 | |||
6ca30df8c4 | |||
a340d4ed8e | |||
ca7cb94358 | |||
54779b25f5 | |||
44d7652171 | |||
c9ed15b682 | |||
8faad646ae | |||
1d50bc3382 | |||
da4af041af | |||
e2ff408f2f | |||
50d1500dfc | |||
94441f93a5 | |||
5f712fbf3c | |||
1c757f10e0 | |||
0508d5f643 | |||
d9986b7a2f | |||
3d79e7a136 | |||
52fb1237ec | |||
8a7197726e | |||
b7f5458684 | |||
52710f3810 | |||
a54de07260 | |||
aa2c8d101e | |||
1441fd93b9 | |||
4a585e8920 | |||
8c4245a09d | |||
e4af16989a | |||
5dc0944fe8 | |||
b4d24f4377 | |||
67be47b8db | |||
e382982d32 | |||
b09b74b5da | |||
c628bdb7a6 | |||
2fcf6fb0fd | |||
4f3fc9ffd0 | |||
15839a7399 | |||
26b3a14a63 | |||
f2f0799df1 | |||
6c99c32100 | |||
93d25a2a34 | |||
88f5ec59d7 | |||
586d3c4db7 | |||
f45fb56e15 | |||
8fe153c7c1 | |||
36a8720fbb | |||
9cbfdc94d9 | |||
091923764d | |||
dc39caed1e | |||
bcd7d1f007 | |||
40d4dc0474 | |||
02ac30c0d0 | |||
518bc92673 | |||
a5b92e316c | |||
828c7b66a0 | |||
93474eaa06 | |||
237f366aa2 | |||
714bcf28d5 | |||
420eeb4d68 | |||
bc6daf4a2e | |||
6f7832c09b | |||
bef67fa275 | |||
05d7198667 | |||
df0bfc14e5 | |||
3f28f7451f | |||
dbb9199d6f | |||
72cb3b03af | |||
d0085f00ed | |||
43734f027b | |||
f799375635 | |||
65704bbf01 | |||
9cb3882efa | |||
a0833ca691 | |||
a4f197f608 | |||
bb903cab40 | |||
92f765bc47 | |||
742889a035 | |||
24453ebcc3 | |||
8b8ab1bf5c | |||
e9bc9b8675 | |||
eeaa27c7ca | |||
ccea1755fc | |||
c32a5d602b | |||
2a04f2ca4d | |||
37c80e8ef5 | |||
1dce62e42a | |||
ec222378c4 | |||
ac930a1c6a | |||
5ccd5ad56e | |||
67da90530b | |||
b7f3753615 | |||
d21d38509c | |||
a59e1c0345 | |||
7ab613b394 | |||
c00ab0fbe2 | |||
87451b1223 | |||
d2b61229a3 | |||
980584020a | |||
a43d0dafa5 | |||
d5c1e7e579 | |||
55bdf0d618 | |||
44f7c13ad4 | |||
7bd1a3c8ac | |||
4f1981df03 | |||
8689a998aa | |||
079bb8d722 | |||
65c0b6c7da | |||
84958af4ce | |||
c53b59914b | |||
8ffd9ab2d9 | |||
0305caf504 | |||
3012e4ffe0 | |||
585f3c3d3e | |||
f1d07dfbed | |||
cddfc55110 | |||
a2ce072ae7 | |||
439563c5d6 | |||
962617b4f4 | |||
4a202f0f7e | |||
6e6b12519a | |||
f5f7654f4b | |||
5ac4c48ad1 | |||
7e18fd18b0 | |||
fb30c479ea | |||
f40dcbfe13 | |||
8755b5f353 | |||
691482bb28 | |||
4248bb8ce0 | |||
a5653e33d3 | |||
072dc1c7e6 | |||
d76fceae85 | |||
86107b2710 | |||
a473768bef | |||
f7fe13a177 | |||
acd29d22eb | |||
c228155514 | |||
b601b98d5c | |||
1cd3419688 | |||
6f5f233bb5 | |||
d33492cd49 | |||
83ad9f369f | |||
3a78b62520 | |||
2479f75d8a | |||
f0d187f71e | |||
056942391a | |||
2feef81516 | |||
037d4b581b | |||
da4cf6fdb4 | |||
848bcd5a63 | |||
7b60b6c6dc | |||
fbc801d1da | |||
2f18f82e3d | |||
c2d5a96bb6 | |||
46575d4f04 | |||
5e7be93980 | |||
3f749c6540 | |||
2a7d4ee866 | |||
083095ded6 | |||
7207663f37 | |||
66b49c909a | |||
ab469aa243 | |||
afa4563e1e | |||
320b3d8617 | |||
7493429b4d | |||
d70f7a717b | |||
4ab38b7894 | |||
2068407be0 | |||
10a7369fec | |||
9fb5579701 | |||
b3cf883a44 | |||
f65e27c07c | |||
b587fefe44 | |||
2511114c28 | |||
9cd267fee5 | |||
aeac96a4f7 | |||
88a75e2a99 | |||
e14760775b | |||
9e7e464ba5 | |||
060d4fd27f | |||
940578d062 | |||
9cf42d8b33 | |||
1d62d2924e | |||
e23bac47ba | |||
b5d38adfcc | |||
f30513b20b | |||
ade1e40395 | |||
c93b8677e4 | |||
62683d8878 | |||
3d1239c1b4 | |||
5268bade66 | |||
514eb39a14 | |||
18628b821e | |||
344fbe6bcd | |||
afb8cd2dc1 | |||
1a5f385eb5 | |||
8df7864064 | |||
9ca60bad7f | |||
bd828bb072 | |||
892cb44d84 | |||
517ea6a119 | |||
ba8ffda32a | |||
90a9cf376e | |||
16d6c55407 | |||
f3508d15a3 | |||
0add490097 | |||
2d2d1bd58d | |||
7813c8a942 | |||
ac5453232f | |||
e78e5274d3 | |||
982520bcef | |||
7abd91f031 | |||
b93bfb7e5c | |||
2b20c34c1e | |||
0f63acea5b | |||
e600fb7096 | |||
b63fc71865 | |||
23e7650983 | |||
01b5ccfdc6 | |||
cc72f91465 | |||
45cb5ff4ef | |||
390279a4a8 | |||
851dececab | |||
482afa93a2 | |||
25bdbd7ae0 | |||
527a639242 | |||
0d5e000ad3 | |||
f4cb467e7a | |||
2f6b0b142a | |||
78c2535c3c | |||
26260392a8 | |||
aa573c0063 | |||
b2859bcd2a | |||
b58dd8c704 | |||
09c96286f9 | |||
f2d2089c21 | |||
79c366d1f2 | |||
c97ce5255f | |||
1fb66254a4 | |||
2d74f0507b | |||
9c06544c46 | |||
641dad586f | |||
016144b960 | |||
4d6c8efe44 | |||
860a7d1eeb | |||
2389857be8 | |||
18458f418f | |||
e812d054bc | |||
44d2c0195a | |||
42b4949b7f | |||
d915ae0807 | |||
8eec8ea35f | |||
023e0ba7aa | |||
d0d3b70c73 | |||
a509045b25 | |||
7be6501571 | |||
bb4c35d481 | |||
47ea84957d | |||
fc76f7874e | |||
77a778acf1 | |||
ff059d1268 | |||
53bb5012b9 | |||
09a3a977d7 | |||
04db5944d1 | |||
9c97bb431c | |||
38215f2cf9 | |||
01e7a01daf | |||
c2a8e29ef9 | |||
15a41e31b0 | |||
294c9840de | |||
568ecd9477 | |||
169f3ed541 | |||
ff7ae427fd | |||
1597415340 | |||
47f3261b9f | |||
9e68eefbb7 | |||
630c531d99 | |||
c7da2a4b5f | |||
692078f490 | |||
0e29e864c8 | |||
1b7a601d27 | |||
a96076ee5b | |||
d580622d1b | |||
6edccad4dd | |||
8fa47dbcb1 | |||
157f4bbc21 | |||
3b0d0df068 | |||
69802a9f00 | |||
b940da45af | |||
bd6de0e204 | |||
958074e347 | |||
988ac80087 | |||
1c7c72181e | |||
6857153367 | |||
0a3a0f3beb | |||
e92e83746d | |||
3b34b3e9ea | |||
9506f53691 | |||
92dc6db134 | |||
1b88a7bc03 | |||
781cebf194 | |||
b0c21aa233 | |||
b58afb0414 | |||
16b275a6b9 | |||
ac9612eb49 | |||
416accbe78 | |||
ee0531b048 | |||
e80da3c865 | |||
712a90d502 | |||
ab995930ff | |||
5dc27b6d4b | |||
391a0a1e0d | |||
8d1db30129 | |||
a0f35e240f | |||
570f4e921b | |||
ddd7b04646 | |||
3c4bae763f | |||
75e360ae7a | |||
90225f9d33 | |||
bb555ab8ff | |||
868f6a1f0c | |||
a3c1a29fbf | |||
f0c218200c | |||
9200b1cac2 | |||
28c2063043 | |||
8818648740 | |||
ce589fee8c | |||
f86cfdb1ce | |||
55cbf2c66e | |||
00515d35b9 | |||
5ce2bdf117 | |||
e65275da95 | |||
399903a462 | |||
9a30314e17 | |||
2170a9fedb | |||
0c291d1d8d | |||
d765a43166 | |||
45d42d1063 | |||
c5103672c9 | |||
8e21458e16 | |||
aade954dd7 | |||
3ae73555a9 | |||
c110f0860e | |||
b7a4f286b0 | |||
f640da911b | |||
9e0347d3f9 | |||
67496de411 | |||
2a5a055d1c | |||
7075b66aa5 | |||
93457eacf7 | |||
2d1a72b218 | |||
2db861991a | |||
391500bdac | |||
5b63c23ae1 | |||
34a7e2888d | |||
700c343f7c | |||
c30960d6bf | |||
ccceaabb52 | |||
721531c5b5 | |||
4f8a8f86bf | |||
d773c220c7 | |||
b9a0d25601 | |||
6e776650be | |||
cfe9452e92 | |||
03b4f19a4c | |||
a74c790ccb | |||
05f9135e30 | |||
6f115c6d81 | |||
f04002188d | |||
d00e4433ee | |||
2c1b26a988 | |||
ace59fa717 | |||
1d1fc87920 | |||
f976f32ea9 | |||
cb3dd91a8c | |||
e2610c52f3 | |||
de239b6d67 | |||
149de5b17b | |||
d47d6bb12b | |||
c30c71c338 | |||
a941c05d75 | |||
50fd020509 | |||
4ec264755f | |||
53f018aae6 | |||
38dded5061 | |||
59070cd626 | |||
5875409841 | |||
251bf4bd61 | |||
958c59b065 | |||
46b0c5f354 | |||
7ed3448e13 | |||
d355f3f77c | |||
08b72eb8c7 | |||
3f2f4fa32e | |||
7fe6b1f84f | |||
2cca14a625 | |||
856925f2ca | |||
a774767676 | |||
299ec075e2 | |||
17a04e2676 | |||
dd3df080d3 | |||
960b3c0aeb | |||
84bf879b7d | |||
a5cf189caa | |||
73e7c1bf67 | |||
acd64f58e3 | |||
259254aca8 | |||
783fa161a1 | |||
963c7761f2 | |||
1d6947d321 | |||
27ffb192f0 | |||
7c64d677cb | |||
f1f8e6dfd3 | |||
635afdf53f | |||
99b5d94b11 | |||
db24dddeff | |||
1f8334dcb7 | |||
0252e9b4b7 | |||
13abd6596e | |||
d8ab7f158c | |||
5a97b67785 | |||
711aa564c1 | |||
f6987c72ac | |||
9107895754 | |||
3dbc175091 | |||
6dee3678fe | |||
f55550cdeb | |||
1446a20c70 | |||
eafaebb0f9 | |||
de0d7701f9 | |||
8e94c47362 | |||
48e9898db1 | |||
64dcd9d697 | |||
a7f337e8e4 | |||
24c047b662 | |||
e97bfe5696 | |||
fb9fed545e | |||
964bfb36d8 | |||
8b32157cf1 | |||
f5d5d26b0e | |||
9f4da44b59 | |||
ee0cbab4e4 | |||
c44e8e6bf1 | |||
5ceffb2c17 | |||
96648b651e | |||
31abd2f59b | |||
f6154dc0af | |||
a5955c1123 | |||
23f262c2e4 | |||
39640b264d | |||
4845770880 | |||
c2b6b7b179 | |||
777c5a8704 | |||
467304b470 | |||
c8ba5add8c | |||
bbcc09d426 | |||
01c07d120f | |||
0c1076c917 | |||
cff91a7674 | |||
fa8f9c286d | |||
ad22491cc0 | |||
1fc936965c | |||
9c062643e1 | |||
f9ad250112 | |||
990ad0e01d | |||
683974fa58 | |||
a3eee05cea | |||
93dae4ec1c | |||
84178ba38a | |||
46aaf8fa9a | |||
5a950cf991 | |||
75cb7f8b36 | |||
79cbf0888c | |||
10f237be95 | |||
85971d3d88 | |||
26b193d39d | |||
ab1b0cc840 | |||
9703ba5340 | |||
d09d06e4cb | |||
3ed76718a8 | |||
45aae00ad5 | |||
c62a16ae64 | |||
e6b93c1dbb | |||
350310c4c2 | |||
1811725b9d | |||
c0938fe372 | |||
0f25c74415 | |||
3ecb0ab161 | |||
16fb7c4557 | |||
8aafafe416 | |||
90cfd87f46 | |||
5ff89e1538 | |||
8b6968c665 | |||
6ef1b1b1a2 | |||
fc0e1955d7 | |||
c3b8123e32 | |||
b6ec3f655a | |||
e37840d870 | |||
85b7eb1fb8 | |||
541f5f1314 | |||
a3c7901f87 | |||
78ef0a9929 | |||
b0bb5d8dfc | |||
307fc18138 | |||
330f2dedf7 | |||
c5c074f201 | |||
b16e5bd136 | |||
e13f778b33 | |||
953142115c | |||
1eb5578063 | |||
9bc07c1a1c | |||
cbbdc98744 | |||
4229065a69 | |||
932436096f | |||
d95242cab0 | |||
4214a0618e | |||
c012f4f880 | |||
3e85aad80a | |||
648be3005f | |||
66165b1935 | |||
e9360ac892 | |||
1d234e10bd | |||
2a9de356db | |||
43f3f8a058 | |||
4998ba8866 | |||
d18291cf0c | |||
fe9371f06c | |||
05a15afadb | |||
93417912bb | |||
07a565a61a | |||
332b13dfd0 | |||
81477ea7ee | |||
39e84539cd | |||
6496fbf923 | |||
de57dd7c97 | |||
9985c010bc | |||
f7a328d66e | |||
50598bcefb | |||
9c38e9722a | |||
b241967fb9 | |||
1f86a6d329 | |||
7a6b5b0bfc | |||
e406791b7b | |||
4ce2f596ee | |||
567f71fe61 | |||
70bb5879f9 | |||
cfd2d84b14 | |||
44ab428803 | |||
b34b728fbb | |||
8ada1725bf | |||
873444c3c6 | |||
8bdd4fd061 | |||
f3b518fb62 | |||
626d64631e | |||
608fa287c7 | |||
a35d01ee0f | |||
77c9b90e6d | |||
2f8992f98a | |||
c8ab0e9d62 | |||
072bc2d9fb | |||
cc7fec4b9f | |||
570931cff8 | |||
88ec15d4c7 | |||
c23c8ae4c3 | |||
92af4401e2 | |||
5b0dfa6130 | |||
a664173b5b | |||
93a889df82 | |||
0c1d3e186b | |||
e1cf090440 | |||
ff81648134 | |||
1eed6911f0 | |||
5faf9dc2c9 | |||
59a32e9352 | |||
bf654c6f42 | |||
34c82776fc | |||
02bde5150e | |||
245b08b624 | |||
1e58b3daff | |||
4f2b4366f2 | |||
7a94117d90 | |||
121c7542a0 | |||
e0433c6b89 | |||
c9bf99fa66 | |||
795b56f8ab | |||
d2edd67cff | |||
1ca6014284 | |||
7ff8fb027d | |||
d672bb4643 | |||
4c6c06c80a | |||
97b6af62fe | |||
f180f02dd1 | |||
3dbd48f744 | |||
3c99b2fd12 | |||
3d2cfd10bc | |||
e563798afb | |||
f679926b4f | |||
ff20045e1d | |||
c81ff10d5b | |||
a103ae6755 | |||
5c44c75c23 | |||
3a973aee69 | |||
16d59e9988 | |||
93ce25db91 | |||
c97a523ada | |||
488fe2e7bd | |||
8da278a279 | |||
da69650505 | |||
a85f6edd8a | |||
d17c6adba4 | |||
2671c6b4f2 | |||
a81d5786f3 | |||
75e2b075e1 | |||
533884dcaa | |||
7298b41a16 | |||
39561e858a | |||
96b88ee369 | |||
d94e2025be | |||
6ba5968861 | |||
cea2d621f2 | |||
84be4aa91e | |||
a943bf3906 | |||
42a14508f6 | |||
f4cb62db16 | |||
4dc4ac2f0c | |||
bf9da8458c | |||
1832b2e53c | |||
17ebaa01f5 | |||
c595f68d9d | |||
b040ac6373 | |||
e94dd8a5e8 | |||
e14509574d | |||
3a093f8bd7 | |||
ebb9a9b64f | |||
ef17838c64 | |||
11ddbdc58d | |||
4e8047275b | |||
c19670d611 | |||
540bd3630a | |||
49f6b3233e | |||
0f2d392b4b | |||
53fba9b137 | |||
24f2183829 | |||
61642539b1 | |||
1b7454ca77 | |||
60d2558ed6 | |||
9f5a763c69 | |||
0ef31a8bac | |||
1a8632e802 | |||
c1c955031e | |||
75ab146860 | |||
c3f9b2dcc3 | |||
c9e33f665e | |||
b719d43049 | |||
f555aa734b | |||
37fb685016 | |||
09fe1b355a | |||
9d530a5c38 | |||
827c378ac1 | |||
9b91b92bca | |||
e7fcca0e06 | |||
a36e5b4543 | |||
ba474648a2 | |||
a7b710a2f8 | |||
c033464b92 | |||
3ef6305c76 | |||
511ef20b8a | |||
4db710a4b0 | |||
efe92724a4 | |||
aa19767ebc | |||
143190ab38 | |||
baf94f86c4 | |||
d36b129369 | |||
f36d88246a | |||
03f87140b3 | |||
1dc07f6b72 | |||
0aa0a9d24b | |||
a9a93db2b4 | |||
f187df3933 | |||
8abe8042d7 | |||
58fd46ff6f | |||
fef8b662c1 | |||
8de2f4ce76 | |||
e5e344e1cd | |||
e70d7edf41 | |||
71d4d51fb2 | |||
aaf38f1cbe | |||
0e0d6692c0 | |||
29f927fe72 | |||
ee39d9594e | |||
cefd2a4c54 | |||
a08c20d9af | |||
dc11f1afbf | |||
b0f2b209a2 | |||
a25fdfd519 | |||
c1aa58596d | |||
b6a3eb2445 | |||
310f4d2edb | |||
701fee3139 | |||
593c2b9517 | |||
96b2267cb8 | |||
84730a071a | |||
d0b0cf8dfb | |||
749200d22b | |||
a47baad943 | |||
50abb51ece | |||
1f890c5bed | |||
97f23af86d | |||
d77aa1f26a | |||
0b075ad4e9 | |||
423f776ed0 | |||
084fd8152b | |||
89d35c2e63 | |||
be33581642 | |||
2d6d9f30e1 | |||
85721065fd | |||
9d65768d4d | |||
13f69e4291 | |||
6a0affcec1 | |||
ab6a84cd45 | |||
ba93bf7478 | |||
1c4e1af7c3 | |||
a85f4c4fc4 | |||
9d6c8806af | |||
ff52ea2a7c | |||
f247ee9dd3 | |||
f4cec53ba1 | |||
ad70b50fee | |||
ea7b2b3141 | |||
c2f932e28b | |||
c637882578 | |||
ef7221e39e | |||
6b571a7799 | |||
0638b6cb69 | |||
a39c1706a1 | |||
c741e27057 | |||
ede854c215 | |||
6a953b4d94 | |||
1d763096c7 | |||
630d873ec0 | |||
d427957ea7 | |||
2430cc0e2c | |||
e57ee24864 | |||
3bc05ab3f2 | |||
4e50dcfa93 | |||
fcf5531e5b | |||
3bef69ee58 | |||
311a4f28b0 | |||
01e692b353 | |||
3b445af6fc | |||
1e43ece637 | |||
6f1048c006 | |||
d686e70f2b | |||
70f524b82d | |||
79c6475028 | |||
7dee5309dc | |||
958ec7b03f | |||
9153434906 | |||
3a08364c24 | |||
a9beeab502 | |||
38c901069a | |||
3f7606060e | |||
777f20e9be | |||
8e39aecffe | |||
9e1ab54097 | |||
0f9e09f4bd | |||
743ebc17b9 | |||
9bc4af76b8 | |||
46fa26426d | |||
58d0dc1795 | |||
bc11702f7d | |||
6288de5813 | |||
bbf59c7d9f | |||
d7787bacf7 | |||
23ae0515c4 | |||
fe88b34b8a | |||
74aa031a22 | |||
6aeed212d9 | |||
45b972c059 | |||
7ecfc007a9 | |||
fc78c75bab | |||
59493a0cd9 | |||
6060c6d56e | |||
6cdbb27169 | |||
ed8b073e54 | |||
7dd193636c | |||
01d018510c | |||
1c273a0a75 | |||
fa2c7658a0 | |||
84ca3a7d45 | |||
902c73e6ac | |||
3b626f72e4 | |||
f5ce137a6b | |||
3ce9d12361 | |||
2fe2f3b1eb | |||
17b3ee41db | |||
56d2a5d5d3 | |||
3a17ff0983 | |||
9a9270bbe9 | |||
512eee4f51 | |||
db01fa0eef | |||
0c49a1ebd5 | |||
636d6394e3 | |||
c67c091b3a | |||
333604898c | |||
076ac3b614 | |||
0e1468b159 | |||
66409029e7 | |||
8ec6b2ec11 | |||
14736620ec | |||
831ca53b63 | |||
6138d46509 | |||
c3003cb363 | |||
4277e53433 | |||
6516bd2ade | |||
27d22f954a | |||
88f5e8e8e2 | |||
fd2ae6d3cf | |||
238edd36f7 | |||
5d847f9808 | |||
ac914af9c3 | |||
636f90ca0c | |||
29469bb7c6 | |||
4f043b1841 | |||
85008303f5 | |||
3432d6e615 | |||
855c990a17 | |||
eef2dc2f62 | |||
fa54140973 | |||
e770d32916 | |||
8aeabf530c | |||
6fbf1cfc28 | |||
5480df35bc | |||
8b5104d564 | |||
3c1192d6bf | |||
eb8ef35122 | |||
8a31e5fd0f | |||
751728db84 | |||
e695f54ef0 | |||
b2ed45ae38 | |||
5e36f75f8a | |||
7ac13a386c | |||
56c8ad9df3 | |||
f1ab918ecd | |||
42af8c7695 | |||
0de2e150cb | |||
1ac498c8fe | |||
545d29a40a | |||
73bbef2922 | |||
26567cdeb2 | |||
84941cbb97 | |||
cd5b24d4eb | |||
c8abd512e1 | |||
de9bd2651b | |||
c432310cae | |||
1c95cdffdc | |||
c3ec668e16 | |||
2af79e9855 | |||
f6ac6f9c6f | |||
d8c835fa51 | |||
a97c14a7b7 | |||
54ecf97c22 | |||
9c4e64b7b5 | |||
ef44eda69e | |||
f1a7ab639b | |||
0d8286cb2a | |||
8e4ad4b919 | |||
9a09ed6290 | |||
9ca36021b0 | |||
eaebb95827 | |||
b8cce2067c | |||
07a0631964 | |||
ebc2b05231 | |||
4c79dd4e96 | |||
abc57519a7 | |||
a23a10d375 | |||
01e7716170 | |||
0a29ce13b6 | |||
6d0ee61661 | |||
9c684fd6c4 | |||
cbb8edd5ed | |||
f933fa0e78 | |||
b3e5198f23 | |||
6e042ca344 | |||
9381842af2 | |||
a6644c540a | |||
063427a660 | |||
6846067a5d | |||
b7273c90ae | |||
a6f5e23069 | |||
f37f22b163 | |||
9440fdb2d0 | |||
96c19b2607 | |||
b34c1379e9 | |||
0fc965f342 | |||
617db05808 | |||
6a20ab687c | |||
6c3bcdad54 | |||
aeea275ec2 | |||
b3c6e28717 | |||
70691e1523 | |||
2cb032b0e0 | |||
ebbf5268ac | |||
b2030e8403 | |||
82493bb741 | |||
aa15901c23 | |||
0bd4d069a2 | |||
ab871c6991 | |||
feec5e88fc | |||
a091cbb93a | |||
a59ab79da0 | |||
8ca4d39440 | |||
41d041f701 | |||
3e516474c2 | |||
405c9c258b | |||
24e389bcf3 | |||
933c83679e | |||
a7aa924949 | |||
0eb84fe874 | |||
2f451fa058 | |||
2465a377a1 | |||
697219e946 | |||
4478298a0a | |||
925f89720a | |||
0f71d9f47a | |||
a7ec54ea97 | |||
1d43d18b19 | |||
0bcb25a983 | |||
ec1f2a285b | |||
c2c06694da | |||
5343b005df | |||
eb783f827c | |||
6064c3ae47 | |||
05862a420f | |||
393ad283e1 | |||
841c8d619f | |||
5c2ed9e5d3 | |||
d39aabc143 | |||
4628f507e5 | |||
8b05816860 | |||
3b8ea90fdc | |||
638458e2c1 | |||
bd8d7c3d0f | |||
4b747d20b7 | |||
351b236014 | |||
e9251debe0 | |||
22c4842154 | |||
788edd3622 | |||
5afe96e15a | |||
899fc8a7bd | |||
2afcdda058 | |||
c2fc637575 | |||
82d2b0608f | |||
047a46d966 | |||
e97dd13e81 | |||
067e9ec6f4 | |||
64397708fd | |||
5ae6b0058f | |||
c201326906 | |||
3bc2fe8527 | |||
c76c1fc4ef | |||
fb3fa06ae7 | |||
48353cccae | |||
65bf863093 | |||
87a6ef0581 | |||
af583d2ef6 | |||
68d49bc770 | |||
d848195a6e | |||
3c5324bbbb | |||
e2d59293fb | |||
411f038f34 | |||
26f2ae093b | |||
6a53ccf814 | |||
114523e69e | |||
d5caf22d8c | |||
a8f945ae8e | |||
d078f78602 | |||
a5c6145237 | |||
50df9f7dff | |||
7b33522d97 | |||
d3edf03125 | |||
d5cd38b459 | |||
2c76d410ab | |||
dfd991a6c6 | |||
16b81fff38 | |||
f379a721f1 | |||
194a958d40 | |||
327ffd3498 | |||
40276d7f1a | |||
9254f95679 | |||
2e1a9dffbe | |||
ead5a6a258 | |||
97002400a8 | |||
5e7a4e4752 | |||
2c955858a0 | |||
a0e56504de | |||
d46e9f5abe | |||
fd94b817ab | |||
f17e229c1e | |||
96e23b0e5b | |||
014b945ea6 | |||
76693138d3 | |||
10677b57d4 | |||
5f0ac0f46a | |||
7ffe559525 | |||
919e3e2fed | |||
03e999875a | |||
ed0070c470 | |||
d764316708 | |||
06b1203ef9 | |||
b2cf74e878 | |||
21064f7859 | |||
bb2d76ffa3 | |||
763b70e01b | |||
5a349eb376 | |||
0141affe05 | |||
a8379e3bc9 | |||
952789cc1e | |||
0500600cdd | |||
6b897e562a | |||
f74bc309b1 | |||
bc83963ac7 | |||
94715e6153 | |||
31a5247b9c | |||
ac9f77752d | |||
73ac2632c2 | |||
20f11a6701 | |||
9bdc67c1f6 | |||
bb4ca7b31a | |||
89f16668e6 | |||
8409b59dea | |||
1707002d43 | |||
16b03fc157 | |||
fa0023e541 | |||
aec5911821 | |||
26f4c038f3 | |||
6136f6f33a | |||
2b8d0225cc | |||
18184441f1 | |||
bd83939993 | |||
2c1932faa7 | |||
33d79420eb | |||
80d8af84dd | |||
aac519bf80 | |||
d64dffbdda | |||
4015ccef2f | |||
b6f985abaf | |||
2dac8d3d1f | |||
4f284e1bc0 | |||
b0280355e8 | |||
048d88b784 | |||
bb52ebdc3e | |||
5f2fda85ba | |||
1331f0b953 | |||
736fdabc1d | |||
7096c0ca49 | |||
1a984de8e8 | |||
285d0d13f9 | |||
63c659bc8f | |||
af60b45ee7 | |||
e7effd606d | |||
5042d23bc4 | |||
b134467bd3 | |||
5cc1aab530 | |||
49d57ce049 | |||
f1feceaf1a | |||
1204e1c5e4 | |||
96cf4c30cf | |||
a3853611ad | |||
ef7eaaabfa | |||
a4a96710b0 | |||
6d08909b2f | |||
2615368b1e | |||
2bd03ca725 | |||
67dda01fcb | |||
e9dc54c4d9 | |||
fde9fc2891 | |||
6e59798e82 | |||
5e3cc0a3c6 | |||
cfb35324d0 | |||
9bfbc12afa | |||
b41cddaf5a | |||
1432a7193d | |||
20630cb3a0 | |||
2eb02ae581 | |||
801f9027aa | |||
802739a2df | |||
95b1e1a21d | |||
b8060a522a | |||
fe2191a491 | |||
2891f52817 | |||
5bdc44c672 | |||
65d359b57a | |||
7b6e717e23 | |||
2820f6a621 | |||
6f96e05fec | |||
4c2c762b87 | |||
81fadfa4ff | |||
c227641d50 | |||
dacc713f99 | |||
a1f794ee05 | |||
8b2098fc89 | |||
4436852de0 | |||
a8ff1e19dc | |||
d559aa8e6d | |||
83fedcff3b | |||
9969cf8816 | |||
dee48fff12 | |||
aff80199e5 | |||
b9f1a55190 | |||
07d5bce61a | |||
834edd216c | |||
4670a3d886 | |||
78952df364 | |||
d69df60da4 | |||
6ca69f6f2e | |||
8e8428b667 | |||
5dbe1d448b | |||
85d8e6f220 | |||
72fb23f4d5 | |||
9403ee6495 | |||
94ce4fa780 | |||
911f5c1455 | |||
a6a88af513 | |||
fad1352d51 | |||
41cdae07c3 | |||
3b0daeac3c | |||
99e4b06468 | |||
c88576e3e6 | |||
4de709fe51 | |||
37e4226c70 | |||
1a6ed61b91 | |||
ac641da49c | |||
933a79af93 | |||
f36e3c69b4 | |||
c46bfcc768 | |||
c65ccd5eb0 | |||
162a740295 | |||
9192e98e3f | |||
fad84203c0 | |||
622266d200 | |||
0f6cd3c125 | |||
0dfc1fcf13 | |||
efeebd2165 | |||
69a916d506 | |||
114803a86a | |||
7f54c8fa2a | |||
0af3e15e82 | |||
f9afebc12e | |||
fc7268fd12 | |||
7e7f94d685 | |||
3ea7a49c1c | |||
f596a847c2 | |||
312ba501a3 | |||
c6531e8609 | |||
36c2d0082f | |||
358bb0fc06 | |||
5a4f6b4ada | |||
03136caac4 | |||
e6f78a73ab | |||
bcdab799d0 | |||
50251955cd | |||
2270fbf3ee | |||
deb6485cc2 | |||
6de08d07a3 | |||
f54cd10a04 | |||
dda7b0c80e | |||
3ed9e1ff3f | |||
9c8d26affa | |||
1e1a7ee858 | |||
9cfb72810c | |||
14a774c723 | |||
8509adf961 | |||
9d75ec799b | |||
eed9266ecb | |||
4a88cb5968 | |||
50d4de19f0 | |||
c7456224af | |||
c1524d9bef | |||
aa1d2545b3 | |||
1092818203 | |||
d67d163c78 | |||
a973bd56fe | |||
08b6fda065 | |||
d0cc145cb3 | |||
19588647d6 | |||
09da292f1a | |||
c8107ff936 | |||
b44afc1876 | |||
c26168f22e | |||
391be342ac | |||
16549f8f84 | |||
2d2b65d9fa | |||
a12ad37522 | |||
84541faf92 | |||
c7daaba370 | |||
f128813a5e | |||
699a55ea08 | |||
90a674f99b | |||
f236d36ed3 | |||
1b2200ccf4 | |||
c6353f3502 | |||
f09b8a78a0 | |||
5f741ac46e | |||
a434cfbe0d | |||
cd4c7689b7 | |||
3cc2049fb3 | |||
0d3117e472 | |||
b335975c97 | |||
5511b6e013 | |||
262d5ead51 | |||
a78b048720 | |||
e7dd5e155d | |||
5a3ea38bbf | |||
786521eba7 | |||
202cb3048a | |||
7e642cf700 | |||
7732aabc1e | |||
1cf9f52eca | |||
d1d5e10b72 | |||
c3fada264f | |||
45eeb74b83 | |||
b9a6e551cd | |||
c610e5ed9b | |||
c2c2824e50 | |||
01fab09683 | |||
e103904a04 | |||
56678cbac0 | |||
7fade8939d | |||
daa557f6a3 | |||
23a257ed86 | |||
05d0620491 | |||
5225139284 | |||
9b2e996cae | |||
6a561342a4 | |||
429bed2f91 | |||
200d593414 | |||
9dbe12135d | |||
318d7f2652 | |||
5a653531e2 | |||
c7cc3dcdfd | |||
61f54f8f74 | |||
a3b27fe3a1 | |||
380749051d | |||
81625f9fc5 | |||
d6ccb1725b | |||
5ce412aeda | |||
fe6d88e410 | |||
a21357248f | |||
70d710c9a9 | |||
183c82fb8d | |||
62cbb92154 | |||
7d70126072 | |||
54bfffa7b9 | |||
3f5b96bf62 | |||
3d8bbedf1b | |||
23c9f6a6ca | |||
5ba8d4949d | |||
a6befdd541 | |||
e5409db0e8 | |||
678d610cd6 | |||
466fe9c368 | |||
13feaea7b7 | |||
e52f9301fa | |||
1b58e18a6d | |||
b779ff08e0 | |||
811f9c22d7 | |||
c3529f0691 | |||
f9f574532e | |||
92dee53dd6 | |||
5d42ee2359 | |||
7c03d37caa | |||
b128b593c2 | |||
342e48ed77 | |||
052f8b265d | |||
2eedc91d74 | |||
410b9ad6bc | |||
24c6dff3e4 | |||
161db7636a | |||
796252357e | |||
b0344d52e9 | |||
8e6da3a0d9 | |||
756e4eaeec | |||
3126d0730a | |||
748e9f15df | |||
7c714f5788 | |||
d3c3ad839b | |||
168de3c316 | |||
9e20fc5c88 | |||
1ff5151786 | |||
a56738a331 | |||
2d04a3d6d2 | |||
e0a55b9100 | |||
0a57eecb3a | |||
51f98020f6 | |||
70123805e1 | |||
1448b11d00 | |||
490b81ed05 | |||
96f675abed | |||
4cd451c613 | |||
187792dfc4 | |||
3dde561fe5 | |||
a75ec45172 | |||
3732ddf75f | |||
b8d8097734 | |||
1092532292 | |||
8a79ba0e2b | |||
ca2949fbb4 | |||
17b373ac07 | |||
7aa66f438f | |||
73641fd78d | |||
64aac9d6ad | |||
2be13736c8 | |||
ff4f5fec1d | |||
7d64f8abe4 | |||
88e6929e9f | |||
5fb0a995dd | |||
58a04ce1a5 | |||
f74e0d9123 | |||
c6249b82d4 | |||
d6131c0b09 | |||
e62c810b7c | |||
2851a1a7ef | |||
12cd2709d6 | |||
bf54e58873 | |||
6b473e3a5c | |||
4b68abd963 | |||
0e764a2b3e | |||
9d1ed1eb0d | |||
a09a3465a2 | |||
001969efaf | |||
e7c515da9a | |||
8367c7dd49 | |||
55e6cae240 | |||
5553c3fb17 | |||
026265cb1e | |||
289c76a802 | |||
7c1bc1d6bc | |||
90cf0d32b5 | |||
88d934f922 | |||
abf11bb03c | |||
2d1f50303d | |||
9fb7c4091f | |||
2fdec27ab0 | |||
aff56469ed | |||
419cb7fbad | |||
7882851539 | |||
358299cf0e | |||
5a2af24869 | |||
6d35872af5 | |||
559dfdaa80 | |||
79c49bc926 | |||
76c538ad25 | |||
e76e358d98 | |||
76f37671b4 | |||
a9fc176c3c | |||
8b13e3c327 | |||
c3cd6ad2d2 | |||
3444b9c9c8 | |||
ca6fc9cd79 | |||
4747ae8b61 | |||
b6c50d63a0 | |||
52ebf2055e | |||
d0af2c2a98 | |||
10216af48a | |||
d0c8d537f5 | |||
1903aaf351 | |||
e6cdf1b995 | |||
2900d22cdc | |||
dc072d4706 | |||
8ae14f146b | |||
57444c6c3f | |||
759719d124 | |||
59782973be | |||
6c647ea91c | |||
c9763dabe1 | |||
da82754659 | |||
a3cc0ad18b | |||
2e8e5c2751 | |||
a60d83b101 | |||
6d45265763 | |||
155da0c6a3 |
13
.babelrc
Normal file
@ -0,0 +1,13 @@
|
||||
{
|
||||
"plugins": [
|
||||
[
|
||||
"@babel/plugin-transform-runtime",
|
||||
{
|
||||
"corejs": {
|
||||
"version": 3,
|
||||
"proposals": true
|
||||
}
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
@ -1,75 +1,12 @@
|
||||
version: 2.1
|
||||
|
||||
executors:
|
||||
default:
|
||||
working_directory: /tmp/workspace
|
||||
docker:
|
||||
- image: misskey/ci:latest
|
||||
- image: circleci/redis:latest
|
||||
docker:
|
||||
working_directory: /tmp/workspace
|
||||
docker:
|
||||
- image: docker:latest
|
||||
|
||||
jobs:
|
||||
build:
|
||||
executor: default
|
||||
steps:
|
||||
- checkout
|
||||
- run:
|
||||
name: Ensure yarn.lock
|
||||
command: |
|
||||
touch yarn.lock
|
||||
- restore_cache:
|
||||
name: Restore npm package caches
|
||||
keys:
|
||||
- yarn-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-lock-{{ checksum "yarn.lock" }}
|
||||
- yarn-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-
|
||||
- yarn-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-
|
||||
- yarn-v1-arch-{{ arch }}-
|
||||
- yarn-v1-
|
||||
- run:
|
||||
name: Install Dependencies
|
||||
command: |
|
||||
yarn install
|
||||
- run:
|
||||
name: Configure
|
||||
command: |
|
||||
cp .circleci/misskey/default.yml .config
|
||||
cp .circleci/misskey/test.yml .config
|
||||
- run:
|
||||
name: Build
|
||||
command: |
|
||||
yarn build
|
||||
touch yarn.lock
|
||||
- save_cache:
|
||||
name: Cache npm packages
|
||||
key: yarn-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-lock-{{ checksum "yarn.lock" }}
|
||||
paths:
|
||||
- node_modules
|
||||
- persist_to_workspace:
|
||||
root: .
|
||||
paths:
|
||||
- .
|
||||
test:
|
||||
parameters:
|
||||
executor:
|
||||
type: string
|
||||
default: "default"
|
||||
executor: <<parameters.executor>>
|
||||
steps:
|
||||
- attach_workspace:
|
||||
at: /tmp/workspace
|
||||
- run:
|
||||
name: Test
|
||||
command: |
|
||||
yarn test
|
||||
touch yarn.lock
|
||||
- save_cache:
|
||||
name: Cache npm packages
|
||||
key: yarn-v1-arch-{{ arch }}-env-{{ .Environment.variableName }}-package-{{ checksum "package.json" }}-lock-{{ checksum "yarn.lock" }}
|
||||
paths:
|
||||
- node_modules
|
||||
docker:
|
||||
parameters:
|
||||
with_deploy:
|
||||
@ -101,55 +38,8 @@ jobs:
|
||||
|
||||
workflows:
|
||||
version: 2
|
||||
nodejs:
|
||||
jobs:
|
||||
- hold:
|
||||
name: manual-build-trigger
|
||||
type: approval
|
||||
filters:
|
||||
branches:
|
||||
ignore: master
|
||||
- build:
|
||||
name: manual-build
|
||||
requires:
|
||||
- manual-build-trigger
|
||||
filters:
|
||||
branches:
|
||||
ignore: master
|
||||
- build:
|
||||
name: auto-build
|
||||
filters:
|
||||
branches:
|
||||
only: master
|
||||
- test:
|
||||
name: manual-test
|
||||
requires:
|
||||
- manual-build
|
||||
filters:
|
||||
branches:
|
||||
ignore: master
|
||||
- test:
|
||||
name: auto-test
|
||||
requires:
|
||||
- auto-build
|
||||
filters:
|
||||
branches:
|
||||
only: master
|
||||
docker:
|
||||
jobs:
|
||||
- hold:
|
||||
name: manual-build-trigger
|
||||
type: approval
|
||||
filters:
|
||||
branches:
|
||||
ignore: master
|
||||
- docker:
|
||||
name: manual-build
|
||||
requires:
|
||||
- manual-build-trigger
|
||||
filters:
|
||||
branches:
|
||||
ignore: master
|
||||
- docker:
|
||||
name: auto-build
|
||||
with_deploy: true
|
||||
|
@ -1,14 +1,12 @@
|
||||
url: 'http://misskey.local'
|
||||
port: 80
|
||||
mongodb:
|
||||
port: 8080
|
||||
db:
|
||||
host: localhost
|
||||
port: 27017
|
||||
db: misskey
|
||||
user: syuilo
|
||||
port: 5432
|
||||
db: test-misskey
|
||||
user: postgres
|
||||
pass: ''
|
||||
drive:
|
||||
storage: 'db'
|
||||
redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
pass: ''
|
||||
id: aid
|
||||
|
@ -1,15 +1,12 @@
|
||||
url: 'http://misskey.local'
|
||||
port: 80
|
||||
mongodb:
|
||||
port: 8080
|
||||
db:
|
||||
host: localhost
|
||||
port: 27017
|
||||
port: 5432
|
||||
db: test-misskey
|
||||
user: admin
|
||||
user: postgres
|
||||
pass: ''
|
||||
drive:
|
||||
storage: 'db'
|
||||
# __REDIS__
|
||||
redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
pass: ''
|
||||
id: aid
|
||||
|
@ -8,6 +8,9 @@
|
||||
# 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 └───────────────────────────────────
|
||||
|
||||
@ -62,6 +65,13 @@ db:
|
||||
user: example-misskey-user
|
||||
pass: example-misskey-pass
|
||||
|
||||
# Whether disable Caching queries
|
||||
#disableCache: true
|
||||
|
||||
# Extra Connection options
|
||||
#extra:
|
||||
# ssl: true
|
||||
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Redis configuration └─────────────────────────────────────
|
||||
|
||||
@ -69,6 +79,8 @@ redis:
|
||||
host: localhost
|
||||
port: 6379
|
||||
#pass: example-pass
|
||||
#prefix: example-prefix
|
||||
#db: 1
|
||||
|
||||
# ┌─────────────────────────────┐
|
||||
#───┘ Elasticsearch configuration └─────────────────────────────
|
||||
@ -76,48 +88,9 @@ redis:
|
||||
#elasticsearch:
|
||||
# host: localhost
|
||||
# port: 9200
|
||||
# pass: null
|
||||
|
||||
# ┌────────────────────────────────────┐
|
||||
#───┘ File storage (Drive) configuration └──────────────────────
|
||||
|
||||
drive:
|
||||
storage: 'fs'
|
||||
|
||||
# OR
|
||||
|
||||
# storage: 'minio'
|
||||
# bucket:
|
||||
# prefix:
|
||||
# config:
|
||||
# endPoint:
|
||||
# port:
|
||||
# useSSL:
|
||||
# accessKey:
|
||||
# secretKey:
|
||||
|
||||
# S3 example
|
||||
# storage: 'minio'
|
||||
# bucket: bucket-name
|
||||
# prefix: files
|
||||
# config:
|
||||
# endPoint: s3-us-west-2.amazonaws.com
|
||||
# region: us-west-2
|
||||
# useSSL: true
|
||||
# accessKey: XXX
|
||||
# secretKey: YYY
|
||||
|
||||
# S3 example (with CDN, custom domain)
|
||||
# storage: 'minio'
|
||||
# bucket: drive.example.com
|
||||
# prefix: files
|
||||
# baseUrl: https://drive.example.com
|
||||
# config:
|
||||
# endPoint: s3-us-west-2.amazonaws.com
|
||||
# region: us-west-2
|
||||
# useSSL: true
|
||||
# accessKey: XXX
|
||||
# secretKey: YYY
|
||||
# ssl: false
|
||||
# user:
|
||||
# pass:
|
||||
|
||||
# ┌───────────────┐
|
||||
#───┘ ID generation └───────────────────────────────────────────
|
||||
@ -140,12 +113,47 @@ id: 'aid'
|
||||
# ┌─────────────────────┐
|
||||
#───┘ Other configuration └─────────────────────────────────────
|
||||
|
||||
# If enabled:
|
||||
# The first account created is automatically marked as Admin.
|
||||
autoAdmin: true
|
||||
|
||||
# Whether disable HSTS
|
||||
#disableHsts: true
|
||||
|
||||
# Clustering
|
||||
# Number of worker processes
|
||||
#clusterLimit: 1
|
||||
|
||||
# Job concurrency per worker
|
||||
# deliverJobConcurrency: 128
|
||||
# inboxJobConcurrency: 16
|
||||
|
||||
# Job rate limiter
|
||||
# deliverJobPerSec: 128
|
||||
# inboxJobPerSec: 16
|
||||
|
||||
# Job attempts
|
||||
# deliverJobMaxAttempts: 12
|
||||
# inboxJobMaxAttempts: 8
|
||||
|
||||
# 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'
|
||||
#]
|
||||
|
||||
# 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
|
||||
|
||||
# Sign to ActivityPub GET request (default: false)
|
||||
#signToActivityPubGet: true
|
||||
|
@ -5,8 +5,10 @@
|
||||
.vscode
|
||||
Dockerfile
|
||||
build/
|
||||
built/
|
||||
db/
|
||||
docker-compose.yml
|
||||
elasticsearch/
|
||||
node_modules/
|
||||
redis/
|
||||
files/
|
||||
|
24
.eslintrc
@ -1,23 +1,23 @@
|
||||
{
|
||||
"parserOptions": {
|
||||
"parser": "typescript-eslint-parser"
|
||||
"parser": "@typescript-eslint/parser"
|
||||
},
|
||||
"extends": [
|
||||
"eslint:recommended",
|
||||
"plugin:vue/recommended"
|
||||
],
|
||||
"rules": {
|
||||
"vue/require-v-for-key": false,
|
||||
"vue/max-attributes-per-line": false,
|
||||
"vue/html-indent": false,
|
||||
"vue/html-self-closing": false,
|
||||
"vue/no-unused-vars": false,
|
||||
"vue/attributes-order": false,
|
||||
"vue/require-prop-types": false,
|
||||
"vue/require-default-prop": false,
|
||||
"vue/html-closing-bracket-spacing": false,
|
||||
"vue/singleline-html-element-content-newline": false,
|
||||
"vue/no-v-html": false,
|
||||
"vue/require-v-for-key": 0,
|
||||
"vue/max-attributes-per-line": 0,
|
||||
"vue/html-indent": 0,
|
||||
"vue/html-self-closing": 0,
|
||||
"vue/no-unused-vars": 0,
|
||||
"vue/attributes-order": 0,
|
||||
"vue/require-prop-types": 0,
|
||||
"vue/require-default-prop": 0,
|
||||
"vue/html-closing-bracket-spacing": 0,
|
||||
"vue/singleline-html-element-content-newline": 0,
|
||||
"vue/no-v-html": 0,
|
||||
"no-console": 0,
|
||||
"no-unused-vars": 0,
|
||||
"no-empty": 0
|
||||
|
6
.gitattributes
vendored
@ -1,5 +1,7 @@
|
||||
*.svg -diff -text
|
||||
*.psd -diff -text
|
||||
*.ai -diff -text
|
||||
yarn.lock -diff -text
|
||||
package-lock.json -diff -text
|
||||
*.mqo -diff -text
|
||||
*.glb -diff -text
|
||||
*.blend -diff -text
|
||||
*.afdesign -diff -text
|
||||
|
1
.github/CODEOWNERS
vendored
@ -6,7 +6,6 @@
|
||||
/.github/ @syuilo @AyaMorisawa @acid-chicken
|
||||
/.vscode/ @acid-chicken
|
||||
/assets/ @syuilo # @tamaina
|
||||
/cli/ @syuilo
|
||||
/docs/ @syuilo
|
||||
/docs/*.en.md @AyaMorisawa # @skid9000
|
||||
# /docs/*.fr.md @BoFFire
|
||||
|
3
.github/FUNDING.yml
vendored
Normal file
@ -0,0 +1,3 @@
|
||||
# These are supported funding model platforms
|
||||
|
||||
patreon: syuilo
|
18
.github/workflows/docker.yml
vendored
Normal file
@ -0,0 +1,18 @@
|
||||
name: Docker build
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Pull previous build result (for cache)
|
||||
run: docker pull misskey/misskey:latest
|
||||
- name: Build docker container
|
||||
run: docker build --cache-from misskey/misskey:latest -t misskey/misskey .
|
53
.github/workflows/nodejs.yml
vendored
Normal file
@ -0,0 +1,53 @@
|
||||
name: Node.js CI
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
build_and_test:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
node-version: [12.x, 14.x]
|
||||
|
||||
services:
|
||||
postgres:
|
||||
image: postgres:10-alpine
|
||||
ports:
|
||||
- 5432:5432
|
||||
env:
|
||||
POSTGRES_DB: test-misskey
|
||||
POSTGRES_HOST_AUTH_METHOD: trust
|
||||
redis:
|
||||
image: redis:alpine
|
||||
ports:
|
||||
- 6379:6379
|
||||
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- name: Use Node.js ${{ matrix.node-version }}
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: ${{ matrix.node-version }}
|
||||
- name: Install dependencies
|
||||
run: yarn install
|
||||
- name: Copy Configure
|
||||
run: cp .circleci/misskey/*.yml .config
|
||||
- name: Build
|
||||
run: yarn build
|
||||
- name: Test
|
||||
run: yarn test
|
||||
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 12.x
|
||||
- run: yarn install
|
||||
- run: yarn lint
|
27
.gitignore
vendored
@ -1,11 +1,22 @@
|
||||
# Visual Studio Code
|
||||
/.vscode
|
||||
!/.vscode/extensions.json
|
||||
|
||||
# Intelij-IDEA
|
||||
/.idea
|
||||
|
||||
# Node.js
|
||||
/node_modules
|
||||
report.*.json
|
||||
|
||||
# config
|
||||
/.config/*
|
||||
!/.config/example.yml
|
||||
!/.config/mongo_initdb_example.js
|
||||
/.vscode
|
||||
/node_modules
|
||||
!/.config/docker_example.env
|
||||
|
||||
# misskey
|
||||
/build
|
||||
/built
|
||||
built
|
||||
/data
|
||||
/.cache-loader
|
||||
/db
|
||||
@ -17,7 +28,13 @@ api-docs.json
|
||||
*.log
|
||||
/redis
|
||||
*.code-workspace
|
||||
yarn.lock
|
||||
.DS_Store
|
||||
/files
|
||||
ormconfig.json
|
||||
|
||||
# blender backups
|
||||
*.blend1
|
||||
*.blend2
|
||||
*.blend3
|
||||
*.blend4
|
||||
*.blend5
|
||||
|
5
.imgbotconfig
Normal file
@ -0,0 +1,5 @@
|
||||
{
|
||||
"ignoredFiles": [
|
||||
"test/resources/*"
|
||||
]
|
||||
}
|
7
.mocharc.json
Normal file
@ -0,0 +1,7 @@
|
||||
{
|
||||
"extension": ["ts","js","cjs","mjs"],
|
||||
"require": "ts-node/register",
|
||||
"slow": 1000,
|
||||
"timeout": 30000,
|
||||
"exit": true
|
||||
}
|
@ -1 +1 @@
|
||||
v11.7.0
|
||||
v14.4.0
|
||||
|
2
.vscode/extensions.json
vendored
@ -2,10 +2,10 @@
|
||||
"recommendations": [
|
||||
"ducksoupdev.vue2",
|
||||
"editorconfig.editorconfig",
|
||||
"eg2.tslint",
|
||||
"eg2.vscode-npm-script",
|
||||
"hollowtree.vue-snippets",
|
||||
"ms-vscode.typescript-javascript-grammar",
|
||||
"ms-vscode.vscode-typescript-tslint-plugin",
|
||||
"octref.vetur",
|
||||
"sysoev.language-stylus"
|
||||
]
|
||||
|
1057
CHANGELOG.md
121
CONTRIBUTING.md
@ -1,30 +1,64 @@
|
||||
# Contribution guide
|
||||
:v: Thanks for your contributions :v:
|
||||
|
||||
## When you contribute...
|
||||
- 任意のIssueについて、せっかく実装してくださっても、実装方法や設計の認識が揃ってないとマージできない/しないことになりかねないので、初めにそのIssue上で着手することを宣言し、必要に応じて他メンバーと実装方法や設計のすり合わせを行ってください。宣言することは作業が他の人と被るのを防止する効果もあります。
|
||||
- 設計に迷った時はプロジェクトリーダーの判断を仰いでください。
|
||||
- 時間や優先度の都合上、提出してくださったPRが長期間放置されることもありますがご理解ください。
|
||||
- 温度感高めで見てほしいものは責付いてください。
|
||||
|
||||
## Issues
|
||||
Feature suggestions and bug reports are filed in https://github.com/syuilo/misskey/issues .
|
||||
Before creating a new issue, please search existing issues to avoid duplication.
|
||||
If you find the existing issue, please add your reaction or comment to the issue.
|
||||
|
||||
* Please search existing issues to avoid duplication. If your issue is already filed, please add your reaction or comment to the existing one.
|
||||
* If you have multiple independent issues, please submit them separately.
|
||||
|
||||
## Branches
|
||||
* **master** branch is tracking the latest release and used for production purposes.
|
||||
* **develop** branch is where we work for the next release.
|
||||
* **l10n_develop** branch is reserved for localization management.
|
||||
|
||||
## Localization (l10n)
|
||||
Please use [Crowdin](https://crowdin.com/project/misskey) for localization.
|
||||
Misskey uses [Crowdin](https://crowdin.com/project/misskey) for localization management.
|
||||
You can improve our translations with your Crowdin account.
|
||||
Your changes in Crowdin are automatically submitted as a PR (with the title "New Crowdin translations") to the repository.
|
||||
The owner [@syuilo](https://github.com/syuilo) merges the PR into the develop branch before the next release.
|
||||
|
||||
If your language is not listed in Crowdin, please open an issue.
|
||||
|
||||

|
||||
|
||||
## Internationalization (i18n)
|
||||
Misskey uses [vue-i18n](https://github.com/kazupon/vue-i18n).
|
||||
Misskey uses the Vue.js plugin [Vue I18n](https://github.com/kazupon/vue-i18n).
|
||||
Documentation of Vue I18n is available at http://kazupon.github.io/vue-i18n/introduction.html .
|
||||
|
||||
## Documentation
|
||||
* Documents for contributors are located in `/docs`.
|
||||
* Documents for instance admins are located in `/docs`.
|
||||
* Documents for end users are located in `src/docs`.
|
||||
* Documents for contributors are located in [`/docs`](/docs).
|
||||
* Documents for instance admins are located in [`/docs`](/docs).
|
||||
* Documents for end users are located in [`/src/docs`](/src/docs).
|
||||
|
||||
## Test
|
||||
* Test codes are located in `/test`.
|
||||
* Test codes are located in [`/test`](/test).
|
||||
|
||||
## Continuous integration
|
||||
Misskey uses CircleCI for automated test.
|
||||
Configuration files are located in `/.circleci`.
|
||||
Misskey uses CircleCI for executing automated tests.
|
||||
Configuration files are located in [`/.circleci`](/.circleci).
|
||||
|
||||
## Adding MisskeyRoom items
|
||||
* Use English for material, object and texture names.
|
||||
* Use meter for unit of length.
|
||||
* Your PR should include all source files (e.g. `.png`, `.blend`) of your models (for later editing).
|
||||
* Your PR must include the glTF binary files (`.glb`) of your models.
|
||||
* Add a locale key `room.furnitures.YOUR_ITEM` at [`/locales/ja-JP.yml`](/locales/ja-JP.yml).
|
||||
* Add a furniture definition at [`/src/client/app/common/scripts/room/furnitures.json5`](/src/client/app/common/scripts/room/furnitures.json5).
|
||||
|
||||
If you have no experience on 3D modeling, we suggest to use the free 3DCG software [Blender](https://www.blender.org/).
|
||||
You can find information on glTF 2.0 at [glTF 2.0 — Blender Manual]( https://docs.blender.org/manual/en/dev/addons/io_scene_gltf2.html).
|
||||
|
||||
## FAQ
|
||||
### How to resolve conflictions occurred at yarn.lock?
|
||||
|
||||
Just execute `yarn` to fix it.
|
||||
|
||||
## Glossary
|
||||
### AP
|
||||
@ -45,11 +79,15 @@ Convert な(na) to にゃ(nya)
|
||||
#### Denyaize
|
||||
Revert Nyaize
|
||||
|
||||
## Code style
|
||||
### セミコロンを省略しない
|
||||
ASI Hazardを避けるためでもある
|
||||
## TypeScript Coding Style
|
||||
### Do not omit semicolons
|
||||
This is to avoid Automatic Semicolon Insertion (ASI) hazard.
|
||||
|
||||
### 中括弧を省略しない
|
||||
Ref:
|
||||
* https://www.ecma-international.org/ecma-262/#sec-automatic-semicolon-insertion
|
||||
* https://github.com/tc39/ecma262/pull/1062
|
||||
|
||||
### Do not omit curly brackets
|
||||
Bad:
|
||||
``` ts
|
||||
if (foo)
|
||||
@ -67,18 +105,38 @@ if (foo) {
|
||||
}
|
||||
```
|
||||
|
||||
ただし**`if`が一行**の時だけは省略しても良い
|
||||
As a special case, you can omit the curly brackets if
|
||||
|
||||
* the body of the `if`-statement have only one statement and,
|
||||
* the `if`-statement does not have `else`-clause.
|
||||
|
||||
Good:
|
||||
``` ts
|
||||
if (foo) bar;
|
||||
```
|
||||
|
||||
### `export default`を使わない
|
||||
インテリセンスと相性が悪かったりするため
|
||||
Make sure that the condition and the body statement are on the same line.
|
||||
|
||||
参考:
|
||||
* https://gfx.hatenablog.com/entry/2017/11/24/135343
|
||||
### Do not use `==` when it can simply be replaced with `===`.
|
||||
🥰
|
||||
|
||||
### Use only boolean (or null related) values in the condition of an `if`-statement.
|
||||
Bad:
|
||||
``` ts
|
||||
if (foo.length)
|
||||
```
|
||||
|
||||
Good:
|
||||
``` ts
|
||||
if (foo.length > 0)
|
||||
```
|
||||
|
||||
### Do not use `export default`
|
||||
This is because the current language support does not work well with `export default`.
|
||||
|
||||
Ref:
|
||||
* https://basarat.gitbooks.io/typescript/docs/tips/defaultIsBad.html
|
||||
* https://gfx.hatenablog.com/entry/2017/11/24/135343
|
||||
|
||||
Bad:
|
||||
``` ts
|
||||
@ -128,6 +186,20 @@ query.andWhere(new Brackets(qb => {
|
||||
}));
|
||||
```
|
||||
|
||||
### Not `null` in TypeORM
|
||||
```ts
|
||||
const foo = await Foos.findOne({
|
||||
bar: Not(null)
|
||||
});
|
||||
```
|
||||
のようなクエリ(`bar`が`null`ではない)は期待通りに動作しない。
|
||||
次のようにします:
|
||||
```ts
|
||||
const foo = await Foos.findOne({
|
||||
bar: Not(IsNull())
|
||||
});
|
||||
```
|
||||
|
||||
### `null` in SQL
|
||||
SQLを発行する際、パラメータが`null`になる可能性のある場合はSQL文を出し分けなければならない
|
||||
例えば
|
||||
@ -197,3 +269,14 @@ const user = await Users.findOne(userId).then(ensure);
|
||||
// }
|
||||
// の糖衣構文のような扱いです
|
||||
```
|
||||
|
||||
### Migration作成方法
|
||||
```
|
||||
npx ts-node ./node_modules/typeorm/cli.js migration:generate -n 変更の名前
|
||||
```
|
||||
|
||||
作成されたスクリプトは不必要な変更を含むため除去してください。
|
||||
|
||||
## その他
|
||||
### HTMLのクラス名で follow という単語は使わない
|
||||
広告ブロッカーで誤ってブロックされる
|
||||
|
19
COPYING
Normal file
@ -0,0 +1,19 @@
|
||||
Unless otherwise stated this repository is
|
||||
Copyright © 2014-2020 syuilo and contributers
|
||||
|
||||
And is distributed under The GNU Affero General Public License Version 3, you should have received a copy of the license file as LICENSE.
|
||||
|
||||
|
||||
Misskey includes several third-party Open-Source softwares.
|
||||
|
||||
Unicode emoji regular expressions by Twitter, Inc.
|
||||
License: MIT
|
||||
https://github.com/twitter/twemoji-parser/blob/master/LICENSE.md
|
||||
|
||||
Emoji keywords for Unicode 11 and below by Mu-An Chiou
|
||||
License: MIT
|
||||
https://github.com/muan/emojilib/blob/master/LICENSE
|
||||
|
||||
RsaSignature2017 implementation by Transmute Industries Inc
|
||||
License: MIT
|
||||
https://github.com/transmute-industries/RsaSignature2017/blob/master/LICENSE
|
11
Dockerfile
@ -1,4 +1,4 @@
|
||||
FROM node:11-alpine AS base
|
||||
FROM node:14.4.0-alpine AS base
|
||||
|
||||
ENV NODE_ENV=production
|
||||
|
||||
@ -12,6 +12,7 @@ RUN apk add --no-cache \
|
||||
autoconf \
|
||||
automake \
|
||||
file \
|
||||
git \
|
||||
g++ \
|
||||
gcc \
|
||||
libc-dev \
|
||||
@ -22,10 +23,10 @@ RUN apk add --no-cache \
|
||||
python \
|
||||
zlib-dev
|
||||
|
||||
COPY package.json ./
|
||||
RUN npm i
|
||||
COPY package.json yarn.lock ./
|
||||
RUN yarn install
|
||||
COPY . ./
|
||||
RUN npm run build
|
||||
RUN yarn build
|
||||
|
||||
FROM base AS runner
|
||||
|
||||
@ -39,4 +40,4 @@ COPY --from=builder /misskey/node_modules ./node_modules
|
||||
COPY --from=builder /misskey/built ./built
|
||||
COPY . ./
|
||||
|
||||
CMD ["npm", "start"]
|
||||
CMD ["npm", "run", "migrateandstart"]
|
||||
|
153
README.md
@ -1,19 +1,20 @@
|
||||
<a href="https://xn--931a.moe/"><img src="https://github.com/syuilo/misskey/blob/develop/assets/ai-orig.png?raw=true" align="right" height="320px"/></a>
|
||||
|
||||
[](https://misskey.io/)
|
||||
[](https://join.misskey.page/)
|
||||
================================================================
|
||||
|
||||
[](https://circleci.com/gh/syuilo/misskey)
|
||||
[](https://david-dm.org/syuilo/misskey)
|
||||
[](http://makeapullrequest.com)
|
||||
[](https://github.com/humanetech-community/awesome-humane-tech)
|
||||
|
||||
**A forever evolving, sophisticated microblogging platform.**
|
||||
**A forever evolving, professional microblogging platform.**
|
||||
|
||||
<p align="justify">
|
||||
<a href="https://misskey.io">Misskey</a> is a decentralized microblogging platform born on Earth.
|
||||
<a href="https://join.misskey.page/">Misskey</a> is a decentralized microblogging platform born on Earth.
|
||||
Since it exists within the Fediverse (a universe where various social media platforms are organized),
|
||||
it is mutually linked with other social media platforms.
|
||||
Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet? <a href="https://joinmisskey.github.io/">Find an instance!</a>
|
||||
Why don't you take a short break from the hustle and bustle of the city, and dive into a new Internet? <a href="https://join.misskey.page/">Find an instance!</a>
|
||||
</p>
|
||||
|
||||
<a href="https://www.patreon.com/syuilo"><img src="https://c5.patreon.com/external/logo/become_a_patron_button@2x.png" alt="Become a Patron!" width="160" /></a>
|
||||
@ -89,6 +90,9 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
|
||||
<td><img src="https://avatars1.githubusercontent.com/u/30769358?s=460&v=4" alt="mei23" width="100"></td>
|
||||
<td><img src="https://avatars2.githubusercontent.com/u/20679825?s=460&v=4" alt="acid-chicken" width="100"></td>
|
||||
<td><img src="https://avatars2.githubusercontent.com/u/6533808?s=460&v=4" alt="rinsuki" width="100"></td>
|
||||
<td><img src="https://avatars0.githubusercontent.com/u/7973572?s=460&v=4" alt="tamaina" width="100"></td>
|
||||
<td><img src="https://avatars1.githubusercontent.com/u/7106976?s=460&v=4" alt="Xeltica" width="100"></td>
|
||||
<td><img src="https://avatars1.githubusercontent.com/u/17376330?s=460&v=4" alt="u1-liquid" width="100"></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td align="center"><a href="https://github.com/syuilo">@syuilo</a></td>
|
||||
@ -96,6 +100,9 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
|
||||
<td align="center"><a href="https://github.com/mei23">@mei23</a></td>
|
||||
<td align="center"><a href="https://github.com/acid-chicken">@acid-chicken</a></td>
|
||||
<td align="center"><a href="https://github.com/rinsuki">@rinsuki</a></td>
|
||||
<td align="center"><a href="https://github.com/tamaina">@tamaina</a></td>
|
||||
<td align="center"><a href="https://github.com/Xeltica">@Xeltica</a></td>
|
||||
<td align="center"><a href="https://github.com/u1-liquid">@u1-liquid</a></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
@ -103,84 +110,108 @@ Please see the [Contribution Guide](./CONTRIBUTING.md).
|
||||
----------------------------------------------------------------
|
||||
<!-- PATREON_START -->
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5888816/36da0f7c15954df0ab13f9abdf227f66/1.jpeg?token-time=2145916800&token-hash=at8QpJXJ8C0zINY_NmoMKv-MhXVoUK-YzTgaJPJzJYU%3D" alt="Hiroshi Seki" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12190916/fb7fa7983c14425f890369535b1506a4/3.png?token-time=2145916800&token-hash=oH_i7gJjNT7Ot6j9JiVwy7ZJIBqACVnzLqlz4YrDAZA%3D" alt="weepjp" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13099460/43cecdbaa63a40d79bf50a96b9910b9d/1.jpe?token-time=2145916800&token-hash=bqwLTk0Wo0hUJJ8J5y7ii05bLzz-_CDA7Bo0Mp4RFU0%3D" alt="ne_moni" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12913507/f7181eacafe8469a93033d85f5969c29/4.jpe?token-time=2145916800&token-hash=zEyJqVM7u9d8Ri-65fJYSJcWF1jBH1nJ5a3taRzrTmw%3D" alt="Melilot" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5670915/ee175f0bfb6347ffa4ea101a8c097bff/1.jpg?token-time=2145916800&token-hash=mPLM9CA-riFHx-myr3bLZJuH2xBRHA9se5VbHhLIOuA%3D" alt="osapon" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/16869916" alt="見当かなみ" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/20832595" alt="Roujo " width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/27956229" alt="Oliver Maximilian Seidel" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12190916/fb7fa7983c14425f890369535b1506a4/3.png?token-time=2145916800&token-hash=oH_i7gJjNT7Ot6j9JiVwy7ZJIBqACVnzLqlz4YrDAZA%3D" alt="weepjp " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19045173/cb91c0f345c24d4ebfd05f19906d5e26/1.png?token-time=2145916800&token-hash=o_zKBytJs_AxHwSYw_5R8eD0eSJe3RoTR3kR3Q0syN0%3D" alt="kiritan " width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/27648259" alt="みなしま " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/24430516/b1964ac5b9f746d2a12ff53dbc9aa40a/1.jpg?token-time=2145916800&token-hash=bmEiMGYpp3bS7hCCbymjGGsHBZM3AXuBOFO3Kro37PU%3D" alt="Eduardo Quiros" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/rane_hs">Hiroshi Seki</a></td>
|
||||
<td><a href="https://www.patreon.com/weepjp">weepjp</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=13099460">ne_moni</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=12913507">Melilot</a></td>
|
||||
<td><a href="https://www.patreon.com/osapon">osapon</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=16869916">見当かなみ</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=20832595">Roujo </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=27956229">Oliver Maximilian Seidel</a></td>
|
||||
<td><a href="https://www.patreon.com/weepjp">weepjp </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=19045173">kiritan </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=27648259">みなしま </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=24430516">Eduardo Quiros</a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12021162/963128bb8d14476dbd8407943db8f31a/1.png?token-time=2145916800&token-hash=FMV7cPKBD1TU2WTbl1jg6AcdKSvTb2BSFcDhgc-EO8w%3D" alt="gutfuckllc" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/11357794/923ce94cd8c44ba788ee931907881839/1.png?token-time=2145916800&token-hash=9nEQje_eMvUjq9a7L3uBqW-MQbS-rRMaMgd7UYVoFNM%3D" alt="mydarkstar" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/12718187" alt="Peter G." width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/18833336" alt="itiradi" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13039004/509d0c412eb14ae08d6a812a3054f7d6/1.jpe?token-time=2145916800&token-hash=UQRWf01TwHDV4Cls1K0YAOAjM29ssif7hLVq0ESQ0hs%3D" alt="nemu" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/17866454" alt="sikyosyounin" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/14215107/1cbe1912c26143919fa0faca16f12ce1/4.jpg?token-time=2145916800&token-hash=BslMqDjTjz8KYANLvxL87agHTugHa0dMPUzT-hwR6Vk%3D" alt="Nesakko" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/776209" alt="Demogrognard" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/3075183/c2ae575c604e420297f000ccc396e395/1.jpeg?token-time=2145916800&token-hash=O9qmPtpo6wWb0OuvnkEekhk_1WO2MTdytLr7ZgsAr80%3D" alt="Liaizon Wakest" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/557245" alt="mkatze " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/23915207/25428766ecd745478e600b3d7f871eb2/1.png?token-time=2145916800&token-hash=urCLLA4KjJZX92Y1CxcBP4d8bVTHGkiaPnQZp-Tqz68%3D" alt="kabo2468y " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/8249688/4aacf36b6b244ab1bc6653591b6640df/2.png?token-time=2145916800&token-hash=1ZEf2w6L34253cZXS_HlVevLEENWS9QqrnxGUAYblPo%3D" alt="AureoleArk " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5670915/ee175f0bfb6347ffa4ea101a8c097bff/1.jpg?token-time=2145916800&token-hash=mPLM9CA-riFHx-myr3bLZJuH2xBRHA9se5VbHhLIOuA%3D" alt="osapon " width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/16869916" alt="見当かなみ " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/36813045/29876ea679d443bcbba3c3f16edab8c2/2.jpeg?token-time=2145916800&token-hash=YCKWnIhrV9rjUCV9KqtJnEqjy_uGYF3WMXftjUdpi7o%3D" alt="Wataru Manji (manji0)" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/Nesakko">Nesakko</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=776209">Demogrognard</a></td>
|
||||
<td><a href="https://www.patreon.com/wakest">Liaizon Wakest</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=557245">mkatze </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=23915207">kabo2468y </a></td>
|
||||
<td><a href="https://www.patreon.com/AureoleArk">AureoleArk </a></td>
|
||||
<td><a href="https://www.patreon.com/osapon">osapon </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=16869916">見当かなみ </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=36813045">Wataru Manji (manji0)</a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18899730/6a22797f68254034a854d69ea2445fc8/1.png?token-time=2145916800&token-hash=b_uj57yxo5VzkSOUS7oXE_762dyOTB_oxzbO6lFNG3k%3D" alt="YuzuRyo61 " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5788159/af42076ab3354bb49803cfba65f94bee/1.jpg?token-time=2145916800&token-hash=iSaxp_Yr2-ZiU2YVi9rcpZZj9mj3UvNSMrZr4CU4qtA%3D" alt="mewl hayabusa" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/28779508/3cd4cb7f017f4ee0864341e3464d42f9/1.png?token-time=2145916800&token-hash=eGQtR15be44kgvh8fw2Jx8Db4Bv15YBp2ldxh0EKRxA%3D" alt="S Y" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/16542964" alt="Takumi Sugita" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/17866454" alt="sikyosyounin " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5881381/6235ca5d3fb04c8e95ef5b4ff2abcc18/3.png?token-time=2145916800&token-hash=KjfQL8nf3AIf6WqzLshBYAyX44piAqOAZiYXgZS_H6A%3D" alt="YUKIMOCHI" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/17463605" alt="Sampot" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19356899/496b4681d33b4520bd7688e0fd19c04d/2.jpeg?token-time=2145916800&token-hash=_sTj3dUBOhn9qwiJ7F19Qd-yWWfUqJC_0jG1h0agEqQ%3D" alt="sheeta.s" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13737140/1adf7835017d479280d90fe8d30aade2/1.png?token-time=2145916800&token-hash=0pdle8h5pDZrww0BDOjdz6zO-HudeGTh36a3qi1biVU%3D" alt="Satsuki Yanagi" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/38837364/9421361c54c645ac8f5fc442a40c32e9/1.png?token-time=2145916800&token-hash=TUZB48Nem3BeUPLBH6s3P6WyKBnQOy0xKaDSTBBUNzA%3D" alt="xianon" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/26340354/08834cf767b3449e93098ef73a434e2f/2.png?token-time=2145916800&token-hash=nyM8DnKRL8hR47HQ619mUzsqVRpkWZjgtgBU9RY15Uc%3D" alt="totokoro " width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/gutfuckllc">gutfuckllc</a></td>
|
||||
<td><a href="https://www.patreon.com/mydarkstar">mydarkstar</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=12718187">Peter G.</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=18833336">itiradi</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=13039004">nemu</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=17866454">sikyosyounin</a></td>
|
||||
<td><a href="https://www.patreon.com/Yuzulia">YuzuRyo61 </a></td>
|
||||
<td><a href="https://www.patreon.com/hs_sh_net">mewl hayabusa</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=28779508">S Y</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=16542964">Takumi Sugita</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=17866454">sikyosyounin </a></td>
|
||||
<td><a href="https://www.patreon.com/yukimochi">YUKIMOCHI</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=17463605">Sampot</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=19356899">sheeta.s</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=13737140">Satsuki Yanagi</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=38837364">xianon</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=26340354">totokoro </a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/17880724/311738c8a48f4a6b9443c2445a75adde/1.jpe?token-time=2145916800&token-hash=CPxGQhKIlEaa6WUcgbyHixyKEhakiw9RFdOhsIJBQ_o%3D" alt="takimura" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/17195955/be45e5e14c3e48b2bee0456c84e19df4/4.jpe?token-time=2145916800&token-hash=UslrPVM-8TXOe8AapuNiaFYjcIJgPNcU-fKpGbfGJNI%3D" alt="Damillora" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/16900731/83884b38afc74d4cbe83c30a13b10edd/1.png?token-time=2145916800&token-hash=R5Tog8RWg0rguRoCIoir3lThokrdPvs8Utfikhc0nhY%3D" alt="Atsuko Tominaga" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/19356899/496b4681d33b4520bd7688e0fd19c04d/2.jpeg?token-time=2145916800&token-hash=_sTj3dUBOhn9qwiJ7F19Qd-yWWfUqJC_0jG1h0agEqQ%3D" alt="sheeta.s " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5827393/59893c191dda408f9cabd0f20a3a5627/1.jpeg?token-time=2145916800&token-hash=i9N05vOph-eP1LTLb9_npATjYOpntL0ZsHNaZFSsPmE%3D" alt="motcha " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/20494440/540beaf2445f408ea6597bc61e077bb3/1.png?token-time=2145916800&token-hash=UJ0JQge64Bx9XmN_qYA1inMQhrWf4U91fqz7VAKJeSg%3D" alt="axtuki1 " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13737140/1adf7835017d479280d90fe8d30aade2/1.png?token-time=2145916800&token-hash=0pdle8h5pDZrww0BDOjdz6zO-HudeGTh36a3qi1biVU%3D" alt="Satsuki Yanagi" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/17880724/311738c8a48f4a6b9443c2445a75adde/1.jpg?token-time=2145916800&token-hash=nVAntpybQrznE0rg05keLrSE6ogPKJXB13rmrJng42c%3D" alt="takimura " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13100201/fc5be4fa90444f09a9c8a06f72385272/1.png?token-time=2145916800&token-hash=i8PjlgfOB2LPEdbtWyx8ZPsBKhGcNZqcw_FQmH71UGU%3D" alt="aqz tamaina" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/9109588/e3cffc48d20a4e43afe04123e696781d/3.png?token-time=2145916800&token-hash=T_VIUA0IFIbleZv4pIjiszZGnQonwn34sLCYFIhakBo%3D" alt="nafuchoco " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/16900731/619ab87cc08448439222631ebb26802f/1.gif?token-time=2145916800&token-hash=o27K7M02s1z-LkDUEO5Oa7cu-GviRXeOXxryi4o_6VU%3D" alt="Atsuko Tominaga" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4389829/9f709180ac714651a70f74a82f3ffdb9/3.png?token-time=2145916800&token-hash=FTm3WVom4dJ9NwWMU4OpCL_8Yc13WiwEbKrDPyTZTPs%3D" alt="natalie" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/13034746/c711c7f58e204ecfbc2fd646bc8a4eee/1.jpe?token-time=2145916800&token-hash=EWxXhVbZYH7KB4IDT3joc8TbIg8zPO40x1r5IDn3R7c%3D" alt="Hiratake" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18072312/98e894d960314fa7bc236a72a39488fe/1.jpe?token-time=2145916800&token-hash=qA8j97lIZNc-74AuZ0p4F3ms6sKPeKjtNt2vEuwpsyo%3D" alt="Hekovic" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/4503830/ccf2cc867ea64de0b524bb2e24b9a1cb/1.jpeg?token-time=2145916800&token-hash=L55UhJ0rcuNAH3w_ryeeGN4hC6taoOixyAhraEi0bzw%3D" alt="dansup" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/619786/32cf01444db24e578cd1982c197f6fc6/1.jpeg?token-time=2145916800&token-hash=d8jBQLMOHD87KtXs5C9fk1o58DMF73pQ-dYH3uZJPBE%3D" alt="Gargron" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5731881/4b6038e6cda34c04b83a5fcce3806a93/1.png?token-time=2145916800&token-hash=hBayGfOmQH3kRMdNnDe4oCZD_9fsJWSt29xXR3KRMVk%3D" alt="Nokotaro Takeda" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/26144593/9514b10a5c1b42a3af58621aee213d1d/1.png?token-time=2145916800&token-hash=v1PYRsjzu4c_mndN4Hvi_dlispZJsuGRCQeNS82pUSM%3D" alt="EBISUME" width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5923936/2a743cbfbff946c2af3f09026047c0da/2.png?token-time=2145916800&token-hash=h6yphW1qnM0n_NOWaf8qtszMRLXEwIxfk5beu4RxdT0%3D" alt="noellabo " width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/takimura">takimura</a></td>
|
||||
<td><a href="https://www.patreon.com/damillora">Damillora</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=19356899">sheeta.s </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=5827393">motcha </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=20494440">axtuki1 </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=13737140">Satsuki Yanagi</a></td>
|
||||
<td><a href="https://www.patreon.com/takimura">takimura </a></td>
|
||||
<td><a href="https://www.patreon.com/aqz">aqz tamaina</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=9109588">nafuchoco </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=16900731">Atsuko Tominaga</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=4389829">natalie</a></td>
|
||||
<td><a href="https://www.patreon.com/hiratake">Hiratake</a></td>
|
||||
<td><a href="https://www.patreon.com/hekovic">Hekovic</a></td>
|
||||
<td><a href="https://www.patreon.com/dansup">dansup</a></td>
|
||||
<td><a href="https://www.patreon.com/mastodon">Gargron</a></td>
|
||||
<td><a href="https://www.patreon.com/takenoko">Nokotaro Takeda</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=26144593">EBISUME</a></td>
|
||||
<td><a href="https://www.patreon.com/noellabo">noellabo </a></td>
|
||||
</tr></table>
|
||||
<table><tr>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/2384390/5681180e1efb46a8b28e0e8d4c8b9037/1.jpg?token-time=2145916800&token-hash=SJcMy-Q1BcS940-LFUVOMfR7-5SgrzsEQGhYb3yowFk%3D" alt="CG " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/18072312/98e894d960314fa7bc236a72a39488fe/1.jpg?token-time=2145916800&token-hash=7bkMqTwHPRsJPGAq42PYdDXDZBVGLqdgr1ZmBxX8GFQ%3D" alt="Hekovic " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/24641572/b4fd175424814f15b0ca9178d2d2d2e4/1.png?token-time=2145916800&token-hash=e2fyqdbuJbpCckHcwux7rbuW6OPkKdERcus0u2wIEWU%3D" alt="uroco @99" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/14661394" alt="Chandler " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/5731881/4b6038e6cda34c04b83a5fcce3806a93/1.png?token-time=2145916800&token-hash=hBayGfOmQH3kRMdNnDe4oCZD_9fsJWSt29xXR3KRMVk%3D" alt="Nokotaro Takeda" width="100"></td>
|
||||
<td><img src="https://c8.patreon.com/2/200/23932002" alt="nenohi " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/9481273/7fa89168e72943859c3d3c96e424ed31/4.jpeg?token-time=2145916800&token-hash=5w1QV1qXe-NdWbdFmp1H7O_-QBsSiV0haumk3XTHIEg%3D" alt="Efertone " width="100"></td>
|
||||
<td><img src="https://c10.patreonusercontent.com/3/eyJ3IjoyMDB9/patreon-media/p/user/12531784/93a45137841849329ba692da92ac7c60/1.jpeg?token-time=2145916800&token-hash=vGe7wXGqmA8Q7m-kDNb6fyGdwk-Dxk4F-ut8ZZu51RM%3D" alt="Takashi Shibuya" width="100"></td>
|
||||
</tr><tr>
|
||||
<td><a href="https://www.patreon.com/Corset">CG </a></td>
|
||||
<td><a href="https://www.patreon.com/hekovic">Hekovic </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=24641572">uroco @99</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=14661394">Chandler </a></td>
|
||||
<td><a href="https://www.patreon.com/takenoko">Nokotaro Takeda</a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=23932002">nenohi </a></td>
|
||||
<td><a href="https://www.patreon.com/efertone">Efertone </a></td>
|
||||
<td><a href="https://www.patreon.com/user?u=12531784">Takashi Shibuya</a></td>
|
||||
</tr></table>
|
||||
|
||||
**Last updated:** Wed, 24 Apr 2019 05:56:07 UTC
|
||||
**Last updated:** Sun, 26 Jul 2020 07:00:10 UTC
|
||||
<!-- PATREON_END -->
|
||||
|
||||
:four_leaf_clover: Copyright
|
||||
----------------------------------------------------------------
|
||||
> Copyright (c) 2014-2019 syuilo
|
||||
|
||||
Misskey is open-source software licensed under the [GNU AGPLv3](LICENSE).
|
||||
|
||||
[![][agpl-3.0-badge]][AGPL-3.0]
|
||||
|
||||
[agpl-3.0]: https://www.gnu.org/licenses/agpl-3.0.en.html
|
||||
[agpl-3.0-badge]: https://img.shields.io/badge/license-AGPL--3.0-444444.svg?style=for-the-badge
|
||||
|
||||
[backer-url]: #backers
|
||||
[backer-badge]: https://opencollective.com/misskey/backers/badge.svg
|
||||
[backers-image]: https://opencollective.com/misskey/backers.svg
|
||||
|
Before Width: | Height: | Size: 2.5 KiB After Width: | Height: | Size: 9.3 KiB |
Before Width: | Height: | Size: 6.8 KiB |
BIN
assets/favicon.png
Normal file
After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 3.9 KiB |
@ -1,53 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 135.46667 135.46667"
|
||||
height="512"
|
||||
width="512">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
style="fill:#2fa3bc;fill-opacity:1"
|
||||
transform="translate(-30.809093,-111.78601)"
|
||||
id="layer1">
|
||||
<g
|
||||
style="fill:#2fa3bc;fill-opacity:1"
|
||||
transform="matrix(1.096096,0,0,1.096096,-2.960633,-44.023579)"
|
||||
id="g4502">
|
||||
<g
|
||||
id="g5125"
|
||||
transform="translate(-1.3333333e-6,-1.3439941e-6)"
|
||||
style="fill:#2fa3bc;fill-opacity:1">
|
||||
<g
|
||||
aria-label="Mi"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#2fa3bc;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text4489"
|
||||
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)">
|
||||
<path
|
||||
id="path5210"
|
||||
transform="matrix(0.26412464,0,0,0.26412464,24.988264,136.28626)"
|
||||
d="m 62.474609,76.585938 c -7.47555,0 -14.595784,1.246427 -21.359375,3.738281 C 29.011968,84.595952 19.044417,92.249798 11.212891,103.28516 3.7373405,113.96451 0,125.88934 0,139.06055 v 233.8789 c 0,17.08697 6.0510264,31.85913 18.154297,44.31836 12.459246,12.10327 27.233346,18.15625 44.320312,18.15625 17.442947,0 32.215089,-6.05298 44.318361,-18.15625 12.45925,-12.45923 18.68945,-27.23139 18.68945,-44.31836 V 330.4082 c 0.13441,-9.21122 9.6225,-6.79429 14.41797,0 8.98111,15.55395 28.02226,28.91242 50.19141,28.83594 22.16915,-0.0764 40.58194,-11.03699 50.19336,-28.83594 3.63981,-4.29263 13.89902,-11.60675 14.95117,0 v 42.53125 c 0,17.08697 6.05102,31.85913 18.15429,44.31836 12.45923,12.10327 27.23335,18.15625 44.32032,18.15625 17.44294,0 32.21509,-6.05298 44.31836,-18.15625 12.45923,-12.45923 18.68945,-27.23139 18.68945,-44.31836 v -233.8789 c 0,-13.17121 -3.9146,-25.09604 -11.74609,-35.77539 -7.47557,-11.035362 -17.26588,-18.689208 -29.36914,-22.960941 -7.11956,-2.491854 -14.23982,-3.738281 -21.35938,-3.738281 -19.22286,0 -35.41865,7.476649 -48.58984,22.427734 l -63.40235,74.199218 c -1.42391,1.06791 -6.14093,9.23242 -16.16015,9.23242 -10.01923,0 -14.20109,-8.16451 -15.625,-9.23242 L 110.53125,99.013672 C 97.716024,84.062587 81.697447,76.585938 62.474609,76.585938 Z m 395.060551,0 c -14.9511,-10e-7 -27.76596,5.340179 -38.44532,16.019531 -10.32338,10.323381 -15.48437,22.961011 -15.48437,37.912111 0,14.9511 5.16099,27.76596 15.48437,38.44531 10.67936,10.32338 23.49422,15.48633 38.44532,15.48633 14.95109,0 27.76596,-5.16295 38.44531,-15.48633 C 506.65982,158.28354 512,145.46868 512,130.51758 512,115.56648 506.65982,102.92885 495.98047,92.605469 485.30112,81.926117 472.48625,76.585938 457.53516,76.585938 Z m 0.5332,118.541012 c -14.9511,0 -27.76596,5.34018 -38.44531,16.01953 -10.67936,10.67936 -16.01758,23.49422 -16.01758,38.44532 v 131.89062 c 0,14.9511 5.33822,27.76596 16.01758,38.44531 10.67935,10.32339 23.49421,15.48633 38.44531,15.48633 14.9511,0 27.58873,-5.16294 37.91211,-15.48633 C 506.65982,409.24838 512,396.43352 512,381.48242 V 249.5918 c 0,-14.9511 -5.34018,-27.76596 -16.01953,-38.44532 -10.32338,-10.67935 -22.96101,-16.01953 -37.91211,-16.01953 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#2fa3bc;fill-opacity:1;stroke-width:1.09609616px" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 4.1 KiB |
27
assets/icon.svg
Normal file
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
||||
<svg width="100%" height="100%" viewBox="0 0 256 256" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" xml:space="preserve" xmlns:serif="http://www.serif.com/" style="fill-rule:evenodd;clip-rule:evenodd;stroke-linejoin:round;stroke-miterlimit:2;">
|
||||
<g transform="matrix(0.413372,0,0,0.469741,64.564,40.5821)">
|
||||
<rect x="-156.189" y="-86.393" width="619.297" height="544.981" style="fill:rgb(27,30,31);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.898356,0,0,0.898356,-130.722,-120.968)">
|
||||
<g transform="matrix(0.5,0.866025,-0.866025,0.5,288,-166.277)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-96,166.277)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(0.5,-0.866025,0.866025,0.5,-96,498.831)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653Z" style="fill:white;"/>
|
||||
</g>
|
||||
<g transform="matrix(1,0,0,1,-95.9902,55.4086)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.5,-0.866025,0.866025,0.5,-2.64322e-11,554.256)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
|
||||
</g>
|
||||
<g transform="matrix(0.5,0.866025,-0.866025,0.5,192,-110.851)">
|
||||
<path d="M390.877,136.653C389.457,134.193 386.831,132.677 383.99,132.677C381.149,132.677 378.524,134.193 377.103,136.653C373.093,143.599 368.146,152.168 364.604,158.303C361.749,163.248 361.749,169.34 364.604,174.285C368.142,180.414 373.084,188.972 377.092,195.915C378.515,198.379 381.144,199.898 383.99,199.898C386.836,199.898 389.466,198.379 390.889,195.915C394.897,188.972 399.838,180.414 403.377,174.284C406.232,169.34 406.232,163.248 403.377,158.303C399.835,152.168 394.888,143.599 390.877,136.653ZM385.681,139.653C385.332,139.049 384.688,138.677 383.99,138.677C383.293,138.677 382.648,139.049 382.299,139.653C378.289,146.599 373.342,155.168 369.8,161.303C368.017,164.391 368.017,168.196 369.8,171.285C373.339,177.414 378.28,185.972 382.288,192.915C382.639,193.523 383.288,193.898 383.99,193.898C384.692,193.898 385.341,193.523 385.692,192.915C389.701,185.972 394.642,177.414 398.181,171.284C399.964,168.196 399.964,164.391 398.181,161.303L385.681,139.653Z" style="fill:rgb(150,208,74);"/>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.7 KiB |
Before Width: | Height: | Size: 1.5 KiB |
Before Width: | Height: | Size: 430 B |
Before Width: | Height: | Size: 2.0 KiB After Width: | Height: | Size: 7.2 KiB |
Before Width: | Height: | Size: 2.5 KiB |
Before Width: | Height: | Size: 671 B |
BIN
assets/icons/512.png
Normal file
After Width: | Height: | Size: 18 KiB |
Before Width: | Height: | Size: 1015 B |
@ -1,51 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
id="svg8"
|
||||
version="1.1"
|
||||
viewBox="0 0 135.46667 135.46667"
|
||||
height="512"
|
||||
width="512">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
transform="translate(-30.809093,-111.78601)"
|
||||
id="layer1">
|
||||
<g
|
||||
transform="matrix(1.096096,0,0,1.096096,-2.960633,-44.023579)"
|
||||
id="g4502">
|
||||
<g
|
||||
id="g5125"
|
||||
transform="translate(-1.3333333e-6,-1.3439941e-6)"
|
||||
style="fill:#000000;fill-opacity:1">
|
||||
<g
|
||||
aria-label="Mi"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-size:141.03404236px;line-height:476.69509888px;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';letter-spacing:0px;word-spacing:0px;fill:#000000;fill-opacity:1;stroke:none;stroke-width:0.28950602px;stroke-linecap:butt;stroke-linejoin:miter;stroke-opacity:1"
|
||||
id="text4489"
|
||||
transform="matrix(0.91391326,0,0,0.91391326,7.9719907,17.595761)">
|
||||
<path
|
||||
id="path5210"
|
||||
transform="matrix(0.26412464,0,0,0.26412464,24.988264,136.28626)"
|
||||
d="m 62.474609,76.585938 c -7.47555,0 -14.595784,1.246427 -21.359375,3.738281 C 29.011968,84.595952 19.044417,92.249798 11.212891,103.28516 3.7373405,113.96451 0,125.88934 0,139.06055 v 233.8789 c 0,17.08697 6.0510264,31.85913 18.154297,44.31836 12.459246,12.10327 27.233346,18.15625 44.320312,18.15625 17.442947,0 32.215089,-6.05298 44.318361,-18.15625 12.45925,-12.45923 18.68945,-27.23139 18.68945,-44.31836 V 330.4082 c 0.13441,-9.21122 9.6225,-6.79429 14.41797,0 8.98111,15.55395 28.02226,28.91242 50.19141,28.83594 22.16915,-0.0764 40.58194,-11.03699 50.19336,-28.83594 3.63981,-4.29263 13.89902,-11.60675 14.95117,0 v 42.53125 c 0,17.08697 6.05102,31.85913 18.15429,44.31836 12.45923,12.10327 27.23335,18.15625 44.32032,18.15625 17.44294,0 32.21509,-6.05298 44.31836,-18.15625 12.45923,-12.45923 18.68945,-27.23139 18.68945,-44.31836 v -233.8789 c 0,-13.17121 -3.9146,-25.09604 -11.74609,-35.77539 -7.47557,-11.035362 -17.26588,-18.689208 -29.36914,-22.960941 -7.11956,-2.491854 -14.23982,-3.738281 -21.35938,-3.738281 -19.22286,0 -35.41865,7.476649 -48.58984,22.427734 l -63.40235,74.199218 c -1.42391,1.06791 -6.14093,9.23242 -16.16015,9.23242 -10.01923,0 -14.20109,-8.16451 -15.625,-9.23242 L 110.53125,99.013672 C 97.716024,84.062587 81.697447,76.585938 62.474609,76.585938 Z m 395.060551,0 c -14.9511,-10e-7 -27.76596,5.340179 -38.44532,16.019531 -10.32338,10.323381 -15.48437,22.961011 -15.48437,37.912111 0,14.9511 5.16099,27.76596 15.48437,38.44531 10.67936,10.32338 23.49422,15.48633 38.44532,15.48633 14.95109,0 27.76596,-5.16295 38.44531,-15.48633 C 506.65982,158.28354 512,145.46868 512,130.51758 512,115.56648 506.65982,102.92885 495.98047,92.605469 485.30112,81.926117 472.48625,76.585938 457.53516,76.585938 Z m 0.5332,118.541012 c -14.9511,0 -27.76596,5.34018 -38.44531,16.01953 -10.67936,10.67936 -16.01758,23.49422 -16.01758,38.44532 v 131.89062 c 0,14.9511 5.33822,27.76596 16.01758,38.44531 10.67935,10.32339 23.49421,15.48633 38.44531,15.48633 14.9511,0 27.58873,-5.16294 37.91211,-15.48633 C 506.65982,409.24838 512,396.43352 512,381.48242 V 249.5918 c 0,-14.9511 -5.34018,-27.76596 -16.01953,-38.44532 -10.32338,-10.67935 -22.96101,-16.01953 -37.91211,-16.01953 z"
|
||||
style="font-style:normal;font-variant:normal;font-weight:normal;font-stretch:normal;font-family:'OTADESIGN Rounded';-inkscape-font-specification:'OTADESIGN Rounded';fill:#000000;fill-opacity:1;stroke-width:1.09609616px" />
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</g>
|
||||
</svg>
|
Before Width: | Height: | Size: 4.1 KiB |
Before Width: | Height: | Size: 148 KiB After Width: | Height: | Size: 148 KiB |
@ -13,6 +13,8 @@ services:
|
||||
networks:
|
||||
- internal_network
|
||||
- external_network
|
||||
volumes:
|
||||
- ./files:/misskey/files
|
||||
|
||||
redis:
|
||||
restart: always
|
||||
@ -24,7 +26,7 @@ services:
|
||||
|
||||
db:
|
||||
restart: always
|
||||
image: postgres:11.2-alpine
|
||||
image: postgres:12.2-alpine
|
||||
networks:
|
||||
- internal_network
|
||||
env_file:
|
||||
|
@ -4,3 +4,30 @@ Docs for users are located in `src/docs`.
|
||||
|
||||
これらのドキュメントはMisskeyの開発者またはMisskeyインスタンス運営者向けです。
|
||||
利用者向けのドキュメントは`src/docs`にあります。
|
||||
|
||||
这些文档是为 Misskey 的贡献者,或是 Misskey 实例的管理者准备的。
|
||||
为用户准备的文档放置在 `src/docs` 文件夹中。
|
||||
|
||||
## 日本語版
|
||||
|
||||
- [Misskey構築の手引き](./setup.ja.md)
|
||||
- [運営ガイド](./manage.ja.md)
|
||||
- [Dockerを使ったMisskey構築方法](./docker.ja.md)
|
||||
|
||||
## English Version
|
||||
|
||||
- [Misskey Setup and Installation Guide](./setup.en.md)
|
||||
- [Management guide](./manage.en.md)
|
||||
- [Docker Guide](./docker.en.md)
|
||||
|
||||
## Française Version
|
||||
|
||||
- [Guide d'installation et de configuration de Misskey](./setup.fr.md)
|
||||
- [Guide d'administration](./manage.fr.md)
|
||||
- [Guide Docker](./docker.fr.md)
|
||||
|
||||
## 简体中文版
|
||||
|
||||
- [Misskey 设置和安装指南](./setup.zh.md)
|
||||
- [运营指南](./manage.zh.md)
|
||||
- [Docker 部署指南](./docker.zh.md)
|
||||
|
@ -3,7 +3,8 @@ Docker Guide
|
||||
|
||||
This guide describes how to install and setup Misskey with Docker.
|
||||
|
||||
[Japanese version also available - 日本語版もあります](./docker.ja.md)
|
||||
- [Japanese version also available - 日本語版もあります](./docker.ja.md)
|
||||
- [Simplified Chinese version also available - 简体中文版同样可用](./docker.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
@ -68,7 +69,7 @@ Build misskey with the following:
|
||||
*5.* Init DB
|
||||
----------------------------------------------------------------
|
||||
``` shell
|
||||
docker-compose run --rm web npm run init
|
||||
docker-compose run --rm web yarn run init
|
||||
```
|
||||
|
||||
*6.* That is it.
|
||||
@ -88,7 +89,7 @@ Just `docker-compose up -d`. GLHF!
|
||||
7. `docker-compose stop && docker-compose up -d`
|
||||
|
||||
### How to execute [cli commands](manage.en.md):
|
||||
`docker-compose run --rm web node cli/mark-admin @example`
|
||||
`docker-compose run --rm web node built/tools/mark-admin @example`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
@ -3,8 +3,9 @@ Guide Docker
|
||||
|
||||
Ce guide explique comment installer et configurer Misskey avec Docker.
|
||||
|
||||
[Version japonaise également disponible - Japanese version also available - 日本語版もあります](./docker.ja.md)
|
||||
[Version anglaise également disponible - English version also available - 英語版もあります](./docker.en.md)
|
||||
- [Version japonaise également disponible - Japanese version also available - 日本語版もあります](./docker.ja.md)
|
||||
- [Version anglaise également disponible - English version also available - 英語版もあります](./docker.en.md)
|
||||
- [Version Chinois simplifié également disponible - Simplified Chinese version also available - 简体中文版同样可用](./docker.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
@ -55,7 +56,7 @@ Utilisez la commande `docker-compose up -d`. GLHF!
|
||||
7. `docker-compose stop && docker-compose up -d`
|
||||
|
||||
### Comment exécuter des [commandes](manage.fr.md)
|
||||
`docker-compose run --rm web node cli/mark-admin @example`
|
||||
`docker-compose run --rm web node built/tools/mark-admin @example`
|
||||
|
||||
### Configuration d'ElasticSearch (pour la fonction de recherche)
|
||||
*1.* Préparation de l'environnement
|
||||
|
@ -3,7 +3,8 @@ Dockerを使ったMisskey構築方法
|
||||
|
||||
このガイドはDockerを使ったMisskeyセットアップ方法について解説します。
|
||||
|
||||
[英語版もあります - English version also available](./docker.en.md)
|
||||
- [英語版もあります - English version also available](./docker.en.md)
|
||||
- [简体中文版同样可用 - Simplified Chinese version also available](./docker.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
@ -68,7 +69,7 @@ cp docker_example.env docker.env
|
||||
*5.* データベースを初期化
|
||||
----------------------------------------------------------------
|
||||
``` shell
|
||||
docker-compose run --rm web npm run init
|
||||
docker-compose run --rm web yarn run init
|
||||
```
|
||||
|
||||
*6.* 以上です!
|
||||
@ -89,7 +90,7 @@ docker-compose run --rm web npm run init
|
||||
|
||||
### cliコマンドを実行する方法:
|
||||
|
||||
`docker-compose run --rm web node cli/mark-admin @example`
|
||||
`docker-compose run --rm web node built/tools/mark-admin @example`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
96
docs/docker.zh.md
Normal file
@ -0,0 +1,96 @@
|
||||
Docker 部署指南
|
||||
================================================================
|
||||
|
||||
这份指南描述了如何使用Docker安装并设置 Misskey 。
|
||||
|
||||
- [日本語版もあります - Japanese version also available](./docker.ja.md)
|
||||
- [英語版もあります - English version also available](./docker.en.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
*1.* 下载 Misskey
|
||||
----------------------------------------------------------------
|
||||
1. 克隆 Misskey 项目的 master 分支。
|
||||
|
||||
`git clone -b master git://github.com/syuilo/misskey.git`
|
||||
|
||||
2. 进入 misskey 文件夹。
|
||||
|
||||
`cd misskey`
|
||||
|
||||
3. 检查 [最新发布版](https://github.com/syuilo/misskey/releases/latest) 标签。
|
||||
|
||||
`git checkout master`
|
||||
|
||||
*2.* 配置 Misskey
|
||||
----------------------------------------------------------------
|
||||
|
||||
可以按照如下方式创建配置文件:
|
||||
|
||||
``` bash
|
||||
cd .config
|
||||
cp example.yml default.yml
|
||||
cp docker_example.env docker.env
|
||||
```
|
||||
|
||||
### `default.yml`
|
||||
|
||||
这个文件的编辑工作基本与非 Docker 环境的版本相同。
|
||||
但请注意, Postgresql、 Redis 和 Elasticsearch 的 **主机名(hostname)** 配置不应该是 `localhost` ,它们被设置在 `docker-compose.yml` 文件中。
|
||||
以下是默认的主机名:
|
||||
|
||||
| 服务 | 主机名 |
|
||||
|---------------|----------|
|
||||
| Postgresql | `db` |
|
||||
| Redis | `redis` |
|
||||
| Elasticsearch | `es` |
|
||||
|
||||
### `docker.env`
|
||||
|
||||
在这个文件中配置 Postgresql 。
|
||||
至少需要如下这些配置:
|
||||
|
||||
| 名称 | 描述 |
|
||||
|---------------------|---------------|
|
||||
| `POSTGRES_PASSWORD` | 数据库密码 |
|
||||
| `POSTGRES_USER` | 数据库用户名 |
|
||||
| `POSTGRES_DB` | 数据库名 |
|
||||
|
||||
*3.* 配置 Docker
|
||||
----------------------------------------------------------------
|
||||
编辑 `docker-compose.yml` 文件。
|
||||
|
||||
*4.* 构建 Misskey
|
||||
----------------------------------------------------------------
|
||||
使用如下的方式构建Misskey:
|
||||
|
||||
`docker-compose build`
|
||||
|
||||
*5.* 初始化数据库
|
||||
----------------------------------------------------------------
|
||||
``` bash
|
||||
docker-compose run --rm web yarn run init
|
||||
```
|
||||
|
||||
*6.* 完成了!
|
||||
----------------------------------------------------------------
|
||||
干得不错!现在您拥有了一个可以运行Misskey的环境啦。
|
||||
|
||||
### 正常启动
|
||||
只需要 `docker-compose up -d` 即可。玩得愉快!
|
||||
|
||||
### 如何将您的 Misskey 服务器升级至最新版本
|
||||
1. `git stash`
|
||||
2. `git checkout master`
|
||||
3. `git pull`
|
||||
4. `git stash pop`
|
||||
5. `docker-compose build`
|
||||
6. 检查 [更新日志](../CHANGELOG.md) 以获取升级迁移信息。
|
||||
7. `docker-compose stop && docker-compose up -d`
|
||||
|
||||
### 如何执行 [控制台指令](manage.zh.md):
|
||||
`docker-compose run --rm web node built/tools/mark-admin @example`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
如果您有任何疑问或是困惑,欢迎与我们联系!
|
@ -1,7 +1,7 @@
|
||||
# Sample nginx configuration for Misskey
|
||||
#
|
||||
# 1. Replace example.tld to your domain
|
||||
# 2. Copy to /etc/nginx/sites-available/ and then symlink from /etc/nginx/sites-ebabled/
|
||||
# 2. Copy to /etc/nginx/sites-available/ and then symlink from /etc/nginx/sites-enabled/
|
||||
# or copy to /etc/nginx/conf.d/
|
||||
|
||||
# For WebSocket
|
||||
@ -25,10 +25,9 @@ server {
|
||||
}
|
||||
|
||||
server {
|
||||
listen 443 http2;
|
||||
listen [::]:443 http2;
|
||||
listen 443 ssl http2;
|
||||
listen [::]:443 ssl http2;
|
||||
server_name example.tld;
|
||||
ssl on;
|
||||
ssl_session_cache shared:ssl_session_cache:10m;
|
||||
|
||||
# To use Let's Encrypt certificate
|
||||
@ -40,8 +39,8 @@ server {
|
||||
#ssl_certificate_key /etc/ssl/private/ssl-cert-snakeoil.key;
|
||||
|
||||
# SSL protocol settings
|
||||
ssl_protocols TLSv1 TLSv1.2;
|
||||
ssl_ciphers ECDHE-RSA-AES256-GCM-SHA384:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA;
|
||||
ssl_protocols TLSv1.2;
|
||||
ssl_ciphers ECDHE-ECDSA-AES256-GCM-SHA384:ECDHE-RSA-AES256-GCM-SHA384:ECDHE-ECDSA-AES128-GCM-SHA256:ECDHE-RSA-AES128-GCM-SHA256:ECDHE-ECDSA-AES256-SHA384:ECDHE-RSA-AES256-SHA384:ECDHE-RSA-AES128-SHA256:ECDHE-RSA-AES256-SHA:ECDHE-RSA-AES128-SHA:AES128-SHA;
|
||||
ssl_prefer_server_ciphers on;
|
||||
|
||||
# Change to your upload limit
|
||||
|
@ -5,14 +5,10 @@ coming soon
|
||||
|
||||
## Mark as 'admin' user
|
||||
``` shell
|
||||
node cli/mark-admin (User-ID or Username)
|
||||
node built/tools/mark-admin (Username)
|
||||
```
|
||||
|
||||
e.g.
|
||||
``` shell
|
||||
# By id
|
||||
node cli/mark-admin 57d01a501fdf2d07be417afe
|
||||
|
||||
# By username
|
||||
node cli/suspend @syuilo
|
||||
node built/tools/mark-admin @syuilo
|
||||
```
|
||||
|
@ -5,14 +5,10 @@ coming soon
|
||||
|
||||
## Marquer un utilisateur en tant que 'admin'
|
||||
``` shell
|
||||
node cli/mark-admin (ID utilisateur ou nom d'utilisateur)
|
||||
node built/tools/mark-admin (nom d'utilisateur)
|
||||
```
|
||||
|
||||
Exemple :
|
||||
``` shell
|
||||
# Par id
|
||||
node cli/mark-admin 57d01a501fdf2d07be417afe
|
||||
|
||||
# Par nom d'utilisateur
|
||||
node cli/suspend @syuilo
|
||||
node built/tools/mark-admin @syuilo
|
||||
```
|
||||
|
@ -5,14 +5,10 @@ coming soon
|
||||
|
||||
## 管理者ユーザーを設定する
|
||||
``` shell
|
||||
node cli/mark-admin (ユーザーID または ユーザー名)
|
||||
node built/tools/mark-admin (ユーザー名)
|
||||
```
|
||||
|
||||
例:
|
||||
``` shell
|
||||
# ユーザーID
|
||||
node cli/mark-admin 57d01a501fdf2d07be417afe
|
||||
|
||||
# ユーザー名
|
||||
node cli/mark-admin @syuilo
|
||||
node built/tools/mark-admin @syuilo
|
||||
```
|
||||
|
14
docs/manage.zh.md
Normal file
@ -0,0 +1,14 @@
|
||||
# 运营指南
|
||||
|
||||
## 检查任务队列的状态
|
||||
即将到来……
|
||||
|
||||
## 设置用户为管理员
|
||||
``` shell
|
||||
node built/tools/mark-admin (用户名)
|
||||
```
|
||||
|
||||
样例
|
||||
``` shell
|
||||
node built/tools/mark-admin @syuilo
|
||||
```
|
@ -4,7 +4,8 @@ Misskey Setup and Installation Guide
|
||||
We thank you for your interest in setting up your Misskey server!
|
||||
This guide describes how to install and setup Misskey.
|
||||
|
||||
[Japanese version also available - 日本語版もあります](./setup.ja.md)
|
||||
- [Japanese version also available - 日本語版もあります](./setup.ja.md)
|
||||
- [Simplified Chinese version also available - 简体中文版同样可用](./setup.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
@ -22,11 +23,12 @@ adduser --disabled-password --disabled-login misskey
|
||||
Please install and setup these softwares:
|
||||
|
||||
#### Dependencies :package:
|
||||
* **[Node.js](https://nodejs.org/en/)** >= 11.7.0
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** >= 10
|
||||
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
|
||||
* **[Redis](https://redis.io/)**
|
||||
|
||||
##### Optional
|
||||
* [Yarn](https://yarnpkg.com/) *Optional but recommended for security reason. If you won't install it, use `npx yarn` instead of `yarn`.*
|
||||
* [Elasticsearch](https://www.elastic.co/) - required to enable the search feature
|
||||
* [FFmpeg](https://www.ffmpeg.org/)
|
||||
|
||||
@ -50,7 +52,7 @@ Please install and setup these softwares:
|
||||
|
||||
5. Install misskey dependencies.
|
||||
|
||||
`npm install`
|
||||
`yarn`
|
||||
|
||||
*4.* Configure Misskey
|
||||
----------------------------------------------------------------
|
||||
@ -65,21 +67,20 @@ Please install and setup these softwares:
|
||||
|
||||
Build misskey with the following:
|
||||
|
||||
`NODE_ENV=production npm run build`
|
||||
`NODE_ENV=production yarn build`
|
||||
|
||||
If you're on Debian, you will need to install the `build-essential`, `python` package.
|
||||
|
||||
If you're still encountering errors about some modules, use node-gyp:
|
||||
|
||||
1. `npm install -g node-gyp`
|
||||
2. `node-gyp configure`
|
||||
3. `node-gyp build`
|
||||
4. `NODE_ENV=production npm run build`
|
||||
1. `npx node-gyp configure`
|
||||
2. `npx node-gyp build`
|
||||
3. `NODE_ENV=production yarn build`
|
||||
|
||||
*6.* Init DB
|
||||
----------------------------------------------------------------
|
||||
``` shell
|
||||
npm run init
|
||||
yarn run init
|
||||
```
|
||||
|
||||
*7.* That is it.
|
||||
@ -130,12 +131,16 @@ You can check if the service is running with `systemctl status misskey`.
|
||||
### How to update your Misskey server to the latest version
|
||||
1. `git checkout master`
|
||||
2. `git pull`
|
||||
3. `npm install`
|
||||
4. `NODE_ENV=production npm run build`
|
||||
5. Check [ChangeLog](../CHANGELOG.md) for migration information
|
||||
3. `yarn install`
|
||||
4. `NODE_ENV=production yarn build`
|
||||
5. `yarn migrate`
|
||||
6. Restart your Misskey process to apply changes
|
||||
7. Enjoy
|
||||
|
||||
If you encounter any problems with updating, please try the following:
|
||||
1. `yarn clean` or `yarn cleanall`
|
||||
2. Retry update (Don't forget `yarn install`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
If you have any questions or troubles, feel free to contact us!
|
||||
|
@ -4,7 +4,9 @@ Guide d'installation et de configuration de Misskey
|
||||
Nous vous remerçions de l'intrêt que vous manifestez pour l'installation de votre propre instance Misskey !
|
||||
Ce guide décrit les étapes à suivre afin d'installer et de configurer une instance Misskey.
|
||||
|
||||
[La version en japonnais est également disponible sur - 日本語版もあります](./setup.ja.md)
|
||||
- [La version en japonnais est également disponible sur - 日本語版もあります](./setup.ja.md)
|
||||
- [Version anglaise également disponible - English version also available - 英語版もあります](./setup.en.md)
|
||||
- [Version Chinois simplifié également disponible - Simplified Chinese version also available - 简体中文版同样可用](./setup.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
@ -22,12 +24,13 @@ adduser --disabled-password --disabled-login misskey
|
||||
Installez les paquets suivants :
|
||||
|
||||
#### Dépendences :package:
|
||||
* **[Node.js](https://nodejs.org/en/)** >= 11.7.0
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** >= 10
|
||||
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
|
||||
* **[Redis](https://redis.io/)**
|
||||
|
||||
##### Optionnels
|
||||
* [Elasticsearch](https://www.elastic.co/) - requis pour pouvoir activer la fonctionnalité de recherche
|
||||
* [Yarn](https://yarnpkg.com/) - *recommander pour des raisons de sécurité. Si vous ne l'installez pas, utilisez `npx yarn` au lieu de` yarn`.*
|
||||
* [Elasticsearch](https://www.elastic.co/) - *requis pour pouvoir activer la fonctionnalité de recherche.*
|
||||
* [FFmpeg](https://www.ffmpeg.org/)
|
||||
|
||||
*3.* Installation de Misskey
|
||||
@ -50,7 +53,7 @@ Installez les paquets suivants :
|
||||
|
||||
5. Installez les dépendances de misskey.
|
||||
|
||||
`npm install`
|
||||
`yarn install`
|
||||
|
||||
*4.* Création du fichier de configuration
|
||||
----------------------------------------------------------------
|
||||
@ -65,23 +68,22 @@ Installez les paquets suivants :
|
||||
|
||||
Construisez Misskey comme ceci :
|
||||
|
||||
`NODE_ENV=production npm run build`
|
||||
`NODE_ENV=production yarn build`
|
||||
|
||||
Si vous êtes sous Debian, vous serez amené à installer les paquets `build-essential` et `python`.
|
||||
|
||||
Si vous rencontrez des erreurs concernant certains modules, utilisez node-gyp:
|
||||
|
||||
1. `npm install -g node-gyp`
|
||||
2. `node-gyp configure`
|
||||
3. `node-gyp build`
|
||||
4. `NODE_ENV=production npm run build`
|
||||
1. `npx node-gyp configure`
|
||||
2. `npx node-gyp build`
|
||||
3. `NODE_ENV=production yarn build`
|
||||
|
||||
*6.* C'est tout.
|
||||
----------------------------------------------------------------
|
||||
Excellent ! Maintenant, vous avez un environnement prêt pour lancer Misskey
|
||||
|
||||
### Lancement conventionnel
|
||||
Lancez tout simplement `NODE_ENV=production npm start`. Bonne chance et amusez-vous bien !
|
||||
Lancez tout simplement `NODE_ENV=production yarn start`. Bonne chance et amusez-vous bien !
|
||||
|
||||
### Démarrage avec systemd
|
||||
|
||||
@ -124,9 +126,9 @@ Vous pouvez vérifier si le service a démarré en utilisant la commande `system
|
||||
### Méthode de mise à jour vers la plus récente version de Misskey
|
||||
1. `git checkout master`
|
||||
2. `git pull`
|
||||
3. `npm install`
|
||||
4. `NODE_ENV=production npm run build`
|
||||
5. Consultez [ChangeLog](../CHANGELOG.md) pour les information de migration.
|
||||
3. `yarn install`
|
||||
4. `NODE_ENV=production yarn build`
|
||||
5. `yarn migrate`
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
@ -4,7 +4,8 @@ Misskey構築の手引き
|
||||
Misskeyサーバーの構築にご関心をお寄せいただきありがとうございます!
|
||||
このガイドではMisskeyのインストール・セットアップ方法について解説します。
|
||||
|
||||
[英語版もあります - English version also available](./setup.en.md)
|
||||
- [英語版もあります - English version also available](./setup.en.md)
|
||||
- [简体中文版同样可用 - Simplified Chinese version also available](./setup.zh.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
@ -22,11 +23,13 @@ adduser --disabled-password --disabled-login misskey
|
||||
これらのソフトウェアをインストール・設定してください:
|
||||
|
||||
#### 依存関係 :package:
|
||||
* **[Node.js](https://nodejs.org/en/)** (11.7.0以上)
|
||||
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** (10以上)
|
||||
* **[Redis](https://redis.io/)**
|
||||
|
||||
##### オプション
|
||||
* [Yarn](https://yarnpkg.com/)
|
||||
* セキュリティの観点から推奨されます。 yarn をインストールしない方針の場合は、文章中の `yarn` を適宜 `npx yarn` と読み替えてください。
|
||||
* [Elasticsearch](https://www.elastic.co/)
|
||||
* 検索機能を有効にするためにはインストールが必要です。
|
||||
* [FFmpeg](https://www.ffmpeg.org/)
|
||||
@ -51,7 +54,7 @@ adduser --disabled-password --disabled-login misskey
|
||||
|
||||
5. Misskeyの依存パッケージをインストール
|
||||
|
||||
`npm install`
|
||||
`yarn install`
|
||||
|
||||
*4.* 設定ファイルを作成する
|
||||
----------------------------------------------------------------
|
||||
@ -66,20 +69,19 @@ adduser --disabled-password --disabled-login misskey
|
||||
|
||||
次のコマンドでMisskeyをビルドしてください:
|
||||
|
||||
`NODE_ENV=production npm run build`
|
||||
`NODE_ENV=production yarn build`
|
||||
|
||||
Debianをお使いであれば、`build-essential`パッケージをインストールする必要があります。
|
||||
|
||||
何らかのモジュールでエラーが発生する場合はnode-gypを使ってください:
|
||||
1. `npm install -g node-gyp`
|
||||
2. `node-gyp configure`
|
||||
3. `node-gyp build`
|
||||
4. `NODE_ENV=production npm run build`
|
||||
1. `npx node-gyp configure`
|
||||
2. `npx node-gyp build`
|
||||
3. `NODE_ENV=production yarn build`
|
||||
|
||||
*6.* データベースを初期化
|
||||
----------------------------------------------------------------
|
||||
``` shell
|
||||
npm run init
|
||||
yarn run init
|
||||
```
|
||||
|
||||
*7.* 以上です!
|
||||
@ -87,7 +89,7 @@ npm run init
|
||||
お疲れ様でした。これでMisskeyを動かす準備は整いました。
|
||||
|
||||
### 通常起動
|
||||
`NODE_ENV=production npm start`するだけです。GLHF!
|
||||
`NODE_ENV=production yarn start`するだけです。GLHF!
|
||||
|
||||
### systemdを用いた起動
|
||||
1. systemdサービスのファイルを作成
|
||||
@ -120,7 +122,7 @@ npm run init
|
||||
|
||||
3. systemdを再読み込みしmisskeyサービスを有効化
|
||||
|
||||
`systemctl daemon-reload ; systemctl enable misskey`
|
||||
`systemctl daemon-reload; systemctl enable misskey`
|
||||
|
||||
4. misskeyサービスの起動
|
||||
|
||||
@ -131,11 +133,11 @@ npm run init
|
||||
### Misskeyを最新バージョンにアップデートする方法:
|
||||
1. `git checkout master`
|
||||
2. `git pull`
|
||||
3. `npm install`
|
||||
4. `NODE_ENV=production npm run build`
|
||||
5. [ChangeLog](../CHANGELOG.md)でマイグレーション情報を確認する
|
||||
3. `yarn install`
|
||||
4. `NODE_ENV=production yarn build`
|
||||
5. `yarn migrate`
|
||||
|
||||
なにか問題が発生した場合は、`npm run clean`または`npm run cleanall`すると直る場合があります。
|
||||
なにか問題が発生した場合は、`yarn clean`または`yarn cleanall`すると直る場合があります。
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
|
146
docs/setup.zh.md
Normal file
@ -0,0 +1,146 @@
|
||||
Misskey 设置和安装指南
|
||||
================================================================
|
||||
|
||||
非常感谢您对构建 Misskey 服务器的关注!
|
||||
这份指南描述了 Misskey 的安装与设置流程。
|
||||
|
||||
- [日本語版もあります - Japanese version also available](./setup.ja.md)
|
||||
- [英語版もあります - English version also available](./setup.en.md)
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
*1.* 创建 Misskey 用户
|
||||
----------------------------------------------------------------
|
||||
直接使用 root 用户来运行 misskey 也许并不是一个好主意,因此我们有必要创建一个专用的用户。
|
||||
以 Debian 为例:
|
||||
|
||||
``` bash
|
||||
adduser --disabled-password --disabled-login misskey
|
||||
```
|
||||
|
||||
*2.* 安装依赖
|
||||
----------------------------------------------------------------
|
||||
请安装并设置如下这些软件:
|
||||
|
||||
#### Dependencies :package:
|
||||
* **[Node.js](https://nodejs.org/en/)** (12.x, 14.x)
|
||||
* **[PostgreSQL](https://www.postgresql.org/)** (>= 10)
|
||||
* **[Redis](https://redis.io/)**
|
||||
|
||||
##### Optional
|
||||
* [Yarn](https://yarnpkg.com/) *可选,但出于安全因素考虑还是推荐安装。如果您没有安装, 您需要使用 `npx yarn` 来代替 `yarn`.*
|
||||
* [Elasticsearch](https://www.elastic.co/) - 为了启用搜索功能,这个搜索引擎是有必要的。
|
||||
* [FFmpeg](https://www.ffmpeg.org/)
|
||||
|
||||
*3.* 安装 Misskey
|
||||
----------------------------------------------------------------
|
||||
1. 连接至 misskey 用户.
|
||||
|
||||
`su - misskey`
|
||||
|
||||
2. 克隆 Misskey 项目的 master 分支。
|
||||
|
||||
`git clone -b master git://github.com/syuilo/misskey.git`
|
||||
|
||||
3. 进入 misskey 文件夹。
|
||||
|
||||
`cd misskey`
|
||||
|
||||
4. 检查 [最新发布版](https://github.com/syuilo/misskey/releases/latest) 标签。
|
||||
|
||||
`git checkout master`
|
||||
|
||||
5. 安装 Misskey 的依赖。
|
||||
|
||||
`yarn`
|
||||
|
||||
*4.* 配置 Misskey
|
||||
----------------------------------------------------------------
|
||||
1. 复制 `.config/example.yml` 并重命名为 `default.yml`。
|
||||
|
||||
`cp .config/example.yml .config/default.yml`
|
||||
|
||||
2. 编辑 `default.yml`
|
||||
|
||||
*5.* 构建 Misskey
|
||||
----------------------------------------------------------------
|
||||
|
||||
使用如下的指令构建 Misskey :
|
||||
|
||||
`NODE_ENV=production yarn build`
|
||||
|
||||
如果您使用的是 Debian , 您需要安装 `build-essential`, `python` 环境包。
|
||||
|
||||
如果您仍然遇到有关某些模块的错误,您可以使用 node-gyp:
|
||||
|
||||
1. `npx node-gyp configure`
|
||||
2. `npx node-gyp build`
|
||||
3. `NODE_ENV=production yarn build`
|
||||
|
||||
*6.* 初始化数据库
|
||||
----------------------------------------------------------------
|
||||
``` bash
|
||||
yarn run init
|
||||
```
|
||||
|
||||
*7.* 完成了!
|
||||
----------------------------------------------------------------
|
||||
干得不错!现在您拥有了一个可以运行Misskey的环境啦。
|
||||
|
||||
### 正常启动
|
||||
只需要 `NODE_ENV=production npm start` 即可。玩得愉快!
|
||||
|
||||
### 使用 systemd 来启动
|
||||
|
||||
1. 在此处创建一个 systemd 服务:
|
||||
|
||||
`/etc/systemd/system/misskey.service`
|
||||
|
||||
2. 编辑它,粘贴如下内容并保存:
|
||||
|
||||
```
|
||||
[Unit]
|
||||
Description=Misskey daemon
|
||||
|
||||
[Service]
|
||||
Type=simple
|
||||
User=misskey
|
||||
ExecStart=/usr/bin/npm start
|
||||
WorkingDirectory=/home/misskey/misskey
|
||||
Environment="NODE_ENV=production"
|
||||
TimeoutSec=60
|
||||
StandardOutput=syslog
|
||||
StandardError=syslog
|
||||
SyslogIdentifier=misskey
|
||||
Restart=always
|
||||
|
||||
[Install]
|
||||
WantedBy=multi-user.target
|
||||
```
|
||||
|
||||
3. 重启 systemd 并设置 misskey 服务自动启动:
|
||||
|
||||
`systemctl daemon-reload ; systemctl enable misskey`
|
||||
|
||||
4. 启动 misskey 服务:
|
||||
|
||||
`systemctl start misskey`
|
||||
|
||||
您可以使用 `systemctl status misskey` 来检查服务是否正在运行。
|
||||
|
||||
### 如何将您的 Misskey 服务器升级至最新版本
|
||||
1. `git checkout master`
|
||||
2. `git pull`
|
||||
3. `yarn install`
|
||||
4. `NODE_ENV=production yarn build`
|
||||
5. `yarn migrate`
|
||||
6. 重启您的 Misskey 进程来应用改变。
|
||||
7. 尽情享受吧!
|
||||
|
||||
如果您在更新时遇到任何问题,请尝试以下操作:
|
||||
1. `yarn clean` 或是 `yarn cleanall`
|
||||
2. 重试升级 (请不要忘记 `yarn install` )
|
||||
|
||||
----------------------------------------------------------------
|
||||
|
||||
如果您有任何疑问或是困惑,欢迎与我们联系!
|
115
gulpfile.ts
@ -2,44 +2,22 @@
|
||||
* Gulp tasks
|
||||
*/
|
||||
|
||||
import * as fs from 'fs';
|
||||
import * as gulp from 'gulp';
|
||||
import * as gutil from 'gulp-util';
|
||||
import * as ts from 'gulp-typescript';
|
||||
const sourcemaps = require('gulp-sourcemaps');
|
||||
import tslint from 'gulp-tslint';
|
||||
const cssnano = require('gulp-cssnano');
|
||||
const stylus = require('gulp-stylus');
|
||||
import * as uglifyComposer from 'gulp-uglify/composer';
|
||||
import * as rimraf from 'rimraf';
|
||||
import chalk from 'chalk';
|
||||
const imagemin = require('gulp-imagemin');
|
||||
import * as rename from 'gulp-rename';
|
||||
import * as mocha from 'gulp-mocha';
|
||||
import * as replace from 'gulp-replace';
|
||||
const uglifyes = require('uglify-es');
|
||||
|
||||
const locales = require('./locales');
|
||||
|
||||
const uglify = uglifyComposer(uglifyes, console);
|
||||
|
||||
const env = process.env.NODE_ENV || 'development';
|
||||
const isProduction = env === 'production';
|
||||
const isDebug = !isProduction;
|
||||
|
||||
if (isDebug) {
|
||||
console.warn(chalk.yellow.bold('WARNING! NODE_ENV is not "production".'));
|
||||
console.warn(chalk.yellow.bold(' built script will not be compressed.'));
|
||||
}
|
||||
const locales: { [x: string]: any } = require('./locales');
|
||||
const meta = require('./package.json');
|
||||
|
||||
gulp.task('build:ts', () => {
|
||||
const tsProject = ts.createProject('./tsconfig.json');
|
||||
|
||||
return tsProject
|
||||
.src()
|
||||
.pipe(sourcemaps.init())
|
||||
.pipe(tsProject())
|
||||
.on('error', () => {})
|
||||
.pipe(sourcemaps.write('.', { includeContent: false, sourceRoot: '../built' }))
|
||||
.pipe(gulp.dest('./built/'));
|
||||
});
|
||||
|
||||
@ -47,42 +25,31 @@ gulp.task('build:copy:views', () =>
|
||||
gulp.src('./src/server/web/views/**/*').pipe(gulp.dest('./built/server/web/views'))
|
||||
);
|
||||
|
||||
gulp.task('build:copy', gulp.parallel('build:copy:views', () =>
|
||||
gulp.task('build:copy:locales', cb => {
|
||||
fs.mkdirSync('./built/client/assets/locales', { recursive: true });
|
||||
|
||||
const v = { '_version_': meta.version };
|
||||
|
||||
for (const [lang, locale] of Object.entries(locales)) {
|
||||
fs.writeFileSync(`./built/client/assets/locales/${lang}.${meta.version}.json`, JSON.stringify({ ...locale, ...v }), 'utf-8');
|
||||
}
|
||||
|
||||
cb();
|
||||
});
|
||||
|
||||
gulp.task('build:copy:fonts', () =>
|
||||
gulp.src('./node_modules/three/examples/fonts/**/*').pipe(gulp.dest('./built/client/assets/fonts/'))
|
||||
);
|
||||
|
||||
gulp.task('build:copy', gulp.parallel('build:copy:views', 'build:copy:locales', 'build:copy:fonts', () =>
|
||||
gulp.src([
|
||||
'./src/const.json',
|
||||
'./src/emojilist.json',
|
||||
'./src/server/web/views/**/*',
|
||||
'./src/**/assets/**/*',
|
||||
'!./src/client/app/**/assets/**/*'
|
||||
'!./src/client/assets/**/*'
|
||||
]).pipe(gulp.dest('./built/'))
|
||||
));
|
||||
|
||||
gulp.task('lint', () =>
|
||||
gulp.src('./src/**/*.ts')
|
||||
.pipe(tslint({
|
||||
formatter: 'verbose'
|
||||
}))
|
||||
.pipe(tslint.report())
|
||||
);
|
||||
|
||||
gulp.task('format', () =>
|
||||
gulp.src('./src/**/*.ts')
|
||||
.pipe(tslint({
|
||||
formatter: 'verbose',
|
||||
fix: true
|
||||
}))
|
||||
.pipe(tslint.report())
|
||||
);
|
||||
|
||||
gulp.task('mocha', () =>
|
||||
gulp.src('./test/**/*.ts')
|
||||
.pipe(mocha({
|
||||
exit: true,
|
||||
require: 'ts-node/register'
|
||||
} as any))
|
||||
);
|
||||
|
||||
gulp.task('test', gulp.task('mocha'));
|
||||
|
||||
gulp.task('clean', cb =>
|
||||
rimraf('./built', cb)
|
||||
);
|
||||
@ -91,57 +58,33 @@ gulp.task('cleanall', gulp.parallel('clean', cb =>
|
||||
rimraf('./node_modules', cb)
|
||||
));
|
||||
|
||||
gulp.task('build:client:script', () => {
|
||||
const client = require('./built/client/meta.json');
|
||||
return gulp.src(['./src/client/app/boot.js', './src/client/app/safe.js'])
|
||||
.pipe(replace('VERSION', JSON.stringify(client.version)))
|
||||
.pipe(replace('ENV', JSON.stringify(env)))
|
||||
.pipe(replace('LANGS', JSON.stringify(Object.keys(locales))))
|
||||
.pipe(isProduction ? uglify({
|
||||
toplevel: true
|
||||
} as any) : gutil.noop())
|
||||
.pipe(gulp.dest('./built/client/assets/'));
|
||||
});
|
||||
|
||||
gulp.task('build:client:styles', () =>
|
||||
gulp.src('./src/client/app/init.css')
|
||||
.pipe(isProduction
|
||||
? (cssnano as any)()
|
||||
: gutil.noop())
|
||||
.pipe(gulp.dest('./built/client/assets/'))
|
||||
);
|
||||
|
||||
gulp.task('copy:client', () =>
|
||||
gulp.src([
|
||||
'./assets/**/*',
|
||||
'./src/client/assets/**/*',
|
||||
'./src/client/app/*/assets/**/*'
|
||||
])
|
||||
.pipe(isProduction ? (imagemin as any)() : gutil.noop())
|
||||
.pipe(rename(path => {
|
||||
path.dirname = path.dirname!.replace('assets', '.');
|
||||
}))
|
||||
.pipe(gulp.dest('./built/client/assets/'))
|
||||
);
|
||||
|
||||
gulp.task('doc', () =>
|
||||
gulp.src('./src/docs/**/*.styl')
|
||||
.pipe(stylus())
|
||||
.pipe((cssnano as any)())
|
||||
.pipe(gulp.dest('./built/docs/assets/'))
|
||||
gulp.task('copy:docs', () =>
|
||||
gulp.src([
|
||||
'./src/docs/**/*',
|
||||
])
|
||||
.pipe(gulp.dest('./built/client/assets/docs/'))
|
||||
);
|
||||
|
||||
gulp.task('build:client', gulp.parallel(
|
||||
'build:client:script',
|
||||
'build:client:styles',
|
||||
'copy:client'
|
||||
'copy:client',
|
||||
'copy:docs'
|
||||
));
|
||||
|
||||
gulp.task('build', gulp.parallel(
|
||||
'build:ts',
|
||||
'build:copy',
|
||||
'build:client',
|
||||
'doc'
|
||||
));
|
||||
|
||||
gulp.task('default', gulp.task('build'));
|
||||
|
8
index.js
@ -1 +1,7 @@
|
||||
require('./built').default();
|
||||
const fs = require('fs');
|
||||
|
||||
if (fs.existsSync('./built')) {
|
||||
require('./built').default();
|
||||
} else {
|
||||
console.log('Built code is not found. Probably an error occurred during a build or you just forgot to build.');
|
||||
}
|
||||
|
553
locales/ar-SA.yml
Normal file
@ -0,0 +1,553 @@
|
||||
---
|
||||
_lang_: "العربية"
|
||||
introMisskey: "اهلا بك! ميسكي هو منصة تدوين مصغر لا مركزية ومفتوحة المصدر.\nيمكنك مشاركة \"ملاحظات\" عن ما يجري حولك، وإخبار الجميع عن نفسك 📡\nتسمح لك \"الانفعالات\" بتعبير عن شعورك حول ملاحظات الآخرين 👍\nاكتشف عالمًا جديدًا 🚀"
|
||||
monthAndDay: "{day}/{month}"
|
||||
search: "البحث"
|
||||
notifications: "الإشعارات"
|
||||
username: "اسم المستخدم"
|
||||
password: "الكلمة السرية"
|
||||
fetchingAsApObject: "جارٍ جلبه مِن الفديفرس…"
|
||||
ok: " حسناً"
|
||||
gotIt: "فهِمت"
|
||||
cancel: " إلغاء"
|
||||
enterUsername: "أدخِل إسم مسخدم"
|
||||
noNotes: "لم يتم العثور على أية ملاحظات"
|
||||
noNotifications: "ليس هناك أية اشعارات"
|
||||
instance: "مثيل الخادم"
|
||||
settings: "الاعدادات"
|
||||
basicSettings: "الاعدادات الأساسية"
|
||||
otherSettings: "إعدادات أخرى"
|
||||
openInWindow: "افتح في نافذة جديدة"
|
||||
profile: "الملف التعريفي"
|
||||
timeline: "الخيط الزمني"
|
||||
noAccountDescription: "لم يكتب هذا المستخدم سيرته بعد."
|
||||
login: "لِج"
|
||||
loggingIn: "جارٍ تسجيل الدخول"
|
||||
logout: "الخروج"
|
||||
signup: "أنشئ حسابًا"
|
||||
uploading: "عملية الإرسال جارية"
|
||||
save: "حفظ"
|
||||
users: "المستخدمون"
|
||||
addUser: "اضافة مستخدم"
|
||||
favorite: "إضافة إلى المفضلة"
|
||||
favorites: "المفضلات"
|
||||
unfavorite: "إزالة من المفضلة"
|
||||
pin: "دبّسها على الصفحة الشخصية"
|
||||
unpin: "ألغ تثبيتها من ملفك الشخصي"
|
||||
copyContent: "انسخ المحتوى"
|
||||
copyLink: "انسخ الرابط"
|
||||
delete: "حذف"
|
||||
deleteAndEdit: "إزالة وإعادة الصياغة"
|
||||
deleteAndEditConfirm: "أمتأكد من حذف الملاحظة؟ ستفقد كل مشاركاتها، والتفاعلات، والردود عليها."
|
||||
addToList: "أضفه إلى قائمة"
|
||||
sendMessage: "أرسل رسالة"
|
||||
copyUsername: "انسخ اسم المستخدم"
|
||||
searchUser: "ابحث عن مستخدمين"
|
||||
reply: "رد"
|
||||
loadMore: "عرض المزيد"
|
||||
youGotNewFollower: "يتابعك"
|
||||
receiveFollowRequest: "تلقيت طلب متابعة"
|
||||
followRequestAccepted: "قُبل طلب المتابعة"
|
||||
mention: "أشر الى"
|
||||
mentions: "الإشارات"
|
||||
directNotes: "الملاحظات المباشرة"
|
||||
importAndExport: "إستورد / صدر"
|
||||
import: "استيراد"
|
||||
export: "تصدير"
|
||||
files: "الملفات"
|
||||
download: "تنزيل"
|
||||
driveFileDeleteConfirm: "أمتأكد من حذف ملف {name}؟ كل الملاحظات المُرفق بها هذا الملف ستحذف."
|
||||
unfollowConfirm: "أمتأكد من إلغاء متابعة {name}؟"
|
||||
lists: "القوائم"
|
||||
noLists: "ليس لديك أية قائمة"
|
||||
note: "ملاحظة"
|
||||
notes: "الملاحظات"
|
||||
following: "المتابَعون"
|
||||
followers: "المتابِعين"
|
||||
followsYou: "يتابعك"
|
||||
createList: "إنشاء قائمة"
|
||||
manageLists: "إدارة القوائم"
|
||||
error: "خطأ"
|
||||
somethingHappened: "حدث خطأ"
|
||||
retry: "حاول مجددًا"
|
||||
pageLoadError: "فشل تحميل الصفحة"
|
||||
enterListName: "اسم القائمة"
|
||||
privacy: "الخصوصية"
|
||||
makeFollowManuallyApprove: "القبول يدويا طلبات الإشتراك"
|
||||
defaultNoteVisibility: "مدى الرؤية الافتراضي"
|
||||
follow: "تابِع"
|
||||
followRequest: "طلب اشتراك"
|
||||
followRequests: "طلبات الإشتراك"
|
||||
unfollow: "إلغاء الاشتراك"
|
||||
followRequestPending: "طلبات الإشتراك المعلّقة"
|
||||
enterEmoji: "أدخل إيموجي"
|
||||
unrenote: "إلغاء مشاركة الملاحظة"
|
||||
quote: "اقتبس"
|
||||
pinnedNote: "ملاحظة مدبسة"
|
||||
you: "أنت"
|
||||
clickToShow: "اضغط للعرض"
|
||||
sensitive: "محتوى حساس"
|
||||
add: "إضافة"
|
||||
reaction: "تفاعل"
|
||||
rememberNoteVisibility: "تذكر إعدادت مدى رؤية الملاحظات"
|
||||
attachCancel: "أزل المرفق"
|
||||
enterFileName: "ادخل اسم الملف"
|
||||
mute: "اكتم"
|
||||
unmute: "إلغاء الكتم"
|
||||
block: "احجب"
|
||||
unblock: "إلغاء الحجب"
|
||||
suspend: "علِق"
|
||||
unsuspend: "ألغ التعليق"
|
||||
blockConfirm: "أمتأكد من حجب هذا الحساب؟"
|
||||
unblockConfirm: "أمتأكد من إلغاء حجب هذا الحساب؟"
|
||||
selectList: "اختر قائمة"
|
||||
editWidgetsExit: "تم"
|
||||
customEmojis: "إيموجي مخصص"
|
||||
addEmoji: "إضافة إيموجي"
|
||||
cacheRemoteFiles: "خزن مؤقتا الملفات البعيدة"
|
||||
autoAcceptFollowed: "اقبل طلبات المتابعة تلقائيا من الحسابات المتابَعة"
|
||||
addAcount: "إضافة حساب"
|
||||
loginFailed: "فشل الولوج"
|
||||
showOnRemote: "رؤيته على مثيل الخادم البُعدي"
|
||||
general: "الرئيسية"
|
||||
wallpaper: "خلفية الشاشة"
|
||||
setWallpaper: "استخدم خلفية الشاشة"
|
||||
removeWallpaper: "إزالة خلفية الشاشة"
|
||||
searchWith: "البحث: {q}"
|
||||
youHaveNoLists: "لا تمتلك أية قائمة"
|
||||
followConfirm: "أتريد متابعة {name}؟"
|
||||
proxyAccount: "حساب وكيل البروكسي"
|
||||
host: "المضيف"
|
||||
selectUser: "حدّد مستخدمًا"
|
||||
recipient: "المرسَل إليه·ها"
|
||||
annotation: "التعليقات"
|
||||
federation: "الفديرالية"
|
||||
instances: "مثيل الخادم"
|
||||
latestRequestSentAt: "آخر طلب أرسِل في"
|
||||
latestRequestReceivedAt: "آخر طلب تُلقي في"
|
||||
storageUsage: "مساحة التخزين المستخدمة"
|
||||
charts: "المنحنيات البيانية"
|
||||
perHour: "في الساعة"
|
||||
perDay: "في اليوم"
|
||||
stopActivityDelivery: "وقف إرسال النشاط"
|
||||
blockThisInstance: "احجب مثيل الخادم هذا"
|
||||
operations: "الإجراءات"
|
||||
software: "البرنامج"
|
||||
version: "الإصدار"
|
||||
metadata: "البيانات الوصفية"
|
||||
withNFiles: "{n} ملف (ملفات)"
|
||||
monitor: "شاشة التحكم"
|
||||
jobQueue: "قائمة الانتظار"
|
||||
cpuAndMemory: "وحدة المعالجة المركزية والذاكرة"
|
||||
network: "الشبكة"
|
||||
disk: "قرص التخزين"
|
||||
instanceInfo: "معلومات مثيل الخادم"
|
||||
statistics: "الإحصائيات"
|
||||
clearQueue: "تفريغ قائمة الإنتظار"
|
||||
muteAndBlock: "تم كتمها / تم حجبها"
|
||||
mutedUsers: "الحسابات التي تم كتمها"
|
||||
blockedUsers: "الحسابات التي تم حظرها"
|
||||
noUsers: "ليس هناك مستخدمون"
|
||||
editProfile: "تعديل الملف التعريفي"
|
||||
noteDeleteConfirm: "هل تريد حذف هذه الملاحظة؟"
|
||||
pinLimitExceeded: "لا يمكنك تدبيس الملاحظات بعد الآن."
|
||||
intro: "لقد انتهت عملية تنصيب Misskey. الرجاء إنشاء حساب إداري."
|
||||
done: "تمّ"
|
||||
processing: "المعالجة جارية"
|
||||
preview: "معاينة"
|
||||
default: "افتراضي"
|
||||
noCustomEmojis: "ليس هناك إيموجيات"
|
||||
federating: "الفديرالية جارية"
|
||||
blocked: "محجوب"
|
||||
suspended: "مُعلّق"
|
||||
all: "الكل"
|
||||
notResponding: "لا يستجيب"
|
||||
changePassword: "تغيير الكلمة السرية"
|
||||
security: "الأمان"
|
||||
more: "المزيد!"
|
||||
featured: "المتداولة"
|
||||
usernameOrUserId: "اسم المستخدم أو معرّفه"
|
||||
noSuchUser: "لم يُعثَر على المستخدم"
|
||||
lookup: "البحث"
|
||||
announcements: "الإعلانات"
|
||||
imageUrl: "عنوان URL للصورة"
|
||||
remove: "حذف"
|
||||
removed: "تم حذفه بنجاح"
|
||||
removeAreYouSure: "متأكد من أنك تريد حذف {x}؟"
|
||||
saved: "تم حفظه"
|
||||
messaging: "الدردشة"
|
||||
upload: "تحميل"
|
||||
fromDrive: "من المخزن"
|
||||
fromUrl: "من عنوان URL"
|
||||
uploadFromUrl: "التحميل عبر URL"
|
||||
explore: "استكشاف"
|
||||
games: "ألعاب Misskey"
|
||||
messageRead: "مقروءة"
|
||||
startMessaging: "ابدأ الدردشة"
|
||||
tos: "شروط الخدمة"
|
||||
start: "البداية"
|
||||
home: "الرئيسي"
|
||||
activity: "النشاط"
|
||||
images: "الصور"
|
||||
birthday: "تاريخ الميلاد"
|
||||
yearsOld: "{age} سنة"
|
||||
registeredDate: "انظم في"
|
||||
location: "المكان"
|
||||
theme: "المظهر"
|
||||
themeForLightMode: "الحلة في الوضع الفاتح"
|
||||
themeForDarkMode: "الحلة في الوضع الداكن"
|
||||
light: "فاتح"
|
||||
dark: "داكن"
|
||||
lightThemes: "الحلة الفاتحة"
|
||||
darkThemes: "الحلة الداكنة"
|
||||
drive: "قرص التخرين"
|
||||
fileName: "اسم الملف"
|
||||
selectFile: "اختر ملفًا"
|
||||
selectFiles: "اختر ملفات"
|
||||
selectFolder: "اختر مجلدًا"
|
||||
selectFolders: "اختر مجلدات"
|
||||
renameFile: "إعادة تسمية الملف"
|
||||
folderName: "اسم المجلد"
|
||||
createFolder: "أنشئ مجلدًا"
|
||||
renameFolder: "إعادة تسمية المجلد"
|
||||
deleteFolder: "احذف هذا المجلد"
|
||||
addFile: "إضافة ملف"
|
||||
emptyDrive: "قرص التخزين فارغ"
|
||||
emptyFolder: "هذا المجلد فارغ"
|
||||
unableToDelete: "لا يمكن حذفه"
|
||||
inputNewFileName: "ادخل الإسم الجديد للملف"
|
||||
inputNewFolderName: "ادخل الإسم الجديد للمجلد"
|
||||
copyUrl: "انسخ عنوان URL"
|
||||
rename: "إعادة التسمية"
|
||||
avatar: "الصورة الرمزية"
|
||||
banner: "الصورة الرأسية"
|
||||
nsfw: "محتوى حساس"
|
||||
disconnectedFromServer: "قُطِع الإتصال بالخادم"
|
||||
reload: "انعش"
|
||||
doNothing: "تجاهل"
|
||||
watch: "راقب"
|
||||
unwatch: "إلغاء المراقبة"
|
||||
accept: "السماح"
|
||||
reject: "رفض"
|
||||
normal: "عادي"
|
||||
instanceName: "اسم مثيل الخادم"
|
||||
instanceDescription: "وصف مثيل الخادم"
|
||||
maintainerName: "المدير"
|
||||
maintainerEmail: "عنوان بريد المدير الإلكتروني"
|
||||
tosUrl: "عنوان URL لشروط الخدمة"
|
||||
thisYear: "هذا العام"
|
||||
thisMonth: "هذا الشهر"
|
||||
today: "اليوم"
|
||||
dayX: "{day}"
|
||||
monthX: "{month}"
|
||||
yearX: "{year}"
|
||||
pages: "الصفحات"
|
||||
connectSerice: "أوصل"
|
||||
disconnectSerice: "قطع الاتصال"
|
||||
enableLocalTimeline: "تفعيل الخيط المحلي"
|
||||
enableGlobalTimeline: "تفعيل الخيط الزمني الشامل"
|
||||
registration: "إنشاء حساب"
|
||||
enableRegistration: "تفعيل إنشاء الحسابات الجديدة"
|
||||
invite: "دعوة"
|
||||
basicInfo: "المعلومات الأساسية "
|
||||
hcaptchaSiteKey: "مفتاح الموقع"
|
||||
hcaptchaSecretKey: "المفتاح السري"
|
||||
recaptcha: "reCAPTCHA"
|
||||
enableRecaptcha: "تمكين reCAPTCHA"
|
||||
recaptchaSiteKey: "مفتاح الموقع"
|
||||
recaptchaSecretKey: "المفتاح السري"
|
||||
antennas: "الهوائيات"
|
||||
manageAntennas: "إدارة الهوائيات"
|
||||
name: "الإسم"
|
||||
antennaSource: "مصدر الهوائي"
|
||||
antennaKeywords: "الكلمات المفتاحية للإستقبال"
|
||||
withReplies: "بالردود"
|
||||
notesAndReplies: "الملاحظات والردود"
|
||||
withFiles: "بالمرفقات"
|
||||
silence: "اكتم"
|
||||
unsilence: "إلغاء الكتم"
|
||||
popularUsers: "المستخدمون الشائعون"
|
||||
exploreFediverse: "استكشف الفديفرس"
|
||||
popularTags: "الوسوم الرائجة"
|
||||
userList: "القوائم"
|
||||
about: "عن"
|
||||
aboutMisskey: "عن Misskey"
|
||||
patrons: "الداعمون"
|
||||
administrator: "المدير"
|
||||
token: "الرمز المميز"
|
||||
twoStepAuthentication: "الإستيثاق بعاملَيْن"
|
||||
moderator: "مشرِف"
|
||||
nUsersMentioned: "{n} مستخدمين تمت الإشارة إليهم"
|
||||
securityKey: "مفتاح الأمان"
|
||||
securityKeyName: "اسم المفتاح"
|
||||
lastUsed: "آخر استخدام"
|
||||
unregister: "إلغاء التسجيل"
|
||||
passwordLessLogin: "لِج مِن دون كلمة سرية"
|
||||
resetPassword: "أعد تعيين كلمتك السرية"
|
||||
newPasswordIs: "كلمتك السرية الجديدة هي {password}"
|
||||
autoNoteWatch: "راقب الملاحظات تلقائيا"
|
||||
share: "شارِك"
|
||||
notFound: "غير موجود"
|
||||
help: "المساعدة"
|
||||
inputMessageHere: "اكتب رسالتك هنا"
|
||||
close: "اغلق"
|
||||
group: "الفريق"
|
||||
groups: "الفِرَق"
|
||||
createGroup: "انشئ فريقًا"
|
||||
invites: "دعوة"
|
||||
groupName: "اسم الفريق"
|
||||
members: "الأعضاء"
|
||||
transfer: "نقل"
|
||||
messagingWithUser: "الدردشة مع مستخدم آخر"
|
||||
messagingWithGroup: "دردشة جماعية"
|
||||
title: "العنوان"
|
||||
text: "النص"
|
||||
enable: "تشغيل"
|
||||
next: "التالية"
|
||||
retype: "أعد الكتابة"
|
||||
noteOf: "ملاحظات {user}"
|
||||
inviteToGroup: "دعوة إلى فريق"
|
||||
noMessagesYet: "ليس هناك رسائل بعد"
|
||||
newMessageExists: "لقد تلقيت رسالة جديدة"
|
||||
invitations: "دعوة"
|
||||
invitationCode: "رمز الدعوة"
|
||||
checking: "التحقق جارٍ"
|
||||
available: "متوفر"
|
||||
unavailable: "غير متوفر"
|
||||
tooShort: "قصير جدًا"
|
||||
tooLong: "طويل جدًا"
|
||||
weakPassword: "الكلمة السرية ضعيفة"
|
||||
normalPassword: "الكلمة السرية جيدة"
|
||||
strongPassword: "الكلمة السرية قوية"
|
||||
passwordMatched: "التطابق صحيح!"
|
||||
passwordNotMatched: "غير متطابقتان"
|
||||
signinWith: "الولوج عبر {x}"
|
||||
or: "أو"
|
||||
uiLanguage: "لغة واجهة المستخدم"
|
||||
aboutX: "عن {x}"
|
||||
useOsNativeEmojis: "استخدم الإيموجيات الخاصة بنظام التشغيل"
|
||||
youHaveNoGroups: "لا تمتلك أية فِرَق"
|
||||
noHistory: "السجل فارغ"
|
||||
doing: "انتظر لحظة"
|
||||
category: "الفئات"
|
||||
tags: "الوسوم"
|
||||
docSource: "مصدر هذا المستند"
|
||||
createAccount: "أنشئ حسابًا"
|
||||
existingAcount: "الحسابات الموجودة"
|
||||
regenerate: "أعِد التوليد"
|
||||
fontSize: "حجم الخط"
|
||||
dashboard: "لوحة التحكم"
|
||||
local: "المحلي"
|
||||
remote: "بُعدي"
|
||||
total: "المجموع"
|
||||
weekOverWeekChanges: "أسبوعيا"
|
||||
dayOverDayChanges: "يوميا"
|
||||
appearance: "المظهر"
|
||||
accountSettings: "إعدادات الحساب"
|
||||
promotion: "ترقية"
|
||||
promote: "روِّج"
|
||||
numberOfDays: "عدد الأيام"
|
||||
hideThisNote: "إخفاء هذه الملاحظة"
|
||||
deleteAll: "حذف الكل"
|
||||
sounds: "الرنات"
|
||||
listen: "استمع"
|
||||
none: "لا شيء"
|
||||
volume: "مستوى الصوت"
|
||||
details: "التفاصيل"
|
||||
chooseEmoji: "اختر إيموجي"
|
||||
recentUsed: "المستخدمة مؤخرا"
|
||||
install: "التثبيت"
|
||||
uninstall: "إلغاء التثبيت"
|
||||
installedApps: "التطبيقات المُخوّلة"
|
||||
lastUsedDate: "آخر استخدام"
|
||||
state: "الحالة"
|
||||
sort: "ترتيب حسب"
|
||||
output: "الخارجة"
|
||||
updateRemoteUser: "تحديث المعلومات عن المستخدم البعيد"
|
||||
sidebar: "الشريط الجانبي"
|
||||
addItem: "إضافة عنصر"
|
||||
rooms: "الغرفة"
|
||||
relays: "المُرَحلات"
|
||||
addRelay: "إضافة مُرحّل"
|
||||
addedRelays: "المرحلات التي تم إضافتها"
|
||||
deletedNote: "ملاحظة محذوفة"
|
||||
invisibleNote: "ملاحظة مخفية"
|
||||
poll: "استطلاع رأي"
|
||||
themeEditor: "مصمم القوالب"
|
||||
plugins: "الإضافات"
|
||||
pluginInstallWarn: "يرجى تنصيب إضافات ذات مصدر موثوق منه فقط."
|
||||
smtpHost: "المضيف"
|
||||
smtpUser: "اسم المستخدم"
|
||||
smtpPass: "الكلمة السرية"
|
||||
display: "المظهر"
|
||||
_reversi:
|
||||
total: "المجموع"
|
||||
_channel:
|
||||
featured: "المتداوَلة"
|
||||
_sidebar:
|
||||
full: "كامل"
|
||||
icon: "الصورة الرمزية"
|
||||
hide: "إخفاء"
|
||||
_theme:
|
||||
explore: "استكشف قوالب المظهر"
|
||||
install: "تنصيب قالب"
|
||||
manage: "إدارة القوالب"
|
||||
code: "شيفرة القالب"
|
||||
installed: "تم تنصيب {name}"
|
||||
make: "إنشاء قالب"
|
||||
alpha: "الشفافية"
|
||||
keys:
|
||||
mention: "أشر الى"
|
||||
messageBg: "خلفية الدردشة"
|
||||
_sfx:
|
||||
note: "الملاحظات"
|
||||
noteMy: "ملاحظتي"
|
||||
notification: "الإشعارات"
|
||||
chat: "الدردشة"
|
||||
_ago:
|
||||
unknown: "مجهول"
|
||||
future: "المستقبَل"
|
||||
justNow: "اللحظة"
|
||||
secondsAgo: "منذ {n} ثوانٍ"
|
||||
minutesAgo: "منذ {n} دقائق"
|
||||
hoursAgo: "منذ {n} ساعة"
|
||||
daysAgo: "منذ {n} أيام"
|
||||
weeksAgo: "منذ {n} أسابيع"
|
||||
monthsAgo: "منذ {n} أشهر"
|
||||
yearsAgo: "منذ {n} سنوات"
|
||||
_time:
|
||||
second: "ثا"
|
||||
minute: "د"
|
||||
hour: "سا"
|
||||
day: "ي"
|
||||
_tutorial:
|
||||
title: "كيف تستخدم Misskey"
|
||||
step1_1: "مرحبًا!"
|
||||
_2fa:
|
||||
registerKey: "تسجيل مفتاح أمان جديد"
|
||||
_permissions:
|
||||
"write:account": "تعديل معلومات حسابك"
|
||||
"read:notifications": "اظهر الإشعارات"
|
||||
_weekday:
|
||||
sunday: "الأحد"
|
||||
monday: "الإثنين"
|
||||
tuesday: "الثلاثاء"
|
||||
wednesday: "الأربعاء"
|
||||
thursday: "الخميس"
|
||||
friday: "الجمعة"
|
||||
saturday: "السبت"
|
||||
_widgets:
|
||||
memo: "ملاحظة لاصقة"
|
||||
notifications: "الإشعارات"
|
||||
timeline: "الخيط الزمني"
|
||||
calendar: "التقويم"
|
||||
trends: "المتداوَلة"
|
||||
clock: "الساعة"
|
||||
rss: "تدفق RSS"
|
||||
activity: "النشاط"
|
||||
photos: "الصور"
|
||||
federation: "الفديرالية"
|
||||
_cw:
|
||||
hide: "إخفاء"
|
||||
show: "عرض المزيد"
|
||||
chars: "{count} أحرف"
|
||||
files: "{count} ملفات"
|
||||
_poll:
|
||||
noOnlyOneChoice: "تحتاج إلى خيارَين على الأقل"
|
||||
choiceN: "الخيار {n}"
|
||||
noMore: "لا يمكنك إضافة خيارات أخرى"
|
||||
canMultipleVote: "السماح بالإجابات المتعددة"
|
||||
expiration: "ينتهي استطلاع الرأي في"
|
||||
infinite: "أبدًا"
|
||||
at: "تاريخ الإنتهاء"
|
||||
after: "ينتهي بعد…"
|
||||
deadlineDate: "تاريخ الانتهاء"
|
||||
deadlineTime: "سا"
|
||||
duration: "المدة"
|
||||
votesCount: "{n} أصوات"
|
||||
totalVotes: "المجموع {n} أصوات"
|
||||
vote: "قم بالتصويت"
|
||||
showResult: "اعرض النتائج"
|
||||
voted: "تم التصويت"
|
||||
closed: "انتهى"
|
||||
remainingDays: "{d} أيام و {h} ساعات متبقية"
|
||||
remainingHours: "{h} ساعات و {m} دقائق متبقية"
|
||||
remainingMinutes: "{m} دقائق و {s} ثوانٍ متبقية"
|
||||
remainingSeconds: "{s} ثوانٍ متبقية"
|
||||
_visibility:
|
||||
public: "للعامة"
|
||||
home: "الرئيسي"
|
||||
followers: "المتابِعين"
|
||||
specified: "مباشرة"
|
||||
localOnly: "المحلي فقط"
|
||||
_postForm:
|
||||
replyPlaceholder: "رد على هذه الملاحظة…"
|
||||
quotePlaceholder: "اقتبس هذه الملاحظة…"
|
||||
_profile:
|
||||
name: "الإسم"
|
||||
username: "اسم المستخدم"
|
||||
youCanIncludeHashtags: "يمكنك أيضًا إضافة وسوم إلى نبذتك التعريفية."
|
||||
_exportOrImport:
|
||||
allNotes: "كل الملاحظات"
|
||||
followingList: "المتابَعون"
|
||||
muteList: "اكتم"
|
||||
blockingList: "احجب"
|
||||
userLists: "القوائم"
|
||||
_charts:
|
||||
usersTotal: "مجموع عدد المستخدمين والمستخدمات"
|
||||
activeUsers: "المستخدمون النشطون"
|
||||
_timelines:
|
||||
home: "الرئيسي"
|
||||
local: "المحلي"
|
||||
social: "الاجتماعي"
|
||||
global: "الشامل"
|
||||
_rooms:
|
||||
_roomType:
|
||||
default: "افتراضي"
|
||||
_furnitures:
|
||||
monitor: "شاشة التحكم"
|
||||
banknote: "أوراق نقدية"
|
||||
_pages:
|
||||
blocks:
|
||||
image: "الصور"
|
||||
script:
|
||||
categories:
|
||||
list: "القوائم"
|
||||
blocks:
|
||||
_strReplace:
|
||||
arg1: "نص"
|
||||
arg3: "استُبدِل بـ"
|
||||
_join:
|
||||
arg1: "القوائم"
|
||||
arg2: "فاصل"
|
||||
add: "إضافة"
|
||||
_randomPick:
|
||||
arg1: "القوائم"
|
||||
_dailyRandomPick:
|
||||
arg1: "القوائم"
|
||||
_seedRandomPick:
|
||||
arg2: "القوائم"
|
||||
_pick:
|
||||
arg1: "القوائم"
|
||||
_listLen:
|
||||
arg1: "القوائم"
|
||||
types:
|
||||
array: "القوائم"
|
||||
_notification:
|
||||
youGotPoll: "شارك {name} في استطلاع الرأي"
|
||||
youGotMessagingMessageFromUser: "لقد تلقيت رسالة مِن {name}"
|
||||
youGotMessagingMessageFromGroup: "لقد أرسِلَت رسالة إلى الفريق {name}"
|
||||
youWereFollowed: "يتابعك"
|
||||
_types:
|
||||
follow: "المتابَعون"
|
||||
mention: "أشر الى"
|
||||
quote: "اقتبس"
|
||||
reaction: "تفاعل"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "الإشعارات"
|
||||
tl: "الخيط الزمني"
|
||||
antenna: "الهوائيات"
|
||||
list: "القوائم"
|
||||
mentions: "الإشارات"
|
||||
direct: "مباشرة"
|
@ -1 +0,0 @@
|
||||
---
|
1200
locales/cs-CZ.yml
2
locales/da-DK.yml
Normal file
@ -0,0 +1,2 @@
|
||||
---
|
||||
_lang_: "Dansk"
|
2047
locales/de-DE.yml
2942
locales/en-US.yml
2266
locales/es-ES.yml
2823
locales/fr-FR.yml
@ -14,7 +14,9 @@ const merge = (...args) => args.reduce((a, c) => ({
|
||||
}), {});
|
||||
|
||||
const languages = [
|
||||
'cs-CZ',
|
||||
'ar-SA',
|
||||
//'cs-CZ',
|
||||
//'da-DK',
|
||||
'de-DE',
|
||||
'en-US',
|
||||
'es-ES',
|
||||
@ -22,8 +24,8 @@ const languages = [
|
||||
'ja-JP',
|
||||
'ja-KS',
|
||||
'ko-KR',
|
||||
'nl-NL',
|
||||
'pl-PL',
|
||||
//'nl-NL',
|
||||
//'pl-PL',
|
||||
'zh-CN',
|
||||
'zh-TW',
|
||||
];
|
||||
|
@ -1,6 +0,0 @@
|
||||
---
|
||||
meta:
|
||||
lang: "Italiano"
|
||||
common:
|
||||
misskey: "A ⭐ of the fediverse"
|
||||
about-title: "A ⭐ of the fediverse."
|
3070
locales/ja-JP.yml
1722
locales/ja-KS.yml
91
locales/kab-KAB.yml
Normal file
@ -0,0 +1,91 @@
|
||||
---
|
||||
_lang_: "Taqbaylit"
|
||||
monthAndDay: "{day}/{month}"
|
||||
search: "Nadi"
|
||||
notifications: "Ilɣuyen"
|
||||
username: "Isem n umseqdac"
|
||||
password: "Awal uffir"
|
||||
ok: "IH"
|
||||
settings: "Iɣewwaṛen"
|
||||
profile: "Amaɣnu"
|
||||
save: "Sekles"
|
||||
delete: "Kkes"
|
||||
addToList: "Rnu ɣer tebdart"
|
||||
reply: "Err"
|
||||
loadMore: "Wali ugar"
|
||||
youGotNewFollower: "Yeṭṭafaṛ-ik·em-id"
|
||||
mention: "Bder"
|
||||
import: "Kter"
|
||||
export: "Sifeḍ"
|
||||
files: "Ifuyla"
|
||||
download: "Sider"
|
||||
lists: "Tibdarin"
|
||||
noLists: "Ulac ɣur-k·m ula d yiwet n tabdart"
|
||||
following: "Ig ṭṭafaṛ"
|
||||
followers: "Imeḍfaṛen"
|
||||
followsYou: "Yeṭṭafaṛ-ik·em-id"
|
||||
createList: "Snulfu-d tabdart"
|
||||
enterListName: "Isem n tebdart"
|
||||
follow: "Ḍfeṛ"
|
||||
you: "Kečči·mmi"
|
||||
selectList: "Fren tabdart"
|
||||
youHaveNoLists: "Ulac ɣur-k·m ula d yiwet n tabdart"
|
||||
remove: "Kkes"
|
||||
userList: "Tibdarin"
|
||||
uiLanguage: "Tutlayt n wegrudem"
|
||||
smtpUser: "Isem n umseqdac"
|
||||
smtpPass: "Awal uffir"
|
||||
_theme:
|
||||
keys:
|
||||
mention: "Bder"
|
||||
_sfx:
|
||||
notification: "Ilɣuyen"
|
||||
_widgets:
|
||||
notifications: "Ilɣuyen"
|
||||
_cw:
|
||||
show: "Wali ugar"
|
||||
_visibility:
|
||||
followers: "Imeḍfaṛen"
|
||||
_profile:
|
||||
username: "Isem n umseqdac"
|
||||
_exportOrImport:
|
||||
followingList: "Ig ṭṭafaṛ"
|
||||
muteList: "Sgugem"
|
||||
blockingList: "Seḥbes"
|
||||
userLists: "Tibdarin"
|
||||
_pages:
|
||||
font: "Tasefsit"
|
||||
fontSerif: "Serif"
|
||||
fontSansSerif: "Sans Serif"
|
||||
eyeCatchingImageRemove: "Kkes tugna i d-ijebden"
|
||||
selectType: "Fren anaw"
|
||||
contentBlocks: "Agbur"
|
||||
inputBlocks: "Anekcum"
|
||||
specialBlocks: "Uzzig"
|
||||
script:
|
||||
categories:
|
||||
list: "Tibdarin"
|
||||
blocks:
|
||||
_join:
|
||||
arg1: "Tibdarin"
|
||||
_randomPick:
|
||||
arg1: "Tibdarin"
|
||||
_dailyRandomPick:
|
||||
arg1: "Tibdarin"
|
||||
_seedRandomPick:
|
||||
arg2: "Tibdarin"
|
||||
_pick:
|
||||
arg1: "Tibdarin"
|
||||
_listLen:
|
||||
arg1: "Tibdarin"
|
||||
types:
|
||||
array: "Tibdarin"
|
||||
_notification:
|
||||
youWereFollowed: "Yeṭṭafaṛ-ik·em-id"
|
||||
_types:
|
||||
follow: "Ig ṭṭafaṛ"
|
||||
mention: "Bder"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "Ilɣuyen"
|
||||
list: "Tibdarin"
|
74
locales/kn-IN.yml
Normal file
@ -0,0 +1,74 @@
|
||||
---
|
||||
_lang_: "ಕನ್ನಡ"
|
||||
introMisskey: "ಸ್ವಾಗತ! Misskey ಓಪನ್ ಸೋರ್ಸ್ ಒಕ್ಕೂಟ ಮೈಕ್ರೋಬ್ಲಾಗಿಂಗ್ ಸೇವೆಯಾಗಿದೆ.\n ಏನಾಗುತ್ತಿದೆ ಎಂಬುದನ್ನು ಹಂಚಿಕೊಳ್ಳಲು ಅಥವಾ ನಿಮ್ಮ ಬಗ್ಗೆ ಎಲ್ಲರಿಗೂ ಹೇಳಲು \"ಟಿಪ್ಪಣಿ\"ಗಳನ್ನು ರಚಿಸಿ📡\n \"ಸ್ಪಂದನೆ\" ಕ್ರಿಯೆಯೊಂದಿಗೆ, ನೀವು ಎಲ್ಲರ ಟಿಪ್ಪಣಿಗಳಿಗೆ ತ್ವರಿತವಾಗಿ ಸ್ಪಂದನೆಗಳನ್ನು ಕೂಡ ಸೇರಿಸಬಹುದು.👍\n ಹೊಸ ಜಗತ್ತನ್ನು ಅನ್ವೇಷಿಸಿ🚀"
|
||||
monthAndDay: "{month}ನೇ ತಿಂಗಳ {day}ನೇ ದಿನ"
|
||||
search: "ಹುಡುಕು"
|
||||
notifications: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
username: "ಬಳಕೆಹೆಸರು"
|
||||
password: "ಗುಪ್ತಪದ"
|
||||
fetchingAsApObject: "ಒಕ್ಕೂಟದಿಂದ ಪಡೆಯಲಾಗುತ್ತಿದೆ..."
|
||||
ok: "ಸರಿ"
|
||||
gotIt: "ಅರ್ಥವಾಯಿತು!"
|
||||
cancel: "ರದ್ದು"
|
||||
enterUsername: "ಬಳಕೆಹೆಸರನ್ನು ಭರ್ತಿ ಮಾಡಿ"
|
||||
renotedBy: "{user} ಪುನರಾವರ್ತಿಸಿದರು"
|
||||
noNotes: "ಟಿಪ್ಪಣಿಗಳಿಲ್ಲ"
|
||||
noNotifications: "ಅಧಿಸೂಚನೆಗಳಿಲ್ಲ"
|
||||
instance: "ನಿದರ್ಶನ"
|
||||
settings: "ಸಿದ್ಧತೆಗಳು"
|
||||
profile: "ಪ್ರೊಫೈಲು"
|
||||
timeline: "ಸಮಯಸಾಲು"
|
||||
noAccountDescription: "ಇವರು ಸ್ವಯಂ ಪರಿಚಯ ರಚಿಸಿಲ್ಲ"
|
||||
login: "ಪ್ರವೇಶ"
|
||||
loggingIn: "ಪ್ರವೇಶಿಸುತ್ತಾ..."
|
||||
logout: "ಆಚೆಗೆ"
|
||||
signup: "ನೋಂದಣಿ"
|
||||
uploading: "ಅಪ್ಲೋಡಾಗುತ್ತಿದೆ"
|
||||
save: "ಉಳಿಸಿ"
|
||||
users: "ಬಳಕೆದಾರ"
|
||||
addUser: "ಬಳಕೆದಾರರನ್ನು ಸೇರಿಸಿ"
|
||||
favorite: "ಮೆಚ್ಚಿನ"
|
||||
favorites: "ಮೆಚ್ಚಿನವುಗಳು"
|
||||
unfavorite: "ಮೆಚ್ಚುಗೆ ಅಳಿಸು"
|
||||
pin: "ಪ್ರೊಫ಼ೈಲಿಗೆ ಅಂಟಿಸು"
|
||||
unpin: "ಪ್ರೊಫ಼ೈಲಿಂದ ಅಂಟುತೆಗೆ"
|
||||
copyContent: "ವಿಷಯವನ್ನು ನಕಲಿಸು"
|
||||
copyLink: "ಲಿಂಕನ್ನು ನಕಲಿಸು"
|
||||
delete: "ಅಳಿಸು"
|
||||
addToList: "ಪಟ್ಟಿಗೆ ಸೇರಿಸು"
|
||||
sendMessage: "ಸಂದೇಶ ಕಳುಹಿಸು"
|
||||
copyUsername: "ಬಳಕೆಹೆಸರು ನಕಲಿಸು"
|
||||
reply: "ಉತ್ತರಿಸು"
|
||||
loadMore: "ಇನ್ನಷ್ಟು ನೋಡು"
|
||||
youGotNewFollower: "ಹಿಂಬಾಲಿಸಿದರು"
|
||||
receiveFollowRequest: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಬಂದಿದೆ"
|
||||
followRequestAccepted: "ಹಿಂಬಾಲನೆ ವಿನಂತಿ ಸ್ವೀಕರಿಸಲಾಯಿತು"
|
||||
mentions: "ಹೆಸರಿಸಿದ"
|
||||
directNotes: "ನೇರ ಟಿಪ್ಪಣಿಗಳು"
|
||||
importAndExport: "ಆಮದು/ರಫ್ತು"
|
||||
import: "ಆಮದು"
|
||||
export: "ರಫ್ತು"
|
||||
files: "ಕಡತಗಳು"
|
||||
download: "ಜಾಲದಿಂದಿಳಿಸು"
|
||||
driveFileDeleteConfirm: "\"{name}\" ಕಡತವನ್ನು ಅಳಿಸಲು ನೀವು ಬಯಸುವಿರಾ? ಈ ನೋಡಿರಿ ಲಗತ್ತಿಸಲಾದ ಟಿಪ್ಪಣಿ ಸಹ ಕಣ್ಮರೆಯಾಗುತ್ತದೆ."
|
||||
unfollowConfirm: "{name}ಅನ್ನು ಹಿಂಬಾಲಿಸದಿರುವುದೇ?"
|
||||
instances: "ನಿದರ್ಶನ"
|
||||
remove: "ಅಳಿಸು"
|
||||
smtpUser: "ಬಳಕೆಹೆಸರು"
|
||||
smtpPass: "ಗುಪ್ತಪದ"
|
||||
_sfx:
|
||||
notification: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
_widgets:
|
||||
notifications: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
timeline: "ಸಮಯಸಾಲು"
|
||||
_cw:
|
||||
show: "ಇನ್ನಷ್ಟು ನೋಡು"
|
||||
_profile:
|
||||
username: "ಬಳಕೆಹೆಸರು"
|
||||
_notification:
|
||||
youWereFollowed: "ಹಿಂಬಾಲಿಸಿದರು"
|
||||
_deck:
|
||||
_columns:
|
||||
notifications: "ಅಧಿಸೂಚನೆಗಳು"
|
||||
tl: "ಸಮಯಸಾಲು"
|
||||
mentions: "ಹೆಸರಿಸಿದ"
|
2782
locales/ko-KR.yml
@ -1,631 +1,2 @@
|
||||
---
|
||||
meta:
|
||||
lang: "Nederlands"
|
||||
common:
|
||||
misskey: "Deel alles met anderen die ook Misskey gebruiken."
|
||||
intro:
|
||||
rich-contents: "Bericht"
|
||||
reaction: "Reactie"
|
||||
close: "Sluiten"
|
||||
enter-password: "Voer het wachtwoord in"
|
||||
time:
|
||||
unknown: "onbekend"
|
||||
future: "toekomstig"
|
||||
just_now: "zojuist"
|
||||
seconds_ago: "{}s geleden"
|
||||
minutes_ago: "{}m geleden"
|
||||
hours_ago: "{}u geleden"
|
||||
days_ago: "{}d geleden"
|
||||
weeks_ago: "{}week/weken geleden"
|
||||
months_ago: "{}maand(en) geleden"
|
||||
years_ago: "{}jaar geleden"
|
||||
home: "Startpagina"
|
||||
timeline: "Tijdlijn"
|
||||
followers: "Volgers"
|
||||
favorites: "Deze notitie toevoegen aan favorieten"
|
||||
permissions:
|
||||
"write:votes": "Stemmen"
|
||||
weekday-short:
|
||||
sunday: "Z"
|
||||
monday: "M"
|
||||
tuesday: "D"
|
||||
wednesday: "W"
|
||||
thursday: "D"
|
||||
friday: "V"
|
||||
saturday: "Z"
|
||||
reactions:
|
||||
like: "Leuk"
|
||||
love: "Geweldig"
|
||||
laugh: "Grappig"
|
||||
hmm: "Eh...?"
|
||||
surprise: "Wauw"
|
||||
congrats: "Gefeliciteerd!"
|
||||
angry: "Boos"
|
||||
confused: "Verward"
|
||||
pudding: "Pudding"
|
||||
note-visibility:
|
||||
home: "Startpagina"
|
||||
followers: "Volgers"
|
||||
_settings:
|
||||
profile: "Je profiel"
|
||||
notification: "Meldingen"
|
||||
password: "Wachtwoord"
|
||||
timeline: "Tijdlijn"
|
||||
search: "Zoeken"
|
||||
delete: "Verwijderen"
|
||||
loading: "Bezig met laden"
|
||||
update-available: "Er is een nieuwe versie van Misskey beschikbaar: {newer} (de huidige versie is {current}). Herlaad de pagina om de update toe te passen."
|
||||
my-token-regenerated: "Je sleutel is gegenereerd; je wordt nu uitgelogd."
|
||||
widgets:
|
||||
profile: "Je profiel"
|
||||
activity: "Activiteit"
|
||||
trends: "Populair"
|
||||
photo-stream: "Fotostream"
|
||||
notifications: "Meldingen"
|
||||
users: "Aanbevolen gebruikers"
|
||||
server: "Serverinformatie"
|
||||
you: "Jij"
|
||||
auth/views/form.vue:
|
||||
cancel: "Annuleren"
|
||||
auth/views/index.vue:
|
||||
loading: "Bezig met laden"
|
||||
common/views/components/games/reversi/reversi.vue:
|
||||
matching:
|
||||
cancel: "Annuleren"
|
||||
common/views/components/games/reversi/reversi.room.vue:
|
||||
cancel: "Annuleren"
|
||||
common/views/components/connect-failed.vue:
|
||||
title: "Verbinden met server mislukt"
|
||||
description: "Er is een probleem met je internetverbinding, de server ligt plat of er wordt aan gewerkt. {Probeer} het later opnieuw."
|
||||
thanks: "Bedankt voor het gebruiken van Misskey."
|
||||
troubleshoot: "Probleemoplossing"
|
||||
common/views/components/connect-failed.troubleshooter.vue:
|
||||
title: "Probleemoplossing"
|
||||
network: "Netwerkverbinding"
|
||||
checking-network: "Bezig met controleren van netwerkverbinding"
|
||||
internet: "Internetverbinding"
|
||||
checking-internet: "Bezig met controleren van internetverbinding"
|
||||
server: "Serververbinding"
|
||||
checking-server: "Bezig met controleren van serververbinding"
|
||||
finding: "Bezig met vaststellen van probleem"
|
||||
no-network: "Er is geen internetverbinding"
|
||||
no-network-desc: "Zorg ervoor dat je verbonden bent met een netwerk."
|
||||
no-internet: "Er is geen internetverbinding"
|
||||
no-internet-desc: "Zorg ervoor dat je verbonden bent met het internet."
|
||||
no-server: "Verbinden met Misskey-server mislukt"
|
||||
no-server-desc: "De netwerkverbinding van je computer is goed, maar er kan geen verbinding worden gemaakt met de Misskey-server. Het kan dat de server plat ligt of dat eraan wordt gewerkt. Probeer het later opnieuw."
|
||||
success: "Verbonden met de Misskey-server"
|
||||
success-desc: "Het verbinden lijkt te lukken. Herlaad de pagina."
|
||||
flush: "Cache leegmaken"
|
||||
set-version: "Versie opgeven"
|
||||
common/views/components/theme.vue:
|
||||
desc: "Omschrijving"
|
||||
common/views/components/messaging.vue:
|
||||
search-user: "Gebruiker zoeken"
|
||||
you: "Jij"
|
||||
no-history: "Geen geschiedenis"
|
||||
common/views/components/messaging-room.vue:
|
||||
empty: "Geen gesprekken"
|
||||
no-history: "Er is geen verdere geschiedenis"
|
||||
resize-form: "Versleep om grootte te wijzigen"
|
||||
new-message: "Nieuw bericht"
|
||||
common/views/components/messaging-room.form.vue:
|
||||
input-message-here: "Voer hier je bericht in"
|
||||
send: "Versturen"
|
||||
attach-from-local: "Bestanden bijvoegen van je computer"
|
||||
attach-from-drive: "Bestanden bijvoegen van je Drive"
|
||||
common/views/components/messaging-room.message.vue:
|
||||
is-read: "Gelezen"
|
||||
deleted: "Dit bericht is verwijderd"
|
||||
common/views/components/nav.vue:
|
||||
about: "Over"
|
||||
stats: "Statistieken"
|
||||
status: "Status"
|
||||
donors: "Donateurs"
|
||||
repository: "Broncode"
|
||||
develop: "Ontwikkelaars"
|
||||
feedback: "Feedback"
|
||||
common/views/components/note-menu.vue:
|
||||
favorite: "Deze notitie toevoegen aan favorieten"
|
||||
pin: "Vastmaken aan profielpagina"
|
||||
delete: "Verwijderen"
|
||||
remote: "Origineel tonen"
|
||||
common/views/components/poll.vue:
|
||||
vote-to: "Stemmen op '{}'"
|
||||
vote-count: "{} stemmen"
|
||||
vote: "Stemmen"
|
||||
show-result: "Resultaten tonen"
|
||||
voted: "Gestemd"
|
||||
common/views/components/poll-editor.vue:
|
||||
no-only-one-choice: "Je moet twee of meer keuzes invoeren."
|
||||
choice-n: "Keuze {}"
|
||||
remove: "Deze keuze verwijderen"
|
||||
add: "+ Keuze toevoegen"
|
||||
destroy: "Deze peiling vernietigen"
|
||||
day: "Z"
|
||||
common/views/components/reaction-picker.vue:
|
||||
choose-reaction: "Kies een reactie"
|
||||
common/views/components/emoji-picker.vue:
|
||||
activity: "Activiteit"
|
||||
common/views/components/signin.vue:
|
||||
username: "Gebruikersnaam"
|
||||
password: "Wachtwoord"
|
||||
token: "Sleutel"
|
||||
signing-in: "Bezig met inloggen..."
|
||||
common/views/components/signup.vue:
|
||||
username: "Gebruikersnaam"
|
||||
checking: "Bezig met controleren..."
|
||||
available: "Beschikbaar"
|
||||
unavailable: "Niet beschikbaar"
|
||||
error: "Netwerkfout"
|
||||
invalid-format: "Gebruik alleen letters, cijfers en -."
|
||||
too-short: "Voer minimaal 1 teken in!"
|
||||
too-long: "Voer maximaal 20 tekens in."
|
||||
password: "Wachtwoord"
|
||||
password-placeholder: "Wij raden aan meer dan 8 tekens te gebruiken."
|
||||
weak-password: "Zwak"
|
||||
normal-password: "'t Ken net"
|
||||
strong-password: "Sterk"
|
||||
retype: "Opnieuw invoeren"
|
||||
retype-placeholder: "Wachtwoord bevestigen"
|
||||
password-matched: "Oké"
|
||||
password-not-matched: "Komt niet overeen"
|
||||
recaptcha: "Verifiëren"
|
||||
create: "Account creëren"
|
||||
some-error: "Het creëren van een account is mislukt. Probeer het opnieuw."
|
||||
common/views/components/special-message.vue:
|
||||
new-year: "Gelukkig nieuwjaar!"
|
||||
christmas: "Fijne kerstdagen!"
|
||||
common/views/components/stream-indicator.vue:
|
||||
connecting: "Bezig met verbinden"
|
||||
reconnecting: "Bezig met herverbinden"
|
||||
connected: "Verbonden"
|
||||
common/views/components/notification-settings.vue:
|
||||
title: "Meldingen"
|
||||
common/views/components/github-setting.vue:
|
||||
detail: "Details bekijken..."
|
||||
common/views/components/discord-setting.vue:
|
||||
detail: "Details bekijken..."
|
||||
common/views/components/uploader.vue:
|
||||
waiting: "Bezig met wachten"
|
||||
common/views/components/visibility-chooser.vue:
|
||||
home: "Startpagina"
|
||||
followers: "Volgers"
|
||||
common/views/components/profile-editor.vue:
|
||||
title: "Je profiel"
|
||||
name: "Naam"
|
||||
avatar: "Gebruikersafbeelding"
|
||||
banner: "Omslagfoto"
|
||||
export-targets:
|
||||
following-list: "Volgend"
|
||||
user-lists: "Lijsten"
|
||||
enter-password: "Voer het wachtwoord in"
|
||||
common/views/components/user-list-editor.vue:
|
||||
users: "Gebruiker"
|
||||
common/views/widgets/broadcast.vue:
|
||||
fetching: "Bezig met ophalen"
|
||||
no-broadcasts: "Geen uitzendingen"
|
||||
have-a-nice-day: "Fijne dag!"
|
||||
next: "Volgende"
|
||||
common/views/widgets/photo-stream.vue:
|
||||
title: "Fotostream"
|
||||
no-photos: "Geen foto's"
|
||||
common/views/widgets/posts-monitor.vue:
|
||||
toggle: "Schakelen tussen weergaven"
|
||||
common/views/widgets/server.vue:
|
||||
title: "Serverinformatie"
|
||||
toggle: "Schakelen tussen weergaven"
|
||||
common/views/pages/follow.vue:
|
||||
signed-in-as: "Ingelogd als {}"
|
||||
follow: "Volgend"
|
||||
desktop:
|
||||
banner: "Omslagfoto"
|
||||
desktop/views/components/activity.chart.vue:
|
||||
total: "Zwart ... totaal"
|
||||
notes: "Blauw ... notities"
|
||||
replies: "Rood ... antwoorden"
|
||||
renotes: "Groen ... gedeelde notities"
|
||||
desktop/views/components/activity.vue:
|
||||
title: "Activiteit"
|
||||
toggle: "Schakelen tussen weergaven"
|
||||
desktop/views/components/calendar.vue:
|
||||
prev: "Vorige maand"
|
||||
next: "Volgende maand"
|
||||
go: "Klik om te navigeren"
|
||||
desktop/views/components/choose-file-from-drive-window.vue:
|
||||
upload: "Bestanden uploaden van je computer"
|
||||
cancel: "Annuleren"
|
||||
ok: "Oké"
|
||||
choose-prompt: "Kies een bestand"
|
||||
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||
cancel: "Annuleren"
|
||||
ok: "Oké"
|
||||
choose-prompt: "Kies een map"
|
||||
desktop/views/components/crop-window.vue:
|
||||
skip: "Bijsnijden overslaan"
|
||||
cancel: "Annuleren"
|
||||
ok: "Oké"
|
||||
desktop/views/components/drive-window.vue:
|
||||
used: "gebruikt"
|
||||
desktop/views/components/drive.file.vue:
|
||||
avatar: "Gebruikersafbeelding"
|
||||
banner: "Omslagfoto"
|
||||
contextmenu:
|
||||
rename: "Naam wijzigen"
|
||||
copy-url: "URL kopiëren"
|
||||
download: "Downloaden"
|
||||
else-files: "Overig"
|
||||
set-as-avatar: "Instellen als gebruikersafbeelding"
|
||||
set-as-banner: "Instellen als omslagfoto"
|
||||
open-in-app: "Openen in app"
|
||||
add-app: "App toevoegen"
|
||||
rename-file: "Bestandsnaam wijzigen"
|
||||
input-new-file-name: "Voer een nieuwe naam in"
|
||||
copied: "Gekopieerd"
|
||||
copied-url-to-clipboard: "URL gekopieerd naar klembord"
|
||||
desktop/views/components/drive.folder.vue:
|
||||
unable-to-process: "De operatie kan niet worden voltooid."
|
||||
circular-reference-detected: "De bestemmingsmap is een submap van de map die je wilt verplaatsen."
|
||||
unhandled-error: "Onbekende fout"
|
||||
contextmenu:
|
||||
move-to-this-folder: "Verplaatsen naar deze map"
|
||||
show-in-new-window: "Openen in nieuw venster"
|
||||
rename: "Naam wijzigen"
|
||||
rename-folder: "Mapnaam wijzigen"
|
||||
input-new-folder-name: "Voer een nieuwe naam in"
|
||||
desktop/views/components/drive.vue:
|
||||
search: "Zoeken"
|
||||
empty-draghover: "Welkom!"
|
||||
empty-drive: "Je schijf is leeg"
|
||||
empty-drive-description: "Je kunt ook uploaden door te klikken met de rechtermuisknop en te kiezen voor \"Bestand uploaden\" of door een bestand naar dit venster te slepen."
|
||||
empty-folder: "Deze map is leeg"
|
||||
unable-to-process: "De operatie kan niet worden voltooid."
|
||||
circular-reference-detected: "De bestemmingsmap is een submap van de te verplaatsen map."
|
||||
unhandled-error: "Onbekende fout"
|
||||
url-upload: "Uploaden via URL"
|
||||
url-of-file: "URL van het te uploaden bestand"
|
||||
url-upload-requested: "Uploadverzoek"
|
||||
may-take-time: "Het kan even duren voordat het uploaden voltooid is."
|
||||
create-folder: "Map creëren"
|
||||
folder-name: "Mapnaam"
|
||||
contextmenu:
|
||||
create-folder: "Map creëren"
|
||||
upload: "Bestand uploaden"
|
||||
url-upload: "Uploaden via URL"
|
||||
desktop/views/components/followers-window.vue:
|
||||
followers: "Volgers van {}"
|
||||
desktop/views/components/followers.vue:
|
||||
empty: "Het lijkt erop dat je geen volgers hebt."
|
||||
desktop/views/components/following-window.vue:
|
||||
following: "Volgend {}"
|
||||
desktop/views/components/following.vue:
|
||||
empty: "Je volgt niemand."
|
||||
desktop/views/components/game-window.vue:
|
||||
game: "Othello"
|
||||
desktop/views/components/home.vue:
|
||||
done: "Versturen"
|
||||
add-widget: "Widget toevoegen:"
|
||||
add: "Toevoegen"
|
||||
desktop/views/input-dialog.vue:
|
||||
cancel: "Annuleren"
|
||||
ok: "Oké"
|
||||
desktop/views/components/note-detail.vue:
|
||||
private: "(dit bericht is privé)"
|
||||
location: "Locatie"
|
||||
add-reaction: "Reactie"
|
||||
desktop/views/components/note.vue:
|
||||
reply: "Beantwoorden"
|
||||
add-reaction: "Reactie"
|
||||
private: "(dit bericht is privé)"
|
||||
desktop/views/components/notes.vue:
|
||||
error: "Laden mislukt."
|
||||
retry: "Opnieuw proberen"
|
||||
desktop/views/components/notifications.vue:
|
||||
empty: "Geen meldingen"
|
||||
desktop/views/components/post-form.vue:
|
||||
reply-placeholder: "Deze notitie beantwoorden..."
|
||||
quote-placeholder: "Deze notitie citeren..."
|
||||
submit: "Bericht"
|
||||
reply: "Beantwoorden"
|
||||
posted: "Geplaatst!"
|
||||
replied: "Beantwoord!"
|
||||
reposted: "Hergeplaatst!"
|
||||
note-failed: "Noteren mislukt"
|
||||
reply-failed: "Beantwoorden mislukt"
|
||||
renote-failed: "Renote mislukt"
|
||||
posting: "Bezig met plaatsen"
|
||||
attach-media-from-local: "Media bijvoegen van je computer"
|
||||
attach-media-from-drive: "Media bijvoegen uit je Drive"
|
||||
create-poll: "Peiling creëren"
|
||||
text-remain: "{} resterende tekens"
|
||||
desktop/views/components/post-form-window.vue:
|
||||
note: "Nieuwe notitie"
|
||||
reply: "Beantwoorden"
|
||||
attaches: "{} media bijgevoegd"
|
||||
uploading-media: "Bezig met uploaden van media {}"
|
||||
desktop/views/components/progress-dialog.vue:
|
||||
waiting: "Bezig met wachten"
|
||||
desktop/views/components/renote-form.vue:
|
||||
quote: "Citeren..."
|
||||
cancel: "Annuleren"
|
||||
reposting: "Bezig met herplaatsen..."
|
||||
success: "Hergeplaatst!"
|
||||
failure: "Renote mislukt"
|
||||
desktop/views/components/renote-form-window.vue:
|
||||
title: "Weet je zeker dat je deze notitie wilt renoten?"
|
||||
desktop/views/components/settings.2fa.vue:
|
||||
intro: "Als je verificatie in twee stappen instelt, dan heb je niet alleen een wachtwoord nodig bij het inloggen, maar ook een geregistreerd fysiek apparaat (zoals je smartphone). Dit verhoogt de veiligheid. "
|
||||
detail: "Details bekijken..."
|
||||
url: "https://www.google.com/landing/2step/"
|
||||
caution: "Als je geen toegang meer hebt tot je apparaat, dan kun je niet meer verbinden met Misskey!"
|
||||
register: "Apparaat registreren"
|
||||
already-registered: "Er is al een apparaat geregistreerd"
|
||||
unregister: "Uitschakelen"
|
||||
unregistered: "Authenticatie in twee stappen is uitgeschakeld."
|
||||
enter-password: "Voer het wachtwoord in"
|
||||
authenticator: "Installeer eerst Google Authenticator op je apparaat:"
|
||||
howtoinstall: "Hoe installeer ik dit?"
|
||||
token: "Sleutel"
|
||||
scan: "Scan daarna de QR-code:"
|
||||
done: "Voer de op je apparaat getoonde sleutel in:"
|
||||
submit: "Versturen"
|
||||
success: "Instellen voltooid!"
|
||||
failed: "Instellen mislukt. Zorg ervoor dat de sleutel juist is."
|
||||
info: "Vanaf nu moet je ook de op je apparaat getoonde sleutel tonen bij het inloggen op Misskey."
|
||||
common/views/components/api-settings.vue:
|
||||
enter-password: "Voer het wachtwoord in"
|
||||
console:
|
||||
parameter: "Parameters"
|
||||
send: "Versturen"
|
||||
common/views/components/drive-settings.vue:
|
||||
in-use: "gebruikt"
|
||||
stats: "Statistieken"
|
||||
desktop/views/components/sub-note-content.vue:
|
||||
private: "(dit bericht is privé)"
|
||||
poll: "Peilingen"
|
||||
desktop/views/components/settings.tags.vue:
|
||||
add: "Toevoegen"
|
||||
desktop/views/components/timeline.vue:
|
||||
home: "Startpagina"
|
||||
local: "Lokaal"
|
||||
global: "Algemeen"
|
||||
list: "Lijsten"
|
||||
desktop/views/components/ui.header.account.vue:
|
||||
profile: "Je profiel"
|
||||
lists: "Lijsten"
|
||||
desktop/views/components/ui.header.nav.vue:
|
||||
game: "Othello spelen"
|
||||
desktop/views/components/ui.header.notifications.vue:
|
||||
title: "Meldingen"
|
||||
desktop/views/components/ui.header.post.vue:
|
||||
post: "Nieuw bericht opstellen"
|
||||
desktop/views/components/ui.header.search.vue:
|
||||
placeholder: "Zoeken"
|
||||
desktop/views/components/user-lists-window.vue:
|
||||
title: "Lijsten"
|
||||
desktop/views/components/user-preview.vue:
|
||||
notes: "Berichten"
|
||||
following: "Volgend"
|
||||
followers: "Volgers"
|
||||
desktop/views/components/users-list.vue:
|
||||
all: "Alle"
|
||||
iknow: "die ik ken"
|
||||
fetching: "Bezig met laden…"
|
||||
desktop/views/components/users-list-item.vue:
|
||||
followed: "Volgt jou"
|
||||
desktop/views/components/window.vue:
|
||||
popout: "Uitvouwen"
|
||||
close: "Sluiten"
|
||||
admin/views/index.vue:
|
||||
users: "Gebruiker"
|
||||
admin/views/dashboard.vue:
|
||||
notes: "Bericht"
|
||||
admin/views/abuse.vue:
|
||||
remove-report: "Verwijderen"
|
||||
admin/views/instance.vue:
|
||||
user-recommendation-config: "Aanbevolen gebruikers"
|
||||
admin/views/charts.vue:
|
||||
notes: "Bericht"
|
||||
users: "Gebruiker"
|
||||
admin/views/drive.vue:
|
||||
origin:
|
||||
local: "Lokaal"
|
||||
delete: "Verwijderen"
|
||||
admin/views/users.vue:
|
||||
users:
|
||||
title: "Gebruiker"
|
||||
state:
|
||||
all: "Alle"
|
||||
origin:
|
||||
local: "Lokaal"
|
||||
admin/views/emoji.vue:
|
||||
add-emoji:
|
||||
add: "Toevoegen"
|
||||
emojis:
|
||||
remove: "Verwijderen"
|
||||
admin/views/announcements.vue:
|
||||
remove: "Verwijderen"
|
||||
add: "Toevoegen"
|
||||
admin/views/federation.vue:
|
||||
notes: "Bericht"
|
||||
users: "Gebruiker"
|
||||
followers: "Volgers"
|
||||
status: "Status"
|
||||
states:
|
||||
all: "Alle"
|
||||
desktop/views/pages/welcome.vue:
|
||||
timeline: "Tijdlijn"
|
||||
desktop/views/pages/note.vue:
|
||||
prev: "Vorige notitie"
|
||||
next: "Volgende notitie"
|
||||
desktop/views/pages/selectdrive.vue:
|
||||
title: "Bestand(en) kiezen"
|
||||
ok: "Oké"
|
||||
cancel: "Annuleren"
|
||||
upload: "Bestanden uploaden van je PC"
|
||||
desktop/views/pages/user-list.users.vue:
|
||||
users: "Gebruiker"
|
||||
add-user: "Gebruiker toevoegen"
|
||||
username: "Gebruikersnaam"
|
||||
desktop/views/pages/user/user.followers-you-know.vue:
|
||||
title: "Volgers die je kent"
|
||||
loading: "Bezig met laden"
|
||||
no-users: "Geen gebruikers"
|
||||
desktop/views/pages/user/user.friends.vue:
|
||||
title: "Frequent beantwoord"
|
||||
loading: "Bezig met laden"
|
||||
no-users: "Geen gebruikers"
|
||||
desktop/views/pages/user/user.photos.vue:
|
||||
title: "Foto's"
|
||||
loading: "Bezig met laden"
|
||||
no-photos: "Geen foto's"
|
||||
desktop/views/pages/user/user.header.vue:
|
||||
posts: "Bericht"
|
||||
following: "Volgend"
|
||||
followers: "Volgers"
|
||||
month: "M"
|
||||
day: "Z"
|
||||
follows-you: "Volgt jou"
|
||||
desktop/views/pages/user/user.timeline.vue:
|
||||
default: "Berichten"
|
||||
with-replies: "Berichten en antwoorden"
|
||||
with-media: "Media"
|
||||
desktop/views/widgets/notifications.vue:
|
||||
title: "Meldingen"
|
||||
desktop/views/widgets/polls.vue:
|
||||
title: "Peilingen"
|
||||
refresh: "Anderen tonen"
|
||||
nothing: "Niks"
|
||||
desktop/views/widgets/post-form.vue:
|
||||
title: "Bericht"
|
||||
note: "Bericht"
|
||||
desktop/views/widgets/profile.vue:
|
||||
update-banner: "Klik om je omslagfoto te wijzigen"
|
||||
update-avatar: "Klik om je gebruikersafbeelding te wijzigen"
|
||||
desktop/views/widgets/trends.vue:
|
||||
title: "Populair"
|
||||
refresh: "Anderen tonen"
|
||||
nothing: "Niks"
|
||||
desktop/views/widgets/users.vue:
|
||||
title: "Aanbevolen gebruikers"
|
||||
refresh: "Anderen tonen"
|
||||
no-one: "Niemand"
|
||||
mobile/views/components/drive.vue:
|
||||
used: "gebruikt"
|
||||
folder-count: "Map(pen)"
|
||||
count-separator: ", "
|
||||
file-count: "Bestand(en)"
|
||||
nothing-in-drive: "Niks"
|
||||
folder-is-empty: "Deze map is leeg"
|
||||
folder-name: "Mapnaam"
|
||||
url-prompt: "URL van het te uploaden bestand"
|
||||
mobile/views/components/drive-file-chooser.vue:
|
||||
select-file: "Kies een bestand"
|
||||
mobile/views/components/drive-folder-chooser.vue:
|
||||
select-folder: "Kies een map"
|
||||
mobile/views/components/drive.file-detail.vue:
|
||||
download: "Downloaden"
|
||||
rename: "Naam wijzigen"
|
||||
move: "Verplaatsen"
|
||||
hash: "Hash (md5)"
|
||||
common/views/components/follow-button.vue:
|
||||
follow: "Volgend"
|
||||
mobile/views/components/note.vue:
|
||||
private: "(dit bericht is privé)"
|
||||
location: "Locatie"
|
||||
mobile/views/components/note-detail.vue:
|
||||
reply: "Beantwoorden"
|
||||
reaction: "Reactie"
|
||||
private: "(dit bericht is privé)"
|
||||
location: "Locatie"
|
||||
mobile/views/components/notifications.vue:
|
||||
empty: "Geen meldingen"
|
||||
mobile/views/components/post-form.vue:
|
||||
add-visible-user: "Gebruiker toevoegen"
|
||||
submit: "Plaatsen"
|
||||
reply: "Antwoord"
|
||||
reply-placeholder: "Deze notitie beantwoorden..."
|
||||
mobile/views/components/sub-note-content.vue:
|
||||
private: "(dit bericht is privé)"
|
||||
media-count: "{} media"
|
||||
poll: "Peiling"
|
||||
mobile/views/components/ui.nav.vue:
|
||||
timeline: "Tijdlijn"
|
||||
notifications: "Meldingen"
|
||||
search: "Zoeken"
|
||||
user-lists: "Lijsten"
|
||||
game: "Othello spelen"
|
||||
about: "Over Misskey"
|
||||
mobile/views/pages/drive.vue:
|
||||
contextmenu:
|
||||
upload: "Bestand uploaden"
|
||||
create-folder: "Map creëren"
|
||||
mobile/views/pages/user-lists.vue:
|
||||
title: "Lijsten"
|
||||
mobile/views/pages/home.vue:
|
||||
home: "Startpagina"
|
||||
local: "Lokaal"
|
||||
global: "Algemeen"
|
||||
mobile/views/pages/widgets.vue:
|
||||
add-widget: "Toevoegen"
|
||||
mobile/views/pages/widgets/activity.vue:
|
||||
activity: "Activiteit"
|
||||
mobile/views/pages/note.vue:
|
||||
title: "Bericht"
|
||||
prev: "Vorige notitie"
|
||||
next: "Volgende notitie"
|
||||
mobile/views/pages/games/reversi.vue:
|
||||
reversi: "Othello"
|
||||
mobile/views/pages/search.vue:
|
||||
search: "Zoeken"
|
||||
mobile/views/pages/selectdrive.vue:
|
||||
select-file: "Kies een bestand"
|
||||
mobile/views/pages/settings.vue:
|
||||
signed-in-as: "Ingelogd als {}"
|
||||
mobile/views/pages/user.vue:
|
||||
follows-you: "Volgt jou"
|
||||
following: "Volgend"
|
||||
followers: "Volgers"
|
||||
notes: "Berichten"
|
||||
overview: "Overzicht"
|
||||
timeline: "Tijdlijn"
|
||||
media: "Media"
|
||||
mobile/views/pages/user/home.vue:
|
||||
recent-notes: "Recente notities"
|
||||
images: "Afbeeldingen"
|
||||
activity: "Activiteit"
|
||||
keywords: "Sleutelwoorden"
|
||||
domains: "Domeinnamen"
|
||||
frequently-replied-users: "Frequent beantwoord"
|
||||
followers-you-know: "Volgers die je kent"
|
||||
last-used-at: "Laatst actief"
|
||||
mobile/views/pages/user/home.photos.vue:
|
||||
no-photos: "Geen foto's"
|
||||
deck:
|
||||
home: "Startpagina"
|
||||
local: "Lokaal"
|
||||
global: "Algemeen"
|
||||
notifications: "Meldingen"
|
||||
list: "Lijsten"
|
||||
rename: "Naam wijzigen"
|
||||
deck/deck.user-column.vue:
|
||||
follows-you: "Volgt jou"
|
||||
posts: "Bericht"
|
||||
following: "Volgend"
|
||||
followers: "Volgers"
|
||||
images: "Afbeeldingen"
|
||||
activity: "Activiteit"
|
||||
timeline: "Tijdlijn"
|
||||
docs:
|
||||
edit-this-page-on-github: "Heb je een fout ontdekt of wil je bijdragen aan de documentatie? "
|
||||
edit-this-page-on-github-link: "Bewerk deze pagina op GitHub!"
|
||||
api:
|
||||
entities:
|
||||
properties: "Eigenschappen"
|
||||
endpoints:
|
||||
params: "Parameters"
|
||||
res: "Antwoord"
|
||||
props:
|
||||
name: "Naam"
|
||||
type: "Type"
|
||||
description: "Omschrijving"
|
||||
_lang_: "Nederlands"
|
||||
|
@ -1,502 +1,2 @@
|
||||
---
|
||||
meta:
|
||||
lang: "Norsk Bokmål"
|
||||
common:
|
||||
misskey: "En ⭐ av fediverse"
|
||||
about-title: "En ⭐ av fediverse"
|
||||
about: "Takk for at du fant Misskey. Misskey er en <b>desentralisert mikroblogging platform</b> født på jorden. Siden den eksisterer sammen med Fediverset (Et univers hvor forskjellige sosiale media-plattformer blir organisert), så blir den gjensidig tilknyttet med andre sosiale media-plattformer. Hvorfor ikke ta en pause fra kjas og mas fra storbyen og hoppe inn i en ny type internett?"
|
||||
intro:
|
||||
title: "Hva er Misskey?"
|
||||
features: "Funksjoner"
|
||||
rich-contents: "Innlegg"
|
||||
drive: "Disk"
|
||||
close: "Lukk"
|
||||
got-it: "Skjønner!"
|
||||
notification:
|
||||
file-uploaded: "Filen ble lastet opp!"
|
||||
message-from: "Melding fra {}:"
|
||||
reversi-invited: "Invitert til et spill"
|
||||
reversi-invited-by: "Invitert av {}:"
|
||||
notified-by: "Invitert av {}:"
|
||||
reply-from: "Svar fra {}:"
|
||||
quoted-by: "Sitert av {}:"
|
||||
time:
|
||||
unknown: "ukjent"
|
||||
future: "fremtidig"
|
||||
just_now: "akkurat nå"
|
||||
seconds_ago: "{} sekunder siden"
|
||||
minutes_ago: "{} minutter siden"
|
||||
hours_ago: "{} t siden"
|
||||
days_ago: "{} d siden"
|
||||
weeks_ago: "{} uke(r) siden"
|
||||
months_ago: "{} måned(er) siden"
|
||||
years_ago: "{} år siden"
|
||||
month-and-day: "{day}/{month}"
|
||||
trash: "Papirkurv"
|
||||
drive: "Disk"
|
||||
home: "Hjem"
|
||||
followers: "Følgere"
|
||||
favorites: "Merket som favoritt"
|
||||
permissions:
|
||||
"write:votes": "Stem"
|
||||
weekday-short:
|
||||
sunday: "S"
|
||||
monday: "M"
|
||||
tuesday: "T"
|
||||
wednesday: "O"
|
||||
thursday: "T"
|
||||
friday: "F"
|
||||
saturday: "L"
|
||||
weekday:
|
||||
sunday: "Søndag"
|
||||
monday: "Mandag"
|
||||
tuesday: "Tirsdag"
|
||||
wednesday: "Onsdag"
|
||||
thursday: "Torsdag"
|
||||
friday: "Fredag"
|
||||
saturday: "Lørdag"
|
||||
reactions:
|
||||
like: "Lik"
|
||||
love: "Elsk"
|
||||
laugh: "Le"
|
||||
hmm: "Hmm…?"
|
||||
surprise: "Wow"
|
||||
congrats: "Gratulerer!"
|
||||
angry: "Sint"
|
||||
confused: "Forvirret"
|
||||
rip: "RIP"
|
||||
pudding: "Pudding"
|
||||
note-visibility:
|
||||
public: "Offentlig"
|
||||
home: "Hjem"
|
||||
followers: "Følgere"
|
||||
specified: "Direkte"
|
||||
_settings:
|
||||
notification: "Notifikasjon"
|
||||
password: "Passord"
|
||||
search: "Søk"
|
||||
delete: "Slett"
|
||||
loading: "Laster inn..."
|
||||
update-available: "En ny versjon av Misskey er nå tilgjengelig ({newer}, nåværende versjon er {current}). Last inn siden igjen for at oppdateringen skal tre i kraft."
|
||||
my-token-regenerated: "Ditt synbol har blitt generert. Du vil nå bli utlogget."
|
||||
reversi:
|
||||
black: "Sort"
|
||||
white: "Hvit"
|
||||
total: "Totalt"
|
||||
widgets:
|
||||
calendar: "Kalender"
|
||||
memo: "Notis"
|
||||
trends: "Populært nå"
|
||||
version: "Versjon"
|
||||
notifications: "Notifikasjon"
|
||||
tips: "Tips"
|
||||
you: "Du"
|
||||
auth/views/form.vue:
|
||||
cancel: "Avbryt"
|
||||
auth/views/index.vue:
|
||||
loading: "Laster inn..."
|
||||
common/views/components/games/reversi/reversi.vue:
|
||||
matching:
|
||||
cancel: "Avbryt"
|
||||
common/views/components/games/reversi/reversi.game.vue:
|
||||
surrender: "Gi opp"
|
||||
common/views/components/games/reversi/reversi.index.vue:
|
||||
invite: "Inviter"
|
||||
rule: "Slik spiller du"
|
||||
mode-invite: "Inviter"
|
||||
game-state:
|
||||
ended: "Ferdig"
|
||||
playing: "Pågår"
|
||||
common/views/components/games/reversi/reversi.room.vue:
|
||||
random: "Tilfeldig"
|
||||
black-is: "Sort er {}"
|
||||
rules: "Regler"
|
||||
waiting-for-both: "Venter på deg"
|
||||
cancel: "Avbryt"
|
||||
ready: "Klar"
|
||||
cancel-ready: "Avbryt \"Klar\""
|
||||
common/views/components/connect-failed.vue:
|
||||
title: "Kunne ikke koble til tjeneren."
|
||||
description: "Det er enten et problem med internettilknytningen din, eller så har tjeneren blitt tatt ned for vedlikehold. {Prøv igjen} senere."
|
||||
common/views/components/media-banner.vue:
|
||||
sensitive: "Sensitivt innhold"
|
||||
common/views/components/theme.vue:
|
||||
text-color: "Tekstfarge"
|
||||
base-theme-dark: "Mørk"
|
||||
theme-name: "Tema navn"
|
||||
author: "Forfatter"
|
||||
desc: "Beskrivelse"
|
||||
common/views/components/cw-button.vue:
|
||||
hide: "Skjul"
|
||||
common/views/components/messaging.vue:
|
||||
you: "Du"
|
||||
common/views/components/messaging-room.form.vue:
|
||||
send: "Send"
|
||||
common/views/components/messaging-room.message.vue:
|
||||
is-read: "Lest"
|
||||
common/views/components/nav.vue:
|
||||
stats: "Statistikk"
|
||||
status: "Status"
|
||||
wiki: "Wiki"
|
||||
donors: "Donatorer"
|
||||
repository: "Kodelager"
|
||||
develop: "Utviklere"
|
||||
common/views/components/note-menu.vue:
|
||||
detail: "Detaljer"
|
||||
favorite: "Merket som favoritt"
|
||||
pin: "Fest til profilen din"
|
||||
delete: "Slett"
|
||||
common/views/components/poll.vue:
|
||||
vote-count: "{} stemmer"
|
||||
vote: "Stem"
|
||||
show-result: "Vis resultater"
|
||||
voted: "Stemt"
|
||||
common/views/components/poll-editor.vue:
|
||||
choice-n: "Valg {}"
|
||||
day: "S"
|
||||
common/views/components/signin.vue:
|
||||
username: "Brukernavn"
|
||||
password: "Passord"
|
||||
token: "Token"
|
||||
or: "Eller"
|
||||
common/views/components/signup.vue:
|
||||
username: "Brukernavn"
|
||||
error: "Nettverksfeil"
|
||||
password: "Passord"
|
||||
retype: "Gjenta"
|
||||
recaptcha: "Captcha"
|
||||
common/views/components/stream-indicator.vue:
|
||||
connecting: "Tilkobler"
|
||||
reconnecting: "Kobler til på nytt"
|
||||
connected: "Tilkoblet"
|
||||
common/views/components/notification-settings.vue:
|
||||
title: "Notifikasjon"
|
||||
common/views/components/github-setting.vue:
|
||||
detail: "Detaljer..."
|
||||
common/views/components/discord-setting.vue:
|
||||
detail: "Detaljer..."
|
||||
common/views/components/uploader.vue:
|
||||
waiting: "Venter"
|
||||
common/views/components/visibility-chooser.vue:
|
||||
public: "Offentlig"
|
||||
home: "Hjem"
|
||||
followers: "Følgere"
|
||||
specified: "Direkte"
|
||||
common/views/components/profile-editor.vue:
|
||||
name: "Navn"
|
||||
avatar: "Avatar"
|
||||
banner: "Banner"
|
||||
save: "Lagre"
|
||||
export-targets:
|
||||
following-list: "Følger"
|
||||
user-lists: "Lister"
|
||||
common/views/components/user-list-editor.vue:
|
||||
users: "Bruker"
|
||||
common/views/components/user-lists.vue:
|
||||
list-name: "Liste navn"
|
||||
common/views/widgets/broadcast.vue:
|
||||
fetching: "Henter"
|
||||
next: "Neste"
|
||||
common/views/widgets/calendar.vue:
|
||||
year: "År {}"
|
||||
month: "Måned {}"
|
||||
day: "Dag {}"
|
||||
today: "I dag:"
|
||||
this-month: "Denne måneden:"
|
||||
this-year: "Dette året:"
|
||||
common/views/widgets/memo.vue:
|
||||
title: "Notis"
|
||||
save: "Lagre"
|
||||
common/views/pages/follow.vue:
|
||||
follow: "Følg"
|
||||
desktop:
|
||||
banner: "Banner"
|
||||
avatar: "Avatar"
|
||||
desktop/views/components/calendar.vue:
|
||||
prev: "Forrige måned"
|
||||
next: "Neste måned"
|
||||
desktop/views/components/choose-file-from-drive-window.vue:
|
||||
cancel: "Avbryt"
|
||||
ok: "Ok"
|
||||
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||
cancel: "Avbryt"
|
||||
ok: "Ok"
|
||||
desktop/views/components/crop-window.vue:
|
||||
cancel: "Avbryt"
|
||||
ok: "Ok"
|
||||
desktop/views/components/drive-window.vue:
|
||||
used: "brukt"
|
||||
desktop/views/components/drive.file.vue:
|
||||
avatar: "Avatar"
|
||||
banner: "Banner"
|
||||
nsfw: "NSFW"
|
||||
contextmenu:
|
||||
rename: "Endre navn"
|
||||
copied: "Kopiert"
|
||||
desktop/views/components/drive.folder.vue:
|
||||
contextmenu:
|
||||
rename: "Endre navn"
|
||||
desktop/views/components/drive.vue:
|
||||
search: "Søk"
|
||||
desktop/views/components/media-video.vue:
|
||||
sensitive: "Innholdet er NSFW"
|
||||
desktop/views/components/game-window.vue:
|
||||
game: "Reversi"
|
||||
desktop/views/components/home.vue:
|
||||
done: "Fullført"
|
||||
add: "Legg til"
|
||||
desktop/views/input-dialog.vue:
|
||||
cancel: "Avbryt"
|
||||
ok: "Ok"
|
||||
desktop/views/components/note-detail.vue:
|
||||
location: "Lokasjon"
|
||||
desktop/views/components/note.vue:
|
||||
reply: "Svar"
|
||||
detail: "Detaljer"
|
||||
desktop/views/components/notes.vue:
|
||||
retry: "Prøv på nytt"
|
||||
desktop/views/components/post-form.vue:
|
||||
submit: "Send"
|
||||
reply: "Svar"
|
||||
posting: "Publiserer"
|
||||
recent-tags: "Nylig"
|
||||
visibility: "Synlighet"
|
||||
error: "Feil"
|
||||
desktop/views/components/post-form-window.vue:
|
||||
note: "Nytt innlegg"
|
||||
reply: "Svar"
|
||||
desktop/views/components/progress-dialog.vue:
|
||||
waiting: "Venter"
|
||||
desktop/views/components/renote-form.vue:
|
||||
cancel: "Avbryt"
|
||||
desktop/views/components/settings.2fa.vue:
|
||||
detail: "Detaljer..."
|
||||
unregister: "Avregistrer"
|
||||
token: "Token"
|
||||
submit: "Send"
|
||||
common/views/components/media-image.vue:
|
||||
sensitive: "Innholdet er NSFW"
|
||||
common/views/components/api-settings.vue:
|
||||
console:
|
||||
parameter: "Parametere"
|
||||
send: "Send"
|
||||
common/views/components/drive-settings.vue:
|
||||
in-use: "brukt"
|
||||
stats: "Statistikk"
|
||||
common/views/components/mute-and-block.vue:
|
||||
save: "Lagre"
|
||||
desktop/views/components/settings.tags.vue:
|
||||
add: "Legg til"
|
||||
save: "Lagre"
|
||||
desktop/views/components/timeline.vue:
|
||||
home: "Hjem"
|
||||
local: "Lokalt"
|
||||
global: "Globalt"
|
||||
list: "Lister"
|
||||
list-name: "Liste navn"
|
||||
desktop/views/components/ui.header.vue:
|
||||
adjective: "-san"
|
||||
desktop/views/components/ui.header.account.vue:
|
||||
lists: "Lister"
|
||||
admin: "Admin"
|
||||
desktop/views/components/ui.header.nav.vue:
|
||||
game: "Spill"
|
||||
desktop/views/components/ui.header.notifications.vue:
|
||||
title: "Notifikasjon"
|
||||
desktop/views/components/ui.header.post.vue:
|
||||
post: "Skriv nytt innlegg"
|
||||
desktop/views/components/ui.header.search.vue:
|
||||
placeholder: "Søk"
|
||||
desktop/views/components/received-follow-requests-window.vue:
|
||||
accept: "Godta"
|
||||
reject: "Avslå"
|
||||
desktop/views/components/user-lists-window.vue:
|
||||
title: "Brukerlister"
|
||||
desktop/views/components/user-preview.vue:
|
||||
notes: "Innlegg"
|
||||
following: "Følger"
|
||||
followers: "Følgere"
|
||||
desktop/views/components/users-list.vue:
|
||||
all: "Alle"
|
||||
iknow: "Du kjenner"
|
||||
desktop/views/components/window.vue:
|
||||
close: "Lukk"
|
||||
admin/views/index.vue:
|
||||
users: "Bruker"
|
||||
announcements: "Kunngjøringer"
|
||||
admin/views/dashboard.vue:
|
||||
notes: "Innlegg"
|
||||
drive: "Disk"
|
||||
admin/views/abuse.vue:
|
||||
details: "Detaljer"
|
||||
remove-report: "Slett"
|
||||
admin/views/instance.vue:
|
||||
invite: "Inviter"
|
||||
save: "Lagre"
|
||||
admin/views/charts.vue:
|
||||
notes: "Innlegg"
|
||||
users: "Bruker"
|
||||
drive: "Disk"
|
||||
admin/views/drive.vue:
|
||||
origin:
|
||||
local: "Lokalt"
|
||||
delete: "Slett"
|
||||
admin/views/users.vue:
|
||||
users:
|
||||
title: "Bruker"
|
||||
state:
|
||||
all: "Alle"
|
||||
origin:
|
||||
local: "Lokalt"
|
||||
admin/views/emoji.vue:
|
||||
add-emoji:
|
||||
add: "Legg til"
|
||||
emojis:
|
||||
remove: "Slett"
|
||||
admin/views/announcements.vue:
|
||||
announcements: "Kunngjøringer"
|
||||
save: "Lagre"
|
||||
remove: "Slett"
|
||||
add: "Legg til"
|
||||
admin/views/federation.vue:
|
||||
notes: "Innlegg"
|
||||
users: "Bruker"
|
||||
followers: "Følgere"
|
||||
status: "Status"
|
||||
states:
|
||||
all: "Alle"
|
||||
desktop/views/pages/welcome.vue:
|
||||
announcements: "Kunngjøringer"
|
||||
info: "Informasjon"
|
||||
desktop/views/pages/note.vue:
|
||||
prev: "Forrige innlegg"
|
||||
next: "Neste innlegg"
|
||||
desktop/views/pages/selectdrive.vue:
|
||||
ok: "Ok"
|
||||
cancel: "Avbryt"
|
||||
desktop/views/pages/user-list.users.vue:
|
||||
users: "Bruker"
|
||||
username: "Brukernavn"
|
||||
desktop/views/pages/user/user.followers-you-know.vue:
|
||||
loading: "Laster inn"
|
||||
desktop/views/pages/user/user.friends.vue:
|
||||
loading: "Laster inn"
|
||||
desktop/views/pages/user/user.photos.vue:
|
||||
title: "Bilder"
|
||||
loading: "Laster inn"
|
||||
desktop/views/pages/user/user.header.vue:
|
||||
posts: "Innlegg"
|
||||
following: "Følger"
|
||||
followers: "Følgere"
|
||||
month: "M"
|
||||
day: "S"
|
||||
desktop/views/pages/user/user.timeline.vue:
|
||||
default: "Innlegg"
|
||||
with-replies: "Innlegg og svar"
|
||||
with-media: "Media"
|
||||
desktop/views/widgets/notifications.vue:
|
||||
title: "Notifikasjon"
|
||||
desktop/views/widgets/polls.vue:
|
||||
refresh: "Oppdater"
|
||||
desktop/views/widgets/post-form.vue:
|
||||
title: "Innlegg"
|
||||
note: "Innlegg"
|
||||
desktop/views/widgets/trends.vue:
|
||||
title: "Populært nå"
|
||||
refresh: "Oppdater"
|
||||
desktop/views/widgets/users.vue:
|
||||
refresh: "Oppdater"
|
||||
no-one: "Ingen"
|
||||
mobile/views/components/drive.vue:
|
||||
used: "brukt"
|
||||
folder-count: "Mappe(r)"
|
||||
count-separator: ","
|
||||
file-count: "Fil(er)"
|
||||
mobile/views/components/drive.file.vue:
|
||||
nsfw: "NSFW"
|
||||
mobile/views/components/drive.file-detail.vue:
|
||||
rename: "Endre navn"
|
||||
move: "Flytt"
|
||||
exif: "EXIF"
|
||||
nsfw: "NSFW"
|
||||
mobile/views/components/media-video.vue:
|
||||
sensitive: "Innholdet er NSFW"
|
||||
common/views/components/follow-button.vue:
|
||||
follow: "Følger"
|
||||
mobile/views/components/note.vue:
|
||||
location: "Lokasjon"
|
||||
mobile/views/components/note-detail.vue:
|
||||
reply: "Svar"
|
||||
location: "Lokasjon"
|
||||
mobile/views/components/note-preview.vue:
|
||||
admin: "admin"
|
||||
bot: "bot"
|
||||
cat: "katt"
|
||||
mobile/views/components/note-sub.vue:
|
||||
admin: "admin"
|
||||
bot: "bot"
|
||||
cat: "katt"
|
||||
mobile/views/components/post-form.vue:
|
||||
submit: "Send"
|
||||
reply: "Svar"
|
||||
error: "Feil"
|
||||
mobile/views/components/ui.header.vue:
|
||||
adjective: "Mr."
|
||||
mobile/views/components/ui.nav.vue:
|
||||
notifications: "Notifikasjon"
|
||||
search: "Søk"
|
||||
user-lists: "Lister"
|
||||
game: "Spill"
|
||||
admin: "Admin"
|
||||
mobile/views/pages/user-lists.vue:
|
||||
title: "Lister"
|
||||
mobile/views/pages/home.vue:
|
||||
home: "Hjem"
|
||||
local: "Lokalt"
|
||||
global: "Globalt"
|
||||
mobile/views/pages/widgets.vue:
|
||||
add-widget: "Legg til"
|
||||
mobile/views/pages/received-follow-requests.vue:
|
||||
accept: "Godta"
|
||||
reject: "Avslå"
|
||||
mobile/views/pages/note.vue:
|
||||
title: "Innlegg"
|
||||
prev: "Forrige innlegg"
|
||||
next: "Neste innlegg"
|
||||
mobile/views/pages/games/reversi.vue:
|
||||
reversi: "Reversi"
|
||||
mobile/views/pages/search.vue:
|
||||
search: "Søk"
|
||||
mobile/views/pages/user.vue:
|
||||
following: "Følger"
|
||||
followers: "Følgere"
|
||||
notes: "Innlegg"
|
||||
overview: "Oversikt"
|
||||
media: "Media"
|
||||
mobile/views/pages/user/home.vue:
|
||||
recent-notes: "Nylige innlegg"
|
||||
images: "Bilder"
|
||||
keywords: "Nøkkelord"
|
||||
deck:
|
||||
home: "Hjem"
|
||||
local: "Lokalt"
|
||||
global: "Globalt"
|
||||
notifications: "Notifikasjon"
|
||||
list: "Lister"
|
||||
rename: "Endre navn"
|
||||
deck/deck.user-column.vue:
|
||||
posts: "Innlegg"
|
||||
following: "Følger"
|
||||
followers: "Følgere"
|
||||
images: "Bilder"
|
||||
docs:
|
||||
api:
|
||||
entities:
|
||||
properties: "Egenskaper"
|
||||
endpoints:
|
||||
params: "Parametere"
|
||||
res: "Respons"
|
||||
props:
|
||||
name: "Navn"
|
||||
type: "Type"
|
||||
description: "Beskrivelse"
|
||||
_lang_: "Norsk Bokmål"
|
||||
|
1234
locales/pl-PL.yml
@ -1,291 +1,2 @@
|
||||
---
|
||||
meta:
|
||||
lang: "Português"
|
||||
common:
|
||||
misskey: "Uma ⭐ do fediverso"
|
||||
about-title: "Uma ⭐ do fediverso."
|
||||
about: "Obrigado por encontrar Misskey. Uma <b>plataforma descentralizada de microblog</b> nascida na Terra. Já que ela existe no Fediverso (um universo onde várias plataformas de mídia social são organizadas), ela é ligada com outras plataformas.Por que você não tira uma folga do agito e confusão da cidade, e mergulha em uma nova internet?"
|
||||
intro:
|
||||
title: "O que é Misskey?"
|
||||
about: "Misskey é um <b>serviço de microblog descentralizado</b>. Personalização sofisticada da interface, variedade de reações a posts, armazenamento de arquivos grátis com gerenciamento integrado e outras funções avançadas estão disponíveis. Um sistema em rede chamado \"Fediverso\" permite que nos comuniquemos com usuários em outras redes sociais. Se você postar algo, por exemplo, seu post não será mandado apenas para o Misskey, mas também para o Mastodon. Apenas imagine que o planeta está enviando ondas de rádio para outros planetas para se comunicar."
|
||||
features: "Recursos"
|
||||
rich-contents: "Post"
|
||||
rich-contents-desc: "Apenas poste suas ideias, temas do momento e qualquer coisa que você queira compartilhar. Você pode querer decorar suas palavras, anexar suas imagens favoritas, enviar arquivos, inclusive vídeos ou criar uma enquete. Essas são as coisas que você pode fazer em Misskey."
|
||||
reaction: "Reações"
|
||||
adblock:
|
||||
detected: "Por favor, desative o bloqueador de anúncios."
|
||||
warning: "Alguns recursos podem não estar disponíveis ou apresentar mal funcionamento se o bloqueio de anúncios estiver ativado. <strong>Misskey não está usando anúncios</strong>"
|
||||
application-authorization: "Aplicativos autorizados"
|
||||
close: "Fechar"
|
||||
do-not-copy-paste: "Por favor, não digite ou copie o código aqui. A conta pode ser comprometida."
|
||||
got-it: "Entendi!"
|
||||
customization-tips:
|
||||
title: "Dicas de personalização"
|
||||
gotit: "Entendi!"
|
||||
notification:
|
||||
file-uploaded: "Arquivo enviado!"
|
||||
message-from: "Mensagem de {}:"
|
||||
reversi-invited: "Convidado a jogar"
|
||||
reversi-invited-by: "Convidado por {}:"
|
||||
notified-by: "Notificado por {}:"
|
||||
reply-from: "Resposta de {}:"
|
||||
quoted-by: "Citado por {}:"
|
||||
time:
|
||||
unknown: "Desconhecido"
|
||||
future: "futuro"
|
||||
just_now: "agora"
|
||||
seconds_ago: "{} sec atrás"
|
||||
minutes_ago: "{} min atrás"
|
||||
hours_ago: "{} h atrás"
|
||||
days_ago: "{} d atrás"
|
||||
weeks_ago: "{} sem atrás"
|
||||
months_ago: "{} m atrás"
|
||||
years_ago: "{} ano(s) atrás"
|
||||
month-and-day: "{day}/{month}"
|
||||
trash: "Lixo"
|
||||
timeline: "Linha do tempo"
|
||||
followers: "Seguidores"
|
||||
weekday-short:
|
||||
sunday: "Dom"
|
||||
monday: "Seg"
|
||||
tuesday: "Ter"
|
||||
wednesday: "Qua"
|
||||
thursday: "Qui"
|
||||
friday: "Sex"
|
||||
saturday: "Seb"
|
||||
weekday:
|
||||
sunday: "domingo"
|
||||
monday: "segunda"
|
||||
tuesday: "terça"
|
||||
wednesday: "quarta"
|
||||
thursday: "quinta"
|
||||
friday: "sexta"
|
||||
saturday: "sábado"
|
||||
reactions:
|
||||
like: "Curtir"
|
||||
love: "Amei"
|
||||
laugh: "Riso"
|
||||
hmm: "Hmm...?"
|
||||
surprise: "Uau"
|
||||
congrats: "Parabéns!"
|
||||
angry: "Raiva"
|
||||
confused: "Confuso"
|
||||
rip: "RIP"
|
||||
pudding: "Pudim"
|
||||
note-visibility:
|
||||
followers: "Seguidores"
|
||||
note-placeholders:
|
||||
a: "O que está fazendo?"
|
||||
b: "O que está acontecendo?"
|
||||
c: "No que está pensando?"
|
||||
d: "Quer postar algo?"
|
||||
e: "Escreva aqui"
|
||||
f: "Esperando você escrever."
|
||||
_settings:
|
||||
timeline: "Linha do tempo"
|
||||
search: "Buscar"
|
||||
delete: "Apagar"
|
||||
loading: "Carregando"
|
||||
update-available-title: "Atualização disponível"
|
||||
update-available: "Uma nova versão de Misskey está disponível ({newer}). A versão atual é {current}. Recarregue a página para atualizar."
|
||||
my-token-regenerated: "Seu token foi recriado, portanto você foi deslogado."
|
||||
verified-user: "Conta verificada"
|
||||
reversi:
|
||||
drawn: "Empatado"
|
||||
my-turn: "Seu turno"
|
||||
opponent-turn: "Turno do oponente"
|
||||
black: "Pretas"
|
||||
white: "Brancas"
|
||||
total: "Total"
|
||||
widgets:
|
||||
analog-clock: "Relógio analógico"
|
||||
profile: "Perfil"
|
||||
calendar: "Calendário"
|
||||
timemachine: "Calendário (máquina do tempo)"
|
||||
activity: "Atividade"
|
||||
rss: "Leitor de RSS"
|
||||
memo: "Nota adesiva"
|
||||
trends: "Tendências"
|
||||
posts-monitor: "Gráfico de publicações"
|
||||
version: "Versão"
|
||||
notifications: "Notificações"
|
||||
users: "Usuário sugeridos"
|
||||
polls: "Enquetes"
|
||||
post-form: "Formulário de publicação"
|
||||
server: "Informações do servidor"
|
||||
nav: "Navegação"
|
||||
tips: "Dicas"
|
||||
hashtags: "Hashtags"
|
||||
you: "Você"
|
||||
auth/views/form.vue:
|
||||
permission-ask: "Este aplicativo precisa das seguintes permissões:"
|
||||
cancel: "Cancelar"
|
||||
accept: "Permitir acesso"
|
||||
auth/views/index.vue:
|
||||
loading: "Carregando"
|
||||
already-authorized: "Este aplicativo já foi autorizado"
|
||||
allowed: "Aplicativos com acesso autorizado"
|
||||
callback-url: "Voltando ao aplicativo"
|
||||
please-go-back: "Por favor, volte ao aplicativo."
|
||||
error: "A sessão não existe."
|
||||
sign-in: "Por favor, entre."
|
||||
common/views/pages/explore.vue:
|
||||
verified-users: "Conta verificada"
|
||||
common/views/components/games/reversi/reversi.index.vue:
|
||||
invite: "Convidar"
|
||||
rule: "Como jogar"
|
||||
mode-invite: "Convidar"
|
||||
mode-invite-desc: "Convidar um usuário para jogar"
|
||||
invitations: "Você foi convidado!"
|
||||
my-games: "Meu jogo"
|
||||
all-games: "Todos os jogos"
|
||||
enter-username: "Digite o nome de usuário."
|
||||
game-state:
|
||||
ended: "Terminado"
|
||||
common/views/components/games/reversi/reversi.room.vue:
|
||||
rules: "Regras"
|
||||
cancel: "Cancelar"
|
||||
common/views/components/connect-failed.troubleshooter.vue:
|
||||
flush: "Limpar o cache"
|
||||
common/views/components/theme.vue:
|
||||
desc: "Descrição"
|
||||
common/views/components/cw-button.vue:
|
||||
poll: "Enquetes"
|
||||
common/views/components/messaging.vue:
|
||||
you: "Você"
|
||||
common/views/components/note-menu.vue:
|
||||
delete: "Apagar"
|
||||
common/views/components/poll-editor.vue:
|
||||
day: "Dom"
|
||||
common/views/components/visibility-chooser.vue:
|
||||
followers: "Seguidores"
|
||||
common/views/components/profile-editor.vue:
|
||||
name: "Nome"
|
||||
export-targets:
|
||||
following-list: "Seguindo"
|
||||
common/views/widgets/posts-monitor.vue:
|
||||
title: "Gráfico de publicações"
|
||||
common/views/widgets/memo.vue:
|
||||
title: "Nota adesiva"
|
||||
common/views/pages/follow.vue:
|
||||
follow: "Seguindo"
|
||||
desktop/views/components/choose-file-from-drive-window.vue:
|
||||
upload: "Envie arquivos do seu dispositivo"
|
||||
ok: "OK"
|
||||
desktop/views/components/choose-folder-from-drive-window.vue:
|
||||
ok: "OK"
|
||||
desktop/views/components/crop-window.vue:
|
||||
ok: "OK"
|
||||
desktop/views/input-dialog.vue:
|
||||
ok: "OK"
|
||||
common/views/components/api-settings.vue:
|
||||
console:
|
||||
parameter: "Parâmetros"
|
||||
desktop/views/components/sub-note-content.vue:
|
||||
poll: "Enquetes"
|
||||
desktop/views/components/user-preview.vue:
|
||||
following: "Seguindo"
|
||||
followers: "Seguidores"
|
||||
desktop/views/components/users-list-item.vue:
|
||||
followed: "Te segue"
|
||||
admin/views/abuse.vue:
|
||||
remove-report: "Apagar"
|
||||
admin/views/instance.vue:
|
||||
invite: "Convidar"
|
||||
admin/views/drive.vue:
|
||||
delete: "Apagar"
|
||||
admin/views/users.vue:
|
||||
users:
|
||||
state:
|
||||
verified: "Conta verificada"
|
||||
admin/views/emoji.vue:
|
||||
emojis:
|
||||
remove: "Apagar"
|
||||
admin/views/announcements.vue:
|
||||
remove: "Apagar"
|
||||
admin/views/federation.vue:
|
||||
followers: "Seguidores"
|
||||
desktop/views/pages/welcome.vue:
|
||||
timeline: "Timeline"
|
||||
powered-by-misskey: "Desenvolvido por <b>Misskey</b>."
|
||||
desktop/views/pages/drive.vue:
|
||||
title: "Drive Misskey"
|
||||
desktop/views/pages/note.vue:
|
||||
prev: "Nota anterior"
|
||||
next: "Próxima nota"
|
||||
desktop/views/pages/selectdrive.vue:
|
||||
title: "Selecione um arquivo"
|
||||
ok: "OK"
|
||||
cancel: "Cancelar"
|
||||
upload: "Envie arquivos do seu dispositivo"
|
||||
desktop/views/pages/search.vue:
|
||||
not-available: "A pesquisa está desligada nas configurações desta instância."
|
||||
desktop/views/pages/user/user.followers-you-know.vue:
|
||||
loading: "Carregando"
|
||||
desktop/views/pages/user/user.friends.vue:
|
||||
loading: "Carregando"
|
||||
desktop/views/pages/user/user.photos.vue:
|
||||
loading: "Carregando"
|
||||
desktop/views/pages/user/user.header.vue:
|
||||
following: "Seguindo"
|
||||
followers: "Seguidores"
|
||||
month: "Seg"
|
||||
day: "Dom"
|
||||
follows-you: "Te segue"
|
||||
desktop/views/pages/user/user.timeline.vue:
|
||||
with-media: "Mídia"
|
||||
desktop/views/widgets/polls.vue:
|
||||
title: "Enquetes"
|
||||
common/views/components/follow-button.vue:
|
||||
follow: "Seguindo"
|
||||
mobile/views/components/sub-note-content.vue:
|
||||
poll: "Enquetes"
|
||||
mobile/views/components/ui.nav.vue:
|
||||
timeline: "Linha do tempo"
|
||||
mobile/views/pages/widgets.vue:
|
||||
customization-tips: "Dicas de personalização"
|
||||
mobile/views/pages/note.vue:
|
||||
prev: "Nota anterior"
|
||||
next: "Próxima nota"
|
||||
mobile/views/pages/search.vue:
|
||||
search: "Pesquisar"
|
||||
mobile/views/pages/user.vue:
|
||||
follows-you: "Te segue"
|
||||
following: "Seguindo"
|
||||
followers: "Seguidores"
|
||||
notes: "Posts"
|
||||
timeline: "Linha do tempo"
|
||||
media: "Mídia"
|
||||
mobile/views/pages/user/home.vue:
|
||||
recent-notes: "Notas recentes"
|
||||
images: "Imagens"
|
||||
activity: "Atividade"
|
||||
keywords: "Palavras chave"
|
||||
domains: "Domínios"
|
||||
followers-you-know: "Seguidores que você conhece"
|
||||
last-used-at: "Ativo pela última vez"
|
||||
mobile/views/pages/user/home.photos.vue:
|
||||
no-photos: "Sem fotos"
|
||||
deck/deck.user-column.vue:
|
||||
follows-you: "Te segue"
|
||||
following: "Seguindo"
|
||||
followers: "Seguidores"
|
||||
images: "Imagens"
|
||||
timeline: "Linha do tempo"
|
||||
docs:
|
||||
edit-this-page-on-github-link: "Edite esta página no GitHub!"
|
||||
api:
|
||||
entities:
|
||||
properties: "Propriedades"
|
||||
endpoints:
|
||||
params: "Parâmetros"
|
||||
no-params: "Sem parâmetros"
|
||||
res: "Resposta"
|
||||
show-src-link: "Veja o código no GitHub"
|
||||
generated: "Este documento foi gerado pelas definições da API."
|
||||
props:
|
||||
name: "Nome"
|
||||
type: "Tipo"
|
||||
description: "Descrição"
|
||||
dev/views/index.vue:
|
||||
manage-apps: "Gerenciar aplicativos"
|
||||
_lang_: "Português"
|
||||
|
1447
locales/ru-RU.yml
3
locales/ug-CN.yml
Normal file
@ -0,0 +1,3 @@
|
||||
---
|
||||
_lang_: "ياپونچە"
|
||||
search: "ئىزدەش"
|
2942
locales/zh-CN.yml
1135
locales/zh-TW.yml
485
migration/1000000000000-Init.ts
Normal file
@ -0,0 +1,485 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class Init1000000000000 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE TYPE "log_level_enum" AS ENUM('error', 'warning', 'info', 'success', 'debug')`);
|
||||
await queryRunner.query(`CREATE TABLE "log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "domain" character varying(64) array NOT NULL DEFAULT '{}'::varchar[], "level" "log_level_enum" NOT NULL, "worker" character varying(8) NOT NULL, "machine" character varying(128) NOT NULL, "message" character varying(1024) NOT NULL, "data" jsonb NOT NULL DEFAULT '{}', CONSTRAINT "PK_350604cbdf991d5930d9e618fbd" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_8e4eb51a35d81b64dda28eed0a" ON "log" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_8cb40cfc8f3c28261e6f887b03" ON "log" ("domain") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_584b536b49e53ac81beb39a177" ON "log" ("level") `);
|
||||
await queryRunner.query(`CREATE TABLE "drive_folder" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(128) NOT NULL, "userId" character varying(32), "parentId" character varying(32), CONSTRAINT "PK_7a0c089191f5ebdc214e0af808a" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_02878d441ceae15ce060b73daf" ON "drive_folder" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f4fc06e49c0171c85f1c48060d" ON "drive_folder" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_00ceffb0cdc238b3233294f08f" ON "drive_folder" ("parentId") `);
|
||||
await queryRunner.query(`CREATE TABLE "drive_file" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32), "userHost" character varying(128), "md5" character varying(32) NOT NULL, "name" character varying(256) NOT NULL, "type" character varying(128) NOT NULL, "size" integer NOT NULL, "comment" character varying(512), "properties" jsonb NOT NULL DEFAULT '{}', "storedInternal" boolean NOT NULL, "url" character varying(512) NOT NULL, "thumbnailUrl" character varying(512), "webpublicUrl" character varying(512), "accessKey" character varying(256), "thumbnailAccessKey" character varying(256), "webpublicAccessKey" character varying(256), "uri" character varying(512), "src" character varying(512), "folderId" character varying(32), "isSensitive" boolean NOT NULL DEFAULT false, "isLink" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_43ddaaaf18c9e68029b7cbb032e" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_c8dfad3b72196dd1d6b5db168a" ON "drive_file" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_860fa6f6c7df5bb887249fba22" ON "drive_file" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_92779627994ac79277f070c91e" ON "drive_file" ("userHost") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_37bb9a1b4585f8a3beb24c62d6" ON "drive_file" ("md5") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a40b8df8c989d7db937ea27cf6" ON "drive_file" ("type") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d85a184c2540d2deba33daf642" ON "drive_file" ("accessKey") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_e74022ce9a074b3866f70e0d27" ON "drive_file" ("thumbnailAccessKey") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_c55b2b7c284d9fef98026fc88e" ON "drive_file" ("webpublicAccessKey") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e5848eac4940934e23dbc17581" ON "drive_file" ("uri") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_bb90d1956dafc4068c28aa7560" ON "drive_file" ("folderId") `);
|
||||
await queryRunner.query(`CREATE TABLE "user" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE, "lastFetchedAt" TIMESTAMP WITH TIME ZONE, "username" character varying(128) NOT NULL, "usernameLower" character varying(128) NOT NULL, "name" character varying(128), "followersCount" integer NOT NULL DEFAULT 0, "followingCount" integer NOT NULL DEFAULT 0, "notesCount" integer NOT NULL DEFAULT 0, "avatarId" character varying(32), "bannerId" character varying(32), "tags" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "avatarUrl" character varying(512), "bannerUrl" character varying(512), "avatarColor" character varying(32), "bannerColor" character varying(32), "isSuspended" boolean NOT NULL DEFAULT false, "isSilenced" boolean NOT NULL DEFAULT false, "isLocked" boolean NOT NULL DEFAULT false, "isBot" boolean NOT NULL DEFAULT false, "isCat" boolean NOT NULL DEFAULT false, "isAdmin" boolean NOT NULL DEFAULT false, "isModerator" boolean NOT NULL DEFAULT false, "isVerified" boolean NOT NULL DEFAULT false, "emojis" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "host" character varying(128), "inbox" character varying(512), "sharedInbox" character varying(512), "featured" character varying(512), "uri" character varying(512), "token" character(16), CONSTRAINT "UQ_a854e557b1b14814750c7c7b0c9" UNIQUE ("token"), CONSTRAINT "REL_58f5c71eaab331645112cf8cfa" UNIQUE ("avatarId"), CONSTRAINT "REL_afc64b53f8db3707ceb34eb28e" UNIQUE ("bannerId"), CONSTRAINT "PK_cace4a159ff9f2512dd42373760" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e11e649824a45d8ed01d597fd9" ON "user" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_80ca6e6ef65fb9ef34ea8c90f4" ON "user" ("updatedAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a27b942a0d6dcff90e3ee9b5e8" ON "user" ("usernameLower") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_fa99d777623947a5b05f394cae" ON "user" ("tags") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_3252a5df8d5bbd16b281f7799e" ON "user" ("host") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_be623adaa4c566baf5d29ce0c8" ON "user" ("uri") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a854e557b1b14814750c7c7b0c" ON "user" ("token") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5deb01ae162d1d70b80d064c27" ON "user" ("usernameLower", "host") `);
|
||||
await queryRunner.query(`CREATE TABLE "app" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32), "secret" character varying(64) NOT NULL, "name" character varying(128) NOT NULL, "description" character varying(512) NOT NULL, "permission" character varying(64) array NOT NULL, "callbackUrl" character varying(512), CONSTRAINT "PK_9478629fc093d229df09e560aea" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_048a757923ed8b157e9895da53" ON "app" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_3f5b0899ef90527a3462d7c2cb" ON "app" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f49922d511d666848f250663c4" ON "app" ("secret") `);
|
||||
await queryRunner.query(`CREATE TABLE "access_token" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "token" character varying(128) NOT NULL, "hash" character varying(128) NOT NULL, "userId" character varying(32) NOT NULL, "appId" character varying(32) NOT NULL, CONSTRAINT "PK_f20f028607b2603deabd8182d12" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_70ba8f6af34bc924fc9e12adb8" ON "access_token" ("token") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_64c327441248bae40f7d92f34f" ON "access_token" ("hash") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_9949557d0e1b2c19e5344c171e" ON "access_token" ("userId") `);
|
||||
await queryRunner.query(`CREATE TYPE "note_visibility_enum" AS ENUM('public', 'home', 'followers', 'specified')`);
|
||||
await queryRunner.query(`CREATE TABLE "note" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "replyId" character varying(32), "renoteId" character varying(32), "text" text, "name" character varying(256), "cw" character varying(512), "appId" character varying(32), "userId" character varying(32) NOT NULL, "viaMobile" boolean NOT NULL DEFAULT false, "localOnly" boolean NOT NULL DEFAULT false, "renoteCount" smallint NOT NULL DEFAULT 0, "repliesCount" smallint NOT NULL DEFAULT 0, "reactions" jsonb NOT NULL DEFAULT '{}', "visibility" "note_visibility_enum" NOT NULL, "uri" character varying(512), "score" integer NOT NULL DEFAULT 0, "fileIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "attachedFileTypes" character varying(256) array NOT NULL DEFAULT '{}'::varchar[], "visibleUserIds" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "mentions" character varying(32) array NOT NULL DEFAULT '{}'::varchar[], "mentionedRemoteUsers" text NOT NULL DEFAULT '[]', "emojis" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "tags" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "hasPoll" boolean NOT NULL DEFAULT false, "geo" jsonb DEFAULT null, "userHost" character varying(128), "replyUserId" character varying(32), "replyUserHost" character varying(128), "renoteUserId" character varying(32), "renoteUserHost" character varying(128), CONSTRAINT "PK_96d0c172a4fba276b1bbed43058" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e7c0567f5261063592f022e9b5" ON "note" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_17cb3553c700a4985dff5a30ff" ON "note" ("replyId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_52ccc804d7c69037d558bac4c9" ON "note" ("renoteId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_5b87d9d19127bd5d92026017a7" ON "note" ("userId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_153536c67d05e9adb24e99fc2b" ON "note" ("uri") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_51c063b6a133a9cb87145450f5" ON "note" ("fileIds") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_25dfc71b0369b003a4cd434d0b" ON "note" ("attachedFileTypes") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_796a8c03959361f97dc2be1d5c" ON "note" ("visibleUserIds") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_54ebcb6d27222913b908d56fd8" ON "note" ("mentions") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_88937d94d7443d9a99a76fa5c0" ON "note" ("tags") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_7125a826ab192eb27e11d358a5" ON "note" ("userHost") `);
|
||||
await queryRunner.query(`CREATE TABLE "poll_vote" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "choice" integer NOT NULL, CONSTRAINT "PK_fd002d371201c472490ba89c6a0" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0fb627e1c2f753262a74f0562d" ON "poll_vote" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_66d2bd2ee31d14bcc23069a89f" ON "poll_vote" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_aecfbd5ef60374918e63ee95fa" ON "poll_vote" ("noteId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_50bd7164c5b78f1f4a42c4d21f" ON "poll_vote" ("userId", "noteId", "choice") `);
|
||||
await queryRunner.query(`CREATE TABLE "note_reaction" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "reaction" character varying(128) NOT NULL, CONSTRAINT "PK_767ec729b108799b587a3fcc9cf" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_01f4581f114e0ebd2bbb876f0b" ON "note_reaction" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_13761f64257f40c5636d0ff95e" ON "note_reaction" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_45145e4953780f3cd5656f0ea6" ON "note_reaction" ("noteId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_ad0c221b25672daf2df320a817" ON "note_reaction" ("userId", "noteId") `);
|
||||
await queryRunner.query(`CREATE TABLE "note_watching" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "noteUserId" character varying(32) NOT NULL, CONSTRAINT "PK_49286fdb23725945a74aa27d757" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_318cdf42a9cfc11f479bd802bb" ON "note_watching" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_b0134ec406e8d09a540f818288" ON "note_watching" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_03e7028ab8388a3f5e3ce2a861" ON "note_watching" ("noteId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_44499765eec6b5489d72c4253b" ON "note_watching" ("noteUserId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_a42c93c69989ce1d09959df4cf" ON "note_watching" ("userId", "noteId") `);
|
||||
await queryRunner.query(`CREATE TABLE "note_unread" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, "noteUserId" character varying(32) NOT NULL, "isSpecified" boolean NOT NULL, CONSTRAINT "PK_1904eda61a784f57e6e51fa9c1f" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_56b0166d34ddae49d8ef7610bb" ON "note_unread" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e637cba4dc4410218c4251260e" ON "note_unread" ("noteId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d908433a4953cc13216cd9c274" ON "note_unread" ("userId", "noteId") `);
|
||||
await queryRunner.query(`CREATE TABLE "notification" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "notifieeId" character varying(32) NOT NULL, "notifierId" character varying(32) NOT NULL, "type" character varying(32) NOT NULL, "isRead" boolean NOT NULL DEFAULT false, "noteId" character varying(32), "reaction" character varying(128), "choice" integer, CONSTRAINT "PK_705b6c7cdf9b2c2ff7ac7872cb7" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_b11a5e627c41d4dc3170f1d370" ON "notification" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_3c601b70a1066d2c8b517094cb" ON "notification" ("notifieeId") `);
|
||||
await queryRunner.query(`CREATE TABLE "meta" ("id" character varying(32) NOT NULL, "name" character varying(128), "description" character varying(1024), "maintainerName" character varying(128), "maintainerEmail" character varying(128), "announcements" jsonb NOT NULL DEFAULT '[]', "disableRegistration" boolean NOT NULL DEFAULT false, "disableLocalTimeline" boolean NOT NULL DEFAULT false, "disableGlobalTimeline" boolean NOT NULL DEFAULT false, "enableEmojiReaction" boolean NOT NULL DEFAULT true, "useStarForReactionFallback" boolean NOT NULL DEFAULT false, "langs" character varying(64) array NOT NULL DEFAULT '{}'::varchar[], "hiddenTags" character varying(256) array NOT NULL DEFAULT '{}'::varchar[], "blockedHosts" character varying(256) array NOT NULL DEFAULT '{}'::varchar[], "mascotImageUrl" character varying(512) DEFAULT '/assets/ai.png', "bannerUrl" character varying(512), "errorImageUrl" character varying(512) DEFAULT 'https://xn--931a.moe/aiart/yubitun.png', "iconUrl" character varying(512), "cacheRemoteFiles" boolean NOT NULL DEFAULT true, "proxyAccount" character varying(128), "enableRecaptcha" boolean NOT NULL DEFAULT false, "recaptchaSiteKey" character varying(64), "recaptchaSecretKey" character varying(64), "localDriveCapacityMb" integer NOT NULL DEFAULT 1024, "remoteDriveCapacityMb" integer NOT NULL DEFAULT 32, "maxNoteTextLength" integer NOT NULL DEFAULT 500, "summalyProxy" character varying(128), "enableEmail" boolean NOT NULL DEFAULT false, "email" character varying(128), "smtpSecure" boolean NOT NULL DEFAULT false, "smtpHost" character varying(128), "smtpPort" integer, "smtpUser" character varying(128), "smtpPass" character varying(128), "enableServiceWorker" boolean NOT NULL DEFAULT false, "swPublicKey" character varying(128), "swPrivateKey" character varying(128), "enableTwitterIntegration" boolean NOT NULL DEFAULT false, "twitterConsumerKey" character varying(128), "twitterConsumerSecret" character varying(128), "enableGithubIntegration" boolean NOT NULL DEFAULT false, "githubClientId" character varying(128), "githubClientSecret" character varying(128), "enableDiscordIntegration" boolean NOT NULL DEFAULT false, "discordClientId" character varying(128), "discordClientSecret" character varying(128), CONSTRAINT "PK_c4c17a6c2bd7651338b60fc590b" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TABLE "following" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "followeeId" character varying(32) NOT NULL, "followerId" character varying(32) NOT NULL, "followerHost" character varying(128), "followerInbox" character varying(512), "followerSharedInbox" character varying(512), "followeeHost" character varying(128), "followeeInbox" character varying(512), "followeeSharedInbox" character varying(512), CONSTRAINT "PK_c76c6e044bdf76ecf8bfb82a645" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_582f8fab771a9040a12961f3e7" ON "following" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_24e0042143a18157b234df186c" ON "following" ("followeeId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_6516c5a6f3c015b4eed39978be" ON "following" ("followerId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_307be5f1d1252e0388662acb96" ON "following" ("followerId", "followeeId") `);
|
||||
await queryRunner.query(`CREATE TABLE "instance" ("id" character varying(32) NOT NULL, "caughtAt" TIMESTAMP WITH TIME ZONE NOT NULL, "host" character varying(128) NOT NULL, "system" character varying(64), "usersCount" integer NOT NULL DEFAULT 0, "notesCount" integer NOT NULL DEFAULT 0, "followingCount" integer NOT NULL DEFAULT 0, "followersCount" integer NOT NULL DEFAULT 0, "driveUsage" integer NOT NULL DEFAULT 0, "driveFiles" integer NOT NULL DEFAULT 0, "latestRequestSentAt" TIMESTAMP WITH TIME ZONE, "latestStatus" integer, "latestRequestReceivedAt" TIMESTAMP WITH TIME ZONE, "lastCommunicatedAt" TIMESTAMP WITH TIME ZONE NOT NULL, "isNotResponding" boolean NOT NULL DEFAULT false, "isMarkedAsClosed" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_eaf60e4a0c399c9935413e06474" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_2cd3b2a6b4cf0b910b260afe08" ON "instance" ("caughtAt") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_8d5afc98982185799b160e10eb" ON "instance" ("host") `);
|
||||
await queryRunner.query(`CREATE TABLE "muting" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "muteeId" character varying(32) NOT NULL, "muterId" character varying(32) NOT NULL, CONSTRAINT "PK_2e92d06c8b5c602eeb27ca9ba48" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f86d57fbca33c7a4e6897490cc" ON "muting" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_ec96b4fed9dae517e0dbbe0675" ON "muting" ("muteeId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_93060675b4a79a577f31d260c6" ON "muting" ("muterId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_1eb9d9824a630321a29fd3b290" ON "muting" ("muterId", "muteeId") `);
|
||||
await queryRunner.query(`CREATE TABLE "sw_subscription" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "endpoint" character varying(512) NOT NULL, "auth" character varying(256) NOT NULL, "publickey" character varying(128) NOT NULL, CONSTRAINT "PK_e8f763631530051b95eb6279b91" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_97754ca6f2baff9b4abb7f853d" ON "sw_subscription" ("userId") `);
|
||||
await queryRunner.query(`CREATE TABLE "blocking" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "blockeeId" character varying(32) NOT NULL, "blockerId" character varying(32) NOT NULL, CONSTRAINT "PK_e5d9a541cc1965ee7e048ea09dd" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_b9a354f7941c1e779f3b33aea6" ON "blocking" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_2cd4a2743a99671308f5417759" ON "blocking" ("blockeeId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0627125f1a8a42c9a1929edb55" ON "blocking" ("blockerId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_98a1bc5cb30dfd159de056549f" ON "blocking" ("blockerId", "blockeeId") `);
|
||||
await queryRunner.query(`CREATE TABLE "user_list" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, CONSTRAINT "PK_87bab75775fd9b1ff822b656402" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_b7fcefbdd1c18dce86687531f9" ON "user_list" ("userId") `);
|
||||
await queryRunner.query(`CREATE TABLE "user_list_joining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userListId" character varying(32) NOT NULL, CONSTRAINT "PK_11abb3768da1c5f8de101c9df45" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_d844bfc6f3f523a05189076efa" ON "user_list_joining" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_605472305f26818cc93d1baaa7" ON "user_list_joining" ("userListId") `);
|
||||
await queryRunner.query(`CREATE TABLE "hashtag" ("id" character varying(32) NOT NULL, "name" character varying(128) NOT NULL, "mentionedUserIds" character varying(32) array NOT NULL, "mentionedUsersCount" integer NOT NULL DEFAULT 0, "mentionedLocalUserIds" character varying(32) array NOT NULL, "mentionedLocalUsersCount" integer NOT NULL DEFAULT 0, "mentionedRemoteUserIds" character varying(32) array NOT NULL, "mentionedRemoteUsersCount" integer NOT NULL DEFAULT 0, "attachedUserIds" character varying(32) array NOT NULL, "attachedUsersCount" integer NOT NULL DEFAULT 0, "attachedLocalUserIds" character varying(32) array NOT NULL, "attachedLocalUsersCount" integer NOT NULL DEFAULT 0, "attachedRemoteUserIds" character varying(32) array NOT NULL, "attachedRemoteUsersCount" integer NOT NULL DEFAULT 0, CONSTRAINT "PK_cb36eb8af8412bfa978f1165d78" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_347fec870eafea7b26c8a73bac" ON "hashtag" ("name") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_2710a55f826ee236ea1a62698f" ON "hashtag" ("mentionedUsersCount") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0e206cec573f1edff4a3062923" ON "hashtag" ("mentionedLocalUsersCount") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_4c02d38a976c3ae132228c6fce" ON "hashtag" ("mentionedRemoteUsersCount") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_d57f9030cd3af7f63ffb1c267c" ON "hashtag" ("attachedUsersCount") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0c44bf4f680964145f2a68a341" ON "hashtag" ("attachedLocalUsersCount") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0b03cbcd7e6a7ce068efa8ecc2" ON "hashtag" ("attachedRemoteUsersCount") `);
|
||||
await queryRunner.query(`CREATE TABLE "note_favorite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_af0da35a60b9fa4463a62082b36" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_47f4b1892f5d6ba8efb3057d81" ON "note_favorite" ("userId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0f4fb9ad355f3effff221ef245" ON "note_favorite" ("userId", "noteId") `);
|
||||
await queryRunner.query(`CREATE TABLE "abuse_user_report" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "reporterId" character varying(32) NOT NULL, "comment" character varying(512) NOT NULL, CONSTRAINT "PK_87873f5f5cc5c321a1306b2d18c" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_db2098070b2b5a523c58181f74" ON "abuse_user_report" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_d049123c413e68ca52abe73420" ON "abuse_user_report" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_04cc96756f89d0b7f9473e8cdf" ON "abuse_user_report" ("reporterId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_5cd442c3b2e74fdd99dae20243" ON "abuse_user_report" ("userId", "reporterId") `);
|
||||
await queryRunner.query(`CREATE TABLE "registration_ticket" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "code" character varying(64) NOT NULL, CONSTRAINT "PK_f11696b6fafcf3662d4292734f8" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_0ff69e8dfa9fe31bb4a4660f59" ON "registration_ticket" ("code") `);
|
||||
await queryRunner.query(`CREATE TABLE "messaging_message" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "recipientId" character varying(32) NOT NULL, "text" character varying(4096), "isRead" boolean NOT NULL DEFAULT false, "fileId" character varying(32), CONSTRAINT "PK_db398fd79dc95d0eb8c30456eaa" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e21cd3646e52ef9c94aaf17c2e" ON "messaging_message" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_5377c307783fce2b6d352e1203" ON "messaging_message" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_cac14a4e3944454a5ce7daa514" ON "messaging_message" ("recipientId") `);
|
||||
await queryRunner.query(`CREATE TABLE "signin" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "ip" character varying(128) NOT NULL, "headers" jsonb NOT NULL, "success" boolean NOT NULL, CONSTRAINT "PK_9e96ddc025712616fc492b3b588" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_2c308dbdc50d94dc625670055f" ON "signin" ("userId") `);
|
||||
await queryRunner.query(`CREATE TABLE "auth_session" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "token" character varying(128) NOT NULL, "userId" character varying(32), "appId" character varying(32) NOT NULL, CONSTRAINT "PK_19354ed146424a728c1112a8cbf" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_62cb09e1129f6ec024ef66e183" ON "auth_session" ("token") `);
|
||||
await queryRunner.query(`CREATE TABLE "follow_request" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "followeeId" character varying(32) NOT NULL, "followerId" character varying(32) NOT NULL, "requestId" character varying(128), "followerHost" character varying(128), "followerInbox" character varying(512), "followerSharedInbox" character varying(512), "followeeHost" character varying(128), "followeeInbox" character varying(512), "followeeSharedInbox" character varying(512), CONSTRAINT "PK_53a9aa3725f7a3deb150b39dbfc" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_12c01c0d1a79f77d9f6c15fadd" ON "follow_request" ("followeeId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a7fd92dd6dc519e6fb435dd108" ON "follow_request" ("followerId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d54a512b822fac7ed52800f6b4" ON "follow_request" ("followerId", "followeeId") `);
|
||||
await queryRunner.query(`CREATE TABLE "emoji" ("id" character varying(32) NOT NULL, "updatedAt" TIMESTAMP WITH TIME ZONE, "name" character varying(128) NOT NULL, "host" character varying(128), "url" character varying(512) NOT NULL, "uri" character varying(512), "type" character varying(64), "aliases" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], CONSTRAINT "PK_df74ce05e24999ee01ea0bc50a3" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_b37dafc86e9af007e3295c2781" ON "emoji" ("name") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_5900e907bb46516ddf2871327c" ON "emoji" ("host") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4f4d35e1256c84ae3d1f0eab10" ON "emoji" ("name", "host") `);
|
||||
await queryRunner.query(`CREATE TABLE "reversi_game" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "startedAt" TIMESTAMP WITH TIME ZONE, "user1Id" character varying(32) NOT NULL, "user2Id" character varying(32) NOT NULL, "user1Accepted" boolean NOT NULL DEFAULT false, "user2Accepted" boolean NOT NULL DEFAULT false, "black" integer, "isStarted" boolean NOT NULL DEFAULT false, "isEnded" boolean NOT NULL DEFAULT false, "winnerId" character varying(32), "surrendered" character varying(32), "logs" jsonb NOT NULL DEFAULT '[]', "map" character varying(64) array NOT NULL, "bw" character varying(32) NOT NULL, "isLlotheo" boolean NOT NULL DEFAULT false, "canPutEverywhere" boolean NOT NULL DEFAULT false, "loopedBoard" boolean NOT NULL DEFAULT false, "form1" jsonb DEFAULT null, "form2" jsonb DEFAULT null, "crc32" character varying(32), CONSTRAINT "PK_76b30eeba71b1193ad7c5311c3f" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_b46ec40746efceac604142be1c" ON "reversi_game" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE TABLE "reversi_matching" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "parentId" character varying(32) NOT NULL, "childId" character varying(32) NOT NULL, CONSTRAINT "PK_880bd0afbab232f21c8b9d146cf" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_b604d92d6c7aec38627f6eaf16" ON "reversi_matching" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_3b25402709dd9882048c2bbade" ON "reversi_matching" ("parentId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e247b23a3c9b45f89ec1299d06" ON "reversi_matching" ("childId") `);
|
||||
await queryRunner.query(`CREATE TABLE "user_note_pining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "noteId" character varying(32) NOT NULL, CONSTRAINT "PK_a6a2dad4ae000abce2ea9d9b103" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_bfbc6f79ba4007b4ce5097f08d" ON "user_note_pining" ("userId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_410cd649884b501c02d6e72738" ON "user_note_pining" ("userId", "noteId") `);
|
||||
await queryRunner.query(`CREATE TYPE "poll_notevisibility_enum" AS ENUM('public', 'home', 'followers', 'specified')`);
|
||||
await queryRunner.query(`CREATE TABLE "poll" ("noteId" character varying(32) NOT NULL, "expiresAt" TIMESTAMP WITH TIME ZONE, "multiple" boolean NOT NULL, "choices" character varying(128) array NOT NULL DEFAULT '{}'::varchar[], "votes" integer array NOT NULL, "noteVisibility" "poll_notevisibility_enum" NOT NULL, "userId" character varying(32) NOT NULL, "userHost" character varying(128), CONSTRAINT "REL_da851e06d0dfe2ef397d8b1bf1" UNIQUE ("noteId"), CONSTRAINT "PK_da851e06d0dfe2ef397d8b1bf1b" PRIMARY KEY ("noteId"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0610ebcfcfb4a18441a9bcdab2" ON "poll" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_7fa20a12319c7f6dc3aed98c0a" ON "poll" ("userHost") `);
|
||||
await queryRunner.query(`CREATE TABLE "user_keypair" ("userId" character varying(32) NOT NULL, "publicKey" character varying(4096) NOT NULL, "privateKey" character varying(4096) NOT NULL, CONSTRAINT "REL_f4853eb41ab722fe05f81cedeb" UNIQUE ("userId"), CONSTRAINT "PK_f4853eb41ab722fe05f81cedeb6" PRIMARY KEY ("userId"))`);
|
||||
await queryRunner.query(`CREATE TABLE "user_publickey" ("userId" character varying(32) NOT NULL, "keyId" character varying(256) NOT NULL, "keyPem" character varying(4096) NOT NULL, CONSTRAINT "REL_10c146e4b39b443ede016f6736" UNIQUE ("userId"), CONSTRAINT "PK_10c146e4b39b443ede016f6736d" PRIMARY KEY ("userId"))`);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_171e64971c780ebd23fae140bb" ON "user_publickey" ("keyId") `);
|
||||
await queryRunner.query(`CREATE TABLE "user_profile" ("userId" character varying(32) NOT NULL, "location" character varying(128), "birthday" character(10), "description" character varying(1024), "fields" jsonb NOT NULL DEFAULT '[]', "url" character varying(512), "email" character varying(128), "emailVerifyCode" character varying(128), "emailVerified" boolean NOT NULL DEFAULT false, "twoFactorTempSecret" character varying(128), "twoFactorSecret" character varying(128), "twoFactorEnabled" boolean NOT NULL DEFAULT false, "password" character varying(128), "clientData" jsonb NOT NULL DEFAULT '{}', "autoWatch" boolean NOT NULL DEFAULT false, "autoAcceptFollowed" boolean NOT NULL DEFAULT false, "alwaysMarkNsfw" boolean NOT NULL DEFAULT false, "carefulBot" boolean NOT NULL DEFAULT false, "twitter" boolean NOT NULL DEFAULT false, "twitterAccessToken" character varying(64) DEFAULT null, "twitterAccessTokenSecret" character varying(64) DEFAULT null, "twitterUserId" character varying(64) DEFAULT null, "twitterScreenName" character varying(64) DEFAULT null, "github" boolean NOT NULL DEFAULT false, "githubAccessToken" character varying(64) DEFAULT null, "githubId" integer DEFAULT null, "githubLogin" character varying(64) DEFAULT null, "discord" boolean NOT NULL DEFAULT false, "discordAccessToken" character varying(64) DEFAULT null, "discordRefreshToken" character varying(64) DEFAULT null, "discordExpiresDate" integer DEFAULT null, "discordId" character varying(64) DEFAULT null, "discordUsername" character varying(64) DEFAULT null, "discordDiscriminator" character varying(64) DEFAULT null, "userHost" character varying(128), CONSTRAINT "REL_51cb79b5555effaf7d69ba1cff" UNIQUE ("userId"), CONSTRAINT "PK_51cb79b5555effaf7d69ba1cff9" PRIMARY KEY ("userId"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_dce530b98e454793dac5ec2f5a" ON "user_profile" ("userHost") `);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__active_users_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__active_users" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__active_users_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "PK_317237a9f733b970604a11e314f" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__drive_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__drive" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__drive_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_totalCount" bigint NOT NULL, "___local_totalSize" bigint NOT NULL, "___local_incCount" bigint NOT NULL, "___local_incSize" bigint NOT NULL, "___local_decCount" bigint NOT NULL, "___local_decSize" bigint NOT NULL, "___remote_totalCount" bigint NOT NULL, "___remote_totalSize" bigint NOT NULL, "___remote_incCount" bigint NOT NULL, "___remote_incSize" bigint NOT NULL, "___remote_decCount" bigint NOT NULL, "___remote_decSize" bigint NOT NULL, CONSTRAINT "PK_f96bc548a765cd4b3b354221ce7" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__federation_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__federation" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__federation_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___instance_total" bigint NOT NULL, "___instance_inc" bigint NOT NULL, "___instance_dec" bigint NOT NULL, CONSTRAINT "PK_b39dcd31a0fe1a7757e348e85fd" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__hashtag_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__hashtag" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__hashtag_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "PK_c32f1ea2b44a5d2f7881e37f8f9" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__instance_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__instance" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__instance_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___requests_failed" bigint NOT NULL, "___requests_succeeded" bigint NOT NULL, "___requests_received" bigint NOT NULL, "___notes_total" bigint NOT NULL, "___notes_inc" bigint NOT NULL, "___notes_dec" bigint NOT NULL, "___notes_diffs_normal" bigint NOT NULL, "___notes_diffs_reply" bigint NOT NULL, "___notes_diffs_renote" bigint NOT NULL, "___users_total" bigint NOT NULL, "___users_inc" bigint NOT NULL, "___users_dec" bigint NOT NULL, "___following_total" bigint NOT NULL, "___following_inc" bigint NOT NULL, "___following_dec" bigint NOT NULL, "___followers_total" bigint NOT NULL, "___followers_inc" bigint NOT NULL, "___followers_dec" bigint NOT NULL, "___drive_totalFiles" bigint NOT NULL, "___drive_totalUsage" bigint NOT NULL, "___drive_incFiles" bigint NOT NULL, "___drive_incUsage" bigint NOT NULL, "___drive_decFiles" bigint NOT NULL, "___drive_decUsage" bigint NOT NULL, CONSTRAINT "PK_1267c67c7c2d47b4903975f2c00" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__network_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__network" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__network_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___incomingRequests" bigint NOT NULL, "___outgoingRequests" bigint NOT NULL, "___totalTime" bigint NOT NULL, "___incomingBytes" bigint NOT NULL, "___outgoingBytes" bigint NOT NULL, CONSTRAINT "PK_bc4290c2e27fad14ef0c1ca93f3" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__notes_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__notes" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__notes_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_total" bigint NOT NULL, "___local_inc" bigint NOT NULL, "___local_dec" bigint NOT NULL, "___local_diffs_normal" bigint NOT NULL, "___local_diffs_reply" bigint NOT NULL, "___local_diffs_renote" bigint NOT NULL, "___remote_total" bigint NOT NULL, "___remote_inc" bigint NOT NULL, "___remote_dec" bigint NOT NULL, "___remote_diffs_normal" bigint NOT NULL, "___remote_diffs_reply" bigint NOT NULL, "___remote_diffs_renote" bigint NOT NULL, CONSTRAINT "PK_0aec823fa85c7f901bdb3863b14" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__per_user_drive_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__per_user_drive" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_drive_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___totalCount" bigint NOT NULL, "___totalSize" bigint NOT NULL, "___incCount" bigint NOT NULL, "___incSize" bigint NOT NULL, "___decCount" bigint NOT NULL, "___decSize" bigint NOT NULL, CONSTRAINT "PK_d0ef23d24d666e1a44a0cd3d208" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__per_user_following_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__per_user_following" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_following_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_followings_total" bigint NOT NULL, "___local_followings_inc" bigint NOT NULL, "___local_followings_dec" bigint NOT NULL, "___local_followers_total" bigint NOT NULL, "___local_followers_inc" bigint NOT NULL, "___local_followers_dec" bigint NOT NULL, "___remote_followings_total" bigint NOT NULL, "___remote_followings_inc" bigint NOT NULL, "___remote_followings_dec" bigint NOT NULL, "___remote_followers_total" bigint NOT NULL, "___remote_followers_inc" bigint NOT NULL, "___remote_followers_dec" bigint NOT NULL, CONSTRAINT "PK_85bb1b540363a29c2fec83bd907" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__per_user_notes_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__per_user_notes" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_notes_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___total" bigint NOT NULL, "___inc" bigint NOT NULL, "___dec" bigint NOT NULL, "___diffs_normal" bigint NOT NULL, "___diffs_reply" bigint NOT NULL, "___diffs_renote" bigint NOT NULL, CONSTRAINT "PK_334acf6e915af2f29edc11b8e50" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__per_user_reaction_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__per_user_reaction" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__per_user_reaction_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_count" bigint NOT NULL, "___remote_count" bigint NOT NULL, CONSTRAINT "PK_984f54dae441e65b633e8d27a7f" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__test_grouped_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__test_grouped" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__test_grouped_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___foo_total" bigint NOT NULL, "___foo_inc" bigint NOT NULL, "___foo_dec" bigint NOT NULL, CONSTRAINT "PK_f4a2b175d308695af30d4293272" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__test_unique_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__test_unique" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__test_unique_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___foo" bigint NOT NULL, CONSTRAINT "PK_409bac9c97cc612d8500012319d" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__test_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__test" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__test_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___foo_total" bigint NOT NULL, "___foo_inc" bigint NOT NULL, "___foo_dec" bigint NOT NULL, CONSTRAINT "PK_b4bc31dffbd1b785276a3ecfc1e" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE TYPE "__chart__users_span_enum" AS ENUM('hour', 'day')`);
|
||||
await queryRunner.query(`CREATE TABLE "__chart__users" ("id" SERIAL NOT NULL, "date" integer NOT NULL, "group" character varying(128), "span" "__chart__users_span_enum" NOT NULL, "unique" jsonb NOT NULL DEFAULT '{}', "___local_total" bigint NOT NULL, "___local_inc" bigint NOT NULL, "___local_dec" bigint NOT NULL, "___remote_total" bigint NOT NULL, "___remote_inc" bigint NOT NULL, "___remote_dec" bigint NOT NULL, CONSTRAINT "PK_4dfcf2c78d03524b9eb2c99d328" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`ALTER TABLE "drive_folder" ADD CONSTRAINT "FK_f4fc06e49c0171c85f1c48060d2" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "drive_folder" ADD CONSTRAINT "FK_00ceffb0cdc238b3233294f08f2" FOREIGN KEY ("parentId") REFERENCES "drive_folder"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "drive_file" ADD CONSTRAINT "FK_860fa6f6c7df5bb887249fba22e" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "drive_file" ADD CONSTRAINT "FK_bb90d1956dafc4068c28aa7560a" FOREIGN KEY ("folderId") REFERENCES "drive_folder"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user" ADD CONSTRAINT "FK_58f5c71eaab331645112cf8cfa5" FOREIGN KEY ("avatarId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user" ADD CONSTRAINT "FK_afc64b53f8db3707ceb34eb28e2" FOREIGN KEY ("bannerId") REFERENCES "drive_file"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "app" ADD CONSTRAINT "FK_3f5b0899ef90527a3462d7c2cb3" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_9949557d0e1b2c19e5344c171e9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" ADD CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_17cb3553c700a4985dff5a30ff5" FOREIGN KEY ("replyId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_52ccc804d7c69037d558bac4c96" FOREIGN KEY ("renoteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_ec5c201576192ba8904c345c5cc" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note" ADD CONSTRAINT "FK_5b87d9d19127bd5d92026017a7b" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "poll_vote" ADD CONSTRAINT "FK_66d2bd2ee31d14bcc23069a89f8" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "poll_vote" ADD CONSTRAINT "FK_aecfbd5ef60374918e63ee95fa7" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" ADD CONSTRAINT "FK_13761f64257f40c5636d0ff95ee" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" ADD CONSTRAINT "FK_45145e4953780f3cd5656f0ea6a" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note_watching" ADD CONSTRAINT "FK_b0134ec406e8d09a540f8182888" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note_watching" ADD CONSTRAINT "FK_03e7028ab8388a3f5e3ce2a8619" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note_unread" ADD CONSTRAINT "FK_56b0166d34ddae49d8ef7610bb9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note_unread" ADD CONSTRAINT "FK_e637cba4dc4410218c4251260e4" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3c601b70a1066d2c8b517094cb9" FOREIGN KEY ("notifieeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710" FOREIGN KEY ("notifierId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "notification" ADD CONSTRAINT "FK_769cb6b73a1efe22ddf733ac453" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "following" ADD CONSTRAINT "FK_24e0042143a18157b234df186c3" FOREIGN KEY ("followeeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "following" ADD CONSTRAINT "FK_6516c5a6f3c015b4eed39978be5" FOREIGN KEY ("followerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "muting" ADD CONSTRAINT "FK_ec96b4fed9dae517e0dbbe0675c" FOREIGN KEY ("muteeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "muting" ADD CONSTRAINT "FK_93060675b4a79a577f31d260c67" FOREIGN KEY ("muterId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "sw_subscription" ADD CONSTRAINT "FK_97754ca6f2baff9b4abb7f853dd" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "blocking" ADD CONSTRAINT "FK_2cd4a2743a99671308f5417759e" FOREIGN KEY ("blockeeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "blocking" ADD CONSTRAINT "FK_0627125f1a8a42c9a1929edb552" FOREIGN KEY ("blockerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_list" ADD CONSTRAINT "FK_b7fcefbdd1c18dce86687531f99" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_list_joining" ADD CONSTRAINT "FK_d844bfc6f3f523a05189076efaa" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_list_joining" ADD CONSTRAINT "FK_605472305f26818cc93d1baaa74" FOREIGN KEY ("userListId") REFERENCES "user_list"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note_favorite" ADD CONSTRAINT "FK_47f4b1892f5d6ba8efb3057d81a" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "note_favorite" ADD CONSTRAINT "FK_0e00498f180193423c992bc4370" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_d049123c413e68ca52abe734203" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" ADD CONSTRAINT "FK_04cc96756f89d0b7f9473e8cdf3" FOREIGN KEY ("reporterId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_5377c307783fce2b6d352e1203b" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_cac14a4e3944454a5ce7daa5142" FOREIGN KEY ("recipientId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_535def119223ac05ad3fa9ef64b" FOREIGN KEY ("fileId") REFERENCES "drive_file"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "signin" ADD CONSTRAINT "FK_2c308dbdc50d94dc625670055f7" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "auth_session" ADD CONSTRAINT "FK_c072b729d71697f959bde66ade0" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "auth_session" ADD CONSTRAINT "FK_dbe037d4bddd17b03a1dc778dee" FOREIGN KEY ("appId") REFERENCES "app"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "follow_request" ADD CONSTRAINT "FK_12c01c0d1a79f77d9f6c15fadd2" FOREIGN KEY ("followeeId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "follow_request" ADD CONSTRAINT "FK_a7fd92dd6dc519e6fb435dd108f" FOREIGN KEY ("followerId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "reversi_game" ADD CONSTRAINT "FK_f7467510c60a45ce5aca6292743" FOREIGN KEY ("user1Id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "reversi_game" ADD CONSTRAINT "FK_6649a4e8c5d5cf32fb03b5da9f6" FOREIGN KEY ("user2Id") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "reversi_matching" ADD CONSTRAINT "FK_3b25402709dd9882048c2bbade0" FOREIGN KEY ("parentId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "reversi_matching" ADD CONSTRAINT "FK_e247b23a3c9b45f89ec1299d066" FOREIGN KEY ("childId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_note_pining" ADD CONSTRAINT "FK_bfbc6f79ba4007b4ce5097f08d6" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_note_pining" ADD CONSTRAINT "FK_68881008f7c3588ad7ecae471cf" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "poll" ADD CONSTRAINT "FK_da851e06d0dfe2ef397d8b1bf1b" FOREIGN KEY ("noteId") REFERENCES "note"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_keypair" ADD CONSTRAINT "FK_f4853eb41ab722fe05f81cedeb6" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_publickey" ADD CONSTRAINT "FK_10c146e4b39b443ede016f6736d" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_51cb79b5555effaf7d69ba1cff9"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_publickey" DROP CONSTRAINT "FK_10c146e4b39b443ede016f6736d"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_keypair" DROP CONSTRAINT "FK_f4853eb41ab722fe05f81cedeb6"`);
|
||||
await queryRunner.query(`ALTER TABLE "poll" DROP CONSTRAINT "FK_da851e06d0dfe2ef397d8b1bf1b"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_note_pining" DROP CONSTRAINT "FK_68881008f7c3588ad7ecae471cf"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_note_pining" DROP CONSTRAINT "FK_bfbc6f79ba4007b4ce5097f08d6"`);
|
||||
await queryRunner.query(`ALTER TABLE "reversi_matching" DROP CONSTRAINT "FK_e247b23a3c9b45f89ec1299d066"`);
|
||||
await queryRunner.query(`ALTER TABLE "reversi_matching" DROP CONSTRAINT "FK_3b25402709dd9882048c2bbade0"`);
|
||||
await queryRunner.query(`ALTER TABLE "reversi_game" DROP CONSTRAINT "FK_6649a4e8c5d5cf32fb03b5da9f6"`);
|
||||
await queryRunner.query(`ALTER TABLE "reversi_game" DROP CONSTRAINT "FK_f7467510c60a45ce5aca6292743"`);
|
||||
await queryRunner.query(`ALTER TABLE "follow_request" DROP CONSTRAINT "FK_a7fd92dd6dc519e6fb435dd108f"`);
|
||||
await queryRunner.query(`ALTER TABLE "follow_request" DROP CONSTRAINT "FK_12c01c0d1a79f77d9f6c15fadd2"`);
|
||||
await queryRunner.query(`ALTER TABLE "auth_session" DROP CONSTRAINT "FK_dbe037d4bddd17b03a1dc778dee"`);
|
||||
await queryRunner.query(`ALTER TABLE "auth_session" DROP CONSTRAINT "FK_c072b729d71697f959bde66ade0"`);
|
||||
await queryRunner.query(`ALTER TABLE "signin" DROP CONSTRAINT "FK_2c308dbdc50d94dc625670055f7"`);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_535def119223ac05ad3fa9ef64b"`);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_cac14a4e3944454a5ce7daa5142"`);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_5377c307783fce2b6d352e1203b"`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_04cc96756f89d0b7f9473e8cdf3"`);
|
||||
await queryRunner.query(`ALTER TABLE "abuse_user_report" DROP CONSTRAINT "FK_d049123c413e68ca52abe734203"`);
|
||||
await queryRunner.query(`ALTER TABLE "note_favorite" DROP CONSTRAINT "FK_0e00498f180193423c992bc4370"`);
|
||||
await queryRunner.query(`ALTER TABLE "note_favorite" DROP CONSTRAINT "FK_47f4b1892f5d6ba8efb3057d81a"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_list_joining" DROP CONSTRAINT "FK_605472305f26818cc93d1baaa74"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_list_joining" DROP CONSTRAINT "FK_d844bfc6f3f523a05189076efaa"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_list" DROP CONSTRAINT "FK_b7fcefbdd1c18dce86687531f99"`);
|
||||
await queryRunner.query(`ALTER TABLE "blocking" DROP CONSTRAINT "FK_0627125f1a8a42c9a1929edb552"`);
|
||||
await queryRunner.query(`ALTER TABLE "blocking" DROP CONSTRAINT "FK_2cd4a2743a99671308f5417759e"`);
|
||||
await queryRunner.query(`ALTER TABLE "sw_subscription" DROP CONSTRAINT "FK_97754ca6f2baff9b4abb7f853dd"`);
|
||||
await queryRunner.query(`ALTER TABLE "muting" DROP CONSTRAINT "FK_93060675b4a79a577f31d260c67"`);
|
||||
await queryRunner.query(`ALTER TABLE "muting" DROP CONSTRAINT "FK_ec96b4fed9dae517e0dbbe0675c"`);
|
||||
await queryRunner.query(`ALTER TABLE "following" DROP CONSTRAINT "FK_6516c5a6f3c015b4eed39978be5"`);
|
||||
await queryRunner.query(`ALTER TABLE "following" DROP CONSTRAINT "FK_24e0042143a18157b234df186c3"`);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_769cb6b73a1efe22ddf733ac453"`);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3b4e96eec8d36a8bbb9d02aa710"`);
|
||||
await queryRunner.query(`ALTER TABLE "notification" DROP CONSTRAINT "FK_3c601b70a1066d2c8b517094cb9"`);
|
||||
await queryRunner.query(`ALTER TABLE "note_unread" DROP CONSTRAINT "FK_e637cba4dc4410218c4251260e4"`);
|
||||
await queryRunner.query(`ALTER TABLE "note_unread" DROP CONSTRAINT "FK_56b0166d34ddae49d8ef7610bb9"`);
|
||||
await queryRunner.query(`ALTER TABLE "note_watching" DROP CONSTRAINT "FK_03e7028ab8388a3f5e3ce2a8619"`);
|
||||
await queryRunner.query(`ALTER TABLE "note_watching" DROP CONSTRAINT "FK_b0134ec406e8d09a540f8182888"`);
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" DROP CONSTRAINT "FK_45145e4953780f3cd5656f0ea6a"`);
|
||||
await queryRunner.query(`ALTER TABLE "note_reaction" DROP CONSTRAINT "FK_13761f64257f40c5636d0ff95ee"`);
|
||||
await queryRunner.query(`ALTER TABLE "poll_vote" DROP CONSTRAINT "FK_aecfbd5ef60374918e63ee95fa7"`);
|
||||
await queryRunner.query(`ALTER TABLE "poll_vote" DROP CONSTRAINT "FK_66d2bd2ee31d14bcc23069a89f8"`);
|
||||
await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_5b87d9d19127bd5d92026017a7b"`);
|
||||
await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_ec5c201576192ba8904c345c5cc"`);
|
||||
await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_52ccc804d7c69037d558bac4c96"`);
|
||||
await queryRunner.query(`ALTER TABLE "note" DROP CONSTRAINT "FK_17cb3553c700a4985dff5a30ff5"`);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_a3ff16c90cc87a82a0b5959e560"`);
|
||||
await queryRunner.query(`ALTER TABLE "access_token" DROP CONSTRAINT "FK_9949557d0e1b2c19e5344c171e9"`);
|
||||
await queryRunner.query(`ALTER TABLE "app" DROP CONSTRAINT "FK_3f5b0899ef90527a3462d7c2cb3"`);
|
||||
await queryRunner.query(`ALTER TABLE "user" DROP CONSTRAINT "FK_afc64b53f8db3707ceb34eb28e2"`);
|
||||
await queryRunner.query(`ALTER TABLE "user" DROP CONSTRAINT "FK_58f5c71eaab331645112cf8cfa5"`);
|
||||
await queryRunner.query(`ALTER TABLE "drive_file" DROP CONSTRAINT "FK_bb90d1956dafc4068c28aa7560a"`);
|
||||
await queryRunner.query(`ALTER TABLE "drive_file" DROP CONSTRAINT "FK_860fa6f6c7df5bb887249fba22e"`);
|
||||
await queryRunner.query(`ALTER TABLE "drive_folder" DROP CONSTRAINT "FK_00ceffb0cdc238b3233294f08f2"`);
|
||||
await queryRunner.query(`ALTER TABLE "drive_folder" DROP CONSTRAINT "FK_f4fc06e49c0171c85f1c48060d2"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__users"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__users_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__test"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__test_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__test_unique"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__test_unique_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__test_grouped"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__test_grouped_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__per_user_reaction"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__per_user_reaction_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__per_user_notes"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__per_user_notes_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__per_user_following"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__per_user_following_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__per_user_drive"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__per_user_drive_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__notes"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__notes_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__network"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__network_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__instance"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__instance_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__hashtag"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__hashtag_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__federation"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__federation_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__drive"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__drive_span_enum"`);
|
||||
await queryRunner.query(`DROP TABLE "__chart__active_users"`);
|
||||
await queryRunner.query(`DROP TYPE "__chart__active_users_span_enum"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_dce530b98e454793dac5ec2f5a"`);
|
||||
await queryRunner.query(`DROP TABLE "user_profile"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_171e64971c780ebd23fae140bb"`);
|
||||
await queryRunner.query(`DROP TABLE "user_publickey"`);
|
||||
await queryRunner.query(`DROP TABLE "user_keypair"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_7fa20a12319c7f6dc3aed98c0a"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0610ebcfcfb4a18441a9bcdab2"`);
|
||||
await queryRunner.query(`DROP TABLE "poll"`);
|
||||
await queryRunner.query(`DROP TYPE "poll_notevisibility_enum"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_410cd649884b501c02d6e72738"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_bfbc6f79ba4007b4ce5097f08d"`);
|
||||
await queryRunner.query(`DROP TABLE "user_note_pining"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e247b23a3c9b45f89ec1299d06"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_3b25402709dd9882048c2bbade"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_b604d92d6c7aec38627f6eaf16"`);
|
||||
await queryRunner.query(`DROP TABLE "reversi_matching"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_b46ec40746efceac604142be1c"`);
|
||||
await queryRunner.query(`DROP TABLE "reversi_game"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_4f4d35e1256c84ae3d1f0eab10"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_5900e907bb46516ddf2871327c"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_b37dafc86e9af007e3295c2781"`);
|
||||
await queryRunner.query(`DROP TABLE "emoji"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d54a512b822fac7ed52800f6b4"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a7fd92dd6dc519e6fb435dd108"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_12c01c0d1a79f77d9f6c15fadd"`);
|
||||
await queryRunner.query(`DROP TABLE "follow_request"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_62cb09e1129f6ec024ef66e183"`);
|
||||
await queryRunner.query(`DROP TABLE "auth_session"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_2c308dbdc50d94dc625670055f"`);
|
||||
await queryRunner.query(`DROP TABLE "signin"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_cac14a4e3944454a5ce7daa514"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_5377c307783fce2b6d352e1203"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e21cd3646e52ef9c94aaf17c2e"`);
|
||||
await queryRunner.query(`DROP TABLE "messaging_message"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0ff69e8dfa9fe31bb4a4660f59"`);
|
||||
await queryRunner.query(`DROP TABLE "registration_ticket"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_5cd442c3b2e74fdd99dae20243"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_04cc96756f89d0b7f9473e8cdf"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d049123c413e68ca52abe73420"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_db2098070b2b5a523c58181f74"`);
|
||||
await queryRunner.query(`DROP TABLE "abuse_user_report"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0f4fb9ad355f3effff221ef245"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_47f4b1892f5d6ba8efb3057d81"`);
|
||||
await queryRunner.query(`DROP TABLE "note_favorite"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0b03cbcd7e6a7ce068efa8ecc2"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0c44bf4f680964145f2a68a341"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d57f9030cd3af7f63ffb1c267c"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_4c02d38a976c3ae132228c6fce"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0e206cec573f1edff4a3062923"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_2710a55f826ee236ea1a62698f"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_347fec870eafea7b26c8a73bac"`);
|
||||
await queryRunner.query(`DROP TABLE "hashtag"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_605472305f26818cc93d1baaa7"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d844bfc6f3f523a05189076efa"`);
|
||||
await queryRunner.query(`DROP TABLE "user_list_joining"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_b7fcefbdd1c18dce86687531f9"`);
|
||||
await queryRunner.query(`DROP TABLE "user_list"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_98a1bc5cb30dfd159de056549f"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0627125f1a8a42c9a1929edb55"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_2cd4a2743a99671308f5417759"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_b9a354f7941c1e779f3b33aea6"`);
|
||||
await queryRunner.query(`DROP TABLE "blocking"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_97754ca6f2baff9b4abb7f853d"`);
|
||||
await queryRunner.query(`DROP TABLE "sw_subscription"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_1eb9d9824a630321a29fd3b290"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_93060675b4a79a577f31d260c6"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_ec96b4fed9dae517e0dbbe0675"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f86d57fbca33c7a4e6897490cc"`);
|
||||
await queryRunner.query(`DROP TABLE "muting"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_8d5afc98982185799b160e10eb"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_2cd3b2a6b4cf0b910b260afe08"`);
|
||||
await queryRunner.query(`DROP TABLE "instance"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_307be5f1d1252e0388662acb96"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_6516c5a6f3c015b4eed39978be"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_24e0042143a18157b234df186c"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_582f8fab771a9040a12961f3e7"`);
|
||||
await queryRunner.query(`DROP TABLE "following"`);
|
||||
await queryRunner.query(`DROP TABLE "meta"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_3c601b70a1066d2c8b517094cb"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_b11a5e627c41d4dc3170f1d370"`);
|
||||
await queryRunner.query(`DROP TABLE "notification"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d908433a4953cc13216cd9c274"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e637cba4dc4410218c4251260e"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_56b0166d34ddae49d8ef7610bb"`);
|
||||
await queryRunner.query(`DROP TABLE "note_unread"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a42c93c69989ce1d09959df4cf"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_44499765eec6b5489d72c4253b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_03e7028ab8388a3f5e3ce2a861"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_b0134ec406e8d09a540f818288"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_318cdf42a9cfc11f479bd802bb"`);
|
||||
await queryRunner.query(`DROP TABLE "note_watching"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_ad0c221b25672daf2df320a817"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_45145e4953780f3cd5656f0ea6"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_13761f64257f40c5636d0ff95e"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_01f4581f114e0ebd2bbb876f0b"`);
|
||||
await queryRunner.query(`DROP TABLE "note_reaction"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_50bd7164c5b78f1f4a42c4d21f"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_aecfbd5ef60374918e63ee95fa"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_66d2bd2ee31d14bcc23069a89f"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0fb627e1c2f753262a74f0562d"`);
|
||||
await queryRunner.query(`DROP TABLE "poll_vote"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_7125a826ab192eb27e11d358a5"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_88937d94d7443d9a99a76fa5c0"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_54ebcb6d27222913b908d56fd8"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_796a8c03959361f97dc2be1d5c"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_25dfc71b0369b003a4cd434d0b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_51c063b6a133a9cb87145450f5"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_153536c67d05e9adb24e99fc2b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_5b87d9d19127bd5d92026017a7"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_52ccc804d7c69037d558bac4c9"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_17cb3553c700a4985dff5a30ff"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e7c0567f5261063592f022e9b5"`);
|
||||
await queryRunner.query(`DROP TABLE "note"`);
|
||||
await queryRunner.query(`DROP TYPE "note_visibility_enum"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_9949557d0e1b2c19e5344c171e"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_64c327441248bae40f7d92f34f"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_70ba8f6af34bc924fc9e12adb8"`);
|
||||
await queryRunner.query(`DROP TABLE "access_token"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f49922d511d666848f250663c4"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_3f5b0899ef90527a3462d7c2cb"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_048a757923ed8b157e9895da53"`);
|
||||
await queryRunner.query(`DROP TABLE "app"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_5deb01ae162d1d70b80d064c27"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a854e557b1b14814750c7c7b0c"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_be623adaa4c566baf5d29ce0c8"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_3252a5df8d5bbd16b281f7799e"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_fa99d777623947a5b05f394cae"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a27b942a0d6dcff90e3ee9b5e8"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_80ca6e6ef65fb9ef34ea8c90f4"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e11e649824a45d8ed01d597fd9"`);
|
||||
await queryRunner.query(`DROP TABLE "user"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_bb90d1956dafc4068c28aa7560"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e5848eac4940934e23dbc17581"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_c55b2b7c284d9fef98026fc88e"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e74022ce9a074b3866f70e0d27"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d85a184c2540d2deba33daf642"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a40b8df8c989d7db937ea27cf6"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_37bb9a1b4585f8a3beb24c62d6"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_92779627994ac79277f070c91e"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_860fa6f6c7df5bb887249fba22"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_c8dfad3b72196dd1d6b5db168a"`);
|
||||
await queryRunner.query(`DROP TABLE "drive_file"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_00ceffb0cdc238b3233294f08f"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f4fc06e49c0171c85f1c48060d"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_02878d441ceae15ce060b73daf"`);
|
||||
await queryRunner.query(`DROP TABLE "drive_folder"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_584b536b49e53ac81beb39a177"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_8cb40cfc8f3c28261e6f887b03"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_8e4eb51a35d81b64dda28eed0a"`);
|
||||
await queryRunner.query(`DROP TABLE "log"`);
|
||||
await queryRunner.query(`DROP TYPE "log_level_enum"`);
|
||||
}
|
||||
|
||||
}
|
16
migration/1556746559567-UserProfile.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class UserProfile1556746559567 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE VARCHAR(64) USING "githubId"::VARCHAR(64)`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE VARCHAR(64) USING "discordExpiresDate"::VARCHAR(64)`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`UPDATE "user_profile" SET github = FALSE, discord = FALSE`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "githubId" TYPE INTEGER USING NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "discordExpiresDate" TYPE INTEGER USING NULL`);
|
||||
}
|
||||
|
||||
}
|
13
migration/1557476068003-PinnedUsers.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class PinnedUsers1557476068003 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "pinnedUsers" character varying(256) array NOT NULL DEFAULT '{}'::varchar[]`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "pinnedUsers"`);
|
||||
}
|
||||
|
||||
}
|
16
migration/1557761316509-AddSomeUrls.ts
Normal file
@ -0,0 +1,16 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class AddSomeUrls1557761316509 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "ToSUrl" character varying(512)`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "repositoryUrl" character varying(512) NOT NULL DEFAULT 'https://github.com/syuilo/misskey'`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "feedbackUrl" character varying(512) DEFAULT 'https://github.com/syuilo/misskey/issues/new'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "feedbackUrl"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "repositoryUrl"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "ToSUrl"`);
|
||||
}
|
||||
}
|
31
migration/1557932705754-ObjectStorageSetting.ts
Normal file
@ -0,0 +1,31 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class ObjectStorageSetting1557932705754 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "useObjectStorage" boolean NOT NULL DEFAULT false`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageBucket" character varying(512)`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStoragePrefix" character varying(512)`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageBaseUrl" character varying(512)`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageEndpoint" character varying(512)`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageRegion" character varying(512)`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageAccessKey" character varying(512)`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageSecretKey" character varying(512)`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStoragePort" integer`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "objectStorageUseSSL" boolean NOT NULL DEFAULT true`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageUseSSL"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStoragePort"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageSecretKey"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageAccessKey"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageRegion"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageEndpoint"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageBaseUrl"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStoragePrefix"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "objectStorageBucket"`);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "useObjectStorage"`);
|
||||
}
|
||||
|
||||
}
|
23
migration/1558072954435-PageLike.ts
Normal file
@ -0,0 +1,23 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class PageLike1558072954435 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE TABLE "page_like" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "pageId" character varying(32) NOT NULL, CONSTRAINT "PK_813f034843af992d3ae0f43c64c" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0e61efab7f88dbb79c9166dbb4" ON "page_like" ("userId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_4ce6fb9c70529b4c8ac46c9bfa" ON "page_like" ("userId", "pageId") `);
|
||||
await queryRunner.query(`ALTER TABLE "page" ADD "likedCount" integer NOT NULL DEFAULT 0`);
|
||||
await queryRunner.query(`ALTER TABLE "page_like" ADD CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "page_like" ADD CONSTRAINT "FK_cf8782626dced3176038176a847" FOREIGN KEY ("pageId") REFERENCES "page"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "page_like" DROP CONSTRAINT "FK_cf8782626dced3176038176a847"`);
|
||||
await queryRunner.query(`ALTER TABLE "page_like" DROP CONSTRAINT "FK_0e61efab7f88dbb79c9166dbb48"`);
|
||||
await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "likedCount"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_4ce6fb9c70529b4c8ac46c9bfa"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0e61efab7f88dbb79c9166dbb4"`);
|
||||
await queryRunner.query(`DROP TABLE "page_like"`);
|
||||
}
|
||||
|
||||
}
|
41
migration/1558103093633-UserGroup.ts
Normal file
@ -0,0 +1,41 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class UserGroup1558103093633 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE TABLE "user_group" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(256) NOT NULL, "userId" character varying(32) NOT NULL, "isPrivate" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_3c29fba6fe013ec8724378ce7c9" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_20e30aa35180e317e133d75316" ON "user_group" ("createdAt") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_3d6b372788ab01be58853003c9" ON "user_group" ("userId") `);
|
||||
await queryRunner.query(`CREATE TABLE "user_group_joining" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_15f2425885253c5507e1599cfe7" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f3a1b4bd0c7cabba958a0c0b23" ON "user_group_joining" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_67dc758bc0566985d1b3d39986" ON "user_group_joining" ("userGroupId") `);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" ADD "groupId" character varying(32)`);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" ADD "reads" character varying(32) array NOT NULL DEFAULT '{}'::varchar[]`);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" ALTER COLUMN "recipientId" DROP NOT NULL`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."recipientId" IS 'The recipient user ID.'`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_2c4be03b446884f9e9c502135b" ON "messaging_message" ("groupId") `);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" ADD CONSTRAINT "FK_2c4be03b446884f9e9c502135be" FOREIGN KEY ("groupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_group" ADD CONSTRAINT "FK_3d6b372788ab01be58853003c93" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_group_joining" ADD CONSTRAINT "FK_67dc758bc0566985d1b3d399865" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_67dc758bc0566985d1b3d399865"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_group_joining" DROP CONSTRAINT "FK_f3a1b4bd0c7cabba958a0c0b231"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_group" DROP CONSTRAINT "FK_3d6b372788ab01be58853003c93"`);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" DROP CONSTRAINT "FK_2c4be03b446884f9e9c502135be"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_2c4be03b446884f9e9c502135b"`);
|
||||
await queryRunner.query(`COMMENT ON COLUMN "messaging_message"."recipientId" IS ''`);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" ALTER COLUMN "recipientId" SET NOT NULL`);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "reads"`);
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "groupId"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_67dc758bc0566985d1b3d39986"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f3a1b4bd0c7cabba958a0c0b23"`);
|
||||
await queryRunner.query(`DROP TABLE "user_group_joining"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_3d6b372788ab01be58853003c9"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_20e30aa35180e317e133d75316"`);
|
||||
await queryRunner.query(`DROP TABLE "user_group"`);
|
||||
}
|
||||
|
||||
}
|
25
migration/1558257926829-UserGroupInvite.ts
Normal file
@ -0,0 +1,25 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class UserGroupInvite1558257926829 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE TABLE "user_group_invite" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "userGroupId" character varying(32) NOT NULL, CONSTRAINT "PK_3893884af0d3a5f4d01e7921a97" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_1039988afa3bf991185b277fe0" ON "user_group_invite" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e10924607d058004304611a436" ON "user_group_invite" ("userGroupId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_78787741f9010886796f2320a4" ON "user_group_invite" ("userId", "userGroupId") `);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_d9ecaed8c6dc43f3592c229282" ON "user_group_joining" ("userId", "userGroupId") `);
|
||||
await queryRunner.query(`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_1039988afa3bf991185b277fe03" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_group_invite" ADD CONSTRAINT "FK_e10924607d058004304611a436a" FOREIGN KEY ("userGroupId") REFERENCES "user_group"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_e10924607d058004304611a436a"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_group_invite" DROP CONSTRAINT "FK_1039988afa3bf991185b277fe03"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d9ecaed8c6dc43f3592c229282"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_78787741f9010886796f2320a4"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e10924607d058004304611a436"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_1039988afa3bf991185b277fe0"`);
|
||||
await queryRunner.query(`DROP TABLE "user_group_invite"`);
|
||||
}
|
||||
|
||||
}
|
13
migration/1558266512381-UserListJoining.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class UserListJoining1558266512381 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_90f7da835e4c10aca6853621e1" ON "user_list_joining" ("userId", "userListId") `);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_90f7da835e4c10aca6853621e1"`);
|
||||
}
|
||||
|
||||
}
|
29
migration/1561706992953-webauthn.ts
Normal file
@ -0,0 +1,29 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class webauthn1561706992953 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE TABLE "attestation_challenge" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "challenge" character varying(64) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "registrationChallenge" boolean NOT NULL DEFAULT false, CONSTRAINT "PK_d0ba6786e093f1bcb497572a6b5" PRIMARY KEY ("id", "userId"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f1a461a618fa1755692d0e0d59" ON "attestation_challenge" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_47efb914aed1f72dd39a306c7b" ON "attestation_challenge" ("challenge") `);
|
||||
await queryRunner.query(`CREATE TABLE "user_security_key" ("id" character varying NOT NULL, "userId" character varying(32) NOT NULL, "publicKey" character varying NOT NULL, "lastUsed" TIMESTAMP WITH TIME ZONE NOT NULL, "name" character varying(30) NOT NULL, CONSTRAINT "PK_3e508571121ab39c5f85d10c166" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_ff9ca3b5f3ee3d0681367a9b44" ON "user_security_key" ("userId") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0d7718e562dcedd0aa5cf2c9f7" ON "user_security_key" ("publicKey") `);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "securityKeysAvailable" boolean NOT NULL DEFAULT false`);
|
||||
await queryRunner.query(`ALTER TABLE "attestation_challenge" ADD CONSTRAINT "FK_f1a461a618fa1755692d0e0d592" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
await queryRunner.query(`ALTER TABLE "user_security_key" ADD CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_security_key" DROP CONSTRAINT "FK_ff9ca3b5f3ee3d0681367a9b447"`);
|
||||
await queryRunner.query(`ALTER TABLE "attestation_challenge" DROP CONSTRAINT "FK_f1a461a618fa1755692d0e0d592"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "securityKeysAvailable"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0d7718e562dcedd0aa5cf2c9f7"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_ff9ca3b5f3ee3d0681367a9b44"`);
|
||||
await queryRunner.query(`DROP TABLE "user_security_key"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_47efb914aed1f72dd39a306c7b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f1a461a618fa1755692d0e0d59"`);
|
||||
await queryRunner.query(`DROP TABLE "attestation_challenge"`);
|
||||
}
|
||||
|
||||
}
|
201
migration/1561873850023-ChartIndexes.ts
Normal file
@ -0,0 +1,201 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class ChartIndexes1561873850023 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc" ON "__chart__active_users" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_15e91a03aeeac9dbccdf43fc06" ON "__chart__active_users" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_00ed5f86db1f7efafb1978bf21" ON "__chart__active_users" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_20f57cc8f142c131340ee16742" ON "__chart__active_users" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_9a3ed15a30ab7e3a37702e6e08" ON "__chart__active_users" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_c26e2c1cbb6e911e0554b27416" ON "__chart__active_users" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_13565815f618a1ff53886c5b28" ON "__chart__drive" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_3fa0d0f17ca72e3dc80999a032" ON "__chart__drive" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_7a170f67425e62a8fabb76c872" ON "__chart__drive" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_6e1df243476e20cbf86572ecc0" ON "__chart__drive" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_3313d7288855ec105b5bbf6c21" ON "__chart__drive" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_06690fc959f1c9fdaf21928222" ON "__chart__drive" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_36cb699c49580d4e6c2e6159f9" ON "__chart__federation" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e447064455928cf627590ef527" ON "__chart__federation" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_76e87c7bfc5d925fcbba405d84" ON "__chart__federation" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_2d416e6af791a82e338c79d480" ON "__chart__federation" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_dd907becf76104e4b656659e6b" ON "__chart__federation" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e9cd07672b37d8966cf3709283" ON "__chart__federation" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_07747a1038c05f532a718fe1de" ON "__chart__hashtag" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_fcc181fb8283009c61cc4083ef" ON "__chart__hashtag" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_99a7d2faaef84a6f728d714ad6" ON "__chart__hashtag" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_49975586f50ed7b800fdd88fbd" ON "__chart__hashtag" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_25a97c02003338124b2b75fdbc" ON "__chart__hashtag" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_6d6f156ceefc6bc5f273a0e370" ON "__chart__hashtag" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_6b8f34a1a64b06014b6fb66824" ON "__chart__instance" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_c12f0af4a66cdd30c2287ce8aa" ON "__chart__instance" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63" ON "__chart__instance" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_d0a4f79af5a97b08f37b547197" ON "__chart__instance" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_39ee857ab2f23493037c6b6631" ON "__chart__instance" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f5448d9633cff74208d850aabe" ON "__chart__instance" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a1efd3e0048a5f2793a47360dc" ON "__chart__network" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f8dd01baeded2ffa833e0a610a" ON "__chart__network" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_7b5da130992ec9df96712d4290" ON "__chart__network" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_08fac0eb3b11f04c200c0b40dd" ON "__chart__network" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0a905b992fecd2b5c3fb98759e" ON "__chart__network" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_9ff6944f01acb756fdc92d7563" ON "__chart__network" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_42eb716a37d381cdf566192b2b" ON "__chart__notes" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e69096589f11e3baa98ddd64d0" ON "__chart__notes" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_7036f2957151588b813185c794" ON "__chart__notes" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0c9a159c5082cbeef3ca6706b5" ON "__chart__notes" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f09d543e3acb16c5976bdb31fa" ON "__chart__notes" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_924fc196c80ca24bae01dd37e4" ON "__chart__notes" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_5f86db6492274e07c1a3cdf286" ON "__chart__per_user_drive" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_328f259961e60c4fa0bfcf55ca" ON "__chart__per_user_drive" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e496ca8096d28f6b9b509264dc" ON "__chart__per_user_drive" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53" ON "__chart__per_user_drive" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_30bf67687f483ace115c5ca642" ON "__chart__per_user_drive" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f2aeafde2ae6fbad38e857631b" ON "__chart__per_user_drive" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_7af07790712aa3438ff6773f3b" ON "__chart__per_user_following" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f92dd6d03f8d994f29987f6214" ON "__chart__per_user_following" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_4b3593098b6edc9c5afe36b18b" ON "__chart__per_user_following" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f" ON "__chart__per_user_following" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_b77d4dd9562c3a899d9a286fcd" ON "__chart__per_user_following" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_4db3b84c7be0d3464714f3e0b1" ON "__chart__per_user_following" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_84234bd1abb873f07329681c83" ON "__chart__per_user_notes" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_8d2cbbc8114d90d19b44d626b6" ON "__chart__per_user_notes" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_55bf20f366979f2436de99206b" ON "__chart__per_user_notes" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_046feeb12e9ef5f783f409866a" ON "__chart__per_user_notes" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_5048e9daccbbbc6d567bb142d3" ON "__chart__per_user_notes" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f68a5ab958f9f5fa17a32ac23b" ON "__chart__per_user_notes" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f7bf4c62059764c2c2bb40fdab" ON "__chart__per_user_reaction" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_65633a106bce43fc7c5c30a5c7" ON "__chart__per_user_reaction" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_8cf3156fd7a6b15c43459c6e3b" ON "__chart__per_user_reaction" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_edeb73c09c3143a81bcb34d569" ON "__chart__per_user_reaction" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_229a41ad465f9205f1f5703291" ON "__chart__per_user_reaction" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_e316f01a6d24eb31db27f88262" ON "__chart__per_user_reaction" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_0c641990ecf47d2545df4edb75" ON "__chart__test_grouped" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_2be7ec6cebddc14dc11e206686" ON "__chart__test_grouped" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_234dff3c0b56a6150b95431ab9" ON "__chart__test_grouped" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a5133470f4825902e170328ca5" ON "__chart__test_grouped" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_b14489029e4b3aaf4bba5fb524" ON "__chart__test_grouped" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_84e661abb7bd1e51b690d4b017" ON "__chart__test_grouped" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_437bab3c6061d90f6bb65fd2cc" ON "__chart__test_unique" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_5c73bf61da4f6e6f15bae88ed1" ON "__chart__test_unique" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_bbfa573a8181018851ed0b6357" ON "__chart__test_unique" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_d70c86baedc68326be11f9c0ce" ON "__chart__test_unique" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a0cd75442dd10d0643a17c4a49" ON "__chart__test_unique" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_66e1e1ecd2f29e57778af35b59" ON "__chart__test_unique" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_b070a906db04b44c67c6c2144d" ON "__chart__test" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_92255988735563f0fe4aba1f05" ON "__chart__test" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_d41cce6aee1a50bfc062038f9b" ON "__chart__test" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_c5870993e25c3d5771f91f5003" ON "__chart__test" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a319e5dbf47e8a17497623beae" ON "__chart__test" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f170de677ea75ad4533de2723e" ON "__chart__test" ("span", "date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_845254b3eaf708ae8a6cac3026" ON "__chart__users" ("date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_7c184198ecf66a8d3ecb253ab3" ON "__chart__users" ("span") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_ed9b95919c672a13008e9487ee" ON "__chart__users" ("group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_f091abb24193d50c653c6b77fc" ON "__chart__users" ("span", "date") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_337e9599f278bd7537fe30876f" ON "__chart__users" ("date", "group") `);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a770a57c70e668cc61590c9161" ON "__chart__users" ("span", "date", "group") `);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`DROP INDEX "IDX_a770a57c70e668cc61590c9161"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_337e9599f278bd7537fe30876f"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f091abb24193d50c653c6b77fc"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_ed9b95919c672a13008e9487ee"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_7c184198ecf66a8d3ecb253ab3"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_845254b3eaf708ae8a6cac3026"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f170de677ea75ad4533de2723e"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a319e5dbf47e8a17497623beae"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_c5870993e25c3d5771f91f5003"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d41cce6aee1a50bfc062038f9b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_92255988735563f0fe4aba1f05"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_b070a906db04b44c67c6c2144d"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_66e1e1ecd2f29e57778af35b59"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a0cd75442dd10d0643a17c4a49"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d70c86baedc68326be11f9c0ce"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_bbfa573a8181018851ed0b6357"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_5c73bf61da4f6e6f15bae88ed1"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_437bab3c6061d90f6bb65fd2cc"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_84e661abb7bd1e51b690d4b017"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_b14489029e4b3aaf4bba5fb524"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a5133470f4825902e170328ca5"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_234dff3c0b56a6150b95431ab9"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_2be7ec6cebddc14dc11e206686"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0c641990ecf47d2545df4edb75"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e316f01a6d24eb31db27f88262"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_229a41ad465f9205f1f5703291"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_edeb73c09c3143a81bcb34d569"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_8cf3156fd7a6b15c43459c6e3b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_65633a106bce43fc7c5c30a5c7"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f7bf4c62059764c2c2bb40fdab"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f68a5ab958f9f5fa17a32ac23b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_5048e9daccbbbc6d567bb142d3"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_046feeb12e9ef5f783f409866a"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_55bf20f366979f2436de99206b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_8d2cbbc8114d90d19b44d626b6"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_84234bd1abb873f07329681c83"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_4db3b84c7be0d3464714f3e0b1"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_b77d4dd9562c3a899d9a286fcd"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_57b5458d0d3d6d1e7f13d4e57f"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_4b3593098b6edc9c5afe36b18b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f92dd6d03f8d994f29987f6214"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_7af07790712aa3438ff6773f3b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f2aeafde2ae6fbad38e857631b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_30bf67687f483ace115c5ca642"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_42ea9381f0fda8dfe0fa1c8b53"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e496ca8096d28f6b9b509264dc"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_328f259961e60c4fa0bfcf55ca"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_5f86db6492274e07c1a3cdf286"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_924fc196c80ca24bae01dd37e4"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f09d543e3acb16c5976bdb31fa"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0c9a159c5082cbeef3ca6706b5"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_7036f2957151588b813185c794"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e69096589f11e3baa98ddd64d0"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_42eb716a37d381cdf566192b2b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_9ff6944f01acb756fdc92d7563"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0a905b992fecd2b5c3fb98759e"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_08fac0eb3b11f04c200c0b40dd"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_7b5da130992ec9df96712d4290"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f8dd01baeded2ffa833e0a610a"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a1efd3e0048a5f2793a47360dc"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_f5448d9633cff74208d850aabe"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_39ee857ab2f23493037c6b6631"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_d0a4f79af5a97b08f37b547197"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_da8a46ba84ca1d8bb5a29bfb63"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_c12f0af4a66cdd30c2287ce8aa"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_6b8f34a1a64b06014b6fb66824"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_6d6f156ceefc6bc5f273a0e370"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_25a97c02003338124b2b75fdbc"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_49975586f50ed7b800fdd88fbd"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_99a7d2faaef84a6f728d714ad6"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_fcc181fb8283009c61cc4083ef"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_07747a1038c05f532a718fe1de"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e9cd07672b37d8966cf3709283"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_dd907becf76104e4b656659e6b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_2d416e6af791a82e338c79d480"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_76e87c7bfc5d925fcbba405d84"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_e447064455928cf627590ef527"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_36cb699c49580d4e6c2e6159f9"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_06690fc959f1c9fdaf21928222"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_3313d7288855ec105b5bbf6c21"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_6e1df243476e20cbf86572ecc0"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_7a170f67425e62a8fabb76c872"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_3fa0d0f17ca72e3dc80999a032"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_13565815f618a1ff53886c5b28"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_c26e2c1cbb6e911e0554b27416"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_9a3ed15a30ab7e3a37702e6e08"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_20f57cc8f142c131340ee16742"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_00ed5f86db1f7efafb1978bf21"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_15e91a03aeeac9dbccdf43fc06"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_0ad37b7ef50f4ddc84363d7ccc"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_90148bbc2bf0854428786bfc15"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_88937d94d7443d9a99a76fa5c0"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_54ebcb6d27222913b908d56fd8"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_796a8c03959361f97dc2be1d5c"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_25dfc71b0369b003a4cd434d0b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_51c063b6a133a9cb87145450f5"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_fa99d777623947a5b05f394cae"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_315c779174fe8247ab324f036e"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_c5d46cbfda48b1c33ed852e21b"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_8cb40cfc8f3c28261e6f887b03"`);
|
||||
}
|
||||
|
||||
}
|
13
migration/1562422242907-PasswordLessLogin.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class PasswordLessLogin1562422242907 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD COLUMN "usePasswordLessLogin" boolean DEFAULT false NOT NULL`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "usePasswordLessLogin"`);
|
||||
}
|
||||
|
||||
}
|
17
migration/1562444565093-PinnedPage.ts
Normal file
@ -0,0 +1,17 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class PinnedPage1562444565093 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "pinnedPageId" character varying(32)`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "UQ_6dc44f1ceb65b1e72bacef2ca27" UNIQUE ("pinnedPageId")`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27" FOREIGN KEY ("pinnedPageId") REFERENCES "page"("id") ON DELETE SET NULL ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "FK_6dc44f1ceb65b1e72bacef2ca27"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP CONSTRAINT "UQ_6dc44f1ceb65b1e72bacef2ca27"`);
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "pinnedPageId"`);
|
||||
}
|
||||
|
||||
}
|
13
migration/1562448332510-PageTitleHideOption.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class PageTitleHideOption1562448332510 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "page" ADD "hideTitleWhenPinned" boolean NOT NULL DEFAULT false`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "page" DROP COLUMN "hideTitleWhenPinned"`);
|
||||
}
|
||||
|
||||
}
|
17
migration/1562869971568-ModerationLog.ts
Normal file
@ -0,0 +1,17 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class ModerationLog1562869971568 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE TABLE "moderation_log" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "userId" character varying(32) NOT NULL, "type" character varying(128) NOT NULL, "info" jsonb NOT NULL, CONSTRAINT "PK_d0adca6ecfd068db83e4526cc26" PRIMARY KEY ("id"))`);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_a08ad074601d204e0f69da9a95" ON "moderation_log" ("userId") `);
|
||||
await queryRunner.query(`ALTER TABLE "moderation_log" ADD CONSTRAINT "FK_a08ad074601d204e0f69da9a954" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "moderation_log" DROP CONSTRAINT "FK_a08ad074601d204e0f69da9a954"`);
|
||||
await queryRunner.query(`DROP INDEX "IDX_a08ad074601d204e0f69da9a95"`);
|
||||
await queryRunner.query(`DROP TABLE "moderation_log"`);
|
||||
}
|
||||
|
||||
}
|
13
migration/1563757595828-UsedUsername.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class UsedUsername1563757595828 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE TABLE "used_username" ("username" character varying(128) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, CONSTRAINT "PK_78fd79d2d24c6ac2f4cc9a31a5d" PRIMARY KEY ("username"))`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`DROP TABLE "used_username"`);
|
||||
}
|
||||
|
||||
}
|
13
migration/1565634203341-room.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class room1565634203341 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" ADD "room" jsonb NOT NULL DEFAULT '{}'`);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "room"`);
|
||||
}
|
||||
|
||||
}
|
13
migration/1571220798684-CustomEmojiCategory.ts
Normal file
@ -0,0 +1,13 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class CustomEmojiCategory1571220798684 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "emoji" ADD "category" character varying(128)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "emoji" DROP COLUMN "category"`, undefined);
|
||||
}
|
||||
|
||||
}
|
29
migration/1572760203493-nodeinfo.ts
Normal file
@ -0,0 +1,29 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class nodeinfo1572760203493 implements MigrationInterface {
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "system"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "softwareName" character varying(64) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "softwareVersion" character varying(64) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "openRegistrations" boolean DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "name" character varying(256) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "description" character varying(4096) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "maintainerName" character varying(128) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "maintainerEmail" character varying(256) DEFAULT null`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "infoUpdatedAt" TIMESTAMP WITH TIME ZONE`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "infoUpdatedAt"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "maintainerEmail"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "maintainerName"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "description"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "name"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "openRegistrations"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "softwareVersion"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" DROP COLUMN "softwareName"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "instance" ADD "system" character varying(64)`, undefined);
|
||||
}
|
||||
|
||||
}
|
14
migration/1576269851876-TalkFederationId.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class TalkFederationId1576269851876 implements MigrationInterface {
|
||||
name = 'TalkFederationId1576269851876'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" ADD "uri" character varying(512)`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "messaging_message" DROP COLUMN "uri"`, undefined);
|
||||
}
|
||||
|
||||
}
|
14
migration/1576869585998-ProxyRemoteFiles.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class ProxyRemoteFiles1576869585998 implements MigrationInterface {
|
||||
name = 'ProxyRemoteFiles1576869585998'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "proxyRemoteFiles" boolean NOT NULL DEFAULT false`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "proxyRemoteFiles"`, undefined);
|
||||
}
|
||||
|
||||
}
|
34
migration/1579267006611-v12.ts
Normal file
@ -0,0 +1,34 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class v121579267006611 implements MigrationInterface {
|
||||
name = 'v121579267006611'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`CREATE TABLE "announcement" ("id" character varying(32) NOT NULL, "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL, "text" character varying(8192) NOT NULL, "title" character varying(256) NOT NULL, "imageUrl" character varying(1024), CONSTRAINT "PK_e0ef0550174fd1099a308fd18a0" PRIMARY KEY ("id"))`, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_118ec703e596086fc4515acb39" ON "announcement" ("createdAt") `, undefined);
|
||||
await queryRunner.query(`CREATE TABLE "announcement_read" ("id" character varying(32) NOT NULL, "userId" character varying(32) NOT NULL, "announcementId" character varying(32) NOT NULL, CONSTRAINT "PK_4b90ad1f42681d97b2683890c5e" PRIMARY KEY ("id"))`, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_8288151386172b8109f7239ab2" ON "announcement_read" ("userId") `, undefined);
|
||||
await queryRunner.query(`CREATE INDEX "IDX_603a7b1e7aa0533c6c88e9bfaf" ON "announcement_read" ("announcementId") `, undefined);
|
||||
await queryRunner.query(`CREATE UNIQUE INDEX "IDX_924fa71815cfa3941d003702a0" ON "announcement_read" ("userId", "announcementId") `, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "user" DROP COLUMN "isVerified"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "announcements"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "meta" DROP COLUMN "enableEmojiReaction"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "announcement_read" ADD CONSTRAINT "FK_8288151386172b8109f7239ab28" FOREIGN KEY ("userId") REFERENCES "user"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "announcement_read" ADD CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe" FOREIGN KEY ("announcementId") REFERENCES "announcement"("id") ON DELETE CASCADE ON UPDATE NO ACTION`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_603a7b1e7aa0533c6c88e9bfafe"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "announcement_read" DROP CONSTRAINT "FK_8288151386172b8109f7239ab28"`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "enableEmojiReaction" boolean NOT NULL DEFAULT true`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "meta" ADD "announcements" jsonb NOT NULL DEFAULT '[]'`, undefined);
|
||||
await queryRunner.query(`ALTER TABLE "user" ADD "isVerified" boolean NOT NULL DEFAULT false`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_924fa71815cfa3941d003702a0"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_603a7b1e7aa0533c6c88e9bfaf"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_8288151386172b8109f7239ab2"`, undefined);
|
||||
await queryRunner.query(`DROP TABLE "announcement_read"`, undefined);
|
||||
await queryRunner.query(`DROP INDEX "IDX_118ec703e596086fc4515acb39"`, undefined);
|
||||
await queryRunner.query(`DROP TABLE "announcement"`, undefined);
|
||||
}
|
||||
|
||||
}
|
14
migration/1579270193251-v12-2.ts
Normal file
@ -0,0 +1,14 @@
|
||||
import {MigrationInterface, QueryRunner} from "typeorm";
|
||||
|
||||
export class v1221579270193251 implements MigrationInterface {
|
||||
name = 'v1221579270193251'
|
||||
|
||||
public async up(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "announcement_read" ADD "createdAt" TIMESTAMP WITH TIME ZONE NOT NULL`, undefined);
|
||||
}
|
||||
|
||||
public async down(queryRunner: QueryRunner): Promise<any> {
|
||||
await queryRunner.query(`ALTER TABLE "announcement_read" DROP COLUMN "createdAt"`, undefined);
|
||||
}
|
||||
|
||||
}
|