Merge branch 'develop' into iceshrimp_mastodon
This commit is contained in:
commit
a451cf664c
48 changed files with 205 additions and 252 deletions
1
Procfile
1
Procfile
|
@ -1 +0,0 @@
|
||||||
web: NODE_ENV=production npm start
|
|
98
cliff.toml
98
cliff.toml
|
@ -1,98 +0,0 @@
|
||||||
# configuration file for git-cliff (0.1.0)
|
|
||||||
|
|
||||||
[changelog]
|
|
||||||
# changelog header
|
|
||||||
header = """
|
|
||||||
# Changelog\n
|
|
||||||
"""
|
|
||||||
# template for the changelog body
|
|
||||||
# https://tera.netlify.app/docs/#introduction
|
|
||||||
body = """
|
|
||||||
{% if version %}\
|
|
||||||
## [{{ version | trim_start_matches(pat="v") }}] - {{ timestamp | date(format="%Y-%m-%d") }}
|
|
||||||
{% else %}\
|
|
||||||
## [unreleased]
|
|
||||||
{% endif %}\
|
|
||||||
{% for group, commits in commits | group_by(attribute="group") %}
|
|
||||||
### {{ group | upper_first }}
|
|
||||||
{% for commit in commits %}
|
|
||||||
- {% if commit.breaking %}[**breaking**] {% endif %}{{ commit.message | upper_first }}\
|
|
||||||
{% endfor %}
|
|
||||||
{% endfor %}\n
|
|
||||||
"""
|
|
||||||
# remove the leading and trailing whitespace from the template
|
|
||||||
trim = true
|
|
||||||
# changelog footer
|
|
||||||
footer = """
|
|
||||||
<!-- generated by git-cliff -->
|
|
||||||
"""
|
|
||||||
|
|
||||||
[git]
|
|
||||||
# parse the commits based on https://www.conventionalcommits.org
|
|
||||||
conventional_commits = false
|
|
||||||
# filter out the commits that are not conventional
|
|
||||||
filter_unconventional = true
|
|
||||||
# process each line of a commit as an individual commit
|
|
||||||
split_commits = false
|
|
||||||
# regex for parsing and grouping commits
|
|
||||||
commit_parsers = [
|
|
||||||
{ message = "^feat", group = "Features"},
|
|
||||||
{ message = "^add", group = "Features"},
|
|
||||||
{ message = "^fix", group = "Bug Fixes"},
|
|
||||||
{ message = "^prevent", group = "Bug Fixes"},
|
|
||||||
{ message = "^doc", group = "Documentation"},
|
|
||||||
{ message = "^perf", group = "Performance"},
|
|
||||||
{ message = "^🎨", group = "Refactor"},
|
|
||||||
{ message = "^enhance", group = "Refactor"},
|
|
||||||
{ message = "^⚡️", group = "Refactor"},
|
|
||||||
{ message = "^🔥", group = "Features"},
|
|
||||||
{ message = "^🐛", group = "Bug Fixes"},
|
|
||||||
{ message = "^🚑️", group = "Bug Fixes"},
|
|
||||||
{ message = "^block", group = "Bug Fixes"},
|
|
||||||
{ message = "^✨", group = "Features"},
|
|
||||||
{ message = "^📝", group = "Documentation"},
|
|
||||||
{ message = "^🚀", group = "Features"},
|
|
||||||
{ message = "^💄", group = "Styling"},
|
|
||||||
{ message = "^✅", group = "Testing"},
|
|
||||||
{ message = "^🔒️", group = "Security"},
|
|
||||||
{ message = "^🚨", group = "Testing"},
|
|
||||||
{ message = "^💚", group = "CI"},
|
|
||||||
{ message = "^👷", group = "CI"},
|
|
||||||
{ message = "^⬇️", group = "Miscellaneous Tasks"},
|
|
||||||
{ message = "^⬆️", group = "Miscellaneous Tasks"},
|
|
||||||
{ message = "^📌", group = "Miscellaneous Tasks"},
|
|
||||||
{ message = "^➕", group = "Miscellaneous Tasks"},
|
|
||||||
{ message = "^➖", group = "Miscellaneous Tasks"},
|
|
||||||
{ message = "^♻️", group = "Refactor"},
|
|
||||||
{ message = "^🔧", group = "CI"},
|
|
||||||
{ message = "^🔨", group = "CI"},
|
|
||||||
{ message = "^🌐", group = "Localization"},
|
|
||||||
{ message = "^✏️", group = "Localization"},
|
|
||||||
{ message = "^👽️", group = "Bug Fixes"},
|
|
||||||
{ message = "^🍱", group = "Styling"},
|
|
||||||
{ message = "^♿️", group = "Styling"},
|
|
||||||
{ message = "^🩹", group = "Bug Fixes"},
|
|
||||||
{ message = "^refactor", group = "Refactor"},
|
|
||||||
{ message = "^style", group = "Styling"},
|
|
||||||
{ message = "^test", group = "Testing"},
|
|
||||||
{ message = "^chore\\(release\\): prepare for", skip = true},
|
|
||||||
{ message = "^chore", group = "Miscellaneous Tasks"},
|
|
||||||
{ message = "^update", group = "Miscellaneous Tasks"},
|
|
||||||
{ body = ".*security", group = "Security"},
|
|
||||||
]
|
|
||||||
# protect breaking changes from being skipped due to matching a skipping commit_parser
|
|
||||||
protect_breaking_commits = false
|
|
||||||
# filter out the commits that are not matched by commit parsers
|
|
||||||
filter_commits = false
|
|
||||||
# glob pattern for matching git tags
|
|
||||||
tag_pattern = "v[0-9]*"
|
|
||||||
# regex for skipping tags
|
|
||||||
skip_tags = "v0.1.0-beta.1"
|
|
||||||
# regex for ignoring tags
|
|
||||||
ignore_tags = ""
|
|
||||||
# sort the tags chronologically
|
|
||||||
date_order = false
|
|
||||||
# sort the commits inside sections by oldest/newest order
|
|
||||||
sort_commits = "oldest"
|
|
||||||
# limit the number of commits included in the changelog.
|
|
||||||
# limit_commits = 42
|
|
|
@ -9,6 +9,9 @@ Critical security updates are indicated by the :warning: icon.
|
||||||
|
|
||||||
- Ported Mastodon API support from Iceshrimp, with added Firefish extensions including push notifications, post languages, schedule post support, and more.
|
- Ported Mastodon API support from Iceshrimp, with added Firefish extensions including push notifications, post languages, schedule post support, and more.
|
||||||
- The old Mastodon API has been replaced with a new implementation based on Iceshrimp’s.
|
- The old Mastodon API has been replaced with a new implementation based on Iceshrimp’s.
|
||||||
|
- Add ability to automatically append #Alt4Me hashtag when posting a file without an alt text ([What is #Alt4Me?](https://social.growyourown.services/@FediTips/112055775451305236))
|
||||||
|
- Fix a build issue on some aarch64 environments
|
||||||
|
- Fix bugs
|
||||||
|
|
||||||
**Breaking changes:**
|
**Breaking changes:**
|
||||||
|
|
||||||
|
|
|
@ -20,20 +20,23 @@ Firefish depends on the following software.
|
||||||
## Build dependencies
|
## Build dependencies
|
||||||
|
|
||||||
- At least [Rust](https://www.rust-lang.org/) v1.74
|
- At least [Rust](https://www.rust-lang.org/) v1.74
|
||||||
- C/C++ compiler & build tools
|
- C/C++ compiler & build tools (like [GNU Make](https://www.gnu.org/software/make/))
|
||||||
- `build-essential` on Debian/Ubuntu Linux
|
- `build-essential` on Debian/Ubuntu Linux
|
||||||
- `base-devel` on Arch Linux
|
- `base-devel` on Arch Linux
|
||||||
|
- `"Development Tools"` on Fedora/Red Hat Linux
|
||||||
- [Python 3](https://www.python.org/)
|
- [Python 3](https://www.python.org/)
|
||||||
- [Perl](https://www.perl.org/)
|
- [Perl](https://www.perl.org/)
|
||||||
|
|
||||||
This document shows an example procedure for installing these dependencies and Firefish on Debian 12. Note that there is much room for customizing the server setup; this document merely demonstrates a simple installation.
|
This document shows an example procedure for installing these dependencies and Firefish on Debian 12. Note that there is much room for customizing the server setup; this document merely demonstrates a simple installation.
|
||||||
|
|
||||||
|
### Use Docker/Podman containers
|
||||||
|
|
||||||
If you want to use the pre-built container image, please refer to [`install-container.md`](./install-container.md).
|
If you want to use the pre-built container image, please refer to [`install-container.md`](./install-container.md).
|
||||||
|
|
||||||
Make sure that you can use the `sudo` command before proceeding.
|
|
||||||
|
|
||||||
## 1. Install dependencies
|
## 1. Install dependencies
|
||||||
|
|
||||||
|
Make sure that you can use the `sudo` command before proceeding.
|
||||||
|
|
||||||
### Utilities
|
### Utilities
|
||||||
|
|
||||||
```sh
|
```sh
|
||||||
|
@ -213,7 +216,7 @@ sudo ufw status
|
||||||
|
|
||||||
### 2. Set up a reverse proxy
|
### 2. Set up a reverse proxy
|
||||||
|
|
||||||
In this instruction, we use [Caddy](https://caddyserver.com/) to make the Firefish server accesible from internet. However, you can also use [Nginx](https://nginx.org/en/) if you want ([example Nginx config file](../firefish.nginx.conf)).
|
In this instruction, we use [Caddy](https://caddyserver.com/) to make the Firefish server accesible from internet. However, you can also use [Nginx](https://nginx.org/en/) if you want ([example Nginx config file](./firefish.nginx.conf)).
|
||||||
|
|
||||||
1. Install Caddy
|
1. Install Caddy
|
||||||
```sh
|
```sh
|
||||||
|
|
|
@ -446,7 +446,7 @@ tooShort: "قصير جدًا"
|
||||||
tooLong: "طويل جدًا"
|
tooLong: "طويل جدًا"
|
||||||
weakPassword: "الكلمة السرية ضعيفة"
|
weakPassword: "الكلمة السرية ضعيفة"
|
||||||
normalPassword: "الكلمة السرية جيدة"
|
normalPassword: "الكلمة السرية جيدة"
|
||||||
strongPassword: "الكلمة السرية قوية"
|
veryStrongPassword: "الكلمة السرية قوية"
|
||||||
passwordMatched: "التطابق صحيح!"
|
passwordMatched: "التطابق صحيح!"
|
||||||
passwordNotMatched: "غير متطابقتان"
|
passwordNotMatched: "غير متطابقتان"
|
||||||
signinWith: "الولوج عبر {x}"
|
signinWith: "الولوج عبر {x}"
|
||||||
|
|
|
@ -586,7 +586,7 @@ unavailable: Не е свободно
|
||||||
tooShort: Твърде кратко
|
tooShort: Твърде кратко
|
||||||
tooLong: Твърде дълго
|
tooLong: Твърде дълго
|
||||||
weakPassword: Слаба парола
|
weakPassword: Слаба парола
|
||||||
strongPassword: Силна парола
|
veryStrongPassword: Силна парола
|
||||||
passwordMatched: Съвпада
|
passwordMatched: Съвпада
|
||||||
passwordNotMatched: Не съвпада
|
passwordNotMatched: Не съвпада
|
||||||
signinWith: Вход с {x}
|
signinWith: Вход с {x}
|
||||||
|
|
|
@ -462,7 +462,7 @@ tooShort: "খুব ছোট"
|
||||||
tooLong: "খুব বড়"
|
tooLong: "খুব বড়"
|
||||||
weakPassword: "দুর্বল পাসওয়ার্ড"
|
weakPassword: "দুর্বল পাসওয়ার্ড"
|
||||||
normalPassword: "সাধারণ পাসওয়ার্ড"
|
normalPassword: "সাধারণ পাসওয়ার্ড"
|
||||||
strongPassword: "শক্তিশালী পাসওয়ার্ড"
|
veryStrongPassword: "শক্তিশালী পাসওয়ার্ড"
|
||||||
passwordMatched: "মিলেছে"
|
passwordMatched: "মিলেছে"
|
||||||
passwordNotMatched: "মিলেনি"
|
passwordNotMatched: "মিলেনি"
|
||||||
signinWith: "{x} এর সাহায্যে সাইন ইন করুন"
|
signinWith: "{x} এর সাহায্যে সাইন ইন করুন"
|
||||||
|
|
|
@ -1091,7 +1091,7 @@ usernameInvalidFormat: Pots fer servir lletres en majúscules o minúscules, nom
|
||||||
tooShort: Massa curt
|
tooShort: Massa curt
|
||||||
tooLong: Massa llarg
|
tooLong: Massa llarg
|
||||||
weakPassword: Contrasenya amb seguretat feble
|
weakPassword: Contrasenya amb seguretat feble
|
||||||
strongPassword: Contrasenya amb seguretat forta
|
veryStrongPassword: Contrasenya amb seguretat forta
|
||||||
passwordMatched: Coincidències
|
passwordMatched: Coincidències
|
||||||
signinWith: Inicia sessió com {x}
|
signinWith: Inicia sessió com {x}
|
||||||
signinFailed: No es pot iniciar sessió. El nom d'usuari o la contrasenya són incorrectes.
|
signinFailed: No es pot iniciar sessió. El nom d'usuari o la contrasenya són incorrectes.
|
||||||
|
|
|
@ -401,7 +401,7 @@ tooShort: "Příliš krátké"
|
||||||
tooLong: "Příliš dlouhé"
|
tooLong: "Příliš dlouhé"
|
||||||
weakPassword: "Slabé heslo"
|
weakPassword: "Slabé heslo"
|
||||||
normalPassword: "Dobré heslo"
|
normalPassword: "Dobré heslo"
|
||||||
strongPassword: "Silné heslo"
|
veryStrongPassword: "Silné heslo"
|
||||||
passwordMatched: "Hesla se schodují"
|
passwordMatched: "Hesla se schodují"
|
||||||
passwordNotMatched: "Hesla se neschodují"
|
passwordNotMatched: "Hesla se neschodují"
|
||||||
signinWith: "Přihlásit se s {x}"
|
signinWith: "Přihlásit se s {x}"
|
||||||
|
|
|
@ -480,7 +480,7 @@ tooShort: "Zu kurz"
|
||||||
tooLong: "Zu lang"
|
tooLong: "Zu lang"
|
||||||
weakPassword: "Schwaches Passwort"
|
weakPassword: "Schwaches Passwort"
|
||||||
normalPassword: "Durchschnittliches Passwort"
|
normalPassword: "Durchschnittliches Passwort"
|
||||||
strongPassword: "Starkes Passwort"
|
veryStrongPassword: "Starkes Passwort"
|
||||||
passwordMatched: "Stimmt überein"
|
passwordMatched: "Stimmt überein"
|
||||||
passwordNotMatched: "Stimmt nicht überein"
|
passwordNotMatched: "Stimmt nicht überein"
|
||||||
signinWith: "Mit {x} anmelden"
|
signinWith: "Mit {x} anmelden"
|
||||||
|
|
|
@ -677,7 +677,7 @@ checking: Έλεγχος...
|
||||||
invitationCode: Κωδικός πρόσκλησης
|
invitationCode: Κωδικός πρόσκλησης
|
||||||
normalPassword: Μέτριος κωδικός
|
normalPassword: Μέτριος κωδικός
|
||||||
weakPassword: Αδύναμος κωδικός
|
weakPassword: Αδύναμος κωδικός
|
||||||
strongPassword: Δυνατός κωδικός
|
veryStrongPassword: Δυνατός κωδικός
|
||||||
signinWith: Συνδεθείτε με {x}
|
signinWith: Συνδεθείτε με {x}
|
||||||
tapSecurityKey: Βάλτε το κλειδί ασφάλειας
|
tapSecurityKey: Βάλτε το κλειδί ασφάλειας
|
||||||
signinFailed: Αδυναμία σύνδεσης. Το όνομα μέλους ή ο κωδικός είναι λάθος.
|
signinFailed: Αδυναμία σύνδεσης. Το όνομα μέλους ή ο κωδικός είναι λάθος.
|
||||||
|
|
|
@ -515,8 +515,9 @@ usernameInvalidFormat: "You can use upper- and lowercase letters, numbers, and u
|
||||||
tooShort: "Too short"
|
tooShort: "Too short"
|
||||||
tooLong: "Too long"
|
tooLong: "Too long"
|
||||||
weakPassword: "Weak password"
|
weakPassword: "Weak password"
|
||||||
normalPassword: "Average password"
|
normalPassword: "Medium password"
|
||||||
strongPassword: "Strong password"
|
strongPassword: "Good password"
|
||||||
|
veryStrongPassword: "Great password"
|
||||||
passwordMatched: "Matches"
|
passwordMatched: "Matches"
|
||||||
passwordNotMatched: "Does not match"
|
passwordNotMatched: "Does not match"
|
||||||
signinWith: "Sign in with {x}"
|
signinWith: "Sign in with {x}"
|
||||||
|
@ -1239,6 +1240,7 @@ noAltTextWarning: "Some attached file(s) have no description. Did you forget to
|
||||||
showNoAltTextWarning: "Show a warning if you attempt to post files without a description"
|
showNoAltTextWarning: "Show a warning if you attempt to post files without a description"
|
||||||
showAddFileDescriptionAtFirstPost: "Automatically open a form to write a description
|
showAddFileDescriptionAtFirstPost: "Automatically open a form to write a description
|
||||||
when you attempt to post files without a description"
|
when you attempt to post files without a description"
|
||||||
|
addAlt4MeTag: "Automatically append #Alt4Me hashtag to your post if attached file has no description"
|
||||||
|
|
||||||
_emojiModPerm:
|
_emojiModPerm:
|
||||||
unauthorized: "None"
|
unauthorized: "None"
|
||||||
|
|
|
@ -465,7 +465,7 @@ tooShort: "Demasiado corto"
|
||||||
tooLong: "Demasiado largo"
|
tooLong: "Demasiado largo"
|
||||||
weakPassword: "Contraseña débil"
|
weakPassword: "Contraseña débil"
|
||||||
normalPassword: "Buena contraseña"
|
normalPassword: "Buena contraseña"
|
||||||
strongPassword: "Muy buena contraseña"
|
veryStrongPassword: "Muy buena contraseña"
|
||||||
passwordMatched: "Correcto"
|
passwordMatched: "Correcto"
|
||||||
passwordNotMatched: "Las contraseñas no son las mismas"
|
passwordNotMatched: "Las contraseñas no son las mismas"
|
||||||
signinWith: "Inicie sesión con {x}"
|
signinWith: "Inicie sesión con {x}"
|
||||||
|
|
|
@ -569,7 +569,7 @@ tooShort: Liian lyhyt
|
||||||
tooLong: Liian pitkä
|
tooLong: Liian pitkä
|
||||||
weakPassword: Heikko salasana
|
weakPassword: Heikko salasana
|
||||||
normalPassword: Kohtalainen salasana
|
normalPassword: Kohtalainen salasana
|
||||||
strongPassword: Vahva salasana
|
veryStrongPassword: Vahva salasana
|
||||||
passwordMatched: Vastaa
|
passwordMatched: Vastaa
|
||||||
signinWith: Kirjaudu sisään {x}
|
signinWith: Kirjaudu sisään {x}
|
||||||
signinFailed: Ei voitu kirjautua sisään. Annettu käyttäjänimi tai salasana virheellinen.
|
signinFailed: Ei voitu kirjautua sisään. Annettu käyttäjänimi tai salasana virheellinen.
|
||||||
|
|
|
@ -468,7 +468,7 @@ tooShort: "Trop court"
|
||||||
tooLong: "Trop long"
|
tooLong: "Trop long"
|
||||||
weakPassword: "Mot de passe faible"
|
weakPassword: "Mot de passe faible"
|
||||||
normalPassword: "Mot de passe acceptable"
|
normalPassword: "Mot de passe acceptable"
|
||||||
strongPassword: "Mot de passe fort"
|
veryStrongPassword: "Mot de passe fort"
|
||||||
passwordMatched: "Les mots de passe correspondent"
|
passwordMatched: "Les mots de passe correspondent"
|
||||||
passwordNotMatched: "Les mots de passe ne correspondent pas"
|
passwordNotMatched: "Les mots de passe ne correspondent pas"
|
||||||
signinWith: "Se connecter avec {x}"
|
signinWith: "Se connecter avec {x}"
|
||||||
|
|
|
@ -464,7 +464,7 @@ tooShort: "Terlalu pendek"
|
||||||
tooLong: "Terlalu panjang"
|
tooLong: "Terlalu panjang"
|
||||||
weakPassword: "Kata sandi lemah"
|
weakPassword: "Kata sandi lemah"
|
||||||
normalPassword: "Kata sandi baik"
|
normalPassword: "Kata sandi baik"
|
||||||
strongPassword: "Kata sandi kuat"
|
veryStrongPassword: "Kata sandi kuat"
|
||||||
passwordMatched: "Kata sandi sama"
|
passwordMatched: "Kata sandi sama"
|
||||||
passwordNotMatched: "Kata sandi tidak sama"
|
passwordNotMatched: "Kata sandi tidak sama"
|
||||||
signinWith: "Masuk dengan {x}"
|
signinWith: "Masuk dengan {x}"
|
||||||
|
|
|
@ -454,7 +454,7 @@ tooShort: "Troppo breve"
|
||||||
tooLong: "Troppo lungo"
|
tooLong: "Troppo lungo"
|
||||||
weakPassword: "Password debole"
|
weakPassword: "Password debole"
|
||||||
normalPassword: "Password buona"
|
normalPassword: "Password buona"
|
||||||
strongPassword: "Password forte"
|
veryStrongPassword: "Password forte"
|
||||||
passwordMatched: "Corretta"
|
passwordMatched: "Corretta"
|
||||||
passwordNotMatched: "Le password non corrispondono"
|
passwordNotMatched: "Le password non corrispondono"
|
||||||
signinWith: "Accedi con {x}"
|
signinWith: "Accedi con {x}"
|
||||||
|
|
|
@ -466,7 +466,7 @@ tooShort: "短すぎます"
|
||||||
tooLong: "長すぎます"
|
tooLong: "長すぎます"
|
||||||
weakPassword: "弱いパスワード"
|
weakPassword: "弱いパスワード"
|
||||||
normalPassword: "普通のパスワード"
|
normalPassword: "普通のパスワード"
|
||||||
strongPassword: "強いパスワード"
|
veryStrongPassword: "強いパスワード"
|
||||||
passwordMatched: "一致しました"
|
passwordMatched: "一致しました"
|
||||||
passwordNotMatched: "一致していません"
|
passwordNotMatched: "一致していません"
|
||||||
signinWith: "{x}でログイン"
|
signinWith: "{x}でログイン"
|
||||||
|
|
|
@ -435,7 +435,7 @@ tooShort: "短すぎやろ!"
|
||||||
tooLong: "長すぎやろ!"
|
tooLong: "長すぎやろ!"
|
||||||
weakPassword: "へぼいパスワード"
|
weakPassword: "へぼいパスワード"
|
||||||
normalPassword: "普通のパスワード"
|
normalPassword: "普通のパスワード"
|
||||||
strongPassword: "ええ感じのパスワード"
|
veryStrongPassword: "ええ感じのパスワード"
|
||||||
passwordMatched: "よし!一致や!"
|
passwordMatched: "よし!一致や!"
|
||||||
passwordNotMatched: "一致しとらんで?"
|
passwordNotMatched: "一致しとらんで?"
|
||||||
signinWith: "{x}でログイン"
|
signinWith: "{x}でログイン"
|
||||||
|
|
|
@ -442,7 +442,7 @@ tooShort: "너무 짧습니다"
|
||||||
tooLong: "너무 깁니다"
|
tooLong: "너무 깁니다"
|
||||||
weakPassword: "약한 비밀번호"
|
weakPassword: "약한 비밀번호"
|
||||||
normalPassword: "좋은 비밀번호"
|
normalPassword: "좋은 비밀번호"
|
||||||
strongPassword: "강한 비밀번호"
|
veryStrongPassword: "강한 비밀번호"
|
||||||
passwordMatched: "일치합니다"
|
passwordMatched: "일치합니다"
|
||||||
passwordNotMatched: "일치하지 않습니다"
|
passwordNotMatched: "일치하지 않습니다"
|
||||||
signinWith: "{x}로 로그인"
|
signinWith: "{x}로 로그인"
|
||||||
|
|
|
@ -576,7 +576,7 @@ quoteAttached: Quote
|
||||||
noMessagesYet: Nog geen berichten
|
noMessagesYet: Nog geen berichten
|
||||||
weakPassword: Zwak wachtwoord
|
weakPassword: Zwak wachtwoord
|
||||||
normalPassword: Middelmatig wachtwoord
|
normalPassword: Middelmatig wachtwoord
|
||||||
strongPassword: Sterk wachtwoord
|
veryStrongPassword: Sterk wachtwoord
|
||||||
onlyOneFileCanBeAttached: Je kan maar één bestand toevoegen aan je bericht
|
onlyOneFileCanBeAttached: Je kan maar één bestand toevoegen aan je bericht
|
||||||
invitationCode: Uitnodigingscode
|
invitationCode: Uitnodigingscode
|
||||||
checking: Controleren...
|
checking: Controleren...
|
||||||
|
|
|
@ -571,7 +571,7 @@ youHaveNoGroups: Du har ingen grupper
|
||||||
noHistory: Ingen historikk er tilgjengelig
|
noHistory: Ingen historikk er tilgjengelig
|
||||||
aboutX: Om {x}
|
aboutX: Om {x}
|
||||||
signinHistory: Innloggings-historikk
|
signinHistory: Innloggings-historikk
|
||||||
strongPassword: Sterkt passord
|
veryStrongPassword: Sterkt passord
|
||||||
noFollowRequests: Du har ingen utestående følgeforespørsler
|
noFollowRequests: Du har ingen utestående følgeforespørsler
|
||||||
openImageInNewTab: Åpne bilder i ny fane
|
openImageInNewTab: Åpne bilder i ny fane
|
||||||
dashboard: Dashbord
|
dashboard: Dashbord
|
||||||
|
|
|
@ -454,7 +454,7 @@ tooShort: "Zbyt krótka"
|
||||||
tooLong: "Zbyt długa"
|
tooLong: "Zbyt długa"
|
||||||
weakPassword: "Słabe hasło"
|
weakPassword: "Słabe hasło"
|
||||||
normalPassword: "Dobre hasło"
|
normalPassword: "Dobre hasło"
|
||||||
strongPassword: "Silne hasło"
|
veryStrongPassword: "Silne hasło"
|
||||||
passwordMatched: "Pasuje"
|
passwordMatched: "Pasuje"
|
||||||
passwordNotMatched: "Hasła nie pasują do siebie"
|
passwordNotMatched: "Hasła nie pasują do siebie"
|
||||||
signinWith: "Zaloguj się z {x}"
|
signinWith: "Zaloguj się z {x}"
|
||||||
|
|
|
@ -464,7 +464,7 @@ tooShort: "Prea scurt"
|
||||||
tooLong: "Prea lung"
|
tooLong: "Prea lung"
|
||||||
weakPassword: "Parolă slabă"
|
weakPassword: "Parolă slabă"
|
||||||
normalPassword: "Parolă medie"
|
normalPassword: "Parolă medie"
|
||||||
strongPassword: "Parolă puternică"
|
veryStrongPassword: "Parolă puternică"
|
||||||
passwordMatched: "Se potrivește!"
|
passwordMatched: "Se potrivește!"
|
||||||
passwordNotMatched: "Nu se potrivește"
|
passwordNotMatched: "Nu se potrivește"
|
||||||
signinWith: "Autentifică-te cu {x}"
|
signinWith: "Autentifică-te cu {x}"
|
||||||
|
|
|
@ -460,7 +460,7 @@ tooShort: "Слишком короткий"
|
||||||
tooLong: "Слишком длинный"
|
tooLong: "Слишком длинный"
|
||||||
weakPassword: "Слабый пароль"
|
weakPassword: "Слабый пароль"
|
||||||
normalPassword: "Годный пароль"
|
normalPassword: "Годный пароль"
|
||||||
strongPassword: "Надёжный пароль"
|
veryStrongPassword: "Надёжный пароль"
|
||||||
passwordMatched: "Совпали"
|
passwordMatched: "Совпали"
|
||||||
passwordNotMatched: "Не совпадают"
|
passwordNotMatched: "Не совпадают"
|
||||||
signinWith: "Использовать {x} для входа"
|
signinWith: "Использовать {x} для входа"
|
||||||
|
|
|
@ -461,7 +461,7 @@ tooShort: "Príliš krátke"
|
||||||
tooLong: "Príliš dlhé"
|
tooLong: "Príliš dlhé"
|
||||||
weakPassword: "Slabé heslo"
|
weakPassword: "Slabé heslo"
|
||||||
normalPassword: "Dobré heslo"
|
normalPassword: "Dobré heslo"
|
||||||
strongPassword: "Silné heslo"
|
veryStrongPassword: "Silné heslo"
|
||||||
passwordMatched: "Heslá sú rovnaké"
|
passwordMatched: "Heslá sú rovnaké"
|
||||||
passwordNotMatched: "Heslá nie sú rovnaké"
|
passwordNotMatched: "Heslá nie sú rovnaké"
|
||||||
signinWith: "Prihlásiť sa použitím {x}"
|
signinWith: "Prihlásiť sa použitím {x}"
|
||||||
|
|
|
@ -381,7 +381,7 @@ noMessagesYet: Inga meddelande ännu
|
||||||
newMessageExists: Det finns inga nya meddelanden
|
newMessageExists: Det finns inga nya meddelanden
|
||||||
weakPassword: Svagt lösenord
|
weakPassword: Svagt lösenord
|
||||||
normalPassword: Dugligt lösenord
|
normalPassword: Dugligt lösenord
|
||||||
strongPassword: Starkt lösenord
|
veryStrongPassword: Starkt lösenord
|
||||||
passwordMatched: Matchar
|
passwordMatched: Matchar
|
||||||
passwordNotMatched: Matchar inte
|
passwordNotMatched: Matchar inte
|
||||||
signinWith: Logga in med {x}
|
signinWith: Logga in med {x}
|
||||||
|
|
|
@ -452,7 +452,7 @@ tooShort: "สั้นเกินไปนะ"
|
||||||
tooLong: "ยาวเกินไปนะ"
|
tooLong: "ยาวเกินไปนะ"
|
||||||
weakPassword: "รหัสผ่าน แย่มาก"
|
weakPassword: "รหัสผ่าน แย่มาก"
|
||||||
normalPassword: "รหัสผ่านปกติ"
|
normalPassword: "รหัสผ่านปกติ"
|
||||||
strongPassword: "รหัสผ่านรัดกุมมาก"
|
veryStrongPassword: "รหัสผ่านรัดกุมมาก"
|
||||||
passwordMatched: "ถูกต้อง!"
|
passwordMatched: "ถูกต้อง!"
|
||||||
passwordNotMatched: "ไม่ถูกต้อง"
|
passwordNotMatched: "ไม่ถูกต้อง"
|
||||||
signinWith: "ลงชื่อเข้าใช้ด้วย {x}"
|
signinWith: "ลงชื่อเข้าใช้ด้วย {x}"
|
||||||
|
|
|
@ -521,7 +521,7 @@ newMessageExists: Yeni mesaj yok
|
||||||
invitations: Davetler
|
invitations: Davetler
|
||||||
invitationCode: Davet kodu
|
invitationCode: Davet kodu
|
||||||
signinWith: '{x} ile giriş yap'
|
signinWith: '{x} ile giriş yap'
|
||||||
strongPassword: Güçlü şifre
|
veryStrongPassword: Güçlü şifre
|
||||||
passwordNotMatched: Uyuşmuyor
|
passwordNotMatched: Uyuşmuyor
|
||||||
signinFailed: Giriş yapılamadı. Şifre ve ya kullanıcı adı yanlış.
|
signinFailed: Giriş yapılamadı. Şifre ve ya kullanıcı adı yanlış.
|
||||||
tapSecurityKey: Güvenlik anahtarınıza dokunun
|
tapSecurityKey: Güvenlik anahtarınıza dokunun
|
||||||
|
|
|
@ -460,7 +460,7 @@ tooShort: "Занадто короткий"
|
||||||
tooLong: "Занадто довгий"
|
tooLong: "Занадто довгий"
|
||||||
weakPassword: "Слабкий пароль"
|
weakPassword: "Слабкий пароль"
|
||||||
normalPassword: "Достатній пароль"
|
normalPassword: "Достатній пароль"
|
||||||
strongPassword: "Міцний пароль"
|
veryStrongPassword: "Міцний пароль"
|
||||||
passwordMatched: "Все вірно"
|
passwordMatched: "Все вірно"
|
||||||
passwordNotMatched: "Паролі не співпадають"
|
passwordNotMatched: "Паролі не співпадають"
|
||||||
signinWith: "Увійти за допомогою {x}"
|
signinWith: "Увійти за допомогою {x}"
|
||||||
|
|
|
@ -462,7 +462,7 @@ tooShort: "Quá ngắn"
|
||||||
tooLong: "Quá dài"
|
tooLong: "Quá dài"
|
||||||
weakPassword: "Mật khẩu yếu"
|
weakPassword: "Mật khẩu yếu"
|
||||||
normalPassword: "Mật khẩu tạm được"
|
normalPassword: "Mật khẩu tạm được"
|
||||||
strongPassword: "Mật khẩu mạnh"
|
veryStrongPassword: "Mật khẩu mạnh"
|
||||||
passwordMatched: "Trùng khớp"
|
passwordMatched: "Trùng khớp"
|
||||||
passwordNotMatched: "Không trùng khớp"
|
passwordNotMatched: "Không trùng khớp"
|
||||||
signinWith: "Đăng nhập bằng {x}"
|
signinWith: "Đăng nhập bằng {x}"
|
||||||
|
|
|
@ -451,7 +451,7 @@ tooShort: "太短"
|
||||||
tooLong: "太长"
|
tooLong: "太长"
|
||||||
weakPassword: "密码强度:弱"
|
weakPassword: "密码强度:弱"
|
||||||
normalPassword: "密码强度:中等"
|
normalPassword: "密码强度:中等"
|
||||||
strongPassword: "密码强度:强"
|
veryStrongPassword: "密码强度:强"
|
||||||
passwordMatched: "密码一致"
|
passwordMatched: "密码一致"
|
||||||
passwordNotMatched: "密码不一致"
|
passwordNotMatched: "密码不一致"
|
||||||
signinWith: "以 {x} 登录"
|
signinWith: "以 {x} 登录"
|
||||||
|
|
|
@ -449,7 +449,7 @@ tooShort: "過短"
|
||||||
tooLong: "過長"
|
tooLong: "過長"
|
||||||
weakPassword: "密碼強度過弱"
|
weakPassword: "密碼強度過弱"
|
||||||
normalPassword: "密碼強度普通"
|
normalPassword: "密碼強度普通"
|
||||||
strongPassword: "密碼強度高"
|
veryStrongPassword: "密碼強度高"
|
||||||
passwordMatched: "密碼一致"
|
passwordMatched: "密碼一致"
|
||||||
passwordNotMatched: "密碼不一致"
|
passwordNotMatched: "密碼不一致"
|
||||||
signinWith: "以{x}登錄"
|
signinWith: "以{x}登錄"
|
||||||
|
|
|
@ -26,7 +26,7 @@ regenerate-entities:
|
||||||
.PHONY: update-index
|
.PHONY: update-index
|
||||||
update-index: index.js index.d.ts
|
update-index: index.js index.d.ts
|
||||||
|
|
||||||
index.js index.d.ts: $(SRC)
|
index.js index.d.ts: $(SRC) package.json
|
||||||
NODE_OPTIONS='--max_old_space_size=3072' pnpm run build:debug
|
NODE_OPTIONS='--max_old_space_size=3072' pnpm run build:debug
|
||||||
[ -f built/index.js ] && [ -f built/index.d.ts ]
|
[ -f built/index.js ] && [ -f built/index.d.ts ]
|
||||||
rm --force index.js index.d.ts
|
rm --force index.js index.d.ts
|
||||||
|
|
|
@ -46,7 +46,7 @@ export const paramDef = {
|
||||||
type: "string",
|
type: "string",
|
||||||
enum: ["all", "renote", "quote"],
|
enum: ["all", "renote", "quote"],
|
||||||
nullable: true,
|
nullable: true,
|
||||||
default: null,
|
default: "all",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
required: ["noteId"],
|
required: ["noteId"],
|
||||||
|
|
|
@ -34,7 +34,7 @@
|
||||||
"@types/tinycolor2": "1.4.6",
|
"@types/tinycolor2": "1.4.6",
|
||||||
"@types/uuid": "10.0.0",
|
"@types/uuid": "10.0.0",
|
||||||
"@vitejs/plugin-vue": "5.0.5",
|
"@vitejs/plugin-vue": "5.0.5",
|
||||||
"@vue/runtime-core": "3.4.30",
|
"@vue/runtime-core": "3.4.31",
|
||||||
"autobind-decorator": "2.4.0",
|
"autobind-decorator": "2.4.0",
|
||||||
"autosize": "6.0.1",
|
"autosize": "6.0.1",
|
||||||
"broadcast-channel": "7.0.0",
|
"broadcast-channel": "7.0.0",
|
||||||
|
@ -43,6 +43,7 @@
|
||||||
"chartjs-chart-matrix": "2.0.1",
|
"chartjs-chart-matrix": "2.0.1",
|
||||||
"chartjs-plugin-gradient": "0.6.1",
|
"chartjs-plugin-gradient": "0.6.1",
|
||||||
"chartjs-plugin-zoom": "2.0.1",
|
"chartjs-plugin-zoom": "2.0.1",
|
||||||
|
"check-password-strength": "2.0.10",
|
||||||
"city-timezones": "1.2.1",
|
"city-timezones": "1.2.1",
|
||||||
"compare-versions": "6.1.0",
|
"compare-versions": "6.1.0",
|
||||||
"cropperjs": "2.0.0-rc.0",
|
"cropperjs": "2.0.0-rc.0",
|
||||||
|
@ -76,7 +77,6 @@
|
||||||
"seedrandom": "3.0.5",
|
"seedrandom": "3.0.5",
|
||||||
"stringz": "2.1.0",
|
"stringz": "2.1.0",
|
||||||
"swiper": "11.1.4",
|
"swiper": "11.1.4",
|
||||||
"syuilo-password-strength": "0.0.1",
|
|
||||||
"textarea-caret": "3.1.0",
|
"textarea-caret": "3.1.0",
|
||||||
"throttle-debounce": "5.0.2",
|
"throttle-debounce": "5.0.2",
|
||||||
"tinycolor2": "1.6.0",
|
"tinycolor2": "1.6.0",
|
||||||
|
@ -86,7 +86,7 @@
|
||||||
"uuid": "10.0.0",
|
"uuid": "10.0.0",
|
||||||
"vite": "5.3.2",
|
"vite": "5.3.2",
|
||||||
"vite-plugin-compression": "0.5.1",
|
"vite-plugin-compression": "0.5.1",
|
||||||
"vue": "3.4.30",
|
"vue": "3.4.31",
|
||||||
"vue-draggable-plus": "0.5.0",
|
"vue-draggable-plus": "0.5.0",
|
||||||
"vue-plyr": "7.0.0",
|
"vue-plyr": "7.0.0",
|
||||||
"vue-prism-editor": "2.0.0-alpha.2",
|
"vue-prism-editor": "2.0.0-alpha.2",
|
||||||
|
|
|
@ -7,7 +7,7 @@ import { alert, api, popup, popupMenu, waiting } from "@/os";
|
||||||
import icon from "@/scripts/icon";
|
import icon from "@/scripts/icon";
|
||||||
import { del, get, set } from "@/scripts/idb-proxy";
|
import { del, get, set } from "@/scripts/idb-proxy";
|
||||||
import { reloadChannel, unisonReload } from "@/scripts/unison-reload";
|
import { reloadChannel, unisonReload } from "@/scripts/unison-reload";
|
||||||
import type { MenuButton, MenuUser } from "./types/menu";
|
import type { MenuUser } from "./types/menu";
|
||||||
|
|
||||||
// TODO: 他のタブと永続化されたstateを同期
|
// TODO: 他のタブと永続化されたstateを同期
|
||||||
|
|
||||||
|
|
|
@ -1195,6 +1195,13 @@ async function post() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (
|
||||||
|
defaultStore.state.addAlt4MeTag &&
|
||||||
|
files.value.some((f) => f.comment == null || f.comment.length === 0)
|
||||||
|
) {
|
||||||
|
text.value = `${text.value.trimEnd()}\n#Alt4Me`;
|
||||||
|
}
|
||||||
|
|
||||||
const processedText = preprocess(text.value);
|
const processedText = preprocess(text.value);
|
||||||
|
|
||||||
let postData: ApiTypes.NoteSubmitReq = {
|
let postData: ApiTypes.NoteSubmitReq = {
|
||||||
|
|
|
@ -52,7 +52,8 @@ const canRenote = computed(
|
||||||
useTooltip(buttonRef, async (showing) => {
|
useTooltip(buttonRef, async (showing) => {
|
||||||
const renotes = await os.api("notes/renotes", {
|
const renotes = await os.api("notes/renotes", {
|
||||||
noteId: props.note.id,
|
noteId: props.note.id,
|
||||||
limit: 11,
|
limit: 10,
|
||||||
|
filter: "renote",
|
||||||
});
|
});
|
||||||
|
|
||||||
const users = renotes.map((x) => x.user);
|
const users = renotes.map((x) => x.user);
|
||||||
|
|
|
@ -179,23 +179,29 @@
|
||||||
<template #prefix><i :class="icon('ph-lock')"></i></template>
|
<template #prefix><i :class="icon('ph-lock')"></i></template>
|
||||||
<template #caption>
|
<template #caption>
|
||||||
<span
|
<span
|
||||||
v-if="passwordStrength == 'low'"
|
v-if="passwordStrength === 'Weak'"
|
||||||
style="color: var(--error)"
|
style="color: var(--error)"
|
||||||
><i :class="icon('ph-warning ph-fw')"></i>
|
><i :class="icon('ph-seal-warning ph-fw')"></i>
|
||||||
{{ i18n.ts.weakPassword }}</span
|
{{ i18n.ts.weakPassword }}</span
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
v-if="passwordStrength == 'medium'"
|
v-if="passwordStrength === 'Medium'"
|
||||||
style="color: var(--warn)"
|
style="color: var(--warn)"
|
||||||
><i :class="icon('ph-check ph-fw')"></i>
|
><i :class="icon('ph-warning ph-fw')"></i>
|
||||||
{{ i18n.ts.normalPassword }}</span
|
{{ i18n.ts.normalPassword }}</span
|
||||||
>
|
>
|
||||||
<span
|
<span
|
||||||
v-if="passwordStrength == 'high'"
|
v-if="passwordStrength === 'Good'"
|
||||||
style="color: var(--success)"
|
style="color: var(--success)"
|
||||||
><i :class="icon('ph-check ph-fw')"></i>
|
><i :class="icon('ph-check ph-fw')"></i>
|
||||||
{{ i18n.ts.strongPassword }}</span
|
{{ i18n.ts.strongPassword }}</span
|
||||||
>
|
>
|
||||||
|
<span
|
||||||
|
v-if="passwordStrength === 'Great'"
|
||||||
|
style="color: var(--success)"
|
||||||
|
><i :class="icon('ph-checks ph-fw')"></i>
|
||||||
|
{{ i18n.ts.veryStrongPassword }}</span
|
||||||
|
>
|
||||||
</template>
|
</template>
|
||||||
</MkInput>
|
</MkInput>
|
||||||
<MkInput
|
<MkInput
|
||||||
|
@ -273,7 +279,7 @@
|
||||||
<script lang="ts" setup>
|
<script lang="ts" setup>
|
||||||
import { computed, ref } from "vue";
|
import { computed, ref } from "vue";
|
||||||
|
|
||||||
import getPasswordStrength from "syuilo-password-strength";
|
import { passwordStrength as checkPasswordStrength } from "check-password-strength";
|
||||||
import { toUnicode } from "punycode/";
|
import { toUnicode } from "punycode/";
|
||||||
import MkButton from "./MkButton.vue";
|
import MkButton from "./MkButton.vue";
|
||||||
import MkInput from "./form/input.vue";
|
import MkInput from "./form/input.vue";
|
||||||
|
@ -333,7 +339,7 @@ const emailState = ref<
|
||||||
| "unavailable"
|
| "unavailable"
|
||||||
| "error"
|
| "error"
|
||||||
>(null);
|
>(null);
|
||||||
const passwordStrength = ref<"" | "low" | "medium" | "high">("");
|
const passwordStrength = ref<"" | "Weak" | "Medium" | "Good" | "Great">("");
|
||||||
const passwordRetypeState = ref<null | "match" | "not-match">(null);
|
const passwordRetypeState = ref<null | "match" | "not-match">(null);
|
||||||
const submitting = ref(false);
|
const submitting = ref(false);
|
||||||
const ToSAgreement = ref(false);
|
const ToSAgreement = ref(false);
|
||||||
|
@ -423,15 +429,42 @@ function onChangeEmail(): void {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const passwordStrengthOptions = [
|
||||||
|
{
|
||||||
|
id: 0,
|
||||||
|
value: "Weak",
|
||||||
|
minDiversity: 0,
|
||||||
|
minLength: 0,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 1,
|
||||||
|
value: "Medium",
|
||||||
|
minDiversity: 2,
|
||||||
|
minLength: 8,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 2,
|
||||||
|
value: "Good",
|
||||||
|
minDiversity: 3,
|
||||||
|
minLength: 16,
|
||||||
|
},
|
||||||
|
{
|
||||||
|
id: 3,
|
||||||
|
value: "Great",
|
||||||
|
minDiversity: 4,
|
||||||
|
minLength: 32,
|
||||||
|
},
|
||||||
|
];
|
||||||
|
|
||||||
function onChangePassword(): void {
|
function onChangePassword(): void {
|
||||||
if (password.value === "") {
|
if (password.value === "") {
|
||||||
passwordStrength.value = "";
|
passwordStrength.value = "";
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
passwordStrength.value = checkPasswordStrength(
|
||||||
const strength = getPasswordStrength(password.value);
|
password.value,
|
||||||
passwordStrength.value =
|
passwordStrengthOptions,
|
||||||
strength > 0.7 ? "high" : strength > 0.3 ? "medium" : "low";
|
).value;
|
||||||
}
|
}
|
||||||
|
|
||||||
function onChangePasswordRetype(): void {
|
function onChangePasswordRetype(): void {
|
||||||
|
|
|
@ -127,12 +127,6 @@
|
||||||
<FormSwitch v-model="openServerInfo" class="_formBlock">{{
|
<FormSwitch v-model="openServerInfo" class="_formBlock">{{
|
||||||
i18n.ts.openServerInfo
|
i18n.ts.openServerInfo
|
||||||
}}</FormSwitch>
|
}}</FormSwitch>
|
||||||
<FormSwitch v-model="showNoAltTextWarning" class="_formBlock">{{
|
|
||||||
i18n.ts.showNoAltTextWarning
|
|
||||||
}}</FormSwitch>
|
|
||||||
<FormSwitch v-model="showAddFileDescriptionAtFirstPost" class="_formBlock">{{
|
|
||||||
i18n.ts.showAddFileDescriptionAtFirstPost
|
|
||||||
}}</FormSwitch>
|
|
||||||
<FormSwitch v-model="autocorrectNoteLanguage" class="_formBlock">{{
|
<FormSwitch v-model="autocorrectNoteLanguage" class="_formBlock">{{
|
||||||
i18n.ts.autocorrectNoteLanguage
|
i18n.ts.autocorrectNoteLanguage
|
||||||
}}</FormSwitch>
|
}}</FormSwitch>
|
||||||
|
@ -191,6 +185,15 @@
|
||||||
|
|
||||||
<FormSection>
|
<FormSection>
|
||||||
<template #label>{{ i18n.ts.accessibility }}</template>
|
<template #label>{{ i18n.ts.accessibility }}</template>
|
||||||
|
<FormSwitch v-model="showNoAltTextWarning" class="_formBlock">{{
|
||||||
|
i18n.ts.showNoAltTextWarning
|
||||||
|
}}</FormSwitch>
|
||||||
|
<FormSwitch v-if="showNoAltTextWarning" v-model="showAddFileDescriptionAtFirstPost" class="_formBlock">{{
|
||||||
|
i18n.ts.showAddFileDescriptionAtFirstPost
|
||||||
|
}}</FormSwitch>
|
||||||
|
<FormSwitch v-model="addAlt4MeTag" class="_formBlock">{{
|
||||||
|
i18n.ts.addAlt4MeTag
|
||||||
|
}}</FormSwitch>
|
||||||
<FormSwitch v-model="expandOnNoteClick" class="_formBlock"
|
<FormSwitch v-model="expandOnNoteClick" class="_formBlock"
|
||||||
>{{ i18n.ts.expandOnNoteClick
|
>{{ i18n.ts.expandOnNoteClick
|
||||||
}}<template #caption>{{
|
}}<template #caption>{{
|
||||||
|
@ -568,6 +571,7 @@ const mergeThreadInTimeline = computed(
|
||||||
const mergeRenotesInTimeline = computed(
|
const mergeRenotesInTimeline = computed(
|
||||||
defaultStore.makeGetterSetter("mergeRenotesInTimeline"),
|
defaultStore.makeGetterSetter("mergeRenotesInTimeline"),
|
||||||
);
|
);
|
||||||
|
const addAlt4MeTag = computed(defaultStore.makeGetterSetter("addAlt4MeTag"));
|
||||||
|
|
||||||
// This feature (along with injectPromo) is currently disabled
|
// This feature (along with injectPromo) is currently disabled
|
||||||
// function onChangeInjectFeaturedNote(v) {
|
// function onChangeInjectFeaturedNote(v) {
|
||||||
|
|
|
@ -127,6 +127,10 @@ const defaultStoreSaveKeys: (keyof (typeof defaultStore)["state"])[] = [
|
||||||
"showNoAltTextWarning",
|
"showNoAltTextWarning",
|
||||||
"showAddFileDescriptionAtFirstPost",
|
"showAddFileDescriptionAtFirstPost",
|
||||||
"autocorrectNoteLanguage",
|
"autocorrectNoteLanguage",
|
||||||
|
"addAlt4MeTag",
|
||||||
|
"addRe",
|
||||||
|
"mergeRenotesInTimeline",
|
||||||
|
"mergeThreadInTimeline",
|
||||||
];
|
];
|
||||||
const coldDeviceStorageSaveKeys: (keyof typeof ColdDeviceStorage.default)[] = [
|
const coldDeviceStorageSaveKeys: (keyof typeof ColdDeviceStorage.default)[] = [
|
||||||
"lightTheme",
|
"lightTheme",
|
||||||
|
|
|
@ -449,6 +449,10 @@ export const defaultStore = markRaw(
|
||||||
where: "account",
|
where: "account",
|
||||||
default: false,
|
default: false,
|
||||||
},
|
},
|
||||||
|
addAlt4MeTag: {
|
||||||
|
where: "account",
|
||||||
|
default: false,
|
||||||
|
},
|
||||||
autocorrectNoteLanguage: {
|
autocorrectNoteLanguage: {
|
||||||
where: "account",
|
where: "account",
|
||||||
default: true,
|
default: true,
|
||||||
|
|
|
@ -1,3 +0,0 @@
|
||||||
{
|
|
||||||
"version": "unknown"
|
|
||||||
}
|
|
172
pnpm-lock.yaml
172
pnpm-lock.yaml
|
@ -579,10 +579,10 @@ importers:
|
||||||
version: 10.0.0
|
version: 10.0.0
|
||||||
'@vitejs/plugin-vue':
|
'@vitejs/plugin-vue':
|
||||||
specifier: 5.0.5
|
specifier: 5.0.5
|
||||||
version: 5.0.5(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(stylus@0.57.0)(terser@5.31.0))(vue@3.4.30(typescript@5.5.2))
|
version: 5.0.5(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(stylus@0.57.0)(terser@5.31.0))(vue@3.4.31(typescript@5.5.2))
|
||||||
'@vue/runtime-core':
|
'@vue/runtime-core':
|
||||||
specifier: 3.4.30
|
specifier: 3.4.31
|
||||||
version: 3.4.30
|
version: 3.4.31
|
||||||
autobind-decorator:
|
autobind-decorator:
|
||||||
specifier: 2.4.0
|
specifier: 2.4.0
|
||||||
version: 2.4.0
|
version: 2.4.0
|
||||||
|
@ -607,6 +607,9 @@ importers:
|
||||||
chartjs-plugin-zoom:
|
chartjs-plugin-zoom:
|
||||||
specifier: 2.0.1
|
specifier: 2.0.1
|
||||||
version: 2.0.1(chart.js@4.4.3)
|
version: 2.0.1(chart.js@4.4.3)
|
||||||
|
check-password-strength:
|
||||||
|
specifier: 2.0.10
|
||||||
|
version: 2.0.10
|
||||||
city-timezones:
|
city-timezones:
|
||||||
specifier: 1.2.1
|
specifier: 1.2.1
|
||||||
version: 1.2.1
|
version: 1.2.1
|
||||||
|
@ -639,7 +642,7 @@ importers:
|
||||||
version: 7.5.4
|
version: 7.5.4
|
||||||
focus-trap-vue:
|
focus-trap-vue:
|
||||||
specifier: 4.0.3
|
specifier: 4.0.3
|
||||||
version: 4.0.3(focus-trap@7.5.4)(vue@3.4.30(typescript@5.5.2))
|
version: 4.0.3(focus-trap@7.5.4)(vue@3.4.31(typescript@5.5.2))
|
||||||
gsap:
|
gsap:
|
||||||
specifier: 3.12.5
|
specifier: 3.12.5
|
||||||
version: 3.12.5
|
version: 3.12.5
|
||||||
|
@ -706,9 +709,6 @@ importers:
|
||||||
swiper:
|
swiper:
|
||||||
specifier: 11.1.4
|
specifier: 11.1.4
|
||||||
version: 11.1.4
|
version: 11.1.4
|
||||||
syuilo-password-strength:
|
|
||||||
specifier: 0.0.1
|
|
||||||
version: 0.0.1
|
|
||||||
textarea-caret:
|
textarea-caret:
|
||||||
specifier: 3.1.0
|
specifier: 3.1.0
|
||||||
version: 3.1.0
|
version: 3.1.0
|
||||||
|
@ -737,8 +737,8 @@ importers:
|
||||||
specifier: 0.5.1
|
specifier: 0.5.1
|
||||||
version: 0.5.1(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(stylus@0.57.0)(terser@5.31.0))
|
version: 0.5.1(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(stylus@0.57.0)(terser@5.31.0))
|
||||||
vue:
|
vue:
|
||||||
specifier: 3.4.30
|
specifier: 3.4.31
|
||||||
version: 3.4.30(typescript@5.5.2)
|
version: 3.4.31(typescript@5.5.2)
|
||||||
vue-draggable-plus:
|
vue-draggable-plus:
|
||||||
specifier: 0.5.0
|
specifier: 0.5.0
|
||||||
version: 0.5.0(@types/sortablejs@1.15.8)
|
version: 0.5.0(@types/sortablejs@1.15.8)
|
||||||
|
@ -747,7 +747,7 @@ importers:
|
||||||
version: 7.0.0
|
version: 7.0.0
|
||||||
vue-prism-editor:
|
vue-prism-editor:
|
||||||
specifier: 2.0.0-alpha.2
|
specifier: 2.0.0-alpha.2
|
||||||
version: 2.0.0-alpha.2(vue@3.4.30(typescript@5.5.2))
|
version: 2.0.0-alpha.2(vue@3.4.31(typescript@5.5.2))
|
||||||
vue-tsc:
|
vue-tsc:
|
||||||
specifier: 2.0.22
|
specifier: 2.0.22
|
||||||
version: 2.0.22(typescript@5.5.2)
|
version: 2.0.22(typescript@5.5.2)
|
||||||
|
@ -2914,26 +2914,26 @@ packages:
|
||||||
'@volar/typescript@2.3.1':
|
'@volar/typescript@2.3.1':
|
||||||
resolution: {integrity: sha512-OrUV6dYt/1h92+aWElexra6dp++gF/IEddvwyxeobyYfKAoKDUMsWU0iJCj0clZlfdyYaLmNEAkulJlVimxnOw==}
|
resolution: {integrity: sha512-OrUV6dYt/1h92+aWElexra6dp++gF/IEddvwyxeobyYfKAoKDUMsWU0iJCj0clZlfdyYaLmNEAkulJlVimxnOw==}
|
||||||
|
|
||||||
'@vue/compiler-core@3.4.29':
|
|
||||||
resolution: {integrity: sha512-TFKiRkKKsRCKvg/jTSSKK7mYLJEQdUiUfykbG49rubC9SfDyvT2JrzTReopWlz2MxqeLyxh9UZhvxEIBgAhtrg==}
|
|
||||||
|
|
||||||
'@vue/compiler-core@3.4.30':
|
'@vue/compiler-core@3.4.30':
|
||||||
resolution: {integrity: sha512-ZL8y4Xxdh8O6PSwfdZ1IpQ24PjTAieOz3jXb/MDTfDtANcKBMxg1KLm6OX2jofsaQGYfIVzd3BAG22i56/cF1w==}
|
resolution: {integrity: sha512-ZL8y4Xxdh8O6PSwfdZ1IpQ24PjTAieOz3jXb/MDTfDtANcKBMxg1KLm6OX2jofsaQGYfIVzd3BAG22i56/cF1w==}
|
||||||
|
|
||||||
'@vue/compiler-dom@3.4.29':
|
'@vue/compiler-core@3.4.31':
|
||||||
resolution: {integrity: sha512-A6+iZ2fKIEGnfPJejdB7b1FlJzgiD+Y/sxxKwJWg1EbJu6ZPgzaPQQ51ESGNv0CP6jm6Z7/pO6Ia8Ze6IKrX7w==}
|
resolution: {integrity: sha512-skOiodXWTV3DxfDhB4rOf3OGalpITLlgCeOwb+Y9GJpfQ8ErigdBUHomBzvG78JoVE8MJoQsb+qhZiHfKeNeEg==}
|
||||||
|
|
||||||
'@vue/compiler-dom@3.4.30':
|
'@vue/compiler-dom@3.4.30':
|
||||||
resolution: {integrity: sha512-+16Sd8lYr5j/owCbr9dowcNfrHd+pz+w2/b5Lt26Oz/kB90C9yNbxQ3bYOvt7rI2bxk0nqda39hVcwDFw85c2Q==}
|
resolution: {integrity: sha512-+16Sd8lYr5j/owCbr9dowcNfrHd+pz+w2/b5Lt26Oz/kB90C9yNbxQ3bYOvt7rI2bxk0nqda39hVcwDFw85c2Q==}
|
||||||
|
|
||||||
|
'@vue/compiler-dom@3.4.31':
|
||||||
|
resolution: {integrity: sha512-wK424WMXsG1IGMyDGyLqB+TbmEBFM78hIsOJ9QwUVLGrcSk0ak6zYty7Pj8ftm7nEtdU/DGQxAXp0/lM/2cEpQ==}
|
||||||
|
|
||||||
'@vue/compiler-sfc@2.7.16':
|
'@vue/compiler-sfc@2.7.16':
|
||||||
resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==}
|
resolution: {integrity: sha512-KWhJ9k5nXuNtygPU7+t1rX6baZeqOYLEforUPjgNDBnLicfHCoi48H87Q8XyLZOrNNsmhuwKqtpDQWjEFe6Ekg==}
|
||||||
|
|
||||||
'@vue/compiler-sfc@3.4.30':
|
'@vue/compiler-sfc@3.4.31':
|
||||||
resolution: {integrity: sha512-8vElKklHn/UY8+FgUFlQrYAPbtiSB2zcgeRKW7HkpSRn/JjMRmZvuOtwDx036D1aqKNSTtXkWRfqx53Qb+HmMg==}
|
resolution: {integrity: sha512-einJxqEw8IIJxzmnxmJBuK2usI+lJonl53foq+9etB2HAzlPjAS/wa7r0uUpXw5ByX3/0uswVSrjNb17vJm1kQ==}
|
||||||
|
|
||||||
'@vue/compiler-ssr@3.4.30':
|
'@vue/compiler-ssr@3.4.31':
|
||||||
resolution: {integrity: sha512-ZJ56YZGXJDd6jky4mmM0rNaNP6kIbQu9LTKZDhcpddGe/3QIalB1WHHmZ6iZfFNyj5mSypTa4+qDJa5VIuxMSg==}
|
resolution: {integrity: sha512-RtefmITAje3fJ8FSg1gwgDhdKhZVntIVbwupdyZDSifZTRMiWxWehAOTCc8/KZDnBOcYQ4/9VWxsTbd3wT0hAA==}
|
||||||
|
|
||||||
'@vue/language-core@2.0.22':
|
'@vue/language-core@2.0.22':
|
||||||
resolution: {integrity: sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA==}
|
resolution: {integrity: sha512-dNTAAtEOuMiz7N1s5tKpypnVVCtawxVSF5BukD0ELcYSw+DSbrSlYYSw8GuwvurodCeYFSHsmslE+c2sYDNoiA==}
|
||||||
|
@ -2943,26 +2943,26 @@ packages:
|
||||||
typescript:
|
typescript:
|
||||||
optional: true
|
optional: true
|
||||||
|
|
||||||
'@vue/reactivity@3.4.30':
|
'@vue/reactivity@3.4.31':
|
||||||
resolution: {integrity: sha512-bVJurnCe3LS0JII8PPoAA63Zd2MBzcKrEzwdQl92eHCcxtIbxD2fhNwJpa+KkM3Y/A4T5FUnmdhgKwOf6BfbcA==}
|
resolution: {integrity: sha512-VGkTani8SOoVkZNds1PfJ/T1SlAIOf8E58PGAhIOUDYPC4GAmFA2u/E14TDAFcf3vVDKunc4QqCe/SHr8xC65Q==}
|
||||||
|
|
||||||
'@vue/runtime-core@3.4.30':
|
'@vue/runtime-core@3.4.31':
|
||||||
resolution: {integrity: sha512-qaFEbnNpGz+tlnkaualomogzN8vBLkgzK55uuWjYXbYn039eOBZrWxyXWq/7qh9Bz2FPifZqGjVDl/FXiq9L2g==}
|
resolution: {integrity: sha512-LDkztxeUPazxG/p8c5JDDKPfkCDBkkiNLVNf7XZIUnJ+66GVGkP+TIh34+8LtPisZ+HMWl2zqhIw0xN5MwU1cw==}
|
||||||
|
|
||||||
'@vue/runtime-dom@3.4.30':
|
'@vue/runtime-dom@3.4.31':
|
||||||
resolution: {integrity: sha512-tV6B4YiZRj5QsaJgw2THCy5C1H+2UeywO9tqgWEc21tn85qHEERndHN/CxlyXvSBFrpmlexCIdnqPuR9RM9thw==}
|
resolution: {integrity: sha512-2Auws3mB7+lHhTFCg8E9ZWopA6Q6L455EcU7bzcQ4x6Dn4cCPuqj6S2oBZgN2a8vJRS/LSYYxwFFq2Hlx3Fsaw==}
|
||||||
|
|
||||||
'@vue/server-renderer@3.4.30':
|
'@vue/server-renderer@3.4.31':
|
||||||
resolution: {integrity: sha512-TBD3eqR1DeDc0cMrXS/vEs/PWzq1uXxnvjoqQuDGFIEHFIwuDTX/KWAQKIBjyMWLFHEeTDGYVsYci85z2UbTDg==}
|
resolution: {integrity: sha512-D5BLbdvrlR9PE3by9GaUp1gQXlCNadIZytMIb8H2h3FMWJd4oUfkUTEH2wAr3qxoRz25uxbTcbqd3WKlm9EHQA==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
vue: 3.4.30
|
vue: 3.4.31
|
||||||
|
|
||||||
'@vue/shared@3.4.29':
|
|
||||||
resolution: {integrity: sha512-hQ2gAQcBO/CDpC82DCrinJNgOHI2v+FA7BDW4lMSPeBpQ7sRe2OLHWe5cph1s7D8DUQAwRt18dBDfJJ220APEA==}
|
|
||||||
|
|
||||||
'@vue/shared@3.4.30':
|
'@vue/shared@3.4.30':
|
||||||
resolution: {integrity: sha512-CLg+f8RQCHQnKvuHY9adMsMaQOcqclh6Z5V9TaoMgy0ut0tz848joZ7/CYFFyF/yZ5i2yaw7Fn498C+CNZVHIg==}
|
resolution: {integrity: sha512-CLg+f8RQCHQnKvuHY9adMsMaQOcqclh6Z5V9TaoMgy0ut0tz848joZ7/CYFFyF/yZ5i2yaw7Fn498C+CNZVHIg==}
|
||||||
|
|
||||||
|
'@vue/shared@3.4.31':
|
||||||
|
resolution: {integrity: sha512-Yp3wtJk//8cO4NItOPpi3QkLExAr/aLBGZMmTtW9WpdwBCJpRM6zj9WgWktXAl8IDIozwNMByT45JP3tO3ACWA==}
|
||||||
|
|
||||||
'@webassemblyjs/ast@1.12.1':
|
'@webassemblyjs/ast@1.12.1':
|
||||||
resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
|
resolution: {integrity: sha512-EKfMUOPRRUTy5UII4qJDGPpqfwjOmZ5jeGFwid9mnoqIFK+e0vqoi1qH56JpmZSzEL53jKnNzScdmftJyG5xWg==}
|
||||||
|
|
||||||
|
@ -3487,6 +3487,9 @@ packages:
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
chart.js: '>=3.2.0'
|
chart.js: '>=3.2.0'
|
||||||
|
|
||||||
|
check-password-strength@2.0.10:
|
||||||
|
resolution: {integrity: sha512-HRM5ICPmtnNtLnTv2QrfVkq1IxI9z3bzYpDJ1k5ixwD9HtJGHuv265R6JmHOV6r8wLhQMlULnIUVpkrC2yaiCw==}
|
||||||
|
|
||||||
cheerio@0.22.0:
|
cheerio@0.22.0:
|
||||||
resolution: {integrity: sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==}
|
resolution: {integrity: sha512-8/MzidM6G/TgRelkzDG13y3Y9LxBjCb+8yOEZ9+wwq5gVF2w2pV0wmHvjfT0RvuxGyR7UEuK36r+yYMbT4uKgA==}
|
||||||
engines: {node: '>= 0.6'}
|
engines: {node: '>= 0.6'}
|
||||||
|
@ -7265,9 +7268,6 @@ packages:
|
||||||
resolution: {integrity: sha512-7SNMJKtQBJlwBUp1jxFT7bXya71cnINXPCYJ2AVhlQE4MKL7o2QiPdAXbMdWRiLeykQ2rx+7TNrnoGzvzhO+eA==}
|
resolution: {integrity: sha512-7SNMJKtQBJlwBUp1jxFT7bXya71cnINXPCYJ2AVhlQE4MKL7o2QiPdAXbMdWRiLeykQ2rx+7TNrnoGzvzhO+eA==}
|
||||||
engines: {node: '>=10.0.0'}
|
engines: {node: '>=10.0.0'}
|
||||||
|
|
||||||
syuilo-password-strength@0.0.1:
|
|
||||||
resolution: {integrity: sha512-g9rPT3V1Q4WjWFZ/t5BdGC1mT/FpYnsLdBl+M5e6MlRkuE1RSR+R43wcY/3mKI59B9KEr+vxdWCuWNMD3oNHKA==}
|
|
||||||
|
|
||||||
tabbable@6.2.0:
|
tabbable@6.2.0:
|
||||||
resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
|
resolution: {integrity: sha512-Cat63mxsVJlzYvN51JmVXIgNoUokrIaT2zLclCXjRd8boZ0004U4KCs/sToJ75C6sdlByWxpYnb5Boif1VSFew==}
|
||||||
|
|
||||||
|
@ -7802,8 +7802,8 @@ packages:
|
||||||
resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==}
|
resolution: {integrity: sha512-4gCtFXaAA3zYZdTp5s4Hl2sozuySsgz4jy1EnpBHNfpMa9dK1ZCG7viqBPCwXtmgc8nHqUsAu3G4gtmXkkY3Sw==}
|
||||||
deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.
|
deprecated: Vue 2 has reached EOL and is no longer actively maintained. See https://v2.vuejs.org/eol/ for more details.
|
||||||
|
|
||||||
vue@3.4.30:
|
vue@3.4.31:
|
||||||
resolution: {integrity: sha512-NcxtKCwkdf1zPsr7Y8+QlDBCGqxvjLXF2EX+yi76rV5rrz90Y6gK1cq0olIhdWGgrlhs9ElHuhi9t3+W5sG5Xw==}
|
resolution: {integrity: sha512-njqRrOy7W3YLAlVqSKpBebtZpDVg21FPoaq1I7f/+qqBThK9ChAIjkRWgeP6Eat+8C+iia4P3OYqpATP21BCoQ==}
|
||||||
peerDependencies:
|
peerDependencies:
|
||||||
typescript: '*'
|
typescript: '*'
|
||||||
peerDependenciesMeta:
|
peerDependenciesMeta:
|
||||||
|
@ -10236,10 +10236,10 @@ snapshots:
|
||||||
'@typescript-eslint/types': 6.21.0
|
'@typescript-eslint/types': 6.21.0
|
||||||
eslint-visitor-keys: 3.4.3
|
eslint-visitor-keys: 3.4.3
|
||||||
|
|
||||||
'@vitejs/plugin-vue@5.0.5(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(stylus@0.57.0)(terser@5.31.0))(vue@3.4.30(typescript@5.5.2))':
|
'@vitejs/plugin-vue@5.0.5(vite@5.3.2(@types/node@20.14.9)(sass@1.77.6)(stylus@0.57.0)(terser@5.31.0))(vue@3.4.31(typescript@5.5.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(stylus@0.57.0)(terser@5.31.0)
|
vite: 5.3.2(@types/node@20.14.9)(sass@1.77.6)(stylus@0.57.0)(terser@5.31.0)
|
||||||
vue: 3.4.30(typescript@5.5.2)
|
vue: 3.4.31(typescript@5.5.2)
|
||||||
|
|
||||||
'@volar/language-core@2.3.1':
|
'@volar/language-core@2.3.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -10253,14 +10253,6 @@ snapshots:
|
||||||
path-browserify: 1.0.1
|
path-browserify: 1.0.1
|
||||||
vscode-uri: 3.0.8
|
vscode-uri: 3.0.8
|
||||||
|
|
||||||
'@vue/compiler-core@3.4.29':
|
|
||||||
dependencies:
|
|
||||||
'@babel/parser': 7.24.7
|
|
||||||
'@vue/shared': 3.4.29
|
|
||||||
entities: 4.5.0
|
|
||||||
estree-walker: 2.0.2
|
|
||||||
source-map-js: 1.2.0
|
|
||||||
|
|
||||||
'@vue/compiler-core@3.4.30':
|
'@vue/compiler-core@3.4.30':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.24.7
|
'@babel/parser': 7.24.7
|
||||||
|
@ -10269,16 +10261,24 @@ snapshots:
|
||||||
estree-walker: 2.0.2
|
estree-walker: 2.0.2
|
||||||
source-map-js: 1.2.0
|
source-map-js: 1.2.0
|
||||||
|
|
||||||
'@vue/compiler-dom@3.4.29':
|
'@vue/compiler-core@3.4.31':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/compiler-core': 3.4.29
|
'@babel/parser': 7.24.7
|
||||||
'@vue/shared': 3.4.29
|
'@vue/shared': 3.4.31
|
||||||
|
entities: 4.5.0
|
||||||
|
estree-walker: 2.0.2
|
||||||
|
source-map-js: 1.2.0
|
||||||
|
|
||||||
'@vue/compiler-dom@3.4.30':
|
'@vue/compiler-dom@3.4.30':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/compiler-core': 3.4.30
|
'@vue/compiler-core': 3.4.30
|
||||||
'@vue/shared': 3.4.30
|
'@vue/shared': 3.4.30
|
||||||
|
|
||||||
|
'@vue/compiler-dom@3.4.31':
|
||||||
|
dependencies:
|
||||||
|
'@vue/compiler-core': 3.4.31
|
||||||
|
'@vue/shared': 3.4.31
|
||||||
|
|
||||||
'@vue/compiler-sfc@2.7.16':
|
'@vue/compiler-sfc@2.7.16':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.24.6
|
'@babel/parser': 7.24.6
|
||||||
|
@ -10287,28 +10287,28 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
prettier: 2.8.8
|
prettier: 2.8.8
|
||||||
|
|
||||||
'@vue/compiler-sfc@3.4.30':
|
'@vue/compiler-sfc@3.4.31':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@babel/parser': 7.24.7
|
'@babel/parser': 7.24.7
|
||||||
'@vue/compiler-core': 3.4.30
|
'@vue/compiler-core': 3.4.31
|
||||||
'@vue/compiler-dom': 3.4.30
|
'@vue/compiler-dom': 3.4.31
|
||||||
'@vue/compiler-ssr': 3.4.30
|
'@vue/compiler-ssr': 3.4.31
|
||||||
'@vue/shared': 3.4.30
|
'@vue/shared': 3.4.31
|
||||||
estree-walker: 2.0.2
|
estree-walker: 2.0.2
|
||||||
magic-string: 0.30.10
|
magic-string: 0.30.10
|
||||||
postcss: 8.4.38
|
postcss: 8.4.38
|
||||||
source-map-js: 1.2.0
|
source-map-js: 1.2.0
|
||||||
|
|
||||||
'@vue/compiler-ssr@3.4.30':
|
'@vue/compiler-ssr@3.4.31':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/compiler-dom': 3.4.30
|
'@vue/compiler-dom': 3.4.31
|
||||||
'@vue/shared': 3.4.30
|
'@vue/shared': 3.4.31
|
||||||
|
|
||||||
'@vue/language-core@2.0.22(typescript@5.5.2)':
|
'@vue/language-core@2.0.22(typescript@5.5.2)':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@volar/language-core': 2.3.1
|
'@volar/language-core': 2.3.1
|
||||||
'@vue/compiler-dom': 3.4.29
|
'@vue/compiler-dom': 3.4.30
|
||||||
'@vue/shared': 3.4.29
|
'@vue/shared': 3.4.30
|
||||||
computeds: 0.0.1
|
computeds: 0.0.1
|
||||||
minimatch: 9.0.4
|
minimatch: 9.0.4
|
||||||
muggle-string: 0.4.1
|
muggle-string: 0.4.1
|
||||||
|
@ -10317,32 +10317,32 @@ snapshots:
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.5.2
|
typescript: 5.5.2
|
||||||
|
|
||||||
'@vue/reactivity@3.4.30':
|
'@vue/reactivity@3.4.31':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/shared': 3.4.30
|
'@vue/shared': 3.4.31
|
||||||
|
|
||||||
'@vue/runtime-core@3.4.30':
|
'@vue/runtime-core@3.4.31':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/reactivity': 3.4.30
|
'@vue/reactivity': 3.4.31
|
||||||
'@vue/shared': 3.4.30
|
'@vue/shared': 3.4.31
|
||||||
|
|
||||||
'@vue/runtime-dom@3.4.30':
|
'@vue/runtime-dom@3.4.31':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/reactivity': 3.4.30
|
'@vue/reactivity': 3.4.31
|
||||||
'@vue/runtime-core': 3.4.30
|
'@vue/runtime-core': 3.4.31
|
||||||
'@vue/shared': 3.4.30
|
'@vue/shared': 3.4.31
|
||||||
csstype: 3.1.3
|
csstype: 3.1.3
|
||||||
|
|
||||||
'@vue/server-renderer@3.4.30(vue@3.4.30(typescript@5.5.2))':
|
'@vue/server-renderer@3.4.31(vue@3.4.31(typescript@5.5.2))':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/compiler-ssr': 3.4.30
|
'@vue/compiler-ssr': 3.4.31
|
||||||
'@vue/shared': 3.4.30
|
'@vue/shared': 3.4.31
|
||||||
vue: 3.4.30(typescript@5.5.2)
|
vue: 3.4.31(typescript@5.5.2)
|
||||||
|
|
||||||
'@vue/shared@3.4.29': {}
|
|
||||||
|
|
||||||
'@vue/shared@3.4.30': {}
|
'@vue/shared@3.4.30': {}
|
||||||
|
|
||||||
|
'@vue/shared@3.4.31': {}
|
||||||
|
|
||||||
'@webassemblyjs/ast@1.12.1':
|
'@webassemblyjs/ast@1.12.1':
|
||||||
dependencies:
|
dependencies:
|
||||||
'@webassemblyjs/helper-numbers': 1.11.6
|
'@webassemblyjs/helper-numbers': 1.11.6
|
||||||
|
@ -10962,6 +10962,8 @@ snapshots:
|
||||||
chart.js: 4.4.3
|
chart.js: 4.4.3
|
||||||
hammerjs: 2.0.8
|
hammerjs: 2.0.8
|
||||||
|
|
||||||
|
check-password-strength@2.0.10: {}
|
||||||
|
|
||||||
cheerio@0.22.0:
|
cheerio@0.22.0:
|
||||||
dependencies:
|
dependencies:
|
||||||
css-select: 1.2.0
|
css-select: 1.2.0
|
||||||
|
@ -12286,10 +12288,10 @@ snapshots:
|
||||||
async: 0.2.10
|
async: 0.2.10
|
||||||
which: 1.3.1
|
which: 1.3.1
|
||||||
|
|
||||||
focus-trap-vue@4.0.3(focus-trap@7.5.4)(vue@3.4.30(typescript@5.5.2)):
|
focus-trap-vue@4.0.3(focus-trap@7.5.4)(vue@3.4.31(typescript@5.5.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
focus-trap: 7.5.4
|
focus-trap: 7.5.4
|
||||||
vue: 3.4.30(typescript@5.5.2)
|
vue: 3.4.31(typescript@5.5.2)
|
||||||
|
|
||||||
focus-trap@7.5.4:
|
focus-trap@7.5.4:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -15218,8 +15220,6 @@ snapshots:
|
||||||
dependencies:
|
dependencies:
|
||||||
moment: 2.30.1
|
moment: 2.30.1
|
||||||
|
|
||||||
syuilo-password-strength@0.0.1: {}
|
|
||||||
|
|
||||||
tabbable@6.2.0: {}
|
tabbable@6.2.0: {}
|
||||||
|
|
||||||
tapable@2.2.1: {}
|
tapable@2.2.1: {}
|
||||||
|
@ -15702,9 +15702,9 @@ snapshots:
|
||||||
plyr: https://codeload.github.com/sampotts/plyr/tar.gz/d434c9af16e641400aaee93188594208d88f2658
|
plyr: https://codeload.github.com/sampotts/plyr/tar.gz/d434c9af16e641400aaee93188594208d88f2658
|
||||||
vue: 2.7.16
|
vue: 2.7.16
|
||||||
|
|
||||||
vue-prism-editor@2.0.0-alpha.2(vue@3.4.30(typescript@5.5.2)):
|
vue-prism-editor@2.0.0-alpha.2(vue@3.4.31(typescript@5.5.2)):
|
||||||
dependencies:
|
dependencies:
|
||||||
vue: 3.4.30(typescript@5.5.2)
|
vue: 3.4.31(typescript@5.5.2)
|
||||||
|
|
||||||
vue-template-compiler@2.7.16:
|
vue-template-compiler@2.7.16:
|
||||||
dependencies:
|
dependencies:
|
||||||
|
@ -15723,13 +15723,13 @@ snapshots:
|
||||||
'@vue/compiler-sfc': 2.7.16
|
'@vue/compiler-sfc': 2.7.16
|
||||||
csstype: 3.1.3
|
csstype: 3.1.3
|
||||||
|
|
||||||
vue@3.4.30(typescript@5.5.2):
|
vue@3.4.31(typescript@5.5.2):
|
||||||
dependencies:
|
dependencies:
|
||||||
'@vue/compiler-dom': 3.4.30
|
'@vue/compiler-dom': 3.4.31
|
||||||
'@vue/compiler-sfc': 3.4.30
|
'@vue/compiler-sfc': 3.4.31
|
||||||
'@vue/runtime-dom': 3.4.30
|
'@vue/runtime-dom': 3.4.31
|
||||||
'@vue/server-renderer': 3.4.30(vue@3.4.30(typescript@5.5.2))
|
'@vue/server-renderer': 3.4.31(vue@3.4.31(typescript@5.5.2))
|
||||||
'@vue/shared': 3.4.30
|
'@vue/shared': 3.4.31
|
||||||
optionalDependencies:
|
optionalDependencies:
|
||||||
typescript: 5.5.2
|
typescript: 5.5.2
|
||||||
|
|
||||||
|
|
|
@ -1,5 +0,0 @@
|
||||||
{
|
|
||||||
"version": "1.0.0",
|
|
||||||
"notes": "Welcome to Firefish!",
|
|
||||||
"screenshots": []
|
|
||||||
}
|
|
|
@ -29,7 +29,6 @@
|
||||||
{"matchManagers": ["npm"], "matchPackageNames": ["mfm-js"], "automerge": false},
|
{"matchManagers": ["npm"], "matchPackageNames": ["mfm-js"], "automerge": false},
|
||||||
{"matchManagers": ["npm"], "matchPackageNames": ["rndstr"], "automerge": false},
|
{"matchManagers": ["npm"], "matchPackageNames": ["rndstr"], "automerge": false},
|
||||||
{"matchManagers": ["npm"], "matchPackageNames": ["summaly"], "automerge": false},
|
{"matchManagers": ["npm"], "matchPackageNames": ["summaly"], "automerge": false},
|
||||||
{"matchManagers": ["npm"], "matchPackageNames": ["syuilo-password-strength"], "automerge": false},
|
|
||||||
{"matchManagers": ["npm"], "matchPackageNames": ["xev"], "automerge": false}
|
{"matchManagers": ["npm"], "matchPackageNames": ["xev"], "automerge": false}
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue