Compare commits
927 Commits
fix/sql
...
feat/remov
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
56a6f6cb99 | ||
|
|
c9c7d6ee60 | ||
|
|
8246ff84ae | ||
|
|
e25488b16b | ||
|
|
38de9a1d85 | ||
|
|
70d0c5e864 | ||
|
|
9d82f3fc99 | ||
|
|
b99cdda32c | ||
|
|
89895fce27 | ||
|
|
21b4f9f9bd | ||
|
|
f4033e5cd9 | ||
|
|
819d61cbb5 | ||
|
|
ec7d65e2d9 | ||
|
|
0c9d877fed | ||
|
|
2a0252a189 | ||
|
|
2772af70b6 | ||
|
|
c6dc08fce2 | ||
|
|
82f13fb209 | ||
|
|
a3f3615405 | ||
|
|
630faced73 | ||
|
|
b946fd0c17 | ||
|
|
b720b43551 | ||
|
|
10660ddf12 | ||
|
|
4416f21d06 | ||
|
|
0307f01c84 | ||
|
|
feb6faf937 | ||
|
|
2fd55fe543 | ||
|
|
36f20b31f4 | ||
|
|
0d0060c98d | ||
|
|
1a83102edd | ||
|
|
8a54454b21 | ||
|
|
37d4d78d1f | ||
|
|
64798ee5a6 | ||
|
|
cd838c2485 | ||
|
|
68d68c9a24 | ||
|
|
6b251369d3 | ||
|
|
8a0d369c69 | ||
|
|
fb827e6118 | ||
|
|
e3447a37be | ||
|
|
9f7d2e5290 | ||
|
|
85d1888853 | ||
|
|
36b8176799 | ||
|
|
06292c3bee | ||
|
|
fc47ed6b86 | ||
|
|
ad99fdd596 | ||
|
|
ddf48c09fb | ||
|
|
7b57caacf9 | ||
|
|
f41a354d1a | ||
|
|
1de387c285 | ||
|
|
d886ac4106 | ||
|
|
da0b7a403e | ||
|
|
05ce9e784d | ||
|
|
f272efcfd4 | ||
|
|
7721492a41 | ||
|
|
fe31f928dc | ||
|
|
79e404f878 | ||
|
|
a521ab6ce3 | ||
|
|
4155d2efaf | ||
|
|
dc60c4eb00 | ||
|
|
e003b1ed61 | ||
|
|
1316ad7d0b | ||
|
|
a2f5dad43e | ||
|
|
23ab9e17e8 | ||
|
|
4bf420a8aa | ||
|
|
85d63ef3ec | ||
|
|
8a24561bc6 | ||
|
|
6acf4c20ca | ||
|
|
1e0b076894 | ||
|
|
9a12b7c144 | ||
|
|
7ee2e758c8 | ||
|
|
478349ba8a | ||
|
|
b77167b54a | ||
|
|
aa5038c363 | ||
|
|
38ff5fe489 | ||
|
|
edf2e92b66 | ||
|
|
d723827230 | ||
|
|
e5818d8f92 | ||
|
|
5d7803ad20 | ||
|
|
13ef195ca6 | ||
|
|
3def0434f9 | ||
|
|
8742dd2fdf | ||
|
|
406967eaae | ||
|
|
187b2b6305 | ||
|
|
c7b3bc9be8 | ||
|
|
754dc8ee37 | ||
|
|
710a829741 | ||
|
|
359a2aeaba | ||
|
|
ba2fa9f6bd | ||
|
|
ff92a5f743 | ||
|
|
bc2e0d2813 | ||
|
|
51fb82406e | ||
|
|
e9ecc34629 | ||
|
|
950a083c3b | ||
|
|
895731754a | ||
|
|
353cbf1664 | ||
|
|
ef63bce224 | ||
|
|
df3dca4882 | ||
|
|
b3575a1c9d | ||
|
|
c270d353a9 | ||
|
|
17f7ff625b | ||
|
|
d12c3bc5a4 | ||
|
|
a4f7f9966c | ||
|
|
a4c7e6fde8 | ||
|
|
bb09fbd322 | ||
|
|
8247f19850 | ||
|
|
9a3ec66409 | ||
|
|
157a2d163b | ||
|
|
6c925a9968 | ||
|
|
9d4f00837c | ||
|
|
c3e3d52832 | ||
|
|
c8ca880b08 | ||
|
|
968ff0eda7 | ||
|
|
ffe4902339 | ||
|
|
2da022394c | ||
|
|
775ccef13f | ||
|
|
61c0cf6ac8 | ||
|
|
02bab42058 | ||
|
|
dbb5959bf5 | ||
|
|
73fe2abd7d | ||
|
|
06a0fc2222 | ||
|
|
be085f8b57 | ||
|
|
080e843a04 | ||
|
|
0eacaefa34 | ||
|
|
60479d71ef | ||
|
|
25a3bd57e6 | ||
|
|
37c5834511 | ||
|
|
f4fa9881af | ||
|
|
fc77e37828 | ||
|
|
307bd209bd | ||
|
|
d2fa463a1e | ||
|
|
0b1b5cb8e7 | ||
|
|
d55bfd4b49 | ||
|
|
ff9097e4f5 | ||
|
|
e815985e4a | ||
|
|
d6ba67a4ae | ||
|
|
f60bf6cde6 | ||
|
|
c65af9f60a | ||
|
|
22cde0cac6 | ||
|
|
162b7bdb84 | ||
|
|
a84a7bdb73 | ||
|
|
524f50b864 | ||
|
|
e9018ef178 | ||
|
|
ed23bcb8c2 | ||
|
|
ebe21f46ee | ||
|
|
85f2987532 | ||
|
|
2586443fbe | ||
|
|
e5f9e76801 | ||
|
|
ab18daa5af | ||
|
|
5a79cffc84 | ||
|
|
2975d79da7 | ||
|
|
7fccbe5066 | ||
|
|
6c66e7fe9b | ||
|
|
e8d2f4aff0 | ||
|
|
dc4ab4a494 | ||
|
|
c11e39b12a | ||
|
|
51d541fae0 | ||
|
|
966b1f5f8b | ||
|
|
c6feb67d67 | ||
|
|
5c094331c9 | ||
|
|
b6586c6fa2 | ||
|
|
d1f863eeac | ||
|
|
23ab77b426 | ||
|
|
0c9eab2c41 | ||
|
|
1dae64f865 | ||
|
|
c2edaa810a | ||
|
|
24eace0f73 | ||
|
|
3c06b122e6 | ||
|
|
2fdb647413 | ||
|
|
3ca9f81298 | ||
|
|
56c4630e0d | ||
|
|
36af3ddcf1 | ||
|
|
0e7afe3c99 | ||
|
|
b605fd6337 | ||
|
|
ba1e5a58b5 | ||
|
|
dd12cf1c99 | ||
|
|
44854cc5fb | ||
|
|
b1e60f1614 | ||
|
|
168ad05afe | ||
|
|
bb0419bf8a | ||
|
|
2d18cefd55 | ||
|
|
931e1b4a31 | ||
|
|
e2075529ac | ||
|
|
8dbe1468ed | ||
|
|
bb13bf38a8 | ||
|
|
80dfd5b206 | ||
|
|
a89c2d454f | ||
|
|
d1cf7cca99 | ||
|
|
9c32f9d469 | ||
|
|
cef4c29f10 | ||
|
|
679e29d12d | ||
|
|
4e569df2a3 | ||
|
|
40c7ea1b43 | ||
|
|
f9f38101f9 | ||
|
|
c4c28944ee | ||
|
|
ffb1cb5059 | ||
|
|
580e764097 | ||
|
|
111a97bb55 | ||
|
|
5d85495d72 | ||
|
|
ed2a251de4 | ||
|
|
449e8f12e4 | ||
|
|
a15b13cedd | ||
|
|
609683db2f | ||
|
|
3e21d05767 | ||
|
|
82edfba6e9 | ||
|
|
65d7a737ac | ||
|
|
2e0a69ad72 | ||
|
|
485ffcf755 | ||
|
|
12ae7de3c5 | ||
|
|
9316d4027f | ||
|
|
5a63432412 | ||
|
|
ffecb5ae1a | ||
|
|
7a51c1af6c | ||
|
|
6970cccc85 | ||
|
|
78940d44a9 | ||
|
|
6f11403a41 | ||
|
|
214799b0c2 | ||
|
|
b5f564cba4 | ||
|
|
df53280ee9 | ||
|
|
487a6a222b | ||
|
|
7933e222ee | ||
|
|
e7b8c033fb | ||
|
|
d893d0fe5d | ||
|
|
1c8571e484 | ||
|
|
3b43ed33c1 | ||
|
|
8a276d8e04 | ||
|
|
36a9e987b5 | ||
|
|
402104665e | ||
|
|
9ec3c1fb9d | ||
|
|
179cefe4da | ||
|
|
93c1ea0496 | ||
|
|
cb7c13fd1b | ||
|
|
704657cb36 | ||
|
|
eba3a78c70 | ||
|
|
d6cf9eb66d | ||
|
|
885e95399e | ||
|
|
d70582411e | ||
|
|
07277708eb | ||
|
|
87280b4c9e | ||
|
|
91b0a232ab | ||
|
|
bbedfec17d | ||
|
|
96b2eb2797 | ||
|
|
fc1f666daf | ||
|
|
8fb38ae944 | ||
|
|
bfe340508c | ||
|
|
fc260ec3f0 | ||
|
|
cd18dbad95 | ||
|
|
949ada2fda | ||
|
|
2823038d79 | ||
|
|
dbb25ca129 | ||
|
|
467581bbf4 | ||
|
|
bd7cf6e4d7 | ||
|
|
12dd62fbeb | ||
|
|
10e179345c | ||
|
|
830d365f3b | ||
|
|
50b04042ee | ||
|
|
e471c8b393 | ||
|
|
a63eb8e934 | ||
|
|
f79d8c0562 | ||
|
|
a024a573fe | ||
|
|
b01adcc62e | ||
|
|
a313552721 | ||
|
|
4931ba060f | ||
|
|
bb47e557c6 | ||
|
|
f0a5853058 | ||
|
|
7072431723 | ||
|
|
79f9e72a9d | ||
|
|
b9502b8256 | ||
|
|
a25dced848 | ||
|
|
0aab2a24b8 | ||
|
|
6894e73781 | ||
|
|
c1d3db0c97 | ||
|
|
dc8ad22192 | ||
|
|
df1cdde166 | ||
|
|
dfb3238097 | ||
|
|
4fcff0c593 | ||
|
|
07b85c032a | ||
|
|
20c1a54198 | ||
|
|
0a4d6871db | ||
|
|
aeda7a369c | ||
|
|
404859737d | ||
|
|
5e8929c36b | ||
|
|
33cb7b9de5 | ||
|
|
cec01c3df5 | ||
|
|
126d28f7f2 | ||
|
|
ab432f7be8 | ||
|
|
65a0a8c5bf | ||
|
|
781721cd54 | ||
|
|
f371aa602f | ||
|
|
1ef8a2746f | ||
|
|
0385a97062 | ||
|
|
a40e9bc0d3 | ||
|
|
a3cd0fa52e | ||
|
|
837f8457cd | ||
|
|
b67ca1dab6 | ||
|
|
35e74516c1 | ||
|
|
6108963b9c | ||
|
|
bcf59df1db | ||
|
|
841bc996a6 | ||
|
|
04947d5b44 | ||
|
|
6000ef92b1 | ||
|
|
11ad1a8086 | ||
|
|
2a840c4f7e | ||
|
|
48d33e87cf | ||
|
|
70dac4377e | ||
|
|
d405582f50 | ||
|
|
7112987e54 | ||
|
|
b6aa554e1d | ||
|
|
b3a8da98f2 | ||
|
|
9e952fe22b | ||
|
|
85ec75eff4 | ||
|
|
47123f575b | ||
|
|
bd2719749d | ||
|
|
bc4e29521b | ||
|
|
4037e3bb31 | ||
|
|
267d2b54f2 | ||
|
|
d5e75fb39f | ||
|
|
26f46eb8ce | ||
|
|
1ec4c94680 | ||
|
|
53be600df4 | ||
|
|
870a8c409c | ||
|
|
cf078e515f | ||
|
|
b32cb60f8e | ||
|
|
8d81cc6789 | ||
|
|
cdf2ce6b11 | ||
|
|
b739deba99 | ||
|
|
763dfe4cbd | ||
|
|
798ae0a994 | ||
|
|
e426b8bda8 | ||
|
|
f289a74af8 | ||
|
|
b298dbacb0 | ||
|
|
32d25b32d1 | ||
|
|
e0fc5c2464 | ||
|
|
c177a42afe | ||
|
|
f5bbc55eb7 | ||
|
|
eff2e26fe4 | ||
|
|
baceeb37cf | ||
|
|
c9d602f044 | ||
|
|
642653f281 | ||
|
|
eb511f7edd | ||
|
|
e17bc250ec | ||
|
|
21f2c9384d | ||
|
|
8adf1866e7 | ||
|
|
ea27fb9bdd | ||
|
|
049079690a | ||
|
|
124362af1f | ||
|
|
5fb84ea00d | ||
|
|
b4b581b1f4 | ||
|
|
20506756d6 | ||
|
|
aba52447e2 | ||
|
|
822467ab16 | ||
|
|
bfb348141c | ||
|
|
0bcda11f85 | ||
|
|
290de3c419 | ||
|
|
76a9a62afb | ||
|
|
588a2d0061 | ||
|
|
79a51a5562 | ||
|
|
02e2aba320 | ||
|
|
911f34cba4 | ||
|
|
fe1a869a66 | ||
|
|
76dd708f1f | ||
|
|
bc71395f64 | ||
|
|
9accbd7067 | ||
|
|
2b05f72a80 | ||
|
|
ef48708a94 | ||
|
|
9a39de1fad | ||
|
|
229c552255 | ||
|
|
de0181681c | ||
|
|
91c34ec5ea | ||
|
|
b46f01d590 | ||
|
|
882b01a165 | ||
|
|
7e4cce86a6 | ||
|
|
d300e97a04 | ||
|
|
51b960420b | ||
|
|
06aa93a46d | ||
|
|
c45c872de6 | ||
|
|
2142409fb4 | ||
|
|
7c9cd39002 | ||
|
|
5b16390245 | ||
|
|
73a3b00b0f | ||
|
|
8e7abe933a | ||
|
|
aabaaec699 | ||
|
|
d02248e0b4 | ||
|
|
a54e2add53 | ||
|
|
fec7be3d6d | ||
|
|
1e880bbba9 | ||
|
|
19b480402c | ||
|
|
50c4d41fde | ||
|
|
9927fd1b3e | ||
|
|
5b66040031 | ||
|
|
ab7488092a | ||
|
|
14425bb18a | ||
|
|
90ccd44e22 | ||
|
|
eba754f40a | ||
|
|
5fc6ac79f7 | ||
|
|
462ff16ddb | ||
|
|
6878af33c1 | ||
|
|
44a415bb9f | ||
|
|
2d454348cc | ||
|
|
14bd6bb529 | ||
|
|
f7ad6a167a | ||
|
|
db287215a8 | ||
|
|
e1e7b416c3 | ||
|
|
9d37525350 | ||
|
|
a08d4beac0 | ||
|
|
4840828024 | ||
|
|
c4079e0099 | ||
|
|
ed412ab0c2 | ||
|
|
e6d10ef592 | ||
|
|
08e8b83262 | ||
|
|
9d0052b569 | ||
|
|
ca1932a45e | ||
|
|
816d0edf3e | ||
|
|
5fafd3b544 | ||
|
|
3c81846e6c | ||
|
|
a290cafa35 | ||
|
|
c892e7178c | ||
|
|
fdac509ec8 | ||
|
|
8d82df7545 | ||
|
|
0eca17ea45 | ||
|
|
503dc7d6ea | ||
|
|
0d3e261bc3 | ||
|
|
c573675446 | ||
|
|
0aacba53b2 | ||
|
|
7b11f31dfa | ||
|
|
7b411e7c34 | ||
|
|
ae74f50d4a | ||
|
|
6a0d8cdae2 | ||
|
|
a8f2c38a2f | ||
|
|
e712bbdaba | ||
|
|
f3b5d845ed | ||
|
|
fc2512e4f9 | ||
|
|
f798ab4876 | ||
|
|
c14aa17721 | ||
|
|
30c9507945 | ||
|
|
daea67602a | ||
|
|
3da9bd51a2 | ||
|
|
6c6dccf766 | ||
|
|
3db62c9e4d | ||
|
|
10eb82805b | ||
|
|
76a9d24845 | ||
|
|
91eff12b8f | ||
|
|
4038681fb5 | ||
|
|
d0c5e3ba68 | ||
|
|
bd111db80f | ||
|
|
774d1ee3b1 | ||
|
|
fecbde4786 | ||
|
|
79f5f423ab | ||
|
|
2379ab3640 | ||
|
|
58d1a790f2 | ||
|
|
89932bc18d | ||
|
|
469f4ca530 | ||
|
|
7882a91a3d | ||
|
|
0c72a6c36e | ||
|
|
e4183c2f21 | ||
|
|
bcb75c4a9b | ||
|
|
30761f17f4 | ||
|
|
4b0e48d9e8 | ||
|
|
0a721514fd | ||
|
|
61ae2ce5f3 | ||
|
|
302c4381b2 | ||
|
|
a47e057e48 | ||
|
|
75ce6942d8 | ||
|
|
8e020a90b7 | ||
|
|
3feaabcf0d | ||
|
|
2d98d34f41 | ||
|
|
3048800364 | ||
|
|
77764abdd5 | ||
|
|
12294196d9 | ||
|
|
cedffd7fb0 | ||
|
|
c8b47634ea | ||
|
|
9de76da66f | ||
|
|
2c5ae2d774 | ||
|
|
853a26b6f4 | ||
|
|
5379aec4b2 | ||
|
|
f417fd4fdc | ||
|
|
7f0d8bac58 | ||
|
|
0f99964bd6 | ||
|
|
7d91696c85 | ||
|
|
4303e09f92 | ||
|
|
0bc124bcd9 | ||
|
|
0e66361a0d | ||
|
|
02e7373bcd | ||
|
|
b1223a90e5 | ||
|
|
8c4ae121fe | ||
|
|
e4b475cd78 | ||
|
|
fda439f0e9 | ||
|
|
c8ba7578d2 | ||
|
|
f37289ea35 | ||
|
|
9910d2b268 | ||
|
|
85d9b6a2eb | ||
|
|
4dd7b99715 | ||
|
|
edb27dddac | ||
|
|
fb5db127d5 | ||
|
|
b449afab1d | ||
|
|
2a0af411dc | ||
|
|
0081a3bb57 | ||
|
|
7407ec5fa9 | ||
|
|
64e464582b | ||
|
|
d102a86fc0 | ||
|
|
96094e2ce0 | ||
|
|
8228d62ac8 | ||
|
|
216945a2e1 | ||
|
|
701c168704 | ||
|
|
00cd51b941 | ||
|
|
299b167808 | ||
|
|
3841e9b8f4 | ||
|
|
7363aaf3d5 | ||
|
|
289c2b6233 | ||
|
|
708416cd21 | ||
|
|
870463d61a | ||
|
|
62a610c1a6 | ||
|
|
dd2709dd3f | ||
|
|
ac9092092d | ||
|
|
44ab9aa9d9 | ||
|
|
10064da428 | ||
|
|
2a000eb30e | ||
|
|
c4e158bcdf | ||
|
|
aa155207ed | ||
|
|
2e8379ad7d | ||
|
|
56dfb5434a | ||
|
|
450cc14a7b | ||
|
|
e7353aff4c | ||
|
|
80e2b94615 | ||
|
|
f10662e46b | ||
|
|
cf0cc2c34f | ||
|
|
4a1fa3f482 | ||
|
|
8f77d90220 | ||
|
|
803b0a5ecd | ||
|
|
7384d68998 | ||
|
|
67b17ef075 | ||
|
|
ae4f103e80 | ||
|
|
e1b02ef810 | ||
|
|
bd53331db7 | ||
|
|
ac4e4bc92b | ||
|
|
da386ba143 | ||
|
|
4cf33125eb | ||
|
|
e00bd629f5 | ||
|
|
7cb5587097 | ||
|
|
2a1c56fdf3 | ||
|
|
8083120227 | ||
|
|
6b87218cd5 | ||
|
|
57ed6e2760 | ||
|
|
a102624596 | ||
|
|
708454f0a8 | ||
|
|
3eaeb7ff9e | ||
|
|
19be07817d | ||
|
|
2e8360a29b | ||
|
|
53f86bb319 | ||
|
|
90851f38f3 | ||
|
|
bb9362412e | ||
|
|
9b54116548 | ||
|
|
7ee47f46b2 | ||
|
|
abae4d3361 | ||
|
|
62f31a4964 | ||
|
|
6edf2869f8 | ||
|
|
a367be60dc | ||
|
|
3429c17074 | ||
|
|
8e97088f21 | ||
|
|
78e62f9de5 | ||
|
|
0b463a78e8 | ||
|
|
bb64dabc75 | ||
|
|
d1f480d9b9 | ||
|
|
4b86af3a70 | ||
|
|
a1c564534a | ||
|
|
9bbf8ea04b | ||
|
|
ffe8d4c2f6 | ||
|
|
c0a52283d4 | ||
|
|
90cee9a223 | ||
|
|
96417de7ed | ||
|
|
28a8f8493b | ||
|
|
971dd8d2bd | ||
|
|
ae7352b8f3 | ||
|
|
5d9a5bd05c | ||
|
|
b8c60093a6 | ||
|
|
00467decca | ||
|
|
6e1e334406 | ||
|
|
2867e25f2c | ||
|
|
e89b847ddb | ||
|
|
edace11348 | ||
|
|
96fb1b87e2 | ||
|
|
bff8915c6e | ||
|
|
de06961d85 | ||
|
|
5a38999ec2 | ||
|
|
7c20f9987a | ||
|
|
cccc4a7cd9 | ||
|
|
ad233daea2 | ||
|
|
64711eb6f9 | ||
|
|
a74c7fe19a | ||
|
|
c2137397b8 | ||
|
|
a43bbe9768 | ||
|
|
c2d635bf89 | ||
|
|
e36d352d13 | ||
|
|
f45b337f36 | ||
|
|
025334738a | ||
|
|
af28049b28 | ||
|
|
e7259abd0e | ||
|
|
df09e4e29e | ||
|
|
d38b1d52bf | ||
|
|
eda161232b | ||
|
|
888342ea37 | ||
|
|
d3d18847ee | ||
|
|
5f7e8a99b6 | ||
|
|
9230f79cb2 | ||
|
|
bd0bfa562d | ||
|
|
2569c3a965 | ||
|
|
fe6829311e | ||
|
|
e2e569617d | ||
|
|
599e4528ab | ||
|
|
d7d3a2a089 | ||
|
|
f2136d2207 | ||
|
|
500bd49a62 | ||
|
|
338e28df1b | ||
|
|
1860f32375 | ||
|
|
0cf801acfd | ||
|
|
847e9b9edb | ||
|
|
2cfd645256 | ||
|
|
8f36beb3bd | ||
|
|
6de872d1ea | ||
|
|
a7eab6f81f | ||
|
|
b7b96b7d7b | ||
|
|
30d3a86784 | ||
|
|
852dce9d6a | ||
|
|
4401a4c9aa | ||
|
|
8973031252 | ||
|
|
a4c221505c | ||
|
|
f3c4468a7b | ||
|
|
4d0bc30fc6 | ||
|
|
740bdf2aec | ||
|
|
6525b1bdee | ||
|
|
afc6f2d5ae | ||
|
|
871d43c295 | ||
|
|
bc32dc780b | ||
|
|
5685b30c42 | ||
|
|
7e3508cdf4 | ||
|
|
2ba3e64c1c | ||
|
|
ca30955e9f | ||
|
|
c2e1d8fd28 | ||
|
|
ab5cc9dd6d | ||
|
|
74267a6061 | ||
|
|
9c2c06affd | ||
|
|
0e0eea635b | ||
|
|
82400cd7a6 | ||
|
|
55fdc9f957 | ||
|
|
f8b9b58968 | ||
|
|
b79411c49e | ||
|
|
5ba951e555 | ||
|
|
464bcb6c66 | ||
|
|
b9aee719b2 | ||
|
|
5d9eecc2b9 | ||
|
|
80a0caba2f | ||
|
|
2937923fb1 | ||
|
|
a33018de1d | ||
|
|
c236e863a0 | ||
|
|
b7f94a7679 | ||
|
|
107fa4842c | ||
|
|
3e059cc3e9 | ||
|
|
ebd34612a2 | ||
|
|
ed54dd663a | ||
|
|
bb0df94afa | ||
|
|
be1b041acb | ||
|
|
5f53b3ef1e | ||
|
|
c83309b7db | ||
|
|
3a49ad556a | ||
|
|
4447f4841c | ||
|
|
6351969d3c | ||
|
|
599da5a153 | ||
|
|
0a2e098c44 | ||
|
|
514377da63 | ||
|
|
9dea34869a | ||
|
|
db7d02b3c2 | ||
|
|
cf09986ffc | ||
|
|
1ff5aa1e05 | ||
|
|
36021ce4a5 | ||
|
|
5409deeaa8 | ||
|
|
555cd15a8e | ||
|
|
d36af2d3fa | ||
|
|
05db236a3c | ||
|
|
cd4f099ca8 | ||
|
|
c5694be86b | ||
|
|
8a1960eae8 | ||
|
|
649384ac45 | ||
|
|
d3ccfb9ced | ||
|
|
eb5d2fbc3a | ||
|
|
a822f00a70 | ||
|
|
08d0301181 | ||
|
|
62adbe49be | ||
|
|
a0784e1695 | ||
|
|
556588c303 | ||
|
|
c7ec3f08ee | ||
|
|
ec0f129783 | ||
|
|
5f9dca9a1e | ||
|
|
256ad44e60 | ||
|
|
85b9eaa9f7 | ||
|
|
5831588cd8 | ||
|
|
cd33b7aa92 | ||
|
|
6193eaf176 | ||
|
|
f279aea1cb | ||
|
|
8b69b266d5 | ||
|
|
3f0db1526d | ||
|
|
69d9dd23b2 | ||
|
|
3e1bc34d4a | ||
|
|
dea689b068 | ||
|
|
de237ec6fc | ||
|
|
5ec61cc32f | ||
|
|
7bffc1004d | ||
|
|
c06218910d | ||
|
|
130e381054 | ||
|
|
d5d38ee919 | ||
|
|
6b7138b8d8 | ||
|
|
242e40ddd8 | ||
|
|
9ea70fcc97 | ||
|
|
823c31eac4 | ||
|
|
d4a1180c4d | ||
|
|
483c942338 | ||
|
|
f28b018e99 | ||
|
|
c683db2757 | ||
|
|
6dd8f29bff | ||
|
|
671b59c0ac | ||
|
|
1197a0fd6d | ||
|
|
9ebb288f9b | ||
|
|
ca38c0cede | ||
|
|
ff7c981f2f | ||
|
|
3455e6ef1c | ||
|
|
f7f409ca90 | ||
|
|
2538db4786 | ||
|
|
d5a8814add | ||
|
|
0cadde1092 | ||
|
|
3f4bbef211 | ||
|
|
715352eeab | ||
|
|
e5e43de98a | ||
|
|
f085a226ba | ||
|
|
2e90823af4 | ||
|
|
50df3eda0f | ||
|
|
69b0d7abb3 | ||
|
|
c4af3c57f0 | ||
|
|
2cee3a8859 | ||
|
|
7f28a755dc | ||
|
|
a2e83e909e | ||
|
|
e4f53ed90e | ||
|
|
5e836ab7a5 | ||
|
|
9851978dbd | ||
|
|
82c52aca7e | ||
|
|
0d62847053 | ||
|
|
7a00234f9a | ||
|
|
64a65fa2e9 | ||
|
|
09d8c709d4 | ||
|
|
6a14170e64 | ||
|
|
ac3ebb2162 | ||
|
|
56ea91b11c | ||
|
|
5a1f52892e | ||
|
|
74781d6e7b | ||
|
|
06bdfc42d2 | ||
|
|
0a42ea6f41 | ||
|
|
2dc4041228 | ||
|
|
4b7eab66da | ||
|
|
999f6b09a8 | ||
|
|
a9cd557dd3 | ||
|
|
3d3423f8e5 | ||
|
|
a5eb5231cb | ||
|
|
8662416c96 | ||
|
|
7564895d7a | ||
|
|
7b15ed39a3 | ||
|
|
e72622f2b2 | ||
|
|
deb9aaafc2 | ||
|
|
63b6d471a2 | ||
|
|
2485b716dd | ||
|
|
dc2142dde0 | ||
|
|
d8466634a1 | ||
|
|
7900130f1c | ||
|
|
13c4aee26a | ||
|
|
294e76b52d | ||
|
|
d6e9602c0b | ||
|
|
b84e75a0d4 | ||
|
|
81bb0bac83 | ||
|
|
d2d7e54c74 | ||
|
|
8a70a944e6 | ||
|
|
175ac4d097 | ||
|
|
b75d36a8c0 | ||
|
|
0d9374285b | ||
|
|
f798035f0f | ||
|
|
7a988cbbea | ||
|
|
b576ad5f86 | ||
|
|
2124ce96dc | ||
|
|
27cbdd18fd | ||
|
|
ef242e8747 | ||
|
|
614429283f | ||
|
|
b4e6336732 | ||
|
|
35aa2d07f0 | ||
|
|
d570618d32 | ||
|
|
1a5b6976c2 | ||
|
|
45059998c0 | ||
|
|
f3eed4d010 | ||
|
|
0f1e1962db | ||
|
|
84de2a7c9d | ||
|
|
dfd54b35b0 | ||
|
|
981af58fa9 | ||
|
|
e5802eaeaf | ||
|
|
64fd0e28aa | ||
|
|
0a442493f1 | ||
|
|
77b4e78348 | ||
|
|
56c9faabe8 | ||
|
|
a68ed2e0b8 | ||
|
|
7d7cec3f4a | ||
|
|
15ae58a109 | ||
|
|
c32cc7c11b | ||
|
|
5398e2a93c | ||
|
|
bb8083801d | ||
|
|
a2018556cd | ||
|
|
e0589284ef | ||
|
|
bd1a19da3d | ||
|
|
6c6c9ea85d | ||
|
|
8921081bf7 | ||
|
|
858f131222 | ||
|
|
85202507e6 | ||
|
|
80a4ebbb3d | ||
|
|
03caf1bf23 | ||
|
|
1a4f9f8f96 | ||
|
|
2778ed958d | ||
|
|
cda2be543d | ||
|
|
e362d4250e | ||
|
|
28493bc7f0 | ||
|
|
2931461e2e | ||
|
|
892ef44070 | ||
|
|
58c3195831 | ||
|
|
1813c7bba6 | ||
|
|
e92d8c442f | ||
|
|
dc08643daf | ||
|
|
7ccf731088 | ||
|
|
cf2d0b80af | ||
|
|
d518867e80 | ||
|
|
431790b690 | ||
|
|
f077f354d7 | ||
|
|
4268ce4346 | ||
|
|
180ca335b6 | ||
|
|
81ebc0197a | ||
|
|
ff7fdcd5bf | ||
|
|
55b6a81ccc | ||
|
|
0bc63fb9af | ||
|
|
a90495b0d6 | ||
|
|
fdf630d4e3 | ||
|
|
cfc84e246e | ||
|
|
2622141113 | ||
|
|
9b182f965f | ||
|
|
dca2fdf6d5 | ||
|
|
169bf45e9f | ||
|
|
7e39785289 | ||
|
|
bcb76b4ef3 | ||
|
|
3121827ee7 | ||
|
|
69b63e2a8d | ||
|
|
4b603ecd2e | ||
|
|
6b49a1123d | ||
|
|
33cdbddadb | ||
|
|
0e1845aade | ||
|
|
76cd909280 | ||
|
|
92527d9c4e | ||
|
|
eec79cc18a | ||
|
|
83d014c9b1 | ||
|
|
d5a9a9a490 | ||
|
|
18cff6476a | ||
|
|
d6b0357ee7 | ||
|
|
55efe7f954 | ||
|
|
016c6cf343 | ||
|
|
beeb6f9e93 | ||
|
|
a6519d7aba | ||
|
|
b70e73124f | ||
|
|
300759ca43 | ||
|
|
c20d16660a | ||
|
|
d388c2c563 | ||
|
|
f9c2c4153d | ||
|
|
ebc3b9021c | ||
|
|
9354bd3d4d | ||
|
|
b32adbe3c5 | ||
|
|
ff5609b722 | ||
|
|
f882ca1b9c | ||
|
|
20b040735a | ||
|
|
3881377490 | ||
|
|
f0d208f050 | ||
|
|
b81c74984e | ||
|
|
d399ba2c61 | ||
|
|
fe829442d1 | ||
|
|
fd7f95c1a5 | ||
|
|
3982a2eee8 | ||
|
|
a60bcb5a45 | ||
|
|
3cf2ad9b25 | ||
|
|
6449c24398 | ||
|
|
eaddc81383 | ||
|
|
b6e0d566a6 | ||
|
|
01f93d95fb | ||
|
|
fbd39e9079 | ||
|
|
3bc00b5b1a | ||
|
|
340ae002ca | ||
|
|
98d8510b60 | ||
|
|
a82a0e6efb | ||
|
|
b17ba1b009 | ||
|
|
a07a5af543 | ||
|
|
16db649baf | ||
|
|
017fe3e0a4 | ||
|
|
1f727d2e17 | ||
|
|
281f6f369c | ||
|
|
eb5e5fadcc | ||
|
|
4996d51340 | ||
|
|
ea944a001e | ||
|
|
6d28ab40a8 | ||
|
|
ebb88721b6 | ||
|
|
8878d04f98 | ||
|
|
1085c33dc4 | ||
|
|
6b9007c530 | ||
|
|
5ff89fa184 | ||
|
|
dfff959916 | ||
|
|
3ba9abe7e3 | ||
|
|
fbd149f955 | ||
|
|
d78fd6ccff | ||
|
|
2be8dbe0c2 | ||
|
|
79c6e2be53 | ||
|
|
cc5585171c | ||
|
|
38cd727e48 | ||
|
|
fda56a5d30 | ||
|
|
e27146d549 | ||
|
|
eb95da0bb0 | ||
|
|
554e61947b | ||
|
|
107ae1923b | ||
|
|
cb64894e49 | ||
|
|
faf43f7905 | ||
|
|
c9f450e166 | ||
|
|
3b6d620ed8 | ||
|
|
bd937f5dbe | ||
|
|
cf05610b86 |
@@ -1,8 +0,0 @@
|
||||
{
|
||||
"devToolbar": {
|
||||
"enabled": false
|
||||
},
|
||||
"_variables": {
|
||||
"lastUpdateCheck": 1739229597159
|
||||
}
|
||||
}
|
||||
1
.astro/types.d.ts
vendored
@@ -1 +0,0 @@
|
||||
/// <reference types="astro/client" />
|
||||
155
.cursor/rules/content-migration.mdc
Normal file
@@ -0,0 +1,155 @@
|
||||
---
|
||||
description: When user requests migrating old roadmap content to new folder from content-old to content folder
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# Content Migration Rule
|
||||
|
||||
## Rule Name: content-migration
|
||||
|
||||
## Description
|
||||
This rule provides a complete process for migrating roadmap content from old structure to new structure using migration mapping files.
|
||||
|
||||
## When to Use
|
||||
Use this rule when you need to:
|
||||
- Migrate content from content-old directories to content directories
|
||||
- Use a migration-mapping.json file to map topic paths to content IDs
|
||||
- Populate empty content files with existing content from legacy structure
|
||||
|
||||
## Process
|
||||
|
||||
### 1. Prerequisites Check
|
||||
- Verify the roadmap directory has a `migration-mapping.json` file
|
||||
- Confirm `content-old/` directory exists with source content
|
||||
- Confirm `content/` directory exists with target files
|
||||
|
||||
### 2. Migration Script Creation
|
||||
Create a Node.js script with the following functionality:
|
||||
|
||||
```javascript
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
// Load the migration mapping
|
||||
const migrationMapping = JSON.parse(fs.readFileSync('migration-mapping.json', 'utf8'));
|
||||
|
||||
// Function to find old content file based on topic path
|
||||
function findOldContentFile(topicPath) {
|
||||
const parts = topicPath.split(':');
|
||||
|
||||
if (parts.length === 1) {
|
||||
// Top level file like "introduction"
|
||||
return path.join('content-old', parts[0], 'index.md');
|
||||
} else if (parts.length === 2) {
|
||||
// Like "introduction:what-is-rust"
|
||||
const [folder, filename] = parts;
|
||||
return path.join('content-old', folder, `${filename}.md`);
|
||||
} else if (parts.length === 3) {
|
||||
// Like "language-basics:syntax:variables"
|
||||
const [folder, subfolder, filename] = parts;
|
||||
return path.join('content-old', folder, subfolder, `${filename}.md`);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// Function to find new content file based on content ID
|
||||
function findNewContentFile(contentId) {
|
||||
const contentDir = 'content';
|
||||
const files = fs.readdirSync(contentDir);
|
||||
|
||||
// Find file that ends with the content ID
|
||||
const matchingFile = files.find(file => file.includes(`@${contentId}.md`));
|
||||
|
||||
if (matchingFile) {
|
||||
return path.join(contentDir, matchingFile);
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
// Process each mapping
|
||||
console.log('Starting content migration...\n');
|
||||
|
||||
let migratedCount = 0;
|
||||
let skippedCount = 0;
|
||||
|
||||
for (const [topicPath, contentId] of Object.entries(migrationMapping)) {
|
||||
const oldFilePath = findOldContentFile(topicPath);
|
||||
const newFilePath = findNewContentFile(contentId);
|
||||
|
||||
if (!oldFilePath) {
|
||||
console.log(`❌ Could not determine old file path for: ${topicPath}`);
|
||||
skippedCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!newFilePath) {
|
||||
console.log(`❌ Could not find new file for content ID: ${contentId} (topic: ${topicPath})`);
|
||||
skippedCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!fs.existsSync(oldFilePath)) {
|
||||
console.log(`❌ Old file does not exist: ${oldFilePath} (topic: ${topicPath})`);
|
||||
skippedCount++;
|
||||
continue;
|
||||
}
|
||||
|
||||
try {
|
||||
// Read old content
|
||||
const oldContent = fs.readFileSync(oldFilePath, 'utf8');
|
||||
|
||||
// Write to new file
|
||||
fs.writeFileSync(newFilePath, oldContent);
|
||||
|
||||
console.log(`✅ Migrated: ${topicPath} -> ${path.basename(newFilePath)}`);
|
||||
migratedCount++;
|
||||
} catch (error) {
|
||||
console.log(`❌ Error migrating ${topicPath}: ${error.message}`);
|
||||
skippedCount++;
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`\n📊 Migration complete:`);
|
||||
console.log(` Migrated: ${migratedCount} files`);
|
||||
console.log(` Skipped: ${skippedCount} files`);
|
||||
console.log(` Total: ${Object.keys(migrationMapping).length} mappings`);
|
||||
```
|
||||
|
||||
### 3. Execution Steps
|
||||
1. Navigate to the roadmap directory (e.g., `src/data/roadmaps/[roadmap-name]`)
|
||||
2. Create the migration script as `migrate_content.cjs`
|
||||
3. Run: `node migrate_content.cjs`
|
||||
4. Review the migration results
|
||||
5. Clean up the temporary script file
|
||||
|
||||
### 4. Validation
|
||||
After migration:
|
||||
- Verify a few migrated files have proper content (not just titles)
|
||||
- Check that the content structure matches the old content
|
||||
- Ensure proper markdown formatting is preserved
|
||||
|
||||
## File Structure Expected
|
||||
```
|
||||
roadmap-directory/
|
||||
├── migration-mapping.json
|
||||
├── content/
|
||||
│ ├── file1@contentId1.md
|
||||
│ ├── file2@contentId2.md
|
||||
│ └── ...
|
||||
└── content-old/
|
||||
├── section1/
|
||||
│ ├── index.md
|
||||
│ ├── topic1.md
|
||||
│ └── subsection1/
|
||||
│ └── subtopic1.md
|
||||
└── section2/
|
||||
└── ...
|
||||
```
|
||||
|
||||
## Notes
|
||||
- The migration mapping uses colons (`:`) to separate nested paths
|
||||
- Content files in the new structure use the pattern `filename@contentId.md`
|
||||
- The script handles 1-3 levels of nesting in the old structure
|
||||
- Always create the script with `.cjs` extension to avoid ES module issues
|
||||
389
.cursor/rules/gh-cli.mdc
Normal file
@@ -0,0 +1,389 @@
|
||||
---
|
||||
description: GitHub pull requests
|
||||
globs:
|
||||
alwaysApply: false
|
||||
---
|
||||
# gh cli
|
||||
|
||||
Work seamlessly with GitHub from the command line.
|
||||
|
||||
USAGE
|
||||
gh <command> <subcommand> [flags]
|
||||
|
||||
CORE COMMANDS
|
||||
auth: Authenticate gh and git with GitHub
|
||||
browse: Open repositories, issues, pull requests, and more in the browser
|
||||
codespace: Connect to and manage codespaces
|
||||
gist: Manage gists
|
||||
issue: Manage issues
|
||||
org: Manage organizations
|
||||
pr: Manage pull requests
|
||||
project: Work with GitHub Projects.
|
||||
release: Manage releases
|
||||
repo: Manage repositories
|
||||
|
||||
GITHUB ACTIONS COMMANDS
|
||||
cache: Manage GitHub Actions caches
|
||||
run: View details about workflow runs
|
||||
workflow: View details about GitHub Actions workflows
|
||||
|
||||
ALIAS COMMANDS
|
||||
co: Alias for "pr checkout"
|
||||
|
||||
ADDITIONAL COMMANDS
|
||||
alias: Create command shortcuts
|
||||
api: Make an authenticated GitHub API request
|
||||
attestation: Work with artifact attestations
|
||||
completion: Generate shell completion scripts
|
||||
config: Manage configuration for gh
|
||||
extension: Manage gh extensions
|
||||
gpg-key: Manage GPG keys
|
||||
label: Manage labels
|
||||
preview: Execute previews for gh features
|
||||
ruleset: View info about repo rulesets
|
||||
search: Search for repositories, issues, and pull requests
|
||||
secret: Manage GitHub secrets
|
||||
ssh-key: Manage SSH keys
|
||||
status: Print information about relevant issues, pull requests, and notifications across repositories
|
||||
variable: Manage GitHub Actions variables
|
||||
|
||||
HELP TOPICS
|
||||
accessibility: Learn about GitHub CLI's accessibility experiences
|
||||
actions: Learn about working with GitHub Actions
|
||||
environment: Environment variables that can be used with gh
|
||||
exit-codes: Exit codes used by gh
|
||||
formatting: Formatting options for JSON data exported from gh
|
||||
mintty: Information about using gh with MinTTY
|
||||
reference: A comprehensive reference of all gh commands
|
||||
|
||||
FLAGS
|
||||
--help Show help for command
|
||||
--version Show gh version
|
||||
|
||||
EXAMPLES
|
||||
$ gh issue create
|
||||
$ gh repo clone cli/cli
|
||||
$ gh pr checkout 321
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr
|
||||
|
||||
Work with GitHub pull requests.
|
||||
|
||||
USAGE
|
||||
gh pr <command> [flags]
|
||||
|
||||
GENERAL COMMANDS
|
||||
create: Create a pull request
|
||||
list: List pull requests in a repository
|
||||
status: Show status of relevant pull requests
|
||||
|
||||
TARGETED COMMANDS
|
||||
checkout: Check out a pull request in git
|
||||
checks: Show CI status for a single pull request
|
||||
close: Close a pull request
|
||||
comment: Add a comment to a pull request
|
||||
diff: View changes in a pull request
|
||||
edit: Edit a pull request
|
||||
lock: Lock pull request conversation
|
||||
merge: Merge a pull request
|
||||
ready: Mark a pull request as ready for review
|
||||
reopen: Reopen a pull request
|
||||
review: Add a review to a pull request
|
||||
unlock: Unlock pull request conversation
|
||||
update-branch: Update a pull request branch
|
||||
view: View a pull request
|
||||
|
||||
FLAGS
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
|
||||
ARGUMENTS
|
||||
A pull request can be supplied as argument in any of the following formats:
|
||||
- by number, e.g. "123";
|
||||
- by URL, e.g. "https://github.com/OWNER/REPO/pull/123"; or
|
||||
- by the name of its head branch, e.g. "patch-1" or "OWNER:patch-1".
|
||||
|
||||
EXAMPLES
|
||||
$ gh pr checkout 353
|
||||
$ gh pr create --fill
|
||||
$ gh pr view --web
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr list
|
||||
|
||||
List pull requests in a GitHub repository. By default, this only lists open PRs.
|
||||
|
||||
The search query syntax is documented here:
|
||||
<https://docs.github.com/en/search-github/searching-on-github/searching-issues-and-pull-requests>
|
||||
|
||||
For more information about output formatting flags, see `gh help formatting`.
|
||||
|
||||
USAGE
|
||||
gh pr list [flags]
|
||||
|
||||
ALIASES
|
||||
gh pr ls
|
||||
|
||||
FLAGS
|
||||
--app string Filter by GitHub App author
|
||||
-a, --assignee string Filter by assignee
|
||||
-A, --author string Filter by author
|
||||
-B, --base string Filter by base branch
|
||||
-d, --draft Filter by draft state
|
||||
-H, --head string Filter by head branch ("<owner>:<branch>" syntax not supported)
|
||||
-q, --jq expression Filter JSON output using a jq expression
|
||||
--json fields Output JSON with the specified fields
|
||||
-l, --label strings Filter by label
|
||||
-L, --limit int Maximum number of items to fetch (default 30)
|
||||
-S, --search query Search pull requests with query
|
||||
-s, --state string Filter by state: {open|closed|merged|all} (default "open")
|
||||
-t, --template string Format JSON output using a Go template; see "gh help formatting"
|
||||
-w, --web List pull requests in the web browser
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
JSON FIELDS
|
||||
additions, assignees, author, autoMergeRequest, baseRefName, baseRefOid, body,
|
||||
changedFiles, closed, closedAt, closingIssuesReferences, comments, commits,
|
||||
createdAt, deletions, files, fullDatabaseId, headRefName, headRefOid,
|
||||
headRepository, headRepositoryOwner, id, isCrossRepository, isDraft, labels,
|
||||
latestReviews, maintainerCanModify, mergeCommit, mergeStateStatus, mergeable,
|
||||
mergedAt, mergedBy, milestone, number, potentialMergeCommit, projectCards,
|
||||
projectItems, reactionGroups, reviewDecision, reviewRequests, reviews, state,
|
||||
statusCheckRollup, title, updatedAt, url
|
||||
|
||||
EXAMPLES
|
||||
# List PRs authored by you
|
||||
$ gh pr list --author "@me"
|
||||
|
||||
# List PRs with a specific head branch name
|
||||
$ gh pr list --head "typo"
|
||||
|
||||
# List only PRs with all of the given labels
|
||||
$ gh pr list --label bug --label "priority 1"
|
||||
|
||||
# Filter PRs using search syntax
|
||||
$ gh pr list --search "status:success review:required"
|
||||
|
||||
# Find a PR that introduced a given commit
|
||||
$ gh pr list --search "<SHA>" --state merged
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr diff
|
||||
|
||||
View changes in a pull request.
|
||||
|
||||
Without an argument, the pull request that belongs to the current branch
|
||||
is selected.
|
||||
|
||||
With `--web` flag, open the pull request diff in a web browser instead.
|
||||
|
||||
|
||||
USAGE
|
||||
gh pr diff [<number> | <url> | <branch>] [flags]
|
||||
|
||||
FLAGS
|
||||
--color string Use color in diff output: {always|never|auto} (default "auto")
|
||||
--name-only Display only names of changed files
|
||||
--patch Display diff in patch format
|
||||
-w, --web Open the pull request diff in the browser
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr merge
|
||||
|
||||
Merge a pull request on GitHub.
|
||||
|
||||
Without an argument, the pull request that belongs to the current branch
|
||||
is selected.
|
||||
|
||||
When targeting a branch that requires a merge queue, no merge strategy is required.
|
||||
If required checks have not yet passed, auto-merge will be enabled.
|
||||
If required checks have passed, the pull request will be added to the merge queue.
|
||||
To bypass a merge queue and merge directly, pass the `--admin` flag.
|
||||
|
||||
|
||||
USAGE
|
||||
gh pr merge [<number> | <url> | <branch>] [flags]
|
||||
|
||||
FLAGS
|
||||
--admin Use administrator privileges to merge a pull request that does not meet requirements
|
||||
-A, --author-email text Email text for merge commit author
|
||||
--auto Automatically merge only after necessary requirements are met
|
||||
-b, --body text Body text for the merge commit
|
||||
-F, --body-file file Read body text from file (use "-" to read from standard input)
|
||||
-d, --delete-branch Delete the local and remote branch after merge
|
||||
--disable-auto Disable auto-merge for this pull request
|
||||
--match-head-commit SHA Commit SHA that the pull request head must match to allow merge
|
||||
-m, --merge Merge the commits with the base branch
|
||||
-r, --rebase Rebase the commits onto the base branch
|
||||
-s, --squash Squash the commits into one commit and merge it into the base branch
|
||||
-t, --subject text Subject text for the merge commit
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr review
|
||||
|
||||
Add a review to a pull request.
|
||||
|
||||
Without an argument, the pull request that belongs to the current branch is reviewed.
|
||||
|
||||
|
||||
USAGE
|
||||
gh pr review [<number> | <url> | <branch>] [flags]
|
||||
|
||||
FLAGS
|
||||
-a, --approve Approve pull request
|
||||
-b, --body string Specify the body of a review
|
||||
-F, --body-file file Read body text from file (use "-" to read from standard input)
|
||||
-c, --comment Comment on a pull request
|
||||
-r, --request-changes Request changes on a pull request
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
EXAMPLES
|
||||
# Approve the pull request of the current branch
|
||||
$ gh pr review --approve
|
||||
|
||||
# Leave a review comment for the current branch
|
||||
$ gh pr review --comment -b "interesting"
|
||||
|
||||
# Add a review for a specific pull request
|
||||
$ gh pr review 123
|
||||
|
||||
# Request changes on a specific pull request
|
||||
$ gh pr review 123 -r -b "needs more ASCII art"
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr checkout
|
||||
|
||||
Check out a pull request in git
|
||||
|
||||
USAGE
|
||||
gh pr checkout [<number> | <url> | <branch>] [flags]
|
||||
|
||||
FLAGS
|
||||
-b, --branch string Local branch name to use (default [the name of the head branch])
|
||||
--detach Checkout PR with a detached HEAD
|
||||
-f, --force Reset the existing local branch to the latest state of the pull request
|
||||
--recurse-submodules Update all submodules after checkout
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
EXAMPLES
|
||||
# Interactively select a PR from the 10 most recent to check out
|
||||
$ gh pr checkout
|
||||
|
||||
# Checkout a specific PR
|
||||
$ gh pr checkout 32
|
||||
$ gh pr checkout https://github.com/OWNER/REPO/pull/32
|
||||
$ gh pr checkout feature
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr close
|
||||
|
||||
Close a pull request
|
||||
|
||||
USAGE
|
||||
gh pr close {<number> | <url> | <branch>} [flags]
|
||||
|
||||
FLAGS
|
||||
-c, --comment string Leave a closing comment
|
||||
-d, --delete-branch Delete the local and remote branch after close
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
## gh pr comment
|
||||
|
||||
Add a comment to a GitHub pull request.
|
||||
|
||||
Without the body text supplied through flags, the command will interactively
|
||||
prompt for the comment text.
|
||||
|
||||
|
||||
USAGE
|
||||
gh pr comment [<number> | <url> | <branch>] [flags]
|
||||
|
||||
FLAGS
|
||||
-b, --body text The comment body text
|
||||
-F, --body-file file Read body text from file (use "-" to read from standard input)
|
||||
--create-if-none Create a new comment if no comments are found. Can be used only with --edit-last
|
||||
--delete-last Delete the last comment of the current user
|
||||
--edit-last Edit the last comment of the current user
|
||||
-e, --editor Skip prompts and open the text editor to write the body in
|
||||
-w, --web Open the web browser to write the comment
|
||||
--yes Skip the delete confirmation prompt when --delete-last is provided
|
||||
|
||||
INHERITED FLAGS
|
||||
--help Show help for command
|
||||
-R, --repo [HOST/]OWNER/REPO Select another repository using the [HOST/]OWNER/REPO format
|
||||
|
||||
EXAMPLES
|
||||
$ gh pr comment 13 --body "Hi from GitHub CLI"
|
||||
|
||||
LEARN MORE
|
||||
Use `gh <command> <subcommand> --help` for more information about a command.
|
||||
Read the manual at https://cli.github.com/manual
|
||||
Learn about exit codes using `gh help exit-codes`
|
||||
Learn about accessibility experiences using `gh help accessibility`
|
||||
|
||||
|
||||
|
||||
@@ -1,4 +0,0 @@
|
||||
PUBLIC_API_URL=https://api.roadmap.sh
|
||||
PUBLIC_AVATAR_BASE_URL=https://dodrc8eu8m09s.cloudfront.net/avatars
|
||||
PUBLIC_EDITOR_APP_URL=https://draw.roadmap.sh
|
||||
PUBLIC_COURSE_APP_URL=http://localhost:5173
|
||||
@@ -1,35 +0,0 @@
|
||||
name: "🙏 Submit a Project Idea"
|
||||
description: Help us add project ideas to roadmaps.
|
||||
labels: [project contribution]
|
||||
assignees: []
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to submit a project idea! Please fill out the information below and we'll get back to you as soon as we can.
|
||||
- type: input
|
||||
id: roadmap-title
|
||||
attributes:
|
||||
label: What Roadmap is this project for?
|
||||
placeholder: e.g. Backend Roadmap
|
||||
validations:
|
||||
required: true
|
||||
- type: dropdown
|
||||
id: project-difficulty
|
||||
attributes:
|
||||
label: Project Difficulty
|
||||
options:
|
||||
- Beginner
|
||||
- Intermediate
|
||||
- Advanced
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
id: roadmap-description
|
||||
attributes:
|
||||
label: Add Project Details
|
||||
description: Please write a detailed description of the project in 3rd person e.g. "You are required to build a..."
|
||||
placeholder: |
|
||||
e.g. You are required to build a RESTful API...
|
||||
validations:
|
||||
required: true
|
||||
2
.github/workflows/cloudfront-api-cache.yml
vendored
@@ -2,7 +2,7 @@ name: Clears API Cloudfront Cache
|
||||
on:
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
aws_costs:
|
||||
cloudfront_api_cache:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clear Cloudfront Caching
|
||||
|
||||
2
.github/workflows/cloudfront-fe-cache.yml
vendored
@@ -2,7 +2,7 @@ name: Clears Frontend Cloudfront Cache
|
||||
on:
|
||||
workflow_dispatch:
|
||||
jobs:
|
||||
aws_costs:
|
||||
cloudfront_fe_cache:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Clear Cloudfront Caching
|
||||
|
||||
75
.github/workflows/deployment.yml
vendored
@@ -1,75 +0,0 @@
|
||||
name: Deploy to EC2
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
|
||||
jobs:
|
||||
deploy:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Checkout Repository
|
||||
uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 2
|
||||
- uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
- uses: pnpm/action-setup@v4.0.0
|
||||
with:
|
||||
version: 9
|
||||
|
||||
# -------------------
|
||||
# Setup configuration
|
||||
# -------------------
|
||||
- name: Prepare configuration files
|
||||
run: |
|
||||
git clone https://${{ secrets.GH_PAT }}@github.com/roadmapsh/infra-config.git configuration --depth 1
|
||||
- name: Copy configuration files
|
||||
run: |
|
||||
cp configuration/dist/github/developer-roadmap.env .env
|
||||
|
||||
# -----------------
|
||||
# Prepare the Build
|
||||
# -----------------
|
||||
- name: Install Dependencies
|
||||
run: |
|
||||
pnpm install
|
||||
|
||||
- name: Generate Production Build
|
||||
run: |
|
||||
git clone https://${{ secrets.GH_PAT }}@github.com/roadmapsh/web-draw.git .temp/web-draw --depth 1
|
||||
npm run generate-renderer
|
||||
npm run compress:images
|
||||
npm run build
|
||||
|
||||
# --------------------
|
||||
# Deploy to EC2
|
||||
# --------------------
|
||||
- uses: webfactory/ssh-agent@v0.7.0
|
||||
with:
|
||||
ssh-private-key: ${{ secrets.EC2_PRIVATE_KEY }}
|
||||
- name: Deploy Application to EC2
|
||||
run: |
|
||||
rsync -apvz --delete --no-times --exclude "configuration" -e "ssh -o StrictHostKeyChecking=no" -p ./ ${{ secrets.EC2_USERNAME }}@${{ secrets.EC2_HOST }}:/var/www/roadmap.sh/
|
||||
- name: Restart PM2
|
||||
uses: appleboy/ssh-action@master
|
||||
with:
|
||||
host: ${{ secrets.EC2_HOST }}
|
||||
username: ${{ secrets.EC2_USERNAME }}
|
||||
key: ${{ secrets.EC2_PRIVATE_KEY }}
|
||||
script: |
|
||||
cd /var/www/roadmap.sh
|
||||
sudo pm2 restart web-roadmap
|
||||
|
||||
# ----------------------
|
||||
# Clear cloudfront cache
|
||||
# ----------------------
|
||||
- name: Clear Cloudfront Caching
|
||||
run: |
|
||||
curl -L \
|
||||
-X POST \
|
||||
-H "Accept: application/vnd.github+json" \
|
||||
-H "Authorization: Bearer ${{ secrets.GH_PAT }}" \
|
||||
-H "X-GitHub-Api-Version: 2022-11-28" \
|
||||
https://api.github.com/repos/roadmapsh/infra-ansible/actions/workflows/playbook.yml/dispatches \
|
||||
-d '{ "ref":"master", "inputs": { "playbook": "roadmap_web.yml", "tags": "cloudfront", "is_verbose": false } }'
|
||||
23
.github/workflows/greetings.yml
vendored
@@ -1,23 +0,0 @@
|
||||
name: ❤️ Greetings
|
||||
|
||||
on:
|
||||
issues:
|
||||
types: [opened]
|
||||
pull_request_target:
|
||||
branches: [master]
|
||||
types: [opened]
|
||||
|
||||
jobs:
|
||||
greet:
|
||||
name: Greet New Contributors
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/first-interaction@v1
|
||||
with:
|
||||
repo-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
pr-message: |
|
||||
Thank you for your first ever contribution to [roadmap.sh](https://roadmap.sh)! 🎉
|
||||
|
||||
Please make sure to follow the [contribution guidelines](https://github.com/kamranahmedse/developer-roadmap/blob/master/contributing.md) when contributing to this project. Any PRs that don't follow the guidelines will be closed.
|
||||
|
||||
Thanks for choosing to contribute, and for helping make this project better! 🌟
|
||||
@@ -1,52 +0,0 @@
|
||||
name: Refresh Roadmap Content JSON
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
schedule:
|
||||
- cron: '0 0 * * *'
|
||||
|
||||
jobs:
|
||||
refresh-content:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup pnpm@v9
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
run_install: false
|
||||
|
||||
- name: Setup Node.js Version 20 (LTS)
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Install Dependencies and Generate Content JSON
|
||||
run: |
|
||||
pnpm install
|
||||
npm run generate:roadmap-content-json
|
||||
|
||||
- name: Create PR
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
with:
|
||||
delete-branch: false
|
||||
branch: "chore/update-content-json"
|
||||
base: "master"
|
||||
labels: |
|
||||
dependencies
|
||||
automated pr
|
||||
reviewers: kamranahmedse
|
||||
commit-message: "chore: update roadmap content json"
|
||||
title: "Updated Roadmap Content JSON - Automated"
|
||||
body: |
|
||||
## Updated Roadmap Content JSON
|
||||
|
||||
> [!IMPORTANT]
|
||||
> This PR Updates the Roadmap Content JSON files stored in the `public` directory.
|
||||
>
|
||||
> Commit: ${{ github.sha }}
|
||||
> Workflow Path: ${{ github.workflow_ref }}
|
||||
|
||||
**Please Review the Changes and Merge the PR if everything is fine.**
|
||||
66
.github/workflows/sync-content-to-repo.yml
vendored
Normal file
@@ -0,0 +1,66 @@
|
||||
name: Sync Content to Repo
|
||||
|
||||
on:
|
||||
workflow_dispatch:
|
||||
inputs:
|
||||
roadmap_slug:
|
||||
description: "The ID of the roadmap to sync"
|
||||
required: true
|
||||
default: "__default__"
|
||||
|
||||
jobs:
|
||||
sync-content:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
|
||||
- name: Setup pnpm@v9
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
run_install: false
|
||||
|
||||
- name: Setup Node.js Version 20 (LTS)
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Install Dependencies and Sync Content
|
||||
run: |
|
||||
echo "Installing Dependencies"
|
||||
pnpm install
|
||||
echo "Syncing Content to Repo"
|
||||
npm run sync:content-to-repo -- --roadmap-slug=${{ inputs.roadmap_slug }} --secret=${{ secrets.GH_SYNC_SECRET }}
|
||||
|
||||
- name: Check for changes
|
||||
id: verify-changed-files
|
||||
run: |
|
||||
if [ -n "$(git status --porcelain)" ]; then
|
||||
echo "changed=true" >> $GITHUB_OUTPUT
|
||||
else
|
||||
echo "changed=false" >> $GITHUB_OUTPUT
|
||||
fi
|
||||
|
||||
- name: Create PR
|
||||
if: steps.verify-changed-files.outputs.changed == 'true'
|
||||
uses: peter-evans/create-pull-request@v7
|
||||
with:
|
||||
delete-branch: false
|
||||
branch: "chore/sync-content-to-repo-${{ inputs.roadmap_slug }}"
|
||||
base: "master"
|
||||
labels: |
|
||||
automated pr
|
||||
reviewers: jcanalesluna,kamranahmedse
|
||||
commit-message: "chore: sync content to repo"
|
||||
title: "chore: sync content to repository - ${{ inputs.roadmap_slug }}"
|
||||
body: |
|
||||
## Sync Content to Repo
|
||||
|
||||
> [!IMPORTANT]
|
||||
> This PR Syncs the Content to the Repo for the Roadmap: ${{ inputs.roadmap_slug }}
|
||||
>
|
||||
> Commit: ${{ github.sha }}
|
||||
> Workflow Path: ${{ github.workflow_ref }}
|
||||
|
||||
**Please Review the Changes and Merge the PR if everything is fine.**
|
||||
67
.github/workflows/sync-repo-to-database.yml
vendored
Normal file
@@ -0,0 +1,67 @@
|
||||
name: Sync on Roadmap Changes
|
||||
|
||||
on:
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- 'src/data/roadmaps/**'
|
||||
|
||||
jobs:
|
||||
sync-on-changes:
|
||||
runs-on: ubuntu-latest
|
||||
if: github.actor != 'github-actions[bot]' && github.actor != 'dependabot[bot]'
|
||||
steps:
|
||||
- uses: actions/checkout@v4
|
||||
with:
|
||||
fetch-depth: 2 # Fetch previous commit to compare changes
|
||||
|
||||
- name: Setup pnpm@v9
|
||||
uses: pnpm/action-setup@v4
|
||||
with:
|
||||
version: 9
|
||||
run_install: false
|
||||
|
||||
- name: Setup Node.js Version 20 (LTS)
|
||||
uses: actions/setup-node@v4
|
||||
with:
|
||||
node-version: 20
|
||||
cache: 'pnpm'
|
||||
|
||||
- name: Get changed files
|
||||
id: changed-files
|
||||
run: |
|
||||
echo "Getting changed files in /src/data/roadmaps/"
|
||||
|
||||
# Get changed files between HEAD and previous commit
|
||||
CHANGED_FILES=$(git diff --name-only HEAD~1 HEAD -- src/data/roadmaps/)
|
||||
|
||||
if [ -z "$CHANGED_FILES" ]; then
|
||||
echo "No changes found in roadmaps directory"
|
||||
echo "has_changes=false" >> $GITHUB_OUTPUT
|
||||
exit 0
|
||||
fi
|
||||
|
||||
echo "Changed files:"
|
||||
echo "$CHANGED_FILES"
|
||||
|
||||
# Convert to space-separated list for the script
|
||||
CHANGED_FILES_LIST=$(echo "$CHANGED_FILES" | tr '\n' ',')
|
||||
|
||||
echo "has_changes=true" >> $GITHUB_OUTPUT
|
||||
echo "changed_files=$CHANGED_FILES_LIST" >> $GITHUB_OUTPUT
|
||||
|
||||
- name: Install Dependencies
|
||||
if: steps.changed-files.outputs.has_changes == 'true'
|
||||
run: |
|
||||
echo "Installing Dependencies"
|
||||
pnpm install
|
||||
|
||||
- name: Run sync script with changed files
|
||||
if: steps.changed-files.outputs.has_changes == 'true'
|
||||
run: |
|
||||
echo "Running sync script for changed roadmap files"
|
||||
echo "Changed files: ${{ steps.changed-files.outputs.changed_files }}"
|
||||
|
||||
# Run your script with the changed file paths
|
||||
npm run sync:repo-to-database -- --files="${{ steps.changed-files.outputs.changed_files }}" --secret=${{ secrets.GH_SYNC_SECRET }}
|
||||
7
.gitignore
vendored
@@ -28,9 +28,6 @@ pnpm-debug.log*
|
||||
/playwright-report/
|
||||
/playwright/.cache/
|
||||
tests-examples
|
||||
*.csv
|
||||
*.csveditor/
|
||||
|
||||
/editor/*
|
||||
!/editor/readonly-editor.tsx
|
||||
!/editor/renderer/renderer.ts
|
||||
!/editor/renderer/index.tsx
|
||||
packages/editor
|
||||
@@ -1,18 +1,4 @@
|
||||
module.exports = {
|
||||
semi: true,
|
||||
singleQuote: true,
|
||||
overrides: [
|
||||
{
|
||||
files: '*.astro',
|
||||
options: {
|
||||
parser: 'astro',
|
||||
singleQuote: true,
|
||||
jsxSingleQuote: true,
|
||||
},
|
||||
},
|
||||
],
|
||||
plugins: [
|
||||
require.resolve('prettier-plugin-astro'),
|
||||
'prettier-plugin-tailwindcss',
|
||||
],
|
||||
};
|
||||
|
||||
4
.vscode/extensions.json
vendored
@@ -1,4 +0,0 @@
|
||||
{
|
||||
"recommendations": ["astro-build.astro-vscode"],
|
||||
"unwantedRecommendations": []
|
||||
}
|
||||
11
.vscode/launch.json
vendored
@@ -1,11 +0,0 @@
|
||||
{
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"command": "./node_modules/.bin/astro dev",
|
||||
"name": "Development server",
|
||||
"request": "launch",
|
||||
"type": "node-terminal"
|
||||
}
|
||||
]
|
||||
}
|
||||
6
.vscode/settings.json
vendored
@@ -1,6 +0,0 @@
|
||||
{
|
||||
"prettier.documentSelectors": ["**/*.astro"],
|
||||
"[astro]": {
|
||||
"editor.defaultFormatter": "esbenp.prettier-vscode"
|
||||
}
|
||||
}
|
||||
@@ -1,16 +1,50 @@
|
||||
// https://astro.build/config
|
||||
import sitemap from '@astrojs/sitemap';
|
||||
import tailwind from '@astrojs/tailwind';
|
||||
import node from '@astrojs/node';
|
||||
import { defineConfig } from 'astro/config';
|
||||
import rehypeExternalLinks from 'rehype-external-links';
|
||||
import { serializeSitemap, shouldIndexPage } from './sitemap.mjs';
|
||||
import tailwindcss from '@tailwindcss/vite';
|
||||
|
||||
import react from '@astrojs/react';
|
||||
|
||||
// https://astro.build/config
|
||||
export default defineConfig({
|
||||
site: 'https://roadmap.sh/',
|
||||
redirects: {
|
||||
'/devops/devops-engineer': {
|
||||
status: 301,
|
||||
destination: '/devops',
|
||||
},
|
||||
'/ai-tutor': {
|
||||
status: 301,
|
||||
destination: '/ai',
|
||||
},
|
||||
'/best-practices': {
|
||||
status: 301,
|
||||
destination: '/roadmaps',
|
||||
},
|
||||
'/best-practices/aws': {
|
||||
status: 301,
|
||||
destination: '/aws-best-practices',
|
||||
},
|
||||
'/best-practices/backend-performance': {
|
||||
status: 301,
|
||||
destination: '/backend-performance-best-practices',
|
||||
},
|
||||
'/best-practices/frontend-performance': {
|
||||
status: 301,
|
||||
destination: '/frontend-performance-best-practices',
|
||||
},
|
||||
'/best-practices/api-security': {
|
||||
status: 301,
|
||||
destination: '/api-security-best-practices',
|
||||
},
|
||||
'/best-practices/code-review': {
|
||||
status: 301,
|
||||
destination: '/code-review-best-practices',
|
||||
},
|
||||
},
|
||||
markdown: {
|
||||
shikiConfig: {
|
||||
theme: 'dracula',
|
||||
@@ -40,21 +74,25 @@ export default defineConfig({
|
||||
],
|
||||
],
|
||||
},
|
||||
output: 'hybrid',
|
||||
output: 'server',
|
||||
adapter: node({
|
||||
mode: 'standalone',
|
||||
}),
|
||||
trailingSlash: 'never',
|
||||
integrations: [
|
||||
tailwind({
|
||||
config: {
|
||||
applyBaseStyles: false,
|
||||
},
|
||||
}),
|
||||
sitemap({
|
||||
filter: shouldIndexPage,
|
||||
serialize: serializeSitemap,
|
||||
}),
|
||||
react(),
|
||||
],
|
||||
vite: {
|
||||
plugins: [tailwindcss()],
|
||||
ssr: {
|
||||
noExternal: [/^@roadmapsh\/editor.*$/],
|
||||
},
|
||||
server: {
|
||||
allowedHosts: ['roadmap.sh', 'port3k.kamranahmed.info'],
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -6,8 +6,10 @@ First of all, thank you for considering to contribute. Please look at the detail
|
||||
- [Existing Roadmaps](#existing-roadmaps)
|
||||
- [Adding Projects](#adding-projects)
|
||||
- [Adding Content](#adding-content)
|
||||
- [How To Structure Content](#how-to-structure-content)
|
||||
- [Guidelines](#guidelines)
|
||||
- [Good vs. Not So Good Contributions](#good-vs-not-so-good-contributions)
|
||||
- [Local Development](#local-development)
|
||||
|
||||
## New Roadmaps
|
||||
|
||||
@@ -53,6 +55,7 @@ Find [the content directory inside the relevant roadmap](https://github.com/kamr
|
||||
|
||||
- Content must be in English.
|
||||
- Maximum of 8 links per topic.
|
||||
- **No GeeksforGeeks links** — Links to geeksforgeeks.org are not accepted.
|
||||
- Follow the below style guide for content.
|
||||
|
||||
Please note that we are intentionally keeping the content under the topic popup concise. You MUST always aim to explain the topic simply in a **single paragraph** or so and provide external resources where users can learn more about the topic.
|
||||
@@ -79,6 +82,7 @@ Visit the following resources to learn more:
|
||||
- `@course@`
|
||||
- `@podcast@`
|
||||
- `@video@`
|
||||
- `@book@`
|
||||
|
||||
It's important to add a valid type, this will help us categorize the content and display it properly on the roadmap. The order of the links based on type is same as above.
|
||||
|
||||
@@ -125,6 +129,22 @@ It's important to add a valid type, this will help us categorize the content and
|
||||
- PR's that don't follow our style guide, have no description, and a default title.
|
||||
- Links to your own blog articles.
|
||||
|
||||
## Local Development
|
||||
|
||||
For local development, you can use the following commands:
|
||||
|
||||
```bash
|
||||
git clone git@github.com:kamranahmedse/developer-roadmap.git --depth 1
|
||||
cd developer-roadmap
|
||||
pnpm add @roadmapsh/editor@npm:@roadmapsh/dummy-editor -w
|
||||
pnpm install
|
||||
```
|
||||
Run the development server with:
|
||||
|
||||
```bash
|
||||
pnpm dev
|
||||
```
|
||||
|
||||
***
|
||||
|
||||
Have a look at the [License](./license) file.
|
||||
|
||||
@@ -1,14 +0,0 @@
|
||||
export function ReadonlyEditor(props: any) {
|
||||
return (
|
||||
<div className="fixed bottom-0 left-0 right-0 top-0 z-[9999] border bg-white p-5 text-black">
|
||||
<h2 className="mb-2 text-xl font-semibold">Private Component</h2>
|
||||
<p className="mb-4">
|
||||
Renderer is a private component. If you are a collaborator and have
|
||||
access to it. Run the following command:
|
||||
</p>
|
||||
<code className="mt-5 rounded-md bg-gray-800 p-2 text-white">
|
||||
npm run generate-renderer
|
||||
</code>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,14 +0,0 @@
|
||||
export function Renderer(props: any) {
|
||||
return (
|
||||
<div className="fixed bottom-0 left-0 right-0 top-0 z-[9999] border bg-white p-5 text-black">
|
||||
<h2 className="mb-2 text-xl font-semibold">Private Component</h2>
|
||||
<p className="mb-4">
|
||||
Renderer is a private component. If you are a collaborator and have
|
||||
access to it. Run the following command:
|
||||
</p>
|
||||
<code className="mt-5 rounded-md bg-gray-800 p-2 text-white">
|
||||
npm run generate-renderer
|
||||
</code>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
export function renderFlowJSON(data: any, options?: any) {
|
||||
console.warn("renderFlowJSON is not implemented");
|
||||
console.warn("run the following command to generate the renderer:");
|
||||
console.warn("> npm run generate-renderer");
|
||||
}
|
||||
7
license
@@ -10,10 +10,3 @@ conditions do not apply to the readonly GitHub forks created using the Fork butt
|
||||
GitHub with the whole purpose of contributing to the project.
|
||||
|
||||
Copyright © 2017 - Present. Kamran Ahmed <kamranahmed.se@gmail.com>
|
||||
|
||||
Please note that I am really flexible with allowing the usage of the content in this
|
||||
repository. If you reach out to me with a brief detail of why and how you would like
|
||||
to use this content, there is a good chance that I will allow you to use it. The reason
|
||||
behind this strictness in the license is to stop the people who have been using these
|
||||
roadmaps in ill manners e.g. ripping people off with suggesting random affiliate links,
|
||||
redistributing these roadmaps just for the sake of monetizing the traffic.
|
||||
|
||||
107
package.json
@@ -4,103 +4,18 @@
|
||||
"version": "1.0.0",
|
||||
"private": true,
|
||||
"scripts": {
|
||||
"dev": "astro dev --port 3000",
|
||||
"start": "astro dev",
|
||||
"build": "astro build",
|
||||
"preview": "astro preview",
|
||||
"format": "prettier --write .",
|
||||
"gh-labels": "./scripts/create-roadmap-labels.sh",
|
||||
"astro": "astro",
|
||||
"deploy": "NODE_DEBUG=gh-pages gh-pages -d dist -t",
|
||||
"upgrade": "ncu -u",
|
||||
"roadmap-links": "node scripts/roadmap-links.cjs",
|
||||
"roadmap-dirs": "node scripts/roadmap-dirs.cjs",
|
||||
"roadmap-assets": "tsx scripts/editor-roadmap-assets.ts",
|
||||
"editor-roadmap-dirs": "tsx scripts/editor-roadmap-dirs.ts",
|
||||
"editor-roadmap-content": "tsx scripts/editor-roadmap-content.ts",
|
||||
"roadmap-content": "node scripts/roadmap-content.cjs",
|
||||
"generate-renderer": "sh scripts/generate-renderer.sh",
|
||||
"best-practice-dirs": "node scripts/best-practice-dirs.cjs",
|
||||
"best-practice-content": "node scripts/best-practice-content.cjs",
|
||||
"generate:og": "node ./scripts/generate-og-images.mjs",
|
||||
"warm:urls": "sh ./scripts/warm-urls.sh https://roadmap.sh/sitemap-0.xml",
|
||||
"compress:images": "tsx ./scripts/compress-images.ts",
|
||||
"generate:roadmap-content-json": "tsx ./scripts/editor-roadmap-content-json.ts",
|
||||
"test:e2e": "playwright test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@astrojs/node": "^8.3.4",
|
||||
"@astrojs/react": "^3.6.2",
|
||||
"@astrojs/sitemap": "^3.2.0",
|
||||
"@astrojs/tailwind": "^5.1.2",
|
||||
"@fingerprintjs/fingerprintjs": "^4.5.0",
|
||||
"@microsoft/clarity": "^1.0.0",
|
||||
"@nanostores/react": "^0.8.0",
|
||||
"@napi-rs/image": "^1.9.2",
|
||||
"@resvg/resvg-js": "^2.6.2",
|
||||
"@tanstack/react-query": "^5.59.16",
|
||||
"@types/react": "^18.3.11",
|
||||
"@types/react-dom": "^18.3.1",
|
||||
"astro": "^4.16.1",
|
||||
"clsx": "^2.1.1",
|
||||
"dayjs": "^1.11.13",
|
||||
"dom-to-image": "^2.6.0",
|
||||
"dracula-prism": "^2.1.16",
|
||||
"gray-matter": "^4.0.3",
|
||||
"htm": "^3.1.1",
|
||||
"image-size": "^1.1.1",
|
||||
"jose": "^5.9.4",
|
||||
"js-cookie": "^3.0.5",
|
||||
"lucide-react": "^0.452.0",
|
||||
"luxon": "^3.5.0",
|
||||
"nanoid": "^5.0.7",
|
||||
"nanostores": "^0.11.3",
|
||||
"node-html-parser": "^6.1.13",
|
||||
"npm-check-updates": "^17.1.3",
|
||||
"playwright": "^1.48.0",
|
||||
"prismjs": "^1.29.0",
|
||||
"react": "^18.3.1",
|
||||
"react-calendar-heatmap": "^1.9.0",
|
||||
"react-confetti": "^6.1.0",
|
||||
"react-dom": "^18.3.1",
|
||||
"react-tooltip": "^5.28.0",
|
||||
"reactflow": "^11.11.4",
|
||||
"rehype-external-links": "^3.0.0",
|
||||
"remark-parse": "^11.0.0",
|
||||
"roadmap-renderer": "^1.0.6",
|
||||
"sanitize-html": "^2.13.1",
|
||||
"satori": "^0.11.2",
|
||||
"satori-html": "^0.3.2",
|
||||
"sharp": "^0.33.5",
|
||||
"slugify": "^1.6.6",
|
||||
"tailwind-merge": "^2.5.3",
|
||||
"tailwindcss": "^3.4.13",
|
||||
"tiptap-markdown": "^0.8.10",
|
||||
"turndown": "^7.2.0",
|
||||
"unified": "^11.0.5",
|
||||
"zustand": "^4.5.5"
|
||||
"sync:content-to-repo": "tsx ./scripts/sync-content-to-repo.ts",
|
||||
"sync:repo-to-database": "tsx ./scripts/sync-repo-to-database.ts",
|
||||
"migrate:content-repo-to-database": "tsx ./scripts/migrate-content-repo-to-database.ts"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@ai-sdk/google": "^1.1.19",
|
||||
"@playwright/test": "^1.48.0",
|
||||
"@tailwindcss/typography": "^0.5.15",
|
||||
"@types/dom-to-image": "^2.6.7",
|
||||
"@types/js-cookie": "^3.0.6",
|
||||
"@types/luxon": "^3.4.2",
|
||||
"@types/prismjs": "^1.26.4",
|
||||
"@types/react-calendar-heatmap": "^1.6.7",
|
||||
"@types/react-slick": "^0.23.13",
|
||||
"@types/sanitize-html": "^2.13.0",
|
||||
"@types/turndown": "^5.0.5",
|
||||
"ai": "^4.1.51",
|
||||
"csv-parser": "^3.0.0",
|
||||
"gh-pages": "^6.2.0",
|
||||
"js-yaml": "^4.1.0",
|
||||
"markdown-it": "^14.1.0",
|
||||
"openai": "^4.67.3",
|
||||
"prettier": "^3.3.3",
|
||||
"prettier-plugin-astro": "^0.14.1",
|
||||
"prettier-plugin-tailwindcss": "^0.6.8",
|
||||
"tsx": "^4.19.1"
|
||||
"@types/node": "^22.13.10",
|
||||
"@types/turndown": "^5.0.6",
|
||||
"markdown-it-async": "^2.2.0",
|
||||
"node-html-parser": "^7.0.1",
|
||||
"prettier": "^3.5.3",
|
||||
"tsx": "^4.19.4",
|
||||
"turndown": "^7.2.2",
|
||||
"typescript": "^5.8.2"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,108 +0,0 @@
|
||||
import type { PlaywrightTestConfig } from '@playwright/test';
|
||||
import { devices } from '@playwright/test';
|
||||
|
||||
/**
|
||||
* Read environment variables from file.
|
||||
* https://github.com/motdotla/dotenv
|
||||
*/
|
||||
// require('dotenv').config();
|
||||
|
||||
/**
|
||||
* See https://playwright.dev/docs/test-configuration.
|
||||
*/
|
||||
const config: PlaywrightTestConfig = {
|
||||
testDir: './tests',
|
||||
/* Maximum time one test can run for. */
|
||||
timeout: 30 * 1000,
|
||||
expect: {
|
||||
/**
|
||||
* Maximum time expect() should wait for the condition to be met.
|
||||
* For example in `await expect(locator).toHaveText();`
|
||||
*/
|
||||
timeout: 5000,
|
||||
},
|
||||
/* Run tests in files in parallel */
|
||||
fullyParallel: true,
|
||||
/* Fail the build on CI if you accidentally left test.only in the source code. */
|
||||
forbidOnly: !!process.env.CI,
|
||||
/* Retry on CI only */
|
||||
retries: process.env.CI ? 2 : 0,
|
||||
/* Opt out of parallel tests on CI. */
|
||||
workers: process.env.CI ? 1 : undefined,
|
||||
/* Reporter to use. See https://playwright.dev/docs/test-reporters */
|
||||
reporter: 'html',
|
||||
/* Shared settings for all the projects below. See https://playwright.dev/docs/api/class-testoptions. */
|
||||
use: {
|
||||
/* Maximum time each action such as `click()` can take. Defaults to 0 (no limit). */
|
||||
actionTimeout: 0,
|
||||
/* Base URL to use in actions like `await page.goto('/')`. */
|
||||
baseURL: 'http://localhost:3000',
|
||||
|
||||
/* Collect trace when retrying the failed test. See https://playwright.dev/docs/trace-viewer */
|
||||
trace: 'on-first-retry',
|
||||
},
|
||||
|
||||
/* Configure projects for major browsers */
|
||||
projects: [
|
||||
{
|
||||
name: 'chromium',
|
||||
use: {
|
||||
...devices['Desktop Chrome'],
|
||||
},
|
||||
},
|
||||
|
||||
// {
|
||||
// name: 'firefox',
|
||||
// use: {
|
||||
// ...devices['Desktop Firefox'],
|
||||
// },
|
||||
// },
|
||||
|
||||
// {
|
||||
// name: 'webkit',
|
||||
// use: {
|
||||
// ...devices['Desktop Safari'],
|
||||
// },
|
||||
// },
|
||||
|
||||
/* Test against mobile viewports. */
|
||||
// {
|
||||
// name: 'Mobile Chrome',
|
||||
// use: {
|
||||
// ...devices['Pixel 5'],
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// name: 'Mobile Safari',
|
||||
// use: {
|
||||
// ...devices['iPhone 12'],
|
||||
// },
|
||||
// },
|
||||
|
||||
/* Test against branded browsers. */
|
||||
// {
|
||||
// name: 'Microsoft Edge',
|
||||
// use: {
|
||||
// channel: 'msedge',
|
||||
// },
|
||||
// },
|
||||
// {
|
||||
// name: 'Google Chrome',
|
||||
// use: {
|
||||
// channel: 'chrome',
|
||||
// },
|
||||
// },
|
||||
],
|
||||
|
||||
/* Folder for test artifacts such as screenshots, videos, traces, etc. */
|
||||
// outputDir: 'test-results/',
|
||||
|
||||
/* Run your local dev server before starting the tests */
|
||||
webServer: {
|
||||
command: 'npm run dev',
|
||||
url: 'http://localhost:3000',
|
||||
reuseExistingServer: !process.env.CI,
|
||||
},
|
||||
};
|
||||
|
||||
export default config;
|
||||
6399
pnpm-lock.yaml
generated
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 509 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 76 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 2.2 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 7.8 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 185 KiB |
|
Before Width: | Height: | Size: 174 KiB |
|
Before Width: | Height: | Size: 479 KiB |
|
Before Width: | Height: | Size: 140 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 351 KiB |
|
Before Width: | Height: | Size: 420 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 431 KiB |
|
Before Width: | Height: | Size: 235 KiB |
|
Before Width: | Height: | Size: 205 KiB |
|
Before Width: | Height: | Size: 242 KiB |
|
Before Width: | Height: | Size: 572 KiB |
|
Before Width: | Height: | Size: 283 KiB |
|
Before Width: | Height: | Size: 437 KiB |
|
Before Width: | Height: | Size: 799 KiB |
|
Before Width: | Height: | Size: 233 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 756 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 7.7 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 142 KiB |
|
Before Width: | Height: | Size: 1.4 MiB |
|
Before Width: | Height: | Size: 685 KiB |
|
Before Width: | Height: | Size: 128 KiB |
|
Before Width: | Height: | Size: 92 KiB |
|
Before Width: | Height: | Size: 835 KiB |
|
Before Width: | Height: | Size: 602 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 44 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 345 KiB |
|
Before Width: | Height: | Size: 516 KiB |
|
Before Width: | Height: | Size: 2.4 KiB |
|
Before Width: | Height: | Size: 3.6 KiB |
@@ -1,4 +0,0 @@
|
||||
<svg width="283" height="283" viewBox="0 0 283 283" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M0 39C0 17.4609 17.4609 0 39 0H244C265.539 0 283 17.4609 283 39V244C283 265.539 265.539 283 244 283H39C17.4609 283 0 265.539 0 244V39Z" fill="black"></path>
|
||||
<path d="M121.215 210.72C119.348 211.28 116.361 211.84 112.255 212.4C108.335 212.96 104.228 213.24 99.9347 213.24C95.828 213.24 92.0947 212.96 88.7347 212.4C85.5614 211.84 82.8547 210.72 80.6147 209.04C78.3747 207.36 76.6014 205.12 75.2947 202.32C74.1747 199.333 73.6147 195.507 73.6147 190.84V106.84C73.6147 102.547 74.3614 98.9067 75.8547 95.92C77.5347 92.7467 79.868 89.9467 82.8547 87.52C85.8414 85.0933 89.4814 82.9467 93.7747 81.08C98.2547 79.0267 103.015 77.2533 108.055 75.76C113.095 74.2667 118.321 73.1467 123.735 72.4C129.148 71.4667 134.561 71 139.975 71C148.935 71 156.028 72.7733 161.255 76.32C166.481 79.68 169.095 85.28 169.095 93.12C169.095 95.7333 168.721 98.3467 167.975 100.96C167.228 103.387 166.295 105.627 165.175 107.68C161.255 107.68 157.241 107.867 153.135 108.24C149.028 108.613 145.015 109.173 141.095 109.92C137.175 110.667 133.441 111.507 129.895 112.44C126.535 113.187 123.641 114.12 121.215 115.24V210.72ZM166.387 188.32C166.387 180.48 168.813 173.947 173.667 168.72C178.52 163.493 185.147 160.88 193.547 160.88C201.947 160.88 208.573 163.493 213.427 168.72C218.28 173.947 220.707 180.48 220.707 188.32C220.707 196.16 218.28 202.693 213.427 207.92C208.573 213.147 201.947 215.76 193.547 215.76C185.147 215.76 178.52 213.147 173.667 207.92C168.813 202.693 166.387 196.16 166.387 188.32Z" fill="white"></path>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.6 KiB |
@@ -1,8 +0,0 @@
|
||||
<svg width="63" height="24" viewBox="0 0 63 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="63" height="24" rx="7" fill="#563AFF"/>
|
||||
<path d="M27.2629 16.7273H25.2856L28.2984 8H30.6763L33.6848 16.7273H31.7075L29.5214 9.99432H29.4533L27.2629 16.7273ZM27.1393 13.2969H31.8098V14.7372H27.1393V13.2969Z" fill="white"/>
|
||||
<path d="M37.829 16.7273H34.7352V8H37.8545C38.7324 8 39.4881 8.17472 40.1216 8.52415C40.7551 8.87074 41.2423 9.36932 41.5832 10.0199C41.927 10.6705 42.0989 11.4489 42.0989 12.3551C42.0989 13.2642 41.927 14.0455 41.5832 14.6989C41.2423 15.3523 40.7523 15.8537 40.1131 16.2031C39.4767 16.5526 38.7153 16.7273 37.829 16.7273ZM36.5804 15.1463H37.7523C38.2977 15.1463 38.7565 15.0497 39.1287 14.8565C39.5037 14.6605 39.7849 14.358 39.9724 13.9489C40.1628 13.5369 40.2579 13.0057 40.2579 12.3551C40.2579 11.7102 40.1628 11.1832 39.9724 10.7741C39.7849 10.3651 39.5051 10.0639 39.1329 9.87074C38.7608 9.67756 38.302 9.58097 37.7565 9.58097H36.5804V15.1463Z" fill="white"/>
|
||||
<path d="M46.5594 16.7273H43.4657V8H46.585C47.4628 8 48.2185 8.17472 48.8521 8.52415C49.4856 8.87074 49.9728 9.36932 50.3137 10.0199C50.6574 10.6705 50.8293 11.4489 50.8293 12.3551C50.8293 13.2642 50.6574 14.0455 50.3137 14.6989C49.9728 15.3523 49.4827 15.8537 48.8435 16.2031C48.2072 16.5526 47.4458 16.7273 46.5594 16.7273ZM45.3109 15.1463H46.4827C47.0282 15.1463 47.487 15.0497 47.8592 14.8565C48.2342 14.6605 48.5154 14.358 48.7029 13.9489C48.8932 13.5369 48.9884 13.0057 48.9884 12.3551C48.9884 11.7102 48.8932 11.1832 48.7029 10.7741C48.5154 10.3651 48.2356 10.0639 47.8634 9.87074C47.4913 9.67756 47.0324 9.58097 46.487 9.58097H45.3109V15.1463Z" fill="white"/>
|
||||
<path d="M10 12H18" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
<path d="M14 8V16" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 1.9 KiB |
@@ -1,5 +0,0 @@
|
||||
<svg width="89" height="24" viewBox="0 0 89 24" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<rect width="89" height="24" rx="7" fill="black"/>
|
||||
<path d="M23.8217 17V7.54545H27.5518C28.2659 7.54545 28.8752 7.67318 29.38 7.92862C29.8878 8.18099 30.274 8.53954 30.5387 9.00426C30.8065 9.46591 30.9403 10.0091 30.9403 10.6339C30.9403 11.2617 30.8049 11.8018 30.5341 12.2543C30.2633 12.7036 29.8709 13.0483 29.3569 13.2884C28.846 13.5284 28.2274 13.6484 27.5011 13.6484H25.0036V12.0419H27.1779C27.5595 12.0419 27.8765 11.9896 28.1289 11.8849C28.3813 11.7803 28.569 11.6233 28.6921 11.4141C28.8183 11.2048 28.8814 10.9447 28.8814 10.6339C28.8814 10.32 28.8183 10.0553 28.6921 9.83984C28.569 9.62441 28.3797 9.46129 28.1243 9.3505C27.8719 9.23662 27.5534 9.17969 27.1687 9.17969H25.8207V17H23.8217ZM28.9276 12.6974L31.2773 17H29.0707L26.7717 12.6974H28.9276ZM32.353 17V7.54545H38.7237V9.19354H34.3519V11.4464H38.396V13.0945H34.3519V15.3519H38.7422V17H32.353ZM40.3129 7.54545H42.7781L45.3818 13.8977H45.4926L48.0963 7.54545H50.5615V17H48.6226V10.8462H48.5441L46.0974 16.9538H44.7771L42.3303 10.8232H42.2519V17H40.3129V7.54545ZM60.8967 12.2727C60.8967 13.3037 60.7012 14.1809 60.3104 14.9041C59.9226 15.6274 59.3932 16.1798 58.7223 16.5614C58.0545 16.94 57.3035 17.1293 56.4695 17.1293C55.6293 17.1293 54.8752 16.9384 54.2074 16.5568C53.5395 16.1752 53.0117 15.6228 52.6239 14.8995C52.2362 14.1763 52.0423 13.3007 52.0423 12.2727C52.0423 11.2417 52.2362 10.3646 52.6239 9.64134C53.0117 8.91809 53.5395 8.36719 54.2074 7.98864C54.8752 7.60701 55.6293 7.41619 56.4695 7.41619C57.3035 7.41619 58.0545 7.60701 58.7223 7.98864C59.3932 8.36719 59.9226 8.91809 60.3104 9.64134C60.7012 10.3646 60.8967 11.2417 60.8967 12.2727ZM58.87 12.2727C58.87 11.6049 58.77 11.0417 58.57 10.5831C58.373 10.1245 58.0945 9.77675 57.7344 9.53977C57.3743 9.30279 56.9527 9.1843 56.4695 9.1843C55.9863 9.1843 55.5646 9.30279 55.2045 9.53977C54.8445 9.77675 54.5644 10.1245 54.3643 10.5831C54.1674 11.0417 54.0689 11.6049 54.0689 12.2727C54.0689 12.9406 54.1674 13.5038 54.3643 13.9624C54.5644 14.4209 54.8445 14.7687 55.2045 15.0057C55.5646 15.2427 55.9863 15.3612 56.4695 15.3612C56.9527 15.3612 57.3743 15.2427 57.7344 15.0057C58.0945 14.7687 58.373 14.4209 58.57 13.9624C58.77 13.5038 58.87 12.9406 58.87 12.2727ZM63.5523 7.54545L65.8374 14.7287H65.9252L68.2149 7.54545H70.4308L67.1716 17H64.5956L61.3318 7.54545H63.5523ZM71.5688 17V7.54545H77.9395V9.19354H73.5677V11.4464H77.6118V13.0945H73.5677V15.3519H77.958V17H71.5688Z" fill="white"/>
|
||||
<path d="M8 12L17 12" stroke="white" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"/>
|
||||
</svg>
|
||||
|
Before Width: | Height: | Size: 2.6 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 386 KiB |
|
Before Width: | Height: | Size: 256 KiB |
|
Before Width: | Height: | Size: 145 KiB |
|
Before Width: | Height: | Size: 1.0 MiB |
|
Before Width: | Height: | Size: 1013 KiB |