diff --git a/.eslintrc.js b/.eslintrc.js
index c816125..5d1d8cd 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -18,6 +18,10 @@ module.exports = {
'vue/no-unused-components': 'off',
'vue/max-attributes-per-line': 'off',
'vue/html-closing-bracket-newline': 'off',
+ 'vue/valid-v-slot': 'off', // Bug: https://github.com/vuejs/eslint-plugin-vue/issues/1229
+ 'vue/component-tags-order': ['error', {
+ order: ['template', 'style', 'script']
+ }],
'no-console': 'warn',
'no-debugger': 'warn',
'no-useless-constructor': 'off', // Crashes eslint
diff --git a/package.json b/package.json
index e865cb2..b2f4493 100644
--- a/package.json
+++ b/package.json
@@ -14,26 +14,26 @@
"md5-es": "1.8.2",
"vue": "^2.6.12",
"vue-infinite-loading": "2.4.5",
- "vue-router": "^3.4.5",
+ "vue-router": "^3.4.6",
"vuex": "^3.5.1"
},
"devDependencies": {
- "@typescript-eslint/eslint-plugin": "^4.2.0",
- "@typescript-eslint/parser": "^4.2.0",
- "@vue/cli-plugin-babel": "^4.5.6",
- "@vue/cli-plugin-eslint": "~4.5.6",
- "@vue/cli-plugin-typescript": "^4.5.6",
- "@vue/cli-service": "^4.5.6",
+ "@typescript-eslint/eslint-plugin": "^4.4.0",
+ "@typescript-eslint/parser": "^4.4.0",
+ "@vue/cli-plugin-babel": "^4.5.7",
+ "@vue/cli-plugin-eslint": "~4.5.7",
+ "@vue/cli-plugin-typescript": "^4.5.7",
+ "@vue/cli-service": "^4.5.7",
"@vue/eslint-config-standard": "^5.1.2",
- "@vue/eslint-config-typescript": "^5.1.0",
- "eslint": "^7.9.0",
- "eslint-plugin-import": "^2.20.2",
+ "@vue/eslint-config-typescript": "^7.0.0",
+ "eslint": "^7.11.0",
+ "eslint-plugin-import": "^2.22.1",
"eslint-plugin-node": "^11.1.0",
"eslint-plugin-promise": "^4.2.1",
"eslint-plugin-standard": "^4.0.0",
- "eslint-plugin-vue": "^6.2.2",
- "sass": "^1.26.11",
- "sass-loader": "^10.0.2",
+ "eslint-plugin-vue": "^7.0.1",
+ "sass": "^1.27.0",
+ "sass-loader": "^10.0.3",
"typescript": "^4.0.3",
"vue-template-compiler": "^2.6.12"
},
diff --git a/src/global.d.ts b/src/global.d.ts
index 08d6490..328c597 100644
--- a/src/global.d.ts
+++ b/src/global.d.ts
@@ -5,14 +5,6 @@ declare module '*.vue' {
declare module 'md5-es';
-interface Navigator {
- readonly mediaSession?: MediaSession;
-}
-
-interface Window {
- MediaSession?: MediaSession;
-}
-
type MediaSessionPlaybackState = 'none' | 'paused' | 'playing';
type MediaSessionAction =
@@ -33,21 +25,6 @@ interface MediaSessionActionDetails {
seekTime?: number;
}
-interface MediaPositionState {
- duration?: number;
- playbackRate?: number;
- position?: number;
-}
-
-interface MediaSession {
- playbackState: MediaSessionPlaybackState;
- metadata: MediaMetadata | null;
- setActionHandler(
- action: MediaSessionAction,
- listener: ((details: MediaSessionActionDetails) => void)): void;
- setPositionState?(arg: MediaPositionState): void;
-}
-
interface MediaImage {
src: string;
sizes?: string;
@@ -64,3 +41,26 @@ interface MediaMetadataInit {
declare class MediaMetadata {
constructor(init?: MediaMetadataInit);
}
+
+interface MediaPositionState {
+ duration?: number;
+ playbackRate?: number;
+ position?: number;
+}
+
+interface MediaSession {
+ playbackState: MediaSessionPlaybackState;
+ metadata: MediaMetadata | null;
+ setActionHandler(
+ action: MediaSessionAction,
+ listener: ((details: MediaSessionActionDetails) => void)): void;
+ setPositionState?(arg: MediaPositionState): void;
+}
+
+interface Navigator {
+ readonly mediaSession?: MediaSession;
+}
+
+interface Window {
+ MediaSession?: MediaSession;
+}
diff --git a/src/library/album/AlbumLibrary.vue b/src/library/album/AlbumLibrary.vue
index 37d1feb..b04f1fc 100644
--- a/src/library/album/AlbumLibrary.vue
+++ b/src/library/album/AlbumLibrary.vue
@@ -8,7 +8,7 @@
-
+