Compare commits

...

18 Commits

Author SHA1 Message Date
renovate[bot] fbb214cd40
chore(deps): update dependency eslint to v9 2024-05-16 15:19:45 +00:00
Bnyro c30062eb94
Merge pull request #3610 from TeamPiped/renovate/dompurify-3.x
fix(deps): update dependency dompurify to v3.1.3
2024-05-16 17:18:56 +02:00
Bnyro adeb0a92bd
Merge pull request #3621 from Bnyro/master
fix: links in comments are not clickable
2024-05-16 17:18:39 +02:00
Bnyro afd5c5b3b8 fix: links in comments are not clickable 2024-05-16 17:18:19 +02:00
Bnyro ba4e946dc2
Merge pull request #3620 from Bnyro/master
feat: show tooltips when creator replied / liked comment
2024-05-16 17:04:35 +02:00
Bnyro ca5e39dfd8 feat: show tooltips when creator replied / liked comment 2024-05-16 17:04:08 +02:00
Bnyro c31f9fbb54
Merge pull request #3619 from Bnyro/master
fix(register): input height doesn't match view password icon
2024-05-16 16:58:07 +02:00
Bnyro 9762542596 fix(register): input height doesn't match view password icon 2024-05-16 16:57:47 +02:00
Bnyro 1440eea4a0
Merge pull request #3618 from Bnyro/master
refactor: use browser inbuilt tooltip on login/register page
2024-05-16 16:57:40 +02:00
Bnyro c0a9b16aa8 refactor: use browser inbuilt tooltip on login/register page 2024-05-16 16:51:04 +02:00
github-actions[bot] 3b18da84b1
Merge pull request #3617 from TeamPiped/weblate
Translations update from Hosted Weblate
2024-05-16 13:03:25 +00:00
Kārlis Korlašs 1262dfa596
Translated using Weblate (Latvian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/lv/
2024-05-16 15:01:51 +02:00
github-actions[bot] e5e31aed5e
Merge pull request #3615 from TeamPiped/weblate
Translations update from Hosted Weblate
2024-05-15 00:03:04 +00:00
Ghost of Sparta 6513170ab2
Translated using Weblate (Hungarian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/hu/
2024-05-15 02:01:46 +02:00
maboroshin a996997e28
Translated using Weblate (Japanese)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/ja/
2024-05-15 02:01:45 +02:00
github-actions[bot] aadcb467cd
Merge pull request #3614 from TeamPiped/weblate
Translations update from Hosted Weblate
2024-05-13 13:01:53 +00:00
Priit Jõerüüt 7f99a31312
Translated using Weblate (Estonian)
Currently translated at 100.0% (208 of 208 strings)

Translation: Piped/Frontend
Translate-URL: https://hosted.weblate.org/projects/piped/frontend/et/
2024-05-13 15:00:24 +02:00
renovate[bot] eccf4d1f78
fix(deps): update dependency dompurify to v3.1.3 2024-05-11 12:44:43 +00:00
14 changed files with 138 additions and 170 deletions

View File

@ -11,7 +11,7 @@
"lint": "eslint --fix --color --ignore-path .gitignore --ext .js,.vue ."
},
"dependencies": {
"dompurify": "3.1.2",
"dompurify": "3.1.3",
"fast-xml-parser": "4.3.6",
"hotkeys-js": "3.13.7",
"javascript-time-ago": "2.5.10",
@ -37,7 +37,7 @@
"@vitejs/plugin-legacy": "5.4.0",
"@vitejs/plugin-vue": "5.0.4",
"@vue/compiler-sfc": "3.4.25",
"eslint": "8.57.0",
"eslint": "9.2.0",
"eslint-config-prettier": "9.1.0",
"eslint-plugin-prettier": "5.1.3",
"eslint-plugin-vue": "9.25.0",

View File

@ -6,8 +6,8 @@ settings:
dependencies:
dompurify:
specifier: 3.1.2
version: 3.1.2
specifier: 3.1.3
version: 3.1.3
fast-xml-parser:
specifier: 4.3.6
version: 4.3.6
@ -51,7 +51,7 @@ devDependencies:
version: 4.0.0(rollup@2.79.1)(vue-i18n@9.13.1)
'@unocss/eslint-config':
specifier: 0.58.9
version: 0.58.9(eslint@8.57.0)(typescript@5.4.5)
version: 0.58.9(eslint@9.2.0)(typescript@5.4.5)
'@unocss/preset-icons':
specifier: 0.58.9
version: 0.58.9
@ -80,17 +80,17 @@ devDependencies:
specifier: 3.4.25
version: 3.4.25
eslint:
specifier: 8.57.0
version: 8.57.0
specifier: 9.2.0
version: 9.2.0
eslint-config-prettier:
specifier: 9.1.0
version: 9.1.0(eslint@8.57.0)
version: 9.1.0(eslint@9.2.0)
eslint-plugin-prettier:
specifier: 5.1.3
version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5)
version: 5.1.3(eslint-config-prettier@9.1.0)(eslint@9.2.0)(prettier@3.2.5)
eslint-plugin-vue:
specifier: 9.25.0
version: 9.25.0(eslint@8.57.0)
version: 9.25.0(eslint@9.2.0)
lightningcss:
specifier: 1.24.1
version: 1.24.1
@ -105,7 +105,7 @@ devDependencies:
version: 5.2.11(lightningcss@1.24.1)(terser@5.31.0)
vite-plugin-eslint:
specifier: 1.8.1
version: 1.8.1(eslint@8.57.0)(vite@5.2.11)
version: 1.8.1(eslint@9.2.0)(vite@5.2.11)
vite-plugin-pwa:
specifier: 0.20.0
version: 0.20.0(vite@5.2.11)(workbox-build@7.1.0)(workbox-window@7.1.0)
@ -1573,13 +1573,13 @@ packages:
dev: true
optional: true
/@eslint-community/eslint-utils@4.4.0(eslint@8.57.0):
/@eslint-community/eslint-utils@4.4.0(eslint@9.2.0):
resolution: {integrity: sha512-1/sA4dwrzBAyeUoQ6oxahHKmrZvsnLCg4RfxW3ZFGGmQkSNQPFNLV9CUEFQP1x9EYXHTo5p6xdhZM1Ne9p/AfA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || >=8.0.0
dependencies:
eslint: 8.57.0
eslint: 9.2.0
eslint-visitor-keys: 3.4.3
dev: true
@ -1588,14 +1588,14 @@ packages:
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
/@eslint/eslintrc@2.1.4:
resolution: {integrity: sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
/@eslint/eslintrc@3.0.2:
resolution: {integrity: sha512-wV19ZEGEMAC1eHgrS7UQPqsdEiCIbTKTasEfcXAigzoXICcqZSjBZEHlZwNVvKg6UBCjSlos84XiLqsRJnIcIg==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
dependencies:
ajv: 6.12.6
debug: 4.3.4
espree: 9.6.1
globals: 13.24.0
espree: 10.0.1
globals: 14.0.0
ignore: 5.3.1
import-fresh: 3.3.0
js-yaml: 4.1.0
@ -1605,13 +1605,13 @@ packages:
- supports-color
dev: true
/@eslint/js@8.57.0:
resolution: {integrity: sha512-Ys+3g2TaW7gADOJzPt83SJtCDhMjndcDMFVQ/Tj9iA1BfJzFKD9mAUXT3OenpuPHbI6P/myECxRJrofUsDx/5g==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
/@eslint/js@9.2.0:
resolution: {integrity: sha512-ESiIudvhoYni+MdsI8oD7skpprZ89qKocwRM2KEvhhBJ9nl5MRh7BXU5GTod7Mdygq+AUl+QzId6iWJKR/wABA==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
dev: true
/@humanwhocodes/config-array@0.11.14:
resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==}
/@humanwhocodes/config-array@0.13.0:
resolution: {integrity: sha512-DZLEEqFWQFiyK6h5YIeynKx7JlvCYWL0cImfSRXZ9l4Sg2efkFGTuFf6vzXjK1cq6IYkU+Eg/JizXw+TD2vRNw==}
engines: {node: '>=10.10.0'}
dependencies:
'@humanwhocodes/object-schema': 2.0.3
@ -1630,6 +1630,11 @@ packages:
resolution: {integrity: sha512-93zYdMES/c1D69yZiKDBj0V24vqNzB/koF26KPaagAfd3P/4gUlh3Dys5ogAK+Exi9QyzlD8x/08Zt7wIKcDcA==}
dev: true
/@humanwhocodes/retry@0.2.4:
resolution: {integrity: sha512-Ttl/jHpxfS3st5sxwICYfk4pOH0WrLI1SpW283GgQL7sCWU7EHIOhX4b4fkIxr3tkfzwg8+FNojtzsIEE7Ecgg==}
engines: {node: '>=18.18'}
dev: true
/@iconify-json/fa6-brands@1.1.19:
resolution: {integrity: sha512-3Dl0D1gtFwIj7/GT2xJbkM9D/LjuozsgfLrqRWP6B5xuajtsyEvR1wD0Z06y3iaNtASpgWPWyYbml+AHQ3Hw0g==}
dependencies:
@ -2099,19 +2104,19 @@ packages:
- supports-color
dev: true
/@typescript-eslint/utils@7.8.0(eslint@8.57.0)(typescript@5.4.5):
/@typescript-eslint/utils@7.8.0(eslint@9.2.0)(typescript@5.4.5):
resolution: {integrity: sha512-L0yFqOCflVqXxiZyXrDr80lnahQfSOfc9ELAAZ75sqicqp2i36kEZZGuUymHNFoYOqxRT05up760b4iGsl02nQ==}
engines: {node: ^18.18.0 || >=20.0.0}
peerDependencies:
eslint: ^8.56.0
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0)
'@types/json-schema': 7.0.15
'@types/semver': 7.5.8
'@typescript-eslint/scope-manager': 7.8.0
'@typescript-eslint/types': 7.8.0
'@typescript-eslint/typescript-estree': 7.8.0(typescript@5.4.5)
eslint: 8.57.0
eslint: 9.2.0
semver: 7.6.2
transitivePeerDependencies:
- supports-color
@ -2126,10 +2131,6 @@ packages:
eslint-visitor-keys: 3.4.3
dev: true
/@ungap/structured-clone@1.2.0:
resolution: {integrity: sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ==}
dev: true
/@unocss/astro@0.58.9(rollup@2.79.1)(vite@5.2.11):
resolution: {integrity: sha512-VWfHNC0EfawFxLfb3uI+QcMGBN+ju+BYtutzeZTjilLKj31X2UpqIh8fepixL6ljgZzB3fweqg2xtUMC0gMnoQ==}
peerDependencies:
@ -2180,22 +2181,22 @@ packages:
resolution: {integrity: sha512-wYpPIPPsOIbIoMIDuH8ihehJk5pAZmyFKXIYO/Kro98GEOFhz6lJoLsy6/PZuitlgp2/TSlubUuWGjHWvp5osw==}
dev: true
/@unocss/eslint-config@0.58.9(eslint@8.57.0)(typescript@5.4.5):
/@unocss/eslint-config@0.58.9(eslint@9.2.0)(typescript@5.4.5):
resolution: {integrity: sha512-7Cf9NVPQqdhd6rbe2JDlqY9bBwuFfxvZOmeEUcKaI10QNNrDNvnMKd8rToxCdm5RToSjNeuj66V/scl8Kv8rfQ==}
engines: {node: '>=14'}
dependencies:
'@unocss/eslint-plugin': 0.58.9(eslint@8.57.0)(typescript@5.4.5)
'@unocss/eslint-plugin': 0.58.9(eslint@9.2.0)(typescript@5.4.5)
transitivePeerDependencies:
- eslint
- supports-color
- typescript
dev: true
/@unocss/eslint-plugin@0.58.9(eslint@8.57.0)(typescript@5.4.5):
/@unocss/eslint-plugin@0.58.9(eslint@9.2.0)(typescript@5.4.5):
resolution: {integrity: sha512-StlHO850jow2w/PTA01opkGAD6WO+iu65fxel062gp/aeoO/cRwVlQntVX7Z8QHDGXnftjW83RjvX9LqW8+iLw==}
engines: {node: '>=14'}
dependencies:
'@typescript-eslint/utils': 7.8.0(eslint@8.57.0)(typescript@5.4.5)
'@typescript-eslint/utils': 7.8.0(eslint@9.2.0)(typescript@5.4.5)
'@unocss/config': 0.58.9
'@unocss/core': 0.58.9
magic-string: 0.30.10
@ -2930,15 +2931,8 @@ packages:
path-type: 4.0.0
dev: true
/doctrine@3.0.0:
resolution: {integrity: sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==}
engines: {node: '>=6.0.0'}
dependencies:
esutils: 2.0.3
dev: true
/dompurify@3.1.2:
resolution: {integrity: sha512-hLGGBI1tw5N8qTELr3blKjAML/LY4ANxksbS612UiJyDfyf/2D092Pvm+S7pmeTGJRqvlJkFzBoHBQKgQlOQVg==}
/dompurify@3.1.3:
resolution: {integrity: sha512-5sOWYSNPaxz6o2MUPvtyxTTqR4D3L77pr5rUQoWgD5ROQtVIZQgJkXbo1DLlK3vj11YGw5+LnF4SYti4gZmwng==}
dev: false
/duplexer@0.1.2:
@ -3120,16 +3114,16 @@ packages:
source-map: 0.6.1
dev: true
/eslint-config-prettier@9.1.0(eslint@8.57.0):
/eslint-config-prettier@9.1.0(eslint@9.2.0):
resolution: {integrity: sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw==}
hasBin: true
peerDependencies:
eslint: '>=7.0.0'
dependencies:
eslint: 8.57.0
eslint: 9.2.0
dev: true
/eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@8.57.0)(prettier@3.2.5):
/eslint-plugin-prettier@5.1.3(eslint-config-prettier@9.1.0)(eslint@9.2.0)(prettier@3.2.5):
resolution: {integrity: sha512-C9GCVAs4Eq7ZC/XFQHITLiHJxQngdtraXaM+LoUFoFp/lHNl2Zn8f3WQbe9HvTBBQ9YnKFB0/2Ajdqwo5D1EAw==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
@ -3143,27 +3137,27 @@ packages:
eslint-config-prettier:
optional: true
dependencies:
eslint: 8.57.0
eslint-config-prettier: 9.1.0(eslint@8.57.0)
eslint: 9.2.0
eslint-config-prettier: 9.1.0(eslint@9.2.0)
prettier: 3.2.5
prettier-linter-helpers: 1.0.0
synckit: 0.8.8
dev: true
/eslint-plugin-vue@9.25.0(eslint@8.57.0):
/eslint-plugin-vue@9.25.0(eslint@9.2.0):
resolution: {integrity: sha512-tDWlx14bVe6Bs+Nnh3IGrD+hb11kf2nukfm6jLsmJIhmiRQ1SUaksvwY9U5MvPB0pcrg0QK0xapQkfITs3RKOA==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0 || ^9.0.0
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
eslint: 8.57.0
'@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0)
eslint: 9.2.0
globals: 13.24.0
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.0.16
semver: 7.6.2
vue-eslint-parser: 9.4.2(eslint@8.57.0)
vue-eslint-parser: 9.4.2(eslint@9.2.0)
xml-name-validator: 4.0.0
transitivePeerDependencies:
- supports-color
@ -3177,46 +3171,55 @@ packages:
estraverse: 5.3.0
dev: true
/eslint-scope@8.0.1:
resolution: {integrity: sha512-pL8XjgP4ZOmmwfFE8mEhSxA7ZY4C+LWyqjQ3o4yWkkmD0qcMT9kkW3zWHOczhWcjTSgqycYAgwSlXvZltv65og==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
dependencies:
esrecurse: 4.3.0
estraverse: 5.3.0
dev: true
/eslint-visitor-keys@3.4.3:
resolution: {integrity: sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
/eslint@8.57.0:
resolution: {integrity: sha512-dZ6+mexnaTIbSBZWgou51U6OmzIhYM2VcNdtiTtI7qPNZm35Akpr0f6vtw3w1Kmn5PYo+tZVfh13WrhpS6oLqQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
/eslint-visitor-keys@4.0.0:
resolution: {integrity: sha512-OtIRv/2GyiF6o/d8K7MYKKbXrOUBIK6SfkIRM4Z0dY3w+LiQ0vy3F57m0Z71bjbyeiWFiHJ8brqnmE6H6/jEuw==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
dev: true
/eslint@9.2.0:
resolution: {integrity: sha512-0n/I88vZpCOzO+PQpt0lbsqmn9AsnsJAQseIqhZFI8ibQT0U1AkEKRxA3EVMos0BoHSXDQvCXY25TUjB5tr8Og==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
hasBin: true
dependencies:
'@eslint-community/eslint-utils': 4.4.0(eslint@8.57.0)
'@eslint-community/eslint-utils': 4.4.0(eslint@9.2.0)
'@eslint-community/regexpp': 4.10.0
'@eslint/eslintrc': 2.1.4
'@eslint/js': 8.57.0
'@humanwhocodes/config-array': 0.11.14
'@eslint/eslintrc': 3.0.2
'@eslint/js': 9.2.0
'@humanwhocodes/config-array': 0.13.0
'@humanwhocodes/module-importer': 1.0.1
'@humanwhocodes/retry': 0.2.4
'@nodelib/fs.walk': 1.2.8
'@ungap/structured-clone': 1.2.0
ajv: 6.12.6
chalk: 4.1.2
cross-spawn: 7.0.3
debug: 4.3.4
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1
eslint-scope: 8.0.1
eslint-visitor-keys: 4.0.0
espree: 10.0.1
esquery: 1.5.0
esutils: 2.0.3
fast-deep-equal: 3.1.3
file-entry-cache: 6.0.1
file-entry-cache: 8.0.0
find-up: 5.0.0
glob-parent: 6.0.2
globals: 13.24.0
graphemer: 1.4.0
ignore: 5.3.1
imurmurhash: 0.1.4
is-glob: 4.0.3
is-path-inside: 3.0.3
js-yaml: 4.1.0
json-stable-stringify-without-jsonify: 1.0.1
levn: 0.4.1
lodash.merge: 4.6.2
@ -3229,6 +3232,15 @@ packages:
- supports-color
dev: true
/espree@10.0.1:
resolution: {integrity: sha512-MWkrWZbJsL2UwnjxTX3gG8FneachS/Mwg7tdGXce011sJd5b0JG54vat5KHnfSBODZ3Wvzd2WnjxyzsRoVv+ww==}
engines: {node: ^18.18.0 || ^20.9.0 || >=21.1.0}
dependencies:
acorn: 8.11.3
acorn-jsx: 5.3.2(acorn@8.11.3)
eslint-visitor-keys: 4.0.0
dev: true
/espree@9.6.1:
resolution: {integrity: sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@ -3330,11 +3342,11 @@ packages:
reusify: 1.0.4
dev: true
/file-entry-cache@6.0.1:
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==}
engines: {node: ^10.12.0 || >=12.0.0}
/file-entry-cache@8.0.0:
resolution: {integrity: sha512-XXTUwCvisa5oacNGRP9SfNtYBNAMi+RPwBFmblZEF7N7swHYQS6/Zfk7SRwx4D5j3CH211YNRco1DEMNVfZCnQ==}
engines: {node: '>=16.0.0'}
dependencies:
flat-cache: 3.2.0
flat-cache: 4.0.1
dev: true
/filelist@1.0.4:
@ -3366,13 +3378,12 @@ packages:
path-exists: 4.0.0
dev: true
/flat-cache@3.2.0:
resolution: {integrity: sha512-CYcENa+FtcUKLmhhqyctpclsq7QF38pKjZHsGNiSQF5r4FtoKDWabFDl3hzaEQMvT1LHEysw5twgLvpYYb4vbw==}
engines: {node: ^10.12.0 || >=12.0.0}
/flat-cache@4.0.1:
resolution: {integrity: sha512-f7ccFPK3SXFHpx15UIGyRJ/FJQctuKZ0zVuN3frBo4HnK3cay9VEW0R6yPYFHC0AgqhukPzKjq22t5DmAyqGyw==}
engines: {node: '>=16'}
dependencies:
flatted: 3.3.1
keyv: 4.5.4
rimraf: 3.0.2
dev: true
/flatted@3.3.1:
@ -3501,6 +3512,11 @@ packages:
type-fest: 0.20.2
dev: true
/globals@14.0.0:
resolution: {integrity: sha512-oahGvuMGQlPw/ivIYBjVSrWAfWLBeku5tpPE2fOPLi+WHffIWbuh2tCjhyQhTBPMf5E9jDEH4FOmTYgYwbKwtQ==}
engines: {node: '>=18'}
dev: true
/globalthis@1.0.4:
resolution: {integrity: sha512-DpLKbNU4WylpxJykQujfCcwYWiV/Jhm50Goo0wrVILAv5jOr9d+H+UR3PhSCD2rCCEIg0uc+G+muBTwD54JhDQ==}
engines: {node: '>= 0.4'}
@ -3531,10 +3547,6 @@ packages:
resolution: {integrity: sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==}
dev: true
/graphemer@1.4.0:
resolution: {integrity: sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==}
dev: true
/gzip-size@6.0.0:
resolution: {integrity: sha512-ax7ZYomf6jqPTQ4+XCpUGyXKHk5WweS+e05MBO4/y3WJ5RkmPXNKvX+bx1behVILVwr6JSQvZAku021CHPXG3Q==}
engines: {node: '>=10'}
@ -4504,13 +4516,6 @@ packages:
engines: {iojs: '>=1.0.0', node: '>=0.10.0'}
dev: true
/rimraf@3.0.2:
resolution: {integrity: sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==}
hasBin: true
dependencies:
glob: 7.2.3
dev: true
/rollup@2.79.1:
resolution: {integrity: sha512-uKxbd0IhMZOhjAiD5oAFp7BqvkA4Dv47qpOCtaNvng4HBwdbWtdOh8f5nZNuk2rp51PMGk3bzfWu5oayNEuYnw==}
engines: {node: '>=10.0.0'}
@ -5085,7 +5090,7 @@ packages:
resolution: {integrity: sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==}
dev: true
/vite-plugin-eslint@1.8.1(eslint@8.57.0)(vite@5.2.11):
/vite-plugin-eslint@1.8.1(eslint@9.2.0)(vite@5.2.11):
resolution: {integrity: sha512-PqdMf3Y2fLO9FsNPmMX+//2BF5SF8nEWspZdgl4kSt7UvHDRHVVfHvxsD7ULYzZrJDGRxR81Nq7TOFgwMnUang==}
peerDependencies:
eslint: '>=7'
@ -5093,7 +5098,7 @@ packages:
dependencies:
'@rollup/pluginutils': 4.2.1
'@types/eslint': 8.56.10
eslint: 8.57.0
eslint: 9.2.0
rollup: 2.79.1
vite: 5.2.11(lightningcss@1.24.1)(terser@5.31.0)
dev: true
@ -5157,14 +5162,14 @@ packages:
fsevents: 2.3.3
dev: true
/vue-eslint-parser@9.4.2(eslint@8.57.0):
/vue-eslint-parser@9.4.2(eslint@9.2.0):
resolution: {integrity: sha512-Ry9oiGmCAK91HrKMtCrKFWmSFWvYkpGglCeFAIqDdr9zdXmMMpJOmUJS7WWsW7fX81h6mwHmUZCQQ1E0PkSwYQ==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4
eslint: 8.57.0
eslint: 9.2.0
eslint-scope: 7.2.2
eslint-visitor-keys: 3.4.3
espree: 9.6.1

View File

@ -3,7 +3,7 @@
<!-- eslint-disable-next-line vue/no-v-html -->
<span v-if="showFullText" class="contentText" v-html="fullText()" />
<!-- eslint-disable-next-line vue/no-v-html -->
<span v-else v-html="colapsedText()" />
<span v-else v-html="collapsedText()" />
<span v-if="text.length > visibleLimit && !showFullText">...</span>
<button
v-if="text.length > visibleLimit"
@ -38,7 +38,7 @@ export default {
fullText() {
return purifyHTML(rewriteDescription(this.text));
},
colapsedText() {
collapsedText() {
return purifyHTML(rewriteDescription(this.text.slice(0, this.visibleLimit)));
},
},

View File

@ -33,8 +33,13 @@
<div class="comment-footer my-1 flex items-center gap-3">
<div class="i-fa6-solid:thumbs-up" />
<span v-text="numberFormat(comment.likeCount)" />
<i v-if="comment.hearted" class="i-fa6-solid:heart" />
<img v-if="comment.creatorReplied" :src="uploaderAvatarUrl" class="h-5 w-5 rounded-full" />
<i v-if="comment.hearted" class="i-fa6-solid:heart" :title="$t('actions.creator_liked')" />
<img
v-if="comment.creatorReplied"
:src="uploaderAvatarUrl"
class="h-5 w-5 rounded-full"
:title="$t('actions.creator_replied')"
/>
</div>
<template v-if="comment.repliesPage && (!loadingReplies || !showingReplies)">
<div class="cursor-pointer" @click="loadReplies">

View File

@ -1,7 +1,7 @@
<template>
<div class="flex justify-center">
<h1 v-t="'titles.login'" class="my-4 text-center font-bold" />
<TooltipIcon class="mb-6" icon="i-fa6-solid:circle-info" :tooltip="$t('info.login_note')" />
<i class="i-fa6-solid:circle-info ml-2 mt-6 cursor-pointer" :title="$t('info.login_note')" />
</div>
<hr />
<div class="w-full flex items-center justify-center text-center">
@ -36,12 +36,7 @@
</template>
<script>
import TooltipIcon from "./TooltipIcon.vue";
export default {
components: {
TooltipIcon,
},
data() {
return {
username: null,

View File

@ -6,10 +6,10 @@
<CollapsableText v-if="playlist?.description" :text="playlist.description" />
<div class="mt-1 flex <md:flex-col md:items-center justify-between">
<div class="mt-1 flex justify-between <md:flex-col md:items-center">
<div>
<router-link class="link flex items-center gap-3" :to="playlist.uploaderUrl || '/'">
<img loading="lazy" :src="playlist.uploaderAvatar" class="rounded-full h-12" />
<img loading="lazy" :src="playlist.uploaderAvatar" class="h-12 rounded-full" />
<strong v-text="playlist.uploader" />
</router-link>
</div>

View File

@ -1,7 +1,7 @@
<template>
<div class="flex justify-center">
<h1 v-t="'titles.register'" class="my-4 text-center font-bold" />
<TooltipIcon class="mb-6" icon="i-fa6-solid:circle-info" :tooltip="$t('info.register_note')" />
<i class="i-fa6-solid:circle-info ml-2 mt-6 cursor-pointer" :title="$t('info.register_note')" />
</div>
<hr />
<div class="flex flex-col items-center justify-center text-center">
@ -20,7 +20,7 @@
<div class="flex justify-center">
<input
v-model="password"
class="input w-full"
class="input h-auto w-full"
:type="showPassword ? 'text' : 'password'"
autocomplete="password"
:placeholder="$t('login.password')"
@ -34,7 +34,7 @@
<div class="flex justify-center">
<input
v-model="passwordConfirm"
class="input w-full"
class="input h-auto w-full"
:type="showConfirmPassword ? 'text' : 'password'"
autocomplete="password"
:placeholder="$t('login.password_confirm')"
@ -65,10 +65,9 @@
<script>
import { isEmail } from "../utils/Misc.js";
import ConfirmModal from "./ConfirmModal.vue";
import TooltipIcon from "./TooltipIcon.vue";
export default {
components: { ConfirmModal, TooltipIcon },
components: { ConfirmModal },
data() {
return {
username: null,

View File

@ -1,29 +0,0 @@
<template>
<div id="container" class="m-2 self-center">
<div :class="icon" class="cursor-pointer"></div>
<p id="tooltip" class="absolute mr-[20vw] mt-2 hidden rounded-l bg-gray-800 px-2 py-1 text-gray-200">
{{ tooltip }}
</p>
</div>
</template>
<script>
export default {
props: {
icon: {
type: String, // the class name of a font awesome icon
required: true,
},
tooltip: {
type: String,
required: true,
},
},
};
</script>
<style>
#container:hover #tooltip {
display: block;
}
</style>

View File

@ -546,33 +546,13 @@ export default {
this.fetchSponsors().then(data => (this.sponsors = data));
},
async getComments() {
this.fetchComments().then(data => {
this.rewriteComments(data.comments);
this.comments = data;
});
this.comments = await this.fetchComments();
},
async fetchSubscribedStatus() {
if (!this.channelId) return;
this.subscribed = await this.fetchSubscriptionStatus(this.channelId);
},
rewriteComments(data) {
data.forEach(comment => {
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(comment.commentText, "text/html");
xmlDoc.querySelectorAll("a").forEach(elem => {
if (!elem.innerText.match(/(?:[\d]{1,2}:)?(?:[\d]{1,2}):(?:[\d]{1,2})/))
elem.outerHTML = elem.getAttribute("href");
});
comment.commentText = xmlDoc
.querySelector("body")
.innerHTML.replaceAll(/(?:http(?:s)?:\/\/)?(?:www\.)?youtube\.com(\/[/a-zA-Z0-9_?=&-]*)/gm, "$1")
.replaceAll(
/(?:http(?:s)?:\/\/)?(?:www\.)?youtu\.be\/(?:watch\?v=)?([/a-zA-Z0-9_?=&-]*)/gm,
"/watch?v=$1",
);
});
},
subscribeHandler() {
this.toggleSubscriptionState(this.channelId, this.subscribed).then(success => {
if (success) this.subscribed = !this.subscribed;
@ -616,7 +596,6 @@ export default {
}).then(json => {
this.comments.nextpage = json.nextpage;
this.loading = false;
this.rewriteComments(json.comments);
this.comments.comments = this.comments.comments.concat(json.comments);
});
}

View File

@ -156,7 +156,9 @@
"concurrent_prefetch_limit": "Concurrent Stream Prefetch Limit",
"customize": "Customize",
"invalid_url": "Invalid URL!",
"add": "Add"
"add": "Add",
"creator_replied": "Creator replied",
"creator_liked": "Creator liked"
},
"comment": {
"pinned_by": "Pinned by {author}",
@ -227,4 +229,4 @@
"register_note": "Register an account for this Piped instance. This will allow you to sync your subscriptions and playlists with your account, so they're stored on the server side. You can use all features without an account, but all data will be stored in your browser's local cache. Please make sure you do NOT use an email address as your username and choose a secure password that you do not use elsewhere.",
"login_note": "Log in with an account created on this instance."
}
}
}

View File

@ -98,7 +98,7 @@
"with_playlist": "Jaga koos esitusloendiga",
"playlist_bookmarked": "Lisatud järjehoidjaks",
"dismiss": "Katkesta",
"create_group": "Loo rühm",
"create_group": "Loo grupp",
"okay": "Sobib",
"show_search_suggestions": "Näita otsingusoovitusi",
"instance_auth_selection": "Vaheserver autentimiseks",
@ -120,7 +120,7 @@
"share": "Jaga",
"source_code": "Lähtekood",
"no_valid_playlists": "Selles failis ei leidu korrektseid esitusloendeid!",
"group_name": "Rühma nimi",
"group_name": "Grupi nimi",
"minimize_comments": "Minimeeri kommentaarid",
"auto_display_captions": "Kuva tiitrid automaatselt",
"delete_account": "Kustuta konto",
@ -151,11 +151,12 @@
"reply_count": "{count} vastust",
"bookmark_playlist": "Järjehoidja",
"download_frame": "Laadi alla kaader",
"add_to_group": "Lisa rühma",
"add_to_group": "Lisa gruppi",
"instance_privacy_policy": "Privaatsuspoliitika",
"customize": "Kohanda",
"invalid_url": "Vigane URL!",
"add": "Lisa"
"add": "Lisa",
"delete_group_confirm": "Kas kustutame selle grupi?"
},
"preferences": {
"has_cdn": "CDN'i olek?",

View File

@ -151,7 +151,8 @@
"download_frame": "Keret letöltése",
"customize": "Testreszab",
"invalid_url": "Érvénytelen URL!",
"add": "Hozzáadás"
"add": "Hozzáadás",
"delete_group_confirm": "Törli ezt a csoportot?"
},
"video": {
"ratings_disabled": "Értékelések Letiltva",

View File

@ -155,7 +155,8 @@
"concurrent_prefetch_limit": "同時に先読みするストリーム数上限",
"add": "追加",
"invalid_url": "無効なURLです",
"customize": "追加"
"customize": "追加",
"delete_group_confirm": "このグループを削除しますか?"
},
"comment": {
"pinned_by": "{author} によって固定",

View File

@ -127,7 +127,12 @@
"clone_playlist": "Klonēt Atskaņošanas Saturu",
"uses_api_from": "Izmanto API no ",
"add_to_playlist": "Pievienot Atskaņošanas Sarakstam",
"instances_not_shown": "Publiskās instances, kas šeit nav redzamas, pašlaik nav pieejamas."
"instances_not_shown": "Publiskās instances, kas šeit nav redzamas, pašlaik nav pieejamas.",
"delete_group_confirm": "Vai vēlaties dzēst šo grupu?",
"concurrent_prefetch_limit": "Vienlaicīgu Straumju Ielādes Limits",
"customize": "Pielāgot",
"invalid_url": "Nederīgs URL!",
"add": "Pievienot"
},
"search": {
"all": "YouTube: Visi",
@ -161,7 +166,9 @@
"playlists": "Atskaņošanas saraksts",
"register": "Reģistrēties",
"player": "Atskaņotājs",
"dearrow": "DeArrow"
"dearrow": "DeArrow",
"albums": "Albumi",
"custom_instances": "Pielāgotas instances"
},
"video": {
"all": "Visi",
@ -207,7 +214,9 @@
"has_cdn": "Vai ir satura piegādes tīkls?",
"instance_name": "Instances Nosaukums",
"registered_users": "Reģistrētie Lietotāji",
"instance_locations": "Instances Atrašanās Vietas"
"instance_locations": "Instances Atrašanās Vietas",
"uptime_30d": "Darbspējas laiks (30d)",
"api_url": "Api URL"
},
"login": {
"username": "Lietotājvārds",