summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--.config/docker_example.yml1
-rw-r--r--.config/example.yml1
-rw-r--r--.devcontainer/devcontainer.yml1
-rw-r--r--.github/reviewer-lottery.yml1
-rw-r--r--.github/workflows/storybook.yml28
-rw-r--r--CHANGELOG.md24
-rw-r--r--chart/files/default.yml1
-rw-r--r--cypress/e2e/basic.cy.js4
-rw-r--r--locales/ar-SA.yml8
-rw-r--r--locales/de-DE.yml7
-rw-r--r--locales/en-US.yml15
-rw-r--r--locales/es-ES.yml1
-rw-r--r--locales/fr-FR.yml27
-rw-r--r--locales/id-ID.yml1
-rw-r--r--locales/it-IT.yml1
-rw-r--r--locales/ja-JP.yml10
-rw-r--r--locales/ja-KS.yml12
-rw-r--r--locales/ko-KR.yml2
-rw-r--r--locales/no-NO.yml1
-rw-r--r--locales/ru-RU.yml1
-rw-r--r--locales/th-TH.yml1
-rw-r--r--locales/zh-CN.yml13
-rw-r--r--locales/zh-TW.yml32
-rw-r--r--package.json10
-rw-r--r--packages/backend/migration/1683682889948-prevent-ai-larning.js11
-rw-r--r--packages/backend/migration/1683683083083-public-reactions-default-true.js11
-rw-r--r--packages/backend/migration/1683789676867-fix-typo.js11
-rw-r--r--packages/backend/package.json24
-rw-r--r--packages/backend/src/boot/common.ts10
-rw-r--r--packages/backend/src/config.ts1
-rw-r--r--packages/backend/src/core/NoteCreateService.ts29
-rw-r--r--packages/backend/src/core/QueueModule.ts41
-rw-r--r--packages/backend/src/core/SearchService.ts4
-rw-r--r--packages/backend/src/core/entities/UserEntityService.ts1
-rw-r--r--packages/backend/src/models/entities/UserProfile.ts7
-rw-r--r--packages/backend/src/models/json-schema/user.ts6
-rw-r--r--packages/backend/src/queue/DbQueueProcessorsService.ts69
-rw-r--r--packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts25
-rw-r--r--packages/backend/src/queue/QueueProcessorModule.ts8
-rw-r--r--packages/backend/src/queue/QueueProcessorService.ts108
-rw-r--r--packages/backend/src/queue/RelationshipQueueProcessorsService.ts26
-rw-r--r--packages/backend/src/queue/SystemQueueProcessorsService.ts37
-rw-r--r--packages/backend/src/server/api/endpoints/admin/show-user.ts1
-rw-r--r--packages/backend/src/server/api/endpoints/i/update.ts4
-rw-r--r--packages/backend/src/server/web/ClientServerService.ts26
-rw-r--r--packages/backend/src/server/web/views/clip.pug3
-rw-r--r--packages/backend/src/server/web/views/flash.pug3
-rw-r--r--packages/backend/src/server/web/views/gallery-post.pug3
-rw-r--r--packages/backend/src/server/web/views/note.pug3
-rw-r--r--packages/backend/src/server/web/views/page.pug3
-rw-r--r--packages/backend/src/server/web/views/user.pug3
-rw-r--r--packages/backend/test/e2e/note.ts55
-rw-r--r--packages/backend/test/e2e/users.ts6
-rw-r--r--packages/frontend/.storybook/changes.ts2
-rw-r--r--packages/frontend/package.json82
-rw-r--r--packages/frontend/src/components/MkCheckbox.vue144
-rw-r--r--packages/frontend/src/components/MkInstanceStats.vue13
-rw-r--r--packages/frontend/src/components/MkModalWindow.vue97
-rw-r--r--packages/frontend/src/components/MkNoteSub.vue12
-rw-r--r--packages/frontend/src/components/MkRadio.vue93
-rw-r--r--packages/frontend/src/components/MkRetentionHeatmap.vue22
-rw-r--r--packages/frontend/src/components/MkRetentionLineChart.vue130
-rw-r--r--packages/frontend/src/components/MkSelect.vue197
-rw-r--r--packages/frontend/src/components/MkSwitch.vue149
-rw-r--r--packages/frontend/src/components/MkUserSetupDialog.Follow.vue4
-rw-r--r--packages/frontend/src/components/MkUserSetupDialog.Privacy.stories.impl.ts31
-rw-r--r--packages/frontend/src/components/MkUserSetupDialog.Privacy.vue64
-rw-r--r--packages/frontend/src/components/MkUserSetupDialog.Profile.vue4
-rw-r--r--packages/frontend/src/components/MkUserSetupDialog.vue50
-rw-r--r--packages/frontend/src/components/MkWidgets.vue2
-rw-r--r--packages/frontend/src/components/global/MkAvatar.vue20
-rw-r--r--packages/frontend/src/components/page/page.image.vue12
-rw-r--r--packages/frontend/src/pages/about-misskey.vue1
-rw-r--r--packages/frontend/src/pages/admin/moderation.vue2
-rw-r--r--packages/frontend/src/pages/channel.vue7
-rw-r--r--packages/frontend/src/pages/explore.users.vue18
-rw-r--r--packages/frontend/src/pages/page-editor/els/page-editor.el.image.vue2
-rw-r--r--packages/frontend/src/pages/search.note.vue98
-rw-r--r--packages/frontend/src/pages/search.user.vue77
-rw-r--r--packages/frontend/src/pages/search.vue113
-rw-r--r--packages/frontend/src/pages/settings/privacy.vue6
-rw-r--r--packages/misskey-js/package.json6
-rw-r--r--packages/sw/package.json4
-rw-r--r--pnpm-lock.yaml1923
84 files changed, 2296 insertions, 1831 deletions
diff --git a/.config/docker_example.yml b/.config/docker_example.yml
index 39682e1542..5cb17a44d1 100644
--- a/.config/docker_example.yml
+++ b/.config/docker_example.yml
@@ -103,6 +103,7 @@ redis:
# port: 7700
# apiKey: ''
# ssl: true
+# index: ''
# ┌───────────────┐
#───┘ ID generation └───────────────────────────────────────────
diff --git a/.config/example.yml b/.config/example.yml
index ef8373c4da..c179395966 100644
--- a/.config/example.yml
+++ b/.config/example.yml
@@ -103,6 +103,7 @@ redis:
# port: 7700
# apiKey: ''
# ssl: true
+# index: ''
# ┌───────────────┐
#───┘ ID generation └───────────────────────────────────────────
diff --git a/.devcontainer/devcontainer.yml b/.devcontainer/devcontainer.yml
index 1d761ae75e..824a046dc0 100644
--- a/.devcontainer/devcontainer.yml
+++ b/.devcontainer/devcontainer.yml
@@ -103,6 +103,7 @@ redis:
# port: 7700
# apiKey: ''
# ssl: true
+# index: ''
# ┌───────────────┐
#───┘ ID generation └───────────────────────────────────────────
diff --git a/.github/reviewer-lottery.yml b/.github/reviewer-lottery.yml
index fd2fb1913f..c88e1342de 100644
--- a/.github/reviewer-lottery.yml
+++ b/.github/reviewer-lottery.yml
@@ -6,5 +6,4 @@ groups:
- syuilo
- acid-chicken
- EbiseLutica
- - rinsuki
- tamaina
diff --git a/.github/workflows/storybook.yml b/.github/workflows/storybook.yml
index eb6ace27da..b04f4260c3 100644
--- a/.github/workflows/storybook.yml
+++ b/.github/workflows/storybook.yml
@@ -20,7 +20,7 @@ jobs:
fetch-depth: 0
submodules: true
- name: Checkout HEAD
- if: github.event_name == 'pull_request'
+ if: github.event_name == 'pull_request_target'
run: git checkout ${{ github.head_ref }}
- name: Install pnpm
uses: pnpm/action-setup@v2
@@ -41,12 +41,12 @@ jobs:
- name: Build storybook
run: pnpm --filter frontend build-storybook
- name: Publish to Chromatic
- if: github.event_name != 'pull_request' && github.ref == 'refs/heads/master'
+ if: github.event_name != 'pull_request_target' && github.ref == 'refs/heads/master'
run: pnpm --filter frontend chromatic --exit-once-uploaded -d storybook-static
env:
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
- name: Publish to Chromatic
- if: github.event_name != 'pull_request' && github.ref != 'refs/heads/master'
+ if: github.event_name != 'pull_request_target' && github.ref != 'refs/heads/master'
id: chromatic_push
run: |
DIFF="${{ github.event.before }} HEAD"
@@ -57,11 +57,15 @@ jobs:
if [ "$CHROMATIC_PARAMETER" = " --skip" ]; then
echo "skip=true" >> $GITHUB_OUTPUT
fi
- pnpm --filter frontend chromatic --exit-once-uploaded -d storybook-static $(echo "$CHROMATIC_PARAMETER")
+ if pnpm --filter frontend chromatic -d storybook-static $(echo "$CHROMATIC_PARAMETER"); then
+ echo "success=true" >> $GITHUB_OUTPUT
+ else
+ echo "success=false" >> $GITHUB_OUTPUT
+ fi
env:
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
- name: Publish to Chromatic
- if: github.event_name == 'pull_request'
+ if: github.event_name == 'pull_request_target'
id: chromatic_pull_request
run: |
DIFF="${{ github.base_ref }} HEAD"
@@ -75,9 +79,21 @@ jobs:
pnpm --filter frontend chromatic --exit-once-uploaded -d storybook-static $(echo "$CHROMATIC_PARAMETER")
env:
CHROMATIC_PROJECT_TOKEN: ${{ secrets.CHROMATIC_PROJECT_TOKEN }}
+ - name: Notify that Chromatic detects changes
+ uses: actions/github-script@v6.4.0
+ if: github.event_name != 'pull_request_target' && steps.chromatic_push.outputs.success == 'false'
+ with:
+ github-token: ${{ secrets.GITHUB_TOKEN }}
+ script: |
+ github.rest.repos.createCommitComment({
+ owner: context.repo.owner,
+ repo: context.repo.repo,
+ commit_sha: context.sha,
+ body: 'Chromatic detects changes. Please [review the changes on Chromatic](https://www.chromatic.com/builds?appId=6428f7d7b962f0b79f97d6e4).'
+ })
- name: Notify that Chromatic will skip testing
uses: actions/github-script@v6.4.0
- if: github.event_name == 'pull_request' && steps.chromatic_pull_request.outputs.skip == 'true'
+ if: github.event_name == 'pull_request_target' && steps.chromatic_pull_request.outputs.skip == 'true'
with:
github-token: ${{ secrets.GITHUB_TOKEN }}
script: |
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 50e097c683..8594c42d10 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -12,6 +12,30 @@
-->
+## 13.12.2
+
+## NOTE
+Meilisearchの設定に`index`が必要になりました。値はMisskeyサーバーのホスト名にすることをお勧めします(アルファベット、ハイフン、アンダーバーのみ使用可能)。例: `misskey-io`
+過去に作成された`notes`インデックスは、`<index名>---notes`にリネームが必要です。例: `misskey-io---notes`
+
+### General
+- 投稿したコンテンツのAIによる学習を軽減するオプションを追加
+
+### Client
+- ユーザーを指定してのノート検索が可能に
+- アカウント初期設定ウィザードにプライバシー設定を追加
+- リテンション率チャートに折れ線グラフを追加
+- Fix: ブラーエフェクトを有効にしている状態で高負荷になる問題を修正
+- Fix: Pageにおいて画像ブロックに画像を設定できない問題を修正
+- Fix: カラーバーがリプライには表示されないのを修正
+- Fix: チャンネル内の検索ボックスが挙動不審な問題を修正
+- Fix: リテンションチャートのレンダリングを修正
+- Fix: リアクションエフェクトのレンダリングの問題を修正
+
+### Server
+- センシティブワードの登録にAnd、正規表現が使用できるようになりました。
+- Fix: ひとつのMeilisearchサーバーを複数のMisskeyサーバーで使えない問題を修正
+
## 13.12.1
### Client
diff --git a/chart/files/default.yml b/chart/files/default.yml
index 342c6091f0..e62032abfd 100644
--- a/chart/files/default.yml
+++ b/chart/files/default.yml
@@ -124,6 +124,7 @@ redis:
# port: 7700
# apiKey: ''
# ssl: true
+# index: ''
# ┌───────────────┐
#───┘ ID generation └───────────────────────────────────────────
diff --git a/cypress/e2e/basic.cy.js b/cypress/e2e/basic.cy.js
index 73f6e7a0f0..2515c14ad6 100644
--- a/cypress/e2e/basic.cy.js
+++ b/cypress/e2e/basic.cy.js
@@ -171,6 +171,10 @@ describe('After user signed in', () => {
cy.get('[data-cy-user-setup-continue]').click();
+ // プライバシー設定
+
+ cy.get('[data-cy-user-setup-continue]').click();
+
// フォローはスキップ
cy.get('[data-cy-user-setup-continue]').click();
diff --git a/locales/ar-SA.yml b/locales/ar-SA.yml
index 9a5936660e..bfca086f5c 100644
--- a/locales/ar-SA.yml
+++ b/locales/ar-SA.yml
@@ -19,6 +19,7 @@ noNotes: "لم يُعثر على أية ملاحظات"
noNotifications: "ليس هناك أية اشعارات"
instance: "مثيل الخادم"
settings: "الاعدادات"
+notificationSettings: "إعدادات الإشعارات"
basicSettings: "الاعدادات الأساسية"
otherSettings: "إعدادات أخرى"
openInWindow: "افتح في نافذة جديدة"
@@ -127,6 +128,7 @@ unblockConfirm: "أمتأكد من إلغاء حجب هذا الحساب؟"
suspendConfirm: "أمتأكد من تعليق الحساب؟"
unsuspendConfirm: "أمتأكد من إلغاء تعليق؟"
selectList: "اختر قائمة"
+selectChannel: "اختر قناة"
selectAntenna: "اختر هوائيًا"
selectWidget: "اختر ودجة"
editWidgets: "عدّل الودجات"
@@ -250,6 +252,9 @@ noMoreHistory: "لا يوجد المزيد من التاريخ"
startMessaging: "ابدأ محادثة"
nUsersRead: "قرأه {n}"
agreeTo: "اوافق على {0}"
+agree: "أقبل"
+basicNotesBeforeCreateAccount: "ملاحظات مهمة"
+termsOfService: "شروط الخدمة"
start: "البداية"
home: "الرئيسي"
remoteUserCaution: "هذه المعلومات قد لا تكون مكتملة بما أن المستخدم من مثيل بعيد."
@@ -379,6 +384,8 @@ about: "عن"
aboutMisskey: "عن Misskey"
administrator: "المدير"
token: "الرمز المميز"
+2fa: "الاستيثاق بعاملَيْن"
+totp: "تطبيق استيثاق"
moderator: "مشرِف"
moderation: "الإشراف"
nUsersMentioned: "{n} مستخدمين أُشير إليهم"
@@ -506,6 +513,7 @@ userSuspended: "عُلق هذا المستخدم."
userSilenced: "كُتم هذا المستخدم."
yourAccountSuspendedTitle: "هذا الحساب معلق"
yourAccountSuspendedDescription: "عُلق الحساب بسبب انتهاك شروط خدمة المثيل و ما شابه. إذا أردت معرفة التفصيل تواصل مع مدير المثيل. رجاءً لا تنشئ حساب جديد."
+accountDeleted: "حُذف الحساب"
menu: "القائمة"
divider: "فاصل"
addItem: "إضافة عنصر"
diff --git a/locales/de-DE.yml b/locales/de-DE.yml
index d678fadd4a..843470cf46 100644
--- a/locales/de-DE.yml
+++ b/locales/de-DE.yml
@@ -990,6 +990,7 @@ rolesAssignedToMe: "Mir zugewiesene Rollen"
resetPasswordConfirm: "Wirklich Passwort zurücksetzen?"
sensitiveWords: "Sensible Wörter"
sensitiveWordsDescription: "Die Notizsichtbarkeit aller Notizen, die diese Wörter enthalten, wird automatisch auf \"Startseite\" gesetzt. Durch Zeilenumbrüche können mehrere konfiguriert werden."
+sensitiveWordsDescription2: "Durch die Verwendung von Leerzeichen können AND-Verknüpfungen angegeben werden und durch das Umgeben von Schrägstrichen können reguläre Ausdrücke verwendet werden."
notesSearchNotAvailable: "Die Notizsuche ist nicht verfügbar."
license: "Lizenz"
unfavoriteConfirm: "Wirklich aus Favoriten entfernen?"
@@ -1038,10 +1039,16 @@ thisChannelArchived: "Dieser Kanal wurde archiviert."
displayOfNote: "Anzeige von Notizen"
initialAccountSetting: "Kontoeinrichtung"
youFollowing: "Gefolgt"
+preventAiLearning: "Verwendung in machinellem Lernen (Generative bzw. Prediktive AI/KI) ablehnen"
+preventAiLearningDescription: "Fordert Crawler auf, gepostetes Text- oder Bildmaterial usw. nicht in Datensätzen für maschinelles Lernen (Generative bzw. Prediktive AI/KI) zu verwenden. Dies wird durch das Hinzufügen einer \"noai\"-Flag in der HTML-Antwort des jeweiligen Inhalts erreicht. Da diese Flag jedoch ignoriert werden kann, ist eine vollständige Verhinderung hierdurch nicht möglich."
+options: "Optionen"
+specifyUser: "Spezifischer Benutzer"
_initialAccountSetting:
accountCreated: "Dein Konto wurde erfolgreich erstellt!"
+ letsStartAccountSetup: "Lass uns nun dein Konto einrichten."
letsFillYourProfile: "Lass uns zuerst dein Profil einrichten."
profileSetting: "Profileinstellungen"
+ privacySetting: "Privatsphäreneinstellungen"
theseSettingsCanEditLater: "Diese Einstellungen kannst du jederzeit ändern."
youCanEditMoreSettingsInSettingsPageLater: "In den Einstellungen findest du noch viele weitere Optionen. Schau dort später mal vorbei."
followUsers: "Folge zuerst ein paar Nutzern, um deine Chronik zu füllen."
diff --git a/locales/en-US.yml b/locales/en-US.yml
index ea91bcc0e5..3ea2313b2f 100644
--- a/locales/en-US.yml
+++ b/locales/en-US.yml
@@ -990,6 +990,7 @@ rolesAssignedToMe: "Roles assigned to me"
resetPasswordConfirm: "Really reset your password?"
sensitiveWords: "Sensitive words"
sensitiveWordsDescription: "The visibility of all notes containing any of the configured words will be set to \"Home\" automatically. You can list multiple by separating them via line breaks."
+sensitiveWordsDescription2: "Using spaces will create AND expressions and surrounding keywords with slashes will turn them into a regular expression."
notesSearchNotAvailable: "Note search is unavailable."
license: "License"
unfavoriteConfirm: "Really remove from favorites?"
@@ -1036,20 +1037,26 @@ channelArchiveConfirmTitle: "Really archive {name}?"
channelArchiveConfirmDescription: "An archived channel won't appear in the channel list or search results anymore. New posts can also not be added to it anymore."
thisChannelArchived: "This channel has been archived."
displayOfNote: "Note display"
-initialAccountSetting: "Profile configuration"
+initialAccountSetting: "Profile setup"
youFollowing: "Followed"
+preventAiLearning: "Reject usage in Machine Learning (Generative AI)"
+preventAiLearningDescription: "Requests crawlers to not use posted text or image material etc. in machine learning (Predictive / Generative AI) data sets. This is achieved by adding a \"noai\" HTML-Response flag to the respective content. A complete prevention can however not be achieved through this flag, as it may simply be ignored."
+options: "Options"
+specifyUser: "Specific user"
_initialAccountSetting:
accountCreated: "Your account was successfully created!"
+ letsStartAccountSetup: "For starters, let's set up your profile."
letsFillYourProfile: "First, let's set up your profile."
profileSetting: "Profile settings"
+ privacySetting: "Privacy settings"
theseSettingsCanEditLater: "You can always change these settings later."
youCanEditMoreSettingsInSettingsPageLater: "There are many more settings you can configure from the \"Settings\" page. Be sure to visit it later."
followUsers: "Try following some users that interest you to build up your timeline."
pushNotificationDescription: "Enabling push notifications will allow you to receive notifications from {name} directly on your device."
- initialAccountSettingCompleted: "Profile configuration complete!"
+ initialAccountSettingCompleted: "Profile setup complete!"
haveFun: "Enjoy {name}!"
ifYouNeedLearnMore: "If you'd like to learn more about how to use {name} (Misskey), please visit {link}."
- skipAreYouSure: "Really skip profile configuration?"
+ skipAreYouSure: "Really skip profile setup?"
_serverRules:
description: "A set of rules to be displayed before registration. Setting a summary of the Terms of Service is recommended."
_accountMigration:
@@ -1321,7 +1328,7 @@ _role:
isConditionalRole: "This is a conditional role."
isPublic: "Public role"
descriptionOfIsPublic: "Anyone will be able to view a list of users assigned to this role. In addition, this role will be displayed in the profiles of assigned users."
- options: "Role options"
+ options: "Options"
policies: "Policies"
baseRole: "Role template"
useBaseValue: "Use role template value"
diff --git a/locales/es-ES.yml b/locales/es-ES.yml
index 42d52e5a2b..b043ecf3cf 100644
--- a/locales/es-ES.yml
+++ b/locales/es-ES.yml
@@ -993,6 +993,7 @@ accountMigration: "Migración de cuenta"
accountMoved: "Este usuario se ha mudado a una nueva cuenta:"
horizontal: "Horizontal"
youFollowing: "Siguiendo"
+options: "Opción"
_accountMigration:
moveFrom: "Trasladar de otra cuenta a ésta"
moveFromLabel: "Cuenta desde la que se realiza el traslado:"
diff --git a/locales/fr-FR.yml b/locales/fr-FR.yml
index e98ee9ff9b..d8ac41c925 100644
--- a/locales/fr-FR.yml
+++ b/locales/fr-FR.yml
@@ -452,6 +452,7 @@ native: "Natif"
disableDrawer: "Les menus ne s'affichent pas dans le tiroir"
noHistory: "Pas d'historique"
signinHistory: "Historique de connexion"
+enableAdvancedMfm: "Activer la MFM avancée"
doing: "En cours..."
category: "Catégorie"
tags: "Étiquettes"
@@ -846,6 +847,7 @@ rateLimitExceeded: "Limite de taux dépassée"
cropImage: "Recadrer l'image"
cropImageAsk: "Voulez-vous recadrer cette image ?"
cropYes: "Rogner"
+cropNo: "Utiliser en l'état"
file: "Fichiers"
recentNHours: "Dernières {n} heures"
recentNDays: "Derniers {n} jours"
@@ -912,6 +914,7 @@ color: "Couleur"
manageCustomEmojis: "Gestion des émojis personnalisés"
preset: "Préréglage"
selectFromPresets: "Sélectionner à partir des préréglages"
+thisPostMayBeAnnoyingCancel: "Annuler"
license: "Licence"
video: "Vidéo"
videos: "Vidéos"
@@ -925,6 +928,7 @@ leftBottom: "En bas à gauche"
rightBottom: "En bas à droite"
vertical: "Vertical"
horizontal: "Latéral"
+serverRules: "Règles du serveur"
youFollowing: "Abonné·e"
_achievements:
_types:
@@ -934,10 +938,13 @@ _achievements:
_notes100000:
title: "ALL YOUR NOTE ARE BELONG TO US"
_login3:
+ title: "Débutant Ⅰ"
description: "Se connecter pour un total de 3 jours"
_login7:
+ title: "Débutant Ⅱ"
description: "Se connecter pour un total de 7 jours"
_login15:
+ title: "Débutant Ⅲ"
description: "Se connecter pour un total de 15 jours"
_login30:
description: "Se connecter pour un total de 30 jours"
@@ -945,6 +952,22 @@ _achievements:
description: "Se connecter pour un total de 60 jours"
_login100:
description: "Se connecter pour un total de 100 jours"
+ _login200:
+ description: "Se connecter pour un total de 200 jours"
+ _login300:
+ description: "Se connecter pour un total de 300 jours"
+ _login400:
+ description: "Se connecter pour un total de 400 jours"
+ _login500:
+ description: "Se connecter pour un total de 500 jours"
+ _login600:
+ description: "Se connecter pour un total de 600 jours"
+ _login700:
+ description: "Se connecter pour un total de 700 jours"
+ _login800:
+ description: "Se connecter pour un total de 800 jours"
+ _login900:
+ description: "Se connecter pour un total de 900 jours"
_login1000:
flavor: "Merci d'utiliser Misskey !"
_markedAsCat:
@@ -954,8 +977,12 @@ _achievements:
title: "Beaucoup d'amis"
_followers10:
title: "Abonnez-moi !"
+ _iLoveMisskey:
+ title: "J’adore Misskey"
_viewInstanceChart:
title: "Analyste"
+ _loggedInOnBirthday:
+ title: "Joyeux Anniversaire !"
_loggedInOnNewYearsDay:
title: "Bonne année !"
_role:
diff --git a/locales/id-ID.yml b/locales/id-ID.yml
index 5159775fc4..df42697ccb 100644
--- a/locales/id-ID.yml
+++ b/locales/id-ID.yml
@@ -955,6 +955,7 @@ disableFederationConfirmWarn: "Mematikan federasi tidak membuat kiriman menjadi
disableFederationOk: "Matikan federasi"
horizontal: "Horisontal"
youFollowing: "Mengikuti"
+options: "Opsi peran"
_achievements:
earnedAt: "Terbuka pada"
_types:
diff --git a/locales/it-IT.yml b/locales/it-IT.yml
index cacd91cac9..3c1a26e85c 100644
--- a/locales/it-IT.yml
+++ b/locales/it-IT.yml
@@ -1020,6 +1020,7 @@ pleaseConfirmBelowBeforeSignup: "Ai sensi del regolamento EU 679/2016 GDPR, auto
pleaseAgreeAllToContinue: "Per continuare, occorre selezionare ed essere d'accordo su tutto."
continue: "Continua"
youFollowing: "Seguiti"
+options: "Opzioni del ruolo"
_serverRules:
description: "In Europa è necessario mostrare l'informativa sul trattamento dei dati personali, prima della registrazione al servizio."
_accountMigration:
diff --git a/locales/ja-JP.yml b/locales/ja-JP.yml
index 8bbf9459f5..0b7108fe6d 100644
--- a/locales/ja-JP.yml
+++ b/locales/ja-JP.yml
@@ -689,7 +689,7 @@ no: "いいえ"
driveFilesCount: "ドライブのファイル数"
driveUsage: "ドライブ使用量"
noCrawle: "クローラーによるインデックスを拒否"
-noCrawleDescription: "検索エンジンにあなたのユーザーページ、ノート、Pagesなどのコンテンツを登録(インデックス)しないよう要請します。"
+noCrawleDescription: "外部の検索エンジンにあなたのユーザーページ、ノート、Pagesなどのコンテンツを登録(インデックス)しないよう要求します。"
lockedAccountInfo: "フォローを承認制にしても、ノートの公開範囲を「フォロワー」にしない限り、誰でもあなたのノートを見ることができます。"
alwaysMarkSensitive: "デフォルトでメディアを閲覧注意にする"
loadRawImages: "添付画像のサムネイルをオリジナル画質にする"
@@ -832,6 +832,8 @@ breakFollow: "フォロワーを解除"
breakFollowConfirm: "フォロワー解除しますか?"
itsOn: "オンになっています"
itsOff: "オフになっています"
+on: "オン"
+off: "オフ"
emailRequiredForSignup: "アカウント登録にメールアドレスを必須にする"
unread: "未読"
filter: "フィルタ"
@@ -990,6 +992,7 @@ rolesAssignedToMe: "自分に割り当てられたロール"
resetPasswordConfirm: "パスワードリセットしますか?"
sensitiveWords: "センシティブワード"
sensitiveWordsDescription: "設定したワードが含まれるノートの公開範囲をホームにします。改行で区切って複数設定できます。"
+sensitiveWordsDescription2: "スペースで区切るとAND指定になり、キーワードをスラッシュで囲むと正規表現になります。"
notesSearchNotAvailable: "ノート検索は利用できません。"
license: "ライセンス"
unfavoriteConfirm: "お気に入り解除しますか?"
@@ -1038,12 +1041,17 @@ thisChannelArchived: "このチャンネルはアーカイブされています
displayOfNote: "ノートの表示"
initialAccountSetting: "初期設定"
youFollowing: "フォロー中"
+preventAiLearning: "生成AIによる学習を拒否"
+preventAiLearningDescription: "外部の文章生成AIや画像生成AIに対して、投稿したノートや画像などのコンテンツを学習の対象にしないように要求します。これはnoaiフラグをHTMLレスポンスに含めることによって実現されますが、この要求に従うかはそのAI次第であるため、学習を完全に防止するものではありません。"
+options: "オプション"
+specifyUser: "ユーザー指定"
_initialAccountSetting:
accountCreated: "アカウントの作成が完了しました!"
letsStartAccountSetup: "アカウントの初期設定を行いましょう。"
letsFillYourProfile: "まずはあなたのプロフィールを設定しましょう。"
profileSetting: "プロフィール設定"
+ privacySetting: "プライバシー設定"
theseSettingsCanEditLater: "これらの設定は後から変更できます。"
youCanEditMoreSettingsInSettingsPageLater: "この他にも様々な設定を「設定」ページから行えます。ぜひ後で確認してみてください。"
followUsers: "タイムラインを構築するため、気になるユーザーをフォローしてみましょう。"
diff --git a/locales/ja-KS.yml b/locales/ja-KS.yml
index 512cce1452..d09f75155d 100644
--- a/locales/ja-KS.yml
+++ b/locales/ja-KS.yml
@@ -689,7 +689,7 @@ no: "あかん"
driveFilesCount: "ドライブのファイル数"
driveUsage: "ドライブ使用量やで"
noCrawle: "クローラーによるインデックスを拒否するで"
-noCrawleDescription: "検索エンジンにあんたのユーザーページ、ノート、Pagesとかのコンテンツを登録(インデックス)せんように頼むで。邪魔すんねんやったら帰って〜。"
+noCrawleDescription: "検索エンジンにあんたのユーザーページ、ノート、Pagesとかのコンテンツを登録(インデックス)せぇへんように頼むで。"
lockedAccountInfo: "フォローを承認制にしとっても、ノートの公開範囲を「フォロワー」にせぇへん限り、誰でもあんたのノートを見れるで。"
alwaysMarkSensitive: "デフォルトでメディアを閲覧注意にするで"
loadRawImages: "添付画像のサムネイルをオリジナル画質にするで"
@@ -990,6 +990,7 @@ rolesAssignedToMe: "自分に割り当てられたロール"
resetPasswordConfirm: "パスワード作り直すんでええな?"
sensitiveWords: "けったいな単語"
sensitiveWordsDescription: "設定した単語が入っとるノートの公開範囲をホームにしたるわ。改行で区切ったら複数設定できるで。"
+sensitiveWordsDescription2: "スペースで区切るとAND指定、キーワードをスラッシュで囲んだら正規表現や。"
notesSearchNotAvailable: "ノート検索は使われへんで。"
license: "ライセンス"
unfavoriteConfirm: "ほんまに気に入らんの?"
@@ -1038,10 +1039,16 @@ thisChannelArchived: "このチャンネル、アーカイブされとるで。"
displayOfNote: "ノートの表示"
initialAccountSetting: "初期設定"
youFollowing: "フォロー中やで"
+preventAiLearning: "生成AIの学習に使わんといて"
+preventAiLearningDescription: "他の文章生成AIとか画像生成AIに、投稿したノートとか画像なんかを勝手に使わんように頼むで。具体的にはnoaiフラグをHTMLレスポンスに含めるんやけど、これ聞いてくれるんはAIの気分次第やから、使われる可能性もちょっとはあるな。"
+options: "オプション"
+specifyUser: "ユーザー指定"
_initialAccountSetting:
accountCreated: "アカウント作り終わったで。"
+ letsStartAccountSetup: "アカウントの初期設定をしよか。"
letsFillYourProfile: "最初はあんたのプロフィールを設定しよか。"
profileSetting: "プロフィール設定"
+ privacySetting: "プライバシー設定"
theseSettingsCanEditLater: "この設定はあとから変えれるで。"
youCanEditMoreSettingsInSettingsPageLater: "これ以外にもいろんな設定を「設定」ページからできるで。後で確認してみてな。"
followUsers: "タイムラインを構築するために、気になるユーザーをフォローしてみ。"
@@ -1060,11 +1067,12 @@ _accountMigration:
moveTo: "このアカウントをさらのアカウントに引っ越すで"
moveToLabel: "引っ越し先のアカウント:"
moveCannotBeUndone: "アカウントを移行すると、取り消すことはできへんくなります。"
- moveAccountDescription: "この操作は戻されへんで。まず引っ越し先のアカウントでこのアカウントへのエイリアスが作れたか確認してきなはれや。エイリアスができてたら、引っ越し先のアカウントをこんな風に入力してくれへんか?:@person@instance.com"
+ moveAccountDescription: "おニューのアカウントに移行すんで。\n ・フォロワーがおニューの方を勝手にフォローすんで。\n ・このアカウントからのフォローはまるまる全部解除されんで。\n ・このアカウントでノート作れへんようになるで。\n\nフォロワーの移行は勝手にこっちでやっとくけど、フォローの移行は自分でしてや。移行前にこのアカウントでフォローエクスポートして、移行したあとすぐにおニューのところでインポートしてくれな。\nリストとかミュート、あとブロックもおんなじや。自分で移行してな。\n\n(この説明はこのサーバー、つまりMisskey v13.12.0から後の仕様や。Mastodonとか他のActivityPubソフトやとちょっと挙動が違うこともあんで。)"
moveAccountHowTo: "アカウントの引っ越しには、まず引っ越し先のアカウントで自分のアカウントに対しエイリアスを作成しなはれや。\nエイリアス作成した後、引っ越し先のアカウントを次のように入力してくれへんか?:@username@server.example.com"
startMigration: "引っ越しする"
migrationConfirm: "ほんまにこのアカウントを {account} に引っ越すんか?一回引っ越してもうたら取り消されへんし、二度とこのアカウントを元に戻されへんくなるで。\nそれと、引っ越し先のアカウントでエイリアスが作れたかちゃ~んと確認しーや?"
movedAndCannotBeUndone: "\nアカウントはもう引っ越されてます。\n引っ越しを取り消すことはできまへん。"
+ postMigrationNote: "このアカウントからのフォロー解除は移行操作から丸一日経ったら実行されんで。\nこのアカウントのフォロー・フォロワー数はどっちも0や。フォローの解除はされへんから、あんたのフォロワーはこのアカウントのフォロワー向けの投稿をこの後も見れるで。"
movedTo: "引っ越し先のアカウント:"
_achievements:
earnedAt: "貰った日ぃ"
diff --git a/locales/ko-KR.yml b/locales/ko-KR.yml
index ef690d260b..39574d3321 100644
--- a/locales/ko-KR.yml
+++ b/locales/ko-KR.yml
@@ -1038,6 +1038,7 @@ thisChannelArchived: "이 채널은 아카이브되었습니다."
displayOfNote: "노트 표시"
initialAccountSetting: "초기 설정"
youFollowing: "팔로잉"
+options: "옵션"
_initialAccountSetting:
accountCreated: "계정 생성이 완료되었습니다!"
letsStartAccountSetup: "계정의 초기 설정을 진행합니다."
@@ -1240,6 +1241,7 @@ _achievements:
title: "잠깐 쉬어"
description: "클라이언트를 시작하고 30분이 경과하였습니다"
_client60min:
+ title: "No \"Miss\" in Misskey"
description: "클라이언트를 시작하고 60분이 경과하였습니다"
_noteDeletedWithin1min:
title: "있었는데요 없었습니다"
diff --git a/locales/no-NO.yml b/locales/no-NO.yml
index f7f0d442d4..36c29295f6 100644
--- a/locales/no-NO.yml
+++ b/locales/no-NO.yml
@@ -278,6 +278,7 @@ video: "Video"
videos: "Videoer"
continue: "Fortsett"
youFollowing: "Følger"
+options: "Alternativ"
_initialAccountSetting:
theseSettingsCanEditLater: "Du kan endre disse innstillingene senere."
_achievements:
diff --git a/locales/ru-RU.yml b/locales/ru-RU.yml
index 55d4b70590..a123ad7266 100644
--- a/locales/ru-RU.yml
+++ b/locales/ru-RU.yml
@@ -1006,6 +1006,7 @@ videos: "Видео"
dataSaver: "Экономия трафика"
horizontal: "Сбоку"
youFollowing: "Подписки"
+options: "Настройки ролей"
_achievements:
earnedAt: "Разблокировано в"
_types:
diff --git a/locales/th-TH.yml b/locales/th-TH.yml
index d1f87dbfdb..22f110ebad 100644
--- a/locales/th-TH.yml
+++ b/locales/th-TH.yml
@@ -1031,6 +1031,7 @@ preservedUsernames: "ชื่อผู้ใช้ที่สงวนไว
preservedUsernamesDescription: "ลิสต์ชื่อผู้ใช้ที่จะสำรองโดยคั่นด้วยการแบ่งบรรทัดนั้น เพราะสิ่งเหล่านี้จะไม่สามารถทำได้ในระหว่างการสร้างบัญชีตามปกติ บัญชีที่มีอยู่แล้วนั้นโดยใช้ชื่อผู้ใช้เหล่านี้จะไม่ได้รับผลกระทบอะไร"
createNoteFromTheFile: "เรียบเรียงโน้ตจากไฟล์นี้"
youFollowing: "ติดตามแล้ว"
+options: "ตัวเลือกบทบาท"
_serverRules:
description: "ชุดของกฎที่จะแสดงก่อนการลงทะเบียนเราขอแนะนำให้ตั้งค่าสรุปข้อกำหนดในการให้บริการ"
_accountMigration:
diff --git a/locales/zh-CN.yml b/locales/zh-CN.yml
index 1fe82185be..638cc1cf8a 100644
--- a/locales/zh-CN.yml
+++ b/locales/zh-CN.yml
@@ -1030,6 +1030,13 @@ continue: "继续"
preservedUsernames: "保留的用户名"
createNoteFromTheFile: "从文件创建帖子"
youFollowing: "正在关注"
+options: "选项"
+_initialAccountSetting:
+ accountCreated: "账户创建完成了!"
+ letsStartAccountSetup: "来进行帐户的初始设置吧。"
+ letsFillYourProfile: "首先,来设定你的个人档案吧!"
+ profileSetting: "个人资料设置"
+ theseSettingsCanEditLater: "也可以在稍后修改这里的设置。"
_serverRules:
description: "在新用户注册前显示服务器的简单规则。推荐显示服务条款的主要内容。"
_accountMigration:
@@ -1038,8 +1045,11 @@ _accountMigration:
moveFromDescription: "如果迁移时需要继承其他账户的关注者,请在此创造别名。此操作需要在实行迁移之前完成!请如已下输入需要迁移的账户:@person@instance.com"
moveTo: "把这个账户迁移到新的账户"
moveToLabel: "迁移后的账户"
+ moveCannotBeUndone: "一旦迁移账户,就无法撤销。"
moveAccountDescription: "此操作无法取消。请先确认您已在迁移后的账户上,为此账户创造了别名。创造别名后,请如以下输入您的迁移后的账户:@person@instance.com"
+ startMigration: "迁移"
migrationConfirm: "确定要把此账户迁移到{account}吗?一旦确定后,此操作无法取消,此账户也无法以原来的状态使用。\n同时,请确认迁移后的账户,已创造别名。"
+ movedAndCannotBeUndone: "该账户已被迁移。\n迁移操作无法撤销。"
movedTo: "迁移后的账户"
_achievements:
earnedAt: "达成时间"
@@ -1572,6 +1582,9 @@ _time:
minute: "分"
hour: "小时"
day: "日"
+_timelineTutorial:
+ step3_1: "将想说的话发出去了吗?"
+ step3_2: "太棒了!现在你可以在你的时间线中看到刚刚发布的帖子了。"
_2fa:
alreadyRegistered: "此设备已被注册"
registerTOTP: "开始设置认证应用"
diff --git a/locales/zh-TW.yml b/locales/zh-TW.yml
index 4073b9629d..d2b42313a7 100644
--- a/locales/zh-TW.yml
+++ b/locales/zh-TW.yml
@@ -990,6 +990,7 @@ rolesAssignedToMe: "指派給自己的角色"
resetPasswordConfirm: "重設密碼?"
sensitiveWords: "敏感詞"
sensitiveWordsDescription: "將含有設定詞彙的貼文可見性設為發送至首頁。可以用換行來進行複數的設定。"
+sensitiveWordsDescription2: "用空格分隔關鍵詞構成AND格式,用斜線包圍關鍵字構成正規表達式。"
notesSearchNotAvailable: "無法使用搜尋貼文功能。"
license: "授權"
unfavoriteConfirm: "要取消收錄我的最愛嗎?"
@@ -1036,7 +1037,24 @@ channelArchiveConfirmTitle: "要封存{name}嗎?"
channelArchiveConfirmDescription: "封存以後,在頻道列表與搜索結果中不會顯示,也無法發布新的貼文。"
thisChannelArchived: "這個頻道已被封存。"
displayOfNote: "顯示貼文"
-youFollowing: "關注中"
+initialAccountSetting: "初始設定"
+youFollowing: "追隨中"
+preventAiLearning: "拒絕接受產生式AI的學習"
+preventAiLearningDescription: "要求外部的文章產生AI或圖像產生AI不以發布的貼文和圖像等內容為學習對象。這是透過在HTML響應中包含noai旗標來實現的,但不能完全防止AI的學習,因為這要看該AI是否遵守這個要求。"
+options: "選項"
+_initialAccountSetting:
+ accountCreated: "帳戶已建立完成!"
+ letsStartAccountSetup: "來進行帳戶的初始設定吧。"
+ letsFillYourProfile: "首先,來設定您的個人檔案吧。"
+ profileSetting: "個人檔案設定"
+ theseSettingsCanEditLater: "這裡的設定可以在之後變更。"
+ youCanEditMoreSettingsInSettingsPageLater: "除此之外,還可以在「設定」頁面進行各種設定。之後請確認看看。"
+ followUsers: "為了構築時間軸,試著追蹤您感興趣的使用者吧。"
+ pushNotificationDescription: "啟用推送通知,就可以在設備上接收{name}的通知。"
+ initialAccountSettingCompleted: "初始設定完成了!"
+ haveFun: "盡情享受{name}吧!"
+ ifYouNeedLearnMore: "關於如何使用{name}(Misskey)的詳細資訊,請見{link}。"
+ skipAreYouSure: "要略過初始設定嗎?"
_serverRules:
description: "設定伺服器的簡要規則,在新的註冊之前顯示。建議的內容是使用條款的摘要。"
_accountMigration:
@@ -1464,7 +1482,7 @@ _channel:
removeBanner: "移除橫幅圖像"
featured: "熱門貼文"
owned: "管理中"
- following: "關注中"
+ following: "追隨中"
usersCount: "有{n}人參與"
notesCount: "有{n}個貼文"
nameAndDescription: "名稱與說明"
@@ -1586,6 +1604,16 @@ _time:
minute: "分鐘"
hour: "小時"
day: "日"
+_timelineTutorial:
+ title: "Misskey的使用方法"
+ step1_1: "這個畫面是「時間軸」。發布到{name}的「貼文」按照時間順序顯示。"
+ step1_2: "時間軸有多種類型,例如在「首頁時間軸」中流動的是您追蹤的人的貼文;而在「本地時間軸」流動的是{name}全體的貼文。"
+ step2_1: "試試看,發布個貼文吧!按畫面上鉛筆圖示的按鈕開啟表格。"
+ step2_2: "初次貼文的內容,建議包括自我介紹以及「開始使用{name}」。"
+ step3_1: "貼文發出去了嗎?"
+ step3_2: "如果你的貼文出現在時間軸上,就代表發文成功。"
+ step4_1: "可以對貼文標記「反應」。"
+ step4_2: "點擊貼文的「+」圖示,即可選擇喜好的表情符號來標記反應。"
_2fa:
alreadyRegistered: "此設備已經被註冊過了"
registerTOTP: "開始設定驗證應用程式"
diff --git a/package.json b/package.json
index 28e1cdcf1e..a21d7ab9e3 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "misskey",
- "version": "13.12.1",
+ "version": "13.12.2",
"codename": "nasubi",
"repository": {
"type": "git",
@@ -56,11 +56,11 @@
"devDependencies": {
"@types/gulp": "4.0.10",
"@types/gulp-rename": "2.0.1",
- "@typescript-eslint/eslint-plugin": "5.59.2",
- "@typescript-eslint/parser": "5.59.2",
+ "@typescript-eslint/eslint-plugin": "5.59.5",
+ "@typescript-eslint/parser": "5.59.5",
"cross-env": "7.0.3",
- "cypress": "12.11.0",
- "eslint": "8.39.0",
+ "cypress": "12.12.0",
+ "eslint": "8.40.0",
"start-server-and-test": "2.0.0"
},
"optionalDependencies": {
diff --git a/packages/backend/migration/1683682889948-prevent-ai-larning.js b/packages/backend/migration/1683682889948-prevent-ai-larning.js
new file mode 100644
index 0000000000..9d1a19c10b
--- /dev/null
+++ b/packages/backend/migration/1683682889948-prevent-ai-larning.js
@@ -0,0 +1,11 @@
+export class PreventAiLarning1683682889948 {
+ name = 'PreventAiLarning1683682889948'
+
+ async up(queryRunner) {
+ await queryRunner.query(`ALTER TABLE "user_profile" ADD "preventAiLarning" boolean NOT NULL DEFAULT true`);
+ }
+
+ async down(queryRunner) {
+ await queryRunner.query(`ALTER TABLE "user_profile" DROP COLUMN "preventAiLarning"`);
+ }
+}
diff --git a/packages/backend/migration/1683683083083-public-reactions-default-true.js b/packages/backend/migration/1683683083083-public-reactions-default-true.js
new file mode 100644
index 0000000000..195ea02a5e
--- /dev/null
+++ b/packages/backend/migration/1683683083083-public-reactions-default-true.js
@@ -0,0 +1,11 @@
+export class PublicReactionsDefaultTrue1683683083083 {
+ name = 'PublicReactionsDefaultTrue1683683083083'
+
+ async up(queryRunner) {
+ await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "publicReactions" SET DEFAULT true`);
+ }
+
+ async down(queryRunner) {
+ await queryRunner.query(`ALTER TABLE "user_profile" ALTER COLUMN "publicReactions" SET DEFAULT false`);
+ }
+}
diff --git a/packages/backend/migration/1683789676867-fix-typo.js b/packages/backend/migration/1683789676867-fix-typo.js
new file mode 100644
index 0000000000..c0dbbf0050
--- /dev/null
+++ b/packages/backend/migration/1683789676867-fix-typo.js
@@ -0,0 +1,11 @@
+export class FixTypo1683789676867 {
+ name = 'FixTypo1683789676867'
+
+ async up(queryRunner) {
+ await queryRunner.query(`ALTER TABLE "user_profile" RENAME COLUMN "preventAiLarning" TO "preventAiLearning"`);
+ }
+
+ async down(queryRunner) {
+ await queryRunner.query(`ALTER TABLE "user_profile" RENAME COLUMN "preventAiLearning" TO "preventAiLarning"`);
+ }
+}
diff --git a/packages/backend/package.json b/packages/backend/package.json
index e0ece2bfe5..4bab4a7341 100644
--- a/packages/backend/package.json
+++ b/packages/backend/package.json
@@ -58,7 +58,7 @@
"@fastify/accepts": "4.1.0",
"@fastify/cookie": "8.3.0",
"@fastify/cors": "8.2.1",
- "@fastify/http-proxy": "9.0.0",
+ "@fastify/http-proxy": "9.1.0",
"@fastify/multipart": "7.6.0",
"@fastify/static": "6.10.1",
"@fastify/view": "7.4.1",
@@ -89,11 +89,11 @@
"escape-regexp": "0.0.1",
"fastify": "4.17.0",
"feed": "4.2.2",
- "file-type": "18.3.0",
+ "file-type": "18.4.0",
"fluent-ffmpeg": "2.1.2",
"form-data": "4.0.0",
"got": "12.6.0",
- "happy-dom": "9.10.2",
+ "happy-dom": "9.16.0",
"hpagent": "1.2.0",
"ioredis": "5.3.2",
"ip-cidr": "3.1.0",
@@ -110,11 +110,11 @@
"ms": "3.0.0-canary.1",
"nested-property": "4.0.0",
"node-fetch": "3.3.1",
- "nodemailer": "6.9.1",
+ "nodemailer": "6.9.2",
"nsfwjs": "2.4.2",
"oauth": "0.10.0",
"os-utils": "0.0.14",
- "otpauth": "9.1.1",
+ "otpauth": "9.1.2",
"parse5": "7.1.2",
"pg": "8.10.0",
"private-ip": "3.0.0",
@@ -149,7 +149,7 @@
"tsc-alias": "1.8.6",
"tsconfig-paths": "4.2.0",
"twemoji-parser": "14.0.0",
- "typeorm": "0.3.15",
+ "typeorm": "0.3.16",
"typescript": "5.0.4",
"ulid": "2.3.0",
"unzipper": "0.10.11",
@@ -178,7 +178,7 @@
"@types/jsonld": "1.5.8",
"@types/jsrsasign": "10.5.8",
"@types/mime-types": "2.1.1",
- "@types/node": "18.16.3",
+ "@types/node": "20.1.3",
"@types/node-fetch": "3.0.3",
"@types/nodemailer": "6.4.7",
"@types/oauth": "0.9.1",
@@ -191,7 +191,7 @@
"@types/redis": "4.0.11",
"@types/rename": "1.0.4",
"@types/sanitize-html": "2.9.0",
- "@types/semver": "7.3.13",
+ "@types/semver": "7.5.0",
"@types/sharp": "0.32.0",
"@types/sinonjs__fake-timers": "8.1.2",
"@types/tinycolor2": "1.4.3",
@@ -202,11 +202,11 @@
"@types/web-push": "3.3.2",
"@types/websocket": "1.0.5",
"@types/ws": "8.5.4",
- "@typescript-eslint/eslint-plugin": "5.59.2",
- "@typescript-eslint/parser": "5.59.2",
- "aws-sdk-client-mock": "^2.1.1",
+ "@typescript-eslint/eslint-plugin": "5.59.5",
+ "@typescript-eslint/parser": "5.59.5",
+ "aws-sdk-client-mock": "2.1.1",
"cross-env": "7.0.3",
- "eslint": "8.39.0",
+ "eslint": "8.40.0",
"eslint-plugin-import": "2.27.5",
"execa": "6.1.0",
"jest": "29.5.0",
diff --git a/packages/backend/src/boot/common.ts b/packages/backend/src/boot/common.ts
index 45ded5495c..3995545d7f 100644
--- a/packages/backend/src/boot/common.ts
+++ b/packages/backend/src/boot/common.ts
@@ -18,10 +18,12 @@ export async function server() {
const serverService = app.get(ServerService);
await serverService.launch();
- app.get(ChartManagementService).start();
- app.get(JanitorService).start();
- app.get(QueueStatsService).start();
- app.get(ServerStatsService).start();
+ if (process.env.NODE_ENV !== 'test') {
+ app.get(ChartManagementService).start();
+ app.get(JanitorService).start();
+ app.get(QueueStatsService).start();
+ app.get(ServerStatsService).start();
+ }
return app;
}
diff --git a/packages/backend/src/config.ts b/packages/backend/src/config.ts
index b41fb603bb..c6e1075389 100644
--- a/packages/backend/src/config.ts
+++ b/packages/backend/src/config.ts
@@ -62,6 +62,7 @@ export type Source = {
port: string;
apiKey: string;
ssl?: boolean;
+ index: string;
};
proxy?: string;
diff --git a/packages/backend/src/core/NoteCreateService.ts b/packages/backend/src/core/NoteCreateService.ts
index 364976e4a7..977c9052c0 100644
--- a/packages/backend/src/core/NoteCreateService.ts
+++ b/packages/backend/src/core/NoteCreateService.ts
@@ -3,6 +3,7 @@ import * as mfm from 'mfm-js';
import { In, DataSource } from 'typeorm';
import * as Redis from 'ioredis';
import { Inject, Injectable, OnApplicationShutdown } from '@nestjs/common';
+import RE2 from 're2';
import { extractMentions } from '@/misc/extract-mentions.js';
import { extractCustomEmojisFromMfm } from '@/misc/extract-custom-emojis-from-mfm.js';
import { extractHashtags } from '@/misc/extract-hashtags.js';
@@ -238,7 +239,8 @@ export class NoteCreateService implements OnApplicationShutdown {
if (data.channel != null) data.localOnly = true;
if (data.visibility === 'public' && data.channel == null) {
- if ((data.text != null) && (await this.metaService.fetch()).sensitiveWords.some(w => data.text!.includes(w))) {
+ const sensitiveWords = (await this.metaService.fetch()).sensitiveWords;
+ if (this.isSensitive(data, sensitiveWords)) {
data.visibility = 'home';
} else if ((await this.roleService.getUserPolicies(user.id)).canPublicNote === false) {
data.visibility = 'home';
@@ -670,6 +672,31 @@ export class NoteCreateService implements OnApplicationShutdown {
// Register to search database
this.index(note);
}
+
+ @bindThis
+ private isSensitive(note: Option, sensitiveWord: string[]): boolean {
+ if (sensitiveWord.length > 0) {
+ const text = note.cw ?? note.text ?? '';
+ if (text === '') return false;
+ const matched = sensitiveWord.some(filter => {
+ // represents RegExp
+ const regexp = filter.match(/^\/(.+)\/(.*)$/);
+ // This should never happen due to input sanitisation.
+ if (!regexp) {
+ const words = filter.split(' ');
+ return words.every(keyword => text.includes(keyword));
+ }
+ try {
+ return new RE2(regexp[1], regexp[2]).test(text);
+ } catch (err) {
+ // This should never happen due to input sanitisation.
+ return false;
+ }
+ });
+ if (matched) return true;
+ }
+ return false;
+ }
@bindThis
private incRenoteCount(renote: Note) {
diff --git a/packages/backend/src/core/QueueModule.ts b/packages/backend/src/core/QueueModule.ts
index d4905a5f88..1d73947776 100644
--- a/packages/backend/src/core/QueueModule.ts
+++ b/packages/backend/src/core/QueueModule.ts
@@ -1,4 +1,5 @@
-import { Module } from '@nestjs/common';
+import { setTimeout } from 'node:timers/promises';
+import { Inject, Module, OnApplicationShutdown } from '@nestjs/common';
import Bull from 'bull';
import { DI } from '@/di-symbols.js';
import type { Config } from '@/config.js';
@@ -41,9 +42,9 @@ export type SystemQueue = Bull.Queue<Record<string, unknown>>;
export type EndedPollNotificationQueue = Bull.Queue<EndedPollNotificationJobData>;
export type DeliverQueue = Bull.Queue<DeliverJobData>;
export type InboxQueue = Bull.Queue<InboxJobData>;
-export type DbQueue = Bull.Queue<DbJobData<keyof DbJobMap>>;
+export type DbQueue = Bull.Queue;
export type RelationshipQueue = Bull.Queue<RelationshipJobData>;
-export type ObjectStorageQueue = Bull.Queue<ObjectStorageJobData>;
+export type ObjectStorageQueue = Bull.Queue;
export type WebhookDeliverQueue = Bull.Queue<WebhookDeliverJobData>;
const $system: Provider = {
@@ -118,4 +119,36 @@ const $webhookDeliver: Provider = {
$webhookDeliver,
],
})
-export class QueueModule {}
+export class QueueModule implements OnApplicationShutdown {
+ constructor(
+ @Inject('queue:system') public systemQueue: SystemQueue,
+ @Inject('queue:endedPollNotification') public endedPollNotificationQueue: EndedPollNotificationQueue,
+ @Inject('queue:deliver') public deliverQueue: DeliverQueue,
+ @Inject('queue:inbox') public inboxQueue: InboxQueue,
+ @Inject('queue:db') public dbQueue: DbQueue,
+ @Inject('queue:relationship') public relationshipQueue: RelationshipQueue,
+ @Inject('queue:objectStorage') public objectStorageQueue: ObjectStorageQueue,
+ @Inject('queue:webhookDeliver') public webhookDeliverQueue: WebhookDeliverQueue,
+ ) {}
+
+ async onApplicationShutdown(signal: string): Promise<void> {
+ if (process.env.NODE_ENV === 'test') {
+ // XXX:
+ // Shutting down the existing connections causes errors on Jest as
+ // Misskey has asynchronous postgres/redis connections that are not
+ // awaited.
+ // Let's wait for some random time for them to finish.
+ await setTimeout(5000);
+ }
+ await Promise.all([
+ this.systemQueue.close(),
+ this.endedPollNotificationQueue.close(),
+ this.deliverQueue.close(),
+ this.inboxQueue.close(),
+ this.dbQueue.close(),
+ this.relationshipQueue.close(),
+ this.objectStorageQueue.close(),
+ this.webhookDeliverQueue.close(),
+ ]);
+ }
+}
diff --git a/packages/backend/src/core/SearchService.ts b/packages/backend/src/core/SearchService.ts
index e68fde088d..9502afcc9b 100644
--- a/packages/backend/src/core/SearchService.ts
+++ b/packages/backend/src/core/SearchService.ts
@@ -68,7 +68,7 @@ export class SearchService {
private idService: IdService,
) {
if (meilisearch) {
- this.meilisearchNoteIndex = meilisearch.index('notes');
+ this.meilisearchNoteIndex = meilisearch.index(`${config.meilisearch!.index}---notes`);
this.meilisearchNoteIndex.updateSettings({
searchableAttributes: [
'text',
@@ -82,6 +82,7 @@ export class SearchService {
'userId',
'userHost',
'channelId',
+ 'tags',
],
typoTolerance: {
enabled: false,
@@ -107,6 +108,7 @@ export class SearchService {
channelId: note.channelId,
cw: note.cw,
text: note.text,
+ tags: note.tags,
}], {
primaryKey: 'id',
});
diff --git a/packages/backend/src/core/entities/UserEntityService.ts b/packages/backend/src/core/entities/UserEntityService.ts
index 453c1473dd..7f61e1d6f3 100644
--- a/packages/backend/src/core/entities/UserEntityService.ts
+++ b/packages/backend/src/core/entities/UserEntityService.ts
@@ -445,6 +445,7 @@ export class UserEntityService implements OnModuleInit {
carefulBot: profile!.carefulBot,
autoAcceptFollowed: profile!.autoAcceptFollowed,
noCrawle: profile!.noCrawle,
+ preventAiLearning: profile!.preventAiLearning,
isExplorable: user.isExplorable,
isDeleted: user.isDeleted,
hideOnlineStatus: user.hideOnlineStatus,
diff --git a/packages/backend/src/models/entities/UserProfile.ts b/packages/backend/src/models/entities/UserProfile.ts
index 60c1c55de5..236ee8f988 100644
--- a/packages/backend/src/models/entities/UserProfile.ts
+++ b/packages/backend/src/models/entities/UserProfile.ts
@@ -76,7 +76,7 @@ export class UserProfile {
public emailNotificationTypes: string[];
@Column('boolean', {
- default: false,
+ default: true,
})
public publicReactions: boolean;
@@ -148,6 +148,11 @@ export class UserProfile {
public noCrawle: boolean;
@Column('boolean', {
+ default: true,
+ })
+ public preventAiLearning: boolean;
+
+ @Column('boolean', {
default: false,
})
public alwaysMarkNsfw: boolean;
diff --git a/packages/backend/src/models/json-schema/user.ts b/packages/backend/src/models/json-schema/user.ts
index 529c1303d1..f9a20ac398 100644
--- a/packages/backend/src/models/json-schema/user.ts
+++ b/packages/backend/src/models/json-schema/user.ts
@@ -302,7 +302,11 @@ export const packedMeDetailedOnlySchema = {
},
noCrawle: {
type: 'boolean',
- nullable: true, optional: false,
+ nullable: false, optional: false,
+ },
+ preventAiLearning: {
+ type: 'boolean',
+ nullable: false, optional: false,
},
isExplorable: {
type: 'boolean',
diff --git a/packages/backend/src/queue/DbQueueProcessorsService.ts b/packages/backend/src/queue/DbQueueProcessorsService.ts
deleted file mode 100644
index df8ac3a301..0000000000
--- a/packages/backend/src/queue/DbQueueProcessorsService.ts
+++ /dev/null
@@ -1,69 +0,0 @@
-import { Inject, Injectable } from '@nestjs/common';
-import { DI } from '@/di-symbols.js';
-import type { Config } from '@/config.js';
-import { bindThis } from '@/decorators.js';
-import { DeleteDriveFilesProcessorService } from './processors/DeleteDriveFilesProcessorService.js';
-import { ExportCustomEmojisProcessorService } from './processors/ExportCustomEmojisProcessorService.js';
-import { ExportNotesProcessorService } from './processors/ExportNotesProcessorService.js';
-import { ExportFollowingProcessorService } from './processors/ExportFollowingProcessorService.js';
-import { ExportMutingProcessorService } from './processors/ExportMutingProcessorService.js';
-import { ExportBlockingProcessorService } from './processors/ExportBlockingProcessorService.js';
-import { ExportUserListsProcessorService } from './processors/ExportUserListsProcessorService.js';
-import { ExportAntennasProcessorService } from './processors/ExportAntennasProcessorService.js';
-import { ImportFollowingProcessorService } from './processors/ImportFollowingProcessorService.js';
-import { ImportMutingProcessorService } from './processors/ImportMutingProcessorService.js';
-import { ImportBlockingProcessorService } from './processors/ImportBlockingProcessorService.js';
-import { ImportUserListsProcessorService } from './processors/ImportUserListsProcessorService.js';
-import { ImportCustomEmojisProcessorService } from './processors/ImportCustomEmojisProcessorService.js';
-import { ImportAntennasProcessorService } from './processors/ImportAntennasProcessorService.js';
-import { DeleteAccountProcessorService } from './processors/DeleteAccountProcessorService.js';
-import { ExportFavoritesProcessorService } from './processors/ExportFavoritesProcessorService.js';
-import type Bull from 'bull';
-
-@Injectable()
-export class DbQueueProcessorsService {
- constructor(
- @Inject(DI.config)
- private config: Config,
-
- private deleteDriveFilesProcessorService: DeleteDriveFilesProcessorService,
- private exportCustomEmojisProcessorService: ExportCustomEmojisProcessorService,
- private exportNotesProcessorService: ExportNotesProcessorService,
- private exportFavoritesProcessorService: ExportFavoritesProcessorService,
- private exportFollowingProcessorService: ExportFollowingProcessorService,
- private exportMutingProcessorService: ExportMutingProcessorService,
- private exportBlockingProcessorService: ExportBlockingProcessorService,
- private exportUserListsProcessorService: ExportUserListsProcessorService,
- private exportAntennasProcessorService: ExportAntennasProcessorService,
- private importFollowingProcessorService: ImportFollowingProcessorService,
- private importMutingProcessorService: ImportMutingProcessorService,
- private importBlockingProcessorService: ImportBlockingProcessorService,
- private importUserListsProcessorService: ImportUserListsProcessorService,
- private importCustomEmojisProcessorService: ImportCustomEmojisProcessorService,
- private importAntennasProcessorService: ImportAntennasProcessorService,
- private deleteAccountProcessorService: DeleteAccountProcessorService,
- ) {
- }
-
- @bindThis
- public start(q: Bull.Queue): void {
- q.process('deleteDriveFiles', (job, done) => this.deleteDriveFilesProcessorService.process(job, done));
- q.process('exportCustomEmojis', (job, done) => this.exportCustomEmojisProcessorService.process(job, done));
- q.process('exportNotes', (job, done) => this.exportNotesProcessorService.process(job, done));
- q.process('exportFavorites', (job, done) => this.exportFavoritesProcessorService.process(job, done));
- q.process('exportFollowing', (job, done) => this.exportFollowingProcessorService.process(job, done));
- q.process('exportMuting', (job, done) => this.exportMutingProcessorService.process(job, done));
- q.process('exportBlocking', (job, done) => this.exportBlockingProcessorService.process(job, done));
- q.process('exportUserLists', (job, done) => this.exportUserListsProcessorService.process(job, done));
- q.process('exportAntennas', (job, done) => this.exportAntennasProcessorService.process(job, done));
- q.process('importFollowing', (job, done) => this.importFollowingProcessorService.process(job, done));
- q.process('importFollowingToDb', (job) => this.importFollowingProcessorService.processDb(job));
- q.process('importMuting', (job, done) => this.importMutingProcessorService.process(job, done));
- q.process('importBlocking', (job, done) => this.importBlockingProcessorService.process(job, done));
- q.process('importBlockingToDb', (job) => this.importBlockingProcessorService.processDb(job));
- q.process('importUserLists', (job, done) => this.importUserListsProcessorService.process(job, done));
- q.process('importCustomEmojis', (job, done) => this.importCustomEmojisProcessorService.process(job, done));
- q.process('importAntennas', (job, done) => this.importAntennasProcessorService.process(job, done));
- q.process('deleteAccount', (job) => this.deleteAccountProcessorService.process(job));
- }
-}
diff --git a/packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts b/packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts
deleted file mode 100644
index 865e47c3f8..0000000000
--- a/packages/backend/src/queue/ObjectStorageQueueProcessorsService.ts
+++ /dev/null
@@ -1,25 +0,0 @@
-import { Inject, Injectable } from '@nestjs/common';
-import { DI } from '@/di-symbols.js';
-import type { Config } from '@/config.js';
-import { CleanRemoteFilesProcessorService } from './processors/CleanRemoteFilesProcessorService.js';
-import { DeleteFileProcessorService } from './processors/DeleteFileProcessorService.js';
-import type Bull from 'bull';
-import { bindThis } from '@/decorators.js';
-
-@Injectable()
-export class ObjectStorageQueueProcessorsService {
- constructor(
- @Inject(DI.config)
- private config: Config,
-
- private deleteFileProcessorService: DeleteFileProcessorService,
- private cleanRemoteFilesProcessorService: CleanRemoteFilesProcessorService,
- ) {
- }
-
- @bindThis
- public start(q: Bull.Queue): void {
- q.process('deleteFile', 16, (job) => this.deleteFileProcessorService.process(job));
- q.process('cleanRemoteFiles', 16, (job, done) => this.cleanRemoteFilesProcessorService.process(job, done));
- }
-}
diff --git a/packages/backend/src/queue/QueueProcessorModule.ts b/packages/backend/src/queue/QueueProcessorModule.ts
index 3d4cc77321..e1c6b93d9b 100644
--- a/packages/backend/src/queue/QueueProcessorModule.ts
+++ b/packages/backend/src/queue/QueueProcessorModule.ts
@@ -3,14 +3,10 @@ import { CoreModule } from '@/core/CoreModule.js';
import { GlobalModule } from '@/GlobalModule.js';
import { QueueLoggerService } from './QueueLoggerService.js';
import { QueueProcessorService } from './QueueProcessorService.js';
-import { DbQueueProcessorsService } from './DbQueueProcessorsService.js';
-import { RelationshipQueueProcessorsService } from './RelationshipQueueProcessorsService.js';
-import { ObjectStorageQueueProcessorsService } from './ObjectStorageQueueProcessorsService.js';
import { DeliverProcessorService } from './processors/DeliverProcessorService.js';
import { EndedPollNotificationProcessorService } from './processors/EndedPollNotificationProcessorService.js';
import { InboxProcessorService } from './processors/InboxProcessorService.js';
import { WebhookDeliverProcessorService } from './processors/WebhookDeliverProcessorService.js';
-import { SystemQueueProcessorsService } from './SystemQueueProcessorsService.js';
import { CheckExpiredMutingsProcessorService } from './processors/CheckExpiredMutingsProcessorService.js';
import { CleanChartsProcessorService } from './processors/CleanChartsProcessorService.js';
import { CleanProcessorService } from './processors/CleanProcessorService.js';
@@ -68,10 +64,6 @@ import { RelationshipProcessorService } from './processors/RelationshipProcessor
DeleteFileProcessorService,
CleanRemoteFilesProcessorService,
RelationshipProcessorService,
- SystemQueueProcessorsService,
- ObjectStorageQueueProcessorsService,
- DbQueueProcessorsService,
- RelationshipQueueProcessorsService,
WebhookDeliverProcessorService,
EndedPollNotificationProcessorService,
DeliverProcessorService,
diff --git a/packages/backend/src/queue/QueueProcessorService.ts b/packages/backend/src/queue/QueueProcessorService.ts
index 706110f6fc..dc025f9889 100644
--- a/packages/backend/src/queue/QueueProcessorService.ts
+++ b/packages/backend/src/queue/QueueProcessorService.ts
@@ -5,15 +5,36 @@ import type Logger from '@/logger.js';
import { QueueService } from '@/core/QueueService.js';
import { bindThis } from '@/decorators.js';
import { getJobInfo } from './get-job-info.js';
-import { SystemQueueProcessorsService } from './SystemQueueProcessorsService.js';
-import { ObjectStorageQueueProcessorsService } from './ObjectStorageQueueProcessorsService.js';
-import { DbQueueProcessorsService } from './DbQueueProcessorsService.js';
import { WebhookDeliverProcessorService } from './processors/WebhookDeliverProcessorService.js';
import { EndedPollNotificationProcessorService } from './processors/EndedPollNotificationProcessorService.js';
import { DeliverProcessorService } from './processors/DeliverProcessorService.js';
import { InboxProcessorService } from './processors/InboxProcessorService.js';
+import { DeleteDriveFilesProcessorService } from './processors/DeleteDriveFilesProcessorService.js';
+import { ExportCustomEmojisProcessorService } from './processors/ExportCustomEmojisProcessorService.js';
+import { ExportNotesProcessorService } from './processors/ExportNotesProcessorService.js';
+import { ExportFollowingProcessorService } from './processors/ExportFollowingProcessorService.js';
+import { ExportMutingProcessorService } from './processors/ExportMutingProcessorService.js';
+import { ExportBlockingProcessorService } from './processors/ExportBlockingProcessorService.js';
+import { ExportUserListsProcessorService } from './processors/ExportUserListsProcessorService.js';
+import { ExportAntennasProcessorService } from './processors/ExportAntennasProcessorService.js';
+import { ImportFollowingProcessorService } from './processors/ImportFollowingProcessorService.js';
+import { ImportMutingProcessorService } from './processors/ImportMutingProcessorService.js';
+import { ImportBlockingProcessorService } from './processors/ImportBlockingProcessorService.js';
+import { ImportUserListsProcessorService } from './processors/ImportUserListsProcessorService.js';
+import { ImportCustomEmojisProcessorService } from './processors/ImportCustomEmojisProcessorService.js';
+import { ImportAntennasProcessorService } from './processors/ImportAntennasProcessorService.js';
+import { DeleteAccountProcessorService } from './processors/DeleteAccountProcessorService.js';
+import { ExportFavoritesProcessorService } from './processors/ExportFavoritesProcessorService.js';
+import { CleanRemoteFilesProcessorService } from './processors/CleanRemoteFilesProcessorService.js';
+import { DeleteFileProcessorService } from './processors/DeleteFileProcessorService.js';
+import { RelationshipProcessorService } from './processors/RelationshipProcessorService.js';
+import { TickChartsProcessorService } from './processors/TickChartsProcessorService.js';
+import { ResyncChartsProcessorService } from './processors/ResyncChartsProcessorService.js';
+import { CleanChartsProcessorService } from './processors/CleanChartsProcessorService.js';
+import { CheckExpiredMutingsProcessorService } from './processors/CheckExpiredMutingsProcessorService.js';
+import { CleanProcessorService } from './processors/CleanProcessorService.js';
+import { AggregateRetentionProcessorService } from './processors/AggregateRetentionProcessorService.js';
import { QueueLoggerService } from './QueueLoggerService.js';
-import { RelationshipQueueProcessorsService } from './RelationshipQueueProcessorsService.js';
@Injectable()
export class QueueProcessorService {
@@ -25,14 +46,35 @@ export class QueueProcessorService {
private queueLoggerService: QueueLoggerService,
private queueService: QueueService,
- private systemQueueProcessorsService: SystemQueueProcessorsService,
- private objectStorageQueueProcessorsService: ObjectStorageQueueProcessorsService,
- private dbQueueProcessorsService: DbQueueProcessorsService,
- private relationshipQueueProcessorsService: RelationshipQueueProcessorsService,
private webhookDeliverProcessorService: WebhookDeliverProcessorService,
private endedPollNotificationProcessorService: EndedPollNotificationProcessorService,
private deliverProcessorService: DeliverProcessorService,
private inboxProcessorService: InboxProcessorService,
+ private deleteDriveFilesProcessorService: DeleteDriveFilesProcessorService,
+ private exportCustomEmojisProcessorService: ExportCustomEmojisProcessorService,
+ private exportNotesProcessorService: ExportNotesProcessorService,
+ private exportFavoritesProcessorService: ExportFavoritesProcessorService,
+ private exportFollowingProcessorService: ExportFollowingProcessorService,
+ private exportMutingProcessorService: ExportMutingProcessorService,
+ private exportBlockingProcessorService: ExportBlockingProcessorService,
+ private exportUserListsProcessorService: ExportUserListsProcessorService,
+ private exportAntennasProcessorService: ExportAntennasProcessorService,
+ private importFollowingProcessorService: ImportFollowingProcessorService,
+ private importMutingProcessorService: ImportMutingProcessorService,
+ private importBlockingProcessorService: ImportBlockingProcessorService,
+ private importUserListsProcessorService: ImportUserListsProcessorService,
+ private importCustomEmojisProcessorService: ImportCustomEmojisProcessorService,
+ private importAntennasProcessorService: ImportAntennasProcessorService,
+ private deleteAccountProcessorService: DeleteAccountProcessorService,
+ private deleteFileProcessorService: DeleteFileProcessorService,
+ private cleanRemoteFilesProcessorService: CleanRemoteFilesProcessorService,
+ private relationshipProcessorService: RelationshipProcessorService,
+ private tickChartsProcessorService: TickChartsProcessorService,
+ private resyncChartsProcessorService: ResyncChartsProcessorService,
+ private cleanChartsProcessorService: CleanChartsProcessorService,
+ private aggregateRetentionProcessorService: AggregateRetentionProcessorService,
+ private checkExpiredMutingsProcessorService: CheckExpiredMutingsProcessorService,
+ private cleanProcessorService: CleanProcessorService,
) {
this.logger = this.queueLoggerService.logger;
}
@@ -119,14 +161,6 @@ export class QueueProcessorService {
.on('error', (job: any, err: Error) => webhookLogger.error(`error ${err}`, { job, e: renderError(err) }))
.on('stalled', (job) => webhookLogger.warn(`stalled ${getJobInfo(job)} to=${job.data.to}`));
- this.queueService.deliverQueue.process(this.config.deliverJobConcurrency ?? 128, (job) => this.deliverProcessorService.process(job));
- this.queueService.inboxQueue.process(this.config.inboxJobConcurrency ?? 16, (job) => this.inboxProcessorService.process(job));
- this.queueService.endedPollNotificationQueue.process((job, done) => this.endedPollNotificationProcessorService.process(job, done));
- this.queueService.webhookDeliverQueue.process(64, (job) => this.webhookDeliverProcessorService.process(job));
- this.dbQueueProcessorsService.start(this.queueService.dbQueue);
- this.relationshipQueueProcessorsService.start(this.queueService.relationshipQueue);
- this.objectStorageQueueProcessorsService.start(this.queueService.objectStorageQueue);
-
this.queueService.systemQueue.add('tickCharts', {
}, {
repeat: { cron: '55 * * * *' },
@@ -163,6 +197,46 @@ export class QueueProcessorService {
removeOnComplete: true,
});
- this.systemQueueProcessorsService.start(this.queueService.systemQueue);
+ this.queueService.deliverQueue.process(this.config.deliverJobConcurrency ?? 128, (job) => this.deliverProcessorService.process(job));
+ this.queueService.inboxQueue.process(this.config.inboxJobConcurrency ?? 16, (job) => this.inboxProcessorService.process(job));
+ this.queueService.endedPollNotificationQueue.process((job, done) => this.endedPollNotificationProcessorService.process(job, done));
+ this.queueService.webhookDeliverQueue.process(64, (job) => this.webhookDeliverProcessorService.process(job));
+
+ this.queueService.dbQueue.process('deleteDriveFiles', (job, done) => this.deleteDriveFilesProcessorService.process(job, done));
+ this.queueService.dbQueue.process('exportCustomEmojis', (job, done) => this.exportCustomEmojisProcessorService.process(job, done));
+ this.queueService.dbQueue.process('exportNotes', (job, done) => this.exportNotesProcessorService.process(job, done));
+ this.queueService.dbQueue.process('exportFavorites', (job, done) => this.exportFavoritesProcessorService.process(job, done));
+ this.queueService.dbQueue.process('exportFollowing', (job, done) => this.exportFollowingProcessorService.process(job, done));
+ this.queueService.dbQueue.process('exportMuting', (job, done) => this.exportMutingProcessorService.process(job, done));
+ this.queueService.dbQueue.process('exportBlocking', (job, done) => this.exportBlockingProcessorService.process(job, done));
+ this.queueService.dbQueue.process('exportUserLists', (job, done) => this.exportUserListsProcessorService.process(job, done));
+ this.queueService.dbQueue.process('exportAntennas', (job, done) => this.exportAntennasProcessorService.process(job, done));
+ this.queueService.dbQueue.process('importFollowing', (job, done) => this.importFollowingProcessorService.process(job, done));
+ this.queueService.dbQueue.process('importFollowingToDb', (job) => this.importFollowingProcessorService.processDb(job));
+ this.queueService.dbQueue.process('importMuting', (job, done) => this.importMutingProcessorService.process(job, done));
+ this.queueService.dbQueue.process('importBlocking', (job, done) => this.importBlockingProcessorService.process(job, done));
+ this.queueService.dbQueue.process('importBlockingToDb', (job) => this.importBlockingProcessorService.processDb(job));
+ this.queueService.dbQueue.process('importUserLists', (job, done) => this.importUserListsProcessorService.process(job, done));
+ this.queueService.dbQueue.process('importCustomEmojis', (job, done) => this.importCustomEmojisProcessorService.process(job, done));
+ this.queueService.dbQueue.process('importAntennas', (job, done) => this.importAntennasProcessorService.process(job, done));
+ this.queueService.dbQueue.process('deleteAccount', (job) => this.deleteAccountProcessorService.process(job));
+
+ this.queueService.objectStorageQueue.process('deleteFile', 16, (job) => this.deleteFileProcessorService.process(job));
+ this.queueService.objectStorageQueue.process('cleanRemoteFiles', 16, (job, done) => this.cleanRemoteFilesProcessorService.process(job, done));
+
+ {
+ const maxJobs = this.config.relashionshipJobConcurrency ?? 16;
+ this.queueService.relationshipQueue.process('follow', maxJobs, (job) => this.relationshipProcessorService.processFollow(job));
+ this.queueService.relationshipQueue.process('unfollow', maxJobs, (job) => this.relationshipProcessorService.processUnfollow(job));
+ this.queueService.relationshipQueue.process('block', maxJobs, (job) => this.relationshipProcessorService.processBlock(job));
+ this.queueService.relationshipQueue.process('unblock', maxJobs, (job) => this.relationshipProcessorService.processUnblock(job));
+ }
+
+ this.queueService.systemQueue.process('tickCharts', (job, done) => this.tickChartsProcessorService.process(job, done));
+ this.queueService.systemQueue.process('resyncCharts', (job, done) => this.resyncChartsProcessorService.process(job, done));
+ this.queueService.systemQueue.process('cleanCharts', (job, done) => this.cleanChartsProcessorService.process(job, done));
+ this.queueService.systemQueue.process('aggregateRetention', (job, done) => this.aggregateRetentionProcessorService.process(job, done));
+ this.queueService.systemQueue.process('checkExpiredMutings', (job, done) => this.checkExpiredMutingsProcessorService.process(job, done));
+ this.queueService.systemQueue.process('clean', (job, done) => this.cleanProcessorService.process(job, done));
}
}
diff --git a/packages/backend/src/queue/RelationshipQueueProcessorsService.ts b/packages/backend/src/queue/RelationshipQueueProcessorsService.ts
deleted file mode 100644
index 736b4fa80d..0000000000
--- a/packages/backend/src/queue/RelationshipQueueProcessorsService.ts
+++ /dev/null
@@ -1,26 +0,0 @@
-import { Inject, Injectable } from '@nestjs/common';
-import { bindThis } from '@/decorators.js';
-import { RelationshipProcessorService } from './processors/RelationshipProcessorService.js';
-import type Bull from 'bull';
-import { DI } from '@/di-symbols.js';
-import type { Config } from '@/config.js';
-
-@Injectable()
-export class RelationshipQueueProcessorsService {
- constructor(
- @Inject(DI.config)
- private config: Config,
-
- private relationshipProcessorService: RelationshipProcessorService,
- ) {
- }
-
- @bindThis
- public start(q: Bull.Queue): void {
- const maxJobs = this.config.relashionshipJobConcurrency ?? 16;
- q.process('follow', maxJobs, (job) => this.relationshipProcessorService.processFollow(job));
- q.process('unfollow', maxJobs, (job) => this.relationshipProcessorService.processUnfollow(job));
- q.process('block', maxJobs, (job) => this.relationshipProcessorService.processBlock(job));
- q.process('unblock', maxJobs, (job) => this.relationshipProcessorService.processUnblock(job));
- }
-}
diff --git a/packages/backend/src/queue/SystemQueueProcessorsService.ts b/packages/backend/src/queue/SystemQueueProcessorsService.ts
deleted file mode 100644
index 7fb0da4b10..0000000000
--- a/packages/backend/src/queue/SystemQueueProcessorsService.ts
+++ /dev/null
@@ -1,37 +0,0 @@
-import { Inject, Injectable } from '@nestjs/common';
-import { DI } from '@/di-symbols.js';
-import type { Config } from '@/config.js';
-import { bindThis } from '@/decorators.js';
-import { TickChartsProcessorService } from './processors/TickChartsProcessorService.js';
-import { ResyncChartsProcessorService } from './processors/ResyncChartsProcessorService.js';
-import { CleanChartsProcessorService } from './processors/CleanChartsProcessorService.js';
-import { CheckExpiredMutingsProcessorService } from './processors/CheckExpiredMutingsProcessorService.js';
-import { CleanProcessorService } from './processors/CleanProcessorService.js';
-import { AggregateRetentionProcessorService } from './processors/AggregateRetentionProcessorService.js';
-import type Bull from 'bull';
-
-@Injectable()
-export class SystemQueueProcessorsService {
- constructor(
- @Inject(DI.config)
- private config: Config,
-
- private tickChartsProcessorService: TickChartsProcessorService,
- private resyncChartsProcessorService: ResyncChartsProcessorService,
- private cleanChartsProcessorService: CleanChartsProcessorService,
- private aggregateRetentionProcessorService: AggregateRetentionProcessorService,
- private checkExpiredMutingsProcessorService: CheckExpiredMutingsProcessorService,
- private cleanProcessorService: CleanProcessorService,
- ) {
- }
-
- @bindThis
- public start(q: Bull.Queue): void {
- q.process('tickCharts', (job, done) => this.tickChartsProcessorService.process(job, done));
- q.process('resyncCharts', (job, done) => this.resyncChartsProcessorService.process(job, done));
- q.process('cleanCharts', (job, done) => this.cleanChartsProcessorService.process(job, done));
- q.process('aggregateRetention', (job, done) => this.aggregateRetentionProcessorService.process(job, done));
- q.process('checkExpiredMutings', (job, done) => this.checkExpiredMutingsProcessorService.process(job, done));
- q.process('clean', (job, done) => this.cleanProcessorService.process(job, done));
- }
-}
diff --git a/packages/backend/src/server/api/endpoints/admin/show-user.ts b/packages/backend/src/server/api/endpoints/admin/show-user.ts
index 42229c8f23..f49d2a0966 100644
--- a/packages/backend/src/server/api/endpoints/admin/show-user.ts
+++ b/packages/backend/src/server/api/endpoints/admin/show-user.ts
@@ -68,6 +68,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
emailVerified: profile.emailVerified,
autoAcceptFollowed: profile.autoAcceptFollowed,
noCrawle: profile.noCrawle,
+ preventAiLearning: profile.preventAiLearning,
alwaysMarkNsfw: profile.alwaysMarkNsfw,
autoSensitive: profile.autoSensitive,
carefulBot: profile.carefulBot,
diff --git a/packages/backend/src/server/api/endpoints/i/update.ts b/packages/backend/src/server/api/endpoints/i/update.ts
index 6c66300bb7..74be00a8b8 100644
--- a/packages/backend/src/server/api/endpoints/i/update.ts
+++ b/packages/backend/src/server/api/endpoints/i/update.ts
@@ -98,7 +98,7 @@ export const meta = {
message: 'This feature is restricted by your role.',
code: 'RESTRICTED_BY_ROLE',
id: '8feff0ba-5ab5-585b-31f4-4df816663fad',
- }
+ },
},
res: {
@@ -138,6 +138,7 @@ export const paramDef = {
carefulBot: { type: 'boolean' },
autoAcceptFollowed: { type: 'boolean' },
noCrawle: { type: 'boolean' },
+ preventAiLearning: { type: 'boolean' },
isBot: { type: 'boolean' },
isCat: { type: 'boolean' },
showTimelineReplies: { type: 'boolean' },
@@ -242,6 +243,7 @@ export default class extends Endpoint<typeof meta, typeof paramDef> {
if (typeof ps.carefulBot === 'boolean') profileUpdates.carefulBot = ps.carefulBot;
if (typeof ps.autoAcceptFollowed === 'boolean') profileUpdates.autoAcceptFollowed = ps.autoAcceptFollowed;
if (typeof ps.noCrawle === 'boolean') profileUpdates.noCrawle = ps.noCrawle;
+ if (typeof ps.preventAiLearning === 'boolean') profileUpdates.preventAiLearning = ps.preventAiLearning;
if (typeof ps.isCat === 'boolean') updates.isCat = ps.isCat;
if (typeof ps.injectFeaturedNote === 'boolean') profileUpdates.injectFeaturedNote = ps.injectFeaturedNote;
if (typeof ps.receiveAnnouncementEmail === 'boolean') profileUpdates.receiveAnnouncementEmail = ps.receiveAnnouncementEmail;
diff --git a/packages/backend/src/server/web/ClientServerService.ts b/packages/backend/src/server/web/ClientServerService.ts
index 50b23a0682..f780280c1f 100644
--- a/packages/backend/src/server/web/ClientServerService.ts
+++ b/packages/backend/src/server/web/ClientServerService.ts
@@ -35,8 +35,8 @@ import { RoleService } from '@/core/RoleService.js';
import manifest from './manifest.json' assert { type: 'json' };
import { FeedService } from './FeedService.js';
import { UrlPreviewService } from './UrlPreviewService.js';
-import type { FastifyInstance, FastifyPluginOptions, FastifyReply } from 'fastify';
import { ClientLoggerService } from './ClientLoggerService.js';
+import type { FastifyInstance, FastifyPluginOptions, FastifyReply } from 'fastify';
const _filename = fileURLToPath(import.meta.url);
const _dirname = dirname(_filename);
@@ -423,6 +423,10 @@ export class ClientServerService {
: [];
reply.header('Cache-Control', 'public, max-age=15');
+ if (profile.preventAiLearning) {
+ reply.header('X-Robots-Tag', 'noimageai');
+ reply.header('X-Robots-Tag', 'noai');
+ }
return await reply.view('user', {
user, profile, me,
avatarUrl: user.avatarUrl ?? this.userEntityService.getIdenticonUrl(user),
@@ -467,6 +471,10 @@ export class ClientServerService {
const profile = await this.userProfilesRepository.findOneByOrFail({ userId: note.userId });
const meta = await this.metaService.fetch();
reply.header('Cache-Control', 'public, max-age=15');
+ if (profile.preventAiLearning) {
+ reply.header('X-Robots-Tag', 'noimageai');
+ reply.header('X-Robots-Tag', 'noai');
+ }
return await reply.view('note', {
note: _note,
profile,
@@ -506,6 +514,10 @@ export class ClientServerService {
} else {
reply.header('Cache-Control', 'private, max-age=0, must-revalidate');
}
+ if (profile.preventAiLearning) {
+ reply.header('X-Robots-Tag', 'noimageai');
+ reply.header('X-Robots-Tag', 'noai');
+ }
return await reply.view('page', {
page: _page,
profile,
@@ -530,6 +542,10 @@ export class ClientServerService {
const profile = await this.userProfilesRepository.findOneByOrFail({ userId: flash.userId });
const meta = await this.metaService.fetch();
reply.header('Cache-Control', 'public, max-age=15');
+ if (profile.preventAiLearning) {
+ reply.header('X-Robots-Tag', 'noimageai');
+ reply.header('X-Robots-Tag', 'noai');
+ }
return await reply.view('flash', {
flash: _flash,
profile,
@@ -554,6 +570,10 @@ export class ClientServerService {
const profile = await this.userProfilesRepository.findOneByOrFail({ userId: clip.userId });
const meta = await this.metaService.fetch();
reply.header('Cache-Control', 'public, max-age=15');
+ if (profile.preventAiLearning) {
+ reply.header('X-Robots-Tag', 'noimageai');
+ reply.header('X-Robots-Tag', 'noai');
+ }
return await reply.view('clip', {
clip: _clip,
profile,
@@ -576,6 +596,10 @@ export class ClientServerService {
const profile = await this.userProfilesRepository.findOneByOrFail({ userId: post.userId });
const meta = await this.metaService.fetch();
reply.header('Cache-Control', 'public, max-age=15');
+ if (profile.preventAiLearning) {
+ reply.header('X-Robots-Tag', 'noimageai');
+ reply.header('X-Robots-Tag', 'noai');
+ }
return await reply.view('gallery-post', {
post: _post,
profile,
diff --git a/packages/backend/src/server/web/views/clip.pug b/packages/backend/src/server/web/views/clip.pug
index 4c692bf59b..74dc62f1e7 100644
--- a/packages/backend/src/server/web/views/clip.pug
+++ b/packages/backend/src/server/web/views/clip.pug
@@ -21,6 +21,9 @@ block og
block meta
if profile.noCrawle
meta(name='robots' content='noindex')
+ if profile.preventAiLearning
+ meta(name='robots' content='noimageai')
+ meta(name='robots' content='noai')
meta(name='misskey:user-username' content=user.username)
meta(name='misskey:user-id' content=user.id)
diff --git a/packages/backend/src/server/web/views/flash.pug b/packages/backend/src/server/web/views/flash.pug
index 5166855ea2..5594fcdfbf 100644
--- a/packages/backend/src/server/web/views/flash.pug
+++ b/packages/backend/src/server/web/views/flash.pug
@@ -21,6 +21,9 @@ block og
block meta
if profile.noCrawle
meta(name='robots' content='noindex')
+ if profile.preventAiLearning
+ meta(name='robots' content='noimageai')
+ meta(name='robots' content='noai')
meta(name='misskey:user-username' content=user.username)
meta(name='misskey:user-id' content=user.id)
diff --git a/packages/backend/src/server/web/views/gallery-post.pug b/packages/backend/src/server/web/views/gallery-post.pug
index ca0663a481..10f2d269bc 100644
--- a/packages/backend/src/server/web/views/gallery-post.pug
+++ b/packages/backend/src/server/web/views/gallery-post.pug
@@ -21,6 +21,9 @@ block og
block meta
if user.host || profile.noCrawle
meta(name='robots' content='noindex')
+ if profile.preventAiLearning
+ meta(name='robots' content='noimageai')
+ meta(name='robots' content='noai')
meta(name='misskey:user-username' content=user.username)
meta(name='misskey:user-id' content=user.id)
diff --git a/packages/backend/src/server/web/views/note.pug b/packages/backend/src/server/web/views/note.pug
index 65696ea138..badfcccd61 100644
--- a/packages/backend/src/server/web/views/note.pug
+++ b/packages/backend/src/server/web/views/note.pug
@@ -22,6 +22,9 @@ block og
block meta
if user.host || isRenote || profile.noCrawle
meta(name='robots' content='noindex')
+ if profile.preventAiLearning
+ meta(name='robots' content='noimageai')
+ meta(name='robots' content='noai')
meta(name='misskey:user-username' content=user.username)
meta(name='misskey:user-id' content=user.id)
diff --git a/packages/backend/src/server/web/views/page.pug b/packages/backend/src/server/web/views/page.pug
index 4219e76a52..ddffc361c8 100644
--- a/packages/backend/src/server/web/views/page.pug
+++ b/packages/backend/src/server/web/views/page.pug
@@ -21,6 +21,9 @@ block og
block meta
if profile.noCrawle
meta(name='robots' content='noindex')
+ if profile.preventAiLearning
+ meta(name='robots' content='noimageai')
+ meta(name='robots' content='noai')
meta(name='misskey:user-username' content=user.username)
meta(name='misskey:user-id' content=user.id)
diff --git a/packages/backend/src/server/web/views/user.pug b/packages/backend/src/server/web/views/user.pug
index 119993fdb5..f4c83aa89d 100644
--- a/packages/backend/src/server/web/views/user.pug
+++ b/packages/backend/src/server/web/views/user.pug
@@ -20,6 +20,9 @@ block og
block meta
if user.host || profile.noCrawle
meta(name='robots' content='noindex')
+ if profile.preventAiLearning
+ meta(name='robots' content='noimageai')
+ meta(name='robots' content='noai')
meta(name='misskey:user-username' content=user.username)
meta(name='misskey:user-id' content=user.id)
diff --git a/packages/backend/test/e2e/note.ts b/packages/backend/test/e2e/note.ts
index 9c851a5dd6..d2eb8f01d7 100644
--- a/packages/backend/test/e2e/note.ts
+++ b/packages/backend/test/e2e/note.ts
@@ -541,6 +541,61 @@ describe('Note', () => {
assert.strictEqual(res.status, 400);
});
+
+ test('センシティブな投稿はhomeになる (単語指定)', async () => {
+ const sensitive = await api('admin/update-meta', {
+ sensitiveWords: [
+ "test",
+ ]
+ }, alice);
+
+ assert.strictEqual(sensitive.status, 204);
+
+ await new Promise(x => setTimeout(x, 2));
+
+ const note1 = await api('/notes/create', {
+ text: 'hogetesthuge',
+ }, alice);
+
+ assert.strictEqual(note1.status, 200);
+ assert.strictEqual(note1.body.createdNote.visibility, 'home');
+
+ });
+
+ test('センシティブな投稿はhomeになる (正規表現)', async () => {
+ const sensitive = await api('admin/update-meta', {
+ sensitiveWords: [
+ "/Test/i",
+ ]
+ }, alice);
+
+ assert.strictEqual(sensitive.status, 204);
+
+ const note2 = await api('/notes/create', {
+ text: 'hogetesthuge',
+ }, alice);
+
+ assert.strictEqual(note2.status, 200);
+ assert.strictEqual(note2.body.createdNote.visibility, 'home');
+ });
+
+ test('センシティブな投稿はhomeになる (スペースアンド)', async () => {
+ const sensitive = await api('admin/update-meta', {
+ sensitiveWords: [
+ "Test hoge"
+ ]
+ }, alice);
+
+ assert.strictEqual(sensitive.status, 204);
+
+ const note2 = await api('/notes/create', {
+ text: 'hogeTesthuge',
+ }, alice);
+
+ assert.strictEqual(note2.status, 200);
+ assert.strictEqual(note2.body.createdNote.visibility, 'home');
+
+ });
});
describe('notes/delete', () => {
diff --git a/packages/backend/test/e2e/users.ts b/packages/backend/test/e2e/users.ts
index 51537dda16..a7f8210c8e 100644
--- a/packages/backend/test/e2e/users.ts
+++ b/packages/backend/test/e2e/users.ts
@@ -145,6 +145,7 @@ describe('ユーザー', () => {
carefulBot: user.carefulBot,
autoAcceptFollowed: user.autoAcceptFollowed,
noCrawle: user.noCrawle,
+ preventAiLearning: user.preventAiLearning,
isExplorable: user.isExplorable,
isDeleted: user.isDeleted,
hideOnlineStatus: user.hideOnlineStatus,
@@ -370,7 +371,7 @@ describe('ユーザー', () => {
assert.deepStrictEqual(response.pinnedNotes, []);
assert.strictEqual(response.pinnedPageId, null);
assert.strictEqual(response.pinnedPage, null);
- assert.strictEqual(response.publicReactions, false);
+ assert.strictEqual(response.publicReactions, true);
assert.strictEqual(response.ffVisibility, 'public');
assert.strictEqual(response.twoFactorEnabled, false);
assert.strictEqual(response.usePasswordLessLogin, false);
@@ -390,6 +391,7 @@ describe('ユーザー', () => {
assert.strictEqual(response.carefulBot, false);
assert.strictEqual(response.autoAcceptFollowed, true);
assert.strictEqual(response.noCrawle, false);
+ assert.strictEqual(response.preventAiLearning, true);
assert.strictEqual(response.isExplorable, true);
assert.strictEqual(response.isDeleted, false);
assert.strictEqual(response.hideOnlineStatus, false);
@@ -462,6 +464,8 @@ describe('ユーザー', () => {
{ parameters: (): object => ({ autoAcceptFollowed: false }) },
{ parameters: (): object => ({ noCrawle: true }) },
{ parameters: (): object => ({ noCrawle: false }) },
+ { parameters: (): object => ({ preventAiLearning: false }) },
+ { parameters: (): object => ({ preventAiLearning: true }) },
{ parameters: (): object => ({ isBot: true }) },
{ parameters: (): object => ({ isBot: false }) },
{ parameters: (): object => ({ isCat: true }) },
diff --git a/packages/frontend/.storybook/changes.ts b/packages/frontend/.storybook/changes.ts
index 755bec6869..fc0f0c286b 100644
--- a/packages/frontend/.storybook/changes.ts
+++ b/packages/frontend/.storybook/changes.ts
@@ -45,7 +45,7 @@ fs.readFile(
micromatch(Array.from(modules), [
'../../assets/**',
'../../fluent-emojis/**',
- '../../locales/**',
+ '../../locales/ja-JP.yml',
'../../misskey-assets/**',
'assets/**',
'public/**',
diff --git a/packages/frontend/package.json b/packages/frontend/package.json
index 7646e152f9..5b4004d8e3 100644
--- a/packages/frontend/package.json
+++ b/packages/frontend/package.json
@@ -17,13 +17,13 @@
"@discordapp/twemoji": "14.1.2",
"@rollup/plugin-alias": "5.0.0",
"@rollup/plugin-json": "6.0.0",
- "@rollup/plugin-replace": "^5.0.2",
+ "@rollup/plugin-replace": "5.0.2",
"@rollup/pluginutils": "5.0.2",
"@syuilo/aiscript": "0.13.2",
"@tabler/icons-webfont": "2.17.0",
- "@vitejs/plugin-vue": "4.2.1",
- "@vue-macros/reactivity-transform": "^0.3.5",
- "@vue/compiler-sfc": "3.2.47",
+ "@vitejs/plugin-vue": "4.2.2",
+ "@vue-macros/reactivity-transform": "0.3.6",
+ "@vue/compiler-sfc": "3.3.1",
"autosize": "5.0.2",
"blurhash": "2.0.5",
"broadcast-channel": "4.20.2",
@@ -34,14 +34,14 @@
"chartjs-chart-matrix": "2.0.1",
"chartjs-plugin-gradient": "0.6.1",
"chartjs-plugin-zoom": "2.0.1",
- "chromatic": "6.17.3",
- "compare-versions": "5.0.1",
+ "chromatic": "6.17.4",
+ "compare-versions": "5.0.3",
"cropperjs": "2.0.0-beta.2",
"date-fns": "2.30.0",
"escape-regexp": "0.0.1",
"eventemitter3": "5.0.1",
"gsap": "3.11.5",
- "idb-keyval": "6.2.0",
+ "idb-keyval": "6.2.1",
"insert-text-at-cursor": "0.3.0",
"is-file-animated": "1.0.2",
"json5": "2.2.3",
@@ -53,7 +53,7 @@
"punycode": "2.3.0",
"querystring": "0.2.1",
"rndstr": "1.0.0",
- "rollup": "3.21.3",
+ "rollup": "3.21.6",
"s-age": "1.1.2",
"sanitize-html": "2.10.0",
"sass": "1.62.1",
@@ -70,40 +70,40 @@
"typescript": "5.0.4",
"uuid": "9.0.0",
"vanilla-tilt": "1.8.0",
- "vite": "4.3.4",
- "vue": "3.2.47",
+ "vite": "4.3.5",
+ "vue": "3.3.1",
"vue-plyr": "7.0.0",
"vue-prism-editor": "2.0.0-alpha.2",
"vuedraggable": "next"
},
"devDependencies": {
- "@storybook/addon-actions": "7.0.7",
- "@storybook/addon-essentials": "7.0.7",
- "@storybook/addon-interactions": "7.0.7",
- "@storybook/addon-links": "7.0.7",
- "@storybook/addon-storysource": "7.0.7",
- "@storybook/addons": "7.0.7",
- "@storybook/blocks": "7.0.7",
- "@storybook/core-events": "7.0.7",
+ "@storybook/addon-actions": "7.0.10",
+ "@storybook/addon-essentials": "7.0.10",
+ "@storybook/addon-interactions": "7.0.10",
+ "@storybook/addon-links": "7.0.10",
+ "@storybook/addon-storysource": "7.0.10",
+ "@storybook/addons": "7.0.10",
+ "@storybook/blocks": "7.0.10",
+ "@storybook/core-events": "7.0.10",
"@storybook/jest": "0.1.0",
- "@storybook/manager-api": "7.0.7",
- "@storybook/preview-api": "7.0.7",
- "@storybook/react": "7.0.7",
- "@storybook/react-vite": "7.0.7",
+ "@storybook/manager-api": "7.0.10",
+ "@storybook/preview-api": "7.0.10",
+ "@storybook/react": "7.0.10",
+ "@storybook/react-vite": "7.0.10",
"@storybook/testing-library": "0.1.0",
- "@storybook/theming": "7.0.7",
- "@storybook/types": "7.0.7",
- "@storybook/vue3": "7.0.7",
- "@storybook/vue3-vite": "7.0.7",
+ "@storybook/theming": "7.0.10",
+ "@storybook/types": "7.0.10",
+ "@storybook/vue3": "7.0.10",
+ "@storybook/vue3-vite": "7.0.10",
"@testing-library/jest-dom": "5.16.5",
"@testing-library/vue": "7.0.0",
"@types/escape-regexp": "0.0.1",
"@types/estree": "1.0.1",
"@types/gulp": "4.0.10",
- "@types/gulp-rename": "2.0.1",
- "@types/matter-js": "0.18.2",
+ "@types/gulp-rename": "2.0.2",
+ "@types/matter-js": "0.18.3",
"@types/micromatch": "4.0.2",
- "@types/node": "18.16.3",
+ "@types/node": "20.1.3",
"@types/punycode": "2.1.0",
"@types/sanitize-html": "2.9.0",
"@types/seedrandom": "3.0.5",
@@ -113,19 +113,19 @@
"@types/uuid": "9.0.1",
"@types/websocket": "1.0.5",
"@types/ws": "8.5.4",
- "@typescript-eslint/eslint-plugin": "5.59.2",
- "@typescript-eslint/parser": "5.59.2",
- "@vitest/coverage-c8": "0.30.1",
- "@vue/runtime-core": "3.2.47",
+ "@typescript-eslint/eslint-plugin": "5.59.5",
+ "@typescript-eslint/parser": "5.59.5",
+ "@vitest/coverage-c8": "0.31.0",
+ "@vue/runtime-core": "3.3.1",
"astring": "1.8.4",
"chokidar-cli": "3.0.0",
"cross-env": "7.0.3",
- "cypress": "12.11.0",
- "eslint": "8.39.0",
+ "cypress": "12.12.0",
+ "eslint": "8.40.0",
"eslint-plugin-import": "2.27.5",
- "eslint-plugin-vue": "9.11.0",
+ "eslint-plugin-vue": "9.12.0",
"fast-glob": "3.2.12",
- "happy-dom": "9.10.2",
+ "happy-dom": "9.16.0",
"micromatch": "3.1.10",
"msw": "1.2.1",
"msw-storybook-addon": "1.8.0",
@@ -133,13 +133,13 @@
"react": "18.2.0",
"react-dom": "18.2.0",
"start-server-and-test": "2.0.0",
- "storybook": "7.0.7",
+ "storybook": "7.0.10",
"storybook-addon-misskey-theme": "github:misskey-dev/storybook-addon-misskey-theme",
"summaly": "github:misskey-dev/summaly",
"vite-plugin-turbosnap": "1.0.2",
- "vitest": "0.30.1",
+ "vitest": "0.31.0",
"vitest-fetch-mock": "0.2.2",
- "vue-eslint-parser": "9.1.1",
- "vue-tsc": "1.6.3"
+ "vue-eslint-parser": "9.2.1",
+ "vue-tsc": "1.6.4"
}
}
diff --git a/packages/frontend/src/components/MkCheckbox.vue b/packages/frontend/src/components/MkCheckbox.vue
deleted file mode 100644
index a8e24dd839..0000000000
--- a/packages/frontend/src/components/MkCheckbox.vue
+++ /dev/null
@@ -1,144 +0,0 @@
-<template>
-<div
- class="ziffeoms"
- :class="{ disabled, checked }"
->
- <input
- ref="input"
- type="checkbox"
- :disabled="disabled"
- @keydown.enter="toggle"
- >
- <span ref="button" v-adaptive-border v-tooltip="checked ? i18n.ts.itsOn : i18n.ts.itsOff" class="button" @click.prevent="toggle">
- <i class="check ti ti-check"></i>
- </span>
- <span class="label">
- <!-- TODO: 無名slotの方は廃止 -->
- <span @click="toggle"><slot name="label"></slot><slot></slot></span>
- <p class="caption"><slot name="caption"></slot></p>
- </span>
-</div>
-</template>
-
-<script lang="ts" setup>
-import { toRefs, Ref } from 'vue';
-import * as os from '@/os';
-import MkRippleEffect from '@/components/MkRippleEffect.vue';
-import { i18n } from '@/i18n';
-
-const props = defineProps<{
- modelValue: boolean | Ref<boolean>;
- disabled?: boolean;
-}>();
-
-const emit = defineEmits<{
- (ev: 'update:modelValue', v: boolean): void;
-}>();
-
-let button = $shallowRef<HTMLElement>();
-const checked = toRefs(props).modelValue;
-const toggle = () => {
- if (props.disabled) return;
- emit('update:modelValue', !checked.value);
-
- if (!checked.value) {
- const rect = button.getBoundingClientRect();
- const x = rect.left + (button.offsetWidth / 2);
- const y = rect.top + (button.offsetHeight / 2);
- os.popup(MkRippleEffect, { x, y, particle: false }, {}, 'end');
- }
-};
-</script>
-
-<style lang="scss" scoped>
-.ziffeoms {
- position: relative;
- display: flex;
- transition: all 0.2s ease;
-
- > * {
- user-select: none;
- }
-
- > input {
- position: absolute;
- width: 0;
- height: 0;
- opacity: 0;
- margin: 0;
- }
-
- > .button {
- position: relative;
- display: inline-flex;
- flex-shrink: 0;
- margin: 0;
- box-sizing: border-box;
- width: 23px;
- height: 23px;
- outline: none;
- background: var(--panel);
- border: solid 1px var(--panel);
- border-radius: 4px;
- cursor: pointer;
- transition: inherit;
-
- > .check {
- margin: auto;
- opacity: 0;
- color: var(--fgOnAccent);
- font-size: 13px;
- transform: scale(0.5);
- transition: all 0.2s ease;
- }
- }
-
- &:hover {
- > .button {
- border-color: var(--inputBorderHover) !important;
- }
- }
-
- > .label {
- margin-left: 12px;
- margin-top: 2px;
- display: block;
- transition: inherit;
- color: var(--fg);
-
- > span {
- display: block;
- line-height: 20px;
- cursor: pointer;
- transition: inherit;
- }
-
- > .caption {
- margin: 8px 0 0 0;
- color: var(--fgTransparentWeak);
- font-size: 0.85em;
-
- &:empty {
- display: none;
- }
- }
- }
-
- &.disabled {
- opacity: 0.6;
- cursor: not-allowed;
- }
-
- &.checked {
- > .button {
- background-color: var(--accent) !important;
- border-color: var(--accent) !important;
-
- > .check {
- opacity: 1;
- transform: scale(1);
- }
- }
- }
-}
-</style>
diff --git a/packages/frontend/src/components/MkInstanceStats.vue b/packages/frontend/src/components/MkInstanceStats.vue
index 0f87fef6b1..6fcd8f7811 100644
--- a/packages/frontend/src/components/MkInstanceStats.vue
+++ b/packages/frontend/src/components/MkInstanceStats.vue
@@ -52,9 +52,12 @@
<MkFoldableSection class="item">
<template #header>Retention rate</template>
- <div class="_panel" :class="$style.retention">
+ <div class="_panel" :class="$style.retentionHeatmap">
<MkRetentionHeatmap/>
</div>
+ <div class="_panel" :class="$style.retentionLine">
+ <MkRetentionLineChart/>
+ </div>
</MkFoldableSection>
<MkFoldableSection class="item">
@@ -86,6 +89,7 @@ import { i18n } from '@/i18n';
import MkHeatmap from '@/components/MkHeatmap.vue';
import MkFoldableSection from '@/components/MkFoldableSection.vue';
import MkRetentionHeatmap from '@/components/MkRetentionHeatmap.vue';
+import MkRetentionLineChart from '@/components/MkRetentionLineChart.vue';
import { initChart } from '@/scripts/init-chart';
initChart();
@@ -202,7 +206,12 @@ onMounted(() => {
margin-bottom: 16px;
}
-.retention {
+.retentionHeatmap {
+ padding: 16px;
+ margin-bottom: 16px;
+}
+
+.retentionLine {
padding: 16px;
margin-bottom: 16px;
}
diff --git a/packages/frontend/src/components/MkModalWindow.vue b/packages/frontend/src/components/MkModalWindow.vue
index ad7dc4da11..63c55b904a 100644
--- a/packages/frontend/src/components/MkModalWindow.vue
+++ b/packages/frontend/src/components/MkModalWindow.vue
@@ -1,15 +1,15 @@
<template>
<MkModal ref="modal" :prefer-type="'dialog'" @click="onBgClick" @closed="$emit('closed')">
- <div ref="rootEl" class="ebkgoccj" :style="{ width: `${width}px`, height: `min(${height}px, 100%)` }" @keydown="onKeydown">
- <div ref="headerEl" class="header">
- <button v-if="withOkButton" class="_button" @click="$emit('close')"><i class="ti ti-x"></i></button>
- <span class="title">
+ <div ref="rootEl" :class="$style.root" :style="{ width: `${width}px`, height: `min(${height}px, 100%)` }" @keydown="onKeydown">
+ <div ref="headerEl" :class="$style.header">
+ <button v-if="withOkButton" :class="$style.headerButton" class="_button" @click="$emit('close')"><i class="ti ti-x"></i></button>
+ <span :class="$style.title">
<slot name="header"></slot>
</span>
- <button v-if="!withOkButton" class="_button" data-cy-modal-window-close @click="$emit('close')"><i class="ti ti-x"></i></button>
- <button v-if="withOkButton" class="_button" :disabled="okButtonDisabled" @click="$emit('ok')"><i class="ti ti-check"></i></button>
+ <button v-if="!withOkButton" :class="$style.headerButton" class="_button" data-cy-modal-window-close @click="$emit('close')"><i class="ti ti-x"></i></button>
+ <button v-if="withOkButton" :class="$style.headerButton" class="_button" :disabled="okButtonDisabled" @click="$emit('ok')"><i class="ti ti-check"></i></button>
</div>
- <div class="body">
+ <div :class="$style.body">
<slot :width="bodyWidth" :height="bodyHeight"></slot>
</div>
</div>
@@ -81,8 +81,8 @@ defineExpose({
});
</script>
-<style lang="scss" scoped>
-.ebkgoccj {
+<style lang="scss" module>
+.root {
margin: auto;
overflow: hidden;
display: flex;
@@ -96,51 +96,52 @@ defineExpose({
--root-margin: 16px;
}
- > .header {
- $height: 46px;
- $height-narrow: 42px;
- display: flex;
- flex-shrink: 0;
- background: var(--windowHeader);
- -webkit-backdrop-filter: var(--blur, blur(15px));
- backdrop-filter: var(--blur, blur(15px));
+ --headerHeight: 46px;
+ --headerHeightNarrow: 42px;
+}
- > button {
- height: $height;
- width: $height;
+.header {
+ display: flex;
+ flex-shrink: 0;
+ background: var(--windowHeader);
+ -webkit-backdrop-filter: var(--blur, blur(15px));
+ backdrop-filter: var(--blur, blur(15px));
+}
- @media (max-width: 500px) {
- height: $height-narrow;
- width: $height-narrow;
- }
- }
+.headerButton {
+ height: var(--headerHeight);
+ width: var(--headerHeight);
- > .title {
- flex: 1;
- line-height: $height;
- padding-left: 32px;
- font-weight: bold;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- pointer-events: none;
+ @media (max-width: 500px) {
+ height: var(--headerHeightNarrow);
+ width: var(--headerHeightNarrow);
+ }
+}
- @media (max-width: 500px) {
- line-height: $height-narrow;
- padding-left: 16px;
- }
- }
+.title {
+ flex: 1;
+ line-height: var(--headerHeight);
+ padding-left: 32px;
+ font-weight: bold;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ pointer-events: none;
- > button + .title {
- padding-left: 0;
- }
+ @media (max-width: 500px) {
+ line-height: var(--headerHeightNarrow);
+ padding-left: 16px;
}
+}
- > .body {
- flex: 1;
- overflow: auto;
- background: var(--panel);
- container-type: size;
- }
+.headerButton + .title {
+ padding-left: 0;
+}
+
+.body {
+ flex: 1;
+ overflow: auto;
+ background: var(--panel);
+ container-type: size;
}
</style>
diff --git a/packages/frontend/src/components/MkNoteSub.vue b/packages/frontend/src/components/MkNoteSub.vue
index c293641355..9ac0b7858f 100644
--- a/packages/frontend/src/components/MkNoteSub.vue
+++ b/packages/frontend/src/components/MkNoteSub.vue
@@ -1,6 +1,7 @@
<template>
<div :class="[$style.root, { [$style.children]: depth > 1 }]">
<div :class="$style.main">
+ <div v-if="note.channel" :class="$style.colorBar" :style="{ background: note.channel.color }"></div>
<MkAvatar :class="$style.avatar" :user="note.user" link preview/>
<div :class="$style.body">
<MkNoteHeader :class="$style.header" :note="note" :mini="true"/>
@@ -62,6 +63,7 @@ if (props.detail) {
.root {
padding: 16px 32px;
font-size: 0.9em;
+ position: relative;
&.children {
padding: 10px 0 0 16px;
@@ -73,6 +75,16 @@ if (props.detail) {
display: flex;
}
+.colorBar {
+ position: absolute;
+ top: 8px;
+ left: 8px;
+ width: 5px;
+ height: calc(100% - 8px);
+ border-radius: 999px;
+ pointer-events: none;
+}
+
.avatar {
flex-shrink: 0;
display: block;
diff --git a/packages/frontend/src/components/MkRadio.vue b/packages/frontend/src/components/MkRadio.vue
index 5db2f5ee6d..eea94d4692 100644
--- a/packages/frontend/src/components/MkRadio.vue
+++ b/packages/frontend/src/components/MkRadio.vue
@@ -1,8 +1,7 @@
<template>
<div
v-adaptive-border
- class="novjtctn"
- :class="{ disabled, checked }"
+ :class="[$style.root, { [$style.disabled]: disabled, [$style.checked]: checked }]"
:aria-checked="checked"
:aria-disabled="disabled"
@click="toggle"
@@ -10,11 +9,12 @@
<input
type="radio"
:disabled="disabled"
+ :class="$style.input"
>
- <span class="button">
+ <span :class="$style.button">
<span></span>
</span>
- <span class="label"><slot></slot></span>
+ <span :class="$style.label"><slot></slot></span>
</div>
</template>
@@ -39,8 +39,8 @@ function toggle(): void {
}
</script>
-<style lang="scss" scoped>
-.novjtctn {
+<style lang="scss" module>
+.root {
position: relative;
display: inline-block;
text-align: left;
@@ -53,17 +53,11 @@ function toggle(): void {
border-radius: 6px;
font-size: 90%;
transition: all 0.2s;
-
- > * {
- user-select: none;
- }
+ user-select: none;
&.disabled {
opacity: 0.6;
-
- &, * {
- cursor: not-allowed !important;
- }
+ cursor: not-allowed !important;
}
&:hover {
@@ -74,10 +68,7 @@ function toggle(): void {
background-color: var(--accentedBg) !important;
border-color: var(--accentedBg) !important;
color: var(--accent);
-
- &, * {
- cursor: default !important;
- }
+ cursor: default !important;
> .button {
border-color: var(--accent);
@@ -89,44 +80,44 @@ function toggle(): void {
}
}
}
+}
- > input {
- position: absolute;
- width: 0;
- height: 0;
- opacity: 0;
- margin: 0;
- }
+.input {
+ position: absolute;
+ width: 0;
+ height: 0;
+ opacity: 0;
+ margin: 0;
+}
+
+.button {
+ position: absolute;
+ width: 14px;
+ height: 14px;
+ background: none;
+ border: solid 2px var(--inputBorder);
+ border-radius: 100%;
+ transition: inherit;
- > .button {
+ &:after {
+ content: '';
+ display: block;
position: absolute;
- width: 14px;
- height: 14px;
- background: none;
- border: solid 2px var(--inputBorder);
+ top: 3px;
+ right: 3px;
+ bottom: 3px;
+ left: 3px;
border-radius: 100%;
- transition: inherit;
-
- &:after {
- content: '';
- display: block;
- position: absolute;
- top: 3px;
- right: 3px;
- bottom: 3px;
- left: 3px;
- border-radius: 100%;
- opacity: 0;
- transform: scale(0);
- transition: 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
- }
+ opacity: 0;
+ transform: scale(0);
+ transition: 0.4s cubic-bezier(0.25, 0.8, 0.25, 1);
}
+}
- > .label {
- margin-left: 28px;
- display: block;
- line-height: 20px;
- cursor: pointer;
- }
+.label {
+ margin-left: 28px;
+ display: block;
+ line-height: 20px;
+ cursor: pointer;
}
</style>
diff --git a/packages/frontend/src/components/MkRetentionHeatmap.vue b/packages/frontend/src/components/MkRetentionHeatmap.vue
index f33f68cab7..311d5c425c 100644
--- a/packages/frontend/src/components/MkRetentionHeatmap.vue
+++ b/packages/frontend/src/components/MkRetentionHeatmap.vue
@@ -40,7 +40,7 @@ async function renderChart() {
let raw = await os.api('retention', { });
- raw = raw.slice(0, maxDays);
+ raw = raw.slice(0, maxDays + 1);
const data = [];
for (const record of raw) {
@@ -90,8 +90,13 @@ async function renderChart() {
borderRadius: 3,
backgroundColor(c) {
const value = c.dataset.data[c.dataIndex].v;
- const a = value / max(c.dataset.data[c.dataIndex].y);
- return alpha(color, a);
+ const m = max(c.dataset.data[c.dataIndex].y);
+ if (m === 0) {
+ return alpha(color, 0);
+ } else {
+ const a = value / m;
+ return alpha(color, a);
+ }
},
fill: true,
width(c) {
@@ -129,6 +134,10 @@ async function renderChart() {
autoSkip: false,
callback: (value, index, values) => value,
},
+ title: {
+ display: true,
+ text: 'Days later',
+ },
},
y: {
type: 'time',
@@ -166,7 +175,12 @@ async function renderChart() {
},
label(context) {
const v = context.dataset.data[context.dataIndex];
- return [`Active: ${v.v} (${Math.round((v.v / max(v.y)) * 100)}%)`];
+ const m = max(v.y);
+ if (m === 0) {
+ return [`Active: ${v.v} (-%)`];
+ } else {
+ return [`Active: ${v.v} (${Math.round((v.v / m) * 100)}%)`];
+ }
},
},
//mode: 'index',
diff --git a/packages/frontend/src/components/MkRetentionLineChart.vue b/packages/frontend/src/components/MkRetentionLineChart.vue
new file mode 100644
index 0000000000..8bd0279806
--- /dev/null
+++ b/packages/frontend/src/components/MkRetentionLineChart.vue
@@ -0,0 +1,130 @@
+<template>
+<canvas ref="chartEl"></canvas>
+</template>
+
+<script lang="ts" setup>
+import { onMounted, shallowRef } from 'vue';
+import { Chart } from 'chart.js';
+import tinycolor from 'tinycolor2';
+import { defaultStore } from '@/store';
+import { useChartTooltip } from '@/scripts/use-chart-tooltip';
+import { chartVLine } from '@/scripts/chart-vline';
+import { alpha } from '@/scripts/color';
+import { initChart } from '@/scripts/init-chart';
+import * as os from '@/os';
+
+initChart();
+
+const chartEl = shallowRef<HTMLCanvasElement>(null);
+
+const { handler: externalTooltipHandler } = useChartTooltip();
+
+let chartInstance: Chart;
+
+const getYYYYMMDD = (date: Date) => {
+ const y = date.getFullYear().toString().padStart(2, '0');
+ const m = (date.getMonth() + 1).toString().padStart(2, '0');
+ const d = date.getDate().toString().padStart(2, '0');
+ return `${y}/${m}/${d}`;
+};
+
+const getDate = (ymd: string) => {
+ const [y, m, d] = ymd.split('-').map(x => parseInt(x, 10));
+ const date = new Date(y, m + 1, d, 0, 0, 0, 0);
+ return date;
+};
+
+onMounted(async () => {
+ let raw = await os.api('retention', { });
+
+ const vLineColor = defaultStore.state.darkMode ? 'rgba(255, 255, 255, 0.2)' : 'rgba(0, 0, 0, 0.2)';
+
+ const accent = tinycolor(getComputedStyle(document.documentElement).getPropertyValue('--accent'));
+ const color = accent.toHex();
+
+ chartInstance = new Chart(chartEl.value, {
+ type: 'line',
+ data: {
+ labels: [],
+ datasets: raw.map((record, i) => ({
+ label: getYYYYMMDD(new Date(record.createdAt)),
+ pointRadius: 0,
+ borderWidth: 2,
+ borderJoinStyle: 'round',
+ borderColor: alpha(color, Math.min(1, (raw.length - (i - 1)) / raw.length)),
+ fill: false,
+ tension: 0.4,
+ data: [{
+ x: '0',
+ y: 100,
+ d: getYYYYMMDD(new Date(record.createdAt)),
+ }, ...Object.entries(record.data).sort((a, b) => getDate(a[0]) > getDate(b[0]) ? 1 : -1).map(([k, v], i) => ({
+ x: (i + 1).toString(),
+ y: (v / record.users) * 100,
+ d: getYYYYMMDD(new Date(record.createdAt)),
+ }))],
+ })),
+ },
+ options: {
+ aspectRatio: 2.5,
+ layout: {
+ padding: {
+ left: 0,
+ right: 0,
+ top: 0,
+ bottom: 0,
+ },
+ },
+ scales: {
+ x: {
+ title: {
+ display: true,
+ text: 'Days later',
+ },
+ },
+ y: {
+ title: {
+ display: true,
+ text: 'Rate (%)',
+ },
+ ticks: {
+ callback: (value, index, values) => value + '%',
+ },
+ },
+ },
+ interaction: {
+ intersect: false,
+ },
+ plugins: {
+ legend: {
+ display: false,
+ },
+ tooltip: {
+ enabled: false,
+ callbacks: {
+ title(context) {
+ const v = context[0].dataset.data[context[0].dataIndex];
+ return `${v.x} days later`;
+ },
+ label(context) {
+ const v = context.dataset.data[context.dataIndex];
+ const p = Math.round(v.y) + '%';
+ return `${v.d} ${p}`;
+ },
+ },
+ mode: 'index',
+ animation: {
+ duration: 0,
+ },
+ external: externalTooltipHandler,
+ },
+ },
+ },
+ plugins: [chartVLine(vLineColor)],
+ });
+});
+</script>
+
+<style lang="scss" scoped>
+
+</style>
diff --git a/packages/frontend/src/components/MkSelect.vue b/packages/frontend/src/components/MkSelect.vue
index 2de890186a..4efb65c287 100644
--- a/packages/frontend/src/components/MkSelect.vue
+++ b/packages/frontend/src/components/MkSelect.vue
@@ -1,13 +1,13 @@
<template>
-<div class="vblkjoeq">
- <div class="label" @click="focus"><slot name="label"></slot></div>
- <div ref="container" class="input" :class="{ inline, disabled, focused }" @mousedown.prevent="show">
- <div ref="prefixEl" class="prefix"><slot name="prefix"></slot></div>
+<div>
+ <div :class="$style.label" @click="focus"><slot name="label"></slot></div>
+ <div ref="container" :class="[$style.input, { [$style.inline]: inline, [$style.disabled]: disabled, [$style.focused]: focused }]" @mousedown.prevent="show">
+ <div ref="prefixEl" :class="$style.prefix"><slot name="prefix"></slot></div>
<select
ref="inputEl"
v-model="v"
v-adaptive-border
- class="select"
+ :class="$style.inputCore"
:disabled="disabled"
:required="required"
:readonly="readonly"
@@ -18,9 +18,9 @@
>
<slot></slot>
</select>
- <div ref="suffixEl" class="suffix"><i class="ti ti-chevron-down" :class="[$style.chevron, { [$style.chevronOpening]: opening }]"></i></div>
+ <div ref="suffixEl" :class="$style.suffix"><i class="ti ti-chevron-down" :class="[$style.chevron, { [$style.chevronOpening]: opening }]"></i></div>
</div>
- <div class="caption"><slot name="caption"></slot></div>
+ <div :class="$style.caption"><slot name="caption"></slot></div>
<MkButton v-if="manualSave && changed" primary @click="updated"><i class="ti ti-device-floppy"></i> {{ i18n.ts.save }}</MkButton>
</div>
@@ -169,121 +169,116 @@ function show(ev: MouseEvent) {
}
</script>
-<style lang="scss" scoped>
-.vblkjoeq {
- > .label {
- font-size: 0.85em;
- padding: 0 0 8px 0;
- user-select: none;
+<style lang="scss" module>
+.label {
+ font-size: 0.85em;
+ padding: 0 0 8px 0;
+ user-select: none;
- &:empty {
- display: none;
- }
+ &:empty {
+ display: none;
}
+}
- > .caption {
- font-size: 0.85em;
- padding: 8px 0 0 0;
- color: var(--fgTransparentWeak);
+.caption {
+ font-size: 0.85em;
+ padding: 8px 0 0 0;
+ color: var(--fgTransparentWeak);
- &:empty {
- display: none;
- }
+ &:empty {
+ display: none;
}
+}
- > .input {
- position: relative;
- cursor: pointer;
+.input {
+ position: relative;
+ cursor: pointer;
- &:hover {
- > .select {
- border-color: var(--inputBorderHover) !important;
- }
- }
+ &.inline {
+ display: inline-block;
+ margin: 0;
+ }
- > .select {
- appearance: none;
- -webkit-appearance: none;
- display: block;
- height: v-bind("height + 'px'");
- width: 100%;
- margin: 0;
- padding: 0 12px;
- font: inherit;
- font-weight: normal;
- font-size: 1em;
- color: var(--fg);
- background: var(--panel);
- border: solid 1px var(--panel);
- border-radius: 6px;
- outline: none;
- box-shadow: none;
- box-sizing: border-box;
- cursor: pointer;
- transition: border-color 0.1s ease-out;
- pointer-events: none;
- user-select: none;
+ &.focused {
+ > .inputCore {
+ border-color: var(--accent) !important;
+ //box-shadow: 0 0 0 4px var(--focus);
}
+ }
- > .prefix,
- > .suffix {
- display: flex;
- align-items: center;
- position: absolute;
- z-index: 1;
- top: 0;
- padding: 0 12px;
- font-size: 1em;
- height: v-bind("height + 'px'");
- pointer-events: none;
-
- &:empty {
- display: none;
- }
+ &.disabled {
+ opacity: 0.7;
- > * {
- display: inline-block;
- min-width: 16px;
- max-width: 150px;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- }
+ &,
+ > .inputCore {
+ cursor: not-allowed !important;
}
+ }
- > .prefix {
- left: 0;
- padding-right: 6px;
+ &:hover {
+ > .inputCore {
+ border-color: var(--inputBorderHover) !important;
}
+ }
+}
- > .suffix {
- right: 0;
- padding-left: 6px;
- }
+.inputCore {
+ appearance: none;
+ -webkit-appearance: none;
+ display: block;
+ height: v-bind("height + 'px'");
+ width: 100%;
+ margin: 0;
+ padding: 0 12px;
+ font: inherit;
+ font-weight: normal;
+ font-size: 1em;
+ color: var(--fg);
+ background: var(--panel);
+ border: solid 1px var(--panel);
+ border-radius: 6px;
+ outline: none;
+ box-shadow: none;
+ box-sizing: border-box;
+ transition: border-color 0.1s ease-out;
+ cursor: pointer;
+ pointer-events: none;
+ user-select: none;
+}
- &.inline {
- display: inline-block;
- margin: 0;
- }
+.prefix,
+.suffix {
+ display: flex;
+ align-items: center;
+ position: absolute;
+ z-index: 1;
+ top: 0;
+ padding: 0 12px;
+ font-size: 1em;
+ height: v-bind("height + 'px'");
+ min-width: 16px;
+ max-width: 150px;
+ overflow: hidden;
+ white-space: nowrap;
+ text-overflow: ellipsis;
+ box-sizing: border-box;
+ pointer-events: none;
- &.focused {
- > select {
- border-color: var(--accent) !important;
- }
- }
+ &:empty {
+ display: none;
+ }
+}
- &.disabled {
- opacity: 0.7;
+.prefix {
+ left: 0;
+ padding-right: 6px;
+}
- &, * {
- cursor: not-allowed !important;
- }
- }
- }
+.suffix {
+ right: 0;
+ padding-left: 6px;
}
-</style>
-<style lang="scss" module>
.chevron {
transition: transform 0.1s ease-out;
}
diff --git a/packages/frontend/src/components/MkSwitch.vue b/packages/frontend/src/components/MkSwitch.vue
index d9f6716f92..63738b6a44 100644
--- a/packages/frontend/src/components/MkSwitch.vue
+++ b/packages/frontend/src/components/MkSwitch.vue
@@ -1,21 +1,19 @@
<template>
-<div
- class="ziffeomt"
- :class="{ disabled, checked }"
->
+<div :class="[$style.root, { [$style.disabled]: disabled, [$style.checked]: checked }]">
<input
ref="input"
type="checkbox"
:disabled="disabled"
+ :class="$style.input"
@keydown.enter="toggle"
>
- <span ref="button" v-tooltip="checked ? i18n.ts.itsOn : i18n.ts.itsOff" class="button" data-cy-switch-toggle @click.prevent="toggle">
- <div class="knob"></div>
+ <span ref="button" v-tooltip="checked ? i18n.ts.itsOn : i18n.ts.itsOff" :class="$style.button" data-cy-switch-toggle @click.prevent="toggle">
+ <div :class="$style.knob"></div>
</span>
- <span class="label">
+ <span :class="$style.body">
<!-- TODO: 無名slotの方は廃止 -->
- <span @click="toggle"><slot name="label"></slot><slot></slot></span>
- <p class="caption"><slot name="caption"></slot></p>
+ <span :class="$style.label" @click="toggle"><slot name="label"></slot><slot></slot></span>
+ <p :class="$style.caption"><slot name="caption"></slot></p>
</span>
</div>
</template>
@@ -45,52 +43,12 @@ const toggle = () => {
};
</script>
-<style lang="scss" scoped>
-.ziffeomt {
+<style lang="scss" module>
+.root {
position: relative;
display: flex;
transition: all 0.2s ease;
-
- > * {
- user-select: none;
- }
-
- > input {
- position: absolute;
- width: 0;
- height: 0;
- opacity: 0;
- margin: 0;
- }
-
- > .button {
- position: relative;
- display: inline-flex;
- flex-shrink: 0;
- margin: 0;
- box-sizing: border-box;
- width: 32px;
- height: 23px;
- outline: none;
- background: var(--switchOffBg);
- background-clip: content-box;
- border: solid 1px var(--switchOffBg);
- border-radius: 999px;
- cursor: pointer;
- transition: inherit;
- user-select: none;
-
- > .knob {
- position: absolute;
- top: 3px;
- left: 3px;
- width: 15px;
- height: 15px;
- background: var(--switchOffFg);
- border-radius: 999px;
- transition: all 0.2s ease;
- }
- }
+ user-select: none;
&:hover {
> .button {
@@ -98,31 +56,6 @@ const toggle = () => {
}
}
- > .label {
- margin-left: 12px;
- margin-top: 2px;
- display: block;
- transition: inherit;
- color: var(--fg);
-
- > span {
- display: block;
- line-height: 20px;
- cursor: pointer;
- transition: inherit;
- }
-
- > .caption {
- margin: 8px 0 0 0;
- color: var(--fgTransparentWeak);
- font-size: 0.85em;
-
- &:empty {
- display: none;
- }
- }
- }
-
&.disabled {
opacity: 0.6;
cursor: not-allowed;
@@ -140,4 +73,66 @@ const toggle = () => {
}
}
}
+
+.input {
+ position: absolute;
+ width: 0;
+ height: 0;
+ opacity: 0;
+ margin: 0;
+}
+
+.button {
+ position: relative;
+ display: inline-flex;
+ flex-shrink: 0;
+ margin: 0;
+ box-sizing: border-box;
+ width: 32px;
+ height: 23px;
+ outline: none;
+ background: var(--switchOffBg);
+ background-clip: content-box;
+ border: solid 1px var(--switchOffBg);
+ border-radius: 999px;
+ cursor: pointer;
+ transition: inherit;
+ user-select: none;
+}
+
+.knob {
+ position: absolute;
+ top: 3px;
+ left: 3px;
+ width: 15px;
+ height: 15px;
+ background: var(--switchOffFg);
+ border-radius: 999px;
+ transition: all 0.2s ease;
+}
+
+.body {
+ margin-left: 12px;
+ margin-top: 2px;
+ display: block;
+ transition: inherit;
+ color: var(--fg);
+}
+
+.label {
+ display: block;
+ line-height: 20px;
+ cursor: pointer;
+ transition: inherit;
+}
+
+.caption {
+ margin: 8px 0 0 0;
+ color: var(--fgTransparentWeak);
+ font-size: 0.85em;
+
+ &:empty {
+ display: none;
+ }
+}
</style>
diff --git a/packages/frontend/src/components/MkUserSetupDialog.Follow.vue b/packages/frontend/src/components/MkUserSetupDialog.Follow.vue
index b89e3e4c9d..a2a195cb09 100644
--- a/packages/frontend/src/components/MkUserSetupDialog.Follow.vue
+++ b/packages/frontend/src/components/MkUserSetupDialog.Follow.vue
@@ -40,10 +40,6 @@ import * as os from '@/os';
import { $i } from '@/account';
import MkPagination from '@/components/MkPagination.vue';
-const emit = defineEmits<{
- (ev: 'done'): void;
-}>();
-
const pinnedUsers = { endpoint: 'pinned-users', noPaging: true };
const popularUsers = { endpoint: 'users', limit: 10, noPaging: true, params: {
diff --git a/packages/frontend/src/components/MkUserSetupDialog.Privacy.stories.impl.ts b/packages/frontend/src/components/MkUserSetupDialog.Privacy.stories.impl.ts
new file mode 100644
index 0000000000..70817d83c3
--- /dev/null
+++ b/packages/frontend/src/components/MkUserSetupDialog.Privacy.stories.impl.ts
@@ -0,0 +1,31 @@
+/* eslint-disable @typescript-eslint/explicit-function-return-type */
+import { StoryObj } from '@storybook/vue3';
+import MkUserSetupDialog_Privacy from './MkUserSetupDialog.Privacy.vue';
+export const Default = {
+ render(args) {
+ return {
+ components: {
+ MkUserSetupDialog_Privacy,
+ },
+ setup() {
+ return {
+ args,
+ };
+ },
+ computed: {
+ props() {
+ return {
+ ...this.args,
+ };
+ },
+ },
+ template: '<MkUserSetupDialog_Privacy v-bind="props" />',
+ };
+ },
+ args: {
+
+ },
+ parameters: {
+ layout: 'centered',
+ },
+} satisfies StoryObj<typeof MkUserSetupDialog_Privacy>;
diff --git a/packages/frontend/src/components/MkUserSetupDialog.Privacy.vue b/packages/frontend/src/components/MkUserSetupDialog.Privacy.vue
new file mode 100644
index 0000000000..e9f4f68df8
--- /dev/null
+++ b/packages/frontend/src/components/MkUserSetupDialog.Privacy.vue
@@ -0,0 +1,64 @@
+<template>
+<div class="_gaps">
+ <MkInfo>{{ i18n.ts._initialAccountSetting.theseSettingsCanEditLater }}</MkInfo>
+
+ <MkFolder>
+ <template #label>{{ i18n.ts.makeFollowManuallyApprove }}</template>
+ <template #suffix>{{ isLocked ? i18n.ts.on : i18n.ts.off }}</template>
+
+ <MkSwitch v-model="isLocked">{{ i18n.ts.makeFollowManuallyApprove }}<template #caption>{{ i18n.ts.lockedAccountInfo }}</template></MkSwitch>
+ </MkFolder>
+
+ <MkFolder>
+ <template #label>{{ i18n.ts.hideOnlineStatus }}</template>
+ <template #suffix>{{ hideOnlineStatus ? i18n.ts.on : i18n.ts.off }}</template>
+
+ <MkSwitch v-model="hideOnlineStatus">{{ i18n.ts.hideOnlineStatus }}<template #caption>{{ i18n.ts.hideOnlineStatusDescription }}</template></MkSwitch>
+ </MkFolder>
+
+ <MkFolder>
+ <template #label>{{ i18n.ts.noCrawle }}</template>
+ <template #suffix>{{ noCrawle ? i18n.ts.on : i18n.ts.off }}</template>
+
+ <MkSwitch v-model="noCrawle">{{ i18n.ts.noCrawle }}<template #caption>{{ i18n.ts.noCrawleDescription }}</template></MkSwitch>
+ </MkFolder>
+
+ <MkFolder>
+ <template #label>{{ i18n.ts.preventAiLearning }}</template>
+ <template #suffix>{{ preventAiLearning ? i18n.ts.on : i18n.ts.off }}</template>
+
+ <MkSwitch v-model="preventAiLearning">{{ i18n.ts.preventAiLearning }}<template #caption>{{ i18n.ts.preventAiLearningDescription }}</template></MkSwitch>
+ </MkFolder>
+
+ <MkInfo>{{ i18n.ts._initialAccountSetting.youCanEditMoreSettingsInSettingsPageLater }}</MkInfo>
+</div>
+</template>
+
+<script lang="ts" setup>
+import { computed, ref, watch } from 'vue';
+import { instance } from '@/instance';
+import { i18n } from '@/i18n';
+import MkSwitch from '@/components/MkSwitch.vue';
+import MkInfo from '@/components/MkInfo.vue';
+import MkFolder from '@/components/MkFolder.vue';
+import * as os from '@/os';
+import { $i } from '@/account';
+
+let isLocked = ref(false);
+let hideOnlineStatus = ref(false);
+let noCrawle = ref(false);
+let preventAiLearning = ref(true);
+
+watch([isLocked, hideOnlineStatus, noCrawle, preventAiLearning], () => {
+ os.api('i/update', {
+ isLocked: !!isLocked.value,
+ hideOnlineStatus: !!hideOnlineStatus.value,
+ noCrawle: !!noCrawle.value,
+ preventAiLearning: !!preventAiLearning.value,
+ });
+});
+</script>
+
+<style lang="scss" module>
+
+</style>
diff --git a/packages/frontend/src/components/MkUserSetupDialog.Profile.vue b/packages/frontend/src/components/MkUserSetupDialog.Profile.vue
index adb8d43349..f26ea11214 100644
--- a/packages/frontend/src/components/MkUserSetupDialog.Profile.vue
+++ b/packages/frontend/src/components/MkUserSetupDialog.Profile.vue
@@ -37,10 +37,6 @@ import { chooseFileFromPc } from '@/scripts/select-file';
import * as os from '@/os';
import { $i } from '@/account';
-const emit = defineEmits<{
- (ev: 'done'): void;
-}>();
-
const name = ref('');
const description = ref('');
diff --git a/packages/frontend/src/components/MkUserSetupDialog.vue b/packages/frontend/src/components/MkUserSetupDialog.vue
index 096b88c309..4e80a5c0fb 100644
--- a/packages/frontend/src/components/MkUserSetupDialog.vue
+++ b/packages/frontend/src/components/MkUserSetupDialog.vue
@@ -7,9 +7,17 @@
@close="close(true)"
@closed="emit('closed')"
>
- <template #header>{{ i18n.ts.initialAccountSetting }}</template>
+ <template v-if="page === 1" #header>{{ i18n.ts._initialAccountSetting.profileSetting }}</template>
+ <template v-else-if="page === 2" #header>{{ i18n.ts._initialAccountSetting.privacySetting }}</template>
+ <template v-else-if="page === 3" #header>{{ i18n.ts.follow }}</template>
+ <template v-else-if="page === 4" #header>{{ i18n.ts.pushNotification }}</template>
+ <template v-else-if="page === 5" #header>{{ i18n.ts.done }}</template>
+ <template v-else #header>{{ i18n.ts.initialAccountSetting }}</template>
<div style="overflow-x: clip;">
+ <div :class="$style.progressBar">
+ <div :class="$style.progressBarValue" :style="{ width: `${(page / 5) * 100}%` }"></div>
+ </div>
<Transition
mode="out-in"
:enter-active-class="$style.transition_x_enterActive"
@@ -40,12 +48,22 @@
<template v-else-if="page === 2">
<div style="height: 100cqh; overflow: auto;">
<MkSpacer :margin-min="20" :margin-max="28">
- <XFollow/>
+ <XPrivacy/>
<MkButton primary rounded gradate style="margin: 16px auto 0 auto;" data-cy-user-setup-continue @click="page++">{{ i18n.ts.continue }} <i class="ti ti-arrow-right"></i></MkButton>
</MkSpacer>
</div>
</template>
<template v-else-if="page === 3">
+ <div style="height: 100cqh; overflow: auto;">
+ <MkSpacer :margin-min="20" :margin-max="28">
+ <XFollow/>
+ </MkSpacer>
+ <div :class="$style.pageFooter">
+ <MkButton primary rounded gradate style="margin: 0 auto;" data-cy-user-setup-continue @click="page++">{{ i18n.ts.continue }} <i class="ti ti-arrow-right"></i></MkButton>
+ </div>
+ </div>
+ </template>
+ <template v-else-if="page === 4">
<div :class="$style.centerPage">
<MkSpacer :margin-min="20" :margin-max="28">
<div class="_gaps" style="text-align: center;">
@@ -58,7 +76,7 @@
</MkSpacer>
</div>
</template>
- <template v-else-if="page === 4">
+ <template v-else-if="page === 5">
<div :class="$style.centerPage">
<MkSpacer :margin-min="20" :margin-max="28">
<div class="_gaps" style="text-align: center;">
@@ -87,6 +105,7 @@ import MkModalWindow from '@/components/MkModalWindow.vue';
import MkButton from '@/components/MkButton.vue';
import XProfile from '@/components/MkUserSetupDialog.Profile.vue';
import XFollow from '@/components/MkUserSetupDialog.Follow.vue';
+import XPrivacy from '@/components/MkUserSetupDialog.Privacy.vue';
import { i18n } from '@/i18n';
import { instance } from '@/instance';
import { host } from '@/config';
@@ -134,6 +153,21 @@ async function close(skip: boolean) {
transform: translateX(-50px);
}
+.progressBar {
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: 10;
+ width: 100%;
+ height: 4px;
+}
+
+.progressBarValue {
+ height: 100%;
+ background: linear-gradient(90deg, var(--buttonGradateA), var(--buttonGradateB));
+ transition: all 0.5s cubic-bezier(0,.5,.5,1);
+}
+
.centerPage {
display: flex;
justify-content: center;
@@ -142,4 +176,14 @@ async function close(skip: boolean) {
padding-bottom: 30px;
box-sizing: border-box;
}
+
+.pageFooter {
+ position: sticky;
+ bottom: 0;
+ left: 0;
+ padding: 12px;
+ border-top: solid 0.5px var(--divider);
+ -webkit-backdrop-filter: var(--blur, blur(15px));
+ backdrop-filter: var(--blur, blur(15px));
+}
</style>
diff --git a/packages/frontend/src/components/MkWidgets.vue b/packages/frontend/src/components/MkWidgets.vue
index 33e594acd8..ad1c02a488 100644
--- a/packages/frontend/src/components/MkWidgets.vue
+++ b/packages/frontend/src/components/MkWidgets.vue
@@ -32,6 +32,7 @@
<component :is="`widget-${widget.name}`" v-for="widget in widgets" v-else :key="widget.id" :ref="el => widgetRefs[widget.id] = el" :class="$style.widget" :widget="widget" @update-props="updateWidget(widget.id, $event)" @contextmenu.stop="onContextmenu(widget, $event)"/>
</div>
</template>
+
<script lang="ts">
export type Widget = {
name: string;
@@ -42,6 +43,7 @@ export type DefaultStoredWidget = {
place: string | null;
} & Widget;
</script>
+
<script lang="ts" setup>
import { defineAsyncComponent, ref } from 'vue';
import { v4 as uuid } from 'uuid';
diff --git a/packages/frontend/src/components/global/MkAvatar.vue b/packages/frontend/src/components/global/MkAvatar.vue
index ad36dcabe4..42abdcbdcc 100644
--- a/packages/frontend/src/components/global/MkAvatar.vue
+++ b/packages/frontend/src/components/global/MkAvatar.vue
@@ -2,7 +2,7 @@
<component :is="link ? MkA : 'span'" v-user-preview="preview ? user.id : undefined" v-bind="bound" class="_noSelect" :class="[$style.root, { [$style.animation]: animation, [$style.cat]: user.isCat, [$style.square]: squareAvatars }]" :style="{ color }" :title="acct(user)" @click="onClick">
<img :class="$style.inner" :src="url" decoding="async"/>
<MkUserOnlineIndicator v-if="indicator" :class="$style.indicator" :user="user"/>
- <div v-if="user.isCat" :class="[$style.ears, { [$style.mask]: useBlurEffect }]">
+ <div v-if="user.isCat" :class="[$style.ears]">
<div :class="$style.earLeft">
<div v-if="false" :class="$style.layer">
<div :class="$style.plot" :style="{ backgroundImage: `url(${JSON.stringify(url)})` }"/>
@@ -154,24 +154,6 @@ watch(() => props.user.avatarBlurhash, () => {
padding: 50%;
pointer-events: none;
- &.mask {
- -webkit-mask:
- url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><filter id="a"><feGaussianBlur in="SourceGraphic" stdDeviation="1"/></filter><circle cx="16" cy="16" r="15" filter="url(%23a)"/></svg>') center / 50% 50%,
- linear-gradient(#fff, #fff);
- -webkit-mask-composite: destination-out, source-over;
- mask:
- url('data:image/svg+xml,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 32 32"><filter id="a"><feGaussianBlur in="SourceGraphic" stdDeviation="1"/></filter><circle cx="16" cy="16" r="15" filter="url(%23a)"/></svg>') exclude center / 50% 50%,
- linear-gradient(#fff, #fff); // polyfill of `image(#fff)`
-
- > .earLeft {
- animation: eartightleft 6s infinite;
- }
-
- > .earRight {
- animation: eartightright 6s infinite;
- }
- }
-
> .earLeft,
> .earRight {
contain: strict;
diff --git a/packages/frontend/src/components/page/page.image.vue b/packages/frontend/src/components/page/page.image.vue
index 0237644d29..6ea81d257f 100644
--- a/packages/frontend/src/components/page/page.image.vue
+++ b/packages/frontend/src/components/page/page.image.vue
@@ -1,6 +1,6 @@
<template>
-<div class="lzyxtsnt">
- <ImgWithBlurhash v-if="image" :hash="image.blurhash" :src="image.url" :alt="image.comment" :title="image.comment" :cover="false"/>
+<div>
+ <ImgWithBlurhash v-if="image" style="max-width: 100%;" :hash="image.blurhash" :src="image.url" :alt="image.comment" :title="image.comment" :width="image.properties.width" :height="image.properties.height" :cover="false"/>
</div>
</template>
@@ -17,11 +17,3 @@ const props = defineProps<{
const image = props.hpml.page.attachedFiles.find(x => x.id === props.block.fileId);
</script>
-
-<style lang="scss" scoped>
-.lzyxtsnt {
- > img {
- max-width: 100%;
- }
-}
-</style>
diff --git a/packages/frontend/src/pages/about-misskey.vue b/packages/frontend/src/pages/about-misskey.vue
index e592c629ce..9e0594db3c 100644
--- a/packages/frontend/src/pages/about-misskey.vue
+++ b/packages/frontend/src/pages/about-misskey.vue
@@ -238,6 +238,7 @@ const patrons = [
'ずも',
'binvinyl',
'渡志郎',
+ 'ぷーざ',
];
let thereIsTreasure = $ref($i && !claimedAchievements.includes('foundTreasure'));
diff --git a/packages/frontend/src/pages/admin/moderation.vue b/packages/frontend/src/pages/admin/moderation.vue
index ffd3b6e233..bf788e3609 100644
--- a/packages/frontend/src/pages/admin/moderation.vue
+++ b/packages/frontend/src/pages/admin/moderation.vue
@@ -27,7 +27,7 @@
<MkTextarea v-model="sensitiveWords">
<template #label>{{ i18n.ts.sensitiveWords }}</template>
- <template #caption>{{ i18n.ts.sensitiveWordsDescription }}</template>
+ <template #caption>{{ i18n.ts.sensitiveWordsDescription }}<br>{{ i18n.ts.sensitiveWordsDescription2 }}</template>
</MkTextarea>
</div>
</FormSuspense>
diff --git a/packages/frontend/src/pages/channel.vue b/packages/frontend/src/pages/channel.vue
index af1b4d2056..9aa564a7da 100644
--- a/packages/frontend/src/pages/channel.vue
+++ b/packages/frontend/src/pages/channel.vue
@@ -46,7 +46,7 @@
</MkInput>
<MkButton primary rounded style="margin-top: 8px;" @click="search()">{{ i18n.ts.search }}</MkButton>
</div>
- <MkNotes v-if="searchPagination" :key="searchQuery" :pagination="searchPagination"/>
+ <MkNotes v-if="searchPagination" :key="searchKey" :pagination="searchPagination"/>
</div>
</div>
</MkSpacer>
@@ -93,6 +93,7 @@ let channel = $ref(null);
let favorited = $ref(false);
let searchQuery = $ref('');
let searchPagination = $ref();
+let searchKey = $ref('');
const featuredPagination = $computed(() => ({
endpoint: 'notes/featured' as const,
limit: 10,
@@ -149,10 +150,12 @@ async function search() {
endpoint: 'notes/search',
limit: 10,
params: {
- query: searchQuery,
+ query: query,
channelId: channel.id,
},
};
+
+ searchKey = query;
}
const headerActions = $computed(() => {
diff --git a/packages/frontend/src/pages/explore.users.vue b/packages/frontend/src/pages/explore.users.vue
index 3f4ff5182b..f9c833dd29 100644
--- a/packages/frontend/src/pages/explore.users.vue
+++ b/packages/frontend/src/pages/explore.users.vue
@@ -28,9 +28,9 @@
<MkFoldableSection ref="tagsEl" :foldable="true" :expanded="false" class="_margin">
<template #header><i class="ti ti-hash ti-fw" style="margin-right: 0.5em;"></i>{{ i18n.ts.popularTags }}</template>
- <div class="vxjfqztj">
- <MkA v-for="tag in tagsLocal" :key="'local:' + tag.tag" :to="`/user-tags/${tag.tag}`" class="local">{{ tag.tag }}</MkA>
- <MkA v-for="tag in tagsRemote" :key="'remote:' + tag.tag" :to="`/user-tags/${tag.tag}`">{{ tag.tag }}</MkA>
+ <div>
+ <MkA v-for="tag in tagsLocal" :key="'local:' + tag.tag" :to="`/user-tags/${tag.tag}`" style="margin-right: 16px; font-weight: bold;">{{ tag.tag }}</MkA>
+ <MkA v-for="tag in tagsRemote" :key="'remote:' + tag.tag" :to="`/user-tags/${tag.tag}`" style="margin-right: 16px;">{{ tag.tag }}</MkA>
</div>
</MkFoldableSection>
@@ -132,15 +132,3 @@ os.api('hashtags/list', {
tagsRemote = tags;
});
</script>
-
-<style lang="scss" scoped>
-.vxjfqztj {
- > * {
- margin-right: 16px;
-
- &.local {
- font-weight: bold;
- }
- }
-}
-</style>
diff --git a/packages/frontend/src/pages/page-editor/els/page-editor.el.image.vue b/packages/frontend/src/pages/page-editor/els/page-editor.el.image.vue
index e97a4b07f1..1b292e8f3c 100644
--- a/packages/frontend/src/pages/page-editor/els/page-editor.el.image.vue
+++ b/packages/frontend/src/pages/page-editor/els/page-editor.el.image.vue
@@ -37,7 +37,7 @@ async function choose() {
file = fileResponse[0];
emit('update:modelValue', {
...props.modelValue,
- fileId: fileResponse.id,
+ fileId: file.id,
});
});
}
diff --git a/packages/frontend/src/pages/search.note.vue b/packages/frontend/src/pages/search.note.vue
new file mode 100644
index 0000000000..d9b44d15f5
--- /dev/null
+++ b/packages/frontend/src/pages/search.note.vue
@@ -0,0 +1,98 @@
+<template>
+<div class="_gaps">
+ <div class="_gaps">
+ <MkInput v-model="searchQuery" :large="true" :autofocus="true" type="search">
+ <template #prefix><i class="ti ti-search"></i></template>
+ </MkInput>
+ <MkFolder>
+ <template #label>{{ i18n.ts.options }}</template>
+
+ <MkFolder>
+ <template #label>{{ i18n.ts.specifyUser }}</template>
+ <template v-if="user" #suffix>@{{ user.username }}</template>
+
+ <div style="text-align: center;" class="_gaps">
+ <div v-if="user">@{{ user.username }}</div>
+ <div>
+ <MkButton v-if="user == null" primary rounded inline @click="selectUser">{{ i18n.ts.selectUser }}</MkButton>
+ <MkButton v-else danger rounded inline @click="user = null">{{ i18n.ts.remove }}</MkButton>
+ </div>
+ </div>
+ </MkFolder>
+ </MkFolder>
+ <div>
+ <MkButton large primary gradate rounded style="margin: 0 auto;" @click="search">{{ i18n.ts.search }}</MkButton>
+ </div>
+ </div>
+
+ <MkFoldableSection v-if="notePagination">
+ <template #header>{{ i18n.ts.searchResult }}</template>
+ <MkNotes :key="key" :pagination="notePagination"/>
+ </MkFoldableSection>
+</div>
+</template>
+
+<script lang="ts" setup>
+import { computed, onMounted } from 'vue';
+import MkNotes from '@/components/MkNotes.vue';
+import MkInput from '@/components/MkInput.vue';
+import MkRadios from '@/components/MkRadios.vue';
+import MkButton from '@/components/MkButton.vue';
+import { i18n } from '@/i18n';
+import * as os from '@/os';
+import MkFoldableSection from '@/components/MkFoldableSection.vue';
+import { $i } from '@/account';
+import { instance } from '@/instance';
+import MkInfo from '@/components/MkInfo.vue';
+import { useRouter } from '@/router';
+import MkFolder from '@/components/MkFolder.vue';
+
+const router = useRouter();
+
+let key = $ref(0);
+let searchQuery = $ref('');
+let searchOrigin = $ref('combined');
+let notePagination = $ref();
+let user = $ref(null);
+
+function selectUser() {
+ os.selectUser().then(_user => {
+ user = _user;
+ });
+}
+
+async function search() {
+ const query = searchQuery.toString().trim();
+
+ if (query == null || query === '') return;
+
+ if (query.startsWith('https://')) {
+ const promise = os.api('ap/show', {
+ uri: query,
+ });
+
+ os.promiseDialog(promise, null, null, i18n.ts.fetchingAsApObject);
+
+ const res = await promise;
+
+ if (res.type === 'User') {
+ router.push(`/@${res.object.username}@${res.object.host}`);
+ } else if (res.type === 'Note') {
+ router.push(`/notes/${res.object.id}`);
+ }
+
+ return;
+ }
+
+ notePagination = {
+ endpoint: 'notes/search',
+ limit: 10,
+ params: {
+ query: searchQuery,
+ userId: user ? user.id : null,
+ },
+ };
+
+ key++;
+}
+</script>
diff --git a/packages/frontend/src/pages/search.user.vue b/packages/frontend/src/pages/search.user.vue
new file mode 100644
index 0000000000..23a8978fd1
--- /dev/null
+++ b/packages/frontend/src/pages/search.user.vue
@@ -0,0 +1,77 @@
+<template>
+<div class="_gaps">
+ <div class="_gaps">
+ <MkInput v-model="searchQuery" :large="true" :autofocus="true" type="search">
+ <template #prefix><i class="ti ti-search"></i></template>
+ </MkInput>
+ <MkRadios v-model="searchOrigin" @update:model-value="search()">
+ <option value="combined">{{ i18n.ts.all }}</option>
+ <option value="local">{{ i18n.ts.local }}</option>
+ <option value="remote">{{ i18n.ts.remote }}</option>
+ </MkRadios>
+ <MkButton large primary gradate rounded @click="search">{{ i18n.ts.search }}</MkButton>
+ </div>
+
+ <MkFoldableSection v-if="userPagination">
+ <template #header>{{ i18n.ts.searchResult }}</template>
+ <MkUserList :key="key" :pagination="userPagination"/>
+ </MkFoldableSection>
+</div>
+</template>
+
+<script lang="ts" setup>
+import { computed, defineAsyncComponent, onMounted } from 'vue';
+import MkUserList from '@/components/MkUserList.vue';
+import MkInput from '@/components/MkInput.vue';
+import MkRadios from '@/components/MkRadios.vue';
+import MkButton from '@/components/MkButton.vue';
+import { i18n } from '@/i18n';
+import * as os from '@/os';
+import MkFoldableSection from '@/components/MkFoldableSection.vue';
+import { $i } from '@/account';
+import { instance } from '@/instance';
+import MkInfo from '@/components/MkInfo.vue';
+import { useRouter } from '@/router';
+
+const router = useRouter();
+
+let key = $ref('');
+let searchQuery = $ref('');
+let searchOrigin = $ref('combined');
+let userPagination = $ref();
+
+async function search() {
+ const query = searchQuery.toString().trim();
+
+ if (query == null || query === '') return;
+
+ if (query.startsWith('https://')) {
+ const promise = os.api('ap/show', {
+ uri: query,
+ });
+
+ os.promiseDialog(promise, null, null, i18n.ts.fetchingAsApObject);
+
+ const res = await promise;
+
+ if (res.type === 'User') {
+ router.push(`/@${res.object.username}@${res.object.host}`);
+ } else if (res.type === 'Note') {
+ router.push(`/notes/${res.object.id}`);
+ }
+
+ return;
+ }
+
+ userPagination = {
+ endpoint: 'users/search',
+ limit: 10,
+ params: {
+ query: searchQuery,
+ origin: searchOrigin,
+ },
+ };
+
+ key = query;
+}
+</script>
diff --git a/packages/frontend/src/pages/search.vue b/packages/frontend/src/pages/search.vue
index 5523d5cf4d..9f3d8da560 100644
--- a/packages/frontend/src/pages/search.vue
+++ b/packages/frontend/src/pages/search.vue
@@ -1,133 +1,38 @@
<template>
<MkStickyContainer>
<template #header><MkPageHeader v-model:tab="tab" :actions="headerActions" :tabs="headerTabs"/></template>
- <MkSpacer v-if="tab === 'note'" :content-max="800">
- <div v-if="notesSearchAvailable" class="_gaps">
- <div class="_gaps">
- <MkInput v-model="searchQuery" :large="true" :autofocus="true" type="search">
- <template #prefix><i class="ti ti-search"></i></template>
- </MkInput>
- <MkButton large primary gradate rounded @click="search">{{ i18n.ts.search }}</MkButton>
- </div>
- <MkFoldableSection v-if="notePagination">
- <template #header>{{ i18n.ts.searchResult }}</template>
- <MkNotes :key="key" :pagination="notePagination"/>
- </MkFoldableSection>
+ <MkSpacer v-if="tab === 'note'" :content-max="800">
+ <div v-if="notesSearchAvailable">
+ <XNote/>
</div>
<div v-else>
<MkInfo warn>{{ i18n.ts.notesSearchNotAvailable }}</MkInfo>
</div>
</MkSpacer>
- <MkSpacer v-else-if="tab === 'user'" :content-max="800">
- <div class="_gaps">
- <div class="_gaps">
- <MkInput v-model="searchQuery" :large="true" :autofocus="true" type="search">
- <template #prefix><i class="ti ti-search"></i></template>
- </MkInput>
- <MkRadios v-model="searchOrigin" @update:model-value="search()">
- <option value="combined">{{ i18n.ts.all }}</option>
- <option value="local">{{ i18n.ts.local }}</option>
- <option value="remote">{{ i18n.ts.remote }}</option>
- </MkRadios>
- <MkButton large primary gradate rounded @click="search">{{ i18n.ts.search }}</MkButton>
- </div>
- <MkFoldableSection v-if="userPagination">
- <template #header>{{ i18n.ts.searchResult }}</template>
- <MkUserList :key="key" :pagination="userPagination"/>
- </MkFoldableSection>
- </div>
+ <MkSpacer v-else-if="tab === 'user'" :content-max="800">
+ <XUser/>
</MkSpacer>
</MkStickyContainer>
</template>
<script lang="ts" setup>
-import { computed, onMounted } from 'vue';
-import MkNotes from '@/components/MkNotes.vue';
-import MkUserList from '@/components/MkUserList.vue';
-import MkInput from '@/components/MkInput.vue';
-import MkRadios from '@/components/MkRadios.vue';
-import MkButton from '@/components/MkButton.vue';
+import { computed, defineAsyncComponent, onMounted } from 'vue';
import { i18n } from '@/i18n';
import { definePageMetadata } from '@/scripts/page-metadata';
import * as os from '@/os';
-import MkFoldableSection from '@/components/MkFoldableSection.vue';
import { $i } from '@/account';
import { instance } from '@/instance';
import MkInfo from '@/components/MkInfo.vue';
-import { useRouter } from '@/router';
-
-const router = useRouter();
-const props = defineProps<{
- query: string;
- channel?: string;
- type?: string;
- origin?: string;
-}>();
+const XNote = defineAsyncComponent(() => import('./search.note.vue'));
+const XUser = defineAsyncComponent(() => import('./search.user.vue'));
-let key = $ref('');
let tab = $ref('note');
-let searchQuery = $ref('');
-let searchOrigin = $ref('combined');
-let notePagination = $ref();
-let userPagination = $ref();
const notesSearchAvailable = (($i == null && instance.policies.canSearchNotes) || ($i != null && $i.policies.canSearchNotes));
-onMounted(() => {
- tab = props.type ?? 'note';
- searchQuery = props.query ?? '';
- searchOrigin = props.origin ?? 'combined';
-});
-
-async function search() {
- const query = searchQuery.toString().trim();
-
- if (query == null || query === '') return;
-
- if (query.startsWith('https://')) {
- const promise = os.api('ap/show', {
- uri: query,
- });
-
- os.promiseDialog(promise, null, null, i18n.ts.fetchingAsApObject);
-
- const res = await promise;
-
- if (res.type === 'User') {
- router.push(`/@${res.object.username}@${res.object.host}`);
- } else if (res.type === 'Note') {
- router.push(`/notes/${res.object.id}`);
- }
-
- return;
- }
-
- if (tab === 'note') {
- notePagination = {
- endpoint: 'notes/search',
- limit: 10,
- params: {
- query: searchQuery,
- channelId: props.channel,
- },
- };
- } else if (tab === 'user') {
- userPagination = {
- endpoint: 'users/search',
- limit: 10,
- params: {
- query: searchQuery,
- origin: searchOrigin,
- },
- };
- }
-
- key = query;
-}
-
const headerActions = $computed(() => []);
const headerTabs = $computed(() => [{
@@ -141,7 +46,7 @@ const headerTabs = $computed(() => [{
}]);
definePageMetadata(computed(() => ({
- title: searchQuery ? i18n.t('searchWith', { q: searchQuery }) : i18n.ts.search,
+ title: i18n.ts.search,
icon: 'ti ti-search',
})));
</script>
diff --git a/packages/frontend/src/pages/settings/privacy.vue b/packages/frontend/src/pages/settings/privacy.vue
index c83c48d5ad..a1af0ba80b 100644
--- a/packages/frontend/src/pages/settings/privacy.vue
+++ b/packages/frontend/src/pages/settings/privacy.vue
@@ -24,6 +24,10 @@
{{ i18n.ts.noCrawle }}
<template #caption>{{ i18n.ts.noCrawleDescription }}</template>
</MkSwitch>
+ <MkSwitch v-model="preventAiLearning" @update:model-value="save()">
+ {{ i18n.ts.preventAiLearning }}<span class="_beta">{{ i18n.ts.beta }}</span>
+ <template #caption>{{ i18n.ts.preventAiLearningDescription }}</template>
+ </MkSwitch>
<MkSwitch v-model="isExplorable" @update:model-value="save()">
{{ i18n.ts.makeExplorable }}
<template #caption>{{ i18n.ts.makeExplorableDescription }}</template>
@@ -71,6 +75,7 @@ import { definePageMetadata } from '@/scripts/page-metadata';
let isLocked = $ref($i.isLocked);
let autoAcceptFollowed = $ref($i.autoAcceptFollowed);
let noCrawle = $ref($i.noCrawle);
+let preventAiLearning = $ref($i.preventAiLearning);
let isExplorable = $ref($i.isExplorable);
let hideOnlineStatus = $ref($i.hideOnlineStatus);
let publicReactions = $ref($i.publicReactions);
@@ -86,6 +91,7 @@ function save() {
isLocked: !!isLocked,
autoAcceptFollowed: !!autoAcceptFollowed,
noCrawle: !!noCrawle,
+ preventAiLearning: !!preventAiLearning,
isExplorable: !!isExplorable,
hideOnlineStatus: !!hideOnlineStatus,
publicReactions: !!publicReactions,
diff --git a/packages/misskey-js/package.json b/packages/misskey-js/package.json
index 2e9bc76059..23836b05f5 100644
--- a/packages/misskey-js/package.json
+++ b/packages/misskey-js/package.json
@@ -24,9 +24,9 @@
"@swc/jest": "0.2.26",
"@types/jest": "29.5.1",
"@types/node": "18.16.3",
- "@typescript-eslint/eslint-plugin": "5.59.2",
- "@typescript-eslint/parser": "5.59.2",
- "eslint": "8.39.0",
+ "@typescript-eslint/eslint-plugin": "5.59.5",
+ "@typescript-eslint/parser": "5.59.5",
+ "eslint": "8.40.0",
"jest": "29.5.0",
"jest-fetch-mock": "3.0.3",
"jest-websocket-mock": "2.4.0",
diff --git a/packages/sw/package.json b/packages/sw/package.json
index 75bb40ccb1..96c4bfe889 100644
--- a/packages/sw/package.json
+++ b/packages/sw/package.json
@@ -14,9 +14,9 @@
"misskey-js": "workspace:*"
},
"devDependencies": {
- "@typescript-eslint/parser": "5.59.2",
+ "@typescript-eslint/parser": "5.59.5",
"@typescript/lib-webworker": "npm:@types/serviceworker@0.0.67",
- "eslint": "8.39.0",
+ "eslint": "8.40.0",
"eslint-plugin-import": "2.27.5",
"typescript": "5.0.4"
}
diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml
index 04d2fcf36b..74a7e89857 100644
--- a/pnpm-lock.yaml
+++ b/pnpm-lock.yaml
@@ -44,20 +44,20 @@ importers:
specifier: 2.0.1
version: 2.0.1
'@typescript-eslint/eslint-plugin':
- specifier: 5.59.2
- version: 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4)
+ specifier: 5.59.5
+ version: 5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/parser':
- specifier: 5.59.2
- version: 5.59.2(eslint@8.39.0)(typescript@5.0.4)
+ specifier: 5.59.5
+ version: 5.59.5(eslint@8.40.0)(typescript@5.0.4)
cross-env:
specifier: 7.0.3
version: 7.0.3
cypress:
- specifier: 12.11.0
- version: 12.11.0
+ specifier: 12.12.0
+ version: 12.12.0
eslint:
- specifier: 8.39.0
- version: 8.39.0
+ specifier: 8.40.0
+ version: 8.40.0
start-server-and-test:
specifier: 2.0.0
version: 2.0.0
@@ -95,8 +95,8 @@ importers:
specifier: 8.2.1
version: 8.2.1
'@fastify/http-proxy':
- specifier: 9.0.0
- version: 9.0.0
+ specifier: 9.1.0
+ version: 9.1.0
'@fastify/multipart':
specifier: 7.6.0
version: 7.6.0
@@ -188,8 +188,8 @@ importers:
specifier: 4.2.2
version: 4.2.2
file-type:
- specifier: 18.3.0
- version: 18.3.0
+ specifier: 18.4.0
+ version: 18.4.0
fluent-ffmpeg:
specifier: 2.1.2
version: 2.1.2
@@ -200,8 +200,8 @@ importers:
specifier: 12.6.0
version: 12.6.0
happy-dom:
- specifier: 9.10.2
- version: 9.10.2
+ specifier: 9.16.0
+ version: 9.16.0
hpagent:
specifier: 1.2.0
version: 1.2.0
@@ -251,8 +251,8 @@ importers:
specifier: 3.3.1
version: 3.3.1
nodemailer:
- specifier: 6.9.1
- version: 6.9.1
+ specifier: 6.9.2
+ version: 6.9.2
nsfwjs:
specifier: 2.4.2
version: 2.4.2(@tensorflow/tfjs@4.4.0)
@@ -263,8 +263,8 @@ importers:
specifier: 0.0.14
version: 0.0.14
otpauth:
- specifier: 9.1.1
- version: 9.1.1
+ specifier: 9.1.2
+ version: 9.1.2
parse5:
specifier: 7.1.2
version: 7.1.2
@@ -348,7 +348,7 @@ importers:
version: 2.1.0
summaly:
specifier: github:misskey-dev/summaly
- version: github.com/misskey-dev/summaly/2d63e2a0066f89871e777cc81d43c1ade8c97517
+ version: github.com/misskey-dev/summaly/77dd5654bb82280b38c1f50e51a771c33f3df503
systeminformation:
specifier: 5.17.12
version: 5.17.12
@@ -368,8 +368,8 @@ importers:
specifier: 14.0.0
version: 14.0.0
typeorm:
- specifier: 0.3.15
- version: 0.3.15(ioredis@5.3.2)(pg@8.10.0)
+ specifier: 0.3.16
+ version: 0.3.16(ioredis@5.3.2)(pg@8.10.0)
typescript:
specifier: 5.0.4
version: 5.0.4
@@ -523,8 +523,8 @@ importers:
specifier: 2.1.1
version: 2.1.1
'@types/node':
- specifier: 18.16.3
- version: 18.16.3
+ specifier: 20.1.3
+ version: 20.1.3
'@types/node-fetch':
specifier: 3.0.3
version: 3.0.3
@@ -562,8 +562,8 @@ importers:
specifier: 2.9.0
version: 2.9.0
'@types/semver':
- specifier: 7.3.13
- version: 7.3.13
+ specifier: 7.5.0
+ version: 7.5.0
'@types/sharp':
specifier: 0.32.0
version: 0.32.0
@@ -595,29 +595,29 @@ importers:
specifier: 8.5.4
version: 8.5.4
'@typescript-eslint/eslint-plugin':
- specifier: 5.59.2
- version: 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4)
+ specifier: 5.59.5
+ version: 5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/parser':
- specifier: 5.59.2
- version: 5.59.2(eslint@8.39.0)(typescript@5.0.4)
+ specifier: 5.59.5
+ version: 5.59.5(eslint@8.40.0)(typescript@5.0.4)
aws-sdk-client-mock:
- specifier: ^2.1.1
+ specifier: 2.1.1
version: 2.1.1
cross-env:
specifier: 7.0.3
version: 7.0.3
eslint:
- specifier: 8.39.0
- version: 8.39.0
+ specifier: 8.40.0
+ version: 8.40.0
eslint-plugin-import:
specifier: 2.27.5
- version: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)
+ version: 2.27.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)
execa:
specifier: 6.1.0
version: 6.1.0
jest:
specifier: 29.5.0
- version: 29.5.0(@types/node@18.16.3)
+ version: 29.5.0(@types/node@20.1.3)
jest-mock:
specifier: 29.5.0
version: 29.5.0
@@ -629,16 +629,16 @@ importers:
version: 14.1.2
'@rollup/plugin-alias':
specifier: 5.0.0
- version: 5.0.0(rollup@3.21.3)
+ version: 5.0.0(rollup@3.21.6)
'@rollup/plugin-json':
specifier: 6.0.0
- version: 6.0.0(rollup@3.21.3)
+ version: 6.0.0(rollup@3.21.6)
'@rollup/plugin-replace':
- specifier: ^5.0.2
- version: 5.0.2(rollup@3.21.3)
+ specifier: 5.0.2
+ version: 5.0.2(rollup@3.21.6)
'@rollup/pluginutils':
specifier: 5.0.2
- version: 5.0.2(rollup@3.21.3)
+ version: 5.0.2(rollup@3.21.6)
'@syuilo/aiscript':
specifier: 0.13.2
version: 0.13.2
@@ -646,14 +646,14 @@ importers:
specifier: 2.17.0
version: 2.17.0
'@vitejs/plugin-vue':
- specifier: 4.2.1
- version: 4.2.1(vite@4.3.4)(vue@3.2.47)
+ specifier: 4.2.2
+ version: 4.2.2(vite@4.3.5)(vue@3.3.1)
'@vue-macros/reactivity-transform':
- specifier: ^0.3.5
- version: 0.3.5(rollup@3.21.3)(vue@3.2.47)
+ specifier: 0.3.6
+ version: 0.3.6(rollup@3.21.6)(vue@3.3.1)
'@vue/compiler-sfc':
- specifier: 3.2.47
- version: 3.2.47
+ specifier: 3.3.1
+ version: 3.3.1
autosize:
specifier: 5.0.2
version: 5.0.2
@@ -685,11 +685,11 @@ importers:
specifier: 2.0.1
version: 2.0.1(chart.js@4.3.0)
chromatic:
- specifier: 6.17.3
- version: 6.17.3
+ specifier: 6.17.4
+ version: 6.17.4
compare-versions:
- specifier: 5.0.1
- version: 5.0.1
+ specifier: 5.0.3
+ version: 5.0.3
cropperjs:
specifier: 2.0.0-beta.2
version: 2.0.0-beta.2
@@ -706,8 +706,8 @@ importers:
specifier: 3.11.5
version: 3.11.5
idb-keyval:
- specifier: 6.2.0
- version: 6.2.0
+ specifier: 6.2.1
+ version: 6.2.1
insert-text-at-cursor:
specifier: 0.3.0
version: 0.3.0
@@ -742,8 +742,8 @@ importers:
specifier: 1.0.0
version: 1.0.0
rollup:
- specifier: 3.21.3
- version: 3.21.3
+ specifier: 3.21.6
+ version: 3.21.6
s-age:
specifier: 1.1.2
version: 1.1.2
@@ -793,81 +793,81 @@ importers:
specifier: 1.8.0
version: 1.8.0
vite:
- specifier: 4.3.4
- version: 4.3.4(@types/node@18.16.3)(sass@1.62.1)
+ specifier: 4.3.5
+ version: 4.3.5(@types/node@20.1.3)(sass@1.62.1)
vue:
- specifier: 3.2.47
- version: 3.2.47
+ specifier: 3.3.1
+ version: 3.3.1
vue-plyr:
specifier: 7.0.0
version: 7.0.0
vue-prism-editor:
specifier: 2.0.0-alpha.2
- version: 2.0.0-alpha.2(vue@3.2.47)
+ version: 2.0.0-alpha.2(vue@3.3.1)
vuedraggable:
specifier: next
- version: 4.1.0(vue@3.2.47)
+ version: 4.1.0(vue@3.3.1)
devDependencies:
'@storybook/addon-actions':
- specifier: 7.0.7
- version: 7.0.7(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.0.10
+ version: 7.0.10(react-dom@18.2.0)(react@18.2.0)
'@storybook/addon-essentials':
- specifier: 7.0.7
- version: 7.0.7(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.0.10
+ version: 7.0.10(react-dom@18.2.0)(react@18.2.0)
'@storybook/addon-interactions':
- specifier: 7.0.7
- version: 7.0.7(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.0.10
+ version: 7.0.10(react-dom@18.2.0)(react@18.2.0)
'@storybook/addon-links':
- specifier: 7.0.7
- version: 7.0.7(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.0.10
+ version: 7.0.10(react-dom@18.2.0)(react@18.2.0)
'@storybook/addon-storysource':
- specifier: 7.0.7
- version: 7.0.7(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.0.10
+ version: 7.0.10(react-dom@18.2.0)(react@18.2.0)
'@storybook/addons':
- specifier: 7.0.7
- version: 7.0.7(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.0.10
+ version: 7.0.10(react-dom@18.2.0)(react@18.2.0)
'@storybook/blocks':
- specifier: 7.0.7
- version: 7.0.7(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.0.10
+ version: 7.0.10(react-dom@18.2.0)(react@18.2.0)
'@storybook/core-events':
- specifier: 7.0.7
- version: 7.0.7
+ specifier: 7.0.10
+ version: 7.0.10
'@storybook/jest':
specifier: 0.1.0
version: 0.1.0
'@storybook/manager-api':
- specifier: 7.0.7
- version: 7.0.7(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.0.10
+ version: 7.0.10(react-dom@18.2.0)(react@18.2.0)
'@storybook/preview-api':
- specifier: 7.0.7
- version: 7.0.7
+ specifier: 7.0.10
+ version: 7.0.10
'@storybook/react':
- specifier: 7.0.7
- version: 7.0.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
+ specifier: 7.0.10
+ version: 7.0.10(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
'@storybook/react-vite':
- specifier: 7.0.7
- version: 7.0.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(vite@4.3.4)
+ specifier: 7.0.10
+ version: 7.0.10(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(vite@4.3.5)
'@storybook/testing-library':
specifier: 0.1.0
version: 0.1.0
'@storybook/theming':
- specifier: 7.0.7
- version: 7.0.7(react-dom@18.2.0)(react@18.2.0)
+ specifier: 7.0.10
+ version: 7.0.10(react-dom@18.2.0)(react@18.2.0)
'@storybook/types':
- specifier: 7.0.7
- version: 7.0.7
+ specifier: 7.0.10
+ version: 7.0.10
'@storybook/vue3':
- specifier: 7.0.7
- version: 7.0.7(vue@3.2.47)
+ specifier: 7.0.10
+ version: 7.0.10(vue@3.3.1)
'@storybook/vue3-vite':
- specifier: 7.0.7
- version: 7.0.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(vite@4.3.4)(vue@3.2.47)
+ specifier: 7.0.10
+ version: 7.0.10(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(vite@4.3.5)(vue@3.3.1)
'@testing-library/jest-dom':
specifier: 5.16.5
version: 5.16.5
'@testing-library/vue':
specifier: 7.0.0
- version: 7.0.0(@vue/compiler-sfc@3.2.47)(vue@3.2.47)
+ version: 7.0.0(@vue/compiler-sfc@3.3.1)(vue@3.3.1)
'@types/escape-regexp':
specifier: 0.0.1
version: 0.0.1
@@ -878,17 +878,17 @@ importers:
specifier: 4.0.10
version: 4.0.10
'@types/gulp-rename':
- specifier: 2.0.1
- version: 2.0.1
+ specifier: 2.0.2
+ version: 2.0.2
'@types/matter-js':
- specifier: 0.18.2
- version: 0.18.2
+ specifier: 0.18.3
+ version: 0.18.3
'@types/micromatch':
specifier: 4.0.2
version: 4.0.2
'@types/node':
- specifier: 18.16.3
- version: 18.16.3
+ specifier: 20.1.3
+ version: 20.1.3
'@types/punycode':
specifier: 2.1.0
version: 2.1.0
@@ -917,17 +917,17 @@ importers:
specifier: 8.5.4
version: 8.5.4
'@typescript-eslint/eslint-plugin':
- specifier: 5.59.2
- version: 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4)
+ specifier: 5.59.5
+ version: 5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/parser':
- specifier: 5.59.2
- version: 5.59.2(eslint@8.39.0)(typescript@5.0.4)
+ specifier: 5.59.5
+ version: 5.59.5(eslint@8.40.0)(typescript@5.0.4)
'@vitest/coverage-c8':
- specifier: 0.30.1
- version: 0.30.1(vitest@0.30.1)
+ specifier: 0.31.0
+ version: 0.31.0(vitest@0.31.0)
'@vue/runtime-core':
- specifier: 3.2.47
- version: 3.2.47
+ specifier: 3.3.1
+ version: 3.3.1
astring:
specifier: 1.8.4
version: 1.8.4
@@ -938,23 +938,23 @@ importers:
specifier: 7.0.3
version: 7.0.3
cypress:
- specifier: 12.11.0
- version: 12.11.0
+ specifier: 12.12.0
+ version: 12.12.0
eslint:
- specifier: 8.39.0
- version: 8.39.0
+ specifier: 8.40.0
+ version: 8.40.0
eslint-plugin-import:
specifier: 2.27.5
- version: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)
+ version: 2.27.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)
eslint-plugin-vue:
- specifier: 9.11.0
- version: 9.11.0(eslint@8.39.0)
+ specifier: 9.12.0
+ version: 9.12.0(eslint@8.40.0)
fast-glob:
specifier: 3.2.12
version: 3.2.12
happy-dom:
- specifier: 9.10.2
- version: 9.10.2
+ specifier: 9.16.0
+ version: 9.16.0
micromatch:
specifier: 3.1.10
version: 3.1.10
@@ -977,29 +977,29 @@ importers:
specifier: 2.0.0
version: 2.0.0
storybook:
- specifier: 7.0.7
- version: 7.0.7
+ specifier: 7.0.10
+ version: 7.0.10
storybook-addon-misskey-theme:
specifier: github:misskey-dev/storybook-addon-misskey-theme
- version: github.com/misskey-dev/storybook-addon-misskey-theme/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@7.0.7)(@storybook/components@7.0.7)(@storybook/core-events@7.0.7)(@storybook/manager-api@7.0.7)(@storybook/preview-api@7.0.7)(@storybook/theming@7.0.7)(@storybook/types@7.0.7)(react-dom@18.2.0)(react@18.2.0)
+ version: github.com/misskey-dev/storybook-addon-misskey-theme/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@7.0.10)(@storybook/components@7.0.10)(@storybook/core-events@7.0.10)(@storybook/manager-api@7.0.10)(@storybook/preview-api@7.0.10)(@storybook/theming@7.0.10)(@storybook/types@7.0.10)(react-dom@18.2.0)(react@18.2.0)
summaly:
specifier: github:misskey-dev/summaly
- version: github.com/misskey-dev/summaly/2d63e2a0066f89871e777cc81d43c1ade8c97517
+ version: github.com/misskey-dev/summaly/77dd5654bb82280b38c1f50e51a771c33f3df503
vite-plugin-turbosnap:
specifier: 1.0.2
version: 1.0.2
vitest:
- specifier: 0.30.1
- version: 0.30.1(happy-dom@9.10.2)(sass@1.62.1)
+ specifier: 0.31.0
+ version: 0.31.0(happy-dom@9.16.0)(sass@1.62.1)
vitest-fetch-mock:
specifier: 0.2.2
- version: 0.2.2(vitest@0.30.1)
+ version: 0.2.2(vitest@0.31.0)
vue-eslint-parser:
- specifier: 9.1.1
- version: 9.1.1(eslint@8.39.0)
+ specifier: 9.2.1
+ version: 9.2.1(eslint@8.40.0)
vue-tsc:
- specifier: 1.6.3
- version: 1.6.3(typescript@5.0.4)
+ specifier: 1.6.4
+ version: 1.6.4(typescript@5.0.4)
packages/misskey-js:
dependencies:
@@ -1029,14 +1029,14 @@ importers:
specifier: 18.16.3
version: 18.16.3
'@typescript-eslint/eslint-plugin':
- specifier: 5.59.2
- version: 5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4)
+ specifier: 5.59.5
+ version: 5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)(typescript@5.0.4)
'@typescript-eslint/parser':
- specifier: 5.59.2
- version: 5.59.2(eslint@8.39.0)(typescript@5.0.4)
+ specifier: 5.59.5
+ version: 5.59.5(eslint@8.40.0)(typescript@5.0.4)
eslint:
- specifier: 8.39.0
- version: 8.39.0
+ specifier: 8.40.0
+ version: 8.40.0
jest:
specifier: 29.5.0
version: 29.5.0(@types/node@18.16.3)
@@ -1069,17 +1069,17 @@ importers:
version: link:../misskey-js
devDependencies:
'@typescript-eslint/parser':
- specifier: 5.59.2
- version: 5.59.2(eslint@8.39.0)(typescript@5.0.4)
+ specifier: 5.59.5
+ version: 5.59.5(eslint@8.40.0)(typescript@5.0.4)
'@typescript/lib-webworker':
specifier: npm:@types/serviceworker@0.0.67
version: /@types/serviceworker@0.0.67
eslint:
- specifier: 8.39.0
- version: 8.39.0
+ specifier: 8.40.0
+ version: 8.40.0
eslint-plugin-import:
specifier: 2.27.5
- version: 2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)
+ version: 2.27.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)
typescript:
specifier: 5.0.4
version: 5.0.4
@@ -2099,10 +2099,10 @@ packages:
'@babel/helper-compilation-targets': 7.21.4(@babel/core@7.21.3)
'@babel/helper-module-transforms': 7.21.2
'@babel/helpers': 7.21.0
- '@babel/parser': 7.21.4
+ '@babel/parser': 7.21.8
'@babel/template': 7.20.7
'@babel/traverse': 7.21.3
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
convert-source-map: 1.9.0
debug: 4.3.4(supports-color@8.1.1)
gensync: 1.0.0-beta.2
@@ -2116,7 +2116,7 @@ packages:
resolution: {integrity: sha512-QS3iR1GYC/YGUnW7IdggFeN5c1poPUurnGttOV/bZgPGV+izC/D8HnD6DLwod0fsatNyVn1G3EVWMYIF0nHbeA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
'@jridgewell/gen-mapping': 0.3.2
'@jridgewell/trace-mapping': 0.3.17
jsesc: 2.5.2
@@ -2126,7 +2126,7 @@ packages:
resolution: {integrity: sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@babel/helper-builder-binary-assignment-operator-visitor@7.18.9:
@@ -2134,7 +2134,7 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/helper-explode-assignable-expression': 7.18.6
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@babel/helper-compilation-targets@7.21.4(@babel/core@7.21.3):
@@ -2206,7 +2206,7 @@ packages:
resolution: {integrity: sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@babel/helper-function-name@7.21.0:
@@ -2214,28 +2214,28 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/template': 7.20.7
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@babel/helper-hoist-variables@7.18.6:
resolution: {integrity: sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@babel/helper-member-expression-to-functions@7.21.0:
resolution: {integrity: sha512-Muu8cdZwNN6mRRNG6lAYErJ5X3bRevgYR2O8wN0yn7jJSnGDu6eG59RfT29JHxGUovyfrh6Pj0XzmR7drNVL3Q==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@babel/helper-module-imports@7.18.6:
resolution: {integrity: sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@babel/helper-module-transforms@7.21.2:
@@ -2249,7 +2249,7 @@ packages:
'@babel/helper-validator-identifier': 7.19.1
'@babel/template': 7.20.7
'@babel/traverse': 7.21.3
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
transitivePeerDependencies:
- supports-color
dev: true
@@ -2258,7 +2258,7 @@ packages:
resolution: {integrity: sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@babel/helper-plugin-utils@7.20.2:
@@ -2276,7 +2276,7 @@ packages:
'@babel/helper-annotate-as-pure': 7.18.6
'@babel/helper-environment-visitor': 7.18.9
'@babel/helper-wrap-function': 7.20.5
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
transitivePeerDependencies:
- supports-color
dev: true
@@ -2290,7 +2290,7 @@ packages:
'@babel/helper-optimise-call-expression': 7.18.6
'@babel/template': 7.20.7
'@babel/traverse': 7.21.3
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
transitivePeerDependencies:
- supports-color
dev: true
@@ -2299,27 +2299,31 @@ packages:
resolution: {integrity: sha512-+0woI/WPq59IrqDYbVGfshjT5Dmk/nnbdpcF8SnMhhXObpTq2KNBdLFRFrkVdbDOyUmHBCxzm5FHV1rACIkIbA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@babel/helper-skip-transparent-expression-wrappers@7.20.0:
resolution: {integrity: sha512-5y1JYeNKfvnT8sZcK9DVRtpTbGiomYIHviSP3OQWmDPU3DeH4a1ZlT/N2lyQ5P8egjcRaT/Y9aNqUxK0WsnIIg==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@babel/helper-split-export-declaration@7.18.6:
resolution: {integrity: sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==}
engines: {node: '>=6.9.0'}
dependencies:
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@babel/helper-string-parser@7.19.4:
resolution: {integrity: sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==}
engines: {node: '>=6.9.0'}
+ /@babel/helper-string-parser@7.21.5:
+ resolution: {integrity: sha512-5pTUx3hAJaZIdW99sJ6ZUUgWq/Y+Hja7TowEnLNMm1VivRgZQL3vpBY3qUACVsvw+yQU6+YgfBVmcbLaZtrA1w==}
+ engines: {node: '>=6.9.0'}
+
/@babel/helper-validator-identifier@7.19.1:
resolution: {integrity: sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==}
engines: {node: '>=6.9.0'}
@@ -2336,7 +2340,7 @@ packages:
'@babel/helper-function-name': 7.21.0
'@babel/template': 7.20.7
'@babel/traverse': 7.21.3
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
transitivePeerDependencies:
- supports-color
dev: true
@@ -2347,7 +2351,7 @@ packages:
dependencies:
'@babel/template': 7.20.7
'@babel/traverse': 7.21.3
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
transitivePeerDependencies:
- supports-color
dev: true
@@ -2361,15 +2365,15 @@ packages:
js-tokens: 4.0.0
dev: true
- /@babel/parser@7.20.7:
- resolution: {integrity: sha512-T3Z9oHybU+0vZlY9CiDSJQTD5ZapcW18ZctFMi0MOAl/4BjFF4ul7NVSARLdbGO5vDqy9eQiGTV0LtKfvCYvcg==}
+ /@babel/parser@7.21.4:
+ resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
'@babel/types': 7.21.4
- /@babel/parser@7.21.4:
- resolution: {integrity: sha512-alVJj7k7zIxqBZ7BTRhz0IqJFxW1VJbm6N8JbcYhQ186df9ZBPbZBmWSqAMXwHGsCJdYks7z/voa3ibiS5bCIw==}
+ /@babel/parser@7.21.8:
+ resolution: {integrity: sha512-6zavDGdzG3gUqAdWvlLFfk+36RilI+Pwyuuh7HItyeScCWP3k6i8vKclAQ0bM/0y/Kz/xiwvxhMv9MgTJP5gmA==}
engines: {node: '>=6.0.0'}
hasBin: true
dependencies:
@@ -3078,7 +3082,7 @@ packages:
'@babel/helper-module-imports': 7.18.6
'@babel/helper-plugin-utils': 7.20.2
'@babel/plugin-syntax-jsx': 7.18.6(@babel/core@7.21.3)
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@babel/plugin-transform-regenerator@7.20.5(@babel/core@7.21.3):
@@ -3265,7 +3269,7 @@ packages:
'@babel/plugin-transform-unicode-escapes': 7.18.10(@babel/core@7.21.3)
'@babel/plugin-transform-unicode-regex': 7.18.6(@babel/core@7.21.3)
'@babel/preset-modules': 0.1.5(@babel/core@7.21.3)
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
babel-plugin-polyfill-corejs2: 0.3.3(@babel/core@7.21.3)
babel-plugin-polyfill-corejs3: 0.6.0(@babel/core@7.21.3)
babel-plugin-polyfill-regenerator: 0.4.1(@babel/core@7.21.3)
@@ -3296,7 +3300,7 @@ packages:
'@babel/helper-plugin-utils': 7.20.2
'@babel/plugin-proposal-unicode-property-regex': 7.18.6(@babel/core@7.21.3)
'@babel/plugin-transform-dotall-regex': 7.18.6(@babel/core@7.21.3)
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
esutils: 2.0.3
dev: true
@@ -3349,8 +3353,8 @@ packages:
engines: {node: '>=6.9.0'}
dependencies:
'@babel/code-frame': 7.18.6
- '@babel/parser': 7.21.4
- '@babel/types': 7.21.4
+ '@babel/parser': 7.21.8
+ '@babel/types': 7.21.5
dev: true
/@babel/traverse@7.21.3:
@@ -3363,8 +3367,8 @@ packages:
'@babel/helper-function-name': 7.21.0
'@babel/helper-hoist-variables': 7.18.6
'@babel/helper-split-export-declaration': 7.18.6
- '@babel/parser': 7.21.4
- '@babel/types': 7.21.4
+ '@babel/parser': 7.21.8
+ '@babel/types': 7.21.5
debug: 4.3.4(supports-color@8.1.1)
globals: 11.12.0
transitivePeerDependencies:
@@ -3379,6 +3383,14 @@ packages:
'@babel/helper-validator-identifier': 7.19.1
to-fast-properties: 2.0.0
+ /@babel/types@7.21.5:
+ resolution: {integrity: sha512-m4AfNvVF2mVC/F7fDEdH2El3HzUg9It/XsCxZiOTTA3m3qYfcSVSbTfM6Q9xG+hYDniZssYhlXKKUMD5m8tF4Q==}
+ engines: {node: '>=6.9.0'}
+ dependencies:
+ '@babel/helper-string-parser': 7.21.5
+ '@babel/helper-validator-identifier': 7.19.1
+ to-fast-properties: 2.0.0
+
/@base2/pretty-print-object@1.0.1:
resolution: {integrity: sha512-4iri8i1AqYHJE2DstZYkyEprg6Pq6sKx3xn5FpySk9sNhH7qN2LLlHJCfDTZRILNwQNPD7mATWM0TBui7uC1pA==}
dev: true
@@ -3756,14 +3768,14 @@ packages:
requiresBuild: true
optional: true
- /@eslint-community/eslint-utils@4.4.0(eslint@8.39.0):
+ /@eslint-community/eslint-utils@4.4.0(eslint@8.40.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.39.0
- eslint-visitor-keys: 3.4.0
+ eslint: 8.40.0
+ eslint-visitor-keys: 3.4.1
dev: true
/@eslint-community/regexpp@4.5.0:
@@ -3771,13 +3783,13 @@ packages:
engines: {node: ^12.0.0 || ^14.0.0 || >=16.0.0}
dev: true
- /@eslint/eslintrc@2.0.2:
- resolution: {integrity: sha512-3W4f5tDUra+pA+FzgugqL2pRimUTDJWKr7BINqOpkZrC0uYI0NIc0/JFgBROCU07HR6GieA5m3/rsPIhDmCXTQ==}
+ /@eslint/eslintrc@2.0.3:
+ resolution: {integrity: sha512-+5gy6OQfk+xx3q0d6jGZZC3f3KzAkXc/IanVxd1is/VIIziRqqt3ongQz0FiTUXqTk0c7aDB3OaFuKnuSoJicQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
ajv: 6.12.6
debug: 4.3.4(supports-color@8.1.1)
- espree: 9.5.1
+ espree: 9.5.2
globals: 13.19.0
ignore: 5.2.4
import-fresh: 3.3.0
@@ -3788,8 +3800,8 @@ packages:
- supports-color
dev: true
- /@eslint/js@8.39.0:
- resolution: {integrity: sha512-kf9RB0Fg7NZfap83B3QOqOGg9QmD9yBudqQXzzOtn3i4y7ZUXe5ONeW34Gwi+TxhH4mvj72R1Zc300KUMa9Bng==}
+ /@eslint/js@8.40.0:
+ resolution: {integrity: sha512-ElyB54bJIhXQYVKjDSvCkPO1iU1tSAeVQJbllWJq1XQSmmA4dgFk8CbiBGpiOPxleE48vDogxCtmMYku4HSVLA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
@@ -3852,8 +3864,8 @@ packages:
fast-json-stringify: 5.7.0
dev: false
- /@fastify/http-proxy@9.0.0:
- resolution: {integrity: sha512-VbP7rccoX9rn56bvK5Sm/GsQ+UwjlQOJa0QiTX69dcjFWSV0I423vgH0KYPczAJ8ZpoM2HU7DP51ir1KKHBtTg==}
+ /@fastify/http-proxy@9.1.0:
+ resolution: {integrity: sha512-vgHCTDKOqLB437zQJiLWFFnsrYfFZ6Lfwu/xXQoKqRUKIPDt+xG6LBRtf8s5MNqfFVoTE7kw1U/0qdRGDsMp4Q==}
dependencies:
'@fastify/reply-from': 9.0.1
fastify-plugin: 4.5.0
@@ -3975,7 +3987,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.5.0
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
chalk: 4.1.2
jest-message-util: 29.5.0
jest-util: 29.5.0
@@ -3996,14 +4008,14 @@ packages:
'@jest/test-result': 29.5.0
'@jest/transform': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
ansi-escapes: 4.3.2
chalk: 4.1.2
ci-info: 3.7.1
exit: 0.1.2
graceful-fs: 4.2.11
jest-changed-files: 29.5.0
- jest-config: 29.5.0(@types/node@18.16.3)
+ jest-config: 29.5.0(@types/node@20.1.3)
jest-haste-map: 29.5.0
jest-message-util: 29.5.0
jest-regex-util: 29.4.3
@@ -4037,7 +4049,7 @@ packages:
dependencies:
'@jest/fake-timers': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
jest-mock: 29.5.0
dev: true
@@ -4064,7 +4076,7 @@ packages:
dependencies:
'@jest/types': 29.5.0
'@sinonjs/fake-timers': 10.0.2
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
jest-message-util: 29.5.0
jest-mock: 29.5.0
jest-util: 29.5.0
@@ -4097,7 +4109,7 @@ packages:
'@jest/transform': 29.5.0
'@jest/types': 29.5.0
'@jridgewell/trace-mapping': 0.3.17
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
chalk: 4.1.2
collect-v8-coverage: 1.0.1
exit: 0.1.2
@@ -4191,7 +4203,7 @@ packages:
dependencies:
'@types/istanbul-lib-coverage': 2.0.4
'@types/istanbul-reports': 3.0.1
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
'@types/yargs': 16.0.5
chalk: 4.1.2
dev: true
@@ -4203,12 +4215,12 @@ packages:
'@jest/schemas': 29.4.3
'@types/istanbul-lib-coverage': 2.0.4
'@types/istanbul-reports': 3.0.1
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
'@types/yargs': 17.0.19
chalk: 4.1.2
dev: true
- /@joshwooding/vite-plugin-react-docgen-typescript@0.2.1(typescript@5.0.4)(vite@4.3.4):
+ /@joshwooding/vite-plugin-react-docgen-typescript@0.2.1(typescript@5.0.4)(vite@4.3.5):
resolution: {integrity: sha512-ou4ZJSXMMWHqGS4g8uNRbC5TiTWxAgQZiVucoUrOCWuPrTbkpJbmVyIi9jU72SBry7gQtuMEDp4YR8EEXAg7VQ==}
peerDependencies:
typescript: '>= 4.3.x'
@@ -4222,7 +4234,7 @@ packages:
magic-string: 0.27.0
react-docgen-typescript: 2.2.2(typescript@5.0.4)
typescript: 5.0.4
- vite: 4.3.4(@types/node@18.16.3)(sass@1.62.1)
+ vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)
dev: true
/@jridgewell/gen-mapping@0.1.1:
@@ -4641,7 +4653,7 @@ packages:
'@redis/client': 1.4.2
dev: true
- /@rollup/plugin-alias@5.0.0(rollup@3.21.3):
+ /@rollup/plugin-alias@5.0.0(rollup@3.21.6):
resolution: {integrity: sha512-l9hY5chSCjuFRPsnRm16twWBiSApl2uYFLsepQYwtBuAxNMQ/1dJqADld40P0Jkqm65GRTLy/AC6hnpVebtLsA==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -4650,11 +4662,11 @@ packages:
rollup:
optional: true
dependencies:
- rollup: 3.21.3
+ rollup: 3.21.6
slash: 4.0.0
dev: false
- /@rollup/plugin-json@6.0.0(rollup@3.21.3):
+ /@rollup/plugin-json@6.0.0(rollup@3.21.6):
resolution: {integrity: sha512-i/4C5Jrdr1XUarRhVu27EEwjt4GObltD7c+MkCIpO2QIbojw8MUs+CCTqOphQi3Qtg1FLmYt+l+6YeoIf51J7w==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -4663,11 +4675,11 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.0.2(rollup@3.21.3)
- rollup: 3.21.3
+ '@rollup/pluginutils': 5.0.2(rollup@3.21.6)
+ rollup: 3.21.6
dev: false
- /@rollup/plugin-replace@5.0.2(rollup@3.21.3):
+ /@rollup/plugin-replace@5.0.2(rollup@3.21.6):
resolution: {integrity: sha512-M9YXNekv/C/iHHK+cvORzfRYfPbq0RDD8r0G+bMiTXjNGKulPnCT9O3Ss46WfhI6ZOCgApOP7xAdmCQJ+U2LAA==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -4676,9 +4688,9 @@ packages:
rollup:
optional: true
dependencies:
- '@rollup/pluginutils': 5.0.2(rollup@3.21.3)
+ '@rollup/pluginutils': 5.0.2(rollup@3.21.6)
magic-string: 0.27.0
- rollup: 3.21.3
+ rollup: 3.21.6
dev: false
/@rollup/pluginutils@4.2.1:
@@ -4689,7 +4701,7 @@ packages:
picomatch: 2.3.1
dev: true
- /@rollup/pluginutils@5.0.2(rollup@3.21.3):
+ /@rollup/pluginutils@5.0.2(rollup@3.21.6):
resolution: {integrity: sha512-pTd9rIsP92h+B6wWwFbW8RkZv4hiR/xKsqre4SIuAOaOEQRxi0lqLke9k2/7WegC85GgUs9pjmOjCUi3In4vwA==}
engines: {node: '>=14.0.0'}
peerDependencies:
@@ -4701,7 +4713,7 @@ packages:
'@types/estree': 1.0.1
estree-walker: 2.0.2
picomatch: 2.3.1
- rollup: 3.21.3
+ rollup: 3.21.6
dev: false
/@rushstack/node-core-library@3.58.0(@types/node@18.16.3):
@@ -4852,8 +4864,8 @@ packages:
resolution: {integrity: sha512-Uy0+khmZqUrUGm5dmMqVlnvufZRSK0FbYzVgp0UMstm+F5+W2/jnEEQyc9vo1ZR/E5ZI/B1WjjoTqBqwJL6Krw==}
dev: false
- /@storybook/addon-actions@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-WxsnSjAvdf6NhUfTqcwV+FJmsJV56gh2cY4QnGfqfwO5zoBWTUYnhz57TgxSMhJY0kspyX9Q1Kc//r1d5lt1qA==}
+ /@storybook/addon-actions@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-U8c7n918/mOjXnc1Iu/sglbK+ryC4xoyjWE5SG/68h0+sHb1rioNq7leAi24mCP6jNwNI5Q7TWtuvflOGxQDKQ==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -4863,14 +4875,14 @@ packages:
react-dom:
optional: true
dependencies:
- '@storybook/client-logger': 7.0.7
- '@storybook/components': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/core-events': 7.0.7
+ '@storybook/client-logger': 7.0.10
+ '@storybook/components': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/core-events': 7.0.10
'@storybook/global': 5.0.0
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/preview-api': 7.0.7
- '@storybook/theming': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/types': 7.0.7
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/preview-api': 7.0.10
+ '@storybook/theming': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/types': 7.0.10
dequal: 2.0.3
lodash: 4.17.21
polished: 4.2.2
@@ -4883,8 +4895,8 @@ packages:
uuid: 9.0.0
dev: true
- /@storybook/addon-backgrounds@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-DhT32K1+ti7MXY9oqt36b9jlg7iY68IP0ZQbR3gjShcsIXZpFqh18TQo0vwDY1ldqnBvkTk6Jd5vcxA8tfyshw==}
+ /@storybook/addon-backgrounds@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-QtOxXO9hKtwBjjdLXWYKp4HpcpNOrLfc71dn78XbMKyCkQRlYtVe8GNk/++70UQtFfKCEJIB0hTHrPmSjDJE5A==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -4894,22 +4906,22 @@ packages:
react-dom:
optional: true
dependencies:
- '@storybook/client-logger': 7.0.7
- '@storybook/components': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/core-events': 7.0.7
+ '@storybook/client-logger': 7.0.10
+ '@storybook/components': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/core-events': 7.0.10
'@storybook/global': 5.0.0
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/preview-api': 7.0.7
- '@storybook/theming': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/types': 7.0.7
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/preview-api': 7.0.10
+ '@storybook/theming': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/types': 7.0.10
memoizerific: 1.11.3
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
ts-dedent: 2.2.0
dev: true
- /@storybook/addon-controls@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-/QEzleKoWRQ3i7KB32QvqDGcGMw4kG2BxEf0d+ymxd2SjoeL6kX2eHE0b4OxFPXiWUyTfXBFwmcI2Re3fRUJnQ==}
+ /@storybook/addon-controls@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-j5UiPH8ZJx0ieUoIeV3iENlsIRDuQCeg3gTlLD668sebx8KHOCSJygh0Zvg1sTUUGSIbenhWaPlqfaW6ShKFWQ==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -4919,15 +4931,15 @@ packages:
react-dom:
optional: true
dependencies:
- '@storybook/blocks': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/client-logger': 7.0.7
- '@storybook/components': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/core-common': 7.0.7
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/node-logger': 7.0.7
- '@storybook/preview-api': 7.0.7
- '@storybook/theming': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/types': 7.0.7
+ '@storybook/blocks': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/client-logger': 7.0.10
+ '@storybook/components': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/core-common': 7.0.10
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/node-logger': 7.0.10
+ '@storybook/preview-api': 7.0.10
+ '@storybook/theming': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/types': 7.0.10
lodash: 4.17.21
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -4936,8 +4948,8 @@ packages:
- supports-color
dev: true
- /@storybook/addon-docs@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-5PT7aiTD6QPH+4CZLcv4PiUgWucD9JNGHVMRbQMEyFW6qbs87dHmu1m1uXIvx3BF5h3mTo4FHNAf8IQIq5HH9w==}
+ /@storybook/addon-docs@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-1tUsJ+fuBqk4oTOBLabyPQeQYiRKs9I6+soY7dG8jN15Bxe/Ey2giNpqUkA3xAIuqS75ydRVKmsfQvILu2nLjg==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -4946,19 +4958,19 @@ packages:
'@babel/plugin-transform-react-jsx': 7.21.0(@babel/core@7.21.3)
'@jest/transform': 29.5.0
'@mdx-js/react': 2.3.0(react@18.2.0)
- '@storybook/blocks': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/client-logger': 7.0.7
- '@storybook/components': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/csf-plugin': 7.0.7
- '@storybook/csf-tools': 7.0.7
+ '@storybook/blocks': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/client-logger': 7.0.10
+ '@storybook/components': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/csf-plugin': 7.0.10
+ '@storybook/csf-tools': 7.0.10
'@storybook/global': 5.0.0
'@storybook/mdx2-csf': 1.0.0
- '@storybook/node-logger': 7.0.7
- '@storybook/postinstall': 7.0.7
- '@storybook/preview-api': 7.0.7
- '@storybook/react-dom-shim': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/theming': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/types': 7.0.7
+ '@storybook/node-logger': 7.0.10
+ '@storybook/postinstall': 7.0.10
+ '@storybook/preview-api': 7.0.10
+ '@storybook/react-dom-shim': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/theming': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/types': 7.0.10
fs-extra: 11.1.0
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -4969,25 +4981,25 @@ packages:
- supports-color
dev: true
- /@storybook/addon-essentials@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-uNx0BvN1XP7cNnk/L4oiFQlEB/KABqOeIyI8/mhfIyTvvwo9uAYIQAyiwWuz9MFmofCNm7CgLNOUaEwNDkM4CA==}
+ /@storybook/addon-essentials@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-nOeUtNbfLXOlgGqqqlsYC9gcYSrAxABBo8jHYiZg3xaEB9+cnKjCKK8VxrqJiR002AG5JZvi+uHeAauM94fkkQ==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
- '@storybook/addon-actions': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/addon-backgrounds': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/addon-controls': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/addon-docs': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/addon-highlight': 7.0.7
- '@storybook/addon-measure': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/addon-outline': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/addon-toolbars': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/addon-viewport': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/core-common': 7.0.7
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/node-logger': 7.0.7
- '@storybook/preview-api': 7.0.7
+ '@storybook/addon-actions': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/addon-backgrounds': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/addon-controls': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/addon-docs': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/addon-highlight': 7.0.10
+ '@storybook/addon-measure': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/addon-outline': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/addon-toolbars': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/addon-viewport': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/core-common': 7.0.10
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/node-logger': 7.0.10
+ '@storybook/preview-api': 7.0.10
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
ts-dedent: 2.2.0
@@ -4995,16 +5007,16 @@ packages:
- supports-color
dev: true
- /@storybook/addon-highlight@7.0.7:
- resolution: {integrity: sha512-expme2GzzCXX7/lL7UjCDi1Tfj+4LeNsAdWiurVLH7glK7yKPPeXXkIldbLP/XjJv4NKlqCwnNRHQx0vDLlE6g==}
+ /@storybook/addon-highlight@7.0.10:
+ resolution: {integrity: sha512-TohDxElSu7JrSvhLRZAwtNk/7Ot626wvlODwklocE4kbtn1fulFoUlRta7NImBGX554LITDFRy0m4R1rRQ9OfQ==}
dependencies:
- '@storybook/core-events': 7.0.7
+ '@storybook/core-events': 7.0.10
'@storybook/global': 5.0.0
- '@storybook/preview-api': 7.0.7
+ '@storybook/preview-api': 7.0.10
dev: true
- /@storybook/addon-interactions@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-jBl6O5sSbix0X1G9dFuWvvu4qefgLP9dAB/utVdDadZxlbPfa5B2C2q2YIqjcKZoX8DS8Fh8SUhlX1mdW5tu5w==}
+ /@storybook/addon-interactions@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-7hdFgoetQblwysYwRlmC5fbMVDb6lIM6le1pVEmRci6X44Gr2Xe5w2s6h5bTp4tMpNS1CFKjru9kF/TqfK46wA==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -5014,16 +5026,16 @@ packages:
react-dom:
optional: true
dependencies:
- '@storybook/client-logger': 7.0.7
- '@storybook/components': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/core-common': 7.0.7
- '@storybook/core-events': 7.0.7
+ '@storybook/client-logger': 7.0.10
+ '@storybook/components': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/core-common': 7.0.10
+ '@storybook/core-events': 7.0.10
'@storybook/global': 5.0.0
- '@storybook/instrumenter': 7.0.7
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/preview-api': 7.0.7
- '@storybook/theming': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/types': 7.0.7
+ '@storybook/instrumenter': 7.0.10
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/preview-api': 7.0.10
+ '@storybook/theming': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/types': 7.0.10
jest-mock: 27.5.1
polished: 4.2.2
react: 18.2.0
@@ -5033,8 +5045,8 @@ packages:
- supports-color
dev: true
- /@storybook/addon-links@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-DEjDxjHb3mT8Sdnx4In5Ev9gJ/XdjlHOq4iuy0wnMyrCV4wnzTQnIeSCx8nkrXFb314zc33JPnCcrb5pQoD5GQ==}
+ /@storybook/addon-links@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-Odhe0eICqW9X2yyIjtOVb23cKXJ2WRxPHBm5oYf6hBBoXXK7EJicwyQSJLxJyHK7r1PeAnFxSGlNrO3w7JULjg==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -5044,22 +5056,22 @@ packages:
react-dom:
optional: true
dependencies:
- '@storybook/client-logger': 7.0.7
- '@storybook/core-events': 7.0.7
+ '@storybook/client-logger': 7.0.10
+ '@storybook/core-events': 7.0.10
'@storybook/csf': 0.1.0
'@storybook/global': 5.0.0
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/preview-api': 7.0.7
- '@storybook/router': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/types': 7.0.7
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/preview-api': 7.0.10
+ '@storybook/router': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/types': 7.0.10
prop-types: 15.8.1
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
ts-dedent: 2.2.0
dev: true
- /@storybook/addon-measure@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-lb4wEIvIVF+ePx1sC+n9rDI0+49sRa6MWbcvZ+BhbAoCeGcX7uACQFdW6HyXolmBuZASsTnzVQ4KqzzvY1dSWw==}
+ /@storybook/addon-measure@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-70BQT8PM6r3qjXDgXuN5mx9CBq9dYTdEgR1tlZ8FbMi8B8tB1oZJD0o6tfGM3r8WjdI0sTwX70ic5pv9Ma/MiA==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -5069,19 +5081,19 @@ packages:
react-dom:
optional: true
dependencies:
- '@storybook/client-logger': 7.0.7
- '@storybook/components': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/core-events': 7.0.7
+ '@storybook/client-logger': 7.0.10
+ '@storybook/components': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/core-events': 7.0.10
'@storybook/global': 5.0.0
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/preview-api': 7.0.7
- '@storybook/types': 7.0.7
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/preview-api': 7.0.10
+ '@storybook/types': 7.0.10
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: true
- /@storybook/addon-outline@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-AxbNZ4N1fXBTeMYM9tFudfW+Gzq7UikCjPxn5ax3Pde+zZjaEMppUxv5EMz4g5GIJupLYRmKH5pN0YcYoRLY6w==}
+ /@storybook/addon-outline@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-Aakoc+II7orfgUDmjgMbnSp5HZS/47z0NeRAfh+FP4fxL0lFd9vmaeIXWYo1DjJqdEFfvlSLd8aS9Ltb+souMw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -5091,20 +5103,20 @@ packages:
react-dom:
optional: true
dependencies:
- '@storybook/client-logger': 7.0.7
- '@storybook/components': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/core-events': 7.0.7
+ '@storybook/client-logger': 7.0.10
+ '@storybook/components': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/core-events': 7.0.10
'@storybook/global': 5.0.0
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/preview-api': 7.0.7
- '@storybook/types': 7.0.7
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/preview-api': 7.0.10
+ '@storybook/types': 7.0.10
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
ts-dedent: 2.2.0
dev: true
- /@storybook/addon-storysource@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-gRdnWN8H5BhQF3rkcfjEIzEsZ/kdlgjiA6YA3GRKlcRCkzWHHXtHDdT3BSUFPb/8mT8DftFZNP2PKWeKd1rZvQ==}
+ /@storybook/addon-storysource@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-5anwqnBOcHDI/EB3F2q3Vs/JN+vCBRr8UVqnKS8NqN3BrpJ4q7jUeQ2cA0Q2/aAmdHJn9FLh/Cgx7aTO+6iC2w==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -5114,13 +5126,13 @@ packages:
react-dom:
optional: true
dependencies:
- '@storybook/client-logger': 7.0.7
- '@storybook/components': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/preview-api': 7.0.7
- '@storybook/router': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/source-loader': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/theming': 7.0.7(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/client-logger': 7.0.10
+ '@storybook/components': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/preview-api': 7.0.10
+ '@storybook/router': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/source-loader': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/theming': 7.0.10(react-dom@18.2.0)(react@18.2.0)
estraverse: 5.3.0
prop-types: 15.8.1
react: 18.2.0
@@ -5128,8 +5140,8 @@ packages:
react-syntax-highlighter: 15.5.0(react@18.2.0)
dev: true
- /@storybook/addon-toolbars@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-/NkYHhU1VAz5lXjWuV8+ADWB84HzktvZv4jfiKX7Zzu6JVzrBu7FotQSWh3pDqqVwCB50RClUGtcHmSSac9CAQ==}
+ /@storybook/addon-toolbars@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-U4a45CDw4SZzrgboYVMgxyiD7Ejud1kSz2lyS+J3fGTZGXq2+tmJS/2oNrLJlSH7v8629lVUbKnFxsP0HbfShg==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -5139,17 +5151,17 @@ packages:
react-dom:
optional: true
dependencies:
- '@storybook/client-logger': 7.0.7
- '@storybook/components': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/preview-api': 7.0.7
- '@storybook/theming': 7.0.7(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/client-logger': 7.0.10
+ '@storybook/components': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/preview-api': 7.0.10
+ '@storybook/theming': 7.0.10(react-dom@18.2.0)(react@18.2.0)
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: true
- /@storybook/addon-viewport@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-znqhd8JFEFoXcAdwYhz1CwrCpVAzhuSyUVBUNDsDs+mgBEfGth4D4abIdWWGcfP6+CmI5ebFHtk443cExZebag==}
+ /@storybook/addon-viewport@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-Ck9sdCg3T8ChXoxYL5IEi+ZUOwdH6Je5XeK4kRVq+Ar+Ytm5CFTGJCCZjI6biroTnuJCUefaV2K5NUZoHkZI+A==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -5159,49 +5171,49 @@ packages:
react-dom:
optional: true
dependencies:
- '@storybook/client-logger': 7.0.7
- '@storybook/components': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/core-events': 7.0.7
+ '@storybook/client-logger': 7.0.10
+ '@storybook/components': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/core-events': 7.0.10
'@storybook/global': 5.0.0
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/preview-api': 7.0.7
- '@storybook/theming': 7.0.7(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/preview-api': 7.0.10
+ '@storybook/theming': 7.0.10(react-dom@18.2.0)(react@18.2.0)
memoizerific: 1.11.3
prop-types: 15.8.1
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: true
- /@storybook/addons@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-it8NWXsdm3dhjc237d9jj7dGJf6eHDfuDv12nirV64J1dzWrnW+lONeZMPMgxxdLlgYfxH52fLgjcw/dAC/E+Q==}
+ /@storybook/addons@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-RRtozbB0JovZdLgTgC03kOjNh/5sAN77VHZFC5aK/Y9Hz2A0C6V4w/SqTt0382skSllcGMcrHjB1k06BlxlZ8A==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/preview-api': 7.0.7
- '@storybook/types': 7.0.7
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/preview-api': 7.0.10
+ '@storybook/types': 7.0.10
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: true
- /@storybook/blocks@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-ehR0hAFWNHHqmrmbwYPKhLpgbIBKtyMbeoGClTRSnrVBGONciYJdmxegkCTReUklCY+HBJjtlwNowT+7+5sSaw==}
+ /@storybook/blocks@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-OqXuN1x2TjXgrOqGSaD0Vz8iCqmLjiPkrQpWMD7bToFpHH0dpmcrzzRhLhxgJLN2CAzyr98IYIkUgXX9Da1neA==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
- '@storybook/channels': 7.0.7
- '@storybook/client-logger': 7.0.7
- '@storybook/components': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/core-events': 7.0.7
+ '@storybook/channels': 7.0.10
+ '@storybook/client-logger': 7.0.10
+ '@storybook/components': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/core-events': 7.0.10
'@storybook/csf': 0.1.0
- '@storybook/docs-tools': 7.0.7
+ '@storybook/docs-tools': 7.0.10
'@storybook/global': 5.0.0
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/preview-api': 7.0.7
- '@storybook/theming': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/types': 7.0.7
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/preview-api': 7.0.10
+ '@storybook/theming': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/types': 7.0.10
'@types/lodash': 4.14.191
color-convert: 2.0.1
dequal: 2.0.3
@@ -5219,13 +5231,13 @@ packages:
- supports-color
dev: true
- /@storybook/builder-manager@7.0.7:
- resolution: {integrity: sha512-VI/0iEjAlzQDt1yKu8GXugNIz7t46IHIKgMNmltQ05KPypMgInUoMmbfP5AYOVddjLdSqjMLO7EK58pBLOInpw==}
+ /@storybook/builder-manager@7.0.10:
+ resolution: {integrity: sha512-izCVE4JEbDVN5DPkX/Ym1PifAJKlheBvXKmGXGklnJQ2l+TEuvesPbOmVFNuu7ptJAFw4JO5n2KAo9+a5FRwiw==}
dependencies:
'@fal-works/esbuild-plugin-global-externals': 2.1.2
- '@storybook/core-common': 7.0.7
- '@storybook/manager': 7.0.7
- '@storybook/node-logger': 7.0.7
+ '@storybook/core-common': 7.0.10
+ '@storybook/manager': 7.0.10
+ '@storybook/node-logger': 7.0.10
'@types/ejs': 3.1.2
'@types/find-cache-dir': 3.2.1
'@yarnpkg/esbuild-plugin-pnp': 3.0.0-rc.15(esbuild@0.17.18)
@@ -5242,8 +5254,8 @@ packages:
- supports-color
dev: true
- /@storybook/builder-vite@7.0.7(typescript@5.0.4)(vite@4.3.4):
- resolution: {integrity: sha512-2wL6fsFWzij+R155urOLc7EjZtlVWf4FLfaSlLGAuZwRQU40N04YdMaHMp9tjd9Vdr5fxEDwTB51PnVWJMlsEw==}
+ /@storybook/builder-vite@7.0.10(typescript@5.0.4)(vite@4.3.5):
+ resolution: {integrity: sha512-tKY2QnHni10TE3+Sy2wfR7h4FuribR849VBpDI/LcwtRkCgoOBfMCdEnAKMWyU6qAlY+9KDSOQq9SDTu3WZGOg==}
peerDependencies:
'@preact/preset-vite': '*'
typescript: '>= 4.3.x'
@@ -5257,16 +5269,16 @@ packages:
vite-plugin-glimmerx:
optional: true
dependencies:
- '@storybook/channel-postmessage': 7.0.7
- '@storybook/channel-websocket': 7.0.7
- '@storybook/client-logger': 7.0.7
- '@storybook/core-common': 7.0.7
- '@storybook/csf-plugin': 7.0.7
+ '@storybook/channel-postmessage': 7.0.10
+ '@storybook/channel-websocket': 7.0.10
+ '@storybook/client-logger': 7.0.10
+ '@storybook/core-common': 7.0.10
+ '@storybook/csf-plugin': 7.0.10
'@storybook/mdx2-csf': 1.0.0
- '@storybook/node-logger': 7.0.7
- '@storybook/preview': 7.0.7
- '@storybook/preview-api': 7.0.7
- '@storybook/types': 7.0.7
+ '@storybook/node-logger': 7.0.10
+ '@storybook/preview': 7.0.10
+ '@storybook/preview-api': 7.0.10
+ '@storybook/types': 7.0.10
browser-assert: 1.2.1
es-module-lexer: 0.9.3
express: 4.18.2
@@ -5276,13 +5288,24 @@ packages:
magic-string: 0.27.0
remark-external-links: 8.0.0
remark-slug: 6.1.0
- rollup: 3.21.3
+ rollup: 3.21.6
typescript: 5.0.4
- vite: 4.3.4(@types/node@18.16.3)(sass@1.62.1)
+ vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)
transitivePeerDependencies:
- supports-color
dev: true
+ /@storybook/channel-postmessage@7.0.10:
+ resolution: {integrity: sha512-Y5ZSp9WYH3HznQ2rrGN78Y5fYM16Bfvyn3iKy5QD38gsQk1gTrra1osIZ0X+lk3sep14D4oW4QMW3DCSrn0Big==}
+ dependencies:
+ '@storybook/channels': 7.0.10
+ '@storybook/client-logger': 7.0.10
+ '@storybook/core-events': 7.0.10
+ '@storybook/global': 5.0.0
+ qs: 6.11.1
+ telejson: 7.0.4
+ dev: true
+
/@storybook/channel-postmessage@7.0.2:
resolution: {integrity: sha512-SZ/KqnZcx10W9hJbrzBKcP9dmgaeTaXugUhcgw1IkmjKWdsKazqFZCPwQWZZKAmhO4wYbyYOhkz3wfSIeB4mFw==}
dependencies:
@@ -5305,24 +5328,17 @@ packages:
telejson: 7.0.4
dev: true
- /@storybook/channel-postmessage@7.0.7:
- resolution: {integrity: sha512-XMtYfcaE0UoY/V7K1cTu9PcWETD4iyWb/Yswc4F9VrPw0Ui4UwGS1j4iaAu8DC06yyoJs4XvxYFBMlCQmKja6A==}
+ /@storybook/channel-websocket@7.0.10:
+ resolution: {integrity: sha512-WXueykS71YxEqKlsIbbmmA6QSChEePffzqs7QASUpHhi21IDqmtq2HhAqYWlQptyqSWYdv6wxrOqwe6z4zakLA==}
dependencies:
- '@storybook/channels': 7.0.7
- '@storybook/client-logger': 7.0.7
- '@storybook/core-events': 7.0.7
+ '@storybook/channels': 7.0.10
+ '@storybook/client-logger': 7.0.10
'@storybook/global': 5.0.0
- qs: 6.11.1
telejson: 7.0.4
dev: true
- /@storybook/channel-websocket@7.0.7:
- resolution: {integrity: sha512-KDbLiQts4/dCow3qk5WJSPA6SlaX3iP9RhF0Fjj03hoG2TRskrvo+AkUiJr8gF6dpkPndfuCYUCRsO2Ml8B+AA==}
- dependencies:
- '@storybook/channels': 7.0.7
- '@storybook/client-logger': 7.0.7
- '@storybook/global': 5.0.0
- telejson: 7.0.4
+ /@storybook/channels@7.0.10:
+ resolution: {integrity: sha512-hdPaGV3W7s6MkVcg33S5hmkVgqXC16AA7H0ID9MROiU1lQzolKhSqCs2iVfGPQfmWzEJeqWQoEXU7dmCclRM0w==}
dev: true
/@storybook/channels@7.0.2:
@@ -5333,25 +5349,21 @@ packages:
resolution: {integrity: sha512-+34cVmrXZ3lb1s5tDK+OWd5HLtEPSUMas0VKFJ0k9LBpFlVl9aiCZBJRvSYmWL7beauUfa+HSmJgjlD6228ChQ==}
dev: true
- /@storybook/channels@7.0.7:
- resolution: {integrity: sha512-Om4ovBLNw8pVrBu83MpOKgAuGO9Dpr1Coh2qp8t64WRPkejX1mxOY9IgH723//zH3igx8LCkf9rvBvcrsyaScQ==}
- dev: true
-
- /@storybook/cli@7.0.7:
- resolution: {integrity: sha512-koTkWr7wlaHF14T5moRP/tYM44+Jf4GEzQ/rqx/Jfn7EbNlVUOibdLJj4JnseMGRc7ZP6tKYku2n+B8g7hJX4w==}
+ /@storybook/cli@7.0.10:
+ resolution: {integrity: sha512-FhtE6Yrk7MMa9AgLb3MTmqiQ3IlWHjjrj7Vcj2QM6BcP342xSe7C1d+V6+tYX/oPOEB3Upz+PKNrju1iHxurQQ==}
hasBin: true
dependencies:
'@babel/core': 7.21.3
'@babel/preset-env': 7.21.4(@babel/core@7.21.3)
'@ndelangen/get-tarball': 3.0.7
- '@storybook/codemod': 7.0.7
- '@storybook/core-common': 7.0.7
- '@storybook/core-server': 7.0.7
- '@storybook/csf-tools': 7.0.7
- '@storybook/node-logger': 7.0.7
- '@storybook/telemetry': 7.0.7
- '@storybook/types': 7.0.7
- '@types/semver': 7.3.13
+ '@storybook/codemod': 7.0.10
+ '@storybook/core-common': 7.0.10
+ '@storybook/core-server': 7.0.10
+ '@storybook/csf-tools': 7.0.10
+ '@storybook/node-logger': 7.0.10
+ '@storybook/telemetry': 7.0.10
+ '@storybook/types': 7.0.10
+ '@types/semver': 7.5.0
boxen: 5.1.2
chalk: 4.1.2
commander: 6.2.1
@@ -5386,34 +5398,34 @@ packages:
- utf-8-validate
dev: true
- /@storybook/client-logger@7.0.2:
- resolution: {integrity: sha512-rv7W2BhzIQHbFpUM5/CP/acS6T5lTmaxT0MbZ9n+9h++9QQU/cFOdkZgSUbLVAb1AeUGoLsk0HYzcqPpV35Xsw==}
+ /@storybook/client-logger@7.0.10:
+ resolution: {integrity: sha512-hb8tO+w28ErzjEw69ERMtZT81Xyg835FQjH6Y42ejoGcBA9Z0W6RZmx4RgkcIUOlYXkU6lSnNVne9gXodV4/Hw==}
dependencies:
'@storybook/global': 5.0.0
dev: true
- /@storybook/client-logger@7.0.6:
- resolution: {integrity: sha512-TC/E5BBkY+WNldNw5p5Ffr9x4UgMe48GmC50ikBpQFk6og1B7XpFGMMbj40EBB0R5cpZkQNEVQh4OvunEygNzg==}
+ /@storybook/client-logger@7.0.2:
+ resolution: {integrity: sha512-rv7W2BhzIQHbFpUM5/CP/acS6T5lTmaxT0MbZ9n+9h++9QQU/cFOdkZgSUbLVAb1AeUGoLsk0HYzcqPpV35Xsw==}
dependencies:
'@storybook/global': 5.0.0
dev: true
- /@storybook/client-logger@7.0.7:
- resolution: {integrity: sha512-EclHjDs5HwHMKB4X2orn/KKA0DTIDmp4AXAUJGRfxb5ArpKEb7tXLHsgrRBlaoz1j5LAwKTmEyZOONh9G3etjg==}
+ /@storybook/client-logger@7.0.6:
+ resolution: {integrity: sha512-TC/E5BBkY+WNldNw5p5Ffr9x4UgMe48GmC50ikBpQFk6og1B7XpFGMMbj40EBB0R5cpZkQNEVQh4OvunEygNzg==}
dependencies:
'@storybook/global': 5.0.0
dev: true
- /@storybook/codemod@7.0.7:
- resolution: {integrity: sha512-VlkDlkvfbzLe+NOmzs5zGrGb4jnaeAFZqpvIkXxevr6aGcOwgeelNv8gTmgBAcy+xbGW4Pp0XA2BlMweIvKEKA==}
+ /@storybook/codemod@7.0.10:
+ resolution: {integrity: sha512-BnPknLV3wnaSk0azjFBAWLVfwgUHtFvVk9I6y1idIaQhc0nnegKoa0jTxWigthftZK/Pv9yG3gxG7o7O4KcChQ==}
dependencies:
'@babel/core': 7.21.3
'@babel/preset-env': 7.21.4(@babel/core@7.21.3)
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
'@storybook/csf': 0.1.0
- '@storybook/csf-tools': 7.0.7
- '@storybook/node-logger': 7.0.7
- '@storybook/types': 7.0.7
+ '@storybook/csf-tools': 7.0.10
+ '@storybook/node-logger': 7.0.10
+ '@storybook/types': 7.0.10
cross-spawn: 7.0.3
globby: 11.1.0
jscodeshift: 0.14.0(@babel/preset-env@7.21.4)
@@ -5424,17 +5436,17 @@ packages:
- supports-color
dev: true
- /@storybook/components@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-6PLs9LMkBuhH/w4bSJ72tYgICMbOOIHuoB/fQdVlzhsdnXL2fM/v4RVW2N7v+Oz3lYXp/JtV8V9Ub8h6eDQKXg==}
+ /@storybook/components@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-jdGiVP+a3XqoGpKkDFGt4g2cgb23aLfMS/RhnuhT7FK6hGh7WFfuuqx4QqQHx4VZCdXIWVIzszaCdGCs7AsW2w==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
- '@storybook/client-logger': 7.0.7
+ '@storybook/client-logger': 7.0.10
'@storybook/csf': 0.1.0
'@storybook/global': 5.0.0
- '@storybook/theming': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/types': 7.0.7
+ '@storybook/theming': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/types': 7.0.10
memoizerific: 1.11.3
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
@@ -5442,18 +5454,18 @@ packages:
util-deprecate: 1.0.2
dev: true
- /@storybook/core-client@7.0.7:
- resolution: {integrity: sha512-eydcpR28qV3A3BwR5V6wsixoI1BRLA0SzFiwH/1ajrgX13inv+gV97gHv47Ojf/+YAZ3HqdVaUKFsUfMKwKieA==}
+ /@storybook/core-client@7.0.10:
+ resolution: {integrity: sha512-sN/TKB7QHWP6josdjyNtoqDXihROPtgvzo5+akfW6+S7hhfsQ4BJd09nkBqEX9E7z81blmFFDUOU3a8bQbPdKQ==}
dependencies:
- '@storybook/client-logger': 7.0.7
- '@storybook/preview-api': 7.0.7
+ '@storybook/client-logger': 7.0.10
+ '@storybook/preview-api': 7.0.10
dev: true
- /@storybook/core-common@7.0.7:
- resolution: {integrity: sha512-c8T24wex9bnCYdZVZFNX4VV+wfhrp47OLzVONZDqxMhq6G//Bgv5zH4Awcx5UfWf/05VcP7KGF1VKj8ebRyEEA==}
+ /@storybook/core-common@7.0.10:
+ resolution: {integrity: sha512-AAYXixukGlpMy8XoSM8cTfcyQ6ijBq5q50xNTj/ssTbGnGSk6POgtoJZf6g8XtS0OxsFXBSxuBuMBBBbKtoztw==}
dependencies:
- '@storybook/node-logger': 7.0.7
- '@storybook/types': 7.0.7
+ '@storybook/node-logger': 7.0.10
+ '@storybook/types': 7.0.10
'@types/node': 16.18.16
'@types/pretty-hrtime': 1.0.1
chalk: 4.1.2
@@ -5475,6 +5487,10 @@ packages:
- supports-color
dev: true
+ /@storybook/core-events@7.0.10:
+ resolution: {integrity: sha512-OyBqhxVQOdI78Vgv6nKwXOdIVNChyfktpdxQZP1rz9MpO6MrqMaGAUL7k8xQMQAVx0VY+dAMYZB3bnyN2IC8FA==}
+ dev: true
+
/@storybook/core-events@7.0.2:
resolution: {integrity: sha512-1DCHCwHRL3+rlvnVVc/BCfReP31XaT2WYgcLeGTmkX1E43Po1MkgcM7PnJPSaa9POvSqZ+6YLZv5Bs1SXbufow==}
dev: true
@@ -5483,32 +5499,28 @@ packages:
resolution: {integrity: sha512-kGrtjlYtjd4iTVk+Phb4CymZaVkB+MGscKAgcO8gfgJ/Q/gq8HQLVZSIzeoCDcDSHOGlBzbg2WVtdHIHhCKlOQ==}
dev: true
- /@storybook/core-events@7.0.7:
- resolution: {integrity: sha512-XNsR2RgaL2vBwuqsu+KA1DzGmB1UFfrAhpxhmyWTKDCniwtTLlaXgfKbqwcrOrPu/o1YswgIup/9UHepRHaf4A==}
- dev: true
-
- /@storybook/core-server@7.0.7:
- resolution: {integrity: sha512-PB4zoClH7aKG4XeJhxx43iK9n/C9gctXubNN5DSN6thPm4UITOas+/q4N7AHbCPyRbcMyoW7M31KtpzZu4Fjew==}
+ /@storybook/core-server@7.0.10:
+ resolution: {integrity: sha512-KFCc3turPed8tiC5IUKTV7oObVmFckMP1XqO7zec2g2NlGQsN83DRso+BA1wpV/bb8AD1NJDU6LJnyN3KKdi1Q==}
dependencies:
'@aw-web-design/x-default-browser': 1.4.88
'@discoveryjs/json-ext': 0.5.7
- '@storybook/builder-manager': 7.0.7
- '@storybook/core-common': 7.0.7
- '@storybook/core-events': 7.0.7
+ '@storybook/builder-manager': 7.0.10
+ '@storybook/core-common': 7.0.10
+ '@storybook/core-events': 7.0.10
'@storybook/csf': 0.1.0
- '@storybook/csf-tools': 7.0.7
+ '@storybook/csf-tools': 7.0.10
'@storybook/docs-mdx': 0.1.0
'@storybook/global': 5.0.0
- '@storybook/manager': 7.0.7
- '@storybook/node-logger': 7.0.7
- '@storybook/preview-api': 7.0.7
- '@storybook/telemetry': 7.0.7
- '@storybook/types': 7.0.7
+ '@storybook/manager': 7.0.10
+ '@storybook/node-logger': 7.0.10
+ '@storybook/preview-api': 7.0.10
+ '@storybook/telemetry': 7.0.10
+ '@storybook/types': 7.0.10
'@types/detect-port': 1.3.2
'@types/node': 16.18.16
'@types/node-fetch': 2.6.2
'@types/pretty-hrtime': 1.0.1
- '@types/semver': 7.3.13
+ '@types/semver': 7.5.0
better-opn: 2.1.1
boxen: 5.1.2
chalk: 4.1.2
@@ -5539,24 +5551,24 @@ packages:
- utf-8-validate
dev: true
- /@storybook/csf-plugin@7.0.7:
- resolution: {integrity: sha512-uhf2g077gXA6ZEMXIPQ0RnX+IoOTBJbj+6+VQfT7K5tvJeop1z0Fvk0FoknNXcUe7aUA0nzA/cUQ1v4vXqbY3Q==}
+ /@storybook/csf-plugin@7.0.10:
+ resolution: {integrity: sha512-uUty5rLs6O32tJaXIne2/42UxFL3eaRCDgtAoAkGxbUPa/FLYpO0rYtqF2OG9MagwXU7+As5RlLkDLeYAvUzlQ==}
dependencies:
- '@storybook/csf-tools': 7.0.7
+ '@storybook/csf-tools': 7.0.10
unplugin: 0.10.2
transitivePeerDependencies:
- supports-color
dev: true
- /@storybook/csf-tools@7.0.7:
- resolution: {integrity: sha512-KbO5K2RS0oFm94eR49bAPvoyXY3Q6+ozvBek/F05RP7iAV790icQc59Xci9YDM1ONgb3afS+gSJGFBsE0h4pmg==}
+ /@storybook/csf-tools@7.0.10:
+ resolution: {integrity: sha512-sl/995jq03HD7/Q9cb54h0glgt7JLGTkfikSlB35NGMEkgEXEswDmpQHA/TbzUYylIxuAwTKghwMqL3IwSSHwA==}
dependencies:
'@babel/generator': 7.21.3
- '@babel/parser': 7.21.4
+ '@babel/parser': 7.21.8
'@babel/traverse': 7.21.3
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
'@storybook/csf': 0.1.0
- '@storybook/types': 7.0.7
+ '@storybook/types': 7.0.10
fs-extra: 11.1.0
recast: 0.23.1
ts-dedent: 2.2.0
@@ -5574,13 +5586,13 @@ packages:
resolution: {integrity: sha512-JDaBR9lwVY4eSH5W8EGHrhODjygPd6QImRbwjAuJNEnY0Vw4ie3bPkeGfnacB3OBW6u/agqPv2aRlR46JcAQLg==}
dev: true
- /@storybook/docs-tools@7.0.7:
- resolution: {integrity: sha512-VB4Qa33DYNxXALWcXyDid246r9Q6SGM+Q+pGWOuEJsxRxDmrUspXHaHG0CO1NIjMWfbqpOoz61vquZO0GZoAAg==}
+ /@storybook/docs-tools@7.0.10:
+ resolution: {integrity: sha512-w3m7+LlQGI50i07XjiOzIfoap8rnmsrs8hXGUTodbs9vvLt8HBdUaapOGnYr/1BzA0YQJ7Nz2z1nTirQEphmsQ==}
dependencies:
'@babel/core': 7.21.3
- '@storybook/core-common': 7.0.7
- '@storybook/preview-api': 7.0.7
- '@storybook/types': 7.0.7
+ '@storybook/core-common': 7.0.10
+ '@storybook/preview-api': 7.0.10
+ '@storybook/types': 7.0.10
'@types/doctrine': 0.0.3
doctrine: 3.0.0
lodash: 4.17.21
@@ -5598,6 +5610,16 @@ packages:
resolution: {integrity: sha512-FcOqPAXACP0I3oJ/ws6/rrPT9WGhu915Cg8D02a9YxLo0DE9zI+a9A5gRGvmQ09fiWPukqI8ZAEoQEdWUKMQdQ==}
dev: true
+ /@storybook/instrumenter@7.0.10:
+ resolution: {integrity: sha512-Z+kIidnxaq3tneUnIKB2d0DCqb4lwUdOS/AC43LNvd9C6BWYgj89cIPdLDTNhOWa0ZiEju7wTS+K/3uMvcHZ4w==}
+ dependencies:
+ '@storybook/channels': 7.0.10
+ '@storybook/client-logger': 7.0.10
+ '@storybook/core-events': 7.0.10
+ '@storybook/global': 5.0.0
+ '@storybook/preview-api': 7.0.10
+ dev: true
+
/@storybook/instrumenter@7.0.2:
resolution: {integrity: sha512-zr9/fuaYtGVUtcL8XgjA4Iq5jtzdcqQyOSH4XLXtz6JtSad3lkRagbJo2Vzbw7dO/4vzjfTMxEzvWjUuPxLOhA==}
dependencies:
@@ -5618,16 +5640,6 @@ packages:
'@storybook/preview-api': 7.0.6
dev: true
- /@storybook/instrumenter@7.0.7:
- resolution: {integrity: sha512-0zE5lM3laKvCT4GW/XKKw8kakvI4catqK8PObZolRhfxbtGufW4VJZ2E8vXLtgA/+K3zikypjuWE6d45NLbh9w==}
- dependencies:
- '@storybook/channels': 7.0.7
- '@storybook/client-logger': 7.0.7
- '@storybook/core-events': 7.0.7
- '@storybook/global': 5.0.0
- '@storybook/preview-api': 7.0.7
- dev: true
-
/@storybook/jest@0.1.0:
resolution: {integrity: sha512-TmybnEXlv5Fu2/Hq4nRj7alS9mw4CasLR0RDwaAzS+Vpvu1TC4+j9rh+b1BHtmWebbJh0JMT6mgzPqOyJdgtQA==}
dependencies:
@@ -5637,20 +5649,20 @@ packages:
jest-mock: 27.5.1
dev: true
- /@storybook/manager-api@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-QTd/P72peAhofKqK+8yzIO9iWAEfPn8WUGGveV2KGaTlSlgbr87RLHEKilcXMZcYhBWC9izFRmjKum9ROdskrQ==}
+ /@storybook/manager-api@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-Dik73GKUX9QCFOvukTXjZoZX0G6n/LrRMkwLggb28E9m8iFt2ivWvF9MVvyRoDffR9VP5t53+nV5fqxqpXWoQw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
- '@storybook/channels': 7.0.7
- '@storybook/client-logger': 7.0.7
- '@storybook/core-events': 7.0.7
+ '@storybook/channels': 7.0.10
+ '@storybook/client-logger': 7.0.10
+ '@storybook/core-events': 7.0.10
'@storybook/csf': 0.1.0
'@storybook/global': 5.0.0
- '@storybook/router': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/theming': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/types': 7.0.7
+ '@storybook/router': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/theming': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/types': 7.0.10
dequal: 2.0.3
lodash: 4.17.21
memoizerific: 1.11.3
@@ -5662,16 +5674,16 @@ packages:
ts-dedent: 2.2.0
dev: true
- /@storybook/manager@7.0.7:
- resolution: {integrity: sha512-FhquwUpUOHsjZROf6E6kzUnJ6EmMeJ9b+HYg6yYPyIMYVMjAhnkRKbIj0phGx2lhgKFlmxik+3pgchK5SLdcZA==}
+ /@storybook/manager@7.0.10:
+ resolution: {integrity: sha512-cFMOOXmcRx1tN50TqC2huOsF91fAvNM82wTDnAbT2FtA+ZHFHNyE1PgWgiKDDepzOpKaG+FfT4bJcQAaAfYOBg==}
dev: true
/@storybook/mdx2-csf@1.0.0:
resolution: {integrity: sha512-dBAnEL4HfxxJmv7LdEYUoZlQbWj9APZNIbOaq0tgF8XkxiIbzqvgB0jhL/9UOrysSDbQWBiCRTu2wOVxedGfmw==}
dev: true
- /@storybook/node-logger@7.0.7:
- resolution: {integrity: sha512-5Y4LLgKeCStq1ktCKZ5eNPzQQSQ+CYZAlkEdzQ3Pp//0KXaZvVxEvGtaYhAymP2HatLpI8Oneo4lHrJioRfgww==}
+ /@storybook/node-logger@7.0.10:
+ resolution: {integrity: sha512-btCCreucTApi7EP84jbfqlFQZDD4Kz9lFLftalZA7nskDZW6i8reNNykTU2Y22TQvlbpqs5kL1N1cEsbG3vepw==}
dependencies:
'@types/npmlog': 4.1.4
chalk: 4.1.2
@@ -5679,8 +5691,28 @@ packages:
pretty-hrtime: 1.0.3
dev: true
- /@storybook/postinstall@7.0.7:
- resolution: {integrity: sha512-APcZ2KaR7z1aJje3pID4Ywmt1/aVcP3Sc4ltzNdH9mCkEsuq0fZHHQrYSa9Ya1IPRmSeLZ5/23q1iyqmGU3zoQ==}
+ /@storybook/postinstall@7.0.10:
+ resolution: {integrity: sha512-SVPKGuuvfn1MceLWzYHGbpP77+waLKXglAH4Gkdoa2mKdk3XO45Zn8OhwwNzHuP698boMNaGaB/utBLBpkXMMg==}
+ dev: true
+
+ /@storybook/preview-api@7.0.10:
+ resolution: {integrity: sha512-URj2YJKbs8hc6JZQ3aA+MmjB4hTSzGZAVFVs3kLUEuaQPDbU1RT5GKxedwF5zlMnkZQPNoaUtopN3z7aF+SKFQ==}
+ dependencies:
+ '@storybook/channel-postmessage': 7.0.10
+ '@storybook/channels': 7.0.10
+ '@storybook/client-logger': 7.0.10
+ '@storybook/core-events': 7.0.10
+ '@storybook/csf': 0.1.0
+ '@storybook/global': 5.0.0
+ '@storybook/types': 7.0.10
+ '@types/qs': 6.9.7
+ dequal: 2.0.3
+ lodash: 4.17.21
+ memoizerific: 1.11.3
+ qs: 6.11.1
+ synchronous-promise: 2.0.17
+ ts-dedent: 2.2.0
+ util-deprecate: 1.0.2
dev: true
/@storybook/preview-api@7.0.2:
@@ -5723,32 +5755,12 @@ packages:
util-deprecate: 1.0.2
dev: true
- /@storybook/preview-api@7.0.7:
- resolution: {integrity: sha512-R5pmGTodpu6hbwEg2RM2ulWtW3d426YzsisHrZJ+FT9lecWauN1y9xHCz7HdNzEFhT8r4YOa24L9ZS3mosZ7hA==}
- dependencies:
- '@storybook/channel-postmessage': 7.0.7
- '@storybook/channels': 7.0.7
- '@storybook/client-logger': 7.0.7
- '@storybook/core-events': 7.0.7
- '@storybook/csf': 0.1.0
- '@storybook/global': 5.0.0
- '@storybook/types': 7.0.7
- '@types/qs': 6.9.7
- dequal: 2.0.3
- lodash: 4.17.21
- memoizerific: 1.11.3
- qs: 6.11.1
- synchronous-promise: 2.0.17
- ts-dedent: 2.2.0
- util-deprecate: 1.0.2
- dev: true
-
- /@storybook/preview@7.0.7:
- resolution: {integrity: sha512-uL3ZcFao6UvxiSxCIcXKFakxEr9Nn0lvu0zzC2yQCVepzA7a+GDr1cK5VbZ6Mez38CnOvBmb5pkCbgRqSf/oug==}
+ /@storybook/preview@7.0.10:
+ resolution: {integrity: sha512-IQX8v7OpKeo2Oqeyxo6/uSRys+dJ7zms12jViJWGzx9fg6IchV/iNtf4TBrF3Z2JBNKovk03kICAMHTpZuz9Qg==}
dev: true
- /@storybook/react-dom-shim@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-INGwFeu9M+RzpvktSKuwy8Rk/70mXGqxxsb9lPtq7phmETvfpNX7GnLJqiVazTaQiB1DkB0iAPUsK2MNbBu+Kw==}
+ /@storybook/react-dom-shim@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-NLuE2Be/BGmXHufwLp1Gje+IsTb0HWvwzHlci2U430WgwGU8fsTPNgALMrwCpqN9o1KnrRGpysQEoyIYStQBdg==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -5757,25 +5769,25 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: true
- /@storybook/react-vite@7.0.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(vite@4.3.4):
- resolution: {integrity: sha512-RuWfP/kiLpuHdcF9dWUUp9SOGMmO0FJ0HGV5yAOhGmi8KmTzvc8zjC+hJjj+sSgn2n71BO8pG/zqGl16FwfwVQ==}
+ /@storybook/react-vite@7.0.10(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(vite@4.3.5):
+ resolution: {integrity: sha512-ZEwRpMEJAQtMruG/XGha52XHkb3extXudWT5SoXOcfiRy9eK7Y3oJwHR8KHNH3LE+LrRh7c+D53k7eMudRtsNA==}
engines: {node: '>=16'}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
vite: ^3.0.0 || ^4.0.0
dependencies:
- '@joshwooding/vite-plugin-react-docgen-typescript': 0.2.1(typescript@5.0.4)(vite@4.3.4)
+ '@joshwooding/vite-plugin-react-docgen-typescript': 0.2.1(typescript@5.0.4)(vite@4.3.5)
'@rollup/pluginutils': 4.2.1
- '@storybook/builder-vite': 7.0.7(typescript@5.0.4)(vite@4.3.4)
- '@storybook/react': 7.0.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
- '@vitejs/plugin-react': 3.1.0(vite@4.3.4)
+ '@storybook/builder-vite': 7.0.10(typescript@5.0.4)(vite@4.3.5)
+ '@storybook/react': 7.0.10(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)
+ '@vitejs/plugin-react': 3.1.0(vite@4.3.5)
ast-types: 0.14.2
magic-string: 0.27.0
react: 18.2.0
react-docgen: 6.0.0-alpha.3
react-dom: 18.2.0(react@18.2.0)
- vite: 4.3.4(@types/node@18.16.3)(sass@1.62.1)
+ vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)
transitivePeerDependencies:
- '@preact/preset-vite'
- supports-color
@@ -5783,8 +5795,8 @@ packages:
- vite-plugin-glimmerx
dev: true
- /@storybook/react@7.0.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
- resolution: {integrity: sha512-eEsIfAGumzo7KRi/WKFpn/PGFhwLv72oiEM/8l5MMX/6poIkiekunqJLfx2BoL4cCtiS4g7OYzOdWjN01DwVCg==}
+ /@storybook/react@7.0.10(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4):
+ resolution: {integrity: sha512-/DDUGFz0bk5c/HCfSr7fL74rQc+3s317TDDKY6ZrgUzdIkze4D/TlAbWV78XV/ceeFNi1fLAUzGjFzuDwmVkJw==}
engines: {node: '>=16.0.0'}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
@@ -5794,13 +5806,13 @@ packages:
typescript:
optional: true
dependencies:
- '@storybook/client-logger': 7.0.7
- '@storybook/core-client': 7.0.7
- '@storybook/docs-tools': 7.0.7
+ '@storybook/client-logger': 7.0.10
+ '@storybook/core-client': 7.0.10
+ '@storybook/docs-tools': 7.0.10
'@storybook/global': 5.0.0
- '@storybook/preview-api': 7.0.7
- '@storybook/react-dom-shim': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/types': 7.0.7
+ '@storybook/preview-api': 7.0.10
+ '@storybook/react-dom-shim': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/types': 7.0.10
'@types/escodegen': 0.0.6
'@types/estree': 0.0.51
'@types/node': 16.18.16
@@ -5822,27 +5834,27 @@ packages:
- supports-color
dev: true
- /@storybook/router@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-/lM8/NHQKeshfnC3ayFuO8Y9TCSHnCAPRhIsVxvanBzcj+ILbCIyZ+TspvB3hT4MbX/Ez+JR8VrMbjXIGwmH8w==}
+ /@storybook/router@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-Vq3nuyrGsvbPYhsaVu0TwtzX8Yb5TZYg7v5gY/uk1brSIk7Mvw64E8WF4TKNhPcWnlxNrfP9S96IZgT9iuuCpw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
- '@storybook/client-logger': 7.0.7
+ '@storybook/client-logger': 7.0.10
memoizerific: 1.11.3
qs: 6.11.1
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: true
- /@storybook/source-loader@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-vAURuD0WmafHe8XGbkwcOn1dCLcU4ociL5xakCw0upgW0cUczp4BMRfwmP0Az5YDhfoQRjBVmUaFfjONhTDawg==}
+ /@storybook/source-loader@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-DtdYllq0piU6vgoVjsuPsWaGlhSOJgJr/kRovu5zltaZzdEOyQZ7e0zQmA4Py0h9jnGbg2fQG9zccofY3jUdJw==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
'@storybook/csf': 0.1.0
- '@storybook/types': 7.0.7
+ '@storybook/types': 7.0.10
estraverse: 5.3.0
lodash: 4.17.21
prettier: 2.8.8
@@ -5850,11 +5862,11 @@ packages:
react-dom: 18.2.0(react@18.2.0)
dev: true
- /@storybook/telemetry@7.0.7:
- resolution: {integrity: sha512-Ka6pwWr3sWs3A/6WQ0wsoSYzXx3Mhr7eByNZZKuuCu9jnw3I8AbIOqQX2iOVzaQBLZsvXEeqvYY8iZ+GuRbbGQ==}
+ /@storybook/telemetry@7.0.10:
+ resolution: {integrity: sha512-0xlMECcSU2UnmpDTxKE/+pKpcW88fhxEZxh54yoA6NPpq6SGUN1r5ybUMffJCZ0JgaQ8HOc3Vxd13T3VXAMLXA==}
dependencies:
- '@storybook/client-logger': 7.0.7
- '@storybook/core-common': 7.0.7
+ '@storybook/client-logger': 7.0.10
+ '@storybook/core-common': 7.0.10
chalk: 4.1.2
detect-package-manager: 2.0.1
fetch-retry: 5.0.4
@@ -5877,64 +5889,64 @@ packages:
ts-dedent: 2.2.0
dev: true
- /@storybook/theming@7.0.7(react-dom@18.2.0)(react@18.2.0):
- resolution: {integrity: sha512-InTZe+Sgco1NsxgiG+cyUKWQe3GsjlIyU/o5qDdtOTXcZ64HzyBuAZlAequSddqfDeMDqxRFPc2w1J28MAUHxA==}
+ /@storybook/theming@7.0.10(react-dom@18.2.0)(react@18.2.0):
+ resolution: {integrity: sha512-kKxIMElOUAyIAJOlhU6NS6/F6KpZLWvfGnUYC5V4f5Rsu+lKnbWI/TJ1rCIooz2wZBQ6dv+fjA3sOh5K+LRh2w==}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
dependencies:
'@emotion/use-insertion-effect-with-fallbacks': 1.0.0(react@18.2.0)
- '@storybook/client-logger': 7.0.7
+ '@storybook/client-logger': 7.0.10
'@storybook/global': 5.0.0
memoizerific: 1.11.3
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: true
- /@storybook/types@7.0.2:
- resolution: {integrity: sha512-0OCt/kAexa8MCcljxA+yZxGMn0n2U2Ync0KxotItqNbKBKVkaLQUls0+IXTWSCpC/QJvNZ049jxUHHanNi/96w==}
+ /@storybook/types@7.0.10:
+ resolution: {integrity: sha512-mFktvN8PjjDFJSjck4spikmjtr0AwfOhcEtIf4UCmUD5JHgGppkQmvO6483nGcprSFcWOvD2uYGs8Wp32wG/MQ==}
dependencies:
- '@storybook/channels': 7.0.2
+ '@storybook/channels': 7.0.10
'@types/babel__core': 7.20.0
'@types/express': 4.17.17
file-system-cache: 2.0.2
dev: true
- /@storybook/types@7.0.6:
- resolution: {integrity: sha512-dFASQxzvldU2Nx/eJG+oL4wCchUWAKOmOSYJYhKgtGpx99oXOiWUyC0SgCpTveBJ7AppoiseyasQ9Gd/Ccycdw==}
+ /@storybook/types@7.0.2:
+ resolution: {integrity: sha512-0OCt/kAexa8MCcljxA+yZxGMn0n2U2Ync0KxotItqNbKBKVkaLQUls0+IXTWSCpC/QJvNZ049jxUHHanNi/96w==}
dependencies:
- '@storybook/channels': 7.0.6
+ '@storybook/channels': 7.0.2
'@types/babel__core': 7.20.0
'@types/express': 4.17.17
file-system-cache: 2.0.2
dev: true
- /@storybook/types@7.0.7:
- resolution: {integrity: sha512-v9piuwp8FvTiHXIOOi5lEyTEJKhnbcbhVxgJ3VFhhXYFd0DTz6Bst0XIIgkgs21ITb3xhkfPbCRUueMcbXO1MA==}
+ /@storybook/types@7.0.6:
+ resolution: {integrity: sha512-dFASQxzvldU2Nx/eJG+oL4wCchUWAKOmOSYJYhKgtGpx99oXOiWUyC0SgCpTveBJ7AppoiseyasQ9Gd/Ccycdw==}
dependencies:
- '@storybook/channels': 7.0.7
+ '@storybook/channels': 7.0.6
'@types/babel__core': 7.20.0
'@types/express': 4.17.17
file-system-cache: 2.0.2
dev: true
- /@storybook/vue3-vite@7.0.7(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(vite@4.3.4)(vue@3.2.47):
- resolution: {integrity: sha512-ePAOd5TBYq6WJTHgSP6B/k3PXzv8JU5sm956FMmpnDXvttZGKlp+a1qjabA8IbKD8SKfmjQmV7719Uh/ZPyQ6Q==}
+ /@storybook/vue3-vite@7.0.10(react-dom@18.2.0)(react@18.2.0)(typescript@5.0.4)(vite@4.3.5)(vue@3.3.1):
+ resolution: {integrity: sha512-BbA6uLlNFIpSBW9UAJ9e96yCGGoMho0pogEbkzoRLdw/0OoqDqnRMue78CwW5eiIWXYjNZb3UwAyh9VgYqKk5g==}
engines: {node: ^14.18 || >=16}
peerDependencies:
react: ^16.8.0 || ^17.0.0 || ^18.0.0
react-dom: ^16.8.0 || ^17.0.0 || ^18.0.0
vite: ^3.0.0 || ^4.0.0
dependencies:
- '@storybook/builder-vite': 7.0.7(typescript@5.0.4)(vite@4.3.4)
- '@storybook/core-server': 7.0.7
- '@storybook/vue3': 7.0.7(vue@3.2.47)
- '@vitejs/plugin-vue': 4.2.1(vite@4.3.4)(vue@3.2.47)
+ '@storybook/builder-vite': 7.0.10(typescript@5.0.4)(vite@4.3.5)
+ '@storybook/core-server': 7.0.10
+ '@storybook/vue3': 7.0.10(vue@3.3.1)
+ '@vitejs/plugin-vue': 4.2.2(vite@4.3.5)(vue@3.3.1)
magic-string: 0.27.0
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
- vite: 4.3.4(@types/node@18.16.3)(sass@1.62.1)
- vue-docgen-api: 4.64.1(vue@3.2.47)
+ vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)
+ vue-docgen-api: 4.64.1(vue@3.3.1)
transitivePeerDependencies:
- '@preact/preset-vite'
- bufferutil
@@ -5946,20 +5958,20 @@ packages:
- vue
dev: true
- /@storybook/vue3@7.0.7(vue@3.2.47):
- resolution: {integrity: sha512-SPZYm46zVkL9julVrQsUpPY02M/XzaDVsODlC75dXgL1jBskmbgW6WkjFEOoNr1RtEblb+t+pqxLoK4/LA09qw==}
+ /@storybook/vue3@7.0.10(vue@3.3.1):
+ resolution: {integrity: sha512-B4DW/lR9Am06RJM3TGrIgIYzurG6tsgUX9EQ6rQRDFd4EWw1bskcG8MrNwFBBiDBnXe1frL4AdDidF47CFStNg==}
engines: {node: '>=16.0.0'}
peerDependencies:
vue: ^3.0.0
dependencies:
- '@storybook/core-client': 7.0.7
- '@storybook/docs-tools': 7.0.7
+ '@storybook/core-client': 7.0.10
+ '@storybook/docs-tools': 7.0.10
'@storybook/global': 5.0.0
- '@storybook/preview-api': 7.0.7
- '@storybook/types': 7.0.7
+ '@storybook/preview-api': 7.0.10
+ '@storybook/types': 7.0.10
ts-dedent: 2.2.0
type-fest: 2.19.0
- vue: 3.2.47
+ vue: 3.3.1
transitivePeerDependencies:
- supports-color
dev: true
@@ -6311,7 +6323,7 @@ packages:
'@testing-library/dom': 8.20.0
dev: true
- /@testing-library/vue@7.0.0(@vue/compiler-sfc@3.2.47)(vue@3.2.47):
+ /@testing-library/vue@7.0.0(@vue/compiler-sfc@3.3.1)(vue@3.3.1):
resolution: {integrity: sha512-JU/q93HGo2qdm1dCgWymkeQlfpC0/0/DBZ2nAHgEAsVZxX11xVIxT7gbXdI7HACQpUbsUWt1zABGU075Fzt9XQ==}
engines: {node: '>=14'}
peerDependencies:
@@ -6320,9 +6332,9 @@ packages:
dependencies:
'@babel/runtime': 7.21.0
'@testing-library/dom': 9.2.0
- '@vue/compiler-sfc': 3.2.47
- '@vue/test-utils': 2.3.2(vue@3.2.47)
- vue: 3.2.47
+ '@vue/compiler-sfc': 3.3.1
+ '@vue/test-utils': 2.3.2(vue@3.3.1)
+ vue: 3.3.1
dev: true
/@tokenizer/token@0.3.0:
@@ -6341,7 +6353,7 @@ packages:
/@types/accepts@1.3.5:
resolution: {integrity: sha512-jOdnI/3qTpHABjM5cx1Hc0sKsPoYCp+DP/GJRGtDlPd7fiV9oXGGIcjW/ZOxLIvjGz8MA+uMZI9metHlgqbgwQ==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/archiver@5.3.2:
@@ -6371,20 +6383,20 @@ packages:
/@types/babel__generator@7.6.4:
resolution: {integrity: sha512-tFkciB9j2K755yrTALxD44McOrk+gfpIpvC3sxHjRawj6PfnQxrse4Clq5y/Rq+G3mrBurMax/lG8Qn2t9mSsg==}
dependencies:
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@types/babel__template@7.4.1:
resolution: {integrity: sha512-azBFKemX6kMg5Io+/rdGT0dkGreboUVR0Cdm3fz9QJWpaQGJRQXl7C+6hOTCZcMll7KFyEQpgbYI2lHdsS4U7g==}
dependencies:
- '@babel/parser': 7.21.4
- '@babel/types': 7.21.4
+ '@babel/parser': 7.21.8
+ '@babel/types': 7.21.5
dev: true
/@types/babel__traverse@7.18.3:
resolution: {integrity: sha512-1kbcJ40lLB7MHsj39U4Sh1uTd2E7rLEa79kmDpI6cy+XiXsteB3POdQomoq4FxszMrO3ZYchkhYJw7A2862b3w==}
dependencies:
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
dev: true
/@types/bcryptjs@2.4.2:
@@ -6395,7 +6407,7 @@ packages:
resolution: {integrity: sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==}
dependencies:
'@types/connect': 3.4.35
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/braces@3.0.1:
@@ -6415,7 +6427,7 @@ packages:
dependencies:
'@types/http-cache-semantics': 4.0.1
'@types/keyv': 3.1.4
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
'@types/responselike': 1.0.0
dev: false
@@ -6448,7 +6460,7 @@ packages:
/@types/connect@3.4.35:
resolution: {integrity: sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/content-disposition@0.5.5:
@@ -6513,7 +6525,7 @@ packages:
/@types/express-serve-static-core@4.17.33:
resolution: {integrity: sha512-TPBqmR/HRYI3eC2E5hmiivIzv+bidAfXofM+sbonAGvyDhySGw9/PQZFt2BLOrjUUR++4eJVpx6KnLQK1Fk9tA==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
'@types/qs': 6.9.7
'@types/range-parser': 1.2.4
dev: true
@@ -6534,34 +6546,34 @@ packages:
/@types/fluent-ffmpeg@2.1.21:
resolution: {integrity: sha512-+n3dy/Tegt6n+YwGZUiGq6i8Jrnt8+MoyPiW1L6J5EWUl7GSt18a/VyReecfCsvTTNBXNMIKOMHDstiQM8nJLA==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/glob-stream@6.1.1:
resolution: {integrity: sha512-AGOUTsTdbPkRS0qDeyeS+6KypmfVpbT5j23SN8UPG63qjKXNKjXn6V9wZUr8Fin0m9l8oGYaPK8b2WUMF8xI1A==}
dependencies:
'@types/glob': 8.1.0
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/glob@7.2.0:
resolution: {integrity: sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA==}
dependencies:
'@types/minimatch': 5.1.2
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/glob@8.1.0:
resolution: {integrity: sha512-IO+MJPVhoqz+28h1qLAcBEH2+xHMK6MTyHJc7MTnnYb6wsoLR29POVGJ7LycmVXIqyy/4/2ShP5sUwTXuOwb/w==}
dependencies:
'@types/minimatch': 5.1.2
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/graceful-fs@4.1.6:
resolution: {integrity: sha512-Sig0SNORX9fdW+bQuTEovKj3uHcUL6LQKbCrrqb1X7J6/ReAbhCXRAhc+SMejhLELFj2QcyuxmUooZ4bt5ReSw==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/gulp-rename@2.0.1:
@@ -6571,6 +6583,13 @@ packages:
'@types/vinyl': 2.0.7
dev: true
+ /@types/gulp-rename@2.0.2:
+ resolution: {integrity: sha512-CQsXqTVtAXqrPd4IbrrlJEEzRkUR3RXsyZbrVoOVqjlchDDmnyRDatAUisjpQjjCg/wjJrSiNg8T1uAbJ/7Qqg==}
+ dependencies:
+ '@types/node': 20.1.3
+ '@types/vinyl': 2.0.7
+ dev: true
+
/@types/gulp@4.0.10:
resolution: {integrity: sha512-spgZHJFqiEJGwqGlf7T/k4nkBpBcLgP7T0EfN6G2vvnhUfvd4uO1h8RwpXOE8x/54DVYUs1XCAtBHkX/R3axAQ==}
dependencies:
@@ -6622,7 +6641,7 @@ packages:
/@types/jsdom@21.1.1:
resolution: {integrity: sha512-cZFuoVLtzKP3gmq9eNosUL1R50U+USkbLtUQ1bYVgl/lKp0FZM7Cq4aIHAL8oIvQ17uSHi7jXPtfDOdjPwBE7A==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
'@types/tough-cookie': 4.0.2
parse5: 7.1.2
dev: true
@@ -6646,7 +6665,7 @@ packages:
/@types/keyv@3.1.4:
resolution: {integrity: sha512-BQ5aZNSCpj7D6K2ksrRCTmKRLEpnPvWDiLPfoGyhZ++8YtiK9d/3DBKPJgry359X/P1PfruyYwvnvwFjuEiEIg==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: false
/@types/lodash@4.14.191:
@@ -6657,8 +6676,8 @@ packages:
resolution: {integrity: sha512-MqTGEo5bj5t157U6fA/BiDynNkn0YknVdh48CMPkTSpFTVmvao5UQmm7uEF6xBEo7qIMAlY/JSleYaE6VOdpaA==}
dev: false
- /@types/matter-js@0.18.2:
- resolution: {integrity: sha512-W9UC9DOPNBRTUocqqPZmzX3cbHmlZBI9jLn6SuxZz0n5QrPk382Ig3hbBWHqYU8TRUmTCJJhuanXeyMTavF7Mg==}
+ /@types/matter-js@0.18.3:
+ resolution: {integrity: sha512-7DYI52ebEl6AD9+RV2jO/XHdlFlpozYbkURtYKKJ2tO34q49Y15cfl+JSJpoMglQCAL/PxBSHKVv3wkvfZZD7g==}
dev: true
/@types/mdx@2.0.3:
@@ -6694,7 +6713,7 @@ packages:
/@types/node-fetch@2.6.2:
resolution: {integrity: sha512-DHqhlq5jeESLy19TYhLakJ07kNumXWjcDdxXsLUMJZ6ue8VZJj4kLPQVE/2mdHh3xZziNF1xppu5lwmS53HR+A==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
form-data: 3.0.1
/@types/node-fetch@3.0.3:
@@ -6720,11 +6739,15 @@ packages:
/@types/node@18.16.3:
resolution: {integrity: sha512-OPs5WnnT1xkCBiuQrZA4+YAV4HEJejmHneyraIaxsbev5yCEr6KMwINNFP9wQeFIw8FWcoTqF3vQsa5CDaI+8Q==}
+ dev: true
+
+ /@types/node@20.1.3:
+ resolution: {integrity: sha512-NP2yfZpgmf2eDRPmgGq+fjGjSwFgYbihA8/gK+ey23qT9RkxsgNTZvGOEpXgzIGqesTYkElELLgtKoMQTys5vA==}
/@types/nodemailer@6.4.7:
resolution: {integrity: sha512-f5qCBGAn/f0qtRcd4SEn88c8Fp3Swct1731X4ryPKqS61/A3LmmzN8zaEz7hneJvpjFbUUgY7lru/B/7ODTazg==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/normalize-package-data@2.4.1:
@@ -6738,7 +6761,7 @@ packages:
/@types/oauth@0.9.1:
resolution: {integrity: sha512-a1iY62/a3yhZ7qH7cNUsxoI3U/0Fe9+RnuFrpTKr+0WVOzbKlSLojShCKe20aOD1Sppv+i8Zlq0pLDuTJnwS4A==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/offscreencanvas@2019.3.0:
@@ -6752,7 +6775,7 @@ packages:
/@types/pg@8.6.6:
resolution: {integrity: sha512-O2xNmXebtwVekJDD+02udOncjVcMZQuTEQEMpKJ0ZRf5E7/9JJX3izhKUcUifBkyKpljyUM6BTgy2trmviKlpw==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
pg-protocol: 1.5.0
pg-types: 2.2.0
dev: true
@@ -6780,7 +6803,7 @@ packages:
/@types/qrcode@1.5.0:
resolution: {integrity: sha512-x5ilHXRxUPIMfjtM+1vf/GPTRWZ81nqscursm5gMznJeK9M0YnZ1c3bEvRLQ0zSSgedLx1J6MGL231ObQGGhaA==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/qs@6.9.7:
@@ -6810,7 +6833,7 @@ packages:
/@types/readdir-glob@1.1.1:
resolution: {integrity: sha512-ImM6TmoF8bgOwvehGviEj3tRdRBbQujr1N+0ypaln/GWjaerOB26jb93vsRHmdMtvVQZQebOlqt2HROark87mQ==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/redis@4.0.11:
@@ -6826,7 +6849,7 @@ packages:
/@types/responselike@1.0.0:
resolution: {integrity: sha512-85Y2BjiufFzaMIlvJDvTTB8Fxl2xfLo4HgmHzVBz08w4wDePCTjYw66PdrolO0kzli3yam/YCgRufyo1DdQVTA==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: false
/@types/sanitize-html@2.9.0:
@@ -6847,14 +6870,14 @@ packages:
resolution: {integrity: sha512-kopEpYpFQvQdYsZkZVwht/0THHmTFFYXDaqV/lM45eweJ8kcGVDgZHs0RVTolSq55UPZNmjhKc9r7UvLu/mQQg==}
dev: true
- /@types/semver@7.3.13:
- resolution: {integrity: sha512-21cFJr9z3g5dW8B0CVI9g2O9beqaThGQ6ZFBqHfwhzLDKUxaqTIy3vnfah/UPkfOiF2pLq+tGz+W8RyCskuslw==}
+ /@types/semver@7.5.0:
+ resolution: {integrity: sha512-G8hZ6XJiHnuhQKR7ZmysCeJWE08o8T0AXtk5darsCaTVsYZhhgUrq53jizaR2FvsoeCwJhlmwTjkXBY5Pn/ZHw==}
/@types/serve-static@1.15.1:
resolution: {integrity: sha512-NUo5XNiAdULrJENtJXZZ3fHtfMolzZwczzBbnAeBbqBwG+LaG6YaJtuwzwGSQZ2wsCrxjEhNNjAkKigy3n8teQ==}
dependencies:
'@types/mime': 3.0.1
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/serviceworker@0.0.67:
@@ -6864,7 +6887,7 @@ packages:
/@types/set-cookie-parser@2.4.2:
resolution: {integrity: sha512-fBZgytwhYAUkj/jC/FAV4RQ5EerRup1YQsXQCh8rZfiHkc4UahC192oH0smGwsXol3cL3A5oETuAHeQHmhXM4w==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/sharp@0.32.0:
@@ -6929,7 +6952,7 @@ packages:
/@types/undertaker@1.2.8:
resolution: {integrity: sha512-gW3PRqCHYpo45XFQHJBhch7L6hytPsIe0QeLujlnFsjHPnXLhJcPdN6a9368d7aIQgH2I/dUTPFBlGeSNA3qOg==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
'@types/undertaker-registry': 1.0.1
async-done: 1.3.2
dev: true
@@ -6941,7 +6964,7 @@ packages:
/@types/unzipper@0.10.5:
resolution: {integrity: sha512-NrLJb29AdnBARpg9S/4ktfPEisbJ0AvaaAr3j7Q1tg8AgcEUsq2HqbNzvgLRoWyRtjzeLEv7vuL39u1mrNIyNA==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/uuid@9.0.1:
@@ -6951,14 +6974,14 @@ packages:
/@types/vary@1.1.0:
resolution: {integrity: sha512-LQWqrIa0dvEOOH37lGksMEXbypRLUFqu6Gx0pmX7zIUisD2I/qaVgEX/vJ/PSVSW0Hk6yz1BNkFpqg6dZm3Wug==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/vinyl-fs@2.4.12:
resolution: {integrity: sha512-LgBpYIWuuGsihnlF+OOWWz4ovwCYlT03gd3DuLwex50cYZLmX3yrW+sFF9ndtmh7zcZpS6Ri47PrIu+fV+sbXw==}
dependencies:
'@types/glob-stream': 6.1.1
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
'@types/vinyl': 2.0.7
dev: true
@@ -6966,12 +6989,12 @@ packages:
resolution: {integrity: sha512-4UqPv+2567NhMQuMLdKAyK4yzrfCqwaTt6bLhHEs8PFcxbHILsrxaY63n4wgE/BRLDWDQeI+WcTmkXKExh9hQg==}
dependencies:
'@types/expect': 1.20.4
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
/@types/web-push@3.3.2:
resolution: {integrity: sha512-JxWGVL/m7mWTIg4mRYO+A6s0jPmBkr4iJr39DqJpRJAc+jrPiEe1/asmkwerzRon8ZZDxaZJpsxpv0Z18Wo9gw==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/webgl-ext@0.0.30:
@@ -6985,13 +7008,13 @@ packages:
/@types/websocket@1.0.5:
resolution: {integrity: sha512-NbsqiNX9CnEfC1Z0Vf4mE1SgAJ07JnRYcNex7AJ9zAVzmiGHmjKFEk7O4TJIsgv2B1sLEb6owKFZrACwdYngsQ==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/ws@8.5.4:
resolution: {integrity: sha512-zdQDHKUgcX/zBc4GrwsE/7dVdAD8JR4EuiAXiiUhhfyIJXXb2+PrGshFyeXWQPMmmZ2XxgaqclgpIC7eTXc1mg==}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/@types/yargs-parser@21.0.0:
@@ -7014,12 +7037,12 @@ packages:
resolution: {integrity: sha512-Cn6WYCm0tXv8p6k+A8PvbDG763EDpBoTzHdA+Q/MF6H3sapGjCm9NzoaJncJS9tUKSuCoDs9XHxYYsQDgxR6kw==}
requiresBuild: true
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
optional: true
- /@typescript-eslint/eslint-plugin@5.59.2(@typescript-eslint/parser@5.59.2)(eslint@8.39.0)(typescript@5.0.4):
- resolution: {integrity: sha512-yVrXupeHjRxLDcPKL10sGQ/QlVrA8J5IYOEWVqk0lJaSZP7X5DfnP7Ns3cc74/blmbipQ1htFNVGsHX6wsYm0A==}
+ /@typescript-eslint/eslint-plugin@5.59.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0)(typescript@5.0.4):
+ resolution: {integrity: sha512-feA9xbVRWJZor+AnLNAr7A8JRWeZqHUf4T9tlP+TN04b05pFVhO5eN7/O93Y/1OUlLMHKbnJisgDURs/qvtqdg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
'@typescript-eslint/parser': ^5.0.0
@@ -7030,12 +7053,12 @@ packages:
optional: true
dependencies:
'@eslint-community/regexpp': 4.5.0
- '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4)
- '@typescript-eslint/scope-manager': 5.59.2
- '@typescript-eslint/type-utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4)
- '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4)
+ '@typescript-eslint/parser': 5.59.5(eslint@8.40.0)(typescript@5.0.4)
+ '@typescript-eslint/scope-manager': 5.59.5
+ '@typescript-eslint/type-utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4)
+ '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4)
debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.39.0
+ eslint: 8.40.0
grapheme-splitter: 1.0.4
ignore: 5.2.4
natural-compare-lite: 1.4.0
@@ -7046,8 +7069,8 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/parser@5.59.2(eslint@8.39.0)(typescript@5.0.4):
- resolution: {integrity: sha512-uq0sKyw6ao1iFOZZGk9F8Nro/8+gfB5ezl1cA06SrqbgJAt0SRoFhb9pXaHvkrxUpZaoLxt8KlovHNk8Gp6/HQ==}
+ /@typescript-eslint/parser@5.59.5(eslint@8.40.0)(typescript@5.0.4):
+ resolution: {integrity: sha512-NJXQC4MRnF9N9yWqQE2/KLRSOLvrrlZb48NGVfBa+RuPMN6B7ZcK5jZOvhuygv4D64fRKnZI4L4p8+M+rfeQuw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
@@ -7056,26 +7079,26 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/scope-manager': 5.59.2
- '@typescript-eslint/types': 5.59.2
- '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4)
+ '@typescript-eslint/scope-manager': 5.59.5
+ '@typescript-eslint/types': 5.59.5
+ '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4)
debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.39.0
+ eslint: 8.40.0
typescript: 5.0.4
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/scope-manager@5.59.2:
- resolution: {integrity: sha512-dB1v7ROySwQWKqQ8rEWcdbTsFjh2G0vn8KUyvTXdPoyzSL6lLGkiXEV5CvpJsEe9xIdKV+8Zqb7wif2issoOFA==}
+ /@typescript-eslint/scope-manager@5.59.5:
+ resolution: {integrity: sha512-jVecWwnkX6ZgutF+DovbBJirZcAxgxC0EOHYt/niMROf8p4PwxxG32Qdhj/iIQQIuOflLjNkxoXyArkcIP7C3A==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- '@typescript-eslint/types': 5.59.2
- '@typescript-eslint/visitor-keys': 5.59.2
+ '@typescript-eslint/types': 5.59.5
+ '@typescript-eslint/visitor-keys': 5.59.5
dev: true
- /@typescript-eslint/type-utils@5.59.2(eslint@8.39.0)(typescript@5.0.4):
- resolution: {integrity: sha512-b1LS2phBOsEy/T381bxkkywfQXkV1dWda/z0PhnIy3bC5+rQWQDS7fk9CSpcXBccPY27Z6vBEuaPBCKCgYezyQ==}
+ /@typescript-eslint/type-utils@5.59.5(eslint@8.40.0)(typescript@5.0.4):
+ resolution: {integrity: sha512-4eyhS7oGym67/pSxA2mmNq7X164oqDYNnZCUayBwJZIRVvKpBCMBzFnFxjeoDeShjtO6RQBHBuwybuX3POnDqg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '*'
@@ -7084,23 +7107,23 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4)
- '@typescript-eslint/utils': 5.59.2(eslint@8.39.0)(typescript@5.0.4)
+ '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4)
+ '@typescript-eslint/utils': 5.59.5(eslint@8.40.0)(typescript@5.0.4)
debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.39.0
+ eslint: 8.40.0
tsutils: 3.21.0(typescript@5.0.4)
typescript: 5.0.4
transitivePeerDependencies:
- supports-color
dev: true
- /@typescript-eslint/types@5.59.2:
- resolution: {integrity: sha512-LbJ/HqoVs2XTGq5shkiKaNTuVv5tTejdHgfdjqRUGdYhjW1crm/M7og2jhVskMt8/4wS3T1+PfFvL1K3wqYj4w==}
+ /@typescript-eslint/types@5.59.5:
+ resolution: {integrity: sha512-xkfRPHbqSH4Ggx4eHRIO/eGL8XL4Ysb4woL8c87YuAo8Md7AUjyWKa9YMwTL519SyDPrfEgKdewjkxNCVeJW7w==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /@typescript-eslint/typescript-estree@5.59.2(typescript@5.0.4):
- resolution: {integrity: sha512-+j4SmbwVmZsQ9jEyBMgpuBD0rKwi9RxRpjX71Brr73RsYnEr3Lt5QZ624Bxphp8HUkSKfqGnPJp1kA5nl0Sh7Q==}
+ /@typescript-eslint/typescript-estree@5.59.5(typescript@5.0.4):
+ resolution: {integrity: sha512-+XXdLN2CZLZcD/mO7mQtJMvCkzRfmODbeSKuMY/yXbGkzvA9rJyDY5qDYNoiz2kP/dmyAxXquL2BvLQLJFPQIg==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
typescript: '*'
@@ -7108,8 +7131,8 @@ packages:
typescript:
optional: true
dependencies:
- '@typescript-eslint/types': 5.59.2
- '@typescript-eslint/visitor-keys': 5.59.2
+ '@typescript-eslint/types': 5.59.5
+ '@typescript-eslint/visitor-keys': 5.59.5
debug: 4.3.4(supports-color@8.1.1)
globby: 11.1.0
is-glob: 4.0.3
@@ -7120,19 +7143,19 @@ packages:
- supports-color
dev: true
- /@typescript-eslint/utils@5.59.2(eslint@8.39.0)(typescript@5.0.4):
- resolution: {integrity: sha512-kSuF6/77TZzyGPhGO4uVp+f0SBoYxCDf+lW3GKhtKru/L8k/Hd7NFQxyWUeY7Z/KGB2C6Fe3yf2vVi4V9TsCSQ==}
+ /@typescript-eslint/utils@5.59.5(eslint@8.40.0)(typescript@5.0.4):
+ resolution: {integrity: sha512-sCEHOiw+RbyTii9c3/qN74hYDPNORb8yWCoPLmB7BIflhplJ65u2PBpdRla12e3SSTJ2erRkPjz7ngLHhUegxA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.0.0 || ^7.0.0 || ^8.0.0
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0)
'@types/json-schema': 7.0.11
- '@types/semver': 7.3.13
- '@typescript-eslint/scope-manager': 5.59.2
- '@typescript-eslint/types': 5.59.2
- '@typescript-eslint/typescript-estree': 5.59.2(typescript@5.0.4)
- eslint: 8.39.0
+ '@types/semver': 7.5.0
+ '@typescript-eslint/scope-manager': 5.59.5
+ '@typescript-eslint/types': 5.59.5
+ '@typescript-eslint/typescript-estree': 5.59.5(typescript@5.0.4)
+ eslint: 8.40.0
eslint-scope: 5.1.1
semver: 7.5.0
transitivePeerDependencies:
@@ -7140,15 +7163,15 @@ packages:
- typescript
dev: true
- /@typescript-eslint/visitor-keys@5.59.2:
- resolution: {integrity: sha512-EEpsO8m3RASrKAHI9jpavNv9NlEUebV4qmF1OWxSTtKSFBpC1NCmWazDQHFivRf0O1DV11BA645yrLEVQ0/Lig==}
+ /@typescript-eslint/visitor-keys@5.59.5:
+ resolution: {integrity: sha512-qL+Oz+dbeBRTeyJTIy0eniD3uvqU7x+y1QceBismZ41hd4aBSRh8UAw4pZP0+XzLuPZmx4raNMq/I+59W2lXKA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
- '@typescript-eslint/types': 5.59.2
- eslint-visitor-keys: 3.4.0
+ '@typescript-eslint/types': 5.59.5
+ eslint-visitor-keys: 3.4.1
dev: true
- /@vitejs/plugin-react@3.1.0(vite@4.3.4):
+ /@vitejs/plugin-react@3.1.0(vite@4.3.5):
resolution: {integrity: sha512-AfgcRL8ZBhAlc3BFdigClmTUMISmmzHn7sB2h9U1odvc5U/MjWXsAaz18b/WoppUTDBzxOJwo2VdClfUcItu9g==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
@@ -7159,65 +7182,67 @@ packages:
'@babel/plugin-transform-react-jsx-source': 7.19.6(@babel/core@7.21.3)
magic-string: 0.27.0
react-refresh: 0.14.0
- vite: 4.3.4(@types/node@18.16.3)(sass@1.62.1)
+ vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)
transitivePeerDependencies:
- supports-color
dev: true
- /@vitejs/plugin-vue@4.2.1(vite@4.3.4)(vue@3.2.47):
- resolution: {integrity: sha512-ZTZjzo7bmxTRTkb8GSTwkPOYDIP7pwuyV+RV53c9PYUouwcbkIZIvWvNWlX2b1dYZqtOv7D6iUAnJLVNGcLrSw==}
+ /@vitejs/plugin-vue@4.2.2(vite@4.3.5)(vue@3.3.1):
+ resolution: {integrity: sha512-kNH4wMAqs13UiZe/2If1ioO0Mjz71rr2oALTl2c5ajBIox9Vz/UGW/wGkr7GA3SC6Eb29c1HtzAtxdGfbXAkfQ==}
engines: {node: ^14.18.0 || >=16.0.0}
peerDependencies:
vite: ^4.0.0
vue: ^3.2.25
dependencies:
- vite: 4.3.4(@types/node@18.16.3)(sass@1.62.1)
- vue: 3.2.47
+ vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)
+ vue: 3.3.1
- /@vitest/coverage-c8@0.30.1(vitest@0.30.1):
- resolution: {integrity: sha512-/Wa3dtSuckpdngAmiCwowaEXXgJkqPrtfvrs9HTB9QoEfNbZWPu4E4cjEn4lJZb4qcGf4fxFtUA2f9DnDNAzBA==}
+ /@vitest/coverage-c8@0.31.0(vitest@0.31.0):
+ resolution: {integrity: sha512-h72qN1D962AO7UefQVulm9JFP5ACS7OfhCdBHioXU8f7ohH/+NTZCgAqmgcfRNHHO/8wLFxx+93YVxhodkEJVA==}
peerDependencies:
vitest: '>=0.30.0 <1'
dependencies:
+ '@ampproject/remapping': 2.2.0
c8: 7.13.0
+ magic-string: 0.30.0
picocolors: 1.0.0
std-env: 3.3.2
- vitest: 0.30.1(happy-dom@9.10.2)(sass@1.62.1)
+ vitest: 0.31.0(happy-dom@9.16.0)(sass@1.62.1)
dev: true
- /@vitest/expect@0.30.1:
- resolution: {integrity: sha512-c3kbEtN8XXJSeN81iDGq29bUzSjQhjES2WR3aColsS4lPGbivwLtas4DNUe0jD9gg/FYGIteqOenfU95EFituw==}
+ /@vitest/expect@0.31.0:
+ resolution: {integrity: sha512-Jlm8ZTyp6vMY9iz9Ny9a0BHnCG4fqBa8neCF6Pk/c/6vkUk49Ls6UBlgGAU82QnzzoaUs9E/mUhq/eq9uMOv/g==}
dependencies:
- '@vitest/spy': 0.30.1
- '@vitest/utils': 0.30.1
+ '@vitest/spy': 0.31.0
+ '@vitest/utils': 0.31.0
chai: 4.3.7
dev: true
- /@vitest/runner@0.30.1:
- resolution: {integrity: sha512-W62kT/8i0TF1UBCNMRtRMOBWJKRnNyv9RrjIgdUryEe0wNpGZvvwPDLuzYdxvgSckzjp54DSpv1xUbv4BQ0qVA==}
+ /@vitest/runner@0.31.0:
+ resolution: {integrity: sha512-H1OE+Ly7JFeBwnpHTrKyCNm/oZgr+16N4qIlzzqSG/YRQDATBYmJb/KUn3GrZaiQQyL7GwpNHVZxSQd6juLCgw==}
dependencies:
- '@vitest/utils': 0.30.1
+ '@vitest/utils': 0.31.0
concordance: 5.0.4
p-limit: 4.0.0
pathe: 1.1.0
dev: true
- /@vitest/snapshot@0.30.1:
- resolution: {integrity: sha512-fJZqKrE99zo27uoZA/azgWyWbFvM1rw2APS05yB0JaLwUIg9aUtvvnBf4q7JWhEcAHmSwbrxKFgyBUga6tq9Tw==}
+ /@vitest/snapshot@0.31.0:
+ resolution: {integrity: sha512-5dTXhbHnyUMTMOujZPB0wjFjQ6q5x9c8TvAsSPUNKjp1tVU7i9pbqcKPqntyu2oXtmVxKbuHCqrOd+Ft60r4tg==}
dependencies:
magic-string: 0.30.0
pathe: 1.1.0
pretty-format: 27.5.1
dev: true
- /@vitest/spy@0.30.1:
- resolution: {integrity: sha512-YfJeIf37GvTZe04ZKxzJfnNNuNSmTEGnla2OdL60C8od16f3zOfv9q9K0nNii0NfjDJRt/CVN/POuY5/zTS+BA==}
+ /@vitest/spy@0.31.0:
+ resolution: {integrity: sha512-IzCEQ85RN26GqjQNkYahgVLLkULOxOm5H/t364LG0JYb3Apg0PsYCHLBYGA006+SVRMWhQvHlBBCyuByAMFmkg==}
dependencies:
tinyspy: 2.1.0
dev: true
- /@vitest/utils@0.30.1:
- resolution: {integrity: sha512-/c8Xv2zUVc+rnNt84QF0Y0zkfxnaGhp87K2dYJMLtLOIckPzuxLVzAtFCicGFdB4NeBHNzTRr1tNn7rCtQcWFA==}
+ /@vitest/utils@0.31.0:
+ resolution: {integrity: sha512-kahaRyLX7GS1urekRXN2752X4gIgOGVX4Wo8eDUGUkTWlGpXzf5ZS6N9RUUS+Re3XEE8nVGqNyxkSxF5HXlGhQ==}
dependencies:
concordance: 5.0.4
loupe: 2.3.6
@@ -7245,32 +7270,32 @@ packages:
typescript: 5.0.4
dev: true
- /@volar/vue-language-core@1.6.3:
- resolution: {integrity: sha512-e9OTDCPa8Wuh0ORhD4z++qTIcrsrqcI9waspr93YcQCq6j+Q+JTFuy7HBSQgyezSAsP6x1WWokKVk4fWWDJQOw==}
+ /@volar/vue-language-core@1.6.4:
+ resolution: {integrity: sha512-1o+cAtN2DIDNAX/HS8rkjZc8wTMTK+zCab/qtYbvEVlmokhZiDrQeoD9/l0Ug7YCNg+mVuMNHKNBY7pX8U2/Jw==}
dependencies:
'@volar/language-core': 1.4.1
'@volar/source-map': 1.4.1
- '@vue/compiler-dom': 3.3.0-beta.3
- '@vue/compiler-sfc': 3.3.0-beta.3
- '@vue/reactivity': 3.3.0-beta.3
- '@vue/shared': 3.3.0-beta.3
+ '@vue/compiler-dom': 3.3.1
+ '@vue/compiler-sfc': 3.3.1
+ '@vue/reactivity': 3.3.1
+ '@vue/shared': 3.3.1
minimatch: 9.0.0
muggle-string: 0.2.2
vue-template-compiler: 2.7.14
dev: true
- /@volar/vue-typescript@1.6.3(typescript@5.0.4):
- resolution: {integrity: sha512-Dz29Qym33P1MSZDTZJ6PPLN1TLQfkX+g2pRnHqLCsFdSUu4yWYnElBURCn5WJkekxV/v+k2T43aur2RCSY3Ovg==}
+ /@volar/vue-typescript@1.6.4(typescript@5.0.4):
+ resolution: {integrity: sha512-qKwgP0KVQR/aaH/SN3AP7RB8NnXPWDn3tjyXP6IT6etxkDeZLBLsXWUD9KMak/RvV1DgbXDuz4F9yuZlbt29rA==}
peerDependencies:
typescript: '*'
dependencies:
'@volar/typescript': 1.4.1(typescript@5.0.4)
- '@volar/vue-language-core': 1.6.3
+ '@volar/vue-language-core': 1.6.4
typescript: 5.0.4
dev: true
- /@vue-macros/common@1.3.0(rollup@3.21.3)(vue@3.2.47):
- resolution: {integrity: sha512-oRK9vdKryXtJbfucRla8XdnQiWVVNHEBid0waacdfMJn+LOunWeU/3k8VoZZc328HmmZj69MGkUoMWixsHCHGg==}
+ /@vue-macros/common@1.3.1(rollup@3.21.6)(vue@3.3.1):
+ resolution: {integrity: sha512-Lc5aP/8HNJD1XrnvpeNuWcCf82bZdR3auN/chA1b/1rKZgSnmQkH9f33tKO9qLwXSy+u4hpCi8Rw+oUuF1KCeg==}
engines: {node: '>=14.19.0'}
peerDependencies:
vue: ^2.7.0 || ^3.2.25
@@ -7278,234 +7303,124 @@ packages:
vue:
optional: true
dependencies:
- '@babel/types': 7.21.4
- '@rollup/pluginutils': 5.0.2(rollup@3.21.3)
- '@vue/compiler-sfc': 3.3.0-beta.2
+ '@babel/types': 7.21.5
+ '@rollup/pluginutils': 5.0.2(rollup@3.21.6)
+ '@vue/compiler-sfc': 3.3.1
local-pkg: 0.4.3
magic-string-ast: 0.1.2
- vue: 3.2.47
+ vue: 3.3.1
transitivePeerDependencies:
- rollup
dev: false
- /@vue-macros/reactivity-transform@0.3.5(rollup@3.21.3)(vue@3.2.47):
- resolution: {integrity: sha512-HDWPMytAp32uC4aXuLITsBkxGI8yppmthGSSYJENXPvovnIctGV7q6mMNkr9cJMjyr6pjE1rv0y0Vc7SUhx/Xw==}
+ /@vue-macros/reactivity-transform@0.3.6(rollup@3.21.6)(vue@3.3.1):
+ resolution: {integrity: sha512-PFJRXHEdIP03LeNnfcwjUk8pKWjvyeOZjCNwbLgfqunI9tknG4IQMfl86qswK83f+DoOTMCoeMFoUnmlbr+yUw==}
engines: {node: '>=14.19.0'}
peerDependencies:
vue: ^2.7.0 || ^3.2.25
dependencies:
- '@babel/parser': 7.21.4
- '@vue-macros/common': 1.3.0(rollup@3.21.3)(vue@3.2.47)
- '@vue/compiler-core': 3.3.0-beta.2
- '@vue/shared': 3.3.0-beta.2
+ '@babel/parser': 7.21.8
+ '@vue-macros/common': 1.3.1(rollup@3.21.6)(vue@3.3.1)
+ '@vue/compiler-core': 3.3.1
+ '@vue/shared': 3.3.1
magic-string: 0.30.0
unplugin: 1.3.1
- vue: 3.2.47
+ vue: 3.3.1
transitivePeerDependencies:
- rollup
dev: false
- /@vue/compiler-core@3.2.47:
- resolution: {integrity: sha512-p4D7FDnQb7+YJmO2iPEv0SQNeNzcbHdGByJDsT4lynf63AFkOTFN07HsiRSvjGo0QrxR/o3d0hUyNCUnBU2Tig==}
- dependencies:
- '@babel/parser': 7.21.4
- '@vue/shared': 3.2.47
- estree-walker: 2.0.2
- source-map: 0.6.1
-
- /@vue/compiler-core@3.3.0-beta.2:
- resolution: {integrity: sha512-Z2VZCL9Rr1gVgyALHIRP+lNFjgfs/K4aTxvJYQ2vhgEAaI0/L6wtG5sr/gOP+MgxwGQV0PvA+iDG3Y3PC7rTEg==}
+ /@vue/compiler-core@3.3.1:
+ resolution: {integrity: sha512-5le1qYSBgLWg2jdLrbydlhnPJkkzMw46UrRUvTnOKlfg6pThtm9ohhqBhNPHbr0RcM1MCbK5WZe/3Ghz0SZjpQ==}
dependencies:
- '@babel/parser': 7.21.4
- '@vue/shared': 3.3.0-beta.2
+ '@babel/parser': 7.21.8
+ '@vue/shared': 3.3.1
estree-walker: 2.0.2
source-map-js: 1.0.2
- dev: false
- /@vue/compiler-core@3.3.0-beta.3:
- resolution: {integrity: sha512-mv2rPo4JHou6ebm7+U/wO1HpA6W1zDfTqbt4fqjoXrMwU4DWNgRcLKTXG6G3cXV4mOe+2YgWspfxEzo7fPTMKg==}
+ /@vue/compiler-dom@3.3.1:
+ resolution: {integrity: sha512-VmgIsoLivCft3+oNc5KM7b9wd0nZxP/g2qilMwi1hJyGA624KWnNKHn4hzBQs4FpzydUVpNy+TWVT8KiRCh3MQ==}
dependencies:
- '@babel/parser': 7.21.4
- '@vue/shared': 3.3.0-beta.3
- estree-walker: 2.0.2
- source-map-js: 1.0.2
- dev: true
-
- /@vue/compiler-dom@3.2.47:
- resolution: {integrity: sha512-dBBnEHEPoftUiS03a4ggEig74J2YBZ2UIeyfpcRM2tavgMWo4bsEfgCGsu+uJIL/vax9S+JztH8NmQerUo7shQ==}
- dependencies:
- '@vue/compiler-core': 3.2.47
- '@vue/shared': 3.2.47
-
- /@vue/compiler-dom@3.3.0-beta.2:
- resolution: {integrity: sha512-9LPRdCj66OwmUiPa9nuKiaoyKxlFT56j+io8nK/aW5OLl1UkY//Lj661fmDkTY20oLmArt73fAuHD913w4hRqA==}
- dependencies:
- '@vue/compiler-core': 3.3.0-beta.2
- '@vue/shared': 3.3.0-beta.2
- dev: false
-
- /@vue/compiler-dom@3.3.0-beta.3:
- resolution: {integrity: sha512-e7VpjN9wYiuJdJos6Uoe501CzdMkfaEr/27Ks4Ss7Irtcj5YA/S1OROZ35Xl2Pc3ctx6beq5RpcOvnMqh0hcaA==}
- dependencies:
- '@vue/compiler-core': 3.3.0-beta.3
- '@vue/shared': 3.3.0-beta.3
- dev: true
+ '@vue/compiler-core': 3.3.1
+ '@vue/shared': 3.3.1
/@vue/compiler-sfc@2.7.14:
resolution: {integrity: sha512-aNmNHyLPsw+sVvlQFQ2/8sjNuLtK54TC6cuKnVzAY93ks4ZBrvwQSnkkIh7bsbNhum5hJBS00wSDipQ937f5DA==}
dependencies:
- '@babel/parser': 7.21.4
+ '@babel/parser': 7.21.8
postcss: 8.4.23
source-map: 0.6.1
dev: false
- /@vue/compiler-sfc@3.2.47:
- resolution: {integrity: sha512-rog05W+2IFfxjMcFw10tM9+f7i/+FFpZJJ5XHX72NP9eC2uRD+42M3pYcQqDXVYoj74kHMSEdQ/WmCjt8JFksQ==}
- dependencies:
- '@babel/parser': 7.20.7
- '@vue/compiler-core': 3.2.47
- '@vue/compiler-dom': 3.2.47
- '@vue/compiler-ssr': 3.2.47
- '@vue/reactivity-transform': 3.2.47
- '@vue/shared': 3.2.47
- estree-walker: 2.0.2
- magic-string: 0.25.9
- postcss: 8.4.21
- source-map: 0.6.1
-
- /@vue/compiler-sfc@3.3.0-beta.2:
- resolution: {integrity: sha512-5FmcQ5LIpM/Y22dTxnxWPD04jC2gr6XSVVqQNY0y776F1P9x4f06fIpMibL58aKU07Th2z4Ab3oPg/Cg1QNVmA==}
- dependencies:
- '@babel/parser': 7.21.4
- '@vue/compiler-core': 3.3.0-beta.2
- '@vue/compiler-dom': 3.3.0-beta.2
- '@vue/compiler-ssr': 3.3.0-beta.2
- '@vue/reactivity-transform': 3.3.0-beta.2
- '@vue/shared': 3.3.0-beta.2
- estree-walker: 2.0.2
- magic-string: 0.30.0
- postcss: 8.4.21
- source-map-js: 1.0.2
- dev: false
-
- /@vue/compiler-sfc@3.3.0-beta.3:
- resolution: {integrity: sha512-6shZNooetShjSMHJvgVoE0EM8pOMV5vnrzsHoCU06stzV+kqRJQpbN7xf2s9wK2fgHMIBSMINrM9AuZiQnNCJg==}
+ /@vue/compiler-sfc@3.3.1:
+ resolution: {integrity: sha512-G+FPwBbXSLaA4+Ry5/bdD9Oda+sRslQcE9o6JSZaougRiT4OjVL0vtkbQHPrGRTULZV28OcrAjRfSZOSB0OTXQ==}
dependencies:
'@babel/parser': 7.21.4
- '@vue/compiler-core': 3.3.0-beta.3
- '@vue/compiler-dom': 3.3.0-beta.3
- '@vue/compiler-ssr': 3.3.0-beta.3
- '@vue/reactivity-transform': 3.3.0-beta.3
- '@vue/shared': 3.3.0-beta.3
+ '@vue/compiler-core': 3.3.1
+ '@vue/compiler-dom': 3.3.1
+ '@vue/compiler-ssr': 3.3.1
+ '@vue/reactivity-transform': 3.3.1
+ '@vue/shared': 3.3.1
estree-walker: 2.0.2
magic-string: 0.30.0
postcss: 8.4.23
source-map-js: 1.0.2
- dev: true
-
- /@vue/compiler-ssr@3.2.47:
- resolution: {integrity: sha512-wVXC+gszhulcMD8wpxMsqSOpvDZ6xKXSVWkf50Guf/S+28hTAXPDYRTbLQ3EDkOP5Xz/+SY37YiwDquKbJOgZw==}
- dependencies:
- '@vue/compiler-dom': 3.2.47
- '@vue/shared': 3.2.47
-
- /@vue/compiler-ssr@3.3.0-beta.2:
- resolution: {integrity: sha512-Xg9od6GvHwfEpnTxMQR+KlKG1nbOHWRLHCiSA0FENiSDTjCDHh0ClzZLhIZUZJD75miyE9ia5ZQF6vpw680rCw==}
- dependencies:
- '@vue/compiler-dom': 3.3.0-beta.2
- '@vue/shared': 3.3.0-beta.2
- dev: false
-
- /@vue/compiler-ssr@3.3.0-beta.3:
- resolution: {integrity: sha512-egJ0lEVAod3Hpnw96cJ/0a9qv5f5h5/VCBpKYT8scqkzoMsikh8AJant2omokBCL/Ut5UAMLVQlA5b66+2Ys/g==}
- dependencies:
- '@vue/compiler-dom': 3.3.0-beta.3
- '@vue/shared': 3.3.0-beta.3
- dev: true
-
- /@vue/reactivity-transform@3.2.47:
- resolution: {integrity: sha512-m8lGXw8rdnPVVIdIFhf0LeQ/ixyHkH5plYuS83yop5n7ggVJU+z5v0zecwEnX7fa7HNLBhh2qngJJkxpwEEmYA==}
- dependencies:
- '@babel/parser': 7.21.4
- '@vue/compiler-core': 3.2.47
- '@vue/shared': 3.2.47
- estree-walker: 2.0.2
- magic-string: 0.25.9
- /@vue/reactivity-transform@3.3.0-beta.2:
- resolution: {integrity: sha512-EUL53/rsd+hrqhCa/SrhXQ6PzMZJfLQt39xQlzr0Sxsdv/bg5lqbcK9YtGkjYohRuSp1QneFU78LEsQ9j4B2Dw==}
+ /@vue/compiler-ssr@3.3.1:
+ resolution: {integrity: sha512-QOQWGNCWuSeyKx4KvWSJlnIMGg+/2oCHgkFUYo7aJ+9Uaaz45yRgKQ+FNigy50NYBQIhpXn2e4OSR8GXh4knrQ==}
dependencies:
- '@babel/parser': 7.21.4
- '@vue/compiler-core': 3.3.0-beta.2
- '@vue/shared': 3.3.0-beta.2
- estree-walker: 2.0.2
- magic-string: 0.30.0
- dev: false
+ '@vue/compiler-dom': 3.3.1
+ '@vue/shared': 3.3.1
- /@vue/reactivity-transform@3.3.0-beta.3:
- resolution: {integrity: sha512-aM3TgBca9QMMu/9B9ASRVvckeZpAdJO9nmQh5UCznhoDYjVxQPS+sCQvH6TLOjPB1MDQMVQYg4ZiPqfVVo7NbA==}
+ /@vue/reactivity-transform@3.3.1:
+ resolution: {integrity: sha512-MkOrJauAGH4MNdxGW/PmrDegMyOGX0wGIdKUZJRBXOTpotDONg7/TPJe2QeGeBCow/5v9iOqZOWCfvmOWIaDMg==}
dependencies:
- '@babel/parser': 7.21.4
- '@vue/compiler-core': 3.3.0-beta.3
- '@vue/shared': 3.3.0-beta.3
+ '@babel/parser': 7.21.8
+ '@vue/compiler-core': 3.3.1
+ '@vue/shared': 3.3.1
estree-walker: 2.0.2
magic-string: 0.30.0
- dev: true
-
- /@vue/reactivity@3.2.47:
- resolution: {integrity: sha512-7khqQ/75oyyg+N/e+iwV6lpy1f5wq759NdlS1fpAhFXa8VeAIKGgk2E/C4VF59lx5b+Ezs5fpp/5WsRYXQiKxQ==}
- dependencies:
- '@vue/shared': 3.2.47
- /@vue/reactivity@3.3.0-beta.3:
- resolution: {integrity: sha512-9VjWfWgZJ18YXEkfnDfZr33RyLBa6zc0RARLkMqMApWvM26eusZAZ4hhyxlgODBU/mEFk4XOGIAtwwSQedA0MQ==}
+ /@vue/reactivity@3.3.1:
+ resolution: {integrity: sha512-zCfmazOtyUdC1NS/EPiSYJ4RqojqmTAviJyBbyVvY8zAv5NhK44Yfw0E1tt+m5vz0ZO1ptI9jDKBr3MWIEkpgw==}
dependencies:
- '@vue/shared': 3.3.0-beta.3
- dev: true
+ '@vue/shared': 3.3.1
- /@vue/runtime-core@3.2.47:
- resolution: {integrity: sha512-RZxbLQIRB/K0ev0K9FXhNbBzT32H9iRtYbaXb0ZIz2usLms/D55dJR2t6cIEUn6vyhS3ALNvNthI+Q95C+NOpA==}
+ /@vue/runtime-core@3.3.1:
+ resolution: {integrity: sha512-Ljb37LYafhQqKIasc0r32Cva8gIh6VeSMjlwO6V03tCjHd18gmjP0F4UD+8/a59sGTysAgA8Rb9lIC2DVxRz2Q==}
dependencies:
- '@vue/reactivity': 3.2.47
- '@vue/shared': 3.2.47
+ '@vue/reactivity': 3.3.1
+ '@vue/shared': 3.3.1
- /@vue/runtime-dom@3.2.47:
- resolution: {integrity: sha512-ArXrFTjS6TsDei4qwNvgrdmHtD930KgSKGhS5M+j8QxXrDJYLqYw4RRcDy1bz1m1wMmb6j+zGLifdVHtkXA7gA==}
+ /@vue/runtime-dom@3.3.1:
+ resolution: {integrity: sha512-NBjYbQPtMklb7lsJsM2Juv5Ygry6mvZP7PdH1GZqrzfLkvlplQT3qCtQMd/sib6yiy8t9m/Y4hVU7X9nzb9Oeg==}
dependencies:
- '@vue/runtime-core': 3.2.47
- '@vue/shared': 3.2.47
- csstype: 2.6.21
+ '@vue/runtime-core': 3.3.1
+ '@vue/shared': 3.3.1
+ csstype: 3.1.1
- /@vue/server-renderer@3.2.47(vue@3.2.47):
- resolution: {integrity: sha512-dN9gc1i8EvmP9RCzvneONXsKfBRgqFeFZLurmHOveL7oH6HiFXJw5OGu294n1nHc/HMgTy6LulU/tv5/A7f/LA==}
+ /@vue/server-renderer@3.3.1(vue@3.3.1):
+ resolution: {integrity: sha512-sod8ggOwbkQXw3lBjfzrbdxRS9lw/lNHoMaXghHawNYowf+4WoaLWD5ouz6fPZadUqNKAsqK95p8DYb1vcVfPA==}
peerDependencies:
- vue: 3.2.47
+ vue: 3.3.1
dependencies:
- '@vue/compiler-ssr': 3.2.47
- '@vue/shared': 3.2.47
- vue: 3.2.47
+ '@vue/compiler-ssr': 3.3.1
+ '@vue/shared': 3.3.1
+ vue: 3.3.1
- /@vue/shared@3.2.47:
- resolution: {integrity: sha512-BHGyyGN3Q97EZx0taMQ+OLNuZcW3d37ZEVmEAyeoA9ERdGvm9Irc/0Fua8SNyOtV1w6BS4q25wbMzJujO9HIfQ==}
+ /@vue/shared@3.3.1:
+ resolution: {integrity: sha512-ybDBtQ+479HL/bkeIOIAwgpeAEACzztkvulJLbK3JMFuTOv4qDivmV3AIsR8RHYJ+RD9tQxcHWBsX4GqEcYrfw==}
- /@vue/shared@3.3.0-beta.2:
- resolution: {integrity: sha512-AsHYKYiYUnL/LHog6iV/G9tctFZYOsaxHDbSnfeyip94rjndO46XSDbHek7wDlcj3NHGaf8jAQQKfva/7mypjA==}
- dev: false
-
- /@vue/shared@3.3.0-beta.3:
- resolution: {integrity: sha512-st1SnB/Bkbb9TsieeI4TRX9TqHYIR5wvIma3ZtEben55EYSWa1q5u2BhTNgABSdH+rv3Xwfrvpwh5PmCw6Y53g==}
- dev: true
-
- /@vue/test-utils@2.3.2(vue@3.2.47):
+ /@vue/test-utils@2.3.2(vue@3.3.1):
resolution: {integrity: sha512-hJnVaYhbrIm0yBS0+e1Y0Sj85cMyAi+PAbK4JHqMRUZ6S622Goa+G7QzkRSyvCteG8wop7tipuEbHoZo26wsSA==}
peerDependencies:
vue: ^3.0.1
dependencies:
js-beautify: 1.14.6
- vue: 3.2.47
+ vue: 3.3.1
optionalDependencies:
- '@vue/compiler-dom': 3.2.47
- '@vue/server-renderer': 3.2.47(vue@3.2.47)
+ '@vue/compiler-dom': 3.3.1
+ '@vue/server-renderer': 3.3.1(vue@3.3.1)
dev: true
/@webgpu/types@0.1.30:
@@ -7522,7 +7437,7 @@ packages:
engines: {node: '>=10.19.0'}
dependencies:
'@arcanis/slice-ansi': 1.1.1
- '@types/semver': 7.3.13
+ '@types/semver': 7.5.0
'@types/treeify': 1.0.0
'@yarnpkg/fslib': 2.10.2
'@yarnpkg/json-proxy': 2.1.1
@@ -8298,7 +8213,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@babel/template': 7.20.7
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
'@types/babel__core': 7.20.0
'@types/babel__traverse': 7.18.3
dev: true
@@ -9107,13 +9022,13 @@ packages:
resolution: {integrity: sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==}
engines: {node: '>=10'}
- /chromatic@6.17.3:
- resolution: {integrity: sha512-x6WAHLBqub/BYiGXEOsgw9T3m459SmwOvIz0Ra7rCriE2A9AqDKRmVdAEhzVud24ut6ehd54FJpDtArnR5/TbA==}
+ /chromatic@6.17.4:
+ resolution: {integrity: sha512-vnlvsv2lkp8BVtTn1OumJzqkDk2qB3pcGxEDIfZtVboKtzIPjnIlGa+c1fVKQe8NvHDU8R39k8klqgKHIXUVJw==}
hasBin: true
dependencies:
'@discoveryjs/json-ext': 0.5.7
'@types/webpack-env': 1.18.0
- snyk-nodejs-lockfile-parser: 1.48.2
+ snyk-nodejs-lockfile-parser: 1.49.0
transitivePeerDependencies:
- supports-color
dev: false
@@ -9438,8 +9353,8 @@ packages:
resolution: {integrity: sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==}
dev: true
- /compare-versions@5.0.1:
- resolution: {integrity: sha512-v8Au3l0b+Nwkp4G142JcgJFh1/TUhdxut7wzD1Nq1dyp5oa3tXaqb03EXOAB6jS4gMlalkjAUPZBMiAfKUixHQ==}
+ /compare-versions@5.0.3:
+ resolution: {integrity: sha512-4UZlZP8Z99MGEY+Ovg/uJxJuvoXuN4M6B3hKaiackiHrgzQFEe3diJi1mf1PNHbFujM7FvLrK2bpgIaImbtZ1A==}
dev: false
/component-emitter@1.3.0:
@@ -9721,9 +9636,6 @@ packages:
rrweb-cssom: 0.6.0
dev: false
- /csstype@2.6.21:
- resolution: {integrity: sha512-Z1PhmomIfypOpoMjRQB70jfvy/wxT50qW08YXO5lMIJkrdq4yOTR+AW7FqutScmB9NkLwxo+jU+kZLbofZZq/w==}
-
/csstype@3.1.1:
resolution: {integrity: sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw==}
@@ -9737,8 +9649,8 @@ packages:
uniq: 1.0.1
dev: false
- /cypress@12.11.0:
- resolution: {integrity: sha512-TJE+CCWI26Hwr5Msb9GpQhFLubdYooW0fmlPwTsfiyxmngqc7+SZGLPeIkj2dTSSZSEtpQVzOzvcnzH0o8G7Vw==}
+ /cypress@12.12.0:
+ resolution: {integrity: sha512-UU5wFQ7SMVCR/hyKok/KmzG6fpZgBHHfrXcHzDmPHWrT+UUetxFzQgt7cxCszlwfozckzwkd22dxMwl/vNkWRw==}
engines: {node: ^14.0.0 || ^16.0.0 || >=18.0.0}
hasBin: true
requiresBuild: true
@@ -10182,7 +10094,7 @@ packages:
dependencies:
domelementtype: 2.3.0
domhandler: 5.0.3
- entities: 4.4.0
+ entities: 4.5.0
/domelementtype@2.3.0:
resolution: {integrity: sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==}
@@ -10332,6 +10244,10 @@ packages:
resolution: {integrity: sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==}
engines: {node: '>=0.12'}
+ /entities@4.5.0:
+ resolution: {integrity: sha512-V0hjH4dGPh9Ao5p0MoRY6BVqtwCjhz6vI5LT8AJ55H+4g9/4vbHx1I54fS0XuclLhDHArPQCiMjDxjaL8fPxhw==}
+ engines: {node: '>=0.12'}
+
/env-paths@2.2.1:
resolution: {integrity: sha512-+h1lkLKhZMTYjog1VEpJNG7NZJWcuc2DDk/qsqSTRRCOXiLjeQ1d1/udrUGhqMxUgAlwKNZ0cf2uqan5GLuS2A==}
engines: {node: '>=6'}
@@ -10573,7 +10489,7 @@ packages:
- supports-color
dev: true
- /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0):
+ /eslint-module-utils@2.7.4(@typescript-eslint/parser@5.59.5)(eslint-import-resolver-node@0.3.7)(eslint@8.40.0):
resolution: {integrity: sha512-j4GT+rqzCoRKHwURX7pddtIPGySnX9Si/cgMI5ztrcqOPtk5dDEeZ34CQVPphnqkJytlc97Vuk05Um2mJ3gEQA==}
engines: {node: '>=4'}
peerDependencies:
@@ -10594,15 +10510,15 @@ packages:
eslint-import-resolver-webpack:
optional: true
dependencies:
- '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4)
+ '@typescript-eslint/parser': 5.59.5(eslint@8.40.0)(typescript@5.0.4)
debug: 3.2.7(supports-color@8.1.1)
- eslint: 8.39.0
+ eslint: 8.40.0
eslint-import-resolver-node: 0.3.7
transitivePeerDependencies:
- supports-color
dev: true
- /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.2)(eslint@8.39.0):
+ /eslint-plugin-import@2.27.5(@typescript-eslint/parser@5.59.5)(eslint@8.40.0):
resolution: {integrity: sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow==}
engines: {node: '>=4'}
peerDependencies:
@@ -10612,15 +10528,15 @@ packages:
'@typescript-eslint/parser':
optional: true
dependencies:
- '@typescript-eslint/parser': 5.59.2(eslint@8.39.0)(typescript@5.0.4)
+ '@typescript-eslint/parser': 5.59.5(eslint@8.40.0)(typescript@5.0.4)
array-includes: 3.1.6
array.prototype.flat: 1.3.1
array.prototype.flatmap: 1.3.1
debug: 3.2.7(supports-color@8.1.1)
doctrine: 2.1.0
- eslint: 8.39.0
+ eslint: 8.40.0
eslint-import-resolver-node: 0.3.7
- eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.59.2)(eslint-import-resolver-node@0.3.7)(eslint@8.39.0)
+ eslint-module-utils: 2.7.4(@typescript-eslint/parser@5.59.5)(eslint-import-resolver-node@0.3.7)(eslint@8.40.0)
has: 1.0.3
is-core-module: 2.11.0
is-glob: 4.0.3
@@ -10635,19 +10551,19 @@ packages:
- supports-color
dev: true
- /eslint-plugin-vue@9.11.0(eslint@8.39.0):
- resolution: {integrity: sha512-bBCJAZnkBV7ATH4Z1E7CvN3nmtS4H7QUU3UBxPdo8WohRU+yHjnQRALpTbxMVcz0e4Mx3IyxIdP5HYODMxK9cQ==}
+ /eslint-plugin-vue@9.12.0(eslint@8.40.0):
+ resolution: {integrity: sha512-xH8PgpDW2WwmFSmRfs/3iWogef1CJzQqX264I65zz77jDuxF2yLy7+GA2diUM8ZNATuSl1+UehMQkb5YEyau5w==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: ^6.2.0 || ^7.0.0 || ^8.0.0
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0)
- eslint: 8.39.0
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0)
+ eslint: 8.40.0
natural-compare: 1.4.0
nth-check: 2.1.1
postcss-selector-parser: 6.0.11
semver: 7.5.0
- vue-eslint-parser: 9.1.1(eslint@8.39.0)
+ vue-eslint-parser: 9.2.1(eslint@8.40.0)
xml-name-validator: 4.0.0
transitivePeerDependencies:
- supports-color
@@ -10665,14 +10581,6 @@ packages:
estraverse: 4.3.0
dev: true
- /eslint-scope@7.1.1:
- resolution: {integrity: sha512-QKQM/UXpIiHcLqJ5AOyIW7XZmzjkzQXYE54n1++wb0u9V/abW3l9uQnxX8Z5Xd18xyKIMTUAyQ0k1e8pz6LUrw==}
- engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
- dependencies:
- esrecurse: 4.3.0
- estraverse: 5.3.0
- dev: true
-
/eslint-scope@7.2.0:
resolution: {integrity: sha512-DYj5deGlHBfMt15J7rdtyKNq/Nqlv5KfU4iodrQ019XESsRnwXH9KAE0y3cwtUHDo2ob7CypAnCqefh6vioWRw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
@@ -10681,20 +10589,20 @@ packages:
estraverse: 5.3.0
dev: true
- /eslint-visitor-keys@3.4.0:
- resolution: {integrity: sha512-HPpKPUBQcAsZOsHAFwTtIKcYlCje62XB7SEAcxjtmW6TD1WVpkS6i6/hOVtTZIl4zGj/mBqpFVGvaDneik+VoQ==}
+ /eslint-visitor-keys@3.4.1:
+ resolution: {integrity: sha512-pZnmmLwYzf+kWaM/Qgrvpen51upAktaaiI01nsJD/Yr3lMOdNtq0cxkrrg16w64VtisN6okbs7Q8AfGqj4c9fA==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dev: true
- /eslint@8.39.0:
- resolution: {integrity: sha512-mwiok6cy7KTW7rBpo05k6+p4YVZByLNjAZ/ACB9DRCu4YDRwjXI01tWHp6KAUWelsBetTxKK/2sHB0vdS8Z2Og==}
+ /eslint@8.40.0:
+ resolution: {integrity: sha512-bvR+TsP9EHL3TqNtj9sCNJVAFK3fBN8Q7g5waghxyRsPLIMwL73XSKnZFK0hk/O2ANC+iAoq6PWMQ+IfBAJIiQ==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
hasBin: true
dependencies:
- '@eslint-community/eslint-utils': 4.4.0(eslint@8.39.0)
+ '@eslint-community/eslint-utils': 4.4.0(eslint@8.40.0)
'@eslint-community/regexpp': 4.5.0
- '@eslint/eslintrc': 2.0.2
- '@eslint/js': 8.39.0
+ '@eslint/eslintrc': 2.0.3
+ '@eslint/js': 8.40.0
'@humanwhocodes/config-array': 0.11.8
'@humanwhocodes/module-importer': 1.0.1
'@nodelib/fs.walk': 1.2.8
@@ -10705,8 +10613,8 @@ packages:
doctrine: 3.0.0
escape-string-regexp: 4.0.0
eslint-scope: 7.2.0
- eslint-visitor-keys: 3.4.0
- espree: 9.5.1
+ eslint-visitor-keys: 3.4.1
+ espree: 9.5.2
esquery: 1.4.2
esutils: 2.0.3
fast-deep-equal: 3.1.3
@@ -10735,13 +10643,13 @@ packages:
- supports-color
dev: true
- /espree@9.5.1:
- resolution: {integrity: sha512-5yxtHSZXRSW5pvv3hAlXM5+/Oswi1AUFqBmbibKb5s6bp3rGIDkyXU6xCoyuuLhijr4SFwPrXRoZjz0AZDN9tg==}
+ /espree@9.5.2:
+ resolution: {integrity: sha512-7OASN1Wma5fum5SrNhFMAMJxOUAbhyfQ8dQ//PJaJbNw0URTPWqIghHWt1MmAANKhHZIYOHruW4Kw4ruUWOdGw==}
engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0}
dependencies:
acorn: 8.8.2
acorn-jsx: 5.3.2(acorn@8.8.2)
- eslint-visitor-keys: 3.4.0
+ eslint-visitor-keys: 3.4.1
dev: true
/esprima@2.7.3:
@@ -10783,7 +10691,7 @@ packages:
engines: {node: '>=8.3.0'}
dependencies:
'@babel/traverse': 7.21.3
- '@babel/types': 7.21.4
+ '@babel/types': 7.21.5
c8: 7.13.0
transitivePeerDependencies:
- supports-color
@@ -11260,8 +11168,8 @@ packages:
token-types: 5.0.1
dev: false
- /file-type@18.3.0:
- resolution: {integrity: sha512-pkPZ5OGIq0TYb37b8bHDLNeQSe1H2KlaQ2ySGpJkkr2KZdaWsO4QhPzHA0mQcsUW2cSqJk+4gM/UyLz/UFbXdQ==}
+ /file-type@18.4.0:
+ resolution: {integrity: sha512-o6MQrZKTAK6WpvmQk3jqTVUmqxYBxW5bloUfrdH1ZnRFDvvAPNr+l+rgOxM3nkqWT+3khaj3FRMDydWe0xhu+w==}
engines: {node: '>=14.16'}
dependencies:
readable-web-to-node-stream: 3.0.2
@@ -12133,11 +12041,11 @@ packages:
uglify-js: 3.17.4
dev: true
- /happy-dom@9.10.2:
- resolution: {integrity: sha512-PZ+UzoU7S8/has8Zw7tr8WGPAAr1QVrAc9o2Llhtuf6aewnR4DDmhPU1Z8KzWwSjXOE+d+b38qNfwHU35PSMIw==}
+ /happy-dom@9.16.0:
+ resolution: {integrity: sha512-goq7grRjIiV2Svb251LWQOo/xm04za2mJ9+assbZJx1KnaVOX1gZBBp4MHbiFNkR6JW7UL81iCtZxCVu+qU5ng==}
dependencies:
css.escape: 1.5.1
- he: 1.2.0
+ entities: 4.5.0
iconv-lite: 0.6.3
webidl-conversions: 7.0.0
whatwg-encoding: 2.0.0
@@ -12262,6 +12170,7 @@ packages:
/he@1.2.0:
resolution: {integrity: sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==}
hasBin: true
+ dev: true
/headers-polyfill@3.1.2:
resolution: {integrity: sha512-tWCK4biJ6hcLqTviLXVR9DTRfYGQMXEIUj3gwJ2rZ5wO/at3XtkI4g8mCvFdUF9l1KMBNCfmNAdnahm1cgavQA==}
@@ -12326,7 +12235,7 @@ packages:
domelementtype: 2.3.0
domhandler: 5.0.3
domutils: 3.0.1
- entities: 4.4.0
+ entities: 4.5.0
/http-cache-semantics@4.1.1:
resolution: {integrity: sha512-er295DKPVsV82j5kw1Gjt+ADA/XYHsajl82cGNQG2eyoPkvgUhX+nDIyelzhIWbbsXP39EHcI6l5tYs2FYqYXQ==}
@@ -12460,6 +12369,10 @@ packages:
safari-14-idb-fix: 3.0.0
dev: false
+ /idb-keyval@6.2.1:
+ resolution: {integrity: sha512-8Sb3veuYCyrZL+VBt9LJfZjLUPWVvqn8tG28VqYNFCo43KHcKuq+b4EiXGeuaLAQWL2YmyDgMp2aSpH9JHsEQg==}
+ dev: false
+
/ieee754@1.2.1:
resolution: {integrity: sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==}
@@ -13142,7 +13055,7 @@ packages:
engines: {node: '>=8'}
dependencies:
'@babel/core': 7.21.3
- '@babel/parser': 7.21.4
+ '@babel/parser': 7.21.8
'@istanbuljs/schema': 0.1.3
istanbul-lib-coverage: 3.2.0
semver: 6.3.0
@@ -13217,7 +13130,7 @@ packages:
'@jest/expect': 29.5.0
'@jest/test-result': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
chalk: 4.1.2
co: 4.6.0
dedent: 0.7.0
@@ -13265,6 +13178,34 @@ packages:
- ts-node
dev: true
+ /jest-cli@29.5.0(@types/node@20.1.3):
+ resolution: {integrity: sha512-L1KcP1l4HtfwdxXNFCL5bmUbLQiKrakMUriBEcc1Vfz6gx31ORKdreuWvmQVBit+1ss9NNR3yxjwfwzZNdQXJw==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ hasBin: true
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ dependencies:
+ '@jest/core': 29.5.0
+ '@jest/test-result': 29.5.0
+ '@jest/types': 29.5.0
+ chalk: 4.1.2
+ exit: 0.1.2
+ graceful-fs: 4.2.11
+ import-local: 3.1.0
+ jest-config: 29.5.0(@types/node@20.1.3)
+ jest-util: 29.5.0
+ jest-validate: 29.5.0
+ prompts: 2.4.2
+ yargs: 17.6.2
+ transitivePeerDependencies:
+ - '@types/node'
+ - supports-color
+ - ts-node
+ dev: true
+
/jest-config@29.5.0(@types/node@18.16.3):
resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
@@ -13304,6 +13245,45 @@ packages:
- supports-color
dev: true
+ /jest-config@29.5.0(@types/node@20.1.3):
+ resolution: {integrity: sha512-kvDUKBnNJPNBmFFOhDbm59iu1Fii1Q6SxyhXfvylq3UTHbg6o7j/g8k2dZyXWLvfdKB1vAPxNZnMgtKJcmu3kA==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ peerDependencies:
+ '@types/node': '*'
+ ts-node: '>=9.0.0'
+ peerDependenciesMeta:
+ '@types/node':
+ optional: true
+ ts-node:
+ optional: true
+ dependencies:
+ '@babel/core': 7.21.3
+ '@jest/test-sequencer': 29.5.0
+ '@jest/types': 29.5.0
+ '@types/node': 20.1.3
+ babel-jest: 29.5.0(@babel/core@7.21.3)
+ chalk: 4.1.2
+ ci-info: 3.7.1
+ deepmerge: 4.2.2
+ glob: 7.2.3
+ graceful-fs: 4.2.11
+ jest-circus: 29.5.0
+ jest-environment-node: 29.5.0
+ jest-get-type: 29.4.3
+ jest-regex-util: 29.4.3
+ jest-resolve: 29.5.0
+ jest-runner: 29.5.0
+ jest-util: 29.5.0
+ jest-validate: 29.5.0
+ micromatch: 4.0.5
+ parse-json: 5.2.0
+ pretty-format: 29.5.0
+ slash: 3.0.0
+ strip-json-comments: 3.1.1
+ transitivePeerDependencies:
+ - supports-color
+ dev: true
+
/jest-diff@28.1.3:
resolution: {integrity: sha512-8RqP1B/OXzjjTWkqMX67iqgwBVJRgCyKD3L9nq+6ZqJMdvjE8RgHktqZ6jNrkdMT+dJuYNI3rhQpxaz7drJHfw==}
engines: {node: ^12.13.0 || ^14.15.0 || ^16.10.0 || >=17.0.0}
@@ -13349,7 +13329,7 @@ packages:
'@jest/environment': 29.5.0
'@jest/fake-timers': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
jest-mock: 29.5.0
jest-util: 29.5.0
dev: true
@@ -13379,7 +13359,7 @@ packages:
dependencies:
'@jest/types': 29.5.0
'@types/graceful-fs': 4.1.6
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
anymatch: 3.1.3
fb-watchman: 2.0.2
graceful-fs: 4.2.11
@@ -13430,7 +13410,7 @@ packages:
engines: {node: ^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0}
dependencies:
'@jest/types': 27.5.1
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
dev: true
/jest-mock@29.5.0:
@@ -13438,7 +13418,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.5.0
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
jest-util: 29.5.0
dev: true
@@ -13493,7 +13473,7 @@ packages:
'@jest/test-result': 29.5.0
'@jest/transform': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
chalk: 4.1.2
emittery: 0.13.1
graceful-fs: 4.2.11
@@ -13524,7 +13504,7 @@ packages:
'@jest/test-result': 29.5.0
'@jest/transform': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
chalk: 4.1.2
cjs-module-lexer: 1.2.2
collect-v8-coverage: 1.0.1
@@ -13579,7 +13559,7 @@ packages:
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
'@jest/types': 29.5.0
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
chalk: 4.1.2
ci-info: 3.7.1
graceful-fs: 4.2.11
@@ -13604,7 +13584,7 @@ packages:
dependencies:
'@jest/test-result': 29.5.0
'@jest/types': 29.5.0
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
ansi-escapes: 4.3.2
chalk: 4.1.2
emittery: 0.13.1
@@ -13623,7 +13603,7 @@ packages:
resolution: {integrity: sha512-NcrQnevGoSp4b5kg+akIpthoAFHxPBcb5P6mYPY0fUNT+sSvmtu6jlkEle3anczUKIKEbMxFimk9oTP/tpIPgA==}
engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
jest-util: 29.5.0
merge-stream: 2.0.0
supports-color: 8.1.1
@@ -13649,6 +13629,26 @@ packages:
- ts-node
dev: true
+ /jest@29.5.0(@types/node@20.1.3):
+ resolution: {integrity: sha512-juMg3he2uru1QoXX078zTa7pO85QyB9xajZc6bU+d9yEGwrKX6+vGmJQ3UdVZsvTEUARIdObzH68QItim6OSSQ==}
+ engines: {node: ^14.15.0 || ^16.10.0 || >=18.0.0}
+ hasBin: true
+ peerDependencies:
+ node-notifier: ^8.0.1 || ^9.0.0 || ^10.0.0
+ peerDependenciesMeta:
+ node-notifier:
+ optional: true
+ dependencies:
+ '@jest/core': 29.5.0
+ '@jest/types': 29.5.0
+ import-local: 3.1.0
+ jest-cli: 29.5.0(@types/node@20.1.3)
+ transitivePeerDependencies:
+ - '@types/node'
+ - supports-color
+ - ts-node
+ dev: true
+
/jju@1.4.0:
resolution: {integrity: sha512-8wb9Yw966OSxApiCt0K3yNJL8pnNeIv+OEq2YMidz4FKP6nonSRoOXc80iXY4JaN2FC11B9qsNmDsm+ZOfMROA==}
dev: true
@@ -13745,7 +13745,7 @@ packages:
'@babel/preset-env': ^7.1.6
dependencies:
'@babel/core': 7.21.3
- '@babel/parser': 7.21.4
+ '@babel/parser': 7.21.8
'@babel/plugin-proposal-class-properties': 7.18.6(@babel/core@7.21.3)
'@babel/plugin-proposal-nullish-coalescing-operator': 7.18.6(@babel/core@7.21.3)
'@babel/plugin-proposal-optional-chaining': 7.21.0(@babel/core@7.21.3)
@@ -14382,11 +14382,6 @@ packages:
magic-string: 0.30.0
dev: false
- /magic-string@0.25.9:
- resolution: {integrity: sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==}
- dependencies:
- sourcemap-codec: 1.4.8
-
/magic-string@0.27.0:
resolution: {integrity: sha512-8UnnX2PeRAPZuN12svgR9j7M1uWMovg/CEnIwIG0LFkXSJJe4PdfUGiTGl8V9bsBHFUtfVINcSyYxd7q+kx9fA==}
engines: {node: '>=12'}
@@ -14951,6 +14946,7 @@ packages:
resolution: {integrity: sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==}
engines: {node: ^10 || ^12 || ^13.7 || ^14 || >=15.0.1}
hasBin: true
+ dev: false
/nanoid@3.3.6:
resolution: {integrity: sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA==}
@@ -15149,8 +15145,8 @@ packages:
is: 3.3.0
dev: false
- /nodemailer@6.9.1:
- resolution: {integrity: sha512-qHw7dOiU5UKNnQpXktdgQ1d3OFgRAekuvbJLcdG5dnEo/GtcTHRYM7+UfJARdOFU9WUQO8OiIamgWPmiSFHYAA==}
+ /nodemailer@6.9.2:
+ resolution: {integrity: sha512-4+TYaa/e1nIxQfyw/WzNPYTEZ5OvHIDEnmjs4LPmIfccPQN+2CYKmGHjWixn/chzD3bmUTu5FMfpltizMxqzdg==}
engines: {node: '>=6.0.0'}
dev: false
@@ -15544,8 +15540,8 @@ packages:
resolution: {integrity: sha512-o6E5qJV5zkAbIDNhGSIlyOhScKXgQrSRMilfph0clDfM0nEnBOlKlH4sWDmG95BW/CvwNz0vmm7dJVtU2KlMiA==}
dev: true
- /otpauth@9.1.1:
- resolution: {integrity: sha512-XhimxmkREwf6GJvV4svS9OVMFJ/qRGz+QBEGwtW5OMf9jZlx9yw25RZMXdrO6r7DHgfIaETJb1lucZXZtn3jgw==}
+ /otpauth@9.1.2:
+ resolution: {integrity: sha512-iI5nlVvMFP3aTPdjG/fnC4mhVJ/KZOSnBrvo/VnYHUwlTp9jVLjAe2B3i3pyCH+3/E5jYQRSvuHk/8oas3870g==}
dependencies:
jssha: 3.3.0
dev: false
@@ -16293,6 +16289,7 @@ packages:
nanoid: 3.3.4
picocolors: 1.0.0
source-map-js: 1.0.2
+ dev: false
/postcss@8.4.23:
resolution: {integrity: sha512-bQ3qMcpF6A/YjR55xtoTr0jGOlnPOKAIMdOWiv0EIT6HVPEaJiJB4NLljSbiHoC2RX7DN5Uvjtpbg1NPdwv1oA==}
@@ -17447,8 +17444,8 @@ packages:
seedrandom: 2.4.2
dev: false
- /rollup@3.21.3:
- resolution: {integrity: sha512-VnPfEG51nIv2xPLnZaekkuN06q9ZbnyDcLkaBdJa/W7UddyhOfMP2yOPziYQfeY7k++fZM8FdQIummFN5y14kA==}
+ /rollup@3.21.6:
+ resolution: {integrity: sha512-SXIICxvxQxR3D4dp/3LDHZIJPC8a4anKMHd4E3Jiz2/JnY+2bEjqrOokAauc5ShGVNFHlEFjBXAXlaxkJqIqSg==}
engines: {node: '>=14.18.0', npm: '>=8.0.0'}
hasBin: true
optionalDependencies:
@@ -18006,8 +18003,8 @@ packages:
- supports-color
dev: false
- /snyk-nodejs-lockfile-parser@1.48.2:
- resolution: {integrity: sha512-CiuKigz4Ed/prR61T2hDDNnvqCr9JA4zTWE9xD4x+emt2zUVRHKF2RBKq2s82RA8jcts1OOXnREr1v1OvNxIpg==}
+ /snyk-nodejs-lockfile-parser@1.49.0:
+ resolution: {integrity: sha512-73iqwHB8YSWex/PTx+TRUwtNPyKn5wP4n/kxEPbX9EfN3uSIcw6mSKiLm8gSKl5gtf8hcP0R0f1tBFjjdzQvRQ==}
engines: {node: '>=10'}
hasBin: true
dependencies:
@@ -18022,6 +18019,7 @@ packages:
lodash.isempty: 4.4.0
lodash.topairs: 4.3.0
micromatch: 4.0.5
+ p-map: 4.0.0
semver: 7.5.0
snyk-config: 5.1.0
tslib: 1.14.1
@@ -18117,9 +18115,6 @@ packages:
engines: {node: '>= 8'}
dev: false
- /sourcemap-codec@1.4.8:
- resolution: {integrity: sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==}
-
/space-separated-tokens@1.1.5:
resolution: {integrity: sha512-q/JSVd1Lptzhf5bkYm4ob4iWPjx0KiRe3sRFBNrVqbJkFaBm5vbbowy1mymoPNLRa52+oadOhJ+K49wsSeSjTA==}
dev: true
@@ -18253,11 +18248,11 @@ packages:
resolution: {integrity: sha512-siT1RiqlfQnGqgT/YzXVUNsom9S0H1OX+dpdGN1xkyYATo4I6sep5NmsRD/40s3IIOvlCq6akxkqG82urIZW1w==}
dev: true
- /storybook@7.0.7:
- resolution: {integrity: sha512-MaFAhpPm/KsaoIQfGzapnRyXNh1VbS8l38BNZR5ZD97ejGkLukJ7TO4fFS87Hyy6whAXo6tTdtqeCByMQ9gRFA==}
+ /storybook@7.0.10:
+ resolution: {integrity: sha512-L36+Um+Ra8AKTvv84ODFJfuthmWnR1Lc6pjslcb8LYO+PVlqEOeqSknmTcKntDYwgvKx5lg62urtJxzGdwO0yw==}
hasBin: true
dependencies:
- '@storybook/cli': 7.0.7
+ '@storybook/cli': 7.0.10
transitivePeerDependencies:
- bufferutil
- encoding
@@ -18780,8 +18775,8 @@ packages:
resolution: {integrity: sha512-XPaBkWQJdsf3pLKJV9p4qN/S+fm2Oj8AIPo1BTUhg5oxkvm9+SVEGFdhyOz7tTdUTfvxMiAs4sp6/eZO2Ew+pw==}
dev: false
- /tinypool@0.4.0:
- resolution: {integrity: sha512-2ksntHOKf893wSAH4z/+JbPpi92esw8Gn9N2deXX+B0EO92hexAVI9GIZZPx7P5aYo5KULfeOSt3kMOmSOy6uA==}
+ /tinypool@0.5.0:
+ resolution: {integrity: sha512-paHQtnrlS1QZYKF/GnLoOM/DN9fqaGOFbCbxzAhwniySnzl9Ebk8w73/dd34DAhe/obUbPAOldTyYXQZxnPBPQ==}
engines: {node: '>=14.0.0'}
dev: true
@@ -19087,8 +19082,8 @@ packages:
/typedarray@0.0.6:
resolution: {integrity: sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==}
- /typeorm@0.3.15(ioredis@5.3.2)(pg@8.10.0):
- resolution: {integrity: sha512-R4JSw8QjDP1W+ypeRz/XrCXIqubrLSnNAzJAp9EQSQIPHTv+YmUHZis8g08lOwFpuhqL9m8jkPSz8GWEKlU/ow==}
+ /typeorm@0.3.16(ioredis@5.3.2)(pg@8.10.0):
+ resolution: {integrity: sha512-wJ4Qy1oqRKNDdZiBTTaVMqwo/XxC52Q7uNPTjltPgLhvIW173bL6Iad0lhptMOsFlpixFPaUu3PNziaRBwX2Zw==}
engines: {node: '>= 12.9.0'}
hasBin: true
peerDependencies:
@@ -19150,6 +19145,7 @@ packages:
buffer: 6.0.3
chalk: 4.1.2
cli-highlight: 2.1.11
+ date-fns: 2.30.0
debug: 4.3.4(supports-color@8.1.1)
dotenv: 16.0.3
glob: 8.1.0
@@ -19602,8 +19598,8 @@ packages:
replace-ext: 1.0.1
dev: false
- /vite-node@0.30.1(@types/node@18.16.3)(sass@1.62.1):
- resolution: {integrity: sha512-vTikpU/J7e6LU/8iM3dzBo8ZhEiKZEKRznEMm+mJh95XhWaPrJQraT/QsT2NWmuEf+zgAoMe64PKT7hfZ1Njmg==}
+ /vite-node@0.31.0(@types/node@20.1.3)(sass@1.62.1):
+ resolution: {integrity: sha512-8x1x1LNuPvE2vIvkSB7c1mApX5oqlgsxzHQesYF7l5n1gKrEmrClIiZuOFbFDQcjLsmcWSwwmrWrcGWm9Fxc/g==}
engines: {node: '>=v14.18.0'}
hasBin: true
dependencies:
@@ -19612,7 +19608,7 @@ packages:
mlly: 1.2.0
pathe: 1.1.0
picocolors: 1.0.0
- vite: 4.3.4(@types/node@18.16.3)(sass@1.62.1)
+ vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)
transitivePeerDependencies:
- '@types/node'
- less
@@ -19627,8 +19623,8 @@ packages:
resolution: {integrity: sha512-irjKcKXRn7v5bPAg4mAbsS6DgibpP1VUFL9tlgxU6lloK6V9yw9qCZkS+s2PtbkZpWNzr3TN3zVJAc6J7gJZmA==}
dev: true
- /vite@4.3.4(@types/node@18.16.3)(sass@1.62.1):
- resolution: {integrity: sha512-f90aqGBoxSFxWph2b39ae2uHAxm5jFBBdnfueNxZAT1FTpM13ccFQExCaKbR2xFW5atowjleRniQ7onjJ22QEg==}
+ /vite@4.3.5(@types/node@20.1.3)(sass@1.62.1):
+ resolution: {integrity: sha512-0gEnL9wiRFxgz40o/i/eTBwm+NEbpUeTWhzKrZDSdKm6nplj+z4lKz8ANDgildxHm47Vg8EUia0aicKbawUVVA==}
engines: {node: ^14.18.0 || >=16.0.0}
hasBin: true
peerDependencies:
@@ -19652,28 +19648,28 @@ packages:
terser:
optional: true
dependencies:
- '@types/node': 18.16.3
+ '@types/node': 20.1.3
esbuild: 0.17.18
postcss: 8.4.23
- rollup: 3.21.3
+ rollup: 3.21.6
sass: 1.62.1
optionalDependencies:
fsevents: 2.3.2
- /vitest-fetch-mock@0.2.2(vitest@0.30.1):
+ /vitest-fetch-mock@0.2.2(vitest@0.31.0):
resolution: {integrity: sha512-XmH6QgTSjCWrqXoPREIdbj40T7i1xnGmAsTAgfckoO75W1IEHKR8hcPCQ7SO16RsdW1t85oUm6pcQRLeBgjVYQ==}
engines: {node: '>=14.14.0'}
peerDependencies:
vitest: '>=0.16.0'
dependencies:
cross-fetch: 3.1.5
- vitest: 0.30.1(happy-dom@9.10.2)(sass@1.62.1)
+ vitest: 0.31.0(happy-dom@9.16.0)(sass@1.62.1)
transitivePeerDependencies:
- encoding
dev: true
- /vitest@0.30.1(happy-dom@9.10.2)(sass@1.62.1):
- resolution: {integrity: sha512-y35WTrSTlTxfMLttgQk4rHcaDkbHQwDP++SNwPb+7H8yb13Q3cu2EixrtHzF27iZ8v0XCciSsLg00RkPAzB/aA==}
+ /vitest@0.31.0(happy-dom@9.16.0)(sass@1.62.1):
+ resolution: {integrity: sha512-JwWJS9p3GU9GxkG7eBSmr4Q4x4bvVBSswaCFf1PBNHiPx00obfhHRJfgHcnI0ffn+NMlIh9QGvG75FlaIBdKGA==}
engines: {node: '>=v14.18.0'}
hasBin: true
peerDependencies:
@@ -19705,30 +19701,29 @@ packages:
dependencies:
'@types/chai': 4.3.4
'@types/chai-subset': 1.3.3
- '@types/node': 18.16.3
- '@vitest/expect': 0.30.1
- '@vitest/runner': 0.30.1
- '@vitest/snapshot': 0.30.1
- '@vitest/spy': 0.30.1
- '@vitest/utils': 0.30.1
+ '@types/node': 20.1.3
+ '@vitest/expect': 0.31.0
+ '@vitest/runner': 0.31.0
+ '@vitest/snapshot': 0.31.0
+ '@vitest/spy': 0.31.0
+ '@vitest/utils': 0.31.0
acorn: 8.8.2
acorn-walk: 8.2.0
cac: 6.7.14
chai: 4.3.7
concordance: 5.0.4
debug: 4.3.4(supports-color@8.1.1)
- happy-dom: 9.10.2
+ happy-dom: 9.16.0
local-pkg: 0.4.3
magic-string: 0.30.0
pathe: 1.1.0
picocolors: 1.0.0
- source-map: 0.6.1
std-env: 3.3.2
strip-literal: 1.0.1
tinybench: 2.4.0
- tinypool: 0.4.0
- vite: 4.3.4(@types/node@18.16.3)(sass@1.62.1)
- vite-node: 0.30.1(@types/node@18.16.3)(sass@1.62.1)
+ tinypool: 0.5.0
+ vite: 4.3.5(@types/node@20.1.3)(sass@1.62.1)
+ vite-node: 0.31.0(@types/node@20.1.3)(sass@1.62.1)
why-is-node-running: 2.2.2
transitivePeerDependencies:
- less
@@ -19743,35 +19738,35 @@ packages:
resolution: {integrity: sha512-Dhxzh5HZuiHQhbvTW9AMetFfBHDMYpo23Uo9btPXgdYP+3T5S+p+jgNy7spra+veYhBP2dCSgxR/i2Y02h5/6w==}
engines: {node: '>=0.10.0'}
- /vue-docgen-api@4.64.1(vue@3.2.47):
+ /vue-docgen-api@4.64.1(vue@3.3.1):
resolution: {integrity: sha512-jbOf7ByE3Zvtuk+429Jorl+eIeh2aB2Fx1GUo3xJd1aByJWE8KDlSEa6b11PB1ze8f0sRUBraRDinICCk0KY7g==}
dependencies:
- '@babel/parser': 7.21.4
+ '@babel/parser': 7.21.8
'@babel/types': 7.21.4
- '@vue/compiler-dom': 3.2.47
- '@vue/compiler-sfc': 3.2.47
+ '@vue/compiler-dom': 3.3.1
+ '@vue/compiler-sfc': 3.3.1
ast-types: 0.14.2
hash-sum: 2.0.0
lru-cache: 8.0.4
pug: 3.0.2
recast: 0.22.0
ts-map: 1.0.3
- vue-inbrowser-compiler-independent-utils: 4.64.1(vue@3.2.47)
+ vue-inbrowser-compiler-independent-utils: 4.64.1(vue@3.3.1)
transitivePeerDependencies:
- vue
dev: true
- /vue-eslint-parser@9.1.1(eslint@8.39.0):
- resolution: {integrity: sha512-C2aI/r85Q6tYcz4dpgvrs4wH/MqVrRAVIdpYedrxnATDHHkb+TroeRcDpKWGZCx/OcECMWfz7tVwQ8e+Opy6rA==}
+ /vue-eslint-parser@9.2.1(eslint@8.40.0):
+ resolution: {integrity: sha512-tPOex4n6jit4E7h68auOEbDMwE58XiP4dylfaVTCOVCouR45g+QFDBjgIdEU52EXJxKyjgh91dLfN2rxUcV0bQ==}
engines: {node: ^14.17.0 || >=16.0.0}
peerDependencies:
eslint: '>=6.0.0'
dependencies:
debug: 4.3.4(supports-color@8.1.1)
- eslint: 8.39.0
- eslint-scope: 7.1.1
- eslint-visitor-keys: 3.4.0
- espree: 9.5.1
+ eslint: 8.40.0
+ eslint-scope: 7.2.0
+ eslint-visitor-keys: 3.4.1
+ espree: 9.5.2
esquery: 1.4.2
lodash: 4.17.21
semver: 7.5.0
@@ -19779,12 +19774,12 @@ packages:
- supports-color
dev: true
- /vue-inbrowser-compiler-independent-utils@4.64.1(vue@3.2.47):
+ /vue-inbrowser-compiler-independent-utils@4.64.1(vue@3.3.1):
resolution: {integrity: sha512-Hn32n07XZ8j9W8+fmOXPQL+i+W2e/8i6mkH4Ju3H6nR0+cfvmWM95GhczYi5B27+Y8JlCKgAo04IUiYce4mKAw==}
peerDependencies:
vue: '>=2'
dependencies:
- vue: 3.2.47
+ vue: 3.3.1
dev: true
/vue-plyr@7.0.0:
@@ -19794,13 +19789,13 @@ packages:
vue: 2.7.14
dev: false
- /vue-prism-editor@2.0.0-alpha.2(vue@3.2.47):
+ /vue-prism-editor@2.0.0-alpha.2(vue@3.3.1):
resolution: {integrity: sha512-Gu42ba9nosrE+gJpnAEuEkDMqG9zSUysIR8SdXUw8MQKDjBnnNR9lHC18uOr/ICz7yrA/5c7jHJr9lpElODC7w==}
engines: {node: '>=10'}
peerDependencies:
vue: ^3.0.0
dependencies:
- vue: 3.2.47
+ vue: 3.3.1
dev: false
/vue-template-compiler@2.7.14:
@@ -19810,14 +19805,14 @@ packages:
he: 1.2.0
dev: true
- /vue-tsc@1.6.3(typescript@5.0.4):
- resolution: {integrity: sha512-q7l27j0eSJgyGat0khetrvoeaAHieRZFnf8WAJyKvB3eF0AxmLqfs4ahwZhaojBJjZ/lAXZa+Xt8EX54KzQ34w==}
+ /vue-tsc@1.6.4(typescript@5.0.4):
+ resolution: {integrity: sha512-8rg8S1AhRJ6/WriENQEhyqH5wsxSxuD5iaD+QnkZn2ArZ6evlhqfBAIcVN8mfSyCV9DeLkQXkOSv/MaeJiJPAQ==}
hasBin: true
peerDependencies:
typescript: '*'
dependencies:
- '@volar/vue-language-core': 1.6.3
- '@volar/vue-typescript': 1.6.3(typescript@5.0.4)
+ '@volar/vue-language-core': 1.6.4
+ '@volar/vue-typescript': 1.6.4(typescript@5.0.4)
semver: 7.5.0
typescript: 5.0.4
dev: true
@@ -19829,22 +19824,22 @@ packages:
csstype: 3.1.1
dev: false
- /vue@3.2.47:
- resolution: {integrity: sha512-60188y/9Dc9WVrAZeUVSDxRQOZ+z+y5nO2ts9jWXSTkMvayiWxCWOWtBQoYjLeccfXkiiPZWAHcV+WTPhkqJHQ==}
+ /vue@3.3.1:
+ resolution: {integrity: sha512-3Rwy4I5idbPVSDZu6I+fFh6tdDSZbauImCTqLxE7y0LpHtiDvPeY01OI7RkFPbva1nk4hoO0sv/NzosH2h60sg==}
dependencies:
- '@vue/compiler-dom': 3.2.47
- '@vue/compiler-sfc': 3.2.47
- '@vue/runtime-dom': 3.2.47
- '@vue/server-renderer': 3.2.47(vue@3.2.47)
- '@vue/shared': 3.2.47
+ '@vue/compiler-dom': 3.3.1
+ '@vue/compiler-sfc': 3.3.1
+ '@vue/runtime-dom': 3.3.1
+ '@vue/server-renderer': 3.3.1(vue@3.3.1)
+ '@vue/shared': 3.3.1
- /vuedraggable@4.1.0(vue@3.2.47):
+ /vuedraggable@4.1.0(vue@3.3.1):
resolution: {integrity: sha512-FU5HCWBmsf20GpP3eudURW3WdWTKIbEIQxh9/8GE806hydR9qZqRRxRE3RjqX7PkuLuMQG/A7n3cfj9rCEchww==}
peerDependencies:
vue: ^3.0.1
dependencies:
sortablejs: 1.14.0
- vue: 3.2.47
+ vue: 3.3.1
dev: false
/w3c-xmlserializer@4.0.0:
@@ -20367,7 +20362,7 @@ packages:
sharp: 0.31.3
dev: false
- github.com/misskey-dev/storybook-addon-misskey-theme/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@7.0.7)(@storybook/components@7.0.7)(@storybook/core-events@7.0.7)(@storybook/manager-api@7.0.7)(@storybook/preview-api@7.0.7)(@storybook/theming@7.0.7)(@storybook/types@7.0.7)(react-dom@18.2.0)(react@18.2.0):
+ github.com/misskey-dev/storybook-addon-misskey-theme/cf583db098365b2ccc81a82f63ca9c93bc32b640(@storybook/blocks@7.0.10)(@storybook/components@7.0.10)(@storybook/core-events@7.0.10)(@storybook/manager-api@7.0.10)(@storybook/preview-api@7.0.10)(@storybook/theming@7.0.10)(@storybook/types@7.0.10)(react-dom@18.2.0)(react@18.2.0):
resolution: {tarball: https://codeload.github.com/misskey-dev/storybook-addon-misskey-theme/tar.gz/cf583db098365b2ccc81a82f63ca9c93bc32b640}
id: github.com/misskey-dev/storybook-addon-misskey-theme/cf583db098365b2ccc81a82f63ca9c93bc32b640
name: storybook-addon-misskey-theme
@@ -20388,19 +20383,19 @@ packages:
react-dom:
optional: true
dependencies:
- '@storybook/blocks': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/components': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/core-events': 7.0.7
- '@storybook/manager-api': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/preview-api': 7.0.7
- '@storybook/theming': 7.0.7(react-dom@18.2.0)(react@18.2.0)
- '@storybook/types': 7.0.7
+ '@storybook/blocks': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/components': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/core-events': 7.0.10
+ '@storybook/manager-api': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/preview-api': 7.0.10
+ '@storybook/theming': 7.0.10(react-dom@18.2.0)(react@18.2.0)
+ '@storybook/types': 7.0.10
react: 18.2.0
react-dom: 18.2.0(react@18.2.0)
dev: true
- github.com/misskey-dev/summaly/2d63e2a0066f89871e777cc81d43c1ade8c97517:
- resolution: {tarball: https://codeload.github.com/misskey-dev/summaly/tar.gz/2d63e2a0066f89871e777cc81d43c1ade8c97517}
+ github.com/misskey-dev/summaly/77dd5654bb82280b38c1f50e51a771c33f3df503:
+ resolution: {tarball: https://codeload.github.com/misskey-dev/summaly/tar.gz/77dd5654bb82280b38c1f50e51a771c33f3df503}
name: summaly
version: 4.0.2
dependencies: