Compare commits
326 Commits
availabili
...
v22.1.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1eea64f2c3 | ||
|
|
cfe553e28a | ||
|
|
2f880f5bcf | ||
|
|
0629b58382 | ||
|
|
34b5d979ff | ||
|
|
2a928d46d4 | ||
|
|
c7b6e73fe4 | ||
|
|
211e14859a | ||
|
|
39c73581c1 | ||
|
|
9e5440abc3 | ||
|
|
7f897606e4 | ||
|
|
5444db1ebf | ||
|
|
09921e94f4 | ||
|
|
f94ec1f80c | ||
|
|
6d2430701c | ||
|
|
d84eed7fb0 | ||
|
|
2ce0a190b4 | ||
|
|
687d0abfc5 | ||
|
|
025e057f9d | ||
|
|
664a95eb75 | ||
|
|
648ae408e9 | ||
|
|
1d7e8ca0c3 | ||
|
|
cd9ee1653b | ||
|
|
bd30d97857 | ||
|
|
951aa784b0 | ||
|
|
8be50456e5 | ||
|
|
e0d632c342 | ||
|
|
e3be5d49d3 | ||
|
|
d73de679a8 | ||
|
|
3a6145becf | ||
|
|
5d4ad75e53 | ||
|
|
945b9288c6 | ||
|
|
2dc669c2ae | ||
|
|
10c3974ff7 | ||
|
|
1829b5d9c4 | ||
|
|
f7d5bb5cb1 | ||
|
|
cae51a0a25 | ||
|
|
e2a4dc818c | ||
|
|
2663b10e49 | ||
|
|
c485aad988 | ||
|
|
f3f1c826be | ||
|
|
cb49f19385 | ||
|
|
e1d9a45c6d | ||
|
|
67cbb0318d | ||
|
|
79b5421425 | ||
|
|
461e9079b9 | ||
|
|
7879484950 | ||
|
|
d89b462351 | ||
|
|
94e5dcd90e | ||
|
|
26d1ac1f1f | ||
|
|
34ba91e141 | ||
|
|
f605e1dabf | ||
|
|
55fcffd11a | ||
|
|
57e20ed566 | ||
|
|
e9fc8e1dcb | ||
|
|
f97915101e | ||
|
|
73a52b2565 | ||
|
|
7fb8b50cf9 | ||
|
|
4566423e85 | ||
|
|
fb5ee6087b | ||
|
|
51bfaf9faa | ||
|
|
1415a7ee92 | ||
|
|
54192ed459 | ||
|
|
fdd5bc8560 | ||
|
|
a822e88d24 | ||
|
|
0a184a3201 | ||
|
|
5ce9276230 | ||
|
|
0b44a82ace | ||
|
|
02d3de6aef | ||
|
|
f60ea8a260 | ||
|
|
a22ea02bea | ||
|
|
33b01187cd | ||
|
|
2e76d98e13 | ||
|
|
5b111961ae | ||
|
|
df0ca2f1db | ||
|
|
701de23857 | ||
|
|
dde4c9d9df | ||
|
|
9c0e1d8252 | ||
|
|
37a65237ea | ||
|
|
4d0f0095ea | ||
|
|
13781b0425 | ||
|
|
08ab5d97da | ||
|
|
df835ed350 | ||
|
|
5bd4ed19d4 | ||
|
|
8a6e3e6aca | ||
|
|
876545502c | ||
|
|
6acf1a5493 | ||
|
|
faef6db11a | ||
|
|
eceee99081 | ||
|
|
59e6c25660 | ||
|
|
1f4886d891 | ||
|
|
6f57b3bc79 | ||
|
|
164d5a296b | ||
|
|
a58eafb53f | ||
|
|
0af0874442 | ||
|
|
9da252811c | ||
|
|
9a95bb4f89 | ||
|
|
f9dfb535ef | ||
|
|
ae3c49d375 | ||
|
|
127d8e65a4 | ||
|
|
f030a16333 | ||
|
|
3290c53d6a | ||
|
|
aec771763c | ||
|
|
525ff78aab | ||
|
|
2a4b5752de | ||
|
|
6da7f78ec2 | ||
|
|
fc9066efb2 | ||
|
|
e0ab00e5f1 | ||
|
|
a45d94af7b | ||
|
|
192858a79b | ||
|
|
3f3206149e | ||
|
|
972f678316 | ||
|
|
8c13c5a5be | ||
|
|
7f044655ed | ||
|
|
94466918e3 | ||
|
|
e02dde323d | ||
|
|
7c7dc50ceb | ||
|
|
4932396052 | ||
|
|
3c494c4031 | ||
|
|
b285f18595 | ||
|
|
78a5ece3d9 | ||
|
|
f3e7212bea | ||
|
|
b81db1aa1c | ||
|
|
d6641f639d | ||
|
|
c3670c9d86 | ||
|
|
6282aca622 | ||
|
|
f0ca1f7173 | ||
|
|
afbcdb4fa0 | ||
|
|
cba61e955c | ||
|
|
e3cf80aba4 | ||
|
|
b7da9efbd3 | ||
|
|
9452553842 | ||
|
|
79526af7a5 | ||
|
|
69e650d4b0 | ||
|
|
1534b24e38 | ||
|
|
0feea35823 | ||
|
|
98b14028b5 | ||
|
|
dc0dbcf437 | ||
|
|
918c75c84b | ||
|
|
bd1217ff58 | ||
|
|
68905056dc | ||
|
|
2585ae80cf | ||
|
|
2e9d5ce5c6 | ||
|
|
3be3a3ec87 | ||
|
|
8550418872 | ||
|
|
6fe61cc8b3 | ||
|
|
837c08892b | ||
|
|
46135e018a | ||
|
|
ff10807f37 | ||
|
|
b91ea46fce | ||
|
|
5681de67fc | ||
|
|
83e84f3aa3 | ||
|
|
6628c2c6ca | ||
|
|
3879860177 | ||
|
|
4eae0f7a0a | ||
|
|
269e436857 | ||
|
|
dc8b42eec4 | ||
|
|
68015b6680 | ||
|
|
0ce687fd33 | ||
|
|
185812ed48 | ||
|
|
7e96f06c59 | ||
|
|
76e0481bd5 | ||
|
|
ed3f47b049 | ||
|
|
4721a82f92 | ||
|
|
11a252814e | ||
|
|
c0f3fcd9a1 | ||
|
|
4c47cef75f | ||
|
|
eae6ab29ec | ||
|
|
377942d5ef | ||
|
|
add5919175 | ||
|
|
d5b38ed5f8 | ||
|
|
59f56244c6 | ||
|
|
f19f9e1927 | ||
|
|
a6d8b3bbc3 | ||
|
|
1343e0ce9a | ||
|
|
16bc5a39da | ||
|
|
24714324b8 | ||
|
|
a715b8da19 | ||
|
|
622bb56f44 | ||
|
|
bce33f231d | ||
|
|
8b17f317ee | ||
|
|
cc34255303 | ||
|
|
9d2cf57776 | ||
|
|
cf62f62e80 | ||
|
|
67675c80d6 | ||
|
|
b1c3dacd51 | ||
|
|
9305eaac55 | ||
|
|
79c10ff847 | ||
|
|
c44e168c77 | ||
|
|
9bb06118ab | ||
|
|
1cdf2a268b | ||
|
|
9877075c47 | ||
|
|
81e9495c51 | ||
|
|
718cb09dc9 | ||
|
|
359a33f91a | ||
|
|
df9abad225 | ||
|
|
89dd07f051 | ||
|
|
3bd8bff7db | ||
|
|
82017ff311 | ||
|
|
44fd0d15a7 | ||
|
|
9c13098d65 | ||
|
|
da157ea242 | ||
|
|
4de6ab39ea | ||
|
|
bdcf22eee7 | ||
|
|
e915d98fc6 | ||
|
|
5a9a02ad1d | ||
|
|
424027b67f | ||
|
|
45617f7b04 | ||
|
|
05d49b9a67 | ||
|
|
5aaad8db1b | ||
|
|
0bbc64960e | ||
|
|
9970740f6b | ||
|
|
f8448323d7 | ||
|
|
c8c2870191 | ||
|
|
0ff49820c8 | ||
|
|
33f231c5ae | ||
|
|
be1444576d | ||
|
|
0263eea033 | ||
|
|
ac3ffa7d7a | ||
|
|
d878c68495 | ||
|
|
a2c02455d0 | ||
|
|
66f07cf203 | ||
|
|
efefffa4cd | ||
|
|
f0c78d45a9 | ||
|
|
84d1398298 | ||
|
|
a130d113c8 | ||
|
|
8d31b1a57d | ||
|
|
69f2b691cd | ||
|
|
6bd2efe549 | ||
|
|
d23b723d38 | ||
|
|
41ca0af614 | ||
|
|
4798a29442 | ||
|
|
295d599b8f | ||
|
|
c04797dca0 | ||
|
|
1fbe3cd596 | ||
|
|
a5fa6c9250 | ||
|
|
f16a806819 | ||
|
|
af2a862857 | ||
|
|
6505312817 | ||
|
|
120fc8dd6a | ||
|
|
ca96a03c6b | ||
|
|
54e249bb0f | ||
|
|
49d7a7b896 | ||
|
|
ecab457ae0 | ||
|
|
65e9c67bbd | ||
|
|
f9e2799855 | ||
|
|
b5d6189ca2 | ||
|
|
fb018b7435 | ||
|
|
25ad68e6f5 | ||
|
|
5dcc18af46 | ||
|
|
525dfd2f4d | ||
|
|
32f0d85957 | ||
|
|
cd0343e6b9 | ||
|
|
b01c3351f8 | ||
|
|
2b122fbcf0 | ||
|
|
0e90199f1d | ||
|
|
1826107f56 | ||
|
|
9f65367112 | ||
|
|
3dd1b95f90 | ||
|
|
8c6ca5d835 | ||
|
|
c5d518c4c5 | ||
|
|
2054614358 | ||
|
|
2ed3574ea0 | ||
|
|
a0d6002297 | ||
|
|
e5fe200076 | ||
|
|
a626792e15 | ||
|
|
c67e1420c8 | ||
|
|
3f212b8857 | ||
|
|
f8db7ce8f5 | ||
|
|
c73070c19d | ||
|
|
fb8e681161 | ||
|
|
0ab8f2f15a | ||
|
|
f6f85478a0 | ||
|
|
5e93d571e0 | ||
|
|
afb7126022 | ||
|
|
6a4a5d888e | ||
|
|
cb57285870 | ||
|
|
268e6af00e | ||
|
|
cb0e76105e | ||
|
|
6c24e13d4b | ||
|
|
226e0c4107 | ||
|
|
b5b58faec0 | ||
|
|
863686c283 | ||
|
|
e2c96aebd1 | ||
|
|
b25e8e7030 | ||
|
|
858da2ed1d | ||
|
|
9882ae8986 | ||
|
|
87d8e8f6d3 | ||
|
|
1220e48301 | ||
|
|
28a21048ac | ||
|
|
3ca664dda1 | ||
|
|
48be209e92 | ||
|
|
bf279980ac | ||
|
|
5bde3d1836 | ||
|
|
6b83de79c6 | ||
|
|
727d2300b6 | ||
|
|
1f6f863d86 | ||
|
|
1754c3d979 | ||
|
|
29b36c56f3 | ||
|
|
cc1d24a008 | ||
|
|
3550b12e3e | ||
|
|
4565f5d3b4 | ||
|
|
9d6c11f7da | ||
|
|
87efcd06ca | ||
|
|
b30ce04e15 | ||
|
|
bcedd4031d | ||
|
|
63d2aad5d3 | ||
|
|
19d2367340 | ||
|
|
51cae9ba98 | ||
|
|
148a62939f | ||
|
|
eb5e445af4 | ||
|
|
4398cf85c1 | ||
|
|
e74f5aeec2 | ||
|
|
98005fc331 | ||
|
|
7e506bab4c | ||
|
|
a614537edb | ||
|
|
f6e544119a | ||
|
|
8ee15f9984 | ||
|
|
b299369c15 | ||
|
|
61a3132c76 | ||
|
|
3b5b2af215 | ||
|
|
dfc096737d | ||
|
|
57a4ef9da8 | ||
|
|
3d7e3185fc | ||
|
|
3d20ca684c | ||
|
|
99b7b82d72 |
@@ -1,5 +1,5 @@
|
||||
codecov:
|
||||
branch: master
|
||||
branch: stable22
|
||||
ci:
|
||||
- drone.nextcloud.com
|
||||
- !scrutinizer-ci.com
|
||||
|
||||
91
.drone.yml
91
.drone.yml
@@ -739,7 +739,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-capabilities_features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -764,7 +764,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-collaboration_features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -789,7 +789,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-federation_features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin
|
||||
@@ -814,7 +814,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-auth
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -839,7 +839,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-avatar
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -864,7 +864,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-maintenance-mode
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -889,7 +889,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-ratelimiting
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -924,7 +924,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-carddav
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -949,7 +949,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-dav-v2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -974,7 +974,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-ocs-v1
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -999,7 +999,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-checksums-v1
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1024,7 +1024,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-external-storage
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1049,7 +1049,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-provisioning-v1
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1074,7 +1074,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-tags
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1099,7 +1099,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-caldav
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1124,7 +1124,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-comments
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1149,7 +1149,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-comments-search
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1174,7 +1174,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-contacts-menu
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1199,7 +1199,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-favorites
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1224,7 +1224,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-provisioning-v2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1249,7 +1249,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-webdav-related
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1274,7 +1274,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-sharees-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1299,7 +1299,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-sharees-v2-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1324,7 +1324,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-sharing-v1
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1349,7 +1349,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-sharing-v1-part2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1374,7 +1374,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-sharing-v1-part3
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1403,9 +1403,9 @@ steps:
|
||||
commands:
|
||||
# JavaScript files are not used in integration tests so it is not needed to
|
||||
# build them.
|
||||
- git clone --depth 1 https://github.com/nextcloud/spreed apps/spreed
|
||||
- git clone --depth 1 --branch stable22 https://github.com/nextcloud/spreed apps/spreed
|
||||
- name: integration-sharing-v1-video-verification
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1430,7 +1430,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-setup-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- cd build/integration
|
||||
@@ -1454,7 +1454,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-filesdrop-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1479,7 +1479,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-transfer-ownership-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1504,7 +1504,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-ldap-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1529,7 +1529,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-ldap-openldap-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1570,7 +1570,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-ldap-openldap-uid-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1612,7 +1612,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-ldap-openldap-numerical-id-features
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1653,7 +1653,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-trashbin
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1678,7 +1678,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-remote-api
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -1703,7 +1703,7 @@ steps:
|
||||
commands:
|
||||
- git submodule update --init
|
||||
- name: integration-download
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:integration-php7.3-2
|
||||
image: ghcr.io/nextcloud/continuous-integration-integration-php7.3:latest
|
||||
commands:
|
||||
- bash tests/drone-run-integration-tests.sh || exit 0
|
||||
- ./occ maintenance:install --admin-pass=admin --data-dir=/dev/shm/nc_int
|
||||
@@ -2117,6 +2117,15 @@ kind: pipeline
|
||||
name: object-store-s3
|
||||
|
||||
steps:
|
||||
- name: minio
|
||||
image: ghcr.io/nextcloud/continuous-integration-minio:latest
|
||||
detach: true
|
||||
commands:
|
||||
- mkdir /s3data
|
||||
- minio server /s3data
|
||||
environment:
|
||||
MINIO_ROOT_USER: nextcloud
|
||||
MINIO_ROOT_PASSWORD: nextcloud
|
||||
- name: submodules
|
||||
image: ghcr.io/nextcloud/continuous-integration-alpine-git:latest
|
||||
commands:
|
||||
@@ -2124,6 +2133,7 @@ steps:
|
||||
- name: object-store
|
||||
image: ghcr.io/nextcloud/continuous-integration-php7.4:php7.4-3
|
||||
environment:
|
||||
OBJECT_STORE: s3
|
||||
CODECOV_TOKEN:
|
||||
from_secret: CODECOV_TOKEN
|
||||
commands:
|
||||
@@ -2133,10 +2143,6 @@ steps:
|
||||
- wget https://codecov.io/bash -O codecov.sh
|
||||
- bash codecov.sh -C $DRONE_COMMIT -f tests/autotest-clover-sqlite.xml
|
||||
|
||||
services:
|
||||
- name: fake-s3
|
||||
image: ghcr.io/nextcloud/continuous-integration-fake-s3:latest
|
||||
|
||||
trigger:
|
||||
branch:
|
||||
- master
|
||||
@@ -2157,6 +2163,7 @@ steps:
|
||||
- name: object-store
|
||||
image: ghcr.io/nextcloud/continuous-integration-php7.4:php7.4-3
|
||||
environment:
|
||||
OBJECT_STORE: azure
|
||||
CODECOV_TOKEN:
|
||||
from_secret: CODECOV_TOKEN
|
||||
commands:
|
||||
|
||||
20
.github/workflows/dependabot-approve-merge.yml
vendored
20
.github/workflows/dependabot-approve-merge.yml
vendored
@@ -1,21 +1,29 @@
|
||||
# This workflow is provided via the organization template repository
|
||||
#
|
||||
# https://github.com/nextcloud/.github
|
||||
# https://docs.github.com/en/actions/learn-github-actions/sharing-workflows-with-your-organization
|
||||
|
||||
name: Dependabot
|
||||
on: pull_request_target
|
||||
|
||||
on:
|
||||
pull_request_target:
|
||||
branches:
|
||||
- master
|
||||
- stable*
|
||||
|
||||
jobs:
|
||||
auto-merge:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
# Default github action approve
|
||||
- uses: hmarr/auto-approve-action@v2.0.0
|
||||
if: github.ref == 'refs/heads/master' &&
|
||||
(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]')
|
||||
- uses: hmarr/auto-approve-action@v2
|
||||
if: github.actor == 'dependabot[bot]'
|
||||
with:
|
||||
github-token: ${{ secrets.GITHUB_TOKEN }}
|
||||
|
||||
# Nextcloud bot approve and merge request
|
||||
- uses: ahmadnassri/action-dependabot-auto-merge@v2
|
||||
if: github.ref == 'refs/heads/master' &&
|
||||
(github.actor == 'dependabot[bot]' || github.actor == 'dependabot-preview[bot]')
|
||||
if: github.actor == 'dependabot[bot]'
|
||||
with:
|
||||
target: minor
|
||||
github-token: ${{ secrets.DEPENDABOT_AUTOMERGE_TOKEN }}
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
</IfModule>
|
||||
|
||||
# Add cache control for static resources
|
||||
<FilesMatch "\.(css|js|svg|gif)$">
|
||||
<FilesMatch "\.(css|js|svg|gif|png|jpg|ico)$">
|
||||
Header set Cache-Control "max-age=15778463"
|
||||
</FilesMatch>
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# Nextcloud Server ☁
|
||||
[](https://scrutinizer-ci.com/g/nextcloud/server/?branch=master)
|
||||
[](https://codecov.io/gh/nextcloud/server)
|
||||
[](https://scrutinizer-ci.com/g/nextcloud/server/?branch=stable22)
|
||||
[](https://codecov.io/gh/nextcloud/server)
|
||||
[](https://bestpractices.coreinfrastructure.org/projects/209)
|
||||
|
||||
**A safe home for all your data.**
|
||||
|
||||
18
apps/accessibility/composer/composer.lock
generated
Normal file
18
apps/accessibility/composer/composer.lock
generated
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "d751713988987e9331980363e24189ce",
|
||||
"packages": [],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
}
|
||||
337
apps/accessibility/composer/composer/InstalledVersions.php
Normal file
337
apps/accessibility/composer/composer/InstalledVersions.php
Normal file
@@ -0,0 +1,337 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed;
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
5
apps/accessibility/composer/composer/installed.json
Normal file
5
apps/accessibility/composer/composer/installed.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"packages": [],
|
||||
"dev": false,
|
||||
"dev-package-names": []
|
||||
}
|
||||
23
apps/accessibility/composer/composer/installed.php
Normal file
23
apps/accessibility/composer/composer/installed.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'name' => '__root__',
|
||||
'dev' => false,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -9,8 +9,11 @@ OC.L10N.register(
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Modo de alto contraste para facilitar tu navegación. La calidad visual puede ser menor pero incrementa la claridad.",
|
||||
"Dyslexia font" : "Fuente para dislexia",
|
||||
"Enable dyslexia font" : "Habilitar fuente para dislexia",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es una tipografía/fuente diseñada para mitigar algunos de los errores comunes de lectura causados por dislexia.",
|
||||
"Accessibility" : "Accesibilidad",
|
||||
"Accessibility options for nextcloud" : "Opciones de accesibilidad para nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Provee múltiples opciones de accesibilidad para facilitar su uso de Nextcloud"
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Provee múltiples opciones de accesibilidad para facilitar tu uso de Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable inclusive sin ratón, y con software de asistencia como lectores de pantalla. Buscamos cumplir con las {guidelines}Guías de Accesibilidad de Contenido Web{linkend} 2.1 sobre nivel AA, incluso sobre nivel AAA para el tema de alto contraste.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Si encuentras cualquier problema, no dudes en reportarlo en {issuetracker}nuestra lista de errores{linkend}. Y si deseas involucrarte, ¡únete a {designteam}nuestro equipo de diseño{linkend}!"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -7,8 +7,11 @@
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Modo de alto contraste para facilitar tu navegación. La calidad visual puede ser menor pero incrementa la claridad.",
|
||||
"Dyslexia font" : "Fuente para dislexia",
|
||||
"Enable dyslexia font" : "Habilitar fuente para dislexia",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic es una tipografía/fuente diseñada para mitigar algunos de los errores comunes de lectura causados por dislexia.",
|
||||
"Accessibility" : "Accesibilidad",
|
||||
"Accessibility options for nextcloud" : "Opciones de accesibilidad para nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Provee múltiples opciones de accesibilidad para facilitar su uso de Nextcloud"
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Provee múltiples opciones de accesibilidad para facilitar tu uso de Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "El acceso universal es muy importante para nosotros. Seguimos los estándares web y verificamos que todo sea utilizable inclusive sin ratón, y con software de asistencia como lectores de pantalla. Buscamos cumplir con las {guidelines}Guías de Accesibilidad de Contenido Web{linkend} 2.1 sobre nivel AA, incluso sobre nivel AAA para el tema de alto contraste.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Si encuentras cualquier problema, no dudes en reportarlo en {issuetracker}nuestra lista de errores{linkend}. Y si deseas involucrarte, ¡únete a {designteam}nuestro equipo de diseño{linkend}!"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -3,17 +3,17 @@ OC.L10N.register(
|
||||
{
|
||||
"Dark theme" : "Gai iluna",
|
||||
"Enable dark theme" : "Gaitu gai iluna",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Arindu begietako kaltea gai ilunaz argitasuna eta distira murriztuz. Garapenean dagoen aukera da, beraz aurkitu zenezakeen edozein arazoren berri eman.",
|
||||
"High contrast mode" : "Kontraste altuko modua",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Arindu begietako kaltea gai ilunaz argitasuna eta distira murriztuz. Garapenean dagoen aukera da, beraz, eman aurkitu zenezakeen edozein arazoren berri mesedez.",
|
||||
"High contrast mode" : "Kontraste handiko modua",
|
||||
"Enable high contrast mode" : "Gaitu kontraste handiko modua",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Kontraste altuko modua zuri nabigazioa errazteko. Kalitate bisuala murriztuko da baina argitasuna handiagotu.",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Kontraste handiko modua zuri nabigazioa errazteko. Kalitate bisuala murriztuko da baina argitasuna handiagotu.",
|
||||
"Dyslexia font" : "Dislexia letra-tipoa",
|
||||
"Enable dyslexia font" : "Gaitu dislexia letra-tipoa",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic letra-tipo librea da dislexiak eragindako ohiko irakurketa akats batzuk leuntzeko diseinatua.",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic letra-tipo librea da, dislexiak eragindako ohiko irakurketa akats batzuk leuntzeko diseinatua.",
|
||||
"Accessibility" : "Erabilerraztasuna",
|
||||
"Accessibility options for nextcloud" : "Erabilerraztasun aukerak nextcloudentzat",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Nextcloud-en erabilera errazteko hainbat aukera eskaintzen ditu.",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Sarbide unibertsala oso garrantzitsua da guretzat. Web estadandarrak jarraitu eta sagu gabeko erabiltasuna egiaztatzen ditugu, pantaila-irakurle moduko software laguntzaileak barne. Helburu bezala jartzen dugu {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA mailan betetzea, kontraste altuko modua AAA mailaraino lortuz.",
|
||||
"Accessibility options for nextcloud" : "Erabilerraztasun aukerak Nextcloudentzat",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Nextclouden erabilera errazteko hainbat aukera eskaintzen ditu.",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Sarbide unibertsala izatea oso garrantzitsua da guretzat. Web estadandarrak jarraitu eta guztia sagurik gabe erabili ahal izatea bermatzen dugu, pantaila-irakurle moduko software laguntzaileak barne. Helburu bezala jartzen dugu {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA mailan betetzea, kontraste altuko modua AAA mailaraino betez.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Arazorik aurkitzen baduzu, bidali ezazu lasai {issuetracker}gure arazo-kontrolatzailera{linkend}. Eta parte hartu nahi baduzu, elkartu zaitez gurekin {designteam}gure diseinu taldera{linkend}!"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "Gai iluna",
|
||||
"Enable dark theme" : "Gaitu gai iluna",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Arindu begietako kaltea gai ilunaz argitasuna eta distira murriztuz. Garapenean dagoen aukera da, beraz aurkitu zenezakeen edozein arazoren berri eman.",
|
||||
"High contrast mode" : "Kontraste altuko modua",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Arindu begietako kaltea gai ilunaz argitasuna eta distira murriztuz. Garapenean dagoen aukera da, beraz, eman aurkitu zenezakeen edozein arazoren berri mesedez.",
|
||||
"High contrast mode" : "Kontraste handiko modua",
|
||||
"Enable high contrast mode" : "Gaitu kontraste handiko modua",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Kontraste altuko modua zuri nabigazioa errazteko. Kalitate bisuala murriztuko da baina argitasuna handiagotu.",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Kontraste handiko modua zuri nabigazioa errazteko. Kalitate bisuala murriztuko da baina argitasuna handiagotu.",
|
||||
"Dyslexia font" : "Dislexia letra-tipoa",
|
||||
"Enable dyslexia font" : "Gaitu dislexia letra-tipoa",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic letra-tipo librea da dislexiak eragindako ohiko irakurketa akats batzuk leuntzeko diseinatua.",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic letra-tipo librea da, dislexiak eragindako ohiko irakurketa akats batzuk leuntzeko diseinatua.",
|
||||
"Accessibility" : "Erabilerraztasuna",
|
||||
"Accessibility options for nextcloud" : "Erabilerraztasun aukerak nextcloudentzat",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Nextcloud-en erabilera errazteko hainbat aukera eskaintzen ditu.",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Sarbide unibertsala oso garrantzitsua da guretzat. Web estadandarrak jarraitu eta sagu gabeko erabiltasuna egiaztatzen ditugu, pantaila-irakurle moduko software laguntzaileak barne. Helburu bezala jartzen dugu {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA mailan betetzea, kontraste altuko modua AAA mailaraino lortuz.",
|
||||
"Accessibility options for nextcloud" : "Erabilerraztasun aukerak Nextcloudentzat",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Nextclouden erabilera errazteko hainbat aukera eskaintzen ditu.",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Sarbide unibertsala izatea oso garrantzitsua da guretzat. Web estadandarrak jarraitu eta guztia sagurik gabe erabili ahal izatea bermatzen dugu, pantaila-irakurle moduko software laguntzaileak barne. Helburu bezala jartzen dugu {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 AA mailan betetzea, kontraste altuko modua AAA mailaraino betez.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Arazorik aurkitzen baduzu, bidali ezazu lasai {issuetracker}gure arazo-kontrolatzailera{linkend}. Eta parte hartu nahi baduzu, elkartu zaitez gurekin {designteam}gure diseinu taldera{linkend}!"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -3,7 +3,7 @@ OC.L10N.register(
|
||||
{
|
||||
"Dark theme" : "Thème sombre",
|
||||
"Enable dark theme" : "Activer le thème sombre",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Un thème sombre pour soulager vos yeux en réduisant la luminosité et l’éclat général. Il est encore en cours de développement, veuillez donc nous signaler les problèmes que vous pourriez rencontrer.",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Un thème sombre pour soulager vos yeux en réduisant la luminosité générale. Il est encore en cours de développement, veuillez donc nous signaler les problèmes que vous pourriez rencontrer.",
|
||||
"High contrast mode" : "Thème à contraste élevé",
|
||||
"Enable high contrast mode" : "Activer le thème à contraste élevé",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un thème au contraste élevé pour faciliter votre navigation. La qualité visuelle sera réduite, mais la clarté sera améliorée.",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "Thème sombre",
|
||||
"Enable dark theme" : "Activer le thème sombre",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Un thème sombre pour soulager vos yeux en réduisant la luminosité et l’éclat général. Il est encore en cours de développement, veuillez donc nous signaler les problèmes que vous pourriez rencontrer.",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Un thème sombre pour soulager vos yeux en réduisant la luminosité générale. Il est encore en cours de développement, veuillez donc nous signaler les problèmes que vous pourriez rencontrer.",
|
||||
"High contrast mode" : "Thème à contraste élevé",
|
||||
"Enable high contrast mode" : "Activer le thème à contraste élevé",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Un thème au contraste élevé pour faciliter votre navigation. La qualité visuelle sera réduite, mais la clarté sera améliorée.",
|
||||
|
||||
@@ -1,17 +1,19 @@
|
||||
OC.L10N.register(
|
||||
"accessibility",
|
||||
{
|
||||
"Dark theme" : "Mørkt tema",
|
||||
"Enable dark theme" : "Mogleggjere mørkt tema",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Ei mørk drakt som er mildare mot augo ved å redusera utstråling og lysstyrke. Drakta vert framleis utvikla, så sei gjerne ifrå dersom du får vanskar.",
|
||||
"High contrast mode" : "Høg kontrast modus",
|
||||
"Enable high contrast mode" : "Mogleggjere høg kontrast modus",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Høg kontrast modus gjer det enklare å navigere. Visuell kvalitet vil bli redusert, mens innhaldet vert klårare.",
|
||||
"Dyslexia font" : "Dysleksi-skrifttype",
|
||||
"Enable dyslexia font" : "Mogleggjere skrifttype for dysleksikarar ",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic er ein gratis skrifttype som er laga for å redusera nokre vanlege lesefeil som kjem av dysleksi.",
|
||||
"Accessibility" : "Tilgjenge",
|
||||
"Accessibility options for nextcloud" : "Brukarval for tilgjenge i Nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Ulike innstillingar for å gjera Nextcloud lettare å bruka for funksjonshemma",
|
||||
"High contrast theme" : "Høgkontrast-drakt",
|
||||
"A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Ei drakt med høg kontrast som gjer det lettare å navigera. Den visuelle kvaliteten er redusert, men innhaldet er klårare.",
|
||||
"Web Content Accessibility Guidelines" : "Retningsliner for tilgjenge i vev-innhald",
|
||||
"our issue tracker" : "feilsporings-systemet vårt",
|
||||
"our design team" : "utformingsgruppa vår",
|
||||
"Enable" : "Slå på"
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Universell tilgang er veldig viktig for oss. Vi følg vev standardar og undersøkjer at alt er mogleg å gjennomføre utan mus, og saman med hjelpeprogramvare som skjermlesar. Vi har som mål å vere i samsvar med {retningslinjene} Retningslinjer for tilgjengeleg nett innhald {lenkje} 2.1 for A-nivå, til og med for tema med høy kontrast på AAA-nivå. ",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "I tilfele du finn nokre problem, ikkje vent med å rapportere dei på {problemsøkjar} vår problemsøkjar {lenkje}. Og ønskjer du å engasjere deg, ta del i {designergruppa} designergruppa vår {lenkje}!"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,15 +1,17 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "Mørkt tema",
|
||||
"Enable dark theme" : "Mogleggjere mørkt tema",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Ei mørk drakt som er mildare mot augo ved å redusera utstråling og lysstyrke. Drakta vert framleis utvikla, så sei gjerne ifrå dersom du får vanskar.",
|
||||
"High contrast mode" : "Høg kontrast modus",
|
||||
"Enable high contrast mode" : "Mogleggjere høg kontrast modus",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Høg kontrast modus gjer det enklare å navigere. Visuell kvalitet vil bli redusert, mens innhaldet vert klårare.",
|
||||
"Dyslexia font" : "Dysleksi-skrifttype",
|
||||
"Enable dyslexia font" : "Mogleggjere skrifttype for dysleksikarar ",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic er ein gratis skrifttype som er laga for å redusera nokre vanlege lesefeil som kjem av dysleksi.",
|
||||
"Accessibility" : "Tilgjenge",
|
||||
"Accessibility options for nextcloud" : "Brukarval for tilgjenge i Nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Ulike innstillingar for å gjera Nextcloud lettare å bruka for funksjonshemma",
|
||||
"High contrast theme" : "Høgkontrast-drakt",
|
||||
"A high contrast theme to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Ei drakt med høg kontrast som gjer det lettare å navigera. Den visuelle kvaliteten er redusert, men innhaldet er klårare.",
|
||||
"Web Content Accessibility Guidelines" : "Retningsliner for tilgjenge i vev-innhald",
|
||||
"our issue tracker" : "feilsporings-systemet vårt",
|
||||
"our design team" : "utformingsgruppa vår",
|
||||
"Enable" : "Slå på"
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Universell tilgang er veldig viktig for oss. Vi følg vev standardar og undersøkjer at alt er mogleg å gjennomføre utan mus, og saman med hjelpeprogramvare som skjermlesar. Vi har som mål å vere i samsvar med {retningslinjene} Retningslinjer for tilgjengeleg nett innhald {lenkje} 2.1 for A-nivå, til og med for tema med høy kontrast på AAA-nivå. ",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "I tilfele du finn nokre problem, ikkje vent med å rapportere dei på {problemsøkjar} vår problemsøkjar {lenkje}. Og ønskjer du å engasjere deg, ta del i {designergruppa} designergruppa vår {lenkje}!"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -2,7 +2,7 @@ OC.L10N.register(
|
||||
"accessibility",
|
||||
{
|
||||
"Dark theme" : "Tema escuro",
|
||||
"Enable dark theme" : "Ativar tema escuro",
|
||||
"Enable dark theme" : "Enable dark theme",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Um tema escuro para aliviar os olhos, reduzindo a luminosidade e brilho geral. Ainda está em desenvolvimento, por isso, informe qualquer problema encontrado.",
|
||||
"High contrast mode" : "Modo de alto contraste",
|
||||
"Enable high contrast mode" : "Ativar modo de alto contraste",
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "Tema escuro",
|
||||
"Enable dark theme" : "Ativar tema escuro",
|
||||
"Enable dark theme" : "Enable dark theme",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Um tema escuro para aliviar os olhos, reduzindo a luminosidade e brilho geral. Ainda está em desenvolvimento, por isso, informe qualquer problema encontrado.",
|
||||
"High contrast mode" : "Modo de alto contraste",
|
||||
"Enable high contrast mode" : "Ativar modo de alto contraste",
|
||||
|
||||
@@ -2,13 +2,18 @@ OC.L10N.register(
|
||||
"accessibility",
|
||||
{
|
||||
"Dark theme" : "Temë e errët",
|
||||
"Enable dark theme" : "Aktivizo temën e errët",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Një temë e errët për të lehtësuar sytë duke ulur shkëlqimin dhe ndritshmërinë e përgjithshme. Është ende në zhvillim, prandaj ju lutemi raportoni çdo çështje që mund të gjeni.",
|
||||
"High contrast mode" : "Modalitet me kontrast të lartë",
|
||||
"Enable high contrast mode" : "Aktivizoni modalitetin me kontrast të lartë",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Një modalitet me kontrast të lartë për të lehtësuar lundrimin. Cilësia vizuale do të reduktohet por qartësia do të rritet",
|
||||
"Dyslexia font" : "Fonti Dyslexia",
|
||||
"Enable dyslexia font" : "Aktivizo fontin e disleksisë",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic është një font / karakter tipografik i lirë i dizajnuar për të zbutur disa nga gabimet e zakonshme të leximit të shkaktuara nga disleksija.",
|
||||
"Accessibility" : "Aksesueshmëria",
|
||||
"Accessibility options for nextcloud" : "Opsionet e aksesueshmërisë për nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Mundëson shumë opsione të aksesueshmërisë që t'ju lehtësojë përdorimin e Nextcloud"
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Mundëson shumë opsione të aksesueshmërisë që t'ju lehtësojë përdorimin e Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Qasja universale është shumë e rëndësishme për ne. Ne ndjekim standardet e uebit dhe kontrollojmë që çdo gjë të jetë e përdorshme edhe pa miun, dhe softuerë ndihmës siç janë lexuesit e ekranit. Ne synojmë të jemi në përputhje me {udhëzimet}Udhëzimet mbi Aksesueshmërinë për Përmbajtjen në Internet{linkend} 2.1 në nivelin AA, me temën e kontrastit të lartë edhe në nivelin AAA.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Nëse gjeni ndonjë problem, mos hezitoni t'i raportoni ato në {issuetracker}gjurmuesi ynë i çështjeve{linkend}. Dhe nëse doni të përfshiheni, ejani bashkohuni me {designteam}ekipin tonë të dizajnit{linkend}!"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,12 +1,17 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "Temë e errët",
|
||||
"Enable dark theme" : "Aktivizo temën e errët",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "Një temë e errët për të lehtësuar sytë duke ulur shkëlqimin dhe ndritshmërinë e përgjithshme. Është ende në zhvillim, prandaj ju lutemi raportoni çdo çështje që mund të gjeni.",
|
||||
"High contrast mode" : "Modalitet me kontrast të lartë",
|
||||
"Enable high contrast mode" : "Aktivizoni modalitetin me kontrast të lartë",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "Një modalitet me kontrast të lartë për të lehtësuar lundrimin. Cilësia vizuale do të reduktohet por qartësia do të rritet",
|
||||
"Dyslexia font" : "Fonti Dyslexia",
|
||||
"Enable dyslexia font" : "Aktivizo fontin e disleksisë",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic është një font / karakter tipografik i lirë i dizajnuar për të zbutur disa nga gabimet e zakonshme të leximit të shkaktuara nga disleksija.",
|
||||
"Accessibility" : "Aksesueshmëria",
|
||||
"Accessibility options for nextcloud" : "Opsionet e aksesueshmërisë për nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Mundëson shumë opsione të aksesueshmërisë që t'ju lehtësojë përdorimin e Nextcloud"
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "Mundëson shumë opsione të aksesueshmërisë që t'ju lehtësojë përdorimin e Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "Qasja universale është shumë e rëndësishme për ne. Ne ndjekim standardet e uebit dhe kontrollojmë që çdo gjë të jetë e përdorshme edhe pa miun, dhe softuerë ndihmës siç janë lexuesit e ekranit. Ne synojmë të jemi në përputhje me {udhëzimet}Udhëzimet mbi Aksesueshmërinë për Përmbajtjen në Internet{linkend} 2.1 në nivelin AA, me temën e kontrastit të lartë edhe në nivelin AAA.",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "Nëse gjeni ndonjë problem, mos hezitoni t'i raportoni ato në {issuetracker}gjurmuesi ynë i çështjeve{linkend}. Dhe nëse doni të përfshiheni, ejani bashkohuni me {designteam}ekipin tonë të dizajnit{linkend}!"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,19 +1,19 @@
|
||||
OC.L10N.register(
|
||||
"accessibility",
|
||||
{
|
||||
"Dark theme" : "รูปแบบ สีเข้ม",
|
||||
"Enable dark theme" : "เปิด รูปแบบ สีเข้ม",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "รูปแบบสีเข้ม ทำให้ดวงตาของคุณสบายขึ้นโดยลดแสงส่องสว่าง และความสว่าง มันยังอยู่ระหว่างการพัฒนา, ดังนั้นโปรดรายงานปัญหาใด ๆ ที่คุณอาจจะพบ",
|
||||
"Dark theme" : "ธีมสีเข้ม",
|
||||
"Enable dark theme" : "เปิดใช้ธีมสีเข้ม",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "ธีมสีเข้มทำให้ดวงตาของคุณสบายขึ้น โดยลดแสงส่องสว่าง และความสว่างโดยรวม ซึ่งยังอยู่ระหว่างการพัฒนา ดังนั้นโปรดรายงานปัญหาใด ๆ ที่คุณอาจพบ",
|
||||
"High contrast mode" : "โหมดความคมชัดสูง",
|
||||
"Enable high contrast mode" : "เปิด โหมดความคมชัดสูง",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "โหมดความคมชัดสูง เพื่อความสะดวกในการเดินทางของคุณ คุณภาพของภาพจะลดลง แต่จะเพิ่มความคมชัด",
|
||||
"Dyslexia font" : "ฟอนต์ Dyslexia ",
|
||||
"Enable dyslexia font" : "เปิด ฟอนต์ Dyslexia",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic เป็นแบบอักษร / แบบอักษรฟรีที่ออกแบบมาเพื่อลดข้อผิดพลาดในการอ่านทั่วไป โดย dyslexia",
|
||||
"Accessibility" : "การเข้าถึง",
|
||||
"Accessibility options for nextcloud" : "ตัวเลือกการเข้าถึงสำหรับ nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "มีตัวเลือกในการเข้าถึงหลายตัว เพื่อให้ง่ายต่อการใช้งาน บน Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "การเข้าถึงสากลเป็นสิ่งสำคัญมากสำหรับเรา เราปฏิบัติตามมาตรฐานเว็บ และตรวจสอบเพื่อให้ทุกอย่างใช้งานได้โดยไม่ต้องใช้เมาส์และซอฟต์แวร์ช่วยเหลือ เช่นโปรแกรมอ่านหน้าจอ เรามุ่งมั่นที่จะปฏิบัติตาม {แนวทาง} แนวทางการเข้าถึงเนื้อหาเว็บ {linkend} 2.1 ในระดับ AA ด้วยธีมความคมชัดสูงแม้ในระดับ AAA",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "หากคุณพบปัญหาใด ๆ อย่าลังเลที่จะรายงานปัญหาเหล่านี้ใน {issuetracker} เครื่องมือติดตามปัญหาของเรา {linkend} และหากคุณต้องการมีส่วนร่วมเข้าร่วม {designteam} ทีมออกแบบของเรา {linkend}"
|
||||
"Enable high contrast mode" : "เปิดโหมดความคมชัดสูง",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "โหมดความคมชัดสูง ช่วยเพิ่มความสะดวกในการใช้งานของคุณ คุณภาพของภาพจะลดลง แต่ความคมชัดจะเพิ่มขึ้น",
|
||||
"Dyslexia font" : "ฟอนต์ภาวะเสียการอ่านเข้าใจ",
|
||||
"Enable dyslexia font" : "เปิดฟอนต์ภาวะเสียการอ่านเข้าใจ",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic เป็นแบบอักษร/ฟอนต์ฟรีที่ออกแบบมาเพื่อลดข้อผิดพลาดทั่วไปในการอ่านที่เกิดจากภาวะเสียการอ่านเข้าใจ",
|
||||
"Accessibility" : "การช่วยการเข้าถึง",
|
||||
"Accessibility options for nextcloud" : "ตัวเลือกการช่วยการเข้าถึงสำหรับ nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "มีหลายตัวเลือกในการช่วยการเข้าถึงเพื่อช่วยให้การใช้งาน Nextcloud ของคุณง่ายขึ้น",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "การเข้าถึงสากลเป็นสิ่งสำคัญมากสำหรับเรา เราปฏิบัติตามมาตรฐานเว็บและตรวจสอบเพื่อให้ทุกอย่างใช้งานได้โดยไม่ต้องใช้เมาส์และซอฟต์แวร์ช่วยเหลือ เช่น โปรแกรมอ่านหน้าจอ เรามุ่งมั่นที่จะปฏิบัติตาม{guidelines}แนวทางการเข้าถึงเนื้อหาเว็บ{linkend} 2.1 ในระดับ AA ด้วยธีมความคมชัดสูงแม้ในระดับ AAA",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "หากคุณพบปัญหาใด ๆ อย่าลังเลที่จะรายงานปัญหาเหล่านี้ใน{issuetracker}เครื่องมือติดตามปัญหาของเรา{linkend} และหากคุณต้องการมีส่วนร่วม เข้าร่วม{designteam}ทีมออกแบบของเรา{linkend}ได้เลย!"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
|
||||
@@ -1,17 +1,17 @@
|
||||
{ "translations": {
|
||||
"Dark theme" : "รูปแบบ สีเข้ม",
|
||||
"Enable dark theme" : "เปิด รูปแบบ สีเข้ม",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "รูปแบบสีเข้ม ทำให้ดวงตาของคุณสบายขึ้นโดยลดแสงส่องสว่าง และความสว่าง มันยังอยู่ระหว่างการพัฒนา, ดังนั้นโปรดรายงานปัญหาใด ๆ ที่คุณอาจจะพบ",
|
||||
"Dark theme" : "ธีมสีเข้ม",
|
||||
"Enable dark theme" : "เปิดใช้ธีมสีเข้ม",
|
||||
"A dark theme to ease your eyes by reducing the overall luminosity and brightness. It is still under development, so please report any issues you may find." : "ธีมสีเข้มทำให้ดวงตาของคุณสบายขึ้น โดยลดแสงส่องสว่าง และความสว่างโดยรวม ซึ่งยังอยู่ระหว่างการพัฒนา ดังนั้นโปรดรายงานปัญหาใด ๆ ที่คุณอาจพบ",
|
||||
"High contrast mode" : "โหมดความคมชัดสูง",
|
||||
"Enable high contrast mode" : "เปิด โหมดความคมชัดสูง",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "โหมดความคมชัดสูง เพื่อความสะดวกในการเดินทางของคุณ คุณภาพของภาพจะลดลง แต่จะเพิ่มความคมชัด",
|
||||
"Dyslexia font" : "ฟอนต์ Dyslexia ",
|
||||
"Enable dyslexia font" : "เปิด ฟอนต์ Dyslexia",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic เป็นแบบอักษร / แบบอักษรฟรีที่ออกแบบมาเพื่อลดข้อผิดพลาดในการอ่านทั่วไป โดย dyslexia",
|
||||
"Accessibility" : "การเข้าถึง",
|
||||
"Accessibility options for nextcloud" : "ตัวเลือกการเข้าถึงสำหรับ nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "มีตัวเลือกในการเข้าถึงหลายตัว เพื่อให้ง่ายต่อการใช้งาน บน Nextcloud",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "การเข้าถึงสากลเป็นสิ่งสำคัญมากสำหรับเรา เราปฏิบัติตามมาตรฐานเว็บ และตรวจสอบเพื่อให้ทุกอย่างใช้งานได้โดยไม่ต้องใช้เมาส์และซอฟต์แวร์ช่วยเหลือ เช่นโปรแกรมอ่านหน้าจอ เรามุ่งมั่นที่จะปฏิบัติตาม {แนวทาง} แนวทางการเข้าถึงเนื้อหาเว็บ {linkend} 2.1 ในระดับ AA ด้วยธีมความคมชัดสูงแม้ในระดับ AAA",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "หากคุณพบปัญหาใด ๆ อย่าลังเลที่จะรายงานปัญหาเหล่านี้ใน {issuetracker} เครื่องมือติดตามปัญหาของเรา {linkend} และหากคุณต้องการมีส่วนร่วมเข้าร่วม {designteam} ทีมออกแบบของเรา {linkend}"
|
||||
"Enable high contrast mode" : "เปิดโหมดความคมชัดสูง",
|
||||
"A high contrast mode to ease your navigation. Visual quality will be reduced but clarity will be increased." : "โหมดความคมชัดสูง ช่วยเพิ่มความสะดวกในการใช้งานของคุณ คุณภาพของภาพจะลดลง แต่ความคมชัดจะเพิ่มขึ้น",
|
||||
"Dyslexia font" : "ฟอนต์ภาวะเสียการอ่านเข้าใจ",
|
||||
"Enable dyslexia font" : "เปิดฟอนต์ภาวะเสียการอ่านเข้าใจ",
|
||||
"OpenDyslexic is a free typeface/font designed to mitigate some of the common reading errors caused by dyslexia." : "OpenDyslexic เป็นแบบอักษร/ฟอนต์ฟรีที่ออกแบบมาเพื่อลดข้อผิดพลาดทั่วไปในการอ่านที่เกิดจากภาวะเสียการอ่านเข้าใจ",
|
||||
"Accessibility" : "การช่วยการเข้าถึง",
|
||||
"Accessibility options for nextcloud" : "ตัวเลือกการช่วยการเข้าถึงสำหรับ nextcloud",
|
||||
"Provides multiple accessibilities options to ease your use of Nextcloud" : "มีหลายตัวเลือกในการช่วยการเข้าถึงเพื่อช่วยให้การใช้งาน Nextcloud ของคุณง่ายขึ้น",
|
||||
"Universal access is very important to us. We follow web standards and check to make everything usable also without mouse, and assistive software such as screenreaders. We aim to be compliant with the {guidelines}Web Content Accessibility Guidelines{linkend} 2.1 on AA level, with the high contrast theme even on AAA level." : "การเข้าถึงสากลเป็นสิ่งสำคัญมากสำหรับเรา เราปฏิบัติตามมาตรฐานเว็บและตรวจสอบเพื่อให้ทุกอย่างใช้งานได้โดยไม่ต้องใช้เมาส์และซอฟต์แวร์ช่วยเหลือ เช่น โปรแกรมอ่านหน้าจอ เรามุ่งมั่นที่จะปฏิบัติตาม{guidelines}แนวทางการเข้าถึงเนื้อหาเว็บ{linkend} 2.1 ในระดับ AA ด้วยธีมความคมชัดสูงแม้ในระดับ AAA",
|
||||
"If you find any issues, don’t hesitate to report them on {issuetracker}our issue tracker{linkend}. And if you want to get involved, come join {designteam}our design team{linkend}!" : "หากคุณพบปัญหาใด ๆ อย่าลังเลที่จะรายงานปัญหาเหล่านี้ใน{issuetracker}เครื่องมือติดตามปัญหาของเรา{linkend} และหากคุณต้องการมีส่วนร่วม เข้าร่วม{designteam}ทีมออกแบบของเรา{linkend}ได้เลย!"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
@@ -78,6 +78,7 @@ class Application extends App implements IBootstrap {
|
||||
$hash = md5(implode('-', $userValues));
|
||||
$linkToCSS = $urlGenerator->linkToRoute(self::APP_ID . '.accessibility.getCss', ['md5' => $hash]);
|
||||
\OCP\Util::addHeader('link', ['rel' => 'stylesheet', 'media' => '(prefers-color-scheme: dark)', 'href' => $linkToCSS]);
|
||||
\OCP\Util::addScript('accessibility', 'accessibilityoca');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -60,6 +60,7 @@ class JSDataService extends InitialStateProvider {
|
||||
}
|
||||
|
||||
return [
|
||||
'checkMedia' => $user === null,
|
||||
'theme' => $theme,
|
||||
'highcontrast' => $highcontrast,
|
||||
];
|
||||
|
||||
@@ -24,6 +24,11 @@
|
||||
import { loadState } from '@nextcloud/initial-state'
|
||||
|
||||
OCA.Accessibility = loadState('accessibility', 'data')
|
||||
if (OCA.Accessibility.checkMedia && window.matchMedia('(prefers-color-scheme: dark)').matches) {
|
||||
// Overwrite the theme for Guests based on the prefers-color-scheme
|
||||
OCA.Accessibility.theme = 'dark'
|
||||
}
|
||||
|
||||
if (OCA.Accessibility.theme !== false) {
|
||||
document.body.classList.add(`theme--${OCA.Accessibility.theme}`)
|
||||
} else {
|
||||
|
||||
18
apps/admin_audit/composer/composer.lock
generated
Normal file
18
apps/admin_audit/composer/composer.lock
generated
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "d751713988987e9331980363e24189ce",
|
||||
"packages": [],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
}
|
||||
337
apps/admin_audit/composer/composer/InstalledVersions.php
Normal file
337
apps/admin_audit/composer/composer/InstalledVersions.php
Normal file
@@ -0,0 +1,337 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed;
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
5
apps/admin_audit/composer/composer/installed.json
Normal file
5
apps/admin_audit/composer/composer/installed.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"packages": [],
|
||||
"dev": false,
|
||||
"dev-package-names": []
|
||||
}
|
||||
23
apps/admin_audit/composer/composer/installed.php
Normal file
23
apps/admin_audit/composer/composer/installed.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'name' => '__root__',
|
||||
'dev' => false,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
);
|
||||
7
apps/admin_audit/l10n/es_MX.js
Normal file
7
apps/admin_audit/l10n/es_MX.js
Normal file
@@ -0,0 +1,7 @@
|
||||
OC.L10N.register(
|
||||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Auditoría / Registros",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Habilita las opciones de bitácora de Nextcloud tales como registro de acceso a archivos o de acciones delicadas."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
5
apps/admin_audit/l10n/es_MX.json
Normal file
5
apps/admin_audit/l10n/es_MX.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{ "translations": {
|
||||
"Auditing / Logging" : "Auditoría / Registros",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Habilita las opciones de bitácora de Nextcloud tales como registro de acceso a archivos o de acciones delicadas."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
7
apps/admin_audit/l10n/nn_NO.js
Normal file
7
apps/admin_audit/l10n/nn_NO.js
Normal file
@@ -0,0 +1,7 @@
|
||||
OC.L10N.register(
|
||||
"admin_audit",
|
||||
{
|
||||
"Auditing / Logging" : "Revisjon / Logging",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Tilbyr logg eigenskapar for Nextcloud, til dømes tilgang til loggfil eller andre følsame handlingar."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
5
apps/admin_audit/l10n/nn_NO.json
Normal file
5
apps/admin_audit/l10n/nn_NO.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{ "translations": {
|
||||
"Auditing / Logging" : "Revisjon / Logging",
|
||||
"Provides logging abilities for Nextcloud such as logging file accesses or otherwise sensitive actions." : "Tilbyr logg eigenskapar for Nextcloud, til dømes tilgang til loggfil eller andre følsame handlingar."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -50,7 +50,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'permissions',
|
||||
'id',
|
||||
@@ -62,7 +62,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -75,7 +75,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -88,7 +88,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -101,7 +101,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -114,7 +114,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -127,7 +127,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -140,7 +140,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
@@ -153,7 +153,7 @@ class Sharing extends Action {
|
||||
$params,
|
||||
[
|
||||
'itemType',
|
||||
'itemTarget',
|
||||
'path',
|
||||
'itemSource',
|
||||
'shareWith',
|
||||
'permissions',
|
||||
|
||||
18
apps/cloud_federation_api/composer/composer.lock
generated
Normal file
18
apps/cloud_federation_api/composer/composer.lock
generated
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "d751713988987e9331980363e24189ce",
|
||||
"packages": [],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
}
|
||||
@@ -0,0 +1,337 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed;
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"packages": [],
|
||||
"dev": false,
|
||||
"dev-package-names": []
|
||||
}
|
||||
23
apps/cloud_federation_api/composer/composer/installed.php
Normal file
23
apps/cloud_federation_api/composer/composer/installed.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'name' => '__root__',
|
||||
'dev' => false,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -1,8 +1,8 @@
|
||||
OC.L10N.register(
|
||||
"cloud_federation_api",
|
||||
{
|
||||
"Cloud Federation API" : "Cloud Federation API",
|
||||
"Cloud Federation API" : "Cloud-Federation-API",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Erlaubt es, dass Server miteinander kommunizieren und Daten austauschen",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Die Cloud Federation API ermöglicht es Nextcloud-Instanzen miteinander zu kommunizieren und Daten auszutauschen."
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Die Cloud-Federation-API ermöglicht es Nextcloud-Instanzen miteinander zu kommunizieren und Daten auszutauschen."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ "translations": {
|
||||
"Cloud Federation API" : "Cloud Federation API",
|
||||
"Cloud Federation API" : "Cloud-Federation-API",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Erlaubt es, dass Server miteinander kommunizieren und Daten austauschen",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Die Cloud Federation API ermöglicht es Nextcloud-Instanzen miteinander zu kommunizieren und Daten auszutauschen."
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "Die Cloud-Federation-API ermöglicht es Nextcloud-Instanzen miteinander zu kommunizieren und Daten auszutauschen."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
@@ -1,8 +1,8 @@
|
||||
OC.L10N.register(
|
||||
"cloud_federation_api",
|
||||
{
|
||||
"Cloud Federation API" : "Felhő együttműködési alkalmazás fejlesztői felület",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Kommunikáció és adatcsere engedélyezése a felhőszolgáltatások között",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "A felhő együttműködési alkalmazás fejlesztői felület segítségével a különféle Nextcloud példányok képesek egymás között kommunikálni és adatokat cserélni."
|
||||
"Cloud Federation API" : "Felhő föderációs API",
|
||||
"Enable clouds to communicate with each other and exchange data" : "A felhőszolgáltatások egymás közti kommunikációjának és adatcseréjének lehetővé tétele",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "A felhő föderációs API segítségével a különféle Nextcloud példányok képesek lesznek egymás között kommunikálni és adatokat cserélni."
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
{ "translations": {
|
||||
"Cloud Federation API" : "Felhő együttműködési alkalmazás fejlesztői felület",
|
||||
"Enable clouds to communicate with each other and exchange data" : "Kommunikáció és adatcsere engedélyezése a felhőszolgáltatások között",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "A felhő együttműködési alkalmazás fejlesztői felület segítségével a különféle Nextcloud példányok képesek egymás között kommunikálni és adatokat cserélni."
|
||||
"Cloud Federation API" : "Felhő föderációs API",
|
||||
"Enable clouds to communicate with each other and exchange data" : "A felhőszolgáltatások egymás közti kommunikációjának és adatcseréjének lehetővé tétele",
|
||||
"The Cloud Federation API enables various Nextcloud instances to communicate with each other and to exchange data." : "A felhő föderációs API segítségével a különféle Nextcloud példányok képesek lesznek egymás között kommunikálni és adatokat cserélni."
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
18
apps/comments/composer/composer.lock
generated
Normal file
18
apps/comments/composer/composer.lock
generated
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "d751713988987e9331980363e24189ce",
|
||||
"packages": [],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
}
|
||||
337
apps/comments/composer/composer/InstalledVersions.php
Normal file
337
apps/comments/composer/composer/InstalledVersions.php
Normal file
@@ -0,0 +1,337 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed;
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
5
apps/comments/composer/composer/installed.json
Normal file
5
apps/comments/composer/composer/installed.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"packages": [],
|
||||
"dev": false,
|
||||
"dev-package-names": []
|
||||
}
|
||||
23
apps/comments/composer/composer/installed.php
Normal file
23
apps/comments/composer/composer/installed.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'name' => '__root__',
|
||||
'dev' => false,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
);
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -1,4 +1,4 @@
|
||||
!function(e){var t={};function n(o){if(t[o])return t[o].exports;var r=t[o]={i:o,l:!1,exports:{}};return e[o].call(r.exports,r,r.exports,n),r.l=!0,r.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var r in e)n.d(o,r,function(t){return e[t]}.bind(null,r));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/js/",n(n.s=708)}({708:function(e,n){
|
||||
!function(e){var n={};function t(r){if(n[r])return n[r].exports;var o=n[r]={i:r,l:!1,exports:{}};return e[r].call(o.exports,o,o.exports,t),o.l=!0,o.exports}t.m=e,t.c=n,t.d=function(e,n,r){t.o(e,n)||Object.defineProperty(e,n,{enumerable:!0,get:r})},t.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},t.t=function(e,n){if(1&n&&(e=t(e)),8&n)return e;if(4&n&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(t.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&n&&"string"!=typeof e)for(var o in e)t.d(r,o,function(n){return e[n]}.bind(null,o));return r},t.n=function(e){var n=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(n,"a",n),n},t.o=function(e,n){return Object.prototype.hasOwnProperty.call(e,n)},t.p="/js/",t(t.s=708)}({708:function(e,n){function r(e,n,t,r,o,i,u){try{var c=e[i](u),a=c.value}catch(e){return void t(e)}c.done?n(a):Promise.resolve(a).then(r,o)}
|
||||
/**
|
||||
* @copyright Copyright (c) 2020 John Molakvoæ <skjnldsv@protonmail.com>
|
||||
*
|
||||
@@ -20,5 +20,5 @@
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
let o=null;const r=new OCA.Files.Sidebar.Tab({id:"comments",name:t("comments","Comments"),icon:"icon-comment",async mount(e,t,n){o&&o.$destroy(),o=new OCA.Comments.View("files",{parent:n}),await o.update(t.id),o.$mount(e)},update(e){o.update(e.id)},destroy(){o.$destroy(),o=null},scrollBottomReached(){o.onScrollBottomReached()}});window.addEventListener("DOMContentLoaded",(function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(r)}))}});
|
||||
var o=null,i=new OCA.Files.Sidebar.Tab({id:"comments",name:t("comments","Comments"),icon:"icon-comment",mount:function(e,n,t){return(i=regeneratorRuntime.mark((function r(){return regeneratorRuntime.wrap((function(r){for(;;)switch(r.prev=r.next){case 0:return o&&o.$destroy(),o=new OCA.Comments.View("files",{parent:t}),r.next=4,o.update(n.id);case 4:o.$mount(e);case 5:case"end":return r.stop()}}),r)})),function(){var e=this,n=arguments;return new Promise((function(t,o){var u=i.apply(e,n);function c(e){r(u,t,o,c,a,"next",e)}function a(e){r(u,t,o,c,a,"throw",e)}c(void 0)}))})();var i},update:function(e){o.update(e.id)},destroy:function(){o.$destroy(),o=null},scrollBottomReached:function(){o.onScrollBottomReached()}});window.addEventListener("DOMContentLoaded",(function(){OCA.Files&&OCA.Files.Sidebar&&OCA.Files.Sidebar.registerTab(i)}))}});
|
||||
//# sourceMappingURL=comments-tab.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -44,5 +44,5 @@ window.OCA.Comments=OCA.Comments},432:function(e,n){
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
OCA.Comments||(OCA.Comments={})},433:function(e,n){var t;t=Handlebars.template,(OCA.Comments.Templates=OCA.Comments.Templates||{}).filesplugin=t({compiler:[8,">= 4.3.0"],main:function(e,n,t,o,i){var s,r=null!=n?n:e.nullContext||{},a=e.hooks.helperMissing,l=e.escapeExpression,m=e.lookupProperty||function(e,n){if(Object.prototype.hasOwnProperty.call(e,n))return e[n]};return'<a class="action action-comment permanent" title="'+l("function"==typeof(s=null!=(s=m(t,"countMessage")||(null!=n?m(n,"countMessage"):n))?s:a)?s.call(r,{name:"countMessage",hash:{},data:i,loc:{start:{line:1,column:50},end:{line:1,column:66}}}):s)+'" href="#">\n\t<img class="svg" src="'+l("function"==typeof(s=null!=(s=m(t,"iconUrl")||(null!=n?m(n,"iconUrl"):n))?s:a)?s.call(r,{name:"iconUrl",hash:{},data:i,loc:{start:{line:2,column:23},end:{line:2,column:34}}}):s)+'"/>\n</a>\n'},useData:!0})},434:function(e,o){_.extend(OC.Files.Client,{PROPERTY_COMMENTS_UNREAD:"{"+OC.Files.Client.NS_OWNCLOUD+"}comments-unread"}),OCA.Comments=_.extend({},OCA.Comments),OCA.Comments||(OCA.Comments={}),OCA.Comments.FilesPlugin={ignoreLists:["trashbin","files.public"],_formatCommentCount:e=>OCA.Comments.Templates.filesplugin({count:e,countMessage:n("comments","%n unread comment","%n unread comments",e),iconUrl:OC.imagePath("core","actions/comment")}),attach(e){const o=this;if(this.ignoreLists.indexOf(e.id)>=0)return;const i=e._getWebdavProperties;e._getWebdavProperties=function(){const e=i.apply(this,arguments);return e.push(OC.Files.Client.PROPERTY_COMMENTS_UNREAD),e},e.filesClient.addFileInfoParser((function(e){const n={},t=e.propStat[0].properties[OC.Files.Client.PROPERTY_COMMENTS_UNREAD];return _.isUndefined(t)||""===t||(n.commentsUnread=parseInt(t,10)),n})),e.$el.addClass("has-comments");const s=e._createRow;e._createRow=function(e){const n=s.apply(this,arguments);return e.commentsUnread&&n.attr("data-comments-unread",e.commentsUnread),n},e.fileActions.registerAction({name:"Comment",displayName(e){if(e&&e.$file){const t=parseInt(e.$file.data("comments-unread"),10);if(t>=0)return n("comments","1 new comment","{unread} new comments",t,{unread:t})}return t("comments","Comment")},mime:"all",order:-140,iconClass:"icon-comment",permissions:OC.PERMISSION_READ,type:OCA.Files.FileActions.TYPE_INLINE,render(e,n,t){const i=t.$file.data("comments-unread");if(i){const e=$(o._formatCommentCount(i));return t.$file.find("a.name>span.fileactions").append(e),e}return""},actionHandler(e,n){n.$file.find(".action-comment").tooltip("hide"),OCA.Files.Sidebar.setActiveTab("comments"),OCA.Files.Sidebar.open("/"+e)}});const r=e.elementToFile;e.elementToFile=function(e){const n=r.apply(this,arguments),t=e.data("comments-unread");return t&&(n.commentsUnread=t),n}}},OC.Plugins.register("OCA.Files.FileList",OCA.Comments.FilesPlugin)},435:function(e,n){OCA.Comments.ActivityTabViewPlugin={prepareModelForDisplay(e,n,t){if("comments"===e.get("app")&&"comments"===e.get("type")&&"ActivityTabView"===t&&(n.addClass("comment"),e.get("message")&&this._isLong(e.get("message")))){n.addClass("collapsed");const e=$("<div>").addClass("message-overlay");n.find(".activitymessage").after(e),n.on("click",this._onClickCollapsedComment)}},_onClickCollapsedComment(e){let n=$(e.target);n.is(".comment")||(n=n.closest(".comment")),n.removeClass("collapsed")},_isLong:e=>e.length>250||(e.match(/\n/g)||[]).length>1},OC.Plugins.register("OCA.Activity.RenderingPlugins",OCA.Comments.ActivityTabViewPlugin)}});
|
||||
OCA.Comments||(OCA.Comments={})},433:function(e,n){function t(e){return(t="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e})(e)}var o;o=Handlebars.template,(OCA.Comments.Templates=OCA.Comments.Templates||{}).filesplugin=o({compiler:[8,">= 4.3.0"],main:function(e,n,o,i,r){var s,a=null!=n?n:e.nullContext||{},l=e.hooks.helperMissing,m=e.escapeExpression,c=e.lookupProperty||function(e,n){if(Object.prototype.hasOwnProperty.call(e,n))return e[n]};return'<a class="action action-comment permanent" title="'+m("function"===t(s=null!=(s=c(o,"countMessage")||(null!=n?c(n,"countMessage"):n))?s:l)?s.call(a,{name:"countMessage",hash:{},data:r,loc:{start:{line:1,column:50},end:{line:1,column:66}}}):s)+'" href="#">\n\t<img class="svg" src="'+m("function"===t(s=null!=(s=c(o,"iconUrl")||(null!=n?c(n,"iconUrl"):n))?s:l)?s.call(a,{name:"iconUrl",hash:{},data:r,loc:{start:{line:2,column:23},end:{line:2,column:34}}}):s)+'"/>\n</a>\n'},useData:!0})},434:function(e,o){_.extend(OC.Files.Client,{PROPERTY_COMMENTS_UNREAD:"{"+OC.Files.Client.NS_OWNCLOUD+"}comments-unread"}),OCA.Comments=_.extend({},OCA.Comments),OCA.Comments||(OCA.Comments={}),OCA.Comments.FilesPlugin={ignoreLists:["trashbin","files.public"],_formatCommentCount:function(e){return OCA.Comments.Templates.filesplugin({count:e,countMessage:n("comments","%n unread comment","%n unread comments",e),iconUrl:OC.imagePath("core","actions/comment")})},attach:function(e){var o=this;if(!(this.ignoreLists.indexOf(e.id)>=0)){var i=e._getWebdavProperties;e._getWebdavProperties=function(){var e=i.apply(this,arguments);return e.push(OC.Files.Client.PROPERTY_COMMENTS_UNREAD),e},e.filesClient.addFileInfoParser((function(e){var n={},t=e.propStat[0].properties[OC.Files.Client.PROPERTY_COMMENTS_UNREAD];return _.isUndefined(t)||""===t||(n.commentsUnread=parseInt(t,10)),n})),e.$el.addClass("has-comments");var r=e._createRow;e._createRow=function(e){var n=r.apply(this,arguments);return e.commentsUnread&&n.attr("data-comments-unread",e.commentsUnread),n},e.fileActions.registerAction({name:"Comment",displayName:function(e){if(e&&e.$file){var o=parseInt(e.$file.data("comments-unread"),10);if(o>=0)return n("comments","1 new comment","{unread} new comments",o,{unread:o})}return t("comments","Comment")},mime:"all",order:-140,iconClass:"icon-comment",permissions:OC.PERMISSION_READ,type:OCA.Files.FileActions.TYPE_INLINE,render:function(e,n,t){var i=t.$file.data("comments-unread");if(i){var r=$(o._formatCommentCount(i));return t.$file.find("a.name>span.fileactions").append(r),r}return""},actionHandler:function(e,n){n.$file.find(".action-comment").tooltip("hide"),OCA.Files.Sidebar.setActiveTab("comments"),OCA.Files.Sidebar.open(n.dir+"/"+e)}});var s=e.elementToFile;e.elementToFile=function(e){var n=s.apply(this,arguments),t=e.data("comments-unread");return t&&(n.commentsUnread=t),n}}}},OC.Plugins.register("OCA.Files.FileList",OCA.Comments.FilesPlugin)},435:function(e,n){OCA.Comments.ActivityTabViewPlugin={prepareModelForDisplay:function(e,n,t){if("comments"===e.get("app")&&"comments"===e.get("type")&&"ActivityTabView"===t&&(n.addClass("comment"),e.get("message")&&this._isLong(e.get("message")))){n.addClass("collapsed");var o=$("<div>").addClass("message-overlay");n.find(".activitymessage").after(o),n.on("click",this._onClickCollapsedComment)}},_onClickCollapsedComment:function(e){var n=$(e.target);n.is(".comment")||(n=n.closest(".comment")),n.removeClass("collapsed")},_isLong:function(e){return e.length>250||(e.match(/\n/g)||[]).length>1}},OC.Plugins.register("OCA.Activity.RenderingPlugins",OCA.Comments.ActivityTabViewPlugin)}});
|
||||
//# sourceMappingURL=comments.js.map
|
||||
File diff suppressed because one or more lines are too long
@@ -21,8 +21,8 @@ OC.L10N.register(
|
||||
"No more messages" : "لامزيد من الرسائل",
|
||||
"Retry" : "أعد المحاولة",
|
||||
"Unable to load the comments list" : "تعذر تحميل قائمة التعليقات",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 تعليق جديد","1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
|
||||
"Comment" : "تعليق",
|
||||
"An error occurred while trying to edit the comment" : "حدث خطأ أثناء محاولة تعديل التعليق",
|
||||
"Comment deleted" : "التعليق حُذف",
|
||||
|
||||
@@ -19,8 +19,8 @@
|
||||
"No more messages" : "لامزيد من الرسائل",
|
||||
"Retry" : "أعد المحاولة",
|
||||
"Unable to load the comments list" : "تعذر تحميل قائمة التعليقات",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n تعليق غير مقروء","%n تعليق غير مقروء","تعليقان غير مقروءة","%n تعليقات غير مقروء","%n تعليق غير مقروء","%n تعليق غير مقروء"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 تعليق جديد","1 تعليق جديد","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة","{unread} تعليقات جديدة"],
|
||||
"Comment" : "تعليق",
|
||||
"An error occurred while trying to edit the comment" : "حدث خطأ أثناء محاولة تعديل التعليق",
|
||||
"Comment deleted" : "التعليق حُذف",
|
||||
|
||||
@@ -20,7 +20,7 @@ OC.L10N.register(
|
||||
"No comments yet, start the conversation!" : "Még nincsenek hozzászólások, kezdje el a beszélgetést!",
|
||||
"No more messages" : "Nincs több üzenet",
|
||||
"Retry" : "Újra",
|
||||
"Unable to load the comments list" : "A megjegyzések listájának betöltése sikertelen",
|
||||
"Unable to load the comments list" : "A hozzászólások betöltése sikertelen",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n olvasatlan hozzászólás","%n olvasatlan hozzászólás"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 új hozzászólás","{unread} új hozzászólás"],
|
||||
"Comment" : "Hozzászólás",
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
"No comments yet, start the conversation!" : "Még nincsenek hozzászólások, kezdje el a beszélgetést!",
|
||||
"No more messages" : "Nincs több üzenet",
|
||||
"Retry" : "Újra",
|
||||
"Unable to load the comments list" : "A megjegyzések listájának betöltése sikertelen",
|
||||
"Unable to load the comments list" : "A hozzászólások betöltése sikertelen",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n olvasatlan hozzászólás","%n olvasatlan hozzászólás"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["1 új hozzászólás","{unread} új hozzászólás"],
|
||||
"Comment" : "Hozzászólás",
|
||||
|
||||
@@ -15,7 +15,7 @@ OC.L10N.register(
|
||||
"Delete comment" : "Dzēst komentāru",
|
||||
"No comments yet, start the conversation!" : "Vēl nav komentāru, uzsāciet sarunu!",
|
||||
"Retry" : "Mēģināt vēlreiz",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nelasīti komentāri","%n nelasīti komentāri"],
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nelasīti komentāri","%n nelasīti komentāri","%n nelasīti komentāri"],
|
||||
"Comment" : "Komentārs",
|
||||
"New comment …" : "Jauns komentārs...",
|
||||
"Post" : "Pievienot",
|
||||
|
||||
@@ -13,7 +13,7 @@
|
||||
"Delete comment" : "Dzēst komentāru",
|
||||
"No comments yet, start the conversation!" : "Vēl nav komentāru, uzsāciet sarunu!",
|
||||
"Retry" : "Mēģināt vēlreiz",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nelasīti komentāri","%n nelasīti komentāri"],
|
||||
"_%n unread comment_::_%n unread comments_" : ["%n nelasīti komentāri","%n nelasīti komentāri","%n nelasīti komentāri"],
|
||||
"Comment" : "Komentārs",
|
||||
"New comment …" : "Jauns komentārs...",
|
||||
"Post" : "Pievienot",
|
||||
|
||||
@@ -12,7 +12,7 @@ OC.L10N.register(
|
||||
"<strong>Comments</strong> for files" : "<strong>Komentáre</strong> pre súbory",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Boli ste spomenutý v \"{file}\", v komentári používateľom ktorý bol už vymazaný",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} vás spomenul v komentári k “{file}”",
|
||||
"Files app plugin to add comments to files" : "Plugin súborovej aplikácie ktorý umožňuje pridávať komentáre k súborom",
|
||||
"Files app plugin to add comments to files" : "Zásuvný modul aplikácie súborov, ktorý umožňuje súborom pridávať komentáre",
|
||||
"Edit comment" : "Upraviť komentár",
|
||||
"Delete comment" : "Zmazať komentár",
|
||||
"Cancel edit" : "Zrušiť upravovanie",
|
||||
|
||||
@@ -10,7 +10,7 @@
|
||||
"<strong>Comments</strong> for files" : "<strong>Komentáre</strong> pre súbory",
|
||||
"You were mentioned on “{file}”, in a comment by a user that has since been deleted" : "Boli ste spomenutý v \"{file}\", v komentári používateľom ktorý bol už vymazaný",
|
||||
"{user} mentioned you in a comment on “{file}”" : "{user} vás spomenul v komentári k “{file}”",
|
||||
"Files app plugin to add comments to files" : "Plugin súborovej aplikácie ktorý umožňuje pridávať komentáre k súborom",
|
||||
"Files app plugin to add comments to files" : "Zásuvný modul aplikácie súborov, ktorý umožňuje súborom pridávať komentáre",
|
||||
"Edit comment" : "Upraviť komentár",
|
||||
"Delete comment" : "Zmazať komentár",
|
||||
"Cancel edit" : "Zrušiť upravovanie",
|
||||
|
||||
@@ -2,23 +2,24 @@ OC.L10N.register(
|
||||
"comments",
|
||||
{
|
||||
"Comments" : "ความคิดเห็น",
|
||||
"You commented" : "คุณได้แสดงความคิดเห็นแล้ว",
|
||||
"%1$s commented" : "%1$s ได้ถูกแสดงความคิดเห็น",
|
||||
"You commented" : "คุณได้แสดงความคิดเห็น",
|
||||
"%1$s commented" : "%1$s ได้แสดงความคิดเห็น",
|
||||
"You commented on %1$s" : "คุณได้แสดงความคิดเห็นบน %1$s",
|
||||
"%1$s commented on %2$s" : "%1$s ได้ถูกแสดงความคิดเห็นบน %2$s",
|
||||
"%1$s commented on %2$s" : "%1$s ได้แสดงความคิดเห็นบน %2$s",
|
||||
"Edit comment" : "แก้ไขความคิดเห็น",
|
||||
"Delete comment" : "ลบความคิดเห็น",
|
||||
"No comments yet, start the conversation!" : "ยังไม่มีความคิดเห็น เพิ่มความเห็นเลย",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%nความเห็นยังไม่อ่าน"],
|
||||
"No comments yet, start the conversation!" : "ยังไม่มีความคิดเห็น เพิ่มความคิดเห็นเลย!",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%nความคิดเห็นที่ยังไม่ได้อ่าน"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["{unread} ความคิดเห็นใหม่"],
|
||||
"Comment" : "แสดงความคิดเห็น",
|
||||
"New comment …" : "ความคิดเห็นใหม่ ...",
|
||||
"Post" : "โพสต์",
|
||||
"Cancel" : "ยกเลิก",
|
||||
"[Deleted user]" : "[ผู้ใช้ถูกลบไปแล้ว]",
|
||||
"[Deleted user]" : "[ผู้ใช้ที่ถูกลบ]",
|
||||
"More comments …" : "ความคิดเห็นอื่นๆ ...",
|
||||
"Save" : "บันทึก",
|
||||
"Allowed characters {count} of {max}" : "อนุญาตให้ใช้ {count} จากทั้งหมด {max} ตัวอักษร",
|
||||
"Error occurred while updating comment with id {id}" : "เกิดข้อผิดพลาดขณะปรับปรุงความเห็น {id}",
|
||||
"Error occurred while posting comment" : "เกิดข้อผิดพลาดขณะส่งความเห็น {id}"
|
||||
"Error occurred while updating comment with id {id}" : "เกิดข้อผิดพลาดขณะอัปเดตความคิดเห็นด้วย id {id}",
|
||||
"Error occurred while posting comment" : "เกิดข้อผิดพลาดขณะโพสต์ความคิดเห็น"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
|
||||
@@ -1,22 +1,23 @@
|
||||
{ "translations": {
|
||||
"Comments" : "ความคิดเห็น",
|
||||
"You commented" : "คุณได้แสดงความคิดเห็นแล้ว",
|
||||
"%1$s commented" : "%1$s ได้ถูกแสดงความคิดเห็น",
|
||||
"You commented" : "คุณได้แสดงความคิดเห็น",
|
||||
"%1$s commented" : "%1$s ได้แสดงความคิดเห็น",
|
||||
"You commented on %1$s" : "คุณได้แสดงความคิดเห็นบน %1$s",
|
||||
"%1$s commented on %2$s" : "%1$s ได้ถูกแสดงความคิดเห็นบน %2$s",
|
||||
"%1$s commented on %2$s" : "%1$s ได้แสดงความคิดเห็นบน %2$s",
|
||||
"Edit comment" : "แก้ไขความคิดเห็น",
|
||||
"Delete comment" : "ลบความคิดเห็น",
|
||||
"No comments yet, start the conversation!" : "ยังไม่มีความคิดเห็น เพิ่มความเห็นเลย",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%nความเห็นยังไม่อ่าน"],
|
||||
"No comments yet, start the conversation!" : "ยังไม่มีความคิดเห็น เพิ่มความคิดเห็นเลย!",
|
||||
"_%n unread comment_::_%n unread comments_" : ["%nความคิดเห็นที่ยังไม่ได้อ่าน"],
|
||||
"_1 new comment_::_{unread} new comments_" : ["{unread} ความคิดเห็นใหม่"],
|
||||
"Comment" : "แสดงความคิดเห็น",
|
||||
"New comment …" : "ความคิดเห็นใหม่ ...",
|
||||
"Post" : "โพสต์",
|
||||
"Cancel" : "ยกเลิก",
|
||||
"[Deleted user]" : "[ผู้ใช้ถูกลบไปแล้ว]",
|
||||
"[Deleted user]" : "[ผู้ใช้ที่ถูกลบ]",
|
||||
"More comments …" : "ความคิดเห็นอื่นๆ ...",
|
||||
"Save" : "บันทึก",
|
||||
"Allowed characters {count} of {max}" : "อนุญาตให้ใช้ {count} จากทั้งหมด {max} ตัวอักษร",
|
||||
"Error occurred while updating comment with id {id}" : "เกิดข้อผิดพลาดขณะปรับปรุงความเห็น {id}",
|
||||
"Error occurred while posting comment" : "เกิดข้อผิดพลาดขณะส่งความเห็น {id}"
|
||||
"Error occurred while updating comment with id {id}" : "เกิดข้อผิดพลาดขณะอัปเดตความคิดเห็นด้วย id {id}",
|
||||
"Error occurred while posting comment" : "เกิดข้อผิดพลาดขณะโพสต์ความคิดเห็น"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
@@ -119,7 +119,7 @@
|
||||
context.$file.find('.action-comment').tooltip('hide')
|
||||
// open sidebar in comments section
|
||||
OCA.Files.Sidebar.setActiveTab('comments')
|
||||
OCA.Files.Sidebar.open('/' + fileName)
|
||||
OCA.Files.Sidebar.open(context.dir + '/' + fileName)
|
||||
},
|
||||
})
|
||||
|
||||
|
||||
@@ -89,7 +89,7 @@ describe('OCA.Comments.FilesPlugin tests', function() {
|
||||
expect(sidebarTabStub.calledOnce).toEqual(true);
|
||||
expect(sidebarTabStub.lastCall.args[0]).toEqual('comments');
|
||||
expect(sidebarStub.calledOnce).toEqual(true);
|
||||
expect(sidebarStub.lastCall.args[0]).toEqual('/One.txt');
|
||||
expect(sidebarStub.lastCall.args[0]).toEqual('/subdir/One.txt');
|
||||
});
|
||||
});
|
||||
describe('elementToFile', function() {
|
||||
|
||||
18
apps/contactsinteraction/composer/composer.lock
generated
Normal file
18
apps/contactsinteraction/composer/composer.lock
generated
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "d751713988987e9331980363e24189ce",
|
||||
"packages": [],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
}
|
||||
337
apps/contactsinteraction/composer/composer/InstalledVersions.php
Normal file
337
apps/contactsinteraction/composer/composer/InstalledVersions.php
Normal file
@@ -0,0 +1,337 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed;
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"packages": [],
|
||||
"dev": false,
|
||||
"dev-package-names": []
|
||||
}
|
||||
23
apps/contactsinteraction/composer/composer/installed.php
Normal file
23
apps/contactsinteraction/composer/composer/installed.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'name' => '__root__',
|
||||
'dev' => false,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
);
|
||||
@@ -4,6 +4,6 @@ OC.L10N.register(
|
||||
"Recently contacted" : "Legutóbbi kapcsolatfelvételek",
|
||||
"Contacts Interaction" : "Kapcsolatfelvételek",
|
||||
"Manages interaction between users and contacts" : "A felhasználók és a kapcsolataik közötti interakciót kezeli",
|
||||
"Collect data about user and contacts interactions and provide an address book for the data" : "Adatokat gyűjt a felhasználók és kapcsolataik között interakciókról, és címjegyzéket biztosít az adatokhoz"
|
||||
"Collect data about user and contacts interactions and provide an address book for the data" : "Adatokat gyűjt a felhasználók és kapcsolataik közötti interakciókról, és címjegyzéket biztosít az adatokhoz"
|
||||
},
|
||||
"nplurals=2; plural=(n != 1);");
|
||||
|
||||
@@ -2,6 +2,6 @@
|
||||
"Recently contacted" : "Legutóbbi kapcsolatfelvételek",
|
||||
"Contacts Interaction" : "Kapcsolatfelvételek",
|
||||
"Manages interaction between users and contacts" : "A felhasználók és a kapcsolataik közötti interakciót kezeli",
|
||||
"Collect data about user and contacts interactions and provide an address book for the data" : "Adatokat gyűjt a felhasználók és kapcsolataik között interakciókról, és címjegyzéket biztosít az adatokhoz"
|
||||
"Collect data about user and contacts interactions and provide an address book for the data" : "Adatokat gyűjt a felhasználók és kapcsolataik közötti interakciókról, és címjegyzéket biztosít az adatokhoz"
|
||||
},"pluralForm" :"nplurals=2; plural=(n != 1);"
|
||||
}
|
||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -6,6 +6,7 @@ OC.L10N.register(
|
||||
"Show something" : "Montre quelque chose",
|
||||
"Customize" : "Personnaliser",
|
||||
"Edit widgets" : "Modifier les widgets",
|
||||
"Get more widgets from the App Store" : "Obtenez plus de widgets depuis l'App Store",
|
||||
"Change background image" : "Modifier l’image d'arrière-plan",
|
||||
"Weather service" : "Service météo",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pour votre vie privée, les données météorologiques sont demandées par votre serveur Nextcloud en votre nom afin que le service météo ne reçoive aucune information personnelle.",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"Show something" : "Montre quelque chose",
|
||||
"Customize" : "Personnaliser",
|
||||
"Edit widgets" : "Modifier les widgets",
|
||||
"Get more widgets from the App Store" : "Obtenez plus de widgets depuis l'App Store",
|
||||
"Change background image" : "Modifier l’image d'arrière-plan",
|
||||
"Weather service" : "Service météo",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pour votre vie privée, les données météorologiques sont demandées par votre serveur Nextcloud en votre nom afin que le service météo ne reçoive aucune information personnelle.",
|
||||
|
||||
@@ -6,6 +6,7 @@ OC.L10N.register(
|
||||
"Show something" : "Prikaži nešto",
|
||||
"Customize" : "Uredi",
|
||||
"Edit widgets" : "Uredi widgete",
|
||||
"Get more widgets from the App Store" : "Nabavite više widgeta iz trgovine aplikacijama",
|
||||
"Change background image" : "Promijenite sliku pozadinu",
|
||||
"Weather service" : "Davatelj vremenske prognoze",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Radi zaštite vaše privatnosti, podatke o vremenskoj prognozi zahtijeva vaš Nextcloud poslužitelj u vaše ime kako davatelj vremenske prognoze ne bi primio vaše osobne podatke.",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"Show something" : "Prikaži nešto",
|
||||
"Customize" : "Uredi",
|
||||
"Edit widgets" : "Uredi widgete",
|
||||
"Get more widgets from the App Store" : "Nabavite više widgeta iz trgovine aplikacijama",
|
||||
"Change background image" : "Promijenite sliku pozadinu",
|
||||
"Weather service" : "Davatelj vremenske prognoze",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Radi zaštite vaše privatnosti, podatke o vremenskoj prognozi zahtijeva vaš Nextcloud poslužitelj u vaše ime kako davatelj vremenske prognoze ne bi primio vaše osobne podatke.",
|
||||
|
||||
35
apps/dashboard/l10n/id.js
Normal file
35
apps/dashboard/l10n/id.js
Normal file
@@ -0,0 +1,35 @@
|
||||
OC.L10N.register(
|
||||
"dashboard",
|
||||
{
|
||||
"Dashboard" : "Dasbor",
|
||||
"Dashboard app" : "Aplikasi dasbor",
|
||||
"Show something" : "Tunjukkan sesuatu",
|
||||
"Customize" : "Sesuaikan",
|
||||
"Edit widgets" : "Edit widget",
|
||||
"Get more widgets from the App Store" : "Dapatkan lebih banyak widget dari App Store",
|
||||
"Change background image" : "Ubah gambar latar belakang",
|
||||
"Weather service" : "Layanan cuaca",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Untuk privasi Anda, data cuaca diminta oleh server Nextcloud Anda atas nama Anda sehingga layanan cuaca tidak menerima informasi pribadi.",
|
||||
"Weather data from Met.no" : "Data cuaca dari Met.no",
|
||||
"geocoding with Nominatim" : "Secara khusus, dengan geocoding",
|
||||
"elevation data from OpenTopoData" : "data ketinggian dari OpenTopoData",
|
||||
"Weather" : "Cuaca",
|
||||
"Status" : "Status",
|
||||
"Good morning" : "Selamat pagi",
|
||||
"Good morning, {name}" : "Selamat pagi, {name}",
|
||||
"Good afternoon" : "Selamat siang",
|
||||
"Good afternoon, {name}" : "Selamat siang, {name}",
|
||||
"Good evening" : "Selamat malam",
|
||||
"Good evening, {name}" : "Selamat malam, {name}",
|
||||
"Hello" : "Halo",
|
||||
"Hello, {name}" : "Halo, {name}",
|
||||
"Pick from Files" : "Pilih dari File",
|
||||
"Default images" : "Gambar bawaan",
|
||||
"Plain background" : "Latar belakang polos",
|
||||
"Insert from {productName}" : "Sisipkan dari {productName}",
|
||||
"Get more widgets from the app store" : "Dapatkan lebih banyak widget dari app store",
|
||||
"Good night, {name}" : "Selamat malam, {name}",
|
||||
"Good night" : "Selamat malam",
|
||||
"Pick from files" : "Pilih dari file"
|
||||
},
|
||||
"nplurals=1; plural=0;");
|
||||
33
apps/dashboard/l10n/id.json
Normal file
33
apps/dashboard/l10n/id.json
Normal file
@@ -0,0 +1,33 @@
|
||||
{ "translations": {
|
||||
"Dashboard" : "Dasbor",
|
||||
"Dashboard app" : "Aplikasi dasbor",
|
||||
"Show something" : "Tunjukkan sesuatu",
|
||||
"Customize" : "Sesuaikan",
|
||||
"Edit widgets" : "Edit widget",
|
||||
"Get more widgets from the App Store" : "Dapatkan lebih banyak widget dari App Store",
|
||||
"Change background image" : "Ubah gambar latar belakang",
|
||||
"Weather service" : "Layanan cuaca",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Untuk privasi Anda, data cuaca diminta oleh server Nextcloud Anda atas nama Anda sehingga layanan cuaca tidak menerima informasi pribadi.",
|
||||
"Weather data from Met.no" : "Data cuaca dari Met.no",
|
||||
"geocoding with Nominatim" : "Secara khusus, dengan geocoding",
|
||||
"elevation data from OpenTopoData" : "data ketinggian dari OpenTopoData",
|
||||
"Weather" : "Cuaca",
|
||||
"Status" : "Status",
|
||||
"Good morning" : "Selamat pagi",
|
||||
"Good morning, {name}" : "Selamat pagi, {name}",
|
||||
"Good afternoon" : "Selamat siang",
|
||||
"Good afternoon, {name}" : "Selamat siang, {name}",
|
||||
"Good evening" : "Selamat malam",
|
||||
"Good evening, {name}" : "Selamat malam, {name}",
|
||||
"Hello" : "Halo",
|
||||
"Hello, {name}" : "Halo, {name}",
|
||||
"Pick from Files" : "Pilih dari File",
|
||||
"Default images" : "Gambar bawaan",
|
||||
"Plain background" : "Latar belakang polos",
|
||||
"Insert from {productName}" : "Sisipkan dari {productName}",
|
||||
"Get more widgets from the app store" : "Dapatkan lebih banyak widget dari app store",
|
||||
"Good night, {name}" : "Selamat malam, {name}",
|
||||
"Good night" : "Selamat malam",
|
||||
"Pick from files" : "Pilih dari file"
|
||||
},"pluralForm" :"nplurals=1; plural=0;"
|
||||
}
|
||||
@@ -6,6 +6,7 @@ OC.L10N.register(
|
||||
"Show something" : "Прикажи нешто",
|
||||
"Customize" : "Прилагоди",
|
||||
"Edit widgets" : "Уреди графички контроли",
|
||||
"Get more widgets from the App Store" : "Преземи повеќе графички контроли од продавницата со апликации",
|
||||
"Change background image" : "Промени ја позадинската слика",
|
||||
"Weather service" : "Сервис за временска прогноза",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "За ваша приватност, податоците за времето ги бара вашиот сервер во ваше име, така што метеоролошката служба не добива лични информации.",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"Show something" : "Прикажи нешто",
|
||||
"Customize" : "Прилагоди",
|
||||
"Edit widgets" : "Уреди графички контроли",
|
||||
"Get more widgets from the App Store" : "Преземи повеќе графички контроли од продавницата со апликации",
|
||||
"Change background image" : "Промени ја позадинската слика",
|
||||
"Weather service" : "Сервис за временска прогноза",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "За ваша приватност, податоците за времето ги бара вашиот сервер во ваше име, така што метеоролошката служба не добива лични информации.",
|
||||
|
||||
@@ -6,6 +6,7 @@ OC.L10N.register(
|
||||
"Show something" : "Arata ceva",
|
||||
"Customize" : "Personalizeaza",
|
||||
"Edit widgets" : "Editeaza widget",
|
||||
"Get more widgets from the App Store" : "Obține mai multe widget-uri din App Store",
|
||||
"Change background image" : "Schimba imaginea de fundal",
|
||||
"Weather service" : "Serviciu de vreme",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pentru securitatea ta, datele despre vreme sunt cerute de catre serverul Nextcloud din partea ta pentru ca serviciul de vreme sa nu primeasca date confidentiale.",
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"Show something" : "Arata ceva",
|
||||
"Customize" : "Personalizeaza",
|
||||
"Edit widgets" : "Editeaza widget",
|
||||
"Get more widgets from the App Store" : "Obține mai multe widget-uri din App Store",
|
||||
"Change background image" : "Schimba imaginea de fundal",
|
||||
"Weather service" : "Serviciu de vreme",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pentru securitatea ta, datele despre vreme sunt cerute de catre serverul Nextcloud din partea ta pentru ca serviciul de vreme sa nu primeasca date confidentiale.",
|
||||
|
||||
@@ -6,6 +6,7 @@ OC.L10N.register(
|
||||
"Show something" : "Mustra calicuna cosa",
|
||||
"Customize" : "Personaliza",
|
||||
"Edit widgets" : "Modìfica ordìngios",
|
||||
"Get more widgets from the App Store" : "Otene àteros trastos dae sa butega de is aplicatziones",
|
||||
"Change background image" : "Càmbia immàgine de isfundu",
|
||||
"Weather service" : "Servìtziu de su tempus",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pro sa riservadesa tua, su serbidore Nextcloud rechedet is datos de su tempus pro tene, duncas su servìtziu de su tempus no retzit informatziones personales.",
|
||||
@@ -16,13 +17,17 @@ OC.L10N.register(
|
||||
"Status" : "Istadu",
|
||||
"Good morning" : "Bona die",
|
||||
"Good morning, {name}" : "Bona die, {name}",
|
||||
"Good afternoon" : "Salude",
|
||||
"Good afternoon, {name}" : "Salude, {name}",
|
||||
"Good evening" : "Salude",
|
||||
"Good evening, {name}" : "Salude, {name}",
|
||||
"Hello" : "Salude",
|
||||
"Hello, {name}" : "Salude, {name}",
|
||||
"Pick from Files" : "Sèbera dae archìvios",
|
||||
"Default images" : "Immàgines predefinidas",
|
||||
"Default images" : "Imàgines predefinidas",
|
||||
"Plain background" : "Isfundu simpre",
|
||||
"Insert from {productName}" : "Inserta dae {productName}",
|
||||
"Get more widgets from the app store" : "Otene àteros ordìngios dae sa butega de is aplicatziones",
|
||||
"Get more widgets from the app store" : "Otene àteros trastos dae sa butega de is aplicatziones",
|
||||
"Good night, {name}" : "Bonu note, {name}",
|
||||
"Good night" : "Bonu note",
|
||||
"Pick from files" : "Sèbera dae archìvios"
|
||||
|
||||
@@ -4,6 +4,7 @@
|
||||
"Show something" : "Mustra calicuna cosa",
|
||||
"Customize" : "Personaliza",
|
||||
"Edit widgets" : "Modìfica ordìngios",
|
||||
"Get more widgets from the App Store" : "Otene àteros trastos dae sa butega de is aplicatziones",
|
||||
"Change background image" : "Càmbia immàgine de isfundu",
|
||||
"Weather service" : "Servìtziu de su tempus",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "Pro sa riservadesa tua, su serbidore Nextcloud rechedet is datos de su tempus pro tene, duncas su servìtziu de su tempus no retzit informatziones personales.",
|
||||
@@ -14,13 +15,17 @@
|
||||
"Status" : "Istadu",
|
||||
"Good morning" : "Bona die",
|
||||
"Good morning, {name}" : "Bona die, {name}",
|
||||
"Good afternoon" : "Salude",
|
||||
"Good afternoon, {name}" : "Salude, {name}",
|
||||
"Good evening" : "Salude",
|
||||
"Good evening, {name}" : "Salude, {name}",
|
||||
"Hello" : "Salude",
|
||||
"Hello, {name}" : "Salude, {name}",
|
||||
"Pick from Files" : "Sèbera dae archìvios",
|
||||
"Default images" : "Immàgines predefinidas",
|
||||
"Default images" : "Imàgines predefinidas",
|
||||
"Plain background" : "Isfundu simpre",
|
||||
"Insert from {productName}" : "Inserta dae {productName}",
|
||||
"Get more widgets from the app store" : "Otene àteros ordìngios dae sa butega de is aplicatziones",
|
||||
"Get more widgets from the app store" : "Otene àteros trastos dae sa butega de is aplicatziones",
|
||||
"Good night, {name}" : "Bonu note, {name}",
|
||||
"Good night" : "Bonu note",
|
||||
"Pick from files" : "Sèbera dae archìvios"
|
||||
|
||||
@@ -2,18 +2,32 @@ OC.L10N.register(
|
||||
"dashboard",
|
||||
{
|
||||
"Dashboard" : "Informačný panel",
|
||||
"Dashboard app" : "Applikácia Informačný panel",
|
||||
"Show something" : "Ukáž niečo",
|
||||
"Customize" : "Prispôsobiť",
|
||||
"Edit widgets" : "Upraviť miniaplikácie",
|
||||
"Get more widgets from the App Store" : "Získať viac miniaplikácií z Obchodu s aplikáciami",
|
||||
"Change background image" : "Zmeniť obrázok pozadia",
|
||||
"Weather service" : "Služba počasie",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "V záujme vášho súkromia údaje o počasí vyžaduje váš server Nextcloud vo vašom mene, aby meteorologická služba nedostávala žiadne osobné informácie.",
|
||||
"Weather data from Met.no" : "Dáta počasia z Met.no",
|
||||
"geocoding with Nominatim" : "geokódovanie pomocou Nominatim",
|
||||
"elevation data from OpenTopoData" : "dáta o nadmorskej výške z OpenTopoData",
|
||||
"Weather" : "Počasie",
|
||||
"Status" : "Stav",
|
||||
"Good morning" : "Dobré ráno",
|
||||
"Good morning, {name}" : "Dobré ráno, {name}",
|
||||
"Good afternoon" : "Dobrý večer",
|
||||
"Good afternoon, {name}" : "Dobrý večer, {name}",
|
||||
"Good evening" : "Dobrý večer",
|
||||
"Good evening, {name}" : "Dobrý večer, {name}",
|
||||
"Hello" : "Ahoj",
|
||||
"Hello, {name}" : "Ahoj, {name}",
|
||||
"Pick from Files" : "Vybrať zo súborov",
|
||||
"Default images" : "Predvolené obrázky",
|
||||
"Plain background" : "Obyčajné pozadie",
|
||||
"Insert from {productName}" : "Vložiť z {productName}",
|
||||
"Get more widgets from the app store" : "Získať viac miniaplikácií z Obchodu s aplikáciami",
|
||||
"Good night, {name}" : "Dobrý večer, {name}",
|
||||
"Good night" : "Dobrý večer",
|
||||
"Pick from files" : "Vybrať zo súborov"
|
||||
|
||||
@@ -1,17 +1,31 @@
|
||||
{ "translations": {
|
||||
"Dashboard" : "Informačný panel",
|
||||
"Dashboard app" : "Applikácia Informačný panel",
|
||||
"Show something" : "Ukáž niečo",
|
||||
"Customize" : "Prispôsobiť",
|
||||
"Edit widgets" : "Upraviť miniaplikácie",
|
||||
"Get more widgets from the App Store" : "Získať viac miniaplikácií z Obchodu s aplikáciami",
|
||||
"Change background image" : "Zmeniť obrázok pozadia",
|
||||
"Weather service" : "Služba počasie",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "V záujme vášho súkromia údaje o počasí vyžaduje váš server Nextcloud vo vašom mene, aby meteorologická služba nedostávala žiadne osobné informácie.",
|
||||
"Weather data from Met.no" : "Dáta počasia z Met.no",
|
||||
"geocoding with Nominatim" : "geokódovanie pomocou Nominatim",
|
||||
"elevation data from OpenTopoData" : "dáta o nadmorskej výške z OpenTopoData",
|
||||
"Weather" : "Počasie",
|
||||
"Status" : "Stav",
|
||||
"Good morning" : "Dobré ráno",
|
||||
"Good morning, {name}" : "Dobré ráno, {name}",
|
||||
"Good afternoon" : "Dobrý večer",
|
||||
"Good afternoon, {name}" : "Dobrý večer, {name}",
|
||||
"Good evening" : "Dobrý večer",
|
||||
"Good evening, {name}" : "Dobrý večer, {name}",
|
||||
"Hello" : "Ahoj",
|
||||
"Hello, {name}" : "Ahoj, {name}",
|
||||
"Pick from Files" : "Vybrať zo súborov",
|
||||
"Default images" : "Predvolené obrázky",
|
||||
"Plain background" : "Obyčajné pozadie",
|
||||
"Insert from {productName}" : "Vložiť z {productName}",
|
||||
"Get more widgets from the app store" : "Získať viac miniaplikácií z Obchodu s aplikáciami",
|
||||
"Good night, {name}" : "Dobrý večer, {name}",
|
||||
"Good night" : "Dobrý večer",
|
||||
"Pick from files" : "Vybrať zo súborov"
|
||||
|
||||
@@ -5,25 +5,29 @@ OC.L10N.register(
|
||||
"Dashboard app" : "แอปแดชบอร์ด",
|
||||
"Show something" : "แสดงบางอย่าง",
|
||||
"Customize" : "ปรับแต่ง",
|
||||
"Edit widgets" : "แก้ไข วิดเจ็ต",
|
||||
"Change background image" : "เปลี่ยน รูปภาพ พื้นหลัง",
|
||||
"Weather service" : "บริการ สภาพอากาศ",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "สำหรับความเป็นส่วนตัวของ ข้อมูลสภาพอากาศเป็นการร้องขอในนาม Nextcloud เซิร์ฟเวอร์ ของคุณ ดังนั้นบริการสภาพอากาศจึงไม่ได้รับ หรือจัดเก็บ ข้อมูลส่วนบุคคล",
|
||||
"Edit widgets" : "แก้ไขวิดเจ็ต",
|
||||
"Get more widgets from the App Store" : "เลือกวิดเจ็ตจาก App Store",
|
||||
"Change background image" : "เปลี่ยนรูปภาพพื้นหลัง",
|
||||
"Weather service" : "บริการสภาพอากาศ",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "เพื่อความเป็นส่วนตัวของคุณ ข้อมูลสภาพอากาศถูกขอโดยเซิร์ฟเวอร์ Nextcloud ในนามของคุณ ดังนั้นบริการสภาพอากาศจึงไม่ได้รับข้อมูลส่วนบุคคลใด ๆ",
|
||||
"Weather data from Met.no" : "ข้อมูลสภาพอากาศจาก Met.no",
|
||||
"geocoding with Nominatim" : "พิกัดภูมิศาสตร์ จาก Nominatim",
|
||||
"geocoding with Nominatim" : "พิกัดภูมิศาสตร์จาก Nominatim",
|
||||
"elevation data from OpenTopoData" : "ข้อมูลความสูงจาก OpenTopoData",
|
||||
"Weather" : "สภาพอากาศ",
|
||||
"Status" : "สถานะ",
|
||||
"Good morning" : "อรุณสวัสดิ์",
|
||||
"Good morning, {name}" : "อรุณสวัสดิ์ {name}",
|
||||
"Good afternoon" : "ทิวาสวัสดิ์",
|
||||
"Good afternoon, {name}" : "ทิวาสวัสดิ์ {name}",
|
||||
"Good evening" : "สายัณห์สวัสดิ์",
|
||||
"Good evening, {name}" : "สายัณห์สวัสดิ์ {name}",
|
||||
"Good morning" : "สวัสดีตอนเช้า",
|
||||
"Good morning, {name}" : "สวัสดีตอนเช้า {name}",
|
||||
"Good afternoon" : "สวัสดีตอนบ่าย",
|
||||
"Good afternoon, {name}" : "สวัสดีตอนบ่าย {name}",
|
||||
"Good evening" : "สวัสดีตอนเย็น",
|
||||
"Good evening, {name}" : "สวัสดีตอนเย็น {name}",
|
||||
"Hello" : "สวัสดี",
|
||||
"Hello, {name}" : "สวัสดี {name}",
|
||||
"Pick from Files" : "เลือกจากไฟล์",
|
||||
"Default images" : "รูปภาพเริ่มต้น",
|
||||
"Plain background" : "พื้นหลังธรรมดา",
|
||||
"Plain background" : "พื้นหลังเปล่า",
|
||||
"Insert from {productName}" : "แทรกจาก {productName}",
|
||||
"Get more widgets from the app store" : "เพิ่ม วิดเจ็ต จาก แอปสโตร์",
|
||||
"Get more widgets from the app store" : "เพิ่มวิดเจ็ตจาก App Store",
|
||||
"Good night, {name}" : "ราตรีสวัสดิ์ {name}",
|
||||
"Good night" : "ราตรีสวัสดิ์",
|
||||
"Pick from files" : "เลือกจากไฟล์"
|
||||
|
||||
@@ -3,25 +3,29 @@
|
||||
"Dashboard app" : "แอปแดชบอร์ด",
|
||||
"Show something" : "แสดงบางอย่าง",
|
||||
"Customize" : "ปรับแต่ง",
|
||||
"Edit widgets" : "แก้ไข วิดเจ็ต",
|
||||
"Change background image" : "เปลี่ยน รูปภาพ พื้นหลัง",
|
||||
"Weather service" : "บริการ สภาพอากาศ",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "สำหรับความเป็นส่วนตัวของ ข้อมูลสภาพอากาศเป็นการร้องขอในนาม Nextcloud เซิร์ฟเวอร์ ของคุณ ดังนั้นบริการสภาพอากาศจึงไม่ได้รับ หรือจัดเก็บ ข้อมูลส่วนบุคคล",
|
||||
"Edit widgets" : "แก้ไขวิดเจ็ต",
|
||||
"Get more widgets from the App Store" : "เลือกวิดเจ็ตจาก App Store",
|
||||
"Change background image" : "เปลี่ยนรูปภาพพื้นหลัง",
|
||||
"Weather service" : "บริการสภาพอากาศ",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "เพื่อความเป็นส่วนตัวของคุณ ข้อมูลสภาพอากาศถูกขอโดยเซิร์ฟเวอร์ Nextcloud ในนามของคุณ ดังนั้นบริการสภาพอากาศจึงไม่ได้รับข้อมูลส่วนบุคคลใด ๆ",
|
||||
"Weather data from Met.no" : "ข้อมูลสภาพอากาศจาก Met.no",
|
||||
"geocoding with Nominatim" : "พิกัดภูมิศาสตร์ จาก Nominatim",
|
||||
"geocoding with Nominatim" : "พิกัดภูมิศาสตร์จาก Nominatim",
|
||||
"elevation data from OpenTopoData" : "ข้อมูลความสูงจาก OpenTopoData",
|
||||
"Weather" : "สภาพอากาศ",
|
||||
"Status" : "สถานะ",
|
||||
"Good morning" : "อรุณสวัสดิ์",
|
||||
"Good morning, {name}" : "อรุณสวัสดิ์ {name}",
|
||||
"Good afternoon" : "ทิวาสวัสดิ์",
|
||||
"Good afternoon, {name}" : "ทิวาสวัสดิ์ {name}",
|
||||
"Good evening" : "สายัณห์สวัสดิ์",
|
||||
"Good evening, {name}" : "สายัณห์สวัสดิ์ {name}",
|
||||
"Good morning" : "สวัสดีตอนเช้า",
|
||||
"Good morning, {name}" : "สวัสดีตอนเช้า {name}",
|
||||
"Good afternoon" : "สวัสดีตอนบ่าย",
|
||||
"Good afternoon, {name}" : "สวัสดีตอนบ่าย {name}",
|
||||
"Good evening" : "สวัสดีตอนเย็น",
|
||||
"Good evening, {name}" : "สวัสดีตอนเย็น {name}",
|
||||
"Hello" : "สวัสดี",
|
||||
"Hello, {name}" : "สวัสดี {name}",
|
||||
"Pick from Files" : "เลือกจากไฟล์",
|
||||
"Default images" : "รูปภาพเริ่มต้น",
|
||||
"Plain background" : "พื้นหลังธรรมดา",
|
||||
"Plain background" : "พื้นหลังเปล่า",
|
||||
"Insert from {productName}" : "แทรกจาก {productName}",
|
||||
"Get more widgets from the app store" : "เพิ่ม วิดเจ็ต จาก แอปสโตร์",
|
||||
"Get more widgets from the app store" : "เพิ่มวิดเจ็ตจาก App Store",
|
||||
"Good night, {name}" : "ราตรีสวัสดิ์ {name}",
|
||||
"Good night" : "ราตรีสวัสดิ์",
|
||||
"Pick from files" : "เลือกจากไฟล์"
|
||||
|
||||
@@ -10,7 +10,7 @@ OC.L10N.register(
|
||||
"Change background image" : "變更背景圖片",
|
||||
"Weather service" : "天氣服務",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "為了保護您的隱私,Nextcloud 會代您請求氣象資料,因此天氣服務不會收到您的個人資訊。",
|
||||
"Weather data from Met.no" : "氣象資訊來自 Met。no",
|
||||
"Weather data from Met.no" : "氣象資訊來自 Met.no",
|
||||
"geocoding with Nominatim" : "使用 Nominatim 來進行地理編碼",
|
||||
"elevation data from OpenTopoData" : "來自 OpenTopoData 的海拔資料",
|
||||
"Weather" : "天氣",
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
"Change background image" : "變更背景圖片",
|
||||
"Weather service" : "天氣服務",
|
||||
"For your privacy, the weather data is requested by your Nextcloud server on your behalf so the weather service receives no personal information." : "為了保護您的隱私,Nextcloud 會代您請求氣象資料,因此天氣服務不會收到您的個人資訊。",
|
||||
"Weather data from Met.no" : "氣象資訊來自 Met。no",
|
||||
"Weather data from Met.no" : "氣象資訊來自 Met.no",
|
||||
"geocoding with Nominatim" : "使用 Nominatim 來進行地理編碼",
|
||||
"elevation data from OpenTopoData" : "來自 OpenTopoData 的海拔資料",
|
||||
"Weather" : "天氣",
|
||||
|
||||
@@ -180,20 +180,20 @@ export default {
|
||||
const good = {
|
||||
morning: {
|
||||
generic: t('dashboard', 'Good morning'),
|
||||
withName: t('dashboard', 'Good morning, {name}', { name: this.displayName }),
|
||||
withName: t('dashboard', 'Good morning, {name}', { name: this.displayName }, undefined, { escape: false }),
|
||||
},
|
||||
afternoon: {
|
||||
generic: t('dashboard', 'Good afternoon'),
|
||||
withName: t('dashboard', 'Good afternoon, {name}', { name: this.displayName }),
|
||||
withName: t('dashboard', 'Good afternoon, {name}', { name: this.displayName }, undefined, { escape: false }),
|
||||
},
|
||||
evening: {
|
||||
generic: t('dashboard', 'Good evening'),
|
||||
withName: t('dashboard', 'Good evening, {name}', { name: this.displayName }),
|
||||
withName: t('dashboard', 'Good evening, {name}', { name: this.displayName }, undefined, { escape: false }),
|
||||
},
|
||||
night: {
|
||||
// Don't use "Good night" as it's not a greeting
|
||||
generic: t('dashboard', 'Hello'),
|
||||
withName: t('dashboard', 'Hello, {name}', { name: this.displayName }),
|
||||
withName: t('dashboard', 'Hello, {name}', { name: this.displayName }, undefined, { escape: false }),
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
18
apps/dav/composer/composer.lock
generated
Normal file
18
apps/dav/composer/composer.lock
generated
Normal file
@@ -0,0 +1,18 @@
|
||||
{
|
||||
"_readme": [
|
||||
"This file locks the dependencies of your project to a known state",
|
||||
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
|
||||
"This file is @generated automatically"
|
||||
],
|
||||
"content-hash": "d751713988987e9331980363e24189ce",
|
||||
"packages": [],
|
||||
"packages-dev": [],
|
||||
"aliases": [],
|
||||
"minimum-stability": "stable",
|
||||
"stability-flags": [],
|
||||
"prefer-stable": false,
|
||||
"prefer-lowest": false,
|
||||
"platform": [],
|
||||
"platform-dev": [],
|
||||
"plugin-api-version": "2.1.0"
|
||||
}
|
||||
337
apps/dav/composer/composer/InstalledVersions.php
Normal file
337
apps/dav/composer/composer/InstalledVersions.php
Normal file
@@ -0,0 +1,337 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of Composer.
|
||||
*
|
||||
* (c) Nils Adermann <naderman@naderman.de>
|
||||
* Jordi Boggiano <j.boggiano@seld.be>
|
||||
*
|
||||
* For the full copyright and license information, please view the LICENSE
|
||||
* file that was distributed with this source code.
|
||||
*/
|
||||
|
||||
namespace Composer;
|
||||
|
||||
use Composer\Autoload\ClassLoader;
|
||||
use Composer\Semver\VersionParser;
|
||||
|
||||
/**
|
||||
* This class is copied in every Composer installed project and available to all
|
||||
*
|
||||
* See also https://getcomposer.org/doc/07-runtime.md#installed-versions
|
||||
*
|
||||
* To require it's presence, you can require `composer-runtime-api ^2.0`
|
||||
*/
|
||||
class InstalledVersions
|
||||
{
|
||||
private static $installed;
|
||||
private static $canGetVendors;
|
||||
private static $installedByVendor = array();
|
||||
|
||||
/**
|
||||
* Returns a list of all package names which are present, either by being installed, replaced or provided
|
||||
*
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackages()
|
||||
{
|
||||
$packages = array();
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
$packages[] = array_keys($installed['versions']);
|
||||
}
|
||||
|
||||
if (1 === \count($packages)) {
|
||||
return $packages[0];
|
||||
}
|
||||
|
||||
return array_keys(array_flip(\call_user_func_array('array_merge', $packages)));
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of all package names with a specific type e.g. 'library'
|
||||
*
|
||||
* @param string $type
|
||||
* @return string[]
|
||||
* @psalm-return list<string>
|
||||
*/
|
||||
public static function getInstalledPackagesByType($type)
|
||||
{
|
||||
$packagesByType = array();
|
||||
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
foreach ($installed['versions'] as $name => $package) {
|
||||
if (isset($package['type']) && $package['type'] === $type) {
|
||||
$packagesByType[] = $name;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return $packagesByType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package is installed
|
||||
*
|
||||
* This also returns true if the package name is provided or replaced by another package
|
||||
*
|
||||
* @param string $packageName
|
||||
* @param bool $includeDevRequirements
|
||||
* @return bool
|
||||
*/
|
||||
public static function isInstalled($packageName, $includeDevRequirements = true)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (isset($installed['versions'][$packageName])) {
|
||||
return $includeDevRequirements || empty($installed['versions'][$packageName]['dev_requirement']);
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks whether the given package satisfies a version constraint
|
||||
*
|
||||
* e.g. If you want to know whether version 2.3+ of package foo/bar is installed, you would call:
|
||||
*
|
||||
* Composer\InstalledVersions::satisfies(new VersionParser, 'foo/bar', '^2.3')
|
||||
*
|
||||
* @param VersionParser $parser Install composer/semver to have access to this class and functionality
|
||||
* @param string $packageName
|
||||
* @param string|null $constraint A version constraint to check for, if you pass one you have to make sure composer/semver is required by your package
|
||||
* @return bool
|
||||
*/
|
||||
public static function satisfies(VersionParser $parser, $packageName, $constraint)
|
||||
{
|
||||
$constraint = $parser->parseConstraints($constraint);
|
||||
$provided = $parser->parseConstraints(self::getVersionRanges($packageName));
|
||||
|
||||
return $provided->matches($constraint);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a version constraint representing all the range(s) which are installed for a given package
|
||||
*
|
||||
* It is easier to use this via isInstalled() with the $constraint argument if you need to check
|
||||
* whether a given version of a package is installed, and not just whether it exists
|
||||
*
|
||||
* @param string $packageName
|
||||
* @return string Version constraint usable with composer/semver
|
||||
*/
|
||||
public static function getVersionRanges($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$ranges = array();
|
||||
if (isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
$ranges[] = $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
if (array_key_exists('aliases', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['aliases']);
|
||||
}
|
||||
if (array_key_exists('replaced', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['replaced']);
|
||||
}
|
||||
if (array_key_exists('provided', $installed['versions'][$packageName])) {
|
||||
$ranges = array_merge($ranges, $installed['versions'][$packageName]['provided']);
|
||||
}
|
||||
|
||||
return implode(' || ', $ranges);
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as version, use satisfies or getVersionRanges if you need to know if a given version is present
|
||||
*/
|
||||
public static function getPrettyVersion($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['pretty_version'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['pretty_version'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as reference
|
||||
*/
|
||||
public static function getReference($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!isset($installed['versions'][$packageName]['reference'])) {
|
||||
return null;
|
||||
}
|
||||
|
||||
return $installed['versions'][$packageName]['reference'];
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @param string $packageName
|
||||
* @return string|null If the package is being replaced or provided but is not really installed, null will be returned as install path. Packages of type metapackages also have a null install path.
|
||||
*/
|
||||
public static function getInstallPath($packageName)
|
||||
{
|
||||
foreach (self::getInstalled() as $installed) {
|
||||
if (!isset($installed['versions'][$packageName])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
return isset($installed['versions'][$packageName]['install_path']) ? $installed['versions'][$packageName]['install_path'] : null;
|
||||
}
|
||||
|
||||
throw new \OutOfBoundsException('Package "' . $packageName . '" is not installed');
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array
|
||||
* @psalm-return array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}
|
||||
*/
|
||||
public static function getRootPackage()
|
||||
{
|
||||
$installed = self::getInstalled();
|
||||
|
||||
return $installed[0]['root'];
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw installed.php data for custom implementations
|
||||
*
|
||||
* @deprecated Use getAllRawData() instead which returns all datasets for all autoloaders present in the process. getRawData only returns the first dataset loaded, which may not be what you expect.
|
||||
* @return array[]
|
||||
* @psalm-return array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}
|
||||
*/
|
||||
public static function getRawData()
|
||||
{
|
||||
@trigger_error('getRawData only returns the first dataset loaded, which may not be what you expect. Use getAllRawData() instead which returns all datasets for all autoloaders present in the process.', E_USER_DEPRECATED);
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = include __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
|
||||
return self::$installed;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the raw data of all installed.php which are currently loaded for custom implementations
|
||||
*
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
public static function getAllRawData()
|
||||
{
|
||||
return self::getInstalled();
|
||||
}
|
||||
|
||||
/**
|
||||
* Lets you reload the static array from another file
|
||||
*
|
||||
* This is only useful for complex integrations in which a project needs to use
|
||||
* this class but then also needs to execute another project's autoloader in process,
|
||||
* and wants to ensure both projects have access to their version of installed.php.
|
||||
*
|
||||
* A typical case would be PHPUnit, where it would need to make sure it reads all
|
||||
* the data it needs from this class, then call reload() with
|
||||
* `require $CWD/vendor/composer/installed.php` (or similar) as input to make sure
|
||||
* the project in which it runs can then also use this class safely, without
|
||||
* interference between PHPUnit's dependencies and the project's dependencies.
|
||||
*
|
||||
* @param array[] $data A vendor/composer/installed.php data set
|
||||
* @return void
|
||||
*
|
||||
* @psalm-param array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>} $data
|
||||
*/
|
||||
public static function reload($data)
|
||||
{
|
||||
self::$installed = $data;
|
||||
self::$installedByVendor = array();
|
||||
}
|
||||
|
||||
/**
|
||||
* @return array[]
|
||||
* @psalm-return list<array{root: array{name: string, version: string, reference: string, pretty_version: string, aliases: string[], dev: bool, install_path: string}, versions: array<string, array{dev_requirement: bool, pretty_version?: string, version?: string, aliases?: string[], reference?: string, replaced?: string[], provided?: string[], install_path?: string}>}>
|
||||
*/
|
||||
private static function getInstalled()
|
||||
{
|
||||
if (null === self::$canGetVendors) {
|
||||
self::$canGetVendors = method_exists('Composer\Autoload\ClassLoader', 'getRegisteredLoaders');
|
||||
}
|
||||
|
||||
$installed = array();
|
||||
|
||||
if (self::$canGetVendors) {
|
||||
foreach (ClassLoader::getRegisteredLoaders() as $vendorDir => $loader) {
|
||||
if (isset(self::$installedByVendor[$vendorDir])) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir];
|
||||
} elseif (is_file($vendorDir.'/composer/installed.php')) {
|
||||
$installed[] = self::$installedByVendor[$vendorDir] = require $vendorDir.'/composer/installed.php';
|
||||
if (null === self::$installed && strtr($vendorDir.'/composer', '\\', '/') === strtr(__DIR__, '\\', '/')) {
|
||||
self::$installed = $installed[count($installed) - 1];
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (null === self::$installed) {
|
||||
// only require the installed.php file if this file is loaded from its dumped location,
|
||||
// and not from its source location in the composer/composer package, see https://github.com/composer/composer/issues/9937
|
||||
if (substr(__DIR__, -8, 1) !== 'C') {
|
||||
self::$installed = require __DIR__ . '/installed.php';
|
||||
} else {
|
||||
self::$installed = array();
|
||||
}
|
||||
}
|
||||
$installed[] = self::$installed;
|
||||
|
||||
return $installed;
|
||||
}
|
||||
}
|
||||
5
apps/dav/composer/composer/installed.json
Normal file
5
apps/dav/composer/composer/installed.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"packages": [],
|
||||
"dev": false,
|
||||
"dev-package-names": []
|
||||
}
|
||||
23
apps/dav/composer/composer/installed.php
Normal file
23
apps/dav/composer/composer/installed.php
Normal file
@@ -0,0 +1,23 @@
|
||||
<?php return array(
|
||||
'root' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'name' => '__root__',
|
||||
'dev' => false,
|
||||
),
|
||||
'versions' => array(
|
||||
'__root__' => array(
|
||||
'pretty_version' => 'dev-master',
|
||||
'version' => 'dev-master',
|
||||
'type' => 'library',
|
||||
'install_path' => __DIR__ . '/../',
|
||||
'aliases' => array(),
|
||||
'reference' => 'fb5ee6087bfd1f4cc2f37cda7a7cab7072aaae86',
|
||||
'dev_requirement' => false,
|
||||
),
|
||||
),
|
||||
);
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user