Browse Source

Merge branch 'release/0.11.6-2'

Book Pauk 3 years ago
parent
commit
00caae8363

+ 7 - 3
client/components/Reader/ContentsPage/ContentsPage.vue

@@ -321,21 +321,25 @@ class ContentsPage {
         }
         }
     }
     }
 
 
+    getFirstElem(items) {
+        return (Array.isArray(items) ? items[0] : items);
+    }
+
     async expandClick(key) {
     async expandClick(key) {
         const item = this.contents[key];
         const item = this.contents[key];
         const expanded = !item.expanded;
         const expanded = !item.expanded;
 
 
         if (!expanded) {
         if (!expanded) {
-            const subitems = this.$refs[`subitem${key}`];
+            let subitems = this.getFirstElem(this.$refs[`subitem${key}`]);
             subitems.style.height = '0';
             subitems.style.height = '0';
             await utils.sleep(200);
             await utils.sleep(200);
         }
         }
 
 
-        this.contents[key] = Object.assign({}, item, {expanded});
+        this.contents[key].expanded = expanded;
 
 
         if (expanded) {
         if (expanded) {
             await this.$nextTick();
             await this.$nextTick();
-            const subitems = this.$refs[`subitem${key}`];
+            let subitems = this.getFirstElem(this.$refs[`subitem${key}`]);
             subitems.style.height = subitems.scrollHeight + 'px';
             subitems.style.height = subitems.scrollHeight + 'px';
         }
         }
     }
     }

+ 0 - 3
client/store/modules/reader.js

