Compare commits
2204 Commits
v1.8.0
...
feat/show-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
da368a2d72 | ||
|
|
9698932bde | ||
|
|
44026fcd41 | ||
|
|
d938af0c2c | ||
|
|
fd658400a6 | ||
|
|
dcbb17b164 | ||
|
|
49741875bd | ||
|
|
0fcd9733ff | ||
|
|
62d50169d7 | ||
|
|
1d3d5a1e6a | ||
|
|
d309fa745e | ||
|
|
f7031992d5 | ||
|
|
fcdf68ea15 | ||
|
|
b0a6692179 | ||
|
|
e1e763575d | ||
|
|
4236d1179c | ||
|
|
09365bcabe | ||
|
|
be29ddcbd6 | ||
|
|
522194ca8d | ||
|
|
5af8f584f6 | ||
|
|
adc08f8865 | ||
|
|
0f39d54c3c | ||
|
|
9e6659e842 | ||
|
|
46a0f6e3f8 | ||
|
|
e90b26ebed | ||
|
|
4407f260ae | ||
|
|
d4392416c8 | ||
|
|
2d3cbd26b8 | ||
|
|
98b9660956 | ||
|
|
4e8a4e8914 | ||
|
|
96bcbc80f8 | ||
|
|
1dfc8e2973 | ||
|
|
311886f6c9 | ||
|
|
4a332f40e5 | ||
|
|
93a97a2f4c | ||
|
|
1dee098ca2 | ||
|
|
a07cc7e560 | ||
|
|
c26f7f5ebc | ||
|
|
5d801cf566 | ||
|
|
631b2d869e | ||
|
|
c02f54cc18 | ||
|
|
827a95515d | ||
|
|
9082152f1a | ||
|
|
0efbddeda4 | ||
|
|
b2e186957c | ||
|
|
d855e5cffb | ||
|
|
f3747edaa3 | ||
|
|
752932ef3d | ||
|
|
948cf9dae3 | ||
|
|
b2f93aa549 | ||
|
|
108f228edf | ||
|
|
fe6030140f | ||
|
|
003400cfa8 | ||
|
|
41a02f059d | ||
|
|
b4ed6fd107 | ||
|
|
36246da9e1 | ||
|
|
457b6b982c | ||
|
|
05a07dc4a1 | ||
|
|
85889c2cb9 | ||
|
|
be6ceaab04 | ||
|
|
f1b18688bb | ||
|
|
80c7decb81 | ||
|
|
3ef5a1e21a | ||
|
|
2eb0a4c754 | ||
|
|
10f5af5dda | ||
|
|
8b27ebb96b | ||
|
|
b28f82a881 | ||
|
|
c921606f3f | ||
|
|
c6c08f6c60 | ||
|
|
02cf620090 | ||
|
|
917550ff4d | ||
|
|
4a12cc76fa | ||
|
|
f4f74e223f | ||
|
|
8b4535c131 | ||
|
|
b15fd6c75a | ||
|
|
e1a25fa894 | ||
|
|
2bb3b71a70 | ||
|
|
4c55b9c304 | ||
|
|
639a629809 | ||
|
|
d6e3bd09b4 | ||
|
|
8d67a0d95f | ||
|
|
b9fc0175e7 | ||
|
|
dc5f52cc0d | ||
|
|
602aabdeb8 | ||
|
|
2f8aa79ec1 | ||
|
|
8af90432cf | ||
|
|
61da0733c2 | ||
|
|
33951482d5 | ||
|
|
4e8484ee7c | ||
|
|
071761a61e | ||
|
|
10a11d6725 | ||
|
|
c81178ae26 | ||
|
|
2bafae5397 | ||
|
|
6a1d201e0e | ||
|
|
8de544696d | ||
|
|
66c489da8f | ||
|
|
26c8f35688 | ||
|
|
c3e881ed77 | ||
|
|
2cf55cbb96 | ||
|
|
73f22abf56 | ||
|
|
dbae90a193 | ||
|
|
28aeac4533 | ||
|
|
162b3d6192 | ||
|
|
b016d3fd9d | ||
|
|
f64ff58dbc | ||
|
|
d4d3d96bbb | ||
|
|
a5197ee544 | ||
|
|
8a5fd4f745 | ||
|
|
12cd7940c6 | ||
|
|
0c2cec46a7 | ||
|
|
84457ddc86 | ||
|
|
d6d20e5d49 | ||
|
|
9acdca1059 | ||
|
|
66c4fd4d2f | ||
|
|
f2defb3a31 | ||
|
|
aa66c10608 | ||
|
|
28d20a9c61 | ||
|
|
94fcc0a6a9 | ||
|
|
91abdd5415 | ||
|
|
58e940d193 | ||
|
|
6991dd48f3 | ||
|
|
270a077539 | ||
|
|
ff326acfc8 | ||
|
|
af1446233c | ||
|
|
67d66e2b2f | ||
|
|
753ce5bd6e | ||
|
|
e7d71ef301 | ||
|
|
8430921e4e | ||
|
|
c938abf606 | ||
|
|
3addfe8d4b | ||
|
|
5276556837 | ||
|
|
e47ad94666 | ||
|
|
7065763c7c | ||
|
|
86489d95c2 | ||
|
|
f357c4f171 | ||
|
|
36e34fe667 | ||
|
|
dcc59f42fa | ||
|
|
f6fbff2b42 | ||
|
|
67ce20ef62 | ||
|
|
788e0dc851 | ||
|
|
e2b1c83698 | ||
|
|
15373be63e | ||
|
|
8c9cd079b7 | ||
|
|
6f67a97ade | ||
|
|
ada568cb75 | ||
|
|
b9fa254ab5 | ||
|
|
174ba90fb5 | ||
|
|
de8c7c1ca3 | ||
|
|
407a125533 | ||
|
|
d8881ba6a3 | ||
|
|
755540fb81 | ||
|
|
add358c752 | ||
|
|
91352ade20 | ||
|
|
39fbf4ef33 | ||
|
|
d9547c6654 | ||
|
|
04f9428267 | ||
|
|
ebd8f43219 | ||
|
|
f75b2e26a3 | ||
|
|
2e654c143f | ||
|
|
5bcee265a6 | ||
|
|
647599e5aa | ||
|
|
16b9a2b06e | ||
|
|
7da427c669 | ||
|
|
405e6c1e4e | ||
|
|
efbc21826b | ||
|
|
7a1f1c9df7 | ||
|
|
476bfbaef0 | ||
|
|
8231157cdb | ||
|
|
e397e3fb6f | ||
|
|
8f1cafc80d | ||
|
|
71619cf84b | ||
|
|
a3551c6719 | ||
|
|
e9043e6762 | ||
|
|
6b7d30a701 | ||
|
|
76eab2632e | ||
|
|
bba4d7fcd9 | ||
|
|
46eb7d6786 | ||
|
|
f5c84b57b2 | ||
|
|
0b12901344 | ||
|
|
5e3c303aaf | ||
|
|
f02b1639c3 | ||
|
|
94e0c3ef64 | ||
|
|
17366f5e6e | ||
|
|
f7a6f899d4 | ||
|
|
62205919a3 | ||
|
|
ee44a48994 | ||
|
|
fedc230c9f | ||
|
|
8796cec493 | ||
|
|
b3b76adec4 | ||
|
|
4362760461 | ||
|
|
bc9236c9a7 | ||
|
|
9e16cff62a | ||
|
|
b04d8dde2b | ||
|
|
2a23c95f34 | ||
|
|
cb9aa33ad0 | ||
|
|
31258b1108 | ||
|
|
6e9f16d8f1 | ||
|
|
d1b2539d67 | ||
|
|
c5f8ab3394 | ||
|
|
12c28f4efc | ||
|
|
f20fed444a | ||
|
|
97b92ba35b | ||
|
|
91df36ccca | ||
|
|
294b1a5a7c | ||
|
|
5f27b59dc0 | ||
|
|
af0efc1e7f | ||
|
|
db25346505 | ||
|
|
1a4fc1f539 | ||
|
|
1bea0a42d7 | ||
|
|
22e73a4d83 | ||
|
|
3ab3c09982 | ||
|
|
0fb0ae1826 | ||
|
|
08fe4ae71f | ||
|
|
883c787c0b | ||
|
|
732dc07ec5 | ||
|
|
c00c8f249e | ||
|
|
77d876d443 | ||
|
|
822e7b4630 | ||
|
|
275a7fc113 | ||
|
|
b08b06c4d4 | ||
|
|
7082eb27db | ||
|
|
a121445b1e | ||
|
|
95547108bf | ||
|
|
fc4e945a7e | ||
|
|
1fdb6488fd | ||
|
|
51142e5c77 | ||
|
|
57ce7ccfdf | ||
|
|
c1ce90dad0 | ||
|
|
ceb8bdf0fd | ||
|
|
b9c233cdf9 | ||
|
|
4f5de51104 | ||
|
|
c949783698 | ||
|
|
6af42e5e08 | ||
|
|
f312ed32be | ||
|
|
91fee8d2d0 | ||
|
|
c23a4bf75d | ||
|
|
e38af0bebe | ||
|
|
b968756be2 | ||
|
|
ed5b4b6dc5 | ||
|
|
956ca44ef0 | ||
|
|
3534e133af | ||
|
|
7744e2eb03 | ||
|
|
078c5e8d8a | ||
|
|
6c3607d7e7 | ||
|
|
c04435108b | ||
|
|
e5c8d05850 | ||
|
|
bf0278aa00 | ||
|
|
33d05eaa77 | ||
|
|
5b074409fc | ||
|
|
bdc3cf2150 | ||
|
|
c3b7d45502 | ||
|
|
2ef4bc1b36 | ||
|
|
2f87549dac | ||
|
|
c596012bb5 | ||
|
|
04c6faf5da | ||
|
|
b2f50547a9 | ||
|
|
e221741a6a | ||
|
|
fe43ae9e81 | ||
|
|
c5d4b9f0ae | ||
|
|
b9156cdf7f | ||
|
|
c6a3b784b5 | ||
|
|
33e2afab7b | ||
|
|
5eb6fb38e0 | ||
|
|
c2ae333a12 | ||
|
|
d462242927 | ||
|
|
c1d2f12e48 | ||
|
|
74d472e76e | ||
|
|
bfc0282e49 | ||
|
|
8c70f83297 | ||
|
|
1e6e826426 | ||
|
|
872ba2d48e | ||
|
|
7acde1c174 | ||
|
|
bb6d9a88ec | ||
|
|
29305a8e1e | ||
|
|
9f639378ec | ||
|
|
92a42269e7 | ||
|
|
691629890f | ||
|
|
2051b8788a | ||
|
|
a129d7eb13 | ||
|
|
e9eee0703d | ||
|
|
11816111ea | ||
|
|
08e3cffff8 | ||
|
|
ab63735a89 | ||
|
|
560c6e0d6a | ||
|
|
f688099f2c | ||
|
|
877f1e343a | ||
|
|
32660c5251 | ||
|
|
a1dc224007 | ||
|
|
55bcb34fd5 | ||
|
|
b18f7af28f | ||
|
|
c273ded97d | ||
|
|
971b35a252 | ||
|
|
dad18aabcb | ||
|
|
0738ad1c15 | ||
|
|
829e116e04 | ||
|
|
384e4ce43e | ||
|
|
da3f55c910 | ||
|
|
87833f1e9f | ||
|
|
ba5d1666d6 | ||
|
|
b612feea41 | ||
|
|
da74fb5241 | ||
|
|
aa8b4231e2 | ||
|
|
6b4bd44807 | ||
|
|
058c1090e3 | ||
|
|
6aa6fb5c0a | ||
|
|
cbf99d2daf | ||
|
|
a71f70644f | ||
|
|
b41d08007a | ||
|
|
0e1900b36a | ||
|
|
e6c503253b | ||
|
|
846c1426cf | ||
|
|
c97f8aa148 | ||
|
|
b99c4fe5c1 | ||
|
|
42d2dd284f | ||
|
|
b7e3f2a4ee | ||
|
|
6599c5f5bf | ||
|
|
13f6e5ff43 | ||
|
|
4d76c83328 | ||
|
|
fee19f3d7a | ||
|
|
200fc738e8 | ||
|
|
05294ac556 | ||
|
|
93dfed74f8 | ||
|
|
3d963a7719 | ||
|
|
92abbc4ce6 | ||
|
|
d111893302 | ||
|
|
967ad773eb | ||
|
|
b036863dda | ||
|
|
ead9c23d9e | ||
|
|
8c60a4c032 | ||
|
|
d08f15430c | ||
|
|
f71d93a684 | ||
|
|
44d1ad7422 | ||
|
|
346ece94b7 | ||
|
|
3a96eb003b | ||
|
|
3bd78869a0 | ||
|
|
4b416586b7 | ||
|
|
20ffbe906f | ||
|
|
b2baeb0a5d | ||
|
|
b524af174a | ||
|
|
a4caeac584 | ||
|
|
b03565a816 | ||
|
|
d0c0a543cf | ||
|
|
17192c898b | ||
|
|
7d913b0ee7 | ||
|
|
db4521db5a | ||
|
|
10b7da0558 | ||
|
|
05f19cbb60 | ||
|
|
6d9ac84859 | ||
|
|
d9834d0fd1 | ||
|
|
d84e2a8e9b | ||
|
|
13dbeaba35 | ||
|
|
b615fe7529 | ||
|
|
8a268ee6de | ||
|
|
2ae2acc003 | ||
|
|
13d89b323e | ||
|
|
6acb9be48c | ||
|
|
d9d61b5b1d | ||
|
|
2ee65e69dc | ||
|
|
fd3b5ecf08 | ||
|
|
6d67b1e51f | ||
|
|
79cea34fac | ||
|
|
b0b758a9c6 | ||
|
|
462d17de17 | ||
|
|
9afe415c2d | ||
|
|
1e4bb65db2 | ||
|
|
fcb194d08a | ||
|
|
7354951d5a | ||
|
|
369bca90fc | ||
|
|
5275d365cb | ||
|
|
e2fc056488 | ||
|
|
98d2b2ee9c | ||
|
|
9441c76a12 | ||
|
|
1ef7b52425 | ||
|
|
d88725b998 | ||
|
|
a48ca25fa2 | ||
|
|
28d636fa0d | ||
|
|
2904084853 | ||
|
|
a1eac2f348 | ||
|
|
203b45f4d5 | ||
|
|
2891da3c74 | ||
|
|
09d552b17a | ||
|
|
b524fa7248 | ||
|
|
e138a5f846 | ||
|
|
82a5f56522 | ||
|
|
4f71e801d5 | ||
|
|
d5cb9f135f | ||
|
|
1a4d3dc91a | ||
|
|
78fccc8583 | ||
|
|
37ad8e08fc | ||
|
|
e60e8545a1 | ||
|
|
5258db345e | ||
|
|
c3921bebf2 | ||
|
|
08d1f01e8e | ||
|
|
8bf9a1e821 | ||
|
|
8debb65d89 | ||
|
|
397cab9032 | ||
|
|
449c87802f | ||
|
|
3862a926ab | ||
|
|
56c2e1094d | ||
|
|
4508e309c2 | ||
|
|
f0aaca2639 | ||
|
|
4c2a9c1229 | ||
|
|
4de55c39dd | ||
|
|
84b94f3091 | ||
|
|
2e94969a41 | ||
|
|
09eabbdcea | ||
|
|
233214cb30 | ||
|
|
f694f1ad36 | ||
|
|
dd004c921e | ||
|
|
8597c04ff1 | ||
|
|
5f5f086dfc | ||
|
|
04cd5b0981 | ||
|
|
22772ac10f | ||
|
|
d4234f0837 | ||
|
|
982f467572 | ||
|
|
f4ffb8e357 | ||
|
|
cd908ae1b2 | ||
|
|
1573ddad1b | ||
|
|
2ace83bcaf | ||
|
|
88ccda8fd1 | ||
|
|
ae8cf656a3 | ||
|
|
68c00433f5 | ||
|
|
f1ad7b9ef5 | ||
|
|
27cf8660d8 | ||
|
|
7105e7a86f | ||
|
|
e52ed7a5ce | ||
|
|
393e6896ec | ||
|
|
6ebfb1f109 | ||
|
|
590c21209c | ||
|
|
e7b58b27e8 | ||
|
|
a2a9bae0e3 | ||
|
|
3ef8e677c7 | ||
|
|
86c9e09782 | ||
|
|
fa8662f17d | ||
|
|
dcf34ea92c | ||
|
|
9ece8adda8 | ||
|
|
c302f7e1a9 | ||
|
|
2907d69dfc | ||
|
|
eeddb6a97e | ||
|
|
7ec8539540 | ||
|
|
5e740a6ed6 | ||
|
|
a4032836c3 | ||
|
|
ffc891f38e | ||
|
|
93ea80a3e3 | ||
|
|
68ff422a5f | ||
|
|
54d21c4950 | ||
|
|
bfd9327e74 | ||
|
|
498d0e18b9 | ||
|
|
b5e524e513 | ||
|
|
c512c8d297 | ||
|
|
2e092d34a6 | ||
|
|
d94c8aec51 | ||
|
|
c7062ad613 | ||
|
|
08d0765cfb | ||
|
|
1f0a3e97ae | ||
|
|
36745d79db | ||
|
|
c6490818d0 | ||
|
|
f1ef403c83 | ||
|
|
cad7ecf760 | ||
|
|
8f7fcfa147 | ||
|
|
a3bde5797a | ||
|
|
a070bed7c9 | ||
|
|
207dc2b6a6 | ||
|
|
fee0a8cec1 | ||
|
|
6635d449a5 | ||
|
|
99b1699ade | ||
|
|
20d38e247b | ||
|
|
7c8ab6fd4a | ||
|
|
7bb570cdc7 | ||
|
|
fc5a5aad8d | ||
|
|
93d373c032 | ||
|
|
fde5b0717d | ||
|
|
069b26bdc4 | ||
|
|
8f3e4cfdba | ||
|
|
ba7f5d3dc3 | ||
|
|
42ce183510 | ||
|
|
977bad2156 | ||
|
|
fd4f49cf8e | ||
|
|
1b540c0e57 | ||
|
|
0e443b3a43 | ||
|
|
eaf0da3d00 | ||
|
|
dd41ac3888 | ||
|
|
a0e26c6c4f | ||
|
|
6ac7ce2c73 | ||
|
|
7b3dd697bb | ||
|
|
48e562dcee | ||
|
|
86bd4aa568 | ||
|
|
ed91486d53 | ||
|
|
913b073ba4 | ||
|
|
b1418c081c | ||
|
|
6b373bee47 | ||
|
|
256d4b3e07 | ||
|
|
dc5a09bebc | ||
|
|
ababd79da2 | ||
|
|
5e21210962 | ||
|
|
3e3da2f27b | ||
|
|
b55439ce44 | ||
|
|
ff791098d8 | ||
|
|
5abf837e95 | ||
|
|
6bcf1a3522 | ||
|
|
b0f055567d | ||
|
|
1ee2fecbc2 | ||
|
|
04b0cd2d3b | ||
|
|
0439e6811b | ||
|
|
a130cfcadb | ||
|
|
77fcc14043 | ||
|
|
fb93db6ad4 | ||
|
|
47cf321eba | ||
|
|
b0ab1b048d | ||
|
|
aaec87d7be | ||
|
|
3198bc6b2c | ||
|
|
60be228c33 | ||
|
|
22c3ffcc02 | ||
|
|
b750ccd46f | ||
|
|
0dd0d262d6 | ||
|
|
9a83938c75 | ||
|
|
9b5b3cc202 | ||
|
|
729f341164 | ||
|
|
d5c5fb7435 | ||
|
|
01b8001d4c | ||
|
|
3992650fd6 | ||
|
|
a2354b5e9e | ||
|
|
43b7e94974 | ||
|
|
cdfce9e2b8 | ||
|
|
9bd86f0564 | ||
|
|
1c0b5b25ed | ||
|
|
6d33132705 | ||
|
|
3e5629e738 | ||
|
|
41eb4f8395 | ||
|
|
6ddff58ba5 | ||
|
|
5bb9b1b675 | ||
|
|
f4f29b8520 | ||
|
|
257e2db651 | ||
|
|
a853c13bcd | ||
|
|
96c23200f7 | ||
|
|
7c2becd3a4 | ||
|
|
a85729b4cf | ||
|
|
bd3cec18d8 | ||
|
|
7dcd96350a | ||
|
|
2e1c0ae77a | ||
|
|
6a6754c7da | ||
|
|
1fb2c35984 | ||
|
|
02d3b45efc | ||
|
|
4ce7f0b487 | ||
|
|
3559d98df1 | ||
|
|
0a4251825b | ||
|
|
499cd9d81b | ||
|
|
10a6b96f13 | ||
|
|
4e3d9187f7 | ||
|
|
0921cccb4c | ||
|
|
07a505c365 | ||
|
|
c3411ba0cf | ||
|
|
5246284e32 | ||
|
|
5fe8fce89d | ||
|
|
0cedc9ed51 | ||
|
|
7cbb61bdf8 | ||
|
|
b357dc8e2f | ||
|
|
f745fef6c2 | ||
|
|
dfe810fff4 | ||
|
|
111a947413 | ||
|
|
85c6932f8f | ||
|
|
ced2f1b911 | ||
|
|
685f9d506d | ||
|
|
34cd604a91 | ||
|
|
2ffd0be03f | ||
|
|
58296505a8 | ||
|
|
779f5e9af4 | ||
|
|
2351f64e6f | ||
|
|
03987da05b | ||
|
|
07e2cb5cd9 | ||
|
|
9b43f9a40c | ||
|
|
43b0225fba | ||
|
|
da491a2967 | ||
|
|
be67986123 | ||
|
|
af9c7e0aff | ||
|
|
27e061c355 | ||
|
|
da94a94d71 | ||
|
|
970c2e56d8 | ||
|
|
766c31fa56 | ||
|
|
50fa1c8f0a | ||
|
|
e361d66c88 | ||
|
|
f1203efa62 | ||
|
|
45b9f2e1bf | ||
|
|
538600354d | ||
|
|
5c9093823b | ||
|
|
7b6c4f71a2 | ||
|
|
7e9ae69f38 | ||
|
|
ddbc9ca61b | ||
|
|
d9aa965069 | ||
|
|
6ea9d16f87 | ||
|
|
5bfeb541fc | ||
|
|
c3f713c0bd | ||
|
|
97979a6ab5 | ||
|
|
055adf9fe0 | ||
|
|
e94adc835d | ||
|
|
50bb8c4fdd | ||
|
|
aa0a340b95 | ||
|
|
41d21bc0ff | ||
|
|
2de4b75b89 | ||
|
|
b52cc9e2b4 | ||
|
|
fea3843714 | ||
|
|
5df5d59f50 | ||
|
|
062dd4f889 | ||
|
|
948b027059 | ||
|
|
4d057a39ed | ||
|
|
68c4efb1d3 | ||
|
|
eda8c7da41 | ||
|
|
ac1937f9be | ||
|
|
5f0f7693bb | ||
|
|
9ad22e2600 | ||
|
|
fe8bbc6cc8 | ||
|
|
795c5f8263 | ||
|
|
66bb9dc42b | ||
|
|
70a350fdac | ||
|
|
a795fc4310 | ||
|
|
790b743e42 | ||
|
|
21aeded2ea | ||
|
|
baf6d6bd29 | ||
|
|
2e213a8692 | ||
|
|
455cccebb5 | ||
|
|
9e602394cf | ||
|
|
46ebd49936 | ||
|
|
fcac750ad7 | ||
|
|
8cd3acd205 | ||
|
|
bc95a028ce | ||
|
|
5fb457d331 | ||
|
|
454c11a12c | ||
|
|
3ac9a418e6 | ||
|
|
c98de5988e | ||
|
|
ca5df588b7 | ||
|
|
08a41691af | ||
|
|
665f272a0e | ||
|
|
2591e3ab67 | ||
|
|
44df9b3be8 | ||
|
|
40ddfa8def | ||
|
|
cc27c552af | ||
|
|
7f248da0b3 | ||
|
|
79a0002594 | ||
|
|
a6c015bcc5 | ||
|
|
692d98cb55 | ||
|
|
d9ddc184cb | ||
|
|
e424d06026 | ||
|
|
f9821e5f80 | ||
|
|
5bd53dc093 | ||
|
|
204834872e | ||
|
|
a24049aa17 | ||
|
|
9cb9e9e7b6 | ||
|
|
3e7a766d12 | ||
|
|
02debdc28b | ||
|
|
e104fe3021 | ||
|
|
dda40537cc | ||
|
|
217269467c | ||
|
|
5f193680c9 | ||
|
|
c0ef713c0b | ||
|
|
3533aa391a | ||
|
|
ec90365427 | ||
|
|
78f7a9ba06 | ||
|
|
7793dd8b3e | ||
|
|
76866f78f0 | ||
|
|
8e3ecb4c25 | ||
|
|
1b9b2ac4c9 | ||
|
|
489f14b88f | ||
|
|
8f09c82763 | ||
|
|
2b8cda40a2 | ||
|
|
4656d67fcf | ||
|
|
e7dd67deaa | ||
|
|
b9c3219094 | ||
|
|
f55a995c0a | ||
|
|
ee378a128c | ||
|
|
c1f083d19f | ||
|
|
2ff0f97295 | ||
|
|
dd3b51d0b7 | ||
|
|
853acfda2c | ||
|
|
c756be54a1 | ||
|
|
3bbf334f99 | ||
|
|
c6c8b7da6a | ||
|
|
8a30d3ed42 | ||
|
|
a5a6b864a5 | ||
|
|
97b7320939 | ||
|
|
5c11bcb2c6 | ||
|
|
3888584b58 | ||
|
|
531a9c0bc8 | ||
|
|
84f8048e0a | ||
|
|
fdf96b0b63 | ||
|
|
86ddfe2c9f | ||
|
|
115ae93073 | ||
|
|
aa65cada6f | ||
|
|
ad9cdf3fa8 | ||
|
|
5c0035f4c3 | ||
|
|
37b4c67ead | ||
|
|
63998f4a23 | ||
|
|
efeec13794 | ||
|
|
6c49e5c86a | ||
|
|
ec57392424 | ||
|
|
8713aa7fd3 | ||
|
|
627811f28d | ||
|
|
3f743b4f61 | ||
|
|
d676b5a68d | ||
|
|
a6dfab5fbf | ||
|
|
b8bc110d33 | ||
|
|
597fd2c6d1 | ||
|
|
ab0bc3e927 | ||
|
|
e28373dae1 | ||
|
|
1bc57f159c | ||
|
|
6a8019c7a0 | ||
|
|
9b0dc5a849 | ||
|
|
283e1b0790 | ||
|
|
fc05a4bb78 | ||
|
|
88b32e317a | ||
|
|
6c61a70d58 | ||
|
|
5df3ebae22 | ||
|
|
ad252476ce | ||
|
|
8e5f6a3a96 | ||
|
|
9ff209bd32 | ||
|
|
505e61475d | ||
|
|
2c137a0eec | ||
|
|
b65ae89be6 | ||
|
|
432884a2af | ||
|
|
6878498b2e | ||
|
|
4d5332fef7 | ||
|
|
50a149b662 | ||
|
|
930838d676 | ||
|
|
f6c952ffb0 | ||
|
|
f6db530de2 | ||
|
|
db45f08905 | ||
|
|
516d53f9bf | ||
|
|
c7e1adf638 | ||
|
|
31147975c7 | ||
|
|
b9deec1487 | ||
|
|
de57208bab | ||
|
|
07e966c640 | ||
|
|
56982effcd | ||
|
|
8a52b0fbd6 | ||
|
|
2190a1b6fd | ||
|
|
c18c2ea9d4 | ||
|
|
5fce1118f6 | ||
|
|
64f64b9e31 | ||
|
|
b4ac527638 | ||
|
|
352f3af737 | ||
|
|
c7c221ad5e | ||
|
|
74adbae7ed | ||
|
|
8a5402932c | ||
|
|
e565f9bf72 | ||
|
|
942b86c647 | ||
|
|
1042310038 | ||
|
|
d0c261b9cd | ||
|
|
61396cbb15 | ||
|
|
87c6230ef2 | ||
|
|
347ad94a43 | ||
|
|
f1389cdba0 | ||
|
|
5399ddf6ac | ||
|
|
a724dc1207 | ||
|
|
c6af38f7dc | ||
|
|
4d0008186b | ||
|
|
df3df6697e | ||
|
|
13ff7b9088 | ||
|
|
196d252fec | ||
|
|
53dfdc440d | ||
|
|
988a99efb7 | ||
|
|
17da230d72 | ||
|
|
c8cdfc8885 | ||
|
|
0b00842c50 | ||
|
|
17e405a39e | ||
|
|
51bd3455cc | ||
|
|
e292af75ad | ||
|
|
ef4566eb95 | ||
|
|
e7d1ffb7ae | ||
|
|
4fded3ada3 | ||
|
|
dc5ca76d05 | ||
|
|
37bdd525ea | ||
|
|
3f03806455 | ||
|
|
ff7bb1f303 | ||
|
|
5fe1de170d | ||
|
|
72913ccece | ||
|
|
a6207e7edf | ||
|
|
2972ac6328 | ||
|
|
d90550438f | ||
|
|
aa0f08cba3 | ||
|
|
a1b39d4fbc | ||
|
|
091a160db3 | ||
|
|
03f6336ac5 | ||
|
|
24c4cfe586 | ||
|
|
ca0c858e0f | ||
|
|
2be9a0bdba | ||
|
|
d333a44e11 | ||
|
|
e8e855a36c | ||
|
|
09719a4ad3 | ||
|
|
c9e542d6d5 | ||
|
|
a32ce56295 | ||
|
|
279c8c14cc | ||
|
|
49bc2c2204 | ||
|
|
c036c945bd | ||
|
|
2e2cce9fcb | ||
|
|
7f33798789 | ||
|
|
e299433e6e | ||
|
|
c82cb67bb6 | ||
|
|
075e11a7e1 | ||
|
|
2b2c968a97 | ||
|
|
bffdb39c02 | ||
|
|
3dabd73e95 | ||
|
|
8ed30e7eda | ||
|
|
7e4297d9bf | ||
|
|
99e634711e | ||
|
|
07f370d6d2 | ||
|
|
d2dfb4c8df | ||
|
|
64ee01d9fe | ||
|
|
a8d5ab035d | ||
|
|
f58c6807d0 | ||
|
|
ca66b47014 | ||
|
|
290781e734 | ||
|
|
d403e10018 | ||
|
|
161a0e07f9 | ||
|
|
eb9b0c85a9 | ||
|
|
c7f7b96405 | ||
|
|
c5dff96f57 | ||
|
|
ff418ad55f | ||
|
|
6b0da0a568 | ||
|
|
56151982a7 | ||
|
|
c8185050f6 | ||
|
|
ed20b009a5 | ||
|
|
bf0bcf2f72 | ||
|
|
d81e80f273 | ||
|
|
6afed0e035 | ||
|
|
0a39e7b02f | ||
|
|
01a45f3085 | ||
|
|
c61764cd8d | ||
|
|
ce20f5d0a2 | ||
|
|
ffa9210286 | ||
|
|
025ead4fa3 | ||
|
|
82de03101b | ||
|
|
eae071f9b8 | ||
|
|
aadad482c4 | ||
|
|
cb8b98f707 | ||
|
|
603a888e2e | ||
|
|
9e3083cc5d | ||
|
|
ab9f2c0a66 | ||
|
|
e84888c27e | ||
|
|
4dfc91db0a | ||
|
|
5705df96f3 | ||
|
|
9ac0cf1406 | ||
|
|
71170a1c5d | ||
|
|
353978f115 | ||
|
|
e89065aafc | ||
|
|
ff35ccbaec | ||
|
|
529d5b0535 | ||
|
|
15ecb19c65 | ||
|
|
a64b32d12c | ||
|
|
f53ac25d90 | ||
|
|
de1d06528e | ||
|
|
ea227e09fa | ||
|
|
46cbd6dfd2 | ||
|
|
a61e6efdd4 | ||
|
|
6536d71566 | ||
|
|
d92412175c | ||
|
|
a3b7f9a739 | ||
|
|
5367a23112 | ||
|
|
3614f5b620 | ||
|
|
eac7954570 | ||
|
|
7d08da22b2 | ||
|
|
756acf1395 | ||
|
|
a2a03c6b52 | ||
|
|
8e63a84152 | ||
|
|
38b3197912 | ||
|
|
1d4576c7fd | ||
|
|
29a4dee91b | ||
|
|
9e166774ef | ||
|
|
dd40df4b37 | ||
|
|
afd07562b4 | ||
|
|
81a6d821c0 | ||
|
|
858ab252a6 | ||
|
|
a56e2bb577 | ||
|
|
27980cf7c7 | ||
|
|
5a7bcf32ea | ||
|
|
773423069b | ||
|
|
1e6773deb5 | ||
|
|
a95d37d610 | ||
|
|
bdf72eca70 | ||
|
|
3acb2a56a2 | ||
|
|
2f0e9d0681 | ||
|
|
bfa7eb0c19 | ||
|
|
27d71fb10f | ||
|
|
eeb1ecd2df | ||
|
|
f21b5768a5 | ||
|
|
ba08883623 | ||
|
|
b1587950c6 | ||
|
|
b473ed7cb7 | ||
|
|
2978c8adfe | ||
|
|
1f0111256b | ||
|
|
346b980a1d | ||
|
|
8000791e17 | ||
|
|
66077ea6d7 | ||
|
|
3d10a8f86a | ||
|
|
ebae9880dc | ||
|
|
2e72c16964 | ||
|
|
6ebaea395d | ||
|
|
257ee9928f | ||
|
|
2ac9f5918a | ||
|
|
9c4767bb68 | ||
|
|
cbd82988a8 | ||
|
|
d0a9445dfc | ||
|
|
cd6a9bf9a8 | ||
|
|
8afead4e39 | ||
|
|
f279471858 | ||
|
|
61fe518710 | ||
|
|
b774a59db2 | ||
|
|
63a1f52482 | ||
|
|
ab5ea5948b | ||
|
|
a8fd0fcd19 | ||
|
|
6098d55b57 | ||
|
|
9ba2f80e3a | ||
|
|
3acf71f253 | ||
|
|
ad51597bf5 | ||
|
|
60057eee6a | ||
|
|
3cfd0ba1f8 | ||
|
|
dec386840a | ||
|
|
355b9be3ff | ||
|
|
57627367f5 | ||
|
|
a5a812d3f4 | ||
|
|
5426273cf8 | ||
|
|
d9bab319e3 | ||
|
|
77862cdf9b | ||
|
|
b8d68ee359 | ||
|
|
307e434f91 | ||
|
|
f60b2eb8af | ||
|
|
9da1aa1421 | ||
|
|
4d3964daeb | ||
|
|
b80f9d3517 | ||
|
|
46981f73a9 | ||
|
|
9b6394627b | ||
|
|
3a34331cc2 | ||
|
|
95fe10b312 | ||
|
|
f8d4303531 | ||
|
|
7d49f75682 | ||
|
|
a84a8e1a6e | ||
|
|
1fc2181937 | ||
|
|
7411f01fb5 | ||
|
|
2c9c598dd7 | ||
|
|
3c00a3b1d0 | ||
|
|
660cdb575a | ||
|
|
f20876a028 | ||
|
|
b31866cf32 | ||
|
|
bde27c3880 | ||
|
|
80cb613888 | ||
|
|
23966b1103 | ||
|
|
2fd897064a | ||
|
|
846298210a | ||
|
|
f22e98ccca | ||
|
|
5cb6d10e3d | ||
|
|
5b4dd74503 | ||
|
|
cd3cec5d48 | ||
|
|
621888d6d4 | ||
|
|
3e7fcaf764 | ||
|
|
8fb44df59b | ||
|
|
5b205d6e4a | ||
|
|
dc98ef8b57 | ||
|
|
f9ae242792 | ||
|
|
438640d5b8 | ||
|
|
078b755fb6 | ||
|
|
501e01fe23 | ||
|
|
ce992fc205 | ||
|
|
8609dedafd | ||
|
|
66f124b397 | ||
|
|
21cf439210 | ||
|
|
91a7d20923 | ||
|
|
f49c2138de | ||
|
|
774853af7a | ||
|
|
7e30a4a3d4 | ||
|
|
b179731359 | ||
|
|
d6409d7152 | ||
|
|
eaeefafe39 | ||
|
|
59974edf80 | ||
|
|
37f914d1cc | ||
|
|
da92fd705b | ||
|
|
00505b8af8 | ||
|
|
22a3bba6ab | ||
|
|
b6b3cbcb9a | ||
|
|
de97048424 | ||
|
|
02471e6d60 | ||
|
|
edf58ee897 | ||
|
|
5ecfd278d4 | ||
|
|
3327179270 | ||
|
|
98462e8dca | ||
|
|
2f515164b3 | ||
|
|
3c8ceebedc | ||
|
|
26fe93dfc0 | ||
|
|
9113a826ce | ||
|
|
eca1baf53e | ||
|
|
6b3b8e6204 | ||
|
|
194a4f3adb | ||
|
|
054f27083b | ||
|
|
168d1dc678 | ||
|
|
8cc5c62665 | ||
|
|
82c874afb5 | ||
|
|
1afd0381c1 | ||
|
|
5f5589f1f1 | ||
|
|
1cee408113 | ||
|
|
92854b9e84 | ||
|
|
a4c5817b54 | ||
|
|
6c82680066 | ||
|
|
6135bc716e | ||
|
|
1639ea7552 | ||
|
|
bea8c89d9f | ||
|
|
fe1618d1d8 | ||
|
|
30250e1afa | ||
|
|
16f02e2544 | ||
|
|
123f4a3931 | ||
|
|
ce5fb78bcd | ||
|
|
2ccd053b0a | ||
|
|
3422ccef15 | ||
|
|
630663ec83 | ||
|
|
37c6bf3a3f | ||
|
|
1c2963a1e0 | ||
|
|
50a5b0f7db | ||
|
|
df933bb928 | ||
|
|
aa85108f1a | ||
|
|
c778a28f2b | ||
|
|
48142721ac | ||
|
|
826e3ebc5e | ||
|
|
0f31259c97 | ||
|
|
881d7fa5ee | ||
|
|
d479425333 | ||
|
|
cb944bcfb2 | ||
|
|
745683f2a8 | ||
|
|
e019935545 | ||
|
|
9601477bba | ||
|
|
0702ca3fc9 | ||
|
|
d9a9ae7e72 | ||
|
|
76eba3d638 | ||
|
|
69a448b4c1 | ||
|
|
a8d9a64f79 | ||
|
|
1546727612 | ||
|
|
dfdcc05d3e | ||
|
|
12941a107d | ||
|
|
a94d46e005 | ||
|
|
acb777c236 | ||
|
|
7e87cc1923 | ||
|
|
1ad23f4ed8 | ||
|
|
1bcba17f76 | ||
|
|
cb871f6a88 | ||
|
|
6d2c296a7d | ||
|
|
3434a1f5a6 | ||
|
|
f9c45d95e1 | ||
|
|
0bd051a7a9 | ||
|
|
d4789463ad | ||
|
|
7190a25550 | ||
|
|
04bc8308ac | ||
|
|
68c67fbd32 | ||
|
|
50fd8926d6 | ||
|
|
7e1e61f8af | ||
|
|
ee066d7859 | ||
|
|
54a48f9493 | ||
|
|
70fc0789d6 | ||
|
|
66cd75dce8 | ||
|
|
8b3b6a471b | ||
|
|
e707fcda05 | ||
|
|
a3574acabd | ||
|
|
f36db182f1 | ||
|
|
59e492b2a6 | ||
|
|
6380063978 | ||
|
|
2686873163 | ||
|
|
b2ef26600c | ||
|
|
e94fdcad32 | ||
|
|
2e423b101b | ||
|
|
91677a41d4 | ||
|
|
b747d0273c | ||
|
|
45fb612793 | ||
|
|
db081d3197 | ||
|
|
423eaa5462 | ||
|
|
f38dde160e | ||
|
|
782eb29aac | ||
|
|
5810c5544a | ||
|
|
b6eb581192 | ||
|
|
54171e566a | ||
|
|
b7a44ab11f | ||
|
|
4ea60d3431 | ||
|
|
9840ebfe33 | ||
|
|
af2b726a38 | ||
|
|
d425a1b2c0 | ||
|
|
687b0ac3bd | ||
|
|
3978dd9b07 | ||
|
|
d9f78b9d5c | ||
|
|
81e638a7e0 | ||
|
|
6dc906a604 | ||
|
|
005db4d0e8 | ||
|
|
41127da7d9 | ||
|
|
3111b8d395 | ||
|
|
89f2647ead | ||
|
|
084a432741 | ||
|
|
1f071d1608 | ||
|
|
3f75d0df56 | ||
|
|
ba108fe23a | ||
|
|
ab736cf975 | ||
|
|
c36239772e | ||
|
|
286090d58a | ||
|
|
69fda864db | ||
|
|
2709c5d332 | ||
|
|
da5fdd54bd | ||
|
|
92e7453c31 | ||
|
|
a59e1a2015 | ||
|
|
838eb845d4 | ||
|
|
f69fdc634a | ||
|
|
9c0e7272ff | ||
|
|
515afdc5ae | ||
|
|
f32fa485e0 | ||
|
|
a5187801b4 | ||
|
|
6cb11d6a61 | ||
|
|
1e91ca5eda | ||
|
|
210727ea0e | ||
|
|
f429585447 | ||
|
|
759a3f17cc | ||
|
|
de7d1c2baa | ||
|
|
8223011c3d | ||
|
|
53684d6fbb | ||
|
|
31cefd7dd0 | ||
|
|
993a8f83ff | ||
|
|
fd1e00986c | ||
|
|
62028d1273 | ||
|
|
240ae25a90 | ||
|
|
2bd242a164 | ||
|
|
4b87684611 | ||
|
|
3cd2a2a0f9 | ||
|
|
dc129eeb7d | ||
|
|
fb3f426688 | ||
|
|
f33ebbcce0 | ||
|
|
86922df61a | ||
|
|
2916ab502e | ||
|
|
9c24fcec0d | ||
|
|
8258997f3e | ||
|
|
ef714c3903 | ||
|
|
76c0874f0e | ||
|
|
9166f734c9 | ||
|
|
368421a498 | ||
|
|
c8d8c68b95 | ||
|
|
e68cd3c47f | ||
|
|
1732d7e707 | ||
|
|
da0d778b25 | ||
|
|
b8bd0cc63a | ||
|
|
5150e13121 | ||
|
|
b2f784eeff | ||
|
|
ad98284caf | ||
|
|
6915ea70ca | ||
|
|
26eb99d4a7 | ||
|
|
e1eb1be781 | ||
|
|
b536e191b1 | ||
|
|
f1b475b966 | ||
|
|
23a61d400d | ||
|
|
4ae8308663 | ||
|
|
c3d6343edb | ||
|
|
1059d2ddbd | ||
|
|
10ecc27bb5 | ||
|
|
0c3c540051 | ||
|
|
c44dba5e92 | ||
|
|
82da7d0b24 | ||
|
|
4dd522eda4 | ||
|
|
bbe300e847 | ||
|
|
dd667e5b4a | ||
|
|
6f013de8e4 | ||
|
|
96a6289911 | ||
|
|
e0970fc69d | ||
|
|
5cafc7bb37 | ||
|
|
2b755c0497 | ||
|
|
e3beae244d | ||
|
|
c2ec7be719 | ||
|
|
ed5d9132d3 | ||
|
|
8654db534b | ||
|
|
e20299eb94 | ||
|
|
1f65907f70 | ||
|
|
6a55c09328 | ||
|
|
9734e4d859 | ||
|
|
4f93bc5721 | ||
|
|
73dc0b1cfa | ||
|
|
e31979002f | ||
|
|
4be1e527fc | ||
|
|
45332b3202 | ||
|
|
cb0258cb58 | ||
|
|
f3d80f28fd | ||
|
|
4b73ee3d41 | ||
|
|
e0e2e0c2fb | ||
|
|
f2b977c941 | ||
|
|
9fe10fd9a2 | ||
|
|
6b444d280a | ||
|
|
10c2acf410 | ||
|
|
6bb5908aba | ||
|
|
f54b24b4da | ||
|
|
ef3c548c98 | ||
|
|
820690a073 | ||
|
|
63cf4f0045 | ||
|
|
deecbdd124 | ||
|
|
07f790dda0 | ||
|
|
a91b1ecf1f | ||
|
|
4f75dd30fe | ||
|
|
629ee3e33f | ||
|
|
54e06d26bc | ||
|
|
dda26b7a3f | ||
|
|
e86a17980b | ||
|
|
23068450ed | ||
|
|
3924370b3e | ||
|
|
f57ac978ae | ||
|
|
e68ad7331f | ||
|
|
9b5fb4bde1 | ||
|
|
a8f1fb5148 | ||
|
|
65185ecb77 | ||
|
|
14a68f24e4 | ||
|
|
16a93c2b7e | ||
|
|
925690fb00 | ||
|
|
dc279bc335 | ||
|
|
d1d759e86f | ||
|
|
82a30fbd25 | ||
|
|
12fea29f48 | ||
|
|
b602f7c03f | ||
|
|
a20ab981a7 | ||
|
|
9ae08cecf2 | ||
|
|
c9cd7b4344 | ||
|
|
24b587762a | ||
|
|
18a2fb38d1 | ||
|
|
5f47cdb763 | ||
|
|
e5a18b6e4c | ||
|
|
519976eb0b | ||
|
|
b630fbc641 | ||
|
|
2369a22d23 | ||
|
|
124d9ff269 | ||
|
|
1c95ac7f07 | ||
|
|
54169fe22b | ||
|
|
4707b78c1f | ||
|
|
95d91efe52 | ||
|
|
fc0c7f536b | ||
|
|
80f1cfc72d | ||
|
|
628012fb49 | ||
|
|
a29498e911 | ||
|
|
3d460b5862 | ||
|
|
4acb2a5d92 | ||
|
|
47c800b78b | ||
|
|
a20da8036f | ||
|
|
7897118fbd | ||
|
|
0246e09595 | ||
|
|
72ad37456a | ||
|
|
83ec0a6c76 | ||
|
|
63f77b0dc5 | ||
|
|
798d2e0e6b | ||
|
|
fd098b5440 | ||
|
|
11d30e409c | ||
|
|
6cb5ae246d | ||
|
|
60c76ba854 | ||
|
|
ebf7b32408 | ||
|
|
f343459236 | ||
|
|
d2a57864f0 | ||
|
|
8a07f281ff | ||
|
|
b7b721abd5 | ||
|
|
45f1e386cc | ||
|
|
3c3e8a6c31 | ||
|
|
ec99b48605 | ||
|
|
da9e599e8f | ||
|
|
b1d3fa3f42 | ||
|
|
7954672ef8 | ||
|
|
20a6039bd0 | ||
|
|
d7fe61bc3d | ||
|
|
b10406896a | ||
|
|
1f135e0721 | ||
|
|
e1bdc9ce33 | ||
|
|
e3654bb472 | ||
|
|
6418d6bcff | ||
|
|
9bf7c5013e | ||
|
|
1797e78ebd | ||
|
|
7196299d31 | ||
|
|
4d7d9fdfaa | ||
|
|
0afd6ac749 | ||
|
|
79222179fd | ||
|
|
89f552872c | ||
|
|
cf88034230 | ||
|
|
1c9e9cabcd | ||
|
|
2bc7f5ad22 | ||
|
|
7a3108aca6 | ||
|
|
fa28aaee44 | ||
|
|
4ab7650c51 | ||
|
|
a493d996bd | ||
|
|
a049ffae2b | ||
|
|
57ca6af27d | ||
|
|
e52bc12dbe | ||
|
|
fe144384aa | ||
|
|
e3226b734d | ||
|
|
6578eea2ff | ||
|
|
42e283feb3 | ||
|
|
4a1988dd23 | ||
|
|
cbae718d25 | ||
|
|
53c880832d | ||
|
|
df9e172ecc | ||
|
|
e5145c9bbf | ||
|
|
1fbfa23908 | ||
|
|
193b7ae0e6 | ||
|
|
ebe351ff0f | ||
|
|
f653901e8b | ||
|
|
4ab512fa93 | ||
|
|
1827a98284 | ||
|
|
25c0759932 | ||
|
|
b686298a5f | ||
|
|
abf8860c8a | ||
|
|
115b3da62c | ||
|
|
d9734a8fd9 | ||
|
|
9ccf9e9def | ||
|
|
9f4b2e2a95 | ||
|
|
892d877cfb | ||
|
|
4dc76b864f | ||
|
|
d8e9c05319 | ||
|
|
c532019647 | ||
|
|
82409f3ccc | ||
|
|
1389c7f4be | ||
|
|
787844b199 | ||
|
|
eb9588fbea | ||
|
|
4574c11d0d | ||
|
|
8ec08a5ef6 | ||
|
|
51b7c3b7ed | ||
|
|
b8f6ad68a1 | ||
|
|
02c1f2ee53 | ||
|
|
b9fdaf2845 | ||
|
|
269c82ded0 | ||
|
|
ddb0d6540e | ||
|
|
3731da5df5 | ||
|
|
54f2e8d3e3 | ||
|
|
3b930259f5 | ||
|
|
4fe166660f | ||
|
|
8dcdadfd41 | ||
|
|
ceba63af09 | ||
|
|
12c44665b3 | ||
|
|
4cef3e1e14 | ||
|
|
116caee113 | ||
|
|
ff2f865d1a | ||
|
|
1f4292310e | ||
|
|
f44a38d843 | ||
|
|
e85f78432a | ||
|
|
290cbd6498 | ||
|
|
72dab618eb | ||
|
|
e728911038 | ||
|
|
bf280c0cf9 | ||
|
|
1fd0248605 | ||
|
|
c8de99eae4 | ||
|
|
0a148f79a6 | ||
|
|
a70ac89646 | ||
|
|
fd4ed4affa | ||
|
|
ab0aee388e | ||
|
|
f6cf8455e7 | ||
|
|
adc56aef84 | ||
|
|
2d0dc58bc1 | ||
|
|
6058fc0718 | ||
|
|
ef484be008 | ||
|
|
a19a527b16 | ||
|
|
64414ce7b8 | ||
|
|
6f40284e67 | ||
|
|
bc3510ac58 | ||
|
|
84eb935cec | ||
|
|
1950949504 | ||
|
|
f3e6a377a9 | ||
|
|
1441278bdb | ||
|
|
1e5081dccd | ||
|
|
a412095707 | ||
|
|
27514c03e7 | ||
|
|
57ab256230 | ||
|
|
3766564785 | ||
|
|
199cae09c7 | ||
|
|
4490adc36c | ||
|
|
fe1353b5c7 | ||
|
|
94b61e9f7c | ||
|
|
1abc0b8c9a | ||
|
|
69c9f59479 | ||
|
|
b15ca6cdb7 | ||
|
|
b2b9bd744e | ||
|
|
c223b251d6 | ||
|
|
9cc475efb3 | ||
|
|
6dbd179baf | ||
|
|
2dce318a17 | ||
|
|
791fe70fd3 | ||
|
|
7778202439 | ||
|
|
8ea64e2224 | ||
|
|
28ddce1bc4 | ||
|
|
d8b5fc5d3f | ||
|
|
0fbf24b836 | ||
|
|
58bdcadf6f | ||
|
|
35f6252c3d | ||
|
|
37c2918bdd | ||
|
|
0fcea6d203 | ||
|
|
7d7d58fa45 | ||
|
|
c2d3918341 | ||
|
|
8ca3df4f63 | ||
|
|
535cd75836 | ||
|
|
165595e5fb | ||
|
|
52ebfe5b6b | ||
|
|
0615256069 | ||
|
|
bcbcd42b83 | ||
|
|
50be731d06 | ||
|
|
3cecfe4939 | ||
|
|
ac50bbddca | ||
|
|
efb1296ff2 | ||
|
|
cfe2ce758b | ||
|
|
4da44131eb | ||
|
|
0fc901bd24 | ||
|
|
0b38514e41 | ||
|
|
a885e774fc | ||
|
|
d9ac947fe1 | ||
|
|
d12c09aca0 | ||
|
|
6496a1b2b9 | ||
|
|
f824045fdd | ||
|
|
ddf81a3ae9 | ||
|
|
e8a5a2eae9 | ||
|
|
06a61f45ff | ||
|
|
994aadec7c | ||
|
|
cb059a141f | ||
|
|
a41b6be185 | ||
|
|
d31da4a0ec | ||
|
|
bfcb0727d7 | ||
|
|
d81306ac1a | ||
|
|
b227943fe7 | ||
|
|
e04e82e81d | ||
|
|
b44ba30873 | ||
|
|
0acb5c643c | ||
|
|
923102a8bf | ||
|
|
ac323c99d5 | ||
|
|
7911d17b2f | ||
|
|
307e44a7b9 | ||
|
|
6ad2da163c | ||
|
|
a38ef9e29e | ||
|
|
379d4f1887 | ||
|
|
ce61872822 | ||
|
|
8e37a8f1bb | ||
|
|
fe9c08e92a | ||
|
|
87f6ae8135 | ||
|
|
4d780ea2ca | ||
|
|
6643f1e4c8 | ||
|
|
5d94ac361e | ||
|
|
5d1cb8558b | ||
|
|
361ddc5591 | ||
|
|
fc978076d7 | ||
|
|
20cd119c89 | ||
|
|
7c5b8e4305 | ||
|
|
24315ab0e6 | ||
|
|
4cae0c9652 | ||
|
|
18875d46b5 | ||
|
|
e45a185c40 | ||
|
|
62dfb582f4 | ||
|
|
1587a44cd7 | ||
|
|
fcbc738088 | ||
|
|
f845e197b5 | ||
|
|
8ff0fa7707 | ||
|
|
bb59de5f5e | ||
|
|
b8b15b9394 | ||
|
|
9676b1d110 | ||
|
|
f5e217bd81 | ||
|
|
97501e63c5 | ||
|
|
5b220d5c5c | ||
|
|
5cdc30b822 | ||
|
|
5249e4730d | ||
|
|
870324bb56 | ||
|
|
588bdcc2dd | ||
|
|
bd0208040e | ||
|
|
b6c16c83c1 | ||
|
|
6331c4715f | ||
|
|
1eb0e387ea | ||
|
|
e4e2a444a0 | ||
|
|
979aac2fca | ||
|
|
4308a0bebd | ||
|
|
eb60b869d4 | ||
|
|
948bd41cd8 | ||
|
|
eb760b37e6 | ||
|
|
9dcafff26f | ||
|
|
0644a8c9fb | ||
|
|
a984580e4c | ||
|
|
b501cc1f93 | ||
|
|
9bc0ae975a | ||
|
|
d111e219c2 | ||
|
|
6ebcecae80 | ||
|
|
cd91d53ead | ||
|
|
5d1f54005f | ||
|
|
df115bd7db | ||
|
|
bd81d77cfa | ||
|
|
59365642fc | ||
|
|
7387acdd2c | ||
|
|
f477998b2f | ||
|
|
0bf2ba5416 | ||
|
|
10c568098c | ||
|
|
d9285915ef | ||
|
|
ae0dcd0333 | ||
|
|
228b3f2660 | ||
|
|
90c3b1bf6d | ||
|
|
e805e8d054 | ||
|
|
89e975aa0e | ||
|
|
acd7abefe9 | ||
|
|
1be4490126 | ||
|
|
24d1dbadb7 | ||
|
|
0a7ff36bb5 | ||
|
|
f788dc5595 | ||
|
|
b347af10fe | ||
|
|
d0411f7d96 | ||
|
|
5806870b1c | ||
|
|
8d8322152b | ||
|
|
8b5f7655cf | ||
|
|
a29068ee46 | ||
|
|
ac45c57215 | ||
|
|
19dbf7fe13 | ||
|
|
8dc662d27e | ||
|
|
d52e998111 | ||
|
|
1f9222ad04 | ||
|
|
179fe8b1b9 | ||
|
|
888bffba1d | ||
|
|
e5e4f6508c | ||
|
|
898b74a478 | ||
|
|
3189f46ccb | ||
|
|
42a566d923 | ||
|
|
0897bb24fd | ||
|
|
4a2f698ff8 | ||
|
|
0fccd3d5cb | ||
|
|
62c3b341bb | ||
|
|
b2600d3ffd | ||
|
|
e2e1432069 | ||
|
|
d1394d311e | ||
|
|
28726fd153 | ||
|
|
2de33a87cc | ||
|
|
a04bcd196b | ||
|
|
44261b2ceb | ||
|
|
0db291047b | ||
|
|
17dcb1826c | ||
|
|
f1ddf4de56 | ||
|
|
d6e06098d0 | ||
|
|
cd232d7221 | ||
|
|
d986d2e462 | ||
|
|
7003bab28f | ||
|
|
9f6c0cf104 | ||
|
|
43d3fa92ba | ||
|
|
d80238d93b | ||
|
|
a6160be3ad | ||
|
|
4c1abdf0d2 | ||
|
|
07ba60ab67 | ||
|
|
b4d37b2101 | ||
|
|
05f573d181 | ||
|
|
0b40e1c3fe | ||
|
|
b0da562472 | ||
|
|
a0d8b9029e | ||
|
|
76d7a3f6d4 | ||
|
|
f4093d04d9 | ||
|
|
427d38df44 | ||
|
|
1d9931a58a | ||
|
|
4737a5fe69 | ||
|
|
27d496d602 | ||
|
|
df37a00bfc | ||
|
|
7c7ff40776 | ||
|
|
2607d14c82 | ||
|
|
1e80fea530 | ||
|
|
59fc695190 | ||
|
|
c8b5620cc5 | ||
|
|
67ad59b80e | ||
|
|
9c0c80033f | ||
|
|
c2a919e178 | ||
|
|
a0da79165d | ||
|
|
40ea43b738 | ||
|
|
0183a8eff8 | ||
|
|
700643019f | ||
|
|
240351ea23 | ||
|
|
b49e215617 | ||
|
|
b1ffeb1f24 | ||
|
|
ae9a9cf8cf | ||
|
|
64b76bdc6e | ||
|
|
9744de507e | ||
|
|
f2b4aec4dd | ||
|
|
bad0604d0c | ||
|
|
a8ba2bf70f | ||
|
|
da85a7ca87 | ||
|
|
2a9cc0eebf | ||
|
|
e0ee4f5249 | ||
|
|
2ffb6d6a9d | ||
|
|
c285217ed2 | ||
|
|
c30a0b534c | ||
|
|
ff0b35fd01 | ||
|
|
c11161d294 | ||
|
|
26c05586e7 | ||
|
|
1a3ff5dbb7 | ||
|
|
942ef6a752 | ||
|
|
f88158e61f | ||
|
|
d447029cdc | ||
|
|
39a7d73430 | ||
|
|
5c31cf5c4d | ||
|
|
7c941bbc25 | ||
|
|
44ef2cf02c | ||
|
|
38949bf4b0 | ||
|
|
e0aede3fc4 | ||
|
|
fec3c309be | ||
|
|
764d001ef6 | ||
|
|
6f034ad878 | ||
|
|
b598d846bb | ||
|
|
e3fb11cce0 | ||
|
|
d4aa3699f2 | ||
|
|
80d0925ed7 | ||
|
|
77471a5f56 | ||
|
|
c655d55197 | ||
|
|
ab6de361ab | ||
|
|
113210b08e | ||
|
|
db43181733 | ||
|
|
d60939211a | ||
|
|
7c945a674d | ||
|
|
f0a70d945a | ||
|
|
fdca00b198 | ||
|
|
8b961fb8cd | ||
|
|
7e3c775f70 | ||
|
|
a25b0d0349 | ||
|
|
5c5fa5c4bc | ||
|
|
98cb9b3234 | ||
|
|
eb5f51249b | ||
|
|
d81c45fef1 | ||
|
|
22178a6c2e | ||
|
|
6644e3b606 | ||
|
|
d42f842b2f | ||
|
|
9163e27a5f | ||
|
|
f4d6958491 | ||
|
|
9cb6486c71 | ||
|
|
ad7bff102d | ||
|
|
3a8b31a5a7 | ||
|
|
5461392516 | ||
|
|
fc90ca3815 | ||
|
|
ec2f4ea547 | ||
|
|
5f06eb5116 | ||
|
|
ae10af2464 | ||
|
|
9092c06e71 | ||
|
|
54e0130216 | ||
|
|
0fc47e07d4 | ||
|
|
ae72c5a8fe | ||
|
|
a65a4796ca | ||
|
|
4789b76e66 | ||
|
|
7b52637c5f | ||
|
|
db2429d1cb | ||
|
|
25f014ef3b | ||
|
|
44cff354f2 | ||
|
|
6276c1df97 | ||
|
|
8c2420fd03 | ||
|
|
011b19b62d | ||
|
|
fbd41bc2d8 | ||
|
|
950d9b1a8f | ||
|
|
9c6b7b005f | ||
|
|
74ce8dcfce | ||
|
|
3c892eb1aa | ||
|
|
7907508240 | ||
|
|
602a13660a | ||
|
|
2adead91bf | ||
|
|
ca6e27b1f7 | ||
|
|
76082a2e61 | ||
|
|
83b1993cd2 | ||
|
|
18d569aad8 | ||
|
|
30987d5ad0 | ||
|
|
b71c95192e | ||
|
|
f6269ad0ce | ||
|
|
8f374e5244 | ||
|
|
c497faa07a | ||
|
|
2033eec0e8 | ||
|
|
76ffc0c509 | ||
|
|
538377034f | ||
|
|
33e0084e93 | ||
|
|
1fa58cab6b | ||
|
|
9747f19343 | ||
|
|
51004da441 | ||
|
|
266cb83ba9 | ||
|
|
1d7b3523ae | ||
|
|
3924077b97 | ||
|
|
868eab0344 | ||
|
|
9aec950593 | ||
|
|
dc5ab92a62 | ||
|
|
55d61e3282 | ||
|
|
60965c1b37 | ||
|
|
f5c595fa2e | ||
|
|
8a3e4b2041 | ||
|
|
de90a73a83 | ||
|
|
4721f5fda2 | ||
|
|
50f9364f7a | ||
|
|
ceb9eafe27 | ||
|
|
4e15117746 | ||
|
|
b87b43cfa8 | ||
|
|
caf056caf1 | ||
|
|
c5953b584f | ||
|
|
de053edeab | ||
|
|
392e675bd4 | ||
|
|
e53c8bd43f | ||
|
|
976d5e2bb3 | ||
|
|
d1a1c9308a | ||
|
|
1a8e162eb9 | ||
|
|
fbac03e9e1 | ||
|
|
b89a1cd066 | ||
|
|
780e80a4f9 | ||
|
|
d6bc1b8eb1 | ||
|
|
5783d10696 | ||
|
|
97e06b6284 | ||
|
|
09f7f1f5e0 | ||
|
|
943d116b69 | ||
|
|
55224aa221 | ||
|
|
05cd1fd0a8 | ||
|
|
e8762bfb25 | ||
|
|
242d212402 | ||
|
|
b14522f22d | ||
|
|
4f43756c0e | ||
|
|
4e9b724070 | ||
|
|
774c1678be | ||
|
|
bb18a7278e | ||
|
|
f2609dba56 | ||
|
|
071c57c5a2 | ||
|
|
caf76f9cd9 | ||
|
|
012b61ae8e | ||
|
|
936f91f204 | ||
|
|
de28bd4660 | ||
|
|
e60a333aff | ||
|
|
b9664906d1 | ||
|
|
910cf73515 | ||
|
|
c70bea5f62 | ||
|
|
cefb6463c5 | ||
|
|
7059b64948 | ||
|
|
76bf91bc0a | ||
|
|
3679eecfc2 | ||
|
|
ac7875011d | ||
|
|
83b708368f | ||
|
|
140d585122 | ||
|
|
848535a343 | ||
|
|
3fcf90edd7 | ||
|
|
0e7597edcc | ||
|
|
5f6c60656d | ||
|
|
b85220fc65 | ||
|
|
8c038ae662 | ||
|
|
84e3fdb4ac | ||
|
|
a0eb2d5a8d | ||
|
|
ed03bc372d | ||
|
|
ecc2d70c3c | ||
|
|
2995cf9fa6 | ||
|
|
2823a0f52a | ||
|
|
04fe61bf94 | ||
|
|
4b13c8db90 | ||
|
|
33af2f1e44 | ||
|
|
ac477c3d0d | ||
|
|
0fd7a1287b | ||
|
|
8fa09a41ff | ||
|
|
d932f9f1e2 | ||
|
|
16e54284fb | ||
|
|
61e1f87d18 | ||
|
|
65a460a9c3 | ||
|
|
3cd58548db | ||
|
|
7f5609a3eb | ||
|
|
23bab5a2b9 | ||
|
|
9919904c97 | ||
|
|
5df569d9d3 | ||
|
|
e8c9a5ecea | ||
|
|
87bc0b957c | ||
|
|
65d01303c5 | ||
|
|
887e00ca37 | ||
|
|
3443bf9941 | ||
|
|
28452a343b | ||
|
|
c8f94a4cae | ||
|
|
807491a8fd | ||
|
|
9dbe8d2a71 | ||
|
|
ab400af39e | ||
|
|
a8dc7c08e6 | ||
|
|
fc9f2a23fb | ||
|
|
0bbbc5f4cd | ||
|
|
e5f8259981 | ||
|
|
359b6de304 | ||
|
|
c321f138e9 | ||
|
|
5b10939269 | ||
|
|
b0184ca756 | ||
|
|
e092e256c5 | ||
|
|
7383043837 | ||
|
|
22e255f706 | ||
|
|
9d8d5d0cd5 | ||
|
|
f2c0c9acf8 | ||
|
|
33597d5232 | ||
|
|
228d22f9f0 | ||
|
|
754a1d0f06 | ||
|
|
ec7951bd93 | ||
|
|
ac0a89ae26 | ||
|
|
8568f4c2a9 | ||
|
|
6ef198e705 | ||
|
|
8fc379f30d | ||
|
|
46306db274 | ||
|
|
b13e130f7c | ||
|
|
76b784319d | ||
|
|
6342e3263b | ||
|
|
49e1d2107e | ||
|
|
36de22ef1c | ||
|
|
865fe1917f | ||
|
|
c00673ffcb | ||
|
|
7ae92c1c2f | ||
|
|
f0e55abab5 | ||
|
|
ce03c56030 | ||
|
|
5bb01f47ff | ||
|
|
a0f2803a80 | ||
|
|
5679500c76 | ||
|
|
7e1846dfda | ||
|
|
e5fb3bd9b1 | ||
|
|
da5f52db74 | ||
|
|
e7e960e5ec | ||
|
|
ed4f1fe6f8 | ||
|
|
2a8ba00024 | ||
|
|
3f9ae7fecc | ||
|
|
76786f7a01 | ||
|
|
99ae80cc12 | ||
|
|
b925f7e419 | ||
|
|
14d5461085 | ||
|
|
88cbbe69b2 | ||
|
|
90bd8d45b4 | ||
|
|
c370ee8018 | ||
|
|
9a4e64e13f | ||
|
|
dc771f51e8 | ||
|
|
86ee80f607 | ||
|
|
b14adc29f5 | ||
|
|
ec9954fc34 | ||
|
|
675d44c798 | ||
|
|
1f3f1a95ce | ||
|
|
83c2b4ff3c | ||
|
|
3b2934d4ae | ||
|
|
d95c53bbb6 | ||
|
|
131c58fdae | ||
|
|
3cb2c43003 | ||
|
|
222d145753 | ||
|
|
3225f283cb | ||
|
|
95b9c7c421 | ||
|
|
3a64907ce2 | ||
|
|
00921b2603 | ||
|
|
811ed57b14 | ||
|
|
6cfea0ce5b | ||
|
|
f2c3bd54d6 | ||
|
|
b0c327854c | ||
|
|
c7a9b5ccf6 | ||
|
|
8469d13a12 | ||
|
|
1f38c25e6a | ||
|
|
90a6315e2b | ||
|
|
651251b371 | ||
|
|
992fee5620 | ||
|
|
8f867540ba | ||
|
|
f7fc9ec32e | ||
|
|
b5aefd251e | ||
|
|
b7941187ff | ||
|
|
5b2fc12480 | ||
|
|
86830f91ef | ||
|
|
b5f66408fc | ||
|
|
9a318db6fb | ||
|
|
a95de9ff99 | ||
|
|
e83ca8425f | ||
|
|
b95e381a56 | ||
|
|
6a2c59700e | ||
|
|
49d91fb127 | ||
|
|
564f659778 | ||
|
|
fa31f8667f | ||
|
|
7d5c246a1f | ||
|
|
4900cfd402 | ||
|
|
5e5cdb181d | ||
|
|
1f65980f26 | ||
|
|
bd1d81c1b8 | ||
|
|
5de3dc7737 | ||
|
|
f7bf010cfa | ||
|
|
68375469c5 | ||
|
|
4c73ee7d82 | ||
|
|
32aeb97c34 | ||
|
|
b576f34893 | ||
|
|
39015d79d4 | ||
|
|
87c0702959 | ||
|
|
6fa8a46a8a | ||
|
|
7d465ca489 | ||
|
|
49bb77c098 | ||
|
|
7345cc9943 | ||
|
|
f7e71100f0 | ||
|
|
e2788b86a4 | ||
|
|
2cb350468b | ||
|
|
d962af1f18 | ||
|
|
292343660c | ||
|
|
84458fb660 | ||
|
|
94b0021453 | ||
|
|
05b45aa65a | ||
|
|
37b6dd19f0 | ||
|
|
995e0c6c51 | ||
|
|
799c650f32 | ||
|
|
33f5474033 | ||
|
|
bc3bdb835e | ||
|
|
1a1d4111fb | ||
|
|
53a4760034 | ||
|
|
ca03fc2fc3 | ||
|
|
35fe734ddf | ||
|
|
edf544ec93 | ||
|
|
e4abe4efd5 | ||
|
|
30ee570ef7 | ||
|
|
64091c1f29 | ||
|
|
cb0de46e7d | ||
|
|
a9ba2b50f9 | ||
|
|
7dd4db13a1 | ||
|
|
41c33e0626 | ||
|
|
94b2688073 | ||
|
|
08e578b4b4 | ||
|
|
e68ec2eb56 | ||
|
|
0f2686a102 | ||
|
|
da628ca26d | ||
|
|
31fde475a3 | ||
|
|
0533f3a070 | ||
|
|
1a93ce1d43 | ||
|
|
71764ad364 | ||
|
|
6a96729055 | ||
|
|
356d736f4e | ||
|
|
14701369bd | ||
|
|
b14e475db0 | ||
|
|
d6fd01d210 | ||
|
|
77edec5f76 | ||
|
|
e843203bb6 | ||
|
|
89d43ae52d | ||
|
|
10e13ce8f8 | ||
|
|
1f43a68612 | ||
|
|
3afdce151b | ||
|
|
378d9e7758 | ||
|
|
f564ca1eb5 | ||
|
|
09d2878e1d | ||
|
|
afdf4a268a | ||
|
|
0958376bb4 | ||
|
|
3c2307dca8 | ||
|
|
0d0eca89c2 | ||
|
|
a279085526 | ||
|
|
a9fdba83cc | ||
|
|
78ef6e56e0 | ||
|
|
54ce6aaffa | ||
|
|
7c5e82e31d | ||
|
|
a2b4a36414 | ||
|
|
4772b58454 | ||
|
|
fc615a04f6 | ||
|
|
1f03db1ec0 | ||
|
|
898d703a67 | ||
|
|
3248910174 | ||
|
|
88e7f35995 | ||
|
|
69a7f86559 | ||
|
|
57950e2637 | ||
|
|
e56fa732fa | ||
|
|
d2945913ce | ||
|
|
fc4d9260bf | ||
|
|
ff6ecb81d7 | ||
|
|
d1becb3b1e | ||
|
|
8df5a5ec4b | ||
|
|
37e63cc610 | ||
|
|
44de8438ef | ||
|
|
011f8c65f5 | ||
|
|
e7f1f019d6 | ||
|
|
be0f7b0067 | ||
|
|
0694f46fcd | ||
|
|
e5e66d8cc0 | ||
|
|
d4c6065e45 | ||
|
|
2208403c20 | ||
|
|
2f2580d2d3 | ||
|
|
5daf4a19b7 | ||
|
|
154c2b2da3 | ||
|
|
ab7ee92112 | ||
|
|
3a2bb63c98 | ||
|
|
241e16dd06 | ||
|
|
3bbe71f2c9 | ||
|
|
ba798287f9 | ||
|
|
e1c34a3689 | ||
|
|
257e6dfb1c | ||
|
|
05d1535823 | ||
|
|
21e8277dd9 | ||
|
|
1ed4179b70 | ||
|
|
448c239f9f | ||
|
|
b947c96858 | ||
|
|
b1c76c0ba6 | ||
|
|
4c3248065e | ||
|
|
f609d36818 | ||
|
|
e3eba8b39f | ||
|
|
679ef22438 | ||
|
|
7148738112 | ||
|
|
02c4d40f94 | ||
|
|
4239b1358e | ||
|
|
21e99598fc | ||
|
|
54207e3f33 | ||
|
|
5849d351c2 | ||
|
|
eac8381981 | ||
|
|
50339a2480 | ||
|
|
dddd8f32e8 | ||
|
|
caf07cd8ba | ||
|
|
2802e04688 | ||
|
|
492d1cfa8f | ||
|
|
f36b91c3cc | ||
|
|
60f2482082 | ||
|
|
8d7c6f46b7 | ||
|
|
590403650e | ||
|
|
f4b46763a4 | ||
|
|
68c749b378 | ||
|
|
2a1eca1539 | ||
|
|
8cc7b525d9 | ||
|
|
711cabcf9b | ||
|
|
b9b0745f30 | ||
|
|
f7f4f02d4a | ||
|
|
3d32377cb9 | ||
|
|
0cfcfa0026 | ||
|
|
2a0322541d | ||
|
|
fb0c6d42eb | ||
|
|
4867df5fe8 | ||
|
|
e88f98418a | ||
|
|
6769ca8905 | ||
|
|
8e9d6ae084 | ||
|
|
ef7f1334fe | ||
|
|
45b2b81fe4 | ||
|
|
ab4004fae0 | ||
|
|
cd91bc0628 | ||
|
|
6d534d312f | ||
|
|
ab49a125b2 | ||
|
|
2d5b70ab85 | ||
|
|
6b675d5def | ||
|
|
5779cddf22 | ||
|
|
77b50c0be3 | ||
|
|
aeebe5015e | ||
|
|
fbbe1a05a0 | ||
|
|
19bfa3a7c3 | ||
|
|
13c85b3a45 | ||
|
|
8e0adc9514 | ||
|
|
94ee60b832 | ||
|
|
00b623d823 | ||
|
|
d39b190788 | ||
|
|
b8ba6e39e2 | ||
|
|
90d347dc89 | ||
|
|
77ea9dfac9 | ||
|
|
1d616c7ec6 | ||
|
|
0eab54cbdc | ||
|
|
62a970e8c3 | ||
|
|
7c23cd7c4c | ||
|
|
e233e9be16 | ||
|
|
09d98cff7d | ||
|
|
a3d6573d93 | ||
|
|
38ec50bf0e | ||
|
|
a8c380c67a | ||
|
|
b8a8aa53ba | ||
|
|
3b1f232bc0 | ||
|
|
f846cf32fd | ||
|
|
48100ead55 | ||
|
|
3bd7c00038 | ||
|
|
6962d22142 | ||
|
|
a4014c3f39 | ||
|
|
4758acc413 | ||
|
|
939ffcd42a | ||
|
|
403254a983 | ||
|
|
21c6c07b39 | ||
|
|
070a830eaa | ||
|
|
c635d21180 | ||
|
|
19c9c5491b | ||
|
|
c2befaee46 | ||
|
|
7dc702c626 | ||
|
|
b8b2dfda76 | ||
|
|
97f5ffc8ae | ||
|
|
241abd3c50 | ||
|
|
777e629b3d | ||
|
|
1543c990ca | ||
|
|
b0f5ab9776 | ||
|
|
fdedaa073a | ||
|
|
f8d032d9fc | ||
|
|
64e20a1350 | ||
|
|
0c8eea65a5 | ||
|
|
08bb47da1d | ||
|
|
4fad3808a2 | ||
|
|
f05a875a05 | ||
|
|
4f7f2ba361 | ||
|
|
0cfe87e65c | ||
|
|
5ec9944f2a | ||
|
|
fa339a5183 | ||
|
|
5936a06ad1 | ||
|
|
c21bbf1022 | ||
|
|
00fa17b31f | ||
|
|
6e03c8d236 | ||
|
|
7022ef5f7e | ||
|
|
54d590765f | ||
|
|
d24c572d7f | ||
|
|
010be95ed5 | ||
|
|
59ca8cb2c6 | ||
|
|
15dc0ad9ac | ||
|
|
f690ea01c4 | ||
|
|
9c09a8128a | ||
|
|
16779d496e | ||
|
|
3ab7318b25 | ||
|
|
a2b7e039d5 | ||
|
|
a68e88826f | ||
|
|
7c8545c21b | ||
|
|
d17c3b4aa3 | ||
|
|
a0529b1cdd | ||
|
|
1f0c77c3bf | ||
|
|
56acfab2b2 | ||
|
|
256cef9047 | ||
|
|
7d3750e54c | ||
|
|
f021d080af | ||
|
|
293400fd76 | ||
|
|
c495ca5256 | ||
|
|
956c7bf93a | ||
|
|
219d88851e | ||
|
|
9b9fb62596 | ||
|
|
f636e7dbd4 | ||
|
|
33f2341f7f | ||
|
|
f5bbcb2777 | ||
|
|
5a56081a29 | ||
|
|
d2b73a8942 | ||
|
|
09a35cf10a | ||
|
|
eb7ac7bfc4 | ||
|
|
a98636ed39 | ||
|
|
73a2a0a127 | ||
|
|
494dc72eb9 | ||
|
|
4665dbc372 | ||
|
|
0b6671d538 | ||
|
|
392c97f35f | ||
|
|
8629eda6d4 | ||
|
|
8507f11175 | ||
|
|
ae6d33febd | ||
|
|
54e11170fb | ||
|
|
66eecf5e37 | ||
|
|
f7b1e876ad | ||
|
|
ccff68ad18 | ||
|
|
112c140ce7 | ||
|
|
c2cd9f0865 | ||
|
|
749e89e362 | ||
|
|
7241bbbb6d | ||
|
|
edb7bef5a3 | ||
|
|
436de528e9 | ||
|
|
7f0f932aca | ||
|
|
73d2d58da9 | ||
|
|
777b201c1f | ||
|
|
11ff85c56c | ||
|
|
a9ed1c0fe8 | ||
|
|
9a06b19288 | ||
|
|
516610a820 | ||
|
|
8b989924a4 | ||
|
|
bd3e1b7592 | ||
|
|
af18b95ffa | ||
|
|
9ecec8ce17 | ||
|
|
f2f097bb7e | ||
|
|
27da1c8e49 | ||
|
|
015fd24e03 | ||
|
|
1306b78f63 | ||
|
|
ad0b342d89 | ||
|
|
6d463dcfef | ||
|
|
965923116d | ||
|
|
3281adce65 | ||
|
|
74f6be6123 | ||
|
|
74b997ba49 | ||
|
|
b7c6f3e2bb | ||
|
|
8506275f90 | ||
|
|
64c3a82189 | ||
|
|
23b1d94808 | ||
|
|
0a9712d227 | ||
|
|
6575d03f45 | ||
|
|
6037daedcd | ||
|
|
a351abd5d9 | ||
|
|
8b00bb59de | ||
|
|
910c20bd00 | ||
|
|
885318623f | ||
|
|
e1df6105ed | ||
|
|
c4879d598b | ||
|
|
cc9cfa53fa | ||
|
|
996bb206c6 | ||
|
|
df0ac3b7c8 | ||
|
|
df68f9ac25 | ||
|
|
a639ee63dd | ||
|
|
04feb3cdbe | ||
|
|
f77f0a59ec | ||
|
|
fdc5695fb4 | ||
|
|
f24477e7b4 | ||
|
|
0e561e7bc2 | ||
|
|
257cb5141b | ||
|
|
89312347d1 | ||
|
|
f1e752892d | ||
|
|
6a13b8c3c5 | ||
|
|
c43a864480 | ||
|
|
06d58547c8 | ||
|
|
173e3a3fc0 | ||
|
|
d0cf780ea2 | ||
|
|
493538ae70 | ||
|
|
955bb5c99d | ||
|
|
88fc45975f | ||
|
|
09a88b4a97 | ||
|
|
67e98ef46b | ||
|
|
85c5f16e93 | ||
|
|
7cf5345c5a | ||
|
|
4c62baa577 | ||
|
|
0f55b8ee8a | ||
|
|
ad041a5cf1 | ||
|
|
3bd22f6b78 | ||
|
|
fa15457ce4 | ||
|
|
ef434ca804 | ||
|
|
2b165a065c | ||
|
|
12b7e22c31 | ||
|
|
d77e3745bb | ||
|
|
5429e493ea | ||
|
|
b05cd2e6e4 | ||
|
|
a9564086b0 | ||
|
|
c32c6e0363 | ||
|
|
f9008df1c6 | ||
|
|
9a2fa9e2c7 | ||
|
|
dd8f7d078b | ||
|
|
b40d5a75f2 | ||
|
|
01e41ba1b2 | ||
|
|
1ed28a717c | ||
|
|
1d6d8af748 | ||
|
|
f80c5d6a46 | ||
|
|
6c7643a4c3 | ||
|
|
563ac1d2fb | ||
|
|
91511c09f3 | ||
|
|
82180a54f1 | ||
|
|
aee2863caf | ||
|
|
ac705a6900 | ||
|
|
5b4f3f5b67 | ||
|
|
94c2440832 | ||
|
|
5d2ba22988 | ||
|
|
cf9fe0c02c | ||
|
|
4c57139cdc | ||
|
|
2c0b8b5f8e | ||
|
|
2634eb10be | ||
|
|
d35d3061e5 | ||
|
|
aca53be909 | ||
|
|
e3221aedaa | ||
|
|
363902a588 |
@@ -1,124 +0,0 @@
|
|||||||
{
|
|
||||||
"files": [
|
|
||||||
"README.md"
|
|
||||||
],
|
|
||||||
"imageSize": 100,
|
|
||||||
"commit": false,
|
|
||||||
"contributors": [
|
|
||||||
{
|
|
||||||
"login": "liyasthomas",
|
|
||||||
"name": "Liyas Thomas",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/10395817?v=4",
|
|
||||||
"profile": "https://liyasthomas.web.app",
|
|
||||||
"contributions": [
|
|
||||||
"code",
|
|
||||||
"design"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "NBTX",
|
|
||||||
"name": "John Harker",
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/43181178?v=4",
|
|
||||||
"profile": "https://github.com/NBTX",
|
|
||||||
"contributions": [
|
|
||||||
"code",
|
|
||||||
"design"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "larouxn",
|
|
||||||
"name": "Nicholas La Roux",
|
|
||||||
"avatar_url": "https://avatars0.githubusercontent.com/u/1557529?v=4",
|
|
||||||
"profile": "https://nicholaslaroux.com",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "yubathom",
|
|
||||||
"name": "Thomas Yuba",
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/4117768?v=4",
|
|
||||||
"profile": "https://github.com/yubathom",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "nickpalenchar",
|
|
||||||
"name": "Nick Palenchar",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/7539781?v=4",
|
|
||||||
"profile": "http://www.linkedin.com/in/nickpalenchar",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "AndrewBastin",
|
|
||||||
"name": "Andrew Bastin",
|
|
||||||
"avatar_url": "https://avatars2.githubusercontent.com/u/9131943?v=4",
|
|
||||||
"profile": "https://github.com/AndrewBastin",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "vlad0337187",
|
|
||||||
"name": "Vladislav",
|
|
||||||
"avatar_url": "https://avatars1.githubusercontent.com/u/12682937?v=4",
|
|
||||||
"profile": "https://github.com/vlad0337187",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "izerozlu",
|
|
||||||
"name": "izerozlu",
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/17386157?v=4",
|
|
||||||
"profile": "https://github.com/izerozlu",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "JacobAnavisca",
|
|
||||||
"name": "Jacob Anavisca",
|
|
||||||
"avatar_url": "https://avatars2.githubusercontent.com/u/21232366?v=4",
|
|
||||||
"profile": "https://github.com/JacobAnavisca",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "nityanandagohain",
|
|
||||||
"name": "Nityananda Gohain",
|
|
||||||
"avatar_url": "https://avatars3.githubusercontent.com/u/26831659?v=4",
|
|
||||||
"profile": "http://nityanandagohain.github.io",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "hosseinnedaee",
|
|
||||||
"name": "Hossein Nedaee",
|
|
||||||
"avatar_url": "https://avatars2.githubusercontent.com/u/42691357?v=4",
|
|
||||||
"profile": "https://github.com/hosseinnedaee",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
},
|
|
||||||
{
|
|
||||||
"login": "jamesgeorge007",
|
|
||||||
"name": "James George",
|
|
||||||
"avatar_url": "https://avatars2.githubusercontent.com/u/25279263?v=4",
|
|
||||||
"profile": "https://ghuser.io/jamesgeorge007",
|
|
||||||
"contributions": [
|
|
||||||
"code"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
],
|
|
||||||
"contributorsPerLine": 7,
|
|
||||||
"projectName": "postwoman",
|
|
||||||
"projectOwner": "liyasthomas",
|
|
||||||
"repoType": "github",
|
|
||||||
"repoHost": "https://github.com"
|
|
||||||
}
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
version: 1
|
|
||||||
update_configs:
|
|
||||||
- package_manager: "javascript"
|
|
||||||
directory: "/"
|
|
||||||
update_schedule: "weekly"
|
|
||||||
default_labels:
|
|
||||||
- "Dependency upgrade"
|
|
||||||
default_reviewers:
|
|
||||||
- "liyasthomas"
|
|
||||||
@@ -30,7 +30,7 @@ coverage
|
|||||||
# nyc test coverage
|
# nyc test coverage
|
||||||
.nyc_output
|
.nyc_output
|
||||||
|
|
||||||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||||
.grunt
|
.grunt
|
||||||
|
|
||||||
# Bower dependency directory (https://bower.io/)
|
# Bower dependency directory (https://bower.io/)
|
||||||
@@ -97,8 +97,8 @@ sw.*
|
|||||||
# Vim swap files
|
# Vim swap files
|
||||||
*.swp
|
*.swp
|
||||||
|
|
||||||
# Postwoman build data
|
# Build data
|
||||||
.postwoman
|
.hoppscotch
|
||||||
|
|
||||||
# File explorer
|
# File explorer
|
||||||
.directory
|
.directory
|
||||||
|
|||||||
@@ -1,11 +1,11 @@
|
|||||||
# https://editorconfig.org
|
# EditorConfig is awesome: https://EditorConfig.org
|
||||||
|
|
||||||
root = true
|
root = true
|
||||||
|
|
||||||
[*]
|
[*]
|
||||||
indent_size = 2
|
|
||||||
indent_style = space
|
indent_style = space
|
||||||
charset = utf-8
|
indent_size = 2
|
||||||
end_of_line = lf
|
end_of_line = lf
|
||||||
insert_final_newline = true
|
charset = utf-8
|
||||||
trim_trailing_whitespace = true
|
trim_trailing_whitespace = true
|
||||||
|
insert_final_newline = true
|
||||||
|
|||||||
@@ -1,14 +1,5 @@
|
|||||||
{
|
{
|
||||||
"projects": {
|
"projects": {
|
||||||
"default": "postwoman-api"
|
"default": "postwoman-api"
|
||||||
},
|
|
||||||
"targets": {
|
|
||||||
"postwoman-api": {
|
|
||||||
"hosting": {
|
|
||||||
"postwoman": [
|
|
||||||
"postwoman"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
5
.github/FUNDING.yml
vendored
5
.github/FUNDING.yml
vendored
@@ -1,3 +1,2 @@
|
|||||||
open_collective: postwoman
|
github: hoppscotch
|
||||||
patreon: liyasthomas
|
open_collective: hoppscotch
|
||||||
custom: https://www.paypal.me/liyascthomas
|
|
||||||
|
|||||||
2
.github/ISSUE_TEMPLATE/custom.md
vendored
2
.github/ISSUE_TEMPLATE/custom.md
vendored
@@ -6,5 +6,3 @@ labels: ''
|
|||||||
assignees: ''
|
assignees: ''
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
10
.github/dependabot.yml
vendored
Normal file
10
.github/dependabot.yml
vendored
Normal file
@@ -0,0 +1,10 @@
|
|||||||
|
version: 2
|
||||||
|
updates:
|
||||||
|
- package-ecosystem: npm
|
||||||
|
directory: "/"
|
||||||
|
schedule:
|
||||||
|
interval: weekly
|
||||||
|
time: '00:00'
|
||||||
|
open-pull-requests-limit: 10
|
||||||
|
reviewers:
|
||||||
|
- liyasthomas
|
||||||
5
.github/semantic.yml
vendored
Normal file
5
.github/semantic.yml
vendored
Normal file
@@ -0,0 +1,5 @@
|
|||||||
|
# Always validate the PR title AND all the commits
|
||||||
|
titleAndCommits: true
|
||||||
|
# Allows use of Merge commits (eg on github: "Merge branch 'master' into feature/ride-unicorns")
|
||||||
|
# this is only relevant when using commitsOnly: true (or titleAndCommits: true)
|
||||||
|
allowMergeCommits: true
|
||||||
61
.github/workflows/codeql-analysis.yml
vendored
Normal file
61
.github/workflows/codeql-analysis.yml
vendored
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
name: "Code Scanning - Action"
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
pull_request:
|
||||||
|
branches: [main]
|
||||||
|
schedule:
|
||||||
|
# ┌───────────── minute (0 - 59)
|
||||||
|
# │ ┌───────────── hour (0 - 23)
|
||||||
|
# │ │ ┌───────────── day of the month (1 - 31)
|
||||||
|
# │ │ │ ┌───────────── month (1 - 12 or JAN-DEC)
|
||||||
|
# │ │ │ │ ┌───────────── day of the week (0 - 6 or SUN-SAT)
|
||||||
|
# │ │ │ │ │
|
||||||
|
# │ │ │ │ │
|
||||||
|
# │ │ │ │ │
|
||||||
|
# * * * * *
|
||||||
|
- cron: '0 0 * * 6'
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
CodeQL-Build:
|
||||||
|
# CodeQL runs on ubuntu-latest, windows-latest, and macos-latest
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
permissions:
|
||||||
|
# required for all workflows
|
||||||
|
security-events: write
|
||||||
|
|
||||||
|
# only required for workflows in private repositories
|
||||||
|
actions: read
|
||||||
|
contents: read
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- name: Checkout repository
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
# Initializes the CodeQL tools for scanning.
|
||||||
|
- name: Initialize CodeQL
|
||||||
|
uses: github/codeql-action/init@v1
|
||||||
|
# Override language selection by uncommenting this and choosing your languages
|
||||||
|
# with:
|
||||||
|
# languages: go, javascript, csharp, python, cpp, java
|
||||||
|
|
||||||
|
# Autobuild attempts to build any compiled languages (C/C++, C#, or Java).
|
||||||
|
# If this step fails, then you should remove it and run the build manually (see below).
|
||||||
|
- name: Autobuild
|
||||||
|
uses: github/codeql-action/autobuild@v1
|
||||||
|
|
||||||
|
# ℹ️ Command-line programs to run using the OS shell.
|
||||||
|
# 📚 https://git.io/JvXDl
|
||||||
|
|
||||||
|
# ✏️ If the Autobuild fails above, remove it and uncomment the following
|
||||||
|
# three lines and modify them (or add more) to build your code if your
|
||||||
|
# project uses a compiled language
|
||||||
|
|
||||||
|
#- run: |
|
||||||
|
# make bootstrap
|
||||||
|
# make release
|
||||||
|
|
||||||
|
- name: Perform CodeQL Analysis
|
||||||
|
uses: github/codeql-action/analyze@v1
|
||||||
18
.github/workflows/deploy-prod.yml
vendored
Normal file
18
.github/workflows/deploy-prod.yml
vendored
Normal file
@@ -0,0 +1,18 @@
|
|||||||
|
name: Deploy to Live Channel
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
deploy_live_website:
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- uses: FirebaseExtended/action-hosting-deploy@v0
|
||||||
|
with:
|
||||||
|
repoToken: '${{ secrets.GITHUB_TOKEN }}'
|
||||||
|
firebaseServiceAccount: '${{ secrets.FIREBASE_SERVICE_ACCOUNT_POSTWOMAN_API }}'
|
||||||
|
channelId: live
|
||||||
|
projectId: postwoman-api
|
||||||
39
.github/workflows/publish-docker.yml
vendored
Normal file
39
.github/workflows/publish-docker.yml
vendored
Normal file
@@ -0,0 +1,39 @@
|
|||||||
|
name: Publish Docker image
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [main]
|
||||||
|
release:
|
||||||
|
types: [published]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
push_to_registry:
|
||||||
|
name: Push Docker image to Docker Hub
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
steps:
|
||||||
|
- name: Check out the repo
|
||||||
|
uses: actions/checkout@v2
|
||||||
|
|
||||||
|
- name: Log in to Docker Hub
|
||||||
|
uses: docker/login-action@f054a8b539a109f9f41c372932f1ae047eff08c9
|
||||||
|
with:
|
||||||
|
username: ${{ secrets.DOCKER_USERNAME }}
|
||||||
|
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||||
|
|
||||||
|
- name: Extract metadata (tags, labels) for Docker
|
||||||
|
id: meta
|
||||||
|
uses: docker/metadata-action@98669ae865ea3cffbcbaa878cf57c20bbf1c6c38
|
||||||
|
with:
|
||||||
|
images: hoppscotch/hoppscotch
|
||||||
|
flavor: |
|
||||||
|
latest=true
|
||||||
|
prefix=
|
||||||
|
suffix=
|
||||||
|
|
||||||
|
- name: Build and push Docker image
|
||||||
|
uses: docker/build-push-action@ad44023a93711e3deb337508980b4b5e9bcdc5dc
|
||||||
|
with:
|
||||||
|
context: .
|
||||||
|
push: true
|
||||||
|
tags: ${{ steps.meta.outputs.tags }}
|
||||||
|
labels: ${{ steps.meta.outputs.labels }}
|
||||||
32
.github/workflows/tests.yml
vendored
Normal file
32
.github/workflows/tests.yml
vendored
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
name: Node.js CI
|
||||||
|
|
||||||
|
on:
|
||||||
|
push:
|
||||||
|
branches: [ main ]
|
||||||
|
pull_request:
|
||||||
|
branches: [ main ]
|
||||||
|
|
||||||
|
jobs:
|
||||||
|
build:
|
||||||
|
|
||||||
|
runs-on: ubuntu-latest
|
||||||
|
|
||||||
|
strategy:
|
||||||
|
matrix:
|
||||||
|
node-version: [14.x]
|
||||||
|
|
||||||
|
steps:
|
||||||
|
- uses: actions/checkout@v2
|
||||||
|
- name: Use Node.js ${{ matrix.node-version }}
|
||||||
|
uses: actions/setup-node@v2
|
||||||
|
with:
|
||||||
|
node-version: ${{ matrix.node-version }}
|
||||||
|
- name: Cache .pnpm-store
|
||||||
|
uses: actions/cache@v1
|
||||||
|
with:
|
||||||
|
path: ~/.pnpm-store
|
||||||
|
key: ${{ runner.os }}-node${{ matrix.node-version }}-${{ hashFiles('**/pnpm-lock.yaml') }}
|
||||||
|
- name: Install pnpm
|
||||||
|
run: curl -f https://get.pnpm.io/v6.14.js | node - add --global pnpm@6
|
||||||
|
- name: Run tests
|
||||||
|
run: pnpm i && pnpm -r test
|
||||||
18
.gitignore
vendored
18
.gitignore
vendored
@@ -26,7 +26,7 @@ coverage
|
|||||||
# nyc test coverage
|
# nyc test coverage
|
||||||
.nyc_output
|
.nyc_output
|
||||||
|
|
||||||
# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files)
|
# Grunt intermediate storage (https://gruntjs.com/creating-plugins#storing-task-files)
|
||||||
.grunt
|
.grunt
|
||||||
|
|
||||||
# Bower dependency directory (https://bower.io/)
|
# Bower dependency directory (https://bower.io/)
|
||||||
@@ -93,8 +93,20 @@ sw.*
|
|||||||
# Vim swap files
|
# Vim swap files
|
||||||
*.swp
|
*.swp
|
||||||
|
|
||||||
# Postwoman build data
|
# Build data
|
||||||
.postwoman
|
.hoppscotch
|
||||||
|
|
||||||
# File explorer
|
# File explorer
|
||||||
.directory
|
.directory
|
||||||
|
|
||||||
|
# Tests screenshots
|
||||||
|
tests/*/screenshots
|
||||||
|
|
||||||
|
# Tests videos
|
||||||
|
tests/*/videos
|
||||||
|
|
||||||
|
# Local Netlify folder
|
||||||
|
.netlify
|
||||||
|
|
||||||
|
# Andrew's crazy Volar shim generator
|
||||||
|
shims-volar.d.ts
|
||||||
|
|||||||
1
.husky/.gitignore
vendored
Normal file
1
.husky/.gitignore
vendored
Normal file
@@ -0,0 +1 @@
|
|||||||
|
_
|
||||||
4
.husky/commit-msg
Executable file
4
.husky/commit-msg
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
. "$(dirname "$0")/_/husky.sh"
|
||||||
|
|
||||||
|
npx --no-install commitlint --edit ""
|
||||||
4
.husky/pre-commit
Executable file
4
.husky/pre-commit
Executable file
@@ -0,0 +1,4 @@
|
|||||||
|
#!/bin/sh
|
||||||
|
. "$(dirname "$0")/_/husky.sh"
|
||||||
|
|
||||||
|
npm run pre-commit
|
||||||
8
.prettierignore
Normal file
8
.prettierignore
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
.dependabot
|
||||||
|
.github
|
||||||
|
.nuxt
|
||||||
|
.hoppscotch
|
||||||
|
.vscode
|
||||||
|
package-lock.json
|
||||||
|
node_modules
|
||||||
|
dist
|
||||||
3
.prettierrc.js
Normal file
3
.prettierrc.js
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
module.exports = {
|
||||||
|
semi: false
|
||||||
|
}
|
||||||
23
.stylelintrc.js
Normal file
23
.stylelintrc.js
Normal file
@@ -0,0 +1,23 @@
|
|||||||
|
module.exports = {
|
||||||
|
extends: ["stylelint-config-standard", "stylelint-config-prettier"],
|
||||||
|
// add your custom config here
|
||||||
|
// https://stylelint.io/user-guide/configuration
|
||||||
|
rules: {
|
||||||
|
"at-rule-no-unknown": [
|
||||||
|
true,
|
||||||
|
{
|
||||||
|
ignoreAtRules: [
|
||||||
|
"extends",
|
||||||
|
"apply",
|
||||||
|
"variants",
|
||||||
|
"responsive",
|
||||||
|
"screen",
|
||||||
|
"mixin",
|
||||||
|
"include",
|
||||||
|
],
|
||||||
|
},
|
||||||
|
],
|
||||||
|
"declaration-block-trailing-semicolon": null,
|
||||||
|
"no-descending-specificity": null,
|
||||||
|
},
|
||||||
|
}
|
||||||
55
.travis.yml
55
.travis.yml
@@ -1,55 +0,0 @@
|
|||||||
# == INSTRUCTIONS FOR SETTING UP TRAVIS (and GitHub Pages) ==
|
|
||||||
#
|
|
||||||
# 1. Find this repository in your Travis-CI dashboard.
|
|
||||||
# open settings and add an environment variable called
|
|
||||||
# GITHUB_ACCESS_TOKEN and set it to your personal access token.addons:
|
|
||||||
# See: https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line
|
|
||||||
#
|
|
||||||
# **DO NOT TURN ON 'Display value in build log'!!!!**
|
|
||||||
#
|
|
||||||
# 2. Push the code to the repository.
|
|
||||||
# 3. Set the GitHub Pages source in the GitHub repository settings to the
|
|
||||||
# gh-pages branch.
|
|
||||||
|
|
||||||
language: node_js
|
|
||||||
node_js:
|
|
||||||
- "12"
|
|
||||||
|
|
||||||
os: linux
|
|
||||||
|
|
||||||
addons:
|
|
||||||
apt:
|
|
||||||
packages:
|
|
||||||
- libgconf-2-4 # cypress binary dependency
|
|
||||||
|
|
||||||
env:
|
|
||||||
- DEPLOY_ENV=POSTWOMAN_IO
|
|
||||||
|
|
||||||
cache:
|
|
||||||
npm: true
|
|
||||||
directories:
|
|
||||||
- "node_modules"
|
|
||||||
- ~/.cache
|
|
||||||
|
|
||||||
branches:
|
|
||||||
only:
|
|
||||||
- "master"
|
|
||||||
|
|
||||||
install:
|
|
||||||
- "npm install firebase-tools"
|
|
||||||
- "npm install"
|
|
||||||
|
|
||||||
before_script:
|
|
||||||
- "npm run test"
|
|
||||||
|
|
||||||
script:
|
|
||||||
- "cd functions"
|
|
||||||
- "npm install"
|
|
||||||
- "cd .."
|
|
||||||
- "npm run generate"
|
|
||||||
|
|
||||||
notifications:
|
|
||||||
webhooks: https://www.travisbuddy.com
|
|
||||||
|
|
||||||
after_success:
|
|
||||||
- firebase deploy --token $FIREBASE_TOKEN
|
|
||||||
3
.vscode/settings.json
vendored
3
.vscode/settings.json
vendored
@@ -1,3 +0,0 @@
|
|||||||
{
|
|
||||||
"deepcode.review.results.hideInformationIssues": false
|
|
||||||
}
|
|
||||||
764
CHANGELOG.md
764
CHANGELOG.md
@@ -1,47 +1,544 @@
|
|||||||
# Changelog
|
# Changelog
|
||||||
|
|
||||||
|
## [v1.12.0](https://github.com/hoppscotch/hoppscotch/tree/v1.12.0) (2020-05-27)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/hoppscotch/hoppscotch/compare/v1.10.0...v1.12.0)
|
||||||
|
|
||||||
|
## [v1.10.0](https://github.com/hoppscotch/hoppscotch/tree/v1.10.0) (2020-04-10)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/hoppscotch/hoppscotch/compare/v1.9.9...v1.10.0)
|
||||||
|
|
||||||
|
## [v1.9.9](https://github.com/liyasthomas/postwoman/tree/v1.9.9) (2020-07-30)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/v1.9.7...v1.9.9)
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- TextDecoder.decode\(\) TypeError hangs the whole app [\#1032](https://github.com/liyasthomas/postwoman/issues/1032)
|
||||||
|
- response content doesn't fit to the text area when resizing [\#970](https://github.com/liyasthomas/postwoman/issues/970)
|
||||||
|
- typing into headers input fields [\#912](https://github.com/liyasthomas/postwoman/issues/912)
|
||||||
|
- Environment variable template \(\<\<foo\>\>\) appears urlencoded \(%3C%3Cfoo%3E%3E\) [\#896](https://github.com/liyasthomas/postwoman/issues/896)
|
||||||
|
- TypeError: Cannot read property 'startsWith' of undefined - after getting 401 response [\#894](https://github.com/liyasthomas/postwoman/issues/894)
|
||||||
|
- When deleting the header, the key is not updated [\#886](https://github.com/liyasthomas/postwoman/issues/886)
|
||||||
|
- Cannot introduce query parameters in URL for WebSocket [\#873](https://github.com/liyasthomas/postwoman/issues/873)
|
||||||
|
- Response content-type as `text/html` with content in `json` cause content area display empty [\#869](https://github.com/liyasthomas/postwoman/issues/869)
|
||||||
|
- Proxy privacy policy link [\#865](https://github.com/liyasthomas/postwoman/issues/865)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Collections | Request UI Issue [\#1028](https://github.com/liyasthomas/postwoman/issues/1028)
|
||||||
|
- JSON not showing up in the correct format [\#1023](https://github.com/liyasthomas/postwoman/issues/1023)
|
||||||
|
- ignore duplicates in history [\#1022](https://github.com/liyasthomas/postwoman/issues/1022)
|
||||||
|
- change history menu [\#1021](https://github.com/liyasthomas/postwoman/issues/1021)
|
||||||
|
- integrate parameters with history [\#1020](https://github.com/liyasthomas/postwoman/issues/1020)
|
||||||
|
- Why some Chrome do not have the ability to install PWA? [\#1015](https://github.com/liyasthomas/postwoman/issues/1015)
|
||||||
|
- Shall we have the team management ability and some public documents? [\#1014](https://github.com/liyasthomas/postwoman/issues/1014)
|
||||||
|
- I have edit this config, but it is not available to login. [\#1013](https://github.com/liyasthomas/postwoman/issues/1013)
|
||||||
|
- User login is disabled after i run it on our local server. [\#1012](https://github.com/liyasthomas/postwoman/issues/1012)
|
||||||
|
- postwoman google login doesn't work behind ingress or reverse proxy [\#1009](https://github.com/liyasthomas/postwoman/issues/1009)
|
||||||
|
- Compile error [\#1006](https://github.com/liyasthomas/postwoman/issues/1006)
|
||||||
|
- Postman Web is now out. It might be great to find a USP for Postwoman [\#1000](https://github.com/liyasthomas/postwoman/issues/1000)
|
||||||
|
- Saving response data in env variable [\#984](https://github.com/liyasthomas/postwoman/issues/984)
|
||||||
|
- contentType 无法使用 form-date 上传文件 [\#983](https://github.com/liyasthomas/postwoman/issues/983)
|
||||||
|
- Currently completely broken [\#980](https://github.com/liyasthomas/postwoman/issues/980)
|
||||||
|
- localhost request error [\#979](https://github.com/liyasthomas/postwoman/issues/979)
|
||||||
|
- Installing postwoman locally [\#969](https://github.com/liyasthomas/postwoman/issues/969)
|
||||||
|
- Do I install NodeJS for my online environment [\#968](https://github.com/liyasthomas/postwoman/issues/968)
|
||||||
|
- Collections and Environment Module [\#967](https://github.com/liyasthomas/postwoman/issues/967)
|
||||||
|
- Textarea display problem in super hi-dpi [\#965](https://github.com/liyasthomas/postwoman/issues/965)
|
||||||
|
- TypeError: Cannot read property 'value' of undefined - when logged in [\#961](https://github.com/liyasthomas/postwoman/issues/961)
|
||||||
|
- Enable user-select on websocket and other realtime message logs [\#951](https://github.com/liyasthomas/postwoman/issues/951)
|
||||||
|
- POST requet error [\#947](https://github.com/liyasthomas/postwoman/issues/947)
|
||||||
|
- Unable to fetch schema from localhost GraphQL server. [\#940](https://github.com/liyasthomas/postwoman/issues/940)
|
||||||
|
- Support downloading binary responses [\#929](https://github.com/liyasthomas/postwoman/issues/929)
|
||||||
|
- Integrate PostWoman In our Webapp [\#918](https://github.com/liyasthomas/postwoman/issues/918)
|
||||||
|
- proxy issue [\#911](https://github.com/liyasthomas/postwoman/issues/911)
|
||||||
|
- Button to cancel requests [\#909](https://github.com/liyasthomas/postwoman/issues/909)
|
||||||
|
- How to upload a file with a post request [\#908](https://github.com/liyasthomas/postwoman/issues/908)
|
||||||
|
- Cant Import Postman Global Environment Variables [\#907](https://github.com/liyasthomas/postwoman/issues/907)
|
||||||
|
- Postwoman Docker Container behind Reverse Proxy [\#906](https://github.com/liyasthomas/postwoman/issues/906)
|
||||||
|
- `pw.response` seems not to work [\#905](https://github.com/liyasthomas/postwoman/issues/905)
|
||||||
|
- Could postman add Sign in with LDAP server? [\#901](https://github.com/liyasthomas/postwoman/issues/901)
|
||||||
|
- Collections & Environments not synced [\#900](https://github.com/liyasthomas/postwoman/issues/900)
|
||||||
|
- Add authentication to MQTT [\#898](https://github.com/liyasthomas/postwoman/issues/898)
|
||||||
|
- Labels are lost when using requests from collections [\#897](https://github.com/liyasthomas/postwoman/issues/897)
|
||||||
|
- Handle JSON Parameter list validation [\#891](https://github.com/liyasthomas/postwoman/issues/891)
|
||||||
|
- Nuxt fatal error [\#883](https://github.com/liyasthomas/postwoman/issues/883)
|
||||||
|
- Cannot connect my local websocket server [\#880](https://github.com/liyasthomas/postwoman/issues/880)
|
||||||
|
- Environments not synced after edit [\#877](https://github.com/liyasthomas/postwoman/issues/877)
|
||||||
|
- Can't find Desktop app link anywhere [\#872](https://github.com/liyasthomas/postwoman/issues/872)
|
||||||
|
- Show request completion time [\#871](https://github.com/liyasthomas/postwoman/issues/871)
|
||||||
|
- Make docs on self-hosting Postwoman [\#868](https://github.com/liyasthomas/postwoman/issues/868)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Add trailing backslash to generated cURL code for easier paste-and-execute [\#1033](https://github.com/liyasthomas/postwoman/pull/1033) ([ushuz](https://github.com/ushuz))
|
||||||
|
- Update zh-CN.json [\#1031](https://github.com/liyasthomas/postwoman/pull/1031) ([hantianwei](https://github.com/hantianwei))
|
||||||
|
- Bump firebase from 7.17.0 to 7.17.1 [\#1026](https://github.com/liyasthomas/postwoman/pull/1026) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- Update zh-CN.json [\#1024](https://github.com/liyasthomas/postwoman/pull/1024) ([hantianwei](https://github.com/hantianwei))
|
||||||
|
- Bump @nuxtjs/gtm from 2.3.0 to 2.3.2 [\#1019](https://github.com/liyasthomas/postwoman/pull/1019) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- Bump firebase from 7.16.1 to 7.17.0 [\#1018](https://github.com/liyasthomas/postwoman/pull/1018) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- Fix bugs with the renderer mixins [\#1008](https://github.com/liyasthomas/postwoman/pull/1008) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Bump eslint from 7.4.0 to 7.5.0 [\#1005](https://github.com/liyasthomas/postwoman/pull/1005) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- Add Collections section in Docs page [\#1004](https://github.com/liyasthomas/postwoman/pull/1004) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Bump lodash from 4.17.15 to 4.17.19 in /functions [\#999](https://github.com/liyasthomas/postwoman/pull/999) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- Bump @nuxtjs/google-analytics from 2.3.0 to 2.4.0 [\#998](https://github.com/liyasthomas/postwoman/pull/998) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- Bump firebase from 7.16.0 to 7.16.1 [\#997](https://github.com/liyasthomas/postwoman/pull/997) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- Fixed broken network requests in GraphQL [\#995](https://github.com/liyasthomas/postwoman/pull/995) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- fix: replaceWithJSON used wrong commit name [\#993](https://github.com/liyasthomas/postwoman/pull/993) ([perseveringman](https://github.com/perseveringman))
|
||||||
|
- ⬆️ Bump @nuxtjs/toast from 3.3.0 to 3.3.1 [\#992](https://github.com/liyasthomas/postwoman/pull/992) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump start-server-and-test from 1.11.1 to 1.11.2 [\#991](https://github.com/liyasthomas/postwoman/pull/991) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump @nuxtjs/axios from 5.11.0 to 5.12.0 [\#990](https://github.com/liyasthomas/postwoman/pull/990) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump firebase from 7.15.5 to 7.16.0 [\#989](https://github.com/liyasthomas/postwoman/pull/989) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump start-server-and-test from 1.11.0 to 1.11.1 [\#988](https://github.com/liyasthomas/postwoman/pull/988) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump sass-loader from 9.0.1 to 9.0.2 [\#986](https://github.com/liyasthomas/postwoman/pull/986) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump cypress from 4.9.0 to 4.10.0 [\#985](https://github.com/liyasthomas/postwoman/pull/985) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump ace-builds from 1.4.11 to 1.4.12 [\#982](https://github.com/liyasthomas/postwoman/pull/982) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump vuefire from 2.2.2 to 2.2.3 [\#981](https://github.com/liyasthomas/postwoman/pull/981) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump eslint from 7.3.1 to 7.4.0 [\#978](https://github.com/liyasthomas/postwoman/pull/978) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump sass-loader from 9.0.0 to 9.0.1 [\#977](https://github.com/liyasthomas/postwoman/pull/977) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump graphql from 15.2.0 to 15.3.0 [\#976](https://github.com/liyasthomas/postwoman/pull/976) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump nuxt-i18n from 6.13.0 to 6.13.1 [\#975](https://github.com/liyasthomas/postwoman/pull/975) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump sass-loader from 8.0.2 to 9.0.0 [\#973](https://github.com/liyasthomas/postwoman/pull/973) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump nuxt-i18n from 6.12.2 to 6.13.0 [\#972](https://github.com/liyasthomas/postwoman/pull/972) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump graphql from 15.1.0 to 15.2.0 [\#966](https://github.com/liyasthomas/postwoman/pull/966) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump @nuxtjs/sitemap from 2.3.2 to 2.4.0 [\#963](https://github.com/liyasthomas/postwoman/pull/963) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump firebase from 7.15.4 to 7.15.5 [\#962](https://github.com/liyasthomas/postwoman/pull/962) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump eslint from 7.3.0 to 7.3.1 [\#958](https://github.com/liyasthomas/postwoman/pull/958) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump cypress from 4.8.0 to 4.9.0 [\#957](https://github.com/liyasthomas/postwoman/pull/957) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump firebase from 7.15.3 to 7.15.4 [\#956](https://github.com/liyasthomas/postwoman/pull/956) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- Binary Responses & Response Lenses [\#955](https://github.com/liyasthomas/postwoman/pull/955) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Improving SEO [\#954](https://github.com/liyasthomas/postwoman/pull/954) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Isolate Netlify, Firebase and Helper functions + Import from absolute… [\#953](https://github.com/liyasthomas/postwoman/pull/953) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Added ability to select text in realtime log [\#952](https://github.com/liyasthomas/postwoman/pull/952) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- ⬆️ Bump firebase from 7.15.1 to 7.15.3 [\#950](https://github.com/liyasthomas/postwoman/pull/950) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump eslint from 7.2.0 to 7.3.0 [\#949](https://github.com/liyasthomas/postwoman/pull/949) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- Revert "⬆️ Bump nuxt from 2.12.2 to 2.13.0" [\#946](https://github.com/liyasthomas/postwoman/pull/946) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- ⬆️ Bump nuxt from 2.12.2 to 2.13.0 [\#942](https://github.com/liyasthomas/postwoman/pull/942) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump @nuxtjs/sitemap from 2.3.1 to 2.3.2 [\#939](https://github.com/liyasthomas/postwoman/pull/939) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump graphql from 14.6.0 to 15.1.0 [\#938](https://github.com/liyasthomas/postwoman/pull/938) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- Updated readme [\#937](https://github.com/liyasthomas/postwoman/pull/937) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- ⬆️ Bump graphql-language-service-interface from 2.3.3 to 2.4.0 [\#936](https://github.com/liyasthomas/postwoman/pull/936) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- ⬆️ Bump firebase from 7.15.0 to 7.15.1 [\#935](https://github.com/liyasthomas/postwoman/pull/935) ([dependabot[bot]](https://github.com/apps/dependabot))
|
||||||
|
- Transpiled ES5 code to ES6/ES7 [\#934](https://github.com/liyasthomas/postwoman/pull/934) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Create Dependabot config file [\#932](https://github.com/liyasthomas/postwoman/pull/932) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Hide download response button for non-JSON responses [\#931](https://github.com/liyasthomas/postwoman/pull/931) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- chore\(deps-dev\): bump cypress from 4.7.0 to 4.8.0 [\#928](https://github.com/liyasthomas/postwoman/pull/928) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- fix: environment and collection sync issue with firebase [\#926](https://github.com/liyasthomas/postwoman/pull/926) ([myussufz](https://github.com/myussufz))
|
||||||
|
- chore\(deps\): bump @nuxtjs/axios from 5.10.3 to 5.11.0 [\#925](https://github.com/liyasthomas/postwoman/pull/925) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump eslint from 7.1.0 to 7.2.0 [\#924](https://github.com/liyasthomas/postwoman/pull/924) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- GraphQL response options only visible when a response is shown [\#923](https://github.com/liyasthomas/postwoman/pull/923) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- chore\(deps\): bump firebase from 7.14.6 to 7.15.0 [\#922](https://github.com/liyasthomas/postwoman/pull/922) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/sitemap from 2.3.0 to 2.3.1 [\#921](https://github.com/liyasthomas/postwoman/pull/921) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Added ability to download GraphQL responses [\#920](https://github.com/liyasthomas/postwoman/pull/920) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.12.1 to 6.12.2 [\#919](https://github.com/liyasthomas/postwoman/pull/919) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/gtm from 2.2.3 to 2.3.0 [\#917](https://github.com/liyasthomas/postwoman/pull/917) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Cancel Request from the Keyboard [\#916](https://github.com/liyasthomas/postwoman/pull/916) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Cancellable Requests [\#915](https://github.com/liyasthomas/postwoman/pull/915) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.12.0 to 6.12.1 [\#914](https://github.com/liyasthomas/postwoman/pull/914) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump firebase from 7.14.5 to 7.14.6 [\#913](https://github.com/liyasthomas/postwoman/pull/913) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
|
||||||
|
## [v1.9.7](https://github.com/liyasthomas/postwoman/tree/v1.9.7) (2020-05-12)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/v1.9.5...v1.9.7)
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Empty header in headers list results in SyntaxError: Failed to execute 'setRequestHeader' [\#765](https://github.com/liyasthomas/postwoman/issues/765)
|
||||||
|
- Getting cannot read value of undefined [\#731](https://github.com/liyasthomas/postwoman/issues/731)
|
||||||
|
- Environment variables in collections [\#642](https://github.com/liyasthomas/postwoman/issues/642)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Import/Export collections from private github repos to share among teams. [\#867](https://github.com/liyasthomas/postwoman/issues/867)
|
||||||
|
- Unable to use postwoman with latest docker image from docker hub [\#866](https://github.com/liyasthomas/postwoman/issues/866)
|
||||||
|
- Access to nonexistent routes will not be redirect to page 404 [\#849](https://github.com/liyasthomas/postwoman/issues/849)
|
||||||
|
- Error: Network Error. Check console for details. [\#827](https://github.com/liyasthomas/postwoman/issues/827)
|
||||||
|
- 'Documentation Generated' response stacking past top of page if submit clicked enough times/fast enough [\#826](https://github.com/liyasthomas/postwoman/issues/826)
|
||||||
|
- The UI could use some improvements [\#825](https://github.com/liyasthomas/postwoman/issues/825)
|
||||||
|
- Postwoman won't build, produces 'FATAL Nuxt build error' [\#824](https://github.com/liyasthomas/postwoman/issues/824)
|
||||||
|
- Improve contrast of UI components in all themes [\#819](https://github.com/liyasthomas/postwoman/issues/819)
|
||||||
|
- Add an option to hide and/or collapse the right panel [\#818](https://github.com/liyasthomas/postwoman/issues/818)
|
||||||
|
- Docker Cannot log in normally in the container [\#817](https://github.com/liyasthomas/postwoman/issues/817)
|
||||||
|
- Body in Request [\#815](https://github.com/liyasthomas/postwoman/issues/815)
|
||||||
|
- How to run postwoman under reverse proxy [\#812](https://github.com/liyasthomas/postwoman/issues/812)
|
||||||
|
- Call local support [\#811](https://github.com/liyasthomas/postwoman/issues/811)
|
||||||
|
- feature [\#810](https://github.com/liyasthomas/postwoman/issues/810)
|
||||||
|
- support response json array [\#805](https://github.com/liyasthomas/postwoman/issues/805)
|
||||||
|
- socket binnery support [\#801](https://github.com/liyasthomas/postwoman/issues/801)
|
||||||
|
- Ability to join and leave rooms in Socket.IO connection [\#796](https://github.com/liyasthomas/postwoman/issues/796)
|
||||||
|
- How can I synchronize my data on local? [\#794](https://github.com/liyasthomas/postwoman/issues/794)
|
||||||
|
- I cant login [\#792](https://github.com/liyasthomas/postwoman/issues/792)
|
||||||
|
- Unresolved merge conflict in index.vue.orig [\#786](https://github.com/liyasthomas/postwoman/issues/786)
|
||||||
|
- You send data my request to Google [\#780](https://github.com/liyasthomas/postwoman/issues/780)
|
||||||
|
- I have question by \#750, it's closed,but my problem is still.... [\#770](https://github.com/liyasthomas/postwoman/issues/770)
|
||||||
|
- Add Format Body option [\#767](https://github.com/liyasthomas/postwoman/issues/767)
|
||||||
|
- Body scroll after modal is open [\#766](https://github.com/liyasthomas/postwoman/issues/766)
|
||||||
|
- text.match is not a function [\#764](https://github.com/liyasthomas/postwoman/issues/764)
|
||||||
|
- Request : Copy response headers [\#763](https://github.com/liyasthomas/postwoman/issues/763)
|
||||||
|
- The accordion \(expand\) labels are out of place on mobile [\#762](https://github.com/liyasthomas/postwoman/issues/762)
|
||||||
|
- why does the graphql case can't be saved? [\#761](https://github.com/liyasthomas/postwoman/issues/761)
|
||||||
|
- Mobile responsiveness issues [\#760](https://github.com/liyasthomas/postwoman/issues/760)
|
||||||
|
- Allow importing environment variables via Postman environment json files [\#759](https://github.com/liyasthomas/postwoman/issues/759)
|
||||||
|
- Report abuse: liyasthomas/postwoman \(Contact Links\) [\#754](https://github.com/liyasthomas/postwoman/issues/754)
|
||||||
|
- Report abuse: liyasthomas/postwoman \(Contact Links\) [\#753](https://github.com/liyasthomas/postwoman/issues/753)
|
||||||
|
- Request headers kept same after changing request type [\#752](https://github.com/liyasthomas/postwoman/issues/752)
|
||||||
|
- I used it to post test,but response network error [\#750](https://github.com/liyasthomas/postwoman/issues/750)
|
||||||
|
- Add compatibility for postman collections & environments [\#746](https://github.com/liyasthomas/postwoman/issues/746)
|
||||||
|
- Improve documentation on how to use environments [\#742](https://github.com/liyasthomas/postwoman/issues/742)
|
||||||
|
- Add GraphQL syntax highlighting [\#741](https://github.com/liyasthomas/postwoman/issues/741)
|
||||||
|
- Broken link to translations branch [\#737](https://github.com/liyasthomas/postwoman/issues/737)
|
||||||
|
- Add docker Images for all Tags [\#722](https://github.com/liyasthomas/postwoman/issues/722)
|
||||||
|
- Provide post-build resources and default setting files [\#714](https://github.com/liyasthomas/postwoman/issues/714)
|
||||||
|
- Theme lacks of contrast [\#709](https://github.com/liyasthomas/postwoman/issues/709)
|
||||||
|
- Postwoman raiase a connection error when communicate with localhost. [\#708](https://github.com/liyasthomas/postwoman/issues/708)
|
||||||
|
- CORS issue when hosting [\#707](https://github.com/liyasthomas/postwoman/issues/707)
|
||||||
|
- Add a description to the request or collection when saving it [\#706](https://github.com/liyasthomas/postwoman/issues/706)
|
||||||
|
- Error: Network Error. Check console for details [\#704](https://github.com/liyasthomas/postwoman/issues/704)
|
||||||
|
- Save collections on account sync turn on [\#679](https://github.com/liyasthomas/postwoman/issues/679)
|
||||||
|
- Tests should be saved together with requests [\#643](https://github.com/liyasthomas/postwoman/issues/643)
|
||||||
|
- npm modules of postwoman's vue components [\#384](https://github.com/liyasthomas/postwoman/issues/384)
|
||||||
|
- \[request\] VS code extension [\#313](https://github.com/liyasthomas/postwoman/issues/313)
|
||||||
|
- remove prerequest \<\< \>\> bindings when pre-request script is toggled off [\#234](https://github.com/liyasthomas/postwoman/issues/234)
|
||||||
|
- Dynamic Headers [\#91](https://github.com/liyasthomas/postwoman/issues/91)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- chore\(deps\): bump @nuxtjs/sitemap from 2.2.1 to 2.3.0 [\#864](https://github.com/liyasthomas/postwoman/pull/864) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- docs: add sboulema as a contributor [\#863](https://github.com/liyasthomas/postwoman/pull/863) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- Allow importing environment variables via Postman environment json files [\#862](https://github.com/liyasthomas/postwoman/pull/862) ([sboulema](https://github.com/sboulema))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.11.0 to 6.11.1 [\#861](https://github.com/liyasthomas/postwoman/pull/861) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Produce valid output when showing/copying as code [\#857](https://github.com/liyasthomas/postwoman/pull/857) ([Hydrophobefireman](https://github.com/Hydrophobefireman))
|
||||||
|
- dotenv [\#856](https://github.com/liyasthomas/postwoman/pull/856) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Save Collections/Environments on enabling sync [\#854](https://github.com/liyasthomas/postwoman/pull/854) ([sboulema](https://github.com/sboulema))
|
||||||
|
- chore\(deps\): bump firebase from 7.14.2 to 7.14.3 [\#853](https://github.com/liyasthomas/postwoman/pull/853) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Environment variables in collections [\#851](https://github.com/liyasthomas/postwoman/pull/851) ([sboulema](https://github.com/sboulema))
|
||||||
|
- Add format body option [\#847](https://github.com/liyasthomas/postwoman/pull/847) ([sboulema](https://github.com/sboulema))
|
||||||
|
- Save GraphQL Docs [\#846](https://github.com/liyasthomas/postwoman/pull/846) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- chore\(deps-dev\): bump node-sass from 4.14.0 to 4.14.1 [\#844](https://github.com/liyasthomas/postwoman/pull/844) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Remove not-deleted index.vue merge file [\#842](https://github.com/liyasthomas/postwoman/pull/842) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- URL Path Parameters \#834 [\#840](https://github.com/liyasthomas/postwoman/pull/840) ([sboulema](https://github.com/sboulema))
|
||||||
|
- chore\(deps\): remove stale dependency [\#839](https://github.com/liyasthomas/postwoman/pull/839) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- GraphQL Query Editor Syntax Highlighting [\#838](https://github.com/liyasthomas/postwoman/pull/838) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.2.1 to 10.2.2 [\#837](https://github.com/liyasthomas/postwoman/pull/837) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(store\): better code structure [\#835](https://github.com/liyasthomas/postwoman/pull/835) ([jameslahm](https://github.com/jameslahm))
|
||||||
|
- chore\(deps\): bump @nuxtjs/axios from 5.10.2 to 5.10.3 [\#832](https://github.com/liyasthomas/postwoman/pull/832) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.10.1 to 6.11.0 [\#831](https://github.com/liyasthomas/postwoman/pull/831) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.2.0 to 10.2.1 [\#830](https://github.com/liyasthomas/postwoman/pull/830) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Add ability to navigate through message history [\#828](https://github.com/liyasthomas/postwoman/pull/828) ([jinyus](https://github.com/jinyus))
|
||||||
|
- chore\(config\): delete render option [\#823](https://github.com/liyasthomas/postwoman/pull/823) ([jameslahm](https://github.com/jameslahm))
|
||||||
|
- chore\(deps-dev\): bump cypress from 4.4.1 to 4.5.0 [\#822](https://github.com/liyasthomas/postwoman/pull/822) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.1.7 to 10.2.0 [\#821](https://github.com/liyasthomas/postwoman/pull/821) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Realtime SocketIO support for json user input [\#820](https://github.com/liyasthomas/postwoman/pull/820) ([feydan](https://github.com/feydan))
|
||||||
|
- chore\(deps\): bump @nuxtjs/axios from 5.10.1 to 5.10.2 [\#816](https://github.com/liyasthomas/postwoman/pull/816) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Modify responseType by Object\(json\) or Array\(json5\) [\#813](https://github.com/liyasthomas/postwoman/pull/813) ([shtakai](https://github.com/shtakai))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.9.2 to 6.10.1 [\#809](https://github.com/liyasthomas/postwoman/pull/809) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump firebase from 7.14.1 to 7.14.2 [\#808](https://github.com/liyasthomas/postwoman/pull/808) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump node-sass from 4.13.1 to 4.14.0 [\#807](https://github.com/liyasthomas/postwoman/pull/807) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/sitemap from 2.2.0 to 2.2.1 [\#806](https://github.com/liyasthomas/postwoman/pull/806) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/axios from 5.10.0 to 5.10.1 [\#803](https://github.com/liyasthomas/postwoman/pull/803) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.9.1 to 6.9.2 [\#802](https://github.com/liyasthomas/postwoman/pull/802) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.1.6 to 10.1.7 [\#800](https://github.com/liyasthomas/postwoman/pull/800) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump prettier from 2.0.4 to 2.0.5 [\#799](https://github.com/liyasthomas/postwoman/pull/799) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/axios from 5.9.7 to 5.10.0 [\#798](https://github.com/liyasthomas/postwoman/pull/798) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump cypress from 4.4.0 to 4.4.1 [\#797](https://github.com/liyasthomas/postwoman/pull/797) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Listen to all events in socket.io connection [\#795](https://github.com/liyasthomas/postwoman/pull/795) ([konradkalemba](https://github.com/konradkalemba))
|
||||||
|
- Fix postman import with empty url [\#791](https://github.com/liyasthomas/postwoman/pull/791) ([Nikita240](https://github.com/Nikita240))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.1.5 to 10.1.6 [\#789](https://github.com/liyasthomas/postwoman/pull/789) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.1.3 to 10.1.5 [\#787](https://github.com/liyasthomas/postwoman/pull/787) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump firebase from 7.14.0 to 7.14.1 [\#782](https://github.com/liyasthomas/postwoman/pull/782) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump yargs-parser from 18.1.2 to 18.1.3 [\#781](https://github.com/liyasthomas/postwoman/pull/781) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump start-server-and-test from 1.10.11 to 1.11.0 [\#778](https://github.com/liyasthomas/postwoman/pull/778) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.8.1 to 6.9.1 [\#776](https://github.com/liyasthomas/postwoman/pull/776) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump ace-builds from 1.4.9 to 1.4.11 [\#775](https://github.com/liyasthomas/postwoman/pull/775) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump cypress from 4.3.0 to 4.4.0 [\#774](https://github.com/liyasthomas/postwoman/pull/774) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump firebase from 7.13.2 to 7.14.0 [\#758](https://github.com/liyasthomas/postwoman/pull/758) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump husky from 4.2.3 to 4.2.5 [\#757](https://github.com/liyasthomas/postwoman/pull/757) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.1.2 to 10.1.3 [\#756](https://github.com/liyasthomas/postwoman/pull/756) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Fix indicator if extension is installed [\#748](https://github.com/liyasthomas/postwoman/pull/748) ([levrik](https://github.com/levrik))
|
||||||
|
- Remove support for legacy extensions [\#747](https://github.com/liyasthomas/postwoman/pull/747) ([levrik](https://github.com/levrik))
|
||||||
|
- Fix GQL introspection query not sent through extension [\#745](https://github.com/liyasthomas/postwoman/pull/745) ([levrik](https://github.com/levrik))
|
||||||
|
- chore\(deps-dev\): bump prettier from 2.0.2 to 2.0.4 [\#744](https://github.com/liyasthomas/postwoman/pull/744) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/sitemap from 2.1.0 to 2.2.0 [\#743](https://github.com/liyasthomas/postwoman/pull/743) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.1.1 to 10.1.2 [\#740](https://github.com/liyasthomas/postwoman/pull/740) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.8.0 to 6.8.1 [\#736](https://github.com/liyasthomas/postwoman/pull/736) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump ace-builds from 1.4.8 to 1.4.9 [\#735](https://github.com/liyasthomas/postwoman/pull/735) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump firebase from 7.13.1 to 7.13.2 [\#734](https://github.com/liyasthomas/postwoman/pull/734) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump vue-virtual-scroll-list from 1.4.6 to 1.4.7 [\#733](https://github.com/liyasthomas/postwoman/pull/733) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.7.2 to 6.8.0 [\#732](https://github.com/liyasthomas/postwoman/pull/732) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt from 2.12.1 to 2.12.2 [\#729](https://github.com/liyasthomas/postwoman/pull/729) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.7.1 to 6.7.2 [\#728](https://github.com/liyasthomas/postwoman/pull/728) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.1.0 to 10.1.1 [\#727](https://github.com/liyasthomas/postwoman/pull/727) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump cypress from 4.2.0 to 4.3.0 [\#726](https://github.com/liyasthomas/postwoman/pull/726) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.0.10 to 10.1.0 [\#725](https://github.com/liyasthomas/postwoman/pull/725) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.7.0 to 6.7.1 [\#724](https://github.com/liyasthomas/postwoman/pull/724) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/axios from 5.9.6 to 5.9.7 [\#723](https://github.com/liyasthomas/postwoman/pull/723) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.0.9 to 10.0.10 [\#721](https://github.com/liyasthomas/postwoman/pull/721) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/axios from 5.9.5 to 5.9.6 [\#719](https://github.com/liyasthomas/postwoman/pull/719) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/sitemap from 2.0.1 to 2.1.0 [\#718](https://github.com/liyasthomas/postwoman/pull/718) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump firebase from 7.13.0 to 7.13.1 [\#717](https://github.com/liyasthomas/postwoman/pull/717) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump yargs-parser from 18.1.1 to 18.1.2 [\#713](https://github.com/liyasthomas/postwoman/pull/713) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.6.1 to 6.7.0 [\#712](https://github.com/liyasthomas/postwoman/pull/712) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt from 2.12.0 to 2.12.1 [\#711](https://github.com/liyasthomas/postwoman/pull/711) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump firebase from 7.12.0 to 7.13.0 [\#710](https://github.com/liyasthomas/postwoman/pull/710) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Updating the UI and style files [\#705](https://github.com/liyasthomas/postwoman/pull/705) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.0.8 to 10.0.9 [\#703](https://github.com/liyasthomas/postwoman/pull/703) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Improving performance [\#702](https://github.com/liyasthomas/postwoman/pull/702) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- :package: Updating packages [\#701](https://github.com/liyasthomas/postwoman/pull/701) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- chore\(deps-dev\): bump prettier from 2.0.1 to 2.0.2 [\#700](https://github.com/liyasthomas/postwoman/pull/700) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump prettier from 1.19.1 to 2.0.1 [\#697](https://github.com/liyasthomas/postwoman/pull/697) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
|
||||||
|
## [v1.9.5](https://github.com/liyasthomas/postwoman/tree/v1.9.5) (2020-03-22)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/v1.9.0...v1.9.5)
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Test script is not run after failing request [\#644](https://github.com/liyasthomas/postwoman/issues/644)
|
||||||
|
- \[HELP\] Auth permission denied [\#621](https://github.com/liyasthomas/postwoman/issues/621)
|
||||||
|
- Can't login on Brave Browser [\#607](https://github.com/liyasthomas/postwoman/issues/607)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- \[UI/UX\] - Change place of Send button [\#696](https://github.com/liyasthomas/postwoman/issues/696)
|
||||||
|
- Support preview of JSON:API's "application/vnd.api+json" Content-Type [\#694](https://github.com/liyasthomas/postwoman/issues/694)
|
||||||
|
- Report Portal integration [\#691](https://github.com/liyasthomas/postwoman/issues/691)
|
||||||
|
- Docs request: how to prevent secrets from leaving local storage wrt. sync. [\#686](https://github.com/liyasthomas/postwoman/issues/686)
|
||||||
|
- \[bug\] - Can't make a request to HTTP [\#676](https://github.com/liyasthomas/postwoman/issues/676)
|
||||||
|
- Looking forward to that the postwoman Compatible 'swagger ' at next version [\#675](https://github.com/liyasthomas/postwoman/issues/675)
|
||||||
|
- Error: Network Error. Check console for details. [\#673](https://github.com/liyasthomas/postwoman/issues/673)
|
||||||
|
- \[Bug\] - Can't login to Github and Google [\#661](https://github.com/liyasthomas/postwoman/issues/661)
|
||||||
|
- A question that has been raised but not resolved [\#658](https://github.com/liyasthomas/postwoman/issues/658)
|
||||||
|
- An unknown error occurred whilst the proxy was processing your request. [\#656](https://github.com/liyasthomas/postwoman/issues/656)
|
||||||
|
- Running app from downloaded zip fails to compile [\#651](https://github.com/liyasthomas/postwoman/issues/651)
|
||||||
|
- Environment variable in path won't update [\#641](https://github.com/liyasthomas/postwoman/issues/641)
|
||||||
|
- Info: The current domain is not authorized for OAuth operations Error [\#637](https://github.com/liyasthomas/postwoman/issues/637)
|
||||||
|
- A suggestion for UI [\#635](https://github.com/liyasthomas/postwoman/issues/635)
|
||||||
|
- How to use postwoman for local development and testing [\#634](https://github.com/liyasthomas/postwoman/issues/634)
|
||||||
|
- How to debug localhost \(cors\) [\#630](https://github.com/liyasthomas/postwoman/issues/630)
|
||||||
|
- Support SocketIO connections on Realtime page [\#611](https://github.com/liyasthomas/postwoman/issues/611)
|
||||||
|
- Requests to local API returning error response [\#608](https://github.com/liyasthomas/postwoman/issues/608)
|
||||||
|
- Why does the URL input field display only one line [\#604](https://github.com/liyasthomas/postwoman/issues/604)
|
||||||
|
- Parameter list not showing JSON object fields \(force raw?\) [\#597](https://github.com/liyasthomas/postwoman/issues/597)
|
||||||
|
- Add setting to disable scroll animations [\#592](https://github.com/liyasthomas/postwoman/issues/592)
|
||||||
|
- Bigger URL and/or Path input field [\#581](https://github.com/liyasthomas/postwoman/issues/581)
|
||||||
|
- Ability to connect to a MQTT broker [\#342](https://github.com/liyasthomas/postwoman/issues/342)
|
||||||
|
- \[request\] Offline cross-platform native build [\#267](https://github.com/liyasthomas/postwoman/issues/267)
|
||||||
|
- On Save Update existing API [\#204](https://github.com/liyasthomas/postwoman/issues/204)
|
||||||
|
- Import and export environments from JSON [\#190](https://github.com/liyasthomas/postwoman/issues/190)
|
||||||
|
- Fast URL entry [\#62](https://github.com/liyasthomas/postwoman/issues/62)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Add application/vnd.api+json [\#695](https://github.com/liyasthomas/postwoman/pull/695) ([allthesignals](https://github.com/allthesignals))
|
||||||
|
- Fix raw input \(JSON\) [\#693](https://github.com/liyasthomas/postwoman/pull/693) ([leomp12](https://github.com/leomp12))
|
||||||
|
- chore\(deps\): bump firebase from 7.11.0 to 7.12.0 [\#689](https://github.com/liyasthomas/postwoman/pull/689) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump vuefire from 2.2.1 to 2.2.2 [\#688](https://github.com/liyasthomas/postwoman/pull/688) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump cypress from 4.1.0 to 4.2.0 [\#685](https://github.com/liyasthomas/postwoman/pull/685) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump start-server-and-test from 1.10.10 to 1.10.11 [\#684](https://github.com/liyasthomas/postwoman/pull/684) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.6.0 to 6.6.1 [\#683](https://github.com/liyasthomas/postwoman/pull/683) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt from 2.11.0 to 2.12.0 [\#682](https://github.com/liyasthomas/postwoman/pull/682) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Fix setting default raw params [\#681](https://github.com/liyasthomas/postwoman/pull/681) ([leomp12](https://github.com/leomp12))
|
||||||
|
- Fix handling content type and raw input [\#678](https://github.com/liyasthomas/postwoman/pull/678) ([leomp12](https://github.com/leomp12))
|
||||||
|
- \[Snyk\] Security upgrade yargs-parser from 18.1.0 to 18.1.1 [\#674](https://github.com/liyasthomas/postwoman/pull/674) ([snyk-bot](https://github.com/snyk-bot))
|
||||||
|
- chore\(deps-dev\): bump start-server-and-test from 1.10.9 to 1.10.10 [\#672](https://github.com/liyasthomas/postwoman/pull/672) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump firebase from 7.10.0 to 7.11.0 [\#671](https://github.com/liyasthomas/postwoman/pull/671) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ✅ Updating tests [\#669](https://github.com/liyasthomas/postwoman/pull/669) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Updating tests [\#668](https://github.com/liyasthomas/postwoman/pull/668) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- APIs [\#667](https://github.com/liyasthomas/postwoman/pull/667) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Insecure Websocket connection issue while connecting to MQTT broker. [\#666](https://github.com/liyasthomas/postwoman/pull/666) ([rahulnpadalkar](https://github.com/rahulnpadalkar))
|
||||||
|
- Improving performance [\#664](https://github.com/liyasthomas/postwoman/pull/664) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Feature/mqtt [\#663](https://github.com/liyasthomas/postwoman/pull/663) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Added Support for MQTT [\#662](https://github.com/liyasthomas/postwoman/pull/662) ([rahulnpadalkar](https://github.com/rahulnpadalkar))
|
||||||
|
- chore\(deps\): bump yargs-parser from 18.0.0 to 18.1.0 [\#660](https://github.com/liyasthomas/postwoman/pull/660) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump start-server-and-test from 1.10.8 to 1.10.9 [\#659](https://github.com/liyasthomas/postwoman/pull/659) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Added icon slot to tabs [\#657](https://github.com/liyasthomas/postwoman/pull/657) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Refactor/ui [\#655](https://github.com/liyasthomas/postwoman/pull/655) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- even [\#654](https://github.com/liyasthomas/postwoman/pull/654) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- chore\(deps\): bump yargs-parser from 17.0.0 to 18.0.0 [\#653](https://github.com/liyasthomas/postwoman/pull/653) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump firebase from 7.9.3 to 7.10.0 [\#652](https://github.com/liyasthomas/postwoman/pull/652) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Added the ability to prettify GraphQL queries [\#650](https://github.com/liyasthomas/postwoman/pull/650) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Add http/https support to socketio url valid [\#648](https://github.com/liyasthomas/postwoman/pull/648) ([moonrailgun](https://github.com/moonrailgun))
|
||||||
|
- Refactor/ui [\#647](https://github.com/liyasthomas/postwoman/pull/647) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Even [\#646](https://github.com/liyasthomas/postwoman/pull/646) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Run tests even after failed request [\#645](https://github.com/liyasthomas/postwoman/pull/645) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Feature: add socket io support [\#640](https://github.com/liyasthomas/postwoman/pull/640) ([moonrailgun](https://github.com/moonrailgun))
|
||||||
|
- Removed linting for the collection docs import editor [\#639](https://github.com/liyasthomas/postwoman/pull/639) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Moving or renaming files [\#638](https://github.com/liyasthomas/postwoman/pull/638) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Refactor/ui [\#636](https://github.com/liyasthomas/postwoman/pull/636) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Updated messages for when GraphQL Get Schema fails [\#633](https://github.com/liyasthomas/postwoman/pull/633) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Minor GraphQL page improvements [\#631](https://github.com/liyasthomas/postwoman/pull/631) ([dmitryyankowski](https://github.com/dmitryyankowski))
|
||||||
|
- Ignore empty GQL Variable Strings [\#629](https://github.com/liyasthomas/postwoman/pull/629) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- chore\(deps-dev\): bump cypress from 4.0.2 to 4.1.0 [\#628](https://github.com/liyasthomas/postwoman/pull/628) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.5.0 to 6.6.0 [\#627](https://github.com/liyasthomas/postwoman/pull/627) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump firebase from 7.9.1 to 7.9.3 [\#626](https://github.com/liyasthomas/postwoman/pull/626) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/google-tag-manager from 2.3.1 to 2.3.2 [\#625](https://github.com/liyasthomas/postwoman/pull/625) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- test: purge travis [\#623](https://github.com/liyasthomas/postwoman/pull/623) ([yubathom](https://github.com/yubathom))
|
||||||
|
- Added shortcut to quickly run the GraphQL query [\#620](https://github.com/liyasthomas/postwoman/pull/620) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- docs: add dmitryyankowski as a contributor [\#619](https://github.com/liyasthomas/postwoman/pull/619) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- Link multiple auth providers [\#618](https://github.com/liyasthomas/postwoman/pull/618) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Add --staged parameter to pretty-quick pre-commit [\#617](https://github.com/liyasthomas/postwoman/pull/617) ([dmitryyankowski](https://github.com/dmitryyankowski))
|
||||||
|
- :bug: FIxed URI not updating on Clear content, minor formData improve… [\#612](https://github.com/liyasthomas/postwoman/pull/612) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Update proxy information. [\#610](https://github.com/liyasthomas/postwoman/pull/610) ([NBTX](https://github.com/NBTX))
|
||||||
|
- Fixed install extension toast appearing even when extension is installed [\#609](https://github.com/liyasthomas/postwoman/pull/609) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- chore\(deps-dev\): bump lint-staged from 10.0.7 to 10.0.8 [\#606](https://github.com/liyasthomas/postwoman/pull/606) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- JSON linting in the code editor [\#605](https://github.com/liyasthomas/postwoman/pull/605) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Added regex to handle url parts [\#603](https://github.com/liyasthomas/postwoman/pull/603) ([JacobAnavisca](https://github.com/JacobAnavisca))
|
||||||
|
- GraphQL page improvements, and more [\#602](https://github.com/liyasthomas/postwoman/pull/602) ([dmitryyankowski](https://github.com/dmitryyankowski))
|
||||||
|
- I18n [\#601](https://github.com/liyasthomas/postwoman/pull/601) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- feat\(i18n\): add Korean [\#600](https://github.com/liyasthomas/postwoman/pull/600) ([9j](https://github.com/9j))
|
||||||
|
- Improve page load/unload experience \(remove FOUCs\) [\#599](https://github.com/liyasthomas/postwoman/pull/599) ([NBTX](https://github.com/NBTX))
|
||||||
|
- Feature: Add prettier/pretty-quick formatting w/ Husky pre-commit [\#596](https://github.com/liyasthomas/postwoman/pull/596) ([dmitryyankowski](https://github.com/dmitryyankowski))
|
||||||
|
|
||||||
|
## [v1.9.0](https://github.com/liyasthomas/postwoman/tree/v1.9.0) (2020-02-24)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/v1.8.0...v1.9.0)
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Auto Theme Selection is kinda difficult to see [\#563](https://github.com/liyasthomas/postwoman/issues/563)
|
||||||
|
- Can't send request to localhost via Chrome extention [\#560](https://github.com/liyasthomas/postwoman/issues/560)
|
||||||
|
- Validation for duplicate collection ignores letter case [\#547](https://github.com/liyasthomas/postwoman/issues/547)
|
||||||
|
- Build failed [\#327](https://github.com/liyasthomas/postwoman/issues/327)
|
||||||
|
- Fixed typo in translation file for Auto theme [\#556](https://github.com/liyasthomas/postwoman/pull/556) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- don't run [\#577](https://github.com/liyasthomas/postwoman/issues/577)
|
||||||
|
- Get correct response data but occurs with error "Cannot read property 'value' of undefined" [\#575](https://github.com/liyasthomas/postwoman/issues/575)
|
||||||
|
- firebase_app\_\_WEBPACK_IMPORTED_MODULE_2\_\_\_default.a.firestore is not a function [\#558](https://github.com/liyasthomas/postwoman/issues/558)
|
||||||
|
- Disable SSL cert for websockets [\#557](https://github.com/liyasthomas/postwoman/issues/557)
|
||||||
|
- relative module not found during start [\#552](https://github.com/liyasthomas/postwoman/issues/552)
|
||||||
|
- Feature Request: Subfolders [\#540](https://github.com/liyasthomas/postwoman/issues/540)
|
||||||
|
- Feature request: Keyboard shortcuts for folder creation [\#539](https://github.com/liyasthomas/postwoman/issues/539)
|
||||||
|
- Add max-height and overflow: auto to "parameter list" textarea [\#532](https://github.com/liyasthomas/postwoman/issues/532)
|
||||||
|
- Friendly minded GraphQL [\#468](https://github.com/liyasthomas/postwoman/issues/468)
|
||||||
|
- multipart/form-data support [\#434](https://github.com/liyasthomas/postwoman/issues/434)
|
||||||
|
- IE Support [\#386](https://github.com/liyasthomas/postwoman/issues/386)
|
||||||
|
- ⏬ Import a Postman's Collection [\#333](https://github.com/liyasthomas/postwoman/issues/333)
|
||||||
|
- Implement pre-request and post-request scripts \(and request chaining\) [\#218](https://github.com/liyasthomas/postwoman/issues/218)
|
||||||
|
- Environment management and configuration [\#147](https://github.com/liyasthomas/postwoman/issues/147)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- POST request body editor reacts to the content type [\#594](https://github.com/liyasthomas/postwoman/pull/594) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Fix variablesJSONString store default for GraphQL page [\#593](https://github.com/liyasthomas/postwoman/pull/593) ([dmitryyankowski](https://github.com/dmitryyankowski))
|
||||||
|
- Environment Mangement [\#591](https://github.com/liyasthomas/postwoman/pull/591) ([JacobAnavisca](https://github.com/JacobAnavisca))
|
||||||
|
- GraphQL Query Autocompletion [\#590](https://github.com/liyasthomas/postwoman/pull/590) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Refactor/lint [\#589](https://github.com/liyasthomas/postwoman/pull/589) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Even [\#588](https://github.com/liyasthomas/postwoman/pull/588) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- chore\(deps\): bump firebase from 7.9.0 to 7.9.1 [\#587](https://github.com/liyasthomas/postwoman/pull/587) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Even [\#586](https://github.com/liyasthomas/postwoman/pull/586) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- chore\(deps\): bump firebase from 7.8.2 to 7.9.0 [\#585](https://github.com/liyasthomas/postwoman/pull/585) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump vue-virtual-scroll-list from 1.4.5 to 1.4.6 [\#584](https://github.com/liyasthomas/postwoman/pull/584) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Adapt extension check to new extensions [\#583](https://github.com/liyasthomas/postwoman/pull/583) ([levrik](https://github.com/levrik))
|
||||||
|
- Update link to extension repo in README [\#582](https://github.com/liyasthomas/postwoman/pull/582) ([levrik](https://github.com/levrik))
|
||||||
|
- Even [\#579](https://github.com/liyasthomas/postwoman/pull/579) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Refactor/lint [\#578](https://github.com/liyasthomas/postwoman/pull/578) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- chore\(deps\): bump vue-virtual-scroll-list from 1.4.4 to 1.4.5 [\#576](https://github.com/liyasthomas/postwoman/pull/576) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Postman collection parsing [\#574](https://github.com/liyasthomas/postwoman/pull/574) ([JacobAnavisca](https://github.com/JacobAnavisca))
|
||||||
|
- Unify Chrome and Firefox extensions [\#573](https://github.com/liyasthomas/postwoman/pull/573) ([levrik](https://github.com/levrik))
|
||||||
|
- fix: drop the toast which doesn't show up [\#572](https://github.com/liyasthomas/postwoman/pull/572) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- :sparkles: Native share + updated meta description [\#571](https://github.com/liyasthomas/postwoman/pull/571) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- chore\(deps\): bump firebase from 7.8.1 to 7.8.2 [\#570](https://github.com/liyasthomas/postwoman/pull/570) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump cypress from 4.0.1 to 4.0.2 [\#569](https://github.com/liyasthomas/postwoman/pull/569) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Added create collection and save request syncs [\#568](https://github.com/liyasthomas/postwoman/pull/568) ([JacobAnavisca](https://github.com/JacobAnavisca))
|
||||||
|
- Moved common headers to a separate file [\#566](https://github.com/liyasthomas/postwoman/pull/566) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- chore\(deps-dev\): bump cypress from 4.0.0 to 4.0.1 [\#565](https://github.com/liyasthomas/postwoman/pull/565) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump yargs-parser from 16.1.0 to 17.0.0 [\#564](https://github.com/liyasthomas/postwoman/pull/564) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump cypress from 3.8.3 to 4.0.0 [\#562](https://github.com/liyasthomas/postwoman/pull/562) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump firebase from 7.8.0 to 7.8.1 [\#561](https://github.com/liyasthomas/postwoman/pull/561) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore: use typeof as an operator and make use of localizable strings [\#559](https://github.com/liyasthomas/postwoman/pull/559) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- Support for Formdata [\#555](https://github.com/liyasthomas/postwoman/pull/555) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- chore\(deps\): bump @nuxtjs/pwa from 3.0.0-beta.19 to 3.0.0-beta.20 [\#554](https://github.com/liyasthomas/postwoman/pull/554) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/axios from 5.9.4 to 5.9.5 [\#553](https://github.com/liyasthomas/postwoman/pull/553) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Added toggle to decide whether extensions should be used [\#551](https://github.com/liyasthomas/postwoman/pull/551) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Show Ctrl instead of Command for shortcuts non-Apple platforms [\#549](https://github.com/liyasthomas/postwoman/pull/549) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- fix\(chore\): Take letter casing into account while checking for duplicate collection [\#548](https://github.com/liyasthomas/postwoman/pull/548) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- update e2e tests [\#546](https://github.com/liyasthomas/postwoman/pull/546) ([yubathom](https://github.com/yubathom))
|
||||||
|
- chore\(deps\): bump @nuxtjs/axios from 5.9.3 to 5.9.4 [\#545](https://github.com/liyasthomas/postwoman/pull/545) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Refactor [\#543](https://github.com/liyasthomas/postwoman/pull/543) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- chore\(deps\): bump firebase from 7.7.0 to 7.8.0 [\#542](https://github.com/liyasthomas/postwoman/pull/542) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump graphql from 14.5.8 to 14.6.0 [\#541](https://github.com/liyasthomas/postwoman/pull/541) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- i18n [\#538](https://github.com/liyasthomas/postwoman/pull/538) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Modification of French translations [\#537](https://github.com/liyasthomas/postwoman/pull/537) ([thomasbnt](https://github.com/thomasbnt))
|
||||||
|
- Even [\#535](https://github.com/liyasthomas/postwoman/pull/535) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Updated GraphQL Query Variable Editor [\#534](https://github.com/liyasthomas/postwoman/pull/534) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Updating spanish translation [\#529](https://github.com/liyasthomas/postwoman/pull/529) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- even merge [\#528](https://github.com/liyasthomas/postwoman/pull/528) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
|
||||||
|
## [v1.8.0](https://github.com/liyasthomas/postwoman/tree/v1.8.0) (2020-01-28)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/v1.5.0...v1.8.0)
|
||||||
|
|
||||||
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Warn the user if name field was left blank while creating a new collection [\#515](https://github.com/liyasthomas/postwoman/issues/515)
|
||||||
|
- Multiple collections with the same name shouldn't exist [\#509](https://github.com/liyasthomas/postwoman/issues/509)
|
||||||
|
- GraphQL String variables are null [\#497](https://github.com/liyasthomas/postwoman/issues/497)
|
||||||
|
- Post request body is empty [\#473](https://github.com/liyasthomas/postwoman/issues/473)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Allow importing Postman collections [\#524](https://github.com/liyasthomas/postwoman/issues/524)
|
||||||
|
- Request descriptions [\#511](https://github.com/liyasthomas/postwoman/issues/511)
|
||||||
|
- Sync collection with a cloud storage \(e.g: Google drive\) [\#507](https://github.com/liyasthomas/postwoman/issues/507)
|
||||||
|
- Ability to run all requests of a folder/collection [\#498](https://github.com/liyasthomas/postwoman/issues/498)
|
||||||
|
- Change import/export collection on requests page icon [\#495](https://github.com/liyasthomas/postwoman/issues/495)
|
||||||
|
- Application contains many hard-coded strings that aren't translatable [\#488](https://github.com/liyasthomas/postwoman/issues/488)
|
||||||
|
- import cURL error [\#477](https://github.com/liyasthomas/postwoman/issues/477)
|
||||||
|
- move to postwoman org [\#475](https://github.com/liyasthomas/postwoman/issues/475)
|
||||||
|
- Create standalone vue components of the request builder. [\#474](https://github.com/liyasthomas/postwoman/issues/474)
|
||||||
|
- ULR parsing and var auto creation [\#469](https://github.com/liyasthomas/postwoman/issues/469)
|
||||||
|
- What about additional loaders: + Pug, TypeScript, SASS, material-vue ? [\#467](https://github.com/liyasthomas/postwoman/issues/467)
|
||||||
|
- \[suggestion\] - Tests tab [\#465](https://github.com/liyasthomas/postwoman/issues/465)
|
||||||
|
- cookie not found support [\#443](https://github.com/liyasthomas/postwoman/issues/443)
|
||||||
|
- Feature Request: Consumer Driven Contract Testing [\#420](https://github.com/liyasthomas/postwoman/issues/420)
|
||||||
|
- Feature Request: Support OAuth2/OIDC [\#337](https://github.com/liyasthomas/postwoman/issues/337)
|
||||||
|
- Enable running proxy as a backend for Request Capture [\#325](https://github.com/liyasthomas/postwoman/issues/325)
|
||||||
|
- Label doesn't change when switching between collection requests [\#291](https://github.com/liyasthomas/postwoman/issues/291)
|
||||||
|
- Add DB cache [\#26](https://github.com/liyasthomas/postwoman/issues/26)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- Enhancements [\#531](https://github.com/liyasthomas/postwoman/pull/531) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- Merge pull request \#530 from liyasthomas/feature/post-request-tests [\#530](https://github.com/liyasthomas/postwoman/pull/530) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Refactor [\#523](https://github.com/liyasthomas/postwoman/pull/523) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- chore\(deps\): bump nuxt-i18n from 6.4.1 to 6.5.0 [\#522](https://github.com/liyasthomas/postwoman/pull/522) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump v-tooltip from 2.0.2 to 2.0.3 [\#521](https://github.com/liyasthomas/postwoman/pull/521) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump cypress from 3.8.2 to 3.8.3 [\#520](https://github.com/liyasthomas/postwoman/pull/520) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Feature/post request tests [\#518](https://github.com/liyasthomas/postwoman/pull/518) ([nickpalenchar](https://github.com/nickpalenchar))
|
||||||
|
- Validations for edit and create collections activity [\#516](https://github.com/liyasthomas/postwoman/pull/516) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- Auth [\#513](https://github.com/liyasthomas/postwoman/pull/513) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Support for Google Chrome Extension [\#512](https://github.com/liyasthomas/postwoman/pull/512) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Validate duplicate collections [\#510](https://github.com/liyasthomas/postwoman/pull/510) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- GraphQL query validation based on schema [\#508](https://github.com/liyasthomas/postwoman/pull/508) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Lint and refactor [\#506](https://github.com/liyasthomas/postwoman/pull/506) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Syntax Error marking in GraphQL query editor [\#505](https://github.com/liyasthomas/postwoman/pull/505) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Merge pull request \#504 from liyasthomas/dependabot/npm_and_yarn/node-sass-4.13.1 [\#504](https://github.com/liyasthomas/postwoman/pull/504) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump @nuxtjs/axios from 5.9.2 to 5.9.3 [\#503](https://github.com/liyasthomas/postwoman/pull/503) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps-dev\): bump sass-loader from 8.0.1 to 8.0.2 [\#502](https://github.com/liyasthomas/postwoman/pull/502) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- chore\(deps\): bump ace-builds from 1.4.7 to 1.4.8 [\#501](https://github.com/liyasthomas/postwoman/pull/501) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Refactoring proxy handling to be done in strategies [\#500](https://github.com/liyasthomas/postwoman/pull/500) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- 💚 Fixed \#497 [\#499](https://github.com/liyasthomas/postwoman/pull/499) ([pushrbx](https://github.com/pushrbx))
|
||||||
|
- Feat/firefox strategy [\#496](https://github.com/liyasthomas/postwoman/pull/496) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Firefox Extension compatibility [\#494](https://github.com/liyasthomas/postwoman/pull/494) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- i18n Japanese: Added new translations [\#492](https://github.com/liyasthomas/postwoman/pull/492) ([reefqi037](https://github.com/reefqi037))
|
||||||
|
- Merge pull request \#491 from liyasthomas/i18n [\#491](https://github.com/liyasthomas/postwoman/pull/491) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Replaced hard-coded strings with localizable strings [\#490](https://github.com/liyasthomas/postwoman/pull/490) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Network Strategies [\#487](https://github.com/liyasthomas/postwoman/pull/487) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- chore\(oauth\): Added method signatures as per JSDoc conventions [\#486](https://github.com/liyasthomas/postwoman/pull/486) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- chore: Minor tweaks [\#485](https://github.com/liyasthomas/postwoman/pull/485) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- ⬆️ Bump cypress from 3.8.1 to 3.8.2 [\#483](https://github.com/liyasthomas/postwoman/pull/483) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump sass-loader from 8.0.0 to 8.0.1 [\#482](https://github.com/liyasthomas/postwoman/pull/482) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump @nuxtjs/google-analytics from 2.2.2 to 2.2.3 [\#481](https://github.com/liyasthomas/postwoman/pull/481) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- GraphQL Type Highlight and Links [\#479](https://github.com/liyasthomas/postwoman/pull/479) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- OAuth 2.0/OIDC Access Token Retrieval Support [\#476](https://github.com/liyasthomas/postwoman/pull/476) ([reefqi037](https://github.com/reefqi037))
|
||||||
|
|
||||||
## [v1.5.0](https://github.com/liyasthomas/postwoman/tree/v1.5.0) (2020-01-04)
|
## [v1.5.0](https://github.com/liyasthomas/postwoman/tree/v1.5.0) (2020-01-04)
|
||||||
|
|
||||||
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/v1.0.0...v1.5.0)
|
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/v1.0.0...v1.5.0)
|
||||||
|
|
||||||
**Implemented enhancements:**
|
|
||||||
|
|
||||||
- Can WSDL be implemented, similar to SoapUI? [\#461](https://github.com/liyasthomas/postwoman/issues/461)
|
|
||||||
- Raw Request Body should be supported to format the JSON string [\#446](https://github.com/liyasthomas/postwoman/issues/446)
|
|
||||||
- Ability to send Binary data using Postwoman [\#415](https://github.com/liyasthomas/postwoman/issues/415)
|
|
||||||
- Custom request method [\#398](https://github.com/liyasthomas/postwoman/issues/398)
|
|
||||||
- \[request\]: CLI possibilities [\#363](https://github.com/liyasthomas/postwoman/issues/363)
|
|
||||||
- Feature request: OAuth header support/integration [\#358](https://github.com/liyasthomas/postwoman/issues/358)
|
|
||||||
- i18n support [\#348](https://github.com/liyasthomas/postwoman/issues/348)
|
|
||||||
- Separate layers in dockerfile to improve image build [\#339](https://github.com/liyasthomas/postwoman/issues/339)
|
|
||||||
- Internal server environment usage requirements [\#336](https://github.com/liyasthomas/postwoman/issues/336)
|
|
||||||
- Server Sent Events [\#329](https://github.com/liyasthomas/postwoman/issues/329)
|
|
||||||
- Generate API documentation [\#326](https://github.com/liyasthomas/postwoman/issues/326)
|
|
||||||
- Auth info on WebSocket connections [\#321](https://github.com/liyasthomas/postwoman/issues/321)
|
|
||||||
- Set response panel to fullscreen [\#320](https://github.com/liyasthomas/postwoman/issues/320)
|
|
||||||
- Graphql support [\#312](https://github.com/liyasthomas/postwoman/issues/312)
|
|
||||||
- Keyboard shortcuts [\#302](https://github.com/liyasthomas/postwoman/issues/302)
|
|
||||||
- File/binary request body support [\#298](https://github.com/liyasthomas/postwoman/issues/298)
|
|
||||||
- It's possible to tab into read only and non-form elements [\#287](https://github.com/liyasthomas/postwoman/issues/287)
|
|
||||||
- Change cursor to disabled on disabled inputs [\#286](https://github.com/liyasthomas/postwoman/issues/286)
|
|
||||||
- Hover Styling on Inputs [\#285](https://github.com/liyasthomas/postwoman/issues/285)
|
|
||||||
- Focus Styles on Buttons [\#284](https://github.com/liyasthomas/postwoman/issues/284)
|
|
||||||
- Missing Focus on Inputs [\#279](https://github.com/liyasthomas/postwoman/issues/279)
|
|
||||||
- Download the request result into a file. [\#278](https://github.com/liyasthomas/postwoman/issues/278)
|
|
||||||
- Improve UI Contrast [\#277](https://github.com/liyasthomas/postwoman/issues/277)
|
|
||||||
- Extend syntax highlighting with ACE for pre-request script textarea [\#235](https://github.com/liyasthomas/postwoman/issues/235)
|
|
||||||
- Store pre-request scripts in history [\#233](https://github.com/liyasthomas/postwoman/issues/233)
|
|
||||||
- Store the time spent on fetching a response [\#225](https://github.com/liyasthomas/postwoman/issues/225)
|
|
||||||
- Cache view [\#188](https://github.com/liyasthomas/postwoman/issues/188)
|
|
||||||
- chore: stick to Vue.js best practices [\#432](https://github.com/liyasthomas/postwoman/pull/432) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
|
||||||
- Header key autocompletion [\#421](https://github.com/liyasthomas/postwoman/pull/421) ([AndrewBastin](https://github.com/AndrewBastin))
|
|
||||||
- Custom methods support [\#400](https://github.com/liyasthomas/postwoman/pull/400) ([liyasthomas](https://github.com/liyasthomas))
|
|
||||||
- Two Way Data Binding \(v-model\) to Ace Editor component [\#379](https://github.com/liyasthomas/postwoman/pull/379) ([AndrewBastin](https://github.com/AndrewBastin))
|
|
||||||
- Basic i18n support [\#351](https://github.com/liyasthomas/postwoman/pull/351) ([liyasthomas](https://github.com/liyasthomas))
|
|
||||||
- Undo header/param/body param deletion [\#350](https://github.com/liyasthomas/postwoman/pull/350) ([AndrewBastin](https://github.com/AndrewBastin))
|
|
||||||
- Added ability to run GraphQL queries [\#346](https://github.com/liyasthomas/postwoman/pull/346) ([AndrewBastin](https://github.com/AndrewBastin))
|
|
||||||
- refactor: minor improvements [\#343](https://github.com/liyasthomas/postwoman/pull/343) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
|
||||||
|
|
||||||
**Fixed bugs:**
|
**Fixed bugs:**
|
||||||
|
|
||||||
- WebSocket page freezes when pasting long URL [\#471](https://github.com/liyasthomas/postwoman/issues/471)
|
- WebSocket page freezes when pasting long URL [\#471](https://github.com/liyasthomas/postwoman/issues/471)
|
||||||
@@ -61,40 +558,67 @@
|
|||||||
|
|
||||||
**Closed issues:**
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Can WSDL be implemented, similar to SoapUI? [\#461](https://github.com/liyasthomas/postwoman/issues/461)
|
||||||
- Module not found: Error: Can't resolve '../.postwoman/version.json' [\#457](https://github.com/liyasthomas/postwoman/issues/457)
|
- Module not found: Error: Can't resolve '../.postwoman/version.json' [\#457](https://github.com/liyasthomas/postwoman/issues/457)
|
||||||
- \* ../.postwoman/version.json in ./node\_modules/babel-loader/lib??ref--2-0!./node\_modules/vue-loader/lib??vue-loader-options!./layouts/default.vue?vue&type=script&lang=js& friendly-errors 11:12:37 [\#448](https://github.com/liyasthomas/postwoman/issues/448)
|
- \* ../.postwoman/version.json in ./node_modules/babel-loader/lib??ref--2-0!./node_modules/vue-loader/lib??vue-loader-options!./layouts/default.vue?vue&type=script&lang=js& friendly-errors 11:12:37 [\#448](https://github.com/liyasthomas/postwoman/issues/448)
|
||||||
|
- Raw Request Body should be supported to format the JSON string [\#446](https://github.com/liyasthomas/postwoman/issues/446)
|
||||||
- npm run dev module was not found: ../.postwoman/version.json [\#442](https://github.com/liyasthomas/postwoman/issues/442)
|
- npm run dev module was not found: ../.postwoman/version.json [\#442](https://github.com/liyasthomas/postwoman/issues/442)
|
||||||
- graphql and websocket work, but http and https do not [\#441](https://github.com/liyasthomas/postwoman/issues/441)
|
- graphql and websocket work, but http and https do not [\#441](https://github.com/liyasthomas/postwoman/issues/441)
|
||||||
- Can I test localhost? [\#433](https://github.com/liyasthomas/postwoman/issues/433)
|
- Can I test localhost? [\#433](https://github.com/liyasthomas/postwoman/issues/433)
|
||||||
- No 'Access-Control-Allow-Origin' [\#426](https://github.com/liyasthomas/postwoman/issues/426)
|
- No 'Access-Control-Allow-Origin' [\#426](https://github.com/liyasthomas/postwoman/issues/426)
|
||||||
- When uninstall the PWA the "install PWA" link in postwoman.io isn't appear anymore [\#419](https://github.com/liyasthomas/postwoman/issues/419)
|
- When uninstall the PWA the "install PWA" link in postwoman.io isn't appear anymore [\#419](https://github.com/liyasthomas/postwoman/issues/419)
|
||||||
- Toggling options will reset the UI to English [\#417](https://github.com/liyasthomas/postwoman/issues/417)
|
- Toggling options will reset the UI to English [\#417](https://github.com/liyasthomas/postwoman/issues/417)
|
||||||
|
- Ability to send Binary data using Postwoman [\#415](https://github.com/liyasthomas/postwoman/issues/415)
|
||||||
- Oh my dear god why don't we just wrap it in electron [\#413](https://github.com/liyasthomas/postwoman/issues/413)
|
- Oh my dear god why don't we just wrap it in electron [\#413](https://github.com/liyasthomas/postwoman/issues/413)
|
||||||
- UI improvement suggestion for request method drop down [\#409](https://github.com/liyasthomas/postwoman/issues/409)
|
- UI improvement suggestion for request method drop down [\#409](https://github.com/liyasthomas/postwoman/issues/409)
|
||||||
- Can I share a request with my team? [\#408](https://github.com/liyasthomas/postwoman/issues/408)
|
- Can I share a request with my team? [\#408](https://github.com/liyasthomas/postwoman/issues/408)
|
||||||
- Does it not support the post method? [\#403](https://github.com/liyasthomas/postwoman/issues/403)
|
- Does it not support the post method? [\#403](https://github.com/liyasthomas/postwoman/issues/403)
|
||||||
- Post can't send request [\#401](https://github.com/liyasthomas/postwoman/issues/401)
|
- Post can't send request [\#401](https://github.com/liyasthomas/postwoman/issues/401)
|
||||||
- \[Bug\] fix header icons overlap [\#399](https://github.com/liyasthomas/postwoman/issues/399)
|
- \[Bug\] fix header icons overlap [\#399](https://github.com/liyasthomas/postwoman/issues/399)
|
||||||
|
- Custom request method [\#398](https://github.com/liyasthomas/postwoman/issues/398)
|
||||||
- Improve translate for pt-BR \(i18n\) [\#395](https://github.com/liyasthomas/postwoman/issues/395)
|
- Improve translate for pt-BR \(i18n\) [\#395](https://github.com/liyasthomas/postwoman/issues/395)
|
||||||
- Raw input disabled is not working properly [\#394](https://github.com/liyasthomas/postwoman/issues/394)
|
- Raw input disabled is not working properly [\#394](https://github.com/liyasthomas/postwoman/issues/394)
|
||||||
- Input area is not clearly to identify for users because the dark mode [\#393](https://github.com/liyasthomas/postwoman/issues/393)
|
- Input area is not clearly to identify for users because the dark mode [\#393](https://github.com/liyasthomas/postwoman/issues/393)
|
||||||
- \[UX\] Setting to make sidebar buttons small [\#389](https://github.com/liyasthomas/postwoman/issues/389)
|
- \[UX\] Setting to make sidebar buttons small [\#389](https://github.com/liyasthomas/postwoman/issues/389)
|
||||||
- \[UX\] Improve responsive breaking points [\#388](https://github.com/liyasthomas/postwoman/issues/388)
|
- \[UX\] Improve responsive breaking points [\#388](https://github.com/liyasthomas/postwoman/issues/388)
|
||||||
- \[UX\] Hide history/collections [\#387](https://github.com/liyasthomas/postwoman/issues/387)
|
- \[UX\] Hide history/collections [\#387](https://github.com/liyasthomas/postwoman/issues/387)
|
||||||
- Clearing shortcut overrides browser default [\#374](https://github.com/liyasthomas/postwoman/issues/374)
|
- Clearing shortcut overrides browser default [\#374](https://github.com/liyasthomas/postwoman/issues/374)
|
||||||
- Proxy server default configuration [\#373](https://github.com/liyasthomas/postwoman/issues/373)
|
- Proxy server default configuration [\#373](https://github.com/liyasthomas/postwoman/issues/373)
|
||||||
- Intent to translate [\#367](https://github.com/liyasthomas/postwoman/issues/367)
|
- Intent to translate [\#367](https://github.com/liyasthomas/postwoman/issues/367)
|
||||||
|
- \[request\]: CLI possibilities [\#363](https://github.com/liyasthomas/postwoman/issues/363)
|
||||||
|
- Feature request: OAuth header support/integration [\#358](https://github.com/liyasthomas/postwoman/issues/358)
|
||||||
- Static builds on releases [\#352](https://github.com/liyasthomas/postwoman/issues/352)
|
- Static builds on releases [\#352](https://github.com/liyasthomas/postwoman/issues/352)
|
||||||
- fix:SSE onclose handle [\#349](https://github.com/liyasthomas/postwoman/issues/349)
|
- fix:SSE onclose handle [\#349](https://github.com/liyasthomas/postwoman/issues/349)
|
||||||
- ⏬ Import a Postman's Collection [\#333](https://github.com/liyasthomas/postwoman/issues/333)
|
- i18n support [\#348](https://github.com/liyasthomas/postwoman/issues/348)
|
||||||
|
- Separate layers in dockerfile to improve image build [\#339](https://github.com/liyasthomas/postwoman/issues/339)
|
||||||
|
- Internal server environment usage requirements [\#336](https://github.com/liyasthomas/postwoman/issues/336)
|
||||||
|
- Server Sent Events [\#329](https://github.com/liyasthomas/postwoman/issues/329)
|
||||||
|
- Generate API documentation [\#326](https://github.com/liyasthomas/postwoman/issues/326)
|
||||||
- \[Request\] Use responses for next request? [\#324](https://github.com/liyasthomas/postwoman/issues/324)
|
- \[Request\] Use responses for next request? [\#324](https://github.com/liyasthomas/postwoman/issues/324)
|
||||||
|
- Auth info on WebSocket connections [\#321](https://github.com/liyasthomas/postwoman/issues/321)
|
||||||
|
- Set response panel to fullscreen [\#320](https://github.com/liyasthomas/postwoman/issues/320)
|
||||||
|
- Graphql support [\#312](https://github.com/liyasthomas/postwoman/issues/312)
|
||||||
|
- Keyboard shortcuts [\#302](https://github.com/liyasthomas/postwoman/issues/302)
|
||||||
|
- File/binary request body support [\#298](https://github.com/liyasthomas/postwoman/issues/298)
|
||||||
- Make response body area expandable [\#294](https://github.com/liyasthomas/postwoman/issues/294)
|
- Make response body area expandable [\#294](https://github.com/liyasthomas/postwoman/issues/294)
|
||||||
|
- It's possible to tab into read only and non-form elements [\#287](https://github.com/liyasthomas/postwoman/issues/287)
|
||||||
|
- Change cursor to disabled on disabled inputs [\#286](https://github.com/liyasthomas/postwoman/issues/286)
|
||||||
|
- Hover Styling on Inputs [\#285](https://github.com/liyasthomas/postwoman/issues/285)
|
||||||
|
- Focus Styles on Buttons [\#284](https://github.com/liyasthomas/postwoman/issues/284)
|
||||||
- Mobile can't see console for request errors [\#283](https://github.com/liyasthomas/postwoman/issues/283)
|
- Mobile can't see console for request errors [\#283](https://github.com/liyasthomas/postwoman/issues/283)
|
||||||
|
- Missing Focus on Inputs [\#279](https://github.com/liyasthomas/postwoman/issues/279)
|
||||||
|
- Download the request result into a file. [\#278](https://github.com/liyasthomas/postwoman/issues/278)
|
||||||
|
- Improve UI Contrast [\#277](https://github.com/liyasthomas/postwoman/issues/277)
|
||||||
- Duplicated query string in generated code [\#272](https://github.com/liyasthomas/postwoman/issues/272)
|
- Duplicated query string in generated code [\#272](https://github.com/liyasthomas/postwoman/issues/272)
|
||||||
- Query parameters are duplicated [\#271](https://github.com/liyasthomas/postwoman/issues/271)
|
- Query parameters are duplicated [\#271](https://github.com/liyasthomas/postwoman/issues/271)
|
||||||
- Generated code is incorrect [\#269](https://github.com/liyasthomas/postwoman/issues/269)
|
- Generated code is incorrect [\#269](https://github.com/liyasthomas/postwoman/issues/269)
|
||||||
|
- \[UI\] \[UX\] Allow app to take width of browser [\#236](https://github.com/liyasthomas/postwoman/issues/236)
|
||||||
|
- Extend syntax highlighting with ACE for pre-request script textarea [\#235](https://github.com/liyasthomas/postwoman/issues/235)
|
||||||
|
- Store pre-request scripts in history [\#233](https://github.com/liyasthomas/postwoman/issues/233)
|
||||||
- Lacking documentation and wiki [\#232](https://github.com/liyasthomas/postwoman/issues/232)
|
- Lacking documentation and wiki [\#232](https://github.com/liyasthomas/postwoman/issues/232)
|
||||||
|
- Store the time spent on fetching a response [\#225](https://github.com/liyasthomas/postwoman/issues/225)
|
||||||
- I can't send POST method [\#210](https://github.com/liyasthomas/postwoman/issues/210)
|
- I can't send POST method [\#210](https://github.com/liyasthomas/postwoman/issues/210)
|
||||||
|
- Cache view [\#188](https://github.com/liyasthomas/postwoman/issues/188)
|
||||||
- Handling request failures when build number is obtained from GitHub [\#122](https://github.com/liyasthomas/postwoman/issues/122)
|
- Handling request failures when build number is obtained from GitHub [\#122](https://github.com/liyasthomas/postwoman/issues/122)
|
||||||
|
|
||||||
**Merged pull requests:**
|
**Merged pull requests:**
|
||||||
@@ -111,6 +635,7 @@
|
|||||||
- Various UI tweaks [\#439](https://github.com/liyasthomas/postwoman/pull/439) ([liyasthomas](https://github.com/liyasthomas))
|
- Various UI tweaks [\#439](https://github.com/liyasthomas/postwoman/pull/439) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
- i18n [\#438](https://github.com/liyasthomas/postwoman/pull/438) ([liyasthomas](https://github.com/liyasthomas))
|
- i18n [\#438](https://github.com/liyasthomas/postwoman/pull/438) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
- Burmese translation added [\#437](https://github.com/liyasthomas/postwoman/pull/437) ([ZattWine](https://github.com/ZattWine))
|
- Burmese translation added [\#437](https://github.com/liyasthomas/postwoman/pull/437) ([ZattWine](https://github.com/ZattWine))
|
||||||
|
- chore: stick to Vue.js best practices [\#432](https://github.com/liyasthomas/postwoman/pull/432) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
- Styled select input [\#431](https://github.com/liyasthomas/postwoman/pull/431) ([liyasthomas](https://github.com/liyasthomas))
|
- Styled select input [\#431](https://github.com/liyasthomas/postwoman/pull/431) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
- Bumped dependencies and Improved UI contrast [\#430](https://github.com/liyasthomas/postwoman/pull/430) ([liyasthomas](https://github.com/liyasthomas))
|
- Bumped dependencies and Improved UI contrast [\#430](https://github.com/liyasthomas/postwoman/pull/430) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
- ⬆️ Bump cypress from 3.7.0 to 3.8.0 [\#429](https://github.com/liyasthomas/postwoman/pull/429) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
- ⬆️ Bump cypress from 3.7.0 to 3.8.0 [\#429](https://github.com/liyasthomas/postwoman/pull/429) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
@@ -119,6 +644,7 @@
|
|||||||
- Even [\#424](https://github.com/liyasthomas/postwoman/pull/424) ([liyasthomas](https://github.com/liyasthomas))
|
- Even [\#424](https://github.com/liyasthomas/postwoman/pull/424) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
- I18n [\#423](https://github.com/liyasthomas/postwoman/pull/423) ([liyasthomas](https://github.com/liyasthomas))
|
- I18n [\#423](https://github.com/liyasthomas/postwoman/pull/423) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
- I18n German translation added [\#422](https://github.com/liyasthomas/postwoman/pull/422) ([NJannasch](https://github.com/NJannasch))
|
- I18n German translation added [\#422](https://github.com/liyasthomas/postwoman/pull/422) ([NJannasch](https://github.com/NJannasch))
|
||||||
|
- Header key autocompletion [\#421](https://github.com/liyasthomas/postwoman/pull/421) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
- Update id-ID.js [\#416](https://github.com/liyasthomas/postwoman/pull/416) ([williamsp](https://github.com/williamsp))
|
- Update id-ID.js [\#416](https://github.com/liyasthomas/postwoman/pull/416) ([williamsp](https://github.com/williamsp))
|
||||||
- Improving translation for id-ID [\#414](https://github.com/liyasthomas/postwoman/pull/414) ([williamsp](https://github.com/williamsp))
|
- Improving translation for id-ID [\#414](https://github.com/liyasthomas/postwoman/pull/414) ([williamsp](https://github.com/williamsp))
|
||||||
- Fixing bug on request saving [\#410](https://github.com/liyasthomas/postwoman/pull/410) ([adevr](https://github.com/adevr))
|
- Fixing bug on request saving [\#410](https://github.com/liyasthomas/postwoman/pull/410) ([adevr](https://github.com/adevr))
|
||||||
@@ -126,10 +652,12 @@
|
|||||||
- ⬆️ Bump vue-virtual-scroll-list from 1.4.3 to 1.4.4 [\#406](https://github.com/liyasthomas/postwoman/pull/406) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
- ⬆️ Bump vue-virtual-scroll-list from 1.4.3 to 1.4.4 [\#406](https://github.com/liyasthomas/postwoman/pull/406) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
- ⬆️ Bump nuxt-i18n from 6.4.0 to 6.4.1 [\#405](https://github.com/liyasthomas/postwoman/pull/405) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
- ⬆️ Bump nuxt-i18n from 6.4.0 to 6.4.1 [\#405](https://github.com/liyasthomas/postwoman/pull/405) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
- I18n [\#404](https://github.com/liyasthomas/postwoman/pull/404) ([yubathom](https://github.com/yubathom))
|
- I18n [\#404](https://github.com/liyasthomas/postwoman/pull/404) ([yubathom](https://github.com/yubathom))
|
||||||
|
- Custom methods support [\#400](https://github.com/liyasthomas/postwoman/pull/400) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
- App UI [\#391](https://github.com/liyasthomas/postwoman/pull/391) ([liyasthomas](https://github.com/liyasthomas))
|
- App UI [\#391](https://github.com/liyasthomas/postwoman/pull/391) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
- i18n [\#383](https://github.com/liyasthomas/postwoman/pull/383) ([liyasthomas](https://github.com/liyasthomas))
|
- i18n [\#383](https://github.com/liyasthomas/postwoman/pull/383) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
- Added Turkish Language Support [\#382](https://github.com/liyasthomas/postwoman/pull/382) ([AliAnilKocak](https://github.com/AliAnilKocak))
|
- Added Turkish Language Support [\#382](https://github.com/liyasthomas/postwoman/pull/382) ([AliAnilKocak](https://github.com/AliAnilKocak))
|
||||||
- Translated new words to Farsi lang [\#380](https://github.com/liyasthomas/postwoman/pull/380) ([hosseinnedaee](https://github.com/hosseinnedaee))
|
- Translated new words to Farsi lang [\#380](https://github.com/liyasthomas/postwoman/pull/380) ([hosseinnedaee](https://github.com/hosseinnedaee))
|
||||||
|
- Two Way Data Binding \(v-model\) to Ace Editor component [\#379](https://github.com/liyasthomas/postwoman/pull/379) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
- fix: twitter summary card image url [\#378](https://github.com/liyasthomas/postwoman/pull/378) ([peterpeterparker](https://github.com/peterpeterparker))
|
- fix: twitter summary card image url [\#378](https://github.com/liyasthomas/postwoman/pull/378) ([peterpeterparker](https://github.com/peterpeterparker))
|
||||||
- Added nav shortcuts to GraphQL query and response, updated GraphQL shortcut icons [\#377](https://github.com/liyasthomas/postwoman/pull/377) ([AndrewBastin](https://github.com/AndrewBastin))
|
- Added nav shortcuts to GraphQL query and response, updated GraphQL shortcut icons [\#377](https://github.com/liyasthomas/postwoman/pull/377) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
- Bump cypress from 3.6.1 to 3.7.0 [\#376](https://github.com/liyasthomas/postwoman/pull/376) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
- Bump cypress from 3.6.1 to 3.7.0 [\#376](https://github.com/liyasthomas/postwoman/pull/376) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
@@ -146,8 +674,160 @@
|
|||||||
- Added Brazilian Portuguese language support [\#359](https://github.com/liyasthomas/postwoman/pull/359) ([tetri](https://github.com/tetri))
|
- Added Brazilian Portuguese language support [\#359](https://github.com/liyasthomas/postwoman/pull/359) ([tetri](https://github.com/tetri))
|
||||||
- Added Farsi language support [\#357](https://github.com/liyasthomas/postwoman/pull/357) ([hosseinnedaee](https://github.com/hosseinnedaee))
|
- Added Farsi language support [\#357](https://github.com/liyasthomas/postwoman/pull/357) ([hosseinnedaee](https://github.com/hosseinnedaee))
|
||||||
- Adding french language basic [\#355](https://github.com/liyasthomas/postwoman/pull/355) ([thomasbnt](https://github.com/thomasbnt))
|
- Adding french language basic [\#355](https://github.com/liyasthomas/postwoman/pull/355) ([thomasbnt](https://github.com/thomasbnt))
|
||||||
|
- Basic i18n support [\#351](https://github.com/liyasthomas/postwoman/pull/351) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Undo header/param/body param deletion [\#350](https://github.com/liyasthomas/postwoman/pull/350) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Added ability to run GraphQL queries [\#346](https://github.com/liyasthomas/postwoman/pull/346) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
- Add Proxy URL option [\#345](https://github.com/liyasthomas/postwoman/pull/345) ([NBTX](https://github.com/NBTX))
|
- Add Proxy URL option [\#345](https://github.com/liyasthomas/postwoman/pull/345) ([NBTX](https://github.com/NBTX))
|
||||||
|
- ♻️ Refactor Functions [\#344](https://github.com/liyasthomas/postwoman/pull/344) ([athul](https://github.com/athul))
|
||||||
|
- refactor: minor improvements [\#343](https://github.com/liyasthomas/postwoman/pull/343) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
|
||||||
|
## [v1.0.0](https://github.com/liyasthomas/postwoman/tree/v1.0.0) (2019-11-04)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/v0.1.0...v1.0.0)
|
||||||
|
|
||||||
\* *This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)*
|
**Fixed bugs:**
|
||||||
|
|
||||||
|
- Bearer Token value still left even after being cleared [\#212](https://github.com/liyasthomas/postwoman/issues/212)
|
||||||
|
- All changes in input fields lost when you switch to another page [\#203](https://github.com/liyasthomas/postwoman/issues/203)
|
||||||
|
- POST request json bodies aren't sent [\#180](https://github.com/liyasthomas/postwoman/issues/180)
|
||||||
|
- Headers turn into 0 : \[Object object\] [\#166](https://github.com/liyasthomas/postwoman/issues/166)
|
||||||
|
- Send Again Button Constantly Flickering [\#157](https://github.com/liyasthomas/postwoman/issues/157)
|
||||||
|
- There are cross-domain problems [\#128](https://github.com/liyasthomas/postwoman/issues/128)
|
||||||
|
- Raw requests are not being sent [\#124](https://github.com/liyasthomas/postwoman/issues/124)
|
||||||
|
- Request Body Is Not Sent [\#113](https://github.com/liyasthomas/postwoman/issues/113)
|
||||||
|
- default menu option - 'Http' is not highlighted when launched from installed pwa app \(UI bug\) [\#100](https://github.com/liyasthomas/postwoman/issues/100)
|
||||||
|
- App is broken with old history in localStorage [\#74](https://github.com/liyasthomas/postwoman/issues/74)
|
||||||
|
- Last added history entry is removed automatically after refresh [\#66](https://github.com/liyasthomas/postwoman/issues/66)
|
||||||
|
- Cannot use localhost as base url [\#56](https://github.com/liyasthomas/postwoman/issues/56)
|
||||||
|
- \[CORS\] No 'Access-Control-Allow-Origin' header is present on the requested resource [\#2](https://github.com/liyasthomas/postwoman/issues/2)
|
||||||
|
|
||||||
|
**Closed issues:**
|
||||||
|
|
||||||
|
- Section labels don't display properly in Firefox [\#237](https://github.com/liyasthomas/postwoman/issues/237)
|
||||||
|
- Unsupported URLs \[BUG\]? [\#229](https://github.com/liyasthomas/postwoman/issues/229)
|
||||||
|
- Credentials are still being included in Permalink even when "Include in URL" is turned off [\#227](https://github.com/liyasthomas/postwoman/issues/227)
|
||||||
|
- Display sendRequest runtime errors in the console [\#206](https://github.com/liyasthomas/postwoman/issues/206)
|
||||||
|
- Chain requests. Execute a bunch of requests one by one and produce results [\#196](https://github.com/liyasthomas/postwoman/issues/196)
|
||||||
|
- Allow User to Choose Whether to Include Authentication in Permalink [\#178](https://github.com/liyasthomas/postwoman/issues/178)
|
||||||
|
- Allow HTTP \(not HTTPS\) on postwoman.io [\#175](https://github.com/liyasthomas/postwoman/issues/175)
|
||||||
|
- Docker-compose in development [\#168](https://github.com/liyasthomas/postwoman/issues/168)
|
||||||
|
- Add Docker [\#164](https://github.com/liyasthomas/postwoman/issues/164)
|
||||||
|
- Missing "Landing/start page" [\#162](https://github.com/liyasthomas/postwoman/issues/162)
|
||||||
|
- Response with content-type "application/hal+json" shows as \[Object object\] [\#158](https://github.com/liyasthomas/postwoman/issues/158)
|
||||||
|
- Clear Input [\#155](https://github.com/liyasthomas/postwoman/issues/155)
|
||||||
|
- A place to discuss [\#149](https://github.com/liyasthomas/postwoman/issues/149)
|
||||||
|
- Inconsistent version name [\#141](https://github.com/liyasthomas/postwoman/issues/141)
|
||||||
|
- introduce some script language to parse the response and pass environment variable as request parameter [\#139](https://github.com/liyasthomas/postwoman/issues/139)
|
||||||
|
- Add links to the footer version and commit sha [\#134](https://github.com/liyasthomas/postwoman/issues/134)
|
||||||
|
- Please add a label for each request. It will be helpful. [\#133](https://github.com/liyasthomas/postwoman/issues/133)
|
||||||
|
- Use 'icon buttons' instead of 'text buttons' [\#130](https://github.com/liyasthomas/postwoman/issues/130)
|
||||||
|
- Change .editorconfig [\#115](https://github.com/liyasthomas/postwoman/issues/115)
|
||||||
|
- \[UX\] Provide Focus State for Buttons, etc. [\#112](https://github.com/liyasthomas/postwoman/issues/112)
|
||||||
|
- Autoresize the textarea [\#102](https://github.com/liyasthomas/postwoman/issues/102)
|
||||||
|
- Content-Type revamping [\#99](https://github.com/liyasthomas/postwoman/issues/99)
|
||||||
|
- Add linter semistandard [\#98](https://github.com/liyasthomas/postwoman/issues/98)
|
||||||
|
- Add version number in footer [\#97](https://github.com/liyasthomas/postwoman/issues/97)
|
||||||
|
- Show "Send" button all over the page or enable hotkeys [\#94](https://github.com/liyasthomas/postwoman/issues/94)
|
||||||
|
- Import request from cURL [\#93](https://github.com/liyasthomas/postwoman/issues/93)
|
||||||
|
- Search on History [\#92](https://github.com/liyasthomas/postwoman/issues/92)
|
||||||
|
- Add support for "application/hal+json" Content-Type [\#88](https://github.com/liyasthomas/postwoman/issues/88)
|
||||||
|
- The query string is built incorrectly when the path contains a parameter [\#87](https://github.com/liyasthomas/postwoman/issues/87)
|
||||||
|
- The history doesn't show a date with the timestamp. [\#81](https://github.com/liyasthomas/postwoman/issues/81)
|
||||||
|
- Option to Copy request as Fetch or XHR Or CURL [\#76](https://github.com/liyasthomas/postwoman/issues/76)
|
||||||
|
- Not working on Brave Browser anymore [\#71](https://github.com/liyasthomas/postwoman/issues/71)
|
||||||
|
- Why da fuq is your name plastered all over the README? [\#70](https://github.com/liyasthomas/postwoman/issues/70)
|
||||||
|
- Comparison with Postman is missing [\#69](https://github.com/liyasthomas/postwoman/issues/69)
|
||||||
|
- Add Tests [\#65](https://github.com/liyasthomas/postwoman/issues/65)
|
||||||
|
- HTTP request with different library [\#61](https://github.com/liyasthomas/postwoman/issues/61)
|
||||||
|
- Editorconfig file [\#60](https://github.com/liyasthomas/postwoman/issues/60)
|
||||||
|
- 500 this.isValidURL is not a function [\#58](https://github.com/liyasthomas/postwoman/issues/58)
|
||||||
|
- Request Headers [\#57](https://github.com/liyasthomas/postwoman/issues/57)
|
||||||
|
- Colored response codes based on status code [\#46](https://github.com/liyasthomas/postwoman/issues/46)
|
||||||
|
- Improve SEO [\#45](https://github.com/liyasthomas/postwoman/issues/45)
|
||||||
|
- Add html preview to response section [\#41](https://github.com/liyasthomas/postwoman/issues/41)
|
||||||
|
- websocket support [\#40](https://github.com/liyasthomas/postwoman/issues/40)
|
||||||
|
- Styling with Tailwindcss [\#38](https://github.com/liyasthomas/postwoman/issues/38)
|
||||||
|
- Not Working in IE 11 [\#37](https://github.com/liyasthomas/postwoman/issues/37)
|
||||||
|
- Raw request body for POST requests and Authorization key/value in Header [\#36](https://github.com/liyasthomas/postwoman/issues/36)
|
||||||
|
- Code highlight on response body [\#33](https://github.com/liyasthomas/postwoman/issues/33)
|
||||||
|
- Template selector [\#32](https://github.com/liyasthomas/postwoman/issues/32)
|
||||||
|
- Vue template [\#31](https://github.com/liyasthomas/postwoman/issues/31)
|
||||||
|
- Add copy response to clipboard button [\#30](https://github.com/liyasthomas/postwoman/issues/30)
|
||||||
|
- Ability to store/share/create collections [\#29](https://github.com/liyasthomas/postwoman/issues/29)
|
||||||
|
- PWA not installable [\#19](https://github.com/liyasthomas/postwoman/issues/19)
|
||||||
|
- Send request on Enter Key press [\#17](https://github.com/liyasthomas/postwoman/issues/17)
|
||||||
|
- Simple Misspelling [\#8](https://github.com/liyasthomas/postwoman/issues/8)
|
||||||
|
- Readable [\#5](https://github.com/liyasthomas/postwoman/issues/5)
|
||||||
|
- Serialize a request into JSON? [\#4](https://github.com/liyasthomas/postwoman/issues/4)
|
||||||
|
|
||||||
|
**Merged pull requests:**
|
||||||
|
|
||||||
|
- docs: add liyasthomas as a contributor [\#264](https://github.com/liyasthomas/postwoman/pull/264) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add jamesgeorge007 as a contributor [\#263](https://github.com/liyasthomas/postwoman/pull/263) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add NBTX as a contributor [\#262](https://github.com/liyasthomas/postwoman/pull/262) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- Fix .all-contributorsrc badge template. [\#260](https://github.com/liyasthomas/postwoman/pull/260) ([NBTX](https://github.com/NBTX))
|
||||||
|
- docs: add hosseinnedaee as a contributor [\#259](https://github.com/liyasthomas/postwoman/pull/259) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add nityanandagohain as a contributor [\#257](https://github.com/liyasthomas/postwoman/pull/257) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add JacobAnavisca as a contributor [\#256](https://github.com/liyasthomas/postwoman/pull/256) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add izerozlu as a contributor [\#255](https://github.com/liyasthomas/postwoman/pull/255) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add vlad0337187 as a contributor [\#254](https://github.com/liyasthomas/postwoman/pull/254) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add AndrewBastin as a contributor [\#253](https://github.com/liyasthomas/postwoman/pull/253) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add terranblake as a contributor [\#252](https://github.com/liyasthomas/postwoman/pull/252) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add nickpalenchar as a contributor [\#251](https://github.com/liyasthomas/postwoman/pull/251) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add yubathom as a contributor [\#250](https://github.com/liyasthomas/postwoman/pull/250) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add larouxn as a contributor [\#249](https://github.com/liyasthomas/postwoman/pull/249) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add NBTX as a contributor [\#248](https://github.com/liyasthomas/postwoman/pull/248) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- docs: add liyasthomas as a contributor [\#247](https://github.com/liyasthomas/postwoman/pull/247) ([allcontributors[bot]](https://github.com/apps/allcontributors))
|
||||||
|
- Make page changes more fluid [\#246](https://github.com/liyasthomas/postwoman/pull/246) ([NBTX](https://github.com/NBTX))
|
||||||
|
- Minor tweaks [\#245](https://github.com/liyasthomas/postwoman/pull/245) ([liyasthomas](https://github.com/liyasthomas))
|
||||||
|
- Add brand new logo to the project [\#244](https://github.com/liyasthomas/postwoman/pull/244) ([caneco](https://github.com/caneco))
|
||||||
|
- ⬆️ Bump @nuxtjs/google-tag-manager from 2.3.0 to 2.3.1 [\#243](https://github.com/liyasthomas/postwoman/pull/243) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump yargs-parser from 15.0.0 to 16.1.0 [\#242](https://github.com/liyasthomas/postwoman/pull/242) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump @nuxtjs/toast from 3.2.1 to 3.3.0 [\#241](https://github.com/liyasthomas/postwoman/pull/241) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump highlight.js from 9.15.10 to 9.16.2 [\#240](https://github.com/liyasthomas/postwoman/pull/240) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump cypress from 3.5.0 to 3.6.0 [\#239](https://github.com/liyasthomas/postwoman/pull/239) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Fix legend labels in Firefox, fix colored labels slider [\#238](https://github.com/liyasthomas/postwoman/pull/238) ([NBTX](https://github.com/NBTX))
|
||||||
|
- Feature/pre request script [\#231](https://github.com/liyasthomas/postwoman/pull/231) ([nickpalenchar](https://github.com/nickpalenchar))
|
||||||
|
- Documentation Cleanup [\#230](https://github.com/liyasthomas/postwoman/pull/230) ([amitdash291](https://github.com/amitdash291))
|
||||||
|
- Fix \#227 Exclude credentials from permalink [\#228](https://github.com/liyasthomas/postwoman/pull/228) ([reefqi037](https://github.com/reefqi037))
|
||||||
|
- ⬆️ Bump cypress from 3.4.1 to 3.5.0 [\#224](https://github.com/liyasthomas/postwoman/pull/224) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump @nuxtjs/axios from 5.6.0 to 5.8.0 [\#223](https://github.com/liyasthomas/postwoman/pull/223) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump node-sass from 4.12.0 to 4.13.0 [\#222](https://github.com/liyasthomas/postwoman/pull/222) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump nuxt from 2.10.1 to 2.10.2 [\#221](https://github.com/liyasthomas/postwoman/pull/221) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump @nuxtjs/google-analytics from 2.2.0 to 2.2.1 [\#220](https://github.com/liyasthomas/postwoman/pull/220) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump vuex-persist from 2.1.0 to 2.1.1 [\#219](https://github.com/liyasthomas/postwoman/pull/219) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Add the ApolloTV proxy server [\#217](https://github.com/liyasthomas/postwoman/pull/217) ([NBTX](https://github.com/NBTX))
|
||||||
|
- Fixed frame colors toggle [\#216](https://github.com/liyasthomas/postwoman/pull/216) ([mateusppereira](https://github.com/mateusppereira))
|
||||||
|
- Re-order sections and add toggle for including authentication in URL [\#215](https://github.com/liyasthomas/postwoman/pull/215) ([NBTX](https://github.com/NBTX))
|
||||||
|
- chore: minor code refactor [\#214](https://github.com/liyasthomas/postwoman/pull/214) ([jamesgeorge007](https://github.com/jamesgeorge007))
|
||||||
|
- Fix \#212 Clear bearer token value [\#213](https://github.com/liyasthomas/postwoman/pull/213) ([reefqi037](https://github.com/reefqi037))
|
||||||
|
- bug: keeping information on page change [\#211](https://github.com/liyasthomas/postwoman/pull/211) ([breno-pereira](https://github.com/breno-pereira))
|
||||||
|
- Work in Progress: feature/allow-collections-importing [\#209](https://github.com/liyasthomas/postwoman/pull/209) ([vlad0337187](https://github.com/vlad0337187))
|
||||||
|
- fix: don't display 'Collection is empty' label if collection has any … [\#208](https://github.com/liyasthomas/postwoman/pull/208) ([vlad0337187](https://github.com/vlad0337187))
|
||||||
|
- Feature/log errors [\#207](https://github.com/liyasthomas/postwoman/pull/207) ([nickpalenchar](https://github.com/nickpalenchar))
|
||||||
|
- Use returned value from toggle component on change event [\#205](https://github.com/liyasthomas/postwoman/pull/205) ([hosseinnedaee](https://github.com/hosseinnedaee))
|
||||||
|
- Fix proxy URL [\#201](https://github.com/liyasthomas/postwoman/pull/201) ([NBTX](https://github.com/NBTX))
|
||||||
|
- Fix CORS and Mixed-Content issue & Bug Fixes [\#200](https://github.com/liyasthomas/postwoman/pull/200) ([NBTX](https://github.com/NBTX))
|
||||||
|
- Fix CORS and mixed content issue [\#199](https://github.com/liyasthomas/postwoman/pull/199) ([hosseinnedaee](https://github.com/hosseinnedaee))
|
||||||
|
- ⬆️ Bump start-server-and-test from 1.10.5 to 1.10.6 [\#198](https://github.com/liyasthomas/postwoman/pull/198) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Added Tooltips [\#197](https://github.com/liyasthomas/postwoman/pull/197) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- ⬆️ Bump start-server-and-test from 1.10.3 to 1.10.5 [\#194](https://github.com/liyasthomas/postwoman/pull/194) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump @nuxtjs/google-tag-manager from 2.2.1 to 2.3.0 [\#193](https://github.com/liyasthomas/postwoman/pull/193) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump nuxt from 2.10.0 to 2.10.1 [\#192](https://github.com/liyasthomas/postwoman/pull/192) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- ⬆️ Bump yargs-parser from 14.0.0 to 15.0.0 [\#191](https://github.com/liyasthomas/postwoman/pull/191) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- Add quotation marks for generated code [\#187](https://github.com/liyasthomas/postwoman/pull/187) ([johnhenry](https://github.com/johnhenry))
|
||||||
|
- Added auto theme [\#185](https://github.com/liyasthomas/postwoman/pull/185) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
- Add Request name label for every requests [\#184](https://github.com/liyasthomas/postwoman/pull/184) ([sharath2106](https://github.com/sharath2106))
|
||||||
|
- updated threshold and rootMargin for IntersectionObserver [\#182](https://github.com/liyasthomas/postwoman/pull/182) ([edisonaugusthy](https://github.com/edisonaugusthy))
|
||||||
|
- Add basic e2e tests [\#181](https://github.com/liyasthomas/postwoman/pull/181) ([yubathom](https://github.com/yubathom))
|
||||||
|
- ⬆️ Bump nuxt from 2.9.2 to 2.10.0 [\#179](https://github.com/liyasthomas/postwoman/pull/179) ([dependabot-preview[bot]](https://github.com/apps/dependabot-preview))
|
||||||
|
- 🐛 Fixed sitemap configuration [\#177](https://github.com/liyasthomas/postwoman/pull/177) ([NicoPennec](https://github.com/NicoPennec))
|
||||||
|
- Collections [\#176](https://github.com/liyasthomas/postwoman/pull/176) ([TheHollidayInn](https://github.com/TheHollidayInn))
|
||||||
|
- Code Refactoring [\#173](https://github.com/liyasthomas/postwoman/pull/173) ([edisonaugusthy](https://github.com/edisonaugusthy))
|
||||||
|
- Added Black Theme [\#172](https://github.com/liyasthomas/postwoman/pull/172) ([AndrewBastin](https://github.com/AndrewBastin))
|
||||||
|
|
||||||
|
## [v0.1.0](https://github.com/liyasthomas/postwoman/tree/v0.1.0) (2019-08-22)
|
||||||
|
|
||||||
|
[Full Changelog](https://github.com/liyasthomas/postwoman/compare/91c08a5e6305cc95a0df46a33fdd0013bf7339b4...v0.1.0)
|
||||||
|
|
||||||
|
\* _This Changelog was automatically generated by [github_changelog_generator](https://github.com/github-changelog-generator/github-changelog-generator)_
|
||||||
|
|||||||
@@ -2,75 +2,131 @@
|
|||||||
|
|
||||||
## Our Pledge
|
## Our Pledge
|
||||||
|
|
||||||
In the interest of fostering an open and welcoming environment, we as
|
We as members, contributors, and leaders pledge to make participation in our
|
||||||
contributors and maintainers pledge to making participation in our project and
|
community a harassment-free experience for everyone, regardless of age, body
|
||||||
our community a harassment-free experience for everyone, regardless of age, body
|
size, visible or invisible disability, ethnicity, sex characteristics, gender
|
||||||
size, disability, ethnicity, sex characteristics, gender identity and expression,
|
identity and expression, level of experience, education, socio-economic status,
|
||||||
level of experience, education, socio-economic status, nationality, personal
|
nationality, personal appearance, race, caste, color, religion, or sexual identity
|
||||||
appearance, race, religion, or sexual identity and orientation.
|
and orientation.
|
||||||
|
|
||||||
|
We pledge to act and interact in ways that contribute to an open, welcoming,
|
||||||
|
diverse, inclusive, and healthy community.
|
||||||
|
|
||||||
## Our Standards
|
## Our Standards
|
||||||
|
|
||||||
Examples of behavior that contributes to creating a positive environment
|
Examples of behavior that contributes to a positive environment for our
|
||||||
include:
|
community include:
|
||||||
|
|
||||||
* Using welcoming and inclusive language
|
- Demonstrating empathy and kindness toward other people
|
||||||
* Being respectful of differing viewpoints and experiences
|
- Being respectful of differing opinions, viewpoints, and experiences
|
||||||
* Gracefully accepting constructive criticism
|
- Giving and gracefully accepting constructive feedback
|
||||||
* Focusing on what is best for the community
|
- Accepting responsibility and apologizing to those affected by our mistakes,
|
||||||
* Showing empathy towards other community members
|
and learning from the experience
|
||||||
|
- Focusing on what is best not just for us as individuals, but for the
|
||||||
|
overall community
|
||||||
|
|
||||||
Examples of unacceptable behavior by participants include:
|
Examples of unacceptable behavior include:
|
||||||
|
|
||||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
- The use of sexualized language or imagery, and sexual attention or
|
||||||
advances
|
advances of any kind
|
||||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
- Trolling, insulting or derogatory comments, and personal or political attacks
|
||||||
* Public or private harassment
|
- Public or private harassment
|
||||||
* Publishing others' private information, such as a physical or electronic
|
- Publishing others' private information, such as a physical or email
|
||||||
address, without explicit permission
|
address, without their explicit permission
|
||||||
* Other conduct which could reasonably be considered inappropriate in a
|
- Other conduct which could reasonably be considered inappropriate in a
|
||||||
professional setting
|
professional setting
|
||||||
|
|
||||||
## Our Responsibilities
|
## Enforcement Responsibilities
|
||||||
|
|
||||||
Project maintainers are responsible for clarifying the standards of acceptable
|
Community leaders are responsible for clarifying and enforcing our standards of
|
||||||
behavior. Maintainers are expected to take appropriate and fair corrective action in
|
acceptable behavior and will take appropriate and fair corrective action in
|
||||||
response to any instances of unacceptable behavior.
|
response to any behavior that they deem inappropriate, threatening, offensive,
|
||||||
|
or harmful.
|
||||||
|
|
||||||
Project maintainers have the right and responsibility to remove, edit, or
|
Community leaders have the right and responsibility to remove, edit, or reject
|
||||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
comments, commits, code, wiki edits, issues, and other contributions that are
|
||||||
that are not aligned with our Code of Conduct, or to ban temporarily or
|
not aligned to this Code of Conduct, and will communicate reasons for moderation
|
||||||
permanently any contributor for other behaviors that they deem inappropriate,
|
decisions when appropriate.
|
||||||
threatening, offensive, or harmful.
|
|
||||||
|
|
||||||
## Scope
|
## Scope
|
||||||
|
|
||||||
This Code of Conduct applies both within project spaces and in public spaces
|
This Code of Conduct applies within all community spaces, and also applies when
|
||||||
when an individual is representing the project or its community. Examples of
|
an individual is officially representing the community in public spaces.
|
||||||
representing a project or community include using an official project e-mail
|
Examples of representing our community include using an official e-mail address,
|
||||||
address, posting via an official social media account, or acting as an appointed
|
posting via an official social media account, or acting as an appointed
|
||||||
representative at an online or offline event. Representation of a project may be
|
representative at an online or offline event.
|
||||||
further defined and clarified by project maintainers.
|
|
||||||
|
|
||||||
## Enforcement
|
## Enforcement
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
||||||
reported by contacting the project team at liyascthomas@gmail.com. All
|
reported to the community leaders responsible for enforcement at
|
||||||
complaints will be reviewed and investigated and will result in a response that
|
[INSERT CONTACT METHOD].
|
||||||
is deemed necessary and appropriate to the circumstances. The project team is
|
All complaints will be reviewed and investigated promptly and fairly.
|
||||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
|
||||||
Further details of specific enforcement policies may be posted separately.
|
|
||||||
|
|
||||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
All community leaders are obligated to respect the privacy and security of the
|
||||||
faith may face temporary or permanent repercussions as determined by other
|
reporter of any incident.
|
||||||
members of the project's leadership.
|
|
||||||
|
## Enforcement Guidelines
|
||||||
|
|
||||||
|
Community leaders will follow these Community Impact Guidelines in determining
|
||||||
|
the consequences for any action they deem in violation of this Code of Conduct:
|
||||||
|
|
||||||
|
### 1. Correction
|
||||||
|
|
||||||
|
**Community Impact**: Use of inappropriate language or other behavior deemed
|
||||||
|
unprofessional or unwelcome in the community.
|
||||||
|
|
||||||
|
**Consequence**: A private, written warning from community leaders, providing
|
||||||
|
clarity around the nature of the violation and an explanation of why the
|
||||||
|
behavior was inappropriate. A public apology may be requested.
|
||||||
|
|
||||||
|
### 2. Warning
|
||||||
|
|
||||||
|
**Community Impact**: A violation through a single incident or series
|
||||||
|
of actions.
|
||||||
|
|
||||||
|
**Consequence**: A warning with consequences for continued behavior. No
|
||||||
|
interaction with the people involved, including unsolicited interaction with
|
||||||
|
those enforcing the Code of Conduct, for a specified period of time. This
|
||||||
|
includes avoiding interactions in community spaces as well as external channels
|
||||||
|
like social media. Violating these terms may lead to a temporary or
|
||||||
|
permanent ban.
|
||||||
|
|
||||||
|
### 3. Temporary Ban
|
||||||
|
|
||||||
|
**Community Impact**: A serious violation of community standards, including
|
||||||
|
sustained inappropriate behavior.
|
||||||
|
|
||||||
|
**Consequence**: A temporary ban from any sort of interaction or public
|
||||||
|
communication with the community for a specified period of time. No public or
|
||||||
|
private interaction with the people involved, including unsolicited interaction
|
||||||
|
with those enforcing the Code of Conduct, is allowed during this period.
|
||||||
|
Violating these terms may lead to a permanent ban.
|
||||||
|
|
||||||
|
### 4. Permanent Ban
|
||||||
|
|
||||||
|
**Community Impact**: Demonstrating a pattern of violation of community
|
||||||
|
standards, including sustained inappropriate behavior, harassment of an
|
||||||
|
individual, or aggression toward or disparagement of classes of individuals.
|
||||||
|
|
||||||
|
**Consequence**: A permanent ban from any sort of public interaction within
|
||||||
|
the community.
|
||||||
|
|
||||||
## Attribution
|
## Attribution
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
|
||||||
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html
|
version 2.0, available at
|
||||||
|
[https://www.contributor-covenant.org/version/2/0/code_of_conduct.html][v2.0].
|
||||||
|
|
||||||
|
Community Impact Guidelines were inspired by
|
||||||
|
[Mozilla's code of conduct enforcement ladder][mozilla coc].
|
||||||
|
|
||||||
|
For answers to common questions about this code of conduct, see the FAQ at
|
||||||
|
[https://www.contributor-covenant.org/faq][faq]. Translations are available
|
||||||
|
at [https://www.contributor-covenant.org/translations][translations].
|
||||||
|
|
||||||
[homepage]: https://www.contributor-covenant.org
|
[homepage]: https://www.contributor-covenant.org
|
||||||
|
[v2.0]: https://www.contributor-covenant.org/version/2/0/code_of_conduct.html
|
||||||
For answers to common questions about this code of conduct, see
|
[mozilla coc]: https://github.com/mozilla/diversity
|
||||||
https://www.contributor-covenant.org/faq
|
[faq]: https://www.contributor-covenant.org/faq
|
||||||
|
[translations]: https://www.contributor-covenant.org/translations
|
||||||
|
|||||||
@@ -12,81 +12,6 @@ Please note we have a code of conduct, please follow it in all your interactions
|
|||||||
2. Update the README.md with details of changes to the interface, this includes new environment
|
2. Update the README.md with details of changes to the interface, this includes new environment
|
||||||
variables, exposed ports, useful file locations and container parameters.
|
variables, exposed ports, useful file locations and container parameters.
|
||||||
3. Increase the version numbers in any examples files and the README.md to the new version that this
|
3. Increase the version numbers in any examples files and the README.md to the new version that this
|
||||||
Pull Request would represent. The versioning scheme we use is [SemVer](http://semver.org/).
|
Pull Request would represent. The versioning scheme we use is [SemVer](https://semver.org).
|
||||||
4. You may merge the Pull Request once you have the sign-off of two other developers, or if you
|
4. You may merge the Pull Request once you have the sign-off of two other developers, or if you
|
||||||
do not have permission to do that, you may request the second reviewer merge it for you.
|
do not have permission to do that, you may request the second reviewer merge it for you.
|
||||||
|
|
||||||
## Code of Conduct
|
|
||||||
|
|
||||||
### Our Pledge
|
|
||||||
|
|
||||||
In the interest of fostering an open and welcoming environment, we as
|
|
||||||
contributors and maintainers pledge to making participation in our project and
|
|
||||||
our community a harassment-free experience for everyone, regardless of age, body
|
|
||||||
size, disability, ethnicity, gender identity and expression, level of experience,
|
|
||||||
nationality, personal appearance, race, religion, or sexual identity and
|
|
||||||
orientation.
|
|
||||||
|
|
||||||
### Our Standards
|
|
||||||
|
|
||||||
Examples of behavior that contributes to creating a positive environment
|
|
||||||
include:
|
|
||||||
|
|
||||||
* Using welcoming and inclusive language
|
|
||||||
* Being respectful of differing viewpoints and experiences
|
|
||||||
* Gracefully accepting constructive criticism
|
|
||||||
* Focusing on what is best for the community
|
|
||||||
* Showing empathy towards other community members
|
|
||||||
|
|
||||||
Examples of unacceptable behavior by participants include:
|
|
||||||
|
|
||||||
* The use of sexualized language or imagery and unwelcome sexual attention or
|
|
||||||
advances
|
|
||||||
* Trolling, insulting/derogatory comments, and personal or political attacks
|
|
||||||
* Public or private harassment
|
|
||||||
* Publishing others' private information, such as a physical or electronic
|
|
||||||
address, without explicit permission
|
|
||||||
* Other conduct which could reasonably be considered inappropriate in a
|
|
||||||
professional setting
|
|
||||||
|
|
||||||
### Our Responsibilities
|
|
||||||
|
|
||||||
Project maintainers are responsible for clarifying the standards of acceptable
|
|
||||||
behavior. Maintainers are expected to take appropriate and fair corrective action in
|
|
||||||
response to any instances of unacceptable behavior.
|
|
||||||
|
|
||||||
Project maintainers have the right and responsibility to remove, edit, or
|
|
||||||
reject comments, commits, code, wiki edits, issues, and other contributions
|
|
||||||
that are not aligned with our Code of Conduct, or to ban temporarily or
|
|
||||||
permanently any contributor for other behaviors that they deem inappropriate,
|
|
||||||
threatening, offensive, or harmful.
|
|
||||||
|
|
||||||
### Scope
|
|
||||||
|
|
||||||
This Code of Conduct applies both within project spaces and in public spaces
|
|
||||||
when an individual is representing the project or its community. Examples of
|
|
||||||
representing a project or community include using an official project e-mail
|
|
||||||
address, posting via an official social media account, or acting as an appointed
|
|
||||||
representative at an online or offline event. Representation of a project may be
|
|
||||||
further defined and clarified by project maintainers.
|
|
||||||
|
|
||||||
### Enforcement
|
|
||||||
|
|
||||||
Instances of abusive, harassing, or otherwise unacceptable behavior may be
|
|
||||||
reported by contacting the project team at [INSERT EMAIL ADDRESS]. All
|
|
||||||
complaints will be reviewed and investigated and will result in a response that
|
|
||||||
is deemed necessary and appropriate to the circumstances. The project team is
|
|
||||||
obligated to maintain confidentiality with regard to the reporter of an incident.
|
|
||||||
Further details of specific enforcement policies may be posted separately.
|
|
||||||
|
|
||||||
Project maintainers who do not follow or enforce the Code of Conduct in good
|
|
||||||
faith may face temporary or permanent repercussions as determined by other
|
|
||||||
members of the project's leadership.
|
|
||||||
|
|
||||||
### Attribution
|
|
||||||
|
|
||||||
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
|
|
||||||
available at [http://contributor-covenant.org/version/1/4][version]
|
|
||||||
|
|
||||||
[homepage]: http://contributor-covenant.org
|
|
||||||
[version]: http://contributor-covenant.org/version/1/4/
|
|
||||||
|
|||||||
20
Dockerfile
20
Dockerfile
@@ -1,21 +1,27 @@
|
|||||||
FROM node:12.10.0-alpine
|
FROM node:lts-alpine
|
||||||
|
|
||||||
LABEL maintainer="Liyas Thomas (liyascthomas@gmail.com)"
|
LABEL maintainer="Hoppscotch (support@hoppscotch.io)"
|
||||||
|
|
||||||
# Add git as the prebuild target requires it to parse version information
|
# Add git as the prebuild target requires it to parse version information
|
||||||
RUN apk add --update --no-cache \
|
RUN apk add --update --no-cache \
|
||||||
git
|
git
|
||||||
|
|
||||||
|
# Create app directory
|
||||||
WORKDIR /app
|
WORKDIR /app
|
||||||
|
|
||||||
COPY package*.json ./
|
ADD . /app/
|
||||||
|
|
||||||
RUN npm install
|
|
||||||
|
|
||||||
COPY . .
|
COPY . .
|
||||||
|
|
||||||
RUN npm run build
|
RUN npm install -g pnpm
|
||||||
|
|
||||||
|
RUN pnpm i
|
||||||
|
|
||||||
|
ENV HOST 0.0.0.0
|
||||||
EXPOSE 3000
|
EXPOSE 3000
|
||||||
|
|
||||||
CMD ["npm", "run", "start"]
|
RUN mv packages/hoppscotch-app/.env.example packages/hoppscotch-app/.env
|
||||||
|
|
||||||
|
RUN pnpm run generate
|
||||||
|
|
||||||
|
CMD ["pnpm", "run", "start"]
|
||||||
|
|||||||
2
LICENSE
2
LICENSE
@@ -1,6 +1,6 @@
|
|||||||
MIT License
|
MIT License
|
||||||
|
|
||||||
Copyright (c) 2019 Liyas Thomas
|
Copyright (c) 2020
|
||||||
|
|
||||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||||
of this software and associated documentation files (the "Software"), to deal
|
of this software and associated documentation files (the "Software"), to deal
|
||||||
|
|||||||
555
README.md
555
README.md
@@ -1,431 +1,358 @@
|
|||||||
<div align="center">
|
<div align="center">
|
||||||
<a href="https://postwoman.io"><img src="static/logo.png" alt="Postwoman.io logo" height="160"></a>
|
<a href="https://hoppscotch.io">
|
||||||
<br>
|
<img
|
||||||
<br>
|
src="https://avatars.githubusercontent.com/u/56705483"
|
||||||
|
alt="Hoppscotch Logo"
|
||||||
|
height="64"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
<br />
|
||||||
<p>
|
<p>
|
||||||
<b>A free, fast & beautiful API request builder</b>
|
<h3>
|
||||||
|
<b>
|
||||||
|
Hoppscotch
|
||||||
|
</b>
|
||||||
|
</h3>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<i>Web alternative to Postman - Helps you create requests faster, saving precious time on development - <a href="https://postwoman.launchaco.com">Subscribe</a></i>
|
<b>
|
||||||
|
Open source API development ecosystem
|
||||||
|
</b>
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
|
|
||||||
[](https://travis-ci.com/liyasthomas/postwoman) [](https://github.com/liyasthomas/postwoman/releases/latest) [](https://postwoman.io) [](CONTRIBUTING.md) [](https://opencollective.com/postwoman) [](https://www.paypal.me/liyascthomas) [](https://t.me/postwoman_app) [](https://discord.gg/GAMWxmR) [](https://twitter.com/intent/tweet?url=https%3A%2F%2Fpostwoman.io&text=%F0%9F%91%BD%20Postwoman%20%E2%80%A2%20API%20request%20builder%20-%20Helps%20you%20create%20your%20requests%20faster%2C%20saving%20you%20precious%20time%20on%20your%20development&original_referer=https%3A%2F%2Ftwitter.com%2Fshare%3Ftext%3D%25F0%259F%2591%25BD%2520Postwoman%2520%25E2%2580%25A2%2520API%2520request%2520builder%2520-%2520Helps%2520you%2520create%2520your%2520requests%2520faster%2C%2520saving%2520you%2520precious%2520time%2520on%2520your%2520development%26url%3Dhttps%3A%2F%2Fpostwoman.io%26hashtags%3Dpostwoman%26via%3Dliyasthomas&via=liyasthomas&hashtags=postwoman)
|
[](CODE_OF_CONDUCT.md) [](https://hoppscotch.io) [](https://github.com/hoppscotch/hoppscotch/actions) [](https://twitter.com/share?text=%F0%9F%91%BD%20Hoppscotch%20%E2%80%A2%20Open%20source%20API%20development%20ecosystem%20-%20Helps%20you%20create%20requests%20faster,%20saving%20precious%20time%20on%20development.&url=https://hoppscotch.io&hashtags=hoppscotch&via=hoppscotch_io)
|
||||||
|
|
||||||
</p>
|
</p>
|
||||||
<p>
|
<p>
|
||||||
<sub>Built with ❤︎ by
|
<sub>
|
||||||
<a href="https://github.com/liyasthomas">liyasthomas</a> and
|
Built with ❤︎ by
|
||||||
<a href="https://github.com/liyasthomas/postwoman/graphs/contributors">contributors</a>
|
<a href="https://github.com/hoppscotch/hoppscotch/graphs/contributors">
|
||||||
|
contributors
|
||||||
|
</a>
|
||||||
</sub>
|
</sub>
|
||||||
</p>
|
</p>
|
||||||
|
<br />
|
||||||
|
<p>
|
||||||
|
<a href="https://hoppscotch.io">
|
||||||
|
<img
|
||||||
|
src="https://tiny.cc/hoppscotch_screenshot_1"
|
||||||
|
alt="Screenshot"
|
||||||
|
width="100%"
|
||||||
|
/>
|
||||||
|
</a>
|
||||||
|
</p>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
#### **Support**
|
||||||
|
|
||||||
|
[](https://hoppscotch.io/discord) [](https://hoppscotch.io/telegram)
|
||||||
|
|
||||||
|
<details open>
|
||||||
|
<summary><b>Table of contents</b></summary>
|
||||||
|
|
||||||
---
|
---
|
||||||
|
|
||||||
**Read: _[Story behind Postwoman](https://dev.to/liyasthomas/i-created-postwoman-an-online-open-source-api-request-builder-41md), [Postwoman v1.0](https://dev.to/liyasthomas/postwoman-v1-0-a-free-fast-beautiful-alternative-to-postman-mn0)_**
|
- [Features](#features)
|
||||||
|
- [Demo](#demo)
|
||||||
|
- [Usage](#usage)
|
||||||
|
- [Built with](#built-with)
|
||||||
|
- [Developing](#developing)
|
||||||
|
- [Docker](#docker)
|
||||||
|
- [Releasing](#releasing)
|
||||||
|
- [Contributing](#contributing)
|
||||||
|
- [Continuous Integration](#continuous-integration)
|
||||||
|
- [Changelog](#changelog)
|
||||||
|
- [Authors](#authors)
|
||||||
|
- [License](#license)
|
||||||
|
|
||||||
**Chat: _[Telegram](https://t.me/postwoman_app), [Discord](https://discord.gg/GAMWxmR)_**
|
---
|
||||||
|
|
||||||
**Donate: _[PayPal](https://www.paypal.me/liyascthomas), [Open Collective](https://opencollective.com/postwoman), [Patreon](https://www.patreon.com/liyasthomas)_**
|
</details>
|
||||||
|
|
||||||
<div align="center">
|
### **Features**
|
||||||
<br>
|
|
||||||
<img src="static/images/screenshot1.png" alt="Screenshot1" width="100%">
|
|
||||||
<br>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
### Features ✨
|
❤️ **Lightweight:** Crafted with minimalistic UI design.
|
||||||
|
|
||||||
❤️ **Lightweight**: Crafted with minimalistic UI design - simple design is the best design.
|
⚡️ **Fast:** Send requests and get/copy responses in real-time.
|
||||||
|
|
||||||
⚡️ **Fast**: Send requests and get/copy responses in real-time - fast software is the best software.
|
**HTTP Methods**
|
||||||
|
|
||||||
**Methods:**
|
- `GET` - Requests retrieve resource information
|
||||||
- `GET` - Retrieve information about the REST API resource
|
- `POST` - The server creates a new entry in a database
|
||||||
- `HEAD` - Retrieve response headers identical to those of a GET request, but without the response body.
|
- `PUT` - Updates an existing resource
|
||||||
- `POST` - Create a REST API resource
|
- `PATCH` - Very similar to `PUT` but makes a partial update on a resource
|
||||||
- `PUT` - Update a REST API resource
|
- `DELETE` - Deletes resource or related component
|
||||||
- `DELETE` - Delete a REST API resource or related component
|
- `HEAD` - Retrieve response headers identical to those of a GET request, but without the response body.
|
||||||
- `CONNECT` - Establishes a tunnel to the server identified by the target resource
|
- `CONNECT` - Establishes a tunnel to the server identified by the target resource
|
||||||
- `OPTIONS` - Describe the communication options for the target resource
|
- `OPTIONS` - Describe the communication options for the target resource
|
||||||
- `TRACE` - Performs a message loop-back test along the path to the target resource
|
- `TRACE` - Performs a message loop-back test along the path to the target resource
|
||||||
- `PATCH` - Apply partial modifications to a REST API resource
|
- `<custom>` - Some APIs use custom request methods such as `LIST`. Type in your custom methods.
|
||||||
- `<custom>` - Some APIs use custom request methods such as `LIST`. Type in your custom methods.
|
|
||||||
|
|
||||||
🌈 **Make it yours**: Customizable combinations for background, foreground and accent colors: because customization is freedom. [Customize now ✨](https://postwoman.io/settings).
|
🌈 **Make it yours:** Customizable combinations for background, foreground and accent colors — [customize now ✨](https://hoppscotch.io/settings).
|
||||||
|
|
||||||
**Customizations:**
|
**Theming**
|
||||||
- Choose theme: Kinda Dark (default), Clearly White, Just Black and System theme
|
|
||||||
- Choose accent color: Green (default), Yellow, Pink, Red, Purple, Orange, Cyan and Blue
|
|
||||||
- Toggle multi-colored headings
|
|
||||||
|
|
||||||
_Customized themes are synced with local session storage_
|
- Choose theme: System (default), Light, Dark and Black
|
||||||
|
- Choose accent color: Green (default), Teal, Blue, Indigo, Purple, Yellow, Orange, Red and Pink
|
||||||
|
- Distraction free Zen mode
|
||||||
|
|
||||||
🔥 **PWA**: Install as a [PWA](https://developers.google.com/web/progressive-web-apps) on your device.
|
_Customized themes are synced with cloud / local session_
|
||||||
|
|
||||||
**Features:**
|
🔥 **PWA:** Install as a [PWA](https://developers.google.com/web/progressive-web-apps) on your device.
|
||||||
- Instant loading with [Service Workers](https://developers.google.com/web/fundamentals/primers/service-workers)
|
|
||||||
- Offline support
|
|
||||||
- Low RAM/memory and CPU usage
|
|
||||||
- Add to Home Screen
|
|
||||||
- Desktop PWA
|
|
||||||
- ([full features](https://developers.google.com/web/progressive-web-apps))
|
|
||||||
|
|
||||||
🚀 **Request**: Retrieve response from endpoint instantly.
|
- Instant loading with Service Workers
|
||||||
|
- Offline support
|
||||||
|
- Low RAM/memory and CPU usage
|
||||||
|
- Add to Home Screen
|
||||||
|
- Desktop PWA
|
||||||
|
|
||||||
- Choose `method`
|
🚀 **Request:** Retrieve response from endpoint instantly.
|
||||||
- Enter `URL` and `Path`
|
|
||||||
- Send
|
|
||||||
|
|
||||||
**Features:**
|
1. Choose `method`
|
||||||
- Copy/share public "Share URL"
|
2. Enter `URL`
|
||||||
- Generate request code for `JavaScript XHR`, `Fetch` and `cURL`
|
3. Send
|
||||||
- Copy generated request code to clipboard
|
|
||||||
- Import `cURL`
|
|
||||||
- Label requests
|
|
||||||
|
|
||||||
🔌 **WebSocket**: Establish full-duplex communication channels over a single TCP connection.
|
- Copy/share public "Share URL"
|
||||||
|
- Generate/copy request code snippets for 10+ languages and frameworks
|
||||||
|
- Import `cURL`
|
||||||
|
- Label requests
|
||||||
|
|
||||||
- Send and receive data
|
🔌 **WebSocket:** Establish full-duplex communication channels over a single TCP connection.
|
||||||
- Basic and Bearer Token authentication
|
|
||||||
|
|
||||||
📡 **Server Sent Events**: Receive a stream of updates from a server over a HTTP connection without resorting to polling.
|
📡 **Server Sent Events:** Receive a stream of updates from a server over a HTTP connection without resorting to polling.
|
||||||
|
|
||||||
🔮 **GraphQL**: GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data.
|
🌩 **Socket.IO:** Send and Receive data with SocketIO server.
|
||||||
|
|
||||||
- Set endpoint and get schemas
|
🦟 **MQTT:** Subscribe and Publish to topics of a MQTT Broker.
|
||||||
- Multi-column docs
|
|
||||||
- Set custom request headers
|
|
||||||
- Query schema
|
|
||||||
- Get query response
|
|
||||||
|
|
||||||
🔐 **Authentication**: Allows to identify the end user.
|
🔮 **GraphQL:** GraphQL is a query language for APIs and a runtime for fulfilling those queries with your existing data.
|
||||||
|
|
||||||
**Types:**
|
- Set endpoint and get schema
|
||||||
- None
|
- Multi-column docs
|
||||||
- Basic
|
- Set custom request headers
|
||||||
- Bearer Token
|
- Query schema
|
||||||
- OAuth 2.0
|
- Get query response
|
||||||
- OIDC Access Token/PKCE (Proof Key for Code Exchange)
|
|
||||||
|
|
||||||
📢 **Headers**: Describes the format the body of your request is being sent as.
|
🔐 **Authorization:** Allows to identify the end user.
|
||||||
|
|
||||||
- Add or remove Header list
|
- None
|
||||||
|
- Basic
|
||||||
|
- Bearer Token
|
||||||
|
- OAuth 2.0
|
||||||
|
- OIDC Access Token/PKCE
|
||||||
|
|
||||||
📫 **Parameters**: Use request parameters to set varying parts in simulated requests.
|
📢 **Headers:** Describes the format the body of your request is being sent as.
|
||||||
|
|
||||||
📃 **Request Body**: Used to send and receive data via the REST API.
|
📫 **Parameters:** Use request parameters to set varying parts in simulated requests.
|
||||||
|
|
||||||
**Options:**
|
📃 **Request Body:** Used to send and receive data via the REST API.
|
||||||
- Set `Content Type`
|
|
||||||
- Add or remove Parameter list
|
|
||||||
- Toggle between key-value and RAW input Parameter list
|
|
||||||
|
|
||||||
👋 **Responses**: Contains the status line, headers and the message/response body.
|
- Set `Content Type`
|
||||||
|
- FormData, JSON and many more
|
||||||
|
- Toggle between key-value and RAW input parameter list
|
||||||
|
|
||||||
- Copy response to clipboard
|
👋 **Response:** Contains the status line, headers and the message/response body.
|
||||||
- Download response to as a file
|
|
||||||
- View preview of HTML responses
|
|
||||||
|
|
||||||
⏰ **History**: Request entries are synced with local session storage to reuse with a single click.
|
- Copy response to clipboard
|
||||||
|
- Download response as a file
|
||||||
|
- View response headers
|
||||||
|
- View raw and preview of HTML, image, JSON, XML responses
|
||||||
|
|
||||||
**Fields:**
|
⏰ **History:** Request entries are synced with cloud / local session storage to restore with a single click.
|
||||||
- Star
|
|
||||||
- Label
|
|
||||||
- Method
|
|
||||||
- Status code
|
|
||||||
- URL
|
|
||||||
- Path
|
|
||||||
- Timestamp
|
|
||||||
- Duration
|
|
||||||
- Pre-request script
|
|
||||||
|
|
||||||
_History entries can be sorted by any fields_
|
📁 **Collections:** Keep your API requests organized with collections and folders. Reuse them with a single click.
|
||||||
|
|
||||||
_Histories can be deleted one-by-one or all together_
|
- Unlimited collections, folders and requests
|
||||||
|
- Nested folders
|
||||||
|
- Export and import as file or GitHub gist
|
||||||
|
|
||||||
📁 **Collections**: Keep your API requests organized with collections and folders. Reuse them with a single click.
|
_Collections are synced with cloud / local session storage_
|
||||||
|
|
||||||
**Options:**
|
🌐 **Proxy:** Enable Proxy Mode from Settings to access blocked APIs.
|
||||||
- Create infinite collections, folders and requests
|
|
||||||
- Edit, delete, move, export, import and replace
|
|
||||||
|
|
||||||
_Collections are synced with local session storage_
|
- Hide your IP address
|
||||||
|
- Fixes [`CORS`](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (Cross Origin Resource Sharing) issues
|
||||||
|
- Access APIs served in non-HTTPS (`http://`) endpoints
|
||||||
|
- Use your own Proxy URL
|
||||||
|
|
||||||
🌐 **Proxy**: Enable Proxy Mode from Settings to access blocked APIs.
|
_Official proxy server is hosted by Hoppscotch - **[GitHub](https://github.com/hoppscotch/proxyscotch)** - **[Privacy Policy](https://docs.hoppscotch.io/privacy)**_
|
||||||
|
|
||||||
**Features:**
|
📜 **Pre-Request Scripts β:** Snippets of code associated with a request that are executed before the request is sent.
|
||||||
- Hide your IP address
|
|
||||||
- Fixes [CORS](https://developer.mozilla.org/en-US/docs/Web/HTTP/CORS) (Cross Origin Resource Sharing) issues
|
|
||||||
- Access APIs served in non-HTTPS (`http://`)
|
|
||||||
- Use custom Proxy URL
|
|
||||||
|
|
||||||
_Official Postwoman Proxy is hosted by ApolloTV - **[Privacy policy](https://apollotv.xyz/legal)**_
|
- Set environment variables
|
||||||
|
- Include timestamp in the request headers
|
||||||
|
- Send a random alphanumeric string in the URL parameters
|
||||||
|
- Any JavaScript functions
|
||||||
|
|
||||||
📜 **Pre-Request Scripts β**: Snippets of code associated with a request that are executed before the request is sent.
|
📄 **API Documentation:** Create and share dynamic API documentation easily, quickly.
|
||||||
|
|
||||||
**Use-cases:**
|
1. Add your requests to Collections and Folders
|
||||||
- Include timestamp in the request headers
|
2. Export Collections and easily share your APIs with the rest of your team
|
||||||
- Send a random alphanumeric string in the URL parameters
|
3. Import Collections and Generate Documentation on-the-go
|
||||||
|
|
||||||
_Requests with Pre-Request Scripts are indicated in History entries_
|
⌨️ **Keyboard Shortcuts:** Optimized for efficiency.
|
||||||
|
|
||||||
📄 **API Documentation**: Create and share dynamic API documentation easily, quickly.
|
> **[Read our documentation on Keyboard Shortcuts](https://docs.hoppscotch.io/features/shortcuts)**
|
||||||
|
|
||||||
**Usage:**
|
🌎 **i18n:** Experience the app in your own language.
|
||||||
1. Add your requests to Collections and Folders
|
|
||||||
2. Export Collections and easily share your APIs with the rest of your team
|
|
||||||
3. Import Collections and Generate Documentation on-the-go
|
|
||||||
|
|
||||||
⌨️ **Keyboard Shortcuts**: Optimized for efficiency.
|
Help us to translate Hoppscotch. Please read [`TRANSLATIONS`](TRANSLATIONS.md) for details on our [`CODE OF CONDUCT`](CODE_OF_CONDUCT.md), and the process for submitting pull requests to us.
|
||||||
|
|
||||||
**Shortcuts:**
|
📦 **Add-ons:** Official add-ons for hoppscotch.
|
||||||
- Send Request <kbd>Ctrl</kbd> + <kbd>G</kbd>
|
|
||||||
- Save to Collections <kbd>Ctrl</kbd> + <kbd>S</kbd>
|
|
||||||
- Copy Request Link <kbd>Ctrl</kbd> + <kbd>K</kbd>
|
|
||||||
- Reset Request <kbd>Ctrl</kbd> + <kbd>L</kbd>
|
|
||||||
|
|
||||||
🌎 **i18n β**: Experience the app in your own language.
|
- **[Proxy](https://github.com/hoppscotch/proxyscotch)** - A simple proxy server created for Hoppscotch
|
||||||
|
- **[CLI β](https://github.com/hoppscotch/hopp-cli)** - A CLI solution for Hoppscotch
|
||||||
|
- **[Browser Extensions](https://github.com/hoppscotch/hoppscotch-extension)** - Browser extensions that simplifies access to Hoppscotch
|
||||||
|
|
||||||
1. Scroll down to the footer
|
[ **Firefox**](https://addons.mozilla.org/en-US/firefox/addon/hoppscotch) | [ **Chrome**](https://chrome.google.com/webstore/detail/hoppscotch-extension-for-c/amknoiejhlmhancpahfcfcfhllgkpbld)
|
||||||
2. Click "Choose Language" icon button
|
|
||||||
3. Select your language from the menu
|
|
||||||
|
|
||||||
_Keep in mind: Translations aren't available for all source and target language combinations_
|
> **Extensions fixes `CORS` issues.**
|
||||||
|
|
||||||
**To provide a localized experience for users around the world, you can add you own translations.**
|
- **[Hopp-Doc-Gen](https://github.com/hoppscotch/hopp-doc-gen)** - An API doc generator CLI for Hoppscotch
|
||||||
|
|
||||||
_**All `i18n` contributions are welcome to `i18n` [branch](https://github.com/liyasthomas/postwoman/tree/i18n) only!**_
|
_Add-ons are developed and maintained under **[Hoppscotch Organization](https://github.com/hoppscotch)**._
|
||||||
|
|
||||||
📦 **Add-ons**: Official add-ons for Postwoman.
|
☁️ **Auth + Sync:** Sign in and sync your data in real-time.
|
||||||
|
|
||||||
- **[Proxy β](https://github.com/postwoman-io/postwoman-proxy)** - A simple proxy server created for Postwoman
|
**Sign in with**
|
||||||
- **[CLI β](https://github.com/postwoman-io/postwoman-cli)** - A CLI solution for Postwoman
|
|
||||||
- **Browser Extensions** - Browser extensions that simplifies access to Postwoman
|
|
||||||
|
|
||||||
[ **Firefox**](https://addons.mozilla.org/en-US/firefox/addon/postwoman) ([GitHub](https://github.com/AndrewBastin/postwoman-firefox)) | [ **Chrome**](https://chrome.google.com/webstore/detail/postwoman-extension-for-c/amknoiejhlmhancpahfcfcfhllgkpbld) ([GitHub](https://github.com/AndrewBastin/postwoman-chrome))
|
- GitHub
|
||||||
|
- Google
|
||||||
|
- Email
|
||||||
|
|
||||||
>**Extensions fixes `CORS` issues.**
|
**Synchronize your data**
|
||||||
|
|
||||||
_Add-ons are developed and maintained under **[Official Postwoman Organization](https://github.com/postwoman-io)**._
|
- History
|
||||||
|
- Collections
|
||||||
|
- Environments
|
||||||
|
- Settings
|
||||||
|
|
||||||
☁️ **Auth + Sync**: Sign in and sync in real-time.
|
✅ **Post-Request Tests β:** Write tests associated with a request that are executed after the request response.
|
||||||
|
|
||||||
**Sign in with:**
|
- Check the status code as an integer
|
||||||
- Google
|
- Filter response headers
|
||||||
- GitHub
|
- Parse the response data
|
||||||
|
- Any JavaScript functions
|
||||||
|
|
||||||
**Sync:**
|
🌱 **Environments** : Environment variables allow you to store and reuse values in your requests and scripts.
|
||||||
- History
|
|
||||||
- Collections
|
|
||||||
|
|
||||||
✅ **Post-Request Tests β**: Write tests associated with a request that are executed after the request response.
|
- Unlimited environments and variables
|
||||||
|
- Initialize through pre-request script
|
||||||
|
- Export as / import from GitHub gist
|
||||||
|
|
||||||
**Use-cases:**
|
<details>
|
||||||
- Check the status code as an integer
|
<summary><i>Use-cases</i></summary>
|
||||||
- Filter response headers
|
|
||||||
- Parse the response data
|
|
||||||
|
|
||||||
**To find out more, please check out [Postwoman Wiki](https://github.com/liyasthomas/postwoman/wiki).**
|
---
|
||||||
|
|
||||||
## Demo 🚀 [](https://postwoman.io)
|
- By storing a value in a variable, you can reference it throughout your request section
|
||||||
|
- If you need to update the value, you only have to change it in one place
|
||||||
|
- Using variables increases your ability to work efficiently and minimizes the likelihood of error
|
||||||
|
|
||||||
[postwoman.io](https://postwoman.io)
|
---
|
||||||
|
|
||||||
<a href="https://www.netlify.com">
|
</details>
|
||||||
<img src="https://www.netlify.com/img/global/badges/netlify-light.svg"/>
|
|
||||||
</a>
|
|
||||||
|
|
||||||
## Usage 💡
|
👨👩👧👦 **Teams β:** Helps you collaborate across your team to design, develop, and test APIs faster.
|
||||||
|
|
||||||
1. Specify your request `method`
|
- Unlimited team collections and shared requests
|
||||||
2. Type in your API `URL` and `path`
|
- Unlimited team members
|
||||||
|
- User roles
|
||||||
|
|
||||||
|
🚚 **Bulk Edit:** Edit key-value pairs in bulk.
|
||||||
|
|
||||||
|
- Entries are separated by newline
|
||||||
|
- Keys and values are separated by `:`
|
||||||
|
- Prepend `//` to any row you want to add but keep disabled
|
||||||
|
|
||||||
|
**For more features, please read our [documentation](https://docs.hoppscotch.io).**
|
||||||
|
|
||||||
|
## **Demo**
|
||||||
|
|
||||||
|
[hoppscotch.io](https://hoppscotch.io)
|
||||||
|
|
||||||
|
## **Usage**
|
||||||
|
|
||||||
|
1. Choose `method`
|
||||||
|
2. Enter `URL`
|
||||||
3. Send request
|
3. Send request
|
||||||
4. Get response
|
4. Get response
|
||||||
|
|
||||||
You're done!
|
## **Built with**
|
||||||
|
|
||||||
## Built with 🔧
|
- [HTML](https://developer.mozilla.org/en-US/docs/Web/HTML)
|
||||||
|
- [CSS](https://developer.mozilla.org/en-US/docs/Web/CSS), [SCSS](https://sass-lang.com), [Windi CSS](https://windicss.org)
|
||||||
|
- [JavaScript](https://developer.mozilla.org/en-US/docs/Web/JavaScript)
|
||||||
|
- [TypeScript](https://www.typescriptlang.org)
|
||||||
|
- [Vue](https://vuejs.org)
|
||||||
|
- [Nuxt](https://nuxtjs.org)
|
||||||
|
|
||||||
* [Chromium](https://github.com/chromium/chromium) - Thanks for being so fast!
|
## **Developing**
|
||||||
* HTML - For the web framework
|
|
||||||
* CSS - For styling components
|
|
||||||
* JavaScript - For magic!
|
|
||||||
* [Vue](https://vuejs.org/) - To add to the JavaScript magic!
|
|
||||||
* [Nuxt](https://nuxtjs.org/) - To add to the Vue magic!
|
|
||||||
|
|
||||||
## Developing 👷
|
0. Update [`.env.example`](https://github.com/hoppscotch/hoppscotch/blob/main/.env.example) file found in `packages/hoppscotch-app` with your own keys and rename it to `.env`.
|
||||||
|
|
||||||
#### Use a browser based development environment:
|
_Sample keys only works with the [production build](https://hoppscotch.io)._
|
||||||
|
|
||||||
[](https://gitpod.io/#https://github.com/liyasthomas/postwoman)
|
### Browser based development environment
|
||||||
|
|
||||||
#### Or, with local development environment:
|
- [GitHub codespace](https://docs.github.com/en/codespaces/developing-in-codespaces/creating-a-codespace)
|
||||||
|
- [Gitpod](https://gitpod.io/#https://github.com/hoppscotch/hoppscotch)
|
||||||
|
|
||||||
|
### Local development environment
|
||||||
|
|
||||||
1. [Clone this repo](https://help.github.com/en/articles/cloning-a-repository) with git.
|
1. [Clone this repo](https://help.github.com/en/articles/cloning-a-repository) with git.
|
||||||
2. Install dependencies by running `npm install` within the directory that you cloned (probably `postwoman`).
|
2. Install dependencies by running `pnpm install` within the directory that you cloned (probably `hoppscotch`).
|
||||||
3. Start the development server with `npm run dev`.
|
3. Start the development server with `pnpm run dev`.
|
||||||
4. Open development site by going to [http://localhost:3000](http://localhost:3000) in your browser.
|
4. Open development site by going to [`http://localhost:3000`](http://localhost:3000) in your browser.
|
||||||
|
|
||||||
#### Or, with docker-compose:
|
### Docker compose
|
||||||
|
|
||||||
1. [Clone this repo](https://help.github.com/en/articles/cloning-a-repository) with git.
|
1. [Clone this repo](https://help.github.com/en/articles/cloning-a-repository) with git.
|
||||||
2. Run `docker-compose up`
|
2. Run `docker-compose up`
|
||||||
3. Open development site by going to [http://localhost:3000](http://localhost:3000) in your browser.
|
3. Open development site by going to [`http://localhost:3000`](http://localhost:3000) in your browser.
|
||||||
|
|
||||||
## Docker 🐳 [](https://hub.docker.com/r/liyasthomas/postwoman)
|
## **Docker**
|
||||||
|
|
||||||
|
**Official container** [](https://hub.docker.com/r/hoppscotch/hoppscotch)
|
||||||
|
|
||||||
```bash
|
```bash
|
||||||
#pull
|
docker run --rm --name hoppscotch -p 3000:3000 hoppscotch/hoppscotch:latest
|
||||||
docker pull liyasthomas/postwoman
|
|
||||||
|
|
||||||
#run
|
|
||||||
docker run -p 3000:3000 liyasthomas/postwoman:latest
|
|
||||||
|
|
||||||
#build
|
|
||||||
docker build -t postwoman:latest
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## Releasing 🏷️
|
## **Releasing**
|
||||||
|
|
||||||
1. [Clone this repo](https://help.github.com/en/articles/cloning-a-repository) with git.
|
1. [Clone this repo](https://help.github.com/en/articles/cloning-a-repository) with git.
|
||||||
2. Install dependencies by running `npm install` within the directory that you cloned (probably `postwoman`).
|
2. Install dependencies by running `pnpm install` within the directory that you cloned (probably `hoppscotch`).
|
||||||
3. Build the release files with `npm run build`.
|
3. Build the release files with `pnpm run generate`.
|
||||||
4. Find the built project in `./dist`.
|
4. Find the built project in `packages/hoppscotch-app/dist`.
|
||||||
|
|
||||||
## Contributing 🍰
|
## **Contributing**
|
||||||
|
|
||||||
Please read [CONTRIBUTING](CONTRIBUTING.md) for details on our [CODE OF CONDUCT](CODE_OF_CONDUCT.md), and the process for submitting pull requests to us.
|
Please contribute using [GitHub Flow](https://guides.github.com/introduction/flow). Create a branch, add commits, and [open a pull request](https://github.com/hoppscotch/hoppscotch/compare).
|
||||||
|
|
||||||
## Continuous Integration 💚 [](https://travis-ci.com/liyasthomas/postwoman)
|
Please read [`CONTRIBUTING`](CONTRIBUTING.md) for details on our [`CODE OF CONDUCT`](CODE_OF_CONDUCT.md), and the process for submitting pull requests to us.
|
||||||
|
|
||||||
We use [Travis CI](https://travis-ci.com) for continuous integration. Check out our [Travis CI Status](https://travis-ci.com/liyasthomas/postwoman).
|
## **Continuous Integration**
|
||||||
|
|
||||||
## Versioning 🔖 [](https://github.com/liyasthomas/postwoman/releases/latest)
|
We use [GitHub Actions](https://github.com/features/actions) for continuous integration. Check out our [build workflows](https://github.com/hoppscotch/hoppscotch/actions).
|
||||||
|
|
||||||
This project is developed by [Liyas Thomas](https://github.com/liyasthomas) using the [Semantic Versioning specification](https://semver.org). For the versions available, see the [releases on this repository](https://github.com/liyasthomas/postwoman/releases).
|
## **Changelog**
|
||||||
|
|
||||||
## Change log 📝
|
See the [`CHANGELOG`](CHANGELOG.md) file for details.
|
||||||
|
|
||||||
See the [CHANGELOG](CHANGELOG.md) file for details.
|
## **Authors**
|
||||||
|
|
||||||
## Authors 🔮
|
This project exists thanks to all the people who contribute — [make a contribution](CONTRIBUTING.md).
|
||||||
|
|
||||||
### Lead Developers
|
|
||||||
|
|
||||||
* **[Liyas Thomas](https://github.com/liyasthomas)** - *Author*
|
|
||||||
* **[Caneco](https://twitter.com/caneco)** - *Designer*
|
|
||||||
|
|
||||||
### Testing and Debugging
|
|
||||||
|
|
||||||
* ([contributors](https://github.com/liyasthomas/postwoman/graphs/contributors))
|
|
||||||
|
|
||||||
### Collaborators <!-- ALL-CONTRIBUTORS-BADGE:START - Do not remove or modify this section -->
|
|
||||||
<!-- ALL-CONTRIBUTORS-BADGE:END -->
|
|
||||||
|
|
||||||
<!-- ALL-CONTRIBUTORS-LIST:START - Do not remove or modify this section -->
|
|
||||||
<!-- prettier-ignore -->
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<td align="center"><a href="https://liyasthomas.web.app"><img src="https://avatars1.githubusercontent.com/u/10395817?v=4" width="100px;" alt="Liyas Thomas"/><br /><sub><b>Liyas Thomas</b></sub></a><br /><a href="https://github.com/liyasthomas/postwoman/commits?author=liyasthomas" title="Code">💻</a> <a href="#design-liyasthomas" title="Design">🎨</a></td>
|
|
||||||
<td align="center"><a href="https://github.com/NBTX"><img src="https://avatars3.githubusercontent.com/u/43181178?v=4" width="100px;" alt="John Harker"/><br /><sub><b>John Harker</b></sub></a><br /><a href="https://github.com/liyasthomas/postwoman/commits?author=NBTX" title="Code">💻</a> <a href="#design-NBTX" title="Design">🎨</a></td>
|
|
||||||
<td align="center"><a href="https://nicholaslaroux.com"><img src="https://avatars0.githubusercontent.com/u/1557529?v=4" width="100px;" alt="Nicholas La Roux"/><br /><sub><b>Nicholas La Roux</b></sub></a><br /><a href="https://github.com/liyasthomas/postwoman/commits?author=larouxn" title="Code">💻</a></td>
|
|
||||||
<td align="center"><a href="https://github.com/yubathom"><img src="https://avatars3.githubusercontent.com/u/4117768?v=4" width="100px;" alt="Thomas Yuba"/><br /><sub><b>Thomas Yuba</b></sub></a><br /><a href="https://github.com/liyasthomas/postwoman/commits?author=yubathom" title="Code">💻</a></td>
|
|
||||||
<td align="center"><a href="http://www.linkedin.com/in/nickpalenchar"><img src="https://avatars1.githubusercontent.com/u/7539781?v=4" width="100px;" alt="Nick Palenchar"/><br /><sub><b>Nick Palenchar</b></sub></a><br /><a href="https://github.com/liyasthomas/postwoman/commits?author=nickpalenchar" title="Code">💻</a></td>
|
|
||||||
<td align="center"><a href="https://github.com/AndrewBastin"><img src="https://avatars2.githubusercontent.com/u/9131943?v=4" width="100px;" alt="Andrew Bastin"/><br /><sub><b>Andrew Bastin</b></sub></a><br /><a href="https://github.com/liyasthomas/postwoman/commits?author=AndrewBastin" title="Code">💻</a></td>
|
|
||||||
<td align="center"><a href="https://github.com/vlad0337187"><img src="https://avatars1.githubusercontent.com/u/12682937?v=4" width="100px;" alt="Vladislav"/><br /><sub><b>Vladislav</b></sub></a><br /><a href="https://github.com/liyasthomas/postwoman/commits?author=vlad0337187" title="Code">💻</a></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center"><a href="https://github.com/izerozlu"><img src="https://avatars3.githubusercontent.com/u/17386157?v=4" width="100px;" alt="izerozlu"/><br /><sub><b>izerozlu</b></sub></a><br /><a href="https://github.com/liyasthomas/postwoman/commits?author=izerozlu" title="Code">💻</a></td>
|
|
||||||
<td align="center"><a href="https://github.com/JacobAnavisca"><img src="https://avatars2.githubusercontent.com/u/21232366?v=4" width="100px;" alt="Jacob Anavisca"/><br /><sub><b>Jacob Anavisca</b></sub></a><br /><a href="https://github.com/liyasthomas/postwoman/commits?author=JacobAnavisca" title="Code">💻</a></td>
|
|
||||||
<td align="center"><a href="http://nityanandagohain.github.io"><img src="https://avatars3.githubusercontent.com/u/26831659?v=4" width="100px;" alt="Nityananda Gohain"/><br /><sub><b>Nityananda Gohain</b></sub></a><br /><a href="https://github.com/liyasthomas/postwoman/commits?author=nityanandagohain" title="Code">💻</a></td>
|
|
||||||
<td align="center"><a href="https://github.com/hosseinnedaee"><img src="https://avatars2.githubusercontent.com/u/42691357?v=4" width="100px;" alt="Hossein Nedaee"/><br /><sub><b>Hossein Nedaee</b></sub></a><br /><a href="https://github.com/liyasthomas/postwoman/commits?author=hosseinnedaee" title="Code">💻</a></td>
|
|
||||||
<td align="center"><a href="https://ghuser.io/jamesgeorge007"><img src="https://avatars2.githubusercontent.com/u/25279263?v=4" width="100px;" alt="James George"/><br /><sub><b>James George</b></sub></a><br /><a href="https://github.com/liyasthomas/postwoman/commits?author=jamesgeorge007" title="Code">💻</a></td>
|
|
||||||
</tr>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<!-- ALL-CONTRIBUTORS-LIST:END -->
|
|
||||||
|
|
||||||
See the list of [contributors](https://github.com/liyasthomas/postwoman/graphs/contributors) who participated in this project.
|
|
||||||
|
|
||||||
### Thanks
|
|
||||||
|
|
||||||
* [dev.to 👩💻👨💻](https://dev.to)
|
|
||||||
|
|
||||||
### Code Contributors
|
|
||||||
|
|
||||||
This project exists thanks to all the people who contribute. [[Contribute](CONTRIBUTING.md)].
|
|
||||||
|
|
||||||
<a href="https://github.com/liyasthomas/postwoman/graphs/contributors"><img src="https://opencollective.com/postwoman/contributors.svg?width=890&button=false" /></a>
|
|
||||||
|
|
||||||
### Financial Contributors
|
|
||||||
|
|
||||||
Become a financial contributor and help us sustain our community. [[Contribute](https://opencollective.com/postwoman/contribute)]
|
|
||||||
|
|
||||||
#### Individuals
|
|
||||||
|
|
||||||
<a href="https://opencollective.com/postwoman"><img src="https://opencollective.com/postwoman/individuals.svg"></a>
|
|
||||||
|
|
||||||
#### Organizations
|
|
||||||
|
|
||||||
Support this project with your organization. Your logo will show up here with a link to your website. [[Contribute](https://opencollective.com/postwoman/contribute)]
|
|
||||||
|
|
||||||
<a href="https://opencollective.com/postwoman/organization/0/website"><img src="https://opencollective.com/postwoman/organization/0/avatar.svg"></a>
|
|
||||||
<a href="https://opencollective.com/postwoman/organization/1/website"><img src="https://opencollective.com/postwoman/organization/1/avatar.svg"></a>
|
|
||||||
<a href="https://opencollective.com/postwoman/organization/2/website"><img src="https://opencollective.com/postwoman/organization/2/avatar.svg"></a>
|
|
||||||
<a href="https://opencollective.com/postwoman/organization/3/website"><img src="https://opencollective.com/postwoman/organization/3/avatar.svg"></a>
|
|
||||||
<a href="https://opencollective.com/postwoman/organization/4/website"><img src="https://opencollective.com/postwoman/organization/4/avatar.svg"></a>
|
|
||||||
<a href="https://opencollective.com/postwoman/organization/5/website"><img src="https://opencollective.com/postwoman/organization/5/avatar.svg"></a>
|
|
||||||
<a href="https://opencollective.com/postwoman/organization/6/website"><img src="https://opencollective.com/postwoman/organization/6/avatar.svg"></a>
|
|
||||||
<a href="https://opencollective.com/postwoman/organization/7/website"><img src="https://opencollective.com/postwoman/organization/7/avatar.svg"></a>
|
|
||||||
<a href="https://opencollective.com/postwoman/organization/8/website"><img src="https://opencollective.com/postwoman/organization/8/avatar.svg"></a>
|
|
||||||
<a href="https://opencollective.com/postwoman/organization/9/website"><img src="https://opencollective.com/postwoman/organization/9/avatar.svg"></a>
|
|
||||||
|
|
||||||
## License 📄
|
|
||||||
|
|
||||||
This project is licensed under the [MIT License](https://opensource.org/licenses/MIT) - see the [LICENSE](LICENSE) file for details.
|
|
||||||
|
|
||||||
## Acknowledgements 🙏
|
|
||||||
|
|
||||||
* Hat tip to anyone whose code was used
|
|
||||||
* Inspirations:
|
|
||||||
* [Dribbble](https://dribbble.com)
|
|
||||||
|
|
||||||
## Badges
|
|
||||||
|
|
||||||
<table>
|
|
||||||
<tr>
|
|
||||||
<th>Preview</th>
|
|
||||||
<th>Markdown code</th>
|
|
||||||
</tr>
|
|
||||||
<tbody>
|
|
||||||
<tr>
|
|
||||||
<td align="center" width="200px"><a href="https://postwoman.io"><br/><img src="https://img.shields.io/badge/Tested_on-Postwoman-202124?logo=Postwoman"/></a><br/><sub>Default<sub></td>
|
|
||||||
<td><code>[](https://postwoman.io)</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center" width="200px"><a href="https://postwoman.io"><br/><img src="https://img.shields.io/badge/Tested_on-Postwoman-success?logo=Postwoman"/></a><br/><sub>Success<sub></td>
|
|
||||||
<td><code>[](https://postwoman.io)</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center" width="200px"><a href="https://postwoman.io"><br/><img src="https://img.shields.io/badge/Tested_on-Postwoman-critical?logo=Postwoman"/></a><br/><sub>Critical<sub></td>
|
|
||||||
<td><code>[](https://postwoman.io)</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center" width="200px"><a href="https://postwoman.io"><br/><img src="https://img.shields.io/badge/Tested_on-Postwoman-blueviolet?logo=Postwoman"/></a><br/><sub>Custom<sub></td>
|
|
||||||
<td><code>[](https://postwoman.io)</code></td>
|
|
||||||
</tr>
|
|
||||||
<tr>
|
|
||||||
<td align="center" width="200px"><a href="https://postwoman.io"><br/><img src="https://img.shields.io/badge/your_text-Postwoman-hex_color_code?logo=Postwoman"/></a><br/><sub>Customize<sub></td>
|
|
||||||
<td><code>[](https://postwoman.io)</code></td>
|
|
||||||
</tr>
|
|
||||||
</tbody>
|
|
||||||
</table>
|
|
||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<br>
|
<a href="https://github.com/hoppscotch/hoppscotch/graphs/contributors">
|
||||||
<a href="https://postwoman.io"><img src="https://raw.githubusercontent.com/liyasthomas/templates/master/assets/logo.gif" alt="Postwoman.io" width="200"></a>
|
<img src="https://opencollective.com/hoppscotch/contributors.svg?width=840&button=false"
|
||||||
<br>
|
alt="Contributors"
|
||||||
<h3>Happy Coding ❤︎</h3>
|
width="100%" />
|
||||||
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
## **License**
|
||||||
|
|
||||||
|
This project is licensed under the [MIT License](https://opensource.org/licenses/MIT) - see the [`LICENSE`](LICENSE) file for details.
|
||||||
|
|||||||
32
TRANSLATIONS.md
Normal file
32
TRANSLATIONS.md
Normal file
@@ -0,0 +1,32 @@
|
|||||||
|
# Translations
|
||||||
|
|
||||||
|
Thanks for showing your interest in helping us to translate the software.
|
||||||
|
|
||||||
|
## Creating a new translation
|
||||||
|
|
||||||
|
Before you start working on a new language, please look through the [open pull requests](https://github.com/hoppscotch/hoppscotch/pulls) to see if anyone is already working on a translation. If you find one, please join the discussion and help us keep the existing translations up to date.
|
||||||
|
|
||||||
|
if there is no existing translation, you can create a new one by following these steps:
|
||||||
|
|
||||||
|
1. **[Fork the repository](https://github.com/hoppscotch/hoppscotch/fork).**
|
||||||
|
2. **Create a new branch for your translation.**
|
||||||
|
3. **Create target language file in the [`locales`](https://github.com/hoppscotch/hoppscotch/tree/main/locales) directory.**
|
||||||
|
4. **Copy the contents of the source file [`locales/en.json`](https://github.com/hoppscotch/hoppscotch/blob/main/locales/en.json) to the target language file.**
|
||||||
|
5. **Translate the strings in the target language file.**
|
||||||
|
6. **Add your language entry to [`languages.json`](https://github.com/hoppscotch/hoppscotch/blob/main/languages.json).**
|
||||||
|
7. **Save & commit changes.**
|
||||||
|
8. **Send a pull request.**
|
||||||
|
|
||||||
|
_You may send a pull request before all steps above are complete: e.g., you may want to ask for help with translations, or getting tests to pass. However, your pull request will not be merged until all steps above are complete._
|
||||||
|
|
||||||
|
Completing an initial translation of the whole site is a fairly large task. One way to break that task up is to work with other translators through pull requests on your fork. You can also [add collaborators to your fork](https://help.github.com/en/github/setting-up-and-managing-your-github-user-account/inviting-collaborators-to-a-personal-repository) if you'd like to invite other translators to commit directly to your fork and share responsibility for merging pull requests.
|
||||||
|
|
||||||
|
## Updating a translation
|
||||||
|
|
||||||
|
### Corrections
|
||||||
|
|
||||||
|
If you notice spelling or grammar errors, typos, or opportunities for better phrasing, open a pull request with your suggested fix. If you see a problem that you aren't sure of or don't have time to fix, open an issue.
|
||||||
|
|
||||||
|
### Broken links
|
||||||
|
|
||||||
|
When tests find broken links, try to fix them across all translations. Ideally, only update the linked URLs, so that translation changes will definitely not be necessary.
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
// @import url("https://fonts.googleapis.com/css?family=Poppins:500,700|Roboto+Mono:400&display=swap");
|
|
||||||
// @import url("https://fonts.googleapis.com/icon?family=Material+Icons&display=swap");
|
|
||||||
|
|
||||||
/* Material Design Icons */
|
|
||||||
@font-face {
|
|
||||||
font-family: "Material Icons";
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: url("~static/fonts/material-icons-v48.woff2") format("woff2");
|
|
||||||
}
|
|
||||||
|
|
||||||
.material-icons {
|
|
||||||
font-family: "Material Icons";
|
|
||||||
font-weight: normal;
|
|
||||||
font-style: normal;
|
|
||||||
height: 24px;
|
|
||||||
width: 24px;
|
|
||||||
font-size: 24px;
|
|
||||||
line-height: 1;
|
|
||||||
letter-spacing: normal;
|
|
||||||
text-transform: none;
|
|
||||||
display: inline-block;
|
|
||||||
white-space: nowrap;
|
|
||||||
word-wrap: normal;
|
|
||||||
direction: ltr;
|
|
||||||
-webkit-font-feature-settings: "liga";
|
|
||||||
-webkit-font-smoothing: antialiased;
|
|
||||||
font-feature-settings: "liga";
|
|
||||||
border-radius: 50%;
|
|
||||||
}
|
|
||||||
|
|
||||||
/* poppins-500 - latin */
|
|
||||||
@font-face {
|
|
||||||
font-family: "Poppins";
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 500;
|
|
||||||
font-display: swap;
|
|
||||||
src: local("Poppins Medium"), local("Poppins-Medium"),
|
|
||||||
url("~static/fonts/poppins-v9-latin-500.woff2") format("woff2"),
|
|
||||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
|
||||||
url("~static/fonts/poppins-v9-latin-500.woff") format("woff");
|
|
||||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* poppins-700 - latin */
|
|
||||||
@font-face {
|
|
||||||
font-family: "Poppins";
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 700;
|
|
||||||
font-display: swap;
|
|
||||||
src: local("Poppins Bold"), local("Poppins-Bold"),
|
|
||||||
url("~static/fonts/poppins-v9-latin-700.woff2") format("woff2"),
|
|
||||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
|
||||||
url("~static/fonts/poppins-v9-latin-700.woff") format("woff");
|
|
||||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
|
||||||
}
|
|
||||||
|
|
||||||
/* roboto-mono-regular - latin */
|
|
||||||
@font-face {
|
|
||||||
font-family: "Roboto Mono";
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: swap;
|
|
||||||
src: local("Roboto Mono"), local("RobotoMono-Regular"),
|
|
||||||
url("~static/fonts/roboto-mono-v7-latin-regular.woff2") format("woff2"),
|
|
||||||
/* Chrome 26+, Opera 23+, Firefox 39+ */
|
|
||||||
url("~static/fonts/roboto-mono-v7-latin-regular.woff") format("woff");
|
|
||||||
/* Chrome 6+, Firefox 3.6+, IE 9+, Safari 5.1+ */
|
|
||||||
}
|
|
||||||
@@ -1,944 +0,0 @@
|
|||||||
.page-enter-active,
|
|
||||||
.page-leave-active,
|
|
||||||
.layout-enter-active,
|
|
||||||
.layout-leave-active {
|
|
||||||
transition: opacity 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-enter,
|
|
||||||
.page-leave-active,
|
|
||||||
.layout-enter,
|
|
||||||
.layout-leave-active {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
$responsiveWidth: 768px;
|
|
||||||
|
|
||||||
::selection {
|
|
||||||
background-color: var(--ac-color);
|
|
||||||
color: var(--act-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar {
|
|
||||||
width: 4px;
|
|
||||||
height: 4px;
|
|
||||||
border-radius: 4px;
|
|
||||||
background-color: var(--bg-light-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
::-webkit-scrollbar-thumb {
|
|
||||||
background-color: var(--fg-light-color);
|
|
||||||
border-radius: 8px;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
background-color: var(--fg-color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
::placeholder {
|
|
||||||
color: var(--fg-light-color);
|
|
||||||
opacity: 0.3;
|
|
||||||
}
|
|
||||||
|
|
||||||
* {
|
|
||||||
box-sizing: border-box;
|
|
||||||
outline: 0;
|
|
||||||
border: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
html,
|
|
||||||
body {
|
|
||||||
background-color: var(--bg-color);
|
|
||||||
color: var(--fg-color);
|
|
||||||
font-weight: 500;
|
|
||||||
font-size: 14px;
|
|
||||||
font-family: "Poppins", "Roboto", "Noto", sans-serif;
|
|
||||||
line-height: 1.5;
|
|
||||||
-webkit-tap-highlight-color: transparent;
|
|
||||||
-webkit-touch-callout: none;
|
|
||||||
user-select: none;
|
|
||||||
padding: 0;
|
|
||||||
margin: 0;
|
|
||||||
scroll-behavior: smooth;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Make theme transition smoother.
|
|
||||||
body.afterLoad {
|
|
||||||
transition: background-color 0.2s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
body.sticky-footer footer {
|
|
||||||
opacity: 0.25;
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
display: inline-flex;
|
|
||||||
color: inherit;
|
|
||||||
text-decoration: none;
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
header,
|
|
||||||
footer {
|
|
||||||
& > div {
|
|
||||||
display: flex;
|
|
||||||
padding: 16px 8px;
|
|
||||||
width: 100%;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.wrapper {
|
|
||||||
min-height: 100vh;
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.wrapper .page {
|
|
||||||
min-height: calc(100vh - 153px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.header,
|
|
||||||
.content,
|
|
||||||
.columns,
|
|
||||||
.footer {
|
|
||||||
display: flex;
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.slide-in {
|
|
||||||
position: relative;
|
|
||||||
animation: slideIn 0.2s forwards ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes slideIn {
|
|
||||||
0% {
|
|
||||||
opacity: 0;
|
|
||||||
left: -16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
100% {
|
|
||||||
opacity: 1;
|
|
||||||
left: 0px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.logo {
|
|
||||||
font-size: 22px;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
color: var(--ac-color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-first,
|
|
||||||
.sticky-inner {
|
|
||||||
display: flex;
|
|
||||||
order: 1;
|
|
||||||
flex-flow: column;
|
|
||||||
position: sticky;
|
|
||||||
top: 0;
|
|
||||||
align-self: flex-start;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-first {
|
|
||||||
z-index: 1;
|
|
||||||
height: 100vh;
|
|
||||||
padding: 0 8px;
|
|
||||||
background-color: var(--bg-light-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.main {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: column;
|
|
||||||
flex: 1;
|
|
||||||
order: 2;
|
|
||||||
position: relative;
|
|
||||||
padding: 0 16px;
|
|
||||||
height: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-second {
|
|
||||||
display: flex;
|
|
||||||
width: 10%;
|
|
||||||
order: 3;
|
|
||||||
// comment below this to display
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
nav.primary-nav {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: column nowrap;
|
|
||||||
|
|
||||||
svg {
|
|
||||||
fill: var(--fg-light-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
a {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
flex-shrink: 0;
|
|
||||||
padding: 14px;
|
|
||||||
border-radius: 50%;
|
|
||||||
background-color: var(--bg-light-color);
|
|
||||||
color: var(--fg-light-color);
|
|
||||||
fill: var(--fg-light-color);
|
|
||||||
margin: 8px 0;
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
color: var(--fg-color);
|
|
||||||
fill: var(--fg-color);
|
|
||||||
|
|
||||||
svg {
|
|
||||||
fill: var(--fg-color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.nuxt-link-exact-active {
|
|
||||||
background-color: var(--ac-color);
|
|
||||||
color: var(--act-color);
|
|
||||||
fill: var(--act-color);
|
|
||||||
border-radius: 16px;
|
|
||||||
|
|
||||||
svg {
|
|
||||||
fill: var(--act-color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
nav.secondary-nav {
|
|
||||||
display: flex;
|
|
||||||
border-top: 1px dashed var(--brd-color);
|
|
||||||
|
|
||||||
ul {
|
|
||||||
display: flex;
|
|
||||||
flex-flow: column nowrap;
|
|
||||||
|
|
||||||
li {
|
|
||||||
display: flex;
|
|
||||||
|
|
||||||
a {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
flex-shrink: 0;
|
|
||||||
padding: 14px;
|
|
||||||
border-radius: 50%;
|
|
||||||
background-color: var(--bg-dark-color);
|
|
||||||
color: var(--fg-light-color);
|
|
||||||
margin: 8px 0;
|
|
||||||
|
|
||||||
&:hover {
|
|
||||||
color: var(--fg-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.current {
|
|
||||||
color: var(--ac-color);
|
|
||||||
fill: var(--ac-color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.footer {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
h1,
|
|
||||||
h2,
|
|
||||||
h3,
|
|
||||||
h4 {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
margin: 0;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
hr {
|
|
||||||
border-bottom: 1px dashed var(--brd-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.tooltip {
|
|
||||||
$bgcolor: var(--tt-color);
|
|
||||||
$fgcolor: var(--fg-color);
|
|
||||||
display: block !important;
|
|
||||||
z-index: 10000;
|
|
||||||
|
|
||||||
.tooltip-inner {
|
|
||||||
background: $bgcolor;
|
|
||||||
color: $fgcolor;
|
|
||||||
border-radius: 8px;
|
|
||||||
padding: 8px 16px;
|
|
||||||
font-size: 12px;
|
|
||||||
font-weight: 500;
|
|
||||||
box-shadow: 0 4px 24px rgba(black, 0.1);
|
|
||||||
}
|
|
||||||
|
|
||||||
.tooltip-arrow {
|
|
||||||
width: 0;
|
|
||||||
height: 0;
|
|
||||||
border-style: solid;
|
|
||||||
position: absolute;
|
|
||||||
margin: 5px;
|
|
||||||
border-color: $bgcolor;
|
|
||||||
z-index: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
&[x-placement^="top"] {
|
|
||||||
margin-bottom: 5px;
|
|
||||||
|
|
||||||
.tooltip-arrow {
|
|
||||||
border-width: 5px 5px 0 5px;
|
|
||||||
border-left-color: transparent !important;
|
|
||||||
border-right-color: transparent !important;
|
|
||||||
border-bottom-color: transparent !important;
|
|
||||||
bottom: -5px;
|
|
||||||
left: calc(50% - 5px);
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[x-placement^="bottom"] {
|
|
||||||
margin-top: 5px;
|
|
||||||
|
|
||||||
.tooltip-arrow {
|
|
||||||
border-width: 0 5px 5px 5px;
|
|
||||||
border-left-color: transparent !important;
|
|
||||||
border-right-color: transparent !important;
|
|
||||||
border-top-color: transparent !important;
|
|
||||||
top: -5px;
|
|
||||||
left: calc(50% - 5px);
|
|
||||||
margin-top: 0;
|
|
||||||
margin-bottom: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[x-placement^="right"] {
|
|
||||||
margin-left: 5px;
|
|
||||||
|
|
||||||
.tooltip-arrow {
|
|
||||||
border-width: 5px 5px 5px 0;
|
|
||||||
border-left-color: transparent !important;
|
|
||||||
border-top-color: transparent !important;
|
|
||||||
border-bottom-color: transparent !important;
|
|
||||||
left: -5px;
|
|
||||||
top: calc(50% - 5px);
|
|
||||||
margin-left: 0;
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[x-placement^="left"] {
|
|
||||||
margin-right: 5px;
|
|
||||||
|
|
||||||
.tooltip-arrow {
|
|
||||||
border-width: 5px 0 5px 5px;
|
|
||||||
border-top-color: transparent !important;
|
|
||||||
border-right-color: transparent !important;
|
|
||||||
border-bottom-color: transparent !important;
|
|
||||||
right: -5px;
|
|
||||||
top: calc(50% - 5px);
|
|
||||||
margin-left: 0;
|
|
||||||
margin-right: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.popover {
|
|
||||||
.wrapper {
|
|
||||||
min-height: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popover-inner {
|
|
||||||
background: $bgcolor;
|
|
||||||
color: $fgcolor;
|
|
||||||
padding: 4px;
|
|
||||||
border-radius: 8px;
|
|
||||||
box-shadow: 0 5px 30px rgba(black, 0.1);
|
|
||||||
max-height: 256px;
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.popover-arrow {
|
|
||||||
border-color: $bgcolor;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&[aria-hidden="true"] {
|
|
||||||
visibility: hidden;
|
|
||||||
opacity: 0;
|
|
||||||
transition: opacity 0.15s, visibility 0.15s;
|
|
||||||
}
|
|
||||||
|
|
||||||
&[aria-hidden="false"] {
|
|
||||||
visibility: visible;
|
|
||||||
opacity: 1;
|
|
||||||
transition: opacity 0.15s;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
h3.title {
|
|
||||||
margin: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.info {
|
|
||||||
margin-left: 4px;
|
|
||||||
color: var(--fg-light-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.bg-color {
|
|
||||||
background-color: transparent;
|
|
||||||
}
|
|
||||||
|
|
||||||
button {
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
margin: 4px;
|
|
||||||
padding: 6px 16px;
|
|
||||||
border-radius: 20px;
|
|
||||||
background-color: var(--ac-color);
|
|
||||||
color: var(--act-color);
|
|
||||||
font-size: 16px;
|
|
||||||
font-family: "Poppins", "Roboto", "Noto", sans-serif;
|
|
||||||
font-weight: 700;
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
fill: var(--act-color);
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
span {
|
|
||||||
display: inline-flex;
|
|
||||||
margin-left: 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:not([disabled]):hover,
|
|
||||||
&:not([disabled]):active,
|
|
||||||
&:not([disabled]):focus {
|
|
||||||
color: var(--act-color);
|
|
||||||
fill: var(--act-color);
|
|
||||||
box-shadow: inset 0 0 0 2px var(--fg-color);
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.icon {
|
|
||||||
background-color: transparent;
|
|
||||||
color: var(--fg-light-color);
|
|
||||||
fill: var(--fg-light-color);
|
|
||||||
border-radius: 8px;
|
|
||||||
|
|
||||||
&:not([disabled]):hover,
|
|
||||||
&:not([disabled]):active,
|
|
||||||
&:not([disabled]):focus {
|
|
||||||
color: var(--fg-color);
|
|
||||||
fill: var(--fg-color);
|
|
||||||
box-shadow: none;
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&.primary {
|
|
||||||
color: var(--ac-color);
|
|
||||||
|
|
||||||
&:not([disabled]):hover,
|
|
||||||
&:not([disabled]):active,
|
|
||||||
&:not([disabled]):focus {
|
|
||||||
background-color: var(--ac-color);
|
|
||||||
color: var(--act-color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@keyframes beat {
|
|
||||||
30% {
|
|
||||||
transform: scale(1.1);
|
|
||||||
}
|
|
||||||
50% {
|
|
||||||
transform: scale(0.9);
|
|
||||||
}
|
|
||||||
100% {
|
|
||||||
transform: scale(1);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.material-icons:active {
|
|
||||||
animation: beat 0.5s forwards 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset {
|
|
||||||
margin: 16px 0;
|
|
||||||
border-radius: 16px;
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
background-color: var(--bg-dark-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
legend {
|
|
||||||
display: inline-block;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
color: var(--fg-color);
|
|
||||||
font-weight: 700;
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
* {
|
|
||||||
vertical-align: middle;
|
|
||||||
}
|
|
||||||
|
|
||||||
i {
|
|
||||||
margin-left: 8px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset.blue legend {
|
|
||||||
color: #57b5f9;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset.gray legend {
|
|
||||||
color: #bcc2cd;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset.green legend {
|
|
||||||
color: #50fa7b;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset.cyan legend {
|
|
||||||
color: #8be9fd;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset.purple legend {
|
|
||||||
color: #bd93f9;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset.orange legend {
|
|
||||||
color: #ffb86c;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset.pink legend {
|
|
||||||
color: #ff79c6;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset.red legend {
|
|
||||||
color: #ff5555;
|
|
||||||
}
|
|
||||||
|
|
||||||
fieldset.yellow legend {
|
|
||||||
color: #f1fa8c;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="file"],
|
|
||||||
input[type="radio"],
|
|
||||||
.tab,
|
|
||||||
.hide-on-large-screen,
|
|
||||||
#installPWA,
|
|
||||||
.hidden {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
kbd,
|
|
||||||
select,
|
|
||||||
input,
|
|
||||||
textarea,
|
|
||||||
pre,
|
|
||||||
code {
|
|
||||||
display: inline-flex;
|
|
||||||
margin: 4px;
|
|
||||||
padding: 8px;
|
|
||||||
border-radius: 8px;
|
|
||||||
background-color: var(--bg-dark-color);
|
|
||||||
color: var(--fg-color);
|
|
||||||
font-size: 16px;
|
|
||||||
font-family: "Roboto Mono", monospace;
|
|
||||||
font-weight: 400;
|
|
||||||
line-height: 1;
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
user-select: text;
|
|
||||||
width: calc(100% - 8px);
|
|
||||||
resize: vertical;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
|
|
||||||
&:not([readonly]):not(.ace_editor):hover,
|
|
||||||
&:not([readonly]):not(.ace_editor):active,
|
|
||||||
&:not([readonly]):not(.ace_editor):focus {
|
|
||||||
box-shadow: inset 0 0 0 2px var(--fg-light-color);
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
pre {
|
|
||||||
display: grid;
|
|
||||||
}
|
|
||||||
|
|
||||||
pre.ace_editor {
|
|
||||||
font-family: "Roboto Mono", monospace;
|
|
||||||
font-weight: 400;
|
|
||||||
z-index: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
kbd,
|
|
||||||
code,
|
|
||||||
pre {
|
|
||||||
width: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
.select-wrapper {
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
&:after {
|
|
||||||
display: inline-block;
|
|
||||||
position: absolute;
|
|
||||||
pointer-events: none;
|
|
||||||
content: "\e313";
|
|
||||||
font-family: "Material Icons";
|
|
||||||
top: 14px;
|
|
||||||
right: 14px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
select {
|
|
||||||
height: 37px;
|
|
||||||
cursor: pointer;
|
|
||||||
-webkit-appearance: none;
|
|
||||||
-moz-appearance: none;
|
|
||||||
appearance: none;
|
|
||||||
|
|
||||||
&::-ms-expand {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
option {
|
|
||||||
background-color: var(--bg-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="checkbox"] {
|
|
||||||
display: none;
|
|
||||||
|
|
||||||
&,
|
|
||||||
& + label {
|
|
||||||
vertical-align: middle;
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
&:before {
|
|
||||||
content: "\2714";
|
|
||||||
border: 1px solid var(--fg-color);
|
|
||||||
border-radius: 8px;
|
|
||||||
display: inline-flex;
|
|
||||||
height: 16px;
|
|
||||||
width: 16px;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
margin: 8px 8px 8px 0;
|
|
||||||
color: transparent;
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
&:checked + label:before {
|
|
||||||
background-color: var(--ac-color);
|
|
||||||
border-color: var(--ac-color);
|
|
||||||
color: var(--act-color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.error:not(input),
|
|
||||||
.disabled:not(input),
|
|
||||||
[disabled] {
|
|
||||||
background-color: var(--err-color);
|
|
||||||
color: var(--fg-light-color);
|
|
||||||
fill: var(--fg-light-color);
|
|
||||||
cursor: not-allowed;
|
|
||||||
|
|
||||||
&.icon {
|
|
||||||
color: var(--err-color);
|
|
||||||
fill: var(--err-color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
label {
|
|
||||||
padding: 4px;
|
|
||||||
color: var(--fg-light-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
ul,
|
|
||||||
ol {
|
|
||||||
display: flex;
|
|
||||||
margin: 4px 0 4px;
|
|
||||||
padding: 0;
|
|
||||||
list-style-type: none;
|
|
||||||
|
|
||||||
ul,
|
|
||||||
ol {
|
|
||||||
margin: 0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
ul li,
|
|
||||||
ol li {
|
|
||||||
display: inline-flex;
|
|
||||||
flex-direction: column;
|
|
||||||
flex-grow: 1;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.flex-wrap {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: space-between;
|
|
||||||
flex-grow: 1;
|
|
||||||
flex-direction: row;
|
|
||||||
|
|
||||||
* {
|
|
||||||
display: inline-flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.show-on-small-screen {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.show-on-large-screen {
|
|
||||||
display: inline-flex;
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.info-response {
|
|
||||||
color: #ffeb3b;
|
|
||||||
}
|
|
||||||
|
|
||||||
.success-response {
|
|
||||||
color: #4bb543;
|
|
||||||
}
|
|
||||||
|
|
||||||
.redir-response {
|
|
||||||
color: #ff5722;
|
|
||||||
}
|
|
||||||
|
|
||||||
.cl-error-response {
|
|
||||||
color: #a63232;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sv-error-response {
|
|
||||||
color: #b71c1c;
|
|
||||||
}
|
|
||||||
|
|
||||||
.missing-data-response {
|
|
||||||
background-color: var(--err-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.align-left {
|
|
||||||
text-align: left;
|
|
||||||
}
|
|
||||||
|
|
||||||
.align-center {
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.align-right {
|
|
||||||
text-align: right;
|
|
||||||
}
|
|
||||||
|
|
||||||
.mono {
|
|
||||||
font-family: "Roboto Mono", monospace;
|
|
||||||
font-weight: 400;
|
|
||||||
}
|
|
||||||
|
|
||||||
#response-details-wrapper {
|
|
||||||
position: relative;
|
|
||||||
overflow: hidden;
|
|
||||||
border-radius: 8px;
|
|
||||||
|
|
||||||
textarea {
|
|
||||||
margin: 0;
|
|
||||||
width: 100%;
|
|
||||||
line-height: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.covers-response {
|
|
||||||
position: absolute;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
right: 0;
|
|
||||||
bottom: 0;
|
|
||||||
background-color: white;
|
|
||||||
height: 100%;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#send {
|
|
||||||
// #hidden-message {
|
|
||||||
// display: none;
|
|
||||||
// }
|
|
||||||
|
|
||||||
&.show {
|
|
||||||
display: flex;
|
|
||||||
position: fixed;
|
|
||||||
top: 12px;
|
|
||||||
right: 12px;
|
|
||||||
z-index: 2;
|
|
||||||
|
|
||||||
// #hidden-message {
|
|
||||||
// display: block;
|
|
||||||
// margin-left: 4px;
|
|
||||||
// }
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
section {
|
|
||||||
display: flex;
|
|
||||||
flex-wrap: wrap;
|
|
||||||
}
|
|
||||||
|
|
||||||
.tab {
|
|
||||||
width: 100%;
|
|
||||||
order: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="radio"] + label {
|
|
||||||
padding: 8px 16px;
|
|
||||||
border-bottom: 2px solid transparent;
|
|
||||||
cursor: pointer;
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&:active,
|
|
||||||
&:focus {
|
|
||||||
border-color: var(--brd-color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="radio"]:checked + label {
|
|
||||||
border-color: var(--fg-color);
|
|
||||||
color: var(--fg-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
input[type="radio"]:checked + label + .tab {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toasted-container .toasted {
|
|
||||||
justify-content: flex-start !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toasted.info {
|
|
||||||
background-color: var(--ac-color) !important;
|
|
||||||
color: var(--act-color) !important;
|
|
||||||
font-weight: 700 !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toasted.bubble .action {
|
|
||||||
color: inherit !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toasted .action {
|
|
||||||
margin-left: auto !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
.page-columns {
|
|
||||||
display: flex;
|
|
||||||
flex: 1;
|
|
||||||
flex-flow: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inner-left {
|
|
||||||
display: flex;
|
|
||||||
order: 1;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inner-right {
|
|
||||||
display: flex;
|
|
||||||
width: 30%;
|
|
||||||
order: 2;
|
|
||||||
margin-left: 16px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: $responsiveWidth) {
|
|
||||||
.content,
|
|
||||||
.columns {
|
|
||||||
flex-flow: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
.nav-first {
|
|
||||||
position: fixed;
|
|
||||||
top: auto;
|
|
||||||
bottom: 0;
|
|
||||||
height: auto;
|
|
||||||
padding: 0;
|
|
||||||
width: 100%;
|
|
||||||
background-color: var(--bg-color);
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
box-shadow: 0 2px 6px 0 rgba(0, 0, 0, 0.45);
|
|
||||||
}
|
|
||||||
|
|
||||||
nav.primary-nav {
|
|
||||||
flex-flow: row nowrap;
|
|
||||||
overflow: auto;
|
|
||||||
justify-content: space-around;
|
|
||||||
|
|
||||||
a {
|
|
||||||
background-color: transparent;
|
|
||||||
margin: 8px;
|
|
||||||
|
|
||||||
&.nuxt-link-exact-active {
|
|
||||||
background-color: transparent;
|
|
||||||
color: var(--ac-color);
|
|
||||||
fill: var(--ac-color);
|
|
||||||
|
|
||||||
svg {
|
|
||||||
fill: var(--ac-color);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
nav.secondary-nav {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.main {
|
|
||||||
padding: 0 8px 68px;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul,
|
|
||||||
ol {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul li,
|
|
||||||
ol li {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hide-on-small-screen {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
|
|
||||||
.hide-on-large-screen,
|
|
||||||
.show-on-small-screen {
|
|
||||||
display: inline-flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.sticky-inner {
|
|
||||||
position: relative;
|
|
||||||
width: 100%;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inner-left {
|
|
||||||
order: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.inner-right {
|
|
||||||
margin-left: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.toasted-container {
|
|
||||||
margin-bottom: 68px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,107 +0,0 @@
|
|||||||
/**
|
|
||||||
Main Themes:
|
|
||||||
- dark (default)
|
|
||||||
- light
|
|
||||||
- black
|
|
||||||
- auto
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Dark is the default theme variant.
|
|
||||||
@mixin darkTheme {
|
|
||||||
// Background color
|
|
||||||
--bg-color: rgba(32, 33, 36, 1);
|
|
||||||
// Light Background color
|
|
||||||
--bg-light-color: rgba(255, 255, 255, 0.02);
|
|
||||||
// Dark Background color
|
|
||||||
--bg-dark-color: rgba(0, 0, 0, 0.1);
|
|
||||||
// Text color
|
|
||||||
--fg-color: rgba(255, 255, 255, 0.9);
|
|
||||||
// Light Text color
|
|
||||||
--fg-light-color: rgba(255, 255, 255, 0.5);
|
|
||||||
// Border color
|
|
||||||
--brd-color: rgba(255, 255, 255, 0.05);
|
|
||||||
// Error color
|
|
||||||
--err-color: rgba(255, 255, 255, 0.05);
|
|
||||||
// Acent color
|
|
||||||
--ac-color: rgba(80, 250, 123, 1);
|
|
||||||
// Active text color
|
|
||||||
--act-color: rgba(32, 33, 36, 1);
|
|
||||||
// Auto-complete color
|
|
||||||
--atc-color: rgba(32, 33, 36, 1);
|
|
||||||
// Tooltip color
|
|
||||||
--tt-color: rgba(53, 53, 53, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin lightTheme {
|
|
||||||
// Background color
|
|
||||||
--bg-color: rgba(255, 255, 255, 1);
|
|
||||||
// Light Background color
|
|
||||||
--bg-light-color: rgba(0, 0, 0, 0.02);
|
|
||||||
// Dark Background color
|
|
||||||
--bg-dark-color: rgba(0, 0, 0, 0.02);
|
|
||||||
// Text color
|
|
||||||
--fg-color: rgba(0, 0, 0, 0.9);
|
|
||||||
// Light Text color
|
|
||||||
--fg-light-color: rgba(0, 0, 0, 0.6);
|
|
||||||
// Border color
|
|
||||||
--brd-color: rgba(0, 0, 0, 0.1);
|
|
||||||
// Error color
|
|
||||||
--err-color: rgba(0, 0, 0, 0.1);
|
|
||||||
// Acent color
|
|
||||||
--ac-color: rgba(80, 250, 123, 1);
|
|
||||||
// Active text color
|
|
||||||
--act-color: rgba(255, 255, 255, 1);
|
|
||||||
// Auto-complete color
|
|
||||||
--atc-color: rgba(255, 255, 255, 1);
|
|
||||||
// Tooltip color
|
|
||||||
--tt-color: rgba(220, 220, 220, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
@mixin blackTheme {
|
|
||||||
// Background color
|
|
||||||
--bg-color: rgba(0, 0, 0, 1);
|
|
||||||
// Light Background color
|
|
||||||
--bg-light-color: rgba(255, 255, 255, 0.02);
|
|
||||||
// Dark Background color
|
|
||||||
--bg-dark-color: rgba(255, 255, 255, 0.02);
|
|
||||||
// Text color
|
|
||||||
--fg-color: rgba(255, 255, 255, 0.9);
|
|
||||||
// Light Text color
|
|
||||||
--fg-light-color: rgba(255, 255, 255, 0.5);
|
|
||||||
// Border color
|
|
||||||
--brd-color: rgba(255, 255, 255, 0.05);
|
|
||||||
// Error color
|
|
||||||
--err-color: rgba(255, 255, 255, 0.05);
|
|
||||||
// Acent color
|
|
||||||
--ac-color: rgba(80, 250, 123, 1);
|
|
||||||
// Active text color
|
|
||||||
--act-color: rgba(0, 0, 0, 1);
|
|
||||||
// Auto-complete color
|
|
||||||
--atc-color: rgba(0, 0, 0, 1);
|
|
||||||
// Tooltip color
|
|
||||||
--tt-color: rgba(18, 18, 18, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
:root {
|
|
||||||
@include darkTheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
:root.light {
|
|
||||||
@include lightTheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
:root.black {
|
|
||||||
@include blackTheme;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: dark) {
|
|
||||||
:root.auto {
|
|
||||||
@include darkTheme;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (prefers-color-scheme: light) {
|
|
||||||
:root.auto {
|
|
||||||
@include lightTheme;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,226 +0,0 @@
|
|||||||
import * as cookie from "cookie";
|
|
||||||
import * as URL from "url";
|
|
||||||
import * as querystring from "querystring";
|
|
||||||
|
|
||||||
/**
|
|
||||||
* given this: [ 'msg1=value1', 'msg2=value2' ]
|
|
||||||
* output this: 'msg1=value1&msg2=value2'
|
|
||||||
* @param dataArguments
|
|
||||||
*/
|
|
||||||
const joinDataArguments = dataArguments => {
|
|
||||||
let data = "";
|
|
||||||
dataArguments.forEach((argument, i) => {
|
|
||||||
if (i === 0) {
|
|
||||||
data += argument;
|
|
||||||
} else {
|
|
||||||
data += `&${argument}`;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
|
|
||||||
const parseCurlCommand = curlCommand => {
|
|
||||||
let newlineFound = /\r|\n/.exec(curlCommand);
|
|
||||||
if (newlineFound) {
|
|
||||||
// remove newlines
|
|
||||||
curlCommand = curlCommand.replace(/\r|\n/g, "");
|
|
||||||
}
|
|
||||||
// yargs parses -XPOST as separate arguments. just prescreen for it.
|
|
||||||
curlCommand = curlCommand.replace(/ -XPOST/, " -X POST");
|
|
||||||
curlCommand = curlCommand.replace(/ -XGET/, " -X GET");
|
|
||||||
curlCommand = curlCommand.replace(/ -XPUT/, " -X PUT");
|
|
||||||
curlCommand = curlCommand.replace(/ -XPATCH/, " -X PATCH");
|
|
||||||
curlCommand = curlCommand.replace(/ -XDELETE/, " -X DELETE");
|
|
||||||
curlCommand = curlCommand.trim();
|
|
||||||
let parsedArguments = require("yargs-parser")(curlCommand);
|
|
||||||
let cookieString;
|
|
||||||
let cookies;
|
|
||||||
let url = parsedArguments._[1];
|
|
||||||
if (!url) {
|
|
||||||
for (let argName in parsedArguments) {
|
|
||||||
if (typeof parsedArguments[argName] === "string") {
|
|
||||||
if (["http", "www."].includes(parsedArguments[argName])) {
|
|
||||||
url = parsedArguments[argName];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let headers;
|
|
||||||
|
|
||||||
const parseHeaders = headerFieldName => {
|
|
||||||
if (parsedArguments[headerFieldName]) {
|
|
||||||
if (!headers) {
|
|
||||||
headers = {};
|
|
||||||
}
|
|
||||||
if (!Array.isArray(parsedArguments[headerFieldName])) {
|
|
||||||
parsedArguments[headerFieldName] = [parsedArguments[headerFieldName]];
|
|
||||||
}
|
|
||||||
parsedArguments[headerFieldName].forEach(header => {
|
|
||||||
if (header.includes("Cookie")) {
|
|
||||||
// stupid javascript tricks: closure
|
|
||||||
cookieString = header;
|
|
||||||
} else {
|
|
||||||
let colonIndex = header.indexOf(":");
|
|
||||||
let headerName = header.substring(0, colonIndex);
|
|
||||||
let headerValue = header.substring(colonIndex + 1).trim();
|
|
||||||
headers[headerName] = headerValue;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
parseHeaders("H");
|
|
||||||
parseHeaders("header");
|
|
||||||
if (parsedArguments.A) {
|
|
||||||
if (!headers) {
|
|
||||||
headers = [];
|
|
||||||
}
|
|
||||||
headers["User-Agent"] = parsedArguments.A;
|
|
||||||
} else if (parsedArguments["user-agent"]) {
|
|
||||||
if (!headers) {
|
|
||||||
headers = [];
|
|
||||||
}
|
|
||||||
headers["User-Agent"] = parsedArguments["user-agent"];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (parsedArguments.b) {
|
|
||||||
cookieString = parsedArguments.b;
|
|
||||||
}
|
|
||||||
if (parsedArguments.cookie) {
|
|
||||||
cookieString = parsedArguments.cookie;
|
|
||||||
}
|
|
||||||
let multipartUploads;
|
|
||||||
if (parsedArguments.F) {
|
|
||||||
multipartUploads = {};
|
|
||||||
if (!Array.isArray(parsedArguments.F)) {
|
|
||||||
parsedArguments.F = [parsedArguments.F];
|
|
||||||
}
|
|
||||||
parsedArguments.F.forEach(multipartArgument => {
|
|
||||||
// input looks like key=value. value could be json or a file path prepended with an @
|
|
||||||
const [key, value] = multipartArgument.split("=", 2);
|
|
||||||
multipartUploads[key] = value;
|
|
||||||
});
|
|
||||||
}
|
|
||||||
if (cookieString) {
|
|
||||||
const cookieParseOptions = {
|
|
||||||
decode: s => s
|
|
||||||
};
|
|
||||||
// separate out cookie headers into separate data structure
|
|
||||||
// note: cookie is case insensitive
|
|
||||||
cookies = cookie.parse(
|
|
||||||
cookieString.replace(/^Cookie: /gi, ""),
|
|
||||||
cookieParseOptions
|
|
||||||
);
|
|
||||||
}
|
|
||||||
let method;
|
|
||||||
if (parsedArguments.X === "POST") {
|
|
||||||
method = "post";
|
|
||||||
} else if (parsedArguments.X === "PUT" || parsedArguments["T"]) {
|
|
||||||
method = "put";
|
|
||||||
} else if (parsedArguments.X === "PATCH") {
|
|
||||||
method = "patch";
|
|
||||||
} else if (parsedArguments.X === "DELETE") {
|
|
||||||
method = "delete";
|
|
||||||
} else if (parsedArguments.X === "OPTIONS") {
|
|
||||||
method = "options";
|
|
||||||
} else if (
|
|
||||||
(parsedArguments["d"] ||
|
|
||||||
parsedArguments["data"] ||
|
|
||||||
parsedArguments["data-ascii"] ||
|
|
||||||
parsedArguments["data-binary"] ||
|
|
||||||
parsedArguments["F"] ||
|
|
||||||
parsedArguments["form"]) &&
|
|
||||||
!(parsedArguments["G"] || parsedArguments["get"])
|
|
||||||
) {
|
|
||||||
method = "post";
|
|
||||||
} else if (parsedArguments["I"] || parsedArguments["head"]) {
|
|
||||||
method = "head";
|
|
||||||
} else {
|
|
||||||
method = "get";
|
|
||||||
}
|
|
||||||
|
|
||||||
let compressed = !!parsedArguments.compressed;
|
|
||||||
let urlObject = URL.parse(url); // eslint-disable-line
|
|
||||||
|
|
||||||
// if GET request with data, convert data to query string
|
|
||||||
// NB: the -G flag does not change the http verb. It just moves the data into the url.
|
|
||||||
if (parsedArguments["G"] || parsedArguments["get"]) {
|
|
||||||
urlObject.query = urlObject.query ? urlObject.query : "";
|
|
||||||
let option =
|
|
||||||
"d" in parsedArguments ? "d" : "data" in parsedArguments ? "data" : null;
|
|
||||||
if (option) {
|
|
||||||
let urlQueryString = "";
|
|
||||||
|
|
||||||
if (!url.includes("?")) {
|
|
||||||
url += "?";
|
|
||||||
} else {
|
|
||||||
urlQueryString += "&";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (typeof parsedArguments[option] === "object") {
|
|
||||||
urlQueryString += parsedArguments[option].join("&");
|
|
||||||
} else {
|
|
||||||
urlQueryString += parsedArguments[option];
|
|
||||||
}
|
|
||||||
urlObject.query += urlQueryString;
|
|
||||||
url += urlQueryString;
|
|
||||||
delete parsedArguments[option];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
let query = querystring.parse(urlObject.query, null, null, {
|
|
||||||
maxKeys: 10000
|
|
||||||
});
|
|
||||||
|
|
||||||
urlObject.search = null; // Clean out the search/query portion.
|
|
||||||
const request = {
|
|
||||||
url,
|
|
||||||
urlWithoutQuery: URL.format(urlObject)
|
|
||||||
};
|
|
||||||
if (compressed) {
|
|
||||||
request["compressed"] = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (Object.keys(query).length > 0) {
|
|
||||||
request.query = query;
|
|
||||||
}
|
|
||||||
if (headers) {
|
|
||||||
request.headers = headers;
|
|
||||||
}
|
|
||||||
request["method"] = method;
|
|
||||||
|
|
||||||
if (cookies) {
|
|
||||||
request.cookies = cookies;
|
|
||||||
request.cookieString = cookieString.replace("Cookie: ", "");
|
|
||||||
}
|
|
||||||
if (multipartUploads) {
|
|
||||||
request.multipartUploads = multipartUploads;
|
|
||||||
}
|
|
||||||
if (parsedArguments.data) {
|
|
||||||
request.data = parsedArguments.data;
|
|
||||||
} else if (parsedArguments["data-binary"]) {
|
|
||||||
request.data = parsedArguments["data-binary"];
|
|
||||||
request.isDataBinary = true;
|
|
||||||
} else if (parsedArguments["d"]) {
|
|
||||||
request.data = parsedArguments["d"];
|
|
||||||
} else if (parsedArguments["data-ascii"]) {
|
|
||||||
request.data = parsedArguments["data-ascii"];
|
|
||||||
}
|
|
||||||
|
|
||||||
if (parsedArguments["u"]) {
|
|
||||||
request.auth = parsedArguments["u"];
|
|
||||||
}
|
|
||||||
if (parsedArguments["user"]) {
|
|
||||||
request.auth = parsedArguments["user"];
|
|
||||||
}
|
|
||||||
if (Array.isArray(request.data)) {
|
|
||||||
request.dataArray = request.data;
|
|
||||||
request.data = joinDataArguments(request.data);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (parsedArguments["k"] || parsedArguments["insecure"]) {
|
|
||||||
request.insecure = true;
|
|
||||||
}
|
|
||||||
return request;
|
|
||||||
};
|
|
||||||
|
|
||||||
export default parseCurlCommand;
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
export default () => {
|
|
||||||
//*** Determine whether or not the PWA has been installed. ***//
|
|
||||||
|
|
||||||
// Step 1: Check local storage
|
|
||||||
let pwaInstalled = localStorage.getItem("pwaInstalled") === "yes";
|
|
||||||
|
|
||||||
// Step 2: Check if the display-mode is standalone. (Only permitted for PWAs.)
|
|
||||||
if (
|
|
||||||
!pwaInstalled &&
|
|
||||||
window.matchMedia("(display-mode: standalone)").matches
|
|
||||||
) {
|
|
||||||
localStorage.setItem("pwaInstalled", "yes");
|
|
||||||
pwaInstalled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Step 3: Check if the navigator is in standalone mode. (Again, only permitted for PWAs.)
|
|
||||||
if (!pwaInstalled && window.navigator.standalone === true) {
|
|
||||||
localStorage.setItem("pwaInstalled", "yes");
|
|
||||||
pwaInstalled = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
//*** If the PWA has not been installed, show the install PWA prompt.. ***//
|
|
||||||
let deferredPrompt = null;
|
|
||||||
window.addEventListener("beforeinstallprompt", event => {
|
|
||||||
deferredPrompt = event;
|
|
||||||
|
|
||||||
// Show the install button if the prompt appeared.
|
|
||||||
if (!pwaInstalled) {
|
|
||||||
document.querySelector("#installPWA").style.display = "inline-flex";
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
// When the app is installed, remove install prompts.
|
|
||||||
window.addEventListener("appinstalled", event => {
|
|
||||||
localStorage.setItem("pwaInstalled", "yes");
|
|
||||||
pwaInstalled = true;
|
|
||||||
document.getElementById("installPWA").style.display = "none";
|
|
||||||
});
|
|
||||||
|
|
||||||
// When the app is uninstalled, add the prompts back
|
|
||||||
return async () => {
|
|
||||||
if (deferredPrompt) {
|
|
||||||
deferredPrompt.prompt();
|
|
||||||
let outcome = await deferredPrompt.userChoice;
|
|
||||||
|
|
||||||
if (outcome === "accepted") {
|
|
||||||
console.log("Postwoman was installed successfully.");
|
|
||||||
} else {
|
|
||||||
console.log(
|
|
||||||
"Postwoman could not be installed. (Installation rejected by user.)"
|
|
||||||
);
|
|
||||||
}
|
|
||||||
deferredPrompt = null;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
};
|
|
||||||
26
babel.config.js
Normal file
26
babel.config.js
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
function isBabelLoader(caller) {
|
||||||
|
return caller && caller.name === "babel-loader"
|
||||||
|
}
|
||||||
|
|
||||||
|
module.exports = function (api) {
|
||||||
|
if (api.env("test") && !api.caller(isBabelLoader)) {
|
||||||
|
return {
|
||||||
|
plugins: [
|
||||||
|
"@babel/plugin-proposal-class-properties",
|
||||||
|
"@babel/plugin-proposal-nullish-coalescing-operator",
|
||||||
|
"@babel/plugin-proposal-optional-chaining",
|
||||||
|
],
|
||||||
|
presets: [
|
||||||
|
[
|
||||||
|
"@babel/preset-env",
|
||||||
|
{
|
||||||
|
targets: {
|
||||||
|
node: "current",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
],
|
||||||
|
],
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return {}
|
||||||
|
}
|
||||||
63
build.js
63
build.js
@@ -1,63 +0,0 @@
|
|||||||
const axios = require("axios");
|
|
||||||
const fs = require("fs");
|
|
||||||
const { spawnSync } = require("child_process");
|
|
||||||
const runCommand = (command, args) =>
|
|
||||||
spawnSync(command, args)
|
|
||||||
.stdout.toString()
|
|
||||||
.replace(/\n/g, "");
|
|
||||||
|
|
||||||
const FAIL_ON_ERROR = false;
|
|
||||||
const PW_BUILD_DATA_DIR = "./.postwoman";
|
|
||||||
const IS_DEV_MODE = process.argv.includes("--dev");
|
|
||||||
|
|
||||||
try {
|
|
||||||
(async () => {
|
|
||||||
// Create the build data directory if it does not exist.
|
|
||||||
if (!fs.existsSync(PW_BUILD_DATA_DIR)) {
|
|
||||||
fs.mkdirSync(PW_BUILD_DATA_DIR);
|
|
||||||
}
|
|
||||||
|
|
||||||
let version = {};
|
|
||||||
// Get the current version name as the tag from Git.
|
|
||||||
version.name =
|
|
||||||
process.env.TRAVIS_TAG ||
|
|
||||||
runCommand("git", ["tag --sort=committerdate | tail -1"]);
|
|
||||||
|
|
||||||
// FALLBACK: If version.name was unset, let's grab it from GitHub.
|
|
||||||
if (!version.name) {
|
|
||||||
version.name = (
|
|
||||||
await axios
|
|
||||||
.get("https://api.github.com/repos/liyasthomas/postwoman/releases")
|
|
||||||
// If we can't get it from GitHub, we'll resort to getting it from package.json
|
|
||||||
.catch(ex => ({
|
|
||||||
data: [
|
|
||||||
{
|
|
||||||
tag_name: require("./package.json").version
|
|
||||||
}
|
|
||||||
]
|
|
||||||
}))
|
|
||||||
).data[0]["tag_name"];
|
|
||||||
}
|
|
||||||
|
|
||||||
// Get the current version hash as the short hash from Git.
|
|
||||||
version.hash = runCommand("git", ["rev-parse", "--short", "HEAD"]);
|
|
||||||
// Get the 'variant' name as the branch, if it's not master.
|
|
||||||
version.variant =
|
|
||||||
process.env.TRAVIS_BRANCH ||
|
|
||||||
runCommand("git", ["branch"])
|
|
||||||
.split("* ")[1]
|
|
||||||
.split(" ")[0] + (IS_DEV_MODE ? " - DEV MODE" : "");
|
|
||||||
if (["", "master"].includes(version.variant)) {
|
|
||||||
delete version.variant;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Write version data into a file
|
|
||||||
fs.writeFileSync(
|
|
||||||
`${PW_BUILD_DATA_DIR}/version.json`,
|
|
||||||
JSON.stringify(version)
|
|
||||||
);
|
|
||||||
})();
|
|
||||||
} catch (ex) {
|
|
||||||
console.error(ex);
|
|
||||||
process.exit(FAIL_ON_ERROR ? 1 : 0);
|
|
||||||
}
|
|
||||||
3
commitlint.config.js
Normal file
3
commitlint.config.js
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
module.exports = {
|
||||||
|
extends: ["@commitlint/config-conventional"],
|
||||||
|
}
|
||||||
@@ -1,92 +0,0 @@
|
|||||||
<template>
|
|
||||||
<pre ref="editor"></pre>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
const DEFAULT_THEME = "twilight";
|
|
||||||
|
|
||||||
import ace from "ace-builds";
|
|
||||||
import "ace-builds/webpack-resolver";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
value: {
|
|
||||||
type: String,
|
|
||||||
default: ""
|
|
||||||
},
|
|
||||||
theme: {
|
|
||||||
type: String,
|
|
||||||
required: false
|
|
||||||
},
|
|
||||||
lang: {
|
|
||||||
type: String,
|
|
||||||
default: "json"
|
|
||||||
},
|
|
||||||
options: {
|
|
||||||
type: Object,
|
|
||||||
default: {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
editor: null,
|
|
||||||
cacheValue: ""
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
watch: {
|
|
||||||
value(value) {
|
|
||||||
if (value !== this.cacheValue) {
|
|
||||||
this.editor.session.setValue(value, 1);
|
|
||||||
this.cacheValue = value;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
theme() {
|
|
||||||
this.editor.setTheme("ace/theme/" + this.defineTheme());
|
|
||||||
},
|
|
||||||
lang(value) {
|
|
||||||
this.editor.getSession().setMode("ace/mode/" + value);
|
|
||||||
},
|
|
||||||
options(value) {
|
|
||||||
this.editor.setOptions(value);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
mounted() {
|
|
||||||
const editor = ace.edit(this.$refs.editor, {
|
|
||||||
theme: "ace/theme/" + this.defineTheme(),
|
|
||||||
mode: "ace/mode/" + this.lang,
|
|
||||||
...this.options
|
|
||||||
});
|
|
||||||
|
|
||||||
if (this.value) editor.setValue(this.value, 1);
|
|
||||||
|
|
||||||
this.editor = editor;
|
|
||||||
this.cacheValue = this.value;
|
|
||||||
|
|
||||||
editor.on("change", () => {
|
|
||||||
const content = editor.getValue();
|
|
||||||
this.$emit("input", content);
|
|
||||||
this.cacheValue = content;
|
|
||||||
});
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
defineTheme() {
|
|
||||||
if (this.theme) {
|
|
||||||
return this.theme;
|
|
||||||
} else {
|
|
||||||
return (
|
|
||||||
this.$store.state.postwoman.settings.THEME_ACE_EDITOR || DEFAULT_THEME
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
beforeDestroy() {
|
|
||||||
this.editor.destroy();
|
|
||||||
this.editor.container.remove();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,219 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="autocomplete-wrapper">
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
:placeholder="placeholder"
|
|
||||||
v-model="text"
|
|
||||||
@input="updateSuggestions"
|
|
||||||
@keyup="updateSuggestions"
|
|
||||||
@click="updateSuggestions"
|
|
||||||
@keydown="handleKeystroke"
|
|
||||||
ref="acInput"
|
|
||||||
:spellcheck="spellcheck"
|
|
||||||
:autocapitalize="spellcheck"
|
|
||||||
:autocorrect="spellcheck"
|
|
||||||
/>
|
|
||||||
<ul
|
|
||||||
class="suggestions"
|
|
||||||
v-if="suggestions.length > 0 && suggestionsVisible"
|
|
||||||
:style="{ transform: `translate(${suggestionsOffsetLeft}px, 0)` }"
|
|
||||||
>
|
|
||||||
<li
|
|
||||||
v-for="(suggestion, index) in suggestions"
|
|
||||||
@click.prevent="forceSuggestion(suggestion)"
|
|
||||||
:class="{ active: currentSuggestionIndex === index }"
|
|
||||||
:key="index"
|
|
||||||
>
|
|
||||||
{{ suggestion }}
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.autocomplete-wrapper {
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
input:focus + ul.suggestions,
|
|
||||||
ul.suggestions:hover {
|
|
||||||
display: block;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul.suggestions {
|
|
||||||
display: none;
|
|
||||||
background-color: var(--atc-color);
|
|
||||||
position: absolute;
|
|
||||||
top: calc(100% - 4px);
|
|
||||||
margin: 0 4px;
|
|
||||||
left: 0;
|
|
||||||
padding: 0;
|
|
||||||
border-radius: 0 0 8px 8px;
|
|
||||||
z-index: 9999;
|
|
||||||
transition: transform 0.2s ease-out;
|
|
||||||
box-shadow: 0 5px 30px rgba(black, 0.1);
|
|
||||||
|
|
||||||
li {
|
|
||||||
width: 100%;
|
|
||||||
display: block;
|
|
||||||
padding: 8px 16px;
|
|
||||||
font-size: 16px;
|
|
||||||
font-family: "Roboto Mono", monospace;
|
|
||||||
font-weight: 400;
|
|
||||||
|
|
||||||
&:last-child {
|
|
||||||
border-radius: 0 0 8px 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
&:hover,
|
|
||||||
&.active {
|
|
||||||
background-color: var(--ac-color);
|
|
||||||
color: var(--act-color);
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
const KEY_TAB = 9;
|
|
||||||
const KEY_ESC = 27;
|
|
||||||
|
|
||||||
const KEY_ARROW_UP = 38;
|
|
||||||
const KEY_ARROW_DOWN = 40;
|
|
||||||
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
spellcheck: {
|
|
||||||
type: Boolean,
|
|
||||||
default: true,
|
|
||||||
required: false
|
|
||||||
},
|
|
||||||
|
|
||||||
placeholder: {
|
|
||||||
type: String,
|
|
||||||
default: "",
|
|
||||||
required: false
|
|
||||||
},
|
|
||||||
|
|
||||||
source: {
|
|
||||||
type: Array,
|
|
||||||
required: true
|
|
||||||
},
|
|
||||||
|
|
||||||
value: {
|
|
||||||
type: String,
|
|
||||||
default: "",
|
|
||||||
required: false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
watch: {
|
|
||||||
text() {
|
|
||||||
this.$emit("input", this.text);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
text: this.value,
|
|
||||||
selectionStart: 0,
|
|
||||||
suggestionsOffsetLeft: 0,
|
|
||||||
currentSuggestionIndex: -1,
|
|
||||||
suggestionsVisible: false
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
updateSuggestions(event) {
|
|
||||||
// Hide suggestions if ESC pressed.
|
|
||||||
if (event.which && event.which === KEY_ESC) {
|
|
||||||
event.preventDefault();
|
|
||||||
this.suggestionsVisible = false;
|
|
||||||
this.currentSuggestionIndex = -1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
// As suggestions is a reactive property, this implicitly
|
|
||||||
// causes suggestions to update.
|
|
||||||
this.selectionStart = this.$refs.acInput.selectionStart;
|
|
||||||
this.suggestionsOffsetLeft = 12 * this.selectionStart;
|
|
||||||
this.suggestionsVisible = true;
|
|
||||||
},
|
|
||||||
|
|
||||||
forceSuggestion(text) {
|
|
||||||
let input = this.text.substring(0, this.selectionStart);
|
|
||||||
this.text = input + text;
|
|
||||||
|
|
||||||
this.selectionStart = this.text.length;
|
|
||||||
this.suggestionsVisible = true;
|
|
||||||
this.currentSuggestionIndex = -1;
|
|
||||||
},
|
|
||||||
|
|
||||||
handleKeystroke(event) {
|
|
||||||
switch (event.which) {
|
|
||||||
case KEY_ARROW_UP:
|
|
||||||
event.preventDefault();
|
|
||||||
this.currentSuggestionIndex =
|
|
||||||
this.currentSuggestionIndex - 1 >= 0
|
|
||||||
? this.currentSuggestionIndex - 1
|
|
||||||
: 0;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case KEY_ARROW_DOWN:
|
|
||||||
event.preventDefault();
|
|
||||||
this.currentSuggestionIndex =
|
|
||||||
this.currentSuggestionIndex < this.suggestions.length - 1
|
|
||||||
? this.currentSuggestionIndex + 1
|
|
||||||
: this.suggestions.length - 1;
|
|
||||||
break;
|
|
||||||
|
|
||||||
case KEY_TAB:
|
|
||||||
event.preventDefault();
|
|
||||||
let activeSuggestion = this.suggestions[
|
|
||||||
this.currentSuggestionIndex >= 0 ? this.currentSuggestionIndex : 0
|
|
||||||
];
|
|
||||||
if (activeSuggestion) {
|
|
||||||
let input = this.text.substring(0, this.selectionStart);
|
|
||||||
this.text = input + activeSuggestion;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
computed: {
|
|
||||||
/**
|
|
||||||
* Gets the suggestions list to be displayed under the input box.
|
|
||||||
*
|
|
||||||
* @returns {default.props.source|{type, required}}
|
|
||||||
*/
|
|
||||||
suggestions() {
|
|
||||||
let input = this.text.substring(0, this.selectionStart);
|
|
||||||
|
|
||||||
return (
|
|
||||||
this.source
|
|
||||||
.filter(entry => {
|
|
||||||
return (
|
|
||||||
entry.toLowerCase().startsWith(input.toLowerCase()) &&
|
|
||||||
input.toLowerCase() !== entry.toLowerCase()
|
|
||||||
);
|
|
||||||
})
|
|
||||||
// Cut off the part that's already been typed.
|
|
||||||
.map(entry => entry.substring(this.selectionStart))
|
|
||||||
// We only want the top 6 suggestions.
|
|
||||||
.slice(0, 6)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
mounted() {
|
|
||||||
this.updateSuggestions({
|
|
||||||
target: this.$refs.acInput
|
|
||||||
});
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,73 +0,0 @@
|
|||||||
<template>
|
|
||||||
<modal v-if="show" @close="hideModal">
|
|
||||||
<div slot="header">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<h3 class="title">{{ $t("new_collection") }}</h3>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
<i class="material-icons">close</i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="body">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
v-model="name"
|
|
||||||
:placeholder="$t('my_new_collection')"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="footer">
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<span></span>
|
|
||||||
<span>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
{{ $t("cancel") }}
|
|
||||||
</button>
|
|
||||||
<button class="icon primary" @click="addNewCollection">
|
|
||||||
{{ $t("save") }}
|
|
||||||
</button>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</modal>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
show: Boolean
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
modal: () => import("../../components/modal")
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
name: undefined
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
addNewCollection() {
|
|
||||||
if (!this.$data.name) {
|
|
||||||
this.$toast.info("Please provide a valid name for the collection");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
this.$store.commit("postwoman/addNewCollection", {
|
|
||||||
name: this.$data.name
|
|
||||||
});
|
|
||||||
this.$emit("hide-modal");
|
|
||||||
},
|
|
||||||
hideModal() {
|
|
||||||
this.$emit("hide-modal");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,72 +0,0 @@
|
|||||||
<template>
|
|
||||||
<modal v-if="show" @close="show = false">
|
|
||||||
<div slot="header">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<h3 class="title">{{ $t("new_folder") }}</h3>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
<i class="material-icons">close</i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="body">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
v-model="name"
|
|
||||||
:placeholder="$t('my_new_folder')"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="footer">
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<span></span>
|
|
||||||
<span>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
{{ $t("cancel") }}
|
|
||||||
</button>
|
|
||||||
<button class="icon primary" @click="addNewFolder">
|
|
||||||
{{ $t("save") }}
|
|
||||||
</button>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</modal>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
show: Boolean,
|
|
||||||
collection: Object,
|
|
||||||
collectionIndex: Number
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
modal: () => import("../../components/modal")
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
name: undefined
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
addNewFolder() {
|
|
||||||
this.$store.commit("postwoman/addNewFolder", {
|
|
||||||
folder: { name: this.$data.name },
|
|
||||||
collectionIndex: this.$props.collectionIndex
|
|
||||||
});
|
|
||||||
this.hideModal();
|
|
||||||
},
|
|
||||||
hideModal() {
|
|
||||||
this.$emit("hide-modal");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,128 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="toggleShowChildren">
|
|
||||||
<i class="material-icons" v-show="!showChildren">arrow_right</i>
|
|
||||||
<i class="material-icons" v-show="showChildren">arrow_drop_down</i>
|
|
||||||
<i class="material-icons">folder</i>
|
|
||||||
<span>{{ collection.name }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<v-popover>
|
|
||||||
<button class="tooltip-target icon" v-tooltip="$t('more')">
|
|
||||||
<i class="material-icons">more_vert</i>
|
|
||||||
</button>
|
|
||||||
<template slot="popover">
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="$emit('add-folder')" v-close-popover>
|
|
||||||
<i class="material-icons">create_new_folder</i>
|
|
||||||
<span>{{ $t("new_folder") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
@click="$emit('edit-collection')"
|
|
||||||
v-close-popover
|
|
||||||
>
|
|
||||||
<i class="material-icons">create</i>
|
|
||||||
<span>{{ $t("edit") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="removeCollection" v-close-popover>
|
|
||||||
<i class="material-icons">delete</i>
|
|
||||||
<span>{{ $t("delete") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</v-popover>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div v-show="showChildren">
|
|
||||||
<ul>
|
|
||||||
<li v-for="(folder, index) in collection.folders" :key="folder.name">
|
|
||||||
<folder
|
|
||||||
:folder="folder"
|
|
||||||
:folderIndex="index"
|
|
||||||
:collection-index="collectionIndex"
|
|
||||||
@edit-folder="editFolder(collectionIndex, folder, index)"
|
|
||||||
@edit-request="$emit('edit-request', $event)"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
<li
|
|
||||||
v-if="
|
|
||||||
collection.folders.length === 0 && collection.requests.length === 0
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<label>{{ $t("collection_empty") }}</label>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<ul>
|
|
||||||
<li v-for="(request, index) in collection.requests" :key="index">
|
|
||||||
<request
|
|
||||||
:request="request"
|
|
||||||
:collection-index="collectionIndex"
|
|
||||||
:folder-index="-1"
|
|
||||||
:request-index="index"
|
|
||||||
@edit-request="
|
|
||||||
$emit('edit-request', {
|
|
||||||
request,
|
|
||||||
collectionIndex,
|
|
||||||
folderIndex: undefined,
|
|
||||||
requestIndex: index
|
|
||||||
})
|
|
||||||
"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
ul {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul li {
|
|
||||||
display: flex;
|
|
||||||
margin-left: 32px;
|
|
||||||
border-left: 1px solid var(--brd-color);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
folder: () => import("./folder"),
|
|
||||||
request: () => import("./request")
|
|
||||||
},
|
|
||||||
props: {
|
|
||||||
collectionIndex: Number,
|
|
||||||
collection: Object
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
showChildren: false,
|
|
||||||
selectedFolder: {}
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
toggleShowChildren() {
|
|
||||||
this.showChildren = !this.showChildren;
|
|
||||||
},
|
|
||||||
removeCollection() {
|
|
||||||
if (!confirm("Are you sure you want to remove this Collection?")) return;
|
|
||||||
this.$store.commit("postwoman/removeCollection", {
|
|
||||||
collectionIndex: this.collectionIndex
|
|
||||||
});
|
|
||||||
},
|
|
||||||
editFolder(collectionIndex, folder, folderIndex) {
|
|
||||||
this.$emit("edit-folder", { collectionIndex, folder, folderIndex });
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
<template>
|
|
||||||
<modal v-if="show" @close="hideModal">
|
|
||||||
<div slot="header">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<h3 class="title">{{ $t("edit_collection") }}</h3>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
<i class="material-icons">close</i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="body">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
v-model="name"
|
|
||||||
:placeholder="editingCollection.name"
|
|
||||||
@keyup.enter="saveCollection"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="footer">
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<span></span>
|
|
||||||
<span>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
{{ $t("cancel") }}
|
|
||||||
</button>
|
|
||||||
<button class="icon primary" @click="saveCollection">
|
|
||||||
{{ $t("save") }}
|
|
||||||
</button>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</modal>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
show: Boolean,
|
|
||||||
editingCollection: Object,
|
|
||||||
editingCollectionIndex: Number
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
modal: () => import("../../components/modal")
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
name: undefined
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
saveCollection() {
|
|
||||||
if (!this.$data.name) {
|
|
||||||
this.$toast.info("Please provide a valid name for the collection");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
const collectionUpdated = {
|
|
||||||
...this.$props.editingCollection,
|
|
||||||
name: this.$data.name
|
|
||||||
};
|
|
||||||
this.$store.commit("postwoman/editCollection", {
|
|
||||||
collection: collectionUpdated,
|
|
||||||
collectionIndex: this.$props.editingCollectionIndex
|
|
||||||
});
|
|
||||||
this.$emit("hide-modal");
|
|
||||||
},
|
|
||||||
hideModal() {
|
|
||||||
this.$emit("hide-modal");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
<template>
|
|
||||||
<modal v-if="show" @close="show = false">
|
|
||||||
<div slot="header">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<h3 class="title">{{ $t("edit_folder") }}</h3>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
<i class="material-icons">close</i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="body">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
v-model="name"
|
|
||||||
:placeholder="folder.name"
|
|
||||||
@keyup.enter="editFolder"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="footer">
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<span></span>
|
|
||||||
<span>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
{{ $t("cancel") }}
|
|
||||||
</button>
|
|
||||||
<button class="icon primary" @click="editFolder">
|
|
||||||
{{ $t("save") }}
|
|
||||||
</button>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</modal>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
show: Boolean,
|
|
||||||
collection: Object,
|
|
||||||
collectionIndex: Number,
|
|
||||||
folder: Object,
|
|
||||||
folderIndex: Number
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
modal: () => import("../../components/modal")
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
name: undefined
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
editFolder() {
|
|
||||||
this.$store.commit("postwoman/editFolder", {
|
|
||||||
collectionIndex: this.$props.collectionIndex,
|
|
||||||
folder: { ...this.$props.folder, name: this.$data.name },
|
|
||||||
folderIndex: this.$props.folderIndex
|
|
||||||
});
|
|
||||||
this.hideModal();
|
|
||||||
},
|
|
||||||
hideModal() {
|
|
||||||
this.$emit("hide-modal");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,160 +0,0 @@
|
|||||||
<template>
|
|
||||||
<modal v-if="show" @close="hideModal">
|
|
||||||
<div slot="header">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<h3 class="title">{{ $t("edit_request") }}</h3>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
<i class="material-icons">close</i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="body">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<label for="selectLabel">{{ $t("label") }}</label>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
id="selectLabel"
|
|
||||||
v-model="requestUpdateData.name"
|
|
||||||
@keyup.enter="saveRequest"
|
|
||||||
:placeholder="request.name"
|
|
||||||
/>
|
|
||||||
<label for="selectCollection">{{ $t("collection") }}</label>
|
|
||||||
<span class="select-wrapper">
|
|
||||||
<select
|
|
||||||
type="text"
|
|
||||||
id="selectCollection"
|
|
||||||
v-model="requestUpdateData.collectionIndex"
|
|
||||||
>
|
|
||||||
<option
|
|
||||||
:key="undefined"
|
|
||||||
:value="undefined"
|
|
||||||
hidden
|
|
||||||
disabled
|
|
||||||
selected
|
|
||||||
>{{ $t("current_collection") }}</option
|
|
||||||
>
|
|
||||||
<option
|
|
||||||
v-for="(collection, index) in $store.state.postwoman
|
|
||||||
.collections"
|
|
||||||
:key="index"
|
|
||||||
:value="index"
|
|
||||||
>
|
|
||||||
{{ collection.name }}
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
</span>
|
|
||||||
<label for="selectFolder">{{ $t("folder") }}</label>
|
|
||||||
<span class="select-wrapper">
|
|
||||||
<select
|
|
||||||
type="text"
|
|
||||||
id="selectFolder"
|
|
||||||
v-model="requestUpdateData.folderIndex"
|
|
||||||
>
|
|
||||||
<option :key="undefined" :value="undefined">/</option>
|
|
||||||
<option
|
|
||||||
v-for="(folder, index) in folders"
|
|
||||||
:key="index"
|
|
||||||
:value="index"
|
|
||||||
>
|
|
||||||
{{ folder.name }}
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
</span>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="footer">
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<span></span>
|
|
||||||
<span>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
{{ $t("cancel") }}
|
|
||||||
</button>
|
|
||||||
<button class="icon primary" @click="saveRequest">
|
|
||||||
{{ $t("save") }}
|
|
||||||
</button>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</modal>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
show: Boolean,
|
|
||||||
collectionIndex: Number,
|
|
||||||
folderIndex: Number,
|
|
||||||
request: Object,
|
|
||||||
requestIndex: Number
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
modal: () => import("../../components/modal")
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
requestUpdateData: {
|
|
||||||
name: undefined,
|
|
||||||
collectionIndex: undefined,
|
|
||||||
folderIndex: undefined
|
|
||||||
}
|
|
||||||
};
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
"requestUpdateData.collectionIndex": function resetFolderIndex() {
|
|
||||||
// if user choosen some folder, than selected other collection, which doesn't have any folders
|
|
||||||
// than `requestUpdateData.folderIndex` won't be reseted
|
|
||||||
this.$data.requestUpdateData.folderIndex = undefined;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
folders() {
|
|
||||||
const userSelectedAnyCollection =
|
|
||||||
this.$data.requestUpdateData.collectionIndex !== undefined;
|
|
||||||
if (!userSelectedAnyCollection) return [];
|
|
||||||
|
|
||||||
return this.$store.state.postwoman.collections[
|
|
||||||
this.$data.requestUpdateData.collectionIndex
|
|
||||||
].folders;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
saveRequest() {
|
|
||||||
const userSelectedAnyCollection =
|
|
||||||
this.$data.requestUpdateData.collectionIndex !== undefined;
|
|
||||||
|
|
||||||
const requestUpdated = {
|
|
||||||
...this.$props.request,
|
|
||||||
name: this.$data.requestUpdateData.name || this.$props.request.name,
|
|
||||||
collection: userSelectedAnyCollection
|
|
||||||
? this.$data.requestUpdateData.collectionIndex
|
|
||||||
: this.$props.collectionIndex,
|
|
||||||
folder: this.$data.requestUpdateData.folderIndex
|
|
||||||
};
|
|
||||||
|
|
||||||
// pass data separately to don't depend on request's collection, folder fields
|
|
||||||
// probably, they should be deprecated because they don't describe request itself
|
|
||||||
this.$store.commit("postwoman/editRequest", {
|
|
||||||
requestOldCollectionIndex: this.$props.collectionIndex,
|
|
||||||
requestOldFolderIndex: this.$props.folderIndex,
|
|
||||||
requestOldIndex: this.$props.requestIndex,
|
|
||||||
requestNew: requestUpdated,
|
|
||||||
requestNewCollectionIndex: requestUpdated.collection,
|
|
||||||
requestNewFolderIndex: requestUpdated.folder
|
|
||||||
});
|
|
||||||
|
|
||||||
this.hideModal();
|
|
||||||
},
|
|
||||||
hideModal() {
|
|
||||||
this.$emit("hide-modal");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,106 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="toggleShowChildren">
|
|
||||||
<i class="material-icons" v-show="!showChildren">arrow_right</i>
|
|
||||||
<i class="material-icons" v-show="showChildren">arrow_drop_down</i>
|
|
||||||
<i class="material-icons">folder_open</i>
|
|
||||||
<span>{{ folder.name }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<v-popover>
|
|
||||||
<button class="tooltip-target icon" v-tooltip="$t('more')">
|
|
||||||
<i class="material-icons">more_vert</i>
|
|
||||||
</button>
|
|
||||||
<template slot="popover">
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="editFolder" v-close-popover>
|
|
||||||
<i class="material-icons">edit</i>
|
|
||||||
<span>{{ $t("edit") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="removeFolder" v-close-popover>
|
|
||||||
<i class="material-icons">delete</i>
|
|
||||||
<span>{{ $t("delete") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</v-popover>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div v-show="showChildren">
|
|
||||||
<ul>
|
|
||||||
<li v-for="(request, index) in folder.requests" :key="index">
|
|
||||||
<request
|
|
||||||
:request="request"
|
|
||||||
:collection-index="collectionIndex"
|
|
||||||
:folder-index="folderIndex"
|
|
||||||
:request-index="index"
|
|
||||||
@edit-request="
|
|
||||||
$emit('edit-request', {
|
|
||||||
request,
|
|
||||||
collectionIndex,
|
|
||||||
folderIndex,
|
|
||||||
requestIndex: index
|
|
||||||
})
|
|
||||||
"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
<li v-if="folder.requests.length === 0">
|
|
||||||
<label>{{ $t("folder_empty") }}</label>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
ul {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul li {
|
|
||||||
display: flex;
|
|
||||||
margin-left: 32px;
|
|
||||||
border-left: 1px solid var(--brd-color);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
folder: Object,
|
|
||||||
collectionIndex: Number,
|
|
||||||
folderIndex: Number
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
request: () => import("./request")
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
showChildren: false
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
toggleShowChildren() {
|
|
||||||
this.showChildren = !this.showChildren;
|
|
||||||
},
|
|
||||||
selectRequest(request) {
|
|
||||||
this.$store.commit("postwoman/selectRequest", { request });
|
|
||||||
},
|
|
||||||
removeFolder() {
|
|
||||||
if (!confirm("Are you sure you want to remove this folder?")) return;
|
|
||||||
this.$store.commit("postwoman/removeFolder", {
|
|
||||||
collectionIndex: this.collectionIndex,
|
|
||||||
folderIndex: this.folderIndex
|
|
||||||
});
|
|
||||||
},
|
|
||||||
editFolder() {
|
|
||||||
this.$emit("edit-folder");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,167 +0,0 @@
|
|||||||
<template>
|
|
||||||
<modal v-if="show" @close="hideModal">
|
|
||||||
<div slot="header">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<h3 class="title">Import / Export Collections</h3>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
<i class="material-icons">close</i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<span
|
|
||||||
v-tooltip="{
|
|
||||||
content: !fb.currentUser
|
|
||||||
? $t('login_first')
|
|
||||||
: $t('replace_current')
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
<button
|
|
||||||
:disabled="!fb.currentUser"
|
|
||||||
class="icon"
|
|
||||||
@click="syncCollections"
|
|
||||||
>
|
|
||||||
<i class="material-icons">folder_shared</i>
|
|
||||||
<span>{{ $t("import_from_sync") }}</span>
|
|
||||||
</button>
|
|
||||||
</span>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
@click="openDialogChooseFileToReplaceWith"
|
|
||||||
v-tooltip="$t('replace_current')"
|
|
||||||
>
|
|
||||||
<i class="material-icons">create_new_folder</i>
|
|
||||||
<span>{{ $t("replace_json") }}</span>
|
|
||||||
<input
|
|
||||||
type="file"
|
|
||||||
@change="replaceWithJSON"
|
|
||||||
style="display: none;"
|
|
||||||
ref="inputChooseFileToReplaceWith"
|
|
||||||
accept="application/json"
|
|
||||||
/>
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
@click="openDialogChooseFileToImportFrom"
|
|
||||||
v-tooltip="$t('preserve_current')"
|
|
||||||
>
|
|
||||||
<i class="material-icons">folder_special</i>
|
|
||||||
<span>{{ $t("import_json") }}</span>
|
|
||||||
<input
|
|
||||||
type="file"
|
|
||||||
@change="importFromJSON"
|
|
||||||
style="display: none;"
|
|
||||||
ref="inputChooseFileToImportFrom"
|
|
||||||
accept="application/json"
|
|
||||||
/>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="body">
|
|
||||||
<textarea v-model="collectionJson" rows="8"></textarea>
|
|
||||||
</div>
|
|
||||||
<div slot="footer">
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<span></span>
|
|
||||||
<span>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
{{ $t("cancel") }}
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
class="icon primary"
|
|
||||||
@click="exportJSON"
|
|
||||||
v-tooltip="$t('download_file')"
|
|
||||||
>
|
|
||||||
{{ $t("export") }}
|
|
||||||
</button>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</modal>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { fb } from "../../functions/fb";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
fb
|
|
||||||
};
|
|
||||||
},
|
|
||||||
props: {
|
|
||||||
show: Boolean
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
modal: () => import("../../components/modal")
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
collectionJson() {
|
|
||||||
return JSON.stringify(this.$store.state.postwoman.collections, null, 2);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
hideModal() {
|
|
||||||
this.$emit("hide-modal");
|
|
||||||
},
|
|
||||||
openDialogChooseFileToReplaceWith() {
|
|
||||||
this.$refs.inputChooseFileToReplaceWith.click();
|
|
||||||
},
|
|
||||||
openDialogChooseFileToImportFrom() {
|
|
||||||
this.$refs.inputChooseFileToImportFrom.click();
|
|
||||||
},
|
|
||||||
replaceWithJSON() {
|
|
||||||
let reader = new FileReader();
|
|
||||||
reader.onload = event => {
|
|
||||||
let content = event.target.result;
|
|
||||||
let collections = JSON.parse(content);
|
|
||||||
this.$store.commit("postwoman/replaceCollections", collections);
|
|
||||||
};
|
|
||||||
reader.readAsText(this.$refs.inputChooseFileToReplaceWith.files[0]);
|
|
||||||
this.fileImported();
|
|
||||||
},
|
|
||||||
importFromJSON() {
|
|
||||||
let reader = new FileReader();
|
|
||||||
reader.onload = event => {
|
|
||||||
let content = event.target.result;
|
|
||||||
let collections = JSON.parse(content);
|
|
||||||
this.$store.commit("postwoman/importCollections", collections);
|
|
||||||
};
|
|
||||||
reader.readAsText(this.$refs.inputChooseFileToImportFrom.files[0]);
|
|
||||||
this.fileImported();
|
|
||||||
},
|
|
||||||
exportJSON() {
|
|
||||||
let text = this.collectionJson;
|
|
||||||
text = text.replace(/\n/g, "\r\n");
|
|
||||||
let blob = new Blob([text], {
|
|
||||||
type: "text/json"
|
|
||||||
});
|
|
||||||
let anchor = document.createElement("a");
|
|
||||||
anchor.download = "postwoman-collection.json";
|
|
||||||
anchor.href = window.URL.createObjectURL(blob);
|
|
||||||
anchor.target = "_blank";
|
|
||||||
anchor.style.display = "none";
|
|
||||||
document.body.appendChild(anchor);
|
|
||||||
anchor.click();
|
|
||||||
document.body.removeChild(anchor);
|
|
||||||
this.$toast.success(this.$t("download_started"), {
|
|
||||||
icon: "done"
|
|
||||||
});
|
|
||||||
},
|
|
||||||
syncCollections() {
|
|
||||||
this.$store.commit("postwoman/replaceCollections", fb.currentCollections);
|
|
||||||
this.fileImported();
|
|
||||||
},
|
|
||||||
fileImported() {
|
|
||||||
this.$toast.info(this.$t("file_imported"), {
|
|
||||||
icon: "folder_shared"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,221 +0,0 @@
|
|||||||
<!--
|
|
||||||
TODO:
|
|
||||||
- probably refactor and pass event arguments to modals directly without unpacking
|
|
||||||
-->
|
|
||||||
|
|
||||||
<template>
|
|
||||||
<div class="collections-wrapper">
|
|
||||||
<addCollection :show="showModalAdd" @hide-modal="displayModalAdd(false)" />
|
|
||||||
<editCollection
|
|
||||||
:show="showModalEdit"
|
|
||||||
:editingCollection="editingCollection"
|
|
||||||
:editingCollectionIndex="editingCollectionIndex"
|
|
||||||
@hide-modal="displayModalEdit(false)"
|
|
||||||
/>
|
|
||||||
<addFolder
|
|
||||||
:show="showModalAddFolder"
|
|
||||||
:collection="editingCollection"
|
|
||||||
:collectionIndex="editingCollectionIndex"
|
|
||||||
@hide-modal="displayModalAddFolder(false)"
|
|
||||||
/>
|
|
||||||
<editFolder
|
|
||||||
:show="showModalEditFolder"
|
|
||||||
:collection="editingCollection"
|
|
||||||
:collectionIndex="editingCollectionIndex"
|
|
||||||
:folder="editingFolder"
|
|
||||||
:folderIndex="editingFolderIndex"
|
|
||||||
@hide-modal="displayModalEditFolder(false)"
|
|
||||||
/>
|
|
||||||
<editRequest
|
|
||||||
:show="showModalEditRequest"
|
|
||||||
:collectionIndex="editingCollectionIndex"
|
|
||||||
:folderIndex="editingFolderIndex"
|
|
||||||
:request="editingRequest"
|
|
||||||
:requestIndex="editingRequestIndex"
|
|
||||||
@hide-modal="displayModalEditRequest(false)"
|
|
||||||
/>
|
|
||||||
<importExportCollections
|
|
||||||
:show="showModalImportExport"
|
|
||||||
@hide-modal="displayModalImportExport(false)"
|
|
||||||
/>
|
|
||||||
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="displayModalAdd(true)">
|
|
||||||
<i class="material-icons">add</i>
|
|
||||||
<span>{{ $t("new") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="displayModalImportExport(true)">
|
|
||||||
{{ $t("import_export") }}
|
|
||||||
</button>
|
|
||||||
<!-- <a
|
|
||||||
href="https://github.com/liyasthomas/postwoman/wiki/Collections"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
>
|
|
||||||
<button class="icon" v-tooltip="'Wiki'">
|
|
||||||
<i class="material-icons">help</i>
|
|
||||||
</button>
|
|
||||||
</a> -->
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<p v-if="collections.length === 0" class="info">
|
|
||||||
Create new collection
|
|
||||||
</p>
|
|
||||||
<virtual-list
|
|
||||||
class="virtual-list"
|
|
||||||
:class="{ filled: collections.length }"
|
|
||||||
:size="152"
|
|
||||||
:remain="Math.min(5, collections.length)"
|
|
||||||
>
|
|
||||||
<ul>
|
|
||||||
<li v-for="(collection, index) in collections" :key="collection.name">
|
|
||||||
<collection
|
|
||||||
:collection-index="index"
|
|
||||||
:collection="collection"
|
|
||||||
@edit-collection="editCollection(collection, index)"
|
|
||||||
@add-folder="addFolder(collection, index)"
|
|
||||||
@edit-folder="editFolder($event)"
|
|
||||||
@edit-request="editRequest($event)"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
<li v-if="collections.length === 0">
|
|
||||||
<label>Collections are empty</label>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</virtual-list>
|
|
||||||
<nuxt-link :to="localePath('doc')" :aria-label="$t('documentation')">
|
|
||||||
<button class="icon">
|
|
||||||
<i class="material-icons">books</i>
|
|
||||||
<span>{{ $t("generate_docs") }}</span>
|
|
||||||
</button>
|
|
||||||
</nuxt-link>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.virtual-list {
|
|
||||||
max-height: calc(100vh - 276px);
|
|
||||||
}
|
|
||||||
|
|
||||||
ul {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import collection from "./collection";
|
|
||||||
import { fb } from "../../functions/fb";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
collection,
|
|
||||||
addCollection: () => import("./addCollection"),
|
|
||||||
addFolder: () => import("./addFolder"),
|
|
||||||
editCollection: () => import("./editCollection"),
|
|
||||||
editFolder: () => import("./editFolder"),
|
|
||||||
editRequest: () => import("./editRequest"),
|
|
||||||
importExportCollections: () => import("./importExportCollections"),
|
|
||||||
VirtualList: () => import("vue-virtual-scroll-list")
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
showModalAdd: false,
|
|
||||||
showModalEdit: false,
|
|
||||||
showModalImportExport: false,
|
|
||||||
showModalAddFolder: false,
|
|
||||||
showModalEditFolder: false,
|
|
||||||
showModalEditRequest: false,
|
|
||||||
editingCollection: undefined,
|
|
||||||
editingCollectionIndex: undefined,
|
|
||||||
editingFolder: undefined,
|
|
||||||
editingFolderIndex: undefined,
|
|
||||||
editingRequest: undefined,
|
|
||||||
editingRequestIndex: undefined
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
collections() {
|
|
||||||
return this.$store.state.postwoman.collections;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
displayModalAdd(shouldDisplay) {
|
|
||||||
this.showModalAdd = shouldDisplay;
|
|
||||||
},
|
|
||||||
displayModalEdit(shouldDisplay) {
|
|
||||||
this.showModalEdit = shouldDisplay;
|
|
||||||
|
|
||||||
if (!shouldDisplay) this.resetSelectedData();
|
|
||||||
},
|
|
||||||
displayModalImportExport(shouldDisplay) {
|
|
||||||
this.showModalImportExport = shouldDisplay;
|
|
||||||
},
|
|
||||||
displayModalAddFolder(shouldDisplay) {
|
|
||||||
this.showModalAddFolder = shouldDisplay;
|
|
||||||
|
|
||||||
if (!shouldDisplay) this.resetSelectedData();
|
|
||||||
},
|
|
||||||
displayModalEditFolder(shouldDisplay) {
|
|
||||||
this.showModalEditFolder = shouldDisplay;
|
|
||||||
|
|
||||||
if (!shouldDisplay) this.resetSelectedData();
|
|
||||||
},
|
|
||||||
displayModalEditRequest(shouldDisplay) {
|
|
||||||
this.showModalEditRequest = shouldDisplay;
|
|
||||||
|
|
||||||
if (!shouldDisplay) this.resetSelectedData();
|
|
||||||
},
|
|
||||||
editCollection(collection, collectionIndex) {
|
|
||||||
this.$data.editingCollection = collection;
|
|
||||||
this.$data.editingCollectionIndex = collectionIndex;
|
|
||||||
this.displayModalEdit(true);
|
|
||||||
this.syncCollections();
|
|
||||||
},
|
|
||||||
addFolder(collection, collectionIndex) {
|
|
||||||
this.$data.editingCollection = collection;
|
|
||||||
this.$data.editingCollectionIndex = collectionIndex;
|
|
||||||
this.displayModalAddFolder(true);
|
|
||||||
this.syncCollections();
|
|
||||||
},
|
|
||||||
editFolder(payload) {
|
|
||||||
const { collectionIndex, folder, folderIndex } = payload;
|
|
||||||
this.$data.editingCollection = collection;
|
|
||||||
this.$data.editingCollectionIndex = collectionIndex;
|
|
||||||
this.$data.editingFolder = folder;
|
|
||||||
this.$data.editingFolderIndex = folderIndex;
|
|
||||||
this.displayModalEditFolder(true);
|
|
||||||
this.syncCollections();
|
|
||||||
},
|
|
||||||
editRequest(payload) {
|
|
||||||
const { request, collectionIndex, folderIndex, requestIndex } = payload;
|
|
||||||
this.$data.editingCollectionIndex = collectionIndex;
|
|
||||||
this.$data.editingFolderIndex = folderIndex;
|
|
||||||
this.$data.editingRequest = request;
|
|
||||||
this.$data.editingRequestIndex = requestIndex;
|
|
||||||
this.displayModalEditRequest(true);
|
|
||||||
this.syncCollections();
|
|
||||||
},
|
|
||||||
resetSelectedData() {
|
|
||||||
this.$data.editingCollection = undefined;
|
|
||||||
this.$data.editingCollectionIndex = undefined;
|
|
||||||
this.$data.editingFolder = undefined;
|
|
||||||
this.$data.editingFolderIndex = undefined;
|
|
||||||
this.$data.editingRequest = undefined;
|
|
||||||
this.$data.editingRequestIndex = undefined;
|
|
||||||
},
|
|
||||||
syncCollections() {
|
|
||||||
if (fb.currentUser !== null) {
|
|
||||||
if (fb.currentSettings[0].value) {
|
|
||||||
fb.writeCollections(
|
|
||||||
JSON.parse(JSON.stringify(this.$store.state.postwoman.collections))
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,70 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<div>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
@click="selectRequest()"
|
|
||||||
v-tooltip="$t('use_request')"
|
|
||||||
>
|
|
||||||
<i class="material-icons">insert_drive_file</i>
|
|
||||||
<span>{{ request.name }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<v-popover>
|
|
||||||
<button class="tooltip-target icon" v-tooltip="$t('more')">
|
|
||||||
<i class="material-icons">more_vert</i>
|
|
||||||
</button>
|
|
||||||
<template slot="popover">
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="$emit('edit-request')" v-close-popover>
|
|
||||||
<i class="material-icons">edit</i>
|
|
||||||
<span>{{ $t("edit") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="removeRequest" v-close-popover>
|
|
||||||
<i class="material-icons">delete</i>
|
|
||||||
<span>{{ $t("delete") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</v-popover>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
ul {
|
|
||||||
display: flex;
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul li {
|
|
||||||
display: flex;
|
|
||||||
padding-left: 16px;
|
|
||||||
border-left: 1px solid var(--brd-color);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
request: Object,
|
|
||||||
collectionIndex: Number,
|
|
||||||
folderIndex: Number,
|
|
||||||
requestIndex: Number
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
selectRequest() {
|
|
||||||
this.$store.commit("postwoman/selectRequest", { request: this.request });
|
|
||||||
},
|
|
||||||
removeRequest() {
|
|
||||||
if (!confirm("Are you sure you want to remove this request?")) return;
|
|
||||||
this.$store.commit("postwoman/removeRequest", {
|
|
||||||
collectionIndex: this.collectionIndex,
|
|
||||||
folderIndex: this.folderIndex,
|
|
||||||
requestIndex: this.requestIndex
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,214 +0,0 @@
|
|||||||
<template>
|
|
||||||
<modal v-if="show" @close="hideModal">
|
|
||||||
<div slot="header">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<h3 class="title">{{ $t("save_request_as") }}</h3>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
<i class="material-icons">close</i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="body">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<label for="selectLabel">{{ $t("label") }}</label>
|
|
||||||
<input
|
|
||||||
type="text"
|
|
||||||
id="selectLabel"
|
|
||||||
v-model="requestData.name"
|
|
||||||
:placeholder="defaultRequestName"
|
|
||||||
@keyup.enter="saveRequestAs"
|
|
||||||
/>
|
|
||||||
<label for="selectCollection">{{ $t("collection") }}</label>
|
|
||||||
<span class="select-wrapper">
|
|
||||||
<select
|
|
||||||
type="text"
|
|
||||||
id="selectCollection"
|
|
||||||
v-model="requestData.collectionIndex"
|
|
||||||
>
|
|
||||||
<option
|
|
||||||
:key="undefined"
|
|
||||||
:value="undefined"
|
|
||||||
hidden
|
|
||||||
disabled
|
|
||||||
selected
|
|
||||||
>{{ $t("select_collection") }}</option
|
|
||||||
>
|
|
||||||
<option
|
|
||||||
v-for="(collection, index) in $store.state.postwoman
|
|
||||||
.collections"
|
|
||||||
:key="index"
|
|
||||||
:value="index"
|
|
||||||
>
|
|
||||||
{{ collection.name }}
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
</span>
|
|
||||||
<label for="selectFolder">{{ $t("folder") }}</label>
|
|
||||||
<span class="select-wrapper">
|
|
||||||
<select
|
|
||||||
type="text"
|
|
||||||
id="selectFolder"
|
|
||||||
v-model="requestData.folderIndex"
|
|
||||||
>
|
|
||||||
<option :key="undefined" :value="undefined">/</option>
|
|
||||||
<option
|
|
||||||
v-for="(folder, index) in folders"
|
|
||||||
:key="index"
|
|
||||||
:value="index"
|
|
||||||
>
|
|
||||||
{{ folder.name }}
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
</span>
|
|
||||||
<label for="selectRequest">{{ $t("request") }}</label>
|
|
||||||
<span class="select-wrapper">
|
|
||||||
<select
|
|
||||||
type="text"
|
|
||||||
id="selectRequest"
|
|
||||||
v-model="requestData.requestIndex"
|
|
||||||
>
|
|
||||||
<option :key="undefined" :value="undefined">/</option>
|
|
||||||
<option
|
|
||||||
v-for="(folder, index) in requests"
|
|
||||||
:key="index"
|
|
||||||
:value="index"
|
|
||||||
>
|
|
||||||
{{ folder.name }}
|
|
||||||
</option>
|
|
||||||
</select>
|
|
||||||
</span>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="footer">
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<span></span>
|
|
||||||
<span>
|
|
||||||
<button class="icon" @click="hideModal">
|
|
||||||
{{ $t("cancel") }}
|
|
||||||
</button>
|
|
||||||
<button class="icon primary" @click="saveRequestAs">
|
|
||||||
{{ $t("save") }}
|
|
||||||
</button>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</modal>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
show: Boolean,
|
|
||||||
editingRequest: Object
|
|
||||||
},
|
|
||||||
components: {
|
|
||||||
modal: () => import("../../components/modal")
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
defaultRequestName: "My Request",
|
|
||||||
requestData: {
|
|
||||||
name: undefined,
|
|
||||||
collectionIndex: undefined,
|
|
||||||
folderIndex: undefined,
|
|
||||||
requestIndex: undefined
|
|
||||||
}
|
|
||||||
};
|
|
||||||
},
|
|
||||||
watch: {
|
|
||||||
"requestData.collectionIndex": function resetFolderAndRequestIndex() {
|
|
||||||
// if user choosen some folder, than selected other collection, which doesn't have any folders
|
|
||||||
// than `requestUpdateData.folderIndex` won't be reseted
|
|
||||||
this.$data.requestData.folderIndex = undefined;
|
|
||||||
this.$data.requestData.requestIndex = undefined;
|
|
||||||
},
|
|
||||||
"requestData.folderIndex": function resetRequestIndex() {
|
|
||||||
this.$data.requestData.requestIndex = undefined;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
folders() {
|
|
||||||
const userSelectedAnyCollection =
|
|
||||||
this.$data.requestData.collectionIndex !== undefined;
|
|
||||||
if (!userSelectedAnyCollection) return [];
|
|
||||||
|
|
||||||
const noCollectionAvailable =
|
|
||||||
this.$store.state.postwoman.collections[
|
|
||||||
this.$data.requestData.collectionIndex
|
|
||||||
] !== undefined;
|
|
||||||
if (!noCollectionAvailable) return [];
|
|
||||||
|
|
||||||
return this.$store.state.postwoman.collections[
|
|
||||||
this.$data.requestData.collectionIndex
|
|
||||||
].folders;
|
|
||||||
},
|
|
||||||
requests() {
|
|
||||||
const userSelectedAnyCollection =
|
|
||||||
this.$data.requestData.collectionIndex !== undefined;
|
|
||||||
if (!userSelectedAnyCollection) return [];
|
|
||||||
|
|
||||||
const userSelectedAnyFolder =
|
|
||||||
this.$data.requestData.folderIndex !== undefined;
|
|
||||||
if (userSelectedAnyFolder) {
|
|
||||||
const collection = this.$store.state.postwoman.collections[
|
|
||||||
this.$data.requestData.collectionIndex
|
|
||||||
];
|
|
||||||
const folder = collection.folders[this.$data.requestData.folderIndex];
|
|
||||||
const requests = folder.requests;
|
|
||||||
return requests;
|
|
||||||
} else {
|
|
||||||
const collection = this.$store.state.postwoman.collections[
|
|
||||||
this.$data.requestData.collectionIndex
|
|
||||||
];
|
|
||||||
const noCollectionAvailable =
|
|
||||||
this.$store.state.postwoman.collections[
|
|
||||||
this.$data.requestData.collectionIndex
|
|
||||||
] !== undefined;
|
|
||||||
if (!noCollectionAvailable) return [];
|
|
||||||
|
|
||||||
const requests = collection.requests;
|
|
||||||
return requests;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
saveRequestAs() {
|
|
||||||
const userDidntSpecifyCollection =
|
|
||||||
this.$data.requestData.collectionIndex === undefined;
|
|
||||||
if (userDidntSpecifyCollection) {
|
|
||||||
this.$toast.error(this.$t("select_collection"), {
|
|
||||||
icon: "error"
|
|
||||||
});
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
const requestUpdated = {
|
|
||||||
...this.$props.editingRequest,
|
|
||||||
name: this.$data.requestData.name || this.$data.defaultRequestName,
|
|
||||||
collection: this.$data.requestData.collectionIndex
|
|
||||||
};
|
|
||||||
|
|
||||||
this.$store.commit("postwoman/saveRequestAs", {
|
|
||||||
request: requestUpdated,
|
|
||||||
collectionIndex: this.$data.requestData.collectionIndex,
|
|
||||||
folderIndex: this.$data.requestData.folderIndex,
|
|
||||||
requestIndex: this.$data.requestData.requestIndex
|
|
||||||
});
|
|
||||||
|
|
||||||
this.hideModal();
|
|
||||||
},
|
|
||||||
hideModal() {
|
|
||||||
this.$emit("hide-modal");
|
|
||||||
this.$emit("hide-model"); // for backward compatibility // TODO: use fixed event
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,81 +0,0 @@
|
|||||||
<template>
|
|
||||||
<virtual-list
|
|
||||||
v-if="fb.currentFeeds.length !== 0"
|
|
||||||
class="virtual-list"
|
|
||||||
:class="{ filled: fb.currentFeeds.length }"
|
|
||||||
:size="56"
|
|
||||||
:remain="Math.min(8, fb.currentFeeds.length)"
|
|
||||||
>
|
|
||||||
<ul v-for="feed in fb.currentFeeds" :key="feed.id">
|
|
||||||
<div class="show-on-large-screen">
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
:aria-label="$t('label')"
|
|
||||||
type="text"
|
|
||||||
readonly
|
|
||||||
:value="feed.label"
|
|
||||||
:placeholder="$t('no_label')"
|
|
||||||
class="bg-color"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
<button class="icon" @click="saveFeed(feed)">
|
|
||||||
<i class="material-icons">get_app</i>
|
|
||||||
</button>
|
|
||||||
<button class="icon" @click="deleteFeed(feed)">
|
|
||||||
<i class="material-icons">delete</i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</ul>
|
|
||||||
</virtual-list>
|
|
||||||
<ul v-else>
|
|
||||||
<li>
|
|
||||||
<label class="info">{{ $t("empty") }}</label>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.virtual-list {
|
|
||||||
max-height: calc(100vh - 288px);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { fb } from "../../functions/fb";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
VirtualList: () => import("vue-virtual-scroll-list")
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
fb
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
deleteFeed(feed) {
|
|
||||||
fb.deleteFeed(feed.id);
|
|
||||||
this.$toast.error(this.$t("deleted"), {
|
|
||||||
icon: "delete"
|
|
||||||
});
|
|
||||||
},
|
|
||||||
saveFeed(feed) {
|
|
||||||
const dataToWrite = JSON.stringify(feed.message, null, 2);
|
|
||||||
const file = new Blob([dataToWrite], { type: "application/json" });
|
|
||||||
const a = document.createElement("a"),
|
|
||||||
url = URL.createObjectURL(file);
|
|
||||||
a.href = url;
|
|
||||||
a.download = (feed.label + " on " + Date()).replace(/\./g, "[dot]");
|
|
||||||
document.body.appendChild(a);
|
|
||||||
a.click();
|
|
||||||
this.$toast.success(this.$t("download_started"), {
|
|
||||||
icon: "done"
|
|
||||||
});
|
|
||||||
setTimeout(() => {
|
|
||||||
document.body.removeChild(a);
|
|
||||||
window.URL.revokeObjectURL(url);
|
|
||||||
}, 1000);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,55 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
:aria-label="$t('label')"
|
|
||||||
type="text"
|
|
||||||
autofocus
|
|
||||||
v-model="message"
|
|
||||||
:placeholder="$t('paste_a_collection')"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
:aria-label="$t('label')"
|
|
||||||
type="text"
|
|
||||||
autofocus
|
|
||||||
v-model="label"
|
|
||||||
:placeholder="$t('label')"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
:disabled="!(this.message && this.label)"
|
|
||||||
value="Save"
|
|
||||||
@click="formPost"
|
|
||||||
>
|
|
||||||
<i class="material-icons">add</i>
|
|
||||||
<span>Add</span>
|
|
||||||
</button>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { fb } from "../../functions/fb";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
message: null,
|
|
||||||
label: null
|
|
||||||
};
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
formPost() {
|
|
||||||
fb.writeFeeds(this.message, this.label);
|
|
||||||
this.message = null;
|
|
||||||
this.label = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,115 +0,0 @@
|
|||||||
<template>
|
|
||||||
<v-popover>
|
|
||||||
<button class="icon" v-tooltip="$t('login_with')">
|
|
||||||
<i class="material-icons">vpn_key</i>
|
|
||||||
</button>
|
|
||||||
<template slot="popover">
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="signInWithGoogle" v-close-popover>
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="24"
|
|
||||||
height="24"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
class="material-icons"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M12.24 10.285V14.4h6.806c-.275 1.765-2.056 5.174-6.806 5.174-4.095 0-7.439-3.389-7.439-7.574s3.345-7.574 7.439-7.574c2.33 0 3.891.989 4.785 1.849l3.254-3.138C18.189 1.186 15.479 0 12.24 0c-6.635 0-12 5.365-12 12s5.365 12 12 12c6.926 0 11.52-4.869 11.52-11.726 0-.788-.085-1.39-.189-1.989H12.24z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
<span>Google</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="signInWithGithub" v-close-popover>
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="24"
|
|
||||||
height="24"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
class="material-icons"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
<span>GitHub</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</v-popover>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import firebase from "firebase/app";
|
|
||||||
import { fb } from "../../functions/fb";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
fb
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
signInWithGoogle() {
|
|
||||||
const provider = new firebase.auth.GoogleAuthProvider();
|
|
||||||
firebase
|
|
||||||
.auth()
|
|
||||||
.signInWithPopup(provider)
|
|
||||||
.then(res => {
|
|
||||||
if (res.additionalUserInfo.isNewUser) {
|
|
||||||
this.$toast.info(this.$t("turn_on") + " " + this.$t("sync"), {
|
|
||||||
icon: "sync",
|
|
||||||
duration: null,
|
|
||||||
closeOnSwipe: false,
|
|
||||||
action: {
|
|
||||||
text: this.$t("yes"),
|
|
||||||
onClick: (e, toastObject) => {
|
|
||||||
fb.writeSettings("syncHistory", false);
|
|
||||||
fb.writeSettings("syncCollections", true);
|
|
||||||
this.$router.push({ path: "/settings" });
|
|
||||||
toastObject.remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$toast.show(err.message || err, {
|
|
||||||
icon: "error"
|
|
||||||
});
|
|
||||||
});
|
|
||||||
},
|
|
||||||
signInWithGithub() {
|
|
||||||
const provider = new firebase.auth.GithubAuthProvider();
|
|
||||||
firebase
|
|
||||||
.auth()
|
|
||||||
.signInWithPopup(provider)
|
|
||||||
.then(res => {
|
|
||||||
if (res.additionalUserInfo.isNewUser) {
|
|
||||||
this.$toast.info(this.$t("turn_on") + " " + this.$t("sync"), {
|
|
||||||
icon: "sync",
|
|
||||||
duration: null,
|
|
||||||
closeOnSwipe: false,
|
|
||||||
action: {
|
|
||||||
text: this.$t("yes"),
|
|
||||||
onClick: (e, toastObject) => {
|
|
||||||
fb.writeSettings("syncHistory", false);
|
|
||||||
fb.writeSettings("syncCollections", true);
|
|
||||||
this.$router.push({ path: "/settings" });
|
|
||||||
toastObject.remove();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
});
|
|
||||||
}
|
|
||||||
})
|
|
||||||
.catch(err => {
|
|
||||||
this.$toast.show(err.message || err, {
|
|
||||||
icon: "error"
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,38 +0,0 @@
|
|||||||
<template>
|
|
||||||
<span>
|
|
||||||
<span class="argumentName">
|
|
||||||
{{ argName }}
|
|
||||||
</span>
|
|
||||||
:
|
|
||||||
<typelink :type="argType" :jumpTypeCallback="jumpCallback" />
|
|
||||||
</span>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style></style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import typelink from "./typelink";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
typelink: typelink
|
|
||||||
},
|
|
||||||
|
|
||||||
props: {
|
|
||||||
gqlArg: Object
|
|
||||||
},
|
|
||||||
|
|
||||||
computed: {
|
|
||||||
argName() {
|
|
||||||
return this.gqlArg.name;
|
|
||||||
},
|
|
||||||
argType() {
|
|
||||||
return this.gqlArg.type;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
jumpCallback(typeName) {}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,93 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="field-box">
|
|
||||||
<div class="field-title">
|
|
||||||
{{ fieldName }}
|
|
||||||
<span v-if="fieldArgs.length > 0">
|
|
||||||
(
|
|
||||||
<span v-for="(field, index) in fieldArgs" :key="index">
|
|
||||||
{{ field.name }}:
|
|
||||||
<typelink
|
|
||||||
:gqlType="field.type"
|
|
||||||
:jumpTypeCallback="jumpTypeCallback"
|
|
||||||
/>
|
|
||||||
<span v-if="index !== fieldArgs.length - 1">
|
|
||||||
,
|
|
||||||
</span>
|
|
||||||
</span>
|
|
||||||
) </span
|
|
||||||
>:
|
|
||||||
<typelink :gqlType="gqlField.type" :jumpTypeCallback="jumpTypeCallback" />
|
|
||||||
</div>
|
|
||||||
<div class="field-desc" v-if="gqlField.description">
|
|
||||||
{{ gqlField.description }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="field-deprecated" v-if="gqlField.isDeprecated">
|
|
||||||
{{ $t("deprecated") }}
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.field-box {
|
|
||||||
padding: 16px;
|
|
||||||
margin: 4px;
|
|
||||||
border-bottom: 1px dashed var(--brd-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.field-deprecated {
|
|
||||||
background-color: yellow;
|
|
||||||
color: black;
|
|
||||||
display: inline-block;
|
|
||||||
padding: 4px 8px;
|
|
||||||
margin: 4px 0;
|
|
||||||
border-radius: 4px;
|
|
||||||
font-size: 14px;
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
|
|
||||||
.field-desc {
|
|
||||||
color: var(--fg-light-color);
|
|
||||||
margin-top: 4px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import typelink from "./typelink";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
typelink: typelink
|
|
||||||
},
|
|
||||||
|
|
||||||
props: {
|
|
||||||
gqlField: Object,
|
|
||||||
jumpTypeCallback: Function
|
|
||||||
},
|
|
||||||
|
|
||||||
computed: {
|
|
||||||
fieldString() {
|
|
||||||
const args = (this.gqlField.args || []).reduce((acc, arg, index) => {
|
|
||||||
return (
|
|
||||||
acc +
|
|
||||||
`${arg.name}: ${arg.type.toString()}${
|
|
||||||
index !== this.gqlField.args.length - 1 ? ", " : ""
|
|
||||||
}`
|
|
||||||
);
|
|
||||||
}, "");
|
|
||||||
const argsString = args.length > 0 ? `(${args})` : "";
|
|
||||||
return `${
|
|
||||||
this.gqlField.name
|
|
||||||
}${argsString}: ${this.gqlField.type.toString()}`;
|
|
||||||
},
|
|
||||||
|
|
||||||
fieldName() {
|
|
||||||
return this.gqlField.name;
|
|
||||||
},
|
|
||||||
|
|
||||||
fieldArgs() {
|
|
||||||
return this.gqlField.args || [];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,135 +0,0 @@
|
|||||||
<template>
|
|
||||||
<pre ref="editor"></pre>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
const DEFAULT_THEME = "twilight";
|
|
||||||
|
|
||||||
import ace from "ace-builds";
|
|
||||||
import * as gql from "graphql";
|
|
||||||
import "ace-builds/webpack-resolver";
|
|
||||||
import debounce from "../../functions/utils/debounce";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
value: {
|
|
||||||
type: String,
|
|
||||||
default: ""
|
|
||||||
},
|
|
||||||
theme: {
|
|
||||||
type: String,
|
|
||||||
required: false
|
|
||||||
},
|
|
||||||
lang: {
|
|
||||||
type: String,
|
|
||||||
default: "json"
|
|
||||||
},
|
|
||||||
options: {
|
|
||||||
type: Object,
|
|
||||||
default: {}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
editor: null,
|
|
||||||
cacheValue: "",
|
|
||||||
validationSchema: null
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
watch: {
|
|
||||||
value(value) {
|
|
||||||
if (value !== this.cacheValue) {
|
|
||||||
this.editor.session.setValue(value, 1);
|
|
||||||
this.cacheValue = value;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
theme() {
|
|
||||||
this.editor.setTheme("ace/theme/" + this.defineTheme());
|
|
||||||
},
|
|
||||||
lang(value) {
|
|
||||||
this.editor.getSession().setMode("ace/mode/" + value);
|
|
||||||
},
|
|
||||||
options(value) {
|
|
||||||
this.editor.setOptions(value);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
mounted() {
|
|
||||||
const editor = ace.edit(this.$refs.editor, {
|
|
||||||
theme: "ace/theme/" + this.defineTheme(),
|
|
||||||
mode: "ace/mode/" + this.lang,
|
|
||||||
...this.options
|
|
||||||
});
|
|
||||||
|
|
||||||
if (this.value) editor.setValue(this.value, 1);
|
|
||||||
|
|
||||||
this.editor = editor;
|
|
||||||
this.cacheValue = this.value;
|
|
||||||
|
|
||||||
editor.on("change", () => {
|
|
||||||
const content = editor.getValue();
|
|
||||||
this.$emit("input", content);
|
|
||||||
this.parseContents(content);
|
|
||||||
this.cacheValue = content;
|
|
||||||
});
|
|
||||||
|
|
||||||
this.parseContents(this.value);
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
defineTheme() {
|
|
||||||
if (this.theme) {
|
|
||||||
return this.theme;
|
|
||||||
} else {
|
|
||||||
return (
|
|
||||||
this.$store.state.postwoman.settings.THEME_ACE_EDITOR || DEFAULT_THEME
|
|
||||||
);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
setValidationSchema(schema) {
|
|
||||||
this.validationSchema = schema;
|
|
||||||
this.parseContents(this.cacheValue);
|
|
||||||
},
|
|
||||||
|
|
||||||
parseContents: debounce(function(content) {
|
|
||||||
if (content !== "") {
|
|
||||||
try {
|
|
||||||
const doc = gql.parse(content);
|
|
||||||
|
|
||||||
if (this.validationSchema) {
|
|
||||||
this.editor.session.setAnnotations(
|
|
||||||
gql.validate(this.validationSchema, doc).map(err => {
|
|
||||||
return {
|
|
||||||
row: err.locations[0].line - 1,
|
|
||||||
column: err.locations[0].column - 1,
|
|
||||||
text: err.message,
|
|
||||||
type: "error"
|
|
||||||
};
|
|
||||||
})
|
|
||||||
);
|
|
||||||
}
|
|
||||||
} catch (e) {
|
|
||||||
this.editor.session.setAnnotations([
|
|
||||||
{
|
|
||||||
row: e.locations[0].line - 1,
|
|
||||||
column: e.locations[0].column - 1,
|
|
||||||
text: e.message,
|
|
||||||
type: "error"
|
|
||||||
}
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
this.editor.session.setAnnotations([]);
|
|
||||||
}
|
|
||||||
}, 2000)
|
|
||||||
},
|
|
||||||
|
|
||||||
beforeDestroy() {
|
|
||||||
this.editor.destroy();
|
|
||||||
this.editor.container.remove();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,44 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="type-box">
|
|
||||||
<div class="type-title">{{ gqlType.name }}</div>
|
|
||||||
<div class="type-desc" v-if="gqlType.description">
|
|
||||||
{{ gqlType.description }}
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div v-if="gqlType.getFields">
|
|
||||||
<h5>{{ $t("fields") }}</h5>
|
|
||||||
<div v-for="field in gqlType.getFields()" :key="field.name">
|
|
||||||
<gql-field :gqlField="field" :jumpTypeCallback="jumpTypeCallback" />
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.type-box {
|
|
||||||
padding: 16px;
|
|
||||||
margin: 4px 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.type-desc {
|
|
||||||
color: var(--fg-light-color);
|
|
||||||
margin-top: 4px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.type-title {
|
|
||||||
font-weight: 700;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
"gql-field": () => import("./field")
|
|
||||||
},
|
|
||||||
|
|
||||||
props: {
|
|
||||||
gqlType: {},
|
|
||||||
jumpTypeCallback: Function
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,34 +0,0 @@
|
|||||||
<template>
|
|
||||||
<span class="typelink" @click="jumpToType">{{ typeString }}</span>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
.typelink {
|
|
||||||
color: var(--ac-color);
|
|
||||||
font-family: "Roboto Mono", monospace;
|
|
||||||
font-weight: 400;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
gqlType: null,
|
|
||||||
// (typeName: string) => void
|
|
||||||
jumpTypeCallback: Function
|
|
||||||
},
|
|
||||||
|
|
||||||
computed: {
|
|
||||||
typeString() {
|
|
||||||
return this.gqlType.toString();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
jumpToType() {
|
|
||||||
this.jumpTypeCallback(this.gqlType);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,516 +0,0 @@
|
|||||||
<template>
|
|
||||||
<pw-section class="green" icon="history" :label="$t('history')" ref="history">
|
|
||||||
<ul>
|
|
||||||
<li id="filter-history">
|
|
||||||
<input
|
|
||||||
aria-label="Search"
|
|
||||||
type="text"
|
|
||||||
:placeholder="$t('search_history')"
|
|
||||||
v-model="filterText"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<virtual-list
|
|
||||||
class="virtual-list"
|
|
||||||
:class="{ filled: filteredHistory.length }"
|
|
||||||
:size="185"
|
|
||||||
:remain="Math.min(5, filteredHistory.length)"
|
|
||||||
>
|
|
||||||
<ul v-for="(entry, index) in filteredHistory" :key="index" class="entry">
|
|
||||||
<div class="show-on-large-screen">
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
:class="{ stared: entry.star }"
|
|
||||||
@click="toggleStar(entry)"
|
|
||||||
v-tooltip="{
|
|
||||||
content: !entry.star ? $t('add_star') : $t('remove_star')
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
<i class="material-icons">
|
|
||||||
{{ entry.star ? "star" : "star_border" }}
|
|
||||||
</i>
|
|
||||||
</button>
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
:aria-label="$t('label')"
|
|
||||||
type="text"
|
|
||||||
readonly
|
|
||||||
:value="entry.label"
|
|
||||||
:placeholder="$t('no_label')"
|
|
||||||
class="bg-color"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
<!-- <li>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
v-tooltip="{
|
|
||||||
content: !entry.usesScripts
|
|
||||||
? 'No pre-request script'
|
|
||||||
: 'Used pre-request script'
|
|
||||||
}"
|
|
||||||
>
|
|
||||||
<i class="material-icons">
|
|
||||||
{{ !entry.usesScripts ? "http" : "code" }}
|
|
||||||
</i>
|
|
||||||
</button>
|
|
||||||
</li> -->
|
|
||||||
<v-popover>
|
|
||||||
<button class="tooltip-target icon" v-tooltip="$t('options')">
|
|
||||||
<i class="material-icons">more_vert</i>
|
|
||||||
</button>
|
|
||||||
<template slot="popover">
|
|
||||||
<div>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
:id="'use-button#' + index"
|
|
||||||
@click="useHistory(entry)"
|
|
||||||
:aria-label="$t('edit')"
|
|
||||||
v-close-popover
|
|
||||||
>
|
|
||||||
<i class="material-icons">restore</i>
|
|
||||||
<span>{{ $t("restore") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
:id="'delete-button#' + index"
|
|
||||||
@click="deleteHistory(entry)"
|
|
||||||
:aria-label="$t('delete')"
|
|
||||||
v-close-popover
|
|
||||||
>
|
|
||||||
<i class="material-icons">delete</i>
|
|
||||||
<span>{{ $t("delete") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</v-popover>
|
|
||||||
</div>
|
|
||||||
<div class="show-on-large-screen">
|
|
||||||
<li class="method-list-item">
|
|
||||||
<input
|
|
||||||
:aria-label="$t('method')"
|
|
||||||
type="text"
|
|
||||||
readonly
|
|
||||||
:value="entry.method"
|
|
||||||
:class="findEntryStatus(entry).className"
|
|
||||||
:style="{ '--status-code': entry.status }"
|
|
||||||
/>
|
|
||||||
<span
|
|
||||||
class="entry-status-code"
|
|
||||||
:class="findEntryStatus(entry).className"
|
|
||||||
:style="{ '--status-code': entry.status }"
|
|
||||||
>{{ entry.status }}</span
|
|
||||||
>
|
|
||||||
</li>
|
|
||||||
</div>
|
|
||||||
<div class="show-on-large-screen">
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
:aria-label="$t('url')"
|
|
||||||
type="text"
|
|
||||||
readonly
|
|
||||||
:value="entry.url"
|
|
||||||
:placeholder="$t('no_url')"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
:aria-label="$t('path')"
|
|
||||||
type="text"
|
|
||||||
readonly
|
|
||||||
:value="entry.path"
|
|
||||||
:placeholder="$t('no_path')"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
</div>
|
|
||||||
<transition name="fade">
|
|
||||||
<div v-if="showMore" class="show-on-large-screen">
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
:aria-label="$t('time')"
|
|
||||||
type="text"
|
|
||||||
readonly
|
|
||||||
:value="entry.time"
|
|
||||||
v-tooltip="entry.date"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
:aria-label="$t('duration')"
|
|
||||||
type="text"
|
|
||||||
readonly
|
|
||||||
:value="entry.duration"
|
|
||||||
:placeholder="$t('no_duration')"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<input
|
|
||||||
:aria-label="$t('prerequest_script')"
|
|
||||||
type="text"
|
|
||||||
readonly
|
|
||||||
:value="entry.preRequestScript"
|
|
||||||
:placeholder="$t('no_prerequest_script')"
|
|
||||||
/>
|
|
||||||
</li>
|
|
||||||
</div>
|
|
||||||
</transition>
|
|
||||||
</ul>
|
|
||||||
</virtual-list>
|
|
||||||
<ul
|
|
||||||
:class="{ hidden: filteredHistory.length != 0 || history.length === 0 }"
|
|
||||||
>
|
|
||||||
<li>
|
|
||||||
<label>{{ $t("nothing_found") }} "{{ filterText }}"</label>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
<p v-if="history.length === 0" class="info">
|
|
||||||
{{ $t("history_empty") }}
|
|
||||||
</p>
|
|
||||||
<div v-if="history.length !== 0">
|
|
||||||
<div class="flex-wrap" v-if="!isClearingHistory">
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
id="clear-history-button"
|
|
||||||
:disabled="history.length === 0"
|
|
||||||
@click="enableHistoryClearing"
|
|
||||||
>
|
|
||||||
<i class="material-icons">clear_all</i>
|
|
||||||
<span>{{ $t("clear_all") }}</span>
|
|
||||||
</button>
|
|
||||||
<v-popover>
|
|
||||||
<button class="tooltip-target icon" v-tooltip="$t('sort')">
|
|
||||||
<i class="material-icons">sort</i>
|
|
||||||
</button>
|
|
||||||
<template slot="popover">
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="sort_by_label()" v-close-popover>
|
|
||||||
<i class="material-icons">sort_by_alpha</i>
|
|
||||||
<span>{{ $t("label") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="sort_by_time()" v-close-popover>
|
|
||||||
<i class="material-icons">access_time</i>
|
|
||||||
<span>{{ $t("time") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
@click="sort_by_status_code()"
|
|
||||||
v-close-popover
|
|
||||||
>
|
|
||||||
<i class="material-icons">assistant</i>
|
|
||||||
<span>{{ $t("status") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="sort_by_url()" v-close-popover>
|
|
||||||
<i class="material-icons">language</i>
|
|
||||||
<span>{{ $t("url") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="sort_by_path()" v-close-popover>
|
|
||||||
<i class="material-icons">timeline</i>
|
|
||||||
<span>{{ $t("path") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div v-if="showMore">
|
|
||||||
<button class="icon" @click="sort_by_duration()" v-close-popover>
|
|
||||||
<i class="material-icons">timer</i>
|
|
||||||
<span>{{ $t("duration") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="toggleCollapse()">
|
|
||||||
<i class="material-icons">
|
|
||||||
{{ !showMore ? "first_page" : "last_page" }}
|
|
||||||
</i>
|
|
||||||
<span>{{ !showMore ? $t("show_more") : $t("hide_more") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</v-popover>
|
|
||||||
</div>
|
|
||||||
<div class="flex-wrap" v-else>
|
|
||||||
<label for="clear-history-button" class="info">
|
|
||||||
{{ $t("are_you_sure") }}
|
|
||||||
</label>
|
|
||||||
<div>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
id="confirm-clear-history-button"
|
|
||||||
@click="clearHistory"
|
|
||||||
v-tooltip="$t('yes')"
|
|
||||||
>
|
|
||||||
<i class="material-icons">done</i>
|
|
||||||
</button>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
id="reject-clear-history-button"
|
|
||||||
@click="disableHistoryClearing"
|
|
||||||
v-tooltip="$t('no')"
|
|
||||||
>
|
|
||||||
<i class="material-icons">close</i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</pw-section>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.virtual-list {
|
|
||||||
max-height: calc(100vh - 284px);
|
|
||||||
|
|
||||||
[readonly] {
|
|
||||||
cursor: default;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.fade-enter-active,
|
|
||||||
.fade-leave-active {
|
|
||||||
transition: all 0.2s;
|
|
||||||
}
|
|
||||||
|
|
||||||
.fade-enter,
|
|
||||||
.fade-leave-to {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.stared {
|
|
||||||
color: #f8e81c !important;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul,
|
|
||||||
ol {
|
|
||||||
flex-direction: column;
|
|
||||||
}
|
|
||||||
|
|
||||||
ul li,
|
|
||||||
ol li {
|
|
||||||
display: flex;
|
|
||||||
}
|
|
||||||
|
|
||||||
.method-list-item {
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
span {
|
|
||||||
position: absolute;
|
|
||||||
top: 10px;
|
|
||||||
right: 10px;
|
|
||||||
font-family: "Roboto Mono", monospace;
|
|
||||||
font-weight: 400;
|
|
||||||
background-color: transparent;
|
|
||||||
padding: 2px 6px;
|
|
||||||
border-radius: 8px;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
.entry {
|
|
||||||
border-bottom: 1px dashed var(--brd-color);
|
|
||||||
padding: 0 0 8px;
|
|
||||||
}
|
|
||||||
|
|
||||||
@media (max-width: 720px) {
|
|
||||||
.virtual-list.filled {
|
|
||||||
min-height: 320px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.labels {
|
|
||||||
display: none;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import { findStatusGroup } from "../pages/index";
|
|
||||||
import { fb } from "../functions/fb";
|
|
||||||
|
|
||||||
const updateOnLocalStorage = (propertyName, property) =>
|
|
||||||
window.localStorage.setItem(propertyName, JSON.stringify(property));
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
"pw-section": () => import("./section"),
|
|
||||||
VirtualList: () => import("vue-virtual-scroll-list")
|
|
||||||
},
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
history:
|
|
||||||
fb.currentUser !== null
|
|
||||||
? fb.currentHistory
|
|
||||||
: JSON.parse(window.localStorage.getItem("history")) || [],
|
|
||||||
filterText: "",
|
|
||||||
showFilter: false,
|
|
||||||
isClearingHistory: false,
|
|
||||||
reverse_sort_label: false,
|
|
||||||
reverse_sort_time: false,
|
|
||||||
reverse_sort_status_code: false,
|
|
||||||
reverse_sort_url: false,
|
|
||||||
reverse_sort_path: false,
|
|
||||||
showMore: false
|
|
||||||
};
|
|
||||||
},
|
|
||||||
computed: {
|
|
||||||
filteredHistory() {
|
|
||||||
this.history =
|
|
||||||
fb.currentUser !== null
|
|
||||||
? fb.currentHistory
|
|
||||||
: JSON.parse(window.localStorage.getItem("history")) || [];
|
|
||||||
return this.history.filter(entry => {
|
|
||||||
const filterText = this.filterText.toLowerCase();
|
|
||||||
return Object.keys(entry).some(key => {
|
|
||||||
let value = entry[key];
|
|
||||||
value = typeof value !== "string" ? value.toString() : value;
|
|
||||||
return value.toLowerCase().includes(filterText);
|
|
||||||
});
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
methods: {
|
|
||||||
clearHistory() {
|
|
||||||
if (fb.currentUser !== null) {
|
|
||||||
fb.clearHistory();
|
|
||||||
}
|
|
||||||
this.history = [];
|
|
||||||
this.filterText = "";
|
|
||||||
this.disableHistoryClearing();
|
|
||||||
updateOnLocalStorage("history", this.history);
|
|
||||||
this.$toast.error(this.$t("history_deleted"), {
|
|
||||||
icon: "delete"
|
|
||||||
});
|
|
||||||
},
|
|
||||||
useHistory(entry) {
|
|
||||||
this.$emit("useHistory", entry);
|
|
||||||
},
|
|
||||||
findEntryStatus(entry) {
|
|
||||||
const foundStatusGroup = findStatusGroup(entry.status);
|
|
||||||
return (
|
|
||||||
foundStatusGroup || {
|
|
||||||
className: ""
|
|
||||||
}
|
|
||||||
);
|
|
||||||
},
|
|
||||||
deleteHistory(entry) {
|
|
||||||
if (fb.currentUser !== null) {
|
|
||||||
fb.deleteHistory(entry);
|
|
||||||
}
|
|
||||||
this.history.splice(this.history.indexOf(entry), 1);
|
|
||||||
if (this.history.length === 0) {
|
|
||||||
this.filterText = "";
|
|
||||||
}
|
|
||||||
updateOnLocalStorage("history", this.history);
|
|
||||||
this.$toast.error(this.$t("deleted"), {
|
|
||||||
icon: "delete"
|
|
||||||
});
|
|
||||||
},
|
|
||||||
addEntry(entry) {
|
|
||||||
this.history.push(entry);
|
|
||||||
updateOnLocalStorage("history", this.history);
|
|
||||||
},
|
|
||||||
enableHistoryClearing() {
|
|
||||||
if (!this.history || !this.history.length) return;
|
|
||||||
this.isClearingHistory = true;
|
|
||||||
},
|
|
||||||
disableHistoryClearing() {
|
|
||||||
this.isClearingHistory = false;
|
|
||||||
},
|
|
||||||
sort_by_time() {
|
|
||||||
let byDate = this.history.slice(0);
|
|
||||||
byDate.sort((a, b) => {
|
|
||||||
let date_a = a.date.split("/");
|
|
||||||
let date_b = b.date.split("/");
|
|
||||||
let time_a = a.time.split(":");
|
|
||||||
let time_b = b.time.split(":");
|
|
||||||
let final_a = new Date(
|
|
||||||
date_a[2],
|
|
||||||
date_a[1],
|
|
||||||
date_a[0],
|
|
||||||
time_a[0],
|
|
||||||
time_a[1],
|
|
||||||
time_a[2]
|
|
||||||
);
|
|
||||||
let final_b = new Date(
|
|
||||||
date_b[2],
|
|
||||||
date_b[1],
|
|
||||||
date_b[0],
|
|
||||||
time_b[0],
|
|
||||||
time_b[1],
|
|
||||||
time_b[2]
|
|
||||||
);
|
|
||||||
if (this.reverse_sort_time) return final_b - final_a;
|
|
||||||
else return final_a - final_b;
|
|
||||||
});
|
|
||||||
this.history = byDate;
|
|
||||||
this.reverse_sort_time = !this.reverse_sort_time;
|
|
||||||
},
|
|
||||||
sort_by_status_code() {
|
|
||||||
let byCode = this.history.slice(0);
|
|
||||||
byCode.sort((a, b) => {
|
|
||||||
if (this.reverse_sort_status_code) return b.status - a.status;
|
|
||||||
else return a.status - b.status;
|
|
||||||
});
|
|
||||||
this.history = byCode;
|
|
||||||
this.reverse_sort_status_code = !this.reverse_sort_status_code;
|
|
||||||
},
|
|
||||||
sort_by_url() {
|
|
||||||
let byUrl = this.history.slice(0);
|
|
||||||
byUrl.sort((a, b) => {
|
|
||||||
if (this.reverse_sort_url)
|
|
||||||
return a.url === b.url ? 0 : +(a.url < b.url) || -1;
|
|
||||||
else return a.url === b.url ? 0 : +(a.url > b.url) || -1;
|
|
||||||
});
|
|
||||||
this.history = byUrl;
|
|
||||||
this.reverse_sort_url = !this.reverse_sort_url;
|
|
||||||
},
|
|
||||||
sort_by_label() {
|
|
||||||
let byLabel = this.history.slice(0);
|
|
||||||
byLabel.sort((a, b) => {
|
|
||||||
if (this.reverse_sort_label)
|
|
||||||
return a.label === b.label ? 0 : +(a.label < b.label) || -1;
|
|
||||||
else return a.label === b.label ? 0 : +(a.label > b.label) || -1;
|
|
||||||
});
|
|
||||||
this.history = byLabel;
|
|
||||||
this.reverse_sort_label = !this.reverse_sort_label;
|
|
||||||
},
|
|
||||||
sort_by_path() {
|
|
||||||
let byPath = this.history.slice(0);
|
|
||||||
byPath.sort((a, b) => {
|
|
||||||
if (this.reverse_sort_path)
|
|
||||||
return a.path === b.path ? 0 : +(a.path < b.path) || -1;
|
|
||||||
else return a.path === b.path ? 0 : +(a.path > b.path) || -1;
|
|
||||||
});
|
|
||||||
this.history = byPath;
|
|
||||||
this.reverse_sort_path = !this.reverse_sort_path;
|
|
||||||
},
|
|
||||||
sort_by_duration() {
|
|
||||||
let byDuration = this.history.slice(0);
|
|
||||||
byDuration.sort((a, b) => {
|
|
||||||
if (this.reverse_sort_duration)
|
|
||||||
return a.duration === b.duration
|
|
||||||
? 0
|
|
||||||
: +(a.duration < b.duration) || -1;
|
|
||||||
else
|
|
||||||
return a.duration === b.duration
|
|
||||||
? 0
|
|
||||||
: +(a.duration > b.duration) || -1;
|
|
||||||
});
|
|
||||||
this.history = byDuration;
|
|
||||||
this.reverse_sort_duration = !this.reverse_sort_duration;
|
|
||||||
},
|
|
||||||
toggleCollapse() {
|
|
||||||
this.showMore = !this.showMore;
|
|
||||||
},
|
|
||||||
toggleStar(entry) {
|
|
||||||
if (fb.currentUser !== null) {
|
|
||||||
fb.toggleStar(entry, !entry.star);
|
|
||||||
}
|
|
||||||
entry.star = !entry.star;
|
|
||||||
updateOnLocalStorage("history", this.history);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
<template>
|
|
||||||
<svg
|
|
||||||
version="1.1"
|
|
||||||
id="Capa_1"
|
|
||||||
x="0px"
|
|
||||||
y="0px"
|
|
||||||
viewBox="0 0 612.001 612.001"
|
|
||||||
style="enable-background:new 0 0 612.001 612.001;"
|
|
||||||
xml:space="preserve"
|
|
||||||
>
|
|
||||||
<defs id="defs11" />
|
|
||||||
<g id="g3826" transform="translate(-516.40798,-163.88978)">
|
|
||||||
<circle
|
|
||||||
:fill="color"
|
|
||||||
transform="scale(1,-1)"
|
|
||||||
style="stroke-width:1.19531453"
|
|
||||||
r="178.70923"
|
|
||||||
cy="-501.55591"
|
|
||||||
cx="822.40845"
|
|
||||||
id="circle3814"
|
|
||||||
/>
|
|
||||||
<g id="g3820" transform="translate(516.40798,163.89028)">
|
|
||||||
<g id="g3818">
|
|
||||||
<path
|
|
||||||
:fill="color"
|
|
||||||
id="path3816"
|
|
||||||
data-old_color="#202124"
|
|
||||||
class="active-path"
|
|
||||||
data-original="#202124"
|
|
||||||
d="M 64.601,236.822 C 64.601,394.256 192.786,612 306.001,612 412.582,612 547.4,394.256 547.4,236.822 547.4,79.388 439.322,0 306,0 172.678,0 64.601,79.388 64.601,236.822 Z m 304.12,116.415 c 29.475,-29.475 70.598,-40.195 108.552,-32.173 8.021,37.954 -2.698,79.077 -32.173,108.552 -29.475,29.475 -70.598,40.195 -108.552,32.173 -8.022,-37.955 2.698,-79.078 32.173,-108.552 z M 134.727,321.063 c 37.954,-8.021 79.077,2.698 108.552,32.173 29.475,29.475 40.195,70.598 32.173,108.552 -37.954,8.021 -79.077,-2.698 -108.552,-32.173 -29.475,-29.476 -40.194,-70.598 -32.173,-108.552 z"
|
|
||||||
/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
#circle3814 {
|
|
||||||
/* fill: var(--fg-color); */
|
|
||||||
fill: transparent;
|
|
||||||
}
|
|
||||||
/* #path3816 {
|
|
||||||
fill: var(--bg-color);
|
|
||||||
} */
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
color: {
|
|
||||||
type: String
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,79 +0,0 @@
|
|||||||
<template>
|
|
||||||
<transition name="modal" appear>
|
|
||||||
<div class="modal-backdrop">
|
|
||||||
<div class="modal-wrapper">
|
|
||||||
<div class="modal-container">
|
|
||||||
<div class="modal-header">
|
|
||||||
<slot name="header"></slot>
|
|
||||||
</div>
|
|
||||||
<div class="modal-body">
|
|
||||||
<slot name="body"></slot>
|
|
||||||
</div>
|
|
||||||
<div class="modal-footer">
|
|
||||||
<slot name="footer"></slot>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</transition>
|
|
||||||
</template>
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.modal-backdrop {
|
|
||||||
position: fixed;
|
|
||||||
z-index: 998;
|
|
||||||
top: 0;
|
|
||||||
left: 0;
|
|
||||||
width: 100%;
|
|
||||||
height: 100%;
|
|
||||||
background-color: rgba(0, 0, 0, 0.87);
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
transition: all 0.2s ease;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-wrapper {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
flex-grow: 1;
|
|
||||||
max-width: 720px;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-container {
|
|
||||||
display: flex;
|
|
||||||
flex-grow: 1;
|
|
||||||
flex-direction: column;
|
|
||||||
margin: 16px;
|
|
||||||
padding: 16px;
|
|
||||||
transition: all 0.2s ease;
|
|
||||||
background-color: var(--bg-color);
|
|
||||||
border-radius: 16px;
|
|
||||||
box-shadow: 0px 16px 70px rgba(0, 0, 0, 0.5);
|
|
||||||
max-height: calc(100vh - 32px);
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-body {
|
|
||||||
overflow: auto;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
* The following styles are auto-applied to elements with
|
|
||||||
* transition="modal" when their visibility is toggled
|
|
||||||
* by Vue.js.
|
|
||||||
*
|
|
||||||
* You can easily play with the modal transition by editing
|
|
||||||
* these styles.
|
|
||||||
*/
|
|
||||||
|
|
||||||
.modal-enter,
|
|
||||||
.modal-leave-active {
|
|
||||||
opacity: 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
.modal-enter .modal-container,
|
|
||||||
.modal-leave-active .modal-container {
|
|
||||||
transform: scale(0.8);
|
|
||||||
transition: all 0.2s ease-in-out;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
<template>
|
|
||||||
<fieldset
|
|
||||||
:id="label.toLowerCase()"
|
|
||||||
:class="{ 'no-colored-frames': !frameColorsEnabled }"
|
|
||||||
>
|
|
||||||
<legend @click.prevent="collapse">
|
|
||||||
<span>{{ label }}</span>
|
|
||||||
<i class="material-icons">
|
|
||||||
{{ isCollapsed ? "expand_more" : "expand_less" }}
|
|
||||||
</i>
|
|
||||||
</legend>
|
|
||||||
<div class="collapsible" :class="{ hidden: collapsed }">
|
|
||||||
<slot />
|
|
||||||
</div>
|
|
||||||
</fieldset>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style>
|
|
||||||
fieldset.no-colored-frames legend {
|
|
||||||
color: var(--fg-color);
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
computed: {
|
|
||||||
frameColorsEnabled() {
|
|
||||||
return this.$store.state.postwoman.settings.FRAME_COLORS_ENABLED || false;
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
isCollapsed: false
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
props: {
|
|
||||||
label: {
|
|
||||||
type: String,
|
|
||||||
default: "Section"
|
|
||||||
},
|
|
||||||
collapsed: {
|
|
||||||
type: Boolean
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
collapse({ target }) {
|
|
||||||
const parent = target.parentNode.parentNode;
|
|
||||||
parent.querySelector(".collapsible").classList.toggle("hidden");
|
|
||||||
this.isCollapsed = !this.isCollapsed;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,69 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div
|
|
||||||
class="color"
|
|
||||||
:data-color="color"
|
|
||||||
:class="{ active: active }"
|
|
||||||
v-tooltip="{ content: name || color }"
|
|
||||||
>
|
|
||||||
<span :style="{ backgroundColor: color }" class="preview">
|
|
||||||
<i v-if="active" class="material-icons activeTick">done</i>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.color {
|
|
||||||
display: inline-flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
margin: 8px;
|
|
||||||
border-radius: 100%;
|
|
||||||
border: 3px solid var(--bg-dark-color);
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
&.fg {
|
|
||||||
color: var(--act-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.active {
|
|
||||||
border: 3px solid var(--ac-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
&.fg.active {
|
|
||||||
border: 3px solid var(--fg-color);
|
|
||||||
}
|
|
||||||
|
|
||||||
.preview {
|
|
||||||
vertical-align: middle;
|
|
||||||
display: inline-block;
|
|
||||||
border-radius: 100%;
|
|
||||||
padding: 16px;
|
|
||||||
position: relative;
|
|
||||||
|
|
||||||
.activeTick {
|
|
||||||
position: absolute;
|
|
||||||
top: 50%;
|
|
||||||
left: 50%;
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
color: {
|
|
||||||
type: String,
|
|
||||||
required: true
|
|
||||||
},
|
|
||||||
name: {
|
|
||||||
type: String
|
|
||||||
},
|
|
||||||
active: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,98 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div @click="toggle()">
|
|
||||||
<label class="toggle" :class="{ on: on }" ref="toggle">
|
|
||||||
<span class="handle"></span>
|
|
||||||
</label>
|
|
||||||
<label class="caption">
|
|
||||||
<slot />
|
|
||||||
</label>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
$useBorder: false;
|
|
||||||
$borderColor: var(--fg-light-color);
|
|
||||||
$activeColor: var(--ac-color);
|
|
||||||
$inactiveColor: var(--fg-light-color);
|
|
||||||
|
|
||||||
$inactiveHandleColor: var(--bg-color);
|
|
||||||
$activeHandleColor: var(--act-color);
|
|
||||||
|
|
||||||
$width: 32px;
|
|
||||||
$height: 16px;
|
|
||||||
$handleSpacing: 4px;
|
|
||||||
|
|
||||||
$transition: all 0.2s ease-in-out;
|
|
||||||
|
|
||||||
div {
|
|
||||||
display: inline-block;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
label.caption {
|
|
||||||
vertical-align: middle;
|
|
||||||
cursor: pointer;
|
|
||||||
}
|
|
||||||
|
|
||||||
label.toggle {
|
|
||||||
position: relative;
|
|
||||||
display: inline-block;
|
|
||||||
width: $width;
|
|
||||||
height: $height;
|
|
||||||
border: if($useBorder, 2px solid $borderColor, none);
|
|
||||||
background-color: if($useBorder, transparent, $inactiveColor);
|
|
||||||
vertical-align: middle;
|
|
||||||
|
|
||||||
border-radius: 32px;
|
|
||||||
transition: $transition;
|
|
||||||
box-sizing: initial;
|
|
||||||
padding: 0;
|
|
||||||
margin: 8px 4px;
|
|
||||||
cursor: pointer;
|
|
||||||
|
|
||||||
.handle {
|
|
||||||
position: absolute;
|
|
||||||
display: inline-block;
|
|
||||||
top: 0;
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
margin: $handleSpacing;
|
|
||||||
background-color: $inactiveHandleColor;
|
|
||||||
|
|
||||||
width: #{$height - ($handleSpacing * 2)};
|
|
||||||
height: #{$height - ($handleSpacing * 2)};
|
|
||||||
border-radius: 100px;
|
|
||||||
|
|
||||||
pointer-events: none;
|
|
||||||
transition: $transition;
|
|
||||||
}
|
|
||||||
|
|
||||||
&.on {
|
|
||||||
background-color: $activeColor;
|
|
||||||
border-color: $activeColor;
|
|
||||||
|
|
||||||
.handle {
|
|
||||||
background-color: $activeHandleColor;
|
|
||||||
left: #{$width - $height};
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: {
|
|
||||||
on: {
|
|
||||||
type: Boolean,
|
|
||||||
default: false
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
toggle() {
|
|
||||||
const containsOnClass = this.$refs.toggle.classList.toggle("on");
|
|
||||||
this.$emit("change", containsOnClass);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,9 +0,0 @@
|
|||||||
{
|
|
||||||
"baseUrl": "http://localhost:3000",
|
|
||||||
"integrationFolder": "tests/e2e/integration",
|
|
||||||
"screenshotsFolder": "tests/e2e/screenshots",
|
|
||||||
"fixturesFolder": "tests/e2e/fixtures",
|
|
||||||
"supportFile": "tests/e2e/support",
|
|
||||||
"pluginsFile": false,
|
|
||||||
"video": false
|
|
||||||
}
|
|
||||||
@@ -1,6 +0,0 @@
|
|||||||
{
|
|
||||||
"rules": {
|
|
||||||
".read": false,
|
|
||||||
".write": false
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
export default {
|
|
||||||
name: "textareaAutoHeight",
|
|
||||||
update({ scrollHeight, clientHeight, style }) {
|
|
||||||
if (scrollHeight !== clientHeight) {
|
|
||||||
style.minHeight = `${scrollHeight}px`;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -5,7 +5,7 @@ services:
|
|||||||
build:
|
build:
|
||||||
context: .
|
context: .
|
||||||
volumes:
|
volumes:
|
||||||
- "./.postwoman:/app/.postwoman"
|
- "./.hoppscotch:/app/.hoppscotch"
|
||||||
- "./assets:/app/assets"
|
- "./assets:/app/assets"
|
||||||
- "./directives:/app/directives"
|
- "./directives:/app/directives"
|
||||||
- "./layouts:/app/layouts"
|
- "./layouts:/app/layouts"
|
||||||
@@ -15,6 +15,9 @@ services:
|
|||||||
- "./static:/app/static"
|
- "./static:/app/static"
|
||||||
- "./store:/app/store"
|
- "./store:/app/store"
|
||||||
- "./components:/app/components"
|
- "./components:/app/components"
|
||||||
|
- "./helpers:/app/helpers"
|
||||||
ports:
|
ports:
|
||||||
- "3000:3000"
|
- "3000:3000"
|
||||||
|
environment:
|
||||||
|
HOST: 0.0.0.0
|
||||||
command: "npm run dev"
|
command: "npm run dev"
|
||||||
|
|||||||
@@ -1,15 +0,0 @@
|
|||||||
<!DOCTYPE html>
|
|
||||||
<html lang="en">
|
|
||||||
<head>
|
|
||||||
<meta charset="UTF-8" />
|
|
||||||
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
|
|
||||||
<meta http-equiv="X-UA-Compatible" content="ie=edge" />
|
|
||||||
<title>Postwoman</title>
|
|
||||||
<meta http-equiv="refresh" content="0; url=https://postwoman.io" />
|
|
||||||
<link rel="canonical" href="https://postwoman.io" />
|
|
||||||
</head>
|
|
||||||
|
|
||||||
<body>
|
|
||||||
Redirecting to postwoman.io
|
|
||||||
</body>
|
|
||||||
</html>
|
|
||||||
@@ -1,22 +1,19 @@
|
|||||||
{
|
{
|
||||||
"database": {
|
|
||||||
"rules": "database.rules.json"
|
|
||||||
},
|
|
||||||
"firestore": {
|
"firestore": {
|
||||||
"rules": "firestore.rules",
|
"rules": "firestore.rules",
|
||||||
"indexes": "firestore.indexes.json"
|
"indexes": "firestore.indexes.json"
|
||||||
},
|
},
|
||||||
"hosting": {
|
"hosting": {
|
||||||
"target": "postwoman",
|
"predeploy": [
|
||||||
"public": "dist",
|
"cd packages/hoppscotch-app && mv .env.example .env && npm install -g pnpm && pnpm i && pnpm run generate"
|
||||||
"cleanUrls": true,
|
],
|
||||||
"ignore": [
|
"public": "packages/hoppscotch-app/dist",
|
||||||
"firebase.json",
|
"ignore": ["firebase.json", "**/.*", "**/node_modules/**"],
|
||||||
"**/.*",
|
"rewrites": [
|
||||||
"**/node_modules/**"
|
{
|
||||||
|
"source": "**",
|
||||||
|
"destination": "/index.html"
|
||||||
|
}
|
||||||
]
|
]
|
||||||
},
|
|
||||||
"storage": {
|
|
||||||
"rules": "storage.rules"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,26 +1,4 @@
|
|||||||
{
|
{
|
||||||
// Example:
|
|
||||||
//
|
|
||||||
// "indexes": [
|
|
||||||
// {
|
|
||||||
// "collectionGroup": "widgets",
|
|
||||||
// "queryScope": "COLLECTION",
|
|
||||||
// "fields": [
|
|
||||||
// { "fieldPath": "foo", "arrayConfig": "CONTAINS" },
|
|
||||||
// { "fieldPath": "bar", "mode": "DESCENDING" }
|
|
||||||
// ]
|
|
||||||
// },
|
|
||||||
//
|
|
||||||
// "fieldOverrides": [
|
|
||||||
// {
|
|
||||||
// "collectionGroup": "widgets",
|
|
||||||
// "fieldPath": "baz",
|
|
||||||
// "indexes": [
|
|
||||||
// { "order": "ASCENDING", "queryScope": "COLLECTION" }
|
|
||||||
// ]
|
|
||||||
// },
|
|
||||||
// ]
|
|
||||||
// ]
|
|
||||||
"indexes": [],
|
"indexes": [],
|
||||||
"fieldOverrides": []
|
"fieldOverrides": []
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ service cloud.firestore {
|
|||||||
match /{document=**} {
|
match /{document=**} {
|
||||||
allow read, write: if request.auth.uid != null;
|
allow read, write: if request.auth.uid != null;
|
||||||
}
|
}
|
||||||
// Make sure the uid of the requesting user matches name of the user
|
// Make sure the uid of the requesting user matches the name of the user
|
||||||
// document. The wildcard expression {userId} makes the userId variable
|
// document. The wildcard expression {userId} makes the userId variable
|
||||||
// available in rules.
|
// available in rules.
|
||||||
match /users/{userId} {
|
match /users/{userId} {
|
||||||
|
|||||||
1
functions/.gitignore
vendored
1
functions/.gitignore
vendored
@@ -1 +0,0 @@
|
|||||||
node_modules/
|
|
||||||
192
functions/fb.js
192
functions/fb.js
@@ -1,192 +0,0 @@
|
|||||||
import firebase from "firebase/app";
|
|
||||||
import "firebase/firestore";
|
|
||||||
import "firebase/auth";
|
|
||||||
|
|
||||||
// Initialize Firebase, copied from cloud console
|
|
||||||
const firebaseConfig = {
|
|
||||||
apiKey: "AIzaSyCMsFreESs58-hRxTtiqQrIcimh4i1wbsM",
|
|
||||||
authDomain: "postwoman-api.firebaseapp.com",
|
|
||||||
databaseURL: "https://postwoman-api.firebaseio.com",
|
|
||||||
projectId: "postwoman-api",
|
|
||||||
storageBucket: "postwoman-api.appspot.com",
|
|
||||||
messagingSenderId: "421993993223",
|
|
||||||
appId: "1:421993993223:web:ec0baa8ee8c02ffa1fc6a2",
|
|
||||||
measurementId: "G-ERJ6025CEB"
|
|
||||||
};
|
|
||||||
firebase.initializeApp(firebaseConfig);
|
|
||||||
|
|
||||||
// a reference to the users collection
|
|
||||||
const usersCollection = firebase.firestore().collection("users");
|
|
||||||
|
|
||||||
// the shared state object that any vue component
|
|
||||||
// can get access to
|
|
||||||
export const fb = {
|
|
||||||
currentUser: {},
|
|
||||||
currentFeeds: [],
|
|
||||||
currentSettings: [],
|
|
||||||
currentHistory: [],
|
|
||||||
currentCollections: [],
|
|
||||||
writeFeeds: async (message, label) => {
|
|
||||||
const dt = {
|
|
||||||
createdOn: new Date(),
|
|
||||||
author: fb.currentUser.uid,
|
|
||||||
author_name: fb.currentUser.displayName,
|
|
||||||
author_image: fb.currentUser.photoURL,
|
|
||||||
message,
|
|
||||||
label
|
|
||||||
};
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.collection("feeds")
|
|
||||||
.add(dt)
|
|
||||||
.catch(e => console.error("error inserting", dt, e));
|
|
||||||
},
|
|
||||||
deleteFeed: id => {
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.collection("feeds")
|
|
||||||
.doc(id)
|
|
||||||
.delete()
|
|
||||||
.catch(e => console.error("error deleting", id, e));
|
|
||||||
},
|
|
||||||
writeSettings: async (setting, value) => {
|
|
||||||
const st = {
|
|
||||||
updatedOn: new Date(),
|
|
||||||
author: fb.currentUser.uid,
|
|
||||||
author_name: fb.currentUser.displayName,
|
|
||||||
author_image: fb.currentUser.photoURL,
|
|
||||||
name: setting,
|
|
||||||
value
|
|
||||||
};
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.collection("settings")
|
|
||||||
.doc(setting)
|
|
||||||
.set(st)
|
|
||||||
.catch(e => console.error("error updating", st, e));
|
|
||||||
},
|
|
||||||
writeHistory: async entry => {
|
|
||||||
const hs = entry;
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.collection("history")
|
|
||||||
.add(hs)
|
|
||||||
.catch(e => console.error("error inserting", hs, e));
|
|
||||||
},
|
|
||||||
deleteHistory: entry => {
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.collection("history")
|
|
||||||
.doc(entry.id)
|
|
||||||
.delete()
|
|
||||||
.catch(e => console.error("error deleting", entry, e));
|
|
||||||
},
|
|
||||||
clearHistory: () => {
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.collection("history")
|
|
||||||
.get()
|
|
||||||
.then(({ docs }) => {
|
|
||||||
docs.forEach(e => fb.deleteHistory(e));
|
|
||||||
});
|
|
||||||
},
|
|
||||||
toggleStar: (entry, value) => {
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.collection("history")
|
|
||||||
.doc(entry.id)
|
|
||||||
.update({ star: value })
|
|
||||||
.catch(e => console.error("error deleting", entry, e));
|
|
||||||
},
|
|
||||||
writeCollections: async collection => {
|
|
||||||
const cl = {
|
|
||||||
updatedOn: new Date(),
|
|
||||||
author: fb.currentUser.uid,
|
|
||||||
author_name: fb.currentUser.displayName,
|
|
||||||
author_image: fb.currentUser.photoURL,
|
|
||||||
collection: collection
|
|
||||||
};
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.collection("collections")
|
|
||||||
.doc("sync")
|
|
||||||
.set(cl)
|
|
||||||
.catch(e => console.error("error updating", cl, e));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
// When a user logs in or out, save that in the store
|
|
||||||
firebase.auth().onAuthStateChanged(user => {
|
|
||||||
if (user) {
|
|
||||||
fb.currentUser = user;
|
|
||||||
fb.currentUser.providerData.forEach(profile => {
|
|
||||||
let us = {
|
|
||||||
updatedOn: new Date(),
|
|
||||||
provider: profile.providerId,
|
|
||||||
name: profile.displayName,
|
|
||||||
email: profile.email,
|
|
||||||
photoUrl: profile.photoURL,
|
|
||||||
uid: profile.uid
|
|
||||||
};
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.set(us)
|
|
||||||
.catch(e => console.error("error updating", us, e));
|
|
||||||
});
|
|
||||||
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.collection("feeds")
|
|
||||||
.orderBy("createdOn", "desc")
|
|
||||||
.onSnapshot(feedsRef => {
|
|
||||||
const feeds = [];
|
|
||||||
feedsRef.forEach(doc => {
|
|
||||||
const feed = doc.data();
|
|
||||||
feed.id = doc.id;
|
|
||||||
feeds.push(feed);
|
|
||||||
});
|
|
||||||
fb.currentFeeds = feeds;
|
|
||||||
});
|
|
||||||
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.collection("settings")
|
|
||||||
.onSnapshot(settingsRef => {
|
|
||||||
const settings = [];
|
|
||||||
settingsRef.forEach(doc => {
|
|
||||||
const setting = doc.data();
|
|
||||||
setting.id = doc.id;
|
|
||||||
settings.push(setting);
|
|
||||||
});
|
|
||||||
fb.currentSettings = settings;
|
|
||||||
});
|
|
||||||
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.collection("history")
|
|
||||||
.onSnapshot(historyRef => {
|
|
||||||
const history = [];
|
|
||||||
historyRef.forEach(doc => {
|
|
||||||
const entry = doc.data();
|
|
||||||
entry.id = doc.id;
|
|
||||||
history.push(entry);
|
|
||||||
});
|
|
||||||
fb.currentHistory = history;
|
|
||||||
});
|
|
||||||
|
|
||||||
usersCollection
|
|
||||||
.doc(fb.currentUser.uid)
|
|
||||||
.collection("collections")
|
|
||||||
.onSnapshot(collectionsRef => {
|
|
||||||
const collections = [];
|
|
||||||
collectionsRef.forEach(doc => {
|
|
||||||
const collection = doc.data();
|
|
||||||
collection.id = doc.id;
|
|
||||||
collections.push(collection);
|
|
||||||
});
|
|
||||||
fb.currentCollections = collections[0].collection;
|
|
||||||
});
|
|
||||||
} else {
|
|
||||||
fb.currentUser = null;
|
|
||||||
}
|
|
||||||
});
|
|
||||||
@@ -1,8 +0,0 @@
|
|||||||
// const functions = require('firebase-functions');
|
|
||||||
|
|
||||||
// // Create and Deploy Your First Cloud Functions
|
|
||||||
// // https://firebase.google.com/docs/functions/write-firebase-functions
|
|
||||||
//
|
|
||||||
// exports.helloWorld = functions.https.onRequest((request, response) => {
|
|
||||||
// response.send("Hello from Firebase!");
|
|
||||||
// });
|
|
||||||
@@ -1,24 +0,0 @@
|
|||||||
import AxiosStrategy from "./strategies/AxiosStrategy";
|
|
||||||
import FirefoxStrategy from "./strategies/FirefoxStrategy";
|
|
||||||
import ChromeStrategy, { hasChromeExtensionInstalled } from "./strategies/ChromeStrategy";
|
|
||||||
|
|
||||||
const runAppropriateStrategy = (req, store) => {
|
|
||||||
// Chrome Provides a chrome object for scripts to access
|
|
||||||
// Check its availability to say whether you are in Google Chrome
|
|
||||||
if (window.chrome && hasChromeExtensionInstalled()) {
|
|
||||||
return ChromeStrategy(req, store);
|
|
||||||
}
|
|
||||||
// The firefox plugin injects a function to send requests through it
|
|
||||||
// If that is available, then we can use the FirefoxStrategy
|
|
||||||
if (window.firefoxExtSendRequest) {
|
|
||||||
return FirefoxStrategy(req, store);
|
|
||||||
}
|
|
||||||
|
|
||||||
return AxiosStrategy(req, store);
|
|
||||||
}
|
|
||||||
|
|
||||||
const sendNetworkRequest = (req, store) =>
|
|
||||||
runAppropriateStrategy(req, store)
|
|
||||||
.finally(() => window.$nuxt.$loading.finish());
|
|
||||||
|
|
||||||
export { sendNetworkRequest };
|
|
||||||
1915
functions/package-lock.json
generated
1915
functions/package-lock.json
generated
File diff suppressed because it is too large
Load Diff
@@ -1,22 +0,0 @@
|
|||||||
{
|
|
||||||
"name": "functions",
|
|
||||||
"description": "Cloud Functions for Firebase",
|
|
||||||
"scripts": {
|
|
||||||
"serve": "firebase serve --only functions",
|
|
||||||
"shell": "firebase functions:shell",
|
|
||||||
"start": "npm run shell",
|
|
||||||
"deploy": "firebase deploy --only functions",
|
|
||||||
"logs": "firebase functions:log"
|
|
||||||
},
|
|
||||||
"engines": {
|
|
||||||
"node": "8"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"firebase-admin": "^8.0.0",
|
|
||||||
"firebase-functions": "^3.1.0"
|
|
||||||
},
|
|
||||||
"devDependencies": {
|
|
||||||
"firebase-functions-test": "^0.1.6"
|
|
||||||
},
|
|
||||||
"private": true
|
|
||||||
}
|
|
||||||
@@ -1,175 +0,0 @@
|
|||||||
const PASS = "PASS";
|
|
||||||
const FAIL = "FAIL";
|
|
||||||
const ERROR = "ERROR";
|
|
||||||
|
|
||||||
const styles = {
|
|
||||||
[PASS]: { icon: "check", class: "success-response" },
|
|
||||||
[FAIL]: { icon: "close", class: "cl-error-response" },
|
|
||||||
[ERROR]: { icon: "close", class: "cl-error-response" },
|
|
||||||
none: { icon: "", class: "" }
|
|
||||||
};
|
|
||||||
|
|
||||||
// TODO: probably have to use a more global state for `test`
|
|
||||||
|
|
||||||
export default function runTestScriptWithVariables(script, variables) {
|
|
||||||
let pw = {
|
|
||||||
_errors: [],
|
|
||||||
_testReports: [],
|
|
||||||
_report: "",
|
|
||||||
expect(value) {
|
|
||||||
try {
|
|
||||||
return expect(value, this._testReports);
|
|
||||||
} catch (e) {
|
|
||||||
pw._testReports.push({ result: ERROR, message: e });
|
|
||||||
}
|
|
||||||
},
|
|
||||||
test: (descriptor, func) => test(descriptor, func, pw._testReports)
|
|
||||||
// globals that the script is allowed to have access to.
|
|
||||||
};
|
|
||||||
Object.assign(pw, variables);
|
|
||||||
|
|
||||||
// run pre-request script within this function so that it has access to the pw object.
|
|
||||||
new Function("pw", script)(pw);
|
|
||||||
//
|
|
||||||
const testReports = pw._testReports.map(item => {
|
|
||||||
if (item.result) {
|
|
||||||
item.styles = styles[item.result];
|
|
||||||
} else {
|
|
||||||
item.styles = styles.none;
|
|
||||||
}
|
|
||||||
return item;
|
|
||||||
});
|
|
||||||
return { report: pw._report, errors: pw._errors, testResults: testReports };
|
|
||||||
}
|
|
||||||
|
|
||||||
function test(descriptor, func, _testReports) {
|
|
||||||
_testReports.push({ startBlock: descriptor });
|
|
||||||
try {
|
|
||||||
func();
|
|
||||||
} catch (e) {
|
|
||||||
_testReports.push({ result: ERROR, message: e });
|
|
||||||
}
|
|
||||||
_testReports.push({ endBlock: true });
|
|
||||||
|
|
||||||
// TODO: Organize and generate text report of each {descriptor: true} section in testReports.
|
|
||||||
// add checkmark or x depending on if each testReport is pass=true or pass=false
|
|
||||||
}
|
|
||||||
|
|
||||||
function expect(expectValue, _testReports) {
|
|
||||||
return new Expectation(expectValue, null, _testReports);
|
|
||||||
}
|
|
||||||
|
|
||||||
class Expectation {
|
|
||||||
constructor(expectValue, _not, _testReports) {
|
|
||||||
this.expectValue = expectValue;
|
|
||||||
this.not = _not || new Expectation(this.expectValue, true, _testReports);
|
|
||||||
this._testReports = _testReports; // this values is used within Test.it, which wraps Expectation and passes _testReports value.
|
|
||||||
this._satisfies = function(expectValue, targetValue) {
|
|
||||||
// Used for testing if two values match the expectation, which could be === OR !==, depending on if not
|
|
||||||
// was used. Expectation#_satisfies prevents the need to have an if(this.not) branch in every test method.
|
|
||||||
// Signature is _satisfies([expectValue,] targetValue): if only one argument is given, it is assumed the targetValue, and expectValue is set to this.expectValue
|
|
||||||
if (!targetValue) {
|
|
||||||
targetValue = expectValue;
|
|
||||||
expectValue = this.expectValue;
|
|
||||||
}
|
|
||||||
if (this.not === true) {
|
|
||||||
// test the inverse. this.not is always truthly, but an Expectation that is inverted will always be strictly `true`
|
|
||||||
return expectValue !== targetValue;
|
|
||||||
} else {
|
|
||||||
return expectValue === targetValue;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
_fmtNot(message) {
|
|
||||||
// given a string with "(not)" in it, replaces with "not" or "", depending if the expectation is expecting the positive or inverse (this._not)
|
|
||||||
if (this.not === true) {
|
|
||||||
return message.replace("(not)", "not ");
|
|
||||||
} else {
|
|
||||||
return message.replace("(not)", "");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
_fail(message) {
|
|
||||||
this._testReports.push({ result: FAIL, message });
|
|
||||||
}
|
|
||||||
_pass(message) {
|
|
||||||
this._testReports.push({ result: PASS });
|
|
||||||
}
|
|
||||||
// TEST METHODS DEFINED BELOW
|
|
||||||
// these are the usual methods that would follow expect(...)
|
|
||||||
toBe(value) {
|
|
||||||
return this._satisfies(value)
|
|
||||||
? this._pass()
|
|
||||||
: this._fail(
|
|
||||||
this._fmtNot(`Expected ${this.expectValue} (not)to be ${value}`)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
toHaveProperty(value) {
|
|
||||||
return this._satisfies(this.expectValue.hasOwnProperty(value), true)
|
|
||||||
? this._pass()
|
|
||||||
: this._fail(
|
|
||||||
this._fmtNot(
|
|
||||||
`Expected object ${this.expectValue} to (not)have property ${value}`
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
toBeLevel2xx() {
|
|
||||||
const code = parseInt(this.expectValue);
|
|
||||||
if (Number.isNaN(code)) {
|
|
||||||
return this._fail(
|
|
||||||
`Expected 200-level status but could not parse value ${this.expectValue}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return this._satisfies(code >= 200 && code < 300)
|
|
||||||
? this._pass()
|
|
||||||
: this._fail(
|
|
||||||
this._fmtNot(
|
|
||||||
`Expected ${this.expectValue} to (not)be 200-level status`
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
toBeLevel3xx() {
|
|
||||||
const code = parseInt(this.expectValue);
|
|
||||||
if (Number.isNaN(code)) {
|
|
||||||
return this._fail(
|
|
||||||
`Expected 300-level status but could not parse value ${this.expectValue}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return this._satisfies(code >= 300 && code < 400)
|
|
||||||
? this._pass()
|
|
||||||
: this._fail(
|
|
||||||
this._fmtNot(
|
|
||||||
`Expected ${this.expectValue} to (not)be 300-level status`
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
toBeLevel4xx() {
|
|
||||||
const code = parseInt(this.expectValue);
|
|
||||||
if (Number.isNaN(code)) {
|
|
||||||
return this._fail(
|
|
||||||
`Expected 400-level status but could not parse value ${this.expectValue}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return this._satisfies(code >= 400 && code < 500)
|
|
||||||
? this._pass()
|
|
||||||
: this._fail(
|
|
||||||
this._fmtNot(
|
|
||||||
`Expected ${this.expectValue} to (not)be 400-level status`
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
toBeLevel5xx() {
|
|
||||||
const code = parseInt(this.expectValue);
|
|
||||||
if (Number.isNaN(code)) {
|
|
||||||
return this._fail(
|
|
||||||
`Expected 500-level status but could not parse value ${this.expectValue}`
|
|
||||||
);
|
|
||||||
}
|
|
||||||
return this._satisfies(code >= 500 && code < 600)
|
|
||||||
? this._pass()
|
|
||||||
: this._fail(
|
|
||||||
this._fmtNot(
|
|
||||||
`Expected ${this.expectValue} to (not)be 500-level status`
|
|
||||||
)
|
|
||||||
);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,20 +0,0 @@
|
|||||||
export default function getEnvironmentVariablesFromScript(script) {
|
|
||||||
let _variables = {};
|
|
||||||
|
|
||||||
// the pw object is the proxy by which pre-request scripts can pass variables to the request.
|
|
||||||
// for security and control purposes, this is the only way a pre-request script should modify variables.
|
|
||||||
let pw = {
|
|
||||||
environment: {
|
|
||||||
set: (key, value) => (_variables[key] = value)
|
|
||||||
},
|
|
||||||
env: {
|
|
||||||
set: (key, value) => (_variables[key] = value)
|
|
||||||
}
|
|
||||||
// globals that the script is allowed to have access to.
|
|
||||||
};
|
|
||||||
|
|
||||||
// run pre-request script within this function so that it has access to the pw object.
|
|
||||||
new Function("pw", script)(pw);
|
|
||||||
|
|
||||||
return _variables;
|
|
||||||
}
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
import axios from "axios";
|
|
||||||
|
|
||||||
const axiosWithProxy = async (req, { state }) => {
|
|
||||||
const { data } = await axios.post(
|
|
||||||
state.postwoman.settings.PROXY_URL || "https://postwoman.apollotv.xyz/",
|
|
||||||
req
|
|
||||||
);
|
|
||||||
return data;
|
|
||||||
};
|
|
||||||
|
|
||||||
const axiosWithoutProxy = async (req, _store) => {
|
|
||||||
const res = await axios(req);
|
|
||||||
return res;
|
|
||||||
};
|
|
||||||
|
|
||||||
const axiosStrategy = (req, store) => {
|
|
||||||
if (store.state.postwoman.settings.PROXY_ENABLED) {
|
|
||||||
return axiosWithProxy(req, store);
|
|
||||||
}
|
|
||||||
return axiosWithoutProxy(req, store);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default axiosStrategy;
|
|
||||||
@@ -1,56 +0,0 @@
|
|||||||
const EXTENSION_ID = "amknoiejhlmhancpahfcfcfhllgkpbld";
|
|
||||||
|
|
||||||
// Check if the Chrome Extension is present
|
|
||||||
// The Chrome extension injects an empty span to help detection.
|
|
||||||
// Also check for the presence of window.chrome object to confirm smooth operations
|
|
||||||
export const hasChromeExtensionInstalled = () => {
|
|
||||||
return document.getElementById("chromePWExtensionDetect") !== null;
|
|
||||||
}
|
|
||||||
|
|
||||||
const chromeWithoutProxy = (req, _store) => new Promise((resolve, reject) => {
|
|
||||||
chrome.runtime.sendMessage(
|
|
||||||
EXTENSION_ID, {
|
|
||||||
messageType: "send-req",
|
|
||||||
data: {
|
|
||||||
config: req
|
|
||||||
}
|
|
||||||
}, (message) => {
|
|
||||||
if (message.data.error) {
|
|
||||||
reject(message.data.error);
|
|
||||||
} else {
|
|
||||||
resolve(message.data.response);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
);
|
|
||||||
});
|
|
||||||
|
|
||||||
const chromeWithProxy = (req, { state }) => new Promise((resolve, reject) => {
|
|
||||||
chrome.runtime.sendMessage(
|
|
||||||
EXTENSION_ID, {
|
|
||||||
messageType: "send-req",
|
|
||||||
data: {
|
|
||||||
config: {
|
|
||||||
method: "post",
|
|
||||||
url: state.postwoman.settings.PROXY_URL || "https://postwoman.apollotv.xyz/",
|
|
||||||
data: req
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}, (message) => {
|
|
||||||
if (message.data.error) {
|
|
||||||
reject(error);
|
|
||||||
} else {
|
|
||||||
resolve(message.data.response.data);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
)
|
|
||||||
});
|
|
||||||
|
|
||||||
const chromeStrategy = (req, store) => {
|
|
||||||
if (store.state.postwoman.settings.PROXY_ENABLED) {
|
|
||||||
return chromeWithProxy(req, store);
|
|
||||||
} else {
|
|
||||||
return chromeWithoutProxy(req, store);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
export default chromeStrategy;
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
const firefoxWithProxy = (req, { state }) =>
|
|
||||||
new Promise((resolve, reject) => {
|
|
||||||
const eventListener = event => {
|
|
||||||
window.removeEventListener("firefoxExtSendRequestComplete", event);
|
|
||||||
|
|
||||||
if (event.detail.error) {
|
|
||||||
reject(JSON.parse(event.detail.error));
|
|
||||||
} else {
|
|
||||||
resolve(JSON.parse(event.detail.response).data);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
window.addEventListener("firefoxExtSendRequestComplete", eventListener);
|
|
||||||
|
|
||||||
window.firefoxExtSendRequest({
|
|
||||||
method: "post",
|
|
||||||
url:
|
|
||||||
state.postwoman.settings.PROXY_URL || "https://postwoman.apollotv.xyz/",
|
|
||||||
data: req
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
const firefoxWithoutProxy = (req, _store) =>
|
|
||||||
new Promise((resolve, reject) => {
|
|
||||||
const eventListener = ({ detail }) => {
|
|
||||||
window.removeEventListener(
|
|
||||||
"firefoxExtSendRequestComplete",
|
|
||||||
eventListener
|
|
||||||
);
|
|
||||||
|
|
||||||
if (detail.error) {
|
|
||||||
reject(JSON.parse(detail.error));
|
|
||||||
} else {
|
|
||||||
resolve(JSON.parse(detail.response));
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
window.addEventListener("firefoxExtSendRequestComplete", eventListener);
|
|
||||||
|
|
||||||
window.firefoxExtSendRequest(req);
|
|
||||||
});
|
|
||||||
|
|
||||||
const firefoxStrategy = (req, store) => {
|
|
||||||
if (store.state.postwoman.settings.PROXY_ENABLED) {
|
|
||||||
return firefoxWithProxy(req, store);
|
|
||||||
}
|
|
||||||
return firefoxWithoutProxy(req, store);
|
|
||||||
};
|
|
||||||
|
|
||||||
export default firefoxStrategy;
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
export default function parseTemplateString(string, variables) {
|
|
||||||
if (!variables || !string) {
|
|
||||||
return string;
|
|
||||||
}
|
|
||||||
const searchTerm = /<<([^>]*)>>/g; // "<<myVariable>>"
|
|
||||||
return string.replace(searchTerm, (match, p1) => variables[p1] || "");
|
|
||||||
}
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
export default {
|
|
||||||
home: "Startseite",
|
|
||||||
realtime: "Echtzeit",
|
|
||||||
graphql: "GraphQL",
|
|
||||||
settings: "Einstellungen",
|
|
||||||
request: "Anfrage",
|
|
||||||
install_pwa: "PWA installieren",
|
|
||||||
support_us: "Unterstütze uns",
|
|
||||||
tweet: "Twittern",
|
|
||||||
options: "Optionen",
|
|
||||||
communication: "Kommunikation",
|
|
||||||
endpoint: "Endpunkt",
|
|
||||||
schema: "Schema",
|
|
||||||
theme: "Design",
|
|
||||||
subscribe: "Abonnieren",
|
|
||||||
choose_language: "Sprache auswählen",
|
|
||||||
shortcuts: "Tastenkombinationen",
|
|
||||||
send_request: "Anfrage senden",
|
|
||||||
save_to_collections: "In Sammlungen speichern",
|
|
||||||
copy_request_link: "Anfragelink kopieren",
|
|
||||||
reset_request: "Anfrage zurücksetzen",
|
|
||||||
support_us_on: "Unterstütze uns auf",
|
|
||||||
open_collective: "Open Collective",
|
|
||||||
paypal: "PayPal",
|
|
||||||
patreon: "Patreon",
|
|
||||||
javascript_code: "JavaScript-Code",
|
|
||||||
method: "Methode",
|
|
||||||
path: "Pfad",
|
|
||||||
label: "Beschriftung",
|
|
||||||
again: "Wiederholen",
|
|
||||||
content_type: "Content-Typ",
|
|
||||||
raw_input: "Rohdaten-Eingabe",
|
|
||||||
parameter_list: "Parameterliste",
|
|
||||||
raw_request_body: "Rohdaten der Anfrage",
|
|
||||||
show_code: "Code zeigen",
|
|
||||||
hide_code: "Code ausblenden",
|
|
||||||
show_prerequest_script: "Preanfrageskript anzeigen",
|
|
||||||
hide_prerequest_script: "Preanfrageskript ausblenden",
|
|
||||||
authentication: "Authentifizierung",
|
|
||||||
authentication_type: "Authentifizierungs-Typ",
|
|
||||||
include_in_url: "In URL einfügen",
|
|
||||||
parameters: "Parameter",
|
|
||||||
expand_response: "Antwort ausklappen",
|
|
||||||
collapse_response: "Antwort einklappen",
|
|
||||||
hide_preview: "Vorschau verstecken",
|
|
||||||
preview_html: "HTML-Vorschau",
|
|
||||||
history: "Verlauf",
|
|
||||||
collections: "Kollektionen",
|
|
||||||
import_curl: "cURL importieren",
|
|
||||||
import: "Importieren",
|
|
||||||
generate_code: "Code generieren",
|
|
||||||
request_type: "Anfrage-Typ",
|
|
||||||
generated_code: "Generierter Code",
|
|
||||||
status: "Status",
|
|
||||||
headers: "Headers",
|
|
||||||
websocket: "WebSocket",
|
|
||||||
waiting_for_connection: "(warte auf Verbindung)",
|
|
||||||
message: "Nachricht",
|
|
||||||
sse: "SSE",
|
|
||||||
server: "Server",
|
|
||||||
events: "Ereignisse",
|
|
||||||
url: "URL",
|
|
||||||
get_schema: "Schema abrufen",
|
|
||||||
header_list: "Headerliste",
|
|
||||||
add_new: "Neu hinzufügen",
|
|
||||||
response: "Antwort",
|
|
||||||
query: "Abfrage",
|
|
||||||
queries: "Abfragen",
|
|
||||||
query_variables: "Variablen",
|
|
||||||
mutations: "Mutationen",
|
|
||||||
subscriptions: "Abonnements",
|
|
||||||
types: "Typen",
|
|
||||||
send: "Senden",
|
|
||||||
background: "Hintergrund",
|
|
||||||
color: "Farbe",
|
|
||||||
labels: "Bezeichner",
|
|
||||||
multi_color: "Mehrfarbig",
|
|
||||||
enabled: "Aktiviert",
|
|
||||||
disabled: "Deaktiviert",
|
|
||||||
proxy: "Proxy",
|
|
||||||
postwoman_official_proxy_hosting:
|
|
||||||
"Postwomans offizieller Proxy wird durch ApolloTV bereitgestellt.",
|
|
||||||
read_the: "Lies die",
|
|
||||||
apollotv_privacy_policy: "ApolloTV Datenschutzerklärung",
|
|
||||||
contact_us: "Kontaktiere uns",
|
|
||||||
connect: "Verbinden",
|
|
||||||
disconnect: "Trennen",
|
|
||||||
start: "Start",
|
|
||||||
stop: "Stopp"
|
|
||||||
};
|
|
||||||
264
lang/en-US.js
264
lang/en-US.js
@@ -1,264 +0,0 @@
|
|||||||
export default {
|
|
||||||
home: "Home",
|
|
||||||
realtime: "Realtime",
|
|
||||||
graphql: "GraphQL",
|
|
||||||
settings: "Settings",
|
|
||||||
request: "Request",
|
|
||||||
install_pwa: "Install PWA",
|
|
||||||
support_us: "Support us",
|
|
||||||
tweet: "Tweet",
|
|
||||||
options: "Options",
|
|
||||||
communication: "Communication",
|
|
||||||
endpoint: "Endpoint",
|
|
||||||
schema: "Schema",
|
|
||||||
theme: "Theme",
|
|
||||||
subscribe: "Subscribe",
|
|
||||||
choose_language: "Choose Language",
|
|
||||||
shortcuts: "Shortcuts",
|
|
||||||
send_request: "Send Request",
|
|
||||||
save_to_collections: "Save to Collections",
|
|
||||||
copy_request_link: "Copy Request Link",
|
|
||||||
reset_request: "Reset Request",
|
|
||||||
support_us_on: "Support us on",
|
|
||||||
open_collective: "Open Collective",
|
|
||||||
paypal: "PayPal",
|
|
||||||
patreon: "Patreon",
|
|
||||||
javascript_code: "JavaScript Code",
|
|
||||||
method: "Method",
|
|
||||||
path: "Path",
|
|
||||||
label: "Label",
|
|
||||||
again: "Again",
|
|
||||||
content_type: "Content Type",
|
|
||||||
raw_input: "Raw input",
|
|
||||||
parameter_list: "Parameter List",
|
|
||||||
raw_request_body: "Raw Request Body",
|
|
||||||
show_code: "Show Code",
|
|
||||||
hide_code: "Hide Code",
|
|
||||||
show_prerequest_script: "Show Pre-Request Script",
|
|
||||||
hide_prerequest_script: "Hide Pre-Request Script",
|
|
||||||
authentication: "Authentication",
|
|
||||||
authentication_type: "Authentication type",
|
|
||||||
include_in_url: "Include in URL",
|
|
||||||
parameters: "Parameters",
|
|
||||||
expand_response: "Expand response",
|
|
||||||
collapse_response: "Collapse response",
|
|
||||||
hide_preview: "Hide Preview",
|
|
||||||
preview_html: "Preview HTML",
|
|
||||||
history: "History",
|
|
||||||
collections: "Collections",
|
|
||||||
import_curl: "Import cURL",
|
|
||||||
import: "Import",
|
|
||||||
generate_code: "Generate code",
|
|
||||||
request_type: "Request type",
|
|
||||||
generated_code: "Generated code",
|
|
||||||
status: "Status",
|
|
||||||
headers: "Headers",
|
|
||||||
websocket: "WebSocket",
|
|
||||||
waiting_for_connection: "(waiting for connection)",
|
|
||||||
message: "Message",
|
|
||||||
sse: "SSE",
|
|
||||||
server: "Server",
|
|
||||||
events: "Events",
|
|
||||||
url: "URL",
|
|
||||||
get_schema: "Get schema",
|
|
||||||
header_list: "Header list",
|
|
||||||
add_new: "Add new",
|
|
||||||
response: "Response",
|
|
||||||
query: "Query",
|
|
||||||
queries: "Queries",
|
|
||||||
query_variables: "Variables",
|
|
||||||
mutations: "Mutations",
|
|
||||||
subscriptions: "Subscriptions",
|
|
||||||
types: "Types",
|
|
||||||
send: "Send",
|
|
||||||
background: "Background",
|
|
||||||
color: "Color",
|
|
||||||
labels: "Labels",
|
|
||||||
multi_color: "Multi-color",
|
|
||||||
enabled: "Enabled",
|
|
||||||
disabled: "Disabled",
|
|
||||||
proxy: "Proxy",
|
|
||||||
postwoman_official_proxy_hosting:
|
|
||||||
"Postwoman's Official Proxy is hosted by ApolloTV.",
|
|
||||||
read_the: "Read the",
|
|
||||||
apollotv_privacy_policy: "ApolloTV privacy policy",
|
|
||||||
contact_us: "Contact us",
|
|
||||||
connect: "Connect",
|
|
||||||
disconnect: "Disconnect",
|
|
||||||
start: "Start",
|
|
||||||
stop: "Stop",
|
|
||||||
access_token: "Access Token",
|
|
||||||
token_list: "Token List",
|
|
||||||
get_token: "Get New Token",
|
|
||||||
manage_token: "Manage Access Token",
|
|
||||||
save_token: "Save Access Token",
|
|
||||||
use_token: "Use Saved Token",
|
|
||||||
request_token: "Request Token",
|
|
||||||
save_token_req: "Save Token Request",
|
|
||||||
manage_token_req: "Manage Token Request",
|
|
||||||
use_token_req: "Use Token Request",
|
|
||||||
token_req_name: "Request Name",
|
|
||||||
token_req_details: "Request Details",
|
|
||||||
token_name: "Token Name",
|
|
||||||
oidc_discovery_url: "OIDC Discovery URL",
|
|
||||||
auth_url: "Auth URL",
|
|
||||||
access_token_url: "Access Token URL",
|
|
||||||
client_id: "Client ID",
|
|
||||||
scope: "Scope",
|
|
||||||
state: "State",
|
|
||||||
token_req_list: "Token Request List",
|
|
||||||
no_path: "No path",
|
|
||||||
no_label: "No label",
|
|
||||||
prerequest_script: "Pre-Request Script",
|
|
||||||
no_prerequest_script: "No pre-request script",
|
|
||||||
search_history: "search history",
|
|
||||||
history_empty: "History is empty",
|
|
||||||
history_deleted: "History Deleted",
|
|
||||||
clear: "Clear",
|
|
||||||
clear_all: "Clear All",
|
|
||||||
cleared: "Cleared",
|
|
||||||
close: "Close",
|
|
||||||
sort: "Sort",
|
|
||||||
time: "Time",
|
|
||||||
duration: "Duration",
|
|
||||||
no_duration: "No duration",
|
|
||||||
show_more: "Show more",
|
|
||||||
hide_more: "Hide more",
|
|
||||||
collection: "Collection",
|
|
||||||
current_collection: "Current Collection",
|
|
||||||
select_collection: "Select a Collection",
|
|
||||||
create_collection: "Create a Collection",
|
|
||||||
new: "New",
|
|
||||||
import_export: "Import / Export",
|
|
||||||
more: "More",
|
|
||||||
folder: "Folder",
|
|
||||||
new_folder: "New Folder",
|
|
||||||
my_new_folder: "My New Folder",
|
|
||||||
folder_empty: "Folder is empty",
|
|
||||||
edit_folder: "Edit Folder",
|
|
||||||
edit: "Edit",
|
|
||||||
delete: "Delete",
|
|
||||||
deleted: "Deleted",
|
|
||||||
undo: "Undo",
|
|
||||||
collection_empty: "Collection is empty",
|
|
||||||
new_collection: "New Collection",
|
|
||||||
my_new_collection: "My New Collection",
|
|
||||||
edit_collection: "Edit Collection",
|
|
||||||
edit_request: "Edit Request",
|
|
||||||
save_request_as: "Save Request As",
|
|
||||||
export: "Export",
|
|
||||||
connecting_to: "Connecting to {name}...",
|
|
||||||
connected: "Connected",
|
|
||||||
connected_to: "Connected to {name}",
|
|
||||||
disconnected: "Disconnected",
|
|
||||||
disconnected_from: "Disconnected from {name}",
|
|
||||||
something_went_wrong: "Something went wrong!",
|
|
||||||
error_occurred: "An error has occurred.",
|
|
||||||
browser_support_sse:
|
|
||||||
"This browser doesn't seems to have Server Sent Events support.",
|
|
||||||
log: "Log",
|
|
||||||
no_url: "No URL",
|
|
||||||
run_query: "Run Query",
|
|
||||||
copy_query: "Copy Query",
|
|
||||||
kinda_dark: "Kinda Dark",
|
|
||||||
clearly_white: "Clearly White",
|
|
||||||
just_black: "Just Black",
|
|
||||||
auto_system: "Auth (system)",
|
|
||||||
green: "Green",
|
|
||||||
yellow: "Yellow",
|
|
||||||
pink: "Pink",
|
|
||||||
red: "Red",
|
|
||||||
purple: "Purple",
|
|
||||||
orange: "Orange",
|
|
||||||
cyan: "Cyan",
|
|
||||||
blue: "Blue",
|
|
||||||
loading: "Loading...",
|
|
||||||
fetching: "Fetching...",
|
|
||||||
waiting_send_req: "(waiting to send request)",
|
|
||||||
cancel: "Cancel",
|
|
||||||
save: "Save",
|
|
||||||
dismiss: "Dismiss",
|
|
||||||
are_you_sure: "Are you sure?",
|
|
||||||
yes: "Yes",
|
|
||||||
no: "No",
|
|
||||||
restore: "Restore",
|
|
||||||
add_star: "Add star",
|
|
||||||
remove_star: "Remove star",
|
|
||||||
nothing_found: "Nothing found",
|
|
||||||
replace_current: "Replace current",
|
|
||||||
replace_json: "Replace with JSON",
|
|
||||||
preserve_current: "Preserve current",
|
|
||||||
import_json: "Import from JSON",
|
|
||||||
download_file: "Download file",
|
|
||||||
upload_file: "Upload file",
|
|
||||||
copy_response: "Copy response",
|
|
||||||
copy_code: "Copy code",
|
|
||||||
copy_schema: "Copy Schema",
|
|
||||||
use_request: "Use request",
|
|
||||||
documentation: "Documentation",
|
|
||||||
docs: "Docs",
|
|
||||||
reset_default: "Reset to default",
|
|
||||||
fields: "FIELDS",
|
|
||||||
deprecated: "DEPRECATED",
|
|
||||||
add_one_header: "(add at least one header)",
|
|
||||||
add_one_parameter: "(add at least one parameter)",
|
|
||||||
header_count: "header {count}",
|
|
||||||
parameter_count: "parameter {count}",
|
|
||||||
variable_count: "variable {count}",
|
|
||||||
value_count: "value {count}",
|
|
||||||
send_request_first: "Send a request first",
|
|
||||||
generate_docs: "Generate Documentation",
|
|
||||||
generate_docs_message:
|
|
||||||
"Import any Postwoman Collection to Generate Documentation on-the-go.",
|
|
||||||
generate_docs_first: "Generate documentation first",
|
|
||||||
docs_generated: "Documentation generated",
|
|
||||||
import_collections: "Import collections",
|
|
||||||
optional: "(optional)",
|
|
||||||
json: "JSON",
|
|
||||||
none: "None",
|
|
||||||
username: "Username",
|
|
||||||
password: "Password",
|
|
||||||
token: "Token",
|
|
||||||
payload: "Payload",
|
|
||||||
choose_file: "Choose a file",
|
|
||||||
file_imported: "File imported",
|
|
||||||
f12_details: "(F12 for details)",
|
|
||||||
we_use_cookies: "We use cookies",
|
|
||||||
copied_to_clipboard: "Copied to clipboard",
|
|
||||||
finished_in: "Finished in {duration}ms",
|
|
||||||
check_console_details: "Check console for details.",
|
|
||||||
download_started: "Download started",
|
|
||||||
url_invalid_format: "URL is not formatted properly",
|
|
||||||
curl_invalid_format: "cURL is not formatted properly",
|
|
||||||
enable_proxy: "Try enabling Proxy",
|
|
||||||
complete_config_urls: "Please complete configuration urls.",
|
|
||||||
token_request_saved: "Token request saved",
|
|
||||||
donate_info1:
|
|
||||||
"If you have enjoyed the productivity of using Postwoman, consider donating as a sign of appreciation.",
|
|
||||||
donate_info2:
|
|
||||||
"You can support Postwoman development via the following methods:",
|
|
||||||
one_time_recurring: "One-time or recurring",
|
|
||||||
one_time: "One-time",
|
|
||||||
recurring: "Recurring",
|
|
||||||
wiki: "Wiki",
|
|
||||||
error: "Error",
|
|
||||||
go_home: "Go Home",
|
|
||||||
reload: "Reload",
|
|
||||||
enter_curl: "Enter cURL",
|
|
||||||
empty: "Empty",
|
|
||||||
extensions: "Extensions",
|
|
||||||
extensions_info1: "Browser extension that simplifies access to Postwoman",
|
|
||||||
extensions_info2: "Get Postwoman browser extension!",
|
|
||||||
installed: "Installed",
|
|
||||||
login_with: "Login with",
|
|
||||||
logged_out: "Logged out",
|
|
||||||
logout: "Logout",
|
|
||||||
account: "Account",
|
|
||||||
sync: "Sync",
|
|
||||||
syncHistory: "History",
|
|
||||||
syncCollections: "Collections",
|
|
||||||
turn_on: "Turn on",
|
|
||||||
login_first: "Login first",
|
|
||||||
paste_a_collection: "Paste a Collection",
|
|
||||||
import_from_sync: "Import from Sync"
|
|
||||||
};
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
export default {
|
|
||||||
home: "Inicio",
|
|
||||||
realtime: "Tiempo real",
|
|
||||||
graphql: "GraphQL",
|
|
||||||
settings: "Ajustes",
|
|
||||||
request: "Petición",
|
|
||||||
install_pwa: "Instalar PWA",
|
|
||||||
support_us: "Ayúdanos",
|
|
||||||
tweet: "Tweet",
|
|
||||||
options: "Opciones",
|
|
||||||
communication: "Comunicación",
|
|
||||||
endpoint: "Endpoint",
|
|
||||||
schema: "Esquema",
|
|
||||||
theme: "Tema",
|
|
||||||
subscribe: "Subscribirse",
|
|
||||||
choose_language: "Seleccione un idioma",
|
|
||||||
shortcuts: "Atajos",
|
|
||||||
send_request: "Enviar petición",
|
|
||||||
save_to_collections: "Guardar en las Colecciones",
|
|
||||||
copy_request_link: "Copiar enlace de la petición",
|
|
||||||
reset_request: "Reiniciar Petición",
|
|
||||||
support_us_on: "Ayúdanos en",
|
|
||||||
open_collective: "Open Collective",
|
|
||||||
paypal: "PayPal",
|
|
||||||
patreon: "Patreon",
|
|
||||||
javascript_code: "Código JavaScript",
|
|
||||||
method: "Método",
|
|
||||||
path: "Ruta",
|
|
||||||
label: "Etiqueta",
|
|
||||||
again: "De nuevo",
|
|
||||||
content_type: "Tipo de Contenido",
|
|
||||||
raw_input: "Datos sin Procesar",
|
|
||||||
parameter_list: "Lista de Parámetros",
|
|
||||||
raw_request_body: "Cuerpo de la Solicitud sin Procesar",
|
|
||||||
show_code: "Mostrar el código",
|
|
||||||
hide_code: "Ocultar el código",
|
|
||||||
show_prerequest_script: "Mostrar Script pre solicitud",
|
|
||||||
hide_prerequest_script: "Ocultar Script pre solicitud",
|
|
||||||
authentication: "Autenticación",
|
|
||||||
authentication_type: "Tipo de autenticación",
|
|
||||||
include_in_url: "Incluir en el URL",
|
|
||||||
parameters: "Parámetros",
|
|
||||||
expand_response: "Ampliar Respuesta",
|
|
||||||
collapse_response: "Contraer Respuesta",
|
|
||||||
hide_preview: "Ocultar la vista previa",
|
|
||||||
preview_html: "Vista Previa del HTML",
|
|
||||||
history: "Historial",
|
|
||||||
collections: "Colecciones",
|
|
||||||
import_curl: "Importar cURL",
|
|
||||||
import: "Importar",
|
|
||||||
generate_code: "Generar código",
|
|
||||||
request_type: "Tipo de Petición",
|
|
||||||
generated_code: "Código Generado",
|
|
||||||
status: "Estado",
|
|
||||||
headers: "Cabeceras",
|
|
||||||
websocket: "WebSocket",
|
|
||||||
waiting_for_connection: "(esperando por conexión)",
|
|
||||||
message: "Mensaje",
|
|
||||||
sse: "SSE",
|
|
||||||
server: "Servidor",
|
|
||||||
events: "Eventos",
|
|
||||||
url: "URL",
|
|
||||||
get_schema: "Obtener esquema",
|
|
||||||
header_list: "Lista de Cabeceras",
|
|
||||||
add_new: "Agregar nuevo",
|
|
||||||
response: "Respuesta",
|
|
||||||
query: "Consulta",
|
|
||||||
queries: "Consultas",
|
|
||||||
query_variables: "Variables",
|
|
||||||
mutations: "Mutaciones",
|
|
||||||
subscriptions: "Subscripciones",
|
|
||||||
types: "Tipos",
|
|
||||||
send: "Enviar",
|
|
||||||
background: "Fondo",
|
|
||||||
color: "Color",
|
|
||||||
labels: "Etiquetas",
|
|
||||||
multi_color: "Multicolor",
|
|
||||||
enabled: "Habilitado",
|
|
||||||
disabled: "Deshabilitado",
|
|
||||||
proxy: "Proxy",
|
|
||||||
postwoman_official_proxy_hosting:
|
|
||||||
"Proxy Oficial de Postwoman está hospedado en ApolloTV.",
|
|
||||||
read_the: "Leer la",
|
|
||||||
apollotv_privacy_policy: "Política de Privacidad de ApolloTV",
|
|
||||||
contact_us: "Contáctenos",
|
|
||||||
connect: "Conectar",
|
|
||||||
disconnect: "Desconectar",
|
|
||||||
start: "Comienzo",
|
|
||||||
stop: "Detener"
|
|
||||||
};
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
export default {
|
|
||||||
home: "خانه",
|
|
||||||
realtime: "بلادرنگ",
|
|
||||||
graphql: "GraphQL",
|
|
||||||
settings: "تنظیمات",
|
|
||||||
request: "درخواست",
|
|
||||||
install_pwa: "نصب PWA",
|
|
||||||
support_us: "از ما حمایت کنید",
|
|
||||||
tweet: "Tweet",
|
|
||||||
options: "گزینهها",
|
|
||||||
communication: "ارتباط",
|
|
||||||
endpoint: "Endpoint",
|
|
||||||
schema: "Schema",
|
|
||||||
theme: "پوسته",
|
|
||||||
subscribe: "اشتراک",
|
|
||||||
choose_language: "تغییر زبان",
|
|
||||||
shortcuts: "میانبرها",
|
|
||||||
send_request: "ارسال درخواست",
|
|
||||||
save_to_collections: "ذخیره در کلکسیون",
|
|
||||||
copy_request_link: "کپی لینک درخواست",
|
|
||||||
reset_request: "بازنشانی درخواست",
|
|
||||||
support_us_on: "حمایت از ما از طریق",
|
|
||||||
open_collective: "Open Collective",
|
|
||||||
paypal: "PayPal",
|
|
||||||
patreon: "Patreon",
|
|
||||||
javascript_code: "کد JavaScript",
|
|
||||||
method: "متد",
|
|
||||||
path: "مسیر",
|
|
||||||
label: "برچسب",
|
|
||||||
again: "دوباره",
|
|
||||||
content_type: "Content Type",
|
|
||||||
raw_input: "ورودی raw",
|
|
||||||
parameter_list: "لیست پارامترها",
|
|
||||||
raw_request_body: "Raw Request Body",
|
|
||||||
show_code: "نمایش کد",
|
|
||||||
hide_code: "عدم نمایش کد",
|
|
||||||
show_prerequest_script: "Show Pre-Request Script",
|
|
||||||
hide_prerequest_script: "Hide Pre-Request Script",
|
|
||||||
authentication: "Authentication",
|
|
||||||
authentication_type: "Authentication type",
|
|
||||||
include_in_url: "در URL گنجانده شود",
|
|
||||||
parameters: "پارامترها",
|
|
||||||
expand_response: "نمایش کامل پاسخ",
|
|
||||||
collapse_response: "نمایش مختصر پاسخ",
|
|
||||||
hide_preview: "مخفی کردن نمایش",
|
|
||||||
preview_html: "نمایش HTML",
|
|
||||||
history: "تاریخچه",
|
|
||||||
collections: "کلکسیون",
|
|
||||||
import_curl: "وارد کردن cURL",
|
|
||||||
import: "وارد کردن",
|
|
||||||
generate_code: "تولید کد",
|
|
||||||
request_type: "Request type",
|
|
||||||
generated_code: "کد تولید شده",
|
|
||||||
status: "Status",
|
|
||||||
headers: "Headers",
|
|
||||||
websocket: "WebSocket",
|
|
||||||
waiting_for_connection: "(منتظر برقراری اتصال)",
|
|
||||||
message: "پیام",
|
|
||||||
sse: "SSE",
|
|
||||||
server: "سرور",
|
|
||||||
events: "رویداد",
|
|
||||||
url: "URL",
|
|
||||||
get_schema: "دریافت Schema",
|
|
||||||
header_list: "لیست Header",
|
|
||||||
add_new: "افزودن",
|
|
||||||
response: "Response",
|
|
||||||
query: "Query",
|
|
||||||
queries: "Queries",
|
|
||||||
query_variables: "Variables",
|
|
||||||
mutations: "Mutations",
|
|
||||||
subscriptions: "Subscriptions",
|
|
||||||
types: "Types",
|
|
||||||
send: "ارسال",
|
|
||||||
background: "پس زمینه",
|
|
||||||
color: "رنگ",
|
|
||||||
labels: "برچسبها",
|
|
||||||
multi_color: "چند رنگی",
|
|
||||||
enabled: "فعال",
|
|
||||||
disabled: "غیر فعال",
|
|
||||||
proxy: "پراکسی",
|
|
||||||
postwoman_official_proxy_hosting:
|
|
||||||
"پراکسی Postwoman برروی هاست ApolloTV قرار دارد.",
|
|
||||||
read_the: "بخوانید",
|
|
||||||
apollotv_privacy_policy: "خط مشی رازداری ApolloTV",
|
|
||||||
contact_us: "Contact us",
|
|
||||||
connect: "Connect",
|
|
||||||
disconnect: "Disconnect",
|
|
||||||
start: "Start",
|
|
||||||
stop: "Stop"
|
|
||||||
};
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
export default {
|
|
||||||
home: "Accueil",
|
|
||||||
realtime: "Temps réel",
|
|
||||||
graphql: "GraphQL",
|
|
||||||
settings: "Paramètres",
|
|
||||||
request: "Request",
|
|
||||||
install_pwa: "Installer la PWA",
|
|
||||||
support_us: "Nous supporter",
|
|
||||||
tweet: "Tweeter",
|
|
||||||
options: "Options",
|
|
||||||
communication: "Communication",
|
|
||||||
endpoint: "Endpoint",
|
|
||||||
schema: "Schéma",
|
|
||||||
theme: "Thème",
|
|
||||||
subscribe: "S'inscrire",
|
|
||||||
choose_language: "Sélectionner une langue",
|
|
||||||
shortcuts: "Raccourcis",
|
|
||||||
send_request: "Envoyer la requête",
|
|
||||||
save_to_collections: "Sauvegarder dans les collections",
|
|
||||||
copy_request_link: "Copier le lien de la requête",
|
|
||||||
reset_request: "Réinitialiser la requête",
|
|
||||||
support_us_on: "Supportez-nous sur",
|
|
||||||
open_collective: "Ouvrir Collective",
|
|
||||||
paypal: "PayPal",
|
|
||||||
patreon: "Patreon",
|
|
||||||
javascript_code: "Code JavaScript",
|
|
||||||
method: "Méthode",
|
|
||||||
path: "Chemin d'accès",
|
|
||||||
label: "Libellé",
|
|
||||||
again: "Réessayer",
|
|
||||||
content_type: "Type de contenu",
|
|
||||||
raw_input: "Texte brut",
|
|
||||||
parameter_list: "Liste des paramètres",
|
|
||||||
raw_request_body: "Corps de la requête en texte brut",
|
|
||||||
show_code: "Afficher le code",
|
|
||||||
hide_code: "Masquer le code",
|
|
||||||
show_prerequest_script: "Afficher le script de pré-requête",
|
|
||||||
hide_prerequest_script: "Masquer le script de pré-requête",
|
|
||||||
authentication: "Authentification",
|
|
||||||
authentication_type: "Type d'authentification",
|
|
||||||
include_in_url: "Inclure dans l'URL",
|
|
||||||
parameters: "Paramètres",
|
|
||||||
expand_response: "Agrandir la réponse",
|
|
||||||
collapse_response: "Réduire la réponse",
|
|
||||||
hide_preview: "Masquer la prévisualisation",
|
|
||||||
preview_html: "Prévisualiser le HTML",
|
|
||||||
history: "Historique",
|
|
||||||
collections: "Collections",
|
|
||||||
import_curl: "Importer en cURL",
|
|
||||||
importer: "Importer",
|
|
||||||
generate_code: "Générer le code",
|
|
||||||
request_type: "Type de requête",
|
|
||||||
generated_code: "Code généré",
|
|
||||||
status: "Statut",
|
|
||||||
headers: "En-têtes",
|
|
||||||
websocket: "WebSocket",
|
|
||||||
waiting_for_connection: "(en attente de connexion)",
|
|
||||||
message: "Message",
|
|
||||||
sse: "SSE",
|
|
||||||
server: "Serveur",
|
|
||||||
events: "Évènements",
|
|
||||||
url: "URL",
|
|
||||||
get_schema: "Récuperer le schéma",
|
|
||||||
header_list: "Liste d'en-têtes",
|
|
||||||
add_new: "Ajouter",
|
|
||||||
response: "Réponse",
|
|
||||||
query: "Requête",
|
|
||||||
queries: "Requêtes",
|
|
||||||
query_variables: "Variables",
|
|
||||||
mutations: "Mutations",
|
|
||||||
subscriptions: "Abonnements",
|
|
||||||
types: "Types",
|
|
||||||
send: "Envoyer",
|
|
||||||
background: "Arrière-plan",
|
|
||||||
color: "Couleur",
|
|
||||||
labels: "Libellés",
|
|
||||||
multi_color: "Multi-couleurs",
|
|
||||||
enabled: "Activé",
|
|
||||||
disabled: "Désactivé",
|
|
||||||
proxy: "Proxy",
|
|
||||||
postwoman_official_proxy_hosting:
|
|
||||||
"Le proxy officiel de Postwoman est hébergé par ApolloTV.",
|
|
||||||
read_the: "Lire la",
|
|
||||||
apollotv_privacy_policy: "politique de confidentialité ApolloTV",
|
|
||||||
contact_us: "Contactez nous",
|
|
||||||
connect: "Relier",
|
|
||||||
disconnect: "Déconnecter",
|
|
||||||
start: "Début",
|
|
||||||
stop: "Arrêtez"
|
|
||||||
};
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
export default {
|
|
||||||
home: "Beranda",
|
|
||||||
realtime: "Waktu Nyata",
|
|
||||||
graphql: "GraphQL",
|
|
||||||
settings: "Pengaturan",
|
|
||||||
request: "Permintaan",
|
|
||||||
install_pwa: "Pasang PWA",
|
|
||||||
support_us: "Dukung kami",
|
|
||||||
tweet: "Cuitkan",
|
|
||||||
options: "Opsi",
|
|
||||||
communication: "Komunikasi",
|
|
||||||
endpoint: "Titik Akhir",
|
|
||||||
schema: "Skema",
|
|
||||||
theme: "Tema",
|
|
||||||
subscribe: "Berlangganan",
|
|
||||||
choose_language: "Pilih Bahasa",
|
|
||||||
shortcuts: "Pintasan",
|
|
||||||
send_request: "Kirim Permintaan",
|
|
||||||
save_to_collections: "Simpan ke Koleksi",
|
|
||||||
copy_request_link: "Salin Tautan Permintaan",
|
|
||||||
reset_request: "Atur Ulang Permintaan",
|
|
||||||
support_us_on: "Dukung kami di",
|
|
||||||
open_collective: "Open Collective",
|
|
||||||
paypal: "Paypal",
|
|
||||||
patreon: "Patreon",
|
|
||||||
javascript_code: "Kode Javascript",
|
|
||||||
method: "Metode",
|
|
||||||
path: "Lintasan",
|
|
||||||
label: "Label",
|
|
||||||
again: "Lagi",
|
|
||||||
content_type: "Jenis Konten",
|
|
||||||
raw_input: "Masukan mentah",
|
|
||||||
parameter_list: "Daftar parameter",
|
|
||||||
raw_request_body: "Badan Permintaan Mentah",
|
|
||||||
show_code: "Tampilkan Kode",
|
|
||||||
hide_code: "Sembunyikan Kode",
|
|
||||||
show_prerequest_script: "Tampilkan Skrip Pra-Permintaan",
|
|
||||||
hide_prerequest_script: "Sembunyikan Skrip Pra-Permintaan",
|
|
||||||
authentication: "Autentikasi",
|
|
||||||
authentication_type: "Jenis Autentikasi",
|
|
||||||
include_in_url: "Sertakan di URL",
|
|
||||||
parameters: "Parameter",
|
|
||||||
expand_response: "Bentangkan Balasan",
|
|
||||||
collapse_response: "Ciutkan Balasan",
|
|
||||||
hide_preview: "Sembunyikan Pratinjau",
|
|
||||||
preview_html: "Pratinjau HTML",
|
|
||||||
history: "Riwayat",
|
|
||||||
collections: "Koleksi",
|
|
||||||
import_curl: "Impor cURL",
|
|
||||||
import: "Impor",
|
|
||||||
generate_code: "Hasilkan kode",
|
|
||||||
request_type: "Jenis permintaan",
|
|
||||||
generated_code: "Kode yang dihasilkan",
|
|
||||||
status: "Status",
|
|
||||||
headers: "Header",
|
|
||||||
websocket: "WebSocket",
|
|
||||||
waiting_for_connection: "(Menunggu sambungan)",
|
|
||||||
message: "Pesan",
|
|
||||||
sse: "SSE",
|
|
||||||
server: "Peladen",
|
|
||||||
events: "Kejadian",
|
|
||||||
url: "URL",
|
|
||||||
get_schema: "Ambil skema",
|
|
||||||
header_list: "Daftar header",
|
|
||||||
add_new: "Tambah baru",
|
|
||||||
response: "Balasan",
|
|
||||||
query: "Kueri",
|
|
||||||
queries: "Kueri",
|
|
||||||
query_variables: "Variables",
|
|
||||||
mutations: "Mutasi",
|
|
||||||
subscriptions: "Langganan",
|
|
||||||
types: "Jenis",
|
|
||||||
send: "Kirim",
|
|
||||||
background: "Latar belakang",
|
|
||||||
color: "Warna",
|
|
||||||
labels: "Label",
|
|
||||||
multi_color: "Warna beragam",
|
|
||||||
enabled: "diaktifkan",
|
|
||||||
disabled: "dinonaktifkan",
|
|
||||||
proxy: "Proksi",
|
|
||||||
postwoman_official_proxy_hosting:
|
|
||||||
"Proksi Resmi Postwoman dalam penginangan ApolloTV.",
|
|
||||||
read_the: "Bacalah",
|
|
||||||
apollotv_privacy_policy: "kebijakan privasi ApolloTV",
|
|
||||||
contact_us: "Hubungi kami",
|
|
||||||
connect: "Menghubungkan",
|
|
||||||
disconnect: "Memutuskan",
|
|
||||||
start: "Mulai",
|
|
||||||
stop: "Berhenti"
|
|
||||||
};
|
|
||||||
245
lang/ja-JP.js
245
lang/ja-JP.js
@@ -1,245 +0,0 @@
|
|||||||
export default {
|
|
||||||
home: "ホーム",
|
|
||||||
realtime: "リアルタイム",
|
|
||||||
graphql: "GraphQL",
|
|
||||||
settings: "設定",
|
|
||||||
request: "リクエスト",
|
|
||||||
install_pwa: "PWAをインストール",
|
|
||||||
support_us: "寄付",
|
|
||||||
tweet: "ツイート",
|
|
||||||
options: "オプション",
|
|
||||||
communication: "通信",
|
|
||||||
endpoint: "エンドポイント",
|
|
||||||
schema: "スキーマ",
|
|
||||||
theme: "テーマ",
|
|
||||||
subscribe: "登録",
|
|
||||||
choose_language: "言語の選択",
|
|
||||||
shortcuts: "ショートカット",
|
|
||||||
send_request: "リクエストを送信",
|
|
||||||
save_to_collections: "コレクションに保存",
|
|
||||||
copy_request_link: "リクエストURLをコピー",
|
|
||||||
reset_request: "リクエストをリセット",
|
|
||||||
support_us_on: "以下より寄付",
|
|
||||||
open_collective: "Open Collective",
|
|
||||||
paypal: "PayPal",
|
|
||||||
patreon: "Patreon",
|
|
||||||
javascript_code: "JavaScriptコード",
|
|
||||||
method: "メソッド",
|
|
||||||
path: "パス",
|
|
||||||
label: "ラベル",
|
|
||||||
again: "",
|
|
||||||
content_type: "Content Type",
|
|
||||||
raw_input: "Raw入力",
|
|
||||||
parameter_list: "パラメータリスト",
|
|
||||||
raw_request_body: "Rawリクエストボディー",
|
|
||||||
show_code: "コードを表示",
|
|
||||||
hide_code: "コードを非表示",
|
|
||||||
show_prerequest_script: "プレリクエストスクリプトを表示",
|
|
||||||
hide_prerequest_script: "プレリクエストスクリプトを非表示",
|
|
||||||
authentication: "認証",
|
|
||||||
authentication_type: "認証タイプ",
|
|
||||||
include_in_url: "URLに含む",
|
|
||||||
parameters: "パラメータ",
|
|
||||||
expand_response: "レスポンスを広げる",
|
|
||||||
collapse_response: "レスポンスを狭める",
|
|
||||||
hide_preview: "プレビューしない",
|
|
||||||
preview_html: "HTMLプレビュー表示",
|
|
||||||
history: "履歴",
|
|
||||||
collections: "コレクション",
|
|
||||||
import_curl: "cURLをインポート",
|
|
||||||
import: "インポート",
|
|
||||||
generate_code: "コード生成",
|
|
||||||
request_type: "リクエストタイプ",
|
|
||||||
generated_code: "生成されたコード",
|
|
||||||
status: "ステータス",
|
|
||||||
headers: "ヘッダー",
|
|
||||||
websocket: "ウェブソケット",
|
|
||||||
waiting_for_connection: "(接続待ち)",
|
|
||||||
message: "メッセージ",
|
|
||||||
sse: "SSE",
|
|
||||||
server: "サーバ",
|
|
||||||
events: "イベント",
|
|
||||||
url: "URL",
|
|
||||||
get_schema: "スキーマを取得",
|
|
||||||
header_list: "ヘッダーリスト",
|
|
||||||
add_new: "追加",
|
|
||||||
response: "レスポンス",
|
|
||||||
query: "クエリ",
|
|
||||||
queries: "クエリ",
|
|
||||||
query_variables: "変数",
|
|
||||||
mutations: "ミューテーション",
|
|
||||||
subscriptions: "サブスクリプション",
|
|
||||||
types: "タイプ",
|
|
||||||
send: "送信",
|
|
||||||
background: "背景",
|
|
||||||
color: "色",
|
|
||||||
labels: "ラベル",
|
|
||||||
multi_color: "マルチカラー",
|
|
||||||
enabled: "有効",
|
|
||||||
disabled: "無効",
|
|
||||||
proxy: "プロキシ",
|
|
||||||
postwoman_official_proxy_hosting:
|
|
||||||
"Postwomanの公式プロキシは、Apollo TVがホストしています。",
|
|
||||||
read_the: "プライバシーポリシー",
|
|
||||||
apollotv_privacy_policy: "を読む",
|
|
||||||
contact_us: "お問い合わせ",
|
|
||||||
connect: "接続",
|
|
||||||
disconnect: "切断",
|
|
||||||
start: "開始",
|
|
||||||
stop: "停止",
|
|
||||||
access_token: "アクセストークン",
|
|
||||||
token_list: "トークンリスト",
|
|
||||||
get_token: "新しいトークンを取得",
|
|
||||||
manage_token: "アクセストークンを管理",
|
|
||||||
save_token: "アクセストークンを保存",
|
|
||||||
use_token: "アクセストークンを使用",
|
|
||||||
request_token: "トークンをリクエスト",
|
|
||||||
save_token_req: "トークンリクエストを保存",
|
|
||||||
manage_token_req: "トークンリクエストを管理",
|
|
||||||
use_token_req: "トークンリクエストを使用",
|
|
||||||
token_req_name: "リクエスト名",
|
|
||||||
token_req_details: "リクエスト詳細",
|
|
||||||
token_name: "トークン名",
|
|
||||||
oidc_discovery_url: "OIDC Discovery URL",
|
|
||||||
auth_url: "認証URL",
|
|
||||||
access_token_url: "アクセストークンURL",
|
|
||||||
client_id: "クライアントID",
|
|
||||||
scope: "スコープ",
|
|
||||||
state: "ステート",
|
|
||||||
token_req_list: "トークンリクエストリスト",
|
|
||||||
no_path: "パス無し",
|
|
||||||
no_label: "ラベル無し",
|
|
||||||
prerequest_script: "プレリクエストスクリプト",
|
|
||||||
no_prerequest_script: "プレリクエストスクリプト無し",
|
|
||||||
search_history: "検索履歴",
|
|
||||||
history_empty: "履歴が空です",
|
|
||||||
history_deleted: "履歴が削除された",
|
|
||||||
clear: "クリア",
|
|
||||||
clear_all: "全てクリア",
|
|
||||||
cleared: "クリアされた",
|
|
||||||
close: "閉じる",
|
|
||||||
sort: "ソート",
|
|
||||||
time: "時間",
|
|
||||||
duration: "期間",
|
|
||||||
no_duration: "期間なし",
|
|
||||||
show_more: "もっと表示する",
|
|
||||||
hide_more: "隠す",
|
|
||||||
collection: "コレクション",
|
|
||||||
current_collection: "現在のコレクション",
|
|
||||||
select_collection: "コレクションを選択",
|
|
||||||
create_collection: "コレクションを作成",
|
|
||||||
new: "新規",
|
|
||||||
import_export: "インポート・エクスポート",
|
|
||||||
more: "More",
|
|
||||||
folder: "フォルダ",
|
|
||||||
new_folder: "新しいフォルダー",
|
|
||||||
my_new_folder: "私の新しいフォルダー",
|
|
||||||
folder_empty: "フォルダーが空です",
|
|
||||||
edit_folder: "フォルダーを編集",
|
|
||||||
edit: "編集",
|
|
||||||
delete: "削除",
|
|
||||||
deleted: "削除された",
|
|
||||||
undo: "元に戻す",
|
|
||||||
collection_empty: "コレクションが空です",
|
|
||||||
new_collection: "新しいコレクション",
|
|
||||||
my_new_collection: "私の新しいコレクション",
|
|
||||||
edit_collection: "コレクションを編集",
|
|
||||||
edit_request: "リクエストを編集",
|
|
||||||
save_request_as: "名前を付けてリクエストを保存",
|
|
||||||
export: "エクスポート",
|
|
||||||
connecting_to: "{name}に接続中...",
|
|
||||||
connected: "接続した",
|
|
||||||
connected_to: "{name}に接続した",
|
|
||||||
disconnected: "切断された",
|
|
||||||
disconnected_from: "{name}から切断された",
|
|
||||||
something_went_wrong: "何かの問題が起きた",
|
|
||||||
error_occurred: "エラーが発生した",
|
|
||||||
browser_support_sse: "このブラウザはサーバー送信イベントのサポートがないようです。",
|
|
||||||
log: "ログ",
|
|
||||||
no_url: "URL無し",
|
|
||||||
run_query: "クエリを実行",
|
|
||||||
copy_query: "クエリをコピー",
|
|
||||||
kinda_dark: "ちょっと暗い",
|
|
||||||
clearly_white: "明らかに白",
|
|
||||||
just_black: "ただの黒",
|
|
||||||
auto_system: "オート(システム)",
|
|
||||||
green: "緑",
|
|
||||||
yellow: "黄",
|
|
||||||
pink: "ピンク",
|
|
||||||
red: "赤",
|
|
||||||
purple: "紫",
|
|
||||||
orange: "オレンジ",
|
|
||||||
cyan: "シヤン",
|
|
||||||
blue: "青",
|
|
||||||
loading: "ロード中...",
|
|
||||||
fetching: "フェッチ中...",
|
|
||||||
waiting_send_req: "(リクエスト送信待ち)",
|
|
||||||
cancel: "キャンセル",
|
|
||||||
save: "保存",
|
|
||||||
dismiss: "Dismiss",
|
|
||||||
are_you_sure: "よろしいですか?",
|
|
||||||
yes: "はい",
|
|
||||||
no: "いいえ",
|
|
||||||
restore: "リストア",
|
|
||||||
add_star: "星を付ける",
|
|
||||||
remove_star: "星を外す",
|
|
||||||
nothing_found: "何も見つからない",
|
|
||||||
replace_current: "置換",
|
|
||||||
replace_json: "JSONに置換",
|
|
||||||
preserve_current: "保持",
|
|
||||||
import_json: "JSONをインポート",
|
|
||||||
download_file: "ファイルをダウンロード",
|
|
||||||
upload_file: "ファイルをアップロード",
|
|
||||||
copy_response: "レスポンスをコピー",
|
|
||||||
copy_code: "コードをコピー",
|
|
||||||
copy_schema: "スキーマをコピー",
|
|
||||||
use_request: "リクエストを使用",
|
|
||||||
documentation: "ドキュメンテーション",
|
|
||||||
docs: "ドキュメント",
|
|
||||||
reset_default: "デフォルトにリセット",
|
|
||||||
fields: "FIELDS",
|
|
||||||
deprecated: "DEPRECATED",
|
|
||||||
add_one_header: "(ヘッダーを少なくとも1つ追加してください)",
|
|
||||||
add_one_parameter: "(パラメータを少なくとも1つ追加してください)",
|
|
||||||
header_count: "ヘッダー {count}",
|
|
||||||
parameter_count: "パラメータ {count}",
|
|
||||||
variable_count: "変数 {count}",
|
|
||||||
value_count: "値 {count}",
|
|
||||||
send_request_first: "リクエストを先に送信してください",
|
|
||||||
generate_docs: "ドキュメンテーションを生成",
|
|
||||||
generate_docs_message: "Postwomanのコレクションをインポートし、直ちにドキュメンテーションを生成",
|
|
||||||
generate_docs_first: "ドキュメントを先に生成してください",
|
|
||||||
docs_generated: "ドキュメンテーションを生成した",
|
|
||||||
import_collections: "コレクションをインポート",
|
|
||||||
optional: "(オプション)",
|
|
||||||
json: "JSON",
|
|
||||||
none: "なし",
|
|
||||||
username: "ユーザー名",
|
|
||||||
password: "パスワード",
|
|
||||||
token: "トークン",
|
|
||||||
payload: "ペイロード",
|
|
||||||
choose_file: "ファイルを選択",
|
|
||||||
file_imported: "ファイルをインポートした",
|
|
||||||
f12_details: "(F12を押して詳細を確認してください)",
|
|
||||||
we_use_cookies: "クッキーを使用します。",
|
|
||||||
copied_to_clipboard: "クリップボードにコピーした",
|
|
||||||
finished_in: "{duration}msで終了した",
|
|
||||||
check_console_details: "コンソールより詳細を確認してください",
|
|
||||||
download_started: "ダウンロードを開始した",
|
|
||||||
url_invalid_format: "URLが正しくフォーマットされていない",
|
|
||||||
curl_invalid_format: "cURLが正しくフォーマットされていない",
|
|
||||||
enable_proxy: "プロキシを有効にしてみてください",
|
|
||||||
complete_config_urls: "設定URLsを入力してください",
|
|
||||||
token_request_saved: "トークンリクエストを保存した",
|
|
||||||
donate_info1: "Postwomanを非常に役に立つと思われる場合、感謝の印として寄付のご検討をお願いします。",
|
|
||||||
donate_info2: "以下の方法でPostwomanの開発をサポートできます:",
|
|
||||||
one_time_recurring: "一度又は定期的",
|
|
||||||
one_time: "一度",
|
|
||||||
recurring: "定期的",
|
|
||||||
wiki: "Wiki",
|
|
||||||
error: "エラー",
|
|
||||||
go_home: "ホームに戻る",
|
|
||||||
reload: "リロード",
|
|
||||||
enter_curl: "cURLを入力",
|
|
||||||
empty: "空"
|
|
||||||
};
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
export default {
|
|
||||||
home: "Home",
|
|
||||||
realtime: "Tempo real",
|
|
||||||
graphql: "GraphQL",
|
|
||||||
settings: "Configurações",
|
|
||||||
request: "Request",
|
|
||||||
install_pwa: "Instalar PWA",
|
|
||||||
support_us: "Nos ajude",
|
|
||||||
tweet: "Tweet",
|
|
||||||
options: "Opções",
|
|
||||||
communication: "Comunicação",
|
|
||||||
endpoint: "Endpoint",
|
|
||||||
schema: "Schema",
|
|
||||||
theme: "Tema",
|
|
||||||
subscribe: "Subscribe",
|
|
||||||
choose_language: "Escolher idioma",
|
|
||||||
shortcuts: "Atalhos",
|
|
||||||
send_request: "Enviar request",
|
|
||||||
save_to_collections: "Salvar nas coleções",
|
|
||||||
copy_request_link: "Copiar link da request",
|
|
||||||
reset_request: "Reiniciar request",
|
|
||||||
support_us_on: "Nos ajude no",
|
|
||||||
open_collective: "Abrir coletivamente",
|
|
||||||
paypal: "Paypal",
|
|
||||||
patreon: "Patreon",
|
|
||||||
javascript_code: "Codigo JavaScript",
|
|
||||||
method: "Método",
|
|
||||||
path: "Caminho",
|
|
||||||
label: "Label",
|
|
||||||
again: "Novamente",
|
|
||||||
content_type: "Content Type",
|
|
||||||
raw_input: "Raw input",
|
|
||||||
parameter_list: "Lista de parâmetros",
|
|
||||||
raw_request_body: "Raw request body",
|
|
||||||
show_code: "Mostrar código",
|
|
||||||
hide_code: "Esconder código",
|
|
||||||
show_prerequest_script: "Mostrar script de pré-request",
|
|
||||||
hide_prerequest_script: "Esconder script de pré-request",
|
|
||||||
authentication: "Autenticação",
|
|
||||||
authentication_type: "Tipo de autenticação",
|
|
||||||
include_in_url: "Incluir na url",
|
|
||||||
parameters: "Parâmetros",
|
|
||||||
expand_response: "Expandir response",
|
|
||||||
collapse_response: "Esconder response",
|
|
||||||
hide_preview: "Esconder preview",
|
|
||||||
preview_html: "Preview html",
|
|
||||||
history: "Histórico",
|
|
||||||
collections: "Coleções",
|
|
||||||
import_curl: "Importar curl",
|
|
||||||
import: "Importar",
|
|
||||||
generate_code: "Gerar código",
|
|
||||||
request_type: "Tipo de request",
|
|
||||||
generated_code: "Código gerado",
|
|
||||||
status: "Status",
|
|
||||||
headers: "Headers",
|
|
||||||
websocket: "Websocket",
|
|
||||||
waiting_for_connection: "(aguardando conexão)",
|
|
||||||
message: "Mensagem",
|
|
||||||
sse: "SSE",
|
|
||||||
server: "Servidor",
|
|
||||||
events: "Eventos",
|
|
||||||
url: "URL",
|
|
||||||
get_schema: "Get schema",
|
|
||||||
header_list: "Lista de headers",
|
|
||||||
add_new: "Adicionar novo",
|
|
||||||
response: "Response",
|
|
||||||
query: "Query",
|
|
||||||
queries: "Queries",
|
|
||||||
query_variables: "Variáveis",
|
|
||||||
mutations: "Mutações",
|
|
||||||
subscriptions: "Assinaturas",
|
|
||||||
types: "Tipos",
|
|
||||||
send: "Enviar",
|
|
||||||
background: "Fundo",
|
|
||||||
color: "Cor",
|
|
||||||
labels: "Labels",
|
|
||||||
multi_color: "Multi cor",
|
|
||||||
enabled: "Ativado",
|
|
||||||
disabled: "Desativado",
|
|
||||||
proxy: "Proxy",
|
|
||||||
postwoman_official_proxy_hosting: "Postwoman's alojamento proxy oficial",
|
|
||||||
read_the: "Leia o",
|
|
||||||
apollotv_privacy_policy: "ApolloTV Política de Privacidade",
|
|
||||||
contact_us: "Contate-Nos",
|
|
||||||
connect: "Conectar",
|
|
||||||
disconnect: "Desconectar",
|
|
||||||
start: "Começar",
|
|
||||||
stop: "Pare"
|
|
||||||
};
|
|
||||||
@@ -1,90 +0,0 @@
|
|||||||
export default {
|
|
||||||
home: "Ana Sayfa",
|
|
||||||
realtime: "Realtime",
|
|
||||||
graphql: "GraphQL",
|
|
||||||
settings: "Ayarlar",
|
|
||||||
request: "İstek",
|
|
||||||
install_pwa: "PWA yükle",
|
|
||||||
support_us: "Bize destek ol",
|
|
||||||
tweet: "Tweet",
|
|
||||||
options: "Options",
|
|
||||||
communication: "İletişim",
|
|
||||||
endpoint: "Endpoint",
|
|
||||||
schema: "Taslak",
|
|
||||||
theme: "Tema",
|
|
||||||
subscribe: "Abonelik",
|
|
||||||
choose_language: "Dil seç",
|
|
||||||
shortcuts: "Kısayollar",
|
|
||||||
send_request: "İstek gönder",
|
|
||||||
save_to_collections: "Koleksiyonları kaydet",
|
|
||||||
copy_request_link: "İstek adresini kopyala",
|
|
||||||
reset_request: "İstekleri resetle",
|
|
||||||
support_us_on: "Bizi destekle",
|
|
||||||
open_collective: "Open Collective",
|
|
||||||
paypal: "PayPal",
|
|
||||||
patreon: "Patreon",
|
|
||||||
javascript_code: "JavaScript code",
|
|
||||||
method: "Metot",
|
|
||||||
path: "Yol",
|
|
||||||
label: "Etiket",
|
|
||||||
again: "Yeniden",
|
|
||||||
content_type: "İçerik tipi",
|
|
||||||
raw_input: "Raw giriş",
|
|
||||||
parameter_list: "Parametre listesi",
|
|
||||||
raw_request_body: "Raw istek içeriği",
|
|
||||||
show_code: "Kodu göster",
|
|
||||||
hide_code: "Kodu gizle",
|
|
||||||
show_prerequest_script: "Pre-Request scriptini göster",
|
|
||||||
hide_prerequest_script: "Pre-Request scriptini gizle",
|
|
||||||
authentication: "Authentication",
|
|
||||||
authentication_type: "Authentication tipi",
|
|
||||||
include_in_url: "URL'den içeri aktar",
|
|
||||||
parameters: "Parametre",
|
|
||||||
expand_response: "Cevabı genişlet",
|
|
||||||
collapse_response: "Cevap daralt",
|
|
||||||
hide_preview: "Görüntülemeyi gizle",
|
|
||||||
preview_html: "HTML formatında görüntüle",
|
|
||||||
history: "Geçmiş",
|
|
||||||
collections: "Koleksiyonlar",
|
|
||||||
import_curl: "cURL içeri aktar",
|
|
||||||
import: "İçeri Aktar",
|
|
||||||
generate_code: "Kod Üret",
|
|
||||||
request_type: "Request tipi",
|
|
||||||
generated_code: "Üretilen Kod",
|
|
||||||
status: "Durum",
|
|
||||||
headers: "Headers",
|
|
||||||
websocket: "WebSocket",
|
|
||||||
waiting_for_connection: "(esperando por conexión)",
|
|
||||||
message: "Mesaj",
|
|
||||||
sse: "SSE",
|
|
||||||
server: "Server",
|
|
||||||
events: "Events",
|
|
||||||
url: "URL",
|
|
||||||
get_schema: "Taslak",
|
|
||||||
header_list: "Header listesi",
|
|
||||||
add_new: "Yeni Ekle",
|
|
||||||
response: "Cevap",
|
|
||||||
query: "Sorgu",
|
|
||||||
queries: "Sorgular",
|
|
||||||
query_variables: "Değişkenler",
|
|
||||||
mutations: "Değişimler",
|
|
||||||
subscriptions: "Aboneler",
|
|
||||||
types: "Tipler",
|
|
||||||
send: "Gönder",
|
|
||||||
background: "Arka Plan",
|
|
||||||
color: "Renk",
|
|
||||||
labels: "Etiketler",
|
|
||||||
multi_color: "Çoklu renk",
|
|
||||||
enabled: "Aktif",
|
|
||||||
disabled: "Aktif değil",
|
|
||||||
proxy: "Proxy",
|
|
||||||
postwoman_official_proxy_hosting:
|
|
||||||
"Proxy Oficial de Postwoman está hospedado en ApolloTV.",
|
|
||||||
read_the: "Leer la",
|
|
||||||
apollotv_privacy_policy: "ApolloTV gizlilik politikaları",
|
|
||||||
contact_us: "Bizimle iletişime geçin",
|
|
||||||
connect: "Bağlan",
|
|
||||||
disconnect: "Kesmek",
|
|
||||||
start: "Başla",
|
|
||||||
stop: "Durdurmak"
|
|
||||||
};
|
|
||||||
@@ -1,89 +0,0 @@
|
|||||||
export default {
|
|
||||||
home: "主页",
|
|
||||||
realtime: "长连接",
|
|
||||||
graphql: "GraphQL",
|
|
||||||
settings: "设置",
|
|
||||||
request: "请求",
|
|
||||||
install_pwa: "安装PWA应用",
|
|
||||||
support_us: "支持我们",
|
|
||||||
tweet: "推特",
|
|
||||||
options: "选项",
|
|
||||||
communication: "联系我们",
|
|
||||||
endpoint: "服务端点",
|
|
||||||
schema: "模式",
|
|
||||||
theme: "主题",
|
|
||||||
subscribe: "订阅",
|
|
||||||
choose_language: "选择语言",
|
|
||||||
shortcuts: "快捷键",
|
|
||||||
send_request: "发送请求",
|
|
||||||
save_to_collections: "保存到收藏夹",
|
|
||||||
copy_request_link: "复制请求链接",
|
|
||||||
reset_request: "重置请求",
|
|
||||||
support_us_on: "支持我们",
|
|
||||||
open_collective: "Open Collective",
|
|
||||||
paypal: "Paypal",
|
|
||||||
patreon: "Patreon",
|
|
||||||
javascript_code: "JavaScript代码",
|
|
||||||
method: "方法",
|
|
||||||
path: "路径",
|
|
||||||
label: "标签",
|
|
||||||
again: "重试",
|
|
||||||
content_type: "内容类型",
|
|
||||||
raw_input: "raw数据",
|
|
||||||
parameter_list: "参数列表",
|
|
||||||
raw_request_body: "raw请求主体",
|
|
||||||
show_code: "显示代码",
|
|
||||||
hide_code: "隐藏代码",
|
|
||||||
show_prerequest_script: "显示预请求脚本",
|
|
||||||
hide_prerequest_script: "隐藏预请求脚本",
|
|
||||||
authentication: "认证方式",
|
|
||||||
authentication_type: "认证类型",
|
|
||||||
include_in_url: "包含在URL中",
|
|
||||||
parameters: "参数",
|
|
||||||
expand_response: "展开显示响应内容",
|
|
||||||
collapse_response: "折叠显示响应内容",
|
|
||||||
hide_preview: "隐藏预览",
|
|
||||||
preview_html: "预览HTML",
|
|
||||||
history: "历史记录",
|
|
||||||
collections: "收藏夹",
|
|
||||||
import_curl: "批量导入",
|
|
||||||
import: "导入",
|
|
||||||
generate_code: "生成代码",
|
|
||||||
request_type: "请求类型",
|
|
||||||
generated_code: "生成的代码",
|
|
||||||
status: "状态码",
|
|
||||||
headers: "请求头",
|
|
||||||
websocket: "Websocket",
|
|
||||||
waiting_for_connection: "(等待连接)",
|
|
||||||
message: "消息内容",
|
|
||||||
sse: "SSE",
|
|
||||||
server: "Server",
|
|
||||||
events: "事件",
|
|
||||||
url: "地址",
|
|
||||||
get_schema: "获取模式",
|
|
||||||
header_list: "请求头列表",
|
|
||||||
add_new: "添加",
|
|
||||||
response: "响应",
|
|
||||||
query: "查询",
|
|
||||||
queries: "查询",
|
|
||||||
query_variables: "变数",
|
|
||||||
mutations: "Mutations",
|
|
||||||
subscriptions: "订阅",
|
|
||||||
types: "种类",
|
|
||||||
send: "发送",
|
|
||||||
background: "背景",
|
|
||||||
color: "颜色",
|
|
||||||
labels: "标签",
|
|
||||||
multi_color: "彩色",
|
|
||||||
enabled: "已启用",
|
|
||||||
disabled: "已禁用",
|
|
||||||
proxy: "代理",
|
|
||||||
postwoman_official_proxy_hosting: "Postwoman的官方代理由ApolloTV托管",
|
|
||||||
read_the: "阅读",
|
|
||||||
apollotv_privacy_policy: "ApolloTV隐私政策",
|
|
||||||
contact_us: "联系我们",
|
|
||||||
connect: "连接",
|
|
||||||
disconnect: "断开",
|
|
||||||
start: "开始",
|
|
||||||
stop: "停止"
|
|
||||||
};
|
|
||||||
@@ -1,844 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="wrapper">
|
|
||||||
<div class="content">
|
|
||||||
<div class="columns">
|
|
||||||
<aside class="nav-first">
|
|
||||||
<nav class="primary-nav">
|
|
||||||
<!--
|
|
||||||
We're using manual checks for linkActive because the query string
|
|
||||||
seems to mess up the nuxt-link active class.
|
|
||||||
-->
|
|
||||||
<nuxt-link
|
|
||||||
:to="localePath('index')"
|
|
||||||
:class="linkActive('/')"
|
|
||||||
v-tooltip.right="$t('home')"
|
|
||||||
:aria-label="$t('home')"
|
|
||||||
>
|
|
||||||
<logo alt class="material-icons" style="height: 24px;"></logo>
|
|
||||||
</nuxt-link>
|
|
||||||
<nuxt-link
|
|
||||||
:to="localePath('realtime')"
|
|
||||||
:class="linkActive('/realtime')"
|
|
||||||
v-tooltip.right="$t('realtime')"
|
|
||||||
>
|
|
||||||
<i class="material-icons">settings_input_hdmi</i>
|
|
||||||
</nuxt-link>
|
|
||||||
<nuxt-link
|
|
||||||
:to="localePath('graphql')"
|
|
||||||
:class="linkActive('/graphql')"
|
|
||||||
v-tooltip.right="$t('graphql')"
|
|
||||||
:aria-label="$t('graphql')"
|
|
||||||
>
|
|
||||||
<svg
|
|
||||||
class="material-icons"
|
|
||||||
version="1.1"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
x="0px"
|
|
||||||
y="0px"
|
|
||||||
viewBox="0 0 400 400"
|
|
||||||
>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<rect
|
|
||||||
x="122"
|
|
||||||
y="-0.4"
|
|
||||||
transform="matrix(-0.866 -0.5 0.5 -0.866 163.3196 363.3136)"
|
|
||||||
width="16.6"
|
|
||||||
height="320.3"
|
|
||||||
/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<rect x="39.8" y="272.2" width="320.3" height="16.6" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<rect
|
|
||||||
x="37.9"
|
|
||||||
y="312.2"
|
|
||||||
transform="matrix(-0.866 -0.5 0.5 -0.866 83.0693 663.3409)"
|
|
||||||
width="185"
|
|
||||||
height="16.6"
|
|
||||||
/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<rect
|
|
||||||
x="177.1"
|
|
||||||
y="71.1"
|
|
||||||
transform="matrix(-0.866 -0.5 0.5 -0.866 463.3409 283.0693)"
|
|
||||||
width="185"
|
|
||||||
height="16.6"
|
|
||||||
/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<rect
|
|
||||||
x="122.1"
|
|
||||||
y="-13"
|
|
||||||
transform="matrix(-0.5 -0.866 0.866 -0.5 126.7903 232.1221)"
|
|
||||||
width="16.6"
|
|
||||||
height="185"
|
|
||||||
/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<rect
|
|
||||||
x="109.6"
|
|
||||||
y="151.6"
|
|
||||||
transform="matrix(-0.5 -0.866 0.866 -0.5 266.0828 473.3766)"
|
|
||||||
width="320.3"
|
|
||||||
height="16.6"
|
|
||||||
/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<g><rect x="52.5" y="107.5" width="16.6" height="185" /></g>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<rect x="330.9" y="107.5" width="16.6" height="185" />
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<g>
|
|
||||||
<g>
|
|
||||||
<rect
|
|
||||||
x="262.4"
|
|
||||||
y="240.1"
|
|
||||||
transform="matrix(-0.5 -0.866 0.866 -0.5 126.7953 714.2875)"
|
|
||||||
width="14.5"
|
|
||||||
height="160.9"
|
|
||||||
/>
|
|
||||||
</g>
|
|
||||||
</g>
|
|
||||||
<path
|
|
||||||
d="M369.5,297.9c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8C373.5,259.9,379.2,281.2,369.5,297.9"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M90.9,137c-9.6,16.7-31,22.4-47.7,12.8c-16.7-9.6-22.4-31-12.8-47.7c9.6-16.7,31-22.4,47.7-12.8C94.8,99,100.5,120.3,90.9,137"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M30.5,297.9c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7C61.4,320.3,40.1,314.6,30.5,297.9"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M309.1,137c-9.6-16.7-3.9-38,12.8-47.7c16.7-9.6,38-3.9,47.7,12.8c9.6,16.7,3.9,38-12.8,47.7C340.1,159.4,318.7,153.7,309.1,137"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M200,395.8c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9C234.9,380.1,219.3,395.8,200,395.8"
|
|
||||||
/>
|
|
||||||
<path
|
|
||||||
d="M200,74c-19.3,0-34.9-15.6-34.9-34.9c0-19.3,15.6-34.9,34.9-34.9c19.3,0,34.9,15.6,34.9,34.9C234.9,58.4,219.3,74,200,74"
|
|
||||||
/>
|
|
||||||
</g>
|
|
||||||
</svg>
|
|
||||||
</nuxt-link>
|
|
||||||
<nuxt-link
|
|
||||||
:to="localePath('doc')"
|
|
||||||
:class="linkActive('/doc')"
|
|
||||||
v-tooltip.right="$t('documentation')"
|
|
||||||
:aria-label="$t('documentation')"
|
|
||||||
>
|
|
||||||
<i class="material-icons">books</i>
|
|
||||||
</nuxt-link>
|
|
||||||
<nuxt-link
|
|
||||||
:to="localePath('settings')"
|
|
||||||
:class="linkActive('/settings')"
|
|
||||||
v-tooltip.right="$t('settings')"
|
|
||||||
:aria-label="$t('settings')"
|
|
||||||
>
|
|
||||||
<i class="material-icons">settings</i>
|
|
||||||
</nuxt-link>
|
|
||||||
</nav>
|
|
||||||
<div v-if="$route.path === '/'">
|
|
||||||
<nav class="secondary-nav">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="#request" v-tooltip.right="$t('request')">
|
|
||||||
<i class="material-icons">cloud_upload</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#options" v-tooltip.right="$t('options')">
|
|
||||||
<i class="material-icons">toc</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#response" v-tooltip.right="$t('response')">
|
|
||||||
<i class="material-icons">cloud_download</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
<div v-else-if="$route.path === '/realtime'">
|
|
||||||
<nav class="secondary-nav">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="#request" v-tooltip.right="$t('request')">
|
|
||||||
<i class="material-icons">cloud_upload</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#response" v-tooltip.right="$t('communication')">
|
|
||||||
<i class="material-icons">cloud_download</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
<div v-else-if="$route.path === '/graphql'">
|
|
||||||
<nav class="secondary-nav">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="#endpoint" v-tooltip.right="$t('endpoint')">
|
|
||||||
<i class="material-icons">cloud</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#schema" v-tooltip.right="$t('schema')">
|
|
||||||
<i class="material-icons">assignment_returned</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#query" v-tooltip.right="$t('query')">
|
|
||||||
<i class="material-icons">cloud_upload</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#response" v-tooltip.right="$t('response')">
|
|
||||||
<i class="material-icons">cloud_download</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
<div v-else-if="$route.path === '/doc'">
|
|
||||||
<nav class="secondary-nav">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="#collections" v-tooltip.right="$t('collections')">
|
|
||||||
<i class="material-icons">folder</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#documentation" v-tooltip.right="'Documentation'">
|
|
||||||
<i class="material-icons">insert_drive_file</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
<div v-else-if="$route.path === '/settings'">
|
|
||||||
<nav class="secondary-nav">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<a href="#account" v-tooltip.right="$t('account')">
|
|
||||||
<i class="material-icons">person</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#theme" v-tooltip.right="$t('theme')">
|
|
||||||
<i class="material-icons">brush</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
<li>
|
|
||||||
<a href="#proxy" v-tooltip.right="$t('proxy')">
|
|
||||||
<i class="material-icons">public</i>
|
|
||||||
</a>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</nav>
|
|
||||||
</div>
|
|
||||||
</aside>
|
|
||||||
<div class="main" id="main">
|
|
||||||
<header class="header">
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<span class="slide-in">
|
|
||||||
<nuxt-link :to="localePath('index')">
|
|
||||||
<h1 class="logo">Postwoman</h1>
|
|
||||||
</nuxt-link>
|
|
||||||
</span>
|
|
||||||
<span>
|
|
||||||
<a
|
|
||||||
href="https://github.com/liyasthomas/postwoman"
|
|
||||||
target="_blank"
|
|
||||||
aria-label="GitHub"
|
|
||||||
rel="noopener"
|
|
||||||
>
|
|
||||||
<button class="icon" aria-label="GitHub" v-tooltip="'GitHub'">
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="24"
|
|
||||||
height="24"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
class="material-icons"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M12 0c-6.626 0-12 5.373-12 12 0 5.302 3.438 9.8 8.207 11.387.599.111.793-.261.793-.577v-2.234c-3.338.726-4.033-1.416-4.033-1.416-.546-1.387-1.333-1.756-1.333-1.756-1.089-.745.083-.729.083-.729 1.205.084 1.839 1.237 1.839 1.237 1.07 1.834 2.807 1.304 3.492.997.107-.775.418-1.305.762-1.604-2.665-.305-5.467-1.334-5.467-5.931 0-1.311.469-2.381 1.236-3.221-.124-.303-.535-1.524.117-3.176 0 0 1.008-.322 3.301 1.23.957-.266 1.983-.399 3.003-.404 1.02.005 2.047.138 3.006.404 2.291-1.552 3.297-1.23 3.297-1.23.653 1.653.242 2.874.118 3.176.77.84 1.235 1.911 1.235 3.221 0 4.609-2.807 5.624-5.479 5.921.43.372.823 1.102.823 2.222v3.293c0 .319.192.694.801.576 4.765-1.589 8.199-6.086 8.199-11.386 0-6.627-5.373-12-12-12z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
id="installPWA"
|
|
||||||
@click.prevent="showInstallPrompt()"
|
|
||||||
v-tooltip="$t('install_pwa')"
|
|
||||||
>
|
|
||||||
<i class="material-icons">offline_bolt</i>
|
|
||||||
</button>
|
|
||||||
<login v-if="!fb.currentUser" />
|
|
||||||
<span v-if="fb.currentUser">
|
|
||||||
<v-popover>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
v-tooltip="
|
|
||||||
(fb.currentUser.displayName ||
|
|
||||||
'<label><i>Name not found</i></label>') +
|
|
||||||
'<br>' +
|
|
||||||
(fb.currentUser.email ||
|
|
||||||
'<label><i>Email not found</i></label>')
|
|
||||||
"
|
|
||||||
>
|
|
||||||
<img
|
|
||||||
v-if="fb.currentUser.photoURL"
|
|
||||||
:src="fb.currentUser.photoURL"
|
|
||||||
class="material-icons"
|
|
||||||
/>
|
|
||||||
<i v-else class="material-icons">account_circle</i>
|
|
||||||
</button>
|
|
||||||
<template slot="popover">
|
|
||||||
<div>
|
|
||||||
<nuxt-link :to="localePath('settings')" v-close-popover>
|
|
||||||
<button class="icon">
|
|
||||||
<i class="material-icons">settings</i>
|
|
||||||
<span>
|
|
||||||
{{ $t("settings") }}
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
</nuxt-link>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="logout" v-close-popover>
|
|
||||||
<i class="material-icons">exit_to_app</i>
|
|
||||||
<span>{{ $t("logout") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</v-popover>
|
|
||||||
</span>
|
|
||||||
<v-popover>
|
|
||||||
<button class="icon" v-tooltip="$t('more')">
|
|
||||||
<i class="material-icons">more_vert</i>
|
|
||||||
</button>
|
|
||||||
<template slot="popover">
|
|
||||||
<div>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
@click="showExtensions = true"
|
|
||||||
v-close-popover
|
|
||||||
>
|
|
||||||
<i class="material-icons">extension</i>
|
|
||||||
<span>{{ $t("extensions") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
@click="showShortcuts = true"
|
|
||||||
v-close-popover
|
|
||||||
>
|
|
||||||
<i class="material-icons">keyboard</i>
|
|
||||||
<span>{{ $t("shortcuts") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
@click="showSupport = true"
|
|
||||||
v-close-popover
|
|
||||||
>
|
|
||||||
<i class="material-icons">favorite</i>
|
|
||||||
<span>{{ $t("support_us") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<button
|
|
||||||
class="icon"
|
|
||||||
onClick="window.open('https://twitter.com/share?text=👽 Postwoman • API request builder - Helps you create your requests faster, saving you precious time on your development&url=https://postwoman.io&hashtags=postwoman&via=liyasthomas');"
|
|
||||||
v-close-popover
|
|
||||||
>
|
|
||||||
<svg
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="24"
|
|
||||||
height="24"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M24 4.557c-.883.392-1.832.656-2.828.775 1.017-.609 1.798-1.574 2.165-2.724-.951.564-2.005.974-3.127 1.195-.897-.957-2.178-1.555-3.594-1.555-3.179 0-5.515 2.966-4.797 6.045-4.091-.205-7.719-2.165-10.148-5.144-1.29 2.213-.669 5.108 1.523 6.574-.806-.026-1.566-.247-2.229-.616-.054 2.281 1.581 4.415 3.949 4.89-.693.188-1.452.232-2.224.084.626 1.956 2.444 3.379 4.6 3.419-2.07 1.623-4.678 2.348-7.29 2.04 2.179 1.397 4.768 2.212 7.548 2.212 9.142 0 14.307-7.721 13.995-14.646.962-.695 1.797-1.562 2.457-2.549z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
<span>{{ $t("tweet") }}</span>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</v-popover>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</header>
|
|
||||||
<nuxt />
|
|
||||||
<footer class="footer">
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<span v-if="version.name" class="mono">
|
|
||||||
<a
|
|
||||||
class="link"
|
|
||||||
:href="
|
|
||||||
'https://github.com/liyasthomas/postwoman/releases/tag/' +
|
|
||||||
version.name
|
|
||||||
"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
v-tooltip="'GitHub'"
|
|
||||||
>
|
|
||||||
{{ version.name }}
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
class="link"
|
|
||||||
href="https://www.netlify.com"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
>
|
|
||||||
Powered by Netlify
|
|
||||||
</a>
|
|
||||||
<!-- <span v-if="version.hash">
|
|
||||||
-
|
|
||||||
<a
|
|
||||||
:href="'https://github.com/liyasthomas/postwoman/commit/' + version.hash"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
>{{version.hash}}</a>
|
|
||||||
</span> -->
|
|
||||||
<!-- <span v-if="version.variant">({{version.variant}})</span> -->
|
|
||||||
</span>
|
|
||||||
<span>
|
|
||||||
<a
|
|
||||||
href="https://liyasthomas.web.app"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
>
|
|
||||||
<button class="icon" v-tooltip="'Liyas Thomas'">
|
|
||||||
🦄
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
<a
|
|
||||||
href="mailto:liyascthomas@gmail.com"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
>
|
|
||||||
<button class="icon" v-tooltip="$t('contact_us')">
|
|
||||||
<i class="material-icons">email</i>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
<v-popover>
|
|
||||||
<button class="icon" v-tooltip="$t('choose_language')">
|
|
||||||
<i class="material-icons">translate</i>
|
|
||||||
</button>
|
|
||||||
<template slot="popover">
|
|
||||||
<div v-for="locale in availableLocales" :key="locale.code">
|
|
||||||
<nuxt-link :to="switchLocalePath(locale.code)">
|
|
||||||
<button class="icon" v-close-popover>
|
|
||||||
{{ locale.name }}
|
|
||||||
</button>
|
|
||||||
</nuxt-link>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
</v-popover>
|
|
||||||
</span>
|
|
||||||
</div>
|
|
||||||
</footer>
|
|
||||||
</div>
|
|
||||||
<aside class="nav-second"></aside>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<modal v-if="showExtensions" @close="showExtensions = false">
|
|
||||||
<div slot="header">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<h3 class="title">{{ $t("extensions") }}</h3>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="showExtensions = false">
|
|
||||||
<i class="material-icons">close</i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="body">
|
|
||||||
<p class="info">
|
|
||||||
{{ $t("extensions_info1") }}
|
|
||||||
</p>
|
|
||||||
<div>
|
|
||||||
<a
|
|
||||||
href="https://addons.mozilla.org/en-US/firefox/addon/postwoman"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
>
|
|
||||||
<button class="icon">
|
|
||||||
<svg
|
|
||||||
class="material-icons"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="24"
|
|
||||||
height="24"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M12 0c-6.627 0-12 5.373-12 12s5.373 12 12 12 12-5.373 12-12-5.373-12-12-12zm8.003 8.657c-1.276-3.321-4.46-4.605-5.534-4.537 3.529 1.376 4.373 6.059 4.06 7.441-.307-1.621-1.286-3.017-1.872-3.385 3.417 8.005-4.835 10.465-7.353 7.687.649.168 1.931.085 2.891-.557.898-.602.983-.638 1.56-.683.686-.053-.041-1.406-1.539-1.177-.616.094-1.632.819-2.88.341-1.508-.576-1.46-2.634.096-2.015.337-.437.088-1.263.088-1.263.452-.414 1.022-.706 1.37-.911.228-.135.829-.507.795-1.23-.123-.096-.32-.219-.766-.193-1.736.11-1.852-.518-1.967-.808.078-.668.524-1.534 1.361-1.931-1.257-.193-2.28.397-2.789 1.154-.809-.174-1.305-.183-2.118-.031-.316-.24-.666-.67-.878-1.181 1.832-2.066 4.499-3.378 7.472-3.378 5.912 0 8.263 4.283 8.003 6.657z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
<span>Firefox</span>
|
|
||||||
<span
|
|
||||||
class="icon"
|
|
||||||
v-if="firefoxExtInstalled"
|
|
||||||
v-tooltip="$t('installed')"
|
|
||||||
>
|
|
||||||
<i class="material-icons">done</i>
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<a
|
|
||||||
href="https://chrome.google.com/webstore/detail/postwoman-extension-for-c/amknoiejhlmhancpahfcfcfhllgkpbld"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
>
|
|
||||||
<button class="icon">
|
|
||||||
<svg
|
|
||||||
class="material-icons"
|
|
||||||
xmlns="http://www.w3.org/2000/svg"
|
|
||||||
width="24"
|
|
||||||
height="24"
|
|
||||||
viewBox="0 0 24 24"
|
|
||||||
>
|
|
||||||
<path
|
|
||||||
d="M2.897 4.181c2.43-2.828 5.763-4.181 9.072-4.181 4.288 0 8.535 2.273 10.717 6.554-2.722.001-6.984 0-9.293 0-1.674.001-2.755-.037-3.926.579-1.376.724-2.415 2.067-2.777 3.644l-3.793-6.596zm5.11 7.819c0 2.2 1.789 3.99 3.988 3.99s3.988-1.79 3.988-3.99-1.789-3.991-3.988-3.991-3.988 1.791-3.988 3.991zm5.536 5.223c-2.238.666-4.858-.073-6.293-2.549-1.095-1.891-3.989-6.933-5.305-9.225-1.33 2.04-1.945 4.294-1.945 6.507 0 5.448 3.726 10.65 9.673 11.818l3.87-6.551zm2.158-9.214c1.864 1.734 2.271 4.542 1.007 6.719-.951 1.641-3.988 6.766-5.46 9.248 7.189.443 12.752-5.36 12.752-11.972 0-1.313-.22-2.66-.69-3.995h-7.609z"
|
|
||||||
/>
|
|
||||||
</svg>
|
|
||||||
<span>Chrome</span>
|
|
||||||
<span
|
|
||||||
class="icon"
|
|
||||||
v-if="chromeExtInstalled"
|
|
||||||
v-tooltip="$t('installed')"
|
|
||||||
>
|
|
||||||
<i class="material-icons">done</i>
|
|
||||||
</span>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div slot="footer"></div>
|
|
||||||
</modal>
|
|
||||||
<modal v-if="showShortcuts" @close="showShortcuts = false">
|
|
||||||
<div slot="header">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<h3 class="title">{{ $t("shortcuts") }}</h3>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="showShortcuts = false">
|
|
||||||
<i class="material-icons">close</i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="body">
|
|
||||||
<div>
|
|
||||||
<label>{{ $t("send_request") }}</label>
|
|
||||||
<kbd>⌘ G</kbd>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label>{{ $t("save_to_collections") }}</label>
|
|
||||||
<kbd>⌘ S</kbd>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label>{{ $t("copy_request_link") }}</label>
|
|
||||||
<kbd>⌘ K</kbd>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<label>{{ $t("reset_request") }}</label>
|
|
||||||
<kbd>⌘ L</kbd>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div slot="footer"></div>
|
|
||||||
</modal>
|
|
||||||
<modal v-if="showSupport" @close="showSupport = false">
|
|
||||||
<div slot="header">
|
|
||||||
<ul>
|
|
||||||
<li>
|
|
||||||
<div class="flex-wrap">
|
|
||||||
<h3 class="title">{{ $t("support_us_on") }}</h3>
|
|
||||||
<div>
|
|
||||||
<button class="icon" @click="showSupport = false">
|
|
||||||
<i class="material-icons">close</i>
|
|
||||||
</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
</li>
|
|
||||||
</ul>
|
|
||||||
</div>
|
|
||||||
<div slot="body">
|
|
||||||
<p class="info">
|
|
||||||
{{ $t("donate_info1") }}
|
|
||||||
</p>
|
|
||||||
<p class="info">
|
|
||||||
{{ $t("donate_info2") }}
|
|
||||||
</p>
|
|
||||||
<div>
|
|
||||||
<a
|
|
||||||
href="https://opencollective.com/postwoman"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
v-tooltip.right="$t('one_time_recurring')"
|
|
||||||
>
|
|
||||||
<button class="icon">
|
|
||||||
<i class="material-icons">donut_large</i>
|
|
||||||
<span>{{ $t("open_collective") }}</span>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<a
|
|
||||||
href="https://www.paypal.me/liyascthomas"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
v-tooltip.right="$t('one_time')"
|
|
||||||
>
|
|
||||||
<button class="icon">
|
|
||||||
<i class="material-icons">payment</i>
|
|
||||||
<span>{{ $t("paypal") }}</span>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
<div>
|
|
||||||
<a
|
|
||||||
href="https://www.patreon.com/liyasthomas"
|
|
||||||
target="_blank"
|
|
||||||
rel="noopener"
|
|
||||||
v-tooltip.right="$t('recurring')"
|
|
||||||
>
|
|
||||||
<button class="icon">
|
|
||||||
<i class="material-icons">local_parking</i>
|
|
||||||
<span>{{ $t("patreon") }}</span>
|
|
||||||
</button>
|
|
||||||
</a>
|
|
||||||
</div>
|
|
||||||
</div>
|
|
||||||
<div slot="footer"></div>
|
|
||||||
</modal>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
.link {
|
|
||||||
margin: 8px 16px;
|
|
||||||
}
|
|
||||||
@media (max-width: 768px) {
|
|
||||||
.link {
|
|
||||||
display: flex;
|
|
||||||
flex: 1;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
import intializePwa from "../assets/js/pwa";
|
|
||||||
import * as version from "../.postwoman/version.json";
|
|
||||||
import { hasChromeExtensionInstalled } from "../functions/strategies/ChromeStrategy";
|
|
||||||
import firebase from "firebase/app";
|
|
||||||
import { fb } from "../functions/fb";
|
|
||||||
|
|
||||||
export default {
|
|
||||||
components: {
|
|
||||||
logo: () => import("../components/logo"),
|
|
||||||
modal: () => import("../components/modal"),
|
|
||||||
login: () => import("../components/firebase/login")
|
|
||||||
},
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
linkActive(path) {
|
|
||||||
return {
|
|
||||||
"nuxt-link-exact-active": this.$route.path === path,
|
|
||||||
"nuxt-link-active": this.$route.path === path
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
logout() {
|
|
||||||
fb.currentUser = null;
|
|
||||||
firebase
|
|
||||||
.auth()
|
|
||||||
.signOut()
|
|
||||||
.catch(err => {
|
|
||||||
this.$toast.show(err.message || err, {
|
|
||||||
icon: "error"
|
|
||||||
});
|
|
||||||
});
|
|
||||||
this.$toast.info(this.$t("logged_out"), {
|
|
||||||
icon: "vpn_key"
|
|
||||||
});
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
data() {
|
|
||||||
return {
|
|
||||||
// Once the PWA code is initialized, this holds a method
|
|
||||||
// that can be called to show the user the installation
|
|
||||||
// prompt.
|
|
||||||
showInstallPrompt: null,
|
|
||||||
version: {},
|
|
||||||
showExtensions: false,
|
|
||||||
showShortcuts: false,
|
|
||||||
showSupport: false,
|
|
||||||
firefoxExtInstalled: window.firefoxExtSendRequest,
|
|
||||||
chromeExtInstalled: window.chrome && hasChromeExtensionInstalled(),
|
|
||||||
fb
|
|
||||||
};
|
|
||||||
},
|
|
||||||
|
|
||||||
beforeMount() {
|
|
||||||
// Set version data
|
|
||||||
this.version = version.default;
|
|
||||||
|
|
||||||
// Load theme settings
|
|
||||||
(() => {
|
|
||||||
// Apply theme from settings.
|
|
||||||
document.documentElement.className =
|
|
||||||
this.$store.state.postwoman.settings.THEME_CLASS || "";
|
|
||||||
// Load theme color data from settings, or use default color.
|
|
||||||
let color = this.$store.state.postwoman.settings.THEME_COLOR || "#50fa7b";
|
|
||||||
let vibrant =
|
|
||||||
this.$store.state.postwoman.settings.THEME_COLOR_VIBRANT || true;
|
|
||||||
document.documentElement.style.setProperty("--ac-color", color);
|
|
||||||
document.documentElement.style.setProperty(
|
|
||||||
"--act-color",
|
|
||||||
vibrant ? "rgba(32, 33, 36, 1)" : "rgba(255, 255, 255, 1)"
|
|
||||||
);
|
|
||||||
})();
|
|
||||||
},
|
|
||||||
|
|
||||||
mounted() {
|
|
||||||
if (process.client) {
|
|
||||||
document.body.classList.add("afterLoad");
|
|
||||||
}
|
|
||||||
|
|
||||||
document
|
|
||||||
.querySelector("meta[name=theme-color]")
|
|
||||||
.setAttribute(
|
|
||||||
"content",
|
|
||||||
this.$store.state.postwoman.settings.THEME_TAB_COLOR || "#202124"
|
|
||||||
);
|
|
||||||
|
|
||||||
// Initializes the PWA code - checks if the app is installed,
|
|
||||||
// etc.
|
|
||||||
(async () => {
|
|
||||||
this.showInstallPrompt = await intializePwa();
|
|
||||||
let cookiesAllowed = localStorage.getItem("cookiesAllowed") === "yes";
|
|
||||||
if (!cookiesAllowed) {
|
|
||||||
this.$toast.show(this.$t("we_use_cookies"), {
|
|
||||||
icon: "info",
|
|
||||||
duration: 5000,
|
|
||||||
theme: "toasted-primary",
|
|
||||||
action: [
|
|
||||||
{
|
|
||||||
text: this.$t("dismiss"),
|
|
||||||
onClick: (e, toastObject) => {
|
|
||||||
localStorage.setItem("cookiesAllowed", "yes");
|
|
||||||
toastObject.goAway(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
});
|
|
||||||
}
|
|
||||||
let showExtensionsToast =
|
|
||||||
localStorage.getItem("showExtensionsToast") === "yes";
|
|
||||||
if (
|
|
||||||
!this.firefoxExtInstalled &&
|
|
||||||
!this.chromeExtInstalled &&
|
|
||||||
!showExtensionsToast
|
|
||||||
) {
|
|
||||||
setTimeout(() => {
|
|
||||||
this.$toast.show(this.$t("extensions_info2"), {
|
|
||||||
icon: "extension",
|
|
||||||
duration: 5000,
|
|
||||||
theme: "toasted-primary",
|
|
||||||
action: [
|
|
||||||
{
|
|
||||||
text: this.$t("yes"),
|
|
||||||
onClick: (e, toastObject) => {
|
|
||||||
this.showExtensions = true;
|
|
||||||
localStorage.setItem("showExtensionsToast", "yes");
|
|
||||||
toastObject.goAway(0);
|
|
||||||
}
|
|
||||||
},
|
|
||||||
{
|
|
||||||
text: this.$t("no"),
|
|
||||||
onClick: (e, toastObject) => {
|
|
||||||
toastObject.goAway(0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
]
|
|
||||||
});
|
|
||||||
}, 15000);
|
|
||||||
}
|
|
||||||
})();
|
|
||||||
|
|
||||||
window.addEventListener("scroll", event => {
|
|
||||||
let mainNavLinks = document.querySelectorAll("nav ul li a");
|
|
||||||
let fromTop = window.scrollY;
|
|
||||||
mainNavLinks.forEach(link => {
|
|
||||||
let section = document.querySelector(link.hash);
|
|
||||||
|
|
||||||
if (
|
|
||||||
section &&
|
|
||||||
section.offsetTop <= fromTop &&
|
|
||||||
section.offsetTop + section.offsetHeight > fromTop
|
|
||||||
) {
|
|
||||||
link.classList.add("current");
|
|
||||||
} else {
|
|
||||||
link.classList.remove("current");
|
|
||||||
}
|
|
||||||
});
|
|
||||||
});
|
|
||||||
|
|
||||||
console.log(
|
|
||||||
"%cWe ❤︎ open source!",
|
|
||||||
"background-color:white;padding:8px 16px;border-radius:8px;font-size:32px;color:red;"
|
|
||||||
);
|
|
||||||
console.log(
|
|
||||||
"%cContribute: https://github.com/liyasthomas/postwoman",
|
|
||||||
"background-color:black;padding:4px 8px;border-radius:8px;font-size:16px;color:white;"
|
|
||||||
);
|
|
||||||
},
|
|
||||||
|
|
||||||
watch: {
|
|
||||||
$route() {
|
|
||||||
// this.$toast.clear();
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
computed: {
|
|
||||||
availableLocales() {
|
|
||||||
return this.$i18n.locales.filter(i => i.code !== this.$i18n.locale);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,54 +0,0 @@
|
|||||||
<template>
|
|
||||||
<div class="page page-error">
|
|
||||||
<img
|
|
||||||
src="~static/icons/error.svg"
|
|
||||||
:alt="$t('error')"
|
|
||||||
class="error_banner"
|
|
||||||
/>
|
|
||||||
<h2>{{ error.statusCode }}</h2>
|
|
||||||
<h3>{{ error.message }}</h3>
|
|
||||||
<p>
|
|
||||||
<nuxt-link to="/">
|
|
||||||
<button>{{ $t("go_home") }}</button>
|
|
||||||
</nuxt-link>
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
<a href @click.prevent="reloadApplication">{{ $t("reload") }}</a>
|
|
||||||
</p>
|
|
||||||
</div>
|
|
||||||
</template>
|
|
||||||
|
|
||||||
<style scoped lang="scss">
|
|
||||||
// Center the error page in the viewport.
|
|
||||||
.page-error {
|
|
||||||
display: flex;
|
|
||||||
align-items: center;
|
|
||||||
justify-content: center;
|
|
||||||
flex-direction: column;
|
|
||||||
text-align: center;
|
|
||||||
}
|
|
||||||
|
|
||||||
.error_banner {
|
|
||||||
width: 256px;
|
|
||||||
}
|
|
||||||
</style>
|
|
||||||
|
|
||||||
<script>
|
|
||||||
export default {
|
|
||||||
props: ["error"],
|
|
||||||
|
|
||||||
methods: {
|
|
||||||
reloadApplication() {
|
|
||||||
this.$router.push("/", () => window.location.reload());
|
|
||||||
}
|
|
||||||
},
|
|
||||||
|
|
||||||
head() {
|
|
||||||
return {
|
|
||||||
bodyAttrs: {
|
|
||||||
class: "sticky-footer"
|
|
||||||
}
|
|
||||||
};
|
|
||||||
}
|
|
||||||
};
|
|
||||||
</script>
|
|
||||||
@@ -1,7 +0,0 @@
|
|||||||
# MIDDLEWARE
|
|
||||||
<br/>
|
|
||||||
parsedefaulturl.js - parse default url for appropriate path
|
|
||||||
<br/>
|
|
||||||
<br/>
|
|
||||||
|
|
||||||
More information about the usage of this directory in [the documentation](https://nuxtjs.org/guide/routing#middleware).
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
export default function({ route, redirect }) {
|
|
||||||
if (route.fullPath !== "/") {
|
|
||||||
return redirect("/");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
44
netlify.toml
Normal file
44
netlify.toml
Normal file
@@ -0,0 +1,44 @@
|
|||||||
|
[build.environment]
|
||||||
|
NODE_VERSION = "14"
|
||||||
|
NPM_FLAGS = "--prefix=/dev/null"
|
||||||
|
|
||||||
|
[build]
|
||||||
|
base = "/"
|
||||||
|
publish = "packages/hoppscotch-app/dist"
|
||||||
|
command = "npx pnpm i --store=node_modules/.pnpm-store && npx pnpm run generate"
|
||||||
|
|
||||||
|
[[redirects]]
|
||||||
|
from = "/discord"
|
||||||
|
to = "https://discord.gg/GAMWxmR"
|
||||||
|
status = 301
|
||||||
|
force = true
|
||||||
|
|
||||||
|
[[redirects]]
|
||||||
|
from = "/telegram"
|
||||||
|
to = "https://t.me/hoppscotch"
|
||||||
|
status = 301
|
||||||
|
force = true
|
||||||
|
|
||||||
|
[[redirects]]
|
||||||
|
from = "/beta"
|
||||||
|
to = "https://forms.gle/XPYDMp8m6JHNWcYp9"
|
||||||
|
status = 301
|
||||||
|
force = true
|
||||||
|
|
||||||
|
[[redirects]]
|
||||||
|
from = "/careers"
|
||||||
|
to = "https://www.notion.so/hoppscotch/3b9d5d5239a043bfb91701faabf5b8f0"
|
||||||
|
status = 301
|
||||||
|
force = true
|
||||||
|
|
||||||
|
[[redirects]]
|
||||||
|
from = "/newsletter"
|
||||||
|
to = "http://eepurl.com/hy0eWH"
|
||||||
|
status = 301
|
||||||
|
force = true
|
||||||
|
|
||||||
|
[[redirects]]
|
||||||
|
from = "/twitter"
|
||||||
|
to = "https://twitter.com/hoppscotch_io"
|
||||||
|
status = 301
|
||||||
|
force = true
|
||||||
389
nuxt.config.js
389
nuxt.config.js
@@ -1,389 +0,0 @@
|
|||||||
// Some helpful application constants.
|
|
||||||
// TODO: Use these when rendering the pages (rather than just for head/meta tags...)
|
|
||||||
export const meta = {
|
|
||||||
name: "Postwoman",
|
|
||||||
shortDescription: "API request builder",
|
|
||||||
description:
|
|
||||||
"The Postwoman API request builder helps you create your requests faster, saving you precious time on your development."
|
|
||||||
};
|
|
||||||
// Sets the base path for the router.
|
|
||||||
// Important for deploying to GitHub pages.
|
|
||||||
// -- Travis includes the author in the repo slug,
|
|
||||||
// so if there's a /, we need to get everything after it.
|
|
||||||
let repoName = (process.env.TRAVIS_REPO_SLUG || "").split("/").pop();
|
|
||||||
export const routerBase =
|
|
||||||
process.env.DEPLOY_ENV === "GH_PAGES"
|
|
||||||
? {
|
|
||||||
router: {
|
|
||||||
base: `/${repoName}/`
|
|
||||||
}
|
|
||||||
}
|
|
||||||
: {
|
|
||||||
router: {
|
|
||||||
base: "/"
|
|
||||||
}
|
|
||||||
};
|
|
||||||
export default {
|
|
||||||
mode: "spa",
|
|
||||||
/*
|
|
||||||
** Headers of the page
|
|
||||||
*/
|
|
||||||
server: {
|
|
||||||
host: "0.0.0.0" // default: localhost
|
|
||||||
},
|
|
||||||
render: {
|
|
||||||
bundleRenderer: {
|
|
||||||
shouldPreload: (file, type) => {
|
|
||||||
return ["script", "style", "font"].includes(type);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
head: {
|
|
||||||
title: `${meta.name} \u2022 ${meta.shortDescription}`,
|
|
||||||
meta: [
|
|
||||||
{
|
|
||||||
charset: "utf-8"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "viewport",
|
|
||||||
content:
|
|
||||||
"width=device-width, initial-scale=1, minimum-scale=1, viewport-fit=cover, minimal-ui"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
hid: "description",
|
|
||||||
name: "description",
|
|
||||||
content: meta.description || ""
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "keywords",
|
|
||||||
content:
|
|
||||||
"postwoman, postwoman chrome, postwoman online, postwoman for mac, postwoman app, postwoman for windows, postwoman google chrome, postwoman chrome app, get postwoman, postwoman web, postwoman android, postwoman app for chrome, postwoman mobile app, postwoman web app, api, request, testing, tool, rest, websocket, sse, graphql"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "X-UA-Compatible",
|
|
||||||
content: "IE=edge, chrome=1"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
itemprop: "name",
|
|
||||||
content: `${meta.name} \u2022 ${meta.shortDescription}`
|
|
||||||
},
|
|
||||||
{
|
|
||||||
itemprop: "description",
|
|
||||||
content: meta.description
|
|
||||||
},
|
|
||||||
{
|
|
||||||
itemprop: "image",
|
|
||||||
content: `${routerBase.router.base}logo.jpg`
|
|
||||||
},
|
|
||||||
// Add to homescreen for Chrome on Android. Fallback for PWA (handled by nuxt)
|
|
||||||
{
|
|
||||||
name: "application-name",
|
|
||||||
content: meta.name
|
|
||||||
},
|
|
||||||
// Add to homescreen for Safari on iOS
|
|
||||||
{
|
|
||||||
name: "apple-mobile-web-app-capable",
|
|
||||||
content: "yes"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "apple-mobile-web-app-status-bar-style",
|
|
||||||
content: "black-translucent"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "apple-mobile-web-app-title",
|
|
||||||
content: meta.name
|
|
||||||
},
|
|
||||||
// Windows phone tile icon
|
|
||||||
{
|
|
||||||
name: "msapplication-TileImage",
|
|
||||||
content: `${routerBase.router.base}icons/icon-144x144.png`
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "msapplication-TileColor",
|
|
||||||
content: "#202124"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "msapplication-tap-highlight",
|
|
||||||
content: "no"
|
|
||||||
},
|
|
||||||
// OpenGraph
|
|
||||||
{
|
|
||||||
property: "og:site_name",
|
|
||||||
content: meta.name
|
|
||||||
},
|
|
||||||
{
|
|
||||||
property: "og:url",
|
|
||||||
content: "https://postwoman.io"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
property: "og:type",
|
|
||||||
content: "website"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
property: "og:title",
|
|
||||||
content: `${meta.name} \u2022 ${meta.shortDescription}`
|
|
||||||
},
|
|
||||||
{
|
|
||||||
property: "og:description",
|
|
||||||
content: meta.description
|
|
||||||
},
|
|
||||||
{
|
|
||||||
property: "og:image",
|
|
||||||
content: `${routerBase.router.base}logo.jpg`
|
|
||||||
},
|
|
||||||
// Twitter
|
|
||||||
{
|
|
||||||
name: "twitter:card",
|
|
||||||
content: "summary_large_image"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "twitter:site",
|
|
||||||
content: "@liyasthomas"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "twitter:creator",
|
|
||||||
content: "@liyasthomas"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "twitter:url",
|
|
||||||
content: "https://postwoman.io"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "twitter:title",
|
|
||||||
content: `${meta.name} \u2022 ${meta.shortDescription}`
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "twitter:description",
|
|
||||||
content: meta.description
|
|
||||||
},
|
|
||||||
{
|
|
||||||
name: "twitter:image",
|
|
||||||
content: "https://postwoman.io/logo.jpg"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
link: [
|
|
||||||
{
|
|
||||||
rel: "icon",
|
|
||||||
type: "image/x-icon",
|
|
||||||
href: `${routerBase.router.base}favicon.ico`
|
|
||||||
},
|
|
||||||
// Home-screen icons (iOS)
|
|
||||||
{
|
|
||||||
rel: "apple-touch-icon",
|
|
||||||
href: `${routerBase.router.base}icons/icon-48x48.png`
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rel: "apple-touch-icon",
|
|
||||||
sizes: "72x72",
|
|
||||||
href: `${routerBase.router.base}icons/icon-72x72.png`
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rel: "apple-touch-icon",
|
|
||||||
sizes: "96x96",
|
|
||||||
href: `${routerBase.router.base}icons/icon-96x96.png`
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rel: "apple-touch-icon",
|
|
||||||
sizes: "144x144",
|
|
||||||
href: `${routerBase.router.base}icons/icon-144x144.png`
|
|
||||||
},
|
|
||||||
{
|
|
||||||
rel: "apple-touch-icon",
|
|
||||||
sizes: "192x192",
|
|
||||||
href: `${routerBase.router.base}icons/icon-192x192.png`
|
|
||||||
}
|
|
||||||
]
|
|
||||||
},
|
|
||||||
/*
|
|
||||||
** Customize the progress-bar color
|
|
||||||
*/
|
|
||||||
loading: {
|
|
||||||
color: "var(--ac-color)"
|
|
||||||
},
|
|
||||||
/*
|
|
||||||
** Customize the loading indicator
|
|
||||||
*/
|
|
||||||
loadingIndicator: {
|
|
||||||
name: "pulse",
|
|
||||||
color: "var(--ac-color)",
|
|
||||||
background: "var(--bg-color)"
|
|
||||||
},
|
|
||||||
/*
|
|
||||||
** Global CSS
|
|
||||||
*/
|
|
||||||
css: [
|
|
||||||
"~/assets/css/styles.scss",
|
|
||||||
"~/assets/css/themes.scss",
|
|
||||||
"~/assets/css/fonts.scss"
|
|
||||||
],
|
|
||||||
/*
|
|
||||||
** Plugins to load before mounting the App
|
|
||||||
*/
|
|
||||||
plugins: [
|
|
||||||
{
|
|
||||||
src: "~/plugins/vuex-persist"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
src: "~/plugins/v-tooltip"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
/*
|
|
||||||
** Nuxt.js dev-modules
|
|
||||||
*/
|
|
||||||
buildModules: [],
|
|
||||||
/*
|
|
||||||
** Nuxt.js modules
|
|
||||||
*/
|
|
||||||
modules: [
|
|
||||||
// See https://goo.gl/OOhYW5
|
|
||||||
["@nuxtjs/pwa"],
|
|
||||||
["@nuxtjs/axios"],
|
|
||||||
["@nuxtjs/toast"],
|
|
||||||
["@nuxtjs/google-analytics"],
|
|
||||||
["@nuxtjs/sitemap"],
|
|
||||||
[
|
|
||||||
"@nuxtjs/google-tag-manager",
|
|
||||||
{
|
|
||||||
id: process.env.GTM_ID || "GTM-MXWD8NQ"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
["@nuxtjs/robots"],
|
|
||||||
["nuxt-i18n"]
|
|
||||||
],
|
|
||||||
pwa: {
|
|
||||||
manifest: {
|
|
||||||
name: meta.name,
|
|
||||||
short_name: meta.name,
|
|
||||||
|
|
||||||
display: "standalone",
|
|
||||||
|
|
||||||
theme_color: "#202124",
|
|
||||||
background_color: "#202124",
|
|
||||||
start_url: `${routerBase.router.base}`
|
|
||||||
},
|
|
||||||
|
|
||||||
meta: {
|
|
||||||
description: meta.shortDescription,
|
|
||||||
theme_color: "#202124"
|
|
||||||
},
|
|
||||||
|
|
||||||
icons: (sizes => {
|
|
||||||
let icons = [];
|
|
||||||
for (let size of sizes) {
|
|
||||||
icons.push({
|
|
||||||
src: `${routerBase.router.base}icons/icon-${size}x${size}.png`,
|
|
||||||
type: "image/png",
|
|
||||||
sizes: `${size}x${size}`
|
|
||||||
});
|
|
||||||
}
|
|
||||||
return icons;
|
|
||||||
})([48, 72, 96, 144, 192, 512])
|
|
||||||
},
|
|
||||||
toast: {
|
|
||||||
position: "bottom-center",
|
|
||||||
duration: 3000,
|
|
||||||
theme: "bubble",
|
|
||||||
keepOnHover: true
|
|
||||||
},
|
|
||||||
googleAnalytics: {
|
|
||||||
id: process.env.GA_ID || "UA-61422507-2"
|
|
||||||
},
|
|
||||||
sitemap: {
|
|
||||||
hostname: "https://postwoman.io"
|
|
||||||
},
|
|
||||||
robots: {
|
|
||||||
UserAgent: "*",
|
|
||||||
Disallow: "",
|
|
||||||
Allow: "/",
|
|
||||||
Sitemap: "https://postwoman.io/sitemap.xml"
|
|
||||||
},
|
|
||||||
i18n: {
|
|
||||||
locales: [
|
|
||||||
{
|
|
||||||
code: "en",
|
|
||||||
name: "English",
|
|
||||||
iso: "en-US",
|
|
||||||
file: "en-US.js"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
code: "es",
|
|
||||||
name: "Español",
|
|
||||||
iso: "es-ES",
|
|
||||||
file: "es-ES.js"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
code: "fr",
|
|
||||||
name: "Français",
|
|
||||||
iso: "fr-FR",
|
|
||||||
file: "fr-FR.js"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
code: "fa",
|
|
||||||
name: "Farsi",
|
|
||||||
iso: "fa-IR",
|
|
||||||
file: "fa-IR.js"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
code: "pt",
|
|
||||||
name: "Português Brasileiro",
|
|
||||||
iso: "pt-BR",
|
|
||||||
file: "pt-BR.js"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
code: "cn",
|
|
||||||
name: "简体中文",
|
|
||||||
iso: "zh-CN",
|
|
||||||
file: "zh-CN.js"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
code: "id",
|
|
||||||
name: "Bahasa Indonesia",
|
|
||||||
iso: "id-ID",
|
|
||||||
file: "id-ID.js"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
code: "tr",
|
|
||||||
name: "Türkçe",
|
|
||||||
iso: "tr-TR",
|
|
||||||
file: "tr-TR.js"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
code: "de",
|
|
||||||
name: "Deutsch",
|
|
||||||
iso: "de-DE",
|
|
||||||
file: "de-DE.js"
|
|
||||||
},
|
|
||||||
{
|
|
||||||
code: "ja",
|
|
||||||
name: "日本語",
|
|
||||||
iso: "ja-JP",
|
|
||||||
file: "ja-JP.js"
|
|
||||||
}
|
|
||||||
],
|
|
||||||
defaultLocale: "en",
|
|
||||||
vueI18n: {
|
|
||||||
fallbackLocale: "en"
|
|
||||||
},
|
|
||||||
lazy: true,
|
|
||||||
langDir: "lang/"
|
|
||||||
},
|
|
||||||
/*
|
|
||||||
** Build configuration
|
|
||||||
*/
|
|
||||||
build: {
|
|
||||||
/*
|
|
||||||
** You can extend webpack config here
|
|
||||||
*/
|
|
||||||
extend(config, ctx) {}
|
|
||||||
},
|
|
||||||
/*
|
|
||||||
** Generate configuration
|
|
||||||
*/
|
|
||||||
generate: {
|
|
||||||
fallback: true
|
|
||||||
},
|
|
||||||
/*
|
|
||||||
** Router configuration
|
|
||||||
*/
|
|
||||||
...routerBase
|
|
||||||
};
|
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user