diff --git a/.eslintrc b/.eslintrc
deleted file mode 100644
index a55d0e2..0000000
--- a/.eslintrc
+++ /dev/null
@@ -1,23 +0,0 @@
-{
- "env": {
- "browser": true,
- "es2021": true,
- "node": true
- },
- "extends": [
- "plugin:@typescript-eslint/recommended",
- "plugin:prettier/recommended",
- "plugin:nuxt/recommended"
- ],
- "parserOptions": {
- "ecmaVersion": 13,
- "parser": "@typescript-eslint/parser",
- "sourceType": "module"
- },
- "plugins": ["vue", "@typescript-eslint"],
- "rules": {
- "no-unused-expressions": "off",
- "vue/no-v-html": "off",
- "no-console": ["error", { "allow": ["warn", "error"] }]
- }
-}
diff --git a/.eslintrc.json b/.eslintrc.json
new file mode 100644
index 0000000..5b291fa
--- /dev/null
+++ b/.eslintrc.json
@@ -0,0 +1,67 @@
+{
+ "root": true,
+ "ignorePatterns": ["dist/**", ".output/**", ".nuxt/**", "dockerdata/**"],
+ "extends": [
+ "eslint:recommended",
+ "plugin:json/recommended",
+ "plugin:vue/vue3-recommended",
+ "plugin:@typescript-eslint/recommended",
+ "@nuxtjs/eslint-config-typescript",
+ "plugin:prettier/recommended"
+ ],
+ "plugins": ["json", "nuxt", "@typescript-eslint"],
+ "parser": "vue-eslint-parser",
+ "parserOptions": {
+ "ecmaVersion": "latest",
+ "sourceType": "module",
+ "parser": "@typescript-eslint/parser"
+ },
+ "env": {
+ "browser": true,
+ "es2021": true,
+ "node": true
+ },
+ "rules": {
+ "no-unused-vars": "off",
+ "no-console": ["warn", { "allow": ["info", "warn", "error"] }],
+ "no-use-before-define": "off",
+ "no-empty": "warn",
+ "@typescript-eslint/no-unused-vars": "warn",
+ "vue/multi-word-component-names": "off",
+ "vue/no-multiple-template-root": "off",
+ "vue/component-api-style": ["error", ["script-setup"]],
+ "vue/define-emits-declaration": ["error", "type-based"],
+ "vue/block-lang": [
+ "error",
+ {
+ "script": {
+ "lang": "ts"
+ },
+ "style": {
+ "lang": "scss"
+ }
+ }
+ ],
+ "vue/block-tag-newline": [
+ "error",
+ {
+ "singleline": "consistent",
+ "multiline": "always",
+ "maxEmptyLines": 1
+ }
+ ],
+ "vue/component-tags-order": [
+ "error",
+ {
+ "order": ["template", "script", "style"]
+ }
+ ],
+ "vue/component-name-in-template-casing": [
+ "error",
+ "PascalCase",
+ {
+ "registeredComponentsOnly": false
+ }
+ ]
+ }
+}
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index 2d1a7cc..c1fc6ad 100644
--- a/.gitignore
+++ b/.gitignore
@@ -8,4 +8,7 @@ node_modules
# System files
*.log
-.env
\ No newline at end of file
+.env
+
+# Yarn >= v2
+.yarn
\ No newline at end of file
diff --git a/.prettierrc b/.prettierrc
index a9ba75b..03d93a9 100644
--- a/.prettierrc
+++ b/.prettierrc
@@ -1,7 +1,6 @@
{
- "semi": true,
- "singleQuote": true,
- "tabWidth": 4,
- "trailingComma": "none",
- "vueIndentScriptAndStyle": false
-}
+ "trailingComma": "all",
+ "semi": true,
+ "singleQuote": false,
+ "quoteProps": "consistent"
+}
\ No newline at end of file
diff --git a/.yarnrc.yml b/.yarnrc.yml
new file mode 100644
index 0000000..3186f3f
--- /dev/null
+++ b/.yarnrc.yml
@@ -0,0 +1 @@
+nodeLinker: node-modules
diff --git a/app.vue b/app.vue
index 264f86b..ea4ef5c 100644
--- a/app.vue
+++ b/app.vue
@@ -1,7 +1,3 @@