diff --git a/.eslintrc.js b/.eslintrc.js
index 99321b951e..90525dcc0c 100644
--- a/.eslintrc.js
+++ b/.eslintrc.js
@@ -76,7 +76,6 @@ module.exports = {
'sonarjs/cognitive-complexity': ['warn'],
// TODO: Enable the following rules and fix issues
'sonarjs/no-duplicate-string': ['off'],
- 'sonarjs/no-redundant-jump': ['off'],
'sonarjs/prefer-object-literal': ['off'],
'sonarjs/prefer-single-boolean-return': ['off']
},
diff --git a/cssnano.config.js b/cssnano.config.js
new file mode 100644
index 0000000000..376b8f011b
--- /dev/null
+++ b/cssnano.config.js
@@ -0,0 +1,10 @@
+module.exports = {
+ preset: [
+ 'default',
+ // Turn off `mergeLonghand` because it combines `padding-*` and `margin-*`,
+ // breaking fallback styles.
+ // https://github.com/cssnano/cssnano/issues/1163
+ // https://github.com/cssnano/cssnano/issues/1192
+ { mergeLonghand: false }
+ ]
+};
diff --git a/package-lock.json b/package-lock.json
index 47f33ac603..a25c108eb7 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -10,17 +10,17 @@
"license": "GPL-2.0-or-later",
"dependencies": {
"@fontsource/noto-sans": "4.5.11",
- "@fontsource/noto-sans-hk": "4.5.11",
- "@fontsource/noto-sans-jp": "4.5.11",
- "@fontsource/noto-sans-kr": "4.5.11",
- "@fontsource/noto-sans-sc": "4.5.11",
- "@fontsource/noto-sans-tc": "4.5.11",
+ "@fontsource/noto-sans-hk": "4.5.12",
+ "@fontsource/noto-sans-jp": "4.5.12",
+ "@fontsource/noto-sans-kr": "4.5.12",
+ "@fontsource/noto-sans-sc": "4.5.12",
+ "@fontsource/noto-sans-tc": "4.5.12",
"@jellyfin/libass-wasm": "4.1.1",
"@jellyfin/sdk": "0.7.0",
- "blurhash": "2.0.2",
+ "blurhash": "2.0.3",
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
"classnames": "2.3.2",
- "core-js": "3.25.3",
+ "core-js": "3.25.5",
"date-fns": "2.29.3",
"dompurify": "2.4.0",
"epubjs": "0.3.93",
@@ -66,8 +66,8 @@
"@types/lodash-es": "4.17.6",
"@types/react": "17.0.50",
"@types/react-dom": "17.0.17",
- "@typescript-eslint/eslint-plugin": "5.38.1",
- "@typescript-eslint/parser": "5.38.1",
+ "@typescript-eslint/eslint-plugin": "5.39.0",
+ "@typescript-eslint/parser": "5.39.0",
"@uupaa/dynamic-import-polyfill": "1.0.2",
"autoprefixer": "10.4.12",
"babel-loader": "8.2.5",
@@ -2322,29 +2322,29 @@
"integrity": "sha512-lBX7FCjIjSrQ+iMuXUuO+mbjbnUsJyZANg/04PgkeeAYe+cwnX81ibbgrAk1F56M6/btIrWQoDjxsK6Sz8KoVQ=="
},
"node_modules/@fontsource/noto-sans-hk": {
- "version": "4.5.11",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-hk/-/noto-sans-hk-4.5.11.tgz",
- "integrity": "sha512-fL1oc/vlgrotdKo1aPI0SJaB/dU4v0iHP0t2bTvxqBo/2kjz4w4y/gu03sUk4gHujwnYjARhjtwVe73xph7P9w=="
+ "version": "4.5.12",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-hk/-/noto-sans-hk-4.5.12.tgz",
+ "integrity": "sha512-AWDAqUQpSXlraTZXCdwV9FOVuAVHmhed4bvqOjRqksfeMWZAAMiGOi1QfP4XWnGOzjLEZdV+4aNWc4RYw4suuQ=="
},
"node_modules/@fontsource/noto-sans-jp": {
- "version": "4.5.11",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-jp/-/noto-sans-jp-4.5.11.tgz",
- "integrity": "sha512-fNt9a07uf7YUPo4qEzIz8IseKn2Gg7zQwX29IKJ5pwClQNEUsVaqyP+PkuClo3EZi1eZUBYMJHjyVtsa8oSmsw=="
+ "version": "4.5.12",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-jp/-/noto-sans-jp-4.5.12.tgz",
+ "integrity": "sha512-tdJAUEyuyyCRD4Ot4ZE8+3uyGeSJQD/soSHr7LoltEQr22IotDDWOlqQKF7CpTaJPwt4iOBoXWtAoSN0huVW6A=="
},
"node_modules/@fontsource/noto-sans-kr": {
- "version": "4.5.11",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-kr/-/noto-sans-kr-4.5.11.tgz",
- "integrity": "sha512-yqUVOeV2eoHivVknPImSltQsZvLDrKjyf7Xl4XuBE02Gs5bGPkl/o72mUK+N+oMswF413pyxL+jQmI0PAYQubA=="
+ "version": "4.5.12",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-kr/-/noto-sans-kr-4.5.12.tgz",
+ "integrity": "sha512-6LBOzXw/V4guB/nATaiUjCcPxwJNGw+ky5DK7/wsgUZvfk8etH9IlKdvjFVidpeCuMVjOdlka2+MEw4hwEHaHA=="
},
"node_modules/@fontsource/noto-sans-sc": {
- "version": "4.5.11",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-sc/-/noto-sans-sc-4.5.11.tgz",
- "integrity": "sha512-tufdVgKpP2PqhPpk8Wu6nKF8RCe7nKU0lpKm2uWtqmFE0GN5n+Xq/H6UL7ssRNUvDTHffBHIlGB4T7iYXAutgw=="
+ "version": "4.5.12",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-sc/-/noto-sans-sc-4.5.12.tgz",
+ "integrity": "sha512-KQ8Bn8KCGVS6RKrEw7fp65GJYpKyKEJ/TkePoKGxvNy7smSaHoKV7vrmpIiA46hkqQyYdENix/NKSprxs4Soyw=="
},
"node_modules/@fontsource/noto-sans-tc": {
- "version": "4.5.11",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-tc/-/noto-sans-tc-4.5.11.tgz",
- "integrity": "sha512-Ns7V+lhInWpcNiHNlK5+9aSvn29ea/qQlNbHjG8+X4SKQ2fMK+rMdYaZCx4eYgQiKajQFTXke+uTroKgsuY/MQ=="
+ "version": "4.5.12",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-tc/-/noto-sans-tc-4.5.12.tgz",
+ "integrity": "sha512-c4OUY5Wq03ZLI4Ds9IEHEiPqpjmEXvDpANXufCTlk+bMb8MnweXPVWJSrSHydXnz7r+qstZl3HvWDl2RI5o/1A=="
},
"node_modules/@humanwhocodes/config-array": {
"version": "0.10.7",
@@ -2972,14 +2972,14 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.38.1.tgz",
- "integrity": "sha512-ky7EFzPhqz3XlhS7vPOoMDaQnQMn+9o5ICR9CPr/6bw8HrFkzhMSxuA3gRfiJVvs7geYrSeawGJjZoZQKCOglQ==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.39.0.tgz",
+ "integrity": "sha512-xVfKOkBm5iWMNGKQ2fwX5GVgBuHmZBO1tCRwXmY5oAIsPscfwm2UADDuNB8ZVYCtpQvJK4xpjrK7jEhcJ0zY9A==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.38.1",
- "@typescript-eslint/type-utils": "5.38.1",
- "@typescript-eslint/utils": "5.38.1",
+ "@typescript-eslint/scope-manager": "5.39.0",
+ "@typescript-eslint/type-utils": "5.39.0",
+ "@typescript-eslint/utils": "5.39.0",
"debug": "^4.3.4",
"ignore": "^5.2.0",
"regexpp": "^3.2.0",
@@ -3004,9 +3004,9 @@
}
},
"node_modules/@typescript-eslint/eslint-plugin/node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -3019,14 +3019,14 @@
}
},
"node_modules/@typescript-eslint/parser": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.38.1.tgz",
- "integrity": "sha512-LDqxZBVFFQnQRz9rUZJhLmox+Ep5kdUmLatLQnCRR6523YV+XhRjfYzStQ4MheFA8kMAfUlclHSbu+RKdRwQKw==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.39.0.tgz",
+ "integrity": "sha512-PhxLjrZnHShe431sBAGHaNe6BDdxAASDySgsBCGxcBecVCi8NQWxQZMcizNA4g0pN51bBAn/FUfkWG3SDVcGlA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/scope-manager": "5.38.1",
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/typescript-estree": "5.38.1",
+ "@typescript-eslint/scope-manager": "5.39.0",
+ "@typescript-eslint/types": "5.39.0",
+ "@typescript-eslint/typescript-estree": "5.39.0",
"debug": "^4.3.4"
},
"engines": {
@@ -3046,13 +3046,13 @@
}
},
"node_modules/@typescript-eslint/scope-manager": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.38.1.tgz",
- "integrity": "sha512-BfRDq5RidVU3RbqApKmS7RFMtkyWMM50qWnDAkKgQiezRtLKsoyRKIvz1Ok5ilRWeD9IuHvaidaLxvGx/2eqTQ==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.39.0.tgz",
+ "integrity": "sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/visitor-keys": "5.38.1"
+ "@typescript-eslint/types": "5.39.0",
+ "@typescript-eslint/visitor-keys": "5.39.0"
},
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -3063,13 +3063,13 @@
}
},
"node_modules/@typescript-eslint/type-utils": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.38.1.tgz",
- "integrity": "sha512-UU3j43TM66gYtzo15ivK2ZFoDFKKP0k03MItzLdq0zV92CeGCXRfXlfQX5ILdd4/DSpHkSjIgLLLh1NtkOJOAw==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.39.0.tgz",
+ "integrity": "sha512-KJHJkOothljQWzR3t/GunL0TPKY+fGJtnpl+pX+sJ0YiKTz3q2Zr87SGTmFqsCMFrLt5E0+o+S6eQY0FAXj9uA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/typescript-estree": "5.38.1",
- "@typescript-eslint/utils": "5.38.1",
+ "@typescript-eslint/typescript-estree": "5.39.0",
+ "@typescript-eslint/utils": "5.39.0",
"debug": "^4.3.4",
"tsutils": "^3.21.0"
},
@@ -3090,9 +3090,9 @@
}
},
"node_modules/@typescript-eslint/types": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.38.1.tgz",
- "integrity": "sha512-QTW1iHq1Tffp9lNfbfPm4WJabbvpyaehQ0SrvVK2yfV79SytD9XDVxqiPvdrv2LK7DGSFo91TB2FgWanbJAZXg==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.39.0.tgz",
+ "integrity": "sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw==",
"dev": true,
"engines": {
"node": "^12.22.0 || ^14.17.0 || >=16.0.0"
@@ -3103,13 +3103,13 @@
}
},
"node_modules/@typescript-eslint/typescript-estree": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.38.1.tgz",
- "integrity": "sha512-99b5e/Enoe8fKMLdSuwrfH/C0EIbpUWmeEKHmQlGZb8msY33qn1KlkFww0z26o5Omx7EVjzVDCWEfrfCDHfE7g==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.39.0.tgz",
+ "integrity": "sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/visitor-keys": "5.38.1",
+ "@typescript-eslint/types": "5.39.0",
+ "@typescript-eslint/visitor-keys": "5.39.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -3159,9 +3159,9 @@
}
},
"node_modules/@typescript-eslint/typescript-estree/node_modules/semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"dependencies": {
"lru-cache": "^6.0.0"
@@ -3174,15 +3174,15 @@
}
},
"node_modules/@typescript-eslint/utils": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.38.1.tgz",
- "integrity": "sha512-oIuUiVxPBsndrN81oP8tXnFa/+EcZ03qLqPDfSZ5xIJVm7A9V0rlkQwwBOAGtrdN70ZKDlKv+l1BeT4eSFxwXA==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.39.0.tgz",
+ "integrity": "sha512-+DnY5jkpOpgj+EBtYPyHRjXampJfC0yUZZzfzLuUWVZvCuKqSdJVC8UhdWipIw7VKNTfwfAPiOWzYkAwuIhiAg==",
"dev": true,
"dependencies": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.38.1",
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/typescript-estree": "5.38.1",
+ "@typescript-eslint/scope-manager": "5.39.0",
+ "@typescript-eslint/types": "5.39.0",
+ "@typescript-eslint/typescript-estree": "5.39.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
},
@@ -3198,12 +3198,12 @@
}
},
"node_modules/@typescript-eslint/visitor-keys": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.38.1.tgz",
- "integrity": "sha512-bSHr1rRxXt54+j2n4k54p4fj8AHJ49VDWtjpImOpzQj4qjAiOpPni+V1Tyajh19Api1i844F757cur8wH3YvOA==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.39.0.tgz",
+ "integrity": "sha512-yyE3RPwOG+XJBLrhvsxAidUgybJVQ/hG8BhiJo0k8JSAYfk/CshVcxf0HwP4Jt7WZZ6vLmxdo1p6EyN3tzFTkg==",
"dev": true,
"dependencies": {
- "@typescript-eslint/types": "5.38.1",
+ "@typescript-eslint/types": "5.39.0",
"eslint-visitor-keys": "^3.3.0"
},
"engines": {
@@ -4026,9 +4026,9 @@
}
},
"node_modules/blurhash": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.2.tgz",
- "integrity": "sha512-aYWeITmNkjtnR6X7wNgoIJ198qJc3w5yaIwLa7yxsV7/BMnWDWWgugBNvImSCcWNdVHhpNFIJgEb5jzhV4rkHA=="
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.3.tgz",
+ "integrity": "sha512-nTnJTOheiaV3b189f7rH5AbbrnQB2r3CcOZBg47GUDaE9DrxyBPD2w0HYp4ME2UBlTP7LMIa6nMWqg/58oyIzA=="
},
"node_modules/body-parser": {
"version": "1.20.0",
@@ -4873,9 +4873,9 @@
}
},
"node_modules/core-js": {
- "version": "3.25.3",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.3.tgz",
- "integrity": "sha512-y1hvKXmPHvm5B7w4ln1S4uc9eV/O5+iFExSRUimnvIph11uaizFR8LFMdONN8hG3P2pipUfX4Y/fR8rAEtcHcQ==",
+ "version": "3.25.5",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz",
+ "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw==",
"hasInstallScript": true,
"funding": {
"type": "opencollective",
@@ -20006,29 +20006,29 @@
"integrity": "sha512-lBX7FCjIjSrQ+iMuXUuO+mbjbnUsJyZANg/04PgkeeAYe+cwnX81ibbgrAk1F56M6/btIrWQoDjxsK6Sz8KoVQ=="
},
"@fontsource/noto-sans-hk": {
- "version": "4.5.11",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-hk/-/noto-sans-hk-4.5.11.tgz",
- "integrity": "sha512-fL1oc/vlgrotdKo1aPI0SJaB/dU4v0iHP0t2bTvxqBo/2kjz4w4y/gu03sUk4gHujwnYjARhjtwVe73xph7P9w=="
+ "version": "4.5.12",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-hk/-/noto-sans-hk-4.5.12.tgz",
+ "integrity": "sha512-AWDAqUQpSXlraTZXCdwV9FOVuAVHmhed4bvqOjRqksfeMWZAAMiGOi1QfP4XWnGOzjLEZdV+4aNWc4RYw4suuQ=="
},
"@fontsource/noto-sans-jp": {
- "version": "4.5.11",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-jp/-/noto-sans-jp-4.5.11.tgz",
- "integrity": "sha512-fNt9a07uf7YUPo4qEzIz8IseKn2Gg7zQwX29IKJ5pwClQNEUsVaqyP+PkuClo3EZi1eZUBYMJHjyVtsa8oSmsw=="
+ "version": "4.5.12",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-jp/-/noto-sans-jp-4.5.12.tgz",
+ "integrity": "sha512-tdJAUEyuyyCRD4Ot4ZE8+3uyGeSJQD/soSHr7LoltEQr22IotDDWOlqQKF7CpTaJPwt4iOBoXWtAoSN0huVW6A=="
},
"@fontsource/noto-sans-kr": {
- "version": "4.5.11",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-kr/-/noto-sans-kr-4.5.11.tgz",
- "integrity": "sha512-yqUVOeV2eoHivVknPImSltQsZvLDrKjyf7Xl4XuBE02Gs5bGPkl/o72mUK+N+oMswF413pyxL+jQmI0PAYQubA=="
+ "version": "4.5.12",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-kr/-/noto-sans-kr-4.5.12.tgz",
+ "integrity": "sha512-6LBOzXw/V4guB/nATaiUjCcPxwJNGw+ky5DK7/wsgUZvfk8etH9IlKdvjFVidpeCuMVjOdlka2+MEw4hwEHaHA=="
},
"@fontsource/noto-sans-sc": {
- "version": "4.5.11",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-sc/-/noto-sans-sc-4.5.11.tgz",
- "integrity": "sha512-tufdVgKpP2PqhPpk8Wu6nKF8RCe7nKU0lpKm2uWtqmFE0GN5n+Xq/H6UL7ssRNUvDTHffBHIlGB4T7iYXAutgw=="
+ "version": "4.5.12",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-sc/-/noto-sans-sc-4.5.12.tgz",
+ "integrity": "sha512-KQ8Bn8KCGVS6RKrEw7fp65GJYpKyKEJ/TkePoKGxvNy7smSaHoKV7vrmpIiA46hkqQyYdENix/NKSprxs4Soyw=="
},
"@fontsource/noto-sans-tc": {
- "version": "4.5.11",
- "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-tc/-/noto-sans-tc-4.5.11.tgz",
- "integrity": "sha512-Ns7V+lhInWpcNiHNlK5+9aSvn29ea/qQlNbHjG8+X4SKQ2fMK+rMdYaZCx4eYgQiKajQFTXke+uTroKgsuY/MQ=="
+ "version": "4.5.12",
+ "resolved": "https://registry.npmjs.org/@fontsource/noto-sans-tc/-/noto-sans-tc-4.5.12.tgz",
+ "integrity": "sha512-c4OUY5Wq03ZLI4Ds9IEHEiPqpjmEXvDpANXufCTlk+bMb8MnweXPVWJSrSHydXnz7r+qstZl3HvWDl2RI5o/1A=="
},
"@humanwhocodes/config-array": {
"version": "0.10.7",
@@ -20589,14 +20589,14 @@
}
},
"@typescript-eslint/eslint-plugin": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.38.1.tgz",
- "integrity": "sha512-ky7EFzPhqz3XlhS7vPOoMDaQnQMn+9o5ICR9CPr/6bw8HrFkzhMSxuA3gRfiJVvs7geYrSeawGJjZoZQKCOglQ==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.39.0.tgz",
+ "integrity": "sha512-xVfKOkBm5iWMNGKQ2fwX5GVgBuHmZBO1tCRwXmY5oAIsPscfwm2UADDuNB8ZVYCtpQvJK4xpjrK7jEhcJ0zY9A==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.38.1",
- "@typescript-eslint/type-utils": "5.38.1",
- "@typescript-eslint/utils": "5.38.1",
+ "@typescript-eslint/scope-manager": "5.39.0",
+ "@typescript-eslint/type-utils": "5.39.0",
+ "@typescript-eslint/utils": "5.39.0",
"debug": "^4.3.4",
"ignore": "^5.2.0",
"regexpp": "^3.2.0",
@@ -20605,9 +20605,9 @@
},
"dependencies": {
"semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -20616,53 +20616,53 @@
}
},
"@typescript-eslint/parser": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.38.1.tgz",
- "integrity": "sha512-LDqxZBVFFQnQRz9rUZJhLmox+Ep5kdUmLatLQnCRR6523YV+XhRjfYzStQ4MheFA8kMAfUlclHSbu+RKdRwQKw==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-5.39.0.tgz",
+ "integrity": "sha512-PhxLjrZnHShe431sBAGHaNe6BDdxAASDySgsBCGxcBecVCi8NQWxQZMcizNA4g0pN51bBAn/FUfkWG3SDVcGlA==",
"dev": true,
"requires": {
- "@typescript-eslint/scope-manager": "5.38.1",
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/typescript-estree": "5.38.1",
+ "@typescript-eslint/scope-manager": "5.39.0",
+ "@typescript-eslint/types": "5.39.0",
+ "@typescript-eslint/typescript-estree": "5.39.0",
"debug": "^4.3.4"
}
},
"@typescript-eslint/scope-manager": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.38.1.tgz",
- "integrity": "sha512-BfRDq5RidVU3RbqApKmS7RFMtkyWMM50qWnDAkKgQiezRtLKsoyRKIvz1Ok5ilRWeD9IuHvaidaLxvGx/2eqTQ==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/scope-manager/-/scope-manager-5.39.0.tgz",
+ "integrity": "sha512-/I13vAqmG3dyqMVSZPjsbuNQlYS082Y7OMkwhCfLXYsmlI0ca4nkL7wJ/4gjX70LD4P8Hnw1JywUVVAwepURBw==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/visitor-keys": "5.38.1"
+ "@typescript-eslint/types": "5.39.0",
+ "@typescript-eslint/visitor-keys": "5.39.0"
}
},
"@typescript-eslint/type-utils": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.38.1.tgz",
- "integrity": "sha512-UU3j43TM66gYtzo15ivK2ZFoDFKKP0k03MItzLdq0zV92CeGCXRfXlfQX5ILdd4/DSpHkSjIgLLLh1NtkOJOAw==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/type-utils/-/type-utils-5.39.0.tgz",
+ "integrity": "sha512-KJHJkOothljQWzR3t/GunL0TPKY+fGJtnpl+pX+sJ0YiKTz3q2Zr87SGTmFqsCMFrLt5E0+o+S6eQY0FAXj9uA==",
"dev": true,
"requires": {
- "@typescript-eslint/typescript-estree": "5.38.1",
- "@typescript-eslint/utils": "5.38.1",
+ "@typescript-eslint/typescript-estree": "5.39.0",
+ "@typescript-eslint/utils": "5.39.0",
"debug": "^4.3.4",
"tsutils": "^3.21.0"
}
},
"@typescript-eslint/types": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.38.1.tgz",
- "integrity": "sha512-QTW1iHq1Tffp9lNfbfPm4WJabbvpyaehQ0SrvVK2yfV79SytD9XDVxqiPvdrv2LK7DGSFo91TB2FgWanbJAZXg==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-5.39.0.tgz",
+ "integrity": "sha512-gQMZrnfEBFXK38hYqt8Lkwt8f4U6yq+2H5VDSgP/qiTzC8Nw8JO3OuSUOQ2qW37S/dlwdkHDntkZM6SQhKyPhw==",
"dev": true
},
"@typescript-eslint/typescript-estree": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.38.1.tgz",
- "integrity": "sha512-99b5e/Enoe8fKMLdSuwrfH/C0EIbpUWmeEKHmQlGZb8msY33qn1KlkFww0z26o5Omx7EVjzVDCWEfrfCDHfE7g==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-5.39.0.tgz",
+ "integrity": "sha512-qLFQP0f398sdnogJoLtd43pUgB18Q50QSA+BTE5h3sUxySzbWDpTSdgt4UyxNSozY/oDK2ta6HVAzvGgq8JYnA==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/visitor-keys": "5.38.1",
+ "@typescript-eslint/types": "5.39.0",
+ "@typescript-eslint/visitor-keys": "5.39.0",
"debug": "^4.3.4",
"globby": "^11.1.0",
"is-glob": "^4.0.3",
@@ -20691,9 +20691,9 @@
}
},
"semver": {
- "version": "7.3.7",
- "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz",
- "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==",
+ "version": "7.3.8",
+ "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.8.tgz",
+ "integrity": "sha512-NB1ctGL5rlHrPJtFDVIVzTyQylMLu9N9VICA6HSFJo8MCGVTMW6gfpicwKmmK/dAjTOrqu5l63JJOpDSrAis3A==",
"dev": true,
"requires": {
"lru-cache": "^6.0.0"
@@ -20702,26 +20702,26 @@
}
},
"@typescript-eslint/utils": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.38.1.tgz",
- "integrity": "sha512-oIuUiVxPBsndrN81oP8tXnFa/+EcZ03qLqPDfSZ5xIJVm7A9V0rlkQwwBOAGtrdN70ZKDlKv+l1BeT4eSFxwXA==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/utils/-/utils-5.39.0.tgz",
+ "integrity": "sha512-+DnY5jkpOpgj+EBtYPyHRjXampJfC0yUZZzfzLuUWVZvCuKqSdJVC8UhdWipIw7VKNTfwfAPiOWzYkAwuIhiAg==",
"dev": true,
"requires": {
"@types/json-schema": "^7.0.9",
- "@typescript-eslint/scope-manager": "5.38.1",
- "@typescript-eslint/types": "5.38.1",
- "@typescript-eslint/typescript-estree": "5.38.1",
+ "@typescript-eslint/scope-manager": "5.39.0",
+ "@typescript-eslint/types": "5.39.0",
+ "@typescript-eslint/typescript-estree": "5.39.0",
"eslint-scope": "^5.1.1",
"eslint-utils": "^3.0.0"
}
},
"@typescript-eslint/visitor-keys": {
- "version": "5.38.1",
- "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.38.1.tgz",
- "integrity": "sha512-bSHr1rRxXt54+j2n4k54p4fj8AHJ49VDWtjpImOpzQj4qjAiOpPni+V1Tyajh19Api1i844F757cur8wH3YvOA==",
+ "version": "5.39.0",
+ "resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-5.39.0.tgz",
+ "integrity": "sha512-yyE3RPwOG+XJBLrhvsxAidUgybJVQ/hG8BhiJo0k8JSAYfk/CshVcxf0HwP4Jt7WZZ6vLmxdo1p6EyN3tzFTkg==",
"dev": true,
"requires": {
- "@typescript-eslint/types": "5.38.1",
+ "@typescript-eslint/types": "5.39.0",
"eslint-visitor-keys": "^3.3.0"
},
"dependencies": {
@@ -21358,9 +21358,9 @@
"dev": true
},
"blurhash": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.2.tgz",
- "integrity": "sha512-aYWeITmNkjtnR6X7wNgoIJ198qJc3w5yaIwLa7yxsV7/BMnWDWWgugBNvImSCcWNdVHhpNFIJgEb5jzhV4rkHA=="
+ "version": "2.0.3",
+ "resolved": "https://registry.npmjs.org/blurhash/-/blurhash-2.0.3.tgz",
+ "integrity": "sha512-nTnJTOheiaV3b189f7rH5AbbrnQB2r3CcOZBg47GUDaE9DrxyBPD2w0HYp4ME2UBlTP7LMIa6nMWqg/58oyIzA=="
},
"body-parser": {
"version": "1.20.0",
@@ -21997,9 +21997,9 @@
}
},
"core-js": {
- "version": "3.25.3",
- "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.3.tgz",
- "integrity": "sha512-y1hvKXmPHvm5B7w4ln1S4uc9eV/O5+iFExSRUimnvIph11uaizFR8LFMdONN8hG3P2pipUfX4Y/fR8rAEtcHcQ=="
+ "version": "3.25.5",
+ "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.25.5.tgz",
+ "integrity": "sha512-nbm6eZSjm+ZuBQxCUPQKQCoUEfFOXjUZ8dTTyikyKaWrTYmAVbykQfwsKE5dBK88u3QCkCrzsx/PPlKfhsvgpw=="
},
"core-js-compat": {
"version": "3.25.3",
diff --git a/package.json b/package.json
index 80ada804cc..3df9178ff6 100644
--- a/package.json
+++ b/package.json
@@ -18,8 +18,8 @@
"@types/lodash-es": "4.17.6",
"@types/react": "17.0.50",
"@types/react-dom": "17.0.17",
- "@typescript-eslint/eslint-plugin": "5.38.1",
- "@typescript-eslint/parser": "5.38.1",
+ "@typescript-eslint/eslint-plugin": "5.39.0",
+ "@typescript-eslint/parser": "5.39.0",
"@uupaa/dynamic-import-polyfill": "1.0.2",
"autoprefixer": "10.4.12",
"babel-loader": "8.2.5",
@@ -66,17 +66,17 @@
},
"dependencies": {
"@fontsource/noto-sans": "4.5.11",
- "@fontsource/noto-sans-hk": "4.5.11",
- "@fontsource/noto-sans-jp": "4.5.11",
- "@fontsource/noto-sans-kr": "4.5.11",
- "@fontsource/noto-sans-sc": "4.5.11",
- "@fontsource/noto-sans-tc": "4.5.11",
+ "@fontsource/noto-sans-hk": "4.5.12",
+ "@fontsource/noto-sans-jp": "4.5.12",
+ "@fontsource/noto-sans-kr": "4.5.12",
+ "@fontsource/noto-sans-sc": "4.5.12",
+ "@fontsource/noto-sans-tc": "4.5.12",
"@jellyfin/libass-wasm": "4.1.1",
"@jellyfin/sdk": "0.7.0",
- "blurhash": "2.0.2",
+ "blurhash": "2.0.3",
"classlist.js": "https://github.com/eligrey/classList.js/archive/1.2.20180112.tar.gz",
"classnames": "2.3.2",
- "core-js": "3.25.3",
+ "core-js": "3.25.5",
"date-fns": "2.29.3",
"dompurify": "2.4.0",
"epubjs": "0.3.93",
diff --git a/src/assets/img/devices/home-assistant.svg b/src/assets/img/devices/home-assistant.svg
new file mode 100644
index 0000000000..a34be98def
--- /dev/null
+++ b/src/assets/img/devices/home-assistant.svg
@@ -0,0 +1 @@
+
diff --git a/src/components/libraryoptionseditor/libraryoptionseditor.js b/src/components/libraryoptionseditor/libraryoptionseditor.js
index 2d67f04f0f..00cac68136 100644
--- a/src/components/libraryoptionseditor/libraryoptionseditor.js
+++ b/src/components/libraryoptionseditor/libraryoptionseditor.js
@@ -382,7 +382,6 @@ import template from './libraryoptionseditor.template.html';
return setContentType(parent, contentType).then(function() {
libraryOptions && setLibraryOptions(parent, libraryOptions);
bindEvents(parent);
- return;
});
});
}
diff --git a/src/components/playback/playerSelectionMenu.js b/src/components/playback/playerSelectionMenu.js
index 9cbe2e5ac0..94c3c4b439 100644
--- a/src/components/playback/playerSelectionMenu.js
+++ b/src/components/playback/playerSelectionMenu.js
@@ -295,7 +295,6 @@ document.addEventListener('viewshow', function (e) {
mirrorIfEnabled({
item: item
});
- return;
}
});
diff --git a/src/components/recordingcreator/recordingcreator.js b/src/components/recordingcreator/recordingcreator.js
index 4387b2e09b..6720a43475 100644
--- a/src/components/recordingcreator/recordingcreator.js
+++ b/src/components/recordingcreator/recordingcreator.js
@@ -129,7 +129,6 @@ function executeCloseAction(action, programId, serverId) {
serverId: serverId
});
});
- return;
}
}
diff --git a/src/controllers/itemDetails/index.js b/src/controllers/itemDetails/index.js
index 5482c4d479..a740e450f9 100644
--- a/src/controllers/itemDetails/index.js
+++ b/src/controllers/itemDetails/index.js
@@ -170,7 +170,6 @@ function renderSeriesTimerEditor(page, item, apiClient, user) {
page.querySelector('.seriesTimerScheduleSection').classList.add('hide');
hideAll(page, 'btnCancelSeriesTimer');
- return;
}
function renderTrackSelections(page, instance, item, forceReload) {
diff --git a/src/controllers/list.js b/src/controllers/list.js
index 4c9e97ca48..09d398451f 100644
--- a/src/controllers/list.js
+++ b/src/controllers/list.js
@@ -720,8 +720,6 @@ class ItemsView {
if (params.type === 'Video') {
return globalize.translate('Videos');
}
-
- return;
}
function play() {
diff --git a/src/controllers/session/forgotPassword/index.js b/src/controllers/session/forgotPassword/index.js
index 208e54d063..87a0498bf0 100644
--- a/src/controllers/session/forgotPassword/index.js
+++ b/src/controllers/session/forgotPassword/index.js
@@ -35,7 +35,6 @@ import Dashboard from '../../../utils/dashboard';
Dashboard.navigate('forgotpasswordpin.html');
}
});
- return;
}
}
diff --git a/src/elements/emby-itemscontainer/emby-itemscontainer.js b/src/elements/emby-itemscontainer/emby-itemscontainer.js
index da9592ca19..b6d0f147b7 100644
--- a/src/elements/emby-itemscontainer/emby-itemscontainer.js
+++ b/src/elements/emby-itemscontainer/emby-itemscontainer.js
@@ -190,7 +190,6 @@ import Sortable from 'sortablejs';
const itemsContainer = this;
if (getEventsToMonitor(itemsContainer).indexOf('seriestimers') !== -1) {
itemsContainer.notifyRefreshNeeded();
- return;
}
}
diff --git a/src/plugins/syncPlay/core/QueueCore.js b/src/plugins/syncPlay/core/QueueCore.js
index cdf1d56a1e..f1a435106e 100644
--- a/src/plugins/syncPlay/core/QueueCore.js
+++ b/src/plugins/syncPlay/core/QueueCore.js
@@ -193,7 +193,6 @@ class QueueCore {
}
this.manager.haltGroupPlayback(apiClient);
- return;
});
}
diff --git a/src/scripts/imagehelper.js b/src/scripts/imagehelper.js
index cb76fa7977..d481f7e4ad 100644
--- a/src/scripts/imagehelper.js
+++ b/src/scripts/imagehelper.js
@@ -52,6 +52,8 @@ function getWebDeviceIcon(browser) {
case 'Jellyfin iOS':
case 'Infuse':
return BASE_DEVICE_IMAGE_URL + 'apple.svg';
+ case 'Home Assistant':
+ return BASE_DEVICE_IMAGE_URL + 'home-assistant.svg';
case 'Jellyfin Web':
return getWebDeviceIcon(device.Name || device.DeviceName);
default:
diff --git a/src/strings/ar.json b/src/strings/ar.json
index 22f643e25c..3a3ffe10a9 100644
--- a/src/strings/ar.json
+++ b/src/strings/ar.json
@@ -1672,5 +1672,9 @@
"RememberSubtitleSelections": "تعيين مسار الترجمة على أساس البند السابق",
"RememberAudioSelectionsHelp": "حاول ضبط المسار الصوتي على أقرب تطابق للفيديو الأخير.",
"RememberAudioSelections": "تعيين مسار الصوت على أساس البند السابق",
- "LabelMaxVideoResolution": "الحد الأقصى المسموح به لقرار تحويل ترميز الفيديو"
+ "LabelMaxVideoResolution": "الحد الأقصى المسموح به لقرار تحويل ترميز الفيديو",
+ "OptionDateShowAdded": "تاريخ اضافة العرض",
+ "OptionDateEpisodeAdded": "تاريخ اضافة الحلقة",
+ "IgnoreDtsHelp": "قد يؤدي تعطيل هذا الخيار إلى حل بعض المشكلات ، على سبيل المثال فقدان الصوت على القنوات التي تحتوي على دفق صوت وفيديو منفصل.",
+ "IgnoreDts": "تجاهل DTS (الطابع الزمني لفك التشفير)"
}
diff --git a/src/strings/ca.json b/src/strings/ca.json
index a5f85cae8c..c8db8f23eb 100644
--- a/src/strings/ca.json
+++ b/src/strings/ca.json
@@ -969,7 +969,7 @@
"NoNewDevicesFound": "No es van trobar nous dispositius. Per afegir un nou sintonitzador, tancar aquest diàleg i introduïu la informació de el dispositiu de forma manual.",
"NoCreatedLibraries": "Sembla que no s'ha creat cap biblioteca encara. {0} Li agradaria crear una ara? {1}",
"No": "No",
- "NextUp": "Fins a la pròxima",
+ "NextUp": "A continuació",
"NextTrack": "Passar a la següent",
"Next": "Pròxim",
"News": "Notícies",
@@ -1644,5 +1644,8 @@
"ButtonClose": "Tancar",
"ButtonBackspace": "Retrocés",
"Arranger": "Arranjador",
- "AddToFavorites": "Afegir a preferits"
+ "AddToFavorites": "Afegir a preferits",
+ "EnableSplashScreen": "Habilita la pantalla de benvinguda",
+ "ScreenResolution": "Resolució de pantalla",
+ "Bold": "Negreta"
}
diff --git a/src/strings/en-gb.json b/src/strings/en-gb.json
index a05d5e3d71..5b721ee886 100644
--- a/src/strings/en-gb.json
+++ b/src/strings/en-gb.json
@@ -1675,5 +1675,9 @@
"RememberSubtitleSelections": "Set subtitle track based on previous item",
"RememberAudioSelectionsHelp": "Try to set the audio track to the closest match to the last video.",
"RememberAudioSelections": "Set audio track based on previous item",
- "LabelMaxVideoResolution": "Maximum Allowed Video Transcoding Resolution"
+ "LabelMaxVideoResolution": "Maximum Allowed Video Transcoding Resolution",
+ "OptionDateShowAdded": "Date Show Added",
+ "OptionDateEpisodeAdded": "Date Episode Added",
+ "IgnoreDtsHelp": "Disabling this option may resolve some issues, e.g. missing audio on channels with separate audio and video streams.",
+ "IgnoreDts": "Ignore DTS (decoding timestamp)"
}
diff --git a/src/strings/fr.json b/src/strings/fr.json
index 85fe0a38c5..41fdac284c 100644
--- a/src/strings/fr.json
+++ b/src/strings/fr.json
@@ -1676,5 +1676,8 @@
"RememberSubtitleSelections": "Définir la piste de sous-titre en fonction de l'élément précédent",
"RememberAudioSelectionsHelp": "Choisir la piste audio la plus proche de la dernière vidéo.",
"RememberAudioSelections": "Définir la piste audio en fonction de l'élément précédent",
- "IgnoreDtsHelp": "Désactiver cette option pourrait résoudre certains problèmes, comme par exemple l'audio manquant sur des pistes ayant des flux audios et vidéos séparés."
+ "IgnoreDtsHelp": "La désactivation de cette option peut résoudre certains problèmes, par ex. audio manquant sur les canaux avec des flux audio et vidéo séparés.",
+ "OptionDateShowAdded": "Date d'ajout de la série",
+ "OptionDateEpisodeAdded": "Date d'ajout de l'épisode",
+ "IgnoreDts": "Ignorer DTS (horodatage de décodage)"
}
diff --git a/src/strings/pt-pt.json b/src/strings/pt-pt.json
index 770239a50c..e0c72aa6d3 100644
--- a/src/strings/pt-pt.json
+++ b/src/strings/pt-pt.json
@@ -1413,7 +1413,7 @@
"SmallCaps": "Maiúsculas reduzidas",
"LabelTonemappingRange": "Alcance do Tone Mapping :",
"TonemappingAlgorithmHelp": "O Tone Mapping pode ser afinado. Se não estiver familiarizado com estas opções, mantenha-as nas opções padrão. O valor recomendado é 'BT.2390'.",
- "AllowTonemappingHelp": "O processo de Tone Mapping transforma o Dynamic Range de um vídeo HDR em SDR, mantendo os detalhes e as cores, sendo estes bastante importantes para preservar a cena original. Atualmente funciona apenas com vídeos HDR10 ou HLG. Esta opção requer os executáveis CUDA ou OpenCL correspondentes.",
+ "AllowTonemappingHelp": "O processo de Tone Mapping transforma o Dynamic Range de um vídeo HDR em SDR, mantendo os detalhes e as cores, sendo estes bastante importantes para preservar a cena original. Atualmente funciona apenas com vídeos HDR10 ou HLG. Esta opção requer os executáveis CUDA ou OpenCL correspondentes.",
"LabelMaxMuxingQueueSizeHelp": "Número máximo de pacotes armazenados em buffer enquanto aguardam que todas as transmissões iniciem. Tente aumentá-lo caso se depare com o seguinte erro nos registos do FFmpeg \"Too many packets buffered for output stream\". O valor recomendado é 2048.",
"DeleteAll": "Apagar tudo",
"DeleteDevicesConfirmation": "Tem a certeza que deseja remover todos os dispositivos? Todas as outras sessões serão terminadas. Os dispositivos reaparecerão da próxima vez que um utilizador iniciar sessão.",
diff --git a/src/strings/sk.json b/src/strings/sk.json
index 649edb3e49..9fee841ca4 100644
--- a/src/strings/sk.json
+++ b/src/strings/sk.json
@@ -1675,5 +1675,9 @@
"RememberSubtitleSelections": "Nastaviť titulky podľa predchádzajúcej položky",
"RememberAudioSelectionsHelp": "Pokúsi sa nastaviť zvukovú stopu tak, aby sa čo najviac zhodovala s posledným videom.",
"RememberAudioSelections": "Nastaviť zvukovú stopu podľa predchádzajúcej položky",
- "LabelMaxVideoResolution": "Maximálne dovolené rozlíšenie videa pre prekódovanie"
+ "LabelMaxVideoResolution": "Maximálne dovolené rozlíšenie videa pre prekódovanie",
+ "OptionDateShowAdded": "Dátum pridania seriálu",
+ "OptionDateEpisodeAdded": "Dátum pridania epizódy",
+ "IgnoreDtsHelp": "Vypnutím sa môžu vyriešiť niektoré problémy, napr. chýbajúci zvuk pri kanáloch so samostatnými zvukovými a video streamami.",
+ "IgnoreDts": "Ignorovať DTS (dekódovacia časová pečiatka)"
}
diff --git a/src/strings/vi.json b/src/strings/vi.json
index 4b3e69f6ad..ae96ca1c46 100644
--- a/src/strings/vi.json
+++ b/src/strings/vi.json
@@ -1668,5 +1668,8 @@
"Trailer": "",
"TypeOptionPluralVideo": "Videos",
"ButtonSpace": "Cách",
- "ButtonBackspace": "Xóa"
+ "ButtonBackspace": "Xóa",
+ "OptionDateEpisodeAdded": "Ngày Thêm Tập",
+ "IgnoreDtsHelp": "Việc tắt tùy chọn này có thể giải quyết một số vấn đề, ví dụ: thiếu âm thanh trên các kênh có luồng âm thanh và video riêng biệt.",
+ "IgnoreDts": "Bỏ qua DTS (dấu thời gian giải mã)"
}
diff --git a/webpack.common.js b/webpack.common.js
index fddcfe66a2..b7c3ad6f47 100644
--- a/webpack.common.js
+++ b/webpack.common.js
@@ -121,7 +121,7 @@ const config = {
},
{
test: /\.(js|jsx)$/,
- exclude: /node_modules[\\/](?!@uupaa[\\/]dynamic-import-polyfill|blurhash|date-fns|epubjs|flv.js|libarchive.js|marked|react-router|screenfull)/,
+ exclude: /node_modules[\\/](?!@uupaa[\\/]dynamic-import-polyfill|@remix-run[\\/]router|blurhash|date-fns|epubjs|flv.js|libarchive.js|marked|react-router|screenfull)/,
use: [{
loader: 'babel-loader',
options: {