@@ -222,9 +222,6 @@ const libsDefaults = {
         {r: 'http://flibusta.is', s: 'http://flibusta.is', list: [
         {r: 'http://flibusta.is', s: 'http://flibusta.is', list: [
             {l: 'http://flibusta.is', c: 'Флибуста | Книжное братство'},
             {l: 'http://flibusta.is', c: 'Флибуста | Книжное братство'},
         ]},
         ]},
-        {r: 'https://flibs.in', s: 'https://flibs.in', list: [
-            {l: 'https://flibs.in', c: 'Flibs'},
-        ]},
         {r: 'http://fantasy-worlds.org', s: 'http://fantasy-worlds.org', list: [
         {r: 'http://fantasy-worlds.org', s: 'http://fantasy-worlds.org', list: [
             {l: 'http://fantasy-worlds.org', c: 'Миры Фэнтези'},
             {l: 'http://fantasy-worlds.org', c: 'Миры Фэнтези'},
         ]},
         ]},

+ 2 - 2
docs/liberama.top/liberama

@@ -18,7 +18,7 @@ server {
 
 
   server_name liberama.top;
   server_name liberama.top;
 
 
-  client_max_body_size 50m;
+  client_max_body_size 100m;
   proxy_read_timeout 1h;
   proxy_read_timeout 1h;
 
 
   gzip on;
   gzip on;
@@ -63,7 +63,7 @@ server {
   listen 80;
   listen 80;
   server_name b.liberama.top;
   server_name b.liberama.top;
 
 
-  client_max_body_size 50m;
+  client_max_body_size 100m;
   proxy_read_timeout 1h;
   proxy_read_timeout 1h;
 
 
   gzip on;
   gzip on;

+ 1 - 1
docs/omnireader.ru/cron_server.sh

@@ -1,7 +1,7 @@
 #!/bin/bash
 #!/bin/bash
 
 
 if ! pgrep -x "liberama" > /dev/null ; then
 if ! pgrep -x "liberama" > /dev/null ; then
-    sudo -H -u www-data bash -c "cd /var/www; /home/liberama/liberama"
+    sudo -H -u www-data bash -c "cd /var/www; /home/liberama/liberama >/dev/null"
 else
 else
     echo "Process 'liberama' already running"
     echo "Process 'liberama' already running"
 fi
 fi

+ 2 - 2
docs/omnireader.ru/omnireader

@@ -7,7 +7,7 @@ server {
 
 
   server_name omnireader.ru;
   server_name omnireader.ru;
 
 
-  client_max_body_size 50m;
+  client_max_body_size 100m;
   proxy_read_timeout 1h;
   proxy_read_timeout 1h;
 
 
   gzip on;
   gzip on;
@@ -52,7 +52,7 @@ server {
   listen 80;
   listen 80;
   server_name old.omnireader.ru;
   server_name old.omnireader.ru;
 
 
-  client_max_body_size 50m;
+  client_max_body_size 100m;
 
 
   gzip on;
   gzip on;
   gzip_min_length 1024;
   gzip_min_length 1024;

+ 1 - 1
docs/omnireader.ru/start_server.sh

@@ -1,4 +1,4 @@
 #!/bin/bash
 #!/bin/bash
 
 
-sudo -H -u www-data bash -c "cd /var/www; /home/liberama/liberama" & disown
+sudo -H -u www-data bash -c "cd /var/www; /home/liberama/liberama >/dev/null & disown"
 sudo service cron start
 sudo service cron start

+ 50 - 118
package-lock.json

@@ -25,11 +25,11 @@
         "localforage": "^1.10.0",
         "localforage": "^1.10.0",
         "lodash": "^4.17.21",
         "lodash": "^4.17.21",
         "minimist": "^1.2.5",
         "minimist": "^1.2.5",
-        "multer": "^1.4.3",
+        "multer": "^1.4.5-lts.1",
         "pako": "^2.0.4",
         "pako": "^2.0.4",
         "path-browserify": "^1.0.1",
         "path-browserify": "^1.0.1",
         "pidusage": "^3.0.0",
         "pidusage": "^3.0.0",
-        "quasar": "^2.3.2",
+        "quasar": "^2.7.5",
         "safe-buffer": "^5.2.1",
         "safe-buffer": "^5.2.1",
         "sanitize-html": "^2.5.3",
         "sanitize-html": "^2.5.3",
         "sjcl": "^1.0.8",
         "sjcl": "^1.0.8",
@@ -38,8 +38,8 @@
         "sqlite3": "^5.0.2",
         "sqlite3": "^5.0.2",
         "tar-fs": "^2.1.1",
         "tar-fs": "^2.1.1",
         "unbzip2-stream": "^1.4.3",
         "unbzip2-stream": "^1.4.3",
-        "vue": "^3.2.22",
-        "vue-router": "^4.0.12",
+        "vue": "^3.2.37",
+        "vue-router": "^4.1.1",
         "vuex": "^4.0.2",
         "vuex": "^4.0.2",
         "vuex-persistedstate": "^4.1.0",
         "vuex-persistedstate": "^4.1.0",
         "webdav": "^4.7.0",
         "webdav": "^4.7.0",
@@ -61,7 +61,7 @@
         "css-loader": "^6.5.1",
         "css-loader": "^6.5.1",
         "css-minimizer-webpack-plugin": "^4.0.0",
         "css-minimizer-webpack-plugin": "^4.0.0",
         "eslint": "^8.19.0",
         "eslint": "^8.19.0",
-        "eslint-plugin-vue": "^9.1.1",
+        "eslint-plugin-vue": "^9.2.0",
         "html-webpack-plugin": "^5.5.0",
         "html-webpack-plugin": "^5.5.0",
         "mini-css-extract-plugin": "^2.4.4",
         "mini-css-extract-plugin": "^2.4.4",
         "pkg": "^5.5.1",
         "pkg": "^5.5.1",
@@ -3239,15 +3239,14 @@
       }
       }
     },
     },
     "node_modules/busboy": {
     "node_modules/busboy": {
-      "version": "0.2.14",
-      "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
-      "integrity": "sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg==",
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+      "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
       "dependencies": {
       "dependencies": {
-        "dicer": "0.2.5",
-        "readable-stream": "1.1.x"
+        "streamsearch": "^1.1.0"
       },
       },
       "engines": {
       "engines": {
-        "node": ">=0.8.0"
+        "node": ">=10.16.0"
       }
       }
     },
     },
     "node_modules/byte-length": {
     "node_modules/byte-length": {
@@ -4348,18 +4347,6 @@
         "node": ">=0.10"
         "node": ">=0.10"
       }
       }
     },
     },
-    "node_modules/dicer": {
-      "version": "0.2.5",
-      "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
-      "integrity": "sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg==",
-      "dependencies": {
-        "readable-stream": "1.1.x",
-        "streamsearch": "0.1.2"
-      },
-      "engines": {
-        "node": ">=0.8.0"
-      }
-    },
     "node_modules/dir-glob": {
     "node_modules/dir-glob": {
       "version": "3.0.1",
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
       "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -4785,9 +4772,9 @@
       }
       }
     },
     },
     "node_modules/eslint-plugin-vue": {
     "node_modules/eslint-plugin-vue": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.1.1.tgz",
-      "integrity": "sha512-W9n5PB1X2jzC7CK6riG0oAcxjmKrjTF6+keL1rni8n57DZeilx/Fulz+IRJK3lYseLNAygN0I62L7DvioW40Tw==",
+      "version": "9.2.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.2.0.tgz",
+      "integrity": "sha512-W2hc+NUXoce8sZtWgZ45miQTy6jNyuSdub5aZ1IBune4JDeAyzucYX0TzkrQ1jMO52sNUDYlCIHDoaNePe0p5g==",
       "dev": true,
       "dev": true,
       "dependencies": {
       "dependencies": {
         "eslint-utils": "^3.0.0",
         "eslint-utils": "^3.0.0",
@@ -6429,11 +6416,6 @@
         "url": "https://github.com/sponsors/ljharb"
         "url": "https://github.com/sponsors/ljharb"
       }
       }
     },
     },
-    "node_modules/isarray": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
-      "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
-    },
     "node_modules/isexe": {
     "node_modules/isexe": {
       "version": "2.0.0",
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -7242,22 +7224,20 @@
       "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
       "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
     },
     },
     "node_modules/multer": {
     "node_modules/multer": {
-      "version": "1.4.4",
-      "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz",
-      "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==",
-      "deprecated": "Multer 1.x is affected by CVE-2022-24434. This is fixed in v1.4.4-lts.1 which drops support for versions of Node.js before 6. Please upgrade to at least Node.js 6 and version 1.4.4-lts.1 of Multer. If you need support for older versions of Node.js, we are open to accepting patches that would fix the CVE on the main 1.x release line, whilst maintaining compatibility with Node.js 0.10.",
+      "version": "1.4.5-lts.1",
+      "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
+      "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
       "dependencies": {
       "dependencies": {
         "append-field": "^1.0.0",
         "append-field": "^1.0.0",
-        "busboy": "^0.2.11",
+        "busboy": "^1.0.0",
         "concat-stream": "^1.5.2",
         "concat-stream": "^1.5.2",
         "mkdirp": "^0.5.4",
         "mkdirp": "^0.5.4",
         "object-assign": "^4.1.1",
         "object-assign": "^4.1.1",
-        "on-finished": "^2.3.0",
         "type-is": "^1.6.4",
         "type-is": "^1.6.4",
         "xtend": "^4.0.0"
         "xtend": "^4.0.0"
       },
       },
       "engines": {
       "engines": {
-        "node": ">= 0.10.0"
+        "node": ">= 6.0.0"
       }
       }
     },
     },
     "node_modules/multistream": {
     "node_modules/multistream": {
@@ -8802,9 +8782,9 @@
       }
       }
     },
     },
     "node_modules/quasar": {
     "node_modules/quasar": {
-      "version": "2.7.4",
-      "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.7.4.tgz",
-      "integrity": "sha512-8OIa6azm7N6QUPjcZ5AhDCEBha5NnNqt+D1BMIteqaSqkVKFYBf+FMhUCC8R/Tc6Myz85vK7KGPn9tvaC6gXYQ==",
+      "version": "2.7.5",
+      "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.7.5.tgz",
+      "integrity": "sha512-DWI0S+bXASfMSPrB8c/LVsXpA4dF7cBUbaJlcrM+1ioTNBHtiudma2Nhk2SDd5bzk9AYVHh5A8JCZuKqQAXt7g==",
       "engines": {
       "engines": {
         "node": ">= 10.18.1",
         "node": ">= 10.18.1",
         "npm": ">= 6.13.4",
         "npm": ">= 6.13.4",
@@ -8924,17 +8904,6 @@
         "node": ">=0.10.0"
         "node": ">=0.10.0"
       }
       }
     },
     },
