Changes of Revision 44

roundcubemail.spec Changed
x
 
1
@@ -57,7 +57,7 @@
2
 %global basedir %{name}-%{rc_version}%{?dash_rel_suffix}
3
 
4
 Name:           roundcubemail
5
-Version: 1.5.6.2
6
+Version: 1.5.6.3
7
 
8
 Release:        4%{?dot_rel_suffix}%{?dist}
9
 
10
debian.changelog Changed
7
 
1
@@ -1,4 +1,4 @@
2
-roundcubemail (1.5.6.2-1~kolab1) unstable; urgency=low
3
+roundcubemail (1.5.6.3-1~kolab1) unstable; urgency=low
4
 
5
   * New tarball
6
 
7
roundcubemail-1.5.tar.gz/CHANGELOG.md Changed
12
 
1
@@ -2,6 +2,10 @@
2
 
3
 ## Unreleased
4
 
5
+- Enigma: Fix finding of a private key when decrypting a message using GnuPG v2.3
6
+
7
+## Release 1.5.6
8
+
9
 - Fix cross-site scripting (XSS) vulnerability in setting Content-Type/Content-Disposition for attachment preview/download
10
 
11
 ## Release 1.5.5
12
roundcubemail-1.5.tar.gz/composer.lock Changed
188
 
1
@@ -319,20 +319,20 @@
2
         },
3
         {
4
             "name": "ezyang/htmlpurifier",
5
-            "version": "v4.16.0",
6
+            "version": "v4.17.0",
7
             "source": {
8
                 "type": "git",
9
                 "url": "https://github.com/ezyang/htmlpurifier.git",
10
-                "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8"
11
+                "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c"
12
             },
13
             "dist": {
14
                 "type": "zip",
15
-                "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8",
16
-                "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8",
17
+                "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c",
18
+                "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c",
19
                 "shasum": ""
20
             },
21
             "require": {
22
-                "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0"
23
+                "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
24
             },
25
             "require-dev": {
26
                 "cerdic/css-tidy": "^1.7 || ^2.0",
27
@@ -374,9 +374,9 @@
28
             ,
29
             "support": {
30
                 "issues": "https://github.com/ezyang/htmlpurifier/issues",
31
-                "source": "https://github.com/ezyang/htmlpurifier/tree/v4.16.0"
32
+                "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0"
33
             },
34
-            "time": "2022-09-18T07:06:19+00:00"
35
+            "time": "2023-11-17T15:01:25+00:00"
36
         },
37
         {
38
             "name": "guzzlehttp/guzzle",
39
@@ -1875,16 +1875,16 @@
40
         },
41
         {
42
             "name": "pear/crypt_gpg",
43
-            "version": "v1.6.7",
44
+            "version": "v1.6.8",
45
             "source": {
46
                 "type": "git",
47
                 "url": "https://github.com/pear/Crypt_GPG.git",
48
-                "reference": "29c0fbe96d0d4063ecd5c9a4644cb65a7fb7cc4e"
49
+                "reference": "89c661fbd7027f7745c25efd4053552972278bc1"
50
             },
51
             "dist": {
52
                 "type": "zip",
53
-                "url": "https://api.github.com/repos/pear/Crypt_GPG/zipball/29c0fbe96d0d4063ecd5c9a4644cb65a7fb7cc4e",
54
-                "reference": "29c0fbe96d0d4063ecd5c9a4644cb65a7fb7cc4e",
55
+                "url": "https://api.github.com/repos/pear/Crypt_GPG/zipball/89c661fbd7027f7745c25efd4053552972278bc1",
56
+                "reference": "89c661fbd7027f7745c25efd4053552972278bc1",
57
                 "shasum": ""
58
             },
59
             "require": {
60
@@ -1941,7 +1941,7 @@
61
                 "issues": "https://pear.php.net/bugs/search.php?cmd=display&package_name=Crypt_GPG",
62
                 "source": "https://github.com/pear/Crypt_GPG"
63
             },
64
-            "time": "2022-02-16T17:39:00+00:00"
65
+            "time": "2023-11-23T09:15:05+00:00"
66
         },
67
         {
68
             "name": "pear/http_request2",
69
@@ -2774,16 +2774,16 @@
70
         },
71
         {
72
             "name": "sabre/dav",
73
-            "version": "4.4.0",
74
+            "version": "4.5.1",
75
             "source": {
76
                 "type": "git",
77
                 "url": "https://github.com/sabre-io/dav.git",
78
-                "reference": "b65362abc926520eda2c57e219f022a6c288069d"
79
+                "reference": "b29899b675371aee73920165d1dc5a2235aa104b"
80
             },
81
             "dist": {
82
                 "type": "zip",
83
-                "url": "https://api.github.com/repos/sabre-io/dav/zipball/b65362abc926520eda2c57e219f022a6c288069d",
84
-                "reference": "b65362abc926520eda2c57e219f022a6c288069d",
85
+                "url": "https://api.github.com/repos/sabre-io/dav/zipball/b29899b675371aee73920165d1dc5a2235aa104b",
86
+                "reference": "b29899b675371aee73920165d1dc5a2235aa104b",
87
                 "shasum": ""
88
             },
89
             "require": {
90
@@ -2806,11 +2806,11 @@
91
                 "sabre/xml": "^2.0.1"
92
             },
93
             "require-dev": {
94
-                "evert/phpdoc-md": "~0.1.0",
95
-                "friendsofphp/php-cs-fixer": "^2.17.1",
96
-                "monolog/monolog": "^1.18",
97
-                "phpstan/phpstan": "^0.12",
98
-                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0"
99
+                "friendsofphp/php-cs-fixer": "^2.19",
100
+                "monolog/monolog": "^1.27",
101
+                "phpstan/phpstan": "^0.12 || ^1.0",
102
+                "phpstan/phpstan-phpunit": "^1.0",
103
+                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6"
104
             },
105
             "suggest": {
106
                 "ext-curl": "*",
107
@@ -2824,10 +2824,7 @@
108
             "type": "library",
109
             "autoload": {
110
                 "psr-4": {
111
-                    "Sabre\\DAV\\": "lib/DAV/",
112
-                    "Sabre\\CalDAV\\": "lib/CalDAV/",
113
-                    "Sabre\\DAVACL\\": "lib/DAVACL/",
114
-                    "Sabre\\CardDAV\\": "lib/CardDAV/"
115
+                    "Sabre\\": "lib/"
116
                 }
117
             },
118
             "notification-url": "https://packagist.org/downloads/",
119
@@ -2856,7 +2853,7 @@
120
                 "issues": "https://github.com/sabre-io/dav/issues",
121
                 "source": "https://github.com/fruux/sabre-dav"
122
             },
123
-            "time": "2022-06-27T09:07:55+00:00"
124
+            "time": "2023-11-23T04:33:31+00:00"
125
         },
126
         {
127
             "name": "sabre/event",
128
@@ -3046,16 +3043,16 @@
129
         },
130
         {
131
             "name": "sabre/vobject",
132
-            "version": "4.5.3",
133
+            "version": "4.5.4",
134
             "source": {
135
                 "type": "git",
136
                 "url": "https://github.com/sabre-io/vobject.git",
137
-                "reference": "fe6d9183154ed6f2f913f2b568d3d51d8ae9b308"
138
+                "reference": "a6d53a3e5bec85ed3dd78868b7de0f5b4e12f772"
139
             },
140
             "dist": {
141
                 "type": "zip",
142
-                "url": "https://api.github.com/repos/sabre-io/vobject/zipball/fe6d9183154ed6f2f913f2b568d3d51d8ae9b308",
143
-                "reference": "fe6d9183154ed6f2f913f2b568d3d51d8ae9b308",
144
+                "url": "https://api.github.com/repos/sabre-io/vobject/zipball/a6d53a3e5bec85ed3dd78868b7de0f5b4e12f772",
145
+                "reference": "a6d53a3e5bec85ed3dd78868b7de0f5b4e12f772",
146
                 "shasum": ""
147
             },
148
             "require": {
149
@@ -3146,7 +3143,7 @@
150
                 "issues": "https://github.com/sabre-io/vobject/issues",
151
                 "source": "https://github.com/fruux/sabre-vobject"
152
             },
153
-            "time": "2023-01-22T12:21:50+00:00"
154
+            "time": "2023-11-09T12:54:37+00:00"
155
         },
156
         {
157
             "name": "sabre/xml",
158
@@ -4790,16 +4787,16 @@
159
         },
160
         {
161
             "name": "phpstan/phpstan",
162
-            "version": "1.10.41",
163
+            "version": "1.10.44",
164
             "source": {
165
                 "type": "git",
166
                 "url": "https://github.com/phpstan/phpstan.git",
167
-                "reference": "c6174523c2a69231df55bdc65b61655e72876d76"
168
+                "reference": "bf84367c53a23f759513985c54ffe0d0c249825b"
169
             },
170
             "dist": {
171
                 "type": "zip",
172
-                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c6174523c2a69231df55bdc65b61655e72876d76",
173
-                "reference": "c6174523c2a69231df55bdc65b61655e72876d76",
174
+                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/bf84367c53a23f759513985c54ffe0d0c249825b",
175
+                "reference": "bf84367c53a23f759513985c54ffe0d0c249825b",
176
                 "shasum": ""
177
             },
178
             "require": {
179
@@ -4848,7 +4845,7 @@
180
                     "type": "tidelift"
181
                 }
182
             ,
183
-            "time": "2023-11-05T12:57:57+00:00"
184
+            "time": "2023-11-21T16:30:46+00:00"
185
         },
186
         {
187
             "name": "phpunit/php-code-coverage",
188
roundcubemail-1.5.tar.gz/plugins/enigma/lib/enigma_driver_gnupg.php Changed
10
 
1
@@ -333,7 +333,7 @@
2
         $list = $this->list_keys($keyid);
3
 
4
         if (is_array($list)) {
5
-            return $listkey($list);
6
+            return array_first($list);
7
         }
8
 
9
         // error
10
roundcubemail-1.5.tar.gz/plugins/enigma/lib/enigma_ui.php Changed
50
 
1
@@ -154,27 +154,26 @@
2
      */
3
     function password_prompt($status, $params = )
4
     {
5
-        $data = $status->getData('missing');
6
+        $data = array_merge($status->getData('missing') ?: , $status->getData('bad') ?: );
7
+
8
+        // A message can be encrypted with multiple private keys,
9
+        // find the one that exists in the keyring
10
+        foreach ($data as $keyid => $username) {
11
+            $key = $this->enigma->engine->get_key($keyid);
12
+            if ($key && $key->is_private()) {
13
+                if ($key->name && strpos($username, $keyid) !== false) {
14
+                    $data$keyid = $key->name;
15
+                }
16
 
17
-        if (empty($data)) {
18
-            $data = $status->getData('bad');
19
+                break;
20
+            }
21
         }
22
 
23
-        $keyid = key($data);
24
         $data  = 
25
-            'keyid' => !empty($params'keyid') ? $params'keyid' : $keyid,
26
+            'keyid' => $keyid,
27
             'user'  => $data$keyid
28
         ;
29
 
30
-        // With GnuPG 2.1 user name may not be specified (e.g. on private
31
-        // key export), we'll get the key information and set the name appropriately
32
-        if ($keyid && !empty($params'keyid') && strpos($data'user', $keyid) !== false) {
33
-            $key = $this->enigma->engine->get_key($params'keyid');
34
-            if ($key && $key->name) {
35
-                $data'user' = $key->name;
36
-            }
37
-        }
38
-
39
         if (!empty($params)) {
40
             $data = array_merge($params, $data);
41
         }
42
@@ -505,7 +504,6 @@
43
                                 'action'       => '?',
44
                                 'iframe'       => true,
45
                                 'nolock'       => true,
46
-                                'keyid'        => $keyid,
47
                         );
48
                         fclose($fp);
49
                         $this->rc->output->send('iframe');
50
roundcubemail-1.5.tar.gz/plugins/kolab_auth/kolab_auth.php Changed
14
 
1
@@ -506,9 +506,9 @@
2
         }
3
 
4
         if (!empty($imap_attr) && !empty($record$imap_attr)) {
5
-            $default_host = $rcmail->config->get('default_host');
6
-            if (!empty($default_host)) {
7
-                rcube::write_log("errors", "Both default host and kolab_auth_mailhost set. Incompatible.");
8
+            $imap_host = $rcmail->config->get('imap_host', $rcmail->config->get('default_host'));
9
+            if (!empty($imap_host)) {
10
+                rcube::write_log("errors", "Both imap host and kolab_auth_mailhost set. Incompatible.");
11
             } else {
12
                 $args'host' = "tls://" . $record$imap_attr;
13
             }
14
roundcubemail-1.5.tar.gz/plugins/kolab_config/kolab_config.php Changed
38
 
1
@@ -31,6 +31,7 @@
2
     public $task = 'utils|mail';
3
 
4
     private $config;
5
+    private $loaded = false;
6
     private $dicts = array();
7
 
8
     const O_TYPE = 'dictionary';
9
@@ -139,9 +140,9 @@
10
      * Load dictionary config objects from Kolab storage
11
      *
12
      * @param string The language (2 chars) to load
13
-     * @param boolean Only load objects from default folder
14
+     * @param bool   Only load objects from default folder
15
      *
16
-     * @return array Dictionary object as hash array
17
+     * @return array|null Dictionary object as hash array
18
      */
19
     private function read_dictionary($lang, $default = false)
20
     {
21
@@ -153,7 +154,7 @@
22
 
23
         foreach ($this->config->get_objects($query, $default, null, 100) as $object) {
24
             if ($object'language' == $lang || $object'language' == 'XX') {
25
-                if (is_array($this->dicts$lang))
26
+                if (isset($this->dicts$lang) && is_array($this->dicts$lang))
27
                     $this->dicts$lang'e' = array_merge((array)$this->dicts$lang'e', $object'e');
28
                 else
29
                     $this->dicts$lang = $object;
30
@@ -167,6 +168,6 @@
31
             }
32
         }
33
 
34
-        return $this->dicts$lang;
35
+        return $this->dicts$lang ?? null;
36
     }
37
 }
38
roundcubemail-1.5.tar.gz/plugins/libcalendaring/lib/libcalendaring_itip.php Changed
19
 
1
@@ -261,7 +261,7 @@
2
             }
3
         }
4
         else if ($method == 'CANCEL') {
5
-            if ($event'recurrence') {
6
+            if (!empty($event'recurrence')) {
7
                 unset($event'recurrence''EXCEPTIONS');
8
             }
9
         }
10
@@ -474,7 +474,7 @@
11
                             }
12
                             $value = $existing$key instanceof DateTimeInterface ? $existing$key->format('c') : $existing$key;
13
                             $num++;
14
-                            $got += intval($value == $event$key);
15
+                            $got += intval($value == ($event$key ?? null));
16
                         }
17
                     }
18
 
19
roundcubemail-1.5.tar.gz/plugins/libkolab/SQL/mysql.initial.sql Changed
18
 
1
@@ -7,9 +7,8 @@
2
   `resource` VARCHAR(255) BINARY NOT NULL,
3
   `type` VARCHAR(32) NOT NULL,
4
   `synclock` INT(10) NOT NULL DEFAULT '0',
5
-  `ctag` VARCHAR(40) DEFAULT NULL,
6
+  `ctag` VARCHAR(128) DEFAULT NULL,
7
   `changed` DATETIME DEFAULT NULL,
8
-  `objectcount` BIGINT DEFAULT NULL,
9
   PRIMARY KEY(`folder_id`),
10
   INDEX `resource_type` (`resource`, `type`)
11
 ) ROW_FORMAT=DYNAMIC ENGINE=INNODB CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
12
@@ -230,4 +229,4 @@
13
 
14
 SET FOREIGN_KEY_CHECKS=1;
15
 
16
-REPLACE INTO `system` (`name`, `value`) VALUES ('libkolab-version', '2022122800');
17
+REPLACE INTO `system` (`name`, `value`) VALUES ('libkolab-version', '2023111200');
18
roundcubemail-1.5.tar.gz/plugins/libkolab/SQL/mysql/2023111200.sql Added
4
 
1
@@ -0,0 +1,2 @@
2
+ALTER TABLE `kolab_folders` MODIFY `ctag` varchar(128);
3
+ALTER TABLE `kolab_folders` DROP COLUMN `objectcount`;
4
roundcubemail-1.5.tar.gz/plugins/libkolab/SQL/postgres Added
2
 
1
+(directory)
2
roundcubemail-1.5.tar.gz/plugins/libkolab/SQL/postgres.initial.sql Changed
19
 
1
@@ -9,9 +9,8 @@
2
     resource varchar(255) NOT NULL,
3
     "type" varchar(32) NOT NULL,
4
     synclock integer NOT NULL DEFAULT 0,
5
-    ctag varchar(40) DEFAULT NULL,
6
-    changed timestamp with time zone DEFAULT NULL,
7
-    objectcount integer DEFAULT NULL
8
+    ctag varchar(128) DEFAULT NULL,
9
+    changed timestamp with time zone DEFAULT NULL
10
 );
11
 
12
 CREATE INDEX kolab_folders_resource_type_idx ON kolab_folders(resource, "type");
13
@@ -204,4 +203,4 @@
14
     PRIMARY KEY(folder_id, uid)
15
 );
16
 
17
-INSERT INTO "system" (name, "value") VALUES ('libkolab-version', '2022122800');
18
+INSERT INTO "system" (name, "value") VALUES ('libkolab-version', '2023111200');
19
roundcubemail-1.5.tar.gz/plugins/libkolab/SQL/postgres/2023111200.sql Added
4
 
1
@@ -0,0 +1,2 @@
2
+ALTER TABLE kolab_folders ALTER COLUMN ctag TYPE varchar(128);
3
+ALTER TABLE kolab_folders DROP COLUMN objectcount;
4
roundcubemail-1.5.tar.gz/plugins/libkolab/SQL/sqlite.initial.sql Changed
19
 
1
@@ -3,9 +3,8 @@
2
   resource VARCHAR(255) NOT NULL,
3
   type VARCHAR(32) NOT NULL,
4
   synclock INTEGER NOT NULL DEFAULT '0',
5
-  ctag VARCHAR(40) DEFAULT NULL,
6
-  changed DATETIME DEFAULT NULL,
7
-  objectcount INTEGER DEFAULT NULL
8
+  ctag VARCHAR(128) DEFAULT NULL,
9
+  changed DATETIME DEFAULT NULL
10
 );
11
 
12
 CREATE INDEX ix_resource_type ON kolab_folders(resource, type);
13
@@ -187,4 +186,4 @@
14
   PRIMARY KEY(folder_id, uid)
15
 );
16
 
17
-INSERT INTO system (name, value) VALUES ('libkolab-version', '2022122800');
18
+INSERT INTO system (name, value) VALUES ('libkolab-version', '2023111200');
19
roundcubemail-1.5.tar.gz/plugins/libkolab/SQL/sqlite/2023111200.sql Added
21
 
1
@@ -0,0 +1,19 @@
2
+PRAGMA foreign_keys=OFF;
3
+
4
+ALTER TABLE kolab_folders RENAME TO kolab_folders_old;
5
+
6
+CREATE TABLE kolab_folders (
7
+  folder_id INTEGER NOT NULL PRIMARY KEY,
8
+  resource VARCHAR(255) NOT NULL,
9
+  type VARCHAR(32) NOT NULL,
10
+  synclock INTEGER NOT NULL DEFAULT '0',
11
+  ctag VARCHAR(128) DEFAULT NULL,
12
+  changed DATETIME DEFAULT NULL
13
+);
14
+
15
+INSERT INTO kolab_folders (folder_id, resource, type, synclock, ctag, changed)
16
+    SELECT folder_id, resource, type, synclock, ctag, changed FROM kolab_folders_old;
17
+
18
+CREATE INDEX ix_resource_type ON kolab_folders(resource, type);
19
+
20
+DROP TABLE kolab_folders_old;
21
roundcubemail-1.5.tar.gz/plugins/libkolab/bin/modcache.sh Changed
10
 
