Compare commits
2596 Commits
v6.1.6-pre
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
10679e9899 | ||
|
|
c51dad39e0 | ||
|
|
1d350a3a29 | ||
|
|
81e3cce070 | ||
|
|
f9de2d77b5 | ||
|
|
3956eaf389 | ||
|
|
d13e2c2d87 | ||
|
|
ebf2371da9 | ||
|
|
fa4b12448d | ||
|
|
5fe6dfa551 | ||
|
|
6061c8b0a5 | ||
|
|
1ac0aa8a3e | ||
|
|
5d04d7f01f | ||
|
|
9c97e347c5 | ||
|
|
22967d123d | ||
|
|
3fed650254 | ||
|
|
b57b2083d3 | ||
|
|
1f47e8c62e | ||
|
|
d7ce653d74 | ||
|
|
07c803efee | ||
|
|
26b6d9133e | ||
|
|
146084bdb3 | ||
|
|
fa82b4630b | ||
|
|
d00841030f | ||
|
|
c517bb0be6 | ||
|
|
e585d8be8f | ||
|
|
8be76832a5 | ||
|
|
99df266a3e | ||
|
|
5660874992 | ||
|
|
b0dade9da3 | ||
|
|
a533858804 | ||
|
|
d3bcc984e7 | ||
|
|
99e8307a80 | ||
|
|
73926ea392 | ||
|
|
5ff24526b7 | ||
|
|
32ed1c57bd | ||
|
|
f4c3a95348 | ||
|
|
b1a908343a | ||
|
|
7f9d7eb36e | ||
|
|
30820e29fc | ||
|
|
a85ea2e0f7 | ||
|
|
993e713955 | ||
|
|
3151e30db1 | ||
|
|
eb5219dd68 | ||
|
|
bb44783369 | ||
|
|
33b46c4db3 | ||
|
|
3730aae62a | ||
|
|
065062d58a | ||
|
|
7b2f58e68e | ||
|
|
e2fc23fcf8 | ||
|
|
6f56ef284d | ||
|
|
08a644ba39 | ||
|
|
6ae19ac4a6 | ||
|
|
7761cbe81d | ||
|
|
f981d88150 | ||
|
|
e2a23eaa0d | ||
|
|
9d510b3c08 | ||
|
|
a98f5ac45e | ||
|
|
b989e964c0 | ||
|
|
3ff6eefa06 | ||
|
|
67fde9be3c | ||
|
|
df7ac89723 | ||
|
|
358df9f53b | ||
|
|
02e3bfaa8a | ||
|
|
dde74fa73b | ||
|
|
100e3fe75f | ||
|
|
af7930cea2 | ||
|
|
6b4f6b909c | ||
|
|
9a6e5cd7cc | ||
|
|
9f64b6ec7a | ||
|
|
77f720e34c | ||
|
|
168dcb7824 | ||
|
|
759186a212 | ||
|
|
71ed7a76ea | ||
|
|
bd939b22c7 | ||
|
|
c327f77294 | ||
|
|
d907d79beb | ||
|
|
93b879927c | ||
|
|
0c545d4cf9 | ||
|
|
95c90c1517 | ||
|
|
cb731fa858 | ||
|
|
9bb3b09ecf | ||
|
|
7c8f541d3e | ||
|
|
ce41687382 | ||
|
|
4b083dea5c | ||
|
|
c84473c1eb | ||
|
|
7fc078f3e6 | ||
|
|
cbbd538248 | ||
|
|
825f6e562b | ||
|
|
a278afb260 | ||
|
|
2fbeea717c | ||
|
|
c7259e4663 | ||
|
|
69a2669342 | ||
|
|
42d1ca8fd4 | ||
|
|
1cf52d8b39 | ||
|
|
6e482afab2 | ||
|
|
ddf3295e6d | ||
|
|
79e087abd3 | ||
|
|
a7cf51bdf7 | ||
|
|
dfdb31e2f8 | ||
|
|
3508ddc3ca | ||
|
|
137fc6b928 | ||
|
|
e6f5295420 | ||
|
|
2bb08921c3 | ||
|
|
ee2d0e4c30 | ||
|
|
c43a838572 | ||
|
|
17ff6a8013 | ||
|
|
62ad6a0d08 | ||
|
|
5c049fa867 | ||
|
|
619f17114a | ||
|
|
1c1431014c | ||
|
|
9d1d7b7e34 | ||
|
|
f68ca1e786 | ||
|
|
8d16a30064 | ||
|
|
cf601c33c0 | ||
|
|
588cd39d7c | ||
|
|
79ebfa9b7a | ||
|
|
0c6b2746d1 | ||
|
|
978972c55c | ||
|
|
37854fc577 | ||
|
|
5537e193a6 | ||
|
|
0d42b2b133 | ||
|
|
44bd7972d4 | ||
|
|
5143eb39f7 | ||
|
|
cf51883b3e | ||
|
|
484ca0c78a | ||
|
|
8f5cad0e2c | ||
|
|
988512a571 | ||
|
|
f8bd380051 | ||
|
|
281131dbba | ||
|
|
ea3a61077a | ||
|
|
d1a898b40d | ||
|
|
a521a81ef0 | ||
|
|
2505c61975 | ||
|
|
ab5a54dbb6 | ||
|
|
44ad8fa60a | ||
|
|
5b27a241d7 | ||
|
|
084019ca65 | ||
|
|
ba147af8fe | ||
|
|
1b3f4db07d | ||
|
|
c36705d458 | ||
|
|
0e126cb8cf | ||
|
|
c48183a539 | ||
|
|
50f380dbbe | ||
|
|
66023a9a68 | ||
|
|
c3fbc3354c | ||
|
|
a7d2ed11f3 | ||
|
|
899aec2658 | ||
|
|
74e47587e2 | ||
|
|
6a3dc92572 | ||
|
|
e3a4667422 | ||
|
|
c4dd99bba9 | ||
|
|
cb70f3c318 | ||
|
|
588b6f9882 | ||
|
|
375f69ca1e | ||
|
|
a32e5cc139 | ||
|
|
8e00137751 | ||
|
|
003db50833 | ||
|
|
bc519c2c20 | ||
|
|
3b41fa8cfa | ||
|
|
39ed0f6d2d | ||
|
|
710f796832 | ||
|
|
9ec5fb7263 | ||
|
|
407db457d5 | ||
|
|
0c5d2cfcd1 | ||
|
|
87ace375bb | ||
|
|
d010020f3b | ||
|
|
c60227a98f | ||
|
|
2824681bff | ||
|
|
073a3e3946 | ||
|
|
93e91127a0 | ||
|
|
b60a6cff56 | ||
|
|
1f3b1963d9 | ||
|
|
4915f57abb | ||
|
|
97c6fc97d5 | ||
|
|
b68421bbc3 | ||
|
|
2d10559754 | ||
|
|
b398a7b546 | ||
|
|
1711d2102d | ||
|
|
97cea230f3 | ||
|
|
b6a0fe9465 | ||
|
|
06c50659bb | ||
|
|
244b47f548 | ||
|
|
b72a244d93 | ||
|
|
c1e069d4dc | ||
|
|
f99994085a | ||
|
|
32fd0dd78c | ||
|
|
a557b6b2b4 | ||
|
|
e84583c776 | ||
|
|
a548b0d543 | ||
|
|
de94f15383 | ||
|
|
7045d986ef | ||
|
|
de7ae9cf09 | ||
|
|
ab3d6888dc | ||
|
|
98a70891f3 | ||
|
|
52e7326a2c | ||
|
|
bfd2e3b07a | ||
|
|
799f5e30d3 | ||
|
|
d3e544c3c0 | ||
|
|
866fd55834 | ||
|
|
74ce1fba32 | ||
|
|
a11b93b4cc | ||
|
|
066f2baa03 | ||
|
|
e02396280f | ||
|
|
a654c80746 | ||
|
|
3b50f4bd7c | ||
|
|
cc1f77f5bc | ||
|
|
381fce4a82 | ||
|
|
bc3be97cee | ||
|
|
1c389208a7 | ||
|
|
cbeed2d3d0 | ||
|
|
3d974ad144 | ||
|
|
749042a05d | ||
|
|
52413b82ee | ||
|
|
212a7ec083 | ||
|
|
cee94fe113 | ||
|
|
e1ead2519a | ||
|
|
80330a25ac | ||
|
|
508470e970 | ||
|
|
bc64b4b5c7 | ||
|
|
48d8494ead | ||
|
|
2a51d2ed96 | ||
|
|
cfabcc7bf6 | ||
|
|
90fc8fd0fc | ||
|
|
ff54533e33 | ||
|
|
2072f0b5ba | ||
|
|
6efc720a45 | ||
|
|
c7cb1efe9c | ||
|
|
e193531246 | ||
|
|
2aa53f414e | ||
|
|
843c15d754 | ||
|
|
fb19582088 | ||
|
|
8040466cbe | ||
|
|
302b4d7acd | ||
|
|
a8ccc24d46 | ||
|
|
b2fb071a7b | ||
|
|
204d7b97d5 | ||
|
|
f3da709aac | ||
|
|
0ab8afb838 | ||
|
|
d50999547f | ||
|
|
04741b0eba | ||
|
|
ba86fe32e7 | ||
|
|
9deb7d7fdc | ||
|
|
55eb64e5ca | ||
|
|
a5f50f3f2b | ||
|
|
47214eb5b3 | ||
|
|
599509d417 | ||
|
|
9d366fc359 | ||
|
|
0e1ed0bde6 | ||
|
|
6ad7824bf2 | ||
|
|
1174f51c07 | ||
|
|
1950dda1ab | ||
|
|
8231b6d5be | ||
|
|
0feacbe6eb | ||
|
|
80b5f5adca | ||
|
|
13650f36e6 | ||
|
|
3f58d99069 | ||
|
|
0c8a025cf6 | ||
|
|
5014df4859 | ||
|
|
34a491e2ef | ||
|
|
884e4ca88e | ||
|
|
a670c5e86c | ||
|
|
af1fba79be | ||
|
|
ac44de0bf4 | ||
|
|
f013a241ce | ||
|
|
0e29a7206d | ||
|
|
689b3f299c | ||
|
|
02ccb990bd | ||
|
|
61fe4f0d57 | ||
|
|
0a920195d5 | ||
|
|
18896bf56d | ||
|
|
098c9041a0 | ||
|
|
61a41d8eb2 | ||
|
|
e76073d5c8 | ||
|
|
8c34added7 | ||
|
|
66fc6b93ae | ||
|
|
881d5a8008 | ||
|
|
5d263de954 | ||
|
|
c8d0494000 | ||
|
|
a9b48b5aa5 | ||
|
|
f08a951eef | ||
|
|
8758a4bc86 | ||
|
|
aae328f8c8 | ||
|
|
1953578a33 | ||
|
|
543bdd79d9 | ||
|
|
e0e1a3c8e4 | ||
|
|
f1d84f448e | ||
|
|
7c5c21f15d | ||
|
|
41ffaeebe3 | ||
|
|
5d9b44b647 | ||
|
|
a18d2c5650 | ||
|
|
e0379bcf12 | ||
|
|
e91242d5a2 | ||
|
|
8177187b3a | ||
|
|
6b3e1144bc | ||
|
|
dfec88f52d | ||
|
|
b8df67659a | ||
|
|
861da64581 | ||
|
|
ab147a2cc9 | ||
|
|
e13191e894 | ||
|
|
7f69ea8dc0 | ||
|
|
ef2140696b | ||
|
|
4607900c3b | ||
|
|
3258d55796 | ||
|
|
35e6966c39 | ||
|
|
885756b259 | ||
|
|
5fbc1b937c | ||
|
|
7e444e9fc2 | ||
|
|
c051237914 | ||
|
|
3855b0dd28 | ||
|
|
afcc9e096a | ||
|
|
f4df1fbff4 | ||
|
|
45b3a5af91 | ||
|
|
f54b18e652 | ||
|
|
b1210d19ad | ||
|
|
21cbcc79c6 | ||
|
|
a7d0c8fb0f | ||
|
|
1e3dc54d81 | ||
|
|
48f294fd83 | ||
|
|
298ad0de4b | ||
|
|
c7953f9231 | ||
|
|
afd97eae7d | ||
|
|
f4e558b7e8 | ||
|
|
12c99c646e | ||
|
|
6c1a2eedbe | ||
|
|
8a73216035 | ||
|
|
c6a93f12f7 | ||
|
|
09f44d94b3 | ||
|
|
c26748154a | ||
|
|
2474f915d4 | ||
|
|
53f940cd23 | ||
|
|
991b648854 | ||
|
|
663f057a9a | ||
|
|
61963fb824 | ||
|
|
bdf3cf5b36 | ||
|
|
5cc459594b | ||
|
|
8d315e52df | ||
|
|
48a24a8704 | ||
|
|
cdce52f0e5 | ||
|
|
d12ccbeac4 | ||
|
|
0b1620105a | ||
|
|
2ae9c98acb | ||
|
|
ed00848a1e | ||
|
|
06f7741dbf | ||
|
|
8d3b7cace8 | ||
|
|
8f0775e337 | ||
|
|
444cb6aa0c | ||
|
|
b4acc19ea2 | ||
|
|
1ef17cd861 | ||
|
|
e564e930e5 | ||
|
|
a30badbbe0 | ||
|
|
b33d21fdb3 | ||
|
|
78da83f7db | ||
|
|
8f6313d4ec | ||
|
|
14962a5622 | ||
|
|
b8048e7592 | ||
|
|
cf9823e123 | ||
|
|
1667dbfde0 | ||
|
|
416436a612 | ||
|
|
dc1b724d8d | ||
|
|
080dc44175 | ||
|
|
be148297a2 | ||
|
|
6cf6d8c876 | ||
|
|
3921f50feb | ||
|
|
6fc63be56a | ||
|
|
6a03f9a6fe | ||
|
|
721fdf09b3 | ||
|
|
bd4a52318b | ||
|
|
3978865902 | ||
|
|
c1228ee426 | ||
|
|
d0c39dc932 | ||
|
|
63a8586d7c | ||
|
|
e0a79c033e | ||
|
|
fa12f127ce | ||
|
|
10916eadd5 | ||
|
|
7f4e8e9c8f | ||
|
|
d06840f934 | ||
|
|
75f4df8b51 | ||
|
|
e9ea6d27ae | ||
|
|
48019d43c3 | ||
|
|
04dbeb633d | ||
|
|
71631865c4 | ||
|
|
d4a39cf481 | ||
|
|
3a71dfff64 | ||
|
|
d8c865b3ce | ||
|
|
71356b798c | ||
|
|
66ddd1741f | ||
|
|
8a60f3c8a7 | ||
|
|
25d2a40c50 | ||
|
|
17b389146c | ||
|
|
bd1f609b39 | ||
|
|
01e1831d57 | ||
|
|
c341baa781 | ||
|
|
995a0c33c3 | ||
|
|
75845cb42d | ||
|
|
822d6acfb0 | ||
|
|
2c4510a717 | ||
|
|
ac2391c91a | ||
|
|
e805563ce5 | ||
|
|
88fb1d920e | ||
|
|
dca60fad7a | ||
|
|
8226b05e7e | ||
|
|
0106331978 | ||
|
|
f5c0e7d2e9 | ||
|
|
4568b24351 | ||
|
|
042502f41f | ||
|
|
d342d73818 | ||
|
|
3b922216c1 | ||
|
|
10fa9b6812 | ||
|
|
33ccbf790b | ||
|
|
50b4baee4b | ||
|
|
be57a56095 | ||
|
|
f351453b9c | ||
|
|
dda67d3351 | ||
|
|
23e1e744e8 | ||
|
|
4b0affe182 | ||
|
|
ab836bc747 | ||
|
|
cf86d7e352 | ||
|
|
05a36d3878 | ||
|
|
0417084a39 | ||
|
|
cdfe39f226 | ||
|
|
b73dde3a48 | ||
|
|
0dea597226 | ||
|
|
2f38928c89 | ||
|
|
35c7b5e952 | ||
|
|
ba28b17263 | ||
|
|
51b0e004fa | ||
|
|
8cb59b02a8 | ||
|
|
38bfd130a3 | ||
|
|
369d90e057 | ||
|
|
c27cdd1734 | ||
|
|
e7e4f39311 | ||
|
|
0443a21e05 | ||
|
|
50c01886ec | ||
|
|
a9e1219f6c | ||
|
|
7bc31dde70 | ||
|
|
65f2f1d08f | ||
|
|
684027eaab | ||
|
|
1c3ec9c3bb | ||
|
|
3a8ff2c05d | ||
|
|
d5bd179c68 | ||
|
|
8b938a39cf | ||
|
|
c9610cbc39 | ||
|
|
931733d605 | ||
|
|
44e5d0e195 | ||
|
|
08b83dc3fd | ||
|
|
b7f261a836 | ||
|
|
d0b4ca33c2 | ||
|
|
160391f5a9 | ||
|
|
dfe4a96b02 | ||
|
|
a3f67eb519 | ||
|
|
0f9d52552b | ||
|
|
a217de4c39 | ||
|
|
d2d85e63f6 | ||
|
|
7a6077b5ff | ||
|
|
d48c4d9729 | ||
|
|
6d677401bf | ||
|
|
a3d4fa2f86 | ||
|
|
59e19b6a22 | ||
|
|
1a76da40d1 | ||
|
|
cb15ba01f0 | ||
|
|
78af7f136e | ||
|
|
cc6a95b579 | ||
|
|
4b3f723bdc | ||
|
|
d372e2ff76 | ||
|
|
4201d1cb1e | ||
|
|
afed70ba63 | ||
|
|
be488346c5 | ||
|
|
eeeb688439 | ||
|
|
b84ce77326 | ||
|
|
30fca423dc | ||
|
|
fabbb31572 | ||
|
|
ac76ac004e | ||
|
|
9d2051183a | ||
|
|
942fdb51d5 | ||
|
|
d2600a3168 | ||
|
|
c4248cce22 | ||
|
|
16f16f9fed | ||
|
|
d49cb976bc | ||
|
|
6fae6a9865 | ||
|
|
06f3730756 | ||
|
|
30e1333f75 | ||
|
|
0d6fa98767 | ||
|
|
ae6c9edd0d | ||
|
|
35de1f1c4e | ||
|
|
57142f4afb | ||
|
|
cd72d65b89 | ||
|
|
2199ab0513 | ||
|
|
e93f058109 | ||
|
|
b68de49cbd | ||
|
|
3f05934b6b | ||
|
|
3a5713dbb7 | ||
|
|
4c43158285 | ||
|
|
daa743b3b3 | ||
|
|
41f0ae18c4 | ||
|
|
e6b8aefe5b | ||
|
|
8b2437cb16 | ||
|
|
292495ab0d | ||
|
|
017b137d7f | ||
|
|
7969030313 | ||
|
|
c8efad4c3f | ||
|
|
7bf9d8f675 | ||
|
|
e275f15f00 | ||
|
|
30017a5217 | ||
|
|
64c5cbe8c3 | ||
|
|
b2b226573c | ||
|
|
69f796998f | ||
|
|
4d64be3ac7 | ||
|
|
4408b794d6 | ||
|
|
666da8a879 | ||
|
|
b166342579 | ||
|
|
433f5bf7d2 | ||
|
|
b8ae153ef5 | ||
|
|
bb59c2bab7 | ||
|
|
ab7c6c5118 | ||
|
|
85c1ea449e | ||
|
|
b51d679b78 | ||
|
|
2a2bc9e625 | ||
|
|
d00f059567 | ||
|
|
81a840347c | ||
|
|
e691675bf9 | ||
|
|
9cd57c3ae1 | ||
|
|
0e3310a39b | ||
|
|
447818ac2a | ||
|
|
dd0eb846b0 | ||
|
|
1b62ca4b21 | ||
|
|
97ece03853 | ||
|
|
33a72a0d9d | ||
|
|
62e61829b4 | ||
|
|
ad9d12260e | ||
|
|
fe54c9495f | ||
|
|
456afce6ca | ||
|
|
8ecbb4d4a4 | ||
|
|
92564397f4 | ||
|
|
62b2805c9d | ||
|
|
985af8b0bb | ||
|
|
58c3b180dc | ||
|
|
d260959b96 | ||
|
|
6e11197348 | ||
|
|
04d5bef4d2 | ||
|
|
1ccc5ce4e1 | ||
|
|
a94ef1db80 | ||
|
|
5513c624c3 | ||
|
|
1c493a8dc0 | ||
|
|
3fa051a6c3 | ||
|
|
876171b83d | ||
|
|
68521298ff | ||
|
|
c648926e49 | ||
|
|
1cd259a261 | ||
|
|
ef1fe07157 | ||
|
|
9ae8f7f406 | ||
|
|
363cbaac32 | ||
|
|
435b2cf23c | ||
|
|
bd1a87f5f0 | ||
|
|
c57218adb2 | ||
|
|
a56d2a3eca | ||
|
|
b324130e30 | ||
|
|
566a6e5836 | ||
|
|
bcca407a5e | ||
|
|
10c6832718 | ||
|
|
1ad8db20b4 | ||
|
|
43233747be | ||
|
|
56354afa9b | ||
|
|
7f686a817b | ||
|
|
10534ff75a | ||
|
|
da39be79a4 | ||
|
|
8a1ca80e28 | ||
|
|
ca29a3a272 | ||
|
|
1a115bda82 | ||
|
|
130e49bf1d | ||
|
|
552c84f910 | ||
|
|
d1a0111705 | ||
|
|
5bc285041b | ||
|
|
c96a522a1b | ||
|
|
def2dadca1 | ||
|
|
46a52e2b2f | ||
|
|
1835776200 | ||
|
|
efaa4893bf | ||
|
|
be8580cc4b | ||
|
|
e43bb3123b | ||
|
|
3078e3584c | ||
|
|
6689849f97 | ||
|
|
7281ee1565 | ||
|
|
4c12ee3b14 | ||
|
|
dc0ae69f65 | ||
|
|
0dba4ba653 | ||
|
|
758d8689ab | ||
|
|
f119ccf5a0 | ||
|
|
c86c6486b9 | ||
|
|
6ed5c163ba | ||
|
|
2c14530e3c | ||
|
|
6d30e1921e | ||
|
|
7ff84a9932 | ||
|
|
bcff01b0bf | ||
|
|
8cd09342e1 | ||
|
|
802e78d3b7 | ||
|
|
e6c938e5d0 | ||
|
|
7b6595124f | ||
|
|
c33408a1f7 | ||
|
|
160d53701b | ||
|
|
1f19d1925a | ||
|
|
50680a4f2e | ||
|
|
18307b2e03 | ||
|
|
b03ad80451 | ||
|
|
dedfe1f421 | ||
|
|
1cf583d197 | ||
|
|
1deaa4c30d | ||
|
|
90316f106a | ||
|
|
63693f908d | ||
|
|
6905e4a2a1 | ||
|
|
4489a54e82 | ||
|
|
6d48915945 | ||
|
|
00f3a7f4db | ||
|
|
f9c47ab233 | ||
|
|
28712b205f | ||
|
|
69b1fb1bfd | ||
|
|
8a22f9215f | ||
|
|
c5ebc01978 | ||
|
|
f29b468fc1 | ||
|
|
e796fbb990 | ||
|
|
37a122c981 | ||
|
|
4f426a73f6 | ||
|
|
1bcb74cd85 | ||
|
|
cd88c8de78 | ||
|
|
eee288b45b | ||
|
|
797cb7615d | ||
|
|
ca4667ff1e | ||
|
|
66d1143ca0 | ||
|
|
f310916c76 | ||
|
|
5d3d8ab932 | ||
|
|
07117c90d1 | ||
|
|
fd91c18460 | ||
|
|
5d92c0e85e | ||
|
|
2a12c04518 | ||
|
|
d08cae6fa3 | ||
|
|
d7f9de1881 | ||
|
|
962190cc57 | ||
|
|
4527866276 | ||
|
|
088dfcd4dc | ||
|
|
6c317b6e64 | ||
|
|
6b66c273b4 | ||
|
|
60f31008c0 | ||
|
|
078f74db97 | ||
|
|
a0b025cf59 | ||
|
|
bc695f5af9 | ||
|
|
9685e63b09 | ||
|
|
142791360c | ||
|
|
e004ed2f4b | ||
|
|
23ed487252 | ||
|
|
efefec3c20 | ||
|
|
3d2ad1cb9b | ||
|
|
90d3016938 | ||
|
|
438f9fc94d | ||
|
|
82ec88cc2f | ||
|
|
149611041e | ||
|
|
b12c79462e | ||
|
|
fbf34fb730 | ||
|
|
e1fe3eb710 | ||
|
|
76ae2e0e5a | ||
|
|
a57063adf7 | ||
|
|
ff0157e624 | ||
|
|
af9701feb8 | ||
|
|
93c1f31588 | ||
|
|
1964e54476 | ||
|
|
4682255d5f | ||
|
|
a503898b21 | ||
|
|
21352dae07 | ||
|
|
8470c7ac6b | ||
|
|
28aa86f0aa | ||
|
|
3ed214269a | ||
|
|
37b5183be2 | ||
|
|
a79896aa2e | ||
|
|
d5bd40873e | ||
|
|
52f1809d22 | ||
|
|
51d8fa7268 | ||
|
|
4d1167a6d6 | ||
|
|
8fa1459e5b | ||
|
|
baf3914be8 | ||
|
|
bd2721d3ec | ||
|
|
f30b96b360 | ||
|
|
4772c0e110 | ||
|
|
4a0af08ae5 | ||
|
|
a71129df4b | ||
|
|
de6acfa1ce | ||
|
|
ccf075dc65 | ||
|
|
1d8ac3cf86 | ||
|
|
623a23492f | ||
|
|
7a8ff89c5c | ||
|
|
eda70def2a | ||
|
|
08fd75edc7 | ||
|
|
15ea53864f | ||
|
|
056ee0d58e | ||
|
|
377cd64556 | ||
|
|
b37744d574 | ||
|
|
a7f21fe0c6 | ||
|
|
955ca99cf3 | ||
|
|
98f5bb4124 | ||
|
|
b3943f005d | ||
|
|
8d4178b984 | ||
|
|
2a88ed38c4 | ||
|
|
52dce7dfd3 | ||
|
|
6ebee92542 | ||
|
|
1b5646f526 | ||
|
|
7024e4b40d | ||
|
|
bc2e27d7da | ||
|
|
189da2bfe2 | ||
|
|
12e6afbaad | ||
|
|
142ebe3d27 | ||
|
|
7579f6e42a | ||
|
|
38c25cae74 | ||
|
|
408496eb7c | ||
|
|
4d61c74a8b | ||
|
|
190c610466 | ||
|
|
85b7e3ebe3 | ||
|
|
c6d3fc06a3 | ||
|
|
d220525ac7 | ||
|
|
5e4a631ff2 | ||
|
|
9099ce42b9 | ||
|
|
df226fea22 | ||
|
|
851d2e9151 | ||
|
|
e67ee4ffdb | ||
|
|
2baf975847 | ||
|
|
c1672ebc8e | ||
|
|
bbbd291065 | ||
|
|
0a3c1efdd4 | ||
|
|
89121a2608 | ||
|
|
23cf264d4d | ||
|
|
b3130225b5 | ||
|
|
65512defed | ||
|
|
3b1c8748f1 | ||
|
|
aba660eddb | ||
|
|
137eac7dbf | ||
|
|
fdbd08f511 | ||
|
|
ace1cec1f6 | ||
|
|
0c15e524d7 | ||
|
|
b0b5b1c30d | ||
|
|
30b4c85c5a | ||
|
|
910f9cadfe | ||
|
|
6de37ebd16 | ||
|
|
de57c4e87e | ||
|
|
b85cf66490 | ||
|
|
8e638ea9a6 | ||
|
|
b4849ec495 | ||
|
|
09c12d52ac | ||
|
|
db6a2ddd7e | ||
|
|
12ef9463ab | ||
|
|
fa5fda0c3b | ||
|
|
251609e274 | ||
|
|
a557ad177e | ||
|
|
c0287e49d8 | ||
|
|
78e838f2f0 | ||
|
|
c1f216c7c7 | ||
|
|
b75ff99e4c | ||
|
|
780dd8ade9 | ||
|
|
e1c10b7653 | ||
|
|
be9505f8fe | ||
|
|
d6bcd4f94f | ||
|
|
7d2196f4c3 | ||
|
|
0539174317 | ||
|
|
b4b52e12d5 | ||
|
|
f2e0b1cfa2 | ||
|
|
8020e2a263 | ||
|
|
6112d9b1b0 | ||
|
|
4a1fbcbd31 | ||
|
|
a02a3230f1 | ||
|
|
0218bb4990 | ||
|
|
3769c03565 | ||
|
|
d96cb10476 | ||
|
|
b6b6123434 | ||
|
|
b40877fcc1 | ||
|
|
af5ae29b73 | ||
|
|
082fceebbe | ||
|
|
f1dab80a06 | ||
|
|
cbf2fac2cf | ||
|
|
4564bd7180 | ||
|
|
d12ad7b882 | ||
|
|
f8e9f07a00 | ||
|
|
4ac3891e07 | ||
|
|
a2d55d3fdd | ||
|
|
d015a24300 | ||
|
|
be38acbede | ||
|
|
34d0cb4dc7 | ||
|
|
18d0558b19 | ||
|
|
d4469f3a2d | ||
|
|
43b760b4bf | ||
|
|
3d47932c09 | ||
|
|
7196d6e1bf | ||
|
|
ec06a7d861 | ||
|
|
ef23f0d18e | ||
|
|
e9abc5f07f | ||
|
|
6f9d6ff849 | ||
|
|
eab18d3c11 | ||
|
|
3a509a6a97 | ||
|
|
615c6f4e24 | ||
|
|
96660b4539 | ||
|
|
1be284974b | ||
|
|
790b6478dc | ||
|
|
106344b33e | ||
|
|
85a2a4b873 | ||
|
|
4ab694de0c | ||
|
|
5e193c1725 | ||
|
|
2b055c028c | ||
|
|
b341749e45 | ||
|
|
6ae381b1fd | ||
|
|
352b6cbe04 | ||
|
|
e5e6d2701e | ||
|
|
9ad1924488 | ||
|
|
2aadbfc64a | ||
|
|
1c5d652f93 | ||
|
|
b2355a3b2d | ||
|
|
4ee6d089d5 | ||
|
|
6bd81cbff5 | ||
|
|
b912190c5e | ||
|
|
43a826e2e5 | ||
|
|
8ae64a9dcf | ||
|
|
4ce9faf39b | ||
|
|
d94a67d0af | ||
|
|
d650d91d82 | ||
|
|
e14f59256d | ||
|
|
d3322a4a15 | ||
|
|
a65842e31f | ||
|
|
74fde66b51 | ||
|
|
c3ea155a7b | ||
|
|
c4b81e3d2c | ||
|
|
6f6ed1a741 | ||
|
|
311680c090 | ||
|
|
5e54aa553a | ||
|
|
6913970830 | ||
|
|
014e453e57 | ||
|
|
25b5341f76 | ||
|
|
1df51f9609 | ||
|
|
65d13189b3 | ||
|
|
0913011120 | ||
|
|
30ddc18eb1 | ||
|
|
697d755744 | ||
|
|
e3f23ddc79 | ||
|
|
094acc40e8 | ||
|
|
ebd4991de8 | ||
|
|
d04a8fad4c | ||
|
|
cb14bffc5a | ||
|
|
a4c4d17381 | ||
|
|
21eb27f6e3 | ||
|
|
abf0fc7942 | ||
|
|
c2703edfde | ||
|
|
d14b90ab20 | ||
|
|
48f4924932 | ||
|
|
765551988a | ||
|
|
4883eb0d1b | ||
|
|
06a9a93d1c | ||
|
|
c92a0e1d43 | ||
|
|
c6b5ee164b | ||
|
|
c65075f887 | ||
|
|
a1f678a3a1 | ||
|
|
fe3fefaa4e | ||
|
|
3ccebcb0d1 | ||
|
|
dbbae0eef2 | ||
|
|
f11c4881f3 | ||
|
|
6398c6d7ce | ||
|
|
973ce8c3a7 | ||
|
|
d971869283 | ||
|
|
987002b8f3 | ||
|
|
f73fe495a5 | ||
|
|
fe7b0e2bc7 | ||
|
|
23937c54e0 | ||
|
|
b3d0fd9d2f | ||
|
|
497aaf6143 | ||
|
|
9d6db3a93b | ||
|
|
8a6f3e6809 | ||
|
|
6c419716a4 | ||
|
|
d1a769205c | ||
|
|
b784e342c9 | ||
|
|
0d82fd51c7 | ||
|
|
3b4d905485 | ||
|
|
53c63f0f4b | ||
|
|
5553e3cd8d | ||
|
|
1e195e07e0 | ||
|
|
b6f0e15951 | ||
|
|
da224303fe | ||
|
|
67ee130a9e | ||
|
|
18d908fa63 | ||
|
|
c61f58854e | ||
|
|
f789ecd2f1 | ||
|
|
1fdc30804a | ||
|
|
5ba10d0acb | ||
|
|
12803d8154 | ||
|
|
36c391ccff | ||
|
|
765fb6297c | ||
|
|
66255769ad | ||
|
|
04a8d38641 | ||
|
|
859d020031 | ||
|
|
3c541117d0 | ||
|
|
80ca2e5215 | ||
|
|
19f2aa2997 | ||
|
|
ec657f30c7 | ||
|
|
7e84d495f5 | ||
|
|
c3baedd93c | ||
|
|
ae9676f744 | ||
|
|
7ec156a5d1 | ||
|
|
b80cbea1bc | ||
|
|
4600fa9f32 | ||
|
|
6e0b3e5cdc | ||
|
|
519ff87f5d | ||
|
|
d4a363e37e | ||
|
|
a3cfc45fef | ||
|
|
60602e02d9 | ||
|
|
44366f7872 | ||
|
|
2f18d8c204 | ||
|
|
08efbee52b | ||
|
|
eac8d78c5d | ||
|
|
db73673374 | ||
|
|
281cdb7264 | ||
|
|
101c80d820 | ||
|
|
1e06f65d9e | ||
|
|
eea85709ed | ||
|
|
cbca974529 | ||
|
|
fc27f57580 | ||
|
|
e50dd6606e | ||
|
|
8c9e232d65 | ||
|
|
ef98888394 | ||
|
|
e4b9ba34df | ||
|
|
169e0ec9df | ||
|
|
2779353a32 | ||
|
|
35aabb987c | ||
|
|
06f02070c7 | ||
|
|
d138d3e786 | ||
|
|
dbea68d33a | ||
|
|
72bcabf615 | ||
|
|
5db68eac24 | ||
|
|
7d9d88860e | ||
|
|
06c80ad982 | ||
|
|
c4335527f8 | ||
|
|
90d27a2ad8 | ||
|
|
93fd0a9af0 | ||
|
|
987b0aeb41 | ||
|
|
8dc5ac0b25 | ||
|
|
d310a47523 | ||
|
|
bd8fa3776d | ||
|
|
305796af53 | ||
|
|
60c10a69a3 | ||
|
|
c8aad9839f | ||
|
|
64016a1326 | ||
|
|
a489c7ad8e | ||
|
|
afb9ba7ad6 | ||
|
|
b1de5b1120 | ||
|
|
144a23e89b | ||
|
|
a6763a3e5d | ||
|
|
f047ec787a | ||
|
|
d80c368ccb | ||
|
|
9b60173b8c | ||
|
|
8556974ef1 | ||
|
|
edf9f3a2be | ||
|
|
7bb9414be8 | ||
|
|
6e439adb51 | ||
|
|
f6b783e74a | ||
|
|
171b81461c | ||
|
|
83db76aed8 | ||
|
|
e6d1bb7e5c | ||
|
|
a3d9fe76d6 | ||
|
|
0f4f154637 | ||
|
|
7d112a208f | ||
|
|
c867d39d8d | ||
|
|
83b6c939f7 | ||
|
|
e1e4eb5d6f | ||
|
|
a14c08f122 | ||
|
|
5fd50dcf45 | ||
|
|
b2ac4ee245 | ||
|
|
0ad7c0546b | ||
|
|
748381fef3 | ||
|
|
7eb9e42210 | ||
|
|
36a4b67ef4 | ||
|
|
94b35e3d5f | ||
|
|
c5aa82b76a | ||
|
|
c2920e195f | ||
|
|
92a78a419e | ||
|
|
4f27c2b852 | ||
|
|
ece5779b41 | ||
|
|
167aaa8491 | ||
|
|
de622b055b | ||
|
|
7e88b930ec | ||
|
|
c9adc2b852 | ||
|
|
91d3aba611 | ||
|
|
48bc11dcb5 | ||
|
|
9ee0b32cac | ||
|
|
4b6b74604b | ||
|
|
7ad3fc4751 | ||
|
|
e604450cfb | ||
|
|
9cfbc83896 | ||
|
|
98b2f4ec35 | ||
|
|
47e30f2daf | ||
|
|
6c21da6959 | ||
|
|
c5fe71d390 | ||
|
|
d14ffcb736 | ||
|
|
e694aca70b | ||
|
|
3c58cb1b9c | ||
|
|
dc452cdadf | ||
|
|
e855365cbb | ||
|
|
cffa288227 | ||
|
|
89ddced342 | ||
|
|
7457328b59 | ||
|
|
44ff413810 | ||
|
|
d174c2c2d8 | ||
|
|
480f4c9a8c | ||
|
|
7474cc5d8a | ||
|
|
bda5c4f5dd | ||
|
|
4f5034c167 | ||
|
|
9470db1f4d | ||
|
|
dfeb910ac9 | ||
|
|
a5745795be | ||
|
|
98f2b5dd08 | ||
|
|
f642c7570e | ||
|
|
dca9ea24d7 | ||
|
|
43fd7b6000 | ||
|
|
1553ec3bd4 | ||
|
|
37d54811e0 | ||
|
|
0f2af6eb37 | ||
|
|
91546228fa | ||
|
|
5488ff06e0 | ||
|
|
ef7f050bc5 | ||
|
|
e5c94d9698 | ||
|
|
4d3e0ac5d9 | ||
|
|
0a2f0372be | ||
|
|
e378fc3cfb | ||
|
|
75a1d74d9c | ||
|
|
1404685296 | ||
|
|
0ebed9b46f | ||
|
|
af69352361 | ||
|
|
840e3b861f | ||
|
|
a7cfe7fe04 | ||
|
|
a324cf0fcd | ||
|
|
0919f4c85b | ||
|
|
fd4cc6a1e8 | ||
|
|
d6ae3d4f16 | ||
|
|
9c1819467a | ||
|
|
08410ef209 | ||
|
|
6cd3242454 | ||
|
|
986c1a7bc8 | ||
|
|
a7703ec996 | ||
|
|
52d2eb3f59 | ||
|
|
b19fed41ef | ||
|
|
82a4b2c769 | ||
|
|
1d52cde3b3 | ||
|
|
aca4cc0ace | ||
|
|
8f9a78feb9 | ||
|
|
45484a43f1 | ||
|
|
63665e6e9c | ||
|
|
151665c880 | ||
|
|
15e475873e | ||
|
|
f846af75e8 | ||
|
|
5c7ab3793f | ||
|
|
a501f0cdef | ||
|
|
4b4c2606cd | ||
|
|
901e7581fe | ||
|
|
55fb233ce4 | ||
|
|
dd77ee4a8e | ||
|
|
a7ae6d7b47 | ||
|
|
34dfac8bb2 | ||
|
|
599f783c04 | ||
|
|
c7f82d3d46 | ||
|
|
8b346c6b44 | ||
|
|
e386764151 | ||
|
|
c0acecc6e9 | ||
|
|
a1724134ec | ||
|
|
530b830586 | ||
|
|
363a72c3ad | ||
|
|
c1a6daf9d2 | ||
|
|
8a7a73678c | ||
|
|
6cc8c7cb9d | ||
|
|
e2d1771a7a | ||
|
|
23f7dd6ee3 | ||
|
|
9884ace309 | ||
|
|
70284ac440 | ||
|
|
f24caad997 | ||
|
|
32729350f6 | ||
|
|
4929d190a5 | ||
|
|
0e211dc91b | ||
|
|
8663ab2d28 | ||
|
|
ba0ecaf70f | ||
|
|
acb4f5924e | ||
|
|
46553a80ad | ||
|
|
417334d140 | ||
|
|
e254657813 | ||
|
|
b087df8d97 | ||
|
|
47eb74d5ba | ||
|
|
f0ac047978 | ||
|
|
e57e246991 | ||
|
|
6934cdd122 | ||
|
|
aa7fb74312 | ||
|
|
0e2a77ced7 | ||
|
|
2d135d708e | ||
|
|
26d34f896b | ||
|
|
87c58cae83 | ||
|
|
8429067ae5 | ||
|
|
4d6957a6fa | ||
|
|
70c53248ae | ||
|
|
6e645cb054 | ||
|
|
28fecc6834 | ||
|
|
64c2faf538 | ||
|
|
c514a4d503 | ||
|
|
391d04b45c | ||
|
|
f974c00a63 | ||
|
|
9f0107c002 | ||
|
|
6ce82e915e | ||
|
|
864797fc99 | ||
|
|
c741434e3c | ||
|
|
60fcb1a862 | ||
|
|
18dc6a3ff5 | ||
|
|
da52dd006b | ||
|
|
ed1655ed8f | ||
|
|
516c4e32be | ||
|
|
1e222d806e | ||
|
|
bfb35b198d | ||
|
|
3a5f36155f | ||
|
|
82092fab76 | ||
|
|
a432cb886d | ||
|
|
5fff8c6ba2 | ||
|
|
e1de4f5c5f | ||
|
|
b6145d6f1e | ||
|
|
3804a87cef | ||
|
|
a7a6c664c8 | ||
|
|
f075515607 | ||
|
|
84c15bbc69 | ||
|
|
54e70d490d | ||
|
|
67c3de1f5d | ||
|
|
7281b5b1d7 | ||
|
|
966eb01f1c | ||
|
|
5bdf072cdf | ||
|
|
59c3381962 | ||
|
|
1fa4216b18 | ||
|
|
a98c953876 | ||
|
|
bf995e5861 | ||
|
|
1b8470df38 | ||
|
|
98ded8ea30 | ||
|
|
b72a50eb7e | ||
|
|
9c3f4fbb9d | ||
|
|
28c68308a9 | ||
|
|
ea3b0c15ac | ||
|
|
38ce46adb0 | ||
|
|
0a9a0103dd | ||
|
|
b7b370ff62 | ||
|
|
7b0c98ad2c | ||
|
|
bfe25e70d6 | ||
|
|
b2409df369 | ||
|
|
e1d8549730 | ||
|
|
865cc081ce | ||
|
|
867d5a9eb5 | ||
|
|
ac84b7604b | ||
|
|
8f860ad93e | ||
|
|
f3b65700d7 | ||
|
|
8ec1856206 | ||
|
|
811d2162fc | ||
|
|
5e2cdca103 | ||
|
|
23fb5852ba | ||
|
|
75cbc0d29a | ||
|
|
d08cd684c5 | ||
|
|
529b297ba6 | ||
|
|
32193eef49 | ||
|
|
1f97b90b2d | ||
|
|
0dd36260e9 | ||
|
|
3571d49987 | ||
|
|
ad3489c491 | ||
|
|
2461fa2e25 | ||
|
|
60e49ba343 | ||
|
|
a709381980 | ||
|
|
c2805c8c1c | ||
|
|
0346cbe911 | ||
|
|
74a4d4455b | ||
|
|
3659e1c91f | ||
|
|
09da5c6968 | ||
|
|
2575efd28d | ||
|
|
78c1c8d2b1 | ||
|
|
d5147f3dbb | ||
|
|
593580fbc1 | ||
|
|
67ca1cb638 | ||
|
|
bcf5b64545 | ||
|
|
e37ad663b3 | ||
|
|
4ce7582a46 | ||
|
|
1c371bb7bf | ||
|
|
17fdeb0734 | ||
|
|
5c6f0c32b3 | ||
|
|
e630280673 | ||
|
|
7c87961adf | ||
|
|
0df5ceb7d2 | ||
|
|
54342f2592 | ||
|
|
fbad558c37 | ||
|
|
b27dfb290c | ||
|
|
063c930349 | ||
|
|
c1f1e489a7 | ||
|
|
62960ed8de | ||
|
|
03305e04a7 | ||
|
|
4b294b1125 | ||
|
|
7122a21591 | ||
|
|
9682e571a2 | ||
|
|
2cefbfb8aa | ||
|
|
084062488c | ||
|
|
4dbe2b5297 | ||
|
|
0391e5bc3d | ||
|
|
bcbd96c608 | ||
|
|
6a6633e151 | ||
|
|
5c4546a54c | ||
|
|
255e328340 | ||
|
|
aaf9b085d7 | ||
|
|
c7b14c9fab | ||
|
|
0436ba78e2 | ||
|
|
1085a1c221 | ||
|
|
494b33bd7a | ||
|
|
925e3a67da | ||
|
|
78026f7fa5 | ||
|
|
9d77cac4bb | ||
|
|
6747280964 | ||
|
|
d7dbd79f7c | ||
|
|
aec692c402 | ||
|
|
113bbead4a | ||
|
|
1361c196da | ||
|
|
987995ad68 | ||
|
|
d24db7c053 | ||
|
|
25a9d52d86 | ||
|
|
946c632920 | ||
|
|
94bcbb80fd | ||
|
|
ba58965770 | ||
|
|
e50ddbf348 | ||
|
|
e95f21fa9c | ||
|
|
7026b765bd | ||
|
|
53eedd2701 | ||
|
|
9886c58681 | ||
|
|
953f6da7d7 | ||
|
|
da1efe880d | ||
|
|
bd0b6dd4d2 | ||
|
|
1c049fe1fb | ||
|
|
10b1b87d55 | ||
|
|
3ec6a3b3f2 | ||
|
|
8da919d4cd | ||
|
|
5cd59b795b | ||
|
|
e4dc30d1fb | ||
|
|
2013cee298 | ||
|
|
1f89a6304b | ||
|
|
580e0f9df7 | ||
|
|
2221c4548e | ||
|
|
e06c226e84 | ||
|
|
11a4f0ef32 | ||
|
|
ef15f299d2 | ||
|
|
1d333b9322 | ||
|
|
5302ed8653 | ||
|
|
2cf26a10c4 | ||
|
|
deda1e4251 | ||
|
|
c042bf2d15 | ||
|
|
8ced6aa205 | ||
|
|
3ca514c85b | ||
|
|
27b8e7d5ec | ||
|
|
a2d77a3917 | ||
|
|
c0549fe422 | ||
|
|
0dc8d6fd68 | ||
|
|
cd97647818 | ||
|
|
fcb5811f37 | ||
|
|
a239ba2211 | ||
|
|
e8dc96bcda | ||
|
|
096ad97a73 | ||
|
|
a5a5517555 | ||
|
|
d9b88a5d8d | ||
|
|
8493ea22eb | ||
|
|
aebb87aa20 | ||
|
|
14e97cb24f | ||
|
|
26cc15b4a2 | ||
|
|
50ce606e12 | ||
|
|
b052320f98 | ||
|
|
ecb3cebc9f | ||
|
|
4a32dfc71b | ||
|
|
c913929ff9 | ||
|
|
d7d5b29b07 | ||
|
|
111a7f72f8 | ||
|
|
149abdef9b | ||
|
|
980848f35a | ||
|
|
d1e0c86a71 | ||
|
|
d3872ca8a3 | ||
|
|
003dec269a | ||
|
|
e88092cde7 | ||
|
|
98422bd355 | ||
|
|
af83b89812 | ||
|
|
cffb1b8713 | ||
|
|
0b4895addf | ||
|
|
08646ea12a | ||
|
|
40beb7ceeb | ||
|
|
e7963aa324 | ||
|
|
d5894b9fb7 | ||
|
|
75c47a1113 | ||
|
|
97923b19bf | ||
|
|
879c89a285 | ||
|
|
718727462b | ||
|
|
63f2fd864a | ||
|
|
556dda5790 | ||
|
|
aeaa8549e3 | ||
|
|
1a8a757912 | ||
|
|
c69bb8acc9 | ||
|
|
4989d67b92 | ||
|
|
b272d342b0 | ||
|
|
251b2853e0 | ||
|
|
d381c9505f | ||
|
|
eeb3b8f939 | ||
|
|
ee40f32b0c | ||
|
|
02a69ea6d9 | ||
|
|
d47bb5ecd4 | ||
|
|
d2d6e2f554 | ||
|
|
f48b4a6c62 | ||
|
|
07f7b7df1b | ||
|
|
26486f9d63 | ||
|
|
428aa970b9 | ||
|
|
2a8c532786 | ||
|
|
4381829d16 | ||
|
|
176d75768f | ||
|
|
e28e363bd0 | ||
|
|
114ce1ea3a | ||
|
|
78215552bf | ||
|
|
fc9677f419 | ||
|
|
975a551728 | ||
|
|
be4fe6ab77 | ||
|
|
ab924f6b48 | ||
|
|
e4bf2b4c9b | ||
|
|
c49b1a46f8 | ||
|
|
6a56726734 | ||
|
|
8f6783792f | ||
|
|
b5ab1d6b33 | ||
|
|
25fe1d03a7 | ||
|
|
90546ad4a7 | ||
|
|
939bbc3f2c | ||
|
|
02ee327595 | ||
|
|
d8081277ee | ||
|
|
164a112e0c | ||
|
|
697bde7b53 | ||
|
|
2fd5244f85 | ||
|
|
354d925f94 | ||
|
|
88c74f020c | ||
|
|
9b7021b1cd | ||
|
|
30dbb23330 | ||
|
|
b1696ed1cd | ||
|
|
61f1c99791 | ||
|
|
bb9a559b80 | ||
|
|
5e20ea4975 | ||
|
|
c5d7e30bed | ||
|
|
de5f3a31ed | ||
|
|
7913c4135f | ||
|
|
d49345de9c | ||
|
|
1dbfa71bde | ||
|
|
d46b84f0d6 | ||
|
|
9d456992cf | ||
|
|
5dd62ad2aa | ||
|
|
a293eeb398 | ||
|
|
a6b6b5eb70 | ||
|
|
971af1df5f | ||
|
|
21641da0bf | ||
|
|
a8d9c145e6 | ||
|
|
bfafcb76ba | ||
|
|
52f74f1204 | ||
|
|
00c212ecb2 | ||
|
|
e77d302a49 | ||
|
|
5183f3729c | ||
|
|
e93102f105 | ||
|
|
a4652689ec | ||
|
|
ede1005087 | ||
|
|
e97c7ed32e | ||
|
|
9230a2ab73 | ||
|
|
01ee66ec4f | ||
|
|
4c12cbd3cc | ||
|
|
d8eeeaaef6 | ||
|
|
994dae2a7d | ||
|
|
51da6e928d | ||
|
|
a328ad030e | ||
|
|
ed7605eccd | ||
|
|
de43880a1c | ||
|
|
32b1a5b22d | ||
|
|
795992fb42 | ||
|
|
339eab33c8 | ||
|
|
489f3aa19d | ||
|
|
888e284f84 | ||
|
|
d151114f08 | ||
|
|
4f6a3c23ad | ||
|
|
4ed437fd4e | ||
|
|
fa0b21ba81 | ||
|
|
a96f1d0b49 | ||
|
|
ac0aebd751 | ||
|
|
781cbb4668 | ||
|
|
56ca1911a1 | ||
|
|
c20aec23a2 | ||
|
|
a9cff01579 | ||
|
|
6af56a61b8 | ||
|
|
252db191a6 | ||
|
|
5e2776f264 | ||
|
|
7ec9fb2c44 | ||
|
|
34facb6b3b | ||
|
|
5bb2a1368e | ||
|
|
85a7bbca66 | ||
|
|
2b7f27bf8f | ||
|
|
dd57945e7d | ||
|
|
fa02b4fd56 | ||
|
|
c8715eead5 | ||
|
|
37aae8c10e | ||
|
|
a97ed02e15 | ||
|
|
38ebb2d06a | ||
|
|
c765bfc946 | ||
|
|
b00ac75f33 | ||
|
|
36730168c0 | ||
|
|
4339ece6f6 | ||
|
|
041c997e59 | ||
|
|
098ebb38dc | ||
|
|
b99c38a070 | ||
|
|
07b42d8e74 | ||
|
|
062d168c97 | ||
|
|
c9be5fb125 | ||
|
|
06c6716ee1 | ||
|
|
e856d8fddf | ||
|
|
20339f70c1 | ||
|
|
c2e6cf1eb0 | ||
|
|
8dfdca97cd | ||
|
|
6e8cdc24a3 | ||
|
|
461f1e39fa | ||
|
|
4892dbce5e | ||
|
|
9da32a13de | ||
|
|
9c6908da77 | ||
|
|
ac081e6c86 | ||
|
|
cc9744156c | ||
|
|
72a874c7f4 | ||
|
|
2809324b35 | ||
|
|
58e6c45c73 | ||
|
|
43aaf192a2 | ||
|
|
c0574bc738 | ||
|
|
27e5d639ef | ||
|
|
aa9fdd4fc9 | ||
|
|
7af6d9b2ce | ||
|
|
0e06d28335 | ||
|
|
e3b86e4d41 | ||
|
|
5b1bfe7379 | ||
|
|
76d07b967e | ||
|
|
4b1932fe52 | ||
|
|
a56de91b1e | ||
|
|
6b4fb616bc | ||
|
|
d24670e14e | ||
|
|
13b3ae35ed | ||
|
|
6860e1f085 | ||
|
|
74fa1c6628 | ||
|
|
85f847a4f3 | ||
|
|
39df72d163 | ||
|
|
5ca8786802 | ||
|
|
ca145967dc | ||
|
|
06a3ce7486 | ||
|
|
9f85b6154d | ||
|
|
732763689a | ||
|
|
0ea75f25f1 | ||
|
|
eab27ce0bb | ||
|
|
29fd381989 | ||
|
|
06a845697a | ||
|
|
b12587626d | ||
|
|
b49988032e | ||
|
|
a9b4152553 | ||
|
|
63720045f1 | ||
|
|
aa7529192e | ||
|
|
a162a15a27 | ||
|
|
457a73efae | ||
|
|
91c3dd982b | ||
|
|
c171f93c93 | ||
|
|
0cf9ddb1cd | ||
|
|
2322537350 | ||
|
|
6ce50109da | ||
|
|
abe7fdf34d | ||
|
|
ecf2f5ed8c | ||
|
|
98b4934dd5 | ||
|
|
0bc7c544ad | ||
|
|
1f7ad9d418 | ||
|
|
4b9d3b3dbc | ||
|
|
571e332ed5 | ||
|
|
d78d22b188 | ||
|
|
d37638240a | ||
|
|
ae7fd3f87b | ||
|
|
e82e63b288 | ||
|
|
0149d4e27b | ||
|
|
9fc9c71b6f | ||
|
|
b264f690d1 | ||
|
|
c07e19c898 | ||
|
|
b8e50737d2 | ||
|
|
082d0aa02f | ||
|
|
ca26d0e450 | ||
|
|
8cbe021ffc | ||
|
|
7b39d8025b | ||
|
|
47bd35b151 | ||
|
|
d7add54a3c | ||
|
|
d3c937569b | ||
|
|
94ca613201 | ||
|
|
30f2f635be | ||
|
|
57f4d31c21 | ||
|
|
90e4fd7ff5 | ||
|
|
17835832f2 | ||
|
|
949817f597 | ||
|
|
23065f2c4b | ||
|
|
b623b06cf0 | ||
|
|
55c86d8ec7 | ||
|
|
e955617aa1 | ||
|
|
6304610713 | ||
|
|
47d20928e0 | ||
|
|
c9a4d02e0d | ||
|
|
6513dfb42a | ||
|
|
3f0412453f | ||
|
|
dcba319071 | ||
|
|
d19851fc0c | ||
|
|
d6eb06cb72 | ||
|
|
473080d7ee | ||
|
|
c98a6adb09 | ||
|
|
2cd56d5041 | ||
|
|
982098672e | ||
|
|
445ecea3e6 | ||
|
|
db977dfba4 | ||
|
|
a3c12ab9f5 | ||
|
|
0f7e152650 | ||
|
|
b55c7ba9a1 | ||
|
|
8256c9f7ad | ||
|
|
59727d7b0b | ||
|
|
2dd2210a73 | ||
|
|
25aafdbebc | ||
|
|
cd5717169c | ||
|
|
a38ad5a11e | ||
|
|
66d9b56976 | ||
|
|
ac40bd1e17 | ||
|
|
16d2a9bf99 | ||
|
|
b7e6838d26 | ||
|
|
21d23b5baa | ||
|
|
69a2941d57 | ||
|
|
3cc2abf8b9 | ||
|
|
6f4173650a | ||
|
|
0fcb8bdc0a | ||
|
|
c0937cf412 | ||
|
|
d9ab3aab0f | ||
|
|
c8652de78b | ||
|
|
86dc4e2bd5 | ||
|
|
1b9c56a9b9 | ||
|
|
08ab504fac | ||
|
|
21c0842fae | ||
|
|
8d10feaa68 | ||
|
|
df2171f253 | ||
|
|
f5fcd94faf | ||
|
|
15c5dbef00 | ||
|
|
79df56c096 | ||
|
|
d3fffd9530 | ||
|
|
527c9c8e6e | ||
|
|
d285be45cb | ||
|
|
0dda9c73f6 | ||
|
|
d07bf270e7 | ||
|
|
eb24dd5d9e | ||
|
|
ce693c7cd5 | ||
|
|
3198890269 | ||
|
|
eacc93de43 | ||
|
|
9795740257 | ||
|
|
4548f5d8aa | ||
|
|
8dfd2fb519 | ||
|
|
83a40f83e1 | ||
|
|
5b2fcb3c6c | ||
|
|
bcd9adb66d | ||
|
|
5e2dc114ab | ||
|
|
1ced4531be | ||
|
|
05fe39c0ae | ||
|
|
3769b2b3ea | ||
|
|
f4d5480f6f | ||
|
|
ddf3c0810b | ||
|
|
6afd6d0aa0 | ||
|
|
59fe92eb04 | ||
|
|
0550f32434 | ||
|
|
b702cad549 | ||
|
|
aa5c4d3c5e | ||
|
|
6a99445d97 | ||
|
|
c9880ef47d | ||
|
|
c16452dfcb | ||
|
|
af802c02fc | ||
|
|
8028aafeff | ||
|
|
b7469062a1 | ||
|
|
33b707aa68 | ||
|
|
cd3a1bebff | ||
|
|
794dd5a797 | ||
|
|
a1465432e8 | ||
|
|
e1f8af0909 | ||
|
|
88918be329 | ||
|
|
a3fc1dbff0 | ||
|
|
626c9825cc | ||
|
|
c10a84fc79 | ||
|
|
f14e4fe197 | ||
|
|
6eb218db5e | ||
|
|
0e77e053b0 | ||
|
|
b9a4128a3d | ||
|
|
16f480e1f3 | ||
|
|
7c42511133 | ||
|
|
1b252a84c2 | ||
|
|
bf833cadff | ||
|
|
b6f872882a | ||
|
|
a18d6fb441 | ||
|
|
922e703e81 | ||
|
|
d7f5817b8b | ||
|
|
92a8a4bfa6 | ||
|
|
b480151fc3 | ||
|
|
37bdbc1bd5 | ||
|
|
8eb669139b | ||
|
|
b485e8cacc | ||
|
|
c4bab61c47 | ||
|
|
72be417ff1 | ||
|
|
9be483d7a6 | ||
|
|
910f2cee2c | ||
|
|
1e47ace527 | ||
|
|
912b06b145 | ||
|
|
87d878e287 | ||
|
|
be886d6bce | ||
|
|
0683deb47e | ||
|
|
114bb22e27 | ||
|
|
c327ebc3df | ||
|
|
92cbd1c69c | ||
|
|
7242515e48 | ||
|
|
401d1a0ac2 | ||
|
|
863e042a37 | ||
|
|
39e6c45ec6 | ||
|
|
0d364d18c7 | ||
|
|
61444ea390 | ||
|
|
106a935efb | ||
|
|
d175d8a853 | ||
|
|
ce6d19a77a | ||
|
|
0a29273924 | ||
|
|
5ede64de58 | ||
|
|
224c6ad798 | ||
|
|
57b3a0dbe7 | ||
|
|
f381f708e0 | ||
|
|
63bf149546 | ||
|
|
cb5e671259 | ||
|
|
3e38173c4e | ||
|
|
efacb643fc | ||
|
|
1bd153ea0b | ||
|
|
bac3dc5f4c | ||
|
|
959a853d77 | ||
|
|
90bbdd563b | ||
|
|
e3c6d05a0a | ||
|
|
930b3d4538 | ||
|
|
74b78141b4 | ||
|
|
aa1108cd5b | ||
|
|
f24b1a9db3 | ||
|
|
71b191e740 | ||
|
|
8f6341b903 | ||
|
|
161586db7e | ||
|
|
052262bef9 | ||
|
|
a5a7144707 | ||
|
|
d945e0426d | ||
|
|
926970c4eb | ||
|
|
cce36e0f28 | ||
|
|
48c6dc5be5 | ||
|
|
c641830825 | ||
|
|
eba16cc15d | ||
|
|
bd88b8411e | ||
|
|
fc121e8750 | ||
|
|
d4142fe56a | ||
|
|
f76a3e72bb | ||
|
|
2d400ae7eb | ||
|
|
edf1632cab | ||
|
|
a648f1ee67 | ||
|
|
d004e6e86c | ||
|
|
fa321d3e8d | ||
|
|
e1e53d323f | ||
|
|
ccb18ca302 | ||
|
|
e170f36bc6 | ||
|
|
4bd9cc51ee | ||
|
|
43ffbda1a4 | ||
|
|
8240485fd1 | ||
|
|
7f053c0567 | ||
|
|
d2922eb0b7 | ||
|
|
fec10d453f | ||
|
|
162040545d | ||
|
|
f14577f8bf | ||
|
|
e5720bd1be | ||
|
|
6d4959bac8 | ||
|
|
d668128a34 | ||
|
|
f2af38da4c | ||
|
|
4776d18fd7 | ||
|
|
cdd0be7b78 | ||
|
|
cd505abb22 | ||
|
|
28439c010f | ||
|
|
e85f43beb1 | ||
|
|
a06cbc0840 | ||
|
|
adef9728f8 | ||
|
|
ff1b688b6e | ||
|
|
3e7574a927 | ||
|
|
f852ea90ad | ||
|
|
d8f6247c32 | ||
|
|
9dc28393a5 | ||
|
|
c442c98ecf | ||
|
|
71e0109927 | ||
|
|
9c7dd5ed1c | ||
|
|
83620848f2 | ||
|
|
d548a5b4f3 | ||
|
|
b6e5307755 | ||
|
|
4c5dc5a145 | ||
|
|
69ed9172b8 | ||
|
|
68551ae176 | ||
|
|
c97d9d35ba | ||
|
|
e86cc97cdf | ||
|
|
9bff8608c1 | ||
|
|
a10fe6994a | ||
|
|
67e6a37b59 | ||
|
|
3075a56735 | ||
|
|
7e4a862cc3 | ||
|
|
ed2078ee3b | ||
|
|
f99c23a622 | ||
|
|
41e7317764 | ||
|
|
e0a78c2399 | ||
|
|
95ad39d2d4 | ||
|
|
b831f827b1 | ||
|
|
c5d8413d9c | ||
|
|
4648ea3424 | ||
|
|
e05bd6f231 | ||
|
|
caadee7901 | ||
|
|
18c524117d | ||
|
|
ad30fb8b04 | ||
|
|
a8077965a9 | ||
|
|
532ab85ebb | ||
|
|
546227eb37 | ||
|
|
7ec3b262d3 | ||
|
|
c435000d24 | ||
|
|
eaa60c281e | ||
|
|
cd7cf63144 | ||
|
|
6a704aa079 | ||
|
|
d6b5a1cec8 | ||
|
|
9a24ad31cc | ||
|
|
9331630b54 | ||
|
|
904e869d7f | ||
|
|
307fa4f5e6 | ||
|
|
131d16d3ea | ||
|
|
dbc54c45dd | ||
|
|
a96a84d509 | ||
|
|
3eb8863f67 | ||
|
|
8737ab077b | ||
|
|
50bb6a1d19 | ||
|
|
4181b75af7 | ||
|
|
620705c87a | ||
|
|
50b7b93529 | ||
|
|
6f18f6bd5c | ||
|
|
01d256eeee | ||
|
|
a1405412a8 | ||
|
|
58589b3a15 | ||
|
|
2983266fdf | ||
|
|
e33df8f12d | ||
|
|
0e0e8e9d18 | ||
|
|
37f8b54752 | ||
|
|
e9a086ad23 | ||
|
|
7c06a8ac41 | ||
|
|
70801d958e | ||
|
|
cf3f95c952 | ||
|
|
d708616a6a | ||
|
|
17711bc5c9 | ||
|
|
1e2474921b | ||
|
|
3f37b2b728 | ||
|
|
18b11df672 | ||
|
|
c34f2d4da7 | ||
|
|
d61792581a | ||
|
|
76d9a511b8 | ||
|
|
4248326697 | ||
|
|
a540b38151 | ||
|
|
8fb5ef0c1d | ||
|
|
2da4979e59 | ||
|
|
0146e4a1dd | ||
|
|
34bdb72ffd | ||
|
|
2ef7c63047 | ||
|
|
95f5417761 | ||
|
|
4922ec4499 | ||
|
|
20d947a199 | ||
|
|
c9444c5318 | ||
|
|
871dc90ee4 | ||
|
|
d1925945b4 | ||
|
|
6625080fde | ||
|
|
1110609e39 | ||
|
|
f21d2c7253 | ||
|
|
9c1d330945 | ||
|
|
cd7800056c | ||
|
|
7ff4bec3bc | ||
|
|
d305cf2167 | ||
|
|
e77b83bd92 | ||
|
|
171d58658a | ||
|
|
a6f6bc4c0a | ||
|
|
f03cffe3f8 | ||
|
|
809dca184e | ||
|
|
ecda226949 | ||
|
|
ff1b58ebd8 | ||
|
|
5760ada3b4 | ||
|
|
b74b6b3284 | ||
|
|
e4cc4b6f58 | ||
|
|
dd90851477 | ||
|
|
da9b127468 | ||
|
|
d6b05e44cb | ||
|
|
58c1b5b98d | ||
|
|
c270cba8d6 | ||
|
|
58f1f749fc | ||
|
|
38d87a7c8f | ||
|
|
4e13598708 | ||
|
|
4177448d32 | ||
|
|
e4911a6f82 | ||
|
|
159224700f | ||
|
|
696d4e7342 | ||
|
|
ffb6cfaa4a | ||
|
|
b8899fcafa | ||
|
|
aba829c991 | ||
|
|
8f4c61c259 | ||
|
|
a19648a6e8 | ||
|
|
d5c0f7045e | ||
|
|
6f69205818 | ||
|
|
8166da548c | ||
|
|
d54f7293b7 | ||
|
|
225520a765 | ||
|
|
af1eccde8e | ||
|
|
5d37280643 | ||
|
|
80597039f5 | ||
|
|
2766aedc01 | ||
|
|
da3e12cb7e | ||
|
|
8baff1b0d2 | ||
|
|
4ff5f9204e | ||
|
|
515339bbd8 | ||
|
|
943634b0e2 | ||
|
|
212b26b960 | ||
|
|
c0b41987aa | ||
|
|
b4ef640052 | ||
|
|
db6b7f52eb | ||
|
|
55b4b9e02a | ||
|
|
4e6ae93b13 | ||
|
|
c9a5fe5676 | ||
|
|
a5adfb7c7f | ||
|
|
1794b86041 | ||
|
|
f405124ce4 | ||
|
|
25060c1477 | ||
|
|
6ad218f354 | ||
|
|
d1c52548b0 | ||
|
|
9dc847b72f | ||
|
|
5b04adb21f | ||
|
|
356d25e548 | ||
|
|
a9958af818 | ||
|
|
fb359b7f87 | ||
|
|
7f087819a6 | ||
|
|
e836fa3d38 | ||
|
|
9a69f1108d | ||
|
|
2c5c58dc90 | ||
|
|
cb50d2838a | ||
|
|
aff7125914 | ||
|
|
45d82dce04 | ||
|
|
7a3b27227a | ||
|
|
7b50a19b2c | ||
|
|
741b942dea | ||
|
|
f7ca64a49d | ||
|
|
2f7b3455e5 | ||
|
|
1568dfc183 | ||
|
|
d3a5df0007 | ||
|
|
c20cac621a | ||
|
|
74560c3289 | ||
|
|
f94bf3f8ce | ||
|
|
d26db7096d | ||
|
|
afde0a7423 | ||
|
|
cc930a3ff9 | ||
|
|
60ecdadc74 | ||
|
|
82fc1850cf | ||
|
|
88f937f73e | ||
|
|
b3497c7306 | ||
|
|
366ab2e0cd | ||
|
|
98e4fabd2e | ||
|
|
716c3573fd | ||
|
|
842d8dd780 | ||
|
|
c767dfb22e | ||
|
|
f94901c3b2 | ||
|
|
c9638aefe9 | ||
|
|
8bd4721686 | ||
|
|
808f7504c3 | ||
|
|
8ea7d3d5e8 | ||
|
|
d4931890ae | ||
|
|
f4a879a452 | ||
|
|
78521ffdb4 | ||
|
|
8ea3f80b97 | ||
|
|
0d8d87857c | ||
|
|
3a3a261d9c | ||
|
|
2e00daf63c | ||
|
|
1b8bb0c1fd | ||
|
|
5c33579544 | ||
|
|
f8081ff09e | ||
|
|
01b7eeeecf | ||
|
|
d2f4c374a9 | ||
|
|
07073eebe9 | ||
|
|
590a4ae476 | ||
|
|
b553a81d47 | ||
|
|
7d4e53e413 | ||
|
|
839b0f6f5e | ||
|
|
893c5da4ef | ||
|
|
f9b893edfa | ||
|
|
b4fadb39bf | ||
|
|
310f8bf6f7 | ||
|
|
903a26a330 | ||
|
|
41ebd39810 | ||
|
|
281de5196e | ||
|
|
a9ab864cbb | ||
|
|
f3ff910821 | ||
|
|
ba5179f1e8 | ||
|
|
05e8f6ed78 | ||
|
|
23150815a0 | ||
|
|
a50f223fe3 | ||
|
|
9329345d98 | ||
|
|
c71c32b363 | ||
|
|
5590aa7234 | ||
|
|
4a3491e0b5 | ||
|
|
e8cb87ae3d | ||
|
|
2f6427af32 | ||
|
|
5564047001 | ||
|
|
22577c5f87 | ||
|
|
4dc2627da2 | ||
|
|
05aaf0de9f | ||
|
|
951bfa23f3 | ||
|
|
7ac6cfcf25 | ||
|
|
06055a7c4c | ||
|
|
b33198d1bf | ||
|
|
f826b9eb6e | ||
|
|
2b58121552 | ||
|
|
762547d0e9 | ||
|
|
727523eb3f | ||
|
|
5bbdb66eb2 | ||
|
|
c6eff4f90d | ||
|
|
2559173c2c | ||
|
|
8adea132ef | ||
|
|
9d924f8d1c | ||
|
|
1b297fed90 | ||
|
|
2c2a93c440 | ||
|
|
bb076cce5d | ||
|
|
b16b02c3f1 | ||
|
|
3e0f834796 | ||
|
|
0af38c6e0e | ||
|
|
85f7011e03 | ||
|
|
e8d5412e14 | ||
|
|
170cf4753e | ||
|
|
660e76145e | ||
|
|
31a6f7b621 | ||
|
|
f6699ad93b | ||
|
|
6e508e4454 | ||
|
|
2b101844e9 | ||
|
|
fb036935e6 | ||
|
|
c3e09ddab0 | ||
|
|
36ae07074d | ||
|
|
a4518ce261 | ||
|
|
861ea7ef94 | ||
|
|
541af0b77e | ||
|
|
3fd3de1828 | ||
|
|
3e2840ca15 | ||
|
|
839ec9a456 | ||
|
|
bac8bd0006 | ||
|
|
8c1b51b7e9 | ||
|
|
a71c4fe7ec | ||
|
|
b9d4197b5c | ||
|
|
ce7559087e | ||
|
|
110d87e512 | ||
|
|
cd817714cd | ||
|
|
23db345756 | ||
|
|
16990bd0c3 | ||
|
|
2e3b770bea | ||
|
|
28f62623bf | ||
|
|
c9f3e8cb9f | ||
|
|
6b751eb715 | ||
|
|
5d953da267 | ||
|
|
e87ae31a51 | ||
|
|
9f029b892b | ||
|
|
40a9ced0f7 | ||
|
|
87fbd7e5da | ||
|
|
bca5514a76 | ||
|
|
62ddbb20ac | ||
|
|
9d376961f4 | ||
|
|
e77aa00bcd | ||
|
|
465330820d | ||
|
|
ec9cbba67e | ||
|
|
8961ea6fc9 | ||
|
|
ca7ca9da81 | ||
|
|
2a234f14df | ||
|
|
3ff97bf628 | ||
|
|
416d6f2aef | ||
|
|
ecaafaca69 | ||
|
|
fdb14cd49b | ||
|
|
070e955b89 | ||
|
|
9390ab3c6c | ||
|
|
f67221ee01 | ||
|
|
e09294d9aa | ||
|
|
5675acb71a | ||
|
|
0305a5dcef | ||
|
|
5f03340454 | ||
|
|
0f69ba46c5 | ||
|
|
71ecb6bd4e | ||
|
|
2b712cc808 | ||
|
|
3a68b7b554 | ||
|
|
e41727a1fc | ||
|
|
857d0f3316 | ||
|
|
1f68f62689 | ||
|
|
09b43a8e95 | ||
|
|
b8d765d229 | ||
|
|
06a919ff8d | ||
|
|
ea1e7769b1 | ||
|
|
d5e6f99819 | ||
|
|
a5ab9726dd | ||
|
|
6464fc56d8 | ||
|
|
156e1b928c | ||
|
|
edf17b8100 | ||
|
|
5ab980ce1a | ||
|
|
f1d80fadc4 | ||
|
|
d331d48ca2 | ||
|
|
e740db11ed | ||
|
|
6cff7b3c30 | ||
|
|
88cdd2fcbf | ||
|
|
55896be694 | ||
|
|
c4f17e42e1 | ||
|
|
e8b11bd42a | ||
|
|
a566fb3988 | ||
|
|
de071b37eb | ||
|
|
7b4d408733 | ||
|
|
06478d89ea | ||
|
|
7cedf4c620 | ||
|
|
ef1ea5eeee | ||
|
|
96f222db94 | ||
|
|
065eb9b878 | ||
|
|
ed583d80a3 | ||
|
|
7752db3916 | ||
|
|
e18254e4d8 | ||
|
|
555fc97e8f | ||
|
|
f135adfdba | ||
|
|
72b766f32a | ||
|
|
5278861ccd | ||
|
|
ebcf88070c | ||
|
|
273811bbb8 | ||
|
|
26b53e725d | ||
|
|
5434ec85e2 | ||
|
|
91f438aeff | ||
|
|
501f67ebe7 | ||
|
|
be52fef0bb | ||
|
|
2c0cf40a15 | ||
|
|
8566070d9b | ||
|
|
8f4118a6b8 | ||
|
|
54c53f0b56 | ||
|
|
eafcee8c67 | ||
|
|
5c8e1e0f4a | ||
|
|
76043d5876 | ||
|
|
936f3b0752 | ||
|
|
9380608781 | ||
|
|
544b75bcd5 | ||
|
|
2ae63d2323 | ||
|
|
f24717a3a3 | ||
|
|
f0f5558f3e | ||
|
|
3d8c732258 | ||
|
|
f312237bd5 | ||
|
|
952dde3fef | ||
|
|
e5387f6d06 | ||
|
|
93d6697b4e | ||
|
|
bad2f3415a | ||
|
|
d2f5d97282 | ||
|
|
f8c3fef839 | ||
|
|
14b47a929f | ||
|
|
4b3c0466eb | ||
|
|
041397b137 | ||
|
|
6548c286a6 | ||
|
|
ccf78285b6 | ||
|
|
5e9366fa92 | ||
|
|
0e30cb1439 | ||
|
|
b8d86518e7 | ||
|
|
725399ac7c | ||
|
|
ca18994092 | ||
|
|
caefc438b9 | ||
|
|
0ece8c7dec | ||
|
|
e7c42f3623 | ||
|
|
18faf89b89 | ||
|
|
3a750ae6a2 | ||
|
|
48c614d8c3 | ||
|
|
c37d502c27 | ||
|
|
3fed7a081d | ||
|
|
e75497d03b | ||
|
|
6d1421f1b7 | ||
|
|
dd210be037 | ||
|
|
7c7d6ad548 | ||
|
|
2f471c0e3f | ||
|
|
cff219674f | ||
|
|
e35f9eb75b | ||
|
|
ef1eff2ecb | ||
|
|
244ff61fb3 | ||
|
|
50e2623f19 | ||
|
|
fd0b997c13 | ||
|
|
13d057e4f7 | ||
|
|
d1a6be6ca6 | ||
|
|
edece02c13 | ||
|
|
d68cf4e44d | ||
|
|
9d85a58634 | ||
|
|
c4a4cd0957 | ||
|
|
5af7615054 | ||
|
|
a68a1334fc | ||
|
|
dd3e38355c | ||
|
|
890461bcf8 | ||
|
|
750265cb79 | ||
|
|
004de824ba | ||
|
|
fc43b35628 | ||
|
|
696653f945 | ||
|
|
157dca50e9 | ||
|
|
7d2130b229 | ||
|
|
2cc81211af | ||
|
|
ea9a5b0eb0 | ||
|
|
e60cee6a73 | ||
|
|
a3ee60a464 | ||
|
|
28595cbeb3 | ||
|
|
dbdbf5210e | ||
|
|
a4876f6f14 | ||
|
|
9835ae7e50 | ||
|
|
59f763162c | ||
|
|
a9412b418f | ||
|
|
742c5b76fe | ||
|
|
7a85fc0179 | ||
|
|
73e73ffe58 | ||
|
|
3c5523894d | ||
|
|
4b9c76d3db | ||
|
|
0a694eea8a | ||
|
|
87f48dad79 | ||
|
|
68ef50ca46 | ||
|
|
8b1da33ffe | ||
|
|
9a9b18a3ef | ||
|
|
83f69d89ff | ||
|
|
0bd7d23114 | ||
|
|
9b860a6aa6 | ||
|
|
4812519a4c | ||
|
|
f3ce6ad467 | ||
|
|
78d9b48854 | ||
|
|
b37d0eba04 | ||
|
|
5289b3f54c | ||
|
|
5c08fe0611 | ||
|
|
4bc9b70882 | ||
|
|
3f98f9ff39 | ||
|
|
e78a7bfbf1 | ||
|
|
b8b1412bf8 | ||
|
|
a81d66ace3 | ||
|
|
dcfd72b7e7 | ||
|
|
6467db4a21 | ||
|
|
f2570c97f3 | ||
|
|
98ad518b5d | ||
|
|
7a5e17a345 | ||
|
|
fde257c722 | ||
|
|
97357f082d | ||
|
|
6875bd82fc | ||
|
|
b1f6cad741 | ||
|
|
fb28fec60d | ||
|
|
500130be59 | ||
|
|
101173c87c | ||
|
|
4fb1b0dbd1 | ||
|
|
4270d5e8ec | ||
|
|
fe9f1146ce | ||
|
|
6fce43a122 | ||
|
|
a8a8f9b3e5 | ||
|
|
0dd0125e9f | ||
|
|
d3d97b5924 | ||
|
|
c8462fb50b | ||
|
|
c99ca9edcc | ||
|
|
fc7e96feb9 | ||
|
|
31dd7be296 | ||
|
|
2899373e42 | ||
|
|
7640c3d0ef | ||
|
|
af7772f617 | ||
|
|
a1670caf06 | ||
|
|
61e35b9773 | ||
|
|
e4671ffdb3 | ||
|
|
3035f923cb | ||
|
|
97e83def48 | ||
|
|
ba31deaebf | ||
|
|
bd571dc93d | ||
|
|
c1da8321ac | ||
|
|
0a1972b854 | ||
|
|
96f387e90b | ||
|
|
e034fc1019 | ||
|
|
d539912762 | ||
|
|
85b72af3bb | ||
|
|
3004f4b583 | ||
|
|
78dbd7eacd | ||
|
|
add73e6f16 | ||
|
|
2c5a7d103d | ||
|
|
f8f855d5d2 | ||
|
|
f2c109116c | ||
|
|
41c63fab96 | ||
|
|
de94651fca | ||
|
|
611c468b70 | ||
|
|
fd2207e39e | ||
|
|
10564442e2 | ||
|
|
a44307ca2d | ||
|
|
cfea2ed954 | ||
|
|
62e59605ed | ||
|
|
2644b1b7ac | ||
|
|
6e4c6d0c54 | ||
|
|
2b7d950a9f | ||
|
|
5ece8d67f9 | ||
|
|
8511b67811 | ||
|
|
a0a444e476 | ||
|
|
6fec92926d | ||
|
|
2cbefb261b | ||
|
|
4bebbb158c | ||
|
|
8fe2172c0a | ||
|
|
f52ef2d57e | ||
|
|
3f1c005548 | ||
|
|
821bd2b2d8 | ||
|
|
d8405feab3 | ||
|
|
bd94437c05 | ||
|
|
b290bdb473 | ||
|
|
f8e2af4fd4 | ||
|
|
97c8dfa5b9 | ||
|
|
37cce68e2e | ||
|
|
1f87a71b98 | ||
|
|
5511ea1887 | ||
|
|
e371081a1d | ||
|
|
70816b48e8 | ||
|
|
2c9fc7b4a7 | ||
|
|
3bb4652a49 | ||
|
|
d5f8e01dd8 | ||
|
|
27e0517f9a | ||
|
|
f59aeda28e | ||
|
|
a8a69f8c36 | ||
|
|
4ae6b8328e | ||
|
|
6d4337e4ce | ||
|
|
3df928caf4 | ||
|
|
faeb33fdc0 | ||
|
|
bacdeb20eb | ||
|
|
781c426b2f | ||
|
|
d5c9fb8dec | ||
|
|
78c372b9d8 | ||
|
|
ea31069609 | ||
|
|
3f9a3e8f64 | ||
|
|
2f02715efd | ||
|
|
c94fa64a33 | ||
|
|
e2cb666b3c | ||
|
|
9f24e0145b | ||
|
|
41413471aa | ||
|
|
f8a11166f0 | ||
|
|
27517b3b47 | ||
|
|
834c0d92b4 | ||
|
|
e04215f0e1 | ||
|
|
9fa8d98ae8 | ||
|
|
31621f273b | ||
|
|
41f158dac1 | ||
|
|
e5687f3a7c | ||
|
|
1a5b684e1f | ||
|
|
bf70c487ca | ||
|
|
4e1d34ba77 | ||
|
|
3a75ad61f3 | ||
|
|
c7db9ef481 | ||
|
|
fb709c9eb0 | ||
|
|
dfe4d2811a | ||
|
|
6e4d16749b | ||
|
|
75b2debf0a | ||
|
|
ba9e124527 | ||
|
|
d684ab0e5e | ||
|
|
2e8205f458 | ||
|
|
35855297eb | ||
|
|
d365ecce46 | ||
|
|
f4edc45507 | ||
|
|
d165d81df0 | ||
|
|
ba0eba7132 | ||
|
|
2b7f4281c2 | ||
|
|
0046575a4f | ||
|
|
58b88d66be | ||
|
|
57f1019e51 | ||
|
|
b40168182a | ||
|
|
0ece662d8c | ||
|
|
9265e52d68 | ||
|
|
3a04166747 | ||
|
|
75bf58359c | ||
|
|
e7f63e0460 | ||
|
|
1fdd1c6e88 | ||
|
|
391b9e91e9 | ||
|
|
1e67ca3794 | ||
|
|
ceebf6dbe1 | ||
|
|
8d4f9fd953 | ||
|
|
1c3032068e | ||
|
|
7b4b72166f | ||
|
|
707e5bb8b0 | ||
|
|
ad5d364c57 | ||
|
|
138fadf672 | ||
|
|
82eabc41fe | ||
|
|
3e6aab6b00 | ||
|
|
5396b3f1fb | ||
|
|
b1ba887922 | ||
|
|
93a1c593fe | ||
|
|
b7044248cb | ||
|
|
ea5e2f660b | ||
|
|
e9779a3d2f | ||
|
|
1c6ec0f8e3 | ||
|
|
84bd81e525 | ||
|
|
a84cbee9db | ||
|
|
97b16c8c0c | ||
|
|
0a6a35b022 | ||
|
|
6565b4101b | ||
|
|
fbbcc1172d | ||
|
|
53dc50c0dd | ||
|
|
7b56485c74 | ||
|
|
cfc9b809fc | ||
|
|
4015e2566e | ||
|
|
1d474a967c | ||
|
|
bffc34485a | ||
|
|
3bf22a8606 | ||
|
|
257ffa3cc4 | ||
|
|
0c104d5d29 | ||
|
|
2a59faec17 | ||
|
|
00534f7edd | ||
|
|
4006f03444 | ||
|
|
beca5c6e45 | ||
|
|
69f781d3de | ||
|
|
3f3160406f | ||
|
|
8067cff9bd | ||
|
|
7d776bb2af | ||
|
|
880bb0d7cb | ||
|
|
3aea01fb78 | ||
|
|
7025f4701d | ||
|
|
9d98b06132 | ||
|
|
47cb83c1ff | ||
|
|
6ff8847251 | ||
|
|
9d9367d127 | ||
|
|
ae7c1ae666 | ||
|
|
44fe3cb7bd | ||
|
|
bc783eb511 | ||
|
|
0491bd5364 | ||
|
|
cf47cccc97 | ||
|
|
c65ab35107 | ||
|
|
b8ea16f4d4 | ||
|
|
b40b5f0c1c | ||
|
|
b193e29fdb | ||
|
|
1b602c134f | ||
|
|
e462c6d412 | ||
|
|
d0c83f3c96 | ||
|
|
0547aa2095 | ||
|
|
322907b972 | ||
|
|
189b9a7ad6 | ||
|
|
1d02927f6b | ||
|
|
2ad739419a | ||
|
|
093ace1a89 | ||
|
|
4c982a762b | ||
|
|
a30efd6e81 | ||
|
|
1c0fc0bff2 | ||
|
|
7da0c204df | ||
|
|
a35421d8ab | ||
|
|
450ce53dcf | ||
|
|
e80ccfcb19 | ||
|
|
9ad612bd78 | ||
|
|
288857999f | ||
|
|
217823652c | ||
|
|
268e1670c7 | ||
|
|
ce7b155f72 | ||
|
|
2a71d84580 | ||
|
|
8f73dce934 | ||
|
|
5953e32988 | ||
|
|
df74322b05 | ||
|
|
22d941ae45 | ||
|
|
4fd7c1c4e9 | ||
|
|
ee1aa6d42c | ||
|
|
1343aba26e | ||
|
|
1483d84d8c | ||
|
|
02d58d66c9 | ||
|
|
2eb6ca28f7 | ||
|
|
7575a9ce02 | ||
|
|
039b832be2 | ||
|
|
e0ed025507 | ||
|
|
f2bd08f02a | ||
|
|
63314b54bc | ||
|
|
65165cd15f | ||
|
|
d5ddbca067 | ||
|
|
517027e1fe | ||
|
|
b843ccc898 | ||
|
|
fffd81267d | ||
|
|
7d26dd5348 | ||
|
|
a4d3189dac | ||
|
|
ec02743f83 | ||
|
|
10e807751a | ||
|
|
a8e827b5e2 | ||
|
|
f0eaba5857 | ||
|
|
7516b056a5 | ||
|
|
312c3b8295 | ||
|
|
0a777dc909 | ||
|
|
ec24376608 | ||
|
|
c9f45da217 | ||
|
|
34cfbabf51 | ||
|
|
f7e7a4c99c | ||
|
|
58c318b5cf | ||
|
|
10b1644d8d | ||
|
|
599f59fc39 | ||
|
|
da4b8f6cb9 | ||
|
|
5f2e882ed9 | ||
|
|
f20abe8878 | ||
|
|
a6ab37f21c | ||
|
|
13fc3ee25e | ||
|
|
2268086eac | ||
|
|
9e9dec5389 | ||
|
|
11d193a6dd | ||
|
|
f81207737c | ||
|
|
191c25a26b | ||
|
|
9c7727b7f3 | ||
|
|
8bea9b8312 | ||
|
|
805a063fa1 | ||
|
|
20a1cc89ae | ||
|
|
963994b1e5 | ||
|
|
afcb226111 | ||
|
|
5b246fe44c | ||
|
|
d79f82e9b8 | ||
|
|
bdd9dc8c9d | ||
|
|
8bdd24aa1e | ||
|
|
13c0da5c8a | ||
|
|
d31cfb15db | ||
|
|
8453bd3c26 | ||
|
|
457bf311c3 | ||
|
|
ea2ec9ef54 | ||
|
|
d0c84ea469 | ||
|
|
cdec56b661 | ||
|
|
8bc2d7cb05 | ||
|
|
21f3de0a18 | ||
|
|
65b497c9f1 | ||
|
|
f37f1e794e | ||
|
|
0096a40132 | ||
|
|
b6b9b67836 | ||
|
|
2b80a98a96 | ||
|
|
8c5d47bfa0 | ||
|
|
00c0a0505f | ||
|
|
01ba8b4f3f | ||
|
|
919249215b | ||
|
|
a62394a67c | ||
|
|
332fff279b | ||
|
|
27df4c435f | ||
|
|
a9998ebca7 | ||
|
|
82a8baabef | ||
|
|
2af6d4ef29 | ||
|
|
c2526c1e2d | ||
|
|
6021fa721e | ||
|
|
0bd59dc0f8 | ||
|
|
1af0c34ac0 | ||
|
|
77f5b6d0c8 | ||
|
|
cb3fdf1112 | ||
|
|
482d3d9188 | ||
|
|
bb4c64f478 | ||
|
|
a9d6e42add | ||
|
|
5fa6cf8eca | ||
|
|
7c0de7b634 | ||
|
|
691f3238c5 | ||
|
|
43163c787d | ||
|
|
a86693d950 | ||
|
|
6388129e27 | ||
|
|
7788806a8d | ||
|
|
30037dad83 | ||
|
|
d49c7d5e45 | ||
|
|
502109cdcb | ||
|
|
3de775a163 | ||
|
|
d4de917895 | ||
|
|
35cb718f1f | ||
|
|
60a72f4d45 | ||
|
|
6ae536d035 | ||
|
|
23daa7a91c | ||
|
|
771f93b5fa | ||
|
|
19826636c7 | ||
|
|
57ba9b52ba | ||
|
|
38c0d9bbc3 | ||
|
|
5fb3e0b941 | ||
|
|
9aa09d138a | ||
|
|
f48efcc02d | ||
|
|
1703e9e8c6 | ||
|
|
940cf02935 | ||
|
|
355aefc62a | ||
|
|
0c0c9b2dad | ||
|
|
d3df844917 | ||
|
|
e227f1f182 | ||
|
|
f97b49bc53 | ||
|
|
788b6def6c | ||
|
|
8550707485 | ||
|
|
aa8dfa1c87 | ||
|
|
7b68dd0f47 | ||
|
|
f4c9c880bc | ||
|
|
cac3e6efec | ||
|
|
d76786e344 | ||
|
|
171b967cc4 | ||
|
|
b5766494e1 | ||
|
|
b72af50a85 | ||
|
|
63b66fe301 | ||
|
|
244cb79774 | ||
|
|
8d20b7d19f | ||
|
|
dc9da0b866 | ||
|
|
3b72a9751c | ||
|
|
bb3cb23ee0 | ||
|
|
737436d7e7 | ||
|
|
bccfa79bb6 | ||
|
|
6bf5c58ec1 | ||
|
|
151230098c | ||
|
|
5debd8e115 | ||
|
|
83633536db | ||
|
|
c187d902d2 | ||
|
|
cf4cc37f66 | ||
|
|
5205839e18 | ||
|
|
1e05b0a659 | ||
|
|
f6b52592fd | ||
|
|
ae8e46e024 | ||
|
|
89df96ffd5 | ||
|
|
a8a3cf729f | ||
|
|
3d14ca302f | ||
|
|
0ba040a28c | ||
|
|
69b775a49d | ||
|
|
93895f3d6f | ||
|
|
8103c26ca8 | ||
|
|
825abf82e6 | ||
|
|
e2547c7295 | ||
|
|
359557e321 | ||
|
|
94cccf9e17 | ||
|
|
13e4c2de03 | ||
|
|
844d7025fa | ||
|
|
0f01f35d19 | ||
|
|
505c219cfd | ||
|
|
c40d745a3a | ||
|
|
13ee14c752 | ||
|
|
1d1e488755 | ||
|
|
d9537e5fd4 | ||
|
|
5fc5497a9e | ||
|
|
fd70df0f43 | ||
|
|
c16d47473d | ||
|
|
f5e2300460 | ||
|
|
73a3e8d498 | ||
|
|
bb38b93927 | ||
|
|
979f2c7dac | ||
|
|
808b774ad1 | ||
|
|
38ce62185e | ||
|
|
ac4e411d41 | ||
|
|
fdc784f42d | ||
|
|
edcaf585ea | ||
|
|
cdafe7e5f2 | ||
|
|
40cfe63b6f | ||
|
|
2fee584da9 | ||
|
|
8b1d8d6d71 | ||
|
|
f63b61681f | ||
|
|
de4cea86da | ||
|
|
c0ca84f347 | ||
|
|
9c5a2c79f5 | ||
|
|
8359746f47 | ||
|
|
516393856d | ||
|
|
e7e57414b5 | ||
|
|
687669330d | ||
|
|
d3147d3969 | ||
|
|
ca8b7911a6 | ||
|
|
3d23a13c34 | ||
|
|
cf8a104183 | ||
|
|
bd7aa7884a | ||
|
|
f2db514e45 | ||
|
|
d35801dcc7 | ||
|
|
50f9e025c4 | ||
|
|
09fa3ce438 | ||
|
|
bcf89b1f09 | ||
|
|
645a1d35e8 | ||
|
|
1154eff459 | ||
|
|
f6dcc4bb1f | ||
|
|
babfcb6108 | ||
|
|
07a2e2fa26 | ||
|
|
d6ffafb640 | ||
|
|
3cc0be7e72 | ||
|
|
a6bd3eed52 | ||
|
|
ac2128dcde | ||
|
|
6c8cf8e327 | ||
|
|
920788febb | ||
|
|
07a803a687 | ||
|
|
1f1d84d7c8 | ||
|
|
a093fc1285 | ||
|
|
e76c563471 | ||
|
|
fa6388ee6b | ||
|
|
fed8b1be3e | ||
|
|
49149643ef | ||
|
|
c21cd4b18f | ||
|
|
d3dd1c3afc | ||
|
|
969876e87b | ||
|
|
846f63a708 | ||
|
|
91fcf4bd72 | ||
|
|
f62462fcc5 | ||
|
|
d2192c4772 | ||
|
|
4d8952d3ee | ||
|
|
0f36ea7b58 | ||
|
|
4556f81ed8 | ||
|
|
d59e8ea2df | ||
|
|
eec3a679aa | ||
|
|
098a6025a8 | ||
|
|
cdd1c34bc2 | ||
|
|
cd90b53627 | ||
|
|
d16de0d2fb | ||
|
|
1406e54894 | ||
|
|
0618694220 | ||
|
|
56c86bde30 | ||
|
|
93dc48c22c | ||
|
|
9309f25126 | ||
|
|
f22adf3cc8 | ||
|
|
bee7ec0cc7 | ||
|
|
8d19fae16a | ||
|
|
b8a51083f8 | ||
|
|
9baecaba86 | ||
|
|
d8de4da059 | ||
|
|
302fc2c832 | ||
|
|
e552be8634 | ||
|
|
425ed5a3f4 | ||
|
|
07021ae760 | ||
|
|
9e06944fe7 | ||
|
|
707ccf2d21 | ||
|
|
569b3f5e56 | ||
|
|
f0812d74d6 | ||
|
|
13a5addc43 | ||
|
|
2fc926861f | ||
|
|
b6f76c5194 | ||
|
|
51cd639671 | ||
|
|
35362fbc9b | ||
|
|
2b5858f81a |
4
.github/ISSUE_TEMPLATE/bug_report.md
vendored
4
.github/ISSUE_TEMPLATE/bug_report.md
vendored
@@ -1,12 +1,14 @@
|
||||
---
|
||||
name: Bug report
|
||||
about: Create a report to help us improve DbGate
|
||||
about: Create a report to help us improve DbGate (in ENGLISH)
|
||||
title: 'BUG: Say something here'
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
Please keep communication in ENGLISH to reach more contributors.
|
||||
|
||||
**Describe the bug**
|
||||
A clear and concise description of what the bug is.
|
||||
|
||||
|
||||
4
.github/ISSUE_TEMPLATE/feature_request.md
vendored
4
.github/ISSUE_TEMPLATE/feature_request.md
vendored
@@ -1,12 +1,14 @@
|
||||
---
|
||||
name: Feature request
|
||||
about: Suggest an idea for DbGate
|
||||
about: Suggest an idea for DbGate (in ENGLISH)
|
||||
title: 'FEAT: '
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
Please keep communication in ENGLISH to reach more contributors.
|
||||
|
||||
**Is your feature request related to a problem? Please describe.**
|
||||
A clear and concise description of what the problem is. Ex. I'm always frustrated when [...]
|
||||
|
||||
|
||||
4
.github/ISSUE_TEMPLATE/question.md
vendored
4
.github/ISSUE_TEMPLATE/question.md
vendored
@@ -1,12 +1,14 @@
|
||||
---
|
||||
name: Question
|
||||
about: Ask a question about how to do something
|
||||
about: Ask a question about how to do something (in ENGLISH)
|
||||
title: 'QUESTION: Summary of your question'
|
||||
labels: ''
|
||||
assignees: ''
|
||||
|
||||
---
|
||||
|
||||
Please keep communication in ENGLISH to reach more contributors.
|
||||
|
||||
**Details:**
|
||||
Details about your question
|
||||
|
||||
|
||||
81
.github/workflows/build-app-beta.yaml
vendored
81
.github/workflows/build-app-beta.yaml
vendored
@@ -5,10 +5,14 @@ name: Electron app BETA
|
||||
'on':
|
||||
push:
|
||||
tags:
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+'
|
||||
- v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: write
|
||||
jobs:
|
||||
build:
|
||||
runs-on: '${{ matrix.os }}'
|
||||
runs-on: ${{ matrix.os }}
|
||||
environment: dbgate-app
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -17,6 +21,10 @@ jobs:
|
||||
- windows-2022
|
||||
- ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
- run: python -m pip install --upgrade pip setuptools
|
||||
- name: Install python 3.11 (MacOS)
|
||||
if: matrix.os == 'macos-14'
|
||||
run: |
|
||||
@@ -24,7 +32,7 @@ jobs:
|
||||
echo "PYTHON=/opt/homebrew/bin/python3.11" >> $GITHUB_ENV
|
||||
- name: Context
|
||||
env:
|
||||
GITHUB_CONTEXT: '${{ toJson(github) }}'
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
@@ -53,12 +61,6 @@ jobs:
|
||||
run: |
|
||||
|
||||
yarn setCurrentVersion
|
||||
- name: printSecrets
|
||||
run: |
|
||||
|
||||
yarn printSecrets
|
||||
env:
|
||||
GIST_UPLOAD_SECRET: '${{secrets.GIST_UPLOAD_SECRET}}'
|
||||
- name: fillPackagedPlugins
|
||||
run: |
|
||||
|
||||
@@ -66,21 +68,53 @@ jobs:
|
||||
- name: Install Snapcraft
|
||||
if: matrix.os == 'ubuntu-22.04'
|
||||
uses: samuelmeuli/action-snapcraft@v1
|
||||
- name: Publish
|
||||
- name: Publish Windows
|
||||
if: matrix.os == 'windows-2022'
|
||||
run: |
|
||||
|
||||
yarn run build:app
|
||||
- name: Publish MacOS
|
||||
if: matrix.os == 'macos-14'
|
||||
run: |
|
||||
|
||||
yarn run build:app
|
||||
env:
|
||||
GH_TOKEN: '${{ secrets.GH_TOKEN }}'
|
||||
WIN_CSC_LINK: '${{ secrets.WINCERT_2025 }}'
|
||||
WIN_CSC_KEY_PASSWORD: '${{ secrets.WINCERT_2025_PASSWORD }}'
|
||||
CSC_LINK: '${{ secrets.APPLECERT_CERTIFICATE }}'
|
||||
CSC_KEY_PASSWORD: '${{ secrets.APPLECERT_PASSWORD }}'
|
||||
APPLE_ID: '${{ secrets.APPLE_ID }}'
|
||||
APPLE_TEAM_ID: '${{ secrets.APPLE_TEAM_ID }}'
|
||||
APPLE_ID_PASSWORD: '${{ secrets.APPLE_ID_PASSWORD }}'
|
||||
SNAPCRAFT_STORE_CREDENTIALS: '${{secrets.SNAPCRAFT_LOGIN}}'
|
||||
APPLE_APP_SPECIFIC_PASSWORD: '${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}'
|
||||
CSC_LINK: ${{ secrets.APPLECERT_CERTIFICATE }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.APPLECERT_PASSWORD }}
|
||||
APPLE_ID: ${{ secrets.APPLE_ID }}
|
||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
|
||||
APPLE_APP_SPECIFIC_PASSWORD: ${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}
|
||||
- name: Publish Linux
|
||||
if: matrix.os == 'ubuntu-22.04'
|
||||
run: |
|
||||
|
||||
yarn run build:app
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_LOGIN}}
|
||||
- name: Azure login (OIDC)
|
||||
uses: azure/login@v2
|
||||
if: matrix.os == 'windows-2022'
|
||||
with:
|
||||
client-id: ${{ secrets.AZURE_TC_CLIENT_ID }}
|
||||
tenant-id: ${{ secrets.AZURE_TC_TENANT_ID }}
|
||||
allow-no-subscriptions: true
|
||||
- name: Sign Windows artifacts with Azure Trusted Signing
|
||||
uses: azure/trusted-signing-action@v0
|
||||
if: matrix.os == 'windows-2022'
|
||||
with:
|
||||
endpoint: https://wus3.codesigning.azure.net/
|
||||
trusted-signing-account-name: DbGate
|
||||
certificate-profile-name: DbGate-Release
|
||||
files-folder: app/dist
|
||||
files-folder-filter: exe
|
||||
timestamp-rfc3161: http://timestamp.acs.microsoft.com
|
||||
timestamp-digest: SHA256
|
||||
- name: Fix YML hashes
|
||||
if: matrix.os == 'windows-2022'
|
||||
run: |
|
||||
|
||||
yarn run fixYmlHashes
|
||||
- name: Copy artifacts
|
||||
run: |
|
||||
mkdir artifacts
|
||||
@@ -92,6 +126,7 @@ jobs:
|
||||
cp app/dist/*win*.exe artifacts/dbgate-beta.exe || true
|
||||
cp app/dist/*win_x64.zip artifacts/dbgate-windows-beta.zip || true
|
||||
cp app/dist/*win_arm64.zip artifacts/dbgate-windows-beta-arm64.zip || true
|
||||
cp app/dist/*win_arm64.exe artifacts/dbgate-windows-beta-arm64.exe || true
|
||||
cp app/dist/*-mac_universal.dmg artifacts/dbgate-beta.dmg || true
|
||||
cp app/dist/*-mac_x64.dmg artifacts/dbgate-beta-x64.dmg || true
|
||||
cp app/dist/*-mac_arm64.dmg artifacts/dbgate-beta-arm64.dmg || true
|
||||
@@ -111,16 +146,16 @@ jobs:
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: '${{ matrix.os }}'
|
||||
name: ${{ matrix.os }}
|
||||
path: artifacts
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: 'startsWith(github.ref, ''refs/tags/'')'
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
files: artifacts/**
|
||||
prerelease: true
|
||||
env:
|
||||
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Print content of notarization-error.log
|
||||
if: failure() && matrix.os == 'macos-14'
|
||||
run: |
|
||||
|
||||
146
.github/workflows/build-app-check.yaml
vendored
Normal file
146
.github/workflows/build-app-check.yaml
vendored
Normal file
@@ -0,0 +1,146 @@
|
||||
# --------------------------------------------------------------------------------------------
|
||||
# This file is generated. Do not edit manually
|
||||
# --------------------------------------------------------------------------------------------
|
||||
name: Electron app check build
|
||||
'on':
|
||||
push:
|
||||
tags:
|
||||
- check-[0-9]+-[0-9]+-[0-9]+.[0-9]+
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: write
|
||||
jobs:
|
||||
build:
|
||||
runs-on: ${{ matrix.os }}
|
||||
environment: dbgate-app
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
os:
|
||||
- macos-14
|
||||
- windows-2022
|
||||
- ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
- run: python -m pip install --upgrade pip setuptools
|
||||
- name: Install python 3.11 (MacOS)
|
||||
if: matrix.os == 'macos-14'
|
||||
run: |
|
||||
brew install python@3.11
|
||||
echo "PYTHON=/opt/homebrew/bin/python3.11" >> $GITHUB_ENV
|
||||
- name: Context
|
||||
env:
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 22.x
|
||||
- name: adjustPackageJson
|
||||
run: |
|
||||
|
||||
node adjustPackageJson --community
|
||||
- name: yarn set timeout
|
||||
run: |
|
||||
|
||||
yarn config set network-timeout 100000
|
||||
- name: yarn install
|
||||
run: |
|
||||
|
||||
yarn install
|
||||
- name: setCurrentVersion
|
||||
run: |
|
||||
|
||||
yarn setCurrentVersion
|
||||
- name: fillPackagedPlugins
|
||||
run: |
|
||||
|
||||
yarn fillPackagedPlugins
|
||||
- name: Install Snapcraft
|
||||
if: matrix.os == 'ubuntu-22.04'
|
||||
uses: samuelmeuli/action-snapcraft@v1
|
||||
- name: Publish Windows
|
||||
if: matrix.os == 'windows-2022'
|
||||
run: |
|
||||
|
||||
yarn run build:app
|
||||
- name: Publish MacOS
|
||||
if: matrix.os == 'macos-14'
|
||||
run: |
|
||||
|
||||
yarn run build:app
|
||||
env:
|
||||
CSC_LINK: ${{ secrets.APPLECERT_CERTIFICATE }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.APPLECERT_PASSWORD }}
|
||||
APPLE_ID: ${{ secrets.APPLE_ID }}
|
||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
|
||||
APPLE_APP_SPECIFIC_PASSWORD: ${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}
|
||||
- name: Publish Linux
|
||||
if: matrix.os == 'ubuntu-22.04'
|
||||
run: |
|
||||
|
||||
yarn run build:app
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_LOGIN}}
|
||||
- name: Azure login (OIDC)
|
||||
uses: azure/login@v2
|
||||
if: matrix.os == 'windows-2022'
|
||||
with:
|
||||
client-id: ${{ secrets.AZURE_TC_CLIENT_ID }}
|
||||
tenant-id: ${{ secrets.AZURE_TC_TENANT_ID }}
|
||||
allow-no-subscriptions: true
|
||||
- name: Sign Windows artifacts with Azure Trusted Signing
|
||||
uses: azure/trusted-signing-action@v0
|
||||
if: matrix.os == 'windows-2022'
|
||||
with:
|
||||
endpoint: https://wus3.codesigning.azure.net/
|
||||
trusted-signing-account-name: DbGate
|
||||
certificate-profile-name: DbGate-Release
|
||||
files-folder: app/dist
|
||||
files-folder-filter: exe
|
||||
timestamp-rfc3161: http://timestamp.acs.microsoft.com
|
||||
timestamp-digest: SHA256
|
||||
- name: Fix YML hashes
|
||||
if: matrix.os == 'windows-2022'
|
||||
run: |
|
||||
|
||||
yarn run fixYmlHashes
|
||||
- name: Copy artifacts
|
||||
run: |
|
||||
mkdir artifacts
|
||||
|
||||
cp app/dist/*.deb artifacts/dbgate-check.deb || true
|
||||
cp app/dist/*x86*.AppImage artifacts/dbgate-check.AppImage || true
|
||||
cp app/dist/*arm64*.AppImage artifacts/dbgate-check-arm64.AppImage || true
|
||||
cp app/dist/*armv7l*.AppImage artifacts/dbgate-check-armv7l.AppImage || true
|
||||
cp app/dist/*win*.exe artifacts/dbgate-check.exe || true
|
||||
cp app/dist/*win_x64.zip artifacts/dbgate-windows-check.zip || true
|
||||
cp app/dist/*win_arm64.zip artifacts/dbgate-windows-check-arm64.zip || true
|
||||
cp app/dist/*win_arm64.exe artifacts/dbgate-windows-check-arm64.exe || true
|
||||
cp app/dist/*-mac_universal.dmg artifacts/dbgate-check.dmg || true
|
||||
cp app/dist/*-mac_x64.dmg artifacts/dbgate-check-x64.dmg || true
|
||||
cp app/dist/*-mac_arm64.dmg artifacts/dbgate-check-arm64.dmg || true
|
||||
mv app/dist/*.snap artifacts/dbgate-check.snap || true
|
||||
|
||||
mv app/dist/*.exe artifacts/ || true
|
||||
mv app/dist/*.zip artifacts/ || true
|
||||
mv app/dist/*.tar.gz artifacts/ || true
|
||||
mv app/dist/*.AppImage artifacts/ || true
|
||||
mv app/dist/*.deb artifacts/ || true
|
||||
mv app/dist/*.snap artifacts/ || true
|
||||
mv app/dist/*.dmg artifacts/ || true
|
||||
mv app/dist/*.blockmap artifacts/ || true
|
||||
|
||||
mv app/dist/*.yml artifacts/ || true
|
||||
rm artifacts/builder-debug.yml
|
||||
- name: Print content of notarization-error.log
|
||||
if: failure() && matrix.os == 'macos-14'
|
||||
run: |
|
||||
|
||||
find . -type f -name "notarization-error.log" -exec echo "=== Start of {} ===" \; -exec cat {} \; -exec echo "=== End of {} ===" \;
|
||||
93
.github/workflows/build-app-pro-beta.yaml
vendored
93
.github/workflows/build-app-pro-beta.yaml
vendored
@@ -5,10 +5,14 @@ name: Electron app PREMIUM BETA
|
||||
'on':
|
||||
push:
|
||||
tags:
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+-premium-beta.[0-9]+'
|
||||
- v[0-9]+.[0-9]+.[0-9]+-premium-beta.[0-9]+
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: write
|
||||
jobs:
|
||||
build:
|
||||
runs-on: '${{ matrix.os }}'
|
||||
runs-on: ${{ matrix.os }}
|
||||
environment: dbgate-app
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -17,6 +21,10 @@ jobs:
|
||||
- windows-2022
|
||||
- ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
- run: python -m pip install --upgrade pip setuptools
|
||||
- name: Install python 3.11 (MacOS)
|
||||
if: matrix.os == 'macos-14'
|
||||
run: |
|
||||
@@ -24,7 +32,7 @@ jobs:
|
||||
echo "PYTHON=/opt/homebrew/bin/python3.11" >> $GITHUB_ENV
|
||||
- name: Context
|
||||
env:
|
||||
GITHUB_CONTEXT: '${{ toJson(github) }}'
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
@@ -37,9 +45,9 @@ jobs:
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: dbgate/dbgate-pro
|
||||
token: '${{ secrets.GH_TOKEN }}'
|
||||
token: ${{ secrets.GH_TOKEN }}
|
||||
path: dbgate-pro
|
||||
ref: ef8978facad7372157c7a5e367763ecc7a07a14a
|
||||
ref: 87c3efdaf83786abee4366dee2c58fea355edc4c
|
||||
- name: Merge dbgate/dbgate-pro
|
||||
run: |
|
||||
mkdir ../dbgate-pro
|
||||
@@ -81,37 +89,67 @@ jobs:
|
||||
cd dbgate-merged
|
||||
|
||||
yarn setCurrentVersion
|
||||
- name: printSecrets
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn printSecrets
|
||||
env:
|
||||
GIST_UPLOAD_SECRET: '${{secrets.GIST_UPLOAD_SECRET}}'
|
||||
- name: fillPackagedPlugins
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn fillPackagedPlugins
|
||||
- name: Publish
|
||||
- name: Publish Windows
|
||||
if: matrix.os == 'windows-2022'
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn run build:app
|
||||
- name: Publish MacOS
|
||||
if: matrix.os == 'macos-14'
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn run build:app
|
||||
env:
|
||||
GH_TOKEN: '${{ secrets.GH_TOKEN }}'
|
||||
WIN_CSC_LINK: '${{ secrets.WINCERT_2025 }}'
|
||||
WIN_CSC_KEY_PASSWORD: '${{ secrets.WINCERT_2025_PASSWORD }}'
|
||||
CSC_LINK: '${{ secrets.APPLECERT_CERTIFICATE }}'
|
||||
CSC_KEY_PASSWORD: '${{ secrets.APPLECERT_PASSWORD }}'
|
||||
APPLE_ID: '${{ secrets.APPLE_ID }}'
|
||||
APPLE_TEAM_ID: '${{ secrets.APPLE_TEAM_ID }}'
|
||||
APPLE_ID_PASSWORD: '${{ secrets.APPLE_ID_PASSWORD }}'
|
||||
SNAPCRAFT_STORE_CREDENTIALS: '${{secrets.SNAPCRAFT_LOGIN}}'
|
||||
APPLE_APP_SPECIFIC_PASSWORD: '${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}'
|
||||
CSC_LINK: ${{ secrets.APPLECERT_CERTIFICATE }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.APPLECERT_PASSWORD }}
|
||||
APPLE_ID: ${{ secrets.APPLE_ID }}
|
||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
|
||||
APPLE_APP_SPECIFIC_PASSWORD: ${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}
|
||||
- name: Publish Linux
|
||||
if: matrix.os == 'ubuntu-22.04'
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn run build:app
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_LOGIN}}
|
||||
- name: Azure login (OIDC)
|
||||
uses: azure/login@v2
|
||||
if: matrix.os == 'windows-2022'
|
||||
with:
|
||||
client-id: ${{ secrets.AZURE_TC_CLIENT_ID }}
|
||||
tenant-id: ${{ secrets.AZURE_TC_TENANT_ID }}
|
||||
allow-no-subscriptions: true
|
||||
- name: Sign Windows artifacts with Azure Trusted Signing
|
||||
uses: azure/trusted-signing-action@v0
|
||||
if: matrix.os == 'windows-2022'
|
||||
with:
|
||||
endpoint: https://wus3.codesigning.azure.net/
|
||||
trusted-signing-account-name: DbGate
|
||||
certificate-profile-name: DbGate-Release
|
||||
files-folder: ../dbgate-merged/app/dist
|
||||
files-folder-filter: exe
|
||||
timestamp-rfc3161: http://timestamp.acs.microsoft.com
|
||||
timestamp-digest: SHA256
|
||||
- name: Fix YML hashes
|
||||
if: matrix.os == 'windows-2022'
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn run fixYmlHashes
|
||||
- name: Copy artifacts
|
||||
run: |
|
||||
mkdir artifacts
|
||||
@@ -123,6 +161,7 @@ jobs:
|
||||
cp ../dbgate-merged/app/dist/*win*.exe artifacts/dbgate-premium-beta.exe || true
|
||||
cp ../dbgate-merged/app/dist/*win_x64.zip artifacts/dbgate-windows-premium-beta.zip || true
|
||||
cp ../dbgate-merged/app/dist/*win_arm64.zip artifacts/dbgate-windows-premium-beta-arm64.zip || true
|
||||
cp ../dbgate-merged/app/dist/*win_arm64.exe artifacts/dbgate-windows-premium-beta-arm64.exe || true
|
||||
cp ../dbgate-merged/app/dist/*-mac_universal.dmg artifacts/dbgate-premium-beta.dmg || true
|
||||
cp ../dbgate-merged/app/dist/*-mac_x64.dmg artifacts/dbgate-premium-beta-x64.dmg || true
|
||||
cp ../dbgate-merged/app/dist/*-mac_arm64.dmg artifacts/dbgate-premium-beta-arm64.dmg || true
|
||||
@@ -142,16 +181,16 @@ jobs:
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: '${{ matrix.os }}'
|
||||
name: ${{ matrix.os }}
|
||||
path: artifacts
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: 'startsWith(github.ref, ''refs/tags/'')'
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
files: artifacts/**
|
||||
prerelease: true
|
||||
env:
|
||||
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Print content of notarization-error.log
|
||||
if: failure() && matrix.os == 'macos-14'
|
||||
run: |
|
||||
|
||||
93
.github/workflows/build-app-pro.yaml
vendored
93
.github/workflows/build-app-pro.yaml
vendored
@@ -5,10 +5,14 @@ name: Electron app PREMIUM
|
||||
'on':
|
||||
push:
|
||||
tags:
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||
- v[0-9]+.[0-9]+.[0-9]+
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: write
|
||||
jobs:
|
||||
build:
|
||||
runs-on: '${{ matrix.os }}'
|
||||
runs-on: ${{ matrix.os }}
|
||||
environment: dbgate-app
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -17,6 +21,10 @@ jobs:
|
||||
- windows-2022
|
||||
- ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
- run: python -m pip install --upgrade pip setuptools
|
||||
- name: Install python 3.11 (MacOS)
|
||||
if: matrix.os == 'macos-14'
|
||||
run: |
|
||||
@@ -24,7 +32,7 @@ jobs:
|
||||
echo "PYTHON=/opt/homebrew/bin/python3.11" >> $GITHUB_ENV
|
||||
- name: Context
|
||||
env:
|
||||
GITHUB_CONTEXT: '${{ toJson(github) }}'
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
@@ -37,9 +45,9 @@ jobs:
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: dbgate/dbgate-pro
|
||||
token: '${{ secrets.GH_TOKEN }}'
|
||||
token: ${{ secrets.GH_TOKEN }}
|
||||
path: dbgate-pro
|
||||
ref: ef8978facad7372157c7a5e367763ecc7a07a14a
|
||||
ref: 87c3efdaf83786abee4366dee2c58fea355edc4c
|
||||
- name: Merge dbgate/dbgate-pro
|
||||
run: |
|
||||
mkdir ../dbgate-pro
|
||||
@@ -81,37 +89,67 @@ jobs:
|
||||
cd dbgate-merged
|
||||
|
||||
yarn setCurrentVersion
|
||||
- name: printSecrets
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn printSecrets
|
||||
env:
|
||||
GIST_UPLOAD_SECRET: '${{secrets.GIST_UPLOAD_SECRET}}'
|
||||
- name: fillPackagedPlugins
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn fillPackagedPlugins
|
||||
- name: Publish
|
||||
- name: Publish Windows
|
||||
if: matrix.os == 'windows-2022'
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn run build:app
|
||||
- name: Publish MacOS
|
||||
if: matrix.os == 'macos-14'
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn run build:app
|
||||
env:
|
||||
GH_TOKEN: '${{ secrets.GH_TOKEN }}'
|
||||
WIN_CSC_LINK: '${{ secrets.WINCERT_2025 }}'
|
||||
WIN_CSC_KEY_PASSWORD: '${{ secrets.WINCERT_2025_PASSWORD }}'
|
||||
CSC_LINK: '${{ secrets.APPLECERT_CERTIFICATE }}'
|
||||
CSC_KEY_PASSWORD: '${{ secrets.APPLECERT_PASSWORD }}'
|
||||
APPLE_ID: '${{ secrets.APPLE_ID }}'
|
||||
APPLE_TEAM_ID: '${{ secrets.APPLE_TEAM_ID }}'
|
||||
APPLE_ID_PASSWORD: '${{ secrets.APPLE_ID_PASSWORD }}'
|
||||
SNAPCRAFT_STORE_CREDENTIALS: '${{secrets.SNAPCRAFT_LOGIN}}'
|
||||
APPLE_APP_SPECIFIC_PASSWORD: '${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}'
|
||||
CSC_LINK: ${{ secrets.APPLECERT_CERTIFICATE }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.APPLECERT_PASSWORD }}
|
||||
APPLE_ID: ${{ secrets.APPLE_ID }}
|
||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
|
||||
APPLE_APP_SPECIFIC_PASSWORD: ${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}
|
||||
- name: Publish Linux
|
||||
if: matrix.os == 'ubuntu-22.04'
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn run build:app
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_LOGIN}}
|
||||
- name: Azure login (OIDC)
|
||||
uses: azure/login@v2
|
||||
if: matrix.os == 'windows-2022'
|
||||
with:
|
||||
client-id: ${{ secrets.AZURE_TC_CLIENT_ID }}
|
||||
tenant-id: ${{ secrets.AZURE_TC_TENANT_ID }}
|
||||
allow-no-subscriptions: true
|
||||
- name: Sign Windows artifacts with Azure Trusted Signing
|
||||
uses: azure/trusted-signing-action@v0
|
||||
if: matrix.os == 'windows-2022'
|
||||
with:
|
||||
endpoint: https://wus3.codesigning.azure.net/
|
||||
trusted-signing-account-name: DbGate
|
||||
certificate-profile-name: DbGate-Release
|
||||
files-folder: ../dbgate-merged/app/dist
|
||||
files-folder-filter: exe
|
||||
timestamp-rfc3161: http://timestamp.acs.microsoft.com
|
||||
timestamp-digest: SHA256
|
||||
- name: Fix YML hashes
|
||||
if: matrix.os == 'windows-2022'
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn run fixYmlHashes
|
||||
- name: Copy artifacts
|
||||
run: |
|
||||
mkdir artifacts
|
||||
@@ -123,6 +161,7 @@ jobs:
|
||||
cp ../dbgate-merged/app/dist/*win*.exe artifacts/dbgate-premium-latest.exe || true
|
||||
cp ../dbgate-merged/app/dist/*win_x64.zip artifacts/dbgate-windows-premium-latest.zip || true
|
||||
cp ../dbgate-merged/app/dist/*win_arm64.zip artifacts/dbgate-windows-premium-latest-arm64.zip || true
|
||||
cp ../dbgate-merged/app/dist/*win_arm64.exe artifacts/dbgate-windows-premium-latest-arm64.exe || true
|
||||
cp ../dbgate-merged/app/dist/*-mac_universal.dmg artifacts/dbgate-premium-latest.dmg || true
|
||||
cp ../dbgate-merged/app/dist/*-mac_x64.dmg artifacts/dbgate-premium-latest-x64.dmg || true
|
||||
cp ../dbgate-merged/app/dist/*-mac_arm64.dmg artifacts/dbgate-premium-latest-arm64.dmg || true
|
||||
@@ -142,16 +181,16 @@ jobs:
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: '${{ matrix.os }}'
|
||||
name: ${{ matrix.os }}
|
||||
path: artifacts
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: 'startsWith(github.ref, ''refs/tags/'')'
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
files: artifacts/**
|
||||
prerelease: false
|
||||
env:
|
||||
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Print content of notarization-error.log
|
||||
if: failure() && matrix.os == 'macos-14'
|
||||
run: |
|
||||
|
||||
81
.github/workflows/build-app.yaml
vendored
81
.github/workflows/build-app.yaml
vendored
@@ -5,10 +5,14 @@ name: Electron app
|
||||
'on':
|
||||
push:
|
||||
tags:
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||
- v[0-9]+.[0-9]+.[0-9]+
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: write
|
||||
jobs:
|
||||
build:
|
||||
runs-on: '${{ matrix.os }}'
|
||||
runs-on: ${{ matrix.os }}
|
||||
environment: dbgate-app
|
||||
strategy:
|
||||
fail-fast: false
|
||||
matrix:
|
||||
@@ -17,6 +21,10 @@ jobs:
|
||||
- windows-2022
|
||||
- ubuntu-22.04
|
||||
steps:
|
||||
- uses: actions/setup-python@v5
|
||||
with:
|
||||
python-version: '3.11'
|
||||
- run: python -m pip install --upgrade pip setuptools
|
||||
- name: Install python 3.11 (MacOS)
|
||||
if: matrix.os == 'macos-14'
|
||||
run: |
|
||||
@@ -24,7 +32,7 @@ jobs:
|
||||
echo "PYTHON=/opt/homebrew/bin/python3.11" >> $GITHUB_ENV
|
||||
- name: Context
|
||||
env:
|
||||
GITHUB_CONTEXT: '${{ toJson(github) }}'
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
@@ -49,12 +57,6 @@ jobs:
|
||||
run: |
|
||||
|
||||
yarn setCurrentVersion
|
||||
- name: printSecrets
|
||||
run: |
|
||||
|
||||
yarn printSecrets
|
||||
env:
|
||||
GIST_UPLOAD_SECRET: '${{secrets.GIST_UPLOAD_SECRET}}'
|
||||
- name: fillPackagedPlugins
|
||||
run: |
|
||||
|
||||
@@ -62,24 +64,56 @@ jobs:
|
||||
- name: Install Snapcraft
|
||||
if: matrix.os == 'ubuntu-22.04'
|
||||
uses: samuelmeuli/action-snapcraft@v1
|
||||
- name: Publish
|
||||
- name: Publish Windows
|
||||
if: matrix.os == 'windows-2022'
|
||||
run: |
|
||||
|
||||
yarn run build:app
|
||||
- name: Publish MacOS
|
||||
if: matrix.os == 'macos-14'
|
||||
run: |
|
||||
|
||||
yarn run build:app
|
||||
env:
|
||||
GH_TOKEN: '${{ secrets.GH_TOKEN }}'
|
||||
WIN_CSC_LINK: '${{ secrets.WINCERT_2025 }}'
|
||||
WIN_CSC_KEY_PASSWORD: '${{ secrets.WINCERT_2025_PASSWORD }}'
|
||||
CSC_LINK: '${{ secrets.APPLECERT_CERTIFICATE }}'
|
||||
CSC_KEY_PASSWORD: '${{ secrets.APPLECERT_PASSWORD }}'
|
||||
APPLE_ID: '${{ secrets.APPLE_ID }}'
|
||||
APPLE_TEAM_ID: '${{ secrets.APPLE_TEAM_ID }}'
|
||||
APPLE_ID_PASSWORD: '${{ secrets.APPLE_ID_PASSWORD }}'
|
||||
SNAPCRAFT_STORE_CREDENTIALS: '${{secrets.SNAPCRAFT_LOGIN}}'
|
||||
APPLE_APP_SPECIFIC_PASSWORD: '${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}'
|
||||
CSC_LINK: ${{ secrets.APPLECERT_CERTIFICATE }}
|
||||
CSC_KEY_PASSWORD: ${{ secrets.APPLECERT_PASSWORD }}
|
||||
APPLE_ID: ${{ secrets.APPLE_ID }}
|
||||
APPLE_TEAM_ID: ${{ secrets.APPLE_TEAM_ID }}
|
||||
APPLE_ID_PASSWORD: ${{ secrets.APPLE_ID_PASSWORD }}
|
||||
APPLE_APP_SPECIFIC_PASSWORD: ${{secrets.APPLE_APP_SPECIFIC_PASSWORD}}
|
||||
- name: Publish Linux
|
||||
if: matrix.os == 'ubuntu-22.04'
|
||||
run: |
|
||||
|
||||
yarn run build:app
|
||||
env:
|
||||
SNAPCRAFT_STORE_CREDENTIALS: ${{secrets.SNAPCRAFT_LOGIN}}
|
||||
- name: generatePadFile
|
||||
run: |
|
||||
yarn generatePadFile
|
||||
- name: Azure login (OIDC)
|
||||
uses: azure/login@v2
|
||||
if: matrix.os == 'windows-2022'
|
||||
with:
|
||||
client-id: ${{ secrets.AZURE_TC_CLIENT_ID }}
|
||||
tenant-id: ${{ secrets.AZURE_TC_TENANT_ID }}
|
||||
allow-no-subscriptions: true
|
||||
- name: Sign Windows artifacts with Azure Trusted Signing
|
||||
uses: azure/trusted-signing-action@v0
|
||||
if: matrix.os == 'windows-2022'
|
||||
with:
|
||||
endpoint: https://wus3.codesigning.azure.net/
|
||||
trusted-signing-account-name: DbGate
|
||||
certificate-profile-name: DbGate-Release
|
||||
files-folder: app/dist
|
||||
files-folder-filter: exe
|
||||
timestamp-rfc3161: http://timestamp.acs.microsoft.com
|
||||
timestamp-digest: SHA256
|
||||
- name: Fix YML hashes
|
||||
if: matrix.os == 'windows-2022'
|
||||
run: |
|
||||
|
||||
yarn run fixYmlHashes
|
||||
- name: Copy artifacts
|
||||
run: |
|
||||
mkdir artifacts
|
||||
@@ -91,6 +125,7 @@ jobs:
|
||||
cp app/dist/*win*.exe artifacts/dbgate-latest.exe || true
|
||||
cp app/dist/*win_x64.zip artifacts/dbgate-windows-latest.zip || true
|
||||
cp app/dist/*win_arm64.zip artifacts/dbgate-windows-latest-arm64.zip || true
|
||||
cp app/dist/*win_arm64.exe artifacts/dbgate-windows-latest-arm64.exe || true
|
||||
cp app/dist/*-mac_universal.dmg artifacts/dbgate-latest.dmg || true
|
||||
cp app/dist/*-mac_x64.dmg artifacts/dbgate-latest-x64.dmg || true
|
||||
cp app/dist/*-mac_arm64.dmg artifacts/dbgate-latest-arm64.dmg || true
|
||||
@@ -114,16 +149,16 @@ jobs:
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: '${{ matrix.os }}'
|
||||
name: ${{ matrix.os }}
|
||||
path: artifacts
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: 'startsWith(github.ref, ''refs/tags/'')'
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
files: artifacts/**
|
||||
prerelease: false
|
||||
env:
|
||||
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Print content of notarization-error.log
|
||||
if: failure() && matrix.os == 'macos-14'
|
||||
run: |
|
||||
|
||||
123
.github/workflows/build-aws-pro.yaml
vendored
123
.github/workflows/build-aws-pro.yaml
vendored
@@ -1,123 +0,0 @@
|
||||
# --------------------------------------------------------------------------------------------
|
||||
# This file is generated. Do not edit manually
|
||||
# --------------------------------------------------------------------------------------------
|
||||
name: AWS image PREMIUM
|
||||
'on':
|
||||
push:
|
||||
tags:
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+-packer-beta.[0-9]+'
|
||||
jobs:
|
||||
build:
|
||||
runs-on: '${{ matrix.os }}'
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
- ubuntu-22.04
|
||||
steps:
|
||||
- name: Context
|
||||
env:
|
||||
GITHUB_CONTEXT: '${{ toJson(github) }}'
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Use Node.js 18.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 18.x
|
||||
- name: Setup `packer`
|
||||
uses: hashicorp/setup-packer@main
|
||||
with:
|
||||
version: latest
|
||||
- name: Checkout dbgate/dbgate-pro
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: dbgate/dbgate-pro
|
||||
token: '${{ secrets.GH_TOKEN }}'
|
||||
path: dbgate-pro
|
||||
- name: Merge dbgate/dbgate-pro
|
||||
run: |
|
||||
mkdir ../dbgate-pro
|
||||
mv dbgate-pro/* ../dbgate-pro/
|
||||
cd ..
|
||||
mkdir dbgate-merged
|
||||
cd dbgate-pro
|
||||
cd sync
|
||||
yarn
|
||||
node sync.js --nowatch
|
||||
cd ..
|
||||
- name: adjustPackageJson
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
node adjustPackageJson --premium
|
||||
- name: yarn install
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
yarn install
|
||||
- name: setCurrentVersion
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
yarn setCurrentVersion
|
||||
- name: printSecrets
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
yarn printSecrets
|
||||
env:
|
||||
GIST_UPLOAD_SECRET: '${{secrets.GIST_UPLOAD_SECRET}}'
|
||||
- name: Prepare packer build
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
yarn run prepare:packer
|
||||
cd packer
|
||||
zip -r cloud-build.zip build
|
||||
- name: Copy artifacts
|
||||
run: |
|
||||
mkdir artifacts
|
||||
cp ../dbgate-merged/packer/cloud-build.zip artifacts/cloud-build.zip || true
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: '${{ matrix.os }}'
|
||||
path: artifacts
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: 'startsWith(github.ref, ''refs/tags/'')'
|
||||
with:
|
||||
files: artifacts/**
|
||||
prerelease: true
|
||||
env:
|
||||
GITHUB_TOKEN: '${{ secrets.GITHUB_TOKEN }}'
|
||||
- name: Run `packer init`
|
||||
run: |
|
||||
cd ../dbgate-merged/packer
|
||||
packer init ./aws-ubuntu.pkr.hcl
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: '${{secrets.AWS_ACCESS_KEY_ID}}'
|
||||
AWS_SECRET_ACCESS_KEY: '${{secrets.AWS_SECRET_ACCESS_KEY}}'
|
||||
AWS_DEFAULT_REGION: '${{secrets.AWS_DEFAULT_REGION}}'
|
||||
- name: Run `packer build`
|
||||
run: |
|
||||
cd ../dbgate-merged/packer
|
||||
packer build ./aws-ubuntu.pkr.hcl
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: '${{secrets.AWS_ACCESS_KEY_ID}}'
|
||||
AWS_SECRET_ACCESS_KEY: '${{secrets.AWS_SECRET_ACCESS_KEY}}'
|
||||
AWS_DEFAULT_REGION: '${{secrets.AWS_DEFAULT_REGION}}'
|
||||
- name: Install jq
|
||||
run: |
|
||||
sudo apt-get install jq -y
|
||||
- name: Delete old AMIs
|
||||
run: |
|
||||
cd ../dbgate-merged/packer
|
||||
chmod +x delete-old-amis.sh
|
||||
./delete-old-amis.sh
|
||||
env:
|
||||
AWS_ACCESS_KEY_ID: '${{secrets.AWS_ACCESS_KEY_ID}}'
|
||||
AWS_SECRET_ACCESS_KEY: '${{secrets.AWS_SECRET_ACCESS_KEY}}'
|
||||
AWS_DEFAULT_REGION: '${{secrets.AWS_DEFAULT_REGION}}'
|
||||
@@ -1,21 +1,19 @@
|
||||
name: AWS image PREMIUM
|
||||
|
||||
on:
|
||||
# --------------------------------------------------------------------------------------------
|
||||
# This file is generated. Do not edit manually
|
||||
# --------------------------------------------------------------------------------------------
|
||||
name: Cloud images PREMIUM
|
||||
'on':
|
||||
push:
|
||||
tags:
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||
# - 'v[0-9]+.[0-9]+.[0-9]+-premium-beta.[0-9]+'
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+-packer-beta.[0-9]+'
|
||||
|
||||
- v[0-9]+.[0-9]+.[0-9]+
|
||||
- v[0-9]+.[0-9]+.[0-9]+-packer-beta.[0-9]+
|
||||
jobs:
|
||||
build:
|
||||
|
||||
runs-on: ${{ matrix.os }}
|
||||
|
||||
strategy:
|
||||
matrix:
|
||||
os: [ubuntu-22.04]
|
||||
|
||||
os:
|
||||
- ubuntu-22.04
|
||||
steps:
|
||||
- name: Context
|
||||
env:
|
||||
@@ -24,24 +22,24 @@ jobs:
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
|
||||
- name: Use Node.js 18.x
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 18.x
|
||||
|
||||
node-version: 22.x
|
||||
- name: Install jq
|
||||
run: |
|
||||
sudo apt-get install jq -y
|
||||
- name: Setup `packer`
|
||||
uses: hashicorp/setup-packer@main
|
||||
with:
|
||||
version: latest
|
||||
|
||||
- name: Checkout dbgate/dbgate-pro
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: dbgate/dbgate-pro
|
||||
token: ${{ secrets.GH_TOKEN }}
|
||||
path: dbgate-pro
|
||||
|
||||
ref: 87c3efdaf83786abee4366dee2c58fea355edc4c
|
||||
- name: Merge dbgate/dbgate-pro
|
||||
run: |
|
||||
mkdir ../dbgate-pro
|
||||
@@ -53,33 +51,21 @@ jobs:
|
||||
yarn
|
||||
node sync.js --nowatch
|
||||
cd ..
|
||||
|
||||
- name: adjustPackageJson
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
node adjustPackageJson --premium
|
||||
|
||||
- name: yarn install
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
yarn install
|
||||
|
||||
- name: setCurrentVersion
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
yarn setCurrentVersion
|
||||
|
||||
- name: printSecrets
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
yarn printSecrets
|
||||
env:
|
||||
GIST_UPLOAD_SECRET : ${{secrets.GIST_UPLOAD_SECRET}}
|
||||
|
||||
- name: Prepare packer build
|
||||
run: |
|
||||
cd ..
|
||||
@@ -87,28 +73,24 @@ jobs:
|
||||
yarn run prepare:packer
|
||||
cd packer
|
||||
zip -r cloud-build.zip build
|
||||
|
||||
- name: Copy artifacts
|
||||
run: |
|
||||
mkdir artifacts
|
||||
cp ../dbgate-merged/packer/cloud-build.zip artifacts/cloud-build.zip || true
|
||||
|
||||
- name: Upload artifacts
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: ${{ matrix.os }}
|
||||
path: artifacts
|
||||
|
||||
- name: Release
|
||||
uses: softprops/action-gh-release@v1
|
||||
if: startsWith(github.ref, 'refs/tags/')
|
||||
with:
|
||||
files: 'artifacts/**'
|
||||
files: artifacts/**
|
||||
prerelease: true
|
||||
env:
|
||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
- name: Run `packer init`
|
||||
- name: Run `packer init` for AWS
|
||||
run: |
|
||||
cd ../dbgate-merged/packer
|
||||
packer init ./aws-ubuntu.pkr.hcl
|
||||
@@ -116,8 +98,7 @@ jobs:
|
||||
AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
|
||||
AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}
|
||||
AWS_DEFAULT_REGION: ${{secrets.AWS_DEFAULT_REGION}}
|
||||
|
||||
- name: Run `packer build`
|
||||
- name: Run `packer build` for AWS
|
||||
run: |
|
||||
cd ../dbgate-merged/packer
|
||||
packer build ./aws-ubuntu.pkr.hcl
|
||||
@@ -125,19 +106,7 @@ jobs:
|
||||
AWS_ACCESS_KEY_ID: ${{secrets.AWS_ACCESS_KEY_ID}}
|
||||
AWS_SECRET_ACCESS_KEY: ${{secrets.AWS_SECRET_ACCESS_KEY}}
|
||||
AWS_DEFAULT_REGION: ${{secrets.AWS_DEFAULT_REGION}}
|
||||
|
||||
# - name: Install AWS CLI
|
||||
# run: |
|
||||
# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
|
||||
# unzip awscliv2.zip
|
||||
# sudo ./aws/install
|
||||
# sudo apt-get install jq -y
|
||||
|
||||
- name: Install jq
|
||||
run: |
|
||||
sudo apt-get install jq -y
|
||||
|
||||
- name: Delete old AMIs
|
||||
- name: Delete old AMIs (AWS)
|
||||
run: |
|
||||
cd ../dbgate-merged/packer
|
||||
chmod +x delete-old-amis.sh
|
||||
34
.github/workflows/build-docker-pro.yaml
vendored
34
.github/workflows/build-docker-pro.yaml
vendored
@@ -5,11 +5,11 @@ name: Docker image PREMIUM
|
||||
'on':
|
||||
push:
|
||||
tags:
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+-premium-beta.[0-9]+'
|
||||
- v[0-9]+.[0-9]+.[0-9]+
|
||||
- v[0-9]+.[0-9]+.[0-9]+-premium-beta.[0-9]+
|
||||
jobs:
|
||||
build:
|
||||
runs-on: '${{ matrix.os }}'
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
steps:
|
||||
- name: Context
|
||||
env:
|
||||
GITHUB_CONTEXT: '${{ toJson(github) }}'
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
@@ -34,17 +34,17 @@ jobs:
|
||||
|
||||
type=match,pattern=\d+.\d+.\d+,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
|
||||
type=raw,value=latest,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
|
||||
- name: Use Node.js 18.x
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 18.x
|
||||
node-version: 22.x
|
||||
- name: Checkout dbgate/dbgate-pro
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: dbgate/dbgate-pro
|
||||
token: '${{ secrets.GH_TOKEN }}'
|
||||
token: ${{ secrets.GH_TOKEN }}
|
||||
path: dbgate-pro
|
||||
ref: ef8978facad7372157c7a5e367763ecc7a07a14a
|
||||
ref: 87c3efdaf83786abee4366dee2c58fea355edc4c
|
||||
- name: Merge dbgate/dbgate-pro
|
||||
run: |
|
||||
mkdir ../dbgate-pro
|
||||
@@ -76,31 +76,25 @@ jobs:
|
||||
cd dbgate-merged
|
||||
|
||||
yarn setCurrentVersion
|
||||
- name: printSecrets
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn printSecrets
|
||||
env:
|
||||
GIST_UPLOAD_SECRET: '${{secrets.GIST_UPLOAD_SECRET}}'
|
||||
- name: Prepare docker image
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
|
||||
yarn run prepare:docker
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: '${{ secrets.DOCKER_USERNAME }}'
|
||||
password: '${{ secrets.DOCKER_PASSWORD }}'
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
push: true
|
||||
context: ../dbgate-merged/docker
|
||||
tags: '${{ steps.meta.outputs.tags }}'
|
||||
platforms: 'linux/amd64,linux/arm64'
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
platforms: linux/amd64,linux/arm64
|
||||
|
||||
32
.github/workflows/build-docker.yaml
vendored
32
.github/workflows/build-docker.yaml
vendored
@@ -5,11 +5,11 @@ name: Docker image Community
|
||||
'on':
|
||||
push:
|
||||
tags:
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+'
|
||||
- v[0-9]+.[0-9]+.[0-9]+
|
||||
- v[0-9]+.[0-9]+.[0-9]+-beta.[0-9]+
|
||||
jobs:
|
||||
build:
|
||||
runs-on: '${{ matrix.os }}'
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
@@ -17,7 +17,7 @@ jobs:
|
||||
steps:
|
||||
- name: Context
|
||||
env:
|
||||
GITHUB_CONTEXT: '${{ toJson(github) }}'
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
@@ -47,10 +47,10 @@ jobs:
|
||||
|
||||
type=match,pattern=\d+.\d+.\d+,suffix=-alpine,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
|
||||
type=raw,value=alpine,enable=${{ !contains(github.ref_name, '-docker.') && !contains(github.ref_name, '-beta.') }}
|
||||
- name: Use Node.js 18.x
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 18.x
|
||||
node-version: 22.x
|
||||
- name: adjustPackageJson
|
||||
run: |
|
||||
|
||||
@@ -65,35 +65,31 @@ jobs:
|
||||
run: |
|
||||
|
||||
yarn setCurrentVersion
|
||||
- name: printSecrets
|
||||
run: |
|
||||
|
||||
yarn printSecrets
|
||||
env:
|
||||
GIST_UPLOAD_SECRET: '${{secrets.GIST_UPLOAD_SECRET}}'
|
||||
- name: Prepare docker image
|
||||
run: |
|
||||
|
||||
yarn run prepare:docker
|
||||
- name: Set up QEMU
|
||||
uses: docker/setup-qemu-action@v2
|
||||
- name: Set up Docker Buildx
|
||||
uses: docker/setup-buildx-action@v2
|
||||
- name: Login to DockerHub
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
username: '${{ secrets.DOCKER_USERNAME }}'
|
||||
password: '${{ secrets.DOCKER_PASSWORD }}'
|
||||
username: ${{ secrets.DOCKER_USERNAME }}
|
||||
password: ${{ secrets.DOCKER_PASSWORD }}
|
||||
- name: Build and push
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
push: true
|
||||
context: ./docker
|
||||
tags: '${{ steps.meta.outputs.tags }}'
|
||||
platforms: 'linux/amd64,linux/arm64,linux/arm/v7'
|
||||
tags: ${{ steps.meta.outputs.tags }}
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
- name: Build and push alpine
|
||||
uses: docker/build-push-action@v3
|
||||
with:
|
||||
push: true
|
||||
context: ./docker
|
||||
file: ./docker/Dockerfile-alpine
|
||||
tags: '${{ steps.alpmeta.outputs.tags }}'
|
||||
platforms: 'linux/amd64,linux/arm64,linux/arm/v7'
|
||||
tags: ${{ steps.alpmeta.outputs.tags }}
|
||||
platforms: linux/amd64,linux/arm64,linux/arm/v7
|
||||
|
||||
53
.github/workflows/build-npm-pro.yaml
vendored
53
.github/workflows/build-npm-pro.yaml
vendored
@@ -5,11 +5,14 @@ name: NPM packages PREMIUM
|
||||
'on':
|
||||
push:
|
||||
tags:
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+'
|
||||
- v[0-9]+.[0-9]+.[0-9]+
|
||||
- v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: write
|
||||
jobs:
|
||||
build:
|
||||
runs-on: '${{ matrix.os }}'
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
@@ -17,22 +20,22 @@ jobs:
|
||||
steps:
|
||||
- name: Context
|
||||
env:
|
||||
GITHUB_CONTEXT: '${{ toJson(github) }}'
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Use Node.js 18.x
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 18.x
|
||||
node-version: 22.x
|
||||
- name: Checkout dbgate/dbgate-pro
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: dbgate/dbgate-pro
|
||||
token: '${{ secrets.GH_TOKEN }}'
|
||||
token: ${{ secrets.GH_TOKEN }}
|
||||
path: dbgate-pro
|
||||
ref: ef8978facad7372157c7a5e367763ecc7a07a14a
|
||||
ref: 87c3efdaf83786abee4366dee2c58fea355edc4c
|
||||
- name: Merge dbgate/dbgate-pro
|
||||
run: |
|
||||
mkdir ../dbgate-pro
|
||||
@@ -49,13 +52,8 @@ jobs:
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
node adjustNpmPackageJsonPremium
|
||||
- name: Configure NPM token
|
||||
env:
|
||||
NPM_TOKEN: '${{ secrets.NPM_TOKEN }}'
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
|
||||
- name: Update npm
|
||||
run: npm install -g npm@11.5.1
|
||||
- name: Remove dbmodel - should be not published
|
||||
run: |
|
||||
cd ..
|
||||
@@ -71,30 +69,35 @@ jobs:
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
yarn setCurrentVersion
|
||||
- name: printSecrets
|
||||
- name: Compute npm dist-tag
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged
|
||||
yarn printSecrets
|
||||
env:
|
||||
GIST_UPLOAD_SECRET: '${{secrets.GIST_UPLOAD_SECRET}}'
|
||||
if [[ "${GITHUB_REF_NAME}" =~ -alpha\. ]]; then
|
||||
echo "NPM_TAG=alpha" >> $GITHUB_ENV
|
||||
else
|
||||
echo "NPM_TAG=latest" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Publish dbgate-api-premium
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged/packages/api
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-web-premium
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged/packages/web
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-serve-premium
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged/packages/serve
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-cosmosdb
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged/plugins/dbgate-plugin-cosmosdb
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-firestore
|
||||
run: |
|
||||
cd ..
|
||||
cd dbgate-merged/plugins/dbgate-plugin-firestore
|
||||
npm publish --tag "$NPM_TAG"
|
||||
|
||||
85
.github/workflows/build-npm.yaml
vendored
85
.github/workflows/build-npm.yaml
vendored
@@ -5,11 +5,14 @@ name: NPM packages
|
||||
'on':
|
||||
push:
|
||||
tags:
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+'
|
||||
- 'v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+'
|
||||
- v[0-9]+.[0-9]+.[0-9]+
|
||||
- v[0-9]+.[0-9]+.[0-9]+-alpha.[0-9]+
|
||||
permissions:
|
||||
id-token: write
|
||||
contents: write
|
||||
jobs:
|
||||
build:
|
||||
runs-on: '${{ matrix.os }}'
|
||||
runs-on: ${{ matrix.os }}
|
||||
strategy:
|
||||
matrix:
|
||||
os:
|
||||
@@ -17,109 +20,119 @@ jobs:
|
||||
steps:
|
||||
- name: Context
|
||||
env:
|
||||
GITHUB_CONTEXT: '${{ toJson(github) }}'
|
||||
GITHUB_CONTEXT: ${{ toJson(github) }}
|
||||
run: echo "$GITHUB_CONTEXT"
|
||||
- uses: actions/checkout@v2
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Use Node.js 18.x
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 18.x
|
||||
- name: Configure NPM token
|
||||
env:
|
||||
NPM_TOKEN: '${{ secrets.NPM_TOKEN }}'
|
||||
run: |
|
||||
npm config set '//registry.npmjs.org/:_authToken' "${NPM_TOKEN}"
|
||||
node-version: 22.x
|
||||
- name: Update npm
|
||||
run: npm install -g npm@11.5.1
|
||||
- name: yarn install
|
||||
run: |
|
||||
yarn install
|
||||
- name: setCurrentVersion
|
||||
run: |
|
||||
yarn setCurrentVersion
|
||||
- name: printSecrets
|
||||
- name: Compute npm dist-tag
|
||||
run: |
|
||||
yarn printSecrets
|
||||
env:
|
||||
GIST_UPLOAD_SECRET: '${{secrets.GIST_UPLOAD_SECRET}}'
|
||||
if [[ "${GITHUB_REF_NAME}" =~ -alpha\. ]]; then
|
||||
echo "NPM_TAG=alpha" >> $GITHUB_ENV
|
||||
else
|
||||
echo "NPM_TAG=latest" >> $GITHUB_ENV
|
||||
fi
|
||||
- name: Publish types
|
||||
working-directory: packages/types
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish tools
|
||||
working-directory: packages/tools
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish sqltree
|
||||
working-directory: packages/sqltree
|
||||
run: |
|
||||
npm publish
|
||||
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish rest
|
||||
working-directory: packages/rest
|
||||
run: |
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish api
|
||||
working-directory: packages/api
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish datalib
|
||||
working-directory: packages/datalib
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish filterparser
|
||||
working-directory: packages/filterparser
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish web
|
||||
working-directory: packages/web
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-serve
|
||||
working-directory: packages/serve
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbmodel
|
||||
working-directory: packages/dbmodel
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-csv
|
||||
working-directory: plugins/dbgate-plugin-csv
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-xml
|
||||
working-directory: plugins/dbgate-plugin-xml
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-excel
|
||||
working-directory: plugins/dbgate-plugin-excel
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-mssql
|
||||
working-directory: plugins/dbgate-plugin-mssql
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-mysql
|
||||
working-directory: plugins/dbgate-plugin-mysql
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-mongo
|
||||
working-directory: plugins/dbgate-plugin-mongo
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-postgres
|
||||
working-directory: plugins/dbgate-plugin-postgres
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-sqlite
|
||||
working-directory: plugins/dbgate-plugin-sqlite
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-redis
|
||||
working-directory: plugins/dbgate-plugin-redis
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-oracle
|
||||
working-directory: plugins/dbgate-plugin-oracle
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-clickhouse
|
||||
working-directory: plugins/dbgate-plugin-clickhouse
|
||||
run: |
|
||||
npm publish
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-dbf
|
||||
working-directory: plugins/dbgate-plugin-dbf
|
||||
run: |
|
||||
npm publish --tag "$NPM_TAG"
|
||||
- name: Publish dbgate-plugin-cassandra
|
||||
working-directory: plugins/dbgate-plugin-cassandra
|
||||
run: |
|
||||
npm publish --tag "$NPM_TAG"
|
||||
|
||||
5
.github/workflows/build-test-containers.yaml
vendored
5
.github/workflows/build-test-containers.yaml
vendored
@@ -8,6 +8,7 @@ name: Build test containers
|
||||
- master
|
||||
- develop
|
||||
- feature/**
|
||||
- hotfix/**
|
||||
paths:
|
||||
- e2e-tests/containers/**
|
||||
jobs:
|
||||
@@ -29,8 +30,8 @@ jobs:
|
||||
uses: docker/login-action@v2
|
||||
with:
|
||||
registry: ghcr.io
|
||||
username: '${{ github.actor }}'
|
||||
password: '${{ secrets.GITHUB_TOKEN }}'
|
||||
username: ${{ github.actor }}
|
||||
password: ${{ secrets.GITHUB_TOKEN }}
|
||||
- name: Push mysql-ssh-login to GHCR
|
||||
run: |
|
||||
docker tag dbgate/mysql-ssh-login:latest ghcr.io/dbgate/mysql-ssh-login:latest
|
||||
|
||||
36
.github/workflows/diflow.yaml
vendored
Normal file
36
.github/workflows/diflow.yaml
vendored
Normal file
@@ -0,0 +1,36 @@
|
||||
# --------------------------------------------------------------------------------------------
|
||||
# This file is generated. Do not edit manually
|
||||
# --------------------------------------------------------------------------------------------
|
||||
name: Diflow merge
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
jobs:
|
||||
merge:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 22.x
|
||||
- name: Checkout dbgate/diflow
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: dbgate/diflow
|
||||
path: diflow
|
||||
- name: Diflow install
|
||||
run: |
|
||||
cd diflow
|
||||
npm install
|
||||
npm run build
|
||||
- name: Git config
|
||||
run: |
|
||||
git config --global user.email "info@dbgate.io"
|
||||
git config --global user.name "Diflow"
|
||||
- name: Diflow run
|
||||
run: |
|
||||
cd diflow
|
||||
node dist/diflow.js sync -r https://DIFLOW_GIT_SECRET@github.com/dbgate/dbgate-diflow-config.git -b master
|
||||
env:
|
||||
DIFLOW_GIT_SECRET: ${{ secrets.DIFLOW_GIT_SECRET }}
|
||||
152
.github/workflows/e2e-pro.yaml
vendored
Normal file
152
.github/workflows/e2e-pro.yaml
vendored
Normal file
@@ -0,0 +1,152 @@
|
||||
# --------------------------------------------------------------------------------------------
|
||||
# This file is generated. Do not edit manually
|
||||
# --------------------------------------------------------------------------------------------
|
||||
name: Cypress tests with screenshots PREMIUM
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- stable
|
||||
- master
|
||||
- develop
|
||||
- feature/**
|
||||
- hotfix/**
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
jobs:
|
||||
e2e-tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 22.x
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Checkout dbgate/dbgate-pro
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: dbgate/dbgate-pro
|
||||
token: ${{ secrets.GH_TOKEN }}
|
||||
path: dbgate-pro
|
||||
ref: 87c3efdaf83786abee4366dee2c58fea355edc4c
|
||||
- name: Merge dbgate/dbgate-pro
|
||||
run: |
|
||||
mkdir ../dbgate-pro
|
||||
mv dbgate-pro/* ../dbgate-pro/
|
||||
cd ..
|
||||
mkdir dbgate-merged
|
||||
cd dbgate-pro
|
||||
cd sync
|
||||
yarn
|
||||
node sync.js --nowatch
|
||||
cd ..
|
||||
- name: yarn install
|
||||
run: |
|
||||
cd ../dbgate-merged
|
||||
yarn install
|
||||
- name: Build packer dist for cypress
|
||||
run: |
|
||||
cd ../dbgate-merged
|
||||
yarn prepare:packer
|
||||
- name: yarn install cypress
|
||||
run: |
|
||||
cd ../dbgate-merged
|
||||
cd e2e-tests
|
||||
yarn install
|
||||
- name: Run Cypress tests
|
||||
run: |
|
||||
cd ../dbgate-merged
|
||||
cd e2e-tests
|
||||
yarn test:ci
|
||||
- name: ls -R
|
||||
run: |
|
||||
cd ../dbgate-merged
|
||||
ls -R
|
||||
- name: Copy screenshots
|
||||
run: |
|
||||
mkdir screenshots
|
||||
cp ../dbgate-merged/e2e-tests/screenshots/*.png screenshots/
|
||||
- name: Upload E2E screenshots
|
||||
uses: actions/upload-artifact@v4
|
||||
with:
|
||||
name: screenshots
|
||||
path: screenshots
|
||||
- name: Push E2E screenshots - stable
|
||||
if: ${{ github.ref_name == 'stable' }}
|
||||
run: |
|
||||
git config --global user.email "info@dbgate.info"
|
||||
git config --global user.name "GitHub Actions"
|
||||
git clone https://${{ secrets.DIFLOW_GIT_SECRET }}@github.com/dbgate/dbgate-img.git
|
||||
cp ../dbgate-merged/e2e-tests/screenshots/*.png dbgate-img/static/img
|
||||
cd dbgate-img/static/img
|
||||
git add .
|
||||
git commit --amend --no-edit
|
||||
git push --force
|
||||
- name: Push E2E screenshots - master
|
||||
if: ${{ github.ref_name == 'master' }}
|
||||
run: |
|
||||
git config --global user.email "info@dbgate.info"
|
||||
git config --global user.name "GitHub Actions"
|
||||
git clone https://${{ secrets.DIFLOW_GIT_SECRET }}@github.com/dbgate/dbgate-img.git
|
||||
cp ../dbgate-merged/e2e-tests/screenshots/*.png dbgate-img/static/img-dev
|
||||
cd dbgate-img/static/img-dev
|
||||
git add .
|
||||
git commit --amend --no-edit
|
||||
git push --force
|
||||
services:
|
||||
postgres-cypress:
|
||||
image: postgres
|
||||
options: '--health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5'
|
||||
env:
|
||||
POSTGRES_PASSWORD: Pwd2020Db
|
||||
ports:
|
||||
- '16000:5432'
|
||||
mysql-cypress:
|
||||
image: mysql:8.0.18
|
||||
ports:
|
||||
- '16004:3306'
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: Pwd2020Db
|
||||
mysql-ssh-login:
|
||||
image: ghcr.io/dbgate/mysql-ssh-login:latest
|
||||
ports:
|
||||
- '16012:22'
|
||||
mysql-ssh-keyfile:
|
||||
image: ghcr.io/dbgate/mysql-ssh-keyfile:latest
|
||||
ports:
|
||||
- '16008:22'
|
||||
dex:
|
||||
image: ghcr.io/dbgate/dex:latest
|
||||
ports:
|
||||
- '16009:5556'
|
||||
mongo:
|
||||
image: mongo:4.4.29
|
||||
env:
|
||||
MONGO_INITDB_ROOT_USERNAME: root
|
||||
MONGO_INITDB_ROOT_PASSWORD: Pwd2020Db
|
||||
ports:
|
||||
- '16010:27017'
|
||||
redis:
|
||||
image: redis
|
||||
ports:
|
||||
- '16011:6379'
|
||||
dynamodb:
|
||||
image: amazon/dynamodb-local
|
||||
ports:
|
||||
- '16015:8000'
|
||||
mssql:
|
||||
image: mcr.microsoft.com/mssql/server
|
||||
ports:
|
||||
- '16014:1433'
|
||||
env:
|
||||
ACCEPT_EULA: 'Y'
|
||||
SA_PASSWORD: Pwd2020Db
|
||||
MSSQL_PID: Express
|
||||
oracle:
|
||||
image: gvenzl/oracle-xe:21-slim
|
||||
env:
|
||||
ORACLE_PASSWORD: Pwd2020Db
|
||||
ports:
|
||||
- '16013:1521'
|
||||
51
.github/workflows/process-templates.yaml
vendored
Normal file
51
.github/workflows/process-templates.yaml
vendored
Normal file
@@ -0,0 +1,51 @@
|
||||
# --------------------------------------------------------------------------------------------
|
||||
# This file is generated. Do not edit manually
|
||||
# --------------------------------------------------------------------------------------------
|
||||
name: Update Workflows
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
paths:
|
||||
- workflow-templates/**
|
||||
jobs:
|
||||
update-workflows:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Check out repository
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
token: ${{ secrets.WORKFLOW_CHANGE_ACCESS_TOKEN }}
|
||||
- name: git pull
|
||||
run: |
|
||||
git pull
|
||||
- name: Set up Node
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
node-version: 22
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
rm package.json
|
||||
rm yarn.lock
|
||||
yarn add -W js-yaml lodash
|
||||
- name: Run workflow generation
|
||||
run: |
|
||||
node common/processWorkflows.js
|
||||
- name: Git config
|
||||
run: |
|
||||
git config --global user.email "info@dbgate.io"
|
||||
git config --global user.name "CI workflows"
|
||||
- name: Commit changes
|
||||
run: |
|
||||
# Only commit if there are changes
|
||||
if [[ -n "$(git status --porcelain)" ]]; then
|
||||
git add .github/workflows
|
||||
git commit -m "chore: auto-update github workflows"
|
||||
else
|
||||
echo "No changes to commit"
|
||||
fi
|
||||
- name: Push changes
|
||||
uses: ad-m/github-push-action@v0.6.0
|
||||
with:
|
||||
github_token: ${{ secrets.WORKFLOW_CHANGE_ACCESS_TOKEN }}
|
||||
branch: master
|
||||
120
.github/workflows/run-tests.yaml
vendored
120
.github/workflows/run-tests.yaml
vendored
@@ -1,70 +1,73 @@
|
||||
# --------------------------------------------------------------------------------------------
|
||||
# This file is generated. Do not edit manually
|
||||
# --------------------------------------------------------------------------------------------
|
||||
name: Run tests
|
||||
name: Integration and unit tests
|
||||
'on':
|
||||
push:
|
||||
branches:
|
||||
- master
|
||||
- develop
|
||||
- feature/**
|
||||
- hotfix/**
|
||||
concurrency:
|
||||
group: ${{ github.workflow }}-${{ github.ref }}
|
||||
cancel-in-progress: true
|
||||
jobs:
|
||||
test:
|
||||
all-tests:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- name: Use Node.js 18.x
|
||||
- name: Use Node.js 22.x
|
||||
uses: actions/setup-node@v1
|
||||
with:
|
||||
node-version: 18.x
|
||||
node-version: 22.x
|
||||
- uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 1
|
||||
- name: Checkout dbgate/dbgate-pro
|
||||
uses: actions/checkout@v2
|
||||
with:
|
||||
repository: dbgate/dbgate-pro
|
||||
token: ${{ secrets.GH_TOKEN }}
|
||||
path: dbgate-pro
|
||||
ref: 87c3efdaf83786abee4366dee2c58fea355edc4c
|
||||
- name: Merge dbgate/dbgate-pro
|
||||
run: |
|
||||
mkdir ../dbgate-pro
|
||||
mv dbgate-pro/* ../dbgate-pro/
|
||||
cd ..
|
||||
mkdir dbgate-merged
|
||||
cd dbgate-pro
|
||||
cd sync
|
||||
yarn
|
||||
node sync.js --nowatch
|
||||
cd ..
|
||||
- name: yarn install
|
||||
run: |
|
||||
cd ../dbgate-merged
|
||||
yarn install
|
||||
- name: Build packer dist for cypress
|
||||
run: |
|
||||
yarn prepare:packer
|
||||
- name: yarn install cypress
|
||||
run: |
|
||||
cd e2e-tests
|
||||
yarn install
|
||||
- name: Run Cypress tests
|
||||
run: |
|
||||
cd e2e-tests
|
||||
yarn test:ci
|
||||
- name: Integration tests
|
||||
run: |
|
||||
cd ../dbgate-merged
|
||||
cd integration-tests
|
||||
yarn test:ci
|
||||
- name: Filter parser tests
|
||||
if: always()
|
||||
run: |
|
||||
cd ../dbgate-merged
|
||||
cd packages/filterparser
|
||||
yarn test:ci
|
||||
- name: Datalib (perspective) tests
|
||||
if: always()
|
||||
run: |
|
||||
cd ../dbgate-merged
|
||||
cd packages/datalib
|
||||
yarn test:ci
|
||||
- uses: tanmen/jest-reporter@v1
|
||||
- name: Tools tests
|
||||
if: always()
|
||||
with:
|
||||
github-token: '${{ secrets.GITHUB_TOKEN }}'
|
||||
result-file: integration-tests/result.json
|
||||
action-name: Integration tests
|
||||
- uses: tanmen/jest-reporter@v1
|
||||
if: always()
|
||||
with:
|
||||
github-token: '${{ secrets.GITHUB_TOKEN }}'
|
||||
result-file: packages/filterparser/result.json
|
||||
action-name: Filter parser test results
|
||||
- uses: tanmen/jest-reporter@v1
|
||||
if: always()
|
||||
with:
|
||||
github-token: '${{ secrets.GITHUB_TOKEN }}'
|
||||
result-file: packages/datalib/result.json
|
||||
action-name: Datalib (perspectives) test results
|
||||
run: |
|
||||
cd ../dbgate-merged
|
||||
cd packages/tools
|
||||
yarn test:ci
|
||||
services:
|
||||
postgres-integr:
|
||||
image: postgres
|
||||
@@ -74,7 +77,7 @@ jobs:
|
||||
ports:
|
||||
- '15000:5432'
|
||||
mysql-integr:
|
||||
image: 'mysql:8.0.18'
|
||||
image: mysql:8.0.18
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: Pwd2020Db
|
||||
ports:
|
||||
@@ -88,39 +91,44 @@ jobs:
|
||||
ports:
|
||||
- '15002:1433'
|
||||
clickhouse-integr:
|
||||
image: 'bitnami/clickhouse:24.8.4'
|
||||
image: bitnamilegacy/clickhouse:24.8.4
|
||||
env:
|
||||
CLICKHOUSE_ADMIN_PASSWORD: Pwd2020Db
|
||||
ports:
|
||||
- '15005:8123'
|
||||
oracle-integr:
|
||||
image: 'gvenzl/oracle-xe:21-slim'
|
||||
image: gvenzl/oracle-xe:21-slim
|
||||
env:
|
||||
ORACLE_PASSWORD: Pwd2020Db
|
||||
ports:
|
||||
- '15006:1521'
|
||||
postgres-cypress:
|
||||
image: postgres
|
||||
options: '--health-cmd pg_isready --health-interval 10s --health-timeout 5s --health-retries 5'
|
||||
cassandradb:
|
||||
image: cassandra:5.0.2
|
||||
ports:
|
||||
- '15942:9042'
|
||||
libsql:
|
||||
image: ghcr.io/tursodatabase/libsql-server:latest
|
||||
ports:
|
||||
- '8080:8080'
|
||||
firebird:
|
||||
image: firebirdsql/firebird:latest
|
||||
env:
|
||||
POSTGRES_PASSWORD: Pwd2020Db
|
||||
FIREBIRD_DATABASE: mydatabase.fdb
|
||||
FIREBIRD_USER: dbuser
|
||||
FIREBIRD_PASSWORD: dbpassword
|
||||
ISC_PASSWORD: masterkey
|
||||
FIREBIRD_TRACE: false
|
||||
FIREBIRD_USE_LEGACY_AUTH: true
|
||||
ports:
|
||||
- '16000:5432'
|
||||
mysql-cypress:
|
||||
image: 'mysql:8.0.18'
|
||||
- '3050:3050'
|
||||
mongodb:
|
||||
image: mongo:4.0.12
|
||||
ports:
|
||||
- '16004:3306'
|
||||
env:
|
||||
MYSQL_ROOT_PASSWORD: Pwd2020Db
|
||||
mysql-ssh-login:
|
||||
image: 'ghcr.io/dbgate/mysql-ssh-login:latest'
|
||||
- '27017:27017'
|
||||
volumes:
|
||||
- mongo-data:/data/db
|
||||
- mongo-config:/data/configdb
|
||||
dynamodb:
|
||||
image: amazon/dynamodb-local
|
||||
ports:
|
||||
- '16006:22'
|
||||
mysql-ssh-keyfile:
|
||||
image: 'ghcr.io/dbgate/mysql-ssh-keyfile:latest'
|
||||
ports:
|
||||
- '16008:22'
|
||||
dex:
|
||||
image: 'ghcr.io/dbgate/dex:latest'
|
||||
ports:
|
||||
- '16009:5556'
|
||||
- '8000:8000'
|
||||
|
||||
6
.gitignore
vendored
6
.gitignore
vendored
@@ -24,6 +24,7 @@ docker/plugins
|
||||
.env.development.local
|
||||
.env.test.local
|
||||
.env.production.local
|
||||
.env.translation
|
||||
|
||||
npm-debug.log*
|
||||
yarn-debug.log*
|
||||
@@ -31,4 +32,7 @@ yarn-error.log*
|
||||
packages/api/src/packagedPluginsContent.js
|
||||
.VSCodeCounter
|
||||
|
||||
packages/web/public/*.html
|
||||
packages/web/public/*.html
|
||||
e2e-tests/screenshots/*.png
|
||||
my_guitar_shop.db
|
||||
.aider*
|
||||
|
||||
59
.vscode/launch.json
vendored
59
.vscode/launch.json
vendored
@@ -1,20 +1,41 @@
|
||||
{
|
||||
// Use IntelliSense to learn about possible attributes.
|
||||
// Hover to view descriptions of existing attributes.
|
||||
// For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"name": "Launch API",
|
||||
"skipFiles": [
|
||||
"<node_internals>/**"
|
||||
],
|
||||
"program": "${workspaceFolder}/packages/api/src/index.js",
|
||||
"outFiles": [
|
||||
"${workspaceFolder}/**/*.js"
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
"version": "0.2.0",
|
||||
"configurations": [
|
||||
{
|
||||
"name": "Debug App",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/packages/api/src/index.js",
|
||||
"envFile": "${workspaceFolder}/packages/api/.env",
|
||||
"args": ["--listen-api"],
|
||||
"console": "integratedTerminal",
|
||||
"restart": true,
|
||||
"runtimeExecutable": "node",
|
||||
"skipFiles": ["<node_internals>/**"]
|
||||
},
|
||||
{
|
||||
"name": "Debug App (Break on Start)",
|
||||
"type": "node",
|
||||
"request": "launch",
|
||||
"program": "${workspaceFolder}/packages/api/src/index.js",
|
||||
"args": ["--listen-api"],
|
||||
"envFile": "${workspaceFolder}/.env",
|
||||
"console": "integratedTerminal",
|
||||
"restart": true,
|
||||
"runtimeExecutable": "node",
|
||||
"skipFiles": ["<node_internals>/**"],
|
||||
"stopOnEntry": true
|
||||
},
|
||||
{
|
||||
"name": "Attach to Process",
|
||||
"type": "node",
|
||||
"request": "attach",
|
||||
"port": 9229,
|
||||
"restart": true,
|
||||
"localRoot": "${workspaceFolder}",
|
||||
"remoteRoot": "${workspaceFolder}",
|
||||
"skipFiles": ["<node_internals>/**"]
|
||||
}
|
||||
]
|
||||
}
|
||||
|
||||
|
||||
7
.vscode/settings.json
vendored
7
.vscode/settings.json
vendored
@@ -2,5 +2,10 @@
|
||||
"jestrunner.jestCommand": "node_modules/.bin/cross-env DEVMODE=1 LOCALTEST=1 node_modules/.bin/jest",
|
||||
"cSpell.words": [
|
||||
"dbgate"
|
||||
]
|
||||
],
|
||||
"chat.tools.terminal.autoApprove": {
|
||||
"yarn workspace": true,
|
||||
"yarn --cwd packages/rest": true,
|
||||
"yarn --cwd packages/web": true
|
||||
}
|
||||
}
|
||||
9
AGENTS.md
Normal file
9
AGENTS.md
Normal file
@@ -0,0 +1,9 @@
|
||||
# AGENTS
|
||||
|
||||
## Rules
|
||||
|
||||
- In newly added code, always use `DBGM-00000` for message/error codes; do not introduce new numbered DBGM codes such as `DBGM-00316`.
|
||||
- GUI uses Svelte4 (packages/web)
|
||||
- GUI is tested with E2E tests in `e2e-tests` folder, using Cypress. Use data-testid attribute in components to make them easier to test.
|
||||
- data-testid format: ComponentName_identifier. Use reasonable identifiers
|
||||
- don't change content of storageModel.js - this is generated from table YAMLs with "yarn storage-json" command
|
||||
610
CHANGELOG.md
610
CHANGELOG.md
File diff suppressed because it is too large
Load Diff
119
CLAUDE.md
Normal file
119
CLAUDE.md
Normal file
@@ -0,0 +1,119 @@
|
||||
# CLAUDE.md
|
||||
|
||||
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
|
||||
|
||||
## Project Overview
|
||||
|
||||
DbGate is a cross-platform (no)SQL database manager supporting MySQL, PostgreSQL, SQL Server, Oracle, MongoDB, Redis, SQLite, and more. It runs as a web app (Docker/NPM), an Electron desktop app, or in a browser. The monorepo uses Yarn workspaces.
|
||||
|
||||
## Development Commands
|
||||
|
||||
```sh
|
||||
yarn # install all packages (also builds TS libraries and plugins)
|
||||
yarn start # run API (port 3000) + web (port 5001) concurrently
|
||||
```
|
||||
|
||||
For more control, run these 3 commands in separate terminals:
|
||||
```sh
|
||||
yarn start:api # Express API on port 3000
|
||||
yarn start:web # Svelte frontend on port 5001
|
||||
yarn lib # watch-compile TS libraries and plugins
|
||||
```
|
||||
|
||||
For Electron development:
|
||||
```sh
|
||||
yarn start:web # web on port 5001
|
||||
yarn lib # watch TS libs/plugins
|
||||
yarn start:app # Electron app
|
||||
```
|
||||
|
||||
### Building
|
||||
|
||||
```sh
|
||||
yarn build:lib # build all TS libraries (sqltree, tools, filterparser, datalib, rest)
|
||||
yarn build:api # build API
|
||||
yarn build:web # build web frontend
|
||||
yarn ts # TypeScript type-check API and web
|
||||
yarn prettier # format all source files
|
||||
```
|
||||
|
||||
### Testing
|
||||
|
||||
Unit tests (in packages like `dbgate-tools`):
|
||||
```sh
|
||||
yarn workspace dbgate-tools test
|
||||
```
|
||||
|
||||
Integration tests (requires Docker for database containers):
|
||||
```sh
|
||||
cd integration-tests
|
||||
yarn test:local # run all tests
|
||||
yarn test:local:path __tests__/alter-database.spec.js # run a single test file
|
||||
```
|
||||
|
||||
E2E tests (Cypress):
|
||||
```sh
|
||||
yarn cy:open # open Cypress UI
|
||||
cd e2e-tests && yarn cy:run:browse-data # run a specific spec headlessly
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
### Monorepo Structure
|
||||
|
||||
| Path | Package | Purpose |
|
||||
|---|---|---|
|
||||
| `packages/api` | `dbgate-api` | Express.js backend server |
|
||||
| `packages/web` | `dbgate-web` | Svelte 4 frontend (built with Rolldown) |
|
||||
| `packages/tools` | `dbgate-tools` | Shared TS utilities: SQL dumping, schema analysis, diffing, driver base classes |
|
||||
| `packages/datalib` | `dbgate-datalib` | Grid display logic, changeset management, perspectives, chart definitions |
|
||||
| `packages/sqltree` | `dbgate-sqltree` | SQL AST representation and dumping |
|
||||
| `packages/filterparser` | `dbgate-filterparser` | Parses filter strings into SQL/Mongo conditions |
|
||||
| `packages/rest` | `dbgate-rest` | REST connection support |
|
||||
| `packages/types` | `dbgate-types` | TypeScript type definitions (`.d.ts` only) |
|
||||
| `packages/aigwmock` | `dbgate-aigwmock` | Mock AI gateway server for E2E testing |
|
||||
| `plugins/dbgate-plugin-*` | — | Database drivers and file format handlers |
|
||||
| `app/` | — | Electron shell |
|
||||
| `integration-tests/` | — | Jest-based DB integration tests (Docker) |
|
||||
| `e2e-tests/` | — | Cypress E2E tests |
|
||||
|
||||
### API Backend (`packages/api`)
|
||||
|
||||
- Express.js server with controllers in `src/controllers/` — each file exposes REST endpoints via the `useController` utility
|
||||
- Database connections run in child processes (`src/proc/`) to isolate crashes and long-running operations
|
||||
- `src/shell/` contains stream-based data pipeline primitives (readers, writers, transforms) used for import/export and replication
|
||||
- Plugin drivers are loaded dynamically via `requireEngineDriver`; each plugin in `plugins/` exports a driver conforming to `DriverBase` from `dbgate-tools`
|
||||
|
||||
### Frontend (`packages/web`)
|
||||
|
||||
- Svelte 4 components; builds with Rolldown (not Vite/Webpack)
|
||||
- Global state in `src/stores.ts` using Svelte writable stores, with `writableWithStorage` / `writableWithForage` helpers for persistence
|
||||
- API calls go through `src/utility/api.ts` (`apiCall`, `apiOff`, etc.) which handles auth, error display, and cache invalidation
|
||||
- Tab system: each open editor/viewer is a "tab" tracked in `openedTabs` store; tab components live in `src/tabs/`
|
||||
- Left-panel tree items are "AppObjects" in `src/appobj/`
|
||||
- Metadata (table lists, column info) is loaded reactively via hooks in `src/utility/metadataLoaders.ts`
|
||||
- Commands/keybindings are registered in `src/commands/`
|
||||
|
||||
### Plugin Architecture
|
||||
|
||||
Each `plugins/dbgate-plugin-*` package provides:
|
||||
- **Frontend build** (`build:frontend`): bundled JS loaded by the web UI for query formatting, data rendering
|
||||
- **Backend build** (`build:backend`): Node.js driver code loaded by the API for actual DB connections
|
||||
|
||||
Plugins are copied to `plugins/dist/` via `plugins:copydist` before building the app or Docker image.
|
||||
|
||||
### Key Conventions
|
||||
|
||||
- Error/message codes use `DBGM-00000` as placeholder — do not introduce new numbered `DBGM-NNNNN` codes
|
||||
- Frontend uses **Svelte 4** (not Svelte 5)
|
||||
- E2E test selectors use `data-testid` attribute with format `ComponentName_identifier`
|
||||
- Prettier config: single quotes, 2-space indent, 120-char line width, trailing commas ES5
|
||||
- Logging via `pinomin`; pipe through `pino-pretty` for human-readable output
|
||||
|
||||
### Translation System
|
||||
|
||||
```sh
|
||||
yarn translations:extract # extract new strings
|
||||
yarn translations:add-missing # add missing translations
|
||||
yarn translations:check # check for issues
|
||||
```
|
||||
24
README.md
24
README.md
@@ -15,10 +15,10 @@ But there are also many advanced features like schema compare, visual query desi
|
||||
DbGate is licensed under GPL-3.0 license and is free to use for any purpose.
|
||||
|
||||
* Try it online - [demo.dbgate.org](https://demo.dbgate.org) - online demo application
|
||||
* **Download** application for Windows, Linux or Mac from [dbgate.org](https://dbgate.org/download/)
|
||||
* **Download** application for Windows, Linux or Mac from [dbgate.io](https://www.dbgate.io/download/)
|
||||
* Looking for DbGate Community? **Download** from [dbgate.io](https://www.dbgate.io/download-community/)
|
||||
* Run web version as [NPM package](https://www.npmjs.com/package/dbgate-serve) or as [docker image](https://hub.docker.com/r/dbgate/dbgate)
|
||||
* Use nodeJs [scripting interface](https://dbgate.org/docs/scripting) ([API documentation](https://dbgate.org/docs/apidoc))
|
||||
* [Recommend DbGate](https://testimonial.to/dbgate) | [Rate on G2](https://www.g2.com/products/dbgate/reviews)
|
||||
* Use nodeJs [scripting interface](https://docs.dbgate.io/scripting) ([API documentation](https://docs.dbgate.io/apidoc))
|
||||
|
||||
## Supported databases
|
||||
* MySQL
|
||||
@@ -33,8 +33,11 @@ DbGate is licensed under GPL-3.0 license and is free to use for any purpose.
|
||||
* MariaDB
|
||||
* CosmosDB (Premium)
|
||||
* ClickHouse
|
||||
|
||||
<!-- Learn more about DbGate features at the [DbGate website](https://dbgate.org/), or try our online [demo application](https://demo.dbgate.org) -->
|
||||
* Apache Cassandra
|
||||
* libSQL/Turso (Premium)
|
||||
* DuckDB
|
||||
* Firebird
|
||||
* Firestore (Premium)
|
||||
|
||||
|
||||
<a href="https://raw.githubusercontent.com/dbgate/dbgate/master/img/screenshot1.png">
|
||||
@@ -58,7 +61,7 @@ DbGate is licensed under GPL-3.0 license and is free to use for any purpose.
|
||||
* Edit table schema, indexes, primary and foreign keys
|
||||
* Compare and synchronize database structure
|
||||
* ER diagram
|
||||
* Light and dark theme, next themes available as plugins from github community
|
||||
* Light and dark theme, next themes available from DbGate Cloud
|
||||
* Huge support for work with related data - master/detail views, foreign key lookups, expanding columns from related tables in flat data view
|
||||
* Query designer - visual SQL query builder without writing SQL code. Complex conditions like WHERE NOT EXISTS.
|
||||
* Query perspectives – innovative nested table view over complex relational data, something like query designer on MongoDB databases
|
||||
@@ -77,6 +80,7 @@ DbGate is licensed under GPL-3.0 license and is free to use for any purpose.
|
||||
* Archives - backup your data in NDJSON files on local filesystem (or on DbGate server, when using web application)
|
||||
* NDJSON data viewer and editor - browse NDJSON data, edit data and structure directly on NDJSON files. Works also for big NDSON files
|
||||
* Charts, export chart to HTML page
|
||||
* AI powered database chat
|
||||
* Show GEO data on map, export map to HTML page
|
||||
* For detailed info, how to run DbGate in docker container, visit [docker hub](https://hub.docker.com/r/dbgate/dbgate)
|
||||
* Extensible plugin architecture
|
||||
@@ -85,11 +89,13 @@ DbGate is licensed under GPL-3.0 license and is free to use for any purpose.
|
||||
Any contributions are welcome. If you want to contribute without coding, consider following:
|
||||
|
||||
* Tell your friends about DbGate or share on social networks - when more people will use DbGate, it will grow to be better
|
||||
* Write review on [Slant.co](https://www.slant.co/improve/options/41086/~dbgate-review) or [G2](https://www.g2.com/products/dbgate/reviews)
|
||||
* Purchase a [DbGate Premium](https://www.dbgate.io/purchase/premium/) license
|
||||
* Create issue, if you find problem in app, or you have idea to new feature. If issue already exists, you could leave comment on it, to prioritise most wanted issues
|
||||
* Create some tutorial video on [youtube](https://www.youtube.com/playlist?list=PLCo7KjCVXhr0RfUSjM9wJMsp_ShL1q61A)
|
||||
* Become a backer on [GitHub sponsors](https://github.com/sponsors/dbgate) or [Open collective](https://opencollective.com/dbgate)
|
||||
* Where a small coding is acceptable for you, you could [create plugin](https://dbgate.org/docs/plugin-development). Plugins for new themes can be created actually without JS coding
|
||||
* Add a SQL script to [Public Knowledge Base](https://github.com/dbgate/dbgate-knowledge-base)
|
||||
* Where a small coding is acceptable for you, you could [create plugin](https://docs.dbgate.io/plugin-development)
|
||||
* Create a new custom theme and share it on [DbGate Cloud](https://github.com/dbgate/dbgate-knowledge-base/tree/master/folder-Themes)
|
||||
|
||||
Thank you!
|
||||
|
||||
@@ -184,4 +190,4 @@ yarn plugin # this compiles plugin and copies it into existing DbGate installati
|
||||
After restarting DbGate, you could use your new plugin from DbGate.
|
||||
|
||||
## Logging
|
||||
DbGate uses [pinomin logger](https://github.com/dbgate/pinomin). So by default, it produces JSON log messages into console and log files. If you want to see formatted logs, please use [pino-pretty](https://github.com/pinojs/pino-pretty) log formatter.
|
||||
DbGate uses [pinomin logger](https://github.com/dbgate/pinomin). So by default, it produces JSON log messages into console and log files. If you want to see formatted logs, please use [pino-pretty](https://github.com/pinojs/pino-pretty) log formatter.
|
||||
|
||||
@@ -43,6 +43,8 @@ function adjustFile(file, isApp = false) {
|
||||
|
||||
if (process.argv.includes('--community')) {
|
||||
delete json.optionalDependencies['mongodb-client-encryption'];
|
||||
delete json.dependencies['@mongosh/service-provider-node-driver'];
|
||||
delete json.dependencies['@mongosh/browser-runtime-electron'];
|
||||
}
|
||||
|
||||
if (isApp && process.argv.includes('--premium')) {
|
||||
|
||||
@@ -13,9 +13,9 @@
|
||||
<p>DbGate is cross-platform database manager. It's designed to be simple to use and effective, when working with more databases simultaneously. But there are also many advanced features like schema compare, visual query designer, chart visualisation or batch export and import.</p>
|
||||
</description>
|
||||
|
||||
<url type="homepage">https://dbgate.org/</url>
|
||||
<url type="homepage">https://www.dbgate.io/</url>
|
||||
<url type="vcs-browser">https://github.com/dbgate/dbgate</url>
|
||||
<url type="contact">https://dbgate.org/about/</url>
|
||||
<url type="contact">https://www.dbgate.io/contact/</url>
|
||||
<url type="donation">https://github.com/sponsors/dbgate</url>
|
||||
<url type="bugtracker">https://github.com/dbgate/dbgate/issues</url>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "dbgate",
|
||||
"version": "6.0.0-alpha.1",
|
||||
"version": "7.0.0-alpha.1",
|
||||
"private": true,
|
||||
"author": "Jan Prochazka <jenasoft.database@gmail.com>",
|
||||
"description": "Opensource database administration tool",
|
||||
@@ -51,7 +51,6 @@
|
||||
"target": "AppImage",
|
||||
"arch": [
|
||||
"x64",
|
||||
"armv7l",
|
||||
"arm64"
|
||||
]
|
||||
},
|
||||
@@ -118,7 +117,7 @@
|
||||
"scripts": {
|
||||
"start": "cross-env ELECTRON_START_URL=http://localhost:5001 DEVMODE=1 electron .",
|
||||
"start:local": "cross-env electron .",
|
||||
"dist": "electron-builder",
|
||||
"dist": "electron-builder --publish never",
|
||||
"build": "cd ../packages/api && yarn build && cd ../web && yarn build && cd ../../app && yarn dist",
|
||||
"build:local": "cd ../packages/api && yarn build && cd ../web && yarn build && cd ../../app && yarn predist",
|
||||
"postinstall": "yarn rebuild && patch-package",
|
||||
@@ -129,7 +128,7 @@
|
||||
"devDependencies": {
|
||||
"copyfiles": "^2.2.0",
|
||||
"cross-env": "^6.0.3",
|
||||
"electron": "30.0.2",
|
||||
"electron": "38.6.0",
|
||||
"electron-builder": "25.1.8"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -31,6 +31,16 @@ let mainModule;
|
||||
let appUpdateStatus = '';
|
||||
let settingsJson = {};
|
||||
|
||||
function getTranslated(key) {
|
||||
if (typeof key === 'string' && global.TRANSLATION_DATA?.[key]) {
|
||||
return global.TRANSLATION_DATA?.[key];
|
||||
}
|
||||
if (typeof key?._transKey === 'string') {
|
||||
return global.TRANSLATION_DATA?.[key._transKey] ?? key._transOptions?.defaultMessage;
|
||||
}
|
||||
return key;
|
||||
}
|
||||
|
||||
process.on('uncaughtException', function (error) {
|
||||
console.error('uncaughtException', error);
|
||||
});
|
||||
@@ -63,6 +73,7 @@ try {
|
||||
let mainWindow;
|
||||
let mainMenu;
|
||||
let runCommandOnLoad = null;
|
||||
let mainWindowMenuSet = false;
|
||||
|
||||
log.transports.file.level = 'debug';
|
||||
autoUpdater.logger = log;
|
||||
@@ -85,17 +96,22 @@ function formatKeyText(keyText) {
|
||||
return keyText.replace('CtrlOrCommand+', 'Ctrl+');
|
||||
}
|
||||
|
||||
function commandItem(item) {
|
||||
function commandItem(item, disableAll = false) {
|
||||
const id = item.command;
|
||||
const command = commands[id];
|
||||
if (item.skipInApp) {
|
||||
return { skip: true };
|
||||
}
|
||||
if (!command) {
|
||||
return { skip: true };
|
||||
}
|
||||
return {
|
||||
id,
|
||||
label: command ? command.menuName || command.toolbarName || command.name : id,
|
||||
label: command
|
||||
? getTranslated(command.menuName) || getTranslated(command.toolbarName) || getTranslated(command.name)
|
||||
: id,
|
||||
accelerator: formatKeyText(command ? command.keyText : undefined),
|
||||
enabled: command ? command.enabled : false,
|
||||
enabled: command ? command.enabled && (!disableAll || command.systemCommand) : false,
|
||||
click() {
|
||||
if (mainWindow) {
|
||||
mainWindow.webContents.send('run-command', id);
|
||||
@@ -107,14 +123,14 @@ function commandItem(item) {
|
||||
};
|
||||
}
|
||||
|
||||
function buildMenu() {
|
||||
function buildMenu(disableAll = false) {
|
||||
let template = _cloneDeepWith(mainMenuDefinition({ editMenu: true, isMac: isMac() }), item => {
|
||||
if (item.divider) {
|
||||
return { type: 'separator' };
|
||||
}
|
||||
|
||||
if (item.command) {
|
||||
return commandItem(item);
|
||||
return commandItem(item, disableAll);
|
||||
}
|
||||
});
|
||||
|
||||
@@ -129,7 +145,7 @@ function buildMenu() {
|
||||
{
|
||||
label: 'DbGate',
|
||||
submenu: [
|
||||
commandItem({ command: 'about.show' }),
|
||||
commandItem({ command: 'about.show' }, disableAll),
|
||||
{ role: 'services' },
|
||||
{ role: 'hide' },
|
||||
{ role: 'hideOthers' },
|
||||
@@ -145,22 +161,28 @@ function buildMenu() {
|
||||
}
|
||||
|
||||
ipcMain.on('update-commands', async (event, arg) => {
|
||||
commands = JSON.parse(arg);
|
||||
const parsed = JSON.parse(arg);
|
||||
commands = parsed.commands;
|
||||
const isModalOpened = parsed.isModalOpened;
|
||||
const dbgatePage = parsed.dbgatePage;
|
||||
for (const key of Object.keys(commands)) {
|
||||
const menu = mainMenu.getMenuItemById(key);
|
||||
if (!menu) continue;
|
||||
const command = commands[key];
|
||||
|
||||
// rebuild menu
|
||||
if (menu.label != command.text || menu.accelerator != command.keyText) {
|
||||
mainMenu = buildMenu();
|
||||
if (global.TRANSLATION_DATA && (menu.label != command.text || menu.accelerator != command.keyText)) {
|
||||
mainMenu = buildMenu(isModalOpened || !!dbgatePage);
|
||||
|
||||
Menu.setApplicationMenu(mainMenu);
|
||||
// mainWindow.setMenu(mainMenu);
|
||||
if (!mainWindowMenuSet) {
|
||||
mainWindow.setMenu(mainMenu);
|
||||
mainWindowMenuSet = true;
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
menu.enabled = command.enabled;
|
||||
menu.enabled = command.enabled && !isModalOpened && !dbgatePage;
|
||||
}
|
||||
});
|
||||
ipcMain.on('quit-app', async (event, arg) => {
|
||||
@@ -212,6 +234,10 @@ ipcMain.on('app-started', async (event, arg) => {
|
||||
autoUpdater.checkForUpdates();
|
||||
}
|
||||
}
|
||||
|
||||
if (initialConfig['winZoomLevel'] != null) {
|
||||
mainWindow.webContents.zoomLevel = initialConfig['winZoomLevel'];
|
||||
}
|
||||
});
|
||||
ipcMain.on('window-action', async (event, arg) => {
|
||||
if (!mainWindow) {
|
||||
@@ -299,6 +325,12 @@ ipcMain.on('check-for-updates', async (event, url) => {
|
||||
autoUpdater.autoDownload = false;
|
||||
autoUpdater.checkForUpdates();
|
||||
});
|
||||
ipcMain.on('translation-data', async (event, arg) => {
|
||||
global.TRANSLATION_DATA = JSON.parse(arg);
|
||||
mainMenu = buildMenu();
|
||||
Menu.setApplicationMenu(mainMenu);
|
||||
mainWindow.setMenu(mainMenu);
|
||||
});
|
||||
|
||||
function fillMissingSettings(value) {
|
||||
const res = {
|
||||
@@ -357,6 +389,7 @@ function createWindow() {
|
||||
title: isProApp() ? 'DbGate Premium' : 'DbGate',
|
||||
frame: useNativeMenu,
|
||||
titleBarStyle: useNativeMenu ? undefined : 'hidden',
|
||||
backgroundColor: electron.nativeTheme.shouldUseDarkColors ? '#111111' : undefined,
|
||||
...bounds,
|
||||
icon: os.platform() == 'win32' ? 'icon.ico' : path.resolve(__dirname, '../icon.png'),
|
||||
partition: isProApp() ? 'persist:dbgate-premium' : 'persist:dbgate',
|
||||
@@ -367,6 +400,14 @@ function createWindow() {
|
||||
},
|
||||
});
|
||||
|
||||
mainWindow.webContents.session.webRequest.onBeforeSendHeaders(
|
||||
{ urls: ['https://*.tile.openstreetmap.org/*'] },
|
||||
(details, callback) => {
|
||||
details.requestHeaders['Referer'] = 'https://www.dbgate.io';
|
||||
callback({ requestHeaders: details.requestHeaders });
|
||||
}
|
||||
);
|
||||
|
||||
if (initialConfig['winIsMaximized']) {
|
||||
mainWindow.maximize();
|
||||
}
|
||||
@@ -374,8 +415,8 @@ function createWindow() {
|
||||
mainWindow.setFullScreen(true);
|
||||
}
|
||||
|
||||
mainMenu = buildMenu();
|
||||
mainWindow.setMenu(mainMenu);
|
||||
// mainMenu = buildMenu();
|
||||
// mainWindow.setMenu(mainMenu);
|
||||
|
||||
function loadMainWindow() {
|
||||
const startUrl =
|
||||
@@ -393,6 +434,7 @@ function createWindow() {
|
||||
JSON.stringify({
|
||||
winBounds: mainWindow.getBounds(),
|
||||
winIsMaximized: mainWindow.isMaximized(),
|
||||
winZoomLevel: mainWindow.webContents.zoomLevel,
|
||||
}),
|
||||
'utf-8'
|
||||
);
|
||||
|
||||
@@ -1,14 +1,20 @@
|
||||
module.exports = ({ editMenu, isMac }) => [
|
||||
function _t(key, { defaultMessage, currentTranslations } = {}) {
|
||||
return (currentTranslations || global.TRANSLATION_DATA)?.[key] || defaultMessage;
|
||||
}
|
||||
|
||||
module.exports = ({ editMenu, isMac }, currentTranslations = null) => [
|
||||
{
|
||||
label: 'File',
|
||||
label: _t('menu.file', { defaultMessage: 'File', currentTranslations }),
|
||||
submenu: [
|
||||
{ command: 'new.connection', hideDisabled: true },
|
||||
{ command: 'new.sqliteDatabase', hideDisabled: true },
|
||||
{ command: 'new.duckdbDatabase', hideDisabled: true },
|
||||
{ divider: true },
|
||||
{ command: 'new.query', hideDisabled: true },
|
||||
{ command: 'new.queryDesign', hideDisabled: true },
|
||||
{ command: 'new.diagram', hideDisabled: true },
|
||||
{ command: 'new.perspective', hideDisabled: true },
|
||||
{ command: 'new.application', hideDisabled: true },
|
||||
{ command: 'new.shell', hideDisabled: true },
|
||||
{ command: 'new.jsonl', hideDisabled: true },
|
||||
{ command: 'new.modelTransform', hideDisabled: true },
|
||||
@@ -26,7 +32,7 @@ module.exports = ({ editMenu, isMac }) => [
|
||||
},
|
||||
editMenu
|
||||
? {
|
||||
label: 'Edit',
|
||||
label: _t('menu.edit', { defaultMessage: 'Edit', currentTranslations }),
|
||||
submenu: [
|
||||
{ command: 'edit.undo' },
|
||||
{ command: 'edit.redo' },
|
||||
@@ -51,7 +57,7 @@ module.exports = ({ editMenu, isMac }) => [
|
||||
// ],
|
||||
// },
|
||||
{
|
||||
label: 'View',
|
||||
label: _t('menu.view', { defaultMessage: 'View', currentTranslations }),
|
||||
submenu: [
|
||||
{ command: 'app.reload', hideDisabled: true },
|
||||
{ command: 'app.toggleDevTools', hideDisabled: true },
|
||||
@@ -70,10 +76,12 @@ module.exports = ({ editMenu, isMac }) => [
|
||||
{ command: 'app.zoomIn', hideDisabled: true },
|
||||
{ command: 'app.zoomOut', hideDisabled: true },
|
||||
{ command: 'app.zoomReset', hideDisabled: true },
|
||||
{ divider: true },
|
||||
{ command: 'app.showLogs', hideDisabled: true },
|
||||
],
|
||||
},
|
||||
{
|
||||
label: 'Tools',
|
||||
label: _t('menu.tools', { defaultMessage: 'Tools', currentTranslations }),
|
||||
submenu: [
|
||||
{ command: 'database.search', hideDisabled: true },
|
||||
{ command: 'commandPalette.show', hideDisabled: true },
|
||||
@@ -85,8 +93,12 @@ module.exports = ({ editMenu, isMac }) => [
|
||||
{ divider: true },
|
||||
{ command: 'folder.showLogs', hideDisabled: true },
|
||||
{ command: 'folder.showData', hideDisabled: true },
|
||||
{ command: 'new.gist', hideDisabled: true },
|
||||
{ command: 'app.resetSettings', hideDisabled: true },
|
||||
{ divider: true },
|
||||
{ command: 'app.exportConnections', hideDisabled: true },
|
||||
{ command: 'app.importConnections', hideDisabled: true },
|
||||
{ divider: true },
|
||||
{ command: 'app.managePlugins', hideDisabled: true },
|
||||
],
|
||||
},
|
||||
...(isMac
|
||||
@@ -98,18 +110,19 @@ module.exports = ({ editMenu, isMac }) => [
|
||||
]
|
||||
: []),
|
||||
{
|
||||
label: 'Help',
|
||||
label: _t('menu.help', { defaultMessage: 'Help', currentTranslations }),
|
||||
submenu: [
|
||||
{ command: 'app.openDocs', hideDisabled: true },
|
||||
{ command: 'app.openWeb', hideDisabled: true },
|
||||
{ command: 'app.openIssue', hideDisabled: true },
|
||||
{ command: 'app.openSponsoring', hideDisabled: true },
|
||||
// { command: 'app.giveFeedback', hideDisabled: true },
|
||||
{ divider: true },
|
||||
{ command: 'settings.commands', hideDisabled: true },
|
||||
{ command: 'tabs.changelog', hideDisabled: true },
|
||||
{ command: 'about.show', hideDisabled: true },
|
||||
{ divider: true },
|
||||
{ command: 'file.checkForUpdates', hideDisabled: true },
|
||||
{ command: 'app.checkForUpdates', hideDisabled: true },
|
||||
],
|
||||
},
|
||||
];
|
||||
|
||||
@@ -1,9 +0,0 @@
|
||||
|
||||
// this file is generated automatically by script fillNativeModules.js, do not edit it manually
|
||||
const content = {};
|
||||
|
||||
content['better-sqlite3'] = () => require('better-sqlite3');
|
||||
content['oracledb'] = () => require('oracledb');
|
||||
|
||||
|
||||
module.exports = content;
|
||||
503
app/yarn.lock
503
app/yarn.lock
@@ -16,9 +16,9 @@
|
||||
ajv-keywords "^3.4.1"
|
||||
|
||||
"@electron/asar@^3.2.7":
|
||||
version "3.2.17"
|
||||
resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.2.17.tgz#91d28087aad80d1a1c8cc4e667c6476edf50f949"
|
||||
integrity sha512-OcWImUI686w8LkghQj9R2ynZ2ME693Ek6L1SiaAgqGKzBaTIZw3fHDqN82Rcl+EU1Gm9EgkJ5KLIY/q5DCRbbA==
|
||||
version "3.4.1"
|
||||
resolved "https://registry.yarnpkg.com/@electron/asar/-/asar-3.4.1.tgz#4e9196a4b54fba18c56cd8d5cac67c5bdc588065"
|
||||
integrity sha512-i4/rNPRS84t0vSRa2HorerGRXWyF4vThfHesw0dmcWHp+cspK743UanA0suA5Q5y8kzY2y6YKrvbIUn69BCAiA==
|
||||
dependencies:
|
||||
commander "^5.0.0"
|
||||
glob "^7.1.6"
|
||||
@@ -98,6 +98,18 @@
|
||||
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
|
||||
integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
|
||||
|
||||
"@isaacs/balanced-match@^4.0.1":
|
||||
version "4.0.1"
|
||||
resolved "https://registry.yarnpkg.com/@isaacs/balanced-match/-/balanced-match-4.0.1.tgz#3081dadbc3460661b751e7591d7faea5df39dd29"
|
||||
integrity sha512-yzMTt9lEb8Gv7zRioUilSglI0c0smZ9k5D65677DLWLtWJaXIS3CqcGyUFByYKlnUj6TkjLVs54fBl6+TiGQDQ==
|
||||
|
||||
"@isaacs/brace-expansion@^5.0.0":
|
||||
version "5.0.0"
|
||||
resolved "https://registry.yarnpkg.com/@isaacs/brace-expansion/-/brace-expansion-5.0.0.tgz#4b3dabab7d8e75a429414a96bd67bf4c1d13e0f3"
|
||||
integrity sha512-ZT55BDLV0yv0RBm2czMiZ+SqCGO7AvmOM3G/w2xhVPH+te0aKgFjmBvGlL1dH+ql2tgGO3MVrbb3jCKyvpgnxA==
|
||||
dependencies:
|
||||
"@isaacs/balanced-match" "^4.0.1"
|
||||
|
||||
"@isaacs/cliui@^8.0.2":
|
||||
version "8.0.2"
|
||||
resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550"
|
||||
@@ -202,16 +214,23 @@
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/ms@*":
|
||||
version "0.7.34"
|
||||
resolved "https://registry.yarnpkg.com/@types/ms/-/ms-0.7.34.tgz#10964ba0dee6ac4cd462e2795b6bebd407303433"
|
||||
integrity sha512-nG96G3Wp6acyAgJqGasjODb+acrI7KltPiRxzHPXnP3NgI28bpQDRv53olbqGXbfcgF5aiiHmO3xpwEpS5Ld9g==
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/ms/-/ms-2.1.0.tgz#052aa67a48eccc4309d7f0191b7e41434b90bb78"
|
||||
integrity sha512-GsCCIZDE/p3i96vtEqx+7dBUGXrc7zeSK3wwPHIaRThS+9OhWIXRqzs4d6k1SVU8g91DrNRWxWUGhp5KXQb2VA==
|
||||
|
||||
"@types/node@*", "@types/node@^20.9.0":
|
||||
version "20.12.10"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-20.12.10.tgz#8f0c3f12b0f075eee1fe20c1afb417e9765bef76"
|
||||
integrity sha512-Eem5pH9pmWBHoGAT8Dr5fdc5rYA+4NAovdM4EktRPVAAiJhmWWfQrA0cFhAbOsQdSfIHjAud6YdkbL69+zSKjw==
|
||||
"@types/node@*":
|
||||
version "24.10.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-24.10.0.tgz#6b79086b0dfc54e775a34ba8114dcc4e0221f31f"
|
||||
integrity sha512-qzQZRBqkFsYyaSWXuEHc2WR9c0a0CXwiE5FWUvn7ZM+vdy1uZLfCunD38UzhuB7YN/J11ndbDBcTmOdxJo9Q7A==
|
||||
dependencies:
|
||||
undici-types "~5.26.4"
|
||||
undici-types "~7.16.0"
|
||||
|
||||
"@types/node@^22.7.7":
|
||||
version "22.19.0"
|
||||
resolved "https://registry.yarnpkg.com/@types/node/-/node-22.19.0.tgz#849606ef3920850583a4e7ee0930987c35ad80be"
|
||||
integrity sha512-xpr/lmLPQEj+TUnHmR+Ab91/glhJvsqcjB+yY0Ix9GO70H6Lb4FHH5GeqdOE5btAx7eIMwuHkp4H2MSkLcqWbA==
|
||||
dependencies:
|
||||
undici-types "~6.21.0"
|
||||
|
||||
"@types/plist@^3.0.1":
|
||||
version "3.0.5"
|
||||
@@ -229,9 +248,9 @@
|
||||
"@types/node" "*"
|
||||
|
||||
"@types/verror@^1.10.3":
|
||||
version "1.10.10"
|
||||
resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.10.tgz#d5a4b56abac169bfbc8b23d291363a682e6fa087"
|
||||
integrity sha512-l4MM0Jppn18hb9xmM6wwD1uTdShpf9Pn80aXTStnK1C94gtPvJcV2FrDmbOQUAQfJ1cKZHktkQUDwEqaAKXMMg==
|
||||
version "1.10.11"
|
||||
resolved "https://registry.yarnpkg.com/@types/verror/-/verror-1.10.11.tgz#d3d6b418978c8aa202d41e5bb3483227b6ecc1bb"
|
||||
integrity sha512-RlDm9K7+o5stv0Co8i8ZRGxDbrTxhJtgjqjFyVh/tXQyl/rYtTKlnTvZ88oSTeYREWurwx20Js4kTuKCsFkUtg==
|
||||
|
||||
"@types/yauzl@^2.9.1":
|
||||
version "2.10.3"
|
||||
@@ -241,9 +260,9 @@
|
||||
"@types/node" "*"
|
||||
|
||||
"@xmldom/xmldom@^0.8.8":
|
||||
version "0.8.10"
|
||||
resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.10.tgz#a1337ca426aa61cef9fe15b5b28e340a72f6fa99"
|
||||
integrity sha512-2WALfTl4xo2SkGCYRt6rDTFfk9R1czmBvUQy12gK2KuRKIpWEhcbbzy8EZXtz/jkRqHX8bFEc6FC1HjX4TUWYw==
|
||||
version "0.8.11"
|
||||
resolved "https://registry.yarnpkg.com/@xmldom/xmldom/-/xmldom-0.8.11.tgz#b79de2d67389734c57c52595f7a7305e30c2d608"
|
||||
integrity sha512-cQzWCtO6C8TQiYl1ruKNn2U6Ao4o4WBBcbL61yJl84x+j5sOWWFU9X7DpND8XZG3daDppSsigMdfAIl2upQBRw==
|
||||
|
||||
"@yarnpkg/lockfile@^1.1.0":
|
||||
version "1.1.0"
|
||||
@@ -263,14 +282,14 @@ agent-base@6, agent-base@^6.0.2:
|
||||
debug "4"
|
||||
|
||||
agent-base@^7.1.0, agent-base@^7.1.2:
|
||||
version "7.1.3"
|
||||
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.3.tgz#29435eb821bc4194633a5b89e5bc4703bafc25a1"
|
||||
integrity sha512-jRR5wdylq8CkOe6hei19GGZnxM6rBGwFl3Bg0YItGDimvjGtAvdZk4Pu6Cl4u4Igsws4a1fd1Vq3ezrhn4KmFw==
|
||||
version "7.1.4"
|
||||
resolved "https://registry.yarnpkg.com/agent-base/-/agent-base-7.1.4.tgz#e3cd76d4c548ee895d3c3fd8dc1f6c5b9032e7a8"
|
||||
integrity sha512-MnA+YT8fwfJPgBx3m60MNqakm30XOkyIoH1y6huTQvC0PwZG7ki8NacLBcrPbNoo8vEZy7Jpuk7+jMO+CUovTQ==
|
||||
|
||||
agentkeepalive@^4.2.1:
|
||||
version "4.5.0"
|
||||
resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.5.0.tgz#2673ad1389b3c418c5a20c5d7364f93ca04be923"
|
||||
integrity sha512-5GG/5IbQQpC9FpkRGsSvZI5QYeSCzlJHdpBQntCsuTOxhKD8lqKhrleg2Yi7yvMIf82Ycmmqln9U8V9qwEiJew==
|
||||
version "4.6.0"
|
||||
resolved "https://registry.yarnpkg.com/agentkeepalive/-/agentkeepalive-4.6.0.tgz#35f73e94b3f40bf65f105219c623ad19c136ea6a"
|
||||
integrity sha512-kja8j7PjmncONqaTsB8fQ+wE2mSU2DJ9D4XKoJ5PFWIdRMa6SLSN1ff4mOr4jCbfRSsxR4keIiySJU0N9T5hIQ==
|
||||
dependencies:
|
||||
humanize-ms "^1.2.1"
|
||||
|
||||
@@ -303,9 +322,9 @@ ansi-regex@^5.0.1:
|
||||
integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==
|
||||
|
||||
ansi-regex@^6.0.1:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654"
|
||||
integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA==
|
||||
version "6.2.2"
|
||||
resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.2.2.tgz#60216eea464d864597ce2832000738a0589650c1"
|
||||
integrity sha512-Bq3SmSpyFHaWjPk8If9yc6svM8c56dB5BAtW4Qbw5jHTwwXXcTLoRMkpDJp6VL0XzlWaCHTXrkFURMYmD0sLqg==
|
||||
|
||||
ansi-styles@^4.0.0, ansi-styles@^4.1.0:
|
||||
version "4.3.0"
|
||||
@@ -315,9 +334,9 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0:
|
||||
color-convert "^2.0.1"
|
||||
|
||||
ansi-styles@^6.1.0:
|
||||
version "6.2.1"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5"
|
||||
integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug==
|
||||
version "6.2.3"
|
||||
resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.3.tgz#c044d5dcc521a076413472597a1acb1f103c4041"
|
||||
integrity sha512-4Dj6M28JB+oAH8kFkTLUo+a2jwOFkuqb3yucU0CANcRRUbxS0cP0nZYCGjcc3BNXwRIsUVmDGgzawme7zvJHvg==
|
||||
|
||||
app-builder-bin@5.0.0-alpha.10:
|
||||
version "5.0.0-alpha.10"
|
||||
@@ -363,9 +382,9 @@ app-builder-lib@25.1.8:
|
||||
temp-file "^3.4.0"
|
||||
|
||||
"aproba@^1.0.3 || ^2.0.0":
|
||||
version "2.0.0"
|
||||
resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.0.0.tgz#52520b8ae5b569215b354efc0caa3fe1e45a8adc"
|
||||
integrity sha512-lYe4Gx7QT+MKGbDsA+Z+he/Wtef0BiwDOlK/XkBrdfsh9J/jPPXbX0tE9x9cl27Tmu5gg3QUbUrQYa/y+KOHPQ==
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/aproba/-/aproba-2.1.0.tgz#75500a190313d95c64e871e7e4284c6ac219f0b1"
|
||||
integrity sha512-tLIEcj5GuR2RSTnxNKdkK0dJ/GrC7P38sUkiDmDuHfsHmbagTFAxDVIBltoklXEVIQ/f14IL8IMJ5pn9Hez1Ew==
|
||||
|
||||
are-we-there-yet@^3.0.0:
|
||||
version "3.0.1"
|
||||
@@ -395,10 +414,10 @@ async-exit-hook@^2.0.1:
|
||||
resolved "https://registry.yarnpkg.com/async-exit-hook/-/async-exit-hook-2.0.1.tgz#8bd8b024b0ec9b1c01cccb9af9db29bd717dfaf3"
|
||||
integrity sha512-NW2cX8m1Q7KPA7a5M2ULQeZ2wR5qI5PAbw5L0UOMxdioVk9PMZ0h1TmyZEkPYrCvYjDlFICusOu1dlEKAAeXBw==
|
||||
|
||||
async@^3.2.3:
|
||||
version "3.2.5"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-3.2.5.tgz#ebd52a8fdaf7a2289a24df399f8d8485c8a46b66"
|
||||
integrity sha512-baNZyqaaLhyLVKm/DlvdW051MSgO6b8eVfIezl9E5PqWxFgzLm/wQntEW4zOytVburDEr0JlALEpdOFwvErLsg==
|
||||
async@^3.2.6:
|
||||
version "3.2.6"
|
||||
resolved "https://registry.yarnpkg.com/async/-/async-3.2.6.tgz#1b0728e14929d51b85b449b7f06e27c1145e38ce"
|
||||
integrity sha512-htCUDlxyyCLMgaM3xXg0C0LW2xqfuQ6p05pCEIsXuyQ+a1koYKTuBMzRNwmybfLgvJDMd0r1LTn4+E0Ti6C2AA==
|
||||
|
||||
asynckit@^0.4.0:
|
||||
version "0.4.0"
|
||||
@@ -447,33 +466,33 @@ boolean@^3.0.1:
|
||||
integrity sha512-d0II/GO9uf9lfUHH2BQsjxzRJZBdsjgsBiW4BvhWk/3qoKwQFjIDVN19PfX8F2D/r9PCMTtLWjYVCFrpeYUzsw==
|
||||
|
||||
brace-expansion@^1.1.7:
|
||||
version "1.1.11"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd"
|
||||
integrity sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==
|
||||
version "1.1.12"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.12.tgz#ab9b454466e5a8cc3a187beaad580412a9c5b843"
|
||||
integrity sha512-9T9UjW3r0UW5c1Q7GTwllptXwhvYmEzFhzMfZ9H7FQWt+uZePjZPjBP/W1ZEyZ1twGWom5/56TF4lPcqjnDHcg==
|
||||
dependencies:
|
||||
balanced-match "^1.0.0"
|
||||
concat-map "0.0.1"
|
||||
|
||||
brace-expansion@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae"
|
||||
integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.2.tgz#54fc53237a613d854c7bd37463aad17df87214e7"
|
||||
integrity sha512-Jt0vHyM+jmUBqojB7E1NIYadt0vI0Qxjxd2TErW94wDz+E2LAm5vKMXXwg6ZZBTHPuUlDgQHKXvjGBdfcF1ZDQ==
|
||||
dependencies:
|
||||
balanced-match "^1.0.0"
|
||||
|
||||
braces@^3.0.2:
|
||||
version "3.0.2"
|
||||
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
|
||||
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
|
||||
braces@^3.0.3:
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.3.tgz#490332f40919452272d55a8480adc0c441358789"
|
||||
integrity sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==
|
||||
dependencies:
|
||||
fill-range "^7.0.1"
|
||||
fill-range "^7.1.1"
|
||||
|
||||
buffer-crc32@~0.2.3:
|
||||
version "0.2.13"
|
||||
resolved "https://registry.yarnpkg.com/buffer-crc32/-/buffer-crc32-0.2.13.tgz#0d333e3f00eac50aa1454abd30ef8c2a5d9a7242"
|
||||
integrity sha512-VO9Ht/+p3SN7SKWqcrgEzjGbRSJYTx+Q1pTQC0wrWqHx0vpJraQ6GtHx8tvcg1rlK1byhU5gccxgOgj7B0TDkQ==
|
||||
|
||||
buffer-equal-constant-time@1.0.1:
|
||||
buffer-equal-constant-time@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz#f8e71132f7ffe6e01a5c9697a4c6f3e48d5cc819"
|
||||
integrity sha512-zRpUiDwd/xk6ADqPMATG8vc9VPrkck7T07OIx0gnjmJAnHnTVXNQG3vfvWNuiZIkwu9KrKdA1iJKfsfTVxE6NA==
|
||||
@@ -499,10 +518,10 @@ builder-util-runtime@9.2.10:
|
||||
debug "^4.3.4"
|
||||
sax "^1.2.4"
|
||||
|
||||
builder-util-runtime@9.2.5:
|
||||
version "9.2.5"
|
||||
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.2.5.tgz#0afdffa0adb5c84c14926c7dd2cf3c6e96e9be83"
|
||||
integrity sha512-HjIDfhvqx/8B3TDN4GbABQcgpewTU4LMRTQPkVpKYV3lsuxEJoIfvg09GyWTNmfVNSUAYf+fbTN//JX4TH20pg==
|
||||
builder-util-runtime@9.3.1:
|
||||
version "9.3.1"
|
||||
resolved "https://registry.yarnpkg.com/builder-util-runtime/-/builder-util-runtime-9.3.1.tgz#0daedde0f6d381f2a00a50a407b166fe7dca1a67"
|
||||
integrity sha512-2/egrNDDnRaxVwK3A+cJq6UOlqOdedGA7JPqCeJjN2Zjk1/QB/6QUi3b714ScIGS7HafFXTyzJEOr5b44I3kvQ==
|
||||
dependencies:
|
||||
debug "^4.3.4"
|
||||
sax "^1.2.4"
|
||||
@@ -571,7 +590,15 @@ cacheable-request@^7.0.2:
|
||||
normalize-url "^6.0.1"
|
||||
responselike "^2.0.0"
|
||||
|
||||
chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2:
|
||||
call-bind-apply-helpers@^1.0.1, call-bind-apply-helpers@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/call-bind-apply-helpers/-/call-bind-apply-helpers-1.0.2.tgz#4b5428c222be985d79c3d82657479dbe0b59b2d6"
|
||||
integrity sha512-Sp1ablJ0ivDkSzjcaJdxEunN5/XvksFJ2sMBFfq6x0ryhQV/2b/KwFe21cMpmHtPOSij8K99/wSfoEuTObmuMQ==
|
||||
dependencies:
|
||||
es-errors "^1.3.0"
|
||||
function-bind "^1.1.2"
|
||||
|
||||
chalk@^4.0.0, chalk@^4.1.0, chalk@^4.1.2:
|
||||
version "4.1.2"
|
||||
resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
|
||||
integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
|
||||
@@ -744,9 +771,9 @@ cross-env@^6.0.3:
|
||||
cross-spawn "^7.0.0"
|
||||
|
||||
cross-spawn@^6.0.5:
|
||||
version "6.0.5"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4"
|
||||
integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==
|
||||
version "6.0.6"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.6.tgz#30d0efa0712ddb7eb5a76e1e8721bffafa6b5d57"
|
||||
integrity sha512-VqCUuhcd1iB+dsv8gxPttb5iZh/D0iubSP21g36KXdEuf6I5JiioesUVjpCdHV9MZRUfVFlvwtIUyPfxo5trtw==
|
||||
dependencies:
|
||||
nice-try "^1.0.4"
|
||||
path-key "^2.0.1"
|
||||
@@ -754,26 +781,19 @@ cross-spawn@^6.0.5:
|
||||
shebang-command "^1.2.0"
|
||||
which "^1.2.9"
|
||||
|
||||
cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3:
|
||||
version "7.0.3"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6"
|
||||
integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==
|
||||
cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.3, cross-spawn@^7.0.6:
|
||||
version "7.0.6"
|
||||
resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f"
|
||||
integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==
|
||||
dependencies:
|
||||
path-key "^3.1.0"
|
||||
shebang-command "^2.0.0"
|
||||
which "^2.0.1"
|
||||
|
||||
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.4:
|
||||
version "4.3.4"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865"
|
||||
integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==
|
||||
dependencies:
|
||||
ms "2.1.2"
|
||||
|
||||
debug@^4.3.3:
|
||||
version "4.4.0"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a"
|
||||
integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA==
|
||||
debug@4, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.3, debug@^4.3.4:
|
||||
version "4.4.3"
|
||||
resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.3.tgz#c6ae432d9bd9662582fce08709b038c58e9e3d6a"
|
||||
integrity sha512-RGwwWnwQvkVfavKVt22FGLw+xYSdzARwm0ru6DhTVA3umU5hZc28V3kO4stgYryrTlLpuvgI9GiijltAjNbcqA==
|
||||
dependencies:
|
||||
ms "^2.1.3"
|
||||
|
||||
@@ -825,9 +845,9 @@ delegates@^1.0.0:
|
||||
integrity sha512-bd2L678uiWATM6m5Z1VzNCErI3jiGzt6HGY8OVICs40JQq/HALfbyNJmp0UDakEY4pMMaN0Ly5om/B1VI/+xfQ==
|
||||
|
||||
detect-libc@^2.0.1:
|
||||
version "2.0.3"
|
||||
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.0.3.tgz#f0cd503b40f9939b894697d19ad50895e30cf700"
|
||||
integrity sha512-bwy0MGW55bG41VqxxypOsdSdGqLwXPI/focwgTYCFMbdUiBAxLg9CFzG08sz2aqzknwiX7Hkl0bQENjg8iLByw==
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-2.1.2.tgz#689c5dcdc1900ef5583a4cb9f6d7b473742074ad"
|
||||
integrity sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==
|
||||
|
||||
detect-node@^2.0.4:
|
||||
version "2.1.0"
|
||||
@@ -878,9 +898,18 @@ dotenv-expand@^11.0.6:
|
||||
dotenv "^16.4.5"
|
||||
|
||||
dotenv@^16.4.5:
|
||||
version "16.4.7"
|
||||
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.4.7.tgz#0e20c5b82950140aa99be360a8a5f52335f53c26"
|
||||
integrity sha512-47qPchRCykZC03FhkYAhrvwU4xDBFIj1QPqaarj6mdM/hgUzfPHcpkHJOn3mJAufFeeAxAzeGsr5X0M4k6fLZQ==
|
||||
version "16.6.1"
|
||||
resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.6.1.tgz#773f0e69527a8315c7285d5ee73c4459d20a8020"
|
||||
integrity sha512-uBq4egWHTcTt33a72vpSG0z3HnPuIl6NqYcTrKEg2azoEyl2hpW0zqlxysq2pK9HlDIHyHyakeYaYnSAwd8bow==
|
||||
|
||||
dunder-proto@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/dunder-proto/-/dunder-proto-1.0.1.tgz#d7ae667e1dc83482f8b70fd0f6eefc50da30f58a"
|
||||
integrity sha512-KIN/nDJBQRcXw0MLVhZE9iQHmG68qAVIBg9CqmUYjmQIhgij9U5MFvrqkUL5FbtyyzZuOeOt0zdeRe4UY7ct+A==
|
||||
dependencies:
|
||||
call-bind-apply-helpers "^1.0.1"
|
||||
es-errors "^1.3.0"
|
||||
gopd "^1.2.0"
|
||||
|
||||
eastasianwidth@^0.2.0:
|
||||
version "0.2.0"
|
||||
@@ -936,11 +965,11 @@ electron-publish@25.1.7:
|
||||
mime "^2.5.2"
|
||||
|
||||
electron-updater@^6.3.4:
|
||||
version "6.3.4"
|
||||
resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-6.3.4.tgz#3934bc89875bb524c2cbbd11041114e97c0c2496"
|
||||
integrity sha512-uZUo7p1Y53G4tl6Cgw07X1yF8Jlz6zhaL7CQJDZ1fVVkOaBfE2cWtx80avwDVi8jHp+I/FWawrMgTAeCCNIfAg==
|
||||
version "6.6.2"
|
||||
resolved "https://registry.yarnpkg.com/electron-updater/-/electron-updater-6.6.2.tgz#3e65e044f1a99b00d61e200e24de8e709c69ce99"
|
||||
integrity sha512-Cr4GDOkbAUqRHP5/oeOmH/L2Bn6+FQPxVLZtPbcmKZC63a1F3uu5EefYOssgZXG3u/zBlubbJ5PJdITdMVggbw==
|
||||
dependencies:
|
||||
builder-util-runtime "9.2.5"
|
||||
builder-util-runtime "9.3.1"
|
||||
fs-extra "^10.1.0"
|
||||
js-yaml "^4.1.0"
|
||||
lazy-val "^1.0.5"
|
||||
@@ -949,13 +978,13 @@ electron-updater@^6.3.4:
|
||||
semver "^7.6.3"
|
||||
tiny-typed-emitter "^2.1.0"
|
||||
|
||||
electron@30.0.2:
|
||||
version "30.0.2"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-30.0.2.tgz#95ba019216bf8be9f3097580123e33ea37497733"
|
||||
integrity sha512-zv7T+GG89J/hyWVkQsLH4Y/rVEfqJG5M/wOBIGNaDdqd8UV9/YZPdS7CuFeaIj0H9LhCt95xkIQNpYB/3svOkQ==
|
||||
electron@38.6.0:
|
||||
version "38.6.0"
|
||||
resolved "https://registry.yarnpkg.com/electron/-/electron-38.6.0.tgz#c862bff41d42776e307bf5cc92503dda23612339"
|
||||
integrity sha512-68OFNxJlrEStA+t8k5atzf4frJddvRR1N1oalr49Ll8YZ0+0nEsDhw4UNhTCoZKTjSYcxFF/4rt+sco+OlnB3g==
|
||||
dependencies:
|
||||
"@electron/get" "^2.0.0"
|
||||
"@types/node" "^20.9.0"
|
||||
"@types/node" "^22.7.7"
|
||||
extract-zip "^2.0.1"
|
||||
|
||||
emoji-regex@^8.0.0:
|
||||
@@ -976,9 +1005,9 @@ encoding@^0.1.13:
|
||||
iconv-lite "^0.6.2"
|
||||
|
||||
end-of-stream@^1.1.0:
|
||||
version "1.4.4"
|
||||
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.4.tgz#5ae64a5f45057baf3626ec14da0ca5e4b2431eb0"
|
||||
integrity sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==
|
||||
version "1.4.5"
|
||||
resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.5.tgz#7344d711dea40e0b74abc2ed49778743ccedb08c"
|
||||
integrity sha512-ooEGc6HP26xXq/N+GCGOT0JKCLDGrq2bQUZrQ7gyrJiZANJ/8YDTxTpQBXGMn+WbIQXNVpyWymm7KYVICQnyOg==
|
||||
dependencies:
|
||||
once "^1.4.0"
|
||||
|
||||
@@ -992,27 +1021,42 @@ err-code@^2.0.2:
|
||||
resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
|
||||
integrity sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==
|
||||
|
||||
es-define-property@^1.0.0:
|
||||
version "1.0.0"
|
||||
resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.0.tgz#c7faefbdff8b2696cf5f46921edfb77cc4ba3845"
|
||||
integrity sha512-jxayLKShrEqqzJ0eumQbVhTYQM27CfT1T35+gCgDFoL82JLsXqTJ76zv6A0YLOgEnLUMvLzsDsGIrl8NFpT2gQ==
|
||||
dependencies:
|
||||
get-intrinsic "^1.2.4"
|
||||
es-define-property@^1.0.0, es-define-property@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/es-define-property/-/es-define-property-1.0.1.tgz#983eb2f9a6724e9303f61addf011c72e09e0b0fa"
|
||||
integrity sha512-e3nRfgfUZ4rNGL232gUgX06QNyyez04KdjFrF+LTRoOXmrOgFKDg4BCdsjW8EnT69eqdYGmRpJwiPVYNrCaW3g==
|
||||
|
||||
es-errors@^1.3.0:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f"
|
||||
integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw==
|
||||
|
||||
es-object-atoms@^1.0.0, es-object-atoms@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/es-object-atoms/-/es-object-atoms-1.1.1.tgz#1c4f2c4837327597ce69d2ca190a7fdd172338c1"
|
||||
integrity sha512-FGgH2h8zKNim9ljj7dankFPcICIK9Cp5bm+c2gQSYePhpaG5+esrLODihIorn+Pe6FGJzWhXQotPv73jTaldXA==
|
||||
dependencies:
|
||||
es-errors "^1.3.0"
|
||||
|
||||
es-set-tostringtag@^2.1.0:
|
||||
version "2.1.0"
|
||||
resolved "https://registry.yarnpkg.com/es-set-tostringtag/-/es-set-tostringtag-2.1.0.tgz#f31dbbe0c183b00a6d26eb6325c810c0fd18bd4d"
|
||||
integrity sha512-j6vWzfrGVfyXxge+O0x5sh6cvxAog0a/4Rdd2K36zCMV5eJ+/+tOAngRO8cODMNWbVRdVlmGZQL2YS3yR8bIUA==
|
||||
dependencies:
|
||||
es-errors "^1.3.0"
|
||||
get-intrinsic "^1.2.6"
|
||||
has-tostringtag "^1.0.2"
|
||||
hasown "^2.0.2"
|
||||
|
||||
es6-error@^4.1.1:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/es6-error/-/es6-error-4.1.1.tgz#9e3af407459deed47e9a91f9b885a84eb05c561d"
|
||||
integrity sha512-Um/+FxMr9CISWh0bi5Zv0iOD+4cFh5qLeks1qhAopKVAJw3drgKbKySikp7wGhDL0HPeaja0P5ULZrxLkniUVg==
|
||||
|
||||
escalade@^3.1.1:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.2.tgz#54076e9ab29ea5bf3d8f1ed62acffbb88272df27"
|
||||
integrity sha512-ErCHMCae19vR8vQGe50xIsVomy19rg6gFu3+r3jkEO46suLMWBksvVyoGgQV+jOfl84ZSOSlmv6Gxa89PmTGmA==
|
||||
version "3.2.0"
|
||||
resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5"
|
||||
integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA==
|
||||
|
||||
escape-string-regexp@^4.0.0:
|
||||
version "4.0.0"
|
||||
@@ -1020,9 +1064,9 @@ escape-string-regexp@^4.0.0:
|
||||
integrity sha512-TtpcNJ3XAzx3Gq8sWRzJaVajRs0uVxA2YAkdb1jm2YkPz4G6egUFAyA3n5vtEIZefPk5Wa4UXbKuS5fKkJWdgA==
|
||||
|
||||
exponential-backoff@^3.1.1:
|
||||
version "3.1.1"
|
||||
resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.1.tgz#64ac7526fe341ab18a39016cd22c787d01e00bf6"
|
||||
integrity sha512-dX7e/LHVJ6W3DE1MHWi9S1EYzDESENfLrYohG2G++ovZrYOkm4Knwa0mc1cn84xJOR4KEU0WSchhLbd0UklbHw==
|
||||
version "3.1.3"
|
||||
resolved "https://registry.yarnpkg.com/exponential-backoff/-/exponential-backoff-3.1.3.tgz#51cf92c1c0493c766053f9d3abee4434c244d2f6"
|
||||
integrity sha512-ZgEeZXj30q+I0EN+CbSSpIyPaJ5HVQD18Z1m+u1FXbAeT94mr1zw50q4q6jiiC447Nl/YTcIYSAftiGqetwXCA==
|
||||
|
||||
extract-zip@^2.0.1:
|
||||
version "2.0.1"
|
||||
@@ -1064,10 +1108,10 @@ filelist@^1.0.4:
|
||||
dependencies:
|
||||
minimatch "^5.0.1"
|
||||
|
||||
fill-range@^7.0.1:
|
||||
version "7.0.1"
|
||||
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40"
|
||||
integrity sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==
|
||||
fill-range@^7.1.1:
|
||||
version "7.1.1"
|
||||
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.1.1.tgz#44265d3cac07e3ea7dc247516380643754a05292"
|
||||
integrity sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==
|
||||
dependencies:
|
||||
to-regex-range "^5.0.1"
|
||||
|
||||
@@ -1079,20 +1123,22 @@ find-yarn-workspace-root@^2.0.0:
|
||||
micromatch "^4.0.2"
|
||||
|
||||
foreground-child@^3.1.0:
|
||||
version "3.3.0"
|
||||
resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.0.tgz#0ac8644c06e431439f8561db8ecf29a7b5519c77"
|
||||
integrity sha512-Ld2g8rrAyMYFXBhEqMz8ZAHBi4J4uS1i/CxGMDnjyFWddMXLVcDp051DZfu+t7+ab7Wv6SMqpWmyFIj5UbfFvg==
|
||||
version "3.3.1"
|
||||
resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f"
|
||||
integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw==
|
||||
dependencies:
|
||||
cross-spawn "^7.0.0"
|
||||
cross-spawn "^7.0.6"
|
||||
signal-exit "^4.0.1"
|
||||
|
||||
form-data@^4.0.0:
|
||||
version "4.0.0"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.0.tgz#93919daeaf361ee529584b9b31664dc12c9fa452"
|
||||
integrity sha512-ETEklSGi5t0QMZuiXoA/Q6vcnxcLQP5vdugSpuAyi6SVGi2clPPp+xgEhuMaHC+zGgn31Kd235W35f7Hykkaww==
|
||||
version "4.0.4"
|
||||
resolved "https://registry.yarnpkg.com/form-data/-/form-data-4.0.4.tgz#784cdcce0669a9d68e94d11ac4eea98088edd2c4"
|
||||
integrity sha512-KrGhL9Q4zjj0kiUt5OO4Mr/A/jlI2jDYs5eHBpYHPcBEVSiipAvn2Ko2HnPe20rmcuuvMHNdZFp+4IlGTMF0Ow==
|
||||
dependencies:
|
||||
asynckit "^0.4.0"
|
||||
combined-stream "^1.0.8"
|
||||
es-set-tostringtag "^2.1.0"
|
||||
hasown "^2.0.2"
|
||||
mime-types "^2.1.12"
|
||||
|
||||
fs-extra@^10.0.0, fs-extra@^10.1.0:
|
||||
@@ -1105,9 +1151,9 @@ fs-extra@^10.0.0, fs-extra@^10.1.0:
|
||||
universalify "^2.0.0"
|
||||
|
||||
fs-extra@^11.1.1:
|
||||
version "11.2.0"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.2.0.tgz#e70e17dfad64232287d01929399e0ea7c86b0e5b"
|
||||
integrity sha512-PmDi3uwK5nFuXh7XDTlVnS17xJS7vW36is2+w3xcv8SVxiB4NyATf4ctkVY5bkSjX0Y4nbvZCq1/EjtEyr9ktw==
|
||||
version "11.3.2"
|
||||
resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-11.3.2.tgz#c838aeddc6f4a8c74dd15f85e11fe5511bfe02a4"
|
||||
integrity sha512-Xr9F6z6up6Ws+NjzMCZc6WXg2YFRlrLP9NQDO3VQrWrfiojdhS56TzueT88ze0uBdCTwEIhQ3ptnmKeWGFAe0A==
|
||||
dependencies:
|
||||
graceful-fs "^4.2.0"
|
||||
jsonfile "^6.0.1"
|
||||
@@ -1168,16 +1214,29 @@ get-caller-file@^2.0.5:
|
||||
resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e"
|
||||
integrity sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==
|
||||
|
||||
get-intrinsic@^1.1.3, get-intrinsic@^1.2.4:
|
||||
version "1.2.4"
|
||||
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.2.4.tgz#e385f5a4b5227d449c3eabbad05494ef0abbeadd"
|
||||
integrity sha512-5uYhsJH8VJBTv7oslg4BznJYhDoRI6waYCxMmCdnTrcCrHA/fCFKoTFz2JKKE0HdDFUF7/oQuhzumXJK7paBRQ==
|
||||
get-intrinsic@^1.2.6:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/get-intrinsic/-/get-intrinsic-1.3.0.tgz#743f0e3b6964a93a5491ed1bffaae054d7f98d01"
|
||||
integrity sha512-9fSjSaos/fRIVIp+xSJlE6lfwhES7LNtKaCBIamHsjr2na1BiABJPo0mOjjz8GJDURarmCPGqaiVg5mfjb98CQ==
|
||||
dependencies:
|
||||
call-bind-apply-helpers "^1.0.2"
|
||||
es-define-property "^1.0.1"
|
||||
es-errors "^1.3.0"
|
||||
es-object-atoms "^1.1.1"
|
||||
function-bind "^1.1.2"
|
||||
has-proto "^1.0.1"
|
||||
has-symbols "^1.0.3"
|
||||
hasown "^2.0.0"
|
||||
get-proto "^1.0.1"
|
||||
gopd "^1.2.0"
|
||||
has-symbols "^1.1.0"
|
||||
hasown "^2.0.2"
|
||||
math-intrinsics "^1.1.0"
|
||||
|
||||
get-proto@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/get-proto/-/get-proto-1.0.1.tgz#150b3f2743869ef3e851ec0c49d15b1d14d00ee1"
|
||||
integrity sha512-sTSfBjoXBp89JvIKIefqw7U2CCebsc74kiY6awiGogKtoSGbgjYE/G/+l9sF3MWFPNc9IcoOC4ODfKHfxFmp0g==
|
||||
dependencies:
|
||||
dunder-proto "^1.0.1"
|
||||
es-object-atoms "^1.0.0"
|
||||
|
||||
get-stream@^5.1.0:
|
||||
version "5.2.0"
|
||||
@@ -1241,12 +1300,10 @@ globalthis@^1.0.1:
|
||||
define-properties "^1.2.1"
|
||||
gopd "^1.0.1"
|
||||
|
||||
gopd@^1.0.1:
|
||||
version "1.0.1"
|
||||
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.0.1.tgz#29ff76de69dac7489b7c0918a5788e56477c332c"
|
||||
integrity sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==
|
||||
dependencies:
|
||||
get-intrinsic "^1.1.3"
|
||||
gopd@^1.0.1, gopd@^1.2.0:
|
||||
version "1.2.0"
|
||||
resolved "https://registry.yarnpkg.com/gopd/-/gopd-1.2.0.tgz#89f56b8217bdbc8802bd299df6d7f1081d7e51a1"
|
||||
integrity sha512-ZUKRh6/kUFoAiTAtTYPZJ3hw9wNxx+BIBOijnlG9PnrJsCcSjs1wyyD6vJpaYtgnzDrKYRSqf3OO6Rfa93xsRg==
|
||||
|
||||
got@^11.7.0, got@^11.8.5:
|
||||
version "11.8.6"
|
||||
@@ -1282,22 +1339,24 @@ has-property-descriptors@^1.0.0:
|
||||
dependencies:
|
||||
es-define-property "^1.0.0"
|
||||
|
||||
has-proto@^1.0.1:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/has-proto/-/has-proto-1.0.3.tgz#b31ddfe9b0e6e9914536a6ab286426d0214f77fd"
|
||||
integrity sha512-SJ1amZAJUiZS+PhsVLf5tGydlaVB8EdFpaSO4gmiUKUOxk8qzn5AIy4ZeJUmh22znIdk/uMAUT2pl3FxzVUH+Q==
|
||||
has-symbols@^1.0.3, has-symbols@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.1.0.tgz#fc9c6a783a084951d0b971fe1018de813707a338"
|
||||
integrity sha512-1cDNdwJ2Jaohmb3sg4OmKaMBwuC48sYni5HUw2DvsC8LjGTLK9h+eb1X6RyuOHe4hT0ULCW68iomhjUoKUqlPQ==
|
||||
|
||||
has-symbols@^1.0.3:
|
||||
version "1.0.3"
|
||||
resolved "https://registry.yarnpkg.com/has-symbols/-/has-symbols-1.0.3.tgz#bb7b2c4349251dce87b125f7bdf874aa7c8b39f8"
|
||||
integrity sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==
|
||||
has-tostringtag@^1.0.2:
|
||||
version "1.0.2"
|
||||
resolved "https://registry.yarnpkg.com/has-tostringtag/-/has-tostringtag-1.0.2.tgz#2cdc42d40bef2e5b4eeab7c01a73c54ce7ab5abc"
|
||||
integrity sha512-NqADB8VjPFLM2V0VvHUewwwsw0ZWBaIdgo+ieHtK3hasLz4qeCRjYcqfB6AQrBggRKppKF8L52/VqdVsO47Dlw==
|
||||
dependencies:
|
||||
has-symbols "^1.0.3"
|
||||
|
||||
has-unicode@^2.0.1:
|
||||
version "2.0.1"
|
||||
resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9"
|
||||
integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ==
|
||||
|
||||
hasown@^2.0.0:
|
||||
hasown@^2.0.2:
|
||||
version "2.0.2"
|
||||
resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003"
|
||||
integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ==
|
||||
@@ -1312,9 +1371,9 @@ hosted-git-info@^4.1.0:
|
||||
lru-cache "^6.0.0"
|
||||
|
||||
http-cache-semantics@^4.0.0, http-cache-semantics@^4.1.0:
|
||||
version "4.1.1"
|
||||
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.1.tgz#abe02fcb2985460bf0323be664436ec3476a6d5a"
|
||||
integrity sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==
|
||||
version "4.2.0"
|
||||
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.2.0.tgz#205f4db64f8562b76a4ff9235aa5279839a09dd5"
|
||||
integrity sha512-dTxcvPXqPvXBQpq5dUr6mEMJX4oIEFv6bwom3FDwKRDsuIjjJGANqhBuoAn9c1RQJIdAKav33ED65E2ys+87QQ==
|
||||
|
||||
http-proxy-agent@^5.0.0:
|
||||
version "5.0.0"
|
||||
@@ -1412,13 +1471,10 @@ inherits@2, inherits@^2.0.1, inherits@^2.0.3, inherits@^2.0.4, inherits@~2.0.1,
|
||||
resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.4.tgz#0fa2c64f932917c3433a0ded55363aae37416b7c"
|
||||
integrity sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==
|
||||
|
||||
ip-address@^9.0.5:
|
||||
version "9.0.5"
|
||||
resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-9.0.5.tgz#117a960819b08780c3bd1f14ef3c1cc1d3f3ea5a"
|
||||
integrity sha512-zHtQzGojZXTwZTHQqra+ETKd4Sn3vgi7uBmlPoXVWZqYvuKmtI0l/VZTjqGmJY9x88GGOaZ9+G9ES8hC4T4X8g==
|
||||
dependencies:
|
||||
jsbn "1.1.0"
|
||||
sprintf-js "^1.1.3"
|
||||
ip-address@^10.0.1:
|
||||
version "10.1.0"
|
||||
resolved "https://registry.yarnpkg.com/ip-address/-/ip-address-10.1.0.tgz#d8dcffb34d0e02eb241427444a6e23f5b0595aa4"
|
||||
integrity sha512-XXADHxXmvT9+CRxhXg56LJovE+bmWnEWB78LB83VZTprKTmaC5QfruXocxzTZ2Kl0DNwKuBdlIhjL8LeY8Sf8Q==
|
||||
|
||||
is-ci@^2.0.0:
|
||||
version "2.0.0"
|
||||
@@ -1487,9 +1543,9 @@ isbinaryfile@^4.0.8:
|
||||
integrity sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==
|
||||
|
||||
isbinaryfile@^5.0.0:
|
||||
version "5.0.4"
|
||||
resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.4.tgz#2a2edefa76cafa66613fe4c1ea52f7f031017bdf"
|
||||
integrity sha512-YKBKVkKhty7s8rxddb40oOkuP0NbaeXrQvLin6QMHL7Ypiy2RW9LwOVrVgZRyOrhQlayMd9t+D8yDy8MKFTSDQ==
|
||||
version "5.0.6"
|
||||
resolved "https://registry.yarnpkg.com/isbinaryfile/-/isbinaryfile-5.0.6.tgz#01eac28867aeffaebaee7eaf21d1dd3a67d7c0c7"
|
||||
integrity sha512-I+NmIfBHUl+r2wcDd6JwE9yWje/PIVY/R5/CmV8dXLZd5K+L9X2klAOwfAHNnondLXkbHyTAleQAWonpTJBTtw==
|
||||
|
||||
isexe@^2.0.0:
|
||||
version "2.0.0"
|
||||
@@ -1506,14 +1562,13 @@ jackspeak@^3.1.2:
|
||||
"@pkgjs/parseargs" "^0.11.0"
|
||||
|
||||
jake@^10.8.5:
|
||||
version "10.9.1"
|
||||
resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.1.tgz#8dc96b7fcc41cb19aa502af506da4e1d56f5e62b"
|
||||
integrity sha512-61btcOHNnLnsOdtLgA5efqQWjnSi/vow5HbI7HMdKKWqvrKR1bLK3BPlJn9gcSaP2ewuamUSMB5XEy76KUIS2w==
|
||||
version "10.9.4"
|
||||
resolved "https://registry.yarnpkg.com/jake/-/jake-10.9.4.tgz#d626da108c63d5cfb00ab5c25fadc7e0084af8e6"
|
||||
integrity sha512-wpHYzhxiVQL+IV05BLE2Xn34zW1S223hvjtqk0+gsPrwd/8JNLXJgZZM/iPFsYc1xyphF+6M6EvdE5E9MBGkDA==
|
||||
dependencies:
|
||||
async "^3.2.3"
|
||||
chalk "^4.0.2"
|
||||
async "^3.2.6"
|
||||
filelist "^1.0.4"
|
||||
minimatch "^3.1.2"
|
||||
picocolors "^1.1.1"
|
||||
|
||||
js-yaml@^4.1.0:
|
||||
version "4.1.0"
|
||||
@@ -1522,11 +1577,6 @@ js-yaml@^4.1.0:
|
||||
dependencies:
|
||||
argparse "^2.0.1"
|
||||
|
||||
jsbn@1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-1.1.0.tgz#b01307cb29b618a1ed26ec79e911f803c4da0040"
|
||||
integrity sha512-4bYVV3aAMtDTTu4+xsDYa6sy9GyJ69/amsu9sYF2zqjiEoZA5xJi3BrfX3uY+/IekIu7MwdObdbDWpoZdBv3/A==
|
||||
|
||||
json-buffer@3.0.1:
|
||||
version "3.0.1"
|
||||
resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13"
|
||||
@@ -1555,9 +1605,9 @@ jsonfile@^4.0.0:
|
||||
graceful-fs "^4.1.6"
|
||||
|
||||
jsonfile@^6.0.1:
|
||||
version "6.1.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
|
||||
integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
|
||||
version "6.2.0"
|
||||
resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.2.0.tgz#7c265bd1b65de6977478300087c99f1c84383f62"
|
||||
integrity sha512-FGuPw30AdOIUTRMC2OMRtQV+jkVj2cfPqSeWXv1NEAJ1qZ5zb1X6z1mFhbfOB/iy3ssJCD+3KuZ8r8C3uVFlAg==
|
||||
dependencies:
|
||||
universalify "^2.0.0"
|
||||
optionalDependencies:
|
||||
@@ -1580,11 +1630,11 @@ jsonwebtoken@^9.0.2:
|
||||
semver "^7.5.4"
|
||||
|
||||
jwa@^1.4.1:
|
||||
version "1.4.1"
|
||||
resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.1.tgz#743c32985cb9e98655530d53641b66c8645b039a"
|
||||
integrity sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==
|
||||
version "1.4.2"
|
||||
resolved "https://registry.yarnpkg.com/jwa/-/jwa-1.4.2.tgz#16011ac6db48de7b102777e57897901520eec7b9"
|
||||
integrity sha512-eeH5JO+21J78qMvTIDdBXidBd6nG2kZjg5Ohz/1fpa28Z4CcsWUzJ1ZZyFq/3z3N17aZy+ZuBoHljASbL1WfOw==
|
||||
dependencies:
|
||||
buffer-equal-constant-time "1.0.1"
|
||||
buffer-equal-constant-time "^1.0.1"
|
||||
ecdsa-sig-formatter "1.0.11"
|
||||
safe-buffer "^5.0.1"
|
||||
|
||||
@@ -1729,12 +1779,17 @@ matcher@^3.0.0:
|
||||
dependencies:
|
||||
escape-string-regexp "^4.0.0"
|
||||
|
||||
math-intrinsics@^1.1.0:
|
||||
version "1.1.0"
|
||||
resolved "https://registry.yarnpkg.com/math-intrinsics/-/math-intrinsics-1.1.0.tgz#a0dd74be81e2aa5c2f27e65ce283605ee4e2b7f9"
|
||||
integrity sha512-/IXtbwEk5HTPyEwyKX6hGkYXxM9nbj64B+ilVJnC/R6B0pH5G4V3b0pVbL7DBj4tkhBAppbQUlf6F6Xl9LHu1g==
|
||||
|
||||
micromatch@^4.0.2:
|
||||
version "4.0.5"
|
||||
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
|
||||
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
|
||||
version "4.0.8"
|
||||
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.8.tgz#d66fa18f3a47076789320b9b1af32bd86d9fa202"
|
||||
integrity sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==
|
||||
dependencies:
|
||||
braces "^3.0.2"
|
||||
braces "^3.0.3"
|
||||
picomatch "^2.3.1"
|
||||
|
||||
mime-db@1.52.0:
|
||||
@@ -1770,13 +1825,13 @@ mimic-response@^3.1.0:
|
||||
integrity sha512-z0yWI+4FDrrweS8Zmt4Ej5HdJmky15+L2e6Wgn3+iK5fWzb6T3fhNFq2+MeTRb064c6Wr4N/wv0DzQTjNzHNGQ==
|
||||
|
||||
minimatch@^10.0.0:
|
||||
version "10.0.1"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b"
|
||||
integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ==
|
||||
version "10.1.1"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.1.1.tgz#e6e61b9b0c1dcab116b5a7d1458e8b6ae9e73a55"
|
||||
integrity sha512-enIvLvRAFZYXJzkCYG5RKmPfrFArdLv+R+lbQ53BmIMLIry74bjKzX6iHAm8WYamJkhSSEabrWN5D97XnKObjQ==
|
||||
dependencies:
|
||||
brace-expansion "^2.0.1"
|
||||
"@isaacs/brace-expansion" "^5.0.0"
|
||||
|
||||
minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2:
|
||||
minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1:
|
||||
version "3.1.2"
|
||||
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
|
||||
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
|
||||
@@ -1871,11 +1926,6 @@ mkdirp@^1.0.3, mkdirp@^1.0.4:
|
||||
resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-1.0.4.tgz#3eb5ed62622756d79a5f0e2a221dfebad75c2f7e"
|
||||
integrity sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==
|
||||
|
||||
ms@2.1.2:
|
||||
version "2.1.2"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.2.tgz#d09d1f357b443f493382a8eb3ccd183872ae6009"
|
||||
integrity sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==
|
||||
|
||||
ms@^2.0.0, ms@^2.1.1, ms@^2.1.3:
|
||||
version "2.1.3"
|
||||
resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2"
|
||||
@@ -1892,9 +1942,9 @@ nice-try@^1.0.4:
|
||||
integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==
|
||||
|
||||
node-abi@^3.45.0:
|
||||
version "3.71.0"
|
||||
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.71.0.tgz#52d84bbcd8575efb71468fbaa1f9a49b2c242038"
|
||||
integrity sha512-SZ40vRiy/+wRTf21hxkkEjPJZpARzUMVcJoQse2EF8qkUWbbO2z7vd5oA/H6bVH6SZQ5STGcu0KRDS7biNRfxw==
|
||||
version "3.80.0"
|
||||
resolved "https://registry.yarnpkg.com/node-abi/-/node-abi-3.80.0.tgz#d7390951f27caa129cceeec01e1c20fc9f07581c"
|
||||
integrity sha512-LyPuZJcI9HVwzXK1GPxWNzrr+vr8Hp/3UqlmWxxh8p54U1ZbclOqbSog9lWHaCX+dBaiGi6n/hIX+mKu74GmPA==
|
||||
dependencies:
|
||||
semver "^7.3.5"
|
||||
|
||||
@@ -1904,9 +1954,9 @@ node-addon-api@^1.6.3:
|
||||
integrity sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==
|
||||
|
||||
node-api-version@^0.2.0:
|
||||
version "0.2.0"
|
||||
resolved "https://registry.yarnpkg.com/node-api-version/-/node-api-version-0.2.0.tgz#5177441da2b1046a4d4547ab9e0972eed7b1ac1d"
|
||||
integrity sha512-fthTTsi8CxaBXMaBAD7ST2uylwvsnYxh2PfaScwpMhos6KlSFajXQPcM4ogNE1q2s3Lbz9GCGqeIHC+C6OZnKg==
|
||||
version "0.2.1"
|
||||
resolved "https://registry.yarnpkg.com/node-api-version/-/node-api-version-0.2.1.tgz#19bad54f6d65628cbee4e607a325e4488ace2de9"
|
||||
integrity sha512-2xP/IGGMmmSQpI1+O/k72jF/ykvZ89JeuKX3TLJAYPDVLUalrshrLHkeVcCCZqG/eEa635cr8IBYzgnDvM2O8Q==
|
||||
dependencies:
|
||||
semver "^7.3.5"
|
||||
|
||||
@@ -2081,6 +2131,11 @@ pend@~1.2.0:
|
||||
resolved "https://registry.yarnpkg.com/pend/-/pend-1.2.0.tgz#7a57eb550a6783f9115331fcf4663d5c8e007a50"
|
||||
integrity sha512-F3asv42UuXchdzt+xXqfW1OGlVBe+mxa2mqI0pg5yAHZPvFmY3Y6drSf/GQ1A86WgWEN9Kzh/WrgKa6iGcHXLg==
|
||||
|
||||
picocolors@^1.1.1:
|
||||
version "1.1.1"
|
||||
resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b"
|
||||
integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA==
|
||||
|
||||
picomatch@^2.3.1:
|
||||
version "2.3.1"
|
||||
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
|
||||
@@ -2119,9 +2174,9 @@ promise-retry@^2.0.1:
|
||||
retry "^0.12.0"
|
||||
|
||||
pump@^3.0.0:
|
||||
version "3.0.0"
|
||||
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.0.tgz#b4a2116815bde2f4e1ea602354e8c75565107a64"
|
||||
integrity sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==
|
||||
version "3.0.3"
|
||||
resolved "https://registry.yarnpkg.com/pump/-/pump-3.0.3.tgz#151d979f1a29668dc0025ec589a455b53282268d"
|
||||
integrity sha512-todwxLMY7/heScKmntwQG8CXVkWUOdYxIvY2s0VWAAMh/nd8SoYiRaKjlr7+iCs984f2P8zvrfWcDDYVb73NfA==
|
||||
dependencies:
|
||||
end-of-stream "^1.1.0"
|
||||
once "^1.3.1"
|
||||
@@ -2261,9 +2316,9 @@ sanitize-filename@^1.6.3:
|
||||
truncate-utf8-bytes "^1.0.0"
|
||||
|
||||
sax@^1.2.4:
|
||||
version "1.3.0"
|
||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.3.0.tgz#a5dbe77db3be05c9d1ee7785dbd3ea9de51593d0"
|
||||
integrity sha512-0s+oAmw9zLl1V1cS9BtZN7JAd0cW5e0QH4W3LWEK6a4LaLEA2OTpGYWDY+6XasBLtz6wkm3u1xRw95mRuJ59WA==
|
||||
version "1.4.3"
|
||||
resolved "https://registry.yarnpkg.com/sax/-/sax-1.4.3.tgz#fcebae3b756cdc8428321805f4b70f16ec0ab5db"
|
||||
integrity sha512-yqYn1JhPczigF94DMS+shiDMjDowYO6y9+wB/4WgO0Y19jWYk0lQ4tuG5KI7kj4FTp1wxPj5IFfcrz/s1c3jjQ==
|
||||
|
||||
semver-compare@^1.0.0:
|
||||
version "1.0.0"
|
||||
@@ -2280,15 +2335,10 @@ semver@^6.2.0:
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4"
|
||||
integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==
|
||||
|
||||
semver@^7.3.2:
|
||||
version "7.6.1"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.1.tgz#60bfe090bf907a25aa8119a72b9f90ef7ca281b2"
|
||||
integrity sha512-f/vbBsu+fOiYt+lmwZV0rVwJScl46HppnOA1ZvIuBWKOTlllpyJ3bfVax76/OrhCH38dyxoDIA8K7uB963IYgA==
|
||||
|
||||
semver@^7.3.5, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.3:
|
||||
version "7.6.3"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.6.3.tgz#980f7b5550bc175fb4dc09403085627f9eb33143"
|
||||
integrity sha512-oVekP1cKtI+CTDvHWYFUcMtsK/00wmAEfyqKfNdARm8u1wNVhSgaX7A8d4UuIlUI5e84iEwOhs7ZPYRmzU9U6A==
|
||||
semver@^7.3.2, semver@^7.3.5, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4, semver@^7.6.3:
|
||||
version "7.7.3"
|
||||
resolved "https://registry.yarnpkg.com/semver/-/semver-7.7.3.tgz#4b5f4143d007633a8dc671cd0a6ef9147b8bb946"
|
||||
integrity sha512-SdsKMrI9TdgjdweUSR9MweHA4EJ8YxHn8DFaDisvhVlUOe4BF1tLD7GAj0lIqWVl+dPb/rExr0Btby5loQm20Q==
|
||||
|
||||
serialize-error@^7.0.1:
|
||||
version "7.0.1"
|
||||
@@ -2372,11 +2422,11 @@ socks-proxy-agent@^7.0.0:
|
||||
socks "^2.6.2"
|
||||
|
||||
socks@^2.6.2:
|
||||
version "2.8.3"
|
||||
resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.3.tgz#1ebd0f09c52ba95a09750afe3f3f9f724a800cb5"
|
||||
integrity sha512-l5x7VUUWbjVFbafGLxPWkYsHIhEvmF85tbIeFZWc8ZPtoMyybuEhL7Jye/ooC4/d48FgOjSJXgsF/AJPYCW8Zw==
|
||||
version "2.8.7"
|
||||
resolved "https://registry.yarnpkg.com/socks/-/socks-2.8.7.tgz#e2fb1d9a603add75050a2067db8c381a0b5669ea"
|
||||
integrity sha512-HLpt+uLy/pxB+bum/9DzAgiKS8CX1EvbWxI4zlmgGCExImLdiad2iCwXT5Z4c9c3Eq8rP2318mPW2c+QbtjK8A==
|
||||
dependencies:
|
||||
ip-address "^9.0.5"
|
||||
ip-address "^10.0.1"
|
||||
smart-buffer "^4.2.0"
|
||||
|
||||
source-map-support@^0.5.19:
|
||||
@@ -2392,7 +2442,7 @@ source-map@^0.6.0:
|
||||
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
|
||||
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
|
||||
|
||||
sprintf-js@^1.1.2, sprintf-js@^1.1.3:
|
||||
sprintf-js@^1.1.2:
|
||||
version "1.1.3"
|
||||
resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a"
|
||||
integrity sha512-Oo+0REFV59/rz3gfJNKQiBlwfHaSESl1pcGyABQsnnIfWOFt6JNj5gCog2U6MLZ//IGYD+nA8nI+mTShREReaA==
|
||||
@@ -2454,9 +2504,9 @@ string_decoder@~1.1.1:
|
||||
ansi-regex "^5.0.1"
|
||||
|
||||
strip-ansi@^7.0.1:
|
||||
version "7.1.0"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45"
|
||||
integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ==
|
||||
version "7.1.2"
|
||||
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.2.tgz#132875abde678c7ea8d691533f2e7e22bb744dba"
|
||||
integrity sha512-gmBGslpoQJtgnMAvOVqGZpEz9dyoKTCzy2nfz/n8aIFhN/jCE/rCmcxabB6jOOHV+0WNnylOxaxBQPSvcWklhA==
|
||||
dependencies:
|
||||
ansi-regex "^6.0.1"
|
||||
|
||||
@@ -2522,9 +2572,9 @@ tmp@^0.0.33:
|
||||
os-tmpdir "~1.0.2"
|
||||
|
||||
tmp@^0.2.0:
|
||||
version "0.2.3"
|
||||
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.3.tgz#eb783cc22bc1e8bebd0671476d46ea4eb32a79ae"
|
||||
integrity sha512-nZD7m9iCPC5g0pYmcaxogYKggSfLsdxl8of3Q/oIbqCqLLIO9IAF0GWjX1z9NZRHPiXv8Wex4yDCaZsgEw0Y8w==
|
||||
version "0.2.5"
|
||||
resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.5.tgz#b06bcd23f0f3c8357b426891726d16015abfd8f8"
|
||||
integrity sha512-voyz6MApa1rQGUxT3E+BK7/ROe8itEx7vD8/HEvt4xwXucvQ5G5oeEiHkmHZJuBO21RpOf+YYm9MOivj709jow==
|
||||
|
||||
to-regex-range@^5.0.1:
|
||||
version "5.0.1"
|
||||
@@ -2546,14 +2596,19 @@ type-fest@^0.13.1:
|
||||
integrity sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==
|
||||
|
||||
typescript@^5.4.3:
|
||||
version "5.7.2"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.7.2.tgz#3169cf8c4c8a828cde53ba9ecb3d2b1d5dd67be6"
|
||||
integrity sha512-i5t66RHxDvVN40HfDd1PsEThGNnlMCMT3jMUuoh9/0TaqWevNontacunWyN02LA9/fIbEWlcHZcgTKb9QoaLfg==
|
||||
version "5.9.3"
|
||||
resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.9.3.tgz#5b4f59e15310ab17a216f5d6cf53ee476ede670f"
|
||||
integrity sha512-jl1vZzPDinLr9eUt3J/t7V6FgNEw9QjvBPdysz9KfQDD41fQrC2Y4vKQdiaUpFT4bXlb1RHhLpp8wtm6M5TgSw==
|
||||
|
||||
undici-types@~5.26.4:
|
||||
version "5.26.5"
|
||||
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617"
|
||||
integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA==
|
||||
undici-types@~6.21.0:
|
||||
version "6.21.0"
|
||||
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-6.21.0.tgz#691d00af3909be93a7faa13be61b3a5b50ef12cb"
|
||||
integrity sha512-iwDZqg0QAGrg9Rav5H4n0M64c3mkR59cJ6wQp+7C4nI0gsmExaedaYLNO44eT4AtBBwjbTiGPMlt2Md0T9H9JQ==
|
||||
|
||||
undici-types@~7.16.0:
|
||||
version "7.16.0"
|
||||
resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-7.16.0.tgz#ffccdff36aea4884cbfce9a750a0580224f58a46"
|
||||
integrity sha512-Zz+aZWSj8LE6zoxD+xrjh4VfkIG8Ya6LvYkZqtUQGJPZjYl53ypCaUwWqo7eI0x66KBGeRo+mlBEkMSeSZ38Nw==
|
||||
|
||||
unique-filename@^2.0.0:
|
||||
version "2.0.1"
|
||||
@@ -2592,9 +2647,9 @@ uri-js@^4.2.2:
|
||||
punycode "^2.1.0"
|
||||
|
||||
utf8-byte-length@^1.0.1:
|
||||
version "1.0.4"
|
||||
resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz#f45f150c4c66eee968186505ab93fcbb8ad6bf61"
|
||||
integrity sha512-4+wkEYLBbWxqTahEsWrhxepcoVOJ+1z5PGIjPZxRkytcdSUaNjIjBM7Xn8E+pdSuV7SzvWovBFA54FO0JSoqhA==
|
||||
version "1.0.5"
|
||||
resolved "https://registry.yarnpkg.com/utf8-byte-length/-/utf8-byte-length-1.0.5.tgz#f9f63910d15536ee2b2d5dd4665389715eac5c1e"
|
||||
integrity sha512-Xn0w3MtiQ6zoz2vFyUVruaCL53O/DwUvkEeOvj+uulMm0BkUGYWmBYVyElqZaSLhY6ZD0ulfU3aBra2aVT4xfA==
|
||||
|
||||
util-deprecate@^1.0.1, util-deprecate@~1.0.1:
|
||||
version "1.0.2"
|
||||
|
||||
129
common/assign-dbgm-codes.mjs
Normal file
129
common/assign-dbgm-codes.mjs
Normal file
@@ -0,0 +1,129 @@
|
||||
#!/usr/bin/env node
|
||||
// assign-dbgm-codes.mjs
|
||||
import fs from 'fs/promises';
|
||||
import path from 'path';
|
||||
|
||||
const PLACEHOLDER = 'DBGM-00000';
|
||||
const CODE_RE = /DBGM-(\d{5})/g;
|
||||
const JS_TS_RE = /\.(mjs|cjs|js|ts|jsx|tsx)$/i;
|
||||
|
||||
const IGNORE_DIRS = new Set([
|
||||
'node_modules',
|
||||
'.git',
|
||||
'.hg',
|
||||
'.svn',
|
||||
'dist',
|
||||
'build',
|
||||
'out',
|
||||
'.next',
|
||||
'.turbo',
|
||||
'.cache',
|
||||
]);
|
||||
const IGNORE_FILES = ['assign-dbgm-codes.mjs', 'package.json', 'README.md'];
|
||||
|
||||
// --- CLI ---
|
||||
const args = process.argv.slice(2);
|
||||
const dryRun = args.includes('--dry');
|
||||
const rootArg = args.find(a => a !== '--dry') || process.cwd();
|
||||
const root = path.resolve(rootArg);
|
||||
|
||||
// --- helpers ---
|
||||
async function* walk(dir) {
|
||||
const entries = await fs.readdir(dir, { withFileTypes: true });
|
||||
for (const e of entries) {
|
||||
if (e.isDirectory()) {
|
||||
if (IGNORE_DIRS.has(e.name)) continue;
|
||||
yield* walk(path.join(dir, e.name));
|
||||
} else if (e.isFile()) {
|
||||
if (JS_TS_RE.test(e.name) && !IGNORE_FILES.includes(e.name)) yield path.join(dir, e.name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function formatCode(n) {
|
||||
return `DBGM-${String(n).padStart(5, '0')}`;
|
||||
}
|
||||
|
||||
// Find the smallest positive integer not in `taken`
|
||||
function makeNextCodeFn(taken) {
|
||||
let n = 1;
|
||||
// advance n to first free
|
||||
while (taken.has(n)) n++;
|
||||
return () => {
|
||||
const code = n;
|
||||
taken.add(code);
|
||||
// move n to next free for next call
|
||||
do {
|
||||
n++;
|
||||
} while (taken.has(n));
|
||||
return formatCode(code);
|
||||
};
|
||||
}
|
||||
|
||||
// --- main ---
|
||||
(async () => {
|
||||
console.log(`Scanning: ${root} ${dryRun ? '(dry run)' : ''}`);
|
||||
|
||||
// 1) Collect all taken codes across the repo
|
||||
const taken = new Set(); // numeric parts only
|
||||
const files = [];
|
||||
for await (const file of walk(root)) files.push(file);
|
||||
|
||||
await Promise.all(
|
||||
files.map(async file => {
|
||||
try {
|
||||
const text = await fs.readFile(file, 'utf8');
|
||||
for (const m of text.matchAll(CODE_RE)) {
|
||||
const num = Number(m[1]);
|
||||
if (Number.isInteger(num) && num > 0) taken.add(num);
|
||||
}
|
||||
} catch (err) {
|
||||
console.warn(`! Failed to read ${file}: ${err.message}`);
|
||||
}
|
||||
})
|
||||
);
|
||||
|
||||
console.log(`Found ${taken.size} occupied code(s).`);
|
||||
|
||||
// 2) Replace placeholders with next available unique code
|
||||
const nextCode = makeNextCodeFn(taken);
|
||||
|
||||
let filesChanged = 0;
|
||||
let placeholdersReplaced = 0;
|
||||
|
||||
for (const file of files) {
|
||||
let text;
|
||||
try {
|
||||
text = await fs.readFile(file, 'utf8');
|
||||
} catch (err) {
|
||||
console.warn(`! Failed to read ${file}: ${err.message}`);
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!text.includes(PLACEHOLDER)) continue;
|
||||
|
||||
let countInFile = 0;
|
||||
const updated = text.replaceAll(PLACEHOLDER, () => {
|
||||
countInFile++;
|
||||
return nextCode();
|
||||
});
|
||||
|
||||
if (countInFile > 0) {
|
||||
placeholdersReplaced += countInFile;
|
||||
filesChanged++;
|
||||
console.log(`${dryRun ? '[dry]' : '[write]'} ${file} — ${countInFile} replacement(s)`);
|
||||
if (!dryRun) {
|
||||
try {
|
||||
await fs.writeFile(file, updated, 'utf8');
|
||||
} catch (err) {
|
||||
console.warn(`! Failed to write ${file}: ${err.message}`);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
console.log(`Done. Files changed: ${filesChanged}, placeholders replaced: ${placeholdersReplaced}.`);
|
||||
})().catch(err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
110
common/fixYmlHashes.js
Normal file
110
common/fixYmlHashes.js
Normal file
@@ -0,0 +1,110 @@
|
||||
import fs from 'node:fs/promises';
|
||||
import { createHash } from 'node:crypto';
|
||||
import path from 'node:path';
|
||||
import process from 'node:process';
|
||||
import { fileURLToPath } from 'node:url';
|
||||
import YAML from 'yaml';
|
||||
|
||||
const __filename = fileURLToPath(import.meta.url);
|
||||
const __dirname = path.dirname(__filename);
|
||||
|
||||
async function sha512Base64(filePath) {
|
||||
const buf = await fs.readFile(filePath);
|
||||
const h = createHash('sha512');
|
||||
h.update(buf);
|
||||
return h.digest('base64');
|
||||
}
|
||||
|
||||
async function fileSize(filePath) {
|
||||
const st = await fs.stat(filePath);
|
||||
return st.size;
|
||||
}
|
||||
|
||||
async function fixOneYaml(ymlPath, distDir) {
|
||||
let raw;
|
||||
try {
|
||||
raw = await fs.readFile(ymlPath, 'utf8');
|
||||
} catch (e) {
|
||||
console.error(`✗ Cannot read ${ymlPath}:`, e.message);
|
||||
return;
|
||||
}
|
||||
|
||||
let doc;
|
||||
try {
|
||||
doc = YAML.parse(raw);
|
||||
} catch (e) {
|
||||
console.error(`✗ Cannot parse YAML ${ymlPath}:`, e.message);
|
||||
return;
|
||||
}
|
||||
|
||||
if (!doc || !Array.isArray(doc.files)) {
|
||||
console.warn(`! ${path.basename(ymlPath)} has no 'files' array — skipped.`);
|
||||
return;
|
||||
}
|
||||
|
||||
let changed = false;
|
||||
|
||||
// Update each files[i].sha512 and files[i].size based on files[i].url
|
||||
for (const entry of doc.files) {
|
||||
if (!entry?.url) continue;
|
||||
|
||||
const target = path.resolve(distDir, entry.url);
|
||||
try {
|
||||
const [hash, size] = await Promise.all([sha512Base64(target), fileSize(target)]);
|
||||
if (entry.sha512 !== hash || entry.size !== size) {
|
||||
console.log(`• ${path.basename(ymlPath)}: refresh ${entry.url}`);
|
||||
entry.sha512 = hash;
|
||||
entry.size = size;
|
||||
changed = true;
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn(
|
||||
`! Missing or unreadable file for ${entry.url} (referenced by ${path.basename(ymlPath)}): ${e.message}`
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
// Update top-level sha512 for the primary "path" file if present
|
||||
if (doc.path) {
|
||||
const primary = path.resolve(distDir, doc.path);
|
||||
try {
|
||||
const hash = await sha512Base64(primary);
|
||||
if (doc.sha512 !== hash) {
|
||||
console.log(`• ${path.basename(ymlPath)}: refresh top-level sha512 for path=${doc.path}`);
|
||||
doc.sha512 = hash;
|
||||
changed = true;
|
||||
}
|
||||
} catch (e) {
|
||||
console.warn(`! Primary 'path' file not found for ${path.basename(ymlPath)}: ${doc.path} (${e.message})`);
|
||||
}
|
||||
}
|
||||
|
||||
if (changed) {
|
||||
const out = YAML.stringify(doc);
|
||||
await fs.writeFile(ymlPath, out, 'utf8');
|
||||
console.log(`✓ Updated ${path.basename(ymlPath)}`);
|
||||
} else {
|
||||
console.log(`= No changes for ${path.basename(ymlPath)}`);
|
||||
}
|
||||
}
|
||||
|
||||
async function main() {
|
||||
const distDir = path.resolve(process.argv[2] ?? path.join(__dirname, '..', 'app', 'dist'));
|
||||
const entries = await fs.readdir(distDir);
|
||||
const ymls = entries.filter(f => f.toLowerCase().endsWith('.yml'));
|
||||
|
||||
if (ymls.length === 0) {
|
||||
console.warn(`No .yml files found in ${distDir}`);
|
||||
return;
|
||||
}
|
||||
|
||||
console.log(`Scanning ${distDir}`);
|
||||
for (const y of ymls) {
|
||||
await fixOneYaml(path.join(distDir, y), distDir);
|
||||
}
|
||||
}
|
||||
|
||||
main().catch(err => {
|
||||
console.error(err);
|
||||
process.exit(1);
|
||||
});
|
||||
43
common/translations-cli/addMissing.js
Normal file
43
common/translations-cli/addMissing.js
Normal file
@@ -0,0 +1,43 @@
|
||||
//@ts-check
|
||||
const { getDefaultTranslations, getLanguageTranslations } = require('./helpers');
|
||||
|
||||
/**
|
||||
* @param {string} language
|
||||
*/
|
||||
function getMissingTranslations(language) {
|
||||
const source = getDefaultTranslations();
|
||||
/** @type {Record<string, string>} */
|
||||
let target;
|
||||
|
||||
try {
|
||||
target = getLanguageTranslations(language);
|
||||
} catch {
|
||||
console.log(`Language ${language} not found, creating a new one`);
|
||||
target = {};
|
||||
}
|
||||
|
||||
let added = 0;
|
||||
let removed = 0;
|
||||
|
||||
for (const key in source) {
|
||||
if (!target[key]) {
|
||||
target[key] = `*** ${source[key]}`;
|
||||
added++;
|
||||
}
|
||||
}
|
||||
|
||||
for (const key in target) {
|
||||
if (!source[key]) {
|
||||
delete target[key];
|
||||
removed++;
|
||||
}
|
||||
}
|
||||
|
||||
const newLength = Object.keys(target).length;
|
||||
|
||||
return { result: target, stats: { added, removed, newLength } };
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
getMissingTranslations,
|
||||
};
|
||||
16
common/translations-cli/constants.js
Normal file
16
common/translations-cli/constants.js
Normal file
@@ -0,0 +1,16 @@
|
||||
// @ts-check
|
||||
//
|
||||
const defaultLanguage = 'en';
|
||||
|
||||
/** @typedef {{ extensions: string[], directories: string[] }} ExtractConfig
|
||||
|
||||
/** @type {ExtractConfig} */
|
||||
const defaultExtractConfig = {
|
||||
extensions: ['.js', '.ts', '.svelte'],
|
||||
directories: ['app', 'packages/web'],
|
||||
};
|
||||
|
||||
module.exports = {
|
||||
defaultLanguage,
|
||||
defaultExtractConfig,
|
||||
};
|
||||
85
common/translations-cli/extract.js
Normal file
85
common/translations-cli/extract.js
Normal file
@@ -0,0 +1,85 @@
|
||||
//@ts-check
|
||||
const fs = require('fs');
|
||||
const { promisify } = require('util');
|
||||
|
||||
const { getFiles } = require('./helpers');
|
||||
|
||||
const readFilePromise = promisify(fs.readFile);
|
||||
|
||||
const translationRegex = /_t\(\s*['"]([^'"]+)['"]\s*,\s*\{\s*defaultMessage\s*:\s*(?:'([^'\\]*(?:\\.[^'\\]*)*)'|"([^"\\]*(?:\\.[^"\\]*)*)"|\`([^`\\]*(?:\\.[^`\\]*)*(?:\{[^}]*\}[^`\\]*(?:\\.[^`\\]*)*)*)\`)(?:\s*,\s*[^}]*)*\s*\}/g;
|
||||
|
||||
/**
|
||||
* @param {string} file
|
||||
*
|
||||
* @returns {Promise<Record<string, string>>}
|
||||
*/
|
||||
async function extractTranslationsFromFile(file) {
|
||||
/** @type {Record<string, string>} */
|
||||
const translations = {};
|
||||
const content = await readFilePromise(file, 'utf-8');
|
||||
let match;
|
||||
|
||||
while ((match = translationRegex.exec(content)) !== null) {
|
||||
const [_, key, singleQuotedText, doubleQuotedText, templateLiteral] = match;
|
||||
const defaultText = singleQuotedText || doubleQuotedText || templateLiteral;
|
||||
translations[key] = defaultText;
|
||||
}
|
||||
|
||||
return translations;
|
||||
}
|
||||
|
||||
/** @typedef {{ ignoreDuplicates?: boolean }} ExtractOptions */
|
||||
|
||||
/**
|
||||
* @param {string[]} directories
|
||||
* @param {string[]} extensions
|
||||
* @param {ExtractOptions} options
|
||||
*
|
||||
* @returns {Promise<Record<string, string>>}
|
||||
*/
|
||||
async function extractAllTranslations(directories, extensions, options = {}) {
|
||||
const { ignoreDuplicates } = options;
|
||||
|
||||
try {
|
||||
/** @type {Record<string, string>} */
|
||||
const allTranslations = {};
|
||||
/** @type {Record<string, string[]>} */
|
||||
const translationKeyToFiles = {};
|
||||
|
||||
for (const dir of directories) {
|
||||
const files = await getFiles(dir, extensions);
|
||||
|
||||
for (const file of files) {
|
||||
const fileTranslations = await extractTranslationsFromFile(file);
|
||||
|
||||
for (const key in fileTranslations) {
|
||||
if (!translationKeyToFiles[key]) {
|
||||
translationKeyToFiles[key] = [];
|
||||
}
|
||||
|
||||
translationKeyToFiles[key].push(file);
|
||||
|
||||
if (!ignoreDuplicates && allTranslations[key] && allTranslations[key] !== fileTranslations[key]) {
|
||||
console.error(
|
||||
`Different translations for the same key [${key}] found. ${file}: ${
|
||||
fileTranslations[key]
|
||||
}. Previous value: ${allTranslations[key]} was found in ${translationKeyToFiles[key].join(', ')}`
|
||||
);
|
||||
throw new Error(`Duplicate translation key found: ${key}`);
|
||||
}
|
||||
|
||||
allTranslations[key] = fileTranslations[key];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return allTranslations;
|
||||
} catch (error) {
|
||||
console.error('Error extracting translations:', error);
|
||||
throw error;
|
||||
}
|
||||
}
|
||||
module.exports = {
|
||||
extractTranslationsFromFile,
|
||||
extractAllTranslations,
|
||||
};
|
||||
198
common/translations-cli/helpers.js
Normal file
198
common/translations-cli/helpers.js
Normal file
@@ -0,0 +1,198 @@
|
||||
//@ts-check
|
||||
const path = require('path');
|
||||
const fs = require('fs');
|
||||
const { defaultLanguage } = require('./constants');
|
||||
const sortJsonKeysAlphabetically = require('./sortJsonKeysAlphabetically');
|
||||
|
||||
/**
|
||||
* @param {string} file
|
||||
* @param {string[]} extensions
|
||||
*
|
||||
* @returns {boolean}
|
||||
*/
|
||||
function hasValidExtension(file, extensions) {
|
||||
return extensions.includes(path.extname(file).toLowerCase());
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} dir
|
||||
* @param {string[]} extensions
|
||||
*
|
||||
* @returns {Promise<string[]>}
|
||||
*/
|
||||
async function getFiles(dir, extensions) {
|
||||
const files = await fs.promises.readdir(dir);
|
||||
const allFiles = await Promise.all(
|
||||
files.map(async file => {
|
||||
const filePath = path.join(dir, file);
|
||||
const stats = await fs.promises.stat(filePath);
|
||||
|
||||
if (stats.isDirectory()) {
|
||||
return getFiles(filePath, extensions);
|
||||
} else if (stats.isFile() && hasValidExtension(file, extensions)) {
|
||||
const slashPath = filePath.replace(/\\/g, '/');
|
||||
if (slashPath.includes('/node_modules/') || slashPath.includes('/build/') || slashPath.includes('/dist/')) {
|
||||
return null;
|
||||
}
|
||||
return filePath;
|
||||
}
|
||||
return null;
|
||||
})
|
||||
);
|
||||
|
||||
const validFiles = /** @type {string[]} */ (allFiles.flat().filter(file => file !== null));
|
||||
|
||||
return validFiles;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string | string[]} value
|
||||
*
|
||||
* @returns {string}
|
||||
*/
|
||||
function formatDefaultValue(value) {
|
||||
if (Array.isArray(value)) {
|
||||
return value.join(', ');
|
||||
}
|
||||
return value;
|
||||
}
|
||||
|
||||
const scriptDir = getScriptDir();
|
||||
/** @param {string} file
|
||||
*
|
||||
* @returns {string}
|
||||
*/
|
||||
function resolveFile(file) {
|
||||
if (path.isAbsolute(file)) {
|
||||
return file;
|
||||
}
|
||||
|
||||
return path.resolve(scriptDir, '..', '..', file);
|
||||
}
|
||||
|
||||
/** @param {string[]} dirs
|
||||
*
|
||||
* @returns {string[]}
|
||||
*/
|
||||
function resolveDirs(dirs) {
|
||||
return dirs.map(resolveFile);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string[]} extensions
|
||||
*
|
||||
* @returns {string[]}
|
||||
*/
|
||||
function resolveExtensions(extensions) {
|
||||
return extensions.map(ext => (ext.startsWith('.') ? ext : `.${ext}`));
|
||||
}
|
||||
|
||||
function getScriptDir() {
|
||||
if (require.main?.filename) {
|
||||
return path.dirname(require.main.filename);
|
||||
}
|
||||
|
||||
if ('pkg' in process && process.pkg) {
|
||||
return path.dirname(process.execPath);
|
||||
}
|
||||
|
||||
return __dirname;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} file
|
||||
*/
|
||||
function ensureFileDirExists(file) {
|
||||
const dir = path.dirname(file);
|
||||
|
||||
if (!fs.existsSync(dir)) {
|
||||
fs.mkdirSync(dir, { recursive: true });
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {Record<string, string>} existingTranslations - Previously extracted translations
|
||||
* @param {Record<string, string>} newTranslations - Newly extracted translations
|
||||
* @returns {{ added: string[], removed: string[], updated: string[] }} Translation changes
|
||||
*/
|
||||
const getTranslationChanges = (existingTranslations, newTranslations) => {
|
||||
const existingKeys = new Set(Object.keys(existingTranslations || {}));
|
||||
const newKeys = new Set(Object.keys(newTranslations));
|
||||
|
||||
const added = [...newKeys].filter(key => !existingKeys.has(key));
|
||||
const removed = [...existingKeys].filter(key => !newKeys.has(key));
|
||||
const updated = [...newKeys].filter(
|
||||
key => existingKeys.has(key) && existingTranslations[key] !== newTranslations[key]
|
||||
);
|
||||
|
||||
return { added, removed, updated };
|
||||
};
|
||||
|
||||
function getDefaultTranslations() {
|
||||
return getLanguageTranslations(defaultLanguage);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} language
|
||||
*
|
||||
* @returns {Record<string, string>}
|
||||
*/
|
||||
function getLanguageTranslations(language) {
|
||||
const file = resolveFile(`translations/${language}.json`);
|
||||
const content = fs.readFileSync(file, 'utf-8');
|
||||
|
||||
return JSON.parse(content);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} language
|
||||
* @param {Record<string, string>} translations
|
||||
*/
|
||||
function setLanguageTranslations(language, translations) {
|
||||
const file = resolveFile(`translations/${language}.json`);
|
||||
const sorted = sortJsonKeysAlphabetically(translations);
|
||||
|
||||
fs.writeFileSync(file, JSON.stringify(sorted, null, 2));
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} language
|
||||
* @param {Record<string, string>} newTranslations
|
||||
*/
|
||||
function updateLanguageTranslations(language, newTranslations) {
|
||||
const translations = getLanguageTranslations(language);
|
||||
const updatedTranslations = { ...translations, ...newTranslations };
|
||||
const sorted = sortJsonKeysAlphabetically(updatedTranslations);
|
||||
|
||||
setLanguageTranslations(language, sorted);
|
||||
}
|
||||
|
||||
function getAllLanguages() {
|
||||
const dir = resolveFile('translations');
|
||||
|
||||
const files = fs.readdirSync(dir);
|
||||
const languages = files.filter(file => file.endsWith('.json')).map(file => file.replace('.json', ''));
|
||||
|
||||
return languages;
|
||||
}
|
||||
|
||||
function getAllNonDefaultLanguages() {
|
||||
return getAllLanguages().filter(language => language !== defaultLanguage);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
hasValidExtension,
|
||||
getFiles,
|
||||
formatDefaultValue,
|
||||
resolveFile,
|
||||
resolveDirs,
|
||||
resolveExtensions,
|
||||
ensureFileDirExists,
|
||||
getTranslationChanges,
|
||||
getDefaultTranslations,
|
||||
getLanguageTranslations,
|
||||
setLanguageTranslations,
|
||||
updateLanguageTranslations,
|
||||
getAllLanguages,
|
||||
getAllNonDefaultLanguages,
|
||||
};
|
||||
3
common/translations-cli/index.js
Normal file
3
common/translations-cli/index.js
Normal file
@@ -0,0 +1,3 @@
|
||||
const { program } = require('./program');
|
||||
|
||||
program.parse();
|
||||
190
common/translations-cli/program.js
Normal file
190
common/translations-cli/program.js
Normal file
@@ -0,0 +1,190 @@
|
||||
//@ts-check
|
||||
const fs = require('fs');
|
||||
const { program } = require('commander');
|
||||
const {
|
||||
resolveDirs,
|
||||
resolveExtensions,
|
||||
getTranslationChanges,
|
||||
setLanguageTranslations,
|
||||
getAllNonDefaultLanguages,
|
||||
updateLanguageTranslations,
|
||||
getDefaultTranslations,
|
||||
} = require('./helpers');
|
||||
const { extractAllTranslations } = require('./extract');
|
||||
const { getMissingTranslations } = require('./addMissing');
|
||||
const { defaultLanguage, defaultExtractConfig } = require('./constants');
|
||||
const { removeUnusedAllTranslations, removeUnusedForSignelLanguage } = require('./removeUnused');
|
||||
|
||||
/**
|
||||
* @typedef {import('./constants').ExtractConfig & { verbose?: boolean, ignoreUnused?: boolean }} ExtractOptions
|
||||
*/
|
||||
|
||||
program.name('dbgate-translations-cli').description('CLI tool for managing translation').version('1.0.0');
|
||||
|
||||
program
|
||||
.command('extract')
|
||||
.description('Extract translation keys from source files')
|
||||
.option('-d, --directories <directories...>', 'directories to search', defaultExtractConfig.directories)
|
||||
.option('-e, --extensions <extensions...>', 'file extensions to process', defaultExtractConfig.extensions)
|
||||
.option('-r, --ignoreUnused', 'Ignore unused keys in the output file')
|
||||
.option('-v, --verbose', 'verbose mode')
|
||||
.action(async (/** @type {ExtractOptions} */ options) => {
|
||||
try {
|
||||
const { directories, extensions, verbose, ignoreUnused } = options;
|
||||
|
||||
const resolvedRirectories = resolveDirs(directories);
|
||||
const resolvedExtensions = resolveExtensions(extensions);
|
||||
|
||||
const extractedTranslations = await extractAllTranslations(resolvedRirectories, resolvedExtensions);
|
||||
const defaultTranslations = getDefaultTranslations();
|
||||
|
||||
const { added, removed, updated } = getTranslationChanges(defaultTranslations, extractedTranslations);
|
||||
|
||||
console.log('\nTranslation changes:');
|
||||
console.log(`- Added: ${added.length} keys`);
|
||||
console.log(`- ${ignoreUnused ? 'Unused' : 'Removed'}: ${removed.length} keys`);
|
||||
console.log(`- Updated: ${updated.length} keys`);
|
||||
console.log(`- Total: ${Object.keys(extractedTranslations).length} keys`);
|
||||
|
||||
if (verbose) {
|
||||
if (added.length > 0) {
|
||||
console.log('\nNew keys:');
|
||||
added.forEach(key => console.log(` + ${key}`));
|
||||
}
|
||||
|
||||
if (removed.length > 0) {
|
||||
console.log('\nRemoved keys:');
|
||||
removed.forEach(key => console.log(` - ${key}`));
|
||||
}
|
||||
|
||||
if (updated.length > 0) {
|
||||
console.log('\nUpdated keys:');
|
||||
updated.forEach(key => {
|
||||
console.log(` ~ ${key}`);
|
||||
console.log(` Old: ${defaultLanguage[key]}`);
|
||||
console.log(` New: ${extractedTranslations[key]}`);
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
if (ignoreUnused) {
|
||||
console.log('New translations were saved. Unused keys are kept.\n');
|
||||
updateLanguageTranslations(defaultLanguage, extractedTranslations);
|
||||
|
||||
if (verbose) {
|
||||
console.log('\nUnused keys:');
|
||||
for (const key of removed) {
|
||||
console.log(`${key}: "${defaultTranslations[key]}"`);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
console.log('Unused keys were removed.\n');
|
||||
setLanguageTranslations(defaultLanguage, extractedTranslations);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
console.error('Error during extraction:', error.message);
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
|
||||
const ALL_LANGUAGES = 'all';
|
||||
|
||||
/**
|
||||
* @param {string} target
|
||||
*/
|
||||
function addMissingTranslations(target) {
|
||||
console.log(`Adding missing keys for language: ${target}`);
|
||||
const { result, stats } = getMissingTranslations(target);
|
||||
console.log(`Added: ${stats.added}, Removed: ${stats.removed}, Total: ${stats.newLength}`);
|
||||
setLanguageTranslations(target, result);
|
||||
console.log(`New translations for ${target} were saved.`);
|
||||
}
|
||||
|
||||
program
|
||||
.command('add-missing')
|
||||
.description('Add missing keys for a langauge to the translation file')
|
||||
.option('-t, --target <target>', 'language to add missing translations to', ALL_LANGUAGES)
|
||||
.action(options => {
|
||||
try {
|
||||
const { target } = options;
|
||||
const languages = getAllNonDefaultLanguages();
|
||||
|
||||
if (target === ALL_LANGUAGES) {
|
||||
console.log('Adding missing keys for all languages\n');
|
||||
for (const language of languages) {
|
||||
addMissingTranslations(language);
|
||||
console.log();
|
||||
}
|
||||
} else {
|
||||
addMissingTranslations(target);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
console.error('Error during add-missing:', error.message);
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
|
||||
program
|
||||
.command('remove-unused')
|
||||
.description('Remove unused keys from the translation files')
|
||||
.option('-t, --target <target>', 'language to add missing translations to', ALL_LANGUAGES)
|
||||
.action(async options => {
|
||||
try {
|
||||
const { target } = options;
|
||||
if (target === ALL_LANGUAGES) {
|
||||
console.log('Removing unused keys from all languages\n');
|
||||
await removeUnusedAllTranslations();
|
||||
} else {
|
||||
await removeUnusedForSignelLanguage(target);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
console.error('Error during add-missing:', error.message);
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
|
||||
program
|
||||
.command('check')
|
||||
.description('Check if there are multiple default values for the same key')
|
||||
.action(async () => {
|
||||
try {
|
||||
await extractAllTranslations(defaultExtractConfig.directories, defaultExtractConfig.extensions);
|
||||
console.log('No problems found while extracting translations.');
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
console.error('Error during check:', error.message);
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
|
||||
program
|
||||
.command('sort')
|
||||
.description('Sort translation files by keys')
|
||||
.action(() => {
|
||||
try {
|
||||
const languages = getAllNonDefaultLanguages();
|
||||
for (const language of languages) {
|
||||
const filePath = `./translations/${language}.json`;
|
||||
const content = fs.readFileSync(filePath, 'utf-8');
|
||||
const translations = JSON.parse(content);
|
||||
const sortedTranslations = {};
|
||||
Object.keys(translations)
|
||||
.sort()
|
||||
.forEach(key => {
|
||||
// @ts-ignore
|
||||
sortedTranslations[key] = translations[key];
|
||||
});
|
||||
fs.writeFileSync(filePath, JSON.stringify(sortedTranslations, null, 2), 'utf-8');
|
||||
console.log(`Sorted translations for language: ${language}`);
|
||||
}
|
||||
} catch (error) {
|
||||
console.error(error);
|
||||
console.error('Error during sort:', error.message);
|
||||
process.exit(1);
|
||||
}
|
||||
});
|
||||
|
||||
module.exports = { program };
|
||||
46
common/translations-cli/removeUnused.js
Normal file
46
common/translations-cli/removeUnused.js
Normal file
@@ -0,0 +1,46 @@
|
||||
// @ts-check
|
||||
const { defaultExtractConfig } = require('./constants');
|
||||
const { extractAllTranslations } = require('./extract');
|
||||
const { getLanguageTranslations, getAllLanguages, setLanguageTranslations } = require('./helpers');
|
||||
|
||||
const { directories, extensions } = defaultExtractConfig;
|
||||
|
||||
/**
|
||||
* @param {string} language
|
||||
* @param {Record<string, string>} source
|
||||
*/
|
||||
function getUsedTranslations(language, source) {
|
||||
const languageTranslations = getLanguageTranslations(language);
|
||||
|
||||
for (const key in languageTranslations) {
|
||||
if (!(key in source)) {
|
||||
delete languageTranslations[key];
|
||||
}
|
||||
}
|
||||
|
||||
return languageTranslations;
|
||||
}
|
||||
|
||||
async function removeUnusedAllTranslations() {
|
||||
const source = await extractAllTranslations(directories, extensions);
|
||||
const languages = getAllLanguages();
|
||||
|
||||
for (const language of languages) {
|
||||
const newTranslations = getUsedTranslations(language, source);
|
||||
setLanguageTranslations(language, newTranslations);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* @param {string} language
|
||||
*/
|
||||
async function removeUnusedForSignelLanguage(language) {
|
||||
const source = await extractAllTranslations(directories, extensions);
|
||||
const newTranslations = getUsedTranslations(language, source);
|
||||
setLanguageTranslations(language, newTranslations);
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
removeUnusedAllTranslations,
|
||||
removeUnusedForSignelLanguage,
|
||||
};
|
||||
24
common/translations-cli/sortJsonKeysAlphabetically.js
Normal file
24
common/translations-cli/sortJsonKeysAlphabetically.js
Normal file
@@ -0,0 +1,24 @@
|
||||
// @ts-check
|
||||
|
||||
/**
|
||||
* @param {object|string} json
|
||||
* @returns {object}
|
||||
*/
|
||||
function sortJsonKeysAlphabetically(json) {
|
||||
const obj = typeof json === 'string' ? JSON.parse(json) : json;
|
||||
|
||||
if (obj === null || typeof obj !== 'object' || Array.isArray(obj)) {
|
||||
return obj;
|
||||
}
|
||||
|
||||
const sortedObj = Object.keys(obj)
|
||||
.sort()
|
||||
.reduce((result, key) => {
|
||||
result[key] = obj[key];
|
||||
return result;
|
||||
}, {});
|
||||
|
||||
return sortedObj;
|
||||
}
|
||||
|
||||
module.exports = sortJsonKeysAlphabetically;
|
||||
133
common/translations-cli/translate.js
Normal file
133
common/translations-cli/translate.js
Normal file
@@ -0,0 +1,133 @@
|
||||
require('dotenv').config({ path: '.env.translation' });
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
const OpenAI = require('openai');
|
||||
|
||||
const client = new OpenAI({ apiKey: process.env.OPENAI_API_KEY });
|
||||
|
||||
const translationsDir = path.join(__dirname, '../../translations');
|
||||
const enFilePath = path.join(translationsDir, 'en.json');
|
||||
|
||||
const languageNames = {
|
||||
'cs.json': 'Czech',
|
||||
'de.json': 'German',
|
||||
'es.json': 'Spanish',
|
||||
'fr.json': 'French',
|
||||
'it.json': 'Italian',
|
||||
'ja.json': 'Japanese',
|
||||
'ko.json': 'Korean',
|
||||
'pt.json': 'Portuguese',
|
||||
'sk.json': 'Slovak',
|
||||
'zh.json': 'Chinese'
|
||||
};
|
||||
|
||||
// Read source (english)
|
||||
const enTranslations = JSON.parse(fs.readFileSync(enFilePath, 'utf8'));
|
||||
const enKeys = Object.keys(enTranslations);
|
||||
|
||||
// Get all translation files
|
||||
const translationFiles = fs.readdirSync(translationsDir)
|
||||
.filter(file => file.endsWith('.json') && file !== 'en.json')
|
||||
.sort();
|
||||
|
||||
console.log(`Found ${enKeys.length} keys in en.json\n`);
|
||||
console.log('='.repeat(80));
|
||||
|
||||
async function translateMissingIds({file, translations, missingIds}){
|
||||
const languageName = languageNames[file];
|
||||
if (!languageName) {
|
||||
console.log(`No language name mapping for file: ${file}`);
|
||||
return;
|
||||
}
|
||||
|
||||
// Build object with only missing translations
|
||||
const needed = {};
|
||||
missingIds.forEach(key => {
|
||||
needed[key] = enTranslations[key];
|
||||
});
|
||||
|
||||
// Get all existing translations as style examples
|
||||
const existingTranslations = {};
|
||||
Object.keys(translations).forEach(key => {
|
||||
if (translations[key] && !translations[key].startsWith('***')) {
|
||||
existingTranslations[key] = {
|
||||
en: enTranslations[key],
|
||||
translated: translations[key]
|
||||
};
|
||||
}
|
||||
});
|
||||
|
||||
const prompt = `You are a professional translator for DbGate, a database management application.
|
||||
|
||||
Translate the following English UI strings to ${languageName}.
|
||||
|
||||
IMPORTANT RULES:
|
||||
1. Preserve ALL placeholders exactly as they appear: {plugin}, {columnNumber}, {0}, {1}, etc.
|
||||
2. Maintain technical terminology appropriately for database software
|
||||
3. Match the translation style, tone, and formality of the existing translations shown below
|
||||
4. Keep the same level of brevity or verbosity as the existing translations
|
||||
5. Return ONLY valid JSON - no markdown, no explanations, no code blocks
|
||||
6. Use the same keys as provided
|
||||
|
||||
EXISTING TRANSLATIONS (for style reference):
|
||||
${JSON.stringify(existingTranslations, null, 2)}
|
||||
|
||||
STRINGS TO TRANSLATE:
|
||||
${JSON.stringify(needed, null, 2)}
|
||||
|
||||
Return format: {"key": "translated value", ...}`;
|
||||
|
||||
const response = await client.chat.completions.create({
|
||||
model: 'gpt-5.1',
|
||||
messages: [
|
||||
{ role: 'system', content: 'You are a professional translator specializing in software localization. Match the style and tone of existing translations. Return only valid JSON.' },
|
||||
{ role: 'user', content: prompt }
|
||||
],
|
||||
temperature: 0.2
|
||||
});
|
||||
|
||||
let translatedJson = response.choices[0].message.content.trim();
|
||||
|
||||
// Remove markdown code blocks if present
|
||||
translatedJson = translatedJson.replace(/^```json\n?/, '').replace(/\n?```$/, '');
|
||||
|
||||
return JSON.parse(translatedJson);
|
||||
}
|
||||
|
||||
(async () => {
|
||||
for (const file of translationFiles) {
|
||||
const filePath = path.join(translationsDir, file);
|
||||
const translations = JSON.parse(fs.readFileSync(filePath, 'utf8'));
|
||||
|
||||
const missingIds = enKeys.filter(key => !translations.hasOwnProperty(key) || (typeof translations[key] === 'string' && translations[key].startsWith('***')));
|
||||
|
||||
|
||||
console.log(`\n${file.toUpperCase()}`);
|
||||
console.log('-'.repeat(80));
|
||||
|
||||
if (missingIds.length === 0) {
|
||||
console.log('✓ All translations complete!');
|
||||
continue;
|
||||
} else {
|
||||
console.log(`Found ${missingIds.length} untranslated IDs\n`);
|
||||
}
|
||||
|
||||
const newTranslations = await translateMissingIds({file, translations, missingIds});
|
||||
|
||||
if (!newTranslations) {
|
||||
console.log(`Skipping file due to translation error: ${file}`);
|
||||
continue;
|
||||
}
|
||||
|
||||
for (const [key, value] of Object.entries(newTranslations)) {
|
||||
translations[key] = value;
|
||||
console.log(`Translated: ${key} => ${value}`);
|
||||
}
|
||||
|
||||
fs.writeFileSync(filePath, JSON.stringify(translations, null, 2) + '\n', 'utf8');
|
||||
console.log(`\n✓ Updated translations written to ${file}`);
|
||||
}
|
||||
|
||||
console.log('\n' + '='.repeat(80));
|
||||
console.log('Translation complete!\n');
|
||||
})();
|
||||
@@ -4,6 +4,7 @@ const volatilePackages = [
|
||||
'@clickhouse/client',
|
||||
'bson', // this package is already bundled and is used in mongodb
|
||||
'mongodb',
|
||||
'mongodb-old',
|
||||
'mongodb-client-encryption',
|
||||
'tedious',
|
||||
'msnodesqlv8',
|
||||
@@ -14,12 +15,16 @@ const volatilePackages = [
|
||||
'ioredis',
|
||||
'node-redis-dump2',
|
||||
'better-sqlite3',
|
||||
'libsql',
|
||||
'@azure/cosmos',
|
||||
'@aws-sdk/rds-signer',
|
||||
'activedirectory2',
|
||||
'axios',
|
||||
'ssh2',
|
||||
'wkx',
|
||||
'@duckdb/node-api',
|
||||
'@mongosh/browser-runtime-electron',
|
||||
'@mongosh/service-provider-node-driver',
|
||||
];
|
||||
|
||||
module.exports = volatilePackages;
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# this compose file is for testing purposes only
|
||||
# use it for testing docker containsers built on local machine
|
||||
version: "3"
|
||||
version: '3'
|
||||
services:
|
||||
dbgate:
|
||||
build: docker
|
||||
@@ -15,31 +15,31 @@ services:
|
||||
|
||||
volumes:
|
||||
- dbgate-data:/root/.dbgate
|
||||
|
||||
|
||||
# environment:
|
||||
# WEB_ROOT: /dbgate
|
||||
|
||||
# CONNECTIONS: mssql
|
||||
# LABEL_mssql: MS Sql
|
||||
# SERVER_mssql: mssql
|
||||
# USER_mssql: sa
|
||||
# PORT_mssql: 1433
|
||||
# PASSWORD_mssql: Pwd2020Db
|
||||
# ENGINE_mssql: mssql@dbgate-plugin-mssql
|
||||
# proxy:
|
||||
# # image: nginx
|
||||
# build: test/nginx
|
||||
# ports:
|
||||
# - 8082:80
|
||||
# CONNECTIONS: mssql
|
||||
# LABEL_mssql: MS Sql
|
||||
# SERVER_mssql: mssql
|
||||
# USER_mssql: sa
|
||||
# PORT_mssql: 1433
|
||||
# PASSWORD_mssql: Pwd2020Db
|
||||
# ENGINE_mssql: mssql@dbgate-plugin-mssql
|
||||
proxy:
|
||||
# image: nginx
|
||||
build: test/nginx
|
||||
ports:
|
||||
- 8082:80
|
||||
|
||||
# volumes:
|
||||
# - /home/jena/test/chinook:/mnt/sqt
|
||||
# environment:
|
||||
# CONNECTIONS: sqlite
|
||||
volumes:
|
||||
- /home/jena/test/chinook:/mnt/sqt
|
||||
environment:
|
||||
CONNECTIONS: sqlite
|
||||
|
||||
# LABEL_sqlite: sqt
|
||||
# FILE_sqlite: /mnt/sqt/Chinook.db
|
||||
# ENGINE_sqlite: sqlite@dbgate-plugin-sqlite
|
||||
LABEL_sqlite: sqt
|
||||
FILE_sqlite: /mnt/sqt/Chinook.db
|
||||
ENGINE_sqlite: sqlite@dbgate-plugin-sqlite
|
||||
|
||||
# mssql:
|
||||
# image: mcr.microsoft.com/mssql/server
|
||||
@@ -51,4 +51,5 @@ services:
|
||||
|
||||
volumes:
|
||||
dbgate-data:
|
||||
driver: local
|
||||
driver: local
|
||||
|
||||
|
||||
@@ -1,21 +1,12 @@
|
||||
FROM ubuntu:22.04
|
||||
FROM node:22
|
||||
|
||||
LABEL org.opencontainers.image.source="https://github.com/dbgate/dbgate"
|
||||
|
||||
RUN apt-get update && apt-get install -y \
|
||||
curl \
|
||||
gnupg \
|
||||
iputils-ping \
|
||||
iproute2 \
|
||||
unixodbc \
|
||||
gcc \
|
||||
g++ \
|
||||
make
|
||||
|
||||
RUN curl -fsSL https://deb.nodesource.com/gpgkey/nodesource.gpg.key | gpg --dearmor -o /usr/share/keyrings/nodesource-archive-keyring.gpg \
|
||||
&& echo "deb [signed-by=/usr/share/keyrings/nodesource-archive-keyring.gpg] https://deb.nodesource.com/node_18.x jammy main" | tee /etc/apt/sources.list.d/nodesource.list \
|
||||
&& echo "deb-src [signed-by=/usr/share/keyrings/nodesource-archive-keyring.gpg] https://deb.nodesource.com/node_18.x jammy main" | tee -a /etc/apt/sources.list.d/nodesource.list \
|
||||
&& apt-get update && apt-get install -y nodejs \
|
||||
&& rm -rf /var/lib/apt/lists/* \
|
||||
&& npm install -g yarn
|
||||
&& rm -rf /var/lib/apt/lists/*
|
||||
|
||||
WORKDIR /home/dbgate-docker
|
||||
|
||||
|
||||
@@ -1,5 +1,7 @@
|
||||
FROM node:18-alpine
|
||||
|
||||
LABEL org.opencontainers.image.source="https://github.com/dbgate/dbgate"
|
||||
|
||||
WORKDIR /home/dbgate-docker
|
||||
|
||||
RUN apk --no-cache upgrade \
|
||||
|
||||
9
e2e-tests/.localconfig.js
Normal file
9
e2e-tests/.localconfig.js
Normal file
@@ -0,0 +1,9 @@
|
||||
module.exports = {
|
||||
mysql: true,
|
||||
postgres: true,
|
||||
mssql: true,
|
||||
oracle: true,
|
||||
sqlite: true,
|
||||
mongo: true,
|
||||
dynamo: true,
|
||||
};
|
||||
75
e2e-tests/clearTestingData.js
Normal file
75
e2e-tests/clearTestingData.js
Normal file
@@ -0,0 +1,75 @@
|
||||
const path = require('path');
|
||||
const os = require('os');
|
||||
const fs = require('fs');
|
||||
|
||||
const baseDir = path.join(os.homedir(), '.dbgate');
|
||||
const testApiPidFile = path.join(__dirname, 'tmpdata', 'test-api.pid');
|
||||
const aigwmockPidFile = path.join(__dirname, 'tmpdata', 'aigwmock.pid');
|
||||
|
||||
function readProcessStartTime(pid) {
|
||||
if (process.platform === 'linux') {
|
||||
try {
|
||||
const stat = fs.readFileSync(`/proc/${pid}/stat`, 'utf-8');
|
||||
return stat.split(' ')[21] || null;
|
||||
} catch (err) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
function isPidStillOurs(meta) {
|
||||
if (!meta || !(meta.pid > 0)) return false;
|
||||
if (process.platform === 'linux' && meta.startTime) {
|
||||
const current = readProcessStartTime(meta.pid);
|
||||
return current === meta.startTime;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
function stopProcessByPidFile(pidFile) {
|
||||
if (!fs.existsSync(pidFile)) return;
|
||||
try {
|
||||
const content = fs.readFileSync(pidFile, 'utf-8').trim();
|
||||
let meta;
|
||||
try {
|
||||
meta = JSON.parse(content);
|
||||
} catch (_) {
|
||||
const pid = Number(content);
|
||||
meta = Number.isInteger(pid) && pid > 0 ? { pid } : null;
|
||||
}
|
||||
if (isPidStillOurs(meta)) {
|
||||
process.kill(meta.pid);
|
||||
}
|
||||
} catch (err) {
|
||||
// ignore stale PID files and dead processes
|
||||
}
|
||||
try {
|
||||
fs.unlinkSync(pidFile);
|
||||
} catch (err) {
|
||||
// ignore cleanup errors
|
||||
}
|
||||
}
|
||||
|
||||
function clearTestingData() {
|
||||
stopProcessByPidFile(testApiPidFile);
|
||||
stopProcessByPidFile(aigwmockPidFile);
|
||||
|
||||
if (fs.existsSync(path.join(baseDir, 'connections-e2etests.jsonl'))) {
|
||||
fs.unlinkSync(path.join(baseDir, 'connections-e2etests.jsonl'));
|
||||
}
|
||||
if (fs.existsSync(path.join(baseDir, 'settings-e2etests.json'))) {
|
||||
fs.unlinkSync(path.join(baseDir, 'settings-e2etests.json'));
|
||||
}
|
||||
if (fs.existsSync(path.join(baseDir, 'files-e2etests'))) {
|
||||
fs.rmdirSync(path.join(baseDir, 'files-e2etests'), { recursive: true });
|
||||
}
|
||||
if (fs.existsSync(path.join(baseDir, 'archive-e2etests'))) {
|
||||
fs.rmdirSync(path.join(baseDir, 'archive-e2etests'), { recursive: true });
|
||||
}
|
||||
if (fs.existsSync(path.join(__dirname, 'tmpdata', 'my_guitar_shop.db'))) {
|
||||
fs.unlinkSync(path.join(__dirname, 'tmpdata', 'my_guitar_shop.db'));
|
||||
}
|
||||
}
|
||||
|
||||
clearTestingData();
|
||||
@@ -17,6 +17,11 @@ staticClients:
|
||||
enablePasswordDB: true
|
||||
staticPasswords:
|
||||
- email: "test@example.com"
|
||||
emailVerified: true
|
||||
hash: "$2y$10$JcmlXnV1y7.egUdKwYNbseOnqYVIGc323gtvvHh4ZuSPZB30veYZy"
|
||||
username: "test"
|
||||
userID: "1234"
|
||||
allowedScopes:
|
||||
- openid
|
||||
- email
|
||||
- profile
|
||||
|
||||
@@ -1,20 +1,29 @@
|
||||
const { defineConfig } = require('cypress');
|
||||
const killPort = require('kill-port');
|
||||
const { clearTestingData } = require('./e2eTestTools');
|
||||
const waitOn = require('wait-on');
|
||||
const { exec } = require('child_process');
|
||||
const fs = require('fs');
|
||||
const path = require('path');
|
||||
|
||||
module.exports = defineConfig({
|
||||
e2e: {
|
||||
// baseUrl: 'http://localhost:3000',
|
||||
// trashAssetsBeforeRuns: false,
|
||||
chromeWebSecurity: false,
|
||||
reporter: process.env.CI ? 'mocha-reporter-gha' : 'spec',
|
||||
|
||||
setupNodeEvents(on, config) {
|
||||
// implement node event listeners here
|
||||
|
||||
on('before:spec', async details => {
|
||||
await clearTestingData();
|
||||
// console.log('********************* DETAILS *********************', JSON.stringify(details));
|
||||
|
||||
if (config.isInteractive) {
|
||||
await killPort(3000);
|
||||
try {
|
||||
await killPort(3000);
|
||||
} catch (e) {
|
||||
console.warn('Error killing process on port 3000:', e.message);
|
||||
}
|
||||
switch (details.fileName) {
|
||||
case 'add-connection':
|
||||
serverProcess = exec('yarn start:add-connection');
|
||||
@@ -28,6 +37,27 @@ module.exports = defineConfig({
|
||||
case 'browse-data':
|
||||
serverProcess = exec('yarn start:browse-data');
|
||||
break;
|
||||
case 'rest':
|
||||
serverProcess = exec('yarn start:rest');
|
||||
break;
|
||||
case 'team':
|
||||
serverProcess = exec('yarn start:team');
|
||||
break;
|
||||
case 'multi-sql':
|
||||
serverProcess = exec('yarn start:multi-sql');
|
||||
break;
|
||||
case 'cloud':
|
||||
serverProcess = exec('yarn start:cloud');
|
||||
break;
|
||||
case 'charts':
|
||||
serverProcess = exec('yarn start:charts');
|
||||
break;
|
||||
case 'redis':
|
||||
serverProcess = exec('yarn start:redis');
|
||||
break;
|
||||
case 'ai-chat':
|
||||
serverProcess = exec('yarn start:ai-chat');
|
||||
break;
|
||||
}
|
||||
|
||||
await waitOn({ resources: ['http://localhost:3000'] });
|
||||
@@ -39,6 +69,17 @@ module.exports = defineConfig({
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
on('after:screenshot', details => {
|
||||
if (details.name) {
|
||||
fs.renameSync(details.path, path.resolve(__dirname, `screenshots/${details.name}.png`));
|
||||
}
|
||||
});
|
||||
// on('task', {
|
||||
// renameFile({ from, to }) {
|
||||
// fs.renameSync(from, to);
|
||||
// },
|
||||
// });
|
||||
},
|
||||
},
|
||||
});
|
||||
|
||||
@@ -1,24 +1,34 @@
|
||||
const path = require('path');
|
||||
|
||||
beforeEach(() => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.viewport(1200, 900);
|
||||
});
|
||||
|
||||
describe('Add connection', () => {
|
||||
it('successfully loads', () => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.contains('Database not selected');
|
||||
});
|
||||
|
||||
it('adds connection', () => {
|
||||
cy.visit('http://localhost:3000');
|
||||
// cy.get('[data-testid=ConnectionList_buttonNewConnection]').click();
|
||||
cy.get('[data-testid=ConnectionDriverFields_connectionType]').select('MySQL');
|
||||
cy.themeshot('new-connection');
|
||||
cy.get('[data-testid=ConnectionDriverFields_user]').clear().type('root');
|
||||
cy.get('[data-testid=ConnectionDriverFields_password]').clear().type('Pwd2020Db');
|
||||
cy.get('[data-testid=ConnectionDriverFields_port]').clear().type('16004');
|
||||
cy.get('[data-testid=ConnectionDriverFields_displayName]').clear().type('test-mysql-1');
|
||||
|
||||
// test connection
|
||||
cy.get('[data-testid=ConnectionTab_buttonTest]').click();
|
||||
cy.testid('ConnectionTab_buttonTest').click();
|
||||
cy.contains('Connected:');
|
||||
|
||||
cy.testid('ConnectionTab_tabSshTunnel').click();
|
||||
cy.testid('ConnectionTab_tabControlContent').themeshot('connection-sshtunnel-window', { padding: 50 });
|
||||
|
||||
cy.testid('ConnectionTab_tabSsl').click();
|
||||
cy.testid('ConnectionTab_tabControlContent').themeshot('connection-ssl-window', { padding: 50 });
|
||||
|
||||
// save and connect
|
||||
cy.get('[data-testid=ConnectionTab_buttonSave]').click();
|
||||
cy.get('[data-testid=ConnectionTab_buttonConnect]').click();
|
||||
@@ -26,7 +36,6 @@ describe('Add connection', () => {
|
||||
});
|
||||
|
||||
it('SSH connection - user + password', () => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.contains('Connections');
|
||||
|
||||
// cy.realPress('F1');
|
||||
@@ -44,14 +53,13 @@ describe('Add connection', () => {
|
||||
cy.get('[data-testid=ConnectionSshTunnelFields_useSshTunnel]').check();
|
||||
cy.get('[data-testid=ConnectionSshTunnelFields_sshLogin]').clear().type('root');
|
||||
cy.get('[data-testid=ConnectionSshTunnelFields_sshPassword]').clear().type('root');
|
||||
cy.get('[data-testid=ConnectionSshTunnelFields_sshPort]').clear().type('16006');
|
||||
cy.get('[data-testid=ConnectionSshTunnelFields_sshPort]').clear().type('16012');
|
||||
cy.get('[data-testid=ConnectionTab_buttonSave]').click();
|
||||
cy.get('[data-testid=ConnectionTab_buttonConnect]').click();
|
||||
cy.contains('performance_schema');
|
||||
});
|
||||
|
||||
it('SSH connection - keyfile', () => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.contains('Connections');
|
||||
|
||||
// cy.realPress('F1');
|
||||
@@ -80,8 +88,6 @@ describe('Add connection', () => {
|
||||
});
|
||||
|
||||
it('ask password - mysql', () => {
|
||||
cy.visit('http://localhost:3000');
|
||||
|
||||
cy.get('[data-testid=ConnectionList_buttonNewConnection]').click();
|
||||
cy.get('[data-testid=ConnectionDriverFields_connectionType]').select('MySQL');
|
||||
cy.get('[data-testid=ConnectionDriverFields_user]').clear().type('root');
|
||||
@@ -106,4 +112,36 @@ describe('Add connection', () => {
|
||||
|
||||
cy.contains('performance_schema');
|
||||
});
|
||||
|
||||
it('Plugin tab', () => {
|
||||
cy.testid('WidgetIconPanel_menu').click();
|
||||
cy.contains('Tools').click();
|
||||
cy.contains('Manage plugins').click();
|
||||
cy.contains('dbgate-plugin-theme-total-white').click();
|
||||
// text from plugin markdown
|
||||
cy.contains('Total white theme');
|
||||
// wait for load logos
|
||||
cy.wait(2000);
|
||||
cy.themeshot('view-plugin-tab');
|
||||
});
|
||||
|
||||
it('export connections', () => {
|
||||
cy.testid('WidgetIconPanel_menu').click();
|
||||
cy.contains('Tools').click();
|
||||
cy.contains('Export connections').click();
|
||||
cy.themeshot('export-connections');
|
||||
});
|
||||
|
||||
it('configure LLM provider', () => {
|
||||
cy.testid('WidgetIconPanel_settings').click();
|
||||
cy.contains('Settings').click();
|
||||
cy.contains('AI').click();
|
||||
cy.testid('AiSupportedProvidersInfo_add_OpenRouter').click();
|
||||
cy.testid('AiProviderCard_apikey_OpenRouter').clear().type('xxx');
|
||||
cy.testid('AiProviderCard_testButton_OpenRouter').click();
|
||||
cy.testid('AiProviderCard_statusValid_OpenRouter').should('exist');
|
||||
cy.testid('AiProviderCard_editButton_OpenRouter').click();
|
||||
cy.wait(1000);
|
||||
cy.themeshot('llm-providers-settings');
|
||||
});
|
||||
});
|
||||
|
||||
105
e2e-tests/cypress/e2e/ai-chat.cy.js
Normal file
105
e2e-tests/cypress/e2e/ai-chat.cy.js
Normal file
@@ -0,0 +1,105 @@
|
||||
Cypress.on('uncaught:exception', err => {
|
||||
if (err.message.includes("Failed to execute 'importScripts' on 'WorkerGlobalScope'")) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.viewport(1250, 900);
|
||||
});
|
||||
|
||||
describe('Database Chat (MySQL)', () => {
|
||||
it('Database chat - chart of popular genres', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('TabsPanel_buttonNewObject').click();
|
||||
cy.testid('NewObjectModal_databaseChat').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').realType('show me chart of most popular genres');
|
||||
cy.get('body').realPress('Enter');
|
||||
cy.testid('DatabaseChatTab_executeAllQueries', { timeout: 30000 }).click();
|
||||
cy.testid('chart-canvas', { timeout: 30000 }).should($c =>
|
||||
expect($c[0].toDataURL()).to.match(/^data:image\/png;base64/)
|
||||
);
|
||||
cy.themeshot('database-chat-chart');
|
||||
});
|
||||
|
||||
it('Database chat - find most popular artist', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('TabsPanel_buttonNewObject').click();
|
||||
cy.testid('NewObjectModal_databaseChat').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').realType('find most popular artist');
|
||||
cy.get('body').realPress('Enter');
|
||||
cy.testid('DatabaseChatTab_executeAllQueries', { timeout: 30000 }).click();
|
||||
cy.contains('Iron Maiden', { timeout: 30000 });
|
||||
cy.themeshot('database-chat-popular-artist');
|
||||
});
|
||||
});
|
||||
|
||||
describe('GraphQL Chat', () => {
|
||||
it('GraphQL chat - list users', () => {
|
||||
cy.contains('REST GraphQL').click();
|
||||
cy.testid('TabsPanel_buttonNewObject').click();
|
||||
cy.testid('NewObjectModal_graphqlChat').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').realType('list all users');
|
||||
cy.get('body').realPress('Enter');
|
||||
cy.testid('GraphQlChatTab_executeAllQueries', { timeout: 30000 }).click();
|
||||
cy.contains('users', { timeout: 30000 });
|
||||
cy.themeshot('graphql-chat-list-users');
|
||||
});
|
||||
|
||||
it('GraphQL chat - product categories chart', () => {
|
||||
cy.contains('REST GraphQL').click();
|
||||
cy.testid('TabsPanel_buttonNewObject').click();
|
||||
cy.testid('NewObjectModal_graphqlChat').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').realType('show me a chart of product categories');
|
||||
cy.get('body').realPress('Enter');
|
||||
cy.testid('GraphQlChatTab_executeAllQueries', { timeout: 30000 }).click();
|
||||
cy.testid('chart-canvas', { timeout: 30000 }).should($c =>
|
||||
expect($c[0].toDataURL()).to.match(/^data:image\/png;base64/)
|
||||
);
|
||||
cy.themeshot('graphql-chat-categories-chart');
|
||||
});
|
||||
|
||||
it('GraphQL chat - find most expensive product', () => {
|
||||
cy.contains('REST GraphQL').click();
|
||||
cy.testid('TabsPanel_buttonNewObject').click();
|
||||
cy.testid('NewObjectModal_graphqlChat').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').realType('find the most expensive product');
|
||||
cy.get('body').realPress('Enter');
|
||||
cy.testid('GraphQlChatTab_executeAllQueries', { timeout: 30000 }).click();
|
||||
cy.contains('products', { timeout: 30000 });
|
||||
cy.themeshot('graphql-chat-expensive-product');
|
||||
});
|
||||
|
||||
it('GraphQL chat - show all categories', () => {
|
||||
cy.contains('REST GraphQL').click();
|
||||
cy.testid('TabsPanel_buttonNewObject').click();
|
||||
cy.testid('NewObjectModal_graphqlChat').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').realType('show all categories');
|
||||
cy.get('body').realPress('Enter');
|
||||
cy.testid('GraphQlChatTab_executeAllQueries', { timeout: 30000 }).click();
|
||||
cy.contains('categories', { timeout: 30000 });
|
||||
cy.themeshot('graphql-chat-all-categories');
|
||||
});
|
||||
|
||||
it('Explain query error', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('TabsPanel_buttonNewObject').click();
|
||||
cy.testid('NewObjectModal_query').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').realType('select * from Invoice2');
|
||||
cy.contains('Execute').click();
|
||||
cy.testid('MessageViewRow-explainErrorButton-1').click();
|
||||
cy.testid('ChatCodeRenderer_useSqlButton', { timeout: 30000 });
|
||||
cy.themeshot('explain-query-error');
|
||||
});
|
||||
});
|
||||
@@ -1,9 +1,53 @@
|
||||
describe('Data browser data', () => {
|
||||
it('Load table data', () => {
|
||||
cy.visit('http://localhost:3000');
|
||||
Cypress.on('uncaught:exception', (err, runnable) => {
|
||||
// if the error message matches the one about WorkerGlobalScope importScripts
|
||||
if (err.message.includes("Failed to execute 'importScripts' on 'WorkerGlobalScope'")) {
|
||||
// return false to let Cypress know we intentionally want to ignore this error
|
||||
return false;
|
||||
}
|
||||
// otherwise let Cypress throw the error
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.viewport(1250, 900);
|
||||
});
|
||||
|
||||
describe('Data browser data', () => {
|
||||
it('Export window', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('Chinook').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Album').rightclick();
|
||||
cy.contains('Export').click();
|
||||
cy.contains('Export advanced').click();
|
||||
cy.wait(1000);
|
||||
// cy.testid('SourceTargetConfig_buttonCurrentArchive_target').click();
|
||||
// cy.testid('FormTablesSelect_buttonAll_tables').click();
|
||||
// cy.testid('SourceTargetConfig_tablesSelect_source').click();
|
||||
// cy.find('.listContainer').contains('Album').click();
|
||||
// cy.find('.listContainer').contains('Track').click();
|
||||
// cy.wait(4000);
|
||||
// cy.contains('All tables').click();
|
||||
cy.contains('Run').click();
|
||||
cy.contains('Finished job script');
|
||||
cy.contains('Album.csv');
|
||||
cy.testid('WidgetIconPanel_database').click();
|
||||
cy.themeshot('configure-export-csv');
|
||||
});
|
||||
|
||||
it('Data archive editor - macros', () => {
|
||||
cy.testid('WidgetIconPanel_archive').click();
|
||||
cy.contains('Album').click();
|
||||
cy.testid('DataGrid_itemFilters').click();
|
||||
cy.contains('Let There Be Rock').click();
|
||||
cy.contains('Out Of Exile').click({ shiftKey: true });
|
||||
cy.contains('Change text case').click();
|
||||
cy.contains('AUDIOSLAVE');
|
||||
cy.themeshot('data-archive-macros');
|
||||
});
|
||||
|
||||
it('Load table data', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Album').click();
|
||||
cy.contains('Let There Be Rock').click();
|
||||
cy.contains('Rows: 347');
|
||||
@@ -11,14 +55,12 @@ describe('Data browser data', () => {
|
||||
cy.contains('Aerosmith');
|
||||
});
|
||||
|
||||
it.only('Filter model', () => {
|
||||
cy.visit('http://localhost:3000');
|
||||
|
||||
it('Filter model', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('Chinook').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('SqlObjectList_search').clear().type('album');
|
||||
cy.contains('Tables (1/11)');
|
||||
cy.contains('347 rows, InnoDB');
|
||||
cy.contains('347 rows, 65.5 KB, InnoDB');
|
||||
cy.testid('SqlObjectList_searchMenuDropDown').click();
|
||||
cy.contains('Column name').click();
|
||||
cy.contains('Tables (2/11)');
|
||||
@@ -29,10 +71,8 @@ describe('Data browser data', () => {
|
||||
});
|
||||
|
||||
it('Show raw data', () => {
|
||||
cy.visit('http://localhost:3000');
|
||||
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('Chinook').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Album').rightclick();
|
||||
cy.contains('Open raw data').click();
|
||||
cy.contains('Let There Be Rock').click();
|
||||
@@ -40,4 +80,475 @@ describe('Data browser data', () => {
|
||||
cy.realPress(['Control', 'ArrowRight']);
|
||||
cy.contains('Aerosmith').should('not.exist');
|
||||
});
|
||||
|
||||
it('Data filter', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Album').click();
|
||||
|
||||
// hide what is not needed
|
||||
cy.testid('WidgetIconPanel_database').click();
|
||||
cy.testid('DataGrid_itemReferences').click();
|
||||
|
||||
cy.testid('DataFilterControl_input_Title').type('Rock{enter}');
|
||||
cy.contains('Rows: 7');
|
||||
cy.testid('DataFilterControl_input_AlbumId').type('>10xxx{enter}');
|
||||
cy.contains('Rows: 7');
|
||||
cy.testid('DataFilterControl_filtermenu_ArtistId').click();
|
||||
cy.themeshot('data-browser-filter');
|
||||
cy.testid('DataGridCore_button_clearFilters').click();
|
||||
cy.contains('Rows: 347');
|
||||
});
|
||||
|
||||
it('Data grid screenshots', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
|
||||
cy.contains('MyChinook').click();
|
||||
|
||||
cy.contains('Album').click();
|
||||
cy.testid('TabsPanel_pinTabButton').click();
|
||||
cy.contains('Genre').click();
|
||||
cy.testid('TabsPanel_pinTabButton').click();
|
||||
cy.contains('Playlist').click();
|
||||
cy.testid('TabsPanel_pinTabButton').click();
|
||||
|
||||
cy.contains('Postgres-connection').click();
|
||||
cy.contains('PgChinook').click();
|
||||
cy.contains('customer').click();
|
||||
cy.contains('Leonie').click();
|
||||
cy.themeshot('common-data-browser');
|
||||
|
||||
cy.contains('invoice').click();
|
||||
cy.contains('invoice_line (invoice_id)').click();
|
||||
cy.themeshot('data-browser-master-detail');
|
||||
|
||||
cy.contains('9, Place Louis Barthou').click();
|
||||
cy.contains('Switch to form').click();
|
||||
cy.contains('Switch to table'); // test that we are in form view
|
||||
cy.themeshot('data-browser-form-view');
|
||||
});
|
||||
|
||||
it('Column search', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Customer').click();
|
||||
cy.testid('ColumnManager_searchColumns').clear().type('name,id{enter}');
|
||||
cy.contains('Company').should('not.exist');
|
||||
cy.themeshot('data-browser-column-search');
|
||||
});
|
||||
|
||||
it('SQL Gen', () => {
|
||||
cy.contains('Postgres-connection').click();
|
||||
cy.contains('PgChinook').rightclick();
|
||||
cy.contains('SQL Generator').click();
|
||||
cy.contains('Check all').click();
|
||||
cy.themeshot('sql-generator');
|
||||
});
|
||||
|
||||
it('Macros in DB', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Customer').click();
|
||||
cy.contains('Leonie').click();
|
||||
cy.contains('Ramos').click({ shiftKey: true });
|
||||
cy.testid('DataGrid_itemColumns').click();
|
||||
cy.testid('DataGrid_itemFilters').click();
|
||||
cy.testid('DataGrid_itemReferences').click();
|
||||
cy.testid('DataGrid_itemMacros').click();
|
||||
cy.contains('Change text case').click();
|
||||
cy.contains('NIELSEN');
|
||||
cy.themeshot('data-browser-macros');
|
||||
});
|
||||
|
||||
it('Perspectives', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Artist').rightclick();
|
||||
cy.contains('Design perspective query').click();
|
||||
|
||||
cy.testid('PerspectiveNodeRow_check_Artist_Album').click();
|
||||
cy.testid('PerspectiveNodeRow_expand_Artist_Album').click();
|
||||
cy.testid('PerspectiveNodeRow_check_Artist_Album_Track').click();
|
||||
|
||||
// check track is loaded
|
||||
cy.contains('Put The Finger On You');
|
||||
|
||||
cy.themeshot('perspective-designer');
|
||||
});
|
||||
|
||||
it('Query editor - code completion', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Customer').rightclick();
|
||||
cy.contains('SQL template').click();
|
||||
cy.contains('CREATE TABLE').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').realPress('PageDown');
|
||||
cy.get('body').realType('select * from Album where Album.');
|
||||
// code completion
|
||||
cy.contains('ArtistId');
|
||||
cy.themeshot('query-editor-code-completion');
|
||||
});
|
||||
|
||||
it('Query editor - join wizard', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('TabsPanel_buttonNewObject').click();
|
||||
cy.testid('NewObjectModal_query').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').realType('select * from Invoice');
|
||||
cy.get('body').realPress('{enter}');
|
||||
cy.get('body').realPress(['Control', 'j']);
|
||||
// JOIN wizard
|
||||
cy.contains('INNER JOIN Customer ON Invoice.CustomerId = Customer.CustomerId');
|
||||
cy.themeshot('query-editor-join-wizard');
|
||||
});
|
||||
|
||||
it('Mongo query JSON data view', () => {
|
||||
cy.contains('Mongo-connection').click();
|
||||
cy.contains('MgChinook').click();
|
||||
cy.contains('Customer').click();
|
||||
cy.testid('DataFilterControl_input_CustomerId').type('<=10{enter}');
|
||||
// test filter
|
||||
cy.contains('Rows: 10');
|
||||
cy.contains('Helena').rightclick();
|
||||
cy.contains('Open query').click();
|
||||
cy.wait(1000);
|
||||
cy.contains('Execute').click();
|
||||
cy.testid('TabContent_1').contains('Leonie').rightclick();
|
||||
cy.contains('Show cell data').click();
|
||||
// test JSON view
|
||||
cy.contains('Country: "Germany"');
|
||||
cy.themeshot('mongo-query-json-view');
|
||||
});
|
||||
|
||||
it('SQL preview', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Customer').rightclick();
|
||||
cy.contains('Show SQL').click();
|
||||
// index should be part of create script
|
||||
cy.contains('CREATE INDEX `IFK_CustomerSupportRepId`');
|
||||
cy.themeshot('sql-preview-create-index');
|
||||
});
|
||||
|
||||
it('Query designer', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('WidgetIconPanel_file').click();
|
||||
cy.contains('customer').click();
|
||||
// cy.contains('left join').rightclick();
|
||||
cy.themeshot('query-designer');
|
||||
});
|
||||
|
||||
it('Database diagram', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('WidgetIconPanel_file').click();
|
||||
cy.contains('chinook-diagram').click();
|
||||
cy.testid('WidgetIconPanel_file').click();
|
||||
// check diagram is shown
|
||||
cy.contains('MediaTypeId');
|
||||
cy.themeshot('database-diagram');
|
||||
});
|
||||
|
||||
// it('Charts', () => {
|
||||
// cy.testid('WidgetIconPanel_file').click();
|
||||
// cy.contains('pie-chart').click();
|
||||
// cy.contains('line-chart').click();
|
||||
// cy.testid('TabsPanel_buttonSplit').click();
|
||||
// cy.testid('WidgetIconPanel_file').click();
|
||||
// cy.themeshot('view-split-charts');
|
||||
// });
|
||||
|
||||
it('Keyboard configuration', () => {
|
||||
cy.testid('WidgetIconPanel_settings').click();
|
||||
cy.contains('Keyboard shortcuts').click();
|
||||
cy.contains('dataForm.refresh').click();
|
||||
cy.testid('CommandModal_keyboardButton').click();
|
||||
cy.themeshot('keyboard-configuration');
|
||||
});
|
||||
|
||||
it('Command palette', () => {
|
||||
cy.contains('Connections');
|
||||
cy.testid('WidgetIconPanel_menu').click();
|
||||
cy.contains('Tools').click();
|
||||
cy.contains('Command palette').click();
|
||||
// cy.realPress('F1');
|
||||
cy.realPress('PageDown');
|
||||
cy.realPress('PageDown');
|
||||
cy.testid('CommandPalette_main').themeshot('command-palette', { padding: 50 });
|
||||
});
|
||||
|
||||
it('About window', () => {
|
||||
cy.contains('Connections');
|
||||
cy.testid('WidgetIconPanel_menu').click();
|
||||
cy.contains('Help').click();
|
||||
cy.contains('About').click();
|
||||
cy.testid('ModalBase_window').themeshot('about-window', { padding: 50 });
|
||||
});
|
||||
|
||||
it('Show map', () => {
|
||||
cy.contains('Postgres-connection').click();
|
||||
cy.contains('PgGeoData').click();
|
||||
cy.contains('cities').click();
|
||||
// clicking column header doesn't work, TODO FIX in app!!!
|
||||
// cy.contains('location').click();
|
||||
cy.contains('14.2').click();
|
||||
cy.contains('13.9').click({ shiftKey: true });
|
||||
cy.testid('WidgetIconPanel_database').click();
|
||||
cy.testid('TableDataTab_toggleCellDataView').click();
|
||||
cy.wait(2000);
|
||||
cy.themeshot('cell-map-view');
|
||||
});
|
||||
|
||||
it('Search in connections', () => {
|
||||
cy.testid('ConnectionList_search').type('my');
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
|
||||
cy.testid('SqlObjectList_search').type('album');
|
||||
cy.contains('Album').click();
|
||||
cy.testid('SqlObjectList_searchMenuDropDown').click();
|
||||
cy.contains('Column name').click();
|
||||
cy.themeshot('search-in-connections');
|
||||
});
|
||||
|
||||
it('Edit mongo data JSON', () => {
|
||||
// TODO FIX: Missing button+ctx menu Revert all changes, missing button+ctx menu add document
|
||||
// TODO: Dark theme - not visible changed and deleted document
|
||||
cy.contains('Mongo-connection').click();
|
||||
cy.contains('MgChinook').click();
|
||||
cy.contains('Customer').rightclick();
|
||||
cy.contains('Open JSON').click();
|
||||
cy.contains('Leonie').rightclick();
|
||||
cy.contains('Edit document').click();
|
||||
// cy.focused()
|
||||
// .type('{downArrow}'.repeat(11))
|
||||
// .type('{rightarrow}'.repeat(14))
|
||||
// .type('{del}'.repeat(7)) // 4*delete
|
||||
// .type('Italy'); // type "Italy"
|
||||
|
||||
Array.from({ length: 11 }).forEach(() => cy.realPress('ArrowDown'));
|
||||
Array.from({ length: 14 }).forEach(() => cy.realPress('ArrowRight'));
|
||||
Array.from({ length: 7 }).forEach(() => cy.realPress('Delete'));
|
||||
cy.realType('Italy');
|
||||
cy.testid('EditJsonModal_saveButton').click();
|
||||
|
||||
cy.contains('Helena').rightclick();
|
||||
cy.contains('Delete document').click();
|
||||
cy.contains('Save').click();
|
||||
cy.themeshot('save-changes-mongodb');
|
||||
});
|
||||
|
||||
it('Mongo JSON cell view', () => {
|
||||
// TODO FIX: Auto expand cell view
|
||||
cy.contains('Mongo-connection').click();
|
||||
cy.contains('MgRivers').click();
|
||||
cy.contains('RiverInfo').click();
|
||||
cy.testid('ColumnManagerRow_expand_countries').click();
|
||||
cy.testid('ColumnManagerRow_checkbox_countries.0').click();
|
||||
cy.testid('ColumnManagerRow_checkbox_countries.1').click();
|
||||
cy.testid('ColumnManagerRow_checkbox__id').click();
|
||||
cy.testid('DataFilterControl_input_countries.1').type('EXISTS{enter}');
|
||||
cy.contains('Austria').click();
|
||||
cy.testid('CollectionDataTab_toggleCellDataView').click();
|
||||
cy.themeshot('mongodb-json-cell-view');
|
||||
});
|
||||
|
||||
it('Table structure editor', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Customer').rightclick();
|
||||
cy.contains('Open structure').click();
|
||||
cy.contains('varchar(40)');
|
||||
cy.themeshot('table-structure-editor');
|
||||
cy.contains('EmployeeId').click();
|
||||
cy.contains('Ref column - Employee');
|
||||
cy.themeshot('foreign-key-editor');
|
||||
});
|
||||
|
||||
it('Compare database', () => {
|
||||
// TODO FIX: SQL diff is not dark in dark mode
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('MyChangedChinook').rightclick();
|
||||
cy.contains('Compare with').click();
|
||||
cy.testid('CompareModelTab_gridObjects_Customer_Customer').click();
|
||||
cy.testid('WidgetIconPanel_database').click();
|
||||
cy.testid('CompareModelTab_tabDdl').click();
|
||||
cy.themeshot('compare-database-models');
|
||||
cy.contains('Settings').click();
|
||||
cy.testid('CompareModelTab_tabOperations').click();
|
||||
cy.themeshot('compare-database-settings');
|
||||
});
|
||||
|
||||
it('Modify data', () => {
|
||||
// TODO FIX: delete references cascade not working
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Employee').click();
|
||||
cy.contains('Rows: 8');
|
||||
|
||||
cy.contains('Laura').click();
|
||||
cy.contains('Laura').click();
|
||||
cy.get('body').realType('Jane');
|
||||
// cy.contains('Peacock').click();
|
||||
// cy.testid('TableDataTab_deleteSelectedRows').click();
|
||||
cy.contains('King').click();
|
||||
cy.testid('TableDataTab_deleteSelectedRows').click();
|
||||
cy.testid('TableDataTab_insertNewRow').click();
|
||||
cy.get('body').realType('Novak');
|
||||
cy.get('body').realPress('{enter}');
|
||||
cy.realPress(['ArrowRight']);
|
||||
cy.get('body').realType('Karel');
|
||||
cy.testid('TableDataTab_save').click();
|
||||
cy.contains('INSERT INTO `Employee`');
|
||||
cy.contains("SET `FirstName`='Jane'");
|
||||
cy.contains('DELETE FROM `Employee`');
|
||||
cy.themeshot('data-browser-save-changes');
|
||||
|
||||
// cy.testid('ConfirmSqlModal_okButton').click();
|
||||
// cy.contains('Cannot delete or update a parent row')
|
||||
// cy.testid('ConfirmSqlModal_okButton').click();
|
||||
|
||||
// cy.testid('TableDataTab_save').click();
|
||||
// cy.testid('ConfirmSqlModal_deleteReferencesCascade').click();
|
||||
// cy.testid('ConfirmSqlModal_okButton').click();
|
||||
|
||||
cy.testid('ConfirmSqlModal_okButton').click();
|
||||
|
||||
cy.contains('Novak');
|
||||
cy.contains('Rows: 8');
|
||||
});
|
||||
|
||||
it('Export menu', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Album').click();
|
||||
cy.testid('DataFilterControl_input_ArtistId').type('22{enter}');
|
||||
// cy.contains('Presence').rightclick();
|
||||
// cy.contains('Coda').rightclick();
|
||||
// cy.testid('DropDownMenu-container-0').contains('Export').click();
|
||||
cy.contains('Export').click();
|
||||
// cy.wait(1000);
|
||||
cy.themeshot('data-browser-export-menu');
|
||||
});
|
||||
|
||||
it('MySQL native backup', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').rightclick();
|
||||
cy.contains('Create database backup').click();
|
||||
cy.contains('Customer');
|
||||
cy.themeshot('mysql-backup-configuration');
|
||||
});
|
||||
|
||||
it('View table YAML model', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').rightclick();
|
||||
cy.contains('Export DB model').click();
|
||||
cy.testid('ExportDbModelModal_archiveFolder').select('(Create new)');
|
||||
cy.testid('InputTextModal_value').clear().type('test-model');
|
||||
cy.testid('InputTextModal_ok').click();
|
||||
cy.testid('ModalBase_window').themeshot('export-database-model-window', { padding: 50 });
|
||||
cy.testid('ExportDbModelModal_exportButton').click();
|
||||
cy.contains('Album').click();
|
||||
cy.contains('autoIncrement');
|
||||
cy.themeshot('database-model-table-yaml');
|
||||
});
|
||||
|
||||
it('Data replicator', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('WidgetIconPanel_archive').click();
|
||||
cy.contains('chinook-archive').rightclick();
|
||||
cy.contains('Data deployer').click();
|
||||
cy.contains('Dry run').click();
|
||||
cy.testid('TableControl_row_2_checkbox').click();
|
||||
cy.testid('TableControl_row_2').click();
|
||||
cy.testid('DataDeploySettings_find_checkbox').click();
|
||||
cy.testid('DataDeploySettings_create_checkbox').click();
|
||||
cy.testid('WidgetIconPanel_archive').click();
|
||||
cy.themeshot('data-deployer');
|
||||
cy.testid('DataDeployTab_importIntoDb').click();
|
||||
cy.testid('ConfirmDataDeployModal_okButton').click();
|
||||
cy.contains('Replicated Customer, inserted 59 rows');
|
||||
cy.contains('Finished job script');
|
||||
cy.testid('DataDeployTab_importIntoDb').click();
|
||||
cy.themeshot('data-replicator');
|
||||
});
|
||||
|
||||
it('Form cell view', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Invoice').click();
|
||||
cy.contains('Rows: 412');
|
||||
cy.get('[data-row="0"][data-col="header"]').click();
|
||||
cy.get('[data-row="1"][data-col="header"]').click();
|
||||
cy.get('[data-row="0"][data-col="header"]').click();
|
||||
cy.contains('Autodetect - Form');
|
||||
cy.themeshot('form-cell-view');
|
||||
});
|
||||
|
||||
it('Group by', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Album').click();
|
||||
cy.testid('WidgetIconPanel_database').click();
|
||||
cy.testid('ColumnHeaderControl_dropdown_ArtistId').click();
|
||||
cy.contains('Group by').click();
|
||||
cy.testid('ColumnHeaderControl_dropdown_Title').first().click();
|
||||
cy.themeshot('data-browser-group-by');
|
||||
});
|
||||
|
||||
it('Filter by expanded column', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Album').click();
|
||||
cy.testid('WidgetIconPanel_database').click();
|
||||
cy.testid('ColumnManagerRow_expand_ArtistId').click();
|
||||
cy.testid('ColumnManagerRow_checkbox_ArtistId.Name').click();
|
||||
cy.testid('ColumnManagerRow_checkbox_ArtistId').click();
|
||||
cy.testid('DataFilterControl_input_ArtistId.Name').type('mich{enter}');
|
||||
cy.themeshot('data-browser-filter-by-expanded');
|
||||
});
|
||||
|
||||
it('DynamoDB', () => {
|
||||
cy.contains('Dynamo-connection').click();
|
||||
cy.contains('us-east-1').click();
|
||||
|
||||
cy.contains('Album').click();
|
||||
cy.contains('Pearl Jam').click();
|
||||
cy.themeshot('dynamodb-table-data');
|
||||
cy.contains('Switch to JSON').click();
|
||||
cy.themeshot('dynamodb-json-view');
|
||||
|
||||
cy.contains('Customer').click();
|
||||
cy.testid('DataFilterControl_input_CustomerId').type('<=10{enter}');
|
||||
cy.contains('Rows: 10');
|
||||
cy.wait(1000);
|
||||
cy.contains('Helena').click().rightclick();
|
||||
cy.contains('Show cell data').click();
|
||||
cy.contains('City: "Prague"');
|
||||
cy.themeshot('dynamodb-query-json-view');
|
||||
|
||||
cy.contains('Switch to JSON').click();
|
||||
cy.contains('Leonie').rightclick();
|
||||
cy.contains('Edit document').click();
|
||||
|
||||
Array.from({ length: 11 }).forEach(() => cy.realPress('ArrowDown'));
|
||||
Array.from({ length: 14 }).forEach(() => cy.realPress('ArrowRight'));
|
||||
Array.from({ length: 7 }).forEach(() => cy.realPress('Delete'));
|
||||
cy.realType('Italy');
|
||||
cy.testid('EditJsonModal_saveButton').click();
|
||||
|
||||
cy.contains('Helena').rightclick();
|
||||
cy.contains('Delete document').click();
|
||||
cy.contains('Save').click();
|
||||
cy.themeshot('dynamodb-save-changes');
|
||||
|
||||
cy.testid('SqlObjectList_addButton').click();
|
||||
cy.contains('New collection/container').click();
|
||||
cy.themeshot('dynamodb-new-collection');
|
||||
});
|
||||
});
|
||||
|
||||
236
e2e-tests/cypress/e2e/charts.cy.js
Normal file
236
e2e-tests/cypress/e2e/charts.cy.js
Normal file
@@ -0,0 +1,236 @@
|
||||
Cypress.on('uncaught:exception', (err, runnable) => {
|
||||
// if the error message matches the one about WorkerGlobalScope importScripts
|
||||
if (err.message.includes("Failed to execute 'importScripts' on 'WorkerGlobalScope'")) {
|
||||
// return false to let Cypress know we intentionally want to ignore this error
|
||||
return false;
|
||||
}
|
||||
// otherwise let Cypress throw the error
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.viewport(1250, 900);
|
||||
});
|
||||
|
||||
describe('Charts', () => {
|
||||
it('Auto detect chart', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('charts_sample').click();
|
||||
cy.testid('WidgetIconPanel_file').click();
|
||||
cy.contains('chart1').click();
|
||||
cy.contains('department_name');
|
||||
// cy.testid('QueryTab_executeButton').click();
|
||||
// cy.testid('QueryTab_openChartButton').click();
|
||||
cy.testid('chart-canvas').should($c => expect($c[0].toDataURL()).to.match(/^data:image\/png;base64/));
|
||||
cy.themeshot('choose-detected-chart');
|
||||
});
|
||||
|
||||
it('Two line charts', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('TabsPanel_buttonNewObject').click();
|
||||
cy.testid('NewObjectModal_query').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').realType('SELECT InvoiceDate, Total from Invoice');
|
||||
cy.contains('Execute').click();
|
||||
cy.contains('Open chart').click();
|
||||
cy.testid('chart-canvas').should($c => expect($c[0].toDataURL()).to.match(/^data:image\/png;base64/));
|
||||
cy.themeshot('two-line-charts');
|
||||
});
|
||||
|
||||
it('Invoice naive autodetection', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('TabsPanel_buttonNewObject').click();
|
||||
cy.testid('NewObjectModal_query').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').realType('SELECT * from Invoice');
|
||||
cy.contains('Execute').click();
|
||||
cy.contains('Open chart').click();
|
||||
cy.testid('chart-canvas').should($c => expect($c[0].toDataURL()).to.match(/^data:image\/png;base64/));
|
||||
cy.themeshot('chart-naive-autodetection');
|
||||
});
|
||||
|
||||
it('Invoice by country - grouped chart', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('TabsPanel_buttonNewObject').click();
|
||||
cy.testid('NewObjectModal_query').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').realType(
|
||||
"SELECT InvoiceDate, Total, BillingCountry from Invoice where BillingCountry in ('USA', 'Canada', 'Brazil', 'France', 'Germany')"
|
||||
);
|
||||
cy.contains('Execute').click();
|
||||
cy.contains('Open chart').click();
|
||||
cy.testid('ChartSelector_chart_1').click();
|
||||
cy.testid('JslChart_customizeButton').click();
|
||||
|
||||
cy.testid('chart-canvas').should($c => expect($c[0].toDataURL()).to.match(/^data:image\/png;base64/));
|
||||
cy.themeshot('chart-grouped-autodetected');
|
||||
|
||||
cy.testid('ChartDefinitionEditor_chartTypeSelect').select('Bar');
|
||||
cy.testid('ChartDefinitionEditor_xAxisTransformSelect').select('Date (Year)');
|
||||
|
||||
cy.testid('chart-canvas').should($c => expect($c[0].toDataURL()).to.match(/^data:image\/png;base64/));
|
||||
cy.themeshot('chart-grouped-bars');
|
||||
});
|
||||
|
||||
it('Public Knowledge base - show chart', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('WidgetIconPanel_cloud-public').click();
|
||||
cy.testid('public-cloud-file-tag-mysql/folder-MySQL/tag-premium/top-tables-row-count.sql').click();
|
||||
cy.testid('chart-canvas').should($c => expect($c[0].toDataURL()).to.match(/^data:image\/png;base64/));
|
||||
cy.themeshot('public-knowledge-base-tables-sizes');
|
||||
});
|
||||
|
||||
it('Auto detect chart', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Invoice').rightclick();
|
||||
cy.contains('SQL template').click();
|
||||
cy.contains('SELECT').click();
|
||||
cy.testid('QueryTab_detectChartButton').click();
|
||||
cy.testid('QueryTab_executeButton').click();
|
||||
cy.contains('Chart 1').click();
|
||||
cy.testid('ChartSelector_chart_0').click();
|
||||
cy.testid('JslChart_customizeButton').click();
|
||||
cy.testid('ChartDefinitionEditor_chartTypeSelect').select('Bar');
|
||||
cy.testid('ChartDefinitionEditor_chartTypeSelect').select('Line');
|
||||
cy.testid('chart-canvas').should($c => expect($c[0].toDataURL()).to.match(/^data:image\/png;base64/));
|
||||
cy.themeshot('query-result-chart');
|
||||
});
|
||||
|
||||
it('New object window', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Invoice').click();
|
||||
cy.testid('WidgetIconPanel_addButton').click();
|
||||
cy.contains('Compare database');
|
||||
cy.themeshot('new-object-window');
|
||||
});
|
||||
|
||||
it('Switch language', () => {
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.testid('WidgetIconPanel_settings').click();
|
||||
|
||||
cy.testid('SettingsModal_languageSelect').select('Deutsch');
|
||||
cy.testid('ConfirmModal_okButton').click();
|
||||
cy.testid('WidgetIconPanel_settings').click();
|
||||
cy.contains('Sprache');
|
||||
cy.themeshot('switch-language-de');
|
||||
|
||||
cy.testid('SettingsModal_languageSelect').select('Français');
|
||||
cy.testid('ConfirmModal_okButton').click();
|
||||
cy.testid('WidgetIconPanel_settings').click();
|
||||
cy.contains('Langue');
|
||||
cy.themeshot('switch-language-fr');
|
||||
|
||||
cy.testid('SettingsModal_languageSelect').select('Español');
|
||||
cy.testid('ConfirmModal_okButton').click();
|
||||
cy.testid('WidgetIconPanel_settings').click();
|
||||
cy.contains('Idioma');
|
||||
cy.themeshot('switch-language-es');
|
||||
|
||||
cy.testid('SettingsModal_languageSelect').select('Čeština');
|
||||
cy.testid('ConfirmModal_okButton').click();
|
||||
cy.testid('WidgetIconPanel_settings').click();
|
||||
cy.contains('Jazyk');
|
||||
cy.themeshot('switch-language-cs');
|
||||
|
||||
cy.testid('SettingsModal_languageSelect').select('中文');
|
||||
cy.testid('ConfirmModal_okButton').click();
|
||||
cy.testid('WidgetIconPanel_settings').click();
|
||||
cy.contains('语言');
|
||||
cy.themeshot('switch-language-zh');
|
||||
|
||||
cy.testid('SettingsModal_languageSelect').select('English');
|
||||
cy.testid('ConfirmModal_okButton').click();
|
||||
cy.testid('WidgetIconPanel_settings');
|
||||
});
|
||||
|
||||
it('Settings', () => {
|
||||
cy.testid('WidgetIconPanel_settings').click();
|
||||
cy.themeshot('app-settings-general');
|
||||
|
||||
cy.contains('Behaviour').click();
|
||||
cy.themeshot('app-settings-behaviour');
|
||||
cy.get('[data-testid=BehaviourSettings_useTabPreviewMode]').uncheck();
|
||||
|
||||
// SQL Editor
|
||||
cy.contains('SQL Editor').click();
|
||||
cy.get('[data-testid=SQLEditorSettings_sqlCommandsCase]').select('lowerCase');
|
||||
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('charts_sample').click();
|
||||
cy.contains('employees').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Customer').rightclick();
|
||||
cy.contains('SQL template').click();
|
||||
cy.contains('CREATE TABLE').click();
|
||||
cy.contains('create table');
|
||||
|
||||
// Default Actions
|
||||
cy.testid('WidgetIconPanel_settings').click();
|
||||
cy.contains('Default Actions').click();
|
||||
cy.get('[data-testid=DefaultActionsSettings_useLastUsedAction]').uncheck();
|
||||
|
||||
// Themes
|
||||
cy.contains('Themes').click();
|
||||
cy.themeshot('app-settings-themes');
|
||||
cy.testid('ThemeSkeleton-Dark-built-in').click();
|
||||
cy.testid('ThemeSkeleton-Light-built-in').click();
|
||||
|
||||
// General
|
||||
cy.contains(/^General$/).click();
|
||||
cy.contains('charts_sample');
|
||||
cy.get('[data-testid=GeneralSettings_lockedDatabaseMode]').check();
|
||||
cy.contains('Connections').click();
|
||||
cy.contains('charts_sample').should('not.exist');
|
||||
|
||||
// Datagrid
|
||||
cy.contains('Data grid').click();
|
||||
cy.get('[data-testid=DataGridSettings_showHintColumns]').uncheck();
|
||||
cy.wait(500);
|
||||
cy.contains('Album').click();
|
||||
cy.contains('AC/DC').should('not.exist');
|
||||
|
||||
cy.testid('WidgetIconPanel_settings').click();
|
||||
cy.contains('Keyboard shortcuts').click();
|
||||
cy.themeshot('app-settings-keyboard-shortcuts');
|
||||
cy.contains('Chart').click();
|
||||
cy.testid('CommandModal_keyboardButton').click();
|
||||
cy.realPress(['Control', 'g']);
|
||||
cy.realPress('Enter');
|
||||
cy.contains('OK').click();
|
||||
cy.contains('Ctrl+G');
|
||||
|
||||
cy.contains('AI').click();
|
||||
cy.themeshot('app-settings-ai');
|
||||
cy.get('[data-testid=AISettings_addProviderButton]').click();
|
||||
cy.contains('Provider 1');
|
||||
cy.get('[data-testid=AiProviderCard_removeButton]').click();
|
||||
cy.contains('Are you sure you want to remove Provider 1 provider?');
|
||||
cy.contains('OK').click();
|
||||
cy.contains('Provider 1').should('not.exist');
|
||||
});
|
||||
|
||||
it('Custom theme', () => {
|
||||
cy.testid('WidgetIconPanel_settings').click();
|
||||
cy.contains('Themes').click();
|
||||
cy.testid('ThemeSettings-themeList').contains('Green-Sample').click();
|
||||
cy.testid('WidgetIconPanel_file').click();
|
||||
cy.themeshot('green-theme', { keepTheme: true });
|
||||
|
||||
cy.testid('ThemeSettings-themeList').contains('Solarized-light').click();
|
||||
cy.testid('WidgetIconPanel_database').click();
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.contains('MyChinook').click();
|
||||
cy.contains('Customer').click();
|
||||
cy.contains('Leonie');
|
||||
cy.testid('WidgetIconPanel_file').click();
|
||||
|
||||
cy.themeshot('solarized-theme', { keepTheme: true });
|
||||
});
|
||||
});
|
||||
56
e2e-tests/cypress/e2e/cloud.cy.js
Normal file
56
e2e-tests/cypress/e2e/cloud.cy.js
Normal file
@@ -0,0 +1,56 @@
|
||||
Cypress.on('uncaught:exception', (err, runnable) => {
|
||||
// if the error message matches the one about WorkerGlobalScope importScripts
|
||||
if (err.message.includes("Failed to execute 'importScripts' on 'WorkerGlobalScope'")) {
|
||||
// return false to let Cypress know we intentionally want to ignore this error
|
||||
return false;
|
||||
}
|
||||
// otherwise let Cypress throw the error
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.viewport(1250, 900);
|
||||
});
|
||||
|
||||
describe('Cloud tests', () => {
|
||||
it('Private cloud', () => {
|
||||
cy.testid('WidgetIconPanel_cloudAccount');
|
||||
cy.window().then(win => {
|
||||
win.__loginToCloudTest('dbgate.test@gmail.com');
|
||||
});
|
||||
cy.contains('dbgate.test@gmail.com');
|
||||
|
||||
// cy.testid('WidgetIconPanel_cloudAccount').click();
|
||||
|
||||
// cy.origin('https://identity.dbgate.io', () => {
|
||||
// cy.contains('Sign in with GitHub').click();
|
||||
// });
|
||||
|
||||
// cy.origin('https://github.com', () => {
|
||||
// cy.get('#login_field').type('dbgatetest');
|
||||
// cy.get('#password').type('Pwd2020Db');
|
||||
// cy.get('input[type="submit"]').click();
|
||||
// });
|
||||
|
||||
// cy.wait(3000);
|
||||
|
||||
// cy.location('origin').then(origin => {
|
||||
// if (origin === 'https://github.com') {
|
||||
// // Still on github.com → an authorization step is waiting
|
||||
// cy.origin('https://github.com', () => {
|
||||
// // Try once, don't wait the full default timeout
|
||||
// cy.get('button[data-octo-click="oauth_application_authorization"]', { timeout: 500, log: false }).click(); // if the button exists it will be clicked
|
||||
// // if not, the short timeout elapses and we drop out
|
||||
// });
|
||||
// } else {
|
||||
// // Already back on localhost – nothing to authorize
|
||||
// cy.log('OAuth redirect skipped the Authorize screen');
|
||||
// }
|
||||
// });
|
||||
|
||||
cy.contains('Testing Connections').rightclick();
|
||||
cy.contains('Administrate access').click();
|
||||
cy.contains('User email');
|
||||
cy.themeshot('administer-shared-folder');
|
||||
});
|
||||
});
|
||||
267
e2e-tests/cypress/e2e/multi-sql.cy.js
Normal file
267
e2e-tests/cypress/e2e/multi-sql.cy.js
Normal file
@@ -0,0 +1,267 @@
|
||||
const localconfig = require('../../.localconfig');
|
||||
const { formatQueryWithoutParams } = require('dbgate-tools');
|
||||
|
||||
global.DBGATE_PACKAGES = {
|
||||
'dbgate-tools': require('dbgate-tools'),
|
||||
'dbgate-sqltree': require('dbgate-sqltree'),
|
||||
'dbgate-datalib': require('dbgate-datalib'),
|
||||
};
|
||||
|
||||
function requireEngineDriver(engine) {
|
||||
const [shortName, packageName] = engine.split('@');
|
||||
const plugin = require(`../../../plugins/${packageName}/src/frontend/index`);
|
||||
if (plugin.drivers) {
|
||||
return plugin.drivers.find(x => x.engine == engine);
|
||||
}
|
||||
throw new Error(`Could not find engine driver ${engine}`);
|
||||
}
|
||||
|
||||
Cypress.on('uncaught:exception', (err, runnable) => {
|
||||
// if the error message matches the one about WorkerGlobalScope importScripts
|
||||
if (err.message.includes("Failed to execute 'importScripts' on 'WorkerGlobalScope'")) {
|
||||
// return false to let Cypress know we intentionally want to ignore this error
|
||||
return false;
|
||||
}
|
||||
// otherwise let Cypress throw the error
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.viewport(1250, 900);
|
||||
});
|
||||
|
||||
function multiTest(testProps, testDefinition) {
|
||||
if (localconfig.mysql) {
|
||||
it('MySQL', () => testDefinition('MySql-connection', 'my_guitar_shop', 'mysql@dbgate-plugin-mysql'));
|
||||
}
|
||||
if (localconfig.postgres) {
|
||||
it('Postgres', () => testDefinition('Postgres-connection', 'my_guitar_shop', 'postgres@dbgate-plugin-postgres'));
|
||||
}
|
||||
if (localconfig.mssql) {
|
||||
it('Mssql', () => testDefinition('Mssql-connection', 'my_guitar_shop', 'mssql@dbgate-plugin-mssql'));
|
||||
}
|
||||
if (localconfig.oracle) {
|
||||
it('Oracle', () =>
|
||||
testDefinition('Oracle-connection', 'C##MY_GUITAR_SHOP', 'oracle@dbgate-plugin-oracle', {
|
||||
implicitTransactions: true,
|
||||
}));
|
||||
}
|
||||
if (localconfig.sqlite) {
|
||||
it('Sqlite', () => testDefinition('Sqlite-connection', null, 'sqlite@dbgate-plugin-sqlite'));
|
||||
}
|
||||
if (localconfig.mongo && !testProps.skipMongo) {
|
||||
it('MongoDB', () => testDefinition('Mongo-connection', 'my_guitar_shop', 'mongo@dbgate-plugin-mongo'));
|
||||
}
|
||||
if (localconfig.dynamo && !testProps.skipMongo) {
|
||||
it('DynamoDB', () => testDefinition('Dynamo-connection', null, 'dynamodb@dbgate-plugin-dynamodb'));
|
||||
}
|
||||
}
|
||||
|
||||
describe('Transactions', () => {
|
||||
multiTest({ skipMongo: true }, (connectionName, databaseName, engine, options = {}) => {
|
||||
const driver = requireEngineDriver(engine);
|
||||
const implicitTransactions = options.implicitTransactions ?? false;
|
||||
|
||||
cy.contains(connectionName).click();
|
||||
if (databaseName) cy.contains(databaseName).click();
|
||||
cy.testid('TabsPanel_buttonNewObject').click();
|
||||
cy.testid('NewObjectModal_query').click();
|
||||
cy.wait(1000);
|
||||
cy.get('body').type(
|
||||
formatQueryWithoutParams(driver, "INSERT INTO ~categories (~category_id, ~category_name) VALUES (5, 'test');")
|
||||
);
|
||||
|
||||
// rollback
|
||||
if (!implicitTransactions) {
|
||||
cy.testid('QueryTab_beginTransactionButton').click();
|
||||
cy.contains('Begin Transaction finished');
|
||||
}
|
||||
cy.testid('QueryTab_executeButton').click();
|
||||
cy.contains('Query execution finished');
|
||||
cy.testid('QueryTab_rollbackTransactionButton').click();
|
||||
cy.contains('Rollback Transaction finished');
|
||||
|
||||
// should contain 4 rows
|
||||
cy.testid('SqlObjectList_container').contains('categories').click();
|
||||
cy.contains('Guitars').click();
|
||||
cy.testid('TableDataTab_refreshGrid').click();
|
||||
cy.contains('Rows: 4');
|
||||
|
||||
// commit
|
||||
cy.contains('Query #1').click();
|
||||
if (!implicitTransactions) {
|
||||
cy.testid('QueryTab_beginTransactionButton').click();
|
||||
cy.contains('Begin Transaction finished');
|
||||
}
|
||||
cy.testid('QueryTab_executeButton').click();
|
||||
cy.contains('Query execution finished');
|
||||
cy.testid('QueryTab_commitTransactionButton').click();
|
||||
cy.contains('Commit Transaction finished');
|
||||
|
||||
// should contain 5 rows
|
||||
cy.testid('SqlObjectList_container').contains('categories').click();
|
||||
cy.contains('Guitars').click();
|
||||
cy.testid('TableDataTab_refreshGrid').click();
|
||||
cy.contains('Rows: 5');
|
||||
});
|
||||
});
|
||||
|
||||
describe('Backup table', () => {
|
||||
multiTest({ skipMongo: true }, (connectionName, databaseName, engine, options = {}) => {
|
||||
const implicitTransactions = options.implicitTransactions ?? false;
|
||||
|
||||
cy.contains(connectionName).click();
|
||||
if (databaseName) cy.contains(databaseName).click();
|
||||
cy.contains('addresses').rightclick();
|
||||
cy.contains('Create table backup').click();
|
||||
cy.testid('ConfirmSqlModal_okButton').click();
|
||||
cy.testid('app-object-group-items-table-backups').contains('addresses').click();
|
||||
cy.contains('Rows: 12').should('be.visible');
|
||||
cy.testid('app-object-group-items-tables').contains('addresses').click();
|
||||
|
||||
cy.contains('Ridgewood').click();
|
||||
cy.testid('TableDataTab_deleteSelectedRows').click();
|
||||
cy.contains('Rosewood').click();
|
||||
cy.testid('TableDataTab_deleteSelectedRows').click();
|
||||
|
||||
cy.contains('Vermont').click();
|
||||
cy.get('body').realType('Wermont{enter}');
|
||||
|
||||
cy.testid('TableDataTab_insertNewRow').click();
|
||||
cy.get('body').realType('Modranska{enter}');
|
||||
cy.realPress(['ArrowLeft']);
|
||||
cy.realPress(['ArrowLeft']);
|
||||
cy.get('body').realType('13{enter}');
|
||||
cy.realPress(['ArrowRight']);
|
||||
cy.get('body').realType('1{enter}');
|
||||
cy.realPress(['ArrowRight']);
|
||||
cy.realPress(['ArrowRight']);
|
||||
cy.realPress(['ArrowRight']);
|
||||
cy.get('body').realType('Prague{enter}');
|
||||
cy.realPress(['ArrowRight']);
|
||||
cy.get('body').realType('CZ{enter}');
|
||||
cy.realPress(['ArrowRight']);
|
||||
cy.get('body').realType('10000{enter}');
|
||||
cy.realPress(['ArrowRight']);
|
||||
cy.get('body').realType('111222333{enter}');
|
||||
|
||||
cy.testid('TableDataTab_save').click();
|
||||
cy.testid('ConfirmSqlModal_okButton', { timeout: 10000 }).click();
|
||||
cy.contains('Rows: 11').should('be.visible'); // wait for save
|
||||
|
||||
cy.testid('app-object-group-items-table-backups').contains('addresses').rightclick();
|
||||
cy.contains('restore script').click();
|
||||
cy.contains('UPDATE'); // wait for query
|
||||
cy.testid('QueryTab_executeButton').click();
|
||||
cy.contains('Query execution finished');
|
||||
|
||||
if (implicitTransactions) {
|
||||
cy.testid('QueryTab_commitTransactionButton').click();
|
||||
cy.contains('Commit Transaction finished');
|
||||
}
|
||||
|
||||
cy.realPress('F1');
|
||||
cy.realType('Close all');
|
||||
cy.realPress('Enter');
|
||||
// cy.testid('CloseTabModal_buttonConfirm').click();
|
||||
cy.wait(1000);
|
||||
|
||||
cy.testid('app-object-group-items-tables').contains('addresses', { timeout: 10000 }).click();
|
||||
|
||||
// check whether data was successfully restored
|
||||
cy.contains('Rows: 12').should('be.visible');
|
||||
cy.contains('Ridgewood');
|
||||
cy.contains('Vermont');
|
||||
});
|
||||
});
|
||||
|
||||
describe('Truncate table', () => {
|
||||
multiTest({ skipMongo: true }, (connectionName, databaseName, engine, options = {}) => {
|
||||
cy.contains(connectionName).click();
|
||||
if (databaseName) cy.contains(databaseName).click();
|
||||
cy.contains('order_items').rightclick();
|
||||
cy.contains('Truncate table').click();
|
||||
cy.testid('ConfirmSqlModal_okButton').click();
|
||||
cy.contains('order_items').click();
|
||||
cy.contains('No rows loaded').should('be.visible');
|
||||
});
|
||||
});
|
||||
|
||||
describe('Drop table', () => {
|
||||
multiTest({ skipMongo: true }, (connectionName, databaseName, engine, options = {}) => {
|
||||
cy.contains(connectionName).click();
|
||||
if (databaseName) cy.contains(databaseName).click();
|
||||
cy.contains('order_items').rightclick();
|
||||
cy.contains('Drop table').click();
|
||||
cy.testid('ConfirmSqlModal_okButton').click();
|
||||
cy.contains('order_items').should('not.exist');
|
||||
});
|
||||
});
|
||||
|
||||
describe('Import CSV', () => {
|
||||
multiTest({}, (connectionName, databaseName, engine, options = {}) => {
|
||||
cy.contains(connectionName).click();
|
||||
if (databaseName) cy.contains(databaseName).click();
|
||||
cy.testid('ConnectionList_container')
|
||||
.contains(databaseName ?? connectionName)
|
||||
.rightclick();
|
||||
cy.contains('Import').click();
|
||||
|
||||
cy.get('input[type=file]').selectFile('cypress/fixtures/customers-20.csv', { force: true });
|
||||
cy.testid('ImportExportConfigurator_tableMappingSection').contains('customers-20');
|
||||
cy.testid('ImportExportTab_preview_content').contains('50ddd99fAdF48B3').should('be.visible');
|
||||
|
||||
cy.testid('ImportExportTab_executeButton').click();
|
||||
cy.testid('ImportExportConfigurator_tableMappingSection').contains('20 rows written').should('be.visible');
|
||||
|
||||
cy.testid('SqlObjectList_refreshButton').click();
|
||||
cy.testid('DatabasStatusMenu_refreshFull').click();
|
||||
// cy.contains('Refresh DB structure (incremental)').click();
|
||||
cy.testid('SqlObjectList_container').contains('customers-20').click();
|
||||
cy.contains('Rows: 20').should('be.visible');
|
||||
|
||||
// cy.get('table tbody tr')
|
||||
// .eq(1)
|
||||
// .within(() => {
|
||||
// cy.get('select').select('Append data');
|
||||
// });
|
||||
});
|
||||
});
|
||||
|
||||
describe('Import CSV - source error', () => {
|
||||
multiTest({}, (connectionName, databaseName, engine, options = {}) => {
|
||||
cy.contains(connectionName).click();
|
||||
if (databaseName) cy.contains(databaseName).click();
|
||||
cy.testid('ConnectionList_container')
|
||||
.contains(databaseName ?? connectionName)
|
||||
.rightclick();
|
||||
cy.contains('Import').click();
|
||||
|
||||
cy.get('input[type=file]').selectFile('cypress/fixtures/customers-20-err.csv', { force: true });
|
||||
cy.contains('customers-20-err');
|
||||
cy.testid('ImportExportTab_preview_content').contains('Invalid Closing Quote').should('be.visible');
|
||||
|
||||
cy.testid('ImportExportTab_executeButton').click();
|
||||
cy.testid('ImportExportConfigurator_errorInfoIcon_customers-20-err', { timeout: 10000 }).click();
|
||||
|
||||
cy.testid('ErrorMessageModal_message').contains('Invalid Closing Quote').should('be.visible');
|
||||
});
|
||||
});
|
||||
|
||||
describe('Import CSV - target error', () => {
|
||||
multiTest({}, (connectionName, databaseName, engine, options = {}) => {
|
||||
cy.contains(connectionName).click();
|
||||
if (databaseName) cy.contains(databaseName).click();
|
||||
cy.testid('ConnectionList_container')
|
||||
.contains(databaseName ?? connectionName)
|
||||
.rightclick();
|
||||
cy.contains('Import').click();
|
||||
|
||||
cy.get('input[type=file]').selectFile('cypress/fixtures/customers-20.csv', { force: true });
|
||||
cy.contains('customers-20');
|
||||
cy.testid('ImportExportConfigurator_targetName_customers-20').clear().type('system."]`');
|
||||
cy.testid('ImportExportTab_executeButton').click();
|
||||
cy.testid('ImportExportConfigurator_errorInfoIcon_customers-20', { timeout: 10000 }).click();
|
||||
cy.testid('ErrorMessageModal_message').should('be.visible');
|
||||
});
|
||||
});
|
||||
@@ -45,36 +45,36 @@ describe('Run as portal', () => {
|
||||
cy.get('[data-testid=InputTextModal_ok]').click();
|
||||
});
|
||||
|
||||
it('Import Chinook MySQL', () => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.contains('MySql-connection').click();
|
||||
cy.get('[data-testid=DatabaseAppObject_Chinook]').rightclick();
|
||||
cy.contains('Chinook').rightclick();
|
||||
cy.contains('Restore/import SQL dump').click();
|
||||
cy.get('#uploadFileButton').selectFile('data/chinook-mysql.sql', { force: true });
|
||||
cy.wait(500);
|
||||
cy.get('[data-testid=ImportDatabaseDumpModal_runImport]').click();
|
||||
cy.contains('Importing database');
|
||||
cy.contains('Finished job script');
|
||||
cy.get('[data-testid=RunScriptModal_close]').click();
|
||||
cy.contains('Chinook').click();
|
||||
cy.contains('Album');
|
||||
});
|
||||
// it('Import Chinook MySQL', () => {
|
||||
// cy.visit('http://localhost:3000');
|
||||
// cy.contains('MySql-connection').click();
|
||||
// cy.get('[data-testid=DatabaseAppObject_Chinook]').rightclick();
|
||||
// cy.contains('Chinook').rightclick();
|
||||
// cy.contains('Restore/import SQL dump').click();
|
||||
// cy.get('#uploadFileButton').selectFile('data/chinook-mysql.sql', { force: true });
|
||||
// cy.wait(500);
|
||||
// cy.get('[data-testid=ImportDatabaseDumpModal_runImport]').click();
|
||||
// cy.contains('Importing database');
|
||||
// cy.contains('Finished job script');
|
||||
// cy.get('[data-testid=RunScriptModal_close]').click();
|
||||
// cy.contains('Chinook').click();
|
||||
// cy.contains('Album');
|
||||
// });
|
||||
|
||||
it('Import Chinook Postgres', () => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.contains('Postgres-connection').click();
|
||||
cy.get('[data-testid=DatabaseAppObject_Chinook]').rightclick();
|
||||
cy.contains('Restore/import SQL dump').click();
|
||||
cy.get('#uploadFileButton').selectFile('data/chinook-postgres.sql', { force: true });
|
||||
cy.wait(500);
|
||||
cy.get('[data-testid=ImportDatabaseDumpModal_runImport]').click();
|
||||
cy.contains('Importing database');
|
||||
cy.contains('Finished job script');
|
||||
cy.get('[data-testid=RunScriptModal_close]').click();
|
||||
cy.contains('Chinook').click();
|
||||
cy.contains('album');
|
||||
});
|
||||
// it('Import Chinook Postgres', () => {
|
||||
// cy.visit('http://localhost:3000');
|
||||
// cy.contains('Postgres-connection').click();
|
||||
// cy.get('[data-testid=DatabaseAppObject_Chinook]').rightclick();
|
||||
// cy.contains('Restore/import SQL dump').click();
|
||||
// cy.get('#uploadFileButton').selectFile('data/chinook-postgres.sql', { force: true });
|
||||
// cy.wait(500);
|
||||
// cy.get('[data-testid=ImportDatabaseDumpModal_runImport]').click();
|
||||
// cy.contains('Importing database');
|
||||
// cy.contains('Finished job script');
|
||||
// cy.get('[data-testid=RunScriptModal_close]').click();
|
||||
// cy.contains('Chinook').click();
|
||||
// cy.contains('album');
|
||||
// });
|
||||
|
||||
it('Open ask pwd connection', () => {
|
||||
cy.visit('http://localhost:3000');
|
||||
@@ -83,7 +83,7 @@ describe('Run as portal', () => {
|
||||
cy.testid('DatabaseLoginModal_password').clear().type('Pwd2020Db');
|
||||
cy.testid('DatabaseLoginModal_connect').click();
|
||||
cy.contains('Chinook').click();
|
||||
cy.contains('album');
|
||||
// cy.contains('album');
|
||||
});
|
||||
|
||||
// it('import chinook DB', () => {
|
||||
|
||||
120
e2e-tests/cypress/e2e/redis.cy.js
Normal file
120
e2e-tests/cypress/e2e/redis.cy.js
Normal file
@@ -0,0 +1,120 @@
|
||||
Cypress.on('uncaught:exception', (err, runnable) => {
|
||||
// if the error message matches the one about WorkerGlobalScope importScripts
|
||||
if (err.message.includes("Failed to execute 'importScripts' on 'WorkerGlobalScope'")) {
|
||||
// return false to let Cypress know we intentionally want to ignore this error
|
||||
return false;
|
||||
}
|
||||
// otherwise let Cypress throw the error
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.viewport(1250, 900);
|
||||
});
|
||||
|
||||
describe('Redis data', () => {
|
||||
it('String test', () => {
|
||||
cy.contains('Redis-connection').click();
|
||||
cy.contains('db1').click();
|
||||
cy.contains('app').click();
|
||||
cy.contains('version').click();
|
||||
cy.testid('RedisValueDetail_AceEditor').click().realPress('Backspace').realType('1');
|
||||
cy.contains('Save').click();
|
||||
cy.contains('OK').click();
|
||||
});
|
||||
|
||||
it('Hash test', () => {
|
||||
cy.contains('Redis-connection').click();
|
||||
cy.contains('db1').click();
|
||||
cy.contains('user').click();
|
||||
cy.contains('alice').click();
|
||||
cy.testid('RedisKeyDetailTab_RenameKeyButton').click();
|
||||
cy.themeshot('redis-rename-key');
|
||||
cy.realType('3');
|
||||
cy.contains('OK').click();
|
||||
cy.contains('age').click();
|
||||
cy.testid('RedisValueHashDetail_ValueSection').click().realPress('Backspace').realType('8');
|
||||
cy.contains('Add field').click();
|
||||
cy.testid('RedisValueListLikeEdit_key').click().realType('phone');
|
||||
cy.testid('RedisValueListLikeEdit_value').click().realType('123-456-7890');
|
||||
cy.contains('Refresh').click();
|
||||
cy.themeshot('redis-hash-edit');
|
||||
cy.contains('Save').click();
|
||||
cy.themeshot('redis-hash-script-edit');
|
||||
cy.contains('OK').click();
|
||||
});
|
||||
|
||||
it('List test', () => {
|
||||
cy.contains('Redis-connection').click();
|
||||
cy.contains('db1').click();
|
||||
cy.contains('queue').click();
|
||||
cy.contains('emails').click();
|
||||
cy.contains('Add field').click();
|
||||
cy.testid('RedisValueListLikeEdit_value').click().realType('reset');
|
||||
cy.contains('Save').click();
|
||||
cy.contains('OK').click();
|
||||
});
|
||||
|
||||
it('Set test', () => {
|
||||
cy.contains('Redis-connection').click();
|
||||
cy.contains('db1').click();
|
||||
cy.contains('tags').click();
|
||||
cy.contains('Add field').click();
|
||||
cy.testid('RedisValueListLikeEdit_value').click().realType('newtag');
|
||||
cy.contains('Save').click();
|
||||
cy.contains('OK').click();
|
||||
});
|
||||
|
||||
it('ZSet test', () => {
|
||||
cy.contains('Redis-connection').click();
|
||||
cy.contains('db1').click();
|
||||
cy.contains('leaderboard').click();
|
||||
cy.contains('alice').click();
|
||||
cy.testid('RedisValueZSetDetail_score')
|
||||
.click()
|
||||
.realPress('Backspace')
|
||||
.realPress('Backspace')
|
||||
.realPress('Backspace')
|
||||
.realType('35');
|
||||
cy.contains('Save').click();
|
||||
cy.contains('OK').click();
|
||||
cy.contains('35').should('exist');
|
||||
});
|
||||
|
||||
it('JSON test', () => {
|
||||
cy.contains('Redis-connection').click();
|
||||
cy.contains('db1').click();
|
||||
cy.contains('user').click();
|
||||
cy.contains('1:*').click();
|
||||
cy.contains('json').click();
|
||||
cy.testid('RedisValueDetail_displaySelect').select('JSON view');
|
||||
cy.themeshot('redis-json-detail');
|
||||
});
|
||||
|
||||
it('Stream test', () => {
|
||||
cy.contains('Redis-connection').click();
|
||||
cy.contains('db1').click();
|
||||
cy.contains('events').click();
|
||||
cy.contains('Add field').click();
|
||||
cy.testid('RedisValueListLikeEdit_field').click().realType('message');
|
||||
cy.testid('RedisValueListLikeEdit_value').click().realType('Hello, World!');
|
||||
cy.contains('Save').click();
|
||||
cy.contains('OK').click();
|
||||
cy.themeshot('redis-stream');
|
||||
});
|
||||
|
||||
it('Add key', () => {
|
||||
cy.contains('Redis-connection').click();
|
||||
cy.contains('db1').click();
|
||||
cy.testid('RedisKeysTree_addKeyDropdown').click();
|
||||
cy.contains('String').click();
|
||||
cy.testid('NewRedisKeyTab_keyName').click().realType('newstringkey');
|
||||
cy.testid('RedisValueDetail_AceEditor').click().realType('This is a new string key.');
|
||||
cy.contains('Save').click();
|
||||
cy.contains('OK').click();
|
||||
cy.contains('newstringkey').should('exist');
|
||||
cy.testid('RedisKeysTree_addKeyDropdown').click();
|
||||
cy.contains('Hash').click();
|
||||
cy.themeshot('redis-add-hash-key');
|
||||
});
|
||||
});
|
||||
39
e2e-tests/cypress/e2e/rest.cy.js
Normal file
39
e2e-tests/cypress/e2e/rest.cy.js
Normal file
@@ -0,0 +1,39 @@
|
||||
Cypress.on('uncaught:exception', err => {
|
||||
if (err.message.includes("Failed to execute 'importScripts' on 'WorkerGlobalScope'")) {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.viewport(1250, 900);
|
||||
});
|
||||
|
||||
describe('REST API connections', () => {
|
||||
it('GraphQL test', () => {
|
||||
cy.contains('REST GraphQL').click();
|
||||
cy.contains('products').click();
|
||||
cy.testid('GraphQlExplorerNode_toggle_products').click();
|
||||
cy.testid('GraphQlExplorerNode_checkbox_products.name').click();
|
||||
cy.testid('GraphQlExplorerNode_checkbox_products.price').click();
|
||||
cy.testid('GraphQlExplorerNode_checkbox_products.description').click();
|
||||
cy.testid('GraphQlExplorerNode_checkbox_products.category').click();
|
||||
cy.testid('GraphQlQueryTab_execute').click();
|
||||
cy.contains('Electronics');
|
||||
cy.themeshot('rest-graphql-query');
|
||||
});
|
||||
it('REST OpenAPI test', () => {
|
||||
cy.contains('REST OpenAPI').click();
|
||||
cy.contains('/api/categories').click();
|
||||
cy.testid('RestApiEndpointTab_execute').click();
|
||||
cy.contains('Electronics');
|
||||
cy.themeshot('rest-openapi-query');
|
||||
});
|
||||
it('REST OData test', () => {
|
||||
cy.contains('REST OData').click();
|
||||
cy.contains('/Users').click();
|
||||
cy.testid('ODataEndpointTab_execute').click();
|
||||
cy.contains('Henry');
|
||||
cy.themeshot('rest-odata-query');
|
||||
});
|
||||
});
|
||||
151
e2e-tests/cypress/e2e/team.cy.js
Normal file
151
e2e-tests/cypress/e2e/team.cy.js
Normal file
@@ -0,0 +1,151 @@
|
||||
Cypress.on('uncaught:exception', (err, runnable) => {
|
||||
// if the error message matches the one about WorkerGlobalScope importScripts
|
||||
if (err.message.includes("Failed to execute 'importScripts' on 'WorkerGlobalScope'")) {
|
||||
// return false to let Cypress know we intentionally want to ignore this error
|
||||
return false;
|
||||
}
|
||||
// otherwise let Cypress throw the error
|
||||
});
|
||||
|
||||
beforeEach(() => {
|
||||
cy.visit('http://localhost:3000');
|
||||
cy.viewport(1250, 900);
|
||||
});
|
||||
|
||||
describe('Team edition tests', () => {
|
||||
it('Team edition screens', () => {
|
||||
cy.testid('LoginPage_linkAdmin').click();
|
||||
cy.testid('LoginPage_password').type('adminpwd');
|
||||
cy.testid('LoginPage_submitLogin').click();
|
||||
|
||||
cy.testid('AdminMenuWidget_itemConnections').click();
|
||||
cy.contains('New connection').click();
|
||||
cy.testid('ConnectionDriverFields_connectionType').select('PostgreSQL');
|
||||
cy.contains('not granted').should('not.exist');
|
||||
cy.themeshot('connection-administration');
|
||||
|
||||
cy.testid('AdminMenuWidget_itemRoles').click();
|
||||
cy.contains('logged-user').click();
|
||||
cy.contains('not granted').should('not.exist');
|
||||
cy.themeshot('role-administration');
|
||||
|
||||
cy.testid('AdminMenuWidget_itemUsers').click();
|
||||
cy.contains('New user').click();
|
||||
cy.contains('not granted').should('not.exist');
|
||||
cy.themeshot('user-administration');
|
||||
|
||||
cy.testid('AdminMenuWidget_itemAuthentication').click();
|
||||
cy.contains('Add authentication').click();
|
||||
cy.contains('Use database login').click();
|
||||
cy.contains('Add authentication').click();
|
||||
cy.contains('OAuth 2.0').click();
|
||||
cy.contains('not granted').should('not.exist');
|
||||
cy.themeshot('authentication-administration');
|
||||
});
|
||||
|
||||
it('OAuth authentication', () => {
|
||||
cy.testid('LoginPage_linkAdmin').click();
|
||||
cy.testid('LoginPage_password').type('adminpwd');
|
||||
cy.testid('LoginPage_submitLogin').click();
|
||||
cy.testid('AdminMenuWidget_itemAuthentication').click();
|
||||
// cy.testid('AdminAuthForm_disableButton_local').click();
|
||||
// cy.testid('AdminAuthForm_disableButton_none').click();
|
||||
|
||||
// fill OAuth
|
||||
cy.contains('Add authentication').click();
|
||||
cy.contains('OAuth 2.0').click();
|
||||
cy.testid('AdminAuthForm_oauthAuth_oauth').type('http://localhost:16009/dex/auth');
|
||||
cy.testid('AdminAuthForm_oauthToken_oauth').type('http://localhost:16009/dex/token');
|
||||
cy.testid('AdminAuthForm_oauthScope_oauth').type('openid email profile');
|
||||
cy.testid('AdminAuthForm_oauthClient_oauth').type('my-app');
|
||||
cy.testid('AdminAuthForm_oauthClientSecret_oauth').type('my-secret');
|
||||
cy.testid('AdminAuthForm_oauthLoginField_oauth').type('name');
|
||||
cy.testid('AdminAuthForm_oauthSaveNotDefinedLogins_oauth').click();
|
||||
cy.testid('AdminAuthForm_oauthEmailField_oauth').type('email');
|
||||
cy.testid('AdminAuthTab_saveButton').click();
|
||||
|
||||
cy.testid('WidgetIconPanel_menu').click();
|
||||
cy.contains('File').click();
|
||||
cy.contains('Logout').click();
|
||||
cy.testid('LoginPage_linkRegularUser').click();
|
||||
|
||||
// login two times
|
||||
for (let index of [1, 2]) {
|
||||
// login as OAuth
|
||||
cy.testid('LoginPage_loginButton_OAuth 2.0').click();
|
||||
|
||||
// login on DEX
|
||||
cy.get('#login').clear().type('test@example.com');
|
||||
cy.get('#password').clear().type('test');
|
||||
cy.get('#submit-login').click();
|
||||
|
||||
// logout
|
||||
cy.testid('WidgetIconPanel_menu').click();
|
||||
cy.contains('File').click();
|
||||
cy.contains('Logout').click();
|
||||
cy.testid('NotLoggedPage_loginButton').click();
|
||||
}
|
||||
|
||||
// Logout and login again as admin
|
||||
cy.testid('LoginPage_linkAdmin').click();
|
||||
cy.testid('LoginPage_password').type('adminpwd');
|
||||
cy.testid('LoginPage_submitLogin').click();
|
||||
cy.testid('AdminMenuWidget_itemUsers').click();
|
||||
cy.contains('test@example.com');
|
||||
});
|
||||
|
||||
it('Audit logging', () => {
|
||||
cy.testid('LoginPage_linkAdmin').click();
|
||||
cy.testid('LoginPage_password').type('adminpwd');
|
||||
cy.testid('LoginPage_submitLogin').click();
|
||||
|
||||
cy.testid('AdminMenuWidget_itemAuditLog').click();
|
||||
cy.contains('Audit log is not enabled');
|
||||
cy.testid('AdminMenuWidget_itemSettings').click();
|
||||
cy.testid('AdminSettingsTab_auditLogCheckbox').click();
|
||||
cy.testid('AdminMenuWidget_itemAuditLog').click();
|
||||
cy.contains('No data for selected date');
|
||||
|
||||
cy.testid('AdminMenuWidget_itemConnections').click();
|
||||
cy.contains('Open table').click();
|
||||
cy.contains('displayName');
|
||||
cy.get('.toolstrip').contains('Export').click();
|
||||
cy.contains('CSV file').click();
|
||||
|
||||
cy.testid('AdminMenuWidget_itemUsers').click();
|
||||
cy.contains('Open table').click();
|
||||
cy.contains('login');
|
||||
cy.get('.toolstrip').contains('Export').click();
|
||||
cy.contains('XML file').click();
|
||||
|
||||
cy.testid('AdminMenuWidget_itemAuditLog').click();
|
||||
cy.testid('AdminAuditLogTab_refreshButton').click();
|
||||
cy.contains('Exporting query').click();
|
||||
cy.themeshot('auditlog');
|
||||
});
|
||||
|
||||
it('Edit database permissions', () => {
|
||||
cy.testid('LoginPage_linkAdmin').click();
|
||||
cy.testid('LoginPage_password').type('adminpwd');
|
||||
cy.testid('LoginPage_submitLogin').click();
|
||||
|
||||
cy.testid('AdminMenuWidget_itemRoles').click();
|
||||
cy.testid('AdminRolesTab_table').contains('superadmin').click();
|
||||
cy.testid('AdminRolesTab_databases').click();
|
||||
|
||||
cy.testid('AdminDatabasesPermissionsGrid_addButton').click();
|
||||
cy.testid('AdminDatabasesPermissionsGrid_addButton').click();
|
||||
cy.testid('AdminDatabasesPermissionsGrid_addButton').click();
|
||||
|
||||
cy.testid('AdminListOrRegexEditor_1_regexInput').type('^Chinook[\\d]*$');
|
||||
cy.testid('AdminListOrRegexEditor_2_listSwitch').click();
|
||||
cy.testid('AdminListOrRegexEditor_2_listInput').type('Nortwind\nSales');
|
||||
cy.testid('AdminDatabasesPermissionsGrid_roleSelect_0').select('-2');
|
||||
cy.testid('AdminDatabasesPermissionsGrid_roleSelect_1').select('-3');
|
||||
cy.testid('AdminDatabasesPermissionsGrid_roleSelect_2').select('-4');
|
||||
|
||||
cy.contains('not granted').should('not.exist');
|
||||
|
||||
cy.themeshot('database-permissions');
|
||||
});
|
||||
});
|
||||
21
e2e-tests/cypress/fixtures/customers-20-err.csv
Normal file
21
e2e-tests/cypress/fixtures/customers-20-err.csv
Normal file
@@ -0,0 +1,21 @@
|
||||
Index,Customer Id,First Name,Last Name,Company,City,Country,Phone 1,Phone 2,Email,Subscription Date,Website
|
||||
1,50ddd99fAdF48B3,Jessica,Navarro,"Tran, Odom and Graham",Port Terranceview,Jersey,(883)287-7947,479-044-3187,wmcintyre@myers.net,2023-03-11,http://pennington.com/
|
||||
"2,BD1AB97979DDcDe,Preston,Andrews,"Townsend, Lawrence and Davenport",Harringtonmouth,Croatia,188-270-5676x63873,001-428-148-4270,bradley63@jacobs.net,2023-11-15,http://burke.com/
|
||||
3,0FDDD9aCa501acE,Melissa,Mckay,Rivas-Cooke,Oliviabury,Cook Islands,8257631531,001-650-689-5600x927,ugalloway@maxwell-mcclain.com,2025-01-25,https://patrick.com/
|
||||
4,A7dA284B7c4AfaD,Frank,Livingston,"Lambert, Garner and Mathews",Mallorytown,Faroe Islands,766.182.6201x689,+1-476-912-2027x4370,tracie00@webster.biz,2021-03-27,https://www.hart.com/
|
||||
5,38bb1624e4f8211,Ross,Mendoza,Cook and Sons,New Perry,Bolivia,001-440-468-2236,165.562.4328x9274,austincarmen@abbott.com,2024-12-12,http://harmon.com/
|
||||
6,55c9Fda2BABFE1a,Jane,Tate,Knapp PLC,West Kathyshire,Morocco,001-606-447-0584x07975,(003)872-1307x285,carlosgomez@mcpherson-ramos.biz,2021-09-13,http://www.yu.com/
|
||||
7,A15eccAc67cCc5b,Tanya,Chung,Frost Inc,South Julieburgh,United States of America,778-360-8301x268,+1-034-169-4237,onewton@crosby.com,2024-10-01,http://www.gill-velez.biz/
|
||||
8,aFdab04acACaf90,Jackson,Moyer,Bowen Ltd,Port Triciabury,Bahrain,001-187-882-2891x169,154.903.2525,gabriela16@mejia.org,2023-06-20,http://www.david.biz/
|
||||
9,A2EaeAd3c6529B9,Kelly,Douglas,Phillips PLC,Weissberg,Qatar,767.177.3199x5576,5156730935,wigginsmercedes@tanner.com,2021-06-30,https://gonzalez.net/
|
||||
10,188175A5641d080,Mariah,Riddle,"Mata, Fuller and Good",Choiton,Namibia,092-993-3559x342,190.937.3937,eileen32@greer.biz,2021-04-17,http://www.bowen.info/
|
||||
11,B2BA817C7bC09f0,Kristine,Pennington,"Koch, Diaz and Valdez",Port Rachael,Suriname,877.152.6488x921,790-804-9979x3290,tonya00@flynn.com,2024-03-28,https://www.rocha.net/
|
||||
12,fFAD70B5Febc43a,Robert,Adams,Bender-Wolfe,Billfort,Tanzania,219-696-1912x93626,518-969-4058,jeffersoncolton@moss-ashley.com,2022-07-31,https://www.alvarez.com/
|
||||
13,9a44524E1261Ed6,Franklin,Costa,Werner Group,North Bradley,Cook Islands,(895)448-4681x1999,648-345-3083x88242,marksmith@novak.com,2024-12-03,http://thornton.com/
|
||||
14,0C360EfE17D06cc,Dan,Ballard,Sampson-Huff,Michaelchester,Sao Tome and Principe,+1-803-469-5237x2580,(729)574-6101x0605,molly54@acevedo.info,2022-10-24,https://www.sloan-gonzales.biz/
|
||||
15,fb5cE8cb1eF2954,Clifford,Moyer,Fry-Whitehead,Lake Gary,Japan,(504)263-0450,247.514.1614x551,rhonda34@orr.com,2020-03-08,https://norton.com/
|
||||
16,3e53DcaD1cB0054,Tonya,Durham,"Lowe, West and Reynolds",South Sylviaton,Brunei Darussalam,(613)893-8183,(461)399-6120,kiara96@meadows.biz,2022-08-04,https://www.reeves.com/
|
||||
17,83fDDE5812EbEde,Dale,Bishop,Shaw-Ray,Lake Miranda,Congo,(082)202-9241,+1-413-610-1854x79378,bhoward@hodges.biz,2023-05-08,http://www.escobar.com/
|
||||
18,8dB7ACe2C5758cE,Priscilla,Mills,Pope PLC,North Cliffordshire,South Georgia and the South Sandwich Islands,+1-465-802-4573x30191,044-393-6049x598,nathaniel28@hess.com,2020-09-08,https://www.watts.org/
|
||||
19,c1092ebDaF2ceED,Alice,Bond,Chan-Liu,West Wesley,Lithuania,+1-333-285-8515,(715)759-3158x77103,jose92@peters.com,2024-05-30,http://www.marquez.com/
|
||||
20,4d0c95579D095aF,Cole,Compton,Calderon PLC,Robertaville,Saudi Arabia,029.862.3387x470,001-319-474-2394,sspence@dorsey.com,2020-08-02,http://hamilton.net/
|
||||
|
Can't render this file because it contains an unexpected character in line 3 and column 36.
|
21
e2e-tests/cypress/fixtures/customers-20.csv
Normal file
21
e2e-tests/cypress/fixtures/customers-20.csv
Normal file
@@ -0,0 +1,21 @@
|
||||
Index,Customer Id,First Name,Last Name,Company,City,Country,Phone 1,Phone 2,Email,Subscription Date,Website
|
||||
1,50ddd99fAdF48B3,Jessica,Navarro,"Tran, Odom and Graham",Port Terranceview,Jersey,(883)287-7947,479-044-3187,wmcintyre@myers.net,2023-03-11,http://pennington.com/
|
||||
2,BD1AB97979DDcDe,Preston,Andrews,"Townsend, Lawrence and Davenport",Harringtonmouth,Croatia,188-270-5676x63873,001-428-148-4270,bradley63@jacobs.net,2023-11-15,http://burke.com/
|
||||
3,0FDDD9aCa501acE,Melissa,Mckay,Rivas-Cooke,Oliviabury,Cook Islands,8257631531,001-650-689-5600x927,ugalloway@maxwell-mcclain.com,2025-01-25,https://patrick.com/
|
||||
4,A7dA284B7c4AfaD,Frank,Livingston,"Lambert, Garner and Mathews",Mallorytown,Faroe Islands,766.182.6201x689,+1-476-912-2027x4370,tracie00@webster.biz,2021-03-27,https://www.hart.com/
|
||||
5,38bb1624e4f8211,Ross,Mendoza,Cook and Sons,New Perry,Bolivia,001-440-468-2236,165.562.4328x9274,austincarmen@abbott.com,2024-12-12,http://harmon.com/
|
||||
6,55c9Fda2BABFE1a,Jane,Tate,Knapp PLC,West Kathyshire,Morocco,001-606-447-0584x07975,(003)872-1307x285,carlosgomez@mcpherson-ramos.biz,2021-09-13,http://www.yu.com/
|
||||
7,A15eccAc67cCc5b,Tanya,Chung,Frost Inc,South Julieburgh,United States of America,778-360-8301x268,+1-034-169-4237,onewton@crosby.com,2024-10-01,http://www.gill-velez.biz/
|
||||
8,aFdab04acACaf90,Jackson,Moyer,Bowen Ltd,Port Triciabury,Bahrain,001-187-882-2891x169,154.903.2525,gabriela16@mejia.org,2023-06-20,http://www.david.biz/
|
||||
9,A2EaeAd3c6529B9,Kelly,Douglas,Phillips PLC,Weissberg,Qatar,767.177.3199x5576,5156730935,wigginsmercedes@tanner.com,2021-06-30,https://gonzalez.net/
|
||||
10,188175A5641d080,Mariah,Riddle,"Mata, Fuller and Good",Choiton,Namibia,092-993-3559x342,190.937.3937,eileen32@greer.biz,2021-04-17,http://www.bowen.info/
|
||||
11,B2BA817C7bC09f0,Kristine,Pennington,"Koch, Diaz and Valdez",Port Rachael,Suriname,877.152.6488x921,790-804-9979x3290,tonya00@flynn.com,2024-03-28,https://www.rocha.net/
|
||||
12,fFAD70B5Febc43a,Robert,Adams,Bender-Wolfe,Billfort,Tanzania,219-696-1912x93626,518-969-4058,jeffersoncolton@moss-ashley.com,2022-07-31,https://www.alvarez.com/
|
||||
13,9a44524E1261Ed6,Franklin,Costa,Werner Group,North Bradley,Cook Islands,(895)448-4681x1999,648-345-3083x88242,marksmith@novak.com,2024-12-03,http://thornton.com/
|
||||
14,0C360EfE17D06cc,Dan,Ballard,Sampson-Huff,Michaelchester,Sao Tome and Principe,+1-803-469-5237x2580,(729)574-6101x0605,molly54@acevedo.info,2022-10-24,https://www.sloan-gonzales.biz/
|
||||
15,fb5cE8cb1eF2954,Clifford,Moyer,Fry-Whitehead,Lake Gary,Japan,(504)263-0450,247.514.1614x551,rhonda34@orr.com,2020-03-08,https://norton.com/
|
||||
16,3e53DcaD1cB0054,Tonya,Durham,"Lowe, West and Reynolds",South Sylviaton,Brunei Darussalam,(613)893-8183,(461)399-6120,kiara96@meadows.biz,2022-08-04,https://www.reeves.com/
|
||||
17,83fDDE5812EbEde,Dale,Bishop,Shaw-Ray,Lake Miranda,Congo,(082)202-9241,+1-413-610-1854x79378,bhoward@hodges.biz,2023-05-08,http://www.escobar.com/
|
||||
18,8dB7ACe2C5758cE,Priscilla,Mills,Pope PLC,North Cliffordshire,South Georgia and the South Sandwich Islands,+1-465-802-4573x30191,044-393-6049x598,nathaniel28@hess.com,2020-09-08,https://www.watts.org/
|
||||
19,c1092ebDaF2ceED,Alice,Bond,Chan-Liu,West Wesley,Lithuania,+1-333-285-8515,(715)759-3158x77103,jose92@peters.com,2024-05-30,http://www.marquez.com/
|
||||
20,4d0c95579D095aF,Cole,Compton,Calderon PLC,Robertaville,Saudi Arabia,029.862.3387x470,001-319-474-2394,sspence@dorsey.com,2020-08-02,http://hamilton.net/
|
||||
|
@@ -1,3 +1,5 @@
|
||||
const path = require('path');
|
||||
|
||||
// ***********************************************
|
||||
// This example commands.js shows you how to
|
||||
// create various custom commands and overwrite
|
||||
@@ -27,3 +29,69 @@
|
||||
Cypress.Commands.add('testid', (testId, options = {}) => {
|
||||
return cy.get(`[data-testid="${testId}"]`, options);
|
||||
});
|
||||
|
||||
Cypress.Commands.add(
|
||||
'themeshot',
|
||||
{
|
||||
prevSubject: 'optional',
|
||||
},
|
||||
(subject, file, options) => {
|
||||
if (!options?.keepTheme) {
|
||||
cy.window().then(win => {
|
||||
win.__changeCurrentTheme('dark');
|
||||
});
|
||||
}
|
||||
|
||||
// cy.screenshot(`${file}-dark`, {
|
||||
// onAfterScreenshot: (doc, props) => {
|
||||
// cy.task('renameFile', {
|
||||
// from: props.path,
|
||||
// to: path.resolve(__dirname, `../../screenshots/${file}-dark.png`),
|
||||
// });
|
||||
|
||||
// // fs.rename(props.path, path.resolve(path.join(__dirname, `../../screenshots/${file}-dark.png`)));
|
||||
// },
|
||||
// });
|
||||
|
||||
if (subject) {
|
||||
cy.wrap(subject).screenshot(`${file}-dark`, options);
|
||||
} else {
|
||||
cy.screenshot(`${file}-dark`, options);
|
||||
}
|
||||
// .then(props => {
|
||||
// return cy.task('renameFile', {
|
||||
// from: props.path,
|
||||
// to: path.resolve(__dirname, `../../screenshots/${file}-dark.png`),
|
||||
// });
|
||||
// });
|
||||
|
||||
if (!options?.keepTheme) {
|
||||
cy.window().then(win => {
|
||||
win.__changeCurrentTheme('light');
|
||||
});
|
||||
}
|
||||
|
||||
if (subject) {
|
||||
cy.wrap(subject).screenshot(`${file}-light`, options);
|
||||
} else {
|
||||
cy.screenshot(`${file}-light`, options);
|
||||
}
|
||||
// .then(props => {
|
||||
// return cy.task('renameFile', {
|
||||
// from: props.path,
|
||||
// to: path.resolve(__dirname, `../../screenshots/${file}-light.png`),
|
||||
// });
|
||||
// });
|
||||
|
||||
// cy.screenshot(`${file}-light`, {
|
||||
// onAfterScreenshot: (doc, props) => {
|
||||
// cy.task('renameFile', {
|
||||
// from: props.path,
|
||||
// to: path.resolve(__dirname, `../../screenshots/${file}-light.png`),
|
||||
// });
|
||||
|
||||
// // fs.rename(props.path, path.resolve(path.join(__dirname, `../../screenshots/${file}-light.png`)));
|
||||
// },
|
||||
// });
|
||||
}
|
||||
);
|
||||
|
||||
@@ -42,3 +42,11 @@ beforeEach(() => {
|
||||
});
|
||||
});
|
||||
});
|
||||
|
||||
// Cypress.Screenshot.defaults({
|
||||
// onBeforeScreenshot() {
|
||||
// if (window.Chart) {
|
||||
// Object.values(window.Chart.instances).forEach(c => c.resize());
|
||||
// }
|
||||
// },
|
||||
// });
|
||||
|
||||
6
e2e-tests/data/charts-sample/departments.jsonl
Normal file
6
e2e-tests/data/charts-sample/departments.jsonl
Normal file
@@ -0,0 +1,6 @@
|
||||
{"__isStreamHeader":true,"pureName":"departments","schemaName":"dbo","objectId":1205579333,"createDate":"2025-06-12T10:30:34.083Z","modifyDate":"2025-06-12T10:30:34.120Z","contentHash":"2025-06-12T10:30:34.120Z","columns":[{"columnName":"id","dataType":"int","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false},{"columnName":"name","dataType":"varchar(100)","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false}],"primaryKey":{"constraintName":"PK__departme__3213E83FE8E7043D","schemaName":"dbo","pureName":"departments","constraintType":"primaryKey","columns":[{"columnName":"id"}]},"foreignKeys":[],"indexes":[],"uniques":[],"engine":"mssql@dbgate-plugin-mssql"}
|
||||
{"id":1,"name":"IT"}
|
||||
{"id":2,"name":"Marketing"}
|
||||
{"id":3,"name":"Finance"}
|
||||
{"id":4,"name":"Human Resources"}
|
||||
{"id":5,"name":"Research and Development"}
|
||||
12
e2e-tests/data/charts-sample/departments.table.yaml
Normal file
12
e2e-tests/data/charts-sample/departments.table.yaml
Normal file
@@ -0,0 +1,12 @@
|
||||
name: departments
|
||||
columns:
|
||||
- name: id
|
||||
type: int
|
||||
default: null
|
||||
notNull: true
|
||||
- name: name
|
||||
type: varchar(100)
|
||||
default: null
|
||||
notNull: true
|
||||
primaryKey:
|
||||
- id
|
||||
39
e2e-tests/data/charts-sample/employee_project.jsonl
Normal file
39
e2e-tests/data/charts-sample/employee_project.jsonl
Normal file
@@ -0,0 +1,39 @@
|
||||
{"__isStreamHeader":true,"pureName":"employee_project","schemaName":"dbo","objectId":1333579789,"createDate":"2025-06-12T10:30:34.133Z","modifyDate":"2025-06-12T10:30:34.133Z","contentHash":"2025-06-12T10:30:34.133Z","columns":[{"columnName":"employee_id","dataType":"int","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false},{"columnName":"project_id","dataType":"int","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false},{"columnName":"role","dataType":"varchar(50)","notNull":false,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false}],"primaryKey":{"constraintName":"PK__employee__2EE9924949ED9668","schemaName":"dbo","pureName":"employee_project","constraintType":"primaryKey","columns":[{"columnName":"employee_id"},{"columnName":"project_id"}]},"foreignKeys":[{"constraintName":"FK__employee___emplo__5165187F","constraintType":"foreignKey","schemaName":"dbo","pureName":"employee_project","refSchemaName":"dbo","refTableName":"employees","updateAction":"NO ACTION","deleteAction":"NO ACTION","columns":[{"columnName":"employee_id","refColumnName":"id"}]},{"constraintName":"FK__employee___proje__52593CB8","constraintType":"foreignKey","schemaName":"dbo","pureName":"employee_project","refSchemaName":"dbo","refTableName":"projects","updateAction":"NO ACTION","deleteAction":"NO ACTION","columns":[{"columnName":"project_id","refColumnName":"id"}]}],"indexes":[],"uniques":[],"engine":"mssql@dbgate-plugin-mssql"}
|
||||
{"employee_id":1,"project_id":6,"role":"Manager"}
|
||||
{"employee_id":1,"project_id":8,"role":"Developer"}
|
||||
{"employee_id":2,"project_id":7,"role":"Tester"}
|
||||
{"employee_id":2,"project_id":8,"role":"Developer"}
|
||||
{"employee_id":3,"project_id":4,"role":"Analyst"}
|
||||
{"employee_id":3,"project_id":6,"role":"Developer"}
|
||||
{"employee_id":4,"project_id":2,"role":"Manager"}
|
||||
{"employee_id":4,"project_id":4,"role":"Analyst"}
|
||||
{"employee_id":4,"project_id":5,"role":"Analyst"}
|
||||
{"employee_id":5,"project_id":5,"role":"Tester"}
|
||||
{"employee_id":6,"project_id":1,"role":"Analyst"}
|
||||
{"employee_id":6,"project_id":6,"role":"Tester"}
|
||||
{"employee_id":6,"project_id":9,"role":"Manager"}
|
||||
{"employee_id":7,"project_id":8,"role":"Manager"}
|
||||
{"employee_id":8,"project_id":10,"role":"Analyst"}
|
||||
{"employee_id":9,"project_id":2,"role":"Analyst"}
|
||||
{"employee_id":9,"project_id":6,"role":"Analyst"}
|
||||
{"employee_id":9,"project_id":7,"role":"Developer"}
|
||||
{"employee_id":10,"project_id":2,"role":"Manager"}
|
||||
{"employee_id":10,"project_id":6,"role":"Analyst"}
|
||||
{"employee_id":11,"project_id":1,"role":"Tester"}
|
||||
{"employee_id":12,"project_id":4,"role":"Tester"}
|
||||
{"employee_id":13,"project_id":2,"role":"Developer"}
|
||||
{"employee_id":13,"project_id":3,"role":"Analyst"}
|
||||
{"employee_id":13,"project_id":7,"role":"Developer"}
|
||||
{"employee_id":14,"project_id":3,"role":"Developer"}
|
||||
{"employee_id":14,"project_id":9,"role":"Manager"}
|
||||
{"employee_id":15,"project_id":1,"role":"Developer"}
|
||||
{"employee_id":15,"project_id":5,"role":"Manager"}
|
||||
{"employee_id":16,"project_id":3,"role":"Tester"}
|
||||
{"employee_id":16,"project_id":5,"role":"Developer"}
|
||||
{"employee_id":17,"project_id":6,"role":"Analyst"}
|
||||
{"employee_id":18,"project_id":1,"role":"Tester"}
|
||||
{"employee_id":18,"project_id":5,"role":"Tester"}
|
||||
{"employee_id":18,"project_id":6,"role":"Manager"}
|
||||
{"employee_id":19,"project_id":6,"role":"Analyst"}
|
||||
{"employee_id":20,"project_id":2,"role":"Developer"}
|
||||
{"employee_id":20,"project_id":4,"role":"Developer"}
|
||||
18
e2e-tests/data/charts-sample/employee_project.table.yaml
Normal file
18
e2e-tests/data/charts-sample/employee_project.table.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
name: employee_project
|
||||
columns:
|
||||
- name: employee_id
|
||||
type: int
|
||||
default: null
|
||||
notNull: true
|
||||
references: employees
|
||||
- name: project_id
|
||||
type: int
|
||||
default: null
|
||||
notNull: true
|
||||
references: projects
|
||||
- name: role
|
||||
type: varchar(50)
|
||||
default: null
|
||||
primaryKey:
|
||||
- employee_id
|
||||
- project_id
|
||||
21
e2e-tests/data/charts-sample/employees.jsonl
Normal file
21
e2e-tests/data/charts-sample/employees.jsonl
Normal file
@@ -0,0 +1,21 @@
|
||||
{"__isStreamHeader":true,"pureName":"employees","schemaName":"dbo","objectId":1237579447,"createDate":"2025-06-12T10:30:34.113Z","modifyDate":"2025-06-12T12:35:22.140Z","contentHash":"2025-06-12T12:35:22.140Z","columns":[{"columnName":"id","dataType":"int","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false},{"columnName":"name","dataType":"varchar(100)","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false},{"columnName":"email","dataType":"varchar(100)","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false},{"columnName":"hire_date","dataType":"date","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false},{"columnName":"department_id","dataType":"int","notNull":false,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false}],"primaryKey":{"constraintName":"PK__employee__3213E83FE576E55A","schemaName":"dbo","pureName":"employees","constraintType":"primaryKey","columns":[{"columnName":"id"}]},"foreignKeys":[{"constraintName":"FK__employees__depar__4CA06362","constraintType":"foreignKey","schemaName":"dbo","pureName":"employees","refSchemaName":"dbo","refTableName":"departments","updateAction":"NO ACTION","deleteAction":"NO ACTION","columns":[{"columnName":"department_id","refColumnName":"id"}]}],"indexes":[],"uniques":[{"constraintName":"UQ__employee__AB6E6164E18D883F","columns":[{"columnName":"email"}]}],"engine":"mssql@dbgate-plugin-mssql"}
|
||||
{"id":1,"name":"John Smith","email":"john.smith@example.com","hire_date":"2018-07-09T00:00:00.000Z","department_id":2}
|
||||
{"id":2,"name":"Jane Garcia","email":"jane.garcia@example.com","hire_date":"2019-10-13T00:00:00.000Z","department_id":5}
|
||||
{"id":3,"name":"Grace Smith","email":"grace.smith@example.com","hire_date":"2019-03-16T00:00:00.000Z","department_id":1}
|
||||
{"id":4,"name":"Charlie Williams","email":"charlie.williams@example.com","hire_date":"2020-10-18T00:00:00.000Z","department_id":2}
|
||||
{"id":5,"name":"Eve Brown","email":"eve.brown@example.com","hire_date":"2018-04-12T00:00:00.000Z","department_id":4}
|
||||
{"id":6,"name":"Alice Moore","email":"alice.moore@example.com","hire_date":"2019-04-20T00:00:00.000Z","department_id":2}
|
||||
{"id":7,"name":"Eve Williams","email":"eve.williams@example.com","hire_date":"2020-04-26T00:00:00.000Z","department_id":4}
|
||||
{"id":8,"name":"Eve Jones","email":"eve.jones@example.com","hire_date":"2022-10-04T00:00:00.000Z","department_id":3}
|
||||
{"id":9,"name":"Diana Miller","email":"diana.miller@example.com","hire_date":"2021-03-28T00:00:00.000Z","department_id":1}
|
||||
{"id":10,"name":"Diana Smith","email":"diana.smith@example.com","hire_date":"2018-04-12T00:00:00.000Z","department_id":2}
|
||||
{"id":11,"name":"Hank Johnson","email":"hank.johnson@example.com","hire_date":"2020-09-16T00:00:00.000Z","department_id":2}
|
||||
{"id":12,"name":"Frank Miller","email":"frank.miller@example.com","hire_date":"2023-01-12T00:00:00.000Z","department_id":4}
|
||||
{"id":13,"name":"Jane Brown","email":"jane.brown@example.com","hire_date":"2023-05-07T00:00:00.000Z","department_id":3}
|
||||
{"id":14,"name":"Grace Davis","email":"grace.davis@example.com","hire_date":"2019-08-22T00:00:00.000Z","department_id":3}
|
||||
{"id":15,"name":"Jane Black","email":"jane.black@example.com","hire_date":"2019-04-28T00:00:00.000Z","department_id":2}
|
||||
{"id":16,"name":"Charlie Smith","email":"charlie.smith@example.com","hire_date":"2019-06-12T00:00:00.000Z","department_id":5}
|
||||
{"id":17,"name":"Eve Johnson","email":"eve.johnson@example.com","hire_date":"2020-11-07T00:00:00.000Z","department_id":5}
|
||||
{"id":18,"name":"Jane Johnson","email":"jane.johnson@example.com","hire_date":"2020-04-06T00:00:00.000Z","department_id":2}
|
||||
{"id":19,"name":"Hank Brown","email":"hank.brown@example.com","hire_date":"2023-05-10T00:00:00.000Z","department_id":2}
|
||||
{"id":20,"name":"Frank Jones","email":"frank.jones@example.com","hire_date":"2020-10-26T00:00:00.000Z","department_id":1}
|
||||
28
e2e-tests/data/charts-sample/employees.table.yaml
Normal file
28
e2e-tests/data/charts-sample/employees.table.yaml
Normal file
@@ -0,0 +1,28 @@
|
||||
name: employees
|
||||
columns:
|
||||
- name: id
|
||||
type: int
|
||||
default: null
|
||||
notNull: true
|
||||
- name: name
|
||||
type: varchar(100)
|
||||
default: null
|
||||
notNull: true
|
||||
- name: email
|
||||
type: varchar(100)
|
||||
default: null
|
||||
notNull: true
|
||||
- name: hire_date
|
||||
type: date
|
||||
default: null
|
||||
notNull: true
|
||||
- name: department_id
|
||||
type: int
|
||||
default: null
|
||||
references: departments
|
||||
primaryKey:
|
||||
- id
|
||||
uniques:
|
||||
- name: UQ__employee__AB6E6164E18D883F
|
||||
columns:
|
||||
- email
|
||||
141
e2e-tests/data/charts-sample/finance_reports.jsonl
Normal file
141
e2e-tests/data/charts-sample/finance_reports.jsonl
Normal file
@@ -0,0 +1,141 @@
|
||||
{"__isStreamHeader":true,"pureName":"finance_reports","schemaName":"dbo","objectId":338100245,"createDate":"2025-06-23T12:15:08.727Z","modifyDate":"2025-06-23T12:15:08.750Z","contentHash":"2025-06-23T12:15:08.750Z","columns":[{"columnName":"id","dataType":"int","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false},{"columnName":"date","dataType":"date","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false},{"columnName":"profit","dataType":"money","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false}],"foreignKeys":[{"constraintName":"project_id","constraintType":"foreignKey","schemaName":"dbo","pureName":"finance_reports","refSchemaName":"dbo","refTableName":"projects","updateAction":"NO ACTION","deleteAction":"NO ACTION","columns":[{"columnName":"id","refColumnName":"id"}]}],"indexes":[],"uniques":[],"engine":"mssql@dbgate-plugin-mssql"}
|
||||
{"id":1,"date":"2022-01-01T00:00:00.000Z","profit":73923.4}
|
||||
{"id":1,"date":"2022-01-31T00:00:00.000Z","profit":21837.75}
|
||||
{"id":1,"date":"2022-03-02T00:00:00.000Z","profit":67859.8}
|
||||
{"id":1,"date":"2022-04-01T00:00:00.000Z","profit":77403.3}
|
||||
{"id":1,"date":"2022-05-01T00:00:00.000Z","profit":84083.19}
|
||||
{"id":1,"date":"2022-05-31T00:00:00.000Z","profit":30040.55}
|
||||
{"id":1,"date":"2022-06-30T00:00:00.000Z","profit":50947.14}
|
||||
{"id":1,"date":"2022-07-30T00:00:00.000Z","profit":63345.62}
|
||||
{"id":1,"date":"2022-08-29T00:00:00.000Z","profit":23819.45}
|
||||
{"id":1,"date":"2022-09-28T00:00:00.000Z","profit":-25919.19}
|
||||
{"id":1,"date":"2022-10-28T00:00:00.000Z","profit":27967.6}
|
||||
{"id":1,"date":"2022-11-27T00:00:00.000Z","profit":-37402.36}
|
||||
{"id":1,"date":"2022-12-27T00:00:00.000Z","profit":94528.8}
|
||||
{"id":1,"date":"2023-01-26T00:00:00.000Z","profit":29491.03}
|
||||
{"id":1,"date":"2023-02-25T00:00:00.000Z","profit":81541.29}
|
||||
{"id":2,"date":"2022-01-01T00:00:00.000Z","profit":18070.94}
|
||||
{"id":2,"date":"2022-01-31T00:00:00.000Z","profit":-40609.87}
|
||||
{"id":2,"date":"2022-03-02T00:00:00.000Z","profit":42435.51}
|
||||
{"id":2,"date":"2022-04-01T00:00:00.000Z","profit":-11915.15}
|
||||
{"id":2,"date":"2022-05-01T00:00:00.000Z","profit":-37417.4}
|
||||
{"id":2,"date":"2022-05-31T00:00:00.000Z","profit":23028.66}
|
||||
{"id":2,"date":"2022-06-30T00:00:00.000Z","profit":-6895.49}
|
||||
{"id":2,"date":"2022-07-30T00:00:00.000Z","profit":63114.54}
|
||||
{"id":2,"date":"2022-08-29T00:00:00.000Z","profit":94646.99}
|
||||
{"id":2,"date":"2022-09-28T00:00:00.000Z","profit":99560.77}
|
||||
{"id":2,"date":"2022-10-28T00:00:00.000Z","profit":62216.22}
|
||||
{"id":2,"date":"2022-11-27T00:00:00.000Z","profit":85094.32}
|
||||
{"id":2,"date":"2022-12-27T00:00:00.000Z","profit":-23378.37}
|
||||
{"id":2,"date":"2023-01-26T00:00:00.000Z","profit":47635.86}
|
||||
{"id":2,"date":"2023-02-25T00:00:00.000Z","profit":33727.72}
|
||||
{"id":3,"date":"2022-01-01T00:00:00.000Z","profit":33088.03}
|
||||
{"id":3,"date":"2022-01-31T00:00:00.000Z","profit":66668.91}
|
||||
{"id":3,"date":"2022-03-02T00:00:00.000Z","profit":5344.27}
|
||||
{"id":3,"date":"2022-04-01T00:00:00.000Z","profit":22122.99}
|
||||
{"id":3,"date":"2022-05-01T00:00:00.000Z","profit":27342.01}
|
||||
{"id":3,"date":"2022-05-31T00:00:00.000Z","profit":55479.42}
|
||||
{"id":3,"date":"2022-06-30T00:00:00.000Z","profit":35956.11}
|
||||
{"id":3,"date":"2022-07-30T00:00:00.000Z","profit":9667.12}
|
||||
{"id":3,"date":"2022-08-29T00:00:00.000Z","profit":63430.18}
|
||||
{"id":3,"date":"2022-09-28T00:00:00.000Z","profit":-4883.41}
|
||||
{"id":3,"date":"2022-10-28T00:00:00.000Z","profit":38902.8}
|
||||
{"id":3,"date":"2022-11-27T00:00:00.000Z","profit":-25500.13}
|
||||
{"id":3,"date":"2022-12-27T00:00:00.000Z","profit":65074.21}
|
||||
{"id":3,"date":"2023-01-26T00:00:00.000Z","profit":12570.27}
|
||||
{"id":3,"date":"2023-02-25T00:00:00.000Z","profit":35418.36}
|
||||
{"id":4,"date":"2022-01-01T00:00:00.000Z","profit":68282.98}
|
||||
{"id":4,"date":"2022-01-31T00:00:00.000Z","profit":77778.99}
|
||||
{"id":4,"date":"2022-03-02T00:00:00.000Z","profit":95490.49}
|
||||
{"id":4,"date":"2022-04-01T00:00:00.000Z","profit":-44466.37}
|
||||
{"id":4,"date":"2022-05-01T00:00:00.000Z","profit":40215.71}
|
||||
{"id":4,"date":"2022-05-31T00:00:00.000Z","profit":-31228.87}
|
||||
{"id":4,"date":"2022-06-30T00:00:00.000Z","profit":60667.69}
|
||||
{"id":4,"date":"2022-07-30T00:00:00.000Z","profit":71439.16}
|
||||
{"id":4,"date":"2022-08-29T00:00:00.000Z","profit":-25077.4}
|
||||
{"id":4,"date":"2022-09-28T00:00:00.000Z","profit":-36128.2}
|
||||
{"id":4,"date":"2022-10-28T00:00:00.000Z","profit":36727.68}
|
||||
{"id":4,"date":"2022-11-27T00:00:00.000Z","profit":-24207.2}
|
||||
{"id":4,"date":"2022-12-27T00:00:00.000Z","profit":63846.96}
|
||||
{"id":5,"date":"2022-01-01T00:00:00.000Z","profit":21648.3}
|
||||
{"id":5,"date":"2022-01-31T00:00:00.000Z","profit":59263.22}
|
||||
{"id":5,"date":"2022-03-02T00:00:00.000Z","profit":49154.51}
|
||||
{"id":5,"date":"2022-04-01T00:00:00.000Z","profit":34787.48}
|
||||
{"id":5,"date":"2022-05-01T00:00:00.000Z","profit":-24120.19}
|
||||
{"id":5,"date":"2022-05-31T00:00:00.000Z","profit":98437.86}
|
||||
{"id":5,"date":"2022-06-30T00:00:00.000Z","profit":18614.77}
|
||||
{"id":5,"date":"2022-07-30T00:00:00.000Z","profit":17680.34}
|
||||
{"id":5,"date":"2022-08-29T00:00:00.000Z","profit":74406.86}
|
||||
{"id":5,"date":"2022-09-28T00:00:00.000Z","profit":61845.3}
|
||||
{"id":5,"date":"2022-10-28T00:00:00.000Z","profit":-37889.59}
|
||||
{"id":5,"date":"2022-11-27T00:00:00.000Z","profit":76651.05}
|
||||
{"id":5,"date":"2022-12-27T00:00:00.000Z","profit":58739.6}
|
||||
{"id":5,"date":"2023-01-26T00:00:00.000Z","profit":82605.85}
|
||||
{"id":6,"date":"2022-01-01T00:00:00.000Z","profit":-5206.8}
|
||||
{"id":6,"date":"2022-01-31T00:00:00.000Z","profit":27498.27}
|
||||
{"id":6,"date":"2022-03-02T00:00:00.000Z","profit":-2939.84}
|
||||
{"id":6,"date":"2022-04-01T00:00:00.000Z","profit":-37261.08}
|
||||
{"id":6,"date":"2022-05-01T00:00:00.000Z","profit":37069.04}
|
||||
{"id":6,"date":"2022-05-31T00:00:00.000Z","profit":524.88}
|
||||
{"id":6,"date":"2022-06-30T00:00:00.000Z","profit":-29620.85}
|
||||
{"id":6,"date":"2022-07-30T00:00:00.000Z","profit":35540.81}
|
||||
{"id":6,"date":"2022-08-29T00:00:00.000Z","profit":20608.94}
|
||||
{"id":6,"date":"2022-09-28T00:00:00.000Z","profit":34809.33}
|
||||
{"id":6,"date":"2022-10-28T00:00:00.000Z","profit":-44949.05}
|
||||
{"id":6,"date":"2022-11-27T00:00:00.000Z","profit":-22524.26}
|
||||
{"id":6,"date":"2022-12-27T00:00:00.000Z","profit":37841.58}
|
||||
{"id":7,"date":"2022-01-01T00:00:00.000Z","profit":6903.17}
|
||||
{"id":7,"date":"2022-01-31T00:00:00.000Z","profit":58480.84}
|
||||
{"id":7,"date":"2022-03-02T00:00:00.000Z","profit":48217.34}
|
||||
{"id":7,"date":"2022-04-01T00:00:00.000Z","profit":73592.44}
|
||||
{"id":7,"date":"2022-05-01T00:00:00.000Z","profit":-21831.18}
|
||||
{"id":7,"date":"2022-05-31T00:00:00.000Z","profit":-40926.16}
|
||||
{"id":7,"date":"2022-06-30T00:00:00.000Z","profit":62299.5}
|
||||
{"id":7,"date":"2022-07-30T00:00:00.000Z","profit":95376.53}
|
||||
{"id":7,"date":"2022-08-29T00:00:00.000Z","profit":-13317.36}
|
||||
{"id":7,"date":"2022-09-28T00:00:00.000Z","profit":81565.05}
|
||||
{"id":7,"date":"2022-10-28T00:00:00.000Z","profit":77420.52}
|
||||
{"id":7,"date":"2022-11-27T00:00:00.000Z","profit":-12052.47}
|
||||
{"id":7,"date":"2022-12-27T00:00:00.000Z","profit":37742.07}
|
||||
{"id":7,"date":"2023-01-26T00:00:00.000Z","profit":-8057.99}
|
||||
{"id":8,"date":"2022-01-01T00:00:00.000Z","profit":27213.73}
|
||||
{"id":8,"date":"2022-01-31T00:00:00.000Z","profit":34271.75}
|
||||
{"id":8,"date":"2022-03-02T00:00:00.000Z","profit":-44549.47}
|
||||
{"id":8,"date":"2022-04-01T00:00:00.000Z","profit":15236.34}
|
||||
{"id":8,"date":"2022-05-01T00:00:00.000Z","profit":-27759.81}
|
||||
{"id":8,"date":"2022-05-31T00:00:00.000Z","profit":7955.12}
|
||||
{"id":8,"date":"2022-06-30T00:00:00.000Z","profit":-34484.38}
|
||||
{"id":8,"date":"2022-07-30T00:00:00.000Z","profit":-49758.7}
|
||||
{"id":8,"date":"2022-08-29T00:00:00.000Z","profit":-41990.86}
|
||||
{"id":8,"date":"2022-09-28T00:00:00.000Z","profit":58123.01}
|
||||
{"id":8,"date":"2022-10-28T00:00:00.000Z","profit":30128.78}
|
||||
{"id":8,"date":"2022-11-27T00:00:00.000Z","profit":-10151.17}
|
||||
{"id":8,"date":"2022-12-27T00:00:00.000Z","profit":54048.33}
|
||||
{"id":8,"date":"2023-01-26T00:00:00.000Z","profit":-43123.17}
|
||||
{"id":9,"date":"2022-01-01T00:00:00.000Z","profit":61031.83}
|
||||
{"id":9,"date":"2022-01-31T00:00:00.000Z","profit":68577.58}
|
||||
{"id":9,"date":"2022-03-02T00:00:00.000Z","profit":88698.97}
|
||||
{"id":9,"date":"2022-04-01T00:00:00.000Z","profit":8906.03}
|
||||
{"id":9,"date":"2022-05-01T00:00:00.000Z","profit":28824.73}
|
||||
{"id":9,"date":"2022-05-31T00:00:00.000Z","profit":88280.34}
|
||||
{"id":9,"date":"2022-06-30T00:00:00.000Z","profit":35266.09}
|
||||
{"id":9,"date":"2022-07-30T00:00:00.000Z","profit":-38025.36}
|
||||
{"id":9,"date":"2022-08-29T00:00:00.000Z","profit":-12118.53}
|
||||
{"id":9,"date":"2022-09-28T00:00:00.000Z","profit":-27265.86}
|
||||
{"id":9,"date":"2022-10-28T00:00:00.000Z","profit":56870.57}
|
||||
{"id":9,"date":"2022-11-27T00:00:00.000Z","profit":88078.95}
|
||||
{"id":9,"date":"2022-12-27T00:00:00.000Z","profit":-24059.67}
|
||||
{"id":9,"date":"2023-01-26T00:00:00.000Z","profit":-13301.43}
|
||||
{"id":10,"date":"2022-01-01T00:00:00.000Z","profit":-22479.23}
|
||||
{"id":10,"date":"2022-01-31T00:00:00.000Z","profit":8106.27}
|
||||
{"id":10,"date":"2022-03-02T00:00:00.000Z","profit":69372.19}
|
||||
{"id":10,"date":"2022-04-01T00:00:00.000Z","profit":-11895.74}
|
||||
{"id":10,"date":"2022-05-01T00:00:00.000Z","profit":-33206.5}
|
||||
{"id":10,"date":"2022-05-31T00:00:00.000Z","profit":56073.34}
|
||||
{"id":10,"date":"2022-06-30T00:00:00.000Z","profit":67488.3}
|
||||
{"id":10,"date":"2022-07-30T00:00:00.000Z","profit":48529.23}
|
||||
{"id":10,"date":"2022-08-29T00:00:00.000Z","profit":28680.2}
|
||||
{"id":10,"date":"2022-09-28T00:00:00.000Z","profit":59311.16}
|
||||
{"id":10,"date":"2022-10-28T00:00:00.000Z","profit":25315.78}
|
||||
{"id":10,"date":"2022-11-27T00:00:00.000Z","profit":36116.38}
|
||||
{"id":10,"date":"2022-12-27T00:00:00.000Z","profit":-42040.4}
|
||||
15
e2e-tests/data/charts-sample/finance_reports.table.yaml
Normal file
15
e2e-tests/data/charts-sample/finance_reports.table.yaml
Normal file
@@ -0,0 +1,15 @@
|
||||
name: finance_reports
|
||||
columns:
|
||||
- name: id
|
||||
type: int
|
||||
default: null
|
||||
notNull: true
|
||||
references: projects
|
||||
- name: date
|
||||
type: date
|
||||
default: null
|
||||
notNull: true
|
||||
- name: profit
|
||||
type: money
|
||||
default: null
|
||||
notNull: true
|
||||
11
e2e-tests/data/charts-sample/projects.jsonl
Normal file
11
e2e-tests/data/charts-sample/projects.jsonl
Normal file
@@ -0,0 +1,11 @@
|
||||
{"__isStreamHeader":true,"pureName":"projects","schemaName":"dbo","objectId":1301579675,"createDate":"2025-06-12T10:30:34.127Z","modifyDate":"2025-06-23T12:15:08.750Z","contentHash":"2025-06-23T12:15:08.750Z","columns":[{"columnName":"id","dataType":"int","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false},{"columnName":"name","dataType":"varchar(100)","notNull":true,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false},{"columnName":"start_date","dataType":"date","notNull":false,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false},{"columnName":"end_date","dataType":"date","notNull":false,"autoIncrement":false,"defaultValue":null,"defaultConstraint":null,"computedExpression":null,"hasAutoValue":false}],"primaryKey":{"constraintName":"PK__projects__3213E83F26A7ED11","schemaName":"dbo","pureName":"projects","constraintType":"primaryKey","columns":[{"columnName":"id"}]},"foreignKeys":[],"indexes":[],"uniques":[],"engine":"mssql@dbgate-plugin-mssql"}
|
||||
{"id":1,"name":"Apollo Upgrade","start_date":"2020-04-27T00:00:00.000Z","end_date":"2020-10-19T00:00:00.000Z"}
|
||||
{"id":2,"name":"Market Expansion","start_date":"2022-08-04T00:00:00.000Z","end_date":"2023-06-20T00:00:00.000Z"}
|
||||
{"id":3,"name":"AI Integration","start_date":"2020-05-11T00:00:00.000Z","end_date":"2021-07-10T00:00:00.000Z"}
|
||||
{"id":4,"name":"Cost Reduction","start_date":"2022-01-08T00:00:00.000Z","end_date":"2022-07-12T00:00:00.000Z"}
|
||||
{"id":5,"name":"Cloud Migration","start_date":"2021-01-11T00:00:00.000Z","end_date":"2021-05-27T00:00:00.000Z"}
|
||||
{"id":6,"name":"Customer Portal","start_date":"2021-07-13T00:00:00.000Z","end_date":"2022-09-22T00:00:00.000Z"}
|
||||
{"id":7,"name":"Data Lake","start_date":"2021-02-25T00:00:00.000Z","end_date":"2021-08-21T00:00:00.000Z"}
|
||||
{"id":8,"name":"UX Overhaul","start_date":"2021-05-20T00:00:00.000Z","end_date":"2022-09-10T00:00:00.000Z"}
|
||||
{"id":9,"name":"Security Hardening","start_date":"2021-05-28T00:00:00.000Z","end_date":"2022-07-28T00:00:00.000Z"}
|
||||
{"id":10,"name":"Mobile App Revamp","start_date":"2021-11-17T00:00:00.000Z","end_date":"2022-06-04T00:00:00.000Z"}
|
||||
18
e2e-tests/data/charts-sample/projects.table.yaml
Normal file
18
e2e-tests/data/charts-sample/projects.table.yaml
Normal file
@@ -0,0 +1,18 @@
|
||||
name: projects
|
||||
columns:
|
||||
- name: id
|
||||
type: int
|
||||
default: null
|
||||
notNull: true
|
||||
- name: name
|
||||
type: varchar(100)
|
||||
default: null
|
||||
notNull: true
|
||||
- name: start_date
|
||||
type: date
|
||||
default: null
|
||||
- name: end_date
|
||||
type: date
|
||||
default: null
|
||||
primaryKey:
|
||||
- id
|
||||
347
e2e-tests/data/chinook-jsonl/Album.jsonl
Normal file
347
e2e-tests/data/chinook-jsonl/Album.jsonl
Normal file
@@ -0,0 +1,347 @@
|
||||
{"AlbumId":1,"Title":"For Those About To Rock We Salute You","ArtistId":1}
|
||||
{"AlbumId":2,"Title":"Balls to the Wall","ArtistId":2}
|
||||
{"AlbumId":3,"Title":"Restless and Wild","ArtistId":2}
|
||||
{"AlbumId":4,"Title":"Let There Be Rock","ArtistId":1}
|
||||
{"AlbumId":5,"Title":"Big Ones","ArtistId":3}
|
||||
{"AlbumId":6,"Title":"Jagged Little Pill","ArtistId":4}
|
||||
{"AlbumId":7,"Title":"Facelift","ArtistId":5}
|
||||
{"AlbumId":8,"Title":"Warner 25 Anos","ArtistId":6}
|
||||
{"AlbumId":9,"Title":"Plays Metallica By Four Cellos","ArtistId":7}
|
||||
{"AlbumId":10,"Title":"Audioslave","ArtistId":8}
|
||||
{"AlbumId":11,"Title":"Out Of Exile","ArtistId":8}
|
||||
{"AlbumId":12,"Title":"BackBeat Soundtrack","ArtistId":9}
|
||||
{"AlbumId":13,"Title":"The Best Of Billy Cobham","ArtistId":10}
|
||||
{"AlbumId":14,"Title":"Alcohol Fueled Brewtality Live! [Disc 1]","ArtistId":11}
|
||||
{"AlbumId":15,"Title":"Alcohol Fueled Brewtality Live! [Disc 2]","ArtistId":11}
|
||||
{"AlbumId":16,"Title":"Black Sabbath","ArtistId":12}
|
||||
{"AlbumId":17,"Title":"Black Sabbath Vol. 4 (Remaster)","ArtistId":12}
|
||||
{"AlbumId":18,"Title":"Body Count","ArtistId":13}
|
||||
{"AlbumId":19,"Title":"Chemical Wedding","ArtistId":14}
|
||||
{"AlbumId":20,"Title":"The Best Of Buddy Guy - The Millenium Collection","ArtistId":15}
|
||||
{"AlbumId":21,"Title":"Prenda Minha","ArtistId":16}
|
||||
{"AlbumId":22,"Title":"Sozinho Remix Ao Vivo","ArtistId":16}
|
||||
{"AlbumId":23,"Title":"Minha Historia","ArtistId":17}
|
||||
{"AlbumId":24,"Title":"Afrociberdelia","ArtistId":18}
|
||||
{"AlbumId":25,"Title":"Da Lama Ao Caos","ArtistId":18}
|
||||
{"AlbumId":26,"Title":"Acústico MTV [Live]","ArtistId":19}
|
||||
{"AlbumId":27,"Title":"Cidade Negra - Hits","ArtistId":19}
|
||||
{"AlbumId":28,"Title":"Na Pista","ArtistId":20}
|
||||
{"AlbumId":29,"Title":"Axé Bahia 2001","ArtistId":21}
|
||||
{"AlbumId":30,"Title":"BBC Sessions [Disc 1] [Live]","ArtistId":22}
|
||||
{"AlbumId":31,"Title":"Bongo Fury","ArtistId":23}
|
||||
{"AlbumId":32,"Title":"Carnaval 2001","ArtistId":21}
|
||||
{"AlbumId":33,"Title":"Chill: Brazil (Disc 1)","ArtistId":24}
|
||||
{"AlbumId":34,"Title":"Chill: Brazil (Disc 2)","ArtistId":6}
|
||||
{"AlbumId":35,"Title":"Garage Inc. (Disc 1)","ArtistId":50}
|
||||
{"AlbumId":36,"Title":"Greatest Hits II","ArtistId":51}
|
||||
{"AlbumId":37,"Title":"Greatest Kiss","ArtistId":52}
|
||||
{"AlbumId":38,"Title":"Heart of the Night","ArtistId":53}
|
||||
{"AlbumId":39,"Title":"International Superhits","ArtistId":54}
|
||||
{"AlbumId":40,"Title":"Into The Light","ArtistId":55}
|
||||
{"AlbumId":41,"Title":"Meus Momentos","ArtistId":56}
|
||||
{"AlbumId":42,"Title":"Minha História","ArtistId":57}
|
||||
{"AlbumId":43,"Title":"MK III The Final Concerts [Disc 1]","ArtistId":58}
|
||||
{"AlbumId":44,"Title":"Physical Graffiti [Disc 1]","ArtistId":22}
|
||||
{"AlbumId":45,"Title":"Sambas De Enredo 2001","ArtistId":21}
|
||||
{"AlbumId":46,"Title":"Supernatural","ArtistId":59}
|
||||
{"AlbumId":47,"Title":"The Best of Ed Motta","ArtistId":37}
|
||||
{"AlbumId":48,"Title":"The Essential Miles Davis [Disc 1]","ArtistId":68}
|
||||
{"AlbumId":49,"Title":"The Essential Miles Davis [Disc 2]","ArtistId":68}
|
||||
{"AlbumId":50,"Title":"The Final Concerts (Disc 2)","ArtistId":58}
|
||||
{"AlbumId":51,"Title":"Up An' Atom","ArtistId":69}
|
||||
{"AlbumId":52,"Title":"Vinícius De Moraes - Sem Limite","ArtistId":70}
|
||||
{"AlbumId":53,"Title":"Vozes do MPB","ArtistId":21}
|
||||
{"AlbumId":54,"Title":"Chronicle, Vol. 1","ArtistId":76}
|
||||
{"AlbumId":55,"Title":"Chronicle, Vol. 2","ArtistId":76}
|
||||
{"AlbumId":56,"Title":"Cássia Eller - Coleçăo Sem Limite [Disc 2]","ArtistId":77}
|
||||
{"AlbumId":57,"Title":"Cássia Eller - Sem Limite [Disc 1]","ArtistId":77}
|
||||
{"AlbumId":58,"Title":"Come Taste The Band","ArtistId":58}
|
||||
{"AlbumId":59,"Title":"Deep Purple In Rock","ArtistId":58}
|
||||
{"AlbumId":60,"Title":"Fireball","ArtistId":58}
|
||||
{"AlbumId":61,"Title":"Knocking at Your Back Door: The Best Of Deep Purple in the 80's","ArtistId":58}
|
||||
{"AlbumId":62,"Title":"Machine Head","ArtistId":58}
|
||||
{"AlbumId":63,"Title":"Purpendicular","ArtistId":58}
|
||||
{"AlbumId":64,"Title":"Slaves And Masters","ArtistId":58}
|
||||
{"AlbumId":65,"Title":"Stormbringer","ArtistId":58}
|
||||
{"AlbumId":66,"Title":"The Battle Rages On","ArtistId":58}
|
||||
{"AlbumId":67,"Title":"Vault: Def Leppard's Greatest Hits","ArtistId":78}
|
||||
{"AlbumId":68,"Title":"Outbreak","ArtistId":79}
|
||||
{"AlbumId":69,"Title":"Djavan Ao Vivo - Vol. 02","ArtistId":80}
|
||||
{"AlbumId":70,"Title":"Djavan Ao Vivo - Vol. 1","ArtistId":80}
|
||||
{"AlbumId":71,"Title":"Elis Regina-Minha História","ArtistId":41}
|
||||
{"AlbumId":72,"Title":"The Cream Of Clapton","ArtistId":81}
|
||||
{"AlbumId":73,"Title":"Unplugged","ArtistId":81}
|
||||
{"AlbumId":74,"Title":"Album Of The Year","ArtistId":82}
|
||||
{"AlbumId":75,"Title":"Angel Dust","ArtistId":82}
|
||||
{"AlbumId":76,"Title":"King For A Day Fool For A Lifetime","ArtistId":82}
|
||||
{"AlbumId":77,"Title":"The Real Thing","ArtistId":82}
|
||||
{"AlbumId":78,"Title":"Deixa Entrar","ArtistId":83}
|
||||
{"AlbumId":79,"Title":"In Your Honor [Disc 1]","ArtistId":84}
|
||||
{"AlbumId":80,"Title":"In Your Honor [Disc 2]","ArtistId":84}
|
||||
{"AlbumId":81,"Title":"One By One","ArtistId":84}
|
||||
{"AlbumId":82,"Title":"The Colour And The Shape","ArtistId":84}
|
||||
{"AlbumId":83,"Title":"My Way: The Best Of Frank Sinatra [Disc 1]","ArtistId":85}
|
||||
{"AlbumId":84,"Title":"Roda De Funk","ArtistId":86}
|
||||
{"AlbumId":85,"Title":"As Cançőes de Eu Tu Eles","ArtistId":27}
|
||||
{"AlbumId":86,"Title":"Quanta Gente Veio Ver (Live)","ArtistId":27}
|
||||
{"AlbumId":87,"Title":"Quanta Gente Veio ver--Bônus De Carnaval","ArtistId":27}
|
||||
{"AlbumId":88,"Title":"Faceless","ArtistId":87}
|
||||
{"AlbumId":89,"Title":"American Idiot","ArtistId":54}
|
||||
{"AlbumId":90,"Title":"Appetite for Destruction","ArtistId":88}
|
||||
{"AlbumId":91,"Title":"Use Your Illusion I","ArtistId":88}
|
||||
{"AlbumId":92,"Title":"Use Your Illusion II","ArtistId":88}
|
||||
{"AlbumId":93,"Title":"Blue Moods","ArtistId":89}
|
||||
{"AlbumId":94,"Title":"A Matter of Life and Death","ArtistId":90}
|
||||
{"AlbumId":95,"Title":"A Real Dead One","ArtistId":90}
|
||||
{"AlbumId":96,"Title":"A Real Live One","ArtistId":90}
|
||||
{"AlbumId":97,"Title":"Brave New World","ArtistId":90}
|
||||
{"AlbumId":98,"Title":"Dance Of Death","ArtistId":90}
|
||||
{"AlbumId":99,"Title":"Fear Of The Dark","ArtistId":90}
|
||||
{"AlbumId":100,"Title":"Iron Maiden","ArtistId":90}
|
||||
{"AlbumId":101,"Title":"Killers","ArtistId":90}
|
||||
{"AlbumId":102,"Title":"Live After Death","ArtistId":90}
|
||||
{"AlbumId":103,"Title":"Live At Donington 1992 (Disc 1)","ArtistId":90}
|
||||
{"AlbumId":104,"Title":"Live At Donington 1992 (Disc 2)","ArtistId":90}
|
||||
{"AlbumId":105,"Title":"No Prayer For The Dying","ArtistId":90}
|
||||
{"AlbumId":106,"Title":"Piece Of Mind","ArtistId":90}
|
||||
{"AlbumId":107,"Title":"Powerslave","ArtistId":90}
|
||||
{"AlbumId":108,"Title":"Rock In Rio [CD1]","ArtistId":90}
|
||||
{"AlbumId":109,"Title":"Rock In Rio [CD2]","ArtistId":90}
|
||||
{"AlbumId":110,"Title":"Seventh Son of a Seventh Son","ArtistId":90}
|
||||
{"AlbumId":111,"Title":"Somewhere in Time","ArtistId":90}
|
||||
{"AlbumId":112,"Title":"The Number of The Beast","ArtistId":90}
|
||||
{"AlbumId":113,"Title":"The X Factor","ArtistId":90}
|
||||
{"AlbumId":114,"Title":"Virtual XI","ArtistId":90}
|
||||
{"AlbumId":115,"Title":"Sex Machine","ArtistId":91}
|
||||
{"AlbumId":116,"Title":"Emergency On Planet Earth","ArtistId":92}
|
||||
{"AlbumId":117,"Title":"Synkronized","ArtistId":92}
|
||||
{"AlbumId":118,"Title":"The Return Of The Space Cowboy","ArtistId":92}
|
||||
{"AlbumId":119,"Title":"Get Born","ArtistId":93}
|
||||
{"AlbumId":120,"Title":"Are You Experienced?","ArtistId":94}
|
||||
{"AlbumId":121,"Title":"Surfing with the Alien (Remastered)","ArtistId":95}
|
||||
{"AlbumId":122,"Title":"Jorge Ben Jor 25 Anos","ArtistId":46}
|
||||
{"AlbumId":123,"Title":"Jota Quest-1995","ArtistId":96}
|
||||
{"AlbumId":124,"Title":"Cafezinho","ArtistId":97}
|
||||
{"AlbumId":125,"Title":"Living After Midnight","ArtistId":98}
|
||||
{"AlbumId":126,"Title":"Unplugged [Live]","ArtistId":52}
|
||||
{"AlbumId":127,"Title":"BBC Sessions [Disc 2] [Live]","ArtistId":22}
|
||||
{"AlbumId":128,"Title":"Coda","ArtistId":22}
|
||||
{"AlbumId":129,"Title":"Houses Of The Holy","ArtistId":22}
|
||||
{"AlbumId":130,"Title":"In Through The Out Door","ArtistId":22}
|
||||
{"AlbumId":131,"Title":"IV","ArtistId":22}
|
||||
{"AlbumId":132,"Title":"Led Zeppelin I","ArtistId":22}
|
||||
{"AlbumId":133,"Title":"Led Zeppelin II","ArtistId":22}
|
||||
{"AlbumId":134,"Title":"Led Zeppelin III","ArtistId":22}
|
||||
{"AlbumId":135,"Title":"Physical Graffiti [Disc 2]","ArtistId":22}
|
||||
{"AlbumId":136,"Title":"Presence","ArtistId":22}
|
||||
{"AlbumId":137,"Title":"The Song Remains The Same (Disc 1)","ArtistId":22}
|
||||
{"AlbumId":138,"Title":"The Song Remains The Same (Disc 2)","ArtistId":22}
|
||||
{"AlbumId":139,"Title":"A TempestadeTempestade Ou O Livro Dos Dias","ArtistId":99}
|
||||
{"AlbumId":140,"Title":"Mais Do Mesmo","ArtistId":99}
|
||||
{"AlbumId":141,"Title":"Greatest Hits","ArtistId":100}
|
||||
{"AlbumId":142,"Title":"Lulu Santos - RCA 100 Anos De Música - Álbum 01","ArtistId":101}
|
||||
{"AlbumId":143,"Title":"Lulu Santos - RCA 100 Anos De Música - Álbum 02","ArtistId":101}
|
||||
{"AlbumId":144,"Title":"Misplaced Childhood","ArtistId":102}
|
||||
{"AlbumId":145,"Title":"Barulhinho Bom","ArtistId":103}
|
||||
{"AlbumId":146,"Title":"Seek And Shall Find: More Of The Best (1963-1981)","ArtistId":104}
|
||||
{"AlbumId":147,"Title":"The Best Of Men At Work","ArtistId":105}
|
||||
{"AlbumId":148,"Title":"Black Album","ArtistId":50}
|
||||
{"AlbumId":149,"Title":"Garage Inc. (Disc 2)","ArtistId":50}
|
||||
{"AlbumId":150,"Title":"Kill 'Em All","ArtistId":50}
|
||||
{"AlbumId":151,"Title":"Load","ArtistId":50}
|
||||
{"AlbumId":152,"Title":"Master Of Puppets","ArtistId":50}
|
||||
{"AlbumId":153,"Title":"ReLoad","ArtistId":50}
|
||||
{"AlbumId":154,"Title":"Ride The Lightning","ArtistId":50}
|
||||
{"AlbumId":155,"Title":"St. Anger","ArtistId":50}
|
||||
{"AlbumId":156,"Title":"...And Justice For All","ArtistId":50}
|
||||
{"AlbumId":157,"Title":"Miles Ahead","ArtistId":68}
|
||||
{"AlbumId":158,"Title":"Milton Nascimento Ao Vivo","ArtistId":42}
|
||||
{"AlbumId":159,"Title":"Minas","ArtistId":42}
|
||||
{"AlbumId":160,"Title":"Ace Of Spades","ArtistId":106}
|
||||
{"AlbumId":161,"Title":"Demorou...","ArtistId":108}
|
||||
{"AlbumId":162,"Title":"Motley Crue Greatest Hits","ArtistId":109}
|
||||
{"AlbumId":163,"Title":"From The Muddy Banks Of The Wishkah [Live]","ArtistId":110}
|
||||
{"AlbumId":164,"Title":"Nevermind","ArtistId":110}
|
||||
{"AlbumId":165,"Title":"Compositores","ArtistId":111}
|
||||
{"AlbumId":166,"Title":"Olodum","ArtistId":112}
|
||||
{"AlbumId":167,"Title":"Acústico MTV","ArtistId":113}
|
||||
{"AlbumId":168,"Title":"Arquivo II","ArtistId":113}
|
||||
{"AlbumId":169,"Title":"Arquivo Os Paralamas Do Sucesso","ArtistId":113}
|
||||
{"AlbumId":170,"Title":"Bark at the Moon (Remastered)","ArtistId":114}
|
||||
{"AlbumId":171,"Title":"Blizzard of Ozz","ArtistId":114}
|
||||
{"AlbumId":172,"Title":"Diary of a Madman (Remastered)","ArtistId":114}
|
||||
{"AlbumId":173,"Title":"No More Tears (Remastered)","ArtistId":114}
|
||||
{"AlbumId":174,"Title":"Tribute","ArtistId":114}
|
||||
{"AlbumId":175,"Title":"Walking Into Clarksdale","ArtistId":115}
|
||||
{"AlbumId":176,"Title":"Original Soundtracks 1","ArtistId":116}
|
||||
{"AlbumId":177,"Title":"The Beast Live","ArtistId":117}
|
||||
{"AlbumId":178,"Title":"Live On Two Legs [Live]","ArtistId":118}
|
||||
{"AlbumId":179,"Title":"Pearl Jam","ArtistId":118}
|
||||
{"AlbumId":180,"Title":"Riot Act","ArtistId":118}
|
||||
{"AlbumId":181,"Title":"Ten","ArtistId":118}
|
||||
{"AlbumId":182,"Title":"Vs.","ArtistId":118}
|
||||
{"AlbumId":183,"Title":"Dark Side Of The Moon","ArtistId":120}
|
||||
{"AlbumId":184,"Title":"Os Căes Ladram Mas A Caravana Năo Pára","ArtistId":121}
|
||||
{"AlbumId":185,"Title":"Greatest Hits I","ArtistId":51}
|
||||
{"AlbumId":186,"Title":"News Of The World","ArtistId":51}
|
||||
{"AlbumId":187,"Title":"Out Of Time","ArtistId":122}
|
||||
{"AlbumId":188,"Title":"Green","ArtistId":124}
|
||||
{"AlbumId":189,"Title":"New Adventures In Hi-Fi","ArtistId":124}
|
||||
{"AlbumId":190,"Title":"The Best Of R.E.M.: The IRS Years","ArtistId":124}
|
||||
{"AlbumId":191,"Title":"Cesta Básica","ArtistId":125}
|
||||
{"AlbumId":192,"Title":"Raul Seixas","ArtistId":126}
|
||||
{"AlbumId":193,"Title":"Blood Sugar Sex Magik","ArtistId":127}
|
||||
{"AlbumId":194,"Title":"By The Way","ArtistId":127}
|
||||
{"AlbumId":195,"Title":"Californication","ArtistId":127}
|
||||
{"AlbumId":196,"Title":"Retrospective I (1974-1980)","ArtistId":128}
|
||||
{"AlbumId":197,"Title":"Santana - As Years Go By","ArtistId":59}
|
||||
{"AlbumId":198,"Title":"Santana Live","ArtistId":59}
|
||||
{"AlbumId":199,"Title":"Maquinarama","ArtistId":130}
|
||||
{"AlbumId":200,"Title":"O Samba Poconé","ArtistId":130}
|
||||
{"AlbumId":201,"Title":"Judas 0: B-Sides and Rarities","ArtistId":131}
|
||||
{"AlbumId":202,"Title":"Rotten Apples: Greatest Hits","ArtistId":131}
|
||||
{"AlbumId":203,"Title":"A-Sides","ArtistId":132}
|
||||
{"AlbumId":204,"Title":"Morning Dance","ArtistId":53}
|
||||
{"AlbumId":205,"Title":"In Step","ArtistId":133}
|
||||
{"AlbumId":206,"Title":"Core","ArtistId":134}
|
||||
{"AlbumId":207,"Title":"Mezmerize","ArtistId":135}
|
||||
{"AlbumId":208,"Title":"[1997] Black Light Syndrome","ArtistId":136}
|
||||
{"AlbumId":209,"Title":"Live [Disc 1]","ArtistId":137}
|
||||
{"AlbumId":210,"Title":"Live [Disc 2]","ArtistId":137}
|
||||
{"AlbumId":211,"Title":"The Singles","ArtistId":138}
|
||||
{"AlbumId":212,"Title":"Beyond Good And Evil","ArtistId":139}
|
||||
{"AlbumId":213,"Title":"Pure Cult: The Best Of The Cult (For Rockers, Ravers, Lovers & Sinners) [UK]","ArtistId":139}
|
||||
{"AlbumId":214,"Title":"The Doors","ArtistId":140}
|
||||
{"AlbumId":215,"Title":"The Police Greatest Hits","ArtistId":141}
|
||||
{"AlbumId":216,"Title":"Hot Rocks, 1964-1971 (Disc 1)","ArtistId":142}
|
||||
{"AlbumId":217,"Title":"No Security","ArtistId":142}
|
||||
{"AlbumId":218,"Title":"Voodoo Lounge","ArtistId":142}
|
||||
{"AlbumId":219,"Title":"Tangents","ArtistId":143}
|
||||
{"AlbumId":220,"Title":"Transmission","ArtistId":143}
|
||||
{"AlbumId":221,"Title":"My Generation - The Very Best Of The Who","ArtistId":144}
|
||||
{"AlbumId":222,"Title":"Serie Sem Limite (Disc 1)","ArtistId":145}
|
||||
{"AlbumId":223,"Title":"Serie Sem Limite (Disc 2)","ArtistId":145}
|
||||
{"AlbumId":224,"Title":"Acústico","ArtistId":146}
|
||||
{"AlbumId":225,"Title":"Volume Dois","ArtistId":146}
|
||||
{"AlbumId":226,"Title":"Battlestar Galactica: The Story So Far","ArtistId":147}
|
||||
{"AlbumId":227,"Title":"Battlestar Galactica, Season 3","ArtistId":147}
|
||||
{"AlbumId":228,"Title":"Heroes, Season 1","ArtistId":148}
|
||||
{"AlbumId":229,"Title":"Lost, Season 3","ArtistId":149}
|
||||
{"AlbumId":230,"Title":"Lost, Season 1","ArtistId":149}
|
||||
{"AlbumId":231,"Title":"Lost, Season 2","ArtistId":149}
|
||||
{"AlbumId":232,"Title":"Achtung Baby","ArtistId":150}
|
||||
{"AlbumId":233,"Title":"All That You Can't Leave Behind","ArtistId":150}
|
||||
{"AlbumId":234,"Title":"B-Sides 1980-1990","ArtistId":150}
|
||||
{"AlbumId":235,"Title":"How To Dismantle An Atomic Bomb","ArtistId":150}
|
||||
{"AlbumId":236,"Title":"Pop","ArtistId":150}
|
||||
{"AlbumId":237,"Title":"Rattle And Hum","ArtistId":150}
|
||||
{"AlbumId":238,"Title":"The Best Of 1980-1990","ArtistId":150}
|
||||
{"AlbumId":239,"Title":"War","ArtistId":150}
|
||||
{"AlbumId":240,"Title":"Zooropa","ArtistId":150}
|
||||
{"AlbumId":241,"Title":"UB40 The Best Of - Volume Two [UK]","ArtistId":151}
|
||||
{"AlbumId":242,"Title":"Diver Down","ArtistId":152}
|
||||
{"AlbumId":243,"Title":"The Best Of Van Halen, Vol. I","ArtistId":152}
|
||||
{"AlbumId":244,"Title":"Van Halen","ArtistId":152}
|
||||
{"AlbumId":245,"Title":"Van Halen III","ArtistId":152}
|
||||
{"AlbumId":246,"Title":"Contraband","ArtistId":153}
|
||||
{"AlbumId":247,"Title":"Vinicius De Moraes","ArtistId":72}
|
||||
{"AlbumId":248,"Title":"Ao Vivo [IMPORT]","ArtistId":155}
|
||||
{"AlbumId":249,"Title":"The Office, Season 1","ArtistId":156}
|
||||
{"AlbumId":250,"Title":"The Office, Season 2","ArtistId":156}
|
||||
{"AlbumId":251,"Title":"The Office, Season 3","ArtistId":156}
|
||||
{"AlbumId":252,"Title":"Un-Led-Ed","ArtistId":157}
|
||||
{"AlbumId":253,"Title":"Battlestar Galactica (Classic), Season 1","ArtistId":158}
|
||||
{"AlbumId":254,"Title":"Aquaman","ArtistId":159}
|
||||
{"AlbumId":255,"Title":"Instant Karma: The Amnesty International Campaign to Save Darfur","ArtistId":150}
|
||||
{"AlbumId":256,"Title":"Speak of the Devil","ArtistId":114}
|
||||
{"AlbumId":257,"Title":"20th Century Masters - The Millennium Collection: The Best of Scorpions","ArtistId":179}
|
||||
{"AlbumId":258,"Title":"House of Pain","ArtistId":180}
|
||||
{"AlbumId":259,"Title":"Radio Brasil (O Som da Jovem Vanguarda) - Seleccao de Henrique Amaro","ArtistId":36}
|
||||
{"AlbumId":260,"Title":"Cake: B-Sides and Rarities","ArtistId":196}
|
||||
{"AlbumId":261,"Title":"LOST, Season 4","ArtistId":149}
|
||||
{"AlbumId":262,"Title":"Quiet Songs","ArtistId":197}
|
||||
{"AlbumId":263,"Title":"Muso Ko","ArtistId":198}
|
||||
{"AlbumId":264,"Title":"Realize","ArtistId":199}
|
||||
{"AlbumId":265,"Title":"Every Kind of Light","ArtistId":200}
|
||||
{"AlbumId":266,"Title":"Duos II","ArtistId":201}
|
||||
{"AlbumId":267,"Title":"Worlds","ArtistId":202}
|
||||
{"AlbumId":268,"Title":"The Best of Beethoven","ArtistId":203}
|
||||
{"AlbumId":269,"Title":"Temple of the Dog","ArtistId":204}
|
||||
{"AlbumId":270,"Title":"Carry On","ArtistId":205}
|
||||
{"AlbumId":271,"Title":"Revelations","ArtistId":8}
|
||||
{"AlbumId":272,"Title":"Adorate Deum: Gregorian Chant from the Proper of the Mass","ArtistId":206}
|
||||
{"AlbumId":273,"Title":"Allegri: Miserere","ArtistId":207}
|
||||
{"AlbumId":274,"Title":"Pachelbel: Canon & Gigue","ArtistId":208}
|
||||
{"AlbumId":275,"Title":"Vivaldi: The Four Seasons","ArtistId":209}
|
||||
{"AlbumId":276,"Title":"Bach: Violin Concertos","ArtistId":210}
|
||||
{"AlbumId":277,"Title":"Bach: Goldberg Variations","ArtistId":211}
|
||||
{"AlbumId":278,"Title":"Bach: The Cello Suites","ArtistId":212}
|
||||
{"AlbumId":279,"Title":"Handel: The Messiah (Highlights)","ArtistId":213}
|
||||
{"AlbumId":280,"Title":"The World of Classical Favourites","ArtistId":214}
|
||||
{"AlbumId":281,"Title":"Sir Neville Marriner: A Celebration","ArtistId":215}
|
||||
{"AlbumId":282,"Title":"Mozart: Wind Concertos","ArtistId":216}
|
||||
{"AlbumId":283,"Title":"Haydn: Symphonies 99 - 104","ArtistId":217}
|
||||
{"AlbumId":284,"Title":"Beethoven: Symhonies Nos. 5 & 6","ArtistId":218}
|
||||
{"AlbumId":285,"Title":"A Soprano Inspired","ArtistId":219}
|
||||
{"AlbumId":286,"Title":"Great Opera Choruses","ArtistId":220}
|
||||
{"AlbumId":287,"Title":"Wagner: Favourite Overtures","ArtistId":221}
|
||||
{"AlbumId":288,"Title":"Fauré: Requiem, Ravel: Pavane & Others","ArtistId":222}
|
||||
{"AlbumId":289,"Title":"Tchaikovsky: The Nutcracker","ArtistId":223}
|
||||
{"AlbumId":290,"Title":"The Last Night of the Proms","ArtistId":224}
|
||||
{"AlbumId":291,"Title":"Puccini: Madama Butterfly - Highlights","ArtistId":225}
|
||||
{"AlbumId":292,"Title":"Holst: The Planets, Op. 32 & Vaughan Williams: Fantasies","ArtistId":226}
|
||||
{"AlbumId":293,"Title":"Pavarotti's Opera Made Easy","ArtistId":227}
|
||||
{"AlbumId":294,"Title":"Great Performances - Barber's Adagio and Other Romantic Favorites for Strings","ArtistId":228}
|
||||
{"AlbumId":295,"Title":"Carmina Burana","ArtistId":229}
|
||||
{"AlbumId":296,"Title":"A Copland Celebration, Vol. I","ArtistId":230}
|
||||
{"AlbumId":297,"Title":"Bach: Toccata & Fugue in D Minor","ArtistId":231}
|
||||
{"AlbumId":298,"Title":"Prokofiev: Symphony No.1","ArtistId":232}
|
||||
{"AlbumId":299,"Title":"Scheherazade","ArtistId":233}
|
||||
{"AlbumId":300,"Title":"Bach: The Brandenburg Concertos","ArtistId":234}
|
||||
{"AlbumId":301,"Title":"Chopin: Piano Concertos Nos. 1 & 2","ArtistId":235}
|
||||
{"AlbumId":302,"Title":"Mascagni: Cavalleria Rusticana","ArtistId":236}
|
||||
{"AlbumId":303,"Title":"Sibelius: Finlandia","ArtistId":237}
|
||||
{"AlbumId":304,"Title":"Beethoven Piano Sonatas: Moonlight & Pastorale","ArtistId":238}
|
||||
{"AlbumId":305,"Title":"Great Recordings of the Century - Mahler: Das Lied von der Erde","ArtistId":240}
|
||||
{"AlbumId":306,"Title":"Elgar: Cello Concerto & Vaughan Williams: Fantasias","ArtistId":241}
|
||||
{"AlbumId":307,"Title":"Adams, John: The Chairman Dances","ArtistId":242}
|
||||
{"AlbumId":308,"Title":"Tchaikovsky: 1812 Festival Overture, Op.49, Capriccio Italien & Beethoven: Wellington's Victory","ArtistId":243}
|
||||
{"AlbumId":309,"Title":"Palestrina: Missa Papae Marcelli & Allegri: Miserere","ArtistId":244}
|
||||
{"AlbumId":310,"Title":"Prokofiev: Romeo & Juliet","ArtistId":245}
|
||||
{"AlbumId":311,"Title":"Strauss: Waltzes","ArtistId":226}
|
||||
{"AlbumId":312,"Title":"Berlioz: Symphonie Fantastique","ArtistId":245}
|
||||
{"AlbumId":313,"Title":"Bizet: Carmen Highlights","ArtistId":246}
|
||||
{"AlbumId":314,"Title":"English Renaissance","ArtistId":247}
|
||||
{"AlbumId":315,"Title":"Handel: Music for the Royal Fireworks (Original Version 1749)","ArtistId":208}
|
||||
{"AlbumId":316,"Title":"Grieg: Peer Gynt Suites & Sibelius: Pelléas et Mélisande","ArtistId":248}
|
||||
{"AlbumId":317,"Title":"Mozart Gala: Famous Arias","ArtistId":249}
|
||||
{"AlbumId":318,"Title":"SCRIABIN: Vers la flamme","ArtistId":250}
|
||||
{"AlbumId":319,"Title":"Armada: Music from the Courts of England and Spain","ArtistId":251}
|
||||
{"AlbumId":320,"Title":"Mozart: Symphonies Nos. 40 & 41","ArtistId":248}
|
||||
{"AlbumId":321,"Title":"Back to Black","ArtistId":252}
|
||||
{"AlbumId":322,"Title":"Frank","ArtistId":252}
|
||||
{"AlbumId":323,"Title":"Carried to Dust (Bonus Track Version)","ArtistId":253}
|
||||
{"AlbumId":324,"Title":"Beethoven: Symphony No. 6 'Pastoral' Etc.","ArtistId":254}
|
||||
{"AlbumId":325,"Title":"Bartok: Violin & Viola Concertos","ArtistId":255}
|
||||
{"AlbumId":326,"Title":"Mendelssohn: A Midsummer Night's Dream","ArtistId":256}
|
||||
{"AlbumId":327,"Title":"Bach: Orchestral Suites Nos. 1 - 4","ArtistId":257}
|
||||
{"AlbumId":328,"Title":"Charpentier: Divertissements, Airs & Concerts","ArtistId":258}
|
||||
{"AlbumId":329,"Title":"South American Getaway","ArtistId":259}
|
||||
{"AlbumId":330,"Title":"Górecki: Symphony No. 3","ArtistId":260}
|
||||
{"AlbumId":331,"Title":"Purcell: The Fairy Queen","ArtistId":261}
|
||||
{"AlbumId":332,"Title":"The Ultimate Relexation Album","ArtistId":262}
|
||||
{"AlbumId":333,"Title":"Purcell: Music for the Queen Mary","ArtistId":263}
|
||||
{"AlbumId":334,"Title":"Weill: The Seven Deadly Sins","ArtistId":264}
|
||||
{"AlbumId":335,"Title":"J.S. Bach: Chaconne, Suite in E Minor, Partita in E Major & Prelude, Fugue and Allegro","ArtistId":265}
|
||||
{"AlbumId":336,"Title":"Prokofiev: Symphony No.5 & Stravinksy: Le Sacre Du Printemps","ArtistId":248}
|
||||
{"AlbumId":337,"Title":"Szymanowski: Piano Works, Vol. 1","ArtistId":266}
|
||||
{"AlbumId":338,"Title":"Nielsen: The Six Symphonies","ArtistId":267}
|
||||
{"AlbumId":339,"Title":"Great Recordings of the Century: Paganini's 24 Caprices","ArtistId":268}
|
||||
{"AlbumId":340,"Title":"Liszt - 12 Études D'Execution Transcendante","ArtistId":269}
|
||||
{"AlbumId":341,"Title":"Great Recordings of the Century - Shubert: Schwanengesang, 4 Lieder","ArtistId":270}
|
||||
{"AlbumId":342,"Title":"Locatelli: Concertos for Violin, Strings and Continuo, Vol. 3","ArtistId":271}
|
||||
{"AlbumId":343,"Title":"Respighi:Pines of Rome","ArtistId":226}
|
||||
{"AlbumId":344,"Title":"Schubert: The Late String Quartets & String Quintet (3 CD's)","ArtistId":272}
|
||||
{"AlbumId":345,"Title":"Monteverdi: L'Orfeo","ArtistId":273}
|
||||
{"AlbumId":346,"Title":"Mozart: Chamber Music","ArtistId":274}
|
||||
{"AlbumId":347,"Title":"Koyaanisqatsi (Soundtrack from the Motion Picture)","ArtistId":275}
|
||||
275
e2e-tests/data/chinook-jsonl/Artist.jsonl
Normal file
275
e2e-tests/data/chinook-jsonl/Artist.jsonl
Normal file
@@ -0,0 +1,275 @@
|
||||
{"ArtistId":1,"Name":"AC/DC"}
|
||||
{"ArtistId":2,"Name":"Accept"}
|
||||
{"ArtistId":3,"Name":"Aerosmith"}
|
||||
{"ArtistId":4,"Name":"Alanis Morissette"}
|
||||
{"ArtistId":5,"Name":"Alice In Chains"}
|
||||
{"ArtistId":6,"Name":"Antônio Carlos Jobim"}
|
||||
{"ArtistId":7,"Name":"Apocalyptica"}
|
||||
{"ArtistId":8,"Name":"Audioslave"}
|
||||
{"ArtistId":9,"Name":"BackBeat"}
|
||||
{"ArtistId":10,"Name":"Billy Cobham"}
|
||||
{"ArtistId":11,"Name":"Black Label Society"}
|
||||
{"ArtistId":12,"Name":"Black Sabbath"}
|
||||
{"ArtistId":13,"Name":"Body Count"}
|
||||
{"ArtistId":14,"Name":"Bruce Dickinson"}
|
||||
{"ArtistId":15,"Name":"Buddy Guy"}
|
||||
{"ArtistId":16,"Name":"Caetano Veloso"}
|
||||
{"ArtistId":17,"Name":"Chico Buarque"}
|
||||
{"ArtistId":18,"Name":"Chico Science & Naçăo Zumbi"}
|
||||
{"ArtistId":19,"Name":"Cidade Negra"}
|
||||
{"ArtistId":20,"Name":"Cláudio Zoli"}
|
||||
{"ArtistId":21,"Name":"Various Artists"}
|
||||
{"ArtistId":22,"Name":"Led Zeppelin"}
|
||||
{"ArtistId":23,"Name":"Frank Zappa & Captain Beefheart"}
|
||||
{"ArtistId":24,"Name":"Marcos Valle"}
|
||||
{"ArtistId":25,"Name":"Milton Nascimento & Bebeto"}
|
||||
{"ArtistId":26,"Name":"Azymuth"}
|
||||
{"ArtistId":27,"Name":"Gilberto Gil"}
|
||||
{"ArtistId":28,"Name":"Joăo Gilberto"}
|
||||
{"ArtistId":29,"Name":"Bebel Gilberto"}
|
||||
{"ArtistId":30,"Name":"Jorge Vercilo"}
|
||||
{"ArtistId":31,"Name":"Baby Consuelo"}
|
||||
{"ArtistId":32,"Name":"Ney Matogrosso"}
|
||||
{"ArtistId":33,"Name":"Luiz Melodia"}
|
||||
{"ArtistId":34,"Name":"Nando Reis"}
|
||||
{"ArtistId":35,"Name":"Pedro Luís & A Parede"}
|
||||
{"ArtistId":36,"Name":"O Rappa"}
|
||||
{"ArtistId":37,"Name":"Ed Motta"}
|
||||
{"ArtistId":38,"Name":"Banda Black Rio"}
|
||||
{"ArtistId":39,"Name":"Fernanda Porto"}
|
||||
{"ArtistId":40,"Name":"Os Cariocas"}
|
||||
{"ArtistId":41,"Name":"Elis Regina"}
|
||||
{"ArtistId":42,"Name":"Milton Nascimento"}
|
||||
{"ArtistId":43,"Name":"A Cor Do Som"}
|
||||
{"ArtistId":44,"Name":"Kid Abelha"}
|
||||
{"ArtistId":45,"Name":"Sandra De Sá"}
|
||||
{"ArtistId":46,"Name":"Jorge Ben"}
|
||||
{"ArtistId":47,"Name":"Hermeto Pascoal"}
|
||||
{"ArtistId":48,"Name":"Barăo Vermelho"}
|
||||
{"ArtistId":49,"Name":"Edson, DJ Marky & DJ Patife Featuring Fernanda Porto"}
|
||||
{"ArtistId":50,"Name":"Metallica"}
|
||||
{"ArtistId":51,"Name":"Queen"}
|
||||
{"ArtistId":52,"Name":"Kiss"}
|
||||
{"ArtistId":53,"Name":"Spyro Gyra"}
|
||||
{"ArtistId":54,"Name":"Green Day"}
|
||||
{"ArtistId":55,"Name":"David Coverdale"}
|
||||
{"ArtistId":56,"Name":"Gonzaguinha"}
|
||||
{"ArtistId":57,"Name":"Os Mutantes"}
|
||||
{"ArtistId":58,"Name":"Deep Purple"}
|
||||
{"ArtistId":59,"Name":"Santana"}
|
||||
{"ArtistId":60,"Name":"Santana Feat. Dave Matthews"}
|
||||
{"ArtistId":61,"Name":"Santana Feat. Everlast"}
|
||||
{"ArtistId":62,"Name":"Santana Feat. Rob Thomas"}
|
||||
{"ArtistId":63,"Name":"Santana Feat. Lauryn Hill & Cee-Lo"}
|
||||
{"ArtistId":64,"Name":"Santana Feat. The Project G&B"}
|
||||
{"ArtistId":65,"Name":"Santana Feat. Maná"}
|
||||
{"ArtistId":66,"Name":"Santana Feat. Eagle-Eye Cherry"}
|
||||
{"ArtistId":67,"Name":"Santana Feat. Eric Clapton"}
|
||||
{"ArtistId":68,"Name":"Miles Davis"}
|
||||
{"ArtistId":69,"Name":"Gene Krupa"}
|
||||
{"ArtistId":70,"Name":"Toquinho & Vinícius"}
|
||||
{"ArtistId":71,"Name":"Vinícius De Moraes & Baden Powell"}
|
||||
{"ArtistId":72,"Name":"Vinícius De Moraes"}
|
||||
{"ArtistId":73,"Name":"Vinícius E Qurteto Em Cy"}
|
||||
{"ArtistId":74,"Name":"Vinícius E Odette Lara"}
|
||||
{"ArtistId":75,"Name":"Vinicius, Toquinho & Quarteto Em Cy"}
|
||||
{"ArtistId":76,"Name":"Creedence Clearwater Revival"}
|
||||
{"ArtistId":77,"Name":"Cássia Eller"}
|
||||
{"ArtistId":78,"Name":"Def Leppard"}
|
||||
{"ArtistId":79,"Name":"Dennis Chambers"}
|
||||
{"ArtistId":80,"Name":"Djavan"}
|
||||
{"ArtistId":81,"Name":"Eric Clapton"}
|
||||
{"ArtistId":82,"Name":"Faith No More"}
|
||||
{"ArtistId":83,"Name":"Falamansa"}
|
||||
{"ArtistId":84,"Name":"Foo Fighters"}
|
||||
{"ArtistId":85,"Name":"Frank Sinatra"}
|
||||
{"ArtistId":86,"Name":"Funk Como Le Gusta"}
|
||||
{"ArtistId":87,"Name":"Godsmack"}
|
||||
{"ArtistId":88,"Name":"Guns N' Roses"}
|
||||
{"ArtistId":89,"Name":"Incognito"}
|
||||
{"ArtistId":90,"Name":"Iron Maiden"}
|
||||
{"ArtistId":91,"Name":"James Brown"}
|
||||
{"ArtistId":92,"Name":"Jamiroquai"}
|
||||
{"ArtistId":93,"Name":"JET"}
|
||||
{"ArtistId":94,"Name":"Jimi Hendrix"}
|
||||
{"ArtistId":95,"Name":"Joe Satriani"}
|
||||
{"ArtistId":96,"Name":"Jota Quest"}
|
||||
{"ArtistId":97,"Name":"Joăo Suplicy"}
|
||||
{"ArtistId":98,"Name":"Judas Priest"}
|
||||
{"ArtistId":99,"Name":"Legiăo Urbana"}
|
||||
{"ArtistId":100,"Name":"Lenny Kravitz"}
|
||||
{"ArtistId":101,"Name":"Lulu Santos"}
|
||||
{"ArtistId":102,"Name":"Marillion"}
|
||||
{"ArtistId":103,"Name":"Marisa Monte"}
|
||||
{"ArtistId":104,"Name":"Marvin Gaye"}
|
||||
{"ArtistId":105,"Name":"Men At Work"}
|
||||
{"ArtistId":106,"Name":"Motörhead"}
|
||||
{"ArtistId":107,"Name":"Motörhead & Girlschool"}
|
||||
{"ArtistId":108,"Name":"Mônica Marianno"}
|
||||
{"ArtistId":109,"Name":"Mötley Crüe"}
|
||||
{"ArtistId":110,"Name":"Nirvana"}
|
||||
{"ArtistId":111,"Name":"O Terço"}
|
||||
{"ArtistId":112,"Name":"Olodum"}
|
||||
{"ArtistId":113,"Name":"Os Paralamas Do Sucesso"}
|
||||
{"ArtistId":114,"Name":"Ozzy Osbourne"}
|
||||
{"ArtistId":115,"Name":"Page & Plant"}
|
||||
{"ArtistId":116,"Name":"Passengers"}
|
||||
{"ArtistId":117,"Name":"Paul D'Ianno"}
|
||||
{"ArtistId":118,"Name":"Pearl Jam"}
|
||||
{"ArtistId":119,"Name":"Peter Tosh"}
|
||||
{"ArtistId":120,"Name":"Pink Floyd"}
|
||||
{"ArtistId":121,"Name":"Planet Hemp"}
|
||||
{"ArtistId":122,"Name":"R.E.M. Feat. Kate Pearson"}
|
||||
{"ArtistId":123,"Name":"R.E.M. Feat. KRS-One"}
|
||||
{"ArtistId":124,"Name":"R.E.M."}
|
||||
{"ArtistId":125,"Name":"Raimundos"}
|
||||
{"ArtistId":126,"Name":"Raul Seixas"}
|
||||
{"ArtistId":127,"Name":"Red Hot Chili Peppers"}
|
||||
{"ArtistId":128,"Name":"Rush"}
|
||||
{"ArtistId":129,"Name":"Simply Red"}
|
||||
{"ArtistId":130,"Name":"Skank"}
|
||||
{"ArtistId":131,"Name":"Smashing Pumpkins"}
|
||||
{"ArtistId":132,"Name":"Soundgarden"}
|
||||
{"ArtistId":133,"Name":"Stevie Ray Vaughan & Double Trouble"}
|
||||
{"ArtistId":134,"Name":"Stone Temple Pilots"}
|
||||
{"ArtistId":135,"Name":"System Of A Down"}
|
||||
{"ArtistId":136,"Name":"Terry Bozzio, Tony Levin & Steve Stevens"}
|
||||
{"ArtistId":137,"Name":"The Black Crowes"}
|
||||
{"ArtistId":138,"Name":"The Clash"}
|
||||
{"ArtistId":139,"Name":"The Cult"}
|
||||
{"ArtistId":140,"Name":"The Doors"}
|
||||
{"ArtistId":141,"Name":"The Police"}
|
||||
{"ArtistId":142,"Name":"The Rolling Stones"}
|
||||
{"ArtistId":143,"Name":"The Tea Party"}
|
||||
{"ArtistId":144,"Name":"The Who"}
|
||||
{"ArtistId":145,"Name":"Tim Maia"}
|
||||
{"ArtistId":146,"Name":"Tităs"}
|
||||
{"ArtistId":147,"Name":"Battlestar Galactica"}
|
||||
{"ArtistId":148,"Name":"Heroes"}
|
||||
{"ArtistId":149,"Name":"Lost"}
|
||||
{"ArtistId":150,"Name":"U2"}
|
||||
{"ArtistId":151,"Name":"UB40"}
|
||||
{"ArtistId":152,"Name":"Van Halen"}
|
||||
{"ArtistId":153,"Name":"Velvet Revolver"}
|
||||
{"ArtistId":154,"Name":"Whitesnake"}
|
||||
{"ArtistId":155,"Name":"Zeca Pagodinho"}
|
||||
{"ArtistId":156,"Name":"The Office"}
|
||||
{"ArtistId":157,"Name":"Dread Zeppelin"}
|
||||
{"ArtistId":158,"Name":"Battlestar Galactica (Classic)"}
|
||||
{"ArtistId":159,"Name":"Aquaman"}
|
||||
{"ArtistId":160,"Name":"Christina Aguilera featuring BigElf"}
|
||||
{"ArtistId":161,"Name":"Aerosmith & Sierra Leone's Refugee Allstars"}
|
||||
{"ArtistId":162,"Name":"Los Lonely Boys"}
|
||||
{"ArtistId":163,"Name":"Corinne Bailey Rae"}
|
||||
{"ArtistId":164,"Name":"Dhani Harrison & Jakob Dylan"}
|
||||
{"ArtistId":165,"Name":"Jackson Browne"}
|
||||
{"ArtistId":166,"Name":"Avril Lavigne"}
|
||||
{"ArtistId":167,"Name":"Big & Rich"}
|
||||
{"ArtistId":168,"Name":"Youssou N'Dour"}
|
||||
{"ArtistId":169,"Name":"Black Eyed Peas"}
|
||||
{"ArtistId":170,"Name":"Jack Johnson"}
|
||||
{"ArtistId":171,"Name":"Ben Harper"}
|
||||
{"ArtistId":172,"Name":"Snow Patrol"}
|
||||
{"ArtistId":173,"Name":"Matisyahu"}
|
||||
{"ArtistId":174,"Name":"The Postal Service"}
|
||||
{"ArtistId":175,"Name":"Jaguares"}
|
||||
{"ArtistId":176,"Name":"The Flaming Lips"}
|
||||
{"ArtistId":177,"Name":"Jack's Mannequin & Mick Fleetwood"}
|
||||
{"ArtistId":178,"Name":"Regina Spektor"}
|
||||
{"ArtistId":179,"Name":"Scorpions"}
|
||||
{"ArtistId":180,"Name":"House Of Pain"}
|
||||
{"ArtistId":181,"Name":"Xis"}
|
||||
{"ArtistId":182,"Name":"Nega Gizza"}
|
||||
{"ArtistId":183,"Name":"Gustavo & Andres Veiga & Salazar"}
|
||||
{"ArtistId":184,"Name":"Rodox"}
|
||||
{"ArtistId":185,"Name":"Charlie Brown Jr."}
|
||||
{"ArtistId":186,"Name":"Pedro Luís E A Parede"}
|
||||
{"ArtistId":187,"Name":"Los Hermanos"}
|
||||
{"ArtistId":188,"Name":"Mundo Livre S/A"}
|
||||
{"ArtistId":189,"Name":"Otto"}
|
||||
{"ArtistId":190,"Name":"Instituto"}
|
||||
{"ArtistId":191,"Name":"Naçăo Zumbi"}
|
||||
{"ArtistId":192,"Name":"DJ Dolores & Orchestra Santa Massa"}
|
||||
{"ArtistId":193,"Name":"Seu Jorge"}
|
||||
{"ArtistId":194,"Name":"Sabotage E Instituto"}
|
||||
{"ArtistId":195,"Name":"Stereo Maracana"}
|
||||
{"ArtistId":196,"Name":"Cake"}
|
||||
{"ArtistId":197,"Name":"Aisha Duo"}
|
||||
{"ArtistId":198,"Name":"Habib Koité and Bamada"}
|
||||
{"ArtistId":199,"Name":"Karsh Kale"}
|
||||
{"ArtistId":200,"Name":"The Posies"}
|
||||
{"ArtistId":201,"Name":"Luciana Souza/Romero Lubambo"}
|
||||
{"ArtistId":202,"Name":"Aaron Goldberg"}
|
||||
{"ArtistId":203,"Name":"Nicolaus Esterhazy Sinfonia"}
|
||||
{"ArtistId":204,"Name":"Temple of the Dog"}
|
||||
{"ArtistId":205,"Name":"Chris Cornell"}
|
||||
{"ArtistId":206,"Name":"Alberto Turco & Nova Schola Gregoriana"}
|
||||
{"ArtistId":207,"Name":"Richard Marlow & The Choir of Trinity College, Cambridge"}
|
||||
{"ArtistId":208,"Name":"English Concert & Trevor Pinnock"}
|
||||
{"ArtistId":209,"Name":"Anne-Sophie Mutter, Herbert Von Karajan & Wiener Philharmoniker"}
|
||||
{"ArtistId":210,"Name":"Hilary Hahn, Jeffrey Kahane, Los Angeles Chamber Orchestra & Margaret Batjer"}
|
||||
{"ArtistId":211,"Name":"Wilhelm Kempff"}
|
||||
{"ArtistId":212,"Name":"Yo-Yo Ma"}
|
||||
{"ArtistId":213,"Name":"Scholars Baroque Ensemble"}
|
||||
{"ArtistId":214,"Name":"Academy of St. Martin in the Fields & Sir Neville Marriner"}
|
||||
{"ArtistId":215,"Name":"Academy of St. Martin in the Fields Chamber Ensemble & Sir Neville Marriner"}
|
||||
{"ArtistId":216,"Name":"Berliner Philharmoniker, Claudio Abbado & Sabine Meyer"}
|
||||
{"ArtistId":217,"Name":"Royal Philharmonic Orchestra & Sir Thomas Beecham"}
|
||||
{"ArtistId":218,"Name":"Orchestre Révolutionnaire et Romantique & John Eliot Gardiner"}
|
||||
{"ArtistId":219,"Name":"Britten Sinfonia, Ivor Bolton & Lesley Garrett"}
|
||||
{"ArtistId":220,"Name":"Chicago Symphony Chorus, Chicago Symphony Orchestra & Sir Georg Solti"}
|
||||
{"ArtistId":221,"Name":"Sir Georg Solti & Wiener Philharmoniker"}
|
||||
{"ArtistId":222,"Name":"Academy of St. Martin in the Fields, John Birch, Sir Neville Marriner & Sylvia McNair"}
|
||||
{"ArtistId":223,"Name":"London Symphony Orchestra & Sir Charles Mackerras"}
|
||||
{"ArtistId":224,"Name":"Barry Wordsworth & BBC Concert Orchestra"}
|
||||
{"ArtistId":225,"Name":"Herbert Von Karajan, Mirella Freni & Wiener Philharmoniker"}
|
||||
{"ArtistId":226,"Name":"Eugene Ormandy"}
|
||||
{"ArtistId":227,"Name":"Luciano Pavarotti"}
|
||||
{"ArtistId":228,"Name":"Leonard Bernstein & New York Philharmonic"}
|
||||
{"ArtistId":229,"Name":"Boston Symphony Orchestra & Seiji Ozawa"}
|
||||
{"ArtistId":230,"Name":"Aaron Copland & London Symphony Orchestra"}
|
||||
{"ArtistId":231,"Name":"Ton Koopman"}
|
||||
{"ArtistId":232,"Name":"Sergei Prokofiev & Yuri Temirkanov"}
|
||||
{"ArtistId":233,"Name":"Chicago Symphony Orchestra & Fritz Reiner"}
|
||||
{"ArtistId":234,"Name":"Orchestra of The Age of Enlightenment"}
|
||||
{"ArtistId":235,"Name":"Emanuel Ax, Eugene Ormandy & Philadelphia Orchestra"}
|
||||
{"ArtistId":236,"Name":"James Levine"}
|
||||
{"ArtistId":237,"Name":"Berliner Philharmoniker & Hans Rosbaud"}
|
||||
{"ArtistId":238,"Name":"Maurizio Pollini"}
|
||||
{"ArtistId":239,"Name":"Academy of St. Martin in the Fields, Sir Neville Marriner & William Bennett"}
|
||||
{"ArtistId":240,"Name":"Gustav Mahler"}
|
||||
{"ArtistId":241,"Name":"Felix Schmidt, London Symphony Orchestra & Rafael Frühbeck de Burgos"}
|
||||
{"ArtistId":242,"Name":"Edo de Waart & San Francisco Symphony"}
|
||||
{"ArtistId":243,"Name":"Antal Doráti & London Symphony Orchestra"}
|
||||
{"ArtistId":244,"Name":"Choir Of Westminster Abbey & Simon Preston"}
|
||||
{"ArtistId":245,"Name":"Michael Tilson Thomas & San Francisco Symphony"}
|
||||
{"ArtistId":246,"Name":"Chor der Wiener Staatsoper, Herbert Von Karajan & Wiener Philharmoniker"}
|
||||
{"ArtistId":247,"Name":"The King's Singers"}
|
||||
{"ArtistId":248,"Name":"Berliner Philharmoniker & Herbert Von Karajan"}
|
||||
{"ArtistId":249,"Name":"Sir Georg Solti, Sumi Jo & Wiener Philharmoniker"}
|
||||
{"ArtistId":250,"Name":"Christopher O'Riley"}
|
||||
{"ArtistId":251,"Name":"Fretwork"}
|
||||
{"ArtistId":252,"Name":"Amy Winehouse"}
|
||||
{"ArtistId":253,"Name":"Calexico"}
|
||||
{"ArtistId":254,"Name":"Otto Klemperer & Philharmonia Orchestra"}
|
||||
{"ArtistId":255,"Name":"Yehudi Menuhin"}
|
||||
{"ArtistId":256,"Name":"Philharmonia Orchestra & Sir Neville Marriner"}
|
||||
{"ArtistId":257,"Name":"Academy of St. Martin in the Fields, Sir Neville Marriner & Thurston Dart"}
|
||||
{"ArtistId":258,"Name":"Les Arts Florissants & William Christie"}
|
||||
{"ArtistId":259,"Name":"The 12 Cellists of The Berlin Philharmonic"}
|
||||
{"ArtistId":260,"Name":"Adrian Leaper & Doreen de Feis"}
|
||||
{"ArtistId":261,"Name":"Roger Norrington, London Classical Players"}
|
||||
{"ArtistId":262,"Name":"Charles Dutoit & L'Orchestre Symphonique de Montréal"}
|
||||
{"ArtistId":263,"Name":"Equale Brass Ensemble, John Eliot Gardiner & Munich Monteverdi Orchestra and Choir"}
|
||||
{"ArtistId":264,"Name":"Kent Nagano and Orchestre de l'Opéra de Lyon"}
|
||||
{"ArtistId":265,"Name":"Julian Bream"}
|
||||
{"ArtistId":266,"Name":"Martin Roscoe"}
|
||||
{"ArtistId":267,"Name":"Göteborgs Symfoniker & Neeme Järvi"}
|
||||
{"ArtistId":268,"Name":"Itzhak Perlman"}
|
||||
{"ArtistId":269,"Name":"Michele Campanella"}
|
||||
{"ArtistId":270,"Name":"Gerald Moore"}
|
||||
{"ArtistId":271,"Name":"Mela Tenenbaum, Pro Musica Prague & Richard Kapp"}
|
||||
{"ArtistId":272,"Name":"Emerson String Quartet"}
|
||||
{"ArtistId":273,"Name":"C. Monteverdi, Nigel Rogers - Chiaroscuro; London Baroque; London Cornett & Sackbu"}
|
||||
{"ArtistId":274,"Name":"Nash Ensemble"}
|
||||
{"ArtistId":275,"Name":"Philip Glass Ensemble"}
|
||||
59
e2e-tests/data/chinook-jsonl/Customer.jsonl
Normal file
59
e2e-tests/data/chinook-jsonl/Customer.jsonl
Normal file
@@ -0,0 +1,59 @@
|
||||
{"CustomerId":1,"FirstName":"Luís","LastName":"Gonçalves","Company":"Embraer - Empresa Brasileira de Aeronáutica S.A.","Address":"Av. Brigadeiro Faria Lima, 2170","City":"Săo José dos Campos","State":"SP","Country":"Brazil","PostalCode":"12227-000","Phone":"+55 (12) 3923-5555","Fax":"+55 (12) 3923-5566","Email":"luisg@embraer.com.br","SupportRepId":3}
|
||||
{"CustomerId":2,"FirstName":"Leonie","LastName":"Köhler","Company":null,"Address":"Theodor-Heuss-Straße 34","City":"Stuttgart","State":null,"Country":"Germany","PostalCode":"70174","Phone":"+49 0711 2842222","Fax":null,"Email":"leonekohler@surfeu.de","SupportRepId":5}
|
||||
{"CustomerId":3,"FirstName":"François","LastName":"Tremblay","Company":null,"Address":"1498 rue Bélanger","City":"Montréal","State":"QC","Country":"Canada","PostalCode":"H2G 1A7","Phone":"+1 (514) 721-4711","Fax":null,"Email":"ftremblay@gmail.com","SupportRepId":3}
|
||||
{"CustomerId":4,"FirstName":"Bjřrn","LastName":"Hansen","Company":null,"Address":"Ullevĺlsveien 14","City":"Oslo","State":null,"Country":"Norway","PostalCode":"0171","Phone":"+47 22 44 22 22","Fax":null,"Email":"bjorn.hansen@yahoo.no","SupportRepId":4}
|
||||
{"CustomerId":5,"FirstName":"Frantiek","LastName":"Wichterlová","Company":"JetBrains s.r.o.","Address":"Klanova 9/506","City":"Prague","State":null,"Country":"Czech Republic","PostalCode":"14700","Phone":"+420 2 4172 5555","Fax":"+420 2 4172 5555","Email":"frantisekw@jetbrains.com","SupportRepId":4}
|
||||
{"CustomerId":6,"FirstName":"Helena","LastName":"Holý","Company":null,"Address":"Rilská 3174/6","City":"Prague","State":null,"Country":"Czech Republic","PostalCode":"14300","Phone":"+420 2 4177 0449","Fax":null,"Email":"hholy@gmail.com","SupportRepId":5}
|
||||
{"CustomerId":7,"FirstName":"Astrid","LastName":"Gruber","Company":null,"Address":"Rotenturmstraße 4, 1010 Innere Stadt","City":"Vienne","State":null,"Country":"Austria","PostalCode":"1010","Phone":"+43 01 5134505","Fax":null,"Email":"astrid.gruber@apple.at","SupportRepId":5}
|
||||
{"CustomerId":8,"FirstName":"Daan","LastName":"Peeters","Company":null,"Address":"Grétrystraat 63","City":"Brussels","State":null,"Country":"Belgium","PostalCode":"1000","Phone":"+32 02 219 03 03","Fax":null,"Email":"daan_peeters@apple.be","SupportRepId":4}
|
||||
{"CustomerId":9,"FirstName":"Kara","LastName":"Nielsen","Company":null,"Address":"Sřnder Boulevard 51","City":"Copenhagen","State":null,"Country":"Denmark","PostalCode":"1720","Phone":"+453 3331 9991","Fax":null,"Email":"kara.nielsen@jubii.dk","SupportRepId":4}
|
||||
{"CustomerId":10,"FirstName":"Eduardo","LastName":"Martins","Company":"Woodstock Discos","Address":"Rua Dr. Falcăo Filho, 155","City":"Săo Paulo","State":"SP","Country":"Brazil","PostalCode":"01007-010","Phone":"+55 (11) 3033-5446","Fax":"+55 (11) 3033-4564","Email":"eduardo@woodstock.com.br","SupportRepId":4}
|
||||
{"CustomerId":11,"FirstName":"Alexandre","LastName":"Rocha","Company":"Banco do Brasil S.A.","Address":"Av. Paulista, 2022","City":"Săo Paulo","State":"SP","Country":"Brazil","PostalCode":"01310-200","Phone":"+55 (11) 3055-3278","Fax":"+55 (11) 3055-8131","Email":"alero@uol.com.br","SupportRepId":5}
|
||||
{"CustomerId":12,"FirstName":"Roberto","LastName":"Almeida","Company":"Riotur","Address":"Praça Pio X, 119","City":"Rio de Janeiro","State":"RJ","Country":"Brazil","PostalCode":"20040-020","Phone":"+55 (21) 2271-7000","Fax":"+55 (21) 2271-7070","Email":"roberto.almeida@riotur.gov.br","SupportRepId":3}
|
||||
{"CustomerId":13,"FirstName":"Fernanda","LastName":"Ramos","Company":null,"Address":"Qe 7 Bloco G","City":"Brasília","State":"DF","Country":"Brazil","PostalCode":"71020-677","Phone":"+55 (61) 3363-5547","Fax":"+55 (61) 3363-7855","Email":"fernadaramos4@uol.com.br","SupportRepId":4}
|
||||
{"CustomerId":14,"FirstName":"Mark","LastName":"Philips","Company":"Telus","Address":"8210 111 ST NW","City":"Edmonton","State":"AB","Country":"Canada","PostalCode":"T6G 2C7","Phone":"+1 (780) 434-4554","Fax":"+1 (780) 434-5565","Email":"mphilips12@shaw.ca","SupportRepId":5}
|
||||
{"CustomerId":15,"FirstName":"Jennifer","LastName":"Peterson","Company":"Rogers Canada","Address":"700 W Pender Street","City":"Vancouver","State":"BC","Country":"Canada","PostalCode":"V6C 1G8","Phone":"+1 (604) 688-2255","Fax":"+1 (604) 688-8756","Email":"jenniferp@rogers.ca","SupportRepId":3}
|
||||
{"CustomerId":16,"FirstName":"Frank","LastName":"Harris","Company":"Google Inc.","Address":"1600 Amphitheatre Parkway","City":"Mountain View","State":"CA","Country":"USA","PostalCode":"94043-1351","Phone":"+1 (650) 253-0000","Fax":"+1 (650) 253-0000","Email":"fharris@google.com","SupportRepId":4}
|
||||
{"CustomerId":17,"FirstName":"Jack","LastName":"Smith","Company":"Microsoft Corporation","Address":"1 Microsoft Way","City":"Redmond","State":"WA","Country":"USA","PostalCode":"98052-8300","Phone":"+1 (425) 882-8080","Fax":"+1 (425) 882-8081","Email":"jacksmith@microsoft.com","SupportRepId":5}
|
||||
{"CustomerId":18,"FirstName":"Michelle","LastName":"Brooks","Company":null,"Address":"627 Broadway","City":"New York","State":"NY","Country":"USA","PostalCode":"10012-2612","Phone":"+1 (212) 221-3546","Fax":"+1 (212) 221-4679","Email":"michelleb@aol.com","SupportRepId":3}
|
||||
{"CustomerId":19,"FirstName":"Tim","LastName":"Goyer","Company":"Apple Inc.","Address":"1 Infinite Loop","City":"Cupertino","State":"CA","Country":"USA","PostalCode":"95014","Phone":"+1 (408) 996-1010","Fax":"+1 (408) 996-1011","Email":"tgoyer@apple.com","SupportRepId":3}
|
||||
{"CustomerId":20,"FirstName":"Dan","LastName":"Miller","Company":null,"Address":"541 Del Medio Avenue","City":"Mountain View","State":"CA","Country":"USA","PostalCode":"94040-111","Phone":"+1 (650) 644-3358","Fax":null,"Email":"dmiller@comcast.com","SupportRepId":4}
|
||||
{"CustomerId":21,"FirstName":"Kathy","LastName":"Chase","Company":null,"Address":"801 W 4th Street","City":"Reno","State":"NV","Country":"USA","PostalCode":"89503","Phone":"+1 (775) 223-7665","Fax":null,"Email":"kachase@hotmail.com","SupportRepId":5}
|
||||
{"CustomerId":22,"FirstName":"Heather","LastName":"Leacock","Company":null,"Address":"120 S Orange Ave","City":"Orlando","State":"FL","Country":"USA","PostalCode":"32801","Phone":"+1 (407) 999-7788","Fax":null,"Email":"hleacock@gmail.com","SupportRepId":4}
|
||||
{"CustomerId":23,"FirstName":"John","LastName":"Gordon","Company":null,"Address":"69 Salem Street","City":"Boston","State":"MA","Country":"USA","PostalCode":"2113","Phone":"+1 (617) 522-1333","Fax":null,"Email":"johngordon22@yahoo.com","SupportRepId":4}
|
||||
{"CustomerId":24,"FirstName":"Frank","LastName":"Ralston","Company":null,"Address":"162 E Superior Street","City":"Chicago","State":"IL","Country":"USA","PostalCode":"60611","Phone":"+1 (312) 332-3232","Fax":null,"Email":"fralston@gmail.com","SupportRepId":3}
|
||||
{"CustomerId":25,"FirstName":"Victor","LastName":"Stevens","Company":null,"Address":"319 N. Frances Street","City":"Madison","State":"WI","Country":"USA","PostalCode":"53703","Phone":"+1 (608) 257-0597","Fax":null,"Email":"vstevens@yahoo.com","SupportRepId":5}
|
||||
{"CustomerId":26,"FirstName":"Richard","LastName":"Cunningham","Company":null,"Address":"2211 W Berry Street","City":"Fort Worth","State":"TX","Country":"USA","PostalCode":"76110","Phone":"+1 (817) 924-7272","Fax":null,"Email":"ricunningham@hotmail.com","SupportRepId":4}
|
||||
{"CustomerId":27,"FirstName":"Patrick","LastName":"Gray","Company":null,"Address":"1033 N Park Ave","City":"Tucson","State":"AZ","Country":"USA","PostalCode":"85719","Phone":"+1 (520) 622-4200","Fax":null,"Email":"patrick.gray@aol.com","SupportRepId":4}
|
||||
{"CustomerId":28,"FirstName":"Julia","LastName":"Barnett","Company":null,"Address":"302 S 700 E","City":"Salt Lake City","State":"UT","Country":"USA","PostalCode":"84102","Phone":"+1 (801) 531-7272","Fax":null,"Email":"jubarnett@gmail.com","SupportRepId":5}
|
||||
{"CustomerId":29,"FirstName":"Robert","LastName":"Brown","Company":null,"Address":"796 Dundas Street West","City":"Toronto","State":"ON","Country":"Canada","PostalCode":"M6J 1V1","Phone":"+1 (416) 363-8888","Fax":null,"Email":"robbrown@shaw.ca","SupportRepId":3}
|
||||
{"CustomerId":30,"FirstName":"Edward","LastName":"Francis","Company":null,"Address":"230 Elgin Street","City":"Ottawa","State":"ON","Country":"Canada","PostalCode":"K2P 1L7","Phone":"+1 (613) 234-3322","Fax":null,"Email":"edfrancis@yachoo.ca","SupportRepId":3}
|
||||
{"CustomerId":31,"FirstName":"Martha","LastName":"Silk","Company":null,"Address":"194A Chain Lake Drive","City":"Halifax","State":"NS","Country":"Canada","PostalCode":"B3S 1C5","Phone":"+1 (902) 450-0450","Fax":null,"Email":"marthasilk@gmail.com","SupportRepId":5}
|
||||
{"CustomerId":32,"FirstName":"Aaron","LastName":"Mitchell","Company":null,"Address":"696 Osborne Street","City":"Winnipeg","State":"MB","Country":"Canada","PostalCode":"R3L 2B9","Phone":"+1 (204) 452-6452","Fax":null,"Email":"aaronmitchell@yahoo.ca","SupportRepId":4}
|
||||
{"CustomerId":33,"FirstName":"Ellie","LastName":"Sullivan","Company":null,"Address":"5112 48 Street","City":"Yellowknife","State":"NT","Country":"Canada","PostalCode":"X1A 1N6","Phone":"+1 (867) 920-2233","Fax":null,"Email":"ellie.sullivan@shaw.ca","SupportRepId":3}
|
||||
{"CustomerId":34,"FirstName":"Joăo","LastName":"Fernandes","Company":null,"Address":"Rua da Assunçăo 53","City":"Lisbon","State":null,"Country":"Portugal","PostalCode":null,"Phone":"+351 (213) 466-111","Fax":null,"Email":"jfernandes@yahoo.pt","SupportRepId":4}
|
||||
{"CustomerId":35,"FirstName":"Madalena","LastName":"Sampaio","Company":null,"Address":"Rua dos Campeőes Europeus de Viena, 4350","City":"Porto","State":null,"Country":"Portugal","PostalCode":null,"Phone":"+351 (225) 022-448","Fax":null,"Email":"masampaio@sapo.pt","SupportRepId":4}
|
||||
{"CustomerId":36,"FirstName":"Hannah","LastName":"Schneider","Company":null,"Address":"Tauentzienstraße 8","City":"Berlin","State":null,"Country":"Germany","PostalCode":"10789","Phone":"+49 030 26550280","Fax":null,"Email":"hannah.schneider@yahoo.de","SupportRepId":5}
|
||||
{"CustomerId":37,"FirstName":"Fynn","LastName":"Zimmermann","Company":null,"Address":"Berger Straße 10","City":"Frankfurt","State":null,"Country":"Germany","PostalCode":"60316","Phone":"+49 069 40598889","Fax":null,"Email":"fzimmermann@yahoo.de","SupportRepId":3}
|
||||
{"CustomerId":38,"FirstName":"Niklas","LastName":"Schröder","Company":null,"Address":"Barbarossastraße 19","City":"Berlin","State":null,"Country":"Germany","PostalCode":"10779","Phone":"+49 030 2141444","Fax":null,"Email":"nschroder@surfeu.de","SupportRepId":3}
|
||||
{"CustomerId":39,"FirstName":"Camille","LastName":"Bernard","Company":null,"Address":"4, Rue Milton","City":"Paris","State":null,"Country":"France","PostalCode":"75009","Phone":"+33 01 49 70 65 65","Fax":null,"Email":"camille.bernard@yahoo.fr","SupportRepId":4}
|
||||
{"CustomerId":40,"FirstName":"Dominique","LastName":"Lefebvre","Company":null,"Address":"8, Rue Hanovre","City":"Paris","State":null,"Country":"France","PostalCode":"75002","Phone":"+33 01 47 42 71 71","Fax":null,"Email":"dominiquelefebvre@gmail.com","SupportRepId":4}
|
||||
{"CustomerId":41,"FirstName":"Marc","LastName":"Dubois","Company":null,"Address":"11, Place Bellecour","City":"Lyon","State":null,"Country":"France","PostalCode":"69002","Phone":"+33 04 78 30 30 30","Fax":null,"Email":"marc.dubois@hotmail.com","SupportRepId":5}
|
||||
{"CustomerId":42,"FirstName":"Wyatt","LastName":"Girard","Company":null,"Address":"9, Place Louis Barthou","City":"Bordeaux","State":null,"Country":"France","PostalCode":"33000","Phone":"+33 05 56 96 96 96","Fax":null,"Email":"wyatt.girard@yahoo.fr","SupportRepId":3}
|
||||
{"CustomerId":43,"FirstName":"Isabelle","LastName":"Mercier","Company":null,"Address":"68, Rue Jouvence","City":"Dijon","State":null,"Country":"France","PostalCode":"21000","Phone":"+33 03 80 73 66 99","Fax":null,"Email":"isabelle_mercier@apple.fr","SupportRepId":3}
|
||||
{"CustomerId":44,"FirstName":"Terhi","LastName":"Hämäläinen","Company":null,"Address":"Porthaninkatu 9","City":"Helsinki","State":null,"Country":"Finland","PostalCode":"00530","Phone":"+358 09 870 2000","Fax":null,"Email":"terhi.hamalainen@apple.fi","SupportRepId":3}
|
||||
{"CustomerId":45,"FirstName":"Ladislav","LastName":"Kovács","Company":null,"Address":"Erzsébet krt. 58.","City":"Budapest","State":null,"Country":"Hungary","PostalCode":"H-1073","Phone":null,"Fax":null,"Email":"ladislav_kovacs@apple.hu","SupportRepId":3}
|
||||
{"CustomerId":46,"FirstName":"Hugh","LastName":"O'Reilly","Company":null,"Address":"3 Chatham Street","City":"Dublin","State":"Dublin","Country":"Ireland","PostalCode":null,"Phone":"+353 01 6792424","Fax":null,"Email":"hughoreilly@apple.ie","SupportRepId":3}
|
||||
{"CustomerId":47,"FirstName":"Lucas","LastName":"Mancini","Company":null,"Address":"Via Degli Scipioni, 43","City":"Rome","State":"RM","Country":"Italy","PostalCode":"00192","Phone":"+39 06 39733434","Fax":null,"Email":"lucas.mancini@yahoo.it","SupportRepId":5}
|
||||
{"CustomerId":48,"FirstName":"Johannes","LastName":"Van der Berg","Company":null,"Address":"Lijnbaansgracht 120bg","City":"Amsterdam","State":"VV","Country":"Netherlands","PostalCode":"1016","Phone":"+31 020 6223130","Fax":null,"Email":"johavanderberg@yahoo.nl","SupportRepId":5}
|
||||
{"CustomerId":49,"FirstName":"Stanislaw","LastName":"Wójcik","Company":null,"Address":"Ordynacka 10","City":"Warsaw","State":null,"Country":"Poland","PostalCode":"00-358","Phone":"+48 22 828 37 39","Fax":null,"Email":"stanislaw.wójcik@wp.pl","SupportRepId":4}
|
||||
{"CustomerId":50,"FirstName":"Enrique","LastName":"Muńoz","Company":null,"Address":"C/ San Bernardo 85","City":"Madrid","State":null,"Country":"Spain","PostalCode":"28015","Phone":"+34 914 454 454","Fax":null,"Email":"enrique_munoz@yahoo.es","SupportRepId":5}
|
||||
{"CustomerId":51,"FirstName":"Joakim","LastName":"Johansson","Company":null,"Address":"Celsiusg. 9","City":"Stockholm","State":null,"Country":"Sweden","PostalCode":"11230","Phone":"+46 08-651 52 52","Fax":null,"Email":"joakim.johansson@yahoo.se","SupportRepId":5}
|
||||
{"CustomerId":52,"FirstName":"Emma","LastName":"Jones","Company":null,"Address":"202 Hoxton Street","City":"London","State":null,"Country":"United Kingdom","PostalCode":"N1 5LH","Phone":"+44 020 7707 0707","Fax":null,"Email":"emma_jones@hotmail.com","SupportRepId":3}
|
||||
{"CustomerId":53,"FirstName":"Phil","LastName":"Hughes","Company":null,"Address":"113 Lupus St","City":"London","State":null,"Country":"United Kingdom","PostalCode":"SW1V 3EN","Phone":"+44 020 7976 5722","Fax":null,"Email":"phil.hughes@gmail.com","SupportRepId":3}
|
||||
{"CustomerId":54,"FirstName":"Steve","LastName":"Murray","Company":null,"Address":"110 Raeburn Pl","City":"Edinburgh","State":null,"Country":"United Kingdom","PostalCode":"EH4 1HH","Phone":"+44 0131 315 3300","Fax":null,"Email":"steve.murray@yahoo.uk","SupportRepId":5}
|
||||
{"CustomerId":55,"FirstName":"Mark","LastName":"Taylor","Company":null,"Address":"421 Bourke Street","City":"Sidney","State":"NSW","Country":"Australia","PostalCode":"2010","Phone":"+61 (02) 9332 3633","Fax":null,"Email":"mark.taylor@yahoo.au","SupportRepId":4}
|
||||
{"CustomerId":56,"FirstName":"Diego","LastName":"Gutiérrez","Company":null,"Address":"307 Macacha Güemes","City":"Buenos Aires","State":null,"Country":"Argentina","PostalCode":"1106","Phone":"+54 (0)11 4311 4333","Fax":null,"Email":"diego.gutierrez@yahoo.ar","SupportRepId":4}
|
||||
{"CustomerId":57,"FirstName":"Luis","LastName":"Rojas","Company":null,"Address":"Calle Lira, 198","City":"Santiago","State":null,"Country":"Chile","PostalCode":null,"Phone":"+56 (0)2 635 4444","Fax":null,"Email":"luisrojas@yahoo.cl","SupportRepId":5}
|
||||
{"CustomerId":58,"FirstName":"Manoj","LastName":"Pareek","Company":null,"Address":"12,Community Centre","City":"Delhi","State":null,"Country":"India","PostalCode":"110017","Phone":"+91 0124 39883988","Fax":null,"Email":"manoj.pareek@rediff.com","SupportRepId":3}
|
||||
{"CustomerId":59,"FirstName":"Puja","LastName":"Srivastava","Company":null,"Address":"3,Raj Bhavan Road","City":"Bangalore","State":null,"Country":"India","PostalCode":"560001","Phone":"+91 080 22289999","Fax":null,"Email":"puja_srivastava@yahoo.in","SupportRepId":3}
|
||||
8
e2e-tests/data/chinook-jsonl/Employee.jsonl
Normal file
8
e2e-tests/data/chinook-jsonl/Employee.jsonl
Normal file
@@ -0,0 +1,8 @@
|
||||
{"EmployeeId":1,"LastName":"Adams","FirstName":"Andrew","Title":"General Manager","ReportsTo":null,"BirthDate":"1962-02-17T23:00:00.000Z","HireDate":"2002-08-13T22:00:00.000Z","Address":"11120 Jasper Ave NW","City":"Edmonton","State":"AB","Country":"Canada","PostalCode":"T5K 2N1","Phone":"+1 (780) 428-9482","Fax":"+1 (780) 428-3457","Email":"andrew@chinookcorp.com"}
|
||||
{"EmployeeId":2,"LastName":"Edwards","FirstName":"Nancy","Title":"Sales Manager","ReportsTo":1,"BirthDate":"1958-12-07T23:00:00.000Z","HireDate":"2002-04-30T22:00:00.000Z","Address":"825 8 Ave SW","City":"Calgary","State":"AB","Country":"Canada","PostalCode":"T2P 2T3","Phone":"+1 (403) 262-3443","Fax":"+1 (403) 262-3322","Email":"nancy@chinookcorp.com"}
|
||||
{"EmployeeId":3,"LastName":"Peacock","FirstName":"Jane","Title":"Sales Support Agent","ReportsTo":2,"BirthDate":"1973-08-28T23:00:00.000Z","HireDate":"2002-03-31T22:00:00.000Z","Address":"1111 6 Ave SW","City":"Calgary","State":"AB","Country":"Canada","PostalCode":"T2P 5M5","Phone":"+1 (403) 262-3443","Fax":"+1 (403) 262-6712","Email":"jane@chinookcorp.com"}
|
||||
{"EmployeeId":4,"LastName":"Park","FirstName":"Margaret","Title":"Sales Support Agent","ReportsTo":2,"BirthDate":"1947-09-18T22:00:00.000Z","HireDate":"2003-05-02T22:00:00.000Z","Address":"683 10 Street SW","City":"Calgary","State":"AB","Country":"Canada","PostalCode":"T2P 5G3","Phone":"+1 (403) 263-4423","Fax":"+1 (403) 263-4289","Email":"margaret@chinookcorp.com"}
|
||||
{"EmployeeId":5,"LastName":"Johnson","FirstName":"Steve","Title":"Sales Support Agent","ReportsTo":2,"BirthDate":"1965-03-02T23:00:00.000Z","HireDate":"2003-10-16T22:00:00.000Z","Address":"7727B 41 Ave","City":"Calgary","State":"AB","Country":"Canada","PostalCode":"T3B 1Y7","Phone":"1 (780) 836-9987","Fax":"1 (780) 836-9543","Email":"steve@chinookcorp.com"}
|
||||
{"EmployeeId":6,"LastName":"Mitchell","FirstName":"Michael","Title":"IT Manager","ReportsTo":1,"BirthDate":"1973-06-30T23:00:00.000Z","HireDate":"2003-10-16T22:00:00.000Z","Address":"5827 Bowness Road NW","City":"Calgary","State":"AB","Country":"Canada","PostalCode":"T3B 0C5","Phone":"+1 (403) 246-9887","Fax":"+1 (403) 246-9899","Email":"michael@chinookcorp.com"}
|
||||
{"EmployeeId":7,"LastName":"King","FirstName":"Robert","Title":"IT Staff","ReportsTo":6,"BirthDate":"1970-05-28T23:00:00.000Z","HireDate":"2004-01-01T23:00:00.000Z","Address":"590 Columbia Boulevard West","City":"Lethbridge","State":"AB","Country":"Canada","PostalCode":"T1K 5N8","Phone":"+1 (403) 456-9986","Fax":"+1 (403) 456-8485","Email":"robert@chinookcorp.com"}
|
||||
{"EmployeeId":8,"LastName":"Callahan","FirstName":"Laura","Title":"IT Staff","ReportsTo":6,"BirthDate":"1968-01-08T23:00:00.000Z","HireDate":"2004-03-03T23:00:00.000Z","Address":"923 7 ST NW","City":"Lethbridge","State":"AB","Country":"Canada","PostalCode":"T1H 1Y8","Phone":"+1 (403) 467-3351","Fax":"+1 (403) 467-8772","Email":"laura@chinookcorp.com"}
|
||||
25
e2e-tests/data/chinook-jsonl/Genre.jsonl
Normal file
25
e2e-tests/data/chinook-jsonl/Genre.jsonl
Normal file
@@ -0,0 +1,25 @@
|
||||
{"GenreId":1,"Name":"Rock"}
|
||||
{"GenreId":2,"Name":"Jazz"}
|
||||
{"GenreId":3,"Name":"Metal"}
|
||||
{"GenreId":4,"Name":"Alternative & Punk"}
|
||||
{"GenreId":5,"Name":"Rock And Roll"}
|
||||
{"GenreId":6,"Name":"Blues"}
|
||||
{"GenreId":7,"Name":"Latin"}
|
||||
{"GenreId":8,"Name":"Reggae"}
|
||||
{"GenreId":9,"Name":"Pop"}
|
||||
{"GenreId":10,"Name":"Soundtrack"}
|
||||
{"GenreId":11,"Name":"Bossa Nova"}
|
||||
{"GenreId":12,"Name":"Easy Listening"}
|
||||
{"GenreId":13,"Name":"Heavy Metal"}
|
||||
{"GenreId":14,"Name":"R&B/Soul"}
|
||||
{"GenreId":15,"Name":"Electronica/Dance"}
|
||||
{"GenreId":16,"Name":"World"}
|
||||
{"GenreId":17,"Name":"Hip Hop/Rap"}
|
||||
{"GenreId":18,"Name":"Science Fiction"}
|
||||
{"GenreId":19,"Name":"TV Shows"}
|
||||
{"GenreId":20,"Name":"Sci Fi & Fantasy"}
|
||||
{"GenreId":21,"Name":"Drama"}
|
||||
{"GenreId":22,"Name":"Comedy"}
|
||||
{"GenreId":23,"Name":"Alternative"}
|
||||
{"GenreId":24,"Name":"Classical"}
|
||||
{"GenreId":25,"Name":"Opera"}
|
||||
412
e2e-tests/data/chinook-jsonl/Invoice.jsonl
Normal file
412
e2e-tests/data/chinook-jsonl/Invoice.jsonl
Normal file
@@ -0,0 +1,412 @@
|
||||
{"InvoiceId":1,"CustomerId":2,"InvoiceDate":"2008-12-31T23:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"1.98"}
|
||||
{"InvoiceId":2,"CustomerId":4,"InvoiceDate":"2009-01-01T23:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"3.96"}
|
||||
{"InvoiceId":3,"CustomerId":8,"InvoiceDate":"2009-01-02T23:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"5.94"}
|
||||
{"InvoiceId":4,"CustomerId":14,"InvoiceDate":"2009-01-05T23:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"8.91"}
|
||||
{"InvoiceId":5,"CustomerId":23,"InvoiceDate":"2009-01-10T23:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"13.86"}
|
||||
{"InvoiceId":6,"CustomerId":37,"InvoiceDate":"2009-01-18T23:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"0.99"}
|
||||
{"InvoiceId":7,"CustomerId":38,"InvoiceDate":"2009-01-31T23:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"1.98"}
|
||||
{"InvoiceId":8,"CustomerId":40,"InvoiceDate":"2009-01-31T23:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"1.98"}
|
||||
{"InvoiceId":9,"CustomerId":42,"InvoiceDate":"2009-02-01T23:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"3.96"}
|
||||
{"InvoiceId":10,"CustomerId":46,"InvoiceDate":"2009-02-02T23:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"5.94"}
|
||||
{"InvoiceId":11,"CustomerId":52,"InvoiceDate":"2009-02-05T23:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"8.91"}
|
||||
{"InvoiceId":12,"CustomerId":2,"InvoiceDate":"2009-02-10T23:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"13.86"}
|
||||
{"InvoiceId":13,"CustomerId":16,"InvoiceDate":"2009-02-18T23:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"0.99"}
|
||||
{"InvoiceId":14,"CustomerId":17,"InvoiceDate":"2009-03-03T23:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"1.98"}
|
||||
{"InvoiceId":15,"CustomerId":19,"InvoiceDate":"2009-03-03T23:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"1.98"}
|
||||
{"InvoiceId":16,"CustomerId":21,"InvoiceDate":"2009-03-04T23:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"3.96"}
|
||||
{"InvoiceId":17,"CustomerId":25,"InvoiceDate":"2009-03-05T23:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"5.94"}
|
||||
{"InvoiceId":18,"CustomerId":31,"InvoiceDate":"2009-03-08T23:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"8.91"}
|
||||
{"InvoiceId":19,"CustomerId":40,"InvoiceDate":"2009-03-13T23:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"13.86"}
|
||||
{"InvoiceId":20,"CustomerId":54,"InvoiceDate":"2009-03-21T23:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"0.99"}
|
||||
{"InvoiceId":21,"CustomerId":55,"InvoiceDate":"2009-04-03T22:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"1.98"}
|
||||
{"InvoiceId":22,"CustomerId":57,"InvoiceDate":"2009-04-03T22:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"1.98"}
|
||||
{"InvoiceId":23,"CustomerId":59,"InvoiceDate":"2009-04-04T22:00:00.000Z","BillingAddress":"3,Raj Bhavan Road","BillingCity":"Bangalore","BillingState":null,"BillingCountry":"India","BillingPostalCode":"560001","Total":"3.96"}
|
||||
{"InvoiceId":24,"CustomerId":4,"InvoiceDate":"2009-04-05T22:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"5.94"}
|
||||
{"InvoiceId":25,"CustomerId":10,"InvoiceDate":"2009-04-08T22:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"8.91"}
|
||||
{"InvoiceId":26,"CustomerId":19,"InvoiceDate":"2009-04-13T22:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"13.86"}
|
||||
{"InvoiceId":27,"CustomerId":33,"InvoiceDate":"2009-04-21T22:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"0.99"}
|
||||
{"InvoiceId":28,"CustomerId":34,"InvoiceDate":"2009-05-04T22:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"1.98"}
|
||||
{"InvoiceId":29,"CustomerId":36,"InvoiceDate":"2009-05-04T22:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"1.98"}
|
||||
{"InvoiceId":30,"CustomerId":38,"InvoiceDate":"2009-05-05T22:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"3.96"}
|
||||
{"InvoiceId":31,"CustomerId":42,"InvoiceDate":"2009-05-06T22:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"5.94"}
|
||||
{"InvoiceId":32,"CustomerId":48,"InvoiceDate":"2009-05-09T22:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"8.91"}
|
||||
{"InvoiceId":33,"CustomerId":57,"InvoiceDate":"2009-05-14T22:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"13.86"}
|
||||
{"InvoiceId":34,"CustomerId":12,"InvoiceDate":"2009-05-22T22:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"0.99"}
|
||||
{"InvoiceId":35,"CustomerId":13,"InvoiceDate":"2009-06-04T22:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"1.98"}
|
||||
{"InvoiceId":36,"CustomerId":15,"InvoiceDate":"2009-06-04T22:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"1.98"}
|
||||
{"InvoiceId":37,"CustomerId":17,"InvoiceDate":"2009-06-05T22:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"3.96"}
|
||||
{"InvoiceId":38,"CustomerId":21,"InvoiceDate":"2009-06-06T22:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"5.94"}
|
||||
{"InvoiceId":39,"CustomerId":27,"InvoiceDate":"2009-06-09T22:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"8.91"}
|
||||
{"InvoiceId":40,"CustomerId":36,"InvoiceDate":"2009-06-14T22:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"13.86"}
|
||||
{"InvoiceId":41,"CustomerId":50,"InvoiceDate":"2009-06-22T22:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"0.99"}
|
||||
{"InvoiceId":42,"CustomerId":51,"InvoiceDate":"2009-07-05T22:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"1.98"}
|
||||
{"InvoiceId":43,"CustomerId":53,"InvoiceDate":"2009-07-05T22:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"1.98"}
|
||||
{"InvoiceId":44,"CustomerId":55,"InvoiceDate":"2009-07-06T22:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"3.96"}
|
||||
{"InvoiceId":45,"CustomerId":59,"InvoiceDate":"2009-07-07T22:00:00.000Z","BillingAddress":"3,Raj Bhavan Road","BillingCity":"Bangalore","BillingState":null,"BillingCountry":"India","BillingPostalCode":"560001","Total":"5.94"}
|
||||
{"InvoiceId":46,"CustomerId":6,"InvoiceDate":"2009-07-10T22:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"8.91"}
|
||||
{"InvoiceId":47,"CustomerId":15,"InvoiceDate":"2009-07-15T22:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"13.86"}
|
||||
{"InvoiceId":48,"CustomerId":29,"InvoiceDate":"2009-07-23T22:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"0.99"}
|
||||
{"InvoiceId":49,"CustomerId":30,"InvoiceDate":"2009-08-05T22:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"1.98"}
|
||||
{"InvoiceId":50,"CustomerId":32,"InvoiceDate":"2009-08-05T22:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"1.98"}
|
||||
{"InvoiceId":51,"CustomerId":34,"InvoiceDate":"2009-08-06T22:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"3.96"}
|
||||
{"InvoiceId":52,"CustomerId":38,"InvoiceDate":"2009-08-07T22:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"5.94"}
|
||||
{"InvoiceId":53,"CustomerId":44,"InvoiceDate":"2009-08-10T22:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"8.91"}
|
||||
{"InvoiceId":54,"CustomerId":53,"InvoiceDate":"2009-08-15T22:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"13.86"}
|
||||
{"InvoiceId":55,"CustomerId":8,"InvoiceDate":"2009-08-23T22:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"0.99"}
|
||||
{"InvoiceId":56,"CustomerId":9,"InvoiceDate":"2009-09-05T22:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"1.98"}
|
||||
{"InvoiceId":57,"CustomerId":11,"InvoiceDate":"2009-09-05T22:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"1.98"}
|
||||
{"InvoiceId":58,"CustomerId":13,"InvoiceDate":"2009-09-06T22:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"3.96"}
|
||||
{"InvoiceId":59,"CustomerId":17,"InvoiceDate":"2009-09-07T22:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"5.94"}
|
||||
{"InvoiceId":60,"CustomerId":23,"InvoiceDate":"2009-09-10T22:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"8.91"}
|
||||
{"InvoiceId":61,"CustomerId":32,"InvoiceDate":"2009-09-15T22:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"13.86"}
|
||||
{"InvoiceId":62,"CustomerId":46,"InvoiceDate":"2009-09-23T22:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"0.99"}
|
||||
{"InvoiceId":63,"CustomerId":47,"InvoiceDate":"2009-10-06T22:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"1.98"}
|
||||
{"InvoiceId":64,"CustomerId":49,"InvoiceDate":"2009-10-06T22:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"1.98"}
|
||||
{"InvoiceId":65,"CustomerId":51,"InvoiceDate":"2009-10-07T22:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"3.96"}
|
||||
{"InvoiceId":66,"CustomerId":55,"InvoiceDate":"2009-10-08T22:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"5.94"}
|
||||
{"InvoiceId":67,"CustomerId":2,"InvoiceDate":"2009-10-11T22:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"8.91"}
|
||||
{"InvoiceId":68,"CustomerId":11,"InvoiceDate":"2009-10-16T22:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"13.86"}
|
||||
{"InvoiceId":69,"CustomerId":25,"InvoiceDate":"2009-10-24T22:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"0.99"}
|
||||
{"InvoiceId":70,"CustomerId":26,"InvoiceDate":"2009-11-06T23:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"1.98"}
|
||||
{"InvoiceId":71,"CustomerId":28,"InvoiceDate":"2009-11-06T23:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"1.98"}
|
||||
{"InvoiceId":72,"CustomerId":30,"InvoiceDate":"2009-11-07T23:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"3.96"}
|
||||
{"InvoiceId":73,"CustomerId":34,"InvoiceDate":"2009-11-08T23:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"5.94"}
|
||||
{"InvoiceId":74,"CustomerId":40,"InvoiceDate":"2009-11-11T23:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"8.91"}
|
||||
{"InvoiceId":75,"CustomerId":49,"InvoiceDate":"2009-11-16T23:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"13.86"}
|
||||
{"InvoiceId":76,"CustomerId":4,"InvoiceDate":"2009-11-24T23:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"0.99"}
|
||||
{"InvoiceId":77,"CustomerId":5,"InvoiceDate":"2009-12-07T23:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"1.98"}
|
||||
{"InvoiceId":78,"CustomerId":7,"InvoiceDate":"2009-12-07T23:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"1.98"}
|
||||
{"InvoiceId":79,"CustomerId":9,"InvoiceDate":"2009-12-08T23:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"3.96"}
|
||||
{"InvoiceId":80,"CustomerId":13,"InvoiceDate":"2009-12-09T23:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"5.94"}
|
||||
{"InvoiceId":81,"CustomerId":19,"InvoiceDate":"2009-12-12T23:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"8.91"}
|
||||
{"InvoiceId":82,"CustomerId":28,"InvoiceDate":"2009-12-17T23:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"13.86"}
|
||||
{"InvoiceId":83,"CustomerId":42,"InvoiceDate":"2009-12-25T23:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"0.99"}
|
||||
{"InvoiceId":84,"CustomerId":43,"InvoiceDate":"2010-01-07T23:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"1.98"}
|
||||
{"InvoiceId":85,"CustomerId":45,"InvoiceDate":"2010-01-07T23:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"1.98"}
|
||||
{"InvoiceId":86,"CustomerId":47,"InvoiceDate":"2010-01-08T23:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"3.96"}
|
||||
{"InvoiceId":87,"CustomerId":51,"InvoiceDate":"2010-01-09T23:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"6.94"}
|
||||
{"InvoiceId":88,"CustomerId":57,"InvoiceDate":"2010-01-12T23:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"17.91"}
|
||||
{"InvoiceId":89,"CustomerId":7,"InvoiceDate":"2010-01-17T23:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"18.86"}
|
||||
{"InvoiceId":90,"CustomerId":21,"InvoiceDate":"2010-01-25T23:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"0.99"}
|
||||
{"InvoiceId":91,"CustomerId":22,"InvoiceDate":"2010-02-07T23:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"1.98"}
|
||||
{"InvoiceId":92,"CustomerId":24,"InvoiceDate":"2010-02-07T23:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"1.98"}
|
||||
{"InvoiceId":93,"CustomerId":26,"InvoiceDate":"2010-02-08T23:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"3.96"}
|
||||
{"InvoiceId":94,"CustomerId":30,"InvoiceDate":"2010-02-09T23:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"5.94"}
|
||||
{"InvoiceId":95,"CustomerId":36,"InvoiceDate":"2010-02-12T23:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"8.91"}
|
||||
{"InvoiceId":96,"CustomerId":45,"InvoiceDate":"2010-02-17T23:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"21.86"}
|
||||
{"InvoiceId":97,"CustomerId":59,"InvoiceDate":"2010-02-25T23:00:00.000Z","BillingAddress":"3,Raj Bhavan Road","BillingCity":"Bangalore","BillingState":null,"BillingCountry":"India","BillingPostalCode":"560001","Total":"1.99"}
|
||||
{"InvoiceId":98,"CustomerId":1,"InvoiceDate":"2010-03-10T23:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"3.98"}
|
||||
{"InvoiceId":99,"CustomerId":3,"InvoiceDate":"2010-03-10T23:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"3.98"}
|
||||
{"InvoiceId":100,"CustomerId":5,"InvoiceDate":"2010-03-11T23:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"3.96"}
|
||||
{"InvoiceId":101,"CustomerId":9,"InvoiceDate":"2010-03-12T23:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"5.94"}
|
||||
{"InvoiceId":102,"CustomerId":15,"InvoiceDate":"2010-03-15T23:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"9.91"}
|
||||
{"InvoiceId":103,"CustomerId":24,"InvoiceDate":"2010-03-20T23:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"15.86"}
|
||||
{"InvoiceId":104,"CustomerId":38,"InvoiceDate":"2010-03-28T22:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"0.99"}
|
||||
{"InvoiceId":105,"CustomerId":39,"InvoiceDate":"2010-04-10T22:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"1.98"}
|
||||
{"InvoiceId":106,"CustomerId":41,"InvoiceDate":"2010-04-10T22:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"1.98"}
|
||||
{"InvoiceId":107,"CustomerId":43,"InvoiceDate":"2010-04-11T22:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"3.96"}
|
||||
{"InvoiceId":108,"CustomerId":47,"InvoiceDate":"2010-04-12T22:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"5.94"}
|
||||
{"InvoiceId":109,"CustomerId":53,"InvoiceDate":"2010-04-15T22:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"8.91"}
|
||||
{"InvoiceId":110,"CustomerId":3,"InvoiceDate":"2010-04-20T22:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"13.86"}
|
||||
{"InvoiceId":111,"CustomerId":17,"InvoiceDate":"2010-04-28T22:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"0.99"}
|
||||
{"InvoiceId":112,"CustomerId":18,"InvoiceDate":"2010-05-11T22:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"1.98"}
|
||||
{"InvoiceId":113,"CustomerId":20,"InvoiceDate":"2010-05-11T22:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"1.98"}
|
||||
{"InvoiceId":114,"CustomerId":22,"InvoiceDate":"2010-05-12T22:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"3.96"}
|
||||
{"InvoiceId":115,"CustomerId":26,"InvoiceDate":"2010-05-13T22:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"5.94"}
|
||||
{"InvoiceId":116,"CustomerId":32,"InvoiceDate":"2010-05-16T22:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"8.91"}
|
||||
{"InvoiceId":117,"CustomerId":41,"InvoiceDate":"2010-05-21T22:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"13.86"}
|
||||
{"InvoiceId":118,"CustomerId":55,"InvoiceDate":"2010-05-29T22:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"0.99"}
|
||||
{"InvoiceId":119,"CustomerId":56,"InvoiceDate":"2010-06-11T22:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"1.98"}
|
||||
{"InvoiceId":120,"CustomerId":58,"InvoiceDate":"2010-06-11T22:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"1.98"}
|
||||
{"InvoiceId":121,"CustomerId":1,"InvoiceDate":"2010-06-12T22:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"3.96"}
|
||||
{"InvoiceId":122,"CustomerId":5,"InvoiceDate":"2010-06-13T22:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"5.94"}
|
||||
{"InvoiceId":123,"CustomerId":11,"InvoiceDate":"2010-06-16T22:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"8.91"}
|
||||
{"InvoiceId":124,"CustomerId":20,"InvoiceDate":"2010-06-21T22:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"13.86"}
|
||||
{"InvoiceId":125,"CustomerId":34,"InvoiceDate":"2010-06-29T22:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"0.99"}
|
||||
{"InvoiceId":126,"CustomerId":35,"InvoiceDate":"2010-07-12T22:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"1.98"}
|
||||
{"InvoiceId":127,"CustomerId":37,"InvoiceDate":"2010-07-12T22:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"1.98"}
|
||||
{"InvoiceId":128,"CustomerId":39,"InvoiceDate":"2010-07-13T22:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"3.96"}
|
||||
{"InvoiceId":129,"CustomerId":43,"InvoiceDate":"2010-07-14T22:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"5.94"}
|
||||
{"InvoiceId":130,"CustomerId":49,"InvoiceDate":"2010-07-17T22:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"8.91"}
|
||||
{"InvoiceId":131,"CustomerId":58,"InvoiceDate":"2010-07-22T22:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"13.86"}
|
||||
{"InvoiceId":132,"CustomerId":13,"InvoiceDate":"2010-07-30T22:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"0.99"}
|
||||
{"InvoiceId":133,"CustomerId":14,"InvoiceDate":"2010-08-12T22:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"1.98"}
|
||||
{"InvoiceId":134,"CustomerId":16,"InvoiceDate":"2010-08-12T22:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"1.98"}
|
||||
{"InvoiceId":135,"CustomerId":18,"InvoiceDate":"2010-08-13T22:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"3.96"}
|
||||
{"InvoiceId":136,"CustomerId":22,"InvoiceDate":"2010-08-14T22:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"5.94"}
|
||||
{"InvoiceId":137,"CustomerId":28,"InvoiceDate":"2010-08-17T22:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"8.91"}
|
||||
{"InvoiceId":138,"CustomerId":37,"InvoiceDate":"2010-08-22T22:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"13.86"}
|
||||
{"InvoiceId":139,"CustomerId":51,"InvoiceDate":"2010-08-30T22:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"0.99"}
|
||||
{"InvoiceId":140,"CustomerId":52,"InvoiceDate":"2010-09-12T22:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"1.98"}
|
||||
{"InvoiceId":141,"CustomerId":54,"InvoiceDate":"2010-09-12T22:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"1.98"}
|
||||
{"InvoiceId":142,"CustomerId":56,"InvoiceDate":"2010-09-13T22:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"3.96"}
|
||||
{"InvoiceId":143,"CustomerId":1,"InvoiceDate":"2010-09-14T22:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"5.94"}
|
||||
{"InvoiceId":144,"CustomerId":7,"InvoiceDate":"2010-09-17T22:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"8.91"}
|
||||
{"InvoiceId":145,"CustomerId":16,"InvoiceDate":"2010-09-22T22:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"13.86"}
|
||||
{"InvoiceId":146,"CustomerId":30,"InvoiceDate":"2010-09-30T22:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"0.99"}
|
||||
{"InvoiceId":147,"CustomerId":31,"InvoiceDate":"2010-10-13T22:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"1.98"}
|
||||
{"InvoiceId":148,"CustomerId":33,"InvoiceDate":"2010-10-13T22:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"1.98"}
|
||||
{"InvoiceId":149,"CustomerId":35,"InvoiceDate":"2010-10-14T22:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"3.96"}
|
||||
{"InvoiceId":150,"CustomerId":39,"InvoiceDate":"2010-10-15T22:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"5.94"}
|
||||
{"InvoiceId":151,"CustomerId":45,"InvoiceDate":"2010-10-18T22:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"8.91"}
|
||||
{"InvoiceId":152,"CustomerId":54,"InvoiceDate":"2010-10-23T22:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"13.86"}
|
||||
{"InvoiceId":153,"CustomerId":9,"InvoiceDate":"2010-10-31T23:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"0.99"}
|
||||
{"InvoiceId":154,"CustomerId":10,"InvoiceDate":"2010-11-13T23:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"1.98"}
|
||||
{"InvoiceId":155,"CustomerId":12,"InvoiceDate":"2010-11-13T23:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"1.98"}
|
||||
{"InvoiceId":156,"CustomerId":14,"InvoiceDate":"2010-11-14T23:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"3.96"}
|
||||
{"InvoiceId":157,"CustomerId":18,"InvoiceDate":"2010-11-15T23:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"5.94"}
|
||||
{"InvoiceId":158,"CustomerId":24,"InvoiceDate":"2010-11-18T23:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"8.91"}
|
||||
{"InvoiceId":159,"CustomerId":33,"InvoiceDate":"2010-11-23T23:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"13.86"}
|
||||
{"InvoiceId":160,"CustomerId":47,"InvoiceDate":"2010-12-01T23:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"0.99"}
|
||||
{"InvoiceId":161,"CustomerId":48,"InvoiceDate":"2010-12-14T23:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"1.98"}
|
||||
{"InvoiceId":162,"CustomerId":50,"InvoiceDate":"2010-12-14T23:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"1.98"}
|
||||
{"InvoiceId":163,"CustomerId":52,"InvoiceDate":"2010-12-15T23:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"3.96"}
|
||||
{"InvoiceId":164,"CustomerId":56,"InvoiceDate":"2010-12-16T23:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"5.94"}
|
||||
{"InvoiceId":165,"CustomerId":3,"InvoiceDate":"2010-12-19T23:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"8.91"}
|
||||
{"InvoiceId":166,"CustomerId":12,"InvoiceDate":"2010-12-24T23:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"13.86"}
|
||||
{"InvoiceId":167,"CustomerId":26,"InvoiceDate":"2011-01-01T23:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"0.99"}
|
||||
{"InvoiceId":168,"CustomerId":27,"InvoiceDate":"2011-01-14T23:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"1.98"}
|
||||
{"InvoiceId":169,"CustomerId":29,"InvoiceDate":"2011-01-14T23:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"1.98"}
|
||||
{"InvoiceId":170,"CustomerId":31,"InvoiceDate":"2011-01-15T23:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"3.96"}
|
||||
{"InvoiceId":171,"CustomerId":35,"InvoiceDate":"2011-01-16T23:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"5.94"}
|
||||
{"InvoiceId":172,"CustomerId":41,"InvoiceDate":"2011-01-19T23:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"8.91"}
|
||||
{"InvoiceId":173,"CustomerId":50,"InvoiceDate":"2011-01-24T23:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"13.86"}
|
||||
{"InvoiceId":174,"CustomerId":5,"InvoiceDate":"2011-02-01T23:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"0.99"}
|
||||
{"InvoiceId":175,"CustomerId":6,"InvoiceDate":"2011-02-14T23:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"1.98"}
|
||||
{"InvoiceId":176,"CustomerId":8,"InvoiceDate":"2011-02-14T23:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"1.98"}
|
||||
{"InvoiceId":177,"CustomerId":10,"InvoiceDate":"2011-02-15T23:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"3.96"}
|
||||
{"InvoiceId":178,"CustomerId":14,"InvoiceDate":"2011-02-16T23:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"5.94"}
|
||||
{"InvoiceId":179,"CustomerId":20,"InvoiceDate":"2011-02-19T23:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"8.91"}
|
||||
{"InvoiceId":180,"CustomerId":29,"InvoiceDate":"2011-02-24T23:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"13.86"}
|
||||
{"InvoiceId":181,"CustomerId":43,"InvoiceDate":"2011-03-04T23:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"0.99"}
|
||||
{"InvoiceId":182,"CustomerId":44,"InvoiceDate":"2011-03-17T23:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"1.98"}
|
||||
{"InvoiceId":183,"CustomerId":46,"InvoiceDate":"2011-03-17T23:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"1.98"}
|
||||
{"InvoiceId":184,"CustomerId":48,"InvoiceDate":"2011-03-18T23:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"3.96"}
|
||||
{"InvoiceId":185,"CustomerId":52,"InvoiceDate":"2011-03-19T23:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"5.94"}
|
||||
{"InvoiceId":186,"CustomerId":58,"InvoiceDate":"2011-03-22T23:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"8.91"}
|
||||
{"InvoiceId":187,"CustomerId":8,"InvoiceDate":"2011-03-27T22:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"13.86"}
|
||||
{"InvoiceId":188,"CustomerId":22,"InvoiceDate":"2011-04-04T22:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"0.99"}
|
||||
{"InvoiceId":189,"CustomerId":23,"InvoiceDate":"2011-04-17T22:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"1.98"}
|
||||
{"InvoiceId":190,"CustomerId":25,"InvoiceDate":"2011-04-17T22:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"1.98"}
|
||||
{"InvoiceId":191,"CustomerId":27,"InvoiceDate":"2011-04-18T22:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"3.96"}
|
||||
{"InvoiceId":192,"CustomerId":31,"InvoiceDate":"2011-04-19T22:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"5.94"}
|
||||
{"InvoiceId":193,"CustomerId":37,"InvoiceDate":"2011-04-22T22:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"14.91"}
|
||||
{"InvoiceId":194,"CustomerId":46,"InvoiceDate":"2011-04-27T22:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"21.86"}
|
||||
{"InvoiceId":195,"CustomerId":1,"InvoiceDate":"2011-05-05T22:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"0.99"}
|
||||
{"InvoiceId":196,"CustomerId":2,"InvoiceDate":"2011-05-18T22:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"1.98"}
|
||||
{"InvoiceId":197,"CustomerId":4,"InvoiceDate":"2011-05-18T22:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"1.98"}
|
||||
{"InvoiceId":198,"CustomerId":6,"InvoiceDate":"2011-05-19T22:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"3.96"}
|
||||
{"InvoiceId":199,"CustomerId":10,"InvoiceDate":"2011-05-20T22:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"5.94"}
|
||||
{"InvoiceId":200,"CustomerId":16,"InvoiceDate":"2011-05-23T22:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"8.91"}
|
||||
{"InvoiceId":201,"CustomerId":25,"InvoiceDate":"2011-05-28T22:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"18.86"}
|
||||
{"InvoiceId":202,"CustomerId":39,"InvoiceDate":"2011-06-05T22:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"1.99"}
|
||||
{"InvoiceId":203,"CustomerId":40,"InvoiceDate":"2011-06-18T22:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"2.98"}
|
||||
{"InvoiceId":204,"CustomerId":42,"InvoiceDate":"2011-06-18T22:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"3.98"}
|
||||
{"InvoiceId":205,"CustomerId":44,"InvoiceDate":"2011-06-19T22:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"7.96"}
|
||||
{"InvoiceId":206,"CustomerId":48,"InvoiceDate":"2011-06-20T22:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"8.94"}
|
||||
{"InvoiceId":207,"CustomerId":54,"InvoiceDate":"2011-06-23T22:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"8.91"}
|
||||
{"InvoiceId":208,"CustomerId":4,"InvoiceDate":"2011-06-28T22:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"15.86"}
|
||||
{"InvoiceId":209,"CustomerId":18,"InvoiceDate":"2011-07-06T22:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"0.99"}
|
||||
{"InvoiceId":210,"CustomerId":19,"InvoiceDate":"2011-07-19T22:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"1.98"}
|
||||
{"InvoiceId":211,"CustomerId":21,"InvoiceDate":"2011-07-19T22:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"1.98"}
|
||||
{"InvoiceId":212,"CustomerId":23,"InvoiceDate":"2011-07-20T22:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"3.96"}
|
||||
{"InvoiceId":213,"CustomerId":27,"InvoiceDate":"2011-07-21T22:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"5.94"}
|
||||
{"InvoiceId":214,"CustomerId":33,"InvoiceDate":"2011-07-24T22:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"8.91"}
|
||||
{"InvoiceId":215,"CustomerId":42,"InvoiceDate":"2011-07-29T22:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"13.86"}
|
||||
{"InvoiceId":216,"CustomerId":56,"InvoiceDate":"2011-08-06T22:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"0.99"}
|
||||
{"InvoiceId":217,"CustomerId":57,"InvoiceDate":"2011-08-19T22:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"1.98"}
|
||||
{"InvoiceId":218,"CustomerId":59,"InvoiceDate":"2011-08-19T22:00:00.000Z","BillingAddress":"3,Raj Bhavan Road","BillingCity":"Bangalore","BillingState":null,"BillingCountry":"India","BillingPostalCode":"560001","Total":"1.98"}
|
||||
{"InvoiceId":219,"CustomerId":2,"InvoiceDate":"2011-08-20T22:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"3.96"}
|
||||
{"InvoiceId":220,"CustomerId":6,"InvoiceDate":"2011-08-21T22:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"5.94"}
|
||||
{"InvoiceId":221,"CustomerId":12,"InvoiceDate":"2011-08-24T22:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"8.91"}
|
||||
{"InvoiceId":222,"CustomerId":21,"InvoiceDate":"2011-08-29T22:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"13.86"}
|
||||
{"InvoiceId":223,"CustomerId":35,"InvoiceDate":"2011-09-06T22:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"0.99"}
|
||||
{"InvoiceId":224,"CustomerId":36,"InvoiceDate":"2011-09-19T22:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"1.98"}
|
||||
{"InvoiceId":225,"CustomerId":38,"InvoiceDate":"2011-09-19T22:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"1.98"}
|
||||
{"InvoiceId":226,"CustomerId":40,"InvoiceDate":"2011-09-20T22:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"3.96"}
|
||||
{"InvoiceId":227,"CustomerId":44,"InvoiceDate":"2011-09-21T22:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"5.94"}
|
||||
{"InvoiceId":228,"CustomerId":50,"InvoiceDate":"2011-09-24T22:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"8.91"}
|
||||
{"InvoiceId":229,"CustomerId":59,"InvoiceDate":"2011-09-29T22:00:00.000Z","BillingAddress":"3,Raj Bhavan Road","BillingCity":"Bangalore","BillingState":null,"BillingCountry":"India","BillingPostalCode":"560001","Total":"13.86"}
|
||||
{"InvoiceId":230,"CustomerId":14,"InvoiceDate":"2011-10-07T22:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"0.99"}
|
||||
{"InvoiceId":231,"CustomerId":15,"InvoiceDate":"2011-10-20T22:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"1.98"}
|
||||
{"InvoiceId":232,"CustomerId":17,"InvoiceDate":"2011-10-20T22:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"1.98"}
|
||||
{"InvoiceId":233,"CustomerId":19,"InvoiceDate":"2011-10-21T22:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"3.96"}
|
||||
{"InvoiceId":234,"CustomerId":23,"InvoiceDate":"2011-10-22T22:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"5.94"}
|
||||
{"InvoiceId":235,"CustomerId":29,"InvoiceDate":"2011-10-25T22:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"8.91"}
|
||||
{"InvoiceId":236,"CustomerId":38,"InvoiceDate":"2011-10-30T23:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"13.86"}
|
||||
{"InvoiceId":237,"CustomerId":52,"InvoiceDate":"2011-11-07T23:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"0.99"}
|
||||
{"InvoiceId":238,"CustomerId":53,"InvoiceDate":"2011-11-20T23:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"1.98"}
|
||||
{"InvoiceId":239,"CustomerId":55,"InvoiceDate":"2011-11-20T23:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"1.98"}
|
||||
{"InvoiceId":240,"CustomerId":57,"InvoiceDate":"2011-11-21T23:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"3.96"}
|
||||
{"InvoiceId":241,"CustomerId":2,"InvoiceDate":"2011-11-22T23:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"5.94"}
|
||||
{"InvoiceId":242,"CustomerId":8,"InvoiceDate":"2011-11-25T23:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"8.91"}
|
||||
{"InvoiceId":243,"CustomerId":17,"InvoiceDate":"2011-11-30T23:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"13.86"}
|
||||
{"InvoiceId":244,"CustomerId":31,"InvoiceDate":"2011-12-08T23:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"0.99"}
|
||||
{"InvoiceId":245,"CustomerId":32,"InvoiceDate":"2011-12-21T23:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"1.98"}
|
||||
{"InvoiceId":246,"CustomerId":34,"InvoiceDate":"2011-12-21T23:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"1.98"}
|
||||
{"InvoiceId":247,"CustomerId":36,"InvoiceDate":"2011-12-22T23:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"3.96"}
|
||||
{"InvoiceId":248,"CustomerId":40,"InvoiceDate":"2011-12-23T23:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"5.94"}
|
||||
{"InvoiceId":249,"CustomerId":46,"InvoiceDate":"2011-12-26T23:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"8.91"}
|
||||
{"InvoiceId":250,"CustomerId":55,"InvoiceDate":"2011-12-31T23:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"13.86"}
|
||||
{"InvoiceId":251,"CustomerId":10,"InvoiceDate":"2012-01-08T23:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"0.99"}
|
||||
{"InvoiceId":252,"CustomerId":11,"InvoiceDate":"2012-01-21T23:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"1.98"}
|
||||
{"InvoiceId":253,"CustomerId":13,"InvoiceDate":"2012-01-21T23:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"1.98"}
|
||||
{"InvoiceId":254,"CustomerId":15,"InvoiceDate":"2012-01-22T23:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"3.96"}
|
||||
{"InvoiceId":255,"CustomerId":19,"InvoiceDate":"2012-01-23T23:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"5.94"}
|
||||
{"InvoiceId":256,"CustomerId":25,"InvoiceDate":"2012-01-26T23:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"8.91"}
|
||||
{"InvoiceId":257,"CustomerId":34,"InvoiceDate":"2012-01-31T23:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"13.86"}
|
||||
{"InvoiceId":258,"CustomerId":48,"InvoiceDate":"2012-02-08T23:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"0.99"}
|
||||
{"InvoiceId":259,"CustomerId":49,"InvoiceDate":"2012-02-21T23:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"1.98"}
|
||||
{"InvoiceId":260,"CustomerId":51,"InvoiceDate":"2012-02-21T23:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"1.98"}
|
||||
{"InvoiceId":261,"CustomerId":53,"InvoiceDate":"2012-02-22T23:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"3.96"}
|
||||
{"InvoiceId":262,"CustomerId":57,"InvoiceDate":"2012-02-23T23:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"5.94"}
|
||||
{"InvoiceId":263,"CustomerId":4,"InvoiceDate":"2012-02-26T23:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"8.91"}
|
||||
{"InvoiceId":264,"CustomerId":13,"InvoiceDate":"2012-03-02T23:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"13.86"}
|
||||
{"InvoiceId":265,"CustomerId":27,"InvoiceDate":"2012-03-10T23:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"0.99"}
|
||||
{"InvoiceId":266,"CustomerId":28,"InvoiceDate":"2012-03-23T23:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"1.98"}
|
||||
{"InvoiceId":267,"CustomerId":30,"InvoiceDate":"2012-03-23T23:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"1.98"}
|
||||
{"InvoiceId":268,"CustomerId":32,"InvoiceDate":"2012-03-24T23:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"3.96"}
|
||||
{"InvoiceId":269,"CustomerId":36,"InvoiceDate":"2012-03-25T22:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"5.94"}
|
||||
{"InvoiceId":270,"CustomerId":42,"InvoiceDate":"2012-03-28T22:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"8.91"}
|
||||
{"InvoiceId":271,"CustomerId":51,"InvoiceDate":"2012-04-02T22:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"13.86"}
|
||||
{"InvoiceId":272,"CustomerId":6,"InvoiceDate":"2012-04-10T22:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"0.99"}
|
||||
{"InvoiceId":273,"CustomerId":7,"InvoiceDate":"2012-04-23T22:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"1.98"}
|
||||
{"InvoiceId":274,"CustomerId":9,"InvoiceDate":"2012-04-23T22:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"1.98"}
|
||||
{"InvoiceId":275,"CustomerId":11,"InvoiceDate":"2012-04-24T22:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"3.96"}
|
||||
{"InvoiceId":276,"CustomerId":15,"InvoiceDate":"2012-04-25T22:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"5.94"}
|
||||
{"InvoiceId":277,"CustomerId":21,"InvoiceDate":"2012-04-28T22:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"8.91"}
|
||||
{"InvoiceId":278,"CustomerId":30,"InvoiceDate":"2012-05-03T22:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"13.86"}
|
||||
{"InvoiceId":279,"CustomerId":44,"InvoiceDate":"2012-05-11T22:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"0.99"}
|
||||
{"InvoiceId":280,"CustomerId":45,"InvoiceDate":"2012-05-24T22:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"1.98"}
|
||||
{"InvoiceId":281,"CustomerId":47,"InvoiceDate":"2012-05-24T22:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"1.98"}
|
||||
{"InvoiceId":282,"CustomerId":49,"InvoiceDate":"2012-05-25T22:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"3.96"}
|
||||
{"InvoiceId":283,"CustomerId":53,"InvoiceDate":"2012-05-26T22:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"5.94"}
|
||||
{"InvoiceId":284,"CustomerId":59,"InvoiceDate":"2012-05-29T22:00:00.000Z","BillingAddress":"3,Raj Bhavan Road","BillingCity":"Bangalore","BillingState":null,"BillingCountry":"India","BillingPostalCode":"560001","Total":"8.91"}
|
||||
{"InvoiceId":285,"CustomerId":9,"InvoiceDate":"2012-06-03T22:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"13.86"}
|
||||
{"InvoiceId":286,"CustomerId":23,"InvoiceDate":"2012-06-11T22:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"0.99"}
|
||||
{"InvoiceId":287,"CustomerId":24,"InvoiceDate":"2012-06-24T22:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"1.98"}
|
||||
{"InvoiceId":288,"CustomerId":26,"InvoiceDate":"2012-06-24T22:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"1.98"}
|
||||
{"InvoiceId":289,"CustomerId":28,"InvoiceDate":"2012-06-25T22:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"3.96"}
|
||||
{"InvoiceId":290,"CustomerId":32,"InvoiceDate":"2012-06-26T22:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"5.94"}
|
||||
{"InvoiceId":291,"CustomerId":38,"InvoiceDate":"2012-06-29T22:00:00.000Z","BillingAddress":"Barbarossastraße 19","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10779","Total":"8.91"}
|
||||
{"InvoiceId":292,"CustomerId":47,"InvoiceDate":"2012-07-04T22:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"13.86"}
|
||||
{"InvoiceId":293,"CustomerId":2,"InvoiceDate":"2012-07-12T22:00:00.000Z","BillingAddress":"Theodor-Heuss-Straße 34","BillingCity":"Stuttgart","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"70174","Total":"0.99"}
|
||||
{"InvoiceId":294,"CustomerId":3,"InvoiceDate":"2012-07-25T22:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"1.98"}
|
||||
{"InvoiceId":295,"CustomerId":5,"InvoiceDate":"2012-07-25T22:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"1.98"}
|
||||
{"InvoiceId":296,"CustomerId":7,"InvoiceDate":"2012-07-26T22:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"3.96"}
|
||||
{"InvoiceId":297,"CustomerId":11,"InvoiceDate":"2012-07-27T22:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"5.94"}
|
||||
{"InvoiceId":298,"CustomerId":17,"InvoiceDate":"2012-07-30T22:00:00.000Z","BillingAddress":"1 Microsoft Way","BillingCity":"Redmond","BillingState":"WA","BillingCountry":"USA","BillingPostalCode":"98052-8300","Total":"10.91"}
|
||||
{"InvoiceId":299,"CustomerId":26,"InvoiceDate":"2012-08-04T22:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"23.86"}
|
||||
{"InvoiceId":300,"CustomerId":40,"InvoiceDate":"2012-08-12T22:00:00.000Z","BillingAddress":"8, Rue Hanovre","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75002","Total":"0.99"}
|
||||
{"InvoiceId":301,"CustomerId":41,"InvoiceDate":"2012-08-25T22:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"1.98"}
|
||||
{"InvoiceId":302,"CustomerId":43,"InvoiceDate":"2012-08-25T22:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"1.98"}
|
||||
{"InvoiceId":303,"CustomerId":45,"InvoiceDate":"2012-08-26T22:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"3.96"}
|
||||
{"InvoiceId":304,"CustomerId":49,"InvoiceDate":"2012-08-27T22:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"5.94"}
|
||||
{"InvoiceId":305,"CustomerId":55,"InvoiceDate":"2012-08-30T22:00:00.000Z","BillingAddress":"421 Bourke Street","BillingCity":"Sidney","BillingState":"NSW","BillingCountry":"Australia","BillingPostalCode":"2010","Total":"8.91"}
|
||||
{"InvoiceId":306,"CustomerId":5,"InvoiceDate":"2012-09-04T22:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"16.86"}
|
||||
{"InvoiceId":307,"CustomerId":19,"InvoiceDate":"2012-09-12T22:00:00.000Z","BillingAddress":"1 Infinite Loop","BillingCity":"Cupertino","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"95014","Total":"1.99"}
|
||||
{"InvoiceId":308,"CustomerId":20,"InvoiceDate":"2012-09-25T22:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"3.98"}
|
||||
{"InvoiceId":309,"CustomerId":22,"InvoiceDate":"2012-09-25T22:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"3.98"}
|
||||
{"InvoiceId":310,"CustomerId":24,"InvoiceDate":"2012-09-26T22:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"7.96"}
|
||||
{"InvoiceId":311,"CustomerId":28,"InvoiceDate":"2012-09-27T22:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"11.94"}
|
||||
{"InvoiceId":312,"CustomerId":34,"InvoiceDate":"2012-09-30T22:00:00.000Z","BillingAddress":"Rua da Assunçăo 53","BillingCity":"Lisbon","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"10.91"}
|
||||
{"InvoiceId":313,"CustomerId":43,"InvoiceDate":"2012-10-05T22:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"16.86"}
|
||||
{"InvoiceId":314,"CustomerId":57,"InvoiceDate":"2012-10-13T22:00:00.000Z","BillingAddress":"Calle Lira, 198","BillingCity":"Santiago","BillingState":null,"BillingCountry":"Chile","BillingPostalCode":null,"Total":"0.99"}
|
||||
{"InvoiceId":315,"CustomerId":58,"InvoiceDate":"2012-10-26T22:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"1.98"}
|
||||
{"InvoiceId":316,"CustomerId":1,"InvoiceDate":"2012-10-26T22:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"1.98"}
|
||||
{"InvoiceId":317,"CustomerId":3,"InvoiceDate":"2012-10-27T22:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"3.96"}
|
||||
{"InvoiceId":318,"CustomerId":7,"InvoiceDate":"2012-10-28T23:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"5.94"}
|
||||
{"InvoiceId":319,"CustomerId":13,"InvoiceDate":"2012-10-31T23:00:00.000Z","BillingAddress":"Qe 7 Bloco G","BillingCity":"Brasília","BillingState":"DF","BillingCountry":"Brazil","BillingPostalCode":"71020-677","Total":"8.91"}
|
||||
{"InvoiceId":320,"CustomerId":22,"InvoiceDate":"2012-11-05T23:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"13.86"}
|
||||
{"InvoiceId":321,"CustomerId":36,"InvoiceDate":"2012-11-13T23:00:00.000Z","BillingAddress":"Tauentzienstraße 8","BillingCity":"Berlin","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"10789","Total":"0.99"}
|
||||
{"InvoiceId":322,"CustomerId":37,"InvoiceDate":"2012-11-26T23:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"1.98"}
|
||||
{"InvoiceId":323,"CustomerId":39,"InvoiceDate":"2012-11-26T23:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"1.98"}
|
||||
{"InvoiceId":324,"CustomerId":41,"InvoiceDate":"2012-11-27T23:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"3.96"}
|
||||
{"InvoiceId":325,"CustomerId":45,"InvoiceDate":"2012-11-28T23:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"5.94"}
|
||||
{"InvoiceId":326,"CustomerId":51,"InvoiceDate":"2012-12-01T23:00:00.000Z","BillingAddress":"Celsiusg. 9","BillingCity":"Stockholm","BillingState":null,"BillingCountry":"Sweden","BillingPostalCode":"11230","Total":"8.91"}
|
||||
{"InvoiceId":327,"CustomerId":1,"InvoiceDate":"2012-12-06T23:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"13.86"}
|
||||
{"InvoiceId":328,"CustomerId":15,"InvoiceDate":"2012-12-14T23:00:00.000Z","BillingAddress":"700 W Pender Street","BillingCity":"Vancouver","BillingState":"BC","BillingCountry":"Canada","BillingPostalCode":"V6C 1G8","Total":"0.99"}
|
||||
{"InvoiceId":329,"CustomerId":16,"InvoiceDate":"2012-12-27T23:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"1.98"}
|
||||
{"InvoiceId":330,"CustomerId":18,"InvoiceDate":"2012-12-27T23:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"1.98"}
|
||||
{"InvoiceId":331,"CustomerId":20,"InvoiceDate":"2012-12-28T23:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"3.96"}
|
||||
{"InvoiceId":332,"CustomerId":24,"InvoiceDate":"2012-12-29T23:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"5.94"}
|
||||
{"InvoiceId":333,"CustomerId":30,"InvoiceDate":"2013-01-01T23:00:00.000Z","BillingAddress":"230 Elgin Street","BillingCity":"Ottawa","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"K2P 1L7","Total":"8.91"}
|
||||
{"InvoiceId":334,"CustomerId":39,"InvoiceDate":"2013-01-06T23:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"13.86"}
|
||||
{"InvoiceId":335,"CustomerId":53,"InvoiceDate":"2013-01-14T23:00:00.000Z","BillingAddress":"113 Lupus St","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"SW1V 3EN","Total":"0.99"}
|
||||
{"InvoiceId":336,"CustomerId":54,"InvoiceDate":"2013-01-27T23:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"1.98"}
|
||||
{"InvoiceId":337,"CustomerId":56,"InvoiceDate":"2013-01-27T23:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"1.98"}
|
||||
{"InvoiceId":338,"CustomerId":58,"InvoiceDate":"2013-01-28T23:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"3.96"}
|
||||
{"InvoiceId":339,"CustomerId":3,"InvoiceDate":"2013-01-29T23:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"5.94"}
|
||||
{"InvoiceId":340,"CustomerId":9,"InvoiceDate":"2013-02-01T23:00:00.000Z","BillingAddress":"Sřnder Boulevard 51","BillingCity":"Copenhagen","BillingState":null,"BillingCountry":"Denmark","BillingPostalCode":"1720","Total":"8.91"}
|
||||
{"InvoiceId":341,"CustomerId":18,"InvoiceDate":"2013-02-06T23:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"13.86"}
|
||||
{"InvoiceId":342,"CustomerId":32,"InvoiceDate":"2013-02-14T23:00:00.000Z","BillingAddress":"696 Osborne Street","BillingCity":"Winnipeg","BillingState":"MB","BillingCountry":"Canada","BillingPostalCode":"R3L 2B9","Total":"0.99"}
|
||||
{"InvoiceId":343,"CustomerId":33,"InvoiceDate":"2013-02-27T23:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"1.98"}
|
||||
{"InvoiceId":344,"CustomerId":35,"InvoiceDate":"2013-02-27T23:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"1.98"}
|
||||
{"InvoiceId":345,"CustomerId":37,"InvoiceDate":"2013-02-28T23:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"3.96"}
|
||||
{"InvoiceId":346,"CustomerId":41,"InvoiceDate":"2013-03-01T23:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"5.94"}
|
||||
{"InvoiceId":347,"CustomerId":47,"InvoiceDate":"2013-03-04T23:00:00.000Z","BillingAddress":"Via Degli Scipioni, 43","BillingCity":"Rome","BillingState":"RM","BillingCountry":"Italy","BillingPostalCode":"00192","Total":"8.91"}
|
||||
{"InvoiceId":348,"CustomerId":56,"InvoiceDate":"2013-03-09T23:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"13.86"}
|
||||
{"InvoiceId":349,"CustomerId":11,"InvoiceDate":"2013-03-17T23:00:00.000Z","BillingAddress":"Av. Paulista, 2022","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01310-200","Total":"0.99"}
|
||||
{"InvoiceId":350,"CustomerId":12,"InvoiceDate":"2013-03-30T23:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"1.98"}
|
||||
{"InvoiceId":351,"CustomerId":14,"InvoiceDate":"2013-03-30T23:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"1.98"}
|
||||
{"InvoiceId":352,"CustomerId":16,"InvoiceDate":"2013-03-31T22:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"3.96"}
|
||||
{"InvoiceId":353,"CustomerId":20,"InvoiceDate":"2013-04-01T22:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"5.94"}
|
||||
{"InvoiceId":354,"CustomerId":26,"InvoiceDate":"2013-04-04T22:00:00.000Z","BillingAddress":"2211 W Berry Street","BillingCity":"Fort Worth","BillingState":"TX","BillingCountry":"USA","BillingPostalCode":"76110","Total":"8.91"}
|
||||
{"InvoiceId":355,"CustomerId":35,"InvoiceDate":"2013-04-09T22:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"13.86"}
|
||||
{"InvoiceId":356,"CustomerId":49,"InvoiceDate":"2013-04-17T22:00:00.000Z","BillingAddress":"Ordynacka 10","BillingCity":"Warsaw","BillingState":null,"BillingCountry":"Poland","BillingPostalCode":"00-358","Total":"0.99"}
|
||||
{"InvoiceId":357,"CustomerId":50,"InvoiceDate":"2013-04-30T22:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"1.98"}
|
||||
{"InvoiceId":358,"CustomerId":52,"InvoiceDate":"2013-04-30T22:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"1.98"}
|
||||
{"InvoiceId":359,"CustomerId":54,"InvoiceDate":"2013-05-01T22:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"3.96"}
|
||||
{"InvoiceId":360,"CustomerId":58,"InvoiceDate":"2013-05-02T22:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"5.94"}
|
||||
{"InvoiceId":361,"CustomerId":5,"InvoiceDate":"2013-05-05T22:00:00.000Z","BillingAddress":"Klanova 9/506","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14700","Total":"8.91"}
|
||||
{"InvoiceId":362,"CustomerId":14,"InvoiceDate":"2013-05-10T22:00:00.000Z","BillingAddress":"8210 111 ST NW","BillingCity":"Edmonton","BillingState":"AB","BillingCountry":"Canada","BillingPostalCode":"T6G 2C7","Total":"13.86"}
|
||||
{"InvoiceId":363,"CustomerId":28,"InvoiceDate":"2013-05-18T22:00:00.000Z","BillingAddress":"302 S 700 E","BillingCity":"Salt Lake City","BillingState":"UT","BillingCountry":"USA","BillingPostalCode":"84102","Total":"0.99"}
|
||||
{"InvoiceId":364,"CustomerId":29,"InvoiceDate":"2013-05-31T22:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"1.98"}
|
||||
{"InvoiceId":365,"CustomerId":31,"InvoiceDate":"2013-05-31T22:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"1.98"}
|
||||
{"InvoiceId":366,"CustomerId":33,"InvoiceDate":"2013-06-01T22:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"3.96"}
|
||||
{"InvoiceId":367,"CustomerId":37,"InvoiceDate":"2013-06-02T22:00:00.000Z","BillingAddress":"Berger Straße 10","BillingCity":"Frankfurt","BillingState":null,"BillingCountry":"Germany","BillingPostalCode":"60316","Total":"5.94"}
|
||||
{"InvoiceId":368,"CustomerId":43,"InvoiceDate":"2013-06-05T22:00:00.000Z","BillingAddress":"68, Rue Jouvence","BillingCity":"Dijon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"21000","Total":"8.91"}
|
||||
{"InvoiceId":369,"CustomerId":52,"InvoiceDate":"2013-06-10T22:00:00.000Z","BillingAddress":"202 Hoxton Street","BillingCity":"London","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"N1 5LH","Total":"13.86"}
|
||||
{"InvoiceId":370,"CustomerId":7,"InvoiceDate":"2013-06-18T22:00:00.000Z","BillingAddress":"Rotenturmstraße 4, 1010 Innere Stadt","BillingCity":"Vienne","BillingState":null,"BillingCountry":"Austria","BillingPostalCode":"1010","Total":"0.99"}
|
||||
{"InvoiceId":371,"CustomerId":8,"InvoiceDate":"2013-07-01T22:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"1.98"}
|
||||
{"InvoiceId":372,"CustomerId":10,"InvoiceDate":"2013-07-01T22:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"1.98"}
|
||||
{"InvoiceId":373,"CustomerId":12,"InvoiceDate":"2013-07-02T22:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"3.96"}
|
||||
{"InvoiceId":374,"CustomerId":16,"InvoiceDate":"2013-07-03T22:00:00.000Z","BillingAddress":"1600 Amphitheatre Parkway","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94043-1351","Total":"5.94"}
|
||||
{"InvoiceId":375,"CustomerId":22,"InvoiceDate":"2013-07-06T22:00:00.000Z","BillingAddress":"120 S Orange Ave","BillingCity":"Orlando","BillingState":"FL","BillingCountry":"USA","BillingPostalCode":"32801","Total":"8.91"}
|
||||
{"InvoiceId":376,"CustomerId":31,"InvoiceDate":"2013-07-11T22:00:00.000Z","BillingAddress":"194A Chain Lake Drive","BillingCity":"Halifax","BillingState":"NS","BillingCountry":"Canada","BillingPostalCode":"B3S 1C5","Total":"13.86"}
|
||||
{"InvoiceId":377,"CustomerId":45,"InvoiceDate":"2013-07-19T22:00:00.000Z","BillingAddress":"Erzsébet krt. 58.","BillingCity":"Budapest","BillingState":null,"BillingCountry":"Hungary","BillingPostalCode":"H-1073","Total":"0.99"}
|
||||
{"InvoiceId":378,"CustomerId":46,"InvoiceDate":"2013-08-01T22:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"1.98"}
|
||||
{"InvoiceId":379,"CustomerId":48,"InvoiceDate":"2013-08-01T22:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"1.98"}
|
||||
{"InvoiceId":380,"CustomerId":50,"InvoiceDate":"2013-08-02T22:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"3.96"}
|
||||
{"InvoiceId":381,"CustomerId":54,"InvoiceDate":"2013-08-03T22:00:00.000Z","BillingAddress":"110 Raeburn Pl","BillingCity":"Edinburgh","BillingState":null,"BillingCountry":"United Kingdom","BillingPostalCode":"EH4 1HH","Total":"5.94"}
|
||||
{"InvoiceId":382,"CustomerId":1,"InvoiceDate":"2013-08-06T22:00:00.000Z","BillingAddress":"Av. Brigadeiro Faria Lima, 2170","BillingCity":"Săo José dos Campos","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"12227-000","Total":"8.91"}
|
||||
{"InvoiceId":383,"CustomerId":10,"InvoiceDate":"2013-08-11T22:00:00.000Z","BillingAddress":"Rua Dr. Falcăo Filho, 155","BillingCity":"Săo Paulo","BillingState":"SP","BillingCountry":"Brazil","BillingPostalCode":"01007-010","Total":"13.86"}
|
||||
{"InvoiceId":384,"CustomerId":24,"InvoiceDate":"2013-08-19T22:00:00.000Z","BillingAddress":"162 E Superior Street","BillingCity":"Chicago","BillingState":"IL","BillingCountry":"USA","BillingPostalCode":"60611","Total":"0.99"}
|
||||
{"InvoiceId":385,"CustomerId":25,"InvoiceDate":"2013-09-01T22:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"1.98"}
|
||||
{"InvoiceId":386,"CustomerId":27,"InvoiceDate":"2013-09-01T22:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"1.98"}
|
||||
{"InvoiceId":387,"CustomerId":29,"InvoiceDate":"2013-09-02T22:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"3.96"}
|
||||
{"InvoiceId":388,"CustomerId":33,"InvoiceDate":"2013-09-03T22:00:00.000Z","BillingAddress":"5112 48 Street","BillingCity":"Yellowknife","BillingState":"NT","BillingCountry":"Canada","BillingPostalCode":"X1A 1N6","Total":"5.94"}
|
||||
{"InvoiceId":389,"CustomerId":39,"InvoiceDate":"2013-09-06T22:00:00.000Z","BillingAddress":"4, Rue Milton","BillingCity":"Paris","BillingState":null,"BillingCountry":"France","BillingPostalCode":"75009","Total":"8.91"}
|
||||
{"InvoiceId":390,"CustomerId":48,"InvoiceDate":"2013-09-11T22:00:00.000Z","BillingAddress":"Lijnbaansgracht 120bg","BillingCity":"Amsterdam","BillingState":"VV","BillingCountry":"Netherlands","BillingPostalCode":"1016","Total":"13.86"}
|
||||
{"InvoiceId":391,"CustomerId":3,"InvoiceDate":"2013-09-19T22:00:00.000Z","BillingAddress":"1498 rue Bélanger","BillingCity":"Montréal","BillingState":"QC","BillingCountry":"Canada","BillingPostalCode":"H2G 1A7","Total":"0.99"}
|
||||
{"InvoiceId":392,"CustomerId":4,"InvoiceDate":"2013-10-02T22:00:00.000Z","BillingAddress":"Ullevĺlsveien 14","BillingCity":"Oslo","BillingState":null,"BillingCountry":"Norway","BillingPostalCode":"0171","Total":"1.98"}
|
||||
{"InvoiceId":393,"CustomerId":6,"InvoiceDate":"2013-10-02T22:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"1.98"}
|
||||
{"InvoiceId":394,"CustomerId":8,"InvoiceDate":"2013-10-03T22:00:00.000Z","BillingAddress":"Grétrystraat 63","BillingCity":"Brussels","BillingState":null,"BillingCountry":"Belgium","BillingPostalCode":"1000","Total":"3.96"}
|
||||
{"InvoiceId":395,"CustomerId":12,"InvoiceDate":"2013-10-04T22:00:00.000Z","BillingAddress":"Praça Pio X, 119","BillingCity":"Rio de Janeiro","BillingState":"RJ","BillingCountry":"Brazil","BillingPostalCode":"20040-020","Total":"5.94"}
|
||||
{"InvoiceId":396,"CustomerId":18,"InvoiceDate":"2013-10-07T22:00:00.000Z","BillingAddress":"627 Broadway","BillingCity":"New York","BillingState":"NY","BillingCountry":"USA","BillingPostalCode":"10012-2612","Total":"8.91"}
|
||||
{"InvoiceId":397,"CustomerId":27,"InvoiceDate":"2013-10-12T22:00:00.000Z","BillingAddress":"1033 N Park Ave","BillingCity":"Tucson","BillingState":"AZ","BillingCountry":"USA","BillingPostalCode":"85719","Total":"13.86"}
|
||||
{"InvoiceId":398,"CustomerId":41,"InvoiceDate":"2013-10-20T22:00:00.000Z","BillingAddress":"11, Place Bellecour","BillingCity":"Lyon","BillingState":null,"BillingCountry":"France","BillingPostalCode":"69002","Total":"0.99"}
|
||||
{"InvoiceId":399,"CustomerId":42,"InvoiceDate":"2013-11-02T23:00:00.000Z","BillingAddress":"9, Place Louis Barthou","BillingCity":"Bordeaux","BillingState":null,"BillingCountry":"France","BillingPostalCode":"33000","Total":"1.98"}
|
||||
{"InvoiceId":400,"CustomerId":44,"InvoiceDate":"2013-11-02T23:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"1.98"}
|
||||
{"InvoiceId":401,"CustomerId":46,"InvoiceDate":"2013-11-03T23:00:00.000Z","BillingAddress":"3 Chatham Street","BillingCity":"Dublin","BillingState":"Dublin","BillingCountry":"Ireland","BillingPostalCode":null,"Total":"3.96"}
|
||||
{"InvoiceId":402,"CustomerId":50,"InvoiceDate":"2013-11-04T23:00:00.000Z","BillingAddress":"C/ San Bernardo 85","BillingCity":"Madrid","BillingState":null,"BillingCountry":"Spain","BillingPostalCode":"28015","Total":"5.94"}
|
||||
{"InvoiceId":403,"CustomerId":56,"InvoiceDate":"2013-11-07T23:00:00.000Z","BillingAddress":"307 Macacha Güemes","BillingCity":"Buenos Aires","BillingState":null,"BillingCountry":"Argentina","BillingPostalCode":"1106","Total":"8.91"}
|
||||
{"InvoiceId":404,"CustomerId":6,"InvoiceDate":"2013-11-12T23:00:00.000Z","BillingAddress":"Rilská 3174/6","BillingCity":"Prague","BillingState":null,"BillingCountry":"Czech Republic","BillingPostalCode":"14300","Total":"25.86"}
|
||||
{"InvoiceId":405,"CustomerId":20,"InvoiceDate":"2013-11-20T23:00:00.000Z","BillingAddress":"541 Del Medio Avenue","BillingCity":"Mountain View","BillingState":"CA","BillingCountry":"USA","BillingPostalCode":"94040-111","Total":"0.99"}
|
||||
{"InvoiceId":406,"CustomerId":21,"InvoiceDate":"2013-12-03T23:00:00.000Z","BillingAddress":"801 W 4th Street","BillingCity":"Reno","BillingState":"NV","BillingCountry":"USA","BillingPostalCode":"89503","Total":"1.98"}
|
||||
{"InvoiceId":407,"CustomerId":23,"InvoiceDate":"2013-12-03T23:00:00.000Z","BillingAddress":"69 Salem Street","BillingCity":"Boston","BillingState":"MA","BillingCountry":"USA","BillingPostalCode":"2113","Total":"1.98"}
|
||||
{"InvoiceId":408,"CustomerId":25,"InvoiceDate":"2013-12-04T23:00:00.000Z","BillingAddress":"319 N. Frances Street","BillingCity":"Madison","BillingState":"WI","BillingCountry":"USA","BillingPostalCode":"53703","Total":"3.96"}
|
||||
{"InvoiceId":409,"CustomerId":29,"InvoiceDate":"2013-12-05T23:00:00.000Z","BillingAddress":"796 Dundas Street West","BillingCity":"Toronto","BillingState":"ON","BillingCountry":"Canada","BillingPostalCode":"M6J 1V1","Total":"5.94"}
|
||||
{"InvoiceId":410,"CustomerId":35,"InvoiceDate":"2013-12-08T23:00:00.000Z","BillingAddress":"Rua dos Campeőes Europeus de Viena, 4350","BillingCity":"Porto","BillingState":null,"BillingCountry":"Portugal","BillingPostalCode":null,"Total":"8.91"}
|
||||
{"InvoiceId":411,"CustomerId":44,"InvoiceDate":"2013-12-13T23:00:00.000Z","BillingAddress":"Porthaninkatu 9","BillingCity":"Helsinki","BillingState":null,"BillingCountry":"Finland","BillingPostalCode":"00530","Total":"13.86"}
|
||||
{"InvoiceId":412,"CustomerId":58,"InvoiceDate":"2013-12-21T23:00:00.000Z","BillingAddress":"12,Community Centre","BillingCity":"Delhi","BillingState":null,"BillingCountry":"India","BillingPostalCode":"110017","Total":"1.99"}
|
||||
2240
e2e-tests/data/chinook-jsonl/InvoiceLine.jsonl
Normal file
2240
e2e-tests/data/chinook-jsonl/InvoiceLine.jsonl
Normal file
File diff suppressed because it is too large
Load Diff
5
e2e-tests/data/chinook-jsonl/MediaType.jsonl
Normal file
5
e2e-tests/data/chinook-jsonl/MediaType.jsonl
Normal file
@@ -0,0 +1,5 @@
|
||||
{"MediaTypeId":1,"Name":"MPEG audio file"}
|
||||
{"MediaTypeId":2,"Name":"Protected AAC audio file"}
|
||||
{"MediaTypeId":3,"Name":"Protected MPEG-4 video file"}
|
||||
{"MediaTypeId":4,"Name":"Purchased AAC audio file"}
|
||||
{"MediaTypeId":5,"Name":"AAC audio file"}
|
||||
18
e2e-tests/data/chinook-jsonl/Playlist.jsonl
Normal file
18
e2e-tests/data/chinook-jsonl/Playlist.jsonl
Normal file
@@ -0,0 +1,18 @@
|
||||
{"PlaylistId":1,"Name":"Music"}
|
||||
{"PlaylistId":2,"Name":"Movies"}
|
||||
{"PlaylistId":3,"Name":"TV Shows"}
|
||||
{"PlaylistId":4,"Name":"Audiobooks"}
|
||||
{"PlaylistId":5,"Name":"90s Music"}
|
||||
{"PlaylistId":6,"Name":"Audiobooks"}
|
||||
{"PlaylistId":7,"Name":"Movies"}
|
||||
{"PlaylistId":8,"Name":"Music"}
|
||||
{"PlaylistId":9,"Name":"Music Videos"}
|
||||
{"PlaylistId":10,"Name":"TV Shows"}
|
||||
{"PlaylistId":11,"Name":"Brazilian Music"}
|
||||
{"PlaylistId":12,"Name":"Classical"}
|
||||
{"PlaylistId":13,"Name":"Classical 101 - Deep Cuts"}
|
||||
{"PlaylistId":14,"Name":"Classical 101 - Next Steps"}
|
||||
{"PlaylistId":15,"Name":"Classical 101 - The Basics"}
|
||||
{"PlaylistId":16,"Name":"Grunge"}
|
||||
{"PlaylistId":17,"Name":"Heavy Metal Classic"}
|
||||
{"PlaylistId":18,"Name":"On-The-Go 1"}
|
||||
8715
e2e-tests/data/chinook-jsonl/PlaylistTrack.jsonl
Normal file
8715
e2e-tests/data/chinook-jsonl/PlaylistTrack.jsonl
Normal file
File diff suppressed because it is too large
Load Diff
3503
e2e-tests/data/chinook-jsonl/Track.jsonl
Normal file
3503
e2e-tests/data/chinook-jsonl/Track.jsonl
Normal file
File diff suppressed because it is too large
Load Diff
176
e2e-tests/data/chinook-mysql-changed.sql
Normal file
176
e2e-tests/data/chinook-mysql-changed.sql
Normal file
@@ -0,0 +1,176 @@
|
||||
|
||||
/*******************************************************************************
|
||||
Create Tables
|
||||
********************************************************************************/
|
||||
CREATE TABLE `Album`
|
||||
(
|
||||
`AlbumId` INT NOT NULL AUTO_INCREMENT,
|
||||
`Name` NVARCHAR(160) NOT NULL,
|
||||
`ArtistId` INT NOT NULL,
|
||||
CONSTRAINT `PK_Album` PRIMARY KEY (`AlbumId`)
|
||||
);
|
||||
|
||||
CREATE TABLE `Artist`
|
||||
(
|
||||
`ArtistId` INT NOT NULL AUTO_INCREMENT,
|
||||
`Name` NVARCHAR(120),
|
||||
CONSTRAINT `PK_Artist` PRIMARY KEY (`ArtistId`)
|
||||
);
|
||||
|
||||
CREATE TABLE `Customer`
|
||||
(
|
||||
`CustomerId` INT NOT NULL AUTO_INCREMENT,
|
||||
`FirstName` NVARCHAR(40) NOT NULL,
|
||||
`LastName` NVARCHAR(20) NOT NULL,
|
||||
`MiddleName` NVARCHAR(20) NOT NULL,
|
||||
`Company` NVARCHAR(80),
|
||||
`Street` NVARCHAR(70),
|
||||
`City` NVARCHAR(40),
|
||||
`State` NVARCHAR(40),
|
||||
`Country` NVARCHAR(40),
|
||||
`PostalCode` NVARCHAR(10),
|
||||
`Phone` NVARCHAR(24),
|
||||
`Fax` NVARCHAR(24),
|
||||
`Email` NVARCHAR(60) NOT NULL,
|
||||
`SupportRepId` INT,
|
||||
CONSTRAINT `PK_Customer` PRIMARY KEY (`CustomerId`)
|
||||
);
|
||||
|
||||
CREATE TABLE `Employee`
|
||||
(
|
||||
`EmployeeId` INT NOT NULL AUTO_INCREMENT,
|
||||
`LastName` NVARCHAR(20) NOT NULL,
|
||||
`FirstName` NVARCHAR(20) NOT NULL,
|
||||
`Title` NVARCHAR(30),
|
||||
`ReportsTo` INT,
|
||||
`BirthDate` DATETIME,
|
||||
`HireDate` DATETIME,
|
||||
`Address` NVARCHAR(70),
|
||||
`City` NVARCHAR(40),
|
||||
`State` NVARCHAR(40),
|
||||
`Country` NVARCHAR(40),
|
||||
`PostalCode` NVARCHAR(10),
|
||||
`Phone` NVARCHAR(24),
|
||||
`Fax` NVARCHAR(24),
|
||||
`Email` NVARCHAR(60),
|
||||
CONSTRAINT `PK_Employee` PRIMARY KEY (`EmployeeId`)
|
||||
);
|
||||
|
||||
CREATE TABLE `Genre`
|
||||
(
|
||||
`GenreId` INT NOT NULL AUTO_INCREMENT,
|
||||
`Name` NVARCHAR(120),
|
||||
CONSTRAINT `PK_Genre` PRIMARY KEY (`GenreId`)
|
||||
);
|
||||
|
||||
CREATE TABLE `Genre_Backup`
|
||||
(
|
||||
`GenreId` INT NOT NULL AUTO_INCREMENT,
|
||||
`Name` NVARCHAR(120),
|
||||
CONSTRAINT `PK_GenreBackup` PRIMARY KEY (`GenreId`)
|
||||
);
|
||||
|
||||
CREATE TABLE `Invoice`
|
||||
(
|
||||
`InvoiceId` INT NOT NULL AUTO_INCREMENT,
|
||||
`CustomerId` INT NOT NULL,
|
||||
`InvoiceDate` DATETIME NOT NULL,
|
||||
`BillingAddress` NVARCHAR(70),
|
||||
`BillingCity` NVARCHAR(40),
|
||||
`BillingState` NVARCHAR(40),
|
||||
`BillingCountry` NVARCHAR(40),
|
||||
`BillingPostalCode` NVARCHAR(10),
|
||||
`Total` NUMERIC(10,2) NOT NULL,
|
||||
CONSTRAINT `PK_Invoice` PRIMARY KEY (`InvoiceId`)
|
||||
);
|
||||
|
||||
|
||||
CREATE TABLE `MediaType`
|
||||
(
|
||||
`MediaTypeId` INT NOT NULL AUTO_INCREMENT,
|
||||
`Name` NVARCHAR(120),
|
||||
CONSTRAINT `PK_MediaType` PRIMARY KEY (`MediaTypeId`)
|
||||
);
|
||||
|
||||
CREATE TABLE `Playlist`
|
||||
(
|
||||
`PlaylistId` INT NOT NULL AUTO_INCREMENT,
|
||||
`Name` NVARCHAR(120),
|
||||
CONSTRAINT `PK_Playlist` PRIMARY KEY (`PlaylistId`)
|
||||
);
|
||||
|
||||
CREATE TABLE `PlaylistTrack`
|
||||
(
|
||||
`PlaylistId` INT NOT NULL,
|
||||
`TrackId` INT NOT NULL,
|
||||
CONSTRAINT `PK_PlaylistTrack` PRIMARY KEY (`PlaylistId`, `TrackId`)
|
||||
);
|
||||
|
||||
CREATE TABLE `Track`
|
||||
(
|
||||
`TrackId` INT NOT NULL AUTO_INCREMENT,
|
||||
`Name` NVARCHAR(200) NOT NULL,
|
||||
`AlbumId` INT,
|
||||
`MediaTypeId` INT NOT NULL,
|
||||
`GenreId` INT,
|
||||
`Composer` NVARCHAR(220),
|
||||
`Milliseconds` INT NOT NULL,
|
||||
`Bytes` INT,
|
||||
`UnitPrice` NUMERIC(10,2) NOT NULL,
|
||||
CONSTRAINT `PK_Track` PRIMARY KEY (`TrackId`)
|
||||
);
|
||||
|
||||
|
||||
|
||||
/*******************************************************************************
|
||||
Create Primary Key Unique Indexes
|
||||
********************************************************************************/
|
||||
|
||||
/*******************************************************************************
|
||||
Create Foreign Keys
|
||||
********************************************************************************/
|
||||
ALTER TABLE `Album` ADD CONSTRAINT `FK_AlbumArtistId`
|
||||
FOREIGN KEY (`ArtistId`) REFERENCES `Artist` (`ArtistId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
CREATE INDEX `IFK_AlbumArtistId` ON `Album` (`ArtistId`);
|
||||
|
||||
ALTER TABLE `Customer` ADD CONSTRAINT `FK_CustomerSupportRepId`
|
||||
FOREIGN KEY (`SupportRepId`) REFERENCES `Employee` (`EmployeeId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
CREATE INDEX `IFK_CustomerSupportRepId` ON `Customer` (`SupportRepId`);
|
||||
|
||||
ALTER TABLE `Employee` ADD CONSTRAINT `FK_EmployeeReportsTo`
|
||||
FOREIGN KEY (`ReportsTo`) REFERENCES `Employee` (`EmployeeId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
CREATE INDEX `IFK_EmployeeReportsTo` ON `Employee` (`ReportsTo`);
|
||||
|
||||
ALTER TABLE `Invoice` ADD CONSTRAINT `FK_InvoiceCustomerId`
|
||||
FOREIGN KEY (`CustomerId`) REFERENCES `Customer` (`CustomerId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
CREATE INDEX `IFK_InvoiceCustomerId` ON `Invoice` (`CustomerId`);
|
||||
|
||||
ALTER TABLE `PlaylistTrack` ADD CONSTRAINT `FK_PlaylistTrackPlaylistId`
|
||||
FOREIGN KEY (`PlaylistId`) REFERENCES `Playlist` (`PlaylistId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
CREATE INDEX `IFK_PlaylistTrackPlaylistId` ON `PlaylistTrack` (`PlaylistId`);
|
||||
|
||||
ALTER TABLE `PlaylistTrack` ADD CONSTRAINT `FK_PlaylistTrackTrackId`
|
||||
FOREIGN KEY (`TrackId`) REFERENCES `Track` (`TrackId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
CREATE INDEX `IFK_PlaylistTrackTrackId` ON `PlaylistTrack` (`TrackId`);
|
||||
|
||||
ALTER TABLE `Track` ADD CONSTRAINT `FK_TrackAlbumId`
|
||||
FOREIGN KEY (`AlbumId`) REFERENCES `Album` (`AlbumId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
CREATE INDEX `IFK_TrackAlbumId` ON `Track` (`AlbumId`);
|
||||
|
||||
ALTER TABLE `Track` ADD CONSTRAINT `FK_TrackGenreId`
|
||||
FOREIGN KEY (`GenreId`) REFERENCES `Genre` (`GenreId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
CREATE INDEX `IFK_TrackGenreId` ON `Track` (`GenreId`);
|
||||
|
||||
ALTER TABLE `Track` ADD CONSTRAINT `FK_TrackMediaTypeId`
|
||||
FOREIGN KEY (`MediaTypeId`) REFERENCES `MediaType` (`MediaTypeId`) ON DELETE NO ACTION ON UPDATE NO ACTION;
|
||||
|
||||
CREATE INDEX `IFK_TrackMediaTypeId` ON `Track` (`MediaTypeId`);
|
||||
|
||||
1
e2e-tests/data/files/charts/line-chart
Normal file
1
e2e-tests/data/files/charts/line-chart
Normal file
@@ -0,0 +1 @@
|
||||
{"data":{"structure":{"columns":[{"columnName":"Month"},{"columnName":"Total"},{"columnName":"Invoices"}]},"rows":[{"Month":"2021-01","Total":"35.64","Invoices":"6"},{"Month":"2021-02","Total":"37.62","Invoices":"7"},{"Month":"2021-03","Total":"37.62","Invoices":"7"},{"Month":"2021-04","Total":"37.62","Invoices":"7"},{"Month":"2021-05","Total":"37.62","Invoices":"7"},{"Month":"2021-06","Total":"37.62","Invoices":"7"},{"Month":"2021-07","Total":"37.62","Invoices":"7"},{"Month":"2021-08","Total":"37.62","Invoices":"7"},{"Month":"2021-09","Total":"37.62","Invoices":"7"},{"Month":"2021-10","Total":"37.62","Invoices":"7"},{"Month":"2021-11","Total":"37.62","Invoices":"7"},{"Month":"2021-12","Total":"37.62","Invoices":"7"},{"Month":"2022-01","Total":"52.62","Invoices":"7"},{"Month":"2022-02","Total":"46.62","Invoices":"7"},{"Month":"2022-03","Total":"44.62","Invoices":"7"},{"Month":"2022-04","Total":"37.62","Invoices":"7"},{"Month":"2022-05","Total":"37.62","Invoices":"7"},{"Month":"2022-06","Total":"37.62","Invoices":"7"},{"Month":"2022-07","Total":"37.62","Invoices":"7"},{"Month":"2022-08","Total":"37.62","Invoices":"7"},{"Month":"2022-09","Total":"36.63","Invoices":"6"},{"Month":"2022-10","Total":"37.62","Invoices":"7"},{"Month":"2022-11","Total":"37.62","Invoices":"7"},{"Month":"2022-12","Total":"37.62","Invoices":"7"},{"Month":"2023-01","Total":"37.62","Invoices":"7"},{"Month":"2023-02","Total":"37.62","Invoices":"7"},{"Month":"2023-03","Total":"37.62","Invoices":"7"},{"Month":"2023-04","Total":"51.62","Invoices":"7"},{"Month":"2023-05","Total":"42.62","Invoices":"7"},{"Month":"2023-06","Total":"50.62","Invoices":"7"},{"Month":"2023-07","Total":"37.62","Invoices":"7"},{"Month":"2023-08","Total":"37.62","Invoices":"7"},{"Month":"2023-09","Total":"37.62","Invoices":"7"},{"Month":"2023-10","Total":"37.62","Invoices":"7"},{"Month":"2023-11","Total":"23.76","Invoices":"6"},{"Month":"2023-12","Total":"37.62","Invoices":"7"},{"Month":"2024-01","Total":"37.62","Invoices":"7"},{"Month":"2024-02","Total":"37.62","Invoices":"7"},{"Month":"2024-03","Total":"37.62","Invoices":"7"},{"Month":"2024-04","Total":"37.62","Invoices":"7"},{"Month":"2024-05","Total":"37.62","Invoices":"7"},{"Month":"2024-06","Total":"37.62","Invoices":"7"},{"Month":"2024-07","Total":"39.62","Invoices":"7"},{"Month":"2024-08","Total":"47.62","Invoices":"7"},{"Month":"2024-09","Total":"46.71","Invoices":"6"},{"Month":"2024-10","Total":"42.62","Invoices":"7"},{"Month":"2024-11","Total":"37.62","Invoices":"7"},{"Month":"2024-12","Total":"37.62","Invoices":"7"},{"Month":"2025-01","Total":"37.62","Invoices":"7"},{"Month":"2025-02","Total":"27.72","Invoices":"5"},{"Month":"2025-03","Total":"37.62","Invoices":"7"},{"Month":"2025-04","Total":"33.66","Invoices":"5"},{"Month":"2025-05","Total":"37.62","Invoices":"7"},{"Month":"2025-06","Total":"37.62","Invoices":"7"},{"Month":"2025-07","Total":"37.62","Invoices":"7"},{"Month":"2025-08","Total":"37.62","Invoices":"7"},{"Month":"2025-09","Total":"37.62","Invoices":"7"},{"Month":"2025-10","Total":"37.62","Invoices":"7"},{"Month":"2025-11","Total":"49.62","Invoices":"7"},{"Month":"2025-12","Total":"38.62","Invoices":"7"}]},"config":{"chartType":"line","labelColumn":"Month","dataColumn_Total":true,"dataColumn_Invoices":false,"truncateFrom":"begin","dataColumn_Month":false,"dataColumnColor_Total":"gold"}}
|
||||
1
e2e-tests/data/files/charts/pie-chart
Normal file
1
e2e-tests/data/files/charts/pie-chart
Normal file
@@ -0,0 +1 @@
|
||||
{"data":{"structure":{"columns":[{"columnName":"OS"},{"columnName":"Downloads"}]},"rows":[{"OS":"Windows","Downloads":1724},{"OS":"MaxOS","Downloads":711},{"OS":"Linux","Downloads":445},{"OS":"iOS","Downloads":105},{"OS":"Android","Downloads":77}]},"config":{"chartType":"pie","labelColumn":"OS","dataColumn_Downloads":true,"showRelativeValues":false}}
|
||||
1
e2e-tests/data/files/diagrams/chinook-diagram
Normal file
1
e2e-tests/data/files/diagrams/chinook-diagram
Normal file
File diff suppressed because one or more lines are too long
592
e2e-tests/data/files/query/customer
Normal file
592
e2e-tests/data/files/query/customer
Normal file
@@ -0,0 +1,592 @@
|
||||
{
|
||||
"tables": [
|
||||
{
|
||||
"pureName": "InvoiceLine",
|
||||
"tableRowCount": "2240",
|
||||
"tableEngine": "InnoDB",
|
||||
"objectComment": "",
|
||||
"modifyDate": "2025-01-30 07:20:38",
|
||||
"objectId": "InvoiceLine",
|
||||
"contentHash": "2025-01-30 07:20:38",
|
||||
"columns": [
|
||||
{
|
||||
"pureName": "InvoiceLine",
|
||||
"notNull": true,
|
||||
"autoIncrement": true,
|
||||
"columnName": "InvoiceLineId",
|
||||
"columnComment": "",
|
||||
"dataType": "int",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "InvoiceLine",
|
||||
"notNull": true,
|
||||
"autoIncrement": false,
|
||||
"columnName": "InvoiceId",
|
||||
"columnComment": "",
|
||||
"dataType": "int",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "InvoiceLine",
|
||||
"notNull": true,
|
||||
"autoIncrement": false,
|
||||
"columnName": "TrackId",
|
||||
"columnComment": "",
|
||||
"dataType": "int",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "InvoiceLine",
|
||||
"notNull": true,
|
||||
"autoIncrement": false,
|
||||
"columnName": "UnitPrice",
|
||||
"columnComment": "",
|
||||
"dataType": "decimal(10,2)",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "InvoiceLine",
|
||||
"notNull": true,
|
||||
"autoIncrement": false,
|
||||
"columnName": "Quantity",
|
||||
"columnComment": "",
|
||||
"dataType": "int",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"constraintName": "PRIMARY",
|
||||
"pureName": "InvoiceLine",
|
||||
"constraintType": "primaryKey",
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "InvoiceLineId"
|
||||
}
|
||||
]
|
||||
},
|
||||
"foreignKeys": [
|
||||
{
|
||||
"constraintName": "FK_InvoiceLineInvoiceId",
|
||||
"constraintType": "foreignKey",
|
||||
"pureName": "InvoiceLine",
|
||||
"refTableName": "Invoice",
|
||||
"updateAction": "NO ACTION",
|
||||
"deleteAction": "NO ACTION",
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "InvoiceId",
|
||||
"refColumnName": "InvoiceId"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"constraintName": "FK_InvoiceLineTrackId",
|
||||
"constraintType": "foreignKey",
|
||||
"pureName": "InvoiceLine",
|
||||
"refTableName": "Track",
|
||||
"updateAction": "NO ACTION",
|
||||
"deleteAction": "NO ACTION",
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "TrackId",
|
||||
"refColumnName": "TrackId"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"constraintName": "IFK_InvoiceLineInvoiceId",
|
||||
"indexType": "BTREE",
|
||||
"isUnique": false,
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "InvoiceId",
|
||||
"isDescending": 0
|
||||
}
|
||||
],
|
||||
"pureName": "InvoiceLine",
|
||||
"constraintType": "index"
|
||||
},
|
||||
{
|
||||
"constraintName": "IFK_InvoiceLineTrackId",
|
||||
"indexType": "BTREE",
|
||||
"isUnique": false,
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "TrackId",
|
||||
"isDescending": 0
|
||||
}
|
||||
],
|
||||
"pureName": "InvoiceLine",
|
||||
"constraintType": "index"
|
||||
}
|
||||
],
|
||||
"uniques": [],
|
||||
"engine": "mysql@dbgate-plugin-mysql",
|
||||
"dependencies": [],
|
||||
"objectTypeField": "tables",
|
||||
"checks": [],
|
||||
"conid": "mysql",
|
||||
"database": "MyChinook",
|
||||
"designerId": "InvoiceLine-61eb0ba0-dedc-11ef-acf9-b7e3c0869b02",
|
||||
"left": 513,
|
||||
"top": 247,
|
||||
"alias": null
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"tableRowCount": "59",
|
||||
"tableEngine": "InnoDB",
|
||||
"objectComment": "",
|
||||
"modifyDate": "2025-01-30 07:20:37",
|
||||
"objectId": "Customer",
|
||||
"contentHash": "2025-01-30 07:20:37",
|
||||
"columns": [
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": true,
|
||||
"autoIncrement": true,
|
||||
"columnName": "CustomerId",
|
||||
"columnComment": "",
|
||||
"dataType": "int",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": true,
|
||||
"autoIncrement": false,
|
||||
"columnName": "FirstName",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(40)",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": true,
|
||||
"autoIncrement": false,
|
||||
"columnName": "LastName",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(20)",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "Company",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(80)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "Address",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(70)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "City",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(40)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "State",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(40)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "Country",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(40)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "PostalCode",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(10)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "Phone",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(24)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "Fax",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(24)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": true,
|
||||
"autoIncrement": false,
|
||||
"columnName": "Email",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(60)",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Customer",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "SupportRepId",
|
||||
"columnComment": "",
|
||||
"dataType": "int",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"constraintName": "PRIMARY",
|
||||
"pureName": "Customer",
|
||||
"constraintType": "primaryKey",
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "CustomerId"
|
||||
}
|
||||
]
|
||||
},
|
||||
"foreignKeys": [
|
||||
{
|
||||
"constraintName": "FK_CustomerSupportRepId",
|
||||
"constraintType": "foreignKey",
|
||||
"pureName": "Customer",
|
||||
"refTableName": "Employee",
|
||||
"updateAction": "NO ACTION",
|
||||
"deleteAction": "NO ACTION",
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "SupportRepId",
|
||||
"refColumnName": "EmployeeId"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"constraintName": "IFK_CustomerSupportRepId",
|
||||
"indexType": "BTREE",
|
||||
"isUnique": false,
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "SupportRepId",
|
||||
"isDescending": 0
|
||||
}
|
||||
],
|
||||
"pureName": "Customer",
|
||||
"constraintType": "index"
|
||||
}
|
||||
],
|
||||
"uniques": [],
|
||||
"engine": "mysql@dbgate-plugin-mysql",
|
||||
"dependencies": [
|
||||
{
|
||||
"constraintName": "FK_InvoiceCustomerId",
|
||||
"constraintType": "foreignKey",
|
||||
"pureName": "Invoice",
|
||||
"refTableName": "Customer",
|
||||
"updateAction": "NO ACTION",
|
||||
"deleteAction": "NO ACTION",
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "CustomerId",
|
||||
"refColumnName": "CustomerId"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"objectTypeField": "tables",
|
||||
"checks": [],
|
||||
"conid": "mysql",
|
||||
"database": "MyChinook",
|
||||
"designerId": "5d82f690-dedc-11ef-acf9-b7e3c0869b02",
|
||||
"left": 50,
|
||||
"top": 50
|
||||
},
|
||||
{
|
||||
"pureName": "Invoice",
|
||||
"tableRowCount": "412",
|
||||
"tableEngine": "InnoDB",
|
||||
"objectComment": "",
|
||||
"modifyDate": "2025-01-30 07:20:38",
|
||||
"objectId": "Invoice",
|
||||
"contentHash": "2025-01-30 07:20:38",
|
||||
"columns": [
|
||||
{
|
||||
"pureName": "Invoice",
|
||||
"notNull": true,
|
||||
"autoIncrement": true,
|
||||
"columnName": "InvoiceId",
|
||||
"columnComment": "",
|
||||
"dataType": "int",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Invoice",
|
||||
"notNull": true,
|
||||
"autoIncrement": false,
|
||||
"columnName": "CustomerId",
|
||||
"columnComment": "",
|
||||
"dataType": "int",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Invoice",
|
||||
"notNull": true,
|
||||
"autoIncrement": false,
|
||||
"columnName": "InvoiceDate",
|
||||
"columnComment": "",
|
||||
"dataType": "datetime",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Invoice",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "BillingAddress",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(70)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Invoice",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "BillingCity",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(40)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Invoice",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "BillingState",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(40)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Invoice",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "BillingCountry",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(40)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Invoice",
|
||||
"notNull": false,
|
||||
"autoIncrement": false,
|
||||
"columnName": "BillingPostalCode",
|
||||
"columnComment": "",
|
||||
"dataType": "varchar(10)",
|
||||
"defaultValue": "NULL",
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
},
|
||||
{
|
||||
"pureName": "Invoice",
|
||||
"notNull": true,
|
||||
"autoIncrement": false,
|
||||
"columnName": "Total",
|
||||
"columnComment": "",
|
||||
"dataType": "decimal(10,2)",
|
||||
"defaultValue": null,
|
||||
"isUnsigned": false,
|
||||
"isZerofill": false
|
||||
}
|
||||
],
|
||||
"primaryKey": {
|
||||
"constraintName": "PRIMARY",
|
||||
"pureName": "Invoice",
|
||||
"constraintType": "primaryKey",
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "InvoiceId"
|
||||
}
|
||||
]
|
||||
},
|
||||
"foreignKeys": [
|
||||
{
|
||||
"constraintName": "FK_InvoiceCustomerId",
|
||||
"constraintType": "foreignKey",
|
||||
"pureName": "Invoice",
|
||||
"refTableName": "Customer",
|
||||
"updateAction": "NO ACTION",
|
||||
"deleteAction": "NO ACTION",
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "CustomerId",
|
||||
"refColumnName": "CustomerId"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"indexes": [
|
||||
{
|
||||
"constraintName": "IFK_InvoiceCustomerId",
|
||||
"indexType": "BTREE",
|
||||
"isUnique": false,
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "CustomerId",
|
||||
"isDescending": 0
|
||||
}
|
||||
],
|
||||
"pureName": "Invoice",
|
||||
"constraintType": "index"
|
||||
}
|
||||
],
|
||||
"uniques": [],
|
||||
"engine": "mysql@dbgate-plugin-mysql",
|
||||
"dependencies": [
|
||||
{
|
||||
"constraintName": "FK_InvoiceLineInvoiceId",
|
||||
"constraintType": "foreignKey",
|
||||
"pureName": "InvoiceLine",
|
||||
"refTableName": "Invoice",
|
||||
"updateAction": "NO ACTION",
|
||||
"deleteAction": "NO ACTION",
|
||||
"columns": [
|
||||
{
|
||||
"columnName": "InvoiceId",
|
||||
"refColumnName": "InvoiceId"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"objectTypeField": "tables",
|
||||
"checks": [],
|
||||
"conid": "mysql",
|
||||
"database": "MyChinook",
|
||||
"designerId": "Invoice-609cb9b0-dedc-11ef-acf9-b7e3c0869b02",
|
||||
"left": 279,
|
||||
"top": 112,
|
||||
"alias": null
|
||||
}
|
||||
],
|
||||
"references": [
|
||||
{
|
||||
"designerId": "undefined-609cb9b1-dedc-11ef-acf9-b7e3c0869b02",
|
||||
"sourceId": "Invoice-609cb9b0-dedc-11ef-acf9-b7e3c0869b02",
|
||||
"targetId": "5d82f690-dedc-11ef-acf9-b7e3c0869b02",
|
||||
"joinType": "INNER JOIN",
|
||||
"columns": [
|
||||
{
|
||||
"source": "CustomerId",
|
||||
"target": "CustomerId"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"designerId": "undefined-61eb32b0-dedc-11ef-acf9-b7e3c0869b02",
|
||||
"sourceId": "InvoiceLine-61eb0ba0-dedc-11ef-acf9-b7e3c0869b02",
|
||||
"targetId": "Invoice-609cb9b0-dedc-11ef-acf9-b7e3c0869b02",
|
||||
"joinType": "LEFT JOIN",
|
||||
"columns": [
|
||||
{
|
||||
"source": "InvoiceId",
|
||||
"target": "InvoiceId"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"columns": [
|
||||
{
|
||||
"designerId": "5d82f690-dedc-11ef-acf9-b7e3c0869b02",
|
||||
"columnName": "LastName",
|
||||
"isOutput": true,
|
||||
"filter": "NOT NULL",
|
||||
"sortOrder": 1
|
||||
},
|
||||
{
|
||||
"designerId": "5d82f690-dedc-11ef-acf9-b7e3c0869b02",
|
||||
"columnName": "FirstName",
|
||||
"isOutput": true,
|
||||
"sortOrder": 2
|
||||
},
|
||||
{
|
||||
"designerId": "Invoice-609cb9b0-dedc-11ef-acf9-b7e3c0869b02",
|
||||
"columnName": "InvoiceDate",
|
||||
"isOutput": true
|
||||
}
|
||||
]
|
||||
}
|
||||
23
e2e-tests/data/files/sql/chart1.sql
Normal file
23
e2e-tests/data/files/sql/chart1.sql
Normal file
@@ -0,0 +1,23 @@
|
||||
-- >>>
|
||||
-- autoExecute: true
|
||||
-- splitterInitialValue: 20%
|
||||
-- selected-chart: 1
|
||||
-- <<<
|
||||
|
||||
SELECT
|
||||
d.name AS department_name,
|
||||
FORMAT(fr.date, 'yyyy-MM') AS month,
|
||||
SUM(fr.profit) AS total_monthly_profit
|
||||
FROM
|
||||
departments d
|
||||
JOIN
|
||||
employees e ON d.id = e.department_id
|
||||
JOIN
|
||||
employee_project ep ON e.id = ep.employee_id
|
||||
JOIN
|
||||
finance_reports fr ON ep.project_id = fr.id
|
||||
GROUP BY
|
||||
d.name, FORMAT(fr.date, 'yyyy-MM')
|
||||
ORDER BY
|
||||
d.name, month;
|
||||
|
||||
253
e2e-tests/data/files/themes/Green-Sample
Normal file
253
e2e-tests/data/files/themes/Green-Sample
Normal file
@@ -0,0 +1,253 @@
|
||||
{
|
||||
"themeName": "Green-Sample",
|
||||
"themeType": "light",
|
||||
"themeVariables": {
|
||||
"--theme-generic-font": "oklch(27% 0.07 130)",
|
||||
"--theme-generic-font-hover": "oklch(40% 0.15 130)",
|
||||
"--theme-generic-font-grayed": "oklch(65% 0.05 130)",
|
||||
"--theme-link-foreground": "oklch(40% 0.25 130)",
|
||||
"--theme-content-background": "oklch(95% 0.05 130)",
|
||||
"--theme-widget-panel-background": "oklch(80% 0.1 130)",
|
||||
"--theme-widget-panel-foreground": "oklch(27% 0.07 130)",
|
||||
"--theme-widget-icon-background-active": "oklch(50% 0.12 130)",
|
||||
"--theme-widget-icon-foreground-active": "white",
|
||||
"--theme-widget-icon-foreground-hover": "white",
|
||||
"--theme-widget-icon-border-active": "1px solid white",
|
||||
"--theme-scrollbar-background": "oklch(90% 0.08 130)",
|
||||
"--theme-scrollbar-thumb-background": "oklch(70% 0.12 130)",
|
||||
"--theme-scrollbar-thumb-background-hover": "oklch(40% 0.15 130)",
|
||||
"--theme-scrollbar-corner-background": "oklch(85% 0.1 130)",
|
||||
"--theme-tabs-panel-border": "1px solid oklch(95% 0.05 130)",
|
||||
"--theme-tabs-panel-foreground": "oklch(20% 0.06 130)",
|
||||
"--theme-tabs-panel-active-foreground": "oklch(10% 0.06 130)",
|
||||
"--theme-tabs-panel-background": "oklch(95.5% 0.04 130)",
|
||||
"--theme-tabs-panel-active-background": "oklch(80% 0.12 130)",
|
||||
"--theme-tabs-panel-item-background": "oklch(90% 0.1 130)",
|
||||
"--theme-tabs-panel-active-border": "1px solid oklch(50% 0.2 130)",
|
||||
"--theme-splitter-active": "oklch(50% 0.2 130)",
|
||||
"--theme-splitter-button-background": "oklch(90% 0.1 130)",
|
||||
"--theme-splitter-button-background-active": "oklch(85% 0.15 130)",
|
||||
"--theme-splitter-button-foreground": "oklch(10% 0.06 130)",
|
||||
"--theme-sidebar-background": "oklch(90% 0.1 130)",
|
||||
"--theme-sidebar-background-hover": "oklch(80% 0.12 130)",
|
||||
"--theme-sidebar-background-active": "oklch(75% 0.14 130)",
|
||||
"--theme-sidebar-background-focused": "oklch(70% 0.18 130)",
|
||||
"--theme-sidebar-foreground": "oklch(20% 0.06 130)",
|
||||
"--theme-sidebar-foreground-button": "oklch(40% 0.12 130)",
|
||||
"--theme-sidebar-foreground-grayed": "oklch(65% 0.05 130)",
|
||||
"--theme-sidebar-foreground-hover": "oklch(50% 0.25 130)",
|
||||
"--theme-sidebar-section-background": "oklch(65% 0.05 130)",
|
||||
"--theme-sidebar-section-border": "none",
|
||||
"--theme-sidebar-section-border-top": "1px solid oklch(80% 0.1 130)",
|
||||
"--theme-sidebar-section-foreground": "oklch(10% 0.06 130)",
|
||||
"--theme-sidebar-border": "none",
|
||||
"--theme-altsidebar-background": "oklch(95% 0.05 130)",
|
||||
"--theme-altsidebar-background-grayed": "oklch(97% 0.02 130)",
|
||||
"--theme-altsidebar-background-hover": "oklch(85% 0.1 130)",
|
||||
"--theme-altsidebar-background-active": "oklch(80% 0.12 130)",
|
||||
"--theme-altsidebar-background-focused": "oklch(75% 0.15 130)",
|
||||
"--theme-altsidebar-foreground": "oklch(20% 0.06 130)",
|
||||
"--theme-altsidebar-foreground-button": "oklch(40% 0.12 130)",
|
||||
"--theme-altsidebar-foreground-grayed": "oklch(65% 0.05 130)",
|
||||
"--theme-altsidebar-foreground-hover": "oklch(50% 0.25 130)",
|
||||
"--theme-altsidebar-section-background": "oklch(97% 0.02 130)",
|
||||
"--theme-altsidebar-section-border": "none",
|
||||
"--theme-altsidebar-section-border-top": "1px solid oklch(85% 0.1 130)",
|
||||
"--theme-altsidebar-section-foreground": "oklch(10% 0.06 130)",
|
||||
"--theme-altsidebar-border": "1px solid oklch(90% 0.1 130)",
|
||||
"--theme-searchbox-background": "oklch(80% 0.12 130)",
|
||||
"--theme-searchbox-placeholder": "oklch(65% 0.05 130)",
|
||||
"--theme-searchbox-border": "1px solid oklch(70% 0.15 130)",
|
||||
"--theme-searchbox-background-filtered": "oklch(95% 0.04 110)",
|
||||
"--theme-altsearchbox-background": "oklch(90% 0.1 130)",
|
||||
"--theme-altsearchbox-placeholder": "oklch(65% 0.05 130)",
|
||||
"--theme-altsearchbox-border": "1px solid oklch(80% 0.1 130)",
|
||||
"--theme-inlinebutton-foreground": "oklch(40% 0.12 130)",
|
||||
"--theme-inlinebutton-foreground-disabled": "oklch(65% 0.05 130)",
|
||||
"--theme-inlinebutton-foreground-hover": "black",
|
||||
"--theme-inlinebutton-circle-hover-background": "oklch(85% 0.1 130)",
|
||||
"--theme-inlinebutton-bordered-border": "1px solid oklch(85% 0.1 130)",
|
||||
"--theme-inlinebutton-bordered-hover-border": "1px solid oklch(70% 0.15 130)",
|
||||
"--theme-inlinebutton-bordered-background": "linear-gradient(to bottom, oklch(95% 0.04 130) 5%, oklch(90% 0.1 130) 100%)",
|
||||
"--theme-inlinebutton-bordered-hover-background": "linear-gradient(to bottom, oklch(90% 0.1 130) 5%, oklch(95% 0.04 130) 100%)",
|
||||
"--theme-datagrid-background": "oklch(95% 0.04 130)",
|
||||
"--theme-datagrid-foreground": "oklch(20% 0.06 130)",
|
||||
"--theme-datagrid-foreground-grayed": "oklch(65% 0.05 130)",
|
||||
"--theme-datagrid-border-horizontal": "1px solid oklch(90% 0.1 130)",
|
||||
"--theme-datagrid-border-vertical": "1px solid oklch(95% 0.04 130)",
|
||||
"--theme-datagrid-cell-background": "oklch(97% 0.02 130)",
|
||||
"--theme-datagrid-headercell-background": "oklch(95% 0.04 130)",
|
||||
"--theme-datagrid-cell-background-alt": "oklch(95% 0.04 130)",
|
||||
"--theme-datagrid-cell-background-alt2": "oklch(90% 0.1 130)",
|
||||
"--theme-datagrid-filter-background": "oklch(90% 0.1 130)",
|
||||
"--theme-datagrid-filter-border": "1px solid oklch(85% 0.1 130)",
|
||||
"--theme-datagrid-filter-ok-background": "oklch(95% 0.1 135)",
|
||||
"--theme-datagrid-filter-error-background": "oklch(95% 0.12 30)",
|
||||
"--theme-datagrid-modified-row-background": "oklch(95% 0.1 135)",
|
||||
"--theme-datagrid-modified-cell-background": "oklch(90% 0.15 135)",
|
||||
"--theme-datagrid-inserted-row-background": "oklch(95% 0.1 110)",
|
||||
"--theme-datagrid-deleted-row-background": "oklch(95% 0.1 25)",
|
||||
"--theme-datagrid-selected-cell-background": "oklch(80% 0.1 130)",
|
||||
"--theme-datagrid-focused-cell-background": "oklch(75% 0.15 130)",
|
||||
"--theme-datagrid-focused-cell-border-horizontal": "1px solid oklch(70% 0.2 130)",
|
||||
"--theme-datagrid-focused-cell-border-vertical": "1px solid oklch(70% 0.2 130)",
|
||||
"--theme-datagrid-selected-point-marker": "oklch(50% 0.25 130)",
|
||||
"--theme-datagrid-corner-label-background": "oklch(75% 0.15 130)",
|
||||
"--theme-datagrid-corner-label-border": "1px solid oklch(70% 0.2 130)",
|
||||
"--theme-datagrid-detail-header-background": "oklch(85% 0.05 130)",
|
||||
"--theme-datagrid-detail-header-border": "1px solid oklch(80% 0.1 130)",
|
||||
"--theme-datagrid-cell-foreground-value-green": "oklch(45% 0.2 140)",
|
||||
"--theme-checkbox-check": "oklch(90% 0.1 130)",
|
||||
"--theme-checkbox-background": "oklch(40% 0.25 130)",
|
||||
"--theme-checkbox-border": "1px solid oklch(70% 0.15 130)",
|
||||
"--theme-checkbox-mark": "white",
|
||||
"--theme-checkbox-background-disabled": "oklch(95% 0.04 130)",
|
||||
"--theme-checkbox-background-disabled-before": "oklch(70% 0.15 130)",
|
||||
"--theme-checkbox-hover-not-disabled": "oklch(65% 0.05 130)",
|
||||
"--theme-checkbox-background-inherited": "oklch(85% 0.1 130)",
|
||||
"--theme-table-border": "1px solid oklch(85% 0.1 130)",
|
||||
"--theme-table-cell-background": "oklch(97% 0.02 130)",
|
||||
"--theme-table-cell-empty-background": "oklch(95% 0.04 130)",
|
||||
"--theme-table-cell-empty-foreground": "oklch(65% 0.05 130)",
|
||||
"--theme-table-header-background": "oklch(95% 0.04 130)",
|
||||
"--theme-table-selected-background": "oklch(75% 0.15 130)",
|
||||
"--theme-table-active-background": "oklch(80% 0.1 130)",
|
||||
"--theme-table-hover-background": "oklch(95% 0.04 130)",
|
||||
"--theme-table-added-background": "oklch(95% 0.1 110)",
|
||||
"--theme-table-changed-background": "oklch(95% 0.1 135)",
|
||||
"--theme-table-deleted-background": "oklch(95% 0.1 25)",
|
||||
"--theme-cell-active-border": "2px solid oklch(50% 0.25 130)",
|
||||
"--theme-object-header-background": "oklch(95% 0.04 130)",
|
||||
"--theme-modal-background": "oklch(97% 0.02 130)",
|
||||
"--theme-modal-header-background": "oklch(85% 0.1 130)",
|
||||
"--theme-modal-footer-background": "oklch(97% 0.02 130)",
|
||||
"--theme-modal-border": "1px solid oklch(85% 0.1 130)",
|
||||
"--theme-modal-overlay-background": "color-mix(in srgb, #124012 40%, transparent)",
|
||||
"--theme-modal-shadow": "0 20px 25px -5px color-mix(in srgb, #124012 10%, transparent)",
|
||||
"--theme-modal-close-hover-background": "oklch(70% 0.15 130)",
|
||||
"--theme-formbutton-foreground": "white",
|
||||
"--theme-formbutton-border": "1px solid oklch(40% 0.25 130)",
|
||||
"--theme-formbutton-border-hover": "1px solid oklch(50% 0.3 130)",
|
||||
"--theme-formbutton-border-active": "2px solid oklch(55% 0.35 130)",
|
||||
"--theme-formbutton-background": "oklch(40% 0.25 130)",
|
||||
"--theme-formbutton-background-disabled": "oklch(85% 0.1 130)",
|
||||
"--theme-formbutton-border-disabled": "1px solid oklch(85% 0.1 130)",
|
||||
"--theme-formbutton-foreground-disabled": "oklch(65% 0.05 130)",
|
||||
"--theme-formbutton-background-hover": "oklch(35% 0.3 130)",
|
||||
"--theme-formbutton-background-active": "oklch(35% 0.3 130)",
|
||||
"--theme-outlinebutton-foreground": "oklch(10% 0.06 130)",
|
||||
"--theme-outlinebutton-border": "1px solid oklch(40% 0.25 130)",
|
||||
"--theme-outlinebutton-hover-foreground": "oklch(40% 0.25 130)",
|
||||
"--theme-outlinebutton-hover-border": "2px solid oklch(50% 0.3 130)",
|
||||
"--theme-tabs-control-background": "oklch(95% 0.04 130)",
|
||||
"--theme-tabs-control-border": "1px solid oklch(90% 0.1 130)",
|
||||
"--theme-tabs-control-selected-background": "oklch(98% 0.01 130)",
|
||||
"--theme-tabs-control-selected-border": "2px solid oklch(50% 0.25 130)",
|
||||
"--theme-inline-tabs-border": "1px solid oklch(90% 0.1 130)",
|
||||
"--theme-inline-tabs-border-active": "2px solid oklch(50% 0.25 130)",
|
||||
"--theme-toolstrip-background": "oklch(97% 0.02 130)",
|
||||
"--theme-toolstrip-border": "1px solid oklch(90% 0.1 130)",
|
||||
"--theme-toolstrip-button-foreground": "oklch(27% 0.07 130)",
|
||||
"--theme-panel-border-subtle": "1px solid color-mix(in srgb, oklch(20% 0.06 130) 5%, transparent)",
|
||||
"--theme-panel-type-label-color": "oklch(65% 0.05 130)",
|
||||
"--theme-toolstrip-button-foreground-disabled": "oklch(65% 0.05 130)",
|
||||
"--theme-toolstrip-button-foreground-icon": "oklch(40% 0.12 130)",
|
||||
"--theme-toolstrip-button-background": "oklch(97% 0.02 130)",
|
||||
"--theme-toolstrip-button-background-hover": "oklch(95% 0.04 130)",
|
||||
"--theme-toolstrip-button-background-active": "oklch(90% 0.1 130)",
|
||||
"--theme-toolstrip-button-border": "1px solid oklch(90% 0.1 130)",
|
||||
"--theme-toolstrip-button-border-hover": "1px solid oklch(85% 0.1 130)",
|
||||
"--theme-toolstrip-button-border-disabled": "1px solid oklch(90% 0.1 130)",
|
||||
"--theme-toolstrip-button-split-separator-border": "1px solid oklch(85% 0.1 130)",
|
||||
"--theme-designer-background": "oklch(97% 0.02 130)",
|
||||
"--theme-designer-item-background": "oklch(95% 0.04 130)",
|
||||
"--theme-designer-selection-marker": "oklch(35% 0.3 130)",
|
||||
"--theme-designer-item-border": "1px solid oklch(90% 0.1 130)",
|
||||
"--theme-designer-stroke-color": "oklch(65% 0.05 130)",
|
||||
"--theme-designer-arrow-color": "oklch(27% 0.07 130)",
|
||||
"--theme-designer-select-reactangle-foreground": "oklch(50% 0.25 130)",
|
||||
"--theme-designer-header-background-1": "oklch(70% 0.15 130)",
|
||||
"--theme-designer-header-background-2": "oklch(70% 0.18 180)",
|
||||
"--theme-designer-header-background-3": "oklch(68% 0.15 100)",
|
||||
"--theme-designer-header-background-grayed": "oklch(85% 0.1 130)",
|
||||
"--theme-designer-close-background": "oklch(90% 0.1 130)",
|
||||
"--theme-designer-close-background-hover": "oklch(85% 0.1 130)",
|
||||
"--theme-designer-close-background-active": "oklch(70% 0.15 130)",
|
||||
"--theme-designer-drag-column-background": "oklch(90% 0.2 110)",
|
||||
"--theme-designer-select-column-background": "oklch(90% 0.1 130)",
|
||||
"--theme-statusbar-background": "oklch(40% 0.25 130)",
|
||||
"--theme-statusbar-foreground": "oklch(95% 0.04 130)",
|
||||
"--theme-statusbar-background-hover": "oklch(35% 0.3 130)",
|
||||
"--theme-statusbar-button-background": "oklch(85% 0.1 130)",
|
||||
"--theme-statusbar-button-foreground": "oklch(27% 0.07 130)",
|
||||
"--theme-statusbar-icon-error": "oklch(80% 0.1 25)",
|
||||
"--theme-statusbar-icon-ok": "oklch(85% 0.2 130)",
|
||||
"--theme-aichat-user-background": "oklch(93% 0.06 130)",
|
||||
"--theme-aichat-assistant-background": "oklch(95% 0.04 130)",
|
||||
"--theme-applog-details-background": "oklch(98% 0.01 130)",
|
||||
"--theme-input-border": "1px solid oklch(85% 0.1 130)",
|
||||
"--theme-input-border-hover": "1px solid oklch(70% 0.15 130)",
|
||||
"--theme-input-border-hover-color": "oklch(70% 0.15 130)",
|
||||
"--theme-input-border-focus": "1px solid oklch(50% 0.25 130)",
|
||||
"--theme-input-border-focus-color": "oklch(50% 0.25 130)",
|
||||
"--theme-input-border-disabled": "1px solid oklch(90% 0.1 130)",
|
||||
"--theme-input-background": "white",
|
||||
"--theme-input-foreground": "oklch(20% 0.06 130)",
|
||||
"--theme-input-placeholder": "oklch(65% 0.05 130)",
|
||||
"--theme-input-background-disabled": "oklch(95% 0.04 130)",
|
||||
"--theme-input-foreground-disabled": "oklch(65% 0.05 130)",
|
||||
"--theme-input-focus-ring": "0 0 0 3px color-mix(in srgb, oklch(50% 0.25 130) 10%, transparent)",
|
||||
"--theme-input-multi-clear-background": "oklch(90% 0.1 130)",
|
||||
"--theme-input-multi-clear-foreground": "oklch(40% 0.12 130)",
|
||||
"--theme-input-multi-clear-hover": "oklch(85% 0.1 130)",
|
||||
"--theme-input-shadow": "0 1px 2px 0 color-mix(in srgb, oklch(20% 0.06 130) 5%, transparent)",
|
||||
"--theme-input-shadow-hover": "0 4px 6px -2px color-mix(in srgb, oklch(20% 0.06 130) 8%, transparent)",
|
||||
"--theme-input-shadow-focus": "0 1px 2px 0 color-mix(in srgb, oklch(20% 0.06 130) 5%, transparent)",
|
||||
"--theme-input-inplace-select-shadow": "0 1px 10px 1px oklch(40% 0.12 130)",
|
||||
"--theme-color-selected-border": "2px solid oklch(27% 0.07 130)",
|
||||
"--theme-new-object-button-background": "oklch(90% 0.1 130)",
|
||||
"--theme-new-object-button-background-hover": "oklch(85% 0.1 130)",
|
||||
"--theme-status-valid-background": "oklch(95% 0.1 110)",
|
||||
"--theme-status-testing-background": "oklch(95% 0.1 135)",
|
||||
"--theme-status-error-background": "oklch(95% 0.1 25)",
|
||||
"--theme-status-unconfigured-background": "oklch(95% 0.04 130)",
|
||||
"--theme-status-untested-background": "oklch(94% 0.1 65)",
|
||||
"--theme-dropdown-icon-hover": "oklch(45% 0.3 130)",
|
||||
"--theme-icon-picker-background": "oklch(90% 0.1 130)",
|
||||
"--theme-icon-picker-border": "1px solid oklch(85% 0.1 130)",
|
||||
"--theme-icon-picker-hover": "oklch(85% 0.1 130)",
|
||||
"--theme-icon-picker-selected": "oklch(80% 0.15 130)",
|
||||
"--theme-dbkey-background": "oklch(98% 0.01 130)",
|
||||
"--theme-dbkey-border": "1px solid oklch(90% 0.1 130)",
|
||||
"--theme-dbkey-icon-hover": "oklch(70% 0.15 130)",
|
||||
"--theme-chip-background": "oklch(85% 0.1 130)",
|
||||
"--theme-titlebar-background": "oklch(85% 0.1 130)",
|
||||
"--theme-titlebar-button-hover": "oklch(70% 0.15 130)",
|
||||
"--theme-card-background": "oklch(90% 0.1 130)",
|
||||
"--theme-card-border": "1px solid oklch(85% 0.1 130)",
|
||||
"--theme-content-background-hover": "oklch(95% 0.04 130)",
|
||||
"--theme-admin-menu-item-hover": "oklch(95% 0.04 130)",
|
||||
"--theme-admin-menu-item-active": "oklch(85% 0.1 130)",
|
||||
"--theme-admin-menu-background": "oklch(90% 0.1 130)",
|
||||
"--theme-admin-menu-border": "1px solid oklch(90% 0.1 130)",
|
||||
"--theme-json-tree-string-color": "oklch(45% 0.3 110)",
|
||||
"--theme-json-tree-symbol-color": "oklch(45% 0.3 110)",
|
||||
"--theme-json-tree-boolean-color": "oklch(40% 0.25 130)",
|
||||
"--theme-json-tree-function-color": "oklch(40% 0.25 130)",
|
||||
"--theme-json-tree-number-color": "oklch(50% 0.3 130)",
|
||||
"--theme-json-tree-label-color": "oklch(55% 0.3 140)",
|
||||
"--theme-json-tree-arrow-color": "oklch(65% 0.05 130)",
|
||||
"--theme-json-tree-null-color": "oklch(65% 0.05 130)",
|
||||
"--theme-json-tree-undefined-color": "oklch(65% 0.05 130)",
|
||||
"--theme-json-tree-date-color": "oklch(65% 0.05 130)",
|
||||
"--theme-json-tree-deleted-background": "oklch(95% 0.1 25)",
|
||||
"--theme-json-tree-modified-background": "oklch(95% 0.1 135)",
|
||||
"--theme-json-tree-inserted-background": "oklch(95% 0.1 110)",
|
||||
"--theme-icon-blue": "oklch(40% 0.25 130)",
|
||||
"--theme-icon-green": "oklch(45% 0.2 140)",
|
||||
"--theme-icon-red": "oklch(40% 0.3 25)",
|
||||
"--theme-icon-gold": "oklch(50% 0.2 60)",
|
||||
"--theme-icon-yellow": "oklch(50% 0.15 80)",
|
||||
"--theme-icon-magenta": "oklch(45% 0.3 135)"
|
||||
}
|
||||
}
|
||||
16
e2e-tests/data/geo-data-postgres.sql
Normal file
16
e2e-tests/data/geo-data-postgres.sql
Normal file
@@ -0,0 +1,16 @@
|
||||
CREATE TABLE "public"."cities" (
|
||||
"id" SERIAL,
|
||||
"name" VARCHAR(250) NULL,
|
||||
"location" VARCHAR(500) NULL,
|
||||
CONSTRAINT "PK_cities" PRIMARY KEY ("id")
|
||||
);
|
||||
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (1, 'Praha', 'POLYGON((14.2 50,14.2 50.15,14.6 50.15,14.6 50,14.2 50))');
|
||||
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (2, 'Brno', 'POLYGON((16.5 49.1,16.5 49.3,16.8 49.3,16.8 49.1,16.5 49.1))');
|
||||
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (3, 'Ostrava', 'POLYGON((18.15 49.7,18.15 49.9,18.4 49.9,18.4 49.7,18.15 49.7))');
|
||||
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (4, 'Plzeň', 'POLYGON((13.3 49.7,13.3 49.8,13.5 49.8,13.5 49.7,13.3 49.7))');
|
||||
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (5, 'Olomouc', 'POLYGON((17.2 49.5,17.2 49.65,17.3 49.65,17.3 49.5,17.2 49.5))');
|
||||
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (6, 'Liberec', 'POLYGON((14.9 50.7,14.9 50.8,15.1 50.8,15.1 50.7,14.9 50.7))');
|
||||
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (7, 'České Budějovice', 'POLYGON((14.4 48.9,14.4 49,14.6 49,14.6 48.9,14.4 48.9))');
|
||||
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (8, 'Hradec Králové', 'POLYGON((15.7 50.1,15.7 50.3,16 50.3,16 50.1,15.7 50.1))');
|
||||
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (9, 'Pardubice', 'POLYGON((15.7 49.9,15.7 50.1,15.9 50.1,15.9 49.9,15.7 49.9))');
|
||||
INSERT INTO "public"."cities" ("id", "name", "location") VALUES (10, 'Ústí nad Labem', 'POLYGON((13.9 50.6,13.9 50.7,14.2 50.7,14.2 50.6,13.9 50.6))');
|
||||
13
e2e-tests/data/my-guitar-shop/addresses.jsonl
Normal file
13
e2e-tests/data/my-guitar-shop/addresses.jsonl
Normal file
@@ -0,0 +1,13 @@
|
||||
{"__isStreamHeader":true,"pureName":"addresses","tableRowCount":"12","tableEngine":"InnoDB","objectComment":"","modifyDate":"2025-02-03 02:56:32","objectId":"addresses","contentHash":"2025-02-03 02:56:32","columns":[{"notNull":true,"autoIncrement":true,"columnName":"address_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"customer_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"line1","columnComment":"","dataType":"varchar(60)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":false,"autoIncrement":false,"columnName":"line2","columnComment":"","dataType":"varchar(60)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"city","columnComment":"","dataType":"varchar(40)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"state","columnComment":"","dataType":"varchar(2)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"zip_code","columnComment":"","dataType":"varchar(10)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"phone","columnComment":"","dataType":"varchar(12)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"disabled","columnComment":"","dataType":"tinyint","defaultValue":"0","isUnsigned":false,"isZerofill":false}],"primaryKey":{"constraintName":"PRIMARY","pureName":"addresses","constraintType":"primaryKey","columns":[{"columnName":"address_id"}]},"foreignKeys":[{"constraintName":"addresses_fk_customers","constraintType":"foreignKey","pureName":"addresses","refTableName":"customers","updateAction":"NO ACTION","deleteAction":"NO ACTION","columns":[{"columnName":"customer_id","refColumnName":"customer_id"}]}],"indexes":[{"constraintName":"addresses_fk_customers","indexType":"BTREE","isUnique":false,"columns":[{"columnName":"customer_id","isDescending":0}]}],"uniques":[],"engine":"mysql@dbgate-plugin-mysql"}
|
||||
{"address_id":1,"customer_id":1,"line1":"100 East Ridgewood Ave.","line2":"","city":"Paramus","state":"NJ","zip_code":"07652","phone":"201-653-4472","disabled":0}
|
||||
{"address_id":2,"customer_id":1,"line1":"21 Rosewood Rd.","line2":"","city":"Woodcliff Lake","state":"NJ","zip_code":"07677","phone":"201-653-4472","disabled":0}
|
||||
{"address_id":3,"customer_id":2,"line1":"16285 Wendell St.","line2":"","city":"Omaha","state":"NE","zip_code":"68135","phone":"402-896-2576","disabled":0}
|
||||
{"address_id":4,"customer_id":3,"line1":"19270 NW Cornell Rd.","line2":"","city":"Beaverton","state":"OR","zip_code":"97006","phone":"503-654-1291","disabled":0}
|
||||
{"address_id":5,"customer_id":4,"line1":"186 Vermont St.","line2":"Apt. 2","city":"San Francisco","state":"CA","zip_code":"94110","phone":"415-292-6651","disabled":0}
|
||||
{"address_id":6,"customer_id":4,"line1":"1374 46th Ave.","line2":"","city":"San Francisco","state":"CA","zip_code":"94129","phone":"415-292-6651","disabled":0}
|
||||
{"address_id":7,"customer_id":5,"line1":"6982 Palm Ave.","line2":"","city":"Fresno","state":"CA","zip_code":"93711","phone":"559-431-2398","disabled":0}
|
||||
{"address_id":8,"customer_id":6,"line1":"23 Mountain View St.","line2":"","city":"Denver","state":"CO","zip_code":"80208","phone":"303-912-3852","disabled":0}
|
||||
{"address_id":9,"customer_id":7,"line1":"7361 N. 41st St.","line2":"Apt. B","city":"New York","state":"NY","zip_code":"10012","phone":"212-335-2093","disabled":0}
|
||||
{"address_id":10,"customer_id":7,"line1":"3829 Broadway Ave.","line2":"Suite 2","city":"New York","state":"NY","zip_code":"10012","phone":"212-239-1208","disabled":0}
|
||||
{"address_id":11,"customer_id":8,"line1":"2381 Buena Vista St.","line2":"","city":"Los Angeles","state":"CA","zip_code":"90023","phone":"213-772-5033","disabled":0}
|
||||
{"address_id":12,"customer_id":8,"line1":"291 W. Hollywood Blvd.","line2":"","city":"Los Angeles","state":"CA","zip_code":"90024","phone":"213-391-2938","disabled":0}
|
||||
46
e2e-tests/data/my-guitar-shop/addresses.table.yaml
Normal file
46
e2e-tests/data/my-guitar-shop/addresses.table.yaml
Normal file
@@ -0,0 +1,46 @@
|
||||
name: addresses
|
||||
columns:
|
||||
- name: address_id
|
||||
type: int
|
||||
default: null
|
||||
autoIncrement: true
|
||||
notNull: true
|
||||
- name: customer_id
|
||||
type: int
|
||||
default: null
|
||||
notNull: true
|
||||
references: customers
|
||||
- name: line1
|
||||
type: varchar(60)
|
||||
default: null
|
||||
notNull: true
|
||||
- name: line2
|
||||
type: varchar(60)
|
||||
default: null
|
||||
- name: city
|
||||
type: varchar(40)
|
||||
default: null
|
||||
notNull: true
|
||||
- name: state
|
||||
type: varchar(2)
|
||||
default: null
|
||||
notNull: true
|
||||
- name: zip_code
|
||||
type: varchar(10)
|
||||
default: null
|
||||
notNull: true
|
||||
- name: phone
|
||||
type: varchar(12)
|
||||
default: null
|
||||
notNull: true
|
||||
- name: disabled
|
||||
type: int
|
||||
default: 0
|
||||
notNull: true
|
||||
primaryKey:
|
||||
- address_id
|
||||
indexes:
|
||||
- name: addresses_fk_customers
|
||||
unique: false
|
||||
columns:
|
||||
- customer_id
|
||||
4
e2e-tests/data/my-guitar-shop/administrators.jsonl
Normal file
4
e2e-tests/data/my-guitar-shop/administrators.jsonl
Normal file
@@ -0,0 +1,4 @@
|
||||
{"__isStreamHeader":true,"pureName":"administrators","tableRowCount":"3","tableEngine":"InnoDB","objectComment":"","modifyDate":"2025-02-03 02:56:33","objectId":"administrators","contentHash":"2025-02-03 02:56:33","columns":[{"notNull":true,"autoIncrement":true,"columnName":"admin_id","columnComment":"","dataType":"int","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"email_address","columnComment":"","dataType":"varchar(255)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"password","columnComment":"","dataType":"varchar(255)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"first_name","columnComment":"","dataType":"varchar(255)","defaultValue":null,"isUnsigned":false,"isZerofill":false},{"notNull":true,"autoIncrement":false,"columnName":"last_name","columnComment":"","dataType":"varchar(255)","defaultValue":null,"isUnsigned":false,"isZerofill":false}],"primaryKey":{"constraintName":"PRIMARY","pureName":"administrators","constraintType":"primaryKey","columns":[{"columnName":"admin_id"}]},"foreignKeys":[],"indexes":[],"uniques":[],"engine":"mysql@dbgate-plugin-mysql"}
|
||||
{"admin_id":1,"email_address":"admin@myguitarshop.com","password":"6a718fbd768c2378b511f8249b54897f940e9022","first_name":"Admin","last_name":"User"}
|
||||
{"admin_id":2,"email_address":"joel@murach.com","password":"971e95957d3b74d70d79c20c94e9cd91b85f7aae","first_name":"Joel","last_name":"Murach"}
|
||||
{"admin_id":3,"email_address":"mike@murach.com","password":"3f2975c819cefc686282456aeae3a137bf896ee8","first_name":"Mike","last_name":"Murach"}
|
||||
25
e2e-tests/data/my-guitar-shop/administrators.table.yaml
Normal file
25
e2e-tests/data/my-guitar-shop/administrators.table.yaml
Normal file
@@ -0,0 +1,25 @@
|
||||
name: administrators
|
||||
columns:
|
||||
- name: admin_id
|
||||
type: int
|
||||
default: null
|
||||
autoIncrement: true
|
||||
notNull: true
|
||||
- name: email_address
|
||||
type: varchar(255)
|
||||
default: null
|
||||
notNull: true
|
||||
- name: password
|
||||
type: varchar(255)
|
||||
default: null
|
||||
notNull: true
|
||||
- name: first_name
|
||||
type: varchar(255)
|
||||
default: null
|
||||
notNull: true
|
||||
- name: last_name
|
||||
type: varchar(255)
|
||||
default: null
|
||||
notNull: true
|
||||
primaryKey:
|
||||
- admin_id
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user