-    "node_modules/readable-stream": {
-      "version": "1.1.14",
-      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
-      "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
-      "dependencies": {
-        "core-util-is": "~1.0.0",
-        "inherits": "~2.0.1",
-        "isarray": "0.0.1",
-        "string_decoder": "~0.10.x"
-      }
-    },
     "node_modules/rechoir": {
     "node_modules/rechoir": {
       "version": "0.7.1",
       "version": "0.7.1",
       "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
       "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
@@ -9735,18 +9704,13 @@
       }
       }
     },
     },
     "node_modules/streamsearch": {
     "node_modules/streamsearch": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
-      "integrity": "sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA==",
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+      "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg==",
       "engines": {
       "engines": {
-        "node": ">=0.8.0"
+        "node": ">=10.0.0"
       }
       }
     },
     },
-    "node_modules/string_decoder": {
-      "version": "0.10.31",
-      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-      "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
-    },
     "node_modules/string-width": {
     "node_modules/string-width": {
       "version": "1.0.2",
       "version": "1.0.2",
       "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
       "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
@@ -10611,11 +10575,11 @@
       }
       }
     },
     },
     "node_modules/vue-router": {
     "node_modules/vue-router": {
-      "version": "4.0.16",
-      "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.16.tgz",
-      "integrity": "sha512-JcO7cb8QJLBWE+DfxGUL3xUDOae/8nhM1KVdnudadTAORbuxIC/xAydC5Zr/VLHUDQi1ppuTF5/rjBGzgzrJNA==",
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.1.tgz",
+      "integrity": "sha512-Wp1mEf2xCwT0ez7o9JvgpfBp9JGnVb+dPERzXDbugTatzJAJ60VWOhJKifQty85k+jOreoFHER4r5fu062PhPw==",
       "dependencies": {
       "dependencies": {
-        "@vue/devtools-api": "^6.0.0"
+        "@vue/devtools-api": "^6.1.4"
       },
       },
       "funding": {
       "funding": {
         "url": "https://github.com/sponsors/posva"
         "url": "https://github.com/sponsors/posva"
@@ -13960,12 +13924,11 @@
       "dev": true
       "dev": true
     },
     },
     "busboy": {
     "busboy": {
-      "version": "0.2.14",
-      "resolved": "https://registry.npmjs.org/busboy/-/busboy-0.2.14.tgz",
-      "integrity": "sha512-InWFDomvlkEj+xWLBfU3AvnbVYqeTWmQopiW0tWWEy5yehYm2YkGEc59sUmw/4ty5Zj/b0WHGs1LgecuBSBGrg==",
+      "version": "1.6.0",
+      "resolved": "https://registry.npmjs.org/busboy/-/busboy-1.6.0.tgz",
+      "integrity": "sha512-8SFQbg/0hQ9xy3UNTB0YEnsNBbWfhf7RtnzpL7TkBiTBRfrQ9Fxcnz7VJsleJpyp6rVLvXiuORqjlHi5q+PYuA==",
       "requires": {
       "requires": {
-        "dicer": "0.2.5",
-        "readable-stream": "1.1.x"
+        "streamsearch": "^1.1.0"
       }
       }
     },
     },
     "byte-length": {
     "byte-length": {
@@ -14792,15 +14755,6 @@
       "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
       "integrity": "sha512-pGjwhsmsp4kL2RTz08wcOlGN83otlqHeD/Z5T8GXZB+/YcpQ/dgo+lbU8ZsGxV0HIvqqxo9l7mqYwyYMD9bKDg==",
       "dev": true
       "dev": true
     },
     },
-    "dicer": {
-      "version": "0.2.5",
-      "resolved": "https://registry.npmjs.org/dicer/-/dicer-0.2.5.tgz",
-      "integrity": "sha512-FDvbtnq7dzlPz0wyYlOExifDEZcu8h+rErEXgfxqmLfRfC/kJidEFh4+effJRO3P0xmfqyPbSMG0LveNRfTKVg==",
-      "requires": {
-        "readable-stream": "1.1.x",
-        "streamsearch": "0.1.2"
-      }
-    },
     "dir-glob": {
     "dir-glob": {
       "version": "3.0.1",
       "version": "3.0.1",
       "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
       "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz",
@@ -15220,9 +15174,9 @@
       }
       }
     },
     },
     "eslint-plugin-vue": {
     "eslint-plugin-vue": {
-      "version": "9.1.1",
-      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.1.1.tgz",
-      "integrity": "sha512-W9n5PB1X2jzC7CK6riG0oAcxjmKrjTF6+keL1rni8n57DZeilx/Fulz+IRJK3lYseLNAygN0I62L7DvioW40Tw==",
+      "version": "9.2.0",
+      "resolved": "https://registry.npmjs.org/eslint-plugin-vue/-/eslint-plugin-vue-9.2.0.tgz",
+      "integrity": "sha512-W2hc+NUXoce8sZtWgZ45miQTy6jNyuSdub5aZ1IBune4JDeAyzucYX0TzkrQ1jMO52sNUDYlCIHDoaNePe0p5g==",
       "dev": true,
       "dev": true,
       "requires": {
       "requires": {
         "eslint-utils": "^3.0.0",
         "eslint-utils": "^3.0.0",
@@ -16340,11 +16294,6 @@
         "call-bind": "^1.0.2"
         "call-bind": "^1.0.2"
       }
       }
     },
     },
-    "isarray": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
-      "integrity": "sha512-D2S+3GLxWH+uhrNEcoh/fnmYeP8E8/zHl644d/jdA0g2uyXvy3sb0qxotE+ne0LtccHknQzWwZEzhak7oJ0COQ=="
-    },
     "isexe": {
     "isexe": {
       "version": "2.0.0",
       "version": "2.0.0",
       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
       "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
@@ -16980,16 +16929,15 @@
       "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
       "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
     },
     },
     "multer": {
     "multer": {
-      "version": "1.4.4",
-      "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.4.tgz",
-      "integrity": "sha512-2wY2+xD4udX612aMqMcB8Ws2Voq6NIUPEtD1be6m411T4uDH/VtL9i//xvcyFlTVfRdaBsk7hV5tgrGQqhuBiw==",
+      "version": "1.4.5-lts.1",
+      "resolved": "https://registry.npmjs.org/multer/-/multer-1.4.5-lts.1.tgz",
+      "integrity": "sha512-ywPWvcDMeH+z9gQq5qYHCCy+ethsk4goepZ45GLD63fOu0YcNecQxi64nDs3qluZB+murG3/D4dJ7+dGctcCQQ==",
       "requires": {
       "requires": {
         "append-field": "^1.0.0",
         "append-field": "^1.0.0",
-        "busboy": "^0.2.11",
+        "busboy": "^1.0.0",
         "concat-stream": "^1.5.2",
         "concat-stream": "^1.5.2",
         "mkdirp": "^0.5.4",
         "mkdirp": "^0.5.4",
         "object-assign": "^4.1.1",
         "object-assign": "^4.1.1",
-        "on-finished": "^2.3.0",
         "type-is": "^1.6.4",
         "type-is": "^1.6.4",
         "xtend": "^4.0.0"
         "xtend": "^4.0.0"
       }
       }
@@ -18077,9 +18025,9 @@
       }
       }
     },
     },
     "quasar": {
     "quasar": {
-      "version": "2.7.4",
-      "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.7.4.tgz",
-      "integrity": "sha512-8OIa6azm7N6QUPjcZ5AhDCEBha5NnNqt+D1BMIteqaSqkVKFYBf+FMhUCC8R/Tc6Myz85vK7KGPn9tvaC6gXYQ=="
+      "version": "2.7.5",
+      "resolved": "https://registry.npmjs.org/quasar/-/quasar-2.7.5.tgz",
+      "integrity": "sha512-DWI0S+bXASfMSPrB8c/LVsXpA4dF7cBUbaJlcrM+1ioTNBHtiudma2Nhk2SDd5bzk9AYVHh5A8JCZuKqQAXt7g=="
     },
     },
     "querystring": {
     "querystring": {
       "version": "0.2.1",
       "version": "0.2.1",
@@ -18158,17 +18106,6 @@
         }
         }
       }
       }
     },
     },
