diff --git a/eslint.common.json b/eslint.common.json
new file mode 100644
index 0000000000000000000000000000000000000000..d19714d1a49e1c8f1e83cd9d7fef0d3e3f9d9bf1
--- /dev/null
+++ b/eslint.common.json
@@ -0,0 +1,26 @@
+{
+    "env": {
+        "browser": true,
+        "es6": true,
+        "mocha": true
+    },
+    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
+    "globals": {
+        "Atomics": "readonly",
+        "SharedArrayBuffer": "readonly"
+    },
+    "parser": "babel-eslint",
+    "parserOptions": {
+        "ecmaVersion": 2018,
+        "sourceType": "module"
+    },
+    "rules": {
+        "no-unused-vars": ["error", { "args": "none" }],
+        "semi": [2, "always"],
+        "jsdoc/require-jsdoc": 0,
+        "jsdoc/require-param-description": 0,
+        "jsdoc/require-returns": 0,
+        "jsdoc/require-param-type": 0,
+        "jsdoc/require-returns-description": 0
+    }
+}
\ No newline at end of file
diff --git a/packages/app-shell/.eslintrc.json b/packages/app-shell/.eslintrc.json
index 1ccd30a3fee0b4867a0172e746714eb0083fb07d..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/app-shell/.eslintrc.json
+++ b/packages/app-shell/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/auth/.eslintrc.json b/packages/auth/.eslintrc.json
index 1ccd30a3fee0b4867a0172e746714eb0083fb07d..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/auth/.eslintrc.json
+++ b/packages/auth/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/check-in-place-select/.eslintrc.json b/packages/check-in-place-select/.eslintrc.json
index 1ccd30a3fee0b4867a0172e746714eb0083fb07d..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/check-in-place-select/.eslintrc.json
+++ b/packages/check-in-place-select/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/common/.eslintrc.json b/packages/common/.eslintrc.json
index dcb3daa3e43a01208a022e30711870901c24f1f0..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/common/.eslintrc.json
+++ b/packages/common/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-returns-description": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/common/styles.js b/packages/common/styles.js
index 3c9748c91e20561bc14de5709c71ca771d81938b..31248cd3c84f51de7f1ebae40760d83315239dd7 100644
--- a/packages/common/styles.js
+++ b/packages/common/styles.js
@@ -1,4 +1,4 @@
-import {css, unsafeCSS} from 'lit-element';
+import {css, unsafeCSS, CSSResult} from 'lit-element';
 import {getIconSVGURL} from './src/icon.js';
 
 /**
diff --git a/packages/common/utils.js b/packages/common/utils.js
index 88cd1c53a6a4c85b29a428bf8a20c808b703c6c0..e89776e6658e3e83068dad1ad14b15bae46138dc 100644
--- a/packages/common/utils.js
+++ b/packages/common/utils.js
@@ -292,7 +292,7 @@ export async function asyncArrayForEach(array, callback) {
  * Attempts to determine the mime type of a file or blob
  *
  * @param file
- * @returns {Promise<unknown>}
+ * @returns {Promise<string>}
  */
 export async function getMimeTypeOfFile(file) {
     const getMimeType = (signature) => {
diff --git a/packages/data-table-view/.eslintrc.json b/packages/data-table-view/.eslintrc.json
index dcb3daa3e43a01208a022e30711870901c24f1f0..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/data-table-view/.eslintrc.json
+++ b/packages/data-table-view/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-returns-description": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/file-handling/.eslintignore b/packages/file-handling/.eslintignore
index c139ed4c11bae3aeb416c866e2a9aa248930c65f..e21b62712b8be6bf7a20f04647df3eaf6f20b96c 100644
--- a/packages/file-handling/.eslintignore
+++ b/packages/file-handling/.eslintignore
@@ -1,4 +1,5 @@
 /vendor/**
 /dist/**
 *.conf.js
-*.config.js
\ No newline at end of file
+*.config.js
+src/micromodal.es.js
\ No newline at end of file
diff --git a/packages/file-handling/.eslintrc.json b/packages/file-handling/.eslintrc.json
index dcb3daa3e43a01208a022e30711870901c24f1f0..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/file-handling/.eslintrc.json
+++ b/packages/file-handling/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-returns-description": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/file-handling/src/dbp-nextcloud-file-picker.js b/packages/file-handling/src/dbp-nextcloud-file-picker.js
index 34d6b3698a25742757531e1dde8ab096168b8b44..be82a9cfe046dad471afaa506f0b882622161ec5 100644
--- a/packages/file-handling/src/dbp-nextcloud-file-picker.js
+++ b/packages/file-handling/src/dbp-nextcloud-file-picker.js
@@ -258,7 +258,8 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
     /**
      * check mime type of row
      *
-     * @param row.getDatat(), mimetypes
+     * @param data
+     * @param filterParams
      */
     checkFileType(data, filterParams) {
         if (typeof data.mime === 'undefined') {
@@ -445,7 +446,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
             }).catch(error => {
                 console.error(error.message);
                 this.loading = false;
-                this.statusText = html`<span class="error"> ${i18n.t('nextcloud-file-picker.webdav-error', {error: error.message})} </span>`;;
+                this.statusText = html`<span class="error"> ${i18n.t('nextcloud-file-picker.webdav-error', {error: error.message})} </span>`;
         });
     }
 
@@ -629,7 +630,7 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
      * R = Share, S = Shared Folder, M = Group folder or external source, G = Read, D = Delete, NV / NVW = Write, CK = Create
      *
      * @param file
-     * @return number
+     * @returns {number}
      */
     checkRights(file) {
 
@@ -698,7 +699,8 @@ export class NextcloudFilePicker extends ScopedElementsMixin(DBPLitElement) {
     /**
      * Open the replace Modal Dialog with gui where forbidden actions are disabled
      *
-     * @param file, directory
+     * @param file
+     * @param directory
      */
     replaceModalDialog(file, directory) {
         this.uploadFileObject = file;
diff --git a/packages/file-handling/src/file-source.js b/packages/file-handling/src/file-source.js
index 015f408b30bf517ac9c0db57453fae63f948a61c..bee797dd90f61a0b25f5f28faceac1ea82edfc7f 100644
--- a/packages/file-handling/src/file-source.js
+++ b/packages/file-handling/src/file-source.js
@@ -238,7 +238,7 @@ export class FileSource extends ScopedElementsMixin(DBPLitElement) {
      * Decompress files synchronously
      *
      * @param file
-     * @returns {Promise<[]>}
+     * @returns {Promise<Array>}
      */
     async decompressZIP(file) {
         // see: https://stuk.github.io/jszip/
@@ -299,7 +299,9 @@ export class FileSource extends ScopedElementsMixin(DBPLitElement) {
             await response.json().then((json) => {
                 data.json = json;
             });
-        } catch (e) {}
+        } catch (e) {
+            //
+        }
 
         if (sendFile) {
             data.file = file;
diff --git a/packages/knowledge-base-web-page-element-view/.eslintrc.json b/packages/knowledge-base-web-page-element-view/.eslintrc.json
index 1ccd30a3fee0b4867a0172e746714eb0083fb07d..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/knowledge-base-web-page-element-view/.eslintrc.json
+++ b/packages/knowledge-base-web-page-element-view/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/language-select/.eslintrc.json b/packages/language-select/.eslintrc.json
index 1ccd30a3fee0b4867a0172e746714eb0083fb07d..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/language-select/.eslintrc.json
+++ b/packages/language-select/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/matomo/.eslintrc.json b/packages/matomo/.eslintrc.json
index 1ccd30a3fee0b4867a0172e746714eb0083fb07d..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/matomo/.eslintrc.json
+++ b/packages/matomo/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/notification/.eslintrc.json b/packages/notification/.eslintrc.json
index 1ccd30a3fee0b4867a0172e746714eb0083fb07d..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/notification/.eslintrc.json
+++ b/packages/notification/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/person-profile/.eslintrc.json b/packages/person-profile/.eslintrc.json
index 1ccd30a3fee0b4867a0172e746714eb0083fb07d..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/person-profile/.eslintrc.json
+++ b/packages/person-profile/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/person-select/.eslintrc.json b/packages/person-select/.eslintrc.json
index 1ccd30a3fee0b4867a0172e746714eb0083fb07d..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/person-select/.eslintrc.json
+++ b/packages/person-select/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/provider/.eslintrc.json b/packages/provider/.eslintrc.json
index 1ccd30a3fee0b4867a0172e746714eb0083fb07d..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/provider/.eslintrc.json
+++ b/packages/provider/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file
diff --git a/packages/qr-code-scanner/.eslintrc.json b/packages/qr-code-scanner/.eslintrc.json
index 1ccd30a3fee0b4867a0172e746714eb0083fb07d..806e1095014e8e6b81f1e79ecd2fbfd93a37c64f 100644
--- a/packages/qr-code-scanner/.eslintrc.json
+++ b/packages/qr-code-scanner/.eslintrc.json
@@ -1,25 +1,3 @@
 {
-    "env": {
-        "browser": true,
-        "es6": true,
-        "mocha": true
-    },
-    "extends": ["eslint:recommended", "plugin:jsdoc/recommended"],
-    "globals": {
-        "Atomics": "readonly",
-        "SharedArrayBuffer": "readonly"
-    },
-    "parser": "babel-eslint",
-    "parserOptions": {
-        "ecmaVersion": 2018,
-        "sourceType": "module"
-    },
-    "rules": {
-        "no-unused-vars": ["error", { "args": "none" }],
-        "semi": [2, "always"],
-        "jsdoc/require-jsdoc": 0,
-        "jsdoc/require-param-description": 0,
-        "jsdoc/require-returns": 0,
-        "jsdoc/require-param-type": 0
-    }
+    "extends": "./../../eslint.common.json"
 }
\ No newline at end of file