1
@@ -254,7 +254,7 @@
2
 {
3
     global $rcmail;
4
 
5
-    $default_host = $rcmail->config->get('default_host');
6
+    $default_host = $rcmail->config->get('imap_host', $rcmail->config->get('default_host'));
7
 
8
     if (is_array($default_host)) {
9
         $key = key($default_host);
10
roundcubemail-1.5.tar.gz/plugins/libkolab/bin/randomcontacts.sh Changed
10
 
1
@@ -178,7 +178,7 @@
2
 {
3
     global $rcmail;
4
 
5
-    $default_host = $rcmail->config->get('default_host');
6
+    $default_host = $rcmail->config->get('imap_host', $rcmail->config->get('default_host'));
7
 
8
     if (is_array($default_host)) {
9
         $key = key($default_host);
10
roundcubemail-1.5.tar.gz/plugins/libkolab/bin/readcache.sh Changed
18
 
1
@@ -109,7 +109,6 @@
2
 print "CTag     = " . $folder_data'ctag' . "\n";
3
 print "Lock     = " . $folder_data'synclock' . "\n";
4
 print "Changed  = " . $folder_data'changed' . "\n";
5
-print "ObjCount = " . $folder_data'objectcount' . "\n";
6
 print "Count    = " . $sql_arr'cnt' . "\n";
7
 print "----------------------------------------------------------------------------------\n";
8
 print "<MSG>\t<UUID>\t<CHANGED>\t<DATA>\t";
9
@@ -140,7 +139,7 @@
10
 {
11
     global $rcmail;
12
 
13
-    $default_host = $rcmail->config->get('default_host');
14
+    $default_host = $rcmail->config->get('imap_host', $rcmail->config->get('default_host'));
15
 
16
     if (is_array($default_host)) {
17
         $key = key($default_host);
18
roundcubemail-1.5.tar.gz/program/lib/Roundcube/rcube_imap_generic.php Changed
10
 
1
@@ -1050,7 +1050,7 @@
2
             // set connection identifier for debug output
3
             $this->resourceid = strtoupper(substr(md5(microtime() . $host . $this->user), 0, 4));
4
 
5
-            $_host = ($this->prefs'ssl_mode' == 'tls' ? 'tls://' : '') . $host . ':' . $this->prefs'port';
6
+            $_host = (isset($this->prefs'ssl_mode') && $this->prefs'ssl_mode' == 'tls' ? 'tls://' : '') . $host . ':' . $this->prefs'port';
7
             $this->debug("Connecting to $_host...");
8
         }
9
 
10
roundcubemail-1.5.tar.gz/temp/js_cache/tinymce-langs-5.8.2.zip Changed
roundcubemail-1.5.tar.gz/vendor/autoload.php Changed
7
 
1
@@ -22,4 +22,4 @@
2
 
3
 require_once __DIR__ . '/composer/autoload_real.php';
4
 
5
-return ComposerAutoloaderInitb3b727c5dbe81f7952876c342ad47dfd::getLoader();
6
+return ComposerAutoloaderInit116707bd4b5148aeb78c8f2caad336cc::getLoader();
7
roundcubemail-1.5.tar.gz/vendor/composer/autoload_psr4.php Changed
13
 
1
@@ -19,10 +19,7 @@
2
     'Sabre\\Uri\\' => array($vendorDir . '/sabre/uri/lib'),
3
     'Sabre\\HTTP\\' => array($vendorDir . '/sabre/http/lib'),
4
     'Sabre\\Event\\' => array($vendorDir . '/sabre/event/lib'),
5
-    'Sabre\\DAV\\' => array($vendorDir . '/sabre/dav/lib/DAV'),
6
-    'Sabre\\DAVACL\\' => array($vendorDir . '/sabre/dav/lib/DAVACL'),
7
-    'Sabre\\CardDAV\\' => array($vendorDir . '/sabre/dav/lib/CardDAV'),
8
-    'Sabre\\CalDAV\\' => array($vendorDir . '/sabre/dav/lib/CalDAV'),
9
+    'Sabre\\' => array($vendorDir . '/sabre/dav/lib'),
10
     'RtfHtmlPhp\\' => array($vendorDir . '/roundcube/rtf-html-php/src'),
11
     'Psr\\SimpleCache\\' => array($vendorDir . '/psr/simple-cache/src'),
12
     'Psr\\Log\\' => array($vendorDir . '/psr/log/Psr/Log'),
13
roundcubemail-1.5.tar.gz/vendor/composer/autoload_real.php Changed
35
 
1
@@ -2,7 +2,7 @@
2
 
3
 // autoload_real.php @generated by Composer
4
 
5
-class ComposerAutoloaderInitb3b727c5dbe81f7952876c342ad47dfd
6
+class ComposerAutoloaderInit116707bd4b5148aeb78c8f2caad336cc
7
 {
8
     private static $loader;
9
 
10
@@ -24,20 +24,20 @@
11
 
12
         require __DIR__ . '/platform_check.php';
13
 
14
-        spl_autoload_register(array('ComposerAutoloaderInitb3b727c5dbe81f7952876c342ad47dfd', 'loadClassLoader'), true, true);
15
+        spl_autoload_register(array('ComposerAutoloaderInit116707bd4b5148aeb78c8f2caad336cc', 'loadClassLoader'), true, true);
16
         self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
17
-        spl_autoload_unregister(array('ComposerAutoloaderInitb3b727c5dbe81f7952876c342ad47dfd', 'loadClassLoader'));
18
+        spl_autoload_unregister(array('ComposerAutoloaderInit116707bd4b5148aeb78c8f2caad336cc', 'loadClassLoader'));
19
 
20
         $includePaths = require __DIR__ . '/include_paths.php';
21
         $includePaths = get_include_path();
22
         set_include_path(implode(PATH_SEPARATOR, $includePaths));
23
 
24
         require __DIR__ . '/autoload_static.php';
25
-        call_user_func(\Composer\Autoload\ComposerStaticInitb3b727c5dbe81f7952876c342ad47dfd::getInitializer($loader));
26
+        call_user_func(\Composer\Autoload\ComposerStaticInit116707bd4b5148aeb78c8f2caad336cc::getInitializer($loader));
27
 
28
         $loader->register(true);
29
 
30
-        $filesToLoad = \Composer\Autoload\ComposerStaticInitb3b727c5dbe81f7952876c342ad47dfd::$files;
31
+        $filesToLoad = \Composer\Autoload\ComposerStaticInit116707bd4b5148aeb78c8f2caad336cc::$files;
32
         $requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
33
             if (empty($GLOBALS'__composer_autoload_files'$fileIdentifier)) {
34
                 $GLOBALS'__composer_autoload_files'$fileIdentifier = true;
35
roundcubemail-1.5.tar.gz/vendor/composer/autoload_static.php Changed
63
 
1
@@ -4,7 +4,7 @@
2
 
3
 namespace Composer\Autoload;
4
 
5
-class ComposerStaticInitb3b727c5dbe81f7952876c342ad47dfd
6
+class ComposerStaticInit116707bd4b5148aeb78c8f2caad336cc
7
 {
8
     public static $files = array (
9
         '383eaff206634a77a1be54e64e6459c7' => __DIR__ . '/..' . '/sabre/uri/lib/functions.php',
10
@@ -139,10 +139,7 @@
11
             'Sabre\\Uri\\' => 10,
12
             'Sabre\\HTTP\\' => 11,
13
             'Sabre\\Event\\' => 12,
14
-            'Sabre\\DAV\\' => 10,
15
-            'Sabre\\DAVACL\\' => 13,
16
-            'Sabre\\CardDAV\\' => 14,
17
-            'Sabre\\CalDAV\\' => 13,
18
+            'Sabre\\' => 6,
19
         ),
20
         'R' => 
21
         array (
22
@@ -243,21 +240,9 @@
23
         array (
24
             0 => __DIR__ . '/..' . '/sabre/event/lib',
25
         ),
26
-        'Sabre\\DAV\\' => 
27
+        'Sabre\\' => 
28
         array (
29
-            0 => __DIR__ . '/..' . '/sabre/dav/lib/DAV',
30
-        ),
31
-        'Sabre\\DAVACL\\' => 
32
-        array (
33
-            0 => __DIR__ . '/..' . '/sabre/dav/lib/DAVACL',
34
-        ),
35
-        'Sabre\\CardDAV\\' => 
36
-        array (
37
-            0 => __DIR__ . '/..' . '/sabre/dav/lib/CardDAV',
38
-        ),
39
-        'Sabre\\CalDAV\\' => 
40
-        array (
41
-            0 => __DIR__ . '/..' . '/sabre/dav/lib/CalDAV',
42
+            0 => __DIR__ . '/..' . '/sabre/dav/lib',
43
         ),
44
         'RtfHtmlPhp\\' => 
45
         array (
46
@@ -1145,11 +1130,11 @@
47
     public static function getInitializer(ClassLoader $loader)
48
     {
49
         return \Closure::bind(function () use ($loader) {
50
-            $loader->prefixLengthsPsr4 = ComposerStaticInitb3b727c5dbe81f7952876c342ad47dfd::$prefixLengthsPsr4;
51
-            $loader->prefixDirsPsr4 = ComposerStaticInitb3b727c5dbe81f7952876c342ad47dfd::$prefixDirsPsr4;
52
-            $loader->prefixesPsr0 = ComposerStaticInitb3b727c5dbe81f7952876c342ad47dfd::$prefixesPsr0;
53
-            $loader->fallbackDirsPsr0 = ComposerStaticInitb3b727c5dbe81f7952876c342ad47dfd::$fallbackDirsPsr0;
54
-            $loader->classMap = ComposerStaticInitb3b727c5dbe81f7952876c342ad47dfd::$classMap;
55
+            $loader->prefixLengthsPsr4 = ComposerStaticInit116707bd4b5148aeb78c8f2caad336cc::$prefixLengthsPsr4;
56
+            $loader->prefixDirsPsr4 = ComposerStaticInit116707bd4b5148aeb78c8f2caad336cc::$prefixDirsPsr4;
57
+            $loader->prefixesPsr0 = ComposerStaticInit116707bd4b5148aeb78c8f2caad336cc::$prefixesPsr0;
58
+            $loader->fallbackDirsPsr0 = ComposerStaticInit116707bd4b5148aeb78c8f2caad336cc::$fallbackDirsPsr0;
59
+            $loader->classMap = ComposerStaticInit116707bd4b5148aeb78c8f2caad336cc::$classMap;
60
 
61
         }, null, ClassLoader::class);
62
     }
63
roundcubemail-1.5.tar.gz/vendor/composer/include_paths.php Changed
12
 
1
@@ -12,9 +12,9 @@
2
     $vendorDir . '/pear/pear-core-minimal/src',
3
     $vendorDir . '/pear/net_ldap2',
4
     $vendorDir . '/pear/auth_sasl',
5
+    $vendorDir . '/pear/console_commandline',
6
     $vendorDir . '/pear/crypt_gpg',
7
     $vendorDir . '/pear/mail_mime',
8
     $vendorDir . '/pear/net_socket',
9
-    $vendorDir . '/pear/console_commandline',
10
     $vendorDir . '/pear/net_smtp',
11
 );
12
roundcubemail-1.5.tar.gz/vendor/composer/installed.json Changed
203
 
1
@@ -401,21 +401,21 @@
2
         },
3
         {
4
             "name": "ezyang/htmlpurifier",
5
-            "version": "v4.16.0",
6
-            "version_normalized": "4.16.0.0",
7
+            "version": "v4.17.0",
8
+            "version_normalized": "4.17.0.0",
9
             "source": {
10
                 "type": "git",
11
                 "url": "https://github.com/ezyang/htmlpurifier.git",
12
-                "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8"
13
+                "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c"
14
             },
15
             "dist": {
16
                 "type": "zip",
17
-                "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/523407fb06eb9e5f3d59889b3978d5bfe94299c8",
18
-                "reference": "523407fb06eb9e5f3d59889b3978d5bfe94299c8",
19
+                "url": "https://api.github.com/repos/ezyang/htmlpurifier/zipball/bbc513d79acf6691fa9cf10f192c90dd2957f18c",
20
+                "reference": "bbc513d79acf6691fa9cf10f192c90dd2957f18c",
21
                 "shasum": ""
22
             },
23
             "require": {
24
-                "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0"
25
+                "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
26
             },
27
             "require-dev": {
28
                 "cerdic/css-tidy": "^1.7 || ^2.0",
29
@@ -427,7 +427,7 @@
30
                 "ext-iconv": "Converts text to and from non-UTF-8 encodings",
31
                 "ext-tidy": "Used for pretty-printing HTML"
32
             },
33
-            "time": "2022-09-18T07:06:19+00:00",
34
+            "time": "2023-11-17T15:01:25+00:00",
35
             "type": "library",
36
             "installation-source": "dist",
37
             "autoload": {
38
@@ -459,7 +459,7 @@
39
             ,
40
             "support": {
41
                 "issues": "https://github.com/ezyang/htmlpurifier/issues",
42
-                "source": "https://github.com/ezyang/htmlpurifier/tree/v4.16.0"
43
+                "source": "https://github.com/ezyang/htmlpurifier/tree/v4.17.0"
44
             },
45
             "install-path": "../ezyang/htmlpurifier"
46
         },
47
@@ -2118,17 +2118,17 @@
48
         },
49
         {
50
             "name": "pear/crypt_gpg",
51
-            "version": "v1.6.7",
52
-            "version_normalized": "1.6.7.0",
53
+            "version": "v1.6.8",
54
+            "version_normalized": "1.6.8.0",
55
             "source": {
56
                 "type": "git",
57
                 "url": "https://github.com/pear/Crypt_GPG.git",
58
-                "reference": "29c0fbe96d0d4063ecd5c9a4644cb65a7fb7cc4e"
59
+                "reference": "89c661fbd7027f7745c25efd4053552972278bc1"
60
             },
61
             "dist": {
62
                 "type": "zip",
63
-                "url": "https://api.github.com/repos/pear/Crypt_GPG/zipball/29c0fbe96d0d4063ecd5c9a4644cb65a7fb7cc4e",
64
-                "reference": "29c0fbe96d0d4063ecd5c9a4644cb65a7fb7cc4e",
65
+                "url": "https://api.github.com/repos/pear/Crypt_GPG/zipball/89c661fbd7027f7745c25efd4053552972278bc1",
66
+                "reference": "89c661fbd7027f7745c25efd4053552972278bc1",
67
                 "shasum": ""
68
             },
69
             "require": {
70
@@ -2143,7 +2143,7 @@
71
             "suggest": {
72
                 "ext-posix": "May require the posix PHP extension"
73
             },
74
-            "time": "2022-02-16T17:39:00+00:00",
75
+            "time": "2023-11-23T09:15:05+00:00",
76
             "bin": 
77
                 "scripts/crypt-gpg-pinentry"
78
             ,
79
@@ -3047,17 +3047,17 @@
80
         },
81
         {
82
             "name": "phpstan/phpstan",
83
-            "version": "1.10.41",
84
-            "version_normalized": "1.10.41.0",
85
+            "version": "1.10.44",
86
+            "version_normalized": "1.10.44.0",
87
             "source": {
88
                 "type": "git",
89
                 "url": "https://github.com/phpstan/phpstan.git",
90
-                "reference": "c6174523c2a69231df55bdc65b61655e72876d76"
91
+                "reference": "bf84367c53a23f759513985c54ffe0d0c249825b"
92
             },
93
             "dist": {
94
                 "type": "zip",
95
-                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/c6174523c2a69231df55bdc65b61655e72876d76",
96
-                "reference": "c6174523c2a69231df55bdc65b61655e72876d76",
97
+                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/bf84367c53a23f759513985c54ffe0d0c249825b",
98
+                "reference": "bf84367c53a23f759513985c54ffe0d0c249825b",
99
                 "shasum": ""
100
             },
101
             "require": {
102
@@ -3066,7 +3066,7 @@
103
             "conflict": {
104
                 "phpstan/phpstan-shim": "*"
105
             },
106
-            "time": "2023-11-05T12:57:57+00:00",
107
+            "time": "2023-11-21T16:30:46+00:00",
108
             "bin": 
109
                 "phpstan",
110
                 "phpstan.phar"
111
@@ -3878,17 +3878,17 @@
112
         },
113
         {
114
             "name": "sabre/dav",
115
-            "version": "4.4.0",
116
-            "version_normalized": "4.4.0.0",
117
+            "version": "4.5.1",
118
+            "version_normalized": "4.5.1.0",
119
             "source": {
120
                 "type": "git",
121
                 "url": "https://github.com/sabre-io/dav.git",
122
-                "reference": "b65362abc926520eda2c57e219f022a6c288069d"
123
+                "reference": "b29899b675371aee73920165d1dc5a2235aa104b"
124
             },
125
             "dist": {
126
                 "type": "zip",
127
-                "url": "https://api.github.com/repos/sabre-io/dav/zipball/b65362abc926520eda2c57e219f022a6c288069d",
128
-                "reference": "b65362abc926520eda2c57e219f022a6c288069d",
129
+                "url": "https://api.github.com/repos/sabre-io/dav/zipball/b29899b675371aee73920165d1dc5a2235aa104b",
130
+                "reference": "b29899b675371aee73920165d1dc5a2235aa104b",
131
                 "shasum": ""
132
             },
133
             "require": {
134
@@ -3911,18 +3911,18 @@
135
                 "sabre/xml": "^2.0.1"
136
             },
137
             "require-dev": {
138
-                "evert/phpdoc-md": "~0.1.0",
139
-                "friendsofphp/php-cs-fixer": "^2.17.1",
140
-                "monolog/monolog": "^1.18",
141
-                "phpstan/phpstan": "^0.12",
142
-                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.0"
143
+                "friendsofphp/php-cs-fixer": "^2.19",
144
+                "monolog/monolog": "^1.27",
145
+                "phpstan/phpstan": "^0.12 || ^1.0",
146
+                "phpstan/phpstan-phpunit": "^1.0",
147
+                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6"
148
             },
149
             "suggest": {
150
                 "ext-curl": "*",
151
                 "ext-imap": "*",
152
                 "ext-pdo": "*"
153
             },
154
-            "time": "2022-06-27T09:07:55+00:00",
155
+            "time": "2023-11-23T04:33:31+00:00",
156
             "bin": 
157
                 "bin/sabredav",
158
                 "bin/naturalselection"
159
@@ -3931,10 +3931,7 @@
160
             "installation-source": "dist",
161
             "autoload": {
162
                 "psr-4": {
163
-                    "Sabre\\DAV\\": "lib/DAV/",
164
-                    "Sabre\\CalDAV\\": "lib/CalDAV/",
165
-                    "Sabre\\DAVACL\\": "lib/DAVACL/",
166
-                    "Sabre\\CardDAV\\": "lib/CardDAV/"
167
+                    "Sabre\\": "lib/"
168
                 }
169
             },
170
             "notification-url": "https://packagist.org/downloads/",
171
@@ -4162,17 +4159,17 @@
172
         },
173
         {
174
             "name": "sabre/vobject",
175
-            "version": "4.5.3",
176
-            "version_normalized": "4.5.3.0",
177
+            "version": "4.5.4",
178
+            "version_normalized": "4.5.4.0",
179
             "source": {
180
                 "type": "git",
181
                 "url": "https://github.com/sabre-io/vobject.git",
182
-                "reference": "fe6d9183154ed6f2f913f2b568d3d51d8ae9b308"
183
+                "reference": "a6d53a3e5bec85ed3dd78868b7de0f5b4e12f772"
184
             },
185
             "dist": {
186
                 "type": "zip",
187
-                "url": "https://api.github.com/repos/sabre-io/vobject/zipball/fe6d9183154ed6f2f913f2b568d3d51d8ae9b308",
188
-                "reference": "fe6d9183154ed6f2f913f2b568d3d51d8ae9b308",
189
+                "url": "https://api.github.com/repos/sabre-io/vobject/zipball/a6d53a3e5bec85ed3dd78868b7de0f5b4e12f772",
190
+                "reference": "a6d53a3e5bec85ed3dd78868b7de0f5b4e12f772",
191
                 "shasum": ""
192
             },
193
             "require": {
194
@@ -4189,7 +4186,7 @@
195
             "suggest": {
196
                 "hoa/bench": "If you would like to run the benchmark scripts"
197
             },
198
-            "time": "2023-01-22T12:21:50+00:00",
199
+            "time": "2023-11-09T12:54:37+00:00",
200
             "bin": 
201
                 "bin/vobject",
202
                 "bin/generate_vcards"
203
roundcubemail-1.5.tar.gz/vendor/composer/installed.php Changed
84
 
1
@@ -3,7 +3,7 @@
2
         'name' => 'roundcube/roundcubemail',
3
         'pretty_version' => 'dev-dev/kolab-1.5',
4
         'version' => 'dev-dev/kolab-1.5',
5
-        'reference' => '9033fa0b6a3dca5d035454c3c0aec5696db6f3ab',
6
+        'reference' => 'b29ecec6bd39c4cd8d145d7ea8cd7d145d7a2ab2',
7
         'type' => 'library',
8
         'install_path' => __DIR__ . '/../../',
9
         'aliases' => array(),
10
@@ -67,9 +67,9 @@
11
             'dev_requirement' => false,
12
         ),
13
         'ezyang/htmlpurifier' => array(
14
-            'pretty_version' => 'v4.16.0',
15
-            'version' => '4.16.0.0',
16
-            'reference' => '523407fb06eb9e5f3d59889b3978d5bfe94299c8',
17
+            'pretty_version' => 'v4.17.0',
18
+            'version' => '4.17.0.0',
19
+            'reference' => 'bbc513d79acf6691fa9cf10f192c90dd2957f18c',
20
             'type' => 'library',
21
             'install_path' => __DIR__ . '/../ezyang/htmlpurifier',
22
             'aliases' => array(),
23
@@ -375,9 +375,9 @@
24
             'dev_requirement' => false,
25
         ),
26
         'pear/crypt_gpg' => array(
27
-            'pretty_version' => 'v1.6.7',
28
-            'version' => '1.6.7.0',
29
-            'reference' => '29c0fbe96d0d4063ecd5c9a4644cb65a7fb7cc4e',
30
+            'pretty_version' => 'v1.6.8',
31
+            'version' => '1.6.8.0',
32
+            'reference' => '89c661fbd7027f7745c25efd4053552972278bc1',
33
             'type' => 'library',
34
             'install_path' => __DIR__ . '/../pear/crypt_gpg',
35
             'aliases' => array(),
36
@@ -510,9 +510,9 @@
37
             'dev_requirement' => true,
38
         ),
39
         'phpstan/phpstan' => array(
40
-            'pretty_version' => '1.10.41',
41
-            'version' => '1.10.41.0',
42
-            'reference' => 'c6174523c2a69231df55bdc65b61655e72876d76',
43
+            'pretty_version' => '1.10.44',
44
+            'version' => '1.10.44.0',
45
+            'reference' => 'bf84367c53a23f759513985c54ffe0d0c249825b',
46
             'type' => 'library',
47
             'install_path' => __DIR__ . '/../phpstan/phpstan',
48
             'aliases' => array(),
49
@@ -641,7 +641,7 @@
50
         'roundcube/roundcubemail' => array(
51
             'pretty_version' => 'dev-dev/kolab-1.5',
52
             'version' => 'dev-dev/kolab-1.5',
53
-            'reference' => '9033fa0b6a3dca5d035454c3c0aec5696db6f3ab',
54
+            'reference' => 'b29ecec6bd39c4cd8d145d7ea8cd7d145d7a2ab2',
55
             'type' => 'library',
56
             'install_path' => __DIR__ . '/../../',
57
             'aliases' => array(),
58
@@ -663,9 +663,9 @@
59
             ),
60
         ),
61
         'sabre/dav' => array(
62
-            'pretty_version' => '4.4.0',
63
-            'version' => '4.4.0.0',
64
-            'reference' => 'b65362abc926520eda2c57e219f022a6c288069d',
65
+            'pretty_version' => '4.5.1',
66
+            'version' => '4.5.1.0',
67
+            'reference' => 'b29899b675371aee73920165d1dc5a2235aa104b',
68
             'type' => 'library',
69
             'install_path' => __DIR__ . '/../sabre/dav',
70
             'aliases' => array(),
71
@@ -699,9 +699,9 @@
72
             'dev_requirement' => false,
73
         ),
74
         'sabre/vobject' => array(
75
-            'pretty_version' => '4.5.3',
76
-            'version' => '4.5.3.0',
77
-            'reference' => 'fe6d9183154ed6f2f913f2b568d3d51d8ae9b308',
78
+            'pretty_version' => '4.5.4',
79
+            'version' => '4.5.4.0',
80
+            'reference' => 'a6d53a3e5bec85ed3dd78868b7de0f5b4e12f772',
81
             'type' => 'library',
82
             'install_path' => __DIR__ . '/../sabre/vobject',
83
             'aliases' => array(),
84
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/CHANGELOG.md Deleted
8
 
1
@@ -1,6 +0,0 @@
2
-# 4.16.0(https://github.com/ezyang/htmlpurifier/compare/v4.15.0...v4.16.0) (2022-09-18)
3
-
4
-
5
-### Features
6
-
7
-* add semantic release (#307(https://github.com/ezyang/htmlpurifier/issues/307)) (db31243(https://github.com/ezyang/htmlpurifier/commit/db312435cb9d8d73395f75f9642a43ba6de5e903)), closes #322(https://github.com/ezyang/htmlpurifier/issues/322) #323(https://github.com/ezyang/htmlpurifier/issues/323) #326(https://github.com/ezyang/htmlpurifier/issues/326) #327(https://github.com/ezyang/htmlpurifier/issues/327) #328(https://github.com/ezyang/htmlpurifier/issues/328) #329(https://github.com/ezyang/htmlpurifier/issues/329) #330(https://github.com/ezyang/htmlpurifier/issues/330) #331(https://github.com/ezyang/htmlpurifier/issues/331) #332(https://github.com/ezyang/htmlpurifier/issues/332) #333(https://github.com/ezyang/htmlpurifier/issues/333) #337(https://github.com/ezyang/htmlpurifier/issues/337) #335(https://github.com/ezyang/htmlpurifier/issues/335) ezyang/htmlpurifier#334(https://github.com/ezyang/htmlpurifier/issues/334) #336(https://github.com/ezyang/htmlpurifier/issues/336) #338(https://github.com/ezyang/htmlpurifier/issues/338)
8
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/VERSION Changed
6
 
1
@@ -1,1 +1,1 @@
2
-4.15.0
3
\ No newline at end of file
4
+4.17.0
5
\ No newline at end of file
6
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/composer.json Changed
20
 
1
@@ -13,7 +13,7 @@
2
         }
3
     ,
4
     "require": {
5
-        "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0"
6
+        "php": "~5.6.0 || ~7.0.0 || ~7.1.0 || ~7.2.0 || ~7.3.0 || ~7.4.0 || ~8.0.0 || ~8.1.0 || ~8.2.0 || ~8.3.0"
7
     },
8
     "require-dev": {
9
         "cerdic/css-tidy": "^1.7 || ^2.0",
10
@@ -38,7 +38,8 @@
11
     "repositories": 
12
         {
13
             "type": "vcs",
14
-            "url": "https://github.com/ezyang/simpletest.git"
15
+            "url": "https://github.com/ezyang/simpletest.git",
16
+            "no-api": true
17
         }
18
     
19
 }
20
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier.includes.php Changed
10
 
1
@@ -7,7 +7,7 @@
2
  * primary concern and you are using an opcode cache. PLEASE DO NOT EDIT THIS
3
  * FILE, changes will be overwritten the next time the script is run.
4
  *
5
- * @version 4.15.0
6
+ * @version 4.17.0
7
  *
8
  * @warning
9
  *      You must *not* include any other HTML Purifier files before this file,
10
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier.php Changed
25
 
1
@@ -19,7 +19,7 @@
2
  */
3
 
4
 /*
5
-    HTML Purifier 4.15.0 - Standards Compliant HTML Filtering
6
+    HTML Purifier 4.17.0 - Standards Compliant HTML Filtering
7
     Copyright (C) 2006-2008 Edward Z. Yang
8
 
9
     This library is free software; you can redistribute it and/or
10
@@ -58,12 +58,12 @@
11
      * Version of HTML Purifier.
12
      * @type string
13
      */
14
-    public $version = '4.15.0';
15
+    public $version = '4.17.0';
16
 
17
     /**
18
      * Constant with version of HTML Purifier.
19
      */
20
-    const VERSION = '4.15.0';
21
+    const VERSION = '4.17.0';
22
 
23
     /**
24
      * Global configuration object.
25
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/CSS/FontFamily.php Changed
40
 
1
@@ -10,23 +10,21 @@
2
 
3
     public function __construct()
4
     {
5
-        $this->mask = '_- ';
6
-        for ($c = 'a'; $c <= 'z'; $c++) {
7
-            $this->mask .= $c;
8
-        }
9
-        for ($c = 'A'; $c <= 'Z'; $c++) {
10
-            $this->mask .= $c;
11
-        }
12
-        for ($c = '0'; $c <= '9'; $c++) {
13
-            $this->mask .= $c;
14
-        } // cast-y, but should be fine
15
-        // special bytes used by UTF-8
16
-        for ($i = 0x80; $i <= 0xFF; $i++) {
17
-            // We don't bother excluding invalid bytes in this range,
18
-            // because the our restriction of well-formed UTF-8 will
19
-            // prevent these from ever occurring.
20
-            $this->mask .= chr($i);
21
-        }
22
+        // Lowercase letters
23
+        $l = range('a', 'z');
24
+        // Uppercase letters
25
+        $u = range('A', 'Z');
26
+        // Digits
27
+        $d = range('0', '9');
28
+        // Special bytes used by UTF-8
29
+        $b = array_map('chr', range(0x80, 0xFF));
30
+        // All valid characters for the mask
31
+        $c = array_merge($l, $u, $d, $b);
32
+        // Concatenate all valid characters into a string 
33
+        // Use '_- ' as an initial value
34
+        $this->mask = array_reduce($c, function ($carry, $value) {
35
+            return $carry . $value;
36
+        }, '_- ');
37
 
38
         /*
39
             PHP's internal strcspn implementation is
40
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrDef/URI/Host.php Changed
10
 
1
@@ -106,7 +106,7 @@
2
         // If we have Net_IDNA2 support, we can support IRIs by
3
         // punycoding them. (This is the most portable thing to do,
4
         // since otherwise we have to assume browsers support
5
-        } elseif ($config->get('Core.EnableIDNA')) {
6
+        } elseif ($config->get('Core.EnableIDNA') && class_exists('Net_IDNA2')) {
7
             $idna = new Net_IDNA2(array('encoding' => 'utf8', 'overlong' => false, 'strict' => true));
8
             // we need to encode each period separately
9
             $parts = explode('.', $string);
10
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/AttrTransform/TargetBlank.php Changed
14
 
1
@@ -33,7 +33,11 @@
2
 
3
         // XXX Kind of inefficient
4
         $url = $this->parser->parse($attr'href');
5
-        $scheme = $url->getSchemeObj($config, $context);
6
+        
7
+        // Ignore invalid schemes (e.g. `javascript:`)
8
+        if (!($scheme = $url->getSchemeObj($config, $context))) {
9
+            return $attr;
10
+        }
11
 
12
         if ($scheme->browsable && !$url->isBenign($config, $context)) {
13
             $attr'target' = '_blank';
14
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Bootstrap.php Changed
50
 
1
@@ -79,44 +79,11 @@
2
     public static function registerAutoload()
3
     {
4
         $autoload = array('HTMLPurifier_Bootstrap', 'autoload');
5
-        if (($funcs = spl_autoload_functions()) === false) {
6
+        if (spl_autoload_functions() === false) {
7
             spl_autoload_register($autoload);
8
-        } elseif (function_exists('spl_autoload_unregister')) {
9
-            if (version_compare(PHP_VERSION, '5.3.0', '>=')) {
10
-                // prepend flag exists, no need for shenanigans
11
-                spl_autoload_register($autoload, true, true);
12
-            } else {
13
-                $buggy  = version_compare(PHP_VERSION, '5.2.11', '<');
14
-                $compat = version_compare(PHP_VERSION, '5.1.2', '<=') &&
15
-                          version_compare(PHP_VERSION, '5.1.0', '>=');
16
-                foreach ($funcs as $func) {
17
-                    if ($buggy && is_array($func)) {
18
-                        // :TRICKY: There are some compatibility issues and some
19
-                        // places where we need to error out
20
-                        $reflector = new ReflectionMethod($func0, $func1);
21
-                        if (!$reflector->isStatic()) {
22
-                            throw new Exception(
23
-                                'HTML Purifier autoloader registrar is not compatible
24
-                                with non-static object methods due to PHP Bug #44144;
25
-                                Please do not use HTMLPurifier.autoload.php (or any
26
-                                file that includes this file); instead, place the code:
27
-                                spl_autoload_register(array(\'HTMLPurifier_Bootstrap\', \'autoload\'))
28
-                                after your own autoloaders.'
29
-                            );
30
-                        }
31
-                        // Suprisingly, spl_autoload_register supports the
32
-                        // Class::staticMethod callback format, although call_user_func doesn't
33
-                        if ($compat) {
34
-                            $func = implode('::', $func);
35
-                        }
36
-                    }
37
-                    spl_autoload_unregister($func);
38
-                }
39
-                spl_autoload_register($autoload);
40
-                foreach ($funcs as $func) {
41
-                    spl_autoload_register($func);
42
-                }
43
-            }
44
+        } else {
45
+            // prepend flag exists, no need for shenanigans
46
+            spl_autoload_register($autoload, true, true);
47
         }
48
     }
49
 }
50
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/CSSDefinition.php Changed
500
 
1
@@ -13,7 +13,7 @@
2
      * Assoc array of attribute name to definition object.
3
      * @type HTMLPurifier_AttrDef
4
      */
5
-    public $info = array();
6
+    public $info = ;
7
 
8
     /**
9
      * Constructs the info array.  The meat of this class.
10
@@ -22,7 +22,7 @@
11
     protected function doSetup($config)
12
     {
13
         $this->info'text-align' = new HTMLPurifier_AttrDef_Enum(
14
-            array('left', 'right', 'center', 'justify'),
15
+            'left', 'right', 'center', 'justify',
16
             false
17
         );
18
 
19
@@ -31,7 +31,7 @@
20
             $this->info'border-right-style' =
21
             $this->info'border-left-style' =
22
             $this->info'border-top-style' = new HTMLPurifier_AttrDef_Enum(
23
-                array(
24
+                
25
                     'none',
26
                     'hidden',
27
                     'dotted',
28
@@ -42,42 +42,42 @@
29
                     'ridge',
30
                     'inset',
31
                     'outset'
32
-                ),
33
+                ,
34
                 false
35
             );
36
 
37
         $this->info'border-style' = new HTMLPurifier_AttrDef_CSS_Multiple($border_style);
38
 
39
         $this->info'clear' = new HTMLPurifier_AttrDef_Enum(
40
-            array('none', 'left', 'right', 'both'),
41
+            'none', 'left', 'right', 'both',
42
             false
43
         );
44
         $this->info'float' = new HTMLPurifier_AttrDef_Enum(
45
-            array('none', 'left', 'right'),
46
+            'none', 'left', 'right',
47
             false
48
         );
49
         $this->info'font-style' = new HTMLPurifier_AttrDef_Enum(
50
-            array('normal', 'italic', 'oblique'),
51
+            'normal', 'italic', 'oblique',
52
             false
53
         );
54
         $this->info'font-variant' = new HTMLPurifier_AttrDef_Enum(
55
-            array('normal', 'small-caps'),
56
+            'normal', 'small-caps',
57
             false
58
         );
59
 
60
         $uri_or_none = new HTMLPurifier_AttrDef_CSS_Composite(
61
-            array(
62
-                new HTMLPurifier_AttrDef_Enum(array('none')),
63
+            
64
+                new HTMLPurifier_AttrDef_Enum('none'),
65
                 new HTMLPurifier_AttrDef_CSS_URI()
66
-            )
67
+            
68
         );
69
 
70
         $this->info'list-style-position' = new HTMLPurifier_AttrDef_Enum(
71
-            array('inside', 'outside'),
72
+            'inside', 'outside',
73
             false
74
         );
75
         $this->info'list-style-type' = new HTMLPurifier_AttrDef_Enum(
76
-            array(
77
+            
78
                 'disc',
79
                 'circle',
80
                 'square',
81
@@ -87,7 +87,7 @@
82
                 'lower-alpha',
83
                 'upper-alpha',
84
                 'none'
85
-            ),
86
+            ,
87
             false
88
         );
89
         $this->info'list-style-image' = $uri_or_none;
90
@@ -95,34 +95,34 @@
91
         $this->info'list-style' = new HTMLPurifier_AttrDef_CSS_ListStyle($config);
92
 
93
         $this->info'text-transform' = new HTMLPurifier_AttrDef_Enum(
94
-            array('capitalize', 'uppercase', 'lowercase', 'none'),
95
+            'capitalize', 'uppercase', 'lowercase', 'none',
96
             false
97
         );
98
         $this->info'color' = new HTMLPurifier_AttrDef_CSS_Color();
99
 
100
         $this->info'background-image' = $uri_or_none;
101
         $this->info'background-repeat' = new HTMLPurifier_AttrDef_Enum(
102
-            array('repeat', 'repeat-x', 'repeat-y', 'no-repeat')
103
+            'repeat', 'repeat-x', 'repeat-y', 'no-repeat'
104
         );
105
         $this->info'background-attachment' = new HTMLPurifier_AttrDef_Enum(
106
-            array('scroll', 'fixed')
107
+            'scroll', 'fixed'
108
         );
109
         $this->info'background-position' = new HTMLPurifier_AttrDef_CSS_BackgroundPosition();
110
 
111
         $this->info'background-size' = new HTMLPurifier_AttrDef_CSS_Composite(
112
-            array(
113
+            
114
                 new HTMLPurifier_AttrDef_Enum(
115
-                    array(
116
+                    
117
                         'auto',
118
                         'cover',
119
                         'contain',
120
                         'initial',
121
                         'inherit',
122
-                    )
123
+                    
124
                 ),
125
                 new HTMLPurifier_AttrDef_CSS_Percentage(),
126
                 new HTMLPurifier_AttrDef_CSS_Length()
127
-            )
128
+            
129
         );
130
 
131
         $border_color =
132
@@ -131,10 +131,10 @@
133
             $this->info'border-left-color' =
134
             $this->info'border-right-color' =
135
             $this->info'background-color' = new HTMLPurifier_AttrDef_CSS_Composite(
136
-                array(
137
-                    new HTMLPurifier_AttrDef_Enum(array('transparent')),
138
+                
139
+                    new HTMLPurifier_AttrDef_Enum('transparent'),
140
                     new HTMLPurifier_AttrDef_CSS_Color()
141
-                )
142
+                
143
             );
144
 
145
         $this->info'background' = new HTMLPurifier_AttrDef_CSS_Background($config);
146
@@ -146,32 +146,32 @@
147
             $this->info'border-bottom-width' =
148
             $this->info'border-left-width' =
149
             $this->info'border-right-width' = new HTMLPurifier_AttrDef_CSS_Composite(
150
-                array(
151
-                    new HTMLPurifier_AttrDef_Enum(array('thin', 'medium', 'thick')),
152
+                
153
+                    new HTMLPurifier_AttrDef_Enum('thin', 'medium', 'thick'),
154
                     new HTMLPurifier_AttrDef_CSS_Length('0') //disallow negative
155
-                )
156
+                
157
             );
158
 
159
         $this->info'border-width' = new HTMLPurifier_AttrDef_CSS_Multiple($border_width);
160
 
161
         $this->info'letter-spacing' = new HTMLPurifier_AttrDef_CSS_Composite(
162
-            array(
163
-                new HTMLPurifier_AttrDef_Enum(array('normal')),
164
+            
165
+                new HTMLPurifier_AttrDef_Enum('normal'),
166
                 new HTMLPurifier_AttrDef_CSS_Length()
167
-            )
168
+            
169
         );
170
 
171
         $this->info'word-spacing' = new HTMLPurifier_AttrDef_CSS_Composite(
172
-            array(
173
-                new HTMLPurifier_AttrDef_Enum(array('normal')),
174
+            
175
+                new HTMLPurifier_AttrDef_Enum('normal'),
176
                 new HTMLPurifier_AttrDef_CSS_Length()
177
-            )
178
+            
179
         );
180
 
181
         $this->info'font-size' = new HTMLPurifier_AttrDef_CSS_Composite(
182
-            array(
183
+            
184
                 new HTMLPurifier_AttrDef_Enum(
185
-                    array(
186
+                    
187
                         'xx-small',
188
                         'x-small',
189
                         'small',
190
@@ -181,20 +181,20 @@
191
                         'xx-large',
192
                         'larger',
193
                         'smaller'
194
-                    )
195
+                    
196
                 ),
197
                 new HTMLPurifier_AttrDef_CSS_Percentage(),
198
                 new HTMLPurifier_AttrDef_CSS_Length()
199
-            )
200
+            
201
         );
202
 
203
         $this->info'line-height' = new HTMLPurifier_AttrDef_CSS_Composite(
204
-            array(
205
-                new HTMLPurifier_AttrDef_Enum(array('normal')),
206
+            
207
+                new HTMLPurifier_AttrDef_Enum('normal'),
208
                 new HTMLPurifier_AttrDef_CSS_Number(true), // no negatives
209
                 new HTMLPurifier_AttrDef_CSS_Length('0'),
210
                 new HTMLPurifier_AttrDef_CSS_Percentage(true)
211
-            )
212
+            
213
         );
214
 
215
         $margin =
216
@@ -202,11 +202,11 @@
217
             $this->info'margin-bottom' =
218
             $this->info'margin-left' =
219
             $this->info'margin-right' = new HTMLPurifier_AttrDef_CSS_Composite(
220
-                array(
221
+                
222
                     new HTMLPurifier_AttrDef_CSS_Length(),
223
                     new HTMLPurifier_AttrDef_CSS_Percentage(),
224
-                    new HTMLPurifier_AttrDef_Enum(array('auto'))
225
-                )
226
+                    new HTMLPurifier_AttrDef_Enum('auto')
227
+                
228
             );
229
 
230
         $this->info'margin' = new HTMLPurifier_AttrDef_CSS_Multiple($margin);
231
@@ -217,41 +217,41 @@
232
             $this->info'padding-bottom' =
233
             $this->info'padding-left' =
234
             $this->info'padding-right' = new HTMLPurifier_AttrDef_CSS_Composite(
235
-                array(
236
+                
237
                     new HTMLPurifier_AttrDef_CSS_Length('0'),
238
                     new HTMLPurifier_AttrDef_CSS_Percentage(true)
239
-                )
240
+                
241
             );
242
 
243
         $this->info'padding' = new HTMLPurifier_AttrDef_CSS_Multiple($padding);
244
 
245
         $this->info'text-indent' = new HTMLPurifier_AttrDef_CSS_Composite(
246
-            array(
247
+            
248
                 new HTMLPurifier_AttrDef_CSS_Length(),
249
                 new HTMLPurifier_AttrDef_CSS_Percentage()
250
-            )
251
+            
252
         );
253
 
254
         $trusted_wh = new HTMLPurifier_AttrDef_CSS_Composite(
255
-            array(
256
+            
257
                 new HTMLPurifier_AttrDef_CSS_Length('0'),
258
                 new HTMLPurifier_AttrDef_CSS_Percentage(true),
259
-                new HTMLPurifier_AttrDef_Enum(array('auto', 'initial', 'inherit'))
260
-            )
261
+                new HTMLPurifier_AttrDef_Enum('auto', 'initial', 'inherit')
262
+            
263
         );
264
         $trusted_min_wh = new HTMLPurifier_AttrDef_CSS_Composite(
265
-            array(
266
+            
267
                 new HTMLPurifier_AttrDef_CSS_Length('0'),
268
                 new HTMLPurifier_AttrDef_CSS_Percentage(true),
269
-                new HTMLPurifier_AttrDef_Enum(array('initial', 'inherit'))
270
-            )
271
+                new HTMLPurifier_AttrDef_Enum('initial', 'inherit')
272
+            
273
         );
274
         $trusted_max_wh = new HTMLPurifier_AttrDef_CSS_Composite(
275
-            array(
276
+            
277
                 new HTMLPurifier_AttrDef_CSS_Length('0'),
278
                 new HTMLPurifier_AttrDef_CSS_Percentage(true),
279
-                new HTMLPurifier_AttrDef_Enum(array('none', 'initial', 'inherit'))
280
-            )
281
+                new HTMLPurifier_AttrDef_Enum('none', 'initial', 'inherit')
282
+            
283
         );
284
         $max = $config->get('CSS.MaxImgLength');
285
 
286
@@ -263,10 +263,10 @@
287
                     'img',
288
                     // For img tags:
289
                     new HTMLPurifier_AttrDef_CSS_Composite(
290
-                        array(
291
+                        
292
                             new HTMLPurifier_AttrDef_CSS_Length('0', $max),
293
-                            new HTMLPurifier_AttrDef_Enum(array('auto'))
294
-                        )
295
+                            new HTMLPurifier_AttrDef_Enum('auto')
296
+                        
297
                     ),
298
                     // For everyone else:
299
                     $trusted_wh
300
@@ -279,10 +279,10 @@
301
                     'img',
302
                     // For img tags:
303
                     new HTMLPurifier_AttrDef_CSS_Composite(
304
-                        array(
305
+                        
306
                             new HTMLPurifier_AttrDef_CSS_Length('0', $max),
307
-                            new HTMLPurifier_AttrDef_Enum(array('initial', 'inherit'))
308
-                        )
309
+                            new HTMLPurifier_AttrDef_Enum('initial', 'inherit')
310
+                        
311
                     ),
312
                     // For everyone else:
313
                     $trusted_min_wh
314
@@ -295,22 +295,39 @@
315
                     'img',
316
                     // For img tags:
317
                     new HTMLPurifier_AttrDef_CSS_Composite(
318
-                        array(
319
+                        
320
                             new HTMLPurifier_AttrDef_CSS_Length('0', $max),
321
-                            new HTMLPurifier_AttrDef_Enum(array('none', 'initial', 'inherit'))
322
-                        )
323
+                            new HTMLPurifier_AttrDef_Enum('none', 'initial', 'inherit')
324
+                        
325
                     ),
326
                     // For everyone else:
327
                     $trusted_max_wh
328
                 );
329
 
330
+        // text-decoration and related shorthands
331
         $this->info'text-decoration' = new HTMLPurifier_AttrDef_CSS_TextDecoration();
332
 
333
+        $this->info'text-decoration-line' = new HTMLPurifier_AttrDef_Enum(
334
+            'none', 'underline', 'overline', 'line-through', 'initial', 'inherit'
335
+        );
336
+
337
+        $this->info'text-decoration-style' = new HTMLPurifier_AttrDef_Enum(
338
+            'solid', 'double', 'dotted', 'dashed', 'wavy', 'initial', 'inherit'
339
+        );
340
+
341
+        $this->info'text-decoration-color' = new HTMLPurifier_AttrDef_CSS_Color();
342
+
343
+        $this->info'text-decoration-thickness' = new HTMLPurifier_AttrDef_CSS_Composite(
344
+            new HTMLPurifier_AttrDef_CSS_Length(),
345
+            new HTMLPurifier_AttrDef_CSS_Percentage(),
346
+            new HTMLPurifier_AttrDef_Enum('auto', 'from-font', 'initial', 'inherit')
347
+        );
348
+
349
         $this->info'font-family' = new HTMLPurifier_AttrDef_CSS_FontFamily();
350
 
351
         // this could use specialized code
352
         $this->info'font-weight' = new HTMLPurifier_AttrDef_Enum(
353
-            array(
354
+            
355
                 'normal',
356
                 'bold',
357
                 'bolder',
358
@@ -324,7 +341,7 @@
359
                 '700',
360
                 '800',
361
                 '900'
362
-            ),
363
+            ,
364
             false
365
         );
366
 
367
@@ -340,21 +357,21 @@
368
         $this->info'border-right' = new HTMLPurifier_AttrDef_CSS_Border($config);
369
 
370
         $this->info'border-collapse' = new HTMLPurifier_AttrDef_Enum(
371
-            array('collapse', 'separate')
372
+            'collapse', 'separate'
373
         );
374
 
375
         $this->info'caption-side' = new HTMLPurifier_AttrDef_Enum(
376
-            array('top', 'bottom')
377
+            'top', 'bottom'
378
         );
379
 
380
         $this->info'table-layout' = new HTMLPurifier_AttrDef_Enum(
381
-            array('auto', 'fixed')
382
+            'auto', 'fixed'
383
         );
384
 
385
         $this->info'vertical-align' = new HTMLPurifier_AttrDef_CSS_Composite(
386
-            array(
387
+            
388
                 new HTMLPurifier_AttrDef_Enum(
389
-                    array(
390
+                    
391
                         'baseline',
392
                         'sub',
393
                         'super',
394
@@ -363,11 +380,11 @@
395
                         'middle',
396
                         'bottom',
397
                         'text-bottom'
398
-                    )
399
+                    
400
                 ),
401
                 new HTMLPurifier_AttrDef_CSS_Length(),
402
                 new HTMLPurifier_AttrDef_CSS_Percentage()
403
-            )
404
+            
405
         );
406
 
407
         $this->info'border-spacing' = new HTMLPurifier_AttrDef_CSS_Multiple(new HTMLPurifier_AttrDef_CSS_Length(), 2);
408
@@ -375,7 +392,7 @@
409
         // These CSS properties don't work on many browsers, but we live
410
         // in THE FUTURE!
411
         $this->info'white-space' = new HTMLPurifier_AttrDef_Enum(
412
-            array('nowrap', 'normal', 'pre', 'pre-wrap', 'pre-line')
413
+            'nowrap', 'normal', 'pre', 'pre-wrap', 'pre-line'
414
         );
415
 
416
         if ($config->get('CSS.Proprietary')) {
417
@@ -422,21 +439,21 @@
418
         // more CSS3
419
         $this->info'page-break-after' =
420
         $this->info'page-break-before' = new HTMLPurifier_AttrDef_Enum(
421
-            array(
422
+            
423
                 'auto',
424
                 'always',
425
                 'avoid',
426
                 'left',
427
                 'right'
428
-            )
429
+            
430
         );
431
-        $this->info'page-break-inside' = new HTMLPurifier_AttrDef_Enum(array('auto', 'avoid'));
432
+        $this->info'page-break-inside' = new HTMLPurifier_AttrDef_Enum('auto', 'avoid');
433
 
434
         $border_radius = new HTMLPurifier_AttrDef_CSS_Composite(
435
-            array(
436
+            
437
                 new HTMLPurifier_AttrDef_CSS_Percentage(true), // disallow negative
438
                 new HTMLPurifier_AttrDef_CSS_Length('0') // disallow negative
439
-            ));
440
+            );
441
 
442
         $this->info'border-top-left-radius' =
443
         $this->info'border-top-right-radius' =
444
@@ -453,7 +470,7 @@
445
     protected function doSetupTricky($config)
446
     {
447
         $this->info'display' = new HTMLPurifier_AttrDef_Enum(
448
-            array(
449
+            
450
                 'inline',
451
                 'block',
452
                 'list-item',
453
@@ -472,12 +489,12 @@
454
                 'table-cell',
455
                 'table-caption',
456
                 'none'
457
-            )
458
+            
459
         );
460
         $this->info'visibility' = new HTMLPurifier_AttrDef_Enum(
461
-            array('visible', 'hidden', 'collapse')
462
+            'visible', 'hidden', 'collapse'
463
         );
464
-        $this->info'overflow' = new HTMLPurifier_AttrDef_Enum(array('visible', 'hidden', 'auto', 'scroll'));
465
+        $this->info'overflow' = new HTMLPurifier_AttrDef_Enum('visible', 'hidden', 'auto', 'scroll');
466
         $this->info'opacity' = new HTMLPurifier_AttrDef_CSS_AlphaValue();
467
     }
468
 
469
@@ -487,23 +504,23 @@
470
     protected function doSetupTrusted($config)
471
     {
472
         $this->info'position' = new HTMLPurifier_AttrDef_Enum(
473
-            array('static', 'relative', 'absolute', 'fixed')
474
+            'static', 'relative', 'absolute', 'fixed'
475
         );
476
         $this->info'top' =
477
         $this->info'left' =
478
         $this->info'right' =
479
         $this->info'bottom' = new HTMLPurifier_AttrDef_CSS_Composite(
480
-            array(
481
+            
482
                 new HTMLPurifier_AttrDef_CSS_Length(),
483
                 new HTMLPurifier_AttrDef_CSS_Percentage(),
484
-                new HTMLPurifier_AttrDef_Enum(array('auto')),
485
-            )
486
+                new HTMLPurifier_AttrDef_Enum('auto'),
487
+            
488
         );
489
         $this->info'z-index' = new HTMLPurifier_AttrDef_CSS_Composite(
490
-            array(
491
+            
492
                 new HTMLPurifier_AttrDef_Integer(),
493
-                new HTMLPurifier_AttrDef_Enum(array('auto')),
494
-            )
495
+                new HTMLPurifier_AttrDef_Enum('auto'),
496
+            
497
         );
498
     }
499
 
500
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Config.php Changed
10
 
1
@@ -21,7 +21,7 @@
2
      * HTML Purifier's version
3
      * @type string
4
      */
5
-    public $version = '4.15.0';
6
+    public $version = '4.17.0';
7
 
8
     /**
9
      * Whether or not to automatically finalize
10
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCache/Serializer.php Changed
21
 
1
@@ -287,13 +287,14 @@
2
             } elseif (filegroup($dir) === posix_getgid()) {
3
                 $chmod = $chmod | 0070;
4
             } else {
5
-                // PHP's probably running as nobody, so we'll
6
-                // need to give global permissions
7
-                $chmod = $chmod | 0777;
8
+              // PHP's probably running as nobody, it is
9
+              // not obvious how to fix this (777 is probably
10
+              // bad if you are multi-user), let the user figure it out
11
+                $chmod = null;
12
             }
13
             trigger_error(
14
-                'Directory ' . $dir . ' not writable, ' .
15
-                'please chmod to ' . decoct($chmod),
16
+                'Directory ' . $dir . ' not writable. ' .
17
+                ($chmod === null ? '' : 'Please chmod to ' . decoct($chmod)),
18
                 E_USER_WARNING
19
             );
20
         } else {
21
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/DefinitionCacheFactory.php Changed
10
 
1
@@ -71,7 +71,7 @@
2
             return $this->caches$method$type;
3
         }
4
         if (isset($this->implementations$method) &&
5
-            class_exists($class = $this->implementations$method, false)) {
6
+            class_exists($class = $this->implementations$method)) {
7
             $cache = new $class($type);
8
         } else {
9
             if ($method != 'Serializer') {
10
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Filter/ExtractStyleBlocks.php Changed
332
 
1
@@ -146,175 +146,179 @@
2
         foreach ($this->_tidy->css as $k => $decls) {
3
             // $decls are all CSS declarations inside an @ selector
4
             $new_decls = array();
5
-            foreach ($decls as $selector => $style) {
6
-                $selector = trim($selector);
7
-                if ($selector === '') {
8
-                    continue;
9
-                } // should not happen
10
-                // Parse the selector
11
-                // Here is the relevant part of the CSS grammar:
12
-                //
13
-                // ruleset
14
-                //   : selector  ',' S* selector * '{' ...
15
-                // selector
16
-                //   : simple_selector  combinator selector | S+  combinator? selector ? ?
17
-                // combinator
18
-                //   : '+' S*
19
-                //   : '>' S*
20
-                // simple_selector
21
-                //   : element_name  HASH | class | attrib | pseudo *
22
-                //   |  HASH | class | attrib | pseudo +
23
-                // element_name
24
-                //   : IDENT | '*'
25
-                //   ;
26
-                // class
27
-                //   : '.' IDENT
28
-                //   ;
29
-                // attrib
30
-                //   : '' S* IDENT S*   '=' | INCLUDES | DASHMATCH  S*
31
-                //      IDENT | STRING  S* ? ''
32
-                //   ;
33
-                // pseudo
34
-                //   : ':'  IDENT | FUNCTION S* IDENT S*? ')' 
35
-                //   ;
36
-                //
37
-                // For reference, here are the relevant tokens:
38
-                //
39
-                // HASH         #{name}
40
-                // IDENT        {ident}
41
-                // INCLUDES     ==
42
-                // DASHMATCH    |=
43
-                // STRING       {string}
44
-                // FUNCTION     {ident}\(
45
-                //
46
-                // And the lexical scanner tokens
47
-                //
48
-                // name         {nmchar}+
49
-                // nmchar       _a-z0-9-|{nonascii}|{escape}
50
-                // nonascii     \240-\377
51
-                // escape       {unicode}|\\^\r\n\f0-9a-f
52
-                // unicode      \\{h}}{1,6}(\r\n| \t\r\n\f)?
53
-                // ident        -?{nmstart}{nmchar*}
54
-                // nmstart      _a-z|{nonascii}|{escape}
55
-                // string       {string1}|{string2}
56
-                // string1      \"(^\n\r\f\\"|\\{nl}|{escape})*\"
57
-                // string2      \'(^\n\r\f\\"|\\{nl}|{escape})*\'
58
-                //
59
-                // We'll implement a subset (in order to reduce attack
60
-                // surface); in particular:
61
-                //
62
-                //      - No Unicode support
63
-                //      - No escapes support
64
-                //      - No string support (by proxy no attrib support)
65
-                //      - element_name is matched against allowed
66
-                //        elements (some people might find this
67
-                //        annoying...)
68
-                //      - Pseudo-elements one of :first-child, :link,
69
-                //        :visited, :active, :hover, :focus
70
+            if (is_array($decls)) {
71
+                foreach ($decls as $selector => $style) {
72
+                    $selector = trim($selector);
73
+                    if ($selector === '') {
74
+                        continue;
75
+                    } // should not happen
76
+                    // Parse the selector
77
+                    // Here is the relevant part of the CSS grammar:
78
+                    //
79
+                    // ruleset
80
+                    //   : selector  ',' S* selector * '{' ...
81
+                    // selector
82
+                    //   : simple_selector  combinator selector | S+  combinator? selector ? ?
83
+                    // combinator
84
+                    //   : '+' S*
85
+                    //   : '>' S*
86
+                    // simple_selector
87
+                    //   : element_name  HASH | class | attrib | pseudo *
88
+                    //   |  HASH | class | attrib | pseudo +
89
+                    // element_name
90
+                    //   : IDENT | '*'
91
+                    //   ;
92
+                    // class
93
+                    //   : '.' IDENT
94
+                    //   ;
95
+                    // attrib
96
+                    //   : '' S* IDENT S*   '=' | INCLUDES | DASHMATCH  S*
97
+                    //      IDENT | STRING  S* ? ''
98
+                    //   ;
99
+                    // pseudo
100
+                    //   : ':'  IDENT | FUNCTION S* IDENT S*? ')' 
101
+                    //   ;
102
+                    //
103
+                    // For reference, here are the relevant tokens:
104
+                    //
105
+                    // HASH         #{name}
106
+                    // IDENT        {ident}
107
+                    // INCLUDES     ==
108
+                    // DASHMATCH    |=
109
+                    // STRING       {string}
110
+                    // FUNCTION     {ident}\(
111
+                    //
112
+                    // And the lexical scanner tokens
113
+                    //
114
+                    // name         {nmchar}+
115
+                    // nmchar       _a-z0-9-|{nonascii}|{escape}
116
+                    // nonascii     \240-\377
117
+                    // escape       {unicode}|\\^\r\n\f0-9a-f
118
+                    // unicode      \\{h}}{1,6}(\r\n| \t\r\n\f)?
119
+                    // ident        -?{nmstart}{nmchar*}
120
+                    // nmstart      _a-z|{nonascii}|{escape}
121
+                    // string       {string1}|{string2}
122
+                    // string1      \"(^\n\r\f\\"|\\{nl}|{escape})*\"
123
+                    // string2      \'(^\n\r\f\\"|\\{nl}|{escape})*\'
124
+                    //
125
+                    // We'll implement a subset (in order to reduce attack
126
+                    // surface); in particular:
127
+                    //
128
+                    //      - No Unicode support
129
+                    //      - No escapes support
130
+                    //      - No string support (by proxy no attrib support)
131
+                    //      - element_name is matched against allowed
132
+                    //        elements (some people might find this
133
+                    //        annoying...)
134
+                    //      - Pseudo-elements one of :first-child, :link,
135
+                    //        :visited, :active, :hover, :focus
136
 
137
-                // handle ruleset
138
-                $selectors = array_map('trim', explode(',', $selector));
139
-                $new_selectors = array();
140
-                foreach ($selectors as $sel) {
141
-                    // split on +, > and spaces
142
-                    $basic_selectors = preg_split('/\s*(+> )\s*/', $sel, -1, PREG_SPLIT_DELIM_CAPTURE);
143
-                    // even indices are chunks, odd indices are
144
-                    // delimiters
145
-                    $nsel = null;
146
-                    $delim = null; // guaranteed to be non-null after
147
-                    // two loop iterations
148
-                    for ($i = 0, $c = count($basic_selectors); $i < $c; $i++) {
149
-                        $x = $basic_selectors$i;
150
-                        if ($i % 2) {
151
-                            // delimiter
152
-                            if ($x === ' ') {
153
-                                $delim = ' ';
154
-                            } else {
155
-                                $delim = ' ' . $x . ' ';
156
-                            }
157
-                        } else {
158
-                            // simple selector
159
-                            $components = preg_split('/(#.:)/', $x, -1, PREG_SPLIT_DELIM_CAPTURE);
160
-                            $sdelim = null;
161
-                            $nx = null;
162
-                            for ($j = 0, $cc = count($components); $j < $cc; $j++) {
163
-                                $y = $components$j;
164
-                                if ($j === 0) {
165
-                                    if ($y === '*' || isset($html_definition->info$y = strtolower($y))) {
166
-                                        $nx = $y;
167
-                                    } else {
168
-                                        // $nx stays null; this matters
169
-                                        // if we don't manage to find
170
-                                        // any valid selector content,
171
-                                        // in which case we ignore the
172
-                                        // outer $delim
173
-                                    }
174
-                                } elseif ($j % 2) {
175
-                                    // set delimiter
176
-                                    $sdelim = $y;
177
+                    // handle ruleset
178
+                    $selectors = array_map('trim', explode(',', $selector));
179
+                    $new_selectors = array();
180
+                    foreach ($selectors as $sel) {
181
+                        // split on +, > and spaces
182
+                        $basic_selectors = preg_split('/\s*(+> )\s*/', $sel, -1, PREG_SPLIT_DELIM_CAPTURE);
183
+                        // even indices are chunks, odd indices are
184
+                        // delimiters
185
+                        $nsel = null;
186
+                        $delim = null; // guaranteed to be non-null after
187
+                        // two loop iterations
188
+                        for ($i = 0, $c = count($basic_selectors); $i < $c; $i++) {
189
+                            $x = $basic_selectors$i;
190
+                            if ($i % 2) {
191
+                                // delimiter
192
+                                if ($x === ' ') {
193
+                                    $delim = ' ';
194
                                 } else {
195
-                                    $attrdef = null;
196
-                                    if ($sdelim === '#') {
197
-                                        $attrdef = $this->_id_attrdef;
198
-                                    } elseif ($sdelim === '.') {
199
-                                        $attrdef = $this->_class_attrdef;
200
-                                    } elseif ($sdelim === ':') {
201
-                                        $attrdef = $this->_enum_attrdef;
202
+                                    $delim = ' ' . $x . ' ';
203
+                                }
204
+                            } else {
205
+                                // simple selector
206
+                                $components = preg_split('/(#.:)/', $x, -1, PREG_SPLIT_DELIM_CAPTURE);
207
+                                $sdelim = null;
208
+                                $nx = null;
209
+                                for ($j = 0, $cc = count($components); $j < $cc; $j++) {
210
+                                    $y = $components$j;
211
+                                    if ($j === 0) {
212
+                                        if ($y === '*' || isset($html_definition->info$y = strtolower($y))) {
213
+                                            $nx = $y;
214
+                                        } else {
215
+                                            // $nx stays null; this matters
216
+                                            // if we don't manage to find
217
+                                            // any valid selector content,
218
+                                            // in which case we ignore the
219
+                                            // outer $delim
220
+                                        }
221
+                                    } elseif ($j % 2) {
222
+                                        // set delimiter
223
+                                        $sdelim = $y;
224
                                     } else {
225
-                                        throw new HTMLPurifier_Exception('broken invariant sdelim and preg_split');
226
-                                    }
227
-                                    $r = $attrdef->validate($y, $config, $context);
228
-                                    if ($r !== false) {
229
-                                        if ($r !== true) {
230
-                                            $y = $r;
231
+                                        $attrdef = null;
232
+                                        if ($sdelim === '#') {
233
+                                            $attrdef = $this->_id_attrdef;
234
+                                        } elseif ($sdelim === '.') {
235
+                                            $attrdef = $this->_class_attrdef;
236
+                                        } elseif ($sdelim === ':') {
237
+                                            $attrdef = $this->_enum_attrdef;
238
+                                        } else {
239
+                                            throw new HTMLPurifier_Exception('broken invariant sdelim and preg_split');
240
                                         }
241
-                                        if ($nx === null) {
242
-                                            $nx = '';
243
+                                        $r = $attrdef->validate($y, $config, $context);
244
+                                        if ($r !== false) {
245
+                                            if ($r !== true) {
246
+                                                $y = $r;
247
+                                            }
248
+                                            if ($nx === null) {
249
+                                                $nx = '';
250
+                                            }
251
+                                            $nx .= $sdelim . $y;
252
                                         }
253
-                                        $nx .= $sdelim . $y;
254
                                     }
255
                                 }
256
-                            }
257
-                            if ($nx !== null) {
258
-                                if ($nsel === null) {
259
-                                    $nsel = $nx;
260
+                                if ($nx !== null) {
261
+                                    if ($nsel === null) {
262
+                                        $nsel = $nx;
263
+                                    } else {
264
+                                        $nsel .= $delim . $nx;
265
+                                    }
266
                                 } else {
267
-                                    $nsel .= $delim . $nx;
268
+                                    // delimiters to the left of invalid
269
+                                    // basic selector ignored
270
                                 }
271
-                            } else {
272
-                                // delimiters to the left of invalid
273
-                                // basic selector ignored
274
                             }
275
                         }
276
-                    }
277
-                    if ($nsel !== null) {
278
-                        if (!empty($scopes)) {
279
-                            foreach ($scopes as $s) {
280
-                                $new_selectors = "$s $nsel";
281
+                        if ($nsel !== null) {
282
+                            if (!empty($scopes)) {
283
+                                foreach ($scopes as $s) {
284
+                                    $new_selectors = "$s $nsel";
285
+                                }
286
+                            } else {
287
+                                $new_selectors = $nsel;
288
                             }
289
-                        } else {
290
-                            $new_selectors = $nsel;
291
                         }
292
                     }
293
-                }
294
-                if (empty($new_selectors)) {
295
-                    continue;
296
-                }
297
-                $selector = implode(', ', $new_selectors);
298
-                foreach ($style as $name => $value) {
299
-                    if (!isset($css_definition->info$name)) {
300
-                        unset($style$name);
301
+                    if (empty($new_selectors)) {
302
                         continue;
303
                     }
304
-                    $def = $css_definition->info$name;
305
-                    $ret = $def->validate($value, $config, $context);
306
-                    if ($ret === false) {
307
-                        unset($style$name);
308
-                    } else {
309
-                        $style$name = $ret;
310
+                    $selector = implode(', ', $new_selectors);
311
+                    foreach ($style as $name => $value) {
312
+                        if (!isset($css_definition->info$name)) {
313
+                            unset($style$name);
314
+                            continue;
315
+                        }
316
+                        $def = $css_definition->info$name;
317
+                        $ret = $def->validate($value, $config, $context);
318
+                        if ($ret === false) {
319
+                            unset($style$name);
320
+                        } else {
321
+                            $style$name = $ret;
322
+                        }
323
                     }
324
+                    $new_decls$selector = $style;
325
                 }
326
-                $new_decls$selector = $style;
327
+            } else {
328
+                continue;
329
             }
330
             $new_css$k = $new_decls;
331
         }
332
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/HTMLModule/Tidy.php Changed
9
 
1
@@ -221,6 +221,7 @@
2
      */
3
     public function makeFixes()
4
     {
5
+        return array();
6
     }
7
 }
8
 
9
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/LanguageFactory.php Changed
10
 
1
@@ -109,7 +109,7 @@
2
         } else {
3
             $class = 'HTMLPurifier_Language_' . $pcode;
4
             $file  = $this->dir . '/Language/classes/' . $code . '.php';
5
-            if (file_exists($file) || class_exists($class, false)) {
6
+            if (file_exists($file) || class_exists($class)) {
7
                 $lang = new $class($config, $context);
8
             } else {
9
                 // Go fallback
10
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer.php Changed
10
 
1
@@ -101,7 +101,7 @@
2
                         break;
3
                     }
4
 
5
-                    if (class_exists('DOMDocument', false) &&
6
+                    if (class_exists('DOMDocument') &&
7
                         method_exists('DOMDocument', 'loadHTML') &&
8
                         !extension_loaded('domxml')
9
                     ) {
10
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Lexer/DOMLex.php Changed
9
 
1
@@ -104,7 +104,6 @@
2
      * To iterate is human, to recurse divine - L. Peter Deutsch
3
      * @param DOMNode $node DOMNode to be tokenized.
4
      * @param HTMLPurifier_Token $tokens   Array-list of already tokenized tokens.
5
-     * @return HTMLPurifier_Token of node appended to previously passed tokens.
6
      */
7
     protected function tokenizeDOM($node, &$tokens, $config)
8
     {
9
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/Printer/ConfigForm.php Changed
13
 
1
@@ -33,6 +33,11 @@
2
     protected $compress = false;
3
 
4
     /**
5
+     * @var HTMLPurifier_Config
6
+     */
7
+    protected $genConfig;
8
+
9
+    /**
10
      * @param string $name Form element name for directives to be stuffed into
11
      * @param string $doc_url String documentation URL, will have fragment tagged on
12
      * @param bool $compress Integer max length before compressing a directive name, set to false to turn off
13
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/URIScheme/tel.php Changed
16
 
1
@@ -33,11 +33,11 @@
2
         $uri->host     = null;
3
         $uri->port     = null;
4
 
5
-        // Delete all non-numeric characters, non-x characters
6
+        // Delete all non-numeric characters, commas, and non-x characters
7
         // from phone number, EXCEPT for a leading plus sign.
8
-        $uri->path = preg_replace('/(?!^\+)^\dx/', '',
9
+        $uri->path = preg_replace('/(?!^\+)^\dx,/', '',
10
                      // Normalize e(x)tension to lower-case
11
-                     str_replace('X', 'x', $uri->path));
12
+                     str_replace('X', 'x', rawurldecode($uri->path)));
13
 
14
         return true;
15
     }
16
roundcubemail-1.5.tar.gz/vendor/ezyang/htmlpurifier/library/HTMLPurifier/UnitConverter.php Changed
28
 
1
@@ -261,7 +261,7 @@
2
      */
3
     private function round($n, $sigfigs)
4
     {
5
-        $new_log = (int)floor(log(abs($n), 10)); // Number of digits left of decimal - 1
6
+        $new_log = (int)floor(log(abs((float)$n), 10)); // Number of digits left of decimal - 1
7
         $rp = $sigfigs - $new_log - 1; // Number of decimal places needed
8
         $neg = $n < 0 ? '-' : ''; // Negative sign
9
         if ($this->bcmath) {
10
@@ -276,7 +276,7 @@
11
             }
12
             return $n;
13
         } else {
14
-            return $this->scale(round($n, $sigfigs - $new_log - 1), $rp + 1);
15
+            return $this->scale(round((float)$n, $sigfigs - $new_log - 1), $rp + 1);
16
         }
17
     }
18
 
19
@@ -300,7 +300,7 @@
20
             // Now we return it, truncating the zero that was rounded off.
21
             return substr($precise, 0, -1) . str_repeat('0', -$scale + 1);
22
         }
23
-        return sprintf('%.' . $scale . 'f', (float)$r);
24
+        return number_format((float)$r, $scale, '.', '');
25
     }
26
 }
27
 
28
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/index Changed
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/logs/HEAD Changed
8
 
1
@@ -1,3 +1,3 @@
2
-0000000000000000000000000000000000000000 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@ea318f2d1d17.(none)> 1699266519 +0000   clone: from /home/default/.cache/composer/vcs/https---git.kolab.org-diffusion-PNL-php-net-ldap.git/
3
-39a754269fe6e5d94b0fe87215e89232876bda01 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@ea318f2d1d17.(none)> 1699266519 +0000   checkout: moving from master to master
4
-39a754269fe6e5d94b0fe87215e89232876bda01 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@ea318f2d1d17.(none)> 1699266519 +0000   reset: moving to 39a754269fe6e5d94b0fe87215e89232876bda01
5
+0000000000000000000000000000000000000000 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@4aafbf272597.(none)> 1700827978 +0000   clone: from /home/default/.cache/composer/vcs/https---git.kolab.org-diffusion-PNL-php-net-ldap.git/
6
+39a754269fe6e5d94b0fe87215e89232876bda01 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@4aafbf272597.(none)> 1700827978 +0000   checkout: moving from master to master
7
+39a754269fe6e5d94b0fe87215e89232876bda01 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@4aafbf272597.(none)> 1700827978 +0000   reset: moving to 39a754269fe6e5d94b0fe87215e89232876bda01
8
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/logs/refs/heads/master Changed
4
 
1
@@ -1,1 +1,1 @@
2
-0000000000000000000000000000000000000000 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@ea318f2d1d17.(none)> 1699266519 +0000   clone: from /home/default/.cache/composer/vcs/https---git.kolab.org-diffusion-PNL-php-net-ldap.git/
3
+0000000000000000000000000000000000000000 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@4aafbf272597.(none)> 1700827978 +0000   clone: from /home/default/.cache/composer/vcs/https---git.kolab.org-diffusion-PNL-php-net-ldap.git/
4
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/logs/refs/remotes/origin/HEAD Changed
4
 
1
@@ -1,1 +1,1 @@
2
-0000000000000000000000000000000000000000 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@ea318f2d1d17.(none)> 1699266519 +0000   clone: from /home/default/.cache/composer/vcs/https---git.kolab.org-diffusion-PNL-php-net-ldap.git/
3
+0000000000000000000000000000000000000000 39a754269fe6e5d94b0fe87215e89232876bda01 default <default@4aafbf272597.(none)> 1700827978 +0000   clone: from /home/default/.cache/composer/vcs/https---git.kolab.org-diffusion-PNL-php-net-ldap.git/
4
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/objects/info/packs Changed
5
 
1
@@ -1,2 +1,2 @@
2
-P pack-cd818dc721b0bfe14b5d34b491e4262497e4dffd.pack
3
+P pack-5071ce79d8f518d56d4d77de8369f7db5a79f91d.pack
4
 
5
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/objects/pack/pack-5071ce79d8f518d56d4d77de8369f7db5a79f91d.idx Added
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/objects/pack/pack-5071ce79d8f518d56d4d77de8369f7db5a79f91d.pack Added
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/objects/pack/pack-cd818dc721b0bfe14b5d34b491e4262497e4dffd.idx Deleted
roundcubemail-1.5.tar.gz/vendor/kolab/net_ldap3/.git/objects/pack/pack-cd818dc721b0bfe14b5d34b491e4262497e4dffd.pack Deleted
roundcubemail-1.5.tar.gz/vendor/pear/crypt_gpg/Crypt/GPG/ProcessHandler.php Changed
10
 
1
@@ -251,7 +251,7 @@
2
             // remember the user id for pretty exception messages
3
             // GnuPG 2.1.15 gives me: "USERID_HINT 0000000000000000 ?"
4
             $keyId = $tokens1;
5
-            if (strcspn($keyId, '0')) {
6
+            if (preg_match('/1-9A-F/', $keyId)) {
7
                 $username = implode(' ', array_splice($tokens, 2));
8
                 $this->data'BadPassphrases'$keyId = $username;
9
             }
10
roundcubemail-1.5.tar.gz/vendor/phpstan/phpstan/phpstan.phar Changed
roundcubemail-1.5.tar.gz/vendor/phpstan/phpstan/phpstan.phar.asc Changed
31
 
1
@@ -1,16 +1,16 @@
2
 -----BEGIN PGP SIGNATURE-----
3
 
4
-iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmVHkT8ACgkQUcZzBf/C
5
-5cAB/RAAg+/UhQeGwHvizVIm77Td9pluVpTgJt/7AM8FnovbiKm/CTpmeZ255qdO
6
-IbViFFyM627WgeIB6cobNfBeDxjNuZSQKIfGwab2Q30CGI5WHNnRdTUwtMyq8kdb
7
-biAz+fbU/bnB+ZAOpmPByxL+m8skWRT9CvvBOn06DK0798fLdF115F6FTUZLZIRg
8
-B6owjK6ZW1GGmukAJp81Q5uM6nM4h4vqcmK1tSinDhixXA1H38jP4wIA6lrqthvV
9
-CCsq9lKepQzJU85Ip464N9OMRrkYf9mh/6c735o59yHS0p26S+5gNYkeT4selXvx
10
-zTq6wk1eB12FW6O0+Bn8V/lNy6BHK/MnAC/RFKPOJW2IOkKJjX4/MauRKrRa1gN6
11
-K4kvYBuFdsg5zAbgpOAdLYoKP/qMP1CialgPrlOJo9nB8sNMRkU+BD9lphW7Jc6v
12
-atzjU2H1xCKVqx1WL5XDBe4vZyVUaAEYfKp6tndTaa4Bi9ZR3BO94fNaxAVIn2Ai
13
-YxC8mw4PVBGMpj/N66vQb6OturvngpACUlNuW3O+/ckj1CSw9QLXNS4pOwIbslL3
14
-Xu58Xj0HE4W2Dd7UmjzDoidl+x1q50gSXzbrzORrI5jMan5McsTUm4HfTYTMnso5
15
-ezoEIneuwXa8hoJqLdiX36Xlf/7K59W7sF2hPDXgaii7L9kN6aM=
16
-=xFKI
17
+iQIzBAABCgAdFiEEynwsejDI6OEnSoR2UcZzBf/C5cAFAmVc2xYACgkQUcZzBf/C
18
+5cALsA//anH6sd4y34I63DpmUIAkwhOcJ/a3EJAeMZcPfuK+9GQSb5uvTwcCVdd3
19
+eoBar36Nw/H9I0I+Ksl2CaxUkWhb5LwK1AyBelzIqXA/LgsGyAV0uNYxVaYA72XD
20
+6qXz5K2imvUpcTHtb3YhwpALhdv0DPW41WaWbBmZsxYqQoLS1O8E/eA9ZRqwjO2M
21
+buSHEu626a8q55N0j4Gnogzokm8cdkls3uOXI/pid4VCc0nllrAwXDI6MvXW+NvI
22
+wuqluWNXZsWtkyQzJqVoVbGhgXV91vbFLkwdh1T+ONVvtn6Xt2dBOfa+VdHEhTyZ
23
+cafB11phVXUNyh/B476SjVdYrSdgYWeeJpUVgiHUfbKZT3XJdNRj1bi/lSk4Po9V
24
+BkdMdBf6O1ffCjERfndHYhPiKWv8AEu2t1/a6qXou4DHIdop6VkCNvq/pCzspydg
25
+AXq/2Wd/d2giQXAYEH7ZGESqOTNEPeFy9OEnpY1PCPcTQZEmLepO+UuXqb1B0DHT
26
+sphBYMmrDbzOrWYT+OegzDt/V9w/4+SR7YiEXvNDIfrUjRcx6YeTk/CgfbrC9YLo
27
+QgfB1h+23AseU1M/64De4LMJPHdWg1yDsG7fRJY5UaER1bUGfO12ODjqTICmFoUS
28
+LtV7L7wNXRce5eDecIjk9v9owaywY+zQcdIlGw8B6U4yaij2lHc=
29
+=BpNt
30
 -----END PGP SIGNATURE-----
31
roundcubemail-1.5.tar.gz/vendor/sabre/dav/.github Deleted
2
 
1
-(directory)
2
roundcubemail-1.5.tar.gz/vendor/sabre/dav/.github/workflows Deleted
2
 
1
-(directory)
2
roundcubemail-1.5.tar.gz/vendor/sabre/dav/.github/workflows/ci.yml Deleted
129
 
1
@@ -1,127 +0,0 @@
2
-name: continuous-integration
3
-on:
4
-  push:
5
-    branches:
6
-      - master
7
-      - release/*
8
-  pull_request:
9
-
10
-jobs:
11
-  code-analysis:
12
-    runs-on: ubuntu-latest
13
-    name: Code Analysis (PHP ${{ matrix.php-versions }})
14
-    strategy:
15
-      fail-fast: false
16
-      matrix:
17
-        php-versions:  '7.4' 
18
-    steps:
19
-      - name: Checkout
20
-        uses: actions/checkout@v2
21
-
22
-      - name: Setup PHP, with composer and extensions
23
-        uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
24
-        with:
25
-          php-version: ${{ matrix.php-versions }}
26
-          extensions: mbstring, dom, fileinfo, mysql, redis, opcache
27
-          tools: composer
28
-
29
-      - name: Get composer cache directory
30
-        id: composer-cache
31
-        run: echo "::set-output name=dir::$(composer config cache-files-dir)"
32
-
33
-      - name: Cache composer dependencies
34
-        uses: actions/cache@v2
35
-        with:
36
-          path: ${{ steps.composer-cache.outputs.dir }}
37
-          # Use composer.json for key, if composer.lock is not committed.
38
-          # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
39
-          key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
40
-          restore-keys: ${{ runner.os }}-composer-
41
-
42
-      - name: Install Composer dependencies
43
-        run: composer install --no-progress --prefer-dist --optimize-autoloader
44
-
45
-      - name: PHP CS-Fixer
46
-        run: php vendor/bin/php-cs-fixer fix --dry-run --diff
47
-
48
-      - name: PHPStan
49
-        run: composer phpstan
50
-
51
-  unit-testing:
52
-    name: PHPUnit (PHP ${{ matrix.php-versions }})
53
-    runs-on: ubuntu-latest
54
-    strategy:
55
-      fail-fast: false
56
-      matrix:
57
-        php-versions:  '7.1', '7.2', '7.3', '7.4', '8.0' 
58
-        coverage:  'none' 
59
-        streaming:  false 
60
-        include:
61
-          - php-versions: '8.1'
62
-            coverage: 'pcov'
63
-            streaming: true
64
-
65
-    services:
66
-      mariadb:
67
-        image: mariadb
68
-        env:
69
-          MARIADB_DATABASE: 'sabredav_test'
70
-          MARIADB_ROOT_PASSWORD: root
71
-        ports:
72
-          - 3306:3306
73
-      postgres:
74
-        image: postgres
75
-        env:
76
-          POSTGRES_DB: 'sabredav_test'
77
-          POSTGRES_PASSWORD: postgres
78
-        ports:
79
-          - 5432:5432
80
-    steps:
81
-      - name: Checkout
82
-        uses: actions/checkout@v2
83
-
84
-      - name: Setup PHP, with composer and extensions
85
-        uses: shivammathur/setup-php@v2 #https://github.com/shivammathur/setup-php
86
-        with:
87
-          php-version: ${{ matrix.php-versions }}
88
-          extensions: mbstring, dom, fileinfo, pdo_sqlite, pgsql, mysql, redis, opcache
89
-          coverage: ${{ matrix.coverage }}
90
-          tools: composer
91
-
92
-      - name: Get composer cache directory
93
-        id: composer-cache
94
-        run: echo "::set-output name=dir::$(composer config cache-files-dir)"
95
-
96
-      - name: Cache composer dependencies
97
-        uses: actions/cache@v2
98
-        with:
99
-          path: ${{ steps.composer-cache.outputs.dir }}
100
-          # Use composer.json for key, if composer.lock is not committed.
101
-          # key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.json') }}
102
-          key: ${{ runner.os }}-composer-${{ hashFiles('**/composer.lock') }}
103
-          restore-keys: ${{ runner.os }}-composer-
104
-
105
-      - name: Install Composer dependencies
106
-        run: composer install --no-progress --prefer-dist --optimize-autoloader
107
-
108
-      - name: PHPUnit
109
-        if: matrix.streaming == false
110
-        run: vendor/bin/phpunit --verbose --configuration tests/phpunit.xml --coverage-clover=coverage.xml
111
-        env:
112
-          SABRE_MYSQLUSER: root
113
-          SABRE_MYSQLPASS: root
114
-          SABRE_MYSQLDSN: "mysql:host=127.0.0.1;port=3306;dbname=sabredav_test"
115
-          SABRE_PGSQLDSN: "pgsql:host=127.0.0.1;port=5432;dbname=sabredav_test;user=postgres;password=postgres"
116
-
117
-      - name: PHPUnit (with streaming)
118
-        if: matrix.streaming == true
119
-        run: vendor/bin/phpunit --verbose --configuration tests/phpunit.xml --coverage-clover=coverage.xml
120
-        env:
121
-          SABRE_MYSQLUSER: root
122
-          SABRE_MYSQLPASS: root
123
-          SABRE_MYSQLDSN: "mysql:host=127.0.0.1;port=3306;dbname=sabredav_test"
124
-          SABRE_PGSQLDSN: "pgsql:host=127.0.0.1;port=5432;dbname=sabredav_test;user=postgres;password=postgres"
125
-          RUN_TEST_WITH_STREAMING_PROPFIND: "true"
126
-
127
-      - uses: codecov/codecov-action@v2
128
-        if: matrix.coverage != 'none'
129
roundcubemail-1.5.tar.gz/vendor/sabre/dav/.php_cs.dist Deleted
15
 
1
@@ -1,12 +0,0 @@
2
-<?php
3
-
4
-$config = PhpCsFixer\Config::create();
5
-$config->getFinder()
6
-    ->exclude('vendor')
7
-    ->in(__DIR__);
8
-$config->setRules(
9
-    '@PSR1' => true,
10
-    '@Symfony' => true
11
-);
12
-
13
-return $config;
14
\ No newline at end of file
15
roundcubemail-1.5.tar.gz/vendor/sabre/dav/.travis.yml Deleted
75
 
1
@@ -1,73 +0,0 @@
2
-language: php
3
-sudo: required
4
-
5
-branches:
6
-  only:
7
-    - master
8
-
9
-php:
10
-  - 7.1
11
-  - 7.2
12
-  - 7.3
13
-  - 7.4
14
-
15
-env:
16
-  global:
17
-    - SABRE_MYSQLUSER="root"
18
-    - SABRE_MYSQLPASS=""
19
-    - SABRE_MYSQLDSN="mysql:host=127.0.0.1;dbname=sabredav_test"
20
-    - RUN_PHPCSFIXER="TRUE"
21
-    - RUN_PHPUNIT="TRUE"
22
-    - RUN_PHPSTAN="FALSE"
23
-  matrix:
24
-    - PREFER_LOWEST="" TEST_DEPS="" REPORT_COVERAGE="TRUE" WITH_COVERAGE="--coverage-clover=coverage.xml"
25
-    - PREFER_LOWEST="--prefer-lowest" TEST_DEPS="tests/Sabre/" REPORT_COVERAGE="FALSE" WITH_COVERAGE=""
26
-
27
-matrix:
28
-  include:
29
-    - name: 'PHP8'
30
-      dist: bionic
31
-      php: 8.0
32
-      env:
33
-        - RUN_PHPCSFIXER="FALSE"
34
-        - REPORT_COVERAGE="FALSE"
35
-    - name: 'PHPStan'
36
-      php: 7.4
37
-      env:
38
-        - RUN_PHPCSFIXER="FALSE"
39
-        - RUN_PHPUNIT="FALSE"
40
-        - RUN_PHPSTAN="TRUE"
41
-        - REPORT_COVERAGE="FALSE"
42
-    - name: 'Test with streaming propfind'
43
-      php: 7.2
44
-      env:
45
-        - RUN_TEST_WITH_STREAMING_PROPFIND="TRUE"
46
-        - REPORT_COVERAGE="FALSE"
47
-  fast_finish: true
48
-
49
-services:
50
-  - mysql
51
-  - postgresql
52
-
53
-before_script:
54
-  - mysql -u root -h 127.0.0.1 -e 'create database sabredav_test'
55
-  - psql -c "create database sabredav_test" -U postgres
56
-  - psql -c "create user sabredav with PASSWORD 'sabredav';GRANT ALL PRIVILEGES ON DATABASE sabredav_test TO sabredav" -U postgres
57
-  - if  $RUN_PHPCSFIXER == "FALSE" ; then composer remove --no-update --dev friendsofphp/php-cs-fixer; fi
58
-  - composer update $PREFER_LOWEST
59
-
60
-addons:
61
-  postgresql: "9.5"
62
-
63
-script:
64
-  - if  $RUN_PHPCSFIXER == "TRUE" ; then php vendor/bin/php-cs-fixer fix --dry-run --diff; fi
65
-  - if  $RUN_PHPUNIT == "TRUE" ; then php vendor/bin/phpunit --configuration tests/phpunit.xml $WITH_COVERAGE $TEST_DEPS; fi
66
-  - if  $RUN_PHPUNIT == "TRUE"  ; then rm -f ~/.phpenv/versions/$(phpenv version-name)/etc/conf.d/xdebug.ini; fi
67
-  - if  $RUN_PHPSTAN == "TRUE" ; then composer phpstan; fi
68
-
69
-after_success:
70
-  - if  $REPORT_COVERAGE == "TRUE" ; then bash <(curl -s https://codecov.io/bash); fi
71
-
72
-cache:
73
-  directories:
74
-    - $HOME/.composer/cache
75
roundcubemail-1.5.tar.gz/vendor/sabre/dav/composer.json Changed
42
 
1
@@ -33,11 +33,11 @@
2
         "ext-json": "*"
3
     },
4
     "require-dev" : {
5
-        "friendsofphp/php-cs-fixer": "^2.17.1",
6
-        "phpstan/phpstan": "^0.12",
7
-        "phpunit/phpunit" : "^7.5 || ^8.5 || ^9.0",
8
-        "evert/phpdoc-md" : "~0.1.0",
9
-        "monolog/monolog": "^1.18"
10
+        "friendsofphp/php-cs-fixer": "^2.19",
11
+        "monolog/monolog": "^1.27",
12
+        "phpstan/phpstan": "^0.12 || ^1.0",
13
+        "phpstan/phpstan-phpunit": "^1.0",
14
+        "phpunit/phpunit": "^7.5 || ^8.5 || ^9.6"
15
     },
16
     "suggest" : {
17
         "ext-curl" : "*",
18
@@ -46,21 +46,12 @@
19
     },
20
     "autoload": {
21
         "psr-4" : {
22
-            "Sabre\\DAV\\"     : "lib/DAV/",
23
-            "Sabre\\DAVACL\\"  : "lib/DAVACL/",
24
-            "Sabre\\CalDAV\\"  : "lib/CalDAV/",
25
-            "Sabre\\CardDAV\\" : "lib/CardDAV/"
26
+            "Sabre\\" : "lib/"
27
         }
28
     },
29
     "autoload-dev" : {
30
         "psr-4" : {
31
-            "Sabre\\" : "tests/Sabre/",
32
-            "Sabre\\CalDAV\\" : "tests/Sabre/CalDAV",
33
-            "Sabre\\CardDAV\\" : "tests/Sabre/CardDAV",
34
-            "Sabre\\DAV\\" : "tests/Sabre/DAV",
35
-            "Sabre\\DAV\\Property\\" : "tests/Sabre/DAV/Xml/Property",
36
-            "Sabre\\DAVACL\\" : "tests/Sabre/DAVACL",
37
-            "Sabre\\HTTP\\" : "tests/Sabre/HTTP"
38
+            "Sabre\\" : "tests/Sabre/"
39
         }
40
     },
41
     "support" : {
42
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CalDAV/Backend/AbstractBackend.php Changed
19
 
1
@@ -78,7 +78,7 @@
2
      *
3
      * This default may well be good enough for personal use, and calendars
4
      * that aren't very large. But if you anticipate high usage, big calendars
5
-     * or high loads, you are strongly adviced to optimize certain paths.
6
+     * or high loads, you are strongly advised to optimize certain paths.
7
      *
8
      * The best way to do so is override this method and to optimize
9
      * specifically for 'common filters'.
10
@@ -95,7 +95,7 @@
11
      * Note that especially time-range-filters may be difficult to parse. A
12
      * time-range filter specified on a VEVENT must for instance also handle
13
      * recurrence rules correctly.
14
-     * A good example of how to interprete all these filters can also simply
15
+     * A good example of how to interpret all these filters can also simply
16
      * be found in \Sabre\CalDAV\CalendarQueryFilter. This class is as correct
17
      * as possible, so it gives you a good idea on what type of stuff you need
18
      * to think of.
19
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CalDAV/Backend/PDO.php Changed
10
 
1
@@ -939,7 +939,7 @@
2
      * @param int    $syncLevel
3
      * @param int    $limit
4
      *
5
-     * @return array
6
+     * @return array|null
7
      */
8
     public function getChangesForCalendar($calendarId, $syncToken, $syncLevel, $limit = null)
9
     {
10
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CalDAV/Backend/SyncSupport.php Changed
10
 
1
@@ -77,7 +77,7 @@
2
      * @param int    $syncLevel
3
      * @param int    $limit
4
      *
5
-     * @return array
6
+     * @return array|null
7
      */
8
     public function getChangesForCalendar($calendarId, $syncToken, $syncLevel, $limit = null);
9
 }
10
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CalDAV/Calendar.php Changed
33
 
1
@@ -186,17 +186,17 @@
2
      * The contents of the new file must be a valid ICalendar string.
3
      *
4
      * @param string   $name
5
-     * @param resource $calendarData
6
+     * @param resource $data
7
      *
8
      * @return string|null
9
      */
10
-    public function createFile($name, $calendarData = null)
11
+    public function createFile($name, $data = null)
12
     {
13
-        if (is_resource($calendarData)) {
14
-            $calendarData = stream_get_contents($calendarData);
15
+        if (is_resource($data)) {
16
+            $data = stream_get_contents($data);
17
         }
18
 
19
-        return $this->caldavBackend->createCalendarObject($this->calendarInfo'id', $name, $calendarData);
20
+        return $this->caldavBackend->createCalendarObject($this->calendarInfo'id', $name, $data);
21
     }
22
 
23
     /**
24
@@ -442,7 +442,7 @@
25
      * @param int    $syncLevel
26
      * @param int    $limit
27
      *
28
-     * @return array
29
+     * @return array|null
30
      */
31
     public function getChanges($syncToken, $syncLevel, $limit = null)
32
     {
33
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CalDAV/CalendarHome.php Changed
14
 
1
@@ -96,10 +96,10 @@
2
      *
3
      * This is currently not allowed
4
      *
5
-     * @param string   $filename
6
+     * @param string   $name
7
      * @param resource $data
8
      */
9
-    public function createFile($filename, $data = null)
10
+    public function createFile($name, $data = null)
11
     {
12
         throw new DAV\Exception\MethodNotAllowed('Creating new files in this collection is not supported');
13
     }
14
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CalDAV/Schedule/IMipPlugin.php Changed
15
 
1
@@ -31,13 +31,6 @@
2
     protected $senderEmail;
3
 
4
     /**
5
-     * ITipMessage.
6
-     *
7
-     * @var ITip\Message
8
-     */
9
-    protected $itipMessage;
10
-
11
-    /**
12
      * Creates the email handler.
13
      *
14
      * @param string $senderEmail. The 'senderEmail' is the email that shows up
15
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CalDAV/Schedule/Plugin.php Changed
24
 
1
@@ -605,10 +605,9 @@
2
      *
3
      * This method may update $newObject to add any status changes.
4
      *
5
-     * @param VCalendar|string $oldObject
6
-     * @param array            $ignore    any addresses to not send messages to
7
-     * @param bool             $modified  a marker to indicate that the original object
8
-     *                                    modified by this process
9
+     * @param VCalendar|string|null $oldObject
10
+     * @param array                 $ignore    any addresses to not send messages to
11
+     * @param bool                  $modified  a marker to indicate that the original object modified by this process
12
      */
13
     protected function processICalendarChange($oldObject, VCalendar $newObject, array $addresses, array $ignore = , &$modified = false)
14
     {
15
@@ -969,7 +968,7 @@
16
      *
17
      * @return bool
18
      */
19
-    private function scheduleReply(RequestInterface $request)
20
+    protected function scheduleReply(RequestInterface $request)
21
     {
22
         $scheduleReply = $request->getHeader('Schedule-Reply');
23
 
24
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CalDAV/Xml/Filter/PropFilter.php Changed
10
 
1
@@ -53,7 +53,7 @@
2
             'is-not-defined' => false,
3
             'param-filters' => ,
4
             'text-match' => null,
5
-            'time-range' => false,
6
+            'time-range' => ,
7
         ;
8
 
9
         $att = $reader->parseAttributes();
10
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CardDAV/AddressBook.php Changed
36
 
1
@@ -129,19 +129,19 @@
2
      * This method may return an ETag.
3
      *
4
      * @param string   $name
5
-     * @param resource $vcardData
6
+     * @param resource $data
7
      *
8
      * @return string|null
9
      */
10
-    public function createFile($name, $vcardData = null)
11
+    public function createFile($name, $data = null)
12
     {
13
-        if (is_resource($vcardData)) {
14
-            $vcardData = stream_get_contents($vcardData);
15
+        if (is_resource($data)) {
16
+            $data = stream_get_contents($data);
17
         }
18
         // Converting to UTF-8, if needed
19
-        $vcardData = DAV\StringUtil::ensureUTF8($vcardData);
20
+        $data = DAV\StringUtil::ensureUTF8($data);
21
 
22
-        return $this->carddavBackend->createCard($this->addressBookInfo'id', $name, $vcardData);
23
+        return $this->carddavBackend->createCard($this->addressBookInfo'id', $name, $data);
24
     }
25
 
26
     /**
27
@@ -317,7 +317,7 @@
28
      * @param int    $syncLevel
29
      * @param int    $limit
30
      *
31
-     * @return array
32
+     * @return array|null
33
      */
34
     public function getChanges($syncToken, $syncLevel, $limit = null)
35
     {
36
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CardDAV/AddressBookHome.php Changed
14
 
1
@@ -92,10 +92,10 @@
2
      *
3
      * This is currently not allowed
4
      *
5
-     * @param string   $filename
6
+     * @param string   $name
7
      * @param resource $data
8
      */
9
-    public function createFile($filename, $data = null)
10
+    public function createFile($name, $data = null)
11
     {
12
         throw new DAV\Exception\MethodNotAllowed('Creating new files in this collection is not supported');
13
     }
14
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CardDAV/Backend/PDO.php Changed
10
 
1
@@ -452,7 +452,7 @@
2
      * @param int    $syncLevel
3
      * @param int    $limit
4
      *
5
-     * @return array
6
+     * @return array|null
7
      */
8
     public function getChangesForAddressBook($addressBookId, $syncToken, $syncLevel, $limit = null)
9
     {
10
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CardDAV/Backend/SyncSupport.php Changed
10
 
1
@@ -77,7 +77,7 @@
2
      * @param int    $syncLevel
3
      * @param int    $limit
4
      *
5
-     * @return array
6
+     * @return array|null
7
      */
8
     public function getChangesForAddressBook($addressBookId, $syncToken, $syncLevel, $limit = null);
9
 }
10
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/CardDAV/Xml/Request/AddressBookMultiGetReport.php Changed
24
 
1
@@ -38,7 +38,7 @@
2
     public $hrefs;
3
 
4
     /**
5
-     * The mimetype of the content that should be returend. Usually
6
+     * The mimetype of the content that should be returned. Usually
7
      * text/vcard.
8
      *
9
      * @var string
10
@@ -54,6 +54,13 @@
11
     public $version = null;
12
 
13
     /**
14
+     * An array with requested vcard properties.
15
+     *
16
+     * @var array
17
+     */
18
+    public $addressDataProperties;
19
+
20
+    /**
21
      * The deserialize method is called during xml parsing.
22
      *
23
      * This method is called statically, this is because in theory this method
24
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/DAV/INodeByPath.php Added
38
 
1
@@ -0,0 +1,36 @@
2
+<?php
3
+
4
+declare(strict_types=1);
5
+
6
+namespace Sabre\DAV;
7
+
8
+/**
9
+ * INodeByPath.
10
+ *
11
+ * This interface adds a tiny bit of functionality to collections.
12
+ *
13
+ * Getting a node that is deep in the tree normally requires going trough each parent node
14
+ * which can cause a significant performance overhead.
15
+ *
16
+ * Implementing this interface allows solving this overhead by directly jumping to the target node.
17
+ *
18
+ * @copyright Copyright (C) Robin Appelman (https://icewind.nl/)
19
+ * @author Robin Appelman (https://icewind.nl/)
20
+ * @license http://sabre.io/license/ Modified BSD License
21
+ */
22
+interface INodeByPath
23
+{
24
+    /**
25
+     * Returns the INode object for the requested path.
26
+     *
27
+     * In case where this collection can not retrieve the requested node
28
+     * but also can not determine that the node does not exists,
29
+     * null should be returned to signal that the caller should fallback
30
+     * to walking the directory tree.
31
+     *
32
+     * @param string $path
33
+     *
34
+     * @return INode|null
35
+     */
36
+    public function getNodeForPath($path);
37
+}
38
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/DAV/Sync/ISyncCollection.php Changed
10
 
1
@@ -84,7 +84,7 @@
2
      * @param int    $syncLevel
3
      * @param int    $limit
4
      *
5
-     * @return array
6
+     * @return array|null
7
      */
8
     public function getChanges($syncToken, $syncLevel, $limit = null);
9
 }
10
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/DAV/Tree.php Changed
48
 
1
@@ -16,7 +16,7 @@
2
  * @author Evert Pot (http://evertpot.com/)
3
  * @license http://sabre.io/license/ Modified BSD License
4
  */
5
-class Tree
6
+class Tree implements INodeByPath
7
 {
8
     /**
9
      * The root node.
10
@@ -62,20 +62,26 @@
11
             return $this->rootNode;
12
         }
13
 
14
-        // Attempting to fetch its parent
15
-        list($parentName, $baseName) = Uri\split($path);
16
+        $parts = explode('/', $path);
17
+        $node = $this->rootNode;
18
 
19
-        // If there was no parent, we must simply ask it from the root node.
20
-        if ('' === $parentName) {
21
-            $node = $this->rootNode->getChild($baseName);
22
-        } else {
23
-            // Otherwise, we recursively grab the parent and ask him/her.
24
-            $parent = $this->getNodeForPath($parentName);
25
-
26
-            if (!($parent instanceof ICollection)) {
27
+        while (count($parts)) {
28
+            if (!($node instanceof ICollection)) {
29
                 throw new Exception\NotFound('Could not find node at path: '.$path);
30
             }
31
-            $node = $parent->getChild($baseName);
32
+
33
+            if ($node instanceof INodeByPath) {
34
+                $targetNode = $node->getNodeForPath(implode('/', $parts));
35
+                if ($targetNode instanceof Node) {
36
+                    $node = $targetNode;
37
+                    break;
38
+                }
39
+            }
40
+
41
+            $part = array_shift($parts);
42
+            if ('' !== $part) {
43
+                $node = $node->getChild($part);
44
+            }
45
         }
46
 
47
         $this->cache$path = $node;
48
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/DAV/Version.php Changed
8
 
1
@@ -16,5 +16,5 @@
2
     /**
3
      * Full version number.
4
      */
5
-    public const VERSION = '4.4.0';
6
+    public const VERSION = '4.5.1';
7
 }
8
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/DAV/Xml/Element/Response.php Changed
73
 
1
@@ -40,7 +40,7 @@
2
      *
3
      * This is currently only used in WebDAV-Sync
4
      *
5
-     * @var string
6
+     * @var string|null
7
      */
8
     protected $httpStatus;
9
 
10
@@ -112,13 +112,21 @@
11
      */
12
     public function xmlSerialize(Writer $writer)
13
     {
14
-        if ($status = $this->getHTTPStatus()) {
15
-            $writer->writeElement('{DAV:}status', 'HTTP/1.1 '.$status.' '.\Sabre\HTTP\Response::$statusCodes$status);
16
-        }
17
+        /*
18
+         * Accordingly to the RFC the element looks like:
19
+         * <!ELEMENT response (href, ((href*, status)|(propstat+)), error?, responsedescription? , location?) >
20
+         *
21
+         * So the response
22
+         *   - MUST contain a href and
23
+         *   - EITHER a status and additional href(s)
24
+         *     OR one or more propstat(s)
25
+         */
26
         $writer->writeElement('{DAV:}href', $writer->contextUri.\Sabre\HTTP\encodePath($this->getHref()));
27
 
28
         $empty = true;
29
+        $httpStatus = $this->getHTTPStatus();
30
 
31
+        // Add propstat elements
32
         foreach ($this->getResponseProperties() as $status => $properties) {
33
             // Skipping empty lists
34
             if (!$properties || (!is_int($status) && !ctype_digit($status))) {
35
@@ -130,19 +138,25 @@
36
             $writer->writeElement('{DAV:}status', 'HTTP/1.1 '.$status.' '.\Sabre\HTTP\Response::$statusCodes$status);
37
             $writer->endElement(); // {DAV:}propstat
38
         }
39
+
40
+        // The WebDAV spec only allows the status element on responses _without_ a propstat
41
         if ($empty) {
42
-            /*
43
-             * The WebDAV spec _requires_ at least one DAV:propstat to appear for
44
-             * every DAV:response. In some circumstances however, there are no
45
-             * properties to encode.
46
-             *
47
-             * In those cases we MUST specify at least one DAV:propstat anyway, with
48
-             * no properties.
49
-             */
50
-            $writer->writeElement('{DAV:}propstat', 
51
-                '{DAV:}prop' => ,
52
-                '{DAV:}status' => 'HTTP/1.1 418 '.\Sabre\HTTP\Response::$statusCodes418,
53
-            );
54
+            if (null !== $httpStatus) {
55
+                $writer->writeElement('{DAV:}status', 'HTTP/1.1 '.$httpStatus.' '.\Sabre\HTTP\Response::$statusCodes$httpStatus);
56
+            } else {
57
+                /*
58
+                * The WebDAV spec _requires_ at least one DAV:propstat to appear for
59
+                * every DAV:response if there is no status.
60
+                * In some circumstances however, there are no properties to encode.
61
+                *
62
+                * In those cases we MUST specify at least one DAV:propstat anyway, with
63
+                * no properties.
64
+                */
65
+                $writer->writeElement('{DAV:}propstat', 
66
+                    '{DAV:}prop' => ,
67
+                    '{DAV:}status' => 'HTTP/1.1 418 '.\Sabre\HTTP\Response::$statusCodes418,
68
+                );
69
+            }
70
         }
71
     }
72
 
73
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/DAV/Xml/Property/Href.php Changed
21
 
1
@@ -35,6 +35,19 @@
2
     protected $hrefs;
3
 
4
     /**
5
+     * Automatically prefix the url with the server base directory.
6
+     * Note: use of this property in code was removed in PR:
7
+     * https://github.com/sabre-io/dav/pull/801
8
+     * But the property is left here because old data may still exist
9
+     * that has this property saved.
10
+     * See discussion in issue:
11
+     * https://github.com/sabre-io/Baikal/issues/1154.
12
+     *
13
+     * @var bool
14
+     */
15
+    protected $autoPrefix = true;
16
+
17
+    /**
18
      * Constructor.
19
      *
20
      * You must either pass a string for a single href, or an array of hrefs.
21
roundcubemail-1.5.tar.gz/vendor/sabre/dav/lib/DAVACL/PrincipalBackend/BackendInterface.php Changed
10
 
1
@@ -48,7 +48,7 @@
2
     public function getPrincipalByPath($path);
3
 
4
     /**
5
-     * Updates one ore more webdav properties on a principal.
6
+     * Updates one or more webdav properties on a principal.
7
      *
8
      * The list of mutations is stored in a Sabre\DAV\PropPatch object.
9
      * To do the actual updates, you must tell this object which properties
10
roundcubemail-1.5.tar.gz/vendor/sabre/vobject/lib/DateTimeParser.php Changed
10
 
1
@@ -104,7 +104,7 @@
2
         if (!$asString) {
3
             $invert = false;
4
 
5
-            if ('-' === $matches'plusminus') {
6
+            if (isset($matches'plusminus') && '-' === $matches'plusminus') {
7
                 $invert = true;
8
             }
9
 
10
roundcubemail-1.5.tar.gz/vendor/sabre/vobject/lib/ITip/Broker.php Changed
14
 
1
@@ -156,9 +156,9 @@
2
      * people. If the user was an attendee, we need to make sure that the
3
      * organizer gets the 'declined' message.
4
      *
5
-     * @param VCalendar|string $calendar
6
-     * @param string|array     $userHref
7
-     * @param VCalendar|string $oldCalendar
8
+     * @param VCalendar|string      $calendar
9
+     * @param string|array          $userHref
10
+     * @param VCalendar|string|null $oldCalendar
11
      *
12
      * @return array
13
      */
14
roundcubemail-1.5.tar.gz/vendor/sabre/vobject/lib/Version.php Changed
8
 
1
@@ -14,5 +14,5 @@
2
     /**
3
      * Full version number.
4
      */
5
-    public const VERSION = '4.5.3';
6
+    public const VERSION = '4.5.4';
7
 }
8
roundcubemail.dsc Changed
10
 
1
@@ -2,7 +2,7 @@
2
 Source: roundcubemail
3
 Binary: roundcubemail
4
 Architecture: all
5
-Version: 1:1.5.6.2-1~kolab1
6
+Version: 1:1.5.6.3-1~kolab1
7
 Maintainer: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
8
 Uploaders: Jeroen van Meeuwen <vanmeeuwen@kolabsys.com>
9
 Homepage: http://www.roundcube.net/
10