-    "readable-stream": {
-      "version": "1.1.14",
-      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.1.14.tgz",
-      "integrity": "sha512-+MeVjFf4L44XUkhM1eYbD8fyEsxcV81pqMSR5gblfcLCHfZvbrqy4/qYHE+/R5HoBUT11WV5O08Cr1n3YXkWVQ==",
-      "requires": {
-        "core-util-is": "~1.0.0",
-        "inherits": "~2.0.1",
-        "isarray": "0.0.1",
-        "string_decoder": "~0.10.x"
-      }
-    },
     "rechoir": {
     "rechoir": {
       "version": "0.7.1",
       "version": "0.7.1",
       "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
       "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.7.1.tgz",
@@ -18773,14 +18710,9 @@
       }
       }
     },
     },
     "streamsearch": {
     "streamsearch": {
-      "version": "0.1.2",
-      "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-0.1.2.tgz",
-      "integrity": "sha512-jos8u++JKm0ARcSUTAZXOVC0mSox7Bhn6sBgty73P1f3JGf7yG2clTbBNHUdde/kdvP2FESam+vM6l8jBrNxHA=="
-    },
-    "string_decoder": {
-      "version": "0.10.31",
-      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
-      "integrity": "sha512-ev2QzSzWPYmy9GuqfIVildA4OdcGLeFZQrq5ys6RtiuF+RQQiZWr8TZNyAcuVXyQRYfEO+MsoB/1BuQVhOJuoQ=="
+      "version": "1.1.0",
+      "resolved": "https://registry.npmjs.org/streamsearch/-/streamsearch-1.1.0.tgz",
+      "integrity": "sha512-Mcc5wHehp9aXz1ax6bZUyY5afg9u2rv5cqQI3mRrYkGC8rW2hM02jWuwjtL++LS5qinSyhj2QfLyNsuc+VsExg=="
     },
     },
     "string-width": {
     "string-width": {
       "version": "1.0.2",
       "version": "1.0.2",
@@ -19424,11 +19356,11 @@
       }
       }
     },
     },
     "vue-router": {
     "vue-router": {
-      "version": "4.0.16",
-      "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.0.16.tgz",
-      "integrity": "sha512-JcO7cb8QJLBWE+DfxGUL3xUDOae/8nhM1KVdnudadTAORbuxIC/xAydC5Zr/VLHUDQi1ppuTF5/rjBGzgzrJNA==",
+      "version": "4.1.1",
+      "resolved": "https://registry.npmjs.org/vue-router/-/vue-router-4.1.1.tgz",
+      "integrity": "sha512-Wp1mEf2xCwT0ez7o9JvgpfBp9JGnVb+dPERzXDbugTatzJAJ60VWOhJKifQty85k+jOreoFHER4r5fu062PhPw==",
       "requires": {
       "requires": {
-        "@vue/devtools-api": "^6.0.0"
+        "@vue/devtools-api": "^6.1.4"
       }
       }
     },
     },
     "vue-style-loader": {
     "vue-style-loader": {

+ 5 - 5
package.json

@@ -32,7 +32,7 @@
     "css-loader": "^6.5.1",
     "css-loader": "^6.5.1",
     "css-minimizer-webpack-plugin": "^4.0.0",
     "css-minimizer-webpack-plugin": "^4.0.0",
     "eslint": "^8.19.0",
     "eslint": "^8.19.0",
-    "eslint-plugin-vue": "^9.1.1",
+    "eslint-plugin-vue": "^9.2.0",
     "html-webpack-plugin": "^5.5.0",
     "html-webpack-plugin": "^5.5.0",
     "mini-css-extract-plugin": "^2.4.4",
     "mini-css-extract-plugin": "^2.4.4",
     "pkg": "^5.5.1",
     "pkg": "^5.5.1",
@@ -63,11 +63,11 @@
     "localforage": "^1.10.0",
     "localforage": "^1.10.0",
     "lodash": "^4.17.21",
     "lodash": "^4.17.21",
     "minimist": "^1.2.5",
     "minimist": "^1.2.5",
-    "multer": "^1.4.3",
+    "multer": "^1.4.5-lts.1",
     "pako": "^2.0.4",
     "pako": "^2.0.4",
     "path-browserify": "^1.0.1",
     "path-browserify": "^1.0.1",
     "pidusage": "^3.0.0",
     "pidusage": "^3.0.0",
-    "quasar": "^2.3.2",
+    "quasar": "^2.7.5",
     "safe-buffer": "^5.2.1",
     "safe-buffer": "^5.2.1",
     "sanitize-html": "^2.5.3",
     "sanitize-html": "^2.5.3",
     "sjcl": "^1.0.8",
     "sjcl": "^1.0.8",
@@ -76,8 +76,8 @@
     "sqlite3": "^5.0.2",
     "sqlite3": "^5.0.2",
     "tar-fs": "^2.1.1",
     "tar-fs": "^2.1.1",
     "unbzip2-stream": "^1.4.3",
     "unbzip2-stream": "^1.4.3",
-    "vue": "^3.2.22",
-    "vue-router": "^4.0.12",
+    "vue": "^3.2.37",
+    "vue-router": "^4.1.1",
     "vuex": "^4.0.2",
     "vuex": "^4.0.2",
     "vuex-persistedstate": "^4.1.0",
     "vuex-persistedstate": "^4.1.0",
     "webdav": "^4.7.0",
     "webdav": "^4.7.0",

+ 3 - 1
server/core/Logger.js

@@ -49,7 +49,7 @@ class BaseLog {
         this.outputBuffer = [];
         this.outputBuffer = [];
 
 
         await this.flushImpl(this.data)
         await this.flushImpl(this.data)
-            .catch(e => { console.log(e); ayncExit.exit(1); } );
+            .catch(e => { console.error(`Logger error: ${e}`); ayncExit.exit(1); } );
         this.flushing = false;
         this.flushing = false;
     }
     }
 
 
@@ -218,6 +218,8 @@ class Logger {
         } else {
         } else {
             console.log(mes);
             console.log(mes);
         }
         }
+
+        return mes;
     }
     }
 
 
     async close() {
     async close() {

+ 24 - 18
server/core/Reader/JembaReaderStorage.js

@@ -2,6 +2,7 @@ const _ = require('lodash');
 
 
 const utils = require('../utils');
 const utils = require('../utils');
 const JembaConnManager = require('../../db/JembaConnManager');//singleton
 const JembaConnManager = require('../../db/JembaConnManager');//singleton
+const log = new (require('../AppLogger'))().log;//singleton
 
 
 let instance = null;
 let instance = null;
 
 
@@ -20,25 +21,30 @@ class JembaReaderStorage {
     }
     }
 
 
     async doAction(act) {
     async doAction(act) {
-        if (!_.isObject(act.items))
-            throw new Error('items is not an object');
-
-        let result = {};
-        switch (act.action) {
-            case 'check':
-                result = await this.checkItems(act.items);
-                break;
-            case 'get':
-                result = await this.getItems(act.items);
-                break;
-            case 'set':
-                result = await this.setItems(act.items, act.force);
-                break;
-            default:
-                throw new Error('Unknown action');
-        }
+        try {
+            if (!_.isObject(act.items))
+                throw new Error('items is not an object');
+
+            let result = {};
+            switch (act.action) {
+                case 'check':
+                    result = await this.checkItems(act.items);
+                    break;
+                case 'get':
+                    result = await this.getItems(act.items);
+                    break;
+                case 'set':
+                    result = await this.setItems(act.items, act.force);
+                    break;
+                default:
+                    throw new Error('Unknown action');
+            }
 
 
-        return result;
+            return result;
+        } catch (e) {
+            log(LM_ERR, `JembaReaderStorage: ${e.message}`);
+            throw e;
+        }
     }
     }
 
 
     async checkItems(items) {
     async checkItems